<?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>92278</bug_id>
          
          <creation_ts>2012-07-25 12:27:14 -0700</creation_ts>
          <short_desc>IndexedDB: Pass cursor continue results back in callback</short_desc>
          <delta_ts>2012-08-14 09:07:06 -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>523.x (Safari 3)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>91123</dependson>
    
    <dependson>92414</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>678340</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-25 12:27:14 -0700</bug_when>
    <thetext>Right now the message signaling the front-end that the cursor has advanced is done via onSuccessWithContinuation(). An event is queued, and then at dispatch time the cursor is told to go fetch copies from the back end (three separate sync IPC calls).

We should instead have onSuccessWithContinuation() bring the key, primarykey, and (optionally) value along with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678357</commentid>
    <comment_count>1</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-25 12:54:51 -0700</bug_when>
    <thetext>Note that per https://bugs.webkit.org/show_bug.cgi?id=91123 this would actually have to do key injection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678545</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-25 15:46:48 -0700</bug_when>
    <thetext>Also need to make sure this doesn&apos;t break prefetching (which at an IPC level is done in a similar fashion - key/primaryKey/value are all sent at once)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678566</commentid>
    <comment_count>3</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-25 16:02:50 -0700</bug_when>
    <thetext>Digging further, we&apos;re already clever on the Chromium side and send the key/primaryKey/value along in the onSuccess(cursor) and onSuccessWithContinuation(), and cache it in the renderer! So this is mostly cleanup, not a measurable performance win.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678654</commentid>
    <comment_count>4</comment_count>
      <attachid>154498</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-25 17:15:12 -0700</bug_when>
    <thetext>Created attachment 154498
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678656</commentid>
    <comment_count>5</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-25 17:18:46 -0700</bug_when>
    <thetext>Attached patch is the WebKit &quot;end state&quot;. Landing will require the usual &quot;add new methods but support the old ones&quot; dance.

The Chromium &quot;end state&quot; is at: https://chromiumcodereview.appspot.com/10830028</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679676</commentid>
    <comment_count>6</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-26 13:00:45 -0700</bug_when>
    <thetext>Full landing sequence is: 

(1) WebKit prep: Add new API stubs http://webkit.org/b/92414 
(2) Chromium changes: dispatch to old and new API https://chromiumcodereview.appspot.com/10830028
(3) WebKit changes: use the new API http://webkit.org/b/92278 (this patch)
(4) Chromium cleanup: delete old API usage 
(5) WebKit changes: delete old API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679711</commentid>
    <comment_count>7</comment_count>
      <attachid>154738</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-26 13:36:35 -0700</bug_when>
    <thetext>Created attachment 154738
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679715</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-26 13:40:19 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679723</commentid>
    <comment_count>9</comment_count>
      <attachid>154738</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-07-26 13:47:51 -0700</bug_when>
    <thetext>Comment on attachment 154738
Patch

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

&gt; Source/WebKit/chromium/public/WebIDBCallbacks.h:63
&gt; +    virtual void onSuccess(const WebIDBKey&amp;, const WebIDBKey&amp;, const WebSerializedScriptValue&amp;) { WEBKIT_ASSERT_NOT_REACHED(); }

nit: two key parameters... might help to have names to differentiate them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679725</commentid>
    <comment_count>10</comment_count>
      <attachid>154738</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-07-26 13:48:45 -0700</bug_when>
    <thetext>Comment on attachment 154738
Patch

Whoops, back to R? ... should get someone more familiar with IDB to sign off first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679795</commentid>
    <comment_count>11</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-26 15:00:42 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 154738 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=154738&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebIDBCallbacks.h:63
&gt; &gt; +    virtual void onSuccess(const WebIDBKey&amp;, const WebIDBKey&amp;, const WebSerializedScriptValue&amp;) { WEBKIT_ASSERT_NOT_REACHED(); }
&gt; 
&gt; nit: two key parameters... might help to have names to differentiate them.

Thanks. :) I was wondering whether I should do that over in https://bugs.webkit.org/show_bug.cgi?id=92414 - I&apos;ll add them in both patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679816</commentid>
    <comment_count>12</comment_count>
      <attachid>154764</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-26 15:14:07 -0700</bug_when>
    <thetext>Created attachment 154764
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682507</commentid>
    <comment_count>13</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-30 16:29:50 -0700</bug_when>
    <thetext>dgrogan@, alecflett@ - can you take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683259</commentid>
    <comment_count>14</comment_count>
      <attachid>154764</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-07-31 10:50:52 -0700</bug_when>
    <thetext>Comment on attachment 154764
Patch

LGTM, though I worry this will get confused easiliy with

 virtual void onSuccess(PassRefPtr&lt;SerializedScriptValue&gt;, PassRefPtr&lt;IDBKey&gt;, const IDBKeyPath&amp;) = 0;

Can you document the cases in IDBCallbacks.h?

I really wish IDBCallbacks were split up at least a little bit.. ah well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684461</commentid>
    <comment_count>15</comment_count>
      <attachid>155861</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-01 12:25:33 -0700</bug_when>
    <thetext>Created attachment 155861
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684462</commentid>
    <comment_count>16</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-01 12:26:23 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Created an attachment (id=155861) [details]
&gt; Patch

New patch rebases, fixes ChangeLogs, and adds comments to IDBCallbacks.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691833</commentid>
    <comment_count>17</comment_count>
      <attachid>157544</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-09 14:15:30 -0700</bug_when>
    <thetext>Created attachment 157544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691836</commentid>
    <comment_count>18</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-09 14:17:41 -0700</bug_when>
    <thetext>One more rebase. Part #2 has landed on the Chromium side so this is good to go.

@abarth or @fishd, r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693903</commentid>
    <comment_count>19</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-13 11:53:19 -0700</bug_when>
    <thetext>Oh, fishd@ already gave it a thumbs up (#9), but kicked it back to r? (#10)

tony@ - r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695025</commentid>
    <comment_count>20</comment_count>
      <attachid>157544</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-14 09:07:00 -0700</bug_when>
    <thetext>Comment on attachment 157544
Patch

Clearing flags on attachment: 157544

Committed r125568: &lt;http://trac.webkit.org/changeset/125568&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695026</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-14 09:07:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154498</attachid>
            <date>2012-07-25 17:15:12 -0700</date>
            <delta_ts>2012-07-26 13:36:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92278-20120725171501.patch</filename>
            <type>text/plain</type>
            <size>37017</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGNmZWMzYjVmYzZkMzYw
M2NhNDliOTJmMjY3Y2NmYmNlODkwNzllNi4uZGMwYTc1ZDNkNTEwZGE1ZWUzMjYwY2Q1YjM5ZDBj
ZDZiMzRmMGUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTA3LTI1ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBQYXNz
IGN1cnNvciBjb250aW51ZSByZXN1bHRzIGJhY2sgaW4gY2FsbGJhY2sKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjc4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBv
ZiB0aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9hY2gsIHJhdGlvbmFsZS4gUGxlYXNlIGFkZCBwZXIt
ZnVuY3Rpb24gZGVzY3JpcHRpb25zIGJlbG93IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3Mu
aDoKKyAgICAgICAgKElEQkNhbGxiYWNrcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6c2V0VmFsdWVSZWFk
eSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmg6CisgICAgICAgIChJ
REJDdXJzb3IpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbXBsOjphZHZhbmNl
SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6OmNvbnRp
bnVlRnVuY3Rpb25JbnRlcm5hbCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yQmFja2VuZEltcGwuaDoKKyAgICAgICAgKElEQkN1cnNvckJhY2tlbmRJbXBsKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbXBsOjprZXkpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6OnByaW1hcnlLZXkpOgorICAgICAgICAoV2ViQ29yZTo6
SURCQ3Vyc29yQmFja2VuZEltcGw6OnZhbHVlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEJh
Y2tlbmRJbXBsOjpvcGVuQ3Vyc29ySW50ZXJuYWwpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6b3BlbkN1cnNvckludGVybmFsKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJl
cXVlc3Q6OnNldFJlc3VsdEN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojpv
blN1Y2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oOgorICAgICAgICAoSURC
UmVxdWVzdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTA3LTI0ICBLd2FuZyBZdWwgU2VvICA8c2t5
dWxAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgUmVtb3ZlIGFuIGludmFsaWQgYXNzZXJ0aW9u
IGludHJvZHVjZWQgaW4gcjEyMzUzNi4gVW5yZXZpZXdlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggNDNiZWQzMDQxNDFiYmVlZGU5ZWM3MWM1MzdkOWQzNzQ1NTE4NjFiNS4uMWY1Yjk0
ZjBjMTYzOGFlOTg2OTY4MzNkMTE5N2Q0YTAzNWYzNjkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMi0wNy0yNSAgSm9zaHVhIEJlbGwgIDxqc2JlbGxA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogUGFzcyBjdXJzb3IgY29udGludWUg
cmVzdWx0cyBiYWNrIGluIGNhbGxiYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05MjI3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb2YgdGhlIGNoYW5nZSBzdWNo
IGFzIGFwcHJvYWNoLCByYXRpb25hbGUuIFBsZWFzZSBhZGQgcGVyLWZ1bmN0aW9uIGRlc2NyaXB0
aW9ucyBiZWxvdyAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYklEQkNhbGxiYWNrcy5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3M6Om9uU3VjY2Vzcyk6CisgICAgICAg
ICogcHVibGljL1dlYklEQkN1cnNvci5oOgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MpOgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHkuaDoKKyAg
ICAgICAgKElEQkNhbGxiYWNrc1Byb3h5KToKKyAgICAgICAgKiBzcmMvSURCQ3Vyc29yQmFja2Vu
ZFByb3h5LmNwcDoKKyAgICAgICAgKiBzcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5Lmg6CisgICAg
ICAgIChJREJDdXJzb3JCYWNrZW5kUHJveHkpOgorICAgICAgICAqIHNyYy9XZWJJREJDYWxsYmFj
a3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNj
ZXNzKToKKyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oOgorICAgICAgICAoV2Vi
SURCQ2FsbGJhY2tzSW1wbCk6CisgICAgICAgICogc3JjL1dlYklEQkN1cnNvckltcGwuY3BwOgor
ICAgICAgICAqIHNyYy9XZWJJREJDdXJzb3JJbXBsLmg6CisgICAgICAgIChXZWJJREJDdXJzb3JJ
bXBsKToKKyAgICAgICAgKiB0ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja0lEQkNhbGxiYWNrczo6b25TdWNjZXNzKToKKyAgICAgICAgKiB0ZXN0
cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcDoKKwogMjAxMi0wNy0yNCAgSmlhbiBMaSAgPGpp
YW5saUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIHBlci1jb250ZXh0IHNldHRpbmcgZm9y
IGh0bWwgbm90aWZpY2F0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJDYWxsYmFja3MuaAppbmRleCAwYjM0YjY4ODZkNWUxYWE0M2QxOTUzZjlhZDgwM2ExZTJh
NzI4OTI0Li5hMzM5YmJlMmM1Y2YyNTA0ZmY2Mzg4NjkzMTViYjc4ZDRlNDkzMTViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaApAQCAtNTEs
MTMgKzUxLDEzIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VFcnJvcj4pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBh
c3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNz
KFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4pID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4sIFBh
c3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2VzcyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPElEQktleT4sIGNvbnN0IElEQktleVBhdGgmKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURC
S2V5PiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4g
PiYga2V5cywgY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mIHByaW1hcnlLZXlzLCBjb25z
dCBWZWN0b3I8UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYgdmFsdWVzKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpID0gMDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAppbmRleCBlZjM0Y2I4YzdmYjc2MzYxODQx
MjJiM2NiODM2ZDI0OGQyMWViOTMwLi5iNjg4N2MzYjM5OGUyM2U4YWEyYjY3NDRkZjhhYjA0ODk0
NzE2YzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJD
dXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ci5jcHAKQEAgLTI1MywxMiArMjUzLDEyIEBAIHZvaWQgSURCQ3Vyc29yOjpjbG9zZSgpCiAgICAg
bV9yZXF1ZXN0LmNsZWFyKCk7CiB9CiAKLXZvaWQgSURCQ3Vyc29yOjpzZXRWYWx1ZVJlYWR5KCkK
K3ZvaWQgSURCQ3Vyc29yOjpzZXRWYWx1ZVJlYWR5KFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBh
c3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gcHJwVmFsdWUpCiB7Ci0gICAgbV9jdXJyZW50S2V5ID0gbV9iYWNrZW5kLT5rZXkoKTsK
LSAgICBtX2N1cnJlbnRQcmltYXJ5S2V5ID0gbV9iYWNrZW5kLT5wcmltYXJ5S2V5KCk7CisgICAg
bV9jdXJyZW50S2V5ID0ga2V5OworICAgIG1fY3VycmVudFByaW1hcnlLZXkgPSBwcmltYXJ5S2V5
OwogCi0gICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUgPSBtX2JhY2tlbmQt
PnZhbHVlKCk7CisgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUgPSBwcnBW
YWx1ZTsKICNpZm5kZWYgTkRFQlVHCiAgICAgaWYgKCFpc0tleUN1cnNvcigpKSB7CiAgICAgICAg
IC8vIEZJWE1FOiBBY3R1YWxseSBpbmplY3QgdGhlIHByaW1hcnlLZXkgYXQgdGhlIGtleVBhdGgu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCmluZGV4IGZk
NDZjYmJjYTA3ZjRmMzIzMzcyNzJmZjRjZTYxM2E2ZTUyODE4NDEuLjZhOTFiZDZmZTc3MzJkYjU1
MzE1ZTA3MWFjMTcyNTQ1YTI3OGJlM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkN1cnNvci5oCkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
cG9zdFN1Y2Nlc3NIYW5kbGVyQ2FsbGJhY2soKTsKICAgICB2b2lkIGNsb3NlKCk7Ci0gICAgdm9p
ZCBzZXRWYWx1ZVJlYWR5KCk7CisgICAgdm9pZCBzZXRWYWx1ZVJlYWR5KFBhc3NSZWZQdHI8SURC
S2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4pOwogCiAgICAgLy8gVGhlIHNwZWMgcmVxdWlyZXMgdGhhdCB0aGUgc2NyaXB0IG9iamVjdCB0
aGF0IHdyYXBzIHRoZSB2YWx1ZQogICAgIC8vIGJlIHVuY2hhbmdlZCB1bnRpbCB0aGUgdmFsdWUg
Y2hhbmdlcyBhcyBhIHJlc3VsdCBvZiB0aGUgY3Vyc29yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAKaW5kZXgg
YWUyN2FmOGEzMmM2YmI2OTQ5MmJmZjA4NjZlMmQwMjg1MjQ0NjYwMy4uNGU3YzMyOWEzZmI1NzVm
NjYwNDJiMDUyODIyY2IxNjBlYWU2OTk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcApAQCAtNjMsMjYg
KzYzLDYgQEAgSURCQ3Vyc29yQmFja2VuZEltcGw6On5JREJDdXJzb3JCYWNrZW5kSW1wbCgpCiAg
ICAgbV9vYmplY3RTdG9yZS5jbGVhcigpOwogfQogCi1QYXNzUmVmUHRyPElEQktleT4gSURCQ3Vy
c29yQmFja2VuZEltcGw6OmtleSgpIGNvbnN0Ci17Ci0gICAgSURCX1RSQUNFKCJJREJDdXJzb3JC
YWNrZW5kSW1wbDo6a2V5Iik7Ci0gICAgcmV0dXJuIG1fY3Vyc29yLT5rZXkoKTsKLX0KLQotUGFz
c1JlZlB0cjxJREJLZXk+IElEQkN1cnNvckJhY2tlbmRJbXBsOjpwcmltYXJ5S2V5KCkgY29uc3QK
LXsKLSAgICBJREJfVFJBQ0UoIklEQkN1cnNvckJhY2tlbmRJbXBsOjpwcmltYXJ5S2V5Iik7Ci0g
ICAgcmV0dXJuIG1fY3Vyc29yLT5wcmltYXJ5S2V5KCk7Ci19Ci0KLVBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBJREJDdXJzb3JCYWNrZW5kSW1wbDo6dmFsdWUoKSBjb25zdAotewot
ICAgIElEQl9UUkFDRSgiSURCQ3Vyc29yQmFja2VuZEltcGw6OnZhbHVlIik7Ci0gICAgaWYgKG1f
Y3Vyc29yVHlwZSA9PSBJbmRleEtleUN1cnNvcikKLSAgICAgIHJldHVybiBTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6Om51bGxWYWx1ZSgpOwotICAgIHJldHVybiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OmNyZWF0ZUZyb21XaXJlKG1fY3Vyc29yLT52YWx1ZSgpKTsKLX0KLQogdm9pZCBJREJDdXJzb3JC
YWNrZW5kSW1wbDo6dXBkYXRlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1
ZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgSURCX1RSQUNFKCJJREJDdXJzb3JCYWNrZW5kSW1wbDo6dXBkYXRlIik7CkBAIC0x
MzYsNyArMTE2LDcgQEAgdm9pZCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6YWR2YW5jZUludGVybmFs
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPEkKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpOworICAg
IGNhbGxiYWNrcy0+b25TdWNjZXNzKGN1cnNvci0+a2V5KCksIGN1cnNvci0+cHJpbWFyeUtleSgp
LCBjdXJzb3ItPnZhbHVlKCkpOwogfQogCiB2b2lkIElEQkN1cnNvckJhY2tlbmRJbXBsOjpjb250
aW51ZUZ1bmN0aW9uSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
SURCQ3Vyc29yQmFja2VuZEltcGw+IHBycEN1cnNvciwgUGFzc1JlZlB0cjxJREJLZXk+IHBycEtl
eSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKQEAgLTE1MSw3ICsxMzEsNyBA
QCB2b2lkIElEQkN1cnNvckJhY2tlbmRJbXBsOjpjb250aW51ZUZ1bmN0aW9uSW50ZXJuYWwoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIFBhcwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
Y2FsbGJhY2tzLT5vblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCk7CisgICAgY2FsbGJhY2tzLT5v
blN1Y2Nlc3MoY3Vyc29yLT5rZXkoKSwgY3Vyc29yLT5wcmltYXJ5S2V5KCksIGN1cnNvci0+dmFs
dWUoKSk7CiB9CiAKIHZvaWQgSURCQ3Vyc29yQmFja2VuZEltcGw6OmRlbGV0ZUZ1bmN0aW9uKFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIEV4Y2VwdGlvbkNvZGUmIGVjKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFj
a2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJh
Y2tlbmRJbXBsLmgKaW5kZXggMDQzYzQwMzUyY2RkM2EzZmQ2M2Y5OTcyZDE2NzIxZjA0OGUyYjA5
OS4uMzAwNGYxZjU2ZDc3MzZjNTA1NmY3YWU2ZjExNmQ4NTJjZjlkOGI3YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1w
bC5oCkBAIC01NCw5ICs1NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJDdXJzb3JCYWNr
ZW5kSW1wbCgpOwogCiAgICAgLy8gSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZQotICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSgpIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxJREJLZXk+IHByaW1hcnlLZXkoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgYWR2YW5jZSh1bnNpZ25l
ZCBsb25nLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2
aXJ0dWFsIHZvaWQgY29udGludWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtNjUsNiArNjIsOSBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHByZWZldGNoUmVzZXQoaW50IHVzZWRQcmVmZXRjaGVzLCBp
bnQgdW51c2VkUHJlZmV0Y2hlcyk7CiAgICAgdmlydHVhbCB2b2lkIHBvc3RTdWNjZXNzSGFuZGxl
ckNhbGxiYWNrKCkgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCisgICAgUGFzc1JlZlB0cjxJ
REJLZXk+IGtleSgpIGNvbnN0IHsgcmV0dXJuIG1fY3Vyc29yLT5rZXkoKTsgfQorICAgIFBhc3NS
ZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5KCkgY29uc3QgeyByZXR1cm4gbV9jdXJzb3ItPnByaW1h
cnlLZXkoKTsgfQorICAgIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIChtX2N1cnNvclR5cGUgPT0gSW5kZXhLZXlDdXJzb3IpID8gU2VyaWFs
aXplZFNjcmlwdFZhbHVlOjpudWxsVmFsdWUoKSA6IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3Jl
YXRlRnJvbVdpcmUobV9jdXJzb3ItPnZhbHVlKCkpOyB9CiAgICAgdm9pZCBjbG9zZSgpOwogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yQmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oCmluZGV4IDQ4ZDNhMTgyOWY2NTg4ZWRmNjE5
NzMzN2YzMThiMmMwNmU5MGJjZjMuLjU0NzI2M2JjNTQwZmZmNTE1MzdmNjBlZTZlYTQ3YjFmZWM5
OTYwYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvckJhY2tlbmRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmgKQEAgLTUzLDEwICs1Myw2IEBAIHB1Ymxp
YzoKICAgICAgICAgT2JqZWN0U3RvcmVDdXJzb3IKICAgICB9OwogCi0gICAgdmlydHVhbCBQYXNz
UmVmUHRyPElEQktleT4ga2V5KCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJ
REJLZXk+IHByaW1hcnlLZXkoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUoKSBjb25zdCA9IDA7Ci0KICAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+LCBFeGNlcHRpb25Db2RlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhZHZh
bmNlKHVuc2lnbmVkIGxvbmcgY291bnQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgRXhjZXB0
aW9uQ29kZSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29udGludWVGdW5jdGlvbihQYXNzUmVm
UHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIEV4Y2VwdGlvbkNvZGUm
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleEJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkluZGV4QmFja2VuZEltcGwuY3BwCmluZGV4IDlmNWZmM2JhZmNhMjU0OTc1YTQzYzQzMGViY2E1
ZTIxODY5MGVjNjYuLmFkNDc5ODFjOWNjMTk5YWQ0MzJlMWZiNDNiNmM2MjcyOGE4MTk5ZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2Vu
ZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4
QmFja2VuZEltcGwuY3BwCkBAIC05OSw4ICs5OSw4IEBAIHZvaWQgSURCSW5kZXhCYWNrZW5kSW1w
bDo6b3BlbkN1cnNvckludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRy
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSZWZQdHI8SURCQ3Vyc29yQmFja2VuZElu
dGVyZmFjZT4gY3Vyc29yID0gSURCQ3Vyc29yQmFja2VuZEltcGw6OmNyZWF0ZShiYWNraW5nU3Rv
cmVDdXJzb3IuZ2V0KCksIGRpcmVjdGlvbiwgY3Vyc29yVHlwZSwgdHJhbnNhY3Rpb24uZ2V0KCks
IGluZGV4LT5tX29iamVjdFN0b3JlQmFja2VuZCk7Ci0gICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3Mo
Y3Vyc29yLnJlbGVhc2UoKSk7CisgICAgUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbXBsPiBjdXJz
b3IgPSBJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y3JlYXRlKGJhY2tpbmdTdG9yZUN1cnNvci5nZXQo
KSwgZGlyZWN0aW9uLCBjdXJzb3JUeXBlLCB0cmFuc2FjdGlvbi5nZXQoKSwgaW5kZXgtPm1fb2Jq
ZWN0U3RvcmVCYWNrZW5kKTsKKyAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhjdXJzb3IsIGN1cnNv
ci0+a2V5KCksIGN1cnNvci0+cHJpbWFyeUtleSgpLCBjdXJzb3ItPnZhbHVlKCkpOwogfQogCiB2
b2lkIElEQkluZGV4QmFja2VuZEltcGw6Om9wZW5DdXJzb3IoUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4gcHJwS2V5UmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IHBycENhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0
cmFuc2FjdGlvblB0ciwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwu
Y3BwCmluZGV4IGI5NjJlOTQ4N2EyMTZmYWM1ODk4ZTBhMDcyZWIwNjViMzY4ZmI1NDUuLjczODY2
M2ZlOTNjOGU0MGI2ODk1NjczYjZmMzQ3MDEyNWY5MjA4ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGwuY3BwCkBAIC01ODUsOCArNTg1LDggQEAgdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJ
bXBsOjpvcGVuQ3Vyc29ySW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3MKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFJlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJm
YWNlPiBjdXJzb3IgPSBJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y3JlYXRlKGJhY2tpbmdTdG9yZUN1
cnNvci5yZWxlYXNlKCksIGRpcmVjdGlvbiwgSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6T2Jq
ZWN0U3RvcmVDdXJzb3IsIHRyYW5zYWN0aW9uLmdldCgpLCBvYmplY3RTdG9yZS5nZXQoKSk7Ci0g
ICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoY3Vyc29yLnJlbGVhc2UoKSk7CisgICAgUmVmUHRyPElE
QkN1cnNvckJhY2tlbmRJbXBsPiBjdXJzb3IgPSBJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y3JlYXRl
KGJhY2tpbmdTdG9yZUN1cnNvci5yZWxlYXNlKCksIGRpcmVjdGlvbiwgSURCQ3Vyc29yQmFja2Vu
ZEludGVyZmFjZTo6T2JqZWN0U3RvcmVDdXJzb3IsIHRyYW5zYWN0aW9uLmdldCgpLCBvYmplY3RT
dG9yZS5nZXQoKSk7CisgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoY3Vyc29yLCBjdXJzb3ItPmtl
eSgpLCBjdXJzb3ItPnByaW1hcnlLZXkoKSwgY3Vyc29yLT52YWx1ZSgpKTsKIH0KIAogdm9pZCBJ
REJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpjb3VudChQYXNzUmVmUHRyPElEQktleVJhbmdlPiBy
YW5nZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IGExZWFm
MjkzMGMxYTFlYjhjMjdiY2VlOGU1MjIwOWU4MjY5ODQzNGUuLjkyMmVkNjQ0ODMzYmJhZmNhNjcx
ZDU2YWJhNzBkNzkxYmFmNWIyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC0yMDAsMTUgKzIwMCwxOSBAQCBQYXNzUmVmUHRyPElE
QkN1cnNvcj4gSURCUmVxdWVzdDo6Z2V0UmVzdWx0Q3Vyc29yKCkKICAgICByZXR1cm4gMDsKIH0K
IAotdm9pZCBJREJSZXF1ZXN0OjpzZXRSZXN1bHRDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3I+
IHBycEN1cnNvcikKK3ZvaWQgSURCUmVxdWVzdDo6c2V0UmVzdWx0Q3Vyc29yKFBhc3NSZWZQdHI8
SURCQ3Vyc29yPiBjdXJzb3IsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURC
S2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUp
CiB7CiAgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsKKyAgICBtX2N1cnNvcktl
eSA9IGtleTsKKyAgICBtX2N1cnNvclByaW1hcnlLZXkgPSBwcmltYXJ5S2V5OworICAgIG1fY3Vy
c29yVmFsdWUgPSB2YWx1ZTsKKwogICAgIGlmIChtX2N1cnNvclR5cGUgPT0gSURCQ3Vyc29yQmFj
a2VuZEludGVyZmFjZTo6SW5kZXhLZXlDdXJzb3IpIHsKLSAgICAgICAgbV9yZXN1bHQgPSBJREJB
bnk6OmNyZWF0ZShwcnBDdXJzb3IpOworICAgICAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRl
KGN1cnNvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3Jlc3VsdCA9IElEQkFu
eTo6Y3JlYXRlKElEQkN1cnNvcldpdGhWYWx1ZTo6ZnJvbUN1cnNvcihwcnBDdXJzb3IpKTsKKyAg
ICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKElEQkN1cnNvcldpdGhWYWx1ZTo6ZnJvbUN1cnNv
cihjdXJzb3IpKTsKIH0KIAogdm9pZCBJREJSZXF1ZXN0OjpmaW5pc2hDdXJzb3IoKQpAQCAtMjQ4
LDcgKzI1Miw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8RE9NU3Ry
aW5nTGlzdD4gZG9tU3RyaW5nTGlzdCkKICAgICBlbnF1ZXVlRXZlbnQoY3JlYXRlU3VjY2Vzc0V2
ZW50KCkpOwogfQogCi12b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1
cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQpCit2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2Vz
cyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQsIFBhc3NSZWZQ
dHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUpCiB7CiAgICAgSURCX1RSQUNFKCJJREJSZXF1
ZXN0OjpvblN1Y2Nlc3MoSURCQ3Vyc29yKSIpOwogICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0g
UEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CkBAIC0yNjIsNyArMjY2LDcgQEAgdm9p
ZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJm
YWNlPiBiYWNrZW5kKQogICAgICAgICBjdXJzb3IgPSBJREJDdXJzb3I6OmNyZWF0ZShiYWNrZW5k
LCBtX2N1cnNvckRpcmVjdGlvbiwgdGhpcywgbV9zb3VyY2UuZ2V0KCksIG1fdHJhbnNhY3Rpb24u
Z2V0KCkpOwogICAgIGVsc2UKICAgICAgICAgY3Vyc29yID0gSURCQ3Vyc29yV2l0aFZhbHVlOjpj
cmVhdGUoYmFja2VuZCwgbV9jdXJzb3JEaXJlY3Rpb24sIHRoaXMsIG1fc291cmNlLmdldCgpLCBt
X3RyYW5zYWN0aW9uLmdldCgpKTsKLSAgICBzZXRSZXN1bHRDdXJzb3IoY3Vyc29yKTsKKyAgICBz
ZXRSZXN1bHRDdXJzb3IoY3Vyc29yLCBrZXksIHByaW1hcnlLZXksIHZhbHVlKTsKIAogICAgIGVu
cXVldWVFdmVudChjcmVhdGVTdWNjZXNzRXZlbnQoKSk7CiB9CkBAIC0zNTksMTUgKzM2MywxNiBA
QCB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gcHJwU2VyaWFsaXplZFNjcmlwdAogICAgIG9uU3VjY2VzcyhzZXJpYWxpemVkU2NyaXB0
VmFsdWUucmVsZWFzZSgpKTsKIH0KIAotdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3NXaXRoQ29u
dGludWF0aW9uKCkKK3ZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5
PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gdmFsdWUpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJSZXF1ZXN0OjpvblN1
Y2Nlc3NXaXRoQ29udGludWF0aW9uIik7CisgICAgSURCX1RSQUNFKCJJREJSZXF1ZXN0OjpvblN1
Y2Nlc3Moa2V5LCBwcmltYXJ5S2V5LCB2YWx1ZSkiKTsKICAgICBBU1NFUlQobV9yZWFkeVN0YXRl
ID09IFBFTkRJTkcgfHwgbV9yZWFkeVN0YXRlID09IERPTkUpOwogICAgIGlmIChtX3JlcXVlc3RB
Ym9ydGVkKQogICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5E
SU5HKTsKICAgICBBU1NFUlQoIW1fZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNzYWdlLmlzTnVsbCgp
ICYmICFtX2Vycm9yICYmICFtX3Jlc3VsdCk7CiAgICAgQVNTRVJUKG1fcGVuZGluZ0N1cnNvcik7
Ci0gICAgc2V0UmVzdWx0Q3Vyc29yKG1fcGVuZGluZ0N1cnNvci5yZWxlYXNlKCkpOworICAgIHNl
dFJlc3VsdEN1cnNvcihtX3BlbmRpbmdDdXJzb3IucmVsZWFzZSgpLCBrZXksIHByaW1hcnlLZXks
IHZhbHVlKTsKICAgICBlbnF1ZXVlRXZlbnQoY3JlYXRlU3VjY2Vzc0V2ZW50KCkpOwogfQogCkBA
IC00MzksNyArNDQ0LDcgQEAgYm9vbCBJREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQ
dHI8RXZlbnQ+IGV2ZW50KQogICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5z
dWNjZXNzRXZlbnQpIHsKICAgICAgICAgY3Vyc29yVG9Ob3RpZnkgPSBnZXRSZXN1bHRDdXJzb3Io
KTsKICAgICAgICAgaWYgKGN1cnNvclRvTm90aWZ5KQotICAgICAgICAgICAgY3Vyc29yVG9Ob3Rp
ZnktPnNldFZhbHVlUmVhZHkoKTsKKyAgICAgICAgICAgIGN1cnNvclRvTm90aWZ5LT5zZXRWYWx1
ZVJlYWR5KG1fY3Vyc29yS2V5LnJlbGVhc2UoKSwgbV9jdXJzb3JQcmltYXJ5S2V5LnJlbGVhc2Uo
KSwgbV9jdXJzb3JWYWx1ZS5yZWxlYXNlKCkpOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBXaGVu
IHdlIGFsbG93IGN1c3RvbSBldmVudCBkaXNwYXRjaGluZywgdGhpcyB3aWxsIHByb2JhYmx5IG5l
ZWQgdG8gY2hhbmdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5oCmluZGV4IGFhOWIzZjU4ZTljYTJhNjg1YTEzMjk1YzMyOTFmNmIyNWNmZDVmNjMuLmM1
M2Q5MWVhOTdmYjA0NGQ3ZDRhMDhhMzUxNTk1YjVlYjc3MmUyYmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKQEAgLTgyLDEyICs4MiwxMiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVy
cm9yPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPERPTVN0cmluZ0xp
c3Q+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VC
YWNrZW5kSW50ZXJmYWNlPik7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRy
PElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNz
KFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4sIFBhc3NSZWZQdHI8SURCS2V5
PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4p
OwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+KTsKICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPElEQktleT4sIGNvbnN0IElEQktleVBh
dGgmKTsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpOworICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElE
QktleT4sIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiAgICAgdmlydHVhbCB2
b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYs
IGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+ID4mKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9IC8vIE5vdCBp
bXBsZW1lbnRlZC4gQ2FsbGJhY2sgc2hvdWxkIG5vdCByZWFjaCB0aGUgcmVuZGVyZXIgc2lkZS4K
ICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCk7CiAKQEAgLTEyMSw3ICsxMjEsNyBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEo
KTsKIAogICAgIFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBnZXRSZXN1bHRDdXJzb3IoKTsKLSAgICB2
b2lkIHNldFJlc3VsdEN1cnNvcihQYXNzUmVmUHRyPElEQkN1cnNvcj4pOworICAgIHZvaWQgc2V0
UmVzdWx0Q3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29yPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQ
YXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiAK
ICAgICBSZWZQdHI8SURCQW55PiBtX3NvdXJjZTsKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb24+
IG1fdHJhbnNhY3Rpb247CkBAIC0xMzYsNiArMTM2LDkgQEAgcHJpdmF0ZToKICAgICBJREJDdXJz
b3JCYWNrZW5kSW50ZXJmYWNlOjpDdXJzb3JUeXBlIG1fY3Vyc29yVHlwZTsKICAgICBJREJDdXJz
b3I6OkRpcmVjdGlvbiBtX2N1cnNvckRpcmVjdGlvbjsKICAgICBSZWZQdHI8SURCQ3Vyc29yPiBt
X3BlbmRpbmdDdXJzb3I7CisgICAgUmVmUHRyPElEQktleT4gbV9jdXJzb3JLZXk7CisgICAgUmVm
UHRyPElEQktleT4gbV9jdXJzb3JQcmltYXJ5S2V5OworICAgIFJlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IG1fY3Vyc29yVmFsdWU7CiAKICAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRh
cmdldERhdGE7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckluZGV4ZWREQkFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbmRleGVkREJBZ2VudC5jcHAKaW5kZXggMGZkYWNhNmUyOWUzODQ4Y2ZlNzE3MjBjMjk5NTJj
YjczNDFlODg1OC4uNjM2MDcxM2UzNWQyMDNlZDNkODJjMTE1YmNmMGJmNzE1N2FhN2RjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdl
bnQuY3BwCkBAIC0xMDcsMTMgKzEwNywxMyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQg
b25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KSBPVkVSUklERSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4pIE9WRVJSSURF
IHsgfQotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNr
ZW5kSW50ZXJmYWNlPikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQ
YXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+LCBQYXNzUmVmUHRyPElEQktleT4s
IFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KSBP
VkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VCYWNrZW5kSW50ZXJmYWNlPikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9u
U3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KSBP
VkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vz
cyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8SURCS2V5Piwg
Y29uc3QgSURCS2V5UGF0aCYpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3NXaXRoQ29udGludWF0aW9uKCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2VzcyhQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+KSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25T
dWNjZXNzV2l0aFByZWZldGNoKGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiwgY29uc3Qg
VmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mLCBjb25zdCBWZWN0b3I8UmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gPiYpIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQo
KSBPVkVSUklERSB7IH0KIH07CkBAIC00ODksMTMgKzQ4OSwxMyBAQCBwdWJsaWM6CiAgICAgICAg
IGVuZChmYWxzZSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVm
UHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGlkYkN1cnNvcikKKyAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gaWRiQ3Vy
c29yLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtl
eSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlKQogICAgIHsKICAgICAg
ICAgbV9pZGJDdXJzb3IgPSBpZGJDdXJzb3I7Ci0gICAgICAgIG9uU3VjY2Vzc1dpdGhDb250aW51
YXRpb24oKTsKKyAgICAgICAgb25TdWNjZXNzKGtleSwgcHJpbWFyeUtleSwgdmFsdWUpOwogICAg
IH0KIAotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCkKKyAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8
SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFs
dWUpCiAgICAgewogICAgICAgICBpZiAobV9za2lwQ291bnQpIHsKICAgICAgICAgICAgIC0tbV9z
a2lwQ291bnQ7CkBAIC01MDgsOSArNTA4LDYgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKLSAgICAgICAgUmVmUHRyPElEQktleT4ga2V5ID0gbV9pZGJDdXJzb3It
PmtleSgpOwotICAgICAgICBSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5ID0gbV9pZGJDdXJzb3It
PnByaW1hcnlLZXkoKTsKLSAgICAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFs
dWUgPSBtX2lkYkN1cnNvci0+dmFsdWUoKTsKICAgICAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpS
dW50aW1lOjpSZW1vdGVPYmplY3Q+IHdyYXBwZWRWYWx1ZSA9IG1faW5qZWN0ZWRTY3JpcHQud3Jh
cFNlcmlhbGl6ZWRPYmplY3QodmFsdWUuZ2V0KCksIFN0cmluZygpKTsKICAgICAgICAgUmVmUHRy
PERhdGFFbnRyeT4gZGF0YUVudHJ5ID0gRGF0YUVudHJ5OjpjcmVhdGUoKQogICAgICAgICAgICAg
LnNldEtleShrZXlGcm9tSURCS2V5KGtleS5nZXQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCmluZGV4IGE2M2MwYmM5ZWU2YzRjYWYyZDY3
ZDk1ZTVkMDBhMTFjOWZjZDgyOWQuLjdlY2VhNDYzMzQ0OTEwZTVhNGM2NGVjYTc3Yzc2ZjVjZWNi
Y2FhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNh
bGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxi
YWNrcy5oCkBAIC01MCwxMyArNTAsMTMgQEAgcHVibGljOgogICAgIC8vIEZvciB0aGUgcmVzdCwg
cGFzcyBvd25lcnNoaXAgdG8gdGhlIGNhbGxlZSB2aWEgYSBwb2ludGVyLgogICAgIHZpcnR1YWwg
dm9pZCBvbkVycm9yKGNvbnN0IFdlYklEQkRhdGFiYXNlRXJyb3ImKSB7IFdFQktJVF9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViRE9N
U3RyaW5nTGlzdCYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVh
bCB2b2lkIG9uU3VjY2VzcyhXZWJJREJDdXJzb3IqKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCQ3Vyc29yKiwgY29uc3Qg
V2ViSURCS2V5JiwgY29uc3QgV2ViSURCS2V5JiwgY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZh
bHVlJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKFdlYklEQkRhdGFiYXNlKikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7
IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYklEQktleSYpIHsgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJ
REJUcmFuc2FjdGlvbiopIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmKSB7IFdF
QktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3Mo
Y29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiwgY29uc3QgV2ViSURCS2V5JiwgY29uc3Qg
V2ViSURCS2V5UGF0aCYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmly
dHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKSB7IFdFQktJVF9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViSURCS2V5
JiwgY29uc3QgV2ViSURCS2V5JiwgY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJikgeyBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2Vk
KCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25T
dWNjZXNzV2l0aFByZWZldGNoKGNvbnN0IFdlYlZlY3RvcjxXZWJJREJLZXk+JiBrZXlzLCBjb25z
dCBXZWJWZWN0b3I8V2ViSURCS2V5PiYgcHJpbWFyeUtleXMsIGNvbnN0IFdlYlZlY3RvcjxXZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+JiB2YWx1ZXMpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
SURCQ3Vyc29yLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDdXJzb3Iu
aAppbmRleCBkZmFkMTkzODM1YTYwN2JkOWQ0MzExY2ViZTI5MDMwZDgxZGM4YmFiLi42MzViMjg4
MzAyYjY5NjNjMWZmOGZlYzdmNTViNWJiNWM5NTNlNmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDdXJzb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJREJDdXJzb3IuaApAQCAtNDAsMjIgKzQwLDYgQEAgY2xhc3MgV2Vi
SURCQ3Vyc29yIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJJREJDdXJzb3IoKSB7IH0KIAot
ICAgIHZpcnR1YWwgV2ViSURCS2V5IGtleSgpIGNvbnN0Ci0gICAgewotICAgICAgICBXRUJLSVRf
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBXZWJJREJLZXk6OmNyZWF0ZUlu
dmFsaWQoKTsKLSAgICB9Ci0gICAgdmlydHVhbCBXZWJJREJLZXkgcHJpbWFyeUtleSgpIGNvbnN0
Ci0gICAgewotICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJl
dHVybiBXZWJJREJLZXk6OmNyZWF0ZUludmFsaWQoKTsKLSAgICB9Ci0gICAgdmlydHVhbCBXZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUgdmFsdWUoKSBjb25zdAotICAgIHsKLSAgICAgICAgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gV2ViU2VyaWFsaXplZFNjcmlw
dFZhbHVlKCk7Ci0gICAgfQotCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZShjb25zdCBXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWUmLCBXZWJJREJDYWxsYmFja3MqLCBXZWJFeGNlcHRpb25Db2RlJikg
eyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgYWR2YW5j
ZSh1bnNpZ25lZCBsb25nLCBXZWJJREJDYWxsYmFja3MqLCBXZWJFeGNlcHRpb25Db2RlJikgeyBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgY29udGludWVG
dW5jdGlvbihjb25zdCBXZWJJREJLZXkmLCBXZWJJREJDYWxsYmFja3MqLCBXZWJFeGNlcHRpb25D
b2RlJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcAppbmRleCBhNTQ0MTg5YjY2OGY0
NGVkODE0ZDRjNzIyODA3MTQwM2MyN2I5N2NkLi5hZTAxY2E1YjQyNTI4NzA4NTU1MTMzYTgxOWRm
YjdmNWU1ZTczM2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJD
YWxsYmFja3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2Fs
bGJhY2tzUHJveHkuY3BwCkBAIC02NCw5ICs2NCw5IEBAIHZvaWQgSURCQ2FsbGJhY2tzUHJveHk6
Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBpZGJEYXRhYmFzZUVycm9yKQog
ICAgIG1fY2FsbGJhY2tzLT5vbkVycm9yKFdlYklEQkRhdGFiYXNlRXJyb3IoaWRiRGF0YWJhc2VF
cnJvcikpOwogfQogCi12b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoUGFzc1JlZlB0
cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBpZGJDdXJzb3JCYWNrZW5kKQordm9pZCBJREJD
YWxsYmFja3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVy
ZmFjZT4gaWRiQ3Vyc29yQmFja2VuZCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0
cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2
YWx1ZSkKIHsKLSAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKG5ldyBXZWJJREJDdXJzb3JJbXBs
KGlkYkN1cnNvckJhY2tlbmQpKTsKKyAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKG5ldyBXZWJJ
REJDdXJzb3JJbXBsKGlkYkN1cnNvckJhY2tlbmQpLCBrZXksIHByaW1hcnlLZXksIHZhbHVlKTsK
IH0KIAogdm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQpAQCAtOTgsOSArOTgsMTAgQEAgdm9pZCBJ
REJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBzZXJpYWxpemVkU2MKIHsKICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKHNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSwga2V5LCBrZXlQYXRoKTsKIH0KLXZvaWQgSURCQ2FsbGJhY2tzUHJveHk6
Om9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKQorCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5Ojpv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1h
cnlLZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSkKIHsKLSAgICBt
X2NhbGxiYWNrcy0+b25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpOworICAgIG1fY2FsbGJhY2tz
LT5vblN1Y2Nlc3Moa2V5LCBwcmltYXJ5S2V5LCB2YWx1ZSk7CiB9CiAKIHZvaWQgSURCQ2FsbGJh
Y2tzUHJveHk6Om9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktl
eT4gPiYga2V5cywgY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mIHByaW1hcnlLZXlzLCBj
b25zdCBWZWN0b3I8UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYgdmFsdWVzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKaW5kZXggZGIz
MDU2NTUwYjJiMmUxN2UyZTMwZGRlZjc5ZTlkZDI5YzI1ZmZiZC4uOGJiNzFiZjUzZDljZWMwMzll
N2IzZmI0OWFjNTU3YmNiM2U5YjE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJDYWxsYmFja3NQcm94eS5oCkBAIC00NywxMyArNDcsMTMgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB2b2lkIG9uRXJyb3IoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUVycm9y
Pik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6OkRPTVN0
cmluZ0xpc3Q+KTsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4pOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiAgICAgdmlydHVhbCB2b2lk
IG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJL
ZXk+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vz
cyhQYXNzUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFs
dWU+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIGNvbnN0IFdlYkNvcmU6OklEQktleVBh
dGgmKTsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpOworICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQYXNz
UmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNj
cmlwdFZhbHVlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25z
dCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OklEQktleT4gPiYga2V5cywgY29uc3QgVmVjdG9yPFJl
ZlB0cjxXZWJDb3JlOjpJREJLZXk+ID4mIHByaW1hcnlLZXlzLCBjb25zdCBWZWN0b3I8UmVmUHRy
PFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYgdmFsdWVzKTsKICAgICB2aXJ0dWFs
IHZvaWQgb25CbG9ja2VkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkN1cnNvckJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJDdXJzb3JCYWNrZW5kUHJveHkuY3BwCmluZGV4IGNhMzkwYmE5MDc0MjdlMDhmZDQ3OGJi
OTVjZjllMmM0MTZjZDJmZmIuLjJhNWY3MDQwYWMxMWYwZTRmNjI3MWUwOGRiYTU4NTM5NDc0ZDMx
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNvckJhY2tl
bmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ3Vyc29yQmFj
a2VuZFByb3h5LmNwcApAQCAtNTQsMjEgKzU0LDYgQEAgSURCQ3Vyc29yQmFja2VuZFByb3h5Ojp+
SURCQ3Vyc29yQmFja2VuZFByb3h5KCkKIHsKIH0KIAotUGFzc1JlZlB0cjxJREJLZXk+IElEQkN1
cnNvckJhY2tlbmRQcm94eTo6a2V5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pZGJDdXJzb3It
PmtleSgpOwotfQotCi1QYXNzUmVmUHRyPElEQktleT4gSURCQ3Vyc29yQmFja2VuZFByb3h5Ojpw
cmltYXJ5S2V5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pZGJDdXJzb3ItPnByaW1hcnlLZXko
KTsKLX0KLQotUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IElEQkN1cnNvckJhY2tl
bmRQcm94eTo6dmFsdWUoKSBjb25zdAotewotICAgIHJldHVybiBtX2lkYkN1cnNvci0+dmFsdWUo
KTsKLX0KLQogdm9pZCBJREJDdXJzb3JCYWNrZW5kUHJveHk6OnVwZGF0ZShQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxs
YmFja3MsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIG1faWRiQ3Vyc29yLT51cGRhdGUodmFs
dWUsIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksIGVjKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNvckJhY2tlbmRQcm94eS5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5LmgKaW5kZXggOWU0
YjU3MDA4MTI2ZjM5NmNkMTRmNjMzYzZhM2E0MWQ2YjU5MDI4NS4uZTk1MzNmYjQ4YjBjOTkzMGRl
NWQwNmEzNzhmNzdkZDA5YTI4NjNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5LmgKQEAgLTQyLDkgKzQyLDYgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+
IGNyZWF0ZShQYXNzT3duUHRyPFdlYklEQkN1cnNvcj4pOwogICAgIHZpcnR1YWwgfklEQkN1cnNv
ckJhY2tlbmRQcm94eSgpOwogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktl
eT4ga2V5KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4g
cHJpbWFyeUtleSgpIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZShQYXNzUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8
V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwogICAgIHZp
cnR1YWwgdm9pZCBhZHZhbmNlKHVuc2lnbmVkIGxvbmcsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURC
Q2FsbGJhY2tzPiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBj
b250aW51ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpJREJDYWxsYmFja3M+LCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCmluZGV4
IDViNWFlZGY3Y2NiMzdlMjQ5YzUzYzFhZjllOGVjOGVkOWIwZTZlMTIuLjA4M2RiY2NiZTI2NzVm
MjA5OWI1MzU1N2Y0MDE2OGUzZTA4M2Q3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCkBAIC02NSw5ICs2NSw5IEBAIHZvaWQg
V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKGNvbnN0IFdlYkRPTVN0cmluZ0xpc3QmIGRv
bVN0cmluZ0xpc3QpCiAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2Vzcyhkb21TdHJpbmdMaXN0KTsK
IH0KIAotdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoV2ViSURCQ3Vyc29yKiBj
dXJzb3IpCit2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhXZWJJREJDdXJzb3Iq
IGN1cnNvciwgY29uc3QgV2ViSURCS2V5JiBrZXksIGNvbnN0IFdlYklEQktleSYgcHJpbWFyeUtl
eSwgY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiB2YWx1ZSkKIHsKLSAgICBtX2NhbGxi
YWNrcy0+b25TdWNjZXNzKElEQkN1cnNvckJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGN1
cnNvcikpKTsKKyAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKElEQkN1cnNvckJhY2tlbmRQcm94
eTo6Y3JlYXRlKGFkb3B0UHRyKGN1cnNvcikpLCBrZXksIHByaW1hcnlLZXksIHZhbHVlKTsKIH0K
IAogdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoV2ViSURCRGF0YWJhc2UqIHdl
YktpdEluc3RhbmNlKQpAQCAtOTUsOSArOTUsOSBAQCB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6
Om9uU3VjY2Vzcyhjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIHNlcmlhbGl6ZWRTYwog
ICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Moc2VyaWFsaXplZFNjcmlwdFZhbHVlLCBrZXksIGtl
eVBhdGgpOwogfQogCi12b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2Vzc1dpdGhDb250
aW51YXRpb24oKQordm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoY29uc3QgV2Vi
SURCS2V5JiBrZXksIGNvbnN0IFdlYklEQktleSYgcHJpbWFyeUtleSwgY29uc3QgV2ViU2VyaWFs
aXplZFNjcmlwdFZhbHVlJiB2YWx1ZSkKIHsKLSAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzV2l0
aENvbnRpbnVhdGlvbigpOworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Moa2V5LCBwcmltYXJ5
S2V5LCB2YWx1ZSk7CiB9CiAKIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25CbG9ja2VkKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0lt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaApp
bmRleCA3YjAyMTYzNTlkNTZkODE4Njk1ZmU5NzNhMDE4MmFmYjUxMjUwMTYxLi5lZGY5Zjg2N2Qy
NGQwYjBiMjBiNGNhYTQzYzE5Y2NkZWE0NjRlNGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCkBAIC00MywxMyArNDMsMTMgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoY29uc3QgV2ViSURCRGF0YWJhc2VFcnJv
ciYpOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViRE9NU3RyaW5nTGlzdCYp
OwotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCQ3Vyc29yKik7CisgICAgdmlydHVh
bCB2b2lkIG9uU3VjY2VzcyhXZWJJREJDdXJzb3IqLCBjb25zdCBXZWJJREJLZXkmLCBjb25zdCBX
ZWJJREJLZXkmLCBjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmKTsKICAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKFdlYklEQkRhdGFiYXNlKik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2Vzcyhjb25zdCBXZWJJREJLZXkmKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklE
QlRyYW5zYWN0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdl
YlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYsIGNvbnN0IFdlYklEQktleSYsIGNvbnN0IFdlYklEQktl
eVBhdGgmKTsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpOwor
ICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViSURCS2V5JiwgY29uc3QgV2ViSURC
S2V5JiwgY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJik7CiAgICAgdmlydHVhbCB2b2lk
IG9uQmxvY2tlZCgpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJDdXJzb3JJbXBsLmNwcAppbmRleCBlOWMwZTA0YWYwMzczMjRjNDE2NGMzYzVhMTJj
ZDFiN2ExZmIxY2U4Li4wZjJiODczNGE3MWEyNDM2OWYyODViNGNlMjk4ZGVmODg3Y2JjMGQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmNwcApA
QCAtNDcsMjEgKzQ3LDYgQEAgV2ViSURCQ3Vyc29ySW1wbDo6fldlYklEQkN1cnNvckltcGwoKQog
ewogfQogCi1XZWJJREJLZXkgV2ViSURCQ3Vyc29ySW1wbDo6a2V5KCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV9pZGJDdXJzb3JCYWNrZW5kLT5rZXkoKTsKLX0KLQotV2ViSURCS2V5IFdlYklEQkN1
cnNvckltcGw6OnByaW1hcnlLZXkoKSBjb25zdAotewotICAgIHJldHVybiBtX2lkYkN1cnNvckJh
Y2tlbmQtPnByaW1hcnlLZXkoKTsKLX0KLQotV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIFdlYklE
QkN1cnNvckltcGw6OnZhbHVlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pZGJDdXJzb3JCYWNr
ZW5kLT52YWx1ZSgpOwotfQotCiB2b2lkIFdlYklEQkN1cnNvckltcGw6OnVwZGF0ZShjb25zdCBX
ZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIHZhbHVlLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNr
cywgV2ViRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgbV9pZGJDdXJzb3JCYWNrZW5kLT51cGRh
dGUodmFsdWUsIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSks
IGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNv
ckltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuaApp
bmRleCBmMGQzODdiNjIxOTc2ODdhODE2YWQxZGM3NTU1Y2RjMjdlZmJhZmM1Li43MmEyNmE4Yjg3
Mzk2NTUwMjhmZmY2M2I5MDJhZDJlNDJhMzllOGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5oCkBAIC00NCw5ICs0NCw2IEBAIHB1YmxpYzoKICAg
ICBXZWJJREJDdXJzb3JJbXBsKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDdXJzb3JCYWNr
ZW5kSW50ZXJmYWNlPik7CiAgICAgdmlydHVhbCB+V2ViSURCQ3Vyc29ySW1wbCgpOwogCi0gICAg
dmlydHVhbCBXZWJJREJLZXkga2V5KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBXZWJJREJLZXkgcHJp
bWFyeUtleSgpIGNvbnN0OwotICAgIHZpcnR1YWwgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIHZh
bHVlKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZShjb25zdCBXZWJTZXJpYWxpemVk
U2NyaXB0VmFsdWUmLCBXZWJJREJDYWxsYmFja3MqLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAg
dmlydHVhbCB2b2lkIGFkdmFuY2UodW5zaWduZWQgbG9uZywgV2ViSURCQ2FsbGJhY2tzKiwgV2Vi
RXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZUZ1bmN0aW9uKGNvbnN0
IFdlYklEQktleSYsIFdlYklEQkNhbGxiYWNrcyosIFdlYkV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0
LmNwcAppbmRleCBmNTNhZDUwZDFkNjc4YmUyNjQxMGVkODQwZTNmN2E1MmE3NzY4NzFhLi5iODFj
MWUwMDA5MWRmM2M0YjcyZmJmMGI0MDYzN2I2ZDZjNjQwOTZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCkBAIC00
OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV93YXNFcnJvckNhbGxlZCA9IHRydWU7CiAg
ICAgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0
PikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJh
Y2tlbmRJbnRlcmZhY2U+KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQ
dHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1Jl
ZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2U+KQogICAgIHsKICAgICAgICAgRVhQRUNUX1RSVUUoZmFsc2UpOwpAQCAtNTgsNyArNTgs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0
cjxJREJLZXk+LCBjb25zdCBJREJLZXlQYXRoJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2Vzc1dpdGhDb250aW51YXRpb24oKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBh
c3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4pIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aFByZWZl
dGNoKGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxJ
REJLZXk+ID4mLCBjb25zdCBWZWN0b3I8UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKSB7IH0KIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0
LmNwcAppbmRleCBlYjNjODVhYmNmZDVmOTU5NTQyNDVmMDEwZjQ2ZmI3MWE1ODVkNWM4Li43MzM1
YjNmZjI5MjExNTk2ZjkxMjBiMGJmMTVmMTQ4MWNiOGJmM2U5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKQEAg
LTc2LDcgKzc2LDcgQEAgcHVibGljOgogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihQ
YXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4pIE9WRVJSSURFIHsgfQotICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJm
YWNlPikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRy
PElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQ
dHI8SURCS2V5PiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KSBPVkVSUklERSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlPikgT1ZFUlJJREUKICAgICB7CiAgICAgICAgIG1fd2FzU3VjY2Vzc0RCQ2Fs
bGVkID0gdHJ1ZTsKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KSBPVkVS
UklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgY29u
c3QgSURCS2V5UGF0aCYpIE9WRVJSSURFIHsgfTsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNz
V2l0aENvbnRpbnVhdGlvbigpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPikgT1ZFUlJJREUgeyB9OwogICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mLCBjb25zdCBW
ZWN0b3I8UmVmUHRyPElEQktleT4gPiYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiA+JikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgp
IE9WRVJSSURFIHsgfQogcHJpdmF0ZToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154738</attachid>
            <date>2012-07-26 13:36:35 -0700</date>
            <delta_ts>2012-07-26 15:14:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92278-20120726133624.patch</filename>
            <type>text/plain</type>
            <size>37879</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTNhNzVlZGZlN2ZlY2Fk
Y2FjOGU2YTYzOGZiYjEzMTQ5NjdkOWQzOC4uZDE3NmYzNWUxODFjMTgxMmJjNjI3NDM5M2U4MGVk
YzJjNjQ0ODI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA3LTI2ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBQYXNz
IGN1cnNvciBjb250aW51ZSByZXN1bHRzIGJhY2sgaW4gY2FsbGJhY2sKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjc4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcGx5IHRoZSB1cGRhdGVkIGN1cnNv
ciBrZXkvcHJpbWFyeUtleS92YWx1ZSBpbiB0aGUgc3VjY2VzcyBjYWxsYmFjaywKKyAgICAgICAg
cmF0aGVyIHRoYW4gZm9yY2luZyB0aGUgY2FsbGVlIHRvIG1ha2UgdGhyZWUgY2FsbHMgaW50byB0
aGUgYmFjayBlbmQgdG8KKyAgICAgICAgZmV0Y2ggdGhlbS4gQ2FsbGJhY2tzIG9uU3VjY2Vzcyhj
dXJzb3IpIGFuZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCkKKyAgICAgICAgYXJlIGdpdmVu
IHRoZSB0aHJlZSBuZXcgcGF5bG9hZCBwYXJhbWV0ZXJzIChhbmQgdGhlIGxhdHRlciBpcyByZW5h
bWVkLikKKworICAgICAgICBObyBuZXcgdGVzdHMgLSBubyBiZWhhdmlvcmFsIGNoYW5nZXMuCisK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaDogVXBkYXRlZCBjYWxs
YmFja3MuCisgICAgICAgIChJREJDYWxsYmFja3MpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OnNldFZhbHVl
UmVhZHkpOiBUYWtlcyB2YWx1ZXMgcmF0aGVyIHRoYW4gZmV0Y2hpbmcgdGhlbS4KKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaDoKKyAgICAgICAgKElEQkN1cnNvcik6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwOiBEZWxl
dGUgYWNjZXNzb3JzLgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6OmFk
dmFuY2VJbnRlcm5hbCk6IFBhc3MgYWxvbmcgdXBkYXRlZCBjdXJzb3Igc3RhdGUuCisgICAgICAg
IChXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y29udGludWVGdW5jdGlvbkludGVybmFs
KTogRGl0dG8uCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZElt
cGwuaDoKKyAgICAgICAgKElEQkN1cnNvckJhY2tlbmRJbXBsKTogRGVsZXRlIGFjY2Vzc29ycyBm
cm9tIGludGVyZmFjZS4uLgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6
OmtleSk6IC4uLmJ1dCBrZWVwIHRoZW0gZm9yIHVzZSB3aXRoaW4gYmFjay1lbmQuCisgICAgICAg
IChXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6cHJpbWFyeUtleSk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6dmFsdWUpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaDogRGVsZXRlIGFjY2Vzc29ycy4K
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkluZGV4QmFja2VuZEltcGw6Om9wZW5DdXJzb3JJbnRlcm5hbCk6
IFBhc3MgYWxvbmcgbmV3IGN1cnNvciBzdGF0ZS4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9i
amVjdFN0b3JlQmFja2VuZEltcGw6Om9wZW5DdXJzb3JJbnRlcm5hbCk6IERpdHRvLgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCUmVxdWVzdDo6c2V0UmVzdWx0Q3Vyc29yKTogU3Rhc2ggdXBkYXRlZCBjdXJzb3Igc3RhdGUg
dW50aWwgZGlzcGF0Y2guCisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3Mp
OgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudCk6IFVwZGF0ZSBj
dXJzb3Igd2l0aCBuZXcgc3RhdGUuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5oOgorICAgICAgICAoSURCUmVxdWVzdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckluZGV4ZWREQkFnZW50LmNwcDogVXBkYXRlIGl0ZXJhdGlvbiBjb2RlIHRvIHVzZSBuZXcg
Y2FsbGJhY2tzLgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDctMjQgIFNoYXduIFNpbmdo
ICA8c2hhd25zaW5naEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBSZWZhY3Rv
ciBDQ0xheWVyVHJlZUhvc3RDb21tb246IG1vdmUgcm9vdCBsYXllciBzcGVjaWFsIGNhc2UgaW5p
dGlhbGl6YXRpb24gaW50byBpbnRlcm5hbCBjb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpp
bmRleCAyN2I1NTJiZTRkODFhMmIzYTZjZmJiMGRiYzE2NjA1M2E4ZGQ0NjNlLi44OWIwOTEwYmRh
MzgxMTAzNGE4YTExMDExYzk3OTU4ZTU0M2M3NDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTA3LTI2ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBQYXNzIGN1cnNvciBjb250aW51ZSByZXN1
bHRzIGJhY2sgaW4gY2FsbGJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTkyMjc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3VwcGx5IHRoZSB1cGRhdGVkIGN1cnNvciBrZXkvcHJpbWFyeUtleS92YWx1
ZSBpbiB0aGUgc3VjY2VzcyBjYWxsYmFjaywKKyAgICAgICAgcmF0aGVyIHRoYW4gZm9yY2luZyB0
aGUgY2FsbGVlIHRvIG1ha2UgdGhyZWUgY2FsbHMgaW50byB0aGUgYmFjayBlbmQgdG8KKyAgICAg
ICAgZmV0Y2ggdGhlbS4gQ2FsbGJhY2tzIG9uU3VjY2VzcyhjdXJzb3IpIGFuZCBvblN1Y2Nlc3NX
aXRoQ29udGludWF0aW9uKCkKKyAgICAgICAgYXJlIGdpdmVuIHRoZSB0aHJlZSBuZXcgcGF5bG9h
ZCBwYXJhbWV0ZXJzIChhbmQgdGhlIGxhdHRlciBpcyByZW5hbWVkLikKKworICAgICAgICAqIHB1
YmxpYy9XZWJJREJDYWxsYmFja3MuaDoKKyAgICAgICAgKFdlYklEQkNhbGxiYWNrcyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrczo6b25TdWNjZXNzKTogUmVwbGFjZSB3aXRoIG5v
LW9wIHN0dWIuCisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrczo6b25TdWNjZXNzV2l0
aENvbnRpbnVhdGlvbik6IERpdHRvLgorICAgICAgICAqIHB1YmxpYy9XZWJJREJDdXJzb3IuaDoK
KyAgICAgICAgKFdlYklEQkN1cnNvcik6IE1ldGhvZHMgY2FuIGJlIHJlbW92ZWQgb25jZSBDaHJv
bWl1bSBpcyBjbGVhbmVkIHVwLgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5jcHA6
IFVwZGF0ZWQgY2FsbGJhY2tzLgorICAgICAgICAoV2ViS2l0OjpJREJDYWxsYmFja3NQcm94eTo6
b25TdWNjZXNzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0lEQkNhbGxiYWNr
c1Byb3h5Lmg6IFVwZGF0ZWQgY2FsbGJhY2tzLgorICAgICAgICAoSURCQ2FsbGJhY2tzUHJveHkp
OgorICAgICAgICAqIHNyYy9JREJDdXJzb3JCYWNrZW5kUHJveHkuY3BwOiBSZW1vdmUgYmFjayBl
bmQgYWNjZXNzb3JzLgorICAgICAgICAqIHNyYy9JREJDdXJzb3JCYWNrZW5kUHJveHkuaDoKKyAg
ICAgICAgKElEQkN1cnNvckJhY2tlbmRQcm94eSk6CisgICAgICAgICogc3JjL1dlYklEQkNhbGxi
YWNrc0ltcGwuY3BwOiBVcGRhdGVkIGNhbGxiYWNrcy4KKyAgICAgICAgKFdlYktpdDo6V2ViSURC
Q2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKToKKyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tz
SW1wbC5oOiBVcGRhdGVkIGNhbGxiYWNrcy4KKyAgICAgICAgKFdlYklEQkNhbGxiYWNrc0ltcGwp
OgorICAgICAgICAqIHNyYy9XZWJJREJDdXJzb3JJbXBsLmNwcDogUmVtb3ZlIGJhY2sgZW5kIGFj
Y2Vzc29ycy4KKyAgICAgICAgKiBzcmMvV2ViSURCQ3Vyc29ySW1wbC5oOiBSZW1vdmUgYmFjayBl
bmQgYWNjZXNzb3JzLgorICAgICAgICAoV2ViSURCQ3Vyc29ySW1wbCk6CisgICAgICAgICogdGVz
dHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcDogVXBkYXRlIHRlc3Qgc3R1YnMuCisgICAgICAg
IChXZWJDb3JlOjpNb2NrSURCQ2FsbGJhY2tzOjpvblN1Y2Nlc3MpOgorICAgICAgICAqIHRlc3Rz
L0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwOiBEaXR0by4KKwogMjAxMi0wNy0yNCAgU2hhd24g
U2luZ2ggIDxzaGF3bnNpbmdoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFJl
ZmFjdG9yIENDTGF5ZXJUcmVlSG9zdENvbW1vbjogbW92ZSByb290IGxheWVyIHNwZWNpYWwgY2Fz
ZSBpbml0aWFsaXphdGlvbiBpbnRvIGludGVybmFsIGNvZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCmluZGV4IDg1M2ZmYzcyZDI2MDM5MWZj
YzQzNjY0ZDU3M2ZjNWRhZTMwMmRjMGYuLjE4YzljMmFhOTU4ZWM1OGU5ZTU3ZDJhZDAyZmM3YWJl
MWFiMDBhZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkNhbGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkNh
bGxiYWNrcy5oCkBAIC01MSwxMyArNTEsMTMgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lk
IG9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PikgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNr
ZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4sIFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4pID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgY29uc3Qg
SURCS2V5UGF0aCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aENvbnRpbnVh
dGlvbigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5
PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4p
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aFByZWZldGNoKGNvbnN0IFZlY3Rv
cjxSZWZQdHI8SURCS2V5PiA+JiBrZXlzLCBjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYg
cHJpbWFyeUtleXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiA+
JiB2YWx1ZXMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCkgPSAwOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCmluZGV4IGVm
MzRjYjhjN2ZiNzYzNjE4NDEyMmIzY2I4MzZkMjQ4ZDIxZWI5MzAuLmI2ODg3YzNiMzk4ZTIzZThh
YTJiNjc0NGRmOGFiMDQ4OTQ3MTZjM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yLmNwcApAQCAtMjUzLDEyICsyNTMsMTIgQEAgdm9pZCBJREJDdXJz
b3I6OmNsb3NlKCkKICAgICBtX3JlcXVlc3QuY2xlYXIoKTsKIH0KIAotdm9pZCBJREJDdXJzb3I6
OnNldFZhbHVlUmVhZHkoKQordm9pZCBJREJDdXJzb3I6OnNldFZhbHVlUmVhZHkoUGFzc1JlZlB0
cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBwcnBWYWx1ZSkKIHsKLSAgICBtX2N1cnJlbnRLZXkgPSBt
X2JhY2tlbmQtPmtleSgpOwotICAgIG1fY3VycmVudFByaW1hcnlLZXkgPSBtX2JhY2tlbmQtPnBy
aW1hcnlLZXkoKTsKKyAgICBtX2N1cnJlbnRLZXkgPSBrZXk7CisgICAgbV9jdXJyZW50UHJpbWFy
eUtleSA9IHByaW1hcnlLZXk7CiAKLSAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2
YWx1ZSA9IG1fYmFja2VuZC0+dmFsdWUoKTsKKyAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiB2YWx1ZSA9IHBycFZhbHVlOwogI2lmbmRlZiBOREVCVUcKICAgICBpZiAoIWlzS2V5Q3Vy
c29yKCkpIHsKICAgICAgICAgLy8gRklYTUU6IEFjdHVhbGx5IGluamVjdCB0aGUgcHJpbWFyeUtl
eSBhdCB0aGUga2V5UGF0aC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkN1cnNvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmgKaW5kZXggZmQ0NmNiYmNhMDdmNGYzMjMzNzI3MmZmNGNlNjEzYTZlNTI4MTg0MS4u
NmE5MWJkNmZlNzczMmRiNTUzMTVlMDcxYWMxNzI1NDVhMjc4YmUzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBwb3N0U3VjY2Vzc0hhbmRsZXJDYWxsYmFjaygpOwogICAgIHZvaWQg
Y2xvc2UoKTsKLSAgICB2b2lkIHNldFZhbHVlUmVhZHkoKTsKKyAgICB2b2lkIHNldFZhbHVlUmVh
ZHkoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPik7CiAKICAgICAvLyBUaGUgc3BlYyByZXF1aXJlcyB0aGF0IHRo
ZSBzY3JpcHQgb2JqZWN0IHRoYXQgd3JhcHMgdGhlIHZhbHVlCiAgICAgLy8gYmUgdW5jaGFuZ2Vk
IHVudGlsIHRoZSB2YWx1ZSBjaGFuZ2VzIGFzIGEgcmVzdWx0IG9mIHRoZSBjdXJzb3IKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tl
bmRJbXBsLmNwcAppbmRleCBhZTI3YWY4YTMyYzZiYjY5NDkyYmZmMDg2NmUyZDAyODUyNDQ2NjAz
Li40ZTdjMzI5YTNmYjU3NWY2NjA0MmIwNTI4MjJjYjE2MGVhZTY5OTZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZElt
cGwuY3BwCkBAIC02MywyNiArNjMsNiBAQCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6fklEQkN1cnNv
ckJhY2tlbmRJbXBsKCkKICAgICBtX29iamVjdFN0b3JlLmNsZWFyKCk7CiB9CiAKLVBhc3NSZWZQ
dHI8SURCS2V5PiBJREJDdXJzb3JCYWNrZW5kSW1wbDo6a2V5KCkgY29uc3QKLXsKLSAgICBJREJf
VFJBQ0UoIklEQkN1cnNvckJhY2tlbmRJbXBsOjprZXkiKTsKLSAgICByZXR1cm4gbV9jdXJzb3It
PmtleSgpOwotfQotCi1QYXNzUmVmUHRyPElEQktleT4gSURCQ3Vyc29yQmFja2VuZEltcGw6OnBy
aW1hcnlLZXkoKSBjb25zdAotewotICAgIElEQl9UUkFDRSgiSURCQ3Vyc29yQmFja2VuZEltcGw6
OnByaW1hcnlLZXkiKTsKLSAgICByZXR1cm4gbV9jdXJzb3ItPnByaW1hcnlLZXkoKTsKLX0KLQot
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IElEQkN1cnNvckJhY2tlbmRJbXBsOjp2
YWx1ZSgpIGNvbnN0Ci17Ci0gICAgSURCX1RSQUNFKCJJREJDdXJzb3JCYWNrZW5kSW1wbDo6dmFs
dWUiKTsKLSAgICBpZiAobV9jdXJzb3JUeXBlID09IEluZGV4S2V5Q3Vyc29yKQotICAgICAgcmV0
dXJuIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVsbFZhbHVlKCk7Ci0gICAgcmV0dXJuIFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlRnJvbVdpcmUobV9jdXJzb3ItPnZhbHVlKCkpOwotfQot
CiB2b2lkIElEQkN1cnNvckJhY2tlbmRJbXBsOjp1cGRhdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IHZhbHVlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJREJfVFJBQ0UoIklEQkN1cnNvckJhY2tlbmRJbXBs
Ojp1cGRhdGUiKTsKQEAgLTEzNiw3ICsxMTYsNyBAQCB2b2lkIElEQkN1cnNvckJhY2tlbmRJbXBs
OjphZHZhbmNlSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3NXaXRoQ29u
dGludWF0aW9uKCk7CisgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoY3Vyc29yLT5rZXkoKSwgY3Vy
c29yLT5wcmltYXJ5S2V5KCksIGN1cnNvci0+dmFsdWUoKSk7CiB9CiAKIHZvaWQgSURCQ3Vyc29y
QmFja2VuZEltcGw6OmNvbnRpbnVlRnVuY3Rpb25JbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW1wbD4gcHJwQ3Vyc29yLCBQYXNzUmVm
UHRyPElEQktleT4gcHJwS2V5LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQpA
QCAtMTUxLDcgKzEzMSw3IEBAIHZvaWQgSURCQ3Vyc29yQmFja2VuZEltcGw6OmNvbnRpbnVlRnVu
Y3Rpb25JbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBjYWxsYmFja3MtPm9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKTsK
KyAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhjdXJzb3ItPmtleSgpLCBjdXJzb3ItPnByaW1hcnlL
ZXkoKSwgY3Vyc29yLT52YWx1ZSgpKTsKIH0KIAogdm9pZCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6
ZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgRXhj
ZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuaAppbmRleCAwNDNjNDAzNTJjZGQzYTNmZDYzZjk5
NzJkMTY3MjFmMDQ4ZTJiMDk5Li4zMDA0ZjFmNTZkNzczNmM1MDU2ZjdhZTZmMTE2ZDg1MmNmOWQ4
YjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJz
b3JCYWNrZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkN1cnNvckJhY2tlbmRJbXBsLmgKQEAgLTU0LDkgKzU0LDYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgfklEQkN1cnNvckJhY2tlbmRJbXBsKCk7CiAKICAgICAvLyBJREJDdXJzb3JCYWNrZW5kSW50
ZXJmYWNlCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQktleT4ga2V5KCkgY29uc3Q7Ci0gICAg
dmlydHVhbCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSgpIGNvbnN0OwotICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlKCkgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9p
ZCBhZHZhbmNlKHVuc2lnbmVkIGxvbmcsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgRXhjZXB0
aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8
SURCS2V5PiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBFeGNlcHRpb25Db2RlJik7CkBAIC02
NSw2ICs2Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHJlZmV0Y2hSZXNldChpbnQg
dXNlZFByZWZldGNoZXMsIGludCB1bnVzZWRQcmVmZXRjaGVzKTsKICAgICB2aXJ0dWFsIHZvaWQg
cG9zdFN1Y2Nlc3NIYW5kbGVyQ2FsbGJhY2soKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAK
KyAgICBQYXNzUmVmUHRyPElEQktleT4ga2V5KCkgY29uc3QgeyByZXR1cm4gbV9jdXJzb3ItPmtl
eSgpOyB9CisgICAgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXkoKSBjb25zdCB7IHJldHVy
biBtX2N1cnNvci0+cHJpbWFyeUtleSgpOyB9CisgICAgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gKG1fY3Vyc29yVHlwZSA9PSBJbmRleEtl
eUN1cnNvcikgPyBTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om51bGxWYWx1ZSgpIDogU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOjpjcmVhdGVGcm9tV2lyZShtX2N1cnNvci0+dmFsdWUoKSk7IH0KICAgICB2
b2lkIGNsb3NlKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmgKaW5kZXggNDhk
M2ExODI5ZjY1ODhlZGY2MTk3MzM3ZjMxOGIyYzA2ZTkwYmNmMy4uNTQ3MjYzYmM1NDBmZmY1MTUz
N2Y2MGVlNmVhNDdiMWZlYzk5NjBiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTMs
MTAgKzUzLDYgQEAgcHVibGljOgogICAgICAgICBPYmplY3RTdG9yZUN1cnNvcgogICAgIH07CiAK
LSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkoKSBjb25zdCA9IDA7Ci0gICAgdmly
dHVhbCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSgpIGNvbnN0ID0gMDsK
LQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGFkdmFuY2UodW5zaWduZWQgbG9uZyBjb3VudCwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+LCBFeGNlcHRpb25Db2RlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjb250aW51
ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5jcHAKaW5kZXggOWY1ZmYzYmFmY2Ey
NTQ5NzVhNDNjNDMwZWJjYTVlMjE4NjkwZWM2Ni4uYWQ0Nzk4MWM5Y2MxOTlhZDQzMmUxZmI0M2I2
YzYyNzI4YTgxOTllYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5jcHAKQEAgLTk5LDggKzk5LDggQEAgdm9pZCBJ
REJJbmRleEJhY2tlbmRJbXBsOjpvcGVuQ3Vyc29ySW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFBhc3NSZWZQdHIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFJlZlB0cjxJ
REJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBjdXJzb3IgPSBJREJDdXJzb3JCYWNrZW5kSW1wbDo6
Y3JlYXRlKGJhY2tpbmdTdG9yZUN1cnNvci5nZXQoKSwgZGlyZWN0aW9uLCBjdXJzb3JUeXBlLCB0
cmFuc2FjdGlvbi5nZXQoKSwgaW5kZXgtPm1fb2JqZWN0U3RvcmVCYWNrZW5kKTsKLSAgICBjYWxs
YmFja3MtPm9uU3VjY2VzcyhjdXJzb3IucmVsZWFzZSgpKTsKKyAgICBSZWZQdHI8SURCQ3Vyc29y
QmFja2VuZEltcGw+IGN1cnNvciA9IElEQkN1cnNvckJhY2tlbmRJbXBsOjpjcmVhdGUoYmFja2lu
Z1N0b3JlQ3Vyc29yLmdldCgpLCBkaXJlY3Rpb24sIGN1cnNvclR5cGUsIHRyYW5zYWN0aW9uLmdl
dCgpLCBpbmRleC0+bV9vYmplY3RTdG9yZUJhY2tlbmQpOworICAgIGNhbGxiYWNrcy0+b25TdWNj
ZXNzKGN1cnNvciwgY3Vyc29yLT5rZXkoKSwgY3Vyc29yLT5wcmltYXJ5S2V5KCksIGN1cnNvci0+
dmFsdWUoKSk7CiB9CiAKIHZvaWQgSURCSW5kZXhCYWNrZW5kSW1wbDo6b3BlbkN1cnNvcihQYXNz
UmVmUHRyPElEQktleVJhbmdlPiBwcnBLZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9u
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uUHRyLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFj
a2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0
U3RvcmVCYWNrZW5kSW1wbC5jcHAKaW5kZXggYjk2MmU5NDg3YTIxNmZhYzU4OThlMGEwNzJlYjA2
NWIzNjhmYjU0NS4uNzM4NjYzZmU5M2M4ZTQwYjY4OTU2NzNiNmYzNDcwMTI1ZjkyMDhlZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKQEAgLTU4NSw4ICs1ODUsOCBAQCB2b2lkIElEQk9i
amVjdFN0b3JlQmFja2VuZEltcGw6Om9wZW5DdXJzb3JJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzcwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUmVmUHRyPElEQkN1
cnNvckJhY2tlbmRJbnRlcmZhY2U+IGN1cnNvciA9IElEQkN1cnNvckJhY2tlbmRJbXBsOjpjcmVh
dGUoYmFja2luZ1N0b3JlQ3Vyc29yLnJlbGVhc2UoKSwgZGlyZWN0aW9uLCBJREJDdXJzb3JCYWNr
ZW5kSW50ZXJmYWNlOjpPYmplY3RTdG9yZUN1cnNvciwgdHJhbnNhY3Rpb24uZ2V0KCksIG9iamVj
dFN0b3JlLmdldCgpKTsKLSAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhjdXJzb3IucmVsZWFzZSgp
KTsKKyAgICBSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEltcGw+IGN1cnNvciA9IElEQkN1cnNvckJh
Y2tlbmRJbXBsOjpjcmVhdGUoYmFja2luZ1N0b3JlQ3Vyc29yLnJlbGVhc2UoKSwgZGlyZWN0aW9u
LCBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpPYmplY3RTdG9yZUN1cnNvciwgdHJhbnNhY3Rp
b24uZ2V0KCksIG9iamVjdFN0b3JlLmdldCgpKTsKKyAgICBjYWxsYmFja3MtPm9uU3VjY2Vzcyhj
dXJzb3IsIGN1cnNvci0+a2V5KCksIGN1cnNvci0+cHJpbWFyeUtleSgpLCBjdXJzb3ItPnZhbHVl
KCkpOwogfQogCiB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNvdW50KFBhc3NSZWZQ
dHI8SURCS2V5UmFuZ2U+IHJhbmdlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tz
LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uLCBFeGNlcHRpb25D
b2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVz
dC5jcHAKaW5kZXggYTFlYWYyOTMwYzFhMWViOGMyN2JjZWU4ZTUyMjA5ZTgyNjk4NDM0ZS4uOTIy
ZWQ2NDQ4MzNiYmFmY2E2NzFkNTZhYmE3MGQ3OTFiYWY1YjI0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTIwMCwxNSArMjAwLDE5
IEBAIFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBJREJSZXF1ZXN0OjpnZXRSZXN1bHRDdXJzb3IoKQog
ICAgIHJldHVybiAwOwogfQogCi12b2lkIElEQlJlcXVlc3Q6OnNldFJlc3VsdEN1cnNvcihQYXNz
UmVmUHRyPElEQkN1cnNvcj4gcHJwQ3Vyc29yKQordm9pZCBJREJSZXF1ZXN0OjpzZXRSZXN1bHRD
dXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3I+IGN1cnNvciwgUGFzc1JlZlB0cjxJREJLZXk+IGtl
eSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiB2YWx1ZSkKIHsKICAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcp
OworICAgIG1fY3Vyc29yS2V5ID0ga2V5OworICAgIG1fY3Vyc29yUHJpbWFyeUtleSA9IHByaW1h
cnlLZXk7CisgICAgbV9jdXJzb3JWYWx1ZSA9IHZhbHVlOworCiAgICAgaWYgKG1fY3Vyc29yVHlw
ZSA9PSBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleUN1cnNvcikgewotICAgICAg
ICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKHBycEN1cnNvcik7CisgICAgICAgIG1fcmVzdWx0
ID0gSURCQW55OjpjcmVhdGUoY3Vyc29yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IG1fcmVzdWx0ID0gSURCQW55OjpjcmVhdGUoSURCQ3Vyc29yV2l0aFZhbHVlOjpmcm9tQ3Vyc29y
KHBycEN1cnNvcikpOworICAgIG1fcmVzdWx0ID0gSURCQW55OjpjcmVhdGUoSURCQ3Vyc29yV2l0
aFZhbHVlOjpmcm9tQ3Vyc29yKGN1cnNvcikpOwogfQogCiB2b2lkIElEQlJlcXVlc3Q6OmZpbmlz
aEN1cnNvcigpCkBAIC0yNDgsNyArMjUyLDcgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3Mo
UGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBkb21TdHJpbmdMaXN0KQogICAgIGVucXVldWVFdmVu
dChjcmVhdGVTdWNjZXNzRXZlbnQoKSk7CiB9CiAKLXZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNz
KFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCkKK3ZvaWQgSURC
UmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4g
YmFja2VuZCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1h
cnlLZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSkKIHsKICAgICBJ
REJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9uU3VjY2VzcyhJREJDdXJzb3IpIik7CiAgICAgQVNTRVJU
KG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKQEAgLTI2
Miw3ICsyNjYsNyBAQCB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1
cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQpCiAgICAgICAgIGN1cnNvciA9IElEQkN1cnNv
cjo6Y3JlYXRlKGJhY2tlbmQsIG1fY3Vyc29yRGlyZWN0aW9uLCB0aGlzLCBtX3NvdXJjZS5nZXQo
KSwgbV90cmFuc2FjdGlvbi5nZXQoKSk7CiAgICAgZWxzZQogICAgICAgICBjdXJzb3IgPSBJREJD
dXJzb3JXaXRoVmFsdWU6OmNyZWF0ZShiYWNrZW5kLCBtX2N1cnNvckRpcmVjdGlvbiwgdGhpcywg
bV9zb3VyY2UuZ2V0KCksIG1fdHJhbnNhY3Rpb24uZ2V0KCkpOwotICAgIHNldFJlc3VsdEN1cnNv
cihjdXJzb3IpOworICAgIHNldFJlc3VsdEN1cnNvcihjdXJzb3IsIGtleSwgcHJpbWFyeUtleSwg
dmFsdWUpOwogCiAgICAgZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKIH0KQEAg
LTM1OSwxNSArMzYzLDE2IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBwcnBTZXJpYWxpemVkU2NyaXB0CiAgICAgb25TdWNjZXNz
KHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5yZWxlYXNlKCkpOwogfQogCi12b2lkIElEQlJlcXVlc3Q6
Om9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKQordm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3Mo
UGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSkKIHsKLSAgICBJREJfVFJBQ0Uo
IklEQlJlcXVlc3Q6Om9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24iKTsKKyAgICBJREJfVFJBQ0Uo
IklEQlJlcXVlc3Q6Om9uU3VjY2VzcyhrZXksIHByaW1hcnlLZXksIHZhbHVlKSIpOwogICAgIEFT
U0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CiAg
ICAgaWYgKG1fcmVxdWVzdEFib3J0ZWQpCiAgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQobV9y
ZWFkeVN0YXRlID09IFBFTkRJTkcpOwogICAgIEFTU0VSVCghbV9lcnJvckNvZGUgJiYgbV9lcnJv
ck1lc3NhZ2UuaXNOdWxsKCkgJiYgIW1fZXJyb3IgJiYgIW1fcmVzdWx0KTsKICAgICBBU1NFUlQo
bV9wZW5kaW5nQ3Vyc29yKTsKLSAgICBzZXRSZXN1bHRDdXJzb3IobV9wZW5kaW5nQ3Vyc29yLnJl
bGVhc2UoKSk7CisgICAgc2V0UmVzdWx0Q3Vyc29yKG1fcGVuZGluZ0N1cnNvci5yZWxlYXNlKCks
IGtleSwgcHJpbWFyeUtleSwgdmFsdWUpOwogICAgIGVucXVldWVFdmVudChjcmVhdGVTdWNjZXNz
RXZlbnQoKSk7CiB9CiAKQEAgLTQzOSw3ICs0NDQsNyBAQCBib29sIElEQlJlcXVlc3Q6OmRpc3Bh
dGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgaWYgKGV2ZW50LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCkgewogICAgICAgICBjdXJzb3JUb05vdGlmeSA9
IGdldFJlc3VsdEN1cnNvcigpOwogICAgICAgICBpZiAoY3Vyc29yVG9Ob3RpZnkpCi0gICAgICAg
ICAgICBjdXJzb3JUb05vdGlmeS0+c2V0VmFsdWVSZWFkeSgpOworICAgICAgICAgICAgY3Vyc29y
VG9Ob3RpZnktPnNldFZhbHVlUmVhZHkobV9jdXJzb3JLZXkucmVsZWFzZSgpLCBtX2N1cnNvclBy
aW1hcnlLZXkucmVsZWFzZSgpLCBtX2N1cnNvclZhbHVlLnJlbGVhc2UoKSk7CiAgICAgfQogCiAg
ICAgLy8gRklYTUU6IFdoZW4gd2UgYWxsb3cgY3VzdG9tIGV2ZW50IGRpc3BhdGNoaW5nLCB0aGlz
IHdpbGwgcHJvYmFibHkgbmVlZCB0byBjaGFuZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKaW5kZXggYTgwNGMyYmQ1ZWIxYjczMWE1MTk3NTU4Njg5
YWRiNmE2NWVhYmMzZS4uMTIyMWU1ODk5ODkxNjM2OTNkMDM2NWVlOTdiNmY0OTVjMGQ0MTM3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaApAQCAt
ODMsMTIgKzgzLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihQYXNzUmVm
UHRyPElEQkRhdGFiYXNlRXJyb3I+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NS
ZWZQdHI8RE9NU3RyaW5nTGlzdD4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KTsKLSAgICB2aXJ0dWFsIHZvaWQgb25T
dWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4pOworICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwg
UGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRy
PElEQktleT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8SURCS2V5
PiwgY29uc3QgSURCS2V5UGF0aCYpOwotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoQ29u
dGludWF0aW9uKCk7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktl
eT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aFByZWZldGNoKGNvbnN0IFZlY3RvcjxS
ZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mLCBjb25zdCBW
ZWN0b3I8UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYpIHsgQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0gLy8gTm90IGltcGxlbWVudGVkLiBDYWxsYmFjayBzaG91bGQgbm90IHJlYWNoIHRo
ZSByZW5kZXJlciBzaWRlLgogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKTsKIApAQCAtMTIy
LDcgKzEyMiw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGVuc3Vy
ZUV2ZW50VGFyZ2V0RGF0YSgpOwogCiAgICAgUGFzc1JlZlB0cjxJREJDdXJzb3I+IGdldFJlc3Vs
dEN1cnNvcigpOwotICAgIHZvaWQgc2V0UmVzdWx0Q3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29y
Pik7CisgICAgdm9pZCBzZXRSZXN1bHRDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3I+LCBQYXNz
UmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+KTsKIAogICAgIFJlZlB0cjxJREJBbnk+IG1fc291cmNlOwogICAgIFJlZlB0
cjxJREJUcmFuc2FjdGlvbj4gbV90cmFuc2FjdGlvbjsKQEAgLTEzNyw2ICsxMzcsOSBAQCBwcml2
YXRlOgogICAgIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkN1cnNvclR5cGUgbV9jdXJzb3JU
eXBlOwogICAgIElEQkN1cnNvcjo6RGlyZWN0aW9uIG1fY3Vyc29yRGlyZWN0aW9uOwogICAgIFJl
ZlB0cjxJREJDdXJzb3I+IG1fcGVuZGluZ0N1cnNvcjsKKyAgICBSZWZQdHI8SURCS2V5PiBtX2N1
cnNvcktleTsKKyAgICBSZWZQdHI8SURCS2V5PiBtX2N1cnNvclByaW1hcnlLZXk7CisgICAgUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9jdXJzb3JWYWx1ZTsKIAogICAgIEV2ZW50VGFy
Z2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAppbmRleCBjNTg0YjFlOWZkM2Vh
ZmE5ZWZlYWM2MWQ0MTY1ZGYzNmM0MmVkOGE3Li4zMmIyOWI1NjNkNmE1NzIxYzEzNTJiZmQ1YTY0
MzM4ZjFhYjc1MjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTEwOCwxMyArMTA4LDEzIEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pIE9W
RVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxET01TdHJp
bmdMaXN0PikgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVm
UHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+KSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4sIFBh
c3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3Mo
UGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KSBPVkVSUklERSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PikgT1ZFUlJJREUgeyB9
CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZT4pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3Mo
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KSBPVkVSUklERSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFz
c1JlZlB0cjxJREJLZXk+LCBjb25zdCBJREJLZXlQYXRoJikgT1ZFUlJJREUgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKSBPVkVSUklERSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJL
ZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pIE9WRVJSSURFIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgVmVjdG9yPFJlZlB0cjxJ
REJLZXk+ID4mLCBjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYsIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiA+JikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVh
bCB2b2lkIG9uQmxvY2tlZCgpIE9WRVJSSURFIHsgfQogfTsKQEAgLTQ5MCwxMyArNDkwLDEzIEBA
IHB1YmxpYzoKICAgICAgICAgZW5kKGZhbHNlKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gaWRiQ3Vyc29y
KQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5k
SW50ZXJmYWNlPiBpZGJDdXJzb3IsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8
SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFs
dWUpCiAgICAgewogICAgICAgICBtX2lkYkN1cnNvciA9IGlkYkN1cnNvcjsKLSAgICAgICAgb25T
dWNjZXNzV2l0aENvbnRpbnVhdGlvbigpOworICAgICAgICBvblN1Y2Nlc3Moa2V5LCBwcmltYXJ5
S2V5LCB2YWx1ZSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhDb250
aW51YXRpb24oKQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+
IGtleSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChtX3NraXBDb3VudCkgewog
ICAgICAgICAgICAgLS1tX3NraXBDb3VudDsKQEAgLTUwOSw5ICs1MDksNiBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBSZWZQdHI8SURCS2V5PiBr
ZXkgPSBtX2lkYkN1cnNvci0+a2V5KCk7Ci0gICAgICAgIFJlZlB0cjxJREJLZXk+IHByaW1hcnlL
ZXkgPSBtX2lkYkN1cnNvci0+cHJpbWFyeUtleSgpOwotICAgICAgICBSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiB2YWx1ZSA9IG1faWRiQ3Vyc29yLT52YWx1ZSgpOwogICAgICAgICBSZWZQ
dHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gd3JhcHBlZFZhbHVlID0gbV9p
bmplY3RlZFNjcmlwdC53cmFwU2VyaWFsaXplZE9iamVjdCh2YWx1ZS5nZXQoKSwgU3RyaW5nKCkp
OwogICAgICAgICBSZWZQdHI8RGF0YUVudHJ5PiBkYXRhRW50cnkgPSBEYXRhRW50cnk6OmNyZWF0
ZSgpCiAgICAgICAgICAgICAuc2V0S2V5KGtleUZyb21JREJLZXkoa2V5LmdldCgpKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKaW5kZXggYTYz
YzBiYzllZTZjNGNhZjJkNjdkOTVlNWQwMGExMWM5ZmNkODI5ZC4uOTdmNzRjNDE0MjdmNTcwMzcy
YWRiNjA4YWI3MTk5ZjhmZTA1MDA3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKQEAgLTUwLDEzICs1MCwxNyBAQCBwdWJsaWM6CiAgICAg
Ly8gRm9yIHRoZSByZXN0LCBwYXNzIG93bmVyc2hpcCB0byB0aGUgY2FsbGVlIHZpYSBhIHBvaW50
ZXIuCiAgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoY29uc3QgV2ViSURCRGF0YWJhc2VFcnJvciYp
IHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2Vzcyhjb25zdCBXZWJET01TdHJpbmdMaXN0JikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkN1cnNvciopIHsgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG5vLW9w
IG1ldGhvZCB3aGVuIGNhbGxlcnMgYXJlIHVwZGF0ZWQuCisgICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2VzcyhXZWJJREJDdXJzb3IqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklE
QkN1cnNvciosIGNvbnN0IFdlYklEQktleSYsIGNvbnN0IFdlYklEQktleSYsIGNvbnN0IFdlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAg
ICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSopIHsgV0VCS0lUX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJJ
REJLZXkmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBvblN1Y2Nlc3MoV2ViSURCVHJhbnNhY3Rpb24qKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFsaXplZFNj
cmlwdFZhbHVlJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYsIGNvbnN0IFdl
YklEQktleSYsIGNvbnN0IFdlYklEQktleVBhdGgmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCkgeyBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMg
bm8tb3AgbWV0aG9kIHdoZW4gY2FsbGVycyBhcmUgdXBkYXRlZC4KKyAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoY29uc3QgV2ViSURCS2V5JiwgY29uc3QgV2ViSURCS2V5JiwgY29uc3QgV2ViU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0
dWFsIHZvaWQgb25CbG9ja2VkKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aFByZWZldGNoKGNvbnN0IFdlYlZlY3RvcjxXZWJJ
REJLZXk+JiBrZXlzLCBjb25zdCBXZWJWZWN0b3I8V2ViSURCS2V5PiYgcHJpbWFyeUtleXMsIGNv
bnN0IFdlYlZlY3RvcjxXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiB2YWx1ZXMpIHsgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCQ3Vyc29yLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJJREJDdXJzb3IuaAppbmRleCBkZmFkMTkzODM1YTYwN2JkOWQ0MzExY2ViZTI5MDMw
ZDgxZGM4YmFiLi4wYmQzMTJlNzljMjlhYjQyMTkzNzgzZTA4N2FlMzBlMTg1MGM3NGRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDdXJzb3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDdXJzb3IuaApAQCAtNDAsNiAr
NDAsNyBAQCBjbGFzcyBXZWJJREJDdXJzb3IgewogcHVibGljOgogICAgIHZpcnR1YWwgfldlYklE
QkN1cnNvcigpIHsgfQogCisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGVzZSBtZXRob2RzIHdoZW4g
Y2FsbGVycyBhcmUgdXBkYXRlZC4KICAgICB2aXJ0dWFsIFdlYklEQktleSBrZXkoKSBjb25zdAog
ICAgIHsKICAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCmluZGV4IDdkZjg0ZDJm
ZmJlMDc5NjEzNTU2NWZhMDJjZjdlOGUxYWQ4MjA5MmMuLjdkMmM5Y2Y5OWMxMjNmMDlhNDQxNDMz
ZjkwMDgwMDI0Y2QwOTc4YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkNhbGxiYWNrc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJDYWxsYmFja3NQcm94eS5jcHAKQEAgLTY4LDkgKzY4LDkgQEAgdm9pZCBJREJDYWxsYmFja3NQ
cm94eTo6b25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IGlkYkRhdGFiYXNlRXJy
b3IpCiAgICAgbV9jYWxsYmFja3MtPm9uRXJyb3IoV2ViSURCRGF0YWJhc2VFcnJvcihpZGJEYXRh
YmFzZUVycm9yKSk7CiB9CiAKLXZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2VzcyhQYXNz
UmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGlkYkN1cnNvckJhY2tlbmQpCit2b2lk
IElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5k
SW50ZXJmYWNlPiBpZGJDdXJzb3JCYWNrZW5kLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNz
UmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IHZhbHVlKQogewotICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MobmV3IFdlYklEQkN1cnNv
ckltcGwoaWRiQ3Vyc29yQmFja2VuZCkpOworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MobmV3
IFdlYklEQkN1cnNvckltcGwoaWRiQ3Vyc29yQmFja2VuZCksIGtleSwgcHJpbWFyeUtleSwgdmFs
dWUpOwogfQogCiB2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQpCkBAIC0xMDIsOSArMTAyLDEwIEBA
IHZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gc2VyaWFsaXplZFNjCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2Vzcyhz
ZXJpYWxpemVkU2NyaXB0VmFsdWUsIGtleSwga2V5UGF0aCk7CiB9Ci12b2lkIElEQkNhbGxiYWNr
c1Byb3h5OjpvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCkKKwordm9pZCBJREJDYWxsYmFja3NQ
cm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5
PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUpCiB7
Ci0gICAgbV9jYWxsYmFja3MtPm9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKTsKKyAgICBtX2Nh
bGxiYWNrcy0+b25TdWNjZXNzKGtleSwgcHJpbWFyeUtleSwgdmFsdWUpOwogfQogCiB2b2lkIElE
QkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgVmVjdG9yPFJlZlB0
cjxJREJLZXk+ID4mIGtleXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiBwcmltYXJ5
S2V5cywgY29uc3QgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mIHZhbHVl
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCmlu
ZGV4IGRiMzA1NjU1MGIyYjJlMTdlMmUzMGRkZWY3OWU5ZGQyOWMyNWZmYmQuLjhiYjcxYmY1M2Q5
Y2VjMDM5ZTdiM2ZiNDlhYzU1N2JjYjNlOWIxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaApAQCAtNDcsMTMgKzQ3LDEzIEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJh
c2VFcnJvcj4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3Jl
OjpET01TdHJpbmdMaXN0Pik7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRy
PFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+KTsKKyAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4s
IFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+
LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJ
bnRlcmZhY2U+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6SURCS2V5Pik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNv
cmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pOwogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsKICAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBjb25zdCBXZWJDb3JlOjpJ
REJLZXlQYXRoJik7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24o
KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5
PiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0
Y2goY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpJREJLZXk+ID4mIGtleXMsIGNvbnN0IFZl
Y3RvcjxSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiA+JiBwcmltYXJ5S2V5cywgY29uc3QgVmVjdG9y
PFJlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mIHZhbHVlcyk7CiAgICAg
dmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJDdXJzb3JCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5LmNwcAppbmRleCBjYTM5MGJhOTA3NDI3ZTA4
ZmQ0NzhiYjk1Y2Y5ZTJjNDE2Y2QyZmZiLi4yYTVmNzA0MGFjMTFmMGU0ZjYyNzFlMDhkYmE1ODUz
OTQ3NGQzMTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJz
b3JCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1
cnNvckJhY2tlbmRQcm94eS5jcHAKQEAgLTU0LDIxICs1NCw2IEBAIElEQkN1cnNvckJhY2tlbmRQ
cm94eTo6fklEQkN1cnNvckJhY2tlbmRQcm94eSgpCiB7CiB9CiAKLVBhc3NSZWZQdHI8SURCS2V5
PiBJREJDdXJzb3JCYWNrZW5kUHJveHk6OmtleSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faWRi
Q3Vyc29yLT5rZXkoKTsKLX0KLQotUGFzc1JlZlB0cjxJREJLZXk+IElEQkN1cnNvckJhY2tlbmRQ
cm94eTo6cHJpbWFyeUtleSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faWRiQ3Vyc29yLT5wcmlt
YXJ5S2V5KCk7Ci19Ci0KLVBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBJREJDdXJz
b3JCYWNrZW5kUHJveHk6OnZhbHVlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pZGJDdXJzb3It
PnZhbHVlKCk7Ci19Ci0KIHZvaWQgSURCQ3Vyc29yQmFja2VuZFByb3h5Ojp1cGRhdGUoUGFzc1Jl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4gY2FsbGJhY2tzLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBtX2lkYkN1cnNvci0+dXBk
YXRlKHZhbHVlLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCBlYyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JCYWNrZW5kUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNvckJhY2tlbmRQcm94eS5oCmlu
ZGV4IDllNGI1NzAwODEyNmYzOTZjZDE0ZjYzM2M2YTNhNDFkNmI1OTAyODUuLmU5NTMzZmI0OGIw
Yzk5MzBkZTVkMDZhMzc4Zjc3ZGQwOWEyODYzYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQkN1cnNvckJhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQkN1cnNvckJhY2tlbmRQcm94eS5oCkBAIC00Miw5ICs0Miw2IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW50
ZXJmYWNlPiBjcmVhdGUoUGFzc093blB0cjxXZWJJREJDdXJzb3I+KTsKICAgICB2aXJ0dWFsIH5J
REJDdXJzb3JCYWNrZW5kUHJveHkoKTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpJREJLZXk+IGtleSgpIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJ
REJLZXk+IHByaW1hcnlLZXkoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGUoUGFzc1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNz
UmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgYWR2YW5jZSh1bnNpZ25lZCBsb25nLCBQYXNzUmVmUHRyPFdlYkNv
cmU6OklEQkNhbGxiYWNrcz4sIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFs
IHZvaWQgY29udGludWVGdW5jdGlvbihQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNw
cAppbmRleCA1YjVhZWRmN2NjYjM3ZTI0OWM1M2MxYWY5ZThlYzhlZDliMGU2ZTEyLi4wODNkYmNj
YmUyNjc1ZjIwOTliNTM1NTdmNDAxNjhlM2UwODNkNzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcApAQCAtNjUsOSArNjUsOSBA
QCB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2Vzcyhjb25zdCBXZWJET01TdHJpbmdM
aXN0JiBkb21TdHJpbmdMaXN0KQogICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoZG9tU3RyaW5n
TGlzdCk7CiB9CiAKLXZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKFdlYklEQkN1
cnNvciogY3Vyc29yKQordm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoV2ViSURC
Q3Vyc29yKiBjdXJzb3IsIGNvbnN0IFdlYklEQktleSYga2V5LCBjb25zdCBXZWJJREJLZXkmIHBy
aW1hcnlLZXksIGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgdmFsdWUpCiB7Ci0gICAg
bV9jYWxsYmFja3MtPm9uU3VjY2VzcyhJREJDdXJzb3JCYWNrZW5kUHJveHk6OmNyZWF0ZShhZG9w
dFB0cihjdXJzb3IpKSk7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhJREJDdXJzb3JCYWNr
ZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjdXJzb3IpKSwga2V5LCBwcmltYXJ5S2V5LCB2YWx1
ZSk7CiB9CiAKIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKFdlYklEQkRhdGFi
YXNlKiB3ZWJLaXRJbnN0YW5jZSkKQEAgLTk1LDkgKzk1LDkgQEAgdm9pZCBXZWJJREJDYWxsYmFj
a3NJbXBsOjpvblN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiBzZXJpYWxp
emVkU2MKICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwg
a2V5LCBrZXlQYXRoKTsKIH0KIAotdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3NX
aXRoQ29udGludWF0aW9uKCkKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKGNv
bnN0IFdlYklEQktleSYga2V5LCBjb25zdCBXZWJJREJLZXkmIHByaW1hcnlLZXksIGNvbnN0IFdl
YlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgdmFsdWUpCiB7Ci0gICAgbV9jYWxsYmFja3MtPm9uU3Vj
Y2Vzc1dpdGhDb250aW51YXRpb24oKTsKKyAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKGtleSwg
cHJpbWFyeUtleSwgdmFsdWUpOwogfQogCiB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uQmxv
Y2tlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxs
YmFja3NJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJ
bXBsLmgKaW5kZXggN2IwMjE2MzU5ZDU2ZDgxODY5NWZlOTczYTAxODJhZmI1MTI1MDE2MS4uZWRm
OWY4NjdkMjRkMGIwYjIwYjRjYWE0M2MxOWNjZGVhNDY0ZTRiMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaApAQCAtNDMsMTMgKzQzLDEz
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKGNvbnN0IFdlYklEQkRhdGFi
YXNlRXJyb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYkRPTVN0cmlu
Z0xpc3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkN1cnNvciopOworICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCQ3Vyc29yKiwgY29uc3QgV2ViSURCS2V5Jiwg
Y29uc3QgV2ViSURCS2V5JiwgY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJik7CiAgICAg
dmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSopOwogICAgIHZpcnR1YWwgdm9p
ZCBvblN1Y2Nlc3MoY29uc3QgV2ViSURCS2V5Jik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vz
cyhXZWJJREJUcmFuc2FjdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3Qg
V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhj
b25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmLCBjb25zdCBXZWJJREJLZXkmLCBjb25zdCBX
ZWJJREJLZXlQYXRoJik7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhDb250aW51YXRp
b24oKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYklEQktleSYsIGNvbnN0
IFdlYklEQktleSYsIGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYpOwogICAgIHZpcnR1
YWwgdm9pZCBvbkJsb2NrZWQoKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5jcHAKaW5kZXggZTljMGUwNGFmMDM3MzI0YzQxNjRj
M2M1YTEyY2QxYjdhMWZiMWNlOC4uMGYyYjg3MzRhNzFhMjQzNjlmMjg1YjRjZTI5OGRlZjg4N2Ni
YzBkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29y
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1w
bC5jcHAKQEAgLTQ3LDIxICs0Nyw2IEBAIFdlYklEQkN1cnNvckltcGw6On5XZWJJREJDdXJzb3JJ
bXBsKCkKIHsKIH0KIAotV2ViSURCS2V5IFdlYklEQkN1cnNvckltcGw6OmtleSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1faWRiQ3Vyc29yQmFja2VuZC0+a2V5KCk7Ci19Ci0KLVdlYklEQktleSBX
ZWJJREJDdXJzb3JJbXBsOjpwcmltYXJ5S2V5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pZGJD
dXJzb3JCYWNrZW5kLT5wcmltYXJ5S2V5KCk7Ci19Ci0KLVdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSBXZWJJREJDdXJzb3JJbXBsOjp2YWx1ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faWRiQ3Vy
c29yQmFja2VuZC0+dmFsdWUoKTsKLX0KLQogdm9pZCBXZWJJREJDdXJzb3JJbXBsOjp1cGRhdGUo
Y29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiB2YWx1ZSwgV2ViSURCQ2FsbGJhY2tzKiBj
YWxsYmFja3MsIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIG1faWRiQ3Vyc29yQmFja2Vu
ZC0+dXBkYXRlKHZhbHVlLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxi
YWNrcykpLCBlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJDdXJzb3JJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDdXJzb3JJ
bXBsLmgKaW5kZXggZjBkMzg3YjYyMTk3Njg3YTgxNmFkMWRjNzU1NWNkYzI3ZWZiYWZjNS4uNzJh
MjZhOGI4NzM5NjU1MDI4ZmZmNjNiOTAyYWQyZTQyYTM5ZThhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuaApAQCAtNDQsOSArNDQsNiBAQCBwdWJs
aWM6CiAgICAgV2ViSURCQ3Vyc29ySW1wbChXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ3Vy
c29yQmFja2VuZEludGVyZmFjZT4pOwogICAgIHZpcnR1YWwgfldlYklEQkN1cnNvckltcGwoKTsK
IAotICAgIHZpcnR1YWwgV2ViSURCS2V5IGtleSgpIGNvbnN0OwotICAgIHZpcnR1YWwgV2ViSURC
S2V5IHByaW1hcnlLZXkoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFdlYlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSB2YWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoY29uc3QgV2ViU2Vy
aWFsaXplZFNjcmlwdFZhbHVlJiwgV2ViSURCQ2FsbGJhY2tzKiwgV2ViRXhjZXB0aW9uQ29kZSYp
OwogICAgIHZpcnR1YWwgdm9pZCBhZHZhbmNlKHVuc2lnbmVkIGxvbmcsIFdlYklEQkNhbGxiYWNr
cyosIFdlYkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgY29udGludWVGdW5jdGlv
bihjb25zdCBXZWJJREJLZXkmLCBXZWJJREJDYWxsYmFja3MqLCBXZWJFeGNlcHRpb25Db2RlJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3Jy
dXB0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3Jy
dXB0VGVzdC5jcHAKaW5kZXggZDllM2Q2OTdiMTk3Yzc0MDZmNjNiYWViNDgzOTMxYjRlYWM5NTA4
NS4uOTFjNTA1Y2VhYTYwNDg2MWQ4YzE0MzJjZGE3NjE4MTMyNzhjNzJlMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNw
cApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fd2FzRXJyb3JDYWxsZWQgPSB0
cnVlOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8RE9NU3Ry
aW5nTGlzdD4pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJD
dXJzb3JCYWNrZW5kSW50ZXJmYWNlPikgeyB9CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQ
YXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+LCBQYXNzUmVmUHRyPElEQktleT4s
IFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlPikKICAgICB7CiAgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKTsKQEAgLTYw
LDcgKzYwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0
cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPikgeyB9CiAgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBh
c3NSZWZQdHI8SURCS2V5PiwgY29uc3QgSURCS2V5UGF0aCYpIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2VzcyhQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+KSB7IH07CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dp
dGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYsIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+ID4mKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCkgeyB9CiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tl
bmRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNr
ZW5kVGVzdC5jcHAKaW5kZXggNWMwMWU5ZWNjMzFjMjVmZDEwZDBiMTg3ZjQwZDIzNzk3MzM2MWIw
Yi4uMjI3Nzg4NzVmYTkzNDAyMDc4NzMwMTM4ZTEzYTM0NjE2ZjQzNTkxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3Qu
Y3BwCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIG9u
RXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPikgT1ZFUlJJREUgeyB9CiAgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+KSBPVkVSUklERSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2Vu
ZEludGVyZmFjZT4pIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFz
c1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQ
YXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPikgT1ZF
UlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZT4pIE9WRVJSSURFCiAgICAgewogICAgICAgICBtX3dhc1N1Y2Nl
c3NEQkNhbGxlZCA9IHRydWU7CkBAIC04Niw3ICs4Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
PikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPElEQktl
eT4sIGNvbnN0IElEQktleVBhdGgmKSBPVkVSUklERSB7IH07Ci0gICAgdmlydHVhbCB2b2lkIG9u
U3VjY2Vzc1dpdGhDb250aW51YXRpb24oKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pIE9WRVJSSURFIHsgfTsKICAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzV2l0aFByZWZldGNoKGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+Jiwg
Y29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mLCBjb25zdCBWZWN0b3I8UmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gPiYpIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvbkJs
b2NrZWQoKSBPVkVSUklERSB7IH0KIHByaXZhdGU6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154764</attachid>
            <date>2012-07-26 15:14:07 -0700</date>
            <delta_ts>2012-08-01 12:25:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92278-20120726151355.patch</filename>
            <type>text/plain</type>
            <size>40806</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTNhNzVlZGZlN2ZlY2Fk
Y2FjOGU2YTYzOGZiYjEzMTQ5NjdkOWQzOC4uZjMyNzBjNmJhNjIzNTYwOGI3MDc4YjdkZGQ1MDgx
YWJkZDc4OTI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDEyLTA3LTI2ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBQYXNz
IGN1cnNvciBjb250aW51ZSByZXN1bHRzIGJhY2sgaW4gY2FsbGJhY2sKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjc4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcGx5IHRoZSB1cGRhdGVkIGN1cnNv
ciBrZXkvcHJpbWFyeUtleS92YWx1ZSBpbiB0aGUgc3VjY2VzcyBjYWxsYmFjaywKKyAgICAgICAg
cmF0aGVyIHRoYW4gZm9yY2luZyB0aGUgY2FsbGVlIHRvIG1ha2UgdGhyZWUgY2FsbHMgaW50byB0
aGUgYmFjayBlbmQgdG8KKyAgICAgICAgZmV0Y2ggdGhlbS4gQ2FsbGJhY2tzIG9uU3VjY2Vzcyhj
dXJzb3IpIGFuZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCkKKyAgICAgICAgYXJlIGdpdmVu
IHRoZSB0aHJlZSBuZXcgcGF5bG9hZCBwYXJhbWV0ZXJzIChhbmQgdGhlIGxhdHRlciBpcyByZW5h
bWVkLikKKworICAgICAgICBObyBuZXcgdGVzdHMgLSBubyBiZWhhdmlvcmFsIGNoYW5nZXMuCisK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaDogVXBkYXRlZCBjYWxs
YmFja3MuCisgICAgICAgIChJREJDYWxsYmFja3MpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OnNldFZhbHVl
UmVhZHkpOiBUYWtlcyB2YWx1ZXMgcmF0aGVyIHRoYW4gZmV0Y2hpbmcgdGhlbS4KKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaDoKKyAgICAgICAgKElEQkN1cnNvcik6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwOiBEZWxl
dGUgYWNjZXNzb3JzLgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6OmFk
dmFuY2VJbnRlcm5hbCk6IFBhc3MgYWxvbmcgdXBkYXRlZCBjdXJzb3Igc3RhdGUuCisgICAgICAg
IChXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y29udGludWVGdW5jdGlvbkludGVybmFs
KTogRGl0dG8uCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZElt
cGwuaDoKKyAgICAgICAgKElEQkN1cnNvckJhY2tlbmRJbXBsKTogRGVsZXRlIGFjY2Vzc29ycyBm
cm9tIGludGVyZmFjZS4uLgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6
OmtleSk6IC4uLmJ1dCBrZWVwIHRoZW0gZm9yIHVzZSB3aXRoaW4gYmFjay1lbmQuCisgICAgICAg
IChXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6cHJpbWFyeUtleSk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6dmFsdWUpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaDogRGVsZXRlIGFjY2Vzc29ycy4K
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkluZGV4QmFja2VuZEltcGw6Om9wZW5DdXJzb3JJbnRlcm5hbCk6
IFBhc3MgYWxvbmcgbmV3IGN1cnNvciBzdGF0ZS4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9i
amVjdFN0b3JlQmFja2VuZEltcGw6Om9wZW5DdXJzb3JJbnRlcm5hbCk6IERpdHRvLgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCUmVxdWVzdDo6c2V0UmVzdWx0Q3Vyc29yKTogU3Rhc2ggdXBkYXRlZCBjdXJzb3Igc3RhdGUg
dW50aWwgZGlzcGF0Y2guCisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3Mp
OgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudCk6IFVwZGF0ZSBj
dXJzb3Igd2l0aCBuZXcgc3RhdGUuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5oOgorICAgICAgICAoSURCUmVxdWVzdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckluZGV4ZWREQkFnZW50LmNwcDogVXBkYXRlIGl0ZXJhdGlvbiBjb2RlIHRvIHVzZSBuZXcg
Y2FsbGJhY2tzLgorICAgICAgICAoV2ViQ29yZSk6CisKKzIwMTItMDctMjUgIEpvc2h1YSBCZWxs
ICA8anNiZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFBhc3MgY3Vyc29y
IGNvbnRpbnVlIHJlc3VsdHMgYmFjayBpbiBjYWxsYmFjaworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTIyNzgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRoZSBj
aGFuZ2Ugc3VjaCBhcyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5jdGlv
biBkZXNjcmlwdGlvbnMgYmVsb3cgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9P
UFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oOgorICAg
ICAgICAoSURCQ2FsbGJhY2tzKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJz
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjpzZXRWYWx1ZVJlYWR5KToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaDoKKyAgICAgICAgKElEQkN1cnNv
cik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6OmFkdmFuY2VJbnRlcm5h
bCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y29udGludWVGdW5j
dGlvbkludGVybmFsKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNr
ZW5kSW1wbC5oOgorICAgICAgICAoSURCQ3Vyc29yQmFja2VuZEltcGwpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6OmtleSk6CisgICAgICAgIChXZWJDb3JlOjpJREJD
dXJzb3JCYWNrZW5kSW1wbDo6cHJpbWFyeUtleSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJz
b3JCYWNrZW5kSW1wbDo6dmFsdWUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvckJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleEJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4QmFja2VuZElt
cGw6Om9wZW5DdXJzb3JJbnRlcm5hbCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsOjpvcGVuQ3Vyc29ySW50ZXJuYWwpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6
c2V0UmVzdWx0Q3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6Om9uU3VjY2Vz
cyk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0Lmg6CisgICAgICAgIChJREJSZXF1ZXN0
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDctMjQgIFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBSZWZhY3RvciBDQ0xheWVyVHJlZUhv
c3RDb21tb246IG1vdmUgcm9vdCBsYXllciBzcGVjaWFsIGNhc2UgaW5pdGlhbGl6YXRpb24gaW50
byBpbnRlcm5hbCBjb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAyN2I1NTJiZTRk
ODFhMmIzYTZjZmJiMGRiYzE2NjA1M2E4ZGQ0NjNlLi40ODFmM2I0OWE2Njk1YmEwYTk1MGUxZDc3
MjFjMGRmMWM0ZTZlMGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcx
IEBACisyMDEyLTA3LTI2ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgSW5kZXhlZERCOiBQYXNzIGN1cnNvciBjb250aW51ZSByZXN1bHRzIGJhY2sgaW4gY2Fs
bGJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTky
Mjc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Vw
cGx5IHRoZSB1cGRhdGVkIGN1cnNvciBrZXkvcHJpbWFyeUtleS92YWx1ZSBpbiB0aGUgc3VjY2Vz
cyBjYWxsYmFjaywKKyAgICAgICAgcmF0aGVyIHRoYW4gZm9yY2luZyB0aGUgY2FsbGVlIHRvIG1h
a2UgdGhyZWUgY2FsbHMgaW50byB0aGUgYmFjayBlbmQgdG8KKyAgICAgICAgZmV0Y2ggdGhlbS4g
Q2FsbGJhY2tzIG9uU3VjY2VzcyhjdXJzb3IpIGFuZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9u
KCkKKyAgICAgICAgYXJlIGdpdmVuIHRoZSB0aHJlZSBuZXcgcGF5bG9hZCBwYXJhbWV0ZXJzIChh
bmQgdGhlIGxhdHRlciBpcyByZW5hbWVkLikKKworICAgICAgICAqIHB1YmxpYy9XZWJJREJDYWxs
YmFja3MuaDoKKyAgICAgICAgKFdlYklEQkNhbGxiYWNrcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YklEQkNhbGxiYWNrczo6b25TdWNjZXNzKTogUmVwbGFjZSB3aXRoIG5vLW9wIHN0dWIuCisgICAg
ICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrczo6b25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbik6
IERpdHRvLgorICAgICAgICAqIHB1YmxpYy9XZWJJREJDdXJzb3IuaDoKKyAgICAgICAgKFdlYklE
QkN1cnNvcik6IE1ldGhvZHMgY2FuIGJlIHJlbW92ZWQgb25jZSBDaHJvbWl1bSBpcyBjbGVhbmVk
IHVwLgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5jcHA6IFVwZGF0ZWQgY2FsbGJh
Y2tzLgorICAgICAgICAoV2ViS2l0OjpJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKToKKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmg6IFVwZGF0
ZWQgY2FsbGJhY2tzLgorICAgICAgICAoSURCQ2FsbGJhY2tzUHJveHkpOgorICAgICAgICAqIHNy
Yy9JREJDdXJzb3JCYWNrZW5kUHJveHkuY3BwOiBSZW1vdmUgYmFjayBlbmQgYWNjZXNzb3JzLgor
ICAgICAgICAqIHNyYy9JREJDdXJzb3JCYWNrZW5kUHJveHkuaDoKKyAgICAgICAgKElEQkN1cnNv
ckJhY2tlbmRQcm94eSk6CisgICAgICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwOiBV
cGRhdGVkIGNhbGxiYWNrcy4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6
b25TdWNjZXNzKToKKyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oOiBVcGRhdGVk
IGNhbGxiYWNrcy4KKyAgICAgICAgKFdlYklEQkNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNy
Yy9XZWJJREJDdXJzb3JJbXBsLmNwcDogUmVtb3ZlIGJhY2sgZW5kIGFjY2Vzc29ycy4KKyAgICAg
ICAgKiBzcmMvV2ViSURCQ3Vyc29ySW1wbC5oOiBSZW1vdmUgYmFjayBlbmQgYWNjZXNzb3JzLgor
ICAgICAgICAoV2ViSURCQ3Vyc29ySW1wbCk6CisgICAgICAgICogdGVzdHMvSURCQWJvcnRPbkNv
cnJ1cHRUZXN0LmNwcDogVXBkYXRlIHRlc3Qgc3R1YnMuCisgICAgICAgIChXZWJDb3JlOjpNb2Nr
SURCQ2FsbGJhY2tzOjpvblN1Y2Nlc3MpOgorICAgICAgICAqIHRlc3RzL0lEQkRhdGFiYXNlQmFj
a2VuZFRlc3QuY3BwOiBEaXR0by4KKworMjAxMi0wNy0yNSAgSm9zaHVhIEJlbGwgIDxqc2JlbGxA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogUGFzcyBjdXJzb3IgY29udGludWUg
cmVzdWx0cyBiYWNrIGluIGNhbGxiYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05MjI3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb2YgdGhlIGNoYW5nZSBzdWNo
IGFzIGFwcHJvYWNoLCByYXRpb25hbGUuIFBsZWFzZSBhZGQgcGVyLWZ1bmN0aW9uIGRlc2NyaXB0
aW9ucyBiZWxvdyAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYklEQkNhbGxiYWNrcy5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3M6Om9uU3VjY2Vzcyk6CisgICAgICAg
ICogcHVibGljL1dlYklEQkN1cnNvci5oOgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MpOgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHkuaDoKKyAg
ICAgICAgKElEQkNhbGxiYWNrc1Byb3h5KToKKyAgICAgICAgKiBzcmMvSURCQ3Vyc29yQmFja2Vu
ZFByb3h5LmNwcDoKKyAgICAgICAgKiBzcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5Lmg6CisgICAg
ICAgIChJREJDdXJzb3JCYWNrZW5kUHJveHkpOgorICAgICAgICAqIHNyYy9XZWJJREJDYWxsYmFj
a3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNj
ZXNzKToKKyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oOgorICAgICAgICAoV2Vi
SURCQ2FsbGJhY2tzSW1wbCk6CisgICAgICAgICogc3JjL1dlYklEQkN1cnNvckltcGwuY3BwOgor
ICAgICAgICAqIHNyYy9XZWJJREJDdXJzb3JJbXBsLmg6CisgICAgICAgIChXZWJJREJDdXJzb3JJ
bXBsKToKKyAgICAgICAgKiB0ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja0lEQkNhbGxiYWNrczo6b25TdWNjZXNzKToKKyAgICAgICAgKiB0ZXN0
cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcDoKKwogMjAxMi0wNy0yNCAgU2hhd24gU2luZ2gg
IDxzaGF3bnNpbmdoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFJlZmFjdG9y
IENDTGF5ZXJUcmVlSG9zdENvbW1vbjogbW92ZSByb290IGxheWVyIHNwZWNpYWwgY2FzZSBpbml0
aWFsaXphdGlvbiBpbnRvIGludGVybmFsIGNvZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCmluZGV4IDg1M2ZmYzcyZDI2MDM5MWZjYzQzNjY0
ZDU3M2ZjNWRhZTMwMmRjMGYuLjQxM2Q2NmZjZTdhNDAyNjc2YzJlYmIxYmIxNmY3ZThmZDk4ODJm
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxi
YWNrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNr
cy5oCkBAIC01MSwxMyArNTEsMTMgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG9uRXJy
b3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PikgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50
ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtl
eSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4pID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2U+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNz
KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBj
b25zdCBJREJLZXlQYXRoJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoQ29u
dGludWF0aW9uKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJ
REJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVm
ZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYga2V5cywgY29uc3QgVmVjdG9yPFJl
ZlB0cjxJREJLZXk+ID4mIHByaW1hcnlLZXlzLCBjb25zdCBWZWN0b3I8UmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gPiYgdmFsdWVzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tl
ZCgpID0gMDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yLmNwcAppbmRleCBlZjM0Y2I4YzdmYjc2MzYxODQxMjJiM2NiODM2ZDI0OGQyMWViOTMwLi5i
Njg4N2MzYjM5OGUyM2U4YWEyYjY3NDRkZjhhYjA0ODk0NzE2YzNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKQEAgLTI1MywxMiArMjUzLDEy
IEBAIHZvaWQgSURCQ3Vyc29yOjpjbG9zZSgpCiAgICAgbV9yZXF1ZXN0LmNsZWFyKCk7CiB9CiAK
LXZvaWQgSURCQ3Vyc29yOjpzZXRWYWx1ZVJlYWR5KCkKK3ZvaWQgSURCQ3Vyc29yOjpzZXRWYWx1
ZVJlYWR5KFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5
S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcHJwVmFsdWUpCiB7Ci0gICAg
bV9jdXJyZW50S2V5ID0gbV9iYWNrZW5kLT5rZXkoKTsKLSAgICBtX2N1cnJlbnRQcmltYXJ5S2V5
ID0gbV9iYWNrZW5kLT5wcmltYXJ5S2V5KCk7CisgICAgbV9jdXJyZW50S2V5ID0ga2V5OworICAg
IG1fY3VycmVudFByaW1hcnlLZXkgPSBwcmltYXJ5S2V5OwogCi0gICAgUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gdmFsdWUgPSBtX2JhY2tlbmQtPnZhbHVlKCk7CisgICAgUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUgPSBwcnBWYWx1ZTsKICNpZm5kZWYgTkRFQlVHCiAg
ICAgaWYgKCFpc0tleUN1cnNvcigpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBBY3R1YWxseSBpbmpl
Y3QgdGhlIHByaW1hcnlLZXkgYXQgdGhlIGtleVBhdGguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCmluZGV4IGZkNDZjYmJjYTA3ZjRmMzIzMzcyNzJmZjRj
ZTYxM2E2ZTUyODE4NDEuLjU5MDgyODg1OWE3YTMxZDhmMDg4NzFmMmM0MWRmOTMyMDNmYTE3ZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCkBAIC04
Miw3ICs4Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcG9zdFN1Y2Nlc3NIYW5kbGVyQ2FsbGJh
Y2soKTsKICAgICB2b2lkIGNsb3NlKCk7Ci0gICAgdm9pZCBzZXRWYWx1ZVJlYWR5KCk7CisgICAg
dm9pZCBzZXRWYWx1ZVJlYWR5KFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+
IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiAKICAgICAv
LyBUaGUgc3BlYyByZXF1aXJlcyB0aGF0IHRoZSBzY3JpcHQgb2JqZWN0IHRoYXQgd3JhcHMgdGhl
IHZhbHVlCiAgICAgLy8gYmUgdW5jaGFuZ2VkIHVudGlsIHRoZSB2YWx1ZSBjaGFuZ2VzIGFzIGEg
cmVzdWx0IG9mIHRoZSBjdXJzb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcAppbmRleCBhZTI3YWY4YTMyYzZi
YjY5NDkyYmZmMDg2NmUyZDAyODUyNDQ2NjAzLi40ZTdjMzI5YTNmYjU3NWY2NjA0MmIwNTI4MjJj
YjE2MGVhZTY5OTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwCkBAIC02MywyNiArNjMsNiBAQCBJREJD
dXJzb3JCYWNrZW5kSW1wbDo6fklEQkN1cnNvckJhY2tlbmRJbXBsKCkKICAgICBtX29iamVjdFN0
b3JlLmNsZWFyKCk7CiB9CiAKLVBhc3NSZWZQdHI8SURCS2V5PiBJREJDdXJzb3JCYWNrZW5kSW1w
bDo6a2V5KCkgY29uc3QKLXsKLSAgICBJREJfVFJBQ0UoIklEQkN1cnNvckJhY2tlbmRJbXBsOjpr
ZXkiKTsKLSAgICByZXR1cm4gbV9jdXJzb3ItPmtleSgpOwotfQotCi1QYXNzUmVmUHRyPElEQktl
eT4gSURCQ3Vyc29yQmFja2VuZEltcGw6OnByaW1hcnlLZXkoKSBjb25zdAotewotICAgIElEQl9U
UkFDRSgiSURCQ3Vyc29yQmFja2VuZEltcGw6OnByaW1hcnlLZXkiKTsKLSAgICByZXR1cm4gbV9j
dXJzb3ItPnByaW1hcnlLZXkoKTsKLX0KLQotUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IElEQkN1cnNvckJhY2tlbmRJbXBsOjp2YWx1ZSgpIGNvbnN0Ci17Ci0gICAgSURCX1RSQUNF
KCJJREJDdXJzb3JCYWNrZW5kSW1wbDo6dmFsdWUiKTsKLSAgICBpZiAobV9jdXJzb3JUeXBlID09
IEluZGV4S2V5Q3Vyc29yKQotICAgICAgcmV0dXJuIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVs
bFZhbHVlKCk7Ci0gICAgcmV0dXJuIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlRnJvbVdp
cmUobV9jdXJzb3ItPnZhbHVlKCkpOwotfQotCiB2b2lkIElEQkN1cnNvckJhY2tlbmRJbXBsOjp1
cGRhdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlLCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJREJf
VFJBQ0UoIklEQkN1cnNvckJhY2tlbmRJbXBsOjp1cGRhdGUiKTsKQEAgLTEzNiw3ICsxMTYsNyBA
QCB2b2lkIElEQkN1cnNvckJhY2tlbmRJbXBsOjphZHZhbmNlSW50ZXJuYWwoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
Y2FsbGJhY2tzLT5vblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCk7CisgICAgY2FsbGJhY2tzLT5v
blN1Y2Nlc3MoY3Vyc29yLT5rZXkoKSwgY3Vyc29yLT5wcmltYXJ5S2V5KCksIGN1cnNvci0+dmFs
dWUoKSk7CiB9CiAKIHZvaWQgSURCQ3Vyc29yQmFja2VuZEltcGw6OmNvbnRpbnVlRnVuY3Rpb25J
bnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNr
ZW5kSW1wbD4gcHJwQ3Vyc29yLCBQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5LCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQpAQCAtMTUxLDcgKzEzMSw3IEBAIHZvaWQgSURCQ3Vy
c29yQmFja2VuZEltcGw6OmNvbnRpbnVlRnVuY3Rpb25JbnRlcm5hbChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjYWxsYmFja3MtPm9u
U3VjY2Vzc1dpdGhDb250aW51YXRpb24oKTsKKyAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhjdXJz
b3ItPmtleSgpLCBjdXJzb3ItPnByaW1hcnlLZXkoKSwgY3Vyc29yLT52YWx1ZSgpKTsKIH0KIAog
dm9pZCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6ZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IHBycENhbGxiYWNrcywgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuaApp
bmRleCAwNDNjNDAzNTJjZGQzYTNmZDYzZjk5NzJkMTY3MjFmMDQ4ZTJiMDk5Li4zMDA0ZjFmNTZk
NzczNmM1MDU2ZjdhZTZmMTE2ZDg1MmNmOWQ4YjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmgKQEAgLTU0LDkg
KzU0LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfklEQkN1cnNvckJhY2tlbmRJbXBsKCk7CiAK
ICAgICAvLyBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlCi0gICAgdmlydHVhbCBQYXNzUmVmUHRy
PElEQktleT4ga2V5KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQktleT4gcHJp
bWFyeUtleSgpIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IHZhbHVlKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZShQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgRXhjZXB0
aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBhZHZhbmNlKHVuc2lnbmVkIGxvbmcsIFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBj
b250aW51ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+LCBFeGNlcHRpb25Db2RlJik7CkBAIC02NSw2ICs2Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgcHJlZmV0Y2hSZXNldChpbnQgdXNlZFByZWZldGNoZXMsIGludCB1bnVzZWRQcmVm
ZXRjaGVzKTsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFN1Y2Nlc3NIYW5kbGVyQ2FsbGJhY2soKSB7
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKKyAgICBQYXNzUmVmUHRyPElEQktleT4ga2V5KCkg
Y29uc3QgeyByZXR1cm4gbV9jdXJzb3ItPmtleSgpOyB9CisgICAgUGFzc1JlZlB0cjxJREJLZXk+
IHByaW1hcnlLZXkoKSBjb25zdCB7IHJldHVybiBtX2N1cnNvci0+cHJpbWFyeUtleSgpOyB9Cisg
ICAgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlKCkgY29uc3QgeyByZXR1
cm4gKG1fY3Vyc29yVHlwZSA9PSBJbmRleEtleUN1cnNvcikgPyBTZXJpYWxpemVkU2NyaXB0VmFs
dWU6Om51bGxWYWx1ZSgpIDogU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGVGcm9tV2lyZSht
X2N1cnNvci0+dmFsdWUoKSk7IH0KICAgICB2b2lkIGNsb3NlKCk7CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5k
SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JC
YWNrZW5kSW50ZXJmYWNlLmgKaW5kZXggNDhkM2ExODI5ZjY1ODhlZGY2MTk3MzM3ZjMxOGIyYzA2
ZTkwYmNmMy4uNTQ3MjYzYmM1NDBmZmY1MTUzN2Y2MGVlNmVhNDdiMWZlYzk5NjBiOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZElu
dGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ckJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTMsMTAgKzUzLDYgQEAgcHVibGljOgogICAgICAgICBP
YmplY3RTdG9yZUN1cnNvcgogICAgIH07CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5
PiBrZXkoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFy
eUtleSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiB2YWx1ZSgpIGNvbnN0ID0gMDsKLQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoUGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4s
IEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFkdmFuY2UodW5zaWduZWQg
bG9uZyBjb3VudCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBFeGNlcHRpb25Db2RlJikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5PiBr
ZXksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZElt
cGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5k
SW1wbC5jcHAKaW5kZXggOWY1ZmYzYmFmY2EyNTQ5NzVhNDNjNDMwZWJjYTVlMjE4NjkwZWM2Ni4u
YWQ0Nzk4MWM5Y2MxOTlhZDQzMmUxZmI0M2I2YzYyNzI4YTgxOTllYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5j
cHAKQEAgLTk5LDggKzk5LDggQEAgdm9pZCBJREJJbmRleEJhY2tlbmRJbXBsOjpvcGVuQ3Vyc29y
SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHIKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIFJlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBjdXJz
b3IgPSBJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y3JlYXRlKGJhY2tpbmdTdG9yZUN1cnNvci5nZXQo
KSwgZGlyZWN0aW9uLCBjdXJzb3JUeXBlLCB0cmFuc2FjdGlvbi5nZXQoKSwgaW5kZXgtPm1fb2Jq
ZWN0U3RvcmVCYWNrZW5kKTsKLSAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhjdXJzb3IucmVsZWFz
ZSgpKTsKKyAgICBSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEltcGw+IGN1cnNvciA9IElEQkN1cnNv
ckJhY2tlbmRJbXBsOjpjcmVhdGUoYmFja2luZ1N0b3JlQ3Vyc29yLmdldCgpLCBkaXJlY3Rpb24s
IGN1cnNvclR5cGUsIHRyYW5zYWN0aW9uLmdldCgpLCBpbmRleC0+bV9vYmplY3RTdG9yZUJhY2tl
bmQpOworICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKGN1cnNvciwgY3Vyc29yLT5rZXkoKSwgY3Vy
c29yLT5wcmltYXJ5S2V5KCksIGN1cnNvci0+dmFsdWUoKSk7CiB9CiAKIHZvaWQgSURCSW5kZXhC
YWNrZW5kSW1wbDo6b3BlbkN1cnNvcihQYXNzUmVmUHRyPElEQktleVJhbmdlPiBwcnBLZXlSYW5n
ZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJw
Q2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uUHRy
LCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKaW5kZXggYjk2
MmU5NDg3YTIxNmZhYzU4OThlMGEwNzJlYjA2NWIzNjhmYjU0NS4uNzM4NjYzZmU5M2M4ZTQwYjY4
OTU2NzNiNmYzNDcwMTI1ZjkyMDhlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKQEAg
LTU4NSw4ICs1ODUsOCBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6Om9wZW5DdXJz
b3JJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzcwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGN1cnNvciA9
IElEQkN1cnNvckJhY2tlbmRJbXBsOjpjcmVhdGUoYmFja2luZ1N0b3JlQ3Vyc29yLnJlbGVhc2Uo
KSwgZGlyZWN0aW9uLCBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpPYmplY3RTdG9yZUN1cnNv
ciwgdHJhbnNhY3Rpb24uZ2V0KCksIG9iamVjdFN0b3JlLmdldCgpKTsKLSAgICBjYWxsYmFja3Mt
Pm9uU3VjY2VzcyhjdXJzb3IucmVsZWFzZSgpKTsKKyAgICBSZWZQdHI8SURCQ3Vyc29yQmFja2Vu
ZEltcGw+IGN1cnNvciA9IElEQkN1cnNvckJhY2tlbmRJbXBsOjpjcmVhdGUoYmFja2luZ1N0b3Jl
Q3Vyc29yLnJlbGVhc2UoKSwgZGlyZWN0aW9uLCBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpP
YmplY3RTdG9yZUN1cnNvciwgdHJhbnNhY3Rpb24uZ2V0KCksIG9iamVjdFN0b3JlLmdldCgpKTsK
KyAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhjdXJzb3IsIGN1cnNvci0+a2V5KCksIGN1cnNvci0+
cHJpbWFyeUtleSgpLCBjdXJzb3ItPnZhbHVlKCkpOwogfQogCiB2b2lkIElEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGw6OmNvdW50KFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHJhbmdlLCBQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UqIHRyYW5zYWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggYTFlYWYyOTMwYzFhMWViOGMy
N2JjZWU4ZTUyMjA5ZTgyNjk4NDM0ZS4uOTIyZWQ2NDQ4MzNiYmFmY2E2NzFkNTZhYmE3MGQ3OTFi
YWY1YjI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5jcHAKQEAgLTIwMCwxNSArMjAwLDE5IEBAIFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBJREJS
ZXF1ZXN0OjpnZXRSZXN1bHRDdXJzb3IoKQogICAgIHJldHVybiAwOwogfQogCi12b2lkIElEQlJl
cXVlc3Q6OnNldFJlc3VsdEN1cnNvcihQYXNzUmVmUHRyPElEQkN1cnNvcj4gcHJwQ3Vyc29yKQor
dm9pZCBJREJSZXF1ZXN0OjpzZXRSZXN1bHRDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3I+IGN1
cnNvciwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlL
ZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSkKIHsKICAgICBBU1NF
UlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcpOworICAgIG1fY3Vyc29yS2V5ID0ga2V5OworICAg
IG1fY3Vyc29yUHJpbWFyeUtleSA9IHByaW1hcnlLZXk7CisgICAgbV9jdXJzb3JWYWx1ZSA9IHZh
bHVlOworCiAgICAgaWYgKG1fY3Vyc29yVHlwZSA9PSBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNl
OjpJbmRleEtleUN1cnNvcikgewotICAgICAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKHBy
cEN1cnNvcik7CisgICAgICAgIG1fcmVzdWx0ID0gSURCQW55OjpjcmVhdGUoY3Vyc29yKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fcmVzdWx0ID0gSURCQW55OjpjcmVhdGUoSURC
Q3Vyc29yV2l0aFZhbHVlOjpmcm9tQ3Vyc29yKHBycEN1cnNvcikpOworICAgIG1fcmVzdWx0ID0g
SURCQW55OjpjcmVhdGUoSURCQ3Vyc29yV2l0aFZhbHVlOjpmcm9tQ3Vyc29yKGN1cnNvcikpOwog
fQogCiB2b2lkIElEQlJlcXVlc3Q6OmZpbmlzaEN1cnNvcigpCkBAIC0yNDgsNyArMjUyLDcgQEAg
dm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBkb21T
dHJpbmdMaXN0KQogICAgIGVucXVldWVFdmVudChjcmVhdGVTdWNjZXNzRXZlbnQoKSk7CiB9CiAK
LXZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZElu
dGVyZmFjZT4gYmFja2VuZCkKK3ZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8
SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgUGFzc1JlZlB0cjxJREJLZXk+IGtl
eSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiB2YWx1ZSkKIHsKICAgICBJREJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9uU3VjY2Vz
cyhJREJDdXJzb3IpIik7CiAgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1f
cmVhZHlTdGF0ZSA9PSBET05FKTsKQEAgLTI2Miw3ICsyNjYsNyBAQCB2b2lkIElEQlJlcXVlc3Q6
Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQp
CiAgICAgICAgIGN1cnNvciA9IElEQkN1cnNvcjo6Y3JlYXRlKGJhY2tlbmQsIG1fY3Vyc29yRGly
ZWN0aW9uLCB0aGlzLCBtX3NvdXJjZS5nZXQoKSwgbV90cmFuc2FjdGlvbi5nZXQoKSk7CiAgICAg
ZWxzZQogICAgICAgICBjdXJzb3IgPSBJREJDdXJzb3JXaXRoVmFsdWU6OmNyZWF0ZShiYWNrZW5k
LCBtX2N1cnNvckRpcmVjdGlvbiwgdGhpcywgbV9zb3VyY2UuZ2V0KCksIG1fdHJhbnNhY3Rpb24u
Z2V0KCkpOwotICAgIHNldFJlc3VsdEN1cnNvcihjdXJzb3IpOworICAgIHNldFJlc3VsdEN1cnNv
cihjdXJzb3IsIGtleSwgcHJpbWFyeUtleSwgdmFsdWUpOwogCiAgICAgZW5xdWV1ZUV2ZW50KGNy
ZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKIH0KQEAgLTM1OSwxNSArMzYzLDE2IEBAIHZvaWQgSURCUmVx
dWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBwcnBTZXJp
YWxpemVkU2NyaXB0CiAgICAgb25TdWNjZXNzKHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5yZWxlYXNl
KCkpOwogfQogCi12b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKQor
dm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1Jl
ZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiB2YWx1ZSkKIHsKLSAgICBJREJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9uU3VjY2Vzc1dpdGhDb250
aW51YXRpb24iKTsKKyAgICBJREJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9uU3VjY2VzcyhrZXksIHBy
aW1hcnlLZXksIHZhbHVlKSIpOwogICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8
fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CiAgICAgaWYgKG1fcmVxdWVzdEFib3J0ZWQpCiAgICAg
ICAgIHJldHVybjsKKyAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcpOwogICAgIEFT
U0VSVCghbV9lcnJvckNvZGUgJiYgbV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkgJiYgIW1fZXJyb3Ig
JiYgIW1fcmVzdWx0KTsKICAgICBBU1NFUlQobV9wZW5kaW5nQ3Vyc29yKTsKLSAgICBzZXRSZXN1
bHRDdXJzb3IobV9wZW5kaW5nQ3Vyc29yLnJlbGVhc2UoKSk7CisgICAgc2V0UmVzdWx0Q3Vyc29y
KG1fcGVuZGluZ0N1cnNvci5yZWxlYXNlKCksIGtleSwgcHJpbWFyeUtleSwgdmFsdWUpOwogICAg
IGVucXVldWVFdmVudChjcmVhdGVTdWNjZXNzRXZlbnQoKSk7CiB9CiAKQEAgLTQzOSw3ICs0NDQs
NyBAQCBib29sIElEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZl
bnQpCiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCkg
ewogICAgICAgICBjdXJzb3JUb05vdGlmeSA9IGdldFJlc3VsdEN1cnNvcigpOwogICAgICAgICBp
ZiAoY3Vyc29yVG9Ob3RpZnkpCi0gICAgICAgICAgICBjdXJzb3JUb05vdGlmeS0+c2V0VmFsdWVS
ZWFkeSgpOworICAgICAgICAgICAgY3Vyc29yVG9Ob3RpZnktPnNldFZhbHVlUmVhZHkobV9jdXJz
b3JLZXkucmVsZWFzZSgpLCBtX2N1cnNvclByaW1hcnlLZXkucmVsZWFzZSgpLCBtX2N1cnNvclZh
bHVlLnJlbGVhc2UoKSk7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFdoZW4gd2UgYWxsb3cgY3Vz
dG9tIGV2ZW50IGRpc3BhdGNoaW5nLCB0aGlzIHdpbGwgcHJvYmFibHkgbmVlZCB0byBjaGFuZ2Uu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKaW5kZXgg
YTgwNGMyYmQ1ZWIxYjczMWE1MTk3NTU4Njg5YWRiNmE2NWVhYmMzZS4uNzAxZDYxMTdlYWJjYjk3
NzM0MmFhNzVkNTEyMmRlOGY5YzZhMTRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuaApAQCAtODMsMTIgKzgzLDEyIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgb25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KTsKICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4pOwogICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2U+KTsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFj
a2VuZEludGVyZmFjZT4pOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJ
REJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRy
PElEQktleT4gcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsK
ICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5Pik7CiAgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBjb25zdCBJREJLZXlQYXRo
Jik7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKTsKKyAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJL
ZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiAgICAg
dmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElE
QktleT4gPiYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVjdG9yPFJl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
IC8vIE5vdCBpbXBsZW1lbnRlZC4gQ2FsbGJhY2sgc2hvdWxkIG5vdCByZWFjaCB0aGUgcmVuZGVy
ZXIgc2lkZS4KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCk7CiAKQEAgLTEyMiw3ICsxMjIs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRh
cmdldERhdGEoKTsKIAogICAgIFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBnZXRSZXN1bHRDdXJzb3Io
KTsKLSAgICB2b2lkIHNldFJlc3VsdEN1cnNvcihQYXNzUmVmUHRyPElEQkN1cnNvcj4pOworICAg
IHZvaWQgc2V0UmVzdWx0Q3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29yPiwgUGFzc1JlZlB0cjxJ
REJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+KTsKIAogICAgIFJlZlB0cjxJREJBbnk+IG1fc291cmNlOwogICAgIFJl
ZlB0cjxJREJUcmFuc2FjdGlvbj4gbV90cmFuc2FjdGlvbjsKQEAgLTEzNyw2ICsxMzcsOSBAQCBw
cml2YXRlOgogICAgIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkN1cnNvclR5cGUgbV9jdXJz
b3JUeXBlOwogICAgIElEQkN1cnNvcjo6RGlyZWN0aW9uIG1fY3Vyc29yRGlyZWN0aW9uOwogICAg
IFJlZlB0cjxJREJDdXJzb3I+IG1fcGVuZGluZ0N1cnNvcjsKKyAgICBSZWZQdHI8SURCS2V5PiBt
X2N1cnNvcktleTsKKyAgICBSZWZQdHI8SURCS2V5PiBtX2N1cnNvclByaW1hcnlLZXk7CisgICAg
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9jdXJzb3JWYWx1ZTsKIAogICAgIEV2ZW50
VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAppbmRleCBjNTg0YjFlOWZk
M2VhZmE5ZWZlYWM2MWQ0MTY1ZGYzNmM0MmVkOGE3Li4zMmIyOWI1NjNkNmE1NzIxYzEzNTJiZmQ1
YTY0MzM4ZjFhYjc1MjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTEwOCwxMyArMTA4LDEzIEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4p
IE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxET01T
dHJpbmdMaXN0PikgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNz
UmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+KSBPVkVSUklERSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4s
IFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KSBPVkVSUklERSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PikgT1ZFUlJJREUg
eyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZT4pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KSBPVkVSUklERSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwg
UGFzc1JlZlB0cjxJREJLZXk+LCBjb25zdCBJREJLZXlQYXRoJikgT1ZFUlJJREUgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKSBPVkVSUklERSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJ
REJLZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pIE9WRVJSSURFIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgVmVjdG9yPFJlZlB0
cjxJREJLZXk+ID4mLCBjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYsIGNvbnN0IFZlY3Rv
cjxSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiA+JikgT1ZFUlJJREUgeyB9CiAgICAgdmly
dHVhbCB2b2lkIG9uQmxvY2tlZCgpIE9WRVJSSURFIHsgfQogfTsKQEAgLTQ5MCwxMyArNDkwLDEz
IEBAIHB1YmxpYzoKICAgICAgICAgZW5kKGZhbHNlKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gaWRiQ3Vy
c29yKQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNr
ZW5kSW50ZXJmYWNlPiBpZGJDdXJzb3IsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQ
dHI8SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
dmFsdWUpCiAgICAgewogICAgICAgICBtX2lkYkN1cnNvciA9IGlkYkN1cnNvcjsKLSAgICAgICAg
b25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpOworICAgICAgICBvblN1Y2Nlc3Moa2V5LCBwcmlt
YXJ5S2V5LCB2YWx1ZSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhD
b250aW51YXRpb24oKQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJL
ZXk+IGtleSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChtX3NraXBDb3VudCkg
ewogICAgICAgICAgICAgLS1tX3NraXBDb3VudDsKQEAgLTUwOSw5ICs1MDksNiBAQCBwdWJsaWM6
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBSZWZQdHI8SURCS2V5
PiBrZXkgPSBtX2lkYkN1cnNvci0+a2V5KCk7Ci0gICAgICAgIFJlZlB0cjxJREJLZXk+IHByaW1h
cnlLZXkgPSBtX2lkYkN1cnNvci0+cHJpbWFyeUtleSgpOwotICAgICAgICBSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiB2YWx1ZSA9IG1faWRiQ3Vyc29yLT52YWx1ZSgpOwogICAgICAgICBS
ZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gd3JhcHBlZFZhbHVlID0g
bV9pbmplY3RlZFNjcmlwdC53cmFwU2VyaWFsaXplZE9iamVjdCh2YWx1ZS5nZXQoKSwgU3RyaW5n
KCkpOwogICAgICAgICBSZWZQdHI8RGF0YUVudHJ5PiBkYXRhRW50cnkgPSBEYXRhRW50cnk6OmNy
ZWF0ZSgpCiAgICAgICAgICAgICAuc2V0S2V5KGtleUZyb21JREJLZXkoa2V5LmdldCgpKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKaW5kZXgg
YTYzYzBiYzllZTZjNGNhZjJkNjdkOTVlNWQwMGExMWM5ZmNkODI5ZC4uODg1M2EwMTViYzA1MThm
ZGM3ZGVjZGIyMGRkMjExNTc3MzUyMWFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKQEAgLTUwLDEzICs1MCwxNyBAQCBwdWJsaWM6CiAg
ICAgLy8gRm9yIHRoZSByZXN0LCBwYXNzIG93bmVyc2hpcCB0byB0aGUgY2FsbGVlIHZpYSBhIHBv
aW50ZXIuCiAgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoY29uc3QgV2ViSURCRGF0YWJhc2VFcnJv
ciYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9u
U3VjY2Vzcyhjb25zdCBXZWJET01TdHJpbmdMaXN0JikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkN1cnNvciopIHsgV0VC
S0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG5v
LW9wIG1ldGhvZCB3aGVuIGNhbGxlcnMgYXJlIHVwZGF0ZWQuCisgICAgdmlydHVhbCB2b2lkIG9u
U3VjY2VzcyhXZWJJREJDdXJzb3IqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdl
YklEQkN1cnNvciosIGNvbnN0IFdlYklEQktleSYga2V5LCBjb25zdCBXZWJJREJLZXkmIHByaW1h
cnlLZXksIGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYpIHsgV0VCS0lUX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJEYXRhYmFz
ZSopIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9u
U3VjY2Vzcyhjb25zdCBXZWJJREJLZXkmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCVHJhbnNhY3Rpb24qKSB7IFdFQktJ
VF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29u
c3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSYsIGNvbnN0IFdlYklEQktleSYsIGNvbnN0IFdlYklEQktleVBhdGgmKSB7IFdFQktJ
VF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRo
Q29udGludWF0aW9uKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICAvLyBG
SVhNRTogUmVtb3ZlIHRoaXMgbm8tb3AgbWV0aG9kIHdoZW4gY2FsbGVycyBhcmUgdXBkYXRlZC4K
KyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViSURCS2V5JiBrZXksIGNvbnN0IFdlYklEQktl
eSYgcHJpbWFyeUtleSwgY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJikgeyBXRUJLSVRf
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCkgeyBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNz
V2l0aFByZWZldGNoKGNvbnN0IFdlYlZlY3RvcjxXZWJJREJLZXk+JiBrZXlzLCBjb25zdCBXZWJW
ZWN0b3I8V2ViSURCS2V5PiYgcHJpbWFyeUtleXMsIGNvbnN0IFdlYlZlY3RvcjxXZWJTZXJpYWxp
emVkU2NyaXB0VmFsdWU+JiB2YWx1ZXMpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ3Vy
c29yLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDdXJzb3IuaAppbmRl
eCBkZmFkMTkzODM1YTYwN2JkOWQ0MzExY2ViZTI5MDMwZDgxZGM4YmFiLi4wYmQzMTJlNzljMjlh
YjQyMTkzNzgzZTA4N2FlMzBlMTg1MGM3NGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJREJDdXJzb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJJREJDdXJzb3IuaApAQCAtNDAsNiArNDAsNyBAQCBjbGFzcyBXZWJJREJDdXJz
b3IgewogcHVibGljOgogICAgIHZpcnR1YWwgfldlYklEQkN1cnNvcigpIHsgfQogCisgICAgLy8g
RklYTUU6IFJlbW92ZSB0aGVzZSBtZXRob2RzIHdoZW4gY2FsbGVycyBhcmUgdXBkYXRlZC4KICAg
ICB2aXJ0dWFsIFdlYklEQktleSBrZXkoKSBjb25zdAogICAgIHsKICAgICAgICAgV0VCS0lUX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
Q2FsbGJhY2tzUHJveHkuY3BwCmluZGV4IDdkZjg0ZDJmZmJlMDc5NjEzNTU2NWZhMDJjZjdlOGUx
YWQ4MjA5MmMuLjdkMmM5Y2Y5OWMxMjNmMDlhNDQxNDMzZjkwMDgwMDI0Y2QwOTc4YjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKQEAg
LTY4LDkgKzY4LDkgQEAgdm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25FcnJvcihQYXNzUmVmUHRy
PElEQkRhdGFiYXNlRXJyb3I+IGlkYkRhdGFiYXNlRXJyb3IpCiAgICAgbV9jYWxsYmFja3MtPm9u
RXJyb3IoV2ViSURCRGF0YWJhc2VFcnJvcihpZGJEYXRhYmFzZUVycm9yKSk7CiB9CiAKLXZvaWQg
SURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJ
bnRlcmZhY2U+IGlkYkN1cnNvckJhY2tlbmQpCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1
Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBpZGJDdXJzb3JCYWNr
ZW5kLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtl
eSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlKQogewotICAgIG1fY2Fs
bGJhY2tzLT5vblN1Y2Nlc3MobmV3IFdlYklEQkN1cnNvckltcGwoaWRiQ3Vyc29yQmFja2VuZCkp
OworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MobmV3IFdlYklEQkN1cnNvckltcGwoaWRiQ3Vy
c29yQmFja2VuZCksIGtleSwgcHJpbWFyeUtleSwgdmFsdWUpOwogfQogCiB2b2lkIElEQkNhbGxi
YWNrc1Byb3h5OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2U+IGJhY2tlbmQpCkBAIC0xMDIsOSArMTAyLDEwIEBAIHZvaWQgSURCQ2FsbGJhY2tzUHJveHk6
Om9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZFNj
CiB7CiAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhzZXJpYWxpemVkU2NyaXB0VmFsdWUsIGtl
eSwga2V5UGF0aCk7CiB9Ci12b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3NXaXRoQ29u
dGludWF0aW9uKCkKKwordm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQ
dHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUpCiB7Ci0gICAgbV9jYWxsYmFja3MtPm9uU3Vj
Y2Vzc1dpdGhDb250aW51YXRpb24oKTsKKyAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKGtleSwg
cHJpbWFyeUtleSwgdmFsdWUpOwogfQogCiB2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nl
c3NXaXRoUHJlZmV0Y2goY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mIGtleXMsIGNvbnN0
IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiBwcmltYXJ5S2V5cywgY29uc3QgVmVjdG9yPFJlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mIHZhbHVlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCmluZGV4IGRiMzA1NjU1MGIyYjJlMTdlMmUz
MGRkZWY3OWU5ZGQyOWMyNWZmYmQuLjRjNzBiNjY2ZWFjODEzZjliOThlY2Y4NzJlNzhjZDI0ODZk
NjdlMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNr
c1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJv
eHkuaApAQCAtNDcsMTMgKzQ3LDEzIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBvbkVy
cm9yKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VFcnJvcj4pOwogICAgIHZpcnR1YWwg
dm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpET01TdHJpbmdMaXN0Pik7Ci0gICAg
dmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U+KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2Vi
Q29yZTo6SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURC
S2V5PiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8
V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4pOwog
ICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+KTsK
ICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNz
UmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAgIHZpcnR1YWwgdm9p
ZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIGNvbnN0IFdlYkNvcmU6OklEQktleVBhdGgmKTsK
LSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpOworICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQYXNzUmVmUHRy
PFdlYkNvcmU6OklEQktleT4gcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxp
emVkU2NyaXB0VmFsdWU+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aFByZWZldGNo
KGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiA+JiBrZXlzLCBjb25zdCBWZWN0
b3I8UmVmUHRyPFdlYkNvcmU6OklEQktleT4gPiYgcHJpbWFyeUtleXMsIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiA+JiB2YWx1ZXMpOwogICAgIHZp
cnR1YWwgdm9pZCBvbkJsb2NrZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQkN1cnNvckJhY2tlbmRQcm94eS5jcHAKaW5kZXggY2EzOTBiYTkwNzQyN2UwOGZk
NDc4YmI5NWNmOWUyYzQxNmNkMmZmYi4uMmE1ZjcwNDBhYzExZjBlNGY2MjcxZTA4ZGJhNTg1Mzk0
NzRkMzExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ3Vyc29y
QmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJz
b3JCYWNrZW5kUHJveHkuY3BwCkBAIC01NCwyMSArNTQsNiBAQCBJREJDdXJzb3JCYWNrZW5kUHJv
eHk6On5JREJDdXJzb3JCYWNrZW5kUHJveHkoKQogewogfQogCi1QYXNzUmVmUHRyPElEQktleT4g
SURCQ3Vyc29yQmFja2VuZFByb3h5OjprZXkoKSBjb25zdAotewotICAgIHJldHVybiBtX2lkYkN1
cnNvci0+a2V5KCk7Ci19Ci0KLVBhc3NSZWZQdHI8SURCS2V5PiBJREJDdXJzb3JCYWNrZW5kUHJv
eHk6OnByaW1hcnlLZXkoKSBjb25zdAotewotICAgIHJldHVybiBtX2lkYkN1cnNvci0+cHJpbWFy
eUtleSgpOwotfQotCi1QYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gSURCQ3Vyc29y
QmFja2VuZFByb3h5Ojp2YWx1ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faWRiQ3Vyc29yLT52
YWx1ZSgpOwotfQotCiB2b2lkIElEQkN1cnNvckJhY2tlbmRQcm94eTo6dXBkYXRlKFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
IGNhbGxiYWNrcywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgbV9pZGJDdXJzb3ItPnVwZGF0
ZSh2YWx1ZSwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgZWMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JCYWNrZW5kUHJveHkuaAppbmRl
eCA5ZTRiNTcwMDgxMjZmMzk2Y2QxNGY2MzNjNmEzYTQxZDZiNTkwMjg1Li5lOTUzM2ZiNDhiMGM5
OTMwZGU1ZDA2YTM3OGY3N2RkMDlhMjg2M2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJDdXJzb3JCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJDdXJzb3JCYWNrZW5kUHJveHkuaApAQCAtNDIsOSArNDIsNiBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEludGVy
ZmFjZT4gY3JlYXRlKFBhc3NPd25QdHI8V2ViSURCQ3Vyc29yPik7CiAgICAgdmlydHVhbCB+SURC
Q3Vyc29yQmFja2VuZFByb3h5KCk7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
SURCS2V5PiBrZXkoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURC
S2V5PiBwcmltYXJ5S2V5KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CiAg
ICAgdmlydHVhbCB2b2lkIGFkdmFuY2UodW5zaWduZWQgbG9uZywgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpJREJDYWxsYmFja3M+LCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2
b2lkIGNvbnRpbnVlRnVuY3Rpb24oUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQYXNzUmVm
UHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAK
aW5kZXggNWI1YWVkZjdjY2IzN2UyNDljNTNjMWFmOWU4ZWM4ZWQ5YjBlNmUxMi4uMDgzZGJjY2Jl
MjY3NWYyMDk5YjUzNTU3ZjQwMTY4ZTNlMDgzZDc2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTY1LDkgKzY1LDkgQEAg
dm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoY29uc3QgV2ViRE9NU3RyaW5nTGlz
dCYgZG9tU3RyaW5nTGlzdCkKICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKGRvbVN0cmluZ0xp
c3QpOwogfQogCi12b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhXZWJJREJDdXJz
b3IqIGN1cnNvcikKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKFdlYklEQkN1
cnNvciogY3Vyc29yLCBjb25zdCBXZWJJREJLZXkmIGtleSwgY29uc3QgV2ViSURCS2V5JiBwcmlt
YXJ5S2V5LCBjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIHZhbHVlKQogewotICAgIG1f
Y2FsbGJhY2tzLT5vblN1Y2Nlc3MoSURCQ3Vyc29yQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQ
dHIoY3Vyc29yKSkpOworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoSURCQ3Vyc29yQmFja2Vu
ZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIoY3Vyc29yKSksIGtleSwgcHJpbWFyeUtleSwgdmFsdWUp
OwogfQogCiB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhXZWJJREJEYXRhYmFz
ZSogd2ViS2l0SW5zdGFuY2UpCkBAIC05NSw5ICs5NSw5IEBAIHZvaWQgV2ViSURCQ2FsbGJhY2tz
SW1wbDo6b25TdWNjZXNzKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgc2VyaWFsaXpl
ZFNjCiAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhzZXJpYWxpemVkU2NyaXB0VmFsdWUsIGtl
eSwga2V5UGF0aCk7CiB9CiAKLXZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzV2l0
aENvbnRpbnVhdGlvbigpCit2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2Vzcyhjb25z
dCBXZWJJREJLZXkmIGtleSwgY29uc3QgV2ViSURCS2V5JiBwcmltYXJ5S2V5LCBjb25zdCBXZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUmIHZhbHVlKQogewotICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nl
c3NXaXRoQ29udGludWF0aW9uKCk7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhrZXksIHBy
aW1hcnlLZXksIHZhbHVlKTsKIH0KIAogdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvbkJsb2Nr
ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJh
Y2tzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1w
bC5oCmluZGV4IDdiMDIxNjM1OWQ1NmQ4MTg2OTVmZTk3M2EwMTgyYWZiNTEyNTAxNjEuLjMwZDc0
MzZjNmE1OWY0ODk2MjkwNTI2MDJhZjg5Mzg0ODMyYjM5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKQEAgLTQzLDEzICs0MywxMyBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihjb25zdCBXZWJJREJEYXRhYmFz
ZUVycm9yJik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJET01TdHJpbmdM
aXN0Jik7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJDdXJzb3IqKTsKKyAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkN1cnNvciosIGNvbnN0IFdlYklEQktleSYsIGNv
bnN0IFdlYklEQktleSYgcHJpbWFyeUtleSwgY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVl
Jik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSopOwogICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViSURCS2V5Jik7CiAgICAgdmlydHVhbCB2b2lk
IG9uU3VjY2VzcyhXZWJJREJUcmFuc2FjdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJik7CiAgICAgdmlydHVhbCB2b2lkIG9u
U3VjY2Vzcyhjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmLCBjb25zdCBXZWJJREJLZXkm
LCBjb25zdCBXZWJJREJLZXlQYXRoJik7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhD
b250aW51YXRpb24oKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYklEQktl
eSYsIGNvbnN0IFdlYklEQktleSYgcHJpbWFyeUtleSwgY29uc3QgV2ViU2VyaWFsaXplZFNjcmlw
dFZhbHVlJik7CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpOwogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmNwcAppbmRleCBl
OWMwZTA0YWYwMzczMjRjNDE2NGMzYzVhMTJjZDFiN2ExZmIxY2U4Li4wZjJiODczNGE3MWEyNDM2
OWYyODViNGNlMjk4ZGVmODg3Y2JjMGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJDdXJzb3JJbXBsLmNwcApAQCAtNDcsMjEgKzQ3LDYgQEAgV2ViSURCQ3Vyc29y
SW1wbDo6fldlYklEQkN1cnNvckltcGwoKQogewogfQogCi1XZWJJREJLZXkgV2ViSURCQ3Vyc29y
SW1wbDo6a2V5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pZGJDdXJzb3JCYWNrZW5kLT5rZXko
KTsKLX0KLQotV2ViSURCS2V5IFdlYklEQkN1cnNvckltcGw6OnByaW1hcnlLZXkoKSBjb25zdAot
ewotICAgIHJldHVybiBtX2lkYkN1cnNvckJhY2tlbmQtPnByaW1hcnlLZXkoKTsKLX0KLQotV2Vi
U2VyaWFsaXplZFNjcmlwdFZhbHVlIFdlYklEQkN1cnNvckltcGw6OnZhbHVlKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9pZGJDdXJzb3JCYWNrZW5kLT52YWx1ZSgpOwotfQotCiB2b2lkIFdlYklE
QkN1cnNvckltcGw6OnVwZGF0ZShjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIHZhbHVl
LCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgV2ViRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgbV9pZGJDdXJzb3JCYWNrZW5kLT51cGRhdGUodmFsdWUsIElEQkNhbGxiYWNrc1Byb3h5Ojpj
cmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSksIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkN1cnNvckltcGwuaAppbmRleCBmMGQzODdiNjIxOTc2ODdhODE2YWQxZGM3
NTU1Y2RjMjdlZmJhZmM1Li43MmEyNmE4Yjg3Mzk2NTUwMjhmZmY2M2I5MDJhZDJlNDJhMzllOGEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDdXJzb3JJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5oCkBA
IC00NCw5ICs0NCw2IEBAIHB1YmxpYzoKICAgICBXZWJJREJDdXJzb3JJbXBsKFdURjo6UGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgdmlydHVhbCB+
V2ViSURCQ3Vyc29ySW1wbCgpOwogCi0gICAgdmlydHVhbCBXZWJJREJLZXkga2V5KCkgY29uc3Q7
Ci0gICAgdmlydHVhbCBXZWJJREJLZXkgcHJpbWFyeUtleSgpIGNvbnN0OwotICAgIHZpcnR1YWwg
V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIHZhbHVlKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZShjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmLCBXZWJJREJDYWxsYmFja3Mq
LCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIGFkdmFuY2UodW5zaWduZWQg
bG9uZywgV2ViSURCQ2FsbGJhY2tzKiwgV2ViRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwg
dm9pZCBjb250aW51ZUZ1bmN0aW9uKGNvbnN0IFdlYklEQktleSYsIFdlYklEQkNhbGxiYWNrcyos
IFdlYkV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcAppbmRleCBkOWUzZDY5N2IxOTdjNzQwNmY2
M2JhZWI0ODM5MzFiNGVhYzk1MDg1Li45MWM1MDVjZWFhNjA0ODYxZDhjMTQzMmNkYTc2MTgxMzI3
OGM3MmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0
T25Db3JydXB0VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJB
Ym9ydE9uQ29ycnVwdFRlc3QuY3BwCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICAgICAg
bV93YXNFcnJvckNhbGxlZCA9IHRydWU7CiAgICAgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+KSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4s
IFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KQogICAgIHsKICAgICAgICAgRVhQRUNU
X1RSVUUoZmFsc2UpOwpAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBjb25zdCBJREJLZXlQYXRoJikg
eyB9Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJ
REJLZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pIHsgfTsKICAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzV2l0aFByZWZldGNoKGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5
PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mLCBjb25zdCBWZWN0b3I8UmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2Nr
ZWQoKSB7IH0KIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcAppbmRleCA1YzAxZTllY2MzMWMyNWZkMTBk
MGIxODdmNDBkMjM3OTczMzYxYjBiLi4yMjc3ODg3NWZhOTM0MDIwNzg3MzAxMzhlMTNhMzQ2MTZm
NDM1OTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFi
YXNlQmFja2VuZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURC
RGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIH0K
ICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KSBP
VkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8RE9NU3Ry
aW5nTGlzdD4pIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1Jl
ZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVh
bCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+LCBQ
YXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+KSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNz
KFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPikgT1ZFUlJJREUKICAgICB7
CiAgICAgICAgIG1fd2FzU3VjY2Vzc0RCQ2FsbGVkID0gdHJ1ZTsKQEAgLTg2LDcgKzg2LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2U+KSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25T
dWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPikgT1ZFUlJJREUgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgY29uc3QgSURCS2V5UGF0aCYpIE9WRVJSSURFIHsgfTsK
LSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpIE9WRVJSSURFIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVm
UHRyPElEQktleT4sIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPikgT1ZFUlJJREUg
eyB9OwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgVmVjdG9y
PFJlZlB0cjxJREJLZXk+ID4mLCBjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYsIGNvbnN0
IFZlY3RvcjxSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiA+JikgT1ZFUlJJREUgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpIE9WRVJSSURFIHsgfQogcHJpdmF0ZToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155861</attachid>
            <date>2012-08-01 12:25:33 -0700</date>
            <delta_ts>2012-08-09 14:15:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92278-20120801132514.patch</filename>
            <type>text/plain</type>
            <size>38441</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTkwZDNiMWMyNjEzMjEw
ZDNkM2RiNTQzNDg4MzZjNjczYWI0NGU5MC4uZTkwOTdiMzJmYTBhYmM1N2ZmYjkzY2E4YzBkNmJh
NTZjYmY3Nzc4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA4LTAxICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBQYXNz
IGN1cnNvciBjb250aW51ZSByZXN1bHRzIGJhY2sgaW4gY2FsbGJhY2sKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjc4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcGx5IHRoZSB1cGRhdGVkIGN1cnNv
ciBrZXkvcHJpbWFyeUtleS92YWx1ZSBpbiB0aGUgc3VjY2VzcyBjYWxsYmFjaywKKyAgICAgICAg
cmF0aGVyIHRoYW4gZm9yY2luZyB0aGUgY2FsbGVlIHRvIG1ha2UgdGhyZWUgY2FsbHMgaW50byB0
aGUgYmFjayBlbmQgdG8KKyAgICAgICAgZmV0Y2ggdGhlbS4gQ2FsbGJhY2tzIG9uU3VjY2Vzcyhj
dXJzb3IpIGFuZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCkKKyAgICAgICAgYXJlIGdpdmVu
IHRoZSB0aHJlZSBuZXcgcGF5bG9hZCBwYXJhbWV0ZXJzIChhbmQgdGhlIGxhdHRlciBpcyByZW5h
bWVkLikKKworICAgICAgICBObyBuZXcgdGVzdHMgLSBubyBiZWhhdmlvcmFsIGNoYW5nZXMuCisK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaDogVXBkYXRlZCBjYWxs
YmFja3MuCisgICAgICAgIChJREJDYWxsYmFja3MpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OnNldFZhbHVl
UmVhZHkpOiBUYWtlcyB2YWx1ZXMgcmF0aGVyIHRoYW4gZmV0Y2hpbmcgdGhlbS4KKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaDoKKyAgICAgICAgKElEQkN1cnNvcik6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwOiBEZWxl
dGUgYWNjZXNzb3JzLgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6OmFk
dmFuY2VJbnRlcm5hbCk6IFBhc3MgYWxvbmcgdXBkYXRlZCBjdXJzb3Igc3RhdGUuCisgICAgICAg
IChXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y29udGludWVGdW5jdGlvbkludGVybmFs
KTogRGl0dG8uCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZElt
cGwuaDoKKyAgICAgICAgKElEQkN1cnNvckJhY2tlbmRJbXBsKTogRGVsZXRlIGFjY2Vzc29ycyBm
cm9tIGludGVyZmFjZS4uLgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6
OmtleSk6IC4uLmJ1dCBrZWVwIHRoZW0gZm9yIHVzZSB3aXRoaW4gYmFjay1lbmQuCisgICAgICAg
IChXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6cHJpbWFyeUtleSk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6dmFsdWUpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaDogRGVsZXRlIGFjY2Vzc29ycy4K
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkluZGV4QmFja2VuZEltcGw6Om9wZW5DdXJzb3JJbnRlcm5hbCk6
IFBhc3MgYWxvbmcgbmV3IGN1cnNvciBzdGF0ZS4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9i
amVjdFN0b3JlQmFja2VuZEltcGw6Om9wZW5DdXJzb3JJbnRlcm5hbCk6IERpdHRvLgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCUmVxdWVzdDo6c2V0UmVzdWx0Q3Vyc29yKTogU3Rhc2ggdXBkYXRlZCBjdXJzb3Igc3RhdGUg
dW50aWwgZGlzcGF0Y2guCisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3Mp
OgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudCk6IFVwZGF0ZSBj
dXJzb3Igd2l0aCBuZXcgc3RhdGUuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5oOgorICAgICAgICAoSURCUmVxdWVzdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckluZGV4ZWREQkFnZW50LmNwcDogVXBkYXRlIGl0ZXJhdGlvbiBjb2RlIHRvIHVzZSBuZXcg
Y2FsbGJhY2tzLgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDgtMDEgIEtlaXNoaSBIYXR0
b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQXR0ZW1wdCB0byBmaXggZmxha2lu
ZXNzIG9mIGNvbG9yLXN1Z2dlc3Rpb24tcGlja2VyLWFwcGVhcmFuY2UuaHRtbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCA5OWM5NWNlMzJiNGQ3ZDY3ODgyOGMwN2RhY2Q2Mjc5OThkNTBk
NjBlLi40MmFjY2M5YzRmZTliZGYwN2I1NDRjNDAxNjFiZTNlMWQxZjU5ZWQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTA4LTAxICBKb3NodWEgQmVs
bCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBQYXNzIGN1cnNv
ciBjb250aW51ZSByZXN1bHRzIGJhY2sgaW4gY2FsbGJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcGx5IHRoZSB1cGRhdGVkIGN1cnNvciBrZXkv
cHJpbWFyeUtleS92YWx1ZSBpbiB0aGUgc3VjY2VzcyBjYWxsYmFjaywKKyAgICAgICAgcmF0aGVy
IHRoYW4gZm9yY2luZyB0aGUgY2FsbGVlIHRvIG1ha2UgdGhyZWUgY2FsbHMgaW50byB0aGUgYmFj
ayBlbmQgdG8KKyAgICAgICAgZmV0Y2ggdGhlbS4gQ2FsbGJhY2tzIG9uU3VjY2VzcyhjdXJzb3Ip
IGFuZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCkKKyAgICAgICAgYXJlIGdpdmVuIHRoZSB0
aHJlZSBuZXcgcGF5bG9hZCBwYXJhbWV0ZXJzIChhbmQgdGhlIGxhdHRlciBpcyByZW5hbWVkLikK
KworICAgICAgICAqIHB1YmxpYy9XZWJJREJDYWxsYmFja3MuaDoKKyAgICAgICAgKFdlYklEQkNh
bGxiYWNrcyk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrczo6b25TdWNjZXNzKTog
UmVwbGFjZSB3aXRoIG5vLW9wIHN0dWIuCisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNr
czo6b25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbik6IERpdHRvLgorICAgICAgICAqIHB1YmxpYy9X
ZWJJREJDdXJzb3IuaDoKKyAgICAgICAgKFdlYklEQkN1cnNvcik6IE1ldGhvZHMgY2FuIGJlIHJl
bW92ZWQgb25jZSBDaHJvbWl1bSBpcyBjbGVhbmVkIHVwLgorICAgICAgICAqIHNyYy9JREJDYWxs
YmFja3NQcm94eS5jcHA6IFVwZGF0ZWQgY2FsbGJhY2tzLgorICAgICAgICAoV2ViS2l0OjpJREJD
YWxsYmFja3NQcm94eTo6b25TdWNjZXNzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICog
c3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmg6IFVwZGF0ZWQgY2FsbGJhY2tzLgorICAgICAgICAoSURC
Q2FsbGJhY2tzUHJveHkpOgorICAgICAgICAqIHNyYy9JREJDdXJzb3JCYWNrZW5kUHJveHkuY3Bw
OiBSZW1vdmUgYmFjayBlbmQgYWNjZXNzb3JzLgorICAgICAgICAqIHNyYy9JREJDdXJzb3JCYWNr
ZW5kUHJveHkuaDoKKyAgICAgICAgKElEQkN1cnNvckJhY2tlbmRQcm94eSk6CisgICAgICAgICog
c3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwOiBVcGRhdGVkIGNhbGxiYWNrcy4KKyAgICAgICAg
KFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKToKKyAgICAgICAgKiBzcmMv
V2ViSURCQ2FsbGJhY2tzSW1wbC5oOiBVcGRhdGVkIGNhbGxiYWNrcy4KKyAgICAgICAgKFdlYklE
QkNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJJREJDdXJzb3JJbXBsLmNwcDogUmVt
b3ZlIGJhY2sgZW5kIGFjY2Vzc29ycy4KKyAgICAgICAgKiBzcmMvV2ViSURCQ3Vyc29ySW1wbC5o
OiBSZW1vdmUgYmFjayBlbmQgYWNjZXNzb3JzLgorICAgICAgICAoV2ViSURCQ3Vyc29ySW1wbCk6
CisgICAgICAgICogdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcDogVXBkYXRlIHRlc3Qg
c3R1YnMuCisgICAgICAgIChXZWJDb3JlOjpNb2NrSURCQ2FsbGJhY2tzOjpvblN1Y2Nlc3MpOgor
ICAgICAgICAqIHRlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwOiBEaXR0by4KKwogMjAx
Mi0wNy0zMSAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtDaHJvbWl1bV0gRW5hYmxlIEVOQUJMRV9JTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERT
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFj
a3MuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCmlu
ZGV4IDg1M2ZmYzcyZDI2MDM5MWZjYzQzNjY0ZDU3M2ZjNWRhZTMwMmRjMGYuLjY5MzA2ZTUwNGM2
M2FmYTkwZjYyYjVkOTQ3ZWQ1YTc3NWE0ZGZmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCkBAIC01MCwxNCArNTAsMjMgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgfklEQkNhbGxiYWNrcygpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIG9u
RXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPikgPSAwOworICAgIC8vIEZyb20gSURC
RmFjdG9yeS53ZWJraXRHZXREYXRhYmFzZU5hbWVzKCkKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNj
ZXNzKFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb25T
dWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4pID0gMDsKKyAgICAv
LyBGcm9tIElEQk9iamVjdFN0b3JlL0lEQkluZGV4Lm9wZW5DdXJzb3IoKSwgSURCSW5kZXgub3Bl
bktleUN1cnNvcigpCisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1
cnNvckJhY2tlbmRJbnRlcmZhY2U+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURC
S2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pID0gMDsK
KyAgICAvLyBGcm9tIElEQkZhY3Rvcnkub3BlbigpCiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vz
cyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4pID0gMDsKKyAgICAvLyBG
cm9tIElEQk9iamVjdFN0b3JlLmFkZCgpL3B1dCgpLCBJREJJbmRleC5nZXRLZXkoKQogICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+KSA9IDA7CisgICAgLy8gRnJv
bSBJREJEYXRhYmFzZS50cmFuc2FjdGlvbigpCiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQ
YXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pID0gMDsKKyAgICAvLyBG
cm9tIElEQk9iamVjdFN0b3JlL0lEQkluZGV4LmdldCgpL2NvdW50KCksIGFuZCB2YXJpb3VzIG1l
dGhvZHMgdGhhdCB5aWVsZCBudWxsL3VuZGVmaW5lZC4KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNj
ZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPikgPSAwOworICAgIC8vIEZyb20g
SURCT2JqZWN0U3RvcmUvSURCSW5kZXguZ2V0KCkgKHdpdGgga2V5IGluamVjdGlvbikKICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwg
UGFzc1JlZlB0cjxJREJLZXk+LCBjb25zdCBJREJLZXlQYXRoJikgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCkgPSAwOworICAgIC8vIEZyb20gSURCQ3Vy
c29yLmFkdmFuY2UoKS9jb250aW51ZSgpCisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNz
UmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pID0gMDsKKyAgICAvLyBGcm9tIElEQkN1cnNvci5hZHZh
bmNlKCkvY29udGludWUoKQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2go
Y29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mIGtleXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8
SURCS2V5PiA+JiBwcmltYXJ5S2V5cywgY29uc3QgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+ID4mIHZhbHVlcykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKSA9
IDA7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5j
cHAKaW5kZXggMDVkZGIyNTFlNGZhMmMxNzk2ZWI1ZTIzYTg4N2RmMjhlN2E0N2RhNi4uMDJkZTk0
OGJlMDE4NWI0ZGQ4YTkyYjgxNTU2NGEwNzI0NDJjMGRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0yNDcsMTIgKzI0NywxMiBAQCB2
b2lkIElEQkN1cnNvcjo6Y2xvc2UoKQogICAgIG1fcmVxdWVzdC5jbGVhcigpOwogfQogCi12b2lk
IElEQkN1cnNvcjo6c2V0VmFsdWVSZWFkeSgpCit2b2lkIElEQkN1cnNvcjo6c2V0VmFsdWVSZWFk
eShQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwg
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHBycFZhbHVlKQogewotICAgIG1fY3Vy
cmVudEtleSA9IG1fYmFja2VuZC0+a2V5KCk7Ci0gICAgbV9jdXJyZW50UHJpbWFyeUtleSA9IG1f
YmFja2VuZC0+cHJpbWFyeUtleSgpOworICAgIG1fY3VycmVudEtleSA9IGtleTsKKyAgICBtX2N1
cnJlbnRQcmltYXJ5S2V5ID0gcHJpbWFyeUtleTsKIAotICAgIFJlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IHZhbHVlID0gbV9iYWNrZW5kLT52YWx1ZSgpOworICAgIFJlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+IHZhbHVlID0gcHJwVmFsdWU7CiAgICAgaWYgKCFpc0tleUN1cnNvcigp
KSB7CiAgICAgICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZT4gb2JqZWN0U3RvcmUgPSBlZmZlY3Rp
dmVPYmplY3RTdG9yZSgpOwogICAgICAgICBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhIG1l
dGFkYXRhID0gb2JqZWN0U3RvcmUtPm1ldGFkYXRhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCmluZGV4IGZkNDZjYmJjYTA3ZjRmMzIzMzcyNzJmZjRj
ZTYxM2E2ZTUyODE4NDEuLjU5MDgyODg1OWE3YTMxZDhmMDg4NzFmMmM0MWRmOTMyMDNmYTE3ZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCkBAIC04
Miw3ICs4Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcG9zdFN1Y2Nlc3NIYW5kbGVyQ2FsbGJh
Y2soKTsKICAgICB2b2lkIGNsb3NlKCk7Ci0gICAgdm9pZCBzZXRWYWx1ZVJlYWR5KCk7CisgICAg
dm9pZCBzZXRWYWx1ZVJlYWR5KFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+
IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiAKICAgICAv
LyBUaGUgc3BlYyByZXF1aXJlcyB0aGF0IHRoZSBzY3JpcHQgb2JqZWN0IHRoYXQgd3JhcHMgdGhl
IHZhbHVlCiAgICAgLy8gYmUgdW5jaGFuZ2VkIHVudGlsIHRoZSB2YWx1ZSBjaGFuZ2VzIGFzIGEg
cmVzdWx0IG9mIHRoZSBjdXJzb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcAppbmRleCAwYTM5YThmYmM2OWUw
NjczZjczNzI3NjEyYjkxZWNiNTFhZDlhMDk3Li5hOWNkOTdkYjY4ZDU0ZWRlYTNlY2ZiZDgxZTM2
ZTMyZTRiMjc5YTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwCkBAIC02MywyNiArNjMsNiBAQCBJREJD
dXJzb3JCYWNrZW5kSW1wbDo6fklEQkN1cnNvckJhY2tlbmRJbXBsKCkKICAgICBtX29iamVjdFN0
b3JlLmNsZWFyKCk7CiB9CiAKLVBhc3NSZWZQdHI8SURCS2V5PiBJREJDdXJzb3JCYWNrZW5kSW1w
bDo6a2V5KCkgY29uc3QKLXsKLSAgICBJREJfVFJBQ0UoIklEQkN1cnNvckJhY2tlbmRJbXBsOjpr
ZXkiKTsKLSAgICByZXR1cm4gbV9jdXJzb3ItPmtleSgpOwotfQotCi1QYXNzUmVmUHRyPElEQktl
eT4gSURCQ3Vyc29yQmFja2VuZEltcGw6OnByaW1hcnlLZXkoKSBjb25zdAotewotICAgIElEQl9U
UkFDRSgiSURCQ3Vyc29yQmFja2VuZEltcGw6OnByaW1hcnlLZXkiKTsKLSAgICByZXR1cm4gbV9j
dXJzb3ItPnByaW1hcnlLZXkoKTsKLX0KLQotUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IElEQkN1cnNvckJhY2tlbmRJbXBsOjp2YWx1ZSgpIGNvbnN0Ci17Ci0gICAgSURCX1RSQUNF
KCJJREJDdXJzb3JCYWNrZW5kSW1wbDo6dmFsdWUiKTsKLSAgICBpZiAobV9jdXJzb3JUeXBlID09
IEluZGV4S2V5Q3Vyc29yKQotICAgICAgcmV0dXJuIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVs
bFZhbHVlKCk7Ci0gICAgcmV0dXJuIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlRnJvbVdp
cmUobV9jdXJzb3ItPnZhbHVlKCkpOwotfQotCiB2b2lkIElEQkN1cnNvckJhY2tlbmRJbXBsOjpj
b250aW51ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5PiBwcnBLZXksIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIElEQl9U
UkFDRSgiSURCQ3Vyc29yQmFja2VuZEltcGw6OmNvbnRpbnVlIik7CkBAIC0xMjUsNyArMTA1LDcg
QEAgdm9pZCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6YWR2YW5jZUludGVybmFsKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPEkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGNhbGxiYWNrcy0+b25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpOworICAgIGNhbGxiYWNrcy0+
b25TdWNjZXNzKGN1cnNvci0+a2V5KCksIGN1cnNvci0+cHJpbWFyeUtleSgpLCBjdXJzb3ItPnZh
bHVlKCkpOwogfQogCiB2b2lkIElEQkN1cnNvckJhY2tlbmRJbXBsOjpjb250aW51ZUZ1bmN0aW9u
SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFj
a2VuZEltcGw+IHBycEN1cnNvciwgUGFzc1JlZlB0cjxJREJLZXk+IHBycEtleSwgUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKQEAgLTE0MCw3ICsxMjAsNyBAQCB2b2lkIElEQkN1
cnNvckJhY2tlbmRJbXBsOjpjb250aW51ZUZ1bmN0aW9uSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFBhcwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2FsbGJhY2tzLT5v
blN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCk7CisgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoY3Vy
c29yLT5rZXkoKSwgY3Vyc29yLT5wcmltYXJ5S2V5KCksIGN1cnNvci0+dmFsdWUoKSk7CiB9CiAK
IHZvaWQgSURCQ3Vyc29yQmFja2VuZEltcGw6OmRlbGV0ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmgK
aW5kZXggNTA5N2M1Mzg3NjhmMjlmMDkxOTRiMjk0OTBiMWQ0MTJkZTRlMWYzYi4uM2I0ZjgzYjZl
NTE5YjcxNDBmOTg5ZDkwZTEzZmI5NmU2ZmNmYjlmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5oCkBAIC01NCw5
ICs1NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJDdXJzb3JCYWNrZW5kSW1wbCgpOwog
CiAgICAgLy8gSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZQotICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxJREJLZXk+IGtleSgpIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IHBy
aW1hcnlLZXkoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiB2YWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBhZHZhbmNlKHVuc2lnbmVk
IGxvbmcsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZp
cnR1YWwgdm9pZCBjb250aW51ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0
ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgRXhjZXB0aW9uQ29kZSYpOwpAQCAt
NjQsNiArNjEsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHByZWZldGNoUmVzZXQoaW50
IHVzZWRQcmVmZXRjaGVzLCBpbnQgdW51c2VkUHJlZmV0Y2hlcyk7CiAgICAgdmlydHVhbCB2b2lk
IHBvc3RTdWNjZXNzSGFuZGxlckNhbGxiYWNrKCkgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQog
CisgICAgUGFzc1JlZlB0cjxJREJLZXk+IGtleSgpIGNvbnN0IHsgcmV0dXJuIG1fY3Vyc29yLT5r
ZXkoKTsgfQorICAgIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5KCkgY29uc3QgeyByZXR1
cm4gbV9jdXJzb3ItPnByaW1hcnlLZXkoKTsgfQorICAgIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIChtX2N1cnNvclR5cGUgPT0gSW5kZXhL
ZXlDdXJzb3IpID8gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpudWxsVmFsdWUoKSA6IFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlRnJvbVdpcmUobV9jdXJzb3ItPnZhbHVlKCkpOyB9CiAgICAg
dm9pZCBjbG9zZSgpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oCmluZGV4IDFk
ZjI4NDU2YTQxYzg5MzgzZmUyYjgxMmFkMzcwNmRlMjc0ODk0MzguLjliMmQ1N2IzMGRlZGQwY2I2
YWY0MWY2NWFmMWE5NTM2MDk0OTllMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmgKQEAgLTUz
LDEwICs1Myw2IEBAIHB1YmxpYzoKICAgICAgICAgT2JqZWN0U3RvcmVDdXJzb3IKICAgICB9Owog
Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQktleT4ga2V5KCkgY29uc3QgPSAwOwotICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXkoKSBjb25zdCA9IDA7Ci0gICAgdmly
dHVhbCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUoKSBjb25zdCA9IDA7
Ci0KICAgICB2aXJ0dWFsIHZvaWQgYWR2YW5jZSh1bnNpZ25lZCBsb25nIGNvdW50LCBQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4sIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGNvbnRpbnVlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+LCBFeGNlcHRpb25Db2RlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVG
dW5jdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tl
bmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFj
a2VuZEltcGwuY3BwCmluZGV4IDEzNDAwODQ5MWY1YTc0MzE5NmUyZmM5YWI4ODJkYWVlNmNiMzk1
OTYuLjVkMzlhMWY2NmM3MDU0MDc0MmRmZTY0YjRkY2NhNzA3OTM1N2NhZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZEltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZElt
cGwuY3BwCkBAIC05OSw4ICs5OSw4IEBAIHZvaWQgSURCSW5kZXhCYWNrZW5kSW1wbDo6b3BlbkN1
cnNvckludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4g
Y3Vyc29yID0gSURCQ3Vyc29yQmFja2VuZEltcGw6OmNyZWF0ZShiYWNraW5nU3RvcmVDdXJzb3Iu
Z2V0KCksIGRpcmVjdGlvbiwgY3Vyc29yVHlwZSwgdHJhbnNhY3Rpb24uZ2V0KCksIGluZGV4LT5t
X29iamVjdFN0b3JlQmFja2VuZCk7Ci0gICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoY3Vyc29yLnJl
bGVhc2UoKSk7CisgICAgUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbXBsPiBjdXJzb3IgPSBJREJD
dXJzb3JCYWNrZW5kSW1wbDo6Y3JlYXRlKGJhY2tpbmdTdG9yZUN1cnNvci5nZXQoKSwgZGlyZWN0
aW9uLCBjdXJzb3JUeXBlLCB0cmFuc2FjdGlvbi5nZXQoKSwgaW5kZXgtPm1fb2JqZWN0U3RvcmVC
YWNrZW5kKTsKKyAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhjdXJzb3IsIGN1cnNvci0+a2V5KCks
IGN1cnNvci0+cHJpbWFyeUtleSgpLCBjdXJzb3ItPnZhbHVlKCkpOwogfQogCiB2b2lkIElEQklu
ZGV4QmFja2VuZEltcGw6Om9wZW5DdXJzb3IoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcHJwS2V5
UmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
IHBycENhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlv
blB0ciwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCmluZGV4
IDc0NjkzM2VmMDRkZTY2NDAwNDIzYmFlYzk4Y2Q4NTU2Y2RmYmE4ODAuLjM1N2IzMGVjYTU3YTg0
ZmQ2MTU5NzhjMGQ1MGYyNjE1YjE4ZjI4NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3Bw
CkBAIC01MzksOCArNTM5LDggQEAgdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpvcGVu
Q3Vyc29ySW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3MKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIFJlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBjdXJz
b3IgPSBJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y3JlYXRlKGJhY2tpbmdTdG9yZUN1cnNvci5yZWxl
YXNlKCksIGRpcmVjdGlvbiwgSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6T2JqZWN0U3RvcmVD
dXJzb3IsIHRyYW5zYWN0aW9uLmdldCgpLCBvYmplY3RTdG9yZS5nZXQoKSk7Ci0gICAgY2FsbGJh
Y2tzLT5vblN1Y2Nlc3MoY3Vyc29yLnJlbGVhc2UoKSk7CisgICAgUmVmUHRyPElEQkN1cnNvckJh
Y2tlbmRJbXBsPiBjdXJzb3IgPSBJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y3JlYXRlKGJhY2tpbmdT
dG9yZUN1cnNvci5yZWxlYXNlKCksIGRpcmVjdGlvbiwgSURCQ3Vyc29yQmFja2VuZEludGVyZmFj
ZTo6T2JqZWN0U3RvcmVDdXJzb3IsIHRyYW5zYWN0aW9uLmdldCgpLCBvYmplY3RTdG9yZS5nZXQo
KSk7CisgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoY3Vyc29yLCBjdXJzb3ItPmtleSgpLCBjdXJz
b3ItPnByaW1hcnlLZXkoKSwgY3Vyc29yLT52YWx1ZSgpKTsKIH0KIAogdm9pZCBJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsOjpjb3VudChQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IGNkMjVjMzEwMmY1OTc3
ZDE0M2YzMTk1ZTE0MzMxOTgwYWFlN2M2NTguLmZiODYwOTFmMjEzMzgyYmI5Y2EwMzFjZDYwNjQ3
NDA4ODViZGE0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlJlcXVlc3QuY3BwCkBAIC0yMDAsMTUgKzIwMCwxOSBAQCBQYXNzUmVmUHRyPElEQkN1cnNvcj4g
SURCUmVxdWVzdDo6Z2V0UmVzdWx0Q3Vyc29yKCkKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBJ
REJSZXF1ZXN0OjpzZXRSZXN1bHRDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3I+IHBycEN1cnNv
cikKK3ZvaWQgSURCUmVxdWVzdDo6c2V0UmVzdWx0Q3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29y
PiBjdXJzb3IsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBwcmlt
YXJ5S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUpCiB7CiAgICAg
QVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsKKyAgICBtX2N1cnNvcktleSA9IGtleTsK
KyAgICBtX2N1cnNvclByaW1hcnlLZXkgPSBwcmltYXJ5S2V5OworICAgIG1fY3Vyc29yVmFsdWUg
PSB2YWx1ZTsKKwogICAgIGlmIChtX2N1cnNvclR5cGUgPT0gSURCQ3Vyc29yQmFja2VuZEludGVy
ZmFjZTo6SW5kZXhLZXlDdXJzb3IpIHsKLSAgICAgICAgbV9yZXN1bHQgPSBJREJBbnk6OmNyZWF0
ZShwcnBDdXJzb3IpOworICAgICAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKGN1cnNvcik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRl
KElEQkN1cnNvcldpdGhWYWx1ZTo6ZnJvbUN1cnNvcihwcnBDdXJzb3IpKTsKKyAgICBtX3Jlc3Vs
dCA9IElEQkFueTo6Y3JlYXRlKElEQkN1cnNvcldpdGhWYWx1ZTo6ZnJvbUN1cnNvcihjdXJzb3Ip
KTsKIH0KIAogdm9pZCBJREJSZXF1ZXN0OjpmaW5pc2hDdXJzb3IoKQpAQCAtMjQ4LDcgKzI1Miw3
IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4g
ZG9tU3RyaW5nTGlzdCkKICAgICBlbnF1ZXVlRXZlbnQoY3JlYXRlU3VjY2Vzc0V2ZW50KCkpOwog
fQogCi12b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U+IGJhY2tlbmQpCit2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVm
UHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQsIFBhc3NSZWZQdHI8SURCS2V5
PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gdmFsdWUpCiB7CiAgICAgSURCX1RSQUNFKCJJREJSZXF1ZXN0OjpvblN1
Y2Nlc3MoSURCQ3Vyc29yKSIpOwogICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8
fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CkBAIC0yNjIsNyArMjY2LDcgQEAgdm9pZCBJREJSZXF1
ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNr
ZW5kKQogICAgICAgICBjdXJzb3IgPSBJREJDdXJzb3I6OmNyZWF0ZShiYWNrZW5kLCBtX2N1cnNv
ckRpcmVjdGlvbiwgdGhpcywgbV9zb3VyY2UuZ2V0KCksIG1fdHJhbnNhY3Rpb24uZ2V0KCkpOwog
ICAgIGVsc2UKICAgICAgICAgY3Vyc29yID0gSURCQ3Vyc29yV2l0aFZhbHVlOjpjcmVhdGUoYmFj
a2VuZCwgbV9jdXJzb3JEaXJlY3Rpb24sIHRoaXMsIG1fc291cmNlLmdldCgpLCBtX3RyYW5zYWN0
aW9uLmdldCgpKTsKLSAgICBzZXRSZXN1bHRDdXJzb3IoY3Vyc29yKTsKKyAgICBzZXRSZXN1bHRD
dXJzb3IoY3Vyc29yLCBrZXksIHByaW1hcnlLZXksIHZhbHVlKTsKIAogICAgIGVucXVldWVFdmVu
dChjcmVhdGVTdWNjZXNzRXZlbnQoKSk7CiB9CkBAIC0zNzcsMTUgKzM4MSwxNiBAQCB2b2lkIElE
QlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcHJw
U2VyaWFsaXplZFNjcmlwdAogICAgIG9uU3VjY2Vzcyh2YWx1ZS5yZWxlYXNlKCkpOwogfQogCi12
b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKQordm9pZCBJREJSZXF1
ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJLZXk+
IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSkKIHsK
LSAgICBJREJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24iKTsK
KyAgICBJREJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9uU3VjY2VzcyhrZXksIHByaW1hcnlLZXksIHZh
bHVlKSIpOwogICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3Rh
dGUgPT0gRE9ORSk7CiAgICAgaWYgKG1fcmVxdWVzdEFib3J0ZWQpCiAgICAgICAgIHJldHVybjsK
KyAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcpOwogICAgIEFTU0VSVCghbV9lcnJv
ckNvZGUgJiYgbV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkgJiYgIW1fZXJyb3IgJiYgIW1fcmVzdWx0
KTsKICAgICBBU1NFUlQobV9wZW5kaW5nQ3Vyc29yKTsKLSAgICBzZXRSZXN1bHRDdXJzb3IobV9w
ZW5kaW5nQ3Vyc29yLnJlbGVhc2UoKSk7CisgICAgc2V0UmVzdWx0Q3Vyc29yKG1fcGVuZGluZ0N1
cnNvci5yZWxlYXNlKCksIGtleSwgcHJpbWFyeUtleSwgdmFsdWUpOwogICAgIGVucXVldWVFdmVu
dChjcmVhdGVTdWNjZXNzRXZlbnQoKSk7CiB9CiAKQEAgLTQ1Nyw3ICs0NjIsNyBAQCBib29sIElE
QlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgaWYg
KGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCkgewogICAgICAgICBj
dXJzb3JUb05vdGlmeSA9IGdldFJlc3VsdEN1cnNvcigpOwogICAgICAgICBpZiAoY3Vyc29yVG9O
b3RpZnkpCi0gICAgICAgICAgICBjdXJzb3JUb05vdGlmeS0+c2V0VmFsdWVSZWFkeSgpOworICAg
ICAgICAgICAgY3Vyc29yVG9Ob3RpZnktPnNldFZhbHVlUmVhZHkobV9jdXJzb3JLZXkucmVsZWFz
ZSgpLCBtX2N1cnNvclByaW1hcnlLZXkucmVsZWFzZSgpLCBtX2N1cnNvclZhbHVlLnJlbGVhc2Uo
KSk7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFdoZW4gd2UgYWxsb3cgY3VzdG9tIGV2ZW50IGRp
c3BhdGNoaW5nLCB0aGlzIHdpbGwgcHJvYmFibHkgbmVlZCB0byBjaGFuZ2UuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKaW5kZXggYTgwNGMyYmQ1ZWIx
YjczMWE1MTk3NTU4Njg5YWRiNmE2NWVhYmMzZS4uNzAxZDYxMTdlYWJjYjk3NzM0MmFhNzVkNTEy
MmRlOGY5YzZhMTRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlJlcXVlc3QuaApAQCAtODMsMTIgKzgzLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
b25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KTsKICAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4pOwogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KTsKLSAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFj
ZT4pOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNr
ZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4gcHJp
bWFyeUtleSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsKICAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5Pik7CiAgICAgdmlydHVhbCB2b2lkIG9u
U3VjY2VzcyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pOwogICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBjb25zdCBJREJLZXlQYXRoJik7Ci0gICAgdmly
dHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKTsKKyAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlL
ZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiAgICAgdmlydHVhbCB2b2lk
IG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYsIGNv
bnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+ID4mKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9IC8vIE5vdCBpbXBs
ZW1lbnRlZC4gQ2FsbGJhY2sgc2hvdWxkIG5vdCByZWFjaCB0aGUgcmVuZGVyZXIgc2lkZS4KICAg
ICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCk7CiAKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKTsK
IAogICAgIFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBnZXRSZXN1bHRDdXJzb3IoKTsKLSAgICB2b2lk
IHNldFJlc3VsdEN1cnNvcihQYXNzUmVmUHRyPElEQkN1cnNvcj4pOworICAgIHZvaWQgc2V0UmVz
dWx0Q3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29yPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNz
UmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+KTsKIAogICAgIFJlZlB0cjxJREJBbnk+IG1fc291cmNlOwogICAgIFJlZlB0cjxJREJUcmFu
c2FjdGlvbj4gbV90cmFuc2FjdGlvbjsKQEAgLTEzNyw2ICsxMzcsOSBAQCBwcml2YXRlOgogICAg
IElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkN1cnNvclR5cGUgbV9jdXJzb3JUeXBlOwogICAg
IElEQkN1cnNvcjo6RGlyZWN0aW9uIG1fY3Vyc29yRGlyZWN0aW9uOwogICAgIFJlZlB0cjxJREJD
dXJzb3I+IG1fcGVuZGluZ0N1cnNvcjsKKyAgICBSZWZQdHI8SURCS2V5PiBtX2N1cnNvcktleTsK
KyAgICBSZWZQdHI8SURCS2V5PiBtX2N1cnNvclByaW1hcnlLZXk7CisgICAgUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gbV9jdXJzb3JWYWx1ZTsKIAogICAgIEV2ZW50VGFyZ2V0RGF0YSBt
X2V2ZW50VGFyZ2V0RGF0YTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAppbmRleCBjNTg0YjFlOWZkM2VhZmE5ZWZlYWM2
MWQ0MTY1ZGYzNmM0MmVkOGE3Li4zMmIyOWI1NjNkNmE1NzIxYzEzNTJiZmQ1YTY0MzM4ZjFhYjc1
MjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhl
ZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRl
eGVkREJBZ2VudC5jcHAKQEAgLTEwOCwxMyArMTA4LDEzIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pIE9WRVJSSURFIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0Pikg
T1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1
cnNvckJhY2tlbmRJbnRlcmZhY2U+KSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25T
dWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4sIFBhc3NSZWZQdHI8
SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PikgT1ZFUlJJREUgeyB9CiAgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZT4pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJ
REJLZXk+LCBjb25zdCBJREJLZXlQYXRoJikgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lk
IG9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4m
LCBjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiA+JikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9u
QmxvY2tlZCgpIE9WRVJSSURFIHsgfQogfTsKQEAgLTQ5MCwxMyArNDkwLDEzIEBAIHB1YmxpYzoK
ICAgICAgICAgZW5kKGZhbHNlKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNz
KFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gaWRiQ3Vyc29yKQorICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNl
PiBpZGJDdXJzb3IsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBw
cmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUpCiAgICAg
ewogICAgICAgICBtX2lkYkN1cnNvciA9IGlkYkN1cnNvcjsKLSAgICAgICAgb25TdWNjZXNzV2l0
aENvbnRpbnVhdGlvbigpOworICAgICAgICBvblN1Y2Nlc3Moa2V5LCBwcmltYXJ5S2V5LCB2YWx1
ZSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24o
KQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFz
c1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChtX3NraXBDb3VudCkgewogICAgICAgICAg
ICAgLS1tX3NraXBDb3VudDsKQEAgLTUwOSw5ICs1MDksNiBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBSZWZQdHI8SURCS2V5PiBrZXkgPSBtX2lk
YkN1cnNvci0+a2V5KCk7Ci0gICAgICAgIFJlZlB0cjxJREJLZXk+IHByaW1hcnlLZXkgPSBtX2lk
YkN1cnNvci0+cHJpbWFyeUtleSgpOwotICAgICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiB2YWx1ZSA9IG1faWRiQ3Vyc29yLT52YWx1ZSgpOwogICAgICAgICBSZWZQdHI8VHlwZUJ1
aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gd3JhcHBlZFZhbHVlID0gbV9pbmplY3RlZFNj
cmlwdC53cmFwU2VyaWFsaXplZE9iamVjdCh2YWx1ZS5nZXQoKSwgU3RyaW5nKCkpOwogICAgICAg
ICBSZWZQdHI8RGF0YUVudHJ5PiBkYXRhRW50cnkgPSBEYXRhRW50cnk6OmNyZWF0ZSgpCiAgICAg
ICAgICAgICAuc2V0S2V5KGtleUZyb21JREJLZXkoa2V5LmdldCgpKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKaW5kZXggY2UxMDBmMjk1NjVk
ZDIzMTdjNDdlZmQ5NWJmNTI3NzJhZTM2ZTNhNS4uYWNhMjk2YmM4ZDY1ZDRkYjQ4OGE4NjgxYzMy
NTNmYmVkY2JjYTQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViSURCQ2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
SURCQ2FsbGJhY2tzLmgKQEAgLTUwLDEzICs1MCwxNyBAQCBwdWJsaWM6CiAgICAgLy8gRm9yIHRo
ZSByZXN0LCBwYXNzIG93bmVyc2hpcCB0byB0aGUgY2FsbGVlIHZpYSBhIHBvaW50ZXIuCiAgICAg
dmlydHVhbCB2b2lkIG9uRXJyb3IoY29uc3QgV2ViSURCRGF0YWJhc2VFcnJvciYpIHsgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25z
dCBXZWJET01TdHJpbmdMaXN0JikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkN1cnNvciopIHsgV0VCS0lUX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOyB9CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG5vLW9wIG1ldGhvZCB3
aGVuIGNhbGxlcnMgYXJlIHVwZGF0ZWQuCisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJ
REJDdXJzb3IqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkN1cnNvcios
IGNvbnN0IFdlYklEQktleSYga2V5LCBjb25zdCBXZWJJREJLZXkmIHByaW1hcnlLZXksIGNvbnN0
IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSopIHsgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25z
dCBXZWJJREJLZXkmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCVHJhbnNhY3Rpb24qKSB7IFdFQktJVF9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFs
aXplZFNjcmlwdFZhbHVlJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYsIGNv
bnN0IFdlYklEQktleSYsIGNvbnN0IFdlYklEQktleVBhdGgmKSB7IFdFQktJVF9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9u
KCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICAvLyBGSVhNRTogUmVtb3Zl
IHRoaXMgbm8tb3AgbWV0aG9kIHdoZW4gY2FsbGVycyBhcmUgdXBkYXRlZC4KKyAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoY29uc3QgV2ViSURCS2V5JiBrZXksIGNvbnN0IFdlYklEQktleSYgcHJpbWFyeUtl
eSwgY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJikgeyBXRUJLSVRfQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCkgeyBXRUJLSVRfQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKGxvbmcgbG9uZyBv
bGRWZXJzaW9uKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwg
dm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgV2ViVmVjdG9yPFdlYklEQktleT4mIGtl
eXMsIGNvbnN0IFdlYlZlY3RvcjxXZWJJREJLZXk+JiBwcmltYXJ5S2V5cywgY29uc3QgV2ViVmVj
dG9yPFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mIHZhbHVlcykgeyBXRUJLSVRfQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklEQkN1cnNvci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ3Vy
c29yLmgKaW5kZXggZGZhZDE5MzgzNWE2MDdiZDlkNDMxMWNlYmUyOTAzMGQ4MWRjOGJhYi4uMGJk
MzEyZTc5YzI5YWI0MjE5Mzc4M2UwODdhZTMwZTE4NTBjNzRkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ3Vyc29yLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ3Vyc29yLmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3Mg
V2ViSURCQ3Vyc29yIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJJREJDdXJzb3IoKSB7IH0K
IAorICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhlc2UgbWV0aG9kcyB3aGVuIGNhbGxlcnMgYXJlIHVw
ZGF0ZWQuCiAgICAgdmlydHVhbCBXZWJJREJLZXkga2V5KCkgY29uc3QKICAgICB7CiAgICAgICAg
IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcAppbmRleCA3ZGY4NGQyZmZiZTA3OTYxMzU1NjVm
YTAyY2Y3ZThlMWFkODIwOTJjLi43ZDJjOWNmOTljMTIzZjA5YTQ0MTQzM2Y5MDA4MDAyNGNkMDk3
OGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJv
eHkuY3BwCkBAIC02OCw5ICs2OCw5IEBAIHZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uRXJyb3Io
UGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBpZGJEYXRhYmFzZUVycm9yKQogICAgIG1fY2Fs
bGJhY2tzLT5vbkVycm9yKFdlYklEQkRhdGFiYXNlRXJyb3IoaWRiRGF0YWJhc2VFcnJvcikpOwog
fQogCi12b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJz
b3JCYWNrZW5kSW50ZXJmYWNlPiBpZGJDdXJzb3JCYWNrZW5kKQordm9pZCBJREJDYWxsYmFja3NQ
cm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gaWRi
Q3Vyc29yQmFja2VuZCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJLZXk+
IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSkKIHsK
LSAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKG5ldyBXZWJJREJDdXJzb3JJbXBsKGlkYkN1cnNv
ckJhY2tlbmQpKTsKKyAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKG5ldyBXZWJJREJDdXJzb3JJ
bXBsKGlkYkN1cnNvckJhY2tlbmQpLCBrZXksIHByaW1hcnlLZXksIHZhbHVlKTsKIH0KIAogdm9p
ZCBJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQpAQCAtMTAyLDkgKzEwMiwxMCBAQCB2b2lkIElEQkNhbGxi
YWNrc1Byb3h5OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNl
cmlhbGl6ZWRTYwogewogICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Moc2VyaWFsaXplZFNjcmlw
dFZhbHVlLCBrZXksIGtleVBhdGgpOwogfQotdm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25TdWNj
ZXNzV2l0aENvbnRpbnVhdGlvbigpCisKK3ZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2Vz
cyhQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwg
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlKQogewotICAgIG1fY2FsbGJh
Y2tzLT5vblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCk7CisgICAgbV9jYWxsYmFja3MtPm9uU3Vj
Y2VzcyhrZXksIHByaW1hcnlLZXksIHZhbHVlKTsKIH0KIAogdm9pZCBJREJDYWxsYmFja3NQcm94
eTo6b25TdWNjZXNzV2l0aFByZWZldGNoKGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiBr
ZXlzLCBjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYgcHJpbWFyeUtleXMsIGNvbnN0IFZl
Y3RvcjxSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiA+JiB2YWx1ZXMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaAppbmRleCBkYjMwNTY1NTBi
MmIyZTE3ZTJlMzBkZGVmNzllOWRkMjljMjVmZmJkLi40YzcwYjY2NmVhYzgxM2Y5Yjk4ZWNmODcy
ZTc4Y2QyNDg2ZDY3ZTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJDYWxsYmFja3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNh
bGxiYWNrc1Byb3h5LmgKQEAgLTQ3LDEzICs0NywxMyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgb25FcnJvcihQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlRXJyb3I+KTsKICAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6RE9NU3RyaW5nTGlz
dD4pOwotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJD
dXJzb3JCYWNrZW5kSW50ZXJmYWNlPik7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNz
UmVmUHRyPFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+LCBQYXNzUmVmUHRyPFdl
YkNvcmU6OklEQktleT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiBwcmltYXJ5S2V5LCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAgIHZpcnR1YWwg
dm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2U+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6
SURCS2V5Pik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6
OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsKICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBjb25zdCBXZWJDb3JlOjpJREJL
ZXlQYXRoJik7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKTsK
KyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5Piwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dp
dGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OklEQktleT4gPiYga2V5cywg
Y29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpJREJLZXk+ID4mIHByaW1hcnlLZXlzLCBjb25z
dCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYgdmFsdWVz
KTsKICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNvckJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JCYWNrZW5kUHJveHkuY3BwCmluZGV4IDI3N2E2NjVj
ZjAwMGVlOTNlMDhjNGZhMWRjNDZjODUxYjk4MTlmMTYuLjkyNDNkMmJhMmM2ZThlMjNiZTdlYTAx
ZTRjYTg2MGZmMjgzOTAzYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkN1cnNvckJhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCQ3Vyc29yQmFja2VuZFByb3h5LmNwcApAQCAtNTQsMjEgKzU0LDYgQEAgSURCQ3Vyc29y
QmFja2VuZFByb3h5Ojp+SURCQ3Vyc29yQmFja2VuZFByb3h5KCkKIHsKIH0KIAotUGFzc1JlZlB0
cjxJREJLZXk+IElEQkN1cnNvckJhY2tlbmRQcm94eTo6a2V5KCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9pZGJDdXJzb3ItPmtleSgpOwotfQotCi1QYXNzUmVmUHRyPElEQktleT4gSURCQ3Vyc29y
QmFja2VuZFByb3h5OjpwcmltYXJ5S2V5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pZGJDdXJz
b3ItPnByaW1hcnlLZXkoKTsKLX0KLQotUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IElEQkN1cnNvckJhY2tlbmRQcm94eTo6dmFsdWUoKSBjb25zdAotewotICAgIHJldHVybiBtX2lk
YkN1cnNvci0+dmFsdWUoKTsKLX0KLQogdm9pZCBJREJDdXJzb3JCYWNrZW5kUHJveHk6OmFkdmFu
Y2UodW5zaWduZWQgbG9uZyBjb3VudCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNr
cywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgbV9pZGJDdXJzb3ItPmFkdmFuY2UoY291bnQs
IG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksIGVjKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNvckJhY2tlbmRQcm94eS5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5LmgKaW5kZXggZDc0MmY2
OGU1ZmU1NmYzN2RhYWMxNzUzNzM2ZmNlOTdmMGEyNjRhZS4uMDhhZmViYThmMWU0Yzg0M2JkNmE3
YWE1ODIwNmVkOTViNzBkNDg2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCQ3Vyc29yQmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCQ3Vyc29yQmFja2VuZFByb3h5LmgKQEAgLTQyLDkgKzQyLDYgQEAgcHVibGljOgogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGNy
ZWF0ZShQYXNzT3duUHRyPFdlYklEQkN1cnNvcj4pOwogICAgIHZpcnR1YWwgfklEQkN1cnNvckJh
Y2tlbmRQcm94eSgpOwogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4g
a2V5KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4gcHJp
bWFyeUtleSgpIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxp
emVkU2NyaXB0VmFsdWU+IHZhbHVlKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGFkdmFuY2Uo
dW5zaWduZWQgbG9uZywgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBXZWJDb3Jl
OjpFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlRnVuY3Rpb24oUGFz
c1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNr
cz4sIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRnVu
Y3Rpb24oUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBXZWJDb3JlOjpFeGNlcHRp
b25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJD
YWxsYmFja3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxi
YWNrc0ltcGwuY3BwCmluZGV4IDViNWFlZGY3Y2NiMzdlMjQ5YzUzYzFhZjllOGVjOGVkOWIwZTZl
MTIuLjA4M2RiY2NiZTI2NzVmMjA5OWI1MzU1N2Y0MDE2OGUzZTA4M2Q3NjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCkBAIC02
NSw5ICs2NSw5IEBAIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKGNvbnN0IFdl
YkRPTVN0cmluZ0xpc3QmIGRvbVN0cmluZ0xpc3QpCiAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2Vz
cyhkb21TdHJpbmdMaXN0KTsKIH0KIAotdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nl
c3MoV2ViSURCQ3Vyc29yKiBjdXJzb3IpCit2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3Vj
Y2VzcyhXZWJJREJDdXJzb3IqIGN1cnNvciwgY29uc3QgV2ViSURCS2V5JiBrZXksIGNvbnN0IFdl
YklEQktleSYgcHJpbWFyeUtleSwgY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiB2YWx1
ZSkKIHsKLSAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKElEQkN1cnNvckJhY2tlbmRQcm94eTo6
Y3JlYXRlKGFkb3B0UHRyKGN1cnNvcikpKTsKKyAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKElE
QkN1cnNvckJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGN1cnNvcikpLCBrZXksIHByaW1h
cnlLZXksIHZhbHVlKTsKIH0KIAogdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3Mo
V2ViSURCRGF0YWJhc2UqIHdlYktpdEluc3RhbmNlKQpAQCAtOTUsOSArOTUsOSBAQCB2b2lkIFdl
YklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2Vzcyhjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFs
dWUmIHNlcmlhbGl6ZWRTYwogICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Moc2VyaWFsaXplZFNj
cmlwdFZhbHVlLCBrZXksIGtleVBhdGgpOwogfQogCi12b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6
Om9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKQordm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpv
blN1Y2Nlc3MoY29uc3QgV2ViSURCS2V5JiBrZXksIGNvbnN0IFdlYklEQktleSYgcHJpbWFyeUtl
eSwgY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiB2YWx1ZSkKIHsKLSAgICBtX2NhbGxi
YWNrcy0+b25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpOworICAgIG1fY2FsbGJhY2tzLT5vblN1
Y2Nlc3Moa2V5LCBwcmltYXJ5S2V5LCB2YWx1ZSk7CiB9CiAKIHZvaWQgV2ViSURCQ2FsbGJhY2tz
SW1wbDo6b25CbG9ja2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkNhbGxiYWNrc0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
QkNhbGxiYWNrc0ltcGwuaAppbmRleCA3YjAyMTYzNTlkNTZkODE4Njk1ZmU5NzNhMDE4MmFmYjUx
MjUwMTYxLi4zMGQ3NDM2YzZhNTlmNDg5NjI5MDUyNjAyYWY4OTM4NDgzMmIzOTI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCkBAIC00
MywxMyArNDMsMTMgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoY29uc3Qg
V2ViSURCRGF0YWJhc2VFcnJvciYpOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3Qg
V2ViRE9NU3RyaW5nTGlzdCYpOwotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCQ3Vy
c29yKik7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJDdXJzb3IqLCBjb25zdCBX
ZWJJREJLZXkmLCBjb25zdCBXZWJJREJLZXkmIHByaW1hcnlLZXksIGNvbnN0IFdlYlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCRGF0YWJh
c2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYklEQktleSYpOwogICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCVHJhbnNhY3Rpb24qKTsKICAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYpOwogICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiwgY29u
c3QgV2ViSURCS2V5JiwgY29uc3QgV2ViSURCS2V5UGF0aCYpOwotICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCk7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhj
b25zdCBXZWJJREJLZXkmLCBjb25zdCBXZWJJREJLZXkmIHByaW1hcnlLZXksIGNvbnN0IFdlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKTsKIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1
cnNvckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1w
bC5jcHAKaW5kZXggMGQ2NWE4N2JlZTBhYzRmNmUyMjg2MWRhZjE3MThhZWFjZjhkYjNhYi4uMjUy
Y2ZkZDExZTQ4ZTljMzM2ZTEzYzMzYWQ3ZDljZjY5Zjc4ODQ2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5jcHAKQEAgLTQ3LDIxICs0Nyw2IEBA
IFdlYklEQkN1cnNvckltcGw6On5XZWJJREJDdXJzb3JJbXBsKCkKIHsKIH0KIAotV2ViSURCS2V5
IFdlYklEQkN1cnNvckltcGw6OmtleSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faWRiQ3Vyc29y
QmFja2VuZC0+a2V5KCk7Ci19Ci0KLVdlYklEQktleSBXZWJJREJDdXJzb3JJbXBsOjpwcmltYXJ5
S2V5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pZGJDdXJzb3JCYWNrZW5kLT5wcmltYXJ5S2V5
KCk7Ci19Ci0KLVdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBXZWJJREJDdXJzb3JJbXBsOjp2YWx1
ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faWRiQ3Vyc29yQmFja2VuZC0+dmFsdWUoKTsKLX0K
LQogdm9pZCBXZWJJREJDdXJzb3JJbXBsOjphZHZhbmNlKHVuc2lnbmVkIGxvbmcgY291bnQsIFdl
YklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBt
X2lkYkN1cnNvckJhY2tlbmQtPmFkdmFuY2UoY291bnQsIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVh
dGUoYWRvcHRQdHIoY2FsbGJhY2tzKSksIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkN1cnNvckltcGwuaAppbmRleCA0NWEyMjliMzgzMDE5MjY5MWZhNzhkMGRhODZi
ZTM5NzY4NzFiYjdhLi5lY2NjNjVkZDBlMzM4ZmVlMmQzMmQyNzI3MmFjNzk4OThjMGRiZDExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5oCkBAIC00
NCw5ICs0NCw2IEBAIHB1YmxpYzoKICAgICBXZWJJREJDdXJzb3JJbXBsKFdURjo6UGFzc1JlZlB0
cjxXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgdmlydHVhbCB+V2Vi
SURCQ3Vyc29ySW1wbCgpOwogCi0gICAgdmlydHVhbCBXZWJJREJLZXkga2V5KCkgY29uc3Q7Ci0g
ICAgdmlydHVhbCBXZWJJREJLZXkgcHJpbWFyeUtleSgpIGNvbnN0OwotICAgIHZpcnR1YWwgV2Vi
U2VyaWFsaXplZFNjcmlwdFZhbHVlIHZhbHVlKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGFk
dmFuY2UodW5zaWduZWQgbG9uZywgV2ViSURCQ2FsbGJhY2tzKiwgV2ViRXhjZXB0aW9uQ29kZSYp
OwogICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZUZ1bmN0aW9uKGNvbnN0IFdlYklEQktleSYsIFdl
YklEQkNhbGxiYWNrcyosIFdlYkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVs
ZXRlRnVuY3Rpb24oV2ViSURCQ2FsbGJhY2tzKiwgV2ViRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3Qu
Y3BwCmluZGV4IGQ5ZTNkNjk3YjE5N2M3NDA2ZjYzYmFlYjQ4MzkzMWI0ZWFjOTUwODUuLjkxYzUw
NWNlYWE2MDQ4NjFkOGMxNDMyY2RhNzYxODEzMjc4YzcyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKQEAgLTUx
LDcgKzUxLDcgQEAgcHVibGljOgogICAgICAgICBtX3dhc0Vycm9yQ2FsbGVkID0gdHJ1ZTsKICAg
ICB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFj
a2VuZEludGVyZmFjZT4pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0
cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVm
UHRyPElEQktleT4sIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPikgeyB9CiAgICAg
dmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVy
ZmFjZT4pCiAgICAgewogICAgICAgICBFWFBFQ1RfVFJVRShmYWxzZSk7CkBAIC02MCw3ICs2MCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPikgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vz
cyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRy
PElEQktleT4sIGNvbnN0IElEQktleVBhdGgmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNj
ZXNzV2l0aENvbnRpbnVhdGlvbigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFz
c1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPikgeyB9OwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0
Y2goY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mLCBjb25zdCBWZWN0b3I8UmVmUHRyPElE
QktleT4gPiYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiA+Jikg
eyB9CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpIHsgfQogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3Qu
Y3BwCmluZGV4IDVjMDFlOWVjYzMxYzI1ZmQxMGQwYjE4N2Y0MGQyMzc5NzMzNjFiMGIuLjIyNzc4
ODc1ZmE5MzQwMjA3ODczMDEzOGUxM2EzNDYxNmY0MzU5MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcApAQCAt
NzcsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PikgT1ZFUlJJREUgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZh
Y2U+KSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8
SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0
cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pIE9WRVJSSURFIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tl
bmRJbnRlcmZhY2U+KSBPVkVSUklERQogICAgIHsKICAgICAgICAgbV93YXNTdWNjZXNzREJDYWxs
ZWQgPSB0cnVlOwpAQCAtODYsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9u
U3VjY2VzcyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pIE9WRVJS
SURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+KSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBjb25z
dCBJREJLZXlQYXRoJikgT1ZFUlJJREUgeyB9OwotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NX
aXRoQ29udGludWF0aW9uKCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vz
cyhQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+KSBPVkVSUklERSB7IH07CiAgICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYsIGNvbnN0IFZl
Y3RvcjxSZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+ID4mKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCkg
T1ZFUlJJREUgeyB9CiBwcml2YXRlOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157544</attachid>
            <date>2012-08-09 14:15:30 -0700</date>
            <delta_ts>2012-08-14 09:06:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92278-20120809151501.patch</filename>
            <type>text/plain</type>
            <size>40006</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTBlMTEyYzg4ZWNkMDZh
YWUyMjZkMGM5Y2RmNTk2Mjc4ZjllYmM5ZS4uNzFhMGNiNjM3ZjhiMDYwNWZkYmU2MTVhZTNjOTNm
M2U2Y2U1OTA5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA4LTAxICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBQYXNz
IGN1cnNvciBjb250aW51ZSByZXN1bHRzIGJhY2sgaW4gY2FsbGJhY2sKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjc4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcGx5IHRoZSB1cGRhdGVkIGN1cnNv
ciBrZXkvcHJpbWFyeUtleS92YWx1ZSBpbiB0aGUgc3VjY2VzcyBjYWxsYmFjaywKKyAgICAgICAg
cmF0aGVyIHRoYW4gZm9yY2luZyB0aGUgY2FsbGVlIHRvIG1ha2UgdGhyZWUgY2FsbHMgaW50byB0
aGUgYmFjayBlbmQgdG8KKyAgICAgICAgZmV0Y2ggdGhlbS4gQ2FsbGJhY2tzIG9uU3VjY2Vzcyhj
dXJzb3IpIGFuZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCkKKyAgICAgICAgYXJlIGdpdmVu
IHRoZSB0aHJlZSBuZXcgcGF5bG9hZCBwYXJhbWV0ZXJzIChhbmQgdGhlIGxhdHRlciBpcyByZW5h
bWVkLikKKworICAgICAgICBObyBuZXcgdGVzdHMgLSBubyBiZWhhdmlvcmFsIGNoYW5nZXMuCisK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaDogVXBkYXRlZCBjYWxs
YmFja3MuCisgICAgICAgIChJREJDYWxsYmFja3MpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OnNldFZhbHVl
UmVhZHkpOiBUYWtlcyB2YWx1ZXMgcmF0aGVyIHRoYW4gZmV0Y2hpbmcgdGhlbS4KKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaDoKKyAgICAgICAgKElEQkN1cnNvcik6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwOiBEZWxl
dGUgYWNjZXNzb3JzLgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6OmFk
dmFuY2VJbnRlcm5hbCk6IFBhc3MgYWxvbmcgdXBkYXRlZCBjdXJzb3Igc3RhdGUuCisgICAgICAg
IChXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y29udGludWVGdW5jdGlvbkludGVybmFs
KTogRGl0dG8uCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZElt
cGwuaDoKKyAgICAgICAgKElEQkN1cnNvckJhY2tlbmRJbXBsKTogRGVsZXRlIGFjY2Vzc29ycyBm
cm9tIGludGVyZmFjZS4uLgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6
OmtleSk6IC4uLmJ1dCBrZWVwIHRoZW0gZm9yIHVzZSB3aXRoaW4gYmFjay1lbmQuCisgICAgICAg
IChXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6cHJpbWFyeUtleSk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6dmFsdWUpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaDogRGVsZXRlIGFjY2Vzc29ycy4K
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkluZGV4QmFja2VuZEltcGw6Om9wZW5DdXJzb3JJbnRlcm5hbCk6
IFBhc3MgYWxvbmcgbmV3IGN1cnNvciBzdGF0ZS4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9i
amVjdFN0b3JlQmFja2VuZEltcGw6Om9wZW5DdXJzb3JJbnRlcm5hbCk6IERpdHRvLgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCUmVxdWVzdDo6c2V0UmVzdWx0Q3Vyc29yKTogU3Rhc2ggdXBkYXRlZCBjdXJzb3Igc3RhdGUg
dW50aWwgZGlzcGF0Y2guCisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3Mp
OgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudCk6IFVwZGF0ZSBj
dXJzb3Igd2l0aCBuZXcgc3RhdGUuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5oOgorICAgICAgICAoSURCUmVxdWVzdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckluZGV4ZWREQkFnZW50LmNwcDogVXBkYXRlIGl0ZXJhdGlvbiBjb2RlIHRvIHVzZSBuZXcg
Y2FsbGJhY2tzLgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDgtMDkgIEVyaWMgU2VpZGVs
ICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSBtX2V2ZXJIYWRMYXlvdXQgaW4gUmVu
ZGVyT2JqZWN0OjpjaGVja0ZvclJlcGFpbnREdXJpbmdMYXlvdXQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCBlMDA3MzllZWI0NjlhYWM4YjdjMTRlNmI2NDFiMGMxNTQxZmFmMTc5Li5m
NzBkMGI5Yjk5MzhjNGFkMDE3NjBkZjQyYjYzNTY4MTlmOWVhOWM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTA4LTAxICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBQYXNzIGN1cnNvciBjb250
aW51ZSByZXN1bHRzIGJhY2sgaW4gY2FsbGJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcGx5IHRoZSB1cGRhdGVkIGN1cnNvciBrZXkvcHJpbWFy
eUtleS92YWx1ZSBpbiB0aGUgc3VjY2VzcyBjYWxsYmFjaywKKyAgICAgICAgcmF0aGVyIHRoYW4g
Zm9yY2luZyB0aGUgY2FsbGVlIHRvIG1ha2UgdGhyZWUgY2FsbHMgaW50byB0aGUgYmFjayBlbmQg
dG8KKyAgICAgICAgZmV0Y2ggdGhlbS4gQ2FsbGJhY2tzIG9uU3VjY2VzcyhjdXJzb3IpIGFuZCBv
blN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCkKKyAgICAgICAgYXJlIGdpdmVuIHRoZSB0aHJlZSBu
ZXcgcGF5bG9hZCBwYXJhbWV0ZXJzIChhbmQgdGhlIGxhdHRlciBpcyByZW5hbWVkLikKKworICAg
ICAgICAqIHB1YmxpYy9XZWJJREJDYWxsYmFja3MuaDoKKyAgICAgICAgKFdlYklEQkNhbGxiYWNr
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrczo6b25TdWNjZXNzKTogUmVwbGFj
ZSB3aXRoIG5vLW9wIHN0dWIuCisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrczo6b25T
dWNjZXNzV2l0aENvbnRpbnVhdGlvbik6IERpdHRvLgorICAgICAgICAqIHB1YmxpYy9XZWJJREJD
dXJzb3IuaDoKKyAgICAgICAgKFdlYklEQkN1cnNvcik6IE1ldGhvZHMgY2FuIGJlIHJlbW92ZWQg
b25jZSBDaHJvbWl1bSBpcyBjbGVhbmVkIHVwLgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQ
cm94eS5jcHA6IFVwZGF0ZWQgY2FsbGJhY2tzLgorICAgICAgICAoV2ViS2l0OjpJREJDYWxsYmFj
a3NQcm94eTo6b25TdWNjZXNzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0lE
QkNhbGxiYWNrc1Byb3h5Lmg6IFVwZGF0ZWQgY2FsbGJhY2tzLgorICAgICAgICAoSURCQ2FsbGJh
Y2tzUHJveHkpOgorICAgICAgICAqIHNyYy9JREJDdXJzb3JCYWNrZW5kUHJveHkuY3BwOiBSZW1v
dmUgYmFjayBlbmQgYWNjZXNzb3JzLgorICAgICAgICAqIHNyYy9JREJDdXJzb3JCYWNrZW5kUHJv
eHkuaDoKKyAgICAgICAgKElEQkN1cnNvckJhY2tlbmRQcm94eSk6CisgICAgICAgICogc3JjL1dl
YklEQkNhbGxiYWNrc0ltcGwuY3BwOiBVcGRhdGVkIGNhbGxiYWNrcy4KKyAgICAgICAgKFdlYktp
dDo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKToKKyAgICAgICAgKiBzcmMvV2ViSURC
Q2FsbGJhY2tzSW1wbC5oOiBVcGRhdGVkIGNhbGxiYWNrcy4KKyAgICAgICAgKFdlYklEQkNhbGxi
YWNrc0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJJREJDdXJzb3JJbXBsLmNwcDogUmVtb3ZlIGJh
Y2sgZW5kIGFjY2Vzc29ycy4KKyAgICAgICAgKiBzcmMvV2ViSURCQ3Vyc29ySW1wbC5oOiBSZW1v
dmUgYmFjayBlbmQgYWNjZXNzb3JzLgorICAgICAgICAoV2ViSURCQ3Vyc29ySW1wbCk6CisgICAg
ICAgICogdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcDogVXBkYXRlIHRlc3Qgc3R1YnMu
CisgICAgICAgIChXZWJDb3JlOjpNb2NrSURCQ2FsbGJhY2tzOjpvblN1Y2Nlc3MpOgorICAgICAg
ICAqIHRlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwOiBEaXR0by4KKyAgICAgICAgKiB0
ZXN0cy9JREJSZXF1ZXN0VGVzdC5jcHA6IERpdHRvLgorCiAyMDEyLTA4LTA4ICBTaGFuZSBTdGVw
aGVucyAgPHNoYW5lc3RlcGhlbnNAZ29vZ2xlLmNvbT4KIAogICAgICAgICBDb21waWxlIGZsYWcg
Zm9yIENTUyBIaWVyYXJjaGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJDYWxsYmFja3MuaAppbmRleCA4ZTg1YzQyMDE5ZDE3NmMxZWNjNjdlODQwOGE4OTE0OTE2
Y2E5NmVmLi5hNzk0ODNlOWIxZGYxODQ5ZDFjYmJmODcwYzQ2ODhkZjFhYjJlZDhjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaApAQCAtNTAs
MTQgKzUwLDIzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJDYWxsYmFja3MoKSB7IH0KIAog
ICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pID0g
MDsKKyAgICAvLyBGcm9tIElEQkZhY3Rvcnkud2Via2l0R2V0RGF0YWJhc2VOYW1lcygpCiAgICAg
dmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+KSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRl
cmZhY2U+KSA9IDA7CisgICAgLy8gRnJvbSBJREJPYmplY3RTdG9yZS9JREJJbmRleC5vcGVuQ3Vy
c29yKCksIElEQkluZGV4Lm9wZW5LZXlDdXJzb3IoKQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJL
ZXk+LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+KSA9IDA7CisgICAgLy8gRnJvbSBJREJGYWN0b3J5Lm9wZW4oKQogICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2U+KSA9IDA7CisgICAgLy8gRnJvbSBJREJPYmplY3RTdG9yZS5hZGQoKS9wdXQoKSwgSURCSW5k
ZXguZ2V0S2V5KCkKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5
PikgPSAwOworICAgIC8vIEZyb20gSURCRGF0YWJhc2Uuc2V0VmVyc2lvbigpCiAgICAgdmlydHVh
bCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZT4pID0gMDsKKyAgICAvLyBGcm9tIElEQk9iamVjdFN0b3JlL0lEQkluZGV4LmdldCgpL2NvdW50
KCksIGFuZCB2YXJpb3VzIG1ldGhvZHMgdGhhdCB5aWVsZCBudWxsL3VuZGVmaW5lZC4KICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPikg
PSAwOworICAgIC8vIEZyb20gSURCT2JqZWN0U3RvcmUvSURCSW5kZXguZ2V0KCkgKHdpdGgga2V5
IGluamVjdGlvbikKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBjb25zdCBJREJLZXlQYXRoJikg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCkgPSAwOwor
ICAgIC8vIEZyb20gSURCQ3Vyc29yLmFkdmFuY2UoKS9jb250aW51ZSgpCisgICAgdmlydHVhbCB2
b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiBwcmlt
YXJ5S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pID0gMDsKKyAgICAvLyBG
cm9tIElEQkN1cnNvci5hZHZhbmNlKCkvY29udGludWUoKQogICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mIGtleXMsIGNv
bnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiBwcmltYXJ5S2V5cywgY29uc3QgVmVjdG9yPFJl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mIHZhbHVlcykgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBvbkJsb2NrZWQoKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2
b2lkIG9uQmxvY2tlZChpbnQ2NF90IGV4aXN0aW5nVmVyc2lvbikgeyBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5j
cHAKaW5kZXggMTU2ZTQ4NGVjOGZlZTk4ZWFkYjQ4YmYyOGJjNjJiZjYxNDM3MmZhZS4uMTUzOWM2
Mjg3YjZkMzkyY2VhMDczYWRiN2Q0NjJiMmM2ZGQwZDZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0yNjUsMTIgKzI2NSwxMiBAQCB2
b2lkIElEQkN1cnNvcjo6Y2xvc2UoKQogICAgIG1fcmVxdWVzdC5jbGVhcigpOwogfQogCi12b2lk
IElEQkN1cnNvcjo6c2V0VmFsdWVSZWFkeSgpCit2b2lkIElEQkN1cnNvcjo6c2V0VmFsdWVSZWFk
eShQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwg
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHBycFZhbHVlKQogewotICAgIG1fY3Vy
cmVudEtleSA9IG1fYmFja2VuZC0+a2V5KCk7Ci0gICAgbV9jdXJyZW50UHJpbWFyeUtleSA9IG1f
YmFja2VuZC0+cHJpbWFyeUtleSgpOworICAgIG1fY3VycmVudEtleSA9IGtleTsKKyAgICBtX2N1
cnJlbnRQcmltYXJ5S2V5ID0gcHJpbWFyeUtleTsKIAotICAgIFJlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IHZhbHVlID0gbV9iYWNrZW5kLT52YWx1ZSgpOworICAgIFJlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+IHZhbHVlID0gcHJwVmFsdWU7CiAgICAgaWYgKCFpc0tleUN1cnNvcigp
KSB7CiAgICAgICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZT4gb2JqZWN0U3RvcmUgPSBlZmZlY3Rp
dmVPYmplY3RTdG9yZSgpOwogICAgICAgICBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhIG1l
dGFkYXRhID0gb2JqZWN0U3RvcmUtPm1ldGFkYXRhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCmluZGV4IGZkNDZjYmJjYTA3ZjRmMzIzMzcyNzJmZjRj
ZTYxM2E2ZTUyODE4NDEuLjU5MDgyODg1OWE3YTMxZDhmMDg4NzFmMmM0MWRmOTMyMDNmYTE3ZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCkBAIC04
Miw3ICs4Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcG9zdFN1Y2Nlc3NIYW5kbGVyQ2FsbGJh
Y2soKTsKICAgICB2b2lkIGNsb3NlKCk7Ci0gICAgdm9pZCBzZXRWYWx1ZVJlYWR5KCk7CisgICAg
dm9pZCBzZXRWYWx1ZVJlYWR5KFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+
IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiAKICAgICAv
LyBUaGUgc3BlYyByZXF1aXJlcyB0aGF0IHRoZSBzY3JpcHQgb2JqZWN0IHRoYXQgd3JhcHMgdGhl
IHZhbHVlCiAgICAgLy8gYmUgdW5jaGFuZ2VkIHVudGlsIHRoZSB2YWx1ZSBjaGFuZ2VzIGFzIGEg
cmVzdWx0IG9mIHRoZSBjdXJzb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcAppbmRleCA5NTY5OTkwY2QzZDY5
NWM1OTM3OGUzY2JiZDBiMDE5YmVhNTVjN2ZjLi42ZWE0MGU0MGNiZmIzZjA4NDNkNjMxMTgxNGJm
YjQ4ZDIzYjY2YjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwCkBAIC02MiwyNiArNjIsNiBAQCBJREJD
dXJzb3JCYWNrZW5kSW1wbDo6fklEQkN1cnNvckJhY2tlbmRJbXBsKCkKICAgICBtX29iamVjdFN0
b3JlLmNsZWFyKCk7CiB9CiAKLVBhc3NSZWZQdHI8SURCS2V5PiBJREJDdXJzb3JCYWNrZW5kSW1w
bDo6a2V5KCkgY29uc3QKLXsKLSAgICBJREJfVFJBQ0UoIklEQkN1cnNvckJhY2tlbmRJbXBsOjpr
ZXkiKTsKLSAgICByZXR1cm4gbV9jdXJzb3ItPmtleSgpOwotfQotCi1QYXNzUmVmUHRyPElEQktl
eT4gSURCQ3Vyc29yQmFja2VuZEltcGw6OnByaW1hcnlLZXkoKSBjb25zdAotewotICAgIElEQl9U
UkFDRSgiSURCQ3Vyc29yQmFja2VuZEltcGw6OnByaW1hcnlLZXkiKTsKLSAgICByZXR1cm4gbV9j
dXJzb3ItPnByaW1hcnlLZXkoKTsKLX0KLQotUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IElEQkN1cnNvckJhY2tlbmRJbXBsOjp2YWx1ZSgpIGNvbnN0Ci17Ci0gICAgSURCX1RSQUNF
KCJJREJDdXJzb3JCYWNrZW5kSW1wbDo6dmFsdWUiKTsKLSAgICBpZiAobV9jdXJzb3JUeXBlID09
IEluZGV4S2V5Q3Vyc29yKQotICAgICAgcmV0dXJuIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVs
bFZhbHVlKCk7Ci0gICAgcmV0dXJuIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlRnJvbVdp
cmUobV9jdXJzb3ItPnZhbHVlKCkpOwotfQotCiB2b2lkIElEQkN1cnNvckJhY2tlbmRJbXBsOjpj
b250aW51ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5PiBwcnBLZXksIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIElEQl9U
UkFDRSgiSURCQ3Vyc29yQmFja2VuZEltcGw6OmNvbnRpbnVlIik7CkBAIC0xMDksNyArODksNyBA
QCB2b2lkIElEQkN1cnNvckJhY2tlbmRJbXBsOjphZHZhbmNlSW50ZXJuYWwoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
Y2FsbGJhY2tzLT5vblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCk7CisgICAgY2FsbGJhY2tzLT5v
blN1Y2Nlc3MoY3Vyc29yLT5rZXkoKSwgY3Vyc29yLT5wcmltYXJ5S2V5KCksIGN1cnNvci0+dmFs
dWUoKSk7CiB9CiAKIHZvaWQgSURCQ3Vyc29yQmFja2VuZEltcGw6OmNvbnRpbnVlRnVuY3Rpb25J
bnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNr
ZW5kSW1wbD4gcHJwQ3Vyc29yLCBQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5LCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQpAQCAtMTI0LDcgKzEwNCw3IEBAIHZvaWQgSURCQ3Vy
c29yQmFja2VuZEltcGw6OmNvbnRpbnVlRnVuY3Rpb25JbnRlcm5hbChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjYWxsYmFja3MtPm9u
U3VjY2Vzc1dpdGhDb250aW51YXRpb24oKTsKKyAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhjdXJz
b3ItPmtleSgpLCBjdXJzb3ItPnByaW1hcnlLZXkoKSwgY3Vyc29yLT52YWx1ZSgpKTsKIH0KIAog
dm9pZCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6ZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IHBycENhbGxiYWNrcywgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuaApp
bmRleCA4YzliMmU2ZWRkYWZmMzVhOWQzNzFiMTQzOTQ3MTI2YjhhNjBlMmEzLi5jMDgwN2Y4ZDMz
ZjAzN2JmNTEwODVmMTBhMTIwNjc0MWI1NmYzNzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmgKQEAgLTU0LDkg
KzU0LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfklEQkN1cnNvckJhY2tlbmRJbXBsKCk7CiAK
ICAgICAvLyBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlCi0gICAgdmlydHVhbCBQYXNzUmVmUHRy
PElEQktleT4ga2V5KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQktleT4gcHJp
bWFyeUtleSgpIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IHZhbHVlKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGFkdmFuY2UodW5zaWduZWQg
bG9uZywgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdmly
dHVhbCB2b2lkIGNvbnRpbnVlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
RnVuY3Rpb24oUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBFeGNlcHRpb25Db2RlJik7CkBAIC02
NCw2ICs2MSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHJlZmV0Y2hSZXNldChpbnQg
dXNlZFByZWZldGNoZXMsIGludCB1bnVzZWRQcmVmZXRjaGVzKTsKICAgICB2aXJ0dWFsIHZvaWQg
cG9zdFN1Y2Nlc3NIYW5kbGVyQ2FsbGJhY2soKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAK
KyAgICBQYXNzUmVmUHRyPElEQktleT4ga2V5KCkgY29uc3QgeyByZXR1cm4gbV9jdXJzb3ItPmtl
eSgpOyB9CisgICAgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXkoKSBjb25zdCB7IHJldHVy
biBtX2N1cnNvci0+cHJpbWFyeUtleSgpOyB9CisgICAgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gKG1fY3Vyc29yVHlwZSA9PSBJbmRleEtl
eUN1cnNvcikgPyBTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om51bGxWYWx1ZSgpIDogU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOjpjcmVhdGVGcm9tV2lyZShtX2N1cnNvci0+dmFsdWUoKSk7IH0KICAgICB2
b2lkIGNsb3NlKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmgKaW5kZXggMWRm
Mjg0NTZhNDFjODkzODNmZTJiODEyYWQzNzA2ZGUyNzQ4OTQzOC4uOWIyZDU3YjMwZGVkZDBjYjZh
ZjQxZjY1YWYxYTk1MzYwOTQ5OWUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTMs
MTAgKzUzLDYgQEAgcHVibGljOgogICAgICAgICBPYmplY3RTdG9yZUN1cnNvcgogICAgIH07CiAK
LSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkoKSBjb25zdCA9IDA7Ci0gICAgdmly
dHVhbCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSgpIGNvbnN0ID0gMDsK
LQogICAgIHZpcnR1YWwgdm9pZCBhZHZhbmNlKHVuc2lnbmVkIGxvbmcgY291bnQsIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
Y29udGludWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQkNh
bGxiYWNrcz4sIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUZ1
bmN0aW9uKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2Vu
ZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNr
ZW5kSW1wbC5jcHAKaW5kZXggNjEyODlhNWI4NDM3YTE1YmFjMWUxNTljMjFjYjgwOGY1MDlkN2E3
Yy4uMzhjZmNlYzk3ZmIyNzAxM2RiNzEwNGRmNzc2MjBhYjBkNjI2MDVmMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW1w
bC5jcHAKQEAgLTk5LDggKzk5LDggQEAgdm9pZCBJREJJbmRleEJhY2tlbmRJbXBsOjpvcGVuQ3Vy
c29ySW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHIKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIFJlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBj
dXJzb3IgPSBJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y3JlYXRlKGJhY2tpbmdTdG9yZUN1cnNvci5n
ZXQoKSwgY3Vyc29yVHlwZSwgdHJhbnNhY3Rpb24uZ2V0KCksIGluZGV4LT5tX29iamVjdFN0b3Jl
QmFja2VuZCk7Ci0gICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoY3Vyc29yLnJlbGVhc2UoKSk7Cisg
ICAgUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbXBsPiBjdXJzb3IgPSBJREJDdXJzb3JCYWNrZW5k
SW1wbDo6Y3JlYXRlKGJhY2tpbmdTdG9yZUN1cnNvci5nZXQoKSwgY3Vyc29yVHlwZSwgdHJhbnNh
Y3Rpb24uZ2V0KCksIGluZGV4LT5tX29iamVjdFN0b3JlQmFja2VuZCk7CisgICAgY2FsbGJhY2tz
LT5vblN1Y2Nlc3MoY3Vyc29yLCBjdXJzb3ItPmtleSgpLCBjdXJzb3ItPnByaW1hcnlLZXkoKSwg
Y3Vyc29yLT52YWx1ZSgpKTsKIH0KIAogdm9pZCBJREJJbmRleEJhY2tlbmRJbXBsOjpvcGVuQ3Vy
c29yKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHBycEtleVJhbmdlLCB1bnNpZ25lZCBzaG9ydCBk
aXJlY3Rpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb25QdHIsIEV4Y2VwdGlvbkNvZGUmIGVj
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0
U3RvcmVCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAppbmRleCBjZTA5MTVhMzA2ZjFhNzNmNGJjOWY1
ZTI5Y2Q3MGNhNmYzYTlmMjc1Li5hODY3ZGMwMzM3NWVkNDI0NmMwZjYwMDEzMzQ2MWNiZDg5NmIw
MDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcApAQCAtNTM5LDggKzUzOSw4IEBAIHZv
aWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6b3BlbkN1cnNvckludGVybmFsKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBQYXNzCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSZWZQ
dHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gY3Vyc29yID0gSURCQ3Vyc29yQmFja2VuZElt
cGw6OmNyZWF0ZShiYWNraW5nU3RvcmVDdXJzb3IucmVsZWFzZSgpLCBJREJDdXJzb3JCYWNrZW5k
SW50ZXJmYWNlOjpPYmplY3RTdG9yZUN1cnNvciwgdHJhbnNhY3Rpb24uZ2V0KCksIG9iamVjdFN0
b3JlLmdldCgpKTsKLSAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhjdXJzb3IucmVsZWFzZSgpKTsK
KyAgICBSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEltcGw+IGN1cnNvciA9IElEQkN1cnNvckJhY2tl
bmRJbXBsOjpjcmVhdGUoYmFja2luZ1N0b3JlQ3Vyc29yLnJlbGVhc2UoKSwgSURCQ3Vyc29yQmFj
a2VuZEludGVyZmFjZTo6T2JqZWN0U3RvcmVDdXJzb3IsIHRyYW5zYWN0aW9uLmdldCgpLCBvYmpl
Y3RTdG9yZS5nZXQoKSk7CisgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoY3Vyc29yLCBjdXJzb3It
PmtleSgpLCBjdXJzb3ItPnByaW1hcnlLZXkoKSwgY3Vyc29yLT52YWx1ZSgpKTsKIH0KIAogdm9p
ZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpjb3VudChQYXNzUmVmUHRyPElEQktleVJhbmdl
PiByYW5nZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgSURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDEy
NzBlZmNjZGQ0MjI3YzViMmU3YmUyM2RlNjUzMDViNTA2MTg3M2MuLmYwODg2YzY2Y2IxZGZjZGNm
MDRjMTAzZmVhMWQ1OGMzMDU4ZTkyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC0xOTksMTUgKzE5OSwxOSBAQCBQYXNzUmVmUHRy
PElEQkN1cnNvcj4gSURCUmVxdWVzdDo6Z2V0UmVzdWx0Q3Vyc29yKCkKICAgICByZXR1cm4gMDsK
IH0KIAotdm9pZCBJREJSZXF1ZXN0OjpzZXRSZXN1bHRDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJz
b3I+IHBycEN1cnNvcikKK3ZvaWQgSURCUmVxdWVzdDo6c2V0UmVzdWx0Q3Vyc29yKFBhc3NSZWZQ
dHI8SURCQ3Vyc29yPiBjdXJzb3IsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8
SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFs
dWUpCiB7CiAgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsKKyAgICBtX2N1cnNv
cktleSA9IGtleTsKKyAgICBtX2N1cnNvclByaW1hcnlLZXkgPSBwcmltYXJ5S2V5OworICAgIG1f
Y3Vyc29yVmFsdWUgPSB2YWx1ZTsKKwogICAgIGlmIChtX2N1cnNvclR5cGUgPT0gSURCQ3Vyc29y
QmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlDdXJzb3IpIHsKLSAgICAgICAgbV9yZXN1bHQgPSBJ
REJBbnk6OmNyZWF0ZShwcnBDdXJzb3IpOworICAgICAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3Jl
YXRlKGN1cnNvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3Jlc3VsdCA9IElE
QkFueTo6Y3JlYXRlKElEQkN1cnNvcldpdGhWYWx1ZTo6ZnJvbUN1cnNvcihwcnBDdXJzb3IpKTsK
KyAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKElEQkN1cnNvcldpdGhWYWx1ZTo6ZnJvbUN1
cnNvcihjdXJzb3IpKTsKIH0KIAogYm9vbCBJREJSZXF1ZXN0OjpzaG91bGRFbnF1ZXVlRXZlbnQo
KSBjb25zdApAQCAtMjUwLDcgKzI1NCw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBh
c3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gZG9tU3RyaW5nTGlzdCkKICAgICBlbnF1ZXVlRXZlbnQo
Y3JlYXRlU3VjY2Vzc0V2ZW50KCkpOwogfQogCi12b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQ
YXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQpCit2b2lkIElEQlJl
cXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJh
Y2tlbmQsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5
S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUpCiB7CiAgICAgSURC
X1RSQUNFKCJJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoSURCQ3Vyc29yKSIpOwogICAgIGlmICghc2hv
dWxkRW5xdWV1ZUV2ZW50KCkpCkBAIC0yNjIsNyArMjY2LDcgQEAgdm9pZCBJREJSZXF1ZXN0Ojpv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQog
ICAgICAgICBjdXJzb3IgPSBJREJDdXJzb3I6OmNyZWF0ZShiYWNrZW5kLCBtX2N1cnNvckRpcmVj
dGlvbiwgdGhpcywgbV9zb3VyY2UuZ2V0KCksIG1fdHJhbnNhY3Rpb24uZ2V0KCkpOwogICAgIGVs
c2UKICAgICAgICAgY3Vyc29yID0gSURCQ3Vyc29yV2l0aFZhbHVlOjpjcmVhdGUoYmFja2VuZCwg
bV9jdXJzb3JEaXJlY3Rpb24sIHRoaXMsIG1fc291cmNlLmdldCgpLCBtX3RyYW5zYWN0aW9uLmdl
dCgpKTsKLSAgICBzZXRSZXN1bHRDdXJzb3IoY3Vyc29yKTsKKyAgICBzZXRSZXN1bHRDdXJzb3Io
Y3Vyc29yLCBrZXksIHByaW1hcnlLZXksIHZhbHVlKTsKIAogICAgIGVucXVldWVFdmVudChjcmVh
dGVTdWNjZXNzRXZlbnQoKSk7CiB9CkBAIC0zNjksMTQgKzM3MywxNCBAQCB2b2lkIElEQlJlcXVl
c3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcHJwU2VyaWFs
aXplZFNjcmlwdAogICAgIG9uU3VjY2Vzcyh2YWx1ZS5yZWxlYXNlKCkpOwogfQogCi12b2lkIElE
QlJlcXVlc3Q6Om9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKQordm9pZCBJREJSZXF1ZXN0Ojpv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1h
cnlLZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSkKIHsKLSAgICBJ
REJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24iKTsKKyAgICBJ
REJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9uU3VjY2VzcyhrZXksIHByaW1hcnlLZXksIHZhbHVlKSIp
OwogICAgIGlmICghc2hvdWxkRW5xdWV1ZUV2ZW50KCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IEFTU0VSVChtX3BlbmRpbmdDdXJzb3IpOwotICAgIHNldFJlc3VsdEN1cnNvcihtX3BlbmRpbmdD
dXJzb3IucmVsZWFzZSgpKTsKKyAgICBzZXRSZXN1bHRDdXJzb3IobV9wZW5kaW5nQ3Vyc29yLnJl
bGVhc2UoKSwga2V5LCBwcmltYXJ5S2V5LCB2YWx1ZSk7CiAgICAgZW5xdWV1ZUV2ZW50KGNyZWF0
ZVN1Y2Nlc3NFdmVudCgpKTsKIH0KIApAQCAtNDQ4LDcgKzQ1Miw3IEBAIGJvb2wgSURCUmVxdWVz
dDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICBpZiAoZXZlbnQt
PnR5cGUoKSA9PSBldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50KSB7CiAgICAgICAgIGN1cnNvclRv
Tm90aWZ5ID0gZ2V0UmVzdWx0Q3Vyc29yKCk7CiAgICAgICAgIGlmIChjdXJzb3JUb05vdGlmeSkK
LSAgICAgICAgICAgIGN1cnNvclRvTm90aWZ5LT5zZXRWYWx1ZVJlYWR5KCk7CisgICAgICAgICAg
ICBjdXJzb3JUb05vdGlmeS0+c2V0VmFsdWVSZWFkeShtX2N1cnNvcktleS5yZWxlYXNlKCksIG1f
Y3Vyc29yUHJpbWFyeUtleS5yZWxlYXNlKCksIG1fY3Vyc29yVmFsdWUucmVsZWFzZSgpKTsKICAg
ICB9CiAKICAgICAvLyBGSVhNRTogV2hlbiB3ZSBhbGxvdyBjdXN0b20gZXZlbnQgZGlzcGF0Y2hp
bmcsIHRoaXMgd2lsbCBwcm9iYWJseSBuZWVkIHRvIGNoYW5nZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAppbmRleCBiMDVmZTk4YWVjOGNlNGQzNTQ4
OTk5MDkxZmVjOTQ0YmZhMmZiNzNiLi45NTM4MGMyOTRlMjBlODBhY2Q4NmM2ZTJjOTMxODk4OGRl
MWRhOWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJS
ZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVz
dC5oCkBAIC04MiwxMiArODIsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9y
KFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0Pik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vz
cyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4pOwotICAgIHZpcnR1YWwg
dm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPik7Cisg
ICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRl
cmZhY2U+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5
LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNz
KFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgdmlydHVh
bCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
LCBQYXNzUmVmUHRyPElEQktleT4sIGNvbnN0IElEQktleVBhdGgmKTsKLSAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgUGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNj
ZXNzV2l0aFByZWZldGNoKGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVj
dG9yPFJlZlB0cjxJREJLZXk+ID4mLCBjb25zdCBWZWN0b3I8UmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gPiYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0gLy8gTm90IGltcGxlbWVudGVk
LiBDYWxsYmFjayBzaG91bGQgbm90IHJlYWNoIHRoZSByZW5kZXJlciBzaWRlLgogICAgIHZpcnR1
YWwgdm9pZCBvbkJsb2NrZWQoKTsKIApAQCAtMTIzLDcgKzEyMyw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCBFdmVudFRhcmdldERhdGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpOwogCiAgICAg
UGFzc1JlZlB0cjxJREJDdXJzb3I+IGdldFJlc3VsdEN1cnNvcigpOwotICAgIHZvaWQgc2V0UmVz
dWx0Q3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29yPik7CisgICAgdm9pZCBzZXRSZXN1bHRDdXJz
b3IoUGFzc1JlZlB0cjxJREJDdXJzb3I+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8
SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwog
CiAgICAgUmVmUHRyPElEQkFueT4gbV9zb3VyY2U7CiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9u
PiBtX3RyYW5zYWN0aW9uOwpAQCAtMTM3LDYgKzEzNyw5IEBAIHByaXZhdGU6CiAgICAgSURCQ3Vy
c29yQmFja2VuZEludGVyZmFjZTo6Q3Vyc29yVHlwZSBtX2N1cnNvclR5cGU7CiAgICAgSURCQ3Vy
c29yOjpEaXJlY3Rpb24gbV9jdXJzb3JEaXJlY3Rpb247CiAgICAgUmVmUHRyPElEQkN1cnNvcj4g
bV9wZW5kaW5nQ3Vyc29yOworICAgIFJlZlB0cjxJREJLZXk+IG1fY3Vyc29yS2V5OworICAgIFJl
ZlB0cjxJREJLZXk+IG1fY3Vyc29yUHJpbWFyeUtleTsKKyAgICBSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBtX2N1cnNvclZhbHVlOwogCiAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRU
YXJnZXREYXRhOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbmRleGVkREJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5kZXhlZERCQWdlbnQuY3BwCmluZGV4IGM1ODRiMWU5ZmQzZWFmYTllZmVhYzYxZDQxNjVk
ZjM2YzQyZWQ4YTcuLjMyYjI5YjU2M2Q2YTU3MjFjMTM1MmJmZDVhNjQzMzhmMWFiNzUyMTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFn
ZW50LmNwcApAQCAtMTA4LDEzICsxMDgsMTMgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lk
IG9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPikgT1ZFUlJJREUgeyB9CiAgICAg
dmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+KSBPVkVSUklE
RSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFj
a2VuZEludGVyZmFjZT4pIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3Mo
UGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJLZXk+
LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPikg
T1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZT4pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+KSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPikg
T1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPElEQktleT4s
IGNvbnN0IElEQktleVBhdGgmKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNj
ZXNzV2l0aENvbnRpbnVhdGlvbigpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9u
U3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYsIGNvbnN0
IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+ID4mKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2Vk
KCkgT1ZFUlJJREUgeyB9CiB9OwpAQCAtNDkwLDEzICs0OTAsMTMgQEAgcHVibGljOgogICAgICAg
ICBlbmQoZmFsc2UpOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1Jl
ZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBpZGJDdXJzb3IpCisgICAgdmlydHVhbCB2
b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGlkYkN1
cnNvciwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlL
ZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSkKICAgICB7CiAgICAg
ICAgIG1faWRiQ3Vyc29yID0gaWRiQ3Vyc29yOwotICAgICAgICBvblN1Y2Nlc3NXaXRoQ29udGlu
dWF0aW9uKCk7CisgICAgICAgIG9uU3VjY2VzcyhrZXksIHByaW1hcnlLZXksIHZhbHVlKTsKICAg
ICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpCisgICAg
dmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRy
PElEQktleT4gcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZh
bHVlKQogICAgIHsKICAgICAgICAgaWYgKG1fc2tpcENvdW50KSB7CiAgICAgICAgICAgICAtLW1f
c2tpcENvdW50OwpAQCAtNTA5LDkgKzUwOSw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCi0gICAgICAgIFJlZlB0cjxJREJLZXk+IGtleSA9IG1faWRiQ3Vyc29y
LT5rZXkoKTsKLSAgICAgICAgUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSA9IG1faWRiQ3Vyc29y
LT5wcmltYXJ5S2V5KCk7Ci0gICAgICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZh
bHVlID0gbV9pZGJDdXJzb3ItPnZhbHVlKCk7CiAgICAgICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6
UnVudGltZTo6UmVtb3RlT2JqZWN0PiB3cmFwcGVkVmFsdWUgPSBtX2luamVjdGVkU2NyaXB0Lndy
YXBTZXJpYWxpemVkT2JqZWN0KHZhbHVlLmdldCgpLCBTdHJpbmcoKSk7CiAgICAgICAgIFJlZlB0
cjxEYXRhRW50cnk+IGRhdGFFbnRyeSA9IERhdGFFbnRyeTo6Y3JlYXRlKCkKICAgICAgICAgICAg
IC5zZXRLZXkoa2V5RnJvbUlEQktleShrZXkuZ2V0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaAppbmRleCA2NTViMDA5ZTAxYWEzYmNlOWQ2
MjA5MGQwMjQ5MDljNDQ1OWUwZjhhLi5hY2EyOTZiYzhkNjVkNGRiNDg4YTg2ODFjMzI1M2ZiZWRj
YmNhNDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJD
YWxsYmFja3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxs
YmFja3MuaApAQCAtNTAsMTcgKzUwLDE3IEBAIHB1YmxpYzoKICAgICAvLyBGb3IgdGhlIHJlc3Qs
IHBhc3Mgb3duZXJzaGlwIHRvIHRoZSBjYWxsZWUgdmlhIGEgcG9pbnRlci4KICAgICB2aXJ0dWFs
IHZvaWQgb25FcnJvcihjb25zdCBXZWJJREJEYXRhYmFzZUVycm9yJikgeyBXRUJLSVRfQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYkRP
TVN0cmluZ0xpc3QmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCQ3Vyc29yKikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KLSAgICAvLyBGSVhNRTogVGVtcG9yYXJ5IG5vLW9wIG1ldGhvZCB0byBhbGxvdyBj
YWxsZXJzIHRvIHVwZGF0ZSBiZWZvcmUgV0s5MjI3OCBsYW5kcy4KLSAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKFdlYklEQkN1cnNvciosIGNvbnN0IFdlYklEQktleSYga2V5LCBjb25zdCBXZWJJ
REJLZXkmIHByaW1hcnlLZXksIGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYpIHsgfQor
ICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBuby1vcCBtZXRob2Qgd2hlbiBjYWxsZXJzIGFyZSB1
cGRhdGVkLgorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCQ3Vyc29yKikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJDdXJzb3IqLCBjb25zdCBXZWJJREJLZXkm
IGtleSwgY29uc3QgV2ViSURCS2V5JiBwcmltYXJ5S2V5LCBjb25zdCBXZWJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwg
dm9pZCBvblN1Y2Nlc3MoV2ViSURCRGF0YWJhc2UqKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViSURCS2V5JikgeyBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNz
KFdlYklEQlRyYW5zYWN0aW9uKikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYp
IHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2Vzcyhjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmLCBjb25zdCBXZWJJREJLZXkmLCBj
b25zdCBXZWJJREJLZXlQYXRoJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpIHsgV0VCS0lUX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgLy8gRklYTUU6IFRlbXBvcmFyeSBuby1vcCBtZXRob2Qg
dG8gYWxsb3cgY2FsbGVycyB0byB1cGRhdGUgYmVmb3JlIFdLOTIyNzggbGFuZHMuCi0gICAgdmly
dHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJJREJLZXkmIGtleSwgY29uc3QgV2ViSURCS2V5
JiBwcmltYXJ5S2V5LCBjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmKSB7IH0KKyAgICAv
LyBGSVhNRTogUmVtb3ZlIHRoaXMgbm8tb3AgbWV0aG9kIHdoZW4gY2FsbGVycyBhcmUgdXBkYXRl
ZC4KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViSURCS2V5JiBrZXksIGNvbnN0IFdlYklE
QktleSYgcHJpbWFyeUtleSwgY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJikgeyBXRUJL
SVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCkg
eyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9j
a2VkKGxvbmcgbG9uZyBvbGRWZXJzaW9uKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgV2ViVmVjdG9y
PFdlYklEQktleT4mIGtleXMsIGNvbnN0IFdlYlZlY3RvcjxXZWJJREJLZXk+JiBwcmltYXJ5S2V5
cywgY29uc3QgV2ViVmVjdG9yPFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mIHZhbHVlcykgeyBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYklEQkN1cnNvci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSURCQ3Vyc29yLmgKaW5kZXggYWM4OWQ3OTU1NDMwZDRmYjgxOTQ0YzlhOTZiNTFj
NjQ3ZDQxZTJhYi4uZmI4MDdlMmExNjE3ZmY5NmE0YzNlNjQ0NDIyNzdmZGMwZjYwYjQ4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ3Vyc29yLmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ3Vyc29yLmgKQEAgLTQ3LDYg
KzQ3LDcgQEAgcHVibGljOgogICAgICAgICBQcmV2Tm9EdXBsaWNhdGUgPSAzLAogICAgIH07CiAK
KyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoZXNlIG1ldGhvZHMgd2hlbiBjYWxsZXJzIGFyZSB1cGRh
dGVkLgogICAgIHZpcnR1YWwgV2ViSURCS2V5IGtleSgpIGNvbnN0CiAgICAgewogICAgICAgICBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggN2RmODRkMmZmYmUwNzk2MTM1NTY1ZmEw
MmNmN2U4ZTFhZDgyMDkyYy4uN2QyYzljZjk5YzEyM2YwOWE0NDE0MzNmOTAwODAwMjRjZDA5Nzhi
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5
LmNwcApAQCAtNjgsOSArNjgsOSBAQCB2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvbkVycm9yKFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gaWRiRGF0YWJhc2VFcnJvcikKICAgICBtX2NhbGxi
YWNrcy0+b25FcnJvcihXZWJJREJEYXRhYmFzZUVycm9yKGlkYkRhdGFiYXNlRXJyb3IpKTsKIH0K
IAotdm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29y
QmFja2VuZEludGVyZmFjZT4gaWRiQ3Vyc29yQmFja2VuZCkKK3ZvaWQgSURCQ2FsbGJhY2tzUHJv
eHk6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGlkYkN1
cnNvckJhY2tlbmQsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBw
cmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUpCiB7Ci0g
ICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhuZXcgV2ViSURCQ3Vyc29ySW1wbChpZGJDdXJzb3JC
YWNrZW5kKSk7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhuZXcgV2ViSURCQ3Vyc29ySW1w
bChpZGJDdXJzb3JCYWNrZW5kKSwga2V5LCBwcmltYXJ5S2V5LCB2YWx1ZSk7CiB9CiAKIHZvaWQg
SURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2Vu
ZEludGVyZmFjZT4gYmFja2VuZCkKQEAgLTEwMiw5ICsxMDIsMTAgQEAgdm9pZCBJREJDYWxsYmFj
a3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJp
YWxpemVkU2MKIHsKICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKHNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSwga2V5LCBrZXlQYXRoKTsKIH0KLXZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2Vz
c1dpdGhDb250aW51YXRpb24oKQorCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3Mo
UGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSkKIHsKLSAgICBtX2NhbGxiYWNr
cy0+b25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpOworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nl
c3Moa2V5LCBwcmltYXJ5S2V5LCB2YWx1ZSk7CiB9CiAKIHZvaWQgSURCQ2FsbGJhY2tzUHJveHk6
Om9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYga2V5
cywgY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mIHByaW1hcnlLZXlzLCBjb25zdCBWZWN0
b3I8UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYgdmFsdWVzKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKaW5kZXggZGIzMDU2NTUwYjJi
MmUxN2UyZTMwZGRlZjc5ZTlkZDI5YzI1ZmZiZC4uNGM3MGI2NjZlYWM4MTNmOWI5OGVjZjg3MmU3
OGNkMjQ4NmQ2N2UxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
Q2FsbGJhY2tzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxs
YmFja3NQcm94eS5oCkBAIC00NywxMyArNDcsMTMgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2
b2lkIG9uRXJyb3IoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUVycm9yPik7CiAgICAg
dmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6OkRPTVN0cmluZ0xpc3Q+
KTsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ3Vy
c29yQmFja2VuZEludGVyZmFjZT4pOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpJREJLZXk+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4gcHJpbWFyeUtleSwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsKICAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6OklE
QktleT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNj
ZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiAgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiwgY29uc3QgV2ViQ29yZTo6SURCS2V5
UGF0aCYpOwotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCk7Cisg
ICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFBh
c3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRo
UHJlZmV0Y2goY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpJREJLZXk+ID4mIGtleXMsIGNv
bnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiA+JiBwcmltYXJ5S2V5cywgY29uc3Qg
VmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mIHZhbHVlcyk7
CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5LmNwcAppbmRleCAyNzdhNjY1Y2Yw
MDBlZTkzZTA4YzRmYTFkYzQ2Yzg1MWI5ODE5ZjE2Li45MjQzZDJiYTJjNmU4ZTIzYmU3ZWEwMWU0
Y2E4NjBmZjI4MzkwM2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJDdXJzb3JCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkN1cnNvckJhY2tlbmRQcm94eS5jcHAKQEAgLTU0LDIxICs1NCw2IEBAIElEQkN1cnNvckJh
Y2tlbmRQcm94eTo6fklEQkN1cnNvckJhY2tlbmRQcm94eSgpCiB7CiB9CiAKLVBhc3NSZWZQdHI8
SURCS2V5PiBJREJDdXJzb3JCYWNrZW5kUHJveHk6OmtleSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1faWRiQ3Vyc29yLT5rZXkoKTsKLX0KLQotUGFzc1JlZlB0cjxJREJLZXk+IElEQkN1cnNvckJh
Y2tlbmRQcm94eTo6cHJpbWFyeUtleSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faWRiQ3Vyc29y
LT5wcmltYXJ5S2V5KCk7Ci19Ci0KLVBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBJ
REJDdXJzb3JCYWNrZW5kUHJveHk6OnZhbHVlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pZGJD
dXJzb3ItPnZhbHVlKCk7Ci19Ci0KIHZvaWQgSURCQ3Vyc29yQmFja2VuZFByb3h5OjphZHZhbmNl
KHVuc2lnbmVkIGxvbmcgY291bnQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3Ms
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIG1faWRiQ3Vyc29yLT5hZHZhbmNlKGNvdW50LCBu
ZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCBlYyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNvckJhY2tlbmRQcm94eS5oCmluZGV4IGQ3NDJmNjhl
NWZlNTZmMzdkYWFjMTc1MzczNmZjZTk3ZjBhMjY0YWUuLjA4YWZlYmE4ZjFlNGM4NDNiZDZhN2Fh
NTgyMDZlZDk1YjcwZDQ4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkN1cnNvckJhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkN1cnNvckJhY2tlbmRQcm94eS5oCkBAIC00Miw5ICs0Miw2IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBjcmVh
dGUoUGFzc093blB0cjxXZWJJREJDdXJzb3I+KTsKICAgICB2aXJ0dWFsIH5JREJDdXJzb3JCYWNr
ZW5kUHJveHkoKTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+IGtl
eSgpIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+IHByaW1h
cnlLZXkoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiB2YWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBhZHZhbmNlKHVu
c2lnbmVkIGxvbmcsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgV2ViQ29yZTo6
RXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZUZ1bmN0aW9uKFBhc3NS
ZWZQdHI8V2ViQ29yZTo6SURCS2V5PiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+
LCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUZ1bmN0
aW9uKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgV2ViQ29yZTo6RXhjZXB0aW9u
Q29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2Fs
bGJhY2tzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFj
a3NJbXBsLmNwcAppbmRleCA1YjVhZWRmN2NjYjM3ZTI0OWM1M2MxYWY5ZThlYzhlZDliMGU2ZTEy
Li4wODNkYmNjYmUyNjc1ZjIwOTliNTM1NTdmNDAxNjhlM2UwODNkNzY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcApAQCAtNjUs
OSArNjUsOSBAQCB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2Vzcyhjb25zdCBXZWJE
T01TdHJpbmdMaXN0JiBkb21TdHJpbmdMaXN0KQogICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Mo
ZG9tU3RyaW5nTGlzdCk7CiB9CiAKLXZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNz
KFdlYklEQkN1cnNvciogY3Vyc29yKQordm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nl
c3MoV2ViSURCQ3Vyc29yKiBjdXJzb3IsIGNvbnN0IFdlYklEQktleSYga2V5LCBjb25zdCBXZWJJ
REJLZXkmIHByaW1hcnlLZXksIGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgdmFsdWUp
CiB7Ci0gICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhJREJDdXJzb3JCYWNrZW5kUHJveHk6OmNy
ZWF0ZShhZG9wdFB0cihjdXJzb3IpKSk7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhJREJD
dXJzb3JCYWNrZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjdXJzb3IpKSwga2V5LCBwcmltYXJ5
S2V5LCB2YWx1ZSk7CiB9CiAKIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKFdl
YklEQkRhdGFiYXNlKiB3ZWJLaXRJbnN0YW5jZSkKQEAgLTk1LDkgKzk1LDkgQEAgdm9pZCBXZWJJ
REJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVl
JiBzZXJpYWxpemVkU2MKICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKHNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSwga2V5LCBrZXlQYXRoKTsKIH0KIAotdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpv
blN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCkKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25T
dWNjZXNzKGNvbnN0IFdlYklEQktleSYga2V5LCBjb25zdCBXZWJJREJLZXkmIHByaW1hcnlLZXks
IGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgdmFsdWUpCiB7Ci0gICAgbV9jYWxsYmFj
a3MtPm9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKTsKKyAgICBtX2NhbGxiYWNrcy0+b25TdWNj
ZXNzKGtleSwgcHJpbWFyeUtleSwgdmFsdWUpOwogfQogCiB2b2lkIFdlYklEQkNhbGxiYWNrc0lt
cGw6Om9uQmxvY2tlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJDYWxsYmFja3NJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJD
YWxsYmFja3NJbXBsLmgKaW5kZXggN2IwMjE2MzU5ZDU2ZDgxODY5NWZlOTczYTAxODJhZmI1MTI1
MDE2MS4uMzBkNzQzNmM2YTU5ZjQ4OTYyOTA1MjYwMmFmODkzODQ4MzJiMzkyOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaApAQCAtNDMs
MTMgKzQzLDEzIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKGNvbnN0IFdl
YklEQkRhdGFiYXNlRXJyb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdl
YkRPTVN0cmluZ0xpc3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkN1cnNv
ciopOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCQ3Vyc29yKiwgY29uc3QgV2Vi
SURCS2V5JiwgY29uc3QgV2ViSURCS2V5JiBwcmltYXJ5S2V5LCBjb25zdCBXZWJTZXJpYWxpemVk
U2NyaXB0VmFsdWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkRhdGFiYXNl
Kik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJJREJLZXkmKTsKICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQlRyYW5zYWN0aW9uKik7CiAgICAgdmlydHVhbCB2
b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmKTsKICAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYsIGNvbnN0
IFdlYklEQktleSYsIGNvbnN0IFdlYklEQktleVBhdGgmKTsKLSAgICB2aXJ0dWFsIHZvaWQgb25T
dWNjZXNzV2l0aENvbnRpbnVhdGlvbigpOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29u
c3QgV2ViSURCS2V5JiwgY29uc3QgV2ViSURCS2V5JiBwcmltYXJ5S2V5LCBjb25zdCBXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCk7CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDdXJz
b3JJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwu
Y3BwCmluZGV4IDBkNjVhODdiZWUwYWM0ZjZlMjI4NjFkYWYxNzE4YWVhY2Y4ZGIzYWIuLjI1MmNm
ZGQxMWU0OGU5YzMzNmUxM2MzM2FkN2Q5Y2Y2OWY3ODg0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuY3BwCkBAIC00NywyMSArNDcsNiBAQCBX
ZWJJREJDdXJzb3JJbXBsOjp+V2ViSURCQ3Vyc29ySW1wbCgpCiB7CiB9CiAKLVdlYklEQktleSBX
ZWJJREJDdXJzb3JJbXBsOjprZXkoKSBjb25zdAotewotICAgIHJldHVybiBtX2lkYkN1cnNvckJh
Y2tlbmQtPmtleSgpOwotfQotCi1XZWJJREJLZXkgV2ViSURCQ3Vyc29ySW1wbDo6cHJpbWFyeUtl
eSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faWRiQ3Vyc29yQmFja2VuZC0+cHJpbWFyeUtleSgp
OwotfQotCi1XZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUgV2ViSURCQ3Vyc29ySW1wbDo6dmFsdWUo
KSBjb25zdAotewotICAgIHJldHVybiBtX2lkYkN1cnNvckJhY2tlbmQtPnZhbHVlKCk7Ci19Ci0K
IHZvaWQgV2ViSURCQ3Vyc29ySW1wbDo6YWR2YW5jZSh1bnNpZ25lZCBsb25nIGNvdW50LCBXZWJJ
REJDYWxsYmFja3MqIGNhbGxiYWNrcywgV2ViRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgbV9p
ZGJDdXJzb3JCYWNrZW5kLT5hZHZhbmNlKGNvdW50LCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRl
KGFkb3B0UHRyKGNhbGxiYWNrcykpLCBlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJDdXJzb3JJbXBsLmgKaW5kZXggNDVhMjI5YjM4MzAxOTI2OTFmYTc4ZDBkYTg2YmUz
OTc2ODcxYmI3YS4uZWNjYzY1ZGQwZTMzOGZlZTJkMzJkMjcyNzJhYzc5ODk4YzBkYmQxMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuaApAQCAtNDQs
OSArNDQsNiBAQCBwdWJsaWM6CiAgICAgV2ViSURCQ3Vyc29ySW1wbChXVEY6OlBhc3NSZWZQdHI8
V2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4pOwogICAgIHZpcnR1YWwgfldlYklE
QkN1cnNvckltcGwoKTsKIAotICAgIHZpcnR1YWwgV2ViSURCS2V5IGtleSgpIGNvbnN0OwotICAg
IHZpcnR1YWwgV2ViSURCS2V5IHByaW1hcnlLZXkoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFdlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSB2YWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBhZHZh
bmNlKHVuc2lnbmVkIGxvbmcsIFdlYklEQkNhbGxiYWNrcyosIFdlYkV4Y2VwdGlvbkNvZGUmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgY29udGludWVGdW5jdGlvbihjb25zdCBXZWJJREJLZXkmLCBXZWJJ
REJDYWxsYmFja3MqLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0
ZUZ1bmN0aW9uKFdlYklEQkNhbGxiYWNrcyosIFdlYkV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNw
cAppbmRleCA5MWRmMTI2YTVmYjhmYjY3YmM2ZWFhYzUxZDk0N2U5ZGE0MWQwOWE2Li4zZmMxMDUz
MDdiZjU3ZTA1NDEzZTlkMTcyYzE1NTljNTQwOGJjN2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCkBAIC01MSw3
ICs1MSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV93YXNFcnJvckNhbGxlZCA9IHRydWU7CiAgICAg
fQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0Pikg
eyB9Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U+KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8
SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0
cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2U+KQogICAgIHsKICAgICAgICAgRVhQRUNUX1RSVUUoZmFsc2UpOwpAQCAtNjAsNyArNjAsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZT4pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3Mo
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJ
REJLZXk+LCBjb25zdCBJREJLZXlQYXRoJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vz
c1dpdGhDb250aW51YXRpb24oKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NS
ZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4pIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aFByZWZldGNo
KGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxJREJL
ZXk+ID4mLCBjb25zdCBWZWN0b3I8UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKSB7IH0KIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNw
cAppbmRleCA1YzAxZTllY2MzMWMyNWZkMTBkMGIxODdmNDBkMjM3OTczMzYxYjBiLi4yMjc3ODg3
NWZhOTM0MDIwNzg3MzAxMzhlMTNhMzQ2MTZmNDM1OTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKQEAgLTc3
LDcgKzc3LDcgQEAgcHVibGljOgogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihQYXNz
UmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4pIE9WRVJSSURFIHsgfQotICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNl
PikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElE
QkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8
SURCS2V5PiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KSBPVkVSUklERSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5k
SW50ZXJmYWNlPikgT1ZFUlJJREUKICAgICB7CiAgICAgICAgIG1fd2FzU3VjY2Vzc0RCQ2FsbGVk
ID0gdHJ1ZTsKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3MoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KSBPVkVSUklE
RSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgY29uc3Qg
SURCS2V5UGF0aCYpIE9WRVJSSURFIHsgfTsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0
aENvbnRpbnVhdGlvbigpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3Mo
UGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPikgT1ZFUlJJREUgeyB9OwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3NXaXRoUHJlZmV0Y2goY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mLCBjb25zdCBWZWN0
b3I8UmVmUHRyPElEQktleT4gPiYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiA+JikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpIE9W
RVJSSURFIHsgfQogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvSURCUmVxdWVzdFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9J
REJSZXF1ZXN0VGVzdC5jcHAKaW5kZXggMGYzYjc3NTI3MzQ4ZDRlYWVkZjFiMzVmMzVkZWMwYWVh
NDk1Zjc4YS4uNzc3NTcxOTNiZjYzZDAzYjZiZjRlOGQyNWQ1NTJiMzliMmZmNWQyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJSZXF1ZXN0VGVzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJSZXF1ZXN0VGVzdC5jcHAKQEAgLTUx
LDEyICs1MSwxMiBAQCBURVNUKElEQlJlcXVlc3RUZXN0LCBFdmVudHNBZnRlclN0b3BwaW5nKQog
ICAgIHJlcXVlc3QtPm9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpJREJfQUJPUlRfRVJSLCAiRGVzY3JpcHRpb24gZ29lcyBoZXJlLiIpKTsKICAg
ICByZXF1ZXN0LT5vblN1Y2Nlc3MoRE9NU3RyaW5nTGlzdDo6Y3JlYXRlKCkpOwogICAgIHJlcXVl
c3QtPm9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4oKSk7
Ci0gICAgcmVxdWVzdC0+b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVy
ZmFjZT4oKSk7CisgICAgcmVxdWVzdC0+b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFj
a2VuZEludGVyZmFjZT4oKSwgSURCS2V5OjpjcmVhdGVJbnZhbGlkKCksIElEQktleTo6Y3JlYXRl
SW52YWxpZCgpLCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om51bGxWYWx1ZSgpKTsKICAgICByZXF1
ZXN0LT5vblN1Y2Nlc3MoSURCS2V5OjpjcmVhdGVJbnZhbGlkKCkpOwogICAgIHJlcXVlc3QtPm9u
U3VjY2VzcyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4oKSk7CiAg
ICAgcmVxdWVzdC0+b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVsbFZhbHVlKCkp
OwogICAgIHJlcXVlc3QtPm9uU3VjY2VzcyhTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om51bGxWYWx1
ZSgpLCBJREJLZXk6OmNyZWF0ZUludmFsaWQoKSwgSURCS2V5UGF0aCgpKTsKLSAgICByZXF1ZXN0
LT5vblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCk7CisgICAgcmVxdWVzdC0+b25TdWNjZXNzKElE
QktleTo6Y3JlYXRlSW52YWxpZCgpLCBJREJLZXk6OmNyZWF0ZUludmFsaWQoKSwgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOjpudWxsVmFsdWUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>