<?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>154400</bug_id>
          
          <creation_ts>2016-02-18 10:37:56 -0800</creation_ts>
          <short_desc>Modern IDB: Implement client-&gt;server operations in WK2</short_desc>
          <delta_ts>2016-02-18 13:10:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Safari 9</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149117</blocked>
    
    <blocked>153808</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1166076</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-18 10:37:56 -0800</bug_when>
    <thetext>Modern IDB: Implement client-&gt;server operations in WK2

Since the server can&apos;t yet reply to the client, nothing actually works, and no behavior is changed.

But that&apos;s coming *very* soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166084</commentid>
    <comment_count>1</comment_count>
      <attachid>271670</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-18 10:46:17 -0800</bug_when>
    <thetext>Created attachment 271670
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166087</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-18 10:48:31 -0800</bug_when>
    <thetext>Attachment 271670 did not pass style-queue:


ERROR: Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:216:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
ERROR: Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:216:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:217:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 3 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166092</commentid>
    <comment_count>3</comment_count>
      <attachid>271670</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-18 10:55:33 -0800</bug_when>
    <thetext>Comment on attachment 271670
Patch v1

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

&gt; Source/WebCore/Modules/indexeddb/server/IDBServer.h:51
&gt; +class IDBBackingStore;

This doesn&apos;t seem necessary.

&gt; Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:217
&gt; +    if (overwriteMode != static_cast&lt;unsigned&gt;(IndexedDB::ObjectStoreOverwriteMode::NoOverwrite) &amp;&amp;
&gt; +        overwriteMode != static_cast&lt;unsigned&gt;(IndexedDB::ObjectStoreOverwriteMode::Overwrite) &amp;&amp;

Style bot doesn&apos;t like the &amp;&amp;

&gt; Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:219
&gt; +        // FIXME: Corrupt message from the WebProcess. It should be killed, or something.

I&apos;m not sure this FIXME is necessary.  We are already doing an early return, which is what we should do in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166096</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-18 10:57:44 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 271670 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=271670&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/server/IDBServer.h:51
&gt; &gt; +class IDBBackingStore;
&gt; 
&gt; This doesn&apos;t seem necessary.

It was at one time, I&apos;ll go double check now.

&gt; 
&gt; &gt; Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:217
&gt; &gt; +    if (overwriteMode != static_cast&lt;unsigned&gt;(IndexedDB::ObjectStoreOverwriteMode::NoOverwrite) &amp;&amp;
&gt; &gt; +        overwriteMode != static_cast&lt;unsigned&gt;(IndexedDB::ObjectStoreOverwriteMode::Overwrite) &amp;&amp;
&gt; 
&gt; Style bot doesn&apos;t like the &amp;&amp;

Yah, stupid style bot.

&gt; 
&gt; &gt; Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:219
&gt; &gt; +        // FIXME: Corrupt message from the WebProcess. It should be killed, or something.
&gt; 
&gt; I&apos;m not sure this FIXME is necessary.  We are already doing an early return,
&gt; which is what we should do in this case.

I need to reword the FIXME - That was my own placeholder to do so later.

But it still stands, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166105</commentid>
    <comment_count>5</comment_count>
      <attachid>271674</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-18 11:08:05 -0800</bug_when>
    <thetext>Created attachment 271674
Patch for landing v5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166129</commentid>
    <comment_count>6</comment_count>
      <attachid>271674</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-18 12:23:50 -0800</bug_when>
    <thetext>Comment on attachment 271674
Patch for landing v5

Clearing flags on attachment: 271674

Committed r196771: &lt;http://trac.webkit.org/changeset/196771&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271670</attachid>
            <date>2016-02-18 10:46:17 -0800</date>
            <delta_ts>2016-02-18 10:55:33 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>24080</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4OTAzMTNkLi4wNTJmMjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTYtMDItMTggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vZGVybiBJREI6IEltcGxlbWVudCBjbGllbnQtPnNlcnZlciBvcGVyYXRpb25zIGluIFdL
Mi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDQw
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNo
YW5nZSBpbiBiZWhhdmlvciB5ZXQ7IEp1c3QgbGF5aW5nIHRoZSBncm91bmR3b3JrLgorCisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uaDoKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmg6CisKIDIwMTYtMDItMTcgIEJy
YWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIE1vZGVybiBJREI6IE1v
cmUgRW5jb2Rlci9EZWNvZGVyL01lc3NhZ2luZyBzY2FmZm9sZGluZyBmb3IgV0syIElQQy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIu
aAppbmRleCA0YzMyODU1Li5lYzI5MjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCkBAIC00OCwzNiArNDgsMzggQEAgY2xh
c3MgSURCUmVxdWVzdERhdGE7CiAKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewogCitjbGFzcyBJREJC
YWNraW5nU3RvcmU7CisKIGNsYXNzIElEQlNlcnZlciA6IHB1YmxpYyBSZWZDb3VudGVkPElEQlNl
cnZlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8SURCU2VydmVyPiBjcmVhdGUoKTsKLSAg
ICBzdGF0aWMgUmVmPElEQlNlcnZlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJl
Y3RvcnlQYXRoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPElEQlNlcnZlcj4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKIAogICAgIHZvaWQgcmVn
aXN0ZXJDb25uZWN0aW9uKElEQkNvbm5lY3Rpb25Ub0NsaWVudCYpOwogICAgIHZvaWQgdW5yZWdp
c3RlckNvbm5lY3Rpb24oSURCQ29ubmVjdGlvblRvQ2xpZW50Jik7CiAKICAgICAvLyBPcGVyYXRp
b25zIHJlcXVlc3RlZCBieSB0aGUgY2xpZW50LgotICAgIHZvaWQgb3BlbkRhdGFiYXNlKGNvbnN0
IElEQlJlcXVlc3REYXRhJik7Ci0gICAgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBJREJSZXF1
ZXN0RGF0YSYpOwotICAgIHZvaWQgYWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImKTsKLSAgICB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYpOwotICAgIHZvaWQgZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlVHJh
bnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJik7Ci0gICAgdm9pZCBjcmVhdGVP
YmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5m
byYpOwotICAgIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCBj
b25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSk7Ci0gICAgdm9pZCBjbGVhck9iamVjdFN0b3Jl
KGNvbnN0IElEQlJlcXVlc3REYXRhJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKTsK
LSAgICB2b2lkIGNyZWF0ZUluZGV4KGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCSW5k
ZXhJbmZvJik7Ci0gICAgdm9pZCBkZWxldGVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIHVp
bnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBpbmRleE5hbWUpOwot
ICAgIHZvaWQgcHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlEYXRh
JiwgY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVlRGF0YSwgSW5kZXhlZERCOjpPYmpl
Y3RTdG9yZU92ZXJ3cml0ZU1vZGUpOwotICAgIHZvaWQgZ2V0UmVjb3JkKGNvbnN0IElEQlJlcXVl
c3REYXRhJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7Ci0gICAgdm9pZCBnZXRDb3VudChjb25z
dCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpOwotICAgIHZvaWQgZGVs
ZXRlUmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7
Ci0gICAgdm9pZCBvcGVuQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCQ3Vy
c29ySW5mbyYpOwotICAgIHZvaWQgaXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYs
IGNvbnN0IElEQktleURhdGEmLCB1bnNpZ25lZCBsb25nIGNvdW50KTsKLQotICAgIHZvaWQgZXN0
YWJsaXNoVHJhbnNhY3Rpb24odWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwg
Y29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJik7Ci0gICAgdm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25D
bG9zZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7Ci0gICAgdm9pZCBh
Ym9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50
aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
KTsKLSAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VD
b25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0
SWRlbnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBvcGVuRGF0YWJhc2UoY29uc3Qg
SURCUmVxdWVzdERhdGEmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZURhdGFiYXNl
KGNvbnN0IElEQlJlcXVlc3REYXRhJik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhYm9ydFRy
YW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJik7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VU
cmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3Qg
SURCT2JqZWN0U3RvcmVJbmZvJik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVPYmpl
Y3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVO
YW1lKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURC
UmVxdWVzdERhdGEmLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgY3JlYXRlSW5kZXgoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJ
REJJbmRleEluZm8mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUluZGV4KGNvbnN0
IElEQlJlcXVlc3REYXRhJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGluZGV4TmFtZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwdXRPckFkZChjb25z
dCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZlRGF0
YUJ1ZmZlciYgdmFsdWVEYXRhLCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEm
LCBjb25zdCBJREJLZXlSYW5nZURhdGEmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldENv
dW50KGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBj
b25zdCBJREJLZXlSYW5nZURhdGEmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG9wZW5DdXJz
b3IoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJDdXJzb3JJbmZvJik7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBpdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29u
c3QgSURCS2V5RGF0YSYsIHVuc2lnbmVkIGxvbmcgY291bnQpOworCisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBlc3RhYmxpc2hUcmFuc2FjdGlvbih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rp
b25JZGVudGlmaWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFib3J0T3BlbkFuZFVwZ3Jh
ZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNv
bm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJ
ZGVudGlmaWVyKTsKIAogICAgIHZvaWQgcG9zdERhdGFiYXNlVGFzayhzdGQ6OnVuaXF1ZV9wdHI8
Q3Jvc3NUaHJlYWRUYXNrPiYmKTsKICAgICB2b2lkIHBvc3REYXRhYmFzZVRhc2tSZXBseShzdGQ6
OnVuaXF1ZV9wdHI8Q3Jvc3NUaHJlYWRUYXNrPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKaW5k
ZXggZjEwZjcwOC4uMWNhYWNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKQEAgLTcyLDcgKzcy
LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVbmlxdWVJREJEYXRh
YmFzZShzZXJ2ZXIsIGlkZW50aWZpZXIpKTsKICAgICB9CiAKLSAgICB+VW5pcXVlSURCRGF0YWJh
c2UoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+VW5pcXVlSURCRGF0YWJhc2UoKTsKIAogICAgIHZv
aWQgb3BlbkRhdGFiYXNlQ29ubmVjdGlvbihJREJDb25uZWN0aW9uVG9DbGllbnQmLCBjb25zdCBJ
REJSZXF1ZXN0RGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmgKaW5kZXggZDM5ZDJjMy4uODlhZDVhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4
SW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJ
bmRleEluZm8uaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IElEQkluZGV4SW5mbyB7CiBwdWJsaWM6Ci0gICAgSURCSW5kZXhJbmZvKCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgSURCSW5kZXhJbmZvKCk7CiAgICAgSURCSW5kZXhJbmZvKHVpbnQ2NF90IGlkZW50
aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSk7CiAKICAg
ICBJREJJbmRleEluZm8gaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZv
LmgKaW5kZXggOGVmYzViOS4uMDk0YjAwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uaApAQCAt
MzksNyArMzksNyBAQCBjbGFzcyBJREJLZXlQYXRoOwogCiBjbGFzcyBJREJPYmplY3RTdG9yZUlu
Zm8gewogcHVibGljOgotICAgIElEQk9iamVjdFN0b3JlSW5mbygpOworICAgIFdFQkNPUkVfRVhQ
T1JUIElEQk9iamVjdFN0b3JlSW5mbygpOwogICAgIElEQk9iamVjdFN0b3JlSW5mbyh1aW50NjRf
dCBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29s
IGF1dG9JbmNyZW1lbnQpOwogCiAgICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1faWRlbnRpZmllcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDYyOTY4MGIuLjBmZWNkMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAxNi0wMi0xOCAgQnJhZHkgRWlkc29uICA8YmVpZHNv
bkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9kZXJuIElEQjogSW1wbGVtZW50IGNsaWVudC0+c2Vy
dmVyIG9wZXJhdGlvbnMgaW4gV0syLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU0NDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yIHlldDsgSnVzdCBsYXlpbmcgdGhl
IGdyb3VuZHdvcmsuCisKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzOjppZGJTZXJ2ZXIpOgorICAg
ICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuaDoKKworICAgICAgICAqIERh
dGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViS2l0OjpEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNz
YWdlKToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vz
c0lEQkNvbm5lY3Rpb24uaDoKKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50OjpkZWxldGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6b3BlbkRhdGFiYXNlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50OjphYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpjb21taXRUcmFuc2FjdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkRmluaXNoSGFuZGxpbmdWZXJz
aW9uQ2hhbmdlVHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQ6OmNyZWF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50OjpkZWxldGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y2xlYXJPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRlSW5kZXgpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRlbGV0ZUluZGV4KToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpwdXRPckFkZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Z2V0UmVjb3JkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpnZXRDb3VudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGVsZXRlUmVjb3JkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjppdGVyYXRlQ3Vyc29yKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojplc3RhYmxpc2hUcmFuc2FjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGF0YWJhc2VDb25uZWN0
aW9uQ2xvc2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojph
Ym9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50OjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KToKKyAgICAgICAgKiBEYXRh
YmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oOgorICAgICAg
ICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Lm1l
c3NhZ2VzLmluOgorCiAyMDE2LTAyLTE3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBNb2Rlcm4gSURCOiBSZW5hbWUgc29tZSAiVW5pcXVlSURCRGF0YWJhc2Ui
IGNsYXNzZXMgdGhhdCBjb25mbGljdCB3aXRoIG5ldyBjbGFzc2VzIGluIFdlYkNvcmUuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCmlu
ZGV4IDBjNWQ5MjguLmYzMmYxN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCkBAIC0xMTUsNiArMTE1LDE0IEBAIHZvaWQgRGF0
YWJhc2VQcm9jZXNzOjpyZW1vdmVMZWdhY3lVbmlxdWVJREJEYXRhYmFzZShjb25zdCBMZWdhY3lV
bmlxdWVJREJEYXRhYmFzCiAKICAgICBtX2lkYkRhdGFiYXNlcy5yZW1vdmUoaWRlbnRpZmllcik7
CiB9CisKK0lEQlNlcnZlcjo6SURCU2VydmVyJiBEYXRhYmFzZVByb2Nlc3M6OmlkYlNlcnZlcigp
Cit7CisgICAgaWYgKCFtX2lkYlNlcnZlcikKKyAgICAgICAgbV9pZGJTZXJ2ZXIgPSBJREJTZXJ2
ZXI6OklEQlNlcnZlcjo6Y3JlYXRlKGluZGV4ZWREYXRhYmFzZURpcmVjdG9yeSgpKTsKKworICAg
IHJldHVybiAqbV9pZGJTZXJ2ZXI7Cit9CiAjZW5kaWYKIAogdm9pZCBEYXRhYmFzZVByb2Nlc3M6
OmluaXRpYWxpemVEYXRhYmFzZVByb2Nlc3MoY29uc3QgRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCmluZGV4IGY3NDMwZDUuLmZiMWRmNGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmgKQEAgLTI5LDcg
KzI5LDEwIEBACiAjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCiAKICNpbmNsdWRlICJDaGls
ZFByb2Nlc3MuaCIKKyNpbmNsdWRlICJMZWdhY3lVbmlxdWVJREJEYXRhYmFzZS5oIgogI2luY2x1
ZGUgIkxlZ2FjeVVuaXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvSURCU2VydmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9VbmlxdWVJREJEYXRhYmFzZS5oPgog
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC00MSw3ICs0NCw2IEBAIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOwotY2xhc3MgTGVn
YWN5VW5pcXVlSURCRGF0YWJhc2U7CiAKIHN0cnVjdCBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM7CiAKQEAgLTYwLDYgKzYyLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBlbnN1cmVJ
bmRleGVkRGF0YWJhc2VSZWxhdGl2ZVBhdGhFeGlzdHMoY29uc3QgU3RyaW5nJik7CiAgICAgU3Ry
aW5nIGFic29sdXRlSW5kZXhlZERhdGFiYXNlUGF0aEZyb21EYXRhYmFzZVJlbGF0aXZlUGF0aChj
b25zdCBTdHJpbmcmKTsKKworICAgIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyJiBpZGJT
ZXJ2ZXIoKTsKICNlbmRpZgogCiAgICAgV29ya1F1ZXVlJiBxdWV1ZSgpIHsgcmV0dXJuIG1fcXVl
dWUuZ2V0KCk7IH0KQEAgLTExMCw2ICsxMTQsOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2lu
ZGV4ZWREYXRhYmFzZURpcmVjdG9yeTsKIAogICAgIEhhc2hNYXA8TGVnYWN5VW5pcXVlSURCRGF0
YWJhc2VJZGVudGlmaWVyLCBSZWZQdHI8TGVnYWN5VW5pcXVlSURCRGF0YWJhc2U+PiBtX2lkYkRh
dGFiYXNlczsKKworICAgIFJlZlB0cjxXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcj4gbV9p
ZGJTZXJ2ZXI7CiAjZW5kaWYKIAogICAgIERlcXVlPHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpD
cm9zc1RocmVhZFRhc2s+PiBtX2RhdGFiYXNlVGFza3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwCmluZGV4IDlhMzU5ODAuLjZmMDhmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50TWVzc2FnZXMuaCIKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgRU5B
QkxFKERBVEFCQVNFX1BST0NFU1MpCkBAIC02Miw2ICs2MywxMyBAQCB2b2lkIERhdGFiYXNlVG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aQogICAgIH0KIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgIGlmIChk
ZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgYXV0byBpdGVyYXRv
ciA9IG1fd2ViSURCQ29ubmVjdGlvbnMuZmluZChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7Cisg
ICAgICAgIGlmIChpdGVyYXRvciAhPSBtX3dlYklEQkNvbm5lY3Rpb25zLmVuZCgpKQorICAgICAg
ICAgICAgaXRlcmF0b3ItPnZhbHVlLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKICAgICBpZiAoZGVjb2Rlci5tZXNz
YWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OkRhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rp
b246Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICBJREJDb25uZWN0aW9uTWFwOjpp
dGVyYXRvciBiYWNrZW5kSXRlcmF0b3IgPSBtX2lkYkNvbm5lY3Rpb25zLmZpbmQoZGVjb2Rlci5k
ZXN0aW5hdGlvbklEKCkpOwogICAgICAgICBpZiAoYmFja2VuZEl0ZXJhdG9yICE9IG1faWRiQ29u
bmVjdGlvbnMuZW5kKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nl
c3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlv
bi5oCmluZGV4IDU1MDI2ZTUuLmJkOTkzYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9j
ZXNzSURCQ29ubmVjdGlvbi5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWYgRU5BQkxFKElOREVYRURf
REFUQUJBU0UpICYmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiRGF0YWJh
c2VQcm9jZXNzSURCQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTGVnYWN5VW5pcXVl
SURCRGF0YWJhc2UuaCIKICNpbmNsdWRlICJMZWdhY3lVbmlxdWVJREJEYXRhYmFzZUlkZW50aWZp
ZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDMsNyArNDQsNiBAQCBzdHJ1Y3QgSURCS2V5UmFu
Z2VEYXRhOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIERhdGFiYXNlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjsKLWNsYXNzIExlZ2FjeVVuaXF1ZUlEQkRhdGFiYXNlOwogCiBjbGFzcyBEYXRh
YmFzZVByb2Nlc3NJREJDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0YWJhc2VQcm9j
ZXNzSURCQ29ubmVjdGlvbj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIgewogcHVibGljOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCmluZGV4IDU4YjQ2OTIuLmNl
NTdlZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKQEAgLTI4
LDEwICsyOCwxMyBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKKyNpbmNsdWRl
ICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiRGF0YWJhc2VQcm9jZXNzLmgiCiAjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0lEQkVycm9yLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9JREJSZXN1bHREYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UaHJlYWRTYWZl
RGF0YUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0
aW9uLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMTU4LDg0ICsxNjEsMTE0IEBA
IHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tl
ZChjb25zdCBXZWJDb3JlOjpJREJSZXNvCiAgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVj
dGlvblRvU2VydmVyOjpOb3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChyZXF1ZXN0SWRlbnRpZmll
ciwgb2xkVmVyc2lvbiwgbmV3VmVyc2lvbikpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25U
b0NsaWVudDo6ZGVsZXRlRGF0YWJhc2UoY29uc3QgSURCUmVxdWVzdERhdGEmKQordm9pZCBXZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQ6OmRlbGV0ZURhdGFiYXNlKGNvbnN0IElEQlJlcXVlc3REYXRh
JiByZXF1ZXN0KQogeworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVy
KCkuZGVsZXRlRGF0YWJhc2UocmVxdWVzdCk7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50OjpvcGVuRGF0YWJhc2UoY29uc3QgSURCUmVxdWVzdERhdGEmKQordm9pZCBXZWJJREJD
b25uZWN0aW9uVG9DbGllbnQ6Om9wZW5EYXRhYmFzZShjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVx
dWVzdCkKIHsKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcigpLm9w
ZW5EYXRhYmFzZShyZXF1ZXN0KTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6
OmFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJikKK3ZvaWQgV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50OjphYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQogeworICAgIERhdGFiYXNlUHJvY2Vz
czo6c2luZ2xldG9uKCkuaWRiU2VydmVyKCkuYWJvcnRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbklk
ZW50aWZpZXIpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y29tbWl0VHJh
bnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJikKK3ZvaWQgV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50Ojpjb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKIHsKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmds
ZXRvbigpLmlkYlNlcnZlcigpLmNvbW1pdFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uSWRlbnRpZmll
cik7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRGaW5pc2hIYW5kbGlu
Z1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImKQor
dm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyKQogeworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVy
KCkuZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb25J
ZGVudGlmaWVyKTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmNyZWF0ZU9i
amVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZv
JikKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpjcmVhdGVPYmplY3RTdG9yZShjb25z
dCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiBpbmZv
KQogeworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKCkuY3JlYXRl
T2JqZWN0U3RvcmUocmVxdWVzdCwgaW5mbyk7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50OjpkZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFN0
cmluZyYpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGVsZXRlT2JqZWN0U3RvcmUo
Y29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKKyAg
ICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcigpLmRlbGV0ZU9iamVjdFN0
b3JlKHJlcXVlc3QsIG5hbWUpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6
Y2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90KQordm9pZCBX
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVz
dERhdGEmIHJlcXVlc3QsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikKIHsKKyAgICBE
YXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcigpLmNsZWFyT2JqZWN0U3RvcmUo
cmVxdWVzdCwgb2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0
aW9uVG9DbGllbnQ6OmNyZWF0ZUluZGV4KGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURC
SW5kZXhJbmZvJikKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpjcmVhdGVJbmRleChj
b25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgY29uc3QgSURCSW5kZXhJbmZvJiBpbmZvKQog
eworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKCkuY3JlYXRlSW5k
ZXgocmVxdWVzdCwgaW5mbyk7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpk
ZWxldGVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90LCBjb25zdCBTdHJpbmcm
KQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRlbGV0ZUluZGV4KGNvbnN0IElEQlJl
cXVlc3REYXRhJiByZXF1ZXN0LCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmFtZSkKIHsKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNl
cnZlcigpLmRlbGV0ZUluZGV4KHJlcXVlc3QsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgbmFtZSk7
CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpwdXRPckFkZChjb25zdCBJREJS
ZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
LCBib29sKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OnB1dE9yQWRkKGNvbnN0IElE
QlJlcXVlc3REYXRhJiByZXF1ZXN0LCBjb25zdCBJREJLZXlEYXRhJiBrZXksIGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYgZGF0YSwgdW5zaWduZWQgb3ZlcndyaXRlTW9kZSkKIHsKKyAgICBpZiAo
b3ZlcndyaXRlTW9kZSAhPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSW5kZXhlZERCOjpPYmplY3RT
dG9yZU92ZXJ3cml0ZU1vZGU6Ok5vT3ZlcndyaXRlKSAmJgorICAgICAgICBvdmVyd3JpdGVNb2Rl
ICE9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRl
TW9kZTo6T3ZlcndyaXRlKSAmJgorICAgICAgICBvdmVyd3JpdGVNb2RlICE9IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZTo6T3ZlcndyaXRl
Rm9yQ3Vyc29yKSkgeworICAgICAgICAvLyBGSVhNRTogQ29ycnVwdCBtZXNzYWdlIGZyb20gdGhl
IFdlYlByb2Nlc3MuIEl0IHNob3VsZCBiZSBraWxsZWQsIG9yIHNvbWV0aGluZy4KKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2Rl
IG1vZGUgPSBzdGF0aWNfY2FzdDxJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZT4o
b3ZlcndyaXRlTW9kZSk7CisgICAgYXV0byBidWZmZXIgPSBUaHJlYWRTYWZlRGF0YUJ1ZmZlcjo6
Y29weVZlY3RvcihkYXRhLnZlY3RvcigpKTsKKworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xl
dG9uKCkuaWRiU2VydmVyKCkucHV0T3JBZGQocmVxdWVzdCwga2V5LCBidWZmZXIsIG1vZGUpOwog
fQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Z2V0UmVjb3JkKGNvbnN0IElEQlJl
cXVlc3REYXRhJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJikKK3ZvaWQgV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50OjpnZXRSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIGNvbnN0
IElEQktleVJhbmdlRGF0YSYgcmFuZ2UpCiB7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0
b24oKS5pZGJTZXJ2ZXIoKS5nZXRSZWNvcmQocmVxdWVzdCwgcmFuZ2UpOwogfQogCi12b2lkIFdl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Z2V0Q291bnQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBj
b25zdCBJREJLZXlSYW5nZURhdGEmKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Omdl
dENvdW50KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0LCBjb25zdCBJREJLZXlSYW5nZURh
dGEmIHJhbmdlKQogeworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVy
KCkuZ2V0Q291bnQocmVxdWVzdCwgcmFuZ2UpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25U
b0NsaWVudDo6ZGVsZXRlUmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5
UmFuZ2VEYXRhJikKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkZWxldGVSZWNvcmQo
Y29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIGNvbnN0IElEQktleVJhbmdlRGF0YSYgcmFu
Z2UpCiB7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIoKS5kZWxl
dGVSZWNvcmQocmVxdWVzdCwgcmFuZ2UpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudDo6b3BlbkN1cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQkN1cnNvcklu
Zm8mKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Om9wZW5DdXJzb3IoY29uc3QgSURC
UmVxdWVzdERhdGEmIHJlcXVlc3QsIGNvbnN0IElEQkN1cnNvckluZm8mIGluZm8pCiB7CisgICAg
RGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIoKS5vcGVuQ3Vyc29yKHJlcXVl
c3QsIGluZm8pOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6aXRlcmF0ZUN1
cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCB1bnNpZ25lZCBs
b25nKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Oml0ZXJhdGVDdXJzb3IoY29uc3Qg
SURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIGNvbnN0IElEQktleURhdGEmIGtleSwgdW5zaWduZWQg
bG9uZyBjb3VudCkKIHsKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZl
cigpLml0ZXJhdGVDdXJzb3IocmVxdWVzdCwga2V5LCBjb3VudCk7CiB9CiAKLXZvaWQgV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50Ojplc3RhYmxpc2hUcmFuc2FjdGlvbih1aW50NjRfdCwgY29uc3Qg
SURCVHJhbnNhY3Rpb25JbmZvJikKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojplc3Rh
Ymxpc2hUcmFuc2FjdGlvbih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBj
b25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8pCiB7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpz
aW5nbGV0b24oKS5pZGJTZXJ2ZXIoKS5lc3RhYmxpc2hUcmFuc2FjdGlvbihkYXRhYmFzZUNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBpbmZvKTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQ6OmRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCkKK3ZvaWQgV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50OjpkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQodWludDY0X3QgZGF0YWJhc2VD
b25uZWN0aW9uSWRlbnRpZmllcikKIHsKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigp
LmlkYlNlcnZlcigpLmRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZChkYXRhYmFzZUNvbm5lY3Rpb25J
ZGVudGlmaWVyKTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmFib3J0T3Bl
bkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3QsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYp
Cit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6YWJvcnRPcGVuQW5kVXBncmFkZU5lZWRl
ZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKIHsKKyAgICBEYXRhYmFzZVByb2Nl
c3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcigpLmFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQoZGF0
YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKIH0KIAot
dm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQo
dWludDY0X3QsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYpCit2b2lkIFdlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudDo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllcikKIHsKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlk
YlNlcnZlcigpLmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoZGF0YWJhc2VDb25uZWN0aW9uSWRl
bnRpZmllciwgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaAppbmRleCAwZTc1ZDFkLi5k
ZTk1ZGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKQEAgLTg4LDcg
Kzg4LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJPYmplY3RTdG9yZShjb25zdCBXZWJDb3Jl
OjpJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAgICAg
dm9pZCBjcmVhdGVJbmRleChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFdl
YkNvcmU6OklEQkluZGV4SW5mbyYpOwogICAgIHZvaWQgZGVsZXRlSW5kZXgoY29uc3QgV2ViQ29y
ZTo6SURCUmVxdWVzdERhdGEmLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgaW5kZXhOYW1lKTsKLSAgICB2b2lkIHB1dE9yQWRkKGNvbnN0IFdlYkNvcmU6OklE
QlJlcXVlc3REYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIGNvbnN0IElQQzo6RGF0
YVJlZmVyZW5jZSYgdmFsdWUsIGJvb2wgb3ZlcndyaXRlRW5hYmxlZCk7CisgICAgdm9pZCBwdXRP
ckFkZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQktl
eURhdGEmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHZhbHVlLCB1bnNpZ25lZCBvdmVyd3Jp
dGVNb2RlKTsKICAgICB2b2lkIGdldFJlY29yZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0
YSYsIGNvbnN0IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSYpOwogICAgIHZvaWQgZ2V0Q291bnQo
Y29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5n
ZURhdGEmKTsKICAgICB2b2lkIGRlbGV0ZVJlY29yZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0
RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSYpOwpAQCAtMTAyLDExICsxMDIs
MTIgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2VzcygpOwog
CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50KERh
dGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiYsIHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyKTsKIAogICAgIHZpcnR1YWwgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVy
Q29ubmVjdGlvbigpIG92ZXJyaWRlIGZpbmFsOwotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgUmVmPERhdGFi
YXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b0NsaWVudC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2VzLmluCmluZGV4IDgwMmU2N2Iu
Ljk0ZjhmMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
Lm1lc3NhZ2VzLmluCkBAIC0zMyw3ICszMyw3IEBAIG1lc3NhZ2VzIC0+IFdlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudCB7CiAgICAgQ2xlYXJPYmplY3RTdG9yZShXZWJDb3JlOjpJREJSZXF1ZXN0RGF0
YSByZXF1ZXN0RGF0YSwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKICAgICBDcmVh
dGVJbmRleChXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSwgV2ViQ29yZTo6SURC
SW5kZXhJbmZvIGluZm8pOwogICAgIERlbGV0ZUluZGV4KFdlYkNvcmU6OklEQlJlcXVlc3REYXRh
IHJlcXVlc3REYXRhLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIFN0cmluZyBpbmRl
eE5hbWUpOwotICAgIFB1dE9yQWRkKFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRh
LCBXZWJDb3JlOjpJREJLZXlEYXRhIGtleSwgSVBDOjpEYXRhUmVmZXJlbmNlIHZhbHVlLCBib29s
IG92ZXJ3cml0ZUVuYWJsZWQpOworICAgIFB1dE9yQWRkKFdlYkNvcmU6OklEQlJlcXVlc3REYXRh
IHJlcXVlc3REYXRhLCBXZWJDb3JlOjpJREJLZXlEYXRhIGtleSwgSVBDOjpEYXRhUmVmZXJlbmNl
IHZhbHVlLCB1bnNpZ25lZCBvdmVyd3JpdGVNb2RlKTsKICAgICBHZXRSZWNvcmQoV2ViQ29yZTo6
SURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEsIHN0cnVjdCBXZWJDb3JlOjpJREJLZXlSYW5nZURh
dGEgcmFuZ2UpOwogICAgIEdldENvdW50KFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3RE
YXRhLCBzdHJ1Y3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhIHJhbmdlKTsKICAgICBEZWxldGVS
ZWNvcmQoV2ViQ29yZTo6SURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEsIHN0cnVjdCBXZWJDb3Jl
OjpJREJLZXlSYW5nZURhdGEgcmFuZ2UpOwo=
</data>
<flag name="review"
          id="296499"
          type_id="1"
          status="+"
          setter="achristensen"
    />
    <flag name="commit-queue"
          id="296500"
          type_id="3"
          status="-"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271674</attachid>
            <date>2016-02-18 11:08:05 -0800</date>
            <delta_ts>2016-02-18 12:23:50 -0800</delta_ts>
            <desc>Patch for landing v5</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>24752</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2ZTIwNmMyLi5mZDY0MDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTYtMDItMTggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vZGVybiBJREI6IEltcGxlbWVudCBjbGllbnQtPnNlcnZlciBvcGVyYXRpb25zIGluIFdL
Mi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDQw
MAorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgTm8g
Y2hhbmdlIGluIGJlaGF2aW9yIHlldDsgSnVzdCBsYXlpbmcgdGhlIGdyb3VuZHdvcmsuCisKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmg6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmg6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5oOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uaDoKKwogMjAxNi0wMi0xOCAg
RGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSByZWR1
bmRhbnQgQVNTRVJUX1dJVEhfTUVTU0FHRV9VTlVTRUQoKSBmcm9tIFNPRlRfTElOS19GUkFNRVdP
UktfRk9SX1NPVVJDRSgpIG1hY3JvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKaW5kZXggNGMzMjg1NS4uMjUyODNjYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIu
aApAQCAtNTEsMzMgKzUxLDMzIEBAIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewogY2xhc3MgSURCU2Vy
dmVyIDogcHVibGljIFJlZkNvdW50ZWQ8SURCU2VydmVyPiB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxJREJTZXJ2ZXI+IGNyZWF0ZSgpOwotICAgIHN0YXRpYyBSZWY8SURCU2VydmVyPiBjcmVh
dGUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeVBhdGgpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBSZWY8SURCU2VydmVyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURp
cmVjdG9yeVBhdGgpOwogCiAgICAgdm9pZCByZWdpc3RlckNvbm5lY3Rpb24oSURCQ29ubmVjdGlv
blRvQ2xpZW50Jik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyQ29ubmVjdGlvbihJREJDb25uZWN0aW9u
VG9DbGllbnQmKTsKIAogICAgIC8vIE9wZXJhdGlvbnMgcmVxdWVzdGVkIGJ5IHRoZSBjbGllbnQu
Ci0gICAgdm9pZCBvcGVuRGF0YWJhc2UoY29uc3QgSURCUmVxdWVzdERhdGEmKTsKLSAgICB2b2lk
IGRlbGV0ZURhdGFiYXNlKGNvbnN0IElEQlJlcXVlc3REYXRhJik7Ci0gICAgdm9pZCBhYm9ydFRy
YW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYpOwotICAgIHZvaWQgY29tbWl0
VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJik7Ci0gICAgdm9pZCBkaWRG
aW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImKTsKLSAgICB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3RE
YXRhJiwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJik7Ci0gICAgdm9pZCBkZWxldGVPYmplY3RT
dG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1l
KTsKLSAgICB2b2lkIGNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCB1aW50
NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOwotICAgIHZvaWQgY3JlYXRlSW5kZXgoY29uc3Qg
SURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJJbmRleEluZm8mKTsKLSAgICB2b2lkIGRlbGV0ZUlu
ZGV4KGNvbnN0IElEQlJlcXVlc3REYXRhJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIGluZGV4TmFtZSk7Ci0gICAgdm9pZCBwdXRPckFkZChjb25zdCBJREJS
ZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZl
ciYgdmFsdWVEYXRhLCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSk7Ci0gICAg
dm9pZCBnZXRSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlSYW5nZURh
dGEmKTsKLSAgICB2b2lkIGdldENvdW50KGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURC
S2V5UmFuZ2VEYXRhJik7Ci0gICAgdm9pZCBkZWxldGVSZWNvcmQoY29uc3QgSURCUmVxdWVzdERh
dGEmLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKTsKLSAgICB2b2lkIG9wZW5DdXJzb3IoY29uc3Qg
SURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJDdXJzb3JJbmZvJik7Ci0gICAgdm9pZCBpdGVyYXRl
Q3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5RGF0YSYsIHVuc2lnbmVk
IGxvbmcgY291bnQpOwotCi0gICAgdm9pZCBlc3RhYmxpc2hUcmFuc2FjdGlvbih1aW50NjRfdCBk
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsK
LSAgICB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5l
Y3Rpb25JZGVudGlmaWVyKTsKLSAgICB2b2lkIGFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWlu
dDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwotICAgIHZvaWQgZGlkRmlyZVZlcnNpb25D
aGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIG9wZW5EYXRhYmFzZShjb25zdCBJREJSZXF1ZXN0RGF0YSYpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgSURCUmVxdWVzdERhdGEmKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb21taXRUcmFuc2FjdGlvbihj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRp
ZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUo
Y29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRh
JiwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgY2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVj
dFN0b3JlSWRlbnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjcmVhdGVJbmRleChj
b25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQkluZGV4SW5mbyYpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZGVsZXRlSW5kZXgoY29uc3QgSURCUmVxdWVzdERhdGEmLCB1aW50NjRfdCBv
YmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgaW5kZXhOYW1lKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURC
S2V5RGF0YSYsIGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZURhdGEsIEluZGV4ZWRE
Qjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdl
dFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0Q291bnQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBj
b25zdCBJREJLZXlSYW5nZURhdGEmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVJl
Y29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgb3BlbkN1cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNv
bnN0IElEQkN1cnNvckluZm8mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGl0ZXJhdGVDdXJz
b3IoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlEYXRhJiwgdW5zaWduZWQgbG9u
ZyBjb3VudCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVzdGFibGlzaFRyYW5zYWN0aW9u
KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlRyYW5zYWN0
aW9uSW5mbyYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xv
c2VkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgYWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNv
bm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRGaXJlVmVyc2lvbkNo
YW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIpOwogCiAgICAgdm9pZCBwb3N0
RGF0YWJhc2VUYXNrKHN0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVhZFRhc2s+JiYpOwogICAgIHZv
aWQgcG9zdERhdGFiYXNlVGFza1JlcGx5KHN0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVhZFRhc2s+
JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAppbmRleCBmMTBmNzA4Li4xY2FhY2Q2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0
YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2UuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFVuaXF1ZUlEQkRhdGFiYXNlKHNlcnZlciwgaWRlbnRpZmllcikpOwog
ICAgIH0KIAotICAgIH5VbmlxdWVJREJEYXRhYmFzZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIH5V
bmlxdWVJREJEYXRhYmFzZSgpOwogCiAgICAgdm9pZCBvcGVuRGF0YWJhc2VDb25uZWN0aW9uKElE
QkNvbm5lY3Rpb25Ub0NsaWVudCYsIGNvbnN0IElEQlJlcXVlc3REYXRhJik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8u
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8u
aAppbmRleCBkMzlkMmMzLi44OWFkNWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5oCkBAIC0zNSw3ICszNSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCSW5kZXhJbmZvIHsKIHB1YmxpYzoKLSAg
ICBJREJJbmRleEluZm8oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBJREJJbmRleEluZm8oKTsKICAg
ICBJREJJbmRleEluZm8odWludDY0X3QgaWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29sIHVu
aXF1ZSwgYm9vbCBtdWx0aUVudHJ5KTsKIAogICAgIElEQkluZGV4SW5mbyBpc29sYXRlZENvcHko
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JREJPYmplY3RTdG9yZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uaAppbmRleCA4ZWZjNWI5Li4wOTRiMDA0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2Jq
ZWN0U3RvcmVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQk9iamVjdFN0b3JlSW5mby5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIElEQktleVBh
dGg7CiAKIGNsYXNzIElEQk9iamVjdFN0b3JlSW5mbyB7CiBwdWJsaWM6Ci0gICAgSURCT2JqZWN0
U3RvcmVJbmZvKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgSURCT2JqZWN0U3RvcmVJbmZvKCk7CiAg
ICAgSURCT2JqZWN0U3RvcmVJbmZvKHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCk7CiAKICAgICB1aW50
NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggYWE3ODEwNC4uZGE4OGQ3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAx
Ni0wMi0xOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9k
ZXJuIElEQjogSW1wbGVtZW50IGNsaWVudC0+c2VydmVyIG9wZXJhdGlvbnMgaW4gV0syLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NDAwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBObyBjaGFuZ2Ug
aW4gYmVoYXZpb3IgeWV0OyBKdXN0IGxheWluZyB0aGUgZ3JvdW5kd29yay4KKworICAgICAgICAq
IERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpE
YXRhYmFzZVByb2Nlc3M6OmlkYlNlcnZlcik6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0Rh
dGFiYXNlUHJvY2Vzcy5oOgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIERhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5oOgorCisgICAg
ICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRlbGV0ZURh
dGFiYXNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpvcGVu
RGF0YWJhc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmFi
b3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQ6OmNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50OjpkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRlT2JqZWN0U3Rv
cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRlbGV0ZU9i
amVjdFN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpj
bGVhck9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50OjpjcmVhdGVJbmRleCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudDo6ZGVsZXRlSW5kZXgpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQ6OnB1dE9yQWRkKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50OjpnZXRSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQ6OmdldENvdW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
OjpkZWxldGVSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQ6Om9wZW5DdXJzb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQ6Oml0ZXJhdGVDdXJzb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQ6OmVzdGFibGlzaFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50OjpkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEZpcmVWZXJz
aW9uQ2hhbmdlRXZlbnQpOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50Lmg6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQubWVzc2FnZXMuaW46CisKIDIwMTYtMDItMTgg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUg
dHdvIHVudXNlZCBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKaW5kZXggMGM1ZDkyOC4uZjMyZjE3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKQEAg
LTExNSw2ICsxMTUsMTQgQEAgdm9pZCBEYXRhYmFzZVByb2Nlc3M6OnJlbW92ZUxlZ2FjeVVuaXF1
ZUlEQkRhdGFiYXNlKGNvbnN0IExlZ2FjeVVuaXF1ZUlEQkRhdGFiYXMKIAogICAgIG1faWRiRGF0
YWJhc2VzLnJlbW92ZShpZGVudGlmaWVyKTsKIH0KKworSURCU2VydmVyOjpJREJTZXJ2ZXImIERh
dGFiYXNlUHJvY2Vzczo6aWRiU2VydmVyKCkKK3sKKyAgICBpZiAoIW1faWRiU2VydmVyKQorICAg
ICAgICBtX2lkYlNlcnZlciA9IElEQlNlcnZlcjo6SURCU2VydmVyOjpjcmVhdGUoaW5kZXhlZERh
dGFiYXNlRGlyZWN0b3J5KCkpOworCisgICAgcmV0dXJuICptX2lkYlNlcnZlcjsKK30KICNlbmRp
ZgogCiB2b2lkIERhdGFiYXNlUHJvY2Vzczo6aW5pdGlhbGl6ZURhdGFiYXNlUHJvY2Vzcyhjb25z
dCBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmggYi9T
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmgKaW5kZXggZjc0
MzBkNS4uZmIxZGY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0RhdGFiYXNlUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9E
YXRhYmFzZVByb2Nlc3MuaApAQCAtMjksNyArMjksMTAgQEAKICNpZiBFTkFCTEUoREFUQUJBU0Vf
UFJPQ0VTUykKIAogI2luY2x1ZGUgIkNoaWxkUHJvY2Vzcy5oIgorI2luY2x1ZGUgIkxlZ2FjeVVu
aXF1ZUlEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiTGVnYWN5VW5pcXVlSURCRGF0YWJhc2VJZGVu
dGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9JREJTZXJ2ZXIuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1VuaXF1ZUlEQkRhdGFiYXNlLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQxLDcgKzQ0LDYgQEAgc3RydWN0IFNlY3VyaXR5
T3JpZ2luRGF0YTsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBEYXRhYmFzZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb247Ci1jbGFzcyBMZWdhY3lVbmlxdWVJREJEYXRhYmFzZTsKIAogc3RydWN0
IERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKIApAQCAtNjAsNiArNjIsOCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGVuc3VyZUluZGV4ZWREYXRhYmFzZVJlbGF0aXZlUGF0aEV4aXN0
cyhjb25zdCBTdHJpbmcmKTsKICAgICBTdHJpbmcgYWJzb2x1dGVJbmRleGVkRGF0YWJhc2VQYXRo
RnJvbURhdGFiYXNlUmVsYXRpdmVQYXRoKGNvbnN0IFN0cmluZyYpOworCisgICAgV2ViQ29yZTo6
SURCU2VydmVyOjpJREJTZXJ2ZXImIGlkYlNlcnZlcigpOwogI2VuZGlmCiAKICAgICBXb3JrUXVl
dWUmIHF1ZXVlKCkgeyByZXR1cm4gbV9xdWV1ZS5nZXQoKTsgfQpAQCAtMTEwLDYgKzExNCw4IEBA
IHByaXZhdGU6CiAgICAgU3RyaW5nIG1faW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5OwogCiAgICAg
SGFzaE1hcDxMZWdhY3lVbmlxdWVJREJEYXRhYmFzZUlkZW50aWZpZXIsIFJlZlB0cjxMZWdhY3lV
bmlxdWVJREJEYXRhYmFzZT4+IG1faWRiRGF0YWJhc2VzOworCisgICAgUmVmUHRyPFdlYkNvcmU6
OklEQlNlcnZlcjo6SURCU2VydmVyPiBtX2lkYlNlcnZlcjsKICNlbmRpZgogCiAgICAgRGVxdWU8
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNyb3NzVGhyZWFkVGFzaz4+IG1fZGF0YWJhc2VUYXNr
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggOWEzNTk4MC4uNmYwOGYw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlICJEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJXZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaCIK
KyNpbmNsdWRlICJXZWJJREJDb25uZWN0aW9uVG9DbGllbnRNZXNzYWdlcy5oIgogI2luY2x1ZGUg
PHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKQEAgLTYyLDYg
KzYzLDEzIEBAIHZvaWQgRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3RpCiAgICAgfQogCiAjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSkgeworICAgICAgICBhdXRvIGl0ZXJhdG9yID0gbV93ZWJJREJDb25uZWN0aW9ucy5maW5kKGRl
Y29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICAgICAgaWYgKGl0ZXJhdG9yICE9IG1fd2ViSURC
Q29ubmVjdGlvbnMuZW5kKCkpCisgICAgICAgICAgICBpdGVyYXRvci0+dmFsdWUtPmRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIAogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6
RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAg
ICAgICAgIElEQkNvbm5lY3Rpb25NYXA6Oml0ZXJhdG9yIGJhY2tlbmRJdGVyYXRvciA9IG1faWRi
Q29ubmVjdGlvbnMuZmluZChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAgICAgICAgIGlmIChi
YWNrZW5kSXRlcmF0b3IgIT0gbV9pZGJDb25uZWN0aW9ucy5lbmQoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURC
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERC
L0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24uY3BwCmluZGV4IDMyOGJhOTEuLmE3ODg1ZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0
YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmNwcApAQCAt
MzIsOCArMzIsOCBAQAogI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzcy5oIgogI2luY2x1ZGUgIkRh
dGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIklEQklkZW50aWZpZXIu
aCIKLSNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTGVnYWN5VW5pcXVlSURCRGF0YWJh
c2UuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW5jbHVkZSAiV2ViSURCU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9JREJEYXRhYmFzZU1ldGFkYXRhLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJh
c2VQcm9jZXNzSURCQ29ubmVjdGlvbi5oCmluZGV4IDU1MDI2ZTUuLmJkOTkzYzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9j
ZXNzSURCQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9J
bmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5oCkBAIC0zMSw2ICszMSw3IEBA
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpICYmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNT
KQogCiAjaW5jbHVkZSAiRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiTGVnYWN5VW5pcXVlSURCRGF0YWJhc2UuaCIKICNpbmNsdWRlICJMZWdhY3lVbmlx
dWVJREJEYXRhYmFzZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3Jp
Z2luRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDMsNyArNDQs
NiBAQCBzdHJ1Y3QgSURCS2V5UmFuZ2VEYXRhOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjsKLWNsYXNzIExlZ2FjeVVuaXF1ZUlEQkRh
dGFiYXNlOwogCiBjbGFzcyBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uIDogcHVibGljIFJl
ZkNvdW50ZWQ8RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbj4sIHB1YmxpYyBJUEM6Ok1lc3Nh
Z2VTZW5kZXIgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQu
Y3BwCmluZGV4IDU4YjQ2OTIuLjJlZjZlZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudC5jcHAKQEAgLTI4LDEwICsyOCwxMyBAQAogCiAjaWYgRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCiAKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiRGF0YWJh
c2VQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVk
ZSAiV2ViSURCQ29ubmVjdGlvblRvU2VydmVyTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0lEQkVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJSZXN1bHREYXRhLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9UaHJlYWRTYWZlRGF0YUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVW5p
cXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpA
QCAtMTU4LDg0ICsxNjEsMTE1IEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpub3Rp
ZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBXZWJDb3JlOjpJREJSZXNvCiAgICAgc2VuZChN
ZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpOb3RpZnlPcGVuREJSZXF1ZXN0Qmxv
Y2tlZChyZXF1ZXN0SWRlbnRpZmllciwgb2xkVmVyc2lvbiwgbmV3VmVyc2lvbikpOwogfQogCi12
b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGVsZXRlRGF0YWJhc2UoY29uc3QgSURCUmVx
dWVzdERhdGEmKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRlbGV0ZURhdGFiYXNl
KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0KQogeworICAgIERhdGFiYXNlUHJvY2Vzczo6
c2luZ2xldG9uKCkuaWRiU2VydmVyKCkuZGVsZXRlRGF0YWJhc2UocmVxdWVzdCk7CiB9CiAKLXZv
aWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpvcGVuRGF0YWJhc2UoY29uc3QgSURCUmVxdWVz
dERhdGEmKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Om9wZW5EYXRhYmFzZShjb25z
dCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCkKIHsKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmds
ZXRvbigpLmlkYlNlcnZlcigpLm9wZW5EYXRhYmFzZShyZXF1ZXN0KTsKIH0KIAotdm9pZCBXZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQ6OmFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJikKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjphYm9ydFRyYW5zYWN0
aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQog
eworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKCkuYWJvcnRUcmFu
c2FjdGlvbih0cmFuc2FjdGlvbklkZW50aWZpZXIpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudDo6Y29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JikKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpjb21taXRUcmFuc2FjdGlvbihjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKIHsKKyAgICBE
YXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcigpLmNvbW1pdFRyYW5zYWN0aW9u
KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50OjpkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEZp
bmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQogeworICAgIERhdGFiYXNlUHJvY2Vzczo6
c2luZ2xldG9uKCkuaWRiU2VydmVyKCkuZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlVHJh
bnNhY3Rpb24odHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0
aW9uVG9DbGllbnQ6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29u
c3QgSURCT2JqZWN0U3RvcmVJbmZvJikKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpj
cmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgY29uc3QgSURC
T2JqZWN0U3RvcmVJbmZvJiBpbmZvKQogeworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9u
KCkuaWRiU2VydmVyKCkuY3JlYXRlT2JqZWN0U3RvcmUocmVxdWVzdCwgaW5mbyk7CiB9CiAKLXZv
aWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJS
ZXF1ZXN0RGF0YSYsIGNvbnN0IFN0cmluZyYpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dDo6ZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIGNvbnN0
IFN0cmluZyYgbmFtZSkKIHsKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNl
cnZlcigpLmRlbGV0ZU9iamVjdFN0b3JlKHJlcXVlc3QsIG5hbWUpOwogfQogCi12b2lkIFdlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6Y2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0
YSYsIHVpbnQ2NF90KQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmNsZWFyT2JqZWN0
U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIHVpbnQ2NF90IG9iamVjdFN0b3Jl
SWRlbnRpZmllcikKIHsKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZl
cigpLmNsZWFyT2JqZWN0U3RvcmUocmVxdWVzdCwgb2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKIH0K
IAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmNyZWF0ZUluZGV4KGNvbnN0IElEQlJl
cXVlc3REYXRhJiwgY29uc3QgSURCSW5kZXhJbmZvJikKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50OjpjcmVhdGVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgY29uc3Qg
SURCSW5kZXhJbmZvJiBpbmZvKQogeworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCku
aWRiU2VydmVyKCkuY3JlYXRlSW5kZXgocmVxdWVzdCwgaW5mbyk7CiB9CiAKLXZvaWQgV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50OjpkZWxldGVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIHVp
bnQ2NF90LCBjb25zdCBTdHJpbmcmKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRl
bGV0ZUluZGV4KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0LCB1aW50NjRfdCBvYmplY3RT
dG9yZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKKyAgICBEYXRhYmFzZVByb2Nl
c3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcigpLmRlbGV0ZUluZGV4KHJlcXVlc3QsIG9iamVjdFN0
b3JlSWRlbnRpZmllciwgbmFtZSk7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
OjpwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCBjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBib29sKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQ6OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0LCBjb25zdCBJREJLZXlE
YXRhJiBrZXksIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgdW5zaWduZWQgb3Zlcndy
aXRlTW9kZSkKIHsKKyAgICBpZiAob3ZlcndyaXRlTW9kZSAhPSBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGU6Ok5vT3ZlcndyaXRlKQorICAg
ICAgICAmJiBvdmVyd3JpdGVNb2RlICE9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihJbmRleGVkREI6
Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZTo6T3ZlcndyaXRlKQorICAgICAgICAmJiBvdmVyd3Jp
dGVNb2RlICE9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihJbmRleGVkREI6Ok9iamVjdFN0b3JlT3Zl
cndyaXRlTW9kZTo6T3ZlcndyaXRlRm9yQ3Vyc29yKSkgeworICAgICAgICAvLyBGSVhNRTogVGhp
cyBtZXNzYWdlIGZyb20gdGhlIFdlYlByb2Nlc3MgaXMgY29ycnVwdC4KKyAgICAgICAgLy8gVGhl
IERhdGFiYXNlUHJvY2VzcyBzaG91bGQgcmV0dXJuIGVhcmx5IGF0IHRoaXMgcG9pbnQsIGJ1dCBj
YW4gd2UgYWxzbyBraWxsIHRoZSBiYWQgV2ViUHJvY2Vzcz8KKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlIG1vZGUgPSBzdGF0
aWNfY2FzdDxJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZT4ob3ZlcndyaXRlTW9k
ZSk7CisgICAgYXV0byBidWZmZXIgPSBUaHJlYWRTYWZlRGF0YUJ1ZmZlcjo6Y29weVZlY3Rvcihk
YXRhLnZlY3RvcigpKTsKKworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2Vy
dmVyKCkucHV0T3JBZGQocmVxdWVzdCwga2V5LCBidWZmZXIsIG1vZGUpOwogfQogCi12b2lkIFdl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Z2V0UmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiwg
Y29uc3QgSURCS2V5UmFuZ2VEYXRhJikKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpn
ZXRSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIGNvbnN0IElEQktleVJhbmdl
RGF0YSYgcmFuZ2UpCiB7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2
ZXIoKS5nZXRSZWNvcmQocmVxdWVzdCwgcmFuZ2UpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudDo6Z2V0Q291bnQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlS
YW5nZURhdGEmKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmdldENvdW50KGNvbnN0
IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0LCBjb25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdlKQog
eworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKCkuZ2V0Q291bnQo
cmVxdWVzdCwgcmFuZ2UpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGVs
ZXRlUmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJikK
K3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkZWxldGVSZWNvcmQoY29uc3QgSURCUmVx
dWVzdERhdGEmIHJlcXVlc3QsIGNvbnN0IElEQktleVJhbmdlRGF0YSYgcmFuZ2UpCiB7CisgICAg
RGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIoKS5kZWxldGVSZWNvcmQocmVx
dWVzdCwgcmFuZ2UpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6b3BlbkN1
cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQkN1cnNvckluZm8mKQordm9pZCBX
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Om9wZW5DdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEm
IHJlcXVlc3QsIGNvbnN0IElEQkN1cnNvckluZm8mIGluZm8pCiB7CisgICAgRGF0YWJhc2VQcm9j
ZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIoKS5vcGVuQ3Vyc29yKHJlcXVlc3QsIGluZm8pOwog
fQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6aXRlcmF0ZUN1cnNvcihjb25zdCBJ
REJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCB1bnNpZ25lZCBsb25nKQordm9pZCBX
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Oml0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVxdWVzdERh
dGEmIHJlcXVlc3QsIGNvbnN0IElEQktleURhdGEmIGtleSwgdW5zaWduZWQgbG9uZyBjb3VudCkK
IHsKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcigpLml0ZXJhdGVD
dXJzb3IocmVxdWVzdCwga2V5LCBjb3VudCk7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50Ojplc3RhYmxpc2hUcmFuc2FjdGlvbih1aW50NjRfdCwgY29uc3QgSURCVHJhbnNhY3Rp
b25JbmZvJikKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojplc3RhYmxpc2hUcmFuc2Fj
dGlvbih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJUcmFu
c2FjdGlvbkluZm8mIGluZm8pCiB7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5p
ZGJTZXJ2ZXIoKS5lc3RhYmxpc2hUcmFuc2FjdGlvbihkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlm
aWVyLCBpbmZvKTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRhdGFiYXNl
Q29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCkKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
OjpkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRl
bnRpZmllcikKIHsKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcigp
LmRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZChkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsK
IH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmFib3J0T3BlbkFuZFVwZ3JhZGVO
ZWVkZWQodWludDY0X3QsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYpCit2b2lkIFdlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6YWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBk
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllcikKIHsKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRv
bigpLmlkYlNlcnZlcigpLmFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQoZGF0YWJhc2VDb25uZWN0
aW9uSWRlbnRpZmllciwgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKIH0KIAotdm9pZCBXZWJJREJD
b25uZWN0aW9uVG9DbGllbnQ6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QsIGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dDo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllcikKIHsKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcigpLmRp
ZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgdHJh
bnNhY3Rpb25JZGVudGlmaWVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWRE
Qi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaAppbmRleCAwZTc1ZDFkLi5kZTk1ZGU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9J
bmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKQEAgLTg4LDcgKzg4LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgY2xlYXJPYmplY3RTdG9yZShjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0
RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAgICAgdm9pZCBjcmVhdGVJ
bmRleChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQklu
ZGV4SW5mbyYpOwogICAgIHZvaWQgZGVsZXRlSW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVz
dERhdGEmLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgaW5k
ZXhOYW1lKTsKLSAgICB2b2lkIHB1dE9yQWRkKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRh
JiwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
dmFsdWUsIGJvb2wgb3ZlcndyaXRlRW5hYmxlZCk7CisgICAgdm9pZCBwdXRPckFkZChjb25zdCBX
ZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmIHZhbHVlLCB1bnNpZ25lZCBvdmVyd3JpdGVNb2RlKTsKICAg
ICB2b2lkIGdldFJlY29yZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFdl
YkNvcmU6OklEQktleVJhbmdlRGF0YSYpOwogICAgIHZvaWQgZ2V0Q291bnQoY29uc3QgV2ViQ29y
ZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmKTsKICAg
ICB2b2lkIGRlbGV0ZVJlY29yZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIGNvbnN0
IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSYpOwpAQCAtMTAyLDExICsxMDIsMTIgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBkaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2VzcygpOwogCisgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
CisKIHByaXZhdGU6CiAgICAgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50KERhdGFiYXNlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbiYsIHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsK
IAogICAgIHZpcnR1YWwgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigp
IG92ZXJyaWRlIGZpbmFsOwotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgUmVmPERhdGFiYXNlVG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2VzLmluCmluZGV4IDgwMmU2N2IuLjk0ZjhmMmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2VzLmlu
CkBAIC0zMyw3ICszMyw3IEBAIG1lc3NhZ2VzIC0+IFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudCB7
CiAgICAgQ2xlYXJPYmplY3RTdG9yZShXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0
YSwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKICAgICBDcmVhdGVJbmRleChXZWJD
b3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSwgV2ViQ29yZTo6SURCSW5kZXhJbmZvIGlu
Zm8pOwogICAgIERlbGV0ZUluZGV4KFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRh
LCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIFN0cmluZyBpbmRleE5hbWUpOwotICAg
IFB1dE9yQWRkKFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhLCBXZWJDb3JlOjpJ
REJLZXlEYXRhIGtleSwgSVBDOjpEYXRhUmVmZXJlbmNlIHZhbHVlLCBib29sIG92ZXJ3cml0ZUVu
YWJsZWQpOworICAgIFB1dE9yQWRkKFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRh
LCBXZWJDb3JlOjpJREJLZXlEYXRhIGtleSwgSVBDOjpEYXRhUmVmZXJlbmNlIHZhbHVlLCB1bnNp
Z25lZCBvdmVyd3JpdGVNb2RlKTsKICAgICBHZXRSZWNvcmQoV2ViQ29yZTo6SURCUmVxdWVzdERh
dGEgcmVxdWVzdERhdGEsIHN0cnVjdCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEgcmFuZ2UpOwog
ICAgIEdldENvdW50KFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhLCBzdHJ1Y3Qg
V2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhIHJhbmdlKTsKICAgICBEZWxldGVSZWNvcmQoV2ViQ29y
ZTo6SURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEsIHN0cnVjdCBXZWJDb3JlOjpJREJLZXlSYW5n
ZURhdGEgcmFuZ2UpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>