<?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>169664</bug_id>
          
          <creation_ts>2017-03-15 00:17:07 -0700</creation_ts>
          <short_desc>Flatten RTC enum naming</short_desc>
          <delta_ts>2017-03-15 23:10:57 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=169709</see_also>
          <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>
          
          <blocked>169662</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1288004</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-03-15 00:17:07 -0700</bug_when>
    <thetext>RTC enums are often used as subtypes of classes. Unify them to use the same naming throughout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288009</commentid>
    <comment_count>1</comment_count>
      <attachid>304486</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-03-15 00:44:53 -0700</bug_when>
    <thetext>Created attachment 304486
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288010</commentid>
    <comment_count>2</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-03-15 00:45:15 -0700</bug_when>
    <thetext>Patch is built on top of 169660.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288068</commentid>
    <comment_count>3</comment_count>
      <attachid>304486</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-03-15 08:56:48 -0700</bug_when>
    <thetext>Comment on attachment 304486
Patch

LGTM!
Some comments below.
Will r+ once rebased.

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

&gt; Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp:333
&gt; +    if (m_peerConnection.signalingState() == RTCSignalingState::Closed)

Nice!

&gt; Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp:821
&gt; +        case RTCIceTransportState::New: ++newCount; break;

This does not match WebKit style.

&gt; Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp:865
&gt; +    Vector&lt;RTCIceTransportState&gt; transportStates;

I know this is untouched code.
Would you be able to use reserveInitialCapacity/uncheckedAppend

&gt; Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp:870
&gt; +    m_peerConnection.updateIceConnectionState(static_cast&lt;RTCIceConnectionState&gt;(derivedState));

This looks bad, deriveAggregatedIceConnectionState should really be changed to return RTCIceConnectionState.

&gt; Source/WebCore/Modules/mediastream/RTCConfiguration.idl:29
&gt; +    ImplementedAs=RTCIceTransportPolicy

Out of curiosity why do you need to add ImplementedAs? Is it because otherwise it would be named RTCConfiguration::RTCIceTransportPolicy?

&gt; Source/WebCore/Modules/mediastream/RTCConfiguration.idl:39
&gt; +] enum RTCBundlePolicy {

Given the direction, I guess we should put RTCBundlePolicy and RTCIceTransportPolicy enum class definitions in RTCConfiguration.h
It is not very clear why this enum does not have its own IDL file and others will. I guess it is ok anyway.

&gt; Source/WebCore/Modules/mediastream/RTCIceConnectionState.h:28
&gt; +#include &quot;PeerConnectionStates.h&quot;

That seems a bit strange, could we not move connection state enum here and include this file in PeerConnectionStates.h?
Ditto for the other files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288152</commentid>
    <comment_count>4</comment_count>
      <attachid>304486</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-03-15 11:31:33 -0700</bug_when>
    <thetext>Comment on attachment 304486
Patch

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

&gt;&gt; Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp:821
&gt;&gt; +        case RTCIceTransportState::New: ++newCount; break;
&gt; 
&gt; This does not match WebKit style.

I can split these out into separate lines.

&gt;&gt; Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp:865
&gt;&gt; +    Vector&lt;RTCIceTransportState&gt; transportStates;
&gt; 
&gt; I know this is untouched code.
&gt; Would you be able to use reserveInitialCapacity/uncheckedAppend

I prefer not doing fly-by fixes in these kinds of patches; it&apos;ll be confusing during blaming.

&gt;&gt; Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp:870
&gt;&gt; +    m_peerConnection.updateIceConnectionState(static_cast&lt;RTCIceConnectionState&gt;(derivedState));
&gt; 
&gt; This looks bad, deriveAggregatedIceConnectionState should really be changed to return RTCIceConnectionState.

Ditto.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCConfiguration.idl:29
&gt;&gt; +    ImplementedAs=RTCIceTransportPolicy
&gt; 
&gt; Out of curiosity why do you need to add ImplementedAs? Is it because otherwise it would be named RTCConfiguration::RTCIceTransportPolicy?

Then it is generated as RTCIceTransportPolicy rather than RTCConfiguration::IceTransportPolicy (the script removes common prefixes).

&gt;&gt; Source/WebCore/Modules/mediastream/RTCConfiguration.idl:39
&gt;&gt; +] enum RTCBundlePolicy {
&gt; 
&gt; Given the direction, I guess we should put RTCBundlePolicy and RTCIceTransportPolicy enum class definitions in RTCConfiguration.h
&gt; It is not very clear why this enum does not have its own IDL file and others will. I guess it is ok anyway.

I include enums in the same file as the main IDL definition if they are not used elsewhere in the spec. If they are used in multiple places, then the enum has to be declared separately.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCIceConnectionState.h:28
&gt;&gt; +#include &quot;PeerConnectionStates.h&quot;
&gt; 
&gt; That seems a bit strange, could we not move connection state enum here and include this file in PeerConnectionStates.h?
&gt; Ditto for the other files.

This would be a layering violation, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288220</commentid>
    <comment_count>5</comment_count>
      <attachid>304538</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-03-15 13:36:07 -0700</bug_when>
    <thetext>Created attachment 304538
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288221</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-03-15 13:37:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/31072224&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288272</commentid>
    <comment_count>7</comment_count>
      <attachid>304558</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-03-15 15:19:06 -0700</bug_when>
    <thetext>Created attachment 304558
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288303</commentid>
    <comment_count>8</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-03-15 15:44:14 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; 
&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp:865
&gt; &gt; +    Vector&lt;RTCIceTransportState&gt; transportStates;
&gt; 
&gt; I know this is untouched code.
&gt; Would you be able to use reserveInitialCapacity/uncheckedAppend
&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp:870
&gt; &gt; +    m_peerConnection.updateIceConnectionState(static_cast&lt;RTCIceConnectionState&gt;(derivedState));
&gt; 
&gt; This looks bad, deriveAggregatedIceConnectionState should really be changed
&gt; to return RTCIceConnectionState.
&gt; 

For these two comments, filed bug 169709.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288306</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-03-15 15:45:01 -0700</bug_when>
    <thetext>&gt; &gt; I know this is untouched code.
&gt; &gt; Would you be able to use reserveInitialCapacity/uncheckedAppend
&gt; 
&gt; I prefer not doing fly-by fixes in these kinds of patches; it&apos;ll be
&gt; confusing during blaming.

This kind of refactoring is usual, like doing Ref/RefPtr things.

&gt; &gt;&gt; Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp:870
&gt; &gt;&gt; +    m_peerConnection.updateIceConnectionState(static_cast&lt;RTCIceConnectionState&gt;(derivedState));
&gt; &gt; 
&gt; &gt; This looks bad, deriveAggregatedIceConnectionState should really be changed to return RTCIceConnectionState.
&gt; 
&gt; Ditto.

Put a FIXME then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288473</commentid>
    <comment_count>10</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-03-15 23:10:57 -0700</bug_when>
    <thetext>Committed r214030: &lt;http://trac.webkit.org/changeset/214030&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304486</attachid>
            <date>2017-03-15 00:44:53 -0700</date>
            <delta_ts>2017-03-15 13:36:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169664-20170315004452.patch</filename>
            <type>text/plain</type>
            <size>94751</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzODgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RjM2YxZDRlNzZjNGYz
MjIyN2MzZTk0MmU5MWRiZGVjN2VmZWFmYy4uNzMwYjkyNjk3NWU2Nzc3ODE5YmU3YTMzNjc2MDJm
ZWFjN2MzNmQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTAzLTE1ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBGbGF0dGVuIFJUQyBlbnVtIG5hbWlu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5NjY0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGNv
bnNpc3RlbnQgbmFtZXMgb2YgUlRDIGVudW1zIHRocm91Z2hvdXQgV2ViQ29yZS4gVGhpcyBtZWFu
cyBzdXJmYWNpbmcKKyAgICAgICAgSUNFIGVudW1zIG91dCBvZiBQZWVyQ29ubmVjdGlvblN0YXRl
LiBLZWVwIHRoZSBvbGQgbmFtZXMgYXJvdW5kIGZvciBvdGhlcgorICAgICAgICBwb3J0cy4KKwor
ICAgICAgICBBZGQgUlRDSWNlQ29ubmVjdGlvblN0YXRlLCBSVENJY2VHYXRoZXJpbmdTdGF0ZSwg
YW5kIFJUQ1NpZ25hbGluZ1N0YXRlIGVudW1zLgorICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENJY2VDb25uZWN0aW9uU3RhdGUuaDogQWRkZWQuIFRoZSBlbnVtIGlzIGRlZmluZWQg
aW4KKyAgICAgICAgUGVlckNvbm5lY3Rpb25TdGF0ZXMuaCwgc28ganVzdCBpbmNsdWRlIHRoYXQg
ZmlsZS4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNvbm5lY3Rpb25TdGF0
ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlR2F0aGVy
aW5nU3RhdGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VH
YXRoZXJpbmdTdGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU2lnbmFsaW5nU3RhdGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTaWduYWxpbmdTdGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Bl
ZXJDb25uZWN0aW9uU3RhdGVzLmg6IE1vdmUgdGhlIGV4aXN0aW5nIGVudW1zIGludG8KKyAgICAg
ICAgV2ViQ29yZSwgYnV0IGtlZXAgYWxpYXNlcyB0byB0aGUgb2xkIG5hbWVzIHdpdGhpbiB0aGUg
UGVlckNvbm5lY3Rpb25TdGF0ZXMKKyAgICAgICAgbmFtZXNwYWNlLgorCisgICAgICAgIFJlZmFj
dG9yIHRvIHVzZSB0aGUgbmV3IGVudW0gbmFtZXMuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uY3BwOiBSZWZhY3Rvci4KKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5pZGw6IEFkZCBGSVhNRXMgZm9y
IGJyaW5naW5nIHRoaXMgdXAKKyAgICAgICAgdG8gc3BlYy4KKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0ljZVRyYW5zcG9ydC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOiBSZWZhY3RvciB0aGUgdGhyZWUgZnVuY3Rpb25zCisg
ICAgICAgIGJlbG93IHRvIHVzaW5nIHRoZSBlbnVtIGluc3RlYWQgb2YgcmV0dXJuaW5nIHN0cmlu
Z3MuIFRoaXMgYWxsb3dzIHJlbW92ZSBvZgorICAgICAgICB0aGUgaW50ZXJuYWwqIHZlcnNpb25z
IG9mIHRoZXNlIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9u
OjpzaWduYWxpbmdTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29u
bmVjdGlvbjo6aWNlR2F0aGVyaW5nU3RhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UlRDUGVlckNvbm5lY3Rpb246OmljZUNvbm5lY3Rpb25TdGF0ZSk6IERlbGV0ZWQuCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oOiBSZXBsYWNlIGludGVy
bmFsU2lnbmFsaW5nU3RhdGUsCisgICAgICAgIGludGVybmFsSWNlR2F0aGVyaW5nU3RhdGUsIGFu
ZCBpbnRlcm5hbEljZUNvbm5lY3Rpb25TdGF0ZS4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbi5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRp
b24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50Lmg6CisKIDIwMTctMDMtMTQg
IEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFuIHVwIFJUQ1BlZXJD
b25uZWN0aW9uIElETApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA2NWJlZmJlMmFjZWQxM2Y3NTQ2
OGIwNDJlNDZhNDlkYWIxNWIxNTllLi41MWQ3MWEzM2U5YmUyMWJjOGI5ZmU4NjE3ZDY4ZDZhYmM4
ODY3ZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjQxLDYgKzI0MSw4IEBAIHNldChXZWJD
b3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hh
bm5lbEV2ZW50LmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmlk
bAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaWRsCisgICAg
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDb25uZWN0aW9uU3RhdGUuaWRsCisgICAgTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENJY2VHYXRoZXJpbmdTdGF0ZS5pZGwKICAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0ljZVNlcnZlci5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ09mZmVy
QW5zd2VyT3B0aW9ucy5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ09mZmVyT3B0aW9u
cy5pZGwKQEAgLTI1MCw2ICsyNTIsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwog
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNjZWl2ZXIuaWRsCiAgICAgTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2NlaXZlckRpcmVjdGlvbi5pZGwKICAgICBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwKKyAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1NpZ25hbGluZ1N0YXRlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXBvcnQuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENUcmFja0V2ZW50Lmlk
bAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAwM2I5ZjRiZDI1MGU0ZmNjZDU1
OTE2NmI1MWVlOTVkYWQ0NTFlNDc1Li40YWI2NDBkMDNlOWQ5NjgyMTA3OTc2YzFkZGMyYWUzOGFm
YzIwNzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE3Nyw3ICsxNzcsNyBA
QCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFt
L05hdmlnYXRvclVzZXJNZWRpYS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0
cmVhbS9PdmVyY29uc3RyYWluZWRFcnJvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9PdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmlkbCBcCi0JJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Fuc3dlck9wdGlvbnMuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQW5zd2VyT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb25maWd1cmF0aW9uLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlRvbmVDaGFuZ2VFdmVudC5pZGwgXApAQCAt
MTg1LDE1ICsxODUsMTggQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGVFdmVudC5pZGwgXAorICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDb25uZWN0aW9uU3RhdGUuaWRsIFwK
KyAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlR2F0aGVyaW5nU3RhdGUu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlU2VydmVyLmlk
bCBcCi0JJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ09mZmVyQW5zd2VyT3B0aW9u
cy5pZGwgXAotCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENPZmZlck9wdGlvbnMu
aWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDT2ZmZXJBbnN3ZXJP
cHRpb25zLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ09mZmVy
T3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBSZWNlaXZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBTZW5kZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
VHJhbnNjZWl2ZXIuaWRsIFwKLQkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
VHJhbnNjZWl2ZXJEaXJlY3Rpb24uaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwVHJhbnNjZWl2ZXJEaXJlY3Rpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCBcCisgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1NpZ25hbGluZ1N0YXRlLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1RyYWNrRXZlbnQuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5k
cG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggNmFlOGExN2Q0Y2ZmOWFm
N2JjODE4NzYyM2JkODYyZjJlNWZkMTE5Yy4uMDMxOTg0Nzk3NjM5NjA0OTBkMWVjOWFlNjdhMTNl
MGI1OWY1N2Q4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcApAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgRXJpY3Nzb24gQUIuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw5ICszMCw5
IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhRW5kcG9pbnRQ
ZWVyQ29ubmVjdGlvbi5oIgogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCi0jaW5jbHVkZSAiTWVkaWFF
bmRwb2ludFBlZXJDb25uZWN0aW9uLmgiCiAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5j
bHVkZSAiSlNSVENTZXNzaW9uRGVzY3JpcHRpb24uaCIKQEAgLTU3LDcgKzU4LDYgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIFBlZXJDb25uZWN0aW9uOwotdXNpbmcg
bmFtZXNwYWNlIFBlZXJDb25uZWN0aW9uU3RhdGVzOwogCiB1c2luZyBNZWRpYURlc2NyaXB0aW9u
VmVjdG9yID0gVmVjdG9yPFBlZXJNZWRpYURlc2NyaXB0aW9uPjsKIHVzaW5nIFJ0cFRyYW5zY2Vp
dmVyVmVjdG9yID0gVmVjdG9yPFJlZlB0cjxSVENSdHBUcmFuc2NlaXZlcj4+OwpAQCAtMzMwLDcg
KzMzMCw3IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpkb1NldExvY2FsRGVz
Y3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uJiBkCiAKIHZvaWQgTWVkaWFFbmRwb2ludFBl
ZXJDb25uZWN0aW9uOjpzZXRMb2NhbERlc2NyaXB0aW9uVGFzayhSZWZQdHI8UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uPiYmIGRlc2NyaXB0aW9uKQogewotICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmlu
dGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgIGlm
IChtX3BlZXJDb25uZWN0aW9uLnNpZ25hbGluZ1N0YXRlKCkgPT0gUlRDU2lnbmFsaW5nU3RhdGU6
OkNsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byByZXN1bHQgPSBNZWRpYUVuZHBv
aW50U2Vzc2lvbkRlc2NyaXB0aW9uOjpjcmVhdGUoV1RGTW92ZShkZXNjcmlwdGlvbiksICptX3Nk
cFByb2Nlc3Nvcik7CkBAIC0zNTEsMTEgKzM1MSwxMSBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVy
Q29ubmVjdGlvbjo6c2V0TG9jYWxEZXNjcmlwdGlvblRhc2soUmVmUHRyPFJUQ1Nlc3Npb25EZXNj
cgogICAgICAgICBNZWRpYUVuZHBvaW50OjpVcGRhdGVSZXN1bHQgcmVzdWx0ID0gbV9tZWRpYUVu
ZHBvaW50LT51cGRhdGVSZWNlaXZlQ29uZmlndXJhdGlvbihuZXdEZXNjcmlwdGlvbi0+Y29uZmln
dXJhdGlvbigpLCBpc0luaXRpYXRvcik7CiAKICAgICAgICAgaWYgKHJlc3VsdCA9PSBNZWRpYUVu
ZHBvaW50OjpVcGRhdGVSZXN1bHQ6OlN1Y2Nlc3NXaXRoSWNlUmVzdGFydCkgewotICAgICAgICAg
ICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxJY2VHYXRoZXJpbmdTdGF0ZSgpICE9IElj
ZUdhdGhlcmluZ1N0YXRlOjpHYXRoZXJpbmcpCi0gICAgICAgICAgICAgICAgbV9wZWVyQ29ubmVj
dGlvbi51cGRhdGVJY2VHYXRoZXJpbmdTdGF0ZShJY2VHYXRoZXJpbmdTdGF0ZTo6R2F0aGVyaW5n
KTsKKyAgICAgICAgICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmljZUdhdGhlcmluZ1N0YXRlKCkg
IT0gUlRDSWNlR2F0aGVyaW5nU3RhdGU6OkdhdGhlcmluZykKKyAgICAgICAgICAgICAgICBtX3Bl
ZXJDb25uZWN0aW9uLnVwZGF0ZUljZUdhdGhlcmluZ1N0YXRlKFJUQ0ljZUdhdGhlcmluZ1N0YXRl
OjpHYXRoZXJpbmcpOwogCi0gICAgICAgICAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5h
bEljZUNvbm5lY3Rpb25TdGF0ZSgpICE9IEljZUNvbm5lY3Rpb25TdGF0ZTo6Q29tcGxldGVkKQot
ICAgICAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb24udXBkYXRlSWNlQ29ubmVjdGlvblN0YXRl
KEljZUNvbm5lY3Rpb25TdGF0ZTo6Q29ubmVjdGVkKTsKKyAgICAgICAgICAgIGlmIChtX3BlZXJD
b25uZWN0aW9uLmljZUNvbm5lY3Rpb25TdGF0ZSgpICE9IFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZTo6
Q29tcGxldGVkKQorICAgICAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb24udXBkYXRlSWNlQ29u
bmVjdGlvblN0YXRlKFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZTo6Q29ubmVjdGVkKTsKIAogICAgICAg
ICAgICAgTE9HX0VSUk9SKCJJQ0UgcmVzdGFydCBpcyBub3QgaW1wbGVtZW50ZWQiKTsKICAgICAg
ICAgICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC0zODgsMTMgKzM4OCwxMyBAQCB2b2lkIE1lZGlh
RW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6c2V0TG9jYWxEZXNjcmlwdGlvblRhc2soUmVmUHRyPFJU
Q1Nlc3Npb25EZXNjcgogICAgIGlmICghaGFzVW5hc3NvY2lhdGVkVHJhbnNjZWl2ZXJzKHRyYW5z
Y2VpdmVycykpCiAgICAgICAgIGNsZWFyTmVnb3RpYXRpb25OZWVkZWRTdGF0ZSgpOwogCi0gICAg
U2lnbmFsaW5nU3RhdGUgbmV3U2lnbmFsaW5nU3RhdGU7CisgICAgUlRDU2lnbmFsaW5nU3RhdGUg
bmV3U2lnbmFsaW5nU3RhdGU7CiAKICAgICAvLyBVcGRhdGUgc3RhdGUgYW5kIGxvY2FsIGRlc2Ny
aXB0aW9ucyBhY2NvcmRpbmcgdG8gc2V0TG9jYWwvUmVtb3RlRGVzY3JpcHRpb24gcHJvY2Vzc2lu
ZyBtb2RlbAogICAgIHN3aXRjaCAobmV3RGVzY3JpcHRpb24tPnR5cGUoKSkgewogICAgIGNhc2Ug
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpPZmZlcjoKICAgICAgICAgbV9wZW5kaW5n
TG9jYWxEZXNjcmlwdGlvbiA9IFdURk1vdmUobmV3RGVzY3JpcHRpb24pOwotICAgICAgICBuZXdT
aWduYWxpbmdTdGF0ZSA9IFNpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxPZmZlcjsKKyAgICAgICAg
bmV3U2lnbmFsaW5nU3RhdGUgPSBSVENTaWduYWxpbmdTdGF0ZTo6SGF2ZUxvY2FsT2ZmZXI7CiAg
ICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6
OkFuc3dlcjoKQEAgLTQwMiwyNCArNDAyLDI0IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25u
ZWN0aW9uOjpzZXRMb2NhbERlc2NyaXB0aW9uVGFzayhSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyCiAg
ICAgICAgIG1fY3VycmVudFJlbW90ZURlc2NyaXB0aW9uID0gbV9wZW5kaW5nUmVtb3RlRGVzY3Jp
cHRpb247CiAgICAgICAgIG1fcGVuZGluZ0xvY2FsRGVzY3JpcHRpb24gPSBudWxscHRyOwogICAg
ICAgICBtX3BlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgIG5ld1Np
Z25hbGluZ1N0YXRlID0gU2lnbmFsaW5nU3RhdGU6OlN0YWJsZTsKKyAgICAgICAgbmV3U2lnbmFs
aW5nU3RhdGUgPSBSVENTaWduYWxpbmdTdGF0ZTo6U3RhYmxlOwogICAgICAgICBicmVhazsKIAog
ICAgIGNhc2UgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpSb2xsYmFjazoKICAgICAg
ICAgbV9wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgIG5ld1NpZ25h
bGluZ1N0YXRlID0gU2lnbmFsaW5nU3RhdGU6OlN0YWJsZTsKKyAgICAgICAgbmV3U2lnbmFsaW5n
U3RhdGUgPSBSVENTaWduYWxpbmdTdGF0ZTo6U3RhYmxlOwogICAgICAgICBicmVhazsKIAogICAg
IGNhc2UgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpQcmFuc3dlcjoKICAgICAgICAg
bV9wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiA9IFdURk1vdmUobmV3RGVzY3JpcHRpb24pOwotICAg
ICAgICBuZXdTaWduYWxpbmdTdGF0ZSA9IFNpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxQckFuc3dl
cjsKKyAgICAgICAgbmV3U2lnbmFsaW5nU3RhdGUgPSBSVENTaWduYWxpbmdTdGF0ZTo6SGF2ZUxv
Y2FsUHJhbnN3ZXI7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIHVwZGF0ZVNpZ25hbGlu
Z1N0YXRlKG5ld1NpZ25hbGluZ1N0YXRlKTsKIAotICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmlu
dGVybmFsSWNlR2F0aGVyaW5nU3RhdGUoKSA9PSBJY2VHYXRoZXJpbmdTdGF0ZTo6TmV3ICYmIG1l
ZGlhRGVzY3JpcHRpb25zLnNpemUoKSkKLSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbi51cGRhdGVJ
Y2VHYXRoZXJpbmdTdGF0ZShJY2VHYXRoZXJpbmdTdGF0ZTo6R2F0aGVyaW5nKTsKKyAgICBpZiAo
bV9wZWVyQ29ubmVjdGlvbi5pY2VHYXRoZXJpbmdTdGF0ZSgpID09IFJUQ0ljZUdhdGhlcmluZ1N0
YXRlOjpOZXcgJiYgbWVkaWFEZXNjcmlwdGlvbnMuc2l6ZSgpKQorICAgICAgICBtX3BlZXJDb25u
ZWN0aW9uLnVwZGF0ZUljZUdhdGhlcmluZ1N0YXRlKFJUQ0ljZUdhdGhlcmluZ1N0YXRlOjpHYXRo
ZXJpbmcpOwogCiAgICAgbWFya0FzTmVlZGluZ05lZ290aWF0aW9uKCk7CiAgICAgc2V0TG9jYWxE
ZXNjcmlwdGlvblN1Y2NlZWRlZCgpOwpAQCAtNTUyLDEzICs1NTIsMTMgQEAgdm9pZCBNZWRpYUVu
ZHBvaW50UGVlckNvbm5lY3Rpb246OnNldFJlbW90ZURlc2NyaXB0aW9uVGFzayhSZWZQdHI8UlRD
U2Vzc2lvbkRlc2MKICAgICBmb3IgKGF1dG8mIGV2ZW50IDogbGVnYWN5TWVkaWFTdHJlYW1FdmVu
dHMpCiAgICAgICAgIG1fcGVlckNvbm5lY3Rpb24uZmlyZUV2ZW50KCpldmVudCk7CiAKLSAgICBT
aWduYWxpbmdTdGF0ZSBuZXdTaWduYWxpbmdTdGF0ZTsKKyAgICBSVENTaWduYWxpbmdTdGF0ZSBu
ZXdTaWduYWxpbmdTdGF0ZTsKIAogICAgIC8vIFVwZGF0ZSBzdGF0ZSBhbmQgbG9jYWwgZGVzY3Jp
cHRpb25zIGFjY29yZGluZyB0byBzZXRMb2NhbC9SZW1vdGVEZXNjcmlwdGlvbiBwcm9jZXNzaW5n
IG1vZGVsCiAgICAgc3dpdGNoIChuZXdEZXNjcmlwdGlvbi0+dHlwZSgpKSB7CiAgICAgY2FzZSBS
VENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6Ok9mZmVyOgogICAgICAgICBtX3BlbmRpbmdS
ZW1vdGVEZXNjcmlwdGlvbiA9IFdURk1vdmUobmV3RGVzY3JpcHRpb24pOwotICAgICAgICBuZXdT
aWduYWxpbmdTdGF0ZSA9IFNpZ25hbGluZ1N0YXRlOjpIYXZlUmVtb3RlT2ZmZXI7CisgICAgICAg
IG5ld1NpZ25hbGluZ1N0YXRlID0gUlRDU2lnbmFsaW5nU3RhdGU6OkhhdmVSZW1vdGVPZmZlcjsK
ICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2RwVHlw
ZTo6QW5zd2VyOgpAQCAtNTY2LDE3ICs1NjYsMTcgQEAgdm9pZCBNZWRpYUVuZHBvaW50UGVlckNv
bm5lY3Rpb246OnNldFJlbW90ZURlc2NyaXB0aW9uVGFzayhSZWZQdHI8UlRDU2Vzc2lvbkRlc2MK
ICAgICAgICAgbV9jdXJyZW50TG9jYWxEZXNjcmlwdGlvbiA9IG1fcGVuZGluZ0xvY2FsRGVzY3Jp
cHRpb247CiAgICAgICAgIG1fcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uID0gbnVsbHB0cjsKICAg
ICAgICAgbV9wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgIG5ld1Np
Z25hbGluZ1N0YXRlID0gU2lnbmFsaW5nU3RhdGU6OlN0YWJsZTsKKyAgICAgICAgbmV3U2lnbmFs
aW5nU3RhdGUgPSBSVENTaWduYWxpbmdTdGF0ZTo6U3RhYmxlOwogICAgICAgICBicmVhazsKIAog
ICAgIGNhc2UgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpSb2xsYmFjazoKICAgICAg
ICAgbV9wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24gPSBudWxscHRyOwotICAgICAgICBuZXdTaWdu
YWxpbmdTdGF0ZSA9IFNpZ25hbGluZ1N0YXRlOjpTdGFibGU7CisgICAgICAgIG5ld1NpZ25hbGlu
Z1N0YXRlID0gUlRDU2lnbmFsaW5nU3RhdGU6OlN0YWJsZTsKICAgICAgICAgYnJlYWs7CiAKICAg
ICBjYXNlIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2RwVHlwZTo6UHJhbnN3ZXI6CiAgICAgICAg
IG1fcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uID0gV1RGTW92ZShuZXdEZXNjcmlwdGlvbik7Ci0g
ICAgICAgIG5ld1NpZ25hbGluZ1N0YXRlID0gU2lnbmFsaW5nU3RhdGU6OkhhdmVSZW1vdGVQckFu
c3dlcjsKKyAgICAgICAgbmV3U2lnbmFsaW5nU3RhdGUgPSBSVENTaWduYWxpbmdTdGF0ZTo6SGF2
ZVJlbW90ZVByYW5zd2VyOwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTcxNiw3ICs3MTYs
NyBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6cmVwbGFjZVRyYWNrKFJUQ1J0
cFNlbmRlciYgc2VuZGVyLCBSZWY8TWVkaWFTdAogCiB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29u
bmVjdGlvbjo6cmVwbGFjZVRyYWNrVGFzayhSVENSdHBTZW5kZXImIHNlbmRlciwgY29uc3QgU3Ry
aW5nJiBtaWQsIFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmIHdpdGhUcmFjaywgRE9NUHJvbWlzZTx2
b2lkPiYgcHJvbWlzZSkKIHsKLSAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25h
bGluZ1N0YXRlKCkgPT0gU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKKyAgICBpZiAobV9wZWVyQ29u
bmVjdGlvbi5zaWduYWxpbmdTdGF0ZSgpID09IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIG1fbWVkaWFFbmRwb2ludC0+cmVwbGFjZVNlbmRTb3VyY2Uo
d2l0aFRyYWNrLT5zb3VyY2UoKSwgbWlkKTsKQEAgLTc5NSwxOCArNzk1LDE4IEBAIHZvaWQgTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpkb25lR2F0aGVyaW5nQ2FuZGlkYXRlcyhjb25zdCBT
dHJpbmcmIG1pZCkKICAgICBSVENSdHBUcmFuc2NlaXZlciogbm90aWZ5aW5nVHJhbnNjZWl2ZXIg
PSBtYXRjaFRyYW5zY2VpdmVyQnlNaWQodHJhbnNjZWl2ZXJzLCBtaWQpOwogICAgIEFTU0VSVChu
b3RpZnlpbmdUcmFuc2NlaXZlcik7CiAKLSAgICBub3RpZnlpbmdUcmFuc2NlaXZlci0+aWNlVHJh
bnNwb3J0KCkuc2V0R2F0aGVyaW5nU3RhdGUoUlRDSWNlVHJhbnNwb3J0OjpHYXRoZXJpbmdTdGF0
ZTo6Q29tcGxldGUpOworICAgIG5vdGlmeWluZ1RyYW5zY2VpdmVyLT5pY2VUcmFuc3BvcnQoKS5z
ZXRHYXRoZXJpbmdTdGF0ZShSVENJY2VHYXRoZXJpbmdTdGF0ZTo6Q29tcGxldGUpOwogCiAgICAg
Ly8gRG9uJ3Qgbm90aWZ5IHRoZSBzY3JpcHQgaWYgdGhlcmUgYXJlIHRyYW5zY2VpdmVycyBzdGls
bCBnYXRoZXJpbmcuCiAgICAgUlRDUnRwVHJhbnNjZWl2ZXIqIHN0aWxsR2F0aGVyaW5nVHJhbnNj
ZWl2ZXIgPSBtYXRjaFRyYW5zY2VpdmVyKHRyYW5zY2VpdmVycywgW10gKFJUQ1J0cFRyYW5zY2Vp
dmVyJiBjdXJyZW50KSB7CiAgICAgICAgIHJldHVybiAhY3VycmVudC5zdG9wcGVkKCkgJiYgIWN1
cnJlbnQubWlkKCkuaXNOdWxsKCkKLSAgICAgICAgICAgICYmIGN1cnJlbnQuaWNlVHJhbnNwb3J0
KCkuZ2F0aGVyaW5nU3RhdGUoKSAhPSBSVENJY2VUcmFuc3BvcnQ6OkdhdGhlcmluZ1N0YXRlOjpD
b21wbGV0ZTsKKyAgICAgICAgICAgICYmIGN1cnJlbnQuaWNlVHJhbnNwb3J0KCkuZ2F0aGVyaW5n
U3RhdGUoKSAhPSBSVENJY2VHYXRoZXJpbmdTdGF0ZTo6Q29tcGxldGU7CiAgICAgfSk7CiAgICAg
aWYgKCFzdGlsbEdhdGhlcmluZ1RyYW5zY2VpdmVyKQogICAgICAgICBQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQ6OmRvbmVHYXRoZXJpbmdDYW5kaWRhdGVzKCk7CiB9CiAKLXN0YXRpYyBSVENJY2VUcmFu
c3BvcnQ6OlRyYW5zcG9ydFN0YXRlIGRlcml2ZUFnZ3JlZ2F0ZWRJY2VDb25uZWN0aW9uU3RhdGUo
Y29uc3QgVmVjdG9yPFJUQ0ljZVRyYW5zcG9ydDo6VHJhbnNwb3J0U3RhdGU+JiBzdGF0ZXMpCitz
dGF0aWMgUlRDSWNlVHJhbnNwb3J0U3RhdGUgZGVyaXZlQWdncmVnYXRlZEljZUNvbm5lY3Rpb25T
dGF0ZShjb25zdCBWZWN0b3I8UlRDSWNlVHJhbnNwb3J0U3RhdGU+JiBzdGF0ZXMpCiB7CiAgICAg
dW5zaWduZWQgbmV3Q291bnQgPSAwOwogICAgIHVuc2lnbmVkIGNoZWNraW5nQ291bnQgPSAwOwpA
QCAtODE4LDU2ICs4MTgsNTYgQEAgc3RhdGljIFJUQ0ljZVRyYW5zcG9ydDo6VHJhbnNwb3J0U3Rh
dGUgZGVyaXZlQWdncmVnYXRlZEljZUNvbm5lY3Rpb25TdGF0ZShjb25zdAogCiAgICAgZm9yIChh
dXRvJiBzdGF0ZSA6IHN0YXRlcykgewogICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7Ci0gICAgICAg
IGNhc2UgUlRDSWNlVHJhbnNwb3J0OjpUcmFuc3BvcnRTdGF0ZTo6TmV3OiArK25ld0NvdW50OyBi
cmVhazsKLSAgICAgICAgY2FzZSBSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRlOjpDaGVj
a2luZzogKytjaGVja2luZ0NvdW50OyBicmVhazsKLSAgICAgICAgY2FzZSBSVENJY2VUcmFuc3Bv
cnQ6OlRyYW5zcG9ydFN0YXRlOjpDb25uZWN0ZWQ6ICsrY29ubmVjdGVkQ291bnQ7IGJyZWFrOwot
ICAgICAgICBjYXNlIFJUQ0ljZVRyYW5zcG9ydDo6VHJhbnNwb3J0U3RhdGU6OkNvbXBsZXRlZDog
Kytjb21wbGV0ZWRDb3VudDsgYnJlYWs7Ci0gICAgICAgIGNhc2UgUlRDSWNlVHJhbnNwb3J0OjpU
cmFuc3BvcnRTdGF0ZTo6RmFpbGVkOiArK2ZhaWxlZENvdW50OyBicmVhazsKLSAgICAgICAgY2Fz
ZSBSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRlOjpEaXNjb25uZWN0ZWQ6ICsrZGlzY29u
bmVjdGVkQ291bnQ7IGJyZWFrOwotICAgICAgICBjYXNlIFJUQ0ljZVRyYW5zcG9ydDo6VHJhbnNw
b3J0U3RhdGU6OkNsb3NlZDogKytjbG9zZWRDb3VudDsgYnJlYWs7CisgICAgICAgIGNhc2UgUlRD
SWNlVHJhbnNwb3J0U3RhdGU6Ok5ldzogKytuZXdDb3VudDsgYnJlYWs7CisgICAgICAgIGNhc2Ug
UlRDSWNlVHJhbnNwb3J0U3RhdGU6OkNoZWNraW5nOiArK2NoZWNraW5nQ291bnQ7IGJyZWFrOwor
ICAgICAgICBjYXNlIFJUQ0ljZVRyYW5zcG9ydFN0YXRlOjpDb25uZWN0ZWQ6ICsrY29ubmVjdGVk
Q291bnQ7IGJyZWFrOworICAgICAgICBjYXNlIFJUQ0ljZVRyYW5zcG9ydFN0YXRlOjpDb21wbGV0
ZWQ6ICsrY29tcGxldGVkQ291bnQ7IGJyZWFrOworICAgICAgICBjYXNlIFJUQ0ljZVRyYW5zcG9y
dFN0YXRlOjpGYWlsZWQ6ICsrZmFpbGVkQ291bnQ7IGJyZWFrOworICAgICAgICBjYXNlIFJUQ0lj
ZVRyYW5zcG9ydFN0YXRlOjpEaXNjb25uZWN0ZWQ6ICsrZGlzY29ubmVjdGVkQ291bnQ7IGJyZWFr
OworICAgICAgICBjYXNlIFJUQ0ljZVRyYW5zcG9ydFN0YXRlOjpDbG9zZWQ6ICsrY2xvc2VkQ291
bnQ7IGJyZWFrOwogICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gVGhlIGFnZ3JlZ2F0ZWQgUlRD
SWNlQ29ubmVjdGlvblN0YXRlIGlzIGRlcml2ZWQgZnJvbSB0aGUgUlRDSWNlVHJhbnNwb3J0U3Rh
dGUgb2YgYWxsIFJUQ0ljZVRyYW5zcG9ydHMuCiAgICAgaWYgKChuZXdDb3VudCA+IDAgJiYgIWNo
ZWNraW5nQ291bnQgJiYgIWZhaWxlZENvdW50ICYmICFkaXNjb25uZWN0ZWRDb3VudCkgfHwgKGNs
b3NlZENvdW50ID09IHN0YXRlcy5zaXplKCkpKQotICAgICAgICByZXR1cm4gUlRDSWNlVHJhbnNw
b3J0OjpUcmFuc3BvcnRTdGF0ZTo6TmV3OworICAgICAgICByZXR1cm4gUlRDSWNlVHJhbnNwb3J0
U3RhdGU6Ok5ldzsKIAogICAgIGlmIChjaGVja2luZ0NvdW50ID4gMCAmJiAhZmFpbGVkQ291bnQg
JiYgIWRpc2Nvbm5lY3RlZENvdW50KQotICAgICAgICByZXR1cm4gUlRDSWNlVHJhbnNwb3J0OjpU
cmFuc3BvcnRTdGF0ZTo6Q2hlY2tpbmc7CisgICAgICAgIHJldHVybiBSVENJY2VUcmFuc3BvcnRT
dGF0ZTo6Q2hlY2tpbmc7CiAKICAgICBpZiAoKGNvbm5lY3RlZENvdW50ICsgY29tcGxldGVkQ291
bnQgKyBjbG9zZWRDb3VudCkgPT0gc3RhdGVzLnNpemUoKSAmJiBjb25uZWN0ZWRDb3VudCA+IDAp
Ci0gICAgICAgIHJldHVybiBSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRlOjpDb25uZWN0
ZWQ7CisgICAgICAgIHJldHVybiBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6Q29ubmVjdGVkOwogCiAg
ICAgaWYgKChjb21wbGV0ZWRDb3VudCArIGNsb3NlZENvdW50KSA9PSBzdGF0ZXMuc2l6ZSgpICYm
IGNvbXBsZXRlZENvdW50ID4gMCkKLSAgICAgICAgcmV0dXJuIFJUQ0ljZVRyYW5zcG9ydDo6VHJh
bnNwb3J0U3RhdGU6OkNvbXBsZXRlZDsKKyAgICAgICAgcmV0dXJuIFJUQ0ljZVRyYW5zcG9ydFN0
YXRlOjpDb21wbGV0ZWQ7CiAKICAgICBpZiAoZmFpbGVkQ291bnQgPiAwKQotICAgICAgICByZXR1
cm4gUlRDSWNlVHJhbnNwb3J0OjpUcmFuc3BvcnRTdGF0ZTo6RmFpbGVkOworICAgICAgICByZXR1
cm4gUlRDSWNlVHJhbnNwb3J0U3RhdGU6OkZhaWxlZDsKIAogICAgIGlmIChkaXNjb25uZWN0ZWRD
b3VudCA+IDApIC8vIEFueSBmYWlsZWQgY2F1Z2h0IGFib3ZlLgotICAgICAgICByZXR1cm4gUlRD
SWNlVHJhbnNwb3J0OjpUcmFuc3BvcnRTdGF0ZTo6RGlzY29ubmVjdGVkOworICAgICAgICByZXR1
cm4gUlRDSWNlVHJhbnNwb3J0U3RhdGU6OkRpc2Nvbm5lY3RlZDsKIAogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgIHJldHVybiBSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRlOjpO
ZXc7CisgICAgcmV0dXJuIFJUQ0ljZVRyYW5zcG9ydFN0YXRlOjpOZXc7CiB9CiAKLXZvaWQgTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjppY2VUcmFuc3BvcnRTdGF0ZUNoYW5nZWQoY29uc3Qg
U3RyaW5nJiBtaWQsIE1lZGlhRW5kcG9pbnQ6OkljZVRyYW5zcG9ydFN0YXRlIG1lZGlhRW5kcG9p
bnRJY2VUcmFuc3BvcnRTdGF0ZSkKK3ZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpp
Y2VUcmFuc3BvcnRTdGF0ZUNoYW5nZWQoY29uc3QgU3RyaW5nJiBtaWQsIFJUQ0ljZVRyYW5zcG9y
dFN0YXRlIG1lZGlhRW5kcG9pbnRJY2VUcmFuc3BvcnRTdGF0ZSkKIHsKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwogCiAgICAgUlRDUnRwVHJhbnNjZWl2ZXIqIHRyYW5zY2VpdmVyID0gbWF0
Y2hUcmFuc2NlaXZlckJ5TWlkKG1fcGVlckNvbm5lY3Rpb24uZ2V0VHJhbnNjZWl2ZXJzKCksIG1p
ZCk7CiAgICAgQVNTRVJUKHRyYW5zY2VpdmVyKTsKIAotICAgIFJUQ0ljZVRyYW5zcG9ydDo6VHJh
bnNwb3J0U3RhdGUgdHJhbnNwb3J0U3RhdGUgPSBzdGF0aWNfY2FzdDxSVENJY2VUcmFuc3BvcnQ6
OlRyYW5zcG9ydFN0YXRlPihtZWRpYUVuZHBvaW50SWNlVHJhbnNwb3J0U3RhdGUpOworICAgIFJU
Q0ljZVRyYW5zcG9ydFN0YXRlIHRyYW5zcG9ydFN0YXRlID0gc3RhdGljX2Nhc3Q8UlRDSWNlVHJh
bnNwb3J0U3RhdGU+KG1lZGlhRW5kcG9pbnRJY2VUcmFuc3BvcnRTdGF0ZSk7CiAgICAgdHJhbnNj
ZWl2ZXItPmljZVRyYW5zcG9ydCgpLnNldFRyYW5zcG9ydFN0YXRlKHRyYW5zcG9ydFN0YXRlKTsK
IAogICAgIC8vIERldGVybWluZSBpZiB0aGUgc2NyaXB0IG5lZWRzIHRvIGJlIG5vdGlmaWVkLgot
ICAgIFZlY3RvcjxSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRlPiB0cmFuc3BvcnRTdGF0
ZXM7CisgICAgVmVjdG9yPFJUQ0ljZVRyYW5zcG9ydFN0YXRlPiB0cmFuc3BvcnRTdGF0ZXM7CiAg
ICAgZm9yIChhdXRvJiB0cmFuc2NlaXZlciA6IG1fcGVlckNvbm5lY3Rpb24uZ2V0VHJhbnNjZWl2
ZXJzKCkpCiAgICAgICAgIHRyYW5zcG9ydFN0YXRlcy5hcHBlbmQodHJhbnNjZWl2ZXItPmljZVRy
YW5zcG9ydCgpLnRyYW5zcG9ydFN0YXRlKCkpOwogCi0gICAgUlRDSWNlVHJhbnNwb3J0OjpUcmFu
c3BvcnRTdGF0ZSBkZXJpdmVkU3RhdGUgPSBkZXJpdmVBZ2dyZWdhdGVkSWNlQ29ubmVjdGlvblN0
YXRlKHRyYW5zcG9ydFN0YXRlcyk7Ci0gICAgbV9wZWVyQ29ubmVjdGlvbi51cGRhdGVJY2VDb25u
ZWN0aW9uU3RhdGUoc3RhdGljX2Nhc3Q8SWNlQ29ubmVjdGlvblN0YXRlPihkZXJpdmVkU3RhdGUp
KTsKKyAgICBSVENJY2VUcmFuc3BvcnRTdGF0ZSBkZXJpdmVkU3RhdGUgPSBkZXJpdmVBZ2dyZWdh
dGVkSWNlQ29ubmVjdGlvblN0YXRlKHRyYW5zcG9ydFN0YXRlcyk7CisgICAgbV9wZWVyQ29ubmVj
dGlvbi51cGRhdGVJY2VDb25uZWN0aW9uU3RhdGUoc3RhdGljX2Nhc3Q8UlRDSWNlQ29ubmVjdGlv
blN0YXRlPihkZXJpdmVkU3RhdGUpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmgKaW5kZXggZmY0NTI4YjM4YjQwN2MwMmEyNGZiZDFj
OWNiYjZlYjIzYjRlMTdhZC4uMzAyZTVjZmY5NDg1MmMyY2UwNGI1N2IyNmI4ZGFlYzE3NDA3OTUw
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVu
ZHBvaW50UGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAxNSwgMjAxNiBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDYgKzM1LDcgQEAKIAog
I2luY2x1ZGUgIk1lZGlhRW5kcG9pbnQuaCIKICNpbmNsdWRlICJQZWVyQ29ubmVjdGlvbkJhY2tl
bmQuaCIKKyNpbmNsdWRlICJSVENFbnVtcy5oIgogI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlw
dGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCkBAIC05Nyw3ICs5OSw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBnb3REdGxzRmluZ2VycHJpbnQoY29uc3QgU3RyaW5nJiBmaW5nZXJw
cmludCwgY29uc3QgU3RyaW5nJiBmaW5nZXJwcmludEZ1bmN0aW9uKSBmaW5hbDsKICAgICB2b2lk
IGdvdEljZUNhbmRpZGF0ZShjb25zdCBTdHJpbmcmIG1pZCwgSWNlQ2FuZGlkYXRlJiYpIGZpbmFs
OwogICAgIHZvaWQgZG9uZUdhdGhlcmluZ0NhbmRpZGF0ZXMoY29uc3QgU3RyaW5nJiBtaWQpIGZp
bmFsOwotICAgIHZvaWQgaWNlVHJhbnNwb3J0U3RhdGVDaGFuZ2VkKGNvbnN0IFN0cmluZyYgbWlk
LCBNZWRpYUVuZHBvaW50OjpJY2VUcmFuc3BvcnRTdGF0ZSkgZmluYWw7CisgICAgdm9pZCBpY2VU
cmFuc3BvcnRTdGF0ZUNoYW5nZWQoY29uc3QgU3RyaW5nJiBtaWQsIFJUQ0ljZVRyYW5zcG9ydFN0
YXRlKSBmaW5hbDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+
IGNyZWF0ZURhdGFDaGFubmVsSGFuZGxlcihjb25zdCBTdHJpbmcmLCBjb25zdCBSVENEYXRhQ2hh
bm5lbEluaXQmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IGQ3NzVmZTg4
MzBkOGNiMTlkN2E2NjM1OGZkYWYwODdkZGRmMjFlYTMuLjRlMjVmOGZkZmVmYTU1YmRhYjQxNjA3
NzM2OTY4NDBiYWUyZWJhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKQEAgLTEsNiArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1IEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElOQy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDYsNyArNDYsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6Y3JlYXRl
T2ZmZXIoUlRDT2ZmZXJPcHRpb25zJiYgb3B0aW9ucywgUGVlckNvbm5lY3Rpb246OlNlc3Npb25E
ZXNjcmlwdGlvblByb21pc2UmJiBwcm9taXNlKQogewogICAgIEFTU0VSVCghbV9vZmZlckFuc3dl
clByb21pc2UpOwotICAgIEFTU0VSVChtX3BlZXJDb25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5n
U3RhdGUoKSAhPSBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OkNsb3NlZCk7
CisgICAgQVNTRVJUKG1fcGVlckNvbm5lY3Rpb24uc2lnbmFsaW5nU3RhdGUoKSAhPSBSVENTaWdu
YWxpbmdTdGF0ZTo6Q2xvc2VkKTsKIAogICAgIG1fb2ZmZXJBbnN3ZXJQcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKTsKICAgICBkb0NyZWF0ZU9mZmVyKFdURk1vdmUob3B0aW9ucykpOwpAQCAtNTYs
NyArNTYsNyBAQCB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6Y3JlYXRlT2ZmZXJTdWNjZWVk
ZWQoU3RyaW5nJiYgc2RwKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBp
ZiAobV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gUGVlckNvbm5l
Y3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCisgICAgaWYgKG1fcGVlckNvbm5l
Y3Rpb24uc2lnbmFsaW5nU3RhdGUoKSA9PSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQogICAg
ICAgICByZXR1cm47CiAKICAgICBBU1NFUlQobV9vZmZlckFuc3dlclByb21pc2UpOwpAQCAtNjgs
NyArNjgsNyBAQCB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6Y3JlYXRlT2ZmZXJGYWlsZWQo
RXhjZXB0aW9uJiYgZXhjZXB0aW9uKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAK
LSAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gUGVl
ckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCisgICAgaWYgKG1fcGVl
ckNvbm5lY3Rpb24uc2lnbmFsaW5nU3RhdGUoKSA9PSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2Vk
KQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQobV9vZmZlckFuc3dlclByb21pc2UpOwpA
QCAtNzksNyArNzksNyBAQCB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6Y3JlYXRlT2ZmZXJG
YWlsZWQoRXhjZXB0aW9uJiYgZXhjZXB0aW9uKQogdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6
OmNyZWF0ZUFuc3dlcihSVENBbnN3ZXJPcHRpb25zJiYgb3B0aW9ucywgUGVlckNvbm5lY3Rpb246
OlNlc3Npb25EZXNjcmlwdGlvblByb21pc2UmJiBwcm9taXNlKQogewogICAgIEFTU0VSVCghbV9v
ZmZlckFuc3dlclByb21pc2UpOwotICAgIEFTU0VSVChtX3BlZXJDb25uZWN0aW9uLmludGVybmFs
U2lnbmFsaW5nU3RhdGUoKSAhPSBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6
OkNsb3NlZCk7CisgICAgQVNTRVJUKG1fcGVlckNvbm5lY3Rpb24uc2lnbmFsaW5nU3RhdGUoKSAh
PSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKTsKIAogICAgIG1fb2ZmZXJBbnN3ZXJQcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKTsKICAgICBkb0NyZWF0ZUFuc3dlcihXVEZNb3ZlKG9wdGlvbnMp
KTsKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmNyZWF0ZUFu
c3dlclN1Y2NlZWRlZChTdHJpbmcmJiBzZHApCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKIAotICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9
PSBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKKyAgICBpZiAo
bV9wZWVyQ29ubmVjdGlvbi5zaWduYWxpbmdTdGF0ZSgpID09IFJUQ1NpZ25hbGluZ1N0YXRlOjpD
bG9zZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChtX29mZmVyQW5zd2VyUHJvbWlz
ZSk7CkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmNyZWF0
ZUFuc3dlckZhaWxlZChFeGNlcHRpb24mJiBleGNlcHRpb24pCiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKIAotICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5n
U3RhdGUoKSA9PSBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkK
KyAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5zaWduYWxpbmdTdGF0ZSgpID09IFJUQ1NpZ25hbGlu
Z1N0YXRlOjpDbG9zZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChtX29mZmVyQW5z
d2VyUHJvbWlzZSk7CkBAIC0xMDksMTYgKzEwOSwxNiBAQCB2b2lkIFBlZXJDb25uZWN0aW9uQmFj
a2VuZDo6Y3JlYXRlQW5zd2VyRmFpbGVkKEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikKICAgICBtX29m
ZmVyQW5zd2VyUHJvbWlzZSA9IHN0ZDo6bnVsbG9wdDsKIH0KIAotc3RhdGljIGlubGluZSBib29s
IGlzTG9jYWxEZXNjcmlwdGlvblR5cGVWYWxpZEZvclN0YXRlKFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bjo6U2RwVHlwZSB0eXBlLCBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGUgc3Rh
dGUpCitzdGF0aWMgaW5saW5lIGJvb2wgaXNMb2NhbERlc2NyaXB0aW9uVHlwZVZhbGlkRm9yU3Rh
dGUoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlIHR5cGUsIFJUQ1NpZ25hbGluZ1N0YXRl
IHN0YXRlKQogewogICAgIHN3aXRjaCAoc3RhdGUpIHsKLSAgICBjYXNlIFBlZXJDb25uZWN0aW9u
U3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6U3RhYmxlOgorICAgIGNhc2UgUlRDU2lnbmFsaW5nU3Rh
dGU6OlN0YWJsZToKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
OjpTZHBUeXBlOjpPZmZlcjsKLSAgICBjYXNlIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxp
bmdTdGF0ZTo6SGF2ZUxvY2FsT2ZmZXI6CisgICAgY2FzZSBSVENTaWduYWxpbmdTdGF0ZTo6SGF2
ZUxvY2FsT2ZmZXI6CiAgICAgICAgIHJldHVybiB0eXBlID09IFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bjo6U2RwVHlwZTo6T2ZmZXI7Ci0gICAgY2FzZSBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFs
aW5nU3RhdGU6OkhhdmVSZW1vdGVPZmZlcjoKKyAgICBjYXNlIFJUQ1NpZ25hbGluZ1N0YXRlOjpI
YXZlUmVtb3RlT2ZmZXI6CiAgICAgICAgIHJldHVybiB0eXBlID09IFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbjo6U2RwVHlwZTo6QW5zd2VyIHx8IHR5cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpT
ZHBUeXBlOjpQcmFuc3dlcjsKLSAgICBjYXNlIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxp
bmdTdGF0ZTo6SGF2ZUxvY2FsUHJBbnN3ZXI6CisgICAgY2FzZSBSVENTaWduYWxpbmdTdGF0ZTo6
SGF2ZUxvY2FsUHJhbnN3ZXI6CiAgICAgICAgIHJldHVybiB0eXBlID09IFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbjo6U2RwVHlwZTo6QW5zd2VyIHx8IHR5cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
OjpTZHBUeXBlOjpQcmFuc3dlcjsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC0xMzAsOSArMTMwLDkgQEAgc3RhdGljIGlubGluZSBib29sIGlzTG9jYWxEZXNjcmlwdGlv
blR5cGVWYWxpZEZvclN0YXRlKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2QKIAogdm9pZCBQZWVy
Q29ubmVjdGlvbkJhY2tlbmQ6OnNldExvY2FsRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uJiBzZXNzaW9uRGVzY3JpcHRpb24sIERPTVByb21pc2U8dm9pZD4mJiBwcm9taXNlKQogewot
ICAgIEFTU0VSVChtX3BlZXJDb25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSAhPSBQ
ZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OkNsb3NlZCk7CisgICAgQVNTRVJU
KG1fcGVlckNvbm5lY3Rpb24uc2lnbmFsaW5nU3RhdGUoKSAhPSBSVENTaWduYWxpbmdTdGF0ZTo6
Q2xvc2VkKTsKIAotICAgIGlmICghaXNMb2NhbERlc2NyaXB0aW9uVHlwZVZhbGlkRm9yU3RhdGUo
c2Vzc2lvbkRlc2NyaXB0aW9uLnR5cGUoKSwgbV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25h
bGluZ1N0YXRlKCkpKSB7CisgICAgaWYgKCFpc0xvY2FsRGVzY3JpcHRpb25UeXBlVmFsaWRGb3JT
dGF0ZShzZXNzaW9uRGVzY3JpcHRpb24udHlwZSgpLCBtX3BlZXJDb25uZWN0aW9uLnNpZ25hbGlu
Z1N0YXRlKCkpKSB7CiAgICAgICAgIHByb21pc2UucmVqZWN0KElOVkFMSURfU1RBVEVfRVJSLCAi
RGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0
ZSIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgUGVl
ckNvbm5lY3Rpb25CYWNrZW5kOjpzZXRMb2NhbERlc2NyaXB0aW9uU3VjY2VlZGVkKCkKIHsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uaW50
ZXJuYWxTaWduYWxpbmdTdGF0ZSgpID09IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdT
dGF0ZTo6Q2xvc2VkKQorICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLnNpZ25hbGluZ1N0YXRlKCkg
PT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNT
RVJUKG1fc2V0RGVzY3JpcHRpb25Qcm9taXNlKTsKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIFBl
ZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0TG9jYWxEZXNjcmlwdGlvbkZhaWxlZChFeGNlcHRpb24m
JiBleGNlcHRpb24pCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGlmICht
X3BlZXJDb25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9PSBQZWVyQ29ubmVjdGlv
blN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKKyAgICBpZiAobV9wZWVyQ29ubmVjdGlv
bi5zaWduYWxpbmdTdGF0ZSgpID09IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCiAgICAgICAg
IHJldHVybjsKIAogICAgIEFTU0VSVChtX3NldERlc2NyaXB0aW9uUHJvbWlzZSk7CkBAIC0xNjcs
MTYgKzE2NywxNiBAQCB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0TG9jYWxEZXNjcmlw
dGlvbkZhaWxlZChFeGNlcHRpb24mJiBleGNlcHRpb24pCiAgICAgbV9zZXREZXNjcmlwdGlvblBy
b21pc2UgPSBzdGQ6Om51bGxvcHQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1JlbW90ZURl
c2NyaXB0aW9uVHlwZVZhbGlkRm9yU3RhdGUoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBl
IHR5cGUsIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZSBzdGF0ZSkKK3N0YXRp
YyBpbmxpbmUgYm9vbCBpc1JlbW90ZURlc2NyaXB0aW9uVHlwZVZhbGlkRm9yU3RhdGUoUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlIHR5cGUsIFJUQ1NpZ25hbGluZ1N0YXRlIHN0YXRlKQog
ewogICAgIHN3aXRjaCAoc3RhdGUpIHsKLSAgICBjYXNlIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpT
aWduYWxpbmdTdGF0ZTo6U3RhYmxlOgorICAgIGNhc2UgUlRDU2lnbmFsaW5nU3RhdGU6OlN0YWJs
ZToKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBl
OjpPZmZlcjsKLSAgICBjYXNlIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6
SGF2ZUxvY2FsT2ZmZXI6CisgICAgY2FzZSBSVENTaWduYWxpbmdTdGF0ZTo6SGF2ZUxvY2FsT2Zm
ZXI6CiAgICAgICAgIHJldHVybiB0eXBlID09IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2RwVHlw
ZTo6QW5zd2VyIHx8IHR5cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpQcmFu
c3dlcjsKLSAgICBjYXNlIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6SGF2
ZVJlbW90ZU9mZmVyOgorICAgIGNhc2UgUlRDU2lnbmFsaW5nU3RhdGU6OkhhdmVSZW1vdGVPZmZl
cjoKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBl
OjpPZmZlcjsKLSAgICBjYXNlIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6
SGF2ZVJlbW90ZVByQW5zd2VyOgorICAgIGNhc2UgUlRDU2lnbmFsaW5nU3RhdGU6OkhhdmVSZW1v
dGVQcmFuc3dlcjoKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
OjpTZHBUeXBlOjpBbnN3ZXIgfHwgdHlwZSA9PSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5
cGU6OlByYW5zd2VyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE4
OCw5ICsxODgsOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNSZW1vdGVEZXNjcmlwdGlvblR5cGVW
YWxpZEZvclN0YXRlKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6UwogCiB2b2lkIFBlZXJDb25uZWN0
aW9uQmFja2VuZDo6c2V0UmVtb3RlRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uJiBz
ZXNzaW9uRGVzY3JpcHRpb24sIERPTVByb21pc2U8dm9pZD4mJiBwcm9taXNlKQogewotICAgIEFT
U0VSVChtX3BlZXJDb25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSAhPSBQZWVyQ29u
bmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OkNsb3NlZCk7CisgICAgQVNTRVJUKG1fcGVl
ckNvbm5lY3Rpb24uc2lnbmFsaW5nU3RhdGUoKSAhPSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2Vk
KTsKIAotICAgIGlmICghaXNSZW1vdGVEZXNjcmlwdGlvblR5cGVWYWxpZEZvclN0YXRlKHNlc3Np
b25EZXNjcmlwdGlvbi50eXBlKCksIG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdT
dGF0ZSgpKSkgeworICAgIGlmICghaXNSZW1vdGVEZXNjcmlwdGlvblR5cGVWYWxpZEZvclN0YXRl
KHNlc3Npb25EZXNjcmlwdGlvbi50eXBlKCksIG1fcGVlckNvbm5lY3Rpb24uc2lnbmFsaW5nU3Rh
dGUoKSkpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoSU5WQUxJRF9TVEFURV9FUlIsICJEZXNj
cmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMDMsNyArMjAzLDcgQEAgdm9pZCBQZWVyQ29u
bmVjdGlvbkJhY2tlbmQ6OnNldFJlbW90ZURlc2NyaXB0aW9uU3VjY2VlZGVkKCkKIHsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJu
YWxTaWduYWxpbmdTdGF0ZSgpID09IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0
ZTo6Q2xvc2VkKQorICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLnNpZ25hbGluZ1N0YXRlKCkgPT0g
UlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJU
KG1fc2V0RGVzY3JpcHRpb25Qcm9taXNlKTsKQEAgLTIxNiw3ICsyMTYsNyBAQCB2b2lkIFBlZXJD
b25uZWN0aW9uQmFja2VuZDo6c2V0UmVtb3RlRGVzY3JpcHRpb25GYWlsZWQoRXhjZXB0aW9uJiYg
ZXhjZXB0aW9uKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBpZiAobV9w
ZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gUGVlckNvbm5lY3Rpb25T
dGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCisgICAgaWYgKG1fcGVlckNvbm5lY3Rpb24u
c2lnbmFsaW5nU3RhdGUoKSA9PSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBBU1NFUlQobV9zZXREZXNjcmlwdGlvblByb21pc2UpOwpAQCAtMjI3LDcg
KzIyNyw3IEBAIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzZXRSZW1vdGVEZXNjcmlwdGlv
bkZhaWxlZChFeGNlcHRpb24mJiBleGNlcHRpb24pCiAKIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNr
ZW5kOjphZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlJiBpY2VDYW5kaWRhdGUsIERPTVBy
b21pc2U8dm9pZD4mJiBwcm9taXNlKQogewotICAgIEFTU0VSVChtX3BlZXJDb25uZWN0aW9uLmlu
dGVybmFsU2lnbmFsaW5nU3RhdGUoKSAhPSBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5n
U3RhdGU6OkNsb3NlZCk7CisgICAgQVNTRVJUKG1fcGVlckNvbm5lY3Rpb24uc2lnbmFsaW5nU3Rh
dGUoKSAhPSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKTsKIAogICAgIGlmIChpY2VDYW5kaWRh
dGUuc2RwTWlkKCkuaXNOdWxsKCkgJiYgIWljZUNhbmRpZGF0ZS5zZHBNTGluZUluZGV4KCkpIHsK
ICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgVHlwZUVycm9yLCBBU0NJSUxpdGVy
YWwoIlRyeWluZyB0byBhZGQgYSBjYW5kaWRhdGUgdGhhdCBpcyBtaXNzaW5nIGJvdGggc2RwTWlk
IGFuZCBzZHBNTGluZUluZGV4IikgfSk7CkBAIC0yNDEsNyArMjQxLDcgQEAgdm9pZCBQZWVyQ29u
bmVjdGlvbkJhY2tlbmQ6OmFkZEljZUNhbmRpZGF0ZVN1Y2NlZWRlZCgpCiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKIAotICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmludGVybmFsU2ln
bmFsaW5nU3RhdGUoKSA9PSBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OkNs
b3NlZCkKKyAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5zaWduYWxpbmdTdGF0ZSgpID09IFJUQ1Np
Z25hbGluZ1N0YXRlOjpDbG9zZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIEZJWE1FOiBV
cGRhdGUgcmVtb3RlIGRlc2NyaXB0aW9uIGFuZCBzZXQgSUNFIGNvbm5lY3Rpb24gc3RhdGUgdG8g
Y2hlY2tpbmcgaWYgbm90IGFscmVhZHkgZG9uZSBzby4KQEAgLTI1NCw3ICsyNTQsNyBAQCB2b2lk
IFBlZXJDb25uZWN0aW9uQmFja2VuZDo6YWRkSWNlQ2FuZGlkYXRlU3VjY2VlZGVkKCkKIHZvaWQg
UGVlckNvbm5lY3Rpb25CYWNrZW5kOjphZGRJY2VDYW5kaWRhdGVGYWlsZWQoRXhjZXB0aW9uJiYg
ZXhjZXB0aW9uKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgaWYgKG1fcGVl
ckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpID09IFBlZXJDb25uZWN0aW9uU3Rh
dGVzOjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLnNp
Z25hbGluZ1N0YXRlKCkgPT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgQVNTRVJUKG1fYWRkSWNlQ2FuZGlkYXRlUHJvbWlzZSk7CkBAIC0zMzIsMTQg
KzMzMiwxNCBAQCB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZG9uZUdhdGhlcmluZ0NhbmRp
ZGF0ZXMoKQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBtX3BlZXJDb25uZWN0
aW9uLmZpcmVFdmVudChSVENJY2VDYW5kaWRhdGVFdmVudDo6Y3JlYXRlKGZhbHNlLCBmYWxzZSwg
bnVsbHB0cikpOwotICAgIG1fcGVlckNvbm5lY3Rpb24udXBkYXRlSWNlR2F0aGVyaW5nU3RhdGUo
UGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUdhdGhlcmluZ1N0YXRlOjpDb21wbGV0ZSk7CisgICAg
bV9wZWVyQ29ubmVjdGlvbi51cGRhdGVJY2VHYXRoZXJpbmdTdGF0ZShSVENJY2VHYXRoZXJpbmdT
dGF0ZTo6Q29tcGxldGUpOwogfQogCi12b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6dXBkYXRl
U2lnbmFsaW5nU3RhdGUoUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlIG5ld1Np
Z25hbGluZ1N0YXRlKQordm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnVwZGF0ZVNpZ25hbGlu
Z1N0YXRlKFJUQ1NpZ25hbGluZ1N0YXRlIG5ld1NpZ25hbGluZ1N0YXRlKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBpZiAobmV3U2lnbmFsaW5nU3RhdGUgIT0gbV9wZWVy
Q29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkpIHsKKyAgICBpZiAobmV3U2lnbmFs
aW5nU3RhdGUgIT0gbV9wZWVyQ29ubmVjdGlvbi5zaWduYWxpbmdTdGF0ZSgpKSB7CiAgICAgICAg
IG1fcGVlckNvbm5lY3Rpb24uc2V0U2lnbmFsaW5nU3RhdGUobmV3U2lnbmFsaW5nU3RhdGUpOwog
ICAgICAgICBtX3BlZXJDb25uZWN0aW9uLmZpcmVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5zaWduYWxpbmdzdGF0ZWNoYW5nZUV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKICAgICB9CkBA
IC0zNjEsNyArMzYxLDcgQEAgdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6Om1hcmtBc05lZWRp
bmdOZWdvdGlhdGlvbigpCiAgICAgCiAgICAgbV9uZWdvdGlhdGlvbk5lZWRlZCA9IHRydWU7CiAg
ICAgCi0gICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpID09
IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6U3RhYmxlKQorICAgIGlmICht
X3BlZXJDb25uZWN0aW9uLnNpZ25hbGluZ1N0YXRlKCkgPT0gUlRDU2lnbmFsaW5nU3RhdGU6OlN0
YWJsZSkKICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbi5zY2hlZHVsZU5lZ290aWF0aW9uTmVlZGVk
RXZlbnQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKaW5kZXggYjY2Yjk1YzZmZmU2YzhkZjI0
YzI2YjU3MDcwNzM5MTNmOGVlNmNmZC4uZjI3MzA5MmQwNzVmNTFhOTVlODZlNGQyMWI1NmY3ZjJl
ZGI2ZWI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Q
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAxNSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDcgKzM0LDcgQEAKICNpZiBFTkFCTEUoV0VC
X1JUQykKIAogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgotI2luY2x1ZGUgIlBlZXJDb25uZWN0
aW9uU3RhdGVzLmgiCisjaW5jbHVkZSAiUlRDRW51bXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC0xMTAsNyArMTExLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZmlyZUlDRUNhbmRp
ZGF0ZUV2ZW50KFJlZlB0cjxSVENJY2VDYW5kaWRhdGU+JiYpOwogICAgIHZvaWQgZG9uZUdhdGhl
cmluZ0NhbmRpZGF0ZXMoKTsKIAotICAgIHZvaWQgdXBkYXRlU2lnbmFsaW5nU3RhdGUoUGVlckNv
bm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlKTsKKyAgICB2b2lkIHVwZGF0ZVNpZ25hbGlu
Z1N0YXRlKFJUQ1NpZ25hbGluZ1N0YXRlKTsKIAogICAgIHZvaWQgY3JlYXRlT2ZmZXJTdWNjZWVk
ZWQoU3RyaW5nJiYpOwogICAgIHZvaWQgY3JlYXRlT2ZmZXJGYWlsZWQoRXhjZXB0aW9uJiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb25maWd1
cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3Vy
YXRpb24uaAppbmRleCAyZjA2ZWEyNWE3MGFjYTVlN2FkZTUzNzA3Njc4OTQ5MjBhNzlkZWUwLi5l
NWE3NDlhYjM5MmFmYTVhZjA0MzAzNjVhOTVkNmFmODFjMTU4MzNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb24uaApAQCAt
MSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDIxICsz
MywxNSBAQAogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAKLSNpbmNsdWRlICJQZWVyQ29ubmVjdGlv
blN0YXRlcy5oIgorI2luY2x1ZGUgIlJUQ0VudW1zLmgiCiAjaW5jbHVkZSAiUlRDSWNlU2VydmVy
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgUlRDSWNlVHJhbnNwb3J0UG9saWN5
ID0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZVRyYW5zcG9ydFBvbGljeTsKLXVzaW5nIFJUQ0J1
bmRsZVBvbGljeSA9IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpCdW5kbGVQb2xpY3k7Ci0KIHN0cnVj
dCBSVENDb25maWd1cmF0aW9uIHsKLSAgICB1c2luZyBJY2VUcmFuc3BvcnRQb2xpY3kgPSBSVENJ
Y2VUcmFuc3BvcnRQb2xpY3k7Ci0gICAgdXNpbmcgQnVuZGxlUG9saWN5ID0gUlRDQnVuZGxlUG9s
aWN5OwotCiAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UlRDSWNlU2VydmVyPj4gaWNlU2VydmVy
czsKLSAgICBJY2VUcmFuc3BvcnRQb2xpY3kgaWNlVHJhbnNwb3J0UG9saWN5OwotICAgIEJ1bmRs
ZVBvbGljeSBidW5kbGVQb2xpY3k7CisgICAgUlRDSWNlVHJhbnNwb3J0UG9saWN5IGljZVRyYW5z
cG9ydFBvbGljeTsKKyAgICBSVENCdW5kbGVQb2xpY3kgYnVuZGxlUG9saWN5OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENDb25maWd1cmF0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5pZGwKaW5kZXggM2QyNjY0ZGJjMWUzZjE4NjQz
M2UwNjFiZDQ0Y2Y1MWNiZmRjZGQ2ZS4uNTZjODY4NjQ4MDBlMTljZTAwYTZiNTU0MWU2NWEwYjFk
MTMxMjVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENDb25maWd1cmF0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0NvbmZpZ3VyYXRpb24uaWRsCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDE0ICsyMywzNSBAQAogICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLwogCi1lbnVtIFJUQ0ljZVRyYW5zcG9ydFBvbGljeSB7ICJyZWxheSIsICJhbGwiIH07Ci1l
bnVtIFJUQ0J1bmRsZVBvbGljeSB7ICJiYWxhbmNlZCIsICJtYXgtY29tcGF0IiwgIm1heC1idW5k
bGUiIH07CitbCisgICAgQ29uZGl0aW9uYWw9V0VCX1JUQywKKyAgICBFbmFibGVkQXRSdW50aW1l
PVBlZXJDb25uZWN0aW9uLAorICAgIEltcGxlbWVudGVkQXM9UlRDSWNlVHJhbnNwb3J0UG9saWN5
CitdIGVudW0gUlRDSWNlVHJhbnNwb3J0UG9saWN5IHsKKyAgICAicmVsYXkiLAorICAgICJhbGwi
Cit9OworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCX1JUQywKKyAgICBFbmFibGVkQXRSdW50aW1l
PVBlZXJDb25uZWN0aW9uLAorICAgIEltcGxlbWVudGVkQXM9UlRDQnVuZGxlUG9saWN5CitdIGVu
dW0gUlRDQnVuZGxlUG9saWN5IHsKKyAgICAiYmFsYW5jZWQiLAorICAgICJtYXgtY29tcGF0IiwK
KyAgICAibWF4LWJ1bmRsZSIKK307CiAKIFsKICAgICBDb25kaXRpb25hbD1XRUJfUlRDLAorICAg
IEVuYWJsZWRBdFJ1bnRpbWU9UGVlckNvbm5lY3Rpb24sCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmpl
Y3QsCiBdIGRpY3Rpb25hcnkgUlRDQ29uZmlndXJhdGlvbiB7CiAgICAgc2VxdWVuY2U8UlRDSWNl
U2VydmVyPiBpY2VTZXJ2ZXJzOwogICAgIFJUQ0ljZVRyYW5zcG9ydFBvbGljeSBpY2VUcmFuc3Bv
cnRQb2xpY3kgPSAiYWxsIjsKICAgICBSVENCdW5kbGVQb2xpY3kgYnVuZGxlUG9saWN5ID0gImJh
bGFuY2VkIjsKKyAgICAvLyBGSVhNRSAxNjk2NjI6IG1pc3NpbmcgcnRjcE11eFBvbGljeQorICAg
IC8vIEZJWE1FIDE2OTY2MjogbWlzc2luZyBwZWVySWRlbnRpdHkKKyAgICAvLyBGSVhNRSAxNjk2
NjI6IG1pc3NpbmcgY2VydGlmaWNhdGVzCisgICAgLy8gRklYTUUgMTY5NjYyOiBtaXNzaW5nIGlj
ZUNhbmRpZGF0ZVBvb2xTaXplCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENJY2VDb25uZWN0aW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ29ubmVjdGlvblN0YXRlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc4
MjcwMmMzYzhkMDhkYTU2YTlmNDEwZjZmZGUyZDA2NjY2YWU4NQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ29ubmVjdGlvblN0YXRl
LmgKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiUGVlckNvbm5lY3Rpb25TdGF0ZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ29ubmVjdGlvblN0YXRlLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ29ubmVjdGlvblN0YXRlLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xYWU0MGRmOWVlZTkwOTMwNDkxOWUwNWFhNGJmMGVlNmJjZGMxYzNiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDb25uZWN0
aW9uU3RhdGUuaWRsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0
aW9uYWw9V0VCX1JUQywKKyAgICBFbmFibGVkQXRSdW50aW1lPVBlZXJDb25uZWN0aW9uCitdIGVu
dW0gUlRDSWNlQ29ubmVjdGlvblN0YXRlIHsKKyAgICAibmV3IiwKKyAgICAiY2hlY2tpbmciLAor
ICAgICJjb25uZWN0ZWQiLAorICAgICJjb21wbGV0ZWQiLAorICAgICJmYWlsZWQiLAorICAgICJk
aXNjb25uZWN0ZWQiLAorICAgICJjbG9zZWQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VHYXRoZXJpbmdTdGF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VHYXRoZXJpbmdTdGF0ZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ3ODI3MDJjM2M4ZDA4ZGE1NmE5ZjQxMGY2ZmRlMmQwNjY2NmFlODUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUdhdGhlcmlu
Z1N0YXRlLmgKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiUGVlckNvbm5lY3Rpb25TdGF0ZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlR2F0aGVyaW5nU3RhdGUuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VHYXRoZXJpbmdTdGF0ZS5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uY2FmMWIyNmYwMGEyMjZhYjliMjc0NGYzNzkzOWU5ZmIwMzJlNWE2ZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlR2F0
aGVyaW5nU3RhdGUuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29u
ZGl0aW9uYWw9V0VCX1JUQywKKyAgICBFbmFibGVkQXRSdW50aW1lPVBlZXJDb25uZWN0aW9uCitd
IGVudW0gUlRDSWNlR2F0aGVyaW5nU3RhdGUgeworICAgICJuZXciLAorICAgICJnYXRoZXJpbmci
LAorICAgICJjb21wbGV0ZSIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0ljZVRyYW5zcG9ydC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENJY2VUcmFuc3BvcnQuaAppbmRleCA0NWNmN2VkODQ5Mjg3NmZhZWQwZTNj
Y2MzMTIwZmMwYTgzOWJhZDVjLi42NmZkYTViYTI4MGJhMjhlNDhiMGM3Y2E4NDdkNTQ1M2I3N2U3
ZWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0lj
ZVRyYW5zcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
SWNlVHJhbnNwb3J0LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE2
IEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzIsNyArMzMsNyBAQAogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAKLSNpbmNs
dWRlICJQZWVyQ29ubmVjdGlvblN0YXRlcy5oIgorI2luY2x1ZGUgIlJUQ0VudW1zLmgiCiAjaW5j
bHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC00MSwyNyArNDIsMjMgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBSVENJY2VUcmFuc3BvcnQgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENJY2VU
cmFuc3BvcnQ+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlIHsKIHB1YmxpYzoKLQotICAgIHVzaW5n
IFRyYW5zcG9ydFN0YXRlID0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZVRyYW5zcG9ydFN0YXRl
OwotICAgIHVzaW5nIEdhdGhlcmluZ1N0YXRlID0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUdh
dGhlcmluZ1N0YXRlOwotCiAgICAgc3RhdGljIFJlZjxSVENJY2VUcmFuc3BvcnQ+IGNyZWF0ZSgp
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENJY2VUcmFuc3BvcnQoKSk7
CiAgICAgfQogICAgIHZpcnR1YWwgflJUQ0ljZVRyYW5zcG9ydCgpIHsgfQogCi0gICAgVHJhbnNw
b3J0U3RhdGUgdHJhbnNwb3J0U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zcG9ydFN0YXRl
OyB9Ci0gICAgdm9pZCBzZXRUcmFuc3BvcnRTdGF0ZShUcmFuc3BvcnRTdGF0ZSBzdGF0ZSkgeyBt
X3RyYW5zcG9ydFN0YXRlID0gc3RhdGU7IH0KKyAgICBSVENJY2VUcmFuc3BvcnRTdGF0ZSB0cmFu
c3BvcnRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNwb3J0U3RhdGU7IH0KKyAgICB2b2lk
IHNldFRyYW5zcG9ydFN0YXRlKFJUQ0ljZVRyYW5zcG9ydFN0YXRlIHN0YXRlKSB7IG1fdHJhbnNw
b3J0U3RhdGUgPSBzdGF0ZTsgfQogCi0gICAgR2F0aGVyaW5nU3RhdGUgZ2F0aGVyaW5nU3RhdGUo
KSBjb25zdCB7IHJldHVybiBtX2dhdGhlcmluZ1N0YXRlOyB9Ci0gICAgdm9pZCBzZXRHYXRoZXJp
bmdTdGF0ZShHYXRoZXJpbmdTdGF0ZSBzdGF0ZSkgeyBtX2dhdGhlcmluZ1N0YXRlID0gc3RhdGU7
IH0KKyAgICBSVENJY2VHYXRoZXJpbmdTdGF0ZSBnYXRoZXJpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fZ2F0aGVyaW5nU3RhdGU7IH0KKyAgICB2b2lkIHNldEdhdGhlcmluZ1N0YXRlKFJUQ0lj
ZUdhdGhlcmluZ1N0YXRlIHN0YXRlKSB7IG1fZ2F0aGVyaW5nU3RhdGUgPSBzdGF0ZTsgfQogCiBw
cml2YXRlOgogICAgIFJUQ0ljZVRyYW5zcG9ydCgpIHsgfTsKIAotICAgIFRyYW5zcG9ydFN0YXRl
IG1fdHJhbnNwb3J0U3RhdGUgeyBUcmFuc3BvcnRTdGF0ZTo6TmV3IH07Ci0gICAgR2F0aGVyaW5n
U3RhdGUgbV9nYXRoZXJpbmdTdGF0ZSB7IEdhdGhlcmluZ1N0YXRlOjpOZXcgfTsKKyAgICBSVENJ
Y2VUcmFuc3BvcnRTdGF0ZSBtX3RyYW5zcG9ydFN0YXRlIHsgUlRDSWNlVHJhbnNwb3J0U3RhdGU6
Ok5ldyB9OworICAgIFJUQ0ljZUdhdGhlcmluZ1N0YXRlIG1fZ2F0aGVyaW5nU3RhdGUgeyBSVENJ
Y2VHYXRoZXJpbmdTdGF0ZTo6TmV3IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uY3BwCmluZGV4IDk5YzRiOWI1YzRhZTk1OTI1ZWYwMzExNGQ4ZWU5ZGVkZWNjMDAz
N2EuLjRjN2EzNmI0NWQyY2RlNGYwNTU4MGEwNjFhMTU2MjIwODI2ZDJlYTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24uY3BwCkBAIC01OCw3ICs1OCw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBQZWVyQ29ubmVjdGlvbjsKLXVzaW5nIG5hbWVzcGFjZSBQZWVyQ29ubmVjdGlvblN0
YXRlczsKIAogUmVmPFJUQ1BlZXJDb25uZWN0aW9uPiBSVENQZWVyQ29ubmVjdGlvbjo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7CkBAIC02Niw3ICs2NSw3IEBAIFJl
ZjxSVENQZWVyQ29ubmVjdGlvbj4gUlRDUGVlckNvbm5lY3Rpb246OmNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0CiAgICAgcGVlckNvbm5lY3Rpb24tPnN1c3BlbmRJZk5lZWRl
ZCgpOwogICAgIC8vIFJUQ1BlZXJDb25uZWN0aW9uIG1heSBzZW5kIGV2ZW50cyBhdCBhYm91dCBh
bnkgdGltZSBkdXJpbmcgaXRzIGxpZmV0aW1lLgogICAgIC8vIExldCdzIG1ha2UgaXQgdW5jb2xs
ZWN0YWJsZSB1bnRpbCB0aGUgcGMgaXMgY2xvc2VkIGJ5IEpTIG9yIHRoZSBwYWdlIHN0b3BzIGl0
LgotICAgIGlmIChwZWVyQ29ubmVjdGlvbi0+bV9zaWduYWxpbmdTdGF0ZSAhPSBTaWduYWxpbmdT
dGF0ZTo6Q2xvc2VkKSB7CisgICAgaWYgKHBlZXJDb25uZWN0aW9uLT5tX3NpZ25hbGluZ1N0YXRl
ICE9IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpIHsKICAgICAgICAgcGVlckNvbm5lY3Rpb24t
PnNldFBlbmRpbmdBY3Rpdml0eShwZWVyQ29ubmVjdGlvbi5wdHIoKSk7CiAgICAgICAgIHBlZXJD
b25uZWN0aW9uLT5yZWdpc3RlclRvQ29udHJvbGxlcigpOwogICAgIH0KQEAgLTk3LDcgKzk2LDcg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gUlRDUGVlckNvbm5lY3Rpb246OmluaXRpYWxpemVXaXRoKERv
Y3VtZW50JiBkb2N1bWVudCwgUlRDQ29uZmkKIAogRXhjZXB0aW9uT3I8UmVmPFJUQ1J0cFNlbmRl
cj4+IFJUQ1BlZXJDb25uZWN0aW9uOjphZGRUcmFjayhSZWY8TWVkaWFTdHJlYW1UcmFjaz4mJiB0
cmFjaywgY29uc3QgVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8TWVkaWFTdHJlYW0+PiYg
c3RyZWFtcykKIHsKLSAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBTaWduYWxpbmdTdGF0ZTo6
Q2xvc2VkKQorICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFJUQ1NpZ25hbGluZ1N0YXRlOjpD
bG9zZWQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NUQVRFX0VSUiB9Owog
CiAgICAgLy8gUmVxdWlyZSBhdCBsZWFzdCBvbmUgc3RyZWFtIHVudGlsIGh0dHBzOi8vZ2l0aHVi
LmNvbS93M2Mvd2VicnRjLXBjL2lzc3Vlcy8yODggaXMgcmVzb2x2ZWQKQEAgLTE1Myw3ICsxNTIs
NyBAQCBFeGNlcHRpb25PcjxSZWY8UlRDUnRwU2VuZGVyPj4gUlRDUGVlckNvbm5lY3Rpb246OmFk
ZFRyYWNrKFJlZjxNZWRpYVN0cmVhbVRyYWNrPgogCiBFeGNlcHRpb25Pcjx2b2lkPiBSVENQZWVy
Q29ubmVjdGlvbjo6cmVtb3ZlVHJhY2soUlRDUnRwU2VuZGVyJiBzZW5kZXIpCiB7Ci0gICAgaWYg
KG1fc2lnbmFsaW5nU3RhdGUgPT0gU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKKyAgICBpZiAobV9z
aWduYWxpbmdTdGF0ZSA9PSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQogICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9TVEFURV9FUlIgfTsKIAogICAgIGJvb2wgc2hvdWxkQWJv
cnQgPSB0cnVlOwpAQCAtMTc0LDcgKzE3Myw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJUQ1BlZXJD
b25uZWN0aW9uOjpyZW1vdmVUcmFjayhSVENSdHBTZW5kZXImIHNlbmRlcikKIAogRXhjZXB0aW9u
T3I8UmVmPFJUQ1J0cFRyYW5zY2VpdmVyPj4gUlRDUGVlckNvbm5lY3Rpb246OmFkZFRyYW5zY2Vp
dmVyKFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmIHRyYWNrLCBjb25zdCBSVENSdHBUcmFuc2NlaXZl
ckluaXQmIGluaXQpCiB7Ci0gICAgaWYgKG1fc2lnbmFsaW5nU3RhdGUgPT0gU2lnbmFsaW5nU3Rh
dGU6OkNsb3NlZCkKKyAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBSVENTaWduYWxpbmdTdGF0
ZTo6Q2xvc2VkKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9TVEFURV9FUlIg
fTsKIAogICAgIFN0cmluZyB0cmFuc2NlaXZlck1pZCA9IFJUQ1J0cFRyYW5zY2VpdmVyOjpnZXRO
ZXh0TWlkKCk7CkBAIC0xOTIsNyArMTkxLDcgQEAgRXhjZXB0aW9uT3I8UmVmPFJUQ1J0cFRyYW5z
Y2VpdmVyPj4gUlRDUGVlckNvbm5lY3Rpb246OmFkZFRyYW5zY2VpdmVyKFJlZjxNZWRpYVMKIAog
RXhjZXB0aW9uT3I8UmVmPFJUQ1J0cFRyYW5zY2VpdmVyPj4gUlRDUGVlckNvbm5lY3Rpb246OmFk
ZFRyYW5zY2VpdmVyKGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgUlRDUnRwVHJhbnNjZWl2ZXJJ
bml0JiBpbml0KQogewotICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFNpZ25hbGluZ1N0YXRl
OjpDbG9zZWQpCisgICAgaWYgKG1fc2lnbmFsaW5nU3RhdGUgPT0gUlRDU2lnbmFsaW5nU3RhdGU6
OkNsb3NlZCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfU1RBVEVfRVJSIH07
CiAKICAgICBpZiAoa2luZCAhPSAiYXVkaW8iICYmIGtpbmQgIT0gInZpZGVvIikKQEAgLTIyMCw3
ICsyMTksNyBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpjb21wbGV0ZUFkZFRyYW5zY2VpdmVy
KFJUQ1J0cFRyYW5zY2VpdmVyJiB0cmFuc2NlaXZlciwgYwogCiB2b2lkIFJUQ1BlZXJDb25uZWN0
aW9uOjpxdWV1ZWRDcmVhdGVPZmZlcihSVENPZmZlck9wdGlvbnMmJiBvcHRpb25zLCBTZXNzaW9u
RGVzY3JpcHRpb25Qcm9taXNlJiYgcHJvbWlzZSkKIHsKLSAgICBpZiAobV9zaWduYWxpbmdTdGF0
ZSA9PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKSB7CisgICAgaWYgKG1fc2lnbmFsaW5nU3RhdGUg
PT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkgewogICAgICAgICBwcm9taXNlLnJlamVjdChJ
TlZBTElEX1NUQVRFX0VSUik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMzAsNyArMjI5
LDcgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6cXVldWVkQ3JlYXRlT2ZmZXIoUlRDT2ZmZXJP
cHRpb25zJiYgb3B0aW9ucywgU2Vzc2lvbkRlc2MKIAogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6
cXVldWVkQ3JlYXRlQW5zd2VyKFJUQ0Fuc3dlck9wdGlvbnMmJiBvcHRpb25zLCBTZXNzaW9uRGVz
Y3JpcHRpb25Qcm9taXNlJiYgcHJvbWlzZSkKIHsKLSAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9
PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKSB7CisgICAgaWYgKG1fc2lnbmFsaW5nU3RhdGUgPT0g
UlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkgewogICAgICAgICBwcm9taXNlLnJlamVjdChJTlZB
TElEX1NUQVRFX0VSUik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yNDAsNyArMjM5LDcg
QEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6cXVldWVkQ3JlYXRlQW5zd2VyKFJUQ0Fuc3dlck9w
dGlvbnMmJiBvcHRpb25zLCBTZXNzaW9uRGUKIAogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6cXVl
dWVkU2V0TG9jYWxEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9u
LCBET01Qcm9taXNlPHZvaWQ+JiYgcHJvbWlzZSkKIHsKLSAgICBpZiAobV9zaWduYWxpbmdTdGF0
ZSA9PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKSB7CisgICAgaWYgKG1fc2lnbmFsaW5nU3RhdGUg
PT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkgewogICAgICAgICBwcm9taXNlLnJlamVjdChJ
TlZBTElEX1NUQVRFX0VSUik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yNjUsNyArMjY0
LDcgQEAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gUlRDUGVlckNvbm5lY3Rpb246OnBl
bmRpbmdMb2NhbERlc2NyaXB0aW9uKCkgY29uc3QKIAogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6
cXVldWVkU2V0UmVtb3RlRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uJiBkZXNjcmlw
dGlvbiwgRE9NUHJvbWlzZTx2b2lkPiYmIHByb21pc2UpCiB7Ci0gICAgaWYgKG1fc2lnbmFsaW5n
U3RhdGUgPT0gU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkgeworICAgIGlmIChtX3NpZ25hbGluZ1N0
YXRlID09IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpIHsKICAgICAgICAgcHJvbWlzZS5yZWpl
Y3QoSU5WQUxJRF9TVEFURV9FUlIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjkwLDcg
KzI4OSw3IEBAIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IFJUQ1BlZXJDb25uZWN0aW9u
OjpwZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24oKSBjb25zCiAKIHZvaWQgUlRDUGVlckNvbm5lY3Rp
b246OnF1ZXVlZEFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUmIHJ0Y0NhbmRpZGF0ZSwg
RE9NUHJvbWlzZTx2b2lkPiYmIHByb21pc2UpCiB7Ci0gICAgaWYgKG1fc2lnbmFsaW5nU3RhdGUg
PT0gU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkgeworICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09
IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoSU5W
QUxJRF9TVEFURV9FUlIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjk4LDY4ICsyOTcs
OSBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpxdWV1ZWRBZGRJY2VDYW5kaWRhdGUoUlRDSWNl
Q2FuZGlkYXRlJiBydGNDYW5kaWRhdGUsIERPTQogICAgIG1fYmFja2VuZC0+YWRkSWNlQ2FuZGlk
YXRlKHJ0Y0NhbmRpZGF0ZSwgV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKLVN0cmluZyBSVENQZWVy
Q29ubmVjdGlvbjo6c2lnbmFsaW5nU3RhdGUoKSBjb25zdAotewotICAgIHN3aXRjaCAobV9zaWdu
YWxpbmdTdGF0ZSkgewotICAgIGNhc2UgU2lnbmFsaW5nU3RhdGU6OlN0YWJsZToKLSAgICAgICAg
cmV0dXJuIEFTQ0lJTGl0ZXJhbCgic3RhYmxlIik7Ci0gICAgY2FzZSBTaWduYWxpbmdTdGF0ZTo6
SGF2ZUxvY2FsT2ZmZXI6Ci0gICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImhhdmUtbG9jYWwt
b2ZmZXIiKTsKLSAgICBjYXNlIFNpZ25hbGluZ1N0YXRlOjpIYXZlUmVtb3RlT2ZmZXI6Ci0gICAg
ICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImhhdmUtcmVtb3RlLW9mZmVyIik7Ci0gICAgY2FzZSBT
aWduYWxpbmdTdGF0ZTo6SGF2ZUxvY2FsUHJBbnN3ZXI6Ci0gICAgICAgIHJldHVybiBBU0NJSUxp
dGVyYWwoImhhdmUtbG9jYWwtcHJhbnN3ZXIiKTsKLSAgICBjYXNlIFNpZ25hbGluZ1N0YXRlOjpI
YXZlUmVtb3RlUHJBbnN3ZXI6Ci0gICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImhhdmUtcmVt
b3RlLXByYW5zd2VyIik7Ci0gICAgY2FzZSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkOgotICAgICAg
ICByZXR1cm4gQVNDSUlMaXRlcmFsKCJjbG9zZWQiKTsKLSAgICB9Ci0KLSAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBSVENQZWVyQ29u
bmVjdGlvbjo6aWNlR2F0aGVyaW5nU3RhdGUoKSBjb25zdAotewotICAgIHN3aXRjaCAobV9pY2VH
YXRoZXJpbmdTdGF0ZSkgewotICAgIGNhc2UgSWNlR2F0aGVyaW5nU3RhdGU6Ok5ldzoKLSAgICAg
ICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibmV3Iik7Ci0gICAgY2FzZSBJY2VHYXRoZXJpbmdTdGF0
ZTo6R2F0aGVyaW5nOgotICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJnYXRoZXJpbmciKTsK
LSAgICBjYXNlIEljZUdhdGhlcmluZ1N0YXRlOjpDb21wbGV0ZToKLSAgICAgICAgcmV0dXJuIEFT
Q0lJTGl0ZXJhbCgiY29tcGxldGUiKTsKLSAgICB9Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBSVENQZWVyQ29ubmVjdGlvbjo6
aWNlQ29ubmVjdGlvblN0YXRlKCkgY29uc3QKLXsKLSAgICBzd2l0Y2ggKG1faWNlQ29ubmVjdGlv
blN0YXRlKSB7Ci0gICAgY2FzZSBJY2VDb25uZWN0aW9uU3RhdGU6Ok5ldzoKLSAgICAgICAgcmV0
dXJuIEFTQ0lJTGl0ZXJhbCgibmV3Iik7Ci0gICAgY2FzZSBJY2VDb25uZWN0aW9uU3RhdGU6OkNo
ZWNraW5nOgotICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJjaGVja2luZyIpOwotICAgIGNh
c2UgSWNlQ29ubmVjdGlvblN0YXRlOjpDb25uZWN0ZWQ6Ci0gICAgICAgIHJldHVybiBBU0NJSUxp
dGVyYWwoImNvbm5lY3RlZCIpOwotICAgIGNhc2UgSWNlQ29ubmVjdGlvblN0YXRlOjpDb21wbGV0
ZWQ6Ci0gICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImNvbXBsZXRlZCIpOwotICAgIGNhc2Ug
SWNlQ29ubmVjdGlvblN0YXRlOjpGYWlsZWQ6Ci0gICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwo
ImZhaWxlZCIpOwotICAgIGNhc2UgSWNlQ29ubmVjdGlvblN0YXRlOjpEaXNjb25uZWN0ZWQ6Ci0g
ICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImRpc2Nvbm5lY3RlZCIpOwotICAgIGNhc2UgSWNl
Q29ubmVjdGlvblN0YXRlOjpDbG9zZWQ6Ci0gICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImNs
b3NlZCIpOwotICAgIH0KLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBT
dHJpbmcoKTsKLX0KLQogRXhjZXB0aW9uT3I8dm9pZD4gUlRDUGVlckNvbm5lY3Rpb246OnNldENv
bmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7Ci0gICAgaWYg
KG1fc2lnbmFsaW5nU3RhdGUgPT0gU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKKyAgICBpZiAobV9z
aWduYWxpbmdTdGF0ZSA9PSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQogICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9TVEFURV9FUlIgfTsKIAogICAgIFZlY3RvcjxNZWRpYUVu
ZHBvaW50Q29uZmlndXJhdGlvbjo6SWNlU2VydmVySW5mbz4gc2VydmVyczsKQEAgLTM5OCw3ICsz
MzgsNyBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpnZXRTdGF0cyhNZWRpYVN0cmVhbVRyYWNr
KiBzZWxlY3RvciwgUmVmPERlZmVycmVkUHJvbWlzZQogCiBFeGNlcHRpb25PcjxSZWY8UlRDRGF0
YUNoYW5uZWw+PiBSVENQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlRGF0YUNoYW5uZWwoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgU3RyaW5nJiYgbGFiZWwsIFJUQ0RhdGFDaGFubmVsSW5p
dCYmIG9wdGlvbnMpCiB7Ci0gICAgaWYgKG1fc2lnbmFsaW5nU3RhdGUgPT0gU2lnbmFsaW5nU3Rh
dGU6OkNsb3NlZCkKKyAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBSVENTaWduYWxpbmdTdGF0
ZTo6Q2xvc2VkKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9TVEFURV9FUlIg
fTsKIAogICAgIC8vIEZJWE1FOiBDaGVjayBvcHRpb25zCkBAIC00MTEsMTMgKzM1MSwxMyBAQCBF
eGNlcHRpb25PcjxSZWY8UlRDRGF0YUNoYW5uZWw+PiBSVENQZWVyQ29ubmVjdGlvbjo6Y3JlYXRl
RGF0YUNoYW5uZWwoU2NyaXB0RXhlYwogCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpjbG9zZSgp
CiB7Ci0gICAgaWYgKG1fc2lnbmFsaW5nU3RhdGUgPT0gU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkK
KyAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQog
ICAgICAgICByZXR1cm47CiAKICAgICBtX2JhY2tlbmQtPnN0b3AoKTsKIAotICAgIG1faWNlQ29u
bmVjdGlvblN0YXRlID0gSWNlQ29ubmVjdGlvblN0YXRlOjpDbG9zZWQ7Ci0gICAgbV9zaWduYWxp
bmdTdGF0ZSA9IFNpZ25hbGluZ1N0YXRlOjpDbG9zZWQ7CisgICAgbV9pY2VDb25uZWN0aW9uU3Rh
dGUgPSBSVENJY2VDb25uZWN0aW9uU3RhdGU6OkNsb3NlZDsKKyAgICBtX3NpZ25hbGluZ1N0YXRl
ID0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZDsKIAogICAgIGZvciAoUlRDUnRwU2VuZGVyJiBz
ZW5kZXIgOiBtX3RyYW5zY2VpdmVyU2V0LT5zZW5kZXJzKCkpCiAgICAgICAgIHNlbmRlci5zdG9w
KCk7CkBAIC00NzAsMTUgKzQxMCwxNSBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjphZGRUcmFu
c2NlaXZlcihSZWY8UlRDUnRwVHJhbnNjZWl2ZXI+JiYgdHJhbnNjZWl2ZXIpCiAgICAgbV90cmFu
c2NlaXZlclNldC0+YXBwZW5kKFdURk1vdmUodHJhbnNjZWl2ZXIpKTsKIH0KIAotdm9pZCBSVENQ
ZWVyQ29ubmVjdGlvbjo6c2V0U2lnbmFsaW5nU3RhdGUoU2lnbmFsaW5nU3RhdGUgbmV3U3RhdGUp
Cit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpzZXRTaWduYWxpbmdTdGF0ZShSVENTaWduYWxpbmdT
dGF0ZSBuZXdTdGF0ZSkKIHsKICAgICBtX3NpZ25hbGluZ1N0YXRlID0gbmV3U3RhdGU7CiB9CiAK
LXZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnVwZGF0ZUljZUdhdGhlcmluZ1N0YXRlKEljZUdhdGhl
cmluZ1N0YXRlIG5ld1N0YXRlKQordm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6dXBkYXRlSWNlR2F0
aGVyaW5nU3RhdGUoUlRDSWNlR2F0aGVyaW5nU3RhdGUgbmV3U3RhdGUpCiB7CiAgICAgc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT5wb3N0VGFzayhbPV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
IHsKLSAgICAgICAgaWYgKG1fc2lnbmFsaW5nU3RhdGUgPT0gU2lnbmFsaW5nU3RhdGU6OkNsb3Nl
ZCB8fCBtX2ljZUdhdGhlcmluZ1N0YXRlID09IG5ld1N0YXRlKQorICAgICAgICBpZiAobV9zaWdu
YWxpbmdTdGF0ZSA9PSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkIHx8IG1faWNlR2F0aGVyaW5n
U3RhdGUgPT0gbmV3U3RhdGUpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgbV9pY2VH
YXRoZXJpbmdTdGF0ZSA9IG5ld1N0YXRlOwpAQCAtNDg2LDEwICs0MjYsMTAgQEAgdm9pZCBSVENQ
ZWVyQ29ubmVjdGlvbjo6dXBkYXRlSWNlR2F0aGVyaW5nU3RhdGUoSWNlR2F0aGVyaW5nU3RhdGUg
bmV3U3RhdGUpCiAgICAgfSk7CiB9CiAKLXZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnVwZGF0ZUlj
ZUNvbm5lY3Rpb25TdGF0ZShJY2VDb25uZWN0aW9uU3RhdGUgbmV3U3RhdGUpCit2b2lkIFJUQ1Bl
ZXJDb25uZWN0aW9uOjp1cGRhdGVJY2VDb25uZWN0aW9uU3RhdGUoUlRDSWNlQ29ubmVjdGlvblN0
YXRlIG5ld1N0YXRlKQogewogICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+cG9zdFRhc2so
Wz1dKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7Ci0gICAgICAgIGlmIChtX3NpZ25hbGluZ1N0
YXRlID09IFNpZ25hbGluZ1N0YXRlOjpDbG9zZWQgfHwgbV9pY2VDb25uZWN0aW9uU3RhdGUgPT0g
bmV3U3RhdGUpCisgICAgICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFJUQ1NpZ25hbGluZ1N0
YXRlOjpDbG9zZWQgfHwgbV9pY2VDb25uZWN0aW9uU3RhdGUgPT0gbmV3U3RhdGUpCiAgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgbV9pY2VDb25uZWN0aW9uU3RhdGUgPSBuZXdTdGF0ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uaAppbmRleCAwNGU2NDRmZDBlNWQyYTk4NGM4M2Y3ZTNiMTc4MjUxYzNjY2Y0NWM4
Li43NWU2MGY5NmJlN2Y4MzY1NWI3YTNkYzYzMDRiNjFmOWM0YWI2NzIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5o
CkBAIC0zOCwxMSArMzgsOSBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1
ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKLSNpbmNsdWRlICJS
VENBbnN3ZXJPcHRpb25zLmgiCiAjaW5jbHVkZSAiUlRDQ29uZmlndXJhdGlvbi5oIgogI2luY2x1
ZGUgIlJUQ0RhdGFDaGFubmVsLmgiCiAjaW5jbHVkZSAiUlRDRW51bXMuaCIKLSNpbmNsdWRlICJS
VENPZmZlck9wdGlvbnMuaCIKICNpbmNsdWRlICJSVENSdHBUcmFuc2NlaXZlci5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC01NSw2ICs1Myw4IEBAIGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9u
RXJyb3JDYWxsYmFjazsKIGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjsKIGNsYXNzIFJUQ1N0
YXRzQ2FsbGJhY2s7CiAKK3N0cnVjdCBSVENBbnN3ZXJPcHRpb25zOworc3RydWN0IFJUQ09mZmVy
T3B0aW9uczsKIHN0cnVjdCBSVENSdHBUcmFuc2NlaXZlckluaXQgewogICAgIFJUQ1J0cFRyYW5z
Y2VpdmVyRGlyZWN0aW9uIGRpcmVjdGlvbjsKIH07CkBAIC02NCwxMCArNjQsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxSVENQZWVyQ29ubmVjdGlvbj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKTsKICAgICB2aXJ0dWFsIH5SVENQZWVyQ29ubmVjdGlvbigpOwogCi0gICAgdXNp
bmcgQW5zd2VyT3B0aW9ucyA9IFJUQ0Fuc3dlck9wdGlvbnM7CiAgICAgdXNpbmcgRGF0YUNoYW5u
ZWxJbml0ID0gUlRDRGF0YUNoYW5uZWxJbml0OwotICAgIHVzaW5nIE9mZmVyQW5zd2VyT3B0aW9u
cyA9IFJUQ09mZmVyQW5zd2VyT3B0aW9uczsKLSAgICB1c2luZyBPZmZlck9wdGlvbnMgPSBSVENP
ZmZlck9wdGlvbnM7CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBpbml0aWFsaXplV2l0aChEb2N1
bWVudCYsIFJUQ0NvbmZpZ3VyYXRpb24mJik7CiAKQEAgLTk3LDEyICs5NCwxMiBAQCBwdWJsaWM6
CiAgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gY3VycmVudFJlbW90ZURlc2NyaXB0
aW9uKCkgY29uc3Q7CiAgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gcGVuZGluZ1Jl
bW90ZURlc2NyaXB0aW9uKCkgY29uc3Q7CiAKLSAgICBTdHJpbmcgc2lnbmFsaW5nU3RhdGUoKSBj
b25zdDsKKyAgICBSVENTaWduYWxpbmdTdGF0ZSBzaWduYWxpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2lnbmFsaW5nU3RhdGU7IH0KIAogICAgIHZvaWQgcXVldWVkQWRkSWNlQ2FuZGlkYXRl
KFJUQ0ljZUNhbmRpZGF0ZSYsIERPTVByb21pc2U8dm9pZD4mJik7CiAKLSAgICBTdHJpbmcgaWNl
R2F0aGVyaW5nU3RhdGUoKSBjb25zdDsKLSAgICBTdHJpbmcgaWNlQ29ubmVjdGlvblN0YXRlKCkg
Y29uc3Q7CisgICAgUlRDSWNlR2F0aGVyaW5nU3RhdGUgaWNlR2F0aGVyaW5nU3RhdGUoKSBjb25z
dCB7IHJldHVybiBtX2ljZUdhdGhlcmluZ1N0YXRlOyB9CisgICAgUlRDSWNlQ29ubmVjdGlvblN0
YXRlIGljZUNvbm5lY3Rpb25TdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1faWNlQ29ubmVjdGlvblN0
YXRlOyB9CiAKICAgICBjb25zdCBSVENDb25maWd1cmF0aW9uJiBnZXRDb25maWd1cmF0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uOyB9CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0Q29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiYpOwpAQCAtMTI1LDE3ICsxMjIsMTQg
QEAgcHVibGljOgogCiAgICAgLy8gQVBJIHVzZWQgYnkgUGVlckNvbm5lY3Rpb25CYWNrZW5kIGFu
ZCByZWxhdGl2ZXMKICAgICB2b2lkIGFkZFRyYW5zY2VpdmVyKFJlZjxSVENSdHBUcmFuc2NlaXZl
cj4mJik7Ci0gICAgdm9pZCBzZXRTaWduYWxpbmdTdGF0ZShQZWVyQ29ubmVjdGlvblN0YXRlczo6
U2lnbmFsaW5nU3RhdGUpOwotICAgIHZvaWQgdXBkYXRlSWNlR2F0aGVyaW5nU3RhdGUoUGVlckNv
bm5lY3Rpb25TdGF0ZXM6OkljZUdhdGhlcmluZ1N0YXRlKTsKLSAgICB2b2lkIHVwZGF0ZUljZUNv
bm5lY3Rpb25TdGF0ZShQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlQ29ubmVjdGlvblN0YXRlKTsK
KyAgICB2b2lkIHNldFNpZ25hbGluZ1N0YXRlKFJUQ1NpZ25hbGluZ1N0YXRlKTsKKyAgICB2b2lk
IHVwZGF0ZUljZUdhdGhlcmluZ1N0YXRlKFJUQ0ljZUdhdGhlcmluZ1N0YXRlKTsKKyAgICB2b2lk
IHVwZGF0ZUljZUNvbm5lY3Rpb25TdGF0ZShSVENJY2VDb25uZWN0aW9uU3RhdGUpOwogCiAgICAg
dm9pZCBzY2hlZHVsZU5lZ290aWF0aW9uTmVlZGVkRXZlbnQoKTsKIAogICAgIFJUQ1J0cFNlbmRl
ckNsaWVudCYgc2VuZGVyQ2xpZW50KCkgeyByZXR1cm4gKnRoaXM7IH0KICAgICB2b2lkIGZpcmVF
dmVudChFdmVudCYpOwotICAgIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZSBp
bnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zaWduYWxpbmdTdGF0ZTsg
fQotICAgIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VHYXRoZXJpbmdTdGF0ZSBpbnRlcm5hbElj
ZUdhdGhlcmluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9pY2VHYXRoZXJpbmdTdGF0ZTsgfQot
ICAgIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VDb25uZWN0aW9uU3RhdGUgaW50ZXJuYWxJY2VD
b25uZWN0aW9uU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2ljZUNvbm5lY3Rpb25TdGF0ZTsgfQog
CiAgICAgdm9pZCBkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkgeyBtX2JhY2tlbmQtPmRp
c2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsgfQogICAgIHZvaWQgZW5hYmxlSUNFQ2FuZGlk
YXRlRmlsdGVyaW5nKCkgeyBtX2JhY2tlbmQtPmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygp
OyB9CkBAIC0xNjEsOSArMTU1LDkgQEAgcHJpdmF0ZToKICAgICAvLyBSVENSdHBTZW5kZXJDbGll
bnQKICAgICB2b2lkIHJlcGxhY2VUcmFjayhSVENSdHBTZW5kZXImLCBSZWY8TWVkaWFTdHJlYW1U
cmFjaz4mJiwgRE9NUHJvbWlzZTx2b2lkPiYmKSBmaW5hbDsKIAotICAgIFBlZXJDb25uZWN0aW9u
U3RhdGVzOjpTaWduYWxpbmdTdGF0ZSBtX3NpZ25hbGluZ1N0YXRlIHsgUGVlckNvbm5lY3Rpb25T
dGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpTdGFibGUgfTsKLSAgICBQZWVyQ29ubmVjdGlvblN0YXRl
czo6SWNlR2F0aGVyaW5nU3RhdGUgbV9pY2VHYXRoZXJpbmdTdGF0ZSB7IFBlZXJDb25uZWN0aW9u
U3RhdGVzOjpJY2VHYXRoZXJpbmdTdGF0ZTo6TmV3IH07Ci0gICAgUGVlckNvbm5lY3Rpb25TdGF0
ZXM6OkljZUNvbm5lY3Rpb25TdGF0ZSBtX2ljZUNvbm5lY3Rpb25TdGF0ZSB7IFBlZXJDb25uZWN0
aW9uU3RhdGVzOjpJY2VDb25uZWN0aW9uU3RhdGU6Ok5ldyB9OworICAgIFJUQ1NpZ25hbGluZ1N0
YXRlIG1fc2lnbmFsaW5nU3RhdGUgeyBSVENTaWduYWxpbmdTdGF0ZTo6U3RhYmxlIH07CisgICAg
UlRDSWNlR2F0aGVyaW5nU3RhdGUgbV9pY2VHYXRoZXJpbmdTdGF0ZSB7IFJUQ0ljZUdhdGhlcmlu
Z1N0YXRlOjpOZXcgfTsKKyAgICBSVENJY2VDb25uZWN0aW9uU3RhdGUgbV9pY2VDb25uZWN0aW9u
U3RhdGUgeyBSVENJY2VDb25uZWN0aW9uU3RhdGU6Ok5ldyB9OwogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPFJ0cFRyYW5zY2VpdmVyU2V0PiBtX3RyYW5zY2VpdmVyU2V0IHsgc3RkOjp1bmlxdWVfcHRy
PFJ0cFRyYW5zY2VpdmVyU2V0PihuZXcgUnRwVHJhbnNjZWl2ZXJTZXQoKSkgfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLmlkbAppbmRleCBlMmZkMDU4MzNjZGM0ZjM2NWRiMzA5OGUxOGVmZDdlMTM4ZjY0ODRlLi5l
YjQwZGNlOTBiZWE2Y2JhMWU1ZjA3NzVjNGQ2YzhmNzkxZTQ3NTZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlk
bApAQCAtOTMsMTEgKzkzLDExIEBACiAgICAgW0pTQnVpbHRpbl0gUHJvbWlzZTx2b2lkPiBhZGRJ
Y2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlIGNhbmRpZGF0ZSk7CiAKICAgICAvLyBGSVhNRSAx
Njk2NDQ6IGNvbnZlcnQgdG8gZW51bQotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
c2lnbmFsaW5nU3RhdGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ1NpZ25hbGluZ1N0YXRl
IHNpZ25hbGluZ1N0YXRlOwogICAgIC8vIEZJWE1FIDE2OTY0NDogY29udmVydCB0byBlbnVtCi0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBpY2VHYXRoZXJpbmdTdGF0ZTsKKyAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgUlRDSWNlR2F0aGVyaW5nU3RhdGUgaWNlR2F0aGVyaW5nU3RhdGU7
CiAgICAgLy8gRklYTUUgMTY5NjQ0OiBjb252ZXJ0IHRvIGVudW0KLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGljZUNvbm5lY3Rpb25TdGF0ZTsKKyAgICByZWFkb25seSBhdHRyaWJ1
dGUgUlRDSWNlQ29ubmVjdGlvblN0YXRlIGljZUNvbm5lY3Rpb25TdGF0ZTsKIAogICAgIC8vIEZJ
WE1FIDE2OTY0NDogbWlzc2luZyBjb25uZWN0aW9uU3RhdGUKICAgICAvLyBGSVhNRSAxNjk2NDQ6
IG1pc3NpbmcgY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2lnbmFsaW5nU3RhdGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2lnbmFsaW5nU3RhdGUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
NzgyNzAyYzNjOGQwOGRhNTZhOWY0MTBmNmZkZTJkMDY2NjZhZTg1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTaWduYWxpbmdTdGF0ZS5o
CkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IlBlZXJDb25uZWN0aW9uU3RhdGVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1NpZ25hbGluZ1N0YXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2lnbmFsaW5nU3RhdGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyMmJj
Zjk5MDZlOWJmMjc3Yzg5MzQyZDY1ZmM2YmRhYTk1MjNmM2QKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1NpZ25hbGluZ1N0YXRlLmlkbApA
QCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVdFQl9SVEMs
CisgICAgRW5hYmxlZEF0UnVudGltZT1QZWVyQ29ubmVjdGlvbgorXSBlbnVtIFJUQ1NpZ25hbGlu
Z1N0YXRlIHsKKyAgICAic3RhYmxlIiwKKyAgICAiaGF2ZS1sb2NhbC1vZmZlciIsCisgICAgImhh
dmUtcmVtb3RlLW9mZmVyIiwKKyAgICAiaGF2ZS1sb2NhbC1wcmFuc3dlciIsCisgICAgImhhdmUt
cmVtb3RlLXByYW5zd2VyIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRw
b2ludC5jcHAKaW5kZXggNWZhZDQ0ZjQ5YzBmNDdiYThjOTc4OWVjYTE2Yzc3OTk2MGExYTA1MC4u
M2M2MTUwMGVhMGNkOWU5Y2IyZDBlOWI1MGU3YjEyZjQyOGRkMWJkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFF
bmRwb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNp
bmNsdWRlICJSVENEYXRhQ2hhbm5lbC5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsRXZlbnQu
aCIKKyNpbmNsdWRlICJSVENFbnVtcy5oIgogI2luY2x1ZGUgIlJUQ1BlZXJDb25uZWN0aW9uLmgi
CiAjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiUlRDU3RhdHNS
ZXBvcnQuaCIKQEAgLTM0MywyMSArMzQ0LDIxIEBAIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2lu
dDo6U3RhdHNDb2xsZWN0b3I6Ok9uU3RhdHNEZWxpdmVyZWQoY29uc3QgcnRjOjpzY29wZWRfCiAg
ICAgfSk7CiB9CiAKLXN0YXRpYyBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGUg
c2lnbmFsaW5nU3RhdGUod2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6U2lnbmFsaW5n
U3RhdGUgc3RhdGUpCitzdGF0aWMgUlRDU2lnbmFsaW5nU3RhdGUgc2lnbmFsaW5nU3RhdGUod2Vi
cnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6U2lnbmFsaW5nU3RhdGUgc3RhdGUpCiB7CiAg
ICAgc3dpdGNoIChzdGF0ZSkgewogICAgIGNhc2Ugd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVy
ZmFjZTo6a1N0YWJsZToKLSAgICAgICAgcmV0dXJuIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWdu
YWxpbmdTdGF0ZTo6U3RhYmxlOworICAgICAgICByZXR1cm4gUlRDU2lnbmFsaW5nU3RhdGU6OlN0
YWJsZTsKICAgICBjYXNlIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OmtIYXZlTG9j
YWxPZmZlcjoKLSAgICAgICAgcmV0dXJuIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdT
dGF0ZTo6SGF2ZUxvY2FsT2ZmZXI7CisgICAgICAgIHJldHVybiBSVENTaWduYWxpbmdTdGF0ZTo6
SGF2ZUxvY2FsT2ZmZXI7CiAgICAgY2FzZSB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNl
OjprSGF2ZUxvY2FsUHJBbnN3ZXI6Ci0gICAgICAgIHJldHVybiBQZWVyQ29ubmVjdGlvblN0YXRl
czo6U2lnbmFsaW5nU3RhdGU6OkhhdmVMb2NhbFByQW5zd2VyOworICAgICAgICByZXR1cm4gUlRD
U2lnbmFsaW5nU3RhdGU6OkhhdmVMb2NhbFByYW5zd2VyOwogICAgIGNhc2Ugd2VicnRjOjpQZWVy
Q29ubmVjdGlvbkludGVyZmFjZTo6a0hhdmVSZW1vdGVPZmZlcjoKLSAgICAgICAgcmV0dXJuIFBl
ZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6SGF2ZVJlbW90ZU9mZmVyOworICAg
ICAgICByZXR1cm4gUlRDU2lnbmFsaW5nU3RhdGU6OkhhdmVSZW1vdGVPZmZlcjsKICAgICBjYXNl
IHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OmtIYXZlUmVtb3RlUHJBbnN3ZXI6Ci0g
ICAgICAgIHJldHVybiBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OkhhdmVS
ZW1vdGVQckFuc3dlcjsKKyAgICAgICAgcmV0dXJuIFJUQ1NpZ25hbGluZ1N0YXRlOjpIYXZlUmVt
b3RlUHJhbnN3ZXI7CiAgICAgY2FzZSB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpr
Q2xvc2VkOgotICAgICAgICByZXR1cm4gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0
YXRlOjpDbG9zZWQ7CisgICAgICAgIHJldHVybiBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkOwog
ICAgIH0KIH0KIApAQCAtNDkwLDM2ICs0OTEsMzYgQEAgdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBv
aW50OjpPblJlbmVnb3RpYXRpb25OZWVkZWQoKQogICAgIH0pOwogfQogCi1zdGF0aWMgaW5saW5l
IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VDb25uZWN0aW9uU3RhdGUgaWNlQ29ubmVjdGlvblN0
YXRlKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OkljZUNvbm5lY3Rpb25TdGF0ZSBz
dGF0ZSkKK3N0YXRpYyBpbmxpbmUgUlRDSWNlQ29ubmVjdGlvblN0YXRlIHRvUlRDSWNlQ29ubmVj
dGlvblN0YXRlKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OkljZUNvbm5lY3Rpb25T
dGF0ZSBzdGF0ZSkKIHsKICAgICBzd2l0Y2ggKHN0YXRlKSB7CiAgICAgY2FzZSB3ZWJydGM6OlBl
ZXJDb25uZWN0aW9uSW50ZXJmYWNlOjprSWNlQ29ubmVjdGlvbk5ldzoKLSAgICAgICAgcmV0dXJu
IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VDb25uZWN0aW9uU3RhdGU6Ok5ldzsKKyAgICAgICAg
cmV0dXJuIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZTo6TmV3OwogICAgIGNhc2Ugd2VicnRjOjpQZWVy
Q29ubmVjdGlvbkludGVyZmFjZTo6a0ljZUNvbm5lY3Rpb25DaGVja2luZzoKLSAgICAgICAgcmV0
dXJuIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VDb25uZWN0aW9uU3RhdGU6OkNoZWNraW5nOwor
ICAgICAgICByZXR1cm4gUlRDSWNlQ29ubmVjdGlvblN0YXRlOjpDaGVja2luZzsKICAgICBjYXNl
IHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OmtJY2VDb25uZWN0aW9uQ29ubmVjdGVk
OgotICAgICAgICByZXR1cm4gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUNvbm5lY3Rpb25TdGF0
ZTo6Q29ubmVjdGVkOworICAgICAgICByZXR1cm4gUlRDSWNlQ29ubmVjdGlvblN0YXRlOjpDb25u
ZWN0ZWQ7CiAgICAgY2FzZSB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjprSWNlQ29u
bmVjdGlvbkNvbXBsZXRlZDoKLSAgICAgICAgcmV0dXJuIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJ
Y2VDb25uZWN0aW9uU3RhdGU6OkNvbXBsZXRlZDsKKyAgICAgICAgcmV0dXJuIFJUQ0ljZUNvbm5l
Y3Rpb25TdGF0ZTo6Q29tcGxldGVkOwogICAgIGNhc2Ugd2VicnRjOjpQZWVyQ29ubmVjdGlvbklu
dGVyZmFjZTo6a0ljZUNvbm5lY3Rpb25GYWlsZWQ6Ci0gICAgICAgIHJldHVybiBQZWVyQ29ubmVj
dGlvblN0YXRlczo6SWNlQ29ubmVjdGlvblN0YXRlOjpGYWlsZWQ7CisgICAgICAgIHJldHVybiBS
VENJY2VDb25uZWN0aW9uU3RhdGU6OkZhaWxlZDsKICAgICBjYXNlIHdlYnJ0Yzo6UGVlckNvbm5l
Y3Rpb25JbnRlcmZhY2U6OmtJY2VDb25uZWN0aW9uRGlzY29ubmVjdGVkOgotICAgICAgICByZXR1
cm4gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUNvbm5lY3Rpb25TdGF0ZTo6RGlzY29ubmVjdGVk
OworICAgICAgICByZXR1cm4gUlRDSWNlQ29ubmVjdGlvblN0YXRlOjpEaXNjb25uZWN0ZWQ7CiAg
ICAgY2FzZSB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjprSWNlQ29ubmVjdGlvbkNs
b3NlZDoKLSAgICAgICAgcmV0dXJuIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VDb25uZWN0aW9u
U3RhdGU6OkNsb3NlZDsKKyAgICAgICAgcmV0dXJuIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZTo6Q2xv
c2VkOwogICAgIGNhc2Ugd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6a0ljZUNvbm5l
Y3Rpb25NYXg6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4g
UGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUNvbm5lY3Rpb25TdGF0ZTo6TmV3OworICAgICAgICBy
ZXR1cm4gUlRDSWNlQ29ubmVjdGlvblN0YXRlOjpOZXc7CiAgICAgfQogfQogCiB2b2lkIExpYldl
YlJUQ01lZGlhRW5kcG9pbnQ6Ok9uSWNlQ29ubmVjdGlvbkNoYW5nZSh3ZWJydGM6OlBlZXJDb25u
ZWN0aW9uSW50ZXJmYWNlOjpJY2VDb25uZWN0aW9uU3RhdGUgc3RhdGUpCiB7Ci0gICAgYXV0byBj
b25uZWN0aW9uU3RhdGUgPSBpY2VDb25uZWN0aW9uU3RhdGUoc3RhdGUpOworICAgIGF1dG8gY29u
bmVjdGlvblN0YXRlID0gdG9SVENJY2VDb25uZWN0aW9uU3RhdGUoc3RhdGUpOwogICAgIGNhbGxP
bk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29ubmVjdGlvblN0
YXRlXSB7CiAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5pc1N0b3BwZWQoKSkKICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNvbm5lY3Rpb24oKS5pbnRlcm5hbEljZUNvbm5lY3Rpb25TdGF0ZSgpICE9IGNvbm5l
Y3Rpb25TdGF0ZSkKKyAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNvbm5lY3Rpb24oKS5pY2VDb25uZWN0aW9uU3RhdGUoKSAhPSBjb25uZWN0aW9uU3Rh
dGUpCiAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BlZXJDb25uZWN0aW9uQmFja2VuZC5j
b25uZWN0aW9uKCkudXBkYXRlSWNlQ29ubmVjdGlvblN0YXRlKGNvbm5lY3Rpb25TdGF0ZSk7CiAg
ICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNwcAppbmRleCBiYTkzZTdkYWYzMWM1M2IxN2IzYmZhZmRkNjQ0ZjAxNmU5YWQ2
MmYyLi41NjY2NGM4ZDljZDQxYTUxY2VhNGQ0NTA1YTg4MWMyNzc2MDYxNDg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKQEAg
LTczLDE0ICs3MywxNCBAQCBzdGF0aWMgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6
UlRDQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uRnJvbU1lZGlhRQogewogICAgIHdlYnJ0Yzo6
UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24gcnRjQ29uZmlndXJhdGlv
bjsKIAotICAgIGlmIChjb25maWd1cmF0aW9uLmljZVRyYW5zcG9ydFBvbGljeSA9PSBQZWVyQ29u
bmVjdGlvblN0YXRlczo6SWNlVHJhbnNwb3J0UG9saWN5OjpSZWxheSkKKyAgICBpZiAoY29uZmln
dXJhdGlvbi5pY2VUcmFuc3BvcnRQb2xpY3kgPT0gUlRDSWNlVHJhbnNwb3J0UG9saWN5OjpSZWxh
eSkKICAgICAgICAgcnRjQ29uZmlndXJhdGlvbi50eXBlID0gd2VicnRjOjpQZWVyQ29ubmVjdGlv
bkludGVyZmFjZTo6a1JlbGF5OwogCiAgICAgLy8gRklYTUU6IFN1cHBvcnQgUGVlckNvbm5lY3Rp
b25TdGF0ZXM6OkJ1bmRsZVBvbGljeTo6TWF4QnVuZGxlLgogICAgIC8vIExpYldlYlJUQyBkb2Vz
IG5vdCBsaWtlIGl0IGFuZCB3aWxsIGZhaWwgdG8gc2V0IGFueSBjb25maWd1cmF0aW9uIGZpZWxk
IG90aGVyd2lzZS4KICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2OTM4OS4KIAotICAgIGlmIChjb25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSA9PSBQ
ZWVyQ29ubmVjdGlvblN0YXRlczo6QnVuZGxlUG9saWN5OjpNYXhDb21wYXQpCisgICAgaWYgKGNv
bmZpZ3VyYXRpb24uYnVuZGxlUG9saWN5ID09IFJUQ0J1bmRsZVBvbGljeTo6TWF4Q29tcGF0KQog
ICAgICAgICBydGNDb25maWd1cmF0aW9uLmJ1bmRsZV9wb2xpY3kgPSB3ZWJydGM6OlBlZXJDb25u
ZWN0aW9uSW50ZXJmYWNlOjprQnVuZGxlUG9saWN5TWF4Q29tcGF0OwogCiAgICAgZm9yIChhdXRv
JiBzZXJ2ZXIgOiBjb25maWd1cmF0aW9uLmljZVNlcnZlcnMpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiYjAxN2YzMGIyMWZi
ZWU0M2RhN2FiNTVkMDI2ZWU0M2FmNmE2NWFkLi4zNWMyMWU0NDJmYTA0OGU4YjYwNWNjNGNmZGQ1
NjI4ZjI4M2JhZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xNDI1LDYgKzE0MjUsMTUgQEAKIAkJMzE2RENCMjIxRTc4Q0E1
NTAwMUI1Rjg3IC8qIEpTUlRDUnRwVHJhbnNjZWl2ZXJEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkRDQjFDMUU3OENBNTUwMDFCNUY4
NyAvKiBKU1JUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0aW9uLmggKi87IH07CiAJCTMxNkRDQjMxMUU3
OEZCNkMwMDFCNUY4NyAvKiBKU1JUQ0Fuc3dlck9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RENCMkQxRTc4RjQ5NjAwMUI1Rjg3IC8q
IEpTUlRDQW5zd2VyT3B0aW9ucy5jcHAgKi87IH07CiAJCTMxNkRDQjMyMUU3OEZCNzAwMDFCNUY4
NyAvKiBKU1JUQ09mZmVyT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTZEQ0IyRjFFNzhGNDk2MDAxQjVGODcgLyogSlNSVENPZmZlck9w
dGlvbnMuY3BwICovOyB9OworCQkzMTZEQ0IzNzFFNzkwRTFCMDAxQjVGODcgLyogUlRDSWNlR2F0
aGVyaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxNkRDQjM0MUU3OTBFMUIwMDFCNUY4NyAvKiBSVENJY2VHYXRoZXJpbmdTdGF0ZS5oICov
OyB9OworCQkzMTZEQ0IzRDFFNzkwRTJDMDAxQjVGODcgLyogUlRDSWNlQ29ubmVjdGlvblN0YXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZEQ0Iz
QTFFNzkwRTJDMDAxQjVGODcgLyogUlRDSWNlQ29ubmVjdGlvblN0YXRlLmggKi87IH07CisJCTMx
NkRDQjQzMUU3OTBFM0MwMDFCNUY4NyAvKiBSVENTaWduYWxpbmdTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RENCNDAxRTc5MEUzQzAwMUI1
Rjg3IC8qIFJUQ1NpZ25hbGluZ1N0YXRlLmggKi87IH07CisJCTMxNkRDQjRCMUU3OTEwQTYwMDFC
NUY4NyAvKiBKU1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZEQ0I0NTFFNzkxMEE2MDAxQjVGODcgLyogSlNS
VENJY2VDb25uZWN0aW9uU3RhdGUuY3BwICovOyB9OworCQkzMTZEQ0I0QzFFNzkxMEE2MDAxQjVG
ODcgLyogSlNSVENJY2VDb25uZWN0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkRDQjQ2MUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0lj
ZUNvbm5lY3Rpb25TdGF0ZS5oICovOyB9OworCQkzMTZEQ0I0RDFFNzkxMEE2MDAxQjVGODcgLyog
SlNSVENJY2VHYXRoZXJpbmdTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTZEQ0I0NzFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENJY2VHYXRo
ZXJpbmdTdGF0ZS5jcHAgKi87IH07CisJCTMxNkRDQjRFMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JU
Q0ljZUdhdGhlcmluZ1N0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTZEQ0I0ODFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENJY2VHYXRoZXJpbmdT
dGF0ZS5oICovOyB9OworCQkzMTZEQ0I0RjFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENTaWduYWxp
bmdTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMTZEQ0I0OTFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENTaWduYWxpbmdTdGF0ZS5jcHAgKi87
IH07CisJCTMxNkRDQjUwMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ1NpZ25hbGluZ1N0YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZEQ0I0QTFF
NzkxMEE2MDAxQjVGODcgLyogSlNSVENTaWduYWxpbmdTdGF0ZS5oICovOyB9OwogCQkzMTZGRTA3
MTBFNkNDQkVFMDBCRjYwODggLyogSlNDU1NLZXlmcmFtZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUwNkQwRTZDQ0JFRTAwQkY2MDg4
IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmNwcCAqLzsgfTsKIAkJMzE2RkUwNzIwRTZDQ0JFRTAwQkY2
MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTZGRTA2RTBFNkNDQkVFMDBCRjYwODggLyogSlNDU1NLZXlmcmFt
ZVJ1bGUuaCAqLzsgfTsKIAkJMzE2RkUwNzMwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJh
bWVzUnVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMTZGRTA2RjBFNkNDQkVFMDBCRjYwODggLyogSlNDU1NLZXlmcmFtZXNSdWxlLmNwcCAqLzsg
fTsKQEAgLTg5MTUsNiArODkyNCwxOCBAQAogCQkzMTZEQ0IyRTFFNzhGNDk2MDAxQjVGODcgLyog
SlNSVENBbnN3ZXJPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
UlRDQW5zd2VyT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTZEQ0Iy
RjFFNzhGNDk2MDAxQjVGODcgLyogSlNSVENPZmZlck9wdGlvbnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSVENPZmZlck9wdGlvbnMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkzMTZEQ0IzMDFFNzhGNDk2MDAxQjVGODcgLyogSlNSVENPZmZl
ck9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSVENPZmZlck9w
dGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2RENCMzQxRTc5MEUxQjAw
MUI1Rjg3IC8qIFJUQ0ljZUdhdGhlcmluZ1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJUQ0ljZUdhdGhlcmluZ1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTMxNkRDQjM1MUU3OTBFMUIwMDFCNUY4NyAvKiBSVENJY2VHYXRoZXJpbmdTdGF0ZS5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRDSWNlR2F0aGVyaW5nU3RhdGUuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTZEQ0IzQTFFNzkwRTJDMDAxQjVGODcgLyogUlRD
SWNlQ29ubmVjdGlvblN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJU
Q0ljZUNvbm5lY3Rpb25TdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTZE
Q0IzQjFFNzkwRTJDMDAxQjVGODcgLyogUlRDSWNlQ29ubmVjdGlvblN0YXRlLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBSVENJY2VDb25uZWN0aW9uU3RhdGUuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMTZEQ0I0MDFFNzkwRTNDMDAxQjVGODcgLyogUlRDU2lnbmFsaW5n
U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDU2lnbmFsaW5nU3Rh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2RENCNDExRTc5MEUzQzAwMUI1
Rjg3IC8qIFJUQ1NpZ25hbGluZ1N0YXRlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENT
aWduYWxpbmdTdGF0ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkRDQjQ1
MUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkRDQjQ2MUU3OTEwQTYwMDFCNUY4NyAv
KiBKU1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzMTZEQ0I0NzFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENJY2VHYXRoZXJpbmdTdGF0ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JUQ0ljZUdhdGhlcmlu
Z1N0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2RENCNDgxRTc5MTBB
NjAwMUI1Rjg3IC8qIEpTUlRDSWNlR2F0aGVyaW5nU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNSVENJY2VHYXRoZXJpbmdTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTZEQ0I0OTFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENTaWduYWxpbmdT
dGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JUQ1NpZ25h
bGluZ1N0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2RENCNEExRTc5
MTBBNjAwMUI1Rjg3IC8qIEpTUlRDU2lnbmFsaW5nU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNSVENTaWduYWxpbmdTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzMTZGRTA2RDBFNkNDQkVFMDBCRjYwODggLyogSlNDU1NLZXlmcmFtZVJ1bGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NLZXlmcmFtZVJ1
bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTZGRTA2RTBFNkNDQkVFMDBC
RjYwODggLyogSlNDU1NLZXlmcmFtZVJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNDU1NLZXlmcmFtZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MzE2RkUwNkYwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVzUnVsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU0tleWZyYW1lc1J1bGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU4NTYsNiArMTU4NzcsOCBAQAogCQkJCTA3
MkE3MDNGMUQ2RThGNjIwMERGMEFGQyAvKiBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmlkbCAq
LywKIAkJCQk0MUU0MDgzODFEQ0I3NDc5MDBFRkNFMTkgLyogUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmNwcCAqLywKIAkJCQk1RTJDNDM0RDFCQ0VFMkU1MDAwMUUyQkMgLyogUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmggKi8sCisJCQkJMzE2RENCMkIxRTc4RjNBOTAwMUI1Rjg3IC8qIFJUQ0Fuc3dlck9w
dGlvbnMuaCAqLywKKwkJCQkzMTZEQ0IyQzFFNzhGM0E5MDAxQjVGODcgLyogUlRDQW5zd2VyT3B0
aW9ucy5pZGwgKi8sCiAJCQkJMDdBQjk5NjUxOERBM0MwMTAwMTg3NzFFIC8qIFJUQ0NvbmZpZ3Vy
YXRpb24uaCAqLywKIAkJCQkwN0FCOTk2NjE4REEzQzAxMDAxODc3MUUgLyogUlRDQ29uZmlndXJh
dGlvbi5pZGwgKi8sCiAJCQkJNDE4MjA1NDgxRTUzRUFBRDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xs
ZXIuY3BwICovLApAQCAtMTU4NzksMTEgKzE1OTAyLDE3IEBACiAJCQkJMDcyMjFCNzQxN0NFQzMy
NzAwODQ4RTUxIC8qIFJUQ0ljZUNhbmRpZGF0ZUV2ZW50LmNwcCAqLywKIAkJCQkwNzIyMUI3NTE3
Q0VDMzI3MDA4NDhFNTEgLyogUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaCAqLywKIAkJCQkwNzIyMUI3
NjE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaWRsICovLAorCQkJCTMx
NkRDQjNBMUU3OTBFMkMwMDFCNUY4NyAvKiBSVENJY2VDb25uZWN0aW9uU3RhdGUuaCAqLywKKwkJ
CQkzMTZEQ0IzQjFFNzkwRTJDMDAxQjVGODcgLyogUlRDSWNlQ29ubmVjdGlvblN0YXRlLmlkbCAq
LywKKwkJCQkzMTZEQ0IzNDFFNzkwRTFCMDAxQjVGODcgLyogUlRDSWNlR2F0aGVyaW5nU3RhdGUu
aCAqLywKKwkJCQkzMTZEQ0IzNTFFNzkwRTFCMDAxQjVGODcgLyogUlRDSWNlR2F0aGVyaW5nU3Rh
dGUuaWRsICovLAogCQkJCTA3QUI5OTY3MThEQTNDMDEwMDE4NzcxRSAvKiBSVENJY2VTZXJ2ZXIu
aCAqLywKIAkJCQkwN0FCOTk2ODE4REEzQzAxMDAxODc3MUUgLyogUlRDSWNlU2VydmVyLmlkbCAq
LywKIAkJCQk1RTY2NTMwOTFEQTQzN0JGMDBGREQ4NEMgLyogUlRDSWNlVHJhbnNwb3J0LmggKi8s
CiAJCQkJMDczNzk0REMxOUVFMkM1MjAwRTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5o
ICovLAogCQkJCTMxNkRDQjEyMUU3OEJFNDMwMDFCNUY4NyAvKiBSVENPZmZlckFuc3dlck9wdGlv
bnMuaWRsICovLAorCQkJCTMxNkRDQjI4MUU3OEYzOTUwMDFCNUY4NyAvKiBSVENPZmZlck9wdGlv
bnMuaCAqLywKKwkJCQkzMTZEQ0IyOTFFNzhGMzk1MDAxQjVGODcgLyogUlRDT2ZmZXJPcHRpb25z
LmlkbCAqLywKIAkJCQkwNzIyMUI3NzE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDUGVlckNvbm5lY3Rp
b24uY3BwICovLAogCQkJCTA3MjIxQjc4MTdDRUMzMjcwMDg0OEU1MSAvKiBSVENQZWVyQ29ubmVj
dGlvbi5oICovLAogCQkJCTA3MjIxQjc5MTdDRUMzMjcwMDg0OEU1MSAvKiBSVENQZWVyQ29ubmVj
dGlvbi5pZGwgKi8sCkBAIC0xNTkwNCw2ICsxNTkzMyw4IEBACiAJCQkJMDcyMjFCN0ExN0NFQzMy
NzAwODQ4RTUxIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgKi8sCiAJCQkJMDcyMjFCN0Ix
N0NFQzMyNzAwODQ4RTUxIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oICovLAogCQkJCTA3MjIx
QjdDMTdDRUMzMjcwMDg0OEU1MSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb24uaWRsICovLAorCQkJ
CTMxNkRDQjQwMUU3OTBFM0MwMDFCNUY4NyAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovLAorCQkJ
CTMxNkRDQjQxMUU3OTBFM0MwMDFCNUY4NyAvKiBSVENTaWduYWxpbmdTdGF0ZS5pZGwgKi8sCiAJ
CQkJMDcyMjFCODQxN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ1N0YXRzUmVwb3J0LmggKi8sCiAJCQkJ
MDcyMjFCODUxN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ1N0YXRzUmVwb3J0LmlkbCAqLywKIAkJCQk1
RTJDNDM2NDFCQ0VFMzcyMDAwMUUyQkMgLyogUlRDVHJhY2tFdmVudC5jcHAgKi8sCkBAIC0xNTkx
NiwxMCArMTU5NDcsNiBAQAogCQkJCTA3MjIxQjhGMTdDRUMzMjcwMDg0OEU1MSAvKiBVc2VyTWVk
aWFDb250cm9sbGVyLmggKi8sCiAJCQkJMDcyMjFCOTAxN0NFQzMyNzAwODQ4RTUxIC8qIFVzZXJN
ZWRpYVJlcXVlc3QuY3BwICovLAogCQkJCTA3MjIxQjkxMTdDRUMzMjcwMDg0OEU1MSAvKiBVc2Vy
TWVkaWFSZXF1ZXN0LmggKi8sCi0JCQkJMzE2RENCMjgxRTc4RjM5NTAwMUI1Rjg3IC8qIFJUQ09m
ZmVyT3B0aW9ucy5oICovLAotCQkJCTMxNkRDQjI5MUU3OEYzOTUwMDFCNUY4NyAvKiBSVENPZmZl
ck9wdGlvbnMuaWRsICovLAotCQkJCTMxNkRDQjJCMUU3OEYzQTkwMDFCNUY4NyAvKiBSVENBbnN3
ZXJPcHRpb25zLmggKi8sCi0JCQkJMzE2RENCMkMxRTc4RjNBOTAwMUI1Rjg3IC8qIFJUQ0Fuc3dl
ck9wdGlvbnMuaWRsICovLAogCQkJKTsKIAkJCXBhdGggPSBtZWRpYXN0cmVhbTsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNjEwMyw2ICsxNjEzMCwxMCBAQAogCQkJCTA3OTY5RDlD
MTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ0ljZUNhbmRpZGF0ZS5oICovLAogCQkJCTA3OTY5RDlE
MTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ0ljZUNhbmRpZGF0ZUV2ZW50LmNwcCAqLywKIAkJCQkw
Nzk2OUQ5RTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENJY2VDYW5kaWRhdGVFdmVudC5oICovLAor
CQkJCTMxNkRDQjQ1MUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5j
cHAgKi8sCisJCQkJMzE2RENCNDYxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDSWNlQ29ubmVjdGlv
blN0YXRlLmggKi8sCisJCQkJMzE2RENCNDcxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDSWNlR2F0
aGVyaW5nU3RhdGUuY3BwICovLAorCQkJCTMxNkRDQjQ4MUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JU
Q0ljZUdhdGhlcmluZ1N0YXRlLmggKi8sCiAJCQkJMDczNzk0RTkxOUVFMzQxRTAwRTVBMDQ1IC8q
IEpTUlRDSWNlU2VydmVyLmNwcCAqLywKIAkJCQkwNzM3OTRFQTE5RUUzNDFFMDBFNUEwNDUgLyog
SlNSVENJY2VTZXJ2ZXIuaCAqLywKIAkJCQkzMTZEQ0IxOTFFNzhDQTU1MDAxQjVGODcgLyogSlNS
VENPZmZlckFuc3dlck9wdGlvbnMuY3BwICovLApAQCAtMTYxMjEsNiArMTYxNTIsOCBAQAogCQkJ
CTMxNkRDQjFDMUU3OENBNTUwMDFCNUY4NyAvKiBKU1JUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0aW9u
LmggKi8sCiAJCQkJMDc5NjlEQTExN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uLmNwcCAqLywKIAkJCQkwNzk2OURBMjE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTZXNz
aW9uRGVzY3JpcHRpb24uaCAqLywKKwkJCQkzMTZEQ0I0OTFFNzkxMEE2MDAxQjVGODcgLyogSlNS
VENTaWduYWxpbmdTdGF0ZS5jcHAgKi8sCisJCQkJMzE2RENCNEExRTc5MTBBNjAwMUI1Rjg3IC8q
IEpTUlRDU2lnbmFsaW5nU3RhdGUuaCAqLywKIAkJCQkwNzk2OURBNzE3RDE0MTUxMDA3RkY4NDIg
LyogSlNSVENTdGF0c1JlcG9ydC5jcHAgKi8sCiAJCQkJMDc5NjlEQTgxN0QxNDE1MTAwN0ZGODQy
IC8qIEpTUlRDU3RhdHNSZXBvcnQuaCAqLywKIAkJCQk1RTJDNDM2OTFCQ0YwNUM4MDAwMUUyQkMg
LyogSlNSVENUcmFja0V2ZW50LmNwcCAqLywKQEAgLTI2MTIwLDYgKzI2MTUzLDcgQEAKIAkJCQk5
MzMwOUREOTA5OUU2NDkyMDA1NkU1ODEgLyogQXBwbHlTdHlsZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxMkREOEY2MEQ5MUU2QUYwMDBGODlFRSAvKiBBcmNoaXZlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTJERDhGRDBEOTFFNkFGMDAwRjg5RUUgLyogQXJjaGl2ZUZhY3RvcnkuaCBp
biBIZWFkZXJzICovLAorCQkJCTMxNkRDQjRFMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUdh
dGhlcmluZ1N0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJERDhGQzBEOTFFNkFGMDAwRjg5
RUUgLyogQXJjaGl2ZVJlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJERDhGODBEOTFF
NkFGMDAwRjg5RUUgLyogQXJjaGl2ZVJlc291cmNlQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkQ1Njg2Q0ExM0FDMTgwMjAwQjY5QzY4IC8qIEFzeW5jQXVkaW9EZWNvZGVyLmggaW4g
SGVhZGVycyAqLywKQEAgLTI3MTc4LDYgKzI3MjEyLDcgQEAKIAkJCQk1MTg1RkNBNzFCQjRDNEU4
MDAxMjg5OEYgLyogSURCUmVjb3JkSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4
NUZDQTkxQkI0QzRFODAwMTI4OThGIC8qIElEQlJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxNDEyOTk5MUM2OTc2OTAwMDU5RTcxNCAvKiBJREJSZXF1ZXN0Q29tcGxldGlvbkV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQkzMTZEQ0IzRDFFNzkwRTJDMDAxQjVGODcgLyogUlRDSWNlQ29u
bmVjdGlvblN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBBNThGQTFCQUNDN0YyMDBDMTky
ODIgLyogSURCUmVxdWVzdERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNDVCMTBBMUJDNDhF
MkUwMEU4NjIxOSAvKiBJREJSZXNvdXJjZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxRDcyMzZEMUJCNjE3NDkwMDQ3OENBMyAvKiBJREJSZXN1bHREYXRhLmggaW4gSGVhZGVycyAq
LywKQEAgLTI3NzE4LDYgKzI3NzUzLDcgQEAKIAkJCQk2NURGMzIwMDA5RDFDQzYwMDAwQkUzMjUg
LyogSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYxM0VF
MENENjgxQkIwMEZBREE3NSAvKiBKU1Byb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3NzY2NEZEMTgzRTZCNUMwMDEzM0I5MiAvKiBKU1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTZEQ0IzNzFFNzkwRTFCMDAxQjVGODcgLyogUlRDSWNl
R2F0aGVyaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUI2NThGRkEyMTUyMkVGM0EwMERE
NTU5NSAvKiBKU1JhZGlvTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMjAyMDlE
MUNDNjAwMDBCRTMyNSAvKiBKU1JhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2QzRDOTZERjFB
RDQ0ODM1MDAzNjNGNjQgLyogSlNSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI4MDExLDYgKzI4MDQ3LDcgQEAKIAkJCQkxQUUwMEQ1OTE4MkRBQzhEMDAw
ODdERDcgLyogS2V5ZWRDb2RpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0E2M0M1MUI3NDMx
OEYwMEU3RENEQyAvKiBLZXllZERlY29kZXJDRi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QTYz
QzYxQjc0MzE5MjAwRTdEQ0RDIC8qIEtleWVkRW5jb2RlckNGLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkzMTZEQ0I0QzFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENJY2VDb25uZWN0aW9uU3RhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUE1MTNCM0Q3MTE0QjE2NjYwMDFDNDI5QiAvKiBLZXlFdmVudENv
Y29hLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNjU1NDEzOTE0ODk4MTFDMDAwREZDNUQgLyogS2V5
RXZlbnRDb2Rlc0lPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUxMUEwRTZFMURBNzAwQkY2
MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTI4Njg3LDYgKzI4
NzI0LDcgQEAKIAkJCQk0MzY3MDhENTEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHUmVzb3Vy
Y2VGaWx0ZXJQcmltaXRpdmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcwOEQ3MTJEOUNBNEIw
MDA0NDIzNCAvKiBSZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MzY3MDhEOTEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFk
aWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE2RENCNDMxRTc5MEUzQzAwMUI1Rjg3IC8qIFJU
Q1NpZ25hbGluZ1N0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MDhEQjEyRDlDQTRCMDAw
NDQyMzQgLyogUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQz
NjcwOEREMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDM2NzA4REYxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jlc291
cmNlUGF0dGVybi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTI3Nyw2ICsyOTMxNSw3IEBACiAJCQkJ
MDg4QTBFMEExMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwODFERDQ5QzEzQkExQTYwMDBEQzc2MjcgLyogU1ZHUHJvcGVydHlJbmZvLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwODhBMEUwQjEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUZWFy
T2ZmLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTZEQ0I1MDFFNzkxMEE2MDAxQjVGODcgLyogSlNS
VENTaWduYWxpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBFMEMxMjZFRjFEQjAw
OTc4RjdBIC8qIFNWR1Byb3BlcnR5VHJhaXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5
QTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwOEVERTE5RjEyQTUwQjhFMDBCOTU3OTcgLyogU1ZHUmVjdC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zMDkxNiw2ICszMDk1NSw3IEBACiAJCQkJQjJBMDE1QUEwQUY2Q0Q1MzAwNkJD
RTBFIC8qIEdyYXBoaWNzVHlwZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTExMkY0NzExRTNB
ODYxMjAwRDZDREZEIC8qIEdyaWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RGNzQ4M0UxOEZF
QkNFQzAwMDZFQ0MwIC8qIEdyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkzMTZEQ0I0QjFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENJY2VDb25uZWN0aW9uU3RhdGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEyREU3MTcxRTRCNzQ5QzAwRjlBQ0NGIC8qIEdyaWRU
cmFja1NpemluZ0FsZ29yaXRobS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RCRjEyNTFG
MTJEMDAzRUYyNjkgLyogSGlkZGVuSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUx
NUJFMTlCMUQ1NEY2QzEwMEREN0M2OCAvKiBISURHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMzA5NTEsNiArMzA5OTEsNyBAQAogCQkJCUQzNTlENzg5MTI5Q0EyNzEwMDA2RTVEMiAvKiBI
VE1MRGV0YWlsc0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThFQTc5RjkwQTE5MTZE
RjAwQThFRjVGIC8qIEhUTUxEaXJlY3RvcnlFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4RUE3Q0IxMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MRGl2RWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkzMTZEQ0I0RjFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENTaWduYWxpbmdTdGF0
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEVBNzlGNTBBMTkxNkRGMDBBOEVGNUYgLyogSFRN
TERMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUE5MTA4MjQ1RTU5MDAx
RTlBQkMgLyogSFRNTERvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0IzODY2MTIy
ODgzRTkwMEI4MUZGOCAvKiBIVE1MRG9jdW1lbnRQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0zMTI5OSw2ICszMTM0MCw3IEBACiAJCQkJOTRFODM5NTUxREZCMkJDNDAwN0JDNkE3IC8qIEpT
Q1NTTmFtZXNwYWNlUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQ2QzIwMjBDMEREQzhG
MDAyMENGQzMgLyogSlNDU1NQYWdlUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNENGN0Iz
MzA5RjZFQ0Q3MDBFQjM2NjUgLyogSlNDU1NSdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMx
NkRDQjREMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUdhdGhlcmluZ1N0YXRlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDNDZDMUVFMEMwRERCREYwMDIwQ0ZDMyAvKiBKU0NTU1J1bGVDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThEMDVGQTcwQTIzQjMwMTAwNUU3MjAzIC8qIEpT
Q1NTUnVsZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5MjI2MkYxMDMyMTA4NDAwNkU3
RDVEIC8qIEpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmgKaW5kZXgg
OTRiYmUxMDM2YTY1ZTYzOGI4MDE4YWZhZWU3MDk3NzMxZDdhZWJkZC4uMWE0MzU2ZjI2MWZjYWNl
NWUzNGE1ZjAyNzg4OGNhNTE0ZWQyYzc0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02Niw4ICs2Nyw2IEBAIHB1YmxpYzoKICAg
ICAgICAgRmFpbGVkCiAgICAgfTsKIAotICAgIHVzaW5nIEljZVRyYW5zcG9ydFN0YXRlID0gUGVl
ckNvbm5lY3Rpb25TdGF0ZXM6OkljZVRyYW5zcG9ydFN0YXRlOwotCiAgICAgdmlydHVhbCB2b2lk
IHNldENvbmZpZ3VyYXRpb24oTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb24mJikgPSAwOwogCiAg
ICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlRHRsc0luZm8oKSA9IDA7CkBAIC05OCw3ICs5Nyw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ290RHRsc0ZpbmdlcnByaW50KGNvbnN0IFN0cmlu
ZyYgZmluZ2VycHJpbnQsIGNvbnN0IFN0cmluZyYgZmluZ2VycHJpbnRGdW5jdGlvbikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBnb3RJY2VDYW5kaWRhdGUoY29uc3QgU3RyaW5nJiBtaWQsIEljZUNh
bmRpZGF0ZSYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRvbmVHYXRoZXJpbmdDYW5kaWRhdGVz
KGNvbnN0IFN0cmluZyYgbWlkKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGljZVRyYW5zcG9ydFN0
YXRlQ2hhbmdlZChjb25zdCBTdHJpbmcmIG1pZCwgTWVkaWFFbmRwb2ludDo6SWNlVHJhbnNwb3J0
U3RhdGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaWNlVHJhbnNwb3J0U3RhdGVDaGFuZ2VkKGNv
bnN0IFN0cmluZyYgbWlkLCBSVENJY2VUcmFuc3BvcnRTdGF0ZSkgPSAwOwogCiAgICAgdmlydHVh
bCB+TWVkaWFFbmRwb2ludENsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRDb25maWd1
cmF0aW9uLmNwcAppbmRleCBjMmRhMzQ0YWEzMGY5NDI1ZjI2YjRjNmU0Y2E3MWJmYmY4NmU2ZWU0
Li4wNmY4ZWUwMjEwM2UzYTE4NGQwNzJjZTE0MjRjN2E2NGVkMmFlYTQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50Q29uZmlndXJh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFF
bmRwb2ludENvbmZpZ3VyYXRpb24uY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxNSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDcgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1NZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbjo6TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRp
b24oVmVjdG9yPEljZVNlcnZlckluZm8+JiYgaWNlU2VydmVycywgSWNlVHJhbnNwb3J0UG9saWN5
IGljZVRyYW5zcG9ydFBvbGljeSwgQnVuZGxlUG9saWN5IGJ1bmRsZVBvbGljeSkKK01lZGlhRW5k
cG9pbnRDb25maWd1cmF0aW9uOjpNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbihWZWN0b3I8SWNl
U2VydmVySW5mbz4mJiBpY2VTZXJ2ZXJzLCBSVENJY2VUcmFuc3BvcnRQb2xpY3kgaWNlVHJhbnNw
b3J0UG9saWN5LCBSVENCdW5kbGVQb2xpY3kgYnVuZGxlUG9saWN5KQogICAgIDogaWNlU2VydmVy
cyhXVEZNb3ZlKGljZVNlcnZlcnMpKQogICAgICwgaWNlVHJhbnNwb3J0UG9saWN5KGljZVRyYW5z
cG9ydFBvbGljeSkKICAgICAsIGJ1bmRsZVBvbGljeShidW5kbGVQb2xpY3kpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50Q29uZmln
dXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRw
b2ludENvbmZpZ3VyYXRpb24uaAppbmRleCA1Yjc0YTI2YTNkNzUyNjg5NzRhMDlmODA1ZGY1OGFl
OTcwN2I5MDQ4Li4zMjIwY2ExYjdlYjIyODgzYjVkMGZmYmI2OTViNTYzMzcwM2Q2ZTUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50
Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDE1IEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNyArMzMsNyBAQAogCiAjaWYgRU5BQkxFKFdF
Ql9SVEMpCiAKLSNpbmNsdWRlICJQZWVyQ29ubmVjdGlvblN0YXRlcy5oIgorI2luY2x1ZGUgIlJU
Q0VudW1zLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDksMTQgKzUwLDExIEBAIHN0cnVjdCBN
ZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbiB7CiAgICAgICAgIEljZVNlcnZlckluZm8oVmVjdG9y
PFVSTD4mJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CiAgICAgfTsKIAotICAgIHVz
aW5nIEljZVRyYW5zcG9ydFBvbGljeSA9IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VUcmFuc3Bv
cnRQb2xpY3k7Ci0gICAgdXNpbmcgQnVuZGxlUG9saWN5ID0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6
OkJ1bmRsZVBvbGljeTsKLQotICAgIE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uKFZlY3RvcjxJ
Y2VTZXJ2ZXJJbmZvPiYmLCBJY2VUcmFuc3BvcnRQb2xpY3ksIEJ1bmRsZVBvbGljeSk7CisgICAg
TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb24oVmVjdG9yPEljZVNlcnZlckluZm8+JiYsIFJUQ0lj
ZVRyYW5zcG9ydFBvbGljeSwgUlRDQnVuZGxlUG9saWN5KTsKIAogICAgIFZlY3RvcjxJY2VTZXJ2
ZXJJbmZvPiBpY2VTZXJ2ZXJzOwotICAgIEljZVRyYW5zcG9ydFBvbGljeSBpY2VUcmFuc3BvcnRQ
b2xpY3k7Ci0gICAgQnVuZGxlUG9saWN5IGJ1bmRsZVBvbGljeTsKKyAgICBSVENJY2VUcmFuc3Bv
cnRQb2xpY3kgaWNlVHJhbnNwb3J0UG9saWN5OworICAgIFJUQ0J1bmRsZVBvbGljeSBidW5kbGVQ
b2xpY3k7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvblN0YXRlcy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25TdGF0ZXMuaApp
bmRleCA4YTcxMjQwNzAxODIwMDgxMThhOGJiNDZiMDg0OWFjZTdmYjljZjUyLi5hYWU1M2RjMGIw
MmJjNDUxOTE5ZjY1ZGViMWZmZTIzMjJiM2NjMjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvblN0YXRlcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uU3RhdGVzLmgKQEAg
LTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE2IEVyaWNzc29uIEFC
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzQsNTQgKzM1LDYzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotbmFtZXNwYWNlIFBlZXJD
b25uZWN0aW9uU3RhdGVzIHsKLQotZW51bSBjbGFzcyBTaWduYWxpbmdTdGF0ZSB7Ci0gICAgU3Rh
YmxlID0gMSwKLSAgICBIYXZlTG9jYWxPZmZlciA9IDIsCi0gICAgSGF2ZVJlbW90ZU9mZmVyID0g
MywKLSAgICBIYXZlTG9jYWxQckFuc3dlciA9IDQsCi0gICAgSGF2ZVJlbW90ZVByQW5zd2VyID0g
NSwKLSAgICBDbG9zZWQgPSA2CitlbnVtIGNsYXNzIFJUQ1NpZ25hbGluZ1N0YXRlIHsKKyAgICBT
dGFibGUsCisgICAgSGF2ZUxvY2FsT2ZmZXIsCisgICAgSGF2ZVJlbW90ZU9mZmVyLAorICAgIEhh
dmVMb2NhbFByYW5zd2VyLAorICAgIEhhdmVSZW1vdGVQcmFuc3dlciwKKyAgICBDbG9zZWQKIH07
CiAKLWVudW0gY2xhc3MgSWNlQ29ubmVjdGlvblN0YXRlIHsKLSAgICBOZXcgPSAxLAotICAgIENo
ZWNraW5nID0gMiwKLSAgICBDb25uZWN0ZWQgPSAzLAotICAgIENvbXBsZXRlZCA9IDQsCi0gICAg
RmFpbGVkID0gNSwKLSAgICBEaXNjb25uZWN0ZWQgPSA2LAotICAgIENsb3NlZCA9IDcKK2VudW0g
Y2xhc3MgUlRDSWNlQ29ubmVjdGlvblN0YXRlIHsKKyAgICBOZXcsCisgICAgQ2hlY2tpbmcsCisg
ICAgQ29ubmVjdGVkLAorICAgIENvbXBsZXRlZCwKKyAgICBGYWlsZWQsCisgICAgRGlzY29ubmVj
dGVkLAorICAgIENsb3NlZAogfTsKIAotZW51bSBjbGFzcyBJY2VHYXRoZXJpbmdTdGF0ZSB7Ci0g
ICAgTmV3ID0gMSwKLSAgICBHYXRoZXJpbmcgPSAyLAotICAgIENvbXBsZXRlID0gMworZW51bSBj
bGFzcyBSVENJY2VHYXRoZXJpbmdTdGF0ZSB7CisgICAgTmV3LAorICAgIEdhdGhlcmluZywKKyAg
ICBDb21wbGV0ZQogfTsKIAotZW51bSBjbGFzcyBJY2VUcmFuc3BvcnRTdGF0ZSB7Ci0gICAgTmV3
ID0gMSwKLSAgICBDaGVja2luZyA9IDIsCi0gICAgQ29ubmVjdGVkID0gMywKLSAgICBDb21wbGV0
ZWQgPSA0LAotICAgIEZhaWxlZCA9IDUsCi0gICAgRGlzY29ubmVjdGVkID0gNiwKLSAgICBDbG9z
ZWQgPSA3CitlbnVtIGNsYXNzIFJUQ0ljZVRyYW5zcG9ydFN0YXRlIHsKKyAgICBOZXcsCisgICAg
Q2hlY2tpbmcsCisgICAgQ29ubmVjdGVkLAorICAgIENvbXBsZXRlZCwKKyAgICBGYWlsZWQsCisg
ICAgRGlzY29ubmVjdGVkLAorICAgIENsb3NlZAogfTsKIAotZW51bSBjbGFzcyBJY2VUcmFuc3Bv
cnRQb2xpY3kgeworZW51bSBjbGFzcyBSVENJY2VUcmFuc3BvcnRQb2xpY3kgewogICAgIFJlbGF5
LAogICAgIEFsbAogfTsKIAotZW51bSBjbGFzcyBCdW5kbGVQb2xpY3kgeworZW51bSBjbGFzcyBS
VENCdW5kbGVQb2xpY3kgewogICAgIEJhbGFuY2VkLAogICAgIE1heENvbXBhdCwKICAgICBNYXhC
dW5kbGUKIH07CiAKKworLy8gRklYTUU6IFJlbW92ZSBvbmNlIG9sZGVyIGNvZGUgaXMgdXBncmFk
ZWQKK25hbWVzcGFjZSBQZWVyQ29ubmVjdGlvblN0YXRlcyB7CisKK3VzaW5nIFNpZ25hbGluZ1N0
YXRlID0gUlRDU2lnbmFsaW5nU3RhdGU7Cit1c2luZyBJY2VDb25uZWN0aW9uU3RhdGUgPSBSVENJ
Y2VDb25uZWN0aW9uU3RhdGU7Cit1c2luZyBJY2VHYXRoZXJpbmdTdGF0ZSA9IFJUQ0ljZUdhdGhl
cmluZ1N0YXRlOwordXNpbmcgSWNlVHJhbnNwb3J0U3RhdGUgPSBSVENJY2VUcmFuc3BvcnRTdGF0
ZTsKK3VzaW5nIEljZVRyYW5zcG9ydFBvbGljeSA9IFJUQ0ljZVRyYW5zcG9ydFBvbGljeTsKK3Vz
aW5nIEJ1bmRsZVBvbGljeSA9IFJUQ0J1bmRsZVBvbGljeTsKKwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tN
ZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlh
RW5kcG9pbnQuY3BwCmluZGV4IDI1M2I2ZTkzODU2ZTE5ZGM1MjkzM2NhN2ExYjQ2YjBhYmFlMzhi
MzYuLjI3YjJiNDI0OWMyOTc2NDMxZWYxYzNkN2Y0ODM2NTRjZDRlYWE2ZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuY3BwCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBFcmljc3NvbiBBQi4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3MywyNyAr
Mjc0LDI3IEBAIHZvaWQgTW9ja01lZGlhRW5kcG9pbnQ6OnN0ZXBJY2VUcmFuc3BvcnRTdGF0ZXMo
KQogCiAgICAgLy8gU2hvdWxkIGdvIHRvOgogICAgIC8vICdjaGVja2luZycKLSAgICBtX2ljZVRy
YW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9taWRzWzBdLCBNZWRp
YUVuZHBvaW50OjpJY2VUcmFuc3BvcnRTdGF0ZTo6Q2hlY2tpbmcpKTsKLSAgICBtX2ljZVRyYW5z
cG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9taWRzWzFdLCBNZWRpYUVu
ZHBvaW50OjpJY2VUcmFuc3BvcnRTdGF0ZTo6Q2hlY2tpbmcpKTsKLSAgICBtX2ljZVRyYW5zcG9y
dFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9taWRzWzJdLCBNZWRpYUVuZHBv
aW50OjpJY2VUcmFuc3BvcnRTdGF0ZTo6Q2hlY2tpbmcpKTsKKyAgICBtX2ljZVRyYW5zcG9ydFN0
YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9taWRzWzBdLCBSVENJY2VUcmFuc3Bv
cnRTdGF0ZTo6Q2hlY2tpbmcpKTsKKyAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBl
bmQoc3RkOjptYWtlX3BhaXIobV9taWRzWzFdLCBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6Q2hlY2tp
bmcpKTsKKyAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3Bh
aXIobV9taWRzWzJdLCBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6Q2hlY2tpbmcpKTsKIAogICAgIC8v
ICdjb25uZWN0ZWQnCi0gICAgbV9pY2VUcmFuc3BvcnRTdGF0ZUNoYW5nZXMuYXBwZW5kKHN0ZDo6
bWFrZV9wYWlyKG1fbWlkc1swXSwgTWVkaWFFbmRwb2ludDo6SWNlVHJhbnNwb3J0U3RhdGU6OkNv
bm5lY3RlZCkpOwotICAgIG1faWNlVHJhbnNwb3J0U3RhdGVDaGFuZ2VzLmFwcGVuZChzdGQ6Om1h
a2VfcGFpcihtX21pZHNbMV0sIE1lZGlhRW5kcG9pbnQ6OkljZVRyYW5zcG9ydFN0YXRlOjpDb21w
bGV0ZWQpKTsKLSAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtl
X3BhaXIobV9taWRzWzJdLCBNZWRpYUVuZHBvaW50OjpJY2VUcmFuc3BvcnRTdGF0ZTo6Q2xvc2Vk
KSk7CisgICAgbV9pY2VUcmFuc3BvcnRTdGF0ZUNoYW5nZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWly
KG1fbWlkc1swXSwgUlRDSWNlVHJhbnNwb3J0U3RhdGU6OkNvbm5lY3RlZCkpOworICAgIG1faWNl
VHJhbnNwb3J0U3RhdGVDaGFuZ2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihtX21pZHNbMV0sIFJU
Q0ljZVRyYW5zcG9ydFN0YXRlOjpDb21wbGV0ZWQpKTsKKyAgICBtX2ljZVRyYW5zcG9ydFN0YXRl
Q2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9taWRzWzJdLCBSVENJY2VUcmFuc3BvcnRT
dGF0ZTo6Q2xvc2VkKSk7CiAKICAgICAvLyAnY29tcGxldGVkJwotICAgIG1faWNlVHJhbnNwb3J0
U3RhdGVDaGFuZ2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihtX21pZHNbMF0sIE1lZGlhRW5kcG9p
bnQ6OkljZVRyYW5zcG9ydFN0YXRlOjpDb21wbGV0ZWQpKTsKKyAgICBtX2ljZVRyYW5zcG9ydFN0
YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9taWRzWzBdLCBSVENJY2VUcmFuc3Bv
cnRTdGF0ZTo6Q29tcGxldGVkKSk7CiAKICAgICAvLyAnZmFpbGVkJwotICAgIG1faWNlVHJhbnNw
b3J0U3RhdGVDaGFuZ2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihtX21pZHNbMF0sIE1lZGlhRW5k
cG9pbnQ6OkljZVRyYW5zcG9ydFN0YXRlOjpGYWlsZWQpKTsKKyAgICBtX2ljZVRyYW5zcG9ydFN0
YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9taWRzWzBdLCBSVENJY2VUcmFuc3Bv
cnRTdGF0ZTo6RmFpbGVkKSk7CiAKICAgICAvLyAnZGlzY29ubmVjdGVkJwotICAgIG1faWNlVHJh
bnNwb3J0U3RhdGVDaGFuZ2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihtX21pZHNbMV0sIE1lZGlh
RW5kcG9pbnQ6OkljZVRyYW5zcG9ydFN0YXRlOjpEaXNjb25uZWN0ZWQpKTsKLSAgICBtX2ljZVRy
YW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9taWRzWzBdLCBNZWRp
YUVuZHBvaW50OjpJY2VUcmFuc3BvcnRTdGF0ZTo6Q2xvc2VkKSk7CisgICAgbV9pY2VUcmFuc3Bv
cnRTdGF0ZUNoYW5nZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKG1fbWlkc1sxXSwgUlRDSWNlVHJh
bnNwb3J0U3RhdGU6OkRpc2Nvbm5lY3RlZCkpOworICAgIG1faWNlVHJhbnNwb3J0U3RhdGVDaGFu
Z2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihtX21pZHNbMF0sIFJUQ0ljZVRyYW5zcG9ydFN0YXRl
OjpDbG9zZWQpKTsKIAogICAgIC8vICduZXcnCi0gICAgbV9pY2VUcmFuc3BvcnRTdGF0ZUNoYW5n
ZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKG1fbWlkc1sxXSwgTWVkaWFFbmRwb2ludDo6SWNlVHJh
bnNwb3J0U3RhdGU6OkNsb3NlZCkpOworICAgIG1faWNlVHJhbnNwb3J0U3RhdGVDaGFuZ2VzLmFw
cGVuZChzdGQ6Om1ha2VfcGFpcihtX21pZHNbMV0sIFJUQ0ljZVRyYW5zcG9ydFN0YXRlOjpDbG9z
ZWQpKTsKIAogICAgIC8vIFJldmVyc2Ugb3JkZXIgdG8gdXNlIHRha2VMYXN0KCkgd2hpbGUga2Vl
cGluZyB0aGUgYWJvdmUgb3JkZXIKICAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5yZXZl
cnNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRp
YUVuZHBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBv
aW50LmgKaW5kZXggNzM1OWM4ZDQ4MzUyZjg3MDVjZjM2Mzc0Y2I2OGY1ZmZhZDUxYjU4Zi4uMTEz
NzMwNTUxNDJmYTU5YjZkNmU2MWIyYTJhYmE5MjQ4YWYwOWJjOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuaApAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw2ICszNCw3IEBACiAjaWYg
RU5BQkxFKFdFQl9SVEMpCiAKICNpbmNsdWRlICJNZWRpYUVuZHBvaW50LmgiCisjaW5jbHVkZSAi
UlRDRW51bXMuaCIKICNpbmNsdWRlICJUaW1lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC04NSw3ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPEljZUNhbmRpZGF0ZT4gbV9mYWtl
SWNlQ2FuZGlkYXRlczsKICAgICBUaW1lciBtX2ljZUNhbmRpZGF0ZVRpbWVyOwogCi0gICAgVmVj
dG9yPHN0ZDo6cGFpcjxTdHJpbmcsIE1lZGlhRW5kcG9pbnQ6OkljZVRyYW5zcG9ydFN0YXRlPj4g
bV9pY2VUcmFuc3BvcnRTdGF0ZUNoYW5nZXM7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcs
IFJUQ0ljZVRyYW5zcG9ydFN0YXRlPj4gbV9pY2VUcmFuc3BvcnRTdGF0ZUNoYW5nZXM7CiAgICAg
VGltZXIgbV9pY2VUcmFuc3BvcnRUaW1lcjsKIAogICAgIFZlY3RvcjxTdHJpbmc+IG1fbWlkc09m
U291cmNlc1RvVW5tdXRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304538</attachid>
            <date>2017-03-15 13:36:07 -0700</date>
            <delta_ts>2017-03-15 15:19:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169664-20170315133607.patch</filename>
            <type>text/plain</type>
            <size>93518</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzOTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzU2N2QwYzFkNGI4Mjkx
NTY4ZTY5ZTJkZWJiOWI3Y2I5NmRiNjkyMC4uNjE2MDk5YTM5NjJiNWUzYTcwY2VhZDFhMTQ2OTYz
NzM0YzFlZjZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTAzLTE1ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBGbGF0dGVuIFJUQyBlbnVtIG5hbWlu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5NjY0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGNv
bnNpc3RlbnQgbmFtZXMgb2YgUlRDIGVudW1zIHRocm91Z2hvdXQgV2ViQ29yZS4gVGhpcyBtZWFu
cyBzdXJmYWNpbmcKKyAgICAgICAgSUNFIGVudW1zIG91dCBvZiBQZWVyQ29ubmVjdGlvblN0YXRl
LiBLZWVwIHRoZSBvbGQgbmFtZXMgYXJvdW5kIGZvciBvdGhlcgorICAgICAgICBwb3J0cy4KKwor
ICAgICAgICBBZGQgUlRDSWNlQ29ubmVjdGlvblN0YXRlLCBSVENJY2VHYXRoZXJpbmdTdGF0ZSwg
YW5kIFJUQ1NpZ25hbGluZ1N0YXRlIGVudW1zLgorICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENJY2VDb25uZWN0aW9uU3RhdGUuaDogQWRkZWQuIFRoZSBlbnVtIGlzIGRlZmluZWQg
aW4KKyAgICAgICAgUGVlckNvbm5lY3Rpb25TdGF0ZXMuaCwgc28ganVzdCBpbmNsdWRlIHRoYXQg
ZmlsZS4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNvbm5lY3Rpb25TdGF0
ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlR2F0aGVy
aW5nU3RhdGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VH
YXRoZXJpbmdTdGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU2lnbmFsaW5nU3RhdGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTaWduYWxpbmdTdGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Bl
ZXJDb25uZWN0aW9uU3RhdGVzLmg6IE1vdmUgdGhlIGV4aXN0aW5nIGVudW1zIGludG8KKyAgICAg
ICAgV2ViQ29yZSwgYnV0IGtlZXAgYWxpYXNlcyB0byB0aGUgb2xkIG5hbWVzIHdpdGhpbiB0aGUg
UGVlckNvbm5lY3Rpb25TdGF0ZXMKKyAgICAgICAgbmFtZXNwYWNlLgorCisgICAgICAgIFJlZmFj
dG9yIHRvIHVzZSB0aGUgbmV3IGVudW0gbmFtZXMuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uY3BwOiBSZWZhY3Rvci4KKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5pZGw6IEFkZCBGSVhNRXMgZm9y
IGJyaW5naW5nIHRoaXMgdXAKKyAgICAgICAgdG8gc3BlYy4KKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0ljZVRyYW5zcG9ydC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOiBSZWZhY3RvciB0aGUgdGhyZWUgZnVuY3Rpb25zCisg
ICAgICAgIGJlbG93IHRvIHVzaW5nIHRoZSBlbnVtIGluc3RlYWQgb2YgcmV0dXJuaW5nIHN0cmlu
Z3MuIFRoaXMgYWxsb3dzIHJlbW92ZSBvZgorICAgICAgICB0aGUgaW50ZXJuYWwqIHZlcnNpb25z
IG9mIHRoZXNlIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9u
OjpzaWduYWxpbmdTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29u
bmVjdGlvbjo6aWNlR2F0aGVyaW5nU3RhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UlRDUGVlckNvbm5lY3Rpb246OmljZUNvbm5lY3Rpb25TdGF0ZSk6IERlbGV0ZWQuCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oOiBSZXBsYWNlIGludGVy
bmFsU2lnbmFsaW5nU3RhdGUsCisgICAgICAgIGludGVybmFsSWNlR2F0aGVyaW5nU3RhdGUsIGFu
ZCBpbnRlcm5hbEljZUNvbm5lY3Rpb25TdGF0ZS4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbi5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRp
b24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50Lmg6CisKIDIwMTctMDMtMTQg
IEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFuIHVwIFJUQ1BlZXJD
b25uZWN0aW9uIElETApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA2NWJlZmJlMmFjZWQxM2Y3NTQ2
OGIwNDJlNDZhNDlkYWIxNWIxNTllLi41MWQ3MWEzM2U5YmUyMWJjOGI5ZmU4NjE3ZDY4ZDZhYmM4
ODY3ZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjQxLDYgKzI0MSw4IEBAIHNldChXZWJD
b3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hh
bm5lbEV2ZW50LmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmlk
bAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaWRsCisgICAg
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDb25uZWN0aW9uU3RhdGUuaWRsCisgICAgTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENJY2VHYXRoZXJpbmdTdGF0ZS5pZGwKICAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0ljZVNlcnZlci5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ09mZmVy
QW5zd2VyT3B0aW9ucy5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ09mZmVyT3B0aW9u
cy5pZGwKQEAgLTI1MCw2ICsyNTIsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwog
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNjZWl2ZXIuaWRsCiAgICAgTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2NlaXZlckRpcmVjdGlvbi5pZGwKICAgICBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwKKyAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1NpZ25hbGluZ1N0YXRlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXBvcnQuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENUcmFja0V2ZW50Lmlk
bAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBlNmUxMDU5NTE5YjliMjAzZjE2
YmM4ZGRhNzRkMzE4NjRjMjZlNGZkLi40YWI2NDBkMDNlOWQ5NjgyMTA3OTc2YzFkZGMyYWUzOGFm
YzIwNzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE4NSw2ICsxODUsOCBA
QCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0RhdGFDaGFubmVsRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZUV2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5pZGwgXAorICAgICQoV2ViQ29yZSkv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VHYXRoZXJpbmdTdGF0ZS5pZGwgXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VTZXJ2ZXIuaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ09mZmVyT3B0aW9ucy5pZGwgXApAQCAt
MTk0LDYgKzE5Niw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNjZWl2ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNjZWl2ZXJEaXJlY3Rpb24uaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCBc
CisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1NpZ25hbGluZ1N0YXRlLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0Lmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1RyYWNrRXZlbnQuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmlj
YXRpb25zLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggNmFl
OGExN2Q0Y2ZmOWFmN2JjODE4NzYyM2JkODYyZjJlNWZkMTE5Yy4uZmJhMzhjYmRlMWYxZDI4MDMw
YTI4ZjkyMjJhYWIxMGU0NjhiNzNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9u
LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgRXJpY3Nzb24g
QUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yOSw5ICszMCw5IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1l
ZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oIgogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCi0jaW5j
bHVkZSAiTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmgiCiAKICNpbmNsdWRlICJFdmVudE5h
bWVzLmgiCiAjaW5jbHVkZSAiSlNSVENTZXNzaW9uRGVzY3JpcHRpb24uaCIKQEAgLTU3LDcgKzU4
LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIFBlZXJDb25uZWN0
aW9uOwotdXNpbmcgbmFtZXNwYWNlIFBlZXJDb25uZWN0aW9uU3RhdGVzOwogCiB1c2luZyBNZWRp
YURlc2NyaXB0aW9uVmVjdG9yID0gVmVjdG9yPFBlZXJNZWRpYURlc2NyaXB0aW9uPjsKIHVzaW5n
IFJ0cFRyYW5zY2VpdmVyVmVjdG9yID0gVmVjdG9yPFJlZlB0cjxSVENSdHBUcmFuc2NlaXZlcj4+
OwpAQCAtMzMwLDcgKzMzMCw3IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpk
b1NldExvY2FsRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uJiBkCiAKIHZvaWQgTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpzZXRMb2NhbERlc2NyaXB0aW9uVGFzayhSZWZQdHI8
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiYmIGRlc2NyaXB0aW9uKQogewotICAgIGlmIChtX3BlZXJD
b25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9PSBTaWduYWxpbmdTdGF0ZTo6Q2xv
c2VkKQorICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLnNpZ25hbGluZ1N0YXRlKCkgPT0gUlRDU2ln
bmFsaW5nU3RhdGU6OkNsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byByZXN1bHQg
PSBNZWRpYUVuZHBvaW50U2Vzc2lvbkRlc2NyaXB0aW9uOjpjcmVhdGUoV1RGTW92ZShkZXNjcmlw
dGlvbiksICptX3NkcFByb2Nlc3Nvcik7CkBAIC0zNTEsMTEgKzM1MSwxMSBAQCB2b2lkIE1lZGlh
RW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6c2V0TG9jYWxEZXNjcmlwdGlvblRhc2soUmVmUHRyPFJU
Q1Nlc3Npb25EZXNjcgogICAgICAgICBNZWRpYUVuZHBvaW50OjpVcGRhdGVSZXN1bHQgcmVzdWx0
ID0gbV9tZWRpYUVuZHBvaW50LT51cGRhdGVSZWNlaXZlQ29uZmlndXJhdGlvbihuZXdEZXNjcmlw
dGlvbi0+Y29uZmlndXJhdGlvbigpLCBpc0luaXRpYXRvcik7CiAKICAgICAgICAgaWYgKHJlc3Vs
dCA9PSBNZWRpYUVuZHBvaW50OjpVcGRhdGVSZXN1bHQ6OlN1Y2Nlc3NXaXRoSWNlUmVzdGFydCkg
ewotICAgICAgICAgICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxJY2VHYXRoZXJpbmdT
dGF0ZSgpICE9IEljZUdhdGhlcmluZ1N0YXRlOjpHYXRoZXJpbmcpCi0gICAgICAgICAgICAgICAg
bV9wZWVyQ29ubmVjdGlvbi51cGRhdGVJY2VHYXRoZXJpbmdTdGF0ZShJY2VHYXRoZXJpbmdTdGF0
ZTo6R2F0aGVyaW5nKTsKKyAgICAgICAgICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmljZUdhdGhl
cmluZ1N0YXRlKCkgIT0gUlRDSWNlR2F0aGVyaW5nU3RhdGU6OkdhdGhlcmluZykKKyAgICAgICAg
ICAgICAgICBtX3BlZXJDb25uZWN0aW9uLnVwZGF0ZUljZUdhdGhlcmluZ1N0YXRlKFJUQ0ljZUdh
dGhlcmluZ1N0YXRlOjpHYXRoZXJpbmcpOwogCi0gICAgICAgICAgICBpZiAobV9wZWVyQ29ubmVj
dGlvbi5pbnRlcm5hbEljZUNvbm5lY3Rpb25TdGF0ZSgpICE9IEljZUNvbm5lY3Rpb25TdGF0ZTo6
Q29tcGxldGVkKQotICAgICAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb24udXBkYXRlSWNlQ29u
bmVjdGlvblN0YXRlKEljZUNvbm5lY3Rpb25TdGF0ZTo6Q29ubmVjdGVkKTsKKyAgICAgICAgICAg
IGlmIChtX3BlZXJDb25uZWN0aW9uLmljZUNvbm5lY3Rpb25TdGF0ZSgpICE9IFJUQ0ljZUNvbm5l
Y3Rpb25TdGF0ZTo6Q29tcGxldGVkKQorICAgICAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb24u
dXBkYXRlSWNlQ29ubmVjdGlvblN0YXRlKFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZTo6Q29ubmVjdGVk
KTsKIAogICAgICAgICAgICAgTE9HX0VSUk9SKCJJQ0UgcmVzdGFydCBpcyBub3QgaW1wbGVtZW50
ZWQiKTsKICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC0zODgsMTMgKzM4OCwxMyBA
QCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6c2V0TG9jYWxEZXNjcmlwdGlvblRh
c2soUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcgogICAgIGlmICghaGFzVW5hc3NvY2lhdGVkVHJhbnNj
ZWl2ZXJzKHRyYW5zY2VpdmVycykpCiAgICAgICAgIGNsZWFyTmVnb3RpYXRpb25OZWVkZWRTdGF0
ZSgpOwogCi0gICAgU2lnbmFsaW5nU3RhdGUgbmV3U2lnbmFsaW5nU3RhdGU7CisgICAgUlRDU2ln
bmFsaW5nU3RhdGUgbmV3U2lnbmFsaW5nU3RhdGU7CiAKICAgICAvLyBVcGRhdGUgc3RhdGUgYW5k
IGxvY2FsIGRlc2NyaXB0aW9ucyBhY2NvcmRpbmcgdG8gc2V0TG9jYWwvUmVtb3RlRGVzY3JpcHRp
b24gcHJvY2Vzc2luZyBtb2RlbAogICAgIHN3aXRjaCAobmV3RGVzY3JpcHRpb24tPnR5cGUoKSkg
ewogICAgIGNhc2UgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpPZmZlcjoKICAgICAg
ICAgbV9wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiA9IFdURk1vdmUobmV3RGVzY3JpcHRpb24pOwot
ICAgICAgICBuZXdTaWduYWxpbmdTdGF0ZSA9IFNpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxPZmZl
cjsKKyAgICAgICAgbmV3U2lnbmFsaW5nU3RhdGUgPSBSVENTaWduYWxpbmdTdGF0ZTo6SGF2ZUxv
Y2FsT2ZmZXI7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBSVENTZXNzaW9uRGVzY3JpcHRp
b246OlNkcFR5cGU6OkFuc3dlcjoKQEAgLTQwMiwyNCArNDAyLDI0IEBAIHZvaWQgTWVkaWFFbmRw
b2ludFBlZXJDb25uZWN0aW9uOjpzZXRMb2NhbERlc2NyaXB0aW9uVGFzayhSZWZQdHI8UlRDU2Vz
c2lvbkRlc2NyCiAgICAgICAgIG1fY3VycmVudFJlbW90ZURlc2NyaXB0aW9uID0gbV9wZW5kaW5n
UmVtb3RlRGVzY3JpcHRpb247CiAgICAgICAgIG1fcGVuZGluZ0xvY2FsRGVzY3JpcHRpb24gPSBu
dWxscHRyOwogICAgICAgICBtX3BlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0g
ICAgICAgIG5ld1NpZ25hbGluZ1N0YXRlID0gU2lnbmFsaW5nU3RhdGU6OlN0YWJsZTsKKyAgICAg
ICAgbmV3U2lnbmFsaW5nU3RhdGUgPSBSVENTaWduYWxpbmdTdGF0ZTo6U3RhYmxlOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpSb2xs
YmFjazoKICAgICAgICAgbV9wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAg
ICAgIG5ld1NpZ25hbGluZ1N0YXRlID0gU2lnbmFsaW5nU3RhdGU6OlN0YWJsZTsKKyAgICAgICAg
bmV3U2lnbmFsaW5nU3RhdGUgPSBSVENTaWduYWxpbmdTdGF0ZTo6U3RhYmxlOwogICAgICAgICBi
cmVhazsKIAogICAgIGNhc2UgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpQcmFuc3dl
cjoKICAgICAgICAgbV9wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiA9IFdURk1vdmUobmV3RGVzY3Jp
cHRpb24pOwotICAgICAgICBuZXdTaWduYWxpbmdTdGF0ZSA9IFNpZ25hbGluZ1N0YXRlOjpIYXZl
TG9jYWxQckFuc3dlcjsKKyAgICAgICAgbmV3U2lnbmFsaW5nU3RhdGUgPSBSVENTaWduYWxpbmdT
dGF0ZTo6SGF2ZUxvY2FsUHJhbnN3ZXI7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIHVw
ZGF0ZVNpZ25hbGluZ1N0YXRlKG5ld1NpZ25hbGluZ1N0YXRlKTsKIAotICAgIGlmIChtX3BlZXJD
b25uZWN0aW9uLmludGVybmFsSWNlR2F0aGVyaW5nU3RhdGUoKSA9PSBJY2VHYXRoZXJpbmdTdGF0
ZTo6TmV3ICYmIG1lZGlhRGVzY3JpcHRpb25zLnNpemUoKSkKLSAgICAgICAgbV9wZWVyQ29ubmVj
dGlvbi51cGRhdGVJY2VHYXRoZXJpbmdTdGF0ZShJY2VHYXRoZXJpbmdTdGF0ZTo6R2F0aGVyaW5n
KTsKKyAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5pY2VHYXRoZXJpbmdTdGF0ZSgpID09IFJUQ0lj
ZUdhdGhlcmluZ1N0YXRlOjpOZXcgJiYgbWVkaWFEZXNjcmlwdGlvbnMuc2l6ZSgpKQorICAgICAg
ICBtX3BlZXJDb25uZWN0aW9uLnVwZGF0ZUljZUdhdGhlcmluZ1N0YXRlKFJUQ0ljZUdhdGhlcmlu
Z1N0YXRlOjpHYXRoZXJpbmcpOwogCiAgICAgbWFya0FzTmVlZGluZ05lZ290aWF0aW9uKCk7CiAg
ICAgc2V0TG9jYWxEZXNjcmlwdGlvblN1Y2NlZWRlZCgpOwpAQCAtNTUyLDEzICs1NTIsMTMgQEAg
dm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnNldFJlbW90ZURlc2NyaXB0aW9uVGFz
ayhSZWZQdHI8UlRDU2Vzc2lvbkRlc2MKICAgICBmb3IgKGF1dG8mIGV2ZW50IDogbGVnYWN5TWVk
aWFTdHJlYW1FdmVudHMpCiAgICAgICAgIG1fcGVlckNvbm5lY3Rpb24uZmlyZUV2ZW50KCpldmVu
dCk7CiAKLSAgICBTaWduYWxpbmdTdGF0ZSBuZXdTaWduYWxpbmdTdGF0ZTsKKyAgICBSVENTaWdu
YWxpbmdTdGF0ZSBuZXdTaWduYWxpbmdTdGF0ZTsKIAogICAgIC8vIFVwZGF0ZSBzdGF0ZSBhbmQg
bG9jYWwgZGVzY3JpcHRpb25zIGFjY29yZGluZyB0byBzZXRMb2NhbC9SZW1vdGVEZXNjcmlwdGlv
biBwcm9jZXNzaW5nIG1vZGVsCiAgICAgc3dpdGNoIChuZXdEZXNjcmlwdGlvbi0+dHlwZSgpKSB7
CiAgICAgY2FzZSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6Ok9mZmVyOgogICAgICAg
ICBtX3BlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiA9IFdURk1vdmUobmV3RGVzY3JpcHRpb24pOwot
ICAgICAgICBuZXdTaWduYWxpbmdTdGF0ZSA9IFNpZ25hbGluZ1N0YXRlOjpIYXZlUmVtb3RlT2Zm
ZXI7CisgICAgICAgIG5ld1NpZ25hbGluZ1N0YXRlID0gUlRDU2lnbmFsaW5nU3RhdGU6OkhhdmVS
ZW1vdGVPZmZlcjsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbjo6U2RwVHlwZTo6QW5zd2VyOgpAQCAtNTY2LDE3ICs1NjYsMTcgQEAgdm9pZCBNZWRpYUVu
ZHBvaW50UGVlckNvbm5lY3Rpb246OnNldFJlbW90ZURlc2NyaXB0aW9uVGFzayhSZWZQdHI8UlRD
U2Vzc2lvbkRlc2MKICAgICAgICAgbV9jdXJyZW50TG9jYWxEZXNjcmlwdGlvbiA9IG1fcGVuZGlu
Z0xvY2FsRGVzY3JpcHRpb247CiAgICAgICAgIG1fcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uID0g
bnVsbHB0cjsKICAgICAgICAgbV9wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0g
ICAgICAgIG5ld1NpZ25hbGluZ1N0YXRlID0gU2lnbmFsaW5nU3RhdGU6OlN0YWJsZTsKKyAgICAg
ICAgbmV3U2lnbmFsaW5nU3RhdGUgPSBSVENTaWduYWxpbmdTdGF0ZTo6U3RhYmxlOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpSb2xs
YmFjazoKICAgICAgICAgbV9wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24gPSBudWxscHRyOwotICAg
ICAgICBuZXdTaWduYWxpbmdTdGF0ZSA9IFNpZ25hbGluZ1N0YXRlOjpTdGFibGU7CisgICAgICAg
IG5ld1NpZ25hbGluZ1N0YXRlID0gUlRDU2lnbmFsaW5nU3RhdGU6OlN0YWJsZTsKICAgICAgICAg
YnJlYWs7CiAKICAgICBjYXNlIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2RwVHlwZTo6UHJhbnN3
ZXI6CiAgICAgICAgIG1fcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uID0gV1RGTW92ZShuZXdEZXNj
cmlwdGlvbik7Ci0gICAgICAgIG5ld1NpZ25hbGluZ1N0YXRlID0gU2lnbmFsaW5nU3RhdGU6Okhh
dmVSZW1vdGVQckFuc3dlcjsKKyAgICAgICAgbmV3U2lnbmFsaW5nU3RhdGUgPSBSVENTaWduYWxp
bmdTdGF0ZTo6SGF2ZVJlbW90ZVByYW5zd2VyOwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAg
LTcxNiw3ICs3MTYsNyBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6cmVwbGFj
ZVRyYWNrKFJUQ1J0cFNlbmRlciYgc2VuZGVyLCBSZWY8TWVkaWFTdAogCiB2b2lkIE1lZGlhRW5k
cG9pbnRQZWVyQ29ubmVjdGlvbjo6cmVwbGFjZVRyYWNrVGFzayhSVENSdHBTZW5kZXImIHNlbmRl
ciwgY29uc3QgU3RyaW5nJiBtaWQsIFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmIHdpdGhUcmFjaywg
RE9NUHJvbWlzZTx2b2lkPiYgcHJvbWlzZSkKIHsKLSAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5p
bnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKKyAgICBp
ZiAobV9wZWVyQ29ubmVjdGlvbi5zaWduYWxpbmdTdGF0ZSgpID09IFJUQ1NpZ25hbGluZ1N0YXRl
OjpDbG9zZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fbWVkaWFFbmRwb2ludC0+cmVwbGFj
ZVNlbmRTb3VyY2Uod2l0aFRyYWNrLT5zb3VyY2UoKSwgbWlkKTsKQEAgLTc5NSwxOCArNzk1LDE4
IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpkb25lR2F0aGVyaW5nQ2FuZGlk
YXRlcyhjb25zdCBTdHJpbmcmIG1pZCkKICAgICBSVENSdHBUcmFuc2NlaXZlciogbm90aWZ5aW5n
VHJhbnNjZWl2ZXIgPSBtYXRjaFRyYW5zY2VpdmVyQnlNaWQodHJhbnNjZWl2ZXJzLCBtaWQpOwog
ICAgIEFTU0VSVChub3RpZnlpbmdUcmFuc2NlaXZlcik7CiAKLSAgICBub3RpZnlpbmdUcmFuc2Nl
aXZlci0+aWNlVHJhbnNwb3J0KCkuc2V0R2F0aGVyaW5nU3RhdGUoUlRDSWNlVHJhbnNwb3J0OjpH
YXRoZXJpbmdTdGF0ZTo6Q29tcGxldGUpOworICAgIG5vdGlmeWluZ1RyYW5zY2VpdmVyLT5pY2VU
cmFuc3BvcnQoKS5zZXRHYXRoZXJpbmdTdGF0ZShSVENJY2VHYXRoZXJpbmdTdGF0ZTo6Q29tcGxl
dGUpOwogCiAgICAgLy8gRG9uJ3Qgbm90aWZ5IHRoZSBzY3JpcHQgaWYgdGhlcmUgYXJlIHRyYW5z
Y2VpdmVycyBzdGlsbCBnYXRoZXJpbmcuCiAgICAgUlRDUnRwVHJhbnNjZWl2ZXIqIHN0aWxsR2F0
aGVyaW5nVHJhbnNjZWl2ZXIgPSBtYXRjaFRyYW5zY2VpdmVyKHRyYW5zY2VpdmVycywgW10gKFJU
Q1J0cFRyYW5zY2VpdmVyJiBjdXJyZW50KSB7CiAgICAgICAgIHJldHVybiAhY3VycmVudC5zdG9w
cGVkKCkgJiYgIWN1cnJlbnQubWlkKCkuaXNOdWxsKCkKLSAgICAgICAgICAgICYmIGN1cnJlbnQu
aWNlVHJhbnNwb3J0KCkuZ2F0aGVyaW5nU3RhdGUoKSAhPSBSVENJY2VUcmFuc3BvcnQ6OkdhdGhl
cmluZ1N0YXRlOjpDb21wbGV0ZTsKKyAgICAgICAgICAgICYmIGN1cnJlbnQuaWNlVHJhbnNwb3J0
KCkuZ2F0aGVyaW5nU3RhdGUoKSAhPSBSVENJY2VHYXRoZXJpbmdTdGF0ZTo6Q29tcGxldGU7CiAg
ICAgfSk7CiAgICAgaWYgKCFzdGlsbEdhdGhlcmluZ1RyYW5zY2VpdmVyKQogICAgICAgICBQZWVy
Q29ubmVjdGlvbkJhY2tlbmQ6OmRvbmVHYXRoZXJpbmdDYW5kaWRhdGVzKCk7CiB9CiAKLXN0YXRp
YyBSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRlIGRlcml2ZUFnZ3JlZ2F0ZWRJY2VDb25u
ZWN0aW9uU3RhdGUoY29uc3QgVmVjdG9yPFJUQ0ljZVRyYW5zcG9ydDo6VHJhbnNwb3J0U3RhdGU+
JiBzdGF0ZXMpCitzdGF0aWMgUlRDSWNlVHJhbnNwb3J0U3RhdGUgZGVyaXZlQWdncmVnYXRlZElj
ZUNvbm5lY3Rpb25TdGF0ZShjb25zdCBWZWN0b3I8UlRDSWNlVHJhbnNwb3J0U3RhdGU+JiBzdGF0
ZXMpCiB7CiAgICAgdW5zaWduZWQgbmV3Q291bnQgPSAwOwogICAgIHVuc2lnbmVkIGNoZWNraW5n
Q291bnQgPSAwOwpAQCAtODE4LDU2ICs4MTgsNzAgQEAgc3RhdGljIFJUQ0ljZVRyYW5zcG9ydDo6
VHJhbnNwb3J0U3RhdGUgZGVyaXZlQWdncmVnYXRlZEljZUNvbm5lY3Rpb25TdGF0ZShjb25zdAog
CiAgICAgZm9yIChhdXRvJiBzdGF0ZSA6IHN0YXRlcykgewogICAgICAgICBzd2l0Y2ggKHN0YXRl
KSB7Ci0gICAgICAgIGNhc2UgUlRDSWNlVHJhbnNwb3J0OjpUcmFuc3BvcnRTdGF0ZTo6TmV3OiAr
K25ld0NvdW50OyBicmVhazsKLSAgICAgICAgY2FzZSBSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9y
dFN0YXRlOjpDaGVja2luZzogKytjaGVja2luZ0NvdW50OyBicmVhazsKLSAgICAgICAgY2FzZSBS
VENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRlOjpDb25uZWN0ZWQ6ICsrY29ubmVjdGVkQ291
bnQ7IGJyZWFrOwotICAgICAgICBjYXNlIFJUQ0ljZVRyYW5zcG9ydDo6VHJhbnNwb3J0U3RhdGU6
OkNvbXBsZXRlZDogKytjb21wbGV0ZWRDb3VudDsgYnJlYWs7Ci0gICAgICAgIGNhc2UgUlRDSWNl
VHJhbnNwb3J0OjpUcmFuc3BvcnRTdGF0ZTo6RmFpbGVkOiArK2ZhaWxlZENvdW50OyBicmVhazsK
LSAgICAgICAgY2FzZSBSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRlOjpEaXNjb25uZWN0
ZWQ6ICsrZGlzY29ubmVjdGVkQ291bnQ7IGJyZWFrOwotICAgICAgICBjYXNlIFJUQ0ljZVRyYW5z
cG9ydDo6VHJhbnNwb3J0U3RhdGU6OkNsb3NlZDogKytjbG9zZWRDb3VudDsgYnJlYWs7CisgICAg
ICAgIGNhc2UgUlRDSWNlVHJhbnNwb3J0U3RhdGU6Ok5ldzoKKyAgICAgICAgICAgICsrbmV3Q291
bnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSVENJY2VUcmFuc3BvcnRTdGF0
ZTo6Q2hlY2tpbmc6CisgICAgICAgICAgICArK2NoZWNraW5nQ291bnQ7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6Q29ubmVjdGVkOgorICAg
ICAgICAgICAgKytjb25uZWN0ZWRDb3VudDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIFJUQ0ljZVRyYW5zcG9ydFN0YXRlOjpDb21wbGV0ZWQ6CisgICAgICAgICAgICArK2NvbXBs
ZXRlZENvdW50OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUlRDSWNlVHJhbnNw
b3J0U3RhdGU6OkZhaWxlZDoKKyAgICAgICAgICAgICsrZmFpbGVkQ291bnQ7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6RGlzY29ubmVjdGVk
OgorICAgICAgICAgICAgKytkaXNjb25uZWN0ZWRDb3VudDsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIFJUQ0ljZVRyYW5zcG9ydFN0YXRlOjpDbG9zZWQ6CisgICAgICAgICAgICAr
K2Nsb3NlZENvdW50OworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CiAKICAg
ICAvLyBUaGUgYWdncmVnYXRlZCBSVENJY2VDb25uZWN0aW9uU3RhdGUgaXMgZGVyaXZlZCBmcm9t
IHRoZSBSVENJY2VUcmFuc3BvcnRTdGF0ZSBvZiBhbGwgUlRDSWNlVHJhbnNwb3J0cy4KICAgICBp
ZiAoKG5ld0NvdW50ID4gMCAmJiAhY2hlY2tpbmdDb3VudCAmJiAhZmFpbGVkQ291bnQgJiYgIWRp
c2Nvbm5lY3RlZENvdW50KSB8fCAoY2xvc2VkQ291bnQgPT0gc3RhdGVzLnNpemUoKSkpCi0gICAg
ICAgIHJldHVybiBSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRlOjpOZXc7CisgICAgICAg
IHJldHVybiBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6TmV3OwogCiAgICAgaWYgKGNoZWNraW5nQ291
bnQgPiAwICYmICFmYWlsZWRDb3VudCAmJiAhZGlzY29ubmVjdGVkQ291bnQpCi0gICAgICAgIHJl
dHVybiBSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRlOjpDaGVja2luZzsKKyAgICAgICAg
cmV0dXJuIFJUQ0ljZVRyYW5zcG9ydFN0YXRlOjpDaGVja2luZzsKIAogICAgIGlmICgoY29ubmVj
dGVkQ291bnQgKyBjb21wbGV0ZWRDb3VudCArIGNsb3NlZENvdW50KSA9PSBzdGF0ZXMuc2l6ZSgp
ICYmIGNvbm5lY3RlZENvdW50ID4gMCkKLSAgICAgICAgcmV0dXJuIFJUQ0ljZVRyYW5zcG9ydDo6
VHJhbnNwb3J0U3RhdGU6OkNvbm5lY3RlZDsKKyAgICAgICAgcmV0dXJuIFJUQ0ljZVRyYW5zcG9y
dFN0YXRlOjpDb25uZWN0ZWQ7CiAKICAgICBpZiAoKGNvbXBsZXRlZENvdW50ICsgY2xvc2VkQ291
bnQpID09IHN0YXRlcy5zaXplKCkgJiYgY29tcGxldGVkQ291bnQgPiAwKQotICAgICAgICByZXR1
cm4gUlRDSWNlVHJhbnNwb3J0OjpUcmFuc3BvcnRTdGF0ZTo6Q29tcGxldGVkOworICAgICAgICBy
ZXR1cm4gUlRDSWNlVHJhbnNwb3J0U3RhdGU6OkNvbXBsZXRlZDsKIAogICAgIGlmIChmYWlsZWRD
b3VudCA+IDApCi0gICAgICAgIHJldHVybiBSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRl
OjpGYWlsZWQ7CisgICAgICAgIHJldHVybiBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6RmFpbGVkOwog
CiAgICAgaWYgKGRpc2Nvbm5lY3RlZENvdW50ID4gMCkgLy8gQW55IGZhaWxlZCBjYXVnaHQgYWJv
dmUuCi0gICAgICAgIHJldHVybiBSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRlOjpEaXNj
b25uZWN0ZWQ7CisgICAgICAgIHJldHVybiBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6RGlzY29ubmVj
dGVkOwogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFJUQ0ljZVRyYW5z
cG9ydDo6VHJhbnNwb3J0U3RhdGU6Ok5ldzsKKyAgICByZXR1cm4gUlRDSWNlVHJhbnNwb3J0U3Rh
dGU6Ok5ldzsKIH0KIAotdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmljZVRyYW5z
cG9ydFN0YXRlQ2hhbmdlZChjb25zdCBTdHJpbmcmIG1pZCwgTWVkaWFFbmRwb2ludDo6SWNlVHJh
bnNwb3J0U3RhdGUgbWVkaWFFbmRwb2ludEljZVRyYW5zcG9ydFN0YXRlKQordm9pZCBNZWRpYUVu
ZHBvaW50UGVlckNvbm5lY3Rpb246OmljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlZChjb25zdCBTdHJp
bmcmIG1pZCwgUlRDSWNlVHJhbnNwb3J0U3RhdGUgbWVkaWFFbmRwb2ludEljZVRyYW5zcG9ydFN0
YXRlKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBSVENSdHBUcmFuc2Nl
aXZlciogdHJhbnNjZWl2ZXIgPSBtYXRjaFRyYW5zY2VpdmVyQnlNaWQobV9wZWVyQ29ubmVjdGlv
bi5nZXRUcmFuc2NlaXZlcnMoKSwgbWlkKTsKICAgICBBU1NFUlQodHJhbnNjZWl2ZXIpOwogCi0g
ICAgUlRDSWNlVHJhbnNwb3J0OjpUcmFuc3BvcnRTdGF0ZSB0cmFuc3BvcnRTdGF0ZSA9IHN0YXRp
Y19jYXN0PFJUQ0ljZVRyYW5zcG9ydDo6VHJhbnNwb3J0U3RhdGU+KG1lZGlhRW5kcG9pbnRJY2VU
cmFuc3BvcnRTdGF0ZSk7CisgICAgUlRDSWNlVHJhbnNwb3J0U3RhdGUgdHJhbnNwb3J0U3RhdGUg
PSBzdGF0aWNfY2FzdDxSVENJY2VUcmFuc3BvcnRTdGF0ZT4obWVkaWFFbmRwb2ludEljZVRyYW5z
cG9ydFN0YXRlKTsKICAgICB0cmFuc2NlaXZlci0+aWNlVHJhbnNwb3J0KCkuc2V0VHJhbnNwb3J0
U3RhdGUodHJhbnNwb3J0U3RhdGUpOwogCiAgICAgLy8gRGV0ZXJtaW5lIGlmIHRoZSBzY3JpcHQg
bmVlZHMgdG8gYmUgbm90aWZpZWQuCi0gICAgVmVjdG9yPFJUQ0ljZVRyYW5zcG9ydDo6VHJhbnNw
b3J0U3RhdGU+IHRyYW5zcG9ydFN0YXRlczsKKyAgICBWZWN0b3I8UlRDSWNlVHJhbnNwb3J0U3Rh
dGU+IHRyYW5zcG9ydFN0YXRlczsKICAgICBmb3IgKGF1dG8mIHRyYW5zY2VpdmVyIDogbV9wZWVy
Q29ubmVjdGlvbi5nZXRUcmFuc2NlaXZlcnMoKSkKICAgICAgICAgdHJhbnNwb3J0U3RhdGVzLmFw
cGVuZCh0cmFuc2NlaXZlci0+aWNlVHJhbnNwb3J0KCkudHJhbnNwb3J0U3RhdGUoKSk7CiAKLSAg
ICBSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRlIGRlcml2ZWRTdGF0ZSA9IGRlcml2ZUFn
Z3JlZ2F0ZWRJY2VDb25uZWN0aW9uU3RhdGUodHJhbnNwb3J0U3RhdGVzKTsKLSAgICBtX3BlZXJD
b25uZWN0aW9uLnVwZGF0ZUljZUNvbm5lY3Rpb25TdGF0ZShzdGF0aWNfY2FzdDxJY2VDb25uZWN0
aW9uU3RhdGU+KGRlcml2ZWRTdGF0ZSkpOworICAgIFJUQ0ljZVRyYW5zcG9ydFN0YXRlIGRlcml2
ZWRTdGF0ZSA9IGRlcml2ZUFnZ3JlZ2F0ZWRJY2VDb25uZWN0aW9uU3RhdGUodHJhbnNwb3J0U3Rh
dGVzKTsKKyAgICBtX3BlZXJDb25uZWN0aW9uLnVwZGF0ZUljZUNvbm5lY3Rpb25TdGF0ZShzdGF0
aWNfY2FzdDxSVENJY2VDb25uZWN0aW9uU3RhdGU+KGRlcml2ZWRTdGF0ZSkpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uaAppbmRleCBm
ZjQ1MjhiMzhiNDA3YzAyYTI0ZmJkMWM5Y2JiNmViMjNiNGUxN2FkLi4zMDJlNWNmZjk0ODUyYzJj
ZTA0YjU3YjI2YjhkYWVjMTc0MDc5NTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9u
LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE2IEVyaWNz
c29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzQsNiArMzUsNyBAQAogCiAjaW5jbHVkZSAiTWVkaWFFbmRwb2ludC5oIgogI2luY2x1
ZGUgIlBlZXJDb25uZWN0aW9uQmFja2VuZC5oIgorI2luY2x1ZGUgIlJUQ0VudW1zLmgiCiAjaW5j
bHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+
CiAKQEAgLTk3LDcgKzk5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdvdER0bHNGaW5nZXJwcmlu
dChjb25zdCBTdHJpbmcmIGZpbmdlcnByaW50LCBjb25zdCBTdHJpbmcmIGZpbmdlcnByaW50RnVu
Y3Rpb24pIGZpbmFsOwogICAgIHZvaWQgZ290SWNlQ2FuZGlkYXRlKGNvbnN0IFN0cmluZyYgbWlk
LCBJY2VDYW5kaWRhdGUmJikgZmluYWw7CiAgICAgdm9pZCBkb25lR2F0aGVyaW5nQ2FuZGlkYXRl
cyhjb25zdCBTdHJpbmcmIG1pZCkgZmluYWw7Ci0gICAgdm9pZCBpY2VUcmFuc3BvcnRTdGF0ZUNo
YW5nZWQoY29uc3QgU3RyaW5nJiBtaWQsIE1lZGlhRW5kcG9pbnQ6OkljZVRyYW5zcG9ydFN0YXRl
KSBmaW5hbDsKKyAgICB2b2lkIGljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlZChjb25zdCBTdHJpbmcm
IG1pZCwgUlRDSWNlVHJhbnNwb3J0U3RhdGUpIGZpbmFsOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gY3JlYXRlRGF0YUNoYW5uZWxIYW5kbGVyKGNvbnN0IFN0
cmluZyYsIGNvbnN0IFJUQ0RhdGFDaGFubmVsSW5pdCYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcHAKaW5kZXggZDc3NWZlODgzMGQ4Y2IxOWQ3YTY2MzU4ZmRhZjA4N2RkZGYyMWVhMy4u
NGUyNWY4ZmRmZWZhNTViZGFiNDE2MDc3MzY5Njg0MGJhZTJlYmFjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgRXJp
Y3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSU5DLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgUGVlckNv
bm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVPZmZlcihSVENPZmZlck9wdGlvbnMmJiBvcHRpb25zLCBQ
ZWVyQ29ubmVjdGlvbjo6U2Vzc2lvbkRlc2NyaXB0aW9uUHJvbWlzZSYmIHByb21pc2UpCiB7CiAg
ICAgQVNTRVJUKCFtX29mZmVyQW5zd2VyUHJvbWlzZSk7Ci0gICAgQVNTRVJUKG1fcGVlckNvbm5l
Y3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpICE9IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpT
aWduYWxpbmdTdGF0ZTo6Q2xvc2VkKTsKKyAgICBBU1NFUlQobV9wZWVyQ29ubmVjdGlvbi5zaWdu
YWxpbmdTdGF0ZSgpICE9IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpOwogCiAgICAgbV9vZmZl
ckFuc3dlclByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpOwogICAgIGRvQ3JlYXRlT2ZmZXIoV1RG
TW92ZShvcHRpb25zKSk7CkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNr
ZW5kOjpjcmVhdGVPZmZlclN1Y2NlZWRlZChTdHJpbmcmJiBzZHApCiB7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKIAotICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmludGVybmFsU2lnbmFs
aW5nU3RhdGUoKSA9PSBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OkNsb3Nl
ZCkKKyAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5zaWduYWxpbmdTdGF0ZSgpID09IFJUQ1NpZ25h
bGluZ1N0YXRlOjpDbG9zZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChtX29mZmVy
QW5zd2VyUHJvbWlzZSk7CkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNr
ZW5kOjpjcmVhdGVPZmZlckZhaWxlZChFeGNlcHRpb24mJiBleGNlcHRpb24pCiB7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmludGVybmFs
U2lnbmFsaW5nU3RhdGUoKSA9PSBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6
OkNsb3NlZCkKKyAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5zaWduYWxpbmdTdGF0ZSgpID09IFJU
Q1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVCht
X29mZmVyQW5zd2VyUHJvbWlzZSk7CkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgUGVlckNvbm5lY3Rp
b25CYWNrZW5kOjpjcmVhdGVPZmZlckZhaWxlZChFeGNlcHRpb24mJiBleGNlcHRpb24pCiB2b2lk
IFBlZXJDb25uZWN0aW9uQmFja2VuZDo6Y3JlYXRlQW5zd2VyKFJUQ0Fuc3dlck9wdGlvbnMmJiBv
cHRpb25zLCBQZWVyQ29ubmVjdGlvbjo6U2Vzc2lvbkRlc2NyaXB0aW9uUHJvbWlzZSYmIHByb21p
c2UpCiB7CiAgICAgQVNTRVJUKCFtX29mZmVyQW5zd2VyUHJvbWlzZSk7Ci0gICAgQVNTRVJUKG1f
cGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpICE9IFBlZXJDb25uZWN0aW9u
U3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKTsKKyAgICBBU1NFUlQobV9wZWVyQ29ubmVj
dGlvbi5zaWduYWxpbmdTdGF0ZSgpICE9IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpOwogCiAg
ICAgbV9vZmZlckFuc3dlclByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpOwogICAgIGRvQ3JlYXRl
QW5zd2VyKFdURk1vdmUob3B0aW9ucykpOwpAQCAtODksNyArODksNyBAQCB2b2lkIFBlZXJDb25u
ZWN0aW9uQmFja2VuZDo6Y3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmluZyYmIHNkcCkKIHsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uaW50
ZXJuYWxTaWduYWxpbmdTdGF0ZSgpID09IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdT
dGF0ZTo6Q2xvc2VkKQorICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLnNpZ25hbGluZ1N0YXRlKCkg
PT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNT
RVJUKG1fb2ZmZXJBbnN3ZXJQcm9taXNlKTsKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIFBlZXJD
b25uZWN0aW9uQmFja2VuZDo6Y3JlYXRlQW5zd2VyRmFpbGVkKEV4Y2VwdGlvbiYmIGV4Y2VwdGlv
bikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgaWYgKG1fcGVlckNvbm5l
Y3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpID09IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpT
aWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLnNpZ25hbGlu
Z1N0YXRlKCkgPT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgQVNTRVJUKG1fb2ZmZXJBbnN3ZXJQcm9taXNlKTsKQEAgLTEwOSwxNiArMTA5LDE2IEBA
IHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVBbnN3ZXJGYWlsZWQoRXhjZXB0aW9u
JiYgZXhjZXB0aW9uKQogICAgIG1fb2ZmZXJBbnN3ZXJQcm9taXNlID0gc3RkOjpudWxsb3B0Owog
fQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNMb2NhbERlc2NyaXB0aW9uVHlwZVZhbGlkRm9yU3Rh
dGUoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlIHR5cGUsIFBlZXJDb25uZWN0aW9uU3Rh
dGVzOjpTaWduYWxpbmdTdGF0ZSBzdGF0ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc0xvY2FsRGVz
Y3JpcHRpb25UeXBlVmFsaWRGb3JTdGF0ZShSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGUg
dHlwZSwgUlRDU2lnbmFsaW5nU3RhdGUgc3RhdGUpCiB7CiAgICAgc3dpdGNoIChzdGF0ZSkgewot
ICAgIGNhc2UgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpTdGFibGU6Cisg
ICAgY2FzZSBSVENTaWduYWxpbmdTdGF0ZTo6U3RhYmxlOgogICAgICAgICByZXR1cm4gdHlwZSA9
PSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6Ok9mZmVyOwotICAgIGNhc2UgUGVlckNv
bm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxPZmZlcjoKKyAgICBjYXNl
IFJUQ1NpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxPZmZlcjoKICAgICAgICAgcmV0dXJuIHR5cGUg
PT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpPZmZlcjsKLSAgICBjYXNlIFBlZXJD
b25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6SGF2ZVJlbW90ZU9mZmVyOgorICAgIGNh
c2UgUlRDU2lnbmFsaW5nU3RhdGU6OkhhdmVSZW1vdGVPZmZlcjoKICAgICAgICAgcmV0dXJuIHR5
cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpBbnN3ZXIgfHwgdHlwZSA9PSBS
VENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6OlByYW5zd2VyOwotICAgIGNhc2UgUGVlckNv
bm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxQckFuc3dlcjoKKyAgICBj
YXNlIFJUQ1NpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxQcmFuc3dlcjoKICAgICAgICAgcmV0dXJu
IHR5cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpBbnN3ZXIgfHwgdHlwZSA9
PSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6OlByYW5zd2VyOwogICAgIGRlZmF1bHQ6
CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMCw5ICsxMzAsOSBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgaXNMb2NhbERlc2NyaXB0aW9uVHlwZVZhbGlkRm9yU3RhdGUoUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uOjpTZAogCiB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0TG9jYWxEZXNjcmlw
dGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb24mIHNlc3Npb25EZXNjcmlwdGlvbiwgRE9NUHJvbWlz
ZTx2b2lkPiYmIHByb21pc2UpCiB7Ci0gICAgQVNTRVJUKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJu
YWxTaWduYWxpbmdTdGF0ZSgpICE9IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0
ZTo6Q2xvc2VkKTsKKyAgICBBU1NFUlQobV9wZWVyQ29ubmVjdGlvbi5zaWduYWxpbmdTdGF0ZSgp
ICE9IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpOwogCi0gICAgaWYgKCFpc0xvY2FsRGVzY3Jp
cHRpb25UeXBlVmFsaWRGb3JTdGF0ZShzZXNzaW9uRGVzY3JpcHRpb24udHlwZSgpLCBtX3BlZXJD
b25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSkpIHsKKyAgICBpZiAoIWlzTG9jYWxE
ZXNjcmlwdGlvblR5cGVWYWxpZEZvclN0YXRlKHNlc3Npb25EZXNjcmlwdGlvbi50eXBlKCksIG1f
cGVlckNvbm5lY3Rpb24uc2lnbmFsaW5nU3RhdGUoKSkpIHsKICAgICAgICAgcHJvbWlzZS5yZWpl
Y3QoSU5WQUxJRF9TVEFURV9FUlIsICJEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRo
IGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0x
NDUsNyArMTQ1LDcgQEAgdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnNldExvY2FsRGVzY3Jp
cHRpb25TdWNjZWVkZWQoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBp
ZiAobV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gUGVlckNvbm5l
Y3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCisgICAgaWYgKG1fcGVlckNvbm5l
Y3Rpb24uc2lnbmFsaW5nU3RhdGUoKSA9PSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQogICAg
ICAgICByZXR1cm47CiAKICAgICBBU1NFUlQobV9zZXREZXNjcmlwdGlvblByb21pc2UpOwpAQCAt
MTU4LDcgKzE1OCw3IEBAIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzZXRMb2NhbERlc2Ny
aXB0aW9uRmFpbGVkKEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikKIHsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogCi0gICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdT
dGF0ZSgpID09IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQor
ICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLnNpZ25hbGluZ1N0YXRlKCkgPT0gUlRDU2lnbmFsaW5n
U3RhdGU6OkNsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKG1fc2V0RGVzY3Jp
cHRpb25Qcm9taXNlKTsKQEAgLTE2NywxNiArMTY3LDE2IEBAIHZvaWQgUGVlckNvbm5lY3Rpb25C
YWNrZW5kOjpzZXRMb2NhbERlc2NyaXB0aW9uRmFpbGVkKEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikK
ICAgICBtX3NldERlc2NyaXB0aW9uUHJvbWlzZSA9IHN0ZDo6bnVsbG9wdDsKIH0KIAotc3RhdGlj
IGlubGluZSBib29sIGlzUmVtb3RlRGVzY3JpcHRpb25UeXBlVmFsaWRGb3JTdGF0ZShSVENTZXNz
aW9uRGVzY3JpcHRpb246OlNkcFR5cGUgdHlwZSwgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25h
bGluZ1N0YXRlIHN0YXRlKQorc3RhdGljIGlubGluZSBib29sIGlzUmVtb3RlRGVzY3JpcHRpb25U
eXBlVmFsaWRGb3JTdGF0ZShSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGUgdHlwZSwgUlRD
U2lnbmFsaW5nU3RhdGUgc3RhdGUpCiB7CiAgICAgc3dpdGNoIChzdGF0ZSkgewotICAgIGNhc2Ug
UGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpTdGFibGU6CisgICAgY2FzZSBS
VENTaWduYWxpbmdTdGF0ZTo6U3RhYmxlOgogICAgICAgICByZXR1cm4gdHlwZSA9PSBSVENTZXNz
aW9uRGVzY3JpcHRpb246OlNkcFR5cGU6Ok9mZmVyOwotICAgIGNhc2UgUGVlckNvbm5lY3Rpb25T
dGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxPZmZlcjoKKyAgICBjYXNlIFJUQ1NpZ25h
bGluZ1N0YXRlOjpIYXZlTG9jYWxPZmZlcjoKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpBbnN3ZXIgfHwgdHlwZSA9PSBSVENTZXNzaW9uRGVz
Y3JpcHRpb246OlNkcFR5cGU6OlByYW5zd2VyOwotICAgIGNhc2UgUGVlckNvbm5lY3Rpb25TdGF0
ZXM6OlNpZ25hbGluZ1N0YXRlOjpIYXZlUmVtb3RlT2ZmZXI6CisgICAgY2FzZSBSVENTaWduYWxp
bmdTdGF0ZTo6SGF2ZVJlbW90ZU9mZmVyOgogICAgICAgICByZXR1cm4gdHlwZSA9PSBSVENTZXNz
aW9uRGVzY3JpcHRpb246OlNkcFR5cGU6Ok9mZmVyOwotICAgIGNhc2UgUGVlckNvbm5lY3Rpb25T
dGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpIYXZlUmVtb3RlUHJBbnN3ZXI6CisgICAgY2FzZSBSVENT
aWduYWxpbmdTdGF0ZTo6SGF2ZVJlbW90ZVByYW5zd2VyOgogICAgICAgICByZXR1cm4gdHlwZSA9
PSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6OkFuc3dlciB8fCB0eXBlID09IFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbjo6U2RwVHlwZTo6UHJhbnN3ZXI7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMTg4LDkgKzE4OCw5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp
c1JlbW90ZURlc2NyaXB0aW9uVHlwZVZhbGlkRm9yU3RhdGUoUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
OjpTCiAKIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzZXRSZW1vdGVEZXNjcmlwdGlvbihS
VENTZXNzaW9uRGVzY3JpcHRpb24mIHNlc3Npb25EZXNjcmlwdGlvbiwgRE9NUHJvbWlzZTx2b2lk
PiYmIHByb21pc2UpCiB7Ci0gICAgQVNTRVJUKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWdu
YWxpbmdTdGF0ZSgpICE9IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6Q2xv
c2VkKTsKKyAgICBBU1NFUlQobV9wZWVyQ29ubmVjdGlvbi5zaWduYWxpbmdTdGF0ZSgpICE9IFJU
Q1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpOwogCi0gICAgaWYgKCFpc1JlbW90ZURlc2NyaXB0aW9u
VHlwZVZhbGlkRm9yU3RhdGUoc2Vzc2lvbkRlc2NyaXB0aW9uLnR5cGUoKSwgbV9wZWVyQ29ubmVj
dGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkpKSB7CisgICAgaWYgKCFpc1JlbW90ZURlc2Ny
aXB0aW9uVHlwZVZhbGlkRm9yU3RhdGUoc2Vzc2lvbkRlc2NyaXB0aW9uLnR5cGUoKSwgbV9wZWVy
Q29ubmVjdGlvbi5zaWduYWxpbmdTdGF0ZSgpKSkgewogICAgICAgICBwcm9taXNlLnJlamVjdChJ
TlZBTElEX1NUQVRFX0VSUiwgIkRlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdpdGggY3Vy
cmVudCBzaWduYWxpbmcgc3RhdGUiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIwMyw3
ICsyMDMsNyBAQCB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0UmVtb3RlRGVzY3JpcHRp
b25TdWNjZWVkZWQoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBpZiAo
bV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gUGVlckNvbm5lY3Rp
b25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCisgICAgaWYgKG1fcGVlckNvbm5lY3Rp
b24uc2lnbmFsaW5nU3RhdGUoKSA9PSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQogICAgICAg
ICByZXR1cm47CiAKICAgICBBU1NFUlQobV9zZXREZXNjcmlwdGlvblByb21pc2UpOwpAQCAtMjE2
LDcgKzIxNiw3IEBAIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzZXRSZW1vdGVEZXNjcmlw
dGlvbkZhaWxlZChFeGNlcHRpb24mJiBleGNlcHRpb24pCiB7CiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKIAotICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3Rh
dGUoKSA9PSBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKKyAg
ICBpZiAobV9wZWVyQ29ubmVjdGlvbi5zaWduYWxpbmdTdGF0ZSgpID09IFJUQ1NpZ25hbGluZ1N0
YXRlOjpDbG9zZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChtX3NldERlc2NyaXB0
aW9uUHJvbWlzZSk7CkBAIC0yMjcsNyArMjI3LDcgQEAgdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tl
bmQ6OnNldFJlbW90ZURlc2NyaXB0aW9uRmFpbGVkKEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikKIAog
dm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRh
dGUmIGljZUNhbmRpZGF0ZSwgRE9NUHJvbWlzZTx2b2lkPiYmIHByb21pc2UpCiB7Ci0gICAgQVNT
RVJUKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpICE9IFBlZXJDb25u
ZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKTsKKyAgICBBU1NFUlQobV9wZWVy
Q29ubmVjdGlvbi5zaWduYWxpbmdTdGF0ZSgpICE9IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQp
OwogCiAgICAgaWYgKGljZUNhbmRpZGF0ZS5zZHBNaWQoKS5pc051bGwoKSAmJiAhaWNlQ2FuZGlk
YXRlLnNkcE1MaW5lSW5kZXgoKSkgewogICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24g
eyBUeXBlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiVHJ5aW5nIHRvIGFkZCBhIGNhbmRpZGF0ZSB0aGF0
IGlzIG1pc3NpbmcgYm90aCBzZHBNaWQgYW5kIHNkcE1MaW5lSW5kZXgiKSB9KTsKQEAgLTI0MSw3
ICsyNDEsNyBAQCB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6YWRkSWNlQ2FuZGlkYXRlU3Vj
Y2VlZGVkKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgaWYgKG1fcGVl
ckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpID09IFBlZXJDb25uZWN0aW9uU3Rh
dGVzOjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLnNp
Z25hbGluZ1N0YXRlKCkgPT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgLy8gRklYTUU6IFVwZGF0ZSByZW1vdGUgZGVzY3JpcHRpb24gYW5kIHNldCBJ
Q0UgY29ubmVjdGlvbiBzdGF0ZSB0byBjaGVja2luZyBpZiBub3QgYWxyZWFkeSBkb25lIHNvLgpA
QCAtMjU0LDcgKzI1NCw3IEBAIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjphZGRJY2VDYW5k
aWRhdGVTdWNjZWVkZWQoKQogdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmFkZEljZUNhbmRp
ZGF0ZUZhaWxlZChFeGNlcHRpb24mJiBleGNlcHRpb24pCiB7CiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKLSAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRl
KCkgPT0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCisgICAg
aWYgKG1fcGVlckNvbm5lY3Rpb24uc2lnbmFsaW5nU3RhdGUoKSA9PSBSVENTaWduYWxpbmdTdGF0
ZTo6Q2xvc2VkKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQobV9hZGRJY2VDYW5kaWRh
dGVQcm9taXNlKTsKQEAgLTMzMiwxNCArMzMyLDE0IEBAIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNr
ZW5kOjpkb25lR2F0aGVyaW5nQ2FuZGlkYXRlcygpCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKIAogICAgIG1fcGVlckNvbm5lY3Rpb24uZmlyZUV2ZW50KFJUQ0ljZUNhbmRpZGF0ZUV2ZW50
OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBudWxscHRyKSk7Ci0gICAgbV9wZWVyQ29ubmVjdGlvbi51
cGRhdGVJY2VHYXRoZXJpbmdTdGF0ZShQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlR2F0aGVyaW5n
U3RhdGU6OkNvbXBsZXRlKTsKKyAgICBtX3BlZXJDb25uZWN0aW9uLnVwZGF0ZUljZUdhdGhlcmlu
Z1N0YXRlKFJUQ0ljZUdhdGhlcmluZ1N0YXRlOjpDb21wbGV0ZSk7CiB9CiAKLXZvaWQgUGVlckNv
bm5lY3Rpb25CYWNrZW5kOjp1cGRhdGVTaWduYWxpbmdTdGF0ZShQZWVyQ29ubmVjdGlvblN0YXRl
czo6U2lnbmFsaW5nU3RhdGUgbmV3U2lnbmFsaW5nU3RhdGUpCit2b2lkIFBlZXJDb25uZWN0aW9u
QmFja2VuZDo6dXBkYXRlU2lnbmFsaW5nU3RhdGUoUlRDU2lnbmFsaW5nU3RhdGUgbmV3U2lnbmFs
aW5nU3RhdGUpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGlmIChuZXdT
aWduYWxpbmdTdGF0ZSAhPSBtX3BlZXJDb25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUo
KSkgeworICAgIGlmIChuZXdTaWduYWxpbmdTdGF0ZSAhPSBtX3BlZXJDb25uZWN0aW9uLnNpZ25h
bGluZ1N0YXRlKCkpIHsKICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbi5zZXRTaWduYWxpbmdTdGF0
ZShuZXdTaWduYWxpbmdTdGF0ZSk7CiAgICAgICAgIG1fcGVlckNvbm5lY3Rpb24uZmlyZUV2ZW50
KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNpZ25hbGluZ3N0YXRlY2hhbmdlRXZlbnQsIGZh
bHNlLCBmYWxzZSkpOwogICAgIH0KQEAgLTM2MSw3ICszNjEsNyBAQCB2b2lkIFBlZXJDb25uZWN0
aW9uQmFja2VuZDo6bWFya0FzTmVlZGluZ05lZ290aWF0aW9uKCkKICAgICAKICAgICBtX25lZ290
aWF0aW9uTmVlZGVkID0gdHJ1ZTsKICAgICAKLSAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5pbnRl
cm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0
YXRlOjpTdGFibGUpCisgICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uc2lnbmFsaW5nU3RhdGUoKSA9
PSBSVENTaWduYWxpbmdTdGF0ZTo6U3RhYmxlKQogICAgICAgICBtX3BlZXJDb25uZWN0aW9uLnNj
aGVkdWxlTmVnb3RpYXRpb25OZWVkZWRFdmVudCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaApp
bmRleCBiNjZiOTVjNmZmZTZjOGRmMjRjMjZiNTcwNzA3MzkxM2Y4ZWU2Y2ZkLi5mMjczMDkyZDA3
NWY1MWE5NWU4NmU0ZDIxYjU2ZjdmMmVkYjZlYjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKQEAg
LTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1IEVyaWNzc29uIEFCLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNyAr
MzQsNyBAQAogI2lmIEVOQUJMRShXRUJfUlRDKQogCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlLmgi
Ci0jaW5jbHVkZSAiUGVlckNvbm5lY3Rpb25TdGF0ZXMuaCIKKyNpbmNsdWRlICJSVENFbnVtcy5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTExMCw3ICsxMTEsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBmaXJlSUNFQ2FuZGlkYXRlRXZlbnQoUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZT4m
Jik7CiAgICAgdm9pZCBkb25lR2F0aGVyaW5nQ2FuZGlkYXRlcygpOwogCi0gICAgdm9pZCB1cGRh
dGVTaWduYWxpbmdTdGF0ZShQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGUpOwor
ICAgIHZvaWQgdXBkYXRlU2lnbmFsaW5nU3RhdGUoUlRDU2lnbmFsaW5nU3RhdGUpOwogCiAgICAg
dm9pZCBjcmVhdGVPZmZlclN1Y2NlZWRlZChTdHJpbmcmJik7CiAgICAgdm9pZCBjcmVhdGVPZmZl
ckZhaWxlZChFeGNlcHRpb24mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5oCmluZGV4IDJmMDZlYTI1YTcwYWNhNWU3YWRl
NTM3MDc2Nzg5NDkyMGE3OWRlZTAuLmU1YTc0OWFiMzkyYWZhNWFmMDQzMDM2NWE5NWQ2YWY4MWMx
NTgzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDQ29uZmlndXJhdGlvbi5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzIsMjEgKzMzLDE1IEBACiAKICNpZiBFTkFCTEUoV0VCX1JUQykKIAot
I2luY2x1ZGUgIlBlZXJDb25uZWN0aW9uU3RhdGVzLmgiCisjaW5jbHVkZSAiUlRDRW51bXMuaCIK
ICNpbmNsdWRlICJSVENJY2VTZXJ2ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2lu
ZyBSVENJY2VUcmFuc3BvcnRQb2xpY3kgPSBQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlVHJhbnNw
b3J0UG9saWN5OwotdXNpbmcgUlRDQnVuZGxlUG9saWN5ID0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6
OkJ1bmRsZVBvbGljeTsKLQogc3RydWN0IFJUQ0NvbmZpZ3VyYXRpb24gewotICAgIHVzaW5nIElj
ZVRyYW5zcG9ydFBvbGljeSA9IFJUQ0ljZVRyYW5zcG9ydFBvbGljeTsKLSAgICB1c2luZyBCdW5k
bGVQb2xpY3kgPSBSVENCdW5kbGVQb2xpY3k7Ci0KICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxS
VENJY2VTZXJ2ZXI+PiBpY2VTZXJ2ZXJzOwotICAgIEljZVRyYW5zcG9ydFBvbGljeSBpY2VUcmFu
c3BvcnRQb2xpY3k7Ci0gICAgQnVuZGxlUG9saWN5IGJ1bmRsZVBvbGljeTsKKyAgICBSVENJY2VU
cmFuc3BvcnRQb2xpY3kgaWNlVHJhbnNwb3J0UG9saWN5OworICAgIFJUQ0J1bmRsZVBvbGljeSBi
dW5kbGVQb2xpY3k7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb24uaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb25maWd1cmF0aW9uLmlkbApp
bmRleCAzZDI2NjRkYmMxZTNmMTg2NDMzZTA2MWJkNDRjZjUxY2JmZGNkZDZlLi41NmM4Njg2NDgw
MGUxOWNlMDBhNmI1NTQxZTY1YTBiMWQxMzEyNWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb24uaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5pZGwKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMTQgKzIz
LDM1IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLWVudW0gUlRDSWNlVHJhbnNwb3J0UG9saWN5
IHsgInJlbGF5IiwgImFsbCIgfTsKLWVudW0gUlRDQnVuZGxlUG9saWN5IHsgImJhbGFuY2VkIiwg
Im1heC1jb21wYXQiLCAibWF4LWJ1bmRsZSIgfTsKK1sKKyAgICBDb25kaXRpb25hbD1XRUJfUlRD
LAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9UGVlckNvbm5lY3Rpb24sCisgICAgSW1wbGVtZW50ZWRB
cz1SVENJY2VUcmFuc3BvcnRQb2xpY3kKK10gZW51bSBSVENJY2VUcmFuc3BvcnRQb2xpY3kgewor
ICAgICJyZWxheSIsCisgICAgImFsbCIKK307CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJfUlRD
LAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9UGVlckNvbm5lY3Rpb24sCisgICAgSW1wbGVtZW50ZWRB
cz1SVENCdW5kbGVQb2xpY3kKK10gZW51bSBSVENCdW5kbGVQb2xpY3kgeworICAgICJiYWxhbmNl
ZCIsCisgICAgIm1heC1jb21wYXQiLAorICAgICJtYXgtYnVuZGxlIgorfTsKIAogWwogICAgIENv
bmRpdGlvbmFsPVdFQl9SVEMsCisgICAgRW5hYmxlZEF0UnVudGltZT1QZWVyQ29ubmVjdGlvbiwK
ICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKIF0gZGljdGlvbmFyeSBSVENDb25maWd1cmF0aW9u
IHsKICAgICBzZXF1ZW5jZTxSVENJY2VTZXJ2ZXI+IGljZVNlcnZlcnM7CiAgICAgUlRDSWNlVHJh
bnNwb3J0UG9saWN5IGljZVRyYW5zcG9ydFBvbGljeSA9ICJhbGwiOwogICAgIFJUQ0J1bmRsZVBv
bGljeSBidW5kbGVQb2xpY3kgPSAiYmFsYW5jZWQiOworICAgIC8vIEZJWE1FIDE2OTY2MjogbWlz
c2luZyBydGNwTXV4UG9saWN5CisgICAgLy8gRklYTUUgMTY5NjYyOiBtaXNzaW5nIHBlZXJJZGVu
dGl0eQorICAgIC8vIEZJWE1FIDE2OTY2MjogbWlzc2luZyBjZXJ0aWZpY2F0ZXMKKyAgICAvLyBG
SVhNRSAxNjk2NjI6IG1pc3NpbmcgaWNlQ2FuZGlkYXRlUG9vbFNpemUKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNvbm5lY3Rpb25TdGF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDb25uZWN0aW9u
U3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kNzgyNzAyYzNjOGQwOGRhNTZhOWY0MTBmNmZkZTJkMDY2NjZh
ZTg1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENJY2VDb25uZWN0aW9uU3RhdGUuaApAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJQZWVyQ29ubmVjdGlvblN0YXRlcy5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDb25uZWN0aW9u
U3RhdGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDb25u
ZWN0aW9uU3RhdGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhZTQwZGY5ZWVlOTA5MzA0OTE5ZTA1YWE0YmYw
ZWU2YmNkYzFjM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJfUlRDLAorICAgIEVuYWJsZWRBdFJ1bnRp
bWU9UGVlckNvbm5lY3Rpb24KK10gZW51bSBSVENJY2VDb25uZWN0aW9uU3RhdGUgeworICAgICJu
ZXciLAorICAgICJjaGVja2luZyIsCisgICAgImNvbm5lY3RlZCIsCisgICAgImNvbXBsZXRlZCIs
CisgICAgImZhaWxlZCIsCisgICAgImRpc2Nvbm5lY3RlZCIsCisgICAgImNsb3NlZCIKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUdhdGhl
cmluZ1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUdh
dGhlcmluZ1N0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc4MjcwMmMzYzhkMDhkYTU2YTlmNDEwZjZmZGUy
ZDA2NjY2YWU4NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDSWNlR2F0aGVyaW5nU3RhdGUuaApAQCAtMCwwICsxLDI4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJQZWVyQ29ubmVjdGlvblN0YXRlcy5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VHYXRo
ZXJpbmdTdGF0ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0lj
ZUdhdGhlcmluZ1N0YXRlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYWYxYjI2ZjAwYTIyNmFiOWIyNzQ0ZjM3
OTM5ZTlmYjAzMmU1YTZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENJY2VHYXRoZXJpbmdTdGF0ZS5pZGwKQEAgLTAsMCArMSwzMyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJfUlRDLAorICAgIEVuYWJsZWRBdFJ1
bnRpbWU9UGVlckNvbm5lY3Rpb24KK10gZW51bSBSVENJY2VHYXRoZXJpbmdTdGF0ZSB7CisgICAg
Im5ldyIsCisgICAgImdhdGhlcmluZyIsCisgICAgImNvbXBsZXRlIgorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlVHJhbnNwb3J0LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZVRyYW5zcG9ydC5oCmluZGV4
IDQ1Y2Y3ZWQ4NDkyODc2ZmFlZDBlM2NjYzMxMjBmYzBhODM5YmFkNWMuLjY2ZmRhNWJhMjgwYmEy
OGU0OGIwYzdjYTg0N2Q1NDUzYjc3ZTdlYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlVHJhbnNwb3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VUcmFuc3BvcnQuaApAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTYgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw3ICszMyw3IEBACiAKICNpZiBF
TkFCTEUoV0VCX1JUQykKIAotI2luY2x1ZGUgIlBlZXJDb25uZWN0aW9uU3RhdGVzLmgiCisjaW5j
bHVkZSAiUlRDRW51bXMuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTQxLDI3ICs0
MiwyMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJUQ0ljZVRyYW5zcG9ydCA6IHB1
YmxpYyBSZWZDb3VudGVkPFJUQ0ljZVRyYW5zcG9ydD4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUg
ewogcHVibGljOgotCi0gICAgdXNpbmcgVHJhbnNwb3J0U3RhdGUgPSBQZWVyQ29ubmVjdGlvblN0
YXRlczo6SWNlVHJhbnNwb3J0U3RhdGU7Ci0gICAgdXNpbmcgR2F0aGVyaW5nU3RhdGUgPSBQZWVy
Q29ubmVjdGlvblN0YXRlczo6SWNlR2F0aGVyaW5nU3RhdGU7Ci0KICAgICBzdGF0aWMgUmVmPFJU
Q0ljZVRyYW5zcG9ydD4gY3JlYXRlKCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFJUQ0ljZVRyYW5zcG9ydCgpKTsKICAgICB9CiAgICAgdmlydHVhbCB+UlRDSWNlVHJhbnNw
b3J0KCkgeyB9CiAKLSAgICBUcmFuc3BvcnRTdGF0ZSB0cmFuc3BvcnRTdGF0ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHJhbnNwb3J0U3RhdGU7IH0KLSAgICB2b2lkIHNldFRyYW5zcG9ydFN0YXRlKFRy
YW5zcG9ydFN0YXRlIHN0YXRlKSB7IG1fdHJhbnNwb3J0U3RhdGUgPSBzdGF0ZTsgfQorICAgIFJU
Q0ljZVRyYW5zcG9ydFN0YXRlIHRyYW5zcG9ydFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV90cmFu
c3BvcnRTdGF0ZTsgfQorICAgIHZvaWQgc2V0VHJhbnNwb3J0U3RhdGUoUlRDSWNlVHJhbnNwb3J0
U3RhdGUgc3RhdGUpIHsgbV90cmFuc3BvcnRTdGF0ZSA9IHN0YXRlOyB9CiAKLSAgICBHYXRoZXJp
bmdTdGF0ZSBnYXRoZXJpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZ2F0aGVyaW5nU3RhdGU7
IH0KLSAgICB2b2lkIHNldEdhdGhlcmluZ1N0YXRlKEdhdGhlcmluZ1N0YXRlIHN0YXRlKSB7IG1f
Z2F0aGVyaW5nU3RhdGUgPSBzdGF0ZTsgfQorICAgIFJUQ0ljZUdhdGhlcmluZ1N0YXRlIGdhdGhl
cmluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9nYXRoZXJpbmdTdGF0ZTsgfQorICAgIHZvaWQg
c2V0R2F0aGVyaW5nU3RhdGUoUlRDSWNlR2F0aGVyaW5nU3RhdGUgc3RhdGUpIHsgbV9nYXRoZXJp
bmdTdGF0ZSA9IHN0YXRlOyB9CiAKIHByaXZhdGU6CiAgICAgUlRDSWNlVHJhbnNwb3J0KCkgeyB9
OwogCi0gICAgVHJhbnNwb3J0U3RhdGUgbV90cmFuc3BvcnRTdGF0ZSB7IFRyYW5zcG9ydFN0YXRl
OjpOZXcgfTsKLSAgICBHYXRoZXJpbmdTdGF0ZSBtX2dhdGhlcmluZ1N0YXRlIHsgR2F0aGVyaW5n
U3RhdGU6Ok5ldyB9OworICAgIFJUQ0ljZVRyYW5zcG9ydFN0YXRlIG1fdHJhbnNwb3J0U3RhdGUg
eyBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6TmV3IH07CisgICAgUlRDSWNlR2F0aGVyaW5nU3RhdGUg
bV9nYXRoZXJpbmdTdGF0ZSB7IFJUQ0ljZUdhdGhlcmluZ1N0YXRlOjpOZXcgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggZTA2YTkzNGMxODVjOTJm
NTU2NmRiZWVjMDE5OTBjNGI1YmJmZGY4Ny4uMmM4M2VmYTkzMDI0NDhjMmJiODE1MzMyYmRlYmE0
NDI3Y2M4MmZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTU4LDcgKzU4LDYgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIFBlZXJDb25uZWN0aW9uOwotdXNpbmcgbmFt
ZXNwYWNlIFBlZXJDb25uZWN0aW9uU3RhdGVzOwogCiBSZWY8UlRDUGVlckNvbm5lY3Rpb24+IFJU
Q1BlZXJDb25uZWN0aW9uOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkK
IHsKQEAgLTY2LDcgKzY1LDcgQEAgUmVmPFJUQ1BlZXJDb25uZWN0aW9uPiBSVENQZWVyQ29ubmVj
dGlvbjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQKICAgICBwZWVyQ29u
bmVjdGlvbi0+c3VzcGVuZElmTmVlZGVkKCk7CiAgICAgLy8gUlRDUGVlckNvbm5lY3Rpb24gbWF5
IHNlbmQgZXZlbnRzIGF0IGFib3V0IGFueSB0aW1lIGR1cmluZyBpdHMgbGlmZXRpbWUuCiAgICAg
Ly8gTGV0J3MgbWFrZSBpdCB1bmNvbGxlY3RhYmxlIHVudGlsIHRoZSBwYyBpcyBjbG9zZWQgYnkg
SlMgb3IgdGhlIHBhZ2Ugc3RvcHMgaXQuCi0gICAgaWYgKHBlZXJDb25uZWN0aW9uLT5tX3NpZ25h
bGluZ1N0YXRlICE9IFNpZ25hbGluZ1N0YXRlOjpDbG9zZWQpIHsKKyAgICBpZiAocGVlckNvbm5l
Y3Rpb24tPm1fc2lnbmFsaW5nU3RhdGUgIT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkgewog
ICAgICAgICBwZWVyQ29ubmVjdGlvbi0+c2V0UGVuZGluZ0FjdGl2aXR5KHBlZXJDb25uZWN0aW9u
LnB0cigpKTsKICAgICAgICAgcGVlckNvbm5lY3Rpb24tPnJlZ2lzdGVyVG9Db250cm9sbGVyKCk7
CiAgICAgfQpAQCAtOTcsNyArOTYsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBSVENQZWVyQ29ubmVj
dGlvbjo6aW5pdGlhbGl6ZVdpdGgoRG9jdW1lbnQmIGRvY3VtZW50LCBSVENDb25maQogCiBFeGNl
cHRpb25PcjxSZWY8UlRDUnRwU2VuZGVyPj4gUlRDUGVlckNvbm5lY3Rpb246OmFkZFRyYWNrKFJl
ZjxNZWRpYVN0cmVhbVRyYWNrPiYmIHRyYWNrLCBjb25zdCBWZWN0b3I8c3RkOjpyZWZlcmVuY2Vf
d3JhcHBlcjxNZWRpYVN0cmVhbT4+JiBzdHJlYW1zKQogewotICAgIGlmIChtX3NpZ25hbGluZ1N0
YXRlID09IFNpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCisgICAgaWYgKG1fc2lnbmFsaW5nU3RhdGUg
PT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IElOVkFMSURfU1RBVEVfRVJSIH07CiAKICAgICAvLyBSZXF1aXJlIGF0IGxlYXN0IG9uZSBzdHJl
YW0gdW50aWwgaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJydGMtcGMvaXNzdWVzLzI4OCBpcyBy
ZXNvbHZlZApAQCAtMTUzLDcgKzE1Miw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBTZW5kZXI+
PiBSVENQZWVyQ29ubmVjdGlvbjo6YWRkVHJhY2soUmVmPE1lZGlhU3RyZWFtVHJhY2s+CiAKIEV4
Y2VwdGlvbk9yPHZvaWQ+IFJUQ1BlZXJDb25uZWN0aW9uOjpyZW1vdmVUcmFjayhSVENSdHBTZW5k
ZXImIHNlbmRlcikKIHsKLSAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBTaWduYWxpbmdTdGF0
ZTo6Q2xvc2VkKQorICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFJUQ1NpZ25hbGluZ1N0YXRl
OjpDbG9zZWQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NUQVRFX0VSUiB9
OwogCiAgICAgYm9vbCBzaG91bGRBYm9ydCA9IHRydWU7CkBAIC0xNzQsNyArMTczLDcgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gUlRDUGVlckNvbm5lY3Rpb246OnJlbW92ZVRyYWNrKFJUQ1J0cFNlbmRl
ciYgc2VuZGVyKQogCiBFeGNlcHRpb25PcjxSZWY8UlRDUnRwVHJhbnNjZWl2ZXI+PiBSVENQZWVy
Q29ubmVjdGlvbjo6YWRkVHJhbnNjZWl2ZXIoUmVmPE1lZGlhU3RyZWFtVHJhY2s+JiYgdHJhY2ss
IGNvbnN0IFJUQ1J0cFRyYW5zY2VpdmVySW5pdCYgaW5pdCkKIHsKLSAgICBpZiAobV9zaWduYWxp
bmdTdGF0ZSA9PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgIGlmIChtX3NpZ25hbGluZ1N0
YXRlID09IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCiAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJTlZBTElEX1NUQVRFX0VSUiB9OwogCiAgICAgU3RyaW5nIHRyYW5zY2VpdmVyTWlkID0g
UlRDUnRwVHJhbnNjZWl2ZXI6OmdldE5leHRNaWQoKTsKQEAgLTE5Miw3ICsxOTEsNyBAQCBFeGNl
cHRpb25PcjxSZWY8UlRDUnRwVHJhbnNjZWl2ZXI+PiBSVENQZWVyQ29ubmVjdGlvbjo6YWRkVHJh
bnNjZWl2ZXIoUmVmPE1lZGlhUwogCiBFeGNlcHRpb25PcjxSZWY8UlRDUnRwVHJhbnNjZWl2ZXI+
PiBSVENQZWVyQ29ubmVjdGlvbjo6YWRkVHJhbnNjZWl2ZXIoY29uc3QgU3RyaW5nJiBraW5kLCBj
b25zdCBSVENSdHBUcmFuc2NlaXZlckluaXQmIGluaXQpCiB7Ci0gICAgaWYgKG1fc2lnbmFsaW5n
U3RhdGUgPT0gU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKKyAgICBpZiAobV9zaWduYWxpbmdTdGF0
ZSA9PSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSU5WQUxJRF9TVEFURV9FUlIgfTsKIAogICAgIGlmIChraW5kICE9ICJhdWRpbyIgJiYga2lu
ZCAhPSAidmlkZW8iKQpAQCAtMjIwLDcgKzIxOSw3IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246
OmNvbXBsZXRlQWRkVHJhbnNjZWl2ZXIoUlRDUnRwVHJhbnNjZWl2ZXImIHRyYW5zY2VpdmVyLCBj
CiAKIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnF1ZXVlZENyZWF0ZU9mZmVyKFJUQ09mZmVyT3B0
aW9ucyYmIG9wdGlvbnMsIFNlc3Npb25EZXNjcmlwdGlvblByb21pc2UmJiBwcm9taXNlKQogewot
ICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFNpZ25hbGluZ1N0YXRlOjpDbG9zZWQpIHsKKyAg
ICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKSB7CiAg
ICAgICAgIHByb21pc2UucmVqZWN0KElOVkFMSURfU1RBVEVfRVJSKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTIzMCw3ICsyMjksNyBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpxdWV1
ZWRDcmVhdGVPZmZlcihSVENPZmZlck9wdGlvbnMmJiBvcHRpb25zLCBTZXNzaW9uRGVzYwogCiB2
b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpxdWV1ZWRDcmVhdGVBbnN3ZXIoUlRDQW5zd2VyT3B0aW9u
cyYmIG9wdGlvbnMsIFNlc3Npb25EZXNjcmlwdGlvblByb21pc2UmJiBwcm9taXNlKQogewotICAg
IGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFNpZ25hbGluZ1N0YXRlOjpDbG9zZWQpIHsKKyAgICBp
ZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKSB7CiAgICAg
ICAgIHByb21pc2UucmVqZWN0KElOVkFMSURfU1RBVEVfRVJSKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTI0MCw3ICsyMzksNyBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpxdWV1ZWRD
cmVhdGVBbnN3ZXIoUlRDQW5zd2VyT3B0aW9ucyYmIG9wdGlvbnMsIFNlc3Npb25EZQogCiB2b2lk
IFJUQ1BlZXJDb25uZWN0aW9uOjpxdWV1ZWRTZXRMb2NhbERlc2NyaXB0aW9uKFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIERPTVByb21pc2U8dm9pZD4mJiBwcm9taXNlKQogewot
ICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFNpZ25hbGluZ1N0YXRlOjpDbG9zZWQpIHsKKyAg
ICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKSB7CiAg
ICAgICAgIHByb21pc2UucmVqZWN0KElOVkFMSURfU1RBVEVfRVJSKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTI2NSw3ICsyNjQsNyBAQCBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
PiBSVENQZWVyQ29ubmVjdGlvbjo6cGVuZGluZ0xvY2FsRGVzY3JpcHRpb24oKSBjb25zdAogCiB2
b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpxdWV1ZWRTZXRSZW1vdGVEZXNjcmlwdGlvbihSVENTZXNz
aW9uRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBET01Qcm9taXNlPHZvaWQ+JiYgcHJvbWlzZSkK
IHsKLSAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKSB7
CisgICAgaWYgKG1fc2lnbmFsaW5nU3RhdGUgPT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkg
ewogICAgICAgICBwcm9taXNlLnJlamVjdChJTlZBTElEX1NUQVRFX0VSUik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC0yOTAsNyArMjg5LDcgQEAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbj4gUlRDUGVlckNvbm5lY3Rpb246OnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbigpIGNvbnMK
IAogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6cXVldWVkQWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNh
bmRpZGF0ZSYgcnRjQ2FuZGlkYXRlLCBET01Qcm9taXNlPHZvaWQ+JiYgcHJvbWlzZSkKIHsKLSAg
ICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKSB7CisgICAg
aWYgKG1fc2lnbmFsaW5nU3RhdGUgPT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkgewogICAg
ICAgICBwcm9taXNlLnJlamVjdChJTlZBTElEX1NUQVRFX0VSUik7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC0yOTgsNjggKzI5Nyw5IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnF1ZXVl
ZEFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUmIHJ0Y0NhbmRpZGF0ZSwgRE9NCiAgICAg
bV9iYWNrZW5kLT5hZGRJY2VDYW5kaWRhdGUocnRjQ2FuZGlkYXRlLCBXVEZNb3ZlKHByb21pc2Up
KTsKIH0KIAotU3RyaW5nIFJUQ1BlZXJDb25uZWN0aW9uOjpzaWduYWxpbmdTdGF0ZSgpIGNvbnN0
Ci17Ci0gICAgc3dpdGNoIChtX3NpZ25hbGluZ1N0YXRlKSB7Ci0gICAgY2FzZSBTaWduYWxpbmdT
dGF0ZTo6U3RhYmxlOgotICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJzdGFibGUiKTsKLSAg
ICBjYXNlIFNpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxPZmZlcjoKLSAgICAgICAgcmV0dXJuIEFT
Q0lJTGl0ZXJhbCgiaGF2ZS1sb2NhbC1vZmZlciIpOwotICAgIGNhc2UgU2lnbmFsaW5nU3RhdGU6
OkhhdmVSZW1vdGVPZmZlcjoKLSAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaGF2ZS1yZW1v
dGUtb2ZmZXIiKTsKLSAgICBjYXNlIFNpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxQckFuc3dlcjoK
LSAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaGF2ZS1sb2NhbC1wcmFuc3dlciIpOwotICAg
IGNhc2UgU2lnbmFsaW5nU3RhdGU6OkhhdmVSZW1vdGVQckFuc3dlcjoKLSAgICAgICAgcmV0dXJu
IEFTQ0lJTGl0ZXJhbCgiaGF2ZS1yZW1vdGUtcHJhbnN3ZXIiKTsKLSAgICBjYXNlIFNpZ25hbGlu
Z1N0YXRlOjpDbG9zZWQ6Ci0gICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImNsb3NlZCIpOwot
ICAgIH0KLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsK
LX0KLQotU3RyaW5nIFJUQ1BlZXJDb25uZWN0aW9uOjppY2VHYXRoZXJpbmdTdGF0ZSgpIGNvbnN0
Ci17Ci0gICAgc3dpdGNoIChtX2ljZUdhdGhlcmluZ1N0YXRlKSB7Ci0gICAgY2FzZSBJY2VHYXRo
ZXJpbmdTdGF0ZTo6TmV3OgotICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJuZXciKTsKLSAg
ICBjYXNlIEljZUdhdGhlcmluZ1N0YXRlOjpHYXRoZXJpbmc6Ci0gICAgICAgIHJldHVybiBBU0NJ
SUxpdGVyYWwoImdhdGhlcmluZyIpOwotICAgIGNhc2UgSWNlR2F0aGVyaW5nU3RhdGU6OkNvbXBs
ZXRlOgotICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJjb21wbGV0ZSIpOwotICAgIH0KLQot
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3Ry
aW5nIFJUQ1BlZXJDb25uZWN0aW9uOjppY2VDb25uZWN0aW9uU3RhdGUoKSBjb25zdAotewotICAg
IHN3aXRjaCAobV9pY2VDb25uZWN0aW9uU3RhdGUpIHsKLSAgICBjYXNlIEljZUNvbm5lY3Rpb25T
dGF0ZTo6TmV3OgotICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJuZXciKTsKLSAgICBjYXNl
IEljZUNvbm5lY3Rpb25TdGF0ZTo6Q2hlY2tpbmc6Ci0gICAgICAgIHJldHVybiBBU0NJSUxpdGVy
YWwoImNoZWNraW5nIik7Ci0gICAgY2FzZSBJY2VDb25uZWN0aW9uU3RhdGU6OkNvbm5lY3RlZDoK
LSAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiY29ubmVjdGVkIik7Ci0gICAgY2FzZSBJY2VD
b25uZWN0aW9uU3RhdGU6OkNvbXBsZXRlZDoKLSAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgi
Y29tcGxldGVkIik7Ci0gICAgY2FzZSBJY2VDb25uZWN0aW9uU3RhdGU6OkZhaWxlZDoKLSAgICAg
ICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZmFpbGVkIik7Ci0gICAgY2FzZSBJY2VDb25uZWN0aW9u
U3RhdGU6OkRpc2Nvbm5lY3RlZDoKLSAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZGlzY29u
bmVjdGVkIik7Ci0gICAgY2FzZSBJY2VDb25uZWN0aW9uU3RhdGU6OkNsb3NlZDoKLSAgICAgICAg
cmV0dXJuIEFTQ0lJTGl0ZXJhbCgiY2xvc2VkIik7Ci0gICAgfQotCi0gICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCiBFeGNlcHRpb25Pcjx2b2lkPiBS
VENQZWVyQ29ubmVjdGlvbjo6c2V0Q29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiYgY29u
ZmlndXJhdGlvbikKIHsKLSAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBTaWduYWxpbmdTdGF0
ZTo6Q2xvc2VkKQorICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFJUQ1NpZ25hbGluZ1N0YXRl
OjpDbG9zZWQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NUQVRFX0VSUiB9
OwogCiAgICAgVmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uOjpJY2VTZXJ2ZXJJbmZv
PiBzZXJ2ZXJzOwpAQCAtMzk4LDcgKzMzOCw3IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246Omdl
dFN0YXRzKE1lZGlhU3RyZWFtVHJhY2sqIHNlbGVjdG9yLCBSZWY8RGVmZXJyZWRQcm9taXNlCiAK
IEV4Y2VwdGlvbk9yPFJlZjxSVENEYXRhQ2hhbm5lbD4+IFJUQ1BlZXJDb25uZWN0aW9uOjpjcmVh
dGVEYXRhQ2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTdHJpbmcmJiBs
YWJlbCwgUlRDRGF0YUNoYW5uZWxJbml0JiYgb3B0aW9ucykKIHsKLSAgICBpZiAobV9zaWduYWxp
bmdTdGF0ZSA9PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgIGlmIChtX3NpZ25hbGluZ1N0
YXRlID09IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCiAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJTlZBTElEX1NUQVRFX0VSUiB9OwogCiAgICAgLy8gRklYTUU6IENoZWNrIG9wdGlvbnMK
QEAgLTQxMSwxMyArMzUxLDEzIEBAIEV4Y2VwdGlvbk9yPFJlZjxSVENEYXRhQ2hhbm5lbD4+IFJU
Q1BlZXJDb25uZWN0aW9uOjpjcmVhdGVEYXRhQ2hhbm5lbChTY3JpcHRFeGVjCiAKIHZvaWQgUlRD
UGVlckNvbm5lY3Rpb246OmNsb3NlKCkKIHsKLSAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBT
aWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFJUQ1Np
Z25hbGluZ1N0YXRlOjpDbG9zZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fYmFja2VuZC0+
c3RvcCgpOwogCi0gICAgbV9pY2VDb25uZWN0aW9uU3RhdGUgPSBJY2VDb25uZWN0aW9uU3RhdGU6
OkNsb3NlZDsKLSAgICBtX3NpZ25hbGluZ1N0YXRlID0gU2lnbmFsaW5nU3RhdGU6OkNsb3NlZDsK
KyAgICBtX2ljZUNvbm5lY3Rpb25TdGF0ZSA9IFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZTo6Q2xvc2Vk
OworICAgIG1fc2lnbmFsaW5nU3RhdGUgPSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkOwogCiAg
ICAgZm9yIChSVENSdHBTZW5kZXImIHNlbmRlciA6IG1fdHJhbnNjZWl2ZXJTZXQtPnNlbmRlcnMo
KSkKICAgICAgICAgc2VuZGVyLnN0b3AoKTsKQEAgLTQ3MCwxNSArNDEwLDE1IEBAIHZvaWQgUlRD
UGVlckNvbm5lY3Rpb246OmFkZFRyYW5zY2VpdmVyKFJlZjxSVENSdHBUcmFuc2NlaXZlcj4mJiB0
cmFuc2NlaXZlcikKICAgICBtX3RyYW5zY2VpdmVyU2V0LT5hcHBlbmQoV1RGTW92ZSh0cmFuc2Nl
aXZlcikpOwogfQogCi12b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpzZXRTaWduYWxpbmdTdGF0ZShT
aWduYWxpbmdTdGF0ZSBuZXdTdGF0ZSkKK3ZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnNldFNpZ25h
bGluZ1N0YXRlKFJUQ1NpZ25hbGluZ1N0YXRlIG5ld1N0YXRlKQogewogICAgIG1fc2lnbmFsaW5n
U3RhdGUgPSBuZXdTdGF0ZTsKIH0KIAotdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6dXBkYXRlSWNl
R2F0aGVyaW5nU3RhdGUoSWNlR2F0aGVyaW5nU3RhdGUgbmV3U3RhdGUpCit2b2lkIFJUQ1BlZXJD
b25uZWN0aW9uOjp1cGRhdGVJY2VHYXRoZXJpbmdTdGF0ZShSVENJY2VHYXRoZXJpbmdTdGF0ZSBu
ZXdTdGF0ZSkKIHsKICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnBvc3RUYXNrKFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG5ld1N0YXRlXShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JikgewotICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9zaWduYWxpbmdTdGF0ZSA9PSBT
aWduYWxpbmdTdGF0ZTo6Q2xvc2VkIHx8IHByb3RlY3RlZFRoaXMtPm1faWNlR2F0aGVyaW5nU3Rh
dGUgPT0gbmV3U3RhdGUpCisgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3NpZ25hbGluZ1N0
YXRlID09IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQgfHwgcHJvdGVjdGVkVGhpcy0+bV9pY2VH
YXRoZXJpbmdTdGF0ZSA9PSBuZXdTdGF0ZSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAg
ICBwcm90ZWN0ZWRUaGlzLT5tX2ljZUdhdGhlcmluZ1N0YXRlID0gbmV3U3RhdGU7CkBAIC00ODYs
MTAgKzQyNiwxMCBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjp1cGRhdGVJY2VHYXRoZXJpbmdT
dGF0ZShJY2VHYXRoZXJpbmdTdGF0ZSBuZXdTdGF0ZSkKICAgICB9KTsKIH0KIAotdm9pZCBSVENQ
ZWVyQ29ubmVjdGlvbjo6dXBkYXRlSWNlQ29ubmVjdGlvblN0YXRlKEljZUNvbm5lY3Rpb25TdGF0
ZSBuZXdTdGF0ZSkKK3ZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnVwZGF0ZUljZUNvbm5lY3Rpb25T
dGF0ZShSVENJY2VDb25uZWN0aW9uU3RhdGUgbmV3U3RhdGUpCiB7CiAgICAgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5wb3N0VGFzayhbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBu
ZXdTdGF0ZV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKLSAgICAgICAgaWYgKHByb3RlY3Rl
ZFRoaXMtPm1fc2lnbmFsaW5nU3RhdGUgPT0gU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCB8fCBwcm90
ZWN0ZWRUaGlzLT5tX2ljZUNvbm5lY3Rpb25TdGF0ZSA9PSBuZXdTdGF0ZSkKKyAgICAgICAgaWYg
KHByb3RlY3RlZFRoaXMtPm1fc2lnbmFsaW5nU3RhdGUgPT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNs
b3NlZCB8fCBwcm90ZWN0ZWRUaGlzLT5tX2ljZUNvbm5lY3Rpb25TdGF0ZSA9PSBuZXdTdGF0ZSkK
ICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2ljZUNvbm5l
Y3Rpb25TdGF0ZSA9IG5ld1N0YXRlOwpAQCAtNTAwLDcgKzQ0MCw3IEBAIHZvaWQgUlRDUGVlckNv
bm5lY3Rpb246OnVwZGF0ZUljZUNvbm5lY3Rpb25TdGF0ZShJY2VDb25uZWN0aW9uU3RhdGUgbmV3
U3RhdGUpCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpzY2hlZHVsZU5lZ290aWF0aW9uTmVlZGVk
RXZlbnQoKQogewogICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+cG9zdFRhc2soW3Byb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKLSAg
ICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fc2lnbmFsaW5nU3RhdGUgPT0gU2lnbmFsaW5nU3Rh
dGU6OkNsb3NlZCkKKyAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fc2lnbmFsaW5nU3RhdGUg
PT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX2JhY2tlbmQtPmlzTmVnb3RpYXRpb25OZWVkZWQoKSkK
ICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCAwNGU2NDRmZDBlNWQyYTk4NGM4
M2Y3ZTNiMTc4MjUxYzNjY2Y0NWM4Li43NWU2MGY5NmJlN2Y4MzY1NWI3YTNkYzYzMDRiNjFmOWM0
YWI2NzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi5oCkBAIC0zOCwxMSArMzgsOSBAQAogI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiTWVkaWFT
dHJlYW0uaCIKLSNpbmNsdWRlICJSVENBbnN3ZXJPcHRpb25zLmgiCiAjaW5jbHVkZSAiUlRDQ29u
ZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsLmgiCiAjaW5jbHVkZSAiUlRD
RW51bXMuaCIKLSNpbmNsdWRlICJSVENPZmZlck9wdGlvbnMuaCIKICNpbmNsdWRlICJSVENSdHBU
cmFuc2NlaXZlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01NSw2ICs1Myw4IEBAIGNs
YXNzIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjazsKIGNsYXNzIFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbjsKIGNsYXNzIFJUQ1N0YXRzQ2FsbGJhY2s7CiAKK3N0cnVjdCBSVENBbnN3ZXJPcHRp
b25zOworc3RydWN0IFJUQ09mZmVyT3B0aW9uczsKIHN0cnVjdCBSVENSdHBUcmFuc2NlaXZlcklu
aXQgewogICAgIFJUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0aW9uIGRpcmVjdGlvbjsKIH07CkBAIC02
NCwxMCArNjQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxSVENQZWVyQ29ubmVjdGlvbj4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKICAgICB2aXJ0dWFsIH5SVENQZWVyQ29u
bmVjdGlvbigpOwogCi0gICAgdXNpbmcgQW5zd2VyT3B0aW9ucyA9IFJUQ0Fuc3dlck9wdGlvbnM7
CiAgICAgdXNpbmcgRGF0YUNoYW5uZWxJbml0ID0gUlRDRGF0YUNoYW5uZWxJbml0OwotICAgIHVz
aW5nIE9mZmVyQW5zd2VyT3B0aW9ucyA9IFJUQ09mZmVyQW5zd2VyT3B0aW9uczsKLSAgICB1c2lu
ZyBPZmZlck9wdGlvbnMgPSBSVENPZmZlck9wdGlvbnM7CiAKICAgICBFeGNlcHRpb25Pcjx2b2lk
PiBpbml0aWFsaXplV2l0aChEb2N1bWVudCYsIFJUQ0NvbmZpZ3VyYXRpb24mJik7CiAKQEAgLTk3
LDEyICs5NCwxMiBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4g
Y3VycmVudFJlbW90ZURlc2NyaXB0aW9uKCkgY29uc3Q7CiAgICAgUmVmUHRyPFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbj4gcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uKCkgY29uc3Q7CiAKLSAgICBTdHJp
bmcgc2lnbmFsaW5nU3RhdGUoKSBjb25zdDsKKyAgICBSVENTaWduYWxpbmdTdGF0ZSBzaWduYWxp
bmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2lnbmFsaW5nU3RhdGU7IH0KIAogICAgIHZvaWQg
cXVldWVkQWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZSYsIERPTVByb21pc2U8dm9pZD4m
Jik7CiAKLSAgICBTdHJpbmcgaWNlR2F0aGVyaW5nU3RhdGUoKSBjb25zdDsKLSAgICBTdHJpbmcg
aWNlQ29ubmVjdGlvblN0YXRlKCkgY29uc3Q7CisgICAgUlRDSWNlR2F0aGVyaW5nU3RhdGUgaWNl
R2F0aGVyaW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2ljZUdhdGhlcmluZ1N0YXRlOyB9Cisg
ICAgUlRDSWNlQ29ubmVjdGlvblN0YXRlIGljZUNvbm5lY3Rpb25TdGF0ZSgpIGNvbnN0IHsgcmV0
dXJuIG1faWNlQ29ubmVjdGlvblN0YXRlOyB9CiAKICAgICBjb25zdCBSVENDb25maWd1cmF0aW9u
JiBnZXRDb25maWd1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uOyB9CiAg
ICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiYp
OwpAQCAtMTI1LDE3ICsxMjIsMTQgQEAgcHVibGljOgogCiAgICAgLy8gQVBJIHVzZWQgYnkgUGVl
ckNvbm5lY3Rpb25CYWNrZW5kIGFuZCByZWxhdGl2ZXMKICAgICB2b2lkIGFkZFRyYW5zY2VpdmVy
KFJlZjxSVENSdHBUcmFuc2NlaXZlcj4mJik7Ci0gICAgdm9pZCBzZXRTaWduYWxpbmdTdGF0ZShQ
ZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGUpOwotICAgIHZvaWQgdXBkYXRlSWNl
R2F0aGVyaW5nU3RhdGUoUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUdhdGhlcmluZ1N0YXRlKTsK
LSAgICB2b2lkIHVwZGF0ZUljZUNvbm5lY3Rpb25TdGF0ZShQZWVyQ29ubmVjdGlvblN0YXRlczo6
SWNlQ29ubmVjdGlvblN0YXRlKTsKKyAgICB2b2lkIHNldFNpZ25hbGluZ1N0YXRlKFJUQ1NpZ25h
bGluZ1N0YXRlKTsKKyAgICB2b2lkIHVwZGF0ZUljZUdhdGhlcmluZ1N0YXRlKFJUQ0ljZUdhdGhl
cmluZ1N0YXRlKTsKKyAgICB2b2lkIHVwZGF0ZUljZUNvbm5lY3Rpb25TdGF0ZShSVENJY2VDb25u
ZWN0aW9uU3RhdGUpOwogCiAgICAgdm9pZCBzY2hlZHVsZU5lZ290aWF0aW9uTmVlZGVkRXZlbnQo
KTsKIAogICAgIFJUQ1J0cFNlbmRlckNsaWVudCYgc2VuZGVyQ2xpZW50KCkgeyByZXR1cm4gKnRo
aXM7IH0KICAgICB2b2lkIGZpcmVFdmVudChFdmVudCYpOwotICAgIFBlZXJDb25uZWN0aW9uU3Rh
dGVzOjpTaWduYWxpbmdTdGF0ZSBpbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgY29uc3QgeyByZXR1
cm4gbV9zaWduYWxpbmdTdGF0ZTsgfQotICAgIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VHYXRo
ZXJpbmdTdGF0ZSBpbnRlcm5hbEljZUdhdGhlcmluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9p
Y2VHYXRoZXJpbmdTdGF0ZTsgfQotICAgIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VDb25uZWN0
aW9uU3RhdGUgaW50ZXJuYWxJY2VDb25uZWN0aW9uU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2lj
ZUNvbm5lY3Rpb25TdGF0ZTsgfQogCiAgICAgdm9pZCBkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVy
aW5nKCkgeyBtX2JhY2tlbmQtPmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsgfQogICAg
IHZvaWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkgeyBtX2JhY2tlbmQtPmVuYWJsZUlD
RUNhbmRpZGF0ZUZpbHRlcmluZygpOyB9CkBAIC0xNjEsOSArMTU1LDkgQEAgcHJpdmF0ZToKICAg
ICAvLyBSVENSdHBTZW5kZXJDbGllbnQKICAgICB2b2lkIHJlcGxhY2VUcmFjayhSVENSdHBTZW5k
ZXImLCBSZWY8TWVkaWFTdHJlYW1UcmFjaz4mJiwgRE9NUHJvbWlzZTx2b2lkPiYmKSBmaW5hbDsK
IAotICAgIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZSBtX3NpZ25hbGluZ1N0
YXRlIHsgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpTdGFibGUgfTsKLSAg
ICBQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlR2F0aGVyaW5nU3RhdGUgbV9pY2VHYXRoZXJpbmdT
dGF0ZSB7IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VHYXRoZXJpbmdTdGF0ZTo6TmV3IH07Ci0g
ICAgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUNvbm5lY3Rpb25TdGF0ZSBtX2ljZUNvbm5lY3Rp
b25TdGF0ZSB7IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VDb25uZWN0aW9uU3RhdGU6Ok5ldyB9
OworICAgIFJUQ1NpZ25hbGluZ1N0YXRlIG1fc2lnbmFsaW5nU3RhdGUgeyBSVENTaWduYWxpbmdT
dGF0ZTo6U3RhYmxlIH07CisgICAgUlRDSWNlR2F0aGVyaW5nU3RhdGUgbV9pY2VHYXRoZXJpbmdT
dGF0ZSB7IFJUQ0ljZUdhdGhlcmluZ1N0YXRlOjpOZXcgfTsKKyAgICBSVENJY2VDb25uZWN0aW9u
U3RhdGUgbV9pY2VDb25uZWN0aW9uU3RhdGUgeyBSVENJY2VDb25uZWN0aW9uU3RhdGU6Ok5ldyB9
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJ0cFRyYW5zY2VpdmVyU2V0PiBtX3RyYW5zY2VpdmVy
U2V0IHsgc3RkOjp1bmlxdWVfcHRyPFJ0cFRyYW5zY2VpdmVyU2V0PihuZXcgUnRwVHJhbnNjZWl2
ZXJTZXQoKSkgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbAppbmRleCBiNTk5ZTQ2NGUwMTMyNmU1MjFmMjli
MTE1MjM0NGUxNmQxYTk1NzNjLi5mZWRlNDU3NmRiZmVmODdiNmYwODlhNmVhZjgwZDJjY2IxYjhl
Y2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLmlkbApAQCAtOTIsMTIgKzkyLDkgQEAKICAgICAvLyBGSVhNRSAx
Njk2NDQ6IHVwZGF0ZSBwYXJhbWV0ZXIgdG8gKFJUQ0ljZUNhbmRpZGF0ZUluaXQgb3IgUlRDSWNl
Q2FuZGlkYXRlKQogICAgIFtKU0J1aWx0aW5dIFByb21pc2U8dm9pZD4gYWRkSWNlQ2FuZGlkYXRl
KFJUQ0ljZUNhbmRpZGF0ZSBjYW5kaWRhdGUpOwogCi0gICAgLy8gRklYTUUgMTY5NjQ0OiBjb252
ZXJ0IHRvIGVudW0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNpZ25hbGluZ1N0
YXRlOwotICAgIC8vIEZJWE1FIDE2OTY0NDogY29udmVydCB0byBlbnVtCi0gICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBpY2VHYXRoZXJpbmdTdGF0ZTsKLSAgICAvLyBGSVhNRSAxNjk2
NDQ6IGNvbnZlcnQgdG8gZW51bQotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgaWNl
Q29ubmVjdGlvblN0YXRlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENTaWduYWxpbmdTdGF0
ZSBzaWduYWxpbmdTdGF0ZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDSWNlR2F0aGVyaW5n
U3RhdGUgaWNlR2F0aGVyaW5nU3RhdGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ0ljZUNv
bm5lY3Rpb25TdGF0ZSBpY2VDb25uZWN0aW9uU3RhdGU7CiAKICAgICAvLyBGSVhNRSAxNjk2NDQ6
IG1pc3NpbmcgY29ubmVjdGlvblN0YXRlCiAgICAgLy8gRklYTUUgMTY5NjQ0OiBtaXNzaW5nIGNh
blRyaWNrbGVJY2VDYW5kaWRhdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1NpZ25hbGluZ1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1NpZ25hbGluZ1N0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc4MjcwMmMzYzhk
MDhkYTU2YTlmNDEwZjZmZGUyZDA2NjY2YWU4NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2lnbmFsaW5nU3RhdGUuaApAQCAtMCwwICsx
LDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJQZWVyQ29ubmVj
dGlvblN0YXRlcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTaWduYWxpbmdTdGF0ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1NpZ25hbGluZ1N0YXRlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjJiY2Y5OTA2ZTliZjI3
N2M4OTM0MmQ2NWZjNmJkYWE5NTIzZjNkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTaWduYWxpbmdTdGF0ZS5pZGwKQEAgLTAsMCArMSwz
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJfUlRDLAorICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9UGVlckNvbm5lY3Rpb24KK10gZW51bSBSVENTaWduYWxpbmdTdGF0ZSB7Cisg
ICAgInN0YWJsZSIsCisgICAgImhhdmUtbG9jYWwtb2ZmZXIiLAorICAgICJoYXZlLXJlbW90ZS1v
ZmZlciIsCisgICAgImhhdmUtbG9jYWwtcHJhbnN3ZXIiLAorICAgICJoYXZlLXJlbW90ZS1wcmFu
c3dlciIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCmlu
ZGV4IDJhNTk3ZjgxNDkwMjIwMGFjMTJmZDBkMDU5ZTMwNDU0NmEwNTI5YjQuLjI2YTVmYTljMTNi
NDk4MjYyNzI1MjdhOWYwZDNmZmM3ZTI4MDNhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ01lZGlhRW5kcG9pbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCw2
ICszOCw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiUlRD
RGF0YUNoYW5uZWwuaCIKICNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbEV2ZW50LmgiCisjaW5jbHVk
ZSAiUlRDRW51bXMuaCIKICNpbmNsdWRlICJSVENQZWVyQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUg
IlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIlJUQ1N0YXRzUmVwb3J0LmgiCkBA
IC0zNDgsMjEgKzM0OSwyMSBAQCB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OlN0YXRzQ29s
bGVjdG9yOjpPblN0YXRzRGVsaXZlcmVkKGNvbnN0IHJ0Yzo6c2NvcGVkXwogICAgIH0pOwogfQog
Ci1zdGF0aWMgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlIHNpZ25hbGluZ1N0
YXRlKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlNpZ25hbGluZ1N0YXRlIHN0YXRl
KQorc3RhdGljIFJUQ1NpZ25hbGluZ1N0YXRlIHNpZ25hbGluZ1N0YXRlKHdlYnJ0Yzo6UGVlckNv
bm5lY3Rpb25JbnRlcmZhY2U6OlNpZ25hbGluZ1N0YXRlIHN0YXRlKQogewogICAgIHN3aXRjaCAo
c3RhdGUpIHsKICAgICBjYXNlIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OmtTdGFi
bGU6Ci0gICAgICAgIHJldHVybiBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6
OlN0YWJsZTsKKyAgICAgICAgcmV0dXJuIFJUQ1NpZ25hbGluZ1N0YXRlOjpTdGFibGU7CiAgICAg
Y2FzZSB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjprSGF2ZUxvY2FsT2ZmZXI6Ci0g
ICAgICAgIHJldHVybiBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OkhhdmVM
b2NhbE9mZmVyOworICAgICAgICByZXR1cm4gUlRDU2lnbmFsaW5nU3RhdGU6OkhhdmVMb2NhbE9m
ZmVyOwogICAgIGNhc2Ugd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6a0hhdmVMb2Nh
bFByQW5zd2VyOgotICAgICAgICByZXR1cm4gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGlu
Z1N0YXRlOjpIYXZlTG9jYWxQckFuc3dlcjsKKyAgICAgICAgcmV0dXJuIFJUQ1NpZ25hbGluZ1N0
YXRlOjpIYXZlTG9jYWxQcmFuc3dlcjsKICAgICBjYXNlIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25J
bnRlcmZhY2U6OmtIYXZlUmVtb3RlT2ZmZXI6Ci0gICAgICAgIHJldHVybiBQZWVyQ29ubmVjdGlv
blN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OkhhdmVSZW1vdGVPZmZlcjsKKyAgICAgICAgcmV0dXJu
IFJUQ1NpZ25hbGluZ1N0YXRlOjpIYXZlUmVtb3RlT2ZmZXI7CiAgICAgY2FzZSB3ZWJydGM6OlBl
ZXJDb25uZWN0aW9uSW50ZXJmYWNlOjprSGF2ZVJlbW90ZVByQW5zd2VyOgotICAgICAgICByZXR1
cm4gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpIYXZlUmVtb3RlUHJBbnN3
ZXI7CisgICAgICAgIHJldHVybiBSVENTaWduYWxpbmdTdGF0ZTo6SGF2ZVJlbW90ZVByYW5zd2Vy
OwogICAgIGNhc2Ugd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6a0Nsb3NlZDoKLSAg
ICAgICAgcmV0dXJuIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2Vk
OworICAgICAgICByZXR1cm4gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZDsKICAgICB9CiB9CiAK
QEAgLTQ5NSwzNiArNDk2LDM2IEBAIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6T25SZW5l
Z290aWF0aW9uTmVlZGVkKCkKICAgICB9KTsKIH0KIAotc3RhdGljIGlubGluZSBQZWVyQ29ubmVj
dGlvblN0YXRlczo6SWNlQ29ubmVjdGlvblN0YXRlIGljZUNvbm5lY3Rpb25TdGF0ZSh3ZWJydGM6
OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpJY2VDb25uZWN0aW9uU3RhdGUgc3RhdGUpCitzdGF0
aWMgaW5saW5lIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZSB0b1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZSh3
ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpJY2VDb25uZWN0aW9uU3RhdGUgc3RhdGUp
CiB7CiAgICAgc3dpdGNoIChzdGF0ZSkgewogICAgIGNhc2Ugd2VicnRjOjpQZWVyQ29ubmVjdGlv
bkludGVyZmFjZTo6a0ljZUNvbm5lY3Rpb25OZXc6Ci0gICAgICAgIHJldHVybiBQZWVyQ29ubmVj
dGlvblN0YXRlczo6SWNlQ29ubmVjdGlvblN0YXRlOjpOZXc7CisgICAgICAgIHJldHVybiBSVENJ
Y2VDb25uZWN0aW9uU3RhdGU6Ok5ldzsKICAgICBjYXNlIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25J
bnRlcmZhY2U6OmtJY2VDb25uZWN0aW9uQ2hlY2tpbmc6Ci0gICAgICAgIHJldHVybiBQZWVyQ29u
bmVjdGlvblN0YXRlczo6SWNlQ29ubmVjdGlvblN0YXRlOjpDaGVja2luZzsKKyAgICAgICAgcmV0
dXJuIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZTo6Q2hlY2tpbmc7CiAgICAgY2FzZSB3ZWJydGM6OlBl
ZXJDb25uZWN0aW9uSW50ZXJmYWNlOjprSWNlQ29ubmVjdGlvbkNvbm5lY3RlZDoKLSAgICAgICAg
cmV0dXJuIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VDb25uZWN0aW9uU3RhdGU6OkNvbm5lY3Rl
ZDsKKyAgICAgICAgcmV0dXJuIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZTo6Q29ubmVjdGVkOwogICAg
IGNhc2Ugd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6a0ljZUNvbm5lY3Rpb25Db21w
bGV0ZWQ6Ci0gICAgICAgIHJldHVybiBQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlQ29ubmVjdGlv
blN0YXRlOjpDb21wbGV0ZWQ7CisgICAgICAgIHJldHVybiBSVENJY2VDb25uZWN0aW9uU3RhdGU6
OkNvbXBsZXRlZDsKICAgICBjYXNlIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OmtJ
Y2VDb25uZWN0aW9uRmFpbGVkOgotICAgICAgICByZXR1cm4gUGVlckNvbm5lY3Rpb25TdGF0ZXM6
OkljZUNvbm5lY3Rpb25TdGF0ZTo6RmFpbGVkOworICAgICAgICByZXR1cm4gUlRDSWNlQ29ubmVj
dGlvblN0YXRlOjpGYWlsZWQ7CiAgICAgY2FzZSB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJm
YWNlOjprSWNlQ29ubmVjdGlvbkRpc2Nvbm5lY3RlZDoKLSAgICAgICAgcmV0dXJuIFBlZXJDb25u
ZWN0aW9uU3RhdGVzOjpJY2VDb25uZWN0aW9uU3RhdGU6OkRpc2Nvbm5lY3RlZDsKKyAgICAgICAg
cmV0dXJuIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZTo6RGlzY29ubmVjdGVkOwogICAgIGNhc2Ugd2Vi
cnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6a0ljZUNvbm5lY3Rpb25DbG9zZWQ6Ci0gICAg
ICAgIHJldHVybiBQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlQ29ubmVjdGlvblN0YXRlOjpDbG9z
ZWQ7CisgICAgICAgIHJldHVybiBSVENJY2VDb25uZWN0aW9uU3RhdGU6OkNsb3NlZDsKICAgICBj
YXNlIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OmtJY2VDb25uZWN0aW9uTWF4Ogog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIFBlZXJDb25uZWN0
aW9uU3RhdGVzOjpJY2VDb25uZWN0aW9uU3RhdGU6Ok5ldzsKKyAgICAgICAgcmV0dXJuIFJUQ0lj
ZUNvbm5lY3Rpb25TdGF0ZTo6TmV3OwogICAgIH0KIH0KIAogdm9pZCBMaWJXZWJSVENNZWRpYUVu
ZHBvaW50OjpPbkljZUNvbm5lY3Rpb25DaGFuZ2Uod2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVy
ZmFjZTo6SWNlQ29ubmVjdGlvblN0YXRlIHN0YXRlKQogewotICAgIGF1dG8gY29ubmVjdGlvblN0
YXRlID0gaWNlQ29ubmVjdGlvblN0YXRlKHN0YXRlKTsKKyAgICBhdXRvIGNvbm5lY3Rpb25TdGF0
ZSA9IHRvUlRDSWNlQ29ubmVjdGlvblN0YXRlKHN0YXRlKTsKICAgICBjYWxsT25NYWluVGhyZWFk
KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbm5lY3Rpb25TdGF0ZV0gewogICAg
ICAgICBpZiAocHJvdGVjdGVkVGhpcy0+aXNTdG9wcGVkKCkpCiAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25u
ZWN0aW9uKCkuaW50ZXJuYWxJY2VDb25uZWN0aW9uU3RhdGUoKSAhPSBjb25uZWN0aW9uU3RhdGUp
CisgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25u
ZWN0aW9uKCkuaWNlQ29ubmVjdGlvblN0YXRlKCkgIT0gY29ubmVjdGlvblN0YXRlKQogICAgICAg
ICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY29ubmVjdGlvbigp
LnVwZGF0ZUljZUNvbm5lY3Rpb25TdGF0ZShjb25uZWN0aW9uU3RhdGUpOwogICAgIH0pOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5j
cHAKaW5kZXggYmE5M2U3ZGFmMzFjNTNiMTdiM2JmYWZkZDY0NGYwMTZlOWFkNjJmMi4uNTY2NjRj
OGQ5Y2Q0MWE1MWNlYTRkNDUwNWE4ODFjMjc3NjA2MTQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC03MywxNCArNzMs
MTQgQEAgc3RhdGljIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3Vy
YXRpb24gY29uZmlndXJhdGlvbkZyb21NZWRpYUUKIHsKICAgICB3ZWJydGM6OlBlZXJDb25uZWN0
aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uIHJ0Y0NvbmZpZ3VyYXRpb247CiAKLSAgICBp
ZiAoY29uZmlndXJhdGlvbi5pY2VUcmFuc3BvcnRQb2xpY3kgPT0gUGVlckNvbm5lY3Rpb25TdGF0
ZXM6OkljZVRyYW5zcG9ydFBvbGljeTo6UmVsYXkpCisgICAgaWYgKGNvbmZpZ3VyYXRpb24uaWNl
VHJhbnNwb3J0UG9saWN5ID09IFJUQ0ljZVRyYW5zcG9ydFBvbGljeTo6UmVsYXkpCiAgICAgICAg
IHJ0Y0NvbmZpZ3VyYXRpb24udHlwZSA9IHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6
OmtSZWxheTsKIAogICAgIC8vIEZJWE1FOiBTdXBwb3J0IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpC
dW5kbGVQb2xpY3k6Ok1heEJ1bmRsZS4KICAgICAvLyBMaWJXZWJSVEMgZG9lcyBub3QgbGlrZSBp
dCBhbmQgd2lsbCBmYWlsIHRvIHNldCBhbnkgY29uZmlndXJhdGlvbiBmaWVsZCBvdGhlcndpc2Uu
CiAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkz
ODkuCiAKLSAgICBpZiAoY29uZmlndXJhdGlvbi5idW5kbGVQb2xpY3kgPT0gUGVlckNvbm5lY3Rp
b25TdGF0ZXM6OkJ1bmRsZVBvbGljeTo6TWF4Q29tcGF0KQorICAgIGlmIChjb25maWd1cmF0aW9u
LmJ1bmRsZVBvbGljeSA9PSBSVENCdW5kbGVQb2xpY3k6Ok1heENvbXBhdCkKICAgICAgICAgcnRj
Q29uZmlndXJhdGlvbi5idW5kbGVfcG9saWN5ID0gd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVy
ZmFjZTo6a0J1bmRsZVBvbGljeU1heENvbXBhdDsKIAogICAgIGZvciAoYXV0byYgc2VydmVyIDog
Y29uZmlndXJhdGlvbi5pY2VTZXJ2ZXJzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2E2MjhjZjhiYzg0ODM5ZDljOWFkMWMz
YmNhYjI0MTlmY2I4OThjMC4uZjc4OWYxMDMxYjg0NDNmYTU4MDliNGI3ZGVlOWZkMTIxNTRlYjY5
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTQyNSw2ICsxNDI1LDE1IEBACiAJCTMxNkRDQjIyMUU3OENBNTUwMDFCNUY4NyAv
KiBKU1JUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZEQ0IxQzFFNzhDQTU1MDAxQjVGODcgLyogSlNSVENS
dHBUcmFuc2NlaXZlckRpcmVjdGlvbi5oICovOyB9OwogCQkzMTZEQ0IzMTFFNzhGQjZDMDAxQjVG
ODcgLyogSlNSVENBbnN3ZXJPcHRpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkRDQjJEMUU3OEY0OTYwMDFCNUY4NyAvKiBKU1JUQ0Fuc3dl
ck9wdGlvbnMuY3BwICovOyB9OwogCQkzMTZEQ0IzMjFFNzhGQjcwMDAxQjVGODcgLyogSlNSVENP
ZmZlck9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE2RENCMkYxRTc4RjQ5NjAwMUI1Rjg3IC8qIEpTUlRDT2ZmZXJPcHRpb25zLmNwcCAq
LzsgfTsKKwkJMzE2RENCMzcxRTc5MEUxQjAwMUI1Rjg3IC8qIFJUQ0ljZUdhdGhlcmluZ1N0YXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZEQ0Iz
NDFFNzkwRTFCMDAxQjVGODcgLyogUlRDSWNlR2F0aGVyaW5nU3RhdGUuaCAqLzsgfTsKKwkJMzE2
RENCM0QxRTc5MEUyQzAwMUI1Rjg3IC8qIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RENCM0ExRTc5MEUyQzAw
MUI1Rjg3IC8qIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5oICovOyB9OworCQkzMTZEQ0I0MzFFNzkw
RTNDMDAxQjVGODcgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkRDQjQwMUU3OTBFM0MwMDFCNUY4NyAvKiBSVENT
aWduYWxpbmdTdGF0ZS5oICovOyB9OworCQkzMTZEQ0I0QjFFNzkxMEE2MDAxQjVGODcgLyogSlNS
VENJY2VDb25uZWN0aW9uU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzE2RENCNDUxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDSWNlQ29ubmVj
dGlvblN0YXRlLmNwcCAqLzsgfTsKKwkJMzE2RENCNEMxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRD
SWNlQ29ubmVjdGlvblN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTZEQ0I0NjFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENJY2VDb25uZWN0aW9u
U3RhdGUuaCAqLzsgfTsKKwkJMzE2RENCNEQxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDSWNlR2F0
aGVyaW5nU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE2RENCNDcxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDSWNlR2F0aGVyaW5nU3RhdGUu
Y3BwICovOyB9OworCQkzMTZEQ0I0RTFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENJY2VHYXRoZXJp
bmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzE2RENCNDgxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDSWNlR2F0aGVyaW5nU3RhdGUuaCAqLzsg
fTsKKwkJMzE2RENCNEYxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDU2lnbmFsaW5nU3RhdGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RENCNDkx
RTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDU2lnbmFsaW5nU3RhdGUuY3BwICovOyB9OworCQkzMTZE
Q0I1MDFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENTaWduYWxpbmdTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RENCNEExRTc5MTBBNjAwMUI1
Rjg3IC8qIEpTUlRDU2lnbmFsaW5nU3RhdGUuaCAqLzsgfTsKIAkJMzE2RkUwNzEwRTZDQ0JFRTAw
QkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkZFMDZEMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tl
eWZyYW1lUnVsZS5jcHAgKi87IH07CiAJCTMxNkZFMDcyMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NT
U0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE2RkUwNkUwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmggKi87
IH07CiAJCTMxNkZFMDczMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lc1J1bGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUwNkYw
RTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVzUnVsZS5jcHAgKi87IH07CkBAIC04OTE1
LDYgKzg5MjQsMTggQEAKIAkJMzE2RENCMkUxRTc4RjQ5NjAwMUI1Rjg3IC8qIEpTUlRDQW5zd2Vy
T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JUQ0Fuc3dlck9w
dGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2RENCMkYxRTc4RjQ5NjAw
MUI1Rjg3IC8qIEpTUlRDT2ZmZXJPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTUlRDT2ZmZXJPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzE2RENCMzAxRTc4RjQ5NjAwMUI1Rjg3IC8qIEpTUlRDT2ZmZXJPcHRpb25zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUlRDT2ZmZXJPcHRpb25zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkRDQjM0MUU3OTBFMUIwMDFCNUY4NyAvKiBS
VENJY2VHYXRoZXJpbmdTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
VENJY2VHYXRoZXJpbmdTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTZE
Q0IzNTFFNzkwRTFCMDAxQjVGODcgLyogUlRDSWNlR2F0aGVyaW5nU3RhdGUuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFJUQ0ljZUdhdGhlcmluZ1N0YXRlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzE2RENCM0ExRTc5MEUyQzAwMUI1Rjg3IC8qIFJUQ0ljZUNvbm5lY3Rp
b25TdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENJY2VDb25uZWN0
aW9uU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2RENCM0IxRTc5MEUy
QzAwMUI1Rjg3IC8qIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUlRDSWNlQ29ubmVjdGlvblN0YXRlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzE2RENCNDAxRTc5MEUzQzAwMUI1Rjg3IC8qIFJUQ1NpZ25hbGluZ1N0YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ1NpZ25hbGluZ1N0YXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkRDQjQxMUU3OTBFM0MwMDFCNUY4NyAvKiBSVENT
aWduYWxpbmdTdGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRDU2lnbmFsaW5nU3Rh
dGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTZEQ0I0NTFFNzkxMEE2MDAx
QjVGODcgLyogSlNSVENJY2VDb25uZWN0aW9uU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNSVENJY2VDb25uZWN0aW9uU3RhdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkzMTZEQ0I0NjFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENJY2VD
b25uZWN0aW9uU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSVENJ
Y2VDb25uZWN0aW9uU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2RENC
NDcxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDSWNlR2F0aGVyaW5nU3RhdGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSVENJY2VHYXRoZXJpbmdTdGF0ZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkRDQjQ4MUU3OTEwQTYwMDFCNUY4NyAv
KiBKU1JUQ0ljZUdhdGhlcmluZ1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTUlRDSWNlR2F0aGVyaW5nU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMzE2RENCNDkxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDU2lnbmFsaW5nU3RhdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSVENTaWduYWxpbmdTdGF0ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkRDQjRBMUU3OTEwQTYwMDFCNUY4
NyAvKiBKU1JUQ1NpZ25hbGluZ1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTUlRDU2lnbmFsaW5nU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MzE2RkUwNkQwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NTS2V5ZnJhbWVSdWxlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2RkUwNkUwRTZDQ0JFRTAwQkY2MDg4IC8qIEpT
Q1NTS2V5ZnJhbWVSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ1NT
S2V5ZnJhbWVSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNkZFMDZGMEU2
Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lc1J1bGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NLZXlmcmFtZXNSdWxlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE1ODgxLDYgKzE1OTAyLDEwIEBACiAJCQkJMDcyMjFCNzQxN0NF
QzMyNzAwODQ4RTUxIC8qIFJUQ0ljZUNhbmRpZGF0ZUV2ZW50LmNwcCAqLywKIAkJCQkwNzIyMUI3
NTE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaCAqLywKIAkJCQkwNzIy
MUI3NjE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaWRsICovLAorCQkJ
CTMxNkRDQjNBMUU3OTBFMkMwMDFCNUY4NyAvKiBSVENJY2VDb25uZWN0aW9uU3RhdGUuaCAqLywK
KwkJCQkzMTZEQ0IzQjFFNzkwRTJDMDAxQjVGODcgLyogUlRDSWNlQ29ubmVjdGlvblN0YXRlLmlk
bCAqLywKKwkJCQkzMTZEQ0IzNDFFNzkwRTFCMDAxQjVGODcgLyogUlRDSWNlR2F0aGVyaW5nU3Rh
dGUuaCAqLywKKwkJCQkzMTZEQ0IzNTFFNzkwRTFCMDAxQjVGODcgLyogUlRDSWNlR2F0aGVyaW5n
U3RhdGUuaWRsICovLAogCQkJCTA3QUI5OTY3MThEQTNDMDEwMDE4NzcxRSAvKiBSVENJY2VTZXJ2
ZXIuaCAqLywKIAkJCQkwN0FCOTk2ODE4REEzQzAxMDAxODc3MUUgLyogUlRDSWNlU2VydmVyLmlk
bCAqLywKIAkJCQk1RTY2NTMwOTFEQTQzN0JGMDBGREQ4NEMgLyogUlRDSWNlVHJhbnNwb3J0Lmgg
Ki8sCkBAIC0xNTkwOCw2ICsxNTkzMyw4IEBACiAJCQkJMDcyMjFCN0ExN0NFQzMyNzAwODQ4RTUx
IC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgKi8sCiAJCQkJMDcyMjFCN0IxN0NFQzMyNzAw
ODQ4RTUxIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oICovLAogCQkJCTA3MjIxQjdDMTdDRUMz
MjcwMDg0OEU1MSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb24uaWRsICovLAorCQkJCTMxNkRDQjQw
MUU3OTBFM0MwMDFCNUY4NyAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovLAorCQkJCTMxNkRDQjQx
MUU3OTBFM0MwMDFCNUY4NyAvKiBSVENTaWduYWxpbmdTdGF0ZS5pZGwgKi8sCiAJCQkJMDcyMjFC
ODQxN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ1N0YXRzUmVwb3J0LmggKi8sCiAJCQkJMDcyMjFCODUx
N0NFQzMyNzAwODQ4RTUxIC8qIFJUQ1N0YXRzUmVwb3J0LmlkbCAqLywKIAkJCQk1RTJDNDM2NDFC
Q0VFMzcyMDAwMUUyQkMgLyogUlRDVHJhY2tFdmVudC5jcHAgKi8sCkBAIC0xNjEwMyw2ICsxNjEz
MCwxMCBAQAogCQkJCTA3OTY5RDlDMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ0ljZUNhbmRpZGF0
ZS5oICovLAogCQkJCTA3OTY5RDlEMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ0ljZUNhbmRpZGF0
ZUV2ZW50LmNwcCAqLywKIAkJCQkwNzk2OUQ5RTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENJY2VD
YW5kaWRhdGVFdmVudC5oICovLAorCQkJCTMxNkRDQjQ1MUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JU
Q0ljZUNvbm5lY3Rpb25TdGF0ZS5jcHAgKi8sCisJCQkJMzE2RENCNDYxRTc5MTBBNjAwMUI1Rjg3
IC8qIEpTUlRDSWNlQ29ubmVjdGlvblN0YXRlLmggKi8sCisJCQkJMzE2RENCNDcxRTc5MTBBNjAw
MUI1Rjg3IC8qIEpTUlRDSWNlR2F0aGVyaW5nU3RhdGUuY3BwICovLAorCQkJCTMxNkRDQjQ4MUU3
OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUdhdGhlcmluZ1N0YXRlLmggKi8sCiAJCQkJMDczNzk0
RTkxOUVFMzQxRTAwRTVBMDQ1IC8qIEpTUlRDSWNlU2VydmVyLmNwcCAqLywKIAkJCQkwNzM3OTRF
QTE5RUUzNDFFMDBFNUEwNDUgLyogSlNSVENJY2VTZXJ2ZXIuaCAqLywKIAkJCQkzMTZEQ0IxOTFF
NzhDQTU1MDAxQjVGODcgLyogSlNSVENPZmZlckFuc3dlck9wdGlvbnMuY3BwICovLApAQCAtMTYx
MjEsNiArMTYxNTIsOCBAQAogCQkJCTMxNkRDQjFDMUU3OENBNTUwMDFCNUY4NyAvKiBKU1JUQ1J0
cFRyYW5zY2VpdmVyRGlyZWN0aW9uLmggKi8sCiAJCQkJMDc5NjlEQTExN0QxNDE1MTAwN0ZGODQy
IC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCAqLywKIAkJCQkwNzk2OURBMjE3RDE0MTUx
MDA3RkY4NDIgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb24uaCAqLywKKwkJCQkzMTZEQ0I0OTFF
NzkxMEE2MDAxQjVGODcgLyogSlNSVENTaWduYWxpbmdTdGF0ZS5jcHAgKi8sCisJCQkJMzE2RENC
NEExRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDU2lnbmFsaW5nU3RhdGUuaCAqLywKIAkJCQkwNzk2
OURBNzE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1JlcG9ydC5jcHAgKi8sCiAJCQkJMDc5
NjlEQTgxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNSZXBvcnQuaCAqLywKIAkJCQk1RTJD
NDM2OTFCQ0YwNUM4MDAwMUUyQkMgLyogSlNSVENUcmFja0V2ZW50LmNwcCAqLywKQEAgLTI2MTE4
LDYgKzI2MTUxLDcgQEAKIAkJCQk5MzMwOUREOTA5OUU2NDkyMDA1NkU1ODEgLyogQXBwbHlTdHls
ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkREOEY2MEQ5MUU2QUYwMDBGODlFRSAv
KiBBcmNoaXZlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJERDhGRDBEOTFFNkFGMDAwRjg5RUUg
LyogQXJjaGl2ZUZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxNkRDQjRFMUU3OTEwQTYw
MDFCNUY4NyAvKiBKU1JUQ0ljZUdhdGhlcmluZ1N0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTJERDhGQzBEOTFFNkFGMDAwRjg5RUUgLyogQXJjaGl2ZVJlc291cmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MTJERDhGODBEOTFFNkFGMDAwRjg5RUUgLyogQXJjaGl2ZVJlc291cmNlQ29sbGVj
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1Njg2Q0ExM0FDMTgwMjAwQjY5QzY4IC8qIEFz
eW5jQXVkaW9EZWNvZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI3MTg5LDYgKzI3MjIzLDcgQEAK
IAkJCQk1MTg1RkNBNzFCQjRDNEU4MDAxMjg5OEYgLyogSURCUmVjb3JkSWRlbnRpZmllci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTE4NUZDQTkxQkI0QzRFODAwMTI4OThGIC8qIElEQlJlcXVlc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxNDEyOTk5MUM2OTc2OTAwMDU5RTcxNCAvKiBJREJSZXF1
ZXN0Q29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTZEQ0IzRDFFNzkwRTJD
MDAxQjVGODcgLyogUlRDSWNlQ29ubmVjdGlvblN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTBBNThGQTFCQUNDN0YyMDBDMTkyODIgLyogSURCUmVxdWVzdERhdGEuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxNDVCMTBBMUJDNDhFMkUwMEU4NjIxOSAvKiBJREJSZXNvdXJjZUlkZW50aWZpZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxRDcyMzZEMUJCNjE3NDkwMDQ3OENBMyAvKiBJREJSZXN1
bHREYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTI3NzI5LDYgKzI3NzY0LDcgQEAKIAkJCQk2NURG
MzIwMDA5RDFDQzYwMDAwQkUzMjUgLyogSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCUU0NDYxM0VFMENENjgxQkIwMEZBREE3NSAvKiBKU1Byb2dyZXNzRXZlbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA3NzY2NEZEMTgzRTZCNUMwMDEzM0I5MiAvKiBKU1F1aWNr
VGltZVBsdWdpblJlcGxhY2VtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTZEQ0IzNzFFNzkw
RTFCMDAxQjVGODcgLyogUlRDSWNlR2F0aGVyaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUI2NThGRkEyMTUyMkVGM0EwMERENTU5NSAvKiBKU1JhZGlvTm9kZUxpc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTY1REYzMjAyMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1JhbmdlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjNGNjQgLyogSlNSZWFkYWJsZUJ5dGVTdHJl
YW1Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI4MDM4LDYgKzI4MDc0LDcgQEAKIAkJ
CQkxQUUwMEQ1OTE4MkRBQzhEMDAwODdERDcgLyogS2V5ZWRDb2RpbmcuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxN0E2M0M1MUI3NDMxOEYwMEU3RENEQyAvKiBLZXllZERlY29kZXJDRi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTE3QTYzQzYxQjc0MzE5MjAwRTdEQ0RDIC8qIEtleWVkRW5jb2RlckNG
LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTZEQ0I0QzFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENJ
Y2VDb25uZWN0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MTNCM0Q3MTE0QjE2NjYw
MDFDNDI5QiAvKiBLZXlFdmVudENvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNjU1NDEzOTE0
ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRDb2Rlc0lPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzE2RkUxMUEwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9uLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI4NzAzLDYgKzI4NzQwLDcgQEAKIAkJCQk0MzY3MDhENTEyRDlDQTRCMDAwNDQy
MzQgLyogUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQzNjcwOEQ3MTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MDhEOTEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVy
U1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE2RENCNDMx
RTc5MEUzQzAwMUI1Rjg3IC8qIFJUQ1NpZ25hbGluZ1N0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MzY3MDhEQjEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTQzNjcwOEREMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdS
ZXNvdXJjZU1hc2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM2NzA4REYxMkQ5Q0E0QjAwMDQ0
MjM0IC8qIFJlbmRlclNWR1Jlc291cmNlUGF0dGVybi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTI4
Myw2ICsyOTMyMSw3IEBACiAJCQkJMDg4QTBFMEExMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3Bl
cnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODFERDQ5QzEzQkExQTYwMDBEQzc2MjcgLyogU1ZH
UHJvcGVydHlJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODhBMEUwQjEyNkVGMURCMDA5NzhG
N0EgLyogU1ZHUHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTZEQ0I1MDFF
NzkxMEE2MDAxQjVGODcgLyogSlNSVENTaWduYWxpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDg4QTBFMEMxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5VHJhaXRzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMjIyN0E5QTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEVERTE5RjEyQTUwQjhFMDBCOTU3OTcg
LyogU1ZHUmVjdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDk0Niw2ICszMDk4NSw3IEBACiAJCQkJ
QjJBMDE1QUEwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRTExMkY0NzExRTNBODYxMjAwRDZDREZEIC8qIEdyaWQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRQb3NpdGlvbnNSZXNvbHZl
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTZEQ0I0QjFFNzkxMEE2MDAxQjVGODcgLyogSlNS
VENJY2VDb25uZWN0aW9uU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEyREU3MTcxRTRC
NzQ5QzAwRjlBQ0NGIC8qIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGNTVCM0RCRjEyNTFGMTJEMDAzRUYyNjkgLyogSGlkZGVuSW5wdXRUeXBlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxNUJFMTlCMUQ1NEY2QzEwMEREN0M2OCAvKiBISURHYW1lcGFk
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzA5ODEsNiArMzEwMjEsNyBAQAogCQkJCUQzNTlENzg5
MTI5Q0EyNzEwMDA2RTVEMiAvKiBIVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThFQTc5RjkwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxEaXJlY3RvcnlFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4RUE3Q0IxMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MRGl2
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTZEQ0I0RjFFNzkxMEE2MDAxQjVGODcg
LyogSlNSVENTaWduYWxpbmdTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEVBNzlGNTBB
MTkxNkRGMDBBOEVGNUYgLyogSFRNTERMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5M0YxOUE5MTA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTERvY3VtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTk3N0IzODY2MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MRG9jdW1lbnRQYXJzZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTMyMyw2ICszMTM2NCw3IEBACiAJCQkJOTRFODM5NTUx
REZCMkJDNDAwN0JDNkE3IC8qIEpTQ1NTTmFtZXNwYWNlUnVsZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzQ2QzIwMjBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NQYWdlUnVsZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxNENGN0IzMzA5RjZFQ0Q3MDBFQjM2NjUgLyogSlNDU1NSdWxlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTMxNkRDQjREMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUdh
dGhlcmluZ1N0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDZDMUVFMEMwRERCREYwMDIw
Q0ZDMyAvKiBKU0NTU1J1bGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThEMDVGQTcw
QTIzQjMwMTAwNUU3MjAzIC8qIEpTQ1NTUnVsZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTM5MjI2MkYxMDMyMTA4NDAwNkU3RDVEIC8qIEpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYUVuZHBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYUVuZHBvaW50LmgKaW5kZXggOTRiYmUxMDM2YTY1ZTYzOGI4MDE4YWZhZWU3MDk3NzMxZDdh
ZWJkZC4uMWE0MzU2ZjI2MWZjYWNlNWUzNGE1ZjAyNzg4OGNhNTE0ZWQyYzc0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuaApA
QCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgRXJpY3Nzb24gQUIuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02Niw4
ICs2Nyw2IEBAIHB1YmxpYzoKICAgICAgICAgRmFpbGVkCiAgICAgfTsKIAotICAgIHVzaW5nIElj
ZVRyYW5zcG9ydFN0YXRlID0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZVRyYW5zcG9ydFN0YXRl
OwotCiAgICAgdmlydHVhbCB2b2lkIHNldENvbmZpZ3VyYXRpb24oTWVkaWFFbmRwb2ludENvbmZp
Z3VyYXRpb24mJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlRHRsc0luZm8oKSA9
IDA7CkBAIC05OCw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ290RHRsc0Zp
bmdlcnByaW50KGNvbnN0IFN0cmluZyYgZmluZ2VycHJpbnQsIGNvbnN0IFN0cmluZyYgZmluZ2Vy
cHJpbnRGdW5jdGlvbikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBnb3RJY2VDYW5kaWRhdGUoY29u
c3QgU3RyaW5nJiBtaWQsIEljZUNhbmRpZGF0ZSYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRv
bmVHYXRoZXJpbmdDYW5kaWRhdGVzKGNvbnN0IFN0cmluZyYgbWlkKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIGljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlZChjb25zdCBTdHJpbmcmIG1pZCwgTWVkaWFF
bmRwb2ludDo6SWNlVHJhbnNwb3J0U3RhdGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaWNlVHJh
bnNwb3J0U3RhdGVDaGFuZ2VkKGNvbnN0IFN0cmluZyYgbWlkLCBSVENJY2VUcmFuc3BvcnRTdGF0
ZSkgPSAwOwogCiAgICAgdmlydHVhbCB+TWVkaWFFbmRwb2ludENsaWVudCgpIHsgfQogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9p
bnRDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uLmNwcAppbmRleCBjMmRhMzQ0YWEzMGY5NDI1ZjI2
YjRjNmU0Y2E3MWJmYmY4NmU2ZWU0Li4wNmY4ZWUwMjEwM2UzYTE4NGQwNzJjZTE0MjRjN2E2NGVk
MmFlYTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb24uY3BwCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDcgKzM2LDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1NZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbjo6TWVk
aWFFbmRwb2ludENvbmZpZ3VyYXRpb24oVmVjdG9yPEljZVNlcnZlckluZm8+JiYgaWNlU2VydmVy
cywgSWNlVHJhbnNwb3J0UG9saWN5IGljZVRyYW5zcG9ydFBvbGljeSwgQnVuZGxlUG9saWN5IGJ1
bmRsZVBvbGljeSkKK01lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uOjpNZWRpYUVuZHBvaW50Q29u
ZmlndXJhdGlvbihWZWN0b3I8SWNlU2VydmVySW5mbz4mJiBpY2VTZXJ2ZXJzLCBSVENJY2VUcmFu
c3BvcnRQb2xpY3kgaWNlVHJhbnNwb3J0UG9saWN5LCBSVENCdW5kbGVQb2xpY3kgYnVuZGxlUG9s
aWN5KQogICAgIDogaWNlU2VydmVycyhXVEZNb3ZlKGljZVNlcnZlcnMpKQogICAgICwgaWNlVHJh
bnNwb3J0UG9saWN5KGljZVRyYW5zcG9ydFBvbGljeSkKICAgICAsIGJ1bmRsZVBvbGljeShidW5k
bGVQb2xpY3kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb24uaAppbmRleCA1Yjc0YTI2YTNk
NzUyNjg5NzRhMDlmODA1ZGY1OGFlOTcwN2I5MDQ4Li4zMjIwY2ExYjdlYjIyODgzYjVkMGZmYmI2
OTViNTYzMzcwM2Q2ZTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uLmgKQEAgLTEs
NSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1IEVyaWNzc29uIEFCLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNyArMzMs
NyBAQAogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAKLSNpbmNsdWRlICJQZWVyQ29ubmVjdGlvblN0
YXRlcy5oIgorI2luY2x1ZGUgIlJUQ0VudW1zLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDks
MTQgKzUwLDExIEBAIHN0cnVjdCBNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbiB7CiAgICAgICAg
IEljZVNlcnZlckluZm8oVmVjdG9yPFVSTD4mJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
Jik7CiAgICAgfTsKIAotICAgIHVzaW5nIEljZVRyYW5zcG9ydFBvbGljeSA9IFBlZXJDb25uZWN0
aW9uU3RhdGVzOjpJY2VUcmFuc3BvcnRQb2xpY3k7Ci0gICAgdXNpbmcgQnVuZGxlUG9saWN5ID0g
UGVlckNvbm5lY3Rpb25TdGF0ZXM6OkJ1bmRsZVBvbGljeTsKLQotICAgIE1lZGlhRW5kcG9pbnRD
b25maWd1cmF0aW9uKFZlY3RvcjxJY2VTZXJ2ZXJJbmZvPiYmLCBJY2VUcmFuc3BvcnRQb2xpY3ks
IEJ1bmRsZVBvbGljeSk7CisgICAgTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb24oVmVjdG9yPElj
ZVNlcnZlckluZm8+JiYsIFJUQ0ljZVRyYW5zcG9ydFBvbGljeSwgUlRDQnVuZGxlUG9saWN5KTsK
IAogICAgIFZlY3RvcjxJY2VTZXJ2ZXJJbmZvPiBpY2VTZXJ2ZXJzOwotICAgIEljZVRyYW5zcG9y
dFBvbGljeSBpY2VUcmFuc3BvcnRQb2xpY3k7Ci0gICAgQnVuZGxlUG9saWN5IGJ1bmRsZVBvbGlj
eTsKKyAgICBSVENJY2VUcmFuc3BvcnRQb2xpY3kgaWNlVHJhbnNwb3J0UG9saWN5OworICAgIFJU
Q0J1bmRsZVBvbGljeSBidW5kbGVQb2xpY3k7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29u
bmVjdGlvblN0YXRlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVl
ckNvbm5lY3Rpb25TdGF0ZXMuaAppbmRleCA4YTcxMjQwNzAxODIwMDgxMThhOGJiNDZiMDg0OWFj
ZTdmYjljZjUyLi5hYWU1M2RjMGIwMmJjNDUxOTE5ZjY1ZGViMWZmZTIzMjJiM2NjMjdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlv
blN0YXRlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJD
b25uZWN0aW9uU3RhdGVzLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDE1LCAyMDE2IEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNTQgKzM1LDYzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotbmFtZXNwYWNlIFBlZXJDb25uZWN0aW9uU3RhdGVzIHsKLQotZW51bSBjbGFzcyBTaWdu
YWxpbmdTdGF0ZSB7Ci0gICAgU3RhYmxlID0gMSwKLSAgICBIYXZlTG9jYWxPZmZlciA9IDIsCi0g
ICAgSGF2ZVJlbW90ZU9mZmVyID0gMywKLSAgICBIYXZlTG9jYWxQckFuc3dlciA9IDQsCi0gICAg
SGF2ZVJlbW90ZVByQW5zd2VyID0gNSwKLSAgICBDbG9zZWQgPSA2CitlbnVtIGNsYXNzIFJUQ1Np
Z25hbGluZ1N0YXRlIHsKKyAgICBTdGFibGUsCisgICAgSGF2ZUxvY2FsT2ZmZXIsCisgICAgSGF2
ZVJlbW90ZU9mZmVyLAorICAgIEhhdmVMb2NhbFByYW5zd2VyLAorICAgIEhhdmVSZW1vdGVQcmFu
c3dlciwKKyAgICBDbG9zZWQKIH07CiAKLWVudW0gY2xhc3MgSWNlQ29ubmVjdGlvblN0YXRlIHsK
LSAgICBOZXcgPSAxLAotICAgIENoZWNraW5nID0gMiwKLSAgICBDb25uZWN0ZWQgPSAzLAotICAg
IENvbXBsZXRlZCA9IDQsCi0gICAgRmFpbGVkID0gNSwKLSAgICBEaXNjb25uZWN0ZWQgPSA2LAot
ICAgIENsb3NlZCA9IDcKK2VudW0gY2xhc3MgUlRDSWNlQ29ubmVjdGlvblN0YXRlIHsKKyAgICBO
ZXcsCisgICAgQ2hlY2tpbmcsCisgICAgQ29ubmVjdGVkLAorICAgIENvbXBsZXRlZCwKKyAgICBG
YWlsZWQsCisgICAgRGlzY29ubmVjdGVkLAorICAgIENsb3NlZAogfTsKIAotZW51bSBjbGFzcyBJ
Y2VHYXRoZXJpbmdTdGF0ZSB7Ci0gICAgTmV3ID0gMSwKLSAgICBHYXRoZXJpbmcgPSAyLAotICAg
IENvbXBsZXRlID0gMworZW51bSBjbGFzcyBSVENJY2VHYXRoZXJpbmdTdGF0ZSB7CisgICAgTmV3
LAorICAgIEdhdGhlcmluZywKKyAgICBDb21wbGV0ZQogfTsKIAotZW51bSBjbGFzcyBJY2VUcmFu
c3BvcnRTdGF0ZSB7Ci0gICAgTmV3ID0gMSwKLSAgICBDaGVja2luZyA9IDIsCi0gICAgQ29ubmVj
dGVkID0gMywKLSAgICBDb21wbGV0ZWQgPSA0LAotICAgIEZhaWxlZCA9IDUsCi0gICAgRGlzY29u
bmVjdGVkID0gNiwKLSAgICBDbG9zZWQgPSA3CitlbnVtIGNsYXNzIFJUQ0ljZVRyYW5zcG9ydFN0
YXRlIHsKKyAgICBOZXcsCisgICAgQ2hlY2tpbmcsCisgICAgQ29ubmVjdGVkLAorICAgIENvbXBs
ZXRlZCwKKyAgICBGYWlsZWQsCisgICAgRGlzY29ubmVjdGVkLAorICAgIENsb3NlZAogfTsKIAot
ZW51bSBjbGFzcyBJY2VUcmFuc3BvcnRQb2xpY3kgeworZW51bSBjbGFzcyBSVENJY2VUcmFuc3Bv
cnRQb2xpY3kgewogICAgIFJlbGF5LAogICAgIEFsbAogfTsKIAotZW51bSBjbGFzcyBCdW5kbGVQ
b2xpY3kgeworZW51bSBjbGFzcyBSVENCdW5kbGVQb2xpY3kgewogICAgIEJhbGFuY2VkLAogICAg
IE1heENvbXBhdCwKICAgICBNYXhCdW5kbGUKIH07CiAKKworLy8gRklYTUU6IFJlbW92ZSBvbmNl
IG9sZGVyIGNvZGUgaXMgdXBncmFkZWQKK25hbWVzcGFjZSBQZWVyQ29ubmVjdGlvblN0YXRlcyB7
CisKK3VzaW5nIFNpZ25hbGluZ1N0YXRlID0gUlRDU2lnbmFsaW5nU3RhdGU7Cit1c2luZyBJY2VD
b25uZWN0aW9uU3RhdGUgPSBSVENJY2VDb25uZWN0aW9uU3RhdGU7Cit1c2luZyBJY2VHYXRoZXJp
bmdTdGF0ZSA9IFJUQ0ljZUdhdGhlcmluZ1N0YXRlOwordXNpbmcgSWNlVHJhbnNwb3J0U3RhdGUg
PSBSVENJY2VUcmFuc3BvcnRTdGF0ZTsKK3VzaW5nIEljZVRyYW5zcG9ydFBvbGljeSA9IFJUQ0lj
ZVRyYW5zcG9ydFBvbGljeTsKK3VzaW5nIEJ1bmRsZVBvbGljeSA9IFJUQ0J1bmRsZVBvbGljeTsK
KwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IGM3NWM1NTQ3MjRhMGZkMjAx
MTU5ZThmNjRmMmRlYjJmNTMyZThhMGYuLjA3ZTYwMjEwZDAzZmM1NDJmNzBjZmJhMjdjZWY5NmNh
ODVmNjA4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01l
ZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01l
ZGlhRW5kcG9pbnQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAx
NSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI3NywyNyArMjc4LDI3IEBAIHZvaWQgTW9ja01lZGlhRW5kcG9pbnQ6OnN0
ZXBJY2VUcmFuc3BvcnRTdGF0ZXMoKQogCiAgICAgLy8gU2hvdWxkIGdvIHRvOgogICAgIC8vICdj
aGVja2luZycKLSAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtl
X3BhaXIobV9taWRzWzBdLCBNZWRpYUVuZHBvaW50OjpJY2VUcmFuc3BvcnRTdGF0ZTo6Q2hlY2tp
bmcpKTsKLSAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3Bh
aXIobV9taWRzWzFdLCBNZWRpYUVuZHBvaW50OjpJY2VUcmFuc3BvcnRTdGF0ZTo6Q2hlY2tpbmcp
KTsKLSAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIo
bV9taWRzWzJdLCBNZWRpYUVuZHBvaW50OjpJY2VUcmFuc3BvcnRTdGF0ZTo6Q2hlY2tpbmcpKTsK
KyAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9t
aWRzWzBdLCBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6Q2hlY2tpbmcpKTsKKyAgICBtX2ljZVRyYW5z
cG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9taWRzWzFdLCBSVENJY2VU
cmFuc3BvcnRTdGF0ZTo6Q2hlY2tpbmcpKTsKKyAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdl
cy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9taWRzWzJdLCBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6
Q2hlY2tpbmcpKTsKIAogICAgIC8vICdjb25uZWN0ZWQnCi0gICAgbV9pY2VUcmFuc3BvcnRTdGF0
ZUNoYW5nZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKG1fbWlkc1swXSwgTWVkaWFFbmRwb2ludDo6
SWNlVHJhbnNwb3J0U3RhdGU6OkNvbm5lY3RlZCkpOwotICAgIG1faWNlVHJhbnNwb3J0U3RhdGVD
aGFuZ2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihtX21pZHNbMV0sIE1lZGlhRW5kcG9pbnQ6Oklj
ZVRyYW5zcG9ydFN0YXRlOjpDb21wbGV0ZWQpKTsKLSAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hh
bmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9taWRzWzJdLCBNZWRpYUVuZHBvaW50OjpJY2VU
cmFuc3BvcnRTdGF0ZTo6Q2xvc2VkKSk7CisgICAgbV9pY2VUcmFuc3BvcnRTdGF0ZUNoYW5nZXMu
YXBwZW5kKHN0ZDo6bWFrZV9wYWlyKG1fbWlkc1swXSwgUlRDSWNlVHJhbnNwb3J0U3RhdGU6OkNv
bm5lY3RlZCkpOworICAgIG1faWNlVHJhbnNwb3J0U3RhdGVDaGFuZ2VzLmFwcGVuZChzdGQ6Om1h
a2VfcGFpcihtX21pZHNbMV0sIFJUQ0ljZVRyYW5zcG9ydFN0YXRlOjpDb21wbGV0ZWQpKTsKKyAg
ICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9taWRz
WzJdLCBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6Q2xvc2VkKSk7CiAKICAgICAvLyAnY29tcGxldGVk
JwotICAgIG1faWNlVHJhbnNwb3J0U3RhdGVDaGFuZ2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFpciht
X21pZHNbMF0sIE1lZGlhRW5kcG9pbnQ6OkljZVRyYW5zcG9ydFN0YXRlOjpDb21wbGV0ZWQpKTsK
KyAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9t
aWRzWzBdLCBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6Q29tcGxldGVkKSk7CiAKICAgICAvLyAnZmFp
bGVkJwotICAgIG1faWNlVHJhbnNwb3J0U3RhdGVDaGFuZ2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFp
cihtX21pZHNbMF0sIE1lZGlhRW5kcG9pbnQ6OkljZVRyYW5zcG9ydFN0YXRlOjpGYWlsZWQpKTsK
KyAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9t
aWRzWzBdLCBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6RmFpbGVkKSk7CiAKICAgICAvLyAnZGlzY29u
bmVjdGVkJwotICAgIG1faWNlVHJhbnNwb3J0U3RhdGVDaGFuZ2VzLmFwcGVuZChzdGQ6Om1ha2Vf
cGFpcihtX21pZHNbMV0sIE1lZGlhRW5kcG9pbnQ6OkljZVRyYW5zcG9ydFN0YXRlOjpEaXNjb25u
ZWN0ZWQpKTsKLSAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtl
X3BhaXIobV9taWRzWzBdLCBNZWRpYUVuZHBvaW50OjpJY2VUcmFuc3BvcnRTdGF0ZTo6Q2xvc2Vk
KSk7CisgICAgbV9pY2VUcmFuc3BvcnRTdGF0ZUNoYW5nZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWly
KG1fbWlkc1sxXSwgUlRDSWNlVHJhbnNwb3J0U3RhdGU6OkRpc2Nvbm5lY3RlZCkpOworICAgIG1f
aWNlVHJhbnNwb3J0U3RhdGVDaGFuZ2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihtX21pZHNbMF0s
IFJUQ0ljZVRyYW5zcG9ydFN0YXRlOjpDbG9zZWQpKTsKIAogICAgIC8vICduZXcnCi0gICAgbV9p
Y2VUcmFuc3BvcnRTdGF0ZUNoYW5nZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKG1fbWlkc1sxXSwg
TWVkaWFFbmRwb2ludDo6SWNlVHJhbnNwb3J0U3RhdGU6OkNsb3NlZCkpOworICAgIG1faWNlVHJh
bnNwb3J0U3RhdGVDaGFuZ2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihtX21pZHNbMV0sIFJUQ0lj
ZVRyYW5zcG9ydFN0YXRlOjpDbG9zZWQpKTsKIAogICAgIC8vIFJldmVyc2Ugb3JkZXIgdG8gdXNl
IHRha2VMYXN0KCkgd2hpbGUga2VlcGluZyB0aGUgYWJvdmUgb3JkZXIKICAgICBtX2ljZVRyYW5z
cG9ydFN0YXRlQ2hhbmdlcy5yZXZlcnNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmgKaW5kZXggNzM1OWM4ZDQ4MzUyZjg3MDVjZjM2Mzc0
Y2I2OGY1ZmZhZDUxYjU4Zi4uMTEzNzMwNTUxNDJmYTU5YjZkNmU2MWIyYTJhYmE5MjQ4YWYwOWJj
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRw
b2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9p
bnQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgRXJpY3Nzb24g
QUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zMyw2ICszNCw3IEBACiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAKICNpbmNsdWRlICJNZWRpYUVu
ZHBvaW50LmgiCisjaW5jbHVkZSAiUlRDRW51bXMuaCIKICNpbmNsdWRlICJUaW1lci5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04NSw3ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9y
PEljZUNhbmRpZGF0ZT4gbV9mYWtlSWNlQ2FuZGlkYXRlczsKICAgICBUaW1lciBtX2ljZUNhbmRp
ZGF0ZVRpbWVyOwogCi0gICAgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIE1lZGlhRW5kcG9pbnQ6
OkljZVRyYW5zcG9ydFN0YXRlPj4gbV9pY2VUcmFuc3BvcnRTdGF0ZUNoYW5nZXM7CisgICAgVmVj
dG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFJUQ0ljZVRyYW5zcG9ydFN0YXRlPj4gbV9pY2VUcmFuc3Bv
cnRTdGF0ZUNoYW5nZXM7CiAgICAgVGltZXIgbV9pY2VUcmFuc3BvcnRUaW1lcjsKIAogICAgIFZl
Y3RvcjxTdHJpbmc+IG1fbWlkc09mU291cmNlc1RvVW5tdXRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304558</attachid>
            <date>2017-03-15 15:19:06 -0700</date>
            <delta_ts>2017-03-15 15:48:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169664-20170315151905.patch</filename>
            <type>text/plain</type>
            <size>95117</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzOTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzU2N2QwYzFkNGI4Mjkx
NTY4ZTY5ZTJkZWJiOWI3Y2I5NmRiNjkyMC4uMzBkYzJjNDg2MGQ5MzRlOThmMTk4ZDRjOGViZWVi
MzM0OGM0N2Q0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE3LTAzLTE1ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBGbGF0dGVuIFJUQyBlbnVtIG5hbWlu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5NjY0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGNv
bnNpc3RlbnQgbmFtZXMgb2YgUlRDIGVudW1zIHRocm91Z2hvdXQgV2ViQ29yZS4gVGhpcyBtZWFu
cyBzdXJmYWNpbmcKKyAgICAgICAgSUNFIGVudW1zIG91dCBvZiBQZWVyQ29ubmVjdGlvblN0YXRl
LiBLZWVwIHRoZSBvbGQgbmFtZXMgYXJvdW5kIGZvciBvdGhlcgorICAgICAgICBwb3J0cy4KKwor
ICAgICAgICBBZGQgUlRDSWNlQ29ubmVjdGlvblN0YXRlLCBSVENJY2VHYXRoZXJpbmdTdGF0ZSwg
YW5kIFJUQ1NpZ25hbGluZ1N0YXRlIGVudW1zLgorICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENJY2VDb25uZWN0aW9uU3RhdGUuaDogQWRkZWQuIFRoZSBlbnVtIGlzIGRlZmluZWQg
aW4KKyAgICAgICAgUGVlckNvbm5lY3Rpb25TdGF0ZXMuaCwgc28ganVzdCBpbmNsdWRlIHRoYXQg
ZmlsZS4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNvbm5lY3Rpb25TdGF0
ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlR2F0aGVy
aW5nU3RhdGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VH
YXRoZXJpbmdTdGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU2lnbmFsaW5nU3RhdGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTaWduYWxpbmdTdGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Bl
ZXJDb25uZWN0aW9uU3RhdGVzLmg6IE1vdmUgdGhlIGV4aXN0aW5nIGVudW1zIGludG8KKyAgICAg
ICAgV2ViQ29yZSwgYnV0IGtlZXAgYWxpYXNlcyB0byB0aGUgb2xkIG5hbWVzIHdpdGhpbiB0aGUg
UGVlckNvbm5lY3Rpb25TdGF0ZXMKKyAgICAgICAgbmFtZXNwYWNlLgorCisgICAgICAgIFJlZmFj
dG9yIHRvIHVzZSB0aGUgbmV3IGVudW0gbmFtZXMuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uY3BwOiBSZWZhY3Rvci4KKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5pZGw6IEFkZCBGSVhNRXMgZm9y
IGJyaW5naW5nIHRoaXMgdXAKKyAgICAgICAgdG8gc3BlYy4KKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0ljZVRyYW5zcG9ydC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOiBSZWZhY3RvciB0aGUgdGhyZWUgZnVuY3Rpb25zCisg
ICAgICAgIGJlbG93IHRvIHVzaW5nIHRoZSBlbnVtIGluc3RlYWQgb2YgcmV0dXJuaW5nIHN0cmlu
Z3MuIFRoaXMgYWxsb3dzIHJlbW92ZSBvZgorICAgICAgICB0aGUgaW50ZXJuYWwqIHZlcnNpb25z
IG9mIHRoZXNlIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9u
OjpzaWduYWxpbmdTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29u
bmVjdGlvbjo6aWNlR2F0aGVyaW5nU3RhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UlRDUGVlckNvbm5lY3Rpb246OmljZUNvbm5lY3Rpb25TdGF0ZSk6IERlbGV0ZWQuCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oOiBSZXBsYWNlIGludGVy
bmFsU2lnbmFsaW5nU3RhdGUsCisgICAgICAgIGludGVybmFsSWNlR2F0aGVyaW5nU3RhdGUsIGFu
ZCBpbnRlcm5hbEljZUNvbm5lY3Rpb25TdGF0ZS4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbi5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRp
b24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9NZWRpYUVuZHBvaW50T3dyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhRW5kcG9pbnRPd3I6OnByb2Nlc3NJY2VUcmFuc3BvcnRTdGF0ZUNo
YW5nZSk6CisKIDIwMTctMDMtMTQgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAg
ICAgIENsZWFuIHVwIFJUQ1BlZXJDb25uZWN0aW9uIElETApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCA2NWJlZmJlMmFjZWQxM2Y3NTQ2OGIwNDJlNDZhNDlkYWIxNWIxNTllLi41MWQ3MWEzM2U5YmUy
MWJjOGI5ZmU4NjE3ZDY4ZDZhYmM4ODY3ZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjQx
LDYgKzI0MSw4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50LmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDSWNlQ2FuZGlkYXRlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2Fu
ZGlkYXRlRXZlbnQuaWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDb25uZWN0aW9u
U3RhdGUuaWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VHYXRoZXJpbmdTdGF0ZS5p
ZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZVNlcnZlci5pZGwKICAgICBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ09mZmVyQW5zd2VyT3B0aW9ucy5pZGwKICAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ09mZmVyT3B0aW9ucy5pZGwKQEAgLTI1MCw2ICsyNTIsNyBAQCBzZXQoV2ViQ29y
ZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNj
ZWl2ZXIuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2NlaXZlckRpcmVj
dGlvbi5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5p
ZGwKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1NpZ25hbGluZ1N0YXRlLmlkbAogICAgIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENUcmFja0V2ZW50LmlkbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCBlNmUxMDU5NTE5YjliMjAzZjE2YmM4ZGRhNzRkMzE4NjRjMjZlNGZkLi40YWI2NDBkMDNlOWQ5
NjgyMTA3OTc2YzFkZGMyYWUzOGFmYzIwNzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTE4NSw2ICsxODUsOCBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsRXZlbnQuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZUV2ZW50LmlkbCBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5p
ZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VHYXRoZXJpbmdT
dGF0ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VTZXJ2
ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDT2ZmZXJBbnN3
ZXJPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ09m
ZmVyT3B0aW9ucy5pZGwgXApAQCAtMTk0LDYgKzE5Niw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNjZWl2ZXIuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNjZWl2ZXJE
aXJlY3Rpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1NpZ25hbGluZ1N0YXRlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1RyYWNrRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbm90aWZpY2F0
aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29u
bmVjdGlvbi5jcHAKaW5kZXggNmFlOGExN2Q0Y2ZmOWFmN2JjODE4NzYyM2JkODYyZjJlNWZkMTE5
Yy4uZmJhMzhjYmRlMWYxZDI4MDMwYTI4ZjkyMjJhYWIxMGU0NjhiNzNjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFF
bmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTUgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw5ICszMCw5IEBACiAgKi8KIAogI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oIgogCiAjaWYg
RU5BQkxFKFdFQl9SVEMpCi0jaW5jbHVkZSAiTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmgi
CiAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSlNSVENTZXNzaW9uRGVzY3Jp
cHRpb24uaCIKQEAgLTU3LDcgKzU4LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcg
bmFtZXNwYWNlIFBlZXJDb25uZWN0aW9uOwotdXNpbmcgbmFtZXNwYWNlIFBlZXJDb25uZWN0aW9u
U3RhdGVzOwogCiB1c2luZyBNZWRpYURlc2NyaXB0aW9uVmVjdG9yID0gVmVjdG9yPFBlZXJNZWRp
YURlc2NyaXB0aW9uPjsKIHVzaW5nIFJ0cFRyYW5zY2VpdmVyVmVjdG9yID0gVmVjdG9yPFJlZlB0
cjxSVENSdHBUcmFuc2NlaXZlcj4+OwpAQCAtMzMwLDcgKzMzMCw3IEBAIHZvaWQgTWVkaWFFbmRw
b2ludFBlZXJDb25uZWN0aW9uOjpkb1NldExvY2FsRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uJiBkCiAKIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpzZXRMb2NhbERl
c2NyaXB0aW9uVGFzayhSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiYmIGRlc2NyaXB0aW9u
KQogewotICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9
PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLnNpZ25h
bGluZ1N0YXRlKCkgPT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgYXV0byByZXN1bHQgPSBNZWRpYUVuZHBvaW50U2Vzc2lvbkRlc2NyaXB0aW9uOjpj
cmVhdGUoV1RGTW92ZShkZXNjcmlwdGlvbiksICptX3NkcFByb2Nlc3Nvcik7CkBAIC0zNTEsMTEg
KzM1MSwxMSBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6c2V0TG9jYWxEZXNj
cmlwdGlvblRhc2soUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcgogICAgICAgICBNZWRpYUVuZHBvaW50
OjpVcGRhdGVSZXN1bHQgcmVzdWx0ID0gbV9tZWRpYUVuZHBvaW50LT51cGRhdGVSZWNlaXZlQ29u
ZmlndXJhdGlvbihuZXdEZXNjcmlwdGlvbi0+Y29uZmlndXJhdGlvbigpLCBpc0luaXRpYXRvcik7
CiAKICAgICAgICAgaWYgKHJlc3VsdCA9PSBNZWRpYUVuZHBvaW50OjpVcGRhdGVSZXN1bHQ6OlN1
Y2Nlc3NXaXRoSWNlUmVzdGFydCkgewotICAgICAgICAgICAgaWYgKG1fcGVlckNvbm5lY3Rpb24u
aW50ZXJuYWxJY2VHYXRoZXJpbmdTdGF0ZSgpICE9IEljZUdhdGhlcmluZ1N0YXRlOjpHYXRoZXJp
bmcpCi0gICAgICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbi51cGRhdGVJY2VHYXRoZXJpbmdT
dGF0ZShJY2VHYXRoZXJpbmdTdGF0ZTo6R2F0aGVyaW5nKTsKKyAgICAgICAgICAgIGlmIChtX3Bl
ZXJDb25uZWN0aW9uLmljZUdhdGhlcmluZ1N0YXRlKCkgIT0gUlRDSWNlR2F0aGVyaW5nU3RhdGU6
OkdhdGhlcmluZykKKyAgICAgICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uLnVwZGF0ZUljZUdh
dGhlcmluZ1N0YXRlKFJUQ0ljZUdhdGhlcmluZ1N0YXRlOjpHYXRoZXJpbmcpOwogCi0gICAgICAg
ICAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbEljZUNvbm5lY3Rpb25TdGF0ZSgpICE9
IEljZUNvbm5lY3Rpb25TdGF0ZTo6Q29tcGxldGVkKQotICAgICAgICAgICAgICAgIG1fcGVlckNv
bm5lY3Rpb24udXBkYXRlSWNlQ29ubmVjdGlvblN0YXRlKEljZUNvbm5lY3Rpb25TdGF0ZTo6Q29u
bmVjdGVkKTsKKyAgICAgICAgICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmljZUNvbm5lY3Rpb25T
dGF0ZSgpICE9IFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZTo6Q29tcGxldGVkKQorICAgICAgICAgICAg
ICAgIG1fcGVlckNvbm5lY3Rpb24udXBkYXRlSWNlQ29ubmVjdGlvblN0YXRlKFJUQ0ljZUNvbm5l
Y3Rpb25TdGF0ZTo6Q29ubmVjdGVkKTsKIAogICAgICAgICAgICAgTE9HX0VSUk9SKCJJQ0UgcmVz
dGFydCBpcyBub3QgaW1wbGVtZW50ZWQiKTsKICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7
CkBAIC0zODgsMTMgKzM4OCwxMyBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6
c2V0TG9jYWxEZXNjcmlwdGlvblRhc2soUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcgogICAgIGlmICgh
aGFzVW5hc3NvY2lhdGVkVHJhbnNjZWl2ZXJzKHRyYW5zY2VpdmVycykpCiAgICAgICAgIGNsZWFy
TmVnb3RpYXRpb25OZWVkZWRTdGF0ZSgpOwogCi0gICAgU2lnbmFsaW5nU3RhdGUgbmV3U2lnbmFs
aW5nU3RhdGU7CisgICAgUlRDU2lnbmFsaW5nU3RhdGUgbmV3U2lnbmFsaW5nU3RhdGU7CiAKICAg
ICAvLyBVcGRhdGUgc3RhdGUgYW5kIGxvY2FsIGRlc2NyaXB0aW9ucyBhY2NvcmRpbmcgdG8gc2V0
TG9jYWwvUmVtb3RlRGVzY3JpcHRpb24gcHJvY2Vzc2luZyBtb2RlbAogICAgIHN3aXRjaCAobmV3
RGVzY3JpcHRpb24tPnR5cGUoKSkgewogICAgIGNhc2UgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpT
ZHBUeXBlOjpPZmZlcjoKICAgICAgICAgbV9wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiA9IFdURk1v
dmUobmV3RGVzY3JpcHRpb24pOwotICAgICAgICBuZXdTaWduYWxpbmdTdGF0ZSA9IFNpZ25hbGlu
Z1N0YXRlOjpIYXZlTG9jYWxPZmZlcjsKKyAgICAgICAgbmV3U2lnbmFsaW5nU3RhdGUgPSBSVENT
aWduYWxpbmdTdGF0ZTo6SGF2ZUxvY2FsT2ZmZXI7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2Fz
ZSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6OkFuc3dlcjoKQEAgLTQwMiwyNCArNDAy
LDI0IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpzZXRMb2NhbERlc2NyaXB0
aW9uVGFzayhSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyCiAgICAgICAgIG1fY3VycmVudFJlbW90ZURl
c2NyaXB0aW9uID0gbV9wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb247CiAgICAgICAgIG1fcGVuZGlu
Z0xvY2FsRGVzY3JpcHRpb24gPSBudWxscHRyOwogICAgICAgICBtX3BlbmRpbmdSZW1vdGVEZXNj
cmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgIG5ld1NpZ25hbGluZ1N0YXRlID0gU2lnbmFsaW5n
U3RhdGU6OlN0YWJsZTsKKyAgICAgICAgbmV3U2lnbmFsaW5nU3RhdGUgPSBSVENTaWduYWxpbmdT
dGF0ZTo6U3RhYmxlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uOjpTZHBUeXBlOjpSb2xsYmFjazoKICAgICAgICAgbV9wZW5kaW5nTG9jYWxEZXNjcmlw
dGlvbiA9IG51bGxwdHI7Ci0gICAgICAgIG5ld1NpZ25hbGluZ1N0YXRlID0gU2lnbmFsaW5nU3Rh
dGU6OlN0YWJsZTsKKyAgICAgICAgbmV3U2lnbmFsaW5nU3RhdGUgPSBSVENTaWduYWxpbmdTdGF0
ZTo6U3RhYmxlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uOjpTZHBUeXBlOjpQcmFuc3dlcjoKICAgICAgICAgbV9wZW5kaW5nTG9jYWxEZXNjcmlwdGlv
biA9IFdURk1vdmUobmV3RGVzY3JpcHRpb24pOwotICAgICAgICBuZXdTaWduYWxpbmdTdGF0ZSA9
IFNpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxQckFuc3dlcjsKKyAgICAgICAgbmV3U2lnbmFsaW5n
U3RhdGUgPSBSVENTaWduYWxpbmdTdGF0ZTo6SGF2ZUxvY2FsUHJhbnN3ZXI7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIHVwZGF0ZVNpZ25hbGluZ1N0YXRlKG5ld1NpZ25hbGluZ1N0YXRl
KTsKIAotICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmludGVybmFsSWNlR2F0aGVyaW5nU3RhdGUo
KSA9PSBJY2VHYXRoZXJpbmdTdGF0ZTo6TmV3ICYmIG1lZGlhRGVzY3JpcHRpb25zLnNpemUoKSkK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbi51cGRhdGVJY2VHYXRoZXJpbmdTdGF0ZShJY2VHYXRo
ZXJpbmdTdGF0ZTo6R2F0aGVyaW5nKTsKKyAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5pY2VHYXRo
ZXJpbmdTdGF0ZSgpID09IFJUQ0ljZUdhdGhlcmluZ1N0YXRlOjpOZXcgJiYgbWVkaWFEZXNjcmlw
dGlvbnMuc2l6ZSgpKQorICAgICAgICBtX3BlZXJDb25uZWN0aW9uLnVwZGF0ZUljZUdhdGhlcmlu
Z1N0YXRlKFJUQ0ljZUdhdGhlcmluZ1N0YXRlOjpHYXRoZXJpbmcpOwogCiAgICAgbWFya0FzTmVl
ZGluZ05lZ290aWF0aW9uKCk7CiAgICAgc2V0TG9jYWxEZXNjcmlwdGlvblN1Y2NlZWRlZCgpOwpA
QCAtNTUyLDEzICs1NTIsMTMgQEAgdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnNl
dFJlbW90ZURlc2NyaXB0aW9uVGFzayhSZWZQdHI8UlRDU2Vzc2lvbkRlc2MKICAgICBmb3IgKGF1
dG8mIGV2ZW50IDogbGVnYWN5TWVkaWFTdHJlYW1FdmVudHMpCiAgICAgICAgIG1fcGVlckNvbm5l
Y3Rpb24uZmlyZUV2ZW50KCpldmVudCk7CiAKLSAgICBTaWduYWxpbmdTdGF0ZSBuZXdTaWduYWxp
bmdTdGF0ZTsKKyAgICBSVENTaWduYWxpbmdTdGF0ZSBuZXdTaWduYWxpbmdTdGF0ZTsKIAogICAg
IC8vIFVwZGF0ZSBzdGF0ZSBhbmQgbG9jYWwgZGVzY3JpcHRpb25zIGFjY29yZGluZyB0byBzZXRM
b2NhbC9SZW1vdGVEZXNjcmlwdGlvbiBwcm9jZXNzaW5nIG1vZGVsCiAgICAgc3dpdGNoIChuZXdE
ZXNjcmlwdGlvbi0+dHlwZSgpKSB7CiAgICAgY2FzZSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNk
cFR5cGU6Ok9mZmVyOgogICAgICAgICBtX3BlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiA9IFdURk1v
dmUobmV3RGVzY3JpcHRpb24pOwotICAgICAgICBuZXdTaWduYWxpbmdTdGF0ZSA9IFNpZ25hbGlu
Z1N0YXRlOjpIYXZlUmVtb3RlT2ZmZXI7CisgICAgICAgIG5ld1NpZ25hbGluZ1N0YXRlID0gUlRD
U2lnbmFsaW5nU3RhdGU6OkhhdmVSZW1vdGVPZmZlcjsKICAgICAgICAgYnJlYWs7CiAKICAgICBj
YXNlIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2RwVHlwZTo6QW5zd2VyOgpAQCAtNTY2LDE3ICs1
NjYsMTcgQEAgdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnNldFJlbW90ZURlc2Ny
aXB0aW9uVGFzayhSZWZQdHI8UlRDU2Vzc2lvbkRlc2MKICAgICAgICAgbV9jdXJyZW50TG9jYWxE
ZXNjcmlwdGlvbiA9IG1fcGVuZGluZ0xvY2FsRGVzY3JpcHRpb247CiAgICAgICAgIG1fcGVuZGlu
Z1JlbW90ZURlc2NyaXB0aW9uID0gbnVsbHB0cjsKICAgICAgICAgbV9wZW5kaW5nTG9jYWxEZXNj
cmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgIG5ld1NpZ25hbGluZ1N0YXRlID0gU2lnbmFsaW5n
U3RhdGU6OlN0YWJsZTsKKyAgICAgICAgbmV3U2lnbmFsaW5nU3RhdGUgPSBSVENTaWduYWxpbmdT
dGF0ZTo6U3RhYmxlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uOjpTZHBUeXBlOjpSb2xsYmFjazoKICAgICAgICAgbV9wZW5kaW5nUmVtb3RlRGVzY3Jp
cHRpb24gPSBudWxscHRyOwotICAgICAgICBuZXdTaWduYWxpbmdTdGF0ZSA9IFNpZ25hbGluZ1N0
YXRlOjpTdGFibGU7CisgICAgICAgIG5ld1NpZ25hbGluZ1N0YXRlID0gUlRDU2lnbmFsaW5nU3Rh
dGU6OlN0YWJsZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbjo6U2RwVHlwZTo6UHJhbnN3ZXI6CiAgICAgICAgIG1fcGVuZGluZ1JlbW90ZURlc2NyaXB0
aW9uID0gV1RGTW92ZShuZXdEZXNjcmlwdGlvbik7Ci0gICAgICAgIG5ld1NpZ25hbGluZ1N0YXRl
ID0gU2lnbmFsaW5nU3RhdGU6OkhhdmVSZW1vdGVQckFuc3dlcjsKKyAgICAgICAgbmV3U2lnbmFs
aW5nU3RhdGUgPSBSVENTaWduYWxpbmdTdGF0ZTo6SGF2ZVJlbW90ZVByYW5zd2VyOwogICAgICAg
ICBicmVhazsKICAgICB9CiAKQEAgLTcxNiw3ICs3MTYsNyBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQ
ZWVyQ29ubmVjdGlvbjo6cmVwbGFjZVRyYWNrKFJUQ1J0cFNlbmRlciYgc2VuZGVyLCBSZWY8TWVk
aWFTdAogCiB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6cmVwbGFjZVRyYWNrVGFz
ayhSVENSdHBTZW5kZXImIHNlbmRlciwgY29uc3QgU3RyaW5nJiBtaWQsIFJlZjxNZWRpYVN0cmVh
bVRyYWNrPiYmIHdpdGhUcmFjaywgRE9NUHJvbWlzZTx2b2lkPiYgcHJvbWlzZSkKIHsKLSAgICBp
ZiAobV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gU2lnbmFsaW5n
U3RhdGU6OkNsb3NlZCkKKyAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5zaWduYWxpbmdTdGF0ZSgp
ID09IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1f
bWVkaWFFbmRwb2ludC0+cmVwbGFjZVNlbmRTb3VyY2Uod2l0aFRyYWNrLT5zb3VyY2UoKSwgbWlk
KTsKQEAgLTc5NSwxOCArNzk1LDE4IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9u
Ojpkb25lR2F0aGVyaW5nQ2FuZGlkYXRlcyhjb25zdCBTdHJpbmcmIG1pZCkKICAgICBSVENSdHBU
cmFuc2NlaXZlciogbm90aWZ5aW5nVHJhbnNjZWl2ZXIgPSBtYXRjaFRyYW5zY2VpdmVyQnlNaWQo
dHJhbnNjZWl2ZXJzLCBtaWQpOwogICAgIEFTU0VSVChub3RpZnlpbmdUcmFuc2NlaXZlcik7CiAK
LSAgICBub3RpZnlpbmdUcmFuc2NlaXZlci0+aWNlVHJhbnNwb3J0KCkuc2V0R2F0aGVyaW5nU3Rh
dGUoUlRDSWNlVHJhbnNwb3J0OjpHYXRoZXJpbmdTdGF0ZTo6Q29tcGxldGUpOworICAgIG5vdGlm
eWluZ1RyYW5zY2VpdmVyLT5pY2VUcmFuc3BvcnQoKS5zZXRHYXRoZXJpbmdTdGF0ZShSVENJY2VH
YXRoZXJpbmdTdGF0ZTo6Q29tcGxldGUpOwogCiAgICAgLy8gRG9uJ3Qgbm90aWZ5IHRoZSBzY3Jp
cHQgaWYgdGhlcmUgYXJlIHRyYW5zY2VpdmVycyBzdGlsbCBnYXRoZXJpbmcuCiAgICAgUlRDUnRw
VHJhbnNjZWl2ZXIqIHN0aWxsR2F0aGVyaW5nVHJhbnNjZWl2ZXIgPSBtYXRjaFRyYW5zY2VpdmVy
KHRyYW5zY2VpdmVycywgW10gKFJUQ1J0cFRyYW5zY2VpdmVyJiBjdXJyZW50KSB7CiAgICAgICAg
IHJldHVybiAhY3VycmVudC5zdG9wcGVkKCkgJiYgIWN1cnJlbnQubWlkKCkuaXNOdWxsKCkKLSAg
ICAgICAgICAgICYmIGN1cnJlbnQuaWNlVHJhbnNwb3J0KCkuZ2F0aGVyaW5nU3RhdGUoKSAhPSBS
VENJY2VUcmFuc3BvcnQ6OkdhdGhlcmluZ1N0YXRlOjpDb21wbGV0ZTsKKyAgICAgICAgICAgICYm
IGN1cnJlbnQuaWNlVHJhbnNwb3J0KCkuZ2F0aGVyaW5nU3RhdGUoKSAhPSBSVENJY2VHYXRoZXJp
bmdTdGF0ZTo6Q29tcGxldGU7CiAgICAgfSk7CiAgICAgaWYgKCFzdGlsbEdhdGhlcmluZ1RyYW5z
Y2VpdmVyKQogICAgICAgICBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRvbmVHYXRoZXJpbmdDYW5k
aWRhdGVzKCk7CiB9CiAKLXN0YXRpYyBSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRlIGRl
cml2ZUFnZ3JlZ2F0ZWRJY2VDb25uZWN0aW9uU3RhdGUoY29uc3QgVmVjdG9yPFJUQ0ljZVRyYW5z
cG9ydDo6VHJhbnNwb3J0U3RhdGU+JiBzdGF0ZXMpCitzdGF0aWMgUlRDSWNlVHJhbnNwb3J0U3Rh
dGUgZGVyaXZlQWdncmVnYXRlZEljZUNvbm5lY3Rpb25TdGF0ZShjb25zdCBWZWN0b3I8UlRDSWNl
VHJhbnNwb3J0U3RhdGU+JiBzdGF0ZXMpCiB7CiAgICAgdW5zaWduZWQgbmV3Q291bnQgPSAwOwog
ICAgIHVuc2lnbmVkIGNoZWNraW5nQ291bnQgPSAwOwpAQCAtODE4LDU2ICs4MTgsNzAgQEAgc3Rh
dGljIFJUQ0ljZVRyYW5zcG9ydDo6VHJhbnNwb3J0U3RhdGUgZGVyaXZlQWdncmVnYXRlZEljZUNv
bm5lY3Rpb25TdGF0ZShjb25zdAogCiAgICAgZm9yIChhdXRvJiBzdGF0ZSA6IHN0YXRlcykgewog
ICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7Ci0gICAgICAgIGNhc2UgUlRDSWNlVHJhbnNwb3J0OjpU
cmFuc3BvcnRTdGF0ZTo6TmV3OiArK25ld0NvdW50OyBicmVhazsKLSAgICAgICAgY2FzZSBSVENJ
Y2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRlOjpDaGVja2luZzogKytjaGVja2luZ0NvdW50OyBi
cmVhazsKLSAgICAgICAgY2FzZSBSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRlOjpDb25u
ZWN0ZWQ6ICsrY29ubmVjdGVkQ291bnQ7IGJyZWFrOwotICAgICAgICBjYXNlIFJUQ0ljZVRyYW5z
cG9ydDo6VHJhbnNwb3J0U3RhdGU6OkNvbXBsZXRlZDogKytjb21wbGV0ZWRDb3VudDsgYnJlYWs7
Ci0gICAgICAgIGNhc2UgUlRDSWNlVHJhbnNwb3J0OjpUcmFuc3BvcnRTdGF0ZTo6RmFpbGVkOiAr
K2ZhaWxlZENvdW50OyBicmVhazsKLSAgICAgICAgY2FzZSBSVENJY2VUcmFuc3BvcnQ6OlRyYW5z
cG9ydFN0YXRlOjpEaXNjb25uZWN0ZWQ6ICsrZGlzY29ubmVjdGVkQ291bnQ7IGJyZWFrOwotICAg
ICAgICBjYXNlIFJUQ0ljZVRyYW5zcG9ydDo6VHJhbnNwb3J0U3RhdGU6OkNsb3NlZDogKytjbG9z
ZWRDb3VudDsgYnJlYWs7CisgICAgICAgIGNhc2UgUlRDSWNlVHJhbnNwb3J0U3RhdGU6Ok5ldzoK
KyAgICAgICAgICAgICsrbmV3Q291bnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6Q2hlY2tpbmc6CisgICAgICAgICAgICArK2NoZWNraW5n
Q291bnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSVENJY2VUcmFuc3BvcnRT
dGF0ZTo6Q29ubmVjdGVkOgorICAgICAgICAgICAgKytjb25uZWN0ZWRDb3VudDsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIFJUQ0ljZVRyYW5zcG9ydFN0YXRlOjpDb21wbGV0ZWQ6
CisgICAgICAgICAgICArK2NvbXBsZXRlZENvdW50OworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgUlRDSWNlVHJhbnNwb3J0U3RhdGU6OkZhaWxlZDoKKyAgICAgICAgICAgICsrZmFp
bGVkQ291bnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSVENJY2VUcmFuc3Bv
cnRTdGF0ZTo6RGlzY29ubmVjdGVkOgorICAgICAgICAgICAgKytkaXNjb25uZWN0ZWRDb3VudDsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJUQ0ljZVRyYW5zcG9ydFN0YXRlOjpD
bG9zZWQ6CisgICAgICAgICAgICArK2Nsb3NlZENvdW50OworICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICB9CiAKICAgICAvLyBUaGUgYWdncmVnYXRlZCBSVENJY2VDb25uZWN0aW9u
U3RhdGUgaXMgZGVyaXZlZCBmcm9tIHRoZSBSVENJY2VUcmFuc3BvcnRTdGF0ZSBvZiBhbGwgUlRD
SWNlVHJhbnNwb3J0cy4KICAgICBpZiAoKG5ld0NvdW50ID4gMCAmJiAhY2hlY2tpbmdDb3VudCAm
JiAhZmFpbGVkQ291bnQgJiYgIWRpc2Nvbm5lY3RlZENvdW50KSB8fCAoY2xvc2VkQ291bnQgPT0g
c3RhdGVzLnNpemUoKSkpCi0gICAgICAgIHJldHVybiBSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9y
dFN0YXRlOjpOZXc7CisgICAgICAgIHJldHVybiBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6TmV3Owog
CiAgICAgaWYgKGNoZWNraW5nQ291bnQgPiAwICYmICFmYWlsZWRDb3VudCAmJiAhZGlzY29ubmVj
dGVkQ291bnQpCi0gICAgICAgIHJldHVybiBSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRl
OjpDaGVja2luZzsKKyAgICAgICAgcmV0dXJuIFJUQ0ljZVRyYW5zcG9ydFN0YXRlOjpDaGVja2lu
ZzsKIAogICAgIGlmICgoY29ubmVjdGVkQ291bnQgKyBjb21wbGV0ZWRDb3VudCArIGNsb3NlZENv
dW50KSA9PSBzdGF0ZXMuc2l6ZSgpICYmIGNvbm5lY3RlZENvdW50ID4gMCkKLSAgICAgICAgcmV0
dXJuIFJUQ0ljZVRyYW5zcG9ydDo6VHJhbnNwb3J0U3RhdGU6OkNvbm5lY3RlZDsKKyAgICAgICAg
cmV0dXJuIFJUQ0ljZVRyYW5zcG9ydFN0YXRlOjpDb25uZWN0ZWQ7CiAKICAgICBpZiAoKGNvbXBs
ZXRlZENvdW50ICsgY2xvc2VkQ291bnQpID09IHN0YXRlcy5zaXplKCkgJiYgY29tcGxldGVkQ291
bnQgPiAwKQotICAgICAgICByZXR1cm4gUlRDSWNlVHJhbnNwb3J0OjpUcmFuc3BvcnRTdGF0ZTo6
Q29tcGxldGVkOworICAgICAgICByZXR1cm4gUlRDSWNlVHJhbnNwb3J0U3RhdGU6OkNvbXBsZXRl
ZDsKIAogICAgIGlmIChmYWlsZWRDb3VudCA+IDApCi0gICAgICAgIHJldHVybiBSVENJY2VUcmFu
c3BvcnQ6OlRyYW5zcG9ydFN0YXRlOjpGYWlsZWQ7CisgICAgICAgIHJldHVybiBSVENJY2VUcmFu
c3BvcnRTdGF0ZTo6RmFpbGVkOwogCiAgICAgaWYgKGRpc2Nvbm5lY3RlZENvdW50ID4gMCkgLy8g
QW55IGZhaWxlZCBjYXVnaHQgYWJvdmUuCi0gICAgICAgIHJldHVybiBSVENJY2VUcmFuc3BvcnQ6
OlRyYW5zcG9ydFN0YXRlOjpEaXNjb25uZWN0ZWQ7CisgICAgICAgIHJldHVybiBSVENJY2VUcmFu
c3BvcnRTdGF0ZTo6RGlzY29ubmVjdGVkOwogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgcmV0dXJuIFJUQ0ljZVRyYW5zcG9ydDo6VHJhbnNwb3J0U3RhdGU6Ok5ldzsKKyAgICByZXR1
cm4gUlRDSWNlVHJhbnNwb3J0U3RhdGU6Ok5ldzsKIH0KIAotdm9pZCBNZWRpYUVuZHBvaW50UGVl
ckNvbm5lY3Rpb246OmljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlZChjb25zdCBTdHJpbmcmIG1pZCwg
TWVkaWFFbmRwb2ludDo6SWNlVHJhbnNwb3J0U3RhdGUgbWVkaWFFbmRwb2ludEljZVRyYW5zcG9y
dFN0YXRlKQordm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmljZVRyYW5zcG9ydFN0
YXRlQ2hhbmdlZChjb25zdCBTdHJpbmcmIG1pZCwgUlRDSWNlVHJhbnNwb3J0U3RhdGUgbWVkaWFF
bmRwb2ludEljZVRyYW5zcG9ydFN0YXRlKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAKICAgICBSVENSdHBUcmFuc2NlaXZlciogdHJhbnNjZWl2ZXIgPSBtYXRjaFRyYW5zY2VpdmVy
QnlNaWQobV9wZWVyQ29ubmVjdGlvbi5nZXRUcmFuc2NlaXZlcnMoKSwgbWlkKTsKICAgICBBU1NF
UlQodHJhbnNjZWl2ZXIpOwogCi0gICAgUlRDSWNlVHJhbnNwb3J0OjpUcmFuc3BvcnRTdGF0ZSB0
cmFuc3BvcnRTdGF0ZSA9IHN0YXRpY19jYXN0PFJUQ0ljZVRyYW5zcG9ydDo6VHJhbnNwb3J0U3Rh
dGU+KG1lZGlhRW5kcG9pbnRJY2VUcmFuc3BvcnRTdGF0ZSk7CisgICAgUlRDSWNlVHJhbnNwb3J0
U3RhdGUgdHJhbnNwb3J0U3RhdGUgPSBzdGF0aWNfY2FzdDxSVENJY2VUcmFuc3BvcnRTdGF0ZT4o
bWVkaWFFbmRwb2ludEljZVRyYW5zcG9ydFN0YXRlKTsKICAgICB0cmFuc2NlaXZlci0+aWNlVHJh
bnNwb3J0KCkuc2V0VHJhbnNwb3J0U3RhdGUodHJhbnNwb3J0U3RhdGUpOwogCiAgICAgLy8gRGV0
ZXJtaW5lIGlmIHRoZSBzY3JpcHQgbmVlZHMgdG8gYmUgbm90aWZpZWQuCi0gICAgVmVjdG9yPFJU
Q0ljZVRyYW5zcG9ydDo6VHJhbnNwb3J0U3RhdGU+IHRyYW5zcG9ydFN0YXRlczsKKyAgICBWZWN0
b3I8UlRDSWNlVHJhbnNwb3J0U3RhdGU+IHRyYW5zcG9ydFN0YXRlczsKICAgICBmb3IgKGF1dG8m
IHRyYW5zY2VpdmVyIDogbV9wZWVyQ29ubmVjdGlvbi5nZXRUcmFuc2NlaXZlcnMoKSkKICAgICAg
ICAgdHJhbnNwb3J0U3RhdGVzLmFwcGVuZCh0cmFuc2NlaXZlci0+aWNlVHJhbnNwb3J0KCkudHJh
bnNwb3J0U3RhdGUoKSk7CiAKLSAgICBSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRlIGRl
cml2ZWRTdGF0ZSA9IGRlcml2ZUFnZ3JlZ2F0ZWRJY2VDb25uZWN0aW9uU3RhdGUodHJhbnNwb3J0
U3RhdGVzKTsKLSAgICBtX3BlZXJDb25uZWN0aW9uLnVwZGF0ZUljZUNvbm5lY3Rpb25TdGF0ZShz
dGF0aWNfY2FzdDxJY2VDb25uZWN0aW9uU3RhdGU+KGRlcml2ZWRTdGF0ZSkpOworICAgIFJUQ0lj
ZVRyYW5zcG9ydFN0YXRlIGRlcml2ZWRTdGF0ZSA9IGRlcml2ZUFnZ3JlZ2F0ZWRJY2VDb25uZWN0
aW9uU3RhdGUodHJhbnNwb3J0U3RhdGVzKTsKKyAgICBtX3BlZXJDb25uZWN0aW9uLnVwZGF0ZUlj
ZUNvbm5lY3Rpb25TdGF0ZShzdGF0aWNfY2FzdDxSVENJY2VDb25uZWN0aW9uU3RhdGU+KGRlcml2
ZWRTdGF0ZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVl
ckNvbm5lY3Rpb24uaAppbmRleCBmZjQ1MjhiMzhiNDA3YzAyYTI0ZmJkMWM5Y2JiNmViMjNiNGUx
N2FkLi4zMDJlNWNmZjk0ODUyYzJjZTA0YjU3YjI2YjhkYWVjMTc0MDc5NTA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29u
bmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFF
bmRwb2ludFBlZXJDb25uZWN0aW9uLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDE1LCAyMDE2IEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzUsNyBAQAogCiAjaW5jbHVkZSAiTWVk
aWFFbmRwb2ludC5oIgogI2luY2x1ZGUgIlBlZXJDb25uZWN0aW9uQmFja2VuZC5oIgorI2luY2x1
ZGUgIlJUQ0VudW1zLmgiCiAjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmgiCiAjaW5j
bHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAKQEAgLTk3LDcgKzk5LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGdvdER0bHNGaW5nZXJwcmludChjb25zdCBTdHJpbmcmIGZpbmdlcnByaW50LCBjb25zdCBT
dHJpbmcmIGZpbmdlcnByaW50RnVuY3Rpb24pIGZpbmFsOwogICAgIHZvaWQgZ290SWNlQ2FuZGlk
YXRlKGNvbnN0IFN0cmluZyYgbWlkLCBJY2VDYW5kaWRhdGUmJikgZmluYWw7CiAgICAgdm9pZCBk
b25lR2F0aGVyaW5nQ2FuZGlkYXRlcyhjb25zdCBTdHJpbmcmIG1pZCkgZmluYWw7Ci0gICAgdm9p
ZCBpY2VUcmFuc3BvcnRTdGF0ZUNoYW5nZWQoY29uc3QgU3RyaW5nJiBtaWQsIE1lZGlhRW5kcG9p
bnQ6OkljZVRyYW5zcG9ydFN0YXRlKSBmaW5hbDsKKyAgICB2b2lkIGljZVRyYW5zcG9ydFN0YXRl
Q2hhbmdlZChjb25zdCBTdHJpbmcmIG1pZCwgUlRDSWNlVHJhbnNwb3J0U3RhdGUpIGZpbmFsOwog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gY3JlYXRlRGF0YUNo
YW5uZWxIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFJUQ0RhdGFDaGFubmVsSW5pdCYpIGZp
bmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Bl
ZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKaW5kZXggZDc3NWZlODgzMGQ4Y2IxOWQ3YTY2
MzU4ZmRhZjA4N2RkZGYyMWVhMy4uNGUyNWY4ZmRmZWZhNTViZGFiNDE2MDc3MzY5Njg0MGJhZTJl
YmFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVy
Q29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSU5DLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVPZmZlcihSVENPZmZl
ck9wdGlvbnMmJiBvcHRpb25zLCBQZWVyQ29ubmVjdGlvbjo6U2Vzc2lvbkRlc2NyaXB0aW9uUHJv
bWlzZSYmIHByb21pc2UpCiB7CiAgICAgQVNTRVJUKCFtX29mZmVyQW5zd2VyUHJvbWlzZSk7Ci0g
ICAgQVNTRVJUKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpICE9IFBl
ZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKTsKKyAgICBBU1NFUlQo
bV9wZWVyQ29ubmVjdGlvbi5zaWduYWxpbmdTdGF0ZSgpICE9IFJUQ1NpZ25hbGluZ1N0YXRlOjpD
bG9zZWQpOwogCiAgICAgbV9vZmZlckFuc3dlclByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpOwog
ICAgIGRvQ3JlYXRlT2ZmZXIoV1RGTW92ZShvcHRpb25zKSk7CkBAIC01Niw3ICs1Niw3IEBAIHZv
aWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVPZmZlclN1Y2NlZWRlZChTdHJpbmcmJiBz
ZHApCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGlmIChtX3BlZXJDb25u
ZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9PSBQZWVyQ29ubmVjdGlvblN0YXRlczo6
U2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKKyAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5zaWduYWxp
bmdTdGF0ZSgpID09IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCiAgICAgICAgIHJldHVybjsK
IAogICAgIEFTU0VSVChtX29mZmVyQW5zd2VyUHJvbWlzZSk7CkBAIC02OCw3ICs2OCw3IEBAIHZv
aWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVPZmZlckZhaWxlZChFeGNlcHRpb24mJiBl
eGNlcHRpb24pCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGlmIChtX3Bl
ZXJDb25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9PSBQZWVyQ29ubmVjdGlvblN0
YXRlczo6U2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKKyAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5z
aWduYWxpbmdTdGF0ZSgpID09IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIEFTU0VSVChtX29mZmVyQW5zd2VyUHJvbWlzZSk7CkBAIC03OSw3ICs3OSw3
IEBAIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVPZmZlckZhaWxlZChFeGNlcHRp
b24mJiBleGNlcHRpb24pCiB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6Y3JlYXRlQW5zd2Vy
KFJUQ0Fuc3dlck9wdGlvbnMmJiBvcHRpb25zLCBQZWVyQ29ubmVjdGlvbjo6U2Vzc2lvbkRlc2Ny
aXB0aW9uUHJvbWlzZSYmIHByb21pc2UpCiB7CiAgICAgQVNTRVJUKCFtX29mZmVyQW5zd2VyUHJv
bWlzZSk7Ci0gICAgQVNTRVJUKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0
ZSgpICE9IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKTsKKyAg
ICBBU1NFUlQobV9wZWVyQ29ubmVjdGlvbi5zaWduYWxpbmdTdGF0ZSgpICE9IFJUQ1NpZ25hbGlu
Z1N0YXRlOjpDbG9zZWQpOwogCiAgICAgbV9vZmZlckFuc3dlclByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpOwogICAgIGRvQ3JlYXRlQW5zd2VyKFdURk1vdmUob3B0aW9ucykpOwpAQCAtODksNyAr
ODksNyBAQCB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6Y3JlYXRlQW5zd2VyU3VjY2VlZGVk
KFN0cmluZyYmIHNkcCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgaWYg
KG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpID09IFBlZXJDb25uZWN0
aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgIGlmIChtX3BlZXJDb25uZWN0
aW9uLnNpZ25hbGluZ1N0YXRlKCkgPT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKG1fb2ZmZXJBbnN3ZXJQcm9taXNlKTsKQEAgLTEwMSw3
ICsxMDEsNyBAQCB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6Y3JlYXRlQW5zd2VyRmFpbGVk
KEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwog
Ci0gICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpID09IFBl
ZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgIGlmIChtX3Bl
ZXJDb25uZWN0aW9uLnNpZ25hbGluZ1N0YXRlKCkgPT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3Nl
ZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKG1fb2ZmZXJBbnN3ZXJQcm9taXNlKTsK
QEAgLTEwOSwxNiArMTA5LDE2IEBAIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVB
bnN3ZXJGYWlsZWQoRXhjZXB0aW9uJiYgZXhjZXB0aW9uKQogICAgIG1fb2ZmZXJBbnN3ZXJQcm9t
aXNlID0gc3RkOjpudWxsb3B0OwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNMb2NhbERlc2Ny
aXB0aW9uVHlwZVZhbGlkRm9yU3RhdGUoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlIHR5
cGUsIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZSBzdGF0ZSkKK3N0YXRpYyBp
bmxpbmUgYm9vbCBpc0xvY2FsRGVzY3JpcHRpb25UeXBlVmFsaWRGb3JTdGF0ZShSVENTZXNzaW9u
RGVzY3JpcHRpb246OlNkcFR5cGUgdHlwZSwgUlRDU2lnbmFsaW5nU3RhdGUgc3RhdGUpCiB7CiAg
ICAgc3dpdGNoIChzdGF0ZSkgewotICAgIGNhc2UgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25h
bGluZ1N0YXRlOjpTdGFibGU6CisgICAgY2FzZSBSVENTaWduYWxpbmdTdGF0ZTo6U3RhYmxlOgog
ICAgICAgICByZXR1cm4gdHlwZSA9PSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6Ok9m
ZmVyOwotICAgIGNhc2UgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpIYXZl
TG9jYWxPZmZlcjoKKyAgICBjYXNlIFJUQ1NpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxPZmZlcjoK
ICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpP
ZmZlcjsKLSAgICBjYXNlIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6SGF2
ZVJlbW90ZU9mZmVyOgorICAgIGNhc2UgUlRDU2lnbmFsaW5nU3RhdGU6OkhhdmVSZW1vdGVPZmZl
cjoKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBl
OjpBbnN3ZXIgfHwgdHlwZSA9PSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6OlByYW5z
d2VyOwotICAgIGNhc2UgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpIYXZl
TG9jYWxQckFuc3dlcjoKKyAgICBjYXNlIFJUQ1NpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxQcmFu
c3dlcjoKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBU
eXBlOjpBbnN3ZXIgfHwgdHlwZSA9PSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6OlBy
YW5zd2VyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMCw5ICsx
MzAsOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNMb2NhbERlc2NyaXB0aW9uVHlwZVZhbGlkRm9y
U3RhdGUoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZAogCiB2b2lkIFBlZXJDb25uZWN0aW9uQmFj
a2VuZDo6c2V0TG9jYWxEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb24mIHNlc3Npb25E
ZXNjcmlwdGlvbiwgRE9NUHJvbWlzZTx2b2lkPiYmIHByb21pc2UpCiB7Ci0gICAgQVNTRVJUKG1f
cGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpICE9IFBlZXJDb25uZWN0aW9u
U3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKTsKKyAgICBBU1NFUlQobV9wZWVyQ29ubmVj
dGlvbi5zaWduYWxpbmdTdGF0ZSgpICE9IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpOwogCi0g
ICAgaWYgKCFpc0xvY2FsRGVzY3JpcHRpb25UeXBlVmFsaWRGb3JTdGF0ZShzZXNzaW9uRGVzY3Jp
cHRpb24udHlwZSgpLCBtX3BlZXJDb25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSkp
IHsKKyAgICBpZiAoIWlzTG9jYWxEZXNjcmlwdGlvblR5cGVWYWxpZEZvclN0YXRlKHNlc3Npb25E
ZXNjcmlwdGlvbi50eXBlKCksIG1fcGVlckNvbm5lY3Rpb24uc2lnbmFsaW5nU3RhdGUoKSkpIHsK
ICAgICAgICAgcHJvbWlzZS5yZWplY3QoSU5WQUxJRF9TVEFURV9FUlIsICJEZXNjcmlwdGlvbiB0
eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIik7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQ6OnNldExvY2FsRGVzY3JpcHRpb25TdWNjZWVkZWQoKQogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAKLSAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGlu
Z1N0YXRlKCkgPT0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpDbG9zZWQp
CisgICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uc2lnbmFsaW5nU3RhdGUoKSA9PSBSVENTaWduYWxp
bmdTdGF0ZTo6Q2xvc2VkKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQobV9zZXREZXNj
cmlwdGlvblByb21pc2UpOwpAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQgUGVlckNvbm5lY3Rpb25C
YWNrZW5kOjpzZXRMb2NhbERlc2NyaXB0aW9uRmFpbGVkKEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikK
IHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgaWYgKG1fcGVlckNvbm5lY3Rp
b24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpID09IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWdu
YWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLnNpZ25hbGluZ1N0
YXRlKCkgPT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgQVNTRVJUKG1fc2V0RGVzY3JpcHRpb25Qcm9taXNlKTsKQEAgLTE2NywxNiArMTY3LDE2IEBA
IHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzZXRMb2NhbERlc2NyaXB0aW9uRmFpbGVkKEV4
Y2VwdGlvbiYmIGV4Y2VwdGlvbikKICAgICBtX3NldERlc2NyaXB0aW9uUHJvbWlzZSA9IHN0ZDo6
bnVsbG9wdDsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGlzUmVtb3RlRGVzY3JpcHRpb25UeXBl
VmFsaWRGb3JTdGF0ZShSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGUgdHlwZSwgUGVlckNv
bm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlIHN0YXRlKQorc3RhdGljIGlubGluZSBib29s
IGlzUmVtb3RlRGVzY3JpcHRpb25UeXBlVmFsaWRGb3JTdGF0ZShSVENTZXNzaW9uRGVzY3JpcHRp
b246OlNkcFR5cGUgdHlwZSwgUlRDU2lnbmFsaW5nU3RhdGUgc3RhdGUpCiB7CiAgICAgc3dpdGNo
IChzdGF0ZSkgewotICAgIGNhc2UgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRl
OjpTdGFibGU6CisgICAgY2FzZSBSVENTaWduYWxpbmdTdGF0ZTo6U3RhYmxlOgogICAgICAgICBy
ZXR1cm4gdHlwZSA9PSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6Ok9mZmVyOwotICAg
IGNhc2UgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxPZmZl
cjoKKyAgICBjYXNlIFJUQ1NpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxPZmZlcjoKICAgICAgICAg
cmV0dXJuIHR5cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpBbnN3ZXIgfHwg
dHlwZSA9PSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6OlByYW5zd2VyOwotICAgIGNh
c2UgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpIYXZlUmVtb3RlT2ZmZXI6
CisgICAgY2FzZSBSVENTaWduYWxpbmdTdGF0ZTo6SGF2ZVJlbW90ZU9mZmVyOgogICAgICAgICBy
ZXR1cm4gdHlwZSA9PSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6Ok9mZmVyOwotICAg
IGNhc2UgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpIYXZlUmVtb3RlUHJB
bnN3ZXI6CisgICAgY2FzZSBSVENTaWduYWxpbmdTdGF0ZTo6SGF2ZVJlbW90ZVByYW5zd2VyOgog
ICAgICAgICByZXR1cm4gdHlwZSA9PSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6OkFu
c3dlciB8fCB0eXBlID09IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2RwVHlwZTo6UHJhbnN3ZXI7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTg4LDkgKzE4OCw5IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBpc1JlbW90ZURlc2NyaXB0aW9uVHlwZVZhbGlkRm9yU3RhdGUo
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTCiAKIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpz
ZXRSZW1vdGVEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb24mIHNlc3Npb25EZXNjcmlw
dGlvbiwgRE9NUHJvbWlzZTx2b2lkPiYmIHByb21pc2UpCiB7Ci0gICAgQVNTRVJUKG1fcGVlckNv
bm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpICE9IFBlZXJDb25uZWN0aW9uU3RhdGVz
OjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKTsKKyAgICBBU1NFUlQobV9wZWVyQ29ubmVjdGlvbi5z
aWduYWxpbmdTdGF0ZSgpICE9IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpOwogCi0gICAgaWYg
KCFpc1JlbW90ZURlc2NyaXB0aW9uVHlwZVZhbGlkRm9yU3RhdGUoc2Vzc2lvbkRlc2NyaXB0aW9u
LnR5cGUoKSwgbV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkpKSB7Cisg
ICAgaWYgKCFpc1JlbW90ZURlc2NyaXB0aW9uVHlwZVZhbGlkRm9yU3RhdGUoc2Vzc2lvbkRlc2Ny
aXB0aW9uLnR5cGUoKSwgbV9wZWVyQ29ubmVjdGlvbi5zaWduYWxpbmdTdGF0ZSgpKSkgewogICAg
ICAgICBwcm9taXNlLnJlamVjdChJTlZBTElEX1NUQVRFX0VSUiwgIkRlc2NyaXB0aW9uIHR5cGUg
aW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUiKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2Vu
ZDo6c2V0UmVtb3RlRGVzY3JpcHRpb25TdWNjZWVkZWQoKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAKLSAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0
YXRlKCkgPT0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCisg
ICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uc2lnbmFsaW5nU3RhdGUoKSA9PSBSVENTaWduYWxpbmdT
dGF0ZTo6Q2xvc2VkKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQobV9zZXREZXNjcmlw
dGlvblByb21pc2UpOwpAQCAtMjE2LDcgKzIxNiw3IEBAIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNr
ZW5kOjpzZXRSZW1vdGVEZXNjcmlwdGlvbkZhaWxlZChFeGNlcHRpb24mJiBleGNlcHRpb24pCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGlmIChtX3BlZXJDb25uZWN0aW9u
LmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9PSBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFs
aW5nU3RhdGU6OkNsb3NlZCkKKyAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5zaWduYWxpbmdTdGF0
ZSgpID09IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCiAgICAgICAgIHJldHVybjsKIAogICAg
IEFTU0VSVChtX3NldERlc2NyaXB0aW9uUHJvbWlzZSk7CkBAIC0yMjcsNyArMjI3LDcgQEAgdm9p
ZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnNldFJlbW90ZURlc2NyaXB0aW9uRmFpbGVkKEV4Y2Vw
dGlvbiYmIGV4Y2VwdGlvbikKIAogdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmFkZEljZUNh
bmRpZGF0ZShSVENJY2VDYW5kaWRhdGUmIGljZUNhbmRpZGF0ZSwgRE9NUHJvbWlzZTx2b2lkPiYm
IHByb21pc2UpCiB7Ci0gICAgQVNTRVJUKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxp
bmdTdGF0ZSgpICE9IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2Vk
KTsKKyAgICBBU1NFUlQobV9wZWVyQ29ubmVjdGlvbi5zaWduYWxpbmdTdGF0ZSgpICE9IFJUQ1Np
Z25hbGluZ1N0YXRlOjpDbG9zZWQpOwogCiAgICAgaWYgKGljZUNhbmRpZGF0ZS5zZHBNaWQoKS5p
c051bGwoKSAmJiAhaWNlQ2FuZGlkYXRlLnNkcE1MaW5lSW5kZXgoKSkgewogICAgICAgICBwcm9t
aXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiVHJ5aW5nIHRv
IGFkZCBhIGNhbmRpZGF0ZSB0aGF0IGlzIG1pc3NpbmcgYm90aCBzZHBNaWQgYW5kIHNkcE1MaW5l
SW5kZXgiKSB9KTsKQEAgLTI0MSw3ICsyNDEsNyBAQCB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2Vu
ZDo6YWRkSWNlQ2FuZGlkYXRlU3VjY2VlZGVkKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogCi0gICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgp
ID09IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgIGlm
IChtX3BlZXJDb25uZWN0aW9uLnNpZ25hbGluZ1N0YXRlKCkgPT0gUlRDU2lnbmFsaW5nU3RhdGU6
OkNsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklYTUU6IFVwZGF0ZSByZW1vdGUg
ZGVzY3JpcHRpb24gYW5kIHNldCBJQ0UgY29ubmVjdGlvbiBzdGF0ZSB0byBjaGVja2luZyBpZiBu
b3QgYWxyZWFkeSBkb25lIHNvLgpAQCAtMjU0LDcgKzI1NCw3IEBAIHZvaWQgUGVlckNvbm5lY3Rp
b25CYWNrZW5kOjphZGRJY2VDYW5kaWRhdGVTdWNjZWVkZWQoKQogdm9pZCBQZWVyQ29ubmVjdGlv
bkJhY2tlbmQ6OmFkZEljZUNhbmRpZGF0ZUZhaWxlZChFeGNlcHRpb24mJiBleGNlcHRpb24pCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5p
bnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGlu
Z1N0YXRlOjpDbG9zZWQpCisgICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uc2lnbmFsaW5nU3RhdGUo
KSA9PSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQogICAgICAgICByZXR1cm47CiAKICAgICBB
U1NFUlQobV9hZGRJY2VDYW5kaWRhdGVQcm9taXNlKTsKQEAgLTMzMiwxNCArMzMyLDE0IEBAIHZv
aWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb25lR2F0aGVyaW5nQ2FuZGlkYXRlcygpCiAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIG1fcGVlckNvbm5lY3Rpb24uZmlyZUV2ZW50
KFJUQ0ljZUNhbmRpZGF0ZUV2ZW50OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBudWxscHRyKSk7Ci0g
ICAgbV9wZWVyQ29ubmVjdGlvbi51cGRhdGVJY2VHYXRoZXJpbmdTdGF0ZShQZWVyQ29ubmVjdGlv
blN0YXRlczo6SWNlR2F0aGVyaW5nU3RhdGU6OkNvbXBsZXRlKTsKKyAgICBtX3BlZXJDb25uZWN0
aW9uLnVwZGF0ZUljZUdhdGhlcmluZ1N0YXRlKFJUQ0ljZUdhdGhlcmluZ1N0YXRlOjpDb21wbGV0
ZSk7CiB9CiAKLXZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjp1cGRhdGVTaWduYWxpbmdTdGF0
ZShQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGUgbmV3U2lnbmFsaW5nU3RhdGUp
Cit2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6dXBkYXRlU2lnbmFsaW5nU3RhdGUoUlRDU2ln
bmFsaW5nU3RhdGUgbmV3U2lnbmFsaW5nU3RhdGUpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKIAotICAgIGlmIChuZXdTaWduYWxpbmdTdGF0ZSAhPSBtX3BlZXJDb25uZWN0aW9uLmlu
dGVybmFsU2lnbmFsaW5nU3RhdGUoKSkgeworICAgIGlmIChuZXdTaWduYWxpbmdTdGF0ZSAhPSBt
X3BlZXJDb25uZWN0aW9uLnNpZ25hbGluZ1N0YXRlKCkpIHsKICAgICAgICAgbV9wZWVyQ29ubmVj
dGlvbi5zZXRTaWduYWxpbmdTdGF0ZShuZXdTaWduYWxpbmdTdGF0ZSk7CiAgICAgICAgIG1fcGVl
ckNvbm5lY3Rpb24uZmlyZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNpZ25hbGlu
Z3N0YXRlY2hhbmdlRXZlbnQsIGZhbHNlLCBmYWxzZSkpOwogICAgIH0KQEAgLTM2MSw3ICszNjEs
NyBAQCB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6bWFya0FzTmVlZGluZ05lZ290aWF0aW9u
KCkKICAgICAKICAgICBtX25lZ290aWF0aW9uTmVlZGVkID0gdHJ1ZTsKICAgICAKLSAgICBpZiAo
bV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gUGVlckNvbm5lY3Rp
b25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpTdGFibGUpCisgICAgaWYgKG1fcGVlckNvbm5lY3Rp
b24uc2lnbmFsaW5nU3RhdGUoKSA9PSBSVENTaWduYWxpbmdTdGF0ZTo6U3RhYmxlKQogICAgICAg
ICBtX3BlZXJDb25uZWN0aW9uLnNjaGVkdWxlTmVnb3RpYXRpb25OZWVkZWRFdmVudCgpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVy
Q29ubmVjdGlvbkJhY2tlbmQuaAppbmRleCBiNjZiOTVjNmZmZTZjOGRmMjRjMjZiNTcwNzA3Mzkx
M2Y4ZWU2Y2ZkLi5mMjczMDkyZDA3NWY1MWE5NWU4NmU0ZDIxYjU2ZjdmMmVkYjZlYjlkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9u
QmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNv
bm5lY3Rpb25CYWNrZW5kLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDE1IEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzMsNyArMzQsNyBAQAogI2lmIEVOQUJMRShXRUJfUlRDKQogCiAjaW5j
bHVkZSAiSlNET01Qcm9taXNlLmgiCi0jaW5jbHVkZSAiUGVlckNvbm5lY3Rpb25TdGF0ZXMuaCIK
KyNpbmNsdWRlICJSVENFbnVtcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTExMCw3
ICsxMTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBmaXJlSUNFQ2FuZGlkYXRlRXZlbnQoUmVm
UHRyPFJUQ0ljZUNhbmRpZGF0ZT4mJik7CiAgICAgdm9pZCBkb25lR2F0aGVyaW5nQ2FuZGlkYXRl
cygpOwogCi0gICAgdm9pZCB1cGRhdGVTaWduYWxpbmdTdGF0ZShQZWVyQ29ubmVjdGlvblN0YXRl
czo6U2lnbmFsaW5nU3RhdGUpOworICAgIHZvaWQgdXBkYXRlU2lnbmFsaW5nU3RhdGUoUlRDU2ln
bmFsaW5nU3RhdGUpOwogCiAgICAgdm9pZCBjcmVhdGVPZmZlclN1Y2NlZWRlZChTdHJpbmcmJik7
CiAgICAgdm9pZCBjcmVhdGVPZmZlckZhaWxlZChFeGNlcHRpb24mJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5oCmluZGV4
IDJmMDZlYTI1YTcwYWNhNWU3YWRlNTM3MDc2Nzg5NDkyMGE3OWRlZTAuLmU1YTc0OWFiMzkyYWZh
NWFmMDQzMDM2NWE5NWQ2YWY4MWMxNTgzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5oCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsMjEgKzMzLDE1IEBACiAKICNp
ZiBFTkFCTEUoV0VCX1JUQykKIAotI2luY2x1ZGUgIlBlZXJDb25uZWN0aW9uU3RhdGVzLmgiCisj
aW5jbHVkZSAiUlRDRW51bXMuaCIKICNpbmNsdWRlICJSVENJY2VTZXJ2ZXIuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi11c2luZyBSVENJY2VUcmFuc3BvcnRQb2xpY3kgPSBQZWVyQ29ubmVj
dGlvblN0YXRlczo6SWNlVHJhbnNwb3J0UG9saWN5OwotdXNpbmcgUlRDQnVuZGxlUG9saWN5ID0g
UGVlckNvbm5lY3Rpb25TdGF0ZXM6OkJ1bmRsZVBvbGljeTsKLQogc3RydWN0IFJUQ0NvbmZpZ3Vy
YXRpb24gewotICAgIHVzaW5nIEljZVRyYW5zcG9ydFBvbGljeSA9IFJUQ0ljZVRyYW5zcG9ydFBv
bGljeTsKLSAgICB1c2luZyBCdW5kbGVQb2xpY3kgPSBSVENCdW5kbGVQb2xpY3k7Ci0KICAgICBz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxSVENJY2VTZXJ2ZXI+PiBpY2VTZXJ2ZXJzOwotICAgIEljZVRy
YW5zcG9ydFBvbGljeSBpY2VUcmFuc3BvcnRQb2xpY3k7Ci0gICAgQnVuZGxlUG9saWN5IGJ1bmRs
ZVBvbGljeTsKKyAgICBSVENJY2VUcmFuc3BvcnRQb2xpY3kgaWNlVHJhbnNwb3J0UG9saWN5Owor
ICAgIFJUQ0J1bmRsZVBvbGljeSBidW5kbGVQb2xpY3k7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q0NvbmZpZ3VyYXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENDb25maWd1cmF0aW9uLmlkbAppbmRleCAzZDI2NjRkYmMxZTNmMTg2NDMzZTA2MWJkNDRjZjUx
Y2JmZGNkZDZlLi41NmM4Njg2NDgwMGUxOWNlMDBhNmI1NTQxZTY1YTBiMWQxMzEyNWU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRp
b24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmln
dXJhdGlvbi5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjMsMTQgKzIzLDM1IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLWVudW0g
UlRDSWNlVHJhbnNwb3J0UG9saWN5IHsgInJlbGF5IiwgImFsbCIgfTsKLWVudW0gUlRDQnVuZGxl
UG9saWN5IHsgImJhbGFuY2VkIiwgIm1heC1jb21wYXQiLCAibWF4LWJ1bmRsZSIgfTsKK1sKKyAg
ICBDb25kaXRpb25hbD1XRUJfUlRDLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9UGVlckNvbm5lY3Rp
b24sCisgICAgSW1wbGVtZW50ZWRBcz1SVENJY2VUcmFuc3BvcnRQb2xpY3kKK10gZW51bSBSVENJ
Y2VUcmFuc3BvcnRQb2xpY3kgeworICAgICJyZWxheSIsCisgICAgImFsbCIKK307CisKK1sKKyAg
ICBDb25kaXRpb25hbD1XRUJfUlRDLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9UGVlckNvbm5lY3Rp
b24sCisgICAgSW1wbGVtZW50ZWRBcz1SVENCdW5kbGVQb2xpY3kKK10gZW51bSBSVENCdW5kbGVQ
b2xpY3kgeworICAgICJiYWxhbmNlZCIsCisgICAgIm1heC1jb21wYXQiLAorICAgICJtYXgtYnVu
ZGxlIgorfTsKIAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9SVEMsCisgICAgRW5hYmxlZEF0UnVu
dGltZT1QZWVyQ29ubmVjdGlvbiwKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKIF0gZGljdGlv
bmFyeSBSVENDb25maWd1cmF0aW9uIHsKICAgICBzZXF1ZW5jZTxSVENJY2VTZXJ2ZXI+IGljZVNl
cnZlcnM7CiAgICAgUlRDSWNlVHJhbnNwb3J0UG9saWN5IGljZVRyYW5zcG9ydFBvbGljeSA9ICJh
bGwiOwogICAgIFJUQ0J1bmRsZVBvbGljeSBidW5kbGVQb2xpY3kgPSAiYmFsYW5jZWQiOworICAg
IC8vIEZJWE1FIDE2OTY2MjogbWlzc2luZyBydGNwTXV4UG9saWN5CisgICAgLy8gRklYTUUgMTY5
NjYyOiBtaXNzaW5nIHBlZXJJZGVudGl0eQorICAgIC8vIEZJWE1FIDE2OTY2MjogbWlzc2luZyBj
ZXJ0aWZpY2F0ZXMKKyAgICAvLyBGSVhNRSAxNjk2NjI6IG1pc3NpbmcgaWNlQ2FuZGlkYXRlUG9v
bFNpemUKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENJY2VDb25uZWN0aW9uU3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzgyNzAyYzNjOGQwOGRh
NTZhOWY0MTBmNmZkZTJkMDY2NjZhZTg1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDb25uZWN0aW9uU3RhdGUuaApAQCAtMCwwICsx
LDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJQZWVyQ29ubmVj
dGlvblN0YXRlcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENJY2VDb25uZWN0aW9uU3RhdGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENJY2VDb25uZWN0aW9uU3RhdGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhZTQwZGY5
ZWVlOTA5MzA0OTE5ZTA1YWE0YmYwZWU2YmNkYzFjM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5pZGwK
QEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJfUlRD
LAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9UGVlckNvbm5lY3Rpb24KK10gZW51bSBSVENJY2VDb25u
ZWN0aW9uU3RhdGUgeworICAgICJuZXciLAorICAgICJjaGVja2luZyIsCisgICAgImNvbm5lY3Rl
ZCIsCisgICAgImNvbXBsZXRlZCIsCisgICAgImZhaWxlZCIsCisgICAgImRpc2Nvbm5lY3RlZCIs
CisgICAgImNsb3NlZCIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0ljZUdhdGhlcmluZ1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0ljZUdhdGhlcmluZ1N0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc4MjcwMmMz
YzhkMDhkYTU2YTlmNDEwZjZmZGUyZDA2NjY2YWU4NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlR2F0aGVyaW5nU3RhdGUuaApAQCAt
MCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJQZWVy
Q29ubmVjdGlvblN0YXRlcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENJY2VHYXRoZXJpbmdTdGF0ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUdhdGhlcmluZ1N0YXRlLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYWYx
YjI2ZjAwYTIyNmFiOWIyNzQ0ZjM3OTM5ZTlmYjAzMmU1YTZkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VHYXRoZXJpbmdTdGF0ZS5p
ZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJf
UlRDLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9UGVlckNvbm5lY3Rpb24KK10gZW51bSBSVENJY2VH
YXRoZXJpbmdTdGF0ZSB7CisgICAgIm5ldyIsCisgICAgImdhdGhlcmluZyIsCisgICAgImNvbXBs
ZXRlIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDSWNlVHJhbnNwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q0ljZVRyYW5zcG9ydC5oCmluZGV4IDQ1Y2Y3ZWQ4NDkyODc2ZmFlZDBlM2NjYzMxMjBmYzBhODM5
YmFkNWMuLjY2ZmRhNWJhMjgwYmEyOGU0OGIwYzdjYTg0N2Q1NDUzYjc3ZTdlYjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlVHJhbnNwb3J0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VUcmFuc3BvcnQu
aApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTYgRXJpY3Nzb24gQUIu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
Miw3ICszMyw3IEBACiAKICNpZiBFTkFCTEUoV0VCX1JUQykKIAotI2luY2x1ZGUgIlBlZXJDb25u
ZWN0aW9uU3RhdGVzLmgiCisjaW5jbHVkZSAiUlRDRW51bXMuaCIKICNpbmNsdWRlICJTY3JpcHRX
cmFwcGFibGUuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KQEAgLTQxLDI3ICs0MiwyMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFJUQ0ljZVRyYW5zcG9ydCA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ0ljZVRyYW5zcG9ydD4sIHB1
YmxpYyBTY3JpcHRXcmFwcGFibGUgewogcHVibGljOgotCi0gICAgdXNpbmcgVHJhbnNwb3J0U3Rh
dGUgPSBQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlVHJhbnNwb3J0U3RhdGU7Ci0gICAgdXNpbmcg
R2F0aGVyaW5nU3RhdGUgPSBQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlR2F0aGVyaW5nU3RhdGU7
Ci0KICAgICBzdGF0aWMgUmVmPFJUQ0ljZVRyYW5zcG9ydD4gY3JlYXRlKCkKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ0ljZVRyYW5zcG9ydCgpKTsKICAgICB9CiAgICAg
dmlydHVhbCB+UlRDSWNlVHJhbnNwb3J0KCkgeyB9CiAKLSAgICBUcmFuc3BvcnRTdGF0ZSB0cmFu
c3BvcnRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNwb3J0U3RhdGU7IH0KLSAgICB2b2lk
IHNldFRyYW5zcG9ydFN0YXRlKFRyYW5zcG9ydFN0YXRlIHN0YXRlKSB7IG1fdHJhbnNwb3J0U3Rh
dGUgPSBzdGF0ZTsgfQorICAgIFJUQ0ljZVRyYW5zcG9ydFN0YXRlIHRyYW5zcG9ydFN0YXRlKCkg
Y29uc3QgeyByZXR1cm4gbV90cmFuc3BvcnRTdGF0ZTsgfQorICAgIHZvaWQgc2V0VHJhbnNwb3J0
U3RhdGUoUlRDSWNlVHJhbnNwb3J0U3RhdGUgc3RhdGUpIHsgbV90cmFuc3BvcnRTdGF0ZSA9IHN0
YXRlOyB9CiAKLSAgICBHYXRoZXJpbmdTdGF0ZSBnYXRoZXJpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fZ2F0aGVyaW5nU3RhdGU7IH0KLSAgICB2b2lkIHNldEdhdGhlcmluZ1N0YXRlKEdhdGhl
cmluZ1N0YXRlIHN0YXRlKSB7IG1fZ2F0aGVyaW5nU3RhdGUgPSBzdGF0ZTsgfQorICAgIFJUQ0lj
ZUdhdGhlcmluZ1N0YXRlIGdhdGhlcmluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9nYXRoZXJp
bmdTdGF0ZTsgfQorICAgIHZvaWQgc2V0R2F0aGVyaW5nU3RhdGUoUlRDSWNlR2F0aGVyaW5nU3Rh
dGUgc3RhdGUpIHsgbV9nYXRoZXJpbmdTdGF0ZSA9IHN0YXRlOyB9CiAKIHByaXZhdGU6CiAgICAg
UlRDSWNlVHJhbnNwb3J0KCkgeyB9OwogCi0gICAgVHJhbnNwb3J0U3RhdGUgbV90cmFuc3BvcnRT
dGF0ZSB7IFRyYW5zcG9ydFN0YXRlOjpOZXcgfTsKLSAgICBHYXRoZXJpbmdTdGF0ZSBtX2dhdGhl
cmluZ1N0YXRlIHsgR2F0aGVyaW5nU3RhdGU6Ok5ldyB9OworICAgIFJUQ0ljZVRyYW5zcG9ydFN0
YXRlIG1fdHJhbnNwb3J0U3RhdGUgeyBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6TmV3IH07CisgICAg
UlRDSWNlR2F0aGVyaW5nU3RhdGUgbV9nYXRoZXJpbmdTdGF0ZSB7IFJUQ0ljZUdhdGhlcmluZ1N0
YXRlOjpOZXcgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAK
aW5kZXggZTA2YTkzNGMxODVjOTJmNTU2NmRiZWVjMDE5OTBjNGI1YmJmZGY4Ny4uMmM4M2VmYTkz
MDI0NDhjMmJiODE1MzMyYmRlYmE0NDI3Y2M4MmZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTU4
LDcgKzU4LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIFBlZXJD
b25uZWN0aW9uOwotdXNpbmcgbmFtZXNwYWNlIFBlZXJDb25uZWN0aW9uU3RhdGVzOwogCiBSZWY8
UlRDUGVlckNvbm5lY3Rpb24+IFJUQ1BlZXJDb25uZWN0aW9uOjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCkKIHsKQEAgLTY2LDcgKzY1LDcgQEAgUmVmPFJUQ1BlZXJDb25u
ZWN0aW9uPiBSVENQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQKICAgICBwZWVyQ29ubmVjdGlvbi0+c3VzcGVuZElmTmVlZGVkKCk7CiAgICAgLy8g
UlRDUGVlckNvbm5lY3Rpb24gbWF5IHNlbmQgZXZlbnRzIGF0IGFib3V0IGFueSB0aW1lIGR1cmlu
ZyBpdHMgbGlmZXRpbWUuCiAgICAgLy8gTGV0J3MgbWFrZSBpdCB1bmNvbGxlY3RhYmxlIHVudGls
IHRoZSBwYyBpcyBjbG9zZWQgYnkgSlMgb3IgdGhlIHBhZ2Ugc3RvcHMgaXQuCi0gICAgaWYgKHBl
ZXJDb25uZWN0aW9uLT5tX3NpZ25hbGluZ1N0YXRlICE9IFNpZ25hbGluZ1N0YXRlOjpDbG9zZWQp
IHsKKyAgICBpZiAocGVlckNvbm5lY3Rpb24tPm1fc2lnbmFsaW5nU3RhdGUgIT0gUlRDU2lnbmFs
aW5nU3RhdGU6OkNsb3NlZCkgewogICAgICAgICBwZWVyQ29ubmVjdGlvbi0+c2V0UGVuZGluZ0Fj
dGl2aXR5KHBlZXJDb25uZWN0aW9uLnB0cigpKTsKICAgICAgICAgcGVlckNvbm5lY3Rpb24tPnJl
Z2lzdGVyVG9Db250cm9sbGVyKCk7CiAgICAgfQpAQCAtOTcsNyArOTYsNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBSVENQZWVyQ29ubmVjdGlvbjo6aW5pdGlhbGl6ZVdpdGgoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBSVENDb25maQogCiBFeGNlcHRpb25PcjxSZWY8UlRDUnRwU2VuZGVyPj4gUlRDUGVlckNv
bm5lY3Rpb246OmFkZFRyYWNrKFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmIHRyYWNrLCBjb25zdCBW
ZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxNZWRpYVN0cmVhbT4+JiBzdHJlYW1zKQogewot
ICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFNpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCisgICAg
aWYgKG1fc2lnbmFsaW5nU3RhdGUgPT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfU1RBVEVfRVJSIH07CiAKICAgICAvLyBSZXF1
aXJlIGF0IGxlYXN0IG9uZSBzdHJlYW0gdW50aWwgaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJy
dGMtcGMvaXNzdWVzLzI4OCBpcyByZXNvbHZlZApAQCAtMTUzLDcgKzE1Miw3IEBAIEV4Y2VwdGlv
bk9yPFJlZjxSVENSdHBTZW5kZXI+PiBSVENQZWVyQ29ubmVjdGlvbjo6YWRkVHJhY2soUmVmPE1l
ZGlhU3RyZWFtVHJhY2s+CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFJUQ1BlZXJDb25uZWN0aW9uOjpy
ZW1vdmVUcmFjayhSVENSdHBTZW5kZXImIHNlbmRlcikKIHsKLSAgICBpZiAobV9zaWduYWxpbmdT
dGF0ZSA9PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgIGlmIChtX3NpZ25hbGluZ1N0YXRl
ID09IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJTlZBTElEX1NUQVRFX0VSUiB9OwogCiAgICAgYm9vbCBzaG91bGRBYm9ydCA9IHRydWU7CkBA
IC0xNzQsNyArMTczLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUlRDUGVlckNvbm5lY3Rpb246OnJl
bW92ZVRyYWNrKFJUQ1J0cFNlbmRlciYgc2VuZGVyKQogCiBFeGNlcHRpb25PcjxSZWY8UlRDUnRw
VHJhbnNjZWl2ZXI+PiBSVENQZWVyQ29ubmVjdGlvbjo6YWRkVHJhbnNjZWl2ZXIoUmVmPE1lZGlh
U3RyZWFtVHJhY2s+JiYgdHJhY2ssIGNvbnN0IFJUQ1J0cFRyYW5zY2VpdmVySW5pdCYgaW5pdCkK
IHsKLSAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQor
ICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCiAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NUQVRFX0VSUiB9OwogCiAgICAgU3Ry
aW5nIHRyYW5zY2VpdmVyTWlkID0gUlRDUnRwVHJhbnNjZWl2ZXI6OmdldE5leHRNaWQoKTsKQEAg
LTE5Miw3ICsxOTEsNyBAQCBFeGNlcHRpb25PcjxSZWY8UlRDUnRwVHJhbnNjZWl2ZXI+PiBSVENQ
ZWVyQ29ubmVjdGlvbjo6YWRkVHJhbnNjZWl2ZXIoUmVmPE1lZGlhUwogCiBFeGNlcHRpb25PcjxS
ZWY8UlRDUnRwVHJhbnNjZWl2ZXI+PiBSVENQZWVyQ29ubmVjdGlvbjo6YWRkVHJhbnNjZWl2ZXIo
Y29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBSVENSdHBUcmFuc2NlaXZlckluaXQmIGluaXQpCiB7
Ci0gICAgaWYgKG1fc2lnbmFsaW5nU3RhdGUgPT0gU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKKyAg
ICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBSVENTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQogICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9TVEFURV9FUlIgfTsKIAogICAgIGlmIChr
aW5kICE9ICJhdWRpbyIgJiYga2luZCAhPSAidmlkZW8iKQpAQCAtMjIwLDcgKzIxOSw3IEBAIHZv
aWQgUlRDUGVlckNvbm5lY3Rpb246OmNvbXBsZXRlQWRkVHJhbnNjZWl2ZXIoUlRDUnRwVHJhbnNj
ZWl2ZXImIHRyYW5zY2VpdmVyLCBjCiAKIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnF1ZXVlZENy
ZWF0ZU9mZmVyKFJUQ09mZmVyT3B0aW9ucyYmIG9wdGlvbnMsIFNlc3Npb25EZXNjcmlwdGlvblBy
b21pc2UmJiBwcm9taXNlKQogewotICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFNpZ25hbGlu
Z1N0YXRlOjpDbG9zZWQpIHsKKyAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBSVENTaWduYWxp
bmdTdGF0ZTo6Q2xvc2VkKSB7CiAgICAgICAgIHByb21pc2UucmVqZWN0KElOVkFMSURfU1RBVEVf
RVJSKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIzMCw3ICsyMjksNyBAQCB2b2lkIFJU
Q1BlZXJDb25uZWN0aW9uOjpxdWV1ZWRDcmVhdGVPZmZlcihSVENPZmZlck9wdGlvbnMmJiBvcHRp
b25zLCBTZXNzaW9uRGVzYwogCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpxdWV1ZWRDcmVhdGVB
bnN3ZXIoUlRDQW5zd2VyT3B0aW9ucyYmIG9wdGlvbnMsIFNlc3Npb25EZXNjcmlwdGlvblByb21p
c2UmJiBwcm9taXNlKQogewotICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFNpZ25hbGluZ1N0
YXRlOjpDbG9zZWQpIHsKKyAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBSVENTaWduYWxpbmdT
dGF0ZTo6Q2xvc2VkKSB7CiAgICAgICAgIHByb21pc2UucmVqZWN0KElOVkFMSURfU1RBVEVfRVJS
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI0MCw3ICsyMzksNyBAQCB2b2lkIFJUQ1Bl
ZXJDb25uZWN0aW9uOjpxdWV1ZWRDcmVhdGVBbnN3ZXIoUlRDQW5zd2VyT3B0aW9ucyYmIG9wdGlv
bnMsIFNlc3Npb25EZQogCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpxdWV1ZWRTZXRMb2NhbERl
c2NyaXB0aW9uKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIERPTVByb21pc2U8
dm9pZD4mJiBwcm9taXNlKQogewotICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFNpZ25hbGlu
Z1N0YXRlOjpDbG9zZWQpIHsKKyAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBSVENTaWduYWxp
bmdTdGF0ZTo6Q2xvc2VkKSB7CiAgICAgICAgIHByb21pc2UucmVqZWN0KElOVkFMSURfU1RBVEVf
RVJSKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI2NSw3ICsyNjQsNyBAQCBSZWZQdHI8
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBSVENQZWVyQ29ubmVjdGlvbjo6cGVuZGluZ0xvY2FsRGVz
Y3JpcHRpb24oKSBjb25zdAogCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpxdWV1ZWRTZXRSZW1v
dGVEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBET01Qcm9t
aXNlPHZvaWQ+JiYgcHJvbWlzZSkKIHsKLSAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBTaWdu
YWxpbmdTdGF0ZTo6Q2xvc2VkKSB7CisgICAgaWYgKG1fc2lnbmFsaW5nU3RhdGUgPT0gUlRDU2ln
bmFsaW5nU3RhdGU6OkNsb3NlZCkgewogICAgICAgICBwcm9taXNlLnJlamVjdChJTlZBTElEX1NU
QVRFX0VSUik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yOTAsNyArMjg5LDcgQEAgUmVm
UHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gUlRDUGVlckNvbm5lY3Rpb246OnBlbmRpbmdSZW1v
dGVEZXNjcmlwdGlvbigpIGNvbnMKIAogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6cXVldWVkQWRk
SWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZSYgcnRjQ2FuZGlkYXRlLCBET01Qcm9taXNlPHZv
aWQ+JiYgcHJvbWlzZSkKIHsKLSAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBTaWduYWxpbmdT
dGF0ZTo6Q2xvc2VkKSB7CisgICAgaWYgKG1fc2lnbmFsaW5nU3RhdGUgPT0gUlRDU2lnbmFsaW5n
U3RhdGU6OkNsb3NlZCkgewogICAgICAgICBwcm9taXNlLnJlamVjdChJTlZBTElEX1NUQVRFX0VS
Uik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yOTgsNjggKzI5Nyw5IEBAIHZvaWQgUlRD
UGVlckNvbm5lY3Rpb246OnF1ZXVlZEFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUmIHJ0
Y0NhbmRpZGF0ZSwgRE9NCiAgICAgbV9iYWNrZW5kLT5hZGRJY2VDYW5kaWRhdGUocnRjQ2FuZGlk
YXRlLCBXVEZNb3ZlKHByb21pc2UpKTsKIH0KIAotU3RyaW5nIFJUQ1BlZXJDb25uZWN0aW9uOjpz
aWduYWxpbmdTdGF0ZSgpIGNvbnN0Ci17Ci0gICAgc3dpdGNoIChtX3NpZ25hbGluZ1N0YXRlKSB7
Ci0gICAgY2FzZSBTaWduYWxpbmdTdGF0ZTo6U3RhYmxlOgotICAgICAgICByZXR1cm4gQVNDSUlM
aXRlcmFsKCJzdGFibGUiKTsKLSAgICBjYXNlIFNpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxPZmZl
cjoKLSAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaGF2ZS1sb2NhbC1vZmZlciIpOwotICAg
IGNhc2UgU2lnbmFsaW5nU3RhdGU6OkhhdmVSZW1vdGVPZmZlcjoKLSAgICAgICAgcmV0dXJuIEFT
Q0lJTGl0ZXJhbCgiaGF2ZS1yZW1vdGUtb2ZmZXIiKTsKLSAgICBjYXNlIFNpZ25hbGluZ1N0YXRl
OjpIYXZlTG9jYWxQckFuc3dlcjoKLSAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaGF2ZS1s
b2NhbC1wcmFuc3dlciIpOwotICAgIGNhc2UgU2lnbmFsaW5nU3RhdGU6OkhhdmVSZW1vdGVQckFu
c3dlcjoKLSAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaGF2ZS1yZW1vdGUtcHJhbnN3ZXIi
KTsKLSAgICBjYXNlIFNpZ25hbGluZ1N0YXRlOjpDbG9zZWQ6Ci0gICAgICAgIHJldHVybiBBU0NJ
SUxpdGVyYWwoImNsb3NlZCIpOwotICAgIH0KLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFJUQ1BlZXJDb25uZWN0aW9uOjppY2VH
YXRoZXJpbmdTdGF0ZSgpIGNvbnN0Ci17Ci0gICAgc3dpdGNoIChtX2ljZUdhdGhlcmluZ1N0YXRl
KSB7Ci0gICAgY2FzZSBJY2VHYXRoZXJpbmdTdGF0ZTo6TmV3OgotICAgICAgICByZXR1cm4gQVND
SUlMaXRlcmFsKCJuZXciKTsKLSAgICBjYXNlIEljZUdhdGhlcmluZ1N0YXRlOjpHYXRoZXJpbmc6
Ci0gICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImdhdGhlcmluZyIpOwotICAgIGNhc2UgSWNl
R2F0aGVyaW5nU3RhdGU6OkNvbXBsZXRlOgotICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJj
b21wbGV0ZSIpOwotICAgIH0KLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVy
biBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFJUQ1BlZXJDb25uZWN0aW9uOjppY2VDb25uZWN0aW9u
U3RhdGUoKSBjb25zdAotewotICAgIHN3aXRjaCAobV9pY2VDb25uZWN0aW9uU3RhdGUpIHsKLSAg
ICBjYXNlIEljZUNvbm5lY3Rpb25TdGF0ZTo6TmV3OgotICAgICAgICByZXR1cm4gQVNDSUlMaXRl
cmFsKCJuZXciKTsKLSAgICBjYXNlIEljZUNvbm5lY3Rpb25TdGF0ZTo6Q2hlY2tpbmc6Ci0gICAg
ICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImNoZWNraW5nIik7Ci0gICAgY2FzZSBJY2VDb25uZWN0
aW9uU3RhdGU6OkNvbm5lY3RlZDoKLSAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiY29ubmVj
dGVkIik7Ci0gICAgY2FzZSBJY2VDb25uZWN0aW9uU3RhdGU6OkNvbXBsZXRlZDoKLSAgICAgICAg
cmV0dXJuIEFTQ0lJTGl0ZXJhbCgiY29tcGxldGVkIik7Ci0gICAgY2FzZSBJY2VDb25uZWN0aW9u
U3RhdGU6OkZhaWxlZDoKLSAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZmFpbGVkIik7Ci0g
ICAgY2FzZSBJY2VDb25uZWN0aW9uU3RhdGU6OkRpc2Nvbm5lY3RlZDoKLSAgICAgICAgcmV0dXJu
IEFTQ0lJTGl0ZXJhbCgiZGlzY29ubmVjdGVkIik7Ci0gICAgY2FzZSBJY2VDb25uZWN0aW9uU3Rh
dGU6OkNsb3NlZDoKLSAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiY2xvc2VkIik7Ci0gICAg
fQotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQot
CiBFeGNlcHRpb25Pcjx2b2lkPiBSVENQZWVyQ29ubmVjdGlvbjo6c2V0Q29uZmlndXJhdGlvbihS
VENDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKIHsKLSAgICBpZiAobV9zaWduYWxpbmdT
dGF0ZSA9PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgIGlmIChtX3NpZ25hbGluZ1N0YXRl
ID09IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJTlZBTElEX1NUQVRFX0VSUiB9OwogCiAgICAgVmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1
cmF0aW9uOjpJY2VTZXJ2ZXJJbmZvPiBzZXJ2ZXJzOwpAQCAtMzk4LDcgKzMzOCw3IEBAIHZvaWQg
UlRDUGVlckNvbm5lY3Rpb246OmdldFN0YXRzKE1lZGlhU3RyZWFtVHJhY2sqIHNlbGVjdG9yLCBS
ZWY8RGVmZXJyZWRQcm9taXNlCiAKIEV4Y2VwdGlvbk9yPFJlZjxSVENEYXRhQ2hhbm5lbD4+IFJU
Q1BlZXJDb25uZWN0aW9uOjpjcmVhdGVEYXRhQ2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBTdHJpbmcmJiBsYWJlbCwgUlRDRGF0YUNoYW5uZWxJbml0JiYgb3B0aW9ucykK
IHsKLSAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQor
ICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCiAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NUQVRFX0VSUiB9OwogCiAgICAgLy8g
RklYTUU6IENoZWNrIG9wdGlvbnMKQEAgLTQxMSwxMyArMzUxLDEzIEBAIEV4Y2VwdGlvbk9yPFJl
ZjxSVENEYXRhQ2hhbm5lbD4+IFJUQ1BlZXJDb25uZWN0aW9uOjpjcmVhdGVEYXRhQ2hhbm5lbChT
Y3JpcHRFeGVjCiAKIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmNsb3NlKCkKIHsKLSAgICBpZiAo
bV9zaWduYWxpbmdTdGF0ZSA9PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgIGlmIChtX3Np
Z25hbGluZ1N0YXRlID09IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIG1fYmFja2VuZC0+c3RvcCgpOwogCi0gICAgbV9pY2VDb25uZWN0aW9uU3RhdGUg
PSBJY2VDb25uZWN0aW9uU3RhdGU6OkNsb3NlZDsKLSAgICBtX3NpZ25hbGluZ1N0YXRlID0gU2ln
bmFsaW5nU3RhdGU6OkNsb3NlZDsKKyAgICBtX2ljZUNvbm5lY3Rpb25TdGF0ZSA9IFJUQ0ljZUNv
bm5lY3Rpb25TdGF0ZTo6Q2xvc2VkOworICAgIG1fc2lnbmFsaW5nU3RhdGUgPSBSVENTaWduYWxp
bmdTdGF0ZTo6Q2xvc2VkOwogCiAgICAgZm9yIChSVENSdHBTZW5kZXImIHNlbmRlciA6IG1fdHJh
bnNjZWl2ZXJTZXQtPnNlbmRlcnMoKSkKICAgICAgICAgc2VuZGVyLnN0b3AoKTsKQEAgLTQ3MCwx
NSArNDEwLDE1IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmFkZFRyYW5zY2VpdmVyKFJlZjxS
VENSdHBUcmFuc2NlaXZlcj4mJiB0cmFuc2NlaXZlcikKICAgICBtX3RyYW5zY2VpdmVyU2V0LT5h
cHBlbmQoV1RGTW92ZSh0cmFuc2NlaXZlcikpOwogfQogCi12b2lkIFJUQ1BlZXJDb25uZWN0aW9u
OjpzZXRTaWduYWxpbmdTdGF0ZShTaWduYWxpbmdTdGF0ZSBuZXdTdGF0ZSkKK3ZvaWQgUlRDUGVl
ckNvbm5lY3Rpb246OnNldFNpZ25hbGluZ1N0YXRlKFJUQ1NpZ25hbGluZ1N0YXRlIG5ld1N0YXRl
KQogewogICAgIG1fc2lnbmFsaW5nU3RhdGUgPSBuZXdTdGF0ZTsKIH0KIAotdm9pZCBSVENQZWVy
Q29ubmVjdGlvbjo6dXBkYXRlSWNlR2F0aGVyaW5nU3RhdGUoSWNlR2F0aGVyaW5nU3RhdGUgbmV3
U3RhdGUpCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjp1cGRhdGVJY2VHYXRoZXJpbmdTdGF0ZShS
VENJY2VHYXRoZXJpbmdTdGF0ZSBuZXdTdGF0ZSkKIHsKICAgICBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPnBvc3RUYXNrKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG5ld1N0YXRl
XShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgewotICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+
bV9zaWduYWxpbmdTdGF0ZSA9PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkIHx8IHByb3RlY3RlZFRo
aXMtPm1faWNlR2F0aGVyaW5nU3RhdGUgPT0gbmV3U3RhdGUpCisgICAgICAgIGlmIChwcm90ZWN0
ZWRUaGlzLT5tX3NpZ25hbGluZ1N0YXRlID09IFJUQ1NpZ25hbGluZ1N0YXRlOjpDbG9zZWQgfHwg
cHJvdGVjdGVkVGhpcy0+bV9pY2VHYXRoZXJpbmdTdGF0ZSA9PSBuZXdTdGF0ZSkKICAgICAgICAg
ICAgIHJldHVybjsKIAogICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2ljZUdhdGhlcmluZ1N0YXRl
ID0gbmV3U3RhdGU7CkBAIC00ODYsMTAgKzQyNiwxMCBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9u
Ojp1cGRhdGVJY2VHYXRoZXJpbmdTdGF0ZShJY2VHYXRoZXJpbmdTdGF0ZSBuZXdTdGF0ZSkKICAg
ICB9KTsKIH0KIAotdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6dXBkYXRlSWNlQ29ubmVjdGlvblN0
YXRlKEljZUNvbm5lY3Rpb25TdGF0ZSBuZXdTdGF0ZSkKK3ZvaWQgUlRDUGVlckNvbm5lY3Rpb246
OnVwZGF0ZUljZUNvbm5lY3Rpb25TdGF0ZShSVENJY2VDb25uZWN0aW9uU3RhdGUgbmV3U3RhdGUp
CiB7CiAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5wb3N0VGFzayhbcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBuZXdTdGF0ZV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsK
LSAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fc2lnbmFsaW5nU3RhdGUgPT0gU2lnbmFsaW5n
U3RhdGU6OkNsb3NlZCB8fCBwcm90ZWN0ZWRUaGlzLT5tX2ljZUNvbm5lY3Rpb25TdGF0ZSA9PSBu
ZXdTdGF0ZSkKKyAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fc2lnbmFsaW5nU3RhdGUgPT0g
UlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCB8fCBwcm90ZWN0ZWRUaGlzLT5tX2ljZUNvbm5lY3Rp
b25TdGF0ZSA9PSBuZXdTdGF0ZSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBwcm90
ZWN0ZWRUaGlzLT5tX2ljZUNvbm5lY3Rpb25TdGF0ZSA9IG5ld1N0YXRlOwpAQCAtNTAwLDcgKzQ0
MCw3IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnVwZGF0ZUljZUNvbm5lY3Rpb25TdGF0ZShJ
Y2VDb25uZWN0aW9uU3RhdGUgbmV3U3RhdGUpCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpzY2hl
ZHVsZU5lZ290aWF0aW9uTmVlZGVkRXZlbnQoKQogewogICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+cG9zdFRhc2soW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYpIHsKLSAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fc2lnbmFsaW5n
U3RhdGUgPT0gU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKKyAgICAgICAgaWYgKHByb3RlY3RlZFRo
aXMtPm1fc2lnbmFsaW5nU3RhdGUgPT0gUlRDU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX2JhY2tlbmQtPmlz
TmVnb3RpYXRpb25OZWVkZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAppbmRl
eCAwNGU2NDRmZDBlNWQyYTk4NGM4M2Y3ZTNiMTc4MjUxYzNjY2Y0NWM4Li43NWU2MGY5NmJlN2Y4
MzY1NWI3YTNkYzYzMDRiNjFmOWM0YWI2NzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCkBAIC0zOCwxMSArMzgs
OSBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0
LmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKLSNpbmNsdWRlICJSVENBbnN3ZXJPcHRpb25z
LmgiCiAjaW5jbHVkZSAiUlRDQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFu
bmVsLmgiCiAjaW5jbHVkZSAiUlRDRW51bXMuaCIKLSNpbmNsdWRlICJSVENPZmZlck9wdGlvbnMu
aCIKICNpbmNsdWRlICJSVENSdHBUcmFuc2NlaXZlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC01NSw2ICs1Myw4IEBAIGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjazsK
IGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjsKIGNsYXNzIFJUQ1N0YXRzQ2FsbGJhY2s7CiAK
K3N0cnVjdCBSVENBbnN3ZXJPcHRpb25zOworc3RydWN0IFJUQ09mZmVyT3B0aW9uczsKIHN0cnVj
dCBSVENSdHBUcmFuc2NlaXZlckluaXQgewogICAgIFJUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0aW9u
IGRpcmVjdGlvbjsKIH07CkBAIC02NCwxMCArNjQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxSVENQZWVyQ29ubmVjdGlvbj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKICAg
ICB2aXJ0dWFsIH5SVENQZWVyQ29ubmVjdGlvbigpOwogCi0gICAgdXNpbmcgQW5zd2VyT3B0aW9u
cyA9IFJUQ0Fuc3dlck9wdGlvbnM7CiAgICAgdXNpbmcgRGF0YUNoYW5uZWxJbml0ID0gUlRDRGF0
YUNoYW5uZWxJbml0OwotICAgIHVzaW5nIE9mZmVyQW5zd2VyT3B0aW9ucyA9IFJUQ09mZmVyQW5z
d2VyT3B0aW9uczsKLSAgICB1c2luZyBPZmZlck9wdGlvbnMgPSBSVENPZmZlck9wdGlvbnM7CiAK
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiBpbml0aWFsaXplV2l0aChEb2N1bWVudCYsIFJUQ0NvbmZp
Z3VyYXRpb24mJik7CiAKQEAgLTk3LDEyICs5NCwxMiBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFJU
Q1Nlc3Npb25EZXNjcmlwdGlvbj4gY3VycmVudFJlbW90ZURlc2NyaXB0aW9uKCkgY29uc3Q7CiAg
ICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9u
KCkgY29uc3Q7CiAKLSAgICBTdHJpbmcgc2lnbmFsaW5nU3RhdGUoKSBjb25zdDsKKyAgICBSVENT
aWduYWxpbmdTdGF0ZSBzaWduYWxpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2lnbmFsaW5n
U3RhdGU7IH0KIAogICAgIHZvaWQgcXVldWVkQWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0
ZSYsIERPTVByb21pc2U8dm9pZD4mJik7CiAKLSAgICBTdHJpbmcgaWNlR2F0aGVyaW5nU3RhdGUo
KSBjb25zdDsKLSAgICBTdHJpbmcgaWNlQ29ubmVjdGlvblN0YXRlKCkgY29uc3Q7CisgICAgUlRD
SWNlR2F0aGVyaW5nU3RhdGUgaWNlR2F0aGVyaW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2lj
ZUdhdGhlcmluZ1N0YXRlOyB9CisgICAgUlRDSWNlQ29ubmVjdGlvblN0YXRlIGljZUNvbm5lY3Rp
b25TdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1faWNlQ29ubmVjdGlvblN0YXRlOyB9CiAKICAgICBj
b25zdCBSVENDb25maWd1cmF0aW9uJiBnZXRDb25maWd1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9jb25maWd1cmF0aW9uOyB9CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q29uZmlndXJhdGlv
bihSVENDb25maWd1cmF0aW9uJiYpOwpAQCAtMTI1LDE3ICsxMjIsMTQgQEAgcHVibGljOgogCiAg
ICAgLy8gQVBJIHVzZWQgYnkgUGVlckNvbm5lY3Rpb25CYWNrZW5kIGFuZCByZWxhdGl2ZXMKICAg
ICB2b2lkIGFkZFRyYW5zY2VpdmVyKFJlZjxSVENSdHBUcmFuc2NlaXZlcj4mJik7Ci0gICAgdm9p
ZCBzZXRTaWduYWxpbmdTdGF0ZShQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGUp
OwotICAgIHZvaWQgdXBkYXRlSWNlR2F0aGVyaW5nU3RhdGUoUGVlckNvbm5lY3Rpb25TdGF0ZXM6
OkljZUdhdGhlcmluZ1N0YXRlKTsKLSAgICB2b2lkIHVwZGF0ZUljZUNvbm5lY3Rpb25TdGF0ZShQ
ZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlQ29ubmVjdGlvblN0YXRlKTsKKyAgICB2b2lkIHNldFNp
Z25hbGluZ1N0YXRlKFJUQ1NpZ25hbGluZ1N0YXRlKTsKKyAgICB2b2lkIHVwZGF0ZUljZUdhdGhl
cmluZ1N0YXRlKFJUQ0ljZUdhdGhlcmluZ1N0YXRlKTsKKyAgICB2b2lkIHVwZGF0ZUljZUNvbm5l
Y3Rpb25TdGF0ZShSVENJY2VDb25uZWN0aW9uU3RhdGUpOwogCiAgICAgdm9pZCBzY2hlZHVsZU5l
Z290aWF0aW9uTmVlZGVkRXZlbnQoKTsKIAogICAgIFJUQ1J0cFNlbmRlckNsaWVudCYgc2VuZGVy
Q2xpZW50KCkgeyByZXR1cm4gKnRoaXM7IH0KICAgICB2b2lkIGZpcmVFdmVudChFdmVudCYpOwot
ICAgIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZSBpbnRlcm5hbFNpZ25hbGlu
Z1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zaWduYWxpbmdTdGF0ZTsgfQotICAgIFBlZXJDb25u
ZWN0aW9uU3RhdGVzOjpJY2VHYXRoZXJpbmdTdGF0ZSBpbnRlcm5hbEljZUdhdGhlcmluZ1N0YXRl
KCkgY29uc3QgeyByZXR1cm4gbV9pY2VHYXRoZXJpbmdTdGF0ZTsgfQotICAgIFBlZXJDb25uZWN0
aW9uU3RhdGVzOjpJY2VDb25uZWN0aW9uU3RhdGUgaW50ZXJuYWxJY2VDb25uZWN0aW9uU3RhdGUo
KSBjb25zdCB7IHJldHVybiBtX2ljZUNvbm5lY3Rpb25TdGF0ZTsgfQogCiAgICAgdm9pZCBkaXNh
YmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkgeyBtX2JhY2tlbmQtPmRpc2FibGVJQ0VDYW5kaWRh
dGVGaWx0ZXJpbmcoKTsgfQogICAgIHZvaWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkg
eyBtX2JhY2tlbmQtPmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOyB9CkBAIC0xNjEsOSAr
MTU1LDkgQEAgcHJpdmF0ZToKICAgICAvLyBSVENSdHBTZW5kZXJDbGllbnQKICAgICB2b2lkIHJl
cGxhY2VUcmFjayhSVENSdHBTZW5kZXImLCBSZWY8TWVkaWFTdHJlYW1UcmFjaz4mJiwgRE9NUHJv
bWlzZTx2b2lkPiYmKSBmaW5hbDsKIAotICAgIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxp
bmdTdGF0ZSBtX3NpZ25hbGluZ1N0YXRlIHsgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGlu
Z1N0YXRlOjpTdGFibGUgfTsKLSAgICBQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlR2F0aGVyaW5n
U3RhdGUgbV9pY2VHYXRoZXJpbmdTdGF0ZSB7IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VHYXRo
ZXJpbmdTdGF0ZTo6TmV3IH07Ci0gICAgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUNvbm5lY3Rp
b25TdGF0ZSBtX2ljZUNvbm5lY3Rpb25TdGF0ZSB7IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VD
b25uZWN0aW9uU3RhdGU6Ok5ldyB9OworICAgIFJUQ1NpZ25hbGluZ1N0YXRlIG1fc2lnbmFsaW5n
U3RhdGUgeyBSVENTaWduYWxpbmdTdGF0ZTo6U3RhYmxlIH07CisgICAgUlRDSWNlR2F0aGVyaW5n
U3RhdGUgbV9pY2VHYXRoZXJpbmdTdGF0ZSB7IFJUQ0ljZUdhdGhlcmluZ1N0YXRlOjpOZXcgfTsK
KyAgICBSVENJY2VDb25uZWN0aW9uU3RhdGUgbV9pY2VDb25uZWN0aW9uU3RhdGUgeyBSVENJY2VD
b25uZWN0aW9uU3RhdGU6Ok5ldyB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJ0cFRyYW5zY2Vp
dmVyU2V0PiBtX3RyYW5zY2VpdmVyU2V0IHsgc3RkOjp1bmlxdWVfcHRyPFJ0cFRyYW5zY2VpdmVy
U2V0PihuZXcgUnRwVHJhbnNjZWl2ZXJTZXQoKSkgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbAppbmRleCBi
NTk5ZTQ2NGUwMTMyNmU1MjFmMjliMTE1MjM0NGUxNmQxYTk1NzNjLi5mZWRlNDU3NmRiZmVmODdi
NmYwODlhNmVhZjgwZDJjY2IxYjhlY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbApAQCAtOTIsMTIgKzky
LDkgQEAKICAgICAvLyBGSVhNRSAxNjk2NDQ6IHVwZGF0ZSBwYXJhbWV0ZXIgdG8gKFJUQ0ljZUNh
bmRpZGF0ZUluaXQgb3IgUlRDSWNlQ2FuZGlkYXRlKQogICAgIFtKU0J1aWx0aW5dIFByb21pc2U8
dm9pZD4gYWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZSBjYW5kaWRhdGUpOwogCi0gICAg
Ly8gRklYTUUgMTY5NjQ0OiBjb252ZXJ0IHRvIGVudW0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHNpZ25hbGluZ1N0YXRlOwotICAgIC8vIEZJWE1FIDE2OTY0NDogY29udmVydCB0
byBlbnVtCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBpY2VHYXRoZXJpbmdTdGF0
ZTsKLSAgICAvLyBGSVhNRSAxNjk2NDQ6IGNvbnZlcnQgdG8gZW51bQotICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgaWNlQ29ubmVjdGlvblN0YXRlOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBSVENTaWduYWxpbmdTdGF0ZSBzaWduYWxpbmdTdGF0ZTsKKyAgICByZWFkb25seSBhdHRy
aWJ1dGUgUlRDSWNlR2F0aGVyaW5nU3RhdGUgaWNlR2F0aGVyaW5nU3RhdGU7CisgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZSBpY2VDb25uZWN0aW9uU3RhdGU7CiAK
ICAgICAvLyBGSVhNRSAxNjk2NDQ6IG1pc3NpbmcgY29ubmVjdGlvblN0YXRlCiAgICAgLy8gRklY
TUUgMTY5NjQ0OiBtaXNzaW5nIGNhblRyaWNrbGVJY2VDYW5kaWRhdGVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1NpZ25hbGluZ1N0YXRlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1NpZ25hbGluZ1N0YXRlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDc4MjcwMmMzYzhkMDhkYTU2YTlmNDEwZjZmZGUyZDA2NjY2YWU4NQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2lnbmFs
aW5nU3RhdGUuaApAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJQZWVyQ29ubmVjdGlvblN0YXRlcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTaWduYWxpbmdTdGF0ZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1NpZ25hbGluZ1N0YXRlLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMjJiY2Y5OTA2ZTliZjI3N2M4OTM0MmQ2NWZjNmJkYWE5NTIzZjNkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTaWduYWxpbmdT
dGF0ZS5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25h
bD1XRUJfUlRDLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9UGVlckNvbm5lY3Rpb24KK10gZW51bSBS
VENTaWduYWxpbmdTdGF0ZSB7CisgICAgInN0YWJsZSIsCisgICAgImhhdmUtbG9jYWwtb2ZmZXIi
LAorICAgICJoYXZlLXJlbW90ZS1vZmZlciIsCisgICAgImhhdmUtbG9jYWwtcHJhbnN3ZXIiLAor
ICAgICJoYXZlLXJlbW90ZS1wcmFuc3dlciIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDJhNTk3ZjgxNDkwMjIwMGFjMTJmZDBkMDU5ZTMwNDU0
NmEwNTI5YjQuLjI2YTVmYTljMTNiNDk4MjYyNzI1MjdhOWYwZDNmZmM3ZTI4MDNhMjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ01lZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVn
aWVzLmgiCiAjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWwuaCIKICNpbmNsdWRlICJSVENEYXRhQ2hh
bm5lbEV2ZW50LmgiCisjaW5jbHVkZSAiUlRDRW51bXMuaCIKICNpbmNsdWRlICJSVENQZWVyQ29u
bmVjdGlvbi5oIgogI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUg
IlJUQ1N0YXRzUmVwb3J0LmgiCkBAIC0zNDgsMjEgKzM0OSwyMSBAQCB2b2lkIExpYldlYlJUQ01l
ZGlhRW5kcG9pbnQ6OlN0YXRzQ29sbGVjdG9yOjpPblN0YXRzRGVsaXZlcmVkKGNvbnN0IHJ0Yzo6
c2NvcGVkXwogICAgIH0pOwogfQogCi1zdGF0aWMgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25h
bGluZ1N0YXRlIHNpZ25hbGluZ1N0YXRlKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6
OlNpZ25hbGluZ1N0YXRlIHN0YXRlKQorc3RhdGljIFJUQ1NpZ25hbGluZ1N0YXRlIHNpZ25hbGlu
Z1N0YXRlKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlNpZ25hbGluZ1N0YXRlIHN0
YXRlKQogewogICAgIHN3aXRjaCAoc3RhdGUpIHsKICAgICBjYXNlIHdlYnJ0Yzo6UGVlckNvbm5l
Y3Rpb25JbnRlcmZhY2U6OmtTdGFibGU6Ci0gICAgICAgIHJldHVybiBQZWVyQ29ubmVjdGlvblN0
YXRlczo6U2lnbmFsaW5nU3RhdGU6OlN0YWJsZTsKKyAgICAgICAgcmV0dXJuIFJUQ1NpZ25hbGlu
Z1N0YXRlOjpTdGFibGU7CiAgICAgY2FzZSB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNl
OjprSGF2ZUxvY2FsT2ZmZXI6Ci0gICAgICAgIHJldHVybiBQZWVyQ29ubmVjdGlvblN0YXRlczo6
U2lnbmFsaW5nU3RhdGU6OkhhdmVMb2NhbE9mZmVyOworICAgICAgICByZXR1cm4gUlRDU2lnbmFs
aW5nU3RhdGU6OkhhdmVMb2NhbE9mZmVyOwogICAgIGNhc2Ugd2VicnRjOjpQZWVyQ29ubmVjdGlv
bkludGVyZmFjZTo6a0hhdmVMb2NhbFByQW5zd2VyOgotICAgICAgICByZXR1cm4gUGVlckNvbm5l
Y3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxQckFuc3dlcjsKKyAgICAgICAg
cmV0dXJuIFJUQ1NpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxQcmFuc3dlcjsKICAgICBjYXNlIHdl
YnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OmtIYXZlUmVtb3RlT2ZmZXI6Ci0gICAgICAg
IHJldHVybiBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OkhhdmVSZW1vdGVP
ZmZlcjsKKyAgICAgICAgcmV0dXJuIFJUQ1NpZ25hbGluZ1N0YXRlOjpIYXZlUmVtb3RlT2ZmZXI7
CiAgICAgY2FzZSB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjprSGF2ZVJlbW90ZVBy
QW5zd2VyOgotICAgICAgICByZXR1cm4gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0
YXRlOjpIYXZlUmVtb3RlUHJBbnN3ZXI7CisgICAgICAgIHJldHVybiBSVENTaWduYWxpbmdTdGF0
ZTo6SGF2ZVJlbW90ZVByYW5zd2VyOwogICAgIGNhc2Ugd2VicnRjOjpQZWVyQ29ubmVjdGlvbklu
dGVyZmFjZTo6a0Nsb3NlZDoKLSAgICAgICAgcmV0dXJuIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpT
aWduYWxpbmdTdGF0ZTo6Q2xvc2VkOworICAgICAgICByZXR1cm4gUlRDU2lnbmFsaW5nU3RhdGU6
OkNsb3NlZDsKICAgICB9CiB9CiAKQEAgLTQ5NSwzNiArNDk2LDM2IEBAIHZvaWQgTGliV2ViUlRD
TWVkaWFFbmRwb2ludDo6T25SZW5lZ290aWF0aW9uTmVlZGVkKCkKICAgICB9KTsKIH0KIAotc3Rh
dGljIGlubGluZSBQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlQ29ubmVjdGlvblN0YXRlIGljZUNv
bm5lY3Rpb25TdGF0ZSh3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpJY2VDb25uZWN0
aW9uU3RhdGUgc3RhdGUpCitzdGF0aWMgaW5saW5lIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZSB0b1JU
Q0ljZUNvbm5lY3Rpb25TdGF0ZSh3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpJY2VD
b25uZWN0aW9uU3RhdGUgc3RhdGUpCiB7CiAgICAgc3dpdGNoIChzdGF0ZSkgewogICAgIGNhc2Ug
d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6a0ljZUNvbm5lY3Rpb25OZXc6Ci0gICAg
ICAgIHJldHVybiBQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlQ29ubmVjdGlvblN0YXRlOjpOZXc7
CisgICAgICAgIHJldHVybiBSVENJY2VDb25uZWN0aW9uU3RhdGU6Ok5ldzsKICAgICBjYXNlIHdl
YnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OmtJY2VDb25uZWN0aW9uQ2hlY2tpbmc6Ci0g
ICAgICAgIHJldHVybiBQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlQ29ubmVjdGlvblN0YXRlOjpD
aGVja2luZzsKKyAgICAgICAgcmV0dXJuIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZTo6Q2hlY2tpbmc7
CiAgICAgY2FzZSB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjprSWNlQ29ubmVjdGlv
bkNvbm5lY3RlZDoKLSAgICAgICAgcmV0dXJuIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VDb25u
ZWN0aW9uU3RhdGU6OkNvbm5lY3RlZDsKKyAgICAgICAgcmV0dXJuIFJUQ0ljZUNvbm5lY3Rpb25T
dGF0ZTo6Q29ubmVjdGVkOwogICAgIGNhc2Ugd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFj
ZTo6a0ljZUNvbm5lY3Rpb25Db21wbGV0ZWQ6Ci0gICAgICAgIHJldHVybiBQZWVyQ29ubmVjdGlv
blN0YXRlczo6SWNlQ29ubmVjdGlvblN0YXRlOjpDb21wbGV0ZWQ7CisgICAgICAgIHJldHVybiBS
VENJY2VDb25uZWN0aW9uU3RhdGU6OkNvbXBsZXRlZDsKICAgICBjYXNlIHdlYnJ0Yzo6UGVlckNv
bm5lY3Rpb25JbnRlcmZhY2U6OmtJY2VDb25uZWN0aW9uRmFpbGVkOgotICAgICAgICByZXR1cm4g
UGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUNvbm5lY3Rpb25TdGF0ZTo6RmFpbGVkOworICAgICAg
ICByZXR1cm4gUlRDSWNlQ29ubmVjdGlvblN0YXRlOjpGYWlsZWQ7CiAgICAgY2FzZSB3ZWJydGM6
OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjprSWNlQ29ubmVjdGlvbkRpc2Nvbm5lY3RlZDoKLSAg
ICAgICAgcmV0dXJuIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VDb25uZWN0aW9uU3RhdGU6OkRp
c2Nvbm5lY3RlZDsKKyAgICAgICAgcmV0dXJuIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZTo6RGlzY29u
bmVjdGVkOwogICAgIGNhc2Ugd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6a0ljZUNv
bm5lY3Rpb25DbG9zZWQ6Ci0gICAgICAgIHJldHVybiBQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNl
Q29ubmVjdGlvblN0YXRlOjpDbG9zZWQ7CisgICAgICAgIHJldHVybiBSVENJY2VDb25uZWN0aW9u
U3RhdGU6OkNsb3NlZDsKICAgICBjYXNlIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6
OmtJY2VDb25uZWN0aW9uTWF4OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgcmV0dXJuIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VDb25uZWN0aW9uU3RhdGU6Ok5ldzsK
KyAgICAgICAgcmV0dXJuIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZTo6TmV3OwogICAgIH0KIH0KIAog
dm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpPbkljZUNvbm5lY3Rpb25DaGFuZ2Uod2VicnRj
OjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6SWNlQ29ubmVjdGlvblN0YXRlIHN0YXRlKQogewot
ICAgIGF1dG8gY29ubmVjdGlvblN0YXRlID0gaWNlQ29ubmVjdGlvblN0YXRlKHN0YXRlKTsKKyAg
ICBhdXRvIGNvbm5lY3Rpb25TdGF0ZSA9IHRvUlRDSWNlQ29ubmVjdGlvblN0YXRlKHN0YXRlKTsK
ICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNv
bm5lY3Rpb25TdGF0ZV0gewogICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+aXNTdG9wcGVkKCkp
CiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BlZXJD
b25uZWN0aW9uQmFja2VuZC5jb25uZWN0aW9uKCkuaW50ZXJuYWxJY2VDb25uZWN0aW9uU3RhdGUo
KSAhPSBjb25uZWN0aW9uU3RhdGUpCisgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BlZXJD
b25uZWN0aW9uQmFja2VuZC5jb25uZWN0aW9uKCkuaWNlQ29ubmVjdGlvblN0YXRlKCkgIT0gY29u
bmVjdGlvblN0YXRlKQogICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY29ubmVjdGlvbigpLnVwZGF0ZUljZUNvbm5lY3Rpb25TdGF0ZShjb25uZWN0aW9u
U3RhdGUpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Bl
ZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKaW5kZXggYmE5M2U3ZGFmMzFjNTNiMTdiM2JmYWZkZDY0
NGYwMTZlOWFkNjJmMi4uNTY2NjRjOGQ5Y2Q0MWE1MWNlYTRkNDUwNWE4ODFjMjc3NjA2MTQ4NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3BwCkBAIC03MywxNCArNzMsMTQgQEAgc3RhdGljIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25J
bnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbkZyb21NZWRpYUUKIHsKICAg
ICB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uIHJ0Y0Nv
bmZpZ3VyYXRpb247CiAKLSAgICBpZiAoY29uZmlndXJhdGlvbi5pY2VUcmFuc3BvcnRQb2xpY3kg
PT0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZVRyYW5zcG9ydFBvbGljeTo6UmVsYXkpCisgICAg
aWYgKGNvbmZpZ3VyYXRpb24uaWNlVHJhbnNwb3J0UG9saWN5ID09IFJUQ0ljZVRyYW5zcG9ydFBv
bGljeTo6UmVsYXkpCiAgICAgICAgIHJ0Y0NvbmZpZ3VyYXRpb24udHlwZSA9IHdlYnJ0Yzo6UGVl
ckNvbm5lY3Rpb25JbnRlcmZhY2U6OmtSZWxheTsKIAogICAgIC8vIEZJWE1FOiBTdXBwb3J0IFBl
ZXJDb25uZWN0aW9uU3RhdGVzOjpCdW5kbGVQb2xpY3k6Ok1heEJ1bmRsZS4KICAgICAvLyBMaWJX
ZWJSVEMgZG9lcyBub3QgbGlrZSBpdCBhbmQgd2lsbCBmYWlsIHRvIHNldCBhbnkgY29uZmlndXJh
dGlvbiBmaWVsZCBvdGhlcndpc2UuCiAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjkzODkuCiAKLSAgICBpZiAoY29uZmlndXJhdGlvbi5idW5kbGVQ
b2xpY3kgPT0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkJ1bmRsZVBvbGljeTo6TWF4Q29tcGF0KQor
ICAgIGlmIChjb25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSA9PSBSVENCdW5kbGVQb2xpY3k6Ok1h
eENvbXBhdCkKICAgICAgICAgcnRjQ29uZmlndXJhdGlvbi5idW5kbGVfcG9saWN5ID0gd2VicnRj
OjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6a0J1bmRsZVBvbGljeU1heENvbXBhdDsKIAogICAg
IGZvciAoYXV0byYgc2VydmVyIDogY29uZmlndXJhdGlvbi5pY2VTZXJ2ZXJzKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2E2
MjhjZjhiYzg0ODM5ZDljOWFkMWMzYmNhYjI0MTlmY2I4OThjMC4uZjc4OWYxMDMxYjg0NDNmYTU4
MDliNGI3ZGVlOWZkMTIxNTRlYjY5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQyNSw2ICsxNDI1LDE1IEBACiAJCTMxNkRD
QjIyMUU3OENBNTUwMDFCNUY4NyAvKiBKU1JUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZEQ0IxQzFFNzhD
QTU1MDAxQjVGODcgLyogSlNSVENSdHBUcmFuc2NlaXZlckRpcmVjdGlvbi5oICovOyB9OwogCQkz
MTZEQ0IzMTFFNzhGQjZDMDAxQjVGODcgLyogSlNSVENBbnN3ZXJPcHRpb25zLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkRDQjJEMUU3OEY0OTYw
MDFCNUY4NyAvKiBKU1JUQ0Fuc3dlck9wdGlvbnMuY3BwICovOyB9OwogCQkzMTZEQ0IzMjFFNzhG
QjcwMDAxQjVGODcgLyogSlNSVENPZmZlck9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RENCMkYxRTc4RjQ5NjAwMUI1Rjg3IC8qIEpT
UlRDT2ZmZXJPcHRpb25zLmNwcCAqLzsgfTsKKwkJMzE2RENCMzcxRTc5MEUxQjAwMUI1Rjg3IC8q
IFJUQ0ljZUdhdGhlcmluZ1N0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMTZEQ0IzNDFFNzkwRTFCMDAxQjVGODcgLyogUlRDSWNlR2F0aGVyaW5n
U3RhdGUuaCAqLzsgfTsKKwkJMzE2RENCM0QxRTc5MEUyQzAwMUI1Rjg3IC8qIFJUQ0ljZUNvbm5l
Y3Rpb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzE2RENCM0ExRTc5MEUyQzAwMUI1Rjg3IC8qIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5oICov
OyB9OworCQkzMTZEQ0I0MzFFNzkwRTNDMDAxQjVGODcgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkRDQjQwMUU3
OTBFM0MwMDFCNUY4NyAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovOyB9OworCQkzMTZEQ0I0QjFF
NzkxMEE2MDAxQjVGODcgLyogSlNSVENJY2VDb25uZWN0aW9uU3RhdGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RENCNDUxRTc5MTBBNjAwMUI1
Rjg3IC8qIEpTUlRDSWNlQ29ubmVjdGlvblN0YXRlLmNwcCAqLzsgfTsKKwkJMzE2RENCNEMxRTc5
MTBBNjAwMUI1Rjg3IC8qIEpTUlRDSWNlQ29ubmVjdGlvblN0YXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZEQ0I0NjFFNzkxMEE2MDAxQjVGODcg
LyogSlNSVENJY2VDb25uZWN0aW9uU3RhdGUuaCAqLzsgfTsKKwkJMzE2RENCNEQxRTc5MTBBNjAw
MUI1Rjg3IC8qIEpTUlRDSWNlR2F0aGVyaW5nU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RENCNDcxRTc5MTBBNjAwMUI1Rjg3IC8qIEpT
UlRDSWNlR2F0aGVyaW5nU3RhdGUuY3BwICovOyB9OworCQkzMTZEQ0I0RTFFNzkxMEE2MDAxQjVG
ODcgLyogSlNSVENJY2VHYXRoZXJpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RENCNDgxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDSWNl
R2F0aGVyaW5nU3RhdGUuaCAqLzsgfTsKKwkJMzE2RENCNEYxRTc5MTBBNjAwMUI1Rjg3IC8qIEpT
UlRDU2lnbmFsaW5nU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzE2RENCNDkxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDU2lnbmFsaW5nU3Rh
dGUuY3BwICovOyB9OworCQkzMTZEQ0I1MDFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENTaWduYWxp
bmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzE2RENCNEExRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDU2lnbmFsaW5nU3RhdGUuaCAqLzsgfTsK
IAkJMzE2RkUwNzEwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkZFMDZEMEU2Q0NC
RUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lUnVsZS5jcHAgKi87IH07CiAJCTMxNkZFMDcyMEU2
Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUwNkUwRTZDQ0JFRTAwQkY2MDg4IC8qIEpT
Q1NTS2V5ZnJhbWVSdWxlLmggKi87IH07CiAJCTMxNkZFMDczMEU2Q0NCRUUwMEJGNjA4OCAvKiBK
U0NTU0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzE2RkUwNkYwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVzUnVs
ZS5jcHAgKi87IH07CkBAIC04OTE1LDYgKzg5MjQsMTggQEAKIAkJMzE2RENCMkUxRTc4RjQ5NjAw
MUI1Rjg3IC8qIEpTUlRDQW5zd2VyT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1JUQ0Fuc3dlck9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMzE2RENCMkYxRTc4RjQ5NjAwMUI1Rjg3IC8qIEpTUlRDT2ZmZXJPcHRpb25zLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUlRDT2ZmZXJPcHRpb25zLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2RENCMzAxRTc4RjQ5NjAwMUI1Rjg3IC8q
IEpTUlRDT2ZmZXJPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
UlRDT2ZmZXJPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkRDQjM0
MUU3OTBFMUIwMDFCNUY4NyAvKiBSVENJY2VHYXRoZXJpbmdTdGF0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSVENJY2VHYXRoZXJpbmdTdGF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMTZEQ0IzNTFFNzkwRTFCMDAxQjVGODcgLyogUlRDSWNlR2F0aGVy
aW5nU3RhdGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ0ljZUdhdGhlcmluZ1N0YXRl
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2RENCM0ExRTc5MEUyQzAwMUI1
Rjg3IC8qIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSVENJY2VDb25uZWN0aW9uU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzE2RENCM0IxRTc5MEUyQzAwMUI1Rjg3IC8qIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRDSWNlQ29ubmVjdGlvblN0YXRlLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2RENCNDAxRTc5MEUzQzAwMUI1Rjg3IC8qIFJU
Q1NpZ25hbGluZ1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ1Np
Z25hbGluZ1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkRDQjQxMUU3
OTBFM0MwMDFCNUY4NyAvKiBSVENTaWduYWxpbmdTdGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUlRDU2lnbmFsaW5nU3RhdGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzMTZEQ0I0NTFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENJY2VDb25uZWN0aW9uU3RhdGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSVENJY2VDb25uZWN0aW9u
U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTZEQ0I0NjFFNzkxMEE2
MDAxQjVGODcgLyogSlNSVENJY2VDb25uZWN0aW9uU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNSVENJY2VDb25uZWN0aW9uU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzE2RENCNDcxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDSWNlR2F0aGVy
aW5nU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSVENJ
Y2VHYXRoZXJpbmdTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkRD
QjQ4MUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUdhdGhlcmluZ1N0YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUlRDSWNlR2F0aGVyaW5nU3RhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2RENCNDkxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRD
U2lnbmFsaW5nU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNSVENTaWduYWxpbmdTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMx
NkRDQjRBMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ1NpZ25hbGluZ1N0YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUlRDU2lnbmFsaW5nU3RhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2RkUwNkQwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5
ZnJhbWVSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NT
S2V5ZnJhbWVSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2RkUwNkUw
RTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTQ1NTS2V5ZnJhbWVSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTMxNkZFMDZGMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lc1J1bGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NLZXlmcmFtZXNS
dWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1ODgxLDYgKzE1OTAyLDEw
IEBACiAJCQkJMDcyMjFCNzQxN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ0ljZUNhbmRpZGF0ZUV2ZW50
LmNwcCAqLywKIAkJCQkwNzIyMUI3NTE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDSWNlQ2FuZGlkYXRl
RXZlbnQuaCAqLywKIAkJCQkwNzIyMUI3NjE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDSWNlQ2FuZGlk
YXRlRXZlbnQuaWRsICovLAorCQkJCTMxNkRDQjNBMUU3OTBFMkMwMDFCNUY4NyAvKiBSVENJY2VD
b25uZWN0aW9uU3RhdGUuaCAqLywKKwkJCQkzMTZEQ0IzQjFFNzkwRTJDMDAxQjVGODcgLyogUlRD
SWNlQ29ubmVjdGlvblN0YXRlLmlkbCAqLywKKwkJCQkzMTZEQ0IzNDFFNzkwRTFCMDAxQjVGODcg
LyogUlRDSWNlR2F0aGVyaW5nU3RhdGUuaCAqLywKKwkJCQkzMTZEQ0IzNTFFNzkwRTFCMDAxQjVG
ODcgLyogUlRDSWNlR2F0aGVyaW5nU3RhdGUuaWRsICovLAogCQkJCTA3QUI5OTY3MThEQTNDMDEw
MDE4NzcxRSAvKiBSVENJY2VTZXJ2ZXIuaCAqLywKIAkJCQkwN0FCOTk2ODE4REEzQzAxMDAxODc3
MUUgLyogUlRDSWNlU2VydmVyLmlkbCAqLywKIAkJCQk1RTY2NTMwOTFEQTQzN0JGMDBGREQ4NEMg
LyogUlRDSWNlVHJhbnNwb3J0LmggKi8sCkBAIC0xNTkwOCw2ICsxNTkzMyw4IEBACiAJCQkJMDcy
MjFCN0ExN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgKi8sCiAJ
CQkJMDcyMjFCN0IxN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oICov
LAogCQkJCTA3MjIxQjdDMTdDRUMzMjcwMDg0OEU1MSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb24u
aWRsICovLAorCQkJCTMxNkRDQjQwMUU3OTBFM0MwMDFCNUY4NyAvKiBSVENTaWduYWxpbmdTdGF0
ZS5oICovLAorCQkJCTMxNkRDQjQxMUU3OTBFM0MwMDFCNUY4NyAvKiBSVENTaWduYWxpbmdTdGF0
ZS5pZGwgKi8sCiAJCQkJMDcyMjFCODQxN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ1N0YXRzUmVwb3J0
LmggKi8sCiAJCQkJMDcyMjFCODUxN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ1N0YXRzUmVwb3J0Lmlk
bCAqLywKIAkJCQk1RTJDNDM2NDFCQ0VFMzcyMDAwMUUyQkMgLyogUlRDVHJhY2tFdmVudC5jcHAg
Ki8sCkBAIC0xNjEwMyw2ICsxNjEzMCwxMCBAQAogCQkJCTA3OTY5RDlDMTdEMTQxNTEwMDdGRjg0
MiAvKiBKU1JUQ0ljZUNhbmRpZGF0ZS5oICovLAogCQkJCTA3OTY5RDlEMTdEMTQxNTEwMDdGRjg0
MiAvKiBKU1JUQ0ljZUNhbmRpZGF0ZUV2ZW50LmNwcCAqLywKIAkJCQkwNzk2OUQ5RTE3RDE0MTUx
MDA3RkY4NDIgLyogSlNSVENJY2VDYW5kaWRhdGVFdmVudC5oICovLAorCQkJCTMxNkRDQjQ1MUU3
OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5jcHAgKi8sCisJCQkJMzE2
RENCNDYxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDSWNlQ29ubmVjdGlvblN0YXRlLmggKi8sCisJ
CQkJMzE2RENCNDcxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDSWNlR2F0aGVyaW5nU3RhdGUuY3Bw
ICovLAorCQkJCTMxNkRDQjQ4MUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUdhdGhlcmluZ1N0
YXRlLmggKi8sCiAJCQkJMDczNzk0RTkxOUVFMzQxRTAwRTVBMDQ1IC8qIEpTUlRDSWNlU2VydmVy
LmNwcCAqLywKIAkJCQkwNzM3OTRFQTE5RUUzNDFFMDBFNUEwNDUgLyogSlNSVENJY2VTZXJ2ZXIu
aCAqLywKIAkJCQkzMTZEQ0IxOTFFNzhDQTU1MDAxQjVGODcgLyogSlNSVENPZmZlckFuc3dlck9w
dGlvbnMuY3BwICovLApAQCAtMTYxMjEsNiArMTYxNTIsOCBAQAogCQkJCTMxNkRDQjFDMUU3OENB
NTUwMDFCNUY4NyAvKiBKU1JUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0aW9uLmggKi8sCiAJCQkJMDc5
NjlEQTExN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCAqLywK
IAkJCQkwNzk2OURBMjE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb24u
aCAqLywKKwkJCQkzMTZEQ0I0OTFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENTaWduYWxpbmdTdGF0
ZS5jcHAgKi8sCisJCQkJMzE2RENCNEExRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDU2lnbmFsaW5n
U3RhdGUuaCAqLywKIAkJCQkwNzk2OURBNzE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1Jl
cG9ydC5jcHAgKi8sCiAJCQkJMDc5NjlEQTgxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNS
ZXBvcnQuaCAqLywKIAkJCQk1RTJDNDM2OTFCQ0YwNUM4MDAwMUUyQkMgLyogSlNSVENUcmFja0V2
ZW50LmNwcCAqLywKQEAgLTI2MTE4LDYgKzI2MTUxLDcgQEAKIAkJCQk5MzMwOUREOTA5OUU2NDky
MDA1NkU1ODEgLyogQXBwbHlTdHlsZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkRE
OEY2MEQ5MUU2QUYwMDBGODlFRSAvKiBBcmNoaXZlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJE
RDhGRDBEOTFFNkFGMDAwRjg5RUUgLyogQXJjaGl2ZUZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAor
CQkJCTMxNkRDQjRFMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUdhdGhlcmluZ1N0YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTJERDhGQzBEOTFFNkFGMDAwRjg5RUUgLyogQXJjaGl2ZVJl
c291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJERDhGODBEOTFFNkFGMDAwRjg5RUUgLyog
QXJjaGl2ZVJlc291cmNlQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1Njg2Q0Ex
M0FDMTgwMjAwQjY5QzY4IC8qIEFzeW5jQXVkaW9EZWNvZGVyLmggaW4gSGVhZGVycyAqLywKQEAg
LTI3MTg5LDYgKzI3MjIzLDcgQEAKIAkJCQk1MTg1RkNBNzFCQjRDNEU4MDAxMjg5OEYgLyogSURC
UmVjb3JkSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4NUZDQTkxQkI0QzRFODAw
MTI4OThGIC8qIElEQlJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNDEyOTk5MUM2OTc2
OTAwMDU5RTcxNCAvKiBJREJSZXF1ZXN0Q29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywK
KwkJCQkzMTZEQ0IzRDFFNzkwRTJDMDAxQjVGODcgLyogUlRDSWNlQ29ubmVjdGlvblN0YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTBBNThGQTFCQUNDN0YyMDBDMTkyODIgLyogSURCUmVxdWVz
dERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNDVCMTBBMUJDNDhFMkUwMEU4NjIxOSAvKiBJ
REJSZXNvdXJjZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRDcyMzZEMUJCNjE3
NDkwMDQ3OENBMyAvKiBJREJSZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTI3NzI5LDYg
KzI3NzY0LDcgQEAKIAkJCQk2NURGMzIwMDA5RDFDQzYwMDAwQkUzMjUgLyogSlNQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYxM0VFMENENjgxQkIwMEZBREE3
NSAvKiBKU1Byb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NzY2NEZEMTgzRTZC
NUMwMDEzM0I5MiAvKiBKU1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmggaW4gSGVhZGVycyAq
LywKKwkJCQkzMTZEQ0IzNzFFNzkwRTFCMDAxQjVGODcgLyogUlRDSWNlR2F0aGVyaW5nU3RhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUI2NThGRkEyMTUyMkVGM0EwMERENTU5NSAvKiBKU1JhZGlv
Tm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMjAyMDlEMUNDNjAwMDBCRTMyNSAv
KiBKU1JhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjNGNjQg
LyogSlNSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI4
MDM4LDYgKzI4MDc0LDcgQEAKIAkJCQkxQUUwMEQ1OTE4MkRBQzhEMDAwODdERDcgLyogS2V5ZWRD
b2RpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0E2M0M1MUI3NDMxOEYwMEU3RENEQyAvKiBL
ZXllZERlY29kZXJDRi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QTYzQzYxQjc0MzE5MjAwRTdE
Q0RDIC8qIEtleWVkRW5jb2RlckNGLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTZEQ0I0QzFFNzkx
MEE2MDAxQjVGODcgLyogSlNSVENJY2VDb25uZWN0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE1MTNCM0Q3MTE0QjE2NjYwMDFDNDI5QiAvKiBLZXlFdmVudENvY29hLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyNjU1NDEzOTE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRDb2Rlc0lPUy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUxMUEwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1l
QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTI4NzAzLDYgKzI4NzQwLDcgQEAKIAkJCQk0
MzY3MDhENTEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRp
dmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcwOEQ3MTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5k
ZXJTVkdSZXNvdXJjZUdyYWRpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MDhEOTEyRDlD
QTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMzE2RENCNDMxRTc5MEUzQzAwMUI1Rjg3IC8qIFJUQ1NpZ25hbGluZ1N0YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MDhEQjEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVy
U1ZHUmVzb3VyY2VNYXJrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcwOEREMTJEOUNBNEIw
MDA0NDIzNCAvKiBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDM2NzA4REYxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jlc291cmNlUGF0dGVybi5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yOTI4Myw2ICsyOTMyMSw3IEBACiAJCQkJMDg4QTBFMEExMjZFRjFE
QjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODFERDQ5QzEz
QkExQTYwMDBEQzc2MjcgLyogU1ZHUHJvcGVydHlJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
ODhBMEUwQjEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkzMTZEQ0I1MDFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENTaWduYWxpbmdTdGF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBFMEMxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1By
b3BlcnR5VHJhaXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5QTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEVE
RTE5RjEyQTUwQjhFMDBCOTU3OTcgLyogU1ZHUmVjdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDk0
Niw2ICszMDk4NSw3IEBACiAJCQkJQjJBMDE1QUEwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNz
VHlwZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTExMkY0NzExRTNBODYxMjAwRDZDREZEIC8q
IEdyaWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8q
IEdyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTZEQ0I0QjFF
NzkxMEE2MDAxQjVGODcgLyogSlNSVENJY2VDb25uZWN0aW9uU3RhdGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRTEyREU3MTcxRTRCNzQ5QzAwRjlBQ0NGIC8qIEdyaWRUcmFja1NpemluZ0FsZ29y
aXRobS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RCRjEyNTFGMTJEMDAzRUYyNjkgLyog
SGlkZGVuSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNUJFMTlCMUQ1NEY2QzEw
MEREN0M2OCAvKiBISURHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzA5ODEsNiArMzEw
MjEsNyBAQAogCQkJCUQzNTlENzg5MTI5Q0EyNzEwMDA2RTVEMiAvKiBIVE1MRGV0YWlsc0VsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThFQTc5RjkwQTE5MTZERjAwQThFRjVGIC8qIEhU
TUxEaXJlY3RvcnlFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4RUE3Q0IxMEExOTJC
OUMwMEE4RUY1RiAvKiBIVE1MRGl2RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTZE
Q0I0RjFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENTaWduYWxpbmdTdGF0ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBOEVBNzlGNTBBMTkxNkRGMDBBOEVGNUYgLyogSFRNTERMaXN0RWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUE5MTA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTERv
Y3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0IzODY2MTIyODgzRTkwMEI4MUZGOCAv
KiBIVE1MRG9jdW1lbnRQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTMyMyw2ICszMTM2
NCw3IEBACiAJCQkJOTRFODM5NTUxREZCMkJDNDAwN0JDNkE3IC8qIEpTQ1NTTmFtZXNwYWNlUnVs
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQ2QzIwMjBDMEREQzhGMDAyMENGQzMgLyogSlND
U1NQYWdlUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNENGN0IzMzA5RjZFQ0Q3MDBFQjM2
NjUgLyogSlNDU1NSdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxNkRDQjREMUU3OTEwQTYw
MDFCNUY4NyAvKiBKU1JUQ0ljZUdhdGhlcmluZ1N0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDNDZDMUVFMEMwRERCREYwMDIwQ0ZDMyAvKiBKU0NTU1J1bGVDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQThEMDVGQTcwQTIzQjMwMTAwNUU3MjAzIC8qIEpTQ1NTUnVsZUxpc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5MjI2MkYxMDMyMTA4NDAwNkU3RDVEIC8qIEpTQ1NTUnVs
ZUxpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmgKaW5kZXggOTRiYmUxMDM2YTY1ZTYz
OGI4MDE4YWZhZWU3MDk3NzMxZDdhZWJkZC4uMWE0MzU2ZjI2MWZjYWNlNWUzNGE1ZjAyNzg4OGNh
NTE0ZWQyYzc0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhRW5kcG9pbnQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC02Niw4ICs2Nyw2IEBAIHB1YmxpYzoKICAgICAgICAgRmFpbGVkCiAg
ICAgfTsKIAotICAgIHVzaW5nIEljZVRyYW5zcG9ydFN0YXRlID0gUGVlckNvbm5lY3Rpb25TdGF0
ZXM6OkljZVRyYW5zcG9ydFN0YXRlOwotCiAgICAgdmlydHVhbCB2b2lkIHNldENvbmZpZ3VyYXRp
b24oTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb24mJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lk
IGdlbmVyYXRlRHRsc0luZm8oKSA9IDA7CkBAIC05OCw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgZ290RHRsc0ZpbmdlcnByaW50KGNvbnN0IFN0cmluZyYgZmluZ2VycHJpbnQs
IGNvbnN0IFN0cmluZyYgZmluZ2VycHJpbnRGdW5jdGlvbikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBnb3RJY2VDYW5kaWRhdGUoY29uc3QgU3RyaW5nJiBtaWQsIEljZUNhbmRpZGF0ZSYmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGRvbmVHYXRoZXJpbmdDYW5kaWRhdGVzKGNvbnN0IFN0cmluZyYg
bWlkKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlZChjb25z
dCBTdHJpbmcmIG1pZCwgTWVkaWFFbmRwb2ludDo6SWNlVHJhbnNwb3J0U3RhdGUpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgaWNlVHJhbnNwb3J0U3RhdGVDaGFuZ2VkKGNvbnN0IFN0cmluZyYgbWlk
LCBSVENJY2VUcmFuc3BvcnRTdGF0ZSkgPSAwOwogCiAgICAgdmlydHVhbCB+TWVkaWFFbmRwb2lu
dENsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uLmNwcAppbmRl
eCBjMmRhMzQ0YWEzMGY5NDI1ZjI2YjRjNmU0Y2E3MWJmYmY4NmU2ZWU0Li4wNmY4ZWUwMjEwM2Uz
YTE4NGQwNzJjZTE0MjRjN2E2NGVkMmFlYTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludENvbmZpZ3Vy
YXRpb24uY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBFcmlj
c3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTM1LDcgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1NZWRpYUVuZHBv
aW50Q29uZmlndXJhdGlvbjo6TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb24oVmVjdG9yPEljZVNl
cnZlckluZm8+JiYgaWNlU2VydmVycywgSWNlVHJhbnNwb3J0UG9saWN5IGljZVRyYW5zcG9ydFBv
bGljeSwgQnVuZGxlUG9saWN5IGJ1bmRsZVBvbGljeSkKK01lZGlhRW5kcG9pbnRDb25maWd1cmF0
aW9uOjpNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbihWZWN0b3I8SWNlU2VydmVySW5mbz4mJiBp
Y2VTZXJ2ZXJzLCBSVENJY2VUcmFuc3BvcnRQb2xpY3kgaWNlVHJhbnNwb3J0UG9saWN5LCBSVENC
dW5kbGVQb2xpY3kgYnVuZGxlUG9saWN5KQogICAgIDogaWNlU2VydmVycyhXVEZNb3ZlKGljZVNl
cnZlcnMpKQogICAgICwgaWNlVHJhbnNwb3J0UG9saWN5KGljZVRyYW5zcG9ydFBvbGljeSkKICAg
ICAsIGJ1bmRsZVBvbGljeShidW5kbGVQb2xpY3kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRp
b24uaAppbmRleCA1Yjc0YTI2YTNkNzUyNjg5NzRhMDlmODA1ZGY1OGFlOTcwN2I5MDQ4Li4zMjIw
Y2ExYjdlYjIyODgzYjVkMGZmYmI2OTViNTYzMzcwM2Q2ZTUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRD
b25maWd1cmF0aW9uLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1
IEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzIsNyArMzMsNyBAQAogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAKLSNpbmNs
dWRlICJQZWVyQ29ubmVjdGlvblN0YXRlcy5oIgorI2luY2x1ZGUgIlJUQ0VudW1zLmgiCiAjaW5j
bHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgpAQCAtNDksMTQgKzUwLDExIEBAIHN0cnVjdCBNZWRpYUVuZHBvaW50Q29u
ZmlndXJhdGlvbiB7CiAgICAgICAgIEljZVNlcnZlckluZm8oVmVjdG9yPFVSTD4mJiwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CiAgICAgfTsKIAotICAgIHVzaW5nIEljZVRyYW5zcG9y
dFBvbGljeSA9IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VUcmFuc3BvcnRQb2xpY3k7Ci0gICAg
dXNpbmcgQnVuZGxlUG9saWN5ID0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkJ1bmRsZVBvbGljeTsK
LQotICAgIE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uKFZlY3RvcjxJY2VTZXJ2ZXJJbmZvPiYm
LCBJY2VUcmFuc3BvcnRQb2xpY3ksIEJ1bmRsZVBvbGljeSk7CisgICAgTWVkaWFFbmRwb2ludENv
bmZpZ3VyYXRpb24oVmVjdG9yPEljZVNlcnZlckluZm8+JiYsIFJUQ0ljZVRyYW5zcG9ydFBvbGlj
eSwgUlRDQnVuZGxlUG9saWN5KTsKIAogICAgIFZlY3RvcjxJY2VTZXJ2ZXJJbmZvPiBpY2VTZXJ2
ZXJzOwotICAgIEljZVRyYW5zcG9ydFBvbGljeSBpY2VUcmFuc3BvcnRQb2xpY3k7Ci0gICAgQnVu
ZGxlUG9saWN5IGJ1bmRsZVBvbGljeTsKKyAgICBSVENJY2VUcmFuc3BvcnRQb2xpY3kgaWNlVHJh
bnNwb3J0UG9saWN5OworICAgIFJUQ0J1bmRsZVBvbGljeSBidW5kbGVQb2xpY3k7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvblN0YXRlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25TdGF0ZXMuaAppbmRleCA4YTcxMjQwNzAx
ODIwMDgxMThhOGJiNDZiMDg0OWFjZTdmYjljZjUyLi5hYWU1M2RjMGIwMmJjNDUxOTE5ZjY1ZGVi
MWZmZTIzMjJiM2NjMjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9QZWVyQ29ubmVjdGlvblN0YXRlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uU3RhdGVzLmgKQEAgLTEsNSArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE2IEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNTQgKzM1LDYzIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotbmFtZXNwYWNlIFBlZXJDb25uZWN0aW9uU3RhdGVz
IHsKLQotZW51bSBjbGFzcyBTaWduYWxpbmdTdGF0ZSB7Ci0gICAgU3RhYmxlID0gMSwKLSAgICBI
YXZlTG9jYWxPZmZlciA9IDIsCi0gICAgSGF2ZVJlbW90ZU9mZmVyID0gMywKLSAgICBIYXZlTG9j
YWxQckFuc3dlciA9IDQsCi0gICAgSGF2ZVJlbW90ZVByQW5zd2VyID0gNSwKLSAgICBDbG9zZWQg
PSA2CitlbnVtIGNsYXNzIFJUQ1NpZ25hbGluZ1N0YXRlIHsKKyAgICBTdGFibGUsCisgICAgSGF2
ZUxvY2FsT2ZmZXIsCisgICAgSGF2ZVJlbW90ZU9mZmVyLAorICAgIEhhdmVMb2NhbFByYW5zd2Vy
LAorICAgIEhhdmVSZW1vdGVQcmFuc3dlciwKKyAgICBDbG9zZWQKIH07CiAKLWVudW0gY2xhc3Mg
SWNlQ29ubmVjdGlvblN0YXRlIHsKLSAgICBOZXcgPSAxLAotICAgIENoZWNraW5nID0gMiwKLSAg
ICBDb25uZWN0ZWQgPSAzLAotICAgIENvbXBsZXRlZCA9IDQsCi0gICAgRmFpbGVkID0gNSwKLSAg
ICBEaXNjb25uZWN0ZWQgPSA2LAotICAgIENsb3NlZCA9IDcKK2VudW0gY2xhc3MgUlRDSWNlQ29u
bmVjdGlvblN0YXRlIHsKKyAgICBOZXcsCisgICAgQ2hlY2tpbmcsCisgICAgQ29ubmVjdGVkLAor
ICAgIENvbXBsZXRlZCwKKyAgICBGYWlsZWQsCisgICAgRGlzY29ubmVjdGVkLAorICAgIENsb3Nl
ZAogfTsKIAotZW51bSBjbGFzcyBJY2VHYXRoZXJpbmdTdGF0ZSB7Ci0gICAgTmV3ID0gMSwKLSAg
ICBHYXRoZXJpbmcgPSAyLAotICAgIENvbXBsZXRlID0gMworZW51bSBjbGFzcyBSVENJY2VHYXRo
ZXJpbmdTdGF0ZSB7CisgICAgTmV3LAorICAgIEdhdGhlcmluZywKKyAgICBDb21wbGV0ZQogfTsK
IAotZW51bSBjbGFzcyBJY2VUcmFuc3BvcnRTdGF0ZSB7Ci0gICAgTmV3ID0gMSwKLSAgICBDaGVj
a2luZyA9IDIsCi0gICAgQ29ubmVjdGVkID0gMywKLSAgICBDb21wbGV0ZWQgPSA0LAotICAgIEZh
aWxlZCA9IDUsCi0gICAgRGlzY29ubmVjdGVkID0gNiwKLSAgICBDbG9zZWQgPSA3CitlbnVtIGNs
YXNzIFJUQ0ljZVRyYW5zcG9ydFN0YXRlIHsKKyAgICBOZXcsCisgICAgQ2hlY2tpbmcsCisgICAg
Q29ubmVjdGVkLAorICAgIENvbXBsZXRlZCwKKyAgICBGYWlsZWQsCisgICAgRGlzY29ubmVjdGVk
LAorICAgIENsb3NlZAogfTsKIAotZW51bSBjbGFzcyBJY2VUcmFuc3BvcnRQb2xpY3kgeworZW51
bSBjbGFzcyBSVENJY2VUcmFuc3BvcnRQb2xpY3kgewogICAgIFJlbGF5LAogICAgIEFsbAogfTsK
IAotZW51bSBjbGFzcyBCdW5kbGVQb2xpY3kgeworZW51bSBjbGFzcyBSVENCdW5kbGVQb2xpY3kg
ewogICAgIEJhbGFuY2VkLAogICAgIE1heENvbXBhdCwKICAgICBNYXhCdW5kbGUKIH07CiAKKwor
Ly8gRklYTUU6IFJlbW92ZSBvbmNlIG9sZGVyIGNvZGUgaXMgdXBncmFkZWQKK25hbWVzcGFjZSBQ
ZWVyQ29ubmVjdGlvblN0YXRlcyB7CisKK3VzaW5nIFNpZ25hbGluZ1N0YXRlID0gUlRDU2lnbmFs
aW5nU3RhdGU7Cit1c2luZyBJY2VDb25uZWN0aW9uU3RhdGUgPSBSVENJY2VDb25uZWN0aW9uU3Rh
dGU7Cit1c2luZyBJY2VHYXRoZXJpbmdTdGF0ZSA9IFJUQ0ljZUdhdGhlcmluZ1N0YXRlOwordXNp
bmcgSWNlVHJhbnNwb3J0U3RhdGUgPSBSVENJY2VUcmFuc3BvcnRTdGF0ZTsKK3VzaW5nIEljZVRy
YW5zcG9ydFBvbGljeSA9IFJUQ0ljZVRyYW5zcG9ydFBvbGljeTsKK3VzaW5nIEJ1bmRsZVBvbGlj
eSA9IFJUQ0J1bmRsZVBvbGljeTsKKwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL01l
ZGlhRW5kcG9pbnRPd3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
b3BlbndlYnJ0Yy9NZWRpYUVuZHBvaW50T3dyLmNwcAppbmRleCA2Mjc0NGNhMGEwMDk0MTZiOTQz
MGY2NjE2ZjY1Nzk1MTU4Y2MzZjI2Li5kYzNlMDY2M2FlOTA4YjhlMmI1MWFlY2MxYjk0M2VlYzU3
NmFhYjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9v
cGVud2VicnRjL01lZGlhRW5kcG9pbnRPd3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvTWVkaWFFbmRwb2ludE93ci5jcHAKQEAgLTQ0NSwx
OSArNDQ1LDE5IEBAIHZvaWQgTWVkaWFFbmRwb2ludE93cjo6cHJvY2Vzc0ljZVRyYW5zcG9ydFN0
YXRlQ2hhbmdlKE93clNlc3Npb24qIHNlc3Npb24pCiAgICAgaWYgKG93ckljZVN0YXRlID09IE9X
Ul9JQ0VfU1RBVEVfUkVBRFkgJiYgIXRyYW5zY2VpdmVyLmdvdEVuZE9mUmVtb3RlQ2FuZGlkYXRl
cygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBNZWRpYUVuZHBvaW50OjpJY2VUcmFuc3BvcnRT
dGF0ZSB0cmFuc3BvcnRTdGF0ZTsKKyAgICBSVENJY2VUcmFuc3BvcnRTdGF0ZSB0cmFuc3BvcnRT
dGF0ZTsKICAgICBzd2l0Y2ggKG93ckljZVN0YXRlKSB7CiAgICAgY2FzZSBPV1JfSUNFX1NUQVRF
X0NPTk5FQ1RJTkc6Ci0gICAgICAgIHRyYW5zcG9ydFN0YXRlID0gTWVkaWFFbmRwb2ludDo6SWNl
VHJhbnNwb3J0U3RhdGU6OkNoZWNraW5nOworICAgICAgICB0cmFuc3BvcnRTdGF0ZSA9IFJUQ0lj
ZVRyYW5zcG9ydFN0YXRlOjpDaGVja2luZzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPV1Jf
SUNFX1NUQVRFX0NPTk5FQ1RFRDoKLSAgICAgICAgdHJhbnNwb3J0U3RhdGUgPSBNZWRpYUVuZHBv
aW50OjpJY2VUcmFuc3BvcnRTdGF0ZTo6Q29ubmVjdGVkOworICAgICAgICB0cmFuc3BvcnRTdGF0
ZSA9IFJUQ0ljZVRyYW5zcG9ydFN0YXRlOjpDb25uZWN0ZWQ7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgT1dSX0lDRV9TVEFURV9SRUFEWToKLSAgICAgICAgdHJhbnNwb3J0U3RhdGUgPSBNZWRp
YUVuZHBvaW50OjpJY2VUcmFuc3BvcnRTdGF0ZTo6Q29tcGxldGVkOworICAgICAgICB0cmFuc3Bv
cnRTdGF0ZSA9IFJUQ0ljZVRyYW5zcG9ydFN0YXRlOjpDb21wbGV0ZWQ7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgT1dSX0lDRV9TVEFURV9GQUlMRUQ6Ci0gICAgICAgIHRyYW5zcG9ydFN0YXRl
ID0gTWVkaWFFbmRwb2ludDo6SWNlVHJhbnNwb3J0U3RhdGU6OkZhaWxlZDsKKyAgICAgICAgdHJh
bnNwb3J0U3RhdGUgPSBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6RmFpbGVkOwogICAgICAgICBicmVh
azsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IGM3NWM1NTQ3MjRhMGZk
MjAxMTU5ZThmNjRmMmRlYjJmNTMyZThhMGYuLjA3ZTYwMjEwZDAzZmM1NDJmNzBjZmJhMjdjZWY5
NmNhODVmNjA4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a01lZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a01lZGlhRW5kcG9pbnQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxNSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI3NywyNyArMjc4LDI3IEBAIHZvaWQgTW9ja01lZGlhRW5kcG9pbnQ6
OnN0ZXBJY2VUcmFuc3BvcnRTdGF0ZXMoKQogCiAgICAgLy8gU2hvdWxkIGdvIHRvOgogICAgIC8v
ICdjaGVja2luZycKLSAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjpt
YWtlX3BhaXIobV9taWRzWzBdLCBNZWRpYUVuZHBvaW50OjpJY2VUcmFuc3BvcnRTdGF0ZTo6Q2hl
Y2tpbmcpKTsKLSAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtl
X3BhaXIobV9taWRzWzFdLCBNZWRpYUVuZHBvaW50OjpJY2VUcmFuc3BvcnRTdGF0ZTo6Q2hlY2tp
bmcpKTsKLSAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3Bh
aXIobV9taWRzWzJdLCBNZWRpYUVuZHBvaW50OjpJY2VUcmFuc3BvcnRTdGF0ZTo6Q2hlY2tpbmcp
KTsKKyAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIo
bV9taWRzWzBdLCBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6Q2hlY2tpbmcpKTsKKyAgICBtX2ljZVRy
YW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9taWRzWzFdLCBSVENJ
Y2VUcmFuc3BvcnRTdGF0ZTo6Q2hlY2tpbmcpKTsKKyAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hh
bmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9taWRzWzJdLCBSVENJY2VUcmFuc3BvcnRTdGF0
ZTo6Q2hlY2tpbmcpKTsKIAogICAgIC8vICdjb25uZWN0ZWQnCi0gICAgbV9pY2VUcmFuc3BvcnRT
dGF0ZUNoYW5nZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKG1fbWlkc1swXSwgTWVkaWFFbmRwb2lu
dDo6SWNlVHJhbnNwb3J0U3RhdGU6OkNvbm5lY3RlZCkpOwotICAgIG1faWNlVHJhbnNwb3J0U3Rh
dGVDaGFuZ2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihtX21pZHNbMV0sIE1lZGlhRW5kcG9pbnQ6
OkljZVRyYW5zcG9ydFN0YXRlOjpDb21wbGV0ZWQpKTsKLSAgICBtX2ljZVRyYW5zcG9ydFN0YXRl
Q2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9taWRzWzJdLCBNZWRpYUVuZHBvaW50OjpJ
Y2VUcmFuc3BvcnRTdGF0ZTo6Q2xvc2VkKSk7CisgICAgbV9pY2VUcmFuc3BvcnRTdGF0ZUNoYW5n
ZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKG1fbWlkc1swXSwgUlRDSWNlVHJhbnNwb3J0U3RhdGU6
OkNvbm5lY3RlZCkpOworICAgIG1faWNlVHJhbnNwb3J0U3RhdGVDaGFuZ2VzLmFwcGVuZChzdGQ6
Om1ha2VfcGFpcihtX21pZHNbMV0sIFJUQ0ljZVRyYW5zcG9ydFN0YXRlOjpDb21wbGV0ZWQpKTsK
KyAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIobV9t
aWRzWzJdLCBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6Q2xvc2VkKSk7CiAKICAgICAvLyAnY29tcGxl
dGVkJwotICAgIG1faWNlVHJhbnNwb3J0U3RhdGVDaGFuZ2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFp
cihtX21pZHNbMF0sIE1lZGlhRW5kcG9pbnQ6OkljZVRyYW5zcG9ydFN0YXRlOjpDb21wbGV0ZWQp
KTsKKyAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIo
bV9taWRzWzBdLCBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6Q29tcGxldGVkKSk7CiAKICAgICAvLyAn
ZmFpbGVkJwotICAgIG1faWNlVHJhbnNwb3J0U3RhdGVDaGFuZ2VzLmFwcGVuZChzdGQ6Om1ha2Vf
cGFpcihtX21pZHNbMF0sIE1lZGlhRW5kcG9pbnQ6OkljZVRyYW5zcG9ydFN0YXRlOjpGYWlsZWQp
KTsKKyAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIo
bV9taWRzWzBdLCBSVENJY2VUcmFuc3BvcnRTdGF0ZTo6RmFpbGVkKSk7CiAKICAgICAvLyAnZGlz
Y29ubmVjdGVkJwotICAgIG1faWNlVHJhbnNwb3J0U3RhdGVDaGFuZ2VzLmFwcGVuZChzdGQ6Om1h
a2VfcGFpcihtX21pZHNbMV0sIE1lZGlhRW5kcG9pbnQ6OkljZVRyYW5zcG9ydFN0YXRlOjpEaXNj
b25uZWN0ZWQpKTsKLSAgICBtX2ljZVRyYW5zcG9ydFN0YXRlQ2hhbmdlcy5hcHBlbmQoc3RkOjpt
YWtlX3BhaXIobV9taWRzWzBdLCBNZWRpYUVuZHBvaW50OjpJY2VUcmFuc3BvcnRTdGF0ZTo6Q2xv
c2VkKSk7CisgICAgbV9pY2VUcmFuc3BvcnRTdGF0ZUNoYW5nZXMuYXBwZW5kKHN0ZDo6bWFrZV9w
YWlyKG1fbWlkc1sxXSwgUlRDSWNlVHJhbnNwb3J0U3RhdGU6OkRpc2Nvbm5lY3RlZCkpOworICAg
IG1faWNlVHJhbnNwb3J0U3RhdGVDaGFuZ2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihtX21pZHNb
MF0sIFJUQ0ljZVRyYW5zcG9ydFN0YXRlOjpDbG9zZWQpKTsKIAogICAgIC8vICduZXcnCi0gICAg
bV9pY2VUcmFuc3BvcnRTdGF0ZUNoYW5nZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKG1fbWlkc1sx
XSwgTWVkaWFFbmRwb2ludDo6SWNlVHJhbnNwb3J0U3RhdGU6OkNsb3NlZCkpOworICAgIG1faWNl
VHJhbnNwb3J0U3RhdGVDaGFuZ2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihtX21pZHNbMV0sIFJU
Q0ljZVRyYW5zcG9ydFN0YXRlOjpDbG9zZWQpKTsKIAogICAgIC8vIFJldmVyc2Ugb3JkZXIgdG8g
dXNlIHRha2VMYXN0KCkgd2hpbGUga2VlcGluZyB0aGUgYWJvdmUgb3JkZXIKICAgICBtX2ljZVRy
YW5zcG9ydFN0YXRlQ2hhbmdlcy5yZXZlcnNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmgKaW5kZXggNzM1OWM4ZDQ4MzUyZjg3MDVjZjM2
Mzc0Y2I2OGY1ZmZhZDUxYjU4Zi4uMTEzNzMwNTUxNDJmYTU5YjZkNmU2MWIyYTJhYmE5MjQ4YWYw
OWJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFF
bmRwb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5k
cG9pbnQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgRXJpY3Nz
b24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zMyw2ICszNCw3IEBACiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAKICNpbmNsdWRlICJNZWRp
YUVuZHBvaW50LmgiCisjaW5jbHVkZSAiUlRDRW51bXMuaCIKICNpbmNsdWRlICJUaW1lci5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04NSw3ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAgVmVj
dG9yPEljZUNhbmRpZGF0ZT4gbV9mYWtlSWNlQ2FuZGlkYXRlczsKICAgICBUaW1lciBtX2ljZUNh
bmRpZGF0ZVRpbWVyOwogCi0gICAgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIE1lZGlhRW5kcG9p
bnQ6OkljZVRyYW5zcG9ydFN0YXRlPj4gbV9pY2VUcmFuc3BvcnRTdGF0ZUNoYW5nZXM7CisgICAg
VmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFJUQ0ljZVRyYW5zcG9ydFN0YXRlPj4gbV9pY2VUcmFu
c3BvcnRTdGF0ZUNoYW5nZXM7CiAgICAgVGltZXIgbV9pY2VUcmFuc3BvcnRUaW1lcjsKIAogICAg
IFZlY3RvcjxTdHJpbmc+IG1fbWlkc09mU291cmNlc1RvVW5tdXRlOwo=
</data>
<flag name="review"
          id="326075"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
      

    </bug>

</bugzilla>