<?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>221891</bug_id>
          
          <creation_ts>2021-02-15 02:10:11 -0800</creation_ts>
          <short_desc>ThreadMessageReceiverRefCounted subclasses are accessed in non-thread-safe way</short_desc>
          <delta_ts>2021-02-18 07:59:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>Other</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=222056</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>221560</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1729081</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-02-15 02:10:11 -0800</bug_when>
    <thetext>ThreadMessageReceiverRefCounted subclasses are accessed in non-thread-safe way

The subclasses call Connection::addThreadMessageReceiver() during their construction, passing &apos;this&apos; as the receiver.
The virtual function pointer is not fully constructed during the call time.
Connection may start dispatching calls through that pointer immediately after the call.
If a message comes during the call, it may be dispatched during the subclass constructor still running, before the virtual function pointer being correctly set up. 
Accessing virtual function pointer is not thread safe until it is fully constructed.

The subclasses call Connection::removeThreadMessageReceiver() during their destruction.
Connection may still dispatch calls through the passed in virtual function pointer. The virtual pointer is not as expected anymore at that point, is not thread-safe to read.
Upon dispatch, the connection will ref the ThreadMessageReceiver.  Since the instance might already be in destructor, this is a ref count increase on a destroyed object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729086</commentid>
    <comment_count>1</comment_count>
      <attachid>420290</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-02-15 02:20:12 -0800</bug_when>
    <thetext>Created attachment 420290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729090</commentid>
    <comment_count>2</comment_count>
      <attachid>420291</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-02-15 02:28:49 -0800</bug_when>
    <thetext>Created attachment 420291
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729234</commentid>
    <comment_count>3</comment_count>
      <attachid>420291</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-15 10:49:11 -0800</bug_when>
    <thetext>Comment on attachment 420291
Patch

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

r=me with nits.

&gt; Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.cpp:46
&gt; +void RemoteAudioMediaStreamTrackRendererManager::connectGPUProcess()

I don&apos;t understand why this is named connectGPUProcess(). This code runs in the GPUProcess and if anything, it starts listening for IPC from the WebProcess. I think we should find a better name. Maybe startListeningForIPC()?

&gt; Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.h:66
&gt; +    void disconnectGPUProcess();

What&apos;s this? Can&apos;t find the definition.

&gt; Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:48
&gt; +void RemoteSampleBufferDisplayLayerManager::connectGPUProcess()

Same comment about naming.

&gt; Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.cpp:98
&gt; +void NetworkRTCProvider::connectWebProcess()

Same comment about naming.

&gt; Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:171
&gt; +void LibWebRTCCodecs::connectGPUProcess()

Same comment about naming.

&gt; Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.cpp:52
&gt; +void RemoteCaptureSampleManager::disconnectGPUProcess()

Same comment about naming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729565</commentid>
    <comment_count>4</comment_count>
      <attachid>420429</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-02-16 00:15:11 -0800</bug_when>
    <thetext>Created attachment 420429
update names</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729567</commentid>
    <comment_count>5</comment_count>
      <attachid>420430</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-02-16 00:16:33 -0800</bug_when>
    <thetext>Created attachment 420430
update names</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729640</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-16 05:58:53 -0800</bug_when>
    <thetext>commit-queue failed to commit attachment 420430 to WebKit repository. To retry, please set cq+ flag again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729675</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-16 08:10:59 -0800</bug_when>
    <thetext>Committed r272905: &lt;https://commits.webkit.org/r272905&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 420430.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729676</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-16 08:11:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/74391824&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730505</commentid>
    <comment_count>9</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2021-02-17 13:51:16 -0800</bug_when>
    <thetext>Reverted r272905 for reason:

caused TestWebKitAPI.WebKit2.CrashGPUProcessWhileCapturingAndCalling to timeout

Committed r273029 (234230@main): &lt;https://commits.webkit.org/234230@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730791</commentid>
    <comment_count>10</comment_count>
      <attachid>420813</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-02-18 02:01:59 -0800</bug_when>
    <thetext>Created attachment 420813
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730793</commentid>
    <comment_count>11</comment_count>
      <attachid>420813</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-02-18 02:04:34 -0800</bug_when>
    <thetext>Comment on attachment 420813
Patch

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

&gt; Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:-179
&gt; -        m_connection-&gt;removeThreadMessageReceiver(Messages::LibWebRTCCodecsProxy::messageReceiverName());

This line was originally buggy..

&gt; Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:471
&gt; +        m_connection-&gt;removeThreadMessageReceiver(Messages::LibWebRTCCodecs::messageReceiverName());

..and I managed to put the above line here.
Here in this patch this line is now correct and the test passes again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730818</commentid>
    <comment_count>12</comment_count>
      <attachid>420813</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-02-18 05:00:43 -0800</bug_when>
    <thetext>Comment on attachment 420813
Patch

Taking the liberty to carry the r+ over from the last patch, as the only thing that changed was the ReceiverName change from Proxy message to plain message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730847</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-18 07:59:11 -0800</bug_when>
    <thetext>Committed r273074: &lt;https://commits.webkit.org/r273074&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 420813.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420290</attachid>
            <date>2021-02-15 02:20:12 -0800</date>
            <delta_ts>2021-02-15 02:35:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221891-20210215122010.patch</filename>
            <type>text/plain</type>
            <size>24072</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1NTc3ZTg4NDhjYmQ3NTFl
OTliOTZkYTNhODIyMzk5ZDFlYWMwODYuLmY0NmVmNDdmMGVlYThiYmNiOGQ2YzliMDUxOWUwNmFi
NjlhMmViODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDItMTUgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBUaHJlYWRNZXNzYWdlUmVj
ZWl2ZXJSZWZDb3VudGVkIHN1YmNsYXNzZXMgYXJlIGFjY2Vzc2VkIGluIG5vbi10aHJlYWQtc2Fm
ZSB3YXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MTg5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZv
ciBlYWNoIFRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgc3ViY2xhc3MsIHJlbW92ZSBj
YWxscworICAgICAgICB0byBDb25uZWN0aW9uOjphZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoKSBm
cm9tIHRoZSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgVGhlIGNhbGxzIHBhc3MgJ3RoaXMnIGFzIHRo
ZSBUaHJlYWRNZXNzYWdlUmVjZWl2ZXIqLiBJZiB0aGUKKyAgICAgICAgY29ubmVjdGlvbiB0cmll
cyB0byBkaXNwYXRjaCBhIG1lc3NhZ2UgZHVyaW5nIHRoZSBjb25zdHJ1Y3RvciwgdGhpcworICAg
ICAgICByZXN1bHRzIGluIHNvbWUgb3IgYWxsIG9mIGJlbG93OgorICAgICAgICAtIG5vbi10aHJl
YWQtc2FmZSByZWFkIG9mIG11dGF0ZWQgdmlydHVhbCBmdW5jdGlvbiBwb2ludGVyCisgICAgICAg
IC0gY2FsbCB0byBpbmNvcnJlY3QgbWVtYmVyIGZ1bmN0aW9uLCBtb3N0bHkgdG8gTWVzc2FnZVJl
Y2VpdmVyOjpkaWRSZWNlaXZlTWVzc2FnZQorICAgICAgICAtIGFuIGFzc2VydCBmcm9tIGFib3Zl
CisgICAgICAgIC0gc2tpcHBlZCBtZXNzYWdlCisKKyAgICAgICAgRm9yIGVhY2ggVGhyZWFkTWVz
c2FnZVJlY2VpdmVyUmVmQ291bnRlZCBzdWJjbGFzcywgcmVtb3ZlIGNhbGxzCisgICAgICAgIHRv
IENvbm5lY3Rpb246OnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcigpIGZyb20gdGhlIGRlc3Ry
dWN0b3IuCisgICAgICAgIFRoZSBtZXNzYWdlIHJlY2VpdmUgZGVzdGluYXRpb24gaXMgc3RpbGwg
YWN0aXZlIGR1cmluZyBkZXN0cnVjdG9yLAorICAgICAgICBzbyBDb25uZWN0aW9uIG1pZ2h0IGRp
c3BhdGNoIG5ldyBtZXNzYWdlIHRhc2tzIGR1cmluZyB0aGF0IHRpbWUuCisgICAgICAgIFRoaXMg
Y2F1c2VzIHJlZiBvZiB0aGUgaW5zdGFuY2UgYWxyZWFkeSBiZWluZyBkZXN0cm95ZWQsIHdoaWNo
CisgICAgICAgIHRoZW4gY2F1c2VzIHRoZSB0YXNrcyB0byB1c2UgZGVsZXRlZCBpbnN0YW5jZSBh
bmQgdGhlbiBsYXRlcgorICAgICAgICBkZWxldGluZyBpdCBhZ2Fpbi4KKworICAgICAgICBEb2Vz
IG5vdCB0cnkgdG8gZml4IGFueSBvdGhlciBwb3RlbnRpYWwgdGhyZWFkLXJlbGF0ZWQgaXNzdWVz
IGluCisgICAgICAgIHRoZSBtb2RpZmllZCBhcmVhcy4KKworICAgICAgICAqIEdQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdl
cjo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpjb25u
ZWN0R1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlcjo6Y2xvc2UpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oOgorICAgICAgICAq
IEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6Y29ubmVjdEdQVVBy
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyOjpjbG9zZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRD
UHJvdmlkZXI6Ok5ldHdvcmtSVENQcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
VENQcm92aWRlcjo6Y29ubmVjdFdlYlByb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JU
Q1Byb3ZpZGVyOjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OkxpYldl
YlJUQ0NvZGVjcyk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6Y29ubmVjdEdQ
VVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6On5MaWJXZWJSVEND
b2RlY3MpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmdwdVByb2Nlc3NDb25u
ZWN0aW9uRGlkQ2xvc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuaDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjcmVhdGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ05ldHdvcms6On5MaWJXZWJSVENOZXR3b3JrKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpsaWJXZWJSVENDb2RlY3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlcjo6flJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OmRpc2Nvbm5lY3RHUFVQcm9j
ZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIpOgorCiAyMDIxLTAyLTEzICBBbGV4ZXkgUHJv
c2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIu
Y3BwCmluZGV4IGJjYjRiYTVjYmJjNGQzNDcwNTlkY2ZlOGFiOGZjYjE4ZmY1YWQyZmUuLjFiMjBk
NDk1ODViNDE0MGRlMmM1ODc1NzY1YmJhNGEzNjkyODk3MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHAKQEAgLTQxLDE4ICs0MSwy
MCBAQCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6OlJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTQogICAgIDogbV9jb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgLCBtX3F1ZXVlKGNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuZ3B1UHJvY2VzcygpLmF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyUXVldWUo
KSkKIHsKLSAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLmFkZFRocmVh
ZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7Ci0gICAgbV9jb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLCB0aGlzKTsKIH0KIAotUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJNYW5hZ2VyOjp+UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKCkK
K3ZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpjb25uZWN0
R1BVUHJvY2VzcygpCiB7Ci0gICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24o
KS5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwotICAgIG1fY29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkucmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5l
Y3Rpb24oKS5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOworICAg
IG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuYWRkVGhyZWFkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7CiB9CiAKK1JlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6flJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlcigpID0gZGVmYXVsdDsKKwogdm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlck1hbmFnZXI6OmNsb3NlKCkKIHsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY29ubmVjdGlvbigpLnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5yZW1vdmVUaHJl
YWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKICAgICBkaXNwYXRjaFRvVGhy
ZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgbV9y
ZW5kZXJlcnMuY2xlYXIoKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyTWFuYWdlci5oCmluZGV4IDlmMGY2NTJmNjkzNjAyMDA4MzNlYjg5ZDYz
YTQ2ZDFlZDVlZTllOTUuLmZjMTJkOTUxMjQ5ZTlmNGU4NTVhNTFiOWI4YWFkNDM2YWUxMDIzOWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIu
aApAQCAtNDUsNyArNDUsMTIgQEAgY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXI7CiBjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIg
ZmluYWwgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZD
b3VudGVkIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcj4gY3JlYXRl
KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIHByb2Nlc3MpIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKHByb2Nlc3MpKTsg
fQorICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5h
Z2VyPiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgcHJvY2VzcykKKyAgICB7Cisg
ICAgICAgIGF1dG8gaW5zdGFuY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyTWFuYWdlcihwcm9jZXNzKSk7CisgICAgICAgIGluc3RhbmNlLT5jb25u
ZWN0R1BVUHJvY2VzcygpOworICAgICAgICByZXR1cm4gaW5zdGFuY2U7CisgICAgfQogICAgIH5S
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIoKTsKIAogICAgIHZvaWQg
ZGlkUmVjZWl2ZVJlbmRlcmVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KTsKQEAgLTU3LDYgKzYyLDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcihHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJik7CisgICAgdm9pZCBjb25uZWN0R1BVUHJvY2VzcygpOworICAgIHZvaWQgZGlz
Y29ubmVjdEdQVVByb2Nlc3MoKTsKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVz
c2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaXNwYXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4m
JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNw
cAppbmRleCA2MWI4OTBkYzc4NjdjMzNiMDA1ZjIyZTkzYmIxYWY0N2RkZDNiMTdjLi5hNGMwZGRh
NDA2YzlkNGExMmYzMTg4MTcxNzY1MDRiNjU5MTI5OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKQEAgLTQzLDE4ICs0MywyMCBAQCBSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyKEdQVQogICAgICwgbV9jb25uZWN0aW9uKGdwdUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY29ubmVjdGlvbigpKQogICAgICwgbV9xdWV1ZShncHVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmdwdVByb2Nlc3MoKS52aWRlb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclF1ZXVlKCkpCiB7
Ci0gICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5hZGRUaHJlYWRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKLSAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y29ubmVjdGlvbigpLmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlz
KTsKIH0KIAotUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6flJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKQordm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyOjpjb25uZWN0R1BVUHJvY2VzcygpCiB7Ci0gICAgbV9jb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKTsKLSAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnJlbW92
ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKyAgICBtX2Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IHRoaXMpOworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuYWRkVGhy
ZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOwogfQogCitSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjp+UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlcigpID0gZGVmYXVsdDsKKwogdm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyOjpjbG9zZSgpCiB7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNv
bm5lY3Rpb24oKS5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKyAgICBtX2Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKTsKICAgICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbbGF5
ZXJzID0gV1RGTW92ZShtX2xheWVycyldIHsgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oCmluZGV4IGEzMjRhZWM5NTc0MWFhNzg2Y2E0YjAw
MjNmNjkyYTE5NTcxMTQ1NjAuLmZkNGM0YTY3N2UwNDcyZmU2ODQxOGMxMWFjZmFmMWU0YTcwNDU5
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oCkBAIC00
OSwxMyArNDksMTkgQEAgY2xhc3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOwogY2xh
c3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciBmaW5hbCA6IHB1YmxpYyBJ
UEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcj4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmIGNvbm5lY3Rpb24pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlcihjb25uZWN0aW9uKSk7IH0KKyAgICBzdGF0aWMgUmVmPFJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+IGNyZWF0ZShHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uKQorICAgIHsKKyAgICAgICAgYXV0byBpbnN0YW5jZSA9
IGFkb3B0UmVmKCpuZXcgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcihjb25u
ZWN0aW9uKSk7CisgICAgICAgIGluc3RhbmNlLT5jb25uZWN0R1BVUHJvY2VzcygpOworICAgICAg
ICByZXR1cm4gaW5zdGFuY2U7CisgICAgfQogICAgIH5SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyKCk7CiAKICAgICB2b2lkIGNsb3NlKCk7CiAKIHByaXZhdGU6CiAgICAgZXhw
bGljaXQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcihHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJik7CisgICAgdm9pZCBjb25uZWN0R1BVUHJvY2VzcygpOwogCiAgICAgLy8g
SVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpc3BhdGNo
VG9UaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCmlu
ZGV4IDg1MTA1ZGJhM2JlYjYxYTk3MjM4ZWZhNzM5MDEwMDEzMTM2ZTk4ZjEuLjE0NGRiZTQ0ZTk1
OWEzZTQ0ODY1YjkyOWE5YTNiODIyOTc3ZTZmNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcApAQCAt
OTMsNiArOTMsMTAgQEAgTmV0d29ya1JUQ1Byb3ZpZGVyOjpOZXR3b3JrUlRDUHJvdmlkZXIoTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24KICNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKICAgICBydGM6OkxvZ01lc3NhZ2U6OlNldExvZ091dHB1dChXZWJLaXQyTG9nV2Vi
UlRDLnN0YXRlID09IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24gPyBydGM6OkxTX0lORk8gOiBydGM6
OkxTX1dBUk5JTkcsIGRvUmVsZWFzZUxvZ2dpbmcpOwogI2VuZGlmCit9CisKK3ZvaWQgTmV0d29y
a1JUQ1Byb3ZpZGVyOjpjb25uZWN0V2ViUHJvY2VzcygpCit7CiAgICAgbV9jb25uZWN0aW9uLT5j
b25uZWN0aW9uKCkuYWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpOZXR3b3JrUlRD
UHJvdmlkZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
LmgKaW5kZXggYjdiY2E3YzQ4Njk1ODAyMjk0YmY5NGFlZjA3NDBjZjcwZTNmNjJhZi4uOGU2NTUx
Y2I5YTJiNGM4ZGI4ZjFiMDlhMWIyNzJlZGExNDcyYTE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKQEAg
LTYyLDcgKzYyLDEyIEBAIHN0cnVjdCBSVENQYWNrZXRPcHRpb25zOwogCiBjbGFzcyBOZXR3b3Jr
UlRDUHJvdmlkZXIgOiBwdWJsaWMgcnRjOjpNZXNzYWdlSGFuZGxlciwgcHVibGljIElQQzo6Q29u
bmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxOZXR3b3JrUlRDUHJvdmlkZXI+IGNyZWF0ZShOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyYgY29ubmVjdGlvbikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUlRD
UHJvdmlkZXIoY29ubmVjdGlvbikpOyB9CisgICAgc3RhdGljIFJlZjxOZXR3b3JrUlRDUHJvdmlk
ZXI+IGNyZWF0ZShOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbikKKyAg
ICB7CisgICAgICAgIGF1dG8gaW5zdGFuY2UgPSBhZG9wdFJlZigqbmV3IE5ldHdvcmtSVENQcm92
aWRlcihjb25uZWN0aW9uKSk7CisgICAgICAgIGluc3RhbmNlLT5jb25uZWN0V2ViUHJvY2Vzcygp
OworICAgICAgICByZXR1cm4gaW5zdGFuY2U7CisgICAgfQogICAgIH5OZXR3b3JrUlRDUHJvdmlk
ZXIoKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJik7CkBAIC05OSw2ICsxMDQsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgTmV0d29ya1JUQ1Byb3ZpZGVyKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Jik7CisgICAgdm9pZCBjb25uZWN0V2ViUHJvY2VzcygpOwogCiAgICAgdm9pZCBjcmVhdGVVRFBT
b2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29y
azo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90LCB1aW50MTZfdCk7CiAgICAgdm9pZCBjcmVhdGVD
bGllbnRUQ1BTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29uc3Qg
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJl
c3MmLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAppbmRleCAyZGVkNGIw
NjFlOTViOTZhYzEyNWU1NzhlZDk0Mjg1MzhhMTM4YTQ0Li40M2Q5MmIyMzVmNTVkYTJkMGU4NmEy
NDFjZTkxMDdkOTJkM2QzMWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKQEAgLTE2NiwxNyArMTY2LDIwIEBA
IHN0YXRpYyB2b2lkIHNldEVuY29kZVJhdGVzQ2FsbGJhY2sod2VicnRjOjpXZWJLaXRWaWRlb0Vu
Y29kZXIgZW5jb2RlciwgY29uc3Qgd2ViCiBMaWJXZWJSVENDb2RlY3M6OkxpYldlYlJUQ0NvZGVj
cygpCiAgICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJMaWJXZWJSVENDb2RlY3MiLCBX
b3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSkp
CiB7Cit9CisKK3ZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb25uZWN0R1BVUHJvY2VzcygpCit7Cisg
ICAgQVNTRVJUKCFtX2Nvbm5lY3Rpb24pOwogICAgIGF1dG8mIGdwdUNvbm5lY3Rpb24gPSBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOwogICAgIGdw
dUNvbm5lY3Rpb24uYWRkQ2xpZW50KCp0aGlzKTsKLQogICAgIG1fY29ubmVjdGlvbiA9IG1ha2VS
ZWYoZ3B1Q29ubmVjdGlvbi5jb25uZWN0aW9uKCkpOwogICAgIG1fY29ubmVjdGlvbi0+YWRkVGhy
ZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgdGhpcyk7CiB9CiAKIExpYldlYlJUQ0NvZGVjczo6fkxpYldlYlJUQ0NvZGVj
cygpCiB7Ci0gICAgaWYgKG1fY29ubmVjdGlvbikKLSAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1v
dmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5Ojpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiB2
b2lkIExpYldlYlJUQ0NvZGVjczo6c2V0Q2FsbGJhY2tzKGJvb2wgdXNlR1BVUHJvY2VzcykKQEAg
LTQ2MSwzMCArNDY0LDI4IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpkaXNwYXRjaFRvVGhyZWFk
KEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKIAogdm9pZCBMaWJXZWJSVENDb2RlY3M6Omdw
dVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKQogewotICAg
IExvY2tIb2xkZXIgaG9sZGVyKG1fY29ubmVjdGlvbkxvY2spOwotCi0gICAgaWYgKG1fY29ubmVj
dGlvbikKLSAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKLQogICAg
IGF1dG8mIGdwdUNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpOwogICAgIGdwdUNvbm5lY3Rpb24uYWRkQ2xpZW50KCp0aGlzKTsK
LSAgICBncHVDb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsK
KyAgICB7CisgICAgICAgIGF1dG8gbG9jayA9IGhvbGRMb2NrKG1fY29ubmVjdGlvbkxvY2spOwor
ICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6TGliV2ViUlRDQ29kZWNzUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgICAg
IG1fY29ubmVjdGlvbiA9IG1ha2VSZWYoZ3B1Q29ubmVjdGlvbi5jb25uZWN0aW9uKCkpOworICAg
ICAgICBtX2Nvbm5lY3Rpb24tPmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6TGli
V2ViUlRDQ29kZWNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOworICAgIH0KIAotICAg
IGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIGNvbm5lY3Rpb24gPSBtYWtlUmVmKGdwdUNvbm5lY3Rp
b24uY29ubmVjdGlvbigpKV0geworICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXNdKCkgewogICAg
ICAgICAvLyBMb2NrIGV2ZXJ5dGhpbmcgc28gdGhhdCB3ZSBjYW4gdXBkYXRlIGVuY29kZXIvZGVj
b2RlciBjb25uZWN0aW9uLgogICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihtX2Nvbm5lY3Rpb25M
b2NrKTsKLQotICAgICAgICBtX2Nvbm5lY3Rpb24gPSBjb25uZWN0aW9uLnB0cigpOwogICAgICAg
ICAvLyBSZWNyZWF0ZSBlbmNvZGVycyBhbmQgaW5pdGlhbGl6ZSB0aGVtLCByZWNyZWF0ZSBkZWNv
ZGVycy4KICAgICAgICAgZm9yIChhdXRvJiBlbmNvZGVyIDogbV9lbmNvZGVycy52YWx1ZXMoKSkg
ewotICAgICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNz
UHJveHk6OkNyZWF0ZUVuY29kZXIgeyBlbmNvZGVyLT5pZGVudGlmaWVyLCBmb3JtYXROYW1lRnJv
bVdlYlJUQ0NvZGVjVHlwZShlbmNvZGVyLT5jb2RlY1R5cGUpLCBlbmNvZGVyLT5wYXJhbWV0ZXJz
LCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlJUQ0gyNjRMb3dM
YXRlbmN5RW5jb2RlckVuYWJsZWQoKSB9LCAwKTsKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OkNyZWF0ZUVuY29kZXIgeyBlbmNv
ZGVyLT5pZGVudGlmaWVyLCBmb3JtYXROYW1lRnJvbVdlYlJUQ0NvZGVjVHlwZShlbmNvZGVyLT5j
b2RlY1R5cGUpLCBlbmNvZGVyLT5wYXJhbWV0ZXJzLCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLndlYlJUQ0gyNjRMb3dMYXRlbmN5RW5jb2RlckVuYWJsZWQoKSB9LCAw
KTsKICAgICAgICAgICAgIGlmIChlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEpCi0gICAgICAg
ICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6
OkluaXRpYWxpemVFbmNvZGVyIHsgZW5jb2Rlci0+aWRlbnRpZmllciwgZW5jb2Rlci0+aW5pdGlh
bGl6YXRpb25EYXRhLT53aWR0aCwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5oZWlnaHQs
IGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+c3RhcnRCaXRSYXRlLCBlbmNvZGVyLT5pbml0
aWFsaXphdGlvbkRhdGEtPm1heEJpdFJhdGUsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+
bWluQml0UmF0ZSwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5tYXhGcmFtZVJhdGUgfSwg
MCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5jb25uZWN0aW9uID0gY29ubmVjdGlvbi5wdHIoKTsK
KyAgICAgICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0Nv
ZGVjc1Byb3h5OjpJbml0aWFsaXplRW5jb2RlciB7IGVuY29kZXItPmlkZW50aWZpZXIsIGVuY29k
ZXItPmluaXRpYWxpemF0aW9uRGF0YS0+d2lkdGgsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0
YS0+aGVpZ2h0LCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPnN0YXJ0Qml0UmF0ZSwgZW5j
b2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5tYXhCaXRSYXRlLCBlbmNvZGVyLT5pbml0aWFsaXph
dGlvbkRhdGEtPm1pbkJpdFJhdGUsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+bWF4RnJh
bWVSYXRlIH0sIDApOworICAgICAgICAgICAgZW5jb2Rlci0+Y29ubmVjdGlvbiA9IG1fY29ubmVj
dGlvbi5nZXQoKTsKICAgICAgICAgfQogICAgICAgICBmb3IgKGF1dG8mIGRlY29kZXIgOiBtX2Rl
Y29kZXJzLnZhbHVlcygpKSB7Ci0gICAgICAgICAgICBjcmVhdGVSZW1vdGVEZWNvZGVyKCpkZWNv
ZGVyLCBjb25uZWN0aW9uLmdldCgpKTsKLSAgICAgICAgICAgIGRlY29kZXItPmNvbm5lY3Rpb24g
PSBjb25uZWN0aW9uLnB0cigpOworICAgICAgICAgICAgY3JlYXRlUmVtb3RlRGVjb2RlcigqZGVj
b2RlciwgKm1fY29ubmVjdGlvbik7CisgICAgICAgICAgICBkZWNvZGVyLT5jb25uZWN0aW9uID0g
bV9jb25uZWN0aW9uLmdldCgpOwogICAgICAgICB9CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oCmluZGV4
IDFjZTZlMWE4ZjliYWIzMDZmYzNhNjU0ZTk5MDZjNzg1Y2U4NmQ4MzkuLmE2MjRiYzUzM2JhMTUy
ZDZjMzE0OTMxOTI4ZmYyNWFkMmI0Zjc4YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oCkBAIC02Miw3ICs2MiwxMiBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIExpYldlYlJUQ0NvZGVjcyA6IHB1YmxpYyBJUEM6
OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQsIHB1YmxpYyBHUFVQ
cm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKLSAgICBMaWJXZWJSVENDb2RlY3MoKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPExpYldlYlJUQ0NvZGVjcz4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIGF1dG8gaW5zdGFu
Y2UgPSBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDQ29kZWNzPihuZXcgTGliV2ViUlRDQ29kZWNz
KTsKKyAgICAgICAgaW5zdGFuY2UtPmNvbm5lY3RHUFVQcm9jZXNzKCk7CisgICAgICAgIHJldHVy
biBpbnN0YW5jZTsKKyAgICB9CiAgICAgfkxpYldlYlJUQ0NvZGVjcygpOwogCiAgICAgc3RhdGlj
IHZvaWQgc2V0Q2FsbGJhY2tzKGJvb2wgdXNlR1BVUHJvY2Vzcyk7CkBAIC0xMTksNiArMTI0LDkg
QEAgcHVibGljOgogICAgIGJvb2wgc3VwcG9ydFZQOVZUQigpIGNvbnN0IHsgcmV0dXJuIG1fc3Vw
cG9ydFZQOVZUQjsgfQogCiBwcml2YXRlOgorICAgIExpYldlYlJUQ0NvZGVjcygpOworICAgIHZv
aWQgY29ubmVjdEdQVVByb2Nlc3MoKTsKKwogICAgIHZvaWQgZmFpbGVkRGVjb2RpbmcoUlRDRGVj
b2RlcklkZW50aWZpZXIpOwogICAgIHZvaWQgY29tcGxldGVkRGVjb2RpbmcoUlRDRGVjb2Rlcklk
ZW50aWZpZXIsIHVpbnQzMl90IHRpbWVTdGFtcCwgV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUm
Jik7CiAgICAgdm9pZCBjb21wbGV0ZWRFbmNvZGluZyhSVENFbmNvZGVySWRlbnRpZmllciwgSVBD
OjpEYXRhUmVmZXJlbmNlJiYsIGNvbnN0IHdlYnJ0Yzo6V2ViS2l0RW5jb2RlZEZyYW1lSW5mbyYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ05ldHdvcmsuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ05ldHdvcmsuY3BwCmluZGV4IDE5NDMwZjVlNTEwM2Q3ZGM5NGRjZGIyYTE0
YTZhNzY5NWRmNDMzYjkuLmNkN2MwNTY3OWJhZTRjYTkwNjNhOWFmOGVmYWIyNzJiNWM1MWI0Nzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENOZXR3b3JrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIExpYldlYlJUQ05ldHdvcms6On5MaWJXZWJSVENOZXR3b3JrKCkKIHsKLSAgICBz
ZXRDb25uZWN0aW9uKG51bGxwdHIpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiB2
b2lkIExpYldlYlJUQ05ldHdvcms6OnNldEFzQWN0aXZlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oCmlu
ZGV4IGU0Y2NjZjBkYzU3ZWM4NGVhNmVjNGRhOTgzNGNjY2M0YTVhNTE5NzMuLmJiZTdmYzI2Y2Yz
MjM0NjY5NWU2MWZkMDFkNmEwYjIzMmRlMGQxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuaApAQCAt
MzgsNyArMzgsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIExpYldlYlJUQ05ldHdvcmsg
OiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVk
IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBMaWJXZWJSVENO
ZXR3b3JrKCkgPSBkZWZhdWx0OwogICAgIH5MaWJXZWJSVENOZXR3b3JrKCk7CiAKICAgICBJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA4NmJhZGUyMTc1NDEz
NmFkM2IzNjNmMjMxMThmMWFhYmQ2OWI2MjJiLi5mMjNlZDZkNGJkNWQ3NzZlZDMzZGFjNDVhMzEw
MDIwMmIwOTdiZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBA
IC0xMTkzLDcgKzExOTMsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmdwdVByb2Nlc3NDb25uZWN0aW9u
Q2xvc2VkKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogTGliV2ViUlRDQ29kZWNz
JiBXZWJQcm9jZXNzOjpsaWJXZWJSVENDb2RlY3MoKQogewogICAgIGlmICghbV9saWJXZWJSVEND
b2RlY3MpCi0gICAgICAgIG1fbGliV2ViUlRDQ29kZWNzID0gbWFrZVVuaXF1ZTxMaWJXZWJSVEND
b2RlY3M+KCk7CisgICAgICAgIG1fbGliV2ViUlRDQ29kZWNzID0gTGliV2ViUlRDQ29kZWNzOjpj
cmVhdGUoKTsKICAgICByZXR1cm4gKm1fbGliV2ViUlRDQ29kZWNzOwogfQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyLmNwcAppbmRleCA5Zjk3NjJkODIzZDQ2ZWY0NzU4MjU0OTU2YjJlZWI5
Y2VhZTMzOWZhLi45NWQyNTk2M2ZlMjk5NTg3ODc0ZjU5NWZlMWFjNjcwNGNjZGUwZGI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKQEAgLTQ1LDYgKzQ1LDExIEBAIFJlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpCiB9CiAKIFJlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyOjp+UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKQoreworICAg
IEFTU0VSVCghbV9jb25uZWN0aW9uKTsKK30KKwordm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlcjo6ZGlzY29ubmVjdEdQVVByb2Nlc3MoKQogewogICAgIGlmIChtX2lzUmVnaXN0ZXJlZFRv
UGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24pCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCmluZGV4IDAxZjcyZDg4ZTA4NzBkNDU1OGZkNzc0MjVl
YmU5MTQyMGFhODk1OWUuLjkyMTIzMzg1NTYwMGIxYzZjYzQxNjEyN2NjZGRiMTE4Y2FjMzAxOGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCkBAIC01MCw2ICs1MCw3IEBAIGNsYXNzIFJlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2Fn
ZVJlY2VpdmVyCiBwdWJsaWM6CiAgICAgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKTsKICAg
ICB+UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKTsKKyAgICB2b2lkIGRpc2Nvbm5lY3RHUFVQ
cm9jZXNzKCk7CiAKICAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZT4mJik7CiAgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2U+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggOTg2NzkxYWI3ZjlkNWVhYjFlMTcwMThk
NWJjY2EwNzNlZTBlMDUyNS4uN2U5MjM4OTBmYjZkZTgxMjFkZjBjOTNlNjZiOGIyNTM2ODZiOWQ3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC02MCw2ICs2MCw3IEBAIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoKQogICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnVuc2V0RGlzcGxheUNhcHR1cmVGYWN0b3J5KG1fZGlz
cGxheUZhY3RvcnkpOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LnVuc2V0VmlkZW9DYXB0dXJlRmFjdG9yeShtX3ZpZGVvRmFjdG9yeSk7CiAgICAgbV9wcm9jZXNz
LnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgbV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
ci5kaXNjb25uZWN0R1BVUHJvY2VzcygpOwogfQogCiBjb25zdCBjaGFyKiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IGNmZWNm
MGEwNTM4MDI5MzUyNWY4ZmZjMDUxY2ZjNmVjMGIyZTllOGYuLjUzZTg4YjY3ZTI5ZGFlMGZkNGVl
ZWNjNDVmMmQ0ODBmZWI3ZmY4NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTQ2LDYgKzQ2LDcg
QEAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKFdlYlBy
b2Nlc3MmIHByb2Nlc3MpCiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6flVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyKCkKIHsKICAgICBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKyAg
ICBtX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmRpc2Nvbm5lY3RHUFVQcm9jZXNzKCk7CiB9
CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnZhbGlkYXRlVXNlck1lZGlhUmVxdWVz
dENvbnN0cmFpbnRzKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcg
aGFzaFNhbHQsIFZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENvbnN0cmFpbnRzQ2FsbGJhY2smJiBj
b21wbGV0aW9uSGFuZGxlcikK
</data>
<flag name="commit-queue"
          id="438745"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420291</attachid>
            <date>2021-02-15 02:28:49 -0800</date>
            <delta_ts>2021-02-16 00:15:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221891-20210215122847.patch</filename>
            <type>text/plain</type>
            <size>23228</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1NTc3ZTg4NDhjYmQ3NTFl
OTliOTZkYTNhODIyMzk5ZDFlYWMwODYuLmY0NmVmNDdmMGVlYThiYmNiOGQ2YzliMDUxOWUwNmFi
NjlhMmViODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDItMTUgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBUaHJlYWRNZXNzYWdlUmVj
ZWl2ZXJSZWZDb3VudGVkIHN1YmNsYXNzZXMgYXJlIGFjY2Vzc2VkIGluIG5vbi10aHJlYWQtc2Fm
ZSB3YXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MTg5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZv
ciBlYWNoIFRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgc3ViY2xhc3MsIHJlbW92ZSBj
YWxscworICAgICAgICB0byBDb25uZWN0aW9uOjphZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoKSBm
cm9tIHRoZSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgVGhlIGNhbGxzIHBhc3MgJ3RoaXMnIGFzIHRo
ZSBUaHJlYWRNZXNzYWdlUmVjZWl2ZXIqLiBJZiB0aGUKKyAgICAgICAgY29ubmVjdGlvbiB0cmll
cyB0byBkaXNwYXRjaCBhIG1lc3NhZ2UgZHVyaW5nIHRoZSBjb25zdHJ1Y3RvciwgdGhpcworICAg
ICAgICByZXN1bHRzIGluIHNvbWUgb3IgYWxsIG9mIGJlbG93OgorICAgICAgICAtIG5vbi10aHJl
YWQtc2FmZSByZWFkIG9mIG11dGF0ZWQgdmlydHVhbCBmdW5jdGlvbiBwb2ludGVyCisgICAgICAg
IC0gY2FsbCB0byBpbmNvcnJlY3QgbWVtYmVyIGZ1bmN0aW9uLCBtb3N0bHkgdG8gTWVzc2FnZVJl
Y2VpdmVyOjpkaWRSZWNlaXZlTWVzc2FnZQorICAgICAgICAtIGFuIGFzc2VydCBmcm9tIGFib3Zl
CisgICAgICAgIC0gc2tpcHBlZCBtZXNzYWdlCisKKyAgICAgICAgRm9yIGVhY2ggVGhyZWFkTWVz
c2FnZVJlY2VpdmVyUmVmQ291bnRlZCBzdWJjbGFzcywgcmVtb3ZlIGNhbGxzCisgICAgICAgIHRv
IENvbm5lY3Rpb246OnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcigpIGZyb20gdGhlIGRlc3Ry
dWN0b3IuCisgICAgICAgIFRoZSBtZXNzYWdlIHJlY2VpdmUgZGVzdGluYXRpb24gaXMgc3RpbGwg
YWN0aXZlIGR1cmluZyBkZXN0cnVjdG9yLAorICAgICAgICBzbyBDb25uZWN0aW9uIG1pZ2h0IGRp
c3BhdGNoIG5ldyBtZXNzYWdlIHRhc2tzIGR1cmluZyB0aGF0IHRpbWUuCisgICAgICAgIFRoaXMg
Y2F1c2VzIHJlZiBvZiB0aGUgaW5zdGFuY2UgYWxyZWFkeSBiZWluZyBkZXN0cm95ZWQsIHdoaWNo
CisgICAgICAgIHRoZW4gY2F1c2VzIHRoZSB0YXNrcyB0byB1c2UgZGVsZXRlZCBpbnN0YW5jZSBh
bmQgdGhlbiBsYXRlcgorICAgICAgICBkZWxldGluZyBpdCBhZ2Fpbi4KKworICAgICAgICBEb2Vz
IG5vdCB0cnkgdG8gZml4IGFueSBvdGhlciBwb3RlbnRpYWwgdGhyZWFkLXJlbGF0ZWQgaXNzdWVz
IGluCisgICAgICAgIHRoZSBtb2RpZmllZCBhcmVhcy4KKworICAgICAgICAqIEdQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdl
cjo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpjb25u
ZWN0R1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlcjo6Y2xvc2UpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oOgorICAgICAgICAq
IEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6Y29ubmVjdEdQVVBy
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyOjpjbG9zZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRD
UHJvdmlkZXI6Ok5ldHdvcmtSVENQcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
VENQcm92aWRlcjo6Y29ubmVjdFdlYlByb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JU
Q1Byb3ZpZGVyOjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OkxpYldl
YlJUQ0NvZGVjcyk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6Y29ubmVjdEdQ
VVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6On5MaWJXZWJSVEND
b2RlY3MpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmdwdVByb2Nlc3NDb25u
ZWN0aW9uRGlkQ2xvc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuaDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjcmVhdGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ05ldHdvcms6On5MaWJXZWJSVENOZXR3b3JrKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpsaWJXZWJSVENDb2RlY3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlcjo6flJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OmRpc2Nvbm5lY3RHUFVQcm9j
ZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIpOgorCiAyMDIxLTAyLTEzICBBbGV4ZXkgUHJv
c2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIu
Y3BwCmluZGV4IGJjYjRiYTVjYmJjNGQzNDcwNTlkY2ZlOGFiOGZjYjE4ZmY1YWQyZmUuLjFiMjBk
NDk1ODViNDE0MGRlMmM1ODc1NzY1YmJhNGEzNjkyODk3MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHAKQEAgLTQxLDE4ICs0MSwy
MCBAQCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6OlJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTQogICAgIDogbV9jb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgLCBtX3F1ZXVlKGNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuZ3B1UHJvY2VzcygpLmF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyUXVldWUo
KSkKIHsKLSAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLmFkZFRocmVh
ZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7Ci0gICAgbV9jb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLCB0aGlzKTsKIH0KIAotUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJNYW5hZ2VyOjp+UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKCkK
K3ZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpjb25uZWN0
R1BVUHJvY2VzcygpCiB7Ci0gICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24o
KS5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwotICAgIG1fY29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkucmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5l
Y3Rpb24oKS5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOworICAg
IG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuYWRkVGhyZWFkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7CiB9CiAKK1JlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6flJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlcigpID0gZGVmYXVsdDsKKwogdm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlck1hbmFnZXI6OmNsb3NlKCkKIHsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY29ubmVjdGlvbigpLnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5yZW1vdmVUaHJl
YWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKICAgICBkaXNwYXRjaFRvVGhy
ZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgbV9y
ZW5kZXJlcnMuY2xlYXIoKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyTWFuYWdlci5oCmluZGV4IDlmMGY2NTJmNjkzNjAyMDA4MzNlYjg5ZDYz
YTQ2ZDFlZDVlZTllOTUuLmZjMTJkOTUxMjQ5ZTlmNGU4NTVhNTFiOWI4YWFkNDM2YWUxMDIzOWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIu
aApAQCAtNDUsNyArNDUsMTIgQEAgY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXI7CiBjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIg
ZmluYWwgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZD
b3VudGVkIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcj4gY3JlYXRl
KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIHByb2Nlc3MpIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKHByb2Nlc3MpKTsg
fQorICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5h
Z2VyPiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgcHJvY2VzcykKKyAgICB7Cisg
ICAgICAgIGF1dG8gaW5zdGFuY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyTWFuYWdlcihwcm9jZXNzKSk7CisgICAgICAgIGluc3RhbmNlLT5jb25u
ZWN0R1BVUHJvY2VzcygpOworICAgICAgICByZXR1cm4gaW5zdGFuY2U7CisgICAgfQogICAgIH5S
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIoKTsKIAogICAgIHZvaWQg
ZGlkUmVjZWl2ZVJlbmRlcmVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KTsKQEAgLTU3LDYgKzYyLDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcihHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJik7CisgICAgdm9pZCBjb25uZWN0R1BVUHJvY2VzcygpOworICAgIHZvaWQgZGlz
Y29ubmVjdEdQVVByb2Nlc3MoKTsKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVz
c2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaXNwYXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4m
JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNw
cAppbmRleCA2MWI4OTBkYzc4NjdjMzNiMDA1ZjIyZTkzYmIxYWY0N2RkZDNiMTdjLi5hNGMwZGRh
NDA2YzlkNGExMmYzMTg4MTcxNzY1MDRiNjU5MTI5OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKQEAgLTQzLDE4ICs0MywyMCBAQCBSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyKEdQVQogICAgICwgbV9jb25uZWN0aW9uKGdwdUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY29ubmVjdGlvbigpKQogICAgICwgbV9xdWV1ZShncHVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmdwdVByb2Nlc3MoKS52aWRlb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclF1ZXVlKCkpCiB7
Ci0gICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5hZGRUaHJlYWRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKLSAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y29ubmVjdGlvbigpLmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlz
KTsKIH0KIAotUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6flJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKQordm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyOjpjb25uZWN0R1BVUHJvY2VzcygpCiB7Ci0gICAgbV9jb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKTsKLSAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnJlbW92
ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKyAgICBtX2Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IHRoaXMpOworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuYWRkVGhy
ZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOwogfQogCitSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjp+UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlcigpID0gZGVmYXVsdDsKKwogdm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyOjpjbG9zZSgpCiB7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNv
bm5lY3Rpb24oKS5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKyAgICBtX2Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKTsKICAgICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbbGF5
ZXJzID0gV1RGTW92ZShtX2xheWVycyldIHsgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oCmluZGV4IGEzMjRhZWM5NTc0MWFhNzg2Y2E0YjAw
MjNmNjkyYTE5NTcxMTQ1NjAuLmZkNGM0YTY3N2UwNDcyZmU2ODQxOGMxMWFjZmFmMWU0YTcwNDU5
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oCkBAIC00
OSwxMyArNDksMTkgQEAgY2xhc3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOwogY2xh
c3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciBmaW5hbCA6IHB1YmxpYyBJ
UEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcj4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmIGNvbm5lY3Rpb24pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlcihjb25uZWN0aW9uKSk7IH0KKyAgICBzdGF0aWMgUmVmPFJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+IGNyZWF0ZShHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uKQorICAgIHsKKyAgICAgICAgYXV0byBpbnN0YW5jZSA9
IGFkb3B0UmVmKCpuZXcgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcihjb25u
ZWN0aW9uKSk7CisgICAgICAgIGluc3RhbmNlLT5jb25uZWN0R1BVUHJvY2VzcygpOworICAgICAg
ICByZXR1cm4gaW5zdGFuY2U7CisgICAgfQogICAgIH5SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyKCk7CiAKICAgICB2b2lkIGNsb3NlKCk7CiAKIHByaXZhdGU6CiAgICAgZXhw
bGljaXQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcihHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJik7CisgICAgdm9pZCBjb25uZWN0R1BVUHJvY2VzcygpOwogCiAgICAgLy8g
SVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpc3BhdGNo
VG9UaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCmlu
ZGV4IDg1MTA1ZGJhM2JlYjYxYTk3MjM4ZWZhNzM5MDEwMDEzMTM2ZTk4ZjEuLjE0NGRiZTQ0ZTk1
OWEzZTQ0ODY1YjkyOWE5YTNiODIyOTc3ZTZmNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcApAQCAt
OTMsNiArOTMsMTAgQEAgTmV0d29ya1JUQ1Byb3ZpZGVyOjpOZXR3b3JrUlRDUHJvdmlkZXIoTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24KICNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKICAgICBydGM6OkxvZ01lc3NhZ2U6OlNldExvZ091dHB1dChXZWJLaXQyTG9nV2Vi
UlRDLnN0YXRlID09IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24gPyBydGM6OkxTX0lORk8gOiBydGM6
OkxTX1dBUk5JTkcsIGRvUmVsZWFzZUxvZ2dpbmcpOwogI2VuZGlmCit9CisKK3ZvaWQgTmV0d29y
a1JUQ1Byb3ZpZGVyOjpjb25uZWN0V2ViUHJvY2VzcygpCit7CiAgICAgbV9jb25uZWN0aW9uLT5j
b25uZWN0aW9uKCkuYWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpOZXR3b3JrUlRD
UHJvdmlkZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
LmgKaW5kZXggYjdiY2E3YzQ4Njk1ODAyMjk0YmY5NGFlZjA3NDBjZjcwZTNmNjJhZi4uOGU2NTUx
Y2I5YTJiNGM4ZGI4ZjFiMDlhMWIyNzJlZGExNDcyYTE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKQEAg
LTYyLDcgKzYyLDEyIEBAIHN0cnVjdCBSVENQYWNrZXRPcHRpb25zOwogCiBjbGFzcyBOZXR3b3Jr
UlRDUHJvdmlkZXIgOiBwdWJsaWMgcnRjOjpNZXNzYWdlSGFuZGxlciwgcHVibGljIElQQzo6Q29u
bmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxOZXR3b3JrUlRDUHJvdmlkZXI+IGNyZWF0ZShOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyYgY29ubmVjdGlvbikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUlRD
UHJvdmlkZXIoY29ubmVjdGlvbikpOyB9CisgICAgc3RhdGljIFJlZjxOZXR3b3JrUlRDUHJvdmlk
ZXI+IGNyZWF0ZShOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbikKKyAg
ICB7CisgICAgICAgIGF1dG8gaW5zdGFuY2UgPSBhZG9wdFJlZigqbmV3IE5ldHdvcmtSVENQcm92
aWRlcihjb25uZWN0aW9uKSk7CisgICAgICAgIGluc3RhbmNlLT5jb25uZWN0V2ViUHJvY2Vzcygp
OworICAgICAgICByZXR1cm4gaW5zdGFuY2U7CisgICAgfQogICAgIH5OZXR3b3JrUlRDUHJvdmlk
ZXIoKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJik7CkBAIC05OSw2ICsxMDQsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgTmV0d29ya1JUQ1Byb3ZpZGVyKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Jik7CisgICAgdm9pZCBjb25uZWN0V2ViUHJvY2VzcygpOwogCiAgICAgdm9pZCBjcmVhdGVVRFBT
b2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29y
azo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90LCB1aW50MTZfdCk7CiAgICAgdm9pZCBjcmVhdGVD
bGllbnRUQ1BTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29uc3Qg
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJl
c3MmLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAppbmRleCAyZGVkNGIw
NjFlOTViOTZhYzEyNWU1NzhlZDk0Mjg1MzhhMTM4YTQ0Li40M2Q5MmIyMzVmNTVkYTJkMGU4NmEy
NDFjZTkxMDdkOTJkM2QzMWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKQEAgLTE2NiwxNyArMTY2LDIwIEBA
IHN0YXRpYyB2b2lkIHNldEVuY29kZVJhdGVzQ2FsbGJhY2sod2VicnRjOjpXZWJLaXRWaWRlb0Vu
Y29kZXIgZW5jb2RlciwgY29uc3Qgd2ViCiBMaWJXZWJSVENDb2RlY3M6OkxpYldlYlJUQ0NvZGVj
cygpCiAgICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJMaWJXZWJSVENDb2RlY3MiLCBX
b3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSkp
CiB7Cit9CisKK3ZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb25uZWN0R1BVUHJvY2VzcygpCit7Cisg
ICAgQVNTRVJUKCFtX2Nvbm5lY3Rpb24pOwogICAgIGF1dG8mIGdwdUNvbm5lY3Rpb24gPSBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOwogICAgIGdw
dUNvbm5lY3Rpb24uYWRkQ2xpZW50KCp0aGlzKTsKLQogICAgIG1fY29ubmVjdGlvbiA9IG1ha2VS
ZWYoZ3B1Q29ubmVjdGlvbi5jb25uZWN0aW9uKCkpOwogICAgIG1fY29ubmVjdGlvbi0+YWRkVGhy
ZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgdGhpcyk7CiB9CiAKIExpYldlYlJUQ0NvZGVjczo6fkxpYldlYlJUQ0NvZGVj
cygpCiB7Ci0gICAgaWYgKG1fY29ubmVjdGlvbikKLSAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1v
dmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5Ojpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiB2
b2lkIExpYldlYlJUQ0NvZGVjczo6c2V0Q2FsbGJhY2tzKGJvb2wgdXNlR1BVUHJvY2VzcykKQEAg
LTQ2MSwzMCArNDY0LDI4IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpkaXNwYXRjaFRvVGhyZWFk
KEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKIAogdm9pZCBMaWJXZWJSVENDb2RlY3M6Omdw
dVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKQogewotICAg
IExvY2tIb2xkZXIgaG9sZGVyKG1fY29ubmVjdGlvbkxvY2spOwotCi0gICAgaWYgKG1fY29ubmVj
dGlvbikKLSAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKLQogICAg
IGF1dG8mIGdwdUNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpOwogICAgIGdwdUNvbm5lY3Rpb24uYWRkQ2xpZW50KCp0aGlzKTsK
LSAgICBncHVDb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsK
KyAgICB7CisgICAgICAgIGF1dG8gbG9jayA9IGhvbGRMb2NrKG1fY29ubmVjdGlvbkxvY2spOwor
ICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6TGliV2ViUlRDQ29kZWNzUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgICAg
IG1fY29ubmVjdGlvbiA9IG1ha2VSZWYoZ3B1Q29ubmVjdGlvbi5jb25uZWN0aW9uKCkpOworICAg
ICAgICBtX2Nvbm5lY3Rpb24tPmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6TGli
V2ViUlRDQ29kZWNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOworICAgIH0KIAotICAg
IGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIGNvbm5lY3Rpb24gPSBtYWtlUmVmKGdwdUNvbm5lY3Rp
b24uY29ubmVjdGlvbigpKV0geworICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXNdKCkgewogICAg
ICAgICAvLyBMb2NrIGV2ZXJ5dGhpbmcgc28gdGhhdCB3ZSBjYW4gdXBkYXRlIGVuY29kZXIvZGVj
b2RlciBjb25uZWN0aW9uLgogICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihtX2Nvbm5lY3Rpb25M
b2NrKTsKLQotICAgICAgICBtX2Nvbm5lY3Rpb24gPSBjb25uZWN0aW9uLnB0cigpOwogICAgICAg
ICAvLyBSZWNyZWF0ZSBlbmNvZGVycyBhbmQgaW5pdGlhbGl6ZSB0aGVtLCByZWNyZWF0ZSBkZWNv
ZGVycy4KICAgICAgICAgZm9yIChhdXRvJiBlbmNvZGVyIDogbV9lbmNvZGVycy52YWx1ZXMoKSkg
ewotICAgICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNz
UHJveHk6OkNyZWF0ZUVuY29kZXIgeyBlbmNvZGVyLT5pZGVudGlmaWVyLCBmb3JtYXROYW1lRnJv
bVdlYlJUQ0NvZGVjVHlwZShlbmNvZGVyLT5jb2RlY1R5cGUpLCBlbmNvZGVyLT5wYXJhbWV0ZXJz
LCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlJUQ0gyNjRMb3dM
YXRlbmN5RW5jb2RlckVuYWJsZWQoKSB9LCAwKTsKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OkNyZWF0ZUVuY29kZXIgeyBlbmNv
ZGVyLT5pZGVudGlmaWVyLCBmb3JtYXROYW1lRnJvbVdlYlJUQ0NvZGVjVHlwZShlbmNvZGVyLT5j
b2RlY1R5cGUpLCBlbmNvZGVyLT5wYXJhbWV0ZXJzLCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLndlYlJUQ0gyNjRMb3dMYXRlbmN5RW5jb2RlckVuYWJsZWQoKSB9LCAw
KTsKICAgICAgICAgICAgIGlmIChlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEpCi0gICAgICAg
ICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6
OkluaXRpYWxpemVFbmNvZGVyIHsgZW5jb2Rlci0+aWRlbnRpZmllciwgZW5jb2Rlci0+aW5pdGlh
bGl6YXRpb25EYXRhLT53aWR0aCwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5oZWlnaHQs
IGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+c3RhcnRCaXRSYXRlLCBlbmNvZGVyLT5pbml0
aWFsaXphdGlvbkRhdGEtPm1heEJpdFJhdGUsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+
bWluQml0UmF0ZSwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5tYXhGcmFtZVJhdGUgfSwg
MCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5jb25uZWN0aW9uID0gY29ubmVjdGlvbi5wdHIoKTsK
KyAgICAgICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0Nv
ZGVjc1Byb3h5OjpJbml0aWFsaXplRW5jb2RlciB7IGVuY29kZXItPmlkZW50aWZpZXIsIGVuY29k
ZXItPmluaXRpYWxpemF0aW9uRGF0YS0+d2lkdGgsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0
YS0+aGVpZ2h0LCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPnN0YXJ0Qml0UmF0ZSwgZW5j
b2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5tYXhCaXRSYXRlLCBlbmNvZGVyLT5pbml0aWFsaXph
dGlvbkRhdGEtPm1pbkJpdFJhdGUsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+bWF4RnJh
bWVSYXRlIH0sIDApOworICAgICAgICAgICAgZW5jb2Rlci0+Y29ubmVjdGlvbiA9IG1fY29ubmVj
dGlvbi5nZXQoKTsKICAgICAgICAgfQogICAgICAgICBmb3IgKGF1dG8mIGRlY29kZXIgOiBtX2Rl
Y29kZXJzLnZhbHVlcygpKSB7Ci0gICAgICAgICAgICBjcmVhdGVSZW1vdGVEZWNvZGVyKCpkZWNv
ZGVyLCBjb25uZWN0aW9uLmdldCgpKTsKLSAgICAgICAgICAgIGRlY29kZXItPmNvbm5lY3Rpb24g
PSBjb25uZWN0aW9uLnB0cigpOworICAgICAgICAgICAgY3JlYXRlUmVtb3RlRGVjb2RlcigqZGVj
b2RlciwgKm1fY29ubmVjdGlvbik7CisgICAgICAgICAgICBkZWNvZGVyLT5jb25uZWN0aW9uID0g
bV9jb25uZWN0aW9uLmdldCgpOwogICAgICAgICB9CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oCmluZGV4
IDFjZTZlMWE4ZjliYWIzMDZmYzNhNjU0ZTk5MDZjNzg1Y2U4NmQ4MzkuLmE2MjRiYzUzM2JhMTUy
ZDZjMzE0OTMxOTI4ZmYyNWFkMmI0Zjc4YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oCkBAIC02Miw3ICs2MiwxMiBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIExpYldlYlJUQ0NvZGVjcyA6IHB1YmxpYyBJUEM6
OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQsIHB1YmxpYyBHUFVQ
cm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKLSAgICBMaWJXZWJSVENDb2RlY3MoKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPExpYldlYlJUQ0NvZGVjcz4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIGF1dG8gaW5zdGFu
Y2UgPSBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDQ29kZWNzPihuZXcgTGliV2ViUlRDQ29kZWNz
KTsKKyAgICAgICAgaW5zdGFuY2UtPmNvbm5lY3RHUFVQcm9jZXNzKCk7CisgICAgICAgIHJldHVy
biBpbnN0YW5jZTsKKyAgICB9CiAgICAgfkxpYldlYlJUQ0NvZGVjcygpOwogCiAgICAgc3RhdGlj
IHZvaWQgc2V0Q2FsbGJhY2tzKGJvb2wgdXNlR1BVUHJvY2Vzcyk7CkBAIC0xMTksNiArMTI0LDkg
QEAgcHVibGljOgogICAgIGJvb2wgc3VwcG9ydFZQOVZUQigpIGNvbnN0IHsgcmV0dXJuIG1fc3Vw
cG9ydFZQOVZUQjsgfQogCiBwcml2YXRlOgorICAgIExpYldlYlJUQ0NvZGVjcygpOworICAgIHZv
aWQgY29ubmVjdEdQVVByb2Nlc3MoKTsKKwogICAgIHZvaWQgZmFpbGVkRGVjb2RpbmcoUlRDRGVj
b2RlcklkZW50aWZpZXIpOwogICAgIHZvaWQgY29tcGxldGVkRGVjb2RpbmcoUlRDRGVjb2Rlcklk
ZW50aWZpZXIsIHVpbnQzMl90IHRpbWVTdGFtcCwgV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUm
Jik7CiAgICAgdm9pZCBjb21wbGV0ZWRFbmNvZGluZyhSVENFbmNvZGVySWRlbnRpZmllciwgSVBD
OjpEYXRhUmVmZXJlbmNlJiYsIGNvbnN0IHdlYnJ0Yzo6V2ViS2l0RW5jb2RlZEZyYW1lSW5mbyYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ05ldHdvcmsuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ05ldHdvcmsuY3BwCmluZGV4IDE5NDMwZjVlNTEwM2Q3ZGM5NGRjZGIyYTE0
YTZhNzY5NWRmNDMzYjkuLmNkN2MwNTY3OWJhZTRjYTkwNjNhOWFmOGVmYWIyNzJiNWM1MWI0Nzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENOZXR3b3JrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIExpYldlYlJUQ05ldHdvcms6On5MaWJXZWJSVENOZXR3b3JrKCkKIHsKLSAgICBz
ZXRDb25uZWN0aW9uKG51bGxwdHIpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiB2
b2lkIExpYldlYlJUQ05ldHdvcms6OnNldEFzQWN0aXZlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oCmlu
ZGV4IGU0Y2NjZjBkYzU3ZWM4NGVhNmVjNGRhOTgzNGNjY2M0YTVhNTE5NzMuLmJiZTdmYzI2Y2Yz
MjM0NjY5NWU2MWZkMDFkNmEwYjIzMmRlMGQxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuaApAQCAt
MzgsNyArMzgsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIExpYldlYlJUQ05ldHdvcmsg
OiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVk
IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBMaWJXZWJSVENO
ZXR3b3JrKCkgPSBkZWZhdWx0OwogICAgIH5MaWJXZWJSVENOZXR3b3JrKCk7CiAKICAgICBJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA4NmJhZGUyMTc1NDEz
NmFkM2IzNjNmMjMxMThmMWFhYmQ2OWI2MjJiLi5mMjNlZDZkNGJkNWQ3NzZlZDMzZGFjNDVhMzEw
MDIwMmIwOTdiZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBA
IC0xMTkzLDcgKzExOTMsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmdwdVByb2Nlc3NDb25uZWN0aW9u
Q2xvc2VkKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogTGliV2ViUlRDQ29kZWNz
JiBXZWJQcm9jZXNzOjpsaWJXZWJSVENDb2RlY3MoKQogewogICAgIGlmICghbV9saWJXZWJSVEND
b2RlY3MpCi0gICAgICAgIG1fbGliV2ViUlRDQ29kZWNzID0gbWFrZVVuaXF1ZTxMaWJXZWJSVEND
b2RlY3M+KCk7CisgICAgICAgIG1fbGliV2ViUlRDQ29kZWNzID0gTGliV2ViUlRDQ29kZWNzOjpj
cmVhdGUoKTsKICAgICByZXR1cm4gKm1fbGliV2ViUlRDQ29kZWNzOwogfQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyLmNwcAppbmRleCA5Zjk3NjJkODIzZDQ2ZWY0NzU4MjU0OTU2YjJlZWI5
Y2VhZTMzOWZhLi45NWQyNTk2M2ZlMjk5NTg3ODc0ZjU5NWZlMWFjNjcwNGNjZGUwZGI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKQEAgLTQ1LDYgKzQ1LDExIEBAIFJlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpCiB9CiAKIFJlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyOjp+UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKQoreworICAg
IEFTU0VSVCghbV9jb25uZWN0aW9uKTsKK30KKwordm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlcjo6ZGlzY29ubmVjdEdQVVByb2Nlc3MoKQogewogICAgIGlmIChtX2lzUmVnaXN0ZXJlZFRv
UGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24pCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCmluZGV4IDAxZjcyZDg4ZTA4NzBkNDU1OGZkNzc0MjVl
YmU5MTQyMGFhODk1OWUuLjkyMTIzMzg1NTYwMGIxYzZjYzQxNjEyN2NjZGRiMTE4Y2FjMzAxOGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCkBAIC01MCw2ICs1MCw3IEBAIGNsYXNzIFJlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2Fn
ZVJlY2VpdmVyCiBwdWJsaWM6CiAgICAgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKTsKICAg
ICB+UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKTsKKyAgICB2b2lkIGRpc2Nvbm5lY3RHUFVQ
cm9jZXNzKCk7CiAKICAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZT4mJik7CiAgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2U+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggOTg2NzkxYWI3ZjlkNWVhYjFlMTcwMThk
NWJjY2EwNzNlZTBlMDUyNS4uN2U5MjM4OTBmYjZkZTgxMjFkZjBjOTNlNjZiOGIyNTM2ODZiOWQ3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC02MCw2ICs2MCw3IEBAIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoKQogICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnVuc2V0RGlzcGxheUNhcHR1cmVGYWN0b3J5KG1fZGlz
cGxheUZhY3RvcnkpOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LnVuc2V0VmlkZW9DYXB0dXJlRmFjdG9yeShtX3ZpZGVvRmFjdG9yeSk7CiAgICAgbV9wcm9jZXNz
LnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgbV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
ci5kaXNjb25uZWN0R1BVUHJvY2VzcygpOwogfQogCiBjb25zdCBjaGFyKiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420429</attachid>
            <date>2021-02-16 00:15:11 -0800</date>
            <delta_ts>2021-02-16 00:16:28 -0800</delta_ts>
            <desc>update names</desc>
            <filename>bug-221891-20210216101510.patch</filename>
            <type>text/plain</type>
            <size>23667</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1NTc3ZTg4NDhjYmQ3NTFl
OTliOTZkYTNhODIyMzk5ZDFlYWMwODYuLjk2NjAxMjdmYjAyMWExNDY2M2ExZmEzZjE4YTk0MmI4
NzljMDI2NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDItMTUgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBUaHJlYWRNZXNzYWdlUmVj
ZWl2ZXJSZWZDb3VudGVkIHN1YmNsYXNzZXMgYXJlIGFjY2Vzc2VkIGluIG5vbi10aHJlYWQtc2Fm
ZSB3YXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MTg5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZv
ciBlYWNoIFRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgc3ViY2xhc3MsIHJlbW92ZSBj
YWxscworICAgICAgICB0byBDb25uZWN0aW9uOjphZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoKSBm
cm9tIHRoZSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgVGhlIGNhbGxzIHBhc3MgJ3RoaXMnIGFzIHRo
ZSBUaHJlYWRNZXNzYWdlUmVjZWl2ZXIqLiBJZiB0aGUKKyAgICAgICAgY29ubmVjdGlvbiB0cmll
cyB0byBkaXNwYXRjaCBhIG1lc3NhZ2UgZHVyaW5nIHRoZSBjb25zdHJ1Y3RvciwgdGhpcworICAg
ICAgICByZXN1bHRzIGluIHNvbWUgb3IgYWxsIG9mIGJlbG93OgorICAgICAgICAtIG5vbi10aHJl
YWQtc2FmZSByZWFkIG9mIG11dGF0ZWQgdmlydHVhbCBmdW5jdGlvbiBwb2ludGVyCisgICAgICAg
IC0gY2FsbCB0byBpbmNvcnJlY3QgbWVtYmVyIGZ1bmN0aW9uLCBtb3N0bHkgdG8gTWVzc2FnZVJl
Y2VpdmVyOjpkaWRSZWNlaXZlTWVzc2FnZQorICAgICAgICAtIGFuIGFzc2VydCBmcm9tIGFib3Zl
CisgICAgICAgIC0gc2tpcHBlZCBtZXNzYWdlCisKKyAgICAgICAgRm9yIGVhY2ggVGhyZWFkTWVz
c2FnZVJlY2VpdmVyUmVmQ291bnRlZCBzdWJjbGFzcywgcmVtb3ZlIGNhbGxzCisgICAgICAgIHRv
IENvbm5lY3Rpb246OnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcigpIGZyb20gdGhlIGRlc3Ry
dWN0b3IuCisgICAgICAgIFRoZSBtZXNzYWdlIHJlY2VpdmUgZGVzdGluYXRpb24gaXMgc3RpbGwg
YWN0aXZlIGR1cmluZyBkZXN0cnVjdG9yLAorICAgICAgICBzbyBDb25uZWN0aW9uIG1pZ2h0IGRp
c3BhdGNoIG5ldyBtZXNzYWdlIHRhc2tzIGR1cmluZyB0aGF0IHRpbWUuCisgICAgICAgIFRoaXMg
Y2F1c2VzIHJlZiBvZiB0aGUgaW5zdGFuY2UgYWxyZWFkeSBiZWluZyBkZXN0cm95ZWQsIHdoaWNo
CisgICAgICAgIHRoZW4gY2F1c2VzIHRoZSB0YXNrcyB0byB1c2UgZGVsZXRlZCBpbnN0YW5jZSBh
bmQgdGhlbiBsYXRlcgorICAgICAgICBkZWxldGluZyBpdCBhZ2Fpbi4KKworICAgICAgICBEb2Vz
IG5vdCB0cnkgdG8gZml4IGFueSBvdGhlciBwb3RlbnRpYWwgdGhyZWFkLXJlbGF0ZWQgaXNzdWVz
IGluCisgICAgICAgIHRoZSBtb2RpZmllZCBhcmVhcy4KKworICAgICAgICAqIEdQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdl
cjo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpzdGFy
dExpc3RlbmluZ0ZvcklQQyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6Y2xvc2UpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oOgorICAgICAg
ICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6c3RhcnRMaXN0
ZW5pbmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyOjpjbG9zZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUlRDUHJvdmlkZXI6Ok5ldHdvcmtSVENQcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtSVENQcm92aWRlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2Rl
Y3M6OkxpYldlYlJUQ0NvZGVjcyk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6
c3RhcnRMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6
On5MaWJXZWJSVENDb2RlY3MpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6Omdw
dVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3MuaDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNz
OjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
TmV0d29yay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ05ldHdvcms6On5MaWJXZWJS
VENOZXR3b3JrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q05ldHdvcmsuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpsaWJXZWJSVENDb2RlY3MpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6flJlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OnN0b3BM
aXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9nbGli
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcik6CisKIDIwMjEtMDItMTMg
IEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWFuYWdlci5jcHAKaW5kZXggYmNiNGJhNWNiYmM0ZDM0NzA1OWRjZmU4YWI4ZmNiMThmZjVh
ZDJmZS4uZGQ1MmVhODE3YmMyZmJiNDUxZWFiODI2ZWY1MmJlYjU1MTllNTI5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcApAQCAt
NDEsMTggKzQxLDIwIEBAIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdl
cjo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNCiAgICAgOiBtX2Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKICAgICAsIG1fcXVldWUoY29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5ncHVQcm9jZXNzKCkuYXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJRdWV1ZSgpKQogewotICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9u
KCkuYWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKLSAgICBtX2Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOwogfQogCi1SZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlck1hbmFnZXI6On5SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ck1hbmFnZXIoKQordm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXI6OnN0YXJ0TGlzdGVuaW5nRm9ySVBDKCkKIHsKLSAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY29ubmVjdGlvbigpLnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7
Ci0gICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5yZW1vdmVUaHJlYWRN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY29ubmVjdGlvbigpLmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgdGhpcyk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5hZGRU
aHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKIH0KIAorUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjp+UmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKCkgPSBkZWZhdWx0OworCiB2b2lkIFJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6Y2xvc2UoKQogeworICAgIG1fY29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkucmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlv
bigpLnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogICAg
IGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0g
ewogICAgICAgICBtX3JlbmRlcmVycy5jbGVhcigpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmgKaW5kZXggOWYwZjY1MmY2OTM2
MDIwMDgzM2ViODlkNjNhNDZkMWVkNWVlOWU5NS4uNWIwYTY4NGI1MjU3OTM5YmRhZDJkY2Q1OWU0
ZDUwYTRjNDY5YjJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlci5oCkBAIC00NSw3ICs0NSwxMiBAQCBjbGFzcyBSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlcjsKIGNsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlciBmaW5hbCA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3Nh
Z2VSZWNlaXZlclJlZkNvdW50ZWQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
YW5hZ2VyPiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgcHJvY2VzcykgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXIocHJvY2VzcykpOyB9CisgICAgc3RhdGljIFJlZjxSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1hbmFnZXI+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBwcm9j
ZXNzKQorICAgIHsKKyAgICAgICAgYXV0byBpbnN0YW5jZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKHByb2Nlc3MpKTsKKyAgICAgICAg
aW5zdGFuY2UtPnN0YXJ0TGlzdGVuaW5nRm9ySVBDKCk7CisgICAgICAgIHJldHVybiBpbnN0YW5j
ZTsKKyAgICB9CiAgICAgflJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdl
cigpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlUmVuZGVyZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpOwpAQCAtNTcsNiArNjIsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2Vy
KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9y
SVBDKCk7CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlcgog
ICAgIHZvaWQgZGlzcGF0Y2hUb1RocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKaW5kZXggNjFiODkw
ZGM3ODY3YzMzYjAwNWYyMmU5M2JiMWFmNDdkZGQzYjE3Yy4uNGJhZWY0OGRlYWI0NDVmMGJjMzcz
NzU2NzcxYjVmOTJmNDZmMzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIuY3BwCkBAIC00MywxOCArNDMsMjAgQEAgUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlcjo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcihH
UFUKICAgICAsIG1fY29ubmVjdGlvbihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rp
b24oKSkKICAgICAsIG1fcXVldWUoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5ncHVQcm9jZXNz
KCkudmlkZW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJRdWV1ZSgpKQogewotICAgIG1fY29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuYWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSwgdGhpcyk7Ci0gICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5h
ZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7CiB9CiAKLVJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6On5SZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyKCkKK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKQogewotICAgIG1fY29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jb25uZWN0aW9uKCkucmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Ci0g
ICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5yZW1vdmVUaHJlYWRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNvbm5lY3Rpb24oKS5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKKyAg
ICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLmFkZFRocmVhZE1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKIH0KIAorUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlcjo6flJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIo
KSA9IGRlZmF1bHQ7CisKIHZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
cjo6Y2xvc2UoKQogeworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCku
cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgbV9jb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSk7CiAgICAgZGlzcGF0Y2hUb1RocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpXSB7CiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW2xheWVycyA9IFdURk1v
dmUobV9sYXllcnMpXSB7IH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXIuaAppbmRleCBhMzI0YWVjOTU3NDFhYTc4NmNhNGIwMDIzZjY5MmExOTU3
MTE0NTYwLi43NWY2MGQ1MjZjY2Q1ZWM2YzRlYmUxMzk2MmFmZjM0YTU1YTZkMjVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaApAQCAtNDksMTMgKzQ5LDE5
IEBAIGNsYXNzIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjsKIGNsYXNzIFJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpDb25uZWN0
aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIHsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXI+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25u
ZWN0aW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIoY29ubmVjdGlvbikpOyB9CisgICAgc3RhdGljIFJlZjxSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyPiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYgY29ubmVjdGlvbikKKyAgICB7CisgICAgICAgIGF1dG8gaW5zdGFuY2UgPSBhZG9wdFJlZigq
bmV3IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoY29ubmVjdGlvbikpOwor
ICAgICAgICBpbnN0YW5jZS0+c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKKyAgICAgICAgcmV0dXJu
IGluc3RhbmNlOworICAgIH0KICAgICB+UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlcigpOwogCiAgICAgdm9pZCBjbG9zZSgpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYpOworICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKIAogICAgIC8vIElQQzo6
Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaXNwYXRjaFRvVGhy
ZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAppbmRleCA4
NTEwNWRiYTNiZWI2MWE5NzIzOGVmYTczOTAxMDAxMzEzNmU5OGYxLi4wYTZiMTU2ZjRjYjg4ZTg1
YmYwZmNlYThhYzM3MjBkZDYyMTQ0MDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKQEAgLTkzLDYg
KzkzLDEwIEBAIE5ldHdvcmtSVENQcm92aWRlcjo6TmV0d29ya1JUQ1Byb3ZpZGVyKE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgcnRjOjpMb2dNZXNzYWdlOjpTZXRMb2dPdXRwdXQoV2ViS2l0MkxvZ1dlYlJUQy5z
dGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uID8gcnRjOjpMU19JTkZPIDogcnRjOjpMU19X
QVJOSU5HLCBkb1JlbGVhc2VMb2dnaW5nKTsKICNlbmRpZgorfQorCit2b2lkIE5ldHdvcmtSVENQ
cm92aWRlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKQorewogICAgIG1fY29ubmVjdGlvbi0+Y29u
bmVjdGlvbigpLmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6TmV0d29ya1JUQ1By
b3ZpZGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5o
CmluZGV4IGI3YmNhN2M0ODY5NTgwMjI5NGJmOTRhZWYwNzQwY2Y3MGUzZjYyYWYuLjQ5NzE3MWI1
NjQyNjg5Mjg5NTIxMDZiZDdlZWE1NGJlZTkzYmVlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCkBAIC02
Miw3ICs2MiwxMiBAQCBzdHJ1Y3QgUlRDUGFja2V0T3B0aW9uczsKIAogY2xhc3MgTmV0d29ya1JU
Q1Byb3ZpZGVyIDogcHVibGljIHJ0Yzo6TWVzc2FnZUhhbmRsZXIsIHB1YmxpYyBJUEM6OkNvbm5l
Y3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgewogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8TmV0d29ya1JUQ1Byb3ZpZGVyPiBjcmVhdGUoTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIGNvbm5lY3Rpb24pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya1JUQ1By
b3ZpZGVyKGNvbm5lY3Rpb24pKTsgfQorICAgIHN0YXRpYyBSZWY8TmV0d29ya1JUQ1Byb3ZpZGVy
PiBjcmVhdGUoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24pCisgICAg
eworICAgICAgICBhdXRvIGluc3RhbmNlID0gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUlRDUHJvdmlk
ZXIoY29ubmVjdGlvbikpOworICAgICAgICBpbnN0YW5jZS0+c3RhcnRMaXN0ZW5pbmdGb3JJUEMo
KTsKKyAgICAgICAgcmV0dXJuIGluc3RhbmNlOworICAgIH0KICAgICB+TmV0d29ya1JUQ1Byb3Zp
ZGVyKCk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpOwpAQCAtOTksNiArMTA0LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IE5ldHdvcmtSVENQcm92aWRlcihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYpOworICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKIAogICAgIHZvaWQgY3JlYXRl
VURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCwgdWludDE2X3QpOwogICAgIHZvaWQgY3Jl
YXRlQ2xpZW50VENQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIGNv
bnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRB
ZGRyZXNzJiwgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXggMmRl
ZDRiMDYxZTk1Yjk2YWMxMjVlNTc4ZWQ5NDI4NTM4YTEzOGE0NC4uYjkyYmUwMGNkZjBlNDdjMDg0
ZWE3YWZmN2M0MGU5YjFkOGM1ZmQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0xNjYsMTcgKzE2Niwy
MCBAQCBzdGF0aWMgdm9pZCBzZXRFbmNvZGVSYXRlc0NhbGxiYWNrKHdlYnJ0Yzo6V2ViS2l0Vmlk
ZW9FbmNvZGVyIGVuY29kZXIsIGNvbnN0IHdlYgogTGliV2ViUlRDQ29kZWNzOjpMaWJXZWJSVEND
b2RlY3MoKQogICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiTGliV2ViUlRDQ29kZWNz
IiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpVc2VySW50ZXJhY3Rp
dmUpKQogeworfQorCit2b2lkIExpYldlYlJUQ0NvZGVjczo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMo
KQoreworICAgIEFTU0VSVCghbV9jb25uZWN0aW9uKTsKICAgICBhdXRvJiBncHVDb25uZWN0aW9u
ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsK
ICAgICBncHVDb25uZWN0aW9uLmFkZENsaWVudCgqdGhpcyk7Ci0KICAgICBtX2Nvbm5lY3Rpb24g
PSBtYWtlUmVmKGdwdUNvbm5lY3Rpb24uY29ubmVjdGlvbigpKTsKICAgICBtX2Nvbm5lY3Rpb24t
PmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOwogfQogCiBMaWJXZWJSVENDb2RlY3M6On5MaWJXZWJS
VENDb2RlY3MoKQogewotICAgIGlmIChtX2Nvbm5lY3Rpb24pCi0gICAgICAgIG1fY29ubmVjdGlv
bi0+cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQ
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
IH0KIAogdm9pZCBMaWJXZWJSVENDb2RlY3M6OnNldENhbGxiYWNrcyhib29sIHVzZUdQVVByb2Nl
c3MpCkBAIC00NjEsMzAgKzQ2NCwyOCBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6ZGlzcGF0Y2hU
b1RocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCiAKIHZvaWQgTGliV2ViUlRDQ29k
ZWNzOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW9uJikK
IHsKLSAgICBMb2NrSG9sZGVyIGhvbGRlcihtX2Nvbm5lY3Rpb25Mb2NrKTsKLQotICAgIGlmICht
X2Nvbm5lY3Rpb24pCi0gICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlVGhyZWFkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7
Ci0KICAgICBhdXRvJiBncHVDb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICBncHVDb25uZWN0aW9uLmFkZENsaWVudCgq
dGhpcyk7Ci0gICAgZ3B1Q29ubmVjdGlvbi5jb25uZWN0aW9uKCkuYWRkVGhyZWFkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
dGhpcyk7CisgICAgeworICAgICAgICBhdXRvIGxvY2sgPSBob2xkTG9jayhtX2Nvbm5lY3Rpb25M
b2NrKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwor
ICAgICAgICBtX2Nvbm5lY3Rpb24gPSBtYWtlUmVmKGdwdUNvbm5lY3Rpb24uY29ubmVjdGlvbigp
KTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OkxpYldlYlJUQ0NvZGVjczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKKyAgICB9
CiAKLSAgICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBjb25uZWN0aW9uID0gbWFrZVJlZihncHVD
b25uZWN0aW9uLmNvbm5lY3Rpb24oKSldIHsKKyAgICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzXSgp
IHsKICAgICAgICAgLy8gTG9jayBldmVyeXRoaW5nIHNvIHRoYXQgd2UgY2FuIHVwZGF0ZSBlbmNv
ZGVyL2RlY29kZXIgY29ubmVjdGlvbi4KICAgICAgICAgTG9ja0hvbGRlciBob2xkZXIobV9jb25u
ZWN0aW9uTG9jayk7Ci0KLSAgICAgICAgbV9jb25uZWN0aW9uID0gY29ubmVjdGlvbi5wdHIoKTsK
ICAgICAgICAgLy8gUmVjcmVhdGUgZW5jb2RlcnMgYW5kIGluaXRpYWxpemUgdGhlbSwgcmVjcmVh
dGUgZGVjb2RlcnMuCiAgICAgICAgIGZvciAoYXV0byYgZW5jb2RlciA6IG1fZW5jb2RlcnMudmFs
dWVzKCkpIHsKLSAgICAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJU
Q0NvZGVjc1Byb3h5OjpDcmVhdGVFbmNvZGVyIHsgZW5jb2Rlci0+aWRlbnRpZmllciwgZm9ybWF0
TmFtZUZyb21XZWJSVENDb2RlY1R5cGUoZW5jb2Rlci0+Y29kZWNUeXBlKSwgZW5jb2Rlci0+cGFy
YW1ldGVycywgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJSVENI
MjY0TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkKCkgfSwgMCk7CisgICAgICAgICAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpDcmVhdGVFbmNvZGVy
IHsgZW5jb2Rlci0+aWRlbnRpZmllciwgZm9ybWF0TmFtZUZyb21XZWJSVENDb2RlY1R5cGUoZW5j
b2Rlci0+Y29kZWNUeXBlKSwgZW5jb2Rlci0+cGFyYW1ldGVycywgUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJSVENIMjY0TG93TGF0ZW5jeUVuY29kZXJFbmFibGVk
KCkgfSwgMCk7CiAgICAgICAgICAgICBpZiAoZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhKQot
ICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVj
c1Byb3h5OjpJbml0aWFsaXplRW5jb2RlciB7IGVuY29kZXItPmlkZW50aWZpZXIsIGVuY29kZXIt
PmluaXRpYWxpemF0aW9uRGF0YS0+d2lkdGgsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+
aGVpZ2h0LCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPnN0YXJ0Qml0UmF0ZSwgZW5jb2Rl
ci0+aW5pdGlhbGl6YXRpb25EYXRhLT5tYXhCaXRSYXRlLCBlbmNvZGVyLT5pbml0aWFsaXphdGlv
bkRhdGEtPm1pbkJpdFJhdGUsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+bWF4RnJhbWVS
YXRlIH0sIDApOwotICAgICAgICAgICAgZW5jb2Rlci0+Y29ubmVjdGlvbiA9IGNvbm5lY3Rpb24u
cHRyKCk7CisgICAgICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJX
ZWJSVENDb2RlY3NQcm94eTo6SW5pdGlhbGl6ZUVuY29kZXIgeyBlbmNvZGVyLT5pZGVudGlmaWVy
LCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPndpZHRoLCBlbmNvZGVyLT5pbml0aWFsaXph
dGlvbkRhdGEtPmhlaWdodCwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5zdGFydEJpdFJh
dGUsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+bWF4Qml0UmF0ZSwgZW5jb2Rlci0+aW5p
dGlhbGl6YXRpb25EYXRhLT5taW5CaXRSYXRlLCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEt
Pm1heEZyYW1lUmF0ZSB9LCAwKTsKKyAgICAgICAgICAgIGVuY29kZXItPmNvbm5lY3Rpb24gPSBt
X2Nvbm5lY3Rpb24uZ2V0KCk7CiAgICAgICAgIH0KICAgICAgICAgZm9yIChhdXRvJiBkZWNvZGVy
IDogbV9kZWNvZGVycy52YWx1ZXMoKSkgewotICAgICAgICAgICAgY3JlYXRlUmVtb3RlRGVjb2Rl
cigqZGVjb2RlciwgY29ubmVjdGlvbi5nZXQoKSk7Ci0gICAgICAgICAgICBkZWNvZGVyLT5jb25u
ZWN0aW9uID0gY29ubmVjdGlvbi5wdHIoKTsKKyAgICAgICAgICAgIGNyZWF0ZVJlbW90ZURlY29k
ZXIoKmRlY29kZXIsICptX2Nvbm5lY3Rpb24pOworICAgICAgICAgICAgZGVjb2Rlci0+Y29ubmVj
dGlvbiA9IG1fY29ubmVjdGlvbi5nZXQoKTsKICAgICAgICAgfQogICAgIH0pOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNz
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3Mu
aAppbmRleCAxY2U2ZTFhOGY5YmFiMzA2ZmMzYTY1NGU5OTA2Yzc4NWNlODZkODM5Li5jMjg3NjJi
MjRjODllMTQyYjVkZTljZTZmMTc3NDJkNTQ4NmQzYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaApAQCAtNjIsNyAr
NjIsMTIgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBMaWJXZWJSVENDb2RlY3MgOiBwdWJs
aWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkLCBwdWJs
aWMgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6Ci0gICAgTGliV2ViUlRDQ29kZWNzKCk7CisgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxMaWJXZWJSVENDb2RlY3M+IGNyZWF0ZSgpCisgICAgeworICAgICAgICBhdXRv
IGluc3RhbmNlID0gc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ0NvZGVjcz4obmV3IExpYldlYlJU
Q0NvZGVjcyk7CisgICAgICAgIGluc3RhbmNlLT5zdGFydExpc3RlbmluZ0ZvcklQQygpOworICAg
ICAgICByZXR1cm4gaW5zdGFuY2U7CisgICAgfQogICAgIH5MaWJXZWJSVENDb2RlY3MoKTsKIAog
ICAgIHN0YXRpYyB2b2lkIHNldENhbGxiYWNrcyhib29sIHVzZUdQVVByb2Nlc3MpOwpAQCAtMTEw
LDcgKzExNSw3IEBAIHB1YmxpYzoKICAgICBpbnQzMl90IGVuY29kZUZyYW1lKEVuY29kZXImLCBj
b25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmLCBib29sIHNob3VsZEVuY29kZUFzS2V5RnJhbWUpOwog
ICAgIHZvaWQgcmVnaXN0ZXJFbmNvZGVGcmFtZUNhbGxiYWNrKEVuY29kZXImLCB2b2lkKiBlbmNv
ZGVkSW1hZ2VDYWxsYmFjayk7CiAgICAgdm9pZCBzZXRFbmNvZGVSYXRlcyhFbmNvZGVyJiwgdWlu
dDMyX3QgYml0UmF0ZSwgdWludDMyX3QgZnJhbWVSYXRlKTsKLSAgICAKKwogICAgIENWUGl4ZWxC
dWZmZXJQb29sUmVmIHBpeGVsQnVmZmVyUG9vbChzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQs
IE9TVHlwZSk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIGZpbmFsOwpAQCAtMTE5LDYgKzEyNCw5IEBAIHB1YmxpYzoKICAgICBi
b29sIHN1cHBvcnRWUDlWVEIoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRWUDlWVEI7IH0KIAog
cHJpdmF0ZToKKyAgICBMaWJXZWJSVENDb2RlY3MoKTsKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5n
Rm9ySVBDKCk7CisKICAgICB2b2lkIGZhaWxlZERlY29kaW5nKFJUQ0RlY29kZXJJZGVudGlmaWVy
KTsKICAgICB2b2lkIGNvbXBsZXRlZERlY29kaW5nKFJUQ0RlY29kZXJJZGVudGlmaWVyLCB1aW50
MzJfdCB0aW1lU3RhbXAsIFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYpOwogICAgIHZvaWQg
Y29tcGxldGVkRW5jb2RpbmcoUlRDRW5jb2RlcklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5j
ZSYmLCBjb25zdCB3ZWJydGM6OldlYktpdEVuY29kZWRGcmFtZUluZm8mKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3Jr
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENO
ZXR3b3JrLmNwcAppbmRleCAxOTQzMGY1ZTUxMDNkN2RjOTRkY2RiMmExNGE2YTc2OTVkZjQzM2I5
Li5jZDdjMDU2NzliYWU0Y2E5MDYzYTlhZjhlZmFiMjcyYjVjNTFiNDc3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q05ldHdvcmsuY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBMaWJX
ZWJSVENOZXR3b3JrOjp+TGliV2ViUlRDTmV0d29yaygpCiB7Ci0gICAgc2V0Q29ubmVjdGlvbihu
dWxscHRyKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogdm9pZCBMaWJXZWJSVENO
ZXR3b3JrOjpzZXRBc0FjdGl2ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuaAppbmRleCBlNGNjY2YwZGM1
N2VjODRlYTZlYzRkYTk4MzRjY2NjNGE1YTUxOTczLi5iYmU3ZmMyNmNmMzIzNDY2OTVlNjFmZDAx
ZDZhMGIyMzJkZTBkMTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmgKQEAgLTM4LDcgKzM4LDYgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBMaWJXZWJSVENOZXR3b3JrIDogcHVibGljIElQQzo6
Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgTGliV2ViUlRDTmV0d29yaygpID0gZGVm
YXVsdDsKICAgICB+TGliV2ViUlRDTmV0d29yaygpOwogCiAgICAgSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggODZiYWRlMjE3NTQxMzZhZDNiMzYzZjIzMTE4
ZjFhYWJkNjliNjIyYi4uZjIzZWQ2ZDRiZDVkNzc2ZWQzM2RhYzQ1YTMxMDAyMDJiMDk3YmU4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTE5Myw3ICsxMTkz
LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpncHVQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChHUFVQcm9j
ZXNzQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKIExpYldlYlJUQ0NvZGVjcyYgV2ViUHJvY2Vzczo6
bGliV2ViUlRDQ29kZWNzKCkKIHsKICAgICBpZiAoIW1fbGliV2ViUlRDQ29kZWNzKQotICAgICAg
ICBtX2xpYldlYlJUQ0NvZGVjcyA9IG1ha2VVbmlxdWU8TGliV2ViUlRDQ29kZWNzPigpOworICAg
ICAgICBtX2xpYldlYlJUQ0NvZGVjcyA9IExpYldlYlJUQ0NvZGVjczo6Y3JlYXRlKCk7CiAgICAg
cmV0dXJuICptX2xpYldlYlJUQ0NvZGVjczsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
ci5jcHAKaW5kZXggOWY5NzYyZDgyM2Q0NmVmNDc1ODI1NDk1NmIyZWViOWNlYWUzMzlmYS4uMzI0
MDdiMjk4NzM2ZDJhZmUyNGFmNGExMDFlYjgyMDYxODliMGZiOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIuY3BwCkBAIC00NSw2ICs0NSwxMSBAQCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKQogfQogCiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlcjo6flJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkKK3sKKyAgICBBU1NFUlQoIW1fY29u
bmVjdGlvbik7Cit9CisKK3ZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OnN0b3BMaXN0
ZW5pbmdGb3JJUEMoKQogewogICAgIGlmIChtX2lzUmVnaXN0ZXJlZFRvUGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24pCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3Rl
Q2FwdHVyZVNhbXBsZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlci5oCmluZGV4IDAxZjcyZDg4ZTA4NzBkNDU1OGZkNzc0MjVlYmU5MTQyMGFhODk1OWUu
LjBhMjc1ZTk4MzYzMmZiOTM3YTZlMGFkOTA4Y2Y3MDg5MjAyNzQ4YjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlci5oCkBAIC01MCw2ICs1MCw3IEBAIGNsYXNzIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyCiBwdWJs
aWM6CiAgICAgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKTsKICAgICB+UmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXIoKTsKKyAgICB2b2lkIHN0b3BMaXN0ZW5pbmdGb3JJUEMoKTsKIAogICAg
IHZvaWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYmKTsKICAgICB2
b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcAppbmRleCA5ODY3OTFhYjdmOWQ1ZWFiMWUxNzAxOGQ1YmNjYTA3M2VlMGUwNTI1
Li5kYWUxMWUxMjgwMmEyYzhhYjEzNTU1ODJlMzUzZjI5Yjc1MzhiZDJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5jcHAKQEAgLTYwLDYgKzYwLDcgQEAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6On5Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcigpCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkudW5zZXREaXNwbGF5Q2FwdHVyZUZhY3RvcnkobV9kaXNwbGF5RmFjdG9yeSk7CiAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudW5zZXRWaWRlb0NhcHR1
cmVGYWN0b3J5KG1fdmlkZW9GYWN0b3J5KTsKICAgICBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKTsKKyAgICBtX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLnN0b3BMaXN0ZW5pbmdG
b3JJUEMoKTsKIH0KIAogY29uc3QgY2hhciogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN1cHBs
ZW1lbnROYW1lKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420430</attachid>
            <date>2021-02-16 00:16:33 -0800</date>
            <delta_ts>2021-02-18 02:01:54 -0800</delta_ts>
            <desc>update names</desc>
            <filename>bug-221891-20210216101631.patch</filename>
            <type>text/plain</type>
            <size>23664</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1NTc3ZTg4NDhjYmQ3NTFl
OTliOTZkYTNhODIyMzk5ZDFlYWMwODYuLjg1MTMzN2IyMTUyYzlhY2NkYzUyNmYxNjk0YWExMmU4
NGEyOGE3ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDItMTUgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBUaHJlYWRNZXNzYWdlUmVj
ZWl2ZXJSZWZDb3VudGVkIHN1YmNsYXNzZXMgYXJlIGFjY2Vzc2VkIGluIG5vbi10aHJlYWQtc2Fm
ZSB3YXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MTg5MQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIEZvciBl
YWNoIFRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgc3ViY2xhc3MsIHJlbW92ZSBjYWxs
cworICAgICAgICB0byBDb25uZWN0aW9uOjphZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoKSBmcm9t
IHRoZSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgVGhlIGNhbGxzIHBhc3MgJ3RoaXMnIGFzIHRoZSBU
aHJlYWRNZXNzYWdlUmVjZWl2ZXIqLiBJZiB0aGUKKyAgICAgICAgY29ubmVjdGlvbiB0cmllcyB0
byBkaXNwYXRjaCBhIG1lc3NhZ2UgZHVyaW5nIHRoZSBjb25zdHJ1Y3RvciwgdGhpcworICAgICAg
ICByZXN1bHRzIGluIHNvbWUgb3IgYWxsIG9mIGJlbG93OgorICAgICAgICAtIG5vbi10aHJlYWQt
c2FmZSByZWFkIG9mIG11dGF0ZWQgdmlydHVhbCBmdW5jdGlvbiBwb2ludGVyCisgICAgICAgIC0g
Y2FsbCB0byBpbmNvcnJlY3QgbWVtYmVyIGZ1bmN0aW9uLCBtb3N0bHkgdG8gTWVzc2FnZVJlY2Vp
dmVyOjpkaWRSZWNlaXZlTWVzc2FnZQorICAgICAgICAtIGFuIGFzc2VydCBmcm9tIGFib3ZlCisg
ICAgICAgIC0gc2tpcHBlZCBtZXNzYWdlCisKKyAgICAgICAgRm9yIGVhY2ggVGhyZWFkTWVzc2Fn
ZVJlY2VpdmVyUmVmQ291bnRlZCBzdWJjbGFzcywgcmVtb3ZlIGNhbGxzCisgICAgICAgIHRvIENv
bm5lY3Rpb246OnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcigpIGZyb20gdGhlIGRlc3RydWN0
b3IuCisgICAgICAgIFRoZSBtZXNzYWdlIHJlY2VpdmUgZGVzdGluYXRpb24gaXMgc3RpbGwgYWN0
aXZlIGR1cmluZyBkZXN0cnVjdG9yLAorICAgICAgICBzbyBDb25uZWN0aW9uIG1pZ2h0IGRpc3Bh
dGNoIG5ldyBtZXNzYWdlIHRhc2tzIGR1cmluZyB0aGF0IHRpbWUuCisgICAgICAgIFRoaXMgY2F1
c2VzIHJlZiBvZiB0aGUgaW5zdGFuY2UgYWxyZWFkeSBiZWluZyBkZXN0cm95ZWQsIHdoaWNoCisg
ICAgICAgIHRoZW4gY2F1c2VzIHRoZSB0YXNrcyB0byB1c2UgZGVsZXRlZCBpbnN0YW5jZSBhbmQg
dGhlbiBsYXRlcgorICAgICAgICBkZWxldGluZyBpdCBhZ2Fpbi4KKworICAgICAgICBEb2VzIG5v
dCB0cnkgdG8gZml4IGFueSBvdGhlciBwb3RlbnRpYWwgdGhyZWFkLXJlbGF0ZWQgaXNzdWVzIGlu
CisgICAgICAgIHRoZSBtb2RpZmllZCBhcmVhcy4KKworICAgICAgICAqIEdQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpzdGFydExp
c3RlbmluZ0ZvcklQQyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlcjo6Y2xvc2UpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oOgorICAgICAgICAq
IEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6c3RhcnRMaXN0ZW5p
bmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyOjpjbG9zZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UlRDUHJvdmlkZXI6Ok5ldHdvcmtSVENQcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSVENQcm92aWRlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6
OkxpYldlYlJUQ0NvZGVjcyk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6c3Rh
cnRMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6On5M
aWJXZWJSVENDb2RlY3MpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmdwdVBy
b2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3MuaDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpj
cmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0
d29yay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ05ldHdvcms6On5MaWJXZWJSVENO
ZXR3b3JrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05l
dHdvcmsuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjpsaWJXZWJSVENDb2RlY3MpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6flJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OnN0b3BMaXN0
ZW5pbmdGb3JJUEMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9nbGliL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcik6CisKIDIwMjEtMDItMTMgIEFs
ZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBi
dWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
TWFuYWdlci5jcHAKaW5kZXggYmNiNGJhNWNiYmM0ZDM0NzA1OWRjZmU4YWI4ZmNiMThmZjVhZDJm
ZS4uZGQ1MmVhODE3YmMyZmJiNDUxZWFiODI2ZWY1MmJlYjU1MTllNTI5MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcApAQCAtNDEs
MTggKzQxLDIwIEBAIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNCiAgICAgOiBtX2Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKICAgICAsIG1fcXVldWUoY29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5ncHVQcm9jZXNzKCkuYXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJRdWV1ZSgpKQogewotICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCku
YWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKLSAgICBtX2Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOwogfQogCi1SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1hbmFnZXI6On5SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1h
bmFnZXIoKQordm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6
OnN0YXJ0TGlzdGVuaW5nRm9ySVBDKCkKIHsKLSAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y29ubmVjdGlvbigpLnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Ci0g
ICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5yZW1vdmVUaHJlYWRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
TWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY29ubmVjdGlvbigpLmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
dGhpcyk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5hZGRUaHJl
YWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKIH0KIAorUmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjp+UmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKCkgPSBkZWZhdWx0OworCiB2b2lkIFJlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6Y2xvc2UoKQogeworICAgIG1fY29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkucmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigp
LnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogICAgIGRp
c3BhdGNoVG9UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewog
ICAgICAgICBtX3JlbmRlcmVycy5jbGVhcigpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmgKaW5kZXggOWYwZjY1MmY2OTM2MDIw
MDgzM2ViODlkNjNhNDZkMWVkNWVlOWU5NS4uNWIwYTY4NGI1MjU3OTM5YmRhZDJkY2Q1OWU0ZDUw
YTRjNDY5YjJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWFuYWdlci5oCkBAIC00NSw3ICs0NSwxMiBAQCBjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlcjsKIGNsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWFuYWdlciBmaW5hbCA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VS
ZWNlaXZlclJlZkNvdW50ZWQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5h
Z2VyPiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgcHJvY2VzcykgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIo
cHJvY2VzcykpOyB9CisgICAgc3RhdGljIFJlZjxSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlck1hbmFnZXI+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBwcm9jZXNz
KQorICAgIHsKKyAgICAgICAgYXV0byBpbnN0YW5jZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKHByb2Nlc3MpKTsKKyAgICAgICAgaW5z
dGFuY2UtPnN0YXJ0TGlzdGVuaW5nRm9ySVBDKCk7CisgICAgICAgIHJldHVybiBpbnN0YW5jZTsK
KyAgICB9CiAgICAgflJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcigp
OwogCiAgICAgdm9pZCBkaWRSZWNlaXZlUmVuZGVyZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpOwpAQCAtNTcsNiArNjIsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9ySVBD
KCk7CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlcgogICAg
IHZvaWQgZGlzcGF0Y2hUb1RocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYpIGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKaW5kZXggNjFiODkwZGM3
ODY3YzMzYjAwNWYyMmU5M2JiMWFmNDdkZGQzYjE3Yy4uNGJhZWY0OGRlYWI0NDVmMGJjMzczNzU2
NzcxYjVmOTJmNDZmMzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIuY3BwCkBAIC00MywxOCArNDMsMjAgQEAgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlcjo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcihHUFUK
ICAgICAsIG1fY29ubmVjdGlvbihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24o
KSkKICAgICAsIG1fcXVldWUoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5ncHVQcm9jZXNzKCku
dmlkZW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJRdWV1ZSgpKQogewotICAgIG1fY29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuYWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgdGhpcyk7Ci0gICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5hZGRU
aHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7CiB9CiAKLVJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6On5SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyKCkKK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
cjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKQogewotICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jb25uZWN0aW9uKCkucmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Ci0gICAg
bV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5yZW1vdmVUaHJlYWRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNv
bm5lY3Rpb24oKS5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKKyAgICBt
X2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLmFkZFRocmVhZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKIH0KIAorUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlcjo6flJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKSA9
IGRlZmF1bHQ7CisKIHZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6
Y2xvc2UoKQogeworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkucmVt
b3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNvbm5lY3Rpb24oKS5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSk7CiAgICAgZGlzcGF0Y2hUb1RocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpXSB7CiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW2xheWVycyA9IFdURk1vdmUo
bV9sYXllcnMpXSB7IH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIuaAppbmRleCBhMzI0YWVjOTU3NDFhYTc4NmNhNGIwMDIzZjY5MmExOTU3MTE0
NTYwLi43NWY2MGQ1MjZjY2Q1ZWM2YzRlYmUxMzk2MmFmZjM0YTU1YTZkMjVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaApAQCAtNDksMTMgKzQ5LDE5IEBA
IGNsYXNzIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjsKIGNsYXNzIFJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9u
OjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXI+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0
aW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIoY29ubmVjdGlvbikpOyB9CisgICAgc3RhdGljIFJlZjxSZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyPiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYg
Y29ubmVjdGlvbikKKyAgICB7CisgICAgICAgIGF1dG8gaW5zdGFuY2UgPSBhZG9wdFJlZigqbmV3
IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoY29ubmVjdGlvbikpOworICAg
ICAgICBpbnN0YW5jZS0+c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKKyAgICAgICAgcmV0dXJuIGlu
c3RhbmNlOworICAgIH0KICAgICB+UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
cigpOwogCiAgICAgdm9pZCBjbG9zZSgpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYpOworICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKIAogICAgIC8vIElQQzo6Q29u
bmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaXNwYXRjaFRvVGhyZWFk
KEZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAppbmRleCA4NTEw
NWRiYTNiZWI2MWE5NzIzOGVmYTczOTAxMDAxMzEzNmU5OGYxLi4wYTZiMTU2ZjRjYjg4ZTg1YmYw
ZmNlYThhYzM3MjBkZDYyMTQ0MDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKQEAgLTkzLDYgKzkz
LDEwIEBAIE5ldHdvcmtSVENQcm92aWRlcjo6TmV0d29ya1JUQ1Byb3ZpZGVyKE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CiAgICAgcnRjOjpMb2dNZXNzYWdlOjpTZXRMb2dPdXRwdXQoV2ViS2l0MkxvZ1dlYlJUQy5zdGF0
ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uID8gcnRjOjpMU19JTkZPIDogcnRjOjpMU19XQVJO
SU5HLCBkb1JlbGVhc2VMb2dnaW5nKTsKICNlbmRpZgorfQorCit2b2lkIE5ldHdvcmtSVENQcm92
aWRlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKQorewogICAgIG1fY29ubmVjdGlvbi0+Y29ubmVj
dGlvbigpLmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3Zp
ZGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCmlu
ZGV4IGI3YmNhN2M0ODY5NTgwMjI5NGJmOTRhZWYwNzQwY2Y3MGUzZjYyYWYuLjQ5NzE3MWI1NjQy
Njg5Mjg5NTIxMDZiZDdlZWE1NGJlZTkzYmVlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCkBAIC02Miw3
ICs2MiwxMiBAQCBzdHJ1Y3QgUlRDUGFja2V0T3B0aW9uczsKIAogY2xhc3MgTmV0d29ya1JUQ1By
b3ZpZGVyIDogcHVibGljIHJ0Yzo6TWVzc2FnZUhhbmRsZXIsIHB1YmxpYyBJUEM6OkNvbm5lY3Rp
b246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8TmV0d29ya1JUQ1Byb3ZpZGVyPiBjcmVhdGUoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmIGNvbm5lY3Rpb24pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya1JUQ1Byb3Zp
ZGVyKGNvbm5lY3Rpb24pKTsgfQorICAgIHN0YXRpYyBSZWY8TmV0d29ya1JUQ1Byb3ZpZGVyPiBj
cmVhdGUoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24pCisgICAgewor
ICAgICAgICBhdXRvIGluc3RhbmNlID0gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUlRDUHJvdmlkZXIo
Y29ubmVjdGlvbikpOworICAgICAgICBpbnN0YW5jZS0+c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsK
KyAgICAgICAgcmV0dXJuIGluc3RhbmNlOworICAgIH0KICAgICB+TmV0d29ya1JUQ1Byb3ZpZGVy
KCk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpOwpAQCAtOTksNiArMTA0LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGV4
cGxpY2l0IE5ldHdvcmtSVENQcm92aWRlcihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYp
OworICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKIAogICAgIHZvaWQgY3JlYXRlVURQ
U29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdv
cms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCwgdWludDE2X3QpOwogICAgIHZvaWQgY3JlYXRl
Q2xpZW50VENQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIGNvbnN0
IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRy
ZXNzJiwgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXggMmRlZDRi
MDYxZTk1Yjk2YWMxMjVlNTc4ZWQ5NDI4NTM4YTEzOGE0NC4uYjkyYmUwMGNkZjBlNDdjMDg0ZWE3
YWZmN2M0MGU5YjFkOGM1ZmQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0xNjYsMTcgKzE2NiwyMCBA
QCBzdGF0aWMgdm9pZCBzZXRFbmNvZGVSYXRlc0NhbGxiYWNrKHdlYnJ0Yzo6V2ViS2l0VmlkZW9F
bmNvZGVyIGVuY29kZXIsIGNvbnN0IHdlYgogTGliV2ViUlRDQ29kZWNzOjpMaWJXZWJSVENDb2Rl
Y3MoKQogICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiTGliV2ViUlRDQ29kZWNzIiwg
V29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUp
KQogeworfQorCit2b2lkIExpYldlYlJUQ0NvZGVjczo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKQor
eworICAgIEFTU0VSVCghbV9jb25uZWN0aW9uKTsKICAgICBhdXRvJiBncHVDb25uZWN0aW9uID0g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAg
ICBncHVDb25uZWN0aW9uLmFkZENsaWVudCgqdGhpcyk7Ci0KICAgICBtX2Nvbm5lY3Rpb24gPSBt
YWtlUmVmKGdwdUNvbm5lY3Rpb24uY29ubmVjdGlvbigpKTsKICAgICBtX2Nvbm5lY3Rpb24tPmFk
ZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIHRoaXMpOwogfQogCiBMaWJXZWJSVENDb2RlY3M6On5MaWJXZWJSVEND
b2RlY3MoKQogewotICAgIGlmIChtX2Nvbm5lY3Rpb24pCi0gICAgICAgIG1fY29ubmVjdGlvbi0+
cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
IAogdm9pZCBMaWJXZWJSVENDb2RlY3M6OnNldENhbGxiYWNrcyhib29sIHVzZUdQVVByb2Nlc3Mp
CkBAIC00NjEsMzAgKzQ2NCwyOCBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6ZGlzcGF0Y2hUb1Ro
cmVhZChGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCiAKIHZvaWQgTGliV2ViUlRDQ29kZWNz
OjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW9uJikKIHsK
LSAgICBMb2NrSG9sZGVyIGhvbGRlcihtX2Nvbm5lY3Rpb25Mb2NrKTsKLQotICAgIGlmIChtX2Nv
bm5lY3Rpb24pCi0gICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Ci0K
ICAgICBhdXRvJiBncHVDb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJl
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICBncHVDb25uZWN0aW9uLmFkZENsaWVudCgqdGhp
cyk7Ci0gICAgZ3B1Q29ubmVjdGlvbi5jb25uZWN0aW9uKCkuYWRkVGhyZWFkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhp
cyk7CisgICAgeworICAgICAgICBhdXRvIGxvY2sgPSBob2xkTG9jayhtX2Nvbm5lY3Rpb25Mb2Nr
KTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworICAg
ICAgICBtX2Nvbm5lY3Rpb24gPSBtYWtlUmVmKGdwdUNvbm5lY3Rpb24uY29ubmVjdGlvbigpKTsK
KyAgICAgICAgbV9jb25uZWN0aW9uLT5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OkxpYldlYlJUQ0NvZGVjczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKKyAgICB9CiAK
LSAgICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBjb25uZWN0aW9uID0gbWFrZVJlZihncHVDb25u
ZWN0aW9uLmNvbm5lY3Rpb24oKSldIHsKKyAgICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzXSgpIHsK
ICAgICAgICAgLy8gTG9jayBldmVyeXRoaW5nIHNvIHRoYXQgd2UgY2FuIHVwZGF0ZSBlbmNvZGVy
L2RlY29kZXIgY29ubmVjdGlvbi4KICAgICAgICAgTG9ja0hvbGRlciBob2xkZXIobV9jb25uZWN0
aW9uTG9jayk7Ci0KLSAgICAgICAgbV9jb25uZWN0aW9uID0gY29ubmVjdGlvbi5wdHIoKTsKICAg
ICAgICAgLy8gUmVjcmVhdGUgZW5jb2RlcnMgYW5kIGluaXRpYWxpemUgdGhlbSwgcmVjcmVhdGUg
ZGVjb2RlcnMuCiAgICAgICAgIGZvciAoYXV0byYgZW5jb2RlciA6IG1fZW5jb2RlcnMudmFsdWVz
KCkpIHsKLSAgICAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0Nv
ZGVjc1Byb3h5OjpDcmVhdGVFbmNvZGVyIHsgZW5jb2Rlci0+aWRlbnRpZmllciwgZm9ybWF0TmFt
ZUZyb21XZWJSVENDb2RlY1R5cGUoZW5jb2Rlci0+Y29kZWNUeXBlKSwgZW5jb2Rlci0+cGFyYW1l
dGVycywgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJSVENIMjY0
TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkKCkgfSwgMCk7CisgICAgICAgICAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpDcmVhdGVFbmNvZGVyIHsg
ZW5jb2Rlci0+aWRlbnRpZmllciwgZm9ybWF0TmFtZUZyb21XZWJSVENDb2RlY1R5cGUoZW5jb2Rl
ci0+Y29kZWNUeXBlKSwgZW5jb2Rlci0+cGFyYW1ldGVycywgUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS53ZWJSVENIMjY0TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkKCkg
fSwgMCk7CiAgICAgICAgICAgICBpZiAoZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhKQotICAg
ICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1By
b3h5OjpJbml0aWFsaXplRW5jb2RlciB7IGVuY29kZXItPmlkZW50aWZpZXIsIGVuY29kZXItPmlu
aXRpYWxpemF0aW9uRGF0YS0+d2lkdGgsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+aGVp
Z2h0LCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPnN0YXJ0Qml0UmF0ZSwgZW5jb2Rlci0+
aW5pdGlhbGl6YXRpb25EYXRhLT5tYXhCaXRSYXRlLCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRh
dGEtPm1pbkJpdFJhdGUsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+bWF4RnJhbWVSYXRl
IH0sIDApOwotICAgICAgICAgICAgZW5jb2Rlci0+Y29ubmVjdGlvbiA9IGNvbm5lY3Rpb24ucHRy
KCk7CisgICAgICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJS
VENDb2RlY3NQcm94eTo6SW5pdGlhbGl6ZUVuY29kZXIgeyBlbmNvZGVyLT5pZGVudGlmaWVyLCBl
bmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPndpZHRoLCBlbmNvZGVyLT5pbml0aWFsaXphdGlv
bkRhdGEtPmhlaWdodCwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5zdGFydEJpdFJhdGUs
IGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+bWF4Qml0UmF0ZSwgZW5jb2Rlci0+aW5pdGlh
bGl6YXRpb25EYXRhLT5taW5CaXRSYXRlLCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPm1h
eEZyYW1lUmF0ZSB9LCAwKTsKKyAgICAgICAgICAgIGVuY29kZXItPmNvbm5lY3Rpb24gPSBtX2Nv
bm5lY3Rpb24uZ2V0KCk7CiAgICAgICAgIH0KICAgICAgICAgZm9yIChhdXRvJiBkZWNvZGVyIDog
bV9kZWNvZGVycy52YWx1ZXMoKSkgewotICAgICAgICAgICAgY3JlYXRlUmVtb3RlRGVjb2Rlcigq
ZGVjb2RlciwgY29ubmVjdGlvbi5nZXQoKSk7Ci0gICAgICAgICAgICBkZWNvZGVyLT5jb25uZWN0
aW9uID0gY29ubmVjdGlvbi5wdHIoKTsKKyAgICAgICAgICAgIGNyZWF0ZVJlbW90ZURlY29kZXIo
KmRlY29kZXIsICptX2Nvbm5lY3Rpb24pOworICAgICAgICAgICAgZGVjb2Rlci0+Y29ubmVjdGlv
biA9IG1fY29ubmVjdGlvbi5nZXQoKTsKICAgICAgICAgfQogICAgIH0pOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaApp
bmRleCAxY2U2ZTFhOGY5YmFiMzA2ZmMzYTY1NGU5OTA2Yzc4NWNlODZkODM5Li5jMjg3NjJiMjRj
ODllMTQyYjVkZTljZTZmMTc3NDJkNTQ4NmQzYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaApAQCAtNjIsNyArNjIs
MTIgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBMaWJXZWJSVENDb2RlY3MgOiBwdWJsaWMg
SVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkLCBwdWJsaWMg
R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgTGliV2ViUlRDQ29kZWNzKCk7CisgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxMaWJXZWJSVENDb2RlY3M+IGNyZWF0ZSgpCisgICAgeworICAgICAgICBhdXRvIGlu
c3RhbmNlID0gc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ0NvZGVjcz4obmV3IExpYldlYlJUQ0Nv
ZGVjcyk7CisgICAgICAgIGluc3RhbmNlLT5zdGFydExpc3RlbmluZ0ZvcklQQygpOworICAgICAg
ICByZXR1cm4gaW5zdGFuY2U7CisgICAgfQogICAgIH5MaWJXZWJSVENDb2RlY3MoKTsKIAogICAg
IHN0YXRpYyB2b2lkIHNldENhbGxiYWNrcyhib29sIHVzZUdQVVByb2Nlc3MpOwpAQCAtMTEwLDcg
KzExNSw3IEBAIHB1YmxpYzoKICAgICBpbnQzMl90IGVuY29kZUZyYW1lKEVuY29kZXImLCBjb25z
dCB3ZWJydGM6OlZpZGVvRnJhbWUmLCBib29sIHNob3VsZEVuY29kZUFzS2V5RnJhbWUpOwogICAg
IHZvaWQgcmVnaXN0ZXJFbmNvZGVGcmFtZUNhbGxiYWNrKEVuY29kZXImLCB2b2lkKiBlbmNvZGVk
SW1hZ2VDYWxsYmFjayk7CiAgICAgdm9pZCBzZXRFbmNvZGVSYXRlcyhFbmNvZGVyJiwgdWludDMy
X3QgYml0UmF0ZSwgdWludDMyX3QgZnJhbWVSYXRlKTsKLSAgICAKKwogICAgIENWUGl4ZWxCdWZm
ZXJQb29sUmVmIHBpeGVsQnVmZmVyUG9vbChzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIE9T
VHlwZSk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIGZpbmFsOwpAQCAtMTE5LDYgKzEyNCw5IEBAIHB1YmxpYzoKICAgICBib29s
IHN1cHBvcnRWUDlWVEIoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRWUDlWVEI7IH0KIAogcHJp
dmF0ZToKKyAgICBMaWJXZWJSVENDb2RlY3MoKTsKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9y
SVBDKCk7CisKICAgICB2b2lkIGZhaWxlZERlY29kaW5nKFJUQ0RlY29kZXJJZGVudGlmaWVyKTsK
ICAgICB2b2lkIGNvbXBsZXRlZERlY29kaW5nKFJUQ0RlY29kZXJJZGVudGlmaWVyLCB1aW50MzJf
dCB0aW1lU3RhbXAsIFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYpOwogICAgIHZvaWQgY29t
cGxldGVkRW5jb2RpbmcoUlRDRW5jb2RlcklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSYm
LCBjb25zdCB3ZWJydGM6OldlYktpdEVuY29kZWRGcmFtZUluZm8mKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3
b3JrLmNwcAppbmRleCAxOTQzMGY1ZTUxMDNkN2RjOTRkY2RiMmExNGE2YTc2OTVkZjQzM2I5Li5j
ZDdjMDU2NzliYWU0Y2E5MDYzYTlhZjhlZmFiMjcyYjVjNTFiNDc3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05l
dHdvcmsuY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBMaWJXZWJS
VENOZXR3b3JrOjp+TGliV2ViUlRDTmV0d29yaygpCiB7Ci0gICAgc2V0Q29ubmVjdGlvbihudWxs
cHRyKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogdm9pZCBMaWJXZWJSVENOZXR3
b3JrOjpzZXRBc0FjdGl2ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuaAppbmRleCBlNGNjY2YwZGM1N2Vj
ODRlYTZlYzRkYTk4MzRjY2NjNGE1YTUxOTczLi5iYmU3ZmMyNmNmMzIzNDY2OTVlNjFmZDAxZDZh
MGIyMzJkZTBkMTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmgKQEAgLTM4LDcgKzM4LDYgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBMaWJXZWJSVENOZXR3b3JrIDogcHVibGljIElQQzo6Q29u
bmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgTGliV2ViUlRDTmV0d29yaygpID0gZGVmYXVs
dDsKICAgICB+TGliV2ViUlRDTmV0d29yaygpOwogCiAgICAgSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggODZiYWRlMjE3NTQxMzZhZDNiMzYzZjIzMTE4ZjFh
YWJkNjliNjIyYi4uZjIzZWQ2ZDRiZDVkNzc2ZWQzM2RhYzQ1YTMxMDAyMDJiMDk3YmU4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTE5Myw3ICsxMTkzLDcg
QEAgdm9pZCBXZWJQcm9jZXNzOjpncHVQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChHUFVQcm9jZXNz
Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIExpYldlYlJUQ0NvZGVjcyYgV2ViUHJvY2Vzczo6bGli
V2ViUlRDQ29kZWNzKCkKIHsKICAgICBpZiAoIW1fbGliV2ViUlRDQ29kZWNzKQotICAgICAgICBt
X2xpYldlYlJUQ0NvZGVjcyA9IG1ha2VVbmlxdWU8TGliV2ViUlRDQ29kZWNzPigpOworICAgICAg
ICBtX2xpYldlYlJUQ0NvZGVjcyA9IExpYldlYlJUQ0NvZGVjczo6Y3JlYXRlKCk7CiAgICAgcmV0
dXJuICptX2xpYldlYlJUQ0NvZGVjczsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5j
cHAKaW5kZXggOWY5NzYyZDgyM2Q0NmVmNDc1ODI1NDk1NmIyZWViOWNlYWUzMzlmYS4uMzI0MDdi
Mjk4NzM2ZDJhZmUyNGFmNGExMDFlYjgyMDYxODliMGZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFn
ZXIuY3BwCkBAIC00NSw2ICs0NSwxMSBAQCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKQogfQogCiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
cjo6flJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkKK3sKKyAgICBBU1NFUlQoIW1fY29ubmVj
dGlvbik7Cit9CisKK3ZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OnN0b3BMaXN0ZW5p
bmdGb3JJUEMoKQogewogICAgIGlmIChtX2lzUmVnaXN0ZXJlZFRvUGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24pCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlci5oCmluZGV4IDAxZjcyZDg4ZTA4NzBkNDU1OGZkNzc0MjVlYmU5MTQyMGFhODk1OWUuLjBh
Mjc1ZTk4MzYzMmZiOTM3YTZlMGFkOTA4Y2Y3MDg5MjAyNzQ4YjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlci5oCkBAIC01MCw2ICs1MCw3IEBAIGNsYXNzIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
IDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyCiBwdWJsaWM6
CiAgICAgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKTsKICAgICB+UmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXIoKTsKKyAgICB2b2lkIHN0b3BMaXN0ZW5pbmdGb3JJUEMoKTsKIAogICAgIHZv
aWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYmKTsKICAgICB2b2lk
IGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcAppbmRleCA5ODY3OTFhYjdmOWQ1ZWFiMWUxNzAxOGQ1YmNjYTA3M2VlMGUwNTI1Li5k
YWUxMWUxMjgwMmEyYzhhYjEzNTU1ODJlMzUzZjI5Yjc1MzhiZDJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5jcHAKQEAgLTYwLDYgKzYwLDcgQEAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6On5Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcigpCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkudW5zZXREaXNwbGF5Q2FwdHVyZUZhY3RvcnkobV9kaXNwbGF5RmFjdG9yeSk7CiAgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudW5zZXRWaWRlb0NhcHR1cmVG
YWN0b3J5KG1fdmlkZW9GYWN0b3J5KTsKICAgICBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKTsKKyAgICBtX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLnN0b3BMaXN0ZW5pbmdGb3JJ
UEMoKTsKIH0KIAogY29uc3QgY2hhciogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN1cHBsZW1l
bnROYW1lKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420813</attachid>
            <date>2021-02-18 02:01:59 -0800</date>
            <delta_ts>2021-02-18 07:59:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221891-20210218120157.patch</filename>
            <type>text/plain</type>
            <size>23689</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMxNzMxMWZjZmI1MjYyMTlh
Y2Y4YTYxMzZlMTAzYzlmMTAzNDlkOTUuLmI3YzhmYThkZTYwYWMwMDRjOGNiZDA3MTk5Yzk5NjMz
M2RlN2M0ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDItMTggIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBUaHJlYWRNZXNzYWdlUmVj
ZWl2ZXJSZWZDb3VudGVkIHN1YmNsYXNzZXMgYXJlIGFjY2Vzc2VkIGluIG5vbi10aHJlYWQtc2Fm
ZSB3YXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MTg5MQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIEZvciBl
YWNoIFRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgc3ViY2xhc3MsIHJlbW92ZSBjYWxs
cworICAgICAgICB0byBDb25uZWN0aW9uOjphZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoKSBmcm9t
IHRoZSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgVGhlIGNhbGxzIHBhc3MgJ3RoaXMnIGFzIHRoZSBU
aHJlYWRNZXNzYWdlUmVjZWl2ZXIqLiBJZiB0aGUKKyAgICAgICAgY29ubmVjdGlvbiB0cmllcyB0
byBkaXNwYXRjaCBhIG1lc3NhZ2UgZHVyaW5nIHRoZSBjb25zdHJ1Y3RvciwgdGhpcworICAgICAg
ICByZXN1bHRzIGluIHNvbWUgb3IgYWxsIG9mIGJlbG93OgorICAgICAgICAtIG5vbi10aHJlYWQt
c2FmZSByZWFkIG9mIG11dGF0ZWQgdmlydHVhbCBmdW5jdGlvbiBwb2ludGVyCisgICAgICAgIC0g
Y2FsbCB0byBpbmNvcnJlY3QgbWVtYmVyIGZ1bmN0aW9uLCBtb3N0bHkgdG8gTWVzc2FnZVJlY2Vp
dmVyOjpkaWRSZWNlaXZlTWVzc2FnZQorICAgICAgICAtIGFuIGFzc2VydCBmcm9tIGFib3ZlCisg
ICAgICAgIC0gc2tpcHBlZCBtZXNzYWdlCisKKyAgICAgICAgRm9yIGVhY2ggVGhyZWFkTWVzc2Fn
ZVJlY2VpdmVyUmVmQ291bnRlZCBzdWJjbGFzcywgcmVtb3ZlIGNhbGxzCisgICAgICAgIHRvIENv
bm5lY3Rpb246OnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcigpIGZyb20gdGhlIGRlc3RydWN0
b3IuCisgICAgICAgIFRoZSBtZXNzYWdlIHJlY2VpdmUgZGVzdGluYXRpb24gaXMgc3RpbGwgYWN0
aXZlIGR1cmluZyBkZXN0cnVjdG9yLAorICAgICAgICBzbyBDb25uZWN0aW9uIG1pZ2h0IGRpc3Bh
dGNoIG5ldyBtZXNzYWdlIHRhc2tzIGR1cmluZyB0aGF0IHRpbWUuCisgICAgICAgIFRoaXMgY2F1
c2VzIHJlZiBvZiB0aGUgaW5zdGFuY2UgYWxyZWFkeSBiZWluZyBkZXN0cm95ZWQsIHdoaWNoCisg
ICAgICAgIHRoZW4gY2F1c2VzIHRoZSB0YXNrcyB0byB1c2UgZGVsZXRlZCBpbnN0YW5jZSBhbmQg
dGhlbiBsYXRlcgorICAgICAgICBkZWxldGluZyBpdCBhZ2Fpbi4KKworICAgICAgICBEb2VzIG5v
dCB0cnkgdG8gZml4IGFueSBvdGhlciBwb3RlbnRpYWwgdGhyZWFkLXJlbGF0ZWQgaXNzdWVzIGlu
CisgICAgICAgIHRoZSBtb2RpZmllZCBhcmVhcy4KKworICAgICAgICAqIEdQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpzdGFydExp
c3RlbmluZ0ZvcklQQyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlcjo6Y2xvc2UpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oOgorICAgICAgICAq
IEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6c3RhcnRMaXN0ZW5p
bmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyOjpjbG9zZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UlRDUHJvdmlkZXI6Ok5ldHdvcmtSVENQcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSVENQcm92aWRlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6
OkxpYldlYlJUQ0NvZGVjcyk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6c3Rh
cnRMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6On5M
aWJXZWJSVENDb2RlY3MpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmdwdVBy
b2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3MuaDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpj
cmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0
d29yay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ05ldHdvcms6On5MaWJXZWJSVENO
ZXR3b3JrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05l
dHdvcmsuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjpsaWJXZWJSVENDb2RlY3MpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6flJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OnN0b3BMaXN0
ZW5pbmdGb3JJUEMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9nbGliL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcik6CisKIDIwMjEtMDItMTcgIE1l
Z2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXR1cm4g
Y29ycmVjdCB0YXJnZXQgZm9yIEFwcCBIaWdobGlnaHQgbWVudXMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHAKaW5kZXggYmNiNGJhNWNi
YmM0ZDM0NzA1OWRjZmU4YWI4ZmNiMThmZjVhZDJmZS4uZGQ1MmVhODE3YmMyZmJiNDUxZWFiODI2
ZWY1MmJlYjU1MTllNTI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJNYW5hZ2VyLmNwcApAQCAtNDEsMTggKzQxLDIwIEBAIFJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJNCiAgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2Vi
UHJvY2VzcykKICAgICAsIG1fcXVldWUoY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5ncHVQcm9jZXNz
KCkuYXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJRdWV1ZSgpKQogewotICAgIG1fY29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuYWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLCB0aGlzKTsKLSAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlv
bigpLmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOwog
fQogCi1SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6On5SZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIoKQordm9pZCBSZW1vdGVBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6OnN0YXJ0TGlzdGVuaW5nRm9ySVBDKCkKIHsK
LSAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnJlbW92ZVRocmVhZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Ci0gICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNvbm5lY3Rpb24oKS5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLmFkZFRocmVh
ZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7CisgICAgbV9jb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLCB0aGlzKTsKIH0KIAorUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJNYW5hZ2VyOjp+UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKCkg
PSBkZWZhdWx0OworCiB2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFu
YWdlcjo6Y2xvc2UoKQogeworICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9u
KCkucmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKyAgICBtX2Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewogICAgICAgICBtX3JlbmRlcmVycy5jbGVhcigp
OwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
YW5hZ2VyLmgKaW5kZXggOWYwZjY1MmY2OTM2MDIwMDgzM2ViODlkNjNhNDZkMWVkNWVlOWU5NS4u
NWIwYTY4NGI1MjU3OTM5YmRhZDJkY2Q1OWU0ZDUwYTRjNDY5YjJlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oCkBAIC00NSw3ICs0NSwx
MiBAQCBjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjsKIGNsYXNzIFJl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciBmaW5hbCA6IHB1YmxpYyBJ
UEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyPiBjcmVhdGUoR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyYgcHJvY2VzcykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIocHJvY2VzcykpOyB9CisgICAgc3RhdGljIFJl
ZjxSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI+IGNyZWF0ZShHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBwcm9jZXNzKQorICAgIHsKKyAgICAgICAgYXV0byBpbnN0
YW5jZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
YW5hZ2VyKHByb2Nlc3MpKTsKKyAgICAgICAgaW5zdGFuY2UtPnN0YXJ0TGlzdGVuaW5nRm9ySVBD
KCk7CisgICAgICAgIHJldHVybiBpbnN0YW5jZTsKKyAgICB9CiAgICAgflJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcigpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlUmVu
ZGVyZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwpAQCAtNTcsNiAr
NjIsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsK
KyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9ySVBDKCk7CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rp
b246OlRocmVhZE1lc3NhZ2VSZWNlaXZlcgogICAgIHZvaWQgZGlzcGF0Y2hUb1RocmVhZChGdW5j
dGlvbjx2b2lkKCk+JiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlci5jcHAKaW5kZXggNjFiODkwZGM3ODY3YzMzYjAwNWYyMmU5M2JiMWFmNDdkZGQz
YjE3Yy4uNGJhZWY0OGRlYWI0NDVmMGJjMzczNzU2NzcxYjVmOTJmNDZmMzVkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCkBAIC00MywxOCArNDMs
MjAgQEAgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6UmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcihHUFUKICAgICAsIG1fY29ubmVjdGlvbihncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSkKICAgICAsIG1fcXVldWUoZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5ncHVQcm9jZXNzKCkudmlkZW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJRdWV1ZSgpKQogewotICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCku
YWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7Ci0gICAgbV9jb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgdGhpcyk7CiB9CiAKLVJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXI6On5SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkKK3ZvaWQgUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKQog
ewotICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkucmVtb3ZlVGhyZWFk
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Ci0gICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNv
bm5lY3Rpb24oKS5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cisg
ICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5hZGRUaHJlYWRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29u
bmVjdGlvbigpLmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsK
IH0KIAorUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6flJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKSA9IGRlZmF1bHQ7CisKIHZvaWQgUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6Y2xvc2UoKQogeworICAgIG1fY29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkucmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSk7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5yZW1vdmVU
aHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiAgICAgZGlzcGF0Y2hUb1RocmVh
ZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CiAgICAgICAgIGNhbGxP
bk1haW5UaHJlYWQoW2xheWVycyA9IFdURk1vdmUobV9sYXllcnMpXSB7IH0pOwogICAgIH0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaAppbmRleCBhMzI0YWVj
OTU3NDFhYTc4NmNhNGIwMDIzZjY5MmExOTU3MTE0NTYwLi43NWY2MGQ1MjZjY2Q1ZWM2YzRlYmUx
Mzk2MmFmZjM0YTU1YTZkMjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIuaApAQCAtNDksMTMgKzQ5LDE5IEBAIGNsYXNzIFJlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcjsKIGNsYXNzIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIg
ZmluYWwgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZD
b3VudGVkIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+IGNyZWF0ZShHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3
IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoY29ubmVjdGlvbikpOyB9Cisg
ICAgc3RhdGljIFJlZjxSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyPiBjcmVh
dGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbikKKyAgICB7CisgICAgICAg
IGF1dG8gaW5zdGFuY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIoY29ubmVjdGlvbikpOworICAgICAgICBpbnN0YW5jZS0+c3RhcnRMaXN0ZW5p
bmdGb3JJUEMoKTsKKyAgICAgICAgcmV0dXJuIGluc3RhbmNlOworICAgIH0KICAgICB+UmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpOwogCiAgICAgdm9pZCBjbG9zZSgpOwog
CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1h
bmFnZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOworICAgIHZvaWQgc3RhcnRMaXN0ZW5p
bmdGb3JJUEMoKTsKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2Vp
dmVyCiAgICAgdm9pZCBkaXNwYXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3Jr
UlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1Byb3ZpZGVyLmNwcAppbmRleCA4NTEwNWRiYTNiZWI2MWE5NzIzOGVmYTczOTAxMDAx
MzEzNmU5OGYxLi4wYTZiMTU2ZjRjYjg4ZTg1YmYwZmNlYThhYzM3MjBkZDYyMTQ0MDA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJv
dmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENQcm92aWRlci5jcHAKQEAgLTkzLDYgKzkzLDEwIEBAIE5ldHdvcmtSVENQcm92aWRlcjo6
TmV0d29ya1JUQ1Byb3ZpZGVyKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0
aW9uCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgcnRjOjpMb2dNZXNzYWdlOjpTZXRM
b2dPdXRwdXQoV2ViS2l0MkxvZ1dlYlJUQy5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9u
ID8gcnRjOjpMU19JTkZPIDogcnRjOjpMU19XQVJOSU5HLCBkb1JlbGVhc2VMb2dnaW5nKTsKICNl
bmRpZgorfQorCit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMo
KQorewogICAgIG1fY29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLmFkZFRocmVhZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IHRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCmluZGV4IGI3YmNhN2M0ODY5NTgwMjI5NGJmOTRh
ZWYwNzQwY2Y3MGUzZjYyYWYuLjQ5NzE3MWI1NjQyNjg5Mjg5NTIxMDZiZDdlZWE1NGJlZTkzYmVl
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENQcm92aWRlci5oCkBAIC02Miw3ICs2MiwxMiBAQCBzdHJ1Y3QgUlRDUGFja2V0
T3B0aW9uczsKIAogY2xhc3MgTmV0d29ya1JUQ1Byb3ZpZGVyIDogcHVibGljIHJ0Yzo6TWVzc2Fn
ZUhhbmRsZXIsIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJl
ZkNvdW50ZWQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya1JUQ1Byb3ZpZGVyPiBj
cmVhdGUoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24pIHsgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgTmV0d29ya1JUQ1Byb3ZpZGVyKGNvbm5lY3Rpb24pKTsgfQorICAgIHN0
YXRpYyBSZWY8TmV0d29ya1JUQ1Byb3ZpZGVyPiBjcmVhdGUoTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIGNvbm5lY3Rpb24pCisgICAgeworICAgICAgICBhdXRvIGluc3RhbmNlID0gYWRv
cHRSZWYoKm5ldyBOZXR3b3JrUlRDUHJvdmlkZXIoY29ubmVjdGlvbikpOworICAgICAgICBpbnN0
YW5jZS0+c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKKyAgICAgICAgcmV0dXJuIGluc3RhbmNlOwor
ICAgIH0KICAgICB+TmV0d29ya1JUQ1Byb3ZpZGVyKCk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwpAQCAtOTksNiArMTA0LDcg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE5ldHdvcmtSVENQcm92aWRlcihO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOworICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdG
b3JJUEMoKTsKIAogICAgIHZvaWQgY3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZf
dCwgdWludDE2X3QpOwogICAgIHZvaWQgY3JlYXRlQ2xpZW50VENQU29ja2V0KFdlYkNvcmU6Okxp
YldlYlJUQ1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3Mm
LCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgU3RyaW5nJiYgdXNlckFnZW50LCBp
bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGli
V2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xp
YldlYlJUQ0NvZGVjcy5jcHAKaW5kZXggMmRlZDRiMDYxZTk1Yjk2YWMxMjVlNTc4ZWQ5NDI4NTM4
YTEzOGE0NC4uODI2MjI1NDU5MTdmMTkzNzg0NWE1ZjliNGNhMTJjYWMyYTgyZmY0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3MuY3BwCkBAIC0xNjYsMTcgKzE2NiwyMCBAQCBzdGF0aWMgdm9pZCBzZXRFbmNvZGVSYXRl
c0NhbGxiYWNrKHdlYnJ0Yzo6V2ViS2l0VmlkZW9FbmNvZGVyIGVuY29kZXIsIGNvbnN0IHdlYgog
TGliV2ViUlRDQ29kZWNzOjpMaWJXZWJSVENDb2RlY3MoKQogICAgIDogbV9xdWV1ZShXb3JrUXVl
dWU6OmNyZWF0ZSgiTGliV2ViUlRDQ29kZWNzIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdv
cmtRdWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpKQogeworfQorCit2b2lkIExpYldlYlJUQ0Nv
ZGVjczo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKQoreworICAgIEFTU0VSVCghbV9jb25uZWN0aW9u
KTsKICAgICBhdXRvJiBncHVDb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICBncHVDb25uZWN0aW9uLmFkZENsaWVudCgq
dGhpcyk7Ci0KICAgICBtX2Nvbm5lY3Rpb24gPSBtYWtlUmVmKGdwdUNvbm5lY3Rpb24uY29ubmVj
dGlvbigpKTsKICAgICBtX2Nvbm5lY3Rpb24tPmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNz
YWdlczo6TGliV2ViUlRDQ29kZWNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOwogfQog
CiBMaWJXZWJSVENDb2RlY3M6On5MaWJXZWJSVENDb2RlY3MoKQogewotICAgIGlmIChtX2Nvbm5l
Y3Rpb24pCi0gICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogdm9pZCBMaWJXZWJSVENDb2RlY3M6OnNl
dENhbGxiYWNrcyhib29sIHVzZUdQVVByb2Nlc3MpCkBAIC00NjEsMzAgKzQ2NCwyOCBAQCB2b2lk
IExpYldlYlJUQ0NvZGVjczo6ZGlzcGF0Y2hUb1RocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYgY2Fs
bGJhY2spCiAKIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENs
b3NlKEdQVVByb2Nlc3NDb25uZWN0aW9uJikKIHsKLSAgICBMb2NrSG9sZGVyIGhvbGRlcihtX2Nv
bm5lY3Rpb25Mb2NrKTsKLQotICAgIGlmIChtX2Nvbm5lY3Rpb24pCi0gICAgICAgIG1fY29ubmVj
dGlvbi0+cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2Rl
Y3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Ci0KICAgICBhdXRvJiBncHVDb25uZWN0aW9uID0g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAg
ICBncHVDb25uZWN0aW9uLmFkZENsaWVudCgqdGhpcyk7Ci0gICAgZ3B1Q29ubmVjdGlvbi5jb25u
ZWN0aW9uKCkuYWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2Rl
Y3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7CisgICAgeworICAgICAgICBhdXRvIGxv
Y2sgPSBob2xkTG9jayhtX2Nvbm5lY3Rpb25Mb2NrKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5y
ZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjczo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKTsKKyAgICAgICAgbV9jb25uZWN0aW9uID0gbWFrZVJlZihncHVD
b25uZWN0aW9uLmNvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+YWRkVGhyZWFk
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgdGhpcyk7CisgICAgfQogCi0gICAgZGlzcGF0Y2hUb1RocmVhZChbdGhpcywgY29u
bmVjdGlvbiA9IG1ha2VSZWYoZ3B1Q29ubmVjdGlvbi5jb25uZWN0aW9uKCkpXSB7CisgICAgZGlz
cGF0Y2hUb1RocmVhZChbdGhpc10oKSB7CiAgICAgICAgIC8vIExvY2sgZXZlcnl0aGluZyBzbyB0
aGF0IHdlIGNhbiB1cGRhdGUgZW5jb2Rlci9kZWNvZGVyIGNvbm5lY3Rpb24uCiAgICAgICAgIExv
Y2tIb2xkZXIgaG9sZGVyKG1fY29ubmVjdGlvbkxvY2spOwotCi0gICAgICAgIG1fY29ubmVjdGlv
biA9IGNvbm5lY3Rpb24ucHRyKCk7CiAgICAgICAgIC8vIFJlY3JlYXRlIGVuY29kZXJzIGFuZCBp
bml0aWFsaXplIHRoZW0sIHJlY3JlYXRlIGRlY29kZXJzLgogICAgICAgICBmb3IgKGF1dG8mIGVu
Y29kZXIgOiBtX2VuY29kZXJzLnZhbHVlcygpKSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6Q3JlYXRlRW5jb2RlciB7IGVuY29k
ZXItPmlkZW50aWZpZXIsIGZvcm1hdE5hbWVGcm9tV2ViUlRDQ29kZWNUeXBlKGVuY29kZXItPmNv
ZGVjVHlwZSksIGVuY29kZXItPnBhcmFtZXRlcnMsIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkud2ViUlRDSDI2NExvd0xhdGVuY3lFbmNvZGVyRW5hYmxlZCgpIH0sIDAp
OworICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2Rl
Y3NQcm94eTo6Q3JlYXRlRW5jb2RlciB7IGVuY29kZXItPmlkZW50aWZpZXIsIGZvcm1hdE5hbWVG
cm9tV2ViUlRDQ29kZWNUeXBlKGVuY29kZXItPmNvZGVjVHlwZSksIGVuY29kZXItPnBhcmFtZXRl
cnMsIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViUlRDSDI2NExv
d0xhdGVuY3lFbmNvZGVyRW5hYmxlZCgpIH0sIDApOwogICAgICAgICAgICAgaWYgKGVuY29kZXIt
PmluaXRpYWxpemF0aW9uRGF0YSkKLSAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6SW5pdGlhbGl6ZUVuY29kZXIgeyBlbmNvZGVy
LT5pZGVudGlmaWVyLCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPndpZHRoLCBlbmNvZGVy
LT5pbml0aWFsaXphdGlvbkRhdGEtPmhlaWdodCwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRh
LT5zdGFydEJpdFJhdGUsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+bWF4Qml0UmF0ZSwg
ZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5taW5CaXRSYXRlLCBlbmNvZGVyLT5pbml0aWFs
aXphdGlvbkRhdGEtPm1heEZyYW1lUmF0ZSB9LCAwKTsKLSAgICAgICAgICAgIGVuY29kZXItPmNv
bm5lY3Rpb24gPSBjb25uZWN0aW9uLnB0cigpOworICAgICAgICAgICAgICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OkluaXRpYWxpemVFbmNvZGVy
IHsgZW5jb2Rlci0+aWRlbnRpZmllciwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT53aWR0
aCwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5oZWlnaHQsIGVuY29kZXItPmluaXRpYWxp
emF0aW9uRGF0YS0+c3RhcnRCaXRSYXRlLCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPm1h
eEJpdFJhdGUsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+bWluQml0UmF0ZSwgZW5jb2Rl
ci0+aW5pdGlhbGl6YXRpb25EYXRhLT5tYXhGcmFtZVJhdGUgfSwgMCk7CisgICAgICAgICAgICBl
bmNvZGVyLT5jb25uZWN0aW9uID0gbV9jb25uZWN0aW9uLmdldCgpOwogICAgICAgICB9CiAgICAg
ICAgIGZvciAoYXV0byYgZGVjb2RlciA6IG1fZGVjb2RlcnMudmFsdWVzKCkpIHsKLSAgICAgICAg
ICAgIGNyZWF0ZVJlbW90ZURlY29kZXIoKmRlY29kZXIsIGNvbm5lY3Rpb24uZ2V0KCkpOwotICAg
ICAgICAgICAgZGVjb2Rlci0+Y29ubmVjdGlvbiA9IGNvbm5lY3Rpb24ucHRyKCk7CisgICAgICAg
ICAgICBjcmVhdGVSZW1vdGVEZWNvZGVyKCpkZWNvZGVyLCAqbV9jb25uZWN0aW9uKTsKKyAgICAg
ICAgICAgIGRlY29kZXItPmNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb24uZ2V0KCk7CiAgICAgICAg
IH0KICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvTGliV2ViUlRDQ29kZWNzLmgKaW5kZXggMWNlNmUxYThmOWJhYjMwNmZjM2E2NTRlOTkw
NmM3ODVjZTg2ZDgzOS4uYzI4NzYyYjI0Yzg5ZTE0MmI1ZGU5Y2U2ZjE3NzQyZDU0ODZkM2M5YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRD
Q29kZWNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2Vi
UlRDQ29kZWNzLmgKQEAgLTYyLDcgKzYyLDEyIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3Mg
TGliV2ViUlRDQ29kZWNzIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJl
Y2VpdmVyUmVmQ291bnRlZCwgcHVibGljIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIExpYldlYlJUQ0NvZGVj
cygpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDQ29kZWNzPiBjcmVhdGUo
KQorICAgIHsKKyAgICAgICAgYXV0byBpbnN0YW5jZSA9IHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJS
VENDb2RlY3M+KG5ldyBMaWJXZWJSVENDb2RlY3MpOworICAgICAgICBpbnN0YW5jZS0+c3RhcnRM
aXN0ZW5pbmdGb3JJUEMoKTsKKyAgICAgICAgcmV0dXJuIGluc3RhbmNlOworICAgIH0KICAgICB+
TGliV2ViUlRDQ29kZWNzKCk7CiAKICAgICBzdGF0aWMgdm9pZCBzZXRDYWxsYmFja3MoYm9vbCB1
c2VHUFVQcm9jZXNzKTsKQEAgLTExMCw3ICsxMTUsNyBAQCBwdWJsaWM6CiAgICAgaW50MzJfdCBl
bmNvZGVGcmFtZShFbmNvZGVyJiwgY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJiwgYm9vbCBzaG91
bGRFbmNvZGVBc0tleUZyYW1lKTsKICAgICB2b2lkIHJlZ2lzdGVyRW5jb2RlRnJhbWVDYWxsYmFj
ayhFbmNvZGVyJiwgdm9pZCogZW5jb2RlZEltYWdlQ2FsbGJhY2spOwogICAgIHZvaWQgc2V0RW5j
b2RlUmF0ZXMoRW5jb2RlciYsIHVpbnQzMl90IGJpdFJhdGUsIHVpbnQzMl90IGZyYW1lUmF0ZSk7
Ci0gICAgCisKICAgICBDVlBpeGVsQnVmZmVyUG9vbFJlZiBwaXhlbEJ1ZmZlclBvb2woc2l6ZV90
IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBPU1R5cGUpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKQEAgLTExOSw2ICsx
MjQsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBzdXBwb3J0VlA5VlRCKCkgY29uc3QgeyByZXR1cm4g
bV9zdXBwb3J0VlA5VlRCOyB9CiAKIHByaXZhdGU6CisgICAgTGliV2ViUlRDQ29kZWNzKCk7Cisg
ICAgdm9pZCBzdGFydExpc3RlbmluZ0ZvcklQQygpOworCiAgICAgdm9pZCBmYWlsZWREZWNvZGlu
ZyhSVENEZWNvZGVySWRlbnRpZmllcik7CiAgICAgdm9pZCBjb21wbGV0ZWREZWNvZGluZyhSVENE
ZWNvZGVySWRlbnRpZmllciwgdWludDMyX3QgdGltZVN0YW1wLCBXZWJDb3JlOjpSZW1vdGVWaWRl
b1NhbXBsZSYmKTsKICAgICB2b2lkIGNvbXBsZXRlZEVuY29kaW5nKFJUQ0VuY29kZXJJZGVudGlm
aWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UmJiwgY29uc3Qgd2VicnRjOjpXZWJLaXRFbmNvZGVkRnJh
bWVJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHAKaW5kZXggMTk0MzBmNWU1MTAzZDdkYzk0
ZGNkYjJhMTRhNmE3Njk1ZGY0MzNiOS4uY2Q3YzA1Njc5YmFlNGNhOTA2M2E5YWY4ZWZhYjI3MmI1
YzUxYjQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ05ldHdvcmsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmNwcApAQCAtMzcsNyArMzcsNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogTGliV2ViUlRDTmV0d29yazo6fkxpYldlYlJUQ05ldHdvcmsoKQog
ewotICAgIHNldENvbm5lY3Rpb24obnVsbHB0cik7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiB9CiAKIHZvaWQgTGliV2ViUlRDTmV0d29yazo6c2V0QXNBY3RpdmUoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3
b3JrLmgKaW5kZXggZTRjY2NmMGRjNTdlYzg0ZWE2ZWM0ZGE5ODM0Y2NjYzRhNWE1MTk3My4uYmJl
N2ZjMjZjZjMyMzQ2Njk1ZTYxZmQwMWQ2YTBiMjMyZGUwZDE4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29y
ay5oCkBAIC0zOCw3ICszOCw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgTGliV2ViUlRD
TmV0d29yayA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJl
ZkNvdW50ZWQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIExp
YldlYlJUQ05ldHdvcmsoKSA9IGRlZmF1bHQ7CiAgICAgfkxpYldlYlJUQ05ldHdvcmsoKTsKIAog
ICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5n
ZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDg2YmFk
ZTIxNzU0MTM2YWQzYjM2M2YyMzExOGYxYWFiZDY5YjYyMmIuLmYyM2VkNmQ0YmQ1ZDc3NmVkMzNk
YWM0NWEzMTAwMjAyYjA5N2JlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKQEAgLTExOTMsNyArMTE5Myw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6Z3B1UHJvY2Vzc0Nv
bm5lY3Rpb25DbG9zZWQoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiBMaWJXZWJS
VENDb2RlY3MmIFdlYlByb2Nlc3M6OmxpYldlYlJUQ0NvZGVjcygpCiB7CiAgICAgaWYgKCFtX2xp
YldlYlJUQ0NvZGVjcykKLSAgICAgICAgbV9saWJXZWJSVENDb2RlY3MgPSBtYWtlVW5pcXVlPExp
YldlYlJUQ0NvZGVjcz4oKTsKKyAgICAgICAgbV9saWJXZWJSVENDb2RlY3MgPSBMaWJXZWJSVEND
b2RlY3M6OmNyZWF0ZSgpOwogICAgIHJldHVybiAqbV9saWJXZWJSVENDb2RlY3M7CiB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCmluZGV4IDlmOTc2MmQ4MjNkNDZlZjQ3NTgyNTQ5
NTZiMmVlYjljZWFlMzM5ZmEuLjMyNDA3YjI5ODczNmQyYWZlMjRhZjRhMTAxZWI4MjA2MTg5YjBm
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcApAQCAtNDUsNiArNDUsMTEgQEAgUmVtb3Rl
Q2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkKIH0KIAog
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6On5SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigp
Cit7CisgICAgQVNTRVJUKCFtX2Nvbm5lY3Rpb24pOworfQorCit2b2lkIFJlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyOjpzdG9wTGlzdGVuaW5nRm9ySVBDKCkKIHsKICAgICBpZiAobV9pc1JlZ2lz
dGVyZWRUb1BhcmVudFByb2Nlc3NDb25uZWN0aW9uKQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5yZW1vdmVUaHJlYWRNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAppbmRleCAwMWY3MmQ4OGUwODcwZDQ1NThm
ZDc3NDI1ZWJlOTE0MjBhYTg5NTllLi4wYTI3NWU5ODM2MzJmYjkzN2E2ZTBhZDkwOGNmNzA4OTIw
Mjc0OGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
Q2FwdHVyZVNhbXBsZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaApAQCAtNTAsNiArNTAsNyBAQCBjbGFzcyBS
ZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlciA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVh
ZE1lc3NhZ2VSZWNlaXZlcgogcHVibGljOgogICAgIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
KCk7CiAgICAgflJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCk7CisgICAgdm9pZCBzdG9wTGlz
dGVuaW5nRm9ySVBDKCk7CiAKICAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZT4mJik7CiAgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2U+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggOTg2NzkxYWI3ZjlkNWVhYjFl
MTcwMThkNWJjY2EwNzNlZTBlMDUyNS4uZGFlMTFlMTI4MDJhMmM4YWIxMzU1NTgyZTM1M2YyOWI3
NTM4YmQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC02MCw2ICs2MCw3IEBAIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoKQogICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnVuc2V0RGlzcGxheUNhcHR1cmVGYWN0b3J5
KG1fZGlzcGxheUZhY3RvcnkpOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLnVuc2V0VmlkZW9DYXB0dXJlRmFjdG9yeShtX3ZpZGVvRmFjdG9yeSk7CiAgICAgbV9w
cm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgbV9yZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlci5zdG9wTGlzdGVuaW5nRm9ySVBDKCk7CiB9CiAKIGNvbnN0IGNoYXIqIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>