<?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>129141</bug_id>
          
          <creation_ts>2014-02-20 20:17:49 -0800</creation_ts>
          <short_desc>Create SessionID class</short_desc>
          <delta_ts>2014-02-26 10:59:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Hock">mhock</reporter>
          <assigned_to name="Martin Hock">mhock</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>983086</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-20 20:17:49 -0800</bug_when>
    <thetext>Create SessionID class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983090</commentid>
    <comment_count>1</comment_count>
      <attachid>224827</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-20 20:36:30 -0800</bug_when>
    <thetext>Created attachment 224827
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983092</commentid>
    <comment_count>2</comment_count>
      <attachid>224829</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-20 20:44:54 -0800</bug_when>
    <thetext>Created attachment 224829
build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983093</commentid>
    <comment_count>3</comment_count>
      <attachid>224830</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-20 20:47:38 -0800</bug_when>
    <thetext>Created attachment 224830
changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983107</commentid>
    <comment_count>4</comment_count>
      <attachid>224832</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-20 21:36:39 -0800</bug_when>
    <thetext>Created attachment 224832
typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983134</commentid>
    <comment_count>5</comment_count>
      <attachid>224835</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-21 00:10:47 -0800</bug_when>
    <thetext>Created attachment 224835
symbol</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983135</commentid>
    <comment_count>6</comment_count>
      <attachid>224836</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-21 00:14:05 -0800</bug_when>
    <thetext>Created attachment 224836
rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983234</commentid>
    <comment_count>7</comment_count>
      <attachid>224836</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-02-21 09:42:57 -0800</bug_when>
    <thetext>Comment on attachment 224836
rebase

Why is this an identifier in WebCore instead of a simple POD like class?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983245</commentid>
    <comment_count>8</comment_count>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-21 10:13:41 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 224836 [details])
&gt; Why is this an identifier in WebCore instead of a simple POD like class?

You&apos;re talking about SessionID? I&apos;m not sure what you&apos;re asking me to do - take it out of the WebCore namespace? Not make it noncopyable?

The reason I&apos;m putting it in WebCore is because of this patch to add session IDs to MemoryCache:

https://bugs.webkit.org/show_bug.cgi?id=127794

I split this part out because that patch was getting a bit unwieldy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983264</commentid>
    <comment_count>9</comment_count>
      <attachid>224836</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-21 11:32:49 -0800</bug_when>
    <thetext>Comment on attachment 224836
rebase

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

I think it&apos;s weird that we have a SessionID class, but we don&apos;t represent sessionIDs with it.  (i.e. Page stores a uint64_t instead of a &quot;SessionID&quot;)

What is the point of the SessionID class if we don&apos;t use it to represent SessionIDs?

Yes, a session ID is just a POD uint64_t, but it also has other properties (such is &quot;is this ephemeral?&quot;) that are logically an operation on a SessionID object, rather than a question you ask about an integer.

&gt; Source/WebCore/page/Page.cpp:1500
&gt; +    return m_sessionID ? m_sessionID : settings().privateBrowsingEnabled() ? SessionID::legacyPrivateSessionID : SessionID::defaultSessionID;

We may not have a rule about this, but I don&apos;t think it&apos;s at all common to stack ternary operator usage like this.  It definitely makes this line harder to read than if it were written with if conditionals.

&gt; Source/WebCore/page/Page.h:402
&gt; +    void setSessionID(uint64_t sessionID) { ASSERT(sessionID); m_sessionID = sessionID; }

If we don&apos;t already, we should have a style guideline on this.  Please don&apos;t put multiple statements on the same line.  If a function definition in a header has more than one line, it should be written fully expanded (opening brace on new line, one line per statement)

&gt; Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp:154
&gt; -    if (SessionTracker::isEphemeralID(sessionID)) {
&gt; +    if (SessionID::isEphemeralID(sessionID)) {

If we passed around SessionID objects rather than uint64_ts, then this would read:
    if (sessionID.isEphermeral()) {

Same comment for all usage like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983527</commentid>
    <comment_count>10</comment_count>
      <attachid>224950</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-21 23:36:35 -0800</bug_when>
    <thetext>Created attachment 224950
make SessionID a value class per comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983530</commentid>
    <comment_count>11</comment_count>
      <attachid>224952</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-22 00:13:01 -0800</bug_when>
    <thetext>Created attachment 224952
build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983601</commentid>
    <comment_count>12</comment_count>
      <attachid>224973</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-22 09:54:19 -0800</bug_when>
    <thetext>Created attachment 224973
whitespace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983940</commentid>
    <comment_count>13</comment_count>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-24 10:20:05 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 224836 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=224836&amp;action=review
&gt; 
&gt; I think it&apos;s weird that we have a SessionID class, but we don&apos;t represent sessionIDs with it.  (i.e. Page stores a uint64_t instead of a &quot;SessionID&quot;)
&gt; 
&gt; What is the point of the SessionID class if we don&apos;t use it to represent SessionIDs?
&gt; 
&gt; Yes, a session ID is just a POD uint64_t, but it also has other properties (such is &quot;is this ephemeral?&quot;) that are logically an operation on a SessionID object, rather than a question you ask about an integer.

I&apos;ve replaced the session ID with a class. As discussed, it&apos;s not a POD as we want to define the default constructor.

&gt; &gt; Source/WebCore/page/Page.cpp:1500
&gt; &gt; +    return m_sessionID ? m_sessionID : settings().privateBrowsingEnabled() ? SessionID::legacyPrivateSessionID : SessionID::defaultSessionID;
&gt; 
&gt; We may not have a rule about this, but I don&apos;t think it&apos;s at all common to stack ternary operator usage like this.  It definitely makes this line harder to read than if it were written with if conditionals.

Done.

&gt; &gt; Source/WebCore/page/Page.h:402
&gt; &gt; +    void setSessionID(uint64_t sessionID) { ASSERT(sessionID); m_sessionID = sessionID; }
&gt; 
&gt; If we don&apos;t already, we should have a style guideline on this.  Please don&apos;t put multiple statements on the same line.  If a function definition in a header has more than one line, it should be written fully expanded (opening brace on new line, one line per statement)

Done.

&gt; &gt; Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp:154
&gt; &gt; -    if (SessionTracker::isEphemeralID(sessionID)) {
&gt; &gt; +    if (SessionID::isEphemeralID(sessionID)) {
&gt; 
&gt; If we passed around SessionID objects rather than uint64_ts, then this would read:
&gt;     if (sessionID.isEphermeral()) {
&gt; 
&gt; Same comment for all usage like this.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983970</commentid>
    <comment_count>14</comment_count>
      <attachid>224973</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-24 11:23:26 -0800</bug_when>
    <thetext>Comment on attachment 224973
whitespace

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

&gt; Source/WebCore/page/Page.h:403
&gt; +    bool isSessionIDSet() const { return m_sessionID.isValid(); }

I wonder if we need this helper at all.

My automatic comment would be &quot;shouldn&apos;t this be named isSessionIDValid instead of isSessionIDSet?&quot;, and from that comment it follows that everybody who calls it could just call sessionID().isValid() instead.

&gt; Source/WebKit2/UIProcess/APISession.cpp:59
&gt;  Session::Session(bool isEphemeral)
&gt; -    : m_isEphemeral(isEphemeral)
&gt; -    , m_sessionID(generateID(isEphemeral))
&gt; +    : m_sessionID(generateID(isEphemeral))

Does anybody ever create one with isEphermeral == false?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984016</commentid>
    <comment_count>15</comment_count>
      <attachid>225086</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-24 12:55:03 -0800</bug_when>
    <thetext>Created attachment 225086
remove isSessionIDSet()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984018</commentid>
    <comment_count>16</comment_count>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-24 12:55:20 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 224973 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=224973&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Page.h:403
&gt; &gt; +    bool isSessionIDSet() const { return m_sessionID.isValid(); }
&gt; 
&gt; I wonder if we need this helper at all.
&gt; 
&gt; My automatic comment would be &quot;shouldn&apos;t this be named isSessionIDValid instead of isSessionIDSet?&quot;, and from that comment it follows that everybody who calls it could just call sessionID().isValid() instead.

Yes, that makes sense.  I&apos;ve made this change.

&gt; &gt; Source/WebKit2/UIProcess/APISession.cpp:59
&gt; &gt;  Session::Session(bool isEphemeral)
&gt; &gt; -    : m_isEphemeral(isEphemeral)
&gt; &gt; -    , m_sessionID(generateID(isEphemeral))
&gt; &gt; +    : m_sessionID(generateID(isEphemeral))
&gt; 
&gt; Does anybody ever create one with isEphermeral == false?

We have ASSERT(isEphemeral) in generateID() for now along with FIXME comments like
    // FIXME: support creation of non-default, non-ephemeral sessions
in create(). The constructor is private, so the public create method seems like the appropriate place to put the FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984062</commentid>
    <comment_count>17</comment_count>
      <attachid>225086</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-24 14:13:14 -0800</bug_when>
    <thetext>Comment on attachment 225086
remove isSessionIDSet()

That efl-wk2 failure clearly isn&apos;t due to this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984076</commentid>
    <comment_count>18</comment_count>
      <attachid>225086</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-24 14:43:36 -0800</bug_when>
    <thetext>Comment on attachment 225086
remove isSessionIDSet()

Clearing flags on attachment: 225086

Committed r164611: &lt;http://trac.webkit.org/changeset/164611&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984077</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-24 14:43:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984439</commentid>
    <comment_count>20</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-02-25 12:36:41 -0800</bug_when>
    <thetext>This broke an API test in debug builds:

Note: Google Test filter = WebKit2.PrivateBrowsingPushStateNoHistoryCallback
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from WebKit2
[ RUN      ] WebKit2.PrivateBrowsingPushStateNoHistoryCallback
/Volumes/Data/slave/mavericks-debug/build/Tools/TestWebKitAPI/Tests/WebKit2/PrivateBrowsingPushStateNoHistoryCallback.cpp:39: Failure
Failed
/Volumes/Data/slave/mavericks-debug/build/Tools/TestWebKitAPI/Tests/WebKit2/PrivateBrowsingPushStateNoHistoryCallback.cpp:39: Failure
Failed
[  FAILED  ] WebKit2.PrivateBrowsingPushStateNoHistoryCallback (144 ms)
[----------] 1 test from WebKit2 (144 ms total)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984473</commentid>
    <comment_count>21</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-02-25 13:24:36 -0800</bug_when>
    <thetext>Rolled out in &lt;http://trac.webkit.org/r164669&gt;, because this change broke WebKit2.PrivateBrowsingPushStateNoHistoryCallback API test, and Martin says that it will take time to fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984497</commentid>
    <comment_count>22</comment_count>
      <attachid>225184</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-25 14:20:05 -0800</bug_when>
    <thetext>Created attachment 225184
restore isSessionIDSet()

We need the isSessionIDSet() method in order for WebKit2 to properly use its settings to override an unset SessionID. Normally, when retrieving the SessionID from Page using sessionID(), we want to replace it with a valid session ID.

With this method restored, the broken test passes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984501</commentid>
    <comment_count>23</comment_count>
      <attachid>225184</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-25 14:32:30 -0800</bug_when>
    <thetext>Comment on attachment 225184
restore isSessionIDSet()

Need to fix pbxproj!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984510</commentid>
    <comment_count>24</comment_count>
      <attachid>225188</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-25 15:13:51 -0800</bug_when>
    <thetext>Created attachment 225188
fix pbxproj</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984624</commentid>
    <comment_count>25</comment_count>
      <attachid>225188</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-25 21:44:06 -0800</bug_when>
    <thetext>Comment on attachment 225188
fix pbxproj

Rejecting attachment 225188 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 225188, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
ess/WebPage/WebPage.h
Hunk #1 succeeded at 191 (offset 1 line).
Hunk #2 succeeded at 918 (offset 2 lines).
patching file Source/WebKit2/WebProcess/WebPage/WebPage.messages.in
patching file Source/WebKit2/WebProcess/WebProcess.cpp
patching file Source/WebKit2/WebProcess/WebProcess.h
patching file Source/WebKit2/WebProcess/WebProcess.messages.in

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Sam Weinig&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/5129018839924736</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984789</commentid>
    <comment_count>26</comment_count>
      <attachid>225263</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-26 10:20:27 -0800</bug_when>
    <thetext>Created attachment 225263
rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984807</commentid>
    <comment_count>27</comment_count>
      <attachid>225263</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-26 10:59:48 -0800</bug_when>
    <thetext>Comment on attachment 225263
rebase

Clearing flags on attachment: 225263

Committed r164726: &lt;http://trac.webkit.org/changeset/164726&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984808</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-26 10:59:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224827</attachid>
            <date>2014-02-20 20:36:30 -0800</date>
            <delta_ts>2014-02-20 20:44:54 -0800</delta_ts>
            <desc>patch</desc>
            <filename>sessionidclass.01.diff</filename>
            <type>text/plain</type>
            <size>27856</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkNjFlODJlLi4yMTgyZjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTQtMDItMjAgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IENyZWF0ZSBTZXNzaW9uSUQgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjkxNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6IEFkZCBzZXNzaW9uSUQgbWVtYmVyLgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpz
ZXNzaW9uSUQpOiBSZXRyaWV2ZSBzZXNzaW9uSUQgb3IgdXNlIHNldHRpbmdzIGlmIG5vdCBzZXQu
CisgICAgICAgICogcGFnZS9QYWdlLmg6IEFkZCBzZXNzaW9uSUQgbWVtYmVyLgorICAgICAgICAo
V2ViQ29yZTo6UGFnZTo6aXNTZXNzaW9uSURTZXQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6
c2V0U2Vzc2lvbklEKToKKyAgICAgICAgKiBwYWdlL1Nlc3Npb25JRC5oOiBTdGF0aWMgdXRpbGl0
eSBjbGFzcyBmb3Igc2Vzc2lvbklEcyBwdWxsZWQgZnJvbSBTZXNzaW9uVHJhY2tlci4KKyAgICAg
ICAgKFdlYkNvcmU6OlNlc3Npb25JRDo6aXNFcGhlbWVyYWxJRCk6CisKIDIwMTQtMDItMjAgIEd5
dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBTdGFydCB0
byB1c2Ugc3RkOjp1bmlxdWVfcHRyIGZvciBEcmFnSW1hZ2VMb2FkZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CmluZGV4IGNhNTI1NzkuLjAxNDQyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNzUsNiArNzUs
NyBAQAogI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJv
bGxlci5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCisjaW5jbHVkZSAiU2Vz
c2lvbklELmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIu
aCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgpAQCAtMTkxLDYgKzE5Miw3IEBAIFBhZ2U6OlBh
Z2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogI2VuZGlmCiAgICAgLCBtX2xhc3RTcGF0aWFs
TmF2aWdhdGlvbkNhbmRpZGF0ZXNDb3VudCgwKSAvLyBOT1RFOiBPbmx5IGNhbGxlZCBmcm9tIElu
dGVybmFscyBmb3IgU3BhdGlhbCBOYXZpZ2F0aW9uIHRlc3RpbmcuCiAgICAgLCBtX2ZyYW1lc0hh
bmRsaW5nQmVmb3JlVW5sb2FkRXZlbnQoMCkKKyAgICAsIG1fc2Vzc2lvbklEKDApCiB7CiAgICAg
QVNTRVJUKG1fZWRpdG9yQ2xpZW50KTsKIApAQCAtMTUwMyw2ICsxNTA1LDExIEBAIHZvaWQgUGFn
ZTo6c2V0VXNlckNvbnRlbnRDb250cm9sbGVyKFVzZXJDb250ZW50Q29udHJvbGxlciogdXNlckNv
bnRlbnRDb250cm9sbGVyCiAgICAgICAgIG1fdXNlckNvbnRlbnRDb250cm9sbGVyLT5hZGRQYWdl
KCp0aGlzKTsKIH0KIAordWludDY0X3QgUGFnZTo6c2Vzc2lvbklEKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9zZXNzaW9uSUQgPyBtX3Nlc3Npb25JRCA6IHNldHRpbmdzLnByaXZhdGVCcm93c2lu
Z0VuYWJsZWQoKSA/IFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCA6IFNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRDsKK30KKwogUGFnZTo6UGFnZUNsaWVudHM6OlBhZ2VDbGllbnRz
KCkKICAgICA6IGFsdGVybmF0aXZlVGV4dENsaWVudChudWxscHRyKQogICAgICwgY2hyb21lQ2xp
ZW50KG51bGxwdHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDk2ZjExOGQuLjNjYjM3Y2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCkBAIC0zOTksNiArMzk5LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRVc2VyQ29u
dGVudENvbnRyb2xsZXIoVXNlckNvbnRlbnRDb250cm9sbGVyKik7CiAgICAgVXNlckNvbnRlbnRD
b250cm9sbGVyKiB1c2VyQ29udGVudENvbnRyb2xsZXIoKSB7IHJldHVybiBtX3VzZXJDb250ZW50
Q29udHJvbGxlci5nZXQoKTsgfQorICAgIHVpbnQ2NF90IHNlc3Npb25JRCgpIGNvbnN0OworICAg
IGJvb2wgaXNTZXNzaW9uSURTZXQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQorICAg
IHZvaWQgc2V0U2Vzc2lvbklEKHVpbnQ2NF90IHNlc3Npb25JRCkgeyBBU1NFUlQoc2Vzc2lvbklE
KTsgbV9zZXNzaW9uSUQgPSBzZXNzaW9uSUQ7IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIGluaXRH
cm91cCgpOwpAQCAtNTM5LDYgKzU0Miw4IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9mcmFt
ZXNIYW5kbGluZ0JlZm9yZVVubG9hZEV2ZW50OwogCiAgICAgUmVmUHRyPFVzZXJDb250ZW50Q29u
dHJvbGxlcj4gbV91c2VyQ29udGVudENvbnRyb2xsZXI7CisKKyAgICB1aW50NjRfdCBtX3Nlc3Np
b25JRDsKIH07CiAKIGlubGluZSBQYWdlR3JvdXAmIFBhZ2U6Omdyb3VwKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklELmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
c3Npb25JRC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0NjE1MWUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5oCkBAIC0wLDAg
KzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNlc3Npb25JRF9oCisjZGVmaW5lIFNlc3Np
b25JRF9oCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBTZXNzaW9uSUQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNlc3Np
b25JRCk7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IGRlZmF1bHRTZXNzaW9u
SUQgPSAxOworICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBsZWdhY3lQcml2YXRlU2Vzc2lvbklE
ID0gMjsKKyAgICBzdGF0aWMgYm9vbCBpc0VwaGVtZXJhbElEKHVpbnQ2NF90IHNlc3Npb25JRCkg
eyByZXR1cm4gc2Vzc2lvbklEICE9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRDsgfQorfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU2Vzc2lvbklEX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCAyOTA2YzRhLi4yOTg3MzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIw
MTQtMDItMTkgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0
ZSBTZXNzaW9uSUQgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjkxNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6c3RvcmFnZVNlc3Npb24pOiBTd2l0Y2ggdG8gU2Vzc2lv
bklEIGNsYXNzLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vz
cyk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5z
dXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6IERpdHRvLgorICAgICAgICAqIFNoYXJlZC9TZXNz
aW9uVHJhY2tlci5jcHA6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6
c2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpzZXNzaW9uSUQpOgor
ICAgICAgICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbik6CisgICAgICAgICog
U2hhcmVkL1Nlc3Npb25UcmFja2VyLmg6IE1vdmUgY29kZSB0byBTZXNzaW9uSUQgY2xhc3MuCisg
ICAgICAgICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbTogU3dpdGNoIHRvIFNlc3Np
b25JRCBjbGFzcy4KKyAgICAgICAgKFdlYktpdDo6d2ViS2l0Q29va2llU3RvcmFnZUNvcHlSZXF1
ZXN0SGVhZGVyRmllbGRzRm9yVVJMKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJU2Vzc2lvbi5j
cHA6IERpdHRvLgorICAgICAgICAoQVBJOjpnZW5lcmF0ZUlEKToKKyAgICAgICAgKEFQSTo6U2Vz
c2lvbjo6ZGVmYXVsdFNlc3Npb24pOgorICAgICAgICAoQVBJOjpTZXNzaW9uOjpsZWdhY3lQcml2
YXRlU2Vzc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSVNlc3Npb24uaDogRGl0dG8uCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGV4dDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmNyZWF0ZU5ld1dlYlByb2Nlc3Mp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3Bw
OiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnNldFByaXZhdGVCcm93
c2luZ0VuYWJsZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6
OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5tbTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwOiBE
aXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFn
ZVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDogTW92
ZSBzZXNzaW9uSUQgdG8gUGFnZSB0byBhbGxvdyBXZWJDb3JlIHRvIGFjY2VzcyBpdC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnNlc3Npb25JRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmlzVXNpbmdFcGhlbWVyYWxT
ZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0U2Vzc2lvbklEKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMTQtMDItMjAgIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGEgYnVpbGQgd2FybmluZyBieSBt
b3Zpbmcgc29tZSBXS1dlYlZpZXcgbWV0aG9kcyBmcm9tIHRoZSBwcml2YXRlIGNhdGVnb3J5IHRv
IFdLV2ViVmlldyBpdHNlbGYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMWZl
ZTQ5OC4uOGU1MTU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNDIsNiAr
NDIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRl
IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTE1MCw3ICsx
NTEsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRTZXJpYWxMb2Fk
aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAKIHN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
IHN0b3JhZ2VTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKIHsKLSAgICBpZiAoU2Vzc2lvblRy
YWNrZXI6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKSkgeworICAgIGlmIChTZXNzaW9uSUQ6Omlz
RXBoZW1lcmFsSUQoc2Vzc2lvbklEKSkgewogICAgICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24q
IHByaXZhdGVTZXNzaW9uID0gU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oc2Vzc2lvbklEKTsKICAg
ICAgICAgaWYgKHByaXZhdGVTZXNzaW9uKQogICAgICAgICAgICAgcmV0dXJuICpwcml2YXRlU2Vz
c2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcAppbmRleCA4YTEyYWI3Li41Y2UwYjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVk
ZSAiV2ViQ29va2llTWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNz
aW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KIApAQCAtMTYzLDcgKzE2NCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRp
YWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1lCiAK
ICAgICAvLyBGSVhNRTogaW5zdGVhZCBvZiBoYW5kbGluZyB0aGlzIGhlcmUsIGEgbWVzc2FnZSBz
aG91bGQgYmUgc2VudCBsYXRlciAoc2NhbGVzIHRvIG11bHRpcGxlIHNlc3Npb25zKQogICAgIGlm
IChwYXJhbWV0ZXJzLnByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAgICAgIFJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2Vy
OjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKKyAgICAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEKTsKIAogICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3RpbmdOZXR3b3Jr
U2Vzc2lvbikKICAgICAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3Rp
bmdTZXNzaW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9t
YWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggYTBhOGY2NS4uODI4Mjk2
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5l
dHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21h
Yy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMjksNiArMjksNyBAQAogI2ltcG9ydCAi
U2Vzc2lvblRyYWNrZXIuaCIKICNpbXBvcnQgIldlYkVycm9ycy5oIgogI2ltcG9ydCA8V2ViQ29y
ZS9SZXNvdXJjZUVycm9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2ltcG9y
dCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgog
I2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC03OSw3ICs4MCw3IEBAIFJlc291cmNl
RXJyb3IgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlCiAKIHZvaWQgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQogewotICAgIEFTU0VSVChT
ZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKTsKKyAgICBBU1NFUlQoU2Vz
c2lvbklEOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCkpOwogCiAgICAgaWYgKFNlc3Npb25UcmFj
a2VyOjpzZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwCmluZGV4IDZlNGQ0ZmYuLjFkOGIzNDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcApAQCAtMzMsOSArMzMsNiBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNvbnN0IHVpbnQ2
NF90IFNlc3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEOwotY29uc3QgdWludDY0X3QgU2Vz
c2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQ7Ci0KIHN0YXRpYyBIYXNoTWFwPHVp
bnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIHN0YXRpY1Nl
c3Npb25NYXAoKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC03Miw3ICs2
OSw3IEBAIGNvbnN0IFN0cmluZyYgU2Vzc2lvblRyYWNrZXI6OmdldElkZW50aWZpZXJCYXNlKCkK
IAogTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbih1aW50NjRf
dCBzZXNzaW9uSUQpCiB7Ci0gICAgaWYgKHNlc3Npb25JRCA9PSBkZWZhdWx0U2Vzc2lvbklEKQor
ICAgIGlmIChzZXNzaW9uSUQgPT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKQogICAgICAg
ICByZXR1cm4gJk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7
CiAgICAgcmV0dXJuIHN0YXRpY1Nlc3Npb25NYXAoKS5nZXQoc2Vzc2lvbklEKTsKIH0KQEAgLTgw
LDEzICs3NywxMyBAQCBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIFNlc3Npb25UcmFja2VyOjpzZXNz
aW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKIHVpbnQ2NF90IFNlc3Npb25UcmFja2VyOjpzZXNzaW9u
SUQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKQogewogICAgIGlmICgmc2Vz
c2lvbiA9PSAmTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKSkK
LSAgICAgICAgcmV0dXJuIGRlZmF1bHRTZXNzaW9uSUQ7CisgICAgICAgIHJldHVybiBTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQ7CiAgICAgcmV0dXJuIHN0b3JhZ2VTZXNzaW9uVG9JRCgpLmdl
dCgmc2Vzc2lvbik7CiB9CiAKIHZvaWQgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24odWludDY0
X3Qgc2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBzZXNz
aW9uKQogewotICAgIEFTU0VSVChzZXNzaW9uSUQgIT0gZGVmYXVsdFNlc3Npb25JRCk7CisgICAg
QVNTRVJUKHNlc3Npb25JRCAhPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQpOwogICAgIHN0
b3JhZ2VTZXNzaW9uVG9JRCgpLnNldChzZXNzaW9uLmdldCgpLCBzZXNzaW9uSUQpOwogICAgIHN0
YXRpY1Nlc3Npb25NYXAoKS5zZXQoc2Vzc2lvbklELCBzdGQ6Om1vdmUoc2Vzc2lvbikpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaAppbmRleCAyZWI4MWM5Li45Y2Y0OWM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaApAQCAtMjcsNiArMjcsNyBA
QAogI2RlZmluZSBTZXNzaW9uVHJhY2tlcl9oCiAKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0zNiw5ICszNyw2IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogY2xhc3MgU2Vzc2lvblRyYWNrZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNlc3Np
b25UcmFja2VyKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDY0X3QgZGVmYXVsdFNl
c3Npb25JRCA9IDE7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IGxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQgPSAyOwotICAgIHN0YXRpYyBib29sIGlzRXBoZW1lcmFsSUQodWludDY0X3Qgc2Vzc2lv
bklEKSB7IHJldHVybiBzZXNzaW9uSUQgIT0gU2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9u
SUQ7IH0KICAgICAvLyBGSVhNRTogc2Vzc2lvbk1hcCgpJ3MgcmV0dXJuZWQgbWFwIGRvZXMgbm90
IGluY2x1ZGUgZGVmYXVsdCBzZXNzaW9uLgogICAgIHN0YXRpYyBjb25zdCBIYXNoTWFwPHVpbnQ2
NF90LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIHNl
c3Npb25NYXAoKTsKICAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBnZXRJZGVudGlmaWVyQmFzZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hp
bS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0ubW0KaW5k
ZXggYzZkNzA1Zi4uMmIzN2I0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9Db29raWVTdG9yYWdlU2hpbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nv
b2tpZVN0b3JhZ2VTaGltLm1tCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiQ29va2llU3Rv
cmFnZVNoaW1MaWJyYXJ5LmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJT
ZXNzaW9uVHJhY2tlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvVVJMLmg+CkBAIC01OCw3ICs1OCw3IEBAIHN0YXRpYyBDRkRpY3Rpb25h
cnlSZWYgd2ViS2l0Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKENG
SFRUUENvCiB7CiAgICAgU3RyaW5nIGNvb2tpZXM7CiAgICAgVVJMIGZpcnN0UGFydHlGb3JDb29r
aWVzVVJMOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24o
KS0+Y29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OkNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFNlc3Npb25UcmFja2VyOjpk
ZWZhdWx0U2Vzc2lvbklELCBmaXJzdFBhcnR5Rm9yQ29va2llc1VSTCwgaW5SZXF1ZXN0VVJMKSwg
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRm9yRE9NOjpS
ZXBseShjb29raWVzKSwgMCkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3Jr
Q29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklELCBmaXJzdFBhcnR5Rm9yQ29va2llc1VSTCwgaW5SZXF1ZXN0
VVJMKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRm9y
RE9NOjpSZXBseShjb29raWVzKSwgMCkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKGNv
b2tpZXMuaXNOdWxsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHAKaW5k
ZXggMDhkODRhZi4uMzg4MjgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9u
LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFQ
SVNlc3Npb24uaCIKIAorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIEFQSSB7CkBAIC0zNCw3ICszNSw3IEBAIHN0YXRp
YyB1aW50NjRfdCBnZW5lcmF0ZUlEKGJvb2wgaXNFcGhlbWVyYWwpCiB7CiAgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVTZXNzaW9uSUQg
PSBXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEOworICAgIHN0
YXRpYyB1aW50NjRfdCB1bmlxdWVTZXNzaW9uSUQgPSBXZWJDb3JlOjpTZXNzaW9uSUQ6OmxlZ2Fj
eVByaXZhdGVTZXNzaW9uSUQ7CiAgICAgQVNTRVJUKGlzRXBoZW1lcmFsKTsKICAgICByZXR1cm4g
Kyt1bmlxdWVTZXNzaW9uSUQ7CiB9CkBAIC00Myw3ICs0NCw3IEBAIFNlc3Npb24mIFNlc3Npb246
OmRlZmF1bHRTZXNzaW9uKCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0g
ICAgc3RhdGljIFNlc3Npb24qIGRlZmF1bHRTZXNzaW9uID0gbmV3IFNlc3Npb24oZmFsc2UsIFdl
YktpdDo6U2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQpOworICAgIHN0YXRpYyBTZXNz
aW9uKiBkZWZhdWx0U2Vzc2lvbiA9IG5ldyBTZXNzaW9uKGZhbHNlLCBXZWJDb3JlOjpTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQpOwogICAgIHJldHVybiAqZGVmYXVsdFNlc3Npb247CiB9CiAK
QEAgLTUxLDcgKzUyLDcgQEAgU2Vzc2lvbiYgU2Vzc2lvbjo6bGVnYWN5UHJpdmF0ZVNlc3Npb24o
KQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBzdGF0aWMgU2Vzc2lv
biogbGVnYWN5UHJpdmF0ZVNlc3Npb24gPSBuZXcgU2Vzc2lvbih0cnVlLCBXZWJLaXQ6OlNlc3Np
b25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgU2Vzc2lvbiog
bGVnYWN5UHJpdmF0ZVNlc3Npb24gPSBuZXcgU2Vzc2lvbih0cnVlLCBXZWJDb3JlOjpTZXNzaW9u
SUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOwogICAgIHJldHVybiAqbGVnYWN5UHJpdmF0ZVNl
c3Npb247CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNz
aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5oCmluZGV4IGJkNjA0
YjIuLmUxNTkwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNz
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uaApAQCAtMjcs
NyArMjcsNiBAQAogI2RlZmluZSBBUElTZXNzaW9uX2gKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5o
IgotI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KIAogbmFtZXNwYWNlIEFQSSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAKaW5kZXggMzQ1MzY0OC4uZDVhZGRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNs
dWRlICJNdXRhYmxlRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIK
LSNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgi
CiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJXS0NvbnRleHRQcml2YXRlLmgi
CkBAIC02Myw2ICs2Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFzaC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxydW50aW1lL0pT
Q0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYv
TWFpblRocmVhZC5oPgpAQCAtNDg2LDE2ICs0ODYsMTYgQEAgdm9pZCBXZWJDb250ZXh0OjpzZXRB
bnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0ZUJy
b3cKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIGlmICh1c2VzTmV0d29ya1Byb2Nl
c3MoKSAmJiBuZXR3b3JrUHJvY2VzcygpKSB7CiAgICAgICAgIGlmIChwcml2YXRlQnJvd3NpbmdF
bmFibGVkKQotICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpLCAwKTsKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNz
KCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCksIDApOwogICAgICAgICBl
bHNlCi0gICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzczo6RGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQpLCAwKTsKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCkt
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpLCAwKTsKICAgICB9CiAjZW5k
aWYgLy8gRU5BQkxFRChORVRXT1JLX1BST0NFU1MpCiAKICAgICBpZiAocHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCkKLSAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNz
OjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2
YXRlU2Vzc2lvbklEKSk7CisgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2Vi
UHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVBy
aXZhdGVTZXNzaW9uSUQpKTsKICAgICBlbHNlCi0gICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhN
ZXNzYWdlczo6V2ViUHJvY2Vzczo6RGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lv
blRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpKTsKKyAgICAgICAgc2VuZFRvQWxsUHJv
Y2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpKTsKIH0KIAogdm9pZCAoKnNfaW52
YWxpZE1lc3NhZ2VDYWxsYmFjaykoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUpOwpAQCAtNjI1LDcg
KzYyNSw3IEBAIFdlYlByb2Nlc3NQcm94eSYgV2ViQ29udGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2Vz
cygpCiAjZW5kaWYKIAogICAgIGlmIChXZWJQcmVmZXJlbmNlczo6YW55UGFnZXNBcmVVc2luZ1By
aXZhdGVCcm93c2luZygpKQotICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQ
cml2YXRlU2Vzc2lvbklEKSwgMCk7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Oldl
YlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQ
cml2YXRlU2Vzc2lvbklEKSwgMCk7CiAKICAgICBtX3Byb2Nlc3Nlcy5hcHBlbmQocHJvY2Vzcyk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggZTc0NTBiYS4uZjQyMDUwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHAKQEAgLTY3LDYgKzY3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Njcmlw
dENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZWN1cml0eVBvbGljeS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lv
bklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
VXNlckdlc3R1cmVJbmRpY2F0b3IuaD4KIApAQCAtMzA4LDkgKzMwOSw5IEBAIHZvaWQgSW5qZWN0
ZWRCdW5kbGU6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoV2ViUGFnZUdyb3VwUHJveHkqIHBh
Z2VHcm91cCwgYm9vCiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogVGhpcyB0ZXN0LW9u
bHkgZnVuY3Rpb24gZG9lc24ndCB3b3JrIHdpdGggTmV0d29ya1Byb2Nlc3MsIDxodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1Mjc0Pi4KICNpZiBQTEFURk9STShDT0NP
QSkgfHwgVVNFKENGTkVUV09SSykgfHwgVVNFKFNPVVApCiAgICAgaWYgKGVuYWJsZWQpCi0gICAg
ICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAgICAgICBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Np
b25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7CiAgICAgZWxzZQotICAgICAgICBTZXNzaW9u
VHJhY2tlcjo6ZGVzdHJveVNlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQpOworICAgICAgICBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24oU2Vzc2lvbklE
OjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKICNlbmRpZgogICAgIGNvbnN0IEhhc2hTZXQ8UGFn
ZSo+JiBwYWdlcyA9IFBhZ2VHcm91cDo6cGFnZUdyb3VwKHBhZ2VHcm91cC0+aWRlbnRpZmllcigp
KS0+cGFnZXMoKTsKICAgICBmb3IgKEhhc2hTZXQ8UGFnZSo+OjppdGVyYXRvciBpdGVyID0gcGFn
ZXMuYmVnaW4oKTsgaXRlciAhPSBwYWdlcy5lbmQoKTsgKytpdGVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmNwcAppbmRleCBlYWJkNjU0Li4yYmFjZGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVmZXJyZXJQb2xp
Y3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3VicmVzb3Vy
Y2VMb2FkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0xMTgsNyArMTE5
LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZChSZXNvdXJj
ZUxvYWRlciogcmVzb3VyY2VMb2FkZXIsIENhY2gKICAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlm
aWVyID0gaWRlbnRpZmllcjsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgPSB3ZWJQYWdl
ID8gd2ViUGFnZS0+cGFnZUlEKCkgOiAwOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQg
PSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAwOwotICAgIGxvYWRQYXJhbWV0ZXJz
LnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25UcmFj
a2VyOjpkZWZhdWx0U2Vzc2lvbklEOworICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdl
YlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RDsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVzb3VyY2VMb2FkZXItPnJlcXVlc3Qo
KTsKICAgICBsb2FkUGFyYW1ldGVycy5wcmlvcml0eSA9IHByaW9yaXR5OwogICAgIGxvYWRQYXJh
bWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IGNvbnRlbnRTbmlmZmluZ1BvbGljeTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCAzZTcwN2M3Li5jZTdkZDUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGxhdGZvcm1QYXN0ZWJvYXJkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3Jh
Z2VOYW1lc3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9VUkwuaD4KQEAgLTI2Myw3ICsyNjQsNyBAQCB2b2lkIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCog
Y29udGV4dAogICAgIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIgPSByZXNvdXJjZUxvYWRJZGVu
dGlmaWVyOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHdlYlBhZ2UgPyB3ZWJQYWdl
LT5wYWdlSUQoKSA6IDA7CiAgICAgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCA9IHdlYkZyYW1l
ID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDA7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklE
ID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvblRyYWNrZXI6OmRlZmF1
bHRTZXNzaW9uSUQ7CisgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdl
YlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEOwogICAgIGxv
YWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLnByaW9y
aXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlIaWdoZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNv
bnRlbnRTbmlmZmluZ1BvbGljeSA9IFNuaWZmQ29udGVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4IDNjNTI1MTYuLmY2NmY5MzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMzUsNiAr
MzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRp
bmdzLmg+CiAjaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAKQEAgLTQ0LDcgKzQ1
LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCiB2b2lkIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQog
ewotICAgIEFTU0VSVChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKTsK
KyAgICBBU1NFUlQoU2Vzc2lvbklEOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCkpOwogCiAgICAg
aWYgKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHJldHVybjsK
QEAgLTEwMSwxMCArMTAyLDcgQEAgUmVzb3VyY2VFcnJvciBXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXEKIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24oKSBj
b25zdAogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBpZiAoZnJhbWUo
KSkKLSAgICAgICAgcmV0dXJuICpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbih3ZWJGcmFtZUxvYWRl
ckNsaWVudCgpLT53ZWJGcmFtZSgpLT5wYWdlKCktPnNlc3Npb25JRCgpKTsKLSAgICByZXR1cm4g
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKKyAgICByZXR1
cm4gKlNlc3Npb25UcmFja2VyOjpzZXNzaW9uKGZyYW1lKCkgPyBmcmFtZSgpLT5wYWdlKCktPnNl
c3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKTsKIH0KIAogV2ViRnJhbWVM
b2FkZXJDbGllbnQqIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OndlYkZyYW1lTG9hZGVyQ2xp
ZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmNwcAppbmRleCA0ZDEzZGMzLi5kZGIxNGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3Vw
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldl
YlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtNTUs
NyArNTYsNyBAQCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0KFdlYkZyYW1lKiBmcmFtZSkKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24oKSBjb25zdAogewogICAgIGlmIChmcmFt
ZSgpICYmIGZyYW1lKCktPnNldHRpbmdzKCkucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQotICAg
ICAgICByZXR1cm4gKlNlc3Npb25UcmFja2VyOjpzZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdh
Y3lQcml2YXRlU2Vzc2lvbklEKTsKKyAgICAgICAgcmV0dXJuICpTZXNzaW9uVHJhY2tlcjo6c2Vz
c2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOwogCiAgICAgcmV0dXJuIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYjI1M2MwNy4u
NmZhMzY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtMTMzLDYgKzEzMyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3Ry
eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
aGFkb3dSb290Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KQEAgLTIyNiw3
ICsyMjcsNiBAQCBQYXNzUmVmUHRyPFdlYlBhZ2U+IFdlYlBhZ2U6OmNyZWF0ZSh1aW50NjRfdCBw
YWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZQogCiBXZWJQYWdlOjpXZWJQYWdlKHVp
bnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVy
cykKICAgICA6IG1fcGFnZUlEKHBhZ2VJRCkKLSAgICAsIG1fc2Vzc2lvbklEKDApCiAgICAgLCBt
X3ZpZXdTaXplKHBhcmFtZXRlcnMudmlld1NpemUpCiAgICAgLCBtX2hhc1NlZW5QbHVnaW4oZmFs
c2UpCiAgICAgLCBtX3VzZUZpeGVkTGF5b3V0KGZhbHNlKQpAQCAtMjEwOCwyMSArMjEwOCwyMSBA
QCB2b2lkIFdlYlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUodW5zaWduZWQgbGF5ZXJIb3N0aW5n
TW9kZSkKIAogdWludDY0X3QgV2ViUGFnZTo6c2Vzc2lvbklEKCkgY29uc3QKIHsKLSAgICBpZiAo
bV9zZXNzaW9uSUQpCi0gICAgICAgIHJldHVybiBtX3Nlc3Npb25JRDsKKyAgICBpZiAobV9wYWdl
LT5pc1Nlc3Npb25JRFNldCgpKQorICAgICAgICByZXR1cm4gbV9wYWdlLT5zZXNzaW9uSUQoKTsK
IAotICAgIHJldHVybiBtX3BhZ2UtPnNldHRpbmdzKCkucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgp
ID8gU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQgOiBTZXNzaW9uVHJhY2tl
cjo6ZGVmYXVsdFNlc3Npb25JRDsKKyAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLnByaXZh
dGVCcm93c2luZ0VuYWJsZWQoKSA/IFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCA6
IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRDsKIH0KIAogYm9vbCBXZWJQYWdlOjppc1VzaW5n
RXBoZW1lcmFsU2Vzc2lvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFNlc3Npb25UcmFja2VyOjpp
c0VwaGVtZXJhbElEKHNlc3Npb25JRCgpKTsKKyAgICByZXR1cm4gU2Vzc2lvbklEOjppc0VwaGVt
ZXJhbElEKHNlc3Npb25JRCgpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZXRTZXNzaW9uSUQodWlu
dDY0X3Qgc2Vzc2lvbklEKQogewotICAgIG1fc2Vzc2lvbklEID0gc2Vzc2lvbklEOwotICAgIGlm
IChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKQorICAgIG1fcGFnZS0+
c2V0U2Vzc2lvbklEKHNlc3Npb25JRCk7CisgICAgaWYgKFNlc3Npb25JRDo6aXNFcGhlbWVyYWxJ
RChzZXNzaW9uSUQpKQogICAgICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5lbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKHNlc3Npb25JRCk7CiB9CiAKQEAgLTI0MjgsOCArMjQyOCw4IEBAIHZv
aWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYg
c3RvcmUpCiAgICAgc2V0dGluZ3Muc2V0TG9jYWxTdG9yYWdlRW5hYmxlZChzdG9yZS5nZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmxvY2FsU3RvcmFnZUVuYWJsZWRLZXkoKSkp
OwogICAgIHNldHRpbmdzLnNldFhTU0F1ZGl0b3JFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6eHNzQXVkaXRvckVuYWJsZWRLZXkoKSkpOwogICAgIHNl
dHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5OjpmcmFtZUZsYXR0ZW5pbmdFbmFibGVkS2V5KCkpKTsKLSAgICBp
ZiAobV9zZXNzaW9uSUQpCi0gICAgICAgIHNldHRpbmdzLnNldFByaXZhdGVCcm93c2luZ0VuYWJs
ZWQoU2Vzc2lvblRyYWNrZXI6OmlzRXBoZW1lcmFsSUQobV9zZXNzaW9uSUQpKTsKKyAgICBpZiAo
bV9wYWdlLT5pc1Nlc3Npb25JRFNldCgpKQorICAgICAgICBzZXR0aW5ncy5zZXRQcml2YXRlQnJv
d3NpbmdFbmFibGVkKFNlc3Npb25JRDo6aXNFcGhlbWVyYWxJRChtX3BhZ2UtPnNlc3Npb25JRCgp
KSk7CiAgICAgZWxzZQogICAgICAgICBzZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVk
KHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6cHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxl
ZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmRldmVsb3BlckV4
dHJhc0VuYWJsZWRLZXkoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKaW5kZXggYWE0YWMyYy4uOTM2MTA5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC05MDAsNyArOTAwLDYgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHJlcG9ydFVzZWRGZWF0dXJlcygpOwogCiAgICAgdWludDY0X3QgbV9wYWdlSUQ7Ci0g
ICAgdWludDY0X3QgbV9zZXNzaW9uSUQ7CiAKICAgICBPd25QdHI8V2ViQ29yZTo6UGFnZT4gbV9w
YWdlOwogICAgIFJlZlB0cjxXZWJGcmFtZT4gbV9tYWluRnJhbWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224829</attachid>
            <date>2014-02-20 20:44:54 -0800</date>
            <delta_ts>2014-02-20 20:47:38 -0800</delta_ts>
            <desc>build</desc>
            <filename>sessionidclass.02.diff</filename>
            <type>text/plain</type>
            <size>32062</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkNjFlODJlLi4yMTgyZjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTQtMDItMjAgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IENyZWF0ZSBTZXNzaW9uSUQgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjkxNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6IEFkZCBzZXNzaW9uSUQgbWVtYmVyLgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpz
ZXNzaW9uSUQpOiBSZXRyaWV2ZSBzZXNzaW9uSUQgb3IgdXNlIHNldHRpbmdzIGlmIG5vdCBzZXQu
CisgICAgICAgICogcGFnZS9QYWdlLmg6IEFkZCBzZXNzaW9uSUQgbWVtYmVyLgorICAgICAgICAo
V2ViQ29yZTo6UGFnZTo6aXNTZXNzaW9uSURTZXQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6
c2V0U2Vzc2lvbklEKToKKyAgICAgICAgKiBwYWdlL1Nlc3Npb25JRC5oOiBTdGF0aWMgdXRpbGl0
eSBjbGFzcyBmb3Igc2Vzc2lvbklEcyBwdWxsZWQgZnJvbSBTZXNzaW9uVHJhY2tlci4KKyAgICAg
ICAgKFdlYkNvcmU6OlNlc3Npb25JRDo6aXNFcGhlbWVyYWxJRCk6CisKIDIwMTQtMDItMjAgIEd5
dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBTdGFydCB0
byB1c2Ugc3RkOjp1bmlxdWVfcHRyIGZvciBEcmFnSW1hZ2VMb2FkZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IDJmOWYxODEuLjE2ZDYzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtNDE4MSw2ICs0MTgxLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luSGFzaC5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0
eVBvbGljeS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NTFlMDViZi4uMzllYjQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjIxMSw2ICsyMjExLDcgQEAKIAkJNzU0MTVENUExMjlB
QjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTQxNUQ1NDEyOUFCMkQyMDAzQUQ2Njkg
LyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCAqLzsgfTsKIAkJNzU1M0NGRTgxMDhGNDczRjAw
RUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1M0NGRTYxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVs
aW5lUmVjb3JkRmFjdG9yeS5oICovOyB9OwogCQk3NTUzQ0ZFOTEwOEY0NzNGMDBFQTI4MUUgLyog
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29y
ZEZhY3RvcnkuY3BwICovOyB9OworCQk3NTZCMkNFMTE4QjcxMDE2MDBGRUNGQUEgLyogU2Vzc2lv
bklELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTZC
MkNFMDE4QjcxMDE2MDBGRUNGQUEgLyogU2Vzc2lvbklELmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzU3OEY5MEMxMURERjI2OTAwRDkzM0M1IC8q
IFNwZWVjaElucHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3NTc4RjkwOTExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuaCAqLzsgfTsKIAkJ
NzU3OEY5MEQxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkwQTExRERGMjY5MDBE
OTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnQuaCAqLzsgfTsKIAkJNzU3OEY5MjAxMUU0RTMyODAw
RDkzM0M1IC8qIFNwZWVjaElucHV0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTFFMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJ
bnB1dExpc3RlbmVyLmggKi87IH07CkBAIC05MTM5LDYgKzkxNDAsNyBAQAogCQk3NTQxNUQ1NDEy
OUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU1M0NGRTYxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5l
UmVjb3JkRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaW1lbGlu
ZVJlY29yZEZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU1M0NGRTcx
MDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTZCMkNFMDE4QjcxMDE2MDBGRUNGQUEgLyogU2Vz
c2lvbklELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlc3Npb25JRC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc4RjkwOTExRERGMjY5MDBEOTMzQzUgLyog
U3BlZWNoSW5wdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoSW5w
dXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU3OEY5MEExMURERjI2OTAwRDkz
M0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaElucHV0Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1
NzhGOTFFMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0TGlzdGVuZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MTY2LDYgKzE2MTY4LDcgQEAKIAkJCQlCQ0QwRTBGOTBF
OTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW5IYXNoLmggKi8sCiAJCQkJOTc0RDJEQTIx
NDZBNTM1RDAwRDUxRjhCIC8qIFNlY3VyaXR5UG9saWN5LmNwcCAqLywKIAkJCQk5NzREMkRBMzE0
NkE1MzVEMDBENTFGOEIgLyogU2VjdXJpdHlQb2xpY3kuaCAqLywKKwkJCQk3NTZCMkNFMDE4Qjcx
MDE2MDBGRUNGQUEgLyogU2Vzc2lvbklELmggKi8sCiAJCQkJMTRDOUE1RTkwQjNEMTA1RjAwNUEw
MjMyIC8qIFNldHRpbmdzLmNwcCAqLywKIAkJCQlGNTg3ODYzQTAyREUzQTE0MDFFQTQxMjIgLyog
U2V0dGluZ3MuaCAqLywKIAkJCQlCQzU5REVGODE2OURFREMzMDAxNkFDMzQgLyogU2V0dGluZ3Mu
aW4gKi8sCkBAIC0yMzkzNiw2ICsyMzkzOSw3IEBACiAJCQkJN0EyNDU4N0MxMDIxRUFGNDAwMEEw
MEFBIC8qIEluc3BlY3RvckRPTUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTY0RUQ0NDE4
MzIwOEM3MDBFQThGRjEgLyogSURCU2VydmVyQ29ubmVjdGlvbkxldmVsREIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUYzRDRDNDc5MTJFMDc2NjMwMDNEQTE1MCAvKiBJbnNwZWN0b3JET01EZWJ1Z2dl
ckFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTZCMkNFMTE4QjcxMDE2MDBGRUNGQUEgLyog
U2Vzc2lvbklELmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTc0RUNCQjEwMTgzOUE2MDBCRjkzOUUg
LyogSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzA1ODUz
NDE3RkRFNkQ5MDA1RjJCQ0IgLyogSlNNZWRpYVRyYWNrQ29uc3RyYWludHMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3OERBMjBFMTUyMEVCOEMwMDYxNDFDMSAvKiBJbnNwZWN0b3JXZWJGcm9udGVu
ZERpc3BhdGNoZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGNhNTI1
NzkuLjAxNDQyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNzUsNiArNzUsNyBAQAogI2luY2x1
ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCisjaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRl
ICJTdG9yYWdlQXJlYS5oIgpAQCAtMTkxLDYgKzE5Miw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVu
dHMmIHBhZ2VDbGllbnRzKQogI2VuZGlmCiAgICAgLCBtX2xhc3RTcGF0aWFsTmF2aWdhdGlvbkNh
bmRpZGF0ZXNDb3VudCgwKSAvLyBOT1RFOiBPbmx5IGNhbGxlZCBmcm9tIEludGVybmFscyBmb3Ig
U3BhdGlhbCBOYXZpZ2F0aW9uIHRlc3RpbmcuCiAgICAgLCBtX2ZyYW1lc0hhbmRsaW5nQmVmb3Jl
VW5sb2FkRXZlbnQoMCkKKyAgICAsIG1fc2Vzc2lvbklEKDApCiB7CiAgICAgQVNTRVJUKG1fZWRp
dG9yQ2xpZW50KTsKIApAQCAtMTUwMyw2ICsxNTA1LDExIEBAIHZvaWQgUGFnZTo6c2V0VXNlckNv
bnRlbnRDb250cm9sbGVyKFVzZXJDb250ZW50Q29udHJvbGxlciogdXNlckNvbnRlbnRDb250cm9s
bGVyCiAgICAgICAgIG1fdXNlckNvbnRlbnRDb250cm9sbGVyLT5hZGRQYWdlKCp0aGlzKTsKIH0K
IAordWludDY0X3QgUGFnZTo6c2Vzc2lvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZXNz
aW9uSUQgPyBtX3Nlc3Npb25JRCA6IHNldHRpbmdzLnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSA/
IFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCA6IFNlc3Npb25JRDo6ZGVmYXVsdFNl
c3Npb25JRDsKK30KKwogUGFnZTo6UGFnZUNsaWVudHM6OlBhZ2VDbGllbnRzKCkKICAgICA6IGFs
dGVybmF0aXZlVGV4dENsaWVudChudWxscHRyKQogICAgICwgY2hyb21lQ2xpZW50KG51bGxwdHIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCmluZGV4IDk2ZjExOGQuLjNjYjM3Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0z
OTksNiArMzk5LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRVc2VyQ29udGVudENvbnRyb2xs
ZXIoVXNlckNvbnRlbnRDb250cm9sbGVyKik7CiAgICAgVXNlckNvbnRlbnRDb250cm9sbGVyKiB1
c2VyQ29udGVudENvbnRyb2xsZXIoKSB7IHJldHVybiBtX3VzZXJDb250ZW50Q29udHJvbGxlci5n
ZXQoKTsgfQorICAgIHVpbnQ2NF90IHNlc3Npb25JRCgpIGNvbnN0OworICAgIGJvb2wgaXNTZXNz
aW9uSURTZXQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQorICAgIHZvaWQgc2V0U2Vz
c2lvbklEKHVpbnQ2NF90IHNlc3Npb25JRCkgeyBBU1NFUlQoc2Vzc2lvbklEKTsgbV9zZXNzaW9u
SUQgPSBzZXNzaW9uSUQ7IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIGluaXRHcm91cCgpOwpAQCAt
NTM5LDYgKzU0Miw4IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9mcmFtZXNIYW5kbGluZ0Jl
Zm9yZVVubG9hZEV2ZW50OwogCiAgICAgUmVmUHRyPFVzZXJDb250ZW50Q29udHJvbGxlcj4gbV91
c2VyQ29udGVudENvbnRyb2xsZXI7CisKKyAgICB1aW50NjRfdCBtX3Nlc3Npb25JRDsKIH07CiAK
IGlubGluZSBQYWdlR3JvdXAmIFBhZ2U6Omdyb3VwKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2Vzc2lvbklELmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0NjE1MWUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5oCkBAIC0wLDAgKzEsNDMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFNlc3Npb25JRF9oCisjZGVmaW5lIFNlc3Npb25JRF9oCisKKyNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBTZXNzaW9uSUQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNlc3Npb25JRCk7CitwdWJs
aWM6CisgICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IGRlZmF1bHRTZXNzaW9uSUQgPSAxOworICAg
IHN0YXRpYyBjb25zdCB1aW50NjRfdCBsZWdhY3lQcml2YXRlU2Vzc2lvbklEID0gMjsKKyAgICBz
dGF0aWMgYm9vbCBpc0VwaGVtZXJhbElEKHVpbnQ2NF90IHNlc3Npb25JRCkgeyByZXR1cm4gc2Vz
c2lvbklEICE9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRDsgfQorfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU2Vzc2lvbklEX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyOTA2
YzRhLi4yOTg3MzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTQtMDItMTkgIE1h
cnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBTZXNzaW9uSUQg
Y2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjkxNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6c3RvcmFnZVNlc3Npb24pOiBTd2l0Y2ggdG8gU2Vzc2lvbklEIGNsYXNzLgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6IERpdHRvLgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbik6IERpdHRvLgorICAgICAgICAqIFNoYXJlZC9TZXNzaW9uVHJhY2tlci5j
cHA6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpzZXNzaW9uSUQpOgorICAgICAgICAoV2Vi
S2l0OjpTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbik6CisgICAgICAgICogU2hhcmVkL1Nlc3Np
b25UcmFja2VyLmg6IE1vdmUgY29kZSB0byBTZXNzaW9uSUQgY2xhc3MuCisgICAgICAgICogU2hh
cmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbTogU3dpdGNoIHRvIFNlc3Npb25JRCBjbGFzcy4K
KyAgICAgICAgKFdlYktpdDo6d2ViS2l0Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmll
bGRzRm9yVVJMKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHA6IERpdHRvLgor
ICAgICAgICAoQVBJOjpnZW5lcmF0ZUlEKToKKyAgICAgICAgKEFQSTo6U2Vzc2lvbjo6ZGVmYXVs
dFNlc3Npb24pOgorICAgICAgICAoQVBJOjpTZXNzaW9uOjpsZWdhY3lQcml2YXRlU2Vzc2lvbik6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSVNlc3Npb24uaDogRGl0dG8uCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4
dDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmNyZWF0ZU5ld1dlYlByb2Nlc3MpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOiBEaXR0by4KKyAg
ICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpz
Y2hlZHVsZUxvYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbTogRGl0
dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwOiBEaXR0by4KKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24pOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDogTW92ZSBzZXNzaW9uSUQg
dG8gUGFnZSB0byBhbGxvdyBXZWJDb3JlIHRvIGFjY2VzcyBpdC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNlc3Npb25JRCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmlzVXNpbmdFcGhlbWVyYWxTZXNzaW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0U2Vzc2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmg6CisKIDIwMTQtMDItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgRml4IGEgYnVpbGQgd2FybmluZyBieSBtb3Zpbmcgc29tZSBX
S1dlYlZpZXcgbWV0aG9kcyBmcm9tIHRoZSBwcml2YXRlIGNhdGVnb3J5IHRvIFdLV2ViVmlldyBp
dHNlbGYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMWZlZTQ5OC4uOGU1MTU3
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTE1MCw3ICsxNTEsNyBAQCB2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRTZXJpYWxMb2FkaW5nRW5hYmxlZChi
b29sIGVuYWJsZWQpCiAKIHN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNz
aW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKIHsKLSAgICBpZiAoU2Vzc2lvblRyYWNrZXI6OmlzRXBo
ZW1lcmFsSUQoc2Vzc2lvbklEKSkgeworICAgIGlmIChTZXNzaW9uSUQ6OmlzRXBoZW1lcmFsSUQo
c2Vzc2lvbklEKSkgewogICAgICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHByaXZhdGVTZXNz
aW9uID0gU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oc2Vzc2lvbklEKTsKICAgICAgICAgaWYgKHBy
aXZhdGVTZXNzaW9uKQogICAgICAgICAgICAgcmV0dXJuICpwcml2YXRlU2Vzc2lvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA4
YTEyYWI3Li41Y2UwYjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiV2ViQ29va2ll
TWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApA
QCAtMTYzLDcgKzE2NCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3Jr
UHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1lCiAKICAgICAvLyBGSVhN
RTogaW5zdGVhZCBvZiBoYW5kbGluZyB0aGlzIGhlcmUsIGEgbWVzc2FnZSBzaG91bGQgYmUgc2Vu
dCBsYXRlciAoc2NhbGVzIHRvIG11bHRpcGxlIHNlc3Npb25zKQogICAgIGlmIChwYXJhbWV0ZXJz
LnByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAgICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2
YXRlU2Vzc2lvbklEKTsKKyAgICAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsK
IAogICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbikKICAg
ICAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggYTBhOGY2NS4uODI4Mjk2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250
ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3
b3JraW5nQ29udGV4dC5tbQpAQCAtMjksNiArMjksNyBAQAogI2ltcG9ydCAiU2Vzc2lvblRyYWNr
ZXIuaCIKICNpbXBvcnQgIldlYkVycm9ycy5oIgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVy
cm9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2ltcG9ydCA8V2ViS2l0U3lz
dGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CkBAIC03OSw3ICs4MCw3IEBAIFJlc291cmNlRXJyb3IgUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlCiAKIHZvaWQgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQogewotICAgIEFTU0VSVChTZXNzaW9uVHJhY2tl
cjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKTsKKyAgICBBU1NFUlQoU2Vzc2lvbklEOjppc0Vw
aGVtZXJhbElEKHNlc3Npb25JRCkpOwogCiAgICAgaWYgKFNlc3Npb25UcmFja2VyOjpzZXNzaW9u
KHNlc3Npb25JRCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lv
blRyYWNrZXIuY3BwCmluZGV4IDZlNGQ0ZmYuLjFkOGIzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1Nlc3Npb25UcmFja2VyLmNwcApAQCAtMzMsOSArMzMsNiBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNvbnN0IHVpbnQ2NF90IFNlc3Npb25U
cmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEOwotY29uc3QgdWludDY0X3QgU2Vzc2lvblRyYWNrZXI6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQ7Ci0KIHN0YXRpYyBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIHN0YXRpY1Nlc3Npb25NYXAoKQog
ewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC03Miw3ICs2OSw3IEBAIGNvbnN0
IFN0cmluZyYgU2Vzc2lvblRyYWNrZXI6OmdldElkZW50aWZpZXJCYXNlKCkKIAogTmV0d29ya1N0
b3JhZ2VTZXNzaW9uKiBTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQp
CiB7Ci0gICAgaWYgKHNlc3Npb25JRCA9PSBkZWZhdWx0U2Vzc2lvbklEKQorICAgIGlmIChzZXNz
aW9uSUQgPT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKQogICAgICAgICByZXR1cm4gJk5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiAgICAgcmV0dXJu
IHN0YXRpY1Nlc3Npb25NYXAoKS5nZXQoc2Vzc2lvbklEKTsKIH0KQEAgLTgwLDEzICs3NywxMyBA
QCBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHVpbnQ2NF90
IHNlc3Npb25JRCkKIHVpbnQ2NF90IFNlc3Npb25UcmFja2VyOjpzZXNzaW9uSUQoY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKQogewogICAgIGlmICgmc2Vzc2lvbiA9PSAmTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKSkKLSAgICAgICAgcmV0
dXJuIGRlZmF1bHRTZXNzaW9uSUQ7CisgICAgICAgIHJldHVybiBTZXNzaW9uSUQ6OmRlZmF1bHRT
ZXNzaW9uSUQ7CiAgICAgcmV0dXJuIHN0b3JhZ2VTZXNzaW9uVG9JRCgpLmdldCgmc2Vzc2lvbik7
CiB9CiAKIHZvaWQgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklE
LCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBzZXNzaW9uKQogewotICAg
IEFTU0VSVChzZXNzaW9uSUQgIT0gZGVmYXVsdFNlc3Npb25JRCk7CisgICAgQVNTRVJUKHNlc3Np
b25JRCAhPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQpOwogICAgIHN0b3JhZ2VTZXNzaW9u
VG9JRCgpLnNldChzZXNzaW9uLmdldCgpLCBzZXNzaW9uSUQpOwogICAgIHN0YXRpY1Nlc3Npb25N
YXAoKS5zZXQoc2Vzc2lvbklELCBzdGQ6Om1vdmUoc2Vzc2lvbikpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvU2Vzc2lvblRyYWNrZXIuaAppbmRleCAyZWI4MWM5Li45Y2Y0OWM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBT
ZXNzaW9uVHJhY2tlcl9oCiAKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CkBAIC0zNiw5ICszNyw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgU2Vz
c2lvblRyYWNrZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNlc3Npb25UcmFja2VyKTsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDY0X3QgZGVmYXVsdFNlc3Npb25JRCA9IDE7
Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IGxlZ2FjeVByaXZhdGVTZXNzaW9uSUQgPSAyOwot
ICAgIHN0YXRpYyBib29sIGlzRXBoZW1lcmFsSUQodWludDY0X3Qgc2Vzc2lvbklEKSB7IHJldHVy
biBzZXNzaW9uSUQgIT0gU2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQ7IH0KICAgICAv
LyBGSVhNRTogc2Vzc2lvbk1hcCgpJ3MgcmV0dXJuZWQgbWFwIGRvZXMgbm90IGluY2x1ZGUgZGVm
YXVsdCBzZXNzaW9uLgogICAgIHN0YXRpYyBjb25zdCBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIHNlc3Npb25NYXAoKTsK
ICAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBnZXRJZGVudGlmaWVyQmFzZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0ubW0KaW5kZXggYzZkNzA1Zi4u
MmIzN2I0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9y
YWdlU2hpbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VT
aGltLm1tCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiQ29va2llU3RvcmFnZVNoaW1MaWJy
YXJ5LmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNs
dWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJTZXNzaW9uVHJhY2tl
ci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSAiV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvVVJMLmg+CkBAIC01OCw3ICs1OCw3IEBAIHN0YXRpYyBDRkRpY3Rpb25hcnlSZWYgd2ViS2l0
Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKENGSFRUUENvCiB7CiAg
ICAgU3RyaW5nIGNvb2tpZXM7CiAgICAgVVJMIGZpcnN0UGFydHlGb3JDb29raWVzVVJMOwotICAg
IGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlv
bigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFNlc3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lv
bklELCBmaXJzdFBhcnR5Rm9yQ29va2llc1VSTCwgaW5SZXF1ZXN0VVJMKSwgTWVzc2FnZXM6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRm9yRE9NOjpSZXBseShjb29raWVz
KSwgMCkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVjdGlvbigp
LT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvbklEOjpkZWZhdWx0
U2Vzc2lvbklELCBmaXJzdFBhcnR5Rm9yQ29va2llc1VSTCwgaW5SZXF1ZXN0VVJMKSwgTWVzc2Fn
ZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRm9yRE9NOjpSZXBseShj
b29raWVzKSwgMCkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKGNvb2tpZXMuaXNOdWxs
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHAKaW5kZXggMDhkODRhZi4u
Mzg4MjgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmNwcApAQCAtMjYs
NiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFQSVNlc3Npb24uaCIK
IAorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3Au
aD4KIAogbmFtZXNwYWNlIEFQSSB7CkBAIC0zNCw3ICszNSw3IEBAIHN0YXRpYyB1aW50NjRfdCBn
ZW5lcmF0ZUlEKGJvb2wgaXNFcGhlbWVyYWwpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKIAotICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVTZXNzaW9uSUQgPSBXZWJLaXQ6OlNl
c3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEOworICAgIHN0YXRpYyB1aW50NjRf
dCB1bmlxdWVTZXNzaW9uSUQgPSBXZWJDb3JlOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQ7CiAgICAgQVNTRVJUKGlzRXBoZW1lcmFsKTsKICAgICByZXR1cm4gKyt1bmlxdWVTZXNz
aW9uSUQ7CiB9CkBAIC00Myw3ICs0NCw3IEBAIFNlc3Npb24mIFNlc3Npb246OmRlZmF1bHRTZXNz
aW9uKCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgc3RhdGljIFNl
c3Npb24qIGRlZmF1bHRTZXNzaW9uID0gbmV3IFNlc3Npb24oZmFsc2UsIFdlYktpdDo6U2Vzc2lv
blRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQpOworICAgIHN0YXRpYyBTZXNzaW9uKiBkZWZhdWx0
U2Vzc2lvbiA9IG5ldyBTZXNzaW9uKGZhbHNlLCBXZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1bHRT
ZXNzaW9uSUQpOwogICAgIHJldHVybiAqZGVmYXVsdFNlc3Npb247CiB9CiAKQEAgLTUxLDcgKzUy
LDcgQEAgU2Vzc2lvbiYgU2Vzc2lvbjo6bGVnYWN5UHJpdmF0ZVNlc3Npb24oKQogewogICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBzdGF0aWMgU2Vzc2lvbiogbGVnYWN5UHJp
dmF0ZVNlc3Npb24gPSBuZXcgU2Vzc2lvbih0cnVlLCBXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgU2Vzc2lvbiogbGVnYWN5UHJpdmF0
ZVNlc3Npb24gPSBuZXcgU2Vzc2lvbih0cnVlLCBXZWJDb3JlOjpTZXNzaW9uSUQ6OmxlZ2FjeVBy
aXZhdGVTZXNzaW9uSUQpOwogICAgIHJldHVybiAqbGVnYWN5UHJpdmF0ZVNlc3Npb247CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5oCmluZGV4IGJkNjA0YjIuLmUxNTkwYjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uaApAQCAtMjcsNyArMjcsNiBAQAog
I2RlZmluZSBBUElTZXNzaW9uX2gKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUg
IlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNw
YWNlIEFQSSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggMzQ1
MzY0OC4uZDVhZGRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApA
QCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNdXRhYmxl
RGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKLSNpbmNsdWRlICJT
ZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCiAjaW5jbHVkZSAi
VGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJXS0NvbnRleHRQcml2YXRlLmgiCkBAIC02Myw2ICs2
Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFzaC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TG9nZ2luZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4K
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgpAQCAtNDg2LDE2ICs0ODYsMTYgQEAgdm9pZCBXZWJDb250ZXh0OjpzZXRBbnlQYWdlR3JvdXBN
aWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0ZUJyb3cKICNpZiBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQogICAgIGlmICh1c2VzTmV0d29ya1Byb2Nlc3MoKSAmJiBuZXR3
b3JrUHJvY2VzcygpKSB7CiAgICAgICAgIGlmIChwcml2YXRlQnJvd3NpbmdFbmFibGVkKQotICAg
ICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZh
dGVTZXNzaW9uSUQpLCAwKTsKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Np
b25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCksIDApOwogICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVz
dHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVT
ZXNzaW9uSUQpLCAwKTsKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9u
SUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpLCAwKTsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxF
RChORVRXT1JLX1BST0NFU1MpCiAKICAgICBpZiAocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAg
ICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklE
KSk7CisgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6RW5z
dXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9u
SUQpKTsKICAgICBlbHNlCi0gICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2Vi
UHJvY2Vzczo6RGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQpKTsKKyAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpKTsKIH0KIAogdm9pZCAoKnNfaW52YWxpZE1lc3NhZ2VD
YWxsYmFjaykoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUpOwpAQCAtNjI1LDcgKzYyNSw3IEBAIFdl
YlByb2Nlc3NQcm94eSYgV2ViQ29udGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2VzcygpCiAjZW5kaWYK
IAogICAgIGlmIChXZWJQcmVmZXJlbmNlczo6YW55UGFnZXNBcmVVc2luZ1ByaXZhdGVCcm93c2lu
ZygpKQotICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lv
bklEKSwgMCk7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lv
bklEKSwgMCk7CiAKICAgICBtX3Byb2Nlc3Nlcy5hcHBlbmQocHJvY2Vzcyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAKaW5kZXggZTc0NTBiYS4uZjQyMDUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHAKQEAgLTY3LDYgKzY3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZWN1cml0eVBvbGljeS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckdlc3R1cmVJ
bmRpY2F0b3IuaD4KIApAQCAtMzA4LDkgKzMwOSw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNl
dFByaXZhdGVCcm93c2luZ0VuYWJsZWQoV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwgYm9v
CiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogVGhpcyB0ZXN0LW9ubHkgZnVuY3Rpb24g
ZG9lc24ndCB3b3JrIHdpdGggTmV0d29ya1Byb2Nlc3MsIDxodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTE1Mjc0Pi4KICNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKENG
TkVUV09SSykgfHwgVVNFKFNPVVApCiAgICAgaWYgKGVuYWJsZWQpCi0gICAgICAgIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRy
YWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAgICAgICBXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5
UHJpdmF0ZVNlc3Npb25JRCk7CiAgICAgZWxzZQotICAgICAgICBTZXNzaW9uVHJhY2tlcjo6ZGVz
dHJveVNlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAg
ICAgICBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2
YXRlU2Vzc2lvbklEKTsKICNlbmRpZgogICAgIGNvbnN0IEhhc2hTZXQ8UGFnZSo+JiBwYWdlcyA9
IFBhZ2VHcm91cDo6cGFnZUdyb3VwKHBhZ2VHcm91cC0+aWRlbnRpZmllcigpKS0+cGFnZXMoKTsK
ICAgICBmb3IgKEhhc2hTZXQ8UGFnZSo+OjppdGVyYXRvciBpdGVyID0gcGFnZXMuYmVnaW4oKTsg
aXRlciAhPSBwYWdlcy5lbmQoKTsgKytpdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApp
bmRleCBlYWJkNjU0Li4yYmFjZGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAt
NDcsNiArNDcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVmZXJyZXJQb2xpY3kuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3VicmVzb3VyY2VMb2FkZXIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0xMTgsNyArMTE5LDcgQEAgdm9pZCBX
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciogcmVz
b3VyY2VMb2FkZXIsIENhY2gKICAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gaWRlbnRp
ZmllcjsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+
cGFnZUlEKCkgOiAwOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQgPSB3ZWJGcmFtZSA/
IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAwOwotICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9
IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25UcmFja2VyOjpkZWZhdWx0
U2Vzc2lvbklEOworICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQ
YWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRDsKICAgICBsb2Fk
UGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVzb3VyY2VMb2FkZXItPnJlcXVlc3QoKTsKICAgICBsb2Fk
UGFyYW1ldGVycy5wcmlvcml0eSA9IHByaW9yaXR5OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRl
bnRTbmlmZmluZ1BvbGljeSA9IGNvbnRlbnRTbmlmZmluZ1BvbGljeTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCAzZTcwN2M3Li5jZTdkZDUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1QYXN0
ZWJvYXJkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VOYW1lc3BhY2Uu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9VUkwuaD4KQEAgLTI2Myw3ICsyNjQsNyBAQCB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dAogICAg
IGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIgPSByZXNvdXJjZUxvYWRJZGVudGlmaWVyOwogICAg
IGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5wYWdlSUQoKSA6
IDA7CiAgICAgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCA9IHdlYkZyYW1lID8gd2ViRnJhbWUt
PmZyYW1lSUQoKSA6IDA7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/
IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQ7
CisgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Np
b25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEOwogICAgIGxvYWRQYXJhbWV0ZXJz
LnJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLnByaW9yaXR5ID0gUmVzb3Vy
Y2VMb2FkUHJpb3JpdHlIaWdoZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmlu
Z1BvbGljeSA9IFNuaWZmQ29udGVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lm1tCmluZGV4IDNjNTI1MTYuLmY2NmY5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5j
bHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAKQEAgLTQ0LDcgKzQ1LDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAgICAgCiB2b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3Vy
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQogewotICAgIEFTU0VS
VChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKTsKKyAgICBBU1NFUlQo
U2Vzc2lvbklEOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCkpOwogCiAgICAgaWYgKFNlc3Npb25U
cmFja2VyOjpzZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTEwMSwxMCAr
MTAyLDcgQEAgUmVzb3VyY2VFcnJvciBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2Vk
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXEKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYg
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24oKSBjb25zdAogewogICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBpZiAoZnJhbWUoKSkKLSAgICAgICAg
cmV0dXJuICpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbih3ZWJGcmFtZUxvYWRlckNsaWVudCgpLT53
ZWJGcmFtZSgpLT5wYWdlKCktPnNlc3Npb25JRCgpKTsKLSAgICByZXR1cm4gTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKKyAgICByZXR1cm4gKlNlc3Npb25U
cmFja2VyOjpzZXNzaW9uKGZyYW1lKCkgPyBmcmFtZSgpLT5wYWdlKCktPnNlc3Npb25JRCgpIDog
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKTsKIH0KIAogV2ViRnJhbWVMb2FkZXJDbGllbnQq
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OndlYkZyYW1lTG9hZGVyQ2xpZW50KCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291
cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAppbmRl
eCA0ZDEzZGMzLi5kZGIxNGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiU2Vzc2lvblRy
YWNrZXIuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3Mu
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtNTUsNyArNTYsNyBAQCBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkZy
YW1lKiBmcmFtZSkKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6c3RvcmFnZVNlc3Npb24oKSBjb25zdAogewogICAgIGlmIChmcmFtZSgpICYmIGZyYW1l
KCktPnNldHRpbmdzKCkucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4g
KlNlc3Npb25UcmFja2VyOjpzZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vz
c2lvbklEKTsKKyAgICAgICAgcmV0dXJuICpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbihTZXNzaW9u
SUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOwogCiAgICAgcmV0dXJuIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYjI1M2MwNy4uNmZhMzY5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTMz
LDYgKzEzMyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFkb3dSb290Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KQEAgLTIyNiw3ICsyMjcsNiBAQCBQ
YXNzUmVmUHRyPFdlYlBhZ2U+IFdlYlBhZ2U6OmNyZWF0ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZQogCiBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJ
RCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICA6IG1f
cGFnZUlEKHBhZ2VJRCkKLSAgICAsIG1fc2Vzc2lvbklEKDApCiAgICAgLCBtX3ZpZXdTaXplKHBh
cmFtZXRlcnMudmlld1NpemUpCiAgICAgLCBtX2hhc1NlZW5QbHVnaW4oZmFsc2UpCiAgICAgLCBt
X3VzZUZpeGVkTGF5b3V0KGZhbHNlKQpAQCAtMjEwOCwyMSArMjEwOCwyMSBAQCB2b2lkIFdlYlBh
Z2U6OnNldExheWVySG9zdGluZ01vZGUodW5zaWduZWQgbGF5ZXJIb3N0aW5nTW9kZSkKIAogdWlu
dDY0X3QgV2ViUGFnZTo6c2Vzc2lvbklEKCkgY29uc3QKIHsKLSAgICBpZiAobV9zZXNzaW9uSUQp
Ci0gICAgICAgIHJldHVybiBtX3Nlc3Npb25JRDsKKyAgICBpZiAobV9wYWdlLT5pc1Nlc3Npb25J
RFNldCgpKQorICAgICAgICByZXR1cm4gbV9wYWdlLT5zZXNzaW9uSUQoKTsKIAotICAgIHJldHVy
biBtX3BhZ2UtPnNldHRpbmdzKCkucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpID8gU2Vzc2lvblRy
YWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQgOiBTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNl
c3Npb25JRDsKKyAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLnByaXZhdGVCcm93c2luZ0Vu
YWJsZWQoKSA/IFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCA6IFNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRDsKIH0KIAogYm9vbCBXZWJQYWdlOjppc1VzaW5nRXBoZW1lcmFsU2Vz
c2lvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFNlc3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElE
KHNlc3Npb25JRCgpKTsKKyAgICByZXR1cm4gU2Vzc2lvbklEOjppc0VwaGVtZXJhbElEKHNlc3Np
b25JRCgpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZXRTZXNzaW9uSUQodWludDY0X3Qgc2Vzc2lv
bklEKQogewotICAgIG1fc2Vzc2lvbklEID0gc2Vzc2lvbklEOwotICAgIGlmIChTZXNzaW9uVHJh
Y2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKQorICAgIG1fcGFnZS0+c2V0U2Vzc2lvbklE
KHNlc3Npb25JRCk7CisgICAgaWYgKFNlc3Npb25JRDo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQp
KQogICAgICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5lbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKHNlc3Npb25JRCk7CiB9CiAKQEAgLTI0MjgsOCArMjQyOCw4IEBAIHZvaWQgV2ViUGFnZTo6
dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAg
c2V0dGluZ3Muc2V0TG9jYWxTdG9yYWdlRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXko
V2ViUHJlZmVyZW5jZXNLZXk6OmxvY2FsU3RvcmFnZUVuYWJsZWRLZXkoKSkpOwogICAgIHNldHRp
bmdzLnNldFhTU0F1ZGl0b3JFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6eHNzQXVkaXRvckVuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldEZy
YW1lRmxhdHRlbmluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVu
Y2VzS2V5OjpmcmFtZUZsYXR0ZW5pbmdFbmFibGVkS2V5KCkpKTsKLSAgICBpZiAobV9zZXNzaW9u
SUQpCi0gICAgICAgIHNldHRpbmdzLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoU2Vzc2lvblRy
YWNrZXI6OmlzRXBoZW1lcmFsSUQobV9zZXNzaW9uSUQpKTsKKyAgICBpZiAobV9wYWdlLT5pc1Nl
c3Npb25JRFNldCgpKQorICAgICAgICBzZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVk
KFNlc3Npb25JRDo6aXNFcGhlbWVyYWxJRChtX3BhZ2UtPnNlc3Npb25JRCgpKSk7CiAgICAgZWxz
ZQogICAgICAgICBzZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHN0b3JlLmdldEJv
b2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZEtl
eSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChzdG9yZS5nZXRC
b29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmRldmVsb3BlckV4dHJhc0VuYWJsZWRL
ZXkoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggYWE0YWMyYy4uOTM2MTA5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCkBAIC05MDAsNyArOTAwLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcG9y
dFVzZWRGZWF0dXJlcygpOwogCiAgICAgdWludDY0X3QgbV9wYWdlSUQ7Ci0gICAgdWludDY0X3Qg
bV9zZXNzaW9uSUQ7CiAKICAgICBPd25QdHI8V2ViQ29yZTo6UGFnZT4gbV9wYWdlOwogICAgIFJl
ZlB0cjxXZWJGcmFtZT4gbV9tYWluRnJhbWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224830</attachid>
            <date>2014-02-20 20:47:38 -0800</date>
            <delta_ts>2014-02-20 21:36:39 -0800</delta_ts>
            <desc>changelog</desc>
            <filename>sessionidclass.03.diff</filename>
            <type>text/plain</type>
            <size>32140</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkNjFlODJlLi43OWNiNzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTQtMDItMjAgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IENyZWF0ZSBTZXNzaW9uSUQgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjkxNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6IEFk
ZCBzZXNzaW9uSUQgbWVtYmVyLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpzZXNzaW9uSUQpOiBSZXRyaWV2ZSBzZXNzaW9uSUQgb3IgdXNl
IHNldHRpbmdzIGlmIG5vdCBzZXQuCisgICAgICAgICogcGFnZS9QYWdlLmg6IEFkZCBzZXNzaW9u
SUQgbWVtYmVyLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aXNTZXNzaW9uSURTZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0U2Vzc2lvbklEKToKKyAgICAgICAgKiBwYWdlL1Nlc3Np
b25JRC5oOiBTdGF0aWMgdXRpbGl0eSBjbGFzcyBmb3Igc2Vzc2lvbklEcyBwdWxsZWQgZnJvbSBT
ZXNzaW9uVHJhY2tlci4KKyAgICAgICAgKFdlYkNvcmU6OlNlc3Npb25JRDo6aXNFcGhlbWVyYWxJ
RCk6CisKIDIwMTQtMDItMjAgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNv
bT4KIAogICAgICAgICBTdGFydCB0byB1c2Ugc3RkOjp1bmlxdWVfcHRyIGZvciBEcmFnSW1hZ2VM
b2FkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDJmOWYxODEuLjE2ZDYzMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDE4MSw2ICs0MTgxLDcgQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luSGFz
aC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
c3Npb25JRC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxO
YXZpZ2F0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNTFlMDViZi4uMzllYjQ0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjIxMSw2ICsyMjEx
LDcgQEAKIAkJNzU0MTVENUExMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHRM
aXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTQx
NUQ1NDEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCAqLzsgfTsK
IAkJNzU1M0NGRTgxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1M0NGRTYxMDhG
NDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oICovOyB9OwogCQk3NTUzQ0ZF
OTEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTNDRkU3MTA4RjQ3M0YwMEVB
MjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwICovOyB9OworCQk3NTZCMkNFMTE4Qjcx
MDE2MDBGRUNGQUEgLyogU2Vzc2lvbklELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3NTZCMkNFMDE4QjcxMDE2MDBGRUNGQUEgLyogU2Vzc2lvbklELmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzU3OEY5
MEMxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkwOTExRERGMjY5MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXQuaCAqLzsgfTsKIAkJNzU3OEY5MEQxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElu
cHV0Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3NTc4RjkwQTExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnQuaCAqLzsgfTsK
IAkJNzU3OEY5MjAxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0TGlzdGVuZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTFFMTFFNEUz
MjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggKi87IH07CkBAIC05MTM5LDYgKzkx
NDAsNyBAQAogCQk3NTQxNUQ1NDEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3Vs
dExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTcGVlY2hJbnB1dFJl
c3VsdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU1M0NGRTYxMDhGNDcz
RjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUaW1lbGluZVJlY29yZEZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzU1M0NGRTcxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFj
dG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaW1lbGluZVJl
Y29yZEZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTZCMkNFMDE4
QjcxMDE2MDBGRUNGQUEgLyogU2Vzc2lvbklELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNlc3Npb25JRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc4Rjkw
OTExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoSW5wdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzU3OEY5MEExMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0Q2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTc1NzhGOTFFMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1
dExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0
TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MTY2LDYgKzE2MTY4
LDcgQEAKIAkJCQlCQ0QwRTBGOTBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW5IYXNo
LmggKi8sCiAJCQkJOTc0RDJEQTIxNDZBNTM1RDAwRDUxRjhCIC8qIFNlY3VyaXR5UG9saWN5LmNw
cCAqLywKIAkJCQk5NzREMkRBMzE0NkE1MzVEMDBENTFGOEIgLyogU2VjdXJpdHlQb2xpY3kuaCAq
LywKKwkJCQk3NTZCMkNFMDE4QjcxMDE2MDBGRUNGQUEgLyogU2Vzc2lvbklELmggKi8sCiAJCQkJ
MTRDOUE1RTkwQjNEMTA1RjAwNUEwMjMyIC8qIFNldHRpbmdzLmNwcCAqLywKIAkJCQlGNTg3ODYz
QTAyREUzQTE0MDFFQTQxMjIgLyogU2V0dGluZ3MuaCAqLywKIAkJCQlCQzU5REVGODE2OURFREMz
MDAxNkFDMzQgLyogU2V0dGluZ3MuaW4gKi8sCkBAIC0yMzkzNiw2ICsyMzkzOSw3IEBACiAJCQkJ
N0EyNDU4N0MxMDIxRUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFnZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTY0RUQ0NDE4MzIwOEM3MDBFQThGRjEgLyogSURCU2VydmVyQ29ubmVjdGlv
bkxldmVsREIuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzRDRDNDc5MTJFMDc2NjMwMDNEQTE1MCAv
KiBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTZCMkNF
MTE4QjcxMDE2MDBGRUNGQUEgLyogU2Vzc2lvbklELmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTc0
RUNCQjEwMTgzOUE2MDBCRjkzOUUgLyogSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwNzA1ODUzNDE3RkRFNkQ5MDA1RjJCQ0IgLyogSlNNZWRpYVRyYWNrQ29u
c3RyYWludHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3OERBMjBFMTUyMEVCOEMwMDYxNDFDMSAv
KiBJbnNwZWN0b3JXZWJGcm9udGVuZERpc3BhdGNoZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCmluZGV4IGNhNTI1NzkuLjAxNDQyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAt
NzUsNiArNzUsNyBAQAogI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2Ny
aXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCisjaW5j
bHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFy
ZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgpAQCAtMTkxLDYgKzE5Miw3IEBA
IFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogI2VuZGlmCiAgICAgLCBtX2xh
c3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZXNDb3VudCgwKSAvLyBOT1RFOiBPbmx5IGNhbGxl
ZCBmcm9tIEludGVybmFscyBmb3IgU3BhdGlhbCBOYXZpZ2F0aW9uIHRlc3RpbmcuCiAgICAgLCBt
X2ZyYW1lc0hhbmRsaW5nQmVmb3JlVW5sb2FkRXZlbnQoMCkKKyAgICAsIG1fc2Vzc2lvbklEKDAp
CiB7CiAgICAgQVNTRVJUKG1fZWRpdG9yQ2xpZW50KTsKIApAQCAtMTUwMyw2ICsxNTA1LDExIEBA
IHZvaWQgUGFnZTo6c2V0VXNlckNvbnRlbnRDb250cm9sbGVyKFVzZXJDb250ZW50Q29udHJvbGxl
ciogdXNlckNvbnRlbnRDb250cm9sbGVyCiAgICAgICAgIG1fdXNlckNvbnRlbnRDb250cm9sbGVy
LT5hZGRQYWdlKCp0aGlzKTsKIH0KIAordWludDY0X3QgUGFnZTo6c2Vzc2lvbklEKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9zZXNzaW9uSUQgPyBtX3Nlc3Npb25JRCA6IHNldHRpbmdzLnByaXZh
dGVCcm93c2luZ0VuYWJsZWQoKSA/IFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCA6
IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRDsKK30KKwogUGFnZTo6UGFnZUNsaWVudHM6OlBh
Z2VDbGllbnRzKCkKICAgICA6IGFsdGVybmF0aXZlVGV4dENsaWVudChudWxscHRyKQogICAgICwg
Y2hyb21lQ2xpZW50KG51bGxwdHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDk2ZjExOGQuLjNjYjM3Y2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCkBAIC0zOTksNiArMzk5LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBz
ZXRVc2VyQ29udGVudENvbnRyb2xsZXIoVXNlckNvbnRlbnRDb250cm9sbGVyKik7CiAgICAgVXNl
ckNvbnRlbnRDb250cm9sbGVyKiB1c2VyQ29udGVudENvbnRyb2xsZXIoKSB7IHJldHVybiBtX3Vz
ZXJDb250ZW50Q29udHJvbGxlci5nZXQoKTsgfQorICAgIHVpbnQ2NF90IHNlc3Npb25JRCgpIGNv
bnN0OworICAgIGJvb2wgaXNTZXNzaW9uSURTZXQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25J
RDsgfQorICAgIHZvaWQgc2V0U2Vzc2lvbklEKHVpbnQ2NF90IHNlc3Npb25JRCkgeyBBU1NFUlQo
c2Vzc2lvbklEKTsgbV9zZXNzaW9uSUQgPSBzZXNzaW9uSUQ7IH0KIAogcHJpdmF0ZToKICAgICB2
b2lkIGluaXRHcm91cCgpOwpAQCAtNTM5LDYgKzU0Miw4IEBAIHByaXZhdGU6CiAgICAgdW5zaWdu
ZWQgbV9mcmFtZXNIYW5kbGluZ0JlZm9yZVVubG9hZEV2ZW50OwogCiAgICAgUmVmUHRyPFVzZXJD
b250ZW50Q29udHJvbGxlcj4gbV91c2VyQ29udGVudENvbnRyb2xsZXI7CisKKyAgICB1aW50NjRf
dCBtX3Nlc3Npb25JRDsKIH07CiAKIGlubGluZSBQYWdlR3JvdXAmIFBhZ2U6Omdyb3VwKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklELmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Nlc3Npb25JRC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0
NjE1MWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5o
CkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNlc3Npb25JRF9oCisjZGVm
aW5lIFNlc3Npb25JRF9oCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBTZXNzaW9uSUQgeworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFNlc3Npb25JRCk7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IGRlZmF1
bHRTZXNzaW9uSUQgPSAxOworICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBsZWdhY3lQcml2YXRl
U2Vzc2lvbklEID0gMjsKKyAgICBzdGF0aWMgYm9vbCBpc0VwaGVtZXJhbElEKHVpbnQ2NF90IHNl
c3Npb25JRCkgeyByZXR1cm4gc2Vzc2lvbklEICE9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RDsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU2Vzc2lvbklE
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCAyOTA2YzRhLi4yOTg3MzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDkgQEAKKzIwMTQtMDItMTkgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAg
ICAgIENyZWF0ZSBTZXNzaW9uSUQgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkxNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6c3RvcmFnZVNlc3Npb24pOiBTd2l0Y2gg
dG8gU2Vzc2lvbklEIGNsYXNzLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3
b3JrUHJvY2Vzcyk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6IERpdHRvLgorICAgICAgICAqIFNo
YXJlZC9TZXNzaW9uVHJhY2tlci5jcHA6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9u
VHJhY2tlcjo6c2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpzZXNz
aW9uSUQpOgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbik6Cisg
ICAgICAgICogU2hhcmVkL1Nlc3Npb25UcmFja2VyLmg6IE1vdmUgY29kZSB0byBTZXNzaW9uSUQg
Y2xhc3MuCisgICAgICAgICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbTogU3dpdGNo
IHRvIFNlc3Npb25JRCBjbGFzcy4KKyAgICAgICAgKFdlYktpdDo6d2ViS2l0Q29va2llU3RvcmFn
ZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
U2Vzc2lvbi5jcHA6IERpdHRvLgorICAgICAgICAoQVBJOjpnZW5lcmF0ZUlEKToKKyAgICAgICAg
KEFQSTo6U2Vzc2lvbjo6ZGVmYXVsdFNlc3Npb24pOgorICAgICAgICAoQVBJOjpTZXNzaW9uOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSVNlc3Npb24uaDog
RGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOiBEaXR0by4KKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29udGV4dDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmNyZWF0ZU5ld1dl
YlByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnNldFBy
aXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDogRGl0dG8uCisgICAgICAg
IChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5tbTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcDogTW92ZSBzZXNzaW9uSUQgdG8gUGFnZSB0byBhbGxvdyBXZWJDb3JlIHRvIGFjY2VzcyBp
dC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnNlc3Npb25JRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmlzVXNpbmdF
cGhlbWVyYWxTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0U2Vzc2lvbklE
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMTQtMDItMjAgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGEgYnVpbGQgd2Fy
bmluZyBieSBtb3Zpbmcgc29tZSBXS1dlYlZpZXcgbWV0aG9kcyBmcm9tIHRoZSBwcml2YXRlIGNh
dGVnb3J5IHRvIFdLV2ViVmlldyBpdHNlbGYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
aW5kZXggMWZlZTQ5OC4uOGU1MTU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApA
QCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4K
ICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAg
LTE1MCw3ICsxNTEsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRT
ZXJpYWxMb2FkaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAKIHN0YXRpYyBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKIHsKLSAgICBpZiAo
U2Vzc2lvblRyYWNrZXI6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKSkgeworICAgIGlmIChTZXNz
aW9uSUQ6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKSkgewogICAgICAgICBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24qIHByaXZhdGVTZXNzaW9uID0gU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oc2Vzc2lv
bklEKTsKICAgICAgICAgaWYgKHByaXZhdGVTZXNzaW9uKQogICAgICAgICAgICAgcmV0dXJuICpw
cml2YXRlU2Vzc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAppbmRleCA4YTEyYWI3Li41Y2UwYjYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC00NSw2ICs0NSw3IEBA
CiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2lu
Zy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtMTYzLDcgKzE2NCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1lCiAKICAgICAvLyBGSVhNRTogaW5zdGVhZCBvZiBoYW5kbGluZyB0aGlzIGhlcmUsIGEg
bWVzc2FnZSBzaG91bGQgYmUgc2VudCBsYXRlciAoc2NhbGVzIHRvIG11bHRpcGxlIHNlc3Npb25z
KQogICAgIGlmIChwYXJhbWV0ZXJzLnByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAgICAgIFJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Np
b25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKKyAgICAgICAgUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdh
Y3lQcml2YXRlU2Vzc2lvbklEKTsKIAogICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3Rp
bmdOZXR3b3JrU2Vzc2lvbikKICAgICAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hU
b05ld1Rlc3RpbmdTZXNzaW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggYTBhOGY2
NS4uODI4Mjk2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFj
L1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMjksNiArMjksNyBAQAog
I2ltcG9ydCAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbXBvcnQgIldlYkVycm9ycy5oIgogI2ltcG9y
dCA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Nlc3Npb25JRC5o
PgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRo
cmVhZC5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC03OSw3ICs4MCw3IEBA
IFJlc291cmNlRXJyb3IgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlCiAKIHZvaWQgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6
OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQogewotICAg
IEFTU0VSVChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKTsKKyAgICBB
U1NFUlQoU2Vzc2lvbklEOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCkpOwogCiAgICAgaWYgKFNl
c3Npb25UcmFja2VyOjpzZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwCmluZGV4IDZlNGQ0ZmYuLjFkOGIzNDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcApAQCAtMzMsOSArMzMs
NiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNv
bnN0IHVpbnQ2NF90IFNlc3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEOwotY29uc3QgdWlu
dDY0X3QgU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQ7Ci0KIHN0YXRpYyBI
YXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4m
IHN0YXRpY1Nlc3Npb25NYXAoKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBA
IC03Miw3ICs2OSw3IEBAIGNvbnN0IFN0cmluZyYgU2Vzc2lvblRyYWNrZXI6OmdldElkZW50aWZp
ZXJCYXNlKCkKIAogTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBTZXNzaW9uVHJhY2tlcjo6c2Vzc2lv
bih1aW50NjRfdCBzZXNzaW9uSUQpCiB7Ci0gICAgaWYgKHNlc3Npb25JRCA9PSBkZWZhdWx0U2Vz
c2lvbklEKQorICAgIGlmIChzZXNzaW9uSUQgPT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KQogICAgICAgICByZXR1cm4gJk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VT
ZXNzaW9uKCk7CiAgICAgcmV0dXJuIHN0YXRpY1Nlc3Npb25NYXAoKS5nZXQoc2Vzc2lvbklEKTsK
IH0KQEAgLTgwLDEzICs3NywxMyBAQCBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIFNlc3Npb25UcmFj
a2VyOjpzZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKIHVpbnQ2NF90IFNlc3Npb25UcmFja2Vy
OjpzZXNzaW9uSUQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKQogewogICAg
IGlmICgmc2Vzc2lvbiA9PSAmTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNl
c3Npb24oKSkKLSAgICAgICAgcmV0dXJuIGRlZmF1bHRTZXNzaW9uSUQ7CisgICAgICAgIHJldHVy
biBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQ7CiAgICAgcmV0dXJuIHN0b3JhZ2VTZXNzaW9u
VG9JRCgpLmdldCgmc2Vzc2lvbik7CiB9CiAKIHZvaWQgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Np
b24odWludDY0X3Qgc2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNz
aW9uPiBzZXNzaW9uKQogewotICAgIEFTU0VSVChzZXNzaW9uSUQgIT0gZGVmYXVsdFNlc3Npb25J
RCk7CisgICAgQVNTRVJUKHNlc3Npb25JRCAhPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQp
OwogICAgIHN0b3JhZ2VTZXNzaW9uVG9JRCgpLnNldChzZXNzaW9uLmdldCgpLCBzZXNzaW9uSUQp
OwogICAgIHN0YXRpY1Nlc3Npb25NYXAoKS5zZXQoc2Vzc2lvbklELCBzdGQ6Om1vdmUoc2Vzc2lv
bikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2Vy
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaAppbmRleCAyZWI4MWM5
Li45Y2Y0OWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNr
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaApAQCAtMjcs
NiArMjcsNyBAQAogI2RlZmluZSBTZXNzaW9uVHJhY2tlcl9oCiAKICNpbmNsdWRlIDxXZWJDb3Jl
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0zNiw5ICszNyw2IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogY2xhc3MgU2Vzc2lvblRyYWNrZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFNlc3Npb25UcmFja2VyKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDY0X3Qg
ZGVmYXVsdFNlc3Npb25JRCA9IDE7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IGxlZ2FjeVBy
aXZhdGVTZXNzaW9uSUQgPSAyOwotICAgIHN0YXRpYyBib29sIGlzRXBoZW1lcmFsSUQodWludDY0
X3Qgc2Vzc2lvbklEKSB7IHJldHVybiBzZXNzaW9uSUQgIT0gU2Vzc2lvblRyYWNrZXI6OmRlZmF1
bHRTZXNzaW9uSUQ7IH0KICAgICAvLyBGSVhNRTogc2Vzc2lvbk1hcCgpJ3MgcmV0dXJuZWQgbWFw
IGRvZXMgbm90IGluY2x1ZGUgZGVmYXVsdCBzZXNzaW9uLgogICAgIHN0YXRpYyBjb25zdCBIYXNo
TWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uPj4mIHNlc3Npb25NYXAoKTsKICAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBnZXRJZGVudGlm
aWVyQmFzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVT
dG9yYWdlU2hpbS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNo
aW0ubW0KaW5kZXggYzZkNzA1Zi4uMmIzN2I0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAi
Q29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNp
bmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CkBAIC01OCw3ICs1OCw3IEBAIHN0YXRpYyBD
RkRpY3Rpb25hcnlSZWYgd2ViS2l0Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRz
Rm9yVVJMKENGSFRUUENvCiB7CiAgICAgU3RyaW5nIGNvb2tpZXM7CiAgICAgVVJMIGZpcnN0UGFy
dHlGb3JDb29raWVzVVJMOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nv
bm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFNlc3Npb25U
cmFja2VyOjpkZWZhdWx0U2Vzc2lvbklELCBmaXJzdFBhcnR5Rm9yQ29va2llc1VSTCwgaW5SZXF1
ZXN0VVJMKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVz
Rm9yRE9NOjpSZXBseShjb29raWVzKSwgMCkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQo
KS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklELCBmaXJzdFBhcnR5Rm9yQ29va2llc1VSTCwg
aW5SZXF1ZXN0VVJMKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpD
b29raWVzRm9yRE9NOjpSZXBseShjb29raWVzKSwgMCkpCiAgICAgICAgIHJldHVybiAwOwogCiAg
ICAgaWYgKGNvb2tpZXMuaXNOdWxsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lv
bi5jcHAKaW5kZXggMDhkODRhZi4uMzg4MjgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UElTZXNzaW9uLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkFQSVNlc3Npb24uaCIKIAorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAj
aW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIEFQSSB7CkBAIC0zNCw3ICszNSw3
IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUlEKGJvb2wgaXNFcGhlbWVyYWwpCiB7CiAgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVT
ZXNzaW9uSUQgPSBXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklE
OworICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVTZXNzaW9uSUQgPSBXZWJDb3JlOjpTZXNzaW9u
SUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQ7CiAgICAgQVNTRVJUKGlzRXBoZW1lcmFsKTsKICAg
ICByZXR1cm4gKyt1bmlxdWVTZXNzaW9uSUQ7CiB9CkBAIC00Myw3ICs0NCw3IEBAIFNlc3Npb24m
IFNlc3Npb246OmRlZmF1bHRTZXNzaW9uKCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOwogCi0gICAgc3RhdGljIFNlc3Npb24qIGRlZmF1bHRTZXNzaW9uID0gbmV3IFNlc3Npb24o
ZmFsc2UsIFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQpOworICAgIHN0
YXRpYyBTZXNzaW9uKiBkZWZhdWx0U2Vzc2lvbiA9IG5ldyBTZXNzaW9uKGZhbHNlLCBXZWJDb3Jl
OjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQpOwogICAgIHJldHVybiAqZGVmYXVsdFNlc3Np
b247CiB9CiAKQEAgLTUxLDcgKzUyLDcgQEAgU2Vzc2lvbiYgU2Vzc2lvbjo6bGVnYWN5UHJpdmF0
ZVNlc3Npb24oKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBzdGF0
aWMgU2Vzc2lvbiogbGVnYWN5UHJpdmF0ZVNlc3Npb24gPSBuZXcgU2Vzc2lvbih0cnVlLCBXZWJL
aXQ6OlNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKKyAgICBzdGF0aWMg
U2Vzc2lvbiogbGVnYWN5UHJpdmF0ZVNlc3Npb24gPSBuZXcgU2Vzc2lvbih0cnVlLCBXZWJDb3Jl
OjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOwogICAgIHJldHVybiAqbGVnYWN5
UHJpdmF0ZVNlc3Npb247CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUElTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5oCmlu
ZGV4IGJkNjA0YjIuLmUxNTkwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUElTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24u
aApAQCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBBUElTZXNzaW9uX2gKIAogI2luY2x1ZGUgIkFQ
SU9iamVjdC5oIgotI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KIAogbmFtZXNwYWNlIEFQSSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5jcHAKaW5kZXggMzQ1MzY0OC4uZDVhZGRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJNdXRhYmxlRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRl
bnNpb24uaCIKLSNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIlN0YXRpc3Rp
Y3NEYXRhLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJXS0NvbnRleHRQ
cml2YXRlLmgiCkBAIC02Myw2ICs2Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFzaC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxy
dW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNs
dWRlIDx3dGYvTWFpblRocmVhZC5oPgpAQCAtNDg2LDE2ICs0ODYsMTYgQEAgdm9pZCBXZWJDb250
ZXh0OjpzZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wg
cHJpdmF0ZUJyb3cKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIGlmICh1c2VzTmV0
d29ya1Byb2Nlc3MoKSAmJiBuZXR3b3JrUHJvY2VzcygpKSB7CiAgICAgICAgIGlmIChwcml2YXRl
QnJvd3NpbmdFbmFibGVkKQotICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lv
blRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpLCAwKTsKKyAgICAgICAgICAgIG5ldHdv
cmtQcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpFbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCksIDApOwog
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRy
YWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpLCAwKTsKKyAgICAgICAgICAgIG5ldHdvcmtQ
cm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpLCAwKTsKICAg
ICB9CiAjZW5kaWYgLy8gRU5BQkxFRChORVRXT1JLX1BST0NFU1MpCiAKICAgICBpZiAocHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZCkKLSAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEKSk7CisgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNz
YWdlczo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpKTsKICAgICBlbHNlCi0gICAgICAgIHNlbmRUb0FsbFBy
b2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6RGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Np
b24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpKTsKKyAgICAgICAgc2Vu
ZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpKTsKIH0KIAogdm9p
ZCAoKnNfaW52YWxpZE1lc3NhZ2VDYWxsYmFjaykoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUpOwpA
QCAtNjI1LDcgKzYyNSw3IEBAIFdlYlByb2Nlc3NQcm94eSYgV2ViQ29udGV4dDo6Y3JlYXRlTmV3
V2ViUHJvY2VzcygpCiAjZW5kaWYKIAogICAgIGlmIChXZWJQcmVmZXJlbmNlczo6YW55UGFnZXNB
cmVVc2luZ1ByaXZhdGVCcm93c2luZygpKQotICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2Vy
OjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKSwgMCk7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklE
OjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKSwgMCk7CiAKICAgICBtX3Byb2Nlc3Nlcy5hcHBlbmQo
cHJvY2Vzcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggZTc0NTBiYS4uZjQyMDUwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTY3LDYgKzY3LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eVBvbGljeS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVXNlckdlc3R1cmVJbmRpY2F0b3IuaD4KIApAQCAtMzA4LDkgKzMwOSw5IEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGU6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoV2ViUGFnZUdyb3Vw
UHJveHkqIHBhZ2VHcm91cCwgYm9vCiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogVGhp
cyB0ZXN0LW9ubHkgZnVuY3Rpb24gZG9lc24ndCB3b3JrIHdpdGggTmV0d29ya1Byb2Nlc3MsIDxo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1Mjc0Pi4KICNpZiBQTEFU
Rk9STShDT0NPQSkgfHwgVVNFKENGTkVUV09SSykgfHwgVVNFKFNPVVApCiAgICAgaWYgKGVuYWJs
ZWQpCi0gICAgICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAg
ICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7CiAgICAgZWxzZQotICAgICAg
ICBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVBy
aXZhdGVTZXNzaW9uSUQpOworICAgICAgICBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24o
U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKICNlbmRpZgogICAgIGNvbnN0IEhh
c2hTZXQ8UGFnZSo+JiBwYWdlcyA9IFBhZ2VHcm91cDo6cGFnZUdyb3VwKHBhZ2VHcm91cC0+aWRl
bnRpZmllcigpKS0+cGFnZXMoKTsKICAgICBmb3IgKEhhc2hTZXQ8UGFnZSo+OjppdGVyYXRvciBp
dGVyID0gcGFnZXMuYmVnaW4oKTsgaXRlciAhPSBwYWdlcy5lbmQoKTsgKytpdGVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNj
aGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyLmNwcAppbmRleCBlYWJkNjU0Li4yYmFjZGJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVm
ZXJyZXJQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lv
bklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U3VicmVzb3VyY2VMb2FkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0x
MTgsNyArMTE5LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9h
ZChSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIsIENhY2gKICAgICBsb2FkUGFyYW1ldGVy
cy5pZGVudGlmaWVyID0gaWRlbnRpZmllcjsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQg
PSB3ZWJQYWdlID8gd2ViUGFnZS0+cGFnZUlEKCkgOiAwOwogICAgIGxvYWRQYXJhbWV0ZXJzLndl
YkZyYW1lSUQgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAwOwotICAgIGxvYWRQ
YXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNl
c3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEOworICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Np
b25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVs
dFNlc3Npb25JRDsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVzb3VyY2VMb2FkZXIt
PnJlcXVlc3QoKTsKICAgICBsb2FkUGFyYW1ldGVycy5wcmlvcml0eSA9IHByaW9yaXR5OwogICAg
IGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IGNvbnRlbnRTbmlmZmluZ1Bv
bGljeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCAzZTcwN2M3Li5j
ZTdkZDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC01NCw2ICs1
NCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGxhdGZvcm1QYXN0ZWJvYXJkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUVycm9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1N0b3JhZ2VOYW1lc3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KQEAgLTI2Myw3ICsyNjQsNyBAQCB2b2lkIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dAogICAgIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIgPSByZXNvdXJj
ZUxvYWRJZGVudGlmaWVyOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHdlYlBhZ2Ug
PyB3ZWJQYWdlLT5wYWdlSUQoKSA6IDA7CiAgICAgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCA9
IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDA7Ci0gICAgbG9hZFBhcmFtZXRlcnMu
c2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvblRyYWNr
ZXI6OmRlZmF1bHRTZXNzaW9uSUQ7CisgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2Vi
UGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
OwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0
ZXJzLnByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlIaWdoZXN0OwogICAgIGxvYWRQYXJh
bWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IFNuaWZmQ29udGVudDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4IDNjNTI1MTYuLmY2NmY5
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
bWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpA
QCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUVycm9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAKQEAg
LTQ0LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCiB2b2lkIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vz
c2lvbklEKQogewotICAgIEFTU0VSVChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNz
aW9uSUQpKTsKKyAgICBBU1NFUlQoU2Vzc2lvbklEOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCkp
OwogCiAgICAgaWYgKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAg
IHJldHVybjsKQEAgLTEwMSwxMCArMTAyLDcgQEAgUmVzb3VyY2VFcnJvciBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXEKIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNl
c3Npb24oKSBjb25zdAogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBp
ZiAoZnJhbWUoKSkKLSAgICAgICAgcmV0dXJuICpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbih3ZWJG
cmFtZUxvYWRlckNsaWVudCgpLT53ZWJGcmFtZSgpLT5wYWdlKCktPnNlc3Npb25JRCgpKTsKLSAg
ICByZXR1cm4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsK
KyAgICByZXR1cm4gKlNlc3Npb25UcmFja2VyOjpzZXNzaW9uKGZyYW1lKCkgPyBmcmFtZSgpLT5w
YWdlKCktPnNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKTsKIH0KIAog
V2ViRnJhbWVMb2FkZXJDbGllbnQqIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OndlYkZyYW1l
TG9hZGVyQ2xpZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmNwcAppbmRleCA0ZDEzZGMzLi5kZGIxNGU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
IApAQCAtNTUsNyArNTYsNyBAQCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0KFdlYkZyYW1lKiBmcmFtZSkKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYg
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24oKSBjb25zdAogewogICAg
IGlmIChmcmFtZSgpICYmIGZyYW1lKCktPnNldHRpbmdzKCkucHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZCgpKQotICAgICAgICByZXR1cm4gKlNlc3Npb25UcmFja2VyOjpzZXNzaW9uKFNlc3Npb25UcmFj
a2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKKyAgICAgICAgcmV0dXJuICpTZXNzaW9uVHJh
Y2tlcjo6c2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOwogCiAgICAg
cmV0dXJuIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
YjI1M2MwNy4uNmZhMzY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtMTMzLDYgKzEzMyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hl
bWVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TaGFkb3dSb290Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4K
QEAgLTIyNiw3ICsyMjcsNiBAQCBQYXNzUmVmUHRyPFdlYlBhZ2U+IFdlYlBhZ2U6OmNyZWF0ZSh1
aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZQogCiBXZWJQYWdlOjpX
ZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYg
cGFyYW1ldGVycykKICAgICA6IG1fcGFnZUlEKHBhZ2VJRCkKLSAgICAsIG1fc2Vzc2lvbklEKDAp
CiAgICAgLCBtX3ZpZXdTaXplKHBhcmFtZXRlcnMudmlld1NpemUpCiAgICAgLCBtX2hhc1NlZW5Q
bHVnaW4oZmFsc2UpCiAgICAgLCBtX3VzZUZpeGVkTGF5b3V0KGZhbHNlKQpAQCAtMjEwOCwyMSAr
MjEwOCwyMSBAQCB2b2lkIFdlYlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUodW5zaWduZWQgbGF5
ZXJIb3N0aW5nTW9kZSkKIAogdWludDY0X3QgV2ViUGFnZTo6c2Vzc2lvbklEKCkgY29uc3QKIHsK
LSAgICBpZiAobV9zZXNzaW9uSUQpCi0gICAgICAgIHJldHVybiBtX3Nlc3Npb25JRDsKKyAgICBp
ZiAobV9wYWdlLT5pc1Nlc3Npb25JRFNldCgpKQorICAgICAgICByZXR1cm4gbV9wYWdlLT5zZXNz
aW9uSUQoKTsKIAotICAgIHJldHVybiBtX3BhZ2UtPnNldHRpbmdzKCkucHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCgpID8gU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQgOiBTZXNz
aW9uVHJhY2tlcjo6ZGVmYXVsdFNlc3Npb25JRDsKKyAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5n
cygpLnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSA/IFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNl
c3Npb25JRCA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRDsKIH0KIAogYm9vbCBXZWJQYWdl
Ojppc1VzaW5nRXBoZW1lcmFsU2Vzc2lvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFNlc3Npb25U
cmFja2VyOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCgpKTsKKyAgICByZXR1cm4gU2Vzc2lvbklE
Ojppc0VwaGVtZXJhbElEKHNlc3Npb25JRCgpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZXRTZXNz
aW9uSUQodWludDY0X3Qgc2Vzc2lvbklEKQogewotICAgIG1fc2Vzc2lvbklEID0gc2Vzc2lvbklE
OwotICAgIGlmIChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKQorICAg
IG1fcGFnZS0+c2V0U2Vzc2lvbklEKHNlc3Npb25JRCk7CisgICAgaWYgKFNlc3Npb25JRDo6aXNF
cGhlbWVyYWxJRChzZXNzaW9uSUQpKQogICAgICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5lbnN1
cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHNlc3Npb25JRCk7CiB9CiAKQEAgLTI0MjgsOCArMjQy
OCw4IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5j
ZXNTdG9yZSYgc3RvcmUpCiAgICAgc2V0dGluZ3Muc2V0TG9jYWxTdG9yYWdlRW5hYmxlZChzdG9y
ZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmxvY2FsU3RvcmFnZUVuYWJs
ZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldFhTU0F1ZGl0b3JFbmFibGVkKHN0b3JlLmdldEJv
b2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6eHNzQXVkaXRvckVuYWJsZWRLZXkoKSkp
OwogICAgIHNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpmcmFtZUZsYXR0ZW5pbmdFbmFibGVkS2V5KCkp
KTsKLSAgICBpZiAobV9zZXNzaW9uSUQpCi0gICAgICAgIHNldHRpbmdzLnNldFByaXZhdGVCcm93
c2luZ0VuYWJsZWQoU2Vzc2lvblRyYWNrZXI6OmlzRXBoZW1lcmFsSUQobV9zZXNzaW9uSUQpKTsK
KyAgICBpZiAobV9wYWdlLT5pc1Nlc3Npb25JRFNldCgpKQorICAgICAgICBzZXR0aW5ncy5zZXRQ
cml2YXRlQnJvd3NpbmdFbmFibGVkKFNlc3Npb25JRDo6aXNFcGhlbWVyYWxJRChtX3BhZ2UtPnNl
c3Npb25JRCgpKSk7CiAgICAgZWxzZQogICAgICAgICBzZXR0aW5ncy5zZXRQcml2YXRlQnJvd3Np
bmdFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6cHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0RGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmRl
dmVsb3BlckV4dHJhc0VuYWJsZWRLZXkoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYWE0YWMyYy4uOTM2MTA5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC05MDAsNyArOTAwLDYgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHJlcG9ydFVzZWRGZWF0dXJlcygpOwogCiAgICAgdWludDY0X3QgbV9w
YWdlSUQ7Ci0gICAgdWludDY0X3QgbV9zZXNzaW9uSUQ7CiAKICAgICBPd25QdHI8V2ViQ29yZTo6
UGFnZT4gbV9wYWdlOwogICAgIFJlZlB0cjxXZWJGcmFtZT4gbV9tYWluRnJhbWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224832</attachid>
            <date>2014-02-20 21:36:39 -0800</date>
            <delta_ts>2014-02-21 00:10:47 -0800</delta_ts>
            <desc>typo</desc>
            <filename>sessionidclass.04.diff</filename>
            <type>text/plain</type>
            <size>32142</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkNjFlODJlLi43OWNiNzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTQtMDItMjAgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IENyZWF0ZSBTZXNzaW9uSUQgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjkxNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6IEFk
ZCBzZXNzaW9uSUQgbWVtYmVyLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpzZXNzaW9uSUQpOiBSZXRyaWV2ZSBzZXNzaW9uSUQgb3IgdXNl
IHNldHRpbmdzIGlmIG5vdCBzZXQuCisgICAgICAgICogcGFnZS9QYWdlLmg6IEFkZCBzZXNzaW9u
SUQgbWVtYmVyLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aXNTZXNzaW9uSURTZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0U2Vzc2lvbklEKToKKyAgICAgICAgKiBwYWdlL1Nlc3Np
b25JRC5oOiBTdGF0aWMgdXRpbGl0eSBjbGFzcyBmb3Igc2Vzc2lvbklEcyBwdWxsZWQgZnJvbSBT
ZXNzaW9uVHJhY2tlci4KKyAgICAgICAgKFdlYkNvcmU6OlNlc3Npb25JRDo6aXNFcGhlbWVyYWxJ
RCk6CisKIDIwMTQtMDItMjAgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNv
bT4KIAogICAgICAgICBTdGFydCB0byB1c2Ugc3RkOjp1bmlxdWVfcHRyIGZvciBEcmFnSW1hZ2VM
b2FkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDJmOWYxODEuLjE2ZDYzMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDE4MSw2ICs0MTgxLDcgQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luSGFz
aC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
c3Npb25JRC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxO
YXZpZ2F0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNTFlMDViZi4uMzllYjQ0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjIxMSw2ICsyMjEx
LDcgQEAKIAkJNzU0MTVENUExMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHRM
aXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTQx
NUQ1NDEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCAqLzsgfTsK
IAkJNzU1M0NGRTgxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1M0NGRTYxMDhG
NDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oICovOyB9OwogCQk3NTUzQ0ZF
OTEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTNDRkU3MTA4RjQ3M0YwMEVB
MjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwICovOyB9OworCQk3NTZCMkNFMTE4Qjcx
MDE2MDBGRUNGQUEgLyogU2Vzc2lvbklELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3NTZCMkNFMDE4QjcxMDE2MDBGRUNGQUEgLyogU2Vzc2lvbklELmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzU3OEY5
MEMxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkwOTExRERGMjY5MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXQuaCAqLzsgfTsKIAkJNzU3OEY5MEQxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElu
cHV0Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3NTc4RjkwQTExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnQuaCAqLzsgfTsK
IAkJNzU3OEY5MjAxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0TGlzdGVuZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTFFMTFFNEUz
MjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggKi87IH07CkBAIC05MTM5LDYgKzkx
NDAsNyBAQAogCQk3NTQxNUQ1NDEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3Vs
dExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTcGVlY2hJbnB1dFJl
c3VsdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU1M0NGRTYxMDhGNDcz
RjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUaW1lbGluZVJlY29yZEZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzU1M0NGRTcxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFj
dG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaW1lbGluZVJl
Y29yZEZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTZCMkNFMDE4
QjcxMDE2MDBGRUNGQUEgLyogU2Vzc2lvbklELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNlc3Npb25JRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc4Rjkw
OTExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoSW5wdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzU3OEY5MEExMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0Q2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTc1NzhGOTFFMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1
dExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0
TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MTY2LDYgKzE2MTY4
LDcgQEAKIAkJCQlCQ0QwRTBGOTBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW5IYXNo
LmggKi8sCiAJCQkJOTc0RDJEQTIxNDZBNTM1RDAwRDUxRjhCIC8qIFNlY3VyaXR5UG9saWN5LmNw
cCAqLywKIAkJCQk5NzREMkRBMzE0NkE1MzVEMDBENTFGOEIgLyogU2VjdXJpdHlQb2xpY3kuaCAq
LywKKwkJCQk3NTZCMkNFMDE4QjcxMDE2MDBGRUNGQUEgLyogU2Vzc2lvbklELmggKi8sCiAJCQkJ
MTRDOUE1RTkwQjNEMTA1RjAwNUEwMjMyIC8qIFNldHRpbmdzLmNwcCAqLywKIAkJCQlGNTg3ODYz
QTAyREUzQTE0MDFFQTQxMjIgLyogU2V0dGluZ3MuaCAqLywKIAkJCQlCQzU5REVGODE2OURFREMz
MDAxNkFDMzQgLyogU2V0dGluZ3MuaW4gKi8sCkBAIC0yMzkzNiw2ICsyMzkzOSw3IEBACiAJCQkJ
N0EyNDU4N0MxMDIxRUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFnZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTY0RUQ0NDE4MzIwOEM3MDBFQThGRjEgLyogSURCU2VydmVyQ29ubmVjdGlv
bkxldmVsREIuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzRDRDNDc5MTJFMDc2NjMwMDNEQTE1MCAv
KiBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTZCMkNF
MTE4QjcxMDE2MDBGRUNGQUEgLyogU2Vzc2lvbklELmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTc0
RUNCQjEwMTgzOUE2MDBCRjkzOUUgLyogSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwNzA1ODUzNDE3RkRFNkQ5MDA1RjJCQ0IgLyogSlNNZWRpYVRyYWNrQ29u
c3RyYWludHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3OERBMjBFMTUyMEVCOEMwMDYxNDFDMSAv
KiBJbnNwZWN0b3JXZWJGcm9udGVuZERpc3BhdGNoZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCmluZGV4IGNhNTI1NzkuLmU1YzFiNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAt
NzUsNiArNzUsNyBAQAogI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2Ny
aXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCisjaW5j
bHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFy
ZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgpAQCAtMTkxLDYgKzE5Miw3IEBA
IFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogI2VuZGlmCiAgICAgLCBtX2xh
c3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZXNDb3VudCgwKSAvLyBOT1RFOiBPbmx5IGNhbGxl
ZCBmcm9tIEludGVybmFscyBmb3IgU3BhdGlhbCBOYXZpZ2F0aW9uIHRlc3RpbmcuCiAgICAgLCBt
X2ZyYW1lc0hhbmRsaW5nQmVmb3JlVW5sb2FkRXZlbnQoMCkKKyAgICAsIG1fc2Vzc2lvbklEKDAp
CiB7CiAgICAgQVNTRVJUKG1fZWRpdG9yQ2xpZW50KTsKIApAQCAtMTUwMyw2ICsxNTA1LDExIEBA
IHZvaWQgUGFnZTo6c2V0VXNlckNvbnRlbnRDb250cm9sbGVyKFVzZXJDb250ZW50Q29udHJvbGxl
ciogdXNlckNvbnRlbnRDb250cm9sbGVyCiAgICAgICAgIG1fdXNlckNvbnRlbnRDb250cm9sbGVy
LT5hZGRQYWdlKCp0aGlzKTsKIH0KIAordWludDY0X3QgUGFnZTo6c2Vzc2lvbklEKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9zZXNzaW9uSUQgPyBtX3Nlc3Npb25JRCA6IHNldHRpbmdzKCkucHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCgpID8gU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklE
IDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEOworfQorCiBQYWdlOjpQYWdlQ2xpZW50czo6
UGFnZUNsaWVudHMoKQogICAgIDogYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KG51bGxwdHIpCiAgICAg
LCBjaHJvbWVDbGllbnQobnVsbHB0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggOTZmMTE4ZC4uM2NiMzdj
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKQEAgLTM5OSw2ICszOTksOSBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNldFVzZXJDb250ZW50Q29udHJvbGxlcihVc2VyQ29udGVudENvbnRyb2xsZXIqKTsKICAgICBV
c2VyQ29udGVudENvbnRyb2xsZXIqIHVzZXJDb250ZW50Q29udHJvbGxlcigpIHsgcmV0dXJuIG1f
dXNlckNvbnRlbnRDb250cm9sbGVyLmdldCgpOyB9CisgICAgdWludDY0X3Qgc2Vzc2lvbklEKCkg
Y29uc3Q7CisgICAgYm9vbCBpc1Nlc3Npb25JRFNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lv
bklEOyB9CisgICAgdm9pZCBzZXRTZXNzaW9uSUQodWludDY0X3Qgc2Vzc2lvbklEKSB7IEFTU0VS
VChzZXNzaW9uSUQpOyBtX3Nlc3Npb25JRCA9IHNlc3Npb25JRDsgfQogCiBwcml2YXRlOgogICAg
IHZvaWQgaW5pdEdyb3VwKCk7CkBAIC01MzksNiArNTQyLDggQEAgcHJpdmF0ZToKICAgICB1bnNp
Z25lZCBtX2ZyYW1lc0hhbmRsaW5nQmVmb3JlVW5sb2FkRXZlbnQ7CiAKICAgICBSZWZQdHI8VXNl
ckNvbnRlbnRDb250cm9sbGVyPiBtX3VzZXJDb250ZW50Q29udHJvbGxlcjsKKworICAgIHVpbnQ2
NF90IG1fc2Vzc2lvbklEOwogfTsKIAogaW5saW5lIFBhZ2VHcm91cCYgUGFnZTo6Z3JvdXAoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSUQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2Vzc2lvbklELmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YzQ2MTUxZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklE
LmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2Vzc2lvbklEX2gKKyNk
ZWZpbmUgU2Vzc2lvbklEX2gKKworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlc3Npb25JRCB7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoU2Vzc2lvbklEKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgdWludDY0X3QgZGVm
YXVsdFNlc3Npb25JRCA9IDE7CisgICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IGxlZ2FjeVByaXZh
dGVTZXNzaW9uSUQgPSAyOworICAgIHN0YXRpYyBib29sIGlzRXBoZW1lcmFsSUQodWludDY0X3Qg
c2Vzc2lvbklEKSB7IHJldHVybiBzZXNzaW9uSUQgIT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTZXNzaW9u
SURfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDI5MDZjNGEuLjI5ODczOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0OSBAQAorMjAxNC0wMi0xOSAgTWFydGluIEhvY2sgIDxtaG9ja0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQ3JlYXRlIFNlc3Npb25JRCBjbGFzcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTE0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpzdG9yYWdlU2Vzc2lvbik6IFN3aXRj
aCB0byBTZXNzaW9uSUQgY2xhc3MuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5l
dHdvcmtQcm9jZXNzKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdD
b250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKTogRGl0dG8uCisgICAgICAgICog
U2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlNlc3Np
b25UcmFja2VyOjpzZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OnNl
c3Npb25JRCk6CisgICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpzZXRTZXNzaW9uKToK
KyAgICAgICAgKiBTaGFyZWQvU2Vzc2lvblRyYWNrZXIuaDogTW92ZSBjb2RlIHRvIFNlc3Npb25J
RCBjbGFzcy4KKyAgICAgICAgKiBTaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tOiBTd2l0
Y2ggdG8gU2Vzc2lvbklEIGNsYXNzLgorICAgICAgICAoV2ViS2l0Ojp3ZWJLaXRDb29raWVTdG9y
YWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UElTZXNzaW9uLmNwcDogRGl0dG8uCisgICAgICAgIChBUEk6OmdlbmVyYXRlSUQpOgorICAgICAg
ICAoQVBJOjpTZXNzaW9uOjpkZWZhdWx0U2Vzc2lvbik6CisgICAgICAgIChBUEk6OlNlc3Npb246
OmxlZ2FjeVByaXZhdGVTZXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJU2Vzc2lvbi5o
OiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6IERpdHRvLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpzZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRl
QnJvd3NpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6Y3JlYXRlTmV3
V2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6c2V0
UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHA6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOiBEaXR0by4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0Lm1tOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5jcHA6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwOiBNb3ZlIHNlc3Npb25JRCB0byBQYWdlIHRvIGFsbG93IFdlYkNvcmUgdG8gYWNjZXNz
IGl0LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6c2Vzc2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aXNVc2lu
Z0VwaGVtZXJhbFNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRTZXNzaW9u
SUQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAxNC0wMi0yMCAgVGltIEhv
cnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYSBidWlsZCB3
YXJuaW5nIGJ5IG1vdmluZyBzb21lIFdLV2ViVmlldyBtZXRob2RzIGZyb20gdGhlIHByaXZhdGUg
Y2F0ZWdvcnkgdG8gV0tXZWJWaWV3IGl0c2VsZi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAppbmRleCAxZmVlNDk4Li44ZTUxNTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5o
PgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpA
QCAtMTUwLDcgKzE1MSw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNl
dFNlcmlhbExvYWRpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKIAogc3RhdGljIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQogewotICAgIGlm
IChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKSB7CisgICAgaWYgKFNl
c3Npb25JRDo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKSB7CiAgICAgICAgIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiogcHJpdmF0ZVNlc3Npb24gPSBTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbihzZXNz
aW9uSUQpOwogICAgICAgICBpZiAocHJpdmF0ZVNlc3Npb24pCiAgICAgICAgICAgICByZXR1cm4g
KnByaXZhdGVTZXNzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCmluZGV4IDhhMTJhYjcuLjVjZTBiNjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTQ1LDYgKzQ1LDcg
QEAKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dn
aW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC0xNjMsNyArMTY0LDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWUKIAogICAgIC8vIEZJWE1FOiBpbnN0ZWFkIG9mIGhhbmRsaW5nIHRoaXMgaGVyZSwg
YSBtZXNzYWdlIHNob3VsZCBiZSBzZW50IGxhdGVyIChzY2FsZXMgdG8gbXVsdGlwbGUgc2Vzc2lv
bnMpCiAgICAgaWYgKHBhcmFtZXRlcnMucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAgICAgICAg
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vz
c2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAgICAgICBSZW1vdGVOZXR3
b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQpOwogCiAgICAgaWYgKHBhcmFtZXRlcnMuc2hvdWxkVXNlVGVz
dGluZ05ldHdvcmtTZXNzaW9uKQogICAgICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRj
aFRvTmV3VGVzdGluZ1Nlc3Npb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCBhMGE4
ZjY1Li44MjgyOTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9t
YWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW1wb3J0ICJTZXNzaW9uVHJhY2tlci5oIgogI2ltcG9ydCAiV2ViRXJyb3JzLmgiCiAjaW1w
b3J0IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2Vzc2lvbklE
Lmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTc5LDcgKzgwLDcg
QEAgUmVzb3VyY2VFcnJvciBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWUKIAogdm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4
dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCiB7Ci0g
ICAgQVNTRVJUKFNlc3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCkpOworICAg
IEFTU0VSVChTZXNzaW9uSUQ6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKSk7CiAKICAgICBpZiAo
U2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAKaW5kZXggNmU0ZDRmZi4uMWQ4YjM0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwCkBAIC0zMyw5ICsz
Myw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
Y29uc3QgdWludDY0X3QgU2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQ7Ci1jb25zdCB1
aW50NjRfdCBTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRDsKLQogc3RhdGlj
IEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+
PiYgc3RhdGljU2Vzc2lvbk1hcCgpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
QEAgLTcyLDcgKzY5LDcgQEAgY29uc3QgU3RyaW5nJiBTZXNzaW9uVHJhY2tlcjo6Z2V0SWRlbnRp
ZmllckJhc2UoKQogCiBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIFNlc3Npb25UcmFja2VyOjpzZXNz
aW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKIHsKLSAgICBpZiAoc2Vzc2lvbklEID09IGRlZmF1bHRT
ZXNzaW9uSUQpCisgICAgaWYgKHNlc3Npb25JRCA9PSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQpCiAgICAgICAgIHJldHVybiAmTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFn
ZVNlc3Npb24oKTsKICAgICByZXR1cm4gc3RhdGljU2Vzc2lvbk1hcCgpLmdldChzZXNzaW9uSUQp
OwogfQpAQCAtODAsMTMgKzc3LDEzIEBAIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogU2Vzc2lvblRy
YWNrZXI6OnNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQogdWludDY0X3QgU2Vzc2lvblRyYWNr
ZXI6OnNlc3Npb25JRChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24pCiB7CiAg
ICAgaWYgKCZzZXNzaW9uID09ICZOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdl
U2Vzc2lvbigpKQotICAgICAgICByZXR1cm4gZGVmYXVsdFNlc3Npb25JRDsKKyAgICAgICAgcmV0
dXJuIFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRDsKICAgICByZXR1cm4gc3RvcmFnZVNlc3Np
b25Ub0lEKCkuZ2V0KCZzZXNzaW9uKTsKIH0KIAogdm9pZCBTZXNzaW9uVHJhY2tlcjo6c2V0U2Vz
c2lvbih1aW50NjRfdCBzZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNl
c3Npb24+IHNlc3Npb24pCiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRCAhPSBkZWZhdWx0U2Vzc2lv
bklEKTsKKyAgICBBU1NFUlQoc2Vzc2lvbklEICE9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCk7CiAgICAgc3RvcmFnZVNlc3Npb25Ub0lEKCkuc2V0KHNlc3Npb24uZ2V0KCksIHNlc3Npb25J
RCk7CiAgICAgc3RhdGljU2Vzc2lvbk1hcCgpLnNldChzZXNzaW9uSUQsIHN0ZDo6bW92ZShzZXNz
aW9uKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNr
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5oCmluZGV4IDJlYjgx
YzkuLjljZjQ5YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJh
Y2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAjZGVmaW5lIFNlc3Npb25UcmFja2VyX2gKIAogI2luY2x1ZGUgPFdlYkNv
cmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTM2LDkgKzM3LDYgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiBjbGFzcyBTZXNzaW9uVHJhY2tlciB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoU2Vzc2lvblRyYWNrZXIpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50NjRf
dCBkZWZhdWx0U2Vzc2lvbklEID0gMTsKLSAgICBzdGF0aWMgY29uc3QgdWludDY0X3QgbGVnYWN5
UHJpdmF0ZVNlc3Npb25JRCA9IDI7Ci0gICAgc3RhdGljIGJvb2wgaXNFcGhlbWVyYWxJRCh1aW50
NjRfdCBzZXNzaW9uSUQpIHsgcmV0dXJuIHNlc3Npb25JRCAhPSBTZXNzaW9uVHJhY2tlcjo6ZGVm
YXVsdFNlc3Npb25JRDsgfQogICAgIC8vIEZJWE1FOiBzZXNzaW9uTWFwKCkncyByZXR1cm5lZCBt
YXAgZG9lcyBub3QgaW5jbHVkZSBkZWZhdWx0IHNlc3Npb24uCiAgICAgc3RhdGljIGNvbnN0IEhh
c2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb24+PiYgc2Vzc2lvbk1hcCgpOwogICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIGdldElkZW50
aWZpZXJCYXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tp
ZVN0b3JhZ2VTaGltLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdl
U2hpbS5tbQppbmRleCBjNmQ3MDVmLi4yYjM3YjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0ubW0KQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRl
ICJDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgot
I2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KQEAgLTU4LDcgKzU4LDcgQEAgc3RhdGlj
IENGRGljdGlvbmFyeVJlZiB3ZWJLaXRDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVs
ZHNGb3JVUkwoQ0ZIVFRQQ28KIHsKICAgICBTdHJpbmcgY29va2llczsKICAgICBVUkwgZmlyc3RQ
YXJ0eUZvckNvb2tpZXNVUkw7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3Jr
Q29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lv
blRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQsIGZpcnN0UGFydHlGb3JDb29raWVzVVJMLCBpblJl
cXVlc3RVUkwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tp
ZXNGb3JET006OlJlcGx5KGNvb2tpZXMpLCAwKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJl
ZCgpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRW
YWx1ZShTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQsIGZpcnN0UGFydHlGb3JDb29raWVzVVJM
LCBpblJlcXVlc3RVUkwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OkNvb2tpZXNGb3JET006OlJlcGx5KGNvb2tpZXMpLCAwKSkKICAgICAgICAgcmV0dXJuIDA7CiAK
ICAgICBpZiAoY29va2llcy5pc051bGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUElTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNz
aW9uLmNwcAppbmRleCAwOGQ4NGFmLi4zODgyODFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSVNlc3Npb24uY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiQVBJU2Vzc2lvbi5oIgogCisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4K
ICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgQVBJIHsKQEAgLTM0LDcgKzM1
LDcgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlSUQoYm9vbCBpc0VwaGVtZXJhbCkKIHsKICAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1
ZVNlc3Npb25JRCA9IFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9u
SUQ7CisgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVNlc3Npb25JRCA9IFdlYkNvcmU6OlNlc3Np
b25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRDsKICAgICBBU1NFUlQoaXNFcGhlbWVyYWwpOwog
ICAgIHJldHVybiArK3VuaXF1ZVNlc3Npb25JRDsKIH0KQEAgLTQzLDcgKzQ0LDcgQEAgU2Vzc2lv
biYgU2Vzc2lvbjo6ZGVmYXVsdFNlc3Npb24oKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAKLSAgICBzdGF0aWMgU2Vzc2lvbiogZGVmYXVsdFNlc3Npb24gPSBuZXcgU2Vzc2lv
bihmYWxzZSwgV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNlc3Npb25JRCk7CisgICAg
c3RhdGljIFNlc3Npb24qIGRlZmF1bHRTZXNzaW9uID0gbmV3IFNlc3Npb24oZmFsc2UsIFdlYkNv
cmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCk7CiAgICAgcmV0dXJuICpkZWZhdWx0U2Vz
c2lvbjsKIH0KIApAQCAtNTEsNyArNTIsNyBAQCBTZXNzaW9uJiBTZXNzaW9uOjpsZWdhY3lQcml2
YXRlU2Vzc2lvbigpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHN0
YXRpYyBTZXNzaW9uKiBsZWdhY3lQcml2YXRlU2Vzc2lvbiA9IG5ldyBTZXNzaW9uKHRydWUsIFdl
YktpdDo6U2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAgIHN0YXRp
YyBTZXNzaW9uKiBsZWdhY3lQcml2YXRlU2Vzc2lvbiA9IG5ldyBTZXNzaW9uKHRydWUsIFdlYkNv
cmU6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7CiAgICAgcmV0dXJuICpsZWdh
Y3lQcml2YXRlU2Vzc2lvbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSVNlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmgK
aW5kZXggYmQ2MDRiMi4uZTE1OTBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lv
bi5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIEFQSVNlc3Npb25faAogCiAjaW5jbHVkZSAi
QVBJT2JqZWN0LmgiCi0jaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgQVBJIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcAppbmRleCAzNDUzNjQ4Li5kNWFkZGZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIk11dGFibGVEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4
dGVuc2lvbi5oIgotI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlz
dGljc0RhdGEuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIldLQ29udGV4
dFByaXZhdGUuaCIKQEAgLTYzLDYgKzYyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNo
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUg
PHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC00ODYsMTYgKzQ4NiwxNiBAQCB2b2lkIFdlYkNv
bnRleHQ6OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9v
bCBwcml2YXRlQnJvdwogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgaWYgKHVzZXNO
ZXR3b3JrUHJvY2VzcygpICYmIG5ldHdvcmtQcm9jZXNzKCkpIHsKICAgICAgICAgaWYgKHByaXZh
dGVCcm93c2luZ0VuYWJsZWQpCi0gICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNz
aW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCksIDApOworICAgICAgICAgICAgbmV0
d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkVuc3VyZVByaXZh
dGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKSwgMCk7
CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9u
VHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCksIDApOworICAgICAgICAgICAgbmV0d29y
a1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRlc3Ryb3lQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCksIDApOwog
ICAgIH0KICNlbmRpZiAvLyBFTkFCTEVEKE5FVFdPUktfUFJPQ0VTUykKIAogICAgIGlmIChwcml2
YXRlQnJvd3NpbmdFbmFibGVkKQotICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6
OldlYlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpKTsKKyAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25J
RDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCkpOwogICAgIGVsc2UKLSAgICAgICAgc2VuZFRvQWxs
UHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCkpOworICAgICAgICBz
ZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRlc3Ryb3lQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCkpOwogfQogCiB2
b2lkICgqc19pbnZhbGlkTWVzc2FnZUNhbGxiYWNrKShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSk7
CkBAIC02MjUsNyArNjI1LDcgQEAgV2ViUHJvY2Vzc1Byb3h5JiBXZWJDb250ZXh0OjpjcmVhdGVO
ZXdXZWJQcm9jZXNzKCkKICNlbmRpZgogCiAgICAgaWYgKFdlYlByZWZlcmVuY2VzOjphbnlQYWdl
c0FyZVVzaW5nUHJpdmF0ZUJyb3dzaW5nKCkpCi0gICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNr
ZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpLCAwKTsKKyAgICAgICAgcHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9u
SUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpLCAwKTsKIAogICAgIG1fcHJvY2Vzc2VzLmFwcGVu
ZChwcm9jZXNzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCBlNzQ1MGJhLi5mNDIwNTBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNjcsNiArNjcsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmln
aW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5UG9saWN5Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Vc2VyR2VzdHVyZUluZGljYXRvci5oPgogCkBAIC0zMDgsOSArMzA5LDkgQEAg
dm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChXZWJQYWdlR3Jv
dXBQcm94eSogcGFnZUdyb3VwLCBib28KICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBU
aGlzIHRlc3Qtb25seSBmdW5jdGlvbiBkb2Vzbid0IHdvcmsgd2l0aCBOZXR3b3JrUHJvY2Vzcywg
PGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTUyNzQ+LgogI2lmIFBM
QVRGT1JNKENPQ09BKSB8fCBVU0UoQ0ZORVRXT1JLKSB8fCBVU0UoU09VUCkKICAgICBpZiAoZW5h
YmxlZCkKLSAgICAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7Cisg
ICAgICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKICAgICBlbHNlCi0gICAg
ICAgIFNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5
UHJpdmF0ZVNlc3Npb25JRCk7CisgICAgICAgIFNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lv
bihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOwogI2VuZGlmCiAgICAgY29uc3Qg
SGFzaFNldDxQYWdlKj4mIHBhZ2VzID0gUGFnZUdyb3VwOjpwYWdlR3JvdXAocGFnZUdyb3VwLT5p
ZGVudGlmaWVyKCkpLT5wYWdlcygpOwogICAgIGZvciAoSGFzaFNldDxQYWdlKj46Oml0ZXJhdG9y
IGl0ZXIgPSBwYWdlcy5iZWdpbigpOyBpdGVyICE9IHBhZ2VzLmVuZCgpOyArK2l0ZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuY3BwCmluZGV4IGVhYmQ2NTQuLjJiYWNkYmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZWZlcnJlclBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VCdWZmZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNz
aW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TdWJyZXNvdXJjZUxvYWRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAg
LTExOCw3ICsxMTksNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVM
b2FkKFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlciwgQ2FjaAogICAgIGxvYWRQYXJhbWV0
ZXJzLmlkZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJ
RCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5wYWdlSUQoKSA6IDA7CiAgICAgbG9hZFBhcmFtZXRlcnMu
d2ViRnJhbWVJRCA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDA7Ci0gICAgbG9h
ZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDog
U2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQ7CisgICAgbG9hZFBhcmFtZXRlcnMuc2Vz
c2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEOwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXNvdXJjZUxvYWRl
ci0+cmVxdWVzdCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnByaW9yaXR5ID0gcHJpb3JpdHk7CiAg
ICAgbG9hZFBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5ID0gY29udGVudFNuaWZmaW5n
UG9saWN5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDNlNzA3Yzcu
LmNlN2RkNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTU0LDYg
KzU0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlRXJyb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU3RvcmFnZU5hbWVzcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3ViZnJhbWVMb2Fk
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgpAQCAtMjYzLDcgKzI2NCw3IEBAIHZvaWQg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtp
bmdDb250ZXh0KiBjb250ZXh0CiAgICAgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllciA9IHJlc291
cmNlTG9hZElkZW50aWZpZXI7CiAgICAgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlEID0gd2ViUGFn
ZSA/IHdlYlBhZ2UtPnBhZ2VJRCgpIDogMDsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlE
ID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgpIDogMDsKLSAgICBsb2FkUGFyYW1ldGVy
cy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBTZXNzaW9uVHJh
Y2tlcjo6ZGVmYXVsdFNlc3Npb25JRDsKKyAgICBsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3
ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQ7CiAgICAgbG9hZFBhcmFtZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgbG9hZFBhcmFt
ZXRlcnMucHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eUhpZ2hlc3Q7CiAgICAgbG9hZFBh
cmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5ID0gU25pZmZDb250ZW50OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggM2M1MjUxNi4uZjY2
ZjkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1t
CkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlRXJyb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KIApA
QCAtNDQsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAKIHZvaWQgV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBz
ZXNzaW9uSUQpCiB7Ci0gICAgQVNTRVJUKFNlc3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKHNl
c3Npb25JRCkpOworICAgIEFTU0VSVChTZXNzaW9uSUQ6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklE
KSk7CiAKICAgICBpZiAoU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTAxLDEwICsxMDIsNyBAQCBSZXNvdXJjZUVycm9yIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcQog
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdl
U2Vzc2lvbigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAg
IGlmIChmcmFtZSgpKQotICAgICAgICByZXR1cm4gKlNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHdl
YkZyYW1lTG9hZGVyQ2xpZW50KCktPndlYkZyYW1lKCktPnBhZ2UoKS0+c2Vzc2lvbklEKCkpOwot
ICAgIHJldHVybiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigp
OworICAgIHJldHVybiAqU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oZnJhbWUoKSA/IGZyYW1lKCkt
PnBhZ2UoKS0+c2Vzc2lvbklEKCkgOiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQpOwogfQog
CiBXZWJGcmFtZUxvYWRlckNsaWVudCogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6d2ViRnJh
bWVMb2FkZXJDbGllbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuY3BwCmluZGV4IDRkMTNkYzMuLmRkYjE0ZTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKQEAgLTMwLDYgKzMwLDcg
QEAKICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAj
aW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogCkBAIC01NSw3ICs1Niw3IEBAIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQoV2ViRnJhbWUqIGZyYW1lKQogTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbigpIGNvbnN0CiB7CiAg
ICAgaWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+c2V0dGluZ3MoKS5wcml2YXRlQnJvd3NpbmdFbmFi
bGVkKCkpCi0gICAgICAgIHJldHVybiAqU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oU2Vzc2lvblRy
YWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAgICAgICByZXR1cm4gKlNlc3Npb25U
cmFja2VyOjpzZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7CiAKICAg
ICByZXR1cm4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCBiMjUzYzA3Li42ZmEzNjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC0xMzMsNiArMTMzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Nj
aGVtZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NoYWRvd1Jvb3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5o
PgpAQCAtMjI2LDcgKzIyNyw2IEBAIFBhc3NSZWZQdHI8V2ViUGFnZT4gV2ViUGFnZTo6Y3JlYXRl
KHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1lCiAKIFdlYlBhZ2U6
OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzKQogICAgIDogbV9wYWdlSUQocGFnZUlEKQotICAgICwgbV9zZXNzaW9uSUQo
MCkKICAgICAsIG1fdmlld1NpemUocGFyYW1ldGVycy52aWV3U2l6ZSkKICAgICAsIG1faGFzU2Vl
blBsdWdpbihmYWxzZSkKICAgICAsIG1fdXNlRml4ZWRMYXlvdXQoZmFsc2UpCkBAIC0yMTA4LDIx
ICsyMTA4LDIxIEBAIHZvaWQgV2ViUGFnZTo6c2V0TGF5ZXJIb3N0aW5nTW9kZSh1bnNpZ25lZCBs
YXllckhvc3RpbmdNb2RlKQogCiB1aW50NjRfdCBXZWJQYWdlOjpzZXNzaW9uSUQoKSBjb25zdAog
ewotICAgIGlmIChtX3Nlc3Npb25JRCkKLSAgICAgICAgcmV0dXJuIG1fc2Vzc2lvbklEOworICAg
IGlmIChtX3BhZ2UtPmlzU2Vzc2lvbklEU2V0KCkpCisgICAgICAgIHJldHVybiBtX3BhZ2UtPnNl
c3Npb25JRCgpOwogCi0gICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS5wcml2YXRlQnJvd3Np
bmdFbmFibGVkKCkgPyBTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCA6IFNl
c3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEOworICAgIHJldHVybiBtX3BhZ2UtPnNldHRp
bmdzKCkucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpID8gU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEOwogfQogCiBib29sIFdlYlBh
Z2U6OmlzVXNpbmdFcGhlbWVyYWxTZXNzaW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU2Vzc2lv
blRyYWNrZXI6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKCkpOworICAgIHJldHVybiBTZXNzaW9u
SUQ6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNldFNl
c3Npb25JRCh1aW50NjRfdCBzZXNzaW9uSUQpCiB7Ci0gICAgbV9zZXNzaW9uSUQgPSBzZXNzaW9u
SUQ7Ci0gICAgaWYgKFNlc3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCkpCisg
ICAgbV9wYWdlLT5zZXRTZXNzaW9uSUQoc2Vzc2lvbklEKTsKKyAgICBpZiAoU2Vzc2lvbklEOjpp
c0VwaGVtZXJhbElEKHNlc3Npb25JRCkpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oc2Vzc2lvbklEKTsKIH0KIApAQCAtMjQyOCw4ICsy
NDI4LDggQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJl
bmNlc1N0b3JlJiBzdG9yZSkKICAgICBzZXR0aW5ncy5zZXRMb2NhbFN0b3JhZ2VFbmFibGVkKHN0
b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bG9jYWxTdG9yYWdlRW5h
YmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0WFNTQXVkaXRvckVuYWJsZWQoc3RvcmUuZ2V0
Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp4c3NBdWRpdG9yRW5hYmxlZEtleSgp
KSk7CiAgICAgc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChzdG9yZS5nZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmZyYW1lRmxhdHRlbmluZ0VuYWJsZWRLZXko
KSkpOwotICAgIGlmIChtX3Nlc3Npb25JRCkKLSAgICAgICAgc2V0dGluZ3Muc2V0UHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChtX3Nlc3Npb25JRCkp
OworICAgIGlmIChtX3BhZ2UtPmlzU2Vzc2lvbklEU2V0KCkpCisgICAgICAgIHNldHRpbmdzLnNl
dFByaXZhdGVCcm93c2luZ0VuYWJsZWQoU2Vzc2lvbklEOjppc0VwaGVtZXJhbElEKG1fcGFnZS0+
c2Vzc2lvbklEKCkpKTsKICAgICBlbHNlCiAgICAgICAgIHNldHRpbmdzLnNldFByaXZhdGVCcm93
c2luZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpw
cml2YXRlQnJvd3NpbmdFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXREZXZlbG9wZXJF
eHRyYXNFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6
ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZEtleSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhYTRhYzJjLi45MzYxMDk1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTkwMCw3ICs5MDAsNiBAQCBw
cml2YXRlOgogICAgIHZvaWQgcmVwb3J0VXNlZEZlYXR1cmVzKCk7CiAKICAgICB1aW50NjRfdCBt
X3BhZ2VJRDsKLSAgICB1aW50NjRfdCBtX3Nlc3Npb25JRDsKIAogICAgIE93blB0cjxXZWJDb3Jl
OjpQYWdlPiBtX3BhZ2U7CiAgICAgUmVmUHRyPFdlYkZyYW1lPiBtX21haW5GcmFtZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224835</attachid>
            <date>2014-02-21 00:10:47 -0800</date>
            <delta_ts>2014-02-21 00:14:05 -0800</delta_ts>
            <desc>symbol</desc>
            <filename>sessionidmap.05.diff</filename>
            <type>text/plain</type>
            <size>12885</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3NjhjMzAyLi4yMDg3M2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQg
QEAKKzIwMTQtMDEtMzAgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzZXNzaW9uIHN1cHBvcnQgdG8gV2ViUGxhdGZvcm1TdHJhdGVnaWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc5MjYKKworICAgICAgICBS
ZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAg
ICAgICogU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6c3RvcmFn
ZVNlc3Npb25Ub0lEKToKKyAgICAgICAgKFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OnNlc3Npb24p
OgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbklEKToKKyAgICAgICAg
KFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpT
ZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24pOgorICAgICAgICAqIFNoYXJlZC9TZXNzaW9u
VHJhY2tlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldFNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVzRm9yRE9NKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpzZXRDb29raWVzRnJvbURPTSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llc0VuYWJsZWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpnZXRSYXdD
b29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpkZWxldGVD
b29raWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0
U2Vzc2lvbklEKTogRW5zdXJlIHRoZSBzdG9yYWdlIHNlc3Npb24gZXhpc3RzLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMTQtMDEtMzEgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBXZWJLaXQy
LlBhZ2VMb2FkQmFzaWMgQVBJIHRlc3QgaXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1t
CmluZGV4IGY2MGU1ZGIuLmEwYThmNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTc5
LDYgKzc5LDggQEAgUmVzb3VyY2VFcnJvciBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tl
ZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWUKIAogdm9pZCBSZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9u
SUQpCiB7CisgICAgQVNTRVJUKFNlc3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKHNlc3Npb25J
RCkpOworCiAgICAgaWYgKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHNlc3Npb25JRCkpCiAgICAg
ICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25U
cmFja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAKaW5k
ZXggM2VkNTk2Zi4uOWFhZmE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nl
c3Npb25UcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNr
ZXIuY3BwCkBAIC00NCw2ICs0NCwxNCBAQCBzdGF0aWMgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1
bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBzdGF0aWNTZXNzaW9uTQogICAgIHJl
dHVybiBtYXAuZ2V0KCk7CiB9CiAKK3N0YXRpYyBIYXNoTWFwPGNvbnN0IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiosIHVpbnQ2NF90PiYgc3RvcmFnZVNlc3Npb25Ub0lEKCkKK3sKKyAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworCisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8Y29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiwgdWludDY0X3Q+PiBtYXA7CisgICAgcmV0dXJuIG1h
cC5nZXQoKTsKK30KKwogc3RhdGljIFN0cmluZyYgaWRlbnRpZmllckJhc2UoKQogewogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC02NiwyMCArNzQsMzAgQEAgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uKiBTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCiB7CiAg
ICAgaWYgKHNlc3Npb25JRCA9PSBkZWZhdWx0U2Vzc2lvbklEKQogICAgICAgICByZXR1cm4gJk5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7Ci0gICAgcmV0dXJu
IHN0YXRpY1Nlc3Npb25NYXAoKS5hZGQoc2Vzc2lvbklELCBudWxscHRyKS5pdGVyYXRvci0+dmFs
dWUuZ2V0KCk7CisgICAgcmV0dXJuIHN0YXRpY1Nlc3Npb25NYXAoKS5nZXQoc2Vzc2lvbklEKTsK
K30KKwordWludDY0X3QgU2Vzc2lvblRyYWNrZXI6OnNlc3Npb25JRChjb25zdCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIHNlc3Npb24pCit7CisgICAgaWYgKCZzZXNzaW9uID09ICZOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpKQorICAgICAgICByZXR1cm4gZGVm
YXVsdFNlc3Npb25JRDsKKyAgICByZXR1cm4gc3RvcmFnZVNlc3Npb25Ub0lEKCkuZ2V0KCZzZXNz
aW9uKTsKIH0KIAogdm9pZCBTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbih1aW50NjRfdCBzZXNz
aW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+IHNlc3Npb24pCiB7
CiAgICAgQVNTRVJUKHNlc3Npb25JRCAhPSBkZWZhdWx0U2Vzc2lvbklEKTsKLSAgICBzdGF0aWNT
ZXNzaW9uTWFwKCkuYWRkKHNlc3Npb25JRCwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlID0gc3Rk
Ojptb3ZlKHNlc3Npb24pOworICAgIHN0b3JhZ2VTZXNzaW9uVG9JRCgpLnNldChzZXNzaW9uLmdl
dCgpLCBzZXNzaW9uSUQpOworICAgIHN0YXRpY1Nlc3Npb25NYXAoKS5zZXQoc2Vzc2lvbklELCBz
dGQ6Om1vdmUoc2Vzc2lvbikpOwogfQogCiB2b2lkIFNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vz
c2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
LQotICAgIHN0YXRpY1Nlc3Npb25NYXAoKS5yZW1vdmUoc2Vzc2lvbklEKTsKKyAgICBpZiAoc3Rh
dGljU2Vzc2lvbk1hcCgpLmNvbnRhaW5zKHNlc3Npb25JRCkpIHsKKyAgICAgICAgc3RvcmFnZVNl
c3Npb25Ub0lEKCkucmVtb3ZlKHNlc3Npb24oc2Vzc2lvbklEKSk7CisgICAgICAgIHN0YXRpY1Nl
c3Npb25NYXAoKS5yZW1vdmUoc2Vzc2lvbklEKTsKKyAgICB9CiB9CiAKIHZvaWQgU2Vzc2lvblRy
YWNrZXI6OnNldElkZW50aWZpZXJCYXNlKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmgKaW5kZXggNWQzOGYxMC4uMmViODFjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBjb25zdCBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIHNlc3Npb25NYXAoKTsKICAgICBzdGF0
aWMgY29uc3QgU3RyaW5nJiBnZXRJZGVudGlmaWVyQmFzZSgpOwogICAgIHN0YXRpYyBXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKKyAg
ICBzdGF0aWMgdWludDY0X3Qgc2Vzc2lvbklEKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYpOwogICAgIHN0YXRpYyB2b2lkIHNldFNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklE
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uPik7CiAgICAg
c3RhdGljIHZvaWQgZGVzdHJveVNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKICAgICBzdGF0
aWMgdm9pZCBzZXRJZGVudGlmaWVyQmFzZShjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMTM0NzE4OS4uMWEzOTdmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTUxMiw3ICs1MTIsOCBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0U2Vzc2lvbihBUEk6OlNlc3Npb24mIHNlc3Npb24pCiAg
ICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRTZXNzaW9uSUQoc2Vzc2lv
bi5nZXRJRCgpKSwgbV9wYWdlSUQpOwogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLSAg
ICBtX3Byb2Nlc3MtPmNvbnRleHQoKS5zZW5kVG9OZXR3b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oc2Vzc2lvbi5nZXRJ
RCgpKSk7CisgICAgaWYgKHNlc3Npb24uaXNFcGhlbWVyYWwoKSkKKyAgICAgICAgbV9wcm9jZXNz
LT5jb250ZXh0KCkuc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHNlc3Npb24uZ2V0SUQoKSkpOwogI2Vu
ZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCBhN2QzMmMz
Li5hMTYxYzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC03Mywx
MyArNzMsNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotc3RhdGljIHVpbnQ2NF90IGxlZ2FjeVNl
c3Npb25JRChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24gJnNlc3Npb24pCi17Ci0gICAgcmV0
dXJuIHNlc3Npb24uaXNQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkgPyBTZXNzaW9uVHJhY2tlcjo6
bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCA6IFNlc3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklE
OwotfQotI2VuZGlmCi0KIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXplKCkK
IHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2ViUGxhdGZvcm1TdHJhdGVnaWVzPiBwbGF0
Zm9ybVN0cmF0ZWdpZXM7CkBAIC0xNDEsNyArMTM0LDcgQEAgU3RyaW5nIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6Y29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Np
b24KICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIGlmIChXZWJQcm9jZXNzOjpzaGFy
ZWQoKS51c2VzTmV0d29ya1Byb2Nlc3MoKSkgewogICAgICAgICBTdHJpbmcgcmVzdWx0OwotICAg
ICAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5l
Y3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpDb29raWVzRm9yRE9NKGxlZ2FjeVNlc3Npb25JRChzZXNzaW9uKSwgZmlyc3RQYXJ0eSwgdXJs
KSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRm9yRE9N
OjpSZXBseShyZXN1bHQpLCAwKSkKKyAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5u
ZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0ZvckRPTShTZXNzaW9uVHJhY2tlcjo6
c2Vzc2lvbklEKHNlc3Npb24pLCBmaXJzdFBhcnR5LCB1cmwpLCBNZXNzYWdlczo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNGb3JET006OlJlcGx5KHJlc3VsdCksIDApKQog
ICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAg
IH0KQEAgLTE1NCw3ICsxNDcsNyBAQCB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2V0Q29v
a2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaQogewogI2lmIEVO
QUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgaWYgKFdlYlByb2Nlc3M6OnNoYXJlZCgpLnVzZXNO
ZXR3b3JrUHJvY2VzcygpKSB7Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLm5ldHdvcmtD
b25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OlNldENvb2tpZXNGcm9tRE9NKGxlZ2FjeVNlc3Npb25JRChzZXNzaW9u
KSwgZmlyc3RQYXJ0eSwgdXJsLCBjb29raWVTdHJpbmcpLCAwKTsKKyAgICAgICAgV2ViUHJvY2Vz
czo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6U2V0Q29va2llc0Zyb21ET00oU2Vz
c2lvblRyYWNrZXI6OnNlc3Npb25JRChzZXNzaW9uKSwgZmlyc3RQYXJ0eSwgdXJsLCBjb29raWVT
dHJpbmcpLCAwKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgpAQCAtMTY3LDcgKzE2
MCw3IEBAIGJvb2wgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVzRW5hYmxlZChjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VT
UykKICAgICBpZiAoV2ViUHJvY2Vzczo6c2hhcmVkKCkudXNlc05ldHdvcmtQcm9jZXNzKCkpIHsK
ICAgICAgICAgYm9vbCByZXN1bHQ7Ci0gICAgICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCku
bmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFibGVkKGxlZ2FjeVNlc3Npb25J
RChzZXNzaW9uKSwgZmlyc3RQYXJ0eSwgdXJsKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpDb29raWVzRW5hYmxlZDo6UmVwbHkocmVzdWx0KSwgMCkpCisgICAgICAg
IGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlv
bigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNv
b2tpZXNFbmFibGVkKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uSUQoc2Vzc2lvbiksIGZpcnN0UGFy
dHksIHVybCksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2ll
c0VuYWJsZWQ6OlJlcGx5KHJlc3VsdCksIDApKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KQEAgLTE4MSw3ICsxNzQsNyBAQCBTdHJpbmcg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25z
dCBOZXR3b3JrU3RvcmFnZQogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgaWYgKFdl
YlByb2Nlc3M6OnNoYXJlZCgpLnVzZXNOZXR3b3JrUHJvY2VzcygpKSB7CiAgICAgICAgIFN0cmlu
ZyByZXN1bHQ7Ci0gICAgICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5l
Y3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OkNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGxlZ2FjeVNlc3Np
b25JRChzZXNzaW9uKSwgZmlyc3RQYXJ0eSwgdXJsKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZTo6UmVwbHkocmVz
dWx0KSwgMCkpCisgICAgICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5l
Y3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OkNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFNlc3Npb25UcmFj
a2VyOjpzZXNzaW9uSUQoc2Vzc2lvbiksIGZpcnN0UGFydHksIHVybCksIE1lc3NhZ2VzOjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWU6
OlJlcGx5KHJlc3VsdCksIDApKQogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIH0KQEAgLTE5NCw3ICsxODcsNyBAQCBib29sIFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6Z2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
IHNlc3Npb24sCiB7CiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBpZiAoV2ViUHJv
Y2Vzczo6c2hhcmVkKCkudXNlc05ldHdvcmtQcm9jZXNzKCkpIHsKLSAgICAgICAgaWYgKCFXZWJQ
cm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRT
eW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R2V0UmF3Q29va2ll
cyhsZWdhY3lTZXNzaW9uSUQoc2Vzc2lvbiksIGZpcnN0UGFydHksIHVybCksIE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R2V0UmF3Q29va2llczo6UmVwbHkocmF3Q29v
a2llcyksIDApKQorICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLm5ldHdvcmtDb25u
ZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpHZXRSYXdDb29raWVzKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uSUQo
c2Vzc2lvbiksIGZpcnN0UGFydHksIHVybCksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6R2V0UmF3Q29va2llczo6UmVwbHkocmF3Q29va2llcyksIDApKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0yMDcs
NyArMjAwLDcgQEAgdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmRlbGV0ZUNvb2tpZShjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGMKIHsKICNpZiBFTkFCTEUoTkVUV09S
S19QUk9DRVNTKQogICAgIGlmIChXZWJQcm9jZXNzOjpzaGFyZWQoKS51c2VzTmV0d29ya1Byb2Nl
c3MoKSkgewotICAgICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVjdGlvbigp
LT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpEZWxldGVDb29raWUobGVnYWN5U2Vzc2lvbklEKHNlc3Npb24pLCB1cmwsIGNvb2tpZU5h
bWUpLCAwKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24o
KS0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6RGVsZXRlQ29va2llKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uSUQoc2Vzc2lvbiksIHVy
bCwgY29va2llTmFtZSksIDApOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCA2YjU5YWM0
Li43NDYxYzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQubW0KQEAgLTQ0LDYgKzQ0LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCiB2b2lkIFdl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWlu
dDY0X3Qgc2Vzc2lvbklEKQogeworICAgIEFTU0VSVChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVy
YWxJRChzZXNzaW9uSUQpKTsKKwogICAgIGlmIChTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbihzZXNz
aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA0ODUyZjA1Li42MTE2N2M5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yMTM1LDYgKzIxMzUs
MTMgQEAgdWludDY0X3QgV2ViUGFnZTo6c2Vzc2lvbklEKCkgY29uc3QKICAgICByZXR1cm4gbV9w
YWdlLT5zZXR0aW5ncygpLnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSA/IFNlc3Npb25UcmFja2Vy
OjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEIDogU2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9u
SUQ7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6c2V0U2Vzc2lvbklEKHVpbnQ2NF90IHNlc3Npb25JRCkK
K3sKKyAgICBtX3Nlc3Npb25JRCA9IHNlc3Npb25JRDsKKyAgICBpZiAoU2Vzc2lvblRyYWNrZXI6
OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKSkKKyAgICAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCku
ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihzZXNzaW9uSUQpOworfQorCiB2b2lkIFdlYlBh
Z2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBs
aXN0ZW5lcklELCB1aW50MzJfdCBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IGRvd25sb2FkSUQpCiB7
CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2hhcmVkKCkud2ViRnJhbWUoZnJh
bWVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRl
eCAzYmEyZjc1Li45NDMxYzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKQEAgLTE4MSw3ICsxODEsNyBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6UGFn
ZSogY29yZVBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KICAgICB1aW50NjRf
dCBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfQogICAgIHVpbnQ2NF90IHNlc3Np
b25JRCgpIGNvbnN0OwotICAgIHZvaWQgc2V0U2Vzc2lvbklEKHVpbnQ2NF90IHNlc3Npb25JRCkg
eyBtX3Nlc3Npb25JRCA9IHNlc3Npb25JRDsgfQorICAgIHZvaWQgc2V0U2Vzc2lvbklEKHVpbnQ2
NF90KTsKIAogICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld1NpemU7
IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224836</attachid>
            <date>2014-02-21 00:14:05 -0800</date>
            <delta_ts>2014-02-21 23:36:35 -0800</delta_ts>
            <desc>rebase</desc>
            <filename>sessionidclass.06.diff</filename>
            <type>text/plain</type>
            <size>32686</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwZWRlNTQ4Li42MTI4MGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTQtMDItMjAgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IENyZWF0ZSBTZXNzaW9uSUQgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjkxNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6IEFkZCBzZXNzaW9uSUQgbWVtYmVyLgorICAgICAgICAo
V2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXNzaW9uSUQp
OiBSZXRyaWV2ZSBzZXNzaW9uSUQgb3IgdXNlIHNldHRpbmdzIGlmIG5vdCBzZXQuCisgICAgICAg
ICogcGFnZS9QYWdlLmg6IEFkZCBzZXNzaW9uSUQgbWVtYmVyLgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6aXNTZXNzaW9uSURTZXQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0U2Vzc2lv
bklEKToKKyAgICAgICAgKiBwYWdlL1Nlc3Npb25JRC5oOiBTdGF0aWMgdXRpbGl0eSBjbGFzcyBm
b3Igc2Vzc2lvbklEcyBwdWxsZWQgZnJvbSBTZXNzaW9uVHJhY2tlci4KKyAgICAgICAgKFdlYkNv
cmU6OlNlc3Npb25JRDo6aXNFcGhlbWVyYWxJRCk6CisKIDIwMTQtMDItMjAgIENoYW5nU2VvayBP
aCAgPGNoYW5nc2Vvay5vaEBjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIFJlbmFtZSBFWFRfZHJh
d19idWZmZXJzIHRvIFdFQkdMX2RyYXdfYnVmZmVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KaW5kZXggODZjY2E3OC4uZWU0YjM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CkBAIC00MTgxLDYgKzQxODEsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5IYXNoLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vj
dXJpdHlQb2xpY3kuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5Lmgg
XAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklELmggXAogCVNvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KaW5kZXggMGRlNTk1Yy4uYjhkZTNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE3MzYs
NiArMTczNiw3IEBAIF9fWk5LN1dlYkNvcmU0UGFnZTE3dmlld3BvcnRBcmd1bWVudHNFdgogX19a
Tks3V2ViQ29yZTRQYWdlMzRpbkxvd1F1YWxpdHlJbWFnZUludGVycG9sYXRpb25Nb2RlRXYKIF9f
Wk5LN1dlYkNvcmU0UGFnZTlncm91cE5hbWVFdgogX19aTks3V2ViQ29yZTRQYWdlOXBhZ2VDb3Vu
dEV2CitfX1pOSzdXZWJDb3JlNFBhZ2U5c2Vzc2lvbklERXYKIF9fWk5LN1dlYkNvcmU1Q29sb3Ix
MHNlcmlhbGl6ZWRFdgogX19aTks3V2ViQ29yZTVDb2xvcjdnZXRSR0JBRVJkUzFfUzFfUzFfCiBf
X1pOSzdXZWJDb3JlNUNvbG9yN2dldFJHQkFFUmZTMV9TMV9TMV8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMmI5NjVlLi5kYThi
NGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0yMjEzLDYgKzIyMTMsNyBAQAogCQk3NTQxNUQ1QTEyOUFCMkQyMDAzQUQ2Njkg
LyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc1NDE1RDU0MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElu
cHV0UmVzdWx0TGlzdC5oICovOyB9OwogCQk3NTUzQ0ZFODEwOEY0NzNGMDBFQTI4MUUgLyogVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0
b3J5LmggKi87IH07CiAJCTc1NTNDRkU5MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29y
ZEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU1M0NGRTcxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAg
Ki87IH07CisJCTc1NkIyQ0UxMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNzaW9uSUQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NkIyQ0UwMThCNzEwMTYw
MEZFQ0ZBQSAvKiBTZXNzaW9uSUQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk3NTc4RjkwQzExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTA5
MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5oICovOyB9OwogCQk3NTc4RjkwRDExRERG
MjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTBBMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVl
Y2hJbnB1dENsaWVudC5oICovOyB9OwogCQk3NTc4RjkyMDExRTRFMzI4MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzU3OEY5MUUxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0TGlzdGVuZXIu
aCAqLzsgfTsKQEAgLTkxNDIsNiArOTE0Myw3IEBACiAJCTc1NDE1RDU0MTI5QUIyRDIwMDNBRDY2
OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9y
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4
MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTc1NkIyQ0UwMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNzaW9uSUQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Vzc2lvbklELmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc1NzhGOTA5MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hJbnB1dC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc4RjkwQTExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNo
SW5wdXRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoSW5w
dXRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU3OEY5MUUxMUU0RTMy
ODAwRDkzM0M1IC8qIFNwZWVjaElucHV0TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoSW5wdXRMaXN0ZW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTYxNjYsNiArMTYxNjgsNyBAQAogCQkJCUJDRDBFMEY5MEU5NzJDMzUwMDI2NURF
QSAvKiBTZWN1cml0eU9yaWdpbkhhc2guaCAqLywKIAkJCQk5NzREMkRBMjE0NkE1MzVEMDBENTFG
OEIgLyogU2VjdXJpdHlQb2xpY3kuY3BwICovLAogCQkJCTk3NEQyREEzMTQ2QTUzNUQwMEQ1MUY4
QiAvKiBTZWN1cml0eVBvbGljeS5oICovLAorCQkJCTc1NkIyQ0UwMThCNzEwMTYwMEZFQ0ZBQSAv
KiBTZXNzaW9uSUQuaCAqLywKIAkJCQkxNEM5QTVFOTBCM0QxMDVGMDA1QTAyMzIgLyogU2V0dGlu
Z3MuY3BwICovLAogCQkJCUY1ODc4NjNBMDJERTNBMTQwMUVBNDEyMiAvKiBTZXR0aW5ncy5oICov
LAogCQkJCUJDNTlERUY4MTY5REVEQzMwMDE2QUMzNCAvKiBTZXR0aW5ncy5pbiAqLywKQEAgLTIz
OTM1LDYgKzIzOTM4LDcgQEAKIAkJCQk3QTI0NTg3QzEwMjFFQUY0MDAwQTAwQUEgLyogSW5zcGVj
dG9yRE9NQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNjRFRDQ0MTgzMjA4QzcwMEVBOEZG
MSAvKiBJREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjNE
NEM0NzkxMkUwNzY2MzAwM0RBMTUwIC8qIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTc1NkIyQ0UxMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNzaW9uSUQuaCBp
biBIZWFkZXJzICovLAogCQkJCTdBNzRFQ0JCMTAxODM5QTYwMEJGOTM5RSAvKiBJbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MDU4NTM0MTdGREU2RDkwMDVG
MkJDQiAvKiBKU01lZGlhVHJhY2tDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc4
REEyMEUxNTIwRUI4QzAwNjE0MUMxIC8qIEluc3BlY3RvcldlYkZyb250ZW5kRGlzcGF0Y2hlcnMu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMjE3OTVhYi4uZTczOGJjZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSAiU2NoZW1lUmVn
aXN0cnkuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaCIKKyNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVh
LmgiCkBAIC0xODEsNiArMTgyLDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVu
dHMpCiAjZW5kaWYKICAgICAsIG1fbGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlc0NvdW50
KDApIC8vIE5PVEU6IE9ubHkgY2FsbGVkIGZyb20gSW50ZXJuYWxzIGZvciBTcGF0aWFsIE5hdmln
YXRpb24gdGVzdGluZy4KICAgICAsIG1fZnJhbWVzSGFuZGxpbmdCZWZvcmVVbmxvYWRFdmVudCgw
KQorICAgICwgbV9zZXNzaW9uSUQoMCkKIHsKICAgICBBU1NFUlQobV9lZGl0b3JDbGllbnQpOwog
CkBAIC0xNDkzLDYgKzE0OTUsMTEgQEAgdm9pZCBQYWdlOjpzZXRVc2VyQ29udGVudENvbnRyb2xs
ZXIoVXNlckNvbnRlbnRDb250cm9sbGVyKiB1c2VyQ29udGVudENvbnRyb2xsZXIKICAgICAgICAg
bV91c2VyQ29udGVudENvbnRyb2xsZXItPmFkZFBhZ2UoKnRoaXMpOwogfQogCit1aW50NjRfdCBQ
YWdlOjpzZXNzaW9uSUQoKSBjb25zdAoreworICAgIHJldHVybiBtX3Nlc3Npb25JRCA/IG1fc2Vz
c2lvbklEIDogc2V0dGluZ3MoKS5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkgPyBTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQgOiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQ7Cit9
CisKIFBhZ2U6OlBhZ2VDbGllbnRzOjpQYWdlQ2xpZW50cygpCiAgICAgOiBhbHRlcm5hdGl2ZVRl
eHRDbGllbnQobnVsbHB0cikKICAgICAsIGNocm9tZUNsaWVudChudWxscHRyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aAppbmRleCBhNzE1ZmVmLi5iNjY3MGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMzk3LDYgKzM5Nyw5
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VXNlckNvbnRlbnRDb250cm9sbGVyKFVzZXJDb250
ZW50Q29udHJvbGxlciopOwogICAgIFVzZXJDb250ZW50Q29udHJvbGxlciogdXNlckNvbnRlbnRD
b250cm9sbGVyKCkgeyByZXR1cm4gbV91c2VyQ29udGVudENvbnRyb2xsZXIuZ2V0KCk7IH0KKyAg
ICB1aW50NjRfdCBzZXNzaW9uSUQoKSBjb25zdDsKKyAgICBib29sIGlzU2Vzc2lvbklEU2V0KCkg
Y29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KKyAgICB2b2lkIHNldFNlc3Npb25JRCh1aW50
NjRfdCBzZXNzaW9uSUQpIHsgQVNTRVJUKHNlc3Npb25JRCk7IG1fc2Vzc2lvbklEID0gc2Vzc2lv
bklEOyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBpbml0R3JvdXAoKTsKQEAgLTUzNyw2ICs1NDAs
OCBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fZnJhbWVzSGFuZGxpbmdCZWZvcmVVbmxvYWRF
dmVudDsKIAogICAgIFJlZlB0cjxVc2VyQ29udGVudENvbnRyb2xsZXI+IG1fdXNlckNvbnRlbnRD
b250cm9sbGVyOworCisgICAgdWludDY0X3QgbV9zZXNzaW9uSUQ7CiB9OwogCiBpbmxpbmUgUGFn
ZUdyb3VwJiBQYWdlOjpncm91cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
c3Npb25JRC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSUQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDYxNTFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXNzaW9uSUQuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBTZXNzaW9uSURfaAorI2RlZmluZSBTZXNzaW9uSURfaAorCisjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2Vzc2lvbklE
IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTZXNzaW9uSUQpOworcHVibGljOgorICAgIHN0
YXRpYyBjb25zdCB1aW50NjRfdCBkZWZhdWx0U2Vzc2lvbklEID0gMTsKKyAgICBzdGF0aWMgY29u
c3QgdWludDY0X3QgbGVnYWN5UHJpdmF0ZVNlc3Npb25JRCA9IDI7CisgICAgc3RhdGljIGJvb2wg
aXNFcGhlbWVyYWxJRCh1aW50NjRfdCBzZXNzaW9uSUQpIHsgcmV0dXJuIHNlc3Npb25JRCAhPSBT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQ7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIFNlc3Npb25JRF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDVhZTEzYi4uY2Q5ZTVi
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE0LTAyLTE5ICBNYXJ0aW4gSG9jayAg
PG1ob2NrQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgU2Vzc2lvbklEIGNsYXNzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MTQxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OnN0b3JhZ2VTZXNzaW9uKTogU3dpdGNoIHRvIFNlc3Npb25JRCBjbGFzcy4KKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOiBEaXR0by4KKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24pOiBEaXR0by4KKyAgICAgICAgKiBTaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwOiBEaXR0by4K
KyAgICAgICAgKFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OnNlc3Npb24pOgorICAgICAgICAoV2Vi
S2l0OjpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6U2Vzc2lv
blRyYWNrZXI6OnNldFNlc3Npb24pOgorICAgICAgICAqIFNoYXJlZC9TZXNzaW9uVHJhY2tlci5o
OiBNb3ZlIGNvZGUgdG8gU2Vzc2lvbklEIGNsYXNzLgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29v
a2llU3RvcmFnZVNoaW0ubW06IFN3aXRjaCB0byBTZXNzaW9uSUQgY2xhc3MuCisgICAgICAgIChX
ZWJLaXQ6OndlYktpdENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhlYWRlckZpZWxkc0ZvclVSTCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSVNlc3Npb24uY3BwOiBEaXR0by4KKyAgICAgICAgKEFQ
STo6Z2VuZXJhdGVJRCk6CisgICAgICAgIChBUEk6OlNlc3Npb246OmRlZmF1bHRTZXNzaW9uKToK
KyAgICAgICAgKEFQSTo6U2Vzc2lvbjo6bGVnYWN5UHJpdmF0ZVNlc3Npb24pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUElTZXNzaW9uLmg6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJD
b250ZXh0LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnNldEFueVBh
Z2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb250ZXh0OjpjcmVhdGVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJL
aXQ6OkluamVjdGVkQnVuZGxlOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDogRGl0dG8u
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2Fk
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5jcHA6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06IERpdHRvLgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291
cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6IE1vdmUgc2Vzc2lvbklEIHRvIFBhZ2UgdG8g
YWxsb3cgV2ViQ29yZSB0byBhY2Nlc3MgaXQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Oldl
YlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXNzaW9uSUQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjppc1VzaW5nRXBoZW1lcmFsU2Vzc2lvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnNldFNlc3Npb25JRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVw
ZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorCiAyMDE0LTAyLTIwICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVtb3ZlIHJlZHVuZGFudCBkZXZpY2VTY2FsZUZhY3RvcigpIGZ1bmN0aW9ucyBhbmQgbWFr
ZSBjYWxsZXJzIHVzZSBEb2N1bWVudDo6ZGV2aWNlU2NhbGVGYWN0b3IoKSB3aGVuIGFjY2Vzc2li
bGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMWZlZTQ5OC4uOGU1MTU3NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5o
PgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTE1MCw3ICsxNTEsNyBAQCB2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRTZXJpYWxMb2FkaW5nRW5hYmxlZChib29s
IGVuYWJsZWQpCiAKIHN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9u
KHVpbnQ2NF90IHNlc3Npb25JRCkKIHsKLSAgICBpZiAoU2Vzc2lvblRyYWNrZXI6OmlzRXBoZW1l
cmFsSUQoc2Vzc2lvbklEKSkgeworICAgIGlmIChTZXNzaW9uSUQ6OmlzRXBoZW1lcmFsSUQoc2Vz
c2lvbklEKSkgewogICAgICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHByaXZhdGVTZXNzaW9u
ID0gU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oc2Vzc2lvbklEKTsKICAgICAgICAgaWYgKHByaXZh
dGVTZXNzaW9uKQogICAgICAgICAgICAgcmV0dXJuICpwcml2YXRlU2Vzc2lvbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA4YTEy
YWI3Li41Y2UwYjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiV2ViQ29va2llTWFu
YWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNs
dWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAt
MTYzLDcgKzE2NCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJv
Y2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1lCiAKICAgICAvLyBGSVhNRTog
aW5zdGVhZCBvZiBoYW5kbGluZyB0aGlzIGhlcmUsIGEgbWVzc2FnZSBzaG91bGQgYmUgc2VudCBs
YXRlciAoc2NhbGVzIHRvIG11bHRpcGxlIHNlc3Npb25zKQogICAgIGlmIChwYXJhbWV0ZXJzLnBy
aXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAgICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpl
bnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEKTsKKyAgICAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZh
dGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKIAog
ICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbikKICAgICAg
ICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggYTBhOGY2NS4uODI4Mjk2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dC5tbQpAQCAtMjksNiArMjksNyBAQAogI2ltcG9ydCAiU2Vzc2lvblRyYWNrZXIu
aCIKICNpbXBvcnQgIldlYkVycm9ycy5oIgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVycm9y
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVt
SW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CkBAIC03OSw3ICs4MCw3IEBAIFJlc291cmNlRXJyb3IgUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
CiAKIHZvaWQgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQogewotICAgIEFTU0VSVChTZXNzaW9uVHJhY2tlcjo6
aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKTsKKyAgICBBU1NFUlQoU2Vzc2lvbklEOjppc0VwaGVt
ZXJhbElEKHNlc3Npb25JRCkpOwogCiAgICAgaWYgKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHNl
c3Npb25JRCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TZXNzaW9uVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRy
YWNrZXIuY3BwCmluZGV4IDZlNGQ0ZmYuLjFkOGIzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1Nlc3Npb25UcmFja2VyLmNwcApAQCAtMzMsOSArMzMsNiBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNvbnN0IHVpbnQ2NF90IFNlc3Npb25UcmFj
a2VyOjpkZWZhdWx0U2Vzc2lvbklEOwotY29uc3QgdWludDY0X3QgU2Vzc2lvblRyYWNrZXI6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQ7Ci0KIHN0YXRpYyBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVu
aXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIHN0YXRpY1Nlc3Npb25NYXAoKQogewog
ICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC03Miw3ICs2OSw3IEBAIGNvbnN0IFN0
cmluZyYgU2Vzc2lvblRyYWNrZXI6OmdldElkZW50aWZpZXJCYXNlKCkKIAogTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uKiBTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCiB7
Ci0gICAgaWYgKHNlc3Npb25JRCA9PSBkZWZhdWx0U2Vzc2lvbklEKQorICAgIGlmIChzZXNzaW9u
SUQgPT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKQogICAgICAgICByZXR1cm4gJk5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiAgICAgcmV0dXJuIHN0
YXRpY1Nlc3Npb25NYXAoKS5nZXQoc2Vzc2lvbklEKTsKIH0KQEAgLTgwLDEzICs3NywxMyBAQCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24qIFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHVpbnQ2NF90IHNl
c3Npb25JRCkKIHVpbnQ2NF90IFNlc3Npb25UcmFja2VyOjpzZXNzaW9uSUQoY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKQogewogICAgIGlmICgmc2Vzc2lvbiA9PSAmTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKSkKLSAgICAgICAgcmV0dXJu
IGRlZmF1bHRTZXNzaW9uSUQ7CisgICAgICAgIHJldHVybiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQ7CiAgICAgcmV0dXJuIHN0b3JhZ2VTZXNzaW9uVG9JRCgpLmdldCgmc2Vzc2lvbik7CiB9
CiAKIHZvaWQgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklELCBz
dGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBzZXNzaW9uKQogewotICAgIEFT
U0VSVChzZXNzaW9uSUQgIT0gZGVmYXVsdFNlc3Npb25JRCk7CisgICAgQVNTRVJUKHNlc3Npb25J
RCAhPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQpOwogICAgIHN0b3JhZ2VTZXNzaW9uVG9J
RCgpLnNldChzZXNzaW9uLmdldCgpLCBzZXNzaW9uSUQpOwogICAgIHN0YXRpY1Nlc3Npb25NYXAo
KS5zZXQoc2Vzc2lvbklELCBzdGQ6Om1vdmUoc2Vzc2lvbikpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvU2Vzc2lvblRyYWNrZXIuaAppbmRleCAyZWI4MWM5Li45Y2Y0OWM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBTZXNz
aW9uVHJhY2tlcl9oCiAKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CkBAIC0zNiw5ICszNyw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgU2Vzc2lv
blRyYWNrZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNlc3Npb25UcmFja2VyKTsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDY0X3QgZGVmYXVsdFNlc3Npb25JRCA9IDE7Ci0g
ICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IGxlZ2FjeVByaXZhdGVTZXNzaW9uSUQgPSAyOwotICAg
IHN0YXRpYyBib29sIGlzRXBoZW1lcmFsSUQodWludDY0X3Qgc2Vzc2lvbklEKSB7IHJldHVybiBz
ZXNzaW9uSUQgIT0gU2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQ7IH0KICAgICAvLyBG
SVhNRTogc2Vzc2lvbk1hcCgpJ3MgcmV0dXJuZWQgbWFwIGRvZXMgbm90IGluY2x1ZGUgZGVmYXVs
dCBzZXNzaW9uLgogICAgIHN0YXRpYyBjb25zdCBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIHNlc3Npb25NYXAoKTsKICAg
ICBzdGF0aWMgY29uc3QgU3RyaW5nJiBnZXRJZGVudGlmaWVyQmFzZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0ubW0KaW5kZXggYzZkNzA1Zi4uMmIz
N2I0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdl
U2hpbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGlt
Lm1tCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5
LmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
VVJMLmg+CkBAIC01OCw3ICs1OCw3IEBAIHN0YXRpYyBDRkRpY3Rpb25hcnlSZWYgd2ViS2l0Q29v
a2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKENGSFRUUENvCiB7CiAgICAg
U3RyaW5nIGNvb2tpZXM7CiAgICAgVVJMIGZpcnN0UGFydHlGb3JDb29raWVzVVJMOwotICAgIGlm
ICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFNlc3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklE
LCBmaXJzdFBhcnR5Rm9yQ29va2llc1VSTCwgaW5SZXF1ZXN0VVJMKSwgTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRm9yRE9NOjpSZXBseShjb29raWVzKSwg
MCkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVjdGlvbigpLT5j
b25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklELCBmaXJzdFBhcnR5Rm9yQ29va2llc1VSTCwgaW5SZXF1ZXN0VVJMKSwgTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRm9yRE9NOjpSZXBseShjb29r
aWVzKSwgMCkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKGNvb2tpZXMuaXNOdWxsKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHAKaW5kZXggMDhkODRhZi4uMzg4
MjgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmNwcApAQCAtMjYsNiAr
MjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFQSVNlc3Npb24uaCIKIAor
I2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4K
IAogbmFtZXNwYWNlIEFQSSB7CkBAIC0zNCw3ICszNSw3IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5l
cmF0ZUlEKGJvb2wgaXNFcGhlbWVyYWwpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKIAotICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVTZXNzaW9uSUQgPSBXZWJLaXQ6OlNlc3Np
b25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEOworICAgIHN0YXRpYyB1aW50NjRfdCB1
bmlxdWVTZXNzaW9uSUQgPSBXZWJDb3JlOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9u
SUQ7CiAgICAgQVNTRVJUKGlzRXBoZW1lcmFsKTsKICAgICByZXR1cm4gKyt1bmlxdWVTZXNzaW9u
SUQ7CiB9CkBAIC00Myw3ICs0NCw3IEBAIFNlc3Npb24mIFNlc3Npb246OmRlZmF1bHRTZXNzaW9u
KCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgc3RhdGljIFNlc3Np
b24qIGRlZmF1bHRTZXNzaW9uID0gbmV3IFNlc3Npb24oZmFsc2UsIFdlYktpdDo6U2Vzc2lvblRy
YWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQpOworICAgIHN0YXRpYyBTZXNzaW9uKiBkZWZhdWx0U2Vz
c2lvbiA9IG5ldyBTZXNzaW9uKGZhbHNlLCBXZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQpOwogICAgIHJldHVybiAqZGVmYXVsdFNlc3Npb247CiB9CiAKQEAgLTUxLDcgKzUyLDcg
QEAgU2Vzc2lvbiYgU2Vzc2lvbjo6bGVnYWN5UHJpdmF0ZVNlc3Npb24oKQogewogICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBzdGF0aWMgU2Vzc2lvbiogbGVnYWN5UHJpdmF0
ZVNlc3Npb24gPSBuZXcgU2Vzc2lvbih0cnVlLCBXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpsZWdh
Y3lQcml2YXRlU2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgU2Vzc2lvbiogbGVnYWN5UHJpdmF0ZVNl
c3Npb24gPSBuZXcgU2Vzc2lvbih0cnVlLCBXZWJDb3JlOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZh
dGVTZXNzaW9uSUQpOwogICAgIHJldHVybiAqbGVnYWN5UHJpdmF0ZVNlc3Npb247CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5oCmluZGV4IGJkNjA0YjIuLmUxNTkwYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uaApAQCAtMjcsNyArMjcsNiBAQAogI2Rl
ZmluZSBBUElTZXNzaW9uX2gKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIlNl
c3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNl
IEFQSSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggMzQ1MzY0
OC4uZDVhZGRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAt
MzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNdXRhYmxlRGlj
dGlvbmFyeS5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKLSNpbmNsdWRlICJTZXNz
aW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCiAjaW5jbHVkZSAiVGV4
dENoZWNrZXIuaCIKICNpbmNsdWRlICJXS0NvbnRleHRQcml2YXRlLmgiCkBAIC02Myw2ICs2Miw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFzaC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTG9n
Z2luZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNp
bmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpA
QCAtNDg2LDE2ICs0ODYsMTYgQEAgdm9pZCBXZWJDb250ZXh0OjpzZXRBbnlQYWdlR3JvdXBNaWdo
dEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0ZUJyb3cKICNpZiBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQogICAgIGlmICh1c2VzTmV0d29ya1Byb2Nlc3MoKSAmJiBuZXR3b3Jr
UHJvY2VzcygpKSB7CiAgICAgICAgIGlmIChwcml2YXRlQnJvd3NpbmdFbmFibGVkKQotICAgICAg
ICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVT
ZXNzaW9uSUQpLCAwKTsKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25J
RDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCksIDApOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJv
eVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQpLCAwKTsKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpLCAwKTsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFRChO
RVRXT1JLX1BST0NFU1MpCiAKICAgICBpZiAocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAgICAg
ICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKSk7
CisgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6RW5zdXJl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQp
KTsKICAgICBlbHNlCi0gICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJv
Y2Vzczo6RGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2Fj
eVByaXZhdGVTZXNzaW9uSUQpKTsKKyAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQpKTsKIH0KIAogdm9pZCAoKnNfaW52YWxpZE1lc3NhZ2VDYWxs
YmFjaykoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUpOwpAQCAtNjI1LDcgKzYyNSw3IEBAIFdlYlBy
b2Nlc3NQcm94eSYgV2ViQ29udGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2VzcygpCiAjZW5kaWYKIAog
ICAgIGlmIChXZWJQcmVmZXJlbmNlczo6YW55UGFnZXNBcmVVc2luZ1ByaXZhdGVCcm93c2luZygp
KQotICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklE
KSwgMCk7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVuc3Vy
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklE
KSwgMCk7CiAKICAgICBtX3Byb2Nlc3Nlcy5hcHBlbmQocHJvY2Vzcyk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5jcHAKaW5kZXggZTc0NTBiYS4uZjQyMDUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAK
QEAgLTY3LDYgKzY3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZWN1cml0eVBvbGljeS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckdlc3R1cmVJbmRp
Y2F0b3IuaD4KIApAQCAtMzA4LDkgKzMwOSw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldFBy
aXZhdGVCcm93c2luZ0VuYWJsZWQoV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwgYm9vCiAg
ICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogVGhpcyB0ZXN0LW9ubHkgZnVuY3Rpb24gZG9l
c24ndCB3b3JrIHdpdGggTmV0d29ya1Byb2Nlc3MsIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTE1Mjc0Pi4KICNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKENGTkVU
V09SSykgfHwgVVNFKFNPVVApCiAgICAgaWYgKGVuYWJsZWQpCi0gICAgICAgIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNr
ZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAgICAgICBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJp
dmF0ZVNlc3Npb25JRCk7CiAgICAgZWxzZQotICAgICAgICBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJv
eVNlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAgICAg
ICBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEKTsKICNlbmRpZgogICAgIGNvbnN0IEhhc2hTZXQ8UGFnZSo+JiBwYWdlcyA9IFBh
Z2VHcm91cDo6cGFnZUdyb3VwKHBhZ2VHcm91cC0+aWRlbnRpZmllcigpKS0+cGFnZXMoKTsKICAg
ICBmb3IgKEhhc2hTZXQ8UGFnZSo+OjppdGVyYXRvciBpdGVyID0gcGFnZXMuYmVnaW4oKTsgaXRl
ciAhPSBwYWdlcy5lbmQoKTsgKytpdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRl
eCBlYWJkNjU0Li4yYmFjZGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtNDcs
NiArNDcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVmZXJyZXJQb2xpY3kuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxv
YWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3VicmVzb3VyY2VMb2FkZXIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0xMTgsNyArMTE5LDcgQEAgdm9pZCBXZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciogcmVzb3Vy
Y2VMb2FkZXIsIENhY2gKICAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gaWRlbnRpZmll
cjsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+cGFn
ZUlEKCkgOiAwOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQgPSB3ZWJGcmFtZSA/IHdl
YkZyYW1lLT5mcmFtZUlEKCkgOiAwOwotICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdl
YlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25UcmFja2VyOjpkZWZhdWx0U2Vz
c2lvbklEOworICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdl
LT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRDsKICAgICBsb2FkUGFy
YW1ldGVycy5yZXF1ZXN0ID0gcmVzb3VyY2VMb2FkZXItPnJlcXVlc3QoKTsKICAgICBsb2FkUGFy
YW1ldGVycy5wcmlvcml0eSA9IHByaW9yaXR5OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRT
bmlmZmluZ1BvbGljeSA9IGNvbnRlbnRTbmlmZmluZ1BvbGljeTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcAppbmRleCAzZTcwN2M3Li5jZTdkZDUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1QYXN0ZWJv
YXJkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VOYW1lc3BhY2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9V
UkwuaD4KQEAgLTI2Myw3ICsyNjQsNyBAQCB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9h
ZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dAogICAgIGxv
YWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIgPSByZXNvdXJjZUxvYWRJZGVudGlmaWVyOwogICAgIGxv
YWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5wYWdlSUQoKSA6IDA7
CiAgICAgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZy
YW1lSUQoKSA6IDA7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdl
YlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQ7Cisg
ICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25J
RCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEOwogICAgIGxvYWRQYXJhbWV0ZXJzLnJl
cXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLnByaW9yaXR5ID0gUmVzb3VyY2VM
b2FkUHJpb3JpdHlIaWdoZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1Bv
bGljeSA9IFNuaWZmQ29udGVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0Lm1tCmluZGV4IDNjNTI1MTYuLmY2NmY5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
YWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVk
ZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAKQEAgLTQ0LDcgKzQ1LDcgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAgICAgCiB2b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQogewotICAgIEFTU0VSVChT
ZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKTsKKyAgICBBU1NFUlQoU2Vz
c2lvbklEOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCkpOwogCiAgICAgaWYgKFNlc3Npb25UcmFj
a2VyOjpzZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTEwMSwxMCArMTAy
LDcgQEAgUmVzb3VyY2VFcnJvciBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXEKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24oKSBjb25zdAogewogICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBpZiAoZnJhbWUoKSkKLSAgICAgICAgcmV0
dXJuICpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbih3ZWJGcmFtZUxvYWRlckNsaWVudCgpLT53ZWJG
cmFtZSgpLT5wYWdlKCktPnNlc3Npb25JRCgpKTsKLSAgICByZXR1cm4gTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKKyAgICByZXR1cm4gKlNlc3Npb25UcmFj
a2VyOjpzZXNzaW9uKGZyYW1lKCkgPyBmcmFtZSgpLT5wYWdlKCktPnNlc3Npb25JRCgpIDogU2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKTsKIH0KIAogV2ViRnJhbWVMb2FkZXJDbGllbnQqIFdl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OndlYkZyYW1lTG9hZGVyQ2xpZW50KCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAppbmRleCA0
ZDEzZGMzLi5kZGIxNGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNr
ZXIuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtNTUsNyArNTYsNyBAQCBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkZyYW1l
KiBmcmFtZSkKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6c3RvcmFnZVNlc3Npb24oKSBjb25zdAogewogICAgIGlmIChmcmFtZSgpICYmIGZyYW1lKCkt
PnNldHRpbmdzKCkucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gKlNl
c3Npb25UcmFja2VyOjpzZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lv
bklEKTsKKyAgICAgICAgcmV0dXJuICpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbihTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOwogCiAgICAgcmV0dXJuIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYjI1M2MwNy4uNmZhMzY5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTMzLDYg
KzEzMyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFkb3dSb290Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KQEAgLTIyNiw3ICsyMjcsNiBAQCBQYXNz
UmVmUHRyPFdlYlBhZ2U+IFdlYlBhZ2U6OmNyZWF0ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdl
YlBhZ2VDcmVhdGlvblBhcmFtZQogCiBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwg
Y29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICA6IG1fcGFn
ZUlEKHBhZ2VJRCkKLSAgICAsIG1fc2Vzc2lvbklEKDApCiAgICAgLCBtX3ZpZXdTaXplKHBhcmFt
ZXRlcnMudmlld1NpemUpCiAgICAgLCBtX2hhc1NlZW5QbHVnaW4oZmFsc2UpCiAgICAgLCBtX3Vz
ZUZpeGVkTGF5b3V0KGZhbHNlKQpAQCAtMjEwOCwyMSArMjEwOCwyMSBAQCB2b2lkIFdlYlBhZ2U6
OnNldExheWVySG9zdGluZ01vZGUodW5zaWduZWQgbGF5ZXJIb3N0aW5nTW9kZSkKIAogdWludDY0
X3QgV2ViUGFnZTo6c2Vzc2lvbklEKCkgY29uc3QKIHsKLSAgICBpZiAobV9zZXNzaW9uSUQpCi0g
ICAgICAgIHJldHVybiBtX3Nlc3Npb25JRDsKKyAgICBpZiAobV9wYWdlLT5pc1Nlc3Npb25JRFNl
dCgpKQorICAgICAgICByZXR1cm4gbV9wYWdlLT5zZXNzaW9uSUQoKTsKIAotICAgIHJldHVybiBt
X3BhZ2UtPnNldHRpbmdzKCkucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpID8gU2Vzc2lvblRyYWNr
ZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQgOiBTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNlc3Np
b25JRDsKKyAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLnByaXZhdGVCcm93c2luZ0VuYWJs
ZWQoKSA/IFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCA6IFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRDsKIH0KIAogYm9vbCBXZWJQYWdlOjppc1VzaW5nRXBoZW1lcmFsU2Vzc2lv
bigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFNlc3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKHNl
c3Npb25JRCgpKTsKKyAgICByZXR1cm4gU2Vzc2lvbklEOjppc0VwaGVtZXJhbElEKHNlc3Npb25J
RCgpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZXRTZXNzaW9uSUQodWludDY0X3Qgc2Vzc2lvbklE
KQogewotICAgIG1fc2Vzc2lvbklEID0gc2Vzc2lvbklEOwotICAgIGlmIChTZXNzaW9uVHJhY2tl
cjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKQorICAgIG1fcGFnZS0+c2V0U2Vzc2lvbklEKHNl
c3Npb25JRCk7CisgICAgaWYgKFNlc3Npb25JRDo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKQog
ICAgICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5lbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KHNlc3Npb25JRCk7CiB9CiAKQEAgLTI0MjgsOCArMjQyOCw4IEBAIHZvaWQgV2ViUGFnZTo6dXBk
YXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgc2V0
dGluZ3Muc2V0TG9jYWxTdG9yYWdlRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2Vi
UHJlZmVyZW5jZXNLZXk6OmxvY2FsU3RvcmFnZUVuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdz
LnNldFhTU0F1ZGl0b3JFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJl
bmNlc0tleTo6eHNzQXVkaXRvckVuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldEZyYW1l
RmxhdHRlbmluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5OjpmcmFtZUZsYXR0ZW5pbmdFbmFibGVkS2V5KCkpKTsKLSAgICBpZiAobV9zZXNzaW9uSUQp
Ci0gICAgICAgIHNldHRpbmdzLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoU2Vzc2lvblRyYWNr
ZXI6OmlzRXBoZW1lcmFsSUQobV9zZXNzaW9uSUQpKTsKKyAgICBpZiAobV9wYWdlLT5pc1Nlc3Np
b25JRFNldCgpKQorICAgICAgICBzZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKFNl
c3Npb25JRDo6aXNFcGhlbWVyYWxJRChtX3BhZ2UtPnNlc3Npb25JRCgpKSk7CiAgICAgZWxzZQog
ICAgICAgICBzZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHN0b3JlLmdldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZEtleSgp
KSk7CiAgICAgc2V0dGluZ3Muc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChzdG9yZS5nZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmRldmVsb3BlckV4dHJhc0VuYWJsZWRLZXko
KSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
YWE0YWMyYy4uOTM2MTA5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC05MDAsNyArOTAwLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcG9ydFVz
ZWRGZWF0dXJlcygpOwogCiAgICAgdWludDY0X3QgbV9wYWdlSUQ7Ci0gICAgdWludDY0X3QgbV9z
ZXNzaW9uSUQ7CiAKICAgICBPd25QdHI8V2ViQ29yZTo6UGFnZT4gbV9wYWdlOwogICAgIFJlZlB0
cjxXZWJGcmFtZT4gbV9tYWluRnJhbWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224950</attachid>
            <date>2014-02-21 23:36:35 -0800</date>
            <delta_ts>2014-02-22 00:13:01 -0800</delta_ts>
            <desc>make SessionID a value class per comment</desc>
            <filename>sessionidclass.07.diff</filename>
            <type>text/plain</type>
            <size>70703</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0Y2YwYjI2Li4xYjUzYzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTQtMDItMjEgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IENyZWF0ZSBTZXNzaW9uSUQgdmFsdWUtc3R5bGUgY2xhc3MgZm9yIHNlc3Npb24gSURzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MTQxIAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZp
bGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDogQWRk
IFNlc3Npb25JRCBtZW1iZXIuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6OnNlc3Npb25JRCk6IFJldHJpZXZlIHNlc3Npb25JRCBvciB1c2Ug
c2V0dGluZ3MgaWYgbm90IHNldC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OmlzU2Vzc2lvbklEU2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNl
dFNlc3Npb25JRCk6CisgICAgICAgICogcGFnZS9TZXNzaW9uSUQuaDogU2Vzc2lvbiBJRCBjbGFz
cyBjb25zaXN0aW5nIHNvbGVseSBvZiBpdHMgdWludDY0X3Qgc2Vzc2lvbiBJRC4KKyAgICAgICAg
KFdlYkNvcmU6OlNlc3Npb25JRDo6U2Vzc2lvbklEKToKKyAgICAgICAgKFdlYkNvcmU6OlNlc3Np
b25JRDo6aXNWYWxpZCk6IE5vdCBlbXB0eS4KKyAgICAgICAgKFdlYkNvcmU6OlNlc3Npb25JRDo6
aXNFcGhlbWVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbklEOjpzZXNzaW9uSUQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbklEOjpvcGVyYXRvcj09KTogVmFsdWUtYmFzZWQgZXF1
YWxpdHkuCisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ6Om9wZXJhdG9yIT0pOgorICAgICAg
ICAoV2ViQ29yZTo6U2Vzc2lvbklEOjplbXB0eVNlc3Npb25JRCk6IFplcm8gdmFsdWUgYWxzbyB1
c2VkIGZvciBIYXNoVHJhaXRzIGVtcHR5VmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQpOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbklEOjpsZWdh
Y3lQcml2YXRlU2Vzc2lvbklEKToKKyAgICAgICAgKiBwYWdlL1Nlc3Npb25JREhhc2guaDoKKyAg
ICAgICAgKFdURjo6U2Vzc2lvbklESGFzaDo6aGFzaCk6IEp1c3QgdGhlIGNhc3RlZCBzZXNzaW9u
IElEIChsb3cgb3JkZXIgYnl0ZXMpCisgICAgICAgIChXVEY6OlNlc3Npb25JREhhc2g6OmVxdWFs
KToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpTZXNzaW9uSUQ+OjplbXB0eVZh
bHVlKTogRXF1YWwgdG8gZW1wdHlTZXNzaW9uSUQuCisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8
V2ViQ29yZTo6U2Vzc2lvbklEPjo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKTogLTEgdmFsdWUuCisg
ICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViQ29yZTo6U2Vzc2lvbklEPjo6aXNEZWxldGVkVmFs
dWUpOgorCiAyMDE0LTAyLTIxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1ha2UgYSBnZW5lcmljIENETVByaXZhdGVNZWRpYVBsYXllciBhbmQgbW92ZSBpdHMg
Q0RNU2Vzc2lvbiBpbnRvIHBsYXRmb3JtLy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmlu
ZGV4IDE3YTYwY2EuLjY3NjVhZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
NDE4MSw2ICs0MTgxLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9w
YWdlL1NlY3VyaXR5T3JpZ2luSGFzaC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5
UG9saWN5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmlu
ZGV4IGY5MDdjNzQuLjVlODQwYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xMDAwLDYgKzEw
MDAsNyBAQCBfX1pON1dlYkNvcmU0UGFnZTExUGFnZUNsaWVudHNDMUV2CiBfX1pON1dlYkNvcmU0
UGFnZTExUGFnZUNsaWVudHNEMUV2CiBfX1pON1dlYkNvcmU0UGFnZTEyc2V0R3JvdXBOYW1lRVJL
TjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlNFBhZ2UxMnNldElzVmlzaWJsZUViCitfX1pON1dl
YkNvcmU0UGFnZTEyc2V0U2Vzc2lvbklERU5TXzlTZXNzaW9uSURFCiBfX1pON1dlYkNvcmU0UGFn
ZTEyc2V0Vmlld1N0YXRlRWoKIF9fWk43V2ViQ29yZTRQYWdlMTNyYW5nZU9mU3RyaW5nRVJLTjNX
VEY2U3RyaW5nRVBOU181UmFuZ2VFagogX19aTjdXZWJDb3JlNFBhZ2UxM3NldElzSW5XaW5kb3dF
YgpAQCAtMTczOSw2ICsxNzQwLDcgQEAgX19aTks3V2ViQ29yZTRQYWdlMTd2aWV3cG9ydEFyZ3Vt
ZW50c0V2CiBfX1pOSzdXZWJDb3JlNFBhZ2UzNGluTG93UXVhbGl0eUltYWdlSW50ZXJwb2xhdGlv
bk1vZGVFdgogX19aTks3V2ViQ29yZTRQYWdlOWdyb3VwTmFtZUV2CiBfX1pOSzdXZWJDb3JlNFBh
Z2U5cGFnZUNvdW50RXYKK19fWk5LN1dlYkNvcmU0UGFnZTlzZXNzaW9uSURFdgogX19aTks3V2Vi
Q29yZTVDb2xvcjEwc2VyaWFsaXplZEV2CiBfX1pOSzdXZWJDb3JlNUNvbG9yN2dldFJHQkFFUmRT
MV9TMV9TMV8KIF9fWk5LN1dlYkNvcmU1Q29sb3I3Z2V0UkdCQUVSZlMxX1MxX1MxXwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU0
MjRiZTAuLjNmZjQ0ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTIyMTUsNiArMjIxNSw3IEBACiAJCTc1NDE1RDVBMTI5QUIy
RDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0MTVENTQxMjlBQjJEMjAwM0FENjY5IC8q
IEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggKi87IH07CiAJCTc1NTNDRkU4MTA4RjQ3M0YwMEVB
MjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGlu
ZVJlY29yZEZhY3RvcnkuaCAqLzsgfTsKIAkJNzU1M0NGRTkxMDhGNDczRjAwRUEyODFFIC8qIFRp
bWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmNwcCAqLzsgfTsKKwkJNzU2QjJDRTExOEI3MTAxNjAwRkVDRkFBIC8qIFNlc3Npb25J
RC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU2QjJD
RTAxOEI3MTAxNjAwRkVDRkFBIC8qIFNlc3Npb25JRC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc1NzhGOTBDMTFEREYyNjkwMEQ5MzNDNSAvKiBT
cGVlY2hJbnB1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU3OEY5MDkxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmggKi87IH07CiAJCTc1
NzhGOTBEMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5MEExMURERjI2OTAwRDkz
M0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggKi87IH07CiAJCTc1NzhGOTIwMTFFNEUzMjgwMEQ5
MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkxRTExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNoSW5w
dXRMaXN0ZW5lci5oICovOyB9OwpAQCAtMjIyNSw2ICsyMjI2LDcgQEAKIAkJNzU3OTNFRDMwRDBD
RTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFRDAwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1l
c3NhZ2VFdmVudC5oICovOyB9OwogCQk3NTc5M0VENDBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVz
c2FnZUV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU3OTNFRDEwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5tbSAqLzsgfTsK
IAkJNzU3OTNFRDUwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudEludGVybmFsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VEMjBE
MENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50SW50ZXJuYWwuaCAqLzsgfTsKKwkJNzVE
Q0M3QjgxOEI4MUM4ODAwQTU3MTI4IC8qIFNlc3Npb25JREhhc2guaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RENDN0I3MThCODFDODgwMEE1NzEyOCAv
KiBTZXNzaW9uSURIYXNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNzYzM0E3MjYxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0TWFw
cGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzYz
M0E3MjQxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0TWFwcGluZy5oICovOyB9Owog
CQk3NjMzQTcyNzEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVs
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjMz
QTcyNTEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVsdC5jcHAg
Ki87IH07CiAJCTc2ODA4QjUwMTU5REFERkEwMDJCNTIzMyAvKiBKU0hUTUxEaWFsb2dFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjgwOEI0
RTE1OURBREZBMDAyQjUyMzMgLyogSlNIVE1MRGlhbG9nRWxlbWVudC5oICovOyB9OwpAQCAtOTE0
OCw2ICs5MTUwLDcgQEAKIAkJNzU0MTVENTQxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5w
dXRSZXN1bHRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3BlZWNo
SW5wdXRSZXN1bHRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NTNDRkU2
MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJl
Y29yZEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU2
QjJDRTAxOEI3MTAxNjAwRkVDRkFBIC8qIFNlc3Npb25JRC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTZXNzaW9uSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzU3OEY5MDkxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTc1NzhGOTBBMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hJbnB1dENsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc4RjkxRTExRTRFMzI4MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXRMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hJbnB1dExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MTYwLDYg
KzkxNjMsNyBAQAogCQk3NTc5M0VEMTBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTU1lc3NhZ2VF
dmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU3OTNFRDIwRDBDRTg1QjAw
N0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01NZXNzYWdlRXZlbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3NTg5NzhFQjEyNzA5MEQ2MDA3NkQ1QTkgLyogU3BlZWNoSW5wdXRSZXN1
bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoSW5wdXRSZXN1bHQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVEQ0M3QjcxOEI4MUM4ODAwQTU3MTI4
IC8qIFNlc3Npb25JREhhc2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Vz
c2lvbklESGFzaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NjMzQTcyNDEzRDhC
MzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRNYXBwaW5nLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExvY2FsZVRvU2NyaXB0TWFwcGluZy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3NjMzQTcyNTEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRN
YXBwaW5nRGVmYXVsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBM
b2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZhdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzY4MDhCNEUxNTlEQURGQTAwMkI1MjMzIC8qIEpTSFRNTERpYWxvZ0VsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRGlhbG9nRWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYxNzUsNiArMTYxNzksOCBAQAogCQkJCUJD
RDBFMEY5MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbkhhc2guaCAqLywKIAkJCQk5
NzREMkRBMjE0NkE1MzVEMDBENTFGOEIgLyogU2VjdXJpdHlQb2xpY3kuY3BwICovLAogCQkJCTk3
NEQyREEzMTQ2QTUzNUQwMEQ1MUY4QiAvKiBTZWN1cml0eVBvbGljeS5oICovLAorCQkJCTc1NkIy
Q0UwMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNzaW9uSUQuaCAqLywKKwkJCQk3NURDQzdCNzE4Qjgx
Qzg4MDBBNTcxMjggLyogU2Vzc2lvbklESGFzaC5oICovLAogCQkJCTE0QzlBNUU5MEIzRDEwNUYw
MDVBMDIzMiAvKiBTZXR0aW5ncy5jcHAgKi8sCiAJCQkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIy
IC8qIFNldHRpbmdzLmggKi8sCiAJCQkJQkM1OURFRjgxNjlERURDMzAwMTZBQzM0IC8qIFNldHRp
bmdzLmluICovLApAQCAtMjI3MzcsNiArMjI3NDMsNyBAQAogCQkJCTA3OTY5REMyMTdEMTQxNTEw
MDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDM1OTE5
MDEzOERCMjIwMDBFMUVCRUMgLyogQXVkaW9QYXJhbVRpbWVsaW5lLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRDMxNjAyMDEyQjAyNjc2MDBDMUEzNTkgLyogQXVkaW9Qcm9jZXNzaW5nRXZlbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCTc1RENDN0I4MThCODFDODgwMEE1NzEyOCAvKiBTZXNzaW9uSURI
YXNoLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA4NDEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9Qcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDg2MTJCMDI2RjcwMEMxQTM1
OSAvKiBBdWRpb1Jlc2FtcGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwODgxMkIwMjZG
NzAwQzFBMzU5IC8qIEF1ZGlvUmVzYW1wbGVyS2VybmVsLmggaW4gSGVhZGVycyAqLywKQEAgLTIz
OTQ5LDYgKzIzOTU2LDcgQEAKIAkJCQk3QTI0NTg3QzEwMjFFQUY0MDAwQTAwQUEgLyogSW5zcGVj
dG9yRE9NQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNjRFRDQ0MTgzMjA4QzcwMEVBOEZG
MSAvKiBJREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjNE
NEM0NzkxMkUwNzY2MzAwM0RBMTUwIC8qIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTc1NkIyQ0UxMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNzaW9uSUQuaCBp
biBIZWFkZXJzICovLAogCQkJCTdBNzRFQ0JCMTAxODM5QTYwMEJGOTM5RSAvKiBJbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MDU4NTM0MTdGREU2RDkwMDVG
MkJDQiAvKiBKU01lZGlhVHJhY2tDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc4
REEyMEUxNTIwRUI4QzAwNjE0MUMxIC8qIEluc3BlY3RvcldlYkZyb250ZW5kRGlzcGF0Y2hlcnMu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMjE3OTVhYi4uZWNlNDcwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xODEsNiArMTgxLDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xp
ZW50cyYgcGFnZUNsaWVudHMpCiAjZW5kaWYKICAgICAsIG1fbGFzdFNwYXRpYWxOYXZpZ2F0aW9u
Q2FuZGlkYXRlc0NvdW50KDApIC8vIE5PVEU6IE9ubHkgY2FsbGVkIGZyb20gSW50ZXJuYWxzIGZv
ciBTcGF0aWFsIE5hdmlnYXRpb24gdGVzdGluZy4KICAgICAsIG1fZnJhbWVzSGFuZGxpbmdCZWZv
cmVVbmxvYWRFdmVudCgwKQorICAgICwgbV9zZXNzaW9uSUQoU2Vzc2lvbklEOjplbXB0eVNlc3Np
b25JRCgpKQogewogICAgIEFTU0VSVChtX2VkaXRvckNsaWVudCk7CiAKQEAgLTE0OTMsNiArMTQ5
NCwyMyBAQCB2b2lkIFBhZ2U6OnNldFVzZXJDb250ZW50Q29udHJvbGxlcihVc2VyQ29udGVudENv
bnRyb2xsZXIqIHVzZXJDb250ZW50Q29udHJvbGxlcgogICAgICAgICBtX3VzZXJDb250ZW50Q29u
dHJvbGxlci0+YWRkUGFnZSgqdGhpcyk7CiB9CiAKK1Nlc3Npb25JRCBQYWdlOjpzZXNzaW9uSUQo
KSBjb25zdAoreworICAgIGlmIChtX3Nlc3Npb25JRC5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVy
biBtX3Nlc3Npb25JRDsKKworICAgIGlmIChzZXR0aW5ncygpLnByaXZhdGVCcm93c2luZ0VuYWJs
ZWQoKSkKKyAgICAgICAgcmV0dXJuIFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgp
OworCisgICAgcmV0dXJuIFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOworfQorCit2b2lk
IFBhZ2U6OnNldFNlc3Npb25JRChTZXNzaW9uSUQgc2Vzc2lvbklEKQoreworICAgIEFTU0VSVChz
ZXNzaW9uSUQuaXNWYWxpZCgpKTsKKyAgICBtX3Nlc3Npb25JRCA9IHNlc3Npb25JRDsKK30KKwog
UGFnZTo6UGFnZUNsaWVudHM6OlBhZ2VDbGllbnRzKCkKICAgICA6IGFsdGVybmF0aXZlVGV4dENs
aWVudChudWxscHRyKQogICAgICwgY2hyb21lQ2xpZW50KG51bGxwdHIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmlu
ZGV4IGE3MTVmZWYuLmI5Y2I3ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiUGFnaW5hdGlvbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5j
bHVkZSAiUmVnaW9uLmgiCisjaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVkZSAiU3VwcGxl
bWVudGFibGUuaCIKICNpbmNsdWRlICJWaWV3U3RhdGUuaCIKICNpbmNsdWRlICJWaWV3cG9ydEFy
Z3VtZW50cy5oIgpAQCAtMzk3LDYgKzM5OCw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VXNl
ckNvbnRlbnRDb250cm9sbGVyKFVzZXJDb250ZW50Q29udHJvbGxlciopOwogICAgIFVzZXJDb250
ZW50Q29udHJvbGxlciogdXNlckNvbnRlbnRDb250cm9sbGVyKCkgeyByZXR1cm4gbV91c2VyQ29u
dGVudENvbnRyb2xsZXIuZ2V0KCk7IH0KKyAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRTZXNzaW9uSUQoU2Vzc2lvbklEKTsKKyAgICBib29sIGlzU2Vzc2lvbklE
U2V0KCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQuaXNWYWxpZCgpOyB9CiAKIHByaXZhdGU6
CiAgICAgdm9pZCBpbml0R3JvdXAoKTsKQEAgLTUzNyw2ICs1NDEsOCBAQCBwcml2YXRlOgogICAg
IHVuc2lnbmVkIG1fZnJhbWVzSGFuZGxpbmdCZWZvcmVVbmxvYWRFdmVudDsKIAogICAgIFJlZlB0
cjxVc2VyQ29udGVudENvbnRyb2xsZXI+IG1fdXNlckNvbnRlbnRDb250cm9sbGVyOworCisgICAg
U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKIAogaW5saW5lIFBhZ2VHcm91cCYgUGFnZTo6Z3Jv
dXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSUQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklELmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNWVmZDc0YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vz
c2lvbklELmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2Vzc2lvbklE
X2gKKyNkZWZpbmUgU2Vzc2lvbklEX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBT
ZXNzaW9uSUQgeworcHVibGljOgorICAgIFNlc3Npb25JRCgpCisgICAgICAgIDogU2Vzc2lvbklE
KGVtcHR5U2Vzc2lvbklEKCkpIHsgfQorICAgIGV4cGxpY2l0IFNlc3Npb25JRCh1aW50NjRfdCBz
ZXNzaW9uSUQpCisgICAgICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKSB7IH0KKyAgICBib29s
IGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiAqdGhpcyAhPSBlbXB0eVNlc3Npb25JRCgpOyB9Cisg
ICAgYm9vbCBpc0VwaGVtZXJhbCgpIGNvbnN0IHsgcmV0dXJuICp0aGlzICE9IGRlZmF1bHRTZXNz
aW9uSUQoKTsgfQorICAgIHVpbnQ2NF90IHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vz
c2lvbklEOyB9CisgICAgYm9vbCBvcGVyYXRvcj09KFNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0
IHsgcmV0dXJuIG1fc2Vzc2lvbklEID09IHNlc3Npb25JRC5tX3Nlc3Npb25JRDsgfQorICAgIGJv
b2wgb3BlcmF0b3IhPShTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdCB7IHJldHVybiBtX3Nlc3Np
b25JRCAhPSBzZXNzaW9uSUQubV9zZXNzaW9uSUQ7IH0KKworICAgIHN0YXRpYyBTZXNzaW9uSUQg
ZW1wdHlTZXNzaW9uSUQoKSB7IHJldHVybiBTZXNzaW9uSUQoMCk7IH0KKyAgICBzdGF0aWMgU2Vz
c2lvbklEIGRlZmF1bHRTZXNzaW9uSUQoKSB7IHJldHVybiBTZXNzaW9uSUQoMSk7IH0KKyAgICBz
dGF0aWMgU2Vzc2lvbklEIGxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSB7IHJldHVybiBTZXNzaW9u
SUQoMik7IH0KK3ByaXZhdGU6CisgICAgdWludDY0X3QgbV9zZXNzaW9uSUQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTZXNzaW9uSURfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSURIYXNoLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1Nlc3Npb25JREhhc2guaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTVk
YTk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSURIYXNo
LmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2Vzc2lvbklESGFzaF9o
CisjZGVmaW5lIFNlc3Npb25JREhhc2hfaAorCisjaW5jbHVkZSAiU2Vzc2lvbklELmgiCisjaW5j
bHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgor
CituYW1lc3BhY2UgV1RGIHsKKyAgICAKKy8vIFRoZSBlbXB0eSB2YWx1ZSBpcyBlbXB0eVNlc3Np
b25JRCgpLCB0aGUgZGVsZXRlZCB2YWx1ZSBpcyAoLTEpCitzdHJ1Y3QgU2Vzc2lvbklESGFzaCB7
CisgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJiBwKSB7
IHJldHVybiAodW5zaWduZWQpcC5zZXNzaW9uSUQoKTsgfQorICAgIHN0YXRpYyBib29sIGVxdWFs
KGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYgYSwgY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJiBi
KSB7IHJldHVybiBhID09IGI7IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJl
VG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Cit9OwordGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0
czxXZWJDb3JlOjpTZXNzaW9uSUQ+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6U2Vzc2lv
bklEPiB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOwor
ICAgIHN0YXRpYyBXZWJDb3JlOjpTZXNzaW9uSUQgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIFdlYkNv
cmU6OlNlc3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQoKTsgfQorICAgIAorICAgIHN0YXRpYyB2b2lk
IGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3JlOjpTZXNzaW9uSUQmIHNsb3QpIHsgc2xvdCA9
IFdlYkNvcmU6OlNlc3Npb25JRCgtMik7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1
ZShjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3QgPT0gV2ViQ29y
ZTo6U2Vzc2lvbklEKC0yKTsgfQorfTsKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdl
YkNvcmU6OlNlc3Npb25JRD4geworICAgIHR5cGVkZWYgU2Vzc2lvbklESGFzaCBIYXNoOworfTsK
KworfQorCisjZW5kaWYgLy8gU2Vzc2lvbklESGFzaF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTdmZjdmNC4u
YTZjNDUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDE0LTAyLTIxICBNYXJ0aW4g
SG9jayAgPG1ob2NrQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgU2Vzc2lvbklEIHZhbHVl
LXN0eWxlIGNsYXNzIGZvciBzZXNzaW9uIElEcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTE0MQorCisgICAgICAgIFRoZSBiZWxvdyBjaGFuZ2Vz
IGRlYWwgc29sZWx5IHdpdGggbWVjaGFuaWNhbCBjaGFuZ2VzIHRvIHVzZSB0aGUgU2Vzc2lvbklE
IHZhbHVlIGNsYXNzIGluc3RlYWQgb2YgdWludDY0X3QgZXhjZXB0IHdoZXJlIG5vdGVkLgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpzdGFydERvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00pOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00pOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0VuYWJsZWQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2llcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWxldGVDb29raWUpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Np
b24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyk6CisgICAgICAg
ICogU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAg
ICAgKiBTaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpzdGF0aWNT
ZXNzaW9uTWFwKToKKyAgICAgICAgKFdlYktpdDo6c3RvcmFnZVNlc3Npb25Ub0lEKToKKyAgICAg
ICAgKFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OnNlc3Npb25NYXApOgorICAgICAgICAoV2ViS2l0
OjpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFj
a2VyOjpzZXNzaW9uSUQpOgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6c2V0U2Vz
c2lvbik6CisgICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbik6
CisgICAgICAgICogU2hhcmVkL1Nlc3Npb25UcmFja2VyLmg6IE1vdmUgY29kZSB0byBTZXNzaW9u
SUQgY2xhc3MuCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6IEFk
ZCBlbmNvZGUgYW5kIGRlY29kZSBmb3IgU2Vzc2lvbklELgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPFNlc3Npb25JRD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8
U2Vzc2lvbklEPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmg6CisgICAgICAgICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbToKKyAgICAg
ICAgKFdlYktpdDo6d2ViS2l0Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9y
VVJMKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHA6CisgICAgICAgIChBUEk6
OmdlbmVyYXRlSUQpOgorICAgICAgICAoQVBJOjpTZXNzaW9uOjpkZWZhdWx0U2Vzc2lvbik6Cisg
ICAgICAgIChBUEk6OlNlc3Npb246OmxlZ2FjeVByaXZhdGVTZXNzaW9uKToKKyAgICAgICAgKEFQ
STo6U2Vzc2lvbjo6U2Vzc2lvbik6CisgICAgICAgIChBUEk6OlNlc3Npb246OmlzRXBoZW1lcmFs
KToKKyAgICAgICAgKEFQSTo6U2Vzc2lvbjo6Z2V0SUQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UElTZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb250ZXh0OjpzZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJv
d3NpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6Y3JlYXRlTmV3V2Vi
UHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
c2Vzc2lvbklEKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnNldFByaXZhdGVC
cm93c2luZ0VuYWJsZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXI6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpl
bnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6
OnN0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3Nv
dXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDogTW92ZSBzZXNzaW9uSUQgdG8gUGFnZSB0byBhbGxvdyBXZWJDb3Jl
IHRvIGFjY2VzcyBpdC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNlc3Npb25JRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmlzVXNpbmdFcGhlbWVyYWxTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
c2V0U2Vzc2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5j
ZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRl
c3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisK
IDIwMTQtMDItMjEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTYwNzM4ODI+IFBsZWFzZSBhZGQgX0FiYW5kb25Db2FsaXRpb24ga2V5IHRv
IHBsdWdpbiBYUEMgc2VydmljZSBJbmZvLnBsaXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggMWZlZTQ5OC4uZGNjNjJlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
QEAgLTE0OCw5ICsxNDksOSBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpz
ZXRTZXJpYWxMb2FkaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgbV9zZXJpYWxMb2FkaW5n
RW5hYmxlZCA9IGVuYWJsZWQ7CiB9CiAKLXN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0
b3JhZ2VTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKK3N0YXRpYyBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIHN0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgaWYgKFNl
c3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCkpIHsKKyAgICBpZiAoc2Vzc2lv
bklELmlzRXBoZW1lcmFsKCkpIHsKICAgICAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBwcml2
YXRlU2Vzc2lvbiA9IFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHNlc3Npb25JRCk7CiAgICAgICAg
IGlmIChwcml2YXRlU2Vzc2lvbikKICAgICAgICAgICAgIHJldHVybiAqcHJpdmF0ZVNlc3Npb247
CkBAIC0xNjEsNyArMTYyLDcgQEAgc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFn
ZVNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQogICAgIHJldHVybiBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpzdGFydERvd25sb2FkKHVpbnQ2NF90IHNlc3Npb25JRCwgdWludDY0
X3QgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3RhcnREb3dubG9hZChTZXNzaW9uSUQgc2Vzc2lv
bklELCB1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qp
CiB7CiAgICAgLy8gRklYTUU6IERvIHNvbWV0aGluZyB3aXRoIHRoZSBzZXNzaW9uIElELgogICAg
IE5ldHdvcmtQcm9jZXNzOjpzaGFyZWQoKS5kb3dubG9hZE1hbmFnZXIoKS5zdGFydERvd25sb2Fk
KGRvd25sb2FkSUQsIHJlcXVlc3QpOwpAQCAtMTgzLDMyICsxODQsMzIgQEAgdm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2Fk
KHVpbnQ2NF90IG0KICAgICBsb2FkZXItPmRpZENvbnZlcnRIYW5kbGVUb0Rvd25sb2FkKCk7CiB9
CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00odWlu
dDY0X3Qgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBT
dHJpbmcmIHJlc3VsdCkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tp
ZXNGb3JET00oU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBVUkwmIHVybCwgU3RyaW5nJiByZXN1bHQpCiB7CiAgICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29v
a2llc0ZvckRPTShzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5LCB1cmwpOwog
fQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURP
TSh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00oU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJp
bmcpCiB7CiAgICAgV2ViQ29yZTo6c2V0Q29va2llc0Zyb21ET00oc3RvcmFnZVNlc3Npb24oc2Vz
c2lvbklEKSwgZmlyc3RQYXJ0eSwgdXJsLCBjb29raWVTdHJpbmcpOwogfQogCi12b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRW5hYmxlZCh1aW50NjRfdCBzZXNzaW9u
SUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIGJvb2wmIHJlc3VsdCkK
K3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNFbmFibGVkKFNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIGJv
b2wmIHJlc3VsdCkKIHsKICAgICByZXN1bHQgPSBXZWJDb3JlOjpjb29raWVzRW5hYmxlZChzdG9y
YWdlU2Vzc2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5LCB1cmwpOwogfQogCi12b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSh1
aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmws
IFN0cmluZyYgcmVzdWx0KQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgU3RyaW5nJiByZXN1bHQpCiB7CiAgICAgcmVz
dWx0ID0gV2ViQ29yZTo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc3RvcmFnZVNlc3Np
b24oc2Vzc2lvbklEKSwgZmlyc3RQYXJ0eSwgdXJsKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2llcyh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiByZXN1bHQp
Cit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKFNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIFZl
Y3RvcjxDb29raWU+JiByZXN1bHQpCiB7CiAgICAgV2ViQ29yZTo6Z2V0UmF3Q29va2llcyhzdG9y
YWdlU2Vzc2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5LCB1cmwsIHJlc3VsdCk7CiB9CiAKLXZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRlbGV0ZUNvb2tpZSh1aW50NjRfdCBz
ZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpCit2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWxldGVDb29raWUoU2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkKIHsKICAg
ICBXZWJDb3JlOjpkZWxldGVDb29raWUoc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSwgdXJsLCBj
b29raWVOYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDM5ODFmYTUuLmZh
OTk3OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNzYsMTUgKzc2LDE1IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBjcm9zc09yaWdpblJlZGlyZWN0UmVjZWl2ZWQoUmVzb3VyY2VMb2Fk
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6VVJMJiByZWRpcmVjdFVSTCk7CiAgICAgdm9pZCBz
ZXJ2ZVBlbmRpbmdSZXF1ZXN0cyh1aW50MzJfdCByZXNvdXJjZUxvYWRQcmlvcml0eSk7CiAgICAg
dm9pZCBzZXRTZXJpYWxMb2FkaW5nRW5hYmxlZChib29sKTsKLSAgICB2b2lkIHN0YXJ0RG93bmxv
YWQodWludDY0X3Qgc2Vzc2lvbklELCB1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICB2b2lkIHN0YXJ0RG93bmxvYWQoV2ViQ29yZTo6U2Vz
c2lvbklELCB1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmKTsKICAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZCh1aW50NjRf
dCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0X3QgZG93bmxvYWRJRCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpOwogCi0gICAgdm9pZCBjb29raWVzRm9yRE9NKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3Qg
V2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBTdHJpbmcmIHJl
c3VsdCk7Ci0gICAgdm9pZCBzZXRDb29raWVzRnJvbURPTSh1aW50NjRfdCBzZXNzaW9uSUQsIGNv
bnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3Qg
U3RyaW5nJik7Ci0gICAgdm9pZCBjb29raWVzRW5hYmxlZCh1aW50NjRfdCBzZXNzaW9uSUQsIGNv
bnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgYm9vbCYg
cmVzdWx0KTsKLSAgICB2b2lkIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHVpbnQ2NF90
IHNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3Jl
OjpVUkwmLCBTdHJpbmcmIHJlc3VsdCk7Ci0gICAgdm9pZCBnZXRSYXdDb29raWVzKHVpbnQ2NF90
IHNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3Jl
OjpVUkwmLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpOwotICAgIHZvaWQgZGVsZXRlQ29va2ll
KHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJiBj
b29raWVOYW1lKTsKKyAgICB2b2lkIGNvb2tpZXNGb3JET00oV2ViQ29yZTo6U2Vzc2lvbklELCBj
b25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFN0cmlu
ZyYgcmVzdWx0KTsKKyAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKFdlYkNvcmU6OlNlc3Npb25J
RCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBj
b25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGNvb2tpZXNFbmFibGVkKFdlYkNvcmU6OlNlc3Npb25J
RCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBi
b29sJiByZXN1bHQpOworICAgIHZvaWQgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoV2Vi
Q29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdl
YkNvcmU6OlVSTCYsIFN0cmluZyYgcmVzdWx0KTsKKyAgICB2b2lkIGdldFJhd0Nvb2tpZXMoV2Vi
Q29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdl
YkNvcmU6OlVSTCYsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+Jik7CisgICAgdm9pZCBkZWxldGVD
b29raWUoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJp
bmcmIGNvb2tpZU5hbWUpOwogCiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgV2ViQ29y
ZTo6VVJMJiwgY29uc3QgQmxvYlJlZ2lzdHJhdGlvbkRhdGEmKTsKICAgICB2b2lkIHJlZ2lzdGVy
QmxvYlVSTEZyb21VUkwoY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBz
cmNVUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRl
eCBhNDU5N2ZjLi5hZjFlODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgpAQCAtMzIsMTUgKzMyLDE1IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICAKICAgICBTZXRTZXJpYWxMb2Fk
aW5nRW5hYmxlZChib29sIGVuYWJsZWQpIC0+ICgpCiAKLSAgICBTdGFydERvd25sb2FkKHVpbnQ2
NF90IHNlc3Npb25JRCwgdWludDY0X3QgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QpCisgICAgU3RhcnREb3dubG9hZChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCB1aW50NjRfdCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCkKICAgICBDb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQodWludDY0X3QgbWFpblJl
c291cmNlTG9hZElkZW50aWZpZXIsIHVpbnQ2NF90IGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQog
Ci0gICAgQ29va2llc0ZvckRPTSh1aW50NjRfdCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJz
dFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoU3RyaW5nIHJlc3VsdCkKLSAgICBTZXRDb29r
aWVzRnJvbURPTSh1aW50NjRfdCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBX
ZWJDb3JlOjpVUkwgdXJsLCBTdHJpbmcgY29va2llU3RyaW5nKQotICAgIENvb2tpZXNFbmFibGVk
KHVpbnQ2NF90IHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIFdlYkNvcmU6OlVS
TCB1cmwpIC0+IChib29sIGVuYWJsZWQpCi0gICAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUodWludDY0X3Qgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6
VVJMIHVybCkgLT4gKFN0cmluZyByZXN1bHQpCi0gICAgR2V0UmF3Q29va2llcyh1aW50NjRfdCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAo
VmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykKLSAgICBEZWxldGVDb29raWUodWludDY0
X3Qgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgdXJsLCBTdHJpbmcgY29va2llTmFtZSkKKyAgICBD
b29raWVzRm9yRE9NKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBm
aXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoU3RyaW5nIHJlc3VsdCkKKyAgICBTZXRD
b29raWVzRnJvbURPTShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwg
Zmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCwgU3RyaW5nIGNvb2tpZVN0cmluZykKKyAgICBD
b29raWVzRW5hYmxlZChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwg
Zmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKGJvb2wgZW5hYmxlZCkKKyAgICBDb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKFN0cmluZyByZXN1
bHQpCisgICAgR2V0UmF3Q29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKFZlY3RvcjxXZWJDb3Jl
OjpDb29raWU+IGNvb2tpZXMpCisgICAgRGVsZXRlQ29va2llKFdlYkNvcmU6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCB1cmwsIFN0cmluZyBjb29raWVOYW1lKQogCiAgICAgUmVn
aXN0ZXJCbG9iVVJMKFdlYkNvcmU6OlVSTCB1cmwsIFdlYktpdDo6QmxvYlJlZ2lzdHJhdGlvbkRh
dGEgZGF0YSkKICAgICBSZWdpc3RlckJsb2JVUkxGcm9tVVJMKFdlYkNvcmU6OlVSTCB1cmwsIFdl
YkNvcmU6OlVSTCBzcmNVUkwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOGExMmFiNy4uNTVhYjBhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNDUsNiArNDUs
NyBAQAogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xv
Z2dpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTE2Myw3ICsxNjQsNyBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZQogCiAgICAgLy8gRklYTUU6IGluc3RlYWQgb2YgaGFuZGxpbmcgdGhpcyBoZXJl
LCBhIG1lc3NhZ2Ugc2hvdWxkIGJlIHNlbnQgbGF0ZXIgKHNjYWxlcyB0byBtdWx0aXBsZSBzZXNz
aW9ucykKICAgICBpZiAocGFyYW1ldGVycy5wcml2YXRlQnJvd3NpbmdFbmFibGVkKQotICAgICAg
ICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihT
ZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7CisgICAgICAgIFJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6
bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKIAogICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZFVz
ZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbikKICAgICAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpz
d2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKCk7CkBAIC0yMTQsMTIgKzIxNSwxMiBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcygpCiAjZW5k
aWYKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bih1aW50NjRfdCBzZXNzaW9uSUQpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjplbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oc2Vzc2lvbklEKTsKIH0K
IAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWlu
dDY0X3Qgc2Vzc2lvbklEKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBTZXNzaW9uVHJhY2tlcjo6
ZGVzdHJveVNlc3Npb24oc2Vzc2lvbklEKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGI1MGYwOGEuLjFiZTZmNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzMsNiAr
MzMsNyBAQAogI2luY2x1ZGUgIkRvd25sb2FkTWFuYWdlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlck1hcC5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKQEAgLTEwNCw4ICsxMDUsOCBAQCBw
cml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBpbml0aWFsaXplTmV0
d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAg
ICB2b2lkIGNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCk7Ci0gICAgdm9pZCBl
bnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCk7Ci0gICAgdm9p
ZCBkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpOworICAg
IHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOwor
ICAgIHZvaWQgZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklE
KTsKICAgICB2b2lkIGRvd25sb2FkUmVxdWVzdCh1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIGNhbmNlbERvd25sb2FkKHVpbnQ2
NF90IGRvd25sb2FkSUQpOwogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbCh1aW50MzJfdCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCmluZGV4IDI3YzU4YjQuLjc0OTk0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0z
NCw4ICszNCw4IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsK
ICAgICBVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZChWZWN0b3I8U3RyaW5nPiBsYW5ndWFn
ZXMpCiAjZW5kaWYKIAotICAgIEVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qg
c2Vzc2lvbklEKQotICAgIERlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNl
c3Npb25JRCkKKyAgICBFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCisgICAgRGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29y
ZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIAogICAgIERvd25sb2FkUmVxdWVzdCh1aW50NjRfdCBk
b3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCkKICAgICBDYW5jZWxE
b3dubG9hZCh1aW50NjRfdCBkb3dubG9hZElEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCAyOGJjYzliLi42OWM1
OWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VIYW5kbGVDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0
aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1
ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKQEAgLTE3Myw3ICsxNzQsNyBAQCBwcml2YXRlOgogICAgIFJl
c291cmNlTG9hZElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIHVpbnQ2NF90IG1fd2ViUGFn
ZUlEOwogICAgIHVpbnQ2NF90IG1fd2ViRnJhbWVJRDsKLSAgICB1aW50NjRfdCBtX3Nlc3Npb25J
RDsKKyAgICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKICAgICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0
eSBtX3ByaW9yaXR5OwogICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBtX2NvbnRl
bnRTbmlmZmluZ1BvbGljeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IGU5NThiYjMuLmY1Y2NjYzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdD
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQuaApAQCAtMjgsMjQgKzI4LDI1IEBACiAjZGVmaW5lIFJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0X2gKIAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya2luZ0NvbnRleHQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xh
c3MgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6TmV0d29y
a2luZ0NvbnRleHQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0PiBjcmVhdGUodWludDY0X3Qgc2Vzc2lvbklELCBib29sIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVt
b3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCiAgICAgewog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KHNlc3Np
b25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOwogICAgIH0K
ICAgICB2aXJ0dWFsIH5SZW1vdGVOZXR3b3JraW5nQ29udGV4dCgpOwogCiAgICAgLy8gRklYTUU6
IFJlbW92ZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIGFuZCB1c2UgU2Vzc2lvblRyYWNrZXIuCi0g
ICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNz
aW9uSUQpOworICAgIHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2Vi
Q29yZTo6U2Vzc2lvbklEKTsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0OyB9CiAKIHByaXZhdGU6Ci0gICAgUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQodWludDY0X3Qgc2Vzc2lvbklELCBib29sIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCisgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgICAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkK
ICAgICAgICAgLCBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qoc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKICNpZiBQTEFURk9STShDT0NP
QSkKQEAgLTY2LDcgKzY3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291
cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIGNv
bnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICB1aW50NjRfdCBtX3Nlc3Npb25JRDsKKyAgICBX
ZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgYm9vbCBtX3Nob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7CiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5n
Q29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3
b3JraW5nQ29udGV4dC5tbQppbmRleCBhMGE4ZjY1Li4yYTdjNTk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0K
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdD
b250ZXh0Lm1tCkBAIC03NywxNSArNzcsMTUgQEAgUmVzb3VyY2VFcnJvciBSZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWUKICAg
ICByZXR1cm4gV2ViS2l0OjpibG9ja2VkRXJyb3IocmVxdWVzdCk7CiB9CiAKLXZvaWQgUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qg
c2Vzc2lvbklEKQordm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIEFTU0VSVChTZXNzaW9u
VHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKTsKKyAgICBBU1NFUlQoc2Vzc2lvbklE
LmlzRXBoZW1lcmFsKCkpOwogCiAgICAgaWYgKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHNlc3Np
b25JRCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVCghU2Vzc2lvblRyYWNrZXI6Omdl
dElkZW50aWZpZXJCYXNlKCkuaXNOdWxsKCkpOwotICAgIFNlc3Npb25UcmFja2VyOjpzZXRTZXNz
aW9uKHNlc3Npb25JRCwgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpnZXRJZGVudGlmaWVyQmFzZSgpICsgJy4nICsgU3Ry
aW5nOjpudW1iZXIoc2Vzc2lvbklEKSkpOworICAgIFNlc3Npb25UcmFja2VyOjpzZXRTZXNzaW9u
KHNlc3Npb25JRCwgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKFNlc3Npb25UcmFja2VyOjpnZXRJZGVudGlmaWVyQmFzZSgpICsgJy4nICsgU3RyaW5n
OjpudW1iZXIoc2Vzc2lvbklELnNlc3Npb25JRCgpKSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0
U291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdv
cmtpbmdDb250ZXh0U291cC5jcHAKaW5kZXggZDdjZjg2ZS4uM2JlOWRiYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4
dFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcApAQCAtNDYsNyArNDYsNyBAQCBib29sIFJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0Ojppc1ZhbGlkKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bih1aW50NjRfdCBzZXNzaW9uSUQpCit2b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1
cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3
b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAppbmRleCA1NGNh
YmY0Li5kN2Q5MmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9O
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCkBAIC00MSw3ICs0
MSw3IEBAIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycygpCiAgICAgOiBpZGVudGlmaWVyKDApCiAgICAgLCB3ZWJQYWdlSUQoMCkKICAg
ICAsIHdlYkZyYW1lSUQoMCkKLSAgICAsIHNlc3Npb25JRCgwKQorICAgICwgc2Vzc2lvbklEKFNl
c3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQoKSkKICAgICAsIHByaW9yaXR5KFJlc291cmNlTG9hZFBy
aW9yaXR5VmVyeUxvdykKICAgICAsIGNvbnRlbnRTbmlmZmluZ1BvbGljeShTbmlmZkNvbnRlbnQp
CiAgICAgLCBhbGxvd1N0b3JlZENyZWRlbnRpYWxzKERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFs
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCmluZGV4IGNiZjQ1MzEuLjkxNjE1NDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0
aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TZXNzaW9uSUQuaD4KIAogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAKQEAg
LTUyLDcgKzUzLDcgQEAgcHVibGljOgogICAgIFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRp
ZmllcjsKICAgICB1aW50NjRfdCB3ZWJQYWdlSUQ7CiAgICAgdWludDY0X3Qgd2ViRnJhbWVJRDsK
LSAgICB1aW50NjRfdCBzZXNzaW9uSUQ7CisgICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25J
RDsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGVBcnJheSByZXF1ZXN0Qm9keVNhbmRib3hFeHRlbnNpb25zOyAvLyBDcmVh
dGVkIGF1dG9tYXRpY2FsbHkgZm9yIHRoZSBzZW5kZXIuCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlIHJlc291cmNlU2FuZGJveEV4dGVuc2lvbjsgLy8gQ3JlYXRlZCBhdXRvbWF0aWNhbGx5
IGZvciB0aGUgc2VuZGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Np
b25UcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAK
aW5kZXggNmU0ZDRmZi4uYmRjZmZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1Nlc3Npb25UcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRy
YWNrZXIuY3BwCkBAIC0zMywyMiArMzMsMTkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1jb25zdCB1aW50NjRfdCBTZXNzaW9uVHJhY2tlcjo6ZGVm
YXVsdFNlc3Npb25JRDsKLWNvbnN0IHVpbnQ2NF90IFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2
YXRlU2Vzc2lvbklEOwotCi1zdGF0aWMgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRy
PE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBzdGF0aWNTZXNzaW9uTWFwKCkKK3N0YXRpYyBIYXNo
TWFwPFNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBz
dGF0aWNTZXNzaW9uTWFwKCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0
cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+Pj4gbWFwOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxIYXNoTWFwPFNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bj4+PiBtYXA7CiAgICAgcmV0dXJuIG1hcC5nZXQoKTsKIH0KIAotc3RhdGljIEhhc2hNYXA8Y29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiwgdWludDY0X3Q+JiBzdG9yYWdlU2Vzc2lvblRvSUQo
KQorc3RhdGljIEhhc2hNYXA8Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiwgU2Vzc2lvbklE
PiYgc3RvcmFnZVNlc3Npb25Ub0lEKCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8Y29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uKiwgdWludDY0X3Q+PiBtYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhh
c2hNYXA8Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiwgU2Vzc2lvbklEPj4gbWFwOwogICAg
IHJldHVybiBtYXAuZ2V0KCk7CiB9CiAKQEAgLTYwLDcgKzU3LDcgQEAgc3RhdGljIFN0cmluZyYg
aWRlbnRpZmllckJhc2UoKQogICAgIHJldHVybiBiYXNlOwogfQogCi1jb25zdCBIYXNoTWFwPHVp
bnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIFNlc3Npb25U
cmFja2VyOjpzZXNzaW9uTWFwKCkKK2NvbnN0IEhhc2hNYXA8U2Vzc2lvbklELCBzdGQ6OnVuaXF1
ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIFNlc3Npb25UcmFja2VyOjpzZXNzaW9uTWFw
KCkKIHsKICAgICByZXR1cm4gc3RhdGljU2Vzc2lvbk1hcCgpOwogfQpAQCAtNzAsMjggKzY3LDI4
IEBAIGNvbnN0IFN0cmluZyYgU2Vzc2lvblRyYWNrZXI6OmdldElkZW50aWZpZXJCYXNlKCkKICAg
ICByZXR1cm4gaWRlbnRpZmllckJhc2UoKTsKIH0KIAotTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBT
ZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCitOZXR3b3JrU3RvcmFn
ZVNlc3Npb24qIFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7
Ci0gICAgaWYgKHNlc3Npb25JRCA9PSBkZWZhdWx0U2Vzc2lvbklEKQorICAgIGlmIChzZXNzaW9u
SUQgPT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCiAgICAgICAgIHJldHVybiAmTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKICAgICByZXR1cm4g
c3RhdGljU2Vzc2lvbk1hcCgpLmdldChzZXNzaW9uSUQpOwogfQogCi11aW50NjRfdCBTZXNzaW9u
VHJhY2tlcjo6c2Vzc2lvbklEKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbikK
K1Nlc3Npb25JRCBTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbklEKGNvbnN0IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYgc2Vzc2lvbikKIHsKICAgICBpZiAoJnNlc3Npb24gPT0gJk5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkpCi0gICAgICAgIHJldHVybiBkZWZhdWx0
U2Vzc2lvbklEOworICAgICAgICByZXR1cm4gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7
CiAgICAgcmV0dXJuIHN0b3JhZ2VTZXNzaW9uVG9JRCgpLmdldCgmc2Vzc2lvbik7CiB9CiAKLXZv
aWQgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklELCBzdGQ6OnVu
aXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBzZXNzaW9uKQordm9pZCBTZXNzaW9uVHJh
Y2tlcjo6c2V0U2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0
d29ya1N0b3JhZ2VTZXNzaW9uPiBzZXNzaW9uKQogewotICAgIEFTU0VSVChzZXNzaW9uSUQgIT0g
ZGVmYXVsdFNlc3Npb25JRCk7CisgICAgQVNTRVJUKHNlc3Npb25JRCAhPSBTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgc3RvcmFnZVNlc3Npb25Ub0lEKCkuc2V0KHNlc3Npb24u
Z2V0KCksIHNlc3Npb25JRCk7CiAgICAgc3RhdGljU2Vzc2lvbk1hcCgpLnNldChzZXNzaW9uSUQs
IHN0ZDo6bW92ZShzZXNzaW9uKSk7CiB9CiAKLXZvaWQgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lT
ZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKK3ZvaWQgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lT
ZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKICAgICBpZiAoc3RhdGljU2Vzc2lvbk1hcCgpLmNvbnRhaW5zKHNlc3Npb25JRCkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmgKaW5kZXggMmViODFjOS4uMGIwMzAy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmgKQEAgLTI3LDYgKzI3LDcg
QEAKICNkZWZpbmUgU2Vzc2lvblRyYWNrZXJfaAogCiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JREhhc2guaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTM2LDE2ICszNywxMyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIGNsYXNzIFNlc3Npb25UcmFja2VyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShTZXNzaW9uVHJhY2tlcik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IGRl
ZmF1bHRTZXNzaW9uSUQgPSAxOwotICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBsZWdhY3lQcml2
YXRlU2Vzc2lvbklEID0gMjsKLSAgICBzdGF0aWMgYm9vbCBpc0VwaGVtZXJhbElEKHVpbnQ2NF90
IHNlc3Npb25JRCkgeyByZXR1cm4gc2Vzc2lvbklEICE9IFNlc3Npb25UcmFja2VyOjpkZWZhdWx0
U2Vzc2lvbklEOyB9CiAgICAgLy8gRklYTUU6IHNlc3Npb25NYXAoKSdzIHJldHVybmVkIG1hcCBk
b2VzIG5vdCBpbmNsdWRlIGRlZmF1bHQgc2Vzc2lvbi4KLSAgICBzdGF0aWMgY29uc3QgSGFzaE1h
cDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lv
bj4+JiBzZXNzaW9uTWFwKCk7CisgICAgc3RhdGljIGNvbnN0IEhhc2hNYXA8V2ViQ29yZTo6U2Vz
c2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4m
IHNlc3Npb25NYXAoKTsKICAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBnZXRJZGVudGlmaWVyQmFz
ZSgpOwotICAgIHN0YXRpYyBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHNlc3Npb24o
dWludDY0X3Qgc2Vzc2lvbklEKTsKLSAgICBzdGF0aWMgdWludDY0X3Qgc2Vzc2lvbklEKGNvbnN0
IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYpOwotICAgIHN0YXRpYyB2b2lkIHNldFNl
c3Npb24odWludDY0X3Qgc2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TmV0d29y
a1N0b3JhZ2VTZXNzaW9uPik7Ci0gICAgc3RhdGljIHZvaWQgZGVzdHJveVNlc3Npb24odWludDY0
X3Qgc2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
KiBzZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgc3RhdGljIFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJik7Cisg
ICAgc3RhdGljIHZvaWQgc2V0U2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+KTsKKyAgICBzdGF0aWMgdm9pZCBk
ZXN0cm95U2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOwogICAgIHN0YXRpYyB2b2lkIHNldElk
ZW50aWZpZXJCYXNlKGNvbnN0IFN0cmluZyYpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAxNzNlM2QzLi4xM2ViMWQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApA
QCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nQ29uc3RyYWludHMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CkBA
IC0xODgwLDYgKzE4ODEsMjMgQEAgYm9vbCBBcmd1bWVudENvZGVyPElEQk9iamVjdFN0b3JlTWV0
YWRhdGE+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBJREIKIAogICAgIHJldHVy
biB0cnVlOwogfQotI2VuZGlmCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
Kwordm9pZCBBcmd1bWVudENvZGVyPFNlc3Npb25JRD46OmVuY29kZShBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IFNlc3Npb25JRCYgc2Vzc2lvbklEKQoreworICAgIGVuY29kZXIgPDwg
c2Vzc2lvbklELnNlc3Npb25JRCgpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8U2Vzc2lvbklE
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgU2Vzc2lvbklEJiBzZXNzaW9uSUQp
Cit7CisgICAgdWludDY0X3Qgc2Vzc2lvbjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNlc3Np
b24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzZXNzaW9uSUQgPSBTZXNzaW9uSUQo
c2Vzc2lvbik7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggYTRl
MjY0Zi4uZjU5ZmQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaApAQCAtNTUsNiArNTUsNyBAQCBjbGFzcyBSZWdpb247CiBjbGFzcyBSZXNvdXJj
ZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsK
K2NsYXNzIFNlc3Npb25JRDsKIGNsYXNzIFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50
czsKIGNsYXNzIFRleHRDaGVja2luZ1JlcXVlc3REYXRhOwogY2xhc3MgVHJhbnNmb3JtYXRpb25N
YXRyaXg7CkBAIC0zOTcsNyArMzk4LDEzIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVNZXRhZGF0YT4gewogICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJREJPYmplY3RTdG9yZU1ldGFk
YXRhJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6
OklEQk9iamVjdFN0b3JlTWV0YWRhdGEmKTsKIH07Ci0jZW5kaWYKKworI2VuZGlmIC8vIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQorCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OlNlc3Npb25JRD4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
QXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6U2Vzc2lvbklEJik7Cit9OwogCiB9IC8vIG5hbWVz
cGFjZSBJUEMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVT
dG9yYWdlU2hpbS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNo
aW0ubW0KaW5kZXggYzZkNzA1Zi4uZjA5ZmY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAi
Q29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNp
bmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CkBAIC01OCw3ICs1OCw3IEBAIHN0YXRpYyBD
RkRpY3Rpb25hcnlSZWYgd2ViS2l0Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRz
Rm9yVVJMKENGSFRUUENvCiB7CiAgICAgU3RyaW5nIGNvb2tpZXM7CiAgICAgVVJMIGZpcnN0UGFy
dHlGb3JDb29raWVzVVJMOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nv
bm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFNlc3Npb25U
cmFja2VyOjpkZWZhdWx0U2Vzc2lvbklELCBmaXJzdFBhcnR5Rm9yQ29va2llc1VSTCwgaW5SZXF1
ZXN0VVJMKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVz
Rm9yRE9NOjpSZXBseShjb29raWVzKSwgMCkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQo
KS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIGZpcnN0UGFydHlGb3JDb29raWVzVVJM
LCBpblJlcXVlc3RVUkwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OkNvb2tpZXNGb3JET006OlJlcGx5KGNvb2tpZXMpLCAwKSkKICAgICAgICAgcmV0dXJuIDA7CiAK
ICAgICBpZiAoY29va2llcy5pc051bGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUElTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNz
aW9uLmNwcAppbmRleCAwOGQ4NGFmLi4wNDgwMmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSVNlc3Npb24uY3BwCkBAIC0zNCw3ICszNCw3IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0
ZUlEKGJvb2wgaXNFcGhlbWVyYWwpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
IAotICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVTZXNzaW9uSUQgPSBXZWJLaXQ6OlNlc3Npb25U
cmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEOworICAgIHN0YXRpYyB1aW50NjRfdCB1bmlx
dWVTZXNzaW9uSUQgPSBXZWJDb3JlOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQo
KS5zZXNzaW9uSUQoKTsKICAgICBBU1NFUlQoaXNFcGhlbWVyYWwpOwogICAgIHJldHVybiArK3Vu
aXF1ZVNlc3Npb25JRDsKIH0KQEAgLTQzLDcgKzQzLDcgQEAgU2Vzc2lvbiYgU2Vzc2lvbjo6ZGVm
YXVsdFNlc3Npb24oKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBz
dGF0aWMgU2Vzc2lvbiogZGVmYXVsdFNlc3Npb24gPSBuZXcgU2Vzc2lvbihmYWxzZSwgV2ViS2l0
OjpTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNlc3Npb25JRCk7CisgICAgc3RhdGljIFNlc3Npb24q
IGRlZmF1bHRTZXNzaW9uID0gbmV3IFNlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0
U2Vzc2lvbklEKCkpOwogICAgIHJldHVybiAqZGVmYXVsdFNlc3Npb247CiB9CiAKQEAgLTUxLDE5
ICs1MSwxNyBAQCBTZXNzaW9uJiBTZXNzaW9uOjpsZWdhY3lQcml2YXRlU2Vzc2lvbigpCiB7CiAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHN0YXRpYyBTZXNzaW9uKiBsZWdh
Y3lQcml2YXRlU2Vzc2lvbiA9IG5ldyBTZXNzaW9uKHRydWUsIFdlYktpdDo6U2Vzc2lvblRyYWNr
ZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAgIHN0YXRpYyBTZXNzaW9uKiBsZWdhY3lQ
cml2YXRlU2Vzc2lvbiA9IG5ldyBTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRDo6bGVnYWN5UHJp
dmF0ZVNlc3Npb25JRCgpKTsKICAgICByZXR1cm4gKmxlZ2FjeVByaXZhdGVTZXNzaW9uOwogfQog
CiBTZXNzaW9uOjpTZXNzaW9uKGJvb2wgaXNFcGhlbWVyYWwpCi0gICAgOiBtX2lzRXBoZW1lcmFs
KGlzRXBoZW1lcmFsKQotICAgICwgbV9zZXNzaW9uSUQoZ2VuZXJhdGVJRChpc0VwaGVtZXJhbCkp
CisgICAgOiBtX3Nlc3Npb25JRChnZW5lcmF0ZUlEKGlzRXBoZW1lcmFsKSkKIHsKIH0KIAotU2Vz
c2lvbjo6U2Vzc2lvbihib29sIGlzRXBoZW1lcmFsLCB1aW50NjRfdCBzZXNzaW9uSUQpCi0gICAg
OiBtX2lzRXBoZW1lcmFsKGlzRXBoZW1lcmFsKQotICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklE
KQorU2Vzc2lvbjo6U2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDog
bV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogewogfQogCkBAIC03NSwxMCArNzMsMTAgQEAgUGFzc1Jl
ZlB0cjxTZXNzaW9uPiBTZXNzaW9uOjpjcmVhdGUoYm9vbCBpc0VwaGVtZXJhbCkKIAogYm9vbCBT
ZXNzaW9uOjppc0VwaGVtZXJhbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faXNFcGhlbWVyYWw7
CisgICAgcmV0dXJuIG1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCk7CiB9CiAKLXVpbnQ2NF90IFNl
c3Npb246OmdldElEKCkgY29uc3QKK1dlYkNvcmU6OlNlc3Npb25JRCBTZXNzaW9uOjpnZXRJRCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2Vzc2lvbklEOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUElTZXNzaW9uLmgKaW5kZXggYmQ2MDRiMi4uZmZjNWIyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJU2Vzc2lvbi5oCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIEFQSVNlc3Npb25f
aAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtMzksMTQgKzM5LDEzIEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgU2Vzc2lvbiYgZGVmYXVsdFNlc3Npb24oKTsKICAgICBzdGF0aWMgU2Vzc2lvbiYgbGVn
YWN5UHJpdmF0ZVNlc3Npb24oKTsKICAgICBib29sIGlzRXBoZW1lcmFsKCkgY29uc3Q7Ci0gICAg
dWludDY0X3QgZ2V0SUQoKSBjb25zdDsKKyAgICBXZWJDb3JlOjpTZXNzaW9uSUQgZ2V0SUQoKSBj
b25zdDsKICAgICB2aXJ0dWFsIH5TZXNzaW9uKCk7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
U2Vzc2lvbihib29sIGlzRXBoZW1lcmFsKTsKLSAgICBTZXNzaW9uKGJvb2wgaXNFcGhlbWVyYWws
IHVpbnQ2NF90IHNlc3Npb25JRCk7Ci0gICAgYm9vbCBtX2lzRXBoZW1lcmFsOwotICAgIHVpbnQ2
NF90IG1fc2Vzc2lvbklEOworICAgIGV4cGxpY2l0IFNlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklE
KTsKKyAgICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCAzNDUz
NjQ4Li5hNTA4ZTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBA
IC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk11dGFibGVE
aWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgotI2luY2x1ZGUgIlNl
c3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKICNpbmNsdWRlICJU
ZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIldLQ29udGV4dFByaXZhdGUuaCIKQEAgLTYzLDYgKzYy
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9M
b2dnaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgog
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CkBAIC00ODYsMTYgKzQ4NiwxNiBAQCB2b2lkIFdlYkNvbnRleHQ6OnNldEFueVBhZ2VHcm91cE1p
Z2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBwcml2YXRlQnJvdwogI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCiAgICAgaWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpICYmIG5ldHdv
cmtQcm9jZXNzKCkpIHsKICAgICAgICAgaWYgKHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAg
ICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCksIDApOworICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lv
bklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpLCAwKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRl
c3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEKSwgMCk7CisgICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lv
bklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpLCAwKTsKICAgICB9CiAjZW5kaWYgLy8gRU5B
QkxFRChORVRXT1JLX1BST0NFU1MpCiAKICAgICBpZiAocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkK
LSAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lv
bklEKSk7CisgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6
RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQoKSkpOwogICAgIGVsc2UKLSAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uVHJhY2tl
cjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCkpOworICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMo
TWVzc2FnZXM6OldlYlByb2Nlc3M6OkRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Np
b25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSk7CiB9CiAKIHZvaWQgKCpzX2ludmFsaWRN
ZXNzYWdlQ2FsbGJhY2spKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lKTsKQEAgLTYyNSw3ICs2MjUs
NyBAQCBXZWJQcm9jZXNzUHJveHkmIFdlYkNvbnRleHQ6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoKQog
I2VuZGlmCiAKICAgICBpZiAoV2ViUHJlZmVyZW5jZXM6OmFueVBhZ2VzQXJlVXNpbmdQcml2YXRl
QnJvd3NpbmcoKSkKLSAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6
RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCksIDApOworICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCgpKSwgMCk7CiAKICAgICBtX3Byb2Nlc3Nlcy5hcHBlbmQocHJvY2Vzcyk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCmluZGV4IDg2ZGQyZDguLjIwNTRkNGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaApAQCAtNDQsNiArNDQsNyBAQAog
I2luY2x1ZGUgIldlYkRvd25sb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFzaC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vz
c2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC0zMDYsNyArMzA3LDcgQEAgcHVibGlj
OgogICAgIHN0YXRpYyB2b2lkIHdpbGxTdGFydFVzaW5nUHJpdmF0ZUJyb3dzaW5nKCk7CiAgICAg
c3RhdGljIHZvaWQgd2lsbFN0b3BVc2luZ1ByaXZhdGVCcm93c2luZygpOwogCi0gICAgc3RhdGlj
IGJvb2wgaXNFcGhlbWVyYWxTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCk7CisgICAgc3RhdGlj
IGJvb2wgaXNFcGhlbWVyYWxTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CiAKICNpZiBVU0Uo
U09VUCkKICAgICB2b2lkIHNldElnbm9yZVRMU0Vycm9ycyhib29sKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBjOTI0Yzk3Li42YTUxMTk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zMzcsNyArMzM3LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0U2Vzc2lvbihBUEk6OlNlc3Npb24mKTsKIAogICAgIHVpbnQ2NF90IHBh
Z2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEOyB9Ci0gICAgdWludDY0X3Qgc2Vzc2lvbklE
KCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uLT5nZXRJRCgpOyB9CisgICAgV2ViQ29yZTo6U2Vz
c2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbi0+Z2V0SUQoKTsgfQog
CiAgICAgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJh
bWUuZ2V0KCk7IH0KICAgICBXZWJGcmFtZVByb3h5KiBmb2N1c2VkRnJhbWUoKSBjb25zdCB7IHJl
dHVybiBtX2ZvY3VzZWRGcmFtZS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCAx
ZWY5OGMzLi45MTgxYTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNjcsNiArNjcsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5UG9saWN5Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRp
bmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyR2VzdHVyZUluZGljYXRvci5oPgogCkBAIC0z
MDgsOSArMzA5LDkgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBib28KICAgICAvLyBGSVhNRSAoTmV0
d29ya1Byb2Nlc3MpOiBUaGlzIHRlc3Qtb25seSBmdW5jdGlvbiBkb2Vzbid0IHdvcmsgd2l0aCBO
ZXR3b3JrUHJvY2VzcywgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTUyNzQ+LgogI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBVU0UoQ0ZORVRXT1JLKSB8fCBVU0UoU09V
UCkKICAgICBpZiAoZW5hYmxlZCkKLSAgICAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCk7CisgICAgICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkp
OwogICAgIGVsc2UKLSAgICAgICAgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKFNlc3Np
b25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKKyAgICAgICAgU2Vzc2lvblRyYWNr
ZXI6OmRlc3Ryb3lTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsK
ICNlbmRpZgogICAgIGNvbnN0IEhhc2hTZXQ8UGFnZSo+JiBwYWdlcyA9IFBhZ2VHcm91cDo6cGFn
ZUdyb3VwKHBhZ2VHcm91cC0+aWRlbnRpZmllcigpKS0+cGFnZXMoKTsKICAgICBmb3IgKEhhc2hT
ZXQ8UGFnZSo+OjppdGVyYXRvciBpdGVyID0gcGFnZXMuYmVnaW4oKTsgaXRlciAhPSBwYWdlcy5l
bmQoKTsgKytpdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRleCBlYWJkNjU0Li5h
NWZjZjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtNDcsNiArNDcsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvUmVmZXJyZXJQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU3VicmVzb3VyY2VMb2FkZXIuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CkBAIC0xMTgsNyArMTE5LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXI6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIsIENh
Y2gKICAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gaWRlbnRpZmllcjsKICAgICBsb2Fk
UGFyYW1ldGVycy53ZWJQYWdlSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+cGFnZUlEKCkgOiAwOwog
ICAgIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFt
ZUlEKCkgOiAwOwotICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQ
YWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEOworICAg
IGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQo
KSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnJl
cXVlc3QgPSByZXNvdXJjZUxvYWRlci0+cmVxdWVzdCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnBy
aW9yaXR5ID0gcHJpb3JpdHk7CiAgICAgbG9hZFBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9s
aWN5ID0gY29udGVudFNuaWZmaW5nUG9saWN5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwCmluZGV4IDNlNzA3YzcuLjA0ZmIxNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
Q29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Np
b25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmFnZU5hbWVzcGFjZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgpAQCAt
MjYzLDcgKzI2NCw3IEBAIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpsb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0CiAgICAgbG9hZFBhcmFtZXRl
cnMuaWRlbnRpZmllciA9IHJlc291cmNlTG9hZElkZW50aWZpZXI7CiAgICAgbG9hZFBhcmFtZXRl
cnMud2ViUGFnZUlEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnBhZ2VJRCgpIDogMDsKICAgICBsb2Fk
UGFyYW1ldGVycy53ZWJGcmFtZUlEID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgpIDog
MDsKLSAgICBsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vz
c2lvbklEKCkgOiBTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNlc3Npb25JRDsKKyAgICBsb2FkUGFy
YW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0g
cmVxdWVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5wcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9y
aXR5SGlnaGVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBT
bmlmZkNvbnRlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmgKaW5kZXggODYyOWZhOC4uZGVmMjAzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkhUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklE
Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00MCw3ICs0MSw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICAvLyBGSVhNRTogcmVtb3ZlIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUgYW5kIHVz
ZSBTZXNzaW9uVHJhY2tlcgotICAgIHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CiAKICAgICBzdGF0aWMgdm9pZCBz
ZXRDb29raWVBY2NlcHRQb2xpY3lGb3JBbGxDb250ZXh0cyhIVFRQQ29va2llQWNjZXB0UG9saWN5
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KaW5k
ZXggM2M1MjUxNi4uMjZiZmZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lm1tCkBAIC00Miw5ICs0Miw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAKLXZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCit2
b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBBU1NFUlQoU2Vzc2lvblRyYWNrZXI6Omlz
RXBoZW1lcmFsSUQoc2Vzc2lvbklEKSk7CisgICAgQVNTRVJUKHNlc3Npb25JRC5pc0VwaGVtZXJh
bCgpKTsKIAogICAgIGlmIChTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbihzZXNzaW9uSUQpKQogICAg
ICAgICByZXR1cm47CkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCiAg
ICAgZWxzZQogICAgICAgICBiYXNlID0gU2Vzc2lvblRyYWNrZXI6OmdldElkZW50aWZpZXJCYXNl
KCk7CiAKLSAgICBTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbihzZXNzaW9uSUQsIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihiYXNlICsgJy4nICsg
U3RyaW5nOjpudW1iZXIoc2Vzc2lvbklEKSkpOworICAgIFNlc3Npb25UcmFja2VyOjpzZXRTZXNz
aW9uKHNlc3Npb25JRCwgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKGJhc2UgKyAnLicgKyBTdHJpbmc6Om51bWJlcihzZXNzaW9uSUQuc2Vzc2lvbklE
KCkpKSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2V0Q29va2llQWNj
ZXB0UG9saWN5Rm9yQWxsQ29udGV4dHMoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCkBA
IC0xMDEsMTAgKzEwMSw3IEBAIFJlc291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxCiBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKCkgY29u
c3QKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgaWYgKGZyYW1lKCkp
Ci0gICAgICAgIHJldHVybiAqU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24od2ViRnJhbWVMb2FkZXJD
bGllbnQoKS0+d2ViRnJhbWUoKS0+cGFnZSgpLT5zZXNzaW9uSUQoKSk7Ci0gICAgcmV0dXJuIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CisgICAgcmV0dXJu
ICpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbihmcmFtZSgpID8gZnJhbWUoKS0+cGFnZSgpLT5zZXNz
aW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKIH0KIAogV2ViRnJhbWVM
b2FkZXJDbGllbnQqIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OndlYkZyYW1lTG9hZGVyQ2xp
ZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmNwcAppbmRleCA0ZDEzZGMzLi5mNDAwNDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3Vw
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC0zNyw3ICszNyw3IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNl
c3Npb25JRCkKK3ZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAKQEAgLTU1LDcgKzU1LDcgQEAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChXZWJGcmFtZSogZnJhbWUpCiBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKCkgY29u
c3QKIHsKICAgICBpZiAoZnJhbWUoKSAmJiBmcmFtZSgpLT5zZXR0aW5ncygpLnByaXZhdGVCcm93
c2luZ0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuICpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbihT
ZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7CisgICAgICAgIHJldHVybiAq
U2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklE
KCkpOwogCiAgICAgcmV0dXJuIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VT
ZXNzaW9uKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaAppbmRleCAyNjMwNjFhMC4uOTM0MTBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0yOSw2ICsyOSw3IEBACiAjZGVmaW5lIFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHRfaAogCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZU5ldHdvcmtp
bmdDb250ZXh0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKQEAgLTQyLDcgKzQzLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpKTsKICAgICB9CiAKLSAg
ICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Np
b25JRCk7CisgICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJD
b3JlOjpTZXNzaW9uSUQpOwogCiAgICAgV2ViRnJhbWVMb2FkZXJDbGllbnQqIHdlYkZyYW1lTG9h
ZGVyQ2xpZW50KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCA1ZmUzMDM5Li5kZWE5ZDc3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMzMsNiArMTMzLDcgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3Jp
cHRDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0
dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYWRvd1Jvb3QuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NoYXJlZEJ1ZmZlci5oPgpAQCAtMjI2LDcgKzIyNyw2IEBAIFBhc3NSZWZQdHI8V2ViUGFn
ZT4gV2ViUGFnZTo6Y3JlYXRlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9u
UGFyYW1lCiAKIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgIDogbV9wYWdlSUQocGFnZUlEKQot
ICAgICwgbV9zZXNzaW9uSUQoMCkKICAgICAsIG1fdmlld1NpemUocGFyYW1ldGVycy52aWV3U2l6
ZSkKICAgICAsIG1faGFzU2VlblBsdWdpbihmYWxzZSkKICAgICAsIG1fdXNlRml4ZWRMYXlvdXQo
ZmFsc2UpCkBAIC0yMTA2LDIzICsyMTA2LDIzIEBAIHZvaWQgV2ViUGFnZTo6c2V0TGF5ZXJIb3N0
aW5nTW9kZSh1bnNpZ25lZCBsYXllckhvc3RpbmdNb2RlKQogICAgICAgICBwbHVnaW5WaWV3LT5z
ZXRMYXllckhvc3RpbmdNb2RlKG1fbGF5ZXJIb3N0aW5nTW9kZSk7CiB9CiAKLXVpbnQ2NF90IFdl
YlBhZ2U6OnNlc3Npb25JRCgpIGNvbnN0CitTZXNzaW9uSUQgV2ViUGFnZTo6c2Vzc2lvbklEKCkg
Y29uc3QKIHsKLSAgICBpZiAobV9zZXNzaW9uSUQpCi0gICAgICAgIHJldHVybiBtX3Nlc3Npb25J
RDsKKyAgICBpZiAobV9wYWdlLT5pc1Nlc3Npb25JRFNldCgpKQorICAgICAgICByZXR1cm4gbV9w
YWdlLT5zZXNzaW9uSUQoKTsKIAotICAgIHJldHVybiBtX3BhZ2UtPnNldHRpbmdzKCkucHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZCgpID8gU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9u
SUQgOiBTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNlc3Npb25JRDsKKyAgICByZXR1cm4gbV9wYWdl
LT5zZXR0aW5ncygpLnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSA/IFNlc3Npb25JRDo6bGVnYWN5
UHJpdmF0ZVNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiB9CiAK
IGJvb2wgV2ViUGFnZTo6aXNVc2luZ0VwaGVtZXJhbFNlc3Npb24oKSBjb25zdAogewotICAgIHJl
dHVybiBTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQoKSk7CisgICAgcmV0
dXJuIHNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c2V0U2Vz
c2lvbklEKHVpbnQ2NF90IHNlc3Npb25JRCkKK3ZvaWQgV2ViUGFnZTo6c2V0U2Vzc2lvbklEKFNl
c3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgbV9zZXNzaW9uSUQgPSBzZXNzaW9uSUQ7Ci0gICAg
aWYgKFNlc3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCkpCisgICAgbV9wYWdl
LT5zZXRTZXNzaW9uSUQoc2Vzc2lvbklEKTsKKyAgICBpZiAoc2Vzc2lvbklELmlzRXBoZW1lcmFs
KCkpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24oc2Vzc2lvbklEKTsKIH0KIApAQCAtMjQyOCw4ICsyNDI4LDggQEAgdm9pZCBXZWJQYWdl
Ojp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAg
ICBzZXR0aW5ncy5zZXRMb2NhbFN0b3JhZ2VFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6bG9jYWxTdG9yYWdlRW5hYmxlZEtleSgpKSk7CiAgICAgc2V0
dGluZ3Muc2V0WFNTQXVkaXRvckVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5Ojp4c3NBdWRpdG9yRW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0
RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVy
ZW5jZXNLZXk6OmZyYW1lRmxhdHRlbmluZ0VuYWJsZWRLZXkoKSkpOwotICAgIGlmIChtX3Nlc3Np
b25JRCkKLSAgICAgICAgc2V0dGluZ3Muc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChTZXNzaW9u
VHJhY2tlcjo6aXNFcGhlbWVyYWxJRChtX3Nlc3Npb25JRCkpOworICAgIGlmIChtX3BhZ2UtPmlz
U2Vzc2lvbklEU2V0KCkpCisgICAgICAgIHNldHRpbmdzLnNldFByaXZhdGVCcm93c2luZ0VuYWJs
ZWQobV9wYWdlLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpKTsKICAgICBlbHNlCiAgICAgICAg
IHNldHRpbmdzLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpwcml2YXRlQnJvd3NpbmdFbmFibGVkS2V5KCkpKTsKICAg
ICBzZXR0aW5ncy5zZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZEtleSgpKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA4MmQ5MjY0
Li5iMTE1ZTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKQEAgLTE4Niw5ICsxODYsOSBAQCBwdWJsaWM6CiAKICAgICBXZWJDb3JlOjpQYWdlKiBjb3Jl
UGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQogICAgIHVpbnQ2NF90IHBhZ2VJ
RCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEOyB9Ci0gICAgdWludDY0X3Qgc2Vzc2lvbklEKCkg
Y29uc3Q7CisgICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0OwogICAgIGJv
b2wgaXNVc2luZ0VwaGVtZXJhbFNlc3Npb24oKSBjb25zdDsKLSAgICB2b2lkIHNldFNlc3Npb25J
RCh1aW50NjRfdCk7CisgICAgdm9pZCBzZXRTZXNzaW9uSUQoV2ViQ29yZTo6U2Vzc2lvbklEKTsK
IAogICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld1NpemU7IH0KQEAg
LTkwOCw3ICs5MDgsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVwb3J0VXNlZEZlYXR1cmVzKCk7
CiAKICAgICB1aW50NjRfdCBtX3BhZ2VJRDsKLSAgICB1aW50NjRfdCBtX3Nlc3Npb25JRDsKIAog
ICAgIE93blB0cjxXZWJDb3JlOjpQYWdlPiBtX3BhZ2U7CiAgICAgUmVmUHRyPFdlYkZyYW1lPiBt
X21haW5GcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNDJmYjk0Ni4uNTdmYTRkOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
QEAgLTI1LDcgKzI1LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAg
ICAgU2V0Vmlld1N0YXRlKHVuc2lnbmVkIHZpZXdTdGF0ZSwgYm9vbCB3YW50c0RpZFVwZGF0ZVZp
ZXdTdGF0ZSkKICAgICBTZXRMYXllckhvc3RpbmdNb2RlKHVuc2lnbmVkIGxheWVySG9zdGluZ01v
ZGUpCiAKLSAgICBTZXRTZXNzaW9uSUQodWludDY0X3Qgc2Vzc2lvbklEKQorICAgIFNldFNlc3Np
b25JRChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogCiAgICAgU2V0RHJhd3NCYWNrZ3Jv
dW5kKGJvb2wgZHJhd3NCYWNrZ3JvdW5kKQogICAgIFNldERyYXdzVHJhbnNwYXJlbnRCYWNrZ3Jv
dW5kKGJvb2wgZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAzZDA3M2JhLi5hNjVjOGEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ2NSwxNCArNDY1LDE0IEBAIHZvaWQg
V2ViUHJvY2Vzczo6ZnVsbEtleWJvYXJkQWNjZXNzTW9kZUNoYW5nZWQoYm9vbCBmdWxsS2V5Ym9h
cmRBY2Nlc3NFbmFibGVkKQogICAgIG1fZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCA9IGZ1bGxL
ZXlib2FyZEFjY2Vzc0VuYWJsZWQ7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6ZW5zdXJlUHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCit2b2lkIFdlYlByb2Nlc3M6OmVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICNpZiBQ
TEFURk9STShDT0NPQSkgfHwgVVNFKENGTkVUV09SSykgfHwgVVNFKFNPVVApCiAgICAgV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihzZXNzaW9u
SUQpOwogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6ZGVzdHJveVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQordm9pZCBXZWJQcm9jZXNzOjpkZXN0cm95UHJp
dmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogI2lmIFBMQVRGT1JN
KENPQ09BKSB8fCBVU0UoQ0ZORVRXT1JLKSB8fCBVU0UoU09VUCkKICAgICBTZXNzaW9uVHJhY2tl
cjo6ZGVzdHJveVNlc3Npb24oc2Vzc2lvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgKaW5kZXggMmIxY2FlZC4uYWU1MmM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0
YXRlLmgiCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtUYWJsZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
TGlua0hhc2guaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvVGltZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CkBAIC0xNjMsOCArMTY0LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRDYWNo
ZU1vZGVsKHVpbnQzMl90KTsKIAotICAgIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bih1aW50NjRfdCBzZXNzaW9uSUQpOwotICAgIHZvaWQgZGVzdHJveVByaXZhdGVCcm93c2luZ1Nl
c3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKKyAgICB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIGRlc3Ryb3lQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CiAKICAgICB2b2lkIHBhZ2VEaWRFbnRl
cldpbmRvdyh1aW50NjRfdCBwYWdlSUQpOwogICAgIHZvaWQgcGFnZVdpbGxMZWF2ZVdpbmRvdyh1
aW50NjRfdCBwYWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCmluZGV4IDkyZTcwODAuLjZmYWIyZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTU1LDggKzU1LDgg
QEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKIAogICAg
IC8vIExlZ2FjeSBwcml2YXRlIGJyb3dzaW5nIHNlc3Npb24gaXMgcGVyIHByb2Nlc3MuIEluZGl2
aWR1YWwgcGFnZXMgb3IgcGFnZSBncm91cHMgbWF5IHVzZSB0aGUgcHJpdmF0ZSBzZXNzaW9uIG9y
IHRoZSBkZWZhdWx0IG9uZSBhcyBhcHByb3ByaWF0ZS4KLSAgICBFbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKLSAgICBEZXN0cm95UHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCisgICAgRW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIERlc3Ryb3lQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKICAgICAjIFBsdWct
aW5zLgogICAgIERpZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godWludDMyX3QgaGFzaCwg
ZG91YmxlIGV4cGlyYXRpb25UaW1lKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224952</attachid>
            <date>2014-02-22 00:13:01 -0800</date>
            <delta_ts>2014-02-22 09:54:19 -0800</delta_ts>
            <desc>build fix</desc>
            <filename>sessionidclass.08.diff</filename>
            <type>text/plain</type>
            <size>71295</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0Y2YwYjI2Li4xYjUzYzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTQtMDItMjEgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IENyZWF0ZSBTZXNzaW9uSUQgdmFsdWUtc3R5bGUgY2xhc3MgZm9yIHNlc3Npb24gSURzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MTQxIAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZp
bGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDogQWRk
IFNlc3Npb25JRCBtZW1iZXIuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6OnNlc3Npb25JRCk6IFJldHJpZXZlIHNlc3Npb25JRCBvciB1c2Ug
c2V0dGluZ3MgaWYgbm90IHNldC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OmlzU2Vzc2lvbklEU2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNl
dFNlc3Npb25JRCk6CisgICAgICAgICogcGFnZS9TZXNzaW9uSUQuaDogU2Vzc2lvbiBJRCBjbGFz
cyBjb25zaXN0aW5nIHNvbGVseSBvZiBpdHMgdWludDY0X3Qgc2Vzc2lvbiBJRC4KKyAgICAgICAg
KFdlYkNvcmU6OlNlc3Npb25JRDo6U2Vzc2lvbklEKToKKyAgICAgICAgKFdlYkNvcmU6OlNlc3Np
b25JRDo6aXNWYWxpZCk6IE5vdCBlbXB0eS4KKyAgICAgICAgKFdlYkNvcmU6OlNlc3Npb25JRDo6
aXNFcGhlbWVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbklEOjpzZXNzaW9uSUQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbklEOjpvcGVyYXRvcj09KTogVmFsdWUtYmFzZWQgZXF1
YWxpdHkuCisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ6Om9wZXJhdG9yIT0pOgorICAgICAg
ICAoV2ViQ29yZTo6U2Vzc2lvbklEOjplbXB0eVNlc3Npb25JRCk6IFplcm8gdmFsdWUgYWxzbyB1
c2VkIGZvciBIYXNoVHJhaXRzIGVtcHR5VmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQpOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbklEOjpsZWdh
Y3lQcml2YXRlU2Vzc2lvbklEKToKKyAgICAgICAgKiBwYWdlL1Nlc3Npb25JREhhc2guaDoKKyAg
ICAgICAgKFdURjo6U2Vzc2lvbklESGFzaDo6aGFzaCk6IEp1c3QgdGhlIGNhc3RlZCBzZXNzaW9u
IElEIChsb3cgb3JkZXIgYnl0ZXMpCisgICAgICAgIChXVEY6OlNlc3Npb25JREhhc2g6OmVxdWFs
KToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpTZXNzaW9uSUQ+OjplbXB0eVZh
bHVlKTogRXF1YWwgdG8gZW1wdHlTZXNzaW9uSUQuCisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8
V2ViQ29yZTo6U2Vzc2lvbklEPjo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKTogLTEgdmFsdWUuCisg
ICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViQ29yZTo6U2Vzc2lvbklEPjo6aXNEZWxldGVkVmFs
dWUpOgorCiAyMDE0LTAyLTIxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1ha2UgYSBnZW5lcmljIENETVByaXZhdGVNZWRpYVBsYXllciBhbmQgbW92ZSBpdHMg
Q0RNU2Vzc2lvbiBpbnRvIHBsYXRmb3JtLy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmlu
ZGV4IDE3YTYwY2EuLjY3NjVhZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
NDE4MSw2ICs0MTgxLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9w
YWdlL1NlY3VyaXR5T3JpZ2luSGFzaC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5
UG9saWN5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmlu
ZGV4IGY5MDdjNzQuLjVlODQwYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xMDAwLDYgKzEw
MDAsNyBAQCBfX1pON1dlYkNvcmU0UGFnZTExUGFnZUNsaWVudHNDMUV2CiBfX1pON1dlYkNvcmU0
UGFnZTExUGFnZUNsaWVudHNEMUV2CiBfX1pON1dlYkNvcmU0UGFnZTEyc2V0R3JvdXBOYW1lRVJL
TjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlNFBhZ2UxMnNldElzVmlzaWJsZUViCitfX1pON1dl
YkNvcmU0UGFnZTEyc2V0U2Vzc2lvbklERU5TXzlTZXNzaW9uSURFCiBfX1pON1dlYkNvcmU0UGFn
ZTEyc2V0Vmlld1N0YXRlRWoKIF9fWk43V2ViQ29yZTRQYWdlMTNyYW5nZU9mU3RyaW5nRVJLTjNX
VEY2U3RyaW5nRVBOU181UmFuZ2VFagogX19aTjdXZWJDb3JlNFBhZ2UxM3NldElzSW5XaW5kb3dF
YgpAQCAtMTczOSw2ICsxNzQwLDcgQEAgX19aTks3V2ViQ29yZTRQYWdlMTd2aWV3cG9ydEFyZ3Vt
ZW50c0V2CiBfX1pOSzdXZWJDb3JlNFBhZ2UzNGluTG93UXVhbGl0eUltYWdlSW50ZXJwb2xhdGlv
bk1vZGVFdgogX19aTks3V2ViQ29yZTRQYWdlOWdyb3VwTmFtZUV2CiBfX1pOSzdXZWJDb3JlNFBh
Z2U5cGFnZUNvdW50RXYKK19fWk5LN1dlYkNvcmU0UGFnZTlzZXNzaW9uSURFdgogX19aTks3V2Vi
Q29yZTVDb2xvcjEwc2VyaWFsaXplZEV2CiBfX1pOSzdXZWJDb3JlNUNvbG9yN2dldFJHQkFFUmRT
MV9TMV9TMV8KIF9fWk5LN1dlYkNvcmU1Q29sb3I3Z2V0UkdCQUVSZlMxX1MxX1MxXwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU0
MjRiZTAuLjNmZjQ0ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTIyMTUsNiArMjIxNSw3IEBACiAJCTc1NDE1RDVBMTI5QUIy
RDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0MTVENTQxMjlBQjJEMjAwM0FENjY5IC8q
IEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggKi87IH07CiAJCTc1NTNDRkU4MTA4RjQ3M0YwMEVB
MjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGlu
ZVJlY29yZEZhY3RvcnkuaCAqLzsgfTsKIAkJNzU1M0NGRTkxMDhGNDczRjAwRUEyODFFIC8qIFRp
bWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmNwcCAqLzsgfTsKKwkJNzU2QjJDRTExOEI3MTAxNjAwRkVDRkFBIC8qIFNlc3Npb25J
RC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU2QjJD
RTAxOEI3MTAxNjAwRkVDRkFBIC8qIFNlc3Npb25JRC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc1NzhGOTBDMTFEREYyNjkwMEQ5MzNDNSAvKiBT
cGVlY2hJbnB1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU3OEY5MDkxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmggKi87IH07CiAJCTc1
NzhGOTBEMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5MEExMURERjI2OTAwRDkz
M0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggKi87IH07CiAJCTc1NzhGOTIwMTFFNEUzMjgwMEQ5
MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkxRTExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNoSW5w
dXRMaXN0ZW5lci5oICovOyB9OwpAQCAtMjIyNSw2ICsyMjI2LDcgQEAKIAkJNzU3OTNFRDMwRDBD
RTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFRDAwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1l
c3NhZ2VFdmVudC5oICovOyB9OwogCQk3NTc5M0VENDBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVz
c2FnZUV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU3OTNFRDEwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5tbSAqLzsgfTsK
IAkJNzU3OTNFRDUwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudEludGVybmFsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VEMjBE
MENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50SW50ZXJuYWwuaCAqLzsgfTsKKwkJNzVE
Q0M3QjgxOEI4MUM4ODAwQTU3MTI4IC8qIFNlc3Npb25JREhhc2guaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RENDN0I3MThCODFDODgwMEE1NzEyOCAv
KiBTZXNzaW9uSURIYXNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNzYzM0E3MjYxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0TWFw
cGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzYz
M0E3MjQxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0TWFwcGluZy5oICovOyB9Owog
CQk3NjMzQTcyNzEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVs
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjMz
QTcyNTEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVsdC5jcHAg
Ki87IH07CiAJCTc2ODA4QjUwMTU5REFERkEwMDJCNTIzMyAvKiBKU0hUTUxEaWFsb2dFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjgwOEI0
RTE1OURBREZBMDAyQjUyMzMgLyogSlNIVE1MRGlhbG9nRWxlbWVudC5oICovOyB9OwpAQCAtOTE0
OCw2ICs5MTUwLDcgQEAKIAkJNzU0MTVENTQxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5w
dXRSZXN1bHRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3BlZWNo
SW5wdXRSZXN1bHRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NTNDRkU2
MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJl
Y29yZEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU2
QjJDRTAxOEI3MTAxNjAwRkVDRkFBIC8qIFNlc3Npb25JRC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTZXNzaW9uSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzU3OEY5MDkxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTc1NzhGOTBBMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hJbnB1dENsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc4RjkxRTExRTRFMzI4MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXRMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hJbnB1dExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MTYwLDYg
KzkxNjMsNyBAQAogCQk3NTc5M0VEMTBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTU1lc3NhZ2VF
dmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU3OTNFRDIwRDBDRTg1QjAw
N0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01NZXNzYWdlRXZlbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3NTg5NzhFQjEyNzA5MEQ2MDA3NkQ1QTkgLyogU3BlZWNoSW5wdXRSZXN1
bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoSW5wdXRSZXN1bHQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVEQ0M3QjcxOEI4MUM4ODAwQTU3MTI4
IC8qIFNlc3Npb25JREhhc2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Vz
c2lvbklESGFzaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NjMzQTcyNDEzRDhC
MzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRNYXBwaW5nLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExvY2FsZVRvU2NyaXB0TWFwcGluZy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3NjMzQTcyNTEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRN
YXBwaW5nRGVmYXVsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBM
b2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZhdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzY4MDhCNEUxNTlEQURGQTAwMkI1MjMzIC8qIEpTSFRNTERpYWxvZ0VsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRGlhbG9nRWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYxNzUsNiArMTYxNzksOCBAQAogCQkJCUJD
RDBFMEY5MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbkhhc2guaCAqLywKIAkJCQk5
NzREMkRBMjE0NkE1MzVEMDBENTFGOEIgLyogU2VjdXJpdHlQb2xpY3kuY3BwICovLAogCQkJCTk3
NEQyREEzMTQ2QTUzNUQwMEQ1MUY4QiAvKiBTZWN1cml0eVBvbGljeS5oICovLAorCQkJCTc1NkIy
Q0UwMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNzaW9uSUQuaCAqLywKKwkJCQk3NURDQzdCNzE4Qjgx
Qzg4MDBBNTcxMjggLyogU2Vzc2lvbklESGFzaC5oICovLAogCQkJCTE0QzlBNUU5MEIzRDEwNUYw
MDVBMDIzMiAvKiBTZXR0aW5ncy5jcHAgKi8sCiAJCQkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIy
IC8qIFNldHRpbmdzLmggKi8sCiAJCQkJQkM1OURFRjgxNjlERURDMzAwMTZBQzM0IC8qIFNldHRp
bmdzLmluICovLApAQCAtMjI3MzcsNiArMjI3NDMsNyBAQAogCQkJCTA3OTY5REMyMTdEMTQxNTEw
MDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDM1OTE5
MDEzOERCMjIwMDBFMUVCRUMgLyogQXVkaW9QYXJhbVRpbWVsaW5lLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRDMxNjAyMDEyQjAyNjc2MDBDMUEzNTkgLyogQXVkaW9Qcm9jZXNzaW5nRXZlbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCTc1RENDN0I4MThCODFDODgwMEE1NzEyOCAvKiBTZXNzaW9uSURI
YXNoLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA4NDEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9Qcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDg2MTJCMDI2RjcwMEMxQTM1
OSAvKiBBdWRpb1Jlc2FtcGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwODgxMkIwMjZG
NzAwQzFBMzU5IC8qIEF1ZGlvUmVzYW1wbGVyS2VybmVsLmggaW4gSGVhZGVycyAqLywKQEAgLTIz
OTQ5LDYgKzIzOTU2LDcgQEAKIAkJCQk3QTI0NTg3QzEwMjFFQUY0MDAwQTAwQUEgLyogSW5zcGVj
dG9yRE9NQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNjRFRDQ0MTgzMjA4QzcwMEVBOEZG
MSAvKiBJREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjNE
NEM0NzkxMkUwNzY2MzAwM0RBMTUwIC8qIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTc1NkIyQ0UxMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNzaW9uSUQuaCBp
biBIZWFkZXJzICovLAogCQkJCTdBNzRFQ0JCMTAxODM5QTYwMEJGOTM5RSAvKiBJbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MDU4NTM0MTdGREU2RDkwMDVG
MkJDQiAvKiBKU01lZGlhVHJhY2tDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc4
REEyMEUxNTIwRUI4QzAwNjE0MUMxIC8qIEluc3BlY3RvcldlYkZyb250ZW5kRGlzcGF0Y2hlcnMu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMjE3OTVhYi4uZWNlNDcwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xODEsNiArMTgxLDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xp
ZW50cyYgcGFnZUNsaWVudHMpCiAjZW5kaWYKICAgICAsIG1fbGFzdFNwYXRpYWxOYXZpZ2F0aW9u
Q2FuZGlkYXRlc0NvdW50KDApIC8vIE5PVEU6IE9ubHkgY2FsbGVkIGZyb20gSW50ZXJuYWxzIGZv
ciBTcGF0aWFsIE5hdmlnYXRpb24gdGVzdGluZy4KICAgICAsIG1fZnJhbWVzSGFuZGxpbmdCZWZv
cmVVbmxvYWRFdmVudCgwKQorICAgICwgbV9zZXNzaW9uSUQoU2Vzc2lvbklEOjplbXB0eVNlc3Np
b25JRCgpKQogewogICAgIEFTU0VSVChtX2VkaXRvckNsaWVudCk7CiAKQEAgLTE0OTMsNiArMTQ5
NCwyMyBAQCB2b2lkIFBhZ2U6OnNldFVzZXJDb250ZW50Q29udHJvbGxlcihVc2VyQ29udGVudENv
bnRyb2xsZXIqIHVzZXJDb250ZW50Q29udHJvbGxlcgogICAgICAgICBtX3VzZXJDb250ZW50Q29u
dHJvbGxlci0+YWRkUGFnZSgqdGhpcyk7CiB9CiAKK1Nlc3Npb25JRCBQYWdlOjpzZXNzaW9uSUQo
KSBjb25zdAoreworICAgIGlmIChtX3Nlc3Npb25JRC5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVy
biBtX3Nlc3Npb25JRDsKKworICAgIGlmIChzZXR0aW5ncygpLnByaXZhdGVCcm93c2luZ0VuYWJs
ZWQoKSkKKyAgICAgICAgcmV0dXJuIFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgp
OworCisgICAgcmV0dXJuIFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOworfQorCit2b2lk
IFBhZ2U6OnNldFNlc3Npb25JRChTZXNzaW9uSUQgc2Vzc2lvbklEKQoreworICAgIEFTU0VSVChz
ZXNzaW9uSUQuaXNWYWxpZCgpKTsKKyAgICBtX3Nlc3Npb25JRCA9IHNlc3Npb25JRDsKK30KKwog
UGFnZTo6UGFnZUNsaWVudHM6OlBhZ2VDbGllbnRzKCkKICAgICA6IGFsdGVybmF0aXZlVGV4dENs
aWVudChudWxscHRyKQogICAgICwgY2hyb21lQ2xpZW50KG51bGxwdHIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmlu
ZGV4IGE3MTVmZWYuLmI5Y2I3ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiUGFnaW5hdGlvbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5j
bHVkZSAiUmVnaW9uLmgiCisjaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVkZSAiU3VwcGxl
bWVudGFibGUuaCIKICNpbmNsdWRlICJWaWV3U3RhdGUuaCIKICNpbmNsdWRlICJWaWV3cG9ydEFy
Z3VtZW50cy5oIgpAQCAtMzk3LDYgKzM5OCw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VXNl
ckNvbnRlbnRDb250cm9sbGVyKFVzZXJDb250ZW50Q29udHJvbGxlciopOwogICAgIFVzZXJDb250
ZW50Q29udHJvbGxlciogdXNlckNvbnRlbnRDb250cm9sbGVyKCkgeyByZXR1cm4gbV91c2VyQ29u
dGVudENvbnRyb2xsZXIuZ2V0KCk7IH0KKyAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRTZXNzaW9uSUQoU2Vzc2lvbklEKTsKKyAgICBib29sIGlzU2Vzc2lvbklE
U2V0KCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQuaXNWYWxpZCgpOyB9CiAKIHByaXZhdGU6
CiAgICAgdm9pZCBpbml0R3JvdXAoKTsKQEAgLTUzNyw2ICs1NDEsOCBAQCBwcml2YXRlOgogICAg
IHVuc2lnbmVkIG1fZnJhbWVzSGFuZGxpbmdCZWZvcmVVbmxvYWRFdmVudDsKIAogICAgIFJlZlB0
cjxVc2VyQ29udGVudENvbnRyb2xsZXI+IG1fdXNlckNvbnRlbnRDb250cm9sbGVyOworCisgICAg
U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKIAogaW5saW5lIFBhZ2VHcm91cCYgUGFnZTo6Z3Jv
dXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSUQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklELmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNWVmZDc0YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vz
c2lvbklELmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2Vzc2lvbklE
X2gKKyNkZWZpbmUgU2Vzc2lvbklEX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBT
ZXNzaW9uSUQgeworcHVibGljOgorICAgIFNlc3Npb25JRCgpCisgICAgICAgIDogU2Vzc2lvbklE
KGVtcHR5U2Vzc2lvbklEKCkpIHsgfQorICAgIGV4cGxpY2l0IFNlc3Npb25JRCh1aW50NjRfdCBz
ZXNzaW9uSUQpCisgICAgICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKSB7IH0KKyAgICBib29s
IGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiAqdGhpcyAhPSBlbXB0eVNlc3Npb25JRCgpOyB9Cisg
ICAgYm9vbCBpc0VwaGVtZXJhbCgpIGNvbnN0IHsgcmV0dXJuICp0aGlzICE9IGRlZmF1bHRTZXNz
aW9uSUQoKTsgfQorICAgIHVpbnQ2NF90IHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vz
c2lvbklEOyB9CisgICAgYm9vbCBvcGVyYXRvcj09KFNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0
IHsgcmV0dXJuIG1fc2Vzc2lvbklEID09IHNlc3Npb25JRC5tX3Nlc3Npb25JRDsgfQorICAgIGJv
b2wgb3BlcmF0b3IhPShTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdCB7IHJldHVybiBtX3Nlc3Np
b25JRCAhPSBzZXNzaW9uSUQubV9zZXNzaW9uSUQ7IH0KKworICAgIHN0YXRpYyBTZXNzaW9uSUQg
ZW1wdHlTZXNzaW9uSUQoKSB7IHJldHVybiBTZXNzaW9uSUQoMCk7IH0KKyAgICBzdGF0aWMgU2Vz
c2lvbklEIGRlZmF1bHRTZXNzaW9uSUQoKSB7IHJldHVybiBTZXNzaW9uSUQoMSk7IH0KKyAgICBz
dGF0aWMgU2Vzc2lvbklEIGxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSB7IHJldHVybiBTZXNzaW9u
SUQoMik7IH0KK3ByaXZhdGU6CisgICAgdWludDY0X3QgbV9zZXNzaW9uSUQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTZXNzaW9uSURfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSURIYXNoLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1Nlc3Npb25JREhhc2guaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTVk
YTk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSURIYXNo
LmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2Vzc2lvbklESGFzaF9o
CisjZGVmaW5lIFNlc3Npb25JREhhc2hfaAorCisjaW5jbHVkZSAiU2Vzc2lvbklELmgiCisjaW5j
bHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgor
CituYW1lc3BhY2UgV1RGIHsKKyAgICAKKy8vIFRoZSBlbXB0eSB2YWx1ZSBpcyBlbXB0eVNlc3Np
b25JRCgpLCB0aGUgZGVsZXRlZCB2YWx1ZSBpcyAoLTEpCitzdHJ1Y3QgU2Vzc2lvbklESGFzaCB7
CisgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJiBwKSB7
IHJldHVybiAodW5zaWduZWQpcC5zZXNzaW9uSUQoKTsgfQorICAgIHN0YXRpYyBib29sIGVxdWFs
KGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYgYSwgY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJiBi
KSB7IHJldHVybiBhID09IGI7IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJl
VG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Cit9OwordGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0
czxXZWJDb3JlOjpTZXNzaW9uSUQ+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6U2Vzc2lv
bklEPiB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOwor
ICAgIHN0YXRpYyBXZWJDb3JlOjpTZXNzaW9uSUQgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIFdlYkNv
cmU6OlNlc3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQoKTsgfQorICAgIAorICAgIHN0YXRpYyB2b2lk
IGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3JlOjpTZXNzaW9uSUQmIHNsb3QpIHsgc2xvdCA9
IFdlYkNvcmU6OlNlc3Npb25JRCgtMik7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1
ZShjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3QgPT0gV2ViQ29y
ZTo6U2Vzc2lvbklEKC0yKTsgfQorfTsKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdl
YkNvcmU6OlNlc3Npb25JRD4geworICAgIHR5cGVkZWYgU2Vzc2lvbklESGFzaCBIYXNoOworfTsK
KworfQorCisjZW5kaWYgLy8gU2Vzc2lvbklESGFzaF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTdmZjdmNC4u
YTZjNDUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDE0LTAyLTIxICBNYXJ0aW4g
SG9jayAgPG1ob2NrQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgU2Vzc2lvbklEIHZhbHVl
LXN0eWxlIGNsYXNzIGZvciBzZXNzaW9uIElEcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTE0MQorCisgICAgICAgIFRoZSBiZWxvdyBjaGFuZ2Vz
IGRlYWwgc29sZWx5IHdpdGggbWVjaGFuaWNhbCBjaGFuZ2VzIHRvIHVzZSB0aGUgU2Vzc2lvbklE
IHZhbHVlIGNsYXNzIGluc3RlYWQgb2YgdWludDY0X3QgZXhjZXB0IHdoZXJlIG5vdGVkLgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpzdGFydERvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00pOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00pOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0VuYWJsZWQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2llcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWxldGVDb29raWUpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Np
b24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyk6CisgICAgICAg
ICogU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAg
ICAgKiBTaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpzdGF0aWNT
ZXNzaW9uTWFwKToKKyAgICAgICAgKFdlYktpdDo6c3RvcmFnZVNlc3Npb25Ub0lEKToKKyAgICAg
ICAgKFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OnNlc3Npb25NYXApOgorICAgICAgICAoV2ViS2l0
OjpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFj
a2VyOjpzZXNzaW9uSUQpOgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6c2V0U2Vz
c2lvbik6CisgICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbik6
CisgICAgICAgICogU2hhcmVkL1Nlc3Npb25UcmFja2VyLmg6IE1vdmUgY29kZSB0byBTZXNzaW9u
SUQgY2xhc3MuCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6IEFk
ZCBlbmNvZGUgYW5kIGRlY29kZSBmb3IgU2Vzc2lvbklELgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPFNlc3Npb25JRD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8
U2Vzc2lvbklEPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmg6CisgICAgICAgICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbToKKyAgICAg
ICAgKFdlYktpdDo6d2ViS2l0Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9y
VVJMKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHA6CisgICAgICAgIChBUEk6
OmdlbmVyYXRlSUQpOgorICAgICAgICAoQVBJOjpTZXNzaW9uOjpkZWZhdWx0U2Vzc2lvbik6Cisg
ICAgICAgIChBUEk6OlNlc3Npb246OmxlZ2FjeVByaXZhdGVTZXNzaW9uKToKKyAgICAgICAgKEFQ
STo6U2Vzc2lvbjo6U2Vzc2lvbik6CisgICAgICAgIChBUEk6OlNlc3Npb246OmlzRXBoZW1lcmFs
KToKKyAgICAgICAgKEFQSTo6U2Vzc2lvbjo6Z2V0SUQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UElTZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb250ZXh0OjpzZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJv
d3NpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6Y3JlYXRlTmV3V2Vi
UHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
c2Vzc2lvbklEKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnNldFByaXZhdGVC
cm93c2luZ0VuYWJsZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXI6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpl
bnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6
OnN0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3Nv
dXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDogTW92ZSBzZXNzaW9uSUQgdG8gUGFnZSB0byBhbGxvdyBXZWJDb3Jl
IHRvIGFjY2VzcyBpdC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNlc3Npb25JRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmlzVXNpbmdFcGhlbWVyYWxTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
c2V0U2Vzc2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5j
ZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRl
c3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisK
IDIwMTQtMDItMjEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTYwNzM4ODI+IFBsZWFzZSBhZGQgX0FiYW5kb25Db2FsaXRpb24ga2V5IHRv
IHBsdWdpbiBYUEMgc2VydmljZSBJbmZvLnBsaXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggMWZlZTQ5OC4uZGNjNjJlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
QEAgLTE0OCw5ICsxNDksOSBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpz
ZXRTZXJpYWxMb2FkaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgbV9zZXJpYWxMb2FkaW5n
RW5hYmxlZCA9IGVuYWJsZWQ7CiB9CiAKLXN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0
b3JhZ2VTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKK3N0YXRpYyBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIHN0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgaWYgKFNl
c3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCkpIHsKKyAgICBpZiAoc2Vzc2lv
bklELmlzRXBoZW1lcmFsKCkpIHsKICAgICAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBwcml2
YXRlU2Vzc2lvbiA9IFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHNlc3Npb25JRCk7CiAgICAgICAg
IGlmIChwcml2YXRlU2Vzc2lvbikKICAgICAgICAgICAgIHJldHVybiAqcHJpdmF0ZVNlc3Npb247
CkBAIC0xNjEsNyArMTYyLDcgQEAgc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFn
ZVNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQogICAgIHJldHVybiBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpzdGFydERvd25sb2FkKHVpbnQ2NF90IHNlc3Npb25JRCwgdWludDY0
X3QgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3RhcnREb3dubG9hZChTZXNzaW9uSUQgc2Vzc2lv
bklELCB1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qp
CiB7CiAgICAgLy8gRklYTUU6IERvIHNvbWV0aGluZyB3aXRoIHRoZSBzZXNzaW9uIElELgogICAg
IE5ldHdvcmtQcm9jZXNzOjpzaGFyZWQoKS5kb3dubG9hZE1hbmFnZXIoKS5zdGFydERvd25sb2Fk
KGRvd25sb2FkSUQsIHJlcXVlc3QpOwpAQCAtMTgzLDMyICsxODQsMzIgQEAgdm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2Fk
KHVpbnQ2NF90IG0KICAgICBsb2FkZXItPmRpZENvbnZlcnRIYW5kbGVUb0Rvd25sb2FkKCk7CiB9
CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00odWlu
dDY0X3Qgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBT
dHJpbmcmIHJlc3VsdCkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tp
ZXNGb3JET00oU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBVUkwmIHVybCwgU3RyaW5nJiByZXN1bHQpCiB7CiAgICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29v
a2llc0ZvckRPTShzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5LCB1cmwpOwog
fQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURP
TSh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00oU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJp
bmcpCiB7CiAgICAgV2ViQ29yZTo6c2V0Q29va2llc0Zyb21ET00oc3RvcmFnZVNlc3Npb24oc2Vz
c2lvbklEKSwgZmlyc3RQYXJ0eSwgdXJsLCBjb29raWVTdHJpbmcpOwogfQogCi12b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRW5hYmxlZCh1aW50NjRfdCBzZXNzaW9u
SUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIGJvb2wmIHJlc3VsdCkK
K3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNFbmFibGVkKFNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIGJv
b2wmIHJlc3VsdCkKIHsKICAgICByZXN1bHQgPSBXZWJDb3JlOjpjb29raWVzRW5hYmxlZChzdG9y
YWdlU2Vzc2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5LCB1cmwpOwogfQogCi12b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSh1
aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmws
IFN0cmluZyYgcmVzdWx0KQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgU3RyaW5nJiByZXN1bHQpCiB7CiAgICAgcmVz
dWx0ID0gV2ViQ29yZTo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc3RvcmFnZVNlc3Np
b24oc2Vzc2lvbklEKSwgZmlyc3RQYXJ0eSwgdXJsKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2llcyh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiByZXN1bHQp
Cit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKFNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIFZl
Y3RvcjxDb29raWU+JiByZXN1bHQpCiB7CiAgICAgV2ViQ29yZTo6Z2V0UmF3Q29va2llcyhzdG9y
YWdlU2Vzc2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5LCB1cmwsIHJlc3VsdCk7CiB9CiAKLXZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRlbGV0ZUNvb2tpZSh1aW50NjRfdCBz
ZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpCit2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWxldGVDb29raWUoU2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkKIHsKICAg
ICBXZWJDb3JlOjpkZWxldGVDb29raWUoc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSwgdXJsLCBj
b29raWVOYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDM5ODFmYTUuLmZh
OTk3OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNzYsMTUgKzc2LDE1IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBjcm9zc09yaWdpblJlZGlyZWN0UmVjZWl2ZWQoUmVzb3VyY2VMb2Fk
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6VVJMJiByZWRpcmVjdFVSTCk7CiAgICAgdm9pZCBz
ZXJ2ZVBlbmRpbmdSZXF1ZXN0cyh1aW50MzJfdCByZXNvdXJjZUxvYWRQcmlvcml0eSk7CiAgICAg
dm9pZCBzZXRTZXJpYWxMb2FkaW5nRW5hYmxlZChib29sKTsKLSAgICB2b2lkIHN0YXJ0RG93bmxv
YWQodWludDY0X3Qgc2Vzc2lvbklELCB1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICB2b2lkIHN0YXJ0RG93bmxvYWQoV2ViQ29yZTo6U2Vz
c2lvbklELCB1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmKTsKICAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZCh1aW50NjRf
dCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0X3QgZG93bmxvYWRJRCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpOwogCi0gICAgdm9pZCBjb29raWVzRm9yRE9NKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3Qg
V2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBTdHJpbmcmIHJl
c3VsdCk7Ci0gICAgdm9pZCBzZXRDb29raWVzRnJvbURPTSh1aW50NjRfdCBzZXNzaW9uSUQsIGNv
bnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3Qg
U3RyaW5nJik7Ci0gICAgdm9pZCBjb29raWVzRW5hYmxlZCh1aW50NjRfdCBzZXNzaW9uSUQsIGNv
bnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgYm9vbCYg
cmVzdWx0KTsKLSAgICB2b2lkIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHVpbnQ2NF90
IHNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3Jl
OjpVUkwmLCBTdHJpbmcmIHJlc3VsdCk7Ci0gICAgdm9pZCBnZXRSYXdDb29raWVzKHVpbnQ2NF90
IHNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3Jl
OjpVUkwmLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpOwotICAgIHZvaWQgZGVsZXRlQ29va2ll
KHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJiBj
b29raWVOYW1lKTsKKyAgICB2b2lkIGNvb2tpZXNGb3JET00oV2ViQ29yZTo6U2Vzc2lvbklELCBj
b25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFN0cmlu
ZyYgcmVzdWx0KTsKKyAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKFdlYkNvcmU6OlNlc3Npb25J
RCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBj
b25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGNvb2tpZXNFbmFibGVkKFdlYkNvcmU6OlNlc3Npb25J
RCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBi
b29sJiByZXN1bHQpOworICAgIHZvaWQgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoV2Vi
Q29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdl
YkNvcmU6OlVSTCYsIFN0cmluZyYgcmVzdWx0KTsKKyAgICB2b2lkIGdldFJhd0Nvb2tpZXMoV2Vi
Q29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdl
YkNvcmU6OlVSTCYsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+Jik7CisgICAgdm9pZCBkZWxldGVD
b29raWUoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJp
bmcmIGNvb2tpZU5hbWUpOwogCiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgV2ViQ29y
ZTo6VVJMJiwgY29uc3QgQmxvYlJlZ2lzdHJhdGlvbkRhdGEmKTsKICAgICB2b2lkIHJlZ2lzdGVy
QmxvYlVSTEZyb21VUkwoY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBz
cmNVUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRl
eCBhNDU5N2ZjLi5hZjFlODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgpAQCAtMzIsMTUgKzMyLDE1IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICAKICAgICBTZXRTZXJpYWxMb2Fk
aW5nRW5hYmxlZChib29sIGVuYWJsZWQpIC0+ICgpCiAKLSAgICBTdGFydERvd25sb2FkKHVpbnQ2
NF90IHNlc3Npb25JRCwgdWludDY0X3QgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QpCisgICAgU3RhcnREb3dubG9hZChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCB1aW50NjRfdCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCkKICAgICBDb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQodWludDY0X3QgbWFpblJl
c291cmNlTG9hZElkZW50aWZpZXIsIHVpbnQ2NF90IGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQog
Ci0gICAgQ29va2llc0ZvckRPTSh1aW50NjRfdCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJz
dFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoU3RyaW5nIHJlc3VsdCkKLSAgICBTZXRDb29r
aWVzRnJvbURPTSh1aW50NjRfdCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBX
ZWJDb3JlOjpVUkwgdXJsLCBTdHJpbmcgY29va2llU3RyaW5nKQotICAgIENvb2tpZXNFbmFibGVk
KHVpbnQ2NF90IHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIFdlYkNvcmU6OlVS
TCB1cmwpIC0+IChib29sIGVuYWJsZWQpCi0gICAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUodWludDY0X3Qgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6
VVJMIHVybCkgLT4gKFN0cmluZyByZXN1bHQpCi0gICAgR2V0UmF3Q29va2llcyh1aW50NjRfdCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAo
VmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykKLSAgICBEZWxldGVDb29raWUodWludDY0
X3Qgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgdXJsLCBTdHJpbmcgY29va2llTmFtZSkKKyAgICBD
b29raWVzRm9yRE9NKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBm
aXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoU3RyaW5nIHJlc3VsdCkKKyAgICBTZXRD
b29raWVzRnJvbURPTShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwg
Zmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCwgU3RyaW5nIGNvb2tpZVN0cmluZykKKyAgICBD
b29raWVzRW5hYmxlZChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwg
Zmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKGJvb2wgZW5hYmxlZCkKKyAgICBDb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKFN0cmluZyByZXN1
bHQpCisgICAgR2V0UmF3Q29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKFZlY3RvcjxXZWJDb3Jl
OjpDb29raWU+IGNvb2tpZXMpCisgICAgRGVsZXRlQ29va2llKFdlYkNvcmU6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCB1cmwsIFN0cmluZyBjb29raWVOYW1lKQogCiAgICAgUmVn
aXN0ZXJCbG9iVVJMKFdlYkNvcmU6OlVSTCB1cmwsIFdlYktpdDo6QmxvYlJlZ2lzdHJhdGlvbkRh
dGEgZGF0YSkKICAgICBSZWdpc3RlckJsb2JVUkxGcm9tVVJMKFdlYkNvcmU6OlVSTCB1cmwsIFdl
YkNvcmU6OlVSTCBzcmNVUkwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOGExMmFiNy4uNTVhYjBhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNDUsNiArNDUs
NyBAQAogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xv
Z2dpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTE2Myw3ICsxNjQsNyBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZQogCiAgICAgLy8gRklYTUU6IGluc3RlYWQgb2YgaGFuZGxpbmcgdGhpcyBoZXJl
LCBhIG1lc3NhZ2Ugc2hvdWxkIGJlIHNlbnQgbGF0ZXIgKHNjYWxlcyB0byBtdWx0aXBsZSBzZXNz
aW9ucykKICAgICBpZiAocGFyYW1ldGVycy5wcml2YXRlQnJvd3NpbmdFbmFibGVkKQotICAgICAg
ICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihT
ZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7CisgICAgICAgIFJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6
bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKIAogICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZFVz
ZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbikKICAgICAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpz
d2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKCk7CkBAIC0yMTQsMTIgKzIxNSwxMiBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcygpCiAjZW5k
aWYKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bih1aW50NjRfdCBzZXNzaW9uSUQpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjplbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oc2Vzc2lvbklEKTsKIH0K
IAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWlu
dDY0X3Qgc2Vzc2lvbklEKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBTZXNzaW9uVHJhY2tlcjo6
ZGVzdHJveVNlc3Npb24oc2Vzc2lvbklEKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGI1MGYwOGEuLjFiZTZmNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzMsNiAr
MzMsNyBAQAogI2luY2x1ZGUgIkRvd25sb2FkTWFuYWdlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlck1hcC5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKQEAgLTEwNCw4ICsxMDUsOCBAQCBw
cml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBpbml0aWFsaXplTmV0
d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAg
ICB2b2lkIGNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCk7Ci0gICAgdm9pZCBl
bnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCk7Ci0gICAgdm9p
ZCBkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpOworICAg
IHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOwor
ICAgIHZvaWQgZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklE
KTsKICAgICB2b2lkIGRvd25sb2FkUmVxdWVzdCh1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIGNhbmNlbERvd25sb2FkKHVpbnQ2
NF90IGRvd25sb2FkSUQpOwogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbCh1aW50MzJfdCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCmluZGV4IDI3YzU4YjQuLjc0OTk0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0z
NCw4ICszNCw4IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsK
ICAgICBVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZChWZWN0b3I8U3RyaW5nPiBsYW5ndWFn
ZXMpCiAjZW5kaWYKIAotICAgIEVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qg
c2Vzc2lvbklEKQotICAgIERlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNl
c3Npb25JRCkKKyAgICBFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCisgICAgRGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29y
ZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIAogICAgIERvd25sb2FkUmVxdWVzdCh1aW50NjRfdCBk
b3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCkKICAgICBDYW5jZWxE
b3dubG9hZCh1aW50NjRfdCBkb3dubG9hZElEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCAyOGJjYzliLi42OWM1
OWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VIYW5kbGVDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0
aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1
ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKQEAgLTE3Myw3ICsxNzQsNyBAQCBwcml2YXRlOgogICAgIFJl
c291cmNlTG9hZElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIHVpbnQ2NF90IG1fd2ViUGFn
ZUlEOwogICAgIHVpbnQ2NF90IG1fd2ViRnJhbWVJRDsKLSAgICB1aW50NjRfdCBtX3Nlc3Npb25J
RDsKKyAgICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKICAgICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0
eSBtX3ByaW9yaXR5OwogICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBtX2NvbnRl
bnRTbmlmZmluZ1BvbGljeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IGU5NThiYjMuLmY1Y2NjYzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdD
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQuaApAQCAtMjgsMjQgKzI4LDI1IEBACiAjZGVmaW5lIFJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0X2gKIAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya2luZ0NvbnRleHQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xh
c3MgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6TmV0d29y
a2luZ0NvbnRleHQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0PiBjcmVhdGUodWludDY0X3Qgc2Vzc2lvbklELCBib29sIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVt
b3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCiAgICAgewog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KHNlc3Np
b25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOwogICAgIH0K
ICAgICB2aXJ0dWFsIH5SZW1vdGVOZXR3b3JraW5nQ29udGV4dCgpOwogCiAgICAgLy8gRklYTUU6
IFJlbW92ZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIGFuZCB1c2UgU2Vzc2lvblRyYWNrZXIuCi0g
ICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNz
aW9uSUQpOworICAgIHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2Vi
Q29yZTo6U2Vzc2lvbklEKTsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0OyB9CiAKIHByaXZhdGU6Ci0gICAgUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQodWludDY0X3Qgc2Vzc2lvbklELCBib29sIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCisgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgICAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkK
ICAgICAgICAgLCBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qoc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKICNpZiBQTEFURk9STShDT0NP
QSkKQEAgLTY2LDcgKzY3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291
cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIGNv
bnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICB1aW50NjRfdCBtX3Nlc3Npb25JRDsKKyAgICBX
ZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgYm9vbCBtX3Nob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7CiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5n
Q29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3
b3JraW5nQ29udGV4dC5tbQppbmRleCBhMGE4ZjY1Li4yYTdjNTk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0K
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdD
b250ZXh0Lm1tCkBAIC03NywxNSArNzcsMTUgQEAgUmVzb3VyY2VFcnJvciBSZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWUKICAg
ICByZXR1cm4gV2ViS2l0OjpibG9ja2VkRXJyb3IocmVxdWVzdCk7CiB9CiAKLXZvaWQgUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qg
c2Vzc2lvbklEKQordm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIEFTU0VSVChTZXNzaW9u
VHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKTsKKyAgICBBU1NFUlQoc2Vzc2lvbklE
LmlzRXBoZW1lcmFsKCkpOwogCiAgICAgaWYgKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHNlc3Np
b25JRCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVCghU2Vzc2lvblRyYWNrZXI6Omdl
dElkZW50aWZpZXJCYXNlKCkuaXNOdWxsKCkpOwotICAgIFNlc3Npb25UcmFja2VyOjpzZXRTZXNz
aW9uKHNlc3Npb25JRCwgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpnZXRJZGVudGlmaWVyQmFzZSgpICsgJy4nICsgU3Ry
aW5nOjpudW1iZXIoc2Vzc2lvbklEKSkpOworICAgIFNlc3Npb25UcmFja2VyOjpzZXRTZXNzaW9u
KHNlc3Npb25JRCwgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKFNlc3Npb25UcmFja2VyOjpnZXRJZGVudGlmaWVyQmFzZSgpICsgJy4nICsgU3RyaW5n
OjpudW1iZXIoc2Vzc2lvbklELnNlc3Npb25JRCgpKSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0
U291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdv
cmtpbmdDb250ZXh0U291cC5jcHAKaW5kZXggZDdjZjg2ZS4uM2JlOWRiYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4
dFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcApAQCAtNDYsNyArNDYsNyBAQCBib29sIFJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0Ojppc1ZhbGlkKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bih1aW50NjRfdCBzZXNzaW9uSUQpCit2b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1
cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3
b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAppbmRleCA1NGNh
YmY0Li5kN2Q5MmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9O
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCkBAIC00MSw3ICs0
MSw3IEBAIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycygpCiAgICAgOiBpZGVudGlmaWVyKDApCiAgICAgLCB3ZWJQYWdlSUQoMCkKICAg
ICAsIHdlYkZyYW1lSUQoMCkKLSAgICAsIHNlc3Npb25JRCgwKQorICAgICwgc2Vzc2lvbklEKFNl
c3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQoKSkKICAgICAsIHByaW9yaXR5KFJlc291cmNlTG9hZFBy
aW9yaXR5VmVyeUxvdykKICAgICAsIGNvbnRlbnRTbmlmZmluZ1BvbGljeShTbmlmZkNvbnRlbnQp
CiAgICAgLCBhbGxvd1N0b3JlZENyZWRlbnRpYWxzKERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFs
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCmluZGV4IGNiZjQ1MzEuLjkxNjE1NDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0
aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TZXNzaW9uSUQuaD4KIAogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAKQEAg
LTUyLDcgKzUzLDcgQEAgcHVibGljOgogICAgIFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRp
ZmllcjsKICAgICB1aW50NjRfdCB3ZWJQYWdlSUQ7CiAgICAgdWludDY0X3Qgd2ViRnJhbWVJRDsK
LSAgICB1aW50NjRfdCBzZXNzaW9uSUQ7CisgICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25J
RDsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGVBcnJheSByZXF1ZXN0Qm9keVNhbmRib3hFeHRlbnNpb25zOyAvLyBDcmVh
dGVkIGF1dG9tYXRpY2FsbHkgZm9yIHRoZSBzZW5kZXIuCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlIHJlc291cmNlU2FuZGJveEV4dGVuc2lvbjsgLy8gQ3JlYXRlZCBhdXRvbWF0aWNhbGx5
IGZvciB0aGUgc2VuZGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Np
b25UcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAK
aW5kZXggNmU0ZDRmZi4uYmRjZmZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1Nlc3Npb25UcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRy
YWNrZXIuY3BwCkBAIC0zMywyMiArMzMsMTkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1jb25zdCB1aW50NjRfdCBTZXNzaW9uVHJhY2tlcjo6ZGVm
YXVsdFNlc3Npb25JRDsKLWNvbnN0IHVpbnQ2NF90IFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2
YXRlU2Vzc2lvbklEOwotCi1zdGF0aWMgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRy
PE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBzdGF0aWNTZXNzaW9uTWFwKCkKK3N0YXRpYyBIYXNo
TWFwPFNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBz
dGF0aWNTZXNzaW9uTWFwKCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0
cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+Pj4gbWFwOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxIYXNoTWFwPFNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bj4+PiBtYXA7CiAgICAgcmV0dXJuIG1hcC5nZXQoKTsKIH0KIAotc3RhdGljIEhhc2hNYXA8Y29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiwgdWludDY0X3Q+JiBzdG9yYWdlU2Vzc2lvblRvSUQo
KQorc3RhdGljIEhhc2hNYXA8Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiwgU2Vzc2lvbklE
PiYgc3RvcmFnZVNlc3Npb25Ub0lEKCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8Y29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uKiwgdWludDY0X3Q+PiBtYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhh
c2hNYXA8Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiwgU2Vzc2lvbklEPj4gbWFwOwogICAg
IHJldHVybiBtYXAuZ2V0KCk7CiB9CiAKQEAgLTYwLDcgKzU3LDcgQEAgc3RhdGljIFN0cmluZyYg
aWRlbnRpZmllckJhc2UoKQogICAgIHJldHVybiBiYXNlOwogfQogCi1jb25zdCBIYXNoTWFwPHVp
bnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIFNlc3Npb25U
cmFja2VyOjpzZXNzaW9uTWFwKCkKK2NvbnN0IEhhc2hNYXA8U2Vzc2lvbklELCBzdGQ6OnVuaXF1
ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIFNlc3Npb25UcmFja2VyOjpzZXNzaW9uTWFw
KCkKIHsKICAgICByZXR1cm4gc3RhdGljU2Vzc2lvbk1hcCgpOwogfQpAQCAtNzAsMjggKzY3LDI4
IEBAIGNvbnN0IFN0cmluZyYgU2Vzc2lvblRyYWNrZXI6OmdldElkZW50aWZpZXJCYXNlKCkKICAg
ICByZXR1cm4gaWRlbnRpZmllckJhc2UoKTsKIH0KIAotTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBT
ZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCitOZXR3b3JrU3RvcmFn
ZVNlc3Npb24qIFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7
Ci0gICAgaWYgKHNlc3Npb25JRCA9PSBkZWZhdWx0U2Vzc2lvbklEKQorICAgIGlmIChzZXNzaW9u
SUQgPT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCiAgICAgICAgIHJldHVybiAmTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKICAgICByZXR1cm4g
c3RhdGljU2Vzc2lvbk1hcCgpLmdldChzZXNzaW9uSUQpOwogfQogCi11aW50NjRfdCBTZXNzaW9u
VHJhY2tlcjo6c2Vzc2lvbklEKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbikK
K1Nlc3Npb25JRCBTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbklEKGNvbnN0IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYgc2Vzc2lvbikKIHsKICAgICBpZiAoJnNlc3Npb24gPT0gJk5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkpCi0gICAgICAgIHJldHVybiBkZWZhdWx0
U2Vzc2lvbklEOworICAgICAgICByZXR1cm4gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7
CiAgICAgcmV0dXJuIHN0b3JhZ2VTZXNzaW9uVG9JRCgpLmdldCgmc2Vzc2lvbik7CiB9CiAKLXZv
aWQgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklELCBzdGQ6OnVu
aXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBzZXNzaW9uKQordm9pZCBTZXNzaW9uVHJh
Y2tlcjo6c2V0U2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0
d29ya1N0b3JhZ2VTZXNzaW9uPiBzZXNzaW9uKQogewotICAgIEFTU0VSVChzZXNzaW9uSUQgIT0g
ZGVmYXVsdFNlc3Npb25JRCk7CisgICAgQVNTRVJUKHNlc3Npb25JRCAhPSBTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgc3RvcmFnZVNlc3Npb25Ub0lEKCkuc2V0KHNlc3Npb24u
Z2V0KCksIHNlc3Npb25JRCk7CiAgICAgc3RhdGljU2Vzc2lvbk1hcCgpLnNldChzZXNzaW9uSUQs
IHN0ZDo6bW92ZShzZXNzaW9uKSk7CiB9CiAKLXZvaWQgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lT
ZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKK3ZvaWQgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lT
ZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKICAgICBpZiAoc3RhdGljU2Vzc2lvbk1hcCgpLmNvbnRhaW5zKHNlc3Npb25JRCkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmgKaW5kZXggMmViODFjOS4uMGIwMzAy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmgKQEAgLTI3LDYgKzI3LDcg
QEAKICNkZWZpbmUgU2Vzc2lvblRyYWNrZXJfaAogCiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JREhhc2guaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTM2LDE2ICszNywxMyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIGNsYXNzIFNlc3Npb25UcmFja2VyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShTZXNzaW9uVHJhY2tlcik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IGRl
ZmF1bHRTZXNzaW9uSUQgPSAxOwotICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBsZWdhY3lQcml2
YXRlU2Vzc2lvbklEID0gMjsKLSAgICBzdGF0aWMgYm9vbCBpc0VwaGVtZXJhbElEKHVpbnQ2NF90
IHNlc3Npb25JRCkgeyByZXR1cm4gc2Vzc2lvbklEICE9IFNlc3Npb25UcmFja2VyOjpkZWZhdWx0
U2Vzc2lvbklEOyB9CiAgICAgLy8gRklYTUU6IHNlc3Npb25NYXAoKSdzIHJldHVybmVkIG1hcCBk
b2VzIG5vdCBpbmNsdWRlIGRlZmF1bHQgc2Vzc2lvbi4KLSAgICBzdGF0aWMgY29uc3QgSGFzaE1h
cDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lv
bj4+JiBzZXNzaW9uTWFwKCk7CisgICAgc3RhdGljIGNvbnN0IEhhc2hNYXA8V2ViQ29yZTo6U2Vz
c2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4m
IHNlc3Npb25NYXAoKTsKICAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBnZXRJZGVudGlmaWVyQmFz
ZSgpOwotICAgIHN0YXRpYyBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHNlc3Npb24o
dWludDY0X3Qgc2Vzc2lvbklEKTsKLSAgICBzdGF0aWMgdWludDY0X3Qgc2Vzc2lvbklEKGNvbnN0
IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYpOwotICAgIHN0YXRpYyB2b2lkIHNldFNl
c3Npb24odWludDY0X3Qgc2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TmV0d29y
a1N0b3JhZ2VTZXNzaW9uPik7Ci0gICAgc3RhdGljIHZvaWQgZGVzdHJveVNlc3Npb24odWludDY0
X3Qgc2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
KiBzZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgc3RhdGljIFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJik7Cisg
ICAgc3RhdGljIHZvaWQgc2V0U2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+KTsKKyAgICBzdGF0aWMgdm9pZCBk
ZXN0cm95U2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOwogICAgIHN0YXRpYyB2b2lkIHNldElk
ZW50aWZpZXJCYXNlKGNvbnN0IFN0cmluZyYpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAxNzNlM2QzLi4xM2ViMWQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApA
QCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nQ29uc3RyYWludHMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CkBA
IC0xODgwLDYgKzE4ODEsMjMgQEAgYm9vbCBBcmd1bWVudENvZGVyPElEQk9iamVjdFN0b3JlTWV0
YWRhdGE+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBJREIKIAogICAgIHJldHVy
biB0cnVlOwogfQotI2VuZGlmCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
Kwordm9pZCBBcmd1bWVudENvZGVyPFNlc3Npb25JRD46OmVuY29kZShBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IFNlc3Npb25JRCYgc2Vzc2lvbklEKQoreworICAgIGVuY29kZXIgPDwg
c2Vzc2lvbklELnNlc3Npb25JRCgpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8U2Vzc2lvbklE
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgU2Vzc2lvbklEJiBzZXNzaW9uSUQp
Cit7CisgICAgdWludDY0X3Qgc2Vzc2lvbjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNlc3Np
b24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzZXNzaW9uSUQgPSBTZXNzaW9uSUQo
c2Vzc2lvbik7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggYTRl
MjY0Zi4uZjU5ZmQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaApAQCAtNTUsNiArNTUsNyBAQCBjbGFzcyBSZWdpb247CiBjbGFzcyBSZXNvdXJj
ZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsK
K2NsYXNzIFNlc3Npb25JRDsKIGNsYXNzIFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50
czsKIGNsYXNzIFRleHRDaGVja2luZ1JlcXVlc3REYXRhOwogY2xhc3MgVHJhbnNmb3JtYXRpb25N
YXRyaXg7CkBAIC0zOTcsNyArMzk4LDEzIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVNZXRhZGF0YT4gewogICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJREJPYmplY3RTdG9yZU1ldGFk
YXRhJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6
OklEQk9iamVjdFN0b3JlTWV0YWRhdGEmKTsKIH07Ci0jZW5kaWYKKworI2VuZGlmIC8vIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQorCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OlNlc3Npb25JRD4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
QXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6U2Vzc2lvbklEJik7Cit9OwogCiB9IC8vIG5hbWVz
cGFjZSBJUEMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVT
dG9yYWdlU2hpbS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNo
aW0ubW0KaW5kZXggYzZkNzA1Zi4uZjA5ZmY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAi
Q29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNp
bmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CkBAIC01OCw3ICs1OCw3IEBAIHN0YXRpYyBD
RkRpY3Rpb25hcnlSZWYgd2ViS2l0Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRz
Rm9yVVJMKENGSFRUUENvCiB7CiAgICAgU3RyaW5nIGNvb2tpZXM7CiAgICAgVVJMIGZpcnN0UGFy
dHlGb3JDb29raWVzVVJMOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nv
bm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFNlc3Npb25U
cmFja2VyOjpkZWZhdWx0U2Vzc2lvbklELCBmaXJzdFBhcnR5Rm9yQ29va2llc1VSTCwgaW5SZXF1
ZXN0VVJMKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVz
Rm9yRE9NOjpSZXBseShjb29raWVzKSwgMCkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQo
KS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIGZpcnN0UGFydHlGb3JDb29raWVzVVJM
LCBpblJlcXVlc3RVUkwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OkNvb2tpZXNGb3JET006OlJlcGx5KGNvb2tpZXMpLCAwKSkKICAgICAgICAgcmV0dXJuIDA7CiAK
ICAgICBpZiAoY29va2llcy5pc051bGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUElTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNz
aW9uLmNwcAppbmRleCAwOGQ4NGFmLi4wNDgwMmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSVNlc3Npb24uY3BwCkBAIC0zNCw3ICszNCw3IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0
ZUlEKGJvb2wgaXNFcGhlbWVyYWwpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
IAotICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVTZXNzaW9uSUQgPSBXZWJLaXQ6OlNlc3Npb25U
cmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEOworICAgIHN0YXRpYyB1aW50NjRfdCB1bmlx
dWVTZXNzaW9uSUQgPSBXZWJDb3JlOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQo
KS5zZXNzaW9uSUQoKTsKICAgICBBU1NFUlQoaXNFcGhlbWVyYWwpOwogICAgIHJldHVybiArK3Vu
aXF1ZVNlc3Npb25JRDsKIH0KQEAgLTQzLDcgKzQzLDcgQEAgU2Vzc2lvbiYgU2Vzc2lvbjo6ZGVm
YXVsdFNlc3Npb24oKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBz
dGF0aWMgU2Vzc2lvbiogZGVmYXVsdFNlc3Npb24gPSBuZXcgU2Vzc2lvbihmYWxzZSwgV2ViS2l0
OjpTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNlc3Npb25JRCk7CisgICAgc3RhdGljIFNlc3Npb24q
IGRlZmF1bHRTZXNzaW9uID0gbmV3IFNlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0
U2Vzc2lvbklEKCkpOwogICAgIHJldHVybiAqZGVmYXVsdFNlc3Npb247CiB9CiAKQEAgLTUxLDE5
ICs1MSwxNyBAQCBTZXNzaW9uJiBTZXNzaW9uOjpsZWdhY3lQcml2YXRlU2Vzc2lvbigpCiB7CiAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHN0YXRpYyBTZXNzaW9uKiBsZWdh
Y3lQcml2YXRlU2Vzc2lvbiA9IG5ldyBTZXNzaW9uKHRydWUsIFdlYktpdDo6U2Vzc2lvblRyYWNr
ZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAgIHN0YXRpYyBTZXNzaW9uKiBsZWdhY3lQ
cml2YXRlU2Vzc2lvbiA9IG5ldyBTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRDo6bGVnYWN5UHJp
dmF0ZVNlc3Npb25JRCgpKTsKICAgICByZXR1cm4gKmxlZ2FjeVByaXZhdGVTZXNzaW9uOwogfQog
CiBTZXNzaW9uOjpTZXNzaW9uKGJvb2wgaXNFcGhlbWVyYWwpCi0gICAgOiBtX2lzRXBoZW1lcmFs
KGlzRXBoZW1lcmFsKQotICAgICwgbV9zZXNzaW9uSUQoZ2VuZXJhdGVJRChpc0VwaGVtZXJhbCkp
CisgICAgOiBtX3Nlc3Npb25JRChnZW5lcmF0ZUlEKGlzRXBoZW1lcmFsKSkKIHsKIH0KIAotU2Vz
c2lvbjo6U2Vzc2lvbihib29sIGlzRXBoZW1lcmFsLCB1aW50NjRfdCBzZXNzaW9uSUQpCi0gICAg
OiBtX2lzRXBoZW1lcmFsKGlzRXBoZW1lcmFsKQotICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklE
KQorU2Vzc2lvbjo6U2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDog
bV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogewogfQogCkBAIC03NSwxMCArNzMsMTAgQEAgUGFzc1Jl
ZlB0cjxTZXNzaW9uPiBTZXNzaW9uOjpjcmVhdGUoYm9vbCBpc0VwaGVtZXJhbCkKIAogYm9vbCBT
ZXNzaW9uOjppc0VwaGVtZXJhbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faXNFcGhlbWVyYWw7
CisgICAgcmV0dXJuIG1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCk7CiB9CiAKLXVpbnQ2NF90IFNl
c3Npb246OmdldElEKCkgY29uc3QKK1dlYkNvcmU6OlNlc3Npb25JRCBTZXNzaW9uOjpnZXRJRCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2Vzc2lvbklEOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUElTZXNzaW9uLmgKaW5kZXggYmQ2MDRiMi4uZmZjNWIyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJU2Vzc2lvbi5oCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIEFQSVNlc3Npb25f
aAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtMzksMTQgKzM5LDEzIEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgU2Vzc2lvbiYgZGVmYXVsdFNlc3Npb24oKTsKICAgICBzdGF0aWMgU2Vzc2lvbiYgbGVn
YWN5UHJpdmF0ZVNlc3Npb24oKTsKICAgICBib29sIGlzRXBoZW1lcmFsKCkgY29uc3Q7Ci0gICAg
dWludDY0X3QgZ2V0SUQoKSBjb25zdDsKKyAgICBXZWJDb3JlOjpTZXNzaW9uSUQgZ2V0SUQoKSBj
b25zdDsKICAgICB2aXJ0dWFsIH5TZXNzaW9uKCk7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
U2Vzc2lvbihib29sIGlzRXBoZW1lcmFsKTsKLSAgICBTZXNzaW9uKGJvb2wgaXNFcGhlbWVyYWws
IHVpbnQ2NF90IHNlc3Npb25JRCk7Ci0gICAgYm9vbCBtX2lzRXBoZW1lcmFsOwotICAgIHVpbnQ2
NF90IG1fc2Vzc2lvbklEOworICAgIGV4cGxpY2l0IFNlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklE
KTsKKyAgICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCAzNDUz
NjQ4Li5hNTA4ZTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBA
IC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk11dGFibGVE
aWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgotI2luY2x1ZGUgIlNl
c3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKICNpbmNsdWRlICJU
ZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIldLQ29udGV4dFByaXZhdGUuaCIKQEAgLTYzLDYgKzYy
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9M
b2dnaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgog
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CkBAIC00ODYsMTYgKzQ4NiwxNiBAQCB2b2lkIFdlYkNvbnRleHQ6OnNldEFueVBhZ2VHcm91cE1p
Z2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBwcml2YXRlQnJvdwogI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCiAgICAgaWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpICYmIG5ldHdv
cmtQcm9jZXNzKCkpIHsKICAgICAgICAgaWYgKHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAg
ICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCksIDApOworICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lv
bklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpLCAwKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRl
c3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEKSwgMCk7CisgICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lv
bklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpLCAwKTsKICAgICB9CiAjZW5kaWYgLy8gRU5B
QkxFRChORVRXT1JLX1BST0NFU1MpCiAKICAgICBpZiAocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkK
LSAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lv
bklEKSk7CisgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6
RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQoKSkpOwogICAgIGVsc2UKLSAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uVHJhY2tl
cjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCkpOworICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMo
TWVzc2FnZXM6OldlYlByb2Nlc3M6OkRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Np
b25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSk7CiB9CiAKIHZvaWQgKCpzX2ludmFsaWRN
ZXNzYWdlQ2FsbGJhY2spKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lKTsKQEAgLTYyNSw3ICs2MjUs
NyBAQCBXZWJQcm9jZXNzUHJveHkmIFdlYkNvbnRleHQ6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoKQog
I2VuZGlmCiAKICAgICBpZiAoV2ViUHJlZmVyZW5jZXM6OmFueVBhZ2VzQXJlVXNpbmdQcml2YXRl
QnJvd3NpbmcoKSkKLSAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6
RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCksIDApOworICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCgpKSwgMCk7CiAKICAgICBtX3Byb2Nlc3Nlcy5hcHBlbmQocHJvY2Vzcyk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCmluZGV4IDg2ZGQyZDguLjIwNTRkNGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaApAQCAtNDQsNiArNDQsNyBAQAog
I2luY2x1ZGUgIldlYkRvd25sb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFzaC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vz
c2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC0zMDYsNyArMzA3LDcgQEAgcHVibGlj
OgogICAgIHN0YXRpYyB2b2lkIHdpbGxTdGFydFVzaW5nUHJpdmF0ZUJyb3dzaW5nKCk7CiAgICAg
c3RhdGljIHZvaWQgd2lsbFN0b3BVc2luZ1ByaXZhdGVCcm93c2luZygpOwogCi0gICAgc3RhdGlj
IGJvb2wgaXNFcGhlbWVyYWxTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCk7CisgICAgc3RhdGlj
IGJvb2wgaXNFcGhlbWVyYWxTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CiAKICNpZiBVU0Uo
U09VUCkKICAgICB2b2lkIHNldElnbm9yZVRMU0Vycm9ycyhib29sKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBjOTI0Yzk3Li42YTUxMTk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zMzcsNyArMzM3LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0U2Vzc2lvbihBUEk6OlNlc3Npb24mKTsKIAogICAgIHVpbnQ2NF90IHBh
Z2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEOyB9Ci0gICAgdWludDY0X3Qgc2Vzc2lvbklE
KCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uLT5nZXRJRCgpOyB9CisgICAgV2ViQ29yZTo6U2Vz
c2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbi0+Z2V0SUQoKTsgfQog
CiAgICAgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJh
bWUuZ2V0KCk7IH0KICAgICBXZWJGcmFtZVByb3h5KiBmb2N1c2VkRnJhbWUoKSBjb25zdCB7IHJl
dHVybiBtX2ZvY3VzZWRGcmFtZS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCAx
ZWY5OGMzLi45MTgxYTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNjcsNiArNjcsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5UG9saWN5Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRp
bmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyR2VzdHVyZUluZGljYXRvci5oPgogCkBAIC0z
MDgsOSArMzA5LDkgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBib28KICAgICAvLyBGSVhNRSAoTmV0
d29ya1Byb2Nlc3MpOiBUaGlzIHRlc3Qtb25seSBmdW5jdGlvbiBkb2Vzbid0IHdvcmsgd2l0aCBO
ZXR3b3JrUHJvY2VzcywgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTUyNzQ+LgogI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBVU0UoQ0ZORVRXT1JLKSB8fCBVU0UoU09V
UCkKICAgICBpZiAoZW5hYmxlZCkKLSAgICAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCk7CisgICAgICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkp
OwogICAgIGVsc2UKLSAgICAgICAgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKFNlc3Np
b25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKKyAgICAgICAgU2Vzc2lvblRyYWNr
ZXI6OmRlc3Ryb3lTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsK
ICNlbmRpZgogICAgIGNvbnN0IEhhc2hTZXQ8UGFnZSo+JiBwYWdlcyA9IFBhZ2VHcm91cDo6cGFn
ZUdyb3VwKHBhZ2VHcm91cC0+aWRlbnRpZmllcigpKS0+cGFnZXMoKTsKICAgICBmb3IgKEhhc2hT
ZXQ8UGFnZSo+OjppdGVyYXRvciBpdGVyID0gcGFnZXMuYmVnaW4oKTsgaXRlciAhPSBwYWdlcy5l
bmQoKTsgKytpdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRleCBlYWJkNjU0Li5h
NWZjZjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtNDcsNiArNDcsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvUmVmZXJyZXJQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU3VicmVzb3VyY2VMb2FkZXIuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CkBAIC0xMTgsNyArMTE5LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXI6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIsIENh
Y2gKICAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gaWRlbnRpZmllcjsKICAgICBsb2Fk
UGFyYW1ldGVycy53ZWJQYWdlSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+cGFnZUlEKCkgOiAwOwog
ICAgIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFt
ZUlEKCkgOiAwOwotICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQ
YWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEOworICAg
IGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQo
KSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnJl
cXVlc3QgPSByZXNvdXJjZUxvYWRlci0+cmVxdWVzdCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnBy
aW9yaXR5ID0gcHJpb3JpdHk7CiAgICAgbG9hZFBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9s
aWN5ID0gY29udGVudFNuaWZmaW5nUG9saWN5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwCmluZGV4IDNlNzA3YzcuLjA0ZmIxNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
Q29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Np
b25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmFnZU5hbWVzcGFjZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgpAQCAt
MjYzLDcgKzI2NCw3IEBAIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpsb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0CiAgICAgbG9hZFBhcmFtZXRl
cnMuaWRlbnRpZmllciA9IHJlc291cmNlTG9hZElkZW50aWZpZXI7CiAgICAgbG9hZFBhcmFtZXRl
cnMud2ViUGFnZUlEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnBhZ2VJRCgpIDogMDsKICAgICBsb2Fk
UGFyYW1ldGVycy53ZWJGcmFtZUlEID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgpIDog
MDsKLSAgICBsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vz
c2lvbklEKCkgOiBTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNlc3Npb25JRDsKKyAgICBsb2FkUGFy
YW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0g
cmVxdWVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5wcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9y
aXR5SGlnaGVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBT
bmlmZkNvbnRlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmgKaW5kZXggODYyOWZhOC4uZGVmMjAzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkhUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklE
Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00MCw3ICs0MSw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICAvLyBGSVhNRTogcmVtb3ZlIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUgYW5kIHVz
ZSBTZXNzaW9uVHJhY2tlcgotICAgIHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CiAKICAgICBzdGF0aWMgdm9pZCBz
ZXRDb29raWVBY2NlcHRQb2xpY3lGb3JBbGxDb250ZXh0cyhIVFRQQ29va2llQWNjZXB0UG9saWN5
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KaW5k
ZXggM2M1MjUxNi4uMjZiZmZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lm1tCkBAIC00Miw5ICs0Miw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAKLXZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCit2
b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBBU1NFUlQoU2Vzc2lvblRyYWNrZXI6Omlz
RXBoZW1lcmFsSUQoc2Vzc2lvbklEKSk7CisgICAgQVNTRVJUKHNlc3Npb25JRC5pc0VwaGVtZXJh
bCgpKTsKIAogICAgIGlmIChTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbihzZXNzaW9uSUQpKQogICAg
ICAgICByZXR1cm47CkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCiAg
ICAgZWxzZQogICAgICAgICBiYXNlID0gU2Vzc2lvblRyYWNrZXI6OmdldElkZW50aWZpZXJCYXNl
KCk7CiAKLSAgICBTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbihzZXNzaW9uSUQsIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihiYXNlICsgJy4nICsg
U3RyaW5nOjpudW1iZXIoc2Vzc2lvbklEKSkpOworICAgIFNlc3Npb25UcmFja2VyOjpzZXRTZXNz
aW9uKHNlc3Npb25JRCwgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKGJhc2UgKyAnLicgKyBTdHJpbmc6Om51bWJlcihzZXNzaW9uSUQuc2Vzc2lvbklE
KCkpKSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2V0Q29va2llQWNj
ZXB0UG9saWN5Rm9yQWxsQ29udGV4dHMoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCkBA
IC0xMDEsMTAgKzEwMSw3IEBAIFJlc291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxCiBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKCkgY29u
c3QKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgaWYgKGZyYW1lKCkp
Ci0gICAgICAgIHJldHVybiAqU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24od2ViRnJhbWVMb2FkZXJD
bGllbnQoKS0+d2ViRnJhbWUoKS0+cGFnZSgpLT5zZXNzaW9uSUQoKSk7Ci0gICAgcmV0dXJuIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CisgICAgcmV0dXJu
ICpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbihmcmFtZSgpID8gZnJhbWUoKS0+cGFnZSgpLT5zZXNz
aW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKIH0KIAogV2ViRnJhbWVM
b2FkZXJDbGllbnQqIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OndlYkZyYW1lTG9hZGVyQ2xp
ZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmNwcAppbmRleCA0ZDEzZGMzLi43NzczN2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3Vw
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldl
YlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtMzcs
MTQgKzM4LDE0IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotdm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKK3ZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBpZiAoU2Vzc2lvblRyYWNrZXI6
OnNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU2Vzc2lvblRyYWNr
ZXI6OnNldFNlc3Npb24oc2Vzc2lvbklELCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNyZWF0ZVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24oU3RyaW5nOjpudW1iZXIoc2Vzc2lvbklEKSkpOworICAgIFNl
c3Npb25UcmFja2VyOjpzZXRTZXNzaW9uKHNlc3Npb25JRCwgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFN0cmluZzo6bnVtYmVyKHNlc3Npb25JRC5z
ZXNzaW9uSUQoKSkpKTsKIH0KIAogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6V2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dChXZWJGcmFtZSogZnJhbWUpCkBAIC01NSw3ICs1Niw3IEBAIFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoV2ViRnJhbWUq
IGZyYW1lKQogTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjpzdG9yYWdlU2Vzc2lvbigpIGNvbnN0CiB7CiAgICAgaWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+
c2V0dGluZ3MoKS5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiAqU2Vz
c2lvblRyYWNrZXI6OnNlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9u
SUQpOworICAgICAgICByZXR1cm4gKlNlc3Npb25UcmFja2VyOjpzZXNzaW9uKFNlc3Npb25JRDo6
bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKIAogICAgIHJldHVybiBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggMjYzMDYxYTAuLjkzNDEwYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMjksNiAr
MjksNyBAQAogI2RlZmluZSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKIAogI2luY2x1ZGUg
PFdlYkNvcmUvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vz
c2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00Miw3ICs0Myw3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
KGZyYW1lKSk7CiAgICAgfQogCi0gICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIGVuc3VyZVByaXZh
dGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKIAogICAgIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50KiB3ZWJGcmFtZUxvYWRlckNsaWVudCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNWZlMzAzOS4uZGVhOWQ3
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApA
QCAtMTMzLDYgKzEzMyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFkb3dS
b290Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KQEAgLTIyNiw3ICsyMjcs
NiBAQCBQYXNzUmVmUHRyPFdlYlBhZ2U+IFdlYlBhZ2U6OmNyZWF0ZSh1aW50NjRfdCBwYWdlSUQs
IGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZQogCiBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90
IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAg
ICA6IG1fcGFnZUlEKHBhZ2VJRCkKLSAgICAsIG1fc2Vzc2lvbklEKDApCiAgICAgLCBtX3ZpZXdT
aXplKHBhcmFtZXRlcnMudmlld1NpemUpCiAgICAgLCBtX2hhc1NlZW5QbHVnaW4oZmFsc2UpCiAg
ICAgLCBtX3VzZUZpeGVkTGF5b3V0KGZhbHNlKQpAQCAtMjEwNiwyMyArMjEwNiwyMyBAQCB2b2lk
IFdlYlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUodW5zaWduZWQgbGF5ZXJIb3N0aW5nTW9kZSkK
ICAgICAgICAgcGx1Z2luVmlldy0+c2V0TGF5ZXJIb3N0aW5nTW9kZShtX2xheWVySG9zdGluZ01v
ZGUpOwogfQogCi11aW50NjRfdCBXZWJQYWdlOjpzZXNzaW9uSUQoKSBjb25zdAorU2Vzc2lvbklE
IFdlYlBhZ2U6OnNlc3Npb25JRCgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fc2Vzc2lvbklEKQotICAg
ICAgICByZXR1cm4gbV9zZXNzaW9uSUQ7CisgICAgaWYgKG1fcGFnZS0+aXNTZXNzaW9uSURTZXQo
KSkKKyAgICAgICAgcmV0dXJuIG1fcGFnZS0+c2Vzc2lvbklEKCk7CiAKLSAgICByZXR1cm4gbV9w
YWdlLT5zZXR0aW5ncygpLnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSA/IFNlc3Npb25UcmFja2Vy
OjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEIDogU2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9u
SUQ7CisgICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS5wcml2YXRlQnJvd3NpbmdFbmFibGVk
KCkgPyBTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpOwogfQogCiBib29sIFdlYlBhZ2U6OmlzVXNpbmdFcGhlbWVyYWxTZXNz
aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU2Vzc2lvblRyYWNrZXI6OmlzRXBoZW1lcmFsSUQo
c2Vzc2lvbklEKCkpOworICAgIHJldHVybiBzZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpOwogfQog
Ci12b2lkIFdlYlBhZ2U6OnNldFNlc3Npb25JRCh1aW50NjRfdCBzZXNzaW9uSUQpCit2b2lkIFdl
YlBhZ2U6OnNldFNlc3Npb25JRChTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIG1fc2Vzc2lv
bklEID0gc2Vzc2lvbklEOwotICAgIGlmIChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChz
ZXNzaW9uSUQpKQorICAgIG1fcGFnZS0+c2V0U2Vzc2lvbklEKHNlc3Npb25JRCk7CisgICAgaWYg
KHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKQogICAgICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5l
bnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHNlc3Npb25JRCk7CiB9CiAKQEAgLTI0MjgsOCAr
MjQyOCw4IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVy
ZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgc2V0dGluZ3Muc2V0TG9jYWxTdG9yYWdlRW5hYmxlZChz
dG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmxvY2FsU3RvcmFnZUVu
YWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldFhTU0F1ZGl0b3JFbmFibGVkKHN0b3JlLmdl
dEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6eHNzQXVkaXRvckVuYWJsZWRLZXko
KSkpOwogICAgIHNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9v
bFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpmcmFtZUZsYXR0ZW5pbmdFbmFibGVkS2V5
KCkpKTsKLSAgICBpZiAobV9zZXNzaW9uSUQpCi0gICAgICAgIHNldHRpbmdzLnNldFByaXZhdGVC
cm93c2luZ0VuYWJsZWQoU2Vzc2lvblRyYWNrZXI6OmlzRXBoZW1lcmFsSUQobV9zZXNzaW9uSUQp
KTsKKyAgICBpZiAobV9wYWdlLT5pc1Nlc3Npb25JRFNldCgpKQorICAgICAgICBzZXR0aW5ncy5z
ZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKG1fcGFnZS0+c2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwo
KSk7CiAgICAgZWxzZQogICAgICAgICBzZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVk
KHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6cHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxl
ZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmRldmVsb3BlckV4
dHJhc0VuYWJsZWRLZXkoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKaW5kZXggODJkOTI2NC4uYjExNWU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xODYsOSArMTg2LDkgQEAgcHVibGljOgogCiAg
ICAgV2ViQ29yZTo6UGFnZSogY29yZVBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UuZ2V0KCk7
IH0KICAgICB1aW50NjRfdCBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfQotICAg
IHVpbnQ2NF90IHNlc3Npb25JRCgpIGNvbnN0OworICAgIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNz
aW9uSUQoKSBjb25zdDsKICAgICBib29sIGlzVXNpbmdFcGhlbWVyYWxTZXNzaW9uKCkgY29uc3Q7
Ci0gICAgdm9pZCBzZXRTZXNzaW9uSUQodWludDY0X3QpOworICAgIHZvaWQgc2V0U2Vzc2lvbklE
KFdlYkNvcmU6OlNlc3Npb25JRCk7CiAKICAgICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYpOwogICAgIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUoKSBjb25zdCB7IHJl
dHVybiBtX3ZpZXdTaXplOyB9CkBAIC05MDgsNyArOTA4LDYgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHJlcG9ydFVzZWRGZWF0dXJlcygpOwogCiAgICAgdWludDY0X3QgbV9wYWdlSUQ7Ci0gICAgdWlu
dDY0X3QgbV9zZXNzaW9uSUQ7CiAKICAgICBPd25QdHI8V2ViQ29yZTo6UGFnZT4gbV9wYWdlOwog
ICAgIFJlZlB0cjxXZWJGcmFtZT4gbV9tYWluRnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDQyZmI5NDYu
LjU3ZmE0ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yNSw3ICsyNSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBh
Z2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNldFZpZXdTdGF0ZSh1bnNpZ25lZCB2aWV3U3RhdGUs
IGJvb2wgd2FudHNEaWRVcGRhdGVWaWV3U3RhdGUpCiAgICAgU2V0TGF5ZXJIb3N0aW5nTW9kZSh1
bnNpZ25lZCBsYXllckhvc3RpbmdNb2RlKQogCi0gICAgU2V0U2Vzc2lvbklEKHVpbnQ2NF90IHNl
c3Npb25JRCkKKyAgICBTZXRTZXNzaW9uSUQoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
IAogICAgIFNldERyYXdzQmFja2dyb3VuZChib29sIGRyYXdzQmFja2dyb3VuZCkKICAgICBTZXRE
cmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChib29sIGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5k
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggM2QwNzNiYS4u
YTY1YzhhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00
NjUsMTQgKzQ2NSwxNCBAQCB2b2lkIFdlYlByb2Nlc3M6OmZ1bGxLZXlib2FyZEFjY2Vzc01vZGVD
aGFuZ2VkKGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCkKICAgICBtX2Z1bGxLZXlib2Fy
ZEFjY2Vzc0VuYWJsZWQgPSBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkOwogfQogCi12b2lkIFdl
YlByb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklE
KQordm9pZCBXZWJQcm9jZXNzOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25J
RCBzZXNzaW9uSUQpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShDRk5FVFdPUkspIHx8
IFVTRShTT1VQKQogICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVC
cm93c2luZ1Nlc3Npb24oc2Vzc2lvbklEKTsKICNlbmRpZgogfQogCi12b2lkIFdlYlByb2Nlc3M6
OmRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKK3ZvaWQg
V2ViUHJvY2Vzczo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Np
b25JRCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKENGTkVUV09SSykgfHwgVVNFKFNP
VVApCiAgICAgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKHNlc3Npb25JRCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDJiMWNhZWQuLmFlNTJjOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0zNiw2ICszNiw3IEBACiAj
aW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rVGFibGUu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNz
aW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtMTYzLDggKzE2NCw4IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbCh1aW50MzJfdCk7CiAKLSAgICB2b2lkIGVuc3Vy
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKLSAgICB2b2lkIGRl
c3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCk7CisgICAgdm9p
ZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAg
dm9pZCBkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOwog
CiAgICAgdm9pZCBwYWdlRGlkRW50ZXJXaW5kb3codWludDY0X3QgcGFnZUlEKTsKICAgICB2b2lk
IHBhZ2VXaWxsTGVhdmVXaW5kb3codWludDY0X3QgcGFnZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA5MmU3MDgwLi42ZmFi
MmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCkBAIC01NSw4ICs1NSw4IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVj
ZWl2ZXIgewogI2VuZGlmCiAKICAgICAvLyBMZWdhY3kgcHJpdmF0ZSBicm93c2luZyBzZXNzaW9u
IGlzIHBlciBwcm9jZXNzLiBJbmRpdmlkdWFsIHBhZ2VzIG9yIHBhZ2UgZ3JvdXBzIG1heSB1c2Ug
dGhlIHByaXZhdGUgc2Vzc2lvbiBvciB0aGUgZGVmYXVsdCBvbmUgYXMgYXBwcm9wcmlhdGUuCi0g
ICAgRW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCi0gICAg
RGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQorICAgIEVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
KyAgICBEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogCiAgICAgIyBQbHVnLWlucy4KICAgICBEaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmln
aW5IYXNoKHVpbnQzMl90IGhhc2gsIGRvdWJsZSBleHBpcmF0aW9uVGltZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224973</attachid>
            <date>2014-02-22 09:54:19 -0800</date>
            <delta_ts>2014-02-24 12:55:03 -0800</delta_ts>
            <desc>whitespace</desc>
            <filename>sessionidclass.09.diff</filename>
            <type>text/plain</type>
            <size>71234</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5MGE2NmE2Li45YWE3NGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTQtMDItMjEgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IENyZWF0ZSBTZXNzaW9uSUQgdmFsdWUtc3R5bGUgY2xhc3MgZm9yIHNlc3Npb24gSURzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MTQxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOiBBZGQg
U2Vzc2lvbklEIG1lbWJlci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6c2Vzc2lvbklEKTogUmV0cmlldmUgc2Vzc2lvbklEIG9yIHVzZSBz
ZXR0aW5ncyBpZiBub3Qgc2V0LgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZTo6aXNTZXNzaW9uSURTZXQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0
U2Vzc2lvbklEKToKKyAgICAgICAgKiBwYWdlL1Nlc3Npb25JRC5oOiBTZXNzaW9uIElEIGNsYXNz
IGNvbnNpc3Rpbmcgc29sZWx5IG9mIGl0cyB1aW50NjRfdCBzZXNzaW9uIElELgorICAgICAgICAo
V2ViQ29yZTo6U2Vzc2lvbklEOjpTZXNzaW9uSUQpOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lv
bklEOjppc1ZhbGlkKTogTm90IGVtcHR5LgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbklEOjpp
c0VwaGVtZXJhbCk6CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ6OnNlc3Npb25JRCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ6Om9wZXJhdG9yPT0pOiBWYWx1ZS1iYXNlZCBlcXVh
bGl0eS4KKyAgICAgICAgKFdlYkNvcmU6OlNlc3Npb25JRDo6b3BlcmF0b3IhPSk6CisgICAgICAg
IChXZWJDb3JlOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKTogWmVybyB2YWx1ZSBhbHNvIHVz
ZWQgZm9yIEhhc2hUcmFpdHMgZW1wdHlWYWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCk6CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ6OmxlZ2Fj
eVByaXZhdGVTZXNzaW9uSUQpOgorICAgICAgICAqIHBhZ2UvU2Vzc2lvbklESGFzaC5oOgorICAg
ICAgICAoV1RGOjpTZXNzaW9uSURIYXNoOjpoYXNoKTogSnVzdCB0aGUgY2FzdGVkIHNlc3Npb24g
SUQgKGxvdyBvcmRlciBieXRlcykKKyAgICAgICAgKFdURjo6U2Vzc2lvbklESGFzaDo6ZXF1YWwp
OgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlNlc3Npb25JRD46OmVtcHR5VmFs
dWUpOiBFcXVhbCB0byBlbXB0eVNlc3Npb25JRC4KKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxX
ZWJDb3JlOjpTZXNzaW9uSUQ+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOiAtMSB2YWx1ZS4KKyAg
ICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpTZXNzaW9uSUQ+Ojppc0RlbGV0ZWRWYWx1
ZSk6CisKIDIwMTQtMDItMjIgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgog
CiAgICAgICAgIE9ubHkgc2tpcCBzdHJldGNoeSBvcGVyYXRvcnMgd2hlbiBkZXRlcm1pbmluZyB0
aGUgc3RyZXRjaCBoZWlnaHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAxN2E2
MGNhLi42NzY1YWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQxODEsNiAr
NDE4MSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbkhhc2guaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlQb2xpY3kuaCBcCisJU291cmNlL1dl
YkNvcmUvcGFnZS9TZXNzaW9uSUQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBmOTA3
Yzc0Li41ZTg0MGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTAwMCw2ICsxMDAwLDcgQEAg
X19aTjdXZWJDb3JlNFBhZ2UxMVBhZ2VDbGllbnRzQzFFdgogX19aTjdXZWJDb3JlNFBhZ2UxMVBh
Z2VDbGllbnRzRDFFdgogX19aTjdXZWJDb3JlNFBhZ2UxMnNldEdyb3VwTmFtZUVSS04zV1RGNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTRQYWdlMTJzZXRJc1Zpc2libGVFYgorX19aTjdXZWJDb3JlNFBh
Z2UxMnNldFNlc3Npb25JREVOU185U2Vzc2lvbklERQogX19aTjdXZWJDb3JlNFBhZ2UxMnNldFZp
ZXdTdGF0ZUVqCiBfX1pON1dlYkNvcmU0UGFnZTEzcmFuZ2VPZlN0cmluZ0VSS04zV1RGNlN0cmlu
Z0VQTlNfNVJhbmdlRWoKIF9fWk43V2ViQ29yZTRQYWdlMTNzZXRJc0luV2luZG93RWIKQEAgLTE3
MzksNiArMTc0MCw3IEBAIF9fWk5LN1dlYkNvcmU0UGFnZTE3dmlld3BvcnRBcmd1bWVudHNFdgog
X19aTks3V2ViQ29yZTRQYWdlMzRpbkxvd1F1YWxpdHlJbWFnZUludGVycG9sYXRpb25Nb2RlRXYK
IF9fWk5LN1dlYkNvcmU0UGFnZTlncm91cE5hbWVFdgogX19aTks3V2ViQ29yZTRQYWdlOXBhZ2VD
b3VudEV2CitfX1pOSzdXZWJDb3JlNFBhZ2U5c2Vzc2lvbklERXYKIF9fWk5LN1dlYkNvcmU1Q29s
b3IxMHNlcmlhbGl6ZWRFdgogX19aTks3V2ViQ29yZTVDb2xvcjdnZXRSR0JBRVJkUzFfUzFfUzFf
CiBfX1pOSzdXZWJDb3JlNUNvbG9yN2dldFJHQkFFUmZTMV9TMV9TMV8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZjhhNmVkLi5k
YmVhOGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0yMjE1LDYgKzIyMTUsNyBAQAogCQk3NTQxNUQ1QTEyOUFCMkQyMDAzQUQ2
NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NDE1RDU0MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVj
aElucHV0UmVzdWx0TGlzdC5oICovOyB9OwogCQk3NTUzQ0ZFODEwOEY0NzNGMDBFQTI4MUUgLyog
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmggKi87IH07CiAJCTc1NTNDRkU5MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJl
Y29yZEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzU1M0NGRTcxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5j
cHAgKi87IH07CisJCTc1NkIyQ0UxMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNzaW9uSUQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NkIyQ0UwMThCNzEw
MTYwMEZFQ0ZBQSAvKiBTZXNzaW9uSUQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3NTc4RjkwQzExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5w
dXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhG
OTA5MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5oICovOyB9OwogCQk3NTc4RjkwRDEx
RERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTBBMTFEREYyNjkwMEQ5MzNDNSAvKiBT
cGVlY2hJbnB1dENsaWVudC5oICovOyB9OwogCQk3NTc4RjkyMDExRTRFMzI4MDBEOTMzQzUgLyog
U3BlZWNoSW5wdXRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzU3OEY5MUUxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0TGlzdGVu
ZXIuaCAqLzsgfTsKQEAgLTIyMjUsNiArMjIyNiw3IEBACiAJCTc1NzkzRUQzMEQwQ0U4NUIwMDdG
QzBBQyAvKiBET01NZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc1NzkzRUQwMEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZl
bnQuaCAqLzsgfTsKIAkJNzU3OTNFRDQwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVu
dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1Nzkz
RUQxMEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnQubW0gKi87IH07CiAJCTc1Nzkz
RUQ1MEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnRJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFRDIwRDBDRTg1QjAw
N0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudEludGVybmFsLmggKi87IH07CisJCTc1RENDN0I4MThC
ODFDODgwMEE1NzEyOCAvKiBTZXNzaW9uSURIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NURDQzdCNzE4QjgxQzg4MDBBNTcxMjggLyogU2Vzc2lv
bklESGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTc2MzNBNzI2MTNEOEIzM0EwMDg1MDFCNiAvKiBMb2NhbGVUb1NjcmlwdE1hcHBpbmcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2MzNBNzI0MTNE
OEIzM0EwMDg1MDFCNiAvKiBMb2NhbGVUb1NjcmlwdE1hcHBpbmcuaCAqLzsgfTsKIAkJNzYzM0E3
MjcxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0TWFwcGluZ0RlZmF1bHQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzYzM0E3MjUxM0Q4
QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0TWFwcGluZ0RlZmF1bHQuY3BwICovOyB9Owog
CQk3NjgwOEI1MDE1OURBREZBMDAyQjUyMzMgLyogSlNIVE1MRGlhbG9nRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzY4MDhCNEUxNTlEQURG
QTAwMkI1MjMzIC8qIEpTSFRNTERpYWxvZ0VsZW1lbnQuaCAqLzsgfTsKQEAgLTkxNDksNiArOTE1
MSw3IEBACiAJCTc1NDE1RDU0MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0
TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NwZWVjaElucHV0UmVz
dWx0TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTUzQ0ZFNjEwOEY0NzNG
MDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0
b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRpbWVsaW5lUmVj
b3JkRmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NkIyQ0UwMThC
NzEwMTYwMEZFQ0ZBQSAvKiBTZXNzaW9uSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2Vzc2lvbklELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NzhGOTA5
MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hJbnB1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
NTc4RjkwQTExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoSW5wdXRDbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzU3OEY5MUUxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0
TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoSW5wdXRM
aXN0ZW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTE2MSw2ICs5MTY0LDcg
QEAKIAkJNzU3OTNFRDEwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01NZXNzYWdlRXZlbnQubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NzkzRUQyMEQwQ0U4NUIwMDdGQzBBQyAv
KiBET01NZXNzYWdlRXZlbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NTWVzc2FnZUV2ZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzU4OTc4RUIxMjcwOTBENjAwNzZENUE5IC8qIFNwZWVjaElucHV0UmVzdWx0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0UmVzdWx0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1RENDN0I3MThCODFDODgwMEE1NzEyOCAvKiBTZXNz
aW9uSURIYXNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlc3Npb25JREhh
c2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzYzM0E3MjQxM0Q4QjMzQTAwODUw
MUI2IC8qIExvY2FsZVRvU2NyaXB0TWFwcGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMb2NhbGVUb1NjcmlwdE1hcHBpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzYzM0E3MjUxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0TWFwcGluZ0Rl
ZmF1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9jYWxlVG9T
Y3JpcHRNYXBwaW5nRGVmYXVsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2
ODA4QjRFMTU5REFERkEwMDJCNTIzMyAvKiBKU0hUTUxEaWFsb2dFbGVtZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTERpYWxvZ0VsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MTc4LDYgKzE2MTgyLDggQEAKIAkJCQlCQ0QwRTBGOTBF
OTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW5IYXNoLmggKi8sCiAJCQkJOTc0RDJEQTIx
NDZBNTM1RDAwRDUxRjhCIC8qIFNlY3VyaXR5UG9saWN5LmNwcCAqLywKIAkJCQk5NzREMkRBMzE0
NkE1MzVEMDBENTFGOEIgLyogU2VjdXJpdHlQb2xpY3kuaCAqLywKKwkJCQk3NTZCMkNFMDE4Qjcx
MDE2MDBGRUNGQUEgLyogU2Vzc2lvbklELmggKi8sCisJCQkJNzVEQ0M3QjcxOEI4MUM4ODAwQTU3
MTI4IC8qIFNlc3Npb25JREhhc2guaCAqLywKIAkJCQkxNEM5QTVFOTBCM0QxMDVGMDA1QTAyMzIg
LyogU2V0dGluZ3MuY3BwICovLAogCQkJCUY1ODc4NjNBMDJERTNBMTQwMUVBNDEyMiAvKiBTZXR0
aW5ncy5oICovLAogCQkJCUJDNTlERUY4MTY5REVEQzMwMDE2QUMzNCAvKiBTZXR0aW5ncy5pbiAq
LywKQEAgLTIyNzQyLDYgKzIyNzQ4LDcgQEAKIAkJCQkwNzk2OURDMjE3RDE0MTUxMDA3RkY4NDIg
LyogSlNSVENTdGF0c1JlcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzNTkxOTAxMzhEQjIy
MDAwRTFFQkVDIC8qIEF1ZGlvUGFyYW1UaW1lbGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQz
MTYwMjAxMkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvUHJvY2Vzc2luZ0V2ZW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk3NURDQzdCODE4QjgxQzg4MDBBNTcxMjggLyogU2Vzc2lvbklESGFzaC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwODQxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvUHJvY2Vz
c29yLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA4NjEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9SZXNhbXBsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDg4MTJCMDI2RjcwMEMxQTM1
OSAvKiBBdWRpb1Jlc2FtcGxlcktlcm5lbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzk1NCw2ICsy
Mzk2MSw3IEBACiAJCQkJN0EyNDU4N0MxMDIxRUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFn
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTY0RUQ0NDE4MzIwOEM3MDBFQThGRjEgLyogSURC
U2VydmVyQ29ubmVjdGlvbkxldmVsREIuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzRDRDNDc5MTJF
MDc2NjMwMDNEQTE1MCAvKiBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmggaW4gSGVhZGVycyAq
LywKKwkJCQk3NTZCMkNFMTE4QjcxMDE2MDBGRUNGQUEgLyogU2Vzc2lvbklELmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QTc0RUNCQjEwMTgzOUE2MDBCRjkzOUUgLyogSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzA1ODUzNDE3RkRFNkQ5MDA1RjJCQ0IgLyog
SlNNZWRpYVRyYWNrQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3OERBMjBFMTUy
MEVCOEMwMDYxNDFDMSAvKiBJbnNwZWN0b3JXZWJGcm9udGVuZERpc3BhdGNoZXJzLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDIxNzk1YWIuLmVjZTQ3MDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcApAQCAtMTgxLDYgKzE4MSw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBh
Z2VDbGllbnRzKQogI2VuZGlmCiAgICAgLCBtX2xhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0
ZXNDb3VudCgwKSAvLyBOT1RFOiBPbmx5IGNhbGxlZCBmcm9tIEludGVybmFscyBmb3IgU3BhdGlh
bCBOYXZpZ2F0aW9uIHRlc3RpbmcuCiAgICAgLCBtX2ZyYW1lc0hhbmRsaW5nQmVmb3JlVW5sb2Fk
RXZlbnQoMCkKKyAgICAsIG1fc2Vzc2lvbklEKFNlc3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQoKSkK
IHsKICAgICBBU1NFUlQobV9lZGl0b3JDbGllbnQpOwogCkBAIC0xNDkzLDYgKzE0OTQsMjMgQEAg
dm9pZCBQYWdlOjpzZXRVc2VyQ29udGVudENvbnRyb2xsZXIoVXNlckNvbnRlbnRDb250cm9sbGVy
KiB1c2VyQ29udGVudENvbnRyb2xsZXIKICAgICAgICAgbV91c2VyQ29udGVudENvbnRyb2xsZXIt
PmFkZFBhZ2UoKnRoaXMpOwogfQogCitTZXNzaW9uSUQgUGFnZTo6c2Vzc2lvbklEKCkgY29uc3QK
K3sKKyAgICBpZiAobV9zZXNzaW9uSUQuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gbV9zZXNz
aW9uSUQ7CisKKyAgICBpZiAoc2V0dGluZ3MoKS5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCisg
ICAgICAgIHJldHVybiBTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKTsKKworICAg
IHJldHVybiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKK30KKwordm9pZCBQYWdlOjpz
ZXRTZXNzaW9uSUQoU2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICBBU1NFUlQoc2Vzc2lvbklE
LmlzVmFsaWQoKSk7CisgICAgbV9zZXNzaW9uSUQgPSBzZXNzaW9uSUQ7Cit9CisKIFBhZ2U6OlBh
Z2VDbGllbnRzOjpQYWdlQ2xpZW50cygpCiAgICAgOiBhbHRlcm5hdGl2ZVRleHRDbGllbnQobnVs
bHB0cikKICAgICAsIGNocm9tZUNsaWVudChudWxscHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBhNzE1
ZmVmLi5iOWNiN2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IlBhZ2luYXRpb24uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlJl
Z2lvbi5oIgorI2luY2x1ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxl
LmgiCiAjaW5jbHVkZSAiVmlld1N0YXRlLmgiCiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMu
aCIKQEAgLTM5Nyw2ICszOTgsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFVzZXJDb250ZW50
Q29udHJvbGxlcihVc2VyQ29udGVudENvbnRyb2xsZXIqKTsKICAgICBVc2VyQ29udGVudENvbnRy
b2xsZXIqIHVzZXJDb250ZW50Q29udHJvbGxlcigpIHsgcmV0dXJuIG1fdXNlckNvbnRlbnRDb250
cm9sbGVyLmdldCgpOyB9CisgICAgU2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0OworICAgIHZv
aWQgc2V0U2Vzc2lvbklEKFNlc3Npb25JRCk7CisgICAgYm9vbCBpc1Nlc3Npb25JRFNldCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklELmlzVmFsaWQoKTsgfQogCiBwcml2YXRlOgogICAgIHZv
aWQgaW5pdEdyb3VwKCk7CkBAIC01MzcsNiArNTQxLDggQEAgcHJpdmF0ZToKICAgICB1bnNpZ25l
ZCBtX2ZyYW1lc0hhbmRsaW5nQmVmb3JlVW5sb2FkRXZlbnQ7CiAKICAgICBSZWZQdHI8VXNlckNv
bnRlbnRDb250cm9sbGVyPiBtX3VzZXJDb250ZW50Q29udHJvbGxlcjsKKworICAgIFNlc3Npb25J
RCBtX3Nlc3Npb25JRDsKIH07CiAKIGlubGluZSBQYWdlR3JvdXAmIFBhZ2U6Omdyb3VwKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklELmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Nlc3Npb25JRC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVl
ZmQ3NGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5o
CkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNlc3Npb25JRF9oCisjZGVm
aW5lIFNlc3Npb25JRF9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2Vzc2lvbklE
IHsKK3B1YmxpYzoKKyAgICBTZXNzaW9uSUQoKQorICAgICAgICA6IFNlc3Npb25JRChlbXB0eVNl
c3Npb25JRCgpKSB7IH0KKyAgICBleHBsaWNpdCBTZXNzaW9uSUQodWludDY0X3Qgc2Vzc2lvbklE
KQorICAgICAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkgeyB9CisgICAgYm9vbCBpc1ZhbGlk
KCkgY29uc3QgeyByZXR1cm4gKnRoaXMgIT0gZW1wdHlTZXNzaW9uSUQoKTsgfQorICAgIGJvb2wg
aXNFcGhlbWVyYWwoKSBjb25zdCB7IHJldHVybiAqdGhpcyAhPSBkZWZhdWx0U2Vzc2lvbklEKCk7
IH0KKyAgICB1aW50NjRfdCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsg
fQorICAgIGJvb2wgb3BlcmF0b3I9PShTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdCB7IHJldHVy
biBtX3Nlc3Npb25JRCA9PSBzZXNzaW9uSUQubV9zZXNzaW9uSUQ7IH0KKyAgICBib29sIG9wZXJh
dG9yIT0oU2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQgIT0g
c2Vzc2lvbklELm1fc2Vzc2lvbklEOyB9CisKKyAgICBzdGF0aWMgU2Vzc2lvbklEIGVtcHR5U2Vz
c2lvbklEKCkgeyByZXR1cm4gU2Vzc2lvbklEKDApOyB9CisgICAgc3RhdGljIFNlc3Npb25JRCBk
ZWZhdWx0U2Vzc2lvbklEKCkgeyByZXR1cm4gU2Vzc2lvbklEKDEpOyB9CisgICAgc3RhdGljIFNl
c3Npb25JRCBsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkgeyByZXR1cm4gU2Vzc2lvbklEKDIpOyB9
Citwcml2YXRlOgorICAgIHVpbnQ2NF90IG1fc2Vzc2lvbklEOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU2Vzc2lvbklEX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2Vzc2lvbklESGFzaC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9u
SURIYXNoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGE5ODRhYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklESGFzaC5oCkBAIC0w
LDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNlc3Npb25JREhhc2hfaAorI2RlZmlu
ZSBTZXNzaW9uSURIYXNoX2gKKworI2luY2x1ZGUgIlNlc3Npb25JRC5oIgorI2luY2x1ZGUgPHd0
Zi9IYXNoRnVuY3Rpb25zLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hUcmFpdHMuaD4KKworbmFtZXNw
YWNlIFdURiB7CisKKy8vIFRoZSBlbXB0eSB2YWx1ZSBpcyBlbXB0eVNlc3Npb25JRCgpLCB0aGUg
ZGVsZXRlZCB2YWx1ZSBpcyAoLTEpCitzdHJ1Y3QgU2Vzc2lvbklESGFzaCB7CisgICAgc3RhdGlj
IHVuc2lnbmVkIGhhc2goY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJiBwKSB7IHJldHVybiAodW5z
aWduZWQpcC5zZXNzaW9uSUQoKTsgfQorICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFdlYkNv
cmU6OlNlc3Npb25JRCYgYSwgY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJiBiKSB7IHJldHVybiBh
ID09IGI7IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVs
ZXRlZCA9IHRydWU7Cit9OwordGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJDb3JlOjpT
ZXNzaW9uSUQ+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6U2Vzc2lvbklEPiB7CisgICAg
c3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOworICAgIHN0YXRpYyBX
ZWJDb3JlOjpTZXNzaW9uSUQgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIFdlYkNvcmU6OlNlc3Npb25J
RDo6ZW1wdHlTZXNzaW9uSUQoKTsgfQorCisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRl
ZFZhbHVlKFdlYkNvcmU6OlNlc3Npb25JRCYgc2xvdCkgeyBzbG90ID0gV2ViQ29yZTo6U2Vzc2lv
bklEKC0yKTsgfQorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNvcmU6
OlNlc3Npb25JRCYgc2xvdCkgeyByZXR1cm4gc2xvdCA9PSBXZWJDb3JlOjpTZXNzaW9uSUQoLTIp
OyB9Cit9OwordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29yZTo6U2Vzc2lvbklE
PiB7CisgICAgdHlwZWRlZiBTZXNzaW9uSURIYXNoIEhhc2g7Cit9OworCit9CisKKyNlbmRpZiAv
LyBTZXNzaW9uSURIYXNoX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmNWZkMjA3Li4yODdjNWY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsOTUgQEAKKzIwMTQtMDItMjEgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBw
bGUuY29tPgorCisgICAgICAgIENyZWF0ZSBTZXNzaW9uSUQgdmFsdWUtc3R5bGUgY2xhc3MgZm9y
IHNlc3Npb24gSURzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI5MTQxCisKKyAgICAgICAgVGhlIGJlbG93IGNoYW5nZXMgZGVhbCBzb2xlbHkgd2l0
aCBtZWNoYW5pY2FsIGNoYW5nZXMgdG8gdXNlIHRoZSBTZXNzaW9uSUQgdmFsdWUgY2xhc3MgaW5z
dGVhZCBvZiB1aW50NjRfdCBleGNlcHQgd2hlcmUgbm90ZWQuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OnN0b3JhZ2VTZXNzaW9u
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnN0YXJ0
RG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Y29va2llc0ZvckRPTSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRW
YWx1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpn
ZXRSYXdDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmRlbGV0ZUNvb2tpZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
Ojppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9SZW1vdGVO
ZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVO
ZXR3b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24pOgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6
Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29y
ay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJlZC9TZXNz
aW9uVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OnN0YXRpY1Nlc3Npb25NYXApOgorICAg
ICAgICAoV2ViS2l0OjpzdG9yYWdlU2Vzc2lvblRvSUQpOgorICAgICAgICAoV2ViS2l0OjpTZXNz
aW9uVHJhY2tlcjo6c2Vzc2lvbk1hcCk6CisgICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFja2Vy
OjpzZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OnNlc3Npb25JRCk6
CisgICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpzZXRTZXNzaW9uKToKKyAgICAgICAg
KFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKiBTaGFy
ZWQvU2Vzc2lvblRyYWNrZXIuaDogTW92ZSBjb2RlIHRvIFNlc3Npb25JRCBjbGFzcy4KKyAgICAg
ICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDogQWRkIGVuY29kZSBhbmQgZGVj
b2RlIGZvciBTZXNzaW9uSUQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8U2Vzc2lvbklE
Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxTZXNzaW9uSUQ+OjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAg
KiBTaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tOgorICAgICAgICAoV2ViS2l0Ojp3ZWJL
aXRDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUElTZXNzaW9uLmNwcDoKKyAgICAgICAgKEFQSTo6Z2VuZXJhdGVJRCk6Cisg
ICAgICAgIChBUEk6OlNlc3Npb246OmRlZmF1bHRTZXNzaW9uKToKKyAgICAgICAgKEFQSTo6U2Vz
c2lvbjo6bGVnYWN5UHJpdmF0ZVNlc3Npb24pOgorICAgICAgICAoQVBJOjpTZXNzaW9uOjpTZXNz
aW9uKToKKyAgICAgICAgKEFQSTo6U2Vzc2lvbjo6aXNFcGhlbWVyYWwpOgorICAgICAgICAoQVBJ
OjpTZXNzaW9uOjpnZXRJRCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSVNlc3Npb24uaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bnRleHQ6OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpjcmVhdGVOZXdXZWJQcm9jZXNzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXNzaW9uSUQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVM
b2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9h
ZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9z
b3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OiBNb3ZlIHNlc3Npb25JRCB0byBQYWdlIHRvIGFsbG93IFdlYkNvcmUgdG8gYWNjZXNzIGl0Lgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6c2Vzc2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aXNVc2luZ0VwaGVt
ZXJhbFNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRTZXNzaW9uSUQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGVzdHJveVByaXZhdGVCcm93
c2luZ1Nlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKwogMjAxNC0wMi0yMSAgQnJl
bnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHRlbmQgbWVkaWEg
c3VwcG9ydCBmb3IgV2ViVlRUIHNvdXJjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApp
bmRleCAxZmVlNDk4Li5kY2M2MmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBA
IC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgog
I2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAt
MTQ4LDkgKzE0OSw5IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldFNl
cmlhbExvYWRpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBtX3NlcmlhbExvYWRpbmdFbmFi
bGVkID0gZW5hYmxlZDsKIH0KIAotc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFn
ZVNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQorc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biYgc3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBpZiAoU2Vzc2lv
blRyYWNrZXI6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKSkgeworICAgIGlmIChzZXNzaW9uSUQu
aXNFcGhlbWVyYWwoKSkgewogICAgICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHByaXZhdGVT
ZXNzaW9uID0gU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oc2Vzc2lvbklEKTsKICAgICAgICAgaWYg
KHByaXZhdGVTZXNzaW9uKQogICAgICAgICAgICAgcmV0dXJuICpwcml2YXRlU2Vzc2lvbjsKQEAg
LTE2MSw3ICsxNjIsNyBAQCBzdGF0aWMgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzdG9yYWdlU2Vz
c2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCiAgICAgcmV0dXJuIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnN0YXJ0RG93bmxvYWQodWludDY0X3Qgc2Vzc2lvbklELCB1aW50NjRfdCBk
b3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdGFydERvd25sb2FkKFNlc3Npb25JRCBzZXNzaW9uSUQs
IHVpbnQ2NF90IGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsK
ICAgICAvLyBGSVhNRTogRG8gc29tZXRoaW5nIHdpdGggdGhlIHNlc3Npb24gSUQuCiAgICAgTmV0
d29ya1Byb2Nlc3M6OnNoYXJlZCgpLmRvd25sb2FkTWFuYWdlcigpLnN0YXJ0RG93bmxvYWQoZG93
bmxvYWRJRCwgcmVxdWVzdCk7CkBAIC0xODMsMzIgKzE4NCwzMiBAQCB2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQodWlu
dDY0X3QgbQogICAgIGxvYWRlci0+ZGlkQ29udmVydEhhbmRsZVRvRG93bmxvYWQoKTsKIH0KIAot
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTSh1aW50NjRf
dCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIFN0cmlu
ZyYgcmVzdWx0KQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0Zv
ckRPTShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVS
TCYgdXJsLCBTdHJpbmcmIHJlc3VsdCkKIHsKICAgICByZXN1bHQgPSBXZWJDb3JlOjpjb29raWVz
Rm9yRE9NKHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCksIGZpcnN0UGFydHksIHVybCk7CiB9CiAK
LXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKHVp
bnQ2NF90IHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpzZXRDb29raWVzRnJvbURPTShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykK
IHsKICAgICBXZWJDb3JlOjpzZXRDb29raWVzRnJvbURPTShzdG9yYWdlU2Vzc2lvbihzZXNzaW9u
SUQpLCBmaXJzdFBhcnR5LCB1cmwsIGNvb2tpZVN0cmluZyk7CiB9CiAKLXZvaWQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNFbmFibGVkKHVpbnQ2NF90IHNlc3Npb25JRCwg
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgYm9vbCYgcmVzdWx0KQordm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0VuYWJsZWQoU2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgYm9vbCYg
cmVzdWx0KQogewogICAgIHJlc3VsdCA9IFdlYkNvcmU6OmNvb2tpZXNFbmFibGVkKHN0b3JhZ2VT
ZXNzaW9uKHNlc3Npb25JRCksIGZpcnN0UGFydHksIHVybCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHVpbnQ2
NF90IHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgU3Ry
aW5nJiByZXN1bHQpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBTdHJpbmcmIHJlc3VsdCkKIHsKICAgICByZXN1bHQg
PSBXZWJDb3JlOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzdG9yYWdlU2Vzc2lvbihz
ZXNzaW9uSUQpLCBmaXJzdFBhcnR5LCB1cmwpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgVmVjdG9yPENvb2tpZT4mIHJlc3VsdCkKK3Zv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldFJhd0Nvb2tpZXMoU2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgVmVjdG9y
PENvb2tpZT4mIHJlc3VsdCkKIHsKICAgICBXZWJDb3JlOjpnZXRSYXdDb29raWVzKHN0b3JhZ2VT
ZXNzaW9uKHNlc3Npb25JRCksIGZpcnN0UGFydHksIHVybCwgcmVzdWx0KTsKIH0KIAotdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVsZXRlQ29va2llKHVpbnQ2NF90IHNlc3Np
b25JRCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkKK3ZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRlbGV0ZUNvb2tpZShTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKQogewogICAgIFdl
YkNvcmU6OmRlbGV0ZUNvb2tpZShzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpLCB1cmwsIGNvb2tp
ZU5hbWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggMzk4MWZhNS4uZmE5OTc5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC03NiwxNSArNzYsMTUgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGNyb3NzT3JpZ2luUmVkaXJlY3RSZWNlaXZlZChSZXNvdXJjZUxvYWRJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpVUkwmIHJlZGlyZWN0VVJMKTsKICAgICB2b2lkIHNlcnZl
UGVuZGluZ1JlcXVlc3RzKHVpbnQzMl90IHJlc291cmNlTG9hZFByaW9yaXR5KTsKICAgICB2b2lk
IHNldFNlcmlhbExvYWRpbmdFbmFibGVkKGJvb2wpOwotICAgIHZvaWQgc3RhcnREb3dubG9hZCh1
aW50NjRfdCBzZXNzaW9uSUQsIHVpbnQ2NF90IGRvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYpOworICAgIHZvaWQgc3RhcnREb3dubG9hZChXZWJDb3JlOjpTZXNzaW9u
SUQsIHVpbnQ2NF90IGRvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYp
OwogICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKHVpbnQ2NF90IG1h
aW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7
CiAKLSAgICB2b2lkIGNvb2tpZXNGb3JET00odWludDY0X3Qgc2Vzc2lvbklELCBjb25zdCBXZWJD
b3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFN0cmluZyYgcmVzdWx0
KTsKLSAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3Qg
V2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJp
bmcmKTsKLSAgICB2b2lkIGNvb2tpZXNFbmFibGVkKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3Qg
V2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBib29sJiByZXN1
bHQpOwotICAgIHZvaWQgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUodWludDY0X3Qgc2Vz
c2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVS
TCYsIFN0cmluZyYgcmVzdWx0KTsKLSAgICB2b2lkIGdldFJhd0Nvb2tpZXModWludDY0X3Qgc2Vz
c2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVS
TCYsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+Jik7Ci0gICAgdm9pZCBkZWxldGVDb29raWUodWlu
dDY0X3Qgc2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tp
ZU5hbWUpOworICAgIHZvaWQgY29va2llc0ZvckRPTShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgU3RyaW5nJiBy
ZXN1bHQpOworICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oV2ViQ29yZTo6U2Vzc2lvbklELCBj
b25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0
IFN0cmluZyYpOworICAgIHZvaWQgY29va2llc0VuYWJsZWQoV2ViQ29yZTo6U2Vzc2lvbklELCBj
b25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGJvb2wm
IHJlc3VsdCk7CisgICAgdm9pZCBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShXZWJDb3Jl
OjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29y
ZTo6VVJMJiwgU3RyaW5nJiByZXN1bHQpOworICAgIHZvaWQgZ2V0UmF3Q29va2llcyhXZWJDb3Jl
OjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29y
ZTo6VVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tp
ZShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYg
Y29va2llTmFtZSk7CiAKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBXZWJDb3JlOjpV
UkwmLCBjb25zdCBCbG9iUmVnaXN0cmF0aW9uRGF0YSYpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9i
VVJMRnJvbVVSTChjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXZWJDb3JlOjpVUkwmIHNyY1VS
TCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGE0
NTk3ZmMuLmFmMWU4NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCkBAIC0zMiwxNSArMzIsMTUgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIAogICAgIFNldFNlcmlhbExvYWRpbmdF
bmFibGVkKGJvb2wgZW5hYmxlZCkgLT4gKCkKIAotICAgIFN0YXJ0RG93bmxvYWQodWludDY0X3Qg
c2Vzc2lvbklELCB1aW50NjRfdCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCkKKyAgICBTdGFydERvd25sb2FkKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IHVpbnQ2NF90IGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0KQog
ICAgIENvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZCh1aW50NjRfdCBtYWluUmVzb3Vy
Y2VMb2FkSWRlbnRpZmllciwgdWludDY0X3QgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCiAKLSAg
ICBDb29raWVzRm9yRE9NKHVpbnQ2NF90IHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFy
dHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChTdHJpbmcgcmVzdWx0KQotICAgIFNldENvb2tpZXNG
cm9tRE9NKHVpbnQ2NF90IHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIFdlYkNv
cmU6OlVSTCB1cmwsIFN0cmluZyBjb29raWVTdHJpbmcpCi0gICAgQ29va2llc0VuYWJsZWQodWlu
dDY0X3Qgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVy
bCkgLT4gKGJvb2wgZW5hYmxlZCkKLSAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSh1
aW50NjRfdCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwg
dXJsKSAtPiAoU3RyaW5nIHJlc3VsdCkKLSAgICBHZXRSYXdDb29raWVzKHVpbnQ2NF90IHNlc3Np
b25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChWZWN0
b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzKQotICAgIERlbGV0ZUNvb2tpZSh1aW50NjRfdCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCB1cmwsIFN0cmluZyBjb29raWVOYW1lKQorICAgIENvb2tp
ZXNGb3JET00oV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0
UGFydHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChTdHJpbmcgcmVzdWx0KQorICAgIFNldENvb2tp
ZXNGcm9tRE9NKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJz
dFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsLCBTdHJpbmcgY29va2llU3RyaW5nKQorICAgIENvb2tp
ZXNFbmFibGVkKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJz
dFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoYm9vbCBlbmFibGVkKQorICAgIENvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoU3RyaW5nIHJlc3VsdCkK
KyAgICBHZXRSYXdDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6
OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNv
b2tpZT4gY29va2llcykKKyAgICBEZWxldGVDb29raWUoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViQ29yZTo6VVJMIHVybCwgU3RyaW5nIGNvb2tpZU5hbWUpCiAKICAgICBSZWdpc3Rl
ckJsb2JVUkwoV2ViQ29yZTo6VVJMIHVybCwgV2ViS2l0OjpCbG9iUmVnaXN0cmF0aW9uRGF0YSBk
YXRhKQogICAgIFJlZ2lzdGVyQmxvYlVSTEZyb21VUkwoV2ViQ29yZTo6VVJMIHVybCwgV2ViQ29y
ZTo6VVJMIHNyY1VSTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAppbmRleCA4YTEyYWI3Li41NWFiMGEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC00NSw2ICs0NSw3IEBA
CiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2lu
Zy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtMTYzLDcgKzE2NCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1lCiAKICAgICAvLyBGSVhNRTogaW5zdGVhZCBvZiBoYW5kbGluZyB0aGlzIGhlcmUsIGEg
bWVzc2FnZSBzaG91bGQgYmUgc2VudCBsYXRlciAoc2NhbGVzIHRvIG11bHRpcGxlIHNlc3Npb25z
KQogICAgIGlmIChwYXJhbWV0ZXJzLnByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAgICAgIFJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Np
b25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKKyAgICAgICAgUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdh
Y3lQcml2YXRlU2Vzc2lvbklEKCkpOwogCiAgICAgaWYgKHBhcmFtZXRlcnMuc2hvdWxkVXNlVGVz
dGluZ05ldHdvcmtTZXNzaW9uKQogICAgICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRj
aFRvTmV3VGVzdGluZ1Nlc3Npb24oKTsKQEAgLTIxNCwxMiArMjE1LDEyIEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OmNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKICNlbmRpZgog
fQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVp
bnQ2NF90IHNlc3Npb25JRCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBSZW1vdGVOZXR3b3JraW5n
Q29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihzZXNzaW9uSUQpOwogfQogCi12
b2lkIE5ldHdvcmtQcm9jZXNzOjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRf
dCBzZXNzaW9uSUQpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIFNlc3Npb25UcmFja2VyOjpkZXN0
cm95U2Vzc2lvbihzZXNzaW9uSUQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggYjUwZjA4YS4uMWJlNmY3OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSAiRG93bmxvYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2Vp
dmVyTWFwLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtMTA0LDggKzEwNSw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGluaXRpYWxpemVOZXR3b3Jr
UHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZv
aWQgY3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKTsKLSAgICB2b2lkIGVuc3Vy
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKLSAgICB2b2lkIGRl
c3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCk7CisgICAgdm9p
ZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAg
dm9pZCBkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOwog
ICAgIHZvaWQgZG93bmxvYWRSZXF1ZXN0KHVpbnQ2NF90IGRvd25sb2FkSUQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYpOwogICAgIHZvaWQgY2FuY2VsRG93bmxvYWQodWludDY0X3Qg
ZG93bmxvYWRJRCk7CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKHVpbnQzMl90KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2Fn
ZXMuaW4KaW5kZXggMjdjNThiNC4uNzQ5OTQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTM0LDgg
KzM0LDggQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAg
IFVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFuZ2VkKFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlcykK
ICNlbmRpZgogCi0gICAgRW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNz
aW9uSUQpCi0gICAgRGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lv
bklEKQorICAgIEVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKKyAgICBEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQogCiAgICAgRG93bmxvYWRSZXF1ZXN0KHVpbnQ2NF90IGRvd25s
b2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0KQogICAgIENhbmNlbERvd25s
b2FkKHVpbnQ2NF90IGRvd25sb2FkSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDI4YmNjOWIuLjY5YzU5ZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUhhbmRsZUNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25z
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KIApAQCAtMTczLDcgKzE3NCw3IEBAIHByaXZhdGU6CiAgICAgUmVzb3Vy
Y2VMb2FkSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgdWludDY0X3QgbV93ZWJQYWdlSUQ7
CiAgICAgdWludDY0X3QgbV93ZWJGcmFtZUlEOwotICAgIHVpbnQ2NF90IG1fc2Vzc2lvbklEOwor
ICAgIFdlYkNvcmU6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgbV9yZXF1ZXN0OwogICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5IG1f
cHJpb3JpdHk7CiAgICAgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IG1fY29udGVudFNu
aWZmaW5nUG9saWN5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggZTk1OGJiMy4uZjVjY2NjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5n
Q29udGV4dC5oCkBAIC0yOCwyNCArMjgsMjUgQEAKICNkZWZpbmUgUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHRfaAogCiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JraW5nQ29udGV4dC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JraW5n
Q29udGV4dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQ+IGNyZWF0ZSh1aW50NjRfdCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJv
b2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQoc2Vzc2lvbklE
LCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KSk7CiAgICAgfQogICAg
IHZpcnR1YWwgflJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiAKICAgICAvLyBGSVhNRTogUmVt
b3ZlIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUgYW5kIHVzZSBTZXNzaW9uVHJhY2tlci4KLSAgICBz
dGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25J
RCk7CisgICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3Jl
OjpTZXNzaW9uSUQpOwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7IH0KIAogcHJpdmF0ZToKLSAgICBSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dCh1aW50NjRfdCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKKyAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChX
ZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3QpCiAgICAgICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAg
ICAgICAsIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdChzaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogI2lmIFBMQVRGT1JNKENPQ09BKQpA
QCAtNjYsNyArNjcsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Qg
b3ZlcnJpZGU7CiAjZW5kaWYKIAotICAgIHVpbnQ2NF90IG1fc2Vzc2lvbklEOworICAgIFdlYkNv
cmU6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBib29sIG1fc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdDsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250
ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtp
bmdDb250ZXh0Lm1tCmluZGV4IGEwYThmNjUuLjJhN2M1OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQubW0KQEAgLTc3LDE1ICs3NywxNSBAQCBSZXNvdXJjZUVycm9yIFJlbW90ZU5ldHdvcmtpbmdD
b250ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZQogICAgIHJl
dHVybiBXZWJLaXQ6OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKIH0KIAotdm9pZCBSZW1vdGVOZXR3
b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNz
aW9uSUQpCit2b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgQVNTRVJUKFNlc3Npb25UcmFj
a2VyOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCkpOworICAgIEFTU0VSVChzZXNzaW9uSUQuaXNF
cGhlbWVyYWwoKSk7CiAKICAgICBpZiAoU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oc2Vzc2lvbklE
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKCFTZXNzaW9uVHJhY2tlcjo6Z2V0SWRl
bnRpZmllckJhc2UoKS5pc051bGwoKSk7Ci0gICAgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24o
c2Vzc2lvbklELCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24oU2Vzc2lvblRyYWNrZXI6OmdldElkZW50aWZpZXJCYXNlKCkgKyAnLicgKyBTdHJpbmc6
Om51bWJlcihzZXNzaW9uSUQpKSk7CisgICAgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24oc2Vz
c2lvbklELCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24oU2Vzc2lvblRyYWNrZXI6OmdldElkZW50aWZpZXJCYXNlKCkgKyAnLicgKyBTdHJpbmc6Om51
bWJlcihzZXNzaW9uSUQuc2Vzc2lvbklEKCkpKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3Vw
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2lu
Z0NvbnRleHRTb3VwLmNwcAppbmRleCBkN2NmODZlLi4zYmU5ZGJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291
cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3
b3JraW5nQ29udGV4dFNvdXAuY3BwCkBAIC00Niw3ICs0Niw3IEBAIGJvb2wgUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQ6OmlzVmFsaWQoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lk
IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVp
bnQ2NF90IHNlc3Npb25JRCkKK3ZvaWQgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsv
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCmluZGV4IDU0Y2FiZjQu
LmQ3ZDkyZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
TmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKQEAgLTQxLDcgKzQxLDcg
QEAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzKCkKICAgICA6IGlkZW50aWZpZXIoMCkKICAgICAsIHdlYlBhZ2VJRCgwKQogICAgICwg
d2ViRnJhbWVJRCgwKQotICAgICwgc2Vzc2lvbklEKDApCisgICAgLCBzZXNzaW9uSUQoU2Vzc2lv
bklEOjplbXB0eVNlc3Npb25JRCgpKQogICAgICwgcHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3Jp
dHlWZXJ5TG93KQogICAgICwgY29udGVudFNuaWZmaW5nUG9saWN5KFNuaWZmQ29udGVudCkKICAg
ICAsIGFsbG93U3RvcmVkQ3JlZGVudGlhbHMoRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKaW5kZXggY2JmNDUzMS4uOTE2MTU0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycy5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25z
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1Nlc3Npb25JRC5oPgogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIApAQCAtNTIs
NyArNTMsNyBAQCBwdWJsaWM6CiAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVy
OwogICAgIHVpbnQ2NF90IHdlYlBhZ2VJRDsKICAgICB1aW50NjRfdCB3ZWJGcmFtZUlEOwotICAg
IHVpbnQ2NF90IHNlc3Npb25JRDsKKyAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEOwog
ICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0OwogICAgIFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZUFycmF5IHJlcXVlc3RCb2R5U2FuZGJveEV4dGVuc2lvbnM7IC8vIENyZWF0ZWQg
YXV0b21hdGljYWxseSBmb3IgdGhlIHNlbmRlci4KICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgcmVzb3VyY2VTYW5kYm94RXh0ZW5zaW9uOyAvLyBDcmVhdGVkIGF1dG9tYXRpY2FsbHkgZm9y
IHRoZSBzZW5kZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRy
YWNrZXIuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcAppbmRl
eCA2ZTRkNGZmLi5iZGNmZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vz
c2lvblRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tl
ci5jcHAKQEAgLTMzLDIyICszMywxOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLWNvbnN0IHVpbnQ2NF90IFNlc3Npb25UcmFja2VyOjpkZWZhdWx0
U2Vzc2lvbklEOwotY29uc3QgdWludDY0X3QgU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVT
ZXNzaW9uSUQ7Ci0KLXN0YXRpYyBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8TmV0
d29ya1N0b3JhZ2VTZXNzaW9uPj4mIHN0YXRpY1Nlc3Npb25NYXAoKQorc3RhdGljIEhhc2hNYXA8
U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIHN0YXRp
Y1Nlc3Npb25NYXAoKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbj4+PiBtYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhh
c2hNYXA8U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4+
IG1hcDsKICAgICByZXR1cm4gbWFwLmdldCgpOwogfQogCi1zdGF0aWMgSGFzaE1hcDxjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24qLCB1aW50NjRfdD4mIHN0b3JhZ2VTZXNzaW9uVG9JRCgpCitz
dGF0aWMgSGFzaE1hcDxjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24qLCBTZXNzaW9uSUQ+JiBz
dG9yYWdlU2Vzc2lvblRvSUQoKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24qLCB1aW50NjRfdD4+IG1hcDsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1h
cDxjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24qLCBTZXNzaW9uSUQ+PiBtYXA7CiAgICAgcmV0
dXJuIG1hcC5nZXQoKTsKIH0KIApAQCAtNjAsNyArNTcsNyBAQCBzdGF0aWMgU3RyaW5nJiBpZGVu
dGlmaWVyQmFzZSgpCiAgICAgcmV0dXJuIGJhc2U7CiB9CiAKLWNvbnN0IEhhc2hNYXA8dWludDY0
X3QsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+PiYgU2Vzc2lvblRyYWNr
ZXI6OnNlc3Npb25NYXAoKQorY29uc3QgSGFzaE1hcDxTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0
cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+PiYgU2Vzc2lvblRyYWNrZXI6OnNlc3Npb25NYXAoKQog
ewogICAgIHJldHVybiBzdGF0aWNTZXNzaW9uTWFwKCk7CiB9CkBAIC03MCwyOCArNjcsMjggQEAg
Y29uc3QgU3RyaW5nJiBTZXNzaW9uVHJhY2tlcjo6Z2V0SWRlbnRpZmllckJhc2UoKQogICAgIHJl
dHVybiBpZGVudGlmaWVyQmFzZSgpOwogfQogCi1OZXR3b3JrU3RvcmFnZVNlc3Npb24qIFNlc3Np
b25UcmFja2VyOjpzZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKK05ldHdvcmtTdG9yYWdlU2Vz
c2lvbiogU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAg
ICBpZiAoc2Vzc2lvbklEID09IGRlZmF1bHRTZXNzaW9uSUQpCisgICAgaWYgKHNlc3Npb25JRCA9
PSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKICAgICAgICAgcmV0dXJuICZOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwogICAgIHJldHVybiBzdGF0
aWNTZXNzaW9uTWFwKCkuZ2V0KHNlc3Npb25JRCk7CiB9CiAKLXVpbnQ2NF90IFNlc3Npb25UcmFj
a2VyOjpzZXNzaW9uSUQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKQorU2Vz
c2lvbklEIFNlc3Npb25UcmFja2VyOjpzZXNzaW9uSUQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiBzZXNzaW9uKQogewogICAgIGlmICgmc2Vzc2lvbiA9PSAmTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKSkKLSAgICAgICAgcmV0dXJuIGRlZmF1bHRTZXNz
aW9uSUQ7CisgICAgICAgIHJldHVybiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAg
ICByZXR1cm4gc3RvcmFnZVNlc3Npb25Ub0lEKCkuZ2V0KCZzZXNzaW9uKTsKIH0KIAotdm9pZCBT
ZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQsIHN0ZDo6dW5pcXVl
X3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+IHNlc3Npb24pCit2b2lkIFNlc3Npb25UcmFja2Vy
OjpzZXRTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3Jr
U3RvcmFnZVNlc3Npb24+IHNlc3Npb24pCiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRCAhPSBkZWZh
dWx0U2Vzc2lvbklEKTsKKyAgICBBU1NFUlQoc2Vzc2lvbklEICE9IFNlc3Npb25JRDo6ZGVmYXVs
dFNlc3Npb25JRCgpKTsKICAgICBzdG9yYWdlU2Vzc2lvblRvSUQoKS5zZXQoc2Vzc2lvbi5nZXQo
KSwgc2Vzc2lvbklEKTsKICAgICBzdGF0aWNTZXNzaW9uTWFwKCkuc2V0KHNlc3Npb25JRCwgc3Rk
Ojptb3ZlKHNlc3Npb24pKTsKIH0KIAotdm9pZCBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Np
b24odWludDY0X3Qgc2Vzc2lvbklEKQordm9pZCBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Np
b24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OwogICAgIGlmIChzdGF0aWNTZXNzaW9uTWFwKCkuY29udGFpbnMoc2Vzc2lvbklEKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaAppbmRleCAyZWI4MWM5Li4wYjAzMDI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaApAQCAtMjcsNiArMjcsNyBAQAog
I2RlZmluZSBTZXNzaW9uVHJhY2tlcl9oCiAKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklESGFzaC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMzYsMTYgKzM3LDEzIEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgU2Vzc2lvblRyYWNrZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNl
c3Npb25UcmFja2VyKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDY0X3QgZGVmYXVs
dFNlc3Npb25JRCA9IDE7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IGxlZ2FjeVByaXZhdGVT
ZXNzaW9uSUQgPSAyOwotICAgIHN0YXRpYyBib29sIGlzRXBoZW1lcmFsSUQodWludDY0X3Qgc2Vz
c2lvbklEKSB7IHJldHVybiBzZXNzaW9uSUQgIT0gU2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNz
aW9uSUQ7IH0KICAgICAvLyBGSVhNRTogc2Vzc2lvbk1hcCgpJ3MgcmV0dXJuZWQgbWFwIGRvZXMg
bm90IGluY2x1ZGUgZGVmYXVsdCBzZXNzaW9uLgotICAgIHN0YXRpYyBjb25zdCBIYXNoTWFwPHVp
bnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4m
IHNlc3Npb25NYXAoKTsKKyAgICBzdGF0aWMgY29uc3QgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9u
SUQsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+PiYgc2Vz
c2lvbk1hcCgpOwogICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIGdldElkZW50aWZpZXJCYXNlKCk7
Ci0gICAgc3RhdGljIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogc2Vzc2lvbih1aW50
NjRfdCBzZXNzaW9uSUQpOwotICAgIHN0YXRpYyB1aW50NjRfdCBzZXNzaW9uSUQoY29uc3QgV2Vi
Q29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJik7Ci0gICAgc3RhdGljIHZvaWQgc2V0U2Vzc2lv
bih1aW50NjRfdCBzZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb24+KTsKLSAgICBzdGF0aWMgdm9pZCBkZXN0cm95U2Vzc2lvbih1aW50NjRfdCBz
ZXNzaW9uSUQpOworICAgIHN0YXRpYyBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHNl
c3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb25JRChjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mKTsKKyAgICBz
dGF0aWMgdm9pZCBzZXRTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4pOworICAgIHN0YXRpYyB2b2lkIGRlc3Ry
b3lTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CiAgICAgc3RhdGljIHZvaWQgc2V0SWRlbnRp
ZmllckJhc2UoY29uc3QgU3RyaW5nJik7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDE3M2UzZDMuLjEzZWIxZDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC01
Nyw2ICs1Nyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdDb25zdHJhaW50cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1RyYW5zZm9ybWF0aW9uTWF0cml4Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KQEAgLTE4
ODAsNiArMTg4MSwyMyBAQCBib29sIEFyZ3VtZW50Q29kZXI8SURCT2JqZWN0U3RvcmVNZXRhZGF0
YT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIElEQgogCiAgICAgcmV0dXJuIHRy
dWU7CiB9Ci0jZW5kaWYKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCit2
b2lkIEFyZ3VtZW50Q29kZXI8U2Vzc2lvbklEPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlciwgY29uc3QgU2Vzc2lvbklEJiBzZXNzaW9uSUQpCit7CisgICAgZW5jb2RlciA8PCBzZXNz
aW9uSUQuc2Vzc2lvbklEKCk7Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxTZXNzaW9uSUQ+Ojpk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBTZXNzaW9uSUQmIHNlc3Npb25JRCkKK3sK
KyAgICB1aW50NjRfdCBzZXNzaW9uOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2Vzc2lvbikp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHNlc3Npb25JRCA9IFNlc3Npb25JRChzZXNz
aW9uKTsKKworICAgIHJldHVybiB0cnVlOworfQogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBhNGUyNjRm
Li5mNTlmZDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCkBAIC01NSw2ICs1NSw3IEBAIGNsYXNzIFJlZ2lvbjsKIGNsYXNzIFJlc291cmNlRXJy
b3I7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworY2xh
c3MgU2Vzc2lvbklEOwogY2xhc3MgU3RpY2t5UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwog
Y2xhc3MgVGV4dENoZWNraW5nUmVxdWVzdERhdGE7CiBjbGFzcyBUcmFuc2Zvcm1hdGlvbk1hdHJp
eDsKQEAgLTM5Nyw3ICszOTgsMTMgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpJREJPYmplY3RTdG9yZU1ldGFkYXRhPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OklEQk9iamVjdFN0b3JlTWV0YWRhdGEm
KTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6SURC
T2JqZWN0U3RvcmVNZXRhZGF0YSYpOwogfTsKLSNlbmRpZgorCisjZW5kaWYgLy8gRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCisKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6U2Vzc2lvbklEPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1
bWVudERlY29kZXImLCBXZWJDb3JlOjpTZXNzaW9uSUQmKTsKK307CiAKIH0gLy8gbmFtZXNwYWNl
IElQQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3Jh
Z2VTaGltLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5t
bQppbmRleCBjNmQ3MDVmLi5mMDlmZjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvQ29va2llU3RvcmFnZVNoaW0ubW0KQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJDb29r
aWVTdG9yYWdlU2hpbUxpYnJhcnkuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgotI2luY2x1
ZGUgIlNlc3Npb25UcmFja2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KQEAgLTU4LDcgKzU4LDcgQEAgc3RhdGljIENGRGlj
dGlvbmFyeVJlZiB3ZWJLaXRDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JV
UkwoQ0ZIVFRQQ28KIHsKICAgICBTdHJpbmcgY29va2llczsKICAgICBVUkwgZmlyc3RQYXJ0eUZv
ckNvb2tpZXNVUkw7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVj
dGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvblRyYWNr
ZXI6OmRlZmF1bHRTZXNzaW9uSUQsIGZpcnN0UGFydHlGb3JDb29raWVzVVJMLCBpblJlcXVlc3RV
UkwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNGb3JE
T006OlJlcGx5KGNvb2tpZXMpLCAwKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLm5l
dHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgZmlyc3RQYXJ0eUZvckNvb2tpZXNVUkwsIGlu
UmVxdWVzdFVSTCksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29v
a2llc0ZvckRPTTo6UmVwbHkoY29va2llcyksIDApKQogICAgICAgICByZXR1cm4gMDsKIAogICAg
IGlmIChjb29raWVzLmlzTnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSVNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24u
Y3BwCmluZGV4IDA4ZDg0YWYuLjA0ODAyZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUElTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
U2Vzc2lvbi5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlSUQo
Ym9vbCBpc0VwaGVtZXJhbCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0g
ICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVNlc3Npb25JRCA9IFdlYktpdDo6U2Vzc2lvblRyYWNr
ZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQ7CisgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVNl
c3Npb25JRCA9IFdlYkNvcmU6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpLnNl
c3Npb25JRCgpOwogICAgIEFTU0VSVChpc0VwaGVtZXJhbCk7CiAgICAgcmV0dXJuICsrdW5pcXVl
U2Vzc2lvbklEOwogfQpAQCAtNDMsNyArNDMsNyBAQCBTZXNzaW9uJiBTZXNzaW9uOjpkZWZhdWx0
U2Vzc2lvbigpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHN0YXRp
YyBTZXNzaW9uKiBkZWZhdWx0U2Vzc2lvbiA9IG5ldyBTZXNzaW9uKGZhbHNlLCBXZWJLaXQ6OlNl
c3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgU2Vzc2lvbiogZGVm
YXVsdFNlc3Npb24gPSBuZXcgU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSk7CiAgICAgcmV0dXJuICpkZWZhdWx0U2Vzc2lvbjsKIH0KIApAQCAtNTEsMTkgKzUx
LDE3IEBAIFNlc3Npb24mIFNlc3Npb246OmxlZ2FjeVByaXZhdGVTZXNzaW9uKCkKIHsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgc3RhdGljIFNlc3Npb24qIGxlZ2FjeVBy
aXZhdGVTZXNzaW9uID0gbmV3IFNlc3Npb24odHJ1ZSwgV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6
bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7CisgICAgc3RhdGljIFNlc3Npb24qIGxlZ2FjeVByaXZh
dGVTZXNzaW9uID0gbmV3IFNlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEKCkpOwogICAgIHJldHVybiAqbGVnYWN5UHJpdmF0ZVNlc3Npb247CiB9CiAKIFNl
c3Npb246OlNlc3Npb24oYm9vbCBpc0VwaGVtZXJhbCkKLSAgICA6IG1faXNFcGhlbWVyYWwoaXNF
cGhlbWVyYWwpCi0gICAgLCBtX3Nlc3Npb25JRChnZW5lcmF0ZUlEKGlzRXBoZW1lcmFsKSkKKyAg
ICA6IG1fc2Vzc2lvbklEKGdlbmVyYXRlSUQoaXNFcGhlbWVyYWwpKQogewogfQogCi1TZXNzaW9u
OjpTZXNzaW9uKGJvb2wgaXNFcGhlbWVyYWwsIHVpbnQ2NF90IHNlc3Npb25JRCkKLSAgICA6IG1f
aXNFcGhlbWVyYWwoaXNFcGhlbWVyYWwpCi0gICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCitT
ZXNzaW9uOjpTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgOiBtX3Nl
c3Npb25JRChzZXNzaW9uSUQpCiB7CiB9CiAKQEAgLTc1LDEwICs3MywxMCBAQCBQYXNzUmVmUHRy
PFNlc3Npb24+IFNlc3Npb246OmNyZWF0ZShib29sIGlzRXBoZW1lcmFsKQogCiBib29sIFNlc3Np
b246OmlzRXBoZW1lcmFsKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9pc0VwaGVtZXJhbDsKKyAg
ICByZXR1cm4gbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKTsKIH0KIAotdWludDY0X3QgU2Vzc2lv
bjo6Z2V0SUQoKSBjb25zdAorV2ViQ29yZTo6U2Vzc2lvbklEIFNlc3Npb246OmdldElEKCkgY29u
c3QKIHsKICAgICByZXR1cm4gbV9zZXNzaW9uSUQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SVNlc3Npb24uaAppbmRleCBiZDYwNGIyLi5mZmM1YjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUElTZXNzaW9uLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgQVBJU2Vzc2lvbl9oCiAK
ICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
IAogbmFtZXNwYWNlIEFQSSB7CkBAIC0zOSwxNCArMzksMTMgQEAgcHVibGljOgogICAgIHN0YXRp
YyBTZXNzaW9uJiBkZWZhdWx0U2Vzc2lvbigpOwogICAgIHN0YXRpYyBTZXNzaW9uJiBsZWdhY3lQ
cml2YXRlU2Vzc2lvbigpOwogICAgIGJvb2wgaXNFcGhlbWVyYWwoKSBjb25zdDsKLSAgICB1aW50
NjRfdCBnZXRJRCgpIGNvbnN0OworICAgIFdlYkNvcmU6OlNlc3Npb25JRCBnZXRJRCgpIGNvbnN0
OwogICAgIHZpcnR1YWwgflNlc3Npb24oKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTZXNz
aW9uKGJvb2wgaXNFcGhlbWVyYWwpOwotICAgIFNlc3Npb24oYm9vbCBpc0VwaGVtZXJhbCwgdWlu
dDY0X3Qgc2Vzc2lvbklEKTsKLSAgICBib29sIG1faXNFcGhlbWVyYWw7Ci0gICAgdWludDY0X3Qg
bV9zZXNzaW9uSUQ7CisgICAgZXhwbGljaXQgU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOwor
ICAgIFdlYkNvcmU6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IDM0NTM2NDgu
LmE1MDhlNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTMz
LDcgKzMzLDYgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTXV0YWJsZURpY3Rp
b25hcnkuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSAiU2Vzc2lv
blRyYWNrZXIuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgogI2luY2x1ZGUgIlRleHRD
aGVja2VyLmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0UHJpdmF0ZS5oIgpAQCAtNjMsNiArNjIsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dp
bmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAg
LTQ4NiwxNiArNDg2LDE2IEBAIHZvaWQgV2ViQ29udGV4dDo6c2V0QW55UGFnZUdyb3VwTWlnaHRI
YXZlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIHByaXZhdGVCcm93CiAjaWYgRU5BQkxFKE5F
VFdPUktfUFJPQ0VTUykKICAgICBpZiAodXNlc05ldHdvcmtQcm9jZXNzKCkgJiYgbmV0d29ya1By
b2Nlc3MoKSkgewogICAgICAgICBpZiAocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAgICAgICAg
ICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpFbnN1
cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vz
c2lvbklEKSwgMCk7CisgICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSksIDApOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJv
eVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQpLCAwKTsKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSksIDApOwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEVE
KE5FVFdPUktfUFJPQ0VTUykKIAogICAgIGlmIChwcml2YXRlQnJvd3NpbmdFbmFibGVkKQotICAg
ICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVuc3VyZVByaXZh
dGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQp
KTsKKyAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1
cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25J
RCgpKSk7CiAgICAgZWxzZQotICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6Oldl
YlByb2Nlc3M6OkRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEKSk7CisgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNz
YWdlczo6V2ViUHJvY2Vzczo6RGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklE
OjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKIH0KIAogdm9pZCAoKnNfaW52YWxpZE1lc3Nh
Z2VDYWxsYmFjaykoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUpOwpAQCAtNjI1LDcgKzYyNSw3IEBA
IFdlYlByb2Nlc3NQcm94eSYgV2ViQ29udGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2VzcygpCiAjZW5k
aWYKIAogICAgIGlmIChXZWJQcmVmZXJlbmNlczo6YW55UGFnZXNBcmVVc2luZ1ByaXZhdGVCcm93
c2luZygpKQotICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1
cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vz
c2lvbklEKSwgMCk7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6
OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vz
c2lvbklEKCkpLCAwKTsKIAogICAgIG1fcHJvY2Vzc2VzLmFwcGVuZChwcm9jZXNzKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKaW5kZXggODZkZDJkOC4uMjA1NGQ0ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCkBAIC00NCw2ICs0NCw3IEBACiAjaW5j
bHVkZSAiV2ViRG93bmxvYWRDbGllbnQuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTMwNiw3ICszMDcsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIHZvaWQgd2lsbFN0YXJ0VXNpbmdQcml2YXRlQnJvd3NpbmcoKTsKICAgICBzdGF0
aWMgdm9pZCB3aWxsU3RvcFVzaW5nUHJpdmF0ZUJyb3dzaW5nKCk7CiAKLSAgICBzdGF0aWMgYm9v
bCBpc0VwaGVtZXJhbFNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgYm9v
bCBpc0VwaGVtZXJhbFNlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKIAogI2lmIFVTRShTT1VQ
KQogICAgIHZvaWQgc2V0SWdub3JlVExTRXJyb3JzKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGM5MjRjOTcuLjZhNTExOTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTMzNyw3ICszMzcsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRTZXNzaW9uKEFQSTo6U2Vzc2lvbiYpOwogCiAgICAgdWludDY0X3QgcGFnZUlE
KCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSUQ7IH0KLSAgICB1aW50NjRfdCBzZXNzaW9uSUQoKSBj
b25zdCB7IHJldHVybiBtX3Nlc3Npb24tPmdldElEKCk7IH0KKyAgICBXZWJDb3JlOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uLT5nZXRJRCgpOyB9CiAKICAg
ICBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZS5n
ZXQoKTsgfQogICAgIFdlYkZyYW1lUHJveHkqIGZvY3VzZWRGcmFtZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZm9jdXNlZEZyYW1lLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDFlZjk4
YzMuLjkxODFhMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC02Nyw2ICs2Nyw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlQb2xpY3kuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3Mu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmg+CiAKQEAgLTMwOCw5
ICszMDksOSBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVk
KFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGJvbwogICAgIC8vIEZJWE1FIChOZXR3b3Jr
UHJvY2Vzcyk6IFRoaXMgdGVzdC1vbmx5IGZ1bmN0aW9uIGRvZXNuJ3Qgd29yayB3aXRoIE5ldHdv
cmtQcm9jZXNzLCA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTI3
ND4uCiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVTRShTT1VQKQog
ICAgIGlmIChlbmFibGVkKQotICAgICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1
cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vz
c2lvbklEKTsKKyAgICAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CiAg
ICAgZWxzZQotICAgICAgICBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24oU2Vzc2lvblRy
YWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAgICAgICBTZXNzaW9uVHJhY2tlcjo6
ZGVzdHJveVNlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwogI2Vu
ZGlmCiAgICAgY29uc3QgSGFzaFNldDxQYWdlKj4mIHBhZ2VzID0gUGFnZUdyb3VwOjpwYWdlR3Jv
dXAocGFnZUdyb3VwLT5pZGVudGlmaWVyKCkpLT5wYWdlcygpOwogICAgIGZvciAoSGFzaFNldDxQ
YWdlKj46Oml0ZXJhdG9yIGl0ZXIgPSBwYWdlcy5iZWdpbigpOyBpdGVyICE9IHBhZ2VzLmVuZCgp
OyArK2l0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCmluZGV4IGVhYmQ2NTQuLmE1ZmNm
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9SZWZlcnJlclBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TdWJyZXNvdXJjZUxvYWRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KQEAgLTExOCw3ICsxMTksNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVk
dWxlcjo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlciwgQ2FjaAog
ICAgIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIGxvYWRQYXJh
bWV0ZXJzLndlYlBhZ2VJRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5wYWdlSUQoKSA6IDA7CiAgICAg
bG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQo
KSA6IDA7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2Ut
PnNlc3Npb25JRCgpIDogU2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQ7CisgICAgbG9h
ZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDog
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMucmVxdWVz
dCA9IHJlc291cmNlTG9hZGVyLT5yZXF1ZXN0KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMucHJpb3Jp
dHkgPSBwcmlvcml0eTsKICAgICBsb2FkUGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kg
PSBjb250ZW50U25pZmZpbmdQb2xpY3k7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHAKaW5kZXggM2U3MDdjNy4uMDRmYjE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29r
aWVKYXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklE
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdG9yYWdlTmFtZXNwYWNlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TdWJmcmFtZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CkBAIC0yNjMs
NyArMjY0LDcgQEAgdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmxvYWRSZXNvdXJjZVN5bmNo
cm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQKICAgICBsb2FkUGFyYW1ldGVycy5p
ZGVudGlmaWVyID0gcmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKICAgICBsb2FkUGFyYW1ldGVycy53
ZWJQYWdlSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+cGFnZUlEKCkgOiAwOwogICAgIGxvYWRQYXJh
bWV0ZXJzLndlYkZyYW1lSUQgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAwOwot
ICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9u
SUQoKSA6IFNlc3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEOworICAgIGxvYWRQYXJhbWV0
ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1
ZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLnByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlI
aWdoZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IFNuaWZm
Q29udGVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApp
bmRleCA4NjI5ZmE4Li5kZWYyMDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSFRUUENvb2tpZUFj
Y2VwdFBvbGljeS5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4K
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQwLDcgKzQxLDcgQEAgcHVibGljOgogICAgIH0K
IAogICAgIC8vIEZJWE1FOiByZW1vdmUgcGxhdGZvcm0tc3BlY2lmaWMgY29kZSBhbmQgdXNlIFNl
c3Npb25UcmFja2VyCi0gICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bih1aW50NjRfdCBzZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKIAogICAgIHN0YXRpYyB2b2lkIHNldENv
b2tpZUFjY2VwdFBvbGljeUZvckFsbENvbnRleHRzKEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCAz
YzUyNTE2Li4yNmJmZmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQubW0KQEAgLTQyLDkgKzQyLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogICAgIAotdm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKK3ZvaWQg
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihT
ZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIEFTU0VSVChTZXNzaW9uVHJhY2tlcjo6aXNFcGhl
bWVyYWxJRChzZXNzaW9uSUQpKTsKKyAgICBBU1NFUlQoc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkp
OwogCiAgICAgaWYgKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAg
IHJldHVybjsKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKICAgICBl
bHNlCiAgICAgICAgIGJhc2UgPSBTZXNzaW9uVHJhY2tlcjo6Z2V0SWRlbnRpZmllckJhc2UoKTsK
IAotICAgIFNlc3Npb25UcmFja2VyOjpzZXRTZXNzaW9uKHNlc3Npb25JRCwgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKGJhc2UgKyAnLicgKyBTdHJp
bmc6Om51bWJlcihzZXNzaW9uSUQpKSk7CisgICAgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24o
c2Vzc2lvbklELCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24oYmFzZSArICcuJyArIFN0cmluZzo6bnVtYmVyKHNlc3Npb25JRC5zZXNzaW9uSUQoKSkp
KTsKIH0KIAogdm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzZXRDb29raWVBY2NlcHRQ
b2xpY3lGb3JBbGxDb250ZXh0cyhIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKQEAgLTEw
MSwxMCArMTAxLDcgQEAgUmVzb3VyY2VFcnJvciBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpi
bG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXEKIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24oKSBjb25zdAog
ewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBpZiAoZnJhbWUoKSkKLSAg
ICAgICAgcmV0dXJuICpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbih3ZWJGcmFtZUxvYWRlckNsaWVu
dCgpLT53ZWJGcmFtZSgpLT5wYWdlKCktPnNlc3Npb25JRCgpKTsKLSAgICByZXR1cm4gTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKKyAgICByZXR1cm4gKlNl
c3Npb25UcmFja2VyOjpzZXNzaW9uKGZyYW1lKCkgPyBmcmFtZSgpLT5wYWdlKCktPnNlc3Npb25J
RCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogfQogCiBXZWJGcmFtZUxvYWRl
ckNsaWVudCogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6d2ViRnJhbWVMb2FkZXJDbGllbnQo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
Y3BwCmluZGV4IDRkMTNkYzMuLjc3NzM3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJT
ZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViUGFn
ZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZXR0aW5ncy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCkBAIC0zNywxNCAr
MzgsMTQgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci12b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQordm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIGlmIChTZXNzaW9uVHJhY2tlcjo6c2Vz
c2lvbihzZXNzaW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBTZXNzaW9uVHJhY2tlcjo6
c2V0U2Vzc2lvbihzZXNzaW9uSUQsIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbihTdHJpbmc6Om51bWJlcihzZXNzaW9uSUQpKSk7CisgICAgU2Vzc2lv
blRyYWNrZXI6OnNldFNlc3Npb24oc2Vzc2lvbklELCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNy
ZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU3RyaW5nOjpudW1iZXIoc2Vzc2lvbklELnNlc3Np
b25JRCgpKSkpOwogfQogCiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0KFdlYkZyYW1lKiBmcmFtZSkKQEAgLTU1LDcgKzU2LDcgQEAgV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChXZWJGcmFtZSogZnJh
bWUpCiBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0
b3JhZ2VTZXNzaW9uKCkgY29uc3QKIHsKICAgICBpZiAoZnJhbWUoKSAmJiBmcmFtZSgpLT5zZXR0
aW5ncygpLnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuICpTZXNzaW9u
VHJhY2tlcjo6c2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7
CisgICAgICAgIHJldHVybiAqU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oU2Vzc2lvbklEOjpsZWdh
Y3lQcml2YXRlU2Vzc2lvbklEKCkpOwogCiAgICAgcmV0dXJuIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCAyNjMwNjFhMC4uOTM0MTBiMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0yOSw2ICsyOSw3
IEBACiAjZGVmaW5lIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHRfaAogCiAjaW5jbHVkZSA8V2Vi
Q29yZS9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9u
SUQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQyLDcgKzQzLDcgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJh
bWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKHVpbnQ2NF90IHNlc3Npb25JRCk7CisgICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOwogCiAgICAgV2ViRnJhbWVMb2FkZXJD
bGllbnQqIHdlYkZyYW1lTG9hZGVyQ2xpZW50KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA1ZmUzMDM5Li5kZWE5ZDc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0x
MzMsNiArMTMzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYWRvd1Jvb3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgpAQCAtMjI2LDcgKzIyNyw2IEBA
IFBhc3NSZWZQdHI8V2ViUGFnZT4gV2ViUGFnZTo6Y3JlYXRlKHVpbnQ2NF90IHBhZ2VJRCwgY29u
c3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1lCiAKIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFn
ZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgIDog
bV9wYWdlSUQocGFnZUlEKQotICAgICwgbV9zZXNzaW9uSUQoMCkKICAgICAsIG1fdmlld1NpemUo
cGFyYW1ldGVycy52aWV3U2l6ZSkKICAgICAsIG1faGFzU2VlblBsdWdpbihmYWxzZSkKICAgICAs
IG1fdXNlRml4ZWRMYXlvdXQoZmFsc2UpCkBAIC0yMTA2LDIzICsyMTA2LDIzIEBAIHZvaWQgV2Vi
UGFnZTo6c2V0TGF5ZXJIb3N0aW5nTW9kZSh1bnNpZ25lZCBsYXllckhvc3RpbmdNb2RlKQogICAg
ICAgICBwbHVnaW5WaWV3LT5zZXRMYXllckhvc3RpbmdNb2RlKG1fbGF5ZXJIb3N0aW5nTW9kZSk7
CiB9CiAKLXVpbnQ2NF90IFdlYlBhZ2U6OnNlc3Npb25JRCgpIGNvbnN0CitTZXNzaW9uSUQgV2Vi
UGFnZTo6c2Vzc2lvbklEKCkgY29uc3QKIHsKLSAgICBpZiAobV9zZXNzaW9uSUQpCi0gICAgICAg
IHJldHVybiBtX3Nlc3Npb25JRDsKKyAgICBpZiAobV9wYWdlLT5pc1Nlc3Npb25JRFNldCgpKQor
ICAgICAgICByZXR1cm4gbV9wYWdlLT5zZXNzaW9uSUQoKTsKIAotICAgIHJldHVybiBtX3BhZ2Ut
PnNldHRpbmdzKCkucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpID8gU2Vzc2lvblRyYWNrZXI6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQgOiBTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNlc3Npb25JRDsK
KyAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSA/
IFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0
U2Vzc2lvbklEKCk7CiB9CiAKIGJvb2wgV2ViUGFnZTo6aXNVc2luZ0VwaGVtZXJhbFNlc3Npb24o
KSBjb25zdAogewotICAgIHJldHVybiBTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNz
aW9uSUQoKSk7CisgICAgcmV0dXJuIHNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCk7CiB9CiAKLXZv
aWQgV2ViUGFnZTo6c2V0U2Vzc2lvbklEKHVpbnQ2NF90IHNlc3Npb25JRCkKK3ZvaWQgV2ViUGFn
ZTo6c2V0U2Vzc2lvbklEKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgbV9zZXNzaW9uSUQg
PSBzZXNzaW9uSUQ7Ci0gICAgaWYgKFNlc3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKHNlc3Np
b25JRCkpCisgICAgbV9wYWdlLT5zZXRTZXNzaW9uSUQoc2Vzc2lvbklEKTsKKyAgICBpZiAoc2Vz
c2lvbklELmlzRXBoZW1lcmFsKCkpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmVuc3Vy
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oc2Vzc2lvbklEKTsKIH0KIApAQCAtMjQyOCw4ICsyNDI4
LDggQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNl
c1N0b3JlJiBzdG9yZSkKICAgICBzZXR0aW5ncy5zZXRMb2NhbFN0b3JhZ2VFbmFibGVkKHN0b3Jl
LmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bG9jYWxTdG9yYWdlRW5hYmxl
ZEtleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0WFNTQXVkaXRvckVuYWJsZWQoc3RvcmUuZ2V0Qm9v
bFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp4c3NBdWRpdG9yRW5hYmxlZEtleSgpKSk7
CiAgICAgc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmZyYW1lRmxhdHRlbmluZ0VuYWJsZWRLZXkoKSkp
OwotICAgIGlmIChtX3Nlc3Npb25JRCkKLSAgICAgICAgc2V0dGluZ3Muc2V0UHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChtX3Nlc3Npb25JRCkpOwor
ICAgIGlmIChtX3BhZ2UtPmlzU2Vzc2lvbklEU2V0KCkpCisgICAgICAgIHNldHRpbmdzLnNldFBy
aXZhdGVCcm93c2luZ0VuYWJsZWQobV9wYWdlLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpKTsK
ICAgICBlbHNlCiAgICAgICAgIHNldHRpbmdzLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoc3Rv
cmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpwcml2YXRlQnJvd3NpbmdF
bmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHN0
b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZEtleSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAppbmRleCA4MmQ5MjY0Li5iMTE1ZTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE4Niw5ICsxODYsOSBAQCBwdWJsaWM6CiAKICAgICBX
ZWJDb3JlOjpQYWdlKiBjb3JlUGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQog
ICAgIHVpbnQ2NF90IHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEOyB9Ci0gICAgdWlu
dDY0X3Qgc2Vzc2lvbklEKCkgY29uc3Q7CisgICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25J
RCgpIGNvbnN0OwogICAgIGJvb2wgaXNVc2luZ0VwaGVtZXJhbFNlc3Npb24oKSBjb25zdDsKLSAg
ICB2b2lkIHNldFNlc3Npb25JRCh1aW50NjRfdCk7CisgICAgdm9pZCBzZXRTZXNzaW9uSUQoV2Vi
Q29yZTo6U2Vzc2lvbklEKTsKIAogICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRT
aXplJik7CiAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdmlld1NpemU7IH0KQEAgLTkwOCw3ICs5MDgsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVw
b3J0VXNlZEZlYXR1cmVzKCk7CiAKICAgICB1aW50NjRfdCBtX3BhZ2VJRDsKLSAgICB1aW50NjRf
dCBtX3Nlc3Npb25JRDsKIAogICAgIE93blB0cjxXZWJDb3JlOjpQYWdlPiBtX3BhZ2U7CiAgICAg
UmVmUHRyPFdlYkZyYW1lPiBtX21haW5GcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNDJmYjk0Ni4uNTdm
YTRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KQEAgLTI1LDcgKzI1LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBM
ZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0Vmlld1N0YXRlKHVuc2lnbmVkIHZpZXdTdGF0ZSwgYm9v
bCB3YW50c0RpZFVwZGF0ZVZpZXdTdGF0ZSkKICAgICBTZXRMYXllckhvc3RpbmdNb2RlKHVuc2ln
bmVkIGxheWVySG9zdGluZ01vZGUpCiAKLSAgICBTZXRTZXNzaW9uSUQodWludDY0X3Qgc2Vzc2lv
bklEKQorICAgIFNldFNlc3Npb25JRChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogCiAg
ICAgU2V0RHJhd3NCYWNrZ3JvdW5kKGJvb2wgZHJhd3NCYWNrZ3JvdW5kKQogICAgIFNldERyYXdz
VHJhbnNwYXJlbnRCYWNrZ3JvdW5kKGJvb2wgZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAzZDA3M2JhLi5hNjVj
OGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ2NSwx
NCArNDY1LDE0IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZnVsbEtleWJvYXJkQWNjZXNzTW9kZUNoYW5n
ZWQoYm9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKQogICAgIG1fZnVsbEtleWJvYXJkQWNj
ZXNzRW5hYmxlZCA9IGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQ7CiB9CiAKLXZvaWQgV2ViUHJv
Y2Vzczo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCit2
b2lkIFdlYlByb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNl
c3Npb25JRCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKENGTkVUV09SSykgfHwgVVNF
KFNPVVApCiAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbihzZXNzaW9uSUQpOwogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6ZGVz
dHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQordm9pZCBXZWJQ
cm9jZXNzOjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklE
KQogewogI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBVU0UoQ0ZORVRXT1JLKSB8fCBVU0UoU09VUCkK
ICAgICBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24oc2Vzc2lvbklEKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggMmIxY2FlZC4uYWU1MmM5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNs
dWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtUYWJsZS5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25J
RC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC0xNjMsOCArMTY0LDggQEAgcHVibGljOgog
CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKHVpbnQzMl90KTsKIAotICAgIHZvaWQgZW5zdXJlUHJp
dmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpOwotICAgIHZvaWQgZGVzdHJv
eVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKKyAgICB2b2lkIGVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICB2b2lk
IGRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CiAKICAg
ICB2b2lkIHBhZ2VEaWRFbnRlcldpbmRvdyh1aW50NjRfdCBwYWdlSUQpOwogICAgIHZvaWQgcGFn
ZVdpbGxMZWF2ZVdpbmRvdyh1aW50NjRfdCBwYWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDkyZTcwODAuLjZmYWIyZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4KQEAgLTU1LDggKzU1LDggQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZl
ciB7CiAjZW5kaWYKIAogICAgIC8vIExlZ2FjeSBwcml2YXRlIGJyb3dzaW5nIHNlc3Npb24gaXMg
cGVyIHByb2Nlc3MuIEluZGl2aWR1YWwgcGFnZXMgb3IgcGFnZSBncm91cHMgbWF5IHVzZSB0aGUg
cHJpdmF0ZSBzZXNzaW9uIG9yIHRoZSBkZWZhdWx0IG9uZSBhcyBhcHByb3ByaWF0ZS4KLSAgICBF
bnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKLSAgICBEZXN0
cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCisgICAgRW5zdXJl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAg
IERlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9u
SUQpCiAKICAgICAjIFBsdWctaW5zLgogICAgIERpZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhh
c2godWludDMyX3QgaGFzaCwgZG91YmxlIGV4cGlyYXRpb25UaW1lKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225086</attachid>
            <date>2014-02-24 12:55:03 -0800</date>
            <delta_ts>2014-02-25 14:20:05 -0800</delta_ts>
            <desc>remove isSessionIDSet()</desc>
            <filename>sessionidclass.10.diff</filename>
            <type>text/plain</type>
            <size>71166</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3M2ZjNWY0Li4zOGU2OThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMTQtMDItMjQgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IENyZWF0ZSBTZXNzaW9uSUQgdmFsdWUtc3R5bGUgY2xhc3MgZm9yIHNlc3Npb24gSURzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MTQxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOiBBZGQg
U2Vzc2lvbklEIG1lbWJlci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6c2Vzc2lvbklEKTogUmV0cmlldmUgc2Vzc2lvbklEIG9yIHVzZSBz
ZXR0aW5ncyBpZiBub3Qgc2V0LgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZTo6c2V0U2Vzc2lvbklEKToKKyAgICAgICAgKiBwYWdlL1Nlc3Npb25JRC5oOiBT
ZXNzaW9uIElEIGNsYXNzIGNvbnNpc3Rpbmcgc29sZWx5IG9mIGl0cyB1aW50NjRfdCBzZXNzaW9u
IElELgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbklEOjpTZXNzaW9uSUQpOgorICAgICAgICAo
V2ViQ29yZTo6U2Vzc2lvbklEOjppc1ZhbGlkKTogTm90IGVtcHR5LgorICAgICAgICAoV2ViQ29y
ZTo6U2Vzc2lvbklEOjppc0VwaGVtZXJhbCk6CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ6
OnNlc3Npb25JRCk6CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ6Om9wZXJhdG9yPT0pOiBW
YWx1ZS1iYXNlZCBlcXVhbGl0eS4KKyAgICAgICAgKFdlYkNvcmU6OlNlc3Npb25JRDo6b3BlcmF0
b3IhPSk6CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKTogWmVy
byB2YWx1ZSBhbHNvIHVzZWQgZm9yIEhhc2hUcmFpdHMgZW1wdHlWYWx1ZS4KKyAgICAgICAgKFdl
YkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCk6CisgICAgICAgIChXZWJDb3JlOjpT
ZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOgorICAgICAgICAqIHBhZ2UvU2Vzc2lv
bklESGFzaC5oOgorICAgICAgICAoV1RGOjpTZXNzaW9uSURIYXNoOjpoYXNoKTogSnVzdCB0aGUg
Y2FzdGVkIHNlc3Npb24gSUQgKGxvdyBvcmRlciBieXRlcykKKyAgICAgICAgKFdURjo6U2Vzc2lv
bklESGFzaDo6ZXF1YWwpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlNlc3Np
b25JRD46OmVtcHR5VmFsdWUpOiBFcXVhbCB0byBlbXB0eVNlc3Npb25JRC4KKyAgICAgICAgKFdU
Rjo6SGFzaFRyYWl0czxXZWJDb3JlOjpTZXNzaW9uSUQ+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUp
OiAtMSB2YWx1ZS4KKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpTZXNzaW9uSUQ+
Ojppc0RlbGV0ZWRWYWx1ZSk6CisKIDIwMTQtMDItMjQgIFJlbmF0YSBIb2RvdmFuICA8cmhvZG92
YW4udS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KICAgICAgICAgCiAgICAgICAgIEdldCBy
aWQgb2YgdGhlIHVudXNlZCAnaW1tZWRpYXRlJyBwYXJhbWV0ZXJzIGZyb20gcmVwYWludCByZWxh
dGVkIGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMTdhNjBjYS4u
Njc2NWFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00MTgxLDYgKzQxODEs
NyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlP
cmlnaW5IYXNoLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlQb2xpY3kuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5LmggXAorCVNvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2Vzc2lvbklELmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2Uv
U3BhdGlhbE5hdmlnYXRpb24uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYTVjNTIxYS4u
NWQ2ZmExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEwMDEsNiArMTAwMSw3IEBAIF9fWk43
V2ViQ29yZTRQYWdlMTFQYWdlQ2xpZW50c0MxRXYKIF9fWk43V2ViQ29yZTRQYWdlMTFQYWdlQ2xp
ZW50c0QxRXYKIF9fWk43V2ViQ29yZTRQYWdlMTJzZXRHcm91cE5hbWVFUktOM1dURjZTdHJpbmdF
CiBfX1pON1dlYkNvcmU0UGFnZTEyc2V0SXNWaXNpYmxlRWIKK19fWk43V2ViQ29yZTRQYWdlMTJz
ZXRTZXNzaW9uSURFTlNfOVNlc3Npb25JREUKIF9fWk43V2ViQ29yZTRQYWdlMTJzZXRWaWV3U3Rh
dGVFagogX19aTjdXZWJDb3JlNFBhZ2UxM3JhbmdlT2ZTdHJpbmdFUktOM1dURjZTdHJpbmdFUE5T
XzVSYW5nZUVqCiBfX1pON1dlYkNvcmU0UGFnZTEzc2V0SXNJbldpbmRvd0ViCkBAIC0xNzQwLDYg
KzE3NDEsNyBAQCBfX1pOSzdXZWJDb3JlNFBhZ2UxN3ZpZXdwb3J0QXJndW1lbnRzRXYKIF9fWk5L
N1dlYkNvcmU0UGFnZTM0aW5Mb3dRdWFsaXR5SW1hZ2VJbnRlcnBvbGF0aW9uTW9kZUV2CiBfX1pO
SzdXZWJDb3JlNFBhZ2U5Z3JvdXBOYW1lRXYKIF9fWk5LN1dlYkNvcmU0UGFnZTlwYWdlQ291bnRF
dgorX19aTks3V2ViQ29yZTRQYWdlOXNlc3Npb25JREV2CiBfX1pOSzdXZWJDb3JlNUNvbG9yMTBz
ZXJpYWxpemVkRXYKIF9fWk5LN1dlYkNvcmU1Q29sb3I3Z2V0UkdCQUVSZFMxX1MxX1MxXwogX19a
Tks3V2ViQ29yZTVDb2xvcjdnZXRSR0JBRVJmUzFfUzFfUzFfCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODJmYzE3Zi4uMWY0OTE5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMjIxNSw2ICsyMjE1LDcgQEAKIAkJNzU0MTVENUExMjlBQjJEMjAwM0FENjY5IC8q
IEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3NTQxNUQ1NDEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1
dFJlc3VsdExpc3QuaCAqLzsgfTsKIAkJNzU1M0NGRTgxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVs
aW5lUmVjb3JkRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzU1M0NGRTYxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9y
eS5oICovOyB9OwogCQk3NTUzQ0ZFOTEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwICov
OyB9OworCQk3NTZCMkNFMTE4QjcxMDE2MDBGRUNGQUEgLyogU2Vzc2lvbklELmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTZCMkNFMDE4QjcxMDE2MDBG
RUNGQUEgLyogU2Vzc2lvbklELmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNzU3OEY5MEMxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkwOTEx
RERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuaCAqLzsgfTsKIAkJNzU3OEY5MEQxMURERjI2
OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkwQTExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNo
SW5wdXRDbGllbnQuaCAqLzsgfTsKIAkJNzU3OEY5MjAxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVj
aElucHV0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc1NzhGOTFFMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmgg
Ki87IH07CkBAIC0yMjI1LDYgKzIyMjYsNyBAQAogCQk3NTc5M0VEMzBEMENFODVCMDA3RkMwQUMg
LyogRE9NTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NTc5M0VEMDBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50Lmgg
Ki87IH07CiAJCTc1NzkzRUQ0MEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VEMTBE
MENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50Lm1tICovOyB9OwogCQk3NTc5M0VENTBE
MENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRUQyMEQwQ0U4NUIwMDdGQzBB
QyAvKiBET01NZXNzYWdlRXZlbnRJbnRlcm5hbC5oICovOyB9OworCQk3NURDQzdCODE4QjgxQzg4
MDBBNTcxMjggLyogU2Vzc2lvbklESGFzaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzVEQ0M3QjcxOEI4MUM4ODAwQTU3MTI4IC8qIFNlc3Npb25JREhh
c2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
NjMzQTcyNjEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRNYXBwaW5nLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjMzQTcyNDEzRDhCMzNB
MDA4NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRNYXBwaW5nLmggKi87IH07CiAJCTc2MzNBNzI3MTNE
OEIzM0EwMDg1MDFCNiAvKiBMb2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZhdWx0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2MzNBNzI1MTNEOEIzM0Ew
MDg1MDFCNiAvKiBMb2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZhdWx0LmNwcCAqLzsgfTsKIAkJNzY4
MDhCNTAxNTlEQURGQTAwMkI1MjMzIC8qIEpTSFRNTERpYWxvZ0VsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2ODA4QjRFMTU5REFERkEwMDJC
NTIzMyAvKiBKU0hUTUxEaWFsb2dFbGVtZW50LmggKi87IH07CkBAIC05MTUzLDYgKzkxNTUsNyBA
QAogCQk3NTQxNUQ1NDEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTcGVlY2hJbnB1dFJlc3VsdExp
c3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU1M0NGRTYxMDhGNDczRjAwRUEy
ODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBUaW1lbGluZVJlY29yZEZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzU1M0NGRTcxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaW1lbGluZVJlY29yZEZh
Y3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTZCMkNFMDE4QjcxMDE2
MDBGRUNGQUEgLyogU2Vzc2lvbklELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNlc3Npb25JRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc4RjkwOTExRERG
MjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU3BlZWNoSW5wdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU3OEY5
MEExMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTc1NzhGOTFFMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3Rl
bmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0TGlzdGVu
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkxNjUsNiArOTE2OCw3IEBACiAJ
CTc1NzkzRUQxMEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnQubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NTWVzc2FnZUV2ZW50Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc5M0VEMjBEMENFODVCMDA3RkMwQUMgLyogRE9N
TWVzc2FnZUV2ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERPTU1lc3NhZ2VFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTc1ODk3OEVCMTI3MDkwRDYwMDc2RDVBOSAvKiBTcGVlY2hJbnB1dFJlc3VsdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hJbnB1dFJlc3VsdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3NURDQzdCNzE4QjgxQzg4MDBBNTcxMjggLyogU2Vzc2lvbklE
SGFzaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXNzaW9uSURIYXNoLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2MzNBNzI0MTNEOEIzM0EwMDg1MDFCNiAv
KiBMb2NhbGVUb1NjcmlwdE1hcHBpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTG9jYWxlVG9TY3JpcHRNYXBwaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTc2MzNBNzI1MTNEOEIzM0EwMDg1MDFCNiAvKiBMb2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZhdWx0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvY2FsZVRvU2NyaXB0
TWFwcGluZ0RlZmF1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NjgwOEI0
RTE1OURBREZBMDAyQjUyMzMgLyogSlNIVE1MRGlhbG9nRWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxEaWFsb2dFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNjE4NCw2ICsxNjE4OCw4IEBACiAJCQkJQkNEMEUwRjkwRTk3MkMz
NTAwMjY1REVBIC8qIFNlY3VyaXR5T3JpZ2luSGFzaC5oICovLAogCQkJCTk3NEQyREEyMTQ2QTUz
NUQwMEQ1MUY4QiAvKiBTZWN1cml0eVBvbGljeS5jcHAgKi8sCiAJCQkJOTc0RDJEQTMxNDZBNTM1
RDAwRDUxRjhCIC8qIFNlY3VyaXR5UG9saWN5LmggKi8sCisJCQkJNzU2QjJDRTAxOEI3MTAxNjAw
RkVDRkFBIC8qIFNlc3Npb25JRC5oICovLAorCQkJCTc1RENDN0I3MThCODFDODgwMEE1NzEyOCAv
KiBTZXNzaW9uSURIYXNoLmggKi8sCiAJCQkJMTRDOUE1RTkwQjNEMTA1RjAwNUEwMjMyIC8qIFNl
dHRpbmdzLmNwcCAqLywKIAkJCQlGNTg3ODYzQTAyREUzQTE0MDFFQTQxMjIgLyogU2V0dGluZ3Mu
aCAqLywKIAkJCQlCQzU5REVGODE2OURFREMzMDAxNkFDMzQgLyogU2V0dGluZ3MuaW4gKi8sCkBA
IC0yMjcyOCw2ICsyMjczNCw3IEBACiAJCQkJRkQzMTYwMUQxMkIwMjY3NjAwQzFBMzU5IC8qIEF1
ZGlvUGFyYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzU5MTkwMTM4REIyMjAwMEUxRUJFQyAv
KiBBdWRpb1BhcmFtVGltZWxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDIwMTJCMDI2
NzYwMEMxQTM1OSAvKiBBdWRpb1Byb2Nlc3NpbmdFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NzVEQ0M3QjgxOEI4MUM4ODAwQTU3MTI4IC8qIFNlc3Npb25JREhhc2guaCBpbiBIZWFkZXJzICov
LAogCQkJCUZEMzE2MDg0MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1Byb2Nlc3Nvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRkQzMTYwODYxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvUmVzYW1wbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA4ODEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9S
ZXNhbXBsZXJLZXJuZWwuaCBpbiBIZWFkZXJzICovLApAQCAtMjM5MzIsNiArMjM5MzksNyBAQAog
CQkJCTQxRjA2MjE0MEY1RjE5MjYwMEEwN0VBQyAvKiBJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTI0NTg3QzEwMjFFQUY0MDAwQTAwQUEgLyogSW5zcGVj
dG9yRE9NQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzRDRDNDc5MTJFMDc2NjMwMDNEQTE1
MCAvKiBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTZC
MkNFMTE4QjcxMDE2MDBGRUNGQUEgLyogU2Vzc2lvbklELmggaW4gSGVhZGVycyAqLywKIAkJCQk3
QTc0RUNCQjEwMTgzOUE2MDBCRjkzOUUgLyogSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQkyMjc3Nzc2MDEzNDVERUE5MDA4RUE0NTUgLyogSW5zcGVjdG9yRm9y
d2FyZGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjM0NEM3MTQxMTI1QjgyQzAwRjI2RUVFIC8q
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CmluZGV4IDIxNzk1YWIuLmVjZTQ3MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTgxLDYgKzE4
MSw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogI2VuZGlmCiAgICAg
LCBtX2xhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZXNDb3VudCgwKSAvLyBOT1RFOiBPbmx5
IGNhbGxlZCBmcm9tIEludGVybmFscyBmb3IgU3BhdGlhbCBOYXZpZ2F0aW9uIHRlc3RpbmcuCiAg
ICAgLCBtX2ZyYW1lc0hhbmRsaW5nQmVmb3JlVW5sb2FkRXZlbnQoMCkKKyAgICAsIG1fc2Vzc2lv
bklEKFNlc3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQoKSkKIHsKICAgICBBU1NFUlQobV9lZGl0b3JD
bGllbnQpOwogCkBAIC0xNDkzLDYgKzE0OTQsMjMgQEAgdm9pZCBQYWdlOjpzZXRVc2VyQ29udGVu
dENvbnRyb2xsZXIoVXNlckNvbnRlbnRDb250cm9sbGVyKiB1c2VyQ29udGVudENvbnRyb2xsZXIK
ICAgICAgICAgbV91c2VyQ29udGVudENvbnRyb2xsZXItPmFkZFBhZ2UoKnRoaXMpOwogfQogCitT
ZXNzaW9uSUQgUGFnZTo6c2Vzc2lvbklEKCkgY29uc3QKK3sKKyAgICBpZiAobV9zZXNzaW9uSUQu
aXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gbV9zZXNzaW9uSUQ7CisKKyAgICBpZiAoc2V0dGlu
Z3MoKS5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKTsKKworICAgIHJldHVybiBTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKTsKK30KKwordm9pZCBQYWdlOjpzZXRTZXNzaW9uSUQoU2Vzc2lvbklEIHNl
c3Npb25JRCkKK3sKKyAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7CisgICAgbV9zZXNz
aW9uSUQgPSBzZXNzaW9uSUQ7Cit9CisKIFBhZ2U6OlBhZ2VDbGllbnRzOjpQYWdlQ2xpZW50cygp
CiAgICAgOiBhbHRlcm5hdGl2ZVRleHRDbGllbnQobnVsbHB0cikKICAgICAsIGNocm9tZUNsaWVu
dChudWxscHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBhNzE1ZmVmLi5jMjMxZmRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlBhZ2luYXRpb24uaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlJlZ2lvbi5oIgorI2luY2x1ZGUgIlNlc3Np
b25JRC5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCiAjaW5jbHVkZSAiVmlld1N0YXRl
LmgiCiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKQEAgLTM5Nyw2ICszOTgsOCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHNldFVzZXJDb250ZW50Q29udHJvbGxlcihVc2VyQ29udGVudENv
bnRyb2xsZXIqKTsKICAgICBVc2VyQ29udGVudENvbnRyb2xsZXIqIHVzZXJDb250ZW50Q29udHJv
bGxlcigpIHsgcmV0dXJuIG1fdXNlckNvbnRlbnRDb250cm9sbGVyLmdldCgpOyB9CisgICAgU2Vz
c2lvbklEIHNlc3Npb25JRCgpIGNvbnN0OworICAgIHZvaWQgc2V0U2Vzc2lvbklEKFNlc3Npb25J
RCk7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBpbml0R3JvdXAoKTsKQEAgLTUzNyw2ICs1NDAsOCBA
QCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fZnJhbWVzSGFuZGxpbmdCZWZvcmVVbmxvYWRFdmVu
dDsKIAogICAgIFJlZlB0cjxVc2VyQ29udGVudENvbnRyb2xsZXI+IG1fdXNlckNvbnRlbnRDb250
cm9sbGVyOworCisgICAgU2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKIAogaW5saW5lIFBhZ2VH
cm91cCYgUGFnZTo6Z3JvdXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXNz
aW9uSUQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklELmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNWVmZDc0YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2Vzc2lvbklELmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgU2Vzc2lvbklEX2gKKyNkZWZpbmUgU2Vzc2lvbklEX2gKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBTZXNzaW9uSUQgeworcHVibGljOgorICAgIFNlc3Npb25JRCgpCisgICAg
ICAgIDogU2Vzc2lvbklEKGVtcHR5U2Vzc2lvbklEKCkpIHsgfQorICAgIGV4cGxpY2l0IFNlc3Np
b25JRCh1aW50NjRfdCBzZXNzaW9uSUQpCisgICAgICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklE
KSB7IH0KKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiAqdGhpcyAhPSBlbXB0eVNl
c3Npb25JRCgpOyB9CisgICAgYm9vbCBpc0VwaGVtZXJhbCgpIGNvbnN0IHsgcmV0dXJuICp0aGlz
ICE9IGRlZmF1bHRTZXNzaW9uSUQoKTsgfQorICAgIHVpbnQ2NF90IHNlc3Npb25JRCgpIGNvbnN0
IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CisgICAgYm9vbCBvcGVyYXRvcj09KFNlc3Npb25JRCBz
ZXNzaW9uSUQpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEID09IHNlc3Npb25JRC5tX3Nlc3Np
b25JRDsgfQorICAgIGJvb2wgb3BlcmF0b3IhPShTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdCB7
IHJldHVybiBtX3Nlc3Npb25JRCAhPSBzZXNzaW9uSUQubV9zZXNzaW9uSUQ7IH0KKworICAgIHN0
YXRpYyBTZXNzaW9uSUQgZW1wdHlTZXNzaW9uSUQoKSB7IHJldHVybiBTZXNzaW9uSUQoMCk7IH0K
KyAgICBzdGF0aWMgU2Vzc2lvbklEIGRlZmF1bHRTZXNzaW9uSUQoKSB7IHJldHVybiBTZXNzaW9u
SUQoMSk7IH0KKyAgICBzdGF0aWMgU2Vzc2lvbklEIGxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSB7
IHJldHVybiBTZXNzaW9uSUQoMik7IH0KK3ByaXZhdGU6CisgICAgdWludDY0X3QgbV9zZXNzaW9u
SUQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTZXNzaW9uSURf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSURIYXNoLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JREhhc2guaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5kYTk4NGFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXNzaW9uSURIYXNoLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
U2Vzc2lvbklESGFzaF9oCisjZGVmaW5lIFNlc3Npb25JREhhc2hfaAorCisjaW5jbHVkZSAiU2Vz
c2lvbklELmgiCisjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYv
SGFzaFRyYWl0cy5oPgorCituYW1lc3BhY2UgV1RGIHsKKworLy8gVGhlIGVtcHR5IHZhbHVlIGlz
IGVtcHR5U2Vzc2lvbklEKCksIHRoZSBkZWxldGVkIHZhbHVlIGlzICgtMSkKK3N0cnVjdCBTZXNz
aW9uSURIYXNoIHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBXZWJDb3JlOjpTZXNz
aW9uSUQmIHApIHsgcmV0dXJuICh1bnNpZ25lZClwLnNlc3Npb25JRCgpOyB9CisgICAgc3RhdGlj
IGJvb2wgZXF1YWwoY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJiBhLCBjb25zdCBXZWJDb3JlOjpT
ZXNzaW9uSUQmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQorICAgIHN0YXRpYyBjb25zdCBib29sIHNh
ZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKK307Cit0ZW1wbGF0ZTw+IHN0cnVj
dCBIYXNoVHJhaXRzPFdlYkNvcmU6OlNlc3Npb25JRD4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJD
b3JlOjpTZXNzaW9uSUQ+IHsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9u
ID0gZmFsc2U7CisgICAgc3RhdGljIFdlYkNvcmU6OlNlc3Npb25JRCBlbXB0eVZhbHVlKCkgeyBy
ZXR1cm4gV2ViQ29yZTo6U2Vzc2lvbklEOjplbXB0eVNlc3Npb25JRCgpOyB9CisKKyAgICBzdGF0
aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2ViQ29yZTo6U2Vzc2lvbklEJiBzbG90KSB7
IHNsb3QgPSBXZWJDb3JlOjpTZXNzaW9uSUQoLTIpOyB9CisgICAgc3RhdGljIGJvb2wgaXNEZWxl
dGVkVmFsdWUoY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJiBzbG90KSB7IHJldHVybiBzbG90ID09
IFdlYkNvcmU6OlNlc3Npb25JRCgtMik7IH0KK307Cit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0
SGFzaDxXZWJDb3JlOjpTZXNzaW9uSUQ+IHsKKyAgICB0eXBlZGVmIFNlc3Npb25JREhhc2ggSGFz
aDsKK307CisKK30KKworI2VuZGlmIC8vIFNlc3Npb25JREhhc2hfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGZi
NWNhNDIuLjJjMDk3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NSBAQAorMjAxNC0wMi0yNCAg
TWFydGluIEhvY2sgIDxtaG9ja0BhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIFNlc3Npb25J
RCB2YWx1ZS1zdHlsZSBjbGFzcyBmb3Igc2Vzc2lvbiBJRHMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkxNDEKKworICAgICAgICBUaGUgYmVsb3cg
Y2hhbmdlcyBkZWFsIHNvbGVseSB3aXRoIG1lY2hhbmljYWwgY2hhbmdlcyB0byB1c2UgdGhlIFNl
c3Npb25JRCB2YWx1ZSBjbGFzcyBpbnN0ZWFkIG9mIHVpbnQ2NF90IGV4Y2VwdCB3aGVyZSBub3Rl
ZC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6c3RhcnREb3dubG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNFbmFi
bGVkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldFJhd0Nvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4
dFNvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5z
dXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgICogU2hhcmVkL05ldHdvcmsvTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMpOgor
ICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmg6
CisgICAgICAgICogU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
c3RhdGljU2Vzc2lvbk1hcCk6CisgICAgICAgIChXZWJLaXQ6OnN0b3JhZ2VTZXNzaW9uVG9JRCk6
CisgICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpzZXNzaW9uTWFwKToKKyAgICAgICAg
KFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OnNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpTZXNz
aW9uVHJhY2tlcjo6c2Vzc2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6
OnNldFNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNl
c3Npb24pOgorICAgICAgICAqIFNoYXJlZC9TZXNzaW9uVHJhY2tlci5oOiBNb3ZlIGNvZGUgdG8g
U2Vzc2lvbklEIGNsYXNzLgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwOiBBZGQgZW5jb2RlIGFuZCBkZWNvZGUgZm9yIFNlc3Npb25JRC4KKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxTZXNzaW9uSUQ+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPFNlc3Npb25JRD46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0ubW06
CisgICAgICAgIChXZWJLaXQ6OndlYktpdENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhlYWRlckZp
ZWxkc0ZvclVSTCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSVNlc3Npb24uY3BwOgorICAgICAg
ICAoQVBJOjpnZW5lcmF0ZUlEKToKKyAgICAgICAgKEFQSTo6U2Vzc2lvbjo6ZGVmYXVsdFNlc3Np
b24pOgorICAgICAgICAoQVBJOjpTZXNzaW9uOjpsZWdhY3lQcml2YXRlU2Vzc2lvbik6CisgICAg
ICAgIChBUEk6OlNlc3Npb246OlNlc3Npb24pOgorICAgICAgICAoQVBJOjpTZXNzaW9uOjppc0Vw
aGVtZXJhbCk6CisgICAgICAgIChBUEk6OlNlc3Npb246OmdldElEKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmNyZWF0
ZU5ld1dlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnNlc3Npb25JRCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpzZXRQ
cml2YXRlQnJvd3NpbmdFbmFibGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGxhdGZvcm1TdHJhdGVnaWVzOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZh
dGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6IE1vdmUgc2Vzc2lvbklEIHRvIFBhZ2UgdG8gYWxsb3cg
V2ViQ29yZSB0byBhY2Nlc3MgaXQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXNzaW9uSUQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjppc1VzaW5nRXBoZW1lcmFsU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnNldFNlc3Npb25JRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVBy
ZWZlcmVuY2VzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluOgorCiAyMDE0LTAyLTI0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbmFtZSBQYWdlQ2xpZW50SW1wbElPUzo6bV92aWV3IHRvIG1fY29udGVu
dFZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCAxZmVlNDk4Li5kY2M2MmU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3Qu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29w
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMTQ4LDkgKzE0OSw5IEBAIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldFNlcmlhbExvYWRpbmdFbmFibGVkKGJv
b2wgZW5hYmxlZCkKICAgICBtX3NlcmlhbExvYWRpbmdFbmFibGVkID0gZW5hYmxlZDsKIH0KIAot
c3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24odWludDY0X3Qgc2Vz
c2lvbklEKQorc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24oU2Vz
c2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBpZiAoU2Vzc2lvblRyYWNrZXI6OmlzRXBoZW1lcmFs
SUQoc2Vzc2lvbklEKSkgeworICAgIGlmIChzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkgewogICAg
ICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHByaXZhdGVTZXNzaW9uID0gU2Vzc2lvblRyYWNr
ZXI6OnNlc3Npb24oc2Vzc2lvbklEKTsKICAgICAgICAgaWYgKHByaXZhdGVTZXNzaW9uKQogICAg
ICAgICAgICAgcmV0dXJuICpwcml2YXRlU2Vzc2lvbjsKQEAgLTE2MSw3ICsxNjIsNyBAQCBzdGF0
aWMgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzdG9yYWdlU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9u
SUQpCiAgICAgcmV0dXJuIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNz
aW9uKCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnN0YXJ0RG93
bmxvYWQodWludDY0X3Qgc2Vzc2lvbklELCB1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpzdGFydERvd25sb2FkKFNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGRvd25sb2FkSUQs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICAvLyBGSVhNRTogRG8gc29t
ZXRoaW5nIHdpdGggdGhlIHNlc3Npb24gSUQuCiAgICAgTmV0d29ya1Byb2Nlc3M6OnNoYXJlZCgp
LmRvd25sb2FkTWFuYWdlcigpLnN0YXJ0RG93bmxvYWQoZG93bmxvYWRJRCwgcmVxdWVzdCk7CkBA
IC0xODMsMzIgKzE4NCwzMiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
b252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQodWludDY0X3QgbQogICAgIGxvYWRlci0+
ZGlkQ29udmVydEhhbmRsZVRvRG93bmxvYWQoKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTSh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIFN0cmluZyYgcmVzdWx0KQordm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTShTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBTdHJpbmcmIHJlc3Vs
dCkKIHsKICAgICByZXN1bHQgPSBXZWJDb3JlOjpjb29raWVzRm9yRE9NKHN0b3JhZ2VTZXNzaW9u
KHNlc3Npb25JRCksIGZpcnN0UGFydHksIHVybCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKHVpbnQ2NF90IHNlc3Npb25JRCwgY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVT
dHJpbmcpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJv
bURPTShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykKIHsKICAgICBXZWJDb3JlOjpzZXRD
b29raWVzRnJvbURPTShzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5LCB1cmws
IGNvb2tpZVN0cmluZyk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvb2tpZXNFbmFibGVkKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBVUkwmIHVybCwgYm9vbCYgcmVzdWx0KQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6Y29va2llc0VuYWJsZWQoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgYm9vbCYgcmVzdWx0KQogewogICAgIHJlc3Vs
dCA9IFdlYkNvcmU6OmNvb2tpZXNFbmFibGVkKHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCksIGZp
cnN0UGFydHksIHVybCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgU3RyaW5nJiByZXN1bHQpCit2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYg
dXJsLCBTdHJpbmcmIHJlc3VsdCkKIHsKICAgICByZXN1bHQgPSBXZWJDb3JlOjpjb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRWYWx1ZShzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5
LCB1cmwpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdD
b29raWVzKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBV
UkwmIHVybCwgVmVjdG9yPENvb2tpZT4mIHJlc3VsdCkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmdldFJhd0Nvb2tpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgVmVjdG9yPENvb2tpZT4mIHJlc3VsdCkKIHsK
ICAgICBXZWJDb3JlOjpnZXRSYXdDb29raWVzKHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCksIGZp
cnN0UGFydHksIHVybCwgcmVzdWx0KTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGVsZXRlQ29va2llKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmws
IGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmRlbGV0ZUNvb2tpZShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiBjb29raWVOYW1lKQogewogICAgIFdlYkNvcmU6OmRlbGV0ZUNvb2tpZShz
dG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpLCB1cmwsIGNvb2tpZU5hbWUpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKaW5kZXggMzk4MWZhNS4uZmE5OTc5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oCkBAIC03NiwxNSArNzYsMTUgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNyb3NzT3Jp
Z2luUmVkaXJlY3RSZWNlaXZlZChSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpVUkwmIHJlZGlyZWN0VVJMKTsKICAgICB2b2lkIHNlcnZlUGVuZGluZ1JlcXVlc3RzKHVpbnQz
Ml90IHJlc291cmNlTG9hZFByaW9yaXR5KTsKICAgICB2b2lkIHNldFNlcmlhbExvYWRpbmdFbmFi
bGVkKGJvb2wpOwotICAgIHZvaWQgc3RhcnREb3dubG9hZCh1aW50NjRfdCBzZXNzaW9uSUQsIHVp
bnQ2NF90IGRvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworICAg
IHZvaWQgc3RhcnREb3dubG9hZChXZWJDb3JlOjpTZXNzaW9uSUQsIHVpbnQ2NF90IGRvd25sb2Fk
SUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogICAgIHZvaWQgY29udmVydE1h
aW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlm
aWVyLCB1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAKLSAgICB2b2lkIGNvb2tpZXNG
b3JET00odWludDY0X3Qgc2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFdlYkNvcmU6OlVSTCYsIFN0cmluZyYgcmVzdWx0KTsKLSAgICB2b2lkIHNldENvb2tp
ZXNGcm9tRE9NKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGNvb2tp
ZXNFbmFibGVkKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBib29sJiByZXN1bHQpOwotICAgIHZvaWQgY29va2ll
UmVxdWVzdEhlYWRlckZpZWxkVmFsdWUodWludDY0X3Qgc2Vzc2lvbklELCBjb25zdCBXZWJDb3Jl
OjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFN0cmluZyYgcmVzdWx0KTsK
LSAgICB2b2lkIGdldFJhd0Nvb2tpZXModWludDY0X3Qgc2Vzc2lvbklELCBjb25zdCBXZWJDb3Jl
OjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+Jik7Ci0gICAgdm9pZCBkZWxldGVDb29raWUodWludDY0X3Qgc2Vzc2lvbklELCBjb25z
dCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpOworICAgIHZvaWQgY29v
a2llc0ZvckRPTShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgU3RyaW5nJiByZXN1bHQpOworICAgIHZvaWQgc2V0
Q29va2llc0Zyb21ET00oV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQg
Y29va2llc0VuYWJsZWQoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGJvb2wmIHJlc3VsdCk7CisgICAgdm9pZCBj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdl
YkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgU3RyaW5nJiByZXN1
bHQpOworICAgIHZvaWQgZ2V0UmF3Q29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdl
YkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgVmVjdG9yPFdlYkNv
cmU6OkNvb2tpZT4mKTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZShXZWJDb3JlOjpTZXNzaW9uSUQs
IGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSk7CiAKICAgICB2
b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBCbG9iUmVnaXN0
cmF0aW9uRGF0YSYpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRnJvbVVSTChjb25zdCBXZWJD
b3JlOjpVUkwmLCBjb25zdCBXZWJDb3JlOjpVUkwmIHNyY1VSTCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGE0NTk3ZmMuLmFmMWU4NWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0zMiwxNSArMzIs
MTUgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVj
ZWl2ZXIgewogICAgIAogICAgIFNldFNlcmlhbExvYWRpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkg
LT4gKCkKIAotICAgIFN0YXJ0RG93bmxvYWQodWludDY0X3Qgc2Vzc2lvbklELCB1aW50NjRfdCBk
b3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCkKKyAgICBTdGFydERv
d25sb2FkKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGRvd25sb2FkSUQs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0KQogICAgIENvbnZlcnRNYWluUmVzb3Vy
Y2VMb2FkVG9Eb3dubG9hZCh1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWlu
dDY0X3QgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCiAKLSAgICBDb29raWVzRm9yRE9NKHVpbnQ2
NF90IHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIFdlYkNvcmU6OlVSTCB1cmwp
IC0+IChTdHJpbmcgcmVzdWx0KQotICAgIFNldENvb2tpZXNGcm9tRE9NKHVpbnQ2NF90IHNlc3Np
b25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIFdlYkNvcmU6OlVSTCB1cmwsIFN0cmluZyBj
b29raWVTdHJpbmcpCi0gICAgQ29va2llc0VuYWJsZWQodWludDY0X3Qgc2Vzc2lvbklELCBXZWJD
b3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKGJvb2wgZW5hYmxlZCkK
LSAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSh1aW50NjRfdCBzZXNzaW9uSUQsIFdl
YkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoU3RyaW5nIHJlc3Vs
dCkKLSAgICBHZXRSYXdDb29raWVzKHVpbnQ2NF90IHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZp
cnN0UGFydHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBj
b29raWVzKQotICAgIERlbGV0ZUNvb2tpZSh1aW50NjRfdCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVS
TCB1cmwsIFN0cmluZyBjb29raWVOYW1lKQorICAgIENvb2tpZXNGb3JET00oV2ViQ29yZTo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIFdlYkNvcmU6OlVSTCB1
cmwpIC0+IChTdHJpbmcgcmVzdWx0KQorICAgIFNldENvb2tpZXNGcm9tRE9NKFdlYkNvcmU6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwg
dXJsLCBTdHJpbmcgY29va2llU3RyaW5nKQorICAgIENvb2tpZXNFbmFibGVkKFdlYkNvcmU6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwg
dXJsKSAtPiAoYm9vbCBlbmFibGVkKQorICAgIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVl
KFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBX
ZWJDb3JlOjpVUkwgdXJsKSAtPiAoU3RyaW5nIHJlc3VsdCkKKyAgICBHZXRSYXdDb29raWVzKFdl
YkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJD
b3JlOjpVUkwgdXJsKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykKKyAgICBE
ZWxldGVDb29raWUoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIHVy
bCwgU3RyaW5nIGNvb2tpZU5hbWUpCiAKICAgICBSZWdpc3RlckJsb2JVUkwoV2ViQ29yZTo6VVJM
IHVybCwgV2ViS2l0OjpCbG9iUmVnaXN0cmF0aW9uRGF0YSBkYXRhKQogICAgIFJlZ2lzdGVyQmxv
YlVSTEZyb21VUkwoV2ViQ29yZTo6VVJMIHVybCwgV2ViQ29yZTo6VVJMIHNyY1VSTCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA4
YTEyYWI3Li41NWFiMGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiV2ViQ29va2ll
TWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApA
QCAtMTYzLDcgKzE2NCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3Jr
UHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1lCiAKICAgICAvLyBGSVhN
RTogaW5zdGVhZCBvZiBoYW5kbGluZyB0aGlzIGhlcmUsIGEgbWVzc2FnZSBzaG91bGQgYmUgc2Vu
dCBsYXRlciAoc2NhbGVzIHRvIG11bHRpcGxlIHNlc3Npb25zKQogICAgIGlmIChwYXJhbWV0ZXJz
LnByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAgICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2
YXRlU2Vzc2lvbklEKTsKKyAgICAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkp
OwogCiAgICAgaWYgKHBhcmFtZXRlcnMuc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uKQog
ICAgICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24o
KTsKQEAgLTIxNCwxMiArMjE1LDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNyZWF0ZU5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKICNlbmRpZgogfQogCi12b2lkIE5ldHdvcmtQcm9j
ZXNzOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKK3Zv
aWQgTmV0d29ya1Byb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklE
IHNlc3Npb25JRCkKIHsKICAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbihzZXNzaW9uSUQpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpk
ZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCit2b2lkIE5l
dHdvcmtQcm9jZXNzOjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vz
c2lvbklEKQogewogICAgIFNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbihzZXNzaW9uSUQp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
aW5kZXggYjUwZjA4YS4uMWJlNmY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRG93bmxv
YWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCiAjaW5jbHVkZSAi
TmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lv
bklELmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KIApAQCAtMTA0LDggKzEwNSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNl
aXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURl
Y29kZXImKTsKICAgICB2b2lkIGluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZvaWQgY3JlYXRlTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoKTsKLSAgICB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24odWludDY0X3Qgc2Vzc2lvbklEKTsKLSAgICB2b2lkIGRlc3Ryb3lQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCk7CisgICAgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBkZXN0cm95UHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOwogICAgIHZvaWQgZG93bmxvYWRSZXF1
ZXN0KHVpbnQ2NF90IGRvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYp
OwogICAgIHZvaWQgY2FuY2VsRG93bmxvYWQodWludDY0X3QgZG93bmxvYWRJRCk7CiAgICAgdm9p
ZCBzZXRDYWNoZU1vZGVsKHVpbnQzMl90KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggMjdjNThiNC4u
NzQ5OTQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTM0LDggKzM0LDggQEAgbWVzc2FnZXMgLT4g
TmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXNDaGFuZ2VkKFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlcykKICNlbmRpZgogCi0gICAgRW5zdXJl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCi0gICAgRGVzdHJveVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQorICAgIEVuc3VyZVByaXZh
dGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICBEZXN0
cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQog
CiAgICAgRG93bmxvYWRSZXF1ZXN0KHVpbnQ2NF90IGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KQogICAgIENhbmNlbERvd25sb2FkKHVpbnQ2NF90IGRvd25sb2Fk
SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5oCmluZGV4IDI4YmNjOWIuLjY5YzU5ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCkBAIC0zNSw2
ICszNSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZUNsaWVudC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIApAQCAt
MTczLDcgKzE3NCw3IEBAIHByaXZhdGU6CiAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBtX2lk
ZW50aWZpZXI7CiAgICAgdWludDY0X3QgbV93ZWJQYWdlSUQ7CiAgICAgdWludDY0X3QgbV93ZWJG
cmFtZUlEOwotICAgIHVpbnQ2NF90IG1fc2Vzc2lvbklEOworICAgIFdlYkNvcmU6OlNlc3Npb25J
RCBtX3Nlc3Npb25JRDsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0Owog
ICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5IG1fcHJpb3JpdHk7CiAgICAgV2ViQ29y
ZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IG1fY29udGVudFNuaWZmaW5nUG9saWN5OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250
ZXh0LmgKaW5kZXggZTk1OGJiMy4uZjVjY2NjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0yOCwyNCAr
MjgsMjUgQEAKICNkZWZpbmUgUmVtb3RlTmV0d29ya2luZ0NvbnRleHRfaAogCiAjaW5jbHVkZSA8
V2ViQ29yZS9OZXR3b3JraW5nQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklE
Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVOZXR3b3JraW5nQ29udGV4
dCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZSh1aW50
NjRfdCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW1vdGVOZXR3b3JraW5nQ29udGV4dD4gY3Jl
YXRlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQoc2Vzc2lvbklELCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KSk7CiAgICAgfQogICAgIHZpcnR1YWwgflJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0KCk7CiAKICAgICAvLyBGSVhNRTogUmVtb3ZlIHBsYXRmb3JtLXNwZWNpZmlj
IGNvZGUgYW5kIHVzZSBTZXNzaW9uVHJhY2tlci4KLSAgICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCk7CisgICAgc3RhdGljIHZvaWQg
ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOwogCiAgICAg
dmlydHVhbCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3Q7IH0KIAogcHJpdmF0ZToKLSAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dCh1aW50
NjRfdCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCkKKyAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCiAg
ICAgICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICAgICAsIG1fc2hvdWxkQ2xlYXJS
ZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdChzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0KQogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtNjYsNyArNjcsNyBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAot
ICAgIHVpbnQ2NF90IG1fc2Vzc2lvbklEOworICAgIFdlYkNvcmU6OlNlc3Npb25JRCBtX3Nlc3Np
b25JRDsKICAgICBib29sIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dDsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4IGEw
YThmNjUuLjJhN2M1OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTc3LDE1ICs3Nywx
NSBAQCBSZXNvdXJjZUVycm9yIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZQogICAgIHJldHVybiBXZWJLaXQ6OmJsb2NrZWRF
cnJvcihyZXF1ZXN0KTsKIH0KIAotdm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCit2b2lkIFJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBz
ZXNzaW9uSUQpCiB7Ci0gICAgQVNTRVJUKFNlc3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKHNl
c3Npb25JRCkpOworICAgIEFTU0VSVChzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSk7CiAKICAgICBp
ZiAoU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgQVNTRVJUKCFTZXNzaW9uVHJhY2tlcjo6Z2V0SWRlbnRpZmllckJhc2UoKS5pc051bGwo
KSk7Ci0gICAgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24oc2Vzc2lvbklELCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6
OmdldElkZW50aWZpZXJCYXNlKCkgKyAnLicgKyBTdHJpbmc6Om51bWJlcihzZXNzaW9uSUQpKSk7
CisgICAgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24oc2Vzc2lvbklELCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6Omdl
dElkZW50aWZpZXJCYXNlKCkgKyAnLicgKyBTdHJpbmc6Om51bWJlcihzZXNzaW9uSUQuc2Vzc2lv
bklEKCkpKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcAppbmRl
eCBkN2NmODZlLi4zYmU5ZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4dFNvdXAuY3Bw
CkBAIC00Niw3ICs0Niw3IEBAIGJvb2wgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmlzVmFsaWQo
KSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKK3Zv
aWQgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMuY3BwCmluZGV4IDU0Y2FiZjQuLmQ3ZDkyZTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycy5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnM6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKCkKICAgICA6IGlkZW50
aWZpZXIoMCkKICAgICAsIHdlYlBhZ2VJRCgwKQogICAgICwgd2ViRnJhbWVJRCgwKQotICAgICwg
c2Vzc2lvbklEKDApCisgICAgLCBzZXNzaW9uSUQoU2Vzc2lvbklEOjplbXB0eVNlc3Npb25JRCgp
KQogICAgICwgcHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93KQogICAgICwgY29u
dGVudFNuaWZmaW5nUG9saWN5KFNuaWZmQ29udGVudCkKICAgICAsIGFsbG93U3RvcmVkQ3JlZGVu
dGlhbHMoRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmgKaW5kZXggY2JmNDUzMS4uOTE2MTU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogCiAj
aWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIApAQCAtNTIsNyArNTMsNyBAQCBwdWJsaWM6CiAg
ICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyOwogICAgIHVpbnQ2NF90IHdlYlBh
Z2VJRDsKICAgICB1aW50NjRfdCB3ZWJGcmFtZUlEOwotICAgIHVpbnQ2NF90IHNlc3Npb25JRDsK
KyAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEOwogICAgIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCByZXF1ZXN0OwogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IHJlcXVl
c3RCb2R5U2FuZGJveEV4dGVuc2lvbnM7IC8vIENyZWF0ZWQgYXV0b21hdGljYWxseSBmb3IgdGhl
IHNlbmRlci4KICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgcmVzb3VyY2VTYW5kYm94RXh0
ZW5zaW9uOyAvLyBDcmVhdGVkIGF1dG9tYXRpY2FsbHkgZm9yIHRoZSBzZW5kZXIuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcAppbmRleCA2ZTRkNGZmLi5iZGNmZmI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAKQEAgLTMzLDIyICszMywx
OSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNv
bnN0IHVpbnQ2NF90IFNlc3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEOwotY29uc3QgdWlu
dDY0X3QgU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQ7Ci0KLXN0YXRpYyBI
YXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4m
IHN0YXRpY1Nlc3Npb25NYXAoKQorc3RhdGljIEhhc2hNYXA8U2Vzc2lvbklELCBzdGQ6OnVuaXF1
ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIHN0YXRpY1Nlc3Npb25NYXAoKQogewogICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
SGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+
PiBtYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8U2Vzc2lvbklELCBzdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4+IG1hcDsKICAgICByZXR1cm4gbWFw
LmdldCgpOwogfQogCi1zdGF0aWMgSGFzaE1hcDxjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24q
LCB1aW50NjRfdD4mIHN0b3JhZ2VTZXNzaW9uVG9JRCgpCitzdGF0aWMgSGFzaE1hcDxjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24qLCBTZXNzaW9uSUQ+JiBzdG9yYWdlU2Vzc2lvblRvSUQoKQog
ewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8SGFzaE1hcDxjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24qLCB1aW50NjRfdD4+IG1h
cDsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxjb25zdCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24qLCBTZXNzaW9uSUQ+PiBtYXA7CiAgICAgcmV0dXJuIG1hcC5nZXQoKTsKIH0KIApA
QCAtNjAsNyArNTcsNyBAQCBzdGF0aWMgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSgpCiAgICAgcmV0
dXJuIGJhc2U7CiB9CiAKLWNvbnN0IEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxO
ZXR3b3JrU3RvcmFnZVNlc3Npb24+PiYgU2Vzc2lvblRyYWNrZXI6OnNlc3Npb25NYXAoKQorY29u
c3QgSGFzaE1hcDxTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Np
b24+PiYgU2Vzc2lvblRyYWNrZXI6OnNlc3Npb25NYXAoKQogewogICAgIHJldHVybiBzdGF0aWNT
ZXNzaW9uTWFwKCk7CiB9CkBAIC03MCwyOCArNjcsMjggQEAgY29uc3QgU3RyaW5nJiBTZXNzaW9u
VHJhY2tlcjo6Z2V0SWRlbnRpZmllckJhc2UoKQogICAgIHJldHVybiBpZGVudGlmaWVyQmFzZSgp
OwogfQogCi1OZXR3b3JrU3RvcmFnZVNlc3Npb24qIFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHVp
bnQ2NF90IHNlc3Npb25JRCkKK05ldHdvcmtTdG9yYWdlU2Vzc2lvbiogU2Vzc2lvblRyYWNrZXI6
OnNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBpZiAoc2Vzc2lvbklEID09IGRl
ZmF1bHRTZXNzaW9uSUQpCisgICAgaWYgKHNlc3Npb25JRCA9PSBTZXNzaW9uSUQ6OmRlZmF1bHRT
ZXNzaW9uSUQoKSkKICAgICAgICAgcmV0dXJuICZOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1
bHRTdG9yYWdlU2Vzc2lvbigpOwogICAgIHJldHVybiBzdGF0aWNTZXNzaW9uTWFwKCkuZ2V0KHNl
c3Npb25JRCk7CiB9CiAKLXVpbnQ2NF90IFNlc3Npb25UcmFja2VyOjpzZXNzaW9uSUQoY29uc3Qg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKQorU2Vzc2lvbklEIFNlc3Npb25UcmFja2Vy
OjpzZXNzaW9uSUQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKQogewogICAg
IGlmICgmc2Vzc2lvbiA9PSAmTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNl
c3Npb24oKSkKLSAgICAgICAgcmV0dXJuIGRlZmF1bHRTZXNzaW9uSUQ7CisgICAgICAgIHJldHVy
biBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICByZXR1cm4gc3RvcmFnZVNlc3Np
b25Ub0lEKCkuZ2V0KCZzZXNzaW9uKTsKIH0KIAotdm9pZCBTZXNzaW9uVHJhY2tlcjo6c2V0U2Vz
c2lvbih1aW50NjRfdCBzZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNl
c3Npb24+IHNlc3Npb24pCit2b2lkIFNlc3Npb25UcmFja2VyOjpzZXRTZXNzaW9uKFNlc3Npb25J
RCBzZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+IHNlc3Np
b24pCiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRCAhPSBkZWZhdWx0U2Vzc2lvbklEKTsKKyAgICBB
U1NFUlQoc2Vzc2lvbklEICE9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKICAgICBz
dG9yYWdlU2Vzc2lvblRvSUQoKS5zZXQoc2Vzc2lvbi5nZXQoKSwgc2Vzc2lvbklEKTsKICAgICBz
dGF0aWNTZXNzaW9uTWFwKCkuc2V0KHNlc3Npb25JRCwgc3RkOjptb3ZlKHNlc3Npb24pKTsKIH0K
IAotdm9pZCBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklE
KQordm9pZCBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25J
RCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIGlmIChzdGF0aWNTZXNz
aW9uTWFwKCkuY29udGFpbnMoc2Vzc2lvbklEKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lv
blRyYWNrZXIuaAppbmRleCAyZWI4MWM5Li4wYjAzMDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
U2Vzc2lvblRyYWNrZXIuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBTZXNzaW9uVHJhY2tl
cl9oCiAKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvU2Vzc2lvbklESGFzaC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgpAQCAtMzYsMTYgKzM3LDEzIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgU2Vzc2lvblRy
YWNrZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNlc3Npb25UcmFja2VyKTsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgY29uc3QgdWludDY0X3QgZGVmYXVsdFNlc3Npb25JRCA9IDE7Ci0gICAg
c3RhdGljIGNvbnN0IHVpbnQ2NF90IGxlZ2FjeVByaXZhdGVTZXNzaW9uSUQgPSAyOwotICAgIHN0
YXRpYyBib29sIGlzRXBoZW1lcmFsSUQodWludDY0X3Qgc2Vzc2lvbklEKSB7IHJldHVybiBzZXNz
aW9uSUQgIT0gU2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQ7IH0KICAgICAvLyBGSVhN
RTogc2Vzc2lvbk1hcCgpJ3MgcmV0dXJuZWQgbWFwIGRvZXMgbm90IGluY2x1ZGUgZGVmYXVsdCBz
ZXNzaW9uLgotICAgIHN0YXRpYyBjb25zdCBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIHNlc3Npb25NYXAoKTsKKyAgICBz
dGF0aWMgY29uc3QgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+PiYgc2Vzc2lvbk1hcCgpOwogICAgIHN0YXRp
YyBjb25zdCBTdHJpbmcmIGdldElkZW50aWZpZXJCYXNlKCk7Ci0gICAgc3RhdGljIFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogc2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpOwotICAg
IHN0YXRpYyB1aW50NjRfdCBzZXNzaW9uSUQoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJik7Ci0gICAgc3RhdGljIHZvaWQgc2V0U2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQs
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+KTsKLSAgICBz
dGF0aWMgdm9pZCBkZXN0cm95U2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpOworICAgIHN0YXRp
YyBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHNlc3Npb24oV2ViQ29yZTo6U2Vzc2lv
bklEKTsKKyAgICBzdGF0aWMgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRChjb25zdCBXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRTZXNzaW9u
KFdlYkNvcmU6OlNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbj4pOworICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lTZXNzaW9uKFdlYkNvcmU6OlNl
c3Npb25JRCk7CiAgICAgc3RhdGljIHZvaWQgc2V0SWRlbnRpZmllckJhc2UoY29uc3QgU3RyaW5n
Jik7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCmluZGV4IDE3M2UzZDMuLjEzZWIxZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxp
bmdDb25zdHJhaW50cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4
dENoZWNrZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RyYW5zZm9ybWF0aW9uTWF0cml4
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KQEAgLTE4ODAsNiArMTg4MSwyMyBAQCBib29s
IEFyZ3VtZW50Q29kZXI8SURCT2JqZWN0U3RvcmVNZXRhZGF0YT46OmRlY29kZShBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIElEQgogCiAgICAgcmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYKKworI2Vu
ZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCit2b2lkIEFyZ3VtZW50Q29kZXI8U2Vz
c2lvbklEPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2Vzc2lvbklE
JiBzZXNzaW9uSUQpCit7CisgICAgZW5jb2RlciA8PCBzZXNzaW9uSUQuc2Vzc2lvbklEKCk7Cit9
CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxTZXNzaW9uSUQ+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBTZXNzaW9uSUQmIHNlc3Npb25JRCkKK3sKKyAgICB1aW50NjRfdCBzZXNzaW9u
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2Vzc2lvbikpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIHNlc3Npb25JRCA9IFNlc3Npb25JRChzZXNzaW9uKTsKKworICAgIHJldHVybiB0
cnVlOworfQogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBhNGUyNjRmLi5mNTlmZDMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC01NSw2ICs1NSw3
IEBAIGNsYXNzIFJlZ2lvbjsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZVJl
cXVlc3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworY2xhc3MgU2Vzc2lvbklEOwogY2xhc3Mg
U3RpY2t5UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwogY2xhc3MgVGV4dENoZWNraW5nUmVx
dWVzdERhdGE7CiBjbGFzcyBUcmFuc2Zvcm1hdGlvbk1hdHJpeDsKQEAgLTM5Nyw3ICszOTgsMTMg
QEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJREJPYmplY3RTdG9y
ZU1ldGFkYXRhPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OklEQk9iamVjdFN0b3JlTWV0YWRhdGEmKTsKICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVNZXRhZGF0YSYp
OwogfTsKLSNlbmRpZgorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK3Rl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2Vzc2lvbklEPiB7CisgICAg
c3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlNlc3Np
b25JRCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3Jl
OjpTZXNzaW9uSUQmKTsKK307CiAKIH0gLy8gbmFtZXNwYWNlIElQQwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbQppbmRleCBjNmQ3MDVmLi5mMDlm
ZjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VT
aGltLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0u
bW0KQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJDb29raWVTdG9yYWdlU2hpbUxpYnJhcnku
aCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9V
UkwuaD4KQEAgLTU4LDcgKzU4LDcgQEAgc3RhdGljIENGRGljdGlvbmFyeVJlZiB3ZWJLaXRDb29r
aWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwoQ0ZIVFRQQ28KIHsKICAgICBT
dHJpbmcgY29va2llczsKICAgICBVUkwgZmlyc3RQYXJ0eUZvckNvb2tpZXNVUkw7Ci0gICAgaWYg
KCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCkt
PnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2ll
UmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQs
IGZpcnN0UGFydHlGb3JDb29raWVzVVJMLCBpblJlcXVlc3RVUkwpLCBNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNGb3JET006OlJlcGx5KGNvb2tpZXMpLCAw
KSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNv
bm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSwgZmlyc3RQYXJ0eUZvckNvb2tpZXNVUkwsIGluUmVxdWVzdFVSTCksIE1lc3NhZ2Vz
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0ZvckRPTTo6UmVwbHkoY29v
a2llcyksIDApKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlmIChjb29raWVzLmlzTnVsbCgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uY3BwCmluZGV4IDA4ZDg0YWYuLjA0
ODAyZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHAKQEAgLTM0LDcg
KzM0LDcgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlSUQoYm9vbCBpc0VwaGVtZXJhbCkKIHsK
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgc3RhdGljIHVpbnQ2NF90IHVu
aXF1ZVNlc3Npb25JRCA9IFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQ7CisgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVNlc3Npb25JRCA9IFdlYkNvcmU6OlNl
c3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpLnNlc3Npb25JRCgpOwogICAgIEFTU0VS
VChpc0VwaGVtZXJhbCk7CiAgICAgcmV0dXJuICsrdW5pcXVlU2Vzc2lvbklEOwogfQpAQCAtNDMs
NyArNDMsNyBAQCBTZXNzaW9uJiBTZXNzaW9uOjpkZWZhdWx0U2Vzc2lvbigpCiB7CiAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHN0YXRpYyBTZXNzaW9uKiBkZWZhdWx0U2Vz
c2lvbiA9IG5ldyBTZXNzaW9uKGZhbHNlLCBXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpkZWZhdWx0
U2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgU2Vzc2lvbiogZGVmYXVsdFNlc3Npb24gPSBuZXcgU2Vz
c2lvbihXZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgcmV0dXJu
ICpkZWZhdWx0U2Vzc2lvbjsKIH0KIApAQCAtNTEsMTkgKzUxLDE3IEBAIFNlc3Npb24mIFNlc3Np
b246OmxlZ2FjeVByaXZhdGVTZXNzaW9uKCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOwogCi0gICAgc3RhdGljIFNlc3Npb24qIGxlZ2FjeVByaXZhdGVTZXNzaW9uID0gbmV3IFNl
c3Npb24odHJ1ZSwgV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25J
RCk7CisgICAgc3RhdGljIFNlc3Npb24qIGxlZ2FjeVByaXZhdGVTZXNzaW9uID0gbmV3IFNlc3Np
b24oV2ViQ29yZTo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwogICAgIHJl
dHVybiAqbGVnYWN5UHJpdmF0ZVNlc3Npb247CiB9CiAKIFNlc3Npb246OlNlc3Npb24oYm9vbCBp
c0VwaGVtZXJhbCkKLSAgICA6IG1faXNFcGhlbWVyYWwoaXNFcGhlbWVyYWwpCi0gICAgLCBtX3Nl
c3Npb25JRChnZW5lcmF0ZUlEKGlzRXBoZW1lcmFsKSkKKyAgICA6IG1fc2Vzc2lvbklEKGdlbmVy
YXRlSUQoaXNFcGhlbWVyYWwpKQogewogfQogCi1TZXNzaW9uOjpTZXNzaW9uKGJvb2wgaXNFcGhl
bWVyYWwsIHVpbnQ2NF90IHNlc3Npb25JRCkKLSAgICA6IG1faXNFcGhlbWVyYWwoaXNFcGhlbWVy
YWwpCi0gICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCitTZXNzaW9uOjpTZXNzaW9uKFdlYkNv
cmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiB7
CiB9CiAKQEAgLTc1LDEwICs3MywxMCBAQCBQYXNzUmVmUHRyPFNlc3Npb24+IFNlc3Npb246OmNy
ZWF0ZShib29sIGlzRXBoZW1lcmFsKQogCiBib29sIFNlc3Npb246OmlzRXBoZW1lcmFsKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gbV9pc0VwaGVtZXJhbDsKKyAgICByZXR1cm4gbV9zZXNzaW9uSUQu
aXNFcGhlbWVyYWwoKTsKIH0KIAotdWludDY0X3QgU2Vzc2lvbjo6Z2V0SUQoKSBjb25zdAorV2Vi
Q29yZTo6U2Vzc2lvbklEIFNlc3Npb246OmdldElEKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9z
ZXNzaW9uSUQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vz
c2lvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uaAppbmRleCBiZDYw
NGIyLi5mZmM1YjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vz
c2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmgKQEAgLTI3
LDcgKzI3LDcgQEAKICNkZWZpbmUgQVBJU2Vzc2lvbl9oCiAKICNpbmNsdWRlICJBUElPYmplY3Qu
aCIKLSNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lv
bklELmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNlIEFQSSB7CkBA
IC0zOSwxNCArMzksMTMgQEAgcHVibGljOgogICAgIHN0YXRpYyBTZXNzaW9uJiBkZWZhdWx0U2Vz
c2lvbigpOwogICAgIHN0YXRpYyBTZXNzaW9uJiBsZWdhY3lQcml2YXRlU2Vzc2lvbigpOwogICAg
IGJvb2wgaXNFcGhlbWVyYWwoKSBjb25zdDsKLSAgICB1aW50NjRfdCBnZXRJRCgpIGNvbnN0Owor
ICAgIFdlYkNvcmU6OlNlc3Npb25JRCBnZXRJRCgpIGNvbnN0OwogICAgIHZpcnR1YWwgflNlc3Np
b24oKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTZXNzaW9uKGJvb2wgaXNFcGhlbWVyYWwp
OwotICAgIFNlc3Npb24oYm9vbCBpc0VwaGVtZXJhbCwgdWludDY0X3Qgc2Vzc2lvbklEKTsKLSAg
ICBib29sIG1faXNFcGhlbWVyYWw7Ci0gICAgdWludDY0X3QgbV9zZXNzaW9uSUQ7CisgICAgZXhw
bGljaXQgU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIFdlYkNvcmU6OlNlc3Npb25J
RCBtX3Nlc3Npb25JRDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IDM0NTM2NDguLmE1MDhlNDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTXV0YWJsZURpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJT
YW5kYm94RXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRl
ICJTdGF0aXN0aWNzRGF0YS5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAi
V0tDb250ZXh0UHJpdmF0ZS5oIgpAQCAtNjMsNiArNjIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
TGlua0hhc2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAj
aW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1l
Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTQ4NiwxNiArNDg2LDE2IEBAIHZv
aWQgV2ViQ29udGV4dDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChib29sIHByaXZhdGVCcm93CiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBp
ZiAodXNlc05ldHdvcmtQcm9jZXNzKCkgJiYgbmV0d29ya1Byb2Nlc3MoKSkgewogICAgICAgICBp
ZiAocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCkt
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKSwgMCk7CisgICAgICAg
ICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RW5z
dXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9u
SUQoKSksIDApOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Np
b24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpLCAwKTsKKyAgICAgICAg
ICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEZXN0
cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9u
SUQoKSksIDApOwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEVEKE5FVFdPUktfUFJPQ0VTUykKIAog
ICAgIGlmIChwcml2YXRlQnJvd3NpbmdFbmFibGVkKQotICAgICAgICBzZW5kVG9BbGxQcm9jZXNz
ZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vz
c2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpKTsKKyAgICAgICAgc2VuZFRvQWxs
UHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSk7CiAgICAgZWxzZQotICAg
ICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRlc3Ryb3lQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklE
KSk7CisgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6RGVz
dHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lv
bklEKCkpKTsKIH0KIAogdm9pZCAoKnNfaW52YWxpZE1lc3NhZ2VDYWxsYmFjaykoV0tTdHJpbmdS
ZWYgbWVzc2FnZU5hbWUpOwpAQCAtNjI1LDcgKzYyNSw3IEBAIFdlYlByb2Nlc3NQcm94eSYgV2Vi
Q29udGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2VzcygpCiAjZW5kaWYKIAogICAgIGlmIChXZWJQcmVm
ZXJlbmNlczo6YW55UGFnZXNBcmVVc2luZ1ByaXZhdGVCcm93c2luZygpKQotICAgICAgICBwcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKSwgMCk7CisgICAgICAg
IHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpLCAwKTsKIAogICAg
IG1fcHJvY2Vzc2VzLmFwcGVuZChwcm9jZXNzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmgKaW5kZXggODZkZDJkOC4uMjA1NGQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5oCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiV2ViRG93bmxvYWRDbGll
bnQuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xp
bmtIYXNoLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KQEAgLTMwNiw3ICszMDcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgd2lsbFN0
YXJ0VXNpbmdQcml2YXRlQnJvd3NpbmcoKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsU3RvcFVzaW5n
UHJpdmF0ZUJyb3dzaW5nKCk7CiAKLSAgICBzdGF0aWMgYm9vbCBpc0VwaGVtZXJhbFNlc3Npb24o
dWludDY0X3Qgc2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgYm9vbCBpc0VwaGVtZXJhbFNlc3Npb24o
V2ViQ29yZTo6U2Vzc2lvbklEKTsKIAogI2lmIFVTRShTT1VQKQogICAgIHZvaWQgc2V0SWdub3Jl
VExTRXJyb3JzKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmlu
ZGV4IGM5MjRjOTcuLjZhNTExOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTMzNyw3ICszMzcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTZXNzaW9uKEFQ
STo6U2Vzc2lvbiYpOwogCiAgICAgdWludDY0X3QgcGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV9w
YWdlSUQ7IH0KLSAgICB1aW50NjRfdCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Np
b24tPmdldElEKCk7IH0KKyAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qg
eyByZXR1cm4gbV9zZXNzaW9uLT5nZXRJRCgpOyB9CiAKICAgICBXZWJGcmFtZVByb3h5KiBtYWlu
RnJhbWUoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZS5nZXQoKTsgfQogICAgIFdlYkZyYW1l
UHJveHkqIGZvY3VzZWRGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9jdXNlZEZyYW1lLmdldCgp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDFlZjk4YzMuLjkxODFhMTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuY3BwCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TY3Jp
cHRDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlQb2xpY3kuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Np
b25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1VzZXJHZXN0dXJlSW5kaWNhdG9yLmg+CiAKQEAgLTMwOCw5ICszMDksOSBAQCB2b2lkIEluamVj
dGVkQnVuZGxlOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKFdlYlBhZ2VHcm91cFByb3h5KiBw
YWdlR3JvdXAsIGJvbwogICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IFRoaXMgdGVzdC1v
bmx5IGZ1bmN0aW9uIGRvZXNuJ3Qgd29yayB3aXRoIE5ldHdvcmtQcm9jZXNzLCA8aHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTI3ND4uCiAjaWYgUExBVEZPUk0oQ09D
T0EpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVTRShTT1VQKQogICAgIGlmIChlbmFibGVkKQotICAg
ICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKKyAgICAgICAgV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNz
aW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CiAgICAgZWxzZQotICAgICAgICBTZXNz
aW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVT
ZXNzaW9uSUQpOworICAgICAgICBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24oU2Vzc2lv
bklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwogI2VuZGlmCiAgICAgY29uc3QgSGFzaFNl
dDxQYWdlKj4mIHBhZ2VzID0gUGFnZUdyb3VwOjpwYWdlR3JvdXAocGFnZUdyb3VwLT5pZGVudGlm
aWVyKCkpLT5wYWdlcygpOwogICAgIGZvciAoSGFzaFNldDxQYWdlKj46Oml0ZXJhdG9yIGl0ZXIg
PSBwYWdlcy5iZWdpbigpOyBpdGVyICE9IHBhZ2VzLmVuZCgpOyArK2l0ZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuY3BwCmluZGV4IGVhYmQ2NTQuLmE1ZmNmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZWZlcnJl
clBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VCdWZmZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJy
ZXNvdXJjZUxvYWRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTExOCw3
ICsxMTksNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkKFJl
c291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlciwgQ2FjaAogICAgIGxvYWRQYXJhbWV0ZXJzLmlk
ZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHdl
YlBhZ2UgPyB3ZWJQYWdlLT5wYWdlSUQoKSA6IDA7CiAgICAgbG9hZFBhcmFtZXRlcnMud2ViRnJh
bWVJRCA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDA7Ci0gICAgbG9hZFBhcmFt
ZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lv
blRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQ7CisgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklE
ID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMucmVxdWVzdCA9IHJlc291cmNlTG9hZGVyLT5y
ZXF1ZXN0KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMucHJpb3JpdHkgPSBwcmlvcml0eTsKICAgICBs
b2FkUGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBjb250ZW50U25pZmZpbmdQb2xp
Y3k7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggM2U3MDdjNy4uMDRm
YjE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtNTQsNiArNTQs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VF
cnJvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TdG9yYWdlTmFtZXNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJmcmFtZUxvYWRlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CkBAIC0yNjMsNyArMjY0LDcgQEAgdm9pZCBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleHQKICAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gcmVzb3VyY2VM
b2FkSWRlbnRpZmllcjsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgPSB3ZWJQYWdlID8g
d2ViUGFnZS0+cGFnZUlEKCkgOiAwOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQgPSB3
ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAwOwotICAgIGxvYWRQYXJhbWV0ZXJzLnNl
c3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25UcmFja2Vy
OjpkZWZhdWx0U2Vzc2lvbklEOworICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBh
Z2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
OwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0
ZXJzLnByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlIaWdoZXN0OwogICAgIGxvYWRQYXJh
bWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IFNuaWZmQ29udGVudDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCA4NjI5ZmE4Li5kZWYyMDM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0y
OSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1
ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZU5ldHdvcmtpbmdDb250ZXh0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKQEAgLTQwLDcgKzQxLDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIEZJWE1FOiByZW1v
dmUgcGxhdGZvcm0tc3BlY2lmaWMgY29kZSBhbmQgdXNlIFNlc3Npb25UcmFja2VyCi0gICAgc3Rh
dGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQp
OworICAgIHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6
U2Vzc2lvbklEKTsKIAogICAgIHN0YXRpYyB2b2lkIHNldENvb2tpZUFjY2VwdFBvbGljeUZvckFs
bENvbnRleHRzKEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCAzYzUyNTE2Li4yNmJmZmM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTQyLDkg
KzQyLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
ICAgIAotdm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKK3ZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ewotICAgIEFTU0VSVChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKTsK
KyAgICBBU1NFUlQoc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpOwogCiAgICAgaWYgKFNlc3Npb25U
cmFja2VyOjpzZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTU1LDcgKzU1
LDcgQEAgdm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKICAgICBlbHNlCiAgICAgICAgIGJhc2UgPSBT
ZXNzaW9uVHJhY2tlcjo6Z2V0SWRlbnRpZmllckJhc2UoKTsKIAotICAgIFNlc3Npb25UcmFja2Vy
OjpzZXRTZXNzaW9uKHNlc3Npb25JRCwgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKGJhc2UgKyAnLicgKyBTdHJpbmc6Om51bWJlcihzZXNzaW9uSUQp
KSk7CisgICAgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24oc2Vzc2lvbklELCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oYmFzZSArICcuJyArIFN0
cmluZzo6bnVtYmVyKHNlc3Npb25JRC5zZXNzaW9uSUQoKSkpKTsKIH0KIAogdm9pZCBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzZXRDb29raWVBY2NlcHRQb2xpY3lGb3JBbGxDb250ZXh0cyhI
VFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKQEAgLTEwMSwxMCArMTAxLDcgQEAgUmVzb3Vy
Y2VFcnJvciBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXEKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24oKSBjb25zdAogewogICAgIEFTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7Ci0KLSAgICBpZiAoZnJhbWUoKSkKLSAgICAgICAgcmV0dXJuICpTZXNzaW9u
VHJhY2tlcjo6c2Vzc2lvbih3ZWJGcmFtZUxvYWRlckNsaWVudCgpLT53ZWJGcmFtZSgpLT5wYWdl
KCktPnNlc3Npb25JRCgpKTsKLSAgICByZXR1cm4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZh
dWx0U3RvcmFnZVNlc3Npb24oKTsKKyAgICByZXR1cm4gKlNlc3Npb25UcmFja2VyOjpzZXNzaW9u
KGZyYW1lKCkgPyBmcmFtZSgpLT5wYWdlKCktPnNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCkpOwogfQogCiBXZWJGcmFtZUxvYWRlckNsaWVudCogV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6d2ViRnJhbWVMb2FkZXJDbGllbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCmluZGV4IDRkMTNkYzMuLjc3
NzM3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2lu
Y2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCkBAIC0zNywxNCArMzgsMTQgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lv
bklEKQordm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKIAogICAgIGlmIChTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbihzZXNzaW9uSUQpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbihzZXNzaW9uSUQs
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTdHJp
bmc6Om51bWJlcihzZXNzaW9uSUQpKSk7CisgICAgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24o
c2Vzc2lvbklELCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24oU3RyaW5nOjpudW1iZXIoc2Vzc2lvbklELnNlc3Npb25JRCgpKSkpOwogfQogCiBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkZyYW1l
KiBmcmFtZSkKQEAgLTU1LDcgKzU2LDcgQEAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6V2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dChXZWJGcmFtZSogZnJhbWUpCiBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKCkgY29uc3QK
IHsKICAgICBpZiAoZnJhbWUoKSAmJiBmcmFtZSgpLT5zZXR0aW5ncygpLnByaXZhdGVCcm93c2lu
Z0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuICpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbihTZXNz
aW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7CisgICAgICAgIHJldHVybiAqU2Vz
c2lvblRyYWNrZXI6OnNlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkp
OwogCiAgICAgcmV0dXJuIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNz
aW9uKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aAppbmRleCAyNjMwNjFhMC4uOTM0MTBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0yOSw2ICsyOSw3IEBACiAjZGVmaW5lIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHRfaAogCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKQEAgLTQyLDcgKzQzLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpKTsKICAgICB9CiAKLSAgICBz
dGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25J
RCk7CisgICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3Jl
OjpTZXNzaW9uSUQpOwogCiAgICAgV2ViRnJhbWVMb2FkZXJDbGllbnQqIHdlYkZyYW1lTG9hZGVy
Q2xpZW50KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCA1ZmUzMDM5Li42N2YwNDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMzMsNiArMTMzLDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRD
b250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGlu
Z3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYWRvd1Jvb3QuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NoYXJlZEJ1ZmZlci5oPgpAQCAtMjI2LDcgKzIyNyw2IEBAIFBhc3NSZWZQdHI8V2ViUGFnZT4g
V2ViUGFnZTo6Y3JlYXRlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFy
YW1lCiAKIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgIDogbV9wYWdlSUQocGFnZUlEKQotICAg
ICwgbV9zZXNzaW9uSUQoMCkKICAgICAsIG1fdmlld1NpemUocGFyYW1ldGVycy52aWV3U2l6ZSkK
ICAgICAsIG1faGFzU2VlblBsdWdpbihmYWxzZSkKICAgICAsIG1fdXNlRml4ZWRMYXlvdXQoZmFs
c2UpCkBAIC0yMTA2LDIzICsyMTA2LDIzIEBAIHZvaWQgV2ViUGFnZTo6c2V0TGF5ZXJIb3N0aW5n
TW9kZSh1bnNpZ25lZCBsYXllckhvc3RpbmdNb2RlKQogICAgICAgICBwbHVnaW5WaWV3LT5zZXRM
YXllckhvc3RpbmdNb2RlKG1fbGF5ZXJIb3N0aW5nTW9kZSk7CiB9CiAKLXVpbnQ2NF90IFdlYlBh
Z2U6OnNlc3Npb25JRCgpIGNvbnN0CitTZXNzaW9uSUQgV2ViUGFnZTo6c2Vzc2lvbklEKCkgY29u
c3QKIHsKLSAgICBpZiAobV9zZXNzaW9uSUQpCi0gICAgICAgIHJldHVybiBtX3Nlc3Npb25JRDsK
KyAgICBpZiAobV9wYWdlLT5zZXNzaW9uSUQoKS5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBt
X3BhZ2UtPnNlc3Npb25JRCgpOwogCi0gICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS5wcml2
YXRlQnJvd3NpbmdFbmFibGVkKCkgPyBTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Np
b25JRCA6IFNlc3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEOworICAgIHJldHVybiBtX3Bh
Z2UtPnNldHRpbmdzKCkucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpID8gU2Vzc2lvbklEOjpsZWdh
Y3lQcml2YXRlU2Vzc2lvbklEKCkgOiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKIH0K
IAogYm9vbCBXZWJQYWdlOjppc1VzaW5nRXBoZW1lcmFsU2Vzc2lvbigpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIFNlc3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCgpKTsKKyAgICBy
ZXR1cm4gc2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzZXRT
ZXNzaW9uSUQodWludDY0X3Qgc2Vzc2lvbklEKQordm9pZCBXZWJQYWdlOjpzZXRTZXNzaW9uSUQo
U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBtX3Nlc3Npb25JRCA9IHNlc3Npb25JRDsKLSAg
ICBpZiAoU2Vzc2lvblRyYWNrZXI6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKSkKKyAgICBtX3Bh
Z2UtPnNldFNlc3Npb25JRChzZXNzaW9uSUQpOworICAgIGlmIChzZXNzaW9uSUQuaXNFcGhlbWVy
YWwoKSkKICAgICAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuZW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbihzZXNzaW9uSUQpOwogfQogCkBAIC0yNDI4LDggKzI0MjgsOCBAQCB2b2lkIFdlYlBh
Z2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQog
ICAgIHNldHRpbmdzLnNldExvY2FsU3RvcmFnZUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpsb2NhbFN0b3JhZ2VFbmFibGVkS2V5KCkpKTsKICAgICBz
ZXR0aW5ncy5zZXRYU1NBdWRpdG9yRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2Vi
UHJlZmVyZW5jZXNLZXk6Onhzc0F1ZGl0b3JFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy5z
ZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZEtleSgpKSk7Ci0gICAgaWYgKG1fc2Vz
c2lvbklEKQotICAgICAgICBzZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKFNlc3Np
b25UcmFja2VyOjppc0VwaGVtZXJhbElEKG1fc2Vzc2lvbklEKSk7CisgICAgaWYgKG1fcGFnZS0+
c2Vzc2lvbklEKCkuaXNWYWxpZCgpKQorICAgICAgICBzZXR0aW5ncy5zZXRQcml2YXRlQnJvd3Np
bmdFbmFibGVkKG1fcGFnZS0+c2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKSk7CiAgICAgZWxzZQog
ICAgICAgICBzZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHN0b3JlLmdldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZEtleSgp
KSk7CiAgICAgc2V0dGluZ3Muc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChzdG9yZS5nZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmRldmVsb3BlckV4dHJhc0VuYWJsZWRLZXko
KSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
ODJkOTI2NC4uYjExNWU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC0xODYsOSArMTg2LDkgQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6UGFn
ZSogY29yZVBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KICAgICB1aW50NjRf
dCBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfQotICAgIHVpbnQ2NF90IHNlc3Np
b25JRCgpIGNvbnN0OworICAgIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdDsK
ICAgICBib29sIGlzVXNpbmdFcGhlbWVyYWxTZXNzaW9uKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRT
ZXNzaW9uSUQodWludDY0X3QpOworICAgIHZvaWQgc2V0U2Vzc2lvbklEKFdlYkNvcmU6OlNlc3Np
b25JRCk7CiAKICAgICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAg
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdTaXpl
OyB9CkBAIC05MDgsNyArOTA4LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcG9ydFVzZWRGZWF0
dXJlcygpOwogCiAgICAgdWludDY0X3QgbV9wYWdlSUQ7Ci0gICAgdWludDY0X3QgbV9zZXNzaW9u
SUQ7CiAKICAgICBPd25QdHI8V2ViQ29yZTo6UGFnZT4gbV9wYWdlOwogICAgIFJlZlB0cjxXZWJG
cmFtZT4gbV9tYWluRnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDQyZmI5NDYuLjU3ZmE0ZDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCkBAIC0yNSw3ICsyNSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2
ZXIgewogICAgIFNldFZpZXdTdGF0ZSh1bnNpZ25lZCB2aWV3U3RhdGUsIGJvb2wgd2FudHNEaWRV
cGRhdGVWaWV3U3RhdGUpCiAgICAgU2V0TGF5ZXJIb3N0aW5nTW9kZSh1bnNpZ25lZCBsYXllckhv
c3RpbmdNb2RlKQogCi0gICAgU2V0U2Vzc2lvbklEKHVpbnQ2NF90IHNlc3Npb25JRCkKKyAgICBT
ZXRTZXNzaW9uSUQoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIAogICAgIFNldERyYXdz
QmFja2dyb3VuZChib29sIGRyYXdzQmFja2dyb3VuZCkKICAgICBTZXREcmF3c1RyYW5zcGFyZW50
QmFja2dyb3VuZChib29sIGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggM2QwNzNiYS4uYTY1YzhhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00NjUsMTQgKzQ2NSwxNCBA
QCB2b2lkIFdlYlByb2Nlc3M6OmZ1bGxLZXlib2FyZEFjY2Vzc01vZGVDaGFuZ2VkKGJvb2wgZnVs
bEtleWJvYXJkQWNjZXNzRW5hYmxlZCkKICAgICBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQg
PSBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmVuc3Vy
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQordm9pZCBXZWJQcm9j
ZXNzOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7
CiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVTRShTT1VQKQogICAg
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
c2Vzc2lvbklEKTsKICNlbmRpZgogfQogCi12b2lkIFdlYlByb2Nlc3M6OmRlc3Ryb3lQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKK3ZvaWQgV2ViUHJvY2Vzczo6ZGVz
dHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICNpZiBQ
TEFURk9STShDT0NPQSkgfHwgVVNFKENGTkVUV09SSykgfHwgVVNFKFNPVVApCiAgICAgU2Vzc2lv
blRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKHNlc3Npb25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCmluZGV4IDJiMWNhZWQuLmFlNTJjOWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiVGV4dENo
ZWNrZXJTdGF0ZS5oIgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rVGFibGUuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0xpbmtIYXNoLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1RpbWVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgpAQCAtMTYzLDggKzE2NCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c2V0Q2FjaGVNb2RlbCh1aW50MzJfdCk7CiAKLSAgICB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKLSAgICB2b2lkIGRlc3Ryb3lQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCk7CisgICAgdm9pZCBlbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBkZXN0cm95UHJp
dmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOwogCiAgICAgdm9pZCBwYWdl
RGlkRW50ZXJXaW5kb3codWludDY0X3QgcGFnZUlEKTsKICAgICB2b2lkIHBhZ2VXaWxsTGVhdmVX
aW5kb3codWludDY0X3QgcGFnZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA5MmU3MDgwLi42ZmFiMmYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC01NSw4
ICs1NSw4IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogI2VuZGlm
CiAKICAgICAvLyBMZWdhY3kgcHJpdmF0ZSBicm93c2luZyBzZXNzaW9uIGlzIHBlciBwcm9jZXNz
LiBJbmRpdmlkdWFsIHBhZ2VzIG9yIHBhZ2UgZ3JvdXBzIG1heSB1c2UgdGhlIHByaXZhdGUgc2Vz
c2lvbiBvciB0aGUgZGVmYXVsdCBvbmUgYXMgYXBwcm9wcmlhdGUuCi0gICAgRW5zdXJlUHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCi0gICAgRGVzdHJveVByaXZhdGVC
cm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQorICAgIEVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICBEZXN0cm95UHJp
dmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogCiAgICAg
IyBQbHVnLWlucy4KICAgICBEaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVpbnQzMl90
IGhhc2gsIGRvdWJsZSBleHBpcmF0aW9uVGltZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225184</attachid>
            <date>2014-02-25 14:20:05 -0800</date>
            <delta_ts>2014-02-25 15:13:51 -0800</delta_ts>
            <desc>restore isSessionIDSet()</desc>
            <filename>sessionidclass.09a.diff</filename>
            <type>text/plain</type>
            <size>71502</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhMGYwM2E1Li4xZGM2NjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTQtMDItMjUgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IENyZWF0ZSBTZXNzaW9uSUQgdmFsdWUtc3R5bGUgY2xhc3MgZm9yIHNlc3Npb24gSURzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MTQxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOiBBZGQg
U2Vzc2lvbklEIG1lbWJlci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6c2Vzc2lvbklEKTogUmV0cmlldmUgc2Vzc2lvbklEIG9yIHVzZSBz
ZXR0aW5ncyBpZiBub3Qgc2V0LgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZTo6aXNTZXNzaW9uSURTZXQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0
U2Vzc2lvbklEKToKKyAgICAgICAgKiBwYWdlL1Nlc3Npb25JRC5oOiBTZXNzaW9uIElEIGNsYXNz
IGNvbnNpc3Rpbmcgc29sZWx5IG9mIGl0cyB1aW50NjRfdCBzZXNzaW9uIElELgorICAgICAgICAo
V2ViQ29yZTo6U2Vzc2lvbklEOjpTZXNzaW9uSUQpOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lv
bklEOjppc1ZhbGlkKTogTm90IGVtcHR5LgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbklEOjpp
c0VwaGVtZXJhbCk6CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ6OnNlc3Npb25JRCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ6Om9wZXJhdG9yPT0pOiBWYWx1ZS1iYXNlZCBlcXVh
bGl0eS4KKyAgICAgICAgKFdlYkNvcmU6OlNlc3Npb25JRDo6b3BlcmF0b3IhPSk6CisgICAgICAg
IChXZWJDb3JlOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKTogWmVybyB2YWx1ZSBhbHNvIHVz
ZWQgZm9yIEhhc2hUcmFpdHMgZW1wdHlWYWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCk6CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ6OmxlZ2Fj
eVByaXZhdGVTZXNzaW9uSUQpOgorICAgICAgICAqIHBhZ2UvU2Vzc2lvbklESGFzaC5oOgorICAg
ICAgICAoV1RGOjpTZXNzaW9uSURIYXNoOjpoYXNoKTogSnVzdCB0aGUgY2FzdGVkIHNlc3Npb24g
SUQgKGxvdyBvcmRlciBieXRlcykKKyAgICAgICAgKFdURjo6U2Vzc2lvbklESGFzaDo6ZXF1YWwp
OgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlNlc3Npb25JRD46OmVtcHR5VmFs
dWUpOiBFcXVhbCB0byBlbXB0eVNlc3Npb25JRC4KKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxX
ZWJDb3JlOjpTZXNzaW9uSUQ+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOiAtMSB2YWx1ZS4KKyAg
ICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpTZXNzaW9uSUQ+Ojppc0RlbGV0ZWRWYWx1
ZSk6CisKIDIwMTQtMDItMjUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4K
IAogICAgICAgICBHZXQgcmlkIG9mIFZpc2l0ZWRMaW5rU3RyYXRlZ3kKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IDg0MjU2ZTQuLmExOTM2YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtNDE3NSw2ICs0MTc1LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luSGFzaC5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0
eVBvbGljeS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCmluZGV4IDA2NzJjN2IuLjdlY2E0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CkBAIC0xMDA0LDYgKzEwMDQsNyBAQCBfX1pON1dlYkNvcmU0UGFnZTExUGFnZUNsaWVudHNDMUV2
CiBfX1pON1dlYkNvcmU0UGFnZTExUGFnZUNsaWVudHNEMUV2CiBfX1pON1dlYkNvcmU0UGFnZTEy
c2V0R3JvdXBOYW1lRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlNFBhZ2UxMnNldElzVmlz
aWJsZUViCitfX1pON1dlYkNvcmU0UGFnZTEyc2V0U2Vzc2lvbklERU5TXzlTZXNzaW9uSURFCiBf
X1pON1dlYkNvcmU0UGFnZTEyc2V0Vmlld1N0YXRlRWoKIF9fWk43V2ViQ29yZTRQYWdlMTNyYW5n
ZU9mU3RyaW5nRVJLTjNXVEY2U3RyaW5nRVBOU181UmFuZ2VFagogX19aTjdXZWJDb3JlNFBhZ2Ux
M3NldElzSW5XaW5kb3dFYgpAQCAtMTc0Myw2ICsxNzQ0LDcgQEAgX19aTks3V2ViQ29yZTRQYWdl
MTd2aWV3cG9ydEFyZ3VtZW50c0V2CiBfX1pOSzdXZWJDb3JlNFBhZ2UzNGluTG93UXVhbGl0eUlt
YWdlSW50ZXJwb2xhdGlvbk1vZGVFdgogX19aTks3V2ViQ29yZTRQYWdlOWdyb3VwTmFtZUV2CiBf
X1pOSzdXZWJDb3JlNFBhZ2U5cGFnZUNvdW50RXYKK19fWk5LN1dlYkNvcmU0UGFnZTlzZXNzaW9u
SURFdgogX19aTks3V2ViQ29yZTVDb2xvcjEwc2VyaWFsaXplZEV2CiBfX1pOSzdXZWJDb3JlNUNv
bG9yN2dldFJHQkFFUmRTMV9TMV9TMV8KIF9fWk5LN1dlYkNvcmU1Q29sb3I3Z2V0UkdCQUVSZlMx
X1MxX1MxXwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGMwMDcxNDguLjI1ODc5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIyMTYsNiArMjIxNiw3IEBACiAJ
CTc1NDE1RDVBMTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0MTVENTQxMjlB
QjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggKi87IH07CiAJCTc1NTND
RkU4MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTNDRkU2MTA4RjQ3M0YwMEVB
MjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLzsgfTsKIAkJNzU1M0NGRTkxMDhGNDcz
RjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyog
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLzsgfTsKKwkJNzU2QjJDRTExOEI3MTAxNjAwRkVD
RkFBIC8qIFNlc3Npb25JRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzU2QjJDRTAxOEI3MTAxNjAwRkVDRkFBIC8qIFNlc3Npb25JRC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc1NzhGOTBDMTFEREYy
NjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5MDkxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0
LmggKi87IH07CiAJCTc1NzhGOTBEMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5
MEExMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggKi87IH07CiAJCTc1NzhG
OTIwMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkxRTExRTRFMzI4MDBEOTMz
QzUgLyogU3BlZWNoSW5wdXRMaXN0ZW5lci5oICovOyB9OwpAQCAtMjIyNiw2ICsyMjI3LDcgQEAK
IAkJNzU3OTNFRDMwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFRDAwRDBDRTg1QjAw
N0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5oICovOyB9OwogCQk3NTc5M0VENDBEMENFODVCMDA3
RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFRDEwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VF
dmVudC5tbSAqLzsgfTsKIAkJNzU3OTNFRDUwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VF
dmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3NTc5M0VEMjBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50SW50ZXJuYWwu
aCAqLzsgfTsKKwkJNzVEQ0M3QjgxOEI4MUM4ODAwQTU3MTI4IC8qIFNlc3Npb25JREhhc2guaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RENDN0I3MThC
ODFDODgwMEE1NzEyOCAvKiBTZXNzaW9uSURIYXNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzYzM0E3MjYxM0Q4QjMzQTAwODUwMUI2IC8qIExv
Y2FsZVRvU2NyaXB0TWFwcGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzYzM0E3MjQxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0TWFw
cGluZy5oICovOyB9OwogCQk3NjMzQTcyNzEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3Jp
cHRNYXBwaW5nRGVmYXVsdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NjMzQTcyNTEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRNYXBw
aW5nRGVmYXVsdC5jcHAgKi87IH07CiAJCTc2ODA4QjUwMTU5REFERkEwMDJCNTIzMyAvKiBKU0hU
TUxEaWFsb2dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3NjgwOEI0RTE1OURBREZBMDAyQjUyMzMgLyogSlNIVE1MRGlhbG9nRWxlbWVudC5o
ICovOyB9OwpAQCAtOTE0OSw2ICs5MTUxLDcgQEAKIAkJNzU0MTVENTQxMjlBQjJEMjAwM0FENjY5
IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3Rvcnku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgx
RSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNzU2QjJDRTAxOEI3MTAxNjAwRkVDRkFBIC8qIFNlc3Npb25JRC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXNzaW9uSUQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzU3OEY5MDkxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NzhGOTBBMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJ
bnB1dENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hJbnB1
dENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc4RjkxRTExRTRFMzI4
MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hJbnB1dExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC05MTYxLDYgKzkxNjQsNyBAQAogCQk3NTc5M0VEMTBEMENFODVCMDA3RkMwQUMgLyog
RE9NTWVzc2FnZUV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERPTU1lc3NhZ2VFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU3
OTNFRDIwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudEludGVybmFsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01NZXNzYWdlRXZlbnRJbnRlcm5hbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTg5NzhFQjEyNzA5MEQ2MDA3NkQ1QTkgLyog
U3BlZWNoSW5wdXRSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoSW5wdXRSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVEQ0M3Qjcx
OEI4MUM4ODAwQTU3MTI4IC8qIFNlc3Npb25JREhhc2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU2Vzc2lvbklESGFzaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3NjMzQTcyNDEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRNYXBwaW5nLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsZVRvU2NyaXB0TWFwcGluZy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NjMzQTcyNTEzRDhCMzNBMDA4NTAxQjYgLyog
TG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBMb2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZhdWx0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzY4MDhCNEUxNTlEQURGQTAwMkI1MjMzIC8qIEpTSFRNTERp
YWxvZ0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRGlh
bG9nRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYxNjUsNiArMTYx
NjksOCBAQAogCQkJCUJDRDBFMEY5MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbkhh
c2guaCAqLywKIAkJCQk5NzREMkRBMjE0NkE1MzVEMDBENTFGOEIgLyogU2VjdXJpdHlQb2xpY3ku
Y3BwICovLAogCQkJCTk3NEQyREEzMTQ2QTUzNUQwMEQ1MUY4QiAvKiBTZWN1cml0eVBvbGljeS5o
ICovLAorCQkJCTc1NkIyQ0UwMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNzaW9uSUQuaCAqLywKKwkJ
CQk3NURDQzdCNzE4QjgxQzg4MDBBNTcxMjggLyogU2Vzc2lvbklESGFzaC5oICovLAogCQkJCTE0
QzlBNUU5MEIzRDEwNUYwMDVBMDIzMiAvKiBTZXR0aW5ncy5jcHAgKi8sCiAJCQkJRjU4Nzg2M0Ew
MkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdzLmggKi8sCiAJCQkJQkM1OURFRjgxNjlERURDMzAw
MTZBQzM0IC8qIFNldHRpbmdzLmluICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qLnJlaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvai5yZWoKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMjZlY2EwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvai5yZWoKQEAgLTAsMCArMSwxNyBAQAorZGlm
ZiBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmVqZWN0ZWQg
aHVua3MpCitAQCAtMjI3NDIsNiArMjI3NDgsNyBAQAorIAkJCQkwNzk2OURDMjE3RDE0MTUxMDA3
RkY4NDIgLyogSlNSVENTdGF0c1JlcG9ydC5oIGluIEhlYWRlcnMgKi8sCisgCQkJCUZEMzU5MTkw
MTM4REIyMjAwMEUxRUJFQyAvKiBBdWRpb1BhcmFtVGltZWxpbmUuaCBpbiBIZWFkZXJzICovLAor
IAkJCQlGRDMxNjAyMDEyQjAyNjc2MDBDMUEzNTkgLyogQXVkaW9Qcm9jZXNzaW5nRXZlbnQuaCBp
biBIZWFkZXJzICovLAorKwkJCQk3NURDQzdCODE4QjgxQzg4MDBBNTcxMjggLyogU2Vzc2lvbklE
SGFzaC5oIGluIEhlYWRlcnMgKi8sCisgCQkJCUZEMzE2MDg0MTJCMDI2RjcwMEMxQTM1OSAvKiBB
dWRpb1Byb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8sCisgCQkJCUZEMzE2MDg2MTJCMDI2RjcwMEMx
QTM1OSAvKiBBdWRpb1Jlc2FtcGxlci5oIGluIEhlYWRlcnMgKi8sCisgCQkJCUZEMzE2MDg4MTJC
MDI2RjcwMEMxQTM1OSAvKiBBdWRpb1Jlc2FtcGxlcktlcm5lbC5oIGluIEhlYWRlcnMgKi8sCitA
QCAtMjM5NTQsNiArMjM5NjEsNyBAQAorIAkJCQk3QTI0NTg3QzEwMjFFQUY0MDAwQTAwQUEgLyog
SW5zcGVjdG9yRE9NQWdlbnQuaCBpbiBIZWFkZXJzICovLAorIAkJCQk1MTY0RUQ0NDE4MzIwOEM3
MDBFQThGRjEgLyogSURCU2VydmVyQ29ubmVjdGlvbkxldmVsREIuaCBpbiBIZWFkZXJzICovLAor
IAkJCQlGM0Q0QzQ3OTEyRTA3NjYzMDAzREExNTAgLyogSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dC5oIGluIEhlYWRlcnMgKi8sCisrCQkJCTc1NkIyQ0UxMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNz
aW9uSUQuaCBpbiBIZWFkZXJzICovLAorIAkJCQk3QTc0RUNCQjEwMTgzOUE2MDBCRjkzOUUgLyog
SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmggaW4gSGVhZGVycyAqLywKKyAJCQkJMDcwNTg1MzQx
N0ZERTZEOTAwNUYyQkNCIC8qIEpTTWVkaWFUcmFja0NvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAq
LywKKyAJCQkJNTc4REEyMEUxNTIwRUI4QzAwNjE0MUMxIC8qIEluc3BlY3RvcldlYkZyb250ZW5k
RGlzcGF0Y2hlcnMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNjA1NzQ5
Ni4uYjBmNTQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xODMsNiArMTgzLDcgQEAgUGFnZTo6
UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAgICAgLCBtX2xhc3RTcGF0aWFsTmF2aWdh
dGlvbkNhbmRpZGF0ZXNDb3VudCgwKSAvLyBOT1RFOiBPbmx5IGNhbGxlZCBmcm9tIEludGVybmFs
cyBmb3IgU3BhdGlhbCBOYXZpZ2F0aW9uIHRlc3RpbmcuCiAgICAgLCBtX2ZyYW1lc0hhbmRsaW5n
QmVmb3JlVW5sb2FkRXZlbnQoMCkKICAgICAsIG1fdmlzaXRlZExpbmtQcm92aWRlcihzdGQ6Om1v
dmUocGFnZUNsaWVudHMudmlzaXRlZExpbmtQcm92aWRlcikpCisgICAgLCBtX3Nlc3Npb25JRChT
ZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCkpCiB7CiAgICAgQVNTRVJUKG1fZWRpdG9yQ2xpZW50
KTsKIApAQCAtMTUwMyw2ICsxNTA0LDIzIEBAIFZpc2l0ZWRMaW5rUHJvdmlkZXImIFBhZ2U6OnZp
c2l0ZWRMaW5rUHJvdmlkZXIoKQogICAgIHJldHVybiBncm91cCgpLnZpc2l0ZWRMaW5rUHJvdmlk
ZXIoKTsKIH0KIAorU2Vzc2lvbklEIFBhZ2U6OnNlc3Npb25JRCgpIGNvbnN0Cit7CisgICAgaWYg
KG1fc2Vzc2lvbklELmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIG1fc2Vzc2lvbklEOworCisg
ICAgaWYgKHNldHRpbmdzKCkucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1
cm4gU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCk7CisKKyAgICByZXR1cm4gU2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7Cit9CisKK3ZvaWQgUGFnZTo6c2V0U2Vzc2lvbklE
KFNlc3Npb25JRCBzZXNzaW9uSUQpCit7CisgICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkp
OworICAgIG1fc2Vzc2lvbklEID0gc2Vzc2lvbklEOworfQorCiBQYWdlOjpQYWdlQ2xpZW50czo6
UGFnZUNsaWVudHMoKQogICAgIDogYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KG51bGxwdHIpCiAgICAg
LCBjaHJvbWVDbGllbnQobnVsbHB0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMTA4MTYwNy4uMDY0ZjA5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJQYWdpbmF0aW9u
LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNpbmNsdWRlICJSZWdpb24uaCIKKyNp
bmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1
ZGUgIlZpZXdTdGF0ZS5oIgogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCkBAIC00MDMs
NiArNDA0LDEwIEBAIHB1YmxpYzoKIAogICAgIFZpc2l0ZWRMaW5rUHJvdmlkZXImIHZpc2l0ZWRM
aW5rUHJvdmlkZXIoKTsKIAorICAgIFNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdDsKKyAgICB2
b2lkIHNldFNlc3Npb25JRChTZXNzaW9uSUQpOworICAgIGJvb2wgaXNTZXNzaW9uSURTZXQoKSBj
b25zdCB7IHJldHVybiBtX3Nlc3Npb25JRC5pc1ZhbGlkKCk7IH0KKwogcHJpdmF0ZToKICAgICB2
b2lkIGluaXRHcm91cCgpOwogCkBAIC01NDMsNiArNTQ4LDggQEAgcHJpdmF0ZToKIAogICAgIFJl
ZlB0cjxVc2VyQ29udGVudENvbnRyb2xsZXI+IG1fdXNlckNvbnRlbnRDb250cm9sbGVyOwogICAg
IFJlZlB0cjxWaXNpdGVkTGlua1Byb3ZpZGVyPiBtX3Zpc2l0ZWRMaW5rUHJvdmlkZXI7CisKKyAg
ICBTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiB9OwogCiBpbmxpbmUgUGFnZUdyb3VwJiBQYWdlOjpn
cm91cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSUQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi41ZWZkNzRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXNzaW9uSUQuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTZXNzaW9u
SURfaAorI2RlZmluZSBTZXNzaW9uSURfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNlc3Npb25JRCB7CitwdWJsaWM6CisgICAgU2Vzc2lvbklEKCkKKyAgICAgICAgOiBTZXNzaW9u
SUQoZW1wdHlTZXNzaW9uSUQoKSkgeyB9CisgICAgZXhwbGljaXQgU2Vzc2lvbklEKHVpbnQ2NF90
IHNlc3Npb25JRCkKKyAgICAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpIHsgfQorICAgIGJv
b2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuICp0aGlzICE9IGVtcHR5U2Vzc2lvbklEKCk7IH0K
KyAgICBib29sIGlzRXBoZW1lcmFsKCkgY29uc3QgeyByZXR1cm4gKnRoaXMgIT0gZGVmYXVsdFNl
c3Npb25JRCgpOyB9CisgICAgdWludDY0X3Qgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9z
ZXNzaW9uSUQ7IH0KKyAgICBib29sIG9wZXJhdG9yPT0oU2Vzc2lvbklEIHNlc3Npb25JRCkgY29u
c3QgeyByZXR1cm4gbV9zZXNzaW9uSUQgPT0gc2Vzc2lvbklELm1fc2Vzc2lvbklEOyB9CisgICAg
Ym9vbCBvcGVyYXRvciE9KFNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0IHsgcmV0dXJuIG1fc2Vz
c2lvbklEICE9IHNlc3Npb25JRC5tX3Nlc3Npb25JRDsgfQorCisgICAgc3RhdGljIFNlc3Npb25J
RCBlbXB0eVNlc3Npb25JRCgpIHsgcmV0dXJuIFNlc3Npb25JRCgwKTsgfQorICAgIHN0YXRpYyBT
ZXNzaW9uSUQgZGVmYXVsdFNlc3Npb25JRCgpIHsgcmV0dXJuIFNlc3Npb25JRCgxKTsgfQorICAg
IHN0YXRpYyBTZXNzaW9uSUQgbGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpIHsgcmV0dXJuIFNlc3Np
b25JRCgyKTsgfQorcHJpdmF0ZToKKyAgICB1aW50NjRfdCBtX3Nlc3Npb25JRDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFNlc3Npb25JRF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JREhhc2guaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2Vzc2lvbklESGFzaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRh
OTg0YWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JREhh
c2guaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTZXNzaW9uSURIYXNo
X2gKKyNkZWZpbmUgU2Vzc2lvbklESGFzaF9oCisKKyNpbmNsdWRlICJTZXNzaW9uSUQuaCIKKyNp
bmNsdWRlIDx3dGYvSGFzaEZ1bmN0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+
CisKK25hbWVzcGFjZSBXVEYgeworCisvLyBUaGUgZW1wdHkgdmFsdWUgaXMgZW1wdHlTZXNzaW9u
SUQoKSwgdGhlIGRlbGV0ZWQgdmFsdWUgaXMgKC0xKQorc3RydWN0IFNlc3Npb25JREhhc2ggewor
ICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYgcCkgeyBy
ZXR1cm4gKHVuc2lnbmVkKXAuc2Vzc2lvbklEKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBlcXVhbChj
b25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmIGEsIGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYgYikg
eyByZXR1cm4gYSA9PSBiOyB9CisgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRv
RW1wdHlPckRlbGV0ZWQgPSB0cnVlOworfTsKK3RlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8
V2ViQ29yZTo6U2Vzc2lvbklEPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFdlYkNvcmU6OlNlc3Npb25J
RD4geworICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxzZTsKKyAg
ICBzdGF0aWMgV2ViQ29yZTo6U2Vzc2lvbklEIGVtcHR5VmFsdWUoKSB7IHJldHVybiBXZWJDb3Jl
OjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCk7IH0KKworICAgIHN0YXRpYyB2b2lkIGNvbnN0
cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3JlOjpTZXNzaW9uSUQmIHNsb3QpIHsgc2xvdCA9IFdlYkNv
cmU6OlNlc3Npb25JRCgtMik7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25z
dCBXZWJDb3JlOjpTZXNzaW9uSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3QgPT0gV2ViQ29yZTo6U2Vz
c2lvbklEKC0yKTsgfQorfTsKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdlYkNvcmU6
OlNlc3Npb25JRD4geworICAgIHR5cGVkZWYgU2Vzc2lvbklESGFzaCBIYXNoOworfTsKKworfQor
CisjZW5kaWYgLy8gU2Vzc2lvbklESGFzaF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzQ3NjBmZC4uOTkwMmJl
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDE0LTAyLTI1ICBNYXJ0aW4gSG9jayAg
PG1ob2NrQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgU2Vzc2lvbklEIHZhbHVlLXN0eWxl
IGNsYXNzIGZvciBzZXNzaW9uIElEcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyOTE0MQorCisgICAgICAgIFRoZSBiZWxvdyBjaGFuZ2VzIGRlYWwg
c29sZWx5IHdpdGggbWVjaGFuaWNhbCBjaGFuZ2VzIHRvIHVzZSB0aGUgU2Vzc2lvbklEIHZhbHVl
IGNsYXNzIGluc3RlYWQgb2YgdWludDY0X3QgZXhjZXB0IHdoZXJlIG5vdGVkLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpzdG9y
YWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpzdGFydERvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00pOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0VuYWJsZWQpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Z2V0UmF3Q29va2llcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpkZWxldGVDb29raWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9t
YWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyk6CisgICAgICAgICogU2hh
cmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBT
aGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpzdGF0aWNTZXNzaW9u
TWFwKToKKyAgICAgICAgKFdlYktpdDo6c3RvcmFnZVNlc3Npb25Ub0lEKToKKyAgICAgICAgKFdl
YktpdDo6U2Vzc2lvblRyYWNrZXI6OnNlc3Npb25NYXApOgorICAgICAgICAoV2ViS2l0OjpTZXNz
aW9uVHJhY2tlcjo6c2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpz
ZXNzaW9uSUQpOgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbik6CisgICAg
ICAgICogU2hhcmVkL1Nlc3Npb25UcmFja2VyLmg6IE1vdmUgY29kZSB0byBTZXNzaW9uSUQgY2xh
c3MuCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6IEFkZCBlbmNv
ZGUgYW5kIGRlY29kZSBmb3IgU2Vzc2lvbklELgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PFNlc3Npb25JRD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8U2Vzc2lv
bklEPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6
CisgICAgICAgICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbToKKyAgICAgICAgKFdl
YktpdDo6d2ViS2l0Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHA6CisgICAgICAgIChBUEk6OmdlbmVy
YXRlSUQpOgorICAgICAgICAoQVBJOjpTZXNzaW9uOjpkZWZhdWx0U2Vzc2lvbik6CisgICAgICAg
IChBUEk6OlNlc3Npb246OmxlZ2FjeVByaXZhdGVTZXNzaW9uKToKKyAgICAgICAgKEFQSTo6U2Vz
c2lvbjo6U2Vzc2lvbik6CisgICAgICAgIChBUEk6OlNlc3Npb246OmlzRXBoZW1lcmFsKToKKyAg
ICAgICAgKEFQSTo6U2Vzc2lvbjo6Z2V0SUQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUElTZXNz
aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb250ZXh0OjpzZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdF
bmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2Vz
cyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2Vzc2lv
bklEKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnNldFByaXZhdGVCcm93c2lu
Z0VuYWJsZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6
OnNjaGVkdWxlTG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3Jh
Z2VTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcDogTW92ZSBzZXNzaW9uSUQgdG8gUGFnZSB0byBhbGxvdyBXZWJDb3JlIHRvIGFj
Y2VzcyBpdC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnNlc3Npb25JRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Omlz
VXNpbmdFcGhlbWVyYWxTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0U2Vz
c2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlUHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRlc3Ryb3lQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisKIDIwMTQt
MDItMjUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aXggYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMWZlZTQ5OC4uZGNj
NjJlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNDIsNiArNDIsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1
ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTE0OCw5ICsxNDksOSBAQCB2
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRTZXJpYWxMb2FkaW5nRW5hYmxl
ZChib29sIGVuYWJsZWQpCiAgICAgbV9zZXJpYWxMb2FkaW5nRW5hYmxlZCA9IGVuYWJsZWQ7CiB9
CiAKLXN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKHVpbnQ2NF90
IHNlc3Npb25JRCkKK3N0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9u
KFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgaWYgKFNlc3Npb25UcmFja2VyOjppc0VwaGVt
ZXJhbElEKHNlc3Npb25JRCkpIHsKKyAgICBpZiAoc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpIHsK
ICAgICAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBwcml2YXRlU2Vzc2lvbiA9IFNlc3Npb25U
cmFja2VyOjpzZXNzaW9uKHNlc3Npb25JRCk7CiAgICAgICAgIGlmIChwcml2YXRlU2Vzc2lvbikK
ICAgICAgICAgICAgIHJldHVybiAqcHJpdmF0ZVNlc3Npb247CkBAIC0xNjEsNyArMTYyLDcgQEAg
c3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24odWludDY0X3Qgc2Vz
c2lvbklEKQogICAgIHJldHVybiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdl
U2Vzc2lvbigpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdGFy
dERvd25sb2FkKHVpbnQ2NF90IHNlc3Npb25JRCwgdWludDY0X3QgZG93bmxvYWRJRCwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6c3RhcnREb3dubG9hZChTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBkb3dubG9h
ZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgLy8gRklYTUU6IERv
IHNvbWV0aGluZyB3aXRoIHRoZSBzZXNzaW9uIElELgogICAgIE5ldHdvcmtQcm9jZXNzOjpzaGFy
ZWQoKS5kb3dubG9hZE1hbmFnZXIoKS5zdGFydERvd25sb2FkKGRvd25sb2FkSUQsIHJlcXVlc3Qp
OwpAQCAtMTgzLDMyICsxODQsMzIgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKHVpbnQ2NF90IG0KICAgICBsb2Fk
ZXItPmRpZENvbnZlcnRIYW5kbGVUb0Rvd25sb2FkKCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00odWludDY0X3Qgc2Vzc2lvbklELCBjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBTdHJpbmcmIHJlc3VsdCkKK3ZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00oU2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgU3RyaW5nJiBy
ZXN1bHQpCiB7CiAgICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29va2llc0ZvckRPTShzdG9yYWdlU2Vz
c2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5LCB1cmwpOwogfQogCi12b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTSh1aW50NjRfdCBzZXNzaW9uSUQs
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29v
a2llU3RyaW5nKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2ll
c0Zyb21ET00oU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCiB7CiAgICAgV2ViQ29yZTo6
c2V0Q29va2llc0Zyb21ET00oc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSwgZmlyc3RQYXJ0eSwg
dXJsLCBjb29raWVTdHJpbmcpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpjb29raWVzRW5hYmxlZCh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgVVJMJiB1cmwsIGJvb2wmIHJlc3VsdCkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNFbmFibGVkKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIGJvb2wmIHJlc3VsdCkKIHsKICAgICBy
ZXN1bHQgPSBXZWJDb3JlOjpjb29raWVzRW5hYmxlZChzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQp
LCBmaXJzdFBhcnR5LCB1cmwpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSh1aW50NjRfdCBzZXNzaW9uSUQsIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIFN0cmluZyYgcmVzdWx0KQordm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBV
UkwmIHVybCwgU3RyaW5nJiByZXN1bHQpCiB7CiAgICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29va2ll
UmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSwgZmlyc3RQ
YXJ0eSwgdXJsKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0
UmF3Q29va2llcyh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiByZXN1bHQpCit2b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiByZXN1bHQp
CiB7CiAgICAgV2ViQ29yZTo6Z2V0UmF3Q29va2llcyhzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQp
LCBmaXJzdFBhcnR5LCB1cmwsIHJlc3VsdCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmRlbGV0ZUNvb2tpZSh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpkZWxldGVDb29raWUoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkKIHsKICAgICBXZWJDb3JlOjpkZWxldGVDb29r
aWUoc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSwgdXJsLCBjb29raWVOYW1lKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDM5ODFmYTUuLmZhOTk3OTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaApAQCAtNzYsMTUgKzc2LDE1IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcm9z
c09yaWdpblJlZGlyZWN0UmVjZWl2ZWQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6VVJMJiByZWRpcmVjdFVSTCk7CiAgICAgdm9pZCBzZXJ2ZVBlbmRpbmdSZXF1ZXN0cyh1
aW50MzJfdCByZXNvdXJjZUxvYWRQcmlvcml0eSk7CiAgICAgdm9pZCBzZXRTZXJpYWxMb2FkaW5n
RW5hYmxlZChib29sKTsKLSAgICB2b2lkIHN0YXJ0RG93bmxvYWQodWludDY0X3Qgc2Vzc2lvbklE
LCB1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsK
KyAgICB2b2lkIHN0YXJ0RG93bmxvYWQoV2ViQ29yZTo6U2Vzc2lvbklELCB1aW50NjRfdCBkb3du
bG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIGNvbnZl
cnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZCh1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRl
bnRpZmllciwgdWludDY0X3QgZG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCi0gICAgdm9pZCBjb29r
aWVzRm9yRE9NKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBTdHJpbmcmIHJlc3VsdCk7Ci0gICAgdm9pZCBzZXRD
b29raWVzRnJvbURPTSh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBj
b29raWVzRW5hYmxlZCh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgYm9vbCYgcmVzdWx0KTsKLSAgICB2b2lkIGNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3QgV2Vi
Q29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBTdHJpbmcmIHJlc3Vs
dCk7Ci0gICAgdm9pZCBnZXRSYXdDb29raWVzKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3QgV2Vi
Q29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBWZWN0b3I8V2ViQ29y
ZTo6Q29va2llPiYpOwotICAgIHZvaWQgZGVsZXRlQ29va2llKHVpbnQ2NF90IHNlc3Npb25JRCwg
Y29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsKKyAgICB2b2lk
IGNvb2tpZXNGb3JET00oV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFN0cmluZyYgcmVzdWx0KTsKKyAgICB2b2lk
IHNldENvb2tpZXNGcm9tRE9NKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKTsKKyAgICB2
b2lkIGNvb2tpZXNFbmFibGVkKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBib29sJiByZXN1bHQpOworICAgIHZv
aWQgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25z
dCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFN0cmluZyYg
cmVzdWx0KTsKKyAgICB2b2lkIGdldFJhd0Nvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25z
dCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFZlY3RvcjxX
ZWJDb3JlOjpDb29raWU+Jik7CisgICAgdm9pZCBkZWxldGVDb29raWUoV2ViQ29yZTo6U2Vzc2lv
bklELCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpOwogCiAg
ICAgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgQmxvYlJl
Z2lzdHJhdGlvbkRhdGEmKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZyb21VUkwoY29uc3Qg
V2ViQ29yZTo6VVJMJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBzcmNVUkwpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhNDU5N2ZjLi5hZjFlODVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzIsMTUg
KzMyLDE1IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2Fj
eVJlY2VpdmVyIHsKICAgICAKICAgICBTZXRTZXJpYWxMb2FkaW5nRW5hYmxlZChib29sIGVuYWJs
ZWQpIC0+ICgpCiAKLSAgICBTdGFydERvd25sb2FkKHVpbnQ2NF90IHNlc3Npb25JRCwgdWludDY0
X3QgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QpCisgICAgU3Rh
cnREb3dubG9hZChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBkb3dubG9h
ZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCkKICAgICBDb252ZXJ0TWFpblJl
c291cmNlTG9hZFRvRG93bmxvYWQodWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIs
IHVpbnQ2NF90IGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQogCi0gICAgQ29va2llc0ZvckRPTSh1
aW50NjRfdCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwg
dXJsKSAtPiAoU3RyaW5nIHJlc3VsdCkKLSAgICBTZXRDb29raWVzRnJvbURPTSh1aW50NjRfdCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsLCBTdHJp
bmcgY29va2llU3RyaW5nKQotICAgIENvb2tpZXNFbmFibGVkKHVpbnQ2NF90IHNlc3Npb25JRCwg
V2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChib29sIGVuYWJs
ZWQpCi0gICAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUodWludDY0X3Qgc2Vzc2lvbklE
LCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKFN0cmluZyBy
ZXN1bHQpCi0gICAgR2V0UmF3Q29va2llcyh1aW50NjRfdCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVS
TCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNvb2tp
ZT4gY29va2llcykKLSAgICBEZWxldGVDb29raWUodWludDY0X3Qgc2Vzc2lvbklELCBXZWJDb3Jl
OjpVUkwgdXJsLCBTdHJpbmcgY29va2llTmFtZSkKKyAgICBDb29raWVzRm9yRE9NKFdlYkNvcmU6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpV
UkwgdXJsKSAtPiAoU3RyaW5nIHJlc3VsdCkKKyAgICBTZXRDb29raWVzRnJvbURPTShXZWJDb3Jl
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6
VVJMIHVybCwgU3RyaW5nIGNvb2tpZVN0cmluZykKKyAgICBDb29raWVzRW5hYmxlZChXZWJDb3Jl
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6
VVJMIHVybCkgLT4gKGJvb2wgZW5hYmxlZCkKKyAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRW
YWx1ZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0
eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKFN0cmluZyByZXN1bHQpCisgICAgR2V0UmF3Q29va2ll
cyhXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwg
V2ViQ29yZTo6VVJMIHVybCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpCisg
ICAgRGVsZXRlQ29va2llKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVS
TCB1cmwsIFN0cmluZyBjb29raWVOYW1lKQogCiAgICAgUmVnaXN0ZXJCbG9iVVJMKFdlYkNvcmU6
OlVSTCB1cmwsIFdlYktpdDo6QmxvYlJlZ2lzdHJhdGlvbkRhdGEgZGF0YSkKICAgICBSZWdpc3Rl
ckJsb2JVUkxGcm9tVVJMKFdlYkNvcmU6OlVSTCB1cmwsIFdlYkNvcmU6OlVSTCBzcmNVUkwpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5k
ZXggOGExMmFiNy4uNTVhYjBhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIldlYkNv
b2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+
CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKQEAgLTE2Myw3ICsxNjQsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0
d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZQogCiAgICAgLy8g
RklYTUU6IGluc3RlYWQgb2YgaGFuZGxpbmcgdGhpcyBoZXJlLCBhIG1lc3NhZ2Ugc2hvdWxkIGJl
IHNlbnQgbGF0ZXIgKHNjYWxlcyB0byBtdWx0aXBsZSBzZXNzaW9ucykKICAgICBpZiAocGFyYW1l
dGVycy5wcml2YXRlQnJvd3NpbmdFbmFibGVkKQotICAgICAgICBSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5
UHJpdmF0ZVNlc3Npb25JRCk7CisgICAgICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1
cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25J
RCgpKTsKIAogICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lv
bikKICAgICAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNz
aW9uKCk7CkBAIC0yMTQsMTIgKzIxNSwxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjcmVhdGVO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcygpCiAjZW5kaWYKIH0KIAotdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQp
Cit2b2lkIE5ldHdvcmtQcm9jZXNzOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Np
b25JRCBzZXNzaW9uSUQpCiB7CiAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24oc2Vzc2lvbklEKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vz
czo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQordm9p
ZCBOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklE
IHNlc3Npb25JRCkKIHsKICAgICBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24oc2Vzc2lv
bklEKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCmluZGV4IGI1MGYwOGEuLjFiZTZmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRv
d25sb2FkTWFuYWdlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5oIgogI2luY2x1
ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Nl
c3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CiAKQEAgLTEwNCw4ICsxMDUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
UmVjZWl2ZU5ldHdvcmtQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CiAgICAgdm9pZCBpbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lkIGNyZWF0ZU5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKCk7Ci0gICAgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCk7Ci0gICAgdm9pZCBkZXN0cm95UHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpOworICAgIHZvaWQgZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHZvaWQgZGVzdHJveVByaXZh
dGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKICAgICB2b2lkIGRvd25sb2Fk
UmVxdWVzdCh1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmKTsKICAgICB2b2lkIGNhbmNlbERvd25sb2FkKHVpbnQ2NF90IGRvd25sb2FkSUQpOwogICAg
IHZvaWQgc2V0Q2FjaGVNb2RlbCh1aW50MzJfdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDI3YzU4
YjQuLjc0OTk0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0zNCw4ICszNCw4IEBAIG1lc3NhZ2Vz
IC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBVc2VyUHJlZmVycmVkTGFu
Z3VhZ2VzQ2hhbmdlZChWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMpCiAjZW5kaWYKIAotICAgIEVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQotICAgIERlc3Ry
b3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKKyAgICBFbnN1cmVQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAg
RGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKIAogICAgIERvd25sb2FkUmVxdWVzdCh1aW50NjRfdCBkb3dubG9hZElELCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCkKICAgICBDYW5jZWxEb3dubG9hZCh1aW50NjRfdCBkb3du
bG9hZElEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuaAppbmRleCAyOGJjYzliLi42OWM1OWYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAt
MzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGVDbGllbnQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4K
ICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAK
QEAgLTE3Myw3ICsxNzQsNyBAQCBwcml2YXRlOgogICAgIFJlc291cmNlTG9hZElkZW50aWZpZXIg
bV9pZGVudGlmaWVyOwogICAgIHVpbnQ2NF90IG1fd2ViUGFnZUlEOwogICAgIHVpbnQ2NF90IG1f
d2ViRnJhbWVJRDsKLSAgICB1aW50NjRfdCBtX3Nlc3Npb25JRDsKKyAgICBXZWJDb3JlOjpTZXNz
aW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVz
dDsKICAgICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSBtX3ByaW9yaXR5OwogICAgIFdl
YkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBtX2NvbnRlbnRTbmlmZmluZ1BvbGljeTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdD
b250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5n
Q29udGV4dC5oCmluZGV4IGU5NThiYjMuLmY1Y2NjYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMjgs
MjQgKzI4LDI1IEBACiAjZGVmaW5lIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0X2gKIAogI2luY2x1
ZGUgPFdlYkNvcmUvTmV0d29ya2luZ0NvbnRleHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Np
b25JRC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUo
dWludDY0X3Qgc2Vzc2lvbklELCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+
IGNyZWF0ZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOwogICAgIH0KICAgICB2aXJ0dWFsIH5SZW1vdGVO
ZXR3b3JraW5nQ29udGV4dCgpOwogCiAgICAgLy8gRklYTUU6IFJlbW92ZSBwbGF0Zm9ybS1zcGVj
aWZpYyBjb2RlIGFuZCB1c2UgU2Vzc2lvblRyYWNrZXIuCi0gICAgc3RhdGljIHZvaWQgZW5zdXJl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpOworICAgIHN0YXRpYyB2
b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKIAog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0OyB9CiAKIHByaXZhdGU6Ci0gICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQo
dWludDY0X3Qgc2Vzc2lvbklELCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QpCisgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQoV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
KQogICAgICAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAgICAgLCBtX3Nob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qoc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRU
UFNUb0hUVFBSZWRpcmVjdCkKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTY2LDcgKzY3LDcgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9y
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlm
CiAKLSAgICB1aW50NjRfdCBtX3Nlc3Npb25JRDsKKyAgICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9z
ZXNzaW9uSUQ7CiAgICAgYm9vbCBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVk
aXJlY3Q7CiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRl
eCBhMGE4ZjY1Li4yYTdjNTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC03NywxNSAr
NzcsMTUgQEAgUmVzb3VyY2VFcnJvciBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVy
cm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWUKICAgICByZXR1cm4gV2ViS2l0OjpibG9j
a2VkRXJyb3IocmVxdWVzdCk7CiB9CiAKLXZvaWQgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQordm9pZCBSZW1v
dGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9u
SUQgc2Vzc2lvbklEKQogewotICAgIEFTU0VSVChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJ
RChzZXNzaW9uSUQpKTsKKyAgICBBU1NFUlQoc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpOwogCiAg
ICAgaWYgKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIEFTU0VSVCghU2Vzc2lvblRyYWNrZXI6OmdldElkZW50aWZpZXJCYXNlKCkuaXNO
dWxsKCkpOwotICAgIFNlc3Npb25UcmFja2VyOjpzZXRTZXNzaW9uKHNlc3Npb25JRCwgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFj
a2VyOjpnZXRJZGVudGlmaWVyQmFzZSgpICsgJy4nICsgU3RyaW5nOjpudW1iZXIoc2Vzc2lvbklE
KSkpOworICAgIFNlc3Npb25UcmFja2VyOjpzZXRTZXNzaW9uKHNlc3Npb25JRCwgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2Vy
OjpnZXRJZGVudGlmaWVyQmFzZSgpICsgJy4nICsgU3RyaW5nOjpudW1iZXIoc2Vzc2lvbklELnNl
c3Npb25JRCgpKSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHAK
aW5kZXggZDdjZjg2ZS4uM2JlOWRiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4dFNvdXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3Vw
LmNwcApAQCAtNDYsNyArNDYsNyBAQCBib29sIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojppc1Zh
bGlkKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBSZW1vdGVOZXR3b3JraW5n
Q29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQp
Cit2b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAppbmRleCA1NGNhYmY0Li5kN2Q5MmU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCkBAIC00MSw3ICs0MSw3IEBAIE5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycygpCiAgICAgOiBp
ZGVudGlmaWVyKDApCiAgICAgLCB3ZWJQYWdlSUQoMCkKICAgICAsIHdlYkZyYW1lSUQoMCkKLSAg
ICAsIHNlc3Npb25JRCgwKQorICAgICwgc2Vzc2lvbklEKFNlc3Npb25JRDo6ZW1wdHlTZXNzaW9u
SUQoKSkKICAgICAsIHByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdykKICAgICAs
IGNvbnRlbnRTbmlmZmluZ1BvbGljeShTbmlmZkNvbnRlbnQpCiAgICAgLCBhbGxvd1N0b3JlZENy
ZWRlbnRpYWxzKERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycy5oCmluZGV4IGNiZjQ1MzEuLjkxNjE1NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMu
aApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4K
IAogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAKQEAgLTUyLDcgKzUzLDcgQEAgcHVibGlj
OgogICAgIFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllcjsKICAgICB1aW50NjRfdCB3
ZWJQYWdlSUQ7CiAgICAgdWludDY0X3Qgd2ViRnJhbWVJRDsKLSAgICB1aW50NjRfdCBzZXNzaW9u
SUQ7CisgICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBy
ZXF1ZXN0Qm9keVNhbmRib3hFeHRlbnNpb25zOyAvLyBDcmVhdGVkIGF1dG9tYXRpY2FsbHkgZm9y
IHRoZSBzZW5kZXIuCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHJlc291cmNlU2FuZGJv
eEV4dGVuc2lvbjsgLy8gQ3JlYXRlZCBhdXRvbWF0aWNhbGx5IGZvciB0aGUgc2VuZGVyLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAKaW5kZXggNmU0ZDRmZi4uYmRjZmZi
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwCkBAIC0zMywyMiAr
MzMsMTkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci1jb25zdCB1aW50NjRfdCBTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNlc3Npb25JRDsKLWNvbnN0
IHVpbnQ2NF90IFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEOwotCi1zdGF0
aWMgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bj4+JiBzdGF0aWNTZXNzaW9uTWFwKCkKK3N0YXRpYyBIYXNoTWFwPFNlc3Npb25JRCwgc3RkOjp1
bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBzdGF0aWNTZXNzaW9uTWFwKCkKIHsK
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Np
b24+Pj4gbWFwOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPFNlc3Npb25JRCwg
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+PiBtYXA7CiAgICAgcmV0dXJu
IG1hcC5nZXQoKTsKIH0KIAotc3RhdGljIEhhc2hNYXA8Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uKiwgdWludDY0X3Q+JiBzdG9yYWdlU2Vzc2lvblRvSUQoKQorc3RhdGljIEhhc2hNYXA8Y29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiwgU2Vzc2lvbklEPiYgc3RvcmFnZVNlc3Npb25Ub0lE
KCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEhhc2hNYXA8Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiwgdWludDY0X3Q+
PiBtYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8Y29uc3QgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uKiwgU2Vzc2lvbklEPj4gbWFwOwogICAgIHJldHVybiBtYXAuZ2V0KCk7CiB9
CiAKQEAgLTYwLDcgKzU3LDcgQEAgc3RhdGljIFN0cmluZyYgaWRlbnRpZmllckJhc2UoKQogICAg
IHJldHVybiBiYXNlOwogfQogCi1jb25zdCBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9w
dHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIFNlc3Npb25UcmFja2VyOjpzZXNzaW9uTWFwKCkK
K2NvbnN0IEhhc2hNYXA8U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uPj4mIFNlc3Npb25UcmFja2VyOjpzZXNzaW9uTWFwKCkKIHsKICAgICByZXR1cm4gc3Rh
dGljU2Vzc2lvbk1hcCgpOwogfQpAQCAtNzAsMjggKzY3LDI4IEBAIGNvbnN0IFN0cmluZyYgU2Vz
c2lvblRyYWNrZXI6OmdldElkZW50aWZpZXJCYXNlKCkKICAgICByZXR1cm4gaWRlbnRpZmllckJh
c2UoKTsKIH0KIAotTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBTZXNzaW9uVHJhY2tlcjo6c2Vzc2lv
bih1aW50NjRfdCBzZXNzaW9uSUQpCitOZXR3b3JrU3RvcmFnZVNlc3Npb24qIFNlc3Npb25UcmFj
a2VyOjpzZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgaWYgKHNlc3Npb25JRCA9
PSBkZWZhdWx0U2Vzc2lvbklEKQorICAgIGlmIChzZXNzaW9uSUQgPT0gU2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCkpCiAgICAgICAgIHJldHVybiAmTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpk
ZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKICAgICByZXR1cm4gc3RhdGljU2Vzc2lvbk1hcCgpLmdl
dChzZXNzaW9uSUQpOwogfQogCi11aW50NjRfdCBTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbklEKGNv
bnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbikKK1Nlc3Npb25JRCBTZXNzaW9uVHJh
Y2tlcjo6c2Vzc2lvbklEKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbikKIHsK
ICAgICBpZiAoJnNlc3Npb24gPT0gJk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3Jh
Z2VTZXNzaW9uKCkpCi0gICAgICAgIHJldHVybiBkZWZhdWx0U2Vzc2lvbklEOworICAgICAgICBy
ZXR1cm4gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgcmV0dXJuIHN0b3JhZ2VT
ZXNzaW9uVG9JRCgpLmdldCgmc2Vzc2lvbik7CiB9CiAKLXZvaWQgU2Vzc2lvblRyYWNrZXI6OnNl
dFNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uPiBzZXNzaW9uKQordm9pZCBTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbihTZXNz
aW9uSUQgc2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBz
ZXNzaW9uKQogewotICAgIEFTU0VSVChzZXNzaW9uSUQgIT0gZGVmYXVsdFNlc3Npb25JRCk7Cisg
ICAgQVNTRVJUKHNlc3Npb25JRCAhPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAg
ICAgc3RvcmFnZVNlc3Npb25Ub0lEKCkuc2V0KHNlc3Npb24uZ2V0KCksIHNlc3Npb25JRCk7CiAg
ICAgc3RhdGljU2Vzc2lvbk1hcCgpLnNldChzZXNzaW9uSUQsIHN0ZDo6bW92ZShzZXNzaW9uKSk7
CiB9CiAKLXZvaWQgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKHVpbnQ2NF90IHNlc3Np
b25JRCkKK3ZvaWQgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKFNlc3Npb25JRCBzZXNz
aW9uSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBpZiAoc3RhdGlj
U2Vzc2lvbk1hcCgpLmNvbnRhaW5zKHNlc3Npb25JRCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nl
c3Npb25UcmFja2VyLmgKaW5kZXggMmViODFjOS4uMGIwMzAyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1Nlc3Npb25UcmFja2VyLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgU2Vzc2lvblRy
YWNrZXJfaAogCiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JREhhc2guaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KQEAgLTM2LDE2ICszNywxMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFNlc3Np
b25UcmFja2VyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTZXNzaW9uVHJhY2tlcik7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IGRlZmF1bHRTZXNzaW9uSUQgPSAxOwot
ICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBsZWdhY3lQcml2YXRlU2Vzc2lvbklEID0gMjsKLSAg
ICBzdGF0aWMgYm9vbCBpc0VwaGVtZXJhbElEKHVpbnQ2NF90IHNlc3Npb25JRCkgeyByZXR1cm4g
c2Vzc2lvbklEICE9IFNlc3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEOyB9CiAgICAgLy8g
RklYTUU6IHNlc3Npb25NYXAoKSdzIHJldHVybmVkIG1hcCBkb2VzIG5vdCBpbmNsdWRlIGRlZmF1
bHQgc2Vzc2lvbi4KLSAgICBzdGF0aWMgY29uc3QgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBzZXNzaW9uTWFwKCk7Cisg
ICAgc3RhdGljIGNvbnN0IEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIHNlc3Npb25NYXAoKTsKICAgICBz
dGF0aWMgY29uc3QgU3RyaW5nJiBnZXRJZGVudGlmaWVyQmFzZSgpOwotICAgIHN0YXRpYyBXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsK
LSAgICBzdGF0aWMgdWludDY0X3Qgc2Vzc2lvbklEKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYpOwotICAgIHN0YXRpYyB2b2lkIHNldFNlc3Npb24odWludDY0X3Qgc2Vzc2lv
bklELCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uPik7Ci0g
ICAgc3RhdGljIHZvaWQgZGVzdHJveVNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKKyAgICBz
dGF0aWMgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBzZXNzaW9uKFdlYkNvcmU6OlNl
c3Npb25JRCk7CisgICAgc3RhdGljIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQoY29uc3Qg
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJik7CisgICAgc3RhdGljIHZvaWQgc2V0U2Vz
c2lvbihXZWJDb3JlOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb24+KTsKKyAgICBzdGF0aWMgdm9pZCBkZXN0cm95U2Vzc2lvbihXZWJDb3Jl
OjpTZXNzaW9uSUQpOwogICAgIHN0YXRpYyB2b2lkIHNldElkZW50aWZpZXJCYXNlKGNvbnN0IFN0
cmluZyYpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmNwcAppbmRleCAxNzNlM2QzLi4xM2ViMWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtNTcsNiArNTcsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Ny
b2xsaW5nQ29uc3RyYWludHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1RleHRDaGVja2VyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UcmFuc2Zvcm1hdGlvbk1h
dHJpeC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CkBAIC0xODgwLDYgKzE4ODEsMjMgQEAg
Ym9vbCBBcmd1bWVudENvZGVyPElEQk9iamVjdFN0b3JlTWV0YWRhdGE+OjpkZWNvZGUoQXJndW1l
bnREZWNvZGVyJiBkZWNvZGVyLCBJREIKIAogICAgIHJldHVybiB0cnVlOwogfQotI2VuZGlmCisK
KyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKwordm9pZCBBcmd1bWVudENvZGVy
PFNlc3Npb25JRD46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNlc3Np
b25JRCYgc2Vzc2lvbklEKQoreworICAgIGVuY29kZXIgPDwgc2Vzc2lvbklELnNlc3Npb25JRCgp
OworfQorCitib29sIEFyZ3VtZW50Q29kZXI8U2Vzc2lvbklEPjo6ZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYgZGVjb2RlciwgU2Vzc2lvbklEJiBzZXNzaW9uSUQpCit7CisgICAgdWludDY0X3Qgc2Vz
c2lvbjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNlc3Npb24pKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBzZXNzaW9uSUQgPSBTZXNzaW9uSUQoc2Vzc2lvbik7CisKKyAgICByZXR1
cm4gdHJ1ZTsKK30KIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggYTRlMjY0Zi4uZjU5ZmQzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtNTUsNiAr
NTUsNyBAQCBjbGFzcyBSZWdpb247CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3Vy
Y2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKK2NsYXNzIFNlc3Npb25JRDsKIGNs
YXNzIFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNzIFRleHRDaGVja2lu
Z1JlcXVlc3REYXRhOwogY2xhc3MgVHJhbnNmb3JtYXRpb25NYXRyaXg7CkBAIC0zOTcsNyArMzk4
LDEzIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SURCT2JqZWN0
U3RvcmVNZXRhZGF0YT4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpJREJPYmplY3RTdG9yZU1ldGFkYXRhJik7CiAgICAgc3RhdGljIGJv
b2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OklEQk9iamVjdFN0b3JlTWV0YWRh
dGEmKTsKIH07Ci0jZW5kaWYKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQor
Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlc3Npb25JRD4gewor
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpT
ZXNzaW9uSUQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2Vi
Q29yZTo6U2Vzc2lvbklEJik7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBJUEMKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0ubW0KaW5kZXggYzZkNzA1Zi4u
ZjA5ZmY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9y
YWdlU2hpbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VT
aGltLm1tCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiQ29va2llU3RvcmFnZVNoaW1MaWJy
YXJ5LmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNs
dWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJTZXNzaW9uVHJhY2tl
ci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSAiV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvVVJMLmg+CkBAIC01OCw3ICs1OCw3IEBAIHN0YXRpYyBDRkRpY3Rpb25hcnlSZWYgd2ViS2l0
Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKENGSFRUUENvCiB7CiAg
ICAgU3RyaW5nIGNvb2tpZXM7CiAgICAgVVJMIGZpcnN0UGFydHlGb3JDb29raWVzVVJMOwotICAg
IGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlv
bigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFNlc3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lv
bklELCBmaXJzdFBhcnR5Rm9yQ29va2llc1VSTCwgaW5SZXF1ZXN0VVJMKSwgTWVzc2FnZXM6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRm9yRE9NOjpSZXBseShjb29raWVz
KSwgMCkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVjdGlvbigp
LT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvbklEOjpkZWZhdWx0
U2Vzc2lvbklEKCksIGZpcnN0UGFydHlGb3JDb29raWVzVVJMLCBpblJlcXVlc3RVUkwpLCBNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNGb3JET006OlJlcGx5
KGNvb2tpZXMpLCAwKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAoY29va2llcy5pc051
bGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmNwcAppbmRleCAwOGQ4NGFm
Li4wNDgwMmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uY3BwCkBAIC0z
NCw3ICszNCw3IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUlEKGJvb2wgaXNFcGhlbWVyYWwp
CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHN0YXRpYyB1aW50NjRf
dCB1bmlxdWVTZXNzaW9uSUQgPSBXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEOworICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVTZXNzaW9uSUQgPSBXZWJDb3Jl
OjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKS5zZXNzaW9uSUQoKTsKICAgICBB
U1NFUlQoaXNFcGhlbWVyYWwpOwogICAgIHJldHVybiArK3VuaXF1ZVNlc3Npb25JRDsKIH0KQEAg
LTQzLDcgKzQzLDcgQEAgU2Vzc2lvbiYgU2Vzc2lvbjo6ZGVmYXVsdFNlc3Npb24oKQogewogICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBzdGF0aWMgU2Vzc2lvbiogZGVmYXVs
dFNlc3Npb24gPSBuZXcgU2Vzc2lvbihmYWxzZSwgV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6ZGVm
YXVsdFNlc3Npb25JRCk7CisgICAgc3RhdGljIFNlc3Npb24qIGRlZmF1bHRTZXNzaW9uID0gbmV3
IFNlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAgIHJl
dHVybiAqZGVmYXVsdFNlc3Npb247CiB9CiAKQEAgLTUxLDE5ICs1MSwxNyBAQCBTZXNzaW9uJiBT
ZXNzaW9uOjpsZWdhY3lQcml2YXRlU2Vzc2lvbigpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKIAotICAgIHN0YXRpYyBTZXNzaW9uKiBsZWdhY3lQcml2YXRlU2Vzc2lvbiA9IG5l
dyBTZXNzaW9uKHRydWUsIFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQpOworICAgIHN0YXRpYyBTZXNzaW9uKiBsZWdhY3lQcml2YXRlU2Vzc2lvbiA9IG5ldyBT
ZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKICAg
ICByZXR1cm4gKmxlZ2FjeVByaXZhdGVTZXNzaW9uOwogfQogCiBTZXNzaW9uOjpTZXNzaW9uKGJv
b2wgaXNFcGhlbWVyYWwpCi0gICAgOiBtX2lzRXBoZW1lcmFsKGlzRXBoZW1lcmFsKQotICAgICwg
bV9zZXNzaW9uSUQoZ2VuZXJhdGVJRChpc0VwaGVtZXJhbCkpCisgICAgOiBtX3Nlc3Npb25JRChn
ZW5lcmF0ZUlEKGlzRXBoZW1lcmFsKSkKIHsKIH0KIAotU2Vzc2lvbjo6U2Vzc2lvbihib29sIGlz
RXBoZW1lcmFsLCB1aW50NjRfdCBzZXNzaW9uSUQpCi0gICAgOiBtX2lzRXBoZW1lcmFsKGlzRXBo
ZW1lcmFsKQotICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQorU2Vzc2lvbjo6U2Vzc2lvbihX
ZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklE
KQogewogfQogCkBAIC03NSwxMCArNzMsMTAgQEAgUGFzc1JlZlB0cjxTZXNzaW9uPiBTZXNzaW9u
OjpjcmVhdGUoYm9vbCBpc0VwaGVtZXJhbCkKIAogYm9vbCBTZXNzaW9uOjppc0VwaGVtZXJhbCgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faXNFcGhlbWVyYWw7CisgICAgcmV0dXJuIG1fc2Vzc2lv
bklELmlzRXBoZW1lcmFsKCk7CiB9CiAKLXVpbnQ2NF90IFNlc3Npb246OmdldElEKCkgY29uc3QK
K1dlYkNvcmU6OlNlc3Npb25JRCBTZXNzaW9uOjpnZXRJRCgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fc2Vzc2lvbklEOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SVNlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmgKaW5kZXgg
YmQ2MDRiMi4uZmZjNWIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5oCkBA
IC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIEFQSVNlc3Npb25faAogCiAjaW5jbHVkZSAiQVBJT2Jq
ZWN0LmgiCi0jaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Nl
c3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBBUEkg
ewpAQCAtMzksMTQgKzM5LDEzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU2Vzc2lvbiYgZGVmYXVs
dFNlc3Npb24oKTsKICAgICBzdGF0aWMgU2Vzc2lvbiYgbGVnYWN5UHJpdmF0ZVNlc3Npb24oKTsK
ICAgICBib29sIGlzRXBoZW1lcmFsKCkgY29uc3Q7Ci0gICAgdWludDY0X3QgZ2V0SUQoKSBjb25z
dDsKKyAgICBXZWJDb3JlOjpTZXNzaW9uSUQgZ2V0SUQoKSBjb25zdDsKICAgICB2aXJ0dWFsIH5T
ZXNzaW9uKCk7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU2Vzc2lvbihib29sIGlzRXBoZW1l
cmFsKTsKLSAgICBTZXNzaW9uKGJvb2wgaXNFcGhlbWVyYWwsIHVpbnQ2NF90IHNlc3Npb25JRCk7
Ci0gICAgYm9vbCBtX2lzRXBoZW1lcmFsOwotICAgIHVpbnQ2NF90IG1fc2Vzc2lvbklEOworICAg
IGV4cGxpY2l0IFNlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBXZWJDb3JlOjpTZXNz
aW9uSUQgbV9zZXNzaW9uSUQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCAzNDUzNjQ4Li5hNTA4ZTQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk11dGFibGVEaWN0aW9uYXJ5LmgiCiAjaW5jbHVk
ZSAiU2FuZGJveEV4dGVuc2lvbi5oIgotI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5j
bHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1
ZGUgIldLQ29udGV4dFByaXZhdGUuaCIKQEAgLTYzLDYgKzYyLDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL0xpbmtIYXNoLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50
VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC00ODYsMTYgKzQ4NiwxNiBA
QCB2b2lkIFdlYkNvbnRleHQ6OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2lu
Z0VuYWJsZWQoYm9vbCBwcml2YXRlQnJvdwogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAg
ICAgaWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpICYmIG5ldHdvcmtQcm9jZXNzKCkpIHsKICAgICAg
ICAgaWYgKHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAgICAgICAgICBuZXR3b3JrUHJvY2Vz
cygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCksIDApOworICAg
ICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vz
c2lvbklEKCkpLCAwKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3Mo
KS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRlc3Ryb3lQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKSwgMCk7CisgICAg
ICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
RGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vz
c2lvbklEKCkpLCAwKTsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFRChORVRXT1JLX1BST0NFU1Mp
CiAKICAgICBpZiAocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAgICAgICAgc2VuZFRvQWxsUHJv
Y2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKSk7CisgICAgICAgIHNlbmRU
b0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpOwogICAgIGVsc2UK
LSAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Np
b25JRCkpOworICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6
OkRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNl
c3Npb25JRCgpKSk7CiB9CiAKIHZvaWQgKCpzX2ludmFsaWRNZXNzYWdlQ2FsbGJhY2spKFdLU3Ry
aW5nUmVmIG1lc3NhZ2VOYW1lKTsKQEAgLTYyNSw3ICs2MjUsNyBAQCBXZWJQcm9jZXNzUHJveHkm
IFdlYkNvbnRleHQ6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoKQogI2VuZGlmCiAKICAgICBpZiAoV2Vi
UHJlZmVyZW5jZXM6OmFueVBhZ2VzQXJlVXNpbmdQcml2YXRlQnJvd3NpbmcoKSkKLSAgICAgICAg
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCksIDApOworICAg
ICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSwgMCk7CiAK
ICAgICBtX3Byb2Nlc3Nlcy5hcHBlbmQocHJvY2Vzcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5oCmluZGV4IDg2ZGQyZDguLjIwNTRkNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbnRleHQuaApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIldlYkRvd25sb2Fk
Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9MaW5rSGFzaC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CkBAIC0zMDYsNyArMzA3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHdp
bGxTdGFydFVzaW5nUHJpdmF0ZUJyb3dzaW5nKCk7CiAgICAgc3RhdGljIHZvaWQgd2lsbFN0b3BV
c2luZ1ByaXZhdGVCcm93c2luZygpOwogCi0gICAgc3RhdGljIGJvb2wgaXNFcGhlbWVyYWxTZXNz
aW9uKHVpbnQ2NF90IHNlc3Npb25JRCk7CisgICAgc3RhdGljIGJvb2wgaXNFcGhlbWVyYWxTZXNz
aW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CiAKICNpZiBVU0UoU09VUCkKICAgICB2b2lkIHNldEln
bm9yZVRMU0Vycm9ycyhib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCBjOTI0Yzk3Li42YTUxMTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC0zMzcsNyArMzM3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2Vzc2lv
bihBUEk6OlNlc3Npb24mKTsKIAogICAgIHVpbnQ2NF90IHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJu
IG1fcGFnZUlEOyB9Ci0gICAgdWludDY0X3Qgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9z
ZXNzaW9uLT5nZXRJRCgpOyB9CisgICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2Vzc2lvbi0+Z2V0SUQoKTsgfQogCiAgICAgV2ViRnJhbWVQcm94eSog
bWFpbkZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWUuZ2V0KCk7IH0KICAgICBXZWJG
cmFtZVByb3h5KiBmb2N1c2VkRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZvY3VzZWRGcmFtZS5n
ZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCAxZWY5OGMzLi45MTgxYTE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcApAQCAtNjcsNiArNjcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
U2NyaXB0Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5UG9saWN5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9T
ZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Vc2VyR2VzdHVyZUluZGljYXRvci5oPgogCkBAIC0zMDgsOSArMzA5LDkgQEAgdm9pZCBJ
bmplY3RlZEJ1bmRsZTo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChXZWJQYWdlR3JvdXBQcm94
eSogcGFnZUdyb3VwLCBib28KICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBUaGlzIHRl
c3Qtb25seSBmdW5jdGlvbiBkb2Vzbid0IHdvcmsgd2l0aCBOZXR3b3JrUHJvY2VzcywgPGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTUyNzQ+LgogI2lmIFBMQVRGT1JN
KENPQ09BKSB8fCBVU0UoQ0ZORVRXT1JLKSB8fCBVU0UoU09VUCkKICAgICBpZiAoZW5hYmxlZCkK
LSAgICAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7CisgICAgICAg
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwogICAgIGVsc2UKLSAgICAgICAg
U2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2
YXRlU2Vzc2lvbklEKTsKKyAgICAgICAgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKFNl
c3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKICNlbmRpZgogICAgIGNvbnN0IEhh
c2hTZXQ8UGFnZSo+JiBwYWdlcyA9IFBhZ2VHcm91cDo6cGFnZUdyb3VwKHBhZ2VHcm91cC0+aWRl
bnRpZmllcigpKS0+cGFnZXMoKTsKICAgICBmb3IgKEhhc2hTZXQ8UGFnZSo+OjppdGVyYXRvciBp
dGVyID0gcGFnZXMuYmVnaW4oKTsgaXRlciAhPSBwYWdlcy5lbmQoKTsgKytpdGVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNj
aGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyLmNwcAppbmRleCBlYWJkNjU0Li5hNWZjZjc0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVm
ZXJyZXJQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lv
bklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U3VicmVzb3VyY2VMb2FkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0x
MTgsNyArMTE5LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9h
ZChSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIsIENhY2gKICAgICBsb2FkUGFyYW1ldGVy
cy5pZGVudGlmaWVyID0gaWRlbnRpZmllcjsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQg
PSB3ZWJQYWdlID8gd2ViUGFnZS0+cGFnZUlEKCkgOiAwOwogICAgIGxvYWRQYXJhbWV0ZXJzLndl
YkZyYW1lSUQgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAwOwotICAgIGxvYWRQ
YXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNl
c3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEOworICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Np
b25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVs
dFNlc3Npb25JRCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXNvdXJjZUxvYWRl
ci0+cmVxdWVzdCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnByaW9yaXR5ID0gcHJpb3JpdHk7CiAg
ICAgbG9hZFBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5ID0gY29udGVudFNuaWZmaW5n
UG9saWN5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDU5NWIzMDUu
LjE5NDllMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTU0LDYg
KzU0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlRXJyb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU3RvcmFnZU5hbWVzcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3ViZnJhbWVMb2Fk
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgpAQCAtMjU4LDcgKzI1OSw3IEBAIHZvaWQg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtp
bmdDb250ZXh0KiBjb250ZXh0CiAgICAgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllciA9IHJlc291
cmNlTG9hZElkZW50aWZpZXI7CiAgICAgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlEID0gd2ViUGFn
ZSA/IHdlYlBhZ2UtPnBhZ2VJRCgpIDogMDsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlE
ID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgpIDogMDsKLSAgICBsb2FkUGFyYW1ldGVy
cy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBTZXNzaW9uVHJh
Y2tlcjo6ZGVmYXVsdFNlc3Npb25JRDsKKyAgICBsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3
ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKTsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBsb2FkUGFy
YW1ldGVycy5wcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5SGlnaGVzdDsKICAgICBsb2Fk
UGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBTbmlmZkNvbnRlbnQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggODYyOWZhOC4uZGVm
MjAzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApA
QCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNp
bmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCkBAIC00MCw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBGSVhNRTog
cmVtb3ZlIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUgYW5kIHVzZSBTZXNzaW9uVHJhY2tlcgotICAg
IHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lv
bklEKTsKKyAgICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNv
cmU6OlNlc3Npb25JRCk7CiAKICAgICBzdGF0aWMgdm9pZCBzZXRDb29raWVBY2NlcHRQb2xpY3lG
b3JBbGxDb250ZXh0cyhIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
bWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggM2M1MjUxNi4uMjZiZmZjNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC00
Miw5ICs0Miw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKICAgICAKLXZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCit2b2lkIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25J
RCkKIHsKLSAgICBBU1NFUlQoU2Vzc2lvblRyYWNrZXI6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklE
KSk7CisgICAgQVNTRVJUKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKTsKIAogICAgIGlmIChTZXNz
aW9uVHJhY2tlcjo6c2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICByZXR1cm47CkBAIC01NSw3
ICs1NSw3IEBAIHZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCiAgICAgZWxzZQogICAgICAgICBiYXNl
ID0gU2Vzc2lvblRyYWNrZXI6OmdldElkZW50aWZpZXJCYXNlKCk7CiAKLSAgICBTZXNzaW9uVHJh
Y2tlcjo6c2V0U2Vzc2lvbihzZXNzaW9uSUQsIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihiYXNlICsgJy4nICsgU3RyaW5nOjpudW1iZXIoc2Vzc2lv
bklEKSkpOworICAgIFNlc3Npb25UcmFja2VyOjpzZXRTZXNzaW9uKHNlc3Npb25JRCwgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKGJhc2UgKyAnLicg
KyBTdHJpbmc6Om51bWJlcihzZXNzaW9uSUQuc2Vzc2lvbklEKCkpKSk7CiB9CiAKIHZvaWQgV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2V0Q29va2llQWNjZXB0UG9saWN5Rm9yQWxsQ29udGV4
dHMoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCkBAIC0xMDEsMTAgKzEwMSw3IEBAIFJl
c291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxCiBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKCkgY29uc3QKIHsKICAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwotCi0gICAgaWYgKGZyYW1lKCkpCi0gICAgICAgIHJldHVybiAqU2Vz
c2lvblRyYWNrZXI6OnNlc3Npb24od2ViRnJhbWVMb2FkZXJDbGllbnQoKS0+d2ViRnJhbWUoKS0+
cGFnZSgpLT5zZXNzaW9uSUQoKSk7Ci0gICAgcmV0dXJuIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CisgICAgcmV0dXJuICpTZXNzaW9uVHJhY2tlcjo6c2Vz
c2lvbihmcmFtZSgpID8gZnJhbWUoKS0+cGFnZSgpLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpKTsKIH0KIAogV2ViRnJhbWVMb2FkZXJDbGllbnQqIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQ6OndlYkZyYW1lTG9hZGVyQ2xpZW50KCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAppbmRleCA0ZDEzZGMz
Li43NzczN2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIK
ICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtMzcsMTQgKzM4LDE0IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNl
c3Npb25JRCkKK3ZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAKICAgICBpZiAoU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oc2Vzc2lvbklEKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24oc2Vzc2lv
bklELCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
U3RyaW5nOjpudW1iZXIoc2Vzc2lvbklEKSkpOworICAgIFNlc3Npb25UcmFja2VyOjpzZXRTZXNz
aW9uKHNlc3Npb25JRCwgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKFN0cmluZzo6bnVtYmVyKHNlc3Npb25JRC5zZXNzaW9uSUQoKSkpKTsKIH0KIAog
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChXZWJG
cmFtZSogZnJhbWUpCkBAIC01NSw3ICs1Niw3IEBAIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6
OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoV2ViRnJhbWUqIGZyYW1lKQogTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbigpIGNv
bnN0CiB7CiAgICAgaWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+c2V0dGluZ3MoKS5wcml2YXRlQnJv
d3NpbmdFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiAqU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24o
U2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAgICAgICByZXR1cm4g
KlNlc3Npb25UcmFja2VyOjpzZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25J
RCgpKTsKIAogICAgIHJldHVybiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdl
U2Vzc2lvbigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmgKaW5kZXggMjYzMDYxYTAuLjkzNDEwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMjksNiArMjksNyBAQAogI2RlZmluZSBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKIAogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCkBAIC00Miw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKSk7CiAgICAgfQogCi0g
ICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNz
aW9uSUQpOworICAgIHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2Vi
Q29yZTo6U2Vzc2lvbklEKTsKIAogICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFtZUxv
YWRlckNsaWVudCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggMGRjODU3OC4uZTM5Y2JhYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTM0LDYgKzEzNCw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Ny
aXB0Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFsaXplZFNjcmlwdFZhbHVl
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nl
dHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFkb3dSb290Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TaGFyZWRCdWZmZXIuaD4KQEAgLTIyOCw3ICsyMjksNiBAQCBQYXNzUmVmUHRyPFdlYlBh
Z2U+IFdlYlBhZ2U6OmNyZWF0ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlv
blBhcmFtZQogCiBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICA6IG1fcGFnZUlEKHBhZ2VJRCkK
LSAgICAsIG1fc2Vzc2lvbklEKDApCiAgICAgLCBtX3ZpZXdTaXplKHBhcmFtZXRlcnMudmlld1Np
emUpCiAgICAgLCBtX2hhc1NlZW5QbHVnaW4oZmFsc2UpCiAgICAgLCBtX3VzZUZpeGVkTGF5b3V0
KGZhbHNlKQpAQCAtMjExMCwyMyArMjExMCwyMyBAQCB2b2lkIFdlYlBhZ2U6OnNldExheWVySG9z
dGluZ01vZGUodW5zaWduZWQgbGF5ZXJIb3N0aW5nTW9kZSkKICAgICAgICAgcGx1Z2luVmlldy0+
c2V0TGF5ZXJIb3N0aW5nTW9kZShtX2xheWVySG9zdGluZ01vZGUpOwogfQogCi11aW50NjRfdCBX
ZWJQYWdlOjpzZXNzaW9uSUQoKSBjb25zdAorU2Vzc2lvbklEIFdlYlBhZ2U6OnNlc3Npb25JRCgp
IGNvbnN0CiB7Ci0gICAgaWYgKG1fc2Vzc2lvbklEKQotICAgICAgICByZXR1cm4gbV9zZXNzaW9u
SUQ7CisgICAgaWYgKG1fcGFnZS0+aXNTZXNzaW9uSURTZXQoKSkKKyAgICAgICAgcmV0dXJuIG1f
cGFnZS0+c2Vzc2lvbklEKCk7CiAKLSAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLnByaXZh
dGVCcm93c2luZ0VuYWJsZWQoKSA/IFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lv
bklEIDogU2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQ7CisgICAgcmV0dXJuIG1fcGFn
ZS0+c2V0dGluZ3MoKS5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkgPyBTZXNzaW9uSUQ6OmxlZ2Fj
eVByaXZhdGVTZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogfQog
CiBib29sIFdlYlBhZ2U6OmlzVXNpbmdFcGhlbWVyYWxTZXNzaW9uKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gU2Vzc2lvblRyYWNrZXI6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKCkpOworICAgIHJl
dHVybiBzZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNldFNl
c3Npb25JRCh1aW50NjRfdCBzZXNzaW9uSUQpCit2b2lkIFdlYlBhZ2U6OnNldFNlc3Npb25JRChT
ZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIG1fc2Vzc2lvbklEID0gc2Vzc2lvbklEOwotICAg
IGlmIChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKQorICAgIG1fcGFn
ZS0+c2V0U2Vzc2lvbklEKHNlc3Npb25JRCk7CisgICAgaWYgKHNlc3Npb25JRC5pc0VwaGVtZXJh
bCgpKQogICAgICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5lbnN1cmVQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKHNlc3Npb25JRCk7CiB9CiAKQEAgLTI0MzIsOCArMjQzMiw4IEBAIHZvaWQgV2ViUGFn
ZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAg
ICAgc2V0dGluZ3Muc2V0TG9jYWxTdG9yYWdlRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JL
ZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmxvY2FsU3RvcmFnZUVuYWJsZWRLZXkoKSkpOwogICAgIHNl
dHRpbmdzLnNldFhTU0F1ZGl0b3JFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6eHNzQXVkaXRvckVuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLnNl
dEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZl
cmVuY2VzS2V5OjpmcmFtZUZsYXR0ZW5pbmdFbmFibGVkS2V5KCkpKTsKLSAgICBpZiAobV9zZXNz
aW9uSUQpCi0gICAgICAgIHNldHRpbmdzLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoU2Vzc2lv
blRyYWNrZXI6OmlzRXBoZW1lcmFsSUQobV9zZXNzaW9uSUQpKTsKKyAgICBpZiAobV9wYWdlLT5p
c1Nlc3Npb25JRFNldCgpKQorICAgICAgICBzZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFi
bGVkKG1fcGFnZS0+c2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKSk7CiAgICAgZWxzZQogICAgICAg
ICBzZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZEtleSgpKSk7CiAg
ICAgc2V0dGluZ3Muc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmRldmVsb3BlckV4dHJhc0VuYWJsZWRLZXkoKSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMTI0ZThh
MC4uMmQ4NDUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCkBAIC0xOTAsOSArMTkwLDkgQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6UGFnZSogY29y
ZVBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KICAgICB1aW50NjRfdCBwYWdl
SUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfQotICAgIHVpbnQ2NF90IHNlc3Npb25JRCgp
IGNvbnN0OworICAgIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdDsKICAgICBi
b29sIGlzVXNpbmdFcGhlbWVyYWxTZXNzaW9uKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRTZXNzaW9u
SUQodWludDY0X3QpOworICAgIHZvaWQgc2V0U2Vzc2lvbklEKFdlYkNvcmU6OlNlc3Npb25JRCk7
CiAKICAgICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdTaXplOyB9CkBA
IC05MTYsNyArOTE2LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcG9ydFVzZWRGZWF0dXJlcygp
OwogCiAgICAgdWludDY0X3QgbV9wYWdlSUQ7Ci0gICAgdWludDY0X3QgbV9zZXNzaW9uSUQ7CiAK
ICAgICBPd25QdHI8V2ViQ29yZTo6UGFnZT4gbV9wYWdlOwogICAgIFJlZlB0cjxXZWJGcmFtZT4g
bV9tYWluRnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDQyZmI5NDYuLjU3ZmE0ZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CkBAIC0yNSw3ICsyNSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewog
ICAgIFNldFZpZXdTdGF0ZSh1bnNpZ25lZCB2aWV3U3RhdGUsIGJvb2wgd2FudHNEaWRVcGRhdGVW
aWV3U3RhdGUpCiAgICAgU2V0TGF5ZXJIb3N0aW5nTW9kZSh1bnNpZ25lZCBsYXllckhvc3RpbmdN
b2RlKQogCi0gICAgU2V0U2Vzc2lvbklEKHVpbnQ2NF90IHNlc3Npb25JRCkKKyAgICBTZXRTZXNz
aW9uSUQoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIAogICAgIFNldERyYXdzQmFja2dy
b3VuZChib29sIGRyYXdzQmFja2dyb3VuZCkKICAgICBTZXREcmF3c1RyYW5zcGFyZW50QmFja2dy
b3VuZChib29sIGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggM2QwNzNiYS4uYTY1YzhhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00NjUsMTQgKzQ2NSwxNCBAQCB2b2lk
IFdlYlByb2Nlc3M6OmZ1bGxLZXlib2FyZEFjY2Vzc01vZGVDaGFuZ2VkKGJvb2wgZnVsbEtleWJv
YXJkQWNjZXNzRW5hYmxlZCkKICAgICBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgPSBmdWxs
S2V5Ym9hcmRBY2Nlc3NFbmFibGVkOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmVuc3VyZVByaXZh
dGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQordm9pZCBXZWJQcm9jZXNzOjpl
bnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAjaWYg
UExBVEZPUk0oQ09DT0EpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVTRShTT1VQKQogICAgIFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oc2Vzc2lv
bklEKTsKICNlbmRpZgogfQogCi12b2lkIFdlYlByb2Nlc3M6OmRlc3Ryb3lQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKK3ZvaWQgV2ViUHJvY2Vzczo6ZGVzdHJveVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICNpZiBQTEFURk9S
TShDT0NPQSkgfHwgVVNFKENGTkVUV09SSykgfHwgVVNFKFNPVVApCiAgICAgU2Vzc2lvblRyYWNr
ZXI6OmRlc3Ryb3lTZXNzaW9uKHNlc3Npb25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCmluZGV4IDJiMWNhZWQuLmFlNTJjOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiVGV4dENoZWNrZXJT
dGF0ZS5oIgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rVGFibGUuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0xpbmtIYXNoLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1RpbWVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgpAQCAtMTYzLDggKzE2NCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Q2Fj
aGVNb2RlbCh1aW50MzJfdCk7CiAKLSAgICB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24odWludDY0X3Qgc2Vzc2lvbklEKTsKLSAgICB2b2lkIGRlc3Ryb3lQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCk7CisgICAgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBkZXN0cm95UHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOwogCiAgICAgdm9pZCBwYWdlRGlkRW50
ZXJXaW5kb3codWludDY0X3QgcGFnZUlEKTsKICAgICB2b2lkIHBhZ2VXaWxsTGVhdmVXaW5kb3co
dWludDY0X3QgcGFnZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgppbmRleCA5MmU3MDgwLi42ZmFiMmYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC01NSw4ICs1NSw4
IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogI2VuZGlmCiAKICAg
ICAvLyBMZWdhY3kgcHJpdmF0ZSBicm93c2luZyBzZXNzaW9uIGlzIHBlciBwcm9jZXNzLiBJbmRp
dmlkdWFsIHBhZ2VzIG9yIHBhZ2UgZ3JvdXBzIG1heSB1c2UgdGhlIHByaXZhdGUgc2Vzc2lvbiBv
ciB0aGUgZGVmYXVsdCBvbmUgYXMgYXBwcm9wcmlhdGUuCi0gICAgRW5zdXJlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCi0gICAgRGVzdHJveVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQorICAgIEVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICBEZXN0cm95UHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogCiAgICAgIyBQbHVn
LWlucy4KICAgICBEaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVpbnQzMl90IGhhc2gs
IGRvdWJsZSBleHBpcmF0aW9uVGltZSkK
</data>
<flag name="review"
          id="249306"
          type_id="1"
          status="-"
          setter="mhock"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225188</attachid>
            <date>2014-02-25 15:13:51 -0800</date>
            <delta_ts>2014-02-26 10:20:27 -0800</delta_ts>
            <desc>fix pbxproj</desc>
            <filename>sessionidclass.09b.diff</filename>
            <type>text/plain</type>
            <size>70635</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhMGYwM2E1Li4xZGM2NjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTQtMDItMjUgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IENyZWF0ZSBTZXNzaW9uSUQgdmFsdWUtc3R5bGUgY2xhc3MgZm9yIHNlc3Npb24gSURzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MTQxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOiBBZGQg
U2Vzc2lvbklEIG1lbWJlci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6c2Vzc2lvbklEKTogUmV0cmlldmUgc2Vzc2lvbklEIG9yIHVzZSBz
ZXR0aW5ncyBpZiBub3Qgc2V0LgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZTo6aXNTZXNzaW9uSURTZXQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0
U2Vzc2lvbklEKToKKyAgICAgICAgKiBwYWdlL1Nlc3Npb25JRC5oOiBTZXNzaW9uIElEIGNsYXNz
IGNvbnNpc3Rpbmcgc29sZWx5IG9mIGl0cyB1aW50NjRfdCBzZXNzaW9uIElELgorICAgICAgICAo
V2ViQ29yZTo6U2Vzc2lvbklEOjpTZXNzaW9uSUQpOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lv
bklEOjppc1ZhbGlkKTogTm90IGVtcHR5LgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbklEOjpp
c0VwaGVtZXJhbCk6CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ6OnNlc3Npb25JRCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ6Om9wZXJhdG9yPT0pOiBWYWx1ZS1iYXNlZCBlcXVh
bGl0eS4KKyAgICAgICAgKFdlYkNvcmU6OlNlc3Npb25JRDo6b3BlcmF0b3IhPSk6CisgICAgICAg
IChXZWJDb3JlOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKTogWmVybyB2YWx1ZSBhbHNvIHVz
ZWQgZm9yIEhhc2hUcmFpdHMgZW1wdHlWYWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCk6CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ6OmxlZ2Fj
eVByaXZhdGVTZXNzaW9uSUQpOgorICAgICAgICAqIHBhZ2UvU2Vzc2lvbklESGFzaC5oOgorICAg
ICAgICAoV1RGOjpTZXNzaW9uSURIYXNoOjpoYXNoKTogSnVzdCB0aGUgY2FzdGVkIHNlc3Npb24g
SUQgKGxvdyBvcmRlciBieXRlcykKKyAgICAgICAgKFdURjo6U2Vzc2lvbklESGFzaDo6ZXF1YWwp
OgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlNlc3Npb25JRD46OmVtcHR5VmFs
dWUpOiBFcXVhbCB0byBlbXB0eVNlc3Npb25JRC4KKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxX
ZWJDb3JlOjpTZXNzaW9uSUQ+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOiAtMSB2YWx1ZS4KKyAg
ICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpTZXNzaW9uSUQ+Ojppc0RlbGV0ZWRWYWx1
ZSk6CisKIDIwMTQtMDItMjUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4K
IAogICAgICAgICBHZXQgcmlkIG9mIFZpc2l0ZWRMaW5rU3RyYXRlZ3kKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IDg0MjU2ZTQuLmExOTM2YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtNDE3NSw2ICs0MTc1LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luSGFzaC5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0
eVBvbGljeS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCmluZGV4IDA2NzJjN2IuLjdlY2E0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CkBAIC0xMDA0LDYgKzEwMDQsNyBAQCBfX1pON1dlYkNvcmU0UGFnZTExUGFnZUNsaWVudHNDMUV2
CiBfX1pON1dlYkNvcmU0UGFnZTExUGFnZUNsaWVudHNEMUV2CiBfX1pON1dlYkNvcmU0UGFnZTEy
c2V0R3JvdXBOYW1lRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlNFBhZ2UxMnNldElzVmlz
aWJsZUViCitfX1pON1dlYkNvcmU0UGFnZTEyc2V0U2Vzc2lvbklERU5TXzlTZXNzaW9uSURFCiBf
X1pON1dlYkNvcmU0UGFnZTEyc2V0Vmlld1N0YXRlRWoKIF9fWk43V2ViQ29yZTRQYWdlMTNyYW5n
ZU9mU3RyaW5nRVJLTjNXVEY2U3RyaW5nRVBOU181UmFuZ2VFagogX19aTjdXZWJDb3JlNFBhZ2Ux
M3NldElzSW5XaW5kb3dFYgpAQCAtMTc0Myw2ICsxNzQ0LDcgQEAgX19aTks3V2ViQ29yZTRQYWdl
MTd2aWV3cG9ydEFyZ3VtZW50c0V2CiBfX1pOSzdXZWJDb3JlNFBhZ2UzNGluTG93UXVhbGl0eUlt
YWdlSW50ZXJwb2xhdGlvbk1vZGVFdgogX19aTks3V2ViQ29yZTRQYWdlOWdyb3VwTmFtZUV2CiBf
X1pOSzdXZWJDb3JlNFBhZ2U5cGFnZUNvdW50RXYKK19fWk5LN1dlYkNvcmU0UGFnZTlzZXNzaW9u
SURFdgogX19aTks3V2ViQ29yZTVDb2xvcjEwc2VyaWFsaXplZEV2CiBfX1pOSzdXZWJDb3JlNUNv
bG9yN2dldFJHQkFFUmRTMV9TMV9TMV8KIF9fWk5LN1dlYkNvcmU1Q29sb3I3Z2V0UkdCQUVSZlMx
X1MxX1MxXwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGMwMDcxNDguLjQ1MWRkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIyMTYsNiArMjIxNiw3IEBACiAJ
CTc1NDE1RDVBMTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0MTVENTQxMjlB
QjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggKi87IH07CiAJCTc1NTND
RkU4MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTNDRkU2MTA4RjQ3M0YwMEVB
MjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLzsgfTsKIAkJNzU1M0NGRTkxMDhGNDcz
RjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyog
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLzsgfTsKKwkJNzU2QjJDRTExOEI3MTAxNjAwRkVD
RkFBIC8qIFNlc3Npb25JRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzU2QjJDRTAxOEI3MTAxNjAwRkVDRkFBIC8qIFNlc3Npb25JRC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc1NzhGOTBDMTFEREYy
NjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5MDkxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0
LmggKi87IH07CiAJCTc1NzhGOTBEMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5
MEExMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggKi87IH07CiAJCTc1NzhG
OTIwMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkxRTExRTRFMzI4MDBEOTMz
QzUgLyogU3BlZWNoSW5wdXRMaXN0ZW5lci5oICovOyB9OwpAQCAtMjIyNiw2ICsyMjI3LDcgQEAK
IAkJNzU3OTNFRDMwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFRDAwRDBDRTg1QjAw
N0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5oICovOyB9OwogCQk3NTc5M0VENDBEMENFODVCMDA3
RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFRDEwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VF
dmVudC5tbSAqLzsgfTsKIAkJNzU3OTNFRDUwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VF
dmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3NTc5M0VEMjBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50SW50ZXJuYWwu
aCAqLzsgfTsKKwkJNzVEQ0M3QjgxOEI4MUM4ODAwQTU3MTI4IC8qIFNlc3Npb25JREhhc2guaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RENDN0I3MThC
ODFDODgwMEE1NzEyOCAvKiBTZXNzaW9uSURIYXNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzYzM0E3MjYxM0Q4QjMzQTAwODUwMUI2IC8qIExv
Y2FsZVRvU2NyaXB0TWFwcGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzYzM0E3MjQxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0TWFw
cGluZy5oICovOyB9OwogCQk3NjMzQTcyNzEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3Jp
cHRNYXBwaW5nRGVmYXVsdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NjMzQTcyNTEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRNYXBw
aW5nRGVmYXVsdC5jcHAgKi87IH07CiAJCTc2ODA4QjUwMTU5REFERkEwMDJCNTIzMyAvKiBKU0hU
TUxEaWFsb2dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3NjgwOEI0RTE1OURBREZBMDAyQjUyMzMgLyogSlNIVE1MRGlhbG9nRWxlbWVudC5o
ICovOyB9OwpAQCAtOTE0OSw2ICs5MTUxLDcgQEAKIAkJNzU0MTVENTQxMjlBQjJEMjAwM0FENjY5
IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3Rvcnku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgx
RSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNzU2QjJDRTAxOEI3MTAxNjAwRkVDRkFBIC8qIFNlc3Npb25JRC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXNzaW9uSUQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzU3OEY5MDkxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NzhGOTBBMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJ
bnB1dENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hJbnB1
dENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc4RjkxRTExRTRFMzI4
MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hJbnB1dExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC05MTYxLDYgKzkxNjQsNyBAQAogCQk3NTc5M0VEMTBEMENFODVCMDA3RkMwQUMgLyog
RE9NTWVzc2FnZUV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERPTU1lc3NhZ2VFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU3
OTNFRDIwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudEludGVybmFsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01NZXNzYWdlRXZlbnRJbnRlcm5hbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTg5NzhFQjEyNzA5MEQ2MDA3NkQ1QTkgLyog
U3BlZWNoSW5wdXRSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoSW5wdXRSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVEQ0M3Qjcx
OEI4MUM4ODAwQTU3MTI4IC8qIFNlc3Npb25JREhhc2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU2Vzc2lvbklESGFzaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3NjMzQTcyNDEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRNYXBwaW5nLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsZVRvU2NyaXB0TWFwcGluZy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NjMzQTcyNTEzRDhCMzNBMDA4NTAxQjYgLyog
TG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBMb2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZhdWx0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzY4MDhCNEUxNTlEQURGQTAwMkI1MjMzIC8qIEpTSFRNTERp
YWxvZ0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRGlh
bG9nRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYxNjUsNiArMTYx
NjksOCBAQAogCQkJCUJDRDBFMEY5MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbkhh
c2guaCAqLywKIAkJCQk5NzREMkRBMjE0NkE1MzVEMDBENTFGOEIgLyogU2VjdXJpdHlQb2xpY3ku
Y3BwICovLAogCQkJCTk3NEQyREEzMTQ2QTUzNUQwMEQ1MUY4QiAvKiBTZWN1cml0eVBvbGljeS5o
ICovLAorCQkJCTc1NkIyQ0UwMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNzaW9uSUQuaCAqLywKKwkJ
CQk3NURDQzdCNzE4QjgxQzg4MDBBNTcxMjggLyogU2Vzc2lvbklESGFzaC5oICovLAogCQkJCTE0
QzlBNUU5MEIzRDEwNUYwMDVBMDIzMiAvKiBTZXR0aW5ncy5jcHAgKi8sCiAJCQkJRjU4Nzg2M0Ew
MkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdzLmggKi8sCiAJCQkJQkM1OURFRjgxNjlERURDMzAw
MTZBQzM0IC8qIFNldHRpbmdzLmluICovLApAQCAtMjUxODEsNiArMjUxODcsOCBAQAogCQkJCUU0
NTMyMkFDMTQwQ0UyNjcwMDVBMEY5MiAvKiBTZWxlY3RvclF1ZXJ5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMThERjMzNTE4QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1NkIyQ0UxMThCNzEwMTYwMEZF
Q0ZBQSAvKiBTZXNzaW9uSUQuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1RENDN0I4MThCODFDODgw
MEE1NzEyOCAvKiBTZXNzaW9uSURIYXNoLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxMDA5
OUU2NDkyMDA1NkU1ODEgLyogU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUI4REJEQjRDMTMwQjBGOEEwMEY1Q0RCMSAvKiBTZXRTZWxlY3Rpb25Db21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTk0RjA4MjQ1RTU5MDAxRTlBQkMgLyogU2V0dGluZ3Mu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNjA1NzQ5Ni4uYjBmNTQwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xODMsNiArMTgzLDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xp
ZW50cyYgcGFnZUNsaWVudHMpCiAgICAgLCBtX2xhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0
ZXNDb3VudCgwKSAvLyBOT1RFOiBPbmx5IGNhbGxlZCBmcm9tIEludGVybmFscyBmb3IgU3BhdGlh
bCBOYXZpZ2F0aW9uIHRlc3RpbmcuCiAgICAgLCBtX2ZyYW1lc0hhbmRsaW5nQmVmb3JlVW5sb2Fk
RXZlbnQoMCkKICAgICAsIG1fdmlzaXRlZExpbmtQcm92aWRlcihzdGQ6Om1vdmUocGFnZUNsaWVu
dHMudmlzaXRlZExpbmtQcm92aWRlcikpCisgICAgLCBtX3Nlc3Npb25JRChTZXNzaW9uSUQ6OmVt
cHR5U2Vzc2lvbklEKCkpCiB7CiAgICAgQVNTRVJUKG1fZWRpdG9yQ2xpZW50KTsKIApAQCAtMTUw
Myw2ICsxNTA0LDIzIEBAIFZpc2l0ZWRMaW5rUHJvdmlkZXImIFBhZ2U6OnZpc2l0ZWRMaW5rUHJv
dmlkZXIoKQogICAgIHJldHVybiBncm91cCgpLnZpc2l0ZWRMaW5rUHJvdmlkZXIoKTsKIH0KIAor
U2Vzc2lvbklEIFBhZ2U6OnNlc3Npb25JRCgpIGNvbnN0Cit7CisgICAgaWYgKG1fc2Vzc2lvbklE
LmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIG1fc2Vzc2lvbklEOworCisgICAgaWYgKHNldHRp
bmdzKCkucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gU2Vzc2lvbklE
OjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCk7CisKKyAgICByZXR1cm4gU2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCk7Cit9CisKK3ZvaWQgUGFnZTo6c2V0U2Vzc2lvbklEKFNlc3Npb25JRCBz
ZXNzaW9uSUQpCit7CisgICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOworICAgIG1fc2Vz
c2lvbklEID0gc2Vzc2lvbklEOworfQorCiBQYWdlOjpQYWdlQ2xpZW50czo6UGFnZUNsaWVudHMo
KQogICAgIDogYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KG51bGxwdHIpCiAgICAgLCBjaHJvbWVDbGll
bnQobnVsbHB0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMTA4MTYwNy4uMDY0ZjA5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJQYWdpbmF0aW9uLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNpbmNsdWRlICJSZWdpb24uaCIKKyNpbmNsdWRlICJTZXNz
aW9uSUQuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIlZpZXdTdGF0
ZS5oIgogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCkBAIC00MDMsNiArNDA0LDEwIEBA
IHB1YmxpYzoKIAogICAgIFZpc2l0ZWRMaW5rUHJvdmlkZXImIHZpc2l0ZWRMaW5rUHJvdmlkZXIo
KTsKIAorICAgIFNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdDsKKyAgICB2b2lkIHNldFNlc3Np
b25JRChTZXNzaW9uSUQpOworICAgIGJvb2wgaXNTZXNzaW9uSURTZXQoKSBjb25zdCB7IHJldHVy
biBtX3Nlc3Npb25JRC5pc1ZhbGlkKCk7IH0KKwogcHJpdmF0ZToKICAgICB2b2lkIGluaXRHcm91
cCgpOwogCkBAIC01NDMsNiArNTQ4LDggQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxVc2VyQ29u
dGVudENvbnRyb2xsZXI+IG1fdXNlckNvbnRlbnRDb250cm9sbGVyOwogICAgIFJlZlB0cjxWaXNp
dGVkTGlua1Byb3ZpZGVyPiBtX3Zpc2l0ZWRMaW5rUHJvdmlkZXI7CisKKyAgICBTZXNzaW9uSUQg
bV9zZXNzaW9uSUQ7CiB9OwogCiBpbmxpbmUgUGFnZUdyb3VwJiBQYWdlOjpncm91cCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXNzaW9uSUQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZWZk
NzRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSUQuaApA
QCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTZXNzaW9uSURfaAorI2RlZmlu
ZSBTZXNzaW9uSURfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlc3Npb25JRCB7
CitwdWJsaWM6CisgICAgU2Vzc2lvbklEKCkKKyAgICAgICAgOiBTZXNzaW9uSUQoZW1wdHlTZXNz
aW9uSUQoKSkgeyB9CisgICAgZXhwbGljaXQgU2Vzc2lvbklEKHVpbnQ2NF90IHNlc3Npb25JRCkK
KyAgICAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpIHsgfQorICAgIGJvb2wgaXNWYWxpZCgp
IGNvbnN0IHsgcmV0dXJuICp0aGlzICE9IGVtcHR5U2Vzc2lvbklEKCk7IH0KKyAgICBib29sIGlz
RXBoZW1lcmFsKCkgY29uc3QgeyByZXR1cm4gKnRoaXMgIT0gZGVmYXVsdFNlc3Npb25JRCgpOyB9
CisgICAgdWludDY0X3Qgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0K
KyAgICBib29sIG9wZXJhdG9yPT0oU2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QgeyByZXR1cm4g
bV9zZXNzaW9uSUQgPT0gc2Vzc2lvbklELm1fc2Vzc2lvbklEOyB9CisgICAgYm9vbCBvcGVyYXRv
ciE9KFNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEICE9IHNl
c3Npb25JRC5tX3Nlc3Npb25JRDsgfQorCisgICAgc3RhdGljIFNlc3Npb25JRCBlbXB0eVNlc3Np
b25JRCgpIHsgcmV0dXJuIFNlc3Npb25JRCgwKTsgfQorICAgIHN0YXRpYyBTZXNzaW9uSUQgZGVm
YXVsdFNlc3Npb25JRCgpIHsgcmV0dXJuIFNlc3Npb25JRCgxKTsgfQorICAgIHN0YXRpYyBTZXNz
aW9uSUQgbGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpIHsgcmV0dXJuIFNlc3Npb25JRCgyKTsgfQor
cHJpdmF0ZToKKyAgICB1aW50NjRfdCBtX3Nlc3Npb25JRDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFNlc3Npb25JRF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1Nlc3Npb25JREhhc2guaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklE
SGFzaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhOTg0YWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JREhhc2guaApAQCAtMCww
ICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTZXNzaW9uSURIYXNoX2gKKyNkZWZpbmUg
U2Vzc2lvbklESGFzaF9oCisKKyNpbmNsdWRlICJTZXNzaW9uSUQuaCIKKyNpbmNsdWRlIDx3dGYv
SGFzaEZ1bmN0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CisKK25hbWVzcGFj
ZSBXVEYgeworCisvLyBUaGUgZW1wdHkgdmFsdWUgaXMgZW1wdHlTZXNzaW9uSUQoKSwgdGhlIGRl
bGV0ZWQgdmFsdWUgaXMgKC0xKQorc3RydWN0IFNlc3Npb25JREhhc2ggeworICAgIHN0YXRpYyB1
bnNpZ25lZCBoYXNoKGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYgcCkgeyByZXR1cm4gKHVuc2ln
bmVkKXAuc2Vzc2lvbklEKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBXZWJDb3Jl
OjpTZXNzaW9uSUQmIGEsIGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYgYikgeyByZXR1cm4gYSA9
PSBiOyB9CisgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSB0cnVlOworfTsKK3RlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6U2Vz
c2lvbklEPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFdlYkNvcmU6OlNlc3Npb25JRD4geworICAgIHN0
YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxzZTsKKyAgICBzdGF0aWMgV2Vi
Q29yZTo6U2Vzc2lvbklEIGVtcHR5VmFsdWUoKSB7IHJldHVybiBXZWJDb3JlOjpTZXNzaW9uSUQ6
OmVtcHR5U2Vzc2lvbklEKCk7IH0KKworICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRW
YWx1ZShXZWJDb3JlOjpTZXNzaW9uSUQmIHNsb3QpIHsgc2xvdCA9IFdlYkNvcmU6OlNlc3Npb25J
RCgtMik7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJDb3JlOjpT
ZXNzaW9uSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3QgPT0gV2ViQ29yZTo6U2Vzc2lvbklEKC0yKTsg
fQorfTsKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdlYkNvcmU6OlNlc3Npb25JRD4g
eworICAgIHR5cGVkZWYgU2Vzc2lvbklESGFzaCBIYXNoOworfTsKKworfQorCisjZW5kaWYgLy8g
U2Vzc2lvbklESGFzaF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzQ3NjBmZC4uOTkwMmJlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDk1IEBACisyMDE0LTAyLTI1ICBNYXJ0aW4gSG9jayAgPG1ob2NrQGFwcGxl
LmNvbT4KKworICAgICAgICBDcmVhdGUgU2Vzc2lvbklEIHZhbHVlLXN0eWxlIGNsYXNzIGZvciBz
ZXNzaW9uIElEcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyOTE0MQorCisgICAgICAgIFRoZSBiZWxvdyBjaGFuZ2VzIGRlYWwgc29sZWx5IHdpdGgg
bWVjaGFuaWNhbCBjaGFuZ2VzIHRvIHVzZSB0aGUgU2Vzc2lvbklEIHZhbHVlIGNsYXNzIGluc3Rl
YWQgb2YgdWludDY0X3QgZXhjZXB0IHdoZXJlIG5vdGVkLgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpzdG9yYWdlU2Vzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdGFydERv
d25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvb2tpZXNGb3JET00pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0
UmF3Q29va2llcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpkZWxldGVDb29raWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyk6CisgICAgICAgICogU2hhcmVkL05ldHdvcmsv
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvU2Vzc2lv
blRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpzdGF0aWNTZXNzaW9uTWFwKToKKyAgICAg
ICAgKFdlYktpdDo6c3RvcmFnZVNlc3Npb25Ub0lEKToKKyAgICAgICAgKFdlYktpdDo6U2Vzc2lv
blRyYWNrZXI6OnNlc3Npb25NYXApOgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6
c2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpzZXNzaW9uSUQpOgor
ICAgICAgICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbik6CisgICAgICAgIChX
ZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbik6CisgICAgICAgICogU2hhcmVk
L1Nlc3Npb25UcmFja2VyLmg6IE1vdmUgY29kZSB0byBTZXNzaW9uSUQgY2xhc3MuCisgICAgICAg
ICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6IEFkZCBlbmNvZGUgYW5kIGRlY29k
ZSBmb3IgU2Vzc2lvbklELgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFNlc3Npb25JRD46
OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8U2Vzc2lvbklEPjo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICog
U2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbToKKyAgICAgICAgKFdlYktpdDo6d2ViS2l0
Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHA6CisgICAgICAgIChBUEk6OmdlbmVyYXRlSUQpOgorICAg
ICAgICAoQVBJOjpTZXNzaW9uOjpkZWZhdWx0U2Vzc2lvbik6CisgICAgICAgIChBUEk6OlNlc3Np
b246OmxlZ2FjeVByaXZhdGVTZXNzaW9uKToKKyAgICAgICAgKEFQSTo6U2Vzc2lvbjo6U2Vzc2lv
bik6CisgICAgICAgIChBUEk6OlNlc3Npb246OmlzRXBoZW1lcmFsKToKKyAgICAgICAgKEFQSTo6
U2Vzc2lvbjo6Z2V0SUQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUElTZXNzaW9uLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250
ZXh0OjpzZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2Vzcyk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2Vzc2lvbklEKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9h
ZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291
cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDog
TW92ZSBzZXNzaW9uSUQgdG8gUGFnZSB0byBhbGxvdyBXZWJDb3JlIHRvIGFjY2VzcyBpdC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnNlc3Npb25JRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmlzVXNpbmdFcGhlbWVy
YWxTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0U2Vzc2lvbklEKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRlc3Ryb3lQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisKIDIwMTQtMDItMjUgIEFuZGVy
cyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYnVpbGQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMWZlZTQ5OC4uZGNjNjJlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9h
ZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTE0OCw5ICsxNDksOSBAQCB2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRTZXJpYWxMb2FkaW5nRW5hYmxlZChib29sIGVuYWJs
ZWQpCiAgICAgbV9zZXJpYWxMb2FkaW5nRW5hYmxlZCA9IGVuYWJsZWQ7CiB9CiAKLXN0YXRpYyBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkK
K3N0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRCBz
ZXNzaW9uSUQpCiB7Ci0gICAgaWYgKFNlc3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKHNlc3Np
b25JRCkpIHsKKyAgICBpZiAoc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpIHsKICAgICAgICAgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uKiBwcml2YXRlU2Vzc2lvbiA9IFNlc3Npb25UcmFja2VyOjpzZXNz
aW9uKHNlc3Npb25JRCk7CiAgICAgICAgIGlmIChwcml2YXRlU2Vzc2lvbikKICAgICAgICAgICAg
IHJldHVybiAqcHJpdmF0ZVNlc3Npb247CkBAIC0xNjEsNyArMTYyLDcgQEAgc3RhdGljIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQogICAg
IHJldHVybiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwog
fQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdGFydERvd25sb2FkKHVp
bnQ2NF90IHNlc3Npb25JRCwgdWludDY0X3QgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3RhcnRE
b3dubG9hZChTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgLy8gRklYTUU6IERvIHNvbWV0aGluZyB3
aXRoIHRoZSBzZXNzaW9uIElELgogICAgIE5ldHdvcmtQcm9jZXNzOjpzaGFyZWQoKS5kb3dubG9h
ZE1hbmFnZXIoKS5zdGFydERvd25sb2FkKGRvd25sb2FkSUQsIHJlcXVlc3QpOwpAQCAtMTgzLDMy
ICsxODQsMzIgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29udmVydE1h
aW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKHVpbnQ2NF90IG0KICAgICBsb2FkZXItPmRpZENvbnZl
cnRIYW5kbGVUb0Rvd25sb2FkKCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmNvb2tpZXNGb3JET00odWludDY0X3Qgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFVSTCYgdXJsLCBTdHJpbmcmIHJlc3VsdCkKK3ZvaWQgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00oU2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgU3RyaW5nJiByZXN1bHQpCiB7CiAg
ICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29va2llc0ZvckRPTShzdG9yYWdlU2Vzc2lvbihzZXNzaW9u
SUQpLCBmaXJzdFBhcnR5LCB1cmwpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpzZXRDb29raWVzRnJvbURPTSh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQor
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00oU2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCiB7CiAgICAgV2ViQ29yZTo6c2V0Q29va2llc0Zy
b21ET00oc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSwgZmlyc3RQYXJ0eSwgdXJsLCBjb29raWVT
dHJpbmcpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVz
RW5hYmxlZCh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
VVJMJiB1cmwsIGJvb2wmIHJlc3VsdCkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmNvb2tpZXNFbmFibGVkKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgVVJMJiB1cmwsIGJvb2wmIHJlc3VsdCkKIHsKICAgICByZXN1bHQgPSBXZWJD
b3JlOjpjb29raWVzRW5hYmxlZChzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5
LCB1cmwpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIFN0cmluZyYgcmVzdWx0KQordm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lv
bklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgU3Ry
aW5nJiByZXN1bHQpCiB7CiAgICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSwgZmlyc3RQYXJ0eSwgdXJsKTsK
IH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2llcyh1
aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmws
IFZlY3RvcjxDb29raWU+JiByZXN1bHQpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpnZXRSYXdDb29raWVzKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiByZXN1bHQpCiB7CiAgICAgV2Vi
Q29yZTo6Z2V0UmF3Q29va2llcyhzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5
LCB1cmwsIHJlc3VsdCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmRlbGV0ZUNvb2tpZSh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIGNvb2tpZU5hbWUpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpk
ZWxldGVDb29raWUoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgY29va2llTmFtZSkKIHsKICAgICBXZWJDb3JlOjpkZWxldGVDb29raWUoc3RvcmFnZVNl
c3Npb24oc2Vzc2lvbklEKSwgdXJsLCBjb29raWVOYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IDM5ODFmYTUuLmZhOTk3OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aApAQCAtNzYsMTUgKzc2LDE1IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcm9zc09yaWdpblJlZGly
ZWN0UmVjZWl2ZWQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6VVJMJiBy
ZWRpcmVjdFVSTCk7CiAgICAgdm9pZCBzZXJ2ZVBlbmRpbmdSZXF1ZXN0cyh1aW50MzJfdCByZXNv
dXJjZUxvYWRQcmlvcml0eSk7CiAgICAgdm9pZCBzZXRTZXJpYWxMb2FkaW5nRW5hYmxlZChib29s
KTsKLSAgICB2b2lkIHN0YXJ0RG93bmxvYWQodWludDY0X3Qgc2Vzc2lvbklELCB1aW50NjRfdCBk
b3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICB2b2lkIHN0
YXJ0RG93bmxvYWQoV2ViQ29yZTo6U2Vzc2lvbklELCB1aW50NjRfdCBkb3dubG9hZElELCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3Vy
Y2VMb2FkVG9Eb3dubG9hZCh1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWlu
dDY0X3QgZG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCi0gICAgdm9pZCBjb29raWVzRm9yRE9NKHVp
bnQ2NF90IHNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBX
ZWJDb3JlOjpVUkwmLCBTdHJpbmcmIHJlc3VsdCk7Ci0gICAgdm9pZCBzZXRDb29raWVzRnJvbURP
TSh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBjb29raWVzRW5hYmxl
ZCh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgV2ViQ29yZTo6VVJMJiwgYm9vbCYgcmVzdWx0KTsKLSAgICB2b2lkIGNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBTdHJpbmcmIHJlc3VsdCk7Ci0gICAgdm9p
ZCBnZXRSYXdDb29raWVzKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYp
OwotICAgIHZvaWQgZGVsZXRlQ29va2llKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3QgV2ViQ29y
ZTo6VVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsKKyAgICB2b2lkIGNvb2tpZXNGb3JE
T00oV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFdlYkNvcmU6OlVSTCYsIFN0cmluZyYgcmVzdWx0KTsKKyAgICB2b2lkIHNldENvb2tpZXNG
cm9tRE9NKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGNvb2tpZXNF
bmFibGVkKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBib29sJiByZXN1bHQpOworICAgIHZvaWQgY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFN0cmluZyYgcmVzdWx0KTsKKyAg
ICB2b2lkIGdldFJhd0Nvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFZlY3RvcjxXZWJDb3JlOjpDb29r
aWU+Jik7CisgICAgdm9pZCBkZWxldGVDb29raWUoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBX
ZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpOwogCiAgICAgdm9pZCByZWdp
c3RlckJsb2JVUkwoY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgQmxvYlJlZ2lzdHJhdGlvbkRh
dGEmKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZyb21VUkwoY29uc3QgV2ViQ29yZTo6VVJM
JiwgY29uc3QgV2ViQ29yZTo6VVJMJiBzcmNVUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhNDU5N2ZjLi5hZjFlODVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzIsMTUgKzMyLDE1IEBAIG1l
c3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsK
ICAgICAKICAgICBTZXRTZXJpYWxMb2FkaW5nRW5hYmxlZChib29sIGVuYWJsZWQpIC0+ICgpCiAK
LSAgICBTdGFydERvd25sb2FkKHVpbnQ2NF90IHNlc3Npb25JRCwgdWludDY0X3QgZG93bmxvYWRJ
RCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QpCisgICAgU3RhcnREb3dubG9hZChX
ZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBkb3dubG9hZElELCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCkKICAgICBDb252ZXJ0TWFpblJlc291cmNlTG9hZFRv
RG93bmxvYWQodWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIHVpbnQ2NF90IGRv
d25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlIHJlc3BvbnNlKQogCi0gICAgQ29va2llc0ZvckRPTSh1aW50NjRfdCBzZXNz
aW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoU3Ry
aW5nIHJlc3VsdCkKLSAgICBTZXRDb29raWVzRnJvbURPTSh1aW50NjRfdCBzZXNzaW9uSUQsIFdl
YkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsLCBTdHJpbmcgY29va2llU3Ry
aW5nKQotICAgIENvb2tpZXNFbmFibGVkKHVpbnQ2NF90IHNlc3Npb25JRCwgV2ViQ29yZTo6VVJM
IGZpcnN0UGFydHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChib29sIGVuYWJsZWQpCi0gICAgQ29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUodWludDY0X3Qgc2Vzc2lvbklELCBXZWJDb3JlOjpV
UkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKFN0cmluZyByZXN1bHQpCi0gICAg
R2V0UmF3Q29va2llcyh1aW50NjRfdCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5
LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykK
LSAgICBEZWxldGVDb29raWUodWludDY0X3Qgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgdXJsLCBT
dHJpbmcgY29va2llTmFtZSkKKyAgICBDb29raWVzRm9yRE9NKFdlYkNvcmU6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAo
U3RyaW5nIHJlc3VsdCkKKyAgICBTZXRDb29raWVzRnJvbURPTShXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCwgU3Ry
aW5nIGNvb2tpZVN0cmluZykKKyAgICBDb29raWVzRW5hYmxlZChXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4g
KGJvb2wgZW5hYmxlZCkKKyAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShXZWJDb3Jl
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6
VVJMIHVybCkgLT4gKFN0cmluZyByZXN1bHQpCisgICAgR2V0UmF3Q29va2llcyhXZWJDb3JlOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJM
IHVybCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpCisgICAgRGVsZXRlQ29v
a2llKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCB1cmwsIFN0cmlu
ZyBjb29raWVOYW1lKQogCiAgICAgUmVnaXN0ZXJCbG9iVVJMKFdlYkNvcmU6OlVSTCB1cmwsIFdl
YktpdDo6QmxvYlJlZ2lzdHJhdGlvbkRhdGEgZGF0YSkKICAgICBSZWdpc3RlckJsb2JVUkxGcm9t
VVJMKFdlYkNvcmU6OlVSTCB1cmwsIFdlYkNvcmU6OlVSTCBzcmNVUkwpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOGExMmFiNy4u
NTVhYjBhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTE2Myw3
ICsxNjQsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3Mo
Y29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZQogCiAgICAgLy8gRklYTUU6IGluc3Rl
YWQgb2YgaGFuZGxpbmcgdGhpcyBoZXJlLCBhIG1lc3NhZ2Ugc2hvdWxkIGJlIHNlbnQgbGF0ZXIg
KHNjYWxlcyB0byBtdWx0aXBsZSBzZXNzaW9ucykKICAgICBpZiAocGFyYW1ldGVycy5wcml2YXRl
QnJvd3NpbmdFbmFibGVkKQotICAgICAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Np
b25JRCk7CisgICAgICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKIAogICAg
IGlmIChwYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbikKICAgICAgICAg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKCk7CkBAIC0y
MTQsMTIgKzIxNSwxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2VzcygpCiAjZW5kaWYKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZW5z
dXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCit2b2lkIE5ldHdv
cmtQcm9jZXNzOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9u
SUQpCiB7CiAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oc2Vzc2lvbklEKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQordm9pZCBOZXR3b3JrUHJv
Y2Vzczo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkK
IHsKICAgICBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24oc2Vzc2lvbklEKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGI1
MGYwOGEuLjFiZTZmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRvd25sb2FkTWFuYWdl
ci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5oIgogI2luY2x1ZGUgIk5ldHdvcmtS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAKQEAgLTEwNCw4ICsxMDUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdv
cmtQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
CiAgICAgdm9pZCBpbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lkIGNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKCk7Ci0gICAgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2
NF90IHNlc3Npb25JRCk7Ci0gICAgdm9pZCBkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1
aW50NjRfdCBzZXNzaW9uSUQpOworICAgIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bihXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHZvaWQgZGVzdHJveVByaXZhdGVCcm93c2luZ1Nl
c3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKICAgICB2b2lkIGRvd25sb2FkUmVxdWVzdCh1aW50
NjRfdCBkb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2
b2lkIGNhbmNlbERvd25sb2FkKHVpbnQ2NF90IGRvd25sb2FkSUQpOwogICAgIHZvaWQgc2V0Q2Fj
aGVNb2RlbCh1aW50MzJfdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDI3YzU4YjQuLjc0OTk0NDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0zNCw4ICszNCw4IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQ
cm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdl
ZChWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMpCiAjZW5kaWYKIAotICAgIEVuc3VyZVByaXZhdGVC
cm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQotICAgIERlc3Ryb3lQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKKyAgICBFbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgRGVzdHJveVByaXZh
dGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIAogICAgIERv
d25sb2FkUmVxdWVzdCh1aW50NjRfdCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCkKICAgICBDYW5jZWxEb3dubG9hZCh1aW50NjRfdCBkb3dubG9hZElEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuaAppbmRleCAyOGJjYzliLi42OWM1OWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtMzUsNiArMzUsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGVDbGllbnQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKQEAgLTE3Myw3ICsx
NzQsNyBAQCBwcml2YXRlOgogICAgIFJlc291cmNlTG9hZElkZW50aWZpZXIgbV9pZGVudGlmaWVy
OwogICAgIHVpbnQ2NF90IG1fd2ViUGFnZUlEOwogICAgIHVpbnQ2NF90IG1fd2ViRnJhbWVJRDsK
LSAgICB1aW50NjRfdCBtX3Nlc3Npb25JRDsKKyAgICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNz
aW9uSUQ7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKICAgICBXZWJD
b3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSBtX3ByaW9yaXR5OwogICAgIFdlYkNvcmU6OkNvbnRl
bnRTbmlmZmluZ1BvbGljeSBtX2NvbnRlbnRTbmlmZmluZ1BvbGljeTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmggYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCmlu
ZGV4IGU5NThiYjMuLmY1Y2NjYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMjgsMjQgKzI4LDI1IEBA
CiAjZGVmaW5lIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0X2gKIAogI2luY2x1ZGUgPFdlYkNvcmUv
TmV0d29ya2luZ0NvbnRleHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQgZmluYWwg
OiBwdWJsaWMgV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUodWludDY0X3Qgc2Vz
c2lvbklELCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShXZWJD
b3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0KHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCkpOwogICAgIH0KICAgICB2aXJ0dWFsIH5SZW1vdGVOZXR3b3JraW5nQ29u
dGV4dCgpOwogCiAgICAgLy8gRklYTUU6IFJlbW92ZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIGFu
ZCB1c2UgU2Vzc2lvblRyYWNrZXIuCi0gICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIGVuc3VyZVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKIAogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
OyB9CiAKIHByaXZhdGU6Ci0gICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQodWludDY0X3Qgc2Vz
c2lvbklELCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCisg
ICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgICAgICA6
IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAgICAgLCBtX3Nob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3Qoc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCkKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTY2LDcgKzY3LDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICB1aW50
NjRfdCBtX3Nlc3Npb25JRDsKKyAgICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAg
ICAgYm9vbCBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7CiAKICNp
ZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCBhMGE4ZjY1Li4y
YTdjNTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC03NywxNSArNzcsMTUgQEAgUmVz
b3VyY2VFcnJvciBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWUKICAgICByZXR1cm4gV2ViS2l0OjpibG9ja2VkRXJyb3IocmVx
dWVzdCk7CiB9CiAKLXZvaWQgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVC
cm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQordm9pZCBSZW1vdGVOZXR3b3JraW5n
Q29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklE
KQogewotICAgIEFTU0VSVChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQp
KTsKKyAgICBBU1NFUlQoc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpOwogCiAgICAgaWYgKFNlc3Np
b25UcmFja2VyOjpzZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFT
U0VSVCghU2Vzc2lvblRyYWNrZXI6OmdldElkZW50aWZpZXJCYXNlKCkuaXNOdWxsKCkpOwotICAg
IFNlc3Npb25UcmFja2VyOjpzZXRTZXNzaW9uKHNlc3Npb25JRCwgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpnZXRJZGVu
dGlmaWVyQmFzZSgpICsgJy4nICsgU3RyaW5nOjpudW1iZXIoc2Vzc2lvbklEKSkpOworICAgIFNl
c3Npb25UcmFja2VyOjpzZXRTZXNzaW9uKHNlc3Npb25JRCwgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpnZXRJZGVudGlm
aWVyQmFzZSgpICsgJy4nICsgU3RyaW5nOjpudW1iZXIoc2Vzc2lvbklELnNlc3Npb25JRCgpKSkp
OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHAKaW5kZXggZDdjZjg2
ZS4uM2JlOWRiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291
cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4dFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcApAQCAtNDYs
NyArNDYsNyBAQCBib29sIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojppc1ZhbGlkKCkgY29uc3QK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5z
dXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCit2b2lkIFJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25J
RCBzZXNzaW9uSUQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzLmNwcAppbmRleCA1NGNhYmY0Li5kN2Q5MmU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMuY3BwCkBAIC00MSw3ICs0MSw3IEBAIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycygpCiAgICAgOiBpZGVudGlmaWVyKDAp
CiAgICAgLCB3ZWJQYWdlSUQoMCkKICAgICAsIHdlYkZyYW1lSUQoMCkKLSAgICAsIHNlc3Npb25J
RCgwKQorICAgICwgc2Vzc2lvbklEKFNlc3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQoKSkKICAgICAs
IHByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdykKICAgICAsIGNvbnRlbnRTbmlm
ZmluZ1BvbGljeShTbmlmZkNvbnRlbnQpCiAgICAgLCBhbGxvd1N0b3JlZENyZWRlbnRpYWxzKERv
Tm90QWxsb3dTdG9yZWRDcmVkZW50aWFscykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCmluZGV4
IGNiZjQ1MzEuLjkxNjE1NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3
b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaApAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KIAogI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCiAKQEAgLTUyLDcgKzUzLDcgQEAgcHVibGljOgogICAgIFJlc291
cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllcjsKICAgICB1aW50NjRfdCB3ZWJQYWdlSUQ7CiAg
ICAgdWludDY0X3Qgd2ViRnJhbWVJRDsKLSAgICB1aW50NjRfdCBzZXNzaW9uSUQ7CisgICAgV2Vi
Q29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdDsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSByZXF1ZXN0Qm9keVNh
bmRib3hFeHRlbnNpb25zOyAvLyBDcmVhdGVkIGF1dG9tYXRpY2FsbHkgZm9yIHRoZSBzZW5kZXIu
CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHJlc291cmNlU2FuZGJveEV4dGVuc2lvbjsg
Ly8gQ3JlYXRlZCBhdXRvbWF0aWNhbGx5IGZvciB0aGUgc2VuZGVyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TZXNzaW9uVHJhY2tlci5jcHAKaW5kZXggNmU0ZDRmZi4uYmRjZmZiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwCkBAIC0zMywyMiArMzMsMTkgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jb25zdCB1aW50
NjRfdCBTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNlc3Npb25JRDsKLWNvbnN0IHVpbnQ2NF90IFNl
c3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEOwotCi1zdGF0aWMgSGFzaE1hcDx1
aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBzdGF0aWNT
ZXNzaW9uTWFwKCkKK3N0YXRpYyBIYXNoTWFwPFNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBzdGF0aWNTZXNzaW9uTWFwKCkKIHsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8
dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+Pj4gbWFwOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPFNlc3Npb25JRCwgc3RkOjp1bmlxdWVf
cHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+PiBtYXA7CiAgICAgcmV0dXJuIG1hcC5nZXQoKTsK
IH0KIAotc3RhdGljIEhhc2hNYXA8Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiwgdWludDY0
X3Q+JiBzdG9yYWdlU2Vzc2lvblRvSUQoKQorc3RhdGljIEhhc2hNYXA8Y29uc3QgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uKiwgU2Vzc2lvbklEPiYgc3RvcmFnZVNlc3Npb25Ub0lEKCkKIHsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhh
c2hNYXA8Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiwgdWludDY0X3Q+PiBtYXA7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
KiwgU2Vzc2lvbklEPj4gbWFwOwogICAgIHJldHVybiBtYXAuZ2V0KCk7CiB9CiAKQEAgLTYwLDcg
KzU3LDcgQEAgc3RhdGljIFN0cmluZyYgaWRlbnRpZmllckJhc2UoKQogICAgIHJldHVybiBiYXNl
OwogfQogCi1jb25zdCBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0
b3JhZ2VTZXNzaW9uPj4mIFNlc3Npb25UcmFja2VyOjpzZXNzaW9uTWFwKCkKK2NvbnN0IEhhc2hN
YXA8U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIFNl
c3Npb25UcmFja2VyOjpzZXNzaW9uTWFwKCkKIHsKICAgICByZXR1cm4gc3RhdGljU2Vzc2lvbk1h
cCgpOwogfQpAQCAtNzAsMjggKzY3LDI4IEBAIGNvbnN0IFN0cmluZyYgU2Vzc2lvblRyYWNrZXI6
OmdldElkZW50aWZpZXJCYXNlKCkKICAgICByZXR1cm4gaWRlbnRpZmllckJhc2UoKTsKIH0KIAot
TmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbih1aW50NjRfdCBz
ZXNzaW9uSUQpCitOZXR3b3JrU3RvcmFnZVNlc3Npb24qIFNlc3Npb25UcmFja2VyOjpzZXNzaW9u
KFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgaWYgKHNlc3Npb25JRCA9PSBkZWZhdWx0U2Vz
c2lvbklEKQorICAgIGlmIChzZXNzaW9uSUQgPT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCkpCiAgICAgICAgIHJldHVybiAmTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFn
ZVNlc3Npb24oKTsKICAgICByZXR1cm4gc3RhdGljU2Vzc2lvbk1hcCgpLmdldChzZXNzaW9uSUQp
OwogfQogCi11aW50NjRfdCBTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbklEKGNvbnN0IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbikKK1Nlc3Npb25JRCBTZXNzaW9uVHJhY2tlcjo6c2Vzc2lv
bklEKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbikKIHsKICAgICBpZiAoJnNl
c3Npb24gPT0gJk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkp
Ci0gICAgICAgIHJldHVybiBkZWZhdWx0U2Vzc2lvbklEOworICAgICAgICByZXR1cm4gU2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgcmV0dXJuIHN0b3JhZ2VTZXNzaW9uVG9JRCgp
LmdldCgmc2Vzc2lvbik7CiB9CiAKLXZvaWQgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24odWlu
dDY0X3Qgc2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBz
ZXNzaW9uKQordm9pZCBTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lv
bklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBzZXNzaW9uKQogewot
ICAgIEFTU0VSVChzZXNzaW9uSUQgIT0gZGVmYXVsdFNlc3Npb25JRCk7CisgICAgQVNTRVJUKHNl
c3Npb25JRCAhPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgc3RvcmFnZVNl
c3Npb25Ub0lEKCkuc2V0KHNlc3Npb24uZ2V0KCksIHNlc3Npb25JRCk7CiAgICAgc3RhdGljU2Vz
c2lvbk1hcCgpLnNldChzZXNzaW9uSUQsIHN0ZDo6bW92ZShzZXNzaW9uKSk7CiB9CiAKLXZvaWQg
U2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKK3ZvaWQg
U2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBpZiAoc3RhdGljU2Vzc2lvbk1hcCgp
LmNvbnRhaW5zKHNlc3Npb25JRCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9TZXNzaW9uVHJhY2tlci5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2Vy
LmgKaW5kZXggMmViODFjOS4uMGIwMzAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1Nlc3Npb25UcmFja2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25U
cmFja2VyLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgU2Vzc2lvblRyYWNrZXJfaAogCiAj
aW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1Nlc3Npb25JREhhc2guaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTM2
LDE2ICszNywxMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFNlc3Npb25UcmFja2VyIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTZXNzaW9uVHJhY2tlcik7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIGNvbnN0IHVpbnQ2NF90IGRlZmF1bHRTZXNzaW9uSUQgPSAxOwotICAgIHN0YXRpYyBj
b25zdCB1aW50NjRfdCBsZWdhY3lQcml2YXRlU2Vzc2lvbklEID0gMjsKLSAgICBzdGF0aWMgYm9v
bCBpc0VwaGVtZXJhbElEKHVpbnQ2NF90IHNlc3Npb25JRCkgeyByZXR1cm4gc2Vzc2lvbklEICE9
IFNlc3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEOyB9CiAgICAgLy8gRklYTUU6IHNlc3Np
b25NYXAoKSdzIHJldHVybmVkIG1hcCBkb2VzIG5vdCBpbmNsdWRlIGRlZmF1bHQgc2Vzc2lvbi4K
LSAgICBzdGF0aWMgY29uc3QgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBzZXNzaW9uTWFwKCk7CisgICAgc3RhdGljIGNv
bnN0IEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIHNlc3Npb25NYXAoKTsKICAgICBzdGF0aWMgY29uc3Qg
U3RyaW5nJiBnZXRJZGVudGlmaWVyQmFzZSgpOwotICAgIHN0YXRpYyBXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb24qIHNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKLSAgICBzdGF0aWMg
dWludDY0X3Qgc2Vzc2lvbklEKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYp
OwotICAgIHN0YXRpYyB2b2lkIHNldFNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklELCBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uPik7Ci0gICAgc3RhdGljIHZv
aWQgZGVzdHJveVNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBzZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7Cisg
ICAgc3RhdGljIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQoY29uc3QgV2ViQ29yZTo6TmV0
d29ya1N0b3JhZ2VTZXNzaW9uJik7CisgICAgc3RhdGljIHZvaWQgc2V0U2Vzc2lvbihXZWJDb3Jl
OjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24+KTsKKyAgICBzdGF0aWMgdm9pZCBkZXN0cm95U2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQp
OwogICAgIHN0YXRpYyB2b2lkIHNldElkZW50aWZpZXJCYXNlKGNvbnN0IFN0cmluZyYpOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApp
bmRleCAxNzNlM2QzLi4xM2ViMWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VSZXNwb25zZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nQ29uc3Ry
YWludHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2Vy
Q2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvVVJMLmg+CkBAIC0xODgwLDYgKzE4ODEsMjMgQEAgYm9vbCBBcmd1bWVu
dENvZGVyPElEQk9iamVjdFN0b3JlTWV0YWRhdGE+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyLCBJREIKIAogICAgIHJldHVybiB0cnVlOwogfQotI2VuZGlmCisKKyNlbmRpZiAvLyBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKwordm9pZCBBcmd1bWVudENvZGVyPFNlc3Npb25JRD46
OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNlc3Npb25JRCYgc2Vzc2lv
bklEKQoreworICAgIGVuY29kZXIgPDwgc2Vzc2lvbklELnNlc3Npb25JRCgpOworfQorCitib29s
IEFyZ3VtZW50Q29kZXI8U2Vzc2lvbklEPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgU2Vzc2lvbklEJiBzZXNzaW9uSUQpCit7CisgICAgdWludDY0X3Qgc2Vzc2lvbjsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHNlc3Npb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBzZXNzaW9uSUQgPSBTZXNzaW9uSUQoc2Vzc2lvbik7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30K
IAogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgKaW5kZXggYTRlMjY0Zi4uZjU5ZmQzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtNTUsNiArNTUsNyBAQCBjbGFz
cyBSZWdpb247CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0Owog
Y2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKK2NsYXNzIFNlc3Npb25JRDsKIGNsYXNzIFN0aWNreVBv
c2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNzIFRleHRDaGVja2luZ1JlcXVlc3REYXRh
OwogY2xhc3MgVHJhbnNmb3JtYXRpb25NYXRyaXg7CkBAIC0zOTcsNyArMzk4LDEzIEBAIHRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVNZXRhZGF0
YT4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJD
b3JlOjpJREJPYmplY3RTdG9yZU1ldGFkYXRhJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OklEQk9iamVjdFN0b3JlTWV0YWRhdGEmKTsKIH07Ci0j
ZW5kaWYKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCit0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlc3Npb25JRD4geworICAgIHN0YXRpYyB2
b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmKTsK
KyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6U2Vzc2lv
bklEJik7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBJUEMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbSBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0ubW0KaW5kZXggYzZkNzA1Zi4uZjA5ZmY0ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tCkBAIC0z
MSw3ICszMSw3IEBACiAjaW5jbHVkZSAiQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmgiCiAjaW5j
bHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CkBA
IC01OCw3ICs1OCw3IEBAIHN0YXRpYyBDRkRpY3Rpb25hcnlSZWYgd2ViS2l0Q29va2llU3RvcmFn
ZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKENGSFRUUENvCiB7CiAgICAgU3RyaW5nIGNv
b2tpZXM7CiAgICAgVVJMIGZpcnN0UGFydHlGb3JDb29raWVzVVJMOwotICAgIGlmICghV2ViUHJv
Y2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kU3lu
YyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlKFNlc3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklELCBmaXJzdFBh
cnR5Rm9yQ29va2llc1VSTCwgaW5SZXF1ZXN0VVJMKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRm9yRE9NOjpSZXBseShjb29raWVzKSwgMCkpCisgICAg
aWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9u
KCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCks
IGZpcnN0UGFydHlGb3JDb29raWVzVVJMLCBpblJlcXVlc3RVUkwpLCBNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNGb3JET006OlJlcGx5KGNvb2tpZXMpLCAw
KSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAoY29va2llcy5pc051bGwoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmNwcAppbmRleCAwOGQ4NGFmLi4wNDgwMmYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uY3BwCkBAIC0zNCw3ICszNCw3IEBA
IHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUlEKGJvb2wgaXNFcGhlbWVyYWwpCiB7CiAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVTZXNz
aW9uSUQgPSBXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEOwor
ICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVTZXNzaW9uSUQgPSBXZWJDb3JlOjpTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKS5zZXNzaW9uSUQoKTsKICAgICBBU1NFUlQoaXNFcGhl
bWVyYWwpOwogICAgIHJldHVybiArK3VuaXF1ZVNlc3Npb25JRDsKIH0KQEAgLTQzLDcgKzQzLDcg
QEAgU2Vzc2lvbiYgU2Vzc2lvbjo6ZGVmYXVsdFNlc3Npb24oKQogewogICAgIEFTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CiAKLSAgICBzdGF0aWMgU2Vzc2lvbiogZGVmYXVsdFNlc3Npb24gPSBu
ZXcgU2Vzc2lvbihmYWxzZSwgV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNlc3Npb25J
RCk7CisgICAgc3RhdGljIFNlc3Npb24qIGRlZmF1bHRTZXNzaW9uID0gbmV3IFNlc3Npb24oV2Vi
Q29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAgIHJldHVybiAqZGVmYXVs
dFNlc3Npb247CiB9CiAKQEAgLTUxLDE5ICs1MSwxNyBAQCBTZXNzaW9uJiBTZXNzaW9uOjpsZWdh
Y3lQcml2YXRlU2Vzc2lvbigpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAot
ICAgIHN0YXRpYyBTZXNzaW9uKiBsZWdhY3lQcml2YXRlU2Vzc2lvbiA9IG5ldyBTZXNzaW9uKHRy
dWUsIFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAg
IHN0YXRpYyBTZXNzaW9uKiBsZWdhY3lQcml2YXRlU2Vzc2lvbiA9IG5ldyBTZXNzaW9uKFdlYkNv
cmU6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKICAgICByZXR1cm4gKmxl
Z2FjeVByaXZhdGVTZXNzaW9uOwogfQogCiBTZXNzaW9uOjpTZXNzaW9uKGJvb2wgaXNFcGhlbWVy
YWwpCi0gICAgOiBtX2lzRXBoZW1lcmFsKGlzRXBoZW1lcmFsKQotICAgICwgbV9zZXNzaW9uSUQo
Z2VuZXJhdGVJRChpc0VwaGVtZXJhbCkpCisgICAgOiBtX3Nlc3Npb25JRChnZW5lcmF0ZUlEKGlz
RXBoZW1lcmFsKSkKIHsKIH0KIAotU2Vzc2lvbjo6U2Vzc2lvbihib29sIGlzRXBoZW1lcmFsLCB1
aW50NjRfdCBzZXNzaW9uSUQpCi0gICAgOiBtX2lzRXBoZW1lcmFsKGlzRXBoZW1lcmFsKQotICAg
ICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQorU2Vzc2lvbjo6U2Vzc2lvbihXZWJDb3JlOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQorICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogewogfQogCkBA
IC03NSwxMCArNzMsMTAgQEAgUGFzc1JlZlB0cjxTZXNzaW9uPiBTZXNzaW9uOjpjcmVhdGUoYm9v
bCBpc0VwaGVtZXJhbCkKIAogYm9vbCBTZXNzaW9uOjppc0VwaGVtZXJhbCgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1faXNFcGhlbWVyYWw7CisgICAgcmV0dXJuIG1fc2Vzc2lvbklELmlzRXBoZW1l
cmFsKCk7CiB9CiAKLXVpbnQ2NF90IFNlc3Npb246OmdldElEKCkgY29uc3QKK1dlYkNvcmU6OlNl
c3Npb25JRCBTZXNzaW9uOjpnZXRJRCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2Vzc2lvbklE
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmgKaW5kZXggYmQ2MDRiMi4uZmZj
NWIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5oCkBAIC0yNyw3ICsyNyw3
IEBACiAjZGVmaW5lIEFQSVNlc3Npb25faAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5j
bHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgog
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtMzksMTQg
KzM5LDEzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU2Vzc2lvbiYgZGVmYXVsdFNlc3Npb24oKTsK
ICAgICBzdGF0aWMgU2Vzc2lvbiYgbGVnYWN5UHJpdmF0ZVNlc3Npb24oKTsKICAgICBib29sIGlz
RXBoZW1lcmFsKCkgY29uc3Q7Ci0gICAgdWludDY0X3QgZ2V0SUQoKSBjb25zdDsKKyAgICBXZWJD
b3JlOjpTZXNzaW9uSUQgZ2V0SUQoKSBjb25zdDsKICAgICB2aXJ0dWFsIH5TZXNzaW9uKCk7CiAK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgU2Vzc2lvbihib29sIGlzRXBoZW1lcmFsKTsKLSAgICBT
ZXNzaW9uKGJvb2wgaXNFcGhlbWVyYWwsIHVpbnQ2NF90IHNlc3Npb25JRCk7Ci0gICAgYm9vbCBt
X2lzRXBoZW1lcmFsOwotICAgIHVpbnQ2NF90IG1fc2Vzc2lvbklEOworICAgIGV4cGxpY2l0IFNl
c3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNz
aW9uSUQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcAppbmRleCAzNDUzNjQ4Li5hNTA4ZTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIk11dGFibGVEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4
dGVuc2lvbi5oIgotI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlz
dGljc0RhdGEuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIldLQ29udGV4
dFByaXZhdGUuaCIKQEAgLTYzLDYgKzYyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNo
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUg
PHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC00ODYsMTYgKzQ4NiwxNiBAQCB2b2lkIFdlYkNv
bnRleHQ6OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9v
bCBwcml2YXRlQnJvdwogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgaWYgKHVzZXNO
ZXR3b3JrUHJvY2VzcygpICYmIG5ldHdvcmtQcm9jZXNzKCkpIHsKICAgICAgICAgaWYgKHByaXZh
dGVCcm93c2luZ0VuYWJsZWQpCi0gICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNz
aW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCksIDApOworICAgICAgICAgICAgbmV0
d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkVuc3VyZVByaXZh
dGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpLCAw
KTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OkRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Np
b25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKSwgMCk7CisgICAgICAgICAgICBuZXR3
b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJveVByaXZh
dGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpLCAw
KTsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFRChORVRXT1JLX1BST0NFU1MpCiAKICAgICBpZiAo
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFj
a2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKSk7CisgICAgICAgIHNlbmRUb0FsbFByb2Nlc3Nl
cyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNz
aW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpOwogICAgIGVsc2UKLSAgICAgICAgc2Vu
ZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCkpOworICAg
ICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRlc3Ryb3lQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSk7
CiB9CiAKIHZvaWQgKCpzX2ludmFsaWRNZXNzYWdlQ2FsbGJhY2spKFdLU3RyaW5nUmVmIG1lc3Nh
Z2VOYW1lKTsKQEAgLTYyNSw3ICs2MjUsNyBAQCBXZWJQcm9jZXNzUHJveHkmIFdlYkNvbnRleHQ6
OmNyZWF0ZU5ld1dlYlByb2Nlc3MoKQogI2VuZGlmCiAKICAgICBpZiAoV2ViUHJlZmVyZW5jZXM6
OmFueVBhZ2VzQXJlVXNpbmdQcml2YXRlQnJvd3NpbmcoKSkKLSAgICAgICAgcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNz
aW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCksIDApOworICAgICAgICBwcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSwgMCk7CiAKICAgICBtX3Byb2Nl
c3Nlcy5hcHBlbmQocHJvY2Vzcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5o
CmluZGV4IDg2ZGQyZDguLjIwNTRkNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuaApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIldlYkRvd25sb2FkQ2xpZW50LmgiCiAj
aW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFzaC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBA
IC0zMDYsNyArMzA3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHdpbGxTdGFydFVzaW5n
UHJpdmF0ZUJyb3dzaW5nKCk7CiAgICAgc3RhdGljIHZvaWQgd2lsbFN0b3BVc2luZ1ByaXZhdGVC
cm93c2luZygpOwogCi0gICAgc3RhdGljIGJvb2wgaXNFcGhlbWVyYWxTZXNzaW9uKHVpbnQ2NF90
IHNlc3Npb25JRCk7CisgICAgc3RhdGljIGJvb2wgaXNFcGhlbWVyYWxTZXNzaW9uKFdlYkNvcmU6
OlNlc3Npb25JRCk7CiAKICNpZiBVU0UoU09VUCkKICAgICB2b2lkIHNldElnbm9yZVRMU0Vycm9y
cyhib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBjOTI0
Yzk3Li42YTUxMTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC0zMzcsNyArMzM3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2Vzc2lvbihBUEk6OlNlc3Np
b24mKTsKIAogICAgIHVpbnQ2NF90IHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEOyB9
Ci0gICAgdWludDY0X3Qgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uLT5nZXRJ
RCgpOyB9CisgICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJu
IG1fc2Vzc2lvbi0+Z2V0SUQoKTsgfQogCiAgICAgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWUuZ2V0KCk7IH0KICAgICBXZWJGcmFtZVByb3h5KiBm
b2N1c2VkRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZvY3VzZWRGcmFtZS5nZXQoKTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcAppbmRleCAxZWY5OGMzLi45MTgxYTE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcApAQCAtNjcsNiArNjcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJv
bGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NlY3VyaXR5UG9saWN5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyR2Vz
dHVyZUluZGljYXRvci5oPgogCkBAIC0zMDgsOSArMzA5LDkgQEAgdm9pZCBJbmplY3RlZEJ1bmRs
ZTo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3Vw
LCBib28KICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBUaGlzIHRlc3Qtb25seSBmdW5j
dGlvbiBkb2Vzbid0IHdvcmsgd2l0aCBOZXR3b3JrUHJvY2VzcywgPGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTUyNzQ+LgogI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBV
U0UoQ0ZORVRXT1JLKSB8fCBVU0UoU09VUCkKICAgICBpZiAoZW5hYmxlZCkKLSAgICAgICAgV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNz
aW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7CisgICAgICAgIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwogICAgIGVsc2UKLSAgICAgICAgU2Vzc2lvblRyYWNr
ZXI6OmRlc3Ryb3lTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklE
KTsKKyAgICAgICAgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKFNlc3Npb25JRDo6bGVn
YWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKICNlbmRpZgogICAgIGNvbnN0IEhhc2hTZXQ8UGFnZSo+
JiBwYWdlcyA9IFBhZ2VHcm91cDo6cGFnZUdyb3VwKHBhZ2VHcm91cC0+aWRlbnRpZmllcigpKS0+
cGFnZXMoKTsKICAgICBmb3IgKEhhc2hTZXQ8UGFnZSo+OjppdGVyYXRvciBpdGVyID0gcGFnZXMu
YmVnaW4oKTsgaXRlciAhPSBwYWdlcy5lbmQoKTsgKytpdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcAppbmRleCBlYWJkNjU0Li5hNWZjZjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVmZXJyZXJQb2xpY3ku
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3VicmVzb3VyY2VM
b2FkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0xMTgsNyArMTE5LDcg
QEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxv
YWRlciogcmVzb3VyY2VMb2FkZXIsIENhY2gKICAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVy
ID0gaWRlbnRpZmllcjsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgPSB3ZWJQYWdlID8g
d2ViUGFnZS0+cGFnZUlEKCkgOiAwOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQgPSB3
ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAwOwotICAgIGxvYWRQYXJhbWV0ZXJzLnNl
c3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25UcmFja2Vy
OjpkZWZhdWx0U2Vzc2lvbklEOworICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBh
Z2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
OwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXNvdXJjZUxvYWRlci0+cmVxdWVzdCgp
OwogICAgIGxvYWRQYXJhbWV0ZXJzLnByaW9yaXR5ID0gcHJpb3JpdHk7CiAgICAgbG9hZFBhcmFt
ZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5ID0gY29udGVudFNuaWZmaW5nUG9saWN5OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDU5NWIzMDUuLjE5NDllMmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybVBhc3RlYm9hcmQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmFn
ZU5hbWVzcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1VSTC5oPgpAQCAtMjU4LDcgKzI1OSw3IEBAIHZvaWQgV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXh0CiAgICAgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllciA9IHJlc291cmNlTG9hZElkZW50
aWZpZXI7CiAgICAgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlEID0gd2ViUGFnZSA/IHdlYlBhZ2Ut
PnBhZ2VJRCgpIDogMDsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlEID0gd2ViRnJhbWUg
PyB3ZWJGcmFtZS0+ZnJhbWVJRCgpIDogMDsKLSAgICBsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQg
PSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBTZXNzaW9uVHJhY2tlcjo6ZGVmYXVs
dFNlc3Npb25JRDsKKyAgICBsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2Vi
UGFnZS0+c2Vzc2lvbklEKCkgOiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICBs
b2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5wcmlv
cml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5SGlnaGVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5j
b250ZW50U25pZmZpbmdQb2xpY3kgPSBTbmlmZkNvbnRlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggODYyOWZhOC4uZGVmMjAzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMjksNiArMjks
NyBAQAogI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlICJXZWJG
cmFtZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00
MCw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBGSVhNRTogcmVtb3ZlIHBsYXRm
b3JtLXNwZWNpZmljIGNvZGUgYW5kIHVzZSBTZXNzaW9uVHJhY2tlcgotICAgIHN0YXRpYyB2b2lk
IGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKKyAgICBz
dGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25J
RCk7CiAKICAgICBzdGF0aWMgdm9pZCBzZXRDb29raWVBY2NlcHRQb2xpY3lGb3JBbGxDb250ZXh0
cyhIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5t
bSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggM2M1MjUxNi4uMjZiZmZjNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC00Miw5ICs0Miw5IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAKLXZv
aWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bih1aW50NjRfdCBzZXNzaW9uSUQpCit2b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBB
U1NFUlQoU2Vzc2lvblRyYWNrZXI6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKSk7CisgICAgQVNT
RVJUKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKTsKIAogICAgIGlmIChTZXNzaW9uVHJhY2tlcjo6
c2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICByZXR1cm47CkBAIC01NSw3ICs1NSw3IEBAIHZv
aWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bih1aW50NjRfdCBzZXNzaW9uSUQpCiAgICAgZWxzZQogICAgICAgICBiYXNlID0gU2Vzc2lvblRy
YWNrZXI6OmdldElkZW50aWZpZXJCYXNlKCk7CiAKLSAgICBTZXNzaW9uVHJhY2tlcjo6c2V0U2Vz
c2lvbihzZXNzaW9uSUQsIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbihiYXNlICsgJy4nICsgU3RyaW5nOjpudW1iZXIoc2Vzc2lvbklEKSkpOworICAg
IFNlc3Npb25UcmFja2VyOjpzZXRTZXNzaW9uKHNlc3Npb25JRCwgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKGJhc2UgKyAnLicgKyBTdHJpbmc6Om51
bWJlcihzZXNzaW9uSUQuc2Vzc2lvbklEKCkpKSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6c2V0Q29va2llQWNjZXB0UG9saWN5Rm9yQWxsQ29udGV4dHMoSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSBwb2xpY3kpCkBAIC0xMDEsMTAgKzEwMSw3IEBAIFJlc291cmNlRXJyb3Ig
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxCiBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OnN0b3JhZ2VTZXNzaW9uKCkgY29uc3QKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOwotCi0gICAgaWYgKGZyYW1lKCkpCi0gICAgICAgIHJldHVybiAqU2Vzc2lvblRyYWNrZXI6
OnNlc3Npb24od2ViRnJhbWVMb2FkZXJDbGllbnQoKS0+d2ViRnJhbWUoKS0+cGFnZSgpLT5zZXNz
aW9uSUQoKSk7Ci0gICAgcmV0dXJuIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3Jh
Z2VTZXNzaW9uKCk7CisgICAgcmV0dXJuICpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbihmcmFtZSgp
ID8gZnJhbWUoKS0+cGFnZSgpLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpKTsKIH0KIAogV2ViRnJhbWVMb2FkZXJDbGllbnQqIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ6OndlYkZyYW1lTG9hZGVyQ2xpZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291
cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAppbmRleCA0ZDEzZGMzLi43NzczN2Q0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJX
ZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Np
b25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KIApAQCAtMzcsMTQgKzM4LDE0IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKK3Zv
aWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bihTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAK
ICAgICBpZiAoU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24oc2Vzc2lvbklELCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU3RyaW5nOjpudW1i
ZXIoc2Vzc2lvbklEKSkpOworICAgIFNlc3Npb25UcmFja2VyOjpzZXRTZXNzaW9uKHNlc3Npb25J
RCwgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFN0
cmluZzo6bnVtYmVyKHNlc3Npb25JRC5zZXNzaW9uSUQoKSkpKTsKIH0KIAogV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChXZWJGcmFtZSogZnJhbWUp
CkBAIC01NSw3ICs1Niw3IEBAIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQoV2ViRnJhbWUqIGZyYW1lKQogTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbigpIGNvbnN0CiB7CiAgICAg
aWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+c2V0dGluZ3MoKS5wcml2YXRlQnJvd3NpbmdFbmFibGVk
KCkpCi0gICAgICAgIHJldHVybiAqU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oU2Vzc2lvblRyYWNr
ZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAgICAgICByZXR1cm4gKlNlc3Npb25UcmFj
a2VyOjpzZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKIAogICAg
IHJldHVybiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9z
b3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXgg
MjYzMDYxYTAuLjkzNDEwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaApAQCAtMjksNiArMjksNyBAQAogI2RlZmluZSBXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0X2gKIAogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CkBAIC00Miw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKSk7CiAgICAgfQogCi0gICAgc3RhdGljIHZv
aWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpOworICAg
IHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lv
bklEKTsKIAogICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFtZUxvYWRlckNsaWVudCgp
IGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggMGRjODU3OC4uZTM5Y2JhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTM0LDYgKzEzNCw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9TY2hlbWVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TaGFkb3dSb290Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRC
dWZmZXIuaD4KQEAgLTIyOCw3ICsyMjksNiBAQCBQYXNzUmVmUHRyPFdlYlBhZ2U+IFdlYlBhZ2U6
OmNyZWF0ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZQogCiBX
ZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKICAgICA6IG1fcGFnZUlEKHBhZ2VJRCkKLSAgICAsIG1fc2Vz
c2lvbklEKDApCiAgICAgLCBtX3ZpZXdTaXplKHBhcmFtZXRlcnMudmlld1NpemUpCiAgICAgLCBt
X2hhc1NlZW5QbHVnaW4oZmFsc2UpCiAgICAgLCBtX3VzZUZpeGVkTGF5b3V0KGZhbHNlKQpAQCAt
MjExMCwyMyArMjExMCwyMyBAQCB2b2lkIFdlYlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUodW5z
aWduZWQgbGF5ZXJIb3N0aW5nTW9kZSkKICAgICAgICAgcGx1Z2luVmlldy0+c2V0TGF5ZXJIb3N0
aW5nTW9kZShtX2xheWVySG9zdGluZ01vZGUpOwogfQogCi11aW50NjRfdCBXZWJQYWdlOjpzZXNz
aW9uSUQoKSBjb25zdAorU2Vzc2lvbklEIFdlYlBhZ2U6OnNlc3Npb25JRCgpIGNvbnN0CiB7Ci0g
ICAgaWYgKG1fc2Vzc2lvbklEKQotICAgICAgICByZXR1cm4gbV9zZXNzaW9uSUQ7CisgICAgaWYg
KG1fcGFnZS0+aXNTZXNzaW9uSURTZXQoKSkKKyAgICAgICAgcmV0dXJuIG1fcGFnZS0+c2Vzc2lv
bklEKCk7CiAKLSAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLnByaXZhdGVCcm93c2luZ0Vu
YWJsZWQoKSA/IFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEIDogU2Vzc2lv
blRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQ7CisgICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3Mo
KS5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkgPyBTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogfQogCiBib29sIFdlYlBh
Z2U6OmlzVXNpbmdFcGhlbWVyYWxTZXNzaW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU2Vzc2lv
blRyYWNrZXI6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKCkpOworICAgIHJldHVybiBzZXNzaW9u
SUQoKS5pc0VwaGVtZXJhbCgpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNldFNlc3Npb25JRCh1aW50
NjRfdCBzZXNzaW9uSUQpCit2b2lkIFdlYlBhZ2U6OnNldFNlc3Npb25JRChTZXNzaW9uSUQgc2Vz
c2lvbklEKQogewotICAgIG1fc2Vzc2lvbklEID0gc2Vzc2lvbklEOwotICAgIGlmIChTZXNzaW9u
VHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKQorICAgIG1fcGFnZS0+c2V0U2Vzc2lv
bklEKHNlc3Npb25JRCk7CisgICAgaWYgKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKQogICAgICAg
ICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5lbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHNlc3Np
b25JRCk7CiB9CiAKQEAgLTI0MzIsOCArMjQzMiw4IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJl
ZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgc2V0dGluZ3Mu
c2V0TG9jYWxTdG9yYWdlRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVy
ZW5jZXNLZXk6OmxvY2FsU3RvcmFnZUVuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldFhT
U0F1ZGl0b3JFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tl
eTo6eHNzQXVkaXRvckVuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldEZyYW1lRmxhdHRl
bmluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpm
cmFtZUZsYXR0ZW5pbmdFbmFibGVkS2V5KCkpKTsKLSAgICBpZiAobV9zZXNzaW9uSUQpCi0gICAg
ICAgIHNldHRpbmdzLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoU2Vzc2lvblRyYWNrZXI6Omlz
RXBoZW1lcmFsSUQobV9zZXNzaW9uSUQpKTsKKyAgICBpZiAobV9wYWdlLT5pc1Nlc3Npb25JRFNl
dCgpKQorICAgICAgICBzZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKG1fcGFnZS0+
c2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKSk7CiAgICAgZWxzZQogICAgICAgICBzZXR0aW5ncy5z
ZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3Mu
c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OmRldmVsb3BlckV4dHJhc0VuYWJsZWRLZXkoKSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMTI0ZThhMC4uMmQ4NDUzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xOTAs
OSArMTkwLDkgQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6UGFnZSogY29yZVBhZ2UoKSBjb25z
dCB7IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KICAgICB1aW50NjRfdCBwYWdlSUQoKSBjb25zdCB7
IHJldHVybiBtX3BhZ2VJRDsgfQotICAgIHVpbnQ2NF90IHNlc3Npb25JRCgpIGNvbnN0OworICAg
IFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdDsKICAgICBib29sIGlzVXNpbmdF
cGhlbWVyYWxTZXNzaW9uKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRTZXNzaW9uSUQodWludDY0X3Qp
OworICAgIHZvaWQgc2V0U2Vzc2lvbklEKFdlYkNvcmU6OlNlc3Npb25JRCk7CiAKICAgICB2b2lk
IHNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdTaXplOyB9CkBAIC05MTYsNyArOTE2
LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcG9ydFVzZWRGZWF0dXJlcygpOwogCiAgICAgdWlu
dDY0X3QgbV9wYWdlSUQ7Ci0gICAgdWludDY0X3QgbV9zZXNzaW9uSUQ7CiAKICAgICBPd25QdHI8
V2ViQ29yZTo6UGFnZT4gbV9wYWdlOwogICAgIFJlZlB0cjxXZWJGcmFtZT4gbV9tYWluRnJhbWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCmluZGV4IDQyZmI5NDYuLjU3ZmE0ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yNSw3ICsy
NSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNldFZpZXdT
dGF0ZSh1bnNpZ25lZCB2aWV3U3RhdGUsIGJvb2wgd2FudHNEaWRVcGRhdGVWaWV3U3RhdGUpCiAg
ICAgU2V0TGF5ZXJIb3N0aW5nTW9kZSh1bnNpZ25lZCBsYXllckhvc3RpbmdNb2RlKQogCi0gICAg
U2V0U2Vzc2lvbklEKHVpbnQ2NF90IHNlc3Npb25JRCkKKyAgICBTZXRTZXNzaW9uSUQoV2ViQ29y
ZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIAogICAgIFNldERyYXdzQmFja2dyb3VuZChib29sIGRy
YXdzQmFja2dyb3VuZCkKICAgICBTZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChib29sIGRy
YXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKaW5kZXggM2QwNzNiYS4uYTY1YzhhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00NjUsMTQgKzQ2NSwxNCBAQCB2b2lkIFdlYlByb2Nlc3M6
OmZ1bGxLZXlib2FyZEFjY2Vzc01vZGVDaGFuZ2VkKGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5h
YmxlZCkKICAgICBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgPSBmdWxsS2V5Ym9hcmRBY2Nl
c3NFbmFibGVkOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQordm9pZCBXZWJQcm9jZXNzOjplbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAjaWYgUExBVEZPUk0oQ09D
T0EpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVTRShTT1VQKQogICAgIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oc2Vzc2lvbklEKTsKICNlbmRp
ZgogfQogCi12b2lkIFdlYlByb2Nlc3M6OmRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVp
bnQ2NF90IHNlc3Npb25JRCkKK3ZvaWQgV2ViUHJvY2Vzczo6ZGVzdHJveVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkgfHwg
VVNFKENGTkVUV09SSykgfHwgVVNFKFNPVVApCiAgICAgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lT
ZXNzaW9uKHNlc3Npb25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmlu
ZGV4IDJiMWNhZWQuLmFlNTJjOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgogI2lu
Y2x1ZGUgIlZpc2l0ZWRMaW5rVGFibGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RpbWVy
Lmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpA
QCAtMTYzLDggKzE2NCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbCh1aW50
MzJfdCk7CiAKLSAgICB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qg
c2Vzc2lvbklEKTsKLSAgICB2b2lkIGRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2
NF90IHNlc3Npb25JRCk7CisgICAgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdl
YkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bihXZWJDb3JlOjpTZXNzaW9uSUQpOwogCiAgICAgdm9pZCBwYWdlRGlkRW50ZXJXaW5kb3codWlu
dDY0X3QgcGFnZUlEKTsKICAgICB2b2lkIHBhZ2VXaWxsTGVhdmVXaW5kb3codWludDY0X3QgcGFn
ZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbgppbmRleCA5MmU3MDgwLi42ZmFiMmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC01NSw4ICs1NSw4IEBAIG1lc3NhZ2Vz
IC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogI2VuZGlmCiAKICAgICAvLyBMZWdhY3kg
cHJpdmF0ZSBicm93c2luZyBzZXNzaW9uIGlzIHBlciBwcm9jZXNzLiBJbmRpdmlkdWFsIHBhZ2Vz
IG9yIHBhZ2UgZ3JvdXBzIG1heSB1c2UgdGhlIHByaXZhdGUgc2Vzc2lvbiBvciB0aGUgZGVmYXVs
dCBvbmUgYXMgYXBwcm9wcmlhdGUuCi0gICAgRW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1
aW50NjRfdCBzZXNzaW9uSUQpCi0gICAgRGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWlu
dDY0X3Qgc2Vzc2lvbklEKQorICAgIEVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29y
ZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICBEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogCiAgICAgIyBQbHVnLWlucy4KICAgICBE
aWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVpbnQzMl90IGhhc2gsIGRvdWJsZSBleHBp
cmF0aW9uVGltZSkK
</data>
<flag name="review"
          id="249311"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="249343"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225263</attachid>
            <date>2014-02-26 10:20:27 -0800</date>
            <delta_ts>2014-02-26 10:59:48 -0800</delta_ts>
            <desc>rebase</desc>
            <filename>sessionidclass.09c.diff</filename>
            <type>text/plain</type>
            <size>70655</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlYzMyMDE4Li4zNmRmYzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTQtMDItMjUgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IENyZWF0ZSBTZXNzaW9uSUQgdmFsdWUtc3R5bGUgY2xhc3MgZm9yIHNlc3Npb24gSURzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MTQxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6IEFkZCBTZXNz
aW9uSUQgbWVtYmVyLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjpzZXNzaW9uSUQpOiBSZXRyaWV2ZSBzZXNzaW9uSUQgb3IgdXNlIHNldHRp
bmdzIGlmIG5vdCBzZXQuCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjppc1Nlc3Npb25JRFNldCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRTZXNz
aW9uSUQpOgorICAgICAgICAqIHBhZ2UvU2Vzc2lvbklELmg6IFNlc3Npb24gSUQgY2xhc3MgY29u
c2lzdGluZyBzb2xlbHkgb2YgaXRzIHVpbnQ2NF90IHNlc3Npb24gSUQuCisgICAgICAgIChXZWJD
b3JlOjpTZXNzaW9uSUQ6OlNlc3Npb25JRCk6CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ6
OmlzVmFsaWQpOiBOb3QgZW1wdHkuCisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ6OmlzRXBo
ZW1lcmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNlc3Npb25JRDo6c2Vzc2lvbklEKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlc3Npb25JRDo6b3BlcmF0b3I9PSk6IFZhbHVlLWJhc2VkIGVxdWFsaXR5
LgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbklEOjpvcGVyYXRvciE9KToKKyAgICAgICAgKFdl
YkNvcmU6OlNlc3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQpOiBaZXJvIHZhbHVlIGFsc28gdXNlZCBm
b3IgSGFzaFRyYWl0cyBlbXB0eVZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbklEOjpk
ZWZhdWx0U2Vzc2lvbklEKToKKyAgICAgICAgKFdlYkNvcmU6OlNlc3Npb25JRDo6bGVnYWN5UHJp
dmF0ZVNlc3Npb25JRCk6CisgICAgICAgICogcGFnZS9TZXNzaW9uSURIYXNoLmg6CisgICAgICAg
IChXVEY6OlNlc3Npb25JREhhc2g6Omhhc2gpOiBKdXN0IHRoZSBjYXN0ZWQgc2Vzc2lvbiBJRCAo
bG93IG9yZGVyIGJ5dGVzKQorICAgICAgICAoV1RGOjpTZXNzaW9uSURIYXNoOjplcXVhbCk6Cisg
ICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViQ29yZTo6U2Vzc2lvbklEPjo6ZW1wdHlWYWx1ZSk6
IEVxdWFsIHRvIGVtcHR5U2Vzc2lvbklELgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNv
cmU6OlNlc3Npb25JRD46OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6IC0xIHZhbHVlLgorICAgICAg
ICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlNlc3Npb25JRD46OmlzRGVsZXRlZFZhbHVlKToK
KwogMjAxNC0wMi0yNiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUGlwZSBleHBlcmltZW50YWwgaW1hZ2UgY29udHJvbHMgbWVudSB1cCB0byBXZWJLaXQyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBlNTY4NDMwLi4xYmRmZGVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQxNzcsNiArNDE3Nyw3IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkhhc2guaCBcCiAJ
U291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2VjdXJpdHlQb2xpY3kuaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSUQu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlv
bi5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBhMDI2N2E2Li5jMjA5ZTFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtMTAyOCw2ICsxMDI4LDcgQEAgX19aTjdXZWJDb3JlNFBhZ2UxMVBh
Z2VDbGllbnRzQzFFdgogX19aTjdXZWJDb3JlNFBhZ2UxMVBhZ2VDbGllbnRzRDFFdgogX19aTjdX
ZWJDb3JlNFBhZ2UxMnNldEdyb3VwTmFtZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTRQ
YWdlMTJzZXRJc1Zpc2libGVFYgorX19aTjdXZWJDb3JlNFBhZ2UxMnNldFNlc3Npb25JREVOU185
U2Vzc2lvbklERQogX19aTjdXZWJDb3JlNFBhZ2UxMnNldFZpZXdTdGF0ZUVqCiBfX1pON1dlYkNv
cmU0UGFnZTEzcmFuZ2VPZlN0cmluZ0VSS04zV1RGNlN0cmluZ0VQTlNfNVJhbmdlRWoKIF9fWk43
V2ViQ29yZTRQYWdlMTNzZXRJc0luV2luZG93RWIKQEAgLTE3NjcsNiArMTc2OCw3IEBAIF9fWk5L
N1dlYkNvcmU0UGFnZTE3dmlld3BvcnRBcmd1bWVudHNFdgogX19aTks3V2ViQ29yZTRQYWdlMzRp
bkxvd1F1YWxpdHlJbWFnZUludGVycG9sYXRpb25Nb2RlRXYKIF9fWk5LN1dlYkNvcmU0UGFnZTln
cm91cE5hbWVFdgogX19aTks3V2ViQ29yZTRQYWdlOXBhZ2VDb3VudEV2CitfX1pOSzdXZWJDb3Jl
NFBhZ2U5c2Vzc2lvbklERXYKIF9fWk5LN1dlYkNvcmU1Q29sb3IxMHNlcmlhbGl6ZWRFdgogX19a
Tks3V2ViQ29yZTVDb2xvcjdnZXRSR0JBRVJkUzFfUzFfUzFfCiBfX1pOSzdXZWJDb3JlNUNvbG9y
N2dldFJHQkFFUmZTMV9TMV9TMV8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4ODUyNDFjLi43YzlhNWU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMjE4LDYg
KzIyMTgsNyBAQAogCQk3NTQxNUQ1QTEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJl
c3VsdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc1NDE1RDU0MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5oICov
OyB9OwogCQk3NTUzQ0ZFODEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZF
NjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi87IH07CiAJCTc1
NTNDRkU5MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1M0NGRTcxMDhGNDcz
RjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgKi87IH07CisJCTc1NkIyQ0Ux
MThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNzaW9uSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NkIyQ0UwMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNzaW9u
SUQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
NTc4RjkwQzExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTA5MTFEREYyNjkwMEQ5MzNDNSAv
KiBTcGVlY2hJbnB1dC5oICovOyB9OwogCQk3NTc4RjkwRDExRERGMjY5MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc1NzhGOTBBMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudC5oICov
OyB9OwogCQk3NTc4RjkyMDExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRMaXN0ZW5lci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5MUUx
MUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0TGlzdGVuZXIuaCAqLzsgfTsKQEAgLTIyMjgs
NiArMjIyOSw3IEBACiAJCTc1NzkzRUQzMEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1Nzkz
RUQwMEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnQuaCAqLzsgfTsKIAkJNzU3OTNF
RDQwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRUQxMEQwQ0U4NUIwMDdGQzBBQyAv
KiBET01NZXNzYWdlRXZlbnQubW0gKi87IH07CiAJCTc1NzkzRUQ1MEQwQ0U4NUIwMDdGQzBBQyAv
KiBET01NZXNzYWdlRXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFRDIwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VF
dmVudEludGVybmFsLmggKi87IH07CisJCTc1RENDN0I4MThCODFDODgwMEE1NzEyOCAvKiBTZXNz
aW9uSURIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3NURDQzdCNzE4QjgxQzg4MDBBNTcxMjggLyogU2Vzc2lvbklESGFzaC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc2MzNBNzI2MTNEOEIzM0Ew
MDg1MDFCNiAvKiBMb2NhbGVUb1NjcmlwdE1hcHBpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2MzNBNzI0MTNEOEIzM0EwMDg1MDFCNiAvKiBMb2Nh
bGVUb1NjcmlwdE1hcHBpbmcuaCAqLzsgfTsKIAkJNzYzM0E3MjcxM0Q4QjMzQTAwODUwMUI2IC8q
IExvY2FsZVRvU2NyaXB0TWFwcGluZ0RlZmF1bHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzYzM0E3MjUxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2Fs
ZVRvU2NyaXB0TWFwcGluZ0RlZmF1bHQuY3BwICovOyB9OwogCQk3NjgwOEI1MDE1OURBREZBMDAy
QjUyMzMgLyogSlNIVE1MRGlhbG9nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzY4MDhCNEUxNTlEQURGQTAwMkI1MjMzIC8qIEpTSFRNTERp
YWxvZ0VsZW1lbnQuaCAqLzsgfTsKQEAgLTkxNTMsNiArOTE1NSw3IEBACiAJCTc1NDE1RDU0MTI5
QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVS
ZWNvcmRGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVsaW5l
UmVjb3JkRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTUzQ0ZFNzEw
OEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NkIyQ0UwMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNz
aW9uSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Vzc2lvbklELmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NzhGOTA5MTFEREYyNjkwMEQ5MzNDNSAvKiBT
cGVlY2hJbnB1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hJbnB1
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc4RjkwQTExRERGMjY5MDBEOTMz
QzUgLyogU3BlZWNoSW5wdXRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3BlZWNoSW5wdXRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU3
OEY5MUUxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0TGlzdGVuZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoSW5wdXRMaXN0ZW5lci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtOTE2NSw2ICs5MTY4LDcgQEAKIAkJNzU3OTNFRDEwRDBDRTg1
QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBET01NZXNzYWdlRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTc1NzkzRUQyMEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnRJbnRl
cm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NTWVzc2FnZUV2ZW50
SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU4OTc4RUIxMjcwOTBE
NjAwNzZENUE5IC8qIFNwZWVjaElucHV0UmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaElucHV0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTc1RENDN0I3MThCODFDODgwMEE1NzEyOCAvKiBTZXNzaW9uSURIYXNoLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlc3Npb25JREhhc2guaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzYzM0E3MjQxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0
TWFwcGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbGVUb1Njcmlw
dE1hcHBpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzYzM0E3MjUxM0Q4QjMz
QTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0TWFwcGluZ0RlZmF1bHQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVsdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2ODA4QjRFMTU5REFERkEwMDJCNTIz
MyAvKiBKU0hUTUxEaWFsb2dFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTSFRNTERpYWxvZ0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE2MTcxLDYgKzE2MTc1LDggQEAKIAkJCQlCQ0QwRTBGOTBFOTcyQzM1MDAyNjVERUEgLyogU2Vj
dXJpdHlPcmlnaW5IYXNoLmggKi8sCiAJCQkJOTc0RDJEQTIxNDZBNTM1RDAwRDUxRjhCIC8qIFNl
Y3VyaXR5UG9saWN5LmNwcCAqLywKIAkJCQk5NzREMkRBMzE0NkE1MzVEMDBENTFGOEIgLyogU2Vj
dXJpdHlQb2xpY3kuaCAqLywKKwkJCQk3NTZCMkNFMDE4QjcxMDE2MDBGRUNGQUEgLyogU2Vzc2lv
bklELmggKi8sCisJCQkJNzVEQ0M3QjcxOEI4MUM4ODAwQTU3MTI4IC8qIFNlc3Npb25JREhhc2gu
aCAqLywKIAkJCQkxNEM5QTVFOTBCM0QxMDVGMDA1QTAyMzIgLyogU2V0dGluZ3MuY3BwICovLAog
CQkJCUY1ODc4NjNBMDJERTNBMTQwMUVBNDEyMiAvKiBTZXR0aW5ncy5oICovLAogCQkJCUJDNTlE
RUY4MTY5REVEQzMwMDE2QUMzNCAvKiBTZXR0aW5ncy5pbiAqLywKQEAgLTI1MTg4LDYgKzI1MTk0
LDggQEAKIAkJCQlFNDUzMjJBQzE0MENFMjY3MDA1QTBGOTIgLyogU2VsZWN0b3JRdWVyeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTE4REYzMzUxOEFBRjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6ZWRD
cnlwdG9LZXlXcmFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzVFNDk3NjEwNzUyQUNCMDBDOUI4
OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTZCMkNF
MTE4QjcxMDE2MDBGRUNGQUEgLyogU2Vzc2lvbklELmggaW4gSGVhZGVycyAqLywKKwkJCQk3NURD
QzdCODE4QjgxQzg4MDBBNTcxMjggLyogU2Vzc2lvbklESGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTMzMDlFMTAwOTlFNjQ5MjAwNTZFNTgxIC8qIFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCOERCREI0QzEzMEIwRjhBMDBGNUNEQjEgLyogU2V0U2VsZWN0
aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5NEYwODI0NUU1OTAwMUU5QUJD
IC8qIFNldHRpbmdzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDg4YWJh
MjY0Li4zOWJlN2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE4Myw2ICsxODMsNyBAQCBQYWdl
OjpQYWdlKFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICAgICAsIG1fbGFzdFNwYXRpYWxOYXZp
Z2F0aW9uQ2FuZGlkYXRlc0NvdW50KDApIC8vIE5PVEU6IE9ubHkgY2FsbGVkIGZyb20gSW50ZXJu
YWxzIGZvciBTcGF0aWFsIE5hdmlnYXRpb24gdGVzdGluZy4KICAgICAsIG1fZnJhbWVzSGFuZGxp
bmdCZWZvcmVVbmxvYWRFdmVudCgwKQogICAgICwgbV92aXNpdGVkTGlua1N0b3JlKHN0ZDo6bW92
ZShwYWdlQ2xpZW50cy52aXNpdGVkTGlua1N0b3JlKSkKKyAgICAsIG1fc2Vzc2lvbklEKFNlc3Np
b25JRDo6ZW1wdHlTZXNzaW9uSUQoKSkKIHsKICAgICBBU1NFUlQobV9lZGl0b3JDbGllbnQpOwog
CkBAIC0xNDgzLDYgKzE0ODQsMjMgQEAgVmlzaXRlZExpbmtTdG9yZSYgUGFnZTo6dmlzaXRlZExp
bmtTdG9yZSgpCiAgICAgcmV0dXJuIGdyb3VwKCkudmlzaXRlZExpbmtTdG9yZSgpOwogfQogCitT
ZXNzaW9uSUQgUGFnZTo6c2Vzc2lvbklEKCkgY29uc3QKK3sKKyAgICBpZiAobV9zZXNzaW9uSUQu
aXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gbV9zZXNzaW9uSUQ7CisKKyAgICBpZiAoc2V0dGlu
Z3MoKS5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKTsKKworICAgIHJldHVybiBTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKTsKK30KKwordm9pZCBQYWdlOjpzZXRTZXNzaW9uSUQoU2Vzc2lvbklEIHNl
c3Npb25JRCkKK3sKKyAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7CisgICAgbV9zZXNz
aW9uSUQgPSBzZXNzaW9uSUQ7Cit9CisKIFBhZ2U6OlBhZ2VDbGllbnRzOjpQYWdlQ2xpZW50cygp
CiAgICAgOiBhbHRlcm5hdGl2ZVRleHRDbGllbnQobnVsbHB0cikKICAgICAsIGNocm9tZUNsaWVu
dChudWxscHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCAxMTkxZjJkLi45Yzg1ZWYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlBhZ2luYXRpb24uaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlJlZ2lvbi5oIgorI2luY2x1ZGUgIlNlc3Np
b25JRC5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCiAjaW5jbHVkZSAiVmlld1N0YXRl
LmgiCiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKQEAgLTQwMyw2ICs0MDQsMTAgQEAg
cHVibGljOgogCiAgICAgVmlzaXRlZExpbmtTdG9yZSYgdmlzaXRlZExpbmtTdG9yZSgpOwogCisg
ICAgU2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0OworICAgIHZvaWQgc2V0U2Vzc2lvbklEKFNl
c3Npb25JRCk7CisgICAgYm9vbCBpc1Nlc3Npb25JRFNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vz
c2lvbklELmlzVmFsaWQoKTsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgaW5pdEdyb3VwKCk7CiAK
QEAgLTU0Myw2ICs1NDgsOCBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPFVzZXJDb250ZW50Q29u
dHJvbGxlcj4gbV91c2VyQ29udGVudENvbnRyb2xsZXI7CiAgICAgUmVmUHRyPFZpc2l0ZWRMaW5r
U3RvcmU+IG1fdmlzaXRlZExpbmtTdG9yZTsKKworICAgIFNlc3Npb25JRCBtX3Nlc3Npb25JRDsK
IH07CiAKIGlubGluZSBQYWdlR3JvdXAmIFBhZ2U6Omdyb3VwKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklELmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25J
RC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlZmQ3NGEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5oCkBAIC0wLDAgKzEsNTIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNlc3Npb25JRF9oCisjZGVmaW5lIFNlc3Npb25JRF9o
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2Vzc2lvbklEIHsKK3B1YmxpYzoKKyAg
ICBTZXNzaW9uSUQoKQorICAgICAgICA6IFNlc3Npb25JRChlbXB0eVNlc3Npb25JRCgpKSB7IH0K
KyAgICBleHBsaWNpdCBTZXNzaW9uSUQodWludDY0X3Qgc2Vzc2lvbklEKQorICAgICAgICA6IG1f
c2Vzc2lvbklEKHNlc3Npb25JRCkgeyB9CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1
cm4gKnRoaXMgIT0gZW1wdHlTZXNzaW9uSUQoKTsgfQorICAgIGJvb2wgaXNFcGhlbWVyYWwoKSBj
b25zdCB7IHJldHVybiAqdGhpcyAhPSBkZWZhdWx0U2Vzc2lvbklEKCk7IH0KKyAgICB1aW50NjRf
dCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQorICAgIGJvb2wgb3Bl
cmF0b3I9PShTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRCA9
PSBzZXNzaW9uSUQubV9zZXNzaW9uSUQ7IH0KKyAgICBib29sIG9wZXJhdG9yIT0oU2Vzc2lvbklE
IHNlc3Npb25JRCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQgIT0gc2Vzc2lvbklELm1fc2Vz
c2lvbklEOyB9CisKKyAgICBzdGF0aWMgU2Vzc2lvbklEIGVtcHR5U2Vzc2lvbklEKCkgeyByZXR1
cm4gU2Vzc2lvbklEKDApOyB9CisgICAgc3RhdGljIFNlc3Npb25JRCBkZWZhdWx0U2Vzc2lvbklE
KCkgeyByZXR1cm4gU2Vzc2lvbklEKDEpOyB9CisgICAgc3RhdGljIFNlc3Npb25JRCBsZWdhY3lQ
cml2YXRlU2Vzc2lvbklEKCkgeyByZXR1cm4gU2Vzc2lvbklEKDIpOyB9Citwcml2YXRlOgorICAg
IHVpbnQ2NF90IG1fc2Vzc2lvbklEOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gU2Vzc2lvbklEX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vz
c2lvbklESGFzaC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSURIYXNoLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGE5ODRhYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklESGFzaC5oCkBAIC0wLDAgKzEsNTQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFNlc3Npb25JREhhc2hfaAorI2RlZmluZSBTZXNzaW9uSURIYXNo
X2gKKworI2luY2x1ZGUgIlNlc3Npb25JRC5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoRnVuY3Rpb25z
Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hUcmFpdHMuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKy8v
IFRoZSBlbXB0eSB2YWx1ZSBpcyBlbXB0eVNlc3Npb25JRCgpLCB0aGUgZGVsZXRlZCB2YWx1ZSBp
cyAoLTEpCitzdHJ1Y3QgU2Vzc2lvbklESGFzaCB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhhc2go
Y29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJiBwKSB7IHJldHVybiAodW5zaWduZWQpcC5zZXNzaW9u
SUQoKTsgfQorICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYg
YSwgY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJiBiKSB7IHJldHVybiBhID09IGI7IH0KKyAgICBz
dGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Cit9
OwordGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJDb3JlOjpTZXNzaW9uSUQ+IDogR2Vu
ZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6U2Vzc2lvbklEPiB7CisgICAgc3RhdGljIGNvbnN0IGJv
b2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOworICAgIHN0YXRpYyBXZWJDb3JlOjpTZXNzaW9u
SUQgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIFdlYkNvcmU6OlNlc3Npb25JRDo6ZW1wdHlTZXNzaW9u
SUQoKTsgfQorCisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdlYkNvcmU6
OlNlc3Npb25JRCYgc2xvdCkgeyBzbG90ID0gV2ViQ29yZTo6U2Vzc2lvbklEKC0yKTsgfQorICAg
IHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYgc2xv
dCkgeyByZXR1cm4gc2xvdCA9PSBXZWJDb3JlOjpTZXNzaW9uSUQoLTIpOyB9Cit9OwordGVtcGxh
dGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29yZTo6U2Vzc2lvbklEPiB7CisgICAgdHlwZWRl
ZiBTZXNzaW9uSURIYXNoIEhhc2g7Cit9OworCit9CisKKyNlbmRpZiAvLyBTZXNzaW9uSURIYXNo
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCA2NDMxMzE4Li44OWExMzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
OTUgQEAKKzIwMTQtMDItMjUgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAg
ICAgIENyZWF0ZSBTZXNzaW9uSUQgdmFsdWUtc3R5bGUgY2xhc3MgZm9yIHNlc3Npb24gSURzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MTQxCisK
KyAgICAgICAgVGhlIGJlbG93IGNoYW5nZXMgZGVhbCBzb2xlbHkgd2l0aCBtZWNoYW5pY2FsIGNo
YW5nZXMgdG8gdXNlIHRoZSBTZXNzaW9uSUQgdmFsdWUgY2xhc3MgaW5zdGVhZCBvZiB1aW50NjRf
dCBleGNlcHQgd2hlcmUgbm90ZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3RhcnREb3dubG9hZCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tp
ZXNGcm9tRE9NKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmNvb2tpZXNFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldFJhd0Nvb2tpZXMpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVsZXRlQ29va2ll
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3Jr
UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjplbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlc3Ry
b3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1t
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVO
ZXR3b3JraW5nQ29udGV4dFNvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgICogU2hh
cmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6TmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMpOgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6c3RhdGljU2Vzc2lvbk1hcCk6CisgICAgICAgIChXZWJLaXQ6OnN0b3Jh
Z2VTZXNzaW9uVG9JRCk6CisgICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpzZXNzaW9u
TWFwKToKKyAgICAgICAgKFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OnNlc3Npb24pOgorICAgICAg
ICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6
U2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9uVHJh
Y2tlcjo6ZGVzdHJveVNlc3Npb24pOgorICAgICAgICAqIFNoYXJlZC9TZXNzaW9uVHJhY2tlci5o
OiBNb3ZlIGNvZGUgdG8gU2Vzc2lvbklEIGNsYXNzLgorICAgICAgICAqIFNoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwOiBBZGQgZW5jb2RlIGFuZCBkZWNvZGUgZm9yIFNlc3Npb25JRC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxTZXNzaW9uSUQ+OjplbmNvZGUpOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPFNlc3Npb25JRD46OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29va2ll
U3RvcmFnZVNoaW0ubW06CisgICAgICAgIChXZWJLaXQ6OndlYktpdENvb2tpZVN0b3JhZ2VDb3B5
UmVxdWVzdEhlYWRlckZpZWxkc0ZvclVSTCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSVNlc3Np
b24uY3BwOgorICAgICAgICAoQVBJOjpnZW5lcmF0ZUlEKToKKyAgICAgICAgKEFQSTo6U2Vzc2lv
bjo6ZGVmYXVsdFNlc3Npb24pOgorICAgICAgICAoQVBJOjpTZXNzaW9uOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbik6CisgICAgICAgIChBUEk6OlNlc3Npb246OlNlc3Npb24pOgorICAgICAgICAoQVBJ
OjpTZXNzaW9uOjppc0VwaGVtZXJhbCk6CisgICAgICAgIChBUEk6OlNlc3Npb246OmdldElEKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6c2V0QW55UGFnZUdy
b3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRleHQ6OmNyZWF0ZU5ld1dlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJD
b250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlc3Npb25JRCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVj
dGVkQnVuZGxlOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6IE1vdmUgc2Vzc2lvbklEIHRv
IFBhZ2UgdG8gYWxsb3cgV2ViQ29yZSB0byBhY2Nlc3MgaXQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OldlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXNzaW9uSUQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppc1VzaW5nRXBoZW1lcmFsU2Vzc2lvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFNlc3Npb25JRCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluOgorCiAyMDE0LTAyLTI2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8
YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFJlbW92ZSBzb21lIGVycm9uZW91c2x5IGNh
cHR1cmVkIGJsb2NrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDFmZWU0OTgu
LmRjYzYyZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQyLDYgKzQyLDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3Rm
L1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xNDgsOSArMTQ5LDkg
QEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0U2VyaWFsTG9hZGluZ0Vu
YWJsZWQoYm9vbCBlbmFibGVkKQogICAgIG1fc2VyaWFsTG9hZGluZ0VuYWJsZWQgPSBlbmFibGVk
OwogfQogCi1zdGF0aWMgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzdG9yYWdlU2Vzc2lvbih1aW50
NjRfdCBzZXNzaW9uSUQpCitzdGF0aWMgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzdG9yYWdlU2Vz
c2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIGlmIChTZXNzaW9uVHJhY2tlcjo6aXNF
cGhlbWVyYWxJRChzZXNzaW9uSUQpKSB7CisgICAgaWYgKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgp
KSB7CiAgICAgICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogcHJpdmF0ZVNlc3Npb24gPSBTZXNz
aW9uVHJhY2tlcjo6c2Vzc2lvbihzZXNzaW9uSUQpOwogICAgICAgICBpZiAocHJpdmF0ZVNlc3Np
b24pCiAgICAgICAgICAgICByZXR1cm4gKnByaXZhdGVTZXNzaW9uOwpAQCAtMTYxLDcgKzE2Miw3
IEBAIHN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKHVpbnQ2NF90
IHNlc3Npb25JRCkKICAgICByZXR1cm4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3Rv
cmFnZVNlc3Npb24oKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
c3RhcnREb3dubG9hZCh1aW50NjRfdCBzZXNzaW9uSUQsIHVpbnQ2NF90IGRvd25sb2FkSUQsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OnN0YXJ0RG93bmxvYWQoU2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgZG93
bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIC8vIEZJWE1F
OiBEbyBzb21ldGhpbmcgd2l0aCB0aGUgc2Vzc2lvbiBJRC4KICAgICBOZXR3b3JrUHJvY2Vzczo6
c2hhcmVkKCkuZG93bmxvYWRNYW5hZ2VyKCkuc3RhcnREb3dubG9hZChkb3dubG9hZElELCByZXF1
ZXN0KTsKQEAgLTE4MywzMiArMTg0LDMyIEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZCh1aW50NjRfdCBtCiAgICAg
bG9hZGVyLT5kaWRDb252ZXJ0SGFuZGxlVG9Eb3dubG9hZCgpOwogfQogCi12b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKHVpbnQ2NF90IHNlc3Npb25JRCwg
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgU3RyaW5nJiByZXN1bHQpCit2
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKFNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIFN0cmlu
ZyYgcmVzdWx0KQogewogICAgIHJlc3VsdCA9IFdlYkNvcmU6OmNvb2tpZXNGb3JET00oc3RvcmFn
ZVNlc3Npb24oc2Vzc2lvbklEKSwgZmlyc3RQYXJ0eSwgdXJsKTsKIH0KIAotdm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00odWludDY0X3Qgc2Vzc2lv
bklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IGNvb2tpZVN0cmluZykKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENv
b2tpZXNGcm9tRE9NKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQogewogICAgIFdlYkNv
cmU6OnNldENvb2tpZXNGcm9tRE9NKHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCksIGZpcnN0UGFy
dHksIHVybCwgY29va2llU3RyaW5nKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Y29va2llc0VuYWJsZWQodWludDY0X3Qgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBib29sJiByZXN1bHQpCit2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRW5hYmxlZChTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBib29sJiByZXN1bHQpCiB7CiAg
ICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29va2llc0VuYWJsZWQoc3RvcmFnZVNlc3Npb24oc2Vzc2lv
bklEKSwgZmlyc3RQYXJ0eSwgdXJsKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUodWludDY0X3Qgc2Vzc2lvbklE
LCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBTdHJpbmcmIHJlc3VsdCkK
K3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgVVJMJiB1cmwsIFN0cmluZyYgcmVzdWx0KQogewogICAgIHJlc3VsdCA9IFdlYkNvcmU6OmNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCksIGZp
cnN0UGFydHksIHVybCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmdldFJhd0Nvb2tpZXModWludDY0X3Qgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8Q29va2llPiYgcmVzdWx0KQordm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2llcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8Q29va2llPiYgcmVz
dWx0KQogewogICAgIFdlYkNvcmU6OmdldFJhd0Nvb2tpZXMoc3RvcmFnZVNlc3Npb24oc2Vzc2lv
bklEKSwgZmlyc3RQYXJ0eSwgdXJsLCByZXN1bHQpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpkZWxldGVDb29raWUodWludDY0X3Qgc2Vzc2lvbklELCBjb25zdCBV
UkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKQordm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6ZGVsZXRlQ29va2llKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpCiB7CiAgICAgV2ViQ29yZTo6ZGVsZXRl
Q29va2llKHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCksIHVybCwgY29va2llTmFtZSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCAzOTgxZmE1Li5mYTk5Nzk1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTc2LDE1ICs3NiwxNSBAQCBwcml2YXRlOgogICAgIHZvaWQg
Y3Jvc3NPcmlnaW5SZWRpcmVjdFJlY2VpdmVkKFJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlVSTCYgcmVkaXJlY3RVUkwpOwogICAgIHZvaWQgc2VydmVQZW5kaW5nUmVxdWVz
dHModWludDMyX3QgcmVzb3VyY2VMb2FkUHJpb3JpdHkpOwogICAgIHZvaWQgc2V0U2VyaWFsTG9h
ZGluZ0VuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBzdGFydERvd25sb2FkKHVpbnQ2NF90IHNlc3Np
b25JRCwgdWludDY0X3QgZG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
Jik7CisgICAgdm9pZCBzdGFydERvd25sb2FkKFdlYkNvcmU6OlNlc3Npb25JRCwgdWludDY0X3Qg
ZG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgdm9pZCBj
b252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQodWludDY0X3QgbWFpblJlc291cmNlTG9h
ZElkZW50aWZpZXIsIHVpbnQ2NF90IGRvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKIAotICAgIHZvaWQg
Y29va2llc0ZvckRPTSh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgU3RyaW5nJiByZXN1bHQpOwotICAgIHZvaWQg
c2V0Q29va2llc0Zyb21ET00odWludDY0X3Qgc2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYpOwotICAgIHZv
aWQgY29va2llc0VuYWJsZWQodWludDY0X3Qgc2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGJvb2wmIHJlc3VsdCk7Ci0gICAgdm9p
ZCBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgU3RyaW5nJiBy
ZXN1bHQpOwotICAgIHZvaWQgZ2V0UmF3Q29va2llcyh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgVmVjdG9yPFdl
YkNvcmU6OkNvb2tpZT4mKTsKLSAgICB2b2lkIGRlbGV0ZUNvb2tpZSh1aW50NjRfdCBzZXNzaW9u
SUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSk7CisgICAg
dm9pZCBjb29raWVzRm9yRE9NKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBTdHJpbmcmIHJlc3VsdCk7CisgICAg
dm9pZCBzZXRDb29raWVzRnJvbURPTShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6
OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJik7Cisg
ICAgdm9pZCBjb29raWVzRW5hYmxlZChXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6
OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgYm9vbCYgcmVzdWx0KTsKKyAg
ICB2b2lkIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFdlYkNvcmU6OlNlc3Npb25JRCwg
Y29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBTdHJp
bmcmIHJlc3VsdCk7CisgICAgdm9pZCBnZXRSYXdDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCwg
Y29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBWZWN0
b3I8V2ViQ29yZTo6Q29va2llPiYpOworICAgIHZvaWQgZGVsZXRlQ29va2llKFdlYkNvcmU6OlNl
c3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsK
IAogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IEJs
b2JSZWdpc3RyYXRpb25EYXRhJik7CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxGcm9tVVJMKGNv
bnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgc3JjVVJMKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggYTQ1OTdmYy4uYWYxZTg1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTMy
LDE1ICszMiwxNSBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciB7CiAgICAgCiAgICAgU2V0U2VyaWFsTG9hZGluZ0VuYWJsZWQoYm9vbCBl
bmFibGVkKSAtPiAoKQogCi0gICAgU3RhcnREb3dubG9hZCh1aW50NjRfdCBzZXNzaW9uSUQsIHVp
bnQ2NF90IGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0KQorICAg
IFN0YXJ0RG93bmxvYWQoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgZG93
bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QpCiAgICAgQ29udmVydE1h
aW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlm
aWVyLCB1aW50NjRfdCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKIAotICAgIENvb2tpZXNGb3JE
T00odWludDY0X3Qgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6
VVJMIHVybCkgLT4gKFN0cmluZyByZXN1bHQpCi0gICAgU2V0Q29va2llc0Zyb21ET00odWludDY0
X3Qgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCwg
U3RyaW5nIGNvb2tpZVN0cmluZykKLSAgICBDb29raWVzRW5hYmxlZCh1aW50NjRfdCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoYm9vbCBl
bmFibGVkKQotICAgIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHVpbnQ2NF90IHNlc3Np
b25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChTdHJp
bmcgcmVzdWx0KQotICAgIEdldFJhd0Nvb2tpZXModWludDY0X3Qgc2Vzc2lvbklELCBXZWJDb3Jl
OjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+IGNvb2tpZXMpCi0gICAgRGVsZXRlQ29va2llKHVpbnQ2NF90IHNlc3Npb25JRCwgV2Vi
Q29yZTo6VVJMIHVybCwgU3RyaW5nIGNvb2tpZU5hbWUpCisgICAgQ29va2llc0ZvckRPTShXZWJD
b3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29y
ZTo6VVJMIHVybCkgLT4gKFN0cmluZyByZXN1bHQpCisgICAgU2V0Q29va2llc0Zyb21ET00oV2Vi
Q29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIFdlYkNv
cmU6OlVSTCB1cmwsIFN0cmluZyBjb29raWVTdHJpbmcpCisgICAgQ29va2llc0VuYWJsZWQoV2Vi
Q29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIFdlYkNv
cmU6OlVSTCB1cmwpIC0+IChib29sIGVuYWJsZWQpCisgICAgQ29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0
UGFydHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChTdHJpbmcgcmVzdWx0KQorICAgIEdldFJhd0Nv
b2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFy
dHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVz
KQorICAgIERlbGV0ZUNvb2tpZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3Jl
OjpVUkwgdXJsLCBTdHJpbmcgY29va2llTmFtZSkKIAogICAgIFJlZ2lzdGVyQmxvYlVSTChXZWJD
b3JlOjpVUkwgdXJsLCBXZWJLaXQ6OkJsb2JSZWdpc3RyYXRpb25EYXRhIGRhdGEpCiAgICAgUmVn
aXN0ZXJCbG9iVVJMRnJvbVVSTChXZWJDb3JlOjpVUkwgdXJsLCBXZWJDb3JlOjpVUkwgc3JjVVJM
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CmluZGV4IDhhMTJhYjcuLjU1YWIwYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJX
ZWJDb29raWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25J
RC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogCkBAIC0xNjMsNyArMTY0LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6
ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWUKIAogICAg
IC8vIEZJWE1FOiBpbnN0ZWFkIG9mIGhhbmRsaW5nIHRoaXMgaGVyZSwgYSBtZXNzYWdlIHNob3Vs
ZCBiZSBzZW50IGxhdGVyIChzY2FsZXMgdG8gbXVsdGlwbGUgc2Vzc2lvbnMpCiAgICAgaWYgKHBh
cmFtZXRlcnMucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAgICAgICAgUmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAgICAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6
ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQoKSk7CiAKICAgICBpZiAocGFyYW1ldGVycy5zaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nl
c3Npb24pCiAgICAgICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5n
U2Vzc2lvbigpOwpAQCAtMjE0LDEyICsyMTUsMTIgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3Jl
YXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKQogI2VuZGlmCiB9CiAKLXZvaWQgTmV0
d29ya1Byb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lv
bklEKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihT
ZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1
cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHNlc3Npb25JRCk7CiB9CiAKLXZvaWQgTmV0d29ya1By
b2Nlc3M6OmRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkK
K3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Np
b25JRCBzZXNzaW9uSUQpCiB7CiAgICAgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKHNl
c3Npb25JRCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaAppbmRleCBiNTBmMDhhLi4xYmU2Zjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRl
ICJEb3dubG9hZE1hbmFnZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIKICNp
bmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgogCkBAIC0xMDQsOCArMTA1LDggQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRpZFJlY2VpdmVOZXR3b3JrUHJvY2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0
IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdm9pZCBjcmVhdGVOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcygpOwotICAgIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpOwotICAgIHZvaWQgZGVzdHJveVByaXZhdGVC
cm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKKyAgICB2b2lkIGVuc3VyZVByaXZh
dGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIGRlc3Ryb3lQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CiAgICAgdm9pZCBkb3du
bG9hZFJlcXVlc3QodWludDY0X3QgZG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0Jik7CiAgICAgdm9pZCBjYW5jZWxEb3dubG9hZCh1aW50NjRfdCBkb3dubG9hZElEKTsK
ICAgICB2b2lkIHNldENhY2hlTW9kZWwodWludDMyX3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAy
N2M1OGI0Li43NDk5NDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzQsOCArMzQsOCBAQCBtZXNz
YWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgVXNlclByZWZlcnJl
ZExhbmd1YWdlc0NoYW5nZWQoVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzKQogI2VuZGlmCiAKLSAg
ICBFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKLSAgICBE
ZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCisgICAgRW5z
dXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQor
ICAgIERlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCiAKICAgICBEb3dubG9hZFJlcXVlc3QodWludDY0X3QgZG93bmxvYWRJRCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QpCiAgICAgQ2FuY2VsRG93bmxvYWQodWludDY0X3Qg
ZG93bmxvYWRJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXggMjhiY2M5Yi4uNjljNTlmMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgK
QEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlQ2xpZW50
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklE
Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5o
PgogCkBAIC0xNzMsNyArMTc0LDcgQEAgcHJpdmF0ZToKICAgICBSZXNvdXJjZUxvYWRJZGVudGlm
aWVyIG1faWRlbnRpZmllcjsKICAgICB1aW50NjRfdCBtX3dlYlBhZ2VJRDsKICAgICB1aW50NjRf
dCBtX3dlYkZyYW1lSUQ7Ci0gICAgdWludDY0X3QgbV9zZXNzaW9uSUQ7CisgICAgV2ViQ29yZTo6
U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3Jl
cXVlc3Q7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHkgbV9wcmlvcml0eTsKICAg
ICBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgbV9jb250ZW50U25pZmZpbmdQb2xpY3k7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQuaAppbmRleCBlOTU4YmIzLi5mNWNjY2MxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAg
LTI4LDI0ICsyOCwyNSBAQAogI2RlZmluZSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dF9oCiAKICNp
bmNsdWRlIDxXZWJDb3JlL05ldHdvcmtpbmdDb250ZXh0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9T
ZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0IGZpbmFsIDogcHVibGljIFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW1vdGVOZXR3b3JraW5nQ29udGV4dD4gY3Jl
YXRlKHVpbnQ2NF90IHNlc3Npb25JRCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0KQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0PiBjcmVhdGUoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChzZXNzaW9uSUQsIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpKTsKICAgICB9CiAgICAgdmlydHVhbCB+UmVt
b3RlTmV0d29ya2luZ0NvbnRleHQoKTsKIAogICAgIC8vIEZJWE1FOiBSZW1vdmUgcGxhdGZvcm0t
c3BlY2lmaWMgY29kZSBhbmQgdXNlIFNlc3Npb25UcmFja2VyLgotICAgIHN0YXRpYyB2b2lkIGVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKKyAgICBzdGF0
aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7
CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRU
UFNUb0hUVFBSZWRpcmVjdDsgfQogCiBwcml2YXRlOgotICAgIFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0KHVpbnQ2NF90IHNlc3Npb25JRCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0KQorICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCkKICAgICAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgICAgICwgbV9zaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QpCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC02Niw3ICs2Nyw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRF
cnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBvdmVycmlkZTsKICNl
bmRpZgogCi0gICAgdWludDY0X3QgbV9zZXNzaW9uSUQ7CisgICAgV2ViQ29yZTo6U2Vzc2lvbklE
IG1fc2Vzc2lvbklEOwogICAgIGJvb2wgbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0K
aW5kZXggYTBhOGY2NS4uMmE3YzU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtNzcs
MTUgKzc3LDE1IEBAIFJlc291cmNlRXJyb3IgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmJsb2Nr
ZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlCiAgICAgcmV0dXJuIFdlYktpdDo6
YmxvY2tlZEVycm9yKHJlcXVlc3QpOwogfQogCi12b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKK3ZvaWQg
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vz
c2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBBU1NFUlQoU2Vzc2lvblRyYWNrZXI6OmlzRXBoZW1l
cmFsSUQoc2Vzc2lvbklEKSk7CisgICAgQVNTRVJUKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKTsK
IAogICAgIGlmIChTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBBU1NFUlQoIVNlc3Npb25UcmFja2VyOjpnZXRJZGVudGlmaWVyQmFzZSgp
LmlzTnVsbCgpKTsKLSAgICBTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbihzZXNzaW9uSUQsIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9u
VHJhY2tlcjo6Z2V0SWRlbnRpZmllckJhc2UoKSArICcuJyArIFN0cmluZzo6bnVtYmVyKHNlc3Np
b25JRCkpKTsKKyAgICBTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbihzZXNzaW9uSUQsIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uVHJh
Y2tlcjo6Z2V0SWRlbnRpZmllckJhc2UoKSArICcuJyArIFN0cmluZzo6bnVtYmVyKHNlc3Npb25J
RC5zZXNzaW9uSUQoKSkpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4dFNvdXAuY3BwIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4dFNvdXAu
Y3BwCmluZGV4IGQ3Y2Y4NmUuLjNiZTlkYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0
U291cC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgYm9vbCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6
aXNWYWxpZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lv
bklEKQordm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKaW5kZXggNTRjYWJmNC4uZDdkOTJlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcApAQCAtNDEsNyArNDEsNyBAQCBOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVyczo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMoKQogICAg
IDogaWRlbnRpZmllcigwKQogICAgICwgd2ViUGFnZUlEKDApCiAgICAgLCB3ZWJGcmFtZUlEKDAp
Ci0gICAgLCBzZXNzaW9uSUQoMCkKKyAgICAsIHNlc3Npb25JRChTZXNzaW9uSUQ6OmVtcHR5U2Vz
c2lvbklEKCkpCiAgICAgLCBwcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlMb3cpCiAg
ICAgLCBjb250ZW50U25pZmZpbmdQb2xpY3koU25pZmZDb250ZW50KQogICAgICwgYWxsb3dTdG9y
ZWRDcmVkZW50aWFscyhEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMuaAppbmRleCBjYmY0NTMxLi45MTYxNTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklE
Lmg+CiAKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogCkBAIC01Miw3ICs1Myw3IEBAIHB1
YmxpYzoKICAgICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXI7CiAgICAgdWludDY0
X3Qgd2ViUGFnZUlEOwogICAgIHVpbnQ2NF90IHdlYkZyYW1lSUQ7Ci0gICAgdWludDY0X3Qgc2Vz
c2lvbklEOworICAgIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CiAgICAgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJy
YXkgcmVxdWVzdEJvZHlTYW5kYm94RXh0ZW5zaW9uczsgLy8gQ3JlYXRlZCBhdXRvbWF0aWNhbGx5
IGZvciB0aGUgc2VuZGVyLgogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSByZXNvdXJjZVNh
bmRib3hFeHRlbnNpb247IC8vIENyZWF0ZWQgYXV0b21hdGljYWxseSBmb3IgdGhlIHNlbmRlci4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwCmluZGV4IDZlNGQ0ZmYuLmJk
Y2ZmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcApAQCAtMzMs
MjIgKzMzLDE5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotY29uc3QgdWludDY0X3QgU2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQ7Ci1j
b25zdCB1aW50NjRfdCBTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRDsKLQot
c3RhdGljIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNl
c3Npb24+PiYgc3RhdGljU2Vzc2lvbk1hcCgpCitzdGF0aWMgSGFzaE1hcDxTZXNzaW9uSUQsIHN0
ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+PiYgc3RhdGljU2Vzc2lvbk1hcCgp
CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uPj4+IG1hcDsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTZXNzaW9u
SUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+Pj4gbWFwOwogICAgIHJl
dHVybiBtYXAuZ2V0KCk7CiB9CiAKLXN0YXRpYyBIYXNoTWFwPGNvbnN0IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiosIHVpbnQ2NF90PiYgc3RvcmFnZVNlc3Npb25Ub0lEKCkKK3N0YXRpYyBIYXNoTWFw
PGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiosIFNlc3Npb25JRD4mIHN0b3JhZ2VTZXNzaW9u
VG9JRCgpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxIYXNoTWFwPGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiosIHVpbnQ2
NF90Pj4gbWFwOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPGNvbnN0IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiosIFNlc3Npb25JRD4+IG1hcDsKICAgICByZXR1cm4gbWFwLmdldCgp
OwogfQogCkBAIC02MCw3ICs1Nyw3IEBAIHN0YXRpYyBTdHJpbmcmIGlkZW50aWZpZXJCYXNlKCkK
ICAgICByZXR1cm4gYmFzZTsKIH0KIAotY29uc3QgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlx
dWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbk1h
cCgpCitjb25zdCBIYXNoTWFwPFNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbj4+JiBTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbk1hcCgpCiB7CiAgICAgcmV0dXJu
IHN0YXRpY1Nlc3Npb25NYXAoKTsKIH0KQEAgLTcwLDI4ICs2NywyOCBAQCBjb25zdCBTdHJpbmcm
IFNlc3Npb25UcmFja2VyOjpnZXRJZGVudGlmaWVyQmFzZSgpCiAgICAgcmV0dXJuIGlkZW50aWZp
ZXJCYXNlKCk7CiB9CiAKLU5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogU2Vzc2lvblRyYWNrZXI6OnNl
c3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQorTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBTZXNzaW9u
VHJhY2tlcjo6c2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIGlmIChzZXNzaW9u
SUQgPT0gZGVmYXVsdFNlc3Npb25JRCkKKyAgICBpZiAoc2Vzc2lvbklEID09IFNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpKQogICAgICAgICByZXR1cm4gJk5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiAgICAgcmV0dXJuIHN0YXRpY1Nlc3Npb25NYXAo
KS5nZXQoc2Vzc2lvbklEKTsKIH0KIAotdWludDY0X3QgU2Vzc2lvblRyYWNrZXI6OnNlc3Npb25J
RChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24pCitTZXNzaW9uSUQgU2Vzc2lv
blRyYWNrZXI6OnNlc3Npb25JRChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24p
CiB7CiAgICAgaWYgKCZzZXNzaW9uID09ICZOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRT
dG9yYWdlU2Vzc2lvbigpKQotICAgICAgICByZXR1cm4gZGVmYXVsdFNlc3Npb25JRDsKKyAgICAg
ICAgcmV0dXJuIFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgIHJldHVybiBzdG9y
YWdlU2Vzc2lvblRvSUQoKS5nZXQoJnNlc3Npb24pOwogfQogCi12b2lkIFNlc3Npb25UcmFja2Vy
OjpzZXRTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbj4gc2Vzc2lvbikKK3ZvaWQgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24o
U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bj4gc2Vzc2lvbikKIHsKLSAgICBBU1NFUlQoc2Vzc2lvbklEICE9IGRlZmF1bHRTZXNzaW9uSUQp
OworICAgIEFTU0VSVChzZXNzaW9uSUQgIT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkp
OwogICAgIHN0b3JhZ2VTZXNzaW9uVG9JRCgpLnNldChzZXNzaW9uLmdldCgpLCBzZXNzaW9uSUQp
OwogICAgIHN0YXRpY1Nlc3Npb25NYXAoKS5zZXQoc2Vzc2lvbklELCBzdGQ6Om1vdmUoc2Vzc2lv
bikpOwogfQogCi12b2lkIFNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbih1aW50NjRfdCBz
ZXNzaW9uSUQpCit2b2lkIFNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbihTZXNzaW9uSUQg
c2Vzc2lvbklEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgaWYgKHN0
YXRpY1Nlc3Npb25NYXAoKS5jb250YWlucyhzZXNzaW9uSUQpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9TZXNzaW9uVHJhY2tlci5oCmluZGV4IDJlYjgxYzkuLjBiMDMwMjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9TZXNzaW9uVHJhY2tlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFNlc3Np
b25UcmFja2VyX2gKIAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSURIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CkBAIC0zNiwxNiArMzcsMTMgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBT
ZXNzaW9uVHJhY2tlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2Vzc2lvblRyYWNrZXIp
OwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBkZWZhdWx0U2Vzc2lvbklEID0g
MTsKLSAgICBzdGF0aWMgY29uc3QgdWludDY0X3QgbGVnYWN5UHJpdmF0ZVNlc3Npb25JRCA9IDI7
Ci0gICAgc3RhdGljIGJvb2wgaXNFcGhlbWVyYWxJRCh1aW50NjRfdCBzZXNzaW9uSUQpIHsgcmV0
dXJuIHNlc3Npb25JRCAhPSBTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNlc3Npb25JRDsgfQogICAg
IC8vIEZJWE1FOiBzZXNzaW9uTWFwKCkncyByZXR1cm5lZCBtYXAgZG9lcyBub3QgaW5jbHVkZSBk
ZWZhdWx0IHNlc3Npb24uCi0gICAgc3RhdGljIGNvbnN0IEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+PiYgc2Vzc2lvbk1hcCgp
OworICAgIHN0YXRpYyBjb25zdCBIYXNoTWFwPFdlYkNvcmU6OlNlc3Npb25JRCwgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBzZXNzaW9uTWFwKCk7CiAg
ICAgc3RhdGljIGNvbnN0IFN0cmluZyYgZ2V0SWRlbnRpZmllckJhc2UoKTsKLSAgICBzdGF0aWMg
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBzZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25J
RCk7Ci0gICAgc3RhdGljIHVpbnQ2NF90IHNlc3Npb25JRChjb25zdCBXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRTZXNzaW9uKHVpbnQ2NF90IHNl
c3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4p
OwotICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCk7Cisg
ICAgc3RhdGljIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogc2Vzc2lvbihXZWJDb3Jl
OjpTZXNzaW9uSUQpOworICAgIHN0YXRpYyBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKGNv
bnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYpOworICAgIHN0YXRpYyB2b2lkIHNl
dFNlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TmV0
d29ya1N0b3JhZ2VTZXNzaW9uPik7CisgICAgc3RhdGljIHZvaWQgZGVzdHJveVNlc3Npb24oV2Vi
Q29yZTo6U2Vzc2lvbklEKTsKICAgICBzdGF0aWMgdm9pZCBzZXRJZGVudGlmaWVyQmFzZShjb25z
dCBTdHJpbmcmKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAKaW5kZXggMTczZTNkMy4uMTNlYjFkOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTU3LDYgKzU3LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Njcm9sbGluZ0NvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdDb29y
ZGluYXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVHJhbnNmb3JtYXRp
b25NYXRyaXguaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgpAQCAtMTg4MCw2ICsxODgxLDIz
IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxJREJPYmplY3RTdG9yZU1ldGFkYXRhPjo6ZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwgSURCCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLSNlbmRp
ZgorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK3ZvaWQgQXJndW1lbnRD
b2RlcjxTZXNzaW9uSUQ+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBT
ZXNzaW9uSUQmIHNlc3Npb25JRCkKK3sKKyAgICBlbmNvZGVyIDw8IHNlc3Npb25JRC5zZXNzaW9u
SUQoKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPFNlc3Npb25JRD46OmRlY29kZShBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIFNlc3Npb25JRCYgc2Vzc2lvbklEKQoreworICAgIHVpbnQ2NF90
IHNlc3Npb247CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzZXNzaW9uKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgc2Vzc2lvbklEID0gU2Vzc2lvbklEKHNlc3Npb24pOworCisgICAg
cmV0dXJuIHRydWU7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IGE0ZTI2NGYuLmY1OWZkMzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTU1
LDYgKzU1LDcgQEAgY2xhc3MgUmVnaW9uOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJl
c291cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBTZXNzaW9uSUQ7
CiBjbGFzcyBTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM7CiBjbGFzcyBUZXh0Q2hl
Y2tpbmdSZXF1ZXN0RGF0YTsKIGNsYXNzIFRyYW5zZm9ybWF0aW9uTWF0cml4OwpAQCAtMzk3LDcg
KzM5OCwxMyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OklEQk9i
amVjdFN0b3JlTWV0YWRhdGE+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVNZXRhZGF0YSYpOwogICAgIHN0YXRp
YyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpJREJPYmplY3RTdG9yZU1l
dGFkYXRhJik7CiB9OwotI2VuZGlmCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXNzaW9uSUQ+
IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6U2Vzc2lvbklEJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYs
IFdlYkNvcmU6OlNlc3Npb25JRCYpOworfTsKIAogfSAvLyBuYW1lc3BhY2UgSVBDCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0ubW0gYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tCmluZGV4IGM2ZDcw
NWYuLmYwOWZmNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2ll
U3RvcmFnZVNoaW0ubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9y
YWdlU2hpbS5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgIkNvb2tpZVN0b3JhZ2VTaGlt
TGlicmFyeS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAj
aW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiU2Vzc2lvblRy
YWNrZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL1VSTC5oPgpAQCAtNTgsNyArNTgsNyBAQCBzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIHdl
YktpdENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhlYWRlckZpZWxkc0ZvclVSTChDRkhUVFBDbwog
ewogICAgIFN0cmluZyBjb29raWVzOwogICAgIFVSTCBmaXJzdFBhcnR5Rm9yQ29va2llc1VSTDsK
LSAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5l
Y3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNl
c3Npb25JRCwgZmlyc3RQYXJ0eUZvckNvb2tpZXNVUkwsIGluUmVxdWVzdFVSTCksIE1lc3NhZ2Vz
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0ZvckRPTTo6UmVwbHkoY29v
a2llcyksIDApKQorICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rp
b24oKS0+Y29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OkNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCBmaXJzdFBhcnR5Rm9yQ29va2llc1VSTCwgaW5SZXF1ZXN0VVJMKSwg
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRm9yRE9NOjpS
ZXBseShjb29raWVzKSwgMCkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKGNvb2tpZXMu
aXNOdWxsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHAKaW5kZXggMDhk
ODRhZi4uMDQ4MDJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNl
c3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmNwcApA
QCAtMzQsNyArMzQsNyBAQCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVJRChib29sIGlzRXBoZW1l
cmFsKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBzdGF0aWMgdWlu
dDY0X3QgdW5pcXVlU2Vzc2lvbklEID0gV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJp
dmF0ZVNlc3Npb25JRDsKKyAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlU2Vzc2lvbklEID0gV2Vi
Q29yZTo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkuc2Vzc2lvbklEKCk7CiAg
ICAgQVNTRVJUKGlzRXBoZW1lcmFsKTsKICAgICByZXR1cm4gKyt1bmlxdWVTZXNzaW9uSUQ7CiB9
CkBAIC00Myw3ICs0Myw3IEBAIFNlc3Npb24mIFNlc3Npb246OmRlZmF1bHRTZXNzaW9uKCkKIHsK
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgc3RhdGljIFNlc3Npb24qIGRl
ZmF1bHRTZXNzaW9uID0gbmV3IFNlc3Npb24oZmFsc2UsIFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6
OmRlZmF1bHRTZXNzaW9uSUQpOworICAgIHN0YXRpYyBTZXNzaW9uKiBkZWZhdWx0U2Vzc2lvbiA9
IG5ldyBTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKICAg
ICByZXR1cm4gKmRlZmF1bHRTZXNzaW9uOwogfQogCkBAIC01MSwxOSArNTEsMTcgQEAgU2Vzc2lv
biYgU2Vzc2lvbjo6bGVnYWN5UHJpdmF0ZVNlc3Npb24oKQogewogICAgIEFTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7CiAKLSAgICBzdGF0aWMgU2Vzc2lvbiogbGVnYWN5UHJpdmF0ZVNlc3Npb24g
PSBuZXcgU2Vzc2lvbih0cnVlLCBXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgU2Vzc2lvbiogbGVnYWN5UHJpdmF0ZVNlc3Npb24gPSBu
ZXcgU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7
CiAgICAgcmV0dXJuICpsZWdhY3lQcml2YXRlU2Vzc2lvbjsKIH0KIAogU2Vzc2lvbjo6U2Vzc2lv
bihib29sIGlzRXBoZW1lcmFsKQotICAgIDogbV9pc0VwaGVtZXJhbChpc0VwaGVtZXJhbCkKLSAg
ICAsIG1fc2Vzc2lvbklEKGdlbmVyYXRlSUQoaXNFcGhlbWVyYWwpKQorICAgIDogbV9zZXNzaW9u
SUQoZ2VuZXJhdGVJRChpc0VwaGVtZXJhbCkpCiB7CiB9CiAKLVNlc3Npb246OlNlc3Npb24oYm9v
bCBpc0VwaGVtZXJhbCwgdWludDY0X3Qgc2Vzc2lvbklEKQotICAgIDogbV9pc0VwaGVtZXJhbChp
c0VwaGVtZXJhbCkKLSAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKK1Nlc3Npb246OlNlc3Np
b24oV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IG1fc2Vzc2lvbklEKHNlc3Np
b25JRCkKIHsKIH0KIApAQCAtNzUsMTAgKzczLDEwIEBAIFBhc3NSZWZQdHI8U2Vzc2lvbj4gU2Vz
c2lvbjo6Y3JlYXRlKGJvb2wgaXNFcGhlbWVyYWwpCiAKIGJvb2wgU2Vzc2lvbjo6aXNFcGhlbWVy
YWwoKSBjb25zdAogewotICAgIHJldHVybiBtX2lzRXBoZW1lcmFsOworICAgIHJldHVybiBtX3Nl
c3Npb25JRC5pc0VwaGVtZXJhbCgpOwogfQogCi11aW50NjRfdCBTZXNzaW9uOjpnZXRJRCgpIGNv
bnN0CitXZWJDb3JlOjpTZXNzaW9uSUQgU2Vzc2lvbjo6Z2V0SUQoKSBjb25zdAogewogICAgIHJl
dHVybiBtX3Nlc3Npb25JRDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUElTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5oCmlu
ZGV4IGJkNjA0YjIuLmZmYzViMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUElTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24u
aApAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBBUElTZXNzaW9uX2gKIAogI2luY2x1ZGUgIkFQ
SU9iamVjdC5oIgotI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2Ug
QVBJIHsKQEAgLTM5LDE0ICszOSwxMyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFNlc3Npb24mIGRl
ZmF1bHRTZXNzaW9uKCk7CiAgICAgc3RhdGljIFNlc3Npb24mIGxlZ2FjeVByaXZhdGVTZXNzaW9u
KCk7CiAgICAgYm9vbCBpc0VwaGVtZXJhbCgpIGNvbnN0OwotICAgIHVpbnQ2NF90IGdldElEKCkg
Y29uc3Q7CisgICAgV2ViQ29yZTo6U2Vzc2lvbklEIGdldElEKCkgY29uc3Q7CiAgICAgdmlydHVh
bCB+U2Vzc2lvbigpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNlc3Npb24oYm9vbCBpc0Vw
aGVtZXJhbCk7Ci0gICAgU2Vzc2lvbihib29sIGlzRXBoZW1lcmFsLCB1aW50NjRfdCBzZXNzaW9u
SUQpOwotICAgIGJvb2wgbV9pc0VwaGVtZXJhbDsKLSAgICB1aW50NjRfdCBtX3Nlc3Npb25JRDsK
KyAgICBleHBsaWNpdCBTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgV2ViQ29yZTo6
U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggOTcyM2Q2Mi4uMTA0NTIyOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAtMzMsNyArMzMsNiBAQAog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNdXRhYmxlRGljdGlvbmFyeS5oIgogI2lu
Y2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKLSNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgog
I2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNp
bmNsdWRlICJXS0NvbnRleHRQcml2YXRlLmgiCkBAIC02Myw2ICs2Miw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9MaW5rSGFzaC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpAQCAtNDg3LDE2ICs0ODcs
MTYgQEAgdm9pZCBXZWJDb250ZXh0OjpzZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJv
d3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0ZUJyb3cKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNT
KQogICAgIGlmICh1c2VzTmV0d29ya1Byb2Nlc3MoKSAmJiBuZXR3b3JrUHJvY2VzcygpKSB7CiAg
ICAgICAgIGlmIChwcml2YXRlQnJvd3NpbmdFbmFibGVkKQotICAgICAgICAgICAgbmV0d29ya1By
b2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpLCAwKTsK
KyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCgpKSwgMCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG5ldHdvcmtQcm9j
ZXNzKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCksIDApOwor
ICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OkRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCgpKSwgMCk7CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRUQoTkVUV09SS19QUk9D
RVNTKQogCiAgICAgaWYgKHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAgICAgIHNlbmRUb0Fs
bFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCkpOworICAgICAgICBz
ZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKICAgICBl
bHNlCi0gICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6RGVz
dHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVT
ZXNzaW9uSUQpKTsKKyAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZh
dGVTZXNzaW9uSUQoKSkpOwogfQogCiB2b2lkICgqc19pbnZhbGlkTWVzc2FnZUNhbGxiYWNrKShX
S1N0cmluZ1JlZiBtZXNzYWdlTmFtZSk7CkBAIC02MjYsNyArNjI2LDcgQEAgV2ViUHJvY2Vzc1By
b3h5JiBXZWJDb250ZXh0OjpjcmVhdGVOZXdXZWJQcm9jZXNzKCkKICNlbmRpZgogCiAgICAgaWYg
KFdlYlByZWZlcmVuY2VzOjphbnlQYWdlc0FyZVVzaW5nUHJpdmF0ZUJyb3dzaW5nKCkpCi0gICAg
ICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpLCAwKTsK
KyAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSksIDAp
OwogCiAgICAgbV9wcm9jZXNzZXMuYXBwZW5kKHByb2Nlc3MpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbnRleHQuaAppbmRleCBjYmM1NTM0Li40MmI1MGFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb250ZXh0LmgKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJXZWJEb3du
bG9hZENsaWVudC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvTGlua0hhc2guaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgpAQCAtMzA2LDcgKzMwNyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9p
ZCB3aWxsU3RhcnRVc2luZ1ByaXZhdGVCcm93c2luZygpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxT
dG9wVXNpbmdQcml2YXRlQnJvd3NpbmcoKTsKIAotICAgIHN0YXRpYyBib29sIGlzRXBoZW1lcmFs
U2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpOworICAgIHN0YXRpYyBib29sIGlzRXBoZW1lcmFs
U2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOwogCiAjaWYgVVNFKFNPVVApCiAgICAgdm9pZCBz
ZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggMmQ0YzEzYS4uYTgxNTY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtMzM5LDcgKzMzOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNl
c3Npb24oQVBJOjpTZXNzaW9uJik7CiAKICAgICB1aW50NjRfdCBwYWdlSUQoKSBjb25zdCB7IHJl
dHVybiBtX3BhZ2VJRDsgfQotICAgIHVpbnQ2NF90IHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJu
IG1fc2Vzc2lvbi0+Z2V0SUQoKTsgfQorICAgIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQo
KSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb24tPmdldElEKCk7IH0KIAogICAgIFdlYkZyYW1lUHJv
eHkqIG1haW5GcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lLmdldCgpOyB9CiAgICAg
V2ViRnJhbWVQcm94eSogZm9jdXNlZEZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mb2N1c2VkRnJh
bWUuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggMWVmOThjMy4uOTE4MWExNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTY3LDYgKzY3LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eVBvbGljeS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVXNlckdlc3R1cmVJbmRpY2F0b3IuaD4KIApAQCAtMzA4LDkgKzMwOSw5IEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGU6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoV2ViUGFnZUdyb3Vw
UHJveHkqIHBhZ2VHcm91cCwgYm9vCiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogVGhp
cyB0ZXN0LW9ubHkgZnVuY3Rpb24gZG9lc24ndCB3b3JrIHdpdGggTmV0d29ya1Byb2Nlc3MsIDxo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1Mjc0Pi4KICNpZiBQTEFU
Rk9STShDT0NPQSkgfHwgVVNFKENGTkVUV09SSykgfHwgVVNFKFNPVVApCiAgICAgaWYgKGVuYWJs
ZWQpCi0gICAgICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAg
ICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKICAgICBlbHNlCi0gICAg
ICAgIFNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5
UHJpdmF0ZVNlc3Npb25JRCk7CisgICAgICAgIFNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lv
bihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CiAjZW5kaWYKICAgICBjb25z
dCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQYWdlR3JvdXA6OnBhZ2VHcm91cChwYWdlR3JvdXAt
PmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7CiAgICAgZm9yIChIYXNoU2V0PFBhZ2UqPjo6aXRlcmF0
b3IgaXRlciA9IHBhZ2VzLmJlZ2luKCk7IGl0ZXIgIT0gcGFnZXMuZW5kKCk7ICsraXRlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5kZXggZWFiZDY1NC4uYTVmY2Y3NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVk
dWxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1JlZmVycmVyUG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUJ1ZmZlci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nl
c3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1N1YnJlc291cmNlTG9hZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpA
QCAtMTE4LDcgKzExOSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVs
ZUxvYWQoUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyLCBDYWNoCiAgICAgbG9hZFBhcmFt
ZXRlcnMuaWRlbnRpZmllciA9IGlkZW50aWZpZXI7CiAgICAgbG9hZFBhcmFtZXRlcnMud2ViUGFn
ZUlEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnBhZ2VJRCgpIDogMDsKICAgICBsb2FkUGFyYW1ldGVy
cy53ZWJGcmFtZUlEID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgpIDogMDsKLSAgICBs
b2FkUGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkg
OiBTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNlc3Npb25JRDsKKyAgICBsb2FkUGFyYW1ldGVycy5z
ZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKTsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVzb3VyY2VM
b2FkZXItPnJlcXVlc3QoKTsKICAgICBsb2FkUGFyYW1ldGVycy5wcmlvcml0eSA9IHByaW9yaXR5
OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IGNvbnRlbnRTbmlm
ZmluZ1BvbGljeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCA1OTVi
MzA1Li4xOTQ5ZTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC01
NCw2ICs1NCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1QYXN0ZWJvYXJkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZUVycm9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1N0b3JhZ2VOYW1lc3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1l
TG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KQEAgLTI1OCw3ICsyNTksNyBAQCB2
b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3
b3JraW5nQ29udGV4dCogY29udGV4dAogICAgIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIgPSBy
ZXNvdXJjZUxvYWRJZGVudGlmaWVyOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHdl
YlBhZ2UgPyB3ZWJQYWdlLT5wYWdlSUQoKSA6IDA7CiAgICAgbG9hZFBhcmFtZXRlcnMud2ViRnJh
bWVJRCA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDA7Ci0gICAgbG9hZFBhcmFt
ZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lv
blRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQ7CisgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklE
ID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgbG9h
ZFBhcmFtZXRlcnMucHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eUhpZ2hlc3Q7CiAgICAg
bG9hZFBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5ID0gU25pZmZDb250ZW50OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IDg2MjlmYTgu
LmRlZjIwMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5Lmgi
CiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIApAQCAtNDAsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgLy8gRklY
TUU6IHJlbW92ZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIGFuZCB1c2UgU2Vzc2lvblRyYWNrZXIK
LSAgICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNl
c3Npb25JRCk7CisgICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihX
ZWJDb3JlOjpTZXNzaW9uSUQpOwogCiAgICAgc3RhdGljIHZvaWQgc2V0Q29va2llQWNjZXB0UG9s
aWN5Rm9yQWxsQ29udGV4dHMoSFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4IDNjNTI1MTYuLjI2YmZm
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
bWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpA
QCAtNDIsOSArNDIsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAgICAgCi12b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZh
dGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQordm9pZCBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBzZXNz
aW9uSUQpCiB7Ci0gICAgQVNTRVJUKFNlc3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKHNlc3Np
b25JRCkpOworICAgIEFTU0VSVChzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSk7CiAKICAgICBpZiAo
U2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgcmV0dXJuOwpAQCAt
NTUsNyArNTUsNyBAQCB2b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZh
dGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQogICAgIGVsc2UKICAgICAgICAg
YmFzZSA9IFNlc3Npb25UcmFja2VyOjpnZXRJZGVudGlmaWVyQmFzZSgpOwogCi0gICAgU2Vzc2lv
blRyYWNrZXI6OnNldFNlc3Npb24oc2Vzc2lvbklELCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNy
ZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oYmFzZSArICcuJyArIFN0cmluZzo6bnVtYmVyKHNl
c3Npb25JRCkpKTsKKyAgICBTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbihzZXNzaW9uSUQsIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihiYXNlICsg
Jy4nICsgU3RyaW5nOjpudW1iZXIoc2Vzc2lvbklELnNlc3Npb25JRCgpKSkpOwogfQogCiB2b2lk
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNldENvb2tpZUFjY2VwdFBvbGljeUZvckFsbENv
bnRleHRzKEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQpAQCAtMTAxLDEwICsxMDEsNyBA
QCBSZXNvdXJjZUVycm9yIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcQogTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbigpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIGlmIChmcmFtZSgpKQotICAgICAgICByZXR1cm4g
KlNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHdlYkZyYW1lTG9hZGVyQ2xpZW50KCktPndlYkZyYW1l
KCktPnBhZ2UoKS0+c2Vzc2lvbklEKCkpOwotICAgIHJldHVybiBOZXR3b3JrU3RvcmFnZVNlc3Np
b246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOworICAgIHJldHVybiAqU2Vzc2lvblRyYWNrZXI6
OnNlc3Npb24oZnJhbWUoKSA/IGZyYW1lKCktPnBhZ2UoKS0+c2Vzc2lvbklEKCkgOiBTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiB9CiAKIFdlYkZyYW1lTG9hZGVyQ2xpZW50KiBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0Ojp3ZWJGcmFtZUxvYWRlckNsaWVudCgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKaW5kZXggNGQx
M2RjMy4uNzc3MzdkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlNlc3Npb25UcmFja2Vy
LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKQEAgLTM3LDE0ICszOCwxNCBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRf
dCBzZXNzaW9uSUQpCit2b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZh
dGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwogCiAgICAgaWYgKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHNlc3Npb25J
RCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFNlc3Npb25UcmFja2VyOjpzZXRTZXNzaW9uKHNl
c3Npb25JRCwgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKFN0cmluZzo6bnVtYmVyKHNlc3Npb25JRCkpKTsKKyAgICBTZXNzaW9uVHJhY2tlcjo6c2V0
U2Vzc2lvbihzZXNzaW9uSUQsIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihTdHJpbmc6Om51bWJlcihzZXNzaW9uSUQuc2Vzc2lvbklEKCkpKSk7CiB9
CiAKIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQo
V2ViRnJhbWUqIGZyYW1lKQpAQCAtNTUsNyArNTYsNyBAQCBXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkZyYW1lKiBmcmFtZSkKIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24o
KSBjb25zdAogewogICAgIGlmIChmcmFtZSgpICYmIGZyYW1lKCktPnNldHRpbmdzKCkucHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gKlNlc3Npb25UcmFja2VyOjpzZXNz
aW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKKyAgICAgICAgcmV0
dXJuICpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQoKSk7CiAKICAgICByZXR1cm4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3Rv
cmFnZVNlc3Npb24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oCmluZGV4IDI2MzA2MWEwLi45MzQxMGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291
cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNkZWZpbmUg
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCiAKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIApAQCAtNDIsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkpOwogICAgIH0K
IAotICAgIHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qg
c2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KFdlYkNvcmU6OlNlc3Npb25JRCk7CiAKICAgICBXZWJGcmFtZUxvYWRlckNsaWVudCogd2ViRnJh
bWVMb2FkZXJDbGllbnQoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDNkYTk4MmIuLmUyNWUwNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEzNCw2ICsxMzQsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvU2NoZW1lUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhZG93Um9vdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CkBAIC0yMjgsNyArMjI5LDYgQEAgUGFzc1JlZlB0cjxX
ZWJQYWdlPiBXZWJQYWdlOjpjcmVhdGUodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWUKIAogV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgOiBtX3BhZ2VJRChwYWdl
SUQpCi0gICAgLCBtX3Nlc3Npb25JRCgwKQogICAgICwgbV92aWV3U2l6ZShwYXJhbWV0ZXJzLnZp
ZXdTaXplKQogICAgICwgbV9oYXNTZWVuUGx1Z2luKGZhbHNlKQogICAgICwgbV91c2VGaXhlZExh
eW91dChmYWxzZSkKQEAgLTIxMTcsMjMgKzIxMTcsMjMgQEAgdm9pZCBXZWJQYWdlOjpzZXRMYXll
ckhvc3RpbmdNb2RlKHVuc2lnbmVkIGxheWVySG9zdGluZ01vZGUpCiAgICAgICAgIHBsdWdpblZp
ZXctPnNldExheWVySG9zdGluZ01vZGUobV9sYXllckhvc3RpbmdNb2RlKTsKIH0KIAotdWludDY0
X3QgV2ViUGFnZTo6c2Vzc2lvbklEKCkgY29uc3QKK1Nlc3Npb25JRCBXZWJQYWdlOjpzZXNzaW9u
SUQoKSBjb25zdAogewotICAgIGlmIChtX3Nlc3Npb25JRCkKLSAgICAgICAgcmV0dXJuIG1fc2Vz
c2lvbklEOworICAgIGlmIChtX3BhZ2UtPmlzU2Vzc2lvbklEU2V0KCkpCisgICAgICAgIHJldHVy
biBtX3BhZ2UtPnNlc3Npb25JRCgpOwogCi0gICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS5w
cml2YXRlQnJvd3NpbmdFbmFibGVkKCkgPyBTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNl
c3Npb25JRCA6IFNlc3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEOworICAgIHJldHVybiBt
X3BhZ2UtPnNldHRpbmdzKCkucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpID8gU2Vzc2lvbklEOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkgOiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsK
IH0KIAogYm9vbCBXZWJQYWdlOjppc1VzaW5nRXBoZW1lcmFsU2Vzc2lvbigpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIFNlc3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCgpKTsKKyAg
ICByZXR1cm4gc2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpz
ZXRTZXNzaW9uSUQodWludDY0X3Qgc2Vzc2lvbklEKQordm9pZCBXZWJQYWdlOjpzZXRTZXNzaW9u
SUQoU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBtX3Nlc3Npb25JRCA9IHNlc3Npb25JRDsK
LSAgICBpZiAoU2Vzc2lvblRyYWNrZXI6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKSkKKyAgICBt
X3BhZ2UtPnNldFNlc3Npb25JRChzZXNzaW9uSUQpOworICAgIGlmIChzZXNzaW9uSUQuaXNFcGhl
bWVyYWwoKSkKICAgICAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuZW5zdXJlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbihzZXNzaW9uSUQpOwogfQogCkBAIC0yNDM5LDggKzI0MzksOCBAQCB2b2lkIFdl
YlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3Jl
KQogICAgIHNldHRpbmdzLnNldExvY2FsU3RvcmFnZUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpsb2NhbFN0b3JhZ2VFbmFibGVkS2V5KCkpKTsKICAg
ICBzZXR0aW5ncy5zZXRYU1NBdWRpdG9yRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXko
V2ViUHJlZmVyZW5jZXNLZXk6Onhzc0F1ZGl0b3JFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5n
cy5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZEtleSgpKSk7Ci0gICAgaWYgKG1f
c2Vzc2lvbklEKQotICAgICAgICBzZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKFNl
c3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKG1fc2Vzc2lvbklEKSk7CisgICAgaWYgKG1fcGFn
ZS0+aXNTZXNzaW9uSURTZXQoKSkKKyAgICAgICAgc2V0dGluZ3Muc2V0UHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZChtX3BhZ2UtPnNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkpOwogICAgIGVsc2UKICAg
ICAgICAgc2V0dGluZ3Muc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnByaXZhdGVCcm93c2luZ0VuYWJsZWRLZXkoKSkp
OwogICAgIHNldHRpbmdzLnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpkZXZlbG9wZXJFeHRyYXNFbmFibGVkS2V5KCkp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGNh
ZTdlOTYuLjE3MDU2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaApAQCAtMTkyLDkgKzE5Miw5IEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6OlBhZ2Uq
IGNvcmVQYWdlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlLmdldCgpOyB9CiAgICAgdWludDY0X3Qg
cGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSUQ7IH0KLSAgICB1aW50NjRfdCBzZXNzaW9u
SUQoKSBjb25zdDsKKyAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Q7CiAg
ICAgYm9vbCBpc1VzaW5nRXBoZW1lcmFsU2Vzc2lvbigpIGNvbnN0OwotICAgIHZvaWQgc2V0U2Vz
c2lvbklEKHVpbnQ2NF90KTsKKyAgICB2b2lkIHNldFNlc3Npb25JRChXZWJDb3JlOjpTZXNzaW9u
SUQpOwogCiAgICAgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKICAgICBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKCkgY29uc3QgeyByZXR1cm4gbV92aWV3U2l6ZTsg
fQpAQCAtOTE5LDcgKzkxOSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXBvcnRVc2VkRmVhdHVy
ZXMoKTsKIAogICAgIHVpbnQ2NF90IG1fcGFnZUlEOwotICAgIHVpbnQ2NF90IG1fc2Vzc2lvbklE
OwogCiAgICAgT3duUHRyPFdlYkNvcmU6OlBhZ2U+IG1fcGFnZTsKICAgICBSZWZQdHI8V2ViRnJh
bWU+IG1fbWFpbkZyYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBkMTIyMjYxLi5mMTUyZDJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgpAQCAtMjUsNyArMjUsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVy
IHsKICAgICBTZXRWaWV3U3RhdGUodW5zaWduZWQgdmlld1N0YXRlLCBib29sIHdhbnRzRGlkVXBk
YXRlVmlld1N0YXRlKQogICAgIFNldExheWVySG9zdGluZ01vZGUodW5zaWduZWQgbGF5ZXJIb3N0
aW5nTW9kZSkKIAotICAgIFNldFNlc3Npb25JRCh1aW50NjRfdCBzZXNzaW9uSUQpCisgICAgU2V0
U2Vzc2lvbklEKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKICAgICBTZXREcmF3c0Jh
Y2tncm91bmQoYm9vbCBkcmF3c0JhY2tncm91bmQpCiAgICAgU2V0RHJhd3NUcmFuc3BhcmVudEJh
Y2tncm91bmQoYm9vbCBkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGJkZDc0M2UuLmE3ZDJhZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDcxLDE0ICs0NzEsMTQgQEAg
dm9pZCBXZWJQcm9jZXNzOjpmdWxsS2V5Ym9hcmRBY2Nlc3NNb2RlQ2hhbmdlZChib29sIGZ1bGxL
ZXlib2FyZEFjY2Vzc0VuYWJsZWQpCiAgICAgbV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkID0g
ZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZDsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjplbnN1cmVQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKK3ZvaWQgV2ViUHJvY2Vz
czo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQogewog
I2lmIFBMQVRGT1JNKENPQ09BKSB8fCBVU0UoQ0ZORVRXT1JLKSB8fCBVU0UoU09VUCkKICAgICBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHNl
c3Npb25JRCk7CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpkZXN0cm95UHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCit2b2lkIFdlYlByb2Nlc3M6OmRlc3Ry
b3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAjaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVTRShTT1VQKQogICAgIFNlc3Npb25U
cmFja2VyOjpkZXN0cm95U2Vzc2lvbihzZXNzaW9uSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaAppbmRleCBiNDhiNWZlLi45ZDNmODQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlZpZXdVcGRh
dGVEaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtUYWJsZS5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvTGlua0hhc2guaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC0xNjQsOCArMTY1LDggQEAgcHVibGljOgogCiAgICAgdm9p
ZCBzZXRDYWNoZU1vZGVsKHVpbnQzMl90KTsKIAotICAgIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpOwotICAgIHZvaWQgZGVzdHJveVByaXZhdGVC
cm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKKyAgICB2b2lkIGVuc3VyZVByaXZh
dGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIGRlc3Ryb3lQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CiAKICAgICB2b2lkIHBh
Z2VEaWRFbnRlcldpbmRvdyh1aW50NjRfdCBwYWdlSUQpOwogICAgIHZvaWQgcGFnZVdpbGxMZWF2
ZVdpbmRvdyh1aW50NjRfdCBwYWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDkyZTcwODAuLjZmYWIyZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTU1
LDggKzU1LDggQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAjZW5k
aWYKIAogICAgIC8vIExlZ2FjeSBwcml2YXRlIGJyb3dzaW5nIHNlc3Npb24gaXMgcGVyIHByb2Nl
c3MuIEluZGl2aWR1YWwgcGFnZXMgb3IgcGFnZSBncm91cHMgbWF5IHVzZSB0aGUgcHJpdmF0ZSBz
ZXNzaW9uIG9yIHRoZSBkZWZhdWx0IG9uZSBhcyBhcHByb3ByaWF0ZS4KLSAgICBFbnN1cmVQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKLSAgICBEZXN0cm95UHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCisgICAgRW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIERlc3Ryb3lQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKICAg
ICAjIFBsdWctaW5zLgogICAgIERpZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godWludDMy
X3QgaGFzaCwgZG91YmxlIGV4cGlyYXRpb25UaW1lKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>