<?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>210081</bug_id>
          
          <creation_ts>2020-04-06 16:43:01 -0700</creation_ts>
          <short_desc>AX: VoiceOver can&apos;t activate combobox when textfield is inside it</short_desc>
          <delta_ts>2020-04-07 16:43:36 -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>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>samuel_white</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1638373</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-04-06 16:43:01 -0700</bug_when>
    <thetext>1.Enable VoiceOver 
2. Navigate to https://help.doordash.com/consumers/s/contactsupport?language=en_US
3. Attempt to activate the “Subcategory” dropdown menu box

RESULTS:
User is unable to activate box and interact with values within it.

&lt;rdar://problem/60888469&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638376</commentid>
    <comment_count>1</comment_count>
      <attachid>395632</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-04-06 16:46:14 -0700</bug_when>
    <thetext>Created attachment 395632
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638379</commentid>
    <comment_count>2</comment_count>
      <attachid>395633</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-04-06 16:55:05 -0700</bug_when>
    <thetext>Created attachment 395633
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638529</commentid>
    <comment_count>3</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-04-07 07:29:32 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #2)
&gt; Created attachment 395633 [details]
&gt; patch

--- a/LayoutTests/accessibility/activation-of-input-field-inside-other-element.html
+++ a/LayoutTests/accessibility/activation-of-input-field-inside-other-element.html
+&lt;div role=&quot;combobox&quot; aria-expanded=&quot;false&quot; aria-haspopup=&quot;listbox&quot; id=&quot;combo&quot; onclick=&quot;comboBoxClicked();&quot;&gt;
+   &lt;div role=&quot;none&quot;&gt;
+       &lt;input id=&quot;input-40&quot; type=&quot;text&quot; role=&quot;textbox&quot; autocomplete=&quot;off&quot; placeholder=&quot;Select an Option&quot; aria-autocomplete=&quot;none&quot; readonly=&quot;&quot; disabled=&quot;&quot;&gt;
 Indent is short one char.

+&lt;input id=&quot;element1&quot; type=&quot;image&quot; src=&quot;url-test1.html&quot;&gt;&lt;BR&gt;
+&lt;a id=&quot;element2&quot; href=&quot;#url-test2.html&quot;&gt;test&lt;/a&gt;&lt;BR&gt;
+&lt;img id=&quot;element3&quot; src=&quot;url-test3.png&quot; width=100 height=100 alt=&quot;test&quot;&gt;&lt;BR&gt;

Do we need these? Not used.

--- a/Source/WebCore/accessibility/AccessibilityObject.cpp
+++ a/Source/WebCore/accessibility/AccessibilityObject.cpp
+    if (!dispatchedEvent)
+        dispatchedEvent = pressElement-&gt;accessKeyAction(true);
+
+    if (!dispatchedEvent)
+        pressElement-&gt;dispatchSimulatedClick(nullptr, SendMouseUpDownEvents);
+
     return true;

Instead of above, it would be cleaner to do:
    return dispatchedEvent || pressElement-&gt;accessKeyAction(true) || pressElement-&gt;dispatchSimulatedClick(nullptr, SendMouseUpDownEvents);

but dispatchSimulatedClick will have to return bool.

--- a/Source/WebCore/html/BaseCheckableInputType.cpp
+++ a/Source/WebCore/html/BaseCheckableInputType.cpp
+    bool dispatched = InputType::accessKeyAction(sendMouseEvents);

     ASSERT(element());
-    element()-&gt;dispatchSimulatedClick(0, sendMouseEvents ? SendMouseUpDownEvents : SendNoEvents);
+    if (!dispatched)
+        element()-&gt;dispatchSimulatedClick(0, sendMouseEvents ? SendMouseUpDownEvents : SendNoEvents);
+    return true;

Likewise, this could be:

    ASSERT(element());
    return InputType::accessKeyAction(sendMouseEvents) || element()-&gt;dispatchSimulatedClick(0, sendMouseEvents ? SendMouseUpDownEvents : SendNoEvents);

--- a/Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp
+++ a/Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp
     BaseDateAndTimeInputType::accessKeyAction(sendMouseEvents);
     ASSERT(element());
-    BaseClickableWithKeyInputType::accessKeyAction(*element(), sendMouseEvents);
+    return BaseClickableWithKeyInputType::accessKeyAction(*element(), sendMouseEvents);

Double click for date and time input?

--- a/Source/WebCore/html/HTMLOptionElement.cpp
+++ a/Source/WebCore/html/HTMLOptionElement.cpp
+bool HTMLOptionElement::accessKeyAction(bool)
 {
     RefPtr&lt;HTMLSelectElement&gt; select = ownerSelectElement();
     if (select)
         select-&gt;accessKeySetSelectedIndex(index());
+    return false;
 }

Shouldn&apos;t be:

     if (select)
         return select-&gt;accessKeySetSelectedIndex(index());

or at least:
     if (select) {
         select-&gt;accessKeySetSelectedIndex(index());
         return true;
    }

--- a/Source/WebCore/html/RangeInputType.cpp
+++ a/Source/WebCore/html/RangeInputType.cpp
+bool RangeInputType::accessKeyAction(bool sendMouseEvents)
 {
-    InputType::accessKeyAction(sendMouseEvents);
-
-    if (auto* element = this-&gt;element())
+    bool dispatchedClick = InputType::accessKeyAction(sendMouseEvents);
+    if (dispatchedClick)
+        return dispatchedClick;
+
+    if (auto* element = this-&gt;element()) {
         element-&gt;dispatchSimulatedClick(0, sendMouseEvents ? SendMouseUpDownEvents : SendNoEvents);
+        return true;
+    }
+
+    return false;
 }

Again this would benefit from dispatchSimulatedClick returning bool:
{
    auto* element = this-&gt;element();
    return InputType::accessKeyAction(sendMouseEvents) || (element &amp;&amp; element-&gt;dispatchSimulatedClick(0, sendMouseEvents ? SendMouseUpDownEvents : SendNoEvents));
}

Do we need double click in this type?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638704</commentid>
    <comment_count>4</comment_count>
      <attachid>395718</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-04-07 11:56:28 -0700</bug_when>
    <thetext>Created attachment 395718
patch

Updated patch to address comments. Made dispatchSimulatedClick return a bool</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638821</commentid>
    <comment_count>5</comment_count>
      <attachid>395742</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-04-07 14:59:30 -0700</bug_when>
    <thetext>Created attachment 395742
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638879</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-07 16:43:35 -0700</bug_when>
    <thetext>Committed r259687: &lt;https://trac.webkit.org/changeset/259687&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 395742.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395632</attachid>
            <date>2020-04-06 16:46:14 -0700</date>
            <delta_ts>2020-04-06 16:55:05 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_210081.txt</filename>
            <type>text/plain</type>
            <size>32486</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggODkzYjkxYTQ3MTkuLjRlNGJhNGMxMzBjIDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTMg
QEANCisyMDIwLTA0LTA2ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogVm9pY2VPdmVyIGNhbid0IGFjdGl2YXRlIGNvbWJvYm94IHdoZW4gdGV4
dGZpZWxkIGlzIGluc2lkZSBpdA0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMDA4MQ0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuDQorDQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYWN0aXZhdGlvbi1vZi1pbnB1dC1maWVs
ZC1pbnNpZGUtb3RoZXItZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLg0KKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L2FjdGl2YXRpb24tb2YtaW5wdXQtZmllbGQtaW5zaWRlLW90aGVyLWVsZW1l
bnQuaHRtbDogQWRkZWQuDQorDQogMjAyMC0wNC0wNiAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVu
QGlnYWxpYS5jb20+DQogDQogICAgICAgICBUaGUgY2hhbmdlIG9mIHpvb20gc2hvdWxkbid0IGFm
ZmVjdCBSZXNpemVPYnNlcnZlclNpemUNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2FjdGl2YXRpb24tb2YtaW5wdXQtZmllbGQtaW5zaWRlLW90aGVyLWVsZW1lbnQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hY3RpdmF0aW9uLW9mLWlucHV0
LWZpZWxkLWluc2lkZS1vdGhlci1lbGVtZW50LWV4cGVjdGVkLnR4dA0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4zOWFhY2YyYmFhZg0KLS0tIC9kZXYvbnVsbA0KKysr
IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hY3RpdmF0aW9uLW9mLWlucHV0LWZpZWxkLWlu
c2lkZS1vdGhlci1lbGVtZW50LWV4cGVjdGVkLnR4dA0KQEAgLTAsMCArMSwxNCBAQA0KKw0KKw0K
K3Rlc3QNCisNCitUaGlzIHRlc3QgY2hlY2tzIHdoZXRoZXIgYSBzaW11bGF0ZWQgY2xpY2sgd2ls
bCBhY3RpdmF0ZSBhIGNvbWJvYm94IHRoYXQgY29udGFpbnMgYSB0ZXh0IGZpZWxkLg0KKw0KK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitDb21ibyBib3ggZWxlbWVudCBXQVMgY2xp
Y2tlZCB3aXRoIGFjY2Vzc2liaWxpdHkNCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
DQorDQorVEVTVCBDT01QTEVURQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvYWN0aXZhdGlvbi1vZi1pbnB1dC1maWVsZC1pbnNpZGUtb3RoZXItZWxlbWVudC5odG1s
IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hY3RpdmF0aW9uLW9mLWlucHV0LWZpZWxkLWlu
c2lkZS1vdGhlci1lbGVtZW50Lmh0bWwNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAw
MDAwMDAwMC4uMTM4MzZlNDJiYmUNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvYWN0aXZhdGlvbi1vZi1pbnB1dC1maWVsZC1pbnNpZGUtb3RoZXItZWxlbWVu
dC5odG1sDQpAQCAtMCwwICsxLDM4IEBADQorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPg0KKzxodG1sPg0KKzxoZWFkPg0KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pg0KKzwvaGVhZD4NCis8Ym9keSBpZD0iYm9k
eSI+DQorDQorPGRpdiByb2xlPSJjb21ib2JveCIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGFyaWEt
aGFzcG9wdXA9Imxpc3Rib3giIGlkPSJjb21ibyIgb25jbGljaz0iY29tYm9Cb3hDbGlja2VkKCk7
Ij4NCisgICA8ZGl2IHJvbGU9Im5vbmUiPg0KKyAgICAgICA8aW5wdXQgaWQ9ImlucHV0LTQwIiB0
eXBlPSJ0ZXh0IiByb2xlPSJ0ZXh0Ym94IiBhdXRvY29tcGxldGU9Im9mZiIgcGxhY2Vob2xkZXI9
IlNlbGVjdCBhbiBPcHRpb24iIGFyaWEtYXV0b2NvbXBsZXRlPSJub25lIiByZWFkb25seT0iIiBk
aXNhYmxlZD0iIj4NCisgICAgPC9kaXY+DQorPC9kaXY+DQorDQorPGlucHV0IGlkPSJlbGVtZW50
MSIgdHlwZT0iaW1hZ2UiIHNyYz0idXJsLXRlc3QxLmh0bWwiPjxCUj4NCis8YSBpZD0iZWxlbWVu
dDIiIGhyZWY9IiN1cmwtdGVzdDIuaHRtbCI+dGVzdDwvYT48QlI+DQorPGltZyBpZD0iZWxlbWVu
dDMiIHNyYz0idXJsLXRlc3QzLnBuZyIgd2lkdGg9MTAwIGhlaWdodD0xMDAgYWx0PSJ0ZXN0Ij48
QlI+DQorDQorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+DQorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+DQorDQorPHNjcmlwdD4NCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3Mgd2hl
dGhlciBhIHNpbXVsYXRlZCBjbGljayB3aWxsIGFjdGl2YXRlIGEgY29tYm9ib3ggdGhhdCBjb250
YWlucyBhIHRleHQgZmllbGQuIik7DQorDQorICAgIGZ1bmN0aW9uIGNvbWJvQm94Q2xpY2tlZCgp
IHsNCisgICAgICAgIGRlYnVnKCJDb21ibyBib3ggZWxlbWVudCBXQVMgY2xpY2tlZCB3aXRoIGFj
Y2Vzc2liaWxpdHkiKTsNCisgICAgICAgIGZpbmlzaEpTVGVzdCgpOw0KKyAgICB9DQorDQorICAg
IHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsNCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmls
aXR5Q29udHJvbGxlcikgew0KKyAgICAgICAgdmFyIGVsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNvbWJvIik7DQorICAgICAgICBlbGVtZW50
LnByZXNzKCk7DQorICAgIH0NCis8L3NjcmlwdD4NCis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCisNCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cNCmluZGV4IGYzYTgwOWI3YzkwLi4zMDI3MGY0MTIyZCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwz
ICsxLDcyIEBADQorMjAyMC0wNC0wNiAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUu
Y29tPg0KKw0KKyAgICAgICAgQVg6IFZvaWNlT3ZlciBjYW4ndCBhY3RpdmF0ZSBjb21ib2JveCB3
aGVuIHRleHRmaWVsZCBpcyBpbnNpZGUgaXQNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAwODENCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLg0KKw0KKyAgICAgICAgQ2hhbmdlIGFjY2Vzc0tleUFjdGlvbiB0byByZXR1cm4g
d2hldGhlciBhIHNpbXVsYXRlZCBjbGljayBldmVudCB3YXMgZGlzcGF0Y2hlZC4NCisgICAgICAg
IEFjY2Vzc2liaWxpdHkgdXNlcyB0aGF0IGluZm9ybWF0aW9uIHRvIGRlY2lkZSB3aGV0aGVyIGl0
IHNob3VsZCBzZW50IGFuIGV2ZW50IGFmdGVyd2FyZHMsIGJlY2F1c2UNCisgICAgICAgIHNvbWUg
b2JqZWN0cyBhY2Nlc3NLZXlBY3Rpb24gaXMgb25seSB0byBmb2N1cygpLiBBWCBpcyBleHBlY3Rl
ZCBoZXJlIHRvIHByZXNzIG9uIHRoZSBvYmplY3QgKGFuZCBwb3NzaWJseSBmb2N1cykuDQorDQor
ICAgICAgICBUZXN0OiBhY2Nlc3NpYmlsaXR5L2FjdGl2YXRpb24tb2YtaW5wdXQtZmllbGQtaW5z
aWRlLW90aGVyLWVsZW1lbnQuaHRtbA0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OnByZXNzKToNCisgICAgICAgICogZG9tL0VsZW1lbnQuaDoNCisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24pOg0KKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2Fi
bGVJbnB1dFR5cGUuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaGVja2FibGVJbnB1dFR5
cGU6OmFjY2Vzc0tleUFjdGlvbik6DQorICAgICAgICAqIGh0bWwvQmFzZUNoZWNrYWJsZUlucHV0
VHlwZS5oOg0KKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICogaHRtbC9CYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZS5oOg0KKyAgICAgICAgKiBodG1sL0Jhc2VDbGlja2FibGVX
aXRoS2V5SW5wdXRUeXBlLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2xpY2thYmxlV2l0
aEtleUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICogaHRtbC9CYXNlQ2xp
Y2thYmxlV2l0aEtleUlucHV0VHlwZS5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVt
ZW50LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6YWNjZXNzS2V5
QWN0aW9uKToNCisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oOg0KKyAgICAgICAg
KiBodG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpIVE1MQnV0
dG9uRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICogaHRtbC9IVE1MQnV0dG9u
RWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoNCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICogaHRtbC9I
VE1MRWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOg0KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbik6DQorICAg
ICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxMYWJl
bEVsZW1lbnQuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMYWJlbEVsZW1lbnQ6OmFjY2Vz
c0tleUFjdGlvbik6DQorICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxlbWVudC5oOg0KKyAgICAg
ICAgKiBodG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpIVE1M
TGVnZW5kRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICogaHRtbC9IVE1MTGVn
ZW5kRWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwOg0K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbik6
DQorICAgICAgICAqIGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1s
L0hUTUxPcHRpb25FbGVtZW50LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxl
bWVudDo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVu
dC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcDoNCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICog
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmFjY2Vz
c0tleUFjdGlvbik6DQorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oOg0KKyAg
ICAgICAgKiBodG1sL0hpZGRlbklucHV0VHlwZS5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6SGlk
ZGVuSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24pOg0KKyAgICAgICAgKiBodG1sL0hpZGRlbklu
cHV0VHlwZS5oOg0KKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6DQorICAgICAgICAoV2Vi
Q29yZTo6SW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24pOg0KKyAgICAgICAgKiBodG1sL0lucHV0
VHlwZS5oOg0KKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNwcDoNCisgICAgICAgIChX
ZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICogaHRt
bC9SYW5nZUlucHV0VHlwZS5oOg0KKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5jcHA6DQorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICog
c3ZnL1NWR0VsZW1lbnQuaDoNCisNCiAyMDIwLTA0LTA2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgTWFrZSBSZW5kZXJPYmplY3QgVGV4dFN0cmVh
bS1sb2dnYWJsZQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwDQppbmRleCBlODg3NTI0ZmZhMS4uOWJjMTk0ZmY5MWEgMTAwNjQ0
DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuY3BwDQpAQCAtOTA1LDE0ICs5MDUsMTggQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpw
cmVzcygpDQogICAgIA0KICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9y
KFByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgZG9jdW1lbnQpOw0KICAgICANCi0gICAgYm9vbCBkaXNw
YXRjaGVkVG91Y2hFdmVudCA9IGZhbHNlOw0KKyAgICBib29sIGRpc3BhdGNoZWRFdmVudCA9IGZh
bHNlOw0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQ0KICAgICBpZiAoaGFzVG91Y2hFdmVudExp
c3RlbmVyKCkpDQotICAgICAgICBkaXNwYXRjaGVkVG91Y2hFdmVudCA9IGRpc3BhdGNoVG91Y2hF
dmVudCgpOw0KKyAgICAgICAgZGlzcGF0Y2hlZEV2ZW50ID0gZGlzcGF0Y2hUb3VjaEV2ZW50KCk7
DQogI2VuZGlmDQotICAgIGlmICghZGlzcGF0Y2hlZFRvdWNoRXZlbnQpDQotICAgICAgICBwcmVz
c0VsZW1lbnQtPmFjY2Vzc0tleUFjdGlvbih0cnVlKTsNCiAgICAgDQorICAgIGlmICghZGlzcGF0
Y2hlZEV2ZW50KQ0KKyAgICAgICAgZGlzcGF0Y2hlZEV2ZW50ID0gcHJlc3NFbGVtZW50LT5hY2Nl
c3NLZXlBY3Rpb24odHJ1ZSk7DQorICAgICAgICANCisgICAgaWYgKCFkaXNwYXRjaGVkRXZlbnQp
DQorICAgICAgICBwcmVzc0VsZW1lbnQtPmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2sobnVsbHB0ciwg
U2VuZE1vdXNlVXBEb3duRXZlbnRzKTsNCisNCiAgICAgcmV0dXJuIHRydWU7DQogfQ0KICAgICAN
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuaA0KaW5kZXggNTZiNDY3YjRiMWMuLmY4NDQxZmMxNDU3IDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaA0KKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaA0KQEAgLTM4MSw3ICszODEsNyBAQCBwdWJsaWM6DQogICAgIFdFQkNPUkVf
RVhQT1JUIEF0b21TdHJpbmcgY29tcHV0ZUluaGVyaXRlZExhbmd1YWdlKCkgY29uc3Q7DQogICAg
IExvY2FsZSYgbG9jYWxlKCkgY29uc3Q7DQogDQotICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlB
Y3Rpb24oYm9vbCAvKnNlbmRUb0FueUV2ZW50Ki8pIHsgfQ0KKyAgICB2aXJ0dWFsIGJvb2wgYWNj
ZXNzS2V5QWN0aW9uKGJvb2wgLypzZW5kVG9BbnlFdmVudCovKSB7IHJldHVybiBmYWxzZTsgfQ0K
IA0KICAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0NCiAgICAgdmlydHVhbCBib29sIGF0dHJpYnV0ZUNvbnRhaW5z
VVJMKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKSBjb25zdCB7IHJldHVybiBpc1VSTEF0dHJp
YnV0ZShhdHRyaWJ1dGUpOyB9DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2hlY2thYmxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJs
ZUlucHV0VHlwZS5jcHANCmluZGV4IGViOTc0NGJlMjVmLi5kOTM2Y2MxMzc5YiAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHANCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHANCkBAIC05MSwx
MiArOTEsMTQgQEAgYm9vbCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpjYW5TZXRTdHJpbmdWYWx1
ZSgpIGNvbnN0DQogfQ0KIA0KIC8vIEZJWE1FOiBDb3VsZCBzaGFyZSB0aGlzIHdpdGggQmFzZUNs
aWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUgYW5kIFJhbmdlSW5wdXRUeXBlIGlmIHdlIGhhZCBhIGNv
bW1vbiBiYXNlIGNsYXNzLg0KLXZvaWQgQmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6YWNjZXNzS2V5
QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KK2Jvb2wgQmFzZUNoZWNrYWJsZUlucHV0VHlw
ZTo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KIHsNCi0gICAgSW5wdXRU
eXBlOjphY2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsNCisgICAgYm9vbCBkaXNwYXRj
aGVkID0gSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsNCiANCiAg
ICAgQVNTRVJUKGVsZW1lbnQoKSk7DQotICAgIGVsZW1lbnQoKS0+ZGlzcGF0Y2hTaW11bGF0ZWRD
bGljaygwLCBzZW5kTW91c2VFdmVudHMgPyBTZW5kTW91c2VVcERvd25FdmVudHMgOiBTZW5kTm9F
dmVudHMpOw0KKyAgICBpZiAoIWRpc3BhdGNoZWQpDQorICAgICAgICBlbGVtZW50KCktPmRpc3Bh
dGNoU2ltdWxhdGVkQ2xpY2soMCwgc2VuZE1vdXNlRXZlbnRzID8gU2VuZE1vdXNlVXBEb3duRXZl
bnRzIDogU2VuZE5vRXZlbnRzKTsNCisgICAgcmV0dXJuIHRydWU7DQogfQ0KIA0KIFN0cmluZyBC
YXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpmYWxsYmFja1ZhbHVlKCkgY29uc3QNCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oDQppbmRleCA1NjJiYjlkZGVkZS4u
OTIxYmI4ODVhMjQgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2Fi
bGVJbnB1dFR5cGUuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5w
dXRUeXBlLmgNCkBAIC00Nyw3ICs0Nyw3IEBAIHByaXZhdGU6DQogICAgIGJvb2wgYXBwZW5kRm9y
bURhdGEoRE9NRm9ybURhdGEmLCBib29sKSBjb25zdCBvdmVycmlkZTsNCiAgICAgdm9pZCBoYW5k
bGVLZXlwcmVzc0V2ZW50KEtleWJvYXJkRXZlbnQmKSBvdmVycmlkZTsNCiAgICAgYm9vbCBjYW5T
ZXRTdHJpbmdWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOw0KLSAgICB2b2lkIGFjY2Vzc0tleUFjdGlv
bihib29sIHNlbmRNb3VzZUV2ZW50cykgb3ZlcnJpZGU7DQorICAgIGJvb2wgYWNjZXNzS2V5QWN0
aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBvdmVycmlkZTsNCiAgICAgU3RyaW5nIGZhbGxiYWNr
VmFsdWUoKSBjb25zdCBvdmVycmlkZTsNCiAgICAgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJv
bUF0dHJpYnV0ZSgpIG92ZXJyaWRlOw0KICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYs
IGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIG92ZXJyaWRlOw0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlw
ZS5jcHANCmluZGV4IGFiNDE5NzZkMzJmLi43YjEwNjFmZTFhMSAxMDA2NDQNCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwDQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcA0KQEAgLTEzMCwxMSArMTMwLDExIEBAIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OmhhbmRsZUtleXVwRXZlbnQoS2V5Ym9hcmRFdmVudCYgZXZlbnQpDQog
ICAgIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlOjpoYW5kbGVLZXl1cEV2ZW50KCp0aGlz
LCBldmVudCk7DQogfQ0KIA0KLXZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5
cGU6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykNCitib29sIEJhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91
c2VFdmVudHMpDQogew0KICAgICBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmFjY2Vzc0tleUFj
dGlvbihzZW5kTW91c2VFdmVudHMpOw0KICAgICBBU1NFUlQoZWxlbWVudCgpKTsNCi0gICAgQmFz
ZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbigqZWxlbWVudCgpLCBz
ZW5kTW91c2VFdmVudHMpOw0KKyAgICByZXR1cm4gQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5
cGU6OmFjY2Vzc0tleUFjdGlvbigqZWxlbWVudCgpLCBzZW5kTW91c2VFdmVudHMpOw0KIH0NCiAN
CiBib29sIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjppc01vdXNlRm9jdXNh
YmxlKCkgY29uc3QNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2Vy
T25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmgNCmluZGV4IDQ1MWQ1MGM2ZDIyLi5hM2YxY2Y1
YTViMiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nl
ck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oDQpAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOg0K
ICAgICBTaG91bGRDYWxsQmFzZUV2ZW50SGFuZGxlciBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9h
cmRFdmVudCYpIG92ZXJyaWRlOw0KICAgICB2b2lkIGhhbmRsZUtleXByZXNzRXZlbnQoS2V5Ym9h
cmRFdmVudCYpIG92ZXJyaWRlOw0KICAgICB2b2lkIGhhbmRsZUtleXVwRXZlbnQoS2V5Ym9hcmRF
dmVudCYpIG92ZXJyaWRlOw0KLSAgICB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3Vz
ZUV2ZW50cykgb3ZlcnJpZGU7DQorICAgIGJvb2wgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1v
dXNlRXZlbnRzKSBvdmVycmlkZTsNCiAgICAgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3Qg
b3ZlcnJpZGU7DQogICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
Jikgb3ZlcnJpZGU7DQogDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xp
Y2thYmxlV2l0aEtleUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDbGlj
a2FibGVXaXRoS2V5SW5wdXRUeXBlLmNwcA0KaW5kZXggMzU1OTcyNDU1NDQuLjZhMWMzMDYyNDQz
IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxlV2l0aEtleUlu
cHV0VHlwZS5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhL
ZXlJbnB1dFR5cGUuY3BwDQpAQCAtNzUsOSArNzUsMTAgQEAgdm9pZCBCYXNlQ2xpY2thYmxlV2l0
aEtleUlucHV0VHlwZTo6aGFuZGxlS2V5dXBFdmVudChJbnB1dFR5cGUmIGlucHV0VHlwZSwgS2V5
Ym8NCiB9DQogDQogLy8gRklYTUU6IENvdWxkIHNoYXJlIHRoaXMgd2l0aCBCYXNlQ2hlY2thYmxl
SW5wdXRUeXBlIGFuZCBSYW5nZUlucHV0VHlwZSBpZiB3ZSBoYWQgYSBjb21tb24gYmFzZSBjbGFz
cy4NCi12b2lkIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24o
SFRNTElucHV0RWxlbWVudCYgZWxlbWVudCwgYm9vbCBzZW5kTW91c2VFdmVudHMpDQorYm9vbCBC
YXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKEhUTUxJbnB1dEVs
ZW1lbnQmIGVsZW1lbnQsIGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KIHsNCiAgICAgZWxlbWVudC5k
aXNwYXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyA/IFNlbmRNb3VzZVVwRG93
bkV2ZW50cyA6IFNlbmROb0V2ZW50cyk7DQorICAgIHJldHVybiB0cnVlOw0KIH0NCiANCiBhdXRv
IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9h
cmRFdmVudCYgZXZlbnQpIC0+IFNob3VsZENhbGxCYXNlRXZlbnRIYW5kbGVyDQpAQCAtOTcsMTEg
Kzk4LDExIEBAIHZvaWQgQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGU6OmhhbmRsZUtleXVw
RXZlbnQoS2V5Ym9hcmRFdmVudCYgZXZlbnQpDQogICAgIGhhbmRsZUtleXVwRXZlbnQoKnRoaXMs
IGV2ZW50KTsNCiB9DQogDQotdm9pZCBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZTo6YWNj
ZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KK2Jvb2wgQmFzZUNsaWNrYWJsZVdp
dGhLZXlJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykNCiB7
DQogICAgIElucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cyk7DQogICAg
IEFTU0VSVChlbGVtZW50KCkpOw0KLSAgICBhY2Nlc3NLZXlBY3Rpb24oKmVsZW1lbnQoKSwgc2Vu
ZE1vdXNlRXZlbnRzKTsNCisgICAgcmV0dXJuIGFjY2Vzc0tleUFjdGlvbigqZWxlbWVudCgpLCBz
ZW5kTW91c2VFdmVudHMpOw0KIH0NCiANCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlDQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oDQpp
bmRleCA4YjZjNTkyODBjNi4uZmU4NzEzY2JhNzAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmgNCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaA0KQEAgLTQwLDcgKzQwLDcg
QEAgcHVibGljOg0KICAgICBzdGF0aWMgU2hvdWxkQ2FsbEJhc2VFdmVudEhhbmRsZXIgaGFuZGxl
S2V5ZG93bkV2ZW50KEhUTUxJbnB1dEVsZW1lbnQmLCBLZXlib2FyZEV2ZW50Jik7DQogICAgIHN0
YXRpYyB2b2lkIGhhbmRsZUtleXByZXNzRXZlbnQoSFRNTElucHV0RWxlbWVudCYsIEtleWJvYXJk
RXZlbnQmKTsNCiAgICAgc3RhdGljIHZvaWQgaGFuZGxlS2V5dXBFdmVudChJbnB1dFR5cGUmLCBL
ZXlib2FyZEV2ZW50Jik7DQotICAgIHN0YXRpYyB2b2lkIGFjY2Vzc0tleUFjdGlvbihIVE1MSW5w
dXRFbGVtZW50JiwgYm9vbCBzZW5kTW91c2VFdmVudHMpOw0KKyAgICBzdGF0aWMgYm9vbCBhY2Nl
c3NLZXlBY3Rpb24oSFRNTElucHV0RWxlbWVudCYsIGJvb2wgc2VuZE1vdXNlRXZlbnRzKTsNCiAg
ICAgDQogcHJvdGVjdGVkOg0KICAgICBleHBsaWNpdCBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0
VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IElucHV0VHlwZShlbGVtZW50KSB7IH0N
CkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6DQogICAgIFNob3VsZENhbGxCYXNlRXZlbnRIYW5k
bGVyIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50Jikgb3ZlcnJpZGU7DQogICAgIHZv
aWQgaGFuZGxlS2V5cHJlc3NFdmVudChLZXlib2FyZEV2ZW50Jikgb3ZlcnJpZGU7DQogICAgIHZv
aWQgaGFuZGxlS2V5dXBFdmVudChLZXlib2FyZEV2ZW50Jikgb3ZlcnJpZGU7DQotICAgIHZvaWQg
YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBvdmVycmlkZTsNCisgICAgYm9v
bCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIG92ZXJyaWRlOw0KIH07DQog
DQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5jcHANCmluZGV4IGVlZGU0NGZmNzc2Li44OGVlYzM2MThkYSAxMDA2NDQNCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwDQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcA0KQEAgLTI3NCw5ICsyNzQsMTAgQEAg
dm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkNCiAgICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSk7DQogfQ0KIA0KLXZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmFjY2Vz
c0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykNCitib29sIEhUTUxBbmNob3JFbGVtZW50
OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQogew0KICAgICBkaXNwYXRj
aFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyA/IFNlbmRNb3VzZVVwRG93bkV2ZW50
cyA6IFNlbmROb0V2ZW50cyk7DQorICAgIHJldHVybiB0cnVlOw0KIH0NCiANCiBib29sIEhUTUxB
bmNob3JFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkg
Y29uc3QNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgNCmluZGV4IGUxZDkz
YjExNDdkLi41MDk3NmJiZWZiMyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFuY2hvckVsZW1lbnQuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5oDQpAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOg0KICAgICBib29sIGlzS2V5Ym9hcmRG
b2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0IG92ZXJyaWRlOw0KICAgICB2b2lkIGRlZmF1
bHRFdmVudEhhbmRsZXIoRXZlbnQmKSBmaW5hbDsNCiAgICAgdm9pZCBzZXRBY3RpdmUoYm9vbCBh
Y3RpdmUgPSB0cnVlLCBib29sIHBhdXNlID0gZmFsc2UpIGZpbmFsOw0KLSAgICB2b2lkIGFjY2Vz
c0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7DQorICAgIGJvb2wgYWNjZXNz
S2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsNCiAgICAgYm9vbCBpc1VSTEF0
dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBmaW5hbDsNCiAgICAgYm9vbCBjYW5TdGFy
dFNlbGVjdGlvbigpIGNvbnN0IGZpbmFsOw0KICAgICBTdHJpbmcgdGFyZ2V0KCkgY29uc3Qgb3Zl
cnJpZGU7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcA0KaW5kZXgg
MzRjMTY4ZjFjNGMuLjY5M2QwOTYyMGRjIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQnV0dG9uRWxlbWVudC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1
dHRvbkVsZW1lbnQuY3BwDQpAQCAtMjExLDExICsyMTEsMTIgQEAgYm9vbCBIVE1MQnV0dG9uRWxl
bWVudDo6YXBwZW5kRm9ybURhdGEoRE9NRm9ybURhdGEmIGZvcm1EYXRhLCBib29sKQ0KICAgICBy
ZXR1cm4gdHJ1ZTsNCiB9DQogDQotdm9pZCBIVE1MQnV0dG9uRWxlbWVudDo6YWNjZXNzS2V5QWN0
aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KK2Jvb2wgSFRNTEJ1dHRvbkVsZW1lbnQ6OmFjY2Vz
c0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykNCiB7DQogICAgIGZvY3VzKCk7DQogDQog
ICAgIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwgc2VuZE1vdXNlRXZlbnRzID8gU2VuZE1vdXNl
VXBEb3duRXZlbnRzIDogU2VuZE5vRXZlbnRzKTsNCisgICAgcmV0dXJuIHRydWU7DQogfQ0KIA0K
IGJvb2wgSFRNTEJ1dHRvbkVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYg
YXR0cmlidXRlKSBjb25zdA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1
dHRvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaA0K
aW5kZXggY2M2MzY1YjJlMTQuLmRmY2Q3NDMzMGVmIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCdXR0b25FbGVtZW50LmgNCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6DQogICAgIGJvb2wg
aXNBY3RpdmF0ZWRTdWJtaXQoKSBjb25zdCBmaW5hbDsNCiAgICAgdm9pZCBzZXRBY3RpdmF0ZWRT
dWJtaXQoYm9vbCBmbGFnKSBmaW5hbDsNCiANCi0gICAgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9v
bCBzZW5kTW91c2VFdmVudHMpIGZpbmFsOw0KKyAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29s
IHNlbmRNb3VzZUV2ZW50cykgZmluYWw7DQogICAgIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3Qg
QXR0cmlidXRlJikgY29uc3QgZmluYWw7DQogDQogICAgIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24o
KSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5jcHANCmluZGV4IDMyZWQ0YWQzMWJkLi4zMmUyNDljMGFiMiAxMDA2NDQNCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmNwcA0KQEAgLTcwNSw5ICs3MDUsMTAgQEAgdm9pZCBIVE1MRWxlbWVudDo6
Y2xpY2soKQ0KICAgICBzaW11bGF0ZUNsaWNrKCp0aGlzLCBudWxscHRyLCBTZW5kTm9FdmVudHMs
IERvTm90U2hvd1ByZXNzZWRMb29rLCBTaW11bGF0ZWRDbGlja1NvdXJjZTo6QmluZGluZ3MpOw0K
IH0NCiANCi12b2lkIEhUTUxFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VF
dmVudHMpDQorYm9vbCBIVE1MRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNl
RXZlbnRzKQ0KIHsNCiAgICAgZGlzcGF0Y2hTaW11bGF0ZWRDbGljayhudWxscHRyLCBzZW5kTW91
c2VFdmVudHMgPyBTZW5kTW91c2VVcERvd25FdmVudHMgOiBTZW5kTm9FdmVudHMpOw0KKyAgICBy
ZXR1cm4gdHJ1ZTsNCiB9DQogDQogU3RyaW5nIEhUTUxFbGVtZW50Ojp0aXRsZSgpIGNvbnN0DQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oDQppbmRleCA3ZTA3NGViNjEyOC4uMzYyY2ZhNGM3YzAg
MTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgNCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaA0KQEAgLTY2LDcgKzY2LDcgQEAgcHVibGlj
Og0KIA0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWNrKCk7DQogDQotICAgIHZvaWQgYWNj
ZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBvdmVycmlkZTsNCisgICAgYm9vbCBh
Y2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIG92ZXJyaWRlOw0KIA0KICAgICBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxl
JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOw0KICAgICBib29sIHJlbmRl
cmVySXNFdmVyTmVlZGVkKCkgZmluYWw7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHANCmluZGV4IGI0YTIwMzNlNTE2Li41MDJmNzAyNTI1ZCAxMDA2NDQNCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHANCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHANCkBAIC02NjYsMTAgKzY2NiwxMCBAQCBib29s
IEhUTUxJbnB1dEVsZW1lbnQ6OmNhbkhhdmVTZWxlY3Rpb24oKSBjb25zdA0KICAgICByZXR1cm4g
aXNUZXh0RmllbGQoKTsNCiB9DQogDQotdm9pZCBIVE1MSW5wdXRFbGVtZW50OjphY2Nlc3NLZXlB
Y3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQorYm9vbCBIVE1MSW5wdXRFbGVtZW50OjphY2Nl
c3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQogew0KICAgICBSZWY8SW5wdXRUeXBl
PiBwcm90ZWN0ZWRJbnB1dFR5cGUoKm1faW5wdXRUeXBlKTsNCi0gICAgcHJvdGVjdGVkSW5wdXRU
eXBlLT5hY2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsNCisgICAgcmV0dXJuIHByb3Rl
Y3RlZElucHV0VHlwZS0+YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cyk7DQogfQ0KIA0K
IGJvb2wgSFRNTElucHV0RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSkgY29uc3QNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oDQppbmRleCBkZmMzZjkwYjA0NS4uNzE1N2E3NmZlMzEgMTAwNjQ0DQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmgNCkBAIC0zOTEsNyArMzkxLDcgQEAgcHJpdmF0ZToNCiANCiAg
ICAgYm9vbCBjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0IGZpbmFsOw0KIA0KLSAgICB2b2lkIGFj
Y2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7DQorICAgIGJvb2wgYWNj
ZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsNCiANCiAgICAgdm9pZCBw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZp
bmFsOw0KICAgICBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBjb25zdCBmaW5hbDsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
YWJlbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNw
cA0KaW5kZXggNTEyYzVkMTI2NTEuLjM3ZjljYTU2ZTgwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGFiZWxFbGVtZW50LmNwcA0KQEAgLTE4OSwxMiArMTg5LDEyIEBAIHZvaWQgSFRNTExh
YmVsRWxlbWVudDo6Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24sIEZvY3VzRGly
ZWN0aW9uIGRpcmVjDQogICAgICAgICBlbGVtZW50LT5mb2N1cyh0cnVlLCBkaXJlY3Rpb24pOw0K
IH0NCiANCi12b2lkIEhUTUxMYWJlbEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRN
b3VzZUV2ZW50cykNCitib29sIEhUTUxMYWJlbEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29s
IHNlbmRNb3VzZUV2ZW50cykNCiB7DQogICAgIGlmIChhdXRvIGVsZW1lbnQgPSBjb250cm9sKCkp
DQotICAgICAgICBlbGVtZW50LT5hY2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsNCi0g
ICAgZWxzZQ0KLSAgICAgICAgSFRNTEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VF
dmVudHMpOw0KKyAgICAgICAgcmV0dXJuIGVsZW1lbnQtPmFjY2Vzc0tleUFjdGlvbihzZW5kTW91
c2VFdmVudHMpOw0KKw0KKyAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihz
ZW5kTW91c2VFdmVudHMpOw0KIH0NCiANCiB9IC8vIG5hbWVzcGFjZQ0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGFiZWxFbGVtZW50LmgNCmluZGV4IGE2MDdkZjZjYzQzLi40NjYwZjA2Nzc3MyAxMDA2
NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oDQorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaA0KQEAgLTQyLDcgKzQyLDcgQEAg
cHJpdmF0ZToNCiANCiAgICAgYm9vbCBpc0V2ZW50VGFyZ2V0ZWRBdEludGVyYWN0aXZlRGVzY2Vu
ZGFudHMoRXZlbnQmKSBjb25zdDsNCiANCi0gICAgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBz
ZW5kTW91c2VFdmVudHMpIGZpbmFsOw0KKyAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29sIHNl
bmRNb3VzZUV2ZW50cykgZmluYWw7DQogDQogICAgIC8vIE92ZXJyaWRkZW4gdG8gdXBkYXRlIHRo
ZSBob3Zlci9hY3RpdmUgc3RhdGUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgY29udHJvbC4NCiAgICAg
dm9pZCBzZXRBY3RpdmUoYm9vbCA9IHRydWUsIGJvb2wgcGF1c2UgPSBmYWxzZSkgZmluYWw7DQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcA0KaW5kZXggMDU0ZWYxMjdm
YzIuLmExZTU3Y2ZlNGQwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVn
ZW5kRWxlbWVudC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1l
bnQuY3BwDQpAQCAtNzIsMTAgKzcyLDExIEBAIHZvaWQgSFRNTExlZ2VuZEVsZW1lbnQ6OmZvY3Vz
KGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbiBkaXJlDQogICAg
ICAgICBjb250cm9sLT5mb2N1cyhmYWxzZSwgZGlyZWN0aW9uKTsNCiB9DQogDQotdm9pZCBIVE1M
TGVnZW5kRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KK2Jv
b2wgSFRNTExlZ2VuZEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50
cykNCiB7DQogICAgIGlmIChhdXRvIGNvbnRyb2wgPSBhc3NvY2lhdGVkQ29udHJvbCgpKQ0KLSAg
ICAgICAgY29udHJvbC0+YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cyk7DQorICAgICAg
ICByZXR1cm4gY29udHJvbC0+YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cyk7DQorICAg
IHJldHVybiBmYWxzZTsNCiB9DQogDQogSFRNTEZvcm1FbGVtZW50KiBIVE1MTGVnZW5kRWxlbWVu
dDo6Zm9ybSgpIGNvbnN0DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVn
ZW5kRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oDQpp
bmRleCAxMGZlMDQ1NGIxMi4uMmRmNjIyOTcxZjEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExlZ2VuZEVsZW1lbnQuaA0KQEAgLTQyLDcgKzQyLDcgQEAgcHJpdmF0ZToNCiAgICAgLy8gQ29u
dHJvbCBpbiB0aGUgbGVnZW5kJ3MgZmllbGQgc2V0IHRoYXQgZ2V0cyBmb2N1cyBhbmQgYWNjZXNz
IGtleS4NCiAgICAgUmVmUHRyPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+IGFzc29jaWF0ZWRDb250
cm9sKCk7DQogDQotICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRz
KSBmaW5hbDsNCisgICAgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMp
IGZpbmFsOw0KICAgICB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBG
b2N1c0RpcmVjdGlvbikgZmluYWw7DQogfTsNCiANCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T3B0R3JvdXBFbGVtZW50LmNwcA0KaW5kZXggNjc2OGZlMTJhMWUuLjlmZTllMTRiNTY1IDEwMDY0
NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcA0KKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcA0KQEAgLTExMiwx
MiArMTEyLDEzIEBAIEhUTUxTZWxlY3RFbGVtZW50KiBIVE1MT3B0R3JvdXBFbGVtZW50Ojpvd25l
clNlbGVjdEVsZW1lbnQoKSBjb25zdA0KICAgICByZXR1cm4gY29uc3RfY2FzdDxIVE1MU2VsZWN0
RWxlbWVudCo+KGFuY2VzdG9yc09mVHlwZTxIVE1MU2VsZWN0RWxlbWVudD4oKnRoaXMpLmZpcnN0
KCkpOw0KIH0NCiANCi12b2lkIEhUTUxPcHRHcm91cEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihi
b29sKQ0KK2Jvb2wgSFRNTE9wdEdyb3VwRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wpDQog
ew0KICAgICBSZWZQdHI8SFRNTFNlbGVjdEVsZW1lbnQ+IHNlbGVjdCA9IG93bmVyU2VsZWN0RWxl
bWVudCgpOw0KICAgICAvLyBzZW5kIHRvIHRoZSBwYXJlbnQgdG8gYnJpbmcgZm9jdXMgdG8gdGhl
IGxpc3QgYm94DQogICAgIGlmIChzZWxlY3QgJiYgIXNlbGVjdC0+Zm9jdXNlZCgpKQ0KLSAgICAg
ICAgc2VsZWN0LT5hY2Nlc3NLZXlBY3Rpb24oZmFsc2UpOw0KKyAgICAgICAgcmV0dXJuIHNlbGVj
dC0+YWNjZXNzS2V5QWN0aW9uKGZhbHNlKTsNCisgICAgcmV0dXJuIGZhbHNlOw0KIH0NCiANCiB9
IC8vIG5hbWVzcGFjZQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdy
b3VwRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgN
CmluZGV4IGEyMzNiMzUwNGRhLi4zNzNkNTUzZWUwNyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRHcm91cEVsZW1lbnQuaA0KQEAgLTQ5LDcgKzQ5LDcgQEAgcHJpdmF0ZToNCiANCiAg
ICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBmaW5hbDsNCiANCi0g
ICAgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIGZpbmFsOw0KKyAg
ICBib29sIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7DQogDQog
ICAgIHZvaWQgcmVjYWxjU2VsZWN0T3B0aW9ucygpOw0KIH07DQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25FbGVtZW50LmNwcA0KaW5kZXggNGQ5ZjIzMWYwZjUuLjliY2NlNTA5NDcxIDEw
MDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHANCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwDQpAQCAtMTM1LDEx
ICsxMzUsMTIgQEAgdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6c2V0VGV4dChjb25zdCBTdHJpbmcg
JnRleHQpDQogICAgICAgICBzZWxlY3QtPnNldFNlbGVjdGVkSW5kZXgob2xkU2VsZWN0ZWRJbmRl
eCk7DQogfQ0KIA0KLXZvaWQgSFRNTE9wdGlvbkVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29s
KQ0KK2Jvb2wgSFRNTE9wdGlvbkVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sKQ0KIHsNCiAg
ICAgUmVmUHRyPEhUTUxTZWxlY3RFbGVtZW50PiBzZWxlY3QgPSBvd25lclNlbGVjdEVsZW1lbnQo
KTsNCiAgICAgaWYgKHNlbGVjdCkNCiAgICAgICAgIHNlbGVjdC0+YWNjZXNzS2V5U2V0U2VsZWN0
ZWRJbmRleChpbmRleCgpKTsNCisgICAgcmV0dXJuIGZhbHNlOw0KIH0NCiANCiBpbnQgSFRNTE9w
dGlvbkVsZW1lbnQ6OmluZGV4KCkgY29uc3QNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPcHRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25F
bGVtZW50LmgNCmluZGV4IDkxYzVhYmM3ZTAxLi43ODVhN2NkZmU4YyAxMDA2NDQNCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaA0KKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oDQpAQCAtNzIsNyArNzIsNyBAQCBwcml2YXRlOg0K
ICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJikgZmluYWw7DQogDQogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2Vy
dGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsNCi0g
ICAgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCkgZmluYWw7DQorICAgIGJvb2wgYWNjZXNzS2V5
QWN0aW9uKGJvb2wpIGZpbmFsOw0KIA0KICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBD
aGlsZENoYW5nZSYpIGZpbmFsOw0KIA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5jcHANCmluZGV4IDgyNjUxOTJhNDI2Li44NTA1NjY0NjIzNSAxMDA2NDQNCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwDQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcA0KQEAgLTM5MCwxMCArMzkwLDExIEBAIHZv
aWQgSFRNTFNlbGVjdEVsZW1lbnQ6Om9wdGlvbkVsZW1lbnRDaGlsZHJlbkNoYW5nZWQoKQ0KICAg
ICAgICAgY2FjaGUtPmNoaWxkcmVuQ2hhbmdlZCh0aGlzKTsNCiB9DQogDQotdm9pZCBIVE1MU2Vs
ZWN0RWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KK2Jvb2wg
SFRNTFNlbGVjdEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykN
CiB7DQogICAgIGZvY3VzKCk7DQogICAgIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwgc2VuZE1v
dXNlRXZlbnRzID8gU2VuZE1vdXNlVXBEb3duRXZlbnRzIDogU2VuZE5vRXZlbnRzKTsNCisgICAg
cmV0dXJuIHRydWU7DQogfQ0KIA0KIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldE11bHRpcGxl
KGJvb2wgbXVsdGlwbGUpDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oDQpp
bmRleCA3NmJlZGVkMWMxZS4uMjcyZjFjNDA0ODMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuaA0KQEAgLTczLDcgKzczLDcgQEAgcHVibGljOg0KIA0KICAgICBXRUJD
T1JFX0VYUE9SVCBjb25zdCBWZWN0b3I8SFRNTEVsZW1lbnQqPiYgbGlzdEl0ZW1zKCkgY29uc3Q7
DQogDQotICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5h
bDsNCisgICAgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIGZpbmFs
Ow0KICAgICB2b2lkIGFjY2Vzc0tleVNldFNlbGVjdGVkSW5kZXgoaW50KTsNCiANCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRNdWx0aXBsZShib29sKTsNCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcA0KaW5kZXggNWMyOTdjYTZmNmEuLmVlMzEwZDAwYzJh
IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNw
cA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcA0KQEAg
LTUwMCw5ICs1MDAsMTAgQEAgYm9vbCBIVE1MVGV4dEFyZWFFbGVtZW50Ojppc1ZhbGlkVmFsdWUo
Y29uc3QgU3RyaW5nJiBjYW5kaWRhdGUpIGNvbnN0DQogICAgIHJldHVybiAhdmFsdWVNaXNzaW5n
KGNhbmRpZGF0ZSkgJiYgIXRvb1Nob3J0KGNhbmRpZGF0ZSwgSWdub3JlRGlydHlGbGFnKSAmJiAh
dG9vTG9uZyhjYW5kaWRhdGUsIElnbm9yZURpcnR5RmxhZyk7DQogfQ0KIA0KLXZvaWQgSFRNTFRl
eHRBcmVhRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wpDQorYm9vbCBIVE1MVGV4dEFyZWFF
bGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCkNCiB7DQogICAgIGZvY3VzKCk7DQorICAgIHJl
dHVybiBmYWxzZTsNCiB9DQogDQogdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXRDb2xzKHVu
c2lnbmVkIGNvbHMpDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaA0K
aW5kZXggNWU5NjgyMzc2YzIuLmRkMTA3YzM4OTUzIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRBcmVhRWxlbWVudC5oDQpAQCAtMTIwLDcgKzEyMCw3IEBAIHByaXZhdGU6DQogICAg
IGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QgZmluYWw7DQog
ICAgIHZvaWQgdXBkYXRlRm9jdXNBcHBlYXJhbmNlKFNlbGVjdGlvblJlc3RvcmF0aW9uTW9kZSwg
U2VsZWN0aW9uUmV2ZWFsTW9kZSkgZmluYWw7DQogDQotICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9u
KGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsNCisgICAgYm9vbCBhY2Nlc3NLZXlBY3Rpb24o
Ym9vbCBzZW5kTW91c2VFdmVudHMpIGZpbmFsOw0KIA0KICAgICBib29sIHNob3VsZFVzZUlucHV0
TWV0aG9kKCkgZmluYWw7DQogICAgIGJvb2wgbWF0Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNzKCkg
Y29uc3QgZmluYWw7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwDQppbmRl
eCAxNGI2M2JmNWZkYi4uNmFmOWJjNzIzYjAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hpZGRlbklucHV0VHlwZS5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVu
SW5wdXRUeXBlLmNwcA0KQEAgLTczLDggKzczLDkgQEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IEhpZGRlbklucHV0VHlwZTo6Y3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYmKQ0KICAg
ICByZXR1cm4gbnVsbHB0cjsNCiB9DQogDQotdm9pZCBIaWRkZW5JbnB1dFR5cGU6OmFjY2Vzc0tl
eUFjdGlvbihib29sKQ0KK2Jvb2wgSGlkZGVuSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oYm9v
bCkNCiB7DQorICAgIHJldHVybiBmYWxzZTsNCiB9DQogDQogYm9vbCBIaWRkZW5JbnB1dFR5cGU6
OnJlbmRlcmVySXNOZWVkZWQoKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlk
ZGVuSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oDQpp
bmRleCAwOGNlNGE4NmYwZS4uNjgzYzZiZDc1YTIgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hpZGRlbklucHV0VHlwZS5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRl
bklucHV0VHlwZS5oDQpAQCAtNDQsNyArNDQsNyBAQCBwcml2YXRlOg0KICAgICB2b2lkIHJlc3Rv
cmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKSBvdmVycmlkZTsNCiAg
ICAgYm9vbCBzdXBwb3J0c1ZhbGlkYXRpb24oKSBjb25zdCBvdmVycmlkZTsNCiAgICAgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUlucHV0UmVuZGVyZXIoUmVuZGVyU3R5bGUmJikgb3Zl
cnJpZGU7DQotICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBv
dmVycmlkZTsNCisgICAgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMp
IG92ZXJyaWRlOw0KICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoKSBvdmVycmlkZTsNCiAgICAg
Ym9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpIG92ZXJyaWRlOw0KICAgICBi
b29sIGlzSGlkZGVuVHlwZSgpIGNvbnN0IG92ZXJyaWRlOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmNwcA0KaW5kZXggMTBjODFjYzUyMGYuLjMwNzM1Y2MxOTcxIDEwMDY0NA0KLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5jcHANCkBAIC01OTIsMTAgKzU5MiwxMSBAQCB2b2lkIElucHV0VHlwZTo6aGFuZGxl
Qmx1ckV2ZW50KCkNCiB7DQogfQ0KIA0KLXZvaWQgSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24o
Ym9vbCkNCitib29sIElucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKGJvb2wpDQogew0KICAgICBB
U1NFUlQoZWxlbWVudCgpKTsNCiAgICAgZWxlbWVudCgpLT5mb2N1cyhmYWxzZSk7DQorICAgIHJl
dHVybiBmYWxzZTsNCiB9DQogDQogdm9pZCBJbnB1dFR5cGU6OmFkZFNlYXJjaFJlc3VsdCgpDQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmgNCmluZGV4IDEyOGE4ZWU3NGZjLi5lNmQ0YmEzYjRmMSAxMDA2
NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgNCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgNCkBAIC0yMDUsNyArMjA1LDcgQEAgcHVibGljOg0KICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlSW5wdXRNZXRob2QoKSBjb25zdDsNCiAgICAgdmlydHVh
bCB2b2lkIGhhbmRsZUZvY3VzRXZlbnQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIEZvY3VzRGlyZWN0
aW9uKTsNCiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUJsdXJFdmVudCgpOw0KLSAgICB2aXJ0dWFs
IHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKTsNCisgICAgdmlydHVh
bCBib29sIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cyk7DQogICAgIHZpcnR1
YWwgYm9vbCBjYW5CZVN1Y2Nlc3NmdWxTdWJtaXRCdXR0b24oKTsNCiAgICAgdmlydHVhbCB2b2lk
IHN1YnRyZWVIYXNDaGFuZ2VkKCk7DQogICAgIHZpcnR1YWwgdm9pZCBibHVyKCk7DQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcA0KaW5kZXggYmM2NDlkZjIzNDYuLjE4YjJhMmZl
YjY0IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAN
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwDQpAQCAtMzE1LDEy
ICszMTUsMTggQEAgU3RyaW5nIFJhbmdlSW5wdXRUeXBlOjpzZXJpYWxpemUoY29uc3QgRGVjaW1h
bCYgdmFsdWUpIGNvbnN0DQogfQ0KIA0KIC8vIEZJWE1FOiBDb3VsZCBzaGFyZSB0aGlzIHdpdGgg
QmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUgYW5kIEJhc2VDaGVja2FibGVJbnB1dFR5cGUg
aWYgd2UgaGFkIGEgY29tbW9uIGJhc2UgY2xhc3MuDQotdm9pZCBSYW5nZUlucHV0VHlwZTo6YWNj
ZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KK2Jvb2wgUmFuZ2VJbnB1dFR5cGU6
OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykNCiB7DQotICAgIElucHV0VHlw
ZTo6YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cyk7DQotDQotICAgIGlmIChhdXRvKiBl
bGVtZW50ID0gdGhpcy0+ZWxlbWVudCgpKQ0KKyAgICBib29sIGRpc3BhdGNoZWRDbGljayA9IElu
cHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cyk7DQorICAgIGlmIChkaXNw
YXRjaGVkQ2xpY2spDQorICAgICAgICByZXR1cm4gZGlzcGF0Y2hlZENsaWNrOw0KKyAgICANCisg
ICAgaWYgKGF1dG8qIGVsZW1lbnQgPSB0aGlzLT5lbGVtZW50KCkpIHsNCiAgICAgICAgIGVsZW1l
bnQtPmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwgc2VuZE1vdXNlRXZlbnRzID8gU2VuZE1vdXNl
VXBEb3duRXZlbnRzIDogU2VuZE5vRXZlbnRzKTsNCisgICAgICAgIHJldHVybiB0cnVlOw0KKyAg
ICB9DQorICAgIA0KKyAgICByZXR1cm4gZmFsc2U7DQogfQ0KIA0KIHZvaWQgUmFuZ2VJbnB1dFR5
cGU6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkNCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgNCmluZGV4IDQzMjdjOTQ4YWM5Li5jOTYyN2IzMmU0NSAx
MDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaA0KKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oDQpAQCAtNTYsNyArNTYsNyBAQCBw
cml2YXRlOg0KICAgICB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBmaW5hbDsNCiAgICAgRGVj
aW1hbCBwYXJzZVRvTnVtYmVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IERlY2ltYWwmKSBjb25zdCBm
aW5hbDsNCiAgICAgU3RyaW5nIHNlcmlhbGl6ZShjb25zdCBEZWNpbWFsJikgY29uc3QgZmluYWw7
DQotICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsN
CisgICAgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIGZpbmFsOw0K
ICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOw0K
ICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0
RmllbGRFdmVudEJlaGF2aW9yKSBmaW5hbDsNCiAgICAgU3RyaW5nIGZhbGxiYWNrVmFsdWUoKSBj
b25zdCBmaW5hbDsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHANCmluZGV4IDU1NGJlOGExOTlm
Li5mNzJjNGZmM2ZiYSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50
LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwDQpAQCAtOTM1LDkg
KzkzNSwxMCBAQCB2b2lkIFNWR0VsZW1lbnQ6OnVwZGF0ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0
aW9uKGJvb2wgaGFzUmVsYXRpdmVMZW5ndGhzLCBTVkdFbA0KICAgICB9DQogfQ0KIA0KLXZvaWQg
U1ZHRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KK2Jvb2wg
U1ZHRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KIHsNCiAg
ICAgZGlzcGF0Y2hTaW11bGF0ZWRDbGljaygwLCBzZW5kTW91c2VFdmVudHMgPyBTZW5kTW91c2VV
cERvd25FdmVudHMgOiBTZW5kTm9FdmVudHMpOw0KKyAgICByZXR1cm4gdHJ1ZTsNCiB9DQogDQog
dm9pZCBTVkdFbGVtZW50OjppbnZhbGlkYXRlSW5zdGFuY2VzKCkNCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1l
bnQuaA0KaW5kZXggMjZjY2JlMzA5MjAuLjNiMDQ5NDIxZDdmIDEwMDY0NA0KLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Vs
ZW1lbnQuaA0KQEAgLTE3OSw3ICsxNzksNyBAQCBwcml2YXRlOg0KICAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJUYXJnZXQoKSB7IH0NCiANCiAgICAgdm9pZCBidWlsZFBlbmRpbmdSZXNvdXJjZXNJZk5l
ZWRlZCgpOw0KLSAgICB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykg
b3ZlcnJpZGU7DQorICAgIGJvb2wgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRz
KSBvdmVycmlkZTsNCiANCiAjaWZuZGVmIE5ERUJVRw0KICAgICB2aXJ0dWFsIGJvb2wgZmlsdGVy
T3V0QW5pbWF0YWJsZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Q7DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395633</attachid>
            <date>2020-04-06 16:55:05 -0700</date>
            <delta_ts>2020-04-07 11:56:28 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_210081.txt</filename>
            <type>text/plain</type>
            <size>32478</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggODkzYjkxYTQ3MTkuLjRlNGJhNGMxMzBjIDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTMg
QEANCisyMDIwLTA0LTA2ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogVm9pY2VPdmVyIGNhbid0IGFjdGl2YXRlIGNvbWJvYm94IHdoZW4gdGV4
dGZpZWxkIGlzIGluc2lkZSBpdA0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMDA4MQ0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuDQorDQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYWN0aXZhdGlvbi1vZi1pbnB1dC1maWVs
ZC1pbnNpZGUtb3RoZXItZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLg0KKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L2FjdGl2YXRpb24tb2YtaW5wdXQtZmllbGQtaW5zaWRlLW90aGVyLWVsZW1l
bnQuaHRtbDogQWRkZWQuDQorDQogMjAyMC0wNC0wNiAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVu
QGlnYWxpYS5jb20+DQogDQogICAgICAgICBUaGUgY2hhbmdlIG9mIHpvb20gc2hvdWxkbid0IGFm
ZmVjdCBSZXNpemVPYnNlcnZlclNpemUNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2FjdGl2YXRpb24tb2YtaW5wdXQtZmllbGQtaW5zaWRlLW90aGVyLWVsZW1lbnQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hY3RpdmF0aW9uLW9mLWlucHV0
LWZpZWxkLWluc2lkZS1vdGhlci1lbGVtZW50LWV4cGVjdGVkLnR4dA0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4zOWFhY2YyYmFhZg0KLS0tIC9kZXYvbnVsbA0KKysr
IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hY3RpdmF0aW9uLW9mLWlucHV0LWZpZWxkLWlu
c2lkZS1vdGhlci1lbGVtZW50LWV4cGVjdGVkLnR4dA0KQEAgLTAsMCArMSwxNCBAQA0KKw0KKw0K
K3Rlc3QNCisNCitUaGlzIHRlc3QgY2hlY2tzIHdoZXRoZXIgYSBzaW11bGF0ZWQgY2xpY2sgd2ls
bCBhY3RpdmF0ZSBhIGNvbWJvYm94IHRoYXQgY29udGFpbnMgYSB0ZXh0IGZpZWxkLg0KKw0KK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitDb21ibyBib3ggZWxlbWVudCBXQVMgY2xp
Y2tlZCB3aXRoIGFjY2Vzc2liaWxpdHkNCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
DQorDQorVEVTVCBDT01QTEVURQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvYWN0aXZhdGlvbi1vZi1pbnB1dC1maWVsZC1pbnNpZGUtb3RoZXItZWxlbWVudC5odG1s
IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hY3RpdmF0aW9uLW9mLWlucHV0LWZpZWxkLWlu
c2lkZS1vdGhlci1lbGVtZW50Lmh0bWwNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAw
MDAwMDAwMC4uMTM4MzZlNDJiYmUNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvYWN0aXZhdGlvbi1vZi1pbnB1dC1maWVsZC1pbnNpZGUtb3RoZXItZWxlbWVu
dC5odG1sDQpAQCAtMCwwICsxLDM4IEBADQorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPg0KKzxodG1sPg0KKzxoZWFkPg0KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pg0KKzwvaGVhZD4NCis8Ym9keSBpZD0iYm9k
eSI+DQorDQorPGRpdiByb2xlPSJjb21ib2JveCIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGFyaWEt
aGFzcG9wdXA9Imxpc3Rib3giIGlkPSJjb21ibyIgb25jbGljaz0iY29tYm9Cb3hDbGlja2VkKCk7
Ij4NCisgICA8ZGl2IHJvbGU9Im5vbmUiPg0KKyAgICAgICA8aW5wdXQgaWQ9ImlucHV0LTQwIiB0
eXBlPSJ0ZXh0IiByb2xlPSJ0ZXh0Ym94IiBhdXRvY29tcGxldGU9Im9mZiIgcGxhY2Vob2xkZXI9
IlNlbGVjdCBhbiBPcHRpb24iIGFyaWEtYXV0b2NvbXBsZXRlPSJub25lIiByZWFkb25seT0iIiBk
aXNhYmxlZD0iIj4NCisgICAgPC9kaXY+DQorPC9kaXY+DQorDQorPGlucHV0IGlkPSJlbGVtZW50
MSIgdHlwZT0iaW1hZ2UiIHNyYz0idXJsLXRlc3QxLmh0bWwiPjxCUj4NCis8YSBpZD0iZWxlbWVu
dDIiIGhyZWY9IiN1cmwtdGVzdDIuaHRtbCI+dGVzdDwvYT48QlI+DQorPGltZyBpZD0iZWxlbWVu
dDMiIHNyYz0idXJsLXRlc3QzLnBuZyIgd2lkdGg9MTAwIGhlaWdodD0xMDAgYWx0PSJ0ZXN0Ij48
QlI+DQorDQorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+DQorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+DQorDQorPHNjcmlwdD4NCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3Mgd2hl
dGhlciBhIHNpbXVsYXRlZCBjbGljayB3aWxsIGFjdGl2YXRlIGEgY29tYm9ib3ggdGhhdCBjb250
YWlucyBhIHRleHQgZmllbGQuIik7DQorDQorICAgIGZ1bmN0aW9uIGNvbWJvQm94Q2xpY2tlZCgp
IHsNCisgICAgICAgIGRlYnVnKCJDb21ibyBib3ggZWxlbWVudCBXQVMgY2xpY2tlZCB3aXRoIGFj
Y2Vzc2liaWxpdHkiKTsNCisgICAgICAgIGZpbmlzaEpTVGVzdCgpOw0KKyAgICB9DQorDQorICAg
IHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsNCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmls
aXR5Q29udHJvbGxlcikgew0KKyAgICAgICAgdmFyIGVsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNvbWJvIik7DQorICAgICAgICBlbGVtZW50
LnByZXNzKCk7DQorICAgIH0NCis8L3NjcmlwdD4NCis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCisNCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cNCmluZGV4IGYzYTgwOWI3YzkwLi4zMDI3MGY0MTIyZCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwz
ICsxLDcyIEBADQorMjAyMC0wNC0wNiAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUu
Y29tPg0KKw0KKyAgICAgICAgQVg6IFZvaWNlT3ZlciBjYW4ndCBhY3RpdmF0ZSBjb21ib2JveCB3
aGVuIHRleHRmaWVsZCBpcyBpbnNpZGUgaXQNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAwODENCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLg0KKw0KKyAgICAgICAgQ2hhbmdlIGFjY2Vzc0tleUFjdGlvbiB0byByZXR1cm4g
d2hldGhlciBhIHNpbXVsYXRlZCBjbGljayBldmVudCB3YXMgZGlzcGF0Y2hlZC4NCisgICAgICAg
IEFjY2Vzc2liaWxpdHkgdXNlcyB0aGF0IGluZm9ybWF0aW9uIHRvIGRlY2lkZSB3aGV0aGVyIGl0
IHNob3VsZCBzZW50IGFuIGV2ZW50IGFmdGVyd2FyZHMsIGJlY2F1c2UNCisgICAgICAgIHNvbWUg
b2JqZWN0cyBhY2Nlc3NLZXlBY3Rpb24gaXMgb25seSB0byBmb2N1cygpLiBBWCBpcyBleHBlY3Rl
ZCBoZXJlIHRvIHByZXNzIG9uIHRoZSBvYmplY3QgKGFuZCBwb3NzaWJseSBmb2N1cykuDQorDQor
ICAgICAgICBUZXN0OiBhY2Nlc3NpYmlsaXR5L2FjdGl2YXRpb24tb2YtaW5wdXQtZmllbGQtaW5z
aWRlLW90aGVyLWVsZW1lbnQuaHRtbA0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OnByZXNzKToNCisgICAgICAgICogZG9tL0VsZW1lbnQuaDoNCisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24pOg0KKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2Fi
bGVJbnB1dFR5cGUuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaGVja2FibGVJbnB1dFR5
cGU6OmFjY2Vzc0tleUFjdGlvbik6DQorICAgICAgICAqIGh0bWwvQmFzZUNoZWNrYWJsZUlucHV0
VHlwZS5oOg0KKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICogaHRtbC9CYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZS5oOg0KKyAgICAgICAgKiBodG1sL0Jhc2VDbGlja2FibGVX
aXRoS2V5SW5wdXRUeXBlLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2xpY2thYmxlV2l0
aEtleUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICogaHRtbC9CYXNlQ2xp
Y2thYmxlV2l0aEtleUlucHV0VHlwZS5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVt
ZW50LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6YWNjZXNzS2V5
QWN0aW9uKToNCisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oOg0KKyAgICAgICAg
KiBodG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpIVE1MQnV0
dG9uRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICogaHRtbC9IVE1MQnV0dG9u
RWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoNCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICogaHRtbC9I
VE1MRWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOg0KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbik6DQorICAg
ICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxMYWJl
bEVsZW1lbnQuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMYWJlbEVsZW1lbnQ6OmFjY2Vz
c0tleUFjdGlvbik6DQorICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxlbWVudC5oOg0KKyAgICAg
ICAgKiBodG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpIVE1M
TGVnZW5kRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICogaHRtbC9IVE1MTGVn
ZW5kRWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwOg0K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbik6
DQorICAgICAgICAqIGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1s
L0hUTUxPcHRpb25FbGVtZW50LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxl
bWVudDo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVu
dC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcDoNCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICog
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmFjY2Vz
c0tleUFjdGlvbik6DQorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oOg0KKyAg
ICAgICAgKiBodG1sL0hpZGRlbklucHV0VHlwZS5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6SGlk
ZGVuSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24pOg0KKyAgICAgICAgKiBodG1sL0hpZGRlbklu
cHV0VHlwZS5oOg0KKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6DQorICAgICAgICAoV2Vi
Q29yZTo6SW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24pOg0KKyAgICAgICAgKiBodG1sL0lucHV0
VHlwZS5oOg0KKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNwcDoNCisgICAgICAgIChX
ZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICogaHRt
bC9SYW5nZUlucHV0VHlwZS5oOg0KKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5jcHA6DQorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICog
c3ZnL1NWR0VsZW1lbnQuaDoNCisNCiAyMDIwLTA0LTA2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgTWFrZSBSZW5kZXJPYmplY3QgVGV4dFN0cmVh
bS1sb2dnYWJsZQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwDQppbmRleCBlODg3NTI0ZmZhMS4uYzQxYzAwMTMyMWIgMTAwNjQ0
DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuY3BwDQpAQCAtOTA1LDE0ICs5MDUsMTggQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpw
cmVzcygpDQogICAgIA0KICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9y
KFByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgZG9jdW1lbnQpOw0KICAgICANCi0gICAgYm9vbCBkaXNw
YXRjaGVkVG91Y2hFdmVudCA9IGZhbHNlOw0KKyAgICBib29sIGRpc3BhdGNoZWRFdmVudCA9IGZh
bHNlOw0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQ0KICAgICBpZiAoaGFzVG91Y2hFdmVudExp
c3RlbmVyKCkpDQotICAgICAgICBkaXNwYXRjaGVkVG91Y2hFdmVudCA9IGRpc3BhdGNoVG91Y2hF
dmVudCgpOw0KKyAgICAgICAgZGlzcGF0Y2hlZEV2ZW50ID0gZGlzcGF0Y2hUb3VjaEV2ZW50KCk7
DQogI2VuZGlmDQotICAgIGlmICghZGlzcGF0Y2hlZFRvdWNoRXZlbnQpDQotICAgICAgICBwcmVz
c0VsZW1lbnQtPmFjY2Vzc0tleUFjdGlvbih0cnVlKTsNCiAgICAgDQorICAgIGlmICghZGlzcGF0
Y2hlZEV2ZW50KQ0KKyAgICAgICAgZGlzcGF0Y2hlZEV2ZW50ID0gcHJlc3NFbGVtZW50LT5hY2Nl
c3NLZXlBY3Rpb24odHJ1ZSk7DQorDQorICAgIGlmICghZGlzcGF0Y2hlZEV2ZW50KQ0KKyAgICAg
ICAgcHJlc3NFbGVtZW50LT5kaXNwYXRjaFNpbXVsYXRlZENsaWNrKG51bGxwdHIsIFNlbmRNb3Vz
ZVVwRG93bkV2ZW50cyk7DQorDQogICAgIHJldHVybiB0cnVlOw0KIH0NCiAgICAgDQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmgNCmluZGV4IDU2YjQ2N2I0YjFjLi5mODQ0MWZjMTQ1NyAxMDA2NDQNCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgNCkBAIC0zODEsNyArMzgxLDcgQEAgcHVibGljOg0KICAgICBXRUJDT1JFX0VYUE9SVCBB
dG9tU3RyaW5nIGNvbXB1dGVJbmhlcml0ZWRMYW5ndWFnZSgpIGNvbnN0Ow0KICAgICBMb2NhbGUm
IGxvY2FsZSgpIGNvbnN0Ow0KIA0KLSAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJv
b2wgLypzZW5kVG9BbnlFdmVudCovKSB7IH0NCisgICAgdmlydHVhbCBib29sIGFjY2Vzc0tleUFj
dGlvbihib29sIC8qc2VuZFRvQW55RXZlbnQqLykgeyByZXR1cm4gZmFsc2U7IH0NCiANCiAgICAg
dmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9DQogICAgIHZpcnR1YWwgYm9vbCBhdHRyaWJ1dGVDb250YWluc1VSTChjb25z
dCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkgY29uc3QgeyByZXR1cm4gaXNVUkxBdHRyaWJ1dGUoYXR0
cmlidXRlKTsgfQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJs
ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5
cGUuY3BwDQppbmRleCBlYjk3NDRiZTI1Zi4uZDkzNmNjMTM3OWIgMTAwNjQ0DQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwDQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwDQpAQCAtOTEsMTIgKzkxLDE0
IEBAIGJvb2wgQmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6Y2FuU2V0U3RyaW5nVmFsdWUoKSBjb25z
dA0KIH0NCiANCiAvLyBGSVhNRTogQ291bGQgc2hhcmUgdGhpcyB3aXRoIEJhc2VDbGlja2FibGVX
aXRoS2V5SW5wdXRUeXBlIGFuZCBSYW5nZUlucHV0VHlwZSBpZiB3ZSBoYWQgYSBjb21tb24gYmFz
ZSBjbGFzcy4NCi12b2lkIEJhc2VDaGVja2FibGVJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihi
b29sIHNlbmRNb3VzZUV2ZW50cykNCitib29sIEJhc2VDaGVja2FibGVJbnB1dFR5cGU6OmFjY2Vz
c0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykNCiB7DQotICAgIElucHV0VHlwZTo6YWNj
ZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cyk7DQorICAgIGJvb2wgZGlzcGF0Y2hlZCA9IElu
cHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cyk7DQogDQogICAgIEFTU0VS
VChlbGVtZW50KCkpOw0KLSAgICBlbGVtZW50KCktPmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwg
c2VuZE1vdXNlRXZlbnRzID8gU2VuZE1vdXNlVXBEb3duRXZlbnRzIDogU2VuZE5vRXZlbnRzKTsN
CisgICAgaWYgKCFkaXNwYXRjaGVkKQ0KKyAgICAgICAgZWxlbWVudCgpLT5kaXNwYXRjaFNpbXVs
YXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyA/IFNlbmRNb3VzZVVwRG93bkV2ZW50cyA6IFNl
bmROb0V2ZW50cyk7DQorICAgIHJldHVybiB0cnVlOw0KIH0NCiANCiBTdHJpbmcgQmFzZUNoZWNr
YWJsZUlucHV0VHlwZTo6ZmFsbGJhY2tWYWx1ZSgpIGNvbnN0DQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaA0KaW5kZXggNTYyYmI5ZGRlZGUuLjkyMWJiODg1
YTI0IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRU
eXBlLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5o
DQpAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOg0KICAgICBib29sIGFwcGVuZEZvcm1EYXRhKERP
TUZvcm1EYXRhJiwgYm9vbCkgY29uc3Qgb3ZlcnJpZGU7DQogICAgIHZvaWQgaGFuZGxlS2V5cHJl
c3NFdmVudChLZXlib2FyZEV2ZW50Jikgb3ZlcnJpZGU7DQogICAgIGJvb2wgY2FuU2V0U3RyaW5n
VmFsdWUoKSBjb25zdCBvdmVycmlkZTsNCi0gICAgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBz
ZW5kTW91c2VFdmVudHMpIG92ZXJyaWRlOw0KKyAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29s
IHNlbmRNb3VzZUV2ZW50cykgb3ZlcnJpZGU7DQogICAgIFN0cmluZyBmYWxsYmFja1ZhbHVlKCkg
Y29uc3Qgb3ZlcnJpZGU7DQogICAgIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1
dGUoKSBvdmVycmlkZTsNCiAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBU
ZXh0RmllbGRFdmVudEJlaGF2aW9yKSBvdmVycmlkZTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwDQpp
bmRleCBhYjQxOTc2ZDMyZi4uN2IxMDYxZmUxYTEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcA0KKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAN
CkBAIC0xMzAsMTEgKzEzMCwxMSBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5w
dXRUeXBlOjpoYW5kbGVLZXl1cEV2ZW50KEtleWJvYXJkRXZlbnQmIGV2ZW50KQ0KICAgICBCYXNl
Q2xpY2thYmxlV2l0aEtleUlucHV0VHlwZTo6aGFuZGxlS2V5dXBFdmVudCgqdGhpcywgZXZlbnQp
Ow0KIH0NCiANCi12b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjphY2Nl
c3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQorYm9vbCBCYXNlQ2hvb3Nlck9ubHlE
YXRlQW5kVGltZUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRz
KQ0KIHsNCiAgICAgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oc2Vu
ZE1vdXNlRXZlbnRzKTsNCiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7DQotICAgIEJhc2VDbGlja2Fi
bGVXaXRoS2V5SW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oKmVsZW1lbnQoKSwgc2VuZE1vdXNl
RXZlbnRzKTsNCisgICAgcmV0dXJuIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlOjphY2Nl
c3NLZXlBY3Rpb24oKmVsZW1lbnQoKSwgc2VuZE1vdXNlRXZlbnRzKTsNCiB9DQogDQogYm9vbCBC
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6aXNNb3VzZUZvY3VzYWJsZSgpIGNv
bnN0DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlE
YXRlQW5kVGltZUlucHV0VHlwZS5oDQppbmRleCA0NTFkNTBjNmQyMi4uYTNmMWNmNWE1YjIgMTAw
NjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaA0KQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToNCiAgICAgU2hv
dWxkQ2FsbEJhc2VFdmVudEhhbmRsZXIgaGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQm
KSBvdmVycmlkZTsNCiAgICAgdm9pZCBoYW5kbGVLZXlwcmVzc0V2ZW50KEtleWJvYXJkRXZlbnQm
KSBvdmVycmlkZTsNCiAgICAgdm9pZCBoYW5kbGVLZXl1cEV2ZW50KEtleWJvYXJkRXZlbnQmKSBv
dmVycmlkZTsNCi0gICAgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMp
IG92ZXJyaWRlOw0KKyAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50
cykgb3ZlcnJpZGU7DQogICAgIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0IG92ZXJyaWRl
Ow0KICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJy
aWRlOw0KIA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNsaWNrYWJsZVdp
dGhLZXlJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxlV2l0
aEtleUlucHV0VHlwZS5jcHANCmluZGV4IDM1NTk3MjQ1NTQ0Li42YTFjMzA2MjQ0MyAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUu
Y3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRU
eXBlLmNwcA0KQEAgLTc1LDkgKzc1LDEwIEBAIHZvaWQgQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1
dFR5cGU6OmhhbmRsZUtleXVwRXZlbnQoSW5wdXRUeXBlJiBpbnB1dFR5cGUsIEtleWJvDQogfQ0K
IA0KIC8vIEZJWE1FOiBDb3VsZCBzaGFyZSB0aGlzIHdpdGggQmFzZUNoZWNrYWJsZUlucHV0VHlw
ZSBhbmQgUmFuZ2VJbnB1dFR5cGUgaWYgd2UgaGFkIGEgY29tbW9uIGJhc2UgY2xhc3MuDQotdm9p
ZCBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKEhUTUxJbnB1
dEVsZW1lbnQmIGVsZW1lbnQsIGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KK2Jvb2wgQmFzZUNsaWNr
YWJsZVdpdGhLZXlJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihIVE1MSW5wdXRFbGVtZW50JiBl
bGVtZW50LCBib29sIHNlbmRNb3VzZUV2ZW50cykNCiB7DQogICAgIGVsZW1lbnQuZGlzcGF0Y2hT
aW11bGF0ZWRDbGljaygwLCBzZW5kTW91c2VFdmVudHMgPyBTZW5kTW91c2VVcERvd25FdmVudHMg
OiBTZW5kTm9FdmVudHMpOw0KKyAgICByZXR1cm4gdHJ1ZTsNCiB9DQogDQogYXV0byBCYXNlQ2xp
Y2thYmxlV2l0aEtleUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQm
IGV2ZW50KSAtPiBTaG91bGRDYWxsQmFzZUV2ZW50SGFuZGxlcg0KQEAgLTk3LDExICs5OCwxMSBA
QCB2b2lkIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlOjpoYW5kbGVLZXl1cEV2ZW50KEtl
eWJvYXJkRXZlbnQmIGV2ZW50KQ0KICAgICBoYW5kbGVLZXl1cEV2ZW50KCp0aGlzLCBldmVudCk7
DQogfQ0KIA0KLXZvaWQgQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGU6OmFjY2Vzc0tleUFj
dGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykNCitib29sIEJhc2VDbGlja2FibGVXaXRoS2V5SW5w
dXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQogew0KICAgICBJ
bnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVudHMpOw0KICAgICBBU1NFUlQo
ZWxlbWVudCgpKTsNCi0gICAgYWNjZXNzS2V5QWN0aW9uKCplbGVtZW50KCksIHNlbmRNb3VzZUV2
ZW50cyk7DQorICAgIHJldHVybiBhY2Nlc3NLZXlBY3Rpb24oKmVsZW1lbnQoKSwgc2VuZE1vdXNl
RXZlbnRzKTsNCiB9DQogDQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQ0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaA0KaW5kZXggOGI2
YzU5MjgwYzYuLmZlODcxM2NiYTcwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmgNCkBAIC00MCw3ICs0MCw3IEBAIHB1Ymxp
YzoNCiAgICAgc3RhdGljIFNob3VsZENhbGxCYXNlRXZlbnRIYW5kbGVyIGhhbmRsZUtleWRvd25F
dmVudChIVE1MSW5wdXRFbGVtZW50JiwgS2V5Ym9hcmRFdmVudCYpOw0KICAgICBzdGF0aWMgdm9p
ZCBoYW5kbGVLZXlwcmVzc0V2ZW50KEhUTUxJbnB1dEVsZW1lbnQmLCBLZXlib2FyZEV2ZW50Jik7
DQogICAgIHN0YXRpYyB2b2lkIGhhbmRsZUtleXVwRXZlbnQoSW5wdXRUeXBlJiwgS2V5Ym9hcmRF
dmVudCYpOw0KLSAgICBzdGF0aWMgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oSFRNTElucHV0RWxlbWVu
dCYsIGJvb2wgc2VuZE1vdXNlRXZlbnRzKTsNCisgICAgc3RhdGljIGJvb2wgYWNjZXNzS2V5QWN0
aW9uKEhUTUxJbnB1dEVsZW1lbnQmLCBib29sIHNlbmRNb3VzZUV2ZW50cyk7DQogICAgIA0KIHBy
b3RlY3RlZDoNCiAgICAgZXhwbGljaXQgQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBJbnB1dFR5cGUoZWxlbWVudCkgeyB9DQpAQCAtNDks
NyArNDksNyBAQCBwcml2YXRlOg0KICAgICBTaG91bGRDYWxsQmFzZUV2ZW50SGFuZGxlciBoYW5k
bGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCYpIG92ZXJyaWRlOw0KICAgICB2b2lkIGhhbmRs
ZUtleXByZXNzRXZlbnQoS2V5Ym9hcmRFdmVudCYpIG92ZXJyaWRlOw0KICAgICB2b2lkIGhhbmRs
ZUtleXVwRXZlbnQoS2V5Ym9hcmRFdmVudCYpIG92ZXJyaWRlOw0KLSAgICB2b2lkIGFjY2Vzc0tl
eUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgb3ZlcnJpZGU7DQorICAgIGJvb2wgYWNjZXNz
S2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBvdmVycmlkZTsNCiB9Ow0KIA0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
Y3BwDQppbmRleCBlZWRlNDRmZjc3Ni4uODhlZWMzNjE4ZGEgMTAwNjQ0DQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHANCkBAIC0yNzQsOSArMjc0LDEwIEBAIHZvaWQgSFRN
TEFuY2hvckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpDQogICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFt
ZSwgdmFsdWUpOw0KIH0NCiANCi12b2lkIEhUTUxBbmNob3JFbGVtZW50OjphY2Nlc3NLZXlBY3Rp
b24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQorYm9vbCBIVE1MQW5jaG9yRWxlbWVudDo6YWNjZXNz
S2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KIHsNCiAgICAgZGlzcGF0Y2hTaW11bGF0
ZWRDbGljaygwLCBzZW5kTW91c2VFdmVudHMgPyBTZW5kTW91c2VVcERvd25FdmVudHMgOiBTZW5k
Tm9FdmVudHMpOw0KKyAgICByZXR1cm4gdHJ1ZTsNCiB9DQogDQogYm9vbCBIVE1MQW5jaG9yRWxl
bWVudDo6aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUpIGNvbnN0DQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oDQppbmRleCBlMWQ5M2IxMTQ3ZC4u
NTA5NzZiYmVmYjMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaA0K
QEAgLTg4LDcgKzg4LDcgQEAgcHJpdmF0ZToNCiAgICAgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxl
KEtleWJvYXJkRXZlbnQqKSBjb25zdCBvdmVycmlkZTsNCiAgICAgdm9pZCBkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50JikgZmluYWw7DQogICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wgYWN0aXZlID0g
dHJ1ZSwgYm9vbCBwYXVzZSA9IGZhbHNlKSBmaW5hbDsNCi0gICAgdm9pZCBhY2Nlc3NLZXlBY3Rp
b24oYm9vbCBzZW5kTW91c2VFdmVudHMpIGZpbmFsOw0KKyAgICBib29sIGFjY2Vzc0tleUFjdGlv
bihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7DQogICAgIGJvb2wgaXNVUkxBdHRyaWJ1dGUo
Y29uc3QgQXR0cmlidXRlJikgY29uc3QgZmluYWw7DQogICAgIGJvb2wgY2FuU3RhcnRTZWxlY3Rp
b24oKSBjb25zdCBmaW5hbDsNCiAgICAgU3RyaW5nIHRhcmdldCgpIGNvbnN0IG92ZXJyaWRlOw0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHANCmluZGV4IDM0YzE2OGYx
YzRjLi42OTNkMDk2MjBkYyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1
dHRvbkVsZW1lbnQuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVt
ZW50LmNwcA0KQEAgLTIxMSwxMSArMjExLDEyIEBAIGJvb2wgSFRNTEJ1dHRvbkVsZW1lbnQ6OmFw
cGVuZEZvcm1EYXRhKERPTUZvcm1EYXRhJiBmb3JtRGF0YSwgYm9vbCkNCiAgICAgcmV0dXJuIHRy
dWU7DQogfQ0KIA0KLXZvaWQgSFRNTEJ1dHRvbkVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29s
IHNlbmRNb3VzZUV2ZW50cykNCitib29sIEhUTUxCdXR0b25FbGVtZW50OjphY2Nlc3NLZXlBY3Rp
b24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQogew0KICAgICBmb2N1cygpOw0KIA0KICAgICBkaXNw
YXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyA/IFNlbmRNb3VzZVVwRG93bkV2
ZW50cyA6IFNlbmROb0V2ZW50cyk7DQorICAgIHJldHVybiB0cnVlOw0KIH0NCiANCiBib29sIEhU
TUxCdXR0b25FbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0
ZSkgY29uc3QNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmgNCmluZGV4IGNj
NjM2NWIyZTE0Li5kZmNkNzQzMzBlZiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJ1dHRvbkVsZW1lbnQuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9u
RWxlbWVudC5oDQpAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOg0KICAgICBib29sIGlzQWN0aXZh
dGVkU3VibWl0KCkgY29uc3QgZmluYWw7DQogICAgIHZvaWQgc2V0QWN0aXZhdGVkU3VibWl0KGJv
b2wgZmxhZykgZmluYWw7DQogDQotICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1v
dXNlRXZlbnRzKSBmaW5hbDsNCisgICAgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91
c2VFdmVudHMpIGZpbmFsOw0KICAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0
ZSYpIGNvbnN0IGZpbmFsOw0KIA0KICAgICBib29sIGNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gZmFsc2U7IH0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwDQpp
bmRleCAzMmVkNGFkMzFiZC4uMzJlMjQ5YzBhYjIgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5jcHANCkBAIC03MDUsOSArNzA1LDEwIEBAIHZvaWQgSFRNTEVsZW1lbnQ6OmNsaWNrKCkN
CiAgICAgc2ltdWxhdGVDbGljaygqdGhpcywgbnVsbHB0ciwgU2VuZE5vRXZlbnRzLCBEb05vdFNo
b3dQcmVzc2VkTG9vaywgU2ltdWxhdGVkQ2xpY2tTb3VyY2U6OkJpbmRpbmdzKTsNCiB9DQogDQot
dm9pZCBIVE1MRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0K
K2Jvb2wgSFRNTEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykN
CiB7DQogICAgIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2sobnVsbHB0ciwgc2VuZE1vdXNlRXZlbnRz
ID8gU2VuZE1vdXNlVXBEb3duRXZlbnRzIDogU2VuZE5vRXZlbnRzKTsNCisgICAgcmV0dXJuIHRy
dWU7DQogfQ0KIA0KIFN0cmluZyBIVE1MRWxlbWVudDo6dGl0bGUoKSBjb25zdA0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuaA0KaW5kZXggN2UwNzRlYjYxMjguLjM2MmNmYTRjN2MwIDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oDQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmgNCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoNCiANCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGljaygpOw0KIA0KLSAgICB2b2lkIGFjY2Vzc0tleUFj
dGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgb3ZlcnJpZGU7DQorICAgIGJvb2wgYWNjZXNzS2V5
QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBvdmVycmlkZTsNCiANCiAgICAgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsNCiAgICAgYm9vbCByZW5kZXJlcklzRXZl
ck5lZWRlZCgpIGZpbmFsOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
DQppbmRleCBiNGEyMDMzZTUxNi4uNTAyZjcwMjUyNWQgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwDQpAQCAtNjY2LDEwICs2NjYsMTAgQEAgYm9vbCBIVE1MSW5w
dXRFbGVtZW50OjpjYW5IYXZlU2VsZWN0aW9uKCkgY29uc3QNCiAgICAgcmV0dXJuIGlzVGV4dEZp
ZWxkKCk7DQogfQ0KIA0KLXZvaWQgSFRNTElucHV0RWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJv
b2wgc2VuZE1vdXNlRXZlbnRzKQ0KK2Jvb2wgSFRNTElucHV0RWxlbWVudDo6YWNjZXNzS2V5QWN0
aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KIHsNCiAgICAgUmVmPElucHV0VHlwZT4gcHJvdGVj
dGVkSW5wdXRUeXBlKCptX2lucHV0VHlwZSk7DQotICAgIHByb3RlY3RlZElucHV0VHlwZS0+YWNj
ZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cyk7DQorICAgIHJldHVybiBwcm90ZWN0ZWRJbnB1
dFR5cGUtPmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVudHMpOw0KIH0NCiANCiBib29sIEhU
TUxJbnB1dEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUpIGNvbnN0DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaA0KaW5k
ZXggZGZjM2Y5MGIwNDUuLjcxNTdhNzZmZTMxIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5oDQpAQCAtMzkxLDcgKzM5MSw3IEBAIHByaXZhdGU6DQogDQogICAgIGJvb2wg
Y2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdCBmaW5hbDsNCiANCi0gICAgdm9pZCBhY2Nlc3NLZXlB
Y3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIGZpbmFsOw0KKyAgICBib29sIGFjY2Vzc0tleUFj
dGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7DQogDQogICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsNCiAg
ICAgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29u
c3QgZmluYWw7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHANCmluZGV4
IDUxMmM1ZDEyNjUxLi4zN2Y5Y2E1NmU4MCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExhYmVsRWxlbWVudC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExh
YmVsRWxlbWVudC5jcHANCkBAIC0xODksMTIgKzE4OSwxMiBAQCB2b2lkIEhUTUxMYWJlbEVsZW1l
bnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbiBk
aXJlYw0KICAgICAgICAgZWxlbWVudC0+Zm9jdXModHJ1ZSwgZGlyZWN0aW9uKTsNCiB9DQogDQot
dm9pZCBIVE1MTGFiZWxFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVu
dHMpDQorYm9vbCBIVE1MTGFiZWxFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91
c2VFdmVudHMpDQogew0KICAgICBpZiAoYXV0byBlbGVtZW50ID0gY29udHJvbCgpKQ0KLSAgICAg
ICAgZWxlbWVudC0+YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cyk7DQotICAgIGVsc2UN
Ci0gICAgICAgIEhUTUxFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsN
CisgICAgICAgIHJldHVybiBlbGVtZW50LT5hY2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRz
KTsNCisNCisgICAgcmV0dXJuIEhUTUxFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNl
RXZlbnRzKTsNCiB9DQogDQogfSAvLyBuYW1lc3BhY2UNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExh
YmVsRWxlbWVudC5oDQppbmRleCBhNjA3ZGY2Y2M0My4uNDY2MGYwNjc3NzMgMTAwNjQ0DQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaA0KKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgNCkBAIC00Miw3ICs0Miw3IEBAIHByaXZhdGU6
DQogDQogICAgIGJvb2wgaXNFdmVudFRhcmdldGVkQXRJbnRlcmFjdGl2ZURlc2NlbmRhbnRzKEV2
ZW50JikgY29uc3Q7DQogDQotICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNl
RXZlbnRzKSBmaW5hbDsNCisgICAgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VF
dmVudHMpIGZpbmFsOw0KIA0KICAgICAvLyBPdmVycmlkZGVuIHRvIHVwZGF0ZSB0aGUgaG92ZXIv
YWN0aXZlIHN0YXRlIG9mIHRoZSBjb3JyZXNwb25kaW5nIGNvbnRyb2wuDQogICAgIHZvaWQgc2V0
QWN0aXZlKGJvb2wgPSB0cnVlLCBib29sIHBhdXNlID0gZmFsc2UpIGZpbmFsOw0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5jcHANCmluZGV4IDA1NGVmMTI3ZmMyLi5hMWU1
N2NmZTRkMCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1l
bnQuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcA0K
QEAgLTcyLDEwICs3MiwxMSBAQCB2b2lkIEhUTUxMZWdlbmRFbGVtZW50Ojpmb2N1cyhib29sIHJl
c3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24gZGlyZQ0KICAgICAgICAgY29u
dHJvbC0+Zm9jdXMoZmFsc2UsIGRpcmVjdGlvbik7DQogfQ0KIA0KLXZvaWQgSFRNTExlZ2VuZEVs
ZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykNCitib29sIEhUTUxM
ZWdlbmRFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQogew0K
ICAgICBpZiAoYXV0byBjb250cm9sID0gYXNzb2NpYXRlZENvbnRyb2woKSkNCi0gICAgICAgIGNv
bnRyb2wtPmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVudHMpOw0KKyAgICAgICAgcmV0dXJu
IGNvbnRyb2wtPmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVudHMpOw0KKyAgICByZXR1cm4g
ZmFsc2U7DQogfQ0KIA0KIEhUTUxGb3JtRWxlbWVudCogSFRNTExlZ2VuZEVsZW1lbnQ6OmZvcm0o
KSBjb25zdA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaA0KaW5kZXggMTBm
ZTA0NTRiMTIuLjJkZjYyMjk3MWYxIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTGVnZW5kRWxlbWVudC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRF
bGVtZW50LmgNCkBAIC00Miw3ICs0Miw3IEBAIHByaXZhdGU6DQogICAgIC8vIENvbnRyb2wgaW4g
dGhlIGxlZ2VuZCdzIGZpZWxkIHNldCB0aGF0IGdldHMgZm9jdXMgYW5kIGFjY2VzcyBrZXkuDQog
ICAgIFJlZlB0cjxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PiBhc3NvY2lhdGVkQ29udHJvbCgpOw0K
IA0KLSAgICB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7
DQorICAgIGJvb2wgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsN
CiAgICAgdm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJl
Y3Rpb24pIGZpbmFsOw0KIH07DQogDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT3B0R3JvdXBFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3Vw
RWxlbWVudC5jcHANCmluZGV4IDY3NjhmZTEyYTFlLi45ZmU5ZTE0YjU2NSAxMDA2NDQNCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHANCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHANCkBAIC0xMTIsMTIgKzExMiwx
MyBAQCBIVE1MU2VsZWN0RWxlbWVudCogSFRNTE9wdEdyb3VwRWxlbWVudDo6b3duZXJTZWxlY3RF
bGVtZW50KCkgY29uc3QNCiAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQq
PihhbmNlc3RvcnNPZlR5cGU8SFRNTFNlbGVjdEVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpKTsNCiB9
DQogDQotdm9pZCBIVE1MT3B0R3JvdXBFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCkNCiti
b29sIEhUTUxPcHRHcm91cEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sKQ0KIHsNCiAgICAg
UmVmUHRyPEhUTUxTZWxlY3RFbGVtZW50PiBzZWxlY3QgPSBvd25lclNlbGVjdEVsZW1lbnQoKTsN
CiAgICAgLy8gc2VuZCB0byB0aGUgcGFyZW50IHRvIGJyaW5nIGZvY3VzIHRvIHRoZSBsaXN0IGJv
eA0KICAgICBpZiAoc2VsZWN0ICYmICFzZWxlY3QtPmZvY3VzZWQoKSkNCi0gICAgICAgIHNlbGVj
dC0+YWNjZXNzS2V5QWN0aW9uKGZhbHNlKTsNCisgICAgICAgIHJldHVybiBzZWxlY3QtPmFjY2Vz
c0tleUFjdGlvbihmYWxzZSk7DQorICAgIHJldHVybiBmYWxzZTsNCiB9DQogDQogfSAvLyBuYW1l
c3BhY2UNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oDQppbmRleCBh
MjMzYjM1MDRkYS4uMzczZDU1M2VlMDcgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRHcm91cEVsZW1lbnQuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
R3JvdXBFbGVtZW50LmgNCkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6DQogDQogICAgIHZvaWQg
Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7DQogDQotICAgIHZvaWQg
YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsNCisgICAgYm9vbCBh
Y2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIGZpbmFsOw0KIA0KICAgICB2b2lk
IHJlY2FsY1NlbGVjdE9wdGlvbnMoKTsNCiB9Ow0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
aW9uRWxlbWVudC5jcHANCmluZGV4IDRkOWYyMzFmMGY1Li45YmNjZTUwOTQ3MSAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwDQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcA0KQEAgLTEzNSwxMSArMTM1LDEy
IEBAIHZvaWQgSFRNTE9wdGlvbkVsZW1lbnQ6OnNldFRleHQoY29uc3QgU3RyaW5nICZ0ZXh0KQ0K
ICAgICAgICAgc2VsZWN0LT5zZXRTZWxlY3RlZEluZGV4KG9sZFNlbGVjdGVkSW5kZXgpOw0KIH0N
CiANCi12b2lkIEhUTUxPcHRpb25FbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCkNCitib29s
IEhUTUxPcHRpb25FbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCkNCiB7DQogICAgIFJlZlB0
cjxIVE1MU2VsZWN0RWxlbWVudD4gc2VsZWN0ID0gb3duZXJTZWxlY3RFbGVtZW50KCk7DQogICAg
IGlmIChzZWxlY3QpDQogICAgICAgICBzZWxlY3QtPmFjY2Vzc0tleVNldFNlbGVjdGVkSW5kZXgo
aW5kZXgoKSk7DQorICAgIHJldHVybiBmYWxzZTsNCiB9DQogDQogaW50IEhUTUxPcHRpb25FbGVt
ZW50OjppbmRleCgpIGNvbnN0DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T3B0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5o
DQppbmRleCA5MWM1YWJjN2UwMS4uNzg1YTdjZGZlOGMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9wdGlvbkVsZW1lbnQuaA0KQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToNCiAgICAgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYp
IGZpbmFsOw0KIA0KICAgICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9B
bmNlc3RvcihJbnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7DQotICAgIHZvaWQg
YWNjZXNzS2V5QWN0aW9uKGJvb2wpIGZpbmFsOw0KKyAgICBib29sIGFjY2Vzc0tleUFjdGlvbihi
b29sKSBmaW5hbDsNCiANCiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFu
Z2UmKSBmaW5hbDsNCiANCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3Bw
DQppbmRleCA4MjY1MTkyYTQyNi4uODUwNTY2NDYyMzUgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5jcHANCkBAIC0zOTAsMTAgKzM5MCwxMSBAQCB2b2lkIEhUTUxT
ZWxlY3RFbGVtZW50OjpvcHRpb25FbGVtZW50Q2hpbGRyZW5DaGFuZ2VkKCkNCiAgICAgICAgIGNh
Y2hlLT5jaGlsZHJlbkNoYW5nZWQodGhpcyk7DQogfQ0KIA0KLXZvaWQgSFRNTFNlbGVjdEVsZW1l
bnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykNCitib29sIEhUTUxTZWxl
Y3RFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQogew0KICAg
ICBmb2N1cygpOw0KICAgICBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50
cyA/IFNlbmRNb3VzZVVwRG93bkV2ZW50cyA6IFNlbmROb0V2ZW50cyk7DQorICAgIHJldHVybiB0
cnVlOw0KIH0NCiANCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRNdWx0aXBsZShib29sIG11
bHRpcGxlKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaA0KaW5kZXggNzZi
ZWRlZDFjMWUuLjI3MmYxYzQwNDgzIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmgNCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoNCiANCiAgICAgV0VCQ09SRV9FWFBP
UlQgY29uc3QgVmVjdG9yPEhUTUxFbGVtZW50Kj4mIGxpc3RJdGVtcygpIGNvbnN0Ow0KIA0KLSAg
ICB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7DQorICAg
IGJvb2wgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsNCiAgICAg
dm9pZCBhY2Nlc3NLZXlTZXRTZWxlY3RlZEluZGV4KGludCk7DQogDQogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0TXVsdGlwbGUoYm9vbCk7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5jcHANCmluZGV4IDVjMjk3Y2E2ZjZhLi5lZTMxMGQwMGMyYSAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHANCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHANCkBAIC01MDAsOSAr
NTAwLDEwIEBAIGJvb2wgSFRNTFRleHRBcmVhRWxlbWVudDo6aXNWYWxpZFZhbHVlKGNvbnN0IFN0
cmluZyYgY2FuZGlkYXRlKSBjb25zdA0KICAgICByZXR1cm4gIXZhbHVlTWlzc2luZyhjYW5kaWRh
dGUpICYmICF0b29TaG9ydChjYW5kaWRhdGUsIElnbm9yZURpcnR5RmxhZykgJiYgIXRvb0xvbmco
Y2FuZGlkYXRlLCBJZ25vcmVEaXJ0eUZsYWcpOw0KIH0NCiANCi12b2lkIEhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sKQ0KK2Jvb2wgSFRNTFRleHRBcmVhRWxlbWVudDo6
YWNjZXNzS2V5QWN0aW9uKGJvb2wpDQogew0KICAgICBmb2N1cygpOw0KKyAgICByZXR1cm4gZmFs
c2U7DQogfQ0KIA0KIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2V0Q29scyh1bnNpZ25lZCBj
b2xzKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgNCmluZGV4IDVl
OTY4MjM3NmMyLi5kZDEwN2MzODk1MyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRBcmVhRWxlbWVudC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuaA0KQEAgLTEyMCw3ICsxMjAsNyBAQCBwcml2YXRlOg0KICAgICBib29sIGlz
S2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0IGZpbmFsOw0KICAgICB2b2lk
IHVwZGF0ZUZvY3VzQXBwZWFyYW5jZShTZWxlY3Rpb25SZXN0b3JhdGlvbk1vZGUsIFNlbGVjdGlv
blJldmVhbE1vZGUpIGZpbmFsOw0KIA0KLSAgICB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNl
bmRNb3VzZUV2ZW50cykgZmluYWw7DQorICAgIGJvb2wgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2Vu
ZE1vdXNlRXZlbnRzKSBmaW5hbDsNCiANCiAgICAgYm9vbCBzaG91bGRVc2VJbnB1dE1ldGhvZCgp
IGZpbmFsOw0KICAgICBib29sIG1hdGNoZXNSZWFkV3JpdGVQc2V1ZG9DbGFzcygpIGNvbnN0IGZp
bmFsOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcA0KaW5kZXggMTRiNjNi
ZjVmZGIuLjZhZjliYzcyM2IwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRk
ZW5JbnB1dFR5cGUuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlw
ZS5jcHANCkBAIC03Myw4ICs3Myw5IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIaWRkZW5J
bnB1dFR5cGU6OmNyZWF0ZUlucHV0UmVuZGVyZXIoUmVuZGVyU3R5bGUmJikNCiAgICAgcmV0dXJu
IG51bGxwdHI7DQogfQ0KIA0KLXZvaWQgSGlkZGVuSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24o
Ym9vbCkNCitib29sIEhpZGRlbklucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKGJvb2wpDQogew0K
KyAgICByZXR1cm4gZmFsc2U7DQogfQ0KIA0KIGJvb2wgSGlkZGVuSW5wdXRUeXBlOjpyZW5kZXJl
cklzTmVlZGVkKCkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0
VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaA0KaW5kZXggMDhj
ZTRhODZmMGUuLjY4M2M2YmQ3NWEyIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
aWRkZW5JbnB1dFR5cGUuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5
cGUuaA0KQEAgLTQ0LDcgKzQ0LDcgQEAgcHJpdmF0ZToNCiAgICAgdm9pZCByZXN0b3JlRm9ybUNv
bnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJikgb3ZlcnJpZGU7DQogICAgIGJvb2wg
c3VwcG9ydHNWYWxpZGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7DQogICAgIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYpIG92ZXJyaWRlOw0K
LSAgICB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgb3ZlcnJpZGU7
DQorICAgIGJvb2wgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBvdmVycmlk
ZTsNCiAgICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKCkgb3ZlcnJpZGU7DQogICAgIGJvb2wgc3Rv
cmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKSBvdmVycmlkZTsNCiAgICAgYm9vbCBpc0hp
ZGRlblR5cGUoKSBjb25zdCBvdmVycmlkZTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHANCmlu
ZGV4IDEwYzgxY2M1MjBmLi4zMDczNWNjMTk3MSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUu
Y3BwDQpAQCAtNTkyLDEwICs1OTIsMTEgQEAgdm9pZCBJbnB1dFR5cGU6OmhhbmRsZUJsdXJFdmVu
dCgpDQogew0KIH0NCiANCi12b2lkIElucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKGJvb2wpDQor
Ym9vbCBJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihib29sKQ0KIHsNCiAgICAgQVNTRVJUKGVs
ZW1lbnQoKSk7DQogICAgIGVsZW1lbnQoKS0+Zm9jdXMoZmFsc2UpOw0KKyAgICByZXR1cm4gZmFs
c2U7DQogfQ0KIA0KIHZvaWQgSW5wdXRUeXBlOjphZGRTZWFyY2hSZXN1bHQoKQ0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5oDQppbmRleCAxMjhhOGVlNzRmYy4uZTZkNGJhM2I0ZjEgMTAwNjQ0DQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5oDQpAQCAtMjA1LDcgKzIwNSw3IEBAIHB1YmxpYzoNCiAgICAgdmlydHVh
bCBib29sIHNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3Q7DQogICAgIHZpcnR1YWwgdm9pZCBo
YW5kbGVGb2N1c0V2ZW50KE5vZGUqIG9sZEZvY3VzZWROb2RlLCBGb2N1c0RpcmVjdGlvbik7DQog
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVCbHVyRXZlbnQoKTsNCi0gICAgdmlydHVhbCB2b2lkIGFj
Y2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cyk7DQorICAgIHZpcnR1YWwgYm9vbCBh
Y2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpOw0KICAgICB2aXJ0dWFsIGJvb2wg
Y2FuQmVTdWNjZXNzZnVsU3VibWl0QnV0dG9uKCk7DQogICAgIHZpcnR1YWwgdm9pZCBzdWJ0cmVl
SGFzQ2hhbmdlZCgpOw0KICAgICB2aXJ0dWFsIHZvaWQgYmx1cigpOw0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9SYW5nZUlucHV0VHlwZS5jcHANCmluZGV4IGJjNjQ5ZGYyMzQ2Li4xOGIyYTJmZWI2NCAxMDA2
NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwDQorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcA0KQEAgLTMxNSwxMiArMzE1LDE4
IEBAIFN0cmluZyBSYW5nZUlucHV0VHlwZTo6c2VyaWFsaXplKGNvbnN0IERlY2ltYWwmIHZhbHVl
KSBjb25zdA0KIH0NCiANCiAvLyBGSVhNRTogQ291bGQgc2hhcmUgdGhpcyB3aXRoIEJhc2VDbGlj
a2FibGVXaXRoS2V5SW5wdXRUeXBlIGFuZCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlIGlmIHdlIGhh
ZCBhIGNvbW1vbiBiYXNlIGNsYXNzLg0KLXZvaWQgUmFuZ2VJbnB1dFR5cGU6OmFjY2Vzc0tleUFj
dGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykNCitib29sIFJhbmdlSW5wdXRUeXBlOjphY2Nlc3NL
ZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQogew0KLSAgICBJbnB1dFR5cGU6OmFjY2Vz
c0tleUFjdGlvbihzZW5kTW91c2VFdmVudHMpOw0KLQ0KLSAgICBpZiAoYXV0byogZWxlbWVudCA9
IHRoaXMtPmVsZW1lbnQoKSkNCisgICAgYm9vbCBkaXNwYXRjaGVkQ2xpY2sgPSBJbnB1dFR5cGU6
OmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVudHMpOw0KKyAgICBpZiAoZGlzcGF0Y2hlZENs
aWNrKQ0KKyAgICAgICAgcmV0dXJuIGRpc3BhdGNoZWRDbGljazsNCisgICAgDQorICAgIGlmIChh
dXRvKiBlbGVtZW50ID0gdGhpcy0+ZWxlbWVudCgpKSB7DQogICAgICAgICBlbGVtZW50LT5kaXNw
YXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyA/IFNlbmRNb3VzZVVwRG93bkV2
ZW50cyA6IFNlbmROb0V2ZW50cyk7DQorICAgICAgICByZXR1cm4gdHJ1ZTsNCisgICAgfQ0KKyAg
ICANCisgICAgcmV0dXJuIGZhbHNlOw0KIH0NCiANCiB2b2lkIFJhbmdlSW5wdXRUeXBlOjphdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpDQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9S
YW5nZUlucHV0VHlwZS5oDQppbmRleCA0MzI3Yzk0OGFjOS4uYzk2MjdiMzJlNDUgMTAwNjQ0DQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgNCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaA0KQEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToN
CiAgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgZmluYWw7DQogICAgIERlY2ltYWwgcGFy
c2VUb051bWJlcihjb25zdCBTdHJpbmcmLCBjb25zdCBEZWNpbWFsJikgY29uc3QgZmluYWw7DQog
ICAgIFN0cmluZyBzZXJpYWxpemUoY29uc3QgRGVjaW1hbCYpIGNvbnN0IGZpbmFsOw0KLSAgICB2
b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7DQorICAgIGJv
b2wgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsNCiAgICAgdm9p
ZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsNCiAgICAgdm9p
ZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZl
bnRCZWhhdmlvcikgZmluYWw7DQogICAgIFN0cmluZyBmYWxsYmFja1ZhbHVlKCkgY29uc3QgZmlu
YWw7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwDQppbmRleCA1NTRiZThhMTk5Zi4uZjcyYzRm
ZjNmYmEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHANCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcA0KQEAgLTkzNSw5ICs5MzUsMTAg
QEAgdm9pZCBTVkdFbGVtZW50Ojp1cGRhdGVSZWxhdGl2ZUxlbmd0aHNJbmZvcm1hdGlvbihib29s
IGhhc1JlbGF0aXZlTGVuZ3RocywgU1ZHRWwNCiAgICAgfQ0KIH0NCiANCi12b2lkIFNWR0VsZW1l
bnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykNCitib29sIFNWR0VsZW1l
bnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykNCiB7DQogICAgIGRpc3Bh
dGNoU2ltdWxhdGVkQ2xpY2soMCwgc2VuZE1vdXNlRXZlbnRzID8gU2VuZE1vdXNlVXBEb3duRXZl
bnRzIDogU2VuZE5vRXZlbnRzKTsNCisgICAgcmV0dXJuIHRydWU7DQogfQ0KIA0KIHZvaWQgU1ZH
RWxlbWVudDo6aW52YWxpZGF0ZUluc3RhbmNlcygpDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgNCmlu
ZGV4IDI2Y2NiZTMwOTIwLi4zYjA0OTQyMWQ3ZiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdFbGVtZW50LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgN
CkBAIC0xNzksNyArMTc5LDcgQEAgcHJpdmF0ZToNCiAgICAgdmlydHVhbCB2b2lkIGNsZWFyVGFy
Z2V0KCkgeyB9DQogDQogICAgIHZvaWQgYnVpbGRQZW5kaW5nUmVzb3VyY2VzSWZOZWVkZWQoKTsN
Ci0gICAgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIG92ZXJyaWRl
Ow0KKyAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgb3ZlcnJp
ZGU7DQogDQogI2lmbmRlZiBOREVCVUcNCiAgICAgdmlydHVhbCBib29sIGZpbHRlck91dEFuaW1h
dGFibGVBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0Ow0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395718</attachid>
            <date>2020-04-07 11:56:28 -0700</date>
            <delta_ts>2020-04-07 14:59:30 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_210081.txt</filename>
            <type>text/plain</type>
            <size>36302</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggODkzYjkxYTQ3MTkuLjRlNGJhNGMxMzBjIDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTMg
QEANCisyMDIwLTA0LTA2ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogVm9pY2VPdmVyIGNhbid0IGFjdGl2YXRlIGNvbWJvYm94IHdoZW4gdGV4
dGZpZWxkIGlzIGluc2lkZSBpdA0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMDA4MQ0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuDQorDQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYWN0aXZhdGlvbi1vZi1pbnB1dC1maWVs
ZC1pbnNpZGUtb3RoZXItZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLg0KKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L2FjdGl2YXRpb24tb2YtaW5wdXQtZmllbGQtaW5zaWRlLW90aGVyLWVsZW1l
bnQuaHRtbDogQWRkZWQuDQorDQogMjAyMC0wNC0wNiAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVu
QGlnYWxpYS5jb20+DQogDQogICAgICAgICBUaGUgY2hhbmdlIG9mIHpvb20gc2hvdWxkbid0IGFm
ZmVjdCBSZXNpemVPYnNlcnZlclNpemUNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2FjdGl2YXRpb24tb2YtaW5wdXQtZmllbGQtaW5zaWRlLW90aGVyLWVsZW1lbnQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hY3RpdmF0aW9uLW9mLWlucHV0
LWZpZWxkLWluc2lkZS1vdGhlci1lbGVtZW50LWV4cGVjdGVkLnR4dA0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi41ZWRkMmZhODAxOA0KLS0tIC9kZXYvbnVsbA0KKysr
IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hY3RpdmF0aW9uLW9mLWlucHV0LWZpZWxkLWlu
c2lkZS1vdGhlci1lbGVtZW50LWV4cGVjdGVkLnR4dA0KQEAgLTAsMCArMSwxMSBAQA0KKw0KK1Ro
aXMgdGVzdCBjaGVja3Mgd2hldGhlciBhIHNpbXVsYXRlZCBjbGljayB3aWxsIGFjdGl2YXRlIGEg
Y29tYm9ib3ggdGhhdCBjb250YWlucyBhIHRleHQgZmllbGQuDQorDQorT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLg0KKw0KKw0KK0NvbWJvIGJveCBlbGVtZW50IFdBUyBjbGlja2VkIHdpdGggYWNj
ZXNzaWJpbGl0eQ0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUNCisNCitURVNUIENP
TVBMRVRFDQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hY3RpdmF0
aW9uLW9mLWlucHV0LWZpZWxkLWluc2lkZS1vdGhlci1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2FjdGl2YXRpb24tb2YtaW5wdXQtZmllbGQtaW5zaWRlLW90aGVyLWVs
ZW1lbnQuaHRtbA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5hMTU0
ZTQyNTVmNA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9h
Y3RpdmF0aW9uLW9mLWlucHV0LWZpZWxkLWluc2lkZS1vdGhlci1lbGVtZW50Lmh0bWwNCkBAIC0w
LDAgKzEsMzQgQEANCis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+DQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+DQorPC9oZWFkPg0KKzxib2R5IGlkPSJib2R5Ij4NCisNCis8ZGl2
IHJvbGU9ImNvbWJvYm94IiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgYXJpYS1oYXNwb3B1cD0ibGlz
dGJveCIgaWQ9ImNvbWJvIiBvbmNsaWNrPSJjb21ib0JveENsaWNrZWQoKTsiPg0KKyAgICA8ZGl2
IHJvbGU9Im5vbmUiPg0KKyAgICAgICAgPGlucHV0IGlkPSJpbnB1dC00MCIgdHlwZT0idGV4dCIg
cm9sZT0idGV4dGJveCIgYXV0b2NvbXBsZXRlPSJvZmYiIHBsYWNlaG9sZGVyPSJTZWxlY3QgYW4g
T3B0aW9uIiBhcmlhLWF1dG9jb21wbGV0ZT0ibm9uZSIgcmVhZG9ubHk9IiIgZGlzYWJsZWQ9IiI+
DQorICAgIDwvZGl2Pg0KKzwvZGl2Pg0KKw0KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPg0KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pg0KKw0KKzxzY3JpcHQ+DQorICAgIGRlc2NyaXB0aW9uKCJU
aGlzIHRlc3QgY2hlY2tzIHdoZXRoZXIgYSBzaW11bGF0ZWQgY2xpY2sgd2lsbCBhY3RpdmF0ZSBh
IGNvbWJvYm94IHRoYXQgY29udGFpbnMgYSB0ZXh0IGZpZWxkLiIpOw0KKw0KKyAgICBmdW5jdGlv
biBjb21ib0JveENsaWNrZWQoKSB7DQorICAgICAgICBkZWJ1ZygiQ29tYm8gYm94IGVsZW1lbnQg
V0FTIGNsaWNrZWQgd2l0aCBhY2Nlc3NpYmlsaXR5Iik7DQorICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsNCisgICAgfQ0KKw0KKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7DQorICAgIGlm
ICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsNCisgICAgICAgIHZhciBlbGVtZW50
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjb21ibyIp
Ow0KKyAgICAgICAgZWxlbWVudC5wcmVzcygpOw0KKyAgICB9DQorPC9zY3JpcHQ+DQorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KKzwvYm9keT4N
Cis8L2h0bWw+DQorDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQppbmRleCBmM2E4MDliN2M5MC4uMzAyNzBmNDEyMmQgMTAw
NjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZw0KQEAgLTEsMyArMSw3MiBAQA0KKzIwMjAtMDQtMDYgIENocmlzIEZsZWl6YWNo
ICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFYOiBWb2ljZU92ZXIgY2FuJ3Qg
YWN0aXZhdGUgY29tYm9ib3ggd2hlbiB0ZXh0ZmllbGQgaXMgaW5zaWRlIGl0DQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMDgxDQorDQorICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIENoYW5nZSBhY2Nlc3NL
ZXlBY3Rpb24gdG8gcmV0dXJuIHdoZXRoZXIgYSBzaW11bGF0ZWQgY2xpY2sgZXZlbnQgd2FzIGRp
c3BhdGNoZWQuDQorICAgICAgICBBY2Nlc3NpYmlsaXR5IHVzZXMgdGhhdCBpbmZvcm1hdGlvbiB0
byBkZWNpZGUgd2hldGhlciBpdCBzaG91bGQgc2VudCBhbiBldmVudCBhZnRlcndhcmRzLCBiZWNh
dXNlDQorICAgICAgICBzb21lIG9iamVjdHMgYWNjZXNzS2V5QWN0aW9uIGlzIG9ubHkgdG8gZm9j
dXMoKS4gQVggaXMgZXhwZWN0ZWQgaGVyZSB0byBwcmVzcyBvbiB0aGUgb2JqZWN0IChhbmQgcG9z
c2libHkgZm9jdXMpLg0KKw0KKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9hY3RpdmF0aW9u
LW9mLWlucHV0LWZpZWxkLWluc2lkZS1vdGhlci1lbGVtZW50Lmh0bWwNCisNCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoNCisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpwcmVzcyk6DQorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6
DQorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAg
ICogaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpC
YXNlQ2hlY2thYmxlSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24pOg0KKyAgICAgICAgKiBodG1s
L0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaDoNCisgICAgICAgICogaHRtbC9CYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbik6DQorICAgICAgICAq
IGh0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaDoNCisgICAgICAgICog
aHRtbC9CYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5jcHA6DQorICAgICAgICAoV2ViQ29y
ZTo6QmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbik6DQorICAg
ICAgICAqIGh0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaDoNCisgICAgICAgICog
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hv
ckVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbik6DQorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuaDoNCisgICAgICAgICogaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHA6DQorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbik6DQorICAgICAg
ICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaDoNCisgICAgICAgICogaHRtbC9IVE1MRWxlbWVu
dC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbik6
DQorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoNCisgICAgICAgICogaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjphY2Nl
c3NLZXlBY3Rpb24pOg0KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoNCisgICAg
ICAgICogaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpIVE1M
TGFiZWxFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24pOg0KKyAgICAgICAgKiBodG1sL0hUTUxMYWJl
bEVsZW1lbnQuaDoNCisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5jcHA6DQorICAg
ICAgICAoV2ViQ29yZTo6SFRNTExlZ2VuZEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbik6DQorICAg
ICAgICAqIGh0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaDoNCisgICAgICAgICogaHRtbC9IVE1MT3B0
R3JvdXBFbGVtZW50LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50
OjphY2Nlc3NLZXlBY3Rpb24pOg0KKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQu
aDoNCisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHA6DQorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbik6DQorICAgICAgICAqIGh0
bWwvSFRNTE9wdGlvbkVsZW1lbnQuaDoNCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmFjY2Vzc0tleUFj
dGlvbik6DQorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaDoNCisgICAgICAgICog
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4
dEFyZWFFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24pOg0KKyAgICAgICAgKiBodG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuaDoNCisgICAgICAgICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwOg0KKyAg
ICAgICAgKFdlYkNvcmU6OkhpZGRlbklucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAg
ICAgICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuaDoNCisgICAgICAgICogaHRtbC9JbnB1dFR5cGUu
Y3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKToNCisg
ICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDoNCisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlw
ZS5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlv
bik6DQorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuaDoNCisgICAgICAgICogc3ZnL1NW
R0VsZW1lbnQuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OmFjY2Vzc0tleUFj
dGlvbik6DQorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50Lmg6DQorDQogMjAyMC0wNC0wNiAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIE1ha2UgUmVu
ZGVyT2JqZWN0IFRleHRTdHJlYW0tbG9nZ2FibGUNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0KaW5kZXggZTg4NzUyNGZmYTEu
LmQzNmZjMTIwN2EyIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0KQEAgLTkwNSwxNSArOTA1LDEzIEBAIGJvb2wgQWNj
ZXNzaWJpbGl0eU9iamVjdDo6cHJlc3MoKQ0KICAgICANCiAgICAgVXNlckdlc3R1cmVJbmRpY2F0
b3IgZ2VzdHVyZUluZGljYXRvcihQcm9jZXNzaW5nVXNlckdlc3R1cmUsIGRvY3VtZW50KTsNCiAg
ICAgDQotICAgIGJvb2wgZGlzcGF0Y2hlZFRvdWNoRXZlbnQgPSBmYWxzZTsNCisgICAgYm9vbCBk
aXNwYXRjaGVkRXZlbnQgPSBmYWxzZTsNCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkNCiAgICAg
aWYgKGhhc1RvdWNoRXZlbnRMaXN0ZW5lcigpKQ0KLSAgICAgICAgZGlzcGF0Y2hlZFRvdWNoRXZl
bnQgPSBkaXNwYXRjaFRvdWNoRXZlbnQoKTsNCisgICAgICAgIGRpc3BhdGNoZWRFdmVudCA9IGRp
c3BhdGNoVG91Y2hFdmVudCgpOw0KICNlbmRpZg0KLSAgICBpZiAoIWRpc3BhdGNoZWRUb3VjaEV2
ZW50KQ0KLSAgICAgICAgcHJlc3NFbGVtZW50LT5hY2Nlc3NLZXlBY3Rpb24odHJ1ZSk7DQogICAg
IA0KLSAgICByZXR1cm4gdHJ1ZTsNCisgICAgcmV0dXJuIGRpc3BhdGNoZWRFdmVudCB8fCBwcmVz
c0VsZW1lbnQtPmFjY2Vzc0tleUFjdGlvbih0cnVlKSB8fCBwcmVzc0VsZW1lbnQtPmRpc3BhdGNo
U2ltdWxhdGVkQ2xpY2sobnVsbHB0ciwgU2VuZE1vdXNlVXBEb3duRXZlbnRzKTsNCiB9DQogICAg
IA0KIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6ZGlzcGF0Y2hUb3VjaEV2ZW50KCkNCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHANCmluZGV4IDdhYzRhZjEzZjNmLi4yNzhkOTg3ZDA4YSAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwDQpAQCAtNDE5LDkgKzQxOSw5IEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0
Y2hLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIHBsYXRmb3JtRXZlbnQpDQog
ICAgIHJldHVybiAhZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKSAmJiAhZXZlbnQtPmRlZmF1bHRI
YW5kbGVkKCk7DQogfQ0KIA0KLXZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayhF
dmVudCogdW5kZXJseWluZ0V2ZW50LCBTaW11bGF0ZWRDbGlja01vdXNlRXZlbnRPcHRpb25zIGV2
ZW50T3B0aW9ucywgU2ltdWxhdGVkQ2xpY2tWaXN1YWxPcHRpb25zIHZpc3VhbE9wdGlvbnMpDQor
Ym9vbCBFbGVtZW50OjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrKEV2ZW50KiB1bmRlcmx5aW5nRXZl
bnQsIFNpbXVsYXRlZENsaWNrTW91c2VFdmVudE9wdGlvbnMgZXZlbnRPcHRpb25zLCBTaW11bGF0
ZWRDbGlja1Zpc3VhbE9wdGlvbnMgdmlzdWFsT3B0aW9ucykNCiB7DQotICAgIHNpbXVsYXRlQ2xp
Y2soKnRoaXMsIHVuZGVybHlpbmdFdmVudCwgZXZlbnRPcHRpb25zLCB2aXN1YWxPcHRpb25zLCBT
aW11bGF0ZWRDbGlja1NvdXJjZTo6VXNlckFnZW50KTsNCisgICAgcmV0dXJuIHNpbXVsYXRlQ2xp
Y2soKnRoaXMsIHVuZGVybHlpbmdFdmVudCwgZXZlbnRPcHRpb25zLCB2aXN1YWxPcHRpb25zLCBT
aW11bGF0ZWRDbGlja1NvdXJjZTo6VXNlckFnZW50KTsNCiB9DQogDQogUmVmPE5vZGU+IEVsZW1l
bnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09w
ZXJhdGlvbiB0eXBlKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oDQppbmRleCA1NmI0NjdiNGIxYy4uYzljNzJm
YjZiN2YgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oDQorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oDQpAQCAtMzgxLDcgKzM4MSw3IEBAIHB1YmxpYzoN
CiAgICAgV0VCQ09SRV9FWFBPUlQgQXRvbVN0cmluZyBjb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2Uo
KSBjb25zdDsNCiAgICAgTG9jYWxlJiBsb2NhbGUoKSBjb25zdDsNCiANCi0gICAgdmlydHVhbCB2
b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIC8qc2VuZFRvQW55RXZlbnQqLykgeyB9DQorICAgIHZp
cnR1YWwgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCAvKnNlbmRUb0FueUV2ZW50Ki8pIHsgcmV0
dXJuIGZhbHNlOyB9DQogDQogICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBB
dHRyaWJ1dGUmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQ0KICAgICB2aXJ0dWFsIGJvb2wgYXR0
cmlidXRlQ29udGFpbnNVUkwoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUpIGNvbnN0IHsgcmV0
dXJuIGlzVVJMQXR0cmlidXRlKGF0dHJpYnV0ZSk7IH0NCkBAIC01MjksNyArNTI5LDcgQEAgcHVi
bGljOg0KICAgICBib29sIGRpc3BhdGNoTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZl
bnQmLCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGludCBjbGlja0NvdW50ID0gMCwgRWxl
bWVudCogcmVsYXRlZFRhcmdldCA9IG51bGxwdHIpOw0KICAgICBib29sIGRpc3BhdGNoV2hlZWxF
dmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsNCiAgICAgYm9vbCBkaXNwYXRjaEtleUV2
ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpOw0KLSAgICB2b2lkIGRpc3BhdGNoU2lt
dWxhdGVkQ2xpY2soRXZlbnQqIHVuZGVybHlpbmdFdmVudCwgU2ltdWxhdGVkQ2xpY2tNb3VzZUV2
ZW50T3B0aW9ucyA9IFNlbmROb0V2ZW50cywgU2ltdWxhdGVkQ2xpY2tWaXN1YWxPcHRpb25zID0g
U2hvd1ByZXNzZWRMb29rKTsNCisgICAgYm9vbCBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKEV2ZW50
KiB1bmRlcmx5aW5nRXZlbnQsIFNpbXVsYXRlZENsaWNrTW91c2VFdmVudE9wdGlvbnMgPSBTZW5k
Tm9FdmVudHMsIFNpbXVsYXRlZENsaWNrVmlzdWFsT3B0aW9ucyA9IFNob3dQcmVzc2VkTG9vayk7
DQogICAgIHZvaWQgZGlzcGF0Y2hGb2N1c0luRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRU
eXBlLCBSZWZQdHI8RWxlbWVudD4mJiBvbGRGb2N1c2VkRWxlbWVudCk7DQogICAgIHZvaWQgZGlz
cGF0Y2hGb2N1c091dEV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgUmVmUHRyPEVs
ZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1lbnQpOw0KICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hG
b2N1c0V2ZW50KFJlZlB0cjxFbGVtZW50PiYmIG9sZEZvY3VzZWRFbGVtZW50LCBGb2N1c0RpcmVj
dGlvbik7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHANCmluZGV4IDMzMTI0NGQ3
MGZiLi5jOWMzOGQ5NmVkMiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0
ZWRDbGljay5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAN
CkBAIC04MSwxNCArODEsMTQgQEAgc3RhdGljIHZvaWQgc2ltdWxhdGVNb3VzZUV2ZW50KGNvbnN0
IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgRWxlbWVudCYgZWxlbWVudCwgRXYNCiAgICAgZWxlbWVu
dC5kaXNwYXRjaEV2ZW50KFNpbXVsYXRlZE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsIGVs
ZW1lbnQuZG9jdW1lbnQoKS53aW5kb3dQcm94eSgpLCB1bmRlcmx5aW5nRXZlbnQsIGVsZW1lbnQs
IHNvdXJjZSkpOw0KIH0NCiANCi12b2lkIHNpbXVsYXRlQ2xpY2soRWxlbWVudCYgZWxlbWVudCwg
RXZlbnQqIHVuZGVybHlpbmdFdmVudCwgU2ltdWxhdGVkQ2xpY2tNb3VzZUV2ZW50T3B0aW9ucyBt
b3VzZUV2ZW50T3B0aW9ucywgU2ltdWxhdGVkQ2xpY2tWaXN1YWxPcHRpb25zIHZpc3VhbE9wdGlv
bnMsIFNpbXVsYXRlZENsaWNrU291cmNlIGNyZWF0aW9uT3B0aW9ucykNCitib29sIHNpbXVsYXRl
Q2xpY2soRWxlbWVudCYgZWxlbWVudCwgRXZlbnQqIHVuZGVybHlpbmdFdmVudCwgU2ltdWxhdGVk
Q2xpY2tNb3VzZUV2ZW50T3B0aW9ucyBtb3VzZUV2ZW50T3B0aW9ucywgU2ltdWxhdGVkQ2xpY2tW
aXN1YWxPcHRpb25zIHZpc3VhbE9wdGlvbnMsIFNpbXVsYXRlZENsaWNrU291cmNlIGNyZWF0aW9u
T3B0aW9ucykNCiB7DQogICAgIGlmIChlbGVtZW50LmlzRGlzYWJsZWRGb3JtQ29udHJvbCgpKQ0K
LSAgICAgICAgcmV0dXJuOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KIA0KICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxFbGVtZW50Kj4+IGVsZW1lbnRzRGlzcGF0Y2hpbmdTaW11
bGF0ZWRDbGlja3M7DQogICAgIGlmICghZWxlbWVudHNEaXNwYXRjaGluZ1NpbXVsYXRlZENsaWNr
cy5nZXQoKS5hZGQoJmVsZW1lbnQpLmlzTmV3RW50cnkpDQotICAgICAgICByZXR1cm47DQorICAg
ICAgICByZXR1cm4gZmFsc2U7DQogDQogICAgIGlmIChtb3VzZUV2ZW50T3B0aW9ucyA9PSBTZW5k
TW91c2VPdmVyVXBEb3duRXZlbnRzKQ0KICAgICAgICAgc2ltdWxhdGVNb3VzZUV2ZW50KGV2ZW50
TmFtZXMoKS5tb3VzZW92ZXJFdmVudCwgZWxlbWVudCwgdW5kZXJseWluZ0V2ZW50LCBjcmVhdGlv
bk9wdGlvbnMpOw0KQEAgLTEwMyw2ICsxMDMsNyBAQCB2b2lkIHNpbXVsYXRlQ2xpY2soRWxlbWVu
dCYgZWxlbWVudCwgRXZlbnQqIHVuZGVybHlpbmdFdmVudCwgU2ltdWxhdGVkQ2xpY2tNb3VzZQ0K
ICAgICBzaW11bGF0ZU1vdXNlRXZlbnQoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIGVsZW1lbnQs
IHVuZGVybHlpbmdFdmVudCwgY3JlYXRpb25PcHRpb25zKTsNCiANCiAgICAgZWxlbWVudHNEaXNw
YXRjaGluZ1NpbXVsYXRlZENsaWNrcy5nZXQoKS5yZW1vdmUoJmVsZW1lbnQpOw0KKyAgICByZXR1
cm4gdHJ1ZTsNCiB9DQogDQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQ0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Np
bXVsYXRlZENsaWNrLmgNCmluZGV4IGFlNmQ1ZDY4YzhjLi5lMDE0OGRmOTQ2ZSAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5oDQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2ltdWxhdGVkQ2xpY2suaA0KQEAgLTM3LDYgKzM3LDYgQEAgZW51bSBjbGFzcyBT
aW11bGF0ZWRDbGlja1NvdXJjZSB7DQogICAgIFVzZXJBZ2VudA0KIH07DQogDQotdm9pZCBzaW11
bGF0ZUNsaWNrKEVsZW1lbnQmLCBFdmVudCogdW5kZXJseWluZ0V2ZW50LCBTaW11bGF0ZWRDbGlj
a01vdXNlRXZlbnRPcHRpb25zLCBTaW11bGF0ZWRDbGlja1Zpc3VhbE9wdGlvbnMsIFNpbXVsYXRl
ZENsaWNrU291cmNlKTsNCitib29sIHNpbXVsYXRlQ2xpY2soRWxlbWVudCYsIEV2ZW50KiB1bmRl
cmx5aW5nRXZlbnQsIFNpbXVsYXRlZENsaWNrTW91c2VFdmVudE9wdGlvbnMsIFNpbXVsYXRlZENs
aWNrVmlzdWFsT3B0aW9ucywgU2ltdWxhdGVkQ2xpY2tTb3VyY2UpOw0KIA0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2Fi
bGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRU
eXBlLmNwcA0KaW5kZXggZWI5NzQ0YmUyNWYuLmViYjdkMmE4YjAwIDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcA0KKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcA0KQEAgLTkxLDEyICs5MSwx
MCBAQCBib29sIEJhc2VDaGVja2FibGVJbnB1dFR5cGU6OmNhblNldFN0cmluZ1ZhbHVlKCkgY29u
c3QNCiB9DQogDQogLy8gRklYTUU6IENvdWxkIHNoYXJlIHRoaXMgd2l0aCBCYXNlQ2xpY2thYmxl
V2l0aEtleUlucHV0VHlwZSBhbmQgUmFuZ2VJbnB1dFR5cGUgaWYgd2UgaGFkIGEgY29tbW9uIGJh
c2UgY2xhc3MuDQotdm9pZCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24o
Ym9vbCBzZW5kTW91c2VFdmVudHMpDQorYm9vbCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjphY2Nl
c3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQogew0KLSAgICBJbnB1dFR5cGU6OmFj
Y2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVudHMpOw0KLQ0KICAgICBBU1NFUlQoZWxlbWVudCgp
KTsNCi0gICAgZWxlbWVudCgpLT5kaXNwYXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2
ZW50cyA/IFNlbmRNb3VzZVVwRG93bkV2ZW50cyA6IFNlbmROb0V2ZW50cyk7DQorICAgIHJldHVy
biBJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVudHMpIHx8IGVsZW1lbnQo
KS0+ZGlzcGF0Y2hTaW11bGF0ZWRDbGljaygwLCBzZW5kTW91c2VFdmVudHMgPyBTZW5kTW91c2VV
cERvd25FdmVudHMgOiBTZW5kTm9FdmVudHMpOw0KIH0NCiANCiBTdHJpbmcgQmFzZUNoZWNrYWJs
ZUlucHV0VHlwZTo6ZmFsbGJhY2tWYWx1ZSgpIGNvbnN0DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaA0KaW5kZXggNTYyYmI5ZGRlZGUuLjkyMWJiODg1YTI0
IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBl
LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oDQpA
QCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOg0KICAgICBib29sIGFwcGVuZEZvcm1EYXRhKERPTUZv
cm1EYXRhJiwgYm9vbCkgY29uc3Qgb3ZlcnJpZGU7DQogICAgIHZvaWQgaGFuZGxlS2V5cHJlc3NF
dmVudChLZXlib2FyZEV2ZW50Jikgb3ZlcnJpZGU7DQogICAgIGJvb2wgY2FuU2V0U3RyaW5nVmFs
dWUoKSBjb25zdCBvdmVycmlkZTsNCi0gICAgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5k
TW91c2VFdmVudHMpIG92ZXJyaWRlOw0KKyAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29sIHNl
bmRNb3VzZUV2ZW50cykgb3ZlcnJpZGU7DQogICAgIFN0cmluZyBmYWxsYmFja1ZhbHVlKCkgY29u
c3Qgb3ZlcnJpZGU7DQogICAgIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUo
KSBvdmVycmlkZTsNCiAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBUZXh0
RmllbGRFdmVudEJlaGF2aW9yKSBvdmVycmlkZTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwDQppbmRl
eCBhYjQxOTc2ZDMyZi4uN2IxMDYxZmUxYTEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcA0KKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHANCkBA
IC0xMzAsMTEgKzEzMCwxMSBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlOjpoYW5kbGVLZXl1cEV2ZW50KEtleWJvYXJkRXZlbnQmIGV2ZW50KQ0KICAgICBCYXNlQ2xp
Y2thYmxlV2l0aEtleUlucHV0VHlwZTo6aGFuZGxlS2V5dXBFdmVudCgqdGhpcywgZXZlbnQpOw0K
IH0NCiANCi12b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjphY2Nlc3NL
ZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQorYm9vbCBCYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0K
IHsNCiAgICAgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oc2VuZE1v
dXNlRXZlbnRzKTsNCiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7DQotICAgIEJhc2VDbGlja2FibGVX
aXRoS2V5SW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oKmVsZW1lbnQoKSwgc2VuZE1vdXNlRXZl
bnRzKTsNCisgICAgcmV0dXJuIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlOjphY2Nlc3NL
ZXlBY3Rpb24oKmVsZW1lbnQoKSwgc2VuZE1vdXNlRXZlbnRzKTsNCiB9DQogDQogYm9vbCBCYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6aXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0
DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5k
VGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZS5oDQppbmRleCA0NTFkNTBjNmQyMi4uYTNmMWNmNWE1YjIgMTAwNjQ0
DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5w
dXRUeXBlLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuaA0KQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToNCiAgICAgU2hvdWxk
Q2FsbEJhc2VFdmVudEhhbmRsZXIgaGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQmKSBv
dmVycmlkZTsNCiAgICAgdm9pZCBoYW5kbGVLZXlwcmVzc0V2ZW50KEtleWJvYXJkRXZlbnQmKSBv
dmVycmlkZTsNCiAgICAgdm9pZCBoYW5kbGVLZXl1cEV2ZW50KEtleWJvYXJkRXZlbnQmKSBvdmVy
cmlkZTsNCi0gICAgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIG92
ZXJyaWRlOw0KKyAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykg
b3ZlcnJpZGU7DQogICAgIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0IG92ZXJyaWRlOw0K
ICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRl
Ow0KIA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhL
ZXlJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxlV2l0aEtl
eUlucHV0VHlwZS5jcHANCmluZGV4IDM1NTk3MjQ1NTQ0Li42YTFjMzA2MjQ0MyAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuY3Bw
DQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBl
LmNwcA0KQEAgLTc1LDkgKzc1LDEwIEBAIHZvaWQgQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5
cGU6OmhhbmRsZUtleXVwRXZlbnQoSW5wdXRUeXBlJiBpbnB1dFR5cGUsIEtleWJvDQogfQ0KIA0K
IC8vIEZJWE1FOiBDb3VsZCBzaGFyZSB0aGlzIHdpdGggQmFzZUNoZWNrYWJsZUlucHV0VHlwZSBh
bmQgUmFuZ2VJbnB1dFR5cGUgaWYgd2UgaGFkIGEgY29tbW9uIGJhc2UgY2xhc3MuDQotdm9pZCBC
YXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKEhUTUxJbnB1dEVs
ZW1lbnQmIGVsZW1lbnQsIGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KK2Jvb2wgQmFzZUNsaWNrYWJs
ZVdpdGhLZXlJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihIVE1MSW5wdXRFbGVtZW50JiBlbGVt
ZW50LCBib29sIHNlbmRNb3VzZUV2ZW50cykNCiB7DQogICAgIGVsZW1lbnQuZGlzcGF0Y2hTaW11
bGF0ZWRDbGljaygwLCBzZW5kTW91c2VFdmVudHMgPyBTZW5kTW91c2VVcERvd25FdmVudHMgOiBT
ZW5kTm9FdmVudHMpOw0KKyAgICByZXR1cm4gdHJ1ZTsNCiB9DQogDQogYXV0byBCYXNlQ2xpY2th
YmxlV2l0aEtleUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQmIGV2
ZW50KSAtPiBTaG91bGRDYWxsQmFzZUV2ZW50SGFuZGxlcg0KQEAgLTk3LDExICs5OCwxMSBAQCB2
b2lkIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlOjpoYW5kbGVLZXl1cEV2ZW50KEtleWJv
YXJkRXZlbnQmIGV2ZW50KQ0KICAgICBoYW5kbGVLZXl1cEV2ZW50KCp0aGlzLCBldmVudCk7DQog
fQ0KIA0KLXZvaWQgQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlv
bihib29sIHNlbmRNb3VzZUV2ZW50cykNCitib29sIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRU
eXBlOjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQogew0KICAgICBJbnB1
dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVudHMpOw0KICAgICBBU1NFUlQoZWxl
bWVudCgpKTsNCi0gICAgYWNjZXNzS2V5QWN0aW9uKCplbGVtZW50KCksIHNlbmRNb3VzZUV2ZW50
cyk7DQorICAgIHJldHVybiBhY2Nlc3NLZXlBY3Rpb24oKmVsZW1lbnQoKSwgc2VuZE1vdXNlRXZl
bnRzKTsNCiB9DQogDQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQ0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaA0KaW5kZXggOGI2YzU5
MjgwYzYuLmZlODcxM2NiYTcwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmgNCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoN
CiAgICAgc3RhdGljIFNob3VsZENhbGxCYXNlRXZlbnRIYW5kbGVyIGhhbmRsZUtleWRvd25FdmVu
dChIVE1MSW5wdXRFbGVtZW50JiwgS2V5Ym9hcmRFdmVudCYpOw0KICAgICBzdGF0aWMgdm9pZCBo
YW5kbGVLZXlwcmVzc0V2ZW50KEhUTUxJbnB1dEVsZW1lbnQmLCBLZXlib2FyZEV2ZW50Jik7DQog
ICAgIHN0YXRpYyB2b2lkIGhhbmRsZUtleXVwRXZlbnQoSW5wdXRUeXBlJiwgS2V5Ym9hcmRFdmVu
dCYpOw0KLSAgICBzdGF0aWMgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oSFRNTElucHV0RWxlbWVudCYs
IGJvb2wgc2VuZE1vdXNlRXZlbnRzKTsNCisgICAgc3RhdGljIGJvb2wgYWNjZXNzS2V5QWN0aW9u
KEhUTUxJbnB1dEVsZW1lbnQmLCBib29sIHNlbmRNb3VzZUV2ZW50cyk7DQogICAgIA0KIHByb3Rl
Y3RlZDoNCiAgICAgZXhwbGljaXQgQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoSFRNTElu
cHV0RWxlbWVudCYgZWxlbWVudCkgOiBJbnB1dFR5cGUoZWxlbWVudCkgeyB9DQpAQCAtNDksNyAr
NDksNyBAQCBwcml2YXRlOg0KICAgICBTaG91bGRDYWxsQmFzZUV2ZW50SGFuZGxlciBoYW5kbGVL
ZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCYpIG92ZXJyaWRlOw0KICAgICB2b2lkIGhhbmRsZUtl
eXByZXNzRXZlbnQoS2V5Ym9hcmRFdmVudCYpIG92ZXJyaWRlOw0KICAgICB2b2lkIGhhbmRsZUtl
eXVwRXZlbnQoS2V5Ym9hcmRFdmVudCYpIG92ZXJyaWRlOw0KLSAgICB2b2lkIGFjY2Vzc0tleUFj
dGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgb3ZlcnJpZGU7DQorICAgIGJvb2wgYWNjZXNzS2V5
QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBvdmVycmlkZTsNCiB9Ow0KIA0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
DQppbmRleCBlZWRlNDRmZjc3Ni4uODhlZWMzNjE4ZGEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5jcHANCkBAIC0yNzQsOSArMjc0LDEwIEBAIHZvaWQgSFRNTEFu
Y2hvckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpDQogICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpOw0KIH0NCiANCi12b2lkIEhUTUxBbmNob3JFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24o
Ym9vbCBzZW5kTW91c2VFdmVudHMpDQorYm9vbCBIVE1MQW5jaG9yRWxlbWVudDo6YWNjZXNzS2V5
QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KIHsNCiAgICAgZGlzcGF0Y2hTaW11bGF0ZWRD
bGljaygwLCBzZW5kTW91c2VFdmVudHMgPyBTZW5kTW91c2VVcERvd25FdmVudHMgOiBTZW5kTm9F
dmVudHMpOw0KKyAgICByZXR1cm4gdHJ1ZTsNCiB9DQogDQogYm9vbCBIVE1MQW5jaG9yRWxlbWVu
dDo6aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUpIGNvbnN0DQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oDQppbmRleCBlMWQ5M2IxMTQ3ZC4uNTA5
NzZiYmVmYjMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaA0KQEAg
LTg4LDcgKzg4LDcgQEAgcHJpdmF0ZToNCiAgICAgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtl
eWJvYXJkRXZlbnQqKSBjb25zdCBvdmVycmlkZTsNCiAgICAgdm9pZCBkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50JikgZmluYWw7DQogICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wgYWN0aXZlID0gdHJ1
ZSwgYm9vbCBwYXVzZSA9IGZhbHNlKSBmaW5hbDsNCi0gICAgdm9pZCBhY2Nlc3NLZXlBY3Rpb24o
Ym9vbCBzZW5kTW91c2VFdmVudHMpIGZpbmFsOw0KKyAgICBib29sIGFjY2Vzc0tleUFjdGlvbihi
b29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7DQogICAgIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29u
c3QgQXR0cmlidXRlJikgY29uc3QgZmluYWw7DQogICAgIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24o
KSBjb25zdCBmaW5hbDsNCiAgICAgU3RyaW5nIHRhcmdldCgpIGNvbnN0IG92ZXJyaWRlOw0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHANCmluZGV4IDM0YzE2OGYxYzRj
Li42OTNkMDk2MjBkYyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRv
bkVsZW1lbnQuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50
LmNwcA0KQEAgLTIxMSwxMSArMjExLDEyIEBAIGJvb2wgSFRNTEJ1dHRvbkVsZW1lbnQ6OmFwcGVu
ZEZvcm1EYXRhKERPTUZvcm1EYXRhJiBmb3JtRGF0YSwgYm9vbCkNCiAgICAgcmV0dXJuIHRydWU7
DQogfQ0KIA0KLXZvaWQgSFRNTEJ1dHRvbkVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNl
bmRNb3VzZUV2ZW50cykNCitib29sIEhUTUxCdXR0b25FbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24o
Ym9vbCBzZW5kTW91c2VFdmVudHMpDQogew0KICAgICBmb2N1cygpOw0KIA0KICAgICBkaXNwYXRj
aFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyA/IFNlbmRNb3VzZVVwRG93bkV2ZW50
cyA6IFNlbmROb0V2ZW50cyk7DQorICAgIHJldHVybiB0cnVlOw0KIH0NCiANCiBib29sIEhUTUxC
dXR0b25FbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkg
Y29uc3QNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmgNCmluZGV4IGNjNjM2
NWIyZTE0Li5kZmNkNzQzMzBlZiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJ1dHRvbkVsZW1lbnQuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxl
bWVudC5oDQpAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOg0KICAgICBib29sIGlzQWN0aXZhdGVk
U3VibWl0KCkgY29uc3QgZmluYWw7DQogICAgIHZvaWQgc2V0QWN0aXZhdGVkU3VibWl0KGJvb2wg
ZmxhZykgZmluYWw7DQogDQotICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNl
RXZlbnRzKSBmaW5hbDsNCisgICAgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VF
dmVudHMpIGZpbmFsOw0KICAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYp
IGNvbnN0IGZpbmFsOw0KIA0KICAgICBib29sIGNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gZmFsc2U7IH0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwDQppbmRl
eCAzMmVkNGFkMzFiZC4uMzJlMjQ5YzBhYjIgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5jcHANCkBAIC03MDUsOSArNzA1LDEwIEBAIHZvaWQgSFRNTEVsZW1lbnQ6OmNsaWNrKCkNCiAg
ICAgc2ltdWxhdGVDbGljaygqdGhpcywgbnVsbHB0ciwgU2VuZE5vRXZlbnRzLCBEb05vdFNob3dQ
cmVzc2VkTG9vaywgU2ltdWxhdGVkQ2xpY2tTb3VyY2U6OkJpbmRpbmdzKTsNCiB9DQogDQotdm9p
ZCBIVE1MRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KK2Jv
b2wgSFRNTEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykNCiB7
DQogICAgIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2sobnVsbHB0ciwgc2VuZE1vdXNlRXZlbnRzID8g
U2VuZE1vdXNlVXBEb3duRXZlbnRzIDogU2VuZE5vRXZlbnRzKTsNCisgICAgcmV0dXJuIHRydWU7
DQogfQ0KIA0KIFN0cmluZyBIVE1MRWxlbWVudDo6dGl0bGUoKSBjb25zdA0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuaA0KaW5kZXggN2UwNzRlYjYxMjguLjM2MmNmYTRjN2MwIDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oDQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmgNCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoNCiANCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBjbGljaygpOw0KIA0KLSAgICB2b2lkIGFjY2Vzc0tleUFjdGlv
bihib29sIHNlbmRNb3VzZUV2ZW50cykgb3ZlcnJpZGU7DQorICAgIGJvb2wgYWNjZXNzS2V5QWN0
aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBvdmVycmlkZTsNCiANCiAgICAgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsNCiAgICAgYm9vbCByZW5kZXJlcklzRXZlck5l
ZWRlZCgpIGZpbmFsOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwDQpp
bmRleCBiNGEyMDMzZTUxNi4uNTAyZjcwMjUyNWQgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwDQpAQCAtNjY2LDEwICs2NjYsMTAgQEAgYm9vbCBIVE1MSW5wdXRF
bGVtZW50OjpjYW5IYXZlU2VsZWN0aW9uKCkgY29uc3QNCiAgICAgcmV0dXJuIGlzVGV4dEZpZWxk
KCk7DQogfQ0KIA0KLXZvaWQgSFRNTElucHV0RWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wg
c2VuZE1vdXNlRXZlbnRzKQ0KK2Jvb2wgSFRNTElucHV0RWxlbWVudDo6YWNjZXNzS2V5QWN0aW9u
KGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KIHsNCiAgICAgUmVmPElucHV0VHlwZT4gcHJvdGVjdGVk
SW5wdXRUeXBlKCptX2lucHV0VHlwZSk7DQotICAgIHByb3RlY3RlZElucHV0VHlwZS0+YWNjZXNz
S2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cyk7DQorICAgIHJldHVybiBwcm90ZWN0ZWRJbnB1dFR5
cGUtPmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVudHMpOw0KIH0NCiANCiBib29sIEhUTUxJ
bnB1dEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUpIGNvbnN0DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaA0KaW5kZXgg
ZGZjM2Y5MGIwNDUuLjcxNTdhNzZmZTMxIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oDQpAQCAtMzkxLDcgKzM5MSw3IEBAIHByaXZhdGU6DQogDQogICAgIGJvb2wgY2Fu
U3RhcnRTZWxlY3Rpb24oKSBjb25zdCBmaW5hbDsNCiANCi0gICAgdm9pZCBhY2Nlc3NLZXlBY3Rp
b24oYm9vbCBzZW5kTW91c2VFdmVudHMpIGZpbmFsOw0KKyAgICBib29sIGFjY2Vzc0tleUFjdGlv
bihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7DQogDQogICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsNCiAgICAg
Ym9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qg
ZmluYWw7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHANCmluZGV4IDUx
MmM1ZDEyNjUxLi4zN2Y5Y2E1NmU4MCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTExhYmVsRWxlbWVudC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVs
RWxlbWVudC5jcHANCkBAIC0xODksMTIgKzE4OSwxMiBAQCB2b2lkIEhUTUxMYWJlbEVsZW1lbnQ6
OmZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbiBkaXJl
Yw0KICAgICAgICAgZWxlbWVudC0+Zm9jdXModHJ1ZSwgZGlyZWN0aW9uKTsNCiB9DQogDQotdm9p
ZCBIVE1MTGFiZWxFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMp
DQorYm9vbCBIVE1MTGFiZWxFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VF
dmVudHMpDQogew0KICAgICBpZiAoYXV0byBlbGVtZW50ID0gY29udHJvbCgpKQ0KLSAgICAgICAg
ZWxlbWVudC0+YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cyk7DQotICAgIGVsc2UNCi0g
ICAgICAgIEhUTUxFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsNCisg
ICAgICAgIHJldHVybiBlbGVtZW50LT5hY2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsN
CisNCisgICAgcmV0dXJuIEhUTUxFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZl
bnRzKTsNCiB9DQogDQogfSAvLyBuYW1lc3BhY2UNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVs
RWxlbWVudC5oDQppbmRleCBhNjA3ZGY2Y2M0My4uNDY2MGYwNjc3NzMgMTAwNjQ0DQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaA0KKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgNCkBAIC00Miw3ICs0Miw3IEBAIHByaXZhdGU6DQog
DQogICAgIGJvb2wgaXNFdmVudFRhcmdldGVkQXRJbnRlcmFjdGl2ZURlc2NlbmRhbnRzKEV2ZW50
JikgY29uc3Q7DQogDQotICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZl
bnRzKSBmaW5hbDsNCisgICAgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVu
dHMpIGZpbmFsOw0KIA0KICAgICAvLyBPdmVycmlkZGVuIHRvIHVwZGF0ZSB0aGUgaG92ZXIvYWN0
aXZlIHN0YXRlIG9mIHRoZSBjb3JyZXNwb25kaW5nIGNvbnRyb2wuDQogICAgIHZvaWQgc2V0QWN0
aXZlKGJvb2wgPSB0cnVlLCBib29sIHBhdXNlID0gZmFsc2UpIGZpbmFsOw0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5jcHANCmluZGV4IDA1NGVmMTI3ZmMyLi5hMWU1N2Nm
ZTRkMCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQu
Y3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcA0KQEAg
LTcyLDEwICs3MiwxMSBAQCB2b2lkIEhUTUxMZWdlbmRFbGVtZW50Ojpmb2N1cyhib29sIHJlc3Rv
cmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24gZGlyZQ0KICAgICAgICAgY29udHJv
bC0+Zm9jdXMoZmFsc2UsIGRpcmVjdGlvbik7DQogfQ0KIA0KLXZvaWQgSFRNTExlZ2VuZEVsZW1l
bnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykNCitib29sIEhUTUxMZWdl
bmRFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQogew0KICAg
ICBpZiAoYXV0byBjb250cm9sID0gYXNzb2NpYXRlZENvbnRyb2woKSkNCi0gICAgICAgIGNvbnRy
b2wtPmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVudHMpOw0KKyAgICAgICAgcmV0dXJuIGNv
bnRyb2wtPmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVudHMpOw0KKyAgICByZXR1cm4gZmFs
c2U7DQogfQ0KIA0KIEhUTUxGb3JtRWxlbWVudCogSFRNTExlZ2VuZEVsZW1lbnQ6OmZvcm0oKSBj
b25zdA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaA0KaW5kZXggMTBmZTA0
NTRiMTIuLjJkZjYyMjk3MWYxIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TGVnZW5kRWxlbWVudC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVt
ZW50LmgNCkBAIC00Miw3ICs0Miw3IEBAIHByaXZhdGU6DQogICAgIC8vIENvbnRyb2wgaW4gdGhl
IGxlZ2VuZCdzIGZpZWxkIHNldCB0aGF0IGdldHMgZm9jdXMgYW5kIGFjY2VzcyBrZXkuDQogICAg
IFJlZlB0cjxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PiBhc3NvY2lhdGVkQ29udHJvbCgpOw0KIA0K
LSAgICB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7DQor
ICAgIGJvb2wgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsNCiAg
ICAgdm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rp
b24pIGZpbmFsOw0KIH07DQogDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T3B0R3JvdXBFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxl
bWVudC5jcHANCmluZGV4IDY3NjhmZTEyYTFlLi45ZmU5ZTE0YjU2NSAxMDA2NDQNCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHANCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHANCkBAIC0xMTIsMTIgKzExMiwxMyBA
QCBIVE1MU2VsZWN0RWxlbWVudCogSFRNTE9wdEdyb3VwRWxlbWVudDo6b3duZXJTZWxlY3RFbGVt
ZW50KCkgY29uc3QNCiAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQqPihh
bmNlc3RvcnNPZlR5cGU8SFRNTFNlbGVjdEVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpKTsNCiB9DQog
DQotdm9pZCBIVE1MT3B0R3JvdXBFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCkNCitib29s
IEhUTUxPcHRHcm91cEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sKQ0KIHsNCiAgICAgUmVm
UHRyPEhUTUxTZWxlY3RFbGVtZW50PiBzZWxlY3QgPSBvd25lclNlbGVjdEVsZW1lbnQoKTsNCiAg
ICAgLy8gc2VuZCB0byB0aGUgcGFyZW50IHRvIGJyaW5nIGZvY3VzIHRvIHRoZSBsaXN0IGJveA0K
ICAgICBpZiAoc2VsZWN0ICYmICFzZWxlY3QtPmZvY3VzZWQoKSkNCi0gICAgICAgIHNlbGVjdC0+
YWNjZXNzS2V5QWN0aW9uKGZhbHNlKTsNCisgICAgICAgIHJldHVybiBzZWxlY3QtPmFjY2Vzc0tl
eUFjdGlvbihmYWxzZSk7DQorICAgIHJldHVybiBmYWxzZTsNCiB9DQogDQogfSAvLyBuYW1lc3Bh
Y2UNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oDQppbmRleCBhMjMz
YjM1MDRkYS4uMzczZDU1M2VlMDcgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPcHRHcm91cEVsZW1lbnQuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3Jv
dXBFbGVtZW50LmgNCkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6DQogDQogICAgIHZvaWQgY2hp
bGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7DQogDQotICAgIHZvaWQgYWNj
ZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsNCisgICAgYm9vbCBhY2Nl
c3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIGZpbmFsOw0KIA0KICAgICB2b2lkIHJl
Y2FsY1NlbGVjdE9wdGlvbnMoKTsNCiB9Ow0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9u
RWxlbWVudC5jcHANCmluZGV4IDRkOWYyMzFmMGY1Li42ZWRlOTdmODBiZCAxMDA2NDQNCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwDQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcA0KQEAgLTEzNSwxMSArMTM1LDE0IEBA
IHZvaWQgSFRNTE9wdGlvbkVsZW1lbnQ6OnNldFRleHQoY29uc3QgU3RyaW5nICZ0ZXh0KQ0KICAg
ICAgICAgc2VsZWN0LT5zZXRTZWxlY3RlZEluZGV4KG9sZFNlbGVjdGVkSW5kZXgpOw0KIH0NCiAN
Ci12b2lkIEhUTUxPcHRpb25FbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCkNCitib29sIEhU
TUxPcHRpb25FbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCkNCiB7DQogICAgIFJlZlB0cjxI
VE1MU2VsZWN0RWxlbWVudD4gc2VsZWN0ID0gb3duZXJTZWxlY3RFbGVtZW50KCk7DQotICAgIGlm
IChzZWxlY3QpDQorICAgIGlmIChzZWxlY3QpIHsNCiAgICAgICAgIHNlbGVjdC0+YWNjZXNzS2V5
U2V0U2VsZWN0ZWRJbmRleChpbmRleCgpKTsNCisgICAgICAgIHJldHVybiB0cnVlOw0KKyAgICB9
DQorICAgIHJldHVybiBmYWxzZTsNCiB9DQogDQogaW50IEhUTUxPcHRpb25FbGVtZW50OjppbmRl
eCgpIGNvbnN0DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oDQppbmRleCA5
MWM1YWJjN2UwMS4uNzg1YTdjZGZlOGMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25FbGVtZW50LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlv
bkVsZW1lbnQuaA0KQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToNCiAgICAgdm9pZCBwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOw0K
IA0KICAgICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3RvcihJ
bnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7DQotICAgIHZvaWQgYWNjZXNzS2V5
QWN0aW9uKGJvb2wpIGZpbmFsOw0KKyAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29sKSBmaW5h
bDsNCiANCiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBmaW5h
bDsNCiANCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwDQppbmRleCA4
MjY1MTkyYTQyNi4uODUwNTY2NDYyMzUgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTZWxlY3RFbGVtZW50LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5jcHANCkBAIC0zOTAsMTAgKzM5MCwxMSBAQCB2b2lkIEhUTUxTZWxlY3RFbGVt
ZW50OjpvcHRpb25FbGVtZW50Q2hpbGRyZW5DaGFuZ2VkKCkNCiAgICAgICAgIGNhY2hlLT5jaGls
ZHJlbkNoYW5nZWQodGhpcyk7DQogfQ0KIA0KLXZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmFjY2Vz
c0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykNCitib29sIEhUTUxTZWxlY3RFbGVtZW50
OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQogew0KICAgICBmb2N1cygp
Ow0KICAgICBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyA/IFNlbmRN
b3VzZVVwRG93bkV2ZW50cyA6IFNlbmROb0V2ZW50cyk7DQorICAgIHJldHVybiB0cnVlOw0KIH0N
CiANCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRNdWx0aXBsZShib29sIG11bHRpcGxlKQ0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaA0KaW5kZXggNzZiZWRlZDFjMWUu
LjI3MmYxYzQwNDgzIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgN
CkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoNCiANCiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3Qg
VmVjdG9yPEhUTUxFbGVtZW50Kj4mIGxpc3RJdGVtcygpIGNvbnN0Ow0KIA0KLSAgICB2b2lkIGFj
Y2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7DQorICAgIGJvb2wgYWNj
ZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsNCiAgICAgdm9pZCBhY2Nl
c3NLZXlTZXRTZWxlY3RlZEluZGV4KGludCk7DQogDQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0TXVsdGlwbGUoYm9vbCk7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5jcHANCmluZGV4IDVjMjk3Y2E2ZjZhLi5lZTMxMGQwMGMyYSAxMDA2NDQNCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHANCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHANCkBAIC01MDAsOSArNTAwLDEwIEBA
IGJvb2wgSFRNTFRleHRBcmVhRWxlbWVudDo6aXNWYWxpZFZhbHVlKGNvbnN0IFN0cmluZyYgY2Fu
ZGlkYXRlKSBjb25zdA0KICAgICByZXR1cm4gIXZhbHVlTWlzc2luZyhjYW5kaWRhdGUpICYmICF0
b29TaG9ydChjYW5kaWRhdGUsIElnbm9yZURpcnR5RmxhZykgJiYgIXRvb0xvbmcoY2FuZGlkYXRl
LCBJZ25vcmVEaXJ0eUZsYWcpOw0KIH0NCiANCi12b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmFj
Y2Vzc0tleUFjdGlvbihib29sKQ0KK2Jvb2wgSFRNTFRleHRBcmVhRWxlbWVudDo6YWNjZXNzS2V5
QWN0aW9uKGJvb2wpDQogew0KICAgICBmb2N1cygpOw0KKyAgICByZXR1cm4gZmFsc2U7DQogfQ0K
IA0KIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2V0Q29scyh1bnNpZ25lZCBjb2xzKQ0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgNCmluZGV4IDVlOTY4MjM3NmMy
Li5kZDEwN2MzODk1MyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1l
bnQuaA0KQEAgLTEyMCw3ICsxMjAsNyBAQCBwcml2YXRlOg0KICAgICBib29sIGlzS2V5Ym9hcmRG
b2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0IGZpbmFsOw0KICAgICB2b2lkIHVwZGF0ZUZv
Y3VzQXBwZWFyYW5jZShTZWxlY3Rpb25SZXN0b3JhdGlvbk1vZGUsIFNlbGVjdGlvblJldmVhbE1v
ZGUpIGZpbmFsOw0KIA0KLSAgICB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2
ZW50cykgZmluYWw7DQorICAgIGJvb2wgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZl
bnRzKSBmaW5hbDsNCiANCiAgICAgYm9vbCBzaG91bGRVc2VJbnB1dE1ldGhvZCgpIGZpbmFsOw0K
ICAgICBib29sIG1hdGNoZXNSZWFkV3JpdGVQc2V1ZG9DbGFzcygpIGNvbnN0IGZpbmFsOw0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcA0KaW5kZXggMTRiNjNiZjVmZGIuLjZh
ZjliYzcyM2IwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5
cGUuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHANCkBA
IC03Myw4ICs3Myw5IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIaWRkZW5JbnB1dFR5cGU6
OmNyZWF0ZUlucHV0UmVuZGVyZXIoUmVuZGVyU3R5bGUmJikNCiAgICAgcmV0dXJuIG51bGxwdHI7
DQogfQ0KIA0KLXZvaWQgSGlkZGVuSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oYm9vbCkNCiti
b29sIEhpZGRlbklucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKGJvb2wpDQogew0KKyAgICByZXR1
cm4gZmFsc2U7DQogfQ0KIA0KIGJvb2wgSGlkZGVuSW5wdXRUeXBlOjpyZW5kZXJlcklzTmVlZGVk
KCkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaA0KaW5kZXggMDhjZTRhODZmMGUu
LjY4M2M2YmQ3NWEyIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1
dFR5cGUuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaA0KQEAg
LTQ0LDcgKzQ0LDcgQEAgcHJpdmF0ZToNCiAgICAgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0
ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJikgb3ZlcnJpZGU7DQogICAgIGJvb2wgc3VwcG9ydHNW
YWxpZGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7DQogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYpIG92ZXJyaWRlOw0KLSAgICB2b2lk
IGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgb3ZlcnJpZGU7DQorICAgIGJv
b2wgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBvdmVycmlkZTsNCiAgICAg
Ym9vbCByZW5kZXJlcklzTmVlZGVkKCkgb3ZlcnJpZGU7DQogICAgIGJvb2wgc3RvcmVzVmFsdWVT
ZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKSBvdmVycmlkZTsNCiAgICAgYm9vbCBpc0hpZGRlblR5cGUo
KSBjb25zdCBvdmVycmlkZTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHANCmluZGV4IDEwYzgx
Y2M1MjBmLi4zMDczNWNjMTk3MSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRUeXBlLmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwDQpAQCAt
NTkyLDEwICs1OTIsMTEgQEAgdm9pZCBJbnB1dFR5cGU6OmhhbmRsZUJsdXJFdmVudCgpDQogew0K
IH0NCiANCi12b2lkIElucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKGJvb2wpDQorYm9vbCBJbnB1
dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihib29sKQ0KIHsNCiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7
DQogICAgIGVsZW1lbnQoKS0+Zm9jdXMoZmFsc2UpOw0KKyAgICByZXR1cm4gZmFsc2U7DQogfQ0K
IA0KIHZvaWQgSW5wdXRUeXBlOjphZGRTZWFyY2hSZXN1bHQoKQ0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlw
ZS5oDQppbmRleCAxMjhhOGVlNzRmYy4uZTZkNGJhM2I0ZjEgMTAwNjQ0DQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0
VHlwZS5oDQpAQCAtMjA1LDcgKzIwNSw3IEBAIHB1YmxpYzoNCiAgICAgdmlydHVhbCBib29sIHNo
b3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3Q7DQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVGb2N1
c0V2ZW50KE5vZGUqIG9sZEZvY3VzZWROb2RlLCBGb2N1c0RpcmVjdGlvbik7DQogICAgIHZpcnR1
YWwgdm9pZCBoYW5kbGVCbHVyRXZlbnQoKTsNCi0gICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFj
dGlvbihib29sIHNlbmRNb3VzZUV2ZW50cyk7DQorICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NLZXlB
Y3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpOw0KICAgICB2aXJ0dWFsIGJvb2wgY2FuQmVTdWNj
ZXNzZnVsU3VibWl0QnV0dG9uKCk7DQogICAgIHZpcnR1YWwgdm9pZCBzdWJ0cmVlSGFzQ2hhbmdl
ZCgpOw0KICAgICB2aXJ0dWFsIHZvaWQgYmx1cigpOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlu
cHV0VHlwZS5jcHANCmluZGV4IGJjNjQ5ZGYyMzQ2Li5lYjc4YzgxYTgxOSAxMDA2NDQNCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwDQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcA0KQEAgLTMxNSwxMiArMzE1LDEwIEBAIFN0cmlu
ZyBSYW5nZUlucHV0VHlwZTo6c2VyaWFsaXplKGNvbnN0IERlY2ltYWwmIHZhbHVlKSBjb25zdA0K
IH0NCiANCiAvLyBGSVhNRTogQ291bGQgc2hhcmUgdGhpcyB3aXRoIEJhc2VDbGlja2FibGVXaXRo
S2V5SW5wdXRUeXBlIGFuZCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlIGlmIHdlIGhhZCBhIGNvbW1v
biBiYXNlIGNsYXNzLg0KLXZvaWQgUmFuZ2VJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihib29s
IHNlbmRNb3VzZUV2ZW50cykNCitib29sIFJhbmdlSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24o
Ym9vbCBzZW5kTW91c2VFdmVudHMpDQogew0KLSAgICBJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlv
bihzZW5kTW91c2VFdmVudHMpOw0KLQ0KLSAgICBpZiAoYXV0byogZWxlbWVudCA9IHRoaXMtPmVs
ZW1lbnQoKSkNCi0gICAgICAgIGVsZW1lbnQtPmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwgc2Vu
ZE1vdXNlRXZlbnRzID8gU2VuZE1vdXNlVXBEb3duRXZlbnRzIDogU2VuZE5vRXZlbnRzKTsNCisg
ICAgYXV0byogZWxlbWVudCA9IHRoaXMtPmVsZW1lbnQoKTsNCisgICAgcmV0dXJuIElucHV0VHlw
ZTo6YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cykgfHwgKGVsZW1lbnQgJiYgZWxlbWVu
dC0+ZGlzcGF0Y2hTaW11bGF0ZWRDbGljaygwLCBzZW5kTW91c2VFdmVudHMgPyBTZW5kTW91c2VV
cERvd25FdmVudHMgOiBTZW5kTm9FdmVudHMpKTsNCiB9DQogDQogdm9pZCBSYW5nZUlucHV0VHlw
ZTo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKQ0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFuZ2VJbnB1dFR5cGUuaA0KaW5kZXggNDMyN2M5NDhhYzkuLmM5NjI3YjMyZTQ1IDEw
MDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oDQorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgNCkBAIC01Niw3ICs1Niw3IEBAIHBy
aXZhdGU6DQogICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIGZpbmFsOw0KICAgICBEZWNp
bWFsIHBhcnNlVG9OdW1iZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgRGVjaW1hbCYpIGNvbnN0IGZp
bmFsOw0KICAgICBTdHJpbmcgc2VyaWFsaXplKGNvbnN0IERlY2ltYWwmKSBjb25zdCBmaW5hbDsN
Ci0gICAgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIGZpbmFsOw0K
KyAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7DQog
ICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7DQog
ICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRG
aWVsZEV2ZW50QmVoYXZpb3IpIGZpbmFsOw0KICAgICBTdHJpbmcgZmFsbGJhY2tWYWx1ZSgpIGNv
bnN0IGZpbmFsOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcA0KaW5kZXggNTU0YmU4YTE5OWYu
LmY3MmM0ZmYzZmJhIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQu
Y3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHANCkBAIC05MzUsOSAr
OTM1LDEwIEBAIHZvaWQgU1ZHRWxlbWVudDo6dXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRp
b24oYm9vbCBoYXNSZWxhdGl2ZUxlbmd0aHMsIFNWR0VsDQogICAgIH0NCiB9DQogDQotdm9pZCBT
VkdFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQorYm9vbCBT
VkdFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQogew0KICAg
ICBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyA/IFNlbmRNb3VzZVVw
RG93bkV2ZW50cyA6IFNlbmROb0V2ZW50cyk7DQorICAgIHJldHVybiB0cnVlOw0KIH0NCiANCiB2
b2lkIFNWR0VsZW1lbnQ6OmludmFsaWRhdGVJbnN0YW5jZXMoKQ0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVu
dC5oDQppbmRleCAyNmNjYmUzMDkyMC4uM2IwNDk0MjFkN2YgMTAwNjQ0DQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxl
bWVudC5oDQpAQCAtMTc5LDcgKzE3OSw3IEBAIHByaXZhdGU6DQogICAgIHZpcnR1YWwgdm9pZCBj
bGVhclRhcmdldCgpIHsgfQ0KIA0KICAgICB2b2lkIGJ1aWxkUGVuZGluZ1Jlc291cmNlc0lmTmVl
ZGVkKCk7DQotICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBv
dmVycmlkZTsNCisgICAgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMp
IG92ZXJyaWRlOw0KIA0KICNpZm5kZWYgTkRFQlVHDQogICAgIHZpcnR1YWwgYm9vbCBmaWx0ZXJP
dXRBbmltYXRhYmxlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdDs=
</data>
<flag name="review"
          id="411152"
          type_id="1"
          status="+"
          setter="jdiggs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395742</attachid>
            <date>2020-04-07 14:59:30 -0700</date>
            <delta_ts>2020-04-07 16:43:36 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_210081.txt</filename>
            <type>text/plain</type>
            <size>36778</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggODkzYjkxYTQ3MTkuLmY3MDFmZDQ3NDU4IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTMg
QEANCisyMDIwLTA0LTA2ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogVm9pY2VPdmVyIGNhbid0IGFjdGl2YXRlIGNvbWJvYm94IHdoZW4gdGV4
dGZpZWxkIGlzIGluc2lkZSBpdA0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMDA4MQ0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9hbm1hcmllIERp
Z2dzLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2FjdGl2YXRpb24tb2YtaW5wdXQtZmll
bGQtaW5zaWRlLW90aGVyLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9hY3RpdmF0aW9uLW9mLWlucHV0LWZpZWxkLWluc2lkZS1vdGhlci1lbGVt
ZW50Lmh0bWw6IEFkZGVkLg0KKw0KIDIwMjAtMDQtMDYgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hl
bkBpZ2FsaWEuY29tPg0KIA0KICAgICAgICAgVGhlIGNoYW5nZSBvZiB6b29tIHNob3VsZG4ndCBh
ZmZlY3QgUmVzaXplT2JzZXJ2ZXJTaXplDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9hY3RpdmF0aW9uLW9mLWlucHV0LWZpZWxkLWluc2lkZS1vdGhlci1lbGVtZW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYWN0aXZhdGlvbi1vZi1pbnB1
dC1maWVsZC1pbnNpZGUtb3RoZXItZWxlbWVudC1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uNWVkZDJmYTgwMTgNCi0tLSAvZGV2L251bGwNCisr
KyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYWN0aXZhdGlvbi1vZi1pbnB1dC1maWVsZC1p
bnNpZGUtb3RoZXItZWxlbWVudC1leHBlY3RlZC50eHQNCkBAIC0wLDAgKzEsMTEgQEANCisNCitU
aGlzIHRlc3QgY2hlY2tzIHdoZXRoZXIgYSBzaW11bGF0ZWQgY2xpY2sgd2lsbCBhY3RpdmF0ZSBh
IGNvbWJvYm94IHRoYXQgY29udGFpbnMgYSB0ZXh0IGZpZWxkLg0KKw0KK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4NCisNCisNCitDb21ibyBib3ggZWxlbWVudCBXQVMgY2xpY2tlZCB3aXRoIGFj
Y2Vzc2liaWxpdHkNCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVTVCBD
T01QTEVURQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYWN0aXZh
dGlvbi1vZi1pbnB1dC1maWVsZC1pbnNpZGUtb3RoZXItZWxlbWVudC5odG1sIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9hY3RpdmF0aW9uLW9mLWlucHV0LWZpZWxkLWluc2lkZS1vdGhlci1l
bGVtZW50Lmh0bWwNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYTE1
NGU0MjU1ZjQNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
YWN0aXZhdGlvbi1vZi1pbnB1dC1maWVsZC1pbnNpZGUtb3RoZXItZWxlbWVudC5odG1sDQpAQCAt
MCwwICsxLDM0IEBADQorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPg0KKzxodG1sPg0KKzxoZWFkPg0KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0Pg0KKzwvaGVhZD4NCis8Ym9keSBpZD0iYm9keSI+DQorDQorPGRp
diByb2xlPSJjb21ib2JveCIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGFyaWEtaGFzcG9wdXA9Imxp
c3Rib3giIGlkPSJjb21ibyIgb25jbGljaz0iY29tYm9Cb3hDbGlja2VkKCk7Ij4NCisgICAgPGRp
diByb2xlPSJub25lIj4NCisgICAgICAgIDxpbnB1dCBpZD0iaW5wdXQtNDAiIHR5cGU9InRleHQi
IHJvbGU9InRleHRib3giIGF1dG9jb21wbGV0ZT0ib2ZmIiBwbGFjZWhvbGRlcj0iU2VsZWN0IGFu
IE9wdGlvbiIgYXJpYS1hdXRvY29tcGxldGU9Im5vbmUiIHJlYWRvbmx5PSIiIGRpc2FibGVkPSIi
Pg0KKyAgICA8L2Rpdj4NCis8L2Rpdj4NCisNCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4NCis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisNCis8c2NyaXB0Pg0KKyAgICBkZXNjcmlwdGlvbigi
VGhpcyB0ZXN0IGNoZWNrcyB3aGV0aGVyIGEgc2ltdWxhdGVkIGNsaWNrIHdpbGwgYWN0aXZhdGUg
YSBjb21ib2JveCB0aGF0IGNvbnRhaW5zIGEgdGV4dCBmaWVsZC4iKTsNCisNCisgICAgZnVuY3Rp
b24gY29tYm9Cb3hDbGlja2VkKCkgew0KKyAgICAgICAgZGVidWcoIkNvbWJvIGJveCBlbGVtZW50
IFdBUyBjbGlja2VkIHdpdGggYWNjZXNzaWJpbGl0eSIpOw0KKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7DQorICAgIH0NCisNCisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOw0KKyAgICBp
ZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7DQorICAgICAgICB2YXIgZWxlbWVu
dCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY29tYm8i
KTsNCisgICAgICAgIGVsZW1lbnQucHJlc3MoKTsNCisgICAgfQ0KKzwvc2NyaXB0Pg0KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4NCis8L2JvZHk+
DQorPC9odG1sPg0KKw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KaW5kZXggZjNhODA5YjdjOTAuLjA4NDE0OWQ0MDdiIDEw
MDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsNzIgQEANCisyMDIwLTA0LTA2ICBDaHJpcyBGbGVpemFj
aCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQorDQorICAgICAgICBBWDogVm9pY2VPdmVyIGNhbid0
IGFjdGl2YXRlIGNvbWJvYm94IHdoZW4gdGV4dGZpZWxkIGlzIGluc2lkZSBpdA0KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDA4MQ0KKw0KKyAgICAg
ICAgUmV2aWV3ZWQgYnkgSm9hbm1hcmllIERpZ2dzLg0KKw0KKyAgICAgICAgQ2hhbmdlIGFjY2Vz
c0tleUFjdGlvbiB0byByZXR1cm4gd2hldGhlciBhIHNpbXVsYXRlZCBjbGljayBldmVudCB3YXMg
ZGlzcGF0Y2hlZC4NCisgICAgICAgIEFjY2Vzc2liaWxpdHkgdXNlcyB0aGF0IGluZm9ybWF0aW9u
IHRvIGRlY2lkZSB3aGV0aGVyIGl0IHNob3VsZCBzZW50IGFuIGV2ZW50IGFmdGVyd2FyZHMsIGJl
Y2F1c2UNCisgICAgICAgIHNvbWUgb2JqZWN0cyBhY2Nlc3NLZXlBY3Rpb24gaXMgb25seSB0byBm
b2N1cygpLiBBWCBpcyBleHBlY3RlZCBoZXJlIHRvIHByZXNzIG9uIHRoZSBvYmplY3QgKGFuZCBw
b3NzaWJseSBmb2N1cykuDQorDQorICAgICAgICBUZXN0OiBhY2Nlc3NpYmlsaXR5L2FjdGl2YXRp
b24tb2YtaW5wdXQtZmllbGQtaW5zaWRlLW90aGVyLWVsZW1lbnQuaHRtbA0KKw0KKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnByZXNzKToNCisgICAgICAgICogZG9tL0VsZW1lbnQu
aDoNCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24pOg0KKyAgICAg
ICAgKiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6
OkJhc2VDaGVja2FibGVJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbik6DQorICAgICAgICAqIGh0
bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oOg0KKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2Vy
T25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAg
ICogaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oOg0KKyAgICAgICAg
KiBodG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmNwcDoNCisgICAgICAgIChXZWJD
b3JlOjpCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKToNCisg
ICAgICAgICogaHRtbC9CYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oOg0KKyAgICAgICAg
KiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5j
aG9yRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICogaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcDoNCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MQnV0dG9uRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAg
ICAgICogaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxFbGVt
ZW50LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9u
KToNCisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmFj
Y2Vzc0tleUFjdGlvbik6DQorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOg0KKyAg
ICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxMYWJlbEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbik6DQorICAgICAgICAqIGh0bWwvSFRNTExh
YmVsRWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcDoNCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTGVnZW5kRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKToNCisg
ICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxP
cHRHcm91cEVsZW1lbnQuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRHcm91cEVsZW1l
bnQ6OmFjY2Vzc0tleUFjdGlvbik6DQorICAgICAgICAqIGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVu
dC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcDoNCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKToNCisgICAgICAgICog
aHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6YWNjZXNzS2V5
QWN0aW9uKToNCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oOg0KKyAgICAgICAg
KiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxU
ZXh0QXJlYUVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbik6DQorICAgICAgICAqIGh0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5oOg0KKyAgICAgICAgKiBodG1sL0hpZGRlbklucHV0VHlwZS5jcHA6DQor
ICAgICAgICAoV2ViQ29yZTo6SGlkZGVuSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24pOg0KKyAg
ICAgICAgKiBodG1sL0hpZGRlbklucHV0VHlwZS5oOg0KKyAgICAgICAgKiBodG1sL0lucHV0VHlw
ZS5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24pOg0K
KyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOg0KKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRU
eXBlLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0
aW9uKToNCisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5oOg0KKyAgICAgICAgKiBzdmcv
U1ZHRWxlbWVudC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6YWNjZXNzS2V5
QWN0aW9uKToNCisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQuaDoNCisNCiAyMDIwLTA0LTA2ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgTWFrZSBS
ZW5kZXJPYmplY3QgVGV4dFN0cmVhbS1sb2dnYWJsZQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwDQppbmRleCBlODg3NTI0ZmZh
MS4uZDM2ZmMxMjA3YTIgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwDQpAQCAtOTA1LDE1ICs5MDUsMTMgQEAgYm9vbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpwcmVzcygpDQogICAgIA0KICAgICBVc2VyR2VzdHVyZUluZGlj
YXRvciBnZXN0dXJlSW5kaWNhdG9yKFByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgZG9jdW1lbnQpOw0K
ICAgICANCi0gICAgYm9vbCBkaXNwYXRjaGVkVG91Y2hFdmVudCA9IGZhbHNlOw0KKyAgICBib29s
IGRpc3BhdGNoZWRFdmVudCA9IGZhbHNlOw0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQ0KICAg
ICBpZiAoaGFzVG91Y2hFdmVudExpc3RlbmVyKCkpDQotICAgICAgICBkaXNwYXRjaGVkVG91Y2hF
dmVudCA9IGRpc3BhdGNoVG91Y2hFdmVudCgpOw0KKyAgICAgICAgZGlzcGF0Y2hlZEV2ZW50ID0g
ZGlzcGF0Y2hUb3VjaEV2ZW50KCk7DQogI2VuZGlmDQotICAgIGlmICghZGlzcGF0Y2hlZFRvdWNo
RXZlbnQpDQotICAgICAgICBwcmVzc0VsZW1lbnQtPmFjY2Vzc0tleUFjdGlvbih0cnVlKTsNCiAg
ICAgDQotICAgIHJldHVybiB0cnVlOw0KKyAgICByZXR1cm4gZGlzcGF0Y2hlZEV2ZW50IHx8IHBy
ZXNzRWxlbWVudC0+YWNjZXNzS2V5QWN0aW9uKHRydWUpIHx8IHByZXNzRWxlbWVudC0+ZGlzcGF0
Y2hTaW11bGF0ZWRDbGljayhudWxscHRyLCBTZW5kTW91c2VVcERvd25FdmVudHMpOw0KIH0NCiAg
ICAgDQogYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpkaXNwYXRjaFRvdWNoRXZlbnQoKQ0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcA0KaW5kZXggN2FjNGFmMTNmM2YuLjI3OGQ5ODdkMDhhIDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHANCkBAIC00MTksOSArNDE5LDkgQEAgYm9vbCBFbGVtZW50OjpkaXNw
YXRjaEtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgcGxhdGZvcm1FdmVudCkN
CiAgICAgcmV0dXJuICFldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpICYmICFldmVudC0+ZGVmYXVs
dEhhbmRsZWQoKTsNCiB9DQogDQotdm9pZCBFbGVtZW50OjpkaXNwYXRjaFNpbXVsYXRlZENsaWNr
KEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQsIFNpbXVsYXRlZENsaWNrTW91c2VFdmVudE9wdGlvbnMg
ZXZlbnRPcHRpb25zLCBTaW11bGF0ZWRDbGlja1Zpc3VhbE9wdGlvbnMgdmlzdWFsT3B0aW9ucykN
Citib29sIEVsZW1lbnQ6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soRXZlbnQqIHVuZGVybHlpbmdF
dmVudCwgU2ltdWxhdGVkQ2xpY2tNb3VzZUV2ZW50T3B0aW9ucyBldmVudE9wdGlvbnMsIFNpbXVs
YXRlZENsaWNrVmlzdWFsT3B0aW9ucyB2aXN1YWxPcHRpb25zKQ0KIHsNCi0gICAgc2ltdWxhdGVD
bGljaygqdGhpcywgdW5kZXJseWluZ0V2ZW50LCBldmVudE9wdGlvbnMsIHZpc3VhbE9wdGlvbnMs
IFNpbXVsYXRlZENsaWNrU291cmNlOjpVc2VyQWdlbnQpOw0KKyAgICByZXR1cm4gc2ltdWxhdGVD
bGljaygqdGhpcywgdW5kZXJseWluZ0V2ZW50LCBldmVudE9wdGlvbnMsIHZpc3VhbE9wdGlvbnMs
IFNpbXVsYXRlZENsaWNrU291cmNlOjpVc2VyQWdlbnQpOw0KIH0NCiANCiBSZWY8Tm9kZT4gRWxl
bWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5n
T3BlcmF0aW9uIHR5cGUpDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgNCmluZGV4IDU2YjQ2N2I0YjFjLi5jOWM3
MmZiNmI3ZiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgNCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgNCkBAIC0zODEsNyArMzgxLDcgQEAgcHVibGlj
Og0KICAgICBXRUJDT1JFX0VYUE9SVCBBdG9tU3RyaW5nIGNvbXB1dGVJbmhlcml0ZWRMYW5ndWFn
ZSgpIGNvbnN0Ow0KICAgICBMb2NhbGUmIGxvY2FsZSgpIGNvbnN0Ow0KIA0KLSAgICB2aXJ0dWFs
IHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgLypzZW5kVG9BbnlFdmVudCovKSB7IH0NCisgICAg
dmlydHVhbCBib29sIGFjY2Vzc0tleUFjdGlvbihib29sIC8qc2VuZFRvQW55RXZlbnQqLykgeyBy
ZXR1cm4gZmFsc2U7IH0NCiANCiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0
IEF0dHJpYnV0ZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9DQogICAgIHZpcnR1YWwgYm9vbCBh
dHRyaWJ1dGVDb250YWluc1VSTChjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkgY29uc3QgeyBy
ZXR1cm4gaXNVUkxBdHRyaWJ1dGUoYXR0cmlidXRlKTsgfQ0KQEAgLTUyOSw3ICs1MjksNyBAQCBw
dWJsaWM6DQogICAgIGJvb2wgZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgaW50IGNsaWNrQ291bnQgPSAwLCBF
bGVtZW50KiByZWxhdGVkVGFyZ2V0ID0gbnVsbHB0cik7DQogICAgIGJvb2wgZGlzcGF0Y2hXaGVl
bEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOw0KICAgICBib29sIGRpc3BhdGNoS2V5
RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50Jik7DQotICAgIHZvaWQgZGlzcGF0Y2hT
aW11bGF0ZWRDbGljayhFdmVudCogdW5kZXJseWluZ0V2ZW50LCBTaW11bGF0ZWRDbGlja01vdXNl
RXZlbnRPcHRpb25zID0gU2VuZE5vRXZlbnRzLCBTaW11bGF0ZWRDbGlja1Zpc3VhbE9wdGlvbnMg
PSBTaG93UHJlc3NlZExvb2spOw0KKyAgICBib29sIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soRXZl
bnQqIHVuZGVybHlpbmdFdmVudCwgU2ltdWxhdGVkQ2xpY2tNb3VzZUV2ZW50T3B0aW9ucyA9IFNl
bmROb0V2ZW50cywgU2ltdWxhdGVkQ2xpY2tWaXN1YWxPcHRpb25zID0gU2hvd1ByZXNzZWRMb29r
KTsNCiAgICAgdm9pZCBkaXNwYXRjaEZvY3VzSW5FdmVudChjb25zdCBBdG9tU3RyaW5nJiBldmVu
dFR5cGUsIFJlZlB0cjxFbGVtZW50PiYmIG9sZEZvY3VzZWRFbGVtZW50KTsNCiAgICAgdm9pZCBk
aXNwYXRjaEZvY3VzT3V0RXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBSZWZQdHI8
RWxlbWVudD4mJiBuZXdGb2N1c2VkRWxlbWVudCk7DQogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aEZvY3VzRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgb2xkRm9jdXNlZEVsZW1lbnQsIEZvY3VzRGly
ZWN0aW9uKTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xpY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcA0KaW5kZXggMzMxMjQ0
ZDcwZmIuLmM5YzM4ZDk2ZWQyIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVs
YXRlZENsaWNrLmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNw
cA0KQEAgLTgxLDE0ICs4MSwxNCBAQCBzdGF0aWMgdm9pZCBzaW11bGF0ZU1vdXNlRXZlbnQoY29u
c3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBFbGVtZW50JiBlbGVtZW50LCBFdg0KICAgICBlbGVt
ZW50LmRpc3BhdGNoRXZlbnQoU2ltdWxhdGVkTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwg
ZWxlbWVudC5kb2N1bWVudCgpLndpbmRvd1Byb3h5KCksIHVuZGVybHlpbmdFdmVudCwgZWxlbWVu
dCwgc291cmNlKSk7DQogfQ0KIA0KLXZvaWQgc2ltdWxhdGVDbGljayhFbGVtZW50JiBlbGVtZW50
LCBFdmVudCogdW5kZXJseWluZ0V2ZW50LCBTaW11bGF0ZWRDbGlja01vdXNlRXZlbnRPcHRpb25z
IG1vdXNlRXZlbnRPcHRpb25zLCBTaW11bGF0ZWRDbGlja1Zpc3VhbE9wdGlvbnMgdmlzdWFsT3B0
aW9ucywgU2ltdWxhdGVkQ2xpY2tTb3VyY2UgY3JlYXRpb25PcHRpb25zKQ0KK2Jvb2wgc2ltdWxh
dGVDbGljayhFbGVtZW50JiBlbGVtZW50LCBFdmVudCogdW5kZXJseWluZ0V2ZW50LCBTaW11bGF0
ZWRDbGlja01vdXNlRXZlbnRPcHRpb25zIG1vdXNlRXZlbnRPcHRpb25zLCBTaW11bGF0ZWRDbGlj
a1Zpc3VhbE9wdGlvbnMgdmlzdWFsT3B0aW9ucywgU2ltdWxhdGVkQ2xpY2tTb3VyY2UgY3JlYXRp
b25PcHRpb25zKQ0KIHsNCiAgICAgaWYgKGVsZW1lbnQuaXNEaXNhYmxlZEZvcm1Db250cm9sKCkp
DQotICAgICAgICByZXR1cm47DQorICAgICAgICByZXR1cm4gZmFsc2U7DQogDQogICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PEVsZW1lbnQqPj4gZWxlbWVudHNEaXNwYXRjaGluZ1Np
bXVsYXRlZENsaWNrczsNCiAgICAgaWYgKCFlbGVtZW50c0Rpc3BhdGNoaW5nU2ltdWxhdGVkQ2xp
Y2tzLmdldCgpLmFkZCgmZWxlbWVudCkuaXNOZXdFbnRyeSkNCi0gICAgICAgIHJldHVybjsNCisg
ICAgICAgIHJldHVybiBmYWxzZTsNCiANCiAgICAgaWYgKG1vdXNlRXZlbnRPcHRpb25zID09IFNl
bmRNb3VzZU92ZXJVcERvd25FdmVudHMpDQogICAgICAgICBzaW11bGF0ZU1vdXNlRXZlbnQoZXZl
bnROYW1lcygpLm1vdXNlb3ZlckV2ZW50LCBlbGVtZW50LCB1bmRlcmx5aW5nRXZlbnQsIGNyZWF0
aW9uT3B0aW9ucyk7DQpAQCAtMTAzLDYgKzEwMyw3IEBAIHZvaWQgc2ltdWxhdGVDbGljayhFbGVt
ZW50JiBlbGVtZW50LCBFdmVudCogdW5kZXJseWluZ0V2ZW50LCBTaW11bGF0ZWRDbGlja01vdXNl
DQogICAgIHNpbXVsYXRlTW91c2VFdmVudChldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgZWxlbWVu
dCwgdW5kZXJseWluZ0V2ZW50LCBjcmVhdGlvbk9wdGlvbnMpOw0KIA0KICAgICBlbGVtZW50c0Rp
c3BhdGNoaW5nU2ltdWxhdGVkQ2xpY2tzLmdldCgpLnJlbW92ZSgmZWxlbWVudCk7DQorICAgIHJl
dHVybiB0cnVlOw0KIH0NCiANCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlDQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2ltdWxhdGVkQ2xpY2suaA0KaW5kZXggYWU2ZDVkNjhjOGMuLmUwMTQ4ZGY5NDZlIDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmgNCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5oDQpAQCAtMzcsNiArMzcsNiBAQCBlbnVtIGNsYXNz
IFNpbXVsYXRlZENsaWNrU291cmNlIHsNCiAgICAgVXNlckFnZW50DQogfTsNCiANCi12b2lkIHNp
bXVsYXRlQ2xpY2soRWxlbWVudCYsIEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQsIFNpbXVsYXRlZENs
aWNrTW91c2VFdmVudE9wdGlvbnMsIFNpbXVsYXRlZENsaWNrVmlzdWFsT3B0aW9ucywgU2ltdWxh
dGVkQ2xpY2tTb3VyY2UpOw0KK2Jvb2wgc2ltdWxhdGVDbGljayhFbGVtZW50JiwgRXZlbnQqIHVu
ZGVybHlpbmdFdmVudCwgU2ltdWxhdGVkQ2xpY2tNb3VzZUV2ZW50T3B0aW9ucywgU2ltdWxhdGVk
Q2xpY2tWaXN1YWxPcHRpb25zLCBTaW11bGF0ZWRDbGlja1NvdXJjZSk7DQogDQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNr
YWJsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1
dFR5cGUuY3BwDQppbmRleCBlYjk3NDRiZTI1Zi4uZWJiN2QyYThiMDAgMTAwNjQ0DQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwDQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwDQpAQCAtOTEsMTIgKzkx
LDEwIEBAIGJvb2wgQmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6Y2FuU2V0U3RyaW5nVmFsdWUoKSBj
b25zdA0KIH0NCiANCiAvLyBGSVhNRTogQ291bGQgc2hhcmUgdGhpcyB3aXRoIEJhc2VDbGlja2Fi
bGVXaXRoS2V5SW5wdXRUeXBlIGFuZCBSYW5nZUlucHV0VHlwZSBpZiB3ZSBoYWQgYSBjb21tb24g
YmFzZSBjbGFzcy4NCi12b2lkIEJhc2VDaGVja2FibGVJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlv
bihib29sIHNlbmRNb3VzZUV2ZW50cykNCitib29sIEJhc2VDaGVja2FibGVJbnB1dFR5cGU6OmFj
Y2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykNCiB7DQotICAgIElucHV0VHlwZTo6
YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cyk7DQotDQogICAgIEFTU0VSVChlbGVtZW50
KCkpOw0KLSAgICBlbGVtZW50KCktPmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwgc2VuZE1vdXNl
RXZlbnRzID8gU2VuZE1vdXNlVXBEb3duRXZlbnRzIDogU2VuZE5vRXZlbnRzKTsNCisgICAgcmV0
dXJuIElucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cykgfHwgZWxlbWVu
dCgpLT5kaXNwYXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyA/IFNlbmRNb3Vz
ZVVwRG93bkV2ZW50cyA6IFNlbmROb0V2ZW50cyk7DQogfQ0KIA0KIFN0cmluZyBCYXNlQ2hlY2th
YmxlSW5wdXRUeXBlOjpmYWxsYmFja1ZhbHVlKCkgY29uc3QNCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oDQppbmRleCA1NjJiYjlkZGVkZS4uOTIxYmI4ODVh
MjQgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5
cGUuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgN
CkBAIC00Nyw3ICs0Nyw3IEBAIHByaXZhdGU6DQogICAgIGJvb2wgYXBwZW5kRm9ybURhdGEoRE9N
Rm9ybURhdGEmLCBib29sKSBjb25zdCBvdmVycmlkZTsNCiAgICAgdm9pZCBoYW5kbGVLZXlwcmVz
c0V2ZW50KEtleWJvYXJkRXZlbnQmKSBvdmVycmlkZTsNCiAgICAgYm9vbCBjYW5TZXRTdHJpbmdW
YWx1ZSgpIGNvbnN0IG92ZXJyaWRlOw0KLSAgICB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNl
bmRNb3VzZUV2ZW50cykgb3ZlcnJpZGU7DQorICAgIGJvb2wgYWNjZXNzS2V5QWN0aW9uKGJvb2wg
c2VuZE1vdXNlRXZlbnRzKSBvdmVycmlkZTsNCiAgICAgU3RyaW5nIGZhbGxiYWNrVmFsdWUoKSBj
b25zdCBvdmVycmlkZTsNCiAgICAgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0
ZSgpIG92ZXJyaWRlOw0KICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIFRl
eHRGaWVsZEV2ZW50QmVoYXZpb3IpIG92ZXJyaWRlOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHANCmlu
ZGV4IGFiNDE5NzZkMzJmLi43YjEwNjFmZTFhMSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwDQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcA0K
QEAgLTEzMCwxMSArMTMwLDExIEBAIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1
dFR5cGU6OmhhbmRsZUtleXVwRXZlbnQoS2V5Ym9hcmRFdmVudCYgZXZlbnQpDQogICAgIEJhc2VD
bGlja2FibGVXaXRoS2V5SW5wdXRUeXBlOjpoYW5kbGVLZXl1cEV2ZW50KCp0aGlzLCBldmVudCk7
DQogfQ0KIA0KLXZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmFjY2Vz
c0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykNCitib29sIEJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMp
DQogew0KICAgICBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihzZW5k
TW91c2VFdmVudHMpOw0KICAgICBBU1NFUlQoZWxlbWVudCgpKTsNCi0gICAgQmFzZUNsaWNrYWJs
ZVdpdGhLZXlJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbigqZWxlbWVudCgpLCBzZW5kTW91c2VF
dmVudHMpOw0KKyAgICByZXR1cm4gQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGU6OmFjY2Vz
c0tleUFjdGlvbigqZWxlbWVudCgpLCBzZW5kTW91c2VFdmVudHMpOw0KIH0NCiANCiBib29sIEJh
c2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjppc01vdXNlRm9jdXNhYmxlKCkgY29u
c3QNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVB
bmRUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlLmgNCmluZGV4IDQ1MWQ1MGM2ZDIyLi5hM2YxY2Y1YTViMiAxMDA2
NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZS5oDQpAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOg0KICAgICBTaG91
bGRDYWxsQmFzZUV2ZW50SGFuZGxlciBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCYp
IG92ZXJyaWRlOw0KICAgICB2b2lkIGhhbmRsZUtleXByZXNzRXZlbnQoS2V5Ym9hcmRFdmVudCYp
IG92ZXJyaWRlOw0KICAgICB2b2lkIGhhbmRsZUtleXVwRXZlbnQoS2V5Ym9hcmRFdmVudCYpIG92
ZXJyaWRlOw0KLSAgICB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykg
b3ZlcnJpZGU7DQorICAgIGJvb2wgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRz
KSBvdmVycmlkZTsNCiAgICAgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7
DQogICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJp
ZGU7DQogDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxlV2l0
aEtleUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDbGlja2FibGVXaXRo
S2V5SW5wdXRUeXBlLmNwcA0KaW5kZXggMzU1OTcyNDU1NDQuLmMxYmY2YjFlYmFhIDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5j
cHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5
cGUuY3BwDQpAQCAtNzUsOSArNzUsOSBAQCB2b2lkIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRU
eXBlOjpoYW5kbGVLZXl1cEV2ZW50KElucHV0VHlwZSYgaW5wdXRUeXBlLCBLZXlibw0KIH0NCiAN
CiAvLyBGSVhNRTogQ291bGQgc2hhcmUgdGhpcyB3aXRoIEJhc2VDaGVja2FibGVJbnB1dFR5cGUg
YW5kIFJhbmdlSW5wdXRUeXBlIGlmIHdlIGhhZCBhIGNvbW1vbiBiYXNlIGNsYXNzLg0KLXZvaWQg
QmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50LCBib29sIHNlbmRNb3VzZUV2ZW50cykNCitib29sIEJhc2VDbGlja2Fi
bGVXaXRoS2V5SW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCwgYm9vbCBzZW5kTW91c2VFdmVudHMpDQogew0KLSAgICBlbGVtZW50LmRpc3BhdGNoU2lt
dWxhdGVkQ2xpY2soMCwgc2VuZE1vdXNlRXZlbnRzID8gU2VuZE1vdXNlVXBEb3duRXZlbnRzIDog
U2VuZE5vRXZlbnRzKTsNCisgICAgcmV0dXJuIGVsZW1lbnQuZGlzcGF0Y2hTaW11bGF0ZWRDbGlj
aygwLCBzZW5kTW91c2VFdmVudHMgPyBTZW5kTW91c2VVcERvd25FdmVudHMgOiBTZW5kTm9FdmVu
dHMpOw0KIH0NCiANCiBhdXRvIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlOjpoYW5kbGVL
ZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCYgZXZlbnQpIC0+IFNob3VsZENhbGxCYXNlRXZlbnRI
YW5kbGVyDQpAQCAtOTcsMTEgKzk3LDExIEBAIHZvaWQgQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1
dFR5cGU6OmhhbmRsZUtleXVwRXZlbnQoS2V5Ym9hcmRFdmVudCYgZXZlbnQpDQogICAgIGhhbmRs
ZUtleXVwRXZlbnQoKnRoaXMsIGV2ZW50KTsNCiB9DQogDQotdm9pZCBCYXNlQ2xpY2thYmxlV2l0
aEtleUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KK2Jv
b2wgQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihib29sIHNl
bmRNb3VzZUV2ZW50cykNCiB7DQogICAgIElucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKHNlbmRN
b3VzZUV2ZW50cyk7DQogICAgIEFTU0VSVChlbGVtZW50KCkpOw0KLSAgICBhY2Nlc3NLZXlBY3Rp
b24oKmVsZW1lbnQoKSwgc2VuZE1vdXNlRXZlbnRzKTsNCisgICAgcmV0dXJuIGFjY2Vzc0tleUFj
dGlvbigqZWxlbWVudCgpLCBzZW5kTW91c2VFdmVudHMpOw0KIH0NCiANCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxl
V2l0aEtleUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxlV2l0
aEtleUlucHV0VHlwZS5oDQppbmRleCA4YjZjNTkyODBjNi4uZmU4NzEzY2JhNzAgMTAwNjQ0DQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmgN
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUu
aA0KQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOg0KICAgICBzdGF0aWMgU2hvdWxkQ2FsbEJhc2VF
dmVudEhhbmRsZXIgaGFuZGxlS2V5ZG93bkV2ZW50KEhUTUxJbnB1dEVsZW1lbnQmLCBLZXlib2Fy
ZEV2ZW50Jik7DQogICAgIHN0YXRpYyB2b2lkIGhhbmRsZUtleXByZXNzRXZlbnQoSFRNTElucHV0
RWxlbWVudCYsIEtleWJvYXJkRXZlbnQmKTsNCiAgICAgc3RhdGljIHZvaWQgaGFuZGxlS2V5dXBF
dmVudChJbnB1dFR5cGUmLCBLZXlib2FyZEV2ZW50Jik7DQotICAgIHN0YXRpYyB2b2lkIGFjY2Vz
c0tleUFjdGlvbihIVE1MSW5wdXRFbGVtZW50JiwgYm9vbCBzZW5kTW91c2VFdmVudHMpOw0KKyAg
ICBzdGF0aWMgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oSFRNTElucHV0RWxlbWVudCYsIGJvb2wgc2Vu
ZE1vdXNlRXZlbnRzKTsNCiAgICAgDQogcHJvdGVjdGVkOg0KICAgICBleHBsaWNpdCBCYXNlQ2xp
Y2thYmxlV2l0aEtleUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IElucHV0
VHlwZShlbGVtZW50KSB7IH0NCkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6DQogICAgIFNob3Vs
ZENhbGxCYXNlRXZlbnRIYW5kbGVyIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50Jikg
b3ZlcnJpZGU7DQogICAgIHZvaWQgaGFuZGxlS2V5cHJlc3NFdmVudChLZXlib2FyZEV2ZW50Jikg
b3ZlcnJpZGU7DQogICAgIHZvaWQgaGFuZGxlS2V5dXBFdmVudChLZXlib2FyZEV2ZW50Jikgb3Zl
cnJpZGU7DQotICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBv
dmVycmlkZTsNCisgICAgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMp
IG92ZXJyaWRlOw0KIH07DQogDQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQ0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHANCmluZGV4IGVlZGU0NGZmNzc2Li43MGIzZmQz
ODcwNiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
Y3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcA0KQEAg
LTI3NCw5ICsyNzQsOSBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQ0KICAgICAgICAgSFRNTEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsNCiB9DQogDQotdm9pZCBIVE1MQW5j
aG9yRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KK2Jvb2wg
SFRNTEFuY2hvckVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykN
CiB7DQotICAgIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwgc2VuZE1vdXNlRXZlbnRzID8gU2Vu
ZE1vdXNlVXBEb3duRXZlbnRzIDogU2VuZE5vRXZlbnRzKTsNCisgICAgcmV0dXJuIGRpc3BhdGNo
U2ltdWxhdGVkQ2xpY2soMCwgc2VuZE1vdXNlRXZlbnRzID8gU2VuZE1vdXNlVXBEb3duRXZlbnRz
IDogU2VuZE5vRXZlbnRzKTsNCiB9DQogDQogYm9vbCBIVE1MQW5jaG9yRWxlbWVudDo6aXNVUkxB
dHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUpIGNvbnN0DQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oDQppbmRleCBlMWQ5M2IxMTQ3ZC4uNTA5NzZiYmVmYjMg
MTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgNCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaA0KQEAgLTg4LDcgKzg4
LDcgQEAgcHJpdmF0ZToNCiAgICAgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZl
bnQqKSBjb25zdCBvdmVycmlkZTsNCiAgICAgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50
JikgZmluYWw7DQogICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wgYWN0aXZlID0gdHJ1ZSwgYm9vbCBw
YXVzZSA9IGZhbHNlKSBmaW5hbDsNCi0gICAgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5k
TW91c2VFdmVudHMpIGZpbmFsOw0KKyAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRN
b3VzZUV2ZW50cykgZmluYWw7DQogICAgIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmli
dXRlJikgY29uc3QgZmluYWw7DQogICAgIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdCBm
aW5hbDsNCiAgICAgU3RyaW5nIHRhcmdldCgpIGNvbnN0IG92ZXJyaWRlOw0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHANCmluZGV4IDM0YzE2OGYxYzRjLi43MWZlMWEw
Yjc4NSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQu
Y3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcA0KQEAg
LTIxMSwxMSArMjExLDExIEBAIGJvb2wgSFRNTEJ1dHRvbkVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRh
KERPTUZvcm1EYXRhJiBmb3JtRGF0YSwgYm9vbCkNCiAgICAgcmV0dXJuIHRydWU7DQogfQ0KIA0K
LXZvaWQgSFRNTEJ1dHRvbkVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2
ZW50cykNCitib29sIEhUTUxCdXR0b25FbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5k
TW91c2VFdmVudHMpDQogew0KICAgICBmb2N1cygpOw0KIA0KLSAgICBkaXNwYXRjaFNpbXVsYXRl
ZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyA/IFNlbmRNb3VzZVVwRG93bkV2ZW50cyA6IFNlbmRO
b0V2ZW50cyk7DQorICAgIHJldHVybiBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3Vz
ZUV2ZW50cyA/IFNlbmRNb3VzZVVwRG93bkV2ZW50cyA6IFNlbmROb0V2ZW50cyk7DQogfQ0KIA0K
IGJvb2wgSFRNTEJ1dHRvbkVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYg
YXR0cmlidXRlKSBjb25zdA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1
dHRvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaA0K
aW5kZXggY2M2MzY1YjJlMTQuLmRmY2Q3NDMzMGVmIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCdXR0b25FbGVtZW50LmgNCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6DQogICAgIGJvb2wg
aXNBY3RpdmF0ZWRTdWJtaXQoKSBjb25zdCBmaW5hbDsNCiAgICAgdm9pZCBzZXRBY3RpdmF0ZWRT
dWJtaXQoYm9vbCBmbGFnKSBmaW5hbDsNCiANCi0gICAgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9v
bCBzZW5kTW91c2VFdmVudHMpIGZpbmFsOw0KKyAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29s
IHNlbmRNb3VzZUV2ZW50cykgZmluYWw7DQogICAgIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3Qg
QXR0cmlidXRlJikgY29uc3QgZmluYWw7DQogDQogICAgIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24o
KSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5jcHANCmluZGV4IDMyZWQ0YWQzMWJkLi40NTc3MmQxM2RkYSAxMDA2NDQNCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmNwcA0KQEAgLTcwNSw5ICs3MDUsOSBAQCB2b2lkIEhUTUxFbGVtZW50Ojpj
bGljaygpDQogICAgIHNpbXVsYXRlQ2xpY2soKnRoaXMsIG51bGxwdHIsIFNlbmROb0V2ZW50cywg
RG9Ob3RTaG93UHJlc3NlZExvb2ssIFNpbXVsYXRlZENsaWNrU291cmNlOjpCaW5kaW5ncyk7DQog
fQ0KIA0KLXZvaWQgSFRNTEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2
ZW50cykNCitib29sIEhUTUxFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VF
dmVudHMpDQogew0KLSAgICBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKG51bGxwdHIsIHNlbmRNb3Vz
ZUV2ZW50cyA/IFNlbmRNb3VzZVVwRG93bkV2ZW50cyA6IFNlbmROb0V2ZW50cyk7DQorICAgIHJl
dHVybiBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKG51bGxwdHIsIHNlbmRNb3VzZUV2ZW50cyA/IFNl
bmRNb3VzZVVwRG93bkV2ZW50cyA6IFNlbmROb0V2ZW50cyk7DQogfQ0KIA0KIFN0cmluZyBIVE1M
RWxlbWVudDo6dGl0bGUoKSBjb25zdA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaA0KaW5kZXgg
N2UwNzRlYjYxMjguLjM2MmNmYTRjN2MwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRWxlbWVudC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgN
CkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoNCiANCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBj
bGljaygpOw0KIA0KLSAgICB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50
cykgb3ZlcnJpZGU7DQorICAgIGJvb2wgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZl
bnRzKSBvdmVycmlkZTsNCiANCiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBv
dmVycmlkZTsNCiAgICAgYm9vbCByZW5kZXJlcklzRXZlck5lZWRlZCgpIGZpbmFsOw0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwDQppbmRleCBiNGEyMDMzZTUxNi4uNTAy
ZjcwMjUyNWQgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwDQpA
QCAtNjY2LDEwICs2NjYsMTAgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpjYW5IYXZlU2VsZWN0
aW9uKCkgY29uc3QNCiAgICAgcmV0dXJuIGlzVGV4dEZpZWxkKCk7DQogfQ0KIA0KLXZvaWQgSFRN
TElucHV0RWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KK2Jv
b2wgSFRNTElucHV0RWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRz
KQ0KIHsNCiAgICAgUmVmPElucHV0VHlwZT4gcHJvdGVjdGVkSW5wdXRUeXBlKCptX2lucHV0VHlw
ZSk7DQotICAgIHByb3RlY3RlZElucHV0VHlwZS0+YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2
ZW50cyk7DQorICAgIHJldHVybiBwcm90ZWN0ZWRJbnB1dFR5cGUtPmFjY2Vzc0tleUFjdGlvbihz
ZW5kTW91c2VFdmVudHMpOw0KIH0NCiANCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmlzUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0DQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaA0KaW5kZXggZGZjM2Y5MGIwNDUuLjcxNTdhNzZm
ZTMxIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgN
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oDQpAQCAtMzkxLDcg
KzM5MSw3IEBAIHByaXZhdGU6DQogDQogICAgIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24oKSBjb25z
dCBmaW5hbDsNCiANCi0gICAgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVu
dHMpIGZpbmFsOw0KKyAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50
cykgZmluYWw7DQogDQogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsNCiAgICAgYm9vbCBpc1ByZXNlbnRhdGlvbkF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7DQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHANCmluZGV4IDUxMmM1ZDEyNjUxLi4zN2Y5Y2E1NmU4
MCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAN
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHANCkBAIC0xODks
MTIgKzE4OSwxMiBAQCB2b2lkIEhUTUxMYWJlbEVsZW1lbnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVBy
ZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbiBkaXJlYw0KICAgICAgICAgZWxlbWVudC0+
Zm9jdXModHJ1ZSwgZGlyZWN0aW9uKTsNCiB9DQogDQotdm9pZCBIVE1MTGFiZWxFbGVtZW50Ojph
Y2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQorYm9vbCBIVE1MTGFiZWxFbGVt
ZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQogew0KICAgICBpZiAo
YXV0byBlbGVtZW50ID0gY29udHJvbCgpKQ0KLSAgICAgICAgZWxlbWVudC0+YWNjZXNzS2V5QWN0
aW9uKHNlbmRNb3VzZUV2ZW50cyk7DQotICAgIGVsc2UNCi0gICAgICAgIEhUTUxFbGVtZW50Ojph
Y2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsNCisgICAgICAgIHJldHVybiBlbGVtZW50
LT5hY2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsNCisNCisgICAgcmV0dXJuIEhUTUxF
bGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsNCiB9DQogDQogfSAvLyBu
YW1lc3BhY2UNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oDQppbmRleCBhNjA3
ZGY2Y2M0My4uNDY2MGYwNjc3NzMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxMYWJlbEVsZW1lbnQuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVt
ZW50LmgNCkBAIC00Miw3ICs0Miw3IEBAIHByaXZhdGU6DQogDQogICAgIGJvb2wgaXNFdmVudFRh
cmdldGVkQXRJbnRlcmFjdGl2ZURlc2NlbmRhbnRzKEV2ZW50JikgY29uc3Q7DQogDQotICAgIHZv
aWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsNCisgICAgYm9v
bCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIGZpbmFsOw0KIA0KICAgICAv
LyBPdmVycmlkZGVuIHRvIHVwZGF0ZSB0aGUgaG92ZXIvYWN0aXZlIHN0YXRlIG9mIHRoZSBjb3Jy
ZXNwb25kaW5nIGNvbnRyb2wuDQogICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wgPSB0cnVlLCBib29s
IHBhdXNlID0gZmFsc2UpIGZpbmFsOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTExlZ2VuZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxl
bWVudC5jcHANCmluZGV4IDA1NGVmMTI3ZmMyLi5hMWU1N2NmZTRkMCAxMDA2NDQNCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwDQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcA0KQEAgLTcyLDEwICs3MiwxMSBAQCB2b2lk
IEhUTUxMZWdlbmRFbGVtZW50Ojpmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwg
Rm9jdXNEaXJlY3Rpb24gZGlyZQ0KICAgICAgICAgY29udHJvbC0+Zm9jdXMoZmFsc2UsIGRpcmVj
dGlvbik7DQogfQ0KIA0KLXZvaWQgSFRNTExlZ2VuZEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihi
b29sIHNlbmRNb3VzZUV2ZW50cykNCitib29sIEhUTUxMZWdlbmRFbGVtZW50OjphY2Nlc3NLZXlB
Y3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpDQogew0KICAgICBpZiAoYXV0byBjb250cm9sID0g
YXNzb2NpYXRlZENvbnRyb2woKSkNCi0gICAgICAgIGNvbnRyb2wtPmFjY2Vzc0tleUFjdGlvbihz
ZW5kTW91c2VFdmVudHMpOw0KKyAgICAgICAgcmV0dXJuIGNvbnRyb2wtPmFjY2Vzc0tleUFjdGlv
bihzZW5kTW91c2VFdmVudHMpOw0KKyAgICByZXR1cm4gZmFsc2U7DQogfQ0KIA0KIEhUTUxGb3Jt
RWxlbWVudCogSFRNTExlZ2VuZEVsZW1lbnQ6OmZvcm0oKSBjb25zdA0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExlZ2VuZEVsZW1lbnQuaA0KaW5kZXggMTBmZTA0NTRiMTIuLjJkZjYyMjk3MWYxIDEw
MDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oDQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgNCkBAIC00Miw3ICs0Miw3
IEBAIHByaXZhdGU6DQogICAgIC8vIENvbnRyb2wgaW4gdGhlIGxlZ2VuZCdzIGZpZWxkIHNldCB0
aGF0IGdldHMgZm9jdXMgYW5kIGFjY2VzcyBrZXkuDQogICAgIFJlZlB0cjxIVE1MRm9ybUNvbnRy
b2xFbGVtZW50PiBhc3NvY2lhdGVkQ29udHJvbCgpOw0KIA0KLSAgICB2b2lkIGFjY2Vzc0tleUFj
dGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7DQorICAgIGJvb2wgYWNjZXNzS2V5QWN0
aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsNCiAgICAgdm9pZCBmb2N1cyhib29sIHJl
c3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24pIGZpbmFsOw0KIH07DQogDQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHANCmluZGV4IDY3Njhm
ZTEyYTFlLi45ZmU5ZTE0YjU2NSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9wdEdyb3VwRWxlbWVudC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdy
b3VwRWxlbWVudC5jcHANCkBAIC0xMTIsMTIgKzExMiwxMyBAQCBIVE1MU2VsZWN0RWxlbWVudCog
SFRNTE9wdEdyb3VwRWxlbWVudDo6b3duZXJTZWxlY3RFbGVtZW50KCkgY29uc3QNCiAgICAgcmV0
dXJuIGNvbnN0X2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQqPihhbmNlc3RvcnNPZlR5cGU8SFRNTFNl
bGVjdEVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpKTsNCiB9DQogDQotdm9pZCBIVE1MT3B0R3JvdXBF
bGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCkNCitib29sIEhUTUxPcHRHcm91cEVsZW1lbnQ6
OmFjY2Vzc0tleUFjdGlvbihib29sKQ0KIHsNCiAgICAgUmVmUHRyPEhUTUxTZWxlY3RFbGVtZW50
PiBzZWxlY3QgPSBvd25lclNlbGVjdEVsZW1lbnQoKTsNCiAgICAgLy8gc2VuZCB0byB0aGUgcGFy
ZW50IHRvIGJyaW5nIGZvY3VzIHRvIHRoZSBsaXN0IGJveA0KICAgICBpZiAoc2VsZWN0ICYmICFz
ZWxlY3QtPmZvY3VzZWQoKSkNCi0gICAgICAgIHNlbGVjdC0+YWNjZXNzS2V5QWN0aW9uKGZhbHNl
KTsNCisgICAgICAgIHJldHVybiBzZWxlY3QtPmFjY2Vzc0tleUFjdGlvbihmYWxzZSk7DQorICAg
IHJldHVybiBmYWxzZTsNCiB9DQogDQogfSAvLyBuYW1lc3BhY2UNCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oDQppbmRleCBhMjMzYjM1MDRkYS4uMzczZDU1M2VlMDcg
MTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaA0K
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgNCkBAIC00OSw3
ICs0OSw3IEBAIHByaXZhdGU6DQogDQogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENo
aWxkQ2hhbmdlJikgZmluYWw7DQogDQotICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2Vu
ZE1vdXNlRXZlbnRzKSBmaW5hbDsNCisgICAgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5k
TW91c2VFdmVudHMpIGZpbmFsOw0KIA0KICAgICB2b2lkIHJlY2FsY1NlbGVjdE9wdGlvbnMoKTsN
CiB9Ow0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHANCmluZGV4IDRk
OWYyMzFmMGY1Li42ZWRlOTdmODBiZCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9wdGlvbkVsZW1lbnQuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRp
b25FbGVtZW50LmNwcA0KQEAgLTEzNSwxMSArMTM1LDE0IEBAIHZvaWQgSFRNTE9wdGlvbkVsZW1l
bnQ6OnNldFRleHQoY29uc3QgU3RyaW5nICZ0ZXh0KQ0KICAgICAgICAgc2VsZWN0LT5zZXRTZWxl
Y3RlZEluZGV4KG9sZFNlbGVjdGVkSW5kZXgpOw0KIH0NCiANCi12b2lkIEhUTUxPcHRpb25FbGVt
ZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCkNCitib29sIEhUTUxPcHRpb25FbGVtZW50OjphY2Nl
c3NLZXlBY3Rpb24oYm9vbCkNCiB7DQogICAgIFJlZlB0cjxIVE1MU2VsZWN0RWxlbWVudD4gc2Vs
ZWN0ID0gb3duZXJTZWxlY3RFbGVtZW50KCk7DQotICAgIGlmIChzZWxlY3QpDQorICAgIGlmIChz
ZWxlY3QpIHsNCiAgICAgICAgIHNlbGVjdC0+YWNjZXNzS2V5U2V0U2VsZWN0ZWRJbmRleChpbmRl
eCgpKTsNCisgICAgICAgIHJldHVybiB0cnVlOw0KKyAgICB9DQorICAgIHJldHVybiBmYWxzZTsN
CiB9DQogDQogaW50IEhUTUxPcHRpb25FbGVtZW50OjppbmRleCgpIGNvbnN0DQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oDQppbmRleCA5MWM1YWJjN2UwMS4uNzg1YTdjZGZl
OGMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgN
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaA0KQEAgLTcyLDcg
KzcyLDcgQEAgcHJpdmF0ZToNCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOw0KIA0KICAgICBJbnNlcnRlZEludG9B
bmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlLCBDb250YWlu
ZXJOb2RlJikgZmluYWw7DQotICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wpIGZpbmFsOw0K
KyAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29sKSBmaW5hbDsNCiANCiAgICAgdm9pZCBjaGls
ZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBmaW5hbDsNCiANCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwDQppbmRleCA4MjY1MTkyYTQyNi4uZWU0MzczNjY3
MmIgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cA0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHANCkBAIC0z
OTAsMTAgKzM5MCwxMCBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpvcHRpb25FbGVtZW50Q2hp
bGRyZW5DaGFuZ2VkKCkNCiAgICAgICAgIGNhY2hlLT5jaGlsZHJlbkNoYW5nZWQodGhpcyk7DQog
fQ0KIA0KLXZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRN
b3VzZUV2ZW50cykNCitib29sIEhUTUxTZWxlY3RFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9v
bCBzZW5kTW91c2VFdmVudHMpDQogew0KICAgICBmb2N1cygpOw0KLSAgICBkaXNwYXRjaFNpbXVs
YXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyA/IFNlbmRNb3VzZVVwRG93bkV2ZW50cyA6IFNl
bmROb0V2ZW50cyk7DQorICAgIHJldHVybiBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRN
b3VzZUV2ZW50cyA/IFNlbmRNb3VzZVVwRG93bkV2ZW50cyA6IFNlbmROb0V2ZW50cyk7DQogfQ0K
IA0KIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldE11bHRpcGxlKGJvb2wgbXVsdGlwbGUpDQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oDQppbmRleCA3NmJlZGVkMWMxZS4u
MjcyZjFjNDA0ODMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaA0K
QEAgLTczLDcgKzczLDcgQEAgcHVibGljOg0KIA0KICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBW
ZWN0b3I8SFRNTEVsZW1lbnQqPiYgbGlzdEl0ZW1zKCkgY29uc3Q7DQogDQotICAgIHZvaWQgYWNj
ZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsNCisgICAgYm9vbCBhY2Nl
c3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIGZpbmFsOw0KICAgICB2b2lkIGFjY2Vz
c0tleVNldFNlbGVjdGVkSW5kZXgoaW50KTsNCiANCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRNdWx0aXBsZShib29sKTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVt
ZW50LmNwcA0KaW5kZXggNWMyOTdjYTZmNmEuLmVlMzEwZDAwYzJhIDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcA0KKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcA0KQEAgLTUwMCw5ICs1MDAsMTAgQEAg
Ym9vbCBIVE1MVGV4dEFyZWFFbGVtZW50Ojppc1ZhbGlkVmFsdWUoY29uc3QgU3RyaW5nJiBjYW5k
aWRhdGUpIGNvbnN0DQogICAgIHJldHVybiAhdmFsdWVNaXNzaW5nKGNhbmRpZGF0ZSkgJiYgIXRv
b1Nob3J0KGNhbmRpZGF0ZSwgSWdub3JlRGlydHlGbGFnKSAmJiAhdG9vTG9uZyhjYW5kaWRhdGUs
IElnbm9yZURpcnR5RmxhZyk7DQogfQ0KIA0KLXZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6YWNj
ZXNzS2V5QWN0aW9uKGJvb2wpDQorYm9vbCBIVE1MVGV4dEFyZWFFbGVtZW50OjphY2Nlc3NLZXlB
Y3Rpb24oYm9vbCkNCiB7DQogICAgIGZvY3VzKCk7DQorICAgIHJldHVybiBmYWxzZTsNCiB9DQog
DQogdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXRDb2xzKHVuc2lnbmVkIGNvbHMpDQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaA0KaW5kZXggNWU5NjgyMzc2YzIu
LmRkMTA3YzM4OTUzIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5oDQpAQCAtMTIwLDcgKzEyMCw3IEBAIHByaXZhdGU6DQogICAgIGJvb2wgaXNLZXlib2FyZEZv
Y3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QgZmluYWw7DQogICAgIHZvaWQgdXBkYXRlRm9j
dXNBcHBlYXJhbmNlKFNlbGVjdGlvblJlc3RvcmF0aW9uTW9kZSwgU2VsZWN0aW9uUmV2ZWFsTW9k
ZSkgZmluYWw7DQogDQotICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZl
bnRzKSBmaW5hbDsNCisgICAgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVu
dHMpIGZpbmFsOw0KIA0KICAgICBib29sIHNob3VsZFVzZUlucHV0TWV0aG9kKCkgZmluYWw7DQog
ICAgIGJvb2wgbWF0Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNzKCkgY29uc3QgZmluYWw7DQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwDQppbmRleCAxNGI2M2JmNWZkYi4uNmFm
OWJjNzIzYjAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlw
ZS5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcA0KQEAg
LTczLDggKzczLDkgQEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhpZGRlbklucHV0VHlwZTo6
Y3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYmKQ0KICAgICByZXR1cm4gbnVsbHB0cjsN
CiB9DQogDQotdm9pZCBIaWRkZW5JbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihib29sKQ0KK2Jv
b2wgSGlkZGVuSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oYm9vbCkNCiB7DQorICAgIHJldHVy
biBmYWxzZTsNCiB9DQogDQogYm9vbCBIaWRkZW5JbnB1dFR5cGU6OnJlbmRlcmVySXNOZWVkZWQo
KQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oDQppbmRleCAwOGNlNGE4NmYwZS4u
NjgzYzZiZDc1YTIgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0
VHlwZS5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oDQpAQCAt
NDQsNyArNDQsNyBAQCBwcml2YXRlOg0KICAgICB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRl
KGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKSBvdmVycmlkZTsNCiAgICAgYm9vbCBzdXBwb3J0c1Zh
bGlkYXRpb24oKSBjb25zdCBvdmVycmlkZTsNCiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IGNyZWF0ZUlucHV0UmVuZGVyZXIoUmVuZGVyU3R5bGUmJikgb3ZlcnJpZGU7DQotICAgIHZvaWQg
YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBvdmVycmlkZTsNCisgICAgYm9v
bCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIG92ZXJyaWRlOw0KICAgICBi
b29sIHJlbmRlcmVySXNOZWVkZWQoKSBvdmVycmlkZTsNCiAgICAgYm9vbCBzdG9yZXNWYWx1ZVNl
cGFyYXRlRnJvbUF0dHJpYnV0ZSgpIG92ZXJyaWRlOw0KICAgICBib29sIGlzSGlkZGVuVHlwZSgp
IGNvbnN0IG92ZXJyaWRlOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcA0KaW5kZXggMTBjODFj
YzUyMGYuLjMwNzM1Y2MxOTcxIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHANCkBAIC01
OTIsMTAgKzU5MiwxMSBAQCB2b2lkIElucHV0VHlwZTo6aGFuZGxlQmx1ckV2ZW50KCkNCiB7DQog
fQ0KIA0KLXZvaWQgSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oYm9vbCkNCitib29sIElucHV0
VHlwZTo6YWNjZXNzS2V5QWN0aW9uKGJvb2wpDQogew0KICAgICBBU1NFUlQoZWxlbWVudCgpKTsN
CiAgICAgZWxlbWVudCgpLT5mb2N1cyhmYWxzZSk7DQorICAgIHJldHVybiBmYWxzZTsNCiB9DQog
DQogdm9pZCBJbnB1dFR5cGU6OmFkZFNlYXJjaFJlc3VsdCgpDQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmgNCmluZGV4IDEyOGE4ZWU3NGZjLi5lNmQ0YmEzYjRmMSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmgNCkBAIC0yMDUsNyArMjA1LDcgQEAgcHVibGljOg0KICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVXNlSW5wdXRNZXRob2QoKSBjb25zdDsNCiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUZvY3Vz
RXZlbnQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIEZvY3VzRGlyZWN0aW9uKTsNCiAgICAgdmlydHVh
bCB2b2lkIGhhbmRsZUJsdXJFdmVudCgpOw0KLSAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0
aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKTsNCisgICAgdmlydHVhbCBib29sIGFjY2Vzc0tleUFj
dGlvbihib29sIHNlbmRNb3VzZUV2ZW50cyk7DQogICAgIHZpcnR1YWwgYm9vbCBjYW5CZVN1Y2Nl
c3NmdWxTdWJtaXRCdXR0b24oKTsNCiAgICAgdmlydHVhbCB2b2lkIHN1YnRyZWVIYXNDaGFuZ2Vk
KCk7DQogICAgIHZpcnR1YWwgdm9pZCBibHVyKCk7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5w
dXRUeXBlLmNwcA0KaW5kZXggYmM2NDlkZjIzNDYuLmViNzhjODFhODE5IDEwMDY0NA0KLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHANCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwDQpAQCAtMzE1LDEyICszMTUsMTAgQEAgU3RyaW5n
IFJhbmdlSW5wdXRUeXBlOjpzZXJpYWxpemUoY29uc3QgRGVjaW1hbCYgdmFsdWUpIGNvbnN0DQog
fQ0KIA0KIC8vIEZJWE1FOiBDb3VsZCBzaGFyZSB0aGlzIHdpdGggQmFzZUNsaWNrYWJsZVdpdGhL
ZXlJbnB1dFR5cGUgYW5kIEJhc2VDaGVja2FibGVJbnB1dFR5cGUgaWYgd2UgaGFkIGEgY29tbW9u
IGJhc2UgY2xhc3MuDQotdm9pZCBSYW5nZUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKGJvb2wg
c2VuZE1vdXNlRXZlbnRzKQ0KK2Jvb2wgUmFuZ2VJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihi
b29sIHNlbmRNb3VzZUV2ZW50cykNCiB7DQotICAgIElucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9u
KHNlbmRNb3VzZUV2ZW50cyk7DQotDQotICAgIGlmIChhdXRvKiBlbGVtZW50ID0gdGhpcy0+ZWxl
bWVudCgpKQ0KLSAgICAgICAgZWxlbWVudC0+ZGlzcGF0Y2hTaW11bGF0ZWRDbGljaygwLCBzZW5k
TW91c2VFdmVudHMgPyBTZW5kTW91c2VVcERvd25FdmVudHMgOiBTZW5kTm9FdmVudHMpOw0KKyAg
ICBhdXRvKiBlbGVtZW50ID0gdGhpcy0+ZWxlbWVudCgpOw0KKyAgICByZXR1cm4gSW5wdXRUeXBl
OjphY2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKSB8fCAoZWxlbWVudCAmJiBlbGVtZW50
LT5kaXNwYXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyA/IFNlbmRNb3VzZVVw
RG93bkV2ZW50cyA6IFNlbmROb0V2ZW50cykpOw0KIH0NCiANCiB2b2lkIFJhbmdlSW5wdXRUeXBl
OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpDQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9SYW5nZUlucHV0VHlwZS5oDQppbmRleCA0MzI3Yzk0OGFjOS4uYzk2MjdiMzJlNDUgMTAw
NjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgNCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaA0KQEAgLTU2LDcgKzU2LDcgQEAgcHJp
dmF0ZToNCiAgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgZmluYWw7DQogICAgIERlY2lt
YWwgcGFyc2VUb051bWJlcihjb25zdCBTdHJpbmcmLCBjb25zdCBEZWNpbWFsJikgY29uc3QgZmlu
YWw7DQogICAgIFN0cmluZyBzZXJpYWxpemUoY29uc3QgRGVjaW1hbCYpIGNvbnN0IGZpbmFsOw0K
LSAgICB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7DQor
ICAgIGJvb2wgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsNCiAg
ICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsNCiAg
ICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZp
ZWxkRXZlbnRCZWhhdmlvcikgZmluYWw7DQogICAgIFN0cmluZyBmYWxsYmFja1ZhbHVlKCkgY29u
c3QgZmluYWw7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwDQppbmRleCA1NTRiZThhMTk5Zi4u
YTdiNDBmOTkwMGQgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5j
cHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcA0KQEAgLTkzNSw5ICs5
MzUsOSBAQCB2b2lkIFNWR0VsZW1lbnQ6OnVwZGF0ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0aW9u
KGJvb2wgaGFzUmVsYXRpdmVMZW5ndGhzLCBTVkdFbA0KICAgICB9DQogfQ0KIA0KLXZvaWQgU1ZH
RWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KK2Jvb2wgU1ZH
RWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQ0KIHsNCi0gICAg
ZGlzcGF0Y2hTaW11bGF0ZWRDbGljaygwLCBzZW5kTW91c2VFdmVudHMgPyBTZW5kTW91c2VVcERv
d25FdmVudHMgOiBTZW5kTm9FdmVudHMpOw0KKyAgICByZXR1cm4gZGlzcGF0Y2hTaW11bGF0ZWRD
bGljaygwLCBzZW5kTW91c2VFdmVudHMgPyBTZW5kTW91c2VVcERvd25FdmVudHMgOiBTZW5kTm9F
dmVudHMpOw0KIH0NCiANCiB2b2lkIFNWR0VsZW1lbnQ6OmludmFsaWRhdGVJbnN0YW5jZXMoKQ0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRWxlbWVudC5oDQppbmRleCAyNmNjYmUzMDkyMC4uM2IwNDk0MjFkN2YgMTAw
NjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oDQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oDQpAQCAtMTc5LDcgKzE3OSw3IEBAIHByaXZhdGU6DQog
ICAgIHZpcnR1YWwgdm9pZCBjbGVhclRhcmdldCgpIHsgfQ0KIA0KICAgICB2b2lkIGJ1aWxkUGVu
ZGluZ1Jlc291cmNlc0lmTmVlZGVkKCk7DQotICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wg
c2VuZE1vdXNlRXZlbnRzKSBvdmVycmlkZTsNCisgICAgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9v
bCBzZW5kTW91c2VFdmVudHMpIG92ZXJyaWRlOw0KIA0KICNpZm5kZWYgTkRFQlVHDQogICAgIHZp
cnR1YWwgYm9vbCBmaWx0ZXJPdXRBbmltYXRhYmxlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBjb25zdDsNCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>