<?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>123105</bug_id>
          
          <creation_ts>2013-10-21 11:11:02 -0700</creation_ts>
          <short_desc>Transition most use of IDBBackingStoreLevelDB to IDBBackingStoreInterface</short_desc>
          <delta_ts>2013-10-21 13:30:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>123027</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jsbell</cc>
    
    <cc>rego+ews</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>941908</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-21 11:11:02 -0700</bug_when>
    <thetext>Transition most use of IDBBackingStoreLevelDB to IDBBackingStoreInterface

This gets us even closer to the goal in https://bugs.webkit.org/show_bug.cgi?id=123027 - Make IDBDatabaseBackendLevelDB.cpp be cross platform</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941911</commentid>
    <comment_count>1</comment_count>
      <attachid>214752</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-21 11:15:42 -0700</bug_when>
    <thetext>Created attachment 214752
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941912</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-21 11:17:24 -0700</bug_when>
    <thetext>Attachment 214752 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBBackingStoreInterface.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBFactoryBackendInterface.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBFactoryBackendInterface.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h&apos;]&quot; exit_code: 1
Source/WebCore/Modules/indexeddb/IDBBackingStoreInterface.h:95:  The parameter name &quot;transaction&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/Modules/indexeddb/IDBBackingStoreInterface.h:99:  The parameter name &quot;transaction&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/Modules/indexeddb/IDBBackingStoreInterface.h:109:  The parameter name &quot;transaction&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/Modules/indexeddb/IDBBackingStoreInterface.h:111:  The parameter name &quot;transaction&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:48:  The parameter name &quot;backingStore&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:96:  The parameter name &quot;backingStore&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 6 in 16 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>941914</commentid>
    <comment_count>3</comment_count>
      <attachid>214752</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-21 11:18:47 -0700</bug_when>
    <thetext>Comment on attachment 214752
Patch v1 

Attachment 214752 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/8828075</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941915</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-21 11:19:55 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 214752 [details] did not pass style-queue:
&gt; Source/WebCore/Modules/indexeddb/IDBBackingStoreInterface.h:95:  The parameter name &quot;transaction&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Source/WebCore/Modules/indexeddb/IDBBackingStoreInterface.h:99:  The parameter name &quot;transaction&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Source/WebCore/Modules/indexeddb/IDBBackingStoreInterface.h:109:  The parameter name &quot;transaction&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Source/WebCore/Modules/indexeddb/IDBBackingStoreInterface.h:111:  The parameter name &quot;transaction&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:48:  The parameter name &quot;backingStore&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:96:  The parameter name &quot;backingStore&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]

All fixed locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941918</commentid>
    <comment_count>5</comment_count>
      <attachid>214752</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-21 11:20:46 -0700</bug_when>
    <thetext>Comment on attachment 214752
Patch v1 

Attachment 214752 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/8788078</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941919</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-21 11:21:39 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=214752&amp;action=review

&gt; Source/WebCore/ChangeLog:7
&gt; +

Extra space.

&gt; Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:1979
&gt; +    m_transaction = LevelDBTransaction::create(reinterpret_cast&lt;IDBBackingStoreLevelDB*&gt;(m_backingStore)-&gt;m_db.get());

:|

&gt; Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:80
&gt; +    class RecordIdentifier : public IDBBackingStoreInterface::RecordIdentifier {

Is this class not FINAL in its entirety? You could do that here instead of repeatedly below.

&gt; Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:120
&gt; +    class Cursor : public IDBBackingStoreInterface::Cursor {

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941930</commentid>
    <comment_count>7</comment_count>
      <attachid>214752</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-21 11:28:39 -0700</bug_when>
    <thetext>Comment on attachment 214752
Patch v1 

Attachment 214752 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/8868076</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941937</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-21 11:39:14 -0700</bug_when>
    <thetext>The linux builds apparently can&apos;t handle the sequence of &quot;WARN_UNUSED_RETURN OVERRIDE FINAL&quot;
I&apos;ve tried changing that to &quot;OVERRIDE FINAL WARN_UNUSED_RETURN&quot; and will upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941941</commentid>
    <comment_count>9</comment_count>
      <attachid>214752</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-21 11:44:26 -0700</bug_when>
    <thetext>Comment on attachment 214752
Patch v1 

Attachment 214752 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/8888106</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941943</commentid>
    <comment_count>10</comment_count>
      <attachid>214752</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-10-21 11:50:58 -0700</bug_when>
    <thetext>Comment on attachment 214752
Patch v1 

Attachment 214752 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/8808108</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941956</commentid>
    <comment_count>11</comment_count>
      <attachid>214761</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-21 12:12:01 -0700</bug_when>
    <thetext>Created attachment 214761
Patch v2 - Fix WK2 build, and hopefully make the linux compilers happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941959</commentid>
    <comment_count>12</comment_count>
      <attachid>214761</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-21 12:18:53 -0700</bug_when>
    <thetext>Comment on attachment 214761
Patch v2 - Fix WK2 build, and hopefully make the linux compilers happy.

Attachment 214761 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/8778104</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941960</commentid>
    <comment_count>13</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-21 12:19:52 -0700</bug_when>
    <thetext>Yup, one more non-implemented method for the vanilla WebCore levelDB build.  Fixing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941963</commentid>
    <comment_count>14</comment_count>
      <attachid>214762</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-21 12:24:33 -0700</bug_when>
    <thetext>Created attachment 214762
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941965</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-21 12:26:03 -0700</bug_when>
    <thetext>Attachment 214762 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBBackingStoreInterface.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBFactoryBackendInterface.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBFactoryBackendInterface.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/config.h&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h&apos;]&quot; exit_code: 1
Source/WebCore/config.h:34:  Should have a space between // and comment  [whitespace/comments] [4]
Total errors found: 1 in 22 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>941970</commentid>
    <comment_count>16</comment_count>
      <attachid>214762</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-21 12:32:03 -0700</bug_when>
    <thetext>Comment on attachment 214762
Patch v3

Attachment 214762 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/4998145</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941973</commentid>
    <comment_count>17</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-21 12:39:11 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Attachment 214762 [details] did not pass style-queue:
&gt; 
&gt; Source/WebCore/config.h:34:  Should have a space between // and comment  [whitespace/comments] [4]
Didn&apos;t mean to include that at all, removed locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941979</commentid>
    <comment_count>18</comment_count>
      <attachid>214766</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-21 12:57:00 -0700</bug_when>
    <thetext>Created attachment 214766
Patch v4 - Trying this again...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941992</commentid>
    <comment_count>19</comment_count>
      <attachid>214766</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-10-21 13:14:07 -0700</bug_when>
    <thetext>Comment on attachment 214766
Patch v4 - Trying this again...

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

&gt; Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:70
&gt; +    virtual bool getIDBDatabaseMetaData(const String&amp; name, IDBDatabaseMetadata*, bool&amp; success) OVERRIDE FINAL WARN_UNUSED_RETURN;

Instead of making all these FINAL you can just make the class itself final.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942002</commentid>
    <comment_count>20</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-21 13:30:16 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/157730</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214752</attachid>
            <date>2013-10-21 11:15:42 -0700</date>
            <delta_ts>2013-10-21 12:12:01 -0700</delta_ts>
            <desc>Patch v1 </desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>79105</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjOWM0ZDM3Li5lN2ViOWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTgg
QEAKKzIwMTMtMTAtMjEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFRyYW5zaXRpb24gbW9zdCB1c2Ugb2YgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiB0byBJREJC
YWNraW5nU3RvcmVJbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyMzEwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisKKyAgICAgICAgRmxlc2ggb3V0IG1hbnkgb2YgdGhlIHB1cmUgdmlydHVhbCBtZXRob2Rz
IG9uIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSwgYXMgd2VsbCBhcworICAgICAgICB0aGUgUmVj
b3JkSWRlbnRpZmllciBhbmQgQ3Vyc29yIGNsYXNzZXM6CisKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJCYWNraW5nU3RvcmVJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6UmVjb3JkSWRlbnRpZmllcjo6flJlY29yZElkZW50aWZp
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I6
On5DdXJzb3IpOgorCisgICAgICAgIFVzZSBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UsIElEQkJh
Y2tpbmdTdG9yZUludGVyZmFjZTo6UmVjb3JkSWRlbnRpZmllciwgYW5kCisgICAgICAgIElEQkJh
Y2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yIHdoZXJldmVyIHBvc3NpYmxlOgorCisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuY3BwOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmg6CisK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxldmVs
REIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6cHV0UmVj
b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVsREI6OmRlbGV0ZVJl
Y29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjprZXlFeGlz
dHNJbk9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVs
REI6OnB1dEluZGV4RGF0YUZvclJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpPYmplY3RTdG9y
ZUtleUN1cnNvckltcGw6OmNsb25lKToKKyAgICAgICAgKFdlYkNvcmU6Ok9iamVjdFN0b3JlQ3Vy
c29ySW1wbDo6Y2xvbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5kZXhLZXlDdXJzb3JJbXBsOjpj
bG9uZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmRleEN1cnNvckltcGw6OmNsb25lKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5PYmplY3RTdG9yZUN1cnNv
cik6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuT2JqZWN0
U3RvcmVLZXlDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6b3BlbkluZGV4S2V5Q3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9y
ZUxldmVsREI6Om9wZW5JbmRleEN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5n
U3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbjo6VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb246OmJlZ2luKToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVsREI6OlJlY29yZElkZW50aWZpZXI6
OlJlY29yZElkZW50aWZpZXIpOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxk
Yi9JREJDdXJzb3JCYWNrZW5kTGV2ZWxEQi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJz
b3JCYWNrZW5kTGV2ZWxEQjo6SURCQ3Vyc29yQmFja2VuZExldmVsREIpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQ3Vyc29yQmFja2VuZExldmVsREIuaDoKKworICAg
ICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZExldmVsREI6OmNyZWF0ZSk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpJREJEYXRhYmFz
ZUJhY2tlbmRMZXZlbERCKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZExl
dmVsREI6OmJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tl
bmRMZXZlbERCOjpzZXRJbmRleEtleXMpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VC
YWNrZW5kTGV2ZWxEQjo6Y3JlYXRlVHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL2xldmVsZGIvSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQi5oOgorCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExldmVsREIuaDoKKwor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5k
TGV2ZWxEQi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZl
bERCOjpJbmRleFdyaXRlcjo6dmVyaWZ5SW5kZXhLZXlzKToKKyAgICAgICAgKFdlYkNvcmU6OklE
Qk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6OkluZGV4V3JpdGVyOjp3cml0ZUluZGV4S2V5cyk6
CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpJbmRleFdy
aXRlcjo6YWRkaW5nS2V5QWxsb3dlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9y
ZUJhY2tlbmRMZXZlbERCOjptYWtlSW5kZXhXcml0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OklE
Qk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6OmdlbmVyYXRlS2V5KToKKyAgICAgICAgKFdlYkNv
cmU6OklEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6OnVwZGF0ZUtleUdlbmVyYXRvcik6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRM
ZXZlbERCLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5z
YWN0aW9uQmFja2VuZExldmVsREIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rp
b25CYWNrZW5kTGV2ZWxEQjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0
aW9uQmFja2VuZExldmVsREI6OklEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxE
Qi5oOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlv
bkJhY2tlbmRMZXZlbERCT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZXRPcGVy
YXRpb246OnBlcmZvcm0pOgorICAgICAgICAoV2ViQ29yZTo6T3BlbkN1cnNvck9wZXJhdGlvbjo6
cGVyZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpDb3VudE9wZXJhdGlvbjo6cGVyZm9ybSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEZWxldGVSYW5nZU9wZXJhdGlvbjo6cGVyZm9ybSk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERC
T3BlcmF0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6Q3JlYXRlT2JqZWN0U3RvcmVPcGVyYXRp
b246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlv
bjo6Q3JlYXRlT2JqZWN0U3RvcmVPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRl
T2JqZWN0U3RvcmVPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVP
YmplY3RTdG9yZU9wZXJhdGlvbjo6RGVsZXRlT2JqZWN0U3RvcmVPcGVyYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q3JlYXRlSW5kZXhPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpDcmVhdGVJbmRleE9wZXJhdGlvbjo6Q3JlYXRlSW5kZXhPcGVyYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RGVsZXRlSW5kZXhPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpEZWxldGVJbmRleE9wZXJhdGlvbjo6RGVsZXRlSW5kZXhPcGVyYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6R2V0T3BlcmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R2V0
T3BlcmF0aW9uOjpHZXRPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UHV0T3BlcmF0aW9u
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHV0T3BlcmF0aW9uOjpQdXRPcGVyYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6T3BlbkN1cnNvck9wZXJhdGlvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok9wZW5DdXJzb3JPcGVyYXRpb246Ok9wZW5DdXJzb3JPcGVyYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6Q291bnRPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpDb3VudE9wZXJhdGlvbjo6Q291bnRPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
RGVsZXRlUmFuZ2VPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVS
YW5nZU9wZXJhdGlvbjo6RGVsZXRlUmFuZ2VPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Q2xlYXJPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDbGVhck9wZXJhdGlv
bjo6Q2xlYXJPcGVyYXRpb24pOgorCiAyMDEzLTEwLTE5ICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYWJzdHJhY3QgSURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlLCB1c2UgaXQgdG8gZ2V0IElEQkRhdGFiYXNlQmFja2VuZExldmVsREIgY2xvc2VyIHRvIGdv
aW5nIGNyb3NzLXBsYXRmb3JtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJCYWNraW5nU3RvcmVJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZUludGVyZmFjZS5oCmluZGV4IDJiYTlmODUuLjRj
YjZmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkJh
Y2tpbmdTdG9yZUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkJhY2tpbmdTdG9yZUludGVyZmFjZS5oCkBAIC0yNiw2ICsyNiw5IEBACiAjaWZuZGVm
IElEQkJhY2tpbmdTdG9yZUludGVyZmFjZV9oCiAjZGVmaW5lIElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZV9oCiAKKyNpbmNsdWRlICJJREJNZXRhZGF0YS5oIgorI2luY2x1ZGUgIkluZGV4ZWREQi5o
IgorCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0zNCw2ICszNywxMSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIElEQktleTsKK2NsYXNzIElEQktleVBhdGg7Citj
bGFzcyBJREJLZXlSYW5nZTsKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKKwogY2xhc3MgSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlIDogcHVibGljIFJlZkNvdW50ZWQ8SURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKCkg
eyB9CkBAIC00Miw2ICs1MCw2NyBAQCBwdWJsaWM6CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0
dWFsIH5UcmFuc2FjdGlvbigpIHsgfQogICAgIH07CisKKyAgICBjbGFzcyBSZWNvcmRJZGVudGlm
aWVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgflJlY29yZElkZW50aWZpZXIoKSB7
IH0KKworICAgICAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxjaGFyPiBwcmltYXJ5S2V5KCkgY29u
c3QgPSAwOworICAgICAgICB2aXJ0dWFsIGludDY0X3QgdmVyc2lvbigpIGNvbnN0ID0gMDsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHJlc2V0KGNvbnN0IFZlY3RvcjxjaGFyPiYgcHJpbWFyeUtleSwg
aW50NjRfdCB2ZXJzaW9uKSA9IDA7CisgICAgfTsKKworICAgIGNsYXNzIEN1cnNvciA6IHB1Ymxp
YyBSZWZDb3VudGVkPEN1cnNvcj4geworICAgIHB1YmxpYzoKKyAgICAgICAgZW51bSBJdGVyYXRv
clN0YXRlIHsKKyAgICAgICAgICAgIFJlYWR5ID0gMCwKKyAgICAgICAgICAgIFNlZWsKKyAgICAg
ICAgfTsKKworICAgICAgICB2aXJ0dWFsIH5DdXJzb3IoKSB7IH0KKworICAgICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8SURCS2V5PiBrZXkoKSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwgYm9v
bCBjb250aW51ZUZ1bmN0aW9uKGNvbnN0IElEQktleSogPSAwLCBJdGVyYXRvclN0YXRlID0gU2Vl
aykgPSAwOworICAgICAgICB2aXJ0dWFsIGJvb2wgYWR2YW5jZSh1bnNpZ25lZCBsb25nKSA9IDA7
CisKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEN1cnNvcj4gY2xvbmUoKSA9IDA7CisgICAg
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXkoKSBjb25zdCA9IDA7Cisg
ICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlKCkgY29uc3QgPSAw
OworICAgICAgICB2aXJ0dWFsIGNvbnN0IFJlY29yZElkZW50aWZpZXImIHJlY29yZElkZW50aWZp
ZXIoKSBjb25zdCA9IDA7CisgICAgfTsKKworICAgIHZpcnR1YWwgYm9vbCBnZXRJREJEYXRhYmFz
ZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCRGF0YWJhc2VNZXRhZGF0YSosIGJvb2wm
IGZvdW5kKSA9IDA7CisgICAgdmlydHVhbCBib29sIGdldE9iamVjdFN0b3JlcyhpbnQ2NF90IGRh
dGFiYXNlSWQsIElEQkRhdGFiYXNlTWV0YWRhdGE6Ok9iamVjdFN0b3JlTWFwKiBvYmplY3RTdG9y
ZXMpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlSURCRGF0YWJhc2VNZXRhRGF0YShjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgaW50NjRfdCBpbnRWZXJzaW9u
LCBpbnQ2NF90JiByb3dJZCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBrZXlFeGlzdHNJbk9iamVj
dFN0b3JlKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRh
dGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiwgSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlmaWVyKiBmb3VuZFJlY29yZElkZW50aWZpZXIs
IGJvb2wmIGZvdW5kKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgcHV0SW5kZXhEYXRhRm9yUmVj
b3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFi
YXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJL
ZXkmLCBjb25zdCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlJlY29yZElkZW50aWZpZXImKSA9
IDA7CisgICAgdmlydHVhbCBib29sIGtleUV4aXN0c0luSW5kZXgoSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYsIFJlZlB0cjxJREJLZXk+JiBm
b3VuZFByaW1hcnlLZXksIGJvb2wmIGV4aXN0cykgPSAwOworCisgICAgdmlydHVhbCBib29sIGRl
bGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCB1
cGRhdGVJREJEYXRhYmFzZUludFZlcnNpb24oSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFu
c2FjdGlvbiosIGludDY0X3Qgcm93SWQsIGludDY0X3QgaW50VmVyc2lvbikgPSAwOworCisgICAg
dmlydHVhbCBib29sIGdldFJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0
aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElE
QktleSYsIFZlY3RvcjxjaGFyPiYgcmVjb3JkKSA9IDA7CisgICAgdmlydHVhbCBib29sIHB1dFJl
Y29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYsIFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiB2YWx1ZSwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVu
dGlmaWVyKikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBkZWxldGVSZWNvcmQoSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJ
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6
OlJlY29yZElkZW50aWZpZXImKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlT2JqZWN0
U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0
YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IElEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wg
ZGVsZXRlT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbios
IGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSA9IDA7CisgICAgdmly
dHVhbCBib29sIGNsZWFyT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFu
c2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlSW5kZXgoSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
SURCS2V5UGF0aCYsIGJvb2wgaXNVbmlxdWUsIGJvb2wgaXNNdWx0aUVudHJ5KSA9IDA7CisgICAg
dmlydHVhbCBib29sIGRlbGV0ZUluZGV4KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNh
Y3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRf
dCBpbmRleElkKSA9IDA7CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3Jl
SW50ZXJmYWNlOjpDdXJzb3I+IG9wZW5PYmplY3RTdG9yZUtleUN1cnNvcihJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rp
b24pID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
OjpDdXJzb3I+IG9wZW5PYmplY3RTdG9yZUN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6
OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQs
IGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24pID0gMDsKKyAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IG9w
ZW5JbmRleEtleUN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwg
aW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJ
ZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbikgPSAwOwor
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4g
b3BlbkluZGV4Q3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElk
LCBjb25zdCBJREJLZXlSYW5nZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKSA9IDA7CisK
KyAgICB2aXJ0dWFsIGJvb2wgZ2V0UHJpbWFyeUtleVZpYUluZGV4KElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmLCBSZWZQ
dHI8SURCS2V5PiYgcHJpbWFyeUtleSkgPSAwOworCisgICAgdmlydHVhbCBib29sIGdldEtleUdl
bmVyYXRvckN1cnJlbnROdW1iZXIoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlv
biogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBpbnQ2NF90JiBrZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKSA9IDA7CisgICAgdmlydHVhbCBi
b29sIG1heWJlVXBkYXRlS2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcihJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGludDY0X3QgbmV3U3RhdGUsIGJvb2wgY2hlY2tDdXJyZW50KSA9IDA7CisKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNwcApp
bmRleCA2ZTdiMzdhLi4wM2M0NDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuY3BwCkBA
IC0zMywxMCArMzMsNiBAQAogI2luY2x1ZGUgIkRhdGFiYXNlU3RyYXRlZ3kuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKIAotI2lmIFVTRShMRVZFTERCKQotI2luY2x1ZGUgIklE
QkZhY3RvcnlCYWNrZW5kTGV2ZWxEQi5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogUGFzc1JlZlB0cjxJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZT4gSURCRmFjdG9yeUJhY2tl
bmRJbnRlcmZhY2U6OmNyZWF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaAppbmRleCBhYTFj
NDgwLi5lNGUzNDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgKQEAgLTI4LDYgKzI4LDgg
QEAKICNpZm5kZWYgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2VfaAogI2RlZmluZSBJREJGYWN0
b3J5QmFja2VuZEludGVyZmFjZV9oCiAKKyNpbmNsdWRlICJJbmRleGVkREIuaCIKKwogI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTM2LDkgKzM4LDEyIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorY2xhc3MgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOwogY2xhc3MgSURC
Q2FsbGJhY2tzOwogY2xhc3MgSURCRGF0YWJhc2U7CitjbGFzcyBJREJEYXRhYmFzZUJhY2tlbmRM
ZXZlbERCOyAvLyBGSVhNRTogVGhpcyBpcyBhIExldmVsREIgc3BlY2lmaWMgdHlwZSBmb3Igbm93
LiBodHRwOi8vd2Via2l0Lm9yZy9iLzEyMzAyNyB3aWxsIGZpeCB0aGF0LgogY2xhc3MgSURCRGF0
YWJhc2VDYWxsYmFja3M7CitjbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7CiBj
bGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKQEAg
LTU4LDYgKzYzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShj
b25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRh
dGFEaXIpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJREJEYXRhYmFzZUJhY2tlbmQo
Y29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKSA9IDA7CisKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbkJh
Y2tlbmQoSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQiosIGludDY0X3QgdHJhbnNhY3Rpb25JZCwg
UGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYs
IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZl
bGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvbGV2ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmNwcAppbmRleCBiNmVlNzc1
Li4yODMxOGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9s
ZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5jcHAKQEAgLTg5
OCw3ICs4OTgsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gc3RhdGljIGJvb2wgZ2V0TmV3VmVyc2lv
bk51bWJlcihMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aQogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OnB1dFJlY29yZChJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYga2V5LCBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gcHJwVmFsdWUsIFJlY29yZElkZW50aWZpZXIqIHJlY29yZElkZW50aWZpZXIp
Citib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OnB1dFJlY29yZChJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYga2V5LCBQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gcHJwVmFsdWUsIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6UmVjb3JkSWRlbnRp
ZmllciogcmVjb3JkSWRlbnRpZmllcikKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tp
bmdTdG9yZUxldmVsREI6OnB1dFJlY29yZCIpOwogICAgIGlmICghS2V5UHJlZml4Ojp2YWxpZElk
cyhkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkKSkKQEAgLTk0MSw3ICs5NDEsNyBAQCBib29sIElE
QkJhY2tpbmdTdG9yZUxldmVsREI6OmNsZWFyT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIElEQkJhY2tpbmdT
dG9yZUxldmVsREI6OmRlbGV0ZVJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5z
YWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQsIGNvbnN0IFJlY29yZElkZW50aWZpZXImIHJlY29yZElkZW50aWZpZXIpCitib29sIElE
QkJhY2tpbmdTdG9yZUxldmVsREI6OmRlbGV0ZVJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6UmVjb3JkSWRl
bnRpZmllciYgcmVjb3JkSWRlbnRpZmllcikKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJh
Y2tpbmdTdG9yZUxldmVsREI6OmRlbGV0ZVJlY29yZCIpOwogICAgIGlmICghS2V5UHJlZml4Ojp2
YWxpZElkcyhkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkKSkKQEAgLTEwMjcsNyArMTAyNyw3IEBA
IGJvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6bWF5YmVVcGRhdGVLZXlHZW5lcmF0b3JDdXJy
ZW50TnVtYmVyKElEQkJhY2tpbmdTdG9yCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSURC
QmFja2luZ1N0b3JlTGV2ZWxEQjo6a2V5RXhpc3RzSW5PYmplY3RTdG9yZShJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYga2V5LCBSZWNvcmRJZGVudGlm
aWVyKiBmb3VuZFJlY29yZElkZW50aWZpZXIsIGJvb2wmIGZvdW5kKQorYm9vbCBJREJCYWNraW5n
U3RvcmVMZXZlbERCOjprZXlFeGlzdHNJbk9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiBrZXksIElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTo6UmVjb3JkSWRlbnRpZmllciogZm91bmRSZWNvcmRJZGVudGlmaWVyLCBib29sJiBmb3Vu
ZCkKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZUxldmVsREI6OmtleUV4
aXN0c0luT2JqZWN0U3RvcmUiKTsKICAgICBpZiAoIUtleVByZWZpeDo6dmFsaWRJZHMoZGF0YWJh
c2VJZCwgb2JqZWN0U3RvcmVJZCkpCkBAIC0xMTg2LDcgKzExODYsNyBAQCBib29sIElEQkJhY2tp
bmdTdG9yZUxldmVsREI6OmRlbGV0ZUluZGV4KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJh
bnNhY3Rpb24qCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSURCQmFja2luZ1N0b3JlTGV2
ZWxEQjo6cHV0SW5kZXhEYXRhRm9yUmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJh
bnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmIGtleSwgY29uc3QgUmVjb3Jk
SWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllcikKK2Jvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6cHV0SW5kZXhEYXRhRm9yUmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNh
Y3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmIGtleSwgY29uc3QgSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlmaWVyJiByZWNvcmRJZGVudGlmaWVyKQogewog
ICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6cHV0SW5kZXhEYXRh
Rm9yUmVjb3JkIik7CiAgICAgQVNTRVJUKGtleS5pc1ZhbGlkKCkpOwpAQCAtMTQ5OSw3ICsxNDk5
LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE9iamVjdFN0b3JlS2V5
Q3Vyc29ySW1wbCh0cmFuc2FjdGlvbiwgY3Vyc29yT3B0aW9ucykpOwogICAgIH0KIAotICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IGNsb25lKCkK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+
IGNsb25lKCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgT2JqZWN0U3RvcmVL
ZXlDdXJzb3JJbXBsKHRoaXMpKTsKICAgICB9CkBAIC0xNTYwLDcgKzE1NjAsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgT2JqZWN0U3RvcmVDdXJzb3JJbXBsKHRyYW5z
YWN0aW9uLCBjdXJzb3JPcHRpb25zKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRy
PElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gY2xvbmUoKQorICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gY2xvbmUoKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPYmplY3RTdG9yZUN1cnNvckltcGwodGhpcykp
OwogICAgIH0KQEAgLTE2MjcsNyArMTYyNyw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBJbmRleEtleUN1cnNvckltcGwodHJhbnNhY3Rpb24sIGN1cnNvck9wdGlvbnMp
KTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6Q3Vyc29yPiBjbG9uZSgpCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9y
ZUludGVyZmFjZTo6Q3Vyc29yPiBjbG9uZSgpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEluZGV4S2V5Q3Vyc29ySW1wbCh0aGlzKSk7CiAgICAgfQpAQCAtMTcxOCw3ICsxNzE4
LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluZGV4Q3Vyc29ySW1w
bCh0cmFuc2FjdGlvbiwgY3Vyc29yT3B0aW9ucykpOwogICAgIH0KIAotICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IGNsb25lKCkKKyAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IGNsb25lKCkK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5kZXhDdXJzb3JJbXBsKHRoaXMp
KTsKICAgICB9CkBAIC0xOTEwLDggKzE5MTAsOCBAQCBzdGF0aWMgYm9vbCBpbmRleEN1cnNvck9w
dGlvbnMoTGV2ZWxEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZQog
CiAgICAgcmV0dXJuIHRydWU7CiB9CitQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZTo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuT2JqZWN0U3RvcmVDdXJzb3Io
SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXlSYW5nZSog
cmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlvbikKIAotUGFzc1JlZlB0
cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IElEQkJhY2tpbmdTdG9yZUxldmVsREI6
Om9wZW5PYmplY3RTdG9yZUN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0
aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGNvbnN0IElEQktleVJhbmdlKiByYW5nZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24g
ZGlyZWN0aW9uKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6b3Blbk9iamVjdFN0b3JlQ3Vyc29yIik7CiAgICAgTGV2ZWxEQlRyYW5zYWN0aW9uKiBsZXZl
bERCVHJhbnNhY3Rpb24gPSBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbjo6bGV2
ZWxEQlRyYW5zYWN0aW9uRnJvbSh0cmFuc2FjdGlvbik7CkBAIC0xOTI1LDcgKzE5MjUsNyBAQCBQ
YXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gSURCQmFja2luZ1N0b3Jl
TGV2ZWxEQjo6b3Blbk9iamVjdFN0bwogICAgIHJldHVybiBjdXJzb3IucmVsZWFzZSgpOwogfQog
Ci1QYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gSURCQmFja2luZ1N0
b3JlTGV2ZWxEQjo6b3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5UmFuZ2UqIHJhbmdlLCBJbmRleGVkREI6OkN1
cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24pCitQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuT2JqZWN0U3RvcmVLZXlD
dXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24s
IGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXlS
YW5nZSogcmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAg
ICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5PYmplY3RTdG9y
ZUtleUN1cnNvciIpOwogICAgIExldmVsREJUcmFuc2FjdGlvbiogbGV2ZWxEQlRyYW5zYWN0aW9u
ID0gSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb246OmxldmVsREJUcmFuc2FjdGlv
bkZyb20odHJhbnNhY3Rpb24pOwpAQCAtMTkzOSw3ICsxOTM5LDcgQEAgUGFzc1JlZlB0cjxJREJC
YWNraW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IElEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5P
YmplY3RTdG8KICAgICByZXR1cm4gY3Vyc29yLnJlbGVhc2UoKTsKIH0KIAotUGFzc1JlZlB0cjxJ
REJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IElEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9w
ZW5JbmRleEtleUN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0
cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGlu
dDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5UmFuZ2UqIHJhbmdlLCBJbmRleGVkREI6OkN1cnNv
ckRpcmVjdGlvbiBkaXJlY3Rpb24pCitQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZTo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuSW5kZXhLZXlDdXJzb3IoSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3Qg
ZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0
IElEQktleVJhbmdlKiByYW5nZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9u
KQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3Blbklu
ZGV4S2V5Q3Vyc29yIik7CiAgICAgTGV2ZWxEQlRyYW5zYWN0aW9uKiBsZXZlbERCVHJhbnNhY3Rp
b24gPSBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbjo6bGV2ZWxEQlRyYW5zYWN0
aW9uRnJvbSh0cmFuc2FjdGlvbik7CkBAIC0xOTUzLDcgKzE5NTMsNyBAQCBQYXNzUmVmUHRyPElE
QkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3Bl
bkluZGV4S2V5QwogICAgIHJldHVybiBjdXJzb3IucmVsZWFzZSgpOwogfQogCi1QYXNzUmVmUHRy
PElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6
b3BlbkluZGV4Q3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRy
YW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50
NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSogcmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29y
RGlyZWN0aW9uIGRpcmVjdGlvbikKK1Bhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
OjpDdXJzb3I+IElEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5JbmRleEN1cnNvcihJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURC
S2V5UmFuZ2UqIHJhbmdlLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24pCiB7
CiAgICAgTE9HKFN0b3JhZ2VBUEksICJJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuSW5kZXhD
dXJzb3IiKTsKICAgICBMZXZlbERCVHJhbnNhY3Rpb24qIGxldmVsREJUcmFuc2FjdGlvbiA9IElE
QkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uOjpsZXZlbERCVHJhbnNhY3Rpb25Gcm9t
KHRyYW5zYWN0aW9uKTsKQEAgLTE5NjcsNyArMTk2Nyw3IEBAIFBhc3NSZWZQdHI8SURCQmFja2lu
Z1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuSW5kZXhD
dXJzCiAgICAgcmV0dXJuIGN1cnNvci5yZWxlYXNlKCk7CiB9CiAKLUlEQkJhY2tpbmdTdG9yZUxl
dmVsREI6OlRyYW5zYWN0aW9uOjpUcmFuc2FjdGlvbihJREJCYWNraW5nU3RvcmVMZXZlbERCKiBi
YWNraW5nU3RvcmUpCitJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbjo6VHJhbnNh
Y3Rpb24oSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKiBiYWNraW5nU3RvcmUpCiAgICAgOiBtX2Jh
Y2tpbmdTdG9yZShiYWNraW5nU3RvcmUpCiB7CiB9CkBAIC0xOTc2LDcgKzE5NzYsNyBAQCB2b2lk
IElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uOjpiZWdpbigpCiB7CiAgICAgTE9H
KFN0b3JhZ2VBUEksICJJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbjo6YmVnaW4i
KTsKICAgICBBU1NFUlQoIW1fdHJhbnNhY3Rpb24pOwotICAgIG1fdHJhbnNhY3Rpb24gPSBMZXZl
bERCVHJhbnNhY3Rpb246OmNyZWF0ZShtX2JhY2tpbmdTdG9yZS0+bV9kYi5nZXQoKSk7CisgICAg
bV90cmFuc2FjdGlvbiA9IExldmVsREJUcmFuc2FjdGlvbjo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nh
c3Q8SURCQmFja2luZ1N0b3JlTGV2ZWxEQio+KG1fYmFja2luZ1N0b3JlKS0+bV9kYi5nZXQoKSk7
CiB9CiAKIGJvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb246OmNvbW1pdCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
QkJhY2tpbmdTdG9yZUxldmVsREIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5oCmluZGV4IDExZTA5ZWUuLjg1NjdhZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURC
QmFja2luZ1N0b3JlTGV2ZWxEQi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5oCkBAIC02Nyw1MiArNjcsNTggQEAg
cHVibGljOgogICAgIFdlYWtQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4gY3JlYXRlV2Vha1B0
cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKICAgICB2aXJ0
dWFsIFZlY3RvcjxTdHJpbmc+IGdldERhdGFiYXNlTmFtZXMoKTsKLSAgICB2aXJ0dWFsIGJvb2wg
Z2V0SURCRGF0YWJhc2VNZXRhRGF0YShjb25zdCBTdHJpbmcmIG5hbWUsIElEQkRhdGFiYXNlTWV0
YWRhdGEqLCBib29sJiBzdWNjZXNzKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBi
b29sIGNyZWF0ZUlEQkRhdGFiYXNlTWV0YURhdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBT
dHJpbmcmIHZlcnNpb24sIGludDY0X3QgaW50VmVyc2lvbiwgaW50NjRfdCYgcm93SWQpOworICAg
IHZpcnR1YWwgYm9vbCBnZXRJREJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwg
SURCRGF0YWJhc2VNZXRhZGF0YSosIGJvb2wmIHN1Y2Nlc3MpIFdBUk5fVU5VU0VEX1JFVFVSTiBP
VkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlSURCRGF0YWJhc2VNZXRhRGF0
YShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgaW50NjRfdCBpbnRW
ZXJzaW9uLCBpbnQ2NF90JiByb3dJZCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBib29s
IHVwZGF0ZUlEQkRhdGFiYXNlTWV0YURhdGEoSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNh
Y3Rpb24qLCBpbnQ2NF90IHJvd0lkLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pOwotICAgIHZpcnR1
YWwgYm9vbCB1cGRhdGVJREJEYXRhYmFzZUludFZlcnNpb24oSURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3Qgcm93SWQsIGludDY0X3QgaW50VmVyc2lvbik7Ci0g
ICAgdmlydHVhbCBib29sIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAg
dmlydHVhbCBib29sIHVwZGF0ZUlEQkRhdGFiYXNlSW50VmVyc2lvbihJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCByb3dJZCwgaW50NjRfdCBpbnRWZXJzaW9u
KSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlRGF0YWJhc2UoY29uc3Qg
U3RyaW5nJiBuYW1lKSBPVkVSUklERSBGSU5BTDsKIAotICAgIGJvb2wgZ2V0T2JqZWN0U3RvcmVz
KGludDY0X3QgZGF0YWJhc2VJZCwgSURCRGF0YWJhc2VNZXRhZGF0YTo6T2JqZWN0U3RvcmVNYXAq
KSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBib29sIGNyZWF0ZU9iamVjdFN0b3Jl
KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJL
ZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KTsKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlT2Jq
ZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3Qg
ZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSBXQVJOX1VOVVNFRF9SRVRVUk47Cisg
ICAgdmlydHVhbCBib29sIGdldE9iamVjdFN0b3JlcyhpbnQ2NF90IGRhdGFiYXNlSWQsIElEQkRh
dGFiYXNlTWV0YWRhdGE6Ok9iamVjdFN0b3JlTWFwKikgV0FSTl9VTlVTRURfUkVUVVJOIE9WRVJS
SURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVPYmplY3RTdG9yZShJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJv
b2wgYXV0b0luY3JlbWVudCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBib29sIGRlbGV0
ZU9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkgV0FSTl9VTlVTRURfUkVUVVJO
IE9WRVJSSURFIEZJTkFMOwogCi0gICAgY2xhc3MgUmVjb3JkSWRlbnRpZmllciB7Ci0gICAgICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFJlY29yZElkZW50aWZpZXIpOworICAgIGNsYXNzIFJlY29y
ZElkZW50aWZpZXIgOiBwdWJsaWMgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVu
dGlmaWVyIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFJlY29yZElkZW50aWZpZXIoY29uc3QgVmVj
dG9yPGNoYXI+JiBwcmltYXJ5S2V5LCBpbnQ2NF90IHZlcnNpb24pIDogbV9wcmltYXJ5S2V5KHBy
aW1hcnlLZXkpLCBtX3ZlcnNpb24odmVyc2lvbikgeyBBU1NFUlQoIXByaW1hcnlLZXkuaXNFbXB0
eSgpKTsgfQotICAgICAgICBSZWNvcmRJZGVudGlmaWVyKCkgOiBtX3ByaW1hcnlLZXkoKSwgbV92
ZXJzaW9uKC0xKSB7IH0KKyAgICAgICAgUmVjb3JkSWRlbnRpZmllcihjb25zdCBWZWN0b3I8Y2hh
cj4mIHByaW1hcnlLZXksIGludDY0X3QgdmVyc2lvbikKKyAgICAgICAgICAgIDogSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlmaWVyKCkKKyAgICAgICAgICAgICwgbV9wcmlt
YXJ5S2V5KHByaW1hcnlLZXkpCisgICAgICAgICAgICAsIG1fdmVyc2lvbih2ZXJzaW9uKQorICAg
ICAgICB7CisgICAgICAgICAgICBBU1NFUlQoIXByaW1hcnlLZXkuaXNFbXB0eSgpKTsKKyAgICAg
ICAgfQogCi0gICAgICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBwcmltYXJ5S2V5KCkgY29uc3QgeyBy
ZXR1cm4gbV9wcmltYXJ5S2V5OyB9Ci0gICAgICAgIGludDY0X3QgdmVyc2lvbigpIGNvbnN0IHsg
cmV0dXJuIG1fdmVyc2lvbjsgfQotICAgICAgICB2b2lkIHJlc2V0KGNvbnN0IFZlY3RvcjxjaGFy
PiYgcHJpbWFyeUtleSwgaW50NjRfdCB2ZXJzaW9uKSB7IG1fcHJpbWFyeUtleSA9IHByaW1hcnlL
ZXk7IG1fdmVyc2lvbiA9IHZlcnNpb247IH0KKyAgICAgICAgUmVjb3JkSWRlbnRpZmllcigpCisg
ICAgICAgICAgICA6IElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6UmVjb3JkSWRlbnRpZmllcigp
CisgICAgICAgICAgICAsIG1fcHJpbWFyeUtleSgpCisgICAgICAgICAgICAsIG1fdmVyc2lvbigt
MSkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgVmVjdG9yPGNoYXI+IHBy
aW1hcnlLZXkoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBtX3ByaW1hcnlLZXk7IH0K
KyAgICAgICAgaW50NjRfdCB2ZXJzaW9uKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4g
bV92ZXJzaW9uOyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXNldChjb25zdCBWZWN0b3I8Y2hh
cj4mIHByaW1hcnlLZXksIGludDY0X3QgdmVyc2lvbikgT1ZFUlJJREUgRklOQUwgeyBtX3ByaW1h
cnlLZXkgPSBwcmltYXJ5S2V5OyBtX3ZlcnNpb24gPSB2ZXJzaW9uOyB9CiAKICAgICBwcml2YXRl
OgogICAgICAgICBWZWN0b3I8Y2hhcj4gbV9wcmltYXJ5S2V5OyAvLyBGSVhNRTogTWFrZSBpdCBt
b3JlIGNsZWFyIHRoYXQgdGhpcyBpcyB0aGUgKmVuY29kZWQqIHZlcnNpb24gb2YgdGhlIGtleS4K
ICAgICAgICAgaW50NjRfdCBtX3ZlcnNpb247CiAgICAgfTsKIAotICAgIHZpcnR1YWwgYm9vbCBn
ZXRSZWNvcmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3Qg
ZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmLCBWZWN0b3I8
Y2hhcj4mIHJlY29yZCkgV0FSTl9VTlVTRURfUkVUVVJOOwotICAgIHZpcnR1YWwgYm9vbCBwdXRS
ZWNvcmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0
YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmLCBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gdmFsdWUsIFJlY29yZElkZW50aWZpZXIqKSBXQVJOX1VOVVNFRF9SRVRV
Uk47Ci0gICAgdmlydHVhbCBib29sIGNsZWFyT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBib29sIGRlbGV0ZVJlY29y
ZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFJlY29yZElkZW50aWZpZXImKSBXQVJO
X1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBib29sIGdldEtleUdlbmVyYXRvckN1cnJlbnRO
dW1iZXIoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0
YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90JiBjdXJyZW50TnVtYmVyKSBX
QVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBib29sIG1heWJlVXBkYXRlS2V5R2VuZXJh
dG9yQ3VycmVudE51bWJlcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwg
aW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgbmV3U3Rh
dGUsIGJvb2wgY2hlY2tDdXJyZW50KSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBi
b29sIGtleUV4aXN0c0luT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFu
c2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25z
dCBJREJLZXkmLCBSZWNvcmRJZGVudGlmaWVyKiBmb3VuZFJlY29yZElkZW50aWZpZXIsIGJvb2wm
IGZvdW5kKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0KLSAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlSW5k
ZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJh
c2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgaXNVbmlxdWUsIGJvb2wgaXNNdWx0aUVu
dHJ5KSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBib29sIGRlbGV0ZUluZGV4KElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkKSBXQVJOX1VOVVNFRF9SRVRV
Uk47Ci0gICAgdmlydHVhbCBib29sIHB1dEluZGV4RGF0YUZvclJlY29yZChJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiwgY29uc3QgUmVjb3Jk
SWRlbnRpZmllciYpIFdBUk5fVU5VU0VEX1JFVFVSTjsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0UHJp
bWFyeUtleVZpYUluZGV4KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElk
LCBjb25zdCBJREJLZXkmLCBSZWZQdHI8SURCS2V5PiYgcHJpbWFyeUtleSkgV0FSTl9VTlVTRURf
UkVUVVJOOwotICAgIHZpcnR1YWwgYm9vbCBrZXlFeGlzdHNJbkluZGV4KElEQkJhY2tpbmdTdG9y
ZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmIGluZGV4S2V5LCBSZWZQ
dHI8SURCS2V5PiYgZm91bmRQcmltYXJ5S2V5LCBib29sJiBleGlzdHMpIFdBUk5fVU5VU0VEX1JF
VFVSTjsKLQotICAgIGNsYXNzIEN1cnNvciA6IHB1YmxpYyBSZWZDb3VudGVkPEN1cnNvcj4gewor
ICAgIHZpcnR1YWwgYm9vbCBnZXRSZWNvcmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFu
c2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25z
dCBJREJLZXkmLCBWZWN0b3I8Y2hhcj4mIHJlY29yZCkgV0FSTl9VTlVTRURfUkVUVVJOIE9WRVJS
SURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBwdXRSZWNvcmQoSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBjb25zdCBJREJLZXkmLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWUsIElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6UmVjb3JkSWRlbnRpZmllciopIFdBUk5fVU5VU0VEX1JF
VFVSTiBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgY2xlYXJPYmplY3RTdG9yZShJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIFdBUk5fVU5VU0VEX1JFVFVSTiBPVkVSUklERSBGSU5B
TDsKKyAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgY29uc3QgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlmaWVyJikgV0FS
Tl9VTlVTRURfUkVUVVJOIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBnZXRLZXlH
ZW5lcmF0b3JDdXJyZW50TnVtYmVyKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rp
b24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCYg
Y3VycmVudE51bWJlcikgV0FSTl9VTlVTRURfUkVUVVJOIE9WRVJSSURFIEZJTkFMOworICAgIHZp
cnR1YWwgYm9vbCBtYXliZVVwZGF0ZUtleUdlbmVyYXRvckN1cnJlbnROdW1iZXIoSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IG5ld1N0YXRlLCBib29sIGNoZWNrQ3VycmVudCkgV0FS
Tl9VTlVTRURfUkVUVVJOIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBrZXlFeGlz
dHNJbk9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5Jiwg
SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlmaWVyKiBmb3VuZFJlY29yZElk
ZW50aWZpZXIsIGJvb2wmIGZvdW5kKSBXQVJOX1VOVVNFRF9SRVRVUk4gT1ZFUlJJREUgRklOQUw7
CisKKyAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
OjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYs
IGJvb2wgaXNVbmlxdWUsIGJvb2wgaXNNdWx0aUVudHJ5KSBXQVJOX1VOVVNFRF9SRVRVUk4gT1ZF
UlJJREUgRklOQUw7CisgICAgdmlydHVhbCBib29sIGRlbGV0ZUluZGV4KElEQkJhY2tpbmdTdG9y
ZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkKSBXQVJOX1VOVVNFRF9SRVRVUk4gT1ZFUlJJREUg
RklOQUw7CisgICAgdmlydHVhbCBib29sIHB1dEluZGV4RGF0YUZvclJlY29yZChJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiwgY29uc3QgSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlmaWVyJikgV0FSTl9VTlVTRURfUkVU
VVJOIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBnZXRQcmltYXJ5S2V5VmlhSW5k
ZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJh
c2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktl
eSYsIFJlZlB0cjxJREJLZXk+JiBwcmltYXJ5S2V5KSBXQVJOX1VOVVNFRF9SRVRVUk4gT1ZFUlJJ
REUgRklOQUw7CisgICAgdmlydHVhbCBib29sIGtleUV4aXN0c0luSW5kZXgoSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYgaW5kZXhLZXksIFJl
ZlB0cjxJREJLZXk+JiBmb3VuZFByaW1hcnlLZXksIGJvb2wmIGV4aXN0cykgV0FSTl9VTlVTRURf
UkVUVVJOIE9WRVJSSURFIEZJTkFMOworCisgICAgY2xhc3MgQ3Vyc29yIDogcHVibGljIElEQkJh
Y2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIGVudW0g
SXRlcmF0b3JTdGF0ZSB7Ci0gICAgICAgICAgICBSZWFkeSA9IDAsCi0gICAgICAgICAgICBTZWVr
Ci0gICAgICAgIH07Ci0KICAgICAgICAgc3RydWN0IEN1cnNvck9wdGlvbnMgewogICAgICAgICAg
ICAgaW50NjRfdCBkYXRhYmFzZUlkOwogICAgICAgICAgICAgaW50NjRfdCBvYmplY3RTdG9yZUlk
OwpAQCAtMTI1LDE1ICsxMzEsMTUgQEAgcHVibGljOgogICAgICAgICAgICAgYm9vbCB1bmlxdWU7
CiAgICAgICAgIH07CiAKLSAgICAgICAgUGFzc1JlZlB0cjxJREJLZXk+IGtleSgpIGNvbnN0IHsg
cmV0dXJuIG1fY3VycmVudEtleTsgfQotICAgICAgICBib29sIGNvbnRpbnVlRnVuY3Rpb24oY29u
c3QgSURCS2V5KiA9IDAsIEl0ZXJhdG9yU3RhdGUgPSBTZWVrKTsKLSAgICAgICAgYm9vbCBhZHZh
bmNlKHVuc2lnbmVkIGxvbmcpOworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5PiBr
ZXkoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBtX2N1cnJlbnRLZXk7IH0KKyAgICAg
ICAgdmlydHVhbCBib29sIGNvbnRpbnVlRnVuY3Rpb24oY29uc3QgSURCS2V5KiA9IDAsIEl0ZXJh
dG9yU3RhdGUgPSBTZWVrKSBPVkVSUklERSBGSU5BTDsKKyAgICAgICAgdmlydHVhbCBib29sIGFk
dmFuY2UodW5zaWduZWQgbG9uZykgT1ZFUlJJREUgRklOQUw7CiAgICAgICAgIGJvb2wgZmlyc3RT
ZWVrKCk7CiAKLSAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEN1cnNvcj4gY2xvbmUoKSA9IDA7
Ci0gICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXkoKSBjb25zdCB7
IHJldHVybiBtX2N1cnJlbnRLZXk7IH0KLSAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gdmFsdWUoKSBjb25zdCA9IDA7Ci0gICAgICAgIHZpcnR1YWwgY29uc3QgUmVjb3Jk
SWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVjb3JkSWRl
bnRpZmllcjsgfQorICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpDdXJzb3I+IGNsb25lKCkgT1ZFUlJJREUgPSAwOworICAgICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9j
dXJyZW50S2V5OyB9CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZh
bHVlKCkgY29uc3QgT1ZFUlJJREUgPSAwOworICAgICAgICB2aXJ0dWFsIGNvbnN0IFJlY29yZElk
ZW50aWZpZXImIHJlY29yZElkZW50aWZpZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3Jl
Y29yZElkZW50aWZpZXI7IH0KICAgICAgICAgdmlydHVhbCB+Q3Vyc29yKCkgeyB9CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBsb2FkQ3VycmVudFJvdygpID0gMDsKIApAQCAtMTU3LDE0ICsxNjMsMTQg
QEAgcHVibGljOgogICAgICAgICBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpSZWNvcmRJZGVudGlm
aWVyIG1fcmVjb3JkSWRlbnRpZmllcjsKICAgICB9OwogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRy
PEN1cnNvcj4gb3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbik7Ci0gICAg
dmlydHVhbCBQYXNzUmVmUHRyPEN1cnNvcj4gb3Blbk9iamVjdFN0b3JlQ3Vyc29yKElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRp
cmVjdGlvbik7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEN1cnNvcj4gb3BlbkluZGV4S2V5Q3Vy
c29yKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFi
YXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJL
ZXlSYW5nZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKTsKLSAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8Q3Vyc29yPiBvcGVuSW5kZXhDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpU
cmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBp
bnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhlZERCOjpDdXJzb3JEaXJl
Y3Rpb24pOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6
OkN1cnNvcj4gb3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbikgT1ZFUlJJ
REUgRklOQUw7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZTo6Q3Vyc29yPiBvcGVuT2JqZWN0U3RvcmVDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
OjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBjb25zdCBJREJLZXlSYW5nZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKSBPVkVSUklE
RSBGSU5BTDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
OjpDdXJzb3I+IG9wZW5JbmRleEtleUN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRy
YW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGlu
dDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRpcmVj
dGlvbikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6Q3Vyc29yPiBvcGVuSW5kZXhDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhlZERCOjpD
dXJzb3JEaXJlY3Rpb24pIE9WRVJSSURFIEZJTkFMOwogCiAgICAgY2xhc3MgVHJhbnNhY3Rpb24g
OiBwdWJsaWMgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiB7CiAgICAgcHVi
bGljOgotICAgICAgICBleHBsaWNpdCBUcmFuc2FjdGlvbihJREJCYWNraW5nU3RvcmVMZXZlbERC
Kik7CisgICAgICAgIGV4cGxpY2l0IFRyYW5zYWN0aW9uKElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZSopOwogICAgICAgICB2b2lkIGJlZ2luKCk7CiAgICAgICAgIGJvb2wgY29tbWl0KCk7CiAgICAg
ICAgIHZvaWQgcm9sbGJhY2soKTsKQEAgLTE4MCw3ICsxODYsNyBAQCBwdWJsaWM6CiAgICAgICAg
IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIG1fYmFj
a2luZ1N0b3JlOworICAgICAgICBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIG1fYmFja2luZ1N0
b3JlOwogICAgICAgICBSZWZQdHI8TGV2ZWxEQlRyYW5zYWN0aW9uPiBtX3RyYW5zYWN0aW9uOwog
ICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xl
dmVsZGIvSURCQ3Vyc29yQmFja2VuZExldmVsREIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvbGV2ZWxkYi9JREJDdXJzb3JCYWNrZW5kTGV2ZWxEQi5jcHAKaW5kZXggMzcx
NGEwNS4uMjlhNTk4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvbGV2ZWxkYi9JREJDdXJzb3JCYWNrZW5kTGV2ZWxEQi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJDdXJzb3JCYWNrZW5kTGV2ZWxEQi5jcHAK
QEAgLTEwMSw3ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxJREJDYWxsYmFja3M+IG1f
Y2FsbGJhY2tzOwogfTsKIAotSURCQ3Vyc29yQmFja2VuZExldmVsREI6OklEQkN1cnNvckJhY2tl
bmRMZXZlbERCKFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBjdXJz
b3IsIEluZGV4ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBJREJEYXRhYmFzZUJhY2tlbmRJ
bnRlcmZhY2U6OlRhc2tUeXBlIHRhc2tUeXBlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERC
KiB0cmFuc2FjdGlvbiwgaW50NjRfdCBvYmplY3RTdG9yZUlkKQorSURCQ3Vyc29yQmFja2VuZExl
dmVsREI6OklEQkN1cnNvckJhY2tlbmRMZXZlbERCKFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3Jl
SW50ZXJmYWNlOjpDdXJzb3I+IGN1cnNvciwgSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5
cGUsIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6VGFza1R5cGUgdGFza1R5cGUsIElEQlRy
YW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQpCiAgICAgOiBtX3Rhc2tUeXBlKHRhc2tUeXBlKQogICAgICwgbV9jdXJzb3JUeXBlKGN1cnNv
clR5cGUpCiAgICAgLCBtX2RhdGFiYXNlKHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJDdXJzb3JC
YWNrZW5kTGV2ZWxEQi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxk
Yi9JREJDdXJzb3JCYWNrZW5kTGV2ZWxEQi5oCmluZGV4IDE4YWNmZTYuLmIyZGVlYTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQ3Vyc29y
QmFja2VuZExldmVsREIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9s
ZXZlbGRiL0lEQkN1cnNvckJhY2tlbmRMZXZlbERCLmgKQEAgLTQ0LDExICs0NCwxMSBAQCBjbGFz
cyBJREJLZXlSYW5nZTsKIAogY2xhc3MgSURCQ3Vyc29yQmFja2VuZExldmVsREIgOiBwdWJsaWMg
SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8SURCQ3Vyc29yQmFja2VuZExldmVsREI+IGNyZWF0ZShQYXNzUmVmUHRyPElEQkJhY2tpbmdT
dG9yZUxldmVsREI6OkN1cnNvcj4gY3Vyc29yLCBJbmRleGVkREI6OkN1cnNvclR5cGUgY3Vyc29y
VHlwZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kTGV2
ZWxEQj4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+
IGN1cnNvciwgSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIElEQlRyYW5zYWN0aW9u
QmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpCiAgICAg
ewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQkN1cnNvckJhY2tlbmRMZXZlbERCKGN1
cnNvciwgY3Vyc29yVHlwZSwgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpOb3JtYWxUYXNr
LCB0cmFuc2FjdGlvbiwgb2JqZWN0U3RvcmVJZCkpOwogICAgIH0KLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxJREJDdXJzb3JCYWNrZW5kTGV2ZWxEQj4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQmFja2lu
Z1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBjdXJzb3IsIEluZGV4ZWREQjo6Q3Vyc29yVHlwZSBjdXJz
b3JUeXBlLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlRhc2tUeXBlIHRhc2tUeXBlLCBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBvYmplY3RT
dG9yZUlkKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRMZXZlbERCPiBj
cmVhdGUoUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gY3Vyc29y
LCBJbmRleGVkREI6OkN1cnNvclR5cGUgY3Vyc29yVHlwZSwgSURCRGF0YWJhc2VCYWNrZW5kSW50
ZXJmYWNlOjpUYXNrVHlwZSB0YXNrVHlwZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiog
dHJhbnNhY3Rpb24sIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkKICAgICB7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgSURCQ3Vyc29yQmFja2VuZExldmVsREIoY3Vyc29yLCBjdXJzb3JUeXBl
LCB0YXNrVHlwZSwgdHJhbnNhY3Rpb24sIG9iamVjdFN0b3JlSWQpKTsKICAgICB9CkBAIC02OCw3
ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsb3NlKCk7CiAKIHByaXZhdGU6Ci0gICAgSURC
Q3Vyc29yQmFja2VuZExldmVsREIoUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpD
dXJzb3I+LCBJbmRleGVkREI6OkN1cnNvclR5cGUsIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZTo6VGFza1R5cGUsIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQpOworICAgIElEQkN1cnNvckJhY2tlbmRMZXZlbERCKFBhc3NSZWZQdHI8SURCQmFj
a2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+LCBJbmRleGVkREI6OkN1cnNvclR5cGUsIElEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZTo6VGFza1R5cGUsIElEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREIqLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpOwogCiAgICAgY2xhc3MgQ3Vyc29ySXRlcmF0
aW9uT3BlcmF0aW9uOwogICAgIGNsYXNzIEN1cnNvckFkdmFuY2VPcGVyYXRpb247CkBAIC04MCw4
ICs4MCw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVs
REI+IG1fdHJhbnNhY3Rpb247CiAgICAgY29uc3QgaW50NjRfdCBtX29iamVjdFN0b3JlSWQ7CiAK
LSAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBtX2N1cnNvcjsgLy8g
TXVzdCBiZSBkZXN0cm95ZWQgYmVmb3JlIG1fdHJhbnNhY3Rpb24uCi0gICAgUmVmUHRyPElEQkJh
Y2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gbV9zYXZlZEN1cnNvcjsgLy8gTXVzdCBiZSBkZXN0
cm95ZWQgYmVmb3JlIG1fdHJhbnNhY3Rpb24uCisgICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZTo6Q3Vyc29yPiBtX2N1cnNvcjsgLy8gTXVzdCBiZSBkZXN0cm95ZWQgYmVmb3JlIG1f
dHJhbnNhY3Rpb24uCisgICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29y
PiBtX3NhdmVkQ3Vyc29yOyAvLyBNdXN0IGJlIGRlc3Ryb3llZCBiZWZvcmUgbV90cmFuc2FjdGlv
bi4KIAogICAgIGJvb2wgbV9jbG9zZWQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRGF0YWJhc2VCYWNr
ZW5kTGV2ZWxEQi5jcHAKaW5kZXggYjg4NzE2Ni4uNWNhODZmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJEYXRhYmFzZUJhY2tlbmRMZXZl
bERCLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
QkRhdGFiYXNlQmFja2VuZExldmVsREIuY3BwCkBAIC00MiwxNSArNDIsMTUgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZExldmVsREI+IElE
QkRhdGFiYXNlQmFja2VuZExldmVsREI6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIElEQkJh
Y2tpbmdTdG9yZUxldmVsREIqIGRhdGFiYXNlLCBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSog
ZmFjdG9yeSwgY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKQorUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUJhY2tlbmRMZXZlbERCPiBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpjcmVhdGUo
Y29uc3QgU3RyaW5nJiBuYW1lLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9y
ZSwgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqIGZhY3RvcnksIGNvbnN0IFN0cmluZyYgdW5p
cXVlSWRlbnRpZmllcikKIHsKLSAgICBSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQj4g
YmFja2VuZCA9IGFkb3B0UmVmKG5ldyBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCKG5hbWUsIGRh
dGFiYXNlLCBmYWN0b3J5LCB1bmlxdWVJZGVudGlmaWVyKSk7CisgICAgUmVmUHRyPElEQkRhdGFi
YXNlQmFja2VuZExldmVsREI+IGJhY2tlbmQgPSBhZG9wdFJlZihuZXcgSURCRGF0YWJhc2VCYWNr
ZW5kTGV2ZWxEQihuYW1lLCBiYWNraW5nU3RvcmUsIGZhY3RvcnksIHVuaXF1ZUlkZW50aWZpZXIp
KTsKICAgICBpZiAoIWJhY2tlbmQtPm9wZW5JbnRlcm5hbCgpKQogICAgICAgICByZXR1cm4gMDsK
ICAgICByZXR1cm4gYmFja2VuZC5yZWxlYXNlKCk7CiB9CiAKLUlEQkRhdGFiYXNlQmFja2VuZExl
dmVsREI6OklEQkRhdGFiYXNlQmFja2VuZExldmVsREIoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJC
YWNraW5nU3RvcmVMZXZlbERCKiBiYWNraW5nU3RvcmUsIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJm
YWNlKiBmYWN0b3J5LCBjb25zdCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIpCitJREJEYXRhYmFz
ZUJhY2tlbmRMZXZlbERCOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCKGNvbnN0IFN0cmluZyYg
bmFtZSwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKiBiYWNraW5nU3RvcmUsIElEQkZhY3RvcnlC
YWNrZW5kSW50ZXJmYWNlKiBmYWN0b3J5LCBjb25zdCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIp
CiAgICAgOiBtX2JhY2tpbmdTdG9yZShiYWNraW5nU3RvcmUpCiAgICAgLCBtX21ldGFkYXRhKG5h
bWUsIEludmFsaWRJZCwgMCwgSW52YWxpZElkKQogICAgICwgbV9pZGVudGlmaWVyKHVuaXF1ZUlk
ZW50aWZpZXIpCkBAIC0xMTgsOSArMTE4LDkgQEAgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6
fklEQkRhdGFiYXNlQmFja2VuZExldmVsREIoKQogewogfQogCi1QYXNzUmVmUHRyPElEQkJhY2tp
bmdTdG9yZUxldmVsREI+IElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmJhY2tpbmdTdG9yZSgp
IGNvbnN0CitJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIElEQkRhdGFiYXNlQmFja2VuZExldmVs
REI6OmJhY2tpbmdTdG9yZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fYmFja2luZ1N0b3JlOwor
ICAgIHJldHVybiBtX2JhY2tpbmdTdG9yZS5nZXQoKTsKIH0KIAogdm9pZCBJREJEYXRhYmFzZUJh
Y2tlbmRMZXZlbERCOjpjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRo
JiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpCkBAIC0yNDYsNyArMjQ2LDcgQEAgdm9pZCBJ
REJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpzZXRJbmRleEtleXMoaW50NjRfdCB0cmFuc2FjdGlv
bklkLCBpbnQ2NF90IG9iamUKICAgICBBU1NFUlQodHJhbnNhY3Rpb24tPm1vZGUoKSA9PSBJbmRl
eGVkREI6OlRyYW5zYWN0aW9uVmVyc2lvbkNoYW5nZSk7CiAKICAgICBSZWZQdHI8SURCS2V5PiBw
cmltYXJ5S2V5ID0gcHJwUHJpbWFyeUtleTsKLSAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2
ZWxEQj4gc3RvcmUgPSBiYWNraW5nU3RvcmUoKTsKKyAgICBSZWZQdHI8SURCQmFja2luZ1N0b3Jl
SW50ZXJmYWNlPiBzdG9yZSA9IGJhY2tpbmdTdG9yZSgpOwogICAgIC8vIEZJWE1FOiBUaGlzIG1l
dGhvZCBjb3VsZCBiZSBhc3luY2hyb25vdXMsIGJ1dCB3ZSBuZWVkIHRvIGV2YWx1YXRlIGlmIGl0
J3Mgd29ydGggdGhlIGV4dHJhIGNvbXBsZXhpdHkuCiAgICAgSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6UmVjb3JkSWRlbnRpZmllciByZWNvcmRJZGVudGlmaWVyOwogICAgIGJvb2wgZm91bmQgPSBm
YWxzZTsKQEAgLTQyNiw3ICs0MjYsOCBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6
OnByb2Nlc3NQZW5kaW5nQ2FsbHMoKQogCiB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6
OmNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVj
dFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKQogewotICAgIFJlZlB0cjxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRMZXZlbERCPiB0cmFuc2FjdGlvbiA9IElEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREI6OmNyZWF0ZShtX2JhY2tpbmdTdG9yZS5nZXQoKSwgdHJhbnNhY3Rpb25JZCwgY2FsbGJh
Y2tzLCBvYmplY3RTdG9yZUlkcywgc3RhdGljX2Nhc3Q8SW5kZXhlZERCOjpUcmFuc2FjdGlvbk1v
ZGU+KG1vZGUpLCB0aGlzKTsKKyAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlPiB0cmFuc2FjdGlvbiA9IG1fZmFjdG9yeS0+Y3JlYXRlVHJhbnNhY3Rpb25CYWNrZW5kKHRo
aXMsIHRyYW5zYWN0aW9uSWQsIGNhbGxiYWNrcywgb2JqZWN0U3RvcmVJZHMsIHN0YXRpY19jYXN0
PEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlPihtb2RlKSk7CisKICAgICBBU1NFUlQoIW1fdHJh
bnNhY3Rpb25zLmNvbnRhaW5zKHRyYW5zYWN0aW9uSWQpKTsKICAgICBtX3RyYW5zYWN0aW9ucy5h
ZGQodHJhbnNhY3Rpb25JZCwgdHJhbnNhY3Rpb24uZ2V0KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJEYXRhYmFzZUJhY2tlbmRM
ZXZlbERCLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkRh
dGFiYXNlQmFja2VuZExldmVsREIuaAppbmRleCA3NjJjN2QxLi40NDFiOTMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkRhdGFiYXNlQmFj
a2VuZExldmVsREIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZl
bGRiL0lEQkRhdGFiYXNlQmFja2VuZExldmVsREIuaApAQCAtMzcsNyArMzcsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIElEQkJhY2tpbmdTdG9yZUxldmVsREI7CitjbGFzcyBJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U7CiBjbGFzcyBJREJEYXRhYmFzZTsKIGNsYXNzIElEQkZh
Y3RvcnlCYWNrZW5kSW50ZXJmYWNlOwogY2xhc3MgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlOwpAQCAtNDUsMTAgKzQ1LDEwIEBAIGNsYXNzIElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3JM
ZXZlbERCOwogCiBjbGFzcyBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCIDogcHVibGljIElEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgSURC
QmFja2luZ1N0b3JlTGV2ZWxEQiogZGF0YWJhc2UsIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNl
KiwgY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgSURCRmFjdG9yeUJhY2tlbmRJ
bnRlcmZhY2UqLCBjb25zdCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIpOwogICAgIHZpcnR1YWwg
fklEQkRhdGFiYXNlQmFja2VuZExldmVsREIoKTsKIAotICAgIFBhc3NSZWZQdHI8SURCQmFja2lu
Z1N0b3JlTGV2ZWxEQj4gYmFja2luZ1N0b3JlKCkgY29uc3Q7CisgICAgSURCQmFja2luZ1N0b3Jl
SW50ZXJmYWNlKiBiYWNraW5nU3RvcmUoKSBjb25zdDsKIAogICAgIHN0YXRpYyBjb25zdCBpbnQ2
NF90IEludmFsaWRJZCA9IDA7CiAgICAgaW50NjRfdCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0
YWRhdGEuaWQ7IH0KQEAgLTkzLDcgKzkzLDcgQEAgcHVibGljOgogICAgIGNsYXNzIFZlcnNpb25D
aGFuZ2VBYm9ydE9wZXJhdGlvbjsKIAogcHJpdmF0ZToKLSAgICBJREJEYXRhYmFzZUJhY2tlbmRM
ZXZlbERCKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiogZGF0YWJh
c2UsIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiwgY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVu
dGlmaWVyKTsKKyAgICBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCKGNvbnN0IFN0cmluZyYgbmFt
ZSwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKiBiYWNraW5nU3RvcmUsIElEQkZhY3RvcnlCYWNr
ZW5kSW50ZXJmYWNlKiwgY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKTsKIAogICAgIGJv
b2wgb3BlbkludGVybmFsKCk7CiAgICAgdm9pZCBydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rp
b24oUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJh
Y2tzPiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pOwpA
QCAtMTAzLDcgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0RlbGV0ZURhdGFiYXNlQmxv
Y2tlZCgpOwogICAgIHZvaWQgZGVsZXRlRGF0YWJhc2VGaW5hbChQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4pOwogCi0gICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+IG1fYmFja2luZ1N0
b3JlOworICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U+IG1fYmFja2luZ1N0b3Jl
OwogICAgIElEQkRhdGFiYXNlTWV0YWRhdGEgbV9tZXRhZGF0YTsKIAogICAgIFN0cmluZyBtX2lk
ZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9s
ZXZlbGRiL0lEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExldmVsREIuaAppbmRleCBmZjA5
ZDNmLi43YTMzMGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9sZXZlbGRiL0lEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRmFjdG9yeUJhY2tlbmRMZXZlbERCLmgKQEAg
LTU4LDEwICs1OCwxMyBAQCBwdWJsaWM6CiAgICAgLy8gTm90aWZpY2F0aW9ucyBmcm9tIHdlYWsg
cG9pbnRlcnMuCiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUlEQkRhdGFiYXNlQmFja2VuZChjb25z
dCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIpIE9WRVJSSURFIEZJTkFMOwogCi0gICAgdmlydHVh
bCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmlu
ZyYgZGF0YURpcik7Ci0gICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBp
bnQ2NF90IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFE
aXIpOworICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwg
dm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90IHRy
YW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSBPVkVSUklERSBGSU5BTDsKKworICAg
IHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpIE9WRVJSSURFIEZJTkFMOworCisg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3Jl
YXRlVHJhbnNhY3Rpb25CYWNrZW5kKElEQkRhdGFiYXNlQmFja2VuZExldmVsREIqLCBpbnQ2NF90
IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBjb25zdCBW
ZWN0b3I8aW50NjRfdD4mLCBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSkgT1ZFUlJJREUgRklO
QUw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1l
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKIAogcHJvdGVj
dGVkOgogICAgIElEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRM
ZXZlbERCLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURC
T2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5jcHAKaW5kZXggY2RhZjE0OS4uNDI0MDViMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmpl
Y3RTdG9yZUJhY2tlbmRMZXZlbERCLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREIuY3BwCkBAIC00NCw3
ICs0NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBJREJPYmplY3RTdG9yZUJh
Y2tlbmRMZXZlbERCOjpJbmRleFdyaXRlcjo6dmVyaWZ5SW5kZXhLZXlzKElEQkJhY2tpbmdTdG9y
ZUxldmVsREImIGJhY2tpbmdTdG9yZSwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2Fj
dGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBpbnQ2NF90IGluZGV4SWQsIGJvb2wmIGNhbkFkZEtleXMsIGNvbnN0IElEQktleSogcHJp
bWFyeUtleSwgU3RyaW5nKiBlcnJvck1lc3NhZ2UpIGNvbnN0Citib29sIElEQk9iamVjdFN0b3Jl
QmFja2VuZExldmVsREI6OkluZGV4V3JpdGVyOjp2ZXJpZnlJbmRleEtleXMoSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlJiBiYWNraW5nU3RvcmUsIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJh
bnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBib29sJiBjYW5BZGRLZXlzLCBjb25zdCBJREJLZXkq
IHByaW1hcnlLZXksIFN0cmluZyogZXJyb3JNZXNzYWdlKSBjb25zdAogewogICAgIGNhbkFkZEtl
eXMgPSBmYWxzZTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1faW5kZXhLZXlzLnNpemUo
KTsgKytpKSB7CkBAIC02MSw3ICs2MSw3IEBAIGJvb2wgSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2
ZWxEQjo6SW5kZXhXcml0ZXI6OnZlcmlmeUluZGV4S2V5cyhJREJCYWNraW5nU3RvcmVMCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQjo6SW5k
ZXhXcml0ZXI6OndyaXRlSW5kZXhLZXlzKGNvbnN0IElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlJl
Y29yZElkZW50aWZpZXImIHJlY29yZElkZW50aWZpZXIsIElEQkJhY2tpbmdTdG9yZUxldmVsREIm
IGJhY2tpbmdTdG9yZSwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJh
bnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSBjb25z
dAordm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpJbmRleFdyaXRlcjo6d3JpdGVJ
bmRleEtleXMoY29uc3QgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6UmVjb3JkSWRlbnRpZmllciYg
cmVjb3JkSWRlbnRpZmllciwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlJiBiYWNraW5nU3RvcmUs
IElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkgY29uc3QKIHsKICAgICBpbnQ2
NF90IGluZGV4SWQgPSBtX2luZGV4TWV0YWRhdGEuaWQ7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBtX2luZGV4S2V5cy5zaXplKCk7ICsraSkgewpAQCAtNzEsNyArNzEsNyBAQCB2b2lkIElE
Qk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6OkluZGV4V3JpdGVyOjp3cml0ZUluZGV4S2V5cyhj
b25zdCBJREJCYWNraW5nUwogICAgIH0KIH0KIAotYm9vbCBJREJPYmplY3RTdG9yZUJhY2tlbmRM
ZXZlbERCOjpJbmRleFdyaXRlcjo6YWRkaW5nS2V5QWxsb3dlZChJREJCYWNraW5nU3RvcmVMZXZl
bERCJiBiYWNraW5nU3RvcmUsIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24q
IHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
aW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkqIGluZGV4S2V5LCBjb25zdCBJREJLZXkqIHBy
aW1hcnlLZXksIGJvb2wmIGFsbG93ZWQpIGNvbnN0Citib29sIElEQk9iamVjdFN0b3JlQmFja2Vu
ZExldmVsREI6OkluZGV4V3JpdGVyOjphZGRpbmdLZXlBbGxvd2VkKElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZSYgYmFja2luZ1N0b3JlLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0
aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5KiBpbmRleEtleSwgY29uc3QgSURCS2V5
KiBwcmltYXJ5S2V5LCBib29sJiBhbGxvd2VkKSBjb25zdAogewogICAgIGFsbG93ZWQgPSBmYWxz
ZTsKICAgICBpZiAoIW1faW5kZXhNZXRhZGF0YS51bmlxdWUpIHsKQEAgLTg5LDcgKzg5LDcgQEAg
Ym9vbCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpJbmRleFdyaXRlcjo6YWRkaW5nS2V5
QWxsb3dlZChJREJCYWNraW5nU3RvcmUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBJREJP
YmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjptYWtlSW5kZXhXcml0ZXJzKFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3Jl
TGV2ZWxEQiogYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVj
dFN0b3JlTWV0YWRhdGEmIG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtl
eSwgYm9vbCBrZXlXYXNHZW5lcmF0ZWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMs
IGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4mIGlu
ZGV4S2V5cywgVmVjdG9yPE93blB0cjxJbmRleFdyaXRlcj4+KiBpbmRleFdyaXRlcnMsIFN0cmlu
ZyogZXJyb3JNZXNzYWdlLCBib29sJiBjb21wbGV0ZWQpCitib29sIElEQk9iamVjdFN0b3JlQmFj
a2VuZExldmVsREI6Om1ha2VJbmRleFdyaXRlcnMoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJh
Y2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFk
YXRhJiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIGJvb2wga2V5
V2FzR2VuZXJhdGVkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0
b3I8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXM+JiBpbmRleEtleXMsIFZl
Y3RvcjxPd25QdHI8SW5kZXhXcml0ZXI+PiogaW5kZXhXcml0ZXJzLCBTdHJpbmcqIGVycm9yTWVz
c2FnZSwgYm9vbCYgY29tcGxldGVkKQogewogICAgIEFTU0VSVChpbmRleElkcy5zaXplKCkgPT0g
aW5kZXhLZXlzLnNpemUoKSk7CiAgICAgY29tcGxldGVkID0gZmFsc2U7CkBAIC0xMjIsNyArMTIy
LDcgQEAgYm9vbCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjptYWtlSW5kZXhXcml0ZXJz
KFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUGFz
c1JlZlB0cjxJREJLZXk+IElEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6OmdlbmVyYXRlS2V5
KFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4gYmFja2luZ1N0b3JlLCBQYXNzUmVm
UHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+IHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRh
dGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkKK1Bhc3NSZWZQdHI8SURCS2V5PiBJREJP
YmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpnZW5lcmF0ZUtleShQYXNzUmVmUHRyPElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZT4gYmFja2luZ1N0b3JlLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZExldmVsREI+IHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCkKIHsKICAgICBjb25zdCBpbnQ2NF90IG1heEdlbmVyYXRvclZhbHVlID0g
OTAwNzE5OTI1NDc0MDk5MkxMOyAvLyBNYXhpbXVtIGludGVnZXIgc3RvcmFibGUgYXMgRUNNQVNj
cmlwdCBudW1iZXIuCiAgICAgaW50NjRfdCBjdXJyZW50TnVtYmVyOwpAQCAtMTM3LDcgKzEzNyw3
IEBAIFBhc3NSZWZQdHI8SURCS2V5PiBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpnZW5l
cmF0ZUtleShQYXNzUmVmUHRyPElEQkJhY2tpCiAgICAgcmV0dXJuIElEQktleTo6Y3JlYXRlTnVt
YmVyKGN1cnJlbnROdW1iZXIpOwogfQogCi1ib29sIElEQk9iamVjdFN0b3JlQmFja2VuZExldmVs
REI6OnVwZGF0ZUtleUdlbmVyYXRvcihQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+
IGJhY2tpbmdTdG9yZSwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiB0
cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNv
bnN0IElEQktleSoga2V5LCBib29sIGNoZWNrQ3VycmVudCkKK2Jvb2wgSURCT2JqZWN0U3RvcmVC
YWNrZW5kTGV2ZWxEQjo6dXBkYXRlS2V5R2VuZXJhdG9yKFBhc3NSZWZQdHI8SURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlPiBiYWNraW5nU3RvcmUsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQj4gdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkLCBjb25zdCBJREJLZXkqIGtleSwgYm9vbCBjaGVja0N1cnJlbnQpCiB7CiAgICAg
QVNTRVJUKGtleSAmJiBrZXktPnR5cGUoKSA9PSBJREJLZXk6Ok51bWJlclR5cGUpOwogICAgIHJl
dHVybiBiYWNraW5nU3RvcmUtPm1heWJlVXBkYXRlS2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcih0
cmFuc2FjdGlvbi0+YmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSwgZGF0YWJhc2VJZCwgb2JqZWN0
U3RvcmVJZCwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oZmxvb3Ioa2V5LT5udW1iZXIoKSkpICsgMSwg
Y2hlY2tDdXJyZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2xldmVsZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERC
LmgKaW5kZXggZjk1YjViNC4uMmU4MmRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmplY3RTdG9y
ZUJhY2tlbmRMZXZlbERCLmgKQEAgLTU1LDIxICs1NSwyMSBAQCBuYW1lc3BhY2UgSURCT2JqZWN0
U3RvcmVCYWNrZW5kTGV2ZWxEQiB7CiAgICAgICAgICAgICAsIG1faW5kZXhLZXlzKGluZGV4S2V5
cykKICAgICAgICAgeyB9CiAKLSAgICAgICAgYm9vbCB2ZXJpZnlJbmRleEtleXMoSURCQmFja2lu
Z1N0b3JlTGV2ZWxEQiYsIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElk
LCBib29sJiBjYW5BZGRLZXlzLCBjb25zdCBJREJLZXkqIHByaW1hcnlLZXkgPSAwLCBTdHJpbmcq
IGVycm9yTWVzc2FnZSA9IDApIGNvbnN0IFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICAgICAgYm9v
bCB2ZXJpZnlJbmRleEtleXMoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlJiwgSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGJvb2wmIGNhbkFkZEtleXMsIGNvbnN0IElE
QktleSogcHJpbWFyeUtleSA9IDAsIFN0cmluZyogZXJyb3JNZXNzYWdlID0gMCkgY29uc3QgV0FS
Tl9VTlVTRURfUkVUVVJOOwogCi0gICAgICAgIHZvaWQgd3JpdGVJbmRleEtleXMoY29uc3QgSURC
QmFja2luZ1N0b3JlTGV2ZWxEQjo6UmVjb3JkSWRlbnRpZmllciYsIElEQkJhY2tpbmdTdG9yZUxl
dmVsREImLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBk
YXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIGNvbnN0OworICAgICAgICB2b2lkIHdy
aXRlSW5kZXhLZXlzKGNvbnN0IElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlJlY29yZElkZW50aWZp
ZXImLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UmLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6
OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQp
IGNvbnN0OwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgYm9vbCBhZGRpbmdLZXlBbGxvd2VkKElE
QkJhY2tpbmdTdG9yZUxldmVsREImLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0
aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3Qg
aW5kZXhJZCwgY29uc3QgSURCS2V5KiBpbmRleEtleSwgY29uc3QgSURCS2V5KiBwcmltYXJ5S2V5
LCBib29sJiBhbGxvd2VkKSBjb25zdCBXQVJOX1VOVVNFRF9SRVRVUk47CisgICAgICAgIGJvb2wg
YWRkaW5nS2V5QWxsb3dlZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UmLCBJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5KiBpbmRleEtleSwgY29u
c3QgSURCS2V5KiBwcmltYXJ5S2V5LCBib29sJiBhbGxvd2VkKSBjb25zdCBXQVJOX1VOVVNFRF9S
RVRVUk47CiAKICAgICAgICAgY29uc3QgSURCSW5kZXhNZXRhZGF0YSBtX2luZGV4TWV0YWRhdGE7
CiAgICAgICAgIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlzIG1faW5kZXhL
ZXlzOwogICAgIH07CiAKLSAgICBib29sIG1ha2VJbmRleFdyaXRlcnMoUGFzc1JlZlB0cjxJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBJREJCYWNraW5nU3RvcmVMZXZlbERCKiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiwgUGFzc1JlZlB0
cjxJREJLZXk+IHByaW1hcnlLZXksIGJvb2wga2V5V2FzR2VuZXJhdGVkLCBjb25zdCBWZWN0b3I8
aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlOjpJbmRleEtleXM+JiwgVmVjdG9yPE93blB0cjxJbmRleFdyaXRlcj4+KiBpbmRleFdyaXRl
cnMsIFN0cmluZyogZXJyb3JNZXNzYWdlLCBib29sJiBjb21wbGV0ZWQpIFdBUk5fVU5VU0VEX1JF
VFVSTjsKKyAgICBib29sIG1ha2VJbmRleFdyaXRlcnMoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+LCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqLCBpbnQ2NF90IGRh
dGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmLCBQYXNzUmVmUHRyPElEQktl
eT4gcHJpbWFyeUtleSwgYm9vbCBrZXlXYXNHZW5lcmF0ZWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90
PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6Oklu
ZGV4S2V5cz4mLCBWZWN0b3I8T3duUHRyPEluZGV4V3JpdGVyPj4qIGluZGV4V3JpdGVycywgU3Ry
aW5nKiBlcnJvck1lc3NhZ2UsIGJvb2wmIGNvbXBsZXRlZCkgV0FSTl9VTlVTRURfUkVUVVJOOwog
Ci0gICAgUGFzc1JlZlB0cjxJREJLZXk+IGdlbmVyYXRlS2V5KFBhc3NSZWZQdHI8SURCQmFja2lu
Z1N0b3JlTGV2ZWxEQj4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4s
IGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKTsKLSAgICBib29sIHVw
ZGF0ZUtleUdlbmVyYXRvcihQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+LCBQYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+LCBpbnQ2NF90IGRhdGFiYXNlSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5KiwgYm9vbCBjaGVja0N1cnJlbnQp
OworICAgIFBhc3NSZWZQdHI8SURCS2V5PiBnZW5lcmF0ZUtleShQYXNzUmVmUHRyPElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZT4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxE
Qj4sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKTsKKyAgICBib29s
IHVwZGF0ZUtleUdlbmVyYXRvcihQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZT4s
IFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4sIGludDY0X3QgZGF0YWJh
c2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkqLCBib29sIGNoZWNrQ3Vy
cmVudCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJU
cmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCLmNwcAppbmRleCBhM2EzYmNmLi5lNGVhNGM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5z
YWN0aW9uQmFja2VuZExldmVsREIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQi5jcHAKQEAgLTQwLDI3
ICs0MCwyNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8SURCVHJhbnNh
Y3Rpb25CYWNrZW5kTGV2ZWxEQj4gSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6Y3JlYXRl
KElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBpZCwgUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8aW50NjRf
dD4mIG9iamVjdFN0b3JlSWRzLCBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSBtb2RlLCBJREJE
YXRhYmFzZUJhY2tlbmRMZXZlbERCKiBkYXRhYmFzZSkKK1Bhc3NSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kTGV2ZWxEQj4gSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6Y3JlYXRlKElE
QkRhdGFiYXNlQmFja2VuZExldmVsREIqIGRhdGFiYXNlQmFja2VuZCwgaW50NjRfdCBpZCwgUGFz
c1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8aW50
NjRfdD4mIG9iamVjdFN0b3JlSWRzLCBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSBtb2RlKQog
ewogICAgIEhhc2hTZXQ8aW50NjRfdD4gb2JqZWN0U3RvcmVIYXNoU2V0OwogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgb2JqZWN0U3RvcmVJZHMuc2l6ZSgpOyArK2kpCiAgICAgICAgIG9iamVj
dFN0b3JlSGFzaFNldC5hZGQob2JqZWN0U3RvcmVJZHNbaV0pOwogCi0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKGJhY2tpbmdTdG9yZSwgaWQsIGNh
bGxiYWNrcywgb2JqZWN0U3RvcmVIYXNoU2V0LCBtb2RlLCBkYXRhYmFzZSkpOworICAgIHJldHVy
biBhZG9wdFJlZihuZXcgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQihkYXRhYmFzZUJhY2tl
bmQsIGlkLCBjYWxsYmFja3MsIG9iamVjdFN0b3JlSGFzaFNldCwgbW9kZSkpOwogfQogCi1JREJU
cmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKElE
QkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBpZCwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBIYXNoU2V0PGludDY0X3Q+
JiBvYmplY3RTdG9yZUlkcywgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUgbW9kZSwgSURCRGF0
YWJhc2VCYWNrZW5kTGV2ZWxEQiogZGF0YWJhc2UpCitJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZl
bERCOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKElEQkRhdGFiYXNlQmFja2VuZExldmVs
REIqIGRhdGFiYXNlQmFja2VuZCwgaW50NjRfdCBpZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNh
bGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBIYXNoU2V0PGludDY0X3Q+JiBvYmplY3RTdG9yZUlk
cywgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUgbW9kZSkKICAgICA6IElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZShpZCkKICAgICAsIG1fb2JqZWN0U3RvcmVJZHMob2JqZWN0U3RvcmVJ
ZHMpCiAgICAgLCBtX21vZGUobW9kZSkKICAgICAsIG1fc3RhdGUoVW51c2VkKQogICAgICwgbV9j
b21taXRQZW5kaW5nKGZhbHNlKQogICAgICwgbV9jYWxsYmFja3MoY2FsbGJhY2tzKQotICAgICwg
bV9kYXRhYmFzZShkYXRhYmFzZSkKLSAgICAsIG1fdHJhbnNhY3Rpb24oZGF0YWJhc2UtPmJhY2tp
bmdTdG9yZSgpLmdldCgpKQorICAgICwgbV9kYXRhYmFzZShkYXRhYmFzZUJhY2tlbmQpCisgICAg
LCBtX3RyYW5zYWN0aW9uKGRhdGFiYXNlQmFja2VuZC0+YmFja2luZ1N0b3JlKCkpCiAgICAgLCBt
X3Rhc2tUaW1lcih0aGlzLCAmSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6dGFza1RpbWVy
RmlyZWQpCiAgICAgLCBtX3BlbmRpbmdQcmVlbXB0aXZlRXZlbnRzKDApCi0gICAgLCBtX2JhY2tp
bmdTdG9yZShiYWNraW5nU3RvcmUpCisgICAgLCBtX2JhY2tpbmdTdG9yZShkYXRhYmFzZUJhY2tl
bmQtPmJhY2tpbmdTdG9yZSgpKQogewogICAgIC8vIFdlIHBhc3MgYSByZWZlcmVuY2Ugb2YgdGhp
cyBvYmplY3QgYmVmb3JlIGl0IGNhbiBiZSBhZG9wdGVkLgogICAgIHJlbGF4QWRvcHRpb25SZXF1
aXJlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
bGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuaApp
bmRleCBhM2Y2YzFkLi4yMmEzZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFj
a2VuZExldmVsREIuaApAQCAtNDYsNyArNDYsNyBAQCBjbGFzcyBJREJEYXRhYmFzZUNhbGxiYWNr
czsKIAogY2xhc3MgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiA6IHB1YmxpYyBJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+IGNyZWF0ZShJREJCYWNraW5nU3RvcmVMZXZl
bERCKiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJh
Y2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUs
IElEQkRhdGFiYXNlQmFja2VuZExldmVsREIqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJU
cmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiBjcmVhdGUoSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxE
QiosIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNr
cz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlKTsK
ICAgICB2aXJ0dWFsIH5JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKCk7CiAKICAgICB2aXJ0
dWFsIHZvaWQgY29tbWl0KCkgT1ZFUlJJREUgRklOQUw7CkBAIC04Niw3ICs4Niw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDbGVhck9wZXJhdGlvbihpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgT1ZFUlJJREUgRklOQUw7CiAgICAg
CiBwcml2YXRlOgotICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIoSURCQmFja2luZ1N0
b3JlTGV2ZWxEQiosIGludDY0X3QgaWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+
LCBjb25zdCBIYXNoU2V0PGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgSW5kZXhlZERCOjpUcmFu
c2FjdGlvbk1vZGUsIElEQkRhdGFiYXNlQmFja2VuZExldmVsREIqKTsKKyAgICBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRMZXZlbERCKElEQkRhdGFiYXNlQmFja2VuZExldmVsREIqLCBpbnQ2NF90IGlk
LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgSGFzaFNldDxpbnQ2NF90
PiYgb2JqZWN0U3RvcmVJZHMsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlKTsKIAogICAgIGVu
dW0gU3RhdGUgewogICAgICAgICBVbnVzZWQsIC8vIENyZWF0ZWQsIGJ1dCBubyB0YXNrcyB5ZXQu
CkBAIC0xMjQsNyArMTI0LDcgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hTZXQ8SURCQ3Vyc29yQmFj
a2VuZExldmVsREIqPiBtX29wZW5DdXJzb3JzOwogICAgIAotICAgIFJlZlB0cjxJREJCYWNraW5n
U3RvcmVMZXZlbERCPiBtX2JhY2tpbmdTdG9yZTsKKyAgICBSZWZQdHI8SURCQmFja2luZ1N0b3Jl
SW50ZXJmYWNlPiBtX2JhY2tpbmdTdG9yZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURC
VHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQk9wZXJhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCT3Bl
cmF0aW9ucy5jcHAKaW5kZXggOWU4ZGUwNi4uNmUxNDQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZl
bERCT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
bGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCT3BlcmF0aW9ucy5jcHAKQEAgLTg3
LDcgKzg3LDcgQEAgdm9pZCBHZXRPcGVyYXRpb246OnBlcmZvcm0oKQogICAgIGlmIChtX2tleVJh
bmdlLT5pc09ubHlLZXkoKSkKICAgICAgICAga2V5ID0gbV9rZXlSYW5nZS0+bG93ZXIoKTsKICAg
ICBlbHNlIHsKLSAgICAgICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4g
YmFja2luZ1N0b3JlQ3Vyc29yOworICAgICAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlOjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvcjsKICAgICAgICAgaWYgKG1faW5kZXhJZCA9
PSBJREJJbmRleE1ldGFkYXRhOjpJbnZhbGlkSWQpIHsKICAgICAgICAgICAgIEFTU0VSVChtX2N1
cnNvclR5cGUgIT0gSW5kZXhlZERCOjpDdXJzb3JLZXlPbmx5KTsKICAgICAgICAgICAgIC8vIE9i
amVjdFN0b3JlIFJldHJpZXZhbCBPcGVyYXRpb24KQEAgLTI2MSw3ICsyNjEsNyBAQCB2b2lkIE9w
ZW5DdXJzb3JPcGVyYXRpb246OnBlcmZvcm0oKQogICAgIGlmIChtX3Rhc2tUeXBlID09IElEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZTo6UHJlZW1wdGl2ZVRhc2spCiAgICAgICAgIG1fdHJhbnNh
Y3Rpb24tPmFkZFByZWVtcHRpdmVFdmVudCgpOwogCi0gICAgUmVmUHRyPElEQkJhY2tpbmdTdG9y
ZUxldmVsREI6OkN1cnNvcj4gYmFja2luZ1N0b3JlQ3Vyc29yOworICAgIFJlZlB0cjxJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gYmFja2luZ1N0b3JlQ3Vyc29yOwogICAgIGlmICht
X2luZGV4SWQgPT0gSURCSW5kZXhNZXRhZGF0YTo6SW52YWxpZElkKSB7CiAgICAgICAgIEFTU0VS
VChtX2N1cnNvclR5cGUgIT0gSW5kZXhlZERCOjpDdXJzb3JLZXlPbmx5KTsKICAgICAgICAgYmFj
a2luZ1N0b3JlQ3Vyc29yID0gbV9iYWNraW5nU3RvcmUtPm9wZW5PYmplY3RTdG9yZUN1cnNvciht
X3RyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBtX2RhdGFiYXNlSWQsIG1f
b2JqZWN0U3RvcmVJZCwgbV9rZXlSYW5nZS5nZXQoKSwgbV9kaXJlY3Rpb24pOwpAQCAtMjg3LDcg
KzI4Nyw3IEBAIHZvaWQgQ291bnRPcGVyYXRpb246OnBlcmZvcm0oKQogewogICAgIExPRyhTdG9y
YWdlQVBJLCAiQ291bnRPcGVyYXRpb24iKTsKICAgICB1aW50MzJfdCBjb3VudCA9IDA7Ci0gICAg
UmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gYmFja2luZ1N0b3JlQ3Vyc29y
OworICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gYmFja2luZ1N0
b3JlQ3Vyc29yOwogCiAgICAgaWYgKG1faW5kZXhJZCA9PSBJREJJbmRleE1ldGFkYXRhOjpJbnZh
bGlkSWQpCiAgICAgICAgIGJhY2tpbmdTdG9yZUN1cnNvciA9IG1fYmFja2luZ1N0b3JlLT5vcGVu
T2JqZWN0U3RvcmVLZXlDdXJzb3IobV90cmFuc2FjdGlvbi0+YmFja2luZ1N0b3JlVHJhbnNhY3Rp
b24oKSwgbV9kYXRhYmFzZUlkLCBtX29iamVjdFN0b3JlSWQsIG1fa2V5UmFuZ2UuZ2V0KCksIElu
ZGV4ZWREQjo6Q3Vyc29yTmV4dCk7CkBAIC0zMDgsNyArMzA4LDcgQEAgdm9pZCBDb3VudE9wZXJh
dGlvbjo6cGVyZm9ybSgpCiB2b2lkIERlbGV0ZVJhbmdlT3BlcmF0aW9uOjpwZXJmb3JtKCkKIHsK
ICAgICBMT0coU3RvcmFnZUFQSSwgIkRlbGV0ZVJhbmdlT3BlcmF0aW9uIik7Ci0gICAgUmVmUHRy
PElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gYmFja2luZ1N0b3JlQ3Vyc29yID0gbV9i
YWNraW5nU3RvcmUtPm9wZW5PYmplY3RTdG9yZUN1cnNvcihtX3RyYW5zYWN0aW9uLT5iYWNraW5n
U3RvcmVUcmFuc2FjdGlvbigpLCBtX2RhdGFiYXNlSWQsIG1fb2JqZWN0U3RvcmVJZCwgbV9rZXlS
YW5nZS5nZXQoKSwgSW5kZXhlZERCOjpDdXJzb3JOZXh0KTsKKyAgICBSZWZQdHI8SURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvciA9IG1fYmFja2luZ1N0
b3JlLT5vcGVuT2JqZWN0U3RvcmVDdXJzb3IobV90cmFuc2FjdGlvbi0+YmFja2luZ1N0b3JlVHJh
bnNhY3Rpb24oKSwgbV9kYXRhYmFzZUlkLCBtX29iamVjdFN0b3JlSWQsIG1fa2V5UmFuZ2UuZ2V0
KCksIEluZGV4ZWREQjo6Q3Vyc29yTmV4dCk7CiAgICAgaWYgKGJhY2tpbmdTdG9yZUN1cnNvcikg
ewogICAgICAgICBkbyB7CiAgICAgICAgICAgICBpZiAoIW1fYmFja2luZ1N0b3JlLT5kZWxldGVS
ZWNvcmQobV90cmFuc2FjdGlvbi0+YmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSwgbV9kYXRhYmFz
ZUlkLCBtX29iamVjdFN0b3JlSWQsIGJhY2tpbmdTdG9yZUN1cnNvci0+cmVjb3JkSWRlbnRpZmll
cigpKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2
ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCT3BlcmF0aW9ucy5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZl
bERCT3BlcmF0aW9ucy5oCmluZGV4IGZhYTdkZjguLmM2YjMwYTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5k
TGV2ZWxEQk9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREJPcGVyYXRpb25zLmgKQEAgLTM0
LDEzICszNCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyZWF0ZU9iamVjdFN0
b3JlT3BlcmF0aW9uIDogcHVibGljIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJh
dGlvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxE
QiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgY29u
c3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2JqZWN0U3RvcmVNZXRhZGF0YSkKKyAgICBzdGF0
aWMgUGFzc093blB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpPcGVyYXRpb24+IGNy
ZWF0ZShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlKiBiYWNraW5nU3RvcmUsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRh
dGEmIG9iamVjdFN0b3JlTWV0YWRhdGEpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IENyZWF0ZU9iamVjdFN0b3JlT3BlcmF0aW9uKHRyYW5zYWN0aW9uLCBiYWNraW5nU3RvcmUs
IG9iamVjdFN0b3JlTWV0YWRhdGEpKTsKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm0o
KSBPVkVSUklERSBGSU5BTDsKIHByaXZhdGU6Ci0gICAgQ3JlYXRlT2JqZWN0U3RvcmVPcGVyYXRp
b24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdT
dG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYg
b2JqZWN0U3RvcmVNZXRhZGF0YSkKKyAgICBDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlvbihJREJU
cmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlKiBiYWNraW5nU3RvcmUsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmIG9iamVj
dFN0b3JlTWV0YWRhdGEpCiAgICAgICAgIDogbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKICAg
ICAgICAgLCBtX2JhY2tpbmdTdG9yZShiYWNraW5nU3RvcmUpCiAgICAgICAgICwgbV9vYmplY3RT
dG9yZU1ldGFkYXRhKG9iamVjdFN0b3JlTWV0YWRhdGEpCkBAIC00OCwxOSArNDgsMTkgQEAgcHJp
dmF0ZToKICAgICB9CiAgICAgCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVs
REI+IG1fdHJhbnNhY3Rpb247Ci0gICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVs
REI+IG1fYmFja2luZ1N0b3JlOworICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRl
cmZhY2U+IG1fYmFja2luZ1N0b3JlOwogICAgIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEg
bV9vYmplY3RTdG9yZU1ldGFkYXRhOwogfTsKIAogY2xhc3MgRGVsZXRlT2JqZWN0U3RvcmVPcGVy
YXRpb24gOiBwdWJsaWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZl
bERCOjpPcGVyYXRpb24+IGNyZWF0ZShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFu
c2FjdGlvbiwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiogYmFja2luZ1N0b3JlLCBjb25zdCBJREJP
YmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZU1ldGFkYXRhKQorICAgIHN0YXRpYyBQYXNz
T3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbj4gY3JlYXRlKElE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2Jq
ZWN0U3RvcmVNZXRhZGF0YSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGVs
ZXRlT2JqZWN0U3RvcmVPcGVyYXRpb24odHJhbnNhY3Rpb24sIGJhY2tpbmdTdG9yZSwgb2JqZWN0
U3RvcmVNZXRhZGF0YSkpOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybSgpIE9WRVJS
SURFIEZJTkFMOwogcHJpdmF0ZToKLSAgICBEZWxldGVPYmplY3RTdG9yZU9wZXJhdGlvbihJREJU
cmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlTGV2
ZWxEQiogYmFja2luZ1N0b3JlLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RT
dG9yZU1ldGFkYXRhKQorICAgIERlbGV0ZU9iamVjdFN0b3JlT3BlcmF0aW9uKElEQlRyYW5zYWN0
aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2Uq
IGJhY2tpbmdTdG9yZSwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2JqZWN0U3RvcmVN
ZXRhZGF0YSkKICAgICAgICAgOiBtX3RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKQogICAgICAgICAs
IG1fYmFja2luZ1N0b3JlKGJhY2tpbmdTdG9yZSkKICAgICAgICAgLCBtX29iamVjdFN0b3JlTWV0
YWRhdGEob2JqZWN0U3RvcmVNZXRhZGF0YSkKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAg
ICB9CiAKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gbV90cmFuc2Fj
dGlvbjsKLSAgICBjb25zdCBSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4gbV9iYWNraW5n
U3RvcmU7CisgICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZT4gbV9iYWNr
aW5nU3RvcmU7CiAgICAgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSBtX29iamVjdFN0b3Jl
TWV0YWRhdGE7CiB9OwogCkBAIC0xNTQsMTMgKzE1NCwxMyBAQCBwcml2YXRlOgogCiBjbGFzcyBD
cmVhdGVJbmRleE9wZXJhdGlvbiA6IHB1YmxpYyBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERC
OjpPcGVyYXRpb24gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPElEQlRyYW5zYWN0
aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbj4gY3JlYXRlKElEQlRyYW5zYWN0aW9uQmFja2Vu
ZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVMZXZlbERCKiBiYWNraW5nU3Rv
cmUsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCSW5kZXhNZXRhZGF0YSYgaW5kZXhN
ZXRhZGF0YSkKKyAgICBzdGF0aWMgUGFzc093blB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZl
bERCOjpPcGVyYXRpb24+IGNyZWF0ZShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFu
c2FjdGlvbiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKiBiYWNraW5nU3RvcmUsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgY29uc3QgSURCSW5kZXhNZXRhZGF0YSYgaW5kZXhNZXRhZGF0YSkKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ3JlYXRlSW5kZXhPcGVyYXRpb24odHJh
bnNhY3Rpb24sIGJhY2tpbmdTdG9yZSwgb2JqZWN0U3RvcmVJZCwgaW5kZXhNZXRhZGF0YSkpOwog
ICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybSgpIE9WRVJSSURFIEZJTkFMOwogcHJpdmF0
ZToKLSAgICBDcmVhdGVJbmRleE9wZXJhdGlvbihJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERC
KiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiogYmFja2luZ1N0b3JlLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQkluZGV4TWV0YWRhdGEmIGluZGV4TWV0YWRhdGEp
CisgICAgQ3JlYXRlSW5kZXhPcGVyYXRpb24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiog
dHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2luZ1N0b3JlLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQkluZGV4TWV0YWRhdGEmIGluZGV4TWV0YWRhdGEp
CiAgICAgICAgIDogbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKICAgICAgICAgLCBtX2JhY2tp
bmdTdG9yZShiYWNraW5nU3RvcmUpCiAgICAgICAgICwgbV9vYmplY3RTdG9yZUlkKG9iamVjdFN0
b3JlSWQpCkBAIC0xNjksNyArMTY5LDcgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICBSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gbV90cmFuc2FjdGlvbjsKLSAgICBjb25zdCBS
ZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4gbV9iYWNraW5nU3RvcmU7CisgICAgY29uc3Qg
UmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZT4gbV9iYWNraW5nU3RvcmU7CiAgICAgY29u
c3QgaW50NjRfdCBtX29iamVjdFN0b3JlSWQ7CiAgICAgY29uc3QgSURCSW5kZXhNZXRhZGF0YSBt
X2luZGV4TWV0YWRhdGE7CiB9OwpAQCAtMTk2LDEzICsxOTYsMTMgQEAgcHJpdmF0ZToKIAogY2xh
c3MgRGVsZXRlSW5kZXhPcGVyYXRpb24gOiBwdWJsaWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2
ZWxEQjo6T3BlcmF0aW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJREJUcmFu
c2FjdGlvbkJhY2tlbmRMZXZlbERCOjpPcGVyYXRpb24+IGNyZWF0ZShJREJUcmFuc2FjdGlvbkJh
Y2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiogYmFja2lu
Z1N0b3JlLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQkluZGV4TWV0YWRhdGEmIGlu
ZGV4TWV0YWRhdGEpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5k
TGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiog
dHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2luZ1N0b3JlLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQkluZGV4TWV0YWRhdGEmIGluZGV4TWV0YWRhdGEp
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERlbGV0ZUluZGV4T3BlcmF0aW9u
KHRyYW5zYWN0aW9uLCBiYWNraW5nU3RvcmUsIG9iamVjdFN0b3JlSWQsIGluZGV4TWV0YWRhdGEp
KTsKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm0oKSBPVkVSUklERSBGSU5BTDsKIHBy
aXZhdGU6Ci0gICAgRGVsZXRlSW5kZXhPcGVyYXRpb24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2
ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJJbmRleE1ldGFkYXRhJiBpbmRleE1ldGFk
YXRhKQorICAgIERlbGV0ZUluZGV4T3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVs
REIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJJbmRleE1ldGFkYXRhJiBpbmRleE1ldGFk
YXRhKQogICAgICAgICA6IG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCiAgICAgICAgICwgbV9i
YWNraW5nU3RvcmUoYmFja2luZ1N0b3JlKQogICAgICAgICAsIG1fb2JqZWN0U3RvcmVJZChvYmpl
Y3RTdG9yZUlkKQpAQCAtMjExLDcgKzIxMSw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgUmVm
UHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+IG1fdHJhbnNhY3Rpb247Ci0gICAgY29u
c3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+IG1fYmFja2luZ1N0b3JlOworICAgIGNv
bnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U+IG1fYmFja2luZ1N0b3JlOwogICAg
IGNvbnN0IGludDY0X3QgbV9vYmplY3RTdG9yZUlkOwogICAgIGNvbnN0IElEQkluZGV4TWV0YWRh
dGEgbV9pbmRleE1ldGFkYXRhOwogfTsKQEAgLTIzOCwxMyArMjM4LDEzIEBAIHByaXZhdGU6CiAK
IGNsYXNzIEdldE9wZXJhdGlvbiA6IHB1YmxpYyBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERC
OjpPcGVyYXRpb24gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPElEQlRyYW5zYWN0
aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbj4gY3JlYXRlKElEQlRyYW5zYWN0aW9uQmFja2Vu
ZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVMZXZlbERCKiBiYWNraW5nU3Rv
cmUsIGNvbnN0IElEQkRhdGFiYXNlTWV0YWRhdGEmIG1ldGFkYXRhLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2Us
IEluZGV4ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4gY2FsbGJhY2tzKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2Vu
ZExldmVsREI6Ok9wZXJhdGlvbj4gY3JlYXRlKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIq
IHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgY29u
c3QgSURCRGF0YWJhc2VNZXRhZGF0YSYgbWV0YWRhdGEsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
aW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgSW5kZXhl
ZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxs
YmFja3MpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEdldE9wZXJhdGlvbih0
cmFuc2FjdGlvbiwgYmFja2luZ1N0b3JlLCBtZXRhZGF0YSwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJ
ZCwga2V5UmFuZ2UsIGN1cnNvclR5cGUsIGNhbGxiYWNrcykpOwogICAgIH0KICAgICB2aXJ0dWFs
IHZvaWQgcGVyZm9ybSgpIE9WRVJSSURFIEZJTkFMOwogcHJpdmF0ZToKLSAgICBHZXRPcGVyYXRp
b24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdT
dG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYgbWV0
YWRhdGEsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRy
PElEQktleVJhbmdlPiBrZXlSYW5nZSwgSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUs
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCisgICAgR2V0T3BlcmF0aW9uKElE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYgbWV0YWRh
dGEsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElE
QktleVJhbmdlPiBrZXlSYW5nZSwgSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiAgICAgICAgIDogbV90cmFuc2FjdGlv
bih0cmFuc2FjdGlvbikKICAgICAgICAgLCBtX2JhY2tpbmdTdG9yZShiYWNraW5nU3RvcmUpCiAg
ICAgICAgICwgbV9kYXRhYmFzZUlkKG1ldGFkYXRhLmlkKQpAQCAtMjYxLDcgKzI2MSw3IEBAIHBy
aXZhdGU6CiAgICAgfQogCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+
IG1fdHJhbnNhY3Rpb247Ci0gICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+
IG1fYmFja2luZ1N0b3JlOworICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U+IG1fYmFja2luZ1N0b3JlOwogICAgIGNvbnN0IGludDY0X3QgbV9kYXRhYmFzZUlkOwogICAg
IGNvbnN0IGludDY0X3QgbV9vYmplY3RTdG9yZUlkOwogICAgIGNvbnN0IGludDY0X3QgbV9pbmRl
eElkOwpAQCAtMjc0LDEzICsyNzQsMTMgQEAgcHJpdmF0ZToKIAogY2xhc3MgUHV0T3BlcmF0aW9u
IDogcHVibGljIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6
T3BlcmF0aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rp
b24sIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0
cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBJREJEYXRhYmFz
ZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+IGNhbGxiYWNrcywgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVj
dG9yPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJh
dGlvbj4gY3JlYXRlKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlk
LCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxT
aGFyZWRCdWZmZXI+IHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
IGNhbGxiYWNrcywgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9y
PElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQdXRPcGVyYXRpb24odHJhbnNhY3Rpb24s
IGJhY2tpbmdTdG9yZSwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmUsIHZhbHVlLCBrZXksIHB1dE1v
ZGUsIGNhbGxiYWNrcywgaW5kZXhJZHMsIGluZGV4S2V5cykpOwogICAgIH0KICAgICB2aXJ0dWFs
IHZvaWQgcGVyZm9ybSgpIE9WRVJSSURFIEZJTkFMOwogcHJpdmF0ZToKLSAgICBQdXRPcGVyYXRp
b24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdT
dG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJP
YmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
JiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlOjpQdXRNb2RlIHB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3Ms
IGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJREJEYXRhYmFz
ZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4mIGluZGV4S2V5cykKKyAgICBQdXRPcGVyYXRp
b24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZSogYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElE
Qk9iamVjdFN0b3JlTWV0YWRhdGEmIG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4mIHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBJREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2U6OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNr
cywgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPElEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQogICAgICAgICA6IG1f
dHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCiAgICAgICAgICwgbV9iYWNraW5nU3RvcmUoYmFja2lu
Z1N0b3JlKQogICAgICAgICAsIG1fZGF0YWJhc2VJZChkYXRhYmFzZUlkKQpAQCAtMjk1LDcgKzI5
NSw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2Vu
ZExldmVsREI+IG1fdHJhbnNhY3Rpb247Ci0gICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9y
ZUxldmVsREI+IG1fYmFja2luZ1N0b3JlOworICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U+IG1fYmFja2luZ1N0b3JlOwogICAgIGNvbnN0IGludDY0X3QgbV9kYXRhYmFz
ZUlkOwogICAgIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEgbV9vYmplY3RTdG9yZTsKICAg
ICBjb25zdCBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX3ZhbHVlOwpAQCAtMzI2LDEzICszMjYsMTMg
QEAgcHJpdmF0ZToKIAogY2xhc3MgT3BlbkN1cnNvck9wZXJhdGlvbiA6IHB1YmxpYyBJREJUcmFu
c2FjdGlvbkJhY2tlbmRMZXZlbERCOjpPcGVyYXRpb24gewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzT3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbj4gY3JlYXRl
KElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3Rv
cmVMZXZlbERCKiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJh
bmdlLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24sIEluZGV4ZWREQjo6Q3Vy
c29yVHlwZSBjdXJzb3JUeXBlLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlRhc2tUeXBl
IHRhc2tUeXBlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQorICAgIHN0YXRp
YyBQYXNzT3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbj4gY3Jl
YXRlKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4g
a2V5UmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlvbiwgSW5kZXhlZERC
OjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6VGFz
a1R5cGUgdGFza1R5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiAgICAg
ewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IE9wZW5DdXJzb3JPcGVyYXRpb24odHJhbnNh
Y3Rpb24sIGJhY2tpbmdTdG9yZSwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwg
a2V5UmFuZ2UsIGRpcmVjdGlvbiwgY3Vyc29yVHlwZSwgdGFza1R5cGUsIGNhbGxiYWNrcykpOwog
ICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybSgpIE9WRVJSSURFIEZJTkFMOwogcHJpdmF0
ZToKLSAgICBPcGVuQ3Vyc29yT3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIq
IHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVMZXZlbERCKiBiYWNraW5nU3RvcmUsIGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlv
biBkaXJlY3Rpb24sIEluZGV4ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBJREJEYXRhYmFz
ZUJhY2tlbmRJbnRlcmZhY2U6OlRhc2tUeXBlIHRhc2tUeXBlLCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4gY2FsbGJhY2tzKQorICAgIE9wZW5DdXJzb3JPcGVyYXRpb24oSURCVHJhbnNhY3Rpb25C
YWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFj
a2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50
NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgSW5kZXhlZERC
OjpDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uLCBJbmRleGVkREI6OkN1cnNvclR5cGUgY3Vyc29y
VHlwZSwgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSB0YXNrVHlwZSwgUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKICAgICAgICAgOiBtX3RyYW5zYWN0aW9u
KHRyYW5zYWN0aW9uKQogICAgICAgICAsIG1fYmFja2luZ1N0b3JlKGJhY2tpbmdTdG9yZSkKICAg
ICAgICAgLCBtX2RhdGFiYXNlSWQoZGF0YWJhc2VJZCkKQEAgLTM0Nyw3ICszNDcsNyBAQCBwcml2
YXRlOgogICAgIH0KIAogICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiBt
X3RyYW5zYWN0aW9uOwotICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCPiBt
X2JhY2tpbmdTdG9yZTsKKyAgICBjb25zdCBSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
PiBtX2JhY2tpbmdTdG9yZTsKICAgICBjb25zdCBpbnQ2NF90IG1fZGF0YWJhc2VJZDsKICAgICBj
b25zdCBpbnQ2NF90IG1fb2JqZWN0U3RvcmVJZDsKICAgICBjb25zdCBpbnQ2NF90IG1faW5kZXhJ
ZDsKQEAgLTM2MCwxMyArMzYwLDEzIEBAIHByaXZhdGU6CiAKIGNsYXNzIENvdW50T3BlcmF0aW9u
IDogcHVibGljIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6
T3BlcmF0aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rp
b24sIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJ
REJLZXlSYW5nZT4ga2V5UmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3Mp
CisgICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3Bl
cmF0aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24s
IElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElE
QktleVJhbmdlPiBrZXlSYW5nZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ291bnRPcGVyYXRpb24odHJhbnNh
Y3Rpb24sIGJhY2tpbmdTdG9yZSwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwg
a2V5UmFuZ2UsIGNhbGxiYWNrcykpOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybSgp
IE9WRVJSSURFIEZJTkFMOwogcHJpdmF0ZToKLSAgICBDb3VudE9wZXJhdGlvbihJREJUcmFuc2Fj
dGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiog
YmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
aW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKKyAgICBDb3VudE9wZXJhdGlvbihJREJUcmFu
c2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlKiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQogICAgICAgICA6IG1fdHJhbnNhY3Rp
b24odHJhbnNhY3Rpb24pCiAgICAgICAgICwgbV9iYWNraW5nU3RvcmUoYmFja2luZ1N0b3JlKQog
ICAgICAgICAsIG1fZGF0YWJhc2VJZChkYXRhYmFzZUlkKQpAQCAtMzc4LDcgKzM3OCw3IEBAIHBy
aXZhdGU6CiAgICAgfQogCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+
IG1fdHJhbnNhY3Rpb247Ci0gICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+
IG1fYmFja2luZ1N0b3JlOworICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U+IG1fYmFja2luZ1N0b3JlOwogICAgIGNvbnN0IGludDY0X3QgbV9kYXRhYmFzZUlkOwogICAg
IGNvbnN0IGludDY0X3QgbV9vYmplY3RTdG9yZUlkOwogICAgIGNvbnN0IGludDY0X3QgbV9pbmRl
eElkOwpAQCAtMzg4LDEzICszODgsMTMgQEAgcHJpdmF0ZToKIAogY2xhc3MgRGVsZXRlUmFuZ2VP
cGVyYXRpb24gOiBwdWJsaWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9u
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRM
ZXZlbERCOjpPcGVyYXRpb24+IGNyZWF0ZShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0
cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiogYmFja2luZ1N0b3JlLCBpbnQ2NF90
IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4ga2V5UmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCisgICAgc3Rh
dGljIFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uPiBj
cmVhdGUoSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZSogYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiAgICAgewogICAgICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IERlbGV0ZVJhbmdlT3BlcmF0aW9uKHRyYW5zYWN0aW9uLCBiYWNraW5nU3RvcmUs
IGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGtleVJhbmdlLCBjYWxsYmFja3MpKTsKICAgICB9
CiAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm0oKSBPVkVSUklERSBGSU5BTDsKIHByaXZhdGU6Ci0g
ICAgRGVsZXRlUmFuZ2VPcGVyYXRpb24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJh
bnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBk
YXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+
IGtleVJhbmdlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQorICAgIERlbGV0
ZVJhbmdlT3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9u
LCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJh
bmdlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQogICAgICAgICA6IG1fdHJh
bnNhY3Rpb24odHJhbnNhY3Rpb24pCiAgICAgICAgICwgbV9iYWNraW5nU3RvcmUoYmFja2luZ1N0
b3JlKQogICAgICAgICAsIG1fZGF0YWJhc2VJZChkYXRhYmFzZUlkKQpAQCAtNDA1LDcgKzQwNSw3
IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREI+IG1fdHJhbnNhY3Rpb247Ci0gICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxl
dmVsREI+IG1fYmFja2luZ1N0b3JlOworICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2U+IG1fYmFja2luZ1N0b3JlOwogICAgIGNvbnN0IGludDY0X3QgbV9kYXRhYmFzZUlk
OwogICAgIGNvbnN0IGludDY0X3QgbV9vYmplY3RTdG9yZUlkOwogICAgIGNvbnN0IFJlZlB0cjxJ
REJLZXlSYW5nZT4gbV9rZXlSYW5nZTsKQEAgLTQxNCwxMyArNDE0LDEzIEBAIHByaXZhdGU6CiAK
IGNsYXNzIENsZWFyT3BlcmF0aW9uIDogcHVibGljIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVs
REI6Ok9wZXJhdGlvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNh
Y3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdT
dG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25C
YWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFj
a2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKICAgICB7CiAgICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgQ2xlYXJPcGVyYXRpb24odHJhbnNhY3Rpb24sIGJhY2tpbmdTdG9yZSwgZGF0
YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgY2FsbGJhY2tzKSk7CiAgICAgfQogICAgIHZpcnR1YWwg
dm9pZCBwZXJmb3JtKCkgT1ZFUlJJREUgRklOQUw7CiBwcml2YXRlOgotICAgIENsZWFyT3BlcmF0
aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5n
U3RvcmVMZXZlbERCKiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQorICAgIENs
ZWFyT3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFj
a3MpCiAgICAgICAgIDogbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKICAgICAgICAgLCBtX2Jh
Y2tpbmdTdG9yZShiYWNraW5nU3RvcmUpCiAgICAgICAgICwgbV9kYXRhYmFzZUlkKGRhdGFiYXNl
SWQpCkBAIC00MzAsNyArNDMwLDcgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICBSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gbV90cmFuc2FjdGlvbjsKLSAgICBjb25zdCBSZWZQ
dHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4gbV9iYWNraW5nU3RvcmU7CisgICAgY29uc3QgUmVm
UHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZT4gbV9iYWNraW5nU3RvcmU7CiAgICAgY29uc3Qg
aW50NjRfdCBtX2RhdGFiYXNlSWQ7CiAgICAgY29uc3QgaW50NjRfdCBtX29iamVjdFN0b3JlSWQ7
CiAgICAgY29uc3QgUmVmUHRyPElEQkNhbGxiYWNrcz4gbV9jYWxsYmFja3M7Cg==
</data>
<flag name="commit-queue"
          id="237339"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214761</attachid>
            <date>2013-10-21 12:12:01 -0700</date>
            <delta_ts>2013-10-21 12:24:33 -0700</delta_ts>
            <desc>Patch v2 - Fix WK2 build, and hopefully make the linux compilers happy.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>85823</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjOWM0ZDM3Li4wZTlmYmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAw
IEBACisyMDEzLTEwLTIxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAg
ICAgICBUcmFuc2l0aW9uIG1vc3QgdXNlIG9mIElEQkJhY2tpbmdTdG9yZUxldmVsREIgdG8gSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjMxMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFeHBvcnQgbW9yZSByZXF1aXJlZCBoZWFkZXJzOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICBGbGVzaCBvdXQgbWFu
eSBvZiB0aGUgcHVyZSB2aXJ0dWFsIG1ldGhvZHMgb24gSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
LCBhcyB3ZWxsIGFzCisgICAgICAgIHRoZSBSZWNvcmRJZGVudGlmaWVyIGFuZCBDdXJzb3IgY2xh
c3NlczoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNv
cmRJZGVudGlmaWVyOjp+UmVjb3JkSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpJREJC
YWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcjo6fkN1cnNvcik6CisKKyAgICAgICAgVXNlIElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZSwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJ
ZGVudGlmaWVyLCBhbmQKKyAgICAgICAgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3Ig
d2hlcmV2ZXIgcG9zc2libGU6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5QmFja2VuZEludGVyZmFjZS5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJCYWNraW5nU3RvcmVMZXZlbERCOjpwdXRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
QmFja2luZ1N0b3JlTGV2ZWxEQjo6ZGVsZXRlUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkJhY2tpbmdTdG9yZUxldmVsREI6OmtleUV4aXN0c0luT2JqZWN0U3RvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6cHV0SW5kZXhEYXRhRm9yUmVjb3JkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok9iamVjdFN0b3JlS2V5Q3Vyc29ySW1wbDo6Y2xvbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6T2JqZWN0U3RvcmVDdXJzb3JJbXBsOjpjbG9uZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbmRleEtleUN1cnNvckltcGw6OmNsb25lKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
ZGV4Q3Vyc29ySW1wbDo6Y2xvbmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3Jl
TGV2ZWxEQjo6b3Blbk9iamVjdFN0b3JlQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJh
Y2tpbmdTdG9yZUxldmVsREI6Om9wZW5PYmplY3RTdG9yZUtleUN1cnNvcik6CisgICAgICAgIChX
ZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuSW5kZXhLZXlDdXJzb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3BlbkluZGV4Q3Vyc29yKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uOjpU
cmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjpU
cmFuc2FjdGlvbjo6YmVnaW4pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIv
SURCQmFja2luZ1N0b3JlTGV2ZWxEQi5oOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0
b3JlTGV2ZWxEQjo6UmVjb3JkSWRlbnRpZmllcjo6UmVjb3JkSWRlbnRpZmllcik6CisKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkN1cnNvckJhY2tlbmRMZXZlbERCLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRMZXZlbERCOjpJREJDdXJzb3JC
YWNrZW5kTGV2ZWxEQik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJD
dXJzb3JCYWNrZW5kTGV2ZWxEQi5oOgorCisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JCYWNr
ZW5kTGV2ZWxEQjo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRi
L0lEQkRhdGFiYXNlQmFja2VuZExldmVsREIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0
YWJhc2VCYWNrZW5kTGV2ZWxEQjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFi
YXNlQmFja2VuZExldmVsREI6OklEQkRhdGFiYXNlQmFja2VuZExldmVsREIpOgorICAgICAgICAo
V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6YmFja2luZ1N0b3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OnNldEluZGV4S2V5cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpjcmVhdGVUcmFuc2Fj
dGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJEYXRhYmFzZUJh
Y2tlbmRMZXZlbERCLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
QkZhY3RvcnlCYWNrZW5kTGV2ZWxEQi5oOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
bGV2ZWxkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6OkluZGV4V3JpdGVyOjp2ZXJpZnlJbmRl
eEtleXMpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQjo6
SW5kZXhXcml0ZXI6OndyaXRlSW5kZXhLZXlzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVj
dFN0b3JlQmFja2VuZExldmVsREI6OkluZGV4V3JpdGVyOjphZGRpbmdLZXlBbGxvd2VkKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6Om1ha2VJbmRleFdy
aXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQjo6
Z2VuZXJhdGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2
ZWxEQjo6dXBkYXRlS2V5R2VuZXJhdG9yKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9s
ZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREIuaDoKKworICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6SURCVHJhbnNh
Y3Rpb25CYWNrZW5kTGV2ZWxEQik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxk
Yi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREJPcGVyYXRpb25zLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdldE9wZXJhdGlvbjo6cGVyZm9ybSk6CisgICAgICAgIChX
ZWJDb3JlOjpPcGVuQ3Vyc29yT3BlcmF0aW9uOjpwZXJmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvdW50T3BlcmF0aW9uOjpwZXJmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVJhbmdl
T3BlcmF0aW9uOjpwZXJmb3JtKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRi
L0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREJPcGVyYXRpb25zLmg6CisgICAgICAgIChXZWJD
b3JlOjpDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNyZWF0ZU9iamVjdFN0b3JlT3BlcmF0aW9uOjpDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVPYmplY3RTdG9yZU9wZXJhdGlvbjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZU9iamVjdFN0b3JlT3BlcmF0aW9uOjpEZWxldGVP
YmplY3RTdG9yZU9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDcmVhdGVJbmRleE9wZXJh
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWF0ZUluZGV4T3BlcmF0aW9uOjpD
cmVhdGVJbmRleE9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVJbmRleE9wZXJh
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUluZGV4T3BlcmF0aW9uOjpE
ZWxldGVJbmRleE9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHZXRPcGVyYXRpb246OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHZXRPcGVyYXRpb246OkdldE9wZXJhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpQdXRPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQdXRPcGVyYXRpb246OlB1dE9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpPcGVuQ3Vy
c29yT3BlcmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6T3BlbkN1cnNvck9wZXJh
dGlvbjo6T3BlbkN1cnNvck9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb3VudE9wZXJh
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvdW50T3BlcmF0aW9uOjpDb3VudE9w
ZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVSYW5nZU9wZXJhdGlvbjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVJhbmdlT3BlcmF0aW9uOjpEZWxldGVSYW5nZU9w
ZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDbGVhck9wZXJhdGlvbjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNsZWFyT3BlcmF0aW9uOjpDbGVhck9wZXJhdGlvbik6CisKIDIwMTMt
MTAtMTkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBh
YnN0cmFjdCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UsIHVzZSBpdCB0byBnZXQgSURCRGF0YWJh
c2VCYWNrZW5kTGV2ZWxEQiBjbG9zZXIgdG8gZ29pbmcgY3Jvc3MtcGxhdGZvcm0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3Jl
SW50ZXJmYWNlLmgKaW5kZXggMmJhOWY4NS4uNDk5ZDYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
LmgKQEAgLTI2LDYgKzI2LDkgQEAKICNpZm5kZWYgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlX2gK
ICNkZWZpbmUgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlX2gKIAorI2luY2x1ZGUgIklEQk1ldGFk
YXRhLmgiCisjaW5jbHVkZSAiSW5kZXhlZERCLmgiCisKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KQEAgLTM0LDYgKzM3LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3Mg
SURCS2V5OworY2xhc3MgSURCS2V5UGF0aDsKK2NsYXNzIElEQktleVJhbmdlOworY2xhc3MgU2hh
cmVkQnVmZmVyOworCiBjbGFzcyBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UgOiBwdWJsaWMgUmVm
Q291bnRlZDxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5JREJCYWNraW5nU3RvcmVJbnRlcmZhY2UoKSB7IH0KQEAgLTQyLDYgKzUwLDY3IEBAIHB1Ymxp
YzoKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgflRyYW5zYWN0aW9uKCkgeyB9CiAgICAg
fTsKKworICAgIGNsYXNzIFJlY29yZElkZW50aWZpZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAg
dmlydHVhbCB+UmVjb3JkSWRlbnRpZmllcigpIHsgfQorCisgICAgICAgIHZpcnR1YWwgY29uc3Qg
VmVjdG9yPGNoYXI+IHByaW1hcnlLZXkoKSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwgaW50
NjRfdCB2ZXJzaW9uKCkgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoY29u
c3QgVmVjdG9yPGNoYXI+JiBwcmltYXJ5S2V5LCBpbnQ2NF90IHZlcnNpb24pID0gMDsKKyAgICB9
OworCisgICAgY2xhc3MgQ3Vyc29yIDogcHVibGljIFJlZkNvdW50ZWQ8Q3Vyc29yPiB7CisgICAg
cHVibGljOgorICAgICAgICBlbnVtIEl0ZXJhdG9yU3RhdGUgeworICAgICAgICAgICAgUmVhZHkg
PSAwLAorICAgICAgICAgICAgU2VlaworICAgICAgICB9OworCisgICAgICAgIHZpcnR1YWwgfkN1
cnNvcigpIHsgfQorCisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSgpIGNv
bnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBib29sIGNvbnRpbnVlRnVuY3Rpb24oY29uc3QgSURC
S2V5KiA9IDAsIEl0ZXJhdG9yU3RhdGUgPSBTZWVrKSA9IDA7CisgICAgICAgIHZpcnR1YWwgYm9v
bCBhZHZhbmNlKHVuc2lnbmVkIGxvbmcpID0gMDsKKworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8Q3Vyc29yPiBjbG9uZSgpID0gMDsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQktl
eT4gcHJpbWFyeUtleSgpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gdmFsdWUoKSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwgY29uc3QgUmVj
b3JkSWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllcigpIGNvbnN0ID0gMDsKKyAgICB9OworCisg
ICAgdmlydHVhbCBib29sIGdldElEQkRhdGFiYXNlTWV0YURhdGEoY29uc3QgU3RyaW5nJiBuYW1l
LCBJREJEYXRhYmFzZU1ldGFkYXRhKiwgYm9vbCYgZm91bmQpID0gMDsKKyAgICB2aXJ0dWFsIGJv
b2wgZ2V0T2JqZWN0U3RvcmVzKGludDY0X3QgZGF0YWJhc2VJZCwgSURCRGF0YWJhc2VNZXRhZGF0
YTo6T2JqZWN0U3RvcmVNYXAqIG9iamVjdFN0b3JlcykgPSAwOworICAgIHZpcnR1YWwgYm9vbCBj
cmVhdGVJREJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiB2ZXJzaW9uLCBpbnQ2NF90IGludFZlcnNpb24sIGludDY0X3QmIHJvd0lkKSA9IDA7CisgICAg
dmlydHVhbCBib29sIGtleUV4aXN0c0luT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBjb25zdCBJREJLZXkmLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlJlY29yZElkZW50
aWZpZXIqIGZvdW5kUmVjb3JkSWRlbnRpZmllciwgYm9vbCYgZm91bmQpID0gMDsKKworICAgIHZp
cnR1YWwgYm9vbCBwdXRJbmRleERhdGFGb3JSZWNvcmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
OjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYsIGNvbnN0IElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZTo6UmVjb3JkSWRlbnRpZmllciYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wga2V5RXhp
c3RzSW5JbmRleChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRf
dCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29u
c3QgSURCS2V5JiwgUmVmUHRyPElEQktleT4mIGZvdW5kUHJpbWFyeUtleSwgYm9vbCYgZXhpc3Rz
KSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBu
YW1lKSA9IDA7CisgICAgdmlydHVhbCBib29sIHVwZGF0ZUlEQkRhdGFiYXNlSW50VmVyc2lvbihJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCByb3dJZCwgaW50
NjRfdCBpbnRWZXJzaW9uKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0UmVjb3JkKElEQkJh
Y2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiwgVmVjdG9yPGNoYXI+JiByZWNvcmQp
ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgcHV0UmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgY29uc3QgSURCS2V5JiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCBJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2U6OlJlY29yZElkZW50aWZpZXIqKSA9IDA7CisgICAgdmlydHVhbCBi
b29sIGRlbGV0ZVJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwg
aW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZTo6UmVjb3JkSWRlbnRpZmllciYpID0gMDsKKworICAgIHZpcnR1YWwg
Ym9vbCBjcmVhdGVPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0
aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCkgPSAwOwor
ICAgIHZpcnR1YWwgYm9vbCBkZWxldGVPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgY2xlYXJPYmplY3RTdG9yZShJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQpID0gMDsKKworICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVJbmRleChJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBJREJLZXlQYXRoJiwgYm9vbCBpc1VuaXF1ZSwgYm9vbCBpc011bHRpRW50cnkpID0gMDsK
KyAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpU
cmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBp
bnQ2NF90IGluZGV4SWQpID0gMDsKKworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gb3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29yKElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRp
cmVjdGlvbikgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRl
cmZhY2U6OkN1cnNvcj4gb3Blbk9iamVjdFN0b3JlQ3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbikgPSAw
OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNv
cj4gb3BlbkluZGV4S2V5Q3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rp
b24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBp
bmRleElkLCBjb25zdCBJREJLZXlSYW5nZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKSA9
IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vy
c29yPiBvcGVuSW5kZXhDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlv
biosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGlu
ZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24pID0g
MDsKKworICAgIHZpcnR1YWwgYm9vbCBnZXRQcmltYXJ5S2V5VmlhSW5kZXgoSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYsIFJlZlB0cjxJREJL
ZXk+JiBwcmltYXJ5S2V5KSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0S2V5R2VuZXJhdG9y
Q3VycmVudE51bWJlcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QmIGtleUdlbmVy
YXRvckN1cnJlbnROdW1iZXIpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgbWF5YmVVcGRhdGVLZXlH
ZW5lcmF0b3JDdXJyZW50TnVtYmVyKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rp
b24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBu
ZXdTdGF0ZSwgYm9vbCBjaGVja0N1cnJlbnQpID0gMDsKKwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuY3BwCmluZGV4IDZlN2IzN2EuLjAzYzQ0
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5jcHAKQEAgLTMzLDEwICszMyw2IEBACiAj
aW5jbHVkZSAiRGF0YWJhc2VTdHJhdGVneS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2ll
cy5oIgogCi0jaWYgVVNFKExFVkVMREIpCi0jaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRMZXZl
bERCLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNzUmVmUHRyPElEQkZh
Y3RvcnlCYWNrZW5kSW50ZXJmYWNlPiBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZTo6Y3JlYXRl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCmluZGV4IGFhMWM0ODAuLmU0ZTM0MDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5k
SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtMjgsNiArMjgsOCBAQAogI2lmbmRlZiBJREJGYWN0
b3J5QmFja2VuZEludGVyZmFjZV9oCiAjZGVmaW5lIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNl
X2gKIAorI2luY2x1ZGUgIkluZGV4ZWREQi5oIgorCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgpAQCAtMzYsOSArMzgsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFz
cyBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U7CiBjbGFzcyBJREJDYWxsYmFja3M7CiBjbGFzcyBJ
REJEYXRhYmFzZTsKK2NsYXNzIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI7IC8vIEZJWE1FOiBU
aGlzIGlzIGEgTGV2ZWxEQiBzcGVjaWZpYyB0eXBlIGZvciBub3cuIGh0dHA6Ly93ZWJraXQub3Jn
L2IvMTIzMDI3IHdpbGwgZml4IHRoYXQuCiBjbGFzcyBJREJEYXRhYmFzZUNhbGxiYWNrczsKK2Ns
YXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2lu
OwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIApAQCAtNTgsNiArNjMsOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAwOwogCiAgICAg
dmlydHVhbCB2b2lkIHJlbW92ZUlEQkRhdGFiYXNlQmFja2VuZChjb25zdCBTdHJpbmcmIHVuaXF1
ZUlkZW50aWZpZXIpID0gMDsKKworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0aW9uQmFja2VuZChJREJEYXRhYmFzZUJh
Y2tlbmRMZXZlbERCKiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFi
YXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgSW5kZXhlZERCOjpUcmFuc2Fj
dGlvbk1vZGUpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3Jl
TGV2ZWxEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
QkJhY2tpbmdTdG9yZUxldmVsREIuY3BwCmluZGV4IGI2ZWU3NzUuLjI4MzE4YTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0
b3JlTGV2ZWxEQi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2
ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmNwcApAQCAtODk4LDcgKzg5OCw3IEBAIFdBUk5f
VU5VU0VEX1JFVFVSTiBzdGF0aWMgYm9vbCBnZXROZXdWZXJzaW9uTnVtYmVyKExldmVsREJUcmFu
c2FjdGlvbiogdHJhbnNhY3RpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSURCQmFja2lu
Z1N0b3JlTGV2ZWxEQjo6cHV0UmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNh
Y3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgY29uc3QgSURCS2V5JiBrZXksIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBwcnBWYWx1
ZSwgUmVjb3JkSWRlbnRpZmllciogcmVjb3JkSWRlbnRpZmllcikKK2Jvb2wgSURCQmFja2luZ1N0
b3JlTGV2ZWxEQjo6cHV0UmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rp
b24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgY29uc3QgSURCS2V5JiBrZXksIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBwcnBWYWx1ZSwg
SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlmaWVyKiByZWNvcmRJZGVudGlm
aWVyKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6cHV0
UmVjb3JkIik7CiAgICAgaWYgKCFLZXlQcmVmaXg6OnZhbGlkSWRzKGRhdGFiYXNlSWQsIG9iamVj
dFN0b3JlSWQpKQpAQCAtOTQxLDcgKzk0MSw3IEBAIGJvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6Y2xlYXJPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6ZGVsZXRl
UmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9u
LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgUmVjb3Jk
SWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllcikKK2Jvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6ZGVsZXRlUmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRy
YW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29u
c3QgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlmaWVyJiByZWNvcmRJZGVu
dGlmaWVyKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6
ZGVsZXRlUmVjb3JkIik7CiAgICAgaWYgKCFLZXlQcmVmaXg6OnZhbGlkSWRzKGRhdGFiYXNlSWQs
IG9iamVjdFN0b3JlSWQpKQpAQCAtMTAyNyw3ICsxMDI3LDcgQEAgYm9vbCBJREJCYWNraW5nU3Rv
cmVMZXZlbERCOjptYXliZVVwZGF0ZUtleUdlbmVyYXRvckN1cnJlbnROdW1iZXIoSURCQmFja2lu
Z1N0b3IKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERC
OjprZXlFeGlzdHNJbk9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNh
Y3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgY29uc3QgSURCS2V5JiBrZXksIFJlY29yZElkZW50aWZpZXIqIGZvdW5kUmVjb3JkSWRl
bnRpZmllciwgYm9vbCYgZm91bmQpCitib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OmtleUV4
aXN0c0luT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiog
dHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBj
b25zdCBJREJLZXkmIGtleSwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlm
aWVyKiBmb3VuZFJlY29yZElkZW50aWZpZXIsIGJvb2wmIGZvdW5kKQogewogICAgIExPRyhTdG9y
YWdlQVBJLCAiSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6a2V5RXhpc3RzSW5PYmplY3RTdG9yZSIp
OwogICAgIGlmICghS2V5UHJlZml4Ojp2YWxpZElkcyhkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlk
KSkKQEAgLTExODYsNyArMTE4Niw3IEBAIGJvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6ZGVs
ZXRlSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbioKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpwdXRJbmRleERhdGFG
b3JSZWNvcmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rp
b24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGlu
ZGV4SWQsIGNvbnN0IElEQktleSYga2V5LCBjb25zdCBSZWNvcmRJZGVudGlmaWVyJiByZWNvcmRJ
ZGVudGlmaWVyKQorYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpwdXRJbmRleERhdGFGb3JS
ZWNvcmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24s
IGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4
SWQsIGNvbnN0IElEQktleSYga2V5LCBjb25zdCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlJl
Y29yZElkZW50aWZpZXImIHJlY29yZElkZW50aWZpZXIpCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEks
ICJJREJCYWNraW5nU3RvcmVMZXZlbERCOjpwdXRJbmRleERhdGFGb3JSZWNvcmQiKTsKICAgICBB
U1NFUlQoa2V5LmlzVmFsaWQoKSk7CkBAIC0xNDk5LDcgKzE0OTksNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgT2JqZWN0U3RvcmVLZXlDdXJzb3JJbXBsKHRyYW5zYWN0
aW9uLCBjdXJzb3JPcHRpb25zKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElE
QkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gY2xvbmUoKQorICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gY2xvbmUoKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPYmplY3RTdG9yZUtleUN1cnNvckltcGwodGhpcykp
OwogICAgIH0KQEAgLTE1NjAsNyArMTU2MCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBPYmplY3RTdG9yZUN1cnNvckltcGwodHJhbnNhY3Rpb24sIGN1cnNvck9wdGlv
bnMpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2
ZWxEQjo6Q3Vyc29yPiBjbG9uZSgpCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6Q3Vyc29yPiBjbG9uZSgpCiAgICAgewogICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IE9iamVjdFN0b3JlQ3Vyc29ySW1wbCh0aGlzKSk7CiAgICAgfQpAQCAtMTYyNyw3
ICsxNjI3LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluZGV4S2V5
Q3Vyc29ySW1wbCh0cmFuc2FjdGlvbiwgY3Vyc29yT3B0aW9ucykpOwogICAgIH0KIAotICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IGNsb25lKCkK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+
IGNsb25lKCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5kZXhLZXlDdXJz
b3JJbXBsKHRoaXMpKTsKICAgICB9CkBAIC0xNzE4LDcgKzE3MTgsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5kZXhDdXJzb3JJbXBsKHRyYW5zYWN0aW9uLCBjdXJz
b3JPcHRpb25zKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkJhY2tpbmdT
dG9yZUxldmVsREI6OkN1cnNvcj4gY2xvbmUoKQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJC
YWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gY2xvbmUoKQogICAgIHsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBJbmRleEN1cnNvckltcGwodGhpcykpOwogICAgIH0KQEAgLTE5MTAs
OCArMTkxMCw4IEBAIHN0YXRpYyBib29sIGluZGV4Q3Vyc29yT3B0aW9ucyhMZXZlbERCVHJhbnNh
Y3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlCiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KK1Bhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IElEQkJhY2tp
bmdTdG9yZUxldmVsREI6Om9wZW5PYmplY3RTdG9yZUN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRl
cmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdlKiByYW5nZSwgSW5kZXhlZERCOjpD
dXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uKQogCi1QYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxl
dmVsREI6OkN1cnNvcj4gSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3Blbk9iamVjdFN0b3JlQ3Vy
c29yKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5UmFu
Z2UqIHJhbmdlLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAg
TE9HKFN0b3JhZ2VBUEksICJJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuT2JqZWN0U3RvcmVD
dXJzb3IiKTsKICAgICBMZXZlbERCVHJhbnNhY3Rpb24qIGxldmVsREJUcmFuc2FjdGlvbiA9IElE
QkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uOjpsZXZlbERCVHJhbnNhY3Rpb25Gcm9t
KHRyYW5zYWN0aW9uKTsKQEAgLTE5MjUsNyArMTkyNSw3IEBAIFBhc3NSZWZQdHI8SURCQmFja2lu
Z1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuT2JqZWN0
U3RvCiAgICAgcmV0dXJuIGN1cnNvci5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8SURCQmFj
a2luZ1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuT2Jq
ZWN0U3RvcmVLZXlDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiog
dHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBj
b25zdCBJREJLZXlSYW5nZSogcmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGRpcmVj
dGlvbikKK1Bhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IElEQkJh
Y2tpbmdTdG9yZUxldmVsREI6Om9wZW5PYmplY3RTdG9yZUtleUN1cnNvcihJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdlKiByYW5nZSwgSW5kZXhl
ZERCOjpDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAi
SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29yIik7CiAgICAg
TGV2ZWxEQlRyYW5zYWN0aW9uKiBsZXZlbERCVHJhbnNhY3Rpb24gPSBJREJCYWNraW5nU3RvcmVM
ZXZlbERCOjpUcmFuc2FjdGlvbjo6bGV2ZWxEQlRyYW5zYWN0aW9uRnJvbSh0cmFuc2FjdGlvbik7
CkBAIC0xOTM5LDcgKzE5MzksNyBAQCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6
OkN1cnNvcj4gSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3Blbk9iamVjdFN0bwogICAgIHJldHVy
biBjdXJzb3IucmVsZWFzZSgpOwogfQogCi1QYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVs
REI6OkN1cnNvcj4gSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3BlbkluZGV4S2V5Q3Vyc29yKElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90
IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25z
dCBJREJLZXlSYW5nZSogcmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlv
bikKK1Bhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IElEQkJhY2tp
bmdTdG9yZUxldmVsREI6Om9wZW5JbmRleEtleUN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5UmFuZ2UqIHJhbmdl
LCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgTE9HKFN0b3Jh
Z2VBUEksICJJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuSW5kZXhLZXlDdXJzb3IiKTsKICAg
ICBMZXZlbERCVHJhbnNhY3Rpb24qIGxldmVsREJUcmFuc2FjdGlvbiA9IElEQkJhY2tpbmdTdG9y
ZUxldmVsREI6OlRyYW5zYWN0aW9uOjpsZXZlbERCVHJhbnNhY3Rpb25Gcm9tKHRyYW5zYWN0aW9u
KTsKQEAgLTE5NTMsNyArMTk1Myw3IEBAIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuSW5kZXhLZXlDCiAgICAgcmV0
dXJuIGN1cnNvci5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2
ZWxEQjo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuSW5kZXhDdXJzb3IoSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3Qg
ZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0
IElEQktleVJhbmdlKiByYW5nZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9u
KQorUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gSURCQmFja2lu
Z1N0b3JlTGV2ZWxEQjo6b3BlbkluZGV4Q3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6
VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSogcmFuZ2UsIElu
ZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBMT0coU3RvcmFnZUFQ
SSwgIklEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5JbmRleEN1cnNvciIpOwogICAgIExldmVs
REJUcmFuc2FjdGlvbiogbGV2ZWxEQlRyYW5zYWN0aW9uID0gSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6VHJhbnNhY3Rpb246OmxldmVsREJUcmFuc2FjdGlvbkZyb20odHJhbnNhY3Rpb24pOwpAQCAt
MTk2Nyw3ICsxOTY3LDcgQEAgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJz
b3I+IElEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5JbmRleEN1cnMKICAgICByZXR1cm4gY3Vy
c29yLnJlbGVhc2UoKTsKIH0KIAotSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb246
OlRyYW5zYWN0aW9uKElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSkKK0lEQkJh
Y2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uOjpUcmFuc2FjdGlvbihJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSkKICAgICA6IG1fYmFja2luZ1N0b3JlKGJhY2tpbmdT
dG9yZSkKIHsKIH0KQEAgLTE5NzYsNyArMTk3Niw3IEBAIHZvaWQgSURCQmFja2luZ1N0b3JlTGV2
ZWxEQjo6VHJhbnNhY3Rpb246OmJlZ2luKCkKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJh
Y2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uOjpiZWdpbiIpOwogICAgIEFTU0VSVCghbV90
cmFuc2FjdGlvbik7Ci0gICAgbV90cmFuc2FjdGlvbiA9IExldmVsREJUcmFuc2FjdGlvbjo6Y3Jl
YXRlKG1fYmFja2luZ1N0b3JlLT5tX2RiLmdldCgpKTsKKyAgICBtX3RyYW5zYWN0aW9uID0gTGV2
ZWxEQlRyYW5zYWN0aW9uOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxJREJCYWNraW5nU3RvcmVM
ZXZlbERCKj4obV9iYWNraW5nU3RvcmUpLT5tX2RiLmdldCgpKTsKIH0KIAogYm9vbCBJREJCYWNr
aW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbjo6Y29tbWl0KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNraW5n
U3RvcmVMZXZlbERCLmgKaW5kZXggMTFlMDllZS4uZjhjNDYwOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERC
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNr
aW5nU3RvcmVMZXZlbERCLmgKQEAgLTY3LDUyICs2Nyw1OCBAQCBwdWJsaWM6CiAgICAgV2Vha1B0
cjxJREJCYWNraW5nU3RvcmVMZXZlbERCPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFr
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KIAogICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4g
Z2V0RGF0YWJhc2VOYW1lcygpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRJREJEYXRhYmFzZU1ldGFE
YXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCRGF0YWJhc2VNZXRhZGF0YSosIGJvb2wmIHN1Y2Nl
c3MpIFdBUk5fVU5VU0VEX1JFVFVSTjsKLSAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlSURCRGF0YWJh
c2VNZXRhRGF0YShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgaW50
NjRfdCBpbnRWZXJzaW9uLCBpbnQ2NF90JiByb3dJZCk7CisgICAgdmlydHVhbCBib29sIGdldElE
QkRhdGFiYXNlTWV0YURhdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJEYXRhYmFzZU1ldGFkYXRh
KiwgYm9vbCYgc3VjY2VzcykgT1ZFUlJJREUgRklOQUwgV0FSTl9VTlVTRURfUkVUVVJOOworICAg
IHZpcnR1YWwgYm9vbCBjcmVhdGVJREJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBpbnQ2NF90IGludFZlcnNpb24sIGludDY0X3QmIHJv
d0lkKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlSURCRGF0YWJhc2VN
ZXRhRGF0YShJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbiosIGludDY0X3Qgcm93
SWQsIGNvbnN0IFN0cmluZyYgdmVyc2lvbik7Ci0gICAgdmlydHVhbCBib29sIHVwZGF0ZUlEQkRh
dGFiYXNlSW50VmVyc2lvbihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwg
aW50NjRfdCByb3dJZCwgaW50NjRfdCBpbnRWZXJzaW9uKTsKLSAgICB2aXJ0dWFsIGJvb2wgZGVs
ZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICB2aXJ0dWFsIGJvb2wgdXBkYXRl
SURCRGF0YWJhc2VJbnRWZXJzaW9uKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rp
b24qLCBpbnQ2NF90IHJvd0lkLCBpbnQ2NF90IGludFZlcnNpb24pIE9WRVJSSURFIEZJTkFMOwor
ICAgIHZpcnR1YWwgYm9vbCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUpIE9WRVJS
SURFIEZJTkFMOwogCi0gICAgYm9vbCBnZXRPYmplY3RTdG9yZXMoaW50NjRfdCBkYXRhYmFzZUlk
LCBJREJEYXRhYmFzZU1ldGFkYXRhOjpPYmplY3RTdG9yZU1hcCopIFdBUk5fVU5VU0VEX1JFVFVS
TjsKLSAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29sIGF1dG9J
bmNyZW1lbnQpOwotICAgIHZpcnR1YWwgYm9vbCBkZWxldGVPYmplY3RTdG9yZShJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0
T2JqZWN0U3RvcmVzKGludDY0X3QgZGF0YWJhc2VJZCwgSURCRGF0YWJhc2VNZXRhZGF0YTo6T2Jq
ZWN0U3RvcmVNYXAqKSBPVkVSUklERSBGSU5BTCBXQVJOX1VOVVNFRF9SRVRVUk47CisgICAgdmly
dHVhbCBib29sIGNyZWF0ZU9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJh
bnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KSBP
VkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlT2JqZWN0U3RvcmUoSURCQmFj
a2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50
NjRfdCBvYmplY3RTdG9yZUlkKSBPVkVSUklERSBGSU5BTCBXQVJOX1VOVVNFRF9SRVRVUk47CiAK
LSAgICBjbGFzcyBSZWNvcmRJZGVudGlmaWVyIHsKLSAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoUmVjb3JkSWRlbnRpZmllcik7CisgICAgY2xhc3MgUmVjb3JkSWRlbnRpZmllciA6IHB1Ymxp
YyBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlJlY29yZElkZW50aWZpZXIgewogICAgIHB1Ymxp
YzoKLSAgICAgICAgUmVjb3JkSWRlbnRpZmllcihjb25zdCBWZWN0b3I8Y2hhcj4mIHByaW1hcnlL
ZXksIGludDY0X3QgdmVyc2lvbikgOiBtX3ByaW1hcnlLZXkocHJpbWFyeUtleSksIG1fdmVyc2lv
bih2ZXJzaW9uKSB7IEFTU0VSVCghcHJpbWFyeUtleS5pc0VtcHR5KCkpOyB9Ci0gICAgICAgIFJl
Y29yZElkZW50aWZpZXIoKSA6IG1fcHJpbWFyeUtleSgpLCBtX3ZlcnNpb24oLTEpIHsgfQorICAg
ICAgICBSZWNvcmRJZGVudGlmaWVyKGNvbnN0IFZlY3RvcjxjaGFyPiYgcHJpbWFyeUtleSwgaW50
NjRfdCB2ZXJzaW9uKQorICAgICAgICAgICAgOiBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlJl
Y29yZElkZW50aWZpZXIoKQorICAgICAgICAgICAgLCBtX3ByaW1hcnlLZXkocHJpbWFyeUtleSkK
KyAgICAgICAgICAgICwgbV92ZXJzaW9uKHZlcnNpb24pCisgICAgICAgIHsKKyAgICAgICAgICAg
IEFTU0VSVCghcHJpbWFyeUtleS5pc0VtcHR5KCkpOworICAgICAgICB9CiAKLSAgICAgICAgY29u
c3QgVmVjdG9yPGNoYXI+IHByaW1hcnlLZXkoKSBjb25zdCB7IHJldHVybiBtX3ByaW1hcnlLZXk7
IH0KLSAgICAgICAgaW50NjRfdCB2ZXJzaW9uKCkgY29uc3QgeyByZXR1cm4gbV92ZXJzaW9uOyB9
Ci0gICAgICAgIHZvaWQgcmVzZXQoY29uc3QgVmVjdG9yPGNoYXI+JiBwcmltYXJ5S2V5LCBpbnQ2
NF90IHZlcnNpb24pIHsgbV9wcmltYXJ5S2V5ID0gcHJpbWFyeUtleTsgbV92ZXJzaW9uID0gdmVy
c2lvbjsgfQorICAgICAgICBSZWNvcmRJZGVudGlmaWVyKCkKKyAgICAgICAgICAgIDogSURCQmFj
a2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlmaWVyKCkKKyAgICAgICAgICAgICwgbV9w
cmltYXJ5S2V5KCkKKyAgICAgICAgICAgICwgbV92ZXJzaW9uKC0xKQorICAgICAgICB7CisgICAg
ICAgIH0KKworICAgICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gcHJpbWFyeUtleSgpIGNvbnN0IE9W
RVJSSURFIEZJTkFMIHsgcmV0dXJuIG1fcHJpbWFyeUtleTsgfQorICAgICAgICBpbnQ2NF90IHZl
cnNpb24oKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBtX3ZlcnNpb247IH0KKyAgICAg
ICAgdmlydHVhbCB2b2lkIHJlc2V0KGNvbnN0IFZlY3RvcjxjaGFyPiYgcHJpbWFyeUtleSwgaW50
NjRfdCB2ZXJzaW9uKSBPVkVSUklERSBGSU5BTCB7IG1fcHJpbWFyeUtleSA9IHByaW1hcnlLZXk7
IG1fdmVyc2lvbiA9IHZlcnNpb247IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIFZlY3Rvcjxj
aGFyPiBtX3ByaW1hcnlLZXk7IC8vIEZJWE1FOiBNYWtlIGl0IG1vcmUgY2xlYXIgdGhhdCB0aGlz
IGlzIHRoZSAqZW5jb2RlZCogdmVyc2lvbiBvZiB0aGUga2V5LgogICAgICAgICBpbnQ2NF90IG1f
dmVyc2lvbjsKICAgICB9OwogCi0gICAgdmlydHVhbCBib29sIGdldFJlY29yZChJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYsIFZlY3RvcjxjaGFyPiYgcmVjb3JkKSBXQVJO
X1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBib29sIHB1dFJlY29yZChJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1
ZSwgUmVjb3JkSWRlbnRpZmllciopIFdBUk5fVU5VU0VEX1JFVFVSTjsKLSAgICB2aXJ0dWFsIGJv
b2wgY2xlYXJPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9u
KiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIFdBUk5fVU5VU0VE
X1JFVFVSTjsKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUmVjb3JkKElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgY29uc3QgUmVjb3JkSWRlbnRpZmllciYpIFdBUk5fVU5VU0VEX1JFVFVSTjsKLSAg
ICB2aXJ0dWFsIGJvb2wgZ2V0S2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcihJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGludDY0X3QmIGN1cnJlbnROdW1iZXIpIFdBUk5fVU5VU0VEX1JFVFVSTjsK
LSAgICB2aXJ0dWFsIGJvb2wgbWF5YmVVcGRhdGVLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBuZXdTdGF0ZSwgYm9vbCBjaGVja0N1cnJl
bnQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKLSAgICB2aXJ0dWFsIGJvb2wga2V5RXhpc3RzSW5PYmpl
Y3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBk
YXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYsIFJlY29yZElk
ZW50aWZpZXIqIGZvdW5kUmVjb3JkSWRlbnRpZmllciwgYm9vbCYgZm91bmQpIFdBUk5fVU5VU0VE
X1JFVFVSTjsKLQotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVJbmRleChJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJL
ZXlQYXRoJiwgYm9vbCBpc1VuaXF1ZSwgYm9vbCBpc011bHRpRW50cnkpIFdBUk5fVU5VU0VEX1JF
VFVSTjsKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBpbnQ2NF90IGluZGV4SWQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKLSAgICB2aXJ0dWFsIGJv
b2wgcHV0SW5kZXhEYXRhRm9yUmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNh
Y3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRf
dCBpbmRleElkLCBjb25zdCBJREJLZXkmLCBjb25zdCBSZWNvcmRJZGVudGlmaWVyJikgV0FSTl9V
TlVTRURfUkVUVVJOOwotICAgIHZpcnR1YWwgYm9vbCBnZXRQcmltYXJ5S2V5VmlhSW5kZXgoSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYsIFJl
ZlB0cjxJREJLZXk+JiBwcmltYXJ5S2V5KSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVh
bCBib29sIGtleUV4aXN0c0luSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2Fj
dGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90
IGluZGV4SWQsIGNvbnN0IElEQktleSYgaW5kZXhLZXksIFJlZlB0cjxJREJLZXk+JiBmb3VuZFBy
aW1hcnlLZXksIGJvb2wmIGV4aXN0cykgV0FSTl9VTlVTRURfUkVUVVJOOwotCi0gICAgY2xhc3Mg
Q3Vyc29yIDogcHVibGljIFJlZkNvdW50ZWQ8Q3Vyc29yPiB7CisgICAgdmlydHVhbCBib29sIGdl
dFJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBk
YXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYsIFZlY3Rvcjxj
aGFyPiYgcmVjb3JkKSBPVkVSUklERSBGSU5BTCBXQVJOX1VOVVNFRF9SRVRVUk47CisgICAgdmly
dHVhbCBib29sIHB1dFJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9u
KiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktl
eSYsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSwgSURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlOjpSZWNvcmRJZGVudGlmaWVyKikgT1ZFUlJJREUgRklOQUwgV0FSTl9VTlVTRURfUkVUVVJO
OworICAgIHZpcnR1YWwgYm9vbCBjbGVhck9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCkgT1ZFUlJJREUgRklOQUwgV0FSTl9VTlVTRURfUkVUVVJOOworICAgIHZpcnR1YWwgYm9v
bCBkZWxldGVSZWNvcmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGlu
dDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U6OlJlY29yZElkZW50aWZpZXImKSBPVkVSUklERSBGSU5BTCBXQVJOX1VO
VVNFRF9SRVRVUk47CisgICAgdmlydHVhbCBib29sIGdldEtleUdlbmVyYXRvckN1cnJlbnROdW1i
ZXIoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJh
c2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90JiBjdXJyZW50TnVtYmVyKSBPVkVS
UklERSBGSU5BTCBXQVJOX1VOVVNFRF9SRVRVUk47CisgICAgdmlydHVhbCBib29sIG1heWJlVXBk
YXRlS2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRy
YW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGlu
dDY0X3QgbmV3U3RhdGUsIGJvb2wgY2hlY2tDdXJyZW50KSBPVkVSUklERSBGSU5BTCBXQVJOX1VO
VVNFRF9SRVRVUk47CisgICAgdmlydHVhbCBib29sIGtleUV4aXN0c0luT2JqZWN0U3RvcmUoSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmLCBJREJCYWNraW5nU3RvcmVJbnRl
cmZhY2U6OlJlY29yZElkZW50aWZpZXIqIGZvdW5kUmVjb3JkSWRlbnRpZmllciwgYm9vbCYgZm91
bmQpIE9WRVJSSURFIEZJTkFMIFdBUk5fVU5VU0VEX1JFVFVSTjsKKworICAgIHZpcnR1YWwgYm9v
bCBjcmVhdGVJbmRleChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBpc1VuaXF1ZSwgYm9v
bCBpc011bHRpRW50cnkpIE9WRVJSSURFIEZJTkFMIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICB2
aXJ0dWFsIGJvb2wgZGVsZXRlSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2Fj
dGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90
IGluZGV4SWQpIE9WRVJSSURFIEZJTkFMIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICB2aXJ0dWFs
IGJvb2wgcHV0SW5kZXhEYXRhRm9yUmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJh
bnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50
NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmLCBjb25zdCBJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OlJlY29yZElkZW50aWZpZXImKSBPVkVSUklERSBGSU5BTCBXQVJOX1VOVVNFRF9SRVRVUk47
CisgICAgdmlydHVhbCBib29sIGdldFByaW1hcnlLZXlWaWFJbmRleChJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiwgUmVmUHRyPElEQktleT4m
IHByaW1hcnlLZXkpIE9WRVJSSURFIEZJTkFMIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICB2aXJ0
dWFsIGJvb2wga2V5RXhpc3RzSW5JbmRleChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5z
YWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0
X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiBpbmRleEtleSwgUmVmUHRyPElEQktleT4mIGZvdW5k
UHJpbWFyeUtleSwgYm9vbCYgZXhpc3RzKSBPVkVSUklERSBGSU5BTCBXQVJOX1VOVVNFRF9SRVRV
Uk47CisKKyAgICBjbGFzcyBDdXJzb3IgOiBwdWJsaWMgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
OjpDdXJzb3IgewogICAgIHB1YmxpYzoKLSAgICAgICAgZW51bSBJdGVyYXRvclN0YXRlIHsKLSAg
ICAgICAgICAgIFJlYWR5ID0gMCwKLSAgICAgICAgICAgIFNlZWsKLSAgICAgICAgfTsKLQogICAg
ICAgICBzdHJ1Y3QgQ3Vyc29yT3B0aW9ucyB7CiAgICAgICAgICAgICBpbnQ2NF90IGRhdGFiYXNl
SWQ7CiAgICAgICAgICAgICBpbnQ2NF90IG9iamVjdFN0b3JlSWQ7CkBAIC0xMjUsMTUgKzEzMSwx
NSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBib29sIHVuaXF1ZTsKICAgICAgICAgfTsKIAotICAg
ICAgICBQYXNzUmVmUHRyPElEQktleT4ga2V5KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50S2V5
OyB9Ci0gICAgICAgIGJvb2wgY29udGludWVGdW5jdGlvbihjb25zdCBJREJLZXkqID0gMCwgSXRl
cmF0b3JTdGF0ZSA9IFNlZWspOwotICAgICAgICBib29sIGFkdmFuY2UodW5zaWduZWQgbG9uZyk7
CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSgpIGNvbnN0IE9WRVJSSURF
IEZJTkFMIHsgcmV0dXJuIG1fY3VycmVudEtleTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgY29u
dGludWVGdW5jdGlvbihjb25zdCBJREJLZXkqID0gMCwgSXRlcmF0b3JTdGF0ZSA9IFNlZWspIE9W
RVJSSURFIEZJTkFMOworICAgICAgICB2aXJ0dWFsIGJvb2wgYWR2YW5jZSh1bnNpZ25lZCBsb25n
KSBPVkVSUklERSBGSU5BTDsKICAgICAgICAgYm9vbCBmaXJzdFNlZWsoKTsKIAotICAgICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8Q3Vyc29yPiBjbG9uZSgpID0gMDsKLSAgICAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudEtl
eTsgfQotICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSgpIGNv
bnN0ID0gMDsKLSAgICAgICAgdmlydHVhbCBjb25zdCBSZWNvcmRJZGVudGlmaWVyJiByZWNvcmRJ
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZWNvcmRJZGVudGlmaWVyOyB9CisgICAgICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gY2xv
bmUoKSBPVkVSUklERSA9IDA7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IHBy
aW1hcnlLZXkoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2N1cnJlbnRLZXk7IH0KKyAgICAg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWUoKSBjb25zdCBPVkVSUklE
RSA9IDA7CisgICAgICAgIHZpcnR1YWwgY29uc3QgUmVjb3JkSWRlbnRpZmllciYgcmVjb3JkSWRl
bnRpZmllcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fcmVjb3JkSWRlbnRpZmllcjsgfQog
ICAgICAgICB2aXJ0dWFsIH5DdXJzb3IoKSB7IH0KICAgICAgICAgdmlydHVhbCBib29sIGxvYWRD
dXJyZW50Um93KCkgPSAwOwogCkBAIC0xNTcsMTQgKzE2MywxNCBAQCBwdWJsaWM6CiAgICAgICAg
IElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlJlY29yZElkZW50aWZpZXIgbV9yZWNvcmRJZGVudGlm
aWVyOwogICAgIH07CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q3Vyc29yPiBvcGVuT2JqZWN0
U3RvcmVLZXlDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGlu
dDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXlSYW5n
ZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
Q3Vyc29yPiBvcGVuT2JqZWN0U3RvcmVDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpU
cmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBj
b25zdCBJREJLZXlSYW5nZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKTsKLSAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8Q3Vyc29yPiBvcGVuSW5kZXhLZXlDdXJzb3IoSURCQmFja2luZ1N0b3Jl
SW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhlZERC
OjpDdXJzb3JEaXJlY3Rpb24pOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDdXJzb3I+IG9wZW5J
bmRleEN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRf
dCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29u
c3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbik7CisgICAgdmlydHVh
bCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yPiBvcGVuT2JqZWN0
U3RvcmVLZXlDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGlu
dDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXlSYW5n
ZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IG9wZW5PYmpl
Y3RTdG9yZUN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdl
KiwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24pIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gb3BlbkluZGV4
S2V5Q3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90
IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25z
dCBJREJLZXlSYW5nZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKSBPVkVSUklERSBGSU5B
TDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJz
b3I+IG9wZW5JbmRleEN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9u
KiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5k
ZXhJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbikgT1ZF
UlJJREUgRklOQUw7CiAKICAgICBjbGFzcyBUcmFuc2FjdGlvbiA6IHB1YmxpYyBJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIGV4cGxp
Y2l0IFRyYW5zYWN0aW9uKElEQkJhY2tpbmdTdG9yZUxldmVsREIqKTsKKyAgICAgICAgZXhwbGlj
aXQgVHJhbnNhY3Rpb24oSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKik7CiAgICAgICAgIHZvaWQg
YmVnaW4oKTsKICAgICAgICAgYm9vbCBjb21taXQoKTsKICAgICAgICAgdm9pZCByb2xsYmFjaygp
OwpAQCAtMTgwLDcgKzE4Niw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiogbV9iYWNraW5nU3RvcmU7CisgICAgICAg
IElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogbV9iYWNraW5nU3RvcmU7CiAgICAgICAgIFJlZlB0
cjxMZXZlbERCVHJhbnNhY3Rpb24+IG1fdHJhbnNhY3Rpb247CiAgICAgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJDdXJzb3JCYWNr
ZW5kTGV2ZWxEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRi
L0lEQkN1cnNvckJhY2tlbmRMZXZlbERCLmNwcAppbmRleCAzNzE0YTA1Li4yOWE1OTgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkN1cnNv
ckJhY2tlbmRMZXZlbERCLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9sZXZlbGRiL0lEQkN1cnNvckJhY2tlbmRMZXZlbERCLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBA
IHByaXZhdGU6CiAgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gbV9jYWxsYmFja3M7CiB9OwogCi1J
REJDdXJzb3JCYWNrZW5kTGV2ZWxEQjo6SURCQ3Vyc29yQmFja2VuZExldmVsREIoUGFzc1JlZlB0
cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IGN1cnNvciwgSW5kZXhlZERCOjpDdXJz
b3JUeXBlIGN1cnNvclR5cGUsIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6VGFza1R5cGUg
dGFza1R5cGUsIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQpCitJREJDdXJzb3JCYWNrZW5kTGV2ZWxEQjo6SURCQ3Vyc29yQmFj
a2VuZExldmVsREIoUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4g
Y3Vyc29yLCBJbmRleGVkREI6OkN1cnNvclR5cGUgY3Vyc29yVHlwZSwgSURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSB0YXNrVHlwZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2
ZWxEQiogdHJhbnNhY3Rpb24sIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkKICAgICA6IG1fdGFza1R5
cGUodGFza1R5cGUpCiAgICAgLCBtX2N1cnNvclR5cGUoY3Vyc29yVHlwZSkKICAgICAsIG1fZGF0
YWJhc2UodHJhbnNhY3Rpb24tPmRhdGFiYXNlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkN1cnNvckJhY2tlbmRMZXZlbERCLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkN1cnNvckJhY2tlbmRM
ZXZlbERCLmgKaW5kZXggMThhY2ZlNi4uYjJkZWVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJDdXJzb3JCYWNrZW5kTGV2ZWxEQi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQ3Vyc29yQmFj
a2VuZExldmVsREIuaApAQCAtNDQsMTEgKzQ0LDExIEBAIGNsYXNzIElEQktleVJhbmdlOwogCiBj
bGFzcyBJREJDdXJzb3JCYWNrZW5kTGV2ZWxEQiA6IHB1YmxpYyBJREJDdXJzb3JCYWNrZW5kSW50
ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5k
TGV2ZWxEQj4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Q3Vyc29y
PiBjdXJzb3IsIEluZGV4ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBJREJUcmFuc2FjdGlv
bkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBvYmplY3RTdG9yZUlkKQorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRMZXZlbERCPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gY3Vyc29yLCBJbmRleGVkREI6
OkN1cnNvclR5cGUgY3Vyc29yVHlwZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJh
bnNhY3Rpb24sIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkKICAgICB7CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSURCQ3Vyc29yQmFja2VuZExldmVsREIoY3Vyc29yLCBjdXJzb3JUeXBlLCBJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6Ok5vcm1hbFRhc2ssIHRyYW5zYWN0aW9uLCBvYmpl
Y3RTdG9yZUlkKSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tl
bmRMZXZlbERCPiBjcmVhdGUoUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJz
b3I+IGN1cnNvciwgSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIElEQkRhdGFiYXNl
QmFja2VuZEludGVyZmFjZTo6VGFza1R5cGUgdGFza1R5cGUsIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZExldmVsREIqIHRyYW5zYWN0aW9uLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZExldmVsREI+IGNyZWF0ZShQYXNzUmVmUHRyPElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yPiBjdXJzb3IsIEluZGV4ZWREQjo6Q3Vyc29y
VHlwZSBjdXJzb3JUeXBlLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlRhc2tUeXBlIHRh
c2tUeXBlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgaW50NjRf
dCBvYmplY3RTdG9yZUlkKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJD
dXJzb3JCYWNrZW5kTGV2ZWxEQihjdXJzb3IsIGN1cnNvclR5cGUsIHRhc2tUeXBlLCB0cmFuc2Fj
dGlvbiwgb2JqZWN0U3RvcmVJZCkpOwogICAgIH0KQEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgY2xvc2UoKTsKIAogcHJpdmF0ZToKLSAgICBJREJDdXJzb3JCYWNrZW5kTGV2ZWxE
QihQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4sIEluZGV4ZWREQjo6
Q3Vyc29yVHlwZSwgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSwgSURCVHJh
bnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiosIGludDY0X3Qgb2JqZWN0U3RvcmVJZCk7CisgICAgSURC
Q3Vyc29yQmFja2VuZExldmVsREIoUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6
OkN1cnNvcj4sIEluZGV4ZWREQjo6Q3Vyc29yVHlwZSwgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlOjpUYXNrVHlwZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiosIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCk7CiAKICAgICBjbGFzcyBDdXJzb3JJdGVyYXRpb25PcGVyYXRpb247CiAgICAg
Y2xhc3MgQ3Vyc29yQWR2YW5jZU9wZXJhdGlvbjsKQEAgLTgwLDggKzgwLDggQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gbV90cmFuc2FjdGlvbjsK
ICAgICBjb25zdCBpbnQ2NF90IG1fb2JqZWN0U3RvcmVJZDsKIAotICAgIFJlZlB0cjxJREJCYWNr
aW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IG1fY3Vyc29yOyAvLyBNdXN0IGJlIGRlc3Ryb3llZCBi
ZWZvcmUgbV90cmFuc2FjdGlvbi4KLSAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6
Q3Vyc29yPiBtX3NhdmVkQ3Vyc29yOyAvLyBNdXN0IGJlIGRlc3Ryb3llZCBiZWZvcmUgbV90cmFu
c2FjdGlvbi4KKyAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IG1f
Y3Vyc29yOyAvLyBNdXN0IGJlIGRlc3Ryb3llZCBiZWZvcmUgbV90cmFuc2FjdGlvbi4KKyAgICBS
ZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IG1fc2F2ZWRDdXJzb3I7IC8v
IE11c3QgYmUgZGVzdHJveWVkIGJlZm9yZSBtX3RyYW5zYWN0aW9uLgogCiAgICAgYm9vbCBtX2Ns
b3NlZDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9s
ZXZlbGRiL0lEQkRhdGFiYXNlQmFja2VuZExldmVsREIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCLmNwcAppbmRl
eCBiODg3MTY2Li41Y2E4NmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9sZXZlbGRiL0lEQkRhdGFiYXNlQmFja2VuZExldmVsREIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRGF0YWJhc2VCYWNrZW5kTGV2
ZWxEQi5jcHAKQEAgLTQyLDE1ICs0MiwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBh
c3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQj4gSURCRGF0YWJhc2VCYWNrZW5kTGV2
ZWxEQjo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiog
ZGF0YWJhc2UsIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiBmYWN0b3J5LCBjb25zdCBTdHJp
bmcmIHVuaXF1ZUlkZW50aWZpZXIpCitQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZExldmVs
REI+IElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUs
IElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2luZ1N0b3JlLCBJREJGYWN0b3J5QmFja2Vu
ZEludGVyZmFjZSogZmFjdG9yeSwgY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKQogewot
ICAgIFJlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCPiBiYWNrZW5kID0gYWRvcHRSZWYo
bmV3IElEQkRhdGFiYXNlQmFja2VuZExldmVsREIobmFtZSwgZGF0YWJhc2UsIGZhY3RvcnksIHVu
aXF1ZUlkZW50aWZpZXIpKTsKKyAgICBSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQj4g
YmFja2VuZCA9IGFkb3B0UmVmKG5ldyBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCKG5hbWUsIGJh
Y2tpbmdTdG9yZSwgZmFjdG9yeSwgdW5pcXVlSWRlbnRpZmllcikpOwogICAgIGlmICghYmFja2Vu
ZC0+b3BlbkludGVybmFsKCkpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBiYWNrZW5k
LnJlbGVhc2UoKTsKIH0KIAotSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6SURCRGF0YWJhc2VC
YWNrZW5kTGV2ZWxEQihjb25zdCBTdHJpbmcmIG5hbWUsIElEQkJhY2tpbmdTdG9yZUxldmVsREIq
IGJhY2tpbmdTdG9yZSwgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqIGZhY3RvcnksIGNvbnN0
IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcikKK0lEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OklE
QkRhdGFiYXNlQmFja2VuZExldmVsREIoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqIGZh
Y3RvcnksIGNvbnN0IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcikKICAgICA6IG1fYmFja2luZ1N0
b3JlKGJhY2tpbmdTdG9yZSkKICAgICAsIG1fbWV0YWRhdGEobmFtZSwgSW52YWxpZElkLCAwLCBJ
bnZhbGlkSWQpCiAgICAgLCBtX2lkZW50aWZpZXIodW5pcXVlSWRlbnRpZmllcikKQEAgLTExOCw5
ICsxMTgsOSBAQCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjp+SURCRGF0YWJhc2VCYWNrZW5k
TGV2ZWxEQigpCiB7CiB9CiAKLVBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4gSURC
RGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6YmFja2luZ1N0b3JlKCkgY29uc3QKK0lEQkJhY2tpbmdT
dG9yZUludGVyZmFjZSogSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6YmFja2luZ1N0b3JlKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV9iYWNraW5nU3RvcmU7CisgICAgcmV0dXJuIG1fYmFja2lu
Z1N0b3JlLmdldCgpOwogfQogCiB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmNyZWF0
ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmIGtleVBhdGgsIGJvb2wgYXV0
b0luY3JlbWVudCkKQEAgLTI0Niw3ICsyNDYsNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExl
dmVsREI6OnNldEluZGV4S2V5cyhpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZQog
ICAgIEFTU0VSVCh0cmFuc2FjdGlvbi0+bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25W
ZXJzaW9uQ2hhbmdlKTsKIAogICAgIFJlZlB0cjxJREJLZXk+IHByaW1hcnlLZXkgPSBwcnBQcmlt
YXJ5S2V5OwotICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCPiBzdG9yZSA9IGJhY2tp
bmdTdG9yZSgpOworICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U+IHN0b3JlID0g
YmFja2luZ1N0b3JlKCk7CiAgICAgLy8gRklYTUU6IFRoaXMgbWV0aG9kIGNvdWxkIGJlIGFzeW5j
aHJvbm91cywgYnV0IHdlIG5lZWQgdG8gZXZhbHVhdGUgaWYgaXQncyB3b3J0aCB0aGUgZXh0cmEg
Y29tcGxleGl0eS4KICAgICBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpSZWNvcmRJZGVudGlmaWVy
IHJlY29yZElkZW50aWZpZXI7CiAgICAgYm9vbCBmb3VuZCA9IGZhbHNlOwpAQCAtNDI2LDcgKzQy
Niw4IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6cHJvY2Vzc1BlbmRpbmdDYWxs
cygpCiAKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6Y3JlYXRlVHJhbnNhY3Rpb24o
aW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBj
YWxsYmFja3MsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVk
IHNob3J0IG1vZGUpCiB7Ci0gICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+
IHRyYW5zYWN0aW9uID0gSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6Y3JlYXRlKG1fYmFj
a2luZ1N0b3JlLmdldCgpLCB0cmFuc2FjdGlvbklkLCBjYWxsYmFja3MsIG9iamVjdFN0b3JlSWRz
LCBzdGF0aWNfY2FzdDxJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZT4obW9kZSksIHRoaXMpOwor
ICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uID0g
bV9mYWN0b3J5LT5jcmVhdGVUcmFuc2FjdGlvbkJhY2tlbmQodGhpcywgdHJhbnNhY3Rpb25JZCwg
Y2FsbGJhY2tzLCBvYmplY3RTdG9yZUlkcywgc3RhdGljX2Nhc3Q8SW5kZXhlZERCOjpUcmFuc2Fj
dGlvbk1vZGU+KG1vZGUpKTsKKwogICAgIEFTU0VSVCghbV90cmFuc2FjdGlvbnMuY29udGFpbnMo
dHJhbnNhY3Rpb25JZCkpOwogICAgIG1fdHJhbnNhY3Rpb25zLmFkZCh0cmFuc2FjdGlvbklkLCB0
cmFuc2FjdGlvbi5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9sZXZlbGRiL0lEQkRhdGFiYXNlQmFja2VuZExldmVsREIuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxE
Qi5oCmluZGV4IDc2MmM3ZDEuLjNhMDUwZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRGF0YWJhc2VCYWNr
ZW5kTGV2ZWxEQi5oCkBAIC0zNyw3ICszNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjsKK2NsYXNzIElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTsKIGNsYXNzIElEQkRhdGFiYXNlOwogY2xhc3MgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZh
Y2U7CiBjbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7CkBAIC00NSwxMCArNDUs
MTAgQEAgY2xhc3MgSURCVHJhbnNhY3Rpb25Db29yZGluYXRvckxldmVsREI7CiAKIGNsYXNzIElE
QkRhdGFiYXNlQmFja2VuZExldmVsREIgOiBwdWJsaWMgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRM
ZXZlbERCPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJCYWNraW5nU3RvcmVMZXZlbERC
KiBkYXRhYmFzZSwgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqLCBjb25zdCBTdHJpbmcmIHVu
aXF1ZUlkZW50aWZpZXIpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2Vu
ZExldmVsREI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZSosIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiwgY29uc3QgU3RyaW5nJiB1bmlxdWVJ
ZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5JREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCKCk7CiAK
LSAgICBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+IGJhY2tpbmdTdG9yZSgpIGNv
bnN0OworICAgIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2luZ1N0b3JlKCkgY29uc3Q7
CiAKICAgICBzdGF0aWMgY29uc3QgaW50NjRfdCBJbnZhbGlkSWQgPSAwOwogICAgIGludDY0X3Qg
aWQoKSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLmlkOyB9CkBAIC05Myw3ICs5Myw3IEBAIHB1
YmxpYzoKICAgICBjbGFzcyBWZXJzaW9uQ2hhbmdlQWJvcnRPcGVyYXRpb247CiAKIHByaXZhdGU6
Ci0gICAgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQihjb25zdCBTdHJpbmcmIG5hbWUsIElEQkJh
Y2tpbmdTdG9yZUxldmVsREIqIGRhdGFiYXNlLCBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSos
IGNvbnN0IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcik7CisgICAgSURCRGF0YWJhc2VCYWNrZW5k
TGV2ZWxEQihjb25zdCBTdHJpbmcmIG5hbWUsIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSosIElE
QkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiwgY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVy
KTsKIAogICAgIGJvb2wgb3BlbkludGVybmFsKCk7CiAgICAgdm9pZCBydW5JbnRWZXJzaW9uQ2hh
bmdlVHJhbnNhY3Rpb24oUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQkRh
dGFiYXNlQ2FsbGJhY2tzPiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IHJlcXVlc3Rl
ZFZlcnNpb24pOwpAQCAtMTAzLDcgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0RlbGV0
ZURhdGFiYXNlQmxvY2tlZCgpOwogICAgIHZvaWQgZGVsZXRlRGF0YWJhc2VGaW5hbChQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4pOwogCi0gICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+
IG1fYmFja2luZ1N0b3JlOworICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U+IG1f
YmFja2luZ1N0b3JlOwogICAgIElEQkRhdGFiYXNlTWV0YWRhdGEgbV9tZXRhZGF0YTsKIAogICAg
IFN0cmluZyBtX2lkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9sZXZlbGRiL0lEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQi5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExldmVsREIu
aAppbmRleCBmZjA5ZDNmLi43YTMzMGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRmFjdG9yeUJhY2tlbmRM
ZXZlbERCLmgKQEAgLTU4LDEwICs1OCwxMyBAQCBwdWJsaWM6CiAgICAgLy8gTm90aWZpY2F0aW9u
cyBmcm9tIHdlYWsgcG9pbnRlcnMuCiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUlEQkRhdGFiYXNl
QmFja2VuZChjb25zdCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIpIE9WRVJSSURFIEZJTkFMOwog
Ci0gICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IGNvbnN0IFN0cmluZyYgZGF0YURpcik7Ci0gICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3Ry
aW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgUGFz
c1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBT
dHJpbmcmIGRhdGFEaXIpOworICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpIE9WRVJSSURFIEZJTkFMOwor
ICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9u
LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSBPVkVSUklERSBG
SU5BTDsKKworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5h
bWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4s
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpIE9WRVJSSURF
IEZJTkFMOworCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb25CYWNrZW5kKElEQkRhdGFiYXNlQmFja2VuZExldmVs
REIqLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFj
a3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSkg
T1ZFUlJJREUgRklOQUw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3Qg
U3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGly
KTsKIAogcHJvdGVjdGVkOgogICAgIElEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmplY3RT
dG9yZUJhY2tlbmRMZXZlbERCLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2xldmVsZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5jcHAKaW5kZXggY2RhZjE0OS4u
NDI0MDViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2
ZWxkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREIu
Y3BwCkBAIC00NCw3ICs0NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBJREJP
YmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpJbmRleFdyaXRlcjo6dmVyaWZ5SW5kZXhLZXlzKElE
QkJhY2tpbmdTdG9yZUxldmVsREImIGJhY2tpbmdTdG9yZSwgSURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGJvb2wmIGNhbkFkZEtleXMsIGNvbnN0
IElEQktleSogcHJpbWFyeUtleSwgU3RyaW5nKiBlcnJvck1lc3NhZ2UpIGNvbnN0Citib29sIElE
Qk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6OkluZGV4V3JpdGVyOjp2ZXJpZnlJbmRleEtleXMo
SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlJiBiYWNraW5nU3RvcmUsIElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBib29sJiBjYW5BZGRLZXlzLCBj
b25zdCBJREJLZXkqIHByaW1hcnlLZXksIFN0cmluZyogZXJyb3JNZXNzYWdlKSBjb25zdAogewog
ICAgIGNhbkFkZEtleXMgPSBmYWxzZTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1faW5k
ZXhLZXlzLnNpemUoKTsgKytpKSB7CkBAIC02MSw3ICs2MSw3IEBAIGJvb2wgSURCT2JqZWN0U3Rv
cmVCYWNrZW5kTGV2ZWxEQjo6SW5kZXhXcml0ZXI6OnZlcmlmeUluZGV4S2V5cyhJREJCYWNraW5n
U3RvcmVMCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5k
TGV2ZWxEQjo6SW5kZXhXcml0ZXI6OndyaXRlSW5kZXhLZXlzKGNvbnN0IElEQkJhY2tpbmdTdG9y
ZUxldmVsREI6OlJlY29yZElkZW50aWZpZXImIHJlY29yZElkZW50aWZpZXIsIElEQkJhY2tpbmdT
dG9yZUxldmVsREImIGJhY2tpbmdTdG9yZSwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFu
c2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkKSBjb25zdAordm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpJbmRleFdy
aXRlcjo6d3JpdGVJbmRleEtleXMoY29uc3QgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6UmVjb3Jk
SWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllciwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlJiBi
YWNraW5nU3RvcmUsIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5z
YWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkgY29uc3QK
IHsKICAgICBpbnQ2NF90IGluZGV4SWQgPSBtX2luZGV4TWV0YWRhdGEuaWQ7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBtX2luZGV4S2V5cy5zaXplKCk7ICsraSkgewpAQCAtNzEsNyArNzEs
NyBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6OkluZGV4V3JpdGVyOjp3cml0
ZUluZGV4S2V5cyhjb25zdCBJREJCYWNraW5nUwogICAgIH0KIH0KIAotYm9vbCBJREJPYmplY3RT
dG9yZUJhY2tlbmRMZXZlbERCOjpJbmRleFdyaXRlcjo6YWRkaW5nS2V5QWxsb3dlZChJREJCYWNr
aW5nU3RvcmVMZXZlbERCJiBiYWNraW5nU3RvcmUsIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6
VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkqIGluZGV4S2V5LCBjb25z
dCBJREJLZXkqIHByaW1hcnlLZXksIGJvb2wmIGFsbG93ZWQpIGNvbnN0Citib29sIElEQk9iamVj
dFN0b3JlQmFja2VuZExldmVsREI6OkluZGV4V3JpdGVyOjphZGRpbmdLZXlBbGxvd2VkKElEQkJh
Y2tpbmdTdG9yZUludGVyZmFjZSYgYmFja2luZ1N0b3JlLCBJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5KiBpbmRleEtleSwg
Y29uc3QgSURCS2V5KiBwcmltYXJ5S2V5LCBib29sJiBhbGxvd2VkKSBjb25zdAogewogICAgIGFs
bG93ZWQgPSBmYWxzZTsKICAgICBpZiAoIW1faW5kZXhNZXRhZGF0YS51bmlxdWUpIHsKQEAgLTg5
LDcgKzg5LDcgQEAgYm9vbCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpJbmRleFdyaXRl
cjo6YWRkaW5nS2V5QWxsb3dlZChJREJCYWNraW5nU3RvcmUKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotYm9vbCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjptYWtlSW5kZXhXcml0ZXJzKFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbiwgSURC
QmFja2luZ1N0b3JlTGV2ZWxEQiogYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNv
bnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmIG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElEQktl
eT4gcHJpbWFyeUtleSwgYm9vbCBrZXlXYXNHZW5lcmF0ZWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90
PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6Oklu
ZGV4S2V5cz4mIGluZGV4S2V5cywgVmVjdG9yPE93blB0cjxJbmRleFdyaXRlcj4+KiBpbmRleFdy
aXRlcnMsIFN0cmluZyogZXJyb3JNZXNzYWdlLCBib29sJiBjb21wbGV0ZWQpCitib29sIElEQk9i
amVjdFN0b3JlQmFja2VuZExldmVsREI6Om1ha2VJbmRleFdyaXRlcnMoUGFzc1JlZlB0cjxJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmpl
Y3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlL
ZXksIGJvb2wga2V5V2FzR2VuZXJhdGVkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRz
LCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXM+JiBp
bmRleEtleXMsIFZlY3RvcjxPd25QdHI8SW5kZXhXcml0ZXI+PiogaW5kZXhXcml0ZXJzLCBTdHJp
bmcqIGVycm9yTWVzc2FnZSwgYm9vbCYgY29tcGxldGVkKQogewogICAgIEFTU0VSVChpbmRleElk
cy5zaXplKCkgPT0gaW5kZXhLZXlzLnNpemUoKSk7CiAgICAgY29tcGxldGVkID0gZmFsc2U7CkBA
IC0xMjIsNyArMTIyLDcgQEAgYm9vbCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjptYWtl
SW5kZXhXcml0ZXJzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWMKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotUGFzc1JlZlB0cjxJREJLZXk+IElEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6
OmdlbmVyYXRlS2V5KFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4gYmFja2luZ1N0
b3JlLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+IHRyYW5zYWN0aW9u
LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkKK1Bhc3NSZWZQdHI8
SURCS2V5PiBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpnZW5lcmF0ZUtleShQYXNzUmVm
UHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZT4gYmFja2luZ1N0b3JlLCBQYXNzUmVmUHRyPElE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+IHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkKIHsKICAgICBjb25zdCBpbnQ2NF90IG1heEdlbmVy
YXRvclZhbHVlID0gOTAwNzE5OTI1NDc0MDk5MkxMOyAvLyBNYXhpbXVtIGludGVnZXIgc3RvcmFi
bGUgYXMgRUNNQVNjcmlwdCBudW1iZXIuCiAgICAgaW50NjRfdCBjdXJyZW50TnVtYmVyOwpAQCAt
MTM3LDcgKzEzNyw3IEBAIFBhc3NSZWZQdHI8SURCS2V5PiBJREJPYmplY3RTdG9yZUJhY2tlbmRM
ZXZlbERCOjpnZW5lcmF0ZUtleShQYXNzUmVmUHRyPElEQkJhY2tpCiAgICAgcmV0dXJuIElEQktl
eTo6Y3JlYXRlTnVtYmVyKGN1cnJlbnROdW1iZXIpOwogfQogCi1ib29sIElEQk9iamVjdFN0b3Jl
QmFja2VuZExldmVsREI6OnVwZGF0ZUtleUdlbmVyYXRvcihQYXNzUmVmUHRyPElEQkJhY2tpbmdT
dG9yZUxldmVsREI+IGJhY2tpbmdTdG9yZSwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tl
bmRMZXZlbERCPiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGNvbnN0IElEQktleSoga2V5LCBib29sIGNoZWNrQ3VycmVudCkKK2Jvb2wgSURC
T2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQjo6dXBkYXRlS2V5R2VuZXJhdG9yKFBhc3NSZWZQdHI8
SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlPiBiYWNraW5nU3RvcmUsIFBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkqIGtleSwgYm9vbCBjaGVja0N1cnJl
bnQpCiB7CiAgICAgQVNTRVJUKGtleSAmJiBrZXktPnR5cGUoKSA9PSBJREJLZXk6Ok51bWJlclR5
cGUpOwogICAgIHJldHVybiBiYWNraW5nU3RvcmUtPm1heWJlVXBkYXRlS2V5R2VuZXJhdG9yQ3Vy
cmVudE51bWJlcih0cmFuc2FjdGlvbi0+YmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSwgZGF0YWJh
c2VJZCwgb2JqZWN0U3RvcmVJZCwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oZmxvb3Ioa2V5LT5udW1i
ZXIoKSkpICsgMSwgY2hlY2tDdXJyZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmplY3RTdG9yZUJh
Y2tlbmRMZXZlbERCLmgKaW5kZXggZjk1YjViNC4uMmU4MmRlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRM
ZXZlbERCLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9J
REJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCLmgKQEAgLTU1LDIxICs1NSwyMSBAQCBuYW1lc3Bh
Y2UgSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQiB7CiAgICAgICAgICAgICAsIG1faW5kZXhL
ZXlzKGluZGV4S2V5cykKICAgICAgICAgeyB9CiAKLSAgICAgICAgYm9vbCB2ZXJpZnlJbmRleEtl
eXMoSURCQmFja2luZ1N0b3JlTGV2ZWxEQiYsIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJh
bnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50
NjRfdCBpbmRleElkLCBib29sJiBjYW5BZGRLZXlzLCBjb25zdCBJREJLZXkqIHByaW1hcnlLZXkg
PSAwLCBTdHJpbmcqIGVycm9yTWVzc2FnZSA9IDApIGNvbnN0IFdBUk5fVU5VU0VEX1JFVFVSTjsK
KyAgICAgICAgYm9vbCB2ZXJpZnlJbmRleEtleXMoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlJiwg
SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJ
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGJvb2wmIGNhbkFkZEtl
eXMsIGNvbnN0IElEQktleSogcHJpbWFyeUtleSA9IDAsIFN0cmluZyogZXJyb3JNZXNzYWdlID0g
MCkgY29uc3QgV0FSTl9VTlVTRURfUkVUVVJOOwogCi0gICAgICAgIHZvaWQgd3JpdGVJbmRleEtl
eXMoY29uc3QgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6UmVjb3JkSWRlbnRpZmllciYsIElEQkJh
Y2tpbmdTdG9yZUxldmVsREImLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9u
KiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIGNvbnN0OworICAg
ICAgICB2b2lkIHdyaXRlSW5kZXhLZXlzKGNvbnN0IElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlJl
Y29yZElkZW50aWZpZXImLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UmLCBJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgYm9vbCBhZGRpbmdL
ZXlBbGxvd2VkKElEQkJhY2tpbmdTdG9yZUxldmVsREImLCBJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5KiBpbmRleEtleSwgY29uc3QgSURCS2V5
KiBwcmltYXJ5S2V5LCBib29sJiBhbGxvd2VkKSBjb25zdCBXQVJOX1VOVVNFRF9SRVRVUk47Cisg
ICAgICAgIGJvb2wgYWRkaW5nS2V5QWxsb3dlZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UmLCBJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5KiBp
bmRleEtleSwgY29uc3QgSURCS2V5KiBwcmltYXJ5S2V5LCBib29sJiBhbGxvd2VkKSBjb25zdCBX
QVJOX1VOVVNFRF9SRVRVUk47CiAKICAgICAgICAgY29uc3QgSURCSW5kZXhNZXRhZGF0YSBtX2lu
ZGV4TWV0YWRhdGE7CiAgICAgICAgIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6SW5kZXhL
ZXlzIG1faW5kZXhLZXlzOwogICAgIH07CiAKLSAgICBib29sIG1ha2VJbmRleFdyaXRlcnMoUGFz
c1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBJREJCYWNraW5nU3RvcmVM
ZXZlbERCKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRh
JiwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIGJvb2wga2V5V2FzR2VuZXJhdGVkLCBj
b25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VC
YWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXM+JiwgVmVjdG9yPE93blB0cjxJbmRleFdyaXRlcj4+
KiBpbmRleFdyaXRlcnMsIFN0cmluZyogZXJyb3JNZXNzYWdlLCBib29sJiBjb21wbGV0ZWQpIFdB
Uk5fVU5VU0VEX1JFVFVSTjsKKyAgICBib29sIG1ha2VJbmRleFdyaXRlcnMoUGFzc1JlZlB0cjxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2Uq
LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmLCBQYXNz
UmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgYm9vbCBrZXlXYXNHZW5lcmF0ZWQsIGNvbnN0IFZl
Y3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZUJhY2tlbmRJ
bnRlcmZhY2U6OkluZGV4S2V5cz4mLCBWZWN0b3I8T3duUHRyPEluZGV4V3JpdGVyPj4qIGluZGV4
V3JpdGVycywgU3RyaW5nKiBlcnJvck1lc3NhZ2UsIGJvb2wmIGNvbXBsZXRlZCkgV0FSTl9VTlVT
RURfUkVUVVJOOwogCi0gICAgUGFzc1JlZlB0cjxJREJLZXk+IGdlbmVyYXRlS2V5KFBhc3NSZWZQ
dHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQj4sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKTsK
LSAgICBib29sIHVwZGF0ZUtleUdlbmVyYXRvcihQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxl
dmVsREI+LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+LCBpbnQ2NF90
IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5KiwgYm9vbCBj
aGVja0N1cnJlbnQpOworICAgIFBhc3NSZWZQdHI8SURCS2V5PiBnZW5lcmF0ZUtleShQYXNzUmVm
UHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZT4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kTGV2ZWxEQj4sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
KTsKKyAgICBib29sIHVwZGF0ZUtleUdlbmVyYXRvcihQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9y
ZUludGVyZmFjZT4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4sIGlu
dDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkqLCBi
b29sIGNoZWNrQ3VycmVudCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0
aW9uQmFja2VuZExldmVsREIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
bGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCLmNwcAppbmRleCBhM2EzYmNmLi5l
NGVhNGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZl
bGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQi5j
cHAKQEAgLTQwLDI3ICs0MCwyNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2
ZWxEQjo6Y3JlYXRlKElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRf
dCBpZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBW
ZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9k
ZSBtb2RlLCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCKiBkYXRhYmFzZSkKK1Bhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxE
Qjo6Y3JlYXRlKElEQkRhdGFiYXNlQmFja2VuZExldmVsREIqIGRhdGFiYXNlQmFja2VuZCwgaW50
NjRfdCBpZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25z
dCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCBJbmRleGVkREI6OlRyYW5zYWN0aW9u
TW9kZSBtb2RlKQogewogICAgIEhhc2hTZXQ8aW50NjRfdD4gb2JqZWN0U3RvcmVIYXNoU2V0Owog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2JqZWN0U3RvcmVJZHMuc2l6ZSgpOyArK2kpCiAg
ICAgICAgIG9iamVjdFN0b3JlSGFzaFNldC5hZGQob2JqZWN0U3RvcmVJZHNbaV0pOwogCi0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKGJhY2tpbmdT
dG9yZSwgaWQsIGNhbGxiYWNrcywgb2JqZWN0U3RvcmVIYXNoU2V0LCBtb2RlLCBkYXRhYmFzZSkp
OworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQihk
YXRhYmFzZUJhY2tlbmQsIGlkLCBjYWxsYmFja3MsIG9iamVjdFN0b3JlSGFzaFNldCwgbW9kZSkp
OwogfQogCi1JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpJREJUcmFuc2FjdGlvbkJhY2tl
bmRMZXZlbERCKElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBp
ZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBIYXNo
U2V0PGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUg
bW9kZSwgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQiogZGF0YWJhc2UpCitJREJUcmFuc2FjdGlv
bkJhY2tlbmRMZXZlbERCOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKElEQkRhdGFiYXNl
QmFja2VuZExldmVsREIqIGRhdGFiYXNlQmFja2VuZCwgaW50NjRfdCBpZCwgUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBIYXNoU2V0PGludDY0X3Q+JiBv
YmplY3RTdG9yZUlkcywgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUgbW9kZSkKICAgICA6IElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZShpZCkKICAgICAsIG1fb2JqZWN0U3RvcmVJZHMo
b2JqZWN0U3RvcmVJZHMpCiAgICAgLCBtX21vZGUobW9kZSkKICAgICAsIG1fc3RhdGUoVW51c2Vk
KQogICAgICwgbV9jb21taXRQZW5kaW5nKGZhbHNlKQogICAgICwgbV9jYWxsYmFja3MoY2FsbGJh
Y2tzKQotICAgICwgbV9kYXRhYmFzZShkYXRhYmFzZSkKLSAgICAsIG1fdHJhbnNhY3Rpb24oZGF0
YWJhc2UtPmJhY2tpbmdTdG9yZSgpLmdldCgpKQorICAgICwgbV9kYXRhYmFzZShkYXRhYmFzZUJh
Y2tlbmQpCisgICAgLCBtX3RyYW5zYWN0aW9uKGRhdGFiYXNlQmFja2VuZC0+YmFja2luZ1N0b3Jl
KCkpCiAgICAgLCBtX3Rhc2tUaW1lcih0aGlzLCAmSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxE
Qjo6dGFza1RpbWVyRmlyZWQpCiAgICAgLCBtX3BlbmRpbmdQcmVlbXB0aXZlRXZlbnRzKDApCi0g
ICAgLCBtX2JhY2tpbmdTdG9yZShiYWNraW5nU3RvcmUpCisgICAgLCBtX2JhY2tpbmdTdG9yZShk
YXRhYmFzZUJhY2tlbmQtPmJhY2tpbmdTdG9yZSgpKQogewogICAgIC8vIFdlIHBhc3MgYSByZWZl
cmVuY2Ugb2YgdGhpcyBvYmplY3QgYmVmb3JlIGl0IGNhbiBiZSBhZG9wdGVkLgogICAgIHJlbGF4
QWRvcHRpb25SZXF1aXJlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2Vu
ZExldmVsREIuaAppbmRleCBhM2Y2YzFkLi4yMmEzZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVs
REIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRy
YW5zYWN0aW9uQmFja2VuZExldmVsREIuaApAQCAtNDYsNyArNDYsNyBAQCBjbGFzcyBJREJEYXRh
YmFzZUNhbGxiYWNrczsKIAogY2xhc3MgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiA6IHB1
YmxpYyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+IGNyZWF0ZShJREJCYWNr
aW5nU3RvcmVMZXZlbERCKiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRh
dGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgSW5kZXhlZERCOjpUcmFu
c2FjdGlvbk1vZGUsIElEQkRhdGFiYXNlQmFja2VuZExldmVsREIqKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiBjcmVhdGUoSURCRGF0YWJhc2VC
YWNrZW5kTGV2ZWxEQiosIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIEluZGV4ZWREQjo6VHJhbnNh
Y3Rpb25Nb2RlKTsKICAgICB2aXJ0dWFsIH5JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0KCkgT1ZFUlJJREUgRklOQUw7CkBAIC04Niw3ICs4
Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDbGVhck9wZXJhdGlvbihp
bnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgT1ZFUlJJREUg
RklOQUw7CiAgICAgCiBwcml2YXRlOgotICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIo
SURCQmFja2luZ1N0b3JlTGV2ZWxEQiosIGludDY0X3QgaWQsIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VDYWxsYmFja3M+LCBjb25zdCBIYXNoU2V0PGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgSW5k
ZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUsIElEQkRhdGFiYXNlQmFja2VuZExldmVsREIqKTsKKyAg
ICBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKElEQkRhdGFiYXNlQmFja2VuZExldmVsREIq
LCBpbnQ2NF90IGlkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgSGFz
aFNldDxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2Rl
KTsKIAogICAgIGVudW0gU3RhdGUgewogICAgICAgICBVbnVzZWQsIC8vIENyZWF0ZWQsIGJ1dCBu
byB0YXNrcyB5ZXQuCkBAIC0xMjQsNyArMTI0LDcgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hTZXQ8
SURCQ3Vyc29yQmFja2VuZExldmVsREIqPiBtX29wZW5DdXJzb3JzOwogICAgIAotICAgIFJlZlB0
cjxJREJCYWNraW5nU3RvcmVMZXZlbERCPiBtX2JhY2tpbmdTdG9yZTsKKyAgICBSZWZQdHI8SURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlPiBtX2JhY2tpbmdTdG9yZTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQk9wZXJhdGlvbnMuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tl
bmRMZXZlbERCT3BlcmF0aW9ucy5jcHAKaW5kZXggOWU4ZGUwNi4uNmUxNDQwZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlv
bkJhY2tlbmRMZXZlbERCT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCT3BlcmF0aW9u
cy5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBHZXRPcGVyYXRpb246OnBlcmZvcm0oKQogICAg
IGlmIChtX2tleVJhbmdlLT5pc09ubHlLZXkoKSkKICAgICAgICAga2V5ID0gbV9rZXlSYW5nZS0+
bG93ZXIoKTsKICAgICBlbHNlIHsKLSAgICAgICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVs
REI6OkN1cnNvcj4gYmFja2luZ1N0b3JlQ3Vyc29yOworICAgICAgICBSZWZQdHI8SURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvcjsKICAgICAgICAgaWYg
KG1faW5kZXhJZCA9PSBJREJJbmRleE1ldGFkYXRhOjpJbnZhbGlkSWQpIHsKICAgICAgICAgICAg
IEFTU0VSVChtX2N1cnNvclR5cGUgIT0gSW5kZXhlZERCOjpDdXJzb3JLZXlPbmx5KTsKICAgICAg
ICAgICAgIC8vIE9iamVjdFN0b3JlIFJldHJpZXZhbCBPcGVyYXRpb24KQEAgLTI2MSw3ICsyNjEs
NyBAQCB2b2lkIE9wZW5DdXJzb3JPcGVyYXRpb246OnBlcmZvcm0oKQogICAgIGlmIChtX3Rhc2tU
eXBlID09IElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6UHJlZW1wdGl2ZVRhc2spCiAgICAg
ICAgIG1fdHJhbnNhY3Rpb24tPmFkZFByZWVtcHRpdmVFdmVudCgpOwogCi0gICAgUmVmUHRyPElE
QkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gYmFja2luZ1N0b3JlQ3Vyc29yOworICAgIFJl
ZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gYmFja2luZ1N0b3JlQ3Vyc29y
OwogICAgIGlmIChtX2luZGV4SWQgPT0gSURCSW5kZXhNZXRhZGF0YTo6SW52YWxpZElkKSB7CiAg
ICAgICAgIEFTU0VSVChtX2N1cnNvclR5cGUgIT0gSW5kZXhlZERCOjpDdXJzb3JLZXlPbmx5KTsK
ICAgICAgICAgYmFja2luZ1N0b3JlQ3Vyc29yID0gbV9iYWNraW5nU3RvcmUtPm9wZW5PYmplY3RT
dG9yZUN1cnNvcihtX3RyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBtX2Rh
dGFiYXNlSWQsIG1fb2JqZWN0U3RvcmVJZCwgbV9rZXlSYW5nZS5nZXQoKSwgbV9kaXJlY3Rpb24p
OwpAQCAtMjg3LDcgKzI4Nyw3IEBAIHZvaWQgQ291bnRPcGVyYXRpb246OnBlcmZvcm0oKQogewog
ICAgIExPRyhTdG9yYWdlQVBJLCAiQ291bnRPcGVyYXRpb24iKTsKICAgICB1aW50MzJfdCBjb3Vu
dCA9IDA7Ci0gICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gYmFja2lu
Z1N0b3JlQ3Vyc29yOworICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNv
cj4gYmFja2luZ1N0b3JlQ3Vyc29yOwogCiAgICAgaWYgKG1faW5kZXhJZCA9PSBJREJJbmRleE1l
dGFkYXRhOjpJbnZhbGlkSWQpCiAgICAgICAgIGJhY2tpbmdTdG9yZUN1cnNvciA9IG1fYmFja2lu
Z1N0b3JlLT5vcGVuT2JqZWN0U3RvcmVLZXlDdXJzb3IobV90cmFuc2FjdGlvbi0+YmFja2luZ1N0
b3JlVHJhbnNhY3Rpb24oKSwgbV9kYXRhYmFzZUlkLCBtX29iamVjdFN0b3JlSWQsIG1fa2V5UmFu
Z2UuZ2V0KCksIEluZGV4ZWREQjo6Q3Vyc29yTmV4dCk7CkBAIC0zMDgsNyArMzA4LDcgQEAgdm9p
ZCBDb3VudE9wZXJhdGlvbjo6cGVyZm9ybSgpCiB2b2lkIERlbGV0ZVJhbmdlT3BlcmF0aW9uOjpw
ZXJmb3JtKCkKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIkRlbGV0ZVJhbmdlT3BlcmF0aW9uIik7
Ci0gICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gYmFja2luZ1N0b3Jl
Q3Vyc29yID0gbV9iYWNraW5nU3RvcmUtPm9wZW5PYmplY3RTdG9yZUN1cnNvcihtX3RyYW5zYWN0
aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBtX2RhdGFiYXNlSWQsIG1fb2JqZWN0U3Rv
cmVJZCwgbV9rZXlSYW5nZS5nZXQoKSwgSW5kZXhlZERCOjpDdXJzb3JOZXh0KTsKKyAgICBSZWZQ
dHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvciA9
IG1fYmFja2luZ1N0b3JlLT5vcGVuT2JqZWN0U3RvcmVDdXJzb3IobV90cmFuc2FjdGlvbi0+YmFj
a2luZ1N0b3JlVHJhbnNhY3Rpb24oKSwgbV9kYXRhYmFzZUlkLCBtX29iamVjdFN0b3JlSWQsIG1f
a2V5UmFuZ2UuZ2V0KCksIEluZGV4ZWREQjo6Q3Vyc29yTmV4dCk7CiAgICAgaWYgKGJhY2tpbmdT
dG9yZUN1cnNvcikgewogICAgICAgICBkbyB7CiAgICAgICAgICAgICBpZiAoIW1fYmFja2luZ1N0
b3JlLT5kZWxldGVSZWNvcmQobV90cmFuc2FjdGlvbi0+YmFja2luZ1N0b3JlVHJhbnNhY3Rpb24o
KSwgbV9kYXRhYmFzZUlkLCBtX29iamVjdFN0b3JlSWQsIGJhY2tpbmdTdG9yZUN1cnNvci0+cmVj
b3JkSWRlbnRpZmllcigpKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCT3BlcmF0aW9ucy5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlv
bkJhY2tlbmRMZXZlbERCT3BlcmF0aW9ucy5oCmluZGV4IGZhYTdkZjguLmM2YjMwYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNh
Y3Rpb25CYWNrZW5kTGV2ZWxEQk9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREJPcGVyYXRp
b25zLmgKQEAgLTM0LDEzICszNCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENy
ZWF0ZU9iamVjdFN0b3JlT3BlcmF0aW9uIDogcHVibGljIElEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREI6Ok9wZXJhdGlvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25C
YWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tp
bmdTdG9yZSwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2JqZWN0U3RvcmVNZXRhZGF0
YSkKKyAgICBzdGF0aWMgUGFzc093blB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpP
cGVyYXRpb24+IGNyZWF0ZShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlv
biwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKiBiYWNraW5nU3RvcmUsIGNvbnN0IElEQk9iamVj
dFN0b3JlTWV0YWRhdGEmIG9iamVjdFN0b3JlTWV0YWRhdGEpCiAgICAgewogICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IENyZWF0ZU9iamVjdFN0b3JlT3BlcmF0aW9uKHRyYW5zYWN0aW9uLCBi
YWNraW5nU3RvcmUsIG9iamVjdFN0b3JlTWV0YWRhdGEpKTsKICAgICB9CiAgICAgdmlydHVhbCB2
b2lkIHBlcmZvcm0oKSBPVkVSUklERSBGSU5BTDsKIHByaXZhdGU6Ci0gICAgQ3JlYXRlT2JqZWN0
U3RvcmVPcGVyYXRpb24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24s
IElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgY29uc3QgSURCT2JqZWN0U3Rv
cmVNZXRhZGF0YSYgb2JqZWN0U3RvcmVNZXRhZGF0YSkKKyAgICBDcmVhdGVPYmplY3RTdG9yZU9w
ZXJhdGlvbihJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFj
a2luZ1N0b3JlSW50ZXJmYWNlKiBiYWNraW5nU3RvcmUsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0
YWRhdGEmIG9iamVjdFN0b3JlTWV0YWRhdGEpCiAgICAgICAgIDogbV90cmFuc2FjdGlvbih0cmFu
c2FjdGlvbikKICAgICAgICAgLCBtX2JhY2tpbmdTdG9yZShiYWNraW5nU3RvcmUpCiAgICAgICAg
ICwgbV9vYmplY3RTdG9yZU1ldGFkYXRhKG9iamVjdFN0b3JlTWV0YWRhdGEpCkBAIC00OCwxOSAr
NDgsMTkgQEAgcHJpdmF0ZToKICAgICB9CiAgICAgCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZExldmVsREI+IG1fdHJhbnNhY3Rpb247Ci0gICAgY29uc3QgUmVmUHRyPElEQkJhY2tp
bmdTdG9yZUxldmVsREI+IG1fYmFja2luZ1N0b3JlOworICAgIGNvbnN0IFJlZlB0cjxJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2U+IG1fYmFja2luZ1N0b3JlOwogICAgIGNvbnN0IElEQk9iamVjdFN0
b3JlTWV0YWRhdGEgbV9vYmplY3RTdG9yZU1ldGFkYXRhOwogfTsKIAogY2xhc3MgRGVsZXRlT2Jq
ZWN0U3RvcmVPcGVyYXRpb24gOiBwdWJsaWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6
T3BlcmF0aW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRMZXZlbERCOjpPcGVyYXRpb24+IGNyZWF0ZShJREJUcmFuc2FjdGlvbkJhY2tlbmRM
ZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiogYmFja2luZ1N0b3Jl
LCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZU1ldGFkYXRhKQorICAg
IHN0YXRpYyBQYXNzT3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlv
bj4gY3JlYXRlKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJC
YWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgY29uc3QgSURCT2JqZWN0U3RvcmVN
ZXRhZGF0YSYgb2JqZWN0U3RvcmVNZXRhZGF0YSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFB0cihuZXcgRGVsZXRlT2JqZWN0U3RvcmVPcGVyYXRpb24odHJhbnNhY3Rpb24sIGJhY2tpbmdT
dG9yZSwgb2JqZWN0U3RvcmVNZXRhZGF0YSkpOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgcGVy
Zm9ybSgpIE9WRVJSSURFIEZJTkFMOwogcHJpdmF0ZToKLSAgICBEZWxldGVPYmplY3RTdG9yZU9w
ZXJhdGlvbihJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQiogYmFja2luZ1N0b3JlLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFk
YXRhJiBvYmplY3RTdG9yZU1ldGFkYXRhKQorICAgIERlbGV0ZU9iamVjdFN0b3JlT3BlcmF0aW9u
KElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYg
b2JqZWN0U3RvcmVNZXRhZGF0YSkKICAgICAgICAgOiBtX3RyYW5zYWN0aW9uKHRyYW5zYWN0aW9u
KQogICAgICAgICAsIG1fYmFja2luZ1N0b3JlKGJhY2tpbmdTdG9yZSkKICAgICAgICAgLCBtX29i
amVjdFN0b3JlTWV0YWRhdGEob2JqZWN0U3RvcmVNZXRhZGF0YSkKQEAgLTY4LDcgKzY4LDcgQEAg
cHJpdmF0ZToKICAgICB9CiAKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxE
Qj4gbV90cmFuc2FjdGlvbjsKLSAgICBjb25zdCBSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxE
Qj4gbV9iYWNraW5nU3RvcmU7CisgICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZT4gbV9iYWNraW5nU3RvcmU7CiAgICAgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSBt
X29iamVjdFN0b3JlTWV0YWRhdGE7CiB9OwogCkBAIC0xNTQsMTMgKzE1NCwxMyBAQCBwcml2YXRl
OgogCiBjbGFzcyBDcmVhdGVJbmRleE9wZXJhdGlvbiA6IHB1YmxpYyBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRMZXZlbERCOjpPcGVyYXRpb24gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRy
PElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbj4gY3JlYXRlKElEQlRyYW5z
YWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVMZXZlbERC
KiBiYWNraW5nU3RvcmUsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCSW5kZXhNZXRh
ZGF0YSYgaW5kZXhNZXRhZGF0YSkKKyAgICBzdGF0aWMgUGFzc093blB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRMZXZlbERCOjpPcGVyYXRpb24+IGNyZWF0ZShJREJUcmFuc2FjdGlvbkJhY2tlbmRM
ZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKiBiYWNraW5nU3Rv
cmUsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCSW5kZXhNZXRhZGF0YSYgaW5kZXhN
ZXRhZGF0YSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ3JlYXRlSW5kZXhP
cGVyYXRpb24odHJhbnNhY3Rpb24sIGJhY2tpbmdTdG9yZSwgb2JqZWN0U3RvcmVJZCwgaW5kZXhN
ZXRhZGF0YSkpOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybSgpIE9WRVJSSURFIEZJ
TkFMOwogcHJpdmF0ZToKLSAgICBDcmVhdGVJbmRleE9wZXJhdGlvbihJREJUcmFuc2FjdGlvbkJh
Y2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiogYmFja2lu
Z1N0b3JlLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQkluZGV4TWV0YWRhdGEmIGlu
ZGV4TWV0YWRhdGEpCisgICAgQ3JlYXRlSW5kZXhPcGVyYXRpb24oSURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2lu
Z1N0b3JlLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQkluZGV4TWV0YWRhdGEmIGlu
ZGV4TWV0YWRhdGEpCiAgICAgICAgIDogbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKICAgICAg
ICAgLCBtX2JhY2tpbmdTdG9yZShiYWNraW5nU3RvcmUpCiAgICAgICAgICwgbV9vYmplY3RTdG9y
ZUlkKG9iamVjdFN0b3JlSWQpCkBAIC0xNjksNyArMTY5LDcgQEAgcHJpdmF0ZToKICAgICB9CiAK
ICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gbV90cmFuc2FjdGlvbjsK
LSAgICBjb25zdCBSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4gbV9iYWNraW5nU3RvcmU7
CisgICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZT4gbV9iYWNraW5nU3Rv
cmU7CiAgICAgY29uc3QgaW50NjRfdCBtX29iamVjdFN0b3JlSWQ7CiAgICAgY29uc3QgSURCSW5k
ZXhNZXRhZGF0YSBtX2luZGV4TWV0YWRhdGE7CiB9OwpAQCAtMTk2LDEzICsxOTYsMTMgQEAgcHJp
dmF0ZToKIAogY2xhc3MgRGVsZXRlSW5kZXhPcGVyYXRpb24gOiBwdWJsaWMgSURCVHJhbnNhY3Rp
b25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093
blB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpPcGVyYXRpb24+IGNyZWF0ZShJREJU
cmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlTGV2
ZWxEQiogYmFja2luZ1N0b3JlLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQkluZGV4
TWV0YWRhdGEmIGluZGV4TWV0YWRhdGEpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNh
Y3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2lu
Z1N0b3JlLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQkluZGV4TWV0YWRhdGEmIGlu
ZGV4TWV0YWRhdGEpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERlbGV0ZUlu
ZGV4T3BlcmF0aW9uKHRyYW5zYWN0aW9uLCBiYWNraW5nU3RvcmUsIG9iamVjdFN0b3JlSWQsIGlu
ZGV4TWV0YWRhdGEpKTsKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm0oKSBPVkVSUklE
RSBGSU5BTDsKIHByaXZhdGU6Ci0gICAgRGVsZXRlSW5kZXhPcGVyYXRpb24oSURCVHJhbnNhY3Rp
b25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJh
Y2tpbmdTdG9yZSwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJJbmRleE1ldGFkYXRh
JiBpbmRleE1ldGFkYXRhKQorICAgIERlbGV0ZUluZGV4T3BlcmF0aW9uKElEQlRyYW5zYWN0aW9u
QmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJh
Y2tpbmdTdG9yZSwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJJbmRleE1ldGFkYXRh
JiBpbmRleE1ldGFkYXRhKQogICAgICAgICA6IG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCiAg
ICAgICAgICwgbV9iYWNraW5nU3RvcmUoYmFja2luZ1N0b3JlKQogICAgICAgICAsIG1fb2JqZWN0
U3RvcmVJZChvYmplY3RTdG9yZUlkKQpAQCAtMjExLDcgKzIxMSw3IEBAIHByaXZhdGU6CiAgICAg
fQogCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+IG1fdHJhbnNhY3Rp
b247Ci0gICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+IG1fYmFja2luZ1N0
b3JlOworICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U+IG1fYmFja2lu
Z1N0b3JlOwogICAgIGNvbnN0IGludDY0X3QgbV9vYmplY3RTdG9yZUlkOwogICAgIGNvbnN0IElE
QkluZGV4TWV0YWRhdGEgbV9pbmRleE1ldGFkYXRhOwogfTsKQEAgLTIzOCwxMyArMjM4LDEzIEBA
IHByaXZhdGU6CiAKIGNsYXNzIEdldE9wZXJhdGlvbiA6IHB1YmxpYyBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRMZXZlbERCOjpPcGVyYXRpb24gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRy
PElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbj4gY3JlYXRlKElEQlRyYW5z
YWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVMZXZlbERC
KiBiYWNraW5nU3RvcmUsIGNvbnN0IElEQkRhdGFiYXNlTWV0YWRhdGEmIG1ldGFkYXRhLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4ga2V5UmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbj4gY3JlYXRlKElEQlRyYW5zYWN0aW9uQmFj
a2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tp
bmdTdG9yZSwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYgbWV0YWRhdGEsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlS
YW5nZSwgSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiBjYWxsYmFja3MpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEdl
dE9wZXJhdGlvbih0cmFuc2FjdGlvbiwgYmFja2luZ1N0b3JlLCBtZXRhZGF0YSwgb2JqZWN0U3Rv
cmVJZCwgaW5kZXhJZCwga2V5UmFuZ2UsIGN1cnNvclR5cGUsIGNhbGxiYWNrcykpOwogICAgIH0K
ICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybSgpIE9WRVJSSURFIEZJTkFMOwogcHJpdmF0ZToKLSAg
ICBHZXRPcGVyYXRpb24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24s
IElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgY29uc3QgSURCRGF0YWJhc2VN
ZXRhZGF0YSYgbWV0YWRhdGEsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElk
LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgSW5kZXhlZERCOjpDdXJzb3JUeXBl
IGN1cnNvclR5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCisgICAgR2V0
T3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJC
YWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgY29uc3QgSURCRGF0YWJhc2VNZXRh
ZGF0YSYgbWV0YWRhdGEsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQ
YXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1
cnNvclR5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiAgICAgICAgIDog
bV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKICAgICAgICAgLCBtX2JhY2tpbmdTdG9yZShiYWNr
aW5nU3RvcmUpCiAgICAgICAgICwgbV9kYXRhYmFzZUlkKG1ldGFkYXRhLmlkKQpAQCAtMjYxLDcg
KzI2MSw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFj
a2VuZExldmVsREI+IG1fdHJhbnNhY3Rpb247Ci0gICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdT
dG9yZUxldmVsREI+IG1fYmFja2luZ1N0b3JlOworICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U+IG1fYmFja2luZ1N0b3JlOwogICAgIGNvbnN0IGludDY0X3QgbV9kYXRh
YmFzZUlkOwogICAgIGNvbnN0IGludDY0X3QgbV9vYmplY3RTdG9yZUlkOwogICAgIGNvbnN0IGlu
dDY0X3QgbV9pbmRleElkOwpAQCAtMjc0LDEzICsyNzQsMTMgQEAgcHJpdmF0ZToKIAogY2xhc3Mg
UHV0T3BlcmF0aW9uIDogcHVibGljIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJh
dGlvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxE
QiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50
NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9y
ZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5
LCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElk
cywgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiYg
aW5kZXhLZXlzKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREI6Ok9wZXJhdGlvbj4gY3JlYXRlKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRy
YW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgaW50NjRf
dCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZSwg
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+IGNhbGxiYWNrcywgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywg
Y29uc3QgVmVjdG9yPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiYgaW5k
ZXhLZXlzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQdXRPcGVyYXRpb24o
dHJhbnNhY3Rpb24sIGJhY2tpbmdTdG9yZSwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmUsIHZhbHVl
LCBrZXksIHB1dE1vZGUsIGNhbGxiYWNrcywgaW5kZXhJZHMsIGluZGV4S2V5cykpOwogICAgIH0K
ICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybSgpIE9WRVJSSURFIEZJTkFMOwogcHJpdmF0ZToKLSAg
ICBQdXRPcGVyYXRpb24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24s
IElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlk
LCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxT
aGFyZWRCdWZmZXI+JiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgSURCRGF0YWJhc2VC
YWNrZW5kSW50ZXJmYWNlOjpQdXRNb2RlIHB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiBjYWxsYmFja3MsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3Rv
cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4mIGluZGV4S2V5cykKKyAg
ICBQdXRPcGVyYXRpb24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24s
IElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmIG9iamVjdFN0b3JlLCBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4mIHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBJREJEYXRhYmFz
ZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+IGNhbGxiYWNrcywgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVj
dG9yPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQog
ICAgICAgICA6IG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCiAgICAgICAgICwgbV9iYWNraW5n
U3RvcmUoYmFja2luZ1N0b3JlKQogICAgICAgICAsIG1fZGF0YWJhc2VJZChkYXRhYmFzZUlkKQpA
QCAtMjk1LDcgKzI5NSw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZExldmVsREI+IG1fdHJhbnNhY3Rpb247Ci0gICAgY29uc3QgUmVmUHRyPElE
QkJhY2tpbmdTdG9yZUxldmVsREI+IG1fYmFja2luZ1N0b3JlOworICAgIGNvbnN0IFJlZlB0cjxJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U+IG1fYmFja2luZ1N0b3JlOwogICAgIGNvbnN0IGludDY0
X3QgbV9kYXRhYmFzZUlkOwogICAgIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEgbV9vYmpl
Y3RTdG9yZTsKICAgICBjb25zdCBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX3ZhbHVlOwpAQCAtMzI2
LDEzICszMjYsMTMgQEAgcHJpdmF0ZToKIAogY2xhc3MgT3BlbkN1cnNvck9wZXJhdGlvbiA6IHB1
YmxpYyBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpPcGVyYXRpb24gewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzT3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJh
dGlvbj4gY3JlYXRlKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJ
REJCYWNraW5nU3RvcmVMZXZlbERCKiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5
UmFuZ2U+IGtleVJhbmdlLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24sIElu
ZGV4ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2U6OlRhc2tUeXBlIHRhc2tUeXBlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tz
KQorICAgIHN0YXRpYyBQYXNzT3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9w
ZXJhdGlvbj4gY3JlYXRlKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9u
LCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJ
REJLZXlSYW5nZT4ga2V5UmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlv
biwgSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIElEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZTo6VGFza1R5cGUgdGFza1R5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxs
YmFja3MpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IE9wZW5DdXJzb3JPcGVy
YXRpb24odHJhbnNhY3Rpb24sIGJhY2tpbmdTdG9yZSwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJ
ZCwgaW5kZXhJZCwga2V5UmFuZ2UsIGRpcmVjdGlvbiwgY3Vyc29yVHlwZSwgdGFza1R5cGUsIGNh
bGxiYWNrcykpOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybSgpIE9WRVJSSURFIEZJ
TkFMOwogcHJpdmF0ZToKLSAgICBPcGVuQ3Vyc29yT3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFj
a2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVMZXZlbERCKiBiYWNraW5n
U3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90
IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBJbmRleGVkREI6OkN1
cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24sIEluZGV4ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBl
LCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlRhc2tUeXBlIHRhc2tUeXBlLCBQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQorICAgIE9wZW5DdXJzb3JPcGVyYXRpb24oSURC
VHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZSogYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5n
ZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uLCBJbmRleGVkREI6OkN1cnNv
clR5cGUgY3Vyc29yVHlwZSwgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSB0
YXNrVHlwZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKICAgICAgICAgOiBt
X3RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKQogICAgICAgICAsIG1fYmFja2luZ1N0b3JlKGJhY2tp
bmdTdG9yZSkKICAgICAgICAgLCBtX2RhdGFiYXNlSWQoZGF0YWJhc2VJZCkKQEAgLTM0Nyw3ICsz
NDcsNyBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tl
bmRMZXZlbERCPiBtX3RyYW5zYWN0aW9uOwotICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3Rv
cmVMZXZlbERCPiBtX2JhY2tpbmdTdG9yZTsKKyAgICBjb25zdCBSZWZQdHI8SURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlPiBtX2JhY2tpbmdTdG9yZTsKICAgICBjb25zdCBpbnQ2NF90IG1fZGF0YWJh
c2VJZDsKICAgICBjb25zdCBpbnQ2NF90IG1fb2JqZWN0U3RvcmVJZDsKICAgICBjb25zdCBpbnQ2
NF90IG1faW5kZXhJZDsKQEAgLTM2MCwxMyArMzYwLDEzIEBAIHByaXZhdGU6CiAKIGNsYXNzIENv
dW50T3BlcmF0aW9uIDogcHVibGljIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJh
dGlvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxE
QiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwg
UGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiBjYWxsYmFja3MpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5k
TGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiog
dHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2luZ1N0b3JlLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQ
YXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
IGNhbGxiYWNrcykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ291bnRPcGVy
YXRpb24odHJhbnNhY3Rpb24sIGJhY2tpbmdTdG9yZSwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJ
ZCwgaW5kZXhJZCwga2V5UmFuZ2UsIGNhbGxiYWNrcykpOwogICAgIH0KICAgICB2aXJ0dWFsIHZv
aWQgcGVyZm9ybSgpIE9WRVJSSURFIEZJTkFMOwogcHJpdmF0ZToKLSAgICBDb3VudE9wZXJhdGlv
bihJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0
b3JlTGV2ZWxEQiogYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlS
YW5nZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKKyAgICBDb3VudE9wZXJh
dGlvbihJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlKiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+
IGtleVJhbmdlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQogICAgICAgICA6
IG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCiAgICAgICAgICwgbV9iYWNraW5nU3RvcmUoYmFj
a2luZ1N0b3JlKQogICAgICAgICAsIG1fZGF0YWJhc2VJZChkYXRhYmFzZUlkKQpAQCAtMzc4LDcg
KzM3OCw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFj
a2VuZExldmVsREI+IG1fdHJhbnNhY3Rpb247Ci0gICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdT
dG9yZUxldmVsREI+IG1fYmFja2luZ1N0b3JlOworICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U+IG1fYmFja2luZ1N0b3JlOwogICAgIGNvbnN0IGludDY0X3QgbV9kYXRh
YmFzZUlkOwogICAgIGNvbnN0IGludDY0X3QgbV9vYmplY3RTdG9yZUlkOwogICAgIGNvbnN0IGlu
dDY0X3QgbV9pbmRleElkOwpAQCAtMzg4LDEzICszODgsMTMgQEAgcHJpdmF0ZToKIAogY2xhc3Mg
RGVsZXRlUmFuZ2VPcGVyYXRpb24gOiBwdWJsaWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxE
Qjo6T3BlcmF0aW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRMZXZlbERCOjpPcGVyYXRpb24+IGNyZWF0ZShJREJUcmFuc2FjdGlvbkJhY2tl
bmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiogYmFja2luZ1N0
b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0
cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFj
a3MpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6
T3BlcmF0aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rp
b24sIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFi
YXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5
UmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiAgICAgewogICAgICAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IERlbGV0ZVJhbmdlT3BlcmF0aW9uKHRyYW5zYWN0aW9uLCBi
YWNraW5nU3RvcmUsIGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGtleVJhbmdlLCBjYWxsYmFj
a3MpKTsKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm0oKSBPVkVSUklERSBGSU5BTDsK
IHByaXZhdGU6Ci0gICAgRGVsZXRlUmFuZ2VPcGVyYXRpb24oSURCVHJhbnNhY3Rpb25CYWNrZW5k
TGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9y
ZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8
SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tz
KQorICAgIERlbGV0ZVJhbmdlT3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIq
IHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCS2V5
UmFuZ2U+IGtleVJhbmdlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQogICAg
ICAgICA6IG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCiAgICAgICAgICwgbV9iYWNraW5nU3Rv
cmUoYmFja2luZ1N0b3JlKQogICAgICAgICAsIG1fZGF0YWJhc2VJZChkYXRhYmFzZUlkKQpAQCAt
NDA1LDcgKzQwNSw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0
aW9uQmFja2VuZExldmVsREI+IG1fdHJhbnNhY3Rpb247Ci0gICAgY29uc3QgUmVmUHRyPElEQkJh
Y2tpbmdTdG9yZUxldmVsREI+IG1fYmFja2luZ1N0b3JlOworICAgIGNvbnN0IFJlZlB0cjxJREJC
YWNraW5nU3RvcmVJbnRlcmZhY2U+IG1fYmFja2luZ1N0b3JlOwogICAgIGNvbnN0IGludDY0X3Qg
bV9kYXRhYmFzZUlkOwogICAgIGNvbnN0IGludDY0X3QgbV9vYmplY3RTdG9yZUlkOwogICAgIGNv
bnN0IFJlZlB0cjxJREJLZXlSYW5nZT4gbV9rZXlSYW5nZTsKQEAgLTQxNCwxMyArNDE0LDEzIEBA
IHByaXZhdGU6CiAKIGNsYXNzIENsZWFyT3BlcmF0aW9uIDogcHVibGljIElEQlRyYW5zYWN0aW9u
QmFja2VuZExldmVsREI6Ok9wZXJhdGlvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUoSURCVHJh
bnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUxldmVs
REIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCisgICAgc3RhdGljIFBhc3NP
d25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUoSURC
VHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZSogYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ2xlYXJPcGVyYXRpb24odHJhbnNhY3Rpb24sIGJhY2tp
bmdTdG9yZSwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgY2FsbGJhY2tzKSk7CiAgICAgfQog
ICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtKCkgT1ZFUlJJREUgRklOQUw7CiBwcml2YXRlOgotICAg
IENsZWFyT3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9u
LCBJREJCYWNraW5nU3RvcmVMZXZlbERCKiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJ
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJh
Y2tzKQorICAgIENsZWFyT3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRy
YW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgaW50NjRf
dCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiBjYWxsYmFja3MpCiAgICAgICAgIDogbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKICAg
ICAgICAgLCBtX2JhY2tpbmdTdG9yZShiYWNraW5nU3RvcmUpCiAgICAgICAgICwgbV9kYXRhYmFz
ZUlkKGRhdGFiYXNlSWQpCkBAIC00MzAsNyArNDMwLDcgQEAgcHJpdmF0ZToKICAgICB9CiAKICAg
ICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gbV90cmFuc2FjdGlvbjsKLSAg
ICBjb25zdCBSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4gbV9iYWNraW5nU3RvcmU7Cisg
ICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZT4gbV9iYWNraW5nU3RvcmU7
CiAgICAgY29uc3QgaW50NjRfdCBtX2RhdGFiYXNlSWQ7CiAgICAgY29uc3QgaW50NjRfdCBtX29i
amVjdFN0b3JlSWQ7CiAgICAgY29uc3QgUmVmUHRyPElEQkNhbGxiYWNrcz4gbV9jYWxsYmFja3M7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYmFiM2JlMi4uM2I3OTgwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTc3NCw3ICsxNzc0LDcgQEAKIAkJNTFENzE5
REUxODExMDZFMDAwMTZEQzUxIC8qIElEQktleVBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDcxOTk0MTgxMTA2RTAwMDE2REM1MSAvKiBJREJL
ZXlQYXRoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNTFENzE5REYxODExMDZFMDAwMTZEQzUxIC8qIElEQktleVJhbmdlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDcxOTk1MTgxMTA2RTAwMDE2
REM1MSAvKiBJREJLZXlSYW5nZS5jcHAgKi87IH07CiAJCTUxRDcxOUUwMTgxMTA2RTAwMDE2REM1
MSAvKiBJREJLZXlSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFENzE5OTYxODExMDZFMDAwMTZEQzUxIC8qIElEQktleVJhbmdlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNTFENzE5RTIxODEx
MDZFMDAwMTZEQzUxIC8qIElEQk1ldGFkYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQ3MTk5ODE4MTEwNkUwMDAxNkRDNTEgLyogSURCTWV0YWRh
dGEuaCAqLzsgfTsKKwkJNTFENzE5RTIxODExMDZFMDAwMTZEQzUxIC8qIElEQk1ldGFkYXRhLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQ3MTk5ODE4
MTEwNkUwMDAxNkRDNTEgLyogSURCTWV0YWRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUQ3MTlFMzE4MTEwNkUwMDAxNkRDNTEgLyogSURC
T2JqZWN0U3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTFENzE5OTkxODExMDZFMDAwMTZEQzUxIC8qIElEQk9iamVjdFN0b3JlLmNwcCAqLzsg
fTsKIAkJNTFENzE5RTQxODExMDZFMDAwMTZEQzUxIC8qIElEQk9iamVjdFN0b3JlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQ3MTk5QTE4MTEwNkUw
MDAxNkRDNTEgLyogSURCT2JqZWN0U3RvcmUuaCAqLzsgfTsKIAkJNTFENzE5RTYxODExMDZFMDAw
MTZEQzUxIC8qIElEQk9wZW5EQlJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFENzE5OUMxODExMDZFMDAwMTZEQzUxIC8qIElEQk9wZW5E
QlJlcXVlc3QuY3BwICovOyB9OwpAQCAtMTgwNiwxMyArMTgwNiwxMyBAQAogCQk1MUUxRUNDMTBD
OTFDOTA0MDBEQzI1NUIgLyogSWNvblJlY29yZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMUVDQkIwQzkxQzkwNDAwREMyNTVCIC8qIEljb25SZWNv
cmQuaCAqLzsgfTsKIAkJNTFFMUVDQzIwQzkxQzkwNDAwREMyNTVCIC8qIFBhZ2VVUkxSZWNvcmQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMUVD
QkMwQzkxQzkwNDAwREMyNTVCIC8qIFBhZ2VVUkxSZWNvcmQuY3BwICovOyB9OwogCQk1MUUxRUND
MzBDOTFDOTA0MDBEQzI1NUIgLyogUGFnZVVSTFJlY29yZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMUVDQkQwQzkxQzkwNDAwREMyNTVCIC8qIFBh
Z2VVUkxSZWNvcmQuaCAqLzsgfTsKLQkJNTFFMzM3RjQxODEyNUFFMzAwMDdBMjQ2IC8qIElEQkJh
Y2tpbmdTdG9yZUludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTFFMzM3RjMxODEyNUFFMzAwMDdBMjQ2IC8qIElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZS5oICovOyB9OworCQk1MUUzMzdGNDE4MTI1QUUzMDAwN0EyNDYgLyogSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MUUzMzdGMzE4MTI1QUUzMDAwN0EyNDYgLyogSURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTFFM0Y5QzcwREEwNTlEQzAwMjUwOTExIC8qIFN0b3JhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFM0Y5QzUwREEwNTlEQzAwMjUwOTExIC8q
IFN0b3JhZ2UuY3BwICovOyB9OwogCQk1MUUzRjlENjBEQTA1RTFEMDAyNTA5MTEgLyogSlNTdG9y
YWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
RTNGOUQ0MERBMDVFMUQwMDI1MDkxMSAvKiBKU1N0b3JhZ2UuY3BwICovOyB9OwogCQk1MUU0MTQz
NDE2QTY1OTYzMDBDNjMzQzcgLyogUmVzb3VyY2VIYW5kbGVUeXBlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFNDE0MzIxNkE2NTk1MTAwQzYzM0M3
IC8qIFJlc291cmNlSGFuZGxlVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk1MUU2ODIxMDE2Mzg3MzAyMDAzQkJGM0MgLyogTG9hZGVyU3Ry
YXRlZ3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
RTY4MjBGMTYzODczMDIwMDNCQkYzQyAvKiBMb2FkZXJTdHJhdGVneS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxRUM5MjY1MENFOTBERDQwMEY5
MDMwOCAvKiBKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFQzkyNUQwQ0U5MERENDAwRjkw
MzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAgKi87IH07Ci0JCTUx
RjZFMEEzMTgxMUQyNTIwMDU4QTAwQSAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjZFMDhG
MTgxMUQyNTIwMDU4QTAwQSAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCAqLzsg
fTsKKwkJNTFGNkUwQTMxODExRDI1MjAwNThBMDBBIC8qIElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFGNkUwOEYxODExRDI1MjAwNThBMDBBIC8qIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUx
RkEyRDc4MTUyMTMyQjMwMEMxQkEwQiAvKiBET01XaW5kb3dFeHRlbnNpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0ZCQTE4MTUxQUE3MUIwMEI1
Nzk1OSAvKiBET01XaW5kb3dFeHRlbnNpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUZCNTUwNDExM0UzRTkxMDA4MjExNzYgLyogSlNDbG9z
ZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUZCNTUwMjExM0UzRTkxMDA4MjExNzYgLyogSlNDbG9zZUV2ZW50LmggKi87IH07CiAJCTUxRkI1
NTA1MTEzRTNFOTEwMDgyMTE3NiAvKiBKU0Nsb3NlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQjU1MDMxMTNFM0U5MTAwODIxMTc2IC8q
IEpTQ2xvc2VFdmVudC5jcHAgKi87IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYThjYzRiOC4uNmZlNWZkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTEwLTIxICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBUcmFuc2l0aW9uIG1vc3QgdXNlIG9mIElEQkJh
Y2tpbmdTdG9yZUxldmVsREIgdG8gSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxMDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdHViIG91dCBhIG5ldyBwdXJl
IHZpcnR1YWwgbWV0aG9kOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJGYWN0b3J5QmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkZhY3Rv
cnlCYWNrZW5kOjpjcmVhdGVUcmFuc2FjdGlvbkJhY2tlbmQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5oOgorCiAyMDEzLTEw
LTIwICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBM
b2FkaW5nIHByb2dyZXNzIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2Vu
ZC5jcHAKaW5kZXggNTRmNjNkYi4uMTM3Y2FjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURC
RmFjdG9yeUJhY2tlbmQuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViVG9EYXRh
YmFzZVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JREJDYWxsYmFja3Mu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5o
PgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC05OSw2ICsxMDAsMTIgQEAgdm9pZCBX
ZWJJREJGYWN0b3J5QmFja2VuZDo6cmVtb3ZlSURCRGF0YWJhc2VCYWNrZW5kKGNvbnN0IFN0cmlu
ZyYpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+IFdlYklEQkZhY3RvcnlCYWNrZW5kOjpjcmVhdGVUcmFuc2FjdGlv
bkJhY2tlbmQoSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQiosIGludDY0X3QgdHJhbnNhY3Rpb25J
ZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90
PiYsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIDA7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8g
RU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFj
a2VuZC5oCmluZGV4IDFiMmVkYTkuLjdlMjUyYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJG
YWN0b3J5QmFja2VuZC5oCkBAIC00NSw2ICs0NSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVJREJEYXRhYmFzZUJhY2tlbmQoY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlm
aWVyKSBPVkVSUklERSBGSU5BTDsKIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0aW9uQmFja2VuZChX
ZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCKiwgaW50NjRfdCB0cmFuc2FjdGlvbklk
LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9y
PGludDY0X3Q+JiwgV2ViQ29yZTo6SW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUpOworCiBwcml2
YXRlOgogICAgIFdlYklEQkZhY3RvcnlCYWNrZW5kKCk7CiB9Owo=
</data>
<flag name="commit-queue"
          id="237349"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214762</attachid>
            <date>2013-10-21 12:24:33 -0700</date>
            <delta_ts>2013-10-21 12:57:00 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>87180</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjOWM0ZDM3Li4wZTlmYmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAw
IEBACisyMDEzLTEwLTIxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAg
ICAgICBUcmFuc2l0aW9uIG1vc3QgdXNlIG9mIElEQkJhY2tpbmdTdG9yZUxldmVsREIgdG8gSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjMxMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFeHBvcnQgbW9yZSByZXF1aXJlZCBoZWFkZXJzOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICBGbGVzaCBvdXQgbWFu
eSBvZiB0aGUgcHVyZSB2aXJ0dWFsIG1ldGhvZHMgb24gSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
LCBhcyB3ZWxsIGFzCisgICAgICAgIHRoZSBSZWNvcmRJZGVudGlmaWVyIGFuZCBDdXJzb3IgY2xh
c3NlczoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNv
cmRJZGVudGlmaWVyOjp+UmVjb3JkSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpJREJC
YWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcjo6fkN1cnNvcik6CisKKyAgICAgICAgVXNlIElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZSwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJ
ZGVudGlmaWVyLCBhbmQKKyAgICAgICAgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3Ig
d2hlcmV2ZXIgcG9zc2libGU6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5QmFja2VuZEludGVyZmFjZS5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJCYWNraW5nU3RvcmVMZXZlbERCOjpwdXRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
QmFja2luZ1N0b3JlTGV2ZWxEQjo6ZGVsZXRlUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkJhY2tpbmdTdG9yZUxldmVsREI6OmtleUV4aXN0c0luT2JqZWN0U3RvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6cHV0SW5kZXhEYXRhRm9yUmVjb3JkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok9iamVjdFN0b3JlS2V5Q3Vyc29ySW1wbDo6Y2xvbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6T2JqZWN0U3RvcmVDdXJzb3JJbXBsOjpjbG9uZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbmRleEtleUN1cnNvckltcGw6OmNsb25lKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
ZGV4Q3Vyc29ySW1wbDo6Y2xvbmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3Jl
TGV2ZWxEQjo6b3Blbk9iamVjdFN0b3JlQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJh
Y2tpbmdTdG9yZUxldmVsREI6Om9wZW5PYmplY3RTdG9yZUtleUN1cnNvcik6CisgICAgICAgIChX
ZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuSW5kZXhLZXlDdXJzb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3BlbkluZGV4Q3Vyc29yKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uOjpU
cmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjpU
cmFuc2FjdGlvbjo6YmVnaW4pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIv
SURCQmFja2luZ1N0b3JlTGV2ZWxEQi5oOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0
b3JlTGV2ZWxEQjo6UmVjb3JkSWRlbnRpZmllcjo6UmVjb3JkSWRlbnRpZmllcik6CisKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkN1cnNvckJhY2tlbmRMZXZlbERCLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRMZXZlbERCOjpJREJDdXJzb3JC
YWNrZW5kTGV2ZWxEQik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJD
dXJzb3JCYWNrZW5kTGV2ZWxEQi5oOgorCisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JCYWNr
ZW5kTGV2ZWxEQjo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRi
L0lEQkRhdGFiYXNlQmFja2VuZExldmVsREIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0
YWJhc2VCYWNrZW5kTGV2ZWxEQjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFi
YXNlQmFja2VuZExldmVsREI6OklEQkRhdGFiYXNlQmFja2VuZExldmVsREIpOgorICAgICAgICAo
V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6YmFja2luZ1N0b3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OnNldEluZGV4S2V5cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpjcmVhdGVUcmFuc2Fj
dGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJEYXRhYmFzZUJh
Y2tlbmRMZXZlbERCLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
QkZhY3RvcnlCYWNrZW5kTGV2ZWxEQi5oOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
bGV2ZWxkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6OkluZGV4V3JpdGVyOjp2ZXJpZnlJbmRl
eEtleXMpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQjo6
SW5kZXhXcml0ZXI6OndyaXRlSW5kZXhLZXlzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVj
dFN0b3JlQmFja2VuZExldmVsREI6OkluZGV4V3JpdGVyOjphZGRpbmdLZXlBbGxvd2VkKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6Om1ha2VJbmRleFdy
aXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQjo6
Z2VuZXJhdGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2
ZWxEQjo6dXBkYXRlS2V5R2VuZXJhdG9yKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9s
ZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREIuaDoKKworICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6SURCVHJhbnNh
Y3Rpb25CYWNrZW5kTGV2ZWxEQik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxk
Yi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREJPcGVyYXRpb25zLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdldE9wZXJhdGlvbjo6cGVyZm9ybSk6CisgICAgICAgIChX
ZWJDb3JlOjpPcGVuQ3Vyc29yT3BlcmF0aW9uOjpwZXJmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvdW50T3BlcmF0aW9uOjpwZXJmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVJhbmdl
T3BlcmF0aW9uOjpwZXJmb3JtKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRi
L0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREJPcGVyYXRpb25zLmg6CisgICAgICAgIChXZWJD
b3JlOjpDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNyZWF0ZU9iamVjdFN0b3JlT3BlcmF0aW9uOjpDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVPYmplY3RTdG9yZU9wZXJhdGlvbjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZU9iamVjdFN0b3JlT3BlcmF0aW9uOjpEZWxldGVP
YmplY3RTdG9yZU9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDcmVhdGVJbmRleE9wZXJh
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWF0ZUluZGV4T3BlcmF0aW9uOjpD
cmVhdGVJbmRleE9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVJbmRleE9wZXJh
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUluZGV4T3BlcmF0aW9uOjpE
ZWxldGVJbmRleE9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHZXRPcGVyYXRpb246OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHZXRPcGVyYXRpb246OkdldE9wZXJhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpQdXRPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQdXRPcGVyYXRpb246OlB1dE9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpPcGVuQ3Vy
c29yT3BlcmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6T3BlbkN1cnNvck9wZXJh
dGlvbjo6T3BlbkN1cnNvck9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb3VudE9wZXJh
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvdW50T3BlcmF0aW9uOjpDb3VudE9w
ZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVSYW5nZU9wZXJhdGlvbjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVJhbmdlT3BlcmF0aW9uOjpEZWxldGVSYW5nZU9w
ZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDbGVhck9wZXJhdGlvbjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNsZWFyT3BlcmF0aW9uOjpDbGVhck9wZXJhdGlvbik6CisKIDIwMTMt
MTAtMTkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBh
YnN0cmFjdCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UsIHVzZSBpdCB0byBnZXQgSURCRGF0YWJh
c2VCYWNrZW5kTGV2ZWxEQiBjbG9zZXIgdG8gZ29pbmcgY3Jvc3MtcGxhdGZvcm0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3Jl
SW50ZXJmYWNlLmgKaW5kZXggMmJhOWY4NS4uNDk5ZDYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
LmgKQEAgLTI2LDYgKzI2LDkgQEAKICNpZm5kZWYgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlX2gK
ICNkZWZpbmUgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlX2gKIAorI2luY2x1ZGUgIklEQk1ldGFk
YXRhLmgiCisjaW5jbHVkZSAiSW5kZXhlZERCLmgiCisKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KQEAgLTM0LDYgKzM3LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3Mg
SURCS2V5OworY2xhc3MgSURCS2V5UGF0aDsKK2NsYXNzIElEQktleVJhbmdlOworY2xhc3MgU2hh
cmVkQnVmZmVyOworCiBjbGFzcyBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UgOiBwdWJsaWMgUmVm
Q291bnRlZDxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5JREJCYWNraW5nU3RvcmVJbnRlcmZhY2UoKSB7IH0KQEAgLTQyLDYgKzUwLDY3IEBAIHB1Ymxp
YzoKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgflRyYW5zYWN0aW9uKCkgeyB9CiAgICAg
fTsKKworICAgIGNsYXNzIFJlY29yZElkZW50aWZpZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAg
dmlydHVhbCB+UmVjb3JkSWRlbnRpZmllcigpIHsgfQorCisgICAgICAgIHZpcnR1YWwgY29uc3Qg
VmVjdG9yPGNoYXI+IHByaW1hcnlLZXkoKSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwgaW50
NjRfdCB2ZXJzaW9uKCkgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoY29u
c3QgVmVjdG9yPGNoYXI+JiBwcmltYXJ5S2V5LCBpbnQ2NF90IHZlcnNpb24pID0gMDsKKyAgICB9
OworCisgICAgY2xhc3MgQ3Vyc29yIDogcHVibGljIFJlZkNvdW50ZWQ8Q3Vyc29yPiB7CisgICAg
cHVibGljOgorICAgICAgICBlbnVtIEl0ZXJhdG9yU3RhdGUgeworICAgICAgICAgICAgUmVhZHkg
PSAwLAorICAgICAgICAgICAgU2VlaworICAgICAgICB9OworCisgICAgICAgIHZpcnR1YWwgfkN1
cnNvcigpIHsgfQorCisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSgpIGNv
bnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBib29sIGNvbnRpbnVlRnVuY3Rpb24oY29uc3QgSURC
S2V5KiA9IDAsIEl0ZXJhdG9yU3RhdGUgPSBTZWVrKSA9IDA7CisgICAgICAgIHZpcnR1YWwgYm9v
bCBhZHZhbmNlKHVuc2lnbmVkIGxvbmcpID0gMDsKKworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8Q3Vyc29yPiBjbG9uZSgpID0gMDsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQktl
eT4gcHJpbWFyeUtleSgpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gdmFsdWUoKSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwgY29uc3QgUmVj
b3JkSWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllcigpIGNvbnN0ID0gMDsKKyAgICB9OworCisg
ICAgdmlydHVhbCBib29sIGdldElEQkRhdGFiYXNlTWV0YURhdGEoY29uc3QgU3RyaW5nJiBuYW1l
LCBJREJEYXRhYmFzZU1ldGFkYXRhKiwgYm9vbCYgZm91bmQpID0gMDsKKyAgICB2aXJ0dWFsIGJv
b2wgZ2V0T2JqZWN0U3RvcmVzKGludDY0X3QgZGF0YWJhc2VJZCwgSURCRGF0YWJhc2VNZXRhZGF0
YTo6T2JqZWN0U3RvcmVNYXAqIG9iamVjdFN0b3JlcykgPSAwOworICAgIHZpcnR1YWwgYm9vbCBj
cmVhdGVJREJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiB2ZXJzaW9uLCBpbnQ2NF90IGludFZlcnNpb24sIGludDY0X3QmIHJvd0lkKSA9IDA7CisgICAg
dmlydHVhbCBib29sIGtleUV4aXN0c0luT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBjb25zdCBJREJLZXkmLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlJlY29yZElkZW50
aWZpZXIqIGZvdW5kUmVjb3JkSWRlbnRpZmllciwgYm9vbCYgZm91bmQpID0gMDsKKworICAgIHZp
cnR1YWwgYm9vbCBwdXRJbmRleERhdGFGb3JSZWNvcmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
OjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYsIGNvbnN0IElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZTo6UmVjb3JkSWRlbnRpZmllciYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wga2V5RXhp
c3RzSW5JbmRleChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRf
dCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29u
c3QgSURCS2V5JiwgUmVmUHRyPElEQktleT4mIGZvdW5kUHJpbWFyeUtleSwgYm9vbCYgZXhpc3Rz
KSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBu
YW1lKSA9IDA7CisgICAgdmlydHVhbCBib29sIHVwZGF0ZUlEQkRhdGFiYXNlSW50VmVyc2lvbihJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCByb3dJZCwgaW50
NjRfdCBpbnRWZXJzaW9uKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0UmVjb3JkKElEQkJh
Y2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiwgVmVjdG9yPGNoYXI+JiByZWNvcmQp
ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgcHV0UmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgY29uc3QgSURCS2V5JiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCBJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2U6OlJlY29yZElkZW50aWZpZXIqKSA9IDA7CisgICAgdmlydHVhbCBi
b29sIGRlbGV0ZVJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwg
aW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZTo6UmVjb3JkSWRlbnRpZmllciYpID0gMDsKKworICAgIHZpcnR1YWwg
Ym9vbCBjcmVhdGVPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0
aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCkgPSAwOwor
ICAgIHZpcnR1YWwgYm9vbCBkZWxldGVPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgY2xlYXJPYmplY3RTdG9yZShJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQpID0gMDsKKworICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVJbmRleChJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBJREJLZXlQYXRoJiwgYm9vbCBpc1VuaXF1ZSwgYm9vbCBpc011bHRpRW50cnkpID0gMDsK
KyAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpU
cmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBp
bnQ2NF90IGluZGV4SWQpID0gMDsKKworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gb3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29yKElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRp
cmVjdGlvbikgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRl
cmZhY2U6OkN1cnNvcj4gb3Blbk9iamVjdFN0b3JlQ3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbikgPSAw
OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNv
cj4gb3BlbkluZGV4S2V5Q3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rp
b24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBp
bmRleElkLCBjb25zdCBJREJLZXlSYW5nZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKSA9
IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vy
c29yPiBvcGVuSW5kZXhDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlv
biosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGlu
ZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24pID0g
MDsKKworICAgIHZpcnR1YWwgYm9vbCBnZXRQcmltYXJ5S2V5VmlhSW5kZXgoSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYsIFJlZlB0cjxJREJL
ZXk+JiBwcmltYXJ5S2V5KSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0S2V5R2VuZXJhdG9y
Q3VycmVudE51bWJlcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QmIGtleUdlbmVy
YXRvckN1cnJlbnROdW1iZXIpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgbWF5YmVVcGRhdGVLZXlH
ZW5lcmF0b3JDdXJyZW50TnVtYmVyKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rp
b24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBu
ZXdTdGF0ZSwgYm9vbCBjaGVja0N1cnJlbnQpID0gMDsKKwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuY3BwCmluZGV4IDZlN2IzN2EuLjAzYzQ0
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5jcHAKQEAgLTMzLDEwICszMyw2IEBACiAj
aW5jbHVkZSAiRGF0YWJhc2VTdHJhdGVneS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2ll
cy5oIgogCi0jaWYgVVNFKExFVkVMREIpCi0jaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRMZXZl
bERCLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNzUmVmUHRyPElEQkZh
Y3RvcnlCYWNrZW5kSW50ZXJmYWNlPiBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZTo6Y3JlYXRl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCmluZGV4IGFhMWM0ODAuLjc5MjIzOTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5k
SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtMjgsNiArMjgsOCBAQAogI2lmbmRlZiBJREJGYWN0
b3J5QmFja2VuZEludGVyZmFjZV9oCiAjZGVmaW5lIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNl
X2gKIAorI2luY2x1ZGUgIkluZGV4ZWREQi5oIgorCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgpAQCAtMzYsOSArMzgsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFz
cyBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U7CiBjbGFzcyBJREJDYWxsYmFja3M7CiBjbGFzcyBJ
REJEYXRhYmFzZTsKK2NsYXNzIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI7IC8vIEZJWE1FOiBU
aGlzIGlzIGEgTGV2ZWxEQiBzcGVjaWZpYyB0eXBlIGZvciBub3cuIGh0dHA6Ly93ZWJraXQub3Jn
L2IvMTIzMDI3IHdpbGwgZml4IHRoYXQuCiBjbGFzcyBJREJEYXRhYmFzZUNhbGxiYWNrczsKK2Ns
YXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2lu
OwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIApAQCAtNTgsNiArNjMsOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAwOwogCiAgICAg
dmlydHVhbCB2b2lkIHJlbW92ZUlEQkRhdGFiYXNlQmFja2VuZChjb25zdCBTdHJpbmcmIHVuaXF1
ZUlkZW50aWZpZXIpID0gMDsKKworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0aW9uQmFja2VuZChJREJEYXRhYmFzZUJh
Y2tlbmRMZXZlbERCKiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFi
YXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgSW5k
ZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIv
SURCQmFja2luZ1N0b3JlTGV2ZWxEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuY3BwCmluZGV4IGI2ZWU3NzUuLjI4
MzE4YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVs
ZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmNwcApAQCAtODk4LDcg
Kzg5OCw3IEBAIFdBUk5fVU5VU0VEX1JFVFVSTiBzdGF0aWMgYm9vbCBnZXROZXdWZXJzaW9uTnVt
YmVyKExldmVsREJUcmFuc2FjdGlvbiogdHJhbnNhY3RpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6cHV0UmVjb3JkKElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiBrZXksIFBhc3NSZWZQdHI8U2hhcmVk
QnVmZmVyPiBwcnBWYWx1ZSwgUmVjb3JkSWRlbnRpZmllciogcmVjb3JkSWRlbnRpZmllcikKK2Jv
b2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6cHV0UmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiBrZXksIFBhc3NSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBwcnBWYWx1ZSwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlmaWVy
KiByZWNvcmRJZGVudGlmaWVyKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0
b3JlTGV2ZWxEQjo6cHV0UmVjb3JkIik7CiAgICAgaWYgKCFLZXlQcmVmaXg6OnZhbGlkSWRzKGRh
dGFiYXNlSWQsIG9iamVjdFN0b3JlSWQpKQpAQCAtOTQxLDcgKzk0MSw3IEBAIGJvb2wgSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQjo6Y2xlYXJPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OlRyYW5zYWN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSURCQmFja2luZ1N0b3Jl
TGV2ZWxEQjo6ZGVsZXRlUmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rp
b24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgY29uc3QgUmVjb3JkSWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllcikKK2Jvb2wgSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQjo6ZGVsZXRlUmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6
VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgY29uc3QgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlm
aWVyJiByZWNvcmRJZGVudGlmaWVyKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2lu
Z1N0b3JlTGV2ZWxEQjo6ZGVsZXRlUmVjb3JkIik7CiAgICAgaWYgKCFLZXlQcmVmaXg6OnZhbGlk
SWRzKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQpKQpAQCAtMTAyNyw3ICsxMDI3LDcgQEAgYm9v
bCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjptYXliZVVwZGF0ZUtleUdlbmVyYXRvckN1cnJlbnRO
dW1iZXIoSURCQmFja2luZ1N0b3IKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBJREJCYWNr
aW5nU3RvcmVMZXZlbERCOjprZXlFeGlzdHNJbk9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiBrZXksIFJlY29yZElkZW50aWZpZXIq
IGZvdW5kUmVjb3JkSWRlbnRpZmllciwgYm9vbCYgZm91bmQpCitib29sIElEQkJhY2tpbmdTdG9y
ZUxldmVsREI6OmtleUV4aXN0c0luT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
OjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmIGtleSwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
OjpSZWNvcmRJZGVudGlmaWVyKiBmb3VuZFJlY29yZElkZW50aWZpZXIsIGJvb2wmIGZvdW5kKQog
ewogICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6a2V5RXhpc3Rz
SW5PYmplY3RTdG9yZSIpOwogICAgIGlmICghS2V5UHJlZml4Ojp2YWxpZElkcyhkYXRhYmFzZUlk
LCBvYmplY3RTdG9yZUlkKSkKQEAgLTExODYsNyArMTE4Niw3IEBAIGJvb2wgSURCQmFja2luZ1N0
b3JlTGV2ZWxEQjo6ZGVsZXRlSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2Fj
dGlvbioKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERC
OjpwdXRJbmRleERhdGFGb3JSZWNvcmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2Fj
dGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYga2V5LCBjb25zdCBSZWNvcmRJZGVu
dGlmaWVyJiByZWNvcmRJZGVudGlmaWVyKQorYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpw
dXRJbmRleERhdGFGb3JSZWNvcmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlv
biogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYga2V5LCBjb25zdCBJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlJlY29yZElkZW50aWZpZXImIHJlY29yZElkZW50aWZpZXIpCiB7CiAgICAg
TE9HKFN0b3JhZ2VBUEksICJJREJCYWNraW5nU3RvcmVMZXZlbERCOjpwdXRJbmRleERhdGFGb3JS
ZWNvcmQiKTsKICAgICBBU1NFUlQoa2V5LmlzVmFsaWQoKSk7CkBAIC0xNDk5LDcgKzE0OTksNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgT2JqZWN0U3RvcmVLZXlDdXJz
b3JJbXBsKHRyYW5zYWN0aW9uLCBjdXJzb3JPcHRpb25zKSk7CiAgICAgfQogCi0gICAgdmlydHVh
bCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gY2xvbmUoKQorICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gY2xv
bmUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPYmplY3RTdG9yZUtleUN1
cnNvckltcGwodGhpcykpOwogICAgIH0KQEAgLTE1NjAsNyArMTU2MCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPYmplY3RTdG9yZUN1cnNvckltcGwodHJhbnNhY3Rp
b24sIGN1cnNvck9wdGlvbnMpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURC
QmFja2luZ1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBjbG9uZSgpCisgICAgdmlydHVhbCBQYXNzUmVm
UHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yPiBjbG9uZSgpCiAgICAgewogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE9iamVjdFN0b3JlQ3Vyc29ySW1wbCh0aGlzKSk7CiAg
ICAgfQpAQCAtMTYyNyw3ICsxNjI3LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEluZGV4S2V5Q3Vyc29ySW1wbCh0cmFuc2FjdGlvbiwgY3Vyc29yT3B0aW9ucykpOwog
ICAgIH0KIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpD
dXJzb3I+IGNsb25lKCkKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpDdXJzb3I+IGNsb25lKCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSW5kZXhLZXlDdXJzb3JJbXBsKHRoaXMpKTsKICAgICB9CkBAIC0xNzE4LDcgKzE3MTgsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5kZXhDdXJzb3JJbXBsKHRy
YW5zYWN0aW9uLCBjdXJzb3JPcHRpb25zKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBQYXNzUmVm
UHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gY2xvbmUoKQorICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gY2xvbmUoKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbmRleEN1cnNvckltcGwodGhpcykpOwog
ICAgIH0KQEAgLTE5MTAsOCArMTkxMCw4IEBAIHN0YXRpYyBib29sIGluZGV4Q3Vyc29yT3B0aW9u
cyhMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlCiAKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KK1Bhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpD
dXJzb3I+IElEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5PYmplY3RTdG9yZUN1cnNvcihJREJC
YWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBk
YXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdlKiByYW5n
ZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uKQogCi1QYXNzUmVmUHRyPElE
QkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3Bl
bk9iamVjdFN0b3JlQ3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24q
IHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
Y29uc3QgSURCS2V5UmFuZ2UqIHJhbmdlLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJl
Y3Rpb24pCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEksICJJREJCYWNraW5nU3RvcmVMZXZlbERCOjpv
cGVuT2JqZWN0U3RvcmVDdXJzb3IiKTsKICAgICBMZXZlbERCVHJhbnNhY3Rpb24qIGxldmVsREJU
cmFuc2FjdGlvbiA9IElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uOjpsZXZlbERC
VHJhbnNhY3Rpb25Gcm9tKHRyYW5zYWN0aW9uKTsKQEAgLTE5MjUsNyArMTkyNSw3IEBAIFBhc3NS
ZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVMZXZl
bERCOjpvcGVuT2JqZWN0U3RvCiAgICAgcmV0dXJuIGN1cnNvci5yZWxlYXNlKCk7CiB9CiAKLVBh
c3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVM
ZXZlbERCOjpvcGVuT2JqZWN0U3RvcmVLZXlDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
OjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXlSYW5nZSogcmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29y
RGlyZWN0aW9uIGRpcmVjdGlvbikKK1Bhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
OjpDdXJzb3I+IElEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5PYmplY3RTdG9yZUtleUN1cnNv
cihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdl
KiByYW5nZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIExP
RyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3Blbk9iamVjdFN0b3JlS2V5
Q3Vyc29yIik7CiAgICAgTGV2ZWxEQlRyYW5zYWN0aW9uKiBsZXZlbERCVHJhbnNhY3Rpb24gPSBJ
REJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbjo6bGV2ZWxEQlRyYW5zYWN0aW9uRnJv
bSh0cmFuc2FjdGlvbik7CkBAIC0xOTM5LDcgKzE5MzksNyBAQCBQYXNzUmVmUHRyPElEQkJhY2tp
bmdTdG9yZUxldmVsREI6OkN1cnNvcj4gSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3Blbk9iamVj
dFN0bwogICAgIHJldHVybiBjdXJzb3IucmVsZWFzZSgpOwogfQogCi1QYXNzUmVmUHRyPElEQkJh
Y2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3Blbklu
ZGV4S2V5Q3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5z
YWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRf
dCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSogcmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yRGly
ZWN0aW9uIGRpcmVjdGlvbikKK1Bhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpD
dXJzb3I+IElEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5JbmRleEtleUN1cnNvcihJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURC
S2V5UmFuZ2UqIHJhbmdlLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24pCiB7
CiAgICAgTE9HKFN0b3JhZ2VBUEksICJJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuSW5kZXhL
ZXlDdXJzb3IiKTsKICAgICBMZXZlbERCVHJhbnNhY3Rpb24qIGxldmVsREJUcmFuc2FjdGlvbiA9
IElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uOjpsZXZlbERCVHJhbnNhY3Rpb25G
cm9tKHRyYW5zYWN0aW9uKTsKQEAgLTE5NTMsNyArMTk1Myw3IEBAIFBhc3NSZWZQdHI8SURCQmFj
a2luZ1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuSW5k
ZXhLZXlDCiAgICAgcmV0dXJuIGN1cnNvci5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8SURC
QmFja2luZ1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVu
SW5kZXhDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNh
Y3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90
IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiByYW5nZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJl
Y3Rpb24gZGlyZWN0aW9uKQorUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1
cnNvcj4gSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3BlbkluZGV4Q3Vyc29yKElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXlS
YW5nZSogcmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAg
ICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5JbmRleEN1cnNv
ciIpOwogICAgIExldmVsREJUcmFuc2FjdGlvbiogbGV2ZWxEQlRyYW5zYWN0aW9uID0gSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb246OmxldmVsREJUcmFuc2FjdGlvbkZyb20odHJh
bnNhY3Rpb24pOwpAQCAtMTk2Nyw3ICsxOTY3LDcgQEAgUGFzc1JlZlB0cjxJREJCYWNraW5nU3Rv
cmVMZXZlbERCOjpDdXJzb3I+IElEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5JbmRleEN1cnMK
ICAgICByZXR1cm4gY3Vyc29yLnJlbGVhc2UoKTsKIH0KIAotSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6VHJhbnNhY3Rpb246OlRyYW5zYWN0aW9uKElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tp
bmdTdG9yZSkKK0lEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uOjpUcmFuc2FjdGlv
bihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSkKICAgICA6IG1fYmFja2lu
Z1N0b3JlKGJhY2tpbmdTdG9yZSkKIHsKIH0KQEAgLTE5NzYsNyArMTk3Niw3IEBAIHZvaWQgSURC
QmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb246OmJlZ2luKCkKIHsKICAgICBMT0coU3Rv
cmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uOjpiZWdpbiIpOwog
ICAgIEFTU0VSVCghbV90cmFuc2FjdGlvbik7Ci0gICAgbV90cmFuc2FjdGlvbiA9IExldmVsREJU
cmFuc2FjdGlvbjo6Y3JlYXRlKG1fYmFja2luZ1N0b3JlLT5tX2RiLmdldCgpKTsKKyAgICBtX3Ry
YW5zYWN0aW9uID0gTGV2ZWxEQlRyYW5zYWN0aW9uOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxJ
REJCYWNraW5nU3RvcmVMZXZlbERCKj4obV9iYWNraW5nU3RvcmUpLT5tX2RiLmdldCgpKTsKIH0K
IAogYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbjo6Y29tbWl0KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2
ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmgKaW5kZXggMTFlMDllZS4uZjhjNDYwOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNr
aW5nU3RvcmVMZXZlbERCLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
bGV2ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmgKQEAgLTY3LDUyICs2Nyw1OCBAQCBwdWJs
aWM6CiAgICAgV2Vha1B0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCPiBjcmVhdGVXZWFrUHRyKCkg
eyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KIAogICAgIHZpcnR1YWwg
VmVjdG9yPFN0cmluZz4gZ2V0RGF0YWJhc2VOYW1lcygpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRJ
REJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCRGF0YWJhc2VNZXRhZGF0
YSosIGJvb2wmIHN1Y2Nlc3MpIFdBUk5fVU5VU0VEX1JFVFVSTjsKLSAgICB2aXJ0dWFsIGJvb2wg
Y3JlYXRlSURCRGF0YWJhc2VNZXRhRGF0YShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgdmVyc2lvbiwgaW50NjRfdCBpbnRWZXJzaW9uLCBpbnQ2NF90JiByb3dJZCk7CisgICAgdmly
dHVhbCBib29sIGdldElEQkRhdGFiYXNlTWV0YURhdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJE
YXRhYmFzZU1ldGFkYXRhKiwgYm9vbCYgc3VjY2VzcykgT1ZFUlJJREUgRklOQUwgV0FSTl9VTlVT
RURfUkVUVVJOOworICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVJREJEYXRhYmFzZU1ldGFEYXRhKGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBpbnQ2NF90IGludFZlcnNp
b24sIGludDY0X3QmIHJvd0lkKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIGJvb2wgdXBk
YXRlSURCRGF0YWJhc2VNZXRhRGF0YShJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlv
biosIGludDY0X3Qgcm93SWQsIGNvbnN0IFN0cmluZyYgdmVyc2lvbik7Ci0gICAgdmlydHVhbCBi
b29sIHVwZGF0ZUlEQkRhdGFiYXNlSW50VmVyc2lvbihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6
OlRyYW5zYWN0aW9uKiwgaW50NjRfdCByb3dJZCwgaW50NjRfdCBpbnRWZXJzaW9uKTsKLSAgICB2
aXJ0dWFsIGJvb2wgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICB2aXJ0
dWFsIGJvb2wgdXBkYXRlSURCRGF0YWJhc2VJbnRWZXJzaW9uKElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IHJvd0lkLCBpbnQ2NF90IGludFZlcnNpb24pIE9W
RVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJp
bmcmIG5hbWUpIE9WRVJSSURFIEZJTkFMOwogCi0gICAgYm9vbCBnZXRPYmplY3RTdG9yZXMoaW50
NjRfdCBkYXRhYmFzZUlkLCBJREJEYXRhYmFzZU1ldGFkYXRhOjpPYmplY3RTdG9yZU1hcCopIFdB
Uk5fVU5VU0VEX1JFVFVSTjsKLSAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlT2JqZWN0U3RvcmUoSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBh
dGgmLCBib29sIGF1dG9JbmNyZW1lbnQpOwotICAgIHZpcnR1YWwgYm9vbCBkZWxldGVPYmplY3RT
dG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICB2
aXJ0dWFsIGJvb2wgZ2V0T2JqZWN0U3RvcmVzKGludDY0X3QgZGF0YWJhc2VJZCwgSURCRGF0YWJh
c2VNZXRhZGF0YTo6T2JqZWN0U3RvcmVNYXAqKSBPVkVSUklERSBGSU5BTCBXQVJOX1VOVVNFRF9S
RVRVUk47CisgICAgdmlydHVhbCBib29sIGNyZWF0ZU9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9y
ZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBh
dXRvSW5jcmVtZW50KSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlT2Jq
ZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3Qg
ZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSBPVkVSUklERSBGSU5BTCBXQVJOX1VO
VVNFRF9SRVRVUk47CiAKLSAgICBjbGFzcyBSZWNvcmRJZGVudGlmaWVyIHsKLSAgICAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoUmVjb3JkSWRlbnRpZmllcik7CisgICAgY2xhc3MgUmVjb3JkSWRl
bnRpZmllciA6IHB1YmxpYyBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlJlY29yZElkZW50aWZp
ZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgUmVjb3JkSWRlbnRpZmllcihjb25zdCBWZWN0b3I8
Y2hhcj4mIHByaW1hcnlLZXksIGludDY0X3QgdmVyc2lvbikgOiBtX3ByaW1hcnlLZXkocHJpbWFy
eUtleSksIG1fdmVyc2lvbih2ZXJzaW9uKSB7IEFTU0VSVCghcHJpbWFyeUtleS5pc0VtcHR5KCkp
OyB9Ci0gICAgICAgIFJlY29yZElkZW50aWZpZXIoKSA6IG1fcHJpbWFyeUtleSgpLCBtX3ZlcnNp
b24oLTEpIHsgfQorICAgICAgICBSZWNvcmRJZGVudGlmaWVyKGNvbnN0IFZlY3RvcjxjaGFyPiYg
cHJpbWFyeUtleSwgaW50NjRfdCB2ZXJzaW9uKQorICAgICAgICAgICAgOiBJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlJlY29yZElkZW50aWZpZXIoKQorICAgICAgICAgICAgLCBtX3ByaW1hcnlL
ZXkocHJpbWFyeUtleSkKKyAgICAgICAgICAgICwgbV92ZXJzaW9uKHZlcnNpb24pCisgICAgICAg
IHsKKyAgICAgICAgICAgIEFTU0VSVCghcHJpbWFyeUtleS5pc0VtcHR5KCkpOworICAgICAgICB9
CiAKLSAgICAgICAgY29uc3QgVmVjdG9yPGNoYXI+IHByaW1hcnlLZXkoKSBjb25zdCB7IHJldHVy
biBtX3ByaW1hcnlLZXk7IH0KLSAgICAgICAgaW50NjRfdCB2ZXJzaW9uKCkgY29uc3QgeyByZXR1
cm4gbV92ZXJzaW9uOyB9Ci0gICAgICAgIHZvaWQgcmVzZXQoY29uc3QgVmVjdG9yPGNoYXI+JiBw
cmltYXJ5S2V5LCBpbnQ2NF90IHZlcnNpb24pIHsgbV9wcmltYXJ5S2V5ID0gcHJpbWFyeUtleTsg
bV92ZXJzaW9uID0gdmVyc2lvbjsgfQorICAgICAgICBSZWNvcmRJZGVudGlmaWVyKCkKKyAgICAg
ICAgICAgIDogSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlmaWVyKCkKKyAg
ICAgICAgICAgICwgbV9wcmltYXJ5S2V5KCkKKyAgICAgICAgICAgICwgbV92ZXJzaW9uKC0xKQor
ICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gcHJpbWFy
eUtleSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIG1fcHJpbWFyeUtleTsgfQorICAg
ICAgICBpbnQ2NF90IHZlcnNpb24oKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBtX3Zl
cnNpb247IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHJlc2V0KGNvbnN0IFZlY3RvcjxjaGFyPiYg
cHJpbWFyeUtleSwgaW50NjRfdCB2ZXJzaW9uKSBPVkVSUklERSBGSU5BTCB7IG1fcHJpbWFyeUtl
eSA9IHByaW1hcnlLZXk7IG1fdmVyc2lvbiA9IHZlcnNpb247IH0KIAogICAgIHByaXZhdGU6CiAg
ICAgICAgIFZlY3RvcjxjaGFyPiBtX3ByaW1hcnlLZXk7IC8vIEZJWE1FOiBNYWtlIGl0IG1vcmUg
Y2xlYXIgdGhhdCB0aGlzIGlzIHRoZSAqZW5jb2RlZCogdmVyc2lvbiBvZiB0aGUga2V5LgogICAg
ICAgICBpbnQ2NF90IG1fdmVyc2lvbjsKICAgICB9OwogCi0gICAgdmlydHVhbCBib29sIGdldFJl
Y29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYsIFZlY3RvcjxjaGFy
PiYgcmVjb3JkKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBib29sIHB1dFJlY29y
ZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYsIFBhc3NSZWZQdHI8U2hh
cmVkQnVmZmVyPiB2YWx1ZSwgUmVjb3JkSWRlbnRpZmllciopIFdBUk5fVU5VU0VEX1JFVFVSTjsK
LSAgICB2aXJ0dWFsIGJvb2wgY2xlYXJPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUmVjb3JkKElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgUmVjb3JkSWRlbnRpZmllciYpIFdBUk5fVU5V
U0VEX1JFVFVSTjsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0S2V5R2VuZXJhdG9yQ3VycmVudE51bWJl
cihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QmIGN1cnJlbnROdW1iZXIpIFdBUk5f
VU5VU0VEX1JFVFVSTjsKLSAgICB2aXJ0dWFsIGJvb2wgbWF5YmVVcGRhdGVLZXlHZW5lcmF0b3JD
dXJyZW50TnVtYmVyKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBuZXdTdGF0ZSwg
Ym9vbCBjaGVja0N1cnJlbnQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKLSAgICB2aXJ0dWFsIGJvb2wg
a2V5RXhpc3RzSW5PYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0
aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElE
QktleSYsIFJlY29yZElkZW50aWZpZXIqIGZvdW5kUmVjb3JkSWRlbnRpZmllciwgYm9vbCYgZm91
bmQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKLQotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVJbmRleChJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBpc1VuaXF1ZSwgYm9vbCBpc011bHRpRW50cnkp
IFdBUk5fVU5VU0VEX1JFVFVSTjsKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlSW5kZXgoSURCQmFj
a2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50
NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQpIFdBUk5fVU5VU0VEX1JFVFVSTjsK
LSAgICB2aXJ0dWFsIGJvb2wgcHV0SW5kZXhEYXRhRm9yUmVjb3JkKElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmLCBjb25zdCBSZWNvcmRJZGVu
dGlmaWVyJikgV0FSTl9VTlVTRURfUkVUVVJOOwotICAgIHZpcnR1YWwgYm9vbCBnZXRQcmltYXJ5
S2V5VmlhSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNv
bnN0IElEQktleSYsIFJlZlB0cjxJREJLZXk+JiBwcmltYXJ5S2V5KSBXQVJOX1VOVVNFRF9SRVRV
Uk47Ci0gICAgdmlydHVhbCBib29sIGtleUV4aXN0c0luSW5kZXgoSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYgaW5kZXhLZXksIFJlZlB0cjxJ
REJLZXk+JiBmb3VuZFByaW1hcnlLZXksIGJvb2wmIGV4aXN0cykgV0FSTl9VTlVTRURfUkVUVVJO
OwotCi0gICAgY2xhc3MgQ3Vyc29yIDogcHVibGljIFJlZkNvdW50ZWQ8Q3Vyc29yPiB7CisgICAg
dmlydHVhbCBib29sIGdldFJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0
aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElE
QktleSYsIFZlY3RvcjxjaGFyPiYgcmVjb3JkKSBPVkVSUklERSBGSU5BTCBXQVJOX1VOVVNFRF9S
RVRVUk47CisgICAgdmlydHVhbCBib29sIHB1dFJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGNvbnN0IElEQktleSYsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSwgSURCQmFj
a2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlmaWVyKikgT1ZFUlJJREUgRklOQUwgV0FS
Tl9VTlVTRURfUkVUVVJOOworICAgIHZpcnR1YWwgYm9vbCBjbGVhck9iamVjdFN0b3JlKElEQkJh
Y2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCkgT1ZFUlJJREUgRklOQUwgV0FSTl9VTlVTRURfUkVUVVJOOwor
ICAgIHZpcnR1YWwgYm9vbCBkZWxldGVSZWNvcmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpU
cmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBj
b25zdCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlJlY29yZElkZW50aWZpZXImKSBPVkVSUklE
RSBGSU5BTCBXQVJOX1VOVVNFRF9SRVRVUk47CisgICAgdmlydHVhbCBib29sIGdldEtleUdlbmVy
YXRvckN1cnJlbnROdW1iZXIoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbios
IGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90JiBjdXJy
ZW50TnVtYmVyKSBPVkVSUklERSBGSU5BTCBXQVJOX1VOVVNFRF9SRVRVUk47CisgICAgdmlydHVh
bCBib29sIG1heWJlVXBkYXRlS2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcihJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGludDY0X3QgbmV3U3RhdGUsIGJvb2wgY2hlY2tDdXJyZW50KSBPVkVSUklE
RSBGSU5BTCBXQVJOX1VOVVNFRF9SRVRVUk47CisgICAgdmlydHVhbCBib29sIGtleUV4aXN0c0lu
T2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmLCBJREJC
YWNraW5nU3RvcmVJbnRlcmZhY2U6OlJlY29yZElkZW50aWZpZXIqIGZvdW5kUmVjb3JkSWRlbnRp
ZmllciwgYm9vbCYgZm91bmQpIE9WRVJSSURFIEZJTkFMIFdBUk5fVU5VU0VEX1JFVFVSTjsKKwor
ICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVJbmRleChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRy
YW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGlu
dDY0X3QgaW5kZXhJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9v
bCBpc1VuaXF1ZSwgYm9vbCBpc011bHRpRW50cnkpIE9WRVJSSURFIEZJTkFMIFdBUk5fVU5VU0VE
X1JFVFVSTjsKKyAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlSW5kZXgoSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBpbnQ2NF90IGluZGV4SWQpIE9WRVJSSURFIEZJTkFMIFdBUk5fVU5VU0VEX1JFVFVS
TjsKKyAgICB2aXJ0dWFsIGJvb2wgcHV0SW5kZXhEYXRhRm9yUmVjb3JkKElEQkJhY2tpbmdTdG9y
ZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmLCBjb25zdCBJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2U6OlJlY29yZElkZW50aWZpZXImKSBPVkVSUklERSBGSU5BTCBXQVJO
X1VOVVNFRF9SRVRVUk47CisgICAgdmlydHVhbCBib29sIGdldFByaW1hcnlLZXlWaWFJbmRleChJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5Jiwg
UmVmUHRyPElEQktleT4mIHByaW1hcnlLZXkpIE9WRVJSSURFIEZJTkFMIFdBUk5fVU5VU0VEX1JF
VFVSTjsKKyAgICB2aXJ0dWFsIGJvb2wga2V5RXhpc3RzSW5JbmRleChJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiBpbmRleEtleSwgUmVmUHRy
PElEQktleT4mIGZvdW5kUHJpbWFyeUtleSwgYm9vbCYgZXhpc3RzKSBPVkVSUklERSBGSU5BTCBX
QVJOX1VOVVNFRF9SRVRVUk47CisKKyAgICBjbGFzcyBDdXJzb3IgOiBwdWJsaWMgSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlOjpDdXJzb3IgewogICAgIHB1YmxpYzoKLSAgICAgICAgZW51bSBJdGVy
YXRvclN0YXRlIHsKLSAgICAgICAgICAgIFJlYWR5ID0gMCwKLSAgICAgICAgICAgIFNlZWsKLSAg
ICAgICAgfTsKLQogICAgICAgICBzdHJ1Y3QgQ3Vyc29yT3B0aW9ucyB7CiAgICAgICAgICAgICBp
bnQ2NF90IGRhdGFiYXNlSWQ7CiAgICAgICAgICAgICBpbnQ2NF90IG9iamVjdFN0b3JlSWQ7CkBA
IC0xMjUsMTUgKzEzMSwxNSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBib29sIHVuaXF1ZTsKICAg
ICAgICAgfTsKIAotICAgICAgICBQYXNzUmVmUHRyPElEQktleT4ga2V5KCkgY29uc3QgeyByZXR1
cm4gbV9jdXJyZW50S2V5OyB9Ci0gICAgICAgIGJvb2wgY29udGludWVGdW5jdGlvbihjb25zdCBJ
REJLZXkqID0gMCwgSXRlcmF0b3JTdGF0ZSA9IFNlZWspOwotICAgICAgICBib29sIGFkdmFuY2Uo
dW5zaWduZWQgbG9uZyk7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSgp
IGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIG1fY3VycmVudEtleTsgfQorICAgICAgICB2
aXJ0dWFsIGJvb2wgY29udGludWVGdW5jdGlvbihjb25zdCBJREJLZXkqID0gMCwgSXRlcmF0b3JT
dGF0ZSA9IFNlZWspIE9WRVJSSURFIEZJTkFMOworICAgICAgICB2aXJ0dWFsIGJvb2wgYWR2YW5j
ZSh1bnNpZ25lZCBsb25nKSBPVkVSUklERSBGSU5BTDsKICAgICAgICAgYm9vbCBmaXJzdFNlZWso
KTsKIAotICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q3Vyc29yPiBjbG9uZSgpID0gMDsKLSAg
ICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSgpIGNvbnN0IHsgcmV0
dXJuIG1fY3VycmVudEtleTsgfQotICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2hhcmVkQnVm
ZmVyPiB2YWx1ZSgpIGNvbnN0ID0gMDsKLSAgICAgICAgdmlydHVhbCBjb25zdCBSZWNvcmRJZGVu
dGlmaWVyJiByZWNvcmRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZWNvcmRJZGVudGlm
aWVyOyB9CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OkN1cnNvcj4gY2xvbmUoKSBPVkVSUklERSA9IDA7CisgICAgICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxJREJLZXk+IHByaW1hcnlLZXkoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2N1cnJl
bnRLZXk7IH0KKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWUo
KSBjb25zdCBPVkVSUklERSA9IDA7CisgICAgICAgIHZpcnR1YWwgY29uc3QgUmVjb3JkSWRlbnRp
ZmllciYgcmVjb3JkSWRlbnRpZmllcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fcmVjb3Jk
SWRlbnRpZmllcjsgfQogICAgICAgICB2aXJ0dWFsIH5DdXJzb3IoKSB7IH0KICAgICAgICAgdmly
dHVhbCBib29sIGxvYWRDdXJyZW50Um93KCkgPSAwOwogCkBAIC0xNTcsMTQgKzE2MywxNCBAQCBw
dWJsaWM6CiAgICAgICAgIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlJlY29yZElkZW50aWZpZXIg
bV9yZWNvcmRJZGVudGlmaWVyOwogICAgIH07CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q3Vy
c29yPiBvcGVuT2JqZWN0U3RvcmVLZXlDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpU
cmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBj
b25zdCBJREJLZXlSYW5nZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKTsKLSAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8Q3Vyc29yPiBvcGVuT2JqZWN0U3RvcmVDdXJzb3IoSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXlSYW5nZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0
aW9uKTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q3Vyc29yPiBvcGVuSW5kZXhLZXlDdXJzb3Io
SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJ
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJh
bmdlKiwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24pOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxDdXJzb3I+IG9wZW5JbmRleEN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5z
YWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0
X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlv
bik7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vy
c29yPiBvcGVuT2JqZWN0U3RvcmVLZXlDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpU
cmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBj
b25zdCBJREJLZXlSYW5nZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKSBPVkVSUklERSBG
SU5BTDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpD
dXJzb3I+IG9wZW5PYmplY3RTdG9yZUN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRy
YW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNv
bnN0IElEQktleVJhbmdlKiwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24pIE9WRVJSSURFIEZJ
TkFMOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1
cnNvcj4gb3BlbkluZGV4S2V5Q3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNh
Y3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRf
dCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9u
KSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3Jl
SW50ZXJmYWNlOjpDdXJzb3I+IG9wZW5JbmRleEN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNv
ckRpcmVjdGlvbikgT1ZFUlJJREUgRklOQUw7CiAKICAgICBjbGFzcyBUcmFuc2FjdGlvbiA6IHB1
YmxpYyBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uIHsKICAgICBwdWJsaWM6
Ci0gICAgICAgIGV4cGxpY2l0IFRyYW5zYWN0aW9uKElEQkJhY2tpbmdTdG9yZUxldmVsREIqKTsK
KyAgICAgICAgZXhwbGljaXQgVHJhbnNhY3Rpb24oSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKik7
CiAgICAgICAgIHZvaWQgYmVnaW4oKTsKICAgICAgICAgYm9vbCBjb21taXQoKTsKICAgICAgICAg
dm9pZCByb2xsYmFjaygpOwpAQCAtMTgwLDcgKzE4Niw3IEBAIHB1YmxpYzoKICAgICAgICAgfQog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiogbV9iYWNraW5n
U3RvcmU7CisgICAgICAgIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogbV9iYWNraW5nU3RvcmU7
CiAgICAgICAgIFJlZlB0cjxMZXZlbERCVHJhbnNhY3Rpb24+IG1fdHJhbnNhY3Rpb247CiAgICAg
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxk
Yi9JREJDdXJzb3JCYWNrZW5kTGV2ZWxEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9sZXZlbGRiL0lEQkN1cnNvckJhY2tlbmRMZXZlbERCLmNwcAppbmRleCAzNzE0YTA1
Li4yOWE1OTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9s
ZXZlbGRiL0lEQkN1cnNvckJhY2tlbmRMZXZlbERCLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkN1cnNvckJhY2tlbmRMZXZlbERCLmNwcApAQCAt
MTAxLDcgKzEwMSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gbV9jYWxs
YmFja3M7CiB9OwogCi1JREJDdXJzb3JCYWNrZW5kTGV2ZWxEQjo6SURCQ3Vyc29yQmFja2VuZExl
dmVsREIoUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IGN1cnNvciwg
SW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIElEQkRhdGFiYXNlQmFja2VuZEludGVy
ZmFjZTo6VGFza1R5cGUgdGFza1R5cGUsIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRy
YW5zYWN0aW9uLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpCitJREJDdXJzb3JCYWNrZW5kTGV2ZWxE
Qjo6SURCQ3Vyc29yQmFja2VuZExldmVsREIoUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRl
cmZhY2U6OkN1cnNvcj4gY3Vyc29yLCBJbmRleGVkREI6OkN1cnNvclR5cGUgY3Vyc29yVHlwZSwg
SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSB0YXNrVHlwZSwgSURCVHJhbnNh
Y3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkK
ICAgICA6IG1fdGFza1R5cGUodGFza1R5cGUpCiAgICAgLCBtX2N1cnNvclR5cGUoY3Vyc29yVHlw
ZSkKICAgICAsIG1fZGF0YWJhc2UodHJhbnNhY3Rpb24tPmRhdGFiYXNlKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkN1cnNvckJhY2tl
bmRMZXZlbERCLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
QkN1cnNvckJhY2tlbmRMZXZlbERCLmgKaW5kZXggMThhY2ZlNi4uYjJkZWVhMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJDdXJzb3JCYWNr
ZW5kTGV2ZWxEQi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVs
ZGIvSURCQ3Vyc29yQmFja2VuZExldmVsREIuaApAQCAtNDQsMTEgKzQ0LDExIEBAIGNsYXNzIElE
QktleVJhbmdlOwogCiBjbGFzcyBJREJDdXJzb3JCYWNrZW5kTGV2ZWxEQiA6IHB1YmxpYyBJREJD
dXJzb3JCYWNrZW5kSW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJ
REJDdXJzb3JCYWNrZW5kTGV2ZWxEQj4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3Jl
TGV2ZWxEQjo6Q3Vyc29yPiBjdXJzb3IsIEluZGV4ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBl
LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRMZXZlbERC
PiBjcmVhdGUoUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gY3Vy
c29yLCBJbmRleGVkREI6OkN1cnNvclR5cGUgY3Vyc29yVHlwZSwgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCQ3Vyc29yQmFja2VuZExldmVsREIoY3Vyc29y
LCBjdXJzb3JUeXBlLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6Ok5vcm1hbFRhc2ssIHRy
YW5zYWN0aW9uLCBvYmplY3RTdG9yZUlkKSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PElEQkN1cnNvckJhY2tlbmRMZXZlbERCPiBjcmVhdGUoUGFzc1JlZlB0cjxJREJCYWNraW5nU3Rv
cmVMZXZlbERCOjpDdXJzb3I+IGN1cnNvciwgSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5
cGUsIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6VGFza1R5cGUgdGFza1R5cGUsIElEQlRy
YW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZExldmVsREI+IGNyZWF0
ZShQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yPiBjdXJzb3IsIElu
ZGV4ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2U6OlRhc2tUeXBlIHRhc2tUeXBlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFu
c2FjdGlvbiwgaW50NjRfdCBvYmplY3RTdG9yZUlkKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBJREJDdXJzb3JCYWNrZW5kTGV2ZWxEQihjdXJzb3IsIGN1cnNvclR5cGUsIHRh
c2tUeXBlLCB0cmFuc2FjdGlvbiwgb2JqZWN0U3RvcmVJZCkpOwogICAgIH0KQEAgLTY4LDcgKzY4
LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xvc2UoKTsKIAogcHJpdmF0ZToKLSAgICBJREJDdXJz
b3JCYWNrZW5kTGV2ZWxEQihQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNv
cj4sIEluZGV4ZWREQjo6Q3Vyc29yVHlwZSwgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpU
YXNrVHlwZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiosIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCk7CisgICAgSURCQ3Vyc29yQmFja2VuZExldmVsREIoUGFzc1JlZlB0cjxJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4sIEluZGV4ZWREQjo6Q3Vyc29yVHlwZSwgSURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxE
QiosIGludDY0X3Qgb2JqZWN0U3RvcmVJZCk7CiAKICAgICBjbGFzcyBDdXJzb3JJdGVyYXRpb25P
cGVyYXRpb247CiAgICAgY2xhc3MgQ3Vyc29yQWR2YW5jZU9wZXJhdGlvbjsKQEAgLTgwLDggKzgw
LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4g
bV90cmFuc2FjdGlvbjsKICAgICBjb25zdCBpbnQ2NF90IG1fb2JqZWN0U3RvcmVJZDsKIAotICAg
IFJlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IG1fY3Vyc29yOyAvLyBNdXN0
IGJlIGRlc3Ryb3llZCBiZWZvcmUgbV90cmFuc2FjdGlvbi4KLSAgICBSZWZQdHI8SURCQmFja2lu
Z1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBtX3NhdmVkQ3Vyc29yOyAvLyBNdXN0IGJlIGRlc3Ryb3ll
ZCBiZWZvcmUgbV90cmFuc2FjdGlvbi4KKyAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlOjpDdXJzb3I+IG1fY3Vyc29yOyAvLyBNdXN0IGJlIGRlc3Ryb3llZCBiZWZvcmUgbV90cmFu
c2FjdGlvbi4KKyAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IG1f
c2F2ZWRDdXJzb3I7IC8vIE11c3QgYmUgZGVzdHJveWVkIGJlZm9yZSBtX3RyYW5zYWN0aW9uLgog
CiAgICAgYm9vbCBtX2Nsb3NlZDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkRhdGFiYXNlQmFja2VuZExldmVsREIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJEYXRhYmFzZUJhY2tlbmRM
ZXZlbERCLmNwcAppbmRleCBiODg3MTY2Li41Y2E4NmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkRhdGFiYXNlQmFja2VuZExldmVsREIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRGF0
YWJhc2VCYWNrZW5kTGV2ZWxEQi5jcHAKQEAgLTQyLDE1ICs0MiwxNSBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQj4gSURCRGF0
YWJhc2VCYWNrZW5kTGV2ZWxEQjo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCQmFja2lu
Z1N0b3JlTGV2ZWxEQiogZGF0YWJhc2UsIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiBmYWN0
b3J5LCBjb25zdCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIpCitQYXNzUmVmUHRyPElEQkRhdGFi
YXNlQmFja2VuZExldmVsREI+IElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmNyZWF0ZShjb25z
dCBTdHJpbmcmIG5hbWUsIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2luZ1N0b3JlLCBJ
REJGYWN0b3J5QmFja2VuZEludGVyZmFjZSogZmFjdG9yeSwgY29uc3QgU3RyaW5nJiB1bmlxdWVJ
ZGVudGlmaWVyKQogewotICAgIFJlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCPiBiYWNr
ZW5kID0gYWRvcHRSZWYobmV3IElEQkRhdGFiYXNlQmFja2VuZExldmVsREIobmFtZSwgZGF0YWJh
c2UsIGZhY3RvcnksIHVuaXF1ZUlkZW50aWZpZXIpKTsKKyAgICBSZWZQdHI8SURCRGF0YWJhc2VC
YWNrZW5kTGV2ZWxEQj4gYmFja2VuZCA9IGFkb3B0UmVmKG5ldyBJREJEYXRhYmFzZUJhY2tlbmRM
ZXZlbERCKG5hbWUsIGJhY2tpbmdTdG9yZSwgZmFjdG9yeSwgdW5pcXVlSWRlbnRpZmllcikpOwog
ICAgIGlmICghYmFja2VuZC0+b3BlbkludGVybmFsKCkpCiAgICAgICAgIHJldHVybiAwOwogICAg
IHJldHVybiBiYWNrZW5kLnJlbGVhc2UoKTsKIH0KIAotSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxE
Qjo6SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQihjb25zdCBTdHJpbmcmIG5hbWUsIElEQkJhY2tp
bmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2Uq
IGZhY3RvcnksIGNvbnN0IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcikKK0lEQkRhdGFiYXNlQmFj
a2VuZExldmVsREI6OklEQkRhdGFiYXNlQmFja2VuZExldmVsREIoY29uc3QgU3RyaW5nJiBuYW1l
LCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgSURCRmFjdG9yeUJhY2tl
bmRJbnRlcmZhY2UqIGZhY3RvcnksIGNvbnN0IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcikKICAg
ICA6IG1fYmFja2luZ1N0b3JlKGJhY2tpbmdTdG9yZSkKICAgICAsIG1fbWV0YWRhdGEobmFtZSwg
SW52YWxpZElkLCAwLCBJbnZhbGlkSWQpCiAgICAgLCBtX2lkZW50aWZpZXIodW5pcXVlSWRlbnRp
ZmllcikKQEAgLTExOCw5ICsxMTgsOSBAQCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjp+SURC
RGF0YWJhc2VCYWNrZW5kTGV2ZWxEQigpCiB7CiB9CiAKLVBhc3NSZWZQdHI8SURCQmFja2luZ1N0
b3JlTGV2ZWxEQj4gSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6YmFja2luZ1N0b3JlKCkgY29u
c3QKK0lEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6
YmFja2luZ1N0b3JlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9iYWNraW5nU3RvcmU7CisgICAg
cmV0dXJuIG1fYmFja2luZ1N0b3JlLmdldCgpOwogfQogCiB2b2lkIElEQkRhdGFiYXNlQmFja2Vu
ZExldmVsREI6OmNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmIGtl
eVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCkKQEAgLTI0Niw3ICsyNDYsNyBAQCB2b2lkIElEQkRh
dGFiYXNlQmFja2VuZExldmVsREI6OnNldEluZGV4S2V5cyhpbnQ2NF90IHRyYW5zYWN0aW9uSWQs
IGludDY0X3Qgb2JqZQogICAgIEFTU0VSVCh0cmFuc2FjdGlvbi0+bW9kZSgpID09IEluZGV4ZWRE
Qjo6VHJhbnNhY3Rpb25WZXJzaW9uQ2hhbmdlKTsKIAogICAgIFJlZlB0cjxJREJLZXk+IHByaW1h
cnlLZXkgPSBwcnBQcmltYXJ5S2V5OwotICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERC
PiBzdG9yZSA9IGJhY2tpbmdTdG9yZSgpOworICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRl
cmZhY2U+IHN0b3JlID0gYmFja2luZ1N0b3JlKCk7CiAgICAgLy8gRklYTUU6IFRoaXMgbWV0aG9k
IGNvdWxkIGJlIGFzeW5jaHJvbm91cywgYnV0IHdlIG5lZWQgdG8gZXZhbHVhdGUgaWYgaXQncyB3
b3J0aCB0aGUgZXh0cmEgY29tcGxleGl0eS4KICAgICBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpS
ZWNvcmRJZGVudGlmaWVyIHJlY29yZElkZW50aWZpZXI7CiAgICAgYm9vbCBmb3VuZCA9IGZhbHNl
OwpAQCAtNDI2LDcgKzQyNiw4IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6cHJv
Y2Vzc1BlbmRpbmdDYWxscygpCiAKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6Y3Jl
YXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFi
YXNlQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3Rv
cmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpCiB7Ci0gICAgUmVmUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZExldmVsREI+IHRyYW5zYWN0aW9uID0gSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxE
Qjo6Y3JlYXRlKG1fYmFja2luZ1N0b3JlLmdldCgpLCB0cmFuc2FjdGlvbklkLCBjYWxsYmFja3Ms
IG9iamVjdFN0b3JlSWRzLCBzdGF0aWNfY2FzdDxJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZT4o
bW9kZSksIHRoaXMpOworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+
IHRyYW5zYWN0aW9uID0gbV9mYWN0b3J5LT5jcmVhdGVUcmFuc2FjdGlvbkJhY2tlbmQodGhpcywg
dHJhbnNhY3Rpb25JZCwgY2FsbGJhY2tzLCBvYmplY3RTdG9yZUlkcywgc3RhdGljX2Nhc3Q8SW5k
ZXhlZERCOjpUcmFuc2FjdGlvbk1vZGU+KG1vZGUpKTsKKwogICAgIEFTU0VSVCghbV90cmFuc2Fj
dGlvbnMuY29udGFpbnModHJhbnNhY3Rpb25JZCkpOwogICAgIG1fdHJhbnNhY3Rpb25zLmFkZCh0
cmFuc2FjdGlvbklkLCB0cmFuc2FjdGlvbi5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkRhdGFiYXNlQmFja2VuZExldmVs
REIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRGF0YWJh
c2VCYWNrZW5kTGV2ZWxEQi5oCmluZGV4IDc2MmM3ZDEuLjNhMDUwZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRGF0YWJhc2VCYWNrZW5k
TGV2ZWxEQi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIv
SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQi5oCkBAIC0zNyw3ICszNyw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjsKK2NsYXNzIElEQkJh
Y2tpbmdTdG9yZUludGVyZmFjZTsKIGNsYXNzIElEQkRhdGFiYXNlOwogY2xhc3MgSURCRmFjdG9y
eUJhY2tlbmRJbnRlcmZhY2U7CiBjbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7
CkBAIC00NSwxMCArNDUsMTAgQEAgY2xhc3MgSURCVHJhbnNhY3Rpb25Db29yZGluYXRvckxldmVs
REI7CiAKIGNsYXNzIElEQkRhdGFiYXNlQmFja2VuZExldmVsREIgOiBwdWJsaWMgSURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUJhY2tlbmRMZXZlbERCPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJCYWNr
aW5nU3RvcmVMZXZlbERCKiBkYXRhYmFzZSwgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqLCBj
b25zdCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPElE
QkRhdGFiYXNlQmFja2VuZExldmVsREI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIElEQkJh
Y2tpbmdTdG9yZUludGVyZmFjZSosIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiwgY29uc3Qg
U3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5JREJEYXRhYmFzZUJhY2tl
bmRMZXZlbERCKCk7CiAKLSAgICBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+IGJh
Y2tpbmdTdG9yZSgpIGNvbnN0OworICAgIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2lu
Z1N0b3JlKCkgY29uc3Q7CiAKICAgICBzdGF0aWMgY29uc3QgaW50NjRfdCBJbnZhbGlkSWQgPSAw
OwogICAgIGludDY0X3QgaWQoKSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLmlkOyB9CkBAIC05
Myw3ICs5Myw3IEBAIHB1YmxpYzoKICAgICBjbGFzcyBWZXJzaW9uQ2hhbmdlQWJvcnRPcGVyYXRp
b247CiAKIHByaXZhdGU6Ci0gICAgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQihjb25zdCBTdHJp
bmcmIG5hbWUsIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGRhdGFiYXNlLCBJREJGYWN0b3J5QmFj
a2VuZEludGVyZmFjZSosIGNvbnN0IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcik7CisgICAgSURC
RGF0YWJhc2VCYWNrZW5kTGV2ZWxEQihjb25zdCBTdHJpbmcmIG5hbWUsIElEQkJhY2tpbmdTdG9y
ZUludGVyZmFjZSosIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiwgY29uc3QgU3RyaW5nJiB1
bmlxdWVJZGVudGlmaWVyKTsKIAogICAgIGJvb2wgb3BlbkludGVybmFsKCk7CiAgICAgdm9pZCBy
dW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24oUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQ
YXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBp
bnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pOwpAQCAtMTAzLDcgKzEwMyw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBpc0RlbGV0ZURhdGFiYXNlQmxvY2tlZCgpOwogICAgIHZvaWQgZGVsZXRlRGF0YWJh
c2VGaW5hbChQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pOwogCi0gICAgUmVmUHRyPElEQkJhY2tp
bmdTdG9yZUxldmVsREI+IG1fYmFja2luZ1N0b3JlOworICAgIFJlZlB0cjxJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U+IG1fYmFja2luZ1N0b3JlOwogICAgIElEQkRhdGFiYXNlTWV0YWRhdGEgbV9t
ZXRhZGF0YTsKIAogICAgIFN0cmluZyBtX2lkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkZhY3RvcnlCYWNrZW5kTGV2ZWxE
Qi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkZhY3Rv
cnlCYWNrZW5kTGV2ZWxEQi5jcHAKaW5kZXggODc0NTAyNS4uMTZjOTc5OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2Vu
ZExldmVsREIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVs
ZGIvSURCRmFjdG9yeUJhY2tlbmRMZXZlbERCLmNwcApAQCAtMTg2LDYgKzE4NiwxMSBAQCB2b2lk
IElEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQjo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0
X3QgdmVyc2lvbiwgaW50NjRfdAogICAgIGRhdGFiYXNlQmFja2VuZC0+b3BlbkNvbm5lY3Rpb24o
Y2FsbGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNrcywgdHJhbnNhY3Rpb25JZCwgdmVyc2lvbik7CiB9
CiAKK1Bhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJREJGYWN0b3J5
QmFja2VuZExldmVsREI6OmNyZWF0ZVRyYW5zYWN0aW9uQmFja2VuZChJREJEYXRhYmFzZUJhY2tl
bmRMZXZlbERCKiBiYWNrZW5kLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VDYWxsYmFja3M+IGRhdGFiYXNlQ2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8aW50NjRf
dD4mIG9iamVjdFN0b3JlSWRzLCBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSBtb2RlKQorewor
ICAgIHJldHVybiBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpjcmVhdGUoYmFja2VuZCwg
dHJhbnNhY3Rpb25JZCwgZGF0YWJhc2VDYWxsYmFja3MsIG9iamVjdFN0b3JlSWRzLCBtb2RlKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURf
REFUQUJBU0UpICYmIFVTRShMRVZFTERCKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExldmVsREIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRmFjdG9yeUJhY2tlbmRMZXZl
bERCLmgKaW5kZXggZmYwOWQzZi4uN2EzMzBhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExldmVsREIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkZhY3RvcnlCYWNr
ZW5kTGV2ZWxEQi5oCkBAIC01OCwxMCArNTgsMTMgQEAgcHVibGljOgogICAgIC8vIE5vdGlmaWNh
dGlvbnMgZnJvbSB3ZWFrIHBvaW50ZXJzLgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJREJEYXRh
YmFzZUJhY2tlbmQoY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKSBPVkVSUklERSBGSU5B
TDsKIAotICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpOwotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0
IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4s
IFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29u
c3QgU3RyaW5nJiBkYXRhRGlyKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSBPVkVSUklERSBGSU5B
TDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVy
c2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgT1ZFUlJJ
REUgRklOQUw7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5n
JiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmln
aW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSBPVkVS
UklERSBGSU5BTDsKKworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0aW9uQmFja2VuZChJREJEYXRhYmFzZUJhY2tlbmRM
ZXZlbERCKiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2Fs
bGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1v
ZGUpIE9WRVJSSURFIEZJTkFMOwogCi0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNv
bnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0
YURpcik7CiAKIHByb3RlY3RlZDoKICAgICBJREJGYWN0b3J5QmFja2VuZExldmVsREIoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREIuY3BwCmluZGV4IGNkYWYx
NDkuLjQyNDA1YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2xldmVsZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRMZXZl
bERCLmNwcApAQCAtNDQsNyArNDQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wg
SURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQjo6SW5kZXhXcml0ZXI6OnZlcmlmeUluZGV4S2V5
cyhJREJCYWNraW5nU3RvcmVMZXZlbERCJiBiYWNraW5nU3RvcmUsIElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBib29sJiBjYW5BZGRLZXlzLCBj
b25zdCBJREJLZXkqIHByaW1hcnlLZXksIFN0cmluZyogZXJyb3JNZXNzYWdlKSBjb25zdAorYm9v
bCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpJbmRleFdyaXRlcjo6dmVyaWZ5SW5kZXhL
ZXlzKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSYgYmFja2luZ1N0b3JlLCBJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgYm9vbCYgY2FuQWRkS2V5
cywgY29uc3QgSURCS2V5KiBwcmltYXJ5S2V5LCBTdHJpbmcqIGVycm9yTWVzc2FnZSkgY29uc3QK
IHsKICAgICBjYW5BZGRLZXlzID0gZmFsc2U7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X2luZGV4S2V5cy5zaXplKCk7ICsraSkgewpAQCAtNjEsNyArNjEsNyBAQCBib29sIElEQk9iamVj
dFN0b3JlQmFja2VuZExldmVsREI6OkluZGV4V3JpdGVyOjp2ZXJpZnlJbmRleEtleXMoSURCQmFj
a2luZ1N0b3JlTAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIElEQk9iamVjdFN0b3JlQmFj
a2VuZExldmVsREI6OkluZGV4V3JpdGVyOjp3cml0ZUluZGV4S2V5cyhjb25zdCBJREJCYWNraW5n
U3RvcmVMZXZlbERCOjpSZWNvcmRJZGVudGlmaWVyJiByZWNvcmRJZGVudGlmaWVyLCBJREJCYWNr
aW5nU3RvcmVMZXZlbERCJiBiYWNraW5nU3RvcmUsIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6
VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCkgY29uc3QKK3ZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQjo6SW5k
ZXhXcml0ZXI6OndyaXRlSW5kZXhLZXlzKGNvbnN0IElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlJl
Y29yZElkZW50aWZpZXImIHJlY29yZElkZW50aWZpZXIsIElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZSYgYmFja2luZ1N0b3JlLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0
cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIGNv
bnN0CiB7CiAgICAgaW50NjRfdCBpbmRleElkID0gbV9pbmRleE1ldGFkYXRhLmlkOwogICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9pbmRleEtleXMuc2l6ZSgpOyArK2kpIHsKQEAgLTcxLDcg
KzcxLDcgQEAgdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpJbmRleFdyaXRlcjo6
d3JpdGVJbmRleEtleXMoY29uc3QgSURCQmFja2luZ1MKICAgICB9CiB9CiAKLWJvb2wgSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQjo6SW5kZXhXcml0ZXI6OmFkZGluZ0tleUFsbG93ZWQoSURC
QmFja2luZ1N0b3JlTGV2ZWxEQiYgYmFja2luZ1N0b3JlLCBJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5KiBpbmRleEtleSwg
Y29uc3QgSURCS2V5KiBwcmltYXJ5S2V5LCBib29sJiBhbGxvd2VkKSBjb25zdAorYm9vbCBJREJP
YmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpJbmRleFdyaXRlcjo6YWRkaW5nS2V5QWxsb3dlZChJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2UmIGJhY2tpbmdTdG9yZSwgSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50
NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSogaW5kZXhL
ZXksIGNvbnN0IElEQktleSogcHJpbWFyeUtleSwgYm9vbCYgYWxsb3dlZCkgY29uc3QKIHsKICAg
ICBhbGxvd2VkID0gZmFsc2U7CiAgICAgaWYgKCFtX2luZGV4TWV0YWRhdGEudW5pcXVlKSB7CkBA
IC04OSw3ICs4OSw3IEBAIGJvb2wgSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQjo6SW5kZXhX
cml0ZXI6OmFkZGluZ0tleUFsbG93ZWQoSURCQmFja2luZ1N0b3JlCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQjo6bWFrZUluZGV4V3JpdGVy
cyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb24s
IElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlk
LCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxJ
REJLZXk+IHByaW1hcnlLZXksIGJvb2wga2V5V2FzR2VuZXJhdGVkLCBjb25zdCBWZWN0b3I8aW50
NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNl
OjpJbmRleEtleXM+JiBpbmRleEtleXMsIFZlY3RvcjxPd25QdHI8SW5kZXhXcml0ZXI+PiogaW5k
ZXhXcml0ZXJzLCBTdHJpbmcqIGVycm9yTWVzc2FnZSwgYm9vbCYgY29tcGxldGVkKQorYm9vbCBJ
REJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjptYWtlSW5kZXhXcml0ZXJzKFBhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlKiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgY29uc3QgSURC
T2JqZWN0U3RvcmVNZXRhZGF0YSYgb2JqZWN0U3RvcmUsIFBhc3NSZWZQdHI8SURCS2V5PiBwcmlt
YXJ5S2V5LCBib29sIGtleVdhc0dlbmVyYXRlZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRl
eElkcywgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlz
PiYgaW5kZXhLZXlzLCBWZWN0b3I8T3duUHRyPEluZGV4V3JpdGVyPj4qIGluZGV4V3JpdGVycywg
U3RyaW5nKiBlcnJvck1lc3NhZ2UsIGJvb2wmIGNvbXBsZXRlZCkKIHsKICAgICBBU1NFUlQoaW5k
ZXhJZHMuc2l6ZSgpID09IGluZGV4S2V5cy5zaXplKCkpOwogICAgIGNvbXBsZXRlZCA9IGZhbHNl
OwpAQCAtMTIyLDcgKzEyMiw3IEBAIGJvb2wgSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQjo6
bWFrZUluZGV4V3JpdGVycyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFjCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLVBhc3NSZWZQdHI8SURCS2V5PiBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZl
bERCOjpnZW5lcmF0ZUtleShQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+IGJhY2tp
bmdTdG9yZSwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiB0cmFuc2Fj
dGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpCitQYXNzUmVm
UHRyPElEQktleT4gSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQjo6Z2VuZXJhdGVLZXkoUGFz
c1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U+IGJhY2tpbmdTdG9yZSwgUGFzc1JlZlB0
cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpCiB7CiAgICAgY29uc3QgaW50NjRfdCBtYXhH
ZW5lcmF0b3JWYWx1ZSA9IDkwMDcxOTkyNTQ3NDA5OTJMTDsgLy8gTWF4aW11bSBpbnRlZ2VyIHN0
b3JhYmxlIGFzIEVDTUFTY3JpcHQgbnVtYmVyLgogICAgIGludDY0X3QgY3VycmVudE51bWJlcjsK
QEAgLTEzNyw3ICsxMzcsNyBAQCBQYXNzUmVmUHRyPElEQktleT4gSURCT2JqZWN0U3RvcmVCYWNr
ZW5kTGV2ZWxEQjo6Z2VuZXJhdGVLZXkoUGFzc1JlZlB0cjxJREJCYWNraQogICAgIHJldHVybiBJ
REJLZXk6OmNyZWF0ZU51bWJlcihjdXJyZW50TnVtYmVyKTsKIH0KIAotYm9vbCBJREJPYmplY3RT
dG9yZUJhY2tlbmRMZXZlbERCOjp1cGRhdGVLZXlHZW5lcmF0b3IoUGFzc1JlZlB0cjxJREJCYWNr
aW5nU3RvcmVMZXZlbERCPiBiYWNraW5nU3RvcmUsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kTGV2ZWxEQj4gdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkqIGtleSwgYm9vbCBjaGVja0N1cnJlbnQpCitib29s
IElEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6OnVwZGF0ZUtleUdlbmVyYXRvcihQYXNzUmVm
UHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZT4gYmFja2luZ1N0b3JlLCBQYXNzUmVmUHRyPElE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+IHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5KiBrZXksIGJvb2wgY2hlY2tD
dXJyZW50KQogewogICAgIEFTU0VSVChrZXkgJiYga2V5LT50eXBlKCkgPT0gSURCS2V5OjpOdW1i
ZXJUeXBlKTsKICAgICByZXR1cm4gYmFja2luZ1N0b3JlLT5tYXliZVVwZGF0ZUtleUdlbmVyYXRv
ckN1cnJlbnROdW1iZXIodHJhbnNhY3Rpb24tPmJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCksIGRh
dGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIHN0YXRpY19jYXN0PGludDY0X3Q+KGZsb29yKGtleS0+
bnVtYmVyKCkpKSArIDEsIGNoZWNrQ3VycmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCT2JqZWN0U3Rv
cmVCYWNrZW5kTGV2ZWxEQi5oCmluZGV4IGY5NWI1YjQuLjJlODJkZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCT2JqZWN0U3RvcmVCYWNr
ZW5kTGV2ZWxEQi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVs
ZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5oCkBAIC01NSwyMSArNTUsMjEgQEAgbmFt
ZXNwYWNlIElEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREIgewogICAgICAgICAgICAgLCBtX2lu
ZGV4S2V5cyhpbmRleEtleXMpCiAgICAgICAgIHsgfQogCi0gICAgICAgIGJvb2wgdmVyaWZ5SW5k
ZXhLZXlzKElEQkJhY2tpbmdTdG9yZUxldmVsREImLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6
OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQs
IGludDY0X3QgaW5kZXhJZCwgYm9vbCYgY2FuQWRkS2V5cywgY29uc3QgSURCS2V5KiBwcmltYXJ5
S2V5ID0gMCwgU3RyaW5nKiBlcnJvck1lc3NhZ2UgPSAwKSBjb25zdCBXQVJOX1VOVVNFRF9SRVRV
Uk47CisgICAgICAgIGJvb2wgdmVyaWZ5SW5kZXhLZXlzKElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZSYsIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFi
YXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBib29sJiBjYW5B
ZGRLZXlzLCBjb25zdCBJREJLZXkqIHByaW1hcnlLZXkgPSAwLCBTdHJpbmcqIGVycm9yTWVzc2Fn
ZSA9IDApIGNvbnN0IFdBUk5fVU5VU0VEX1JFVFVSTjsKIAotICAgICAgICB2b2lkIHdyaXRlSW5k
ZXhLZXlzKGNvbnN0IElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlJlY29yZElkZW50aWZpZXImLCBJ
REJCYWNraW5nU3RvcmVMZXZlbERCJiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2Fj
dGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSBjb25zdDsK
KyAgICAgICAgdm9pZCB3cml0ZUluZGV4S2V5cyhjb25zdCBJREJCYWNraW5nU3RvcmVMZXZlbERC
OjpSZWNvcmRJZGVudGlmaWVyJiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlJiwgSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkKSBjb25zdDsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIGJvb2wgYWRk
aW5nS2V5QWxsb3dlZChJREJCYWNraW5nU3RvcmVMZXZlbERCJiwgSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSogaW5kZXhLZXksIGNvbnN0IElE
QktleSogcHJpbWFyeUtleSwgYm9vbCYgYWxsb3dlZCkgY29uc3QgV0FSTl9VTlVTRURfUkVUVVJO
OworICAgICAgICBib29sIGFkZGluZ0tleUFsbG93ZWQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
JiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJh
c2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktl
eSogaW5kZXhLZXksIGNvbnN0IElEQktleSogcHJpbWFyeUtleSwgYm9vbCYgYWxsb3dlZCkgY29u
c3QgV0FSTl9VTlVTRURfUkVUVVJOOwogCiAgICAgICAgIGNvbnN0IElEQkluZGV4TWV0YWRhdGEg
bV9pbmRleE1ldGFkYXRhOwogICAgICAgICBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6Oklu
ZGV4S2V5cyBtX2luZGV4S2V5czsKICAgICB9OwogCi0gICAgYm9vbCBtYWtlSW5kZXhXcml0ZXJz
KFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgSURCQmFja2luZ1N0
b3JlTGV2ZWxEQiosIGludDY0X3QgZGF0YWJhc2VJZCwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRh
ZGF0YSYsIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBib29sIGtleVdhc0dlbmVyYXRl
ZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPElEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiYsIFZlY3RvcjxPd25QdHI8SW5kZXhXcml0
ZXI+PiogaW5kZXhXcml0ZXJzLCBTdHJpbmcqIGVycm9yTWVzc2FnZSwgYm9vbCYgY29tcGxldGVk
KSBXQVJOX1VOVVNFRF9SRVRVUk47CisgICAgYm9vbCBtYWtlSW5kZXhXcml0ZXJzKFBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgSURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiwg
UGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIGJvb2wga2V5V2FzR2VuZXJhdGVkLCBjb25z
dCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlOjpJbmRleEtleXM+JiwgVmVjdG9yPE93blB0cjxJbmRleFdyaXRlcj4+KiBp
bmRleFdyaXRlcnMsIFN0cmluZyogZXJyb3JNZXNzYWdlLCBib29sJiBjb21wbGV0ZWQpIFdBUk5f
VU5VU0VEX1JFVFVSTjsKIAotICAgIFBhc3NSZWZQdHI8SURCS2V5PiBnZW5lcmF0ZUtleShQYXNz
UmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZExldmVsREI+LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCk7Ci0gICAgYm9vbCB1cGRhdGVLZXlHZW5lcmF0b3IoUGFzc1JlZlB0cjxJREJCYWNraW5nU3Rv
cmVMZXZlbERCPiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSosIGJv
b2wgY2hlY2tDdXJyZW50KTsKKyAgICBQYXNzUmVmUHRyPElEQktleT4gZ2VuZXJhdGVLZXkoUGFz
c1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U+LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0
aW9uQmFja2VuZExldmVsREI+LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCk7CisgICAgYm9vbCB1cGRhdGVLZXlHZW5lcmF0b3IoUGFzc1JlZlB0cjxJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U+LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+
LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5
KiwgYm9vbCBjaGVja0N1cnJlbnQpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFu
c2FjdGlvbkJhY2tlbmRMZXZlbERCLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQi5jcHAKaW5kZXggYTNhM2Jj
Zi4uZTRlYTRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
bGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVs
REIuY3BwCkBAIC00MCwyNyArNDAsMjcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+IElEQlRyYW5zYWN0aW9uQmFja2Vu
ZExldmVsREI6OmNyZWF0ZShJREJCYWNraW5nU3RvcmVMZXZlbERCKiBiYWNraW5nU3RvcmUsIGlu
dDY0X3QgaWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGNhbGxiYWNrcywgY29u
c3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgSW5kZXhlZERCOjpUcmFuc2FjdGlv
bk1vZGUgbW9kZSwgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQiogZGF0YWJhc2UpCitQYXNzUmVm
UHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+IElEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREI6OmNyZWF0ZShJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCKiBkYXRhYmFzZUJhY2tlbmQs
IGludDY0X3QgaWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGNhbGxiYWNrcywg
Y29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgSW5kZXhlZERCOjpUcmFuc2Fj
dGlvbk1vZGUgbW9kZSkKIHsKICAgICBIYXNoU2V0PGludDY0X3Q+IG9iamVjdFN0b3JlSGFzaFNl
dDsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9iamVjdFN0b3JlSWRzLnNpemUoKTsgKytp
KQogICAgICAgICBvYmplY3RTdG9yZUhhc2hTZXQuYWRkKG9iamVjdFN0b3JlSWRzW2ldKTsKIAot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQihiYWNr
aW5nU3RvcmUsIGlkLCBjYWxsYmFja3MsIG9iamVjdFN0b3JlSGFzaFNldCwgbW9kZSwgZGF0YWJh
c2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVs
REIoZGF0YWJhc2VCYWNrZW5kLCBpZCwgY2FsbGJhY2tzLCBvYmplY3RTdG9yZUhhc2hTZXQsIG1v
ZGUpKTsKIH0KIAotSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6SURCVHJhbnNhY3Rpb25C
YWNrZW5kTGV2ZWxEQihJREJCYWNraW5nU3RvcmVMZXZlbERCKiBiYWNraW5nU3RvcmUsIGludDY0
X3QgaWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGNhbGxiYWNrcywgY29uc3Qg
SGFzaFNldDxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25N
b2RlIG1vZGUsIElEQkRhdGFiYXNlQmFja2VuZExldmVsREIqIGRhdGFiYXNlKQorSURCVHJhbnNh
Y3Rpb25CYWNrZW5kTGV2ZWxEQjo6SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQihJREJEYXRh
YmFzZUJhY2tlbmRMZXZlbERCKiBkYXRhYmFzZUJhY2tlbmQsIGludDY0X3QgaWQsIFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGNhbGxiYWNrcywgY29uc3QgSGFzaFNldDxpbnQ2NF90
PiYgb2JqZWN0U3RvcmVJZHMsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlIG1vZGUpCiAgICAg
OiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoaWQpCiAgICAgLCBtX29iamVjdFN0b3Jl
SWRzKG9iamVjdFN0b3JlSWRzKQogICAgICwgbV9tb2RlKG1vZGUpCiAgICAgLCBtX3N0YXRlKFVu
dXNlZCkKICAgICAsIG1fY29tbWl0UGVuZGluZyhmYWxzZSkKICAgICAsIG1fY2FsbGJhY2tzKGNh
bGxiYWNrcykKLSAgICAsIG1fZGF0YWJhc2UoZGF0YWJhc2UpCi0gICAgLCBtX3RyYW5zYWN0aW9u
KGRhdGFiYXNlLT5iYWNraW5nU3RvcmUoKS5nZXQoKSkKKyAgICAsIG1fZGF0YWJhc2UoZGF0YWJh
c2VCYWNrZW5kKQorICAgICwgbV90cmFuc2FjdGlvbihkYXRhYmFzZUJhY2tlbmQtPmJhY2tpbmdT
dG9yZSgpKQogICAgICwgbV90YXNrVGltZXIodGhpcywgJklEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREI6OnRhc2tUaW1lckZpcmVkKQogICAgICwgbV9wZW5kaW5nUHJlZW1wdGl2ZUV2ZW50cygw
KQotICAgICwgbV9iYWNraW5nU3RvcmUoYmFja2luZ1N0b3JlKQorICAgICwgbV9iYWNraW5nU3Rv
cmUoZGF0YWJhc2VCYWNrZW5kLT5iYWNraW5nU3RvcmUoKSkKIHsKICAgICAvLyBXZSBwYXNzIGEg
cmVmZXJlbmNlIG9mIHRoaXMgb2JqZWN0IGJlZm9yZSBpdCBjYW4gYmUgYWRvcHRlZC4KICAgICBy
ZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJh
Y2tlbmRMZXZlbERCLmgKaW5kZXggYTNmNmMxZC4uNTUzOWQ4NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRM
ZXZlbERCLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9J
REJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgSURC
RGF0YWJhc2VDYWxsYmFja3M7CiAKIGNsYXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIg
OiBwdWJsaWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiBjcmVhdGUoSURC
QmFja2luZ1N0b3JlTGV2ZWxEQiosIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIEluZGV4ZWREQjo6
VHJhbnNhY3Rpb25Nb2RlLCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCKik7CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gY3JlYXRlKElEQkRhdGFi
YXNlQmFja2VuZExldmVsREIqLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRz
LCBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSk7CiAgICAgdmlydHVhbCB+SURCVHJhbnNhY3Rp
b25CYWNrZW5kTGV2ZWxEQigpOwogCiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdCgpIE9WRVJSSURF
IEZJTkFMOwpAQCAtODYsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNjaGVk
dWxlQ2xlYXJPcGVyYXRpb24oaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPElEQkNh
bGxiYWNrcz4pIE9WRVJSSURFIEZJTkFMOwogICAgIAogcHJpdmF0ZToKLSAgICBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRMZXZlbERCKElEQkJhY2tpbmdTdG9yZUxldmVsREIqLCBpbnQ2NF90IGlkLCBQ
YXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgSGFzaFNldDxpbnQ2NF90PiYg
b2JqZWN0U3RvcmVJZHMsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlLCBJREJEYXRhYmFzZUJh
Y2tlbmRMZXZlbERCKik7CisgICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQihJREJEYXRh
YmFzZUJhY2tlbmRMZXZlbERCKiwgaW50NjRfdCBpZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNh
bGxiYWNrcz4sIGNvbnN0IEhhc2hTZXQ8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCBJbmRleGVk
REI6OlRyYW5zYWN0aW9uTW9kZSk7CiAKICAgICBlbnVtIFN0YXRlIHsKICAgICAgICAgVW51c2Vk
LCAvLyBDcmVhdGVkLCBidXQgbm8gdGFza3MgeWV0LgpAQCAtMTI0LDcgKzEyNCw3IEBAIHByaXZh
dGU6CiAKICAgICBIYXNoU2V0PElEQkN1cnNvckJhY2tlbmRMZXZlbERCKj4gbV9vcGVuQ3Vyc29y
czsKICAgICAKLSAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4gbV9iYWNraW5nU3Rv
cmU7CisgICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZT4gbV9iYWNraW5nU3RvcmU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREJP
cGVyYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIv
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQk9wZXJhdGlvbnMuY3BwCmluZGV4IDllOGRlMDYu
LjZlMTQ0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xl
dmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQk9wZXJhdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQk9wZXJhdGlvbnMuY3BwCkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgR2V0T3BlcmF0
aW9uOjpwZXJmb3JtKCkKICAgICBpZiAobV9rZXlSYW5nZS0+aXNPbmx5S2V5KCkpCiAgICAgICAg
IGtleSA9IG1fa2V5UmFuZ2UtPmxvd2VyKCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIFJlZlB0cjxJ
REJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvcjsKKyAgICAg
ICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yPiBiYWNraW5nU3RvcmVD
dXJzb3I7CiAgICAgICAgIGlmIChtX2luZGV4SWQgPT0gSURCSW5kZXhNZXRhZGF0YTo6SW52YWxp
ZElkKSB7CiAgICAgICAgICAgICBBU1NFUlQobV9jdXJzb3JUeXBlICE9IEluZGV4ZWREQjo6Q3Vy
c29yS2V5T25seSk7CiAgICAgICAgICAgICAvLyBPYmplY3RTdG9yZSBSZXRyaWV2YWwgT3BlcmF0
aW9uCkBAIC0yNjEsNyArMjYxLDcgQEAgdm9pZCBPcGVuQ3Vyc29yT3BlcmF0aW9uOjpwZXJmb3Jt
KCkKICAgICBpZiAobV90YXNrVHlwZSA9PSBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlBy
ZWVtcHRpdmVUYXNrKQogICAgICAgICBtX3RyYW5zYWN0aW9uLT5hZGRQcmVlbXB0aXZlRXZlbnQo
KTsKIAotICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IGJhY2tpbmdT
dG9yZUN1cnNvcjsKKyAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+
IGJhY2tpbmdTdG9yZUN1cnNvcjsKICAgICBpZiAobV9pbmRleElkID09IElEQkluZGV4TWV0YWRh
dGE6OkludmFsaWRJZCkgewogICAgICAgICBBU1NFUlQobV9jdXJzb3JUeXBlICE9IEluZGV4ZWRE
Qjo6Q3Vyc29yS2V5T25seSk7CiAgICAgICAgIGJhY2tpbmdTdG9yZUN1cnNvciA9IG1fYmFja2lu
Z1N0b3JlLT5vcGVuT2JqZWN0U3RvcmVDdXJzb3IobV90cmFuc2FjdGlvbi0+YmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb24oKSwgbV9kYXRhYmFzZUlkLCBtX29iamVjdFN0b3JlSWQsIG1fa2V5UmFuZ2Uu
Z2V0KCksIG1fZGlyZWN0aW9uKTsKQEAgLTI4Nyw3ICsyODcsNyBAQCB2b2lkIENvdW50T3BlcmF0
aW9uOjpwZXJmb3JtKCkKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIkNvdW50T3BlcmF0aW9uIik7
CiAgICAgdWludDMyX3QgY291bnQgPSAwOwotICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZl
bERCOjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvcjsKKyAgICBSZWZQdHI8SURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlOjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvcjsKIAogICAgIGlmIChtX2lu
ZGV4SWQgPT0gSURCSW5kZXhNZXRhZGF0YTo6SW52YWxpZElkKQogICAgICAgICBiYWNraW5nU3Rv
cmVDdXJzb3IgPSBtX2JhY2tpbmdTdG9yZS0+b3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29yKG1fdHJh
bnNhY3Rpb24tPmJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCksIG1fZGF0YWJhc2VJZCwgbV9vYmpl
Y3RTdG9yZUlkLCBtX2tleVJhbmdlLmdldCgpLCBJbmRleGVkREI6OkN1cnNvck5leHQpOwpAQCAt
MzA4LDcgKzMwOCw3IEBAIHZvaWQgQ291bnRPcGVyYXRpb246OnBlcmZvcm0oKQogdm9pZCBEZWxl
dGVSYW5nZU9wZXJhdGlvbjo6cGVyZm9ybSgpCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEksICJEZWxl
dGVSYW5nZU9wZXJhdGlvbiIpOwotICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpD
dXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvciA9IG1fYmFja2luZ1N0b3JlLT5vcGVuT2JqZWN0U3Rv
cmVDdXJzb3IobV90cmFuc2FjdGlvbi0+YmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSwgbV9kYXRh
YmFzZUlkLCBtX29iamVjdFN0b3JlSWQsIG1fa2V5UmFuZ2UuZ2V0KCksIEluZGV4ZWREQjo6Q3Vy
c29yTmV4dCk7CisgICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yPiBi
YWNraW5nU3RvcmVDdXJzb3IgPSBtX2JhY2tpbmdTdG9yZS0+b3Blbk9iamVjdFN0b3JlQ3Vyc29y
KG1fdHJhbnNhY3Rpb24tPmJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCksIG1fZGF0YWJhc2VJZCwg
bV9vYmplY3RTdG9yZUlkLCBtX2tleVJhbmdlLmdldCgpLCBJbmRleGVkREI6OkN1cnNvck5leHQp
OwogICAgIGlmIChiYWNraW5nU3RvcmVDdXJzb3IpIHsKICAgICAgICAgZG8gewogICAgICAgICAg
ICAgaWYgKCFtX2JhY2tpbmdTdG9yZS0+ZGVsZXRlUmVjb3JkKG1fdHJhbnNhY3Rpb24tPmJhY2tp
bmdTdG9yZVRyYW5zYWN0aW9uKCksIG1fZGF0YWJhc2VJZCwgbV9vYmplY3RTdG9yZUlkLCBiYWNr
aW5nU3RvcmVDdXJzb3ItPnJlY29yZElkZW50aWZpZXIoKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5k
TGV2ZWxEQk9wZXJhdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xl
dmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQk9wZXJhdGlvbnMuaAppbmRleCBmYWE3
ZGY4Li5jNmIzMGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREJPcGVyYXRpb25zLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJh
Y2tlbmRMZXZlbERCT3BlcmF0aW9ucy5oCkBAIC0zNCwxMyArMzQsMTMgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlvbiA6IHB1YmxpYyBJREJU
cmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpPcGVyYXRpb24gewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzT3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbj4gY3Jl
YXRlKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5n
U3RvcmVMZXZlbERCKiBiYWNraW5nU3RvcmUsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEm
IG9iamVjdFN0b3JlTWV0YWRhdGEpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25CYWNrZW5k
TGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2luZ1N0
b3JlLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZU1ldGFkYXRhKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDcmVhdGVPYmplY3RTdG9yZU9wZXJh
dGlvbih0cmFuc2FjdGlvbiwgYmFja2luZ1N0b3JlLCBvYmplY3RTdG9yZU1ldGFkYXRhKSk7CiAg
ICAgfQogICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtKCkgT1ZFUlJJREUgRklOQUw7CiBwcml2YXRl
OgotICAgIENyZWF0ZU9iamVjdFN0b3JlT3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVMZXZlbERCKiBiYWNraW5nU3RvcmUs
IGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmIG9iamVjdFN0b3JlTWV0YWRhdGEpCisgICAg
Q3JlYXRlT2JqZWN0U3RvcmVPcGVyYXRpb24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiog
dHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2luZ1N0b3JlLCBjb25z
dCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZU1ldGFkYXRhKQogICAgICAgICA6
IG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCiAgICAgICAgICwgbV9iYWNraW5nU3RvcmUoYmFj
a2luZ1N0b3JlKQogICAgICAgICAsIG1fb2JqZWN0U3RvcmVNZXRhZGF0YShvYmplY3RTdG9yZU1l
dGFkYXRhKQpAQCAtNDgsMTkgKzQ4LDE5IEBAIHByaXZhdGU6CiAgICAgfQogICAgIAogICAgIFJl
ZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiBtX3RyYW5zYWN0aW9uOwotICAgIGNv
bnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCPiBtX2JhY2tpbmdTdG9yZTsKKyAgICBj
b25zdCBSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlPiBtX2JhY2tpbmdTdG9yZTsKICAg
ICBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhIG1fb2JqZWN0U3RvcmVNZXRhZGF0YTsKIH07
CiAKIGNsYXNzIERlbGV0ZU9iamVjdFN0b3JlT3BlcmF0aW9uIDogcHVibGljIElEQlRyYW5zYWN0
aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NP
d25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUoSURC
VHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUxl
dmVsREIqIGJhY2tpbmdTdG9yZSwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2JqZWN0
U3RvcmVNZXRhZGF0YSkKKyAgICBzdGF0aWMgUGFzc093blB0cjxJREJUcmFuc2FjdGlvbkJhY2tl
bmRMZXZlbERCOjpPcGVyYXRpb24+IGNyZWF0ZShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERC
KiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKiBiYWNraW5nU3RvcmUsIGNv
bnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmIG9iamVjdFN0b3JlTWV0YWRhdGEpCiAgICAgewog
ICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERlbGV0ZU9iamVjdFN0b3JlT3BlcmF0aW9uKHRy
YW5zYWN0aW9uLCBiYWNraW5nU3RvcmUsIG9iamVjdFN0b3JlTWV0YWRhdGEpKTsKICAgICB9CiAg
ICAgdmlydHVhbCB2b2lkIHBlcmZvcm0oKSBPVkVSUklERSBGSU5BTDsKIHByaXZhdGU6Ci0gICAg
RGVsZXRlT2JqZWN0U3RvcmVPcGVyYXRpb24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiog
dHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgY29uc3Qg
SURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2JqZWN0U3RvcmVNZXRhZGF0YSkKKyAgICBEZWxldGVP
YmplY3RTdG9yZU9wZXJhdGlvbihJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2Fj
dGlvbiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKiBiYWNraW5nU3RvcmUsIGNvbnN0IElEQk9i
amVjdFN0b3JlTWV0YWRhdGEmIG9iamVjdFN0b3JlTWV0YWRhdGEpCiAgICAgICAgIDogbV90cmFu
c2FjdGlvbih0cmFuc2FjdGlvbikKICAgICAgICAgLCBtX2JhY2tpbmdTdG9yZShiYWNraW5nU3Rv
cmUpCiAgICAgICAgICwgbV9vYmplY3RTdG9yZU1ldGFkYXRhKG9iamVjdFN0b3JlTWV0YWRhdGEp
CkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZExldmVsREI+IG1fdHJhbnNhY3Rpb247Ci0gICAgY29uc3QgUmVmUHRyPElE
QkJhY2tpbmdTdG9yZUxldmVsREI+IG1fYmFja2luZ1N0b3JlOworICAgIGNvbnN0IFJlZlB0cjxJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U+IG1fYmFja2luZ1N0b3JlOwogICAgIGNvbnN0IElEQk9i
amVjdFN0b3JlTWV0YWRhdGEgbV9vYmplY3RTdG9yZU1ldGFkYXRhOwogfTsKIApAQCAtMTU0LDEz
ICsxNTQsMTMgQEAgcHJpdmF0ZToKIAogY2xhc3MgQ3JlYXRlSW5kZXhPcGVyYXRpb24gOiBwdWJs
aWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc093blB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpPcGVyYXRp
b24+IGNyZWF0ZShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURC
QmFja2luZ1N0b3JlTGV2ZWxEQiogYmFja2luZ1N0b3JlLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQs
IGNvbnN0IElEQkluZGV4TWV0YWRhdGEmIGluZGV4TWV0YWRhdGEpCisgICAgc3RhdGljIFBhc3NP
d25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUoSURC
VHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZSogYmFja2luZ1N0b3JlLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQklu
ZGV4TWV0YWRhdGEmIGluZGV4TWV0YWRhdGEpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IENyZWF0ZUluZGV4T3BlcmF0aW9uKHRyYW5zYWN0aW9uLCBiYWNraW5nU3RvcmUsIG9i
amVjdFN0b3JlSWQsIGluZGV4TWV0YWRhdGEpKTsKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIHBl
cmZvcm0oKSBPVkVSUklERSBGSU5BTDsKIHByaXZhdGU6Ci0gICAgQ3JlYXRlSW5kZXhPcGVyYXRp
b24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdT
dG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJ
REJJbmRleE1ldGFkYXRhJiBpbmRleE1ldGFkYXRhKQorICAgIENyZWF0ZUluZGV4T3BlcmF0aW9u
KElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJ
REJJbmRleE1ldGFkYXRhJiBpbmRleE1ldGFkYXRhKQogICAgICAgICA6IG1fdHJhbnNhY3Rpb24o
dHJhbnNhY3Rpb24pCiAgICAgICAgICwgbV9iYWNraW5nU3RvcmUoYmFja2luZ1N0b3JlKQogICAg
ICAgICAsIG1fb2JqZWN0U3RvcmVJZChvYmplY3RTdG9yZUlkKQpAQCAtMTY5LDcgKzE2OSw3IEBA
IHByaXZhdGU6CiAgICAgfQogCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVs
REI+IG1fdHJhbnNhY3Rpb247Ci0gICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVs
REI+IG1fYmFja2luZ1N0b3JlOworICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRl
cmZhY2U+IG1fYmFja2luZ1N0b3JlOwogICAgIGNvbnN0IGludDY0X3QgbV9vYmplY3RTdG9yZUlk
OwogICAgIGNvbnN0IElEQkluZGV4TWV0YWRhdGEgbV9pbmRleE1ldGFkYXRhOwogfTsKQEAgLTE5
NiwxMyArMTk2LDEzIEBAIHByaXZhdGU6CiAKIGNsYXNzIERlbGV0ZUluZGV4T3BlcmF0aW9uIDog
cHVibGljIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3Bl
cmF0aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24s
IElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBjb25zdCBJREJJbmRleE1ldGFkYXRhJiBpbmRleE1ldGFkYXRhKQorICAgIHN0YXRpYyBQ
YXNzT3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbj4gY3JlYXRl
KElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJ
REJJbmRleE1ldGFkYXRhJiBpbmRleE1ldGFkYXRhKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBEZWxldGVJbmRleE9wZXJhdGlvbih0cmFuc2FjdGlvbiwgYmFja2luZ1N0b3Jl
LCBvYmplY3RTdG9yZUlkLCBpbmRleE1ldGFkYXRhKSk7CiAgICAgfQogICAgIHZpcnR1YWwgdm9p
ZCBwZXJmb3JtKCkgT1ZFUlJJREUgRklOQUw7CiBwcml2YXRlOgotICAgIERlbGV0ZUluZGV4T3Bl
cmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNr
aW5nU3RvcmVMZXZlbERCKiBiYWNraW5nU3RvcmUsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29u
c3QgSURCSW5kZXhNZXRhZGF0YSYgaW5kZXhNZXRhZGF0YSkKKyAgICBEZWxldGVJbmRleE9wZXJh
dGlvbihJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlKiBiYWNraW5nU3RvcmUsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29u
c3QgSURCSW5kZXhNZXRhZGF0YSYgaW5kZXhNZXRhZGF0YSkKICAgICAgICAgOiBtX3RyYW5zYWN0
aW9uKHRyYW5zYWN0aW9uKQogICAgICAgICAsIG1fYmFja2luZ1N0b3JlKGJhY2tpbmdTdG9yZSkK
ICAgICAgICAgLCBtX29iamVjdFN0b3JlSWQob2JqZWN0U3RvcmVJZCkKQEAgLTIxMSw3ICsyMTEs
NyBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRM
ZXZlbERCPiBtX3RyYW5zYWN0aW9uOwotICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVM
ZXZlbERCPiBtX2JhY2tpbmdTdG9yZTsKKyAgICBjb25zdCBSZWZQdHI8SURCQmFja2luZ1N0b3Jl
SW50ZXJmYWNlPiBtX2JhY2tpbmdTdG9yZTsKICAgICBjb25zdCBpbnQ2NF90IG1fb2JqZWN0U3Rv
cmVJZDsKICAgICBjb25zdCBJREJJbmRleE1ldGFkYXRhIG1faW5kZXhNZXRhZGF0YTsKIH07CkBA
IC0yMzgsMTMgKzIzOCwxMyBAQCBwcml2YXRlOgogCiBjbGFzcyBHZXRPcGVyYXRpb24gOiBwdWJs
aWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc093blB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpPcGVyYXRp
b24+IGNyZWF0ZShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURC
QmFja2luZ1N0b3JlTGV2ZWxEQiogYmFja2luZ1N0b3JlLCBjb25zdCBJREJEYXRhYmFzZU1ldGFk
YXRhJiBtZXRhZGF0YSwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBJbmRleGVkREI6OkN1cnNvclR5cGUgY3Vy
c29yVHlwZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKKyAgICBzdGF0aWMg
UGFzc093blB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpPcGVyYXRpb24+IGNyZWF0
ZShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlKiBiYWNraW5nU3RvcmUsIGNvbnN0IElEQkRhdGFiYXNlTWV0YWRhdGEmIG1l
dGFkYXRhLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0
cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBl
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQogICAgIHsKICAgICAgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBHZXRPcGVyYXRpb24odHJhbnNhY3Rpb24sIGJhY2tpbmdTdG9yZSwg
bWV0YWRhdGEsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQsIGtleVJhbmdlLCBjdXJzb3JUeXBlLCBj
YWxsYmFja3MpKTsKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm0oKSBPVkVSUklERSBG
SU5BTDsKIHByaXZhdGU6Ci0gICAgR2V0T3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVMZXZlbERCKiBiYWNraW5nU3RvcmUs
IGNvbnN0IElEQkRhdGFiYXNlTWV0YWRhdGEmIG1ldGFkYXRhLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIElu
ZGV4ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4g
Y2FsbGJhY2tzKQorICAgIEdldE9wZXJhdGlvbihJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERC
KiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKiBiYWNraW5nU3RvcmUsIGNv
bnN0IElEQkRhdGFiYXNlTWV0YWRhdGEmIG1ldGFkYXRhLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQs
IGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIEluZGV4
ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2Fs
bGJhY2tzKQogICAgICAgICA6IG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCiAgICAgICAgICwg
bV9iYWNraW5nU3RvcmUoYmFja2luZ1N0b3JlKQogICAgICAgICAsIG1fZGF0YWJhc2VJZChtZXRh
ZGF0YS5pZCkKQEAgLTI2MSw3ICsyNjEsNyBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIFJlZlB0
cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiBtX3RyYW5zYWN0aW9uOwotICAgIGNvbnN0
IFJlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCPiBtX2JhY2tpbmdTdG9yZTsKKyAgICBjb25z
dCBSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlPiBtX2JhY2tpbmdTdG9yZTsKICAgICBj
b25zdCBpbnQ2NF90IG1fZGF0YWJhc2VJZDsKICAgICBjb25zdCBpbnQ2NF90IG1fb2JqZWN0U3Rv
cmVJZDsKICAgICBjb25zdCBpbnQ2NF90IG1faW5kZXhJZDsKQEAgLTI3NCwxMyArMjc0LDEzIEBA
IHByaXZhdGU6CiAKIGNsYXNzIFB1dE9wZXJhdGlvbiA6IHB1YmxpYyBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRMZXZlbERCOjpPcGVyYXRpb24gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRy
PElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbj4gY3JlYXRlKElEQlRyYW5z
YWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVMZXZlbERC
KiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgY29uc3QgSURCT2JqZWN0U3RvcmVN
ZXRhZGF0YSYgb2JqZWN0U3RvcmUsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSwgUGFz
c1JlZlB0cjxJREJLZXk+IGtleSwgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpQdXRNb2Rl
IHB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGNvbnN0IFZlY3Rv
cjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2U6OkluZGV4S2V5cz4mIGluZGV4S2V5cykKKyAgICBzdGF0aWMgUGFzc093blB0cjxJREJU
cmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpPcGVyYXRpb24+IGNyZWF0ZShJREJUcmFuc2FjdGlv
bkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKiBi
YWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRh
ZGF0YSYgb2JqZWN0U3RvcmUsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSwgUGFzc1Jl
ZlB0cjxJREJLZXk+IGtleSwgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpQdXRNb2RlIHB1
dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGNvbnN0IFZlY3Rvcjxp
bnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2U6OkluZGV4S2V5cz4mIGluZGV4S2V5cykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgUHV0T3BlcmF0aW9uKHRyYW5zYWN0aW9uLCBiYWNraW5nU3RvcmUsIGRhdGFiYXNlSWQs
IG9iamVjdFN0b3JlLCB2YWx1ZSwga2V5LCBwdXRNb2RlLCBjYWxsYmFja3MsIGluZGV4SWRzLCBp
bmRleEtleXMpKTsKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm0oKSBPVkVSUklERSBG
SU5BTDsKIHByaXZhdGU6Ci0gICAgUHV0T3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVMZXZlbERCKiBiYWNraW5nU3RvcmUs
IGludDY0X3QgZGF0YWJhc2VJZCwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2JqZWN0
U3RvcmUsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiYgdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5
PiBrZXksIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6UHV0TW9kZSBwdXRNb2RlLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGlu
ZGV4SWRzLCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtl
eXM+JiBpbmRleEtleXMpCisgICAgUHV0T3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9y
ZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmpl
Y3RTdG9yZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+JiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJL
ZXk+IGtleSwgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpQdXRNb2RlIHB1dE1vZGUsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYg
aW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4
S2V5cz4mIGluZGV4S2V5cykKICAgICAgICAgOiBtX3RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKQog
ICAgICAgICAsIG1fYmFja2luZ1N0b3JlKGJhY2tpbmdTdG9yZSkKICAgICAgICAgLCBtX2RhdGFi
YXNlSWQoZGF0YWJhc2VJZCkKQEAgLTI5NSw3ICsyOTUsNyBAQCBwcml2YXRlOgogICAgIH0KIAog
ICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiBtX3RyYW5zYWN0aW9uOwot
ICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCPiBtX2JhY2tpbmdTdG9yZTsK
KyAgICBjb25zdCBSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlPiBtX2JhY2tpbmdTdG9y
ZTsKICAgICBjb25zdCBpbnQ2NF90IG1fZGF0YWJhc2VJZDsKICAgICBjb25zdCBJREJPYmplY3RT
dG9yZU1ldGFkYXRhIG1fb2JqZWN0U3RvcmU7CiAgICAgY29uc3QgUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gbV92YWx1ZTsKQEAgLTMyNiwxMyArMzI2LDEzIEBAIHByaXZhdGU6CiAKIGNsYXNzIE9wZW5D
dXJzb3JPcGVyYXRpb24gOiBwdWJsaWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3Bl
cmF0aW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRMZXZlbERCOjpPcGVyYXRpb24+IGNyZWF0ZShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZl
bERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiogYmFja2luZ1N0b3JlLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElk
LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJl
Y3Rpb24gZGlyZWN0aW9uLCBJbmRleGVkREI6OkN1cnNvclR5cGUgY3Vyc29yVHlwZSwgSURCRGF0
YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSB0YXNrVHlwZSwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IGNhbGxiYWNrcykKKyAgICBzdGF0aWMgUGFzc093blB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRMZXZlbERCOjpPcGVyYXRpb24+IGNyZWF0ZShJREJUcmFuc2FjdGlvbkJhY2tlbmRM
ZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKiBiYWNraW5nU3Rv
cmUsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGlu
ZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBJbmRleGVkREI6OkN1cnNv
ckRpcmVjdGlvbiBkaXJlY3Rpb24sIEluZGV4ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlRhc2tUeXBlIHRhc2tUeXBlLCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBPcGVuQ3Vyc29yT3BlcmF0aW9uKHRyYW5zYWN0aW9uLCBiYWNraW5nU3RvcmUsIGRhdGFi
YXNlSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQsIGtleVJhbmdlLCBkaXJlY3Rpb24sIGN1cnNv
clR5cGUsIHRhc2tUeXBlLCBjYWxsYmFja3MpKTsKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIHBl
cmZvcm0oKSBPVkVSUklERSBGSU5BTDsKIHByaXZhdGU6Ci0gICAgT3BlbkN1cnNvck9wZXJhdGlv
bihJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0
b3JlTGV2ZWxEQiogYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlS
YW5nZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uLCBJbmRleGVkREI6OkN1
cnNvclR5cGUgY3Vyc29yVHlwZSwgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlw
ZSB0YXNrVHlwZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKKyAgICBPcGVu
Q3Vyc29yT3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9u
LCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJ
REJLZXlSYW5nZT4ga2V5UmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlv
biwgSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIElEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZTo6VGFza1R5cGUgdGFza1R5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxs
YmFja3MpCiAgICAgICAgIDogbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKICAgICAgICAgLCBt
X2JhY2tpbmdTdG9yZShiYWNraW5nU3RvcmUpCiAgICAgICAgICwgbV9kYXRhYmFzZUlkKGRhdGFi
YXNlSWQpCkBAIC0zNDcsNyArMzQ3LDcgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICBSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gbV90cmFuc2FjdGlvbjsKLSAgICBjb25zdCBS
ZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4gbV9iYWNraW5nU3RvcmU7CisgICAgY29uc3Qg
UmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZT4gbV9iYWNraW5nU3RvcmU7CiAgICAgY29u
c3QgaW50NjRfdCBtX2RhdGFiYXNlSWQ7CiAgICAgY29uc3QgaW50NjRfdCBtX29iamVjdFN0b3Jl
SWQ7CiAgICAgY29uc3QgaW50NjRfdCBtX2luZGV4SWQ7CkBAIC0zNjAsMTMgKzM2MCwxMyBAQCBw
cml2YXRlOgogCiBjbGFzcyBDb3VudE9wZXJhdGlvbiA6IHB1YmxpYyBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRMZXZlbERCOjpPcGVyYXRpb24gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRy
PElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbj4gY3JlYXRlKElEQlRyYW5z
YWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVMZXZlbERC
KiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPElE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbj4gY3JlYXRlKElEQlRyYW5zYWN0
aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2Uq
IGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQs
IGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiAgICAgewogICAgICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IENvdW50T3BlcmF0aW9uKHRyYW5zYWN0aW9uLCBiYWNraW5nU3RvcmUsIGRhdGFi
YXNlSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQsIGtleVJhbmdlLCBjYWxsYmFja3MpKTsKICAg
ICB9CiAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm0oKSBPVkVSUklERSBGSU5BTDsKIHByaXZhdGU6
Ci0gICAgQ291bnRPcGVyYXRpb24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNh
Y3Rpb24sIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0
cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFj
a3MpCisgICAgQ291bnRPcGVyYXRpb24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJh
bnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2luZ1N0b3JlLCBpbnQ2NF90
IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNz
UmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNh
bGxiYWNrcykKICAgICAgICAgOiBtX3RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKQogICAgICAgICAs
IG1fYmFja2luZ1N0b3JlKGJhY2tpbmdTdG9yZSkKICAgICAgICAgLCBtX2RhdGFiYXNlSWQoZGF0
YWJhc2VJZCkKQEAgLTM3OCw3ICszNzgsNyBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIFJlZlB0
cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiBtX3RyYW5zYWN0aW9uOwotICAgIGNvbnN0
IFJlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCPiBtX2JhY2tpbmdTdG9yZTsKKyAgICBjb25z
dCBSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlPiBtX2JhY2tpbmdTdG9yZTsKICAgICBj
b25zdCBpbnQ2NF90IG1fZGF0YWJhc2VJZDsKICAgICBjb25zdCBpbnQ2NF90IG1fb2JqZWN0U3Rv
cmVJZDsKICAgICBjb25zdCBpbnQ2NF90IG1faW5kZXhJZDsKQEAgLTM4OCwxMyArMzg4LDEzIEBA
IHByaXZhdGU6CiAKIGNsYXNzIERlbGV0ZVJhbmdlT3BlcmF0aW9uIDogcHVibGljIElEQlRyYW5z
YWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUo
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9y
ZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gY2FsbGJhY2tzKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPElEQlRyYW5zYWN0
aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbj4gY3JlYXRlKElEQlRyYW5zYWN0aW9uQmFja2Vu
ZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdT
dG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQ
dHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJh
Y2tzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEZWxldGVSYW5nZU9wZXJh
dGlvbih0cmFuc2FjdGlvbiwgYmFja2luZ1N0b3JlLCBkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlk
LCBrZXlSYW5nZSwgY2FsbGJhY2tzKSk7CiAgICAgfQogICAgIHZpcnR1YWwgdm9pZCBwZXJmb3Jt
KCkgT1ZFUlJJREUgRklOQUw7CiBwcml2YXRlOgotICAgIERlbGV0ZVJhbmdlT3BlcmF0aW9uKElE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVM
ZXZlbERCKiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IGNhbGxiYWNrcykKKyAgICBEZWxldGVSYW5nZU9wZXJhdGlvbihJREJUcmFuc2Fj
dGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
KiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+IGNhbGxiYWNrcykKICAgICAgICAgOiBtX3RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKQogICAg
ICAgICAsIG1fYmFja2luZ1N0b3JlKGJhY2tpbmdTdG9yZSkKICAgICAgICAgLCBtX2RhdGFiYXNl
SWQoZGF0YWJhc2VJZCkKQEAgLTQwNSw3ICs0MDUsNyBAQCBwcml2YXRlOgogICAgIH0KIAogICAg
IFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiBtX3RyYW5zYWN0aW9uOwotICAg
IGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCPiBtX2JhY2tpbmdTdG9yZTsKKyAg
ICBjb25zdCBSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlPiBtX2JhY2tpbmdTdG9yZTsK
ICAgICBjb25zdCBpbnQ2NF90IG1fZGF0YWJhc2VJZDsKICAgICBjb25zdCBpbnQ2NF90IG1fb2Jq
ZWN0U3RvcmVJZDsKICAgICBjb25zdCBSZWZQdHI8SURCS2V5UmFuZ2U+IG1fa2V5UmFuZ2U7CkBA
IC00MTQsMTMgKzQxNCwxMyBAQCBwcml2YXRlOgogCiBjbGFzcyBDbGVhck9wZXJhdGlvbiA6IHB1
YmxpYyBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpPcGVyYXRpb24gewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzT3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJh
dGlvbj4gY3JlYXRlKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJ
REJCYWNraW5nU3RvcmVMZXZlbERCKiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tz
KQorICAgIHN0YXRpYyBQYXNzT3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9w
ZXJhdGlvbj4gY3JlYXRlKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9u
LCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxs
YmFja3MpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENsZWFyT3BlcmF0aW9u
KHRyYW5zYWN0aW9uLCBiYWNraW5nU3RvcmUsIGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGNh
bGxiYWNrcykpOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybSgpIE9WRVJSSURFIEZJ
TkFMOwogcHJpdmF0ZToKLSAgICBDbGVhck9wZXJhdGlvbihJREJUcmFuc2FjdGlvbkJhY2tlbmRM
ZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiogYmFja2luZ1N0b3Jl
LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+IGNhbGxiYWNrcykKKyAgICBDbGVhck9wZXJhdGlvbihJREJUcmFuc2FjdGlv
bkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKiBi
YWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQogICAgICAgICA6IG1fdHJhbnNhY3Rp
b24odHJhbnNhY3Rpb24pCiAgICAgICAgICwgbV9iYWNraW5nU3RvcmUoYmFja2luZ1N0b3JlKQog
ICAgICAgICAsIG1fZGF0YWJhc2VJZChkYXRhYmFzZUlkKQpAQCAtNDMwLDcgKzQzMCw3IEBAIHBy
aXZhdGU6CiAgICAgfQogCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+
IG1fdHJhbnNhY3Rpb247Ci0gICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+
IG1fYmFja2luZ1N0b3JlOworICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U+IG1fYmFja2luZ1N0b3JlOwogICAgIGNvbnN0IGludDY0X3QgbV9kYXRhYmFzZUlkOwogICAg
IGNvbnN0IGludDY0X3QgbV9vYmplY3RTdG9yZUlkOwogICAgIGNvbnN0IFJlZlB0cjxJREJDYWxs
YmFja3M+IG1fY2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJhYjNiZTIuLjNiNzk4MDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3NzQsNyAr
MTc3NCw3IEBACiAJCTUxRDcxOURFMTgxMTA2RTAwMDE2REM1MSAvKiBJREJLZXlQYXRoLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQ3MTk5NDE4MTEw
NkUwMDAxNkRDNTEgLyogSURCS2V5UGF0aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTUxRDcxOURGMTgxMTA2RTAwMDE2REM1MSAvKiBJREJLZXlS
YW5nZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUQ3MTk5NTE4MTEwNkUwMDAxNkRDNTEgLyogSURCS2V5UmFuZ2UuY3BwICovOyB9OwogCQk1MUQ3
MTlFMDE4MTEwNkUwMDAxNkRDNTEgLyogSURCS2V5UmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDcxOTk2MTgxMTA2RTAwMDE2REM1MSAvKiBJ
REJLZXlSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCTUxRDcxOUUyMTgxMTA2RTAwMDE2REM1MSAvKiBJREJNZXRhZGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFENzE5OTgxODExMDZFMDAw
MTZEQzUxIC8qIElEQk1ldGFkYXRhLmggKi87IH07CisJCTUxRDcxOUUyMTgxMTA2RTAwMDE2REM1
MSAvKiBJREJNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFENzE5OTgxODExMDZFMDAwMTZEQzUxIC8qIElEQk1ldGFkYXRhLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFENzE5RTMxODEx
MDZFMDAwMTZEQzUxIC8qIElEQk9iamVjdFN0b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDcxOTk5MTgxMTA2RTAwMDE2REM1MSAvKiBJREJP
YmplY3RTdG9yZS5jcHAgKi87IH07CiAJCTUxRDcxOUU0MTgxMTA2RTAwMDE2REM1MSAvKiBJREJP
YmplY3RTdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFENzE5OUExODExMDZFMDAwMTZEQzUxIC8qIElEQk9iamVjdFN0b3JlLmggKi87IH07CiAJ
CTUxRDcxOUU2MTgxMTA2RTAwMDE2REM1MSAvKiBJREJPcGVuREJSZXF1ZXN0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDcxOTlDMTgxMTA2RTAw
MDE2REM1MSAvKiBJREJPcGVuREJSZXF1ZXN0LmNwcCAqLzsgfTsKQEAgLTE4MDYsMTMgKzE4MDYs
MTMgQEAKIAkJNTFFMUVDQzEwQzkxQzkwNDAwREMyNTVCIC8qIEljb25SZWNvcmQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTFFQ0JCMEM5MUM5MDQw
MERDMjU1QiAvKiBJY29uUmVjb3JkLmggKi87IH07CiAJCTUxRTFFQ0MyMEM5MUM5MDQwMERDMjU1
QiAvKiBQYWdlVVJMUmVjb3JkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxRTFFQ0JDMEM5MUM5MDQwMERDMjU1QiAvKiBQYWdlVVJMUmVjb3JkLmNw
cCAqLzsgfTsKIAkJNTFFMUVDQzMwQzkxQzkwNDAwREMyNTVCIC8qIFBhZ2VVUkxSZWNvcmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTFFQ0JEMEM5
MUM5MDQwMERDMjU1QiAvKiBQYWdlVVJMUmVjb3JkLmggKi87IH07Ci0JCTUxRTMzN0Y0MTgxMjVB
RTMwMDA3QTI0NiAvKiBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTMzN0YzMTgxMjVBRTMwMDA3QTI0NiAv
KiBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UuaCAqLzsgfTsKKwkJNTFFMzM3RjQxODEyNUFFMzAw
MDdBMjQ2IC8qIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzM3RjMxODEyNUFFMzAwMDdBMjQ2IC8qIElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTUxRTNGOUM3MERBMDU5REMwMDI1MDkxMSAvKiBTdG9yYWdlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTNGOUM1
MERBMDU5REMwMDI1MDkxMSAvKiBTdG9yYWdlLmNwcCAqLzsgfTsKIAkJNTFFM0Y5RDYwREEwNUUx
RDAwMjUwOTExIC8qIEpTU3RvcmFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MUUzRjlENDBEQTA1RTFEMDAyNTA5MTEgLyogSlNTdG9yYWdlLmNw
cCAqLzsgfTsKIAkJNTFFNDE0MzQxNkE2NTk2MzAwQzYzM0M3IC8qIFJlc291cmNlSGFuZGxlVHlw
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTQx
NDMyMTZBNjU5NTEwMEM2MzNDNyAvKiBSZXNvdXJjZUhhbmRsZVR5cGVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFFNjgyMTAxNjM4NzMwMjAw
M0JCRjNDIC8qIExvYWRlclN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MUU2ODIwRjE2Mzg3MzAyMDAzQkJGM0MgLyogTG9hZGVyU3RyYXRl
Z3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
MUVDOTI2NTBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxi
YWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
RUM5MjVEMENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJh
Y2suY3BwICovOyB9OwotCQk1MUY2RTBBMzE4MTFEMjUyMDA1OEEwMEEgLyogSURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MUY2RTA4RjE4MTFEMjUyMDA1OEEwMEEgLyogSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlLmggKi87IH07CisJCTUxRjZFMEEzMTgxMUQyNTIwMDU4QTAwQSAvKiBJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjZFMDhGMTgxMUQyNTIwMDU4QTAwQSAvKiBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk1MUZBMkQ3ODE1MjEzMkIzMDBDMUJBMEIgLyogRE9NV2luZG93RXh0
ZW5zaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTdGQkExODE1MUFBNzFCMDBCNTc5NTkgLyogRE9NV2luZG93RXh0ZW5zaW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFGQjU1MDQxMTNFM0U5
MTAwODIxMTc2IC8qIEpTQ2xvc2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTFGQjU1MDIxMTNFM0U5MTAwODIxMTc2IC8qIEpTQ2xvc2VFdmVu
dC5oICovOyB9OwogCQk1MUZCNTUwNTExM0UzRTkxMDA4MjExNzYgLyogSlNDbG9zZUV2ZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkI1NTAz
MTEzRTNFOTEwMDgyMTE3NiAvKiBKU0Nsb3NlRXZlbnQuY3BwICovOyB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY29uZmlnLmggYi9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaAppbmRleCA2
NTM3MzFjLi4zNTkzODBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaApAQCAtMzEsNiArMzEsNyBAQAogCiAjaWYgUExBVEZP
Uk0oTUFDKSB8fCBQTEFURk9STShJT1MpCiAjZGVmaW5lIFdURl9VU0VfRklMRV9MT0NLIDEKKy8v
I2RlZmluZSBXVEZfVVNFX0xFVkVMREIgMQogI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4pICYm
ICFVU0UoV0lOR0RJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGE4Y2M0YjguLjZmZTVmZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxMy0xMC0yMSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgVHJhbnNpdGlvbiBtb3N0IHVzZSBvZiBJREJCYWNraW5nU3RvcmVM
ZXZlbERCIHRvIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3R1YiBvdXQgYSBuZXcgcHVyZSB2aXJ0dWFsIG1l
dGhvZDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFj
dG9yeUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJGYWN0b3J5QmFja2VuZDo6
Y3JlYXRlVHJhbnNhY3Rpb25CYWNrZW5kKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuaDoKKwogMjAxMy0xMC0yMCAgRGFuIEJl
cm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gTG9hZGluZyBwcm9n
cmVzcyBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2Vz
L0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuY3BwCmluZGV4
IDU0ZjYzZGIuLjEzN2NhY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
RGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNr
ZW5kLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIldlYlRvRGF0YWJhc2VQcm9jZXNz
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSURCQ2FsbGJhY2tzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9JREJEYXRhYmFzZUNhbGxiYWNrcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBs
ZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgpAQCAtOTksNiArMTAwLDEyIEBAIHZvaWQgV2ViSURCRmFjdG9y
eUJhY2tlbmQ6OnJlbW92ZUlEQkRhdGFiYXNlQmFja2VuZChjb25zdCBTdHJpbmcmKQogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CiAKK1Bhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlPiBXZWJJREJGYWN0b3J5QmFja2VuZDo6Y3JlYXRlVHJhbnNhY3Rpb25CYWNrZW5kKElE
QkRhdGFiYXNlQmFja2VuZExldmVsREIqLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCBJbmRleGVk
REI6OlRyYW5zYWN0aW9uTW9kZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biAwOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShEQVRB
QkFTRV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRh
YmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuaAppbmRl
eCAxYjJlZGE5Li43ZTI1MmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tl
bmQuaApAQCAtNDUsNiArNDUsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
SURCRGF0YWJhc2VCYWNrZW5kKGNvbnN0IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcikgT1ZFUlJJ
REUgRklOQUw7CiAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbkJhY2tlbmQoV2ViQ29yZTo6SURC
RGF0YWJhc2VCYWNrZW5kTGV2ZWxEQiosIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYs
IFdlYkNvcmU6OkluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlKTsKKwogcHJpdmF0ZToKICAgICBX
ZWJJREJGYWN0b3J5QmFja2VuZCgpOwogfTsK
</data>
<flag name="commit-queue"
          id="237353"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214766</attachid>
            <date>2013-10-21 12:57:00 -0700</date>
            <delta_ts>2013-10-21 13:14:07 -0700</delta_ts>
            <desc>Patch v4 - Trying this again...</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>87278</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjOWM0ZDM3Li4zZTQwYWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAy
IEBACisyMDEzLTEwLTIxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAg
ICAgICBUcmFuc2l0aW9uIG1vc3QgdXNlIG9mIElEQkJhY2tpbmdTdG9yZUxldmVsREIgdG8gSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjMxMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFeHBvcnQgbW9yZSByZXF1aXJlZCBoZWFkZXJzOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICBGbGVzaCBvdXQgbWFu
eSBvZiB0aGUgcHVyZSB2aXJ0dWFsIG1ldGhvZHMgb24gSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
LCBhcyB3ZWxsIGFzCisgICAgICAgIHRoZSBSZWNvcmRJZGVudGlmaWVyIGFuZCBDdXJzb3IgY2xh
c3NlczoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNv
cmRJZGVudGlmaWVyOjp+UmVjb3JkSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpJREJC
YWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcjo6fkN1cnNvcik6CisKKyAgICAgICAgVXNlIElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZSwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJ
ZGVudGlmaWVyLCBhbmQKKyAgICAgICAgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3Ig
d2hlcmV2ZXIgcG9zc2libGU6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5QmFja2VuZEludGVyZmFjZS5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJCYWNraW5nU3RvcmVMZXZlbERCOjpwdXRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
QmFja2luZ1N0b3JlTGV2ZWxEQjo6ZGVsZXRlUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkJhY2tpbmdTdG9yZUxldmVsREI6OmtleUV4aXN0c0luT2JqZWN0U3RvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6cHV0SW5kZXhEYXRhRm9yUmVjb3JkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok9iamVjdFN0b3JlS2V5Q3Vyc29ySW1wbDo6Y2xvbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6T2JqZWN0U3RvcmVDdXJzb3JJbXBsOjpjbG9uZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbmRleEtleUN1cnNvckltcGw6OmNsb25lKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
ZGV4Q3Vyc29ySW1wbDo6Y2xvbmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3Jl
TGV2ZWxEQjo6b3Blbk9iamVjdFN0b3JlQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJh
Y2tpbmdTdG9yZUxldmVsREI6Om9wZW5PYmplY3RTdG9yZUtleUN1cnNvcik6CisgICAgICAgIChX
ZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuSW5kZXhLZXlDdXJzb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3BlbkluZGV4Q3Vyc29yKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uOjpU
cmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjpU
cmFuc2FjdGlvbjo6YmVnaW4pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIv
SURCQmFja2luZ1N0b3JlTGV2ZWxEQi5oOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0
b3JlTGV2ZWxEQjo6UmVjb3JkSWRlbnRpZmllcjo6UmVjb3JkSWRlbnRpZmllcik6CisKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkN1cnNvckJhY2tlbmRMZXZlbERCLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRMZXZlbERCOjpJREJDdXJzb3JC
YWNrZW5kTGV2ZWxEQik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJD
dXJzb3JCYWNrZW5kTGV2ZWxEQi5oOgorCisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JCYWNr
ZW5kTGV2ZWxEQjo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRi
L0lEQkRhdGFiYXNlQmFja2VuZExldmVsREIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0
YWJhc2VCYWNrZW5kTGV2ZWxEQjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFi
YXNlQmFja2VuZExldmVsREI6OklEQkRhdGFiYXNlQmFja2VuZExldmVsREIpOgorICAgICAgICAo
V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6YmFja2luZ1N0b3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OnNldEluZGV4S2V5cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpjcmVhdGVUcmFuc2Fj
dGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJEYXRhYmFzZUJh
Y2tlbmRMZXZlbERCLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
QkZhY3RvcnlCYWNrZW5kTGV2ZWxEQi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0b3J5
QmFja2VuZExldmVsREI6OmNyZWF0ZVRyYW5zYWN0aW9uQmFja2VuZCk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExldmVsREIuaDoKKworICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2
ZWxEQi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERC
OjpJbmRleFdyaXRlcjo6dmVyaWZ5SW5kZXhLZXlzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9i
amVjdFN0b3JlQmFja2VuZExldmVsREI6OkluZGV4V3JpdGVyOjp3cml0ZUluZGV4S2V5cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpJbmRleFdyaXRl
cjo6YWRkaW5nS2V5QWxsb3dlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJh
Y2tlbmRMZXZlbERCOjptYWtlSW5kZXhXcml0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9i
amVjdFN0b3JlQmFja2VuZExldmVsREI6OmdlbmVyYXRlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6
OklEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6OnVwZGF0ZUtleUdlbmVyYXRvcik6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRMZXZl
bERCLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0
aW9uQmFja2VuZExldmVsREIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25C
YWNrZW5kTGV2ZWxEQjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9u
QmFja2VuZExldmVsREI6OklEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQi5o
OgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJh
Y2tlbmRMZXZlbERCT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZXRPcGVyYXRp
b246OnBlcmZvcm0pOgorICAgICAgICAoV2ViQ29yZTo6T3BlbkN1cnNvck9wZXJhdGlvbjo6cGVy
Zm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpDb3VudE9wZXJhdGlvbjo6cGVyZm9ybSk6CisgICAg
ICAgIChXZWJDb3JlOjpEZWxldGVSYW5nZU9wZXJhdGlvbjo6cGVyZm9ybSk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCT3Bl
cmF0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6Q3JlYXRlT2JqZWN0U3RvcmVPcGVyYXRpb246
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlvbjo6
Q3JlYXRlT2JqZWN0U3RvcmVPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlT2Jq
ZWN0U3RvcmVPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVPYmpl
Y3RTdG9yZU9wZXJhdGlvbjo6RGVsZXRlT2JqZWN0U3RvcmVPcGVyYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6Q3JlYXRlSW5kZXhPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDcmVhdGVJbmRleE9wZXJhdGlvbjo6Q3JlYXRlSW5kZXhPcGVyYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6RGVsZXRlSW5kZXhPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEZWxldGVJbmRleE9wZXJhdGlvbjo6RGVsZXRlSW5kZXhPcGVyYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6R2V0T3BlcmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R2V0T3Bl
cmF0aW9uOjpHZXRPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UHV0T3BlcmF0aW9uOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHV0T3BlcmF0aW9uOjpQdXRPcGVyYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6T3BlbkN1cnNvck9wZXJhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok9wZW5DdXJzb3JPcGVyYXRpb246Ok9wZW5DdXJzb3JPcGVyYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6Q291bnRPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb3VudE9wZXJhdGlvbjo6Q291bnRPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGVs
ZXRlUmFuZ2VPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVSYW5n
ZU9wZXJhdGlvbjo6RGVsZXRlUmFuZ2VPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q2xl
YXJPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDbGVhck9wZXJhdGlvbjo6
Q2xlYXJPcGVyYXRpb24pOgorCiAyMDEzLTEwLTE5ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBBZGQgYWJzdHJhY3QgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
LCB1c2UgaXQgdG8gZ2V0IElEQkRhdGFiYXNlQmFja2VuZExldmVsREIgY2xvc2VyIHRvIGdvaW5n
IGNyb3NzLXBsYXRmb3JtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJCYWNraW5nU3RvcmVJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZUludGVyZmFjZS5oCmluZGV4IDJiYTlmODUuLjQ5OWQ2
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tp
bmdTdG9yZUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkJhY2tpbmdTdG9yZUludGVyZmFjZS5oCkBAIC0yNiw2ICsyNiw5IEBACiAjaWZuZGVmIElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZV9oCiAjZGVmaW5lIElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZV9oCiAKKyNpbmNsdWRlICJJREJNZXRhZGF0YS5oIgorI2luY2x1ZGUgIkluZGV4ZWREQi5oIgor
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0zNCw2ICszNywxMSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIElEQktleTsKK2NsYXNzIElEQktleVBhdGg7CitjbGFz
cyBJREJLZXlSYW5nZTsKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKKwogY2xhc3MgSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlIDogcHVibGljIFJlZkNvdW50ZWQ8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
PiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKCkgeyB9
CkBAIC00Miw2ICs1MCw2NyBAQCBwdWJsaWM6CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFs
IH5UcmFuc2FjdGlvbigpIHsgfQogICAgIH07CisKKyAgICBjbGFzcyBSZWNvcmRJZGVudGlmaWVy
IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgflJlY29yZElkZW50aWZpZXIoKSB7IH0K
KworICAgICAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxjaGFyPiBwcmltYXJ5S2V5KCkgY29uc3Qg
PSAwOworICAgICAgICB2aXJ0dWFsIGludDY0X3QgdmVyc2lvbigpIGNvbnN0ID0gMDsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIHJlc2V0KGNvbnN0IFZlY3RvcjxjaGFyPiYgcHJpbWFyeUtleSwgaW50
NjRfdCB2ZXJzaW9uKSA9IDA7CisgICAgfTsKKworICAgIGNsYXNzIEN1cnNvciA6IHB1YmxpYyBS
ZWZDb3VudGVkPEN1cnNvcj4geworICAgIHB1YmxpYzoKKyAgICAgICAgZW51bSBJdGVyYXRvclN0
YXRlIHsKKyAgICAgICAgICAgIFJlYWR5ID0gMCwKKyAgICAgICAgICAgIFNlZWsKKyAgICAgICAg
fTsKKworICAgICAgICB2aXJ0dWFsIH5DdXJzb3IoKSB7IH0KKworICAgICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8SURCS2V5PiBrZXkoKSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwgYm9vbCBj
b250aW51ZUZ1bmN0aW9uKGNvbnN0IElEQktleSogPSAwLCBJdGVyYXRvclN0YXRlID0gU2Vlaykg
PSAwOworICAgICAgICB2aXJ0dWFsIGJvb2wgYWR2YW5jZSh1bnNpZ25lZCBsb25nKSA9IDA7CisK
KyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEN1cnNvcj4gY2xvbmUoKSA9IDA7CisgICAgICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXkoKSBjb25zdCA9IDA7CisgICAg
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlKCkgY29uc3QgPSAwOwor
ICAgICAgICB2aXJ0dWFsIGNvbnN0IFJlY29yZElkZW50aWZpZXImIHJlY29yZElkZW50aWZpZXIo
KSBjb25zdCA9IDA7CisgICAgfTsKKworICAgIHZpcnR1YWwgYm9vbCBnZXRJREJEYXRhYmFzZU1l
dGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCRGF0YWJhc2VNZXRhZGF0YSosIGJvb2wmIGZv
dW5kKSA9IDA7CisgICAgdmlydHVhbCBib29sIGdldE9iamVjdFN0b3JlcyhpbnQ2NF90IGRhdGFi
YXNlSWQsIElEQkRhdGFiYXNlTWV0YWRhdGE6Ok9iamVjdFN0b3JlTWFwKiBvYmplY3RTdG9yZXMp
ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlSURCRGF0YWJhc2VNZXRhRGF0YShjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgaW50NjRfdCBpbnRWZXJzaW9uLCBp
bnQ2NF90JiByb3dJZCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBrZXlFeGlzdHNJbk9iamVjdFN0
b3JlKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFi
YXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiwgSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlmaWVyKiBmb3VuZFJlY29yZElkZW50aWZpZXIsIGJv
b2wmIGZvdW5kKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgcHV0SW5kZXhEYXRhRm9yUmVjb3Jk
KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkm
LCBjb25zdCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlJlY29yZElkZW50aWZpZXImKSA9IDA7
CisgICAgdmlydHVhbCBib29sIGtleUV4aXN0c0luSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYsIFJlZlB0cjxJREJLZXk+JiBmb3Vu
ZFByaW1hcnlLZXksIGJvb2wmIGV4aXN0cykgPSAwOworCisgICAgdmlydHVhbCBib29sIGRlbGV0
ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCB1cGRh
dGVJREJEYXRhYmFzZUludFZlcnNpb24oSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2Fj
dGlvbiosIGludDY0X3Qgcm93SWQsIGludDY0X3QgaW50VmVyc2lvbikgPSAwOworCisgICAgdmly
dHVhbCBib29sIGdldFJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9u
KiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktl
eSYsIFZlY3RvcjxjaGFyPiYgcmVjb3JkKSA9IDA7CisgICAgdmlydHVhbCBib29sIHB1dFJlY29y
ZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYsIFBhc3NSZWZQdHI8U2hh
cmVkQnVmZmVyPiB2YWx1ZSwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlm
aWVyKikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBkZWxldGVSZWNvcmQoSURCQmFja2luZ1N0b3Jl
SW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkLCBjb25zdCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlJlY29yZElkZW50aWZp
ZXImKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlT2JqZWN0U3RvcmUoSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBi
b29sIGF1dG9JbmNyZW1lbnQpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlT2JqZWN0U3Rv
cmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJh
c2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSA9IDA7CisgICAgdmlydHVhbCBib29sIGNsZWFy
T2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSA9IDA7CisKKyAgICB2aXJ0dWFs
IGJvb2wgY3JlYXRlSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbios
IGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4
SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgaXNVbmlxdWUs
IGJvb2wgaXNNdWx0aUVudHJ5KSA9IDA7CisgICAgdmlydHVhbCBib29sIGRlbGV0ZUluZGV4KElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkKSA9IDA7CisKKyAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IG9wZW5PYmpl
Y3RTdG9yZUtleUN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwg
aW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJh
bmdlKiwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24pID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IG9wZW5PYmplY3RTdG9yZUN1
cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhl
ZERCOjpDdXJzb3JEaXJlY3Rpb24pID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFj
a2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IG9wZW5JbmRleEtleUN1cnNvcihJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRl
eGVkREI6OkN1cnNvckRpcmVjdGlvbikgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJC
YWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gb3BlbkluZGV4Q3Vyc29yKElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSosIEluZGV4
ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0UHJpbWFy
eUtleVZpYUluZGV4KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBj
b25zdCBJREJLZXkmLCBSZWZQdHI8SURCS2V5PiYgcHJpbWFyeUtleSkgPSAwOworCisgICAgdmly
dHVhbCBib29sIGdldEtleUdlbmVyYXRvckN1cnJlbnROdW1iZXIoSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBpbnQ2NF90JiBrZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKSA9IDA7CisgICAgdmly
dHVhbCBib29sIG1heWJlVXBkYXRlS2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcihJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGludDY0X3QgbmV3U3RhdGUsIGJvb2wgY2hlY2tDdXJyZW50KSA9IDA7
CisKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNl
LmNwcAppbmRleCA2ZTdiMzdhLi4wM2M0NDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2Uu
Y3BwCkBAIC0zMywxMCArMzMsNiBAQAogI2luY2x1ZGUgIkRhdGFiYXNlU3RyYXRlZ3kuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKIAotI2lmIFVTRShMRVZFTERCKQotI2luY2x1
ZGUgIklEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQi5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogUGFzc1JlZlB0cjxJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZT4gSURCRmFjdG9y
eUJhY2tlbmRJbnRlcmZhY2U6OmNyZWF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaAppbmRl
eCBhYTFjNDgwLi43OTIyMzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgKQEAgLTI4LDYg
KzI4LDggQEAKICNpZm5kZWYgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2VfaAogI2RlZmluZSBJ
REJGYWN0b3J5QmFja2VuZEludGVyZmFjZV9oCiAKKyNpbmNsdWRlICJJbmRleGVkREIuaCIKKwog
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTM2LDkgKzM4LDEyIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOwogY2xh
c3MgSURCQ2FsbGJhY2tzOwogY2xhc3MgSURCRGF0YWJhc2U7CitjbGFzcyBJREJEYXRhYmFzZUJh
Y2tlbmRMZXZlbERCOyAvLyBGSVhNRTogVGhpcyBpcyBhIExldmVsREIgc3BlY2lmaWMgdHlwZSBm
b3Igbm93LiBodHRwOi8vd2Via2l0Lm9yZy9iLzEyMzAyNyB3aWxsIGZpeCB0aGF0LgogY2xhc3Mg
SURCRGF0YWJhc2VDYWxsYmFja3M7CitjbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2U7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
CiAKQEAgLTU4LDYgKzYzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRh
YmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJp
bmcmIGRhdGFEaXIpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJREJEYXRhYmFzZUJh
Y2tlbmQoY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKSA9IDA7CisKKyAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2Fj
dGlvbkJhY2tlbmQoSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQiosIGludDY0X3QgdHJhbnNhY3Rp
b25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2
NF90PiYgb2JqZWN0U3RvcmVJZHMsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlKSA9IDA7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZl
bERCLmNwcAppbmRleCBiNmVlNzc1Li4yODMxOGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0
b3JlTGV2ZWxEQi5jcHAKQEAgLTg5OCw3ICs4OTgsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gc3Rh
dGljIGJvb2wgZ2V0TmV3VmVyc2lvbk51bWJlcihMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0
aQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OnB1
dFJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlv
biwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktl
eSYga2V5LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gcHJwVmFsdWUsIFJlY29yZElkZW50aWZp
ZXIqIHJlY29yZElkZW50aWZpZXIpCitib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OnB1dFJl
Y29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwg
aW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYg
a2V5LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gcHJwVmFsdWUsIElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZTo6UmVjb3JkSWRlbnRpZmllciogcmVjb3JkSWRlbnRpZmllcikKIHsKICAgICBMT0co
U3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZUxldmVsREI6OnB1dFJlY29yZCIpOwogICAgIGlm
ICghS2V5UHJlZml4Ojp2YWxpZElkcyhkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkKSkKQEAgLTk0
MSw3ICs5NDEsNyBAQCBib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OmNsZWFyT2JqZWN0U3Rv
cmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdAogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OmRlbGV0ZVJlY29yZChJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFJlY29yZElkZW50aWZpZXImIHJlY29y
ZElkZW50aWZpZXIpCitib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OmRlbGV0ZVJlY29yZChJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRf
dCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQkJhY2tpbmdTdG9y
ZUludGVyZmFjZTo6UmVjb3JkSWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllcikKIHsKICAgICBM
T0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZUxldmVsREI6OmRlbGV0ZVJlY29yZCIpOwog
ICAgIGlmICghS2V5UHJlZml4Ojp2YWxpZElkcyhkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkKSkK
QEAgLTEwMjcsNyArMTAyNyw3IEBAIGJvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6bWF5YmVV
cGRhdGVLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKElEQkJhY2tpbmdTdG9yCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6a2V5RXhpc3RzSW5PYmpl
Y3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlv
biwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktl
eSYga2V5LCBSZWNvcmRJZGVudGlmaWVyKiBmb3VuZFJlY29yZElkZW50aWZpZXIsIGJvb2wmIGZv
dW5kKQorYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjprZXlFeGlzdHNJbk9iamVjdFN0b3Jl
KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiBrZXks
IElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6UmVjb3JkSWRlbnRpZmllciogZm91bmRSZWNvcmRJ
ZGVudGlmaWVyLCBib29sJiBmb3VuZCkKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tp
bmdTdG9yZUxldmVsREI6OmtleUV4aXN0c0luT2JqZWN0U3RvcmUiKTsKICAgICBpZiAoIUtleVBy
ZWZpeDo6dmFsaWRJZHMoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCkpCkBAIC0xMTg2LDcgKzEx
ODYsNyBAQCBib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OmRlbGV0ZUluZGV4KElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6cHV0SW5kZXhEYXRhRm9yUmVjb3JkKElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFi
YXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJL
ZXkmIGtleSwgY29uc3QgUmVjb3JkSWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllcikKK2Jvb2wg
SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6cHV0SW5kZXhEYXRhRm9yUmVjb3JkKElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkm
IGtleSwgY29uc3QgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlmaWVyJiBy
ZWNvcmRJZGVudGlmaWVyKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3Jl
TGV2ZWxEQjo6cHV0SW5kZXhEYXRhRm9yUmVjb3JkIik7CiAgICAgQVNTRVJUKGtleS5pc1ZhbGlk
KCkpOwpAQCAtMTQ5OSw3ICsxNDk5LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IE9iamVjdFN0b3JlS2V5Q3Vyc29ySW1wbCh0cmFuc2FjdGlvbiwgY3Vyc29yT3B0aW9u
cykpOwogICAgIH0KIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZl
bERCOjpDdXJzb3I+IGNsb25lKCkKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlOjpDdXJzb3I+IGNsb25lKCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgT2JqZWN0U3RvcmVLZXlDdXJzb3JJbXBsKHRoaXMpKTsKICAgICB9CkBAIC0xNTYw
LDcgKzE1NjAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgT2JqZWN0
U3RvcmVDdXJzb3JJbXBsKHRyYW5zYWN0aW9uLCBjdXJzb3JPcHRpb25zKSk7CiAgICAgfQogCi0g
ICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gY2xv
bmUoKQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1
cnNvcj4gY2xvbmUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPYmplY3RT
dG9yZUN1cnNvckltcGwodGhpcykpOwogICAgIH0KQEAgLTE2MjcsNyArMTYyNyw3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbmRleEtleUN1cnNvckltcGwodHJhbnNh
Y3Rpb24sIGN1cnNvck9wdGlvbnMpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBjbG9uZSgpCisgICAgdmlydHVhbCBQYXNz
UmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yPiBjbG9uZSgpCiAgICAgewog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluZGV4S2V5Q3Vyc29ySW1wbCh0aGlzKSk7CiAg
ICAgfQpAQCAtMTcxOCw3ICsxNzE4LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEluZGV4Q3Vyc29ySW1wbCh0cmFuc2FjdGlvbiwgY3Vyc29yT3B0aW9ucykpOwogICAg
IH0KIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJz
b3I+IGNsb25lKCkKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlOjpDdXJzb3I+IGNsb25lKCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
SW5kZXhDdXJzb3JJbXBsKHRoaXMpKTsKICAgICB9CkBAIC0xOTEwLDggKzE5MTAsOCBAQCBzdGF0
aWMgYm9vbCBpbmRleEN1cnNvck9wdGlvbnMoTGV2ZWxEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlv
biwgaW50NjRfdCBkYXRhYmFzZQogCiAgICAgcmV0dXJuIHRydWU7CiB9CitQYXNzUmVmUHRyPElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpv
cGVuT2JqZWN0U3RvcmVDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlv
biogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBjb25zdCBJREJLZXlSYW5nZSogcmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGRp
cmVjdGlvbikKIAotUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IElE
QkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5PYmplY3RTdG9yZUN1cnNvcihJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdlKiByYW5nZSwgSW5kZXhl
ZERCOjpDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAi
SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3Blbk9iamVjdFN0b3JlQ3Vyc29yIik7CiAgICAgTGV2
ZWxEQlRyYW5zYWN0aW9uKiBsZXZlbERCVHJhbnNhY3Rpb24gPSBJREJCYWNraW5nU3RvcmVMZXZl
bERCOjpUcmFuc2FjdGlvbjo6bGV2ZWxEQlRyYW5zYWN0aW9uRnJvbSh0cmFuc2FjdGlvbik7CkBA
IC0xOTI1LDcgKzE5MjUsNyBAQCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1
cnNvcj4gSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3Blbk9iamVjdFN0bwogICAgIHJldHVybiBj
dXJzb3IucmVsZWFzZSgpOwogfQogCi1QYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6
OkN1cnNvcj4gSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29y
KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5UmFuZ2Uq
IHJhbmdlLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24pCitQYXNzUmVmUHRy
PElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVMZXZlbERC
OjpvcGVuT2JqZWN0U3RvcmVLZXlDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFu
c2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBjb25zdCBJREJLZXlSYW5nZSogcmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0
aW9uIGRpcmVjdGlvbikKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZUxl
dmVsREI6Om9wZW5PYmplY3RTdG9yZUtleUN1cnNvciIpOwogICAgIExldmVsREJUcmFuc2FjdGlv
biogbGV2ZWxEQlRyYW5zYWN0aW9uID0gSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rp
b246OmxldmVsREJUcmFuc2FjdGlvbkZyb20odHJhbnNhY3Rpb24pOwpAQCAtMTkzOSw3ICsxOTM5
LDcgQEAgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IElEQkJhY2tp
bmdTdG9yZUxldmVsREI6Om9wZW5PYmplY3RTdG8KICAgICByZXR1cm4gY3Vyc29yLnJlbGVhc2Uo
KTsKIH0KIAotUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IElEQkJh
Y2tpbmdTdG9yZUxldmVsREI6Om9wZW5JbmRleEtleUN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRl
cmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5UmFuZ2UqIHJh
bmdlLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24pCitQYXNzUmVmUHRyPElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpv
cGVuSW5kZXhLZXlDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiog
dHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBp
bnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiByYW5nZSwgSW5kZXhlZERCOjpDdXJz
b3JEaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2lu
Z1N0b3JlTGV2ZWxEQjo6b3BlbkluZGV4S2V5Q3Vyc29yIik7CiAgICAgTGV2ZWxEQlRyYW5zYWN0
aW9uKiBsZXZlbERCVHJhbnNhY3Rpb24gPSBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2Fj
dGlvbjo6bGV2ZWxEQlRyYW5zYWN0aW9uRnJvbSh0cmFuc2FjdGlvbik7CkBAIC0xOTUzLDcgKzE5
NTMsNyBAQCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQjo6b3BlbkluZGV4S2V5QwogICAgIHJldHVybiBjdXJzb3IucmVsZWFz
ZSgpOwogfQogCi1QYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gSURC
QmFja2luZ1N0b3JlTGV2ZWxEQjo6b3BlbkluZGV4Q3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSogcmFu
Z2UsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlvbikKK1Bhc3NSZWZQdHI8SURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IElEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9w
ZW5JbmRleEN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFu
c2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0
X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5UmFuZ2UqIHJhbmdlLCBJbmRleGVkREI6OkN1cnNvckRp
cmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEksICJJREJCYWNraW5nU3Rv
cmVMZXZlbERCOjpvcGVuSW5kZXhDdXJzb3IiKTsKICAgICBMZXZlbERCVHJhbnNhY3Rpb24qIGxl
dmVsREJUcmFuc2FjdGlvbiA9IElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uOjps
ZXZlbERCVHJhbnNhY3Rpb25Gcm9tKHRyYW5zYWN0aW9uKTsKQEAgLTE5NjcsNyArMTk2Nyw3IEBA
IFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBJREJCYWNraW5nU3Rv
cmVMZXZlbERCOjpvcGVuSW5kZXhDdXJzCiAgICAgcmV0dXJuIGN1cnNvci5yZWxlYXNlKCk7CiB9
CiAKLUlEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uOjpUcmFuc2FjdGlvbihJREJC
YWNraW5nU3RvcmVMZXZlbERCKiBiYWNraW5nU3RvcmUpCitJREJCYWNraW5nU3RvcmVMZXZlbERC
OjpUcmFuc2FjdGlvbjo6VHJhbnNhY3Rpb24oSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKiBiYWNr
aW5nU3RvcmUpCiAgICAgOiBtX2JhY2tpbmdTdG9yZShiYWNraW5nU3RvcmUpCiB7CiB9CkBAIC0x
OTc2LDcgKzE5NzYsNyBAQCB2b2lkIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9u
OjpiZWdpbigpCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEksICJJREJCYWNraW5nU3RvcmVMZXZlbERC
OjpUcmFuc2FjdGlvbjo6YmVnaW4iKTsKICAgICBBU1NFUlQoIW1fdHJhbnNhY3Rpb24pOwotICAg
IG1fdHJhbnNhY3Rpb24gPSBMZXZlbERCVHJhbnNhY3Rpb246OmNyZWF0ZShtX2JhY2tpbmdTdG9y
ZS0+bV9kYi5nZXQoKSk7CisgICAgbV90cmFuc2FjdGlvbiA9IExldmVsREJUcmFuc2FjdGlvbjo6
Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8SURCQmFja2luZ1N0b3JlTGV2ZWxEQio+KG1fYmFja2lu
Z1N0b3JlKS0+bV9kYi5nZXQoKSk7CiB9CiAKIGJvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6
VHJhbnNhY3Rpb246OmNvbW1pdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5oCmlu
ZGV4IDExZTA5ZWUuLmY4YzQ2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5o
CkBAIC02Nyw1MiArNjcsNTggQEAgcHVibGljOgogICAgIFdlYWtQdHI8SURCQmFja2luZ1N0b3Jl
TGV2ZWxEQj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vh
a1B0cigpOyB9CiAKICAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGdldERhdGFiYXNlTmFtZXMo
KTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0SURCRGF0YWJhc2VNZXRhRGF0YShjb25zdCBTdHJpbmcm
IG5hbWUsIElEQkRhdGFiYXNlTWV0YWRhdGEqLCBib29sJiBzdWNjZXNzKSBXQVJOX1VOVVNFRF9S
RVRVUk47Ci0gICAgdmlydHVhbCBib29sIGNyZWF0ZUlEQkRhdGFiYXNlTWV0YURhdGEoY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24sIGludDY0X3QgaW50VmVyc2lvbiwg
aW50NjRfdCYgcm93SWQpOworICAgIHZpcnR1YWwgYm9vbCBnZXRJREJEYXRhYmFzZU1ldGFEYXRh
KGNvbnN0IFN0cmluZyYgbmFtZSwgSURCRGF0YWJhc2VNZXRhZGF0YSosIGJvb2wmIHN1Y2Nlc3Mp
IE9WRVJSSURFIEZJTkFMIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICB2aXJ0dWFsIGJvb2wgY3Jl
YXRlSURCRGF0YWJhc2VNZXRhRGF0YShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYg
dmVyc2lvbiwgaW50NjRfdCBpbnRWZXJzaW9uLCBpbnQ2NF90JiByb3dJZCkgT1ZFUlJJREUgRklO
QUw7CiAgICAgdmlydHVhbCBib29sIHVwZGF0ZUlEQkRhdGFiYXNlTWV0YURhdGEoSURCQmFja2lu
Z1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IHJvd0lkLCBjb25zdCBTdHJpbmcm
IHZlcnNpb24pOwotICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJREJEYXRhYmFzZUludFZlcnNpb24o
SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3Qgcm93SWQsIGlu
dDY0X3QgaW50VmVyc2lvbik7Ci0gICAgdmlydHVhbCBib29sIGRlbGV0ZURhdGFiYXNlKGNvbnN0
IFN0cmluZyYgbmFtZSk7CisgICAgdmlydHVhbCBib29sIHVwZGF0ZUlEQkRhdGFiYXNlSW50VmVy
c2lvbihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCByb3dJ
ZCwgaW50NjRfdCBpbnRWZXJzaW9uKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wg
ZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lKSBPVkVSUklERSBGSU5BTDsKIAotICAg
IGJvb2wgZ2V0T2JqZWN0U3RvcmVzKGludDY0X3QgZGF0YWJhc2VJZCwgSURCRGF0YWJhc2VNZXRh
ZGF0YTo6T2JqZWN0U3RvcmVNYXAqKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBi
b29sIGNyZWF0ZU9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rp
b24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KTsKLSAgICB2
aXJ0dWFsIGJvb2wgZGVsZXRlT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpU
cmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSBX
QVJOX1VOVVNFRF9SRVRVUk47CisgICAgdmlydHVhbCBib29sIGdldE9iamVjdFN0b3JlcyhpbnQ2
NF90IGRhdGFiYXNlSWQsIElEQkRhdGFiYXNlTWV0YWRhdGE6Ok9iamVjdFN0b3JlTWFwKikgT1ZF
UlJJREUgRklOQUwgV0FSTl9VTlVTRURfUkVUVVJOOworICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVP
YmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRf
dCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgSURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCkgT1ZFUlJJREUgRklOQUw7Cisg
ICAgdmlydHVhbCBib29sIGRlbGV0ZU9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCkgT1ZFUlJJREUgRklOQUwgV0FSTl9VTlVTRURfUkVUVVJOOwogCi0gICAgY2xhc3MgUmVjb3Jk
SWRlbnRpZmllciB7Ci0gICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlY29yZElkZW50aWZp
ZXIpOworICAgIGNsYXNzIFJlY29yZElkZW50aWZpZXIgOiBwdWJsaWMgSURCQmFja2luZ1N0b3Jl
SW50ZXJmYWNlOjpSZWNvcmRJZGVudGlmaWVyIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFJlY29y
ZElkZW50aWZpZXIoY29uc3QgVmVjdG9yPGNoYXI+JiBwcmltYXJ5S2V5LCBpbnQ2NF90IHZlcnNp
b24pIDogbV9wcmltYXJ5S2V5KHByaW1hcnlLZXkpLCBtX3ZlcnNpb24odmVyc2lvbikgeyBBU1NF
UlQoIXByaW1hcnlLZXkuaXNFbXB0eSgpKTsgfQotICAgICAgICBSZWNvcmRJZGVudGlmaWVyKCkg
OiBtX3ByaW1hcnlLZXkoKSwgbV92ZXJzaW9uKC0xKSB7IH0KKyAgICAgICAgUmVjb3JkSWRlbnRp
Zmllcihjb25zdCBWZWN0b3I8Y2hhcj4mIHByaW1hcnlLZXksIGludDY0X3QgdmVyc2lvbikKKyAg
ICAgICAgICAgIDogSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlmaWVyKCkK
KyAgICAgICAgICAgICwgbV9wcmltYXJ5S2V5KHByaW1hcnlLZXkpCisgICAgICAgICAgICAsIG1f
dmVyc2lvbih2ZXJzaW9uKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoIXByaW1hcnlL
ZXkuaXNFbXB0eSgpKTsKKyAgICAgICAgfQogCi0gICAgICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBw
cmltYXJ5S2V5KCkgY29uc3QgeyByZXR1cm4gbV9wcmltYXJ5S2V5OyB9Ci0gICAgICAgIGludDY0
X3QgdmVyc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fdmVyc2lvbjsgfQotICAgICAgICB2b2lkIHJl
c2V0KGNvbnN0IFZlY3RvcjxjaGFyPiYgcHJpbWFyeUtleSwgaW50NjRfdCB2ZXJzaW9uKSB7IG1f
cHJpbWFyeUtleSA9IHByaW1hcnlLZXk7IG1fdmVyc2lvbiA9IHZlcnNpb247IH0KKyAgICAgICAg
UmVjb3JkSWRlbnRpZmllcigpCisgICAgICAgICAgICA6IElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZTo6UmVjb3JkSWRlbnRpZmllcigpCisgICAgICAgICAgICAsIG1fcHJpbWFyeUtleSgpCisgICAg
ICAgICAgICAsIG1fdmVyc2lvbigtMSkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAg
Y29uc3QgVmVjdG9yPGNoYXI+IHByaW1hcnlLZXkoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJl
dHVybiBtX3ByaW1hcnlLZXk7IH0KKyAgICAgICAgaW50NjRfdCB2ZXJzaW9uKCkgY29uc3QgT1ZF
UlJJREUgRklOQUwgeyByZXR1cm4gbV92ZXJzaW9uOyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBy
ZXNldChjb25zdCBWZWN0b3I8Y2hhcj4mIHByaW1hcnlLZXksIGludDY0X3QgdmVyc2lvbikgT1ZF
UlJJREUgRklOQUwgeyBtX3ByaW1hcnlLZXkgPSBwcmltYXJ5S2V5OyBtX3ZlcnNpb24gPSB2ZXJz
aW9uOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBWZWN0b3I8Y2hhcj4gbV9wcmltYXJ5S2V5
OyAvLyBGSVhNRTogTWFrZSBpdCBtb3JlIGNsZWFyIHRoYXQgdGhpcyBpcyB0aGUgKmVuY29kZWQq
IHZlcnNpb24gb2YgdGhlIGtleS4KICAgICAgICAgaW50NjRfdCBtX3ZlcnNpb247CiAgICAgfTsK
IAotICAgIHZpcnR1YWwgYm9vbCBnZXRSZWNvcmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpU
cmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBj
b25zdCBJREJLZXkmLCBWZWN0b3I8Y2hhcj4mIHJlY29yZCkgV0FSTl9VTlVTRURfUkVUVVJOOwot
ICAgIHZpcnR1YWwgYm9vbCBwdXRSZWNvcmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFu
c2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25z
dCBJREJLZXkmLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWUsIFJlY29yZElkZW50aWZp
ZXIqKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBib29sIGNsZWFyT2JqZWN0U3Rv
cmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJh
c2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmly
dHVhbCBib29sIGRlbGV0ZVJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0
aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFJl
Y29yZElkZW50aWZpZXImKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBib29sIGdl
dEtleUdlbmVyYXRvckN1cnJlbnROdW1iZXIoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFu
c2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2
NF90JiBjdXJyZW50TnVtYmVyKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBib29s
IG1heWJlVXBkYXRlS2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcihJREJCYWNraW5nU3RvcmVJbnRl
cmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQsIGludDY0X3QgbmV3U3RhdGUsIGJvb2wgY2hlY2tDdXJyZW50KSBXQVJOX1VOVVNFRF9S
RVRVUk47Ci0gICAgdmlydHVhbCBib29sIGtleUV4aXN0c0luT2JqZWN0U3RvcmUoSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmLCBSZWNvcmRJZGVudGlmaWVyKiBmb3VuZFJl
Y29yZElkZW50aWZpZXIsIGJvb2wmIGZvdW5kKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0KLSAgICB2
aXJ0dWFsIGJvb2wgY3JlYXRlSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2Fj
dGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90
IGluZGV4SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgaXNV
bmlxdWUsIGJvb2wgaXNNdWx0aUVudHJ5KSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVh
bCBib29sIGRlbGV0ZUluZGV4KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24q
LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRl
eElkKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBib29sIHB1dEluZGV4RGF0YUZv
clJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBk
YXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3Qg
SURCS2V5JiwgY29uc3QgUmVjb3JkSWRlbnRpZmllciYpIFdBUk5fVU5VU0VEX1JFVFVSTjsKLSAg
ICB2aXJ0dWFsIGJvb2wgZ2V0UHJpbWFyeUtleVZpYUluZGV4KElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmLCBSZWZQdHI8SURCS2V5PiYgcHJp
bWFyeUtleSkgV0FSTl9VTlVTRURfUkVUVVJOOwotICAgIHZpcnR1YWwgYm9vbCBrZXlFeGlzdHNJ
bkluZGV4KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRh
dGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJ
REJLZXkmIGluZGV4S2V5LCBSZWZQdHI8SURCS2V5PiYgZm91bmRQcmltYXJ5S2V5LCBib29sJiBl
eGlzdHMpIFdBUk5fVU5VU0VEX1JFVFVSTjsKLQotICAgIGNsYXNzIEN1cnNvciA6IHB1YmxpYyBS
ZWZDb3VudGVkPEN1cnNvcj4geworICAgIHZpcnR1YWwgYm9vbCBnZXRSZWNvcmQoSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmLCBWZWN0b3I8Y2hhcj4mIHJlY29yZCkgT1ZF
UlJJREUgRklOQUwgV0FSTl9VTlVTRURfUkVUVVJOOworICAgIHZpcnR1YWwgYm9vbCBwdXRSZWNv
cmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJh
c2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmLCBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gdmFsdWUsIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6UmVjb3JkSWRlbnRp
ZmllciopIE9WRVJSSURFIEZJTkFMIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICB2aXJ0dWFsIGJv
b2wgY2xlYXJPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9u
KiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIE9WRVJSSURFIEZJ
TkFMIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUmVjb3JkKElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpS
ZWNvcmRJZGVudGlmaWVyJikgT1ZFUlJJREUgRklOQUwgV0FSTl9VTlVTRURfUkVUVVJOOworICAg
IHZpcnR1YWwgYm9vbCBnZXRLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKElEQkJhY2tpbmdTdG9y
ZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCYgY3VycmVudE51bWJlcikgT1ZFUlJJREUgRklOQUwgV0FSTl9V
TlVTRURfUkVUVVJOOworICAgIHZpcnR1YWwgYm9vbCBtYXliZVVwZGF0ZUtleUdlbmVyYXRvckN1
cnJlbnROdW1iZXIoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IG5ld1N0YXRlLCBi
b29sIGNoZWNrQ3VycmVudCkgT1ZFUlJJREUgRklOQUwgV0FSTl9VTlVTRURfUkVUVVJOOworICAg
IHZpcnR1YWwgYm9vbCBrZXlFeGlzdHNJbk9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgY29uc3QgSURCS2V5JiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVu
dGlmaWVyKiBmb3VuZFJlY29yZElkZW50aWZpZXIsIGJvb2wmIGZvdW5kKSBPVkVSUklERSBGSU5B
TCBXQVJOX1VOVVNFRF9SRVRVUk47CisKKyAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlSW5kZXgoSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgaXNVbmlxdWUsIGJvb2wgaXNNdWx0aUVudHJ5KSBP
VkVSUklERSBGSU5BTCBXQVJOX1VOVVNFRF9SRVRVUk47CisgICAgdmlydHVhbCBib29sIGRlbGV0
ZUluZGV4KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRh
dGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkKSBPVkVSUklE
RSBGSU5BTCBXQVJOX1VOVVNFRF9SRVRVUk47CisgICAgdmlydHVhbCBib29sIHB1dEluZGV4RGF0
YUZvclJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRf
dCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29u
c3QgSURCS2V5JiwgY29uc3QgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpSZWNvcmRJZGVudGlm
aWVyJikgT1ZFUlJJREUgRklOQUwgV0FSTl9VTlVTRURfUkVUVVJOOworICAgIHZpcnR1YWwgYm9v
bCBnZXRQcmltYXJ5S2V5VmlhSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2Fj
dGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90
IGluZGV4SWQsIGNvbnN0IElEQktleSYsIFJlZlB0cjxJREJLZXk+JiBwcmltYXJ5S2V5KSBPVkVS
UklERSBGSU5BTCBXQVJOX1VOVVNFRF9SRVRVUk47CisgICAgdmlydHVhbCBib29sIGtleUV4aXN0
c0luSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3Qg
ZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0
IElEQktleSYgaW5kZXhLZXksIFJlZlB0cjxJREJLZXk+JiBmb3VuZFByaW1hcnlLZXksIGJvb2wm
IGV4aXN0cykgT1ZFUlJJREUgRklOQUwgV0FSTl9VTlVTRURfUkVUVVJOOworCisgICAgY2xhc3Mg
Q3Vyc29yIDogcHVibGljIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yIHsKICAgICBw
dWJsaWM6Ci0gICAgICAgIGVudW0gSXRlcmF0b3JTdGF0ZSB7Ci0gICAgICAgICAgICBSZWFkeSA9
IDAsCi0gICAgICAgICAgICBTZWVrCi0gICAgICAgIH07Ci0KICAgICAgICAgc3RydWN0IEN1cnNv
ck9wdGlvbnMgewogICAgICAgICAgICAgaW50NjRfdCBkYXRhYmFzZUlkOwogICAgICAgICAgICAg
aW50NjRfdCBvYmplY3RTdG9yZUlkOwpAQCAtMTI1LDE1ICsxMzEsMTUgQEAgcHVibGljOgogICAg
ICAgICAgICAgYm9vbCB1bmlxdWU7CiAgICAgICAgIH07CiAKLSAgICAgICAgUGFzc1JlZlB0cjxJ
REJLZXk+IGtleSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudEtleTsgfQotICAgICAgICBib29s
IGNvbnRpbnVlRnVuY3Rpb24oY29uc3QgSURCS2V5KiA9IDAsIEl0ZXJhdG9yU3RhdGUgPSBTZWVr
KTsKLSAgICAgICAgYm9vbCBhZHZhbmNlKHVuc2lnbmVkIGxvbmcpOworICAgICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8SURCS2V5PiBrZXkoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBt
X2N1cnJlbnRLZXk7IH0KKyAgICAgICAgdmlydHVhbCBib29sIGNvbnRpbnVlRnVuY3Rpb24oY29u
c3QgSURCS2V5KiA9IDAsIEl0ZXJhdG9yU3RhdGUgPSBTZWVrKSBPVkVSUklERSBGSU5BTDsKKyAg
ICAgICAgdmlydHVhbCBib29sIGFkdmFuY2UodW5zaWduZWQgbG9uZykgT1ZFUlJJREUgRklOQUw7
CiAgICAgICAgIGJvb2wgZmlyc3RTZWVrKCk7CiAKLSAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PEN1cnNvcj4gY2xvbmUoKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+
IHByaW1hcnlLZXkoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRLZXk7IH0KLSAgICAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWUoKSBjb25zdCA9IDA7Ci0gICAgICAg
IHZpcnR1YWwgY29uc3QgUmVjb3JkSWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1fcmVjb3JkSWRlbnRpZmllcjsgfQorICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IGNsb25lKCkgT1ZFUlJJREUgPSAw
OworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5KCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gbV9jdXJyZW50S2V5OyB9CisgICAgICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlKCkgY29uc3QgT1ZFUlJJREUgPSAwOworICAgICAgICB2
aXJ0dWFsIGNvbnN0IFJlY29yZElkZW50aWZpZXImIHJlY29yZElkZW50aWZpZXIoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBtX3JlY29yZElkZW50aWZpZXI7IH0KICAgICAgICAgdmlydHVhbCB+
Q3Vyc29yKCkgeyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBsb2FkQ3VycmVudFJvdygpID0gMDsK
IApAQCAtMTU3LDE0ICsxNjMsMTQgQEAgcHVibGljOgogICAgICAgICBJREJCYWNraW5nU3RvcmVM
ZXZlbERCOjpSZWNvcmRJZGVudGlmaWVyIG1fcmVjb3JkSWRlbnRpZmllcjsKICAgICB9OwogCi0g
ICAgdmlydHVhbCBQYXNzUmVmUHRyPEN1cnNvcj4gb3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29yKElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1
cnNvckRpcmVjdGlvbik7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEN1cnNvcj4gb3Blbk9iamVj
dFN0b3JlQ3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5UmFuZ2Uq
LCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbik7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEN1
cnNvcj4gb3BlbkluZGV4S2V5Q3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNh
Y3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRf
dCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9u
KTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q3Vyc29yPiBvcGVuSW5kZXhDdXJzb3IoSURCQmFj
a2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50
NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiwg
SW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24pOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJC
YWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gb3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29yKElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1
cnNvckRpcmVjdGlvbikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yPiBvcGVuT2JqZWN0U3RvcmVDdXJzb3IoSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXlSYW5nZSosIEluZGV4ZWREQjo6Q3Vy
c29yRGlyZWN0aW9uKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IG9wZW5JbmRleEtleUN1cnNvcihJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJ
bmRleGVkREI6OkN1cnNvckRpcmVjdGlvbikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yPiBvcGVuSW5kZXhDdXJz
b3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJh
c2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktl
eVJhbmdlKiwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24pIE9WRVJSSURFIEZJTkFMOwogCiAg
ICAgY2xhc3MgVHJhbnNhY3Rpb24gOiBwdWJsaWMgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpU
cmFuc2FjdGlvbiB7CiAgICAgcHVibGljOgotICAgICAgICBleHBsaWNpdCBUcmFuc2FjdGlvbihJ
REJCYWNraW5nU3RvcmVMZXZlbERCKik7CisgICAgICAgIGV4cGxpY2l0IFRyYW5zYWN0aW9uKElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZSopOwogICAgICAgICB2b2lkIGJlZ2luKCk7CiAgICAgICAg
IGJvb2wgY29tbWl0KCk7CiAgICAgICAgIHZvaWQgcm9sbGJhY2soKTsKQEAgLTE4MCw3ICsxODYs
NyBAQCBwdWJsaWM6CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIElEQkJhY2tp
bmdTdG9yZUxldmVsREIqIG1fYmFja2luZ1N0b3JlOworICAgICAgICBJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2UqIG1fYmFja2luZ1N0b3JlOwogICAgICAgICBSZWZQdHI8TGV2ZWxEQlRyYW5zYWN0
aW9uPiBtX3RyYW5zYWN0aW9uOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQ3Vyc29yQmFja2VuZExldmVsREIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJDdXJzb3JCYWNrZW5k
TGV2ZWxEQi5jcHAKaW5kZXggMzcxNGEwNS4uMjlhNTk4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJDdXJzb3JCYWNrZW5kTGV2ZWxEQi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJDdXJz
b3JCYWNrZW5kTGV2ZWxEQi5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIFJl
ZlB0cjxJREJDYWxsYmFja3M+IG1fY2FsbGJhY2tzOwogfTsKIAotSURCQ3Vyc29yQmFja2VuZExl
dmVsREI6OklEQkN1cnNvckJhY2tlbmRMZXZlbERCKFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3Jl
TGV2ZWxEQjo6Q3Vyc29yPiBjdXJzb3IsIEluZGV4ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBl
LCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlRhc2tUeXBlIHRhc2tUeXBlLCBJREJUcmFu
c2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBvYmplY3RTdG9yZUlk
KQorSURCQ3Vyc29yQmFja2VuZExldmVsREI6OklEQkN1cnNvckJhY2tlbmRMZXZlbERCKFBhc3NS
ZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IGN1cnNvciwgSW5kZXhlZERC
OjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6VGFz
a1R5cGUgdGFza1R5cGUsIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9u
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpCiAgICAgOiBtX3Rhc2tUeXBlKHRhc2tUeXBlKQogICAg
ICwgbV9jdXJzb3JUeXBlKGN1cnNvclR5cGUpCiAgICAgLCBtX2RhdGFiYXNlKHRyYW5zYWN0aW9u
LT5kYXRhYmFzZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvbGV2ZWxkYi9JREJDdXJzb3JCYWNrZW5kTGV2ZWxEQi5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJDdXJzb3JCYWNrZW5kTGV2ZWxEQi5oCmluZGV4IDE4
YWNmZTYuLmIyZGVlYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2xldmVsZGIvSURCQ3Vyc29yQmFja2VuZExldmVsREIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkN1cnNvckJhY2tlbmRMZXZlbERCLmgKQEAg
LTQ0LDExICs0NCwxMSBAQCBjbGFzcyBJREJLZXlSYW5nZTsKIAogY2xhc3MgSURCQ3Vyc29yQmFj
a2VuZExldmVsREIgOiBwdWJsaWMgSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZExldmVsREI+IGNyZWF0ZShQ
YXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gY3Vyc29yLCBJbmRleGVk
REI6OkN1cnNvclR5cGUgY3Vyc29yVHlwZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiog
dHJhbnNhY3Rpb24sIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxJREJDdXJzb3JCYWNrZW5kTGV2ZWxEQj4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlOjpDdXJzb3I+IGN1cnNvciwgSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNv
clR5cGUsIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQkN1
cnNvckJhY2tlbmRMZXZlbERCKGN1cnNvciwgY3Vyc29yVHlwZSwgSURCRGF0YWJhc2VCYWNrZW5k
SW50ZXJmYWNlOjpOb3JtYWxUYXNrLCB0cmFuc2FjdGlvbiwgb2JqZWN0U3RvcmVJZCkpOwogICAg
IH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kTGV2ZWxEQj4gY3JlYXRl
KFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBjdXJzb3IsIEluZGV4
ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6
OlRhc2tUeXBlIHRhc2tUeXBlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2Fj
dGlvbiwgaW50NjRfdCBvYmplY3RTdG9yZUlkKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkN1
cnNvckJhY2tlbmRMZXZlbERCPiBjcmVhdGUoUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRl
cmZhY2U6OkN1cnNvcj4gY3Vyc29yLCBJbmRleGVkREI6OkN1cnNvclR5cGUgY3Vyc29yVHlwZSwg
SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSB0YXNrVHlwZSwgSURCVHJhbnNh
Y3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCQ3Vyc29yQmFja2VuZExldmVs
REIoY3Vyc29yLCBjdXJzb3JUeXBlLCB0YXNrVHlwZSwgdHJhbnNhY3Rpb24sIG9iamVjdFN0b3Jl
SWQpKTsKICAgICB9CkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsb3NlKCk7
CiAKIHByaXZhdGU6Ci0gICAgSURCQ3Vyc29yQmFja2VuZExldmVsREIoUGFzc1JlZlB0cjxJREJC
YWNraW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+LCBJbmRleGVkREI6OkN1cnNvclR5cGUsIElEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZTo6VGFza1R5cGUsIElEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREIqLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpOworICAgIElEQkN1cnNvckJhY2tlbmRMZXZl
bERCKFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+LCBJbmRleGVk
REI6OkN1cnNvclR5cGUsIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6VGFza1R5cGUsIElE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpOwogCiAg
ICAgY2xhc3MgQ3Vyc29ySXRlcmF0aW9uT3BlcmF0aW9uOwogICAgIGNsYXNzIEN1cnNvckFkdmFu
Y2VPcGVyYXRpb247CkBAIC04MCw4ICs4MCw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPElEQlRy
YW5zYWN0aW9uQmFja2VuZExldmVsREI+IG1fdHJhbnNhY3Rpb247CiAgICAgY29uc3QgaW50NjRf
dCBtX29iamVjdFN0b3JlSWQ7CiAKLSAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6
Q3Vyc29yPiBtX2N1cnNvcjsgLy8gTXVzdCBiZSBkZXN0cm95ZWQgYmVmb3JlIG1fdHJhbnNhY3Rp
b24uCi0gICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gbV9zYXZlZEN1
cnNvcjsgLy8gTXVzdCBiZSBkZXN0cm95ZWQgYmVmb3JlIG1fdHJhbnNhY3Rpb24uCisgICAgUmVm
UHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yPiBtX2N1cnNvcjsgLy8gTXVzdCBi
ZSBkZXN0cm95ZWQgYmVmb3JlIG1fdHJhbnNhY3Rpb24uCisgICAgUmVmUHRyPElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6Q3Vyc29yPiBtX3NhdmVkQ3Vyc29yOyAvLyBNdXN0IGJlIGRlc3Ryb3ll
ZCBiZWZvcmUgbV90cmFuc2FjdGlvbi4KIAogICAgIGJvb2wgbV9jbG9zZWQ7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJEYXRhYmFz
ZUJhY2tlbmRMZXZlbERCLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xl
dmVsZGIvSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQi5jcHAKaW5kZXggYjg4NzE2Ni4uNWNhODZm
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9J
REJEYXRhYmFzZUJhY2tlbmRMZXZlbERCLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9sZXZlbGRiL0lEQkRhdGFiYXNlQmFja2VuZExldmVsREIuY3BwCkBAIC00Miwx
NSArNDIsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPElEQkRhdGFi
YXNlQmFja2VuZExldmVsREI+IElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmNyZWF0ZShjb25z
dCBTdHJpbmcmIG5hbWUsIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGRhdGFiYXNlLCBJREJGYWN0
b3J5QmFja2VuZEludGVyZmFjZSogZmFjdG9yeSwgY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlm
aWVyKQorUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCPiBJREJEYXRhYmFzZUJh
Y2tlbmRMZXZlbERCOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqIGZhY3Rv
cnksIGNvbnN0IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcikKIHsKLSAgICBSZWZQdHI8SURCRGF0
YWJhc2VCYWNrZW5kTGV2ZWxEQj4gYmFja2VuZCA9IGFkb3B0UmVmKG5ldyBJREJEYXRhYmFzZUJh
Y2tlbmRMZXZlbERCKG5hbWUsIGRhdGFiYXNlLCBmYWN0b3J5LCB1bmlxdWVJZGVudGlmaWVyKSk7
CisgICAgUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZExldmVsREI+IGJhY2tlbmQgPSBhZG9wdFJl
ZihuZXcgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQihuYW1lLCBiYWNraW5nU3RvcmUsIGZhY3Rv
cnksIHVuaXF1ZUlkZW50aWZpZXIpKTsKICAgICBpZiAoIWJhY2tlbmQtPm9wZW5JbnRlcm5hbCgp
KQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gYmFja2VuZC5yZWxlYXNlKCk7CiB9CiAK
LUlEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OklEQkRhdGFiYXNlQmFja2VuZExldmVsREIoY29u
c3QgU3RyaW5nJiBuYW1lLCBJREJCYWNraW5nU3RvcmVMZXZlbERCKiBiYWNraW5nU3RvcmUsIElE
QkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiBmYWN0b3J5LCBjb25zdCBTdHJpbmcmIHVuaXF1ZUlk
ZW50aWZpZXIpCitJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpJREJEYXRhYmFzZUJhY2tlbmRM
ZXZlbERCKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKiBiYWNr
aW5nU3RvcmUsIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiBmYWN0b3J5LCBjb25zdCBTdHJp
bmcmIHVuaXF1ZUlkZW50aWZpZXIpCiAgICAgOiBtX2JhY2tpbmdTdG9yZShiYWNraW5nU3RvcmUp
CiAgICAgLCBtX21ldGFkYXRhKG5hbWUsIEludmFsaWRJZCwgMCwgSW52YWxpZElkKQogICAgICwg
bV9pZGVudGlmaWVyKHVuaXF1ZUlkZW50aWZpZXIpCkBAIC0xMTgsOSArMTE4LDkgQEAgSURCRGF0
YWJhc2VCYWNrZW5kTGV2ZWxEQjo6fklEQkRhdGFiYXNlQmFja2VuZExldmVsREIoKQogewogfQog
Ci1QYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+IElEQkRhdGFiYXNlQmFja2VuZExl
dmVsREI6OmJhY2tpbmdTdG9yZSgpIGNvbnN0CitJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIElE
QkRhdGFiYXNlQmFja2VuZExldmVsREI6OmJhY2tpbmdTdG9yZSgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fYmFja2luZ1N0b3JlOworICAgIHJldHVybiBtX2JhY2tpbmdTdG9yZS5nZXQoKTsKIH0K
IAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpjcmVhdGVPYmplY3RTdG9yZShpbnQ2
NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBJREJLZXlQYXRoJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpCkBAIC0y
NDYsNyArMjQ2LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpzZXRJbmRleEtl
eXMoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamUKICAgICBBU1NFUlQodHJhbnNh
Y3Rpb24tPm1vZGUoKSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uVmVyc2lvbkNoYW5nZSk7CiAK
ICAgICBSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5ID0gcHJwUHJpbWFyeUtleTsKLSAgICBSZWZQ
dHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4gc3RvcmUgPSBiYWNraW5nU3RvcmUoKTsKKyAgICBS
ZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlPiBzdG9yZSA9IGJhY2tpbmdTdG9yZSgpOwog
ICAgIC8vIEZJWE1FOiBUaGlzIG1ldGhvZCBjb3VsZCBiZSBhc3luY2hyb25vdXMsIGJ1dCB3ZSBu
ZWVkIHRvIGV2YWx1YXRlIGlmIGl0J3Mgd29ydGggdGhlIGV4dHJhIGNvbXBsZXhpdHkuCiAgICAg
SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6UmVjb3JkSWRlbnRpZmllciByZWNvcmRJZGVudGlmaWVy
OwogICAgIGJvb2wgZm91bmQgPSBmYWxzZTsKQEAgLTQyNiw3ICs0MjYsOCBAQCB2b2lkIElEQkRh
dGFiYXNlQmFja2VuZExldmVsREI6OnByb2Nlc3NQZW5kaW5nQ2FsbHMoKQogCiB2b2lkIElEQkRh
dGFiYXNlQmFja2VuZExldmVsREI6OmNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rp
b25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBW
ZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKQogewot
ICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiB0cmFuc2FjdGlvbiA9IElE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6OmNyZWF0ZShtX2JhY2tpbmdTdG9yZS5nZXQoKSwg
dHJhbnNhY3Rpb25JZCwgY2FsbGJhY2tzLCBvYmplY3RTdG9yZUlkcywgc3RhdGljX2Nhc3Q8SW5k
ZXhlZERCOjpUcmFuc2FjdGlvbk1vZGU+KG1vZGUpLCB0aGlzKTsKKyAgICBSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbiA9IG1fZmFjdG9yeS0+Y3JlYXRl
VHJhbnNhY3Rpb25CYWNrZW5kKHRoaXMsIHRyYW5zYWN0aW9uSWQsIGNhbGxiYWNrcywgb2JqZWN0
U3RvcmVJZHMsIHN0YXRpY19jYXN0PEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlPihtb2RlKSk7
CisKICAgICBBU1NFUlQoIW1fdHJhbnNhY3Rpb25zLmNvbnRhaW5zKHRyYW5zYWN0aW9uSWQpKTsK
ICAgICBtX3RyYW5zYWN0aW9ucy5hZGQodHJhbnNhY3Rpb25JZCwgdHJhbnNhY3Rpb24uZ2V0KCkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxk
Yi9JREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9sZXZlbGRiL0lEQkRhdGFiYXNlQmFja2VuZExldmVsREIuaAppbmRleCA3NjJjN2Qx
Li4zYTA1MGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9s
ZXZlbGRiL0lEQkRhdGFiYXNlQmFja2VuZExldmVsREIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkRhdGFiYXNlQmFja2VuZExldmVsREIuaApAQCAt
MzcsNyArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIElEQkJhY2tpbmdT
dG9yZUxldmVsREI7CitjbGFzcyBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U7CiBjbGFzcyBJREJE
YXRhYmFzZTsKIGNsYXNzIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlOwogY2xhc3MgSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOwpAQCAtNDUsMTAgKzQ1LDEwIEBAIGNsYXNzIElEQlRy
YW5zYWN0aW9uQ29vcmRpbmF0b3JMZXZlbERCOwogCiBjbGFzcyBJREJEYXRhYmFzZUJhY2tlbmRM
ZXZlbERCIDogcHVibGljIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQj4gY3JlYXRlKGNv
bnN0IFN0cmluZyYgbmFtZSwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiogZGF0YWJhc2UsIElEQkZh
Y3RvcnlCYWNrZW5kSW50ZXJmYWNlKiwgY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKTsK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCPiBjcmVhdGUo
Y29uc3QgU3RyaW5nJiBuYW1lLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqLCBJREJGYWN0b3J5
QmFja2VuZEludGVyZmFjZSosIGNvbnN0IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcik7CiAgICAg
dmlydHVhbCB+SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQigpOwogCi0gICAgUGFzc1JlZlB0cjxJ
REJCYWNraW5nU3RvcmVMZXZlbERCPiBiYWNraW5nU3RvcmUoKSBjb25zdDsKKyAgICBJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSgpIGNvbnN0OwogCiAgICAgc3RhdGljIGNv
bnN0IGludDY0X3QgSW52YWxpZElkID0gMDsKICAgICBpbnQ2NF90IGlkKCkgY29uc3QgeyByZXR1
cm4gbV9tZXRhZGF0YS5pZDsgfQpAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgY2xhc3Mg
VmVyc2lvbkNoYW5nZUFib3J0T3BlcmF0aW9uOwogCiBwcml2YXRlOgotICAgIElEQkRhdGFiYXNl
QmFja2VuZExldmVsREIoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJCYWNraW5nU3RvcmVMZXZlbERC
KiBkYXRhYmFzZSwgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqLCBjb25zdCBTdHJpbmcmIHVu
aXF1ZUlkZW50aWZpZXIpOworICAgIElEQkRhdGFiYXNlQmFja2VuZExldmVsREIoY29uc3QgU3Ry
aW5nJiBuYW1lLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqLCBJREJGYWN0b3J5QmFja2VuZElu
dGVyZmFjZSosIGNvbnN0IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcik7CiAKICAgICBib29sIG9w
ZW5JbnRlcm5hbCgpOwogICAgIHZvaWQgcnVuSW50VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4s
IGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKTsKQEAgLTEw
Myw3ICsxMDMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNEZWxldGVEYXRhYmFzZUJsb2NrZWQo
KTsKICAgICB2b2lkIGRlbGV0ZURhdGFiYXNlRmluYWwoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
KTsKIAotICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCPiBtX2JhY2tpbmdTdG9yZTsK
KyAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlPiBtX2JhY2tpbmdTdG9yZTsKICAg
ICBJREJEYXRhYmFzZU1ldGFkYXRhIG1fbWV0YWRhdGE7CiAKICAgICBTdHJpbmcgbV9pZGVudGlm
aWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxk
Yi9JREJGYWN0b3J5QmFja2VuZExldmVsREIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExldmVsREIuY3BwCmluZGV4IDg3NDUw
MjUuLjVmYTFhY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2xldmVsZGIvSURCRmFjdG9yeUJhY2tlbmRMZXZlbERCLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQi5jcHAK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJJREJCYWNraW5nU3RvcmVMZXZlbERCLmgiCiAj
aW5jbHVkZSAiSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQi5oIgogI2luY2x1ZGUgIklEQkRhdGFi
YXNlRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQi5o
IgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3JMZXZlbERCLmgiCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC0xODYsNiArMTg3
LDExIEBAIHZvaWQgSURCRmFjdG9yeUJhY2tlbmRMZXZlbERCOjpvcGVuKGNvbnN0IFN0cmluZyYg
bmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90CiAgICAgZGF0YWJhc2VCYWNrZW5kLT5vcGVu
Q29ubmVjdGlvbihjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzLCB0cmFuc2FjdGlvbklkLCB2
ZXJzaW9uKTsKIH0KIAorUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+
IElEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQjo6Y3JlYXRlVHJhbnNhY3Rpb25CYWNrZW5kKElEQkRh
dGFiYXNlQmFja2VuZExldmVsREIqIGJhY2tlbmQsIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFz
c1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MsIGNvbnN0IFZl
Y3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2Rl
IG1vZGUpCit7CisgICAgcmV0dXJuIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6OmNyZWF0
ZShiYWNrZW5kLCB0cmFuc2FjdGlvbklkLCBkYXRhYmFzZUNhbGxiYWNrcywgb2JqZWN0U3RvcmVJ
ZHMsIG1vZGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkgJiYgVVNFKExFVkVMREIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkZhY3RvcnlCYWNrZW5kTGV2ZWxE
Qi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5
QmFja2VuZExldmVsREIuaAppbmRleCBmZjA5ZDNmLi43YTMzMGEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkZhY3RvcnlCYWNrZW5kTGV2
ZWxEQi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURC
RmFjdG9yeUJhY2tlbmRMZXZlbERCLmgKQEAgLTU4LDEwICs1OCwxMyBAQCBwdWJsaWM6CiAgICAg
Ly8gTm90aWZpY2F0aW9ucyBmcm9tIHdlYWsgcG9pbnRlcnMuCiAgICAgdmlydHVhbCB2b2lkIHJl
bW92ZUlEQkRhdGFiYXNlQmFja2VuZChjb25zdCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIpIE9W
RVJSSURFIEZJTkFMOwogCi0gICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7Ci0gICAgdmlydHVhbCB2b2lk
IG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIGludDY0X3QgdHJhbnNh
Y3Rpb25JZCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNl
Q2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpOworICAgIHZpcnR1YWwgdm9pZCBnZXREYXRh
YmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9y
aWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpIE9W
RVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwg
aW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRh
RGlyKSBPVkVSUklERSBGSU5BTDsKKworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShj
b25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRh
dGFEaXIpIE9WRVJSSURFIEZJTkFMOworCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb25CYWNrZW5kKElEQkRhdGFi
YXNlQmFja2VuZExldmVsREIqLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCBJbmRleGVkREI6OlRy
YW5zYWN0aW9uTW9kZSkgT1ZFUlJJREUgRklOQUw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
RGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBh
c3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
U3RyaW5nJiBkYXRhRGlyKTsKIAogcHJvdGVjdGVkOgogICAgIElEQkZhY3RvcnlCYWNrZW5kTGV2
ZWxEQigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2
ZWxkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5jcHAK
aW5kZXggY2RhZjE0OS4uNDI0MDViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0b3Jl
QmFja2VuZExldmVsREIuY3BwCkBAIC00NCw3ICs0NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotYm9vbCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpJbmRleFdyaXRlcjo6dmVy
aWZ5SW5kZXhLZXlzKElEQkJhY2tpbmdTdG9yZUxldmVsREImIGJhY2tpbmdTdG9yZSwgSURCQmFj
a2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0
YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGJvb2wmIGNh
bkFkZEtleXMsIGNvbnN0IElEQktleSogcHJpbWFyeUtleSwgU3RyaW5nKiBlcnJvck1lc3NhZ2Up
IGNvbnN0Citib29sIElEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6OkluZGV4V3JpdGVyOjp2
ZXJpZnlJbmRleEtleXMoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlJiBiYWNraW5nU3RvcmUsIElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90
IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBib29s
JiBjYW5BZGRLZXlzLCBjb25zdCBJREJLZXkqIHByaW1hcnlLZXksIFN0cmluZyogZXJyb3JNZXNz
YWdlKSBjb25zdAogewogICAgIGNhbkFkZEtleXMgPSBmYWxzZTsKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG1faW5kZXhLZXlzLnNpemUoKTsgKytpKSB7CkBAIC02MSw3ICs2MSw3IEBAIGJv
b2wgSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQjo6SW5kZXhXcml0ZXI6OnZlcmlmeUluZGV4
S2V5cyhJREJCYWNraW5nU3RvcmVMCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQjo6SW5kZXhXcml0ZXI6OndyaXRlSW5kZXhLZXlzKGNvbnN0
IElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlJlY29yZElkZW50aWZpZXImIHJlY29yZElkZW50aWZp
ZXIsIElEQkJhY2tpbmdTdG9yZUxldmVsREImIGJhY2tpbmdTdG9yZSwgSURCQmFja2luZ1N0b3Jl
SW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkKSBjb25zdAordm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRM
ZXZlbERCOjpJbmRleFdyaXRlcjo6d3JpdGVJbmRleEtleXMoY29uc3QgSURCQmFja2luZ1N0b3Jl
TGV2ZWxEQjo6UmVjb3JkSWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllciwgSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlJiBiYWNraW5nU3RvcmUsIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJh
bnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCkgY29uc3QKIHsKICAgICBpbnQ2NF90IGluZGV4SWQgPSBtX2luZGV4TWV0YWRhdGEu
aWQ7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2luZGV4S2V5cy5zaXplKCk7ICsraSkg
ewpAQCAtNzEsNyArNzEsNyBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6Oklu
ZGV4V3JpdGVyOjp3cml0ZUluZGV4S2V5cyhjb25zdCBJREJCYWNraW5nUwogICAgIH0KIH0KIAot
Ym9vbCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpJbmRleFdyaXRlcjo6YWRkaW5nS2V5
QWxsb3dlZChJREJCYWNraW5nU3RvcmVMZXZlbERCJiBiYWNraW5nU3RvcmUsIElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkq
IGluZGV4S2V5LCBjb25zdCBJREJLZXkqIHByaW1hcnlLZXksIGJvb2wmIGFsbG93ZWQpIGNvbnN0
Citib29sIElEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6OkluZGV4V3JpdGVyOjphZGRpbmdL
ZXlBbGxvd2VkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSYgYmFja2luZ1N0b3JlLCBJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURC
S2V5KiBpbmRleEtleSwgY29uc3QgSURCS2V5KiBwcmltYXJ5S2V5LCBib29sJiBhbGxvd2VkKSBj
b25zdAogewogICAgIGFsbG93ZWQgPSBmYWxzZTsKICAgICBpZiAoIW1faW5kZXhNZXRhZGF0YS51
bmlxdWUpIHsKQEAgLTg5LDcgKzg5LDcgQEAgYm9vbCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZl
bERCOjpJbmRleFdyaXRlcjo6YWRkaW5nS2V5QWxsb3dlZChJREJCYWNraW5nU3RvcmUKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjptYWtl
SW5kZXhXcml0ZXJzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0
cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiogYmFja2luZ1N0b3JlLCBpbnQ2NF90
IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmIG9iamVjdFN0b3JlLCBQ
YXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgYm9vbCBrZXlXYXNHZW5lcmF0ZWQsIGNvbnN0
IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZUJhY2tl
bmRJbnRlcmZhY2U6OkluZGV4S2V5cz4mIGluZGV4S2V5cywgVmVjdG9yPE93blB0cjxJbmRleFdy
aXRlcj4+KiBpbmRleFdyaXRlcnMsIFN0cmluZyogZXJyb3JNZXNzYWdlLCBib29sJiBjb21wbGV0
ZWQpCitib29sIElEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6Om1ha2VJbmRleFdyaXRlcnMo
UGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uLCBJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlk
LCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxJ
REJLZXk+IHByaW1hcnlLZXksIGJvb2wga2V5V2FzR2VuZXJhdGVkLCBjb25zdCBWZWN0b3I8aW50
NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNl
OjpJbmRleEtleXM+JiBpbmRleEtleXMsIFZlY3RvcjxPd25QdHI8SW5kZXhXcml0ZXI+PiogaW5k
ZXhXcml0ZXJzLCBTdHJpbmcqIGVycm9yTWVzc2FnZSwgYm9vbCYgY29tcGxldGVkKQogewogICAg
IEFTU0VSVChpbmRleElkcy5zaXplKCkgPT0gaW5kZXhLZXlzLnNpemUoKSk7CiAgICAgY29tcGxl
dGVkID0gZmFsc2U7CkBAIC0xMjIsNyArMTIyLDcgQEAgYm9vbCBJREJPYmplY3RTdG9yZUJhY2tl
bmRMZXZlbERCOjptYWtlSW5kZXhXcml0ZXJzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWMK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUGFzc1JlZlB0cjxJREJLZXk+IElEQk9iamVjdFN0b3Jl
QmFja2VuZExldmVsREI6OmdlbmVyYXRlS2V5KFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2
ZWxEQj4gYmFja2luZ1N0b3JlLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVs
REI+IHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCkKK1Bhc3NSZWZQdHI8SURCS2V5PiBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpnZW5l
cmF0ZUtleShQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZT4gYmFja2luZ1N0b3Jl
LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+IHRyYW5zYWN0aW9uLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkKIHsKICAgICBjb25zdCBp
bnQ2NF90IG1heEdlbmVyYXRvclZhbHVlID0gOTAwNzE5OTI1NDc0MDk5MkxMOyAvLyBNYXhpbXVt
IGludGVnZXIgc3RvcmFibGUgYXMgRUNNQVNjcmlwdCBudW1iZXIuCiAgICAgaW50NjRfdCBjdXJy
ZW50TnVtYmVyOwpAQCAtMTM3LDcgKzEzNyw3IEBAIFBhc3NSZWZQdHI8SURCS2V5PiBJREJPYmpl
Y3RTdG9yZUJhY2tlbmRMZXZlbERCOjpnZW5lcmF0ZUtleShQYXNzUmVmUHRyPElEQkJhY2tpCiAg
ICAgcmV0dXJuIElEQktleTo6Y3JlYXRlTnVtYmVyKGN1cnJlbnROdW1iZXIpOwogfQogCi1ib29s
IElEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6OnVwZGF0ZUtleUdlbmVyYXRvcihQYXNzUmVm
UHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+IGJhY2tpbmdTdG9yZSwgUGFzc1JlZlB0cjxJREJU
cmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSoga2V5LCBib29sIGNoZWNrQ3Vy
cmVudCkKK2Jvb2wgSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQjo6dXBkYXRlS2V5R2VuZXJh
dG9yKFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlPiBiYWNraW5nU3RvcmUsIFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gdHJhbnNhY3Rpb24sIGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkqIGtleSwg
Ym9vbCBjaGVja0N1cnJlbnQpCiB7CiAgICAgQVNTRVJUKGtleSAmJiBrZXktPnR5cGUoKSA9PSBJ
REJLZXk6Ok51bWJlclR5cGUpOwogICAgIHJldHVybiBiYWNraW5nU3RvcmUtPm1heWJlVXBkYXRl
S2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcih0cmFuc2FjdGlvbi0+YmFja2luZ1N0b3JlVHJhbnNh
Y3Rpb24oKSwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgc3RhdGljX2Nhc3Q8aW50NjRfdD4o
Zmxvb3Ioa2V5LT5udW1iZXIoKSkpICsgMSwgY2hlY2tDdXJyZW50KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCT2JqZWN0U3RvcmVCYWNr
ZW5kTGV2ZWxEQi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9J
REJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCLmgKaW5kZXggZjk1YjViNC4uMmU4MmRlMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmpl
Y3RTdG9yZUJhY2tlbmRMZXZlbERCLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvbGV2ZWxkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCLmgKQEAgLTU1LDIxICs1
NSwyMSBAQCBuYW1lc3BhY2UgSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQiB7CiAgICAgICAg
ICAgICAsIG1faW5kZXhLZXlzKGluZGV4S2V5cykKICAgICAgICAgeyB9CiAKLSAgICAgICAgYm9v
bCB2ZXJpZnlJbmRleEtleXMoSURCQmFja2luZ1N0b3JlTGV2ZWxEQiYsIElEQkJhY2tpbmdTdG9y
ZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBib29sJiBjYW5BZGRLZXlzLCBjb25zdCBJREJL
ZXkqIHByaW1hcnlLZXkgPSAwLCBTdHJpbmcqIGVycm9yTWVzc2FnZSA9IDApIGNvbnN0IFdBUk5f
VU5VU0VEX1JFVFVSTjsKKyAgICAgICAgYm9vbCB2ZXJpZnlJbmRleEtleXMoSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlJiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGlu
dDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQs
IGJvb2wmIGNhbkFkZEtleXMsIGNvbnN0IElEQktleSogcHJpbWFyeUtleSA9IDAsIFN0cmluZyog
ZXJyb3JNZXNzYWdlID0gMCkgY29uc3QgV0FSTl9VTlVTRURfUkVUVVJOOwogCi0gICAgICAgIHZv
aWQgd3JpdGVJbmRleEtleXMoY29uc3QgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6UmVjb3JkSWRl
bnRpZmllciYsIElEQkJhY2tpbmdTdG9yZUxldmVsREImLCBJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQpIGNvbnN0OworICAgICAgICB2b2lkIHdyaXRlSW5kZXhLZXlzKGNvbnN0IElEQkJhY2tpbmdT
dG9yZUxldmVsREI6OlJlY29yZElkZW50aWZpZXImLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2Um
LCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKLSAgICAg
ICAgYm9vbCBhZGRpbmdLZXlBbGxvd2VkKElEQkJhY2tpbmdTdG9yZUxldmVsREImLCBJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5KiBpbmRleEtl
eSwgY29uc3QgSURCS2V5KiBwcmltYXJ5S2V5LCBib29sJiBhbGxvd2VkKSBjb25zdCBXQVJOX1VO
VVNFRF9SRVRVUk47CisgICAgICAgIGJvb2wgYWRkaW5nS2V5QWxsb3dlZChJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2UmLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwg
Y29uc3QgSURCS2V5KiBpbmRleEtleSwgY29uc3QgSURCS2V5KiBwcmltYXJ5S2V5LCBib29sJiBh
bGxvd2VkKSBjb25zdCBXQVJOX1VOVVNFRF9SRVRVUk47CiAKICAgICAgICAgY29uc3QgSURCSW5k
ZXhNZXRhZGF0YSBtX2luZGV4TWV0YWRhdGE7CiAgICAgICAgIElEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZTo6SW5kZXhLZXlzIG1faW5kZXhLZXlzOwogICAgIH07CiAKLSAgICBib29sIG1ha2VJ
bmRleFdyaXRlcnMoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBJ
REJCYWNraW5nU3RvcmVMZXZlbERCKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmpl
Y3RTdG9yZU1ldGFkYXRhJiwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIGJvb2wga2V5
V2FzR2VuZXJhdGVkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0
b3I8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXM+JiwgVmVjdG9yPE93blB0
cjxJbmRleFdyaXRlcj4+KiBpbmRleFdyaXRlcnMsIFN0cmluZyogZXJyb3JNZXNzYWdlLCBib29s
JiBjb21wbGV0ZWQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICBib29sIG1ha2VJbmRleFdyaXRl
cnMoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2UqLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3Jl
TWV0YWRhdGEmLCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgYm9vbCBrZXlXYXNHZW5l
cmF0ZWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJREJE
YXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4mLCBWZWN0b3I8T3duUHRyPEluZGV4
V3JpdGVyPj4qIGluZGV4V3JpdGVycywgU3RyaW5nKiBlcnJvck1lc3NhZ2UsIGJvb2wmIGNvbXBs
ZXRlZCkgV0FSTl9VTlVTRURfUkVUVVJOOwogCi0gICAgUGFzc1JlZlB0cjxJREJLZXk+IGdlbmVy
YXRlS2V5KFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4sIFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkKTsKLSAgICBib29sIHVwZGF0ZUtleUdlbmVyYXRvcihQYXNzUmVmUHRyPElE
QkJhY2tpbmdTdG9yZUxldmVsREI+LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREI+LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3Qg
SURCS2V5KiwgYm9vbCBjaGVja0N1cnJlbnQpOworICAgIFBhc3NSZWZQdHI8SURCS2V5PiBnZW5l
cmF0ZUtleShQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZT4sIFBhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkKTsKKyAgICBib29sIHVwZGF0ZUtleUdlbmVyYXRvcihQYXNzUmVmUHRy
PElEQkJhY2tpbmdTdG9yZUludGVyZmFjZT4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQj4sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBj
b25zdCBJREJLZXkqLCBib29sIGNoZWNrQ3VycmVudCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZl
bGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCLmNwcApp
bmRleCBhM2EzYmNmLi5lNGVhNGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25C
YWNrZW5kTGV2ZWxEQi5jcHAKQEAgLTQwLDI3ICs0MCwyNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gSURCVHJhbnNh
Y3Rpb25CYWNrZW5kTGV2ZWxEQjo6Y3JlYXRlKElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tp
bmdTdG9yZSwgaW50NjRfdCBpZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gY2Fs
bGJhY2tzLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCBJbmRleGVkREI6
OlRyYW5zYWN0aW9uTW9kZSBtb2RlLCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCKiBkYXRhYmFz
ZSkKK1Bhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gSURCVHJhbnNhY3Rp
b25CYWNrZW5kTGV2ZWxEQjo6Y3JlYXRlKElEQkRhdGFiYXNlQmFja2VuZExldmVsREIqIGRhdGFi
YXNlQmFja2VuZCwgaW50NjRfdCBpZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4g
Y2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCBJbmRleGVk
REI6OlRyYW5zYWN0aW9uTW9kZSBtb2RlKQogewogICAgIEhhc2hTZXQ8aW50NjRfdD4gb2JqZWN0
U3RvcmVIYXNoU2V0OwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2JqZWN0U3RvcmVJZHMu
c2l6ZSgpOyArK2kpCiAgICAgICAgIG9iamVjdFN0b3JlSGFzaFNldC5hZGQob2JqZWN0U3RvcmVJ
ZHNbaV0pOwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJUcmFuc2FjdGlvbkJhY2tlbmRM
ZXZlbERCKGJhY2tpbmdTdG9yZSwgaWQsIGNhbGxiYWNrcywgb2JqZWN0U3RvcmVIYXNoU2V0LCBt
b2RlLCBkYXRhYmFzZSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCVHJhbnNhY3Rpb25C
YWNrZW5kTGV2ZWxEQihkYXRhYmFzZUJhY2tlbmQsIGlkLCBjYWxsYmFja3MsIG9iamVjdFN0b3Jl
SGFzaFNldCwgbW9kZSkpOwogfQogCi1JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpJREJU
cmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdT
dG9yZSwgaW50NjRfdCBpZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gY2FsbGJh
Y2tzLCBjb25zdCBIYXNoU2V0PGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgSW5kZXhlZERCOjpU
cmFuc2FjdGlvbk1vZGUgbW9kZSwgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQiogZGF0YWJhc2Up
CitJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZl
bERCKElEQkRhdGFiYXNlQmFja2VuZExldmVsREIqIGRhdGFiYXNlQmFja2VuZCwgaW50NjRfdCBp
ZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBIYXNo
U2V0PGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUg
bW9kZSkKICAgICA6IElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZShpZCkKICAgICAsIG1f
b2JqZWN0U3RvcmVJZHMob2JqZWN0U3RvcmVJZHMpCiAgICAgLCBtX21vZGUobW9kZSkKICAgICAs
IG1fc3RhdGUoVW51c2VkKQogICAgICwgbV9jb21taXRQZW5kaW5nKGZhbHNlKQogICAgICwgbV9j
YWxsYmFja3MoY2FsbGJhY2tzKQotICAgICwgbV9kYXRhYmFzZShkYXRhYmFzZSkKLSAgICAsIG1f
dHJhbnNhY3Rpb24oZGF0YWJhc2UtPmJhY2tpbmdTdG9yZSgpLmdldCgpKQorICAgICwgbV9kYXRh
YmFzZShkYXRhYmFzZUJhY2tlbmQpCisgICAgLCBtX3RyYW5zYWN0aW9uKGRhdGFiYXNlQmFja2Vu
ZC0+YmFja2luZ1N0b3JlKCkpCiAgICAgLCBtX3Rhc2tUaW1lcih0aGlzLCAmSURCVHJhbnNhY3Rp
b25CYWNrZW5kTGV2ZWxEQjo6dGFza1RpbWVyRmlyZWQpCiAgICAgLCBtX3BlbmRpbmdQcmVlbXB0
aXZlRXZlbnRzKDApCi0gICAgLCBtX2JhY2tpbmdTdG9yZShiYWNraW5nU3RvcmUpCisgICAgLCBt
X2JhY2tpbmdTdG9yZShkYXRhYmFzZUJhY2tlbmQtPmJhY2tpbmdTdG9yZSgpKQogewogICAgIC8v
IFdlIHBhc3MgYSByZWZlcmVuY2Ugb2YgdGhpcyBvYmplY3QgYmVmb3JlIGl0IGNhbiBiZSBhZG9w
dGVkLgogICAgIHJlbGF4QWRvcHRpb25SZXF1aXJlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRM
ZXZlbERCLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRy
YW5zYWN0aW9uQmFja2VuZExldmVsREIuaAppbmRleCBhM2Y2YzFkLi41NTM5ZDg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0
aW9uQmFja2VuZExldmVsREIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuaApAQCAtNDYsNyArNDYsNyBA
QCBjbGFzcyBJREJEYXRhYmFzZUNhbGxiYWNrczsKIAogY2xhc3MgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQiA6IHB1YmxpYyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+
IGNyZWF0ZShJREJCYWNraW5nU3RvcmVMZXZlbERCKiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQ
YXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+Jiwg
SW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUsIElEQkRhdGFiYXNlQmFja2VuZExldmVsREIqKTsK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiBjcmVh
dGUoSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQiosIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFz
c1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2Jq
ZWN0U3RvcmVJZHMsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlKTsKICAgICB2aXJ0dWFsIH5J
REJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0
KCkgT1ZFUlJJREUgRklOQUw7CkBAIC04Niw3ICs4Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgc2NoZWR1bGVDbGVhck9wZXJhdGlvbihpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPikgT1ZFUlJJREUgRklOQUw7CiAgICAgCiBwcml2YXRlOgotICAg
IElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIoSURCQmFja2luZ1N0b3JlTGV2ZWxEQiosIGlu
dDY0X3QgaWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBjb25zdCBIYXNoU2V0
PGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUsIElE
QkRhdGFiYXNlQmFja2VuZExldmVsREIqKTsKKyAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZl
bERCKElEQkRhdGFiYXNlQmFja2VuZExldmVsREIqLCBpbnQ2NF90IGlkLCBQYXNzUmVmUHRyPElE
QkRhdGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgSGFzaFNldDxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJ
ZHMsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlKTsKIAogICAgIGVudW0gU3RhdGUgewogICAg
ICAgICBVbnVzZWQsIC8vIENyZWF0ZWQsIGJ1dCBubyB0YXNrcyB5ZXQuCkBAIC0xMjQsNyArMTI0
LDcgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hTZXQ8SURCQ3Vyc29yQmFja2VuZExldmVsREIqPiBt
X29wZW5DdXJzb3JzOwogICAgIAotICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCPiBt
X2JhY2tpbmdTdG9yZTsKKyAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlPiBtX2Jh
Y2tpbmdTdG9yZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQk9wZXJhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCT3BlcmF0aW9ucy5jcHAKaW5k
ZXggOWU4ZGUwNi4uNmUxNDQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCT3BlcmF0aW9ucy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFu
c2FjdGlvbkJhY2tlbmRMZXZlbERCT3BlcmF0aW9ucy5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgdm9p
ZCBHZXRPcGVyYXRpb246OnBlcmZvcm0oKQogICAgIGlmIChtX2tleVJhbmdlLT5pc09ubHlLZXko
KSkKICAgICAgICAga2V5ID0gbV9rZXlSYW5nZS0+bG93ZXIoKTsKICAgICBlbHNlIHsKLSAgICAg
ICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNvcj4gYmFja2luZ1N0b3JlQ3Vy
c29yOworICAgICAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IGJh
Y2tpbmdTdG9yZUN1cnNvcjsKICAgICAgICAgaWYgKG1faW5kZXhJZCA9PSBJREJJbmRleE1ldGFk
YXRhOjpJbnZhbGlkSWQpIHsKICAgICAgICAgICAgIEFTU0VSVChtX2N1cnNvclR5cGUgIT0gSW5k
ZXhlZERCOjpDdXJzb3JLZXlPbmx5KTsKICAgICAgICAgICAgIC8vIE9iamVjdFN0b3JlIFJldHJp
ZXZhbCBPcGVyYXRpb24KQEAgLTI2MSw3ICsyNjEsNyBAQCB2b2lkIE9wZW5DdXJzb3JPcGVyYXRp
b246OnBlcmZvcm0oKQogICAgIGlmIChtX3Rhc2tUeXBlID09IElEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZTo6UHJlZW1wdGl2ZVRhc2spCiAgICAgICAgIG1fdHJhbnNhY3Rpb24tPmFkZFByZWVt
cHRpdmVFdmVudCgpOwogCi0gICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI6OkN1cnNv
cj4gYmFja2luZ1N0b3JlQ3Vyc29yOworICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OkN1cnNvcj4gYmFja2luZ1N0b3JlQ3Vyc29yOwogICAgIGlmIChtX2luZGV4SWQgPT0gSURC
SW5kZXhNZXRhZGF0YTo6SW52YWxpZElkKSB7CiAgICAgICAgIEFTU0VSVChtX2N1cnNvclR5cGUg
IT0gSW5kZXhlZERCOjpDdXJzb3JLZXlPbmx5KTsKICAgICAgICAgYmFja2luZ1N0b3JlQ3Vyc29y
ID0gbV9iYWNraW5nU3RvcmUtPm9wZW5PYmplY3RTdG9yZUN1cnNvcihtX3RyYW5zYWN0aW9uLT5i
YWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBtX2RhdGFiYXNlSWQsIG1fb2JqZWN0U3RvcmVJZCwg
bV9rZXlSYW5nZS5nZXQoKSwgbV9kaXJlY3Rpb24pOwpAQCAtMjg3LDcgKzI4Nyw3IEBAIHZvaWQg
Q291bnRPcGVyYXRpb246OnBlcmZvcm0oKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiQ291bnRP
cGVyYXRpb24iKTsKICAgICB1aW50MzJfdCBjb3VudCA9IDA7Ci0gICAgUmVmUHRyPElEQkJhY2tp
bmdTdG9yZUxldmVsREI6OkN1cnNvcj4gYmFja2luZ1N0b3JlQ3Vyc29yOworICAgIFJlZlB0cjxJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gYmFja2luZ1N0b3JlQ3Vyc29yOwogCiAg
ICAgaWYgKG1faW5kZXhJZCA9PSBJREJJbmRleE1ldGFkYXRhOjpJbnZhbGlkSWQpCiAgICAgICAg
IGJhY2tpbmdTdG9yZUN1cnNvciA9IG1fYmFja2luZ1N0b3JlLT5vcGVuT2JqZWN0U3RvcmVLZXlD
dXJzb3IobV90cmFuc2FjdGlvbi0+YmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSwgbV9kYXRhYmFz
ZUlkLCBtX29iamVjdFN0b3JlSWQsIG1fa2V5UmFuZ2UuZ2V0KCksIEluZGV4ZWREQjo6Q3Vyc29y
TmV4dCk7CkBAIC0zMDgsNyArMzA4LDcgQEAgdm9pZCBDb3VudE9wZXJhdGlvbjo6cGVyZm9ybSgp
CiB2b2lkIERlbGV0ZVJhbmdlT3BlcmF0aW9uOjpwZXJmb3JtKCkKIHsKICAgICBMT0coU3RvcmFn
ZUFQSSwgIkRlbGV0ZVJhbmdlT3BlcmF0aW9uIik7Ci0gICAgUmVmUHRyPElEQkJhY2tpbmdTdG9y
ZUxldmVsREI6OkN1cnNvcj4gYmFja2luZ1N0b3JlQ3Vyc29yID0gbV9iYWNraW5nU3RvcmUtPm9w
ZW5PYmplY3RTdG9yZUN1cnNvcihtX3RyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlv
bigpLCBtX2RhdGFiYXNlSWQsIG1fb2JqZWN0U3RvcmVJZCwgbV9rZXlSYW5nZS5nZXQoKSwgSW5k
ZXhlZERCOjpDdXJzb3JOZXh0KTsKKyAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
OjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvciA9IG1fYmFja2luZ1N0b3JlLT5vcGVuT2JqZWN0
U3RvcmVDdXJzb3IobV90cmFuc2FjdGlvbi0+YmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSwgbV9k
YXRhYmFzZUlkLCBtX29iamVjdFN0b3JlSWQsIG1fa2V5UmFuZ2UuZ2V0KCksIEluZGV4ZWREQjo6
Q3Vyc29yTmV4dCk7CiAgICAgaWYgKGJhY2tpbmdTdG9yZUN1cnNvcikgewogICAgICAgICBkbyB7
CiAgICAgICAgICAgICBpZiAoIW1fYmFja2luZ1N0b3JlLT5kZWxldGVSZWNvcmQobV90cmFuc2Fj
dGlvbi0+YmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSwgbV9kYXRhYmFzZUlkLCBtX29iamVjdFN0
b3JlSWQsIGJhY2tpbmdTdG9yZUN1cnNvci0+cmVjb3JkSWRlbnRpZmllcigpKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2Fj
dGlvbkJhY2tlbmRMZXZlbERCT3BlcmF0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCT3BlcmF0aW9ucy5o
CmluZGV4IGZhYTdkZjguLmM2YjMwYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQk9wZXJhdGlv
bnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRy
YW5zYWN0aW9uQmFja2VuZExldmVsREJPcGVyYXRpb25zLmgKQEAgLTM0LDEzICszNCwxMyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyZWF0ZU9iamVjdFN0b3JlT3BlcmF0aW9uIDog
cHVibGljIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3Bl
cmF0aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24s
IElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgY29uc3QgSURCT2JqZWN0U3Rv
cmVNZXRhZGF0YSYgb2JqZWN0U3RvcmVNZXRhZGF0YSkKKyAgICBzdGF0aWMgUGFzc093blB0cjxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpPcGVyYXRpb24+IGNyZWF0ZShJREJUcmFuc2Fj
dGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
KiBiYWNraW5nU3RvcmUsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmIG9iamVjdFN0b3Jl
TWV0YWRhdGEpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENyZWF0ZU9iamVj
dFN0b3JlT3BlcmF0aW9uKHRyYW5zYWN0aW9uLCBiYWNraW5nU3RvcmUsIG9iamVjdFN0b3JlTWV0
YWRhdGEpKTsKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm0oKSBPVkVSUklERSBGSU5B
TDsKIHByaXZhdGU6Ci0gICAgQ3JlYXRlT2JqZWN0U3RvcmVPcGVyYXRpb24oSURCVHJhbnNhY3Rp
b25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJh
Y2tpbmdTdG9yZSwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2JqZWN0U3RvcmVNZXRh
ZGF0YSkKKyAgICBDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlvbihJREJUcmFuc2FjdGlvbkJhY2tl
bmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKiBiYWNraW5n
U3RvcmUsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmIG9iamVjdFN0b3JlTWV0YWRhdGEp
CiAgICAgICAgIDogbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKICAgICAgICAgLCBtX2JhY2tp
bmdTdG9yZShiYWNraW5nU3RvcmUpCiAgICAgICAgICwgbV9vYmplY3RTdG9yZU1ldGFkYXRhKG9i
amVjdFN0b3JlTWV0YWRhdGEpCkBAIC00OCwxOSArNDgsMTkgQEAgcHJpdmF0ZToKICAgICB9CiAg
ICAgCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+IG1fdHJhbnNhY3Rp
b247Ci0gICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+IG1fYmFja2luZ1N0
b3JlOworICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U+IG1fYmFja2lu
Z1N0b3JlOwogICAgIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEgbV9vYmplY3RTdG9yZU1l
dGFkYXRhOwogfTsKIAogY2xhc3MgRGVsZXRlT2JqZWN0U3RvcmVPcGVyYXRpb24gOiBwdWJsaWMg
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpPcGVyYXRpb24+
IGNyZWF0ZShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQiogYmFja2luZ1N0b3JlLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFk
YXRhJiBvYmplY3RTdG9yZU1ldGFkYXRhKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbj4gY3JlYXRlKElEQlRyYW5zYWN0aW9uQmFj
a2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tp
bmdTdG9yZSwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2JqZWN0U3RvcmVNZXRhZGF0
YSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGVsZXRlT2JqZWN0U3RvcmVP
cGVyYXRpb24odHJhbnNhY3Rpb24sIGJhY2tpbmdTdG9yZSwgb2JqZWN0U3RvcmVNZXRhZGF0YSkp
OwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybSgpIE9WRVJSSURFIEZJTkFMOwogcHJp
dmF0ZToKLSAgICBEZWxldGVPYmplY3RTdG9yZU9wZXJhdGlvbihJREJUcmFuc2FjdGlvbkJhY2tl
bmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiogYmFja2luZ1N0
b3JlLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZU1ldGFkYXRhKQor
ICAgIERlbGV0ZU9iamVjdFN0b3JlT3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVs
REIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwg
Y29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2JqZWN0U3RvcmVNZXRhZGF0YSkKICAgICAg
ICAgOiBtX3RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKQogICAgICAgICAsIG1fYmFja2luZ1N0b3Jl
KGJhY2tpbmdTdG9yZSkKICAgICAgICAgLCBtX29iamVjdFN0b3JlTWV0YWRhdGEob2JqZWN0U3Rv
cmVNZXRhZGF0YSkKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICBSZWZQ
dHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gbV90cmFuc2FjdGlvbjsKLSAgICBjb25z
dCBSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4gbV9iYWNraW5nU3RvcmU7CisgICAgY29u
c3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZT4gbV9iYWNraW5nU3RvcmU7CiAgICAg
Y29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSBtX29iamVjdFN0b3JlTWV0YWRhdGE7CiB9Owog
CkBAIC0xNTQsMTMgKzE1NCwxMyBAQCBwcml2YXRlOgogCiBjbGFzcyBDcmVhdGVJbmRleE9wZXJh
dGlvbiA6IHB1YmxpYyBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpPcGVyYXRpb24gewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVs
REI6Ok9wZXJhdGlvbj4gY3JlYXRlKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5z
YWN0aW9uLCBJREJCYWNraW5nU3RvcmVMZXZlbERCKiBiYWNraW5nU3RvcmUsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgY29uc3QgSURCSW5kZXhNZXRhZGF0YSYgaW5kZXhNZXRhZGF0YSkKKyAgICBz
dGF0aWMgUGFzc093blB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpPcGVyYXRpb24+
IGNyZWF0ZShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFj
a2luZ1N0b3JlSW50ZXJmYWNlKiBiYWNraW5nU3RvcmUsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
Y29uc3QgSURCSW5kZXhNZXRhZGF0YSYgaW5kZXhNZXRhZGF0YSkKICAgICB7CiAgICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgQ3JlYXRlSW5kZXhPcGVyYXRpb24odHJhbnNhY3Rpb24sIGJhY2tp
bmdTdG9yZSwgb2JqZWN0U3RvcmVJZCwgaW5kZXhNZXRhZGF0YSkpOwogICAgIH0KICAgICB2aXJ0
dWFsIHZvaWQgcGVyZm9ybSgpIE9WRVJSSURFIEZJTkFMOwogcHJpdmF0ZToKLSAgICBDcmVhdGVJ
bmRleE9wZXJhdGlvbihJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwg
SURCQmFja2luZ1N0b3JlTGV2ZWxEQiogYmFja2luZ1N0b3JlLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGNvbnN0IElEQkluZGV4TWV0YWRhdGEmIGluZGV4TWV0YWRhdGEpCisgICAgQ3JlYXRlSW5k
ZXhPcGVyYXRpb24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2luZ1N0b3JlLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGNvbnN0IElEQkluZGV4TWV0YWRhdGEmIGluZGV4TWV0YWRhdGEpCiAgICAgICAgIDogbV90
cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKICAgICAgICAgLCBtX2JhY2tpbmdTdG9yZShiYWNraW5n
U3RvcmUpCiAgICAgICAgICwgbV9vYmplY3RTdG9yZUlkKG9iamVjdFN0b3JlSWQpCkBAIC0xNjks
NyArMTY5LDcgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kTGV2ZWxEQj4gbV90cmFuc2FjdGlvbjsKLSAgICBjb25zdCBSZWZQdHI8SURCQmFja2lu
Z1N0b3JlTGV2ZWxEQj4gbV9iYWNraW5nU3RvcmU7CisgICAgY29uc3QgUmVmUHRyPElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZT4gbV9iYWNraW5nU3RvcmU7CiAgICAgY29uc3QgaW50NjRfdCBtX29i
amVjdFN0b3JlSWQ7CiAgICAgY29uc3QgSURCSW5kZXhNZXRhZGF0YSBtX2luZGV4TWV0YWRhdGE7
CiB9OwpAQCAtMTk2LDEzICsxOTYsMTMgQEAgcHJpdmF0ZToKIAogY2xhc3MgRGVsZXRlSW5kZXhP
cGVyYXRpb24gOiBwdWJsaWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9u
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRM
ZXZlbERCOjpPcGVyYXRpb24+IGNyZWF0ZShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0
cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiogYmFja2luZ1N0b3JlLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQkluZGV4TWV0YWRhdGEmIGluZGV4TWV0YWRhdGEpCisg
ICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0
aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2luZ1N0b3JlLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGNvbnN0IElEQkluZGV4TWV0YWRhdGEmIGluZGV4TWV0YWRhdGEpCiAgICAgewogICAgICAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IERlbGV0ZUluZGV4T3BlcmF0aW9uKHRyYW5zYWN0aW9uLCBi
YWNraW5nU3RvcmUsIG9iamVjdFN0b3JlSWQsIGluZGV4TWV0YWRhdGEpKTsKICAgICB9CiAgICAg
dmlydHVhbCB2b2lkIHBlcmZvcm0oKSBPVkVSUklERSBGSU5BTDsKIHByaXZhdGU6Ci0gICAgRGVs
ZXRlSW5kZXhPcGVyYXRpb24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rp
b24sIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBjb25zdCBJREJJbmRleE1ldGFkYXRhJiBpbmRleE1ldGFkYXRhKQorICAgIERlbGV0
ZUluZGV4T3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9u
LCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBjb25zdCBJREJJbmRleE1ldGFkYXRhJiBpbmRleE1ldGFkYXRhKQogICAgICAgICA6
IG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCiAgICAgICAgICwgbV9iYWNraW5nU3RvcmUoYmFj
a2luZ1N0b3JlKQogICAgICAgICAsIG1fb2JqZWN0U3RvcmVJZChvYmplY3RTdG9yZUlkKQpAQCAt
MjExLDcgKzIxMSw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0
aW9uQmFja2VuZExldmVsREI+IG1fdHJhbnNhY3Rpb247Ci0gICAgY29uc3QgUmVmUHRyPElEQkJh
Y2tpbmdTdG9yZUxldmVsREI+IG1fYmFja2luZ1N0b3JlOworICAgIGNvbnN0IFJlZlB0cjxJREJC
YWNraW5nU3RvcmVJbnRlcmZhY2U+IG1fYmFja2luZ1N0b3JlOwogICAgIGNvbnN0IGludDY0X3Qg
bV9vYmplY3RTdG9yZUlkOwogICAgIGNvbnN0IElEQkluZGV4TWV0YWRhdGEgbV9pbmRleE1ldGFk
YXRhOwogfTsKQEAgLTIzOCwxMyArMjM4LDEzIEBAIHByaXZhdGU6CiAKIGNsYXNzIEdldE9wZXJh
dGlvbiA6IHB1YmxpYyBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpPcGVyYXRpb24gewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVs
REI6Ok9wZXJhdGlvbj4gY3JlYXRlKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5z
YWN0aW9uLCBJREJCYWNraW5nU3RvcmVMZXZlbERCKiBiYWNraW5nU3RvcmUsIGNvbnN0IElEQkRh
dGFiYXNlTWV0YWRhdGEmIG1ldGFkYXRhLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3Qg
aW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIEluZGV4ZWREQjo6Q3Vy
c29yVHlwZSBjdXJzb3JUeXBlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJh
dGlvbj4gY3JlYXRlKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgY29uc3QgSURCRGF0YWJhc2VN
ZXRhZGF0YSYgbWV0YWRhdGEsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElk
LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgSW5kZXhlZERCOjpDdXJzb3JUeXBl
IGN1cnNvclR5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiAgICAgewog
ICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEdldE9wZXJhdGlvbih0cmFuc2FjdGlvbiwgYmFj
a2luZ1N0b3JlLCBtZXRhZGF0YSwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwga2V5UmFuZ2UsIGN1
cnNvclR5cGUsIGNhbGxiYWNrcykpOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybSgp
IE9WRVJSSURFIEZJTkFMOwogcHJpdmF0ZToKLSAgICBHZXRPcGVyYXRpb24oSURCVHJhbnNhY3Rp
b25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJh
Y2tpbmdTdG9yZSwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYgbWV0YWRhdGEsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBr
ZXlSYW5nZSwgSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiBjYWxsYmFja3MpCisgICAgR2V0T3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFj
a2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tp
bmdTdG9yZSwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYgbWV0YWRhdGEsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlS
YW5nZSwgSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiBjYWxsYmFja3MpCiAgICAgICAgIDogbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikK
ICAgICAgICAgLCBtX2JhY2tpbmdTdG9yZShiYWNraW5nU3RvcmUpCiAgICAgICAgICwgbV9kYXRh
YmFzZUlkKG1ldGFkYXRhLmlkKQpAQCAtMjYxLDcgKzI2MSw3IEBAIHByaXZhdGU6CiAgICAgfQog
CiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+IG1fdHJhbnNhY3Rpb247
Ci0gICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+IG1fYmFja2luZ1N0b3Jl
OworICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U+IG1fYmFja2luZ1N0
b3JlOwogICAgIGNvbnN0IGludDY0X3QgbV9kYXRhYmFzZUlkOwogICAgIGNvbnN0IGludDY0X3Qg
bV9vYmplY3RTdG9yZUlkOwogICAgIGNvbnN0IGludDY0X3QgbV9pbmRleElkOwpAQCAtMjc0LDEz
ICsyNzQsMTMgQEAgcHJpdmF0ZToKIAogY2xhc3MgUHV0T3BlcmF0aW9uIDogcHVibGljIElEQlRy
YW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVh
dGUoSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdT
dG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJP
YmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
IHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2U6OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywg
Y29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNl
QmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQorICAgIHN0YXRpYyBQYXNz
T3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbj4gY3JlYXRlKElE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmpl
Y3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZh
bHVlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6
OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgY29u
c3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlQmFj
a2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQogICAgIHsKICAgICAgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBQdXRPcGVyYXRpb24odHJhbnNhY3Rpb24sIGJhY2tpbmdTdG9yZSwg
ZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmUsIHZhbHVlLCBrZXksIHB1dE1vZGUsIGNhbGxiYWNrcywg
aW5kZXhJZHMsIGluZGV4S2V5cykpOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybSgp
IE9WRVJSSURFIEZJTkFMOwogcHJpdmF0ZToKLSAgICBQdXRPcGVyYXRpb24oSURCVHJhbnNhY3Rp
b25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJh
Y2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFk
YXRhJiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+JiB2YWx1ZSwgUGFzc1Jl
ZlB0cjxJREJLZXk+IGtleSwgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpQdXRNb2RlIHB1
dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGNvbnN0IFZlY3Rvcjxp
bnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2U6OkluZGV4S2V5cz4mIGluZGV4S2V5cykKKyAgICBQdXRPcGVyYXRpb24oSURCVHJhbnNhY3Rp
b25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSog
YmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0
YWRhdGEmIG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mIHZhbHVlLCBQYXNz
UmVmUHRyPElEQktleT4ga2V5LCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUg
cHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgY29uc3QgVmVjdG9y
PGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlQmFja2VuZEludGVy
ZmFjZTo6SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQogICAgICAgICA6IG1fdHJhbnNhY3Rpb24odHJh
bnNhY3Rpb24pCiAgICAgICAgICwgbV9iYWNraW5nU3RvcmUoYmFja2luZ1N0b3JlKQogICAgICAg
ICAsIG1fZGF0YWJhc2VJZChkYXRhYmFzZUlkKQpAQCAtMjk1LDcgKzI5NSw3IEBAIHByaXZhdGU6
CiAgICAgfQogCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+IG1fdHJh
bnNhY3Rpb247Ci0gICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+IG1fYmFj
a2luZ1N0b3JlOworICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U+IG1f
YmFja2luZ1N0b3JlOwogICAgIGNvbnN0IGludDY0X3QgbV9kYXRhYmFzZUlkOwogICAgIGNvbnN0
IElEQk9iamVjdFN0b3JlTWV0YWRhdGEgbV9vYmplY3RTdG9yZTsKICAgICBjb25zdCBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBtX3ZhbHVlOwpAQCAtMzI2LDEzICszMjYsMTMgQEAgcHJpdmF0ZToKIAog
Y2xhc3MgT3BlbkN1cnNvck9wZXJhdGlvbiA6IHB1YmxpYyBJREJUcmFuc2FjdGlvbkJhY2tlbmRM
ZXZlbERCOjpPcGVyYXRpb24gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPElEQlRy
YW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbj4gY3JlYXRlKElEQlRyYW5zYWN0aW9u
QmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVMZXZlbERCKiBiYWNr
aW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2
NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBJbmRleGVkREI6
OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24sIEluZGV4ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JU
eXBlLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlRhc2tUeXBlIHRhc2tUeXBlLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPElE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbj4gY3JlYXRlKElEQlRyYW5zYWN0
aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2Uq
IGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQs
IGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIEluZGV4
ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlvbiwgSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1
cnNvclR5cGUsIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6VGFza1R5cGUgdGFza1R5cGUs
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiAgICAgewogICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IE9wZW5DdXJzb3JPcGVyYXRpb24odHJhbnNhY3Rpb24sIGJhY2tpbmdT
dG9yZSwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwga2V5UmFuZ2UsIGRpcmVj
dGlvbiwgY3Vyc29yVHlwZSwgdGFza1R5cGUsIGNhbGxiYWNrcykpOwogICAgIH0KICAgICB2aXJ0
dWFsIHZvaWQgcGVyZm9ybSgpIE9WRVJSSURFIEZJTkFMOwogcHJpdmF0ZToKLSAgICBPcGVuQ3Vy
c29yT3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJ
REJCYWNraW5nU3RvcmVMZXZlbERCKiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5
UmFuZ2U+IGtleVJhbmdlLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24sIElu
ZGV4ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2U6OlRhc2tUeXBlIHRhc2tUeXBlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tz
KQorICAgIE9wZW5DdXJzb3JPcGVyYXRpb24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiog
dHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2luZ1N0b3JlLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQ
YXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rp
b24gZGlyZWN0aW9uLCBJbmRleGVkREI6OkN1cnNvclR5cGUgY3Vyc29yVHlwZSwgSURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSB0YXNrVHlwZSwgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+IGNhbGxiYWNrcykKICAgICAgICAgOiBtX3RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKQog
ICAgICAgICAsIG1fYmFja2luZ1N0b3JlKGJhY2tpbmdTdG9yZSkKICAgICAgICAgLCBtX2RhdGFi
YXNlSWQoZGF0YWJhc2VJZCkKQEAgLTM0Nyw3ICszNDcsNyBAQCBwcml2YXRlOgogICAgIH0KIAog
ICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiBtX3RyYW5zYWN0aW9uOwot
ICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCPiBtX2JhY2tpbmdTdG9yZTsK
KyAgICBjb25zdCBSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlPiBtX2JhY2tpbmdTdG9y
ZTsKICAgICBjb25zdCBpbnQ2NF90IG1fZGF0YWJhc2VJZDsKICAgICBjb25zdCBpbnQ2NF90IG1f
b2JqZWN0U3RvcmVJZDsKICAgICBjb25zdCBpbnQ2NF90IG1faW5kZXhJZDsKQEAgLTM2MCwxMyAr
MzYwLDEzIEBAIHByaXZhdGU6CiAKIGNsYXNzIENvdW50T3BlcmF0aW9uIDogcHVibGljIElEQlRy
YW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVh
dGUoSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdT
dG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5
UmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCisgICAgc3RhdGljIFBh
c3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUo
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9y
ZUludGVyZmFjZSogYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlS
YW5nZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKICAgICB7CiAgICAgICAg
IHJldHVybiBhZG9wdFB0cihuZXcgQ291bnRPcGVyYXRpb24odHJhbnNhY3Rpb24sIGJhY2tpbmdT
dG9yZSwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwga2V5UmFuZ2UsIGNhbGxi
YWNrcykpOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybSgpIE9WRVJSSURFIEZJTkFM
OwogcHJpdmF0ZToKLSAgICBDb3VudE9wZXJhdGlvbihJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZl
bERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQiogYmFja2luZ1N0b3JlLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElk
LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+IGNhbGxiYWNrcykKKyAgICBDb3VudE9wZXJhdGlvbihJREJUcmFuc2FjdGlvbkJhY2tlbmRM
ZXZlbERCKiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKiBiYWNraW5nU3Rv
cmUsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGlu
ZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBQYXNzUmVmUHRyPElEQkNh
bGxiYWNrcz4gY2FsbGJhY2tzKQogICAgICAgICA6IG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rpb24p
CiAgICAgICAgICwgbV9iYWNraW5nU3RvcmUoYmFja2luZ1N0b3JlKQogICAgICAgICAsIG1fZGF0
YWJhc2VJZChkYXRhYmFzZUlkKQpAQCAtMzc4LDcgKzM3OCw3IEBAIHByaXZhdGU6CiAgICAgfQog
CiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+IG1fdHJhbnNhY3Rpb247
Ci0gICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+IG1fYmFja2luZ1N0b3Jl
OworICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U+IG1fYmFja2luZ1N0
b3JlOwogICAgIGNvbnN0IGludDY0X3QgbV9kYXRhYmFzZUlkOwogICAgIGNvbnN0IGludDY0X3Qg
bV9vYmplY3RTdG9yZUlkOwogICAgIGNvbnN0IGludDY0X3QgbV9pbmRleElkOwpAQCAtMzg4LDEz
ICszODgsMTMgQEAgcHJpdmF0ZToKIAogY2xhc3MgRGVsZXRlUmFuZ2VPcGVyYXRpb24gOiBwdWJs
aWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc093blB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpPcGVyYXRp
b24+IGNyZWF0ZShJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKiB0cmFuc2FjdGlvbiwgSURC
QmFja2luZ1N0b3JlTGV2ZWxEQiogYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCisgICAgc3RhdGljIFBhc3NPd25QdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUoSURCVHJhbnNh
Y3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZSogYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiBjYWxsYmFja3MpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERlbGV0
ZVJhbmdlT3BlcmF0aW9uKHRyYW5zYWN0aW9uLCBiYWNraW5nU3RvcmUsIGRhdGFiYXNlSWQsIG9i
amVjdFN0b3JlSWQsIGtleVJhbmdlLCBjYWxsYmFja3MpKTsKICAgICB9CiAgICAgdmlydHVhbCB2
b2lkIHBlcmZvcm0oKSBPVkVSUklERSBGSU5BTDsKIHByaXZhdGU6Ci0gICAgRGVsZXRlUmFuZ2VP
cGVyYXRpb24oSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24sIElEQkJh
Y2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQorICAgIERlbGV0ZVJhbmdlT3BlcmF0aW9u
KElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQogICAgICAgICA6IG1fdHJhbnNhY3Rpb24odHJhbnNh
Y3Rpb24pCiAgICAgICAgICwgbV9iYWNraW5nU3RvcmUoYmFja2luZ1N0b3JlKQogICAgICAgICAs
IG1fZGF0YWJhc2VJZChkYXRhYmFzZUlkKQpAQCAtNDA1LDcgKzQwNSw3IEBAIHByaXZhdGU6CiAg
ICAgfQogCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+IG1fdHJhbnNh
Y3Rpb247Ci0gICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+IG1fYmFja2lu
Z1N0b3JlOworICAgIGNvbnN0IFJlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U+IG1fYmFj
a2luZ1N0b3JlOwogICAgIGNvbnN0IGludDY0X3QgbV9kYXRhYmFzZUlkOwogICAgIGNvbnN0IGlu
dDY0X3QgbV9vYmplY3RTdG9yZUlkOwogICAgIGNvbnN0IFJlZlB0cjxJREJLZXlSYW5nZT4gbV9r
ZXlSYW5nZTsKQEAgLTQxNCwxMyArNDE0LDEzIEBAIHByaXZhdGU6CiAKIGNsYXNzIENsZWFyT3Bl
cmF0aW9uIDogcHVibGljIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6Ok9wZXJhdGlvbiB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2
ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJh
bnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUxldmVsREIqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBk
YXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiBjYWxsYmFja3MpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5k
TGV2ZWxEQjo6T3BlcmF0aW9uPiBjcmVhdGUoSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiog
dHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSogYmFja2luZ1N0b3JlLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+IGNhbGxiYWNrcykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ2xl
YXJPcGVyYXRpb24odHJhbnNhY3Rpb24sIGJhY2tpbmdTdG9yZSwgZGF0YWJhc2VJZCwgb2JqZWN0
U3RvcmVJZCwgY2FsbGJhY2tzKSk7CiAgICAgfQogICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtKCkg
T1ZFUlJJREUgRklOQUw7CiBwcml2YXRlOgotICAgIENsZWFyT3BlcmF0aW9uKElEQlRyYW5zYWN0
aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVMZXZlbERCKiBi
YWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQorICAgIENsZWFyT3BlcmF0aW9uKElE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiAgICAgICAgIDog
bV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKICAgICAgICAgLCBtX2JhY2tpbmdTdG9yZShiYWNr
aW5nU3RvcmUpCiAgICAgICAgICwgbV9kYXRhYmFzZUlkKGRhdGFiYXNlSWQpCkBAIC00MzAsNyAr
NDMwLDcgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQj4gbV90cmFuc2FjdGlvbjsKLSAgICBjb25zdCBSZWZQdHI8SURCQmFja2luZ1N0
b3JlTGV2ZWxEQj4gbV9iYWNraW5nU3RvcmU7CisgICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZT4gbV9iYWNraW5nU3RvcmU7CiAgICAgY29uc3QgaW50NjRfdCBtX2RhdGFi
YXNlSWQ7CiAgICAgY29uc3QgaW50NjRfdCBtX29iamVjdFN0b3JlSWQ7CiAgICAgY29uc3QgUmVm
UHRyPElEQkNhbGxiYWNrcz4gbV9jYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmFiM2JlMi4uM2I3OTgwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTc3NCw3ICsxNzc0LDcgQEAKIAkJNTFENzE5REUxODExMDZFMDAwMTZEQzUxIC8qIElEQktl
eVBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
RDcxOTk0MTgxMTA2RTAwMDE2REM1MSAvKiBJREJLZXlQYXRoLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFENzE5REYxODExMDZFMDAwMTZEQzUx
IC8qIElEQktleVJhbmdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRDcxOTk1MTgxMTA2RTAwMDE2REM1MSAvKiBJREJLZXlSYW5nZS5jcHAgKi87
IH07CiAJCTUxRDcxOUUwMTgxMTA2RTAwMDE2REM1MSAvKiBJREJLZXlSYW5nZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFENzE5OTYxODExMDZFMDAw
MTZEQzUxIC8qIElEQktleVJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJNTFENzE5RTIxODExMDZFMDAwMTZEQzUxIC8qIElEQk1ldGFkYXRh
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQ3MTk5
ODE4MTEwNkUwMDAxNkRDNTEgLyogSURCTWV0YWRhdGEuaCAqLzsgfTsKKwkJNTFENzE5RTIxODEx
MDZFMDAwMTZEQzUxIC8qIElEQk1ldGFkYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQ3MTk5ODE4MTEwNkUwMDAxNkRDNTEgLyogSURCTWV0YWRh
dGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
MUQ3MTlFMzE4MTEwNkUwMDAxNkRDNTEgLyogSURCT2JqZWN0U3RvcmUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFENzE5OTkxODExMDZFMDAwMTZE
QzUxIC8qIElEQk9iamVjdFN0b3JlLmNwcCAqLzsgfTsKIAkJNTFENzE5RTQxODExMDZFMDAwMTZE
QzUxIC8qIElEQk9iamVjdFN0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUQ3MTk5QTE4MTEwNkUwMDAxNkRDNTEgLyogSURCT2JqZWN0U3RvcmUu
aCAqLzsgfTsKIAkJNTFENzE5RTYxODExMDZFMDAwMTZEQzUxIC8qIElEQk9wZW5EQlJlcXVlc3Qu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFENzE5
OUMxODExMDZFMDAwMTZEQzUxIC8qIElEQk9wZW5EQlJlcXVlc3QuY3BwICovOyB9OwpAQCAtMTgw
NiwxMyArMTgwNiwxMyBAQAogCQk1MUUxRUNDMTBDOTFDOTA0MDBEQzI1NUIgLyogSWNvblJlY29y
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMUVD
QkIwQzkxQzkwNDAwREMyNTVCIC8qIEljb25SZWNvcmQuaCAqLzsgfTsKIAkJNTFFMUVDQzIwQzkx
QzkwNDAwREMyNTVCIC8qIFBhZ2VVUkxSZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMUVDQkMwQzkxQzkwNDAwREMyNTVCIC8qIFBhZ2VV
UkxSZWNvcmQuY3BwICovOyB9OwogCQk1MUUxRUNDMzBDOTFDOTA0MDBEQzI1NUIgLyogUGFnZVVS
TFJlY29yZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFFMUVDQkQwQzkxQzkwNDAwREMyNTVCIC8qIFBhZ2VVUkxSZWNvcmQuaCAqLzsgfTsKLQkJNTFF
MzM3RjQxODEyNUFFMzAwMDdBMjQ2IC8qIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzM3RjMxODEyNUFF
MzAwMDdBMjQ2IC8qIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZS5oICovOyB9OworCQk1MUUzMzdG
NDE4MTI1QUUzMDAwN0EyNDYgLyogSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzMzdGMzE4MTI1QUUzMDAw
N0EyNDYgLyogSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFFM0Y5QzcwREEwNTlEQzAwMjUwOTExIC8q
IFN0b3JhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFFM0Y5QzUwREEwNTlEQzAwMjUwOTExIC8qIFN0b3JhZ2UuY3BwICovOyB9OwogCQk1MUUz
RjlENjBEQTA1RTFEMDAyNTA5MTEgLyogSlNTdG9yYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTNGOUQ0MERBMDVFMUQwMDI1MDkxMSAvKiBK
U1N0b3JhZ2UuY3BwICovOyB9OwogCQk1MUU0MTQzNDE2QTY1OTYzMDBDNjMzQzcgLyogUmVzb3Vy
Y2VIYW5kbGVUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTFFNDE0MzIxNkE2NTk1MTAwQzYzM0M3IC8qIFJlc291cmNlSGFuZGxlVHlwZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUU2ODIx
MDE2Mzg3MzAyMDAzQkJGM0MgLyogTG9hZGVyU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTY4MjBGMTYzODczMDIwMDNCQkYzQyAvKiBM
b2FkZXJTdHJhdGVneS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTUxRUM5MjY1MENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFN0YXRlbWVu
dEVycm9yQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFFQzkyNUQwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVtZW50
RXJyb3JDYWxsYmFjay5jcHAgKi87IH07Ci0JCTUxRjZFMEEzMTgxMUQyNTIwMDU4QTAwQSAvKiBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjZFMDhGMTgxMUQyNTIwMDU4QTAwQSAvKiBJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCAqLzsgfTsKKwkJNTFGNkUwQTMxODExRDI1MjAwNThB
MDBBIC8qIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGNkUwOEYxODExRDI1MjAwNThBMDBBIC8q
IElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxRkEyRDc4MTUyMTMyQjMwMEMxQkEwQiAvKiBE
T01XaW5kb3dFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxN0ZCQTE4MTUxQUE3MUIwMEI1Nzk1OSAvKiBET01XaW5kb3dFeHRlbnNpb24u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUZC
NTUwNDExM0UzRTkxMDA4MjExNzYgLyogSlNDbG9zZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUZCNTUwMjExM0UzRTkxMDA4MjExNzYgLyog
SlNDbG9zZUV2ZW50LmggKi87IH07CiAJCTUxRkI1NTA1MTEzRTNFOTEwMDgyMTE3NiAvKiBKU0Ns
b3NlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFGQjU1MDMxMTNFM0U5MTAwODIxMTc2IC8qIEpTQ2xvc2VFdmVudC5jcHAgKi87IH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggYThjYzRiOC4uNmZlNWZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDEzLTEwLTIxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAg
ICBUcmFuc2l0aW9uIG1vc3QgdXNlIG9mIElEQkJhY2tpbmdTdG9yZUxldmVsREIgdG8gSURCQmFj
a2luZ1N0b3JlSW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjMxMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTdHViIG91dCBhIG5ldyBwdXJlIHZpcnR1YWwgbWV0aG9kOgorICAgICAgICAq
IFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQkZhY3RvcnlCYWNrZW5kOjpjcmVhdGVUcmFuc2FjdGlv
bkJhY2tlbmQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJ
REJGYWN0b3J5QmFja2VuZC5oOgorCiAyMDEzLTEwLTIwICBEYW4gQmVybnN0ZWluICA8bWl0ekBh
cHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBMb2FkaW5nIHByb2dyZXNzIEFQSQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkZhY3RvcnlCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2Vz
L0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5jcHAKaW5kZXggNTRmNjNkYi4uMTM3Y2Fj
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhl
ZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuY3BwCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9JREJDYWxsYmFja3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lEQkRh
dGFiYXNlQ2FsbGJhY2tzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFk
Lmg+CkBAIC05OSw2ICsxMDAsMTIgQEAgdm9pZCBXZWJJREJGYWN0b3J5QmFja2VuZDo6cmVtb3Zl
SURCRGF0YWJhc2VCYWNrZW5kKGNvbnN0IFN0cmluZyYpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAorUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IFdlYklEQkZh
Y3RvcnlCYWNrZW5kOjpjcmVhdGVUcmFuc2FjdGlvbkJhY2tlbmQoSURCRGF0YWJhc2VCYWNrZW5k
TGV2ZWxEQiosIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNh
bGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25N
b2RlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCRmFjdG9yeUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJh
c2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5oCmluZGV4IDFiMmVkYTkuLjdlMjUy
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5oCkBAIC00NSw2ICs0
NSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJREJEYXRhYmFzZUJhY2tl
bmQoY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKSBPVkVSUklERSBGSU5BTDsKIAorICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2U+IGNyZWF0ZVRyYW5zYWN0aW9uQmFja2VuZChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRM
ZXZlbERCKiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRh
dGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgV2ViQ29yZTo6SW5kZXhl
ZERCOjpUcmFuc2FjdGlvbk1vZGUpOworCiBwcml2YXRlOgogICAgIFdlYklEQkZhY3RvcnlCYWNr
ZW5kKCk7CiB9Owo=
</data>
<flag name="review"
          id="237357"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>