<?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>222216</bug_id>
          
          <creation_ts>2021-02-19 17:31:35 -0800</creation_ts>
          <short_desc>[iOS] Add a watchdog timer to forcibly reset deferring gesture recognizers</short_desc>
          <delta_ts>2021-02-23 06:35:16 -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>UI Events</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>222291</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>cdumez</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1731695</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-19 17:31:35 -0800</bug_when>
    <thetext>...with a log fault or something.

This should make it significantly easier to diagnose the family of bugs that result from WKDeferringGestureRecognizers being permanently stuck in Possible state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732306</commentid>
    <comment_count>1</comment_count>
      <attachid>421239</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-22 14:31:59 -0800</bug_when>
    <thetext>Created attachment 421239
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732308</commentid>
    <comment_count>2</comment_count>
      <attachid>421240</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-22 14:40:27 -0800</bug_when>
    <thetext>Created attachment 421240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732309</commentid>
    <comment_count>3</comment_count>
      <attachid>421241</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-22 14:43:12 -0800</bug_when>
    <thetext>Created attachment 421241
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732312</commentid>
    <comment_count>4</comment_count>
      <attachid>421241</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-02-22 14:46:43 -0800</bug_when>
    <thetext>Comment on attachment 421241
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:502
&gt; +@interface WKContentView (WKInteraction) &lt;UIGestureRecognizerDelegate, UITextAutoscrolling, UITextInputMultiDocument, UITextInputPrivate, UIWebFormAccessoryDelegate, UIWebTouchEventsGestureRecognizerDelegate, UIWKInteractionViewProtocol, WKActionSheetAssistantDelegate, WKFileUploadPanelDelegate, WKKeyboardScrollViewAnimatorDelegate , WKDeferringGestureRecognizerDelegate

extra space here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732316</commentid>
    <comment_count>5</comment_count>
      <attachid>421241</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-22 14:49:15 -0800</bug_when>
    <thetext>Comment on attachment 421241
Patch

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

Thanks for the review!

&gt; Source/WebKit/UIProcess/ios/GestureRecognizerConsistencyEnforcer.mm:34
&gt; +GestureRecognizerConsistencyEnforcer::GestureRecognizerConsistencyEnforcer(WKContentView *view)

I also forgot to wrap this in a `PLATFORM(IOS_FAMILY)` guard, so this is currently failing macOS builds.

&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:502
&gt;&gt; +@interface WKContentView (WKInteraction) &lt;UIGestureRecognizerDelegate, UITextAutoscrolling, UITextInputMultiDocument, UITextInputPrivate, UIWebFormAccessoryDelegate, UIWebTouchEventsGestureRecognizerDelegate, UIWKInteractionViewProtocol, WKActionSheetAssistantDelegate, WKFileUploadPanelDelegate, WKKeyboardScrollViewAnimatorDelegate , WKDeferringGestureRecognizerDelegate
&gt; 
&gt; extra space here.

Good catch — fixed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732334</commentid>
    <comment_count>6</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-22 15:30:56 -0800</bug_when>
    <thetext>&gt; /Volumes/Data/worker/watchOS-7-Simulator-Build-EWS/build/WebKitBuild/Release-watchsimulator/WebCore.framework/PrivateHeaders/UIEvent.h:35:7: note: candidate found by name lookup is &apos;WebCore::UIEvent&apos;
&gt; class UIEvent : public Event {
&gt;       ^
&gt; In file included from /Volumes/Data/worker/watchOS-7-Simulator-Build-EWS/build/WebKitBuild/Release-watchsimulator/DerivedSources/WebKit2/unified-sources/UnifiedSource48-mm.mm:7:
&gt; /Volumes/Data/worker/watchOS-7-Simulator-Build-EWS/build/Source/WebKit/UIProcess/ios/forms/WKFocusedFormControlView.mm:136:34: error: cannot initialize a parameter of type &apos;UIEvent *&apos; with an lvalue of type &apos;WebCore::UIEvent *&apos;
&gt;     [self _wheelChangedWithEvent:event];

watchOS build failure is due to unified sources grouping `WebPageProxyIOS.mm` in with `WKFocusedFormControlView.mm`, and then WebKit code doesn&apos;t know how to disambiguate `UIEvent` from UIKit vs. `WebCore::UIEvent`.

The declaration for `WebCore::UIEvent` is coming from this include chain:

&gt; In file included from /Volumes/Data/worker/watchOS-7-Build-EWS/build/WebKitBuild/Release-watchos/DerivedSources/WebKit2/unified-sources/UnifiedSource48-mm.mm:1:
&gt; In file included from /Volumes/Data/worker/watchOS-7-Build-EWS/build/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:27:
&gt; In file included from /Volumes/Data/worker/watchOS-7-Build-EWS/build/Source/WebKit/UIProcess/WebPageProxy.h:70:
&gt; In file included from /Volumes/Data/worker/watchOS-7-Build-EWS/build/Source/WebKit/UIProcess/WebFrameProxy.h:30:
&gt; In file included from /Volumes/Data/worker/watchOS-7-Build-EWS/build/Source/WebKit/UIProcess/GenericCallback.h:33:
&gt; In file included from /Volumes/Data/worker/watchOS-7-Build-EWS/build/Source/WebKit/UIProcess/API/C/WKAPICast.h:44:
&gt; In file included from /Volumes/Data/worker/watchOS-7-Build-EWS/build/Source/WebKit/Shared/API/c/WKSharedAPICast.h:50:
&gt; In file included from /Volumes/Data/worker/watchOS-7-Build-EWS/build/Source/WebKit/Shared/WebMouseEvent.h:34:
&gt; In file included from /Volumes/Data/worker/watchOS-7-Build-EWS/build/WebKitBuild/Release-watchos/WebCore.framework/PrivateHeaders/PointerEvent.h:29:
&gt; In file included from /Volumes/Data/worker/watchOS-7-Build-EWS/build/WebKitBuild/Release-watchos/WebCore.framework/PrivateHeaders/MouseEvent.h:27:
&gt; In file included from /Volumes/Data/worker/watchOS-7-Build-EWS/build/WebKitBuild/Release-watchos/WebCore.framework/PrivateHeaders/MouseEventInit.h:28:
&gt; In file included from /Volumes/Data/worker/watchOS-7-Build-EWS/build/WebKitBuild/Release-watchos/WebCore.framework/PrivateHeaders/MouseRelatedEvent.h:27:
&gt; In file included from /Volumes/Data/worker/watchOS-7-Build-EWS/build/WebKitBuild/Release-watchos/WebCore.framework/PrivateHeaders/UIEventWithKeyState.h:28:

...it seems less than ideal for a shared UIProcess/WebProcess header (`WebMouseEvent.h`) to be importing WebCore headers that know about the DOM (`PointerEvent.h`).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732441</commentid>
    <comment_count>7</comment_count>
      <attachid>421281</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-22 20:51:36 -0800</bug_when>
    <thetext>Created attachment 421281
For EWS (fix builds + rebase)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732451</commentid>
    <comment_count>8</comment_count>
      <attachid>421287</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-22 22:38:10 -0800</bug_when>
    <thetext>Created attachment 421287
Unified source build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732511</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-23 06:34:43 -0800</bug_when>
    <thetext>Committed r273305: &lt;https://commits.webkit.org/r273305&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421287.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732512</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-23 06:35:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/74639714&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421239</attachid>
            <date>2021-02-22 14:31:59 -0800</date>
            <delta_ts>2021-02-22 14:32:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222216-20210222143159.patch</filename>
            <type>text/plain</type>
            <size>37309</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk1NjUxZGI3ZjU2YzhjZjQx
MjBmNTk3ZmM0YWVlOTJmM2FkZDljYjUuLjE4NzEzNzhmMDZlNDI5MDBjOGVkNjY3NGMyMTI1NmRk
NDQ3YzY1NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODcgQEAKKzIwMjEtMDItMjIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRkIGEgd2F0
Y2hkb2cgdGltZXIgdG8gZm9yY2libHkgcmVzZXQgZGVmZXJyaW5nIGdlc3R1cmUgcmVjb2duaXpl
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjIx
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
IG1lY2hhbmlzbSB0byBkZXRlY3QgYW5kIHJlc29sdmUgc2l0dWF0aW9ucyB3aGVyZSBhdCBsZWFz
dCBvbmUgZGVmZXJyaW5nIGdlc3R1cmUgcmVjb2duaXplcgorICAgICAgICAoYFdLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXJgKSBpcyBzdHVjayBpbiBQb3NzaWJsZSBzdGF0ZSBhZnRlciBlbmRp
bmcgdG91Y2hlcywgYnV0IHRoZSB0b3VjaCBldmVudCBnZXN0dXJlCisgICAgICAgIHJlY29nbml6
ZXIgaXMgdW5hYmxlIHRvIGJlIHJlc2V0IChpLmUuIG5laXRoZXIgcG9zc2libGUgb3IgcmVjb2du
aXppbmcpLiBUaGlzIHN0YXRlIGlzIGluZGljYXRpdmUgb2YgYSBnZW5lcmFsCisgICAgICAgIGNs
YXNzIG9mIGJ1Z3MgcmVnYXJkaW5nIG5hdGl2ZSBnZXN0dXJlIGRlZmVycmFsLCB3aGVyZWluIHdl
IG1heSBlbmQgdXAgaW4gYSBzdGF0ZSB3aGVyZSBvdXIgImdlc3R1cmUgZ2F0ZXMiCisgICAgICAg
IG5ldmVyIGVuZCB1cCBiZWluZyBsaWZ0ZWQgYWZ0ZXIgZW5kaW5nIGFsbCB0b3VjaGVzIGluIHRo
ZSB2aWV3LiBPbmUgc3VjaCBleGFtcGxlIG9mIHRoaXMgdHlwZSBvZiBidWcgd2FzIGZpeGVkCisg
ICAgICAgIGluIHIyNzI1ODQsIHdoZXJlIGFsbCBpbnRlcmFjdGlvbiAodG91Y2ggZXZlbnRzLCBz
Y3JvbGxpbmcsIHRhcHBpbmcpIGR1ZSB0byB0aGUgdG91Y2ggZW5kIGRlZmVycmVycyBuZXZlcgor
ICAgICAgICBleGl0aW5nIFBvc3NpYmxlIHN0YXRlIGFmdGVyIGxvbmcgcHJlc3NpbmcgdG8gcHJl
c2VudCBhIGNvbnRleHQgbWVudS4KKworICAgICAgICBUbyBtYWtlIHRoZXNlIGtpbmRzIG9mIGJ1
Z3MgYm90aCBlYXNpZXIgdG8gZGlhZ25vc2UgYW5kIGxlc3MgZmF0YWwgaW4gdGhlIGZ1dHVyZSwg
d2UgaW50cm9kdWNlIGEgd2F0Y2hkb2cgdGltZXIKKyAgICAgICAgdGhhdCBkaXNwYXRjaGVzIGFm
dGVyIGVuZGluZyBhbGwgdG91Y2hlcyBvbiB0aGUgY29udGVudCB2aWV3LCBhbmQgY2hlY2tzIHRo
ZSBjb25zaXN0ZW5jeSBvZiBkZWZlcnJpbmcgZ2VzdHVyZQorICAgICAgICByZWNvZ25pemVycyBp
biB0aGUgdmlldzsgaWYgd2UgZGV0ZWN0IHN0dWNrIGRlZmVycmluZyBnZXN0dXJlcywgd2UgaGFu
ZGxlIHRoaXMgYnkgZm9yY2libHkgcmVzZXR0aW5nIHRoZSBzdHVjaworICAgICAgICBkZWZlcnJp
bmcgZ2VzdHVyZXMgYW5kIGxvZ2dpbmcgYSBmYXVsdCBtZXNzYWdlLgorCisgICAgICAgIEkgbWFu
dWFsbHkgdmVyaWZpZWQgdGhpcyBjaGFuZ2UgYnkgcmV2ZXJ0aW5nIG15IGZpeCBmb3IgdGhlIGFm
b3JlbWVudGlvbmVkIGJ1ZyAocjI3MjU4NCksIGFuZCBvYnNlcnZpbmcgYm90aCAoMSkKKyAgICAg
ICAgYSBzeXN0ZW0gbG9nIGZhdWx0IG1lc3NhZ2UsIGFuZCAoMikgdGhhdCBpbnRlcmFjdGlvbnMg
Y29udGludWVkIHRvIHdvcmsgZXZlbiB3aXRob3V0IHRoZSBmaXggaW4gcjI3MjU4NCwgYWZ0ZXIK
KyAgICAgICAgdGhlIHdhdGNoZG9nIHRpbWVyIGZpcmVkLiBTZWUgYmVsb3cgZm9yIG1vcmUgZGV0
YWlscy4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9HZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIu
aC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL0dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lF
bmZvcmNlci5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyQ29u
c2lzdGVuY3lFbmZvcmNlcjo6R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyKToK
KyAgICAgICAgKFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyOjpi
ZWdpblRyYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0
ZW5jeUVuZm9yY2VyOjplbmRUcmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6Okdlc3R1cmVSZWNv
Z25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcjo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpHZXN0
dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI6OnRpbWVyRmlyZWQpOgorCisgICAgICAg
IEFkZCBhIGhlbHBlciBjbGFzcyB0aGF0IHdyYXBzIGEgYFJ1bkxvb3A6OlRpbWVyYCBmb3IgdGhl
IG1haW4gcnVubG9vcCwgYW5kIHNjaGVkdWxlcyBhIDEgc2Vjb25kIHRpbWVyIGFmdGVyIGFsbAor
ICAgICAgICBkZWZlcnJpbmcgZ2VzdHVyZXMgaGF2ZSBlbmRlZDsgYXNzdW1pbmcgbm8gbmV3IHRv
dWNoZXMgYmVnaW4gYWZ0ZXIgdGhpcyB0aW1lciBpcyBzY2hlZHVsZWQsIHdlJ2xsIHBlcmZvcm0g
YQorICAgICAgICBjb25zaXN0ZW5jeSBjaGVjayBvdmVyIHRoZSBjb250ZW50IHZpZXcncyBnZXN0
dXJlcyBhbmQgcGVyZm9ybSBhIGxvZyBmYXVsdCBhbmQgZm9yY2UgZGVmZXJyaW5nIGdlc3R1cmVz
IHRvIGVuZAorICAgICAgICBpZiBuZWVkZWQuIAorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRVcElu
dGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYW5VcEludGVyYWN0aW9u
XSk6CisKKyAgICAgICAgTWFrZSBzdXJlIHRoYXQgd2UgcmVzZXQgYW55IGV4dGFudCBgR2VzdHVy
ZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyYCBpZiB0aGUgd2ViIHByb2Nlc3MgY3Jhc2hl
cy4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9yZW1vdmVEZWZhdWx0R2VzdHVyZVJlY29n
bml6ZXJzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2FkZERlZmF1bHRHZXN0dXJlUmVj
b2duaXplcnNdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfd2ViVG91Y2hFdmVudHNSZWNv
Z25pemVkOl0pOgorCisgICAgICAgIEFkanVzdCBhIGZldyBjb21waWxlLXRpbWUgZ3VhcmRzIHNv
IHRoYXQgZGVmZXJyaW5nIGdlc3R1cmUgcmVjb2duaXplcnMgZXhpc3Qgb24gdGhlIHZpZXcsIGV2
ZW4gaWYKKyAgICAgICAgYEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTYCBpcyBvZmYuIFRoaXMgbWFr
ZXMgc29tZSBvZiB0aGUgZ2VzdHVyZSBkZWZlcnJhbCBjb2RlIHRocm91Z2hvdXQgdGhpcyBmaWxl
IGVhc2llciB0bworICAgICAgICByZWFzb24gYWJvdXQgaW4gbm9uLWludGVybmFsIGlPUyBidWls
ZHMsIHNpbmNlIHdlIGRvbid0IG5lZWQgdG8gc3ByaW5rbGUgYXMgbWFueSBgRU5BQkxFKElPU19U
T1VDSF9FVkVOVFMpYAorICAgICAgICBjaGVja3MgdGhyb3VnaG91dCB0aGlzIGNsYXNzLgorCisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyXSk6Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgZ2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9y
Y2VyXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGVmZXJyaW5nR2VzdHVyZXNdKToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBnZXN0dXJlUmVjb2duaXplcjpzaG91bGRSZWNvZ25pemVT
aW11bHRhbmVvdXNseVdpdGhHZXN0dXJlUmVjb2duaXplcjpdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjp3aWxsQmVnaW5Ub3VjaGVzV2l0aEV2
ZW50Ol0pOgorCisgICAgICAgIFJlZmFjdG9yIGAtZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6
c2hvdWxkRGVmZXJHZXN0dXJlc0FmdGVyQmVnaW5uaW5nVG91Y2hlc1dpdGhFdmVudDpgIHNvIHRo
YXQgaXQgcmV0dXJucyBhbgorICAgICAgICBlbnVtIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRo
ZSBnaXZlbiBnZXN0dXJlIHNob3VsZCBiZSBhbGxvd2VkIHRvIGJlZ2luIGRlZmVycmluZyBuYXRp
dmUgZ2VzdHVyZXM7IGJ5IG1ha2luZworICAgICAgICB0aGlzIGAtZGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXI6d2lsbEJlZ2luVG91Y2hlc1dpdGhFdmVudDpgLCB3ZSBjYW4gbm93IHB1dCBzdGF0
ZSBtYW5hZ2VtZW50IGxvZ2ljIGhlcmUgdGhhdCdzCisgICAgICAgIHJlc3BvbnNpYmxlIGZvciB1
cGRhdGluZyB0aGUgYEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcmAuCisKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjpkaWRUcmFu
c2l0aW9uVG9TdGF0ZTpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplcjpkaWRFbmRUb3VjaGVzV2l0aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOnNob3VsZERlZmVyT3RoZXJHZXN0
dXJlUmVjb2duaXplcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGVmZXJyaW5nR2Vz
dHVyZXNdKTogRGVsZXRlZC4KKworICAgICAgICBSZW5hbWUgdGhpcyB0byBgLWRlZmVycmluZ0dl
c3R1cmVzYCBhbmQgZXhwb3NlIGl0IGFzIGEgcmVhZG9ubHkgcHJvcGVydHksIGZvciB1c2UgYnkg
dGhlCisgICAgICAgIGBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXJgLgorCisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6c2hvdWxk
RGVmZXJHZXN0dXJlc0FmdGVyQmVnaW5uaW5nVG91Y2hlc1dpdGhFdmVudDpdKTogRGVsZXRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIubW06
CisgICAgICAgICgtW1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgdG91Y2hlc0JlZ2FuOndp
dGhFdmVudDpdKToKKyAgICAgICAgKC1bV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBzZXRT
dGF0ZTpdKToKKworICAgICAgICBBZGQgYSBkZWxlZ2F0ZSBob29rIHRvIGluZm9ybSBgV0tDb250
ZW50Vmlld2Agd2hlbiB0aGUgZ2VzdHVyZSByZWNvZ25pemVyIHN0YXRlIGNoYW5nZXMuCisKKyAg
ICAgICAgKC1bV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBkZWZlcnJpbmdHZXN0dXJlRGVs
ZWdhdGVdKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMS0wMi0yMCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBbQ29jb2FdIFVwZGF0ZSBXZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMgd2l0aCBz
b21lIG5ldyBhZGRpdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBlNWRiNmMxOTc1NDVh
MTlhMWVlZWJlY2UxMWIyYzQ1ODhkOWI0MjM3Li5iMWNlNWEzZGMyOTllMTA1YmMxY2EwNzFhZGEz
N2NhNWFjOTdkYWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00NTgsNiArNDU4LDcgQEAg
VUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1Mu
bW0KIAogVUlQcm9jZXNzL2lvcy9BcHBLaXRTb2Z0TGluay5tbQogVUlQcm9jZXNzL2lvcy9EcmFn
RHJvcEludGVyYWN0aW9uU3RhdGUubW0KK1VJUHJvY2Vzcy9pb3MvR2VzdHVyZVJlY29nbml6ZXJD
b25zaXN0ZW5jeUVuZm9yY2VyLm1tCiBVSVByb2Nlc3MvaW9zL0lucHV0Vmlld1VwZGF0ZURlZmVy
cmVyLm1tCiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCiBVSVByb2Nlc3MvaW9z
L1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1NPQXV0aG9yaXphdGlvbi9TT0F1dGhvcml6YXRpb25Db29yZGluYXRvci5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1NPQXV0aG9yaXphdGlvbi9TT0F1dGhvcml6
YXRpb25Db29yZGluYXRvci5tbQppbmRleCAwZTAyYTFhMDE5ZGZlNjRjODgxOGFkMWZiZmM4MjI4
MGIxZWU0MjBmLi5iYjUwZjA5NjJkY2MzYzUzMTY5NWY3OWU5MGU0YzgyMWI4NTY2NDBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TT0F1dGhvcml6YXRpb24vU09B
dXRob3JpemF0aW9uQ29vcmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvU09BdXRob3JpemF0aW9uL1NPQXV0aG9yaXphdGlvbkNvb3JkaW5hdG9yLm1tCkBAIC01
OCw3ICs1OCw4IEBAIFNPQXV0aG9yaXphdGlvbkNvb3JkaW5hdG9yOjpTT0F1dGhvcml6YXRpb25D
b29yZGluYXRvcigpCiAKIGJvb2wgU09BdXRob3JpemF0aW9uQ29vcmRpbmF0b3I6OmNhbkF1dGhv
cml6ZShjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9zb0F1dGhvcml6YXRp
b24gJiYgW1BBTDo6Z2V0U09BdXRob3JpemF0aW9uQ2xhc3MoKSBjYW5QZXJmb3JtQXV0aG9yaXph
dGlvbldpdGhVUkw6dXJsIHJlc3BvbnNlQ29kZTowXTsKKy8vICAgIHJldHVybiBtX3NvQXV0aG9y
aXphdGlvbiAmJiBbUEFMOjpnZXRTT0F1dGhvcml6YXRpb25DbGFzcygpIGNhblBlcmZvcm1BdXRo
b3JpemF0aW9uV2l0aFVSTDp1cmwgcmVzcG9uc2VDb2RlOjBdOworICAgIHJldHVybiBmYWxzZTsK
IH0KIAogdm9pZCBTT0F1dGhvcml6YXRpb25Db29yZGluYXRvcjo6dHJ5QXV0aG9yaXplKFJlZjxB
UEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgV2ViUGFnZVByb3h5JiBw
YWdlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL0dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVu
Y3lFbmZvcmNlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL0dlc3R1cmVSZWNvZ25p
emVyQ29uc2lzdGVuY3lFbmZvcmNlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmYzNkYmU5MWRhNTk5ZjU4ODll
MGQ1ODgxNzAyYWFmMjNkZDM0MDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmgKQEAgLTAs
MCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW1wb3J0IDx3dGYvRmFz
dE1hbGxvYy5oPgorI2ltcG9ydCA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL1dlYWtPYmpD
UHRyLmg+CisKK0BjbGFzcyBXS0NvbnRlbnRWaWV3OworQGNsYXNzIFdLRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXI7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBHZXN0dXJlUmVjb2du
aXplckNvbnNpc3RlbmN5RW5mb3JjZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZv
cmNlcik7CitwdWJsaWM6CisgICAgR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2Vy
KFdLQ29udGVudFZpZXcgKik7CisgICAgfkdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZv
cmNlcigpOworCisgICAgdm9pZCBiZWdpblRyYWNraW5nKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIgKik7CisgICAgdm9pZCBlbmRUcmFja2luZyhXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyICopOworCisgICAgdm9pZCByZXNldCgpOworCitwcml2YXRlOgorICAgIHZvaWQgdGltZXJG
aXJlZCgpOworCisgICAgV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4gbV92aWV3OworICAgIFJ1
bkxvb3A6OlRpbWVyPEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcj4gbV90aW1l
cjsKKyAgICBIYXNoU2V0PFJldGFpblB0cjxXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyPj4g
bV9kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcnNXaXRoVG91Y2hlczsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL0dl
c3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9HZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODc0OTc5MTlhM2E3NTY3MzlhZmRjMTAyMWQ4M2FlMWZmMTU4ZTczNAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9HZXN0dXJlUmVjb2duaXplckNv
bnNpc3RlbmN5RW5mb3JjZXIubW0KQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorI2ltcG9ydCAiR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9y
Y2VyLmgiCisKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgIldLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworR2VzdHVyZVJlY29nbml6ZXJDb25z
aXN0ZW5jeUVuZm9yY2VyOjpHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIoV0tD
b250ZW50VmlldyAqdmlldykKKyAgICA6IG1fdmlldyh2aWV3KQorICAgICwgbV90aW1lcihSdW5M
b29wOjptYWluKCksIHRoaXMsICZHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI6
OnRpbWVyRmlyZWQpCit7CisgICAgQVNTRVJUKG1fdmlldyk7Cit9CisKK0dlc3R1cmVSZWNvZ25p
emVyQ29uc2lzdGVuY3lFbmZvcmNlcjo6fkdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZv
cmNlcigpID0gZGVmYXVsdDsKKwordm9pZCBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5m
b3JjZXI6OmJlZ2luVHJhY2tpbmcoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVy
ZSkKK3sKKyAgICBtX3RpbWVyLnN0b3AoKTsKKyAgICBtX2RlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyc1dpdGhUb3VjaGVzLmFkZChnZXN0dXJlKTsKK30KKwordm9pZCBHZXN0dXJlUmVjb2duaXpl
ckNvbnNpc3RlbmN5RW5mb3JjZXI6OmVuZFRyYWNraW5nKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIgKmdlc3R1cmUpCit7CisgICAgaWYgKCFtX2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
c1dpdGhUb3VjaGVzLnJlbW92ZShnZXN0dXJlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KG1fZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJzV2l0aFRvdWNoZXMuaXNFbXB0eSgpKQorICAg
ICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgxX3MpOworfQorCit2b2lkIEdlc3R1cmVSZWNvZ25p
emVyQ29uc2lzdGVuY3lFbmZvcmNlcjo6cmVzZXQoKQoreworICAgIG1fdGltZXIuc3RvcCgpOwor
ICAgIG1fZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJzV2l0aFRvdWNoZXMuY2xlYXIoKTsKK30K
Kwordm9pZCBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI6OnRpbWVyRmlyZWQo
KQoreworICAgIGlmICghbV92aWV3KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHN0cm9u
Z1ZpZXcgPSBtX3ZpZXcuZ2V0KCk7CisgICAgYXV0byBwb3NzaWJsZURlZmVycmluZ0dlc3R1cmVz
ID0gW05TTXV0YWJsZUFycmF5PFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKj4gYXJyYXld
OworICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBbc3Ry
b25nVmlldyBkZWZlcnJpbmdHZXN0dXJlc10pIHsKKyAgICAgICAgaWYgKGdlc3R1cmUuc3RhdGUg
PT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlUG9zc2libGUpCisgICAgICAgICAgICBbcG9zc2li
bGVEZWZlcnJpbmdHZXN0dXJlcyBhZGRPYmplY3Q6Z2VzdHVyZV07CisgICAgfQorCisgICAgaWYg
KCFwb3NzaWJsZURlZmVycmluZ0dlc3R1cmVzLmNvdW50KQorICAgICAgICByZXR1cm47CisKKyAg
ICBhdXRvIHRvdWNoRXZlbnRTdGF0ZSA9IFtzdHJvbmdWaWV3IHRvdWNoRXZlbnRHZXN0dXJlUmVj
b2duaXplcl0uc3RhdGU7CisgICAgaWYgKHRvdWNoRXZlbnRTdGF0ZSA9PSBVSUdlc3R1cmVSZWNv
Z25pemVyU3RhdGVQb3NzaWJsZSB8fCB0b3VjaEV2ZW50U3RhdGUgPT0gVUlHZXN0dXJlUmVjb2du
aXplclN0YXRlQmVnYW4gfHwgdG91Y2hFdmVudFN0YXRlID09IFVJR2VzdHVyZVJlY29nbml6ZXJT
dGF0ZUNoYW5nZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBwb3NzaWJsZURlZmVycmluZ0dlc3R1cmVzKQorICAg
ICAgICBbZ2VzdHVyZSBzZXRTdGF0ZTpVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVFbmRlZF07CisK
KyAgICBSRUxFQVNFX0xPR19GQVVMVChWaWV3R2VzdHVyZXMsICJUb3VjaCBldmVudCBnZXN0dXJl
IHJlY29nbml6ZXIgZmFpbGVkIHRvIHJlc2V0IGFmdGVyIGVuZGluZyBnZXN0dXJlIGRlZmVycmFs
OiAlQCIsIHBvc3NpYmxlRGVmZXJyaW5nR2VzdHVyZXMpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaAppbmRleCBhNWEyOWYxYzI5NmJmNGFlNTgzOTdlMjY4Yjg3MWNmZDEz
ZGI3M2VlLi43YTQzZWU4OWIwNDNhN2NjZDMwNTUzYjUzNDUyOTkyODEzODcyMmUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJFZGl0b3JTdGF0ZS5oIgogI2ltcG9y
dCAiRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5oIgogI2ltcG9ydCAiRnJhbWVJbmZvRGF0YS5o
IgorI2ltcG9ydCAiR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmgiCiAjaW1w
b3J0ICJHZXN0dXJlVHlwZXMuaCIKICNpbXBvcnQgIkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBv
c2l0aW9uLmgiCiAjaW1wb3J0ICJQYXN0ZWJvYXJkQWNjZXNzSW50ZW50LmgiCkBAIC0yNTUsMTQg
KzI1NiwxMyBAQCBwcml2YXRlOgogQGVuZAogCiBAaW50ZXJmYWNlIFdLQ29udGVudFZpZXcgKCkg
ewotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIFJldGFpblB0cjxXS0RlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyPiBfdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
Rm9ySW1tZWRpYXRlbHlSZXNldHRhYmxlR2VzdHVyZXM7CiAgICAgUmV0YWluUHRyPFdLRGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaFN0YXJ0RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXJGb3JEZWxheWVkUmVzZXR0YWJsZUdlc3R1cmVzOwogICAgIFJldGFpblB0cjxXS0RlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyPiBfdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
Rm9yU3ludGhldGljVGFwR2VzdHVyZXM7CiAgICAgUmV0YWluUHRyPFdLRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXI+IF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRp
YXRlbHlSZXNldHRhYmxlR2VzdHVyZXM7CiAgICAgUmV0YWluUHRyPFdLRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXI+IF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXll
ZFJlc2V0dGFibGVHZXN0dXJlczsKICAgICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplcj4gX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JTeW50aGV0aWNU
YXBHZXN0dXJlczsKLSNlbmRpZgorICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6Okdlc3R1cmVS
ZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcj4gX2dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVu
Y3lFbmZvcmNlcjsKICAgICBSZXRhaW5QdHI8VUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25p
emVyPiBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyOwogCiAgICAgQk9PTCBfdG91Y2hFdmVu
dHNDYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXM7CkBAIC00OTksNyArNDk5LDcgQEAgcHJpdmF0ZToK
IAogQGVuZAogCi1AaW50ZXJmYWNlIFdLQ29udGVudFZpZXcgKFdLSW50ZXJhY3Rpb24pIDxVSUdl
c3R1cmVSZWNvZ25pemVyRGVsZWdhdGUsIFVJVGV4dEF1dG9zY3JvbGxpbmcsIFVJVGV4dElucHV0
TXVsdGlEb2N1bWVudCwgVUlUZXh0SW5wdXRQcml2YXRlLCBVSVdlYkZvcm1BY2Nlc3NvcnlEZWxl
Z2F0ZSwgVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUsIFVJV0tJbnRl
cmFjdGlvblZpZXdQcm90b2NvbCwgV0tBY3Rpb25TaGVldEFzc2lzdGFudERlbGVnYXRlLCBXS0Zp
bGVVcGxvYWRQYW5lbERlbGVnYXRlLCBXS0tleWJvYXJkU2Nyb2xsVmlld0FuaW1hdG9yRGVsZWdh
dGUsIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZQorQGludGVyZmFjZSBXS0Nv
bnRlbnRWaWV3IChXS0ludGVyYWN0aW9uKSA8VUlHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlLCBV
SVRleHRBdXRvc2Nyb2xsaW5nLCBVSVRleHRJbnB1dE11bHRpRG9jdW1lbnQsIFVJVGV4dElucHV0
UHJpdmF0ZSwgVUlXZWJGb3JtQWNjZXNzb3J5RGVsZWdhdGUsIFVJV2ViVG91Y2hFdmVudHNHZXN0
dXJlUmVjb2duaXplckRlbGVnYXRlLCBVSVdLSW50ZXJhY3Rpb25WaWV3UHJvdG9jb2wsIFdLQWN0
aW9uU2hlZXRBc3Npc3RhbnREZWxlZ2F0ZSwgV0tGaWxlVXBsb2FkUGFuZWxEZWxlZ2F0ZSwgV0tL
ZXlib2FyZFNjcm9sbFZpZXdBbmltYXRvckRlbGVnYXRlICwgV0tEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplckRlbGVnYXRlCiAjaWYgSEFWRShDT05UQUNUU1VJKQogICAgICwgV0tDb250YWN0UGlj
a2VyRGVsZWdhdGUKICNlbmRpZgpAQCAtNTI1LDYgKzUyNSw5IEBAIHByaXZhdGU6CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJVmlldyAqaW5wdXRBY2Nlc3NvcnlWaWV3Rm9yV2Vi
VmlldzsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBwcmV2ZW50c1Bhbm5p
bmdJblhBeGlzOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHByZXZlbnRz
UGFubmluZ0luWUF4aXM7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJV2ViVG91
Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplciAqdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyOwor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5PFdLRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXIgKj4gKmRlZmVycmluZ0dlc3R1cmVzOworQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlciYg
Z2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyOwogCiAjaWYgRU5BQkxFKERBVEFM
SVNUX0VMRU1FTlQpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBVSVZpZXcgPFdLRm9y
bUNvbnRyb2w+ICpkYXRhTGlzdFRleHRTdWdnZXN0aW9uc0lucHV0VmlldzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CmluZGV4IDkzN2I2NTIzNzIyYTFmNjMxOTQzMWE5YzdhOTU1NzMxNDdlNGFkOTcuLmQ0ODJjNDdm
MjRhMjBmNGIwZDliMDNmZTkzNjMxNjNkM2M5MTA2YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNzcz
LDcgKzc3Myw2IEBAIC0gKHZvaWQpc2V0VXBJbnRlcmFjdGlvbgogICAgIFtfdG91Y2hBY3Rpb25E
b3duU3dpcGVHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpzZWxmXTsKICAgICBbc2VsZiBh
ZGRHZXN0dXJlUmVjb2duaXplcjpfdG91Y2hBY3Rpb25Eb3duU3dpcGVHZXN0dXJlUmVjb2duaXpl
ci5nZXQoKV07CiAKLSNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICBfdG91Y2hTdGFy
dERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRpYXRlbHlSZXNldHRhYmxlR2VzdHVy
ZXMgPSBhZG9wdE5TKFtbV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdp
dGhEZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGU6c2VsZl0pOwogICAgIFtfdG91Y2hTdGFydERlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRpYXRlbHlSZXNldHRhYmxlR2VzdHVyZXMgc2V0
TmFtZTpAIlRvdWNoIHN0YXJ0IGRlZmVycmVyIChpbW1lZGlhdGUgcmVzZXQpIl07CiAKQEAgLTc5
MiwxMSArNzkxLDEzIEBAIC0gKHZvaWQpc2V0VXBJbnRlcmFjdGlvbgogICAgIF90b3VjaEVuZERl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yU3ludGhldGljVGFwR2VzdHVyZXMgPSBhZG9wdE5T
KFtbV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhEZWZlcnJpbmdH
ZXN0dXJlRGVsZWdhdGU6c2VsZl0pOwogICAgIFtfdG91Y2hFbmREZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplckZvclN5bnRoZXRpY1RhcEdlc3R1cmVzIHNldE5hbWU6QCJUb3VjaCBlbmQgZGVmZXJy
ZXIgKHN5bnRoZXRpYyB0YXApIl07CiAKLSAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIgKmdlc3R1cmUgaW4gc2VsZi5fZGVmZXJyaW5nR2VzdHVyZXMpIHsKKyAgICBmb3IgKFdL
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1cmUgaW4gc2VsZi5kZWZlcnJpbmdHZXN0
dXJlcykgewogICAgICAgICBnZXN0dXJlLmRlbGVnYXRlID0gc2VsZjsKICAgICAgICAgW3NlbGYg
YWRkR2VzdHVyZVJlY29nbml6ZXI6Z2VzdHVyZV07CiAgICAgfQotI2VuZGlmIC8vIEVOQUJMRShJ
T1NfVE9VQ0hfRVZFTlRTKQorCisgICAgaWYgKF9nZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5
RW5mb3JjZXIpCisgICAgICAgIF9nZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIt
PnJlc2V0KCk7CiAKICAgICBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyID0gYWRvcHROUyhb
W1VJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhUYXJnZXQ6
c2VsZiBhY3Rpb246QHNlbGVjdG9yKF93ZWJUb3VjaEV2ZW50c1JlY29nbml6ZWQ6KSB0b3VjaERl
bGVnYXRlOnNlbGZdKTsKICAgICBbX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplciBzZXREZWxl
Z2F0ZTpzZWxmXTsKQEAgLTk2NywxMiArOTY4LDEzIEBAIC0gKHZvaWQpY2xlYW5VcEludGVyYWN0
aW9uCiAgICAgW190b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsZWdhdGU6bmlsXTsK
ICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfdG91Y2hFdmVudEdlc3R1cmVSZWNv
Z25pemVyLmdldCgpXTsKIAotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotICAgIGZvciAo
V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLl9kZWZlcnJpbmdH
ZXN0dXJlcykgeworICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVy
ZSBpbiBzZWxmLmRlZmVycmluZ0dlc3R1cmVzKSB7CiAgICAgICAgIGdlc3R1cmUuZGVsZWdhdGUg
PSBuaWw7CiAgICAgICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOmdlc3R1cmVdOwog
ICAgIH0KLSNlbmRpZgorCisgICAgaWYgKF9nZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5m
b3JjZXIpCisgICAgICAgIF9nZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXItPnJl
c2V0KCk7CiAKICNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkKICAgICBbX21vdXNl
R2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsZWdhdGU6bmlsXTsKQEAgLTEwOTgsMTAgKzExMDAsOCBA
QCAtICh2b2lkKV9jYW5jZWxQZW5kaW5nS2V5RXZlbnRIYW5kbGVyCiAKIC0gKHZvaWQpX3JlbW92
ZURlZmF1bHRHZXN0dXJlUmVjb2duaXplcnMKIHsKLSNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5U
UykKLSAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1cmUgaW4gc2Vs
Zi5fZGVmZXJyaW5nR2VzdHVyZXMpCisgICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyICpnZXN0dXJlIGluIHNlbGYuZGVmZXJyaW5nR2VzdHVyZXMpCiAgICAgICAgIFtzZWxmIHJl
bW92ZUdlc3R1cmVSZWNvZ25pemVyOmdlc3R1cmVdOwotI2VuZGlmCiAgICAgW3NlbGYgcmVtb3Zl
R2VzdHVyZVJlY29nbml6ZXI6X3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAg
ICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25p
emVyLmdldCgpXTsKICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfaGlnaGxpZ2h0
TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwpAQCAtMTEyNSwxMCArMTEyNSw4IEBA
IC0gKHZvaWQpX3JlbW92ZURlZmF1bHRHZXN0dXJlUmVjb2duaXplcnMKIAogLSAodm9pZClfYWRk
RGVmYXVsdEdlc3R1cmVSZWNvZ25pemVycwogewotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQotICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxm
Ll9kZWZlcnJpbmdHZXN0dXJlcykKKyAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIgKmdlc3R1cmUgaW4gc2VsZi5kZWZlcnJpbmdHZXN0dXJlcykKICAgICAgICAgW3NlbGYgYWRk
R2VzdHVyZVJlY29nbml6ZXI6Z2VzdHVyZV07Ci0jZW5kaWYKICAgICBbc2VsZiBhZGRHZXN0dXJl
UmVjb2duaXplcjpfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKICAgICBbc2Vs
ZiBhZGRHZXN0dXJlUmVjb2duaXplcjpfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCld
OwogICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9oaWdobGlnaHRMb25nUHJlc3NHZXN0
dXJlUmVjb2duaXplci5nZXQoKV07CkBAIC0xNTY0LDcgKzE1NjIsNiBAQCAtICh2b2lkKV93ZWJU
b3VjaEV2ZW50c1JlY29nbml6ZWQ6KFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplciAq
KWdlc3R1cmVSZQogICAgICAgICBpZiAobmF0aXZlV2ViVG91Y2hFdmVudC5pc1BvdGVudGlhbFRh
cCgpICYmIHNlbGYuaGFzSGlkZGVuQ29udGVudEVkaXRhYmxlICYmIHNlbGYuX2hhc0ZvY3VzZWRF
bGVtZW50ICYmICFzZWxmLndpbmRvdy5rZXlXaW5kb3cpCiAgICAgICAgICAgICBbc2VsZi53aW5k
b3cgbWFrZUtleVdpbmRvd107CiAKLSNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICAg
ICAgYXV0byBzdG9wRGVmZXJyaW5nTmF0aXZlR2VzdHVyZXNJZk5lZWRlZCA9IFtdIChOU0FycmF5
PFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKj4gKmRlZmVycmluZ0dlc3R1cmVzKSB7CiAg
ICAgICAgICAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1cmUgaW4g
ZGVmZXJyaW5nR2VzdHVyZXMpIHsKICAgICAgICAgICAgICAgICBpZiAoZ2VzdHVyZS5zdGF0ZSA9
PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVQb3NzaWJsZSkKQEAgLTE1NzcsNyArMTU3NCw2IEBA
IC0gKHZvaWQpX3dlYlRvdWNoRXZlbnRzUmVjb2duaXplZDooVUlXZWJUb3VjaEV2ZW50c0dlc3R1
cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlCiAKICAgICAgICAgaWYgKCFfcGFnZS0+aXNIYW5kbGlu
Z1ByZXZlbnRhYmxlVG91Y2hFbmQoKSkKICAgICAgICAgICAgIHN0b3BEZWZlcnJpbmdOYXRpdmVH
ZXN0dXJlc0lmTmVlZGVkKHNlbGYuX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZXMpOwotI2VuZGlm
IC8vIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQogfQpAQCAtMTc1NSw5ICsxNzUxLDIwIEBAIC0gKHZvaWQpX3dlYlRvdWNoRXZl
bnQ6KGNvbnN0IFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudCYpdG91Y2hFdmVudCBwcmV2ZW50
c05hCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQorLSAoVUlXZWJU
b3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyICopdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVy
Cit7CisgICAgcmV0dXJuIF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIuZ2V0KCk7Cit9CiAK
LS0gKE5TQXJyYXk8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqPiAqKV9kZWZlcnJpbmdH
ZXN0dXJlcworLSAoV2ViS2l0OjpHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIm
KWdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcgoreworICAgIGlmICghX2dlc3R1
cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcikKKyAgICAgICAgX2dlc3R1cmVSZWNvZ25p
emVyQ29uc2lzdGVuY3lFbmZvcmNlciA9IG1ha2VVbmlxdWU8V2ViS2l0OjpHZXN0dXJlUmVjb2du
aXplckNvbnNpc3RlbmN5RW5mb3JjZXI+KHNlbGYpOworCisgICAgcmV0dXJuICpfZ2VzdHVyZVJl
Y29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyOworfQorCistIChOU0FycmF5PFdLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXIgKj4gKilkZWZlcnJpbmdHZXN0dXJlcwogewogICAgIGF1dG8gZ2Vz
dHVyZXMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlXaXRoQ2FwYWNpdHk6Nl07CiAgICAgW2dlc3R1
cmVzIGFkZE9iamVjdHNGcm9tQXJyYXk6c2VsZi5fdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVz
XTsKQEAgLTE4MTcsOCArMTgyNCw2IEBAIC0gKEJPT0wpX2lzVG91Y2hFbmREZWZlcnJpbmdHZXN0
dXJlOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZQogICAgICAgICB8fCBn
ZXN0dXJlID09IF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJl
c2V0dGFibGVHZXN0dXJlczsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQotCiBzdGF0aWMgTlNWYWx1ZSAqbnNTaXplRm9yVGFwSGlnaGxpZ2h0Qm9yZGVyUmFkaXVzKFdl
YkNvcmU6OkludFNpemUgYm9yZGVyUmFkaXVzLCBDR0Zsb2F0IGJvcmRlclJhZGl1c1NjYWxlKQog
ewogICAgIHJldHVybiBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1NpemU6Q0dTaXplTWFrZSgoYm9yZGVy
UmFkaXVzLndpZHRoKCkgKiBib3JkZXJSYWRpdXNTY2FsZSkgKyBtaW5pbXVtVGFwSGlnaGxpZ2h0
UmFkaXVzLCAoYm9yZGVyUmFkaXVzLmhlaWdodCgpICogYm9yZGVyUmFkaXVzU2NhbGUpICsgbWlu
aW11bVRhcEhpZ2hsaWdodFJhZGl1cyldOwpAQCAtMjIyMSwxMiArMjIyNiwxMCBAQCBzdGF0aWMg
Q2xhc3MgdGFwQW5kQUhhbGZSZWNvZ25pemVyQ2xhc3MoKQogCiAtIChCT09MKWdlc3R1cmVSZWNv
Z25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVj
b2duaXplU2ltdWx0YW5lb3VzbHlXaXRoR2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29n
bml6ZXIqKW90aGVyR2VzdHVyZVJlY29nbml6ZXIKIHsKLSNpZiBFTkFCTEUoSU9TX1RPVUNIX0VW
RU5UUykKLSAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1cmUgaW4g
c2VsZi5fZGVmZXJyaW5nR2VzdHVyZXMpIHsKKyAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXIgKmdlc3R1cmUgaW4gc2VsZi5kZWZlcnJpbmdHZXN0dXJlcykgewogICAgICAgICBp
ZiAoaXNTYW1lUGFpcihnZXN0dXJlUmVjb2duaXplciwgb3RoZXJHZXN0dXJlUmVjb2duaXplciwg
X3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplci5nZXQoKSwgZ2VzdHVyZSkpCiAgICAgICAgICAg
ICByZXR1cm4gWUVTOwogICAgIH0KLSNlbmRpZgogCiAgICAgaWYgKFtnZXN0dXJlUmVjb2duaXpl
ciBpc0tpbmRPZkNsYXNzOldLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuY2xhc3NdICYmIFtv
dGhlckdlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplci5jbGFzc10pCiAgICAgICAgIHJldHVybiBZRVM7CkBAIC03NTUzLDIzICs3NTU2LDMx
IEBAIC0gKHZvaWQpX2hpZGVUYXJnZXRlZFByZXZpZXdDb250YWluZXJWaWV3cwogCiAjcHJhZ21h
IG1hcmsgLSBXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUKIAotLSAoQk9PTClk
ZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAq
KWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHNob3VsZERlZmVyR2VzdHVyZXNBZnRlckJlZ2lu
bmluZ1RvdWNoZXNXaXRoRXZlbnQ6KFVJRXZlbnQgKilldmVudAorLSAoV2ViS2l0OjpTaG91bGRE
ZWZlckdlc3R1cmVzKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgd2lsbEJlZ2luVG91Y2hl
c1dpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50Cit7CisgICAgc2VsZi5nZXN0dXJlUmVjb2duaXpl
ckNvbnNpc3RlbmN5RW5mb3JjZXIuYmVnaW5UcmFja2luZyhkZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplcik7CisKKyAgICByZXR1cm4gW3NlbGYgZ2VzdHVyZVJlY29nbml6ZXI6ZGVmZXJyaW5nR2Vz
dHVyZVJlY29nbml6ZXIgaXNJbnRlcnJ1cHRpbmdNb21lbnR1bVNjcm9sbGluZ1dpdGhFdmVudDpl
dmVudF0gPyBXZWJLaXQ6OlNob3VsZERlZmVyR2VzdHVyZXM6Ok5vIDogV2ViS2l0OjpTaG91bGRE
ZWZlckdlc3R1cmVzOjpZZXM7Cit9CisKKy0gKHZvaWQpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXI6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplciBkaWRUcmFuc2l0aW9uVG9TdGF0ZTooVUlHZXN0dXJlUmVjb2duaXplclN0YXRlKXN0YXRl
CiB7Ci0gICAgcmV0dXJuICFbc2VsZiBnZXN0dXJlUmVjb2duaXplcjpkZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplciBpc0ludGVycnVwdGluZ01vbWVudHVtU2Nyb2xsaW5nV2l0aEV2ZW50OmV2ZW50
XTsKKyAgICBpZiAoc3RhdGUgPT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlRW5kZWQgfHwgc3Rh
dGUgPT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlRmFpbGVkIHx8IHN0YXRlID09IFVJR2VzdHVy
ZVJlY29nbml6ZXJTdGF0ZUNhbmNlbGxlZCkKKyAgICAgICAgc2VsZi5nZXN0dXJlUmVjb2duaXpl
ckNvbnNpc3RlbmN5RW5mb3JjZXIuZW5kVHJhY2tpbmcoZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIpOwogfQogCiAtICh2b2lkKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgZGlkRW5kVG91
Y2hlc1dpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50CiB7CisgICAgc2VsZi5nZXN0dXJlUmVjb2du
aXplckNvbnNpc3RlbmN5RW5mb3JjZXIuZW5kVHJhY2tpbmcoZGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIpOworCiAgICAgaWYgKGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLnN0YXRlICE9IFVJ
R2VzdHVyZVJlY29nbml6ZXJTdGF0ZVBvc3NpYmxlKQogICAgICAgICByZXR1cm47CiAKLSNpZiBF
TkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICBpZiAoX3BhZ2UtPmlzSGFuZGxpbmdQcmV2ZW50
YWJsZVRvdWNoU3RhcnQoKSAmJiBbc2VsZiBfaXNUb3VjaFN0YXJ0RGVmZXJyaW5nR2VzdHVyZTpk
ZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcl0pCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChf
cGFnZS0+aXNIYW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hFbmQoKSAmJiBbc2VsZiBfaXNUb3VjaEVu
ZERlZmVycmluZ0dlc3R1cmU6ZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJdKQogICAgICAgICBy
ZXR1cm47Ci0jZW5kaWYKIAogICAgIGlmIChbX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplciBz
dGF0ZV0gPT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlUG9zc2libGUpCiAgICAgICAgIHJldHVy
bjsKQEAgLTc1ODIsNyArNzU5Myw2IEBAIC0gKHZvaWQpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXI6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0CiAKIC0gKEJP
T0wpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlck90aGVyR2VzdHVyZVJl
Y29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgogewotI2lm
IEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIGlmIChbX3dlYlZpZXcgX2lzTmF2aWdhdGlv
blN3aXBlR2VzdHVyZVJlY29nbml6ZXI6Z2VzdHVyZVJlY29nbml6ZXJdKQogICAgICAgICByZXR1
cm4gTk87CiAKQEAgLTc2NTEsMTEgKzc2NjEsNiBAQCAtIChCT09MKWRlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdAog
ICAgICAgICByZXR1cm4gZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgPT0gX3RvdWNoU3RhcnRE
ZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvckRlbGF5ZWRSZXNldHRhYmxlR2VzdHVyZXM7CiAK
ICAgICByZXR1cm4gZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgPT0gX3RvdWNoU3RhcnREZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplckZvckltbWVkaWF0ZWx5UmVzZXR0YWJsZUdlc3R1cmVzOwot
I2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIpOwotICAg
IFVOVVNFRF9QQVJBTShnZXN0dXJlUmVjb2duaXplcik7Ci0gICAgcmV0dXJuIE5POwotI2VuZGlm
CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmgKaW5kZXgg
NTc2MGM3NGMxZGM4MWVhYzliZjk3MGQxZjZhYjZjM2ZjZDE2MTI0ZS4uMGYzYjUyYjk1ZTdjNzkz
YzJhY2NmZDhjODJlMmQ4ZmVmYTMyNGYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5oCkBAIC0yNywx
MiArMjcsMTkgQEAKIAogI2ltcG9ydCA8VUlLaXQvVUlLaXQuaD4KIAorbmFtZXNwYWNlIFdlYktp
dCB7CisKK2VudW0gY2xhc3MgU2hvdWxkRGVmZXJHZXN0dXJlcyA6IGJvb2wgeyBObywgWWVzIH07
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCiBAY2xhc3MgV0tEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplcjsKIAogQHByb3RvY29sIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0
ZQotLSAoQk9PTClkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplciAqKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHNob3VsZERlZmVyR2VzdHVy
ZXNBZnRlckJlZ2lubmluZ1RvdWNoZXNXaXRoRXZlbnQ6KFVJRXZlbnQgKilldmVudDsKLS0gKEJP
T0wpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBkaWRFbmRUb3VjaGVzV2l0aEV2ZW50OihV
SUV2ZW50ICopZXZlbnQ7CiAtIChCT09MKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0Rl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgc2hv
dWxkRGVmZXJPdGhlckdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2Vz
dHVyZVJlY29nbml6ZXI7CistIChXZWJLaXQ6OlNob3VsZERlZmVyR2VzdHVyZXMpZGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplciB3aWxsQmVnaW5Ub3VjaGVzV2l0aEV2ZW50OihVSUV2ZW50ICop
ZXZlbnQ7CistICh2b2lkKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgZGlkRW5kVG91Y2hl
c1dpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50OworLSAodm9pZClkZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyIGRpZFRyYW5zaXRpb25Ub1N0YXRlOihVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGUp
c3RhdGU7CiBAZW5kCiAKIEBpbnRlcmZhY2UgV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciA6
IFVJR2VzdHVyZVJlY29nbml6ZXIKQEAgLTQxLDggKzQ4LDYgQEAKIC0gKHZvaWQpc2V0RGVmYXVs
dFByZXZlbnRlZDooQk9PTClkZWZhdWx0UHJldmVudGVkOwogLSAoQk9PTClzaG91bGREZWZlckdl
c3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXI7
CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCByZWFkb25seSkgaWQgPFdLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4gZGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlOwotCiBA
ZW5kCiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5t
bQppbmRleCBlZDZlZmU2YzNlMGFhOWY2Njk0NWMxMmQ3MmI5NWRiMWYxMmUyNmIwLi44ZTY1NWQ3
NmRlMzRhZjg1YmFkNzA1MDQyMzE4MWE1ZjQ4Zjk4OTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5t
bQpAQCAtNDEsMTggKzQxLDEzIEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aERlZmVycmluZ0dl
c3R1cmVEZWxlZ2F0ZTooaWQgPFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6CiAgICAgcmV0dXJu
IHNlbGY7CiB9CiAKLS0gKGlkIDxXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGU+
KWRlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZQotewotICAgIHJldHVybiBfZGVmZXJyaW5nR2VzdHVy
ZURlbGVnYXRlLmdldCgpLmdldCgpOwotfQotCiAtICh2b2lkKXRvdWNoZXNCZWdhbjooTlNTZXQ8
VUlUb3VjaCAqPiAqKXRvdWNoZXMgd2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQKIHsKKyAgICBh
dXRvIHNob3VsZERlZmVyR2VzdHVyZXMgPSBbX2RlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZSBkZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplcjpzZWxmIHdpbGxCZWdpblRvdWNoZXNXaXRoRXZlbnQ6ZXZl
bnRdOwogICAgIFtzdXBlciB0b3VjaGVzQmVnYW46dG91Y2hlcyB3aXRoRXZlbnQ6ZXZlbnRdOwot
ICAgIGlmIChbX2RlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZSBkZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplcjpzZWxmIHNob3VsZERlZmVyR2VzdHVyZXNBZnRlckJlZ2lubmluZ1RvdWNoZXNXaXRoRXZl
bnQ6ZXZlbnRdKQotICAgICAgICByZXR1cm47CiAKLSAgICBzZWxmLnN0YXRlID0gVUlHZXN0dXJl
UmVjb2duaXplclN0YXRlRmFpbGVkOworICAgIGlmIChzaG91bGREZWZlckdlc3R1cmVzID09IFdl
YktpdDo6U2hvdWxkRGVmZXJHZXN0dXJlczo6Tm8pCisgICAgICAgIHNlbGYuc3RhdGUgPSBVSUdl
c3R1cmVSZWNvZ25pemVyU3RhdGVGYWlsZWQ7CiB9CiAKIC0gKHZvaWQpdG91Y2hlc0VuZGVkOihO
U1NldDxVSVRvdWNoICo+ICopdG91Y2hlcyB3aXRoRXZlbnQ6KFVJRXZlbnQgKilldmVudApAQCAt
ODYsNiArODEsMTUgQEAgLSAoQk9PTClzaG91bGREZWZlckdlc3R1cmVSZWNvZ25pemVyOihVSUdl
c3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIKICAgICByZXR1cm4gW19kZWZlcnJp
bmdHZXN0dXJlRGVsZWdhdGUgZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6c2VsZiBzaG91bGRE
ZWZlck90aGVyR2VzdHVyZVJlY29nbml6ZXI6Z2VzdHVyZVJlY29nbml6ZXJdOwogfQogCistICh2
b2lkKXNldFN0YXRlOihVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGUpc3RhdGUKK3sKKyAgICBhdXRv
IHByZXZpb3VzU3RhdGUgPSBzZWxmLnN0YXRlOworICAgIFtzdXBlciBzZXRTdGF0ZTpzdGF0ZV07
CisKKyAgICBpZiAocHJldmlvdXNTdGF0ZSAhPSBzZWxmLnN0YXRlKQorICAgICAgICBbX2RlZmVy
cmluZ0dlc3R1cmVEZWxlZ2F0ZSBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjpzZWxmIGRpZFRy
YW5zaXRpb25Ub1N0YXRlOnN0YXRlXTsKK30KKwogQGVuZAogCiAjZW5kaWYgLy8gUExBVEZPUk0o
SU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDM4ZDAwMzIwZjU0NTAzMzJhZmRjYTkwN2RhYTUxMmJmODJmOTZiZDUuLjYw
MjI5ODc2MDVjODYxZGVjN2NlOGRkMDlmNTViNTdkNGVkZjRlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDI2LDEyICs0MjYsNiBA
QAogCQkxQ0E4Qjk0NjEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBOEI5
NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLzsgfTsK
IAkJMUNCQkU0QTAxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
QkJFNDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi87IH07CiAJCTFDQkJFNEExMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oICovOyB9
OwotCQkxRDQ3NjU4NjI1Q0NBNDE2MDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJv
eHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENDc2
NTg0MjVDQ0E0MTYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5oICovOyB9
OwotCQkxRDQ3NjU5MzI1Q0NDRTkzMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJv
eHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUQ0NzY1OTAyNUNDQ0U5MzAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5
TWVzc2FnZXMuaCAqLzsgfTsKLQkJMUQ0NzY1OTQyNUNDQ0U5MzAwN0FGMzEyIC8qIFJlbW90ZUlt
YWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDQ3NjU5MTI1Q0NDRTkzMDA3QUYzMTIgLyogUmVt
b3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKLQkJMUQ0NzY1
OUMyNUNFNzRBRDAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXJNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0NzY1
OTkyNUNFNzRBQzAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXJNZXNzYWdl
cy5oICovOyB9OwotCQkxRDQ3NjU5RDI1Q0U3NEFEMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNv
ZGVyQVZGTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0NzY1OUEyNUNFNzRBQzAwN0FGMzEyIC8qIFJlbW90ZUlt
YWdlRGVjb2RlckFWRk1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKLQkJMUQ0NzY1QTEy
NUNGNTc0MDAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENDc2NTlGMjVDRjU3NDAw
MDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmggKi87IH07CiAJCTFENEQ3
MzcwMjNBOUU1NDcwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxRDRENzM2QjIzQTlERjU1MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkxRDRENzM3MTIzQTlFNTYyMDA3MTdBMjUgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNkMyM0E5REY2MDAwNzE3QTI1IC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKIAkJMUQ0RDczNzYyM0E5
RUQxODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM3
NTIzQTlFQjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1Jl
cGxpZXMuaCAqLzsgfTsKQEAgLTIwMTEsNiArMjAwNSw3IEBACiAJCUY0QTZENkJDMjU0Q0EzRTkw
MEI2NUZBQSAvKiBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRBNkQ2QkIyNTRDQTNFOTAwQjY1RkFBIC8qIFNo
YXJlZERpc3BsYXlMaXN0SGFuZGxlLmggKi87IH07CiAJCUY0QkEzM0YyMjU3NTdFODkwMDBBM0NF
OCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEJBMzNGMDI1NzU3RTg5MDAwQTNDRTgg
LyogV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oICovOyB9OwogCQlGNENCMDlF
NTIyNUQ1QTA5MDA4OTE0ODcgLyogV2Vic2l0ZU1lZGlhU291cmNlUG9saWN5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNENCMDlFNDIyNUQ1QTAzMDA4
OTE0ODcgLyogV2Vic2l0ZU1lZGlhU291cmNlUG9saWN5LmggKi87IH07CisJCUY0Q0YxRTlEMjVF
NDBEQ0MwMDBGOUQ3MyAvKiBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Q0YxRTlCMjVF
NDBEQ0MwMDBGOUQ3MyAvKiBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaCAq
LzsgfTsKIAkJRjRENUY1MUQyMDYwODdBMTAwMzhCQkE4IC8qIFdLVGV4dElucHV0TGlzdFZpZXdD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNEQ1RjUxOTIwNjA4N0EwMDAzOEJCQTggLyogV0tUZXh0SW5wdXRMaXN0Vmlld0NvbnRyb2xs
ZXIuaCAqLzsgfTsKIAkJRjRENUY1MUYyMDYwODdBMTAwMzhCQkE4IC8qIFdLUXVpY2tib2FyZExp
c3RWaWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjRENUY1MUIyMDYwODdBMTAwMzhCQkE4IC8qIFdLUXVpY2tib2FyZExpc3RWaWV3
Q29udHJvbGxlci5oICovOyB9OwogCQlGNERCNTRFNjIzMTlFNzMzMDA5RTMxNTUgLyogV0tIaWdo
bGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjREQjU0RTQyMzE5RTczMzAwOUUzMTU1IC8qIFdLSGln
aGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuaCAqLzsgfTsKQEAgLTU4ODgsNiArNTg4
Myw4IEBACiAJCUY0QkEzM0YwMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdl
c3R1cmVSZWNvZ25pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXIuaDsgcGF0aCA9IGlvcy9XS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25p
emVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0QkEzM0YxMjU3NTdFODkwMDBB
M0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5tbTsgcGF0aCA9
IGlvcy9XS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNENCMDlFNDIyNUQ1QTAzMDA4OTE0ODcgLyogV2Vic2l0ZU1lZGlh
U291cmNlUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVNZWRpYVNvdXJjZVBvbGljeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNENGMUU5QjI1RTQwRENDMDAwRjlENzMg
LyogR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5o
OyBwYXRoID0gaW9zL0dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNENGMUU5QzI1RTQwRENDMDAwRjlENzMgLyogR2Vz
dHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBuYW1lID0gR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2Vy
Lm1tOyBwYXRoID0gaW9zL0dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRENUY1MTkyMDYwODdBMDAwMzhCQkE4IC8q
IFdLVGV4dElucHV0TGlzdFZpZXdDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFdLVGV4dElucHV0TGlzdFZpZXdDb250cm9sbGVyLmg7IHBhdGggPSBpb3MvZm9y
bXMvV0tUZXh0SW5wdXRMaXN0Vmlld0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjRENUY1MUEyMDYwODdBMTAwMzhCQkE4IC8qIFdLVGV4dElucHV0TGlzdFZpZXdD
b250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tU
ZXh0SW5wdXRMaXN0Vmlld0NvbnRyb2xsZXIubW07IHBhdGggPSBpb3MvZm9ybXMvV0tUZXh0SW5w
dXRMaXN0Vmlld0NvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0
RDVGNTFCMjA2MDg3QTEwMDM4QkJBOCAvKiBXS1F1aWNrYm9hcmRMaXN0Vmlld0NvbnRyb2xsZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tRdWlja2JvYXJkTGlzdFZpZXdD
b250cm9sbGVyLmg7IHBhdGggPSBpb3MvZm9ybXMvV0tRdWlja2JvYXJkTGlzdFZpZXdDb250cm9s
bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NTgyLDYgKzc1NzksOCBAQAog
CQkJCUY0OTZBNDMwMUY1OEEyNzIwMDRDMTc1NyAvKiBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUu
bW0gKi8sCiAJCQkJQ0RDREM5OUIyNDhGRThEQTAwQTY5NTIyIC8qIEVuZG93bWVudFN0YXRlVHJh
Y2tlci5oICovLAogCQkJCUNEQ0RDOTlDMjQ4RkU4REEwMEE2OTUyMiAvKiBFbmRvd21lbnRTdGF0
ZVRyYWNrZXIubW0gKi8sCisJCQkJRjRDRjFFOUIyNUU0MERDQzAwMEY5RDczIC8qIEdlc3R1cmVS
ZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5oICovLAorCQkJCUY0Q0YxRTlDMjVFNDBEQ0Mw
MDBGOUQ3MyAvKiBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIubW0gKi8sCiAJ
CQkJMkRENDVBREMxRTVGODk3MjAwNkMzNTVGIC8qIElucHV0Vmlld1VwZGF0ZURlZmVycmVyLmgg
Ki8sCiAJCQkJMkRENDVBREQxRTVGODk3MjAwNkMzNTVGIC8qIElucHV0Vmlld1VwZGF0ZURlZmVy
cmVyLm1tICovLAogCQkJCTBGQ0I0RTM2MThCQkUwNDQwMDBGQ0ZDOSAvKiBQYWdlQ2xpZW50SW1w
bElPUy5oICovLApAQCAtMTE3NDcsNiArMTE3NDYsNyBAQAogCQkJCUJDMDZGNDJGMTJEQkI5QjYw
MDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMwNkY0NEExMkRCRDFGNTAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDZGNDNBMTJE
QkNDRkIwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUY0Q0YxRTlEMjVFNDBEQ0MwMDBGOUQ3MyAvKiBHZXN0dXJlUmVjb2du
aXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQTk0NEE0MTg4
NEU0RjAwMEVEODZEQiAvKiBHZXN0dXJlVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0MEJC
QjQxMjU3RkY0NkUwMDY3NDYzQSAvKiBHUFVQcm9jZXNzV2FrZXVwTWVzc2FnZUFyZ3VtZW50cy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkRBMDQ5QjgxODBDQ0QwQTAwQUFGQTlFIC8qIEdyYXBoaWNz
TGF5ZXJDQVJlbW90ZS5oIGluIEhlYWRlcnMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421240</attachid>
            <date>2021-02-22 14:40:27 -0800</date>
            <delta_ts>2021-02-22 14:56:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222216-20210222144027.patch</filename>
            <type>text/plain</type>
            <size>27488</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk1NjUxZGI3ZjU2YzhjZjQx
MjBmNTk3ZmM0YWVlOTJmM2FkZDljYjUuLjAyODdhZWQyMmUxYTMwY2FkYjE4M2Y1MjkwOTVkMjRh
M2QyODBkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODcgQEAKKzIwMjEtMDItMjIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRkIGEgd2F0
Y2hkb2cgdGltZXIgdG8gZm9yY2libHkgcmVzZXQgZGVmZXJyaW5nIGdlc3R1cmUgcmVjb2duaXpl
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjIx
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
IG1lY2hhbmlzbSB0byBkZXRlY3QgYW5kIHJlc29sdmUgc2l0dWF0aW9ucyB3aGVyZSBhdCBsZWFz
dCBvbmUgZGVmZXJyaW5nIGdlc3R1cmUgcmVjb2duaXplcgorICAgICAgICAoYFdLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXJgKSBpcyBzdHVjayBpbiBQb3NzaWJsZSBzdGF0ZSBhZnRlciBlbmRp
bmcgdG91Y2hlcywgYnV0IHRoZSB0b3VjaCBldmVudCBnZXN0dXJlCisgICAgICAgIHJlY29nbml6
ZXIgaXMgdW5hYmxlIHRvIGJlIHJlc2V0IChpLmUuIG5laXRoZXIgcG9zc2libGUgb3IgcmVjb2du
aXppbmcpLiBUaGlzIHN0YXRlIGlzIGluZGljYXRpdmUgb2YgYSBnZW5lcmFsCisgICAgICAgIGNs
YXNzIG9mIGJ1Z3MgcmVnYXJkaW5nIG5hdGl2ZSBnZXN0dXJlIGRlZmVycmFsLCB3aGVyZWluIHdl
IG1heSBlbmQgdXAgaW4gYSBzdGF0ZSB3aGVyZSBvdXIgImdlc3R1cmUgZ2F0ZXMiCisgICAgICAg
IG5ldmVyIGVuZCB1cCBiZWluZyBsaWZ0ZWQgYWZ0ZXIgZW5kaW5nIGFsbCB0b3VjaGVzIGluIHRo
ZSB2aWV3LiBPbmUgc3VjaCBleGFtcGxlIG9mIHRoaXMgdHlwZSBvZiBidWcgd2FzIGZpeGVkCisg
ICAgICAgIGluIHIyNzI1ODQsIHdoZXJlIGFsbCBpbnRlcmFjdGlvbiAodG91Y2ggZXZlbnRzLCBz
Y3JvbGxpbmcsIHRhcHBpbmcpIGR1ZSB0byB0aGUgdG91Y2ggZW5kIGRlZmVycmVycyBuZXZlcgor
ICAgICAgICBleGl0aW5nIFBvc3NpYmxlIHN0YXRlIGFmdGVyIGxvbmcgcHJlc3NpbmcgdG8gcHJl
c2VudCBhIGNvbnRleHQgbWVudS4KKworICAgICAgICBUbyBtYWtlIHRoZXNlIGtpbmRzIG9mIGJ1
Z3MgYm90aCBlYXNpZXIgdG8gZGlhZ25vc2UgYW5kIGxlc3MgZmF0YWwgaW4gdGhlIGZ1dHVyZSwg
d2UgaW50cm9kdWNlIGEgd2F0Y2hkb2cgdGltZXIKKyAgICAgICAgdGhhdCBkaXNwYXRjaGVzIGFm
dGVyIGVuZGluZyBhbGwgdG91Y2hlcyBvbiB0aGUgY29udGVudCB2aWV3LCBhbmQgY2hlY2tzIHRo
ZSBjb25zaXN0ZW5jeSBvZiBkZWZlcnJpbmcgZ2VzdHVyZQorICAgICAgICByZWNvZ25pemVycyBp
biB0aGUgdmlldzsgaWYgd2UgZGV0ZWN0IHN0dWNrIGRlZmVycmluZyBnZXN0dXJlcywgd2UgaGFu
ZGxlIHRoaXMgYnkgZm9yY2libHkgcmVzZXR0aW5nIHRoZSBzdHVjaworICAgICAgICBkZWZlcnJp
bmcgZ2VzdHVyZXMgYW5kIGxvZ2dpbmcgYSBmYXVsdCBtZXNzYWdlLgorCisgICAgICAgIEkgbWFu
dWFsbHkgdmVyaWZpZWQgdGhpcyBjaGFuZ2UgYnkgcmV2ZXJ0aW5nIG15IGZpeCBmb3IgdGhlIGFm
b3JlbWVudGlvbmVkIGJ1ZyAocjI3MjU4NCksIGFuZCBvYnNlcnZpbmcgYm90aCAoMSkKKyAgICAg
ICAgYSBzeXN0ZW0gbG9nIGZhdWx0IG1lc3NhZ2UsIGFuZCAoMikgdGhhdCBpbnRlcmFjdGlvbnMg
Y29udGludWVkIHRvIHdvcmsgZXZlbiB3aXRob3V0IHRoZSBmaXggaW4gcjI3MjU4NCwgYWZ0ZXIK
KyAgICAgICAgdGhlIHdhdGNoZG9nIHRpbWVyIGZpcmVkLiBTZWUgYmVsb3cgZm9yIG1vcmUgZGV0
YWlscy4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9HZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIu
aC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL0dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lF
bmZvcmNlci5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyQ29u
c2lzdGVuY3lFbmZvcmNlcjo6R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyKToK
KyAgICAgICAgKFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyOjpi
ZWdpblRyYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0
ZW5jeUVuZm9yY2VyOjplbmRUcmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6Okdlc3R1cmVSZWNv
Z25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcjo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpHZXN0
dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI6OnRpbWVyRmlyZWQpOgorCisgICAgICAg
IEFkZCBhIGhlbHBlciBjbGFzcyB0aGF0IHdyYXBzIGEgYFJ1bkxvb3A6OlRpbWVyYCBmb3IgdGhl
IG1haW4gcnVubG9vcCwgYW5kIHNjaGVkdWxlcyBhIDEgc2Vjb25kIHRpbWVyIGFmdGVyIGFsbAor
ICAgICAgICBkZWZlcnJpbmcgZ2VzdHVyZXMgaGF2ZSBlbmRlZDsgYXNzdW1pbmcgbm8gbmV3IHRv
dWNoZXMgYmVnaW4gYWZ0ZXIgdGhpcyB0aW1lciBpcyBzY2hlZHVsZWQsIHdlJ2xsIHBlcmZvcm0g
YQorICAgICAgICBjb25zaXN0ZW5jeSBjaGVjayBvdmVyIHRoZSBjb250ZW50IHZpZXcncyBnZXN0
dXJlcyBhbmQgcGVyZm9ybSBhIGxvZyBmYXVsdCBhbmQgZm9yY2UgZGVmZXJyaW5nIGdlc3R1cmVz
IHRvIGVuZAorICAgICAgICBpZiBuZWVkZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNldFVwSW50
ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhblVwSW50ZXJhY3Rpb25d
KToKKworICAgICAgICBNYWtlIHN1cmUgdGhhdCB3ZSByZXNldCBhbnkgZXh0YW50IGBHZXN0dXJl
UmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXJgIGlmIHRoZSB3ZWIgcHJvY2VzcyBjcmFzaGVz
LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3JlbW92ZURlZmF1bHRHZXN0dXJlUmVjb2du
aXplcnNdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfYWRkRGVmYXVsdEdlc3R1cmVSZWNv
Z25pemVyc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF93ZWJUb3VjaEV2ZW50c1JlY29n
bml6ZWQ6XSk6CisKKyAgICAgICAgQWRqdXN0IGEgZmV3IGNvbXBpbGUtdGltZSBndWFyZHMgc28g
dGhhdCBkZWZlcnJpbmcgZ2VzdHVyZSByZWNvZ25pemVycyBleGlzdCBvbiB0aGUgdmlldywgZXZl
biBpZgorICAgICAgICBgRU5BQkxFX0lPU19UT1VDSF9FVkVOVFNgIGlzIG9mZi4gVGhpcyBtYWtl
cyBzb21lIG9mIHRoZSBnZXN0dXJlIGRlZmVycmFsIGNvZGUgdGhyb3VnaG91dCB0aGlzIGZpbGUg
ZWFzaWVyIHRvCisgICAgICAgIHJlYXNvbiBhYm91dCBpbiBub24taW50ZXJuYWwgaU9TIGJ1aWxk
cywgc2luY2Ugd2UgZG9uJ3QgbmVlZCB0byBzcHJpbmtsZSBhcyBtYW55IGBFTkFCTEUoSU9TX1RP
VUNIX0VWRU5UUylgCisgICAgICAgIGNoZWNrcyB0aHJvdWdob3V0IHRoaXMgY2xhc3MuCisKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyB0b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXJdKToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBnZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3Jj
ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkZWZlcnJpbmdHZXN0dXJlc10pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IGdlc3R1cmVSZWNvZ25pemVyOnNob3VsZFJlY29nbml6ZVNp
bXVsdGFuZW91c2x5V2l0aEdlc3R1cmVSZWNvZ25pemVyOl0pOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOndpbGxCZWdpblRvdWNoZXNXaXRoRXZl
bnQ6XSk6CisKKyAgICAgICAgUmVmYWN0b3IgYC1kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjpz
aG91bGREZWZlckdlc3R1cmVzQWZ0ZXJCZWdpbm5pbmdUb3VjaGVzV2l0aEV2ZW50OmAgc28gdGhh
dCBpdCByZXR1cm5zIGFuCisgICAgICAgIGVudW0gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhl
IGdpdmVuIGdlc3R1cmUgc2hvdWxkIGJlIGFsbG93ZWQgdG8gYmVnaW4gZGVmZXJyaW5nIG5hdGl2
ZSBnZXN0dXJlczsgYnkgbWFraW5nCisgICAgICAgIHRoaXMgYC1kZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplcjp3aWxsQmVnaW5Ub3VjaGVzV2l0aEV2ZW50OmAsIHdlIGNhbiBub3cgcHV0IHN0YXRl
IG1hbmFnZW1lbnQgbG9naWMgaGVyZSB0aGF0J3MKKyAgICAgICAgcmVzcG9uc2libGUgZm9yIHVw
ZGF0aW5nIHRoZSBgR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyYC4KKworICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOmRpZFRyYW5z
aXRpb25Ub1N0YXRlOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyOmRpZEVuZFRvdWNoZXNXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6c2hvdWxkRGVmZXJPdGhlckdlc3R1
cmVSZWNvZ25pemVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kZWZlcnJpbmdHZXN0
dXJlc10pOiBEZWxldGVkLgorCisgICAgICAgIFJlbmFtZSB0aGlzIHRvIGAtZGVmZXJyaW5nR2Vz
dHVyZXNgIGFuZCBleHBvc2UgaXQgYXMgYSByZWFkb25seSBwcm9wZXJ0eSwgZm9yIHVzZSBieSB0
aGUKKyAgICAgICAgYEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcmAuCisKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjpzaG91bGRE
ZWZlckdlc3R1cmVzQWZ0ZXJCZWdpbm5pbmdUb3VjaGVzV2l0aEV2ZW50Ol0pOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5tbToK
KyAgICAgICAgKC1bV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciB0b3VjaGVzQmVnYW46d2l0
aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHNldFN0
YXRlOl0pOgorCisgICAgICAgIEFkZCBhIGRlbGVnYXRlIGhvb2sgdG8gaW5mb3JtIGBXS0NvbnRl
bnRWaWV3YCB3aGVuIHRoZSBnZXN0dXJlIHJlY29nbml6ZXIgc3RhdGUgY2hhbmdlcy4KKworICAg
ICAgICAoLVtXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGRlZmVycmluZ0dlc3R1cmVEZWxl
Z2F0ZV0pOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDIxLTAyLTIwICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIFtDb2NvYV0gVXBkYXRlIFdlYkNvcmVBcmd1bWVudENvZGVyc01hYyB3aXRoIHNv
bWUgbmV3IGFkZGl0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGU1ZGI2YzE5NzU0NWEx
OWExZWVlYmVjZTExYjJjNDU4OGQ5YjQyMzcuLmIxY2U1YTNkYzI5OWUxMDViYzFjYTA3MWFkYTM3
Y2E1YWM5N2RhYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTQ1OCw2ICs0NTgsNyBAQCBV
SVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5t
bQogCiBVSVByb2Nlc3MvaW9zL0FwcEtpdFNvZnRMaW5rLm1tCiBVSVByb2Nlc3MvaW9zL0RyYWdE
cm9wSW50ZXJhY3Rpb25TdGF0ZS5tbQorVUlQcm9jZXNzL2lvcy9HZXN0dXJlUmVjb2duaXplckNv
bnNpc3RlbmN5RW5mb3JjZXIubW0KIFVJUHJvY2Vzcy9pb3MvSW5wdXRWaWV3VXBkYXRlRGVmZXJy
ZXIubW0KIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KIFVJUHJvY2Vzcy9pb3Mv
UHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IGE1YTI5ZjFjMjk2YmY0YWU1
ODM5N2UyNjhiODcxY2ZkMTNkYjczZWUuLjdhNDNlZTg5YjA0M2E3Y2NkMzA1NTNiNTM0NTI5OTI4
MTM4NzIyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgIkVkaXRv
clN0YXRlLmgiCiAjaW1wb3J0ICJGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmgiCiAjaW1wb3J0
ICJGcmFtZUluZm9EYXRhLmgiCisjaW1wb3J0ICJHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5
RW5mb3JjZXIuaCIKICNpbXBvcnQgIkdlc3R1cmVUeXBlcy5oIgogI2ltcG9ydCAiSW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCIKICNpbXBvcnQgIlBhc3RlYm9hcmRBY2Nlc3NJbnRl
bnQuaCIKQEAgLTI1NSwxNCArMjU2LDEzIEBAIHByaXZhdGU6CiBAZW5kCiAKIEBpbnRlcmZhY2Ug
V0tDb250ZW50VmlldyAoKSB7Ci0jaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgUmV0
YWluUHRyPFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaFN0YXJ0RGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0dGFibGVHZXN0dXJlczsKICAgICBS
ZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoU3RhcnREZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplckZvckRlbGF5ZWRSZXNldHRhYmxlR2VzdHVyZXM7CiAgICAgUmV0
YWluUHRyPFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaFN0YXJ0RGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXJGb3JTeW50aGV0aWNUYXBHZXN0dXJlczsKICAgICBSZXRhaW5QdHI8
V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0dGFibGVHZXN0dXJlczsKICAgICBSZXRhaW5QdHI8
V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXJGb3JEZWxheWVkUmVzZXR0YWJsZUdlc3R1cmVzOwogICAgIFJldGFpblB0cjxXS0Rl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyPiBfdG91Y2hFbmREZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplckZvclN5bnRoZXRpY1RhcEdlc3R1cmVzOwotI2VuZGlmCisgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyPiBfZ2VzdHVyZVJl
Y29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyOwogICAgIFJldGFpblB0cjxVSVdlYlRvdWNoRXZl
bnRzR2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXI7CiAKICAg
ICBCT09MIF90b3VjaEV2ZW50c0NhblByZXZlbnROYXRpdmVHZXN0dXJlczsKQEAgLTQ5OSw3ICs0
OTksNyBAQCBwcml2YXRlOgogCiBAZW5kCiAKLUBpbnRlcmZhY2UgV0tDb250ZW50VmlldyAoV0tJ
bnRlcmFjdGlvbikgPFVJR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZSwgVUlUZXh0QXV0b3Njcm9s
bGluZywgVUlUZXh0SW5wdXRNdWx0aURvY3VtZW50LCBVSVRleHRJbnB1dFByaXZhdGUsIFVJV2Vi
Rm9ybUFjY2Vzc29yeURlbGVnYXRlLCBVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXJE
ZWxlZ2F0ZSwgVUlXS0ludGVyYWN0aW9uVmlld1Byb3RvY29sLCBXS0FjdGlvblNoZWV0QXNzaXN0
YW50RGVsZWdhdGUsIFdLRmlsZVVwbG9hZFBhbmVsRGVsZWdhdGUsIFdLS2V5Ym9hcmRTY3JvbGxW
aWV3QW5pbWF0b3JEZWxlZ2F0ZSwgV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckRlbGVnYXRl
CitAaW50ZXJmYWNlIFdLQ29udGVudFZpZXcgKFdLSW50ZXJhY3Rpb24pIDxVSUdlc3R1cmVSZWNv
Z25pemVyRGVsZWdhdGUsIFVJVGV4dEF1dG9zY3JvbGxpbmcsIFVJVGV4dElucHV0TXVsdGlEb2N1
bWVudCwgVUlUZXh0SW5wdXRQcml2YXRlLCBVSVdlYkZvcm1BY2Nlc3NvcnlEZWxlZ2F0ZSwgVUlX
ZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUsIFVJV0tJbnRlcmFjdGlvblZp
ZXdQcm90b2NvbCwgV0tBY3Rpb25TaGVldEFzc2lzdGFudERlbGVnYXRlLCBXS0ZpbGVVcGxvYWRQ
YW5lbERlbGVnYXRlLCBXS0tleWJvYXJkU2Nyb2xsVmlld0FuaW1hdG9yRGVsZWdhdGUgLCBXS0Rl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUKICNpZiBIQVZFKENPTlRBQ1RTVUkpCiAg
ICAgLCBXS0NvbnRhY3RQaWNrZXJEZWxlZ2F0ZQogI2VuZGlmCkBAIC01MjUsNiArNTI1LDkgQEAg
cHJpdmF0ZToKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgVUlWaWV3ICppbnB1dEFj
Y2Vzc29yeVZpZXdGb3JXZWJWaWV3OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBC
T09MIHByZXZlbnRzUGFubmluZ0luWEF4aXM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIEJPT0wgcHJldmVudHNQYW5uaW5nSW5ZQXhpczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyICp0b3VjaEV2ZW50R2Vz
dHVyZVJlY29nbml6ZXI7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXk8
V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqPiAqZGVmZXJyaW5nR2VzdHVyZXM7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJDb25z
aXN0ZW5jeUVuZm9yY2VyJiBnZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI7CiAK
ICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJv
bmcpIFVJVmlldyA8V0tGb3JtQ29udHJvbD4gKmRhdGFMaXN0VGV4dFN1Z2dlc3Rpb25zSW5wdXRW
aWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggOTM3YjY1MjM3MjJhMWY2MzE5NDMxYTljN2E5NTU3MzE0
N2U0YWQ5Ny4uZDQ4MmM0N2YyNGEyMGY0YjBkOWIwM2ZlOTM2MzE2M2QzYzkxMDZjMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCkBAIC03NzMsNyArNzczLDYgQEAgLSAodm9pZClzZXRVcEludGVyYWN0aW9uCiAg
ICAgW190b3VjaEFjdGlvbkRvd25Td2lwZUdlc3R1cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOnNl
bGZdOwogICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl90b3VjaEFjdGlvbkRvd25Td2lw
ZUdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKIAotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQogICAgIF90b3VjaFN0YXJ0RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJbW1lZGlhdGVs
eVJlc2V0dGFibGVHZXN0dXJlcyA9IGFkb3B0TlMoW1tXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyIGFsbG9jXSBpbml0V2l0aERlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZTpzZWxmXSk7CiAgICAg
W190b3VjaFN0YXJ0RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0
dGFibGVHZXN0dXJlcyBzZXROYW1lOkAiVG91Y2ggc3RhcnQgZGVmZXJyZXIgKGltbWVkaWF0ZSBy
ZXNldCkiXTsKIApAQCAtNzkyLDExICs3OTEsMTMgQEAgLSAodm9pZClzZXRVcEludGVyYWN0aW9u
CiAgICAgX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JTeW50aGV0aWNUYXBH
ZXN0dXJlcyA9IGFkb3B0TlMoW1tXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGFsbG9jXSBp
bml0V2l0aERlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZTpzZWxmXSk7CiAgICAgW190b3VjaEVuZERl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yU3ludGhldGljVGFwR2VzdHVyZXMgc2V0TmFtZTpA
IlRvdWNoIGVuZCBkZWZlcnJlciAoc3ludGhldGljIHRhcCkiXTsKIAotICAgIGZvciAoV0tEZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLl9kZWZlcnJpbmdHZXN0dXJl
cykgeworICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBz
ZWxmLmRlZmVycmluZ0dlc3R1cmVzKSB7CiAgICAgICAgIGdlc3R1cmUuZGVsZWdhdGUgPSBzZWxm
OwogICAgICAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpnZXN0dXJlXTsKICAgICB9Ci0j
ZW5kaWYgLy8gRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCisKKyAgICBpZiAoX2dlc3R1cmVSZWNv
Z25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcikKKyAgICAgICAgX2dlc3R1cmVSZWNvZ25pemVyQ29u
c2lzdGVuY3lFbmZvcmNlci0+cmVzZXQoKTsKIAogICAgIF90b3VjaEV2ZW50R2VzdHVyZVJlY29n
bml6ZXIgPSBhZG9wdE5TKFtbVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyIGFsbG9j
XSBpbml0V2l0aFRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0b3IoX3dlYlRvdWNoRXZlbnRzUmVj
b2duaXplZDopIHRvdWNoRGVsZWdhdGU6c2VsZl0pOwogICAgIFtfdG91Y2hFdmVudEdlc3R1cmVS
ZWNvZ25pemVyIHNldERlbGVnYXRlOnNlbGZdOwpAQCAtOTY3LDEyICs5NjgsMTMgQEAgLSAodm9p
ZCljbGVhblVwSW50ZXJhY3Rpb24KICAgICBbX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplciBz
ZXREZWxlZ2F0ZTpuaWxdOwogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl90b3Vj
aEV2ZW50R2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwogCi0jaWYgRU5BQkxFKElPU19UT1VDSF9F
VkVOVFMpCi0gICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGlu
IHNlbGYuX2RlZmVycmluZ0dlc3R1cmVzKSB7CisgICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyICpnZXN0dXJlIGluIHNlbGYuZGVmZXJyaW5nR2VzdHVyZXMpIHsKICAgICAgICAg
Z2VzdHVyZS5kZWxlZ2F0ZSA9IG5pbDsKICAgICAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29n
bml6ZXI6Z2VzdHVyZV07CiAgICAgfQotI2VuZGlmCisKKyAgICBpZiAoX2dlc3R1cmVSZWNvZ25p
emVyQ29uc2lzdGVuY3lFbmZvcmNlcikKKyAgICAgICAgX2dlc3R1cmVSZWNvZ25pemVyQ29uc2lz
dGVuY3lFbmZvcmNlci0+cmVzZXQoKTsKIAogI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQ
T1JUKQogICAgIFtfbW91c2VHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpuaWxdOwpAQCAt
MTA5OCwxMCArMTEwMCw4IEBAIC0gKHZvaWQpX2NhbmNlbFBlbmRpbmdLZXlFdmVudEhhbmRsZXIK
IAogLSAodm9pZClfcmVtb3ZlRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVycwogewotI2lmIEVOQUJM
RShJT1NfVE9VQ0hfRVZFTlRTKQotICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
ciAqZ2VzdHVyZSBpbiBzZWxmLl9kZWZlcnJpbmdHZXN0dXJlcykKKyAgICBmb3IgKFdLRGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1cmUgaW4gc2VsZi5kZWZlcnJpbmdHZXN0dXJlcykK
ICAgICAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6Z2VzdHVyZV07Ci0jZW5kaWYK
ICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfdG91Y2hFdmVudEdlc3R1cmVSZWNv
Z25pemVyLmdldCgpXTsKICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfc2luZ2xl
VGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNv
Z25pemVyOl9oaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CkBAIC0x
MTI1LDEwICsxMTI1LDggQEAgLSAodm9pZClfcmVtb3ZlRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVy
cwogCiAtICh2b2lkKV9hZGREZWZhdWx0R2VzdHVyZVJlY29nbml6ZXJzCiB7Ci0jaWYgRU5BQkxF
KElPU19UT1VDSF9FVkVOVFMpCi0gICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
ICpnZXN0dXJlIGluIHNlbGYuX2RlZmVycmluZ0dlc3R1cmVzKQorICAgIGZvciAoV0tEZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLmRlZmVycmluZ0dlc3R1cmVzKQog
ICAgICAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpnZXN0dXJlXTsKLSNlbmRpZgogICAg
IFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIu
Z2V0KCldOwogICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9zaW5nbGVUYXBHZXN0dXJl
UmVjb2duaXplci5nZXQoKV07CiAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X2hpZ2hs
aWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKQEAgLTE1NjQsNyArMTU2Miw2
IEBAIC0gKHZvaWQpX3dlYlRvdWNoRXZlbnRzUmVjb2duaXplZDooVUlXZWJUb3VjaEV2ZW50c0dl
c3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlCiAgICAgICAgIGlmIChuYXRpdmVXZWJUb3VjaEV2
ZW50LmlzUG90ZW50aWFsVGFwKCkgJiYgc2VsZi5oYXNIaWRkZW5Db250ZW50RWRpdGFibGUgJiYg
c2VsZi5faGFzRm9jdXNlZEVsZW1lbnQgJiYgIXNlbGYud2luZG93LmtleVdpbmRvdykKICAgICAg
ICAgICAgIFtzZWxmLndpbmRvdyBtYWtlS2V5V2luZG93XTsKIAotI2lmIEVOQUJMRShJT1NfVE9V
Q0hfRVZFTlRTKQogICAgICAgICBhdXRvIHN0b3BEZWZlcnJpbmdOYXRpdmVHZXN0dXJlc0lmTmVl
ZGVkID0gW10gKE5TQXJyYXk8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqPiAqZGVmZXJy
aW5nR2VzdHVyZXMpIHsKICAgICAgICAgICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplciAqZ2VzdHVyZSBpbiBkZWZlcnJpbmdHZXN0dXJlcykgewogICAgICAgICAgICAgICAgIGlm
IChnZXN0dXJlLnN0YXRlID09IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZVBvc3NpYmxlKQpAQCAt
MTU3Nyw3ICsxNTc0LDYgQEAgLSAodm9pZClfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOihVSVdl
YlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmUKIAogICAgICAgICBpZiAo
IV9wYWdlLT5pc0hhbmRsaW5nUHJldmVudGFibGVUb3VjaEVuZCgpKQogICAgICAgICAgICAgc3Rv
cERlZmVycmluZ05hdGl2ZUdlc3R1cmVzSWZOZWVkZWQoc2VsZi5fdG91Y2hFbmREZWZlcnJpbmdH
ZXN0dXJlcyk7Ci0jZW5kaWYgLy8gRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgfQogI2Vu
ZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpCiB9CkBAIC0xNzU1LDkgKzE3NTEsMjAgQEAgLSAo
dm9pZClfd2ViVG91Y2hFdmVudDooY29uc3QgV2ViS2l0OjpOYXRpdmVXZWJUb3VjaEV2ZW50Jil0
b3VjaEV2ZW50IHByZXZlbnRzTmEKIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKElPU19UT1VDSF9F
VkVOVFMpCistIChVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXIgKil0b3VjaEV2ZW50
R2VzdHVyZVJlY29nbml6ZXIKK3sKKyAgICByZXR1cm4gX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2du
aXplci5nZXQoKTsKK30KIAotLSAoTlNBcnJheTxXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
ICo+ICopX2RlZmVycmluZ0dlc3R1cmVzCistIChXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyQ29u
c2lzdGVuY3lFbmZvcmNlciYpZ2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyCit7
CisgICAgaWYgKCFfZ2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyKQorICAgICAg
ICBfZ2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyID0gbWFrZVVuaXF1ZTxXZWJL
aXQ6Okdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcj4oc2VsZik7CisKKyAgICBy
ZXR1cm4gKl9nZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI7Cit9CisKKy0gKE5T
QXJyYXk8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqPiAqKWRlZmVycmluZ0dlc3R1cmVz
CiB7CiAgICAgYXV0byBnZXN0dXJlcyA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0
eTo2XTsKICAgICBbZ2VzdHVyZXMgYWRkT2JqZWN0c0Zyb21BcnJheTpzZWxmLl90b3VjaFN0YXJ0
RGVmZXJyaW5nR2VzdHVyZXNdOwpAQCAtMTgxNyw4ICsxODI0LDYgQEAgLSAoQk9PTClfaXNUb3Vj
aEVuZERlZmVycmluZ0dlc3R1cmU6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0
dXJlCiAgICAgICAgIHx8IGdlc3R1cmUgPT0gX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXJGb3JEZWxheWVkUmVzZXR0YWJsZUdlc3R1cmVzOwogfQogCi0jZW5kaWYgLy8gRU5BQkxF
KElPU19UT1VDSF9FVkVOVFMpCi0KIHN0YXRpYyBOU1ZhbHVlICpuc1NpemVGb3JUYXBIaWdobGln
aHRCb3JkZXJSYWRpdXMoV2ViQ29yZTo6SW50U2l6ZSBib3JkZXJSYWRpdXMsIENHRmxvYXQgYm9y
ZGVyUmFkaXVzU2NhbGUpCiB7CiAgICAgcmV0dXJuIFtOU1ZhbHVlIHZhbHVlV2l0aENHU2l6ZTpD
R1NpemVNYWtlKChib3JkZXJSYWRpdXMud2lkdGgoKSAqIGJvcmRlclJhZGl1c1NjYWxlKSArIG1p
bmltdW1UYXBIaWdobGlnaHRSYWRpdXMsIChib3JkZXJSYWRpdXMuaGVpZ2h0KCkgKiBib3JkZXJS
YWRpdXNTY2FsZSkgKyBtaW5pbXVtVGFwSGlnaGxpZ2h0UmFkaXVzKV07CkBAIC0yMjIxLDEyICsy
MjI2LDEwIEBAIHN0YXRpYyBDbGFzcyB0YXBBbmRBSGFsZlJlY29nbml6ZXJDbGFzcygpCiAKIC0g
KEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVj
b2duaXplciBzaG91bGRSZWNvZ25pemVTaW11bHRhbmVvdXNseVdpdGhHZXN0dXJlUmVjb2duaXpl
cjooVUlHZXN0dXJlUmVjb2duaXplciopb3RoZXJHZXN0dXJlUmVjb2duaXplcgogewotI2lmIEVO
QUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplciAqZ2VzdHVyZSBpbiBzZWxmLl9kZWZlcnJpbmdHZXN0dXJlcykgeworICAgIGZvciAoV0tE
ZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLmRlZmVycmluZ0dlc3R1
cmVzKSB7CiAgICAgICAgIGlmIChpc1NhbWVQYWlyKGdlc3R1cmVSZWNvZ25pemVyLCBvdGhlckdl
c3R1cmVSZWNvZ25pemVyLCBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyLmdldCgpLCBnZXN0
dXJlKSkKICAgICAgICAgICAgIHJldHVybiBZRVM7CiAgICAgfQotI2VuZGlmCiAKICAgICBpZiAo
W2dlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplci5jbGFzc10gJiYgW290aGVyR2VzdHVyZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFzczpXS0Rl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmNsYXNzXSkKICAgICAgICAgcmV0dXJuIFlFUzsKQEAg
LTc1NTMsMjMgKzc1NTYsMzEgQEAgLSAodm9pZClfaGlkZVRhcmdldGVkUHJldmlld0NvbnRhaW5l
clZpZXdzCiAKICNwcmFnbWEgbWFyayAtIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJEZWxl
Z2F0ZQogCi0tIChCT09MKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJH
ZXN0dXJlc0FmdGVyQmVnaW5uaW5nVG91Y2hlc1dpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50Cist
IChXZWJLaXQ6OlNob3VsZERlZmVyR2VzdHVyZXMpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6
KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
ciB3aWxsQmVnaW5Ub3VjaGVzV2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQKK3sKKyAgICBzZWxm
Lmdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5iZWdpblRyYWNraW5nKGRlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyKTsKKworICAgIHJldHVybiBbc2VsZiBnZXN0dXJlUmVjb2du
aXplcjpkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBpc0ludGVycnVwdGluZ01vbWVudHVtU2Ny
b2xsaW5nV2l0aEV2ZW50OmV2ZW50XSA/IFdlYktpdDo6U2hvdWxkRGVmZXJHZXN0dXJlczo6Tm8g
OiBXZWJLaXQ6OlNob3VsZERlZmVyR2VzdHVyZXM6OlllczsKK30KKworLSAodm9pZClkZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyIGRpZFRyYW5zaXRpb25Ub1N0YXRlOihVSUdlc3R1cmVSZWNv
Z25pemVyU3RhdGUpc3RhdGUKIHsKLSAgICByZXR1cm4gIVtzZWxmIGdlc3R1cmVSZWNvZ25pemVy
OmRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGlzSW50ZXJydXB0aW5nTW9tZW50dW1TY3JvbGxp
bmdXaXRoRXZlbnQ6ZXZlbnRdOworICAgIGlmIChzdGF0ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVy
U3RhdGVFbmRlZCB8fCBzdGF0ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVGYWlsZWQgfHwg
c3RhdGUgPT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlQ2FuY2VsbGVkKQorICAgICAgICBzZWxm
Lmdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5lbmRUcmFja2luZyhkZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplcik7CiB9CiAKIC0gKHZvaWQpZGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXI6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplciBkaWRFbmRUb3VjaGVzV2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQKIHsKKyAgICBz
ZWxmLmdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5lbmRUcmFja2luZyhkZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplcik7CisKICAgICBpZiAoZGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIuc3RhdGUgIT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlUG9zc2libGUpCiAgICAgICAg
IHJldHVybjsKIAotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIGlmIChfcGFnZS0+
aXNIYW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hTdGFydCgpICYmIFtzZWxmIF9pc1RvdWNoU3RhcnRE
ZWZlcnJpbmdHZXN0dXJlOmRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyXSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgaWYgKF9wYWdlLT5pc0hhbmRsaW5nUHJldmVudGFibGVUb3VjaEVuZCgpICYm
IFtzZWxmIF9pc1RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZTpkZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplcl0pCiAgICAgICAgIHJldHVybjsKLSNlbmRpZgogCiAgICAgaWYgKFtfdG91Y2hFdmVudEdl
c3R1cmVSZWNvZ25pemVyIHN0YXRlXSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVQb3NzaWJs
ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNzU4Miw3ICs3NTkzLDYgQEAgLSAodm9pZClkZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVy
cmluZ0dlc3QKIAogLSAoQk9PTClkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHNob3VsZERl
ZmVyT3RoZXJHZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVS
ZWNvZ25pemVyCiB7Ci0jaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgaWYgKFtfd2Vi
VmlldyBfaXNOYXZpZ2F0aW9uU3dpcGVHZXN0dXJlUmVjb2duaXplcjpnZXN0dXJlUmVjb2duaXpl
cl0pCiAgICAgICAgIHJldHVybiBOTzsKIApAQCAtNzY1MSwxMSArNzY2MSw2IEBAIC0gKEJPT0wp
ZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIg
KilkZWZlcnJpbmdHZXN0CiAgICAgICAgIHJldHVybiBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
ciA9PSBfdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJlc2V0
dGFibGVHZXN0dXJlczsKIAogICAgIHJldHVybiBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciA9
PSBfdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRpYXRlbHlSZXNl
dHRhYmxlR2VzdHVyZXM7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShkZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplcik7Ci0gICAgVU5VU0VEX1BBUkFNKGdlc3R1cmVSZWNvZ25pemVyKTsKLSAgICBy
ZXR1cm4gTk87Ci0jZW5kaWYKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXIuaAppbmRleCA1NzYwYzc0YzFkYzgxZWFjOWJmOTcwZDFmNmFiNmMzZmNkMTYxMjRl
Li4wZjNiNTJiOTVlN2M3OTNjMmFjY2ZkOGM4MmUyZDhmZWZhMzI0ZjE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyLmgKQEAgLTI3LDEyICsyNywxOSBAQAogCiAjaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgog
CituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBjbGFzcyBTaG91bGREZWZlckdlc3R1cmVzIDog
Ym9vbCB7IE5vLCBZZXMgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKIEBjbGFzcyBXS0Rl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOwogCiBAcHJvdG9jb2wgV0tEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplckRlbGVnYXRlCi0tIChCT09MKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihX
S0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIg
c2hvdWxkRGVmZXJHZXN0dXJlc0FmdGVyQmVnaW5uaW5nVG91Y2hlc1dpdGhFdmVudDooVUlFdmVu
dCAqKWV2ZW50OwotLSAoQk9PTClkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGRpZEVuZFRv
dWNoZXNXaXRoRXZlbnQ6KFVJRXZlbnQgKilldmVudDsKIC0gKEJPT0wpZGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplciBzaG91bGREZWZlck90aGVyR2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVy
ZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcjsKKy0gKFdlYktpdDo6U2hvdWxkRGVmZXJH
ZXN0dXJlcylkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplciAqKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHdpbGxCZWdpblRvdWNoZXNXaXRo
RXZlbnQ6KFVJRXZlbnQgKilldmVudDsKKy0gKHZvaWQpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXI6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplciBkaWRFbmRUb3VjaGVzV2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQ7CistICh2b2lkKWRl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICop
ZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgZGlkVHJhbnNpdGlvblRvU3RhdGU6KFVJR2VzdHVy
ZVJlY29nbml6ZXJTdGF0ZSlzdGF0ZTsKIEBlbmQKIAogQGludGVyZmFjZSBXS0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyIDogVUlHZXN0dXJlUmVjb2duaXplcgpAQCAtNDEsOCArNDgsNiBAQAog
LSAodm9pZClzZXREZWZhdWx0UHJldmVudGVkOihCT09MKWRlZmF1bHRQcmV2ZW50ZWQ7CiAtIChC
T09MKXNob3VsZERlZmVyR2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKiln
ZXN0dXJlUmVjb2duaXplcjsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHJlYWRvbmx5
KSBpZCA8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlPiBkZWZlcnJpbmdHZXN0
dXJlRGVsZWdhdGU7Ci0KIEBlbmQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyLm1tCmluZGV4IGVkNmVmZTZjM2UwYWE5ZjY2OTQ1YzEyZDcyYjk1ZGIx
ZjEyZTI2YjAuLjhlNjU1ZDc2ZGUzNGFmODViYWQ3MDUwNDIzMTgxYTVmNDhmOTg5N2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyLm1tCkBAIC00MSwxOCArNDEsMTMgQEAgLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoRGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlOihpZCA8V0tEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXoKICAgICByZXR1cm4gc2VsZjsKIH0KIAotLSAoaWQgPFdLRGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXJEZWxlZ2F0ZT4pZGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlCi17Ci0gICAgcmV0dXJu
IF9kZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGUuZ2V0KCkuZ2V0KCk7Ci19Ci0KIC0gKHZvaWQpdG91
Y2hlc0JlZ2FuOihOU1NldDxVSVRvdWNoICo+ICopdG91Y2hlcyB3aXRoRXZlbnQ6KFVJRXZlbnQg
KilldmVudAogeworICAgIGF1dG8gc2hvdWxkRGVmZXJHZXN0dXJlcyA9IFtfZGVmZXJyaW5nR2Vz
dHVyZURlbGVnYXRlIGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOnNlbGYgd2lsbEJlZ2luVG91
Y2hlc1dpdGhFdmVudDpldmVudF07CiAgICAgW3N1cGVyIHRvdWNoZXNCZWdhbjp0b3VjaGVzIHdp
dGhFdmVudDpldmVudF07Ci0gICAgaWYgKFtfZGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlIGRlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyOnNlbGYgc2hvdWxkRGVmZXJHZXN0dXJlc0FmdGVyQmVnaW5u
aW5nVG91Y2hlc1dpdGhFdmVudDpldmVudF0pCi0gICAgICAgIHJldHVybjsKIAotICAgIHNlbGYu
c3RhdGUgPSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVGYWlsZWQ7CisgICAgaWYgKHNob3VsZERl
ZmVyR2VzdHVyZXMgPT0gV2ViS2l0OjpTaG91bGREZWZlckdlc3R1cmVzOjpObykKKyAgICAgICAg
c2VsZi5zdGF0ZSA9IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZUZhaWxlZDsKIH0KIAogLSAodm9p
ZCl0b3VjaGVzRW5kZWQ6KE5TU2V0PFVJVG91Y2ggKj4gKil0b3VjaGVzIHdpdGhFdmVudDooVUlF
dmVudCAqKWV2ZW50CkBAIC04Niw2ICs4MSwxNSBAQCAtIChCT09MKXNob3VsZERlZmVyR2VzdHVy
ZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgogICAg
IHJldHVybiBbX2RlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZSBkZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplcjpzZWxmIHNob3VsZERlZmVyT3RoZXJHZXN0dXJlUmVjb2duaXplcjpnZXN0dXJlUmVjb2du
aXplcl07CiB9CiAKKy0gKHZvaWQpc2V0U3RhdGU6KFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZSlz
dGF0ZQoreworICAgIGF1dG8gcHJldmlvdXNTdGF0ZSA9IHNlbGYuc3RhdGU7CisgICAgW3N1cGVy
IHNldFN0YXRlOnN0YXRlXTsKKworICAgIGlmIChwcmV2aW91c1N0YXRlICE9IHNlbGYuc3RhdGUp
CisgICAgICAgIFtfZGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlIGRlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyOnNlbGYgZGlkVHJhbnNpdGlvblRvU3RhdGU6c3RhdGVdOworfQorCiBAZW5kCiAKICNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzhkMDAzMjBmNTQ1MDMzMmFmZGNhOTA3ZGFh
NTEyYmY4MmY5NmJkNS4uNzc3MDU1MWYxYzU0N2MxNWM0ZmRjOGIzYWMyYWE2MjI1ODk4MjUwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0yMDExLDYgKzIwMTEsNyBAQAogCQlGNEE2RDZCQzI1NENBM0U5MDBCNjVGQUEgLyogU2hhcmVk
RGlzcGxheUxpc3RIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0QTZENkJCMjU0Q0EzRTkwMEI2NUZBQSAvKiBTaGFyZWREaXNwbGF5TGlzdEhh
bmRsZS5oICovOyB9OwogCQlGNEJBMzNGMjI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUV4dHJh
Y3Rpb25HZXN0dXJlUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjRCQTMzRjAyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VFeHRyYWN0
aW9uR2VzdHVyZVJlY29nbml6ZXIuaCAqLzsgfTsKIAkJRjRDQjA5RTUyMjVENUEwOTAwODkxNDg3
IC8qIFdlYnNpdGVNZWRpYVNvdXJjZVBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjRDQjA5RTQyMjVENUEwMzAwODkxNDg3IC8qIFdlYnNpdGVN
ZWRpYVNvdXJjZVBvbGljeS5oICovOyB9OworCQlGNENGMUU5RDI1RTQwRENDMDAwRjlENzMgLyog
R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNENGMUU5QjI1RTQwRENDMDAwRjlENzMgLyog
R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmggKi87IH07CiAJCUY0RDVGNTFE
MjA2MDg3QTEwMDM4QkJBOCAvKiBXS1RleHRJbnB1dExpc3RWaWV3Q29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRENUY1MTkyMDYwODdB
MDAwMzhCQkE4IC8qIFdLVGV4dElucHV0TGlzdFZpZXdDb250cm9sbGVyLmggKi87IH07CiAJCUY0
RDVGNTFGMjA2MDg3QTEwMDM4QkJBOCAvKiBXS1F1aWNrYm9hcmRMaXN0Vmlld0NvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDVGNTFC
MjA2MDg3QTEwMDM4QkJBOCAvKiBXS1F1aWNrYm9hcmRMaXN0Vmlld0NvbnRyb2xsZXIuaCAqLzsg
fTsKIAkJRjREQjU0RTYyMzE5RTczMzAwOUUzMTU1IC8qIFdLSGlnaGxpZ2h0TG9uZ1ByZXNzR2Vz
dHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0REI1NEU0MjMxOUU3MzMwMDlFMzE1NSAvKiBXS0hpZ2hsaWdodExvbmdQcmVzc0dl
c3R1cmVSZWNvZ25pemVyLmggKi87IH07CkBAIC01ODg4LDYgKzU4ODksOCBAQAogCQlGNEJBMzNG
MDI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmg7IHBh
dGggPSBpb3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNEJBMzNGMTI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUV4
dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLSW1h
Z2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIubW07IHBhdGggPSBpb3MvV0tJbWFnZUV4dHJh
Y3Rpb25HZXN0dXJlUmVjb2duaXplci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjRDQjA5RTQyMjVENUEwMzAwODkxNDg3IC8qIFdlYnNpdGVNZWRpYVNvdXJjZVBvbGljeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJzaXRlTWVkaWFTb3VyY2VQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjRDRjFFOUIyNUU0MERDQzAwMEY5RDczIC8qIEdlc3R1cmVSZWNvZ25p
emVyQ29uc2lzdGVuY3lFbmZvcmNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaDsgcGF0aCA9IGlvcy9HZXN0
dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRjRDRjFFOUMyNUU0MERDQzAwMEY5RDczIC8qIEdlc3R1cmVSZWNvZ25pemVyQ29u
c2lzdGVuY3lFbmZvcmNlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFt
ZSA9IEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5tbTsgcGF0aCA9IGlvcy9H
ZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY0RDVGNTE5MjA2MDg3QTAwMDM4QkJBOCAvKiBXS1RleHRJbnB1dExpc3RW
aWV3Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1RleHRJ
bnB1dExpc3RWaWV3Q29udHJvbGxlci5oOyBwYXRoID0gaW9zL2Zvcm1zL1dLVGV4dElucHV0TGlz
dFZpZXdDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDVGNTFB
MjA2MDg3QTEwMDM4QkJBOCAvKiBXS1RleHRJbnB1dExpc3RWaWV3Q29udHJvbGxlci5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLVGV4dElucHV0TGlzdFZpZXdD
b250cm9sbGVyLm1tOyBwYXRoID0gaW9zL2Zvcm1zL1dLVGV4dElucHV0TGlzdFZpZXdDb250cm9s
bGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ1RjUxQjIwNjA4N0ExMDAz
OEJCQTggLyogV0tRdWlja2JvYXJkTGlzdFZpZXdDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFdLUXVpY2tib2FyZExpc3RWaWV3Q29udHJvbGxlci5oOyBwYXRo
ID0gaW9zL2Zvcm1zL1dLUXVpY2tib2FyZExpc3RWaWV3Q29udHJvbGxlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNzU4Miw2ICs3NTg1LDggQEAKIAkJCQlGNDk2QTQzMDFGNThB
MjcyMDA0QzE3NTcgLyogRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLm1tICovLAogCQkJCUNEQ0RD
OTlCMjQ4RkU4REEwMEE2OTUyMiAvKiBFbmRvd21lbnRTdGF0ZVRyYWNrZXIuaCAqLywKIAkJCQlD
RENEQzk5QzI0OEZFOERBMDBBNjk1MjIgLyogRW5kb3dtZW50U3RhdGVUcmFja2VyLm1tICovLAor
CQkJCUY0Q0YxRTlCMjVFNDBEQ0MwMDBGOUQ3MyAvKiBHZXN0dXJlUmVjb2duaXplckNvbnNpc3Rl
bmN5RW5mb3JjZXIuaCAqLywKKwkJCQlGNENGMUU5QzI1RTQwRENDMDAwRjlENzMgLyogR2VzdHVy
ZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLm1tICovLAogCQkJCTJERDQ1QURDMUU1Rjg5
NzIwMDZDMzU1RiAvKiBJbnB1dFZpZXdVcGRhdGVEZWZlcnJlci5oICovLAogCQkJCTJERDQ1QURE
MUU1Rjg5NzIwMDZDMzU1RiAvKiBJbnB1dFZpZXdVcGRhdGVEZWZlcnJlci5tbSAqLywKIAkJCQkw
RkNCNEUzNjE4QkJFMDQ0MDAwRkNGQzkgLyogUGFnZUNsaWVudEltcGxJT1MuaCAqLywKQEAgLTEx
NzQ3LDYgKzExNzUyLDcgQEAKIAkJCQlCQzA2RjQyRjEyREJCOUI2MDAyRDc4REUgLyogR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDZG
NDRBMTJEQkQxRjUwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzA2RjQzQTEyREJDQ0ZCMDAyRDc4REUgLyog
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQlG
NENGMUU5RDI1RTQwRENDMDAwRjlENzMgLyogR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVu
Zm9yY2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREE5NDRBNDE4ODRFNEYwMDBFRDg2REIgLyog
R2VzdHVyZVR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDBCQkI0MTI1N0ZGNDZFMDA2NzQ2
M0EgLyogR1BVUHJvY2Vzc1dha2V1cE1lc3NhZ2VBcmd1bWVudHMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTJEQTA0OUI4MTgwQ0NEMEEwMEFBRkE5RSAvKiBHcmFwaGljc0xheWVyQ0FSZW1vdGUuaCBp
biBIZWFkZXJzICovLAo=
</data>
<flag name="commit-queue"
          id="440044"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421241</attachid>
            <date>2021-02-22 14:43:12 -0800</date>
            <delta_ts>2021-02-22 19:16:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222216-20210222144311.patch</filename>
            <type>text/plain</type>
            <size>34028</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk1NjUxZGI3ZjU2YzhjZjQx
MjBmNTk3ZmM0YWVlOTJmM2FkZDljYjUuLjg5OTMxOGJjZmU3NDZiMzhiMjkxZGNkYzdlMzA4YmRk
YzQ0NjI4MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODcgQEAKKzIwMjEtMDItMjIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRkIGEgd2F0
Y2hkb2cgdGltZXIgdG8gZm9yY2libHkgcmVzZXQgZGVmZXJyaW5nIGdlc3R1cmUgcmVjb2duaXpl
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjIx
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
IG1lY2hhbmlzbSB0byBkZXRlY3QgYW5kIHJlc29sdmUgc2l0dWF0aW9ucyB3aGVyZSBhdCBsZWFz
dCBvbmUgZGVmZXJyaW5nIGdlc3R1cmUgcmVjb2duaXplcgorICAgICAgICAoYFdLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXJgKSBpcyBzdHVjayBpbiBQb3NzaWJsZSBzdGF0ZSBhZnRlciBlbmRp
bmcgdG91Y2hlcywgYnV0IHRoZSB0b3VjaCBldmVudCBnZXN0dXJlCisgICAgICAgIHJlY29nbml6
ZXIgaXMgdW5hYmxlIHRvIGJlIHJlc2V0IChpLmUuIG5laXRoZXIgcG9zc2libGUgb3IgcmVjb2du
aXppbmcpLiBUaGlzIHN0YXRlIGlzIGluZGljYXRpdmUgb2YgYSBnZW5lcmFsCisgICAgICAgIGNs
YXNzIG9mIGJ1Z3MgcmVnYXJkaW5nIG5hdGl2ZSBnZXN0dXJlIGRlZmVycmFsLCB3aGVyZWluIG91
ciAiZ2VzdHVyZSBnYXRlcyIgbmV2ZXIgZW5kIHVwIGJlaW5nIGxpZnRlZCBhZnRlcgorICAgICAg
ICBlbmRpbmcgYWxsIHRvdWNoZXMgaW4gdGhlIHZpZXcuIE9uZSBzdWNoIGV4YW1wbGUgb2YgdGhp
cyB0eXBlIG9mIGJ1ZyB3YXMgZml4ZWQgaW4gcjI3MjU4NCwgd2hlcmUgYWxsIGludGVyYWN0aW9u
CisgICAgICAgICh0b3VjaCBldmVudHMsIHNjcm9sbGluZywgdGFwcGluZykgZHVlIHRvIHRoZSB0
b3VjaCBlbmQgZGVmZXJyZXJzIG5ldmVyIGV4aXRpbmcgUG9zc2libGUgc3RhdGUgYWZ0ZXIgbG9u
ZworICAgICAgICBwcmVzc2luZyB0byBwcmVzZW50IGEgY29udGV4dCBtZW51LgorCisgICAgICAg
IFRvIG1ha2UgdGhlc2Uga2luZHMgb2YgYnVncyBib3RoIGVhc2llciB0byBkaWFnbm9zZSBhbmQg
bGVzcyBmYXRhbCBpbiB0aGUgZnV0dXJlLCB3ZSBpbnRyb2R1Y2UgYSB3YXRjaGRvZyB0aW1lcgor
ICAgICAgICB0aGF0IGRpc3BhdGNoZXMgYWZ0ZXIgZW5kaW5nIGFsbCB0b3VjaGVzIG9uIHRoZSBj
b250ZW50IHZpZXcsIGFuZCBjaGVja3MgdGhlIGNvbnNpc3RlbmN5IG9mIGRlZmVycmluZyBnZXN0
dXJlCisgICAgICAgIHJlY29nbml6ZXJzIGluIHRoZSB2aWV3OyBpZiB3ZSBkZXRlY3Qgc3R1Y2sg
ZGVmZXJyaW5nIGdlc3R1cmVzLCB3ZSBoYW5kbGUgdGhpcyBieSBmb3JjaWJseSByZXNldHRpbmcg
dGhlIHN0dWNrCisgICAgICAgIGRlZmVycmluZyBnZXN0dXJlcyBhbmQgbG9nZ2luZyBhIGZhdWx0
IG1lc3NhZ2UuCisKKyAgICAgICAgSSBtYW51YWxseSB2ZXJpZmllZCB0aGlzIGNoYW5nZSBieSBy
ZXZlcnRpbmcgbXkgZml4IGZvciB0aGUgYWZvcmVtZW50aW9uZWQgYnVnIChyMjcyNTg0KSwgYW5k
IG9ic2VydmluZyBib3RoICgxKQorICAgICAgICBhIHN5c3RlbSBsb2cgZmF1bHQgbWVzc2FnZSwg
YW5kICgyKSB0aGF0IGludGVyYWN0aW9ucyBjb250aW51ZWQgdG8gd29yayBldmVuIHdpdGhvdXQg
dGhlIGZpeCBpbiByMjcyNTg0LCBhZnRlcgorICAgICAgICB0aGUgd2F0Y2hkb2cgdGltZXIgZmly
ZWQuIFNlZSBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogU291cmNlc0NvY29h
LnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL0dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVu
Y3lFbmZvcmNlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tE
ZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvR2Vz
dHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLm1tOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyOjpHZXN0dXJlUmVjb2du
aXplckNvbnNpc3RlbmN5RW5mb3JjZXIpOgorICAgICAgICAoV2ViS2l0OjpHZXN0dXJlUmVjb2du
aXplckNvbnNpc3RlbmN5RW5mb3JjZXI6OmJlZ2luVHJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0
OjpHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI6OmVuZFRyYWNraW5nKToKKyAg
ICAgICAgKFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyOjpyZXNl
dCk6CisgICAgICAgIChXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNl
cjo6dGltZXJGaXJlZCk6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIGNsYXNzIHRoYXQgd3JhcHMg
YSBgUnVuTG9vcDo6VGltZXJgIGZvciB0aGUgbWFpbiBydW5sb29wLCBhbmQgc2NoZWR1bGVzIGEg
MSBzZWNvbmQgdGltZXIgYWZ0ZXIgYWxsCisgICAgICAgIGRlZmVycmluZyBnZXN0dXJlcyBoYXZl
IGVuZGVkOyBhc3N1bWluZyBubyBuZXcgdG91Y2hlcyBiZWdpbiBhZnRlciB0aGlzIHRpbWVyIGlz
IHNjaGVkdWxlZCwgd2UnbGwgcGVyZm9ybSBhCisgICAgICAgIGNvbnNpc3RlbmN5IGNoZWNrIG92
ZXIgdGhlIGNvbnRlbnQgdmlldydzIGdlc3R1cmVzIGFuZCBwZXJmb3JtIGEgbG9nIGZhdWx0IGFu
ZCBmb3JjZSBkZWZlcnJpbmcgZ2VzdHVyZXMgdG8gZW5kCisgICAgICAgIGlmIG5lZWRlZC4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgc2V0VXBJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IGNsZWFuVXBJbnRlcmFjdGlvbl0pOgorCisgICAgICAgIE1ha2Ugc3VyZSB0aGF0IHdl
IHJlc2V0IGFueSBleHRhbnQgYEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcmAg
aWYgdGhlIHdlYiBwcm9jZXNzIGNyYXNoZXMuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBf
cmVtb3ZlRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVyc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IF9hZGREZWZhdWx0R2VzdHVyZVJlY29nbml6ZXJzXSk6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgX3dlYlRvdWNoRXZlbnRzUmVjb2duaXplZDpdKToKKworICAgICAgICBBZGp1c3QgYSBm
ZXcgY29tcGlsZS10aW1lIGd1YXJkcyBzbyB0aGF0IGRlZmVycmluZyBnZXN0dXJlIHJlY29nbml6
ZXJzIGV4aXN0IG9uIHRoZSB2aWV3LCBldmVuIGlmCisgICAgICAgIGBFTkFCTEVfSU9TX1RPVUNI
X0VWRU5UU2AgaXMgb2ZmLiBUaGlzIG1ha2VzIHNvbWUgb2YgdGhlIGdlc3R1cmUgZGVmZXJyYWwg
Y29kZSB0aHJvdWdob3V0IHRoaXMgZmlsZSBlYXNpZXIgdG8KKyAgICAgICAgcmVhc29uIGFib3V0
IGluIG5vbi1pbnRlcm5hbCBpT1MgYnVpbGRzLCBzaW5jZSB3ZSBkb24ndCBuZWVkIHRvIHNwcmlu
a2xlIGFzIG1hbnkgYEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKWAKKyAgICAgICAgY2hlY2tzIHRo
cm91Z2hvdXQgdGhpcyBjbGFzcy4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHRvdWNoRXZl
bnRHZXN0dXJlUmVjb2duaXplcl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGdlc3R1cmVS
ZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IGRlZmVycmluZ0dlc3R1cmVzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZ2VzdHVyZVJl
Y29nbml6ZXI6c2hvdWxkUmVjb2duaXplU2ltdWx0YW5lb3VzbHlXaXRoR2VzdHVyZVJlY29nbml6
ZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXI6d2lsbEJlZ2luVG91Y2hlc1dpdGhFdmVudDpdKToKKworICAgICAgICBSZWZhY3RvciBgLWRl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOnNob3VsZERlZmVyR2VzdHVyZXNBZnRlckJlZ2lubmlu
Z1RvdWNoZXNXaXRoRXZlbnQ6YCBzbyB0aGF0IGl0IHJldHVybnMgYW4KKyAgICAgICAgZW51bSBm
bGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgZ2l2ZW4gZ2VzdHVyZSBzaG91bGQgYmUgYWxsb3dl
ZCB0byBiZWdpbiBkZWZlcnJpbmcgbmF0aXZlIGdlc3R1cmVzOyBieSBtYWtpbmcKKyAgICAgICAg
dGhpcyBgLWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOndpbGxCZWdpblRvdWNoZXNXaXRoRXZl
bnQ6YCwgd2UgY2FuIG5vdyBwdXQgc3RhdGUgbWFuYWdlbWVudCBsb2dpYyBoZXJlIHRoYXQncwor
ICAgICAgICByZXNwb25zaWJsZSBmb3IgdXBkYXRpbmcgdGhlIGBHZXN0dXJlUmVjb2duaXplckNv
bnNpc3RlbmN5RW5mb3JjZXJgLgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXI6ZGlkVHJhbnNpdGlvblRvU3RhdGU6XSk6CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6ZGlkRW5kVG91Y2hlc1dpdGhF
dmVudDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplcjpzaG91bGREZWZlck90aGVyR2VzdHVyZVJlY29nbml6ZXI6XSk6CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgX2RlZmVycmluZ0dlc3R1cmVzXSk6IERlbGV0ZWQuCisKKyAgICAgICAgUmVu
YW1lIHRoaXMgdG8gYC1kZWZlcnJpbmdHZXN0dXJlc2AgYW5kIGV4cG9zZSBpdCBhcyBhIHJlYWRv
bmx5IHByb3BlcnR5LCBmb3IgdXNlIGJ5IHRoZQorICAgICAgICBgR2VzdHVyZVJlY29nbml6ZXJD
b25zaXN0ZW5jeUVuZm9yY2VyYC4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyOnNob3VsZERlZmVyR2VzdHVyZXNBZnRlckJlZ2lubmluZ1RvdWNo
ZXNXaXRoRXZlbnQ6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0RlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0RlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyLm1tOgorICAgICAgICAoLVtXS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyIHRvdWNoZXNCZWdhbjp3aXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dLRGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXIgc2V0U3RhdGU6XSk6CisKKyAgICAgICAgQWRkIGEgZGVsZWdh
dGUgaG9vayB0byBpbmZvcm0gYFdLQ29udGVudFZpZXdgIHdoZW4gdGhlIGdlc3R1cmUgcmVjb2du
aXplciBzdGF0ZSBjaGFuZ2VzLgorCisgICAgICAgICgtW1dLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIgZGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlXSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMDItMjAgIEJyZW50IEZ1bGdo
YW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBVcGRhdGUgV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzTWFjIHdpdGggc29tZSBuZXcgYWRkaXRpb25zCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKaW5kZXggZTVkYjZjMTk3NTQ1YTE5YTFlZWViZWNlMTFiMmM0NTg4ZDliNDIzNy4uYjFj
ZTVhM2RjMjk5ZTEwNWJjMWNhMDcxYWRhMzdjYTVhYzk3ZGFhZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dApAQCAtNDU4LDYgKzQ1OCw3IEBAIFVJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tCiAKIFVJUHJvY2Vzcy9pb3MvQXBwS2l0U29mdExp
bmsubW0KIFVJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLm1tCitVSVByb2Nl
c3MvaW9zL0dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5tbQogVUlQcm9jZXNz
L2lvcy9JbnB1dFZpZXdVcGRhdGVEZWZlcnJlci5tbQogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5tbQogVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0
ZW5jeUVuZm9yY2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvR2VzdHVyZVJlY29n
bml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWZjM2RiZTkxZGE1OTlmNTg4
OWUwZDU4ODE3MDJhYWYyM2RkMzQwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9HZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaApAQCAt
MCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQgPHd0Zi9G
YXN0TWFsbG9jLmg+CisjaW1wb3J0IDx3dGYvTm9uY29weWFibGUuaD4KKyNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvV2Vha09i
akNQdHIuaD4KKworQGNsYXNzIFdLQ29udGVudFZpZXc7CitAY2xhc3MgV0tEZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplcjsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEdlc3R1cmVSZWNv
Z25pemVyQ29uc2lzdGVuY3lFbmZvcmNlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVu
Zm9yY2VyKTsKK3B1YmxpYzoKKyAgICBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3Jj
ZXIoV0tDb250ZW50VmlldyAqKTsKKyAgICB+R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVu
Zm9yY2VyKCk7CisKKyAgICB2b2lkIGJlZ2luVHJhY2tpbmcoV0tEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplciAqKTsKKyAgICB2b2lkIGVuZFRyYWNraW5nKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIgKik7CisKKyAgICB2b2lkIHJlc2V0KCk7CisKK3ByaXZhdGU6CisgICAgdm9pZCB0aW1l
ckZpcmVkKCk7CisKKyAgICBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PiBtX3ZpZXc7CisgICAg
UnVuTG9vcDo6VGltZXI8R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyPiBtX3Rp
bWVyOworICAgIEhhc2hTZXQ8UmV0YWluUHRyPFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI+
PiBtX2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyc1dpdGhUb3VjaGVzOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL0dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44NzQ5NzkxOWEzYTc1NjczOWFmZGMxMDIxZDgzYWUxZmYxNThlNzM0Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL0dlc3R1cmVSZWNvZ25pemVy
Q29uc2lzdGVuY3lFbmZvcmNlci5tbQpAQCAtMCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5m
b3JjZXIuaCIKKworI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitHZXN0dXJlUmVjb2duaXplckNv
bnNpc3RlbmN5RW5mb3JjZXI6Okdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcihX
S0NvbnRlbnRWaWV3ICp2aWV3KQorICAgIDogbV92aWV3KHZpZXcpCisgICAgLCBtX3RpbWVyKFJ1
bkxvb3A6Om1haW4oKSwgdGhpcywgJkdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNl
cjo6dGltZXJGaXJlZCkKK3sKKyAgICBBU1NFUlQobV92aWV3KTsKK30KKworR2VzdHVyZVJlY29n
bml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyOjp+R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVu
Zm9yY2VyKCkgPSBkZWZhdWx0OworCit2b2lkIEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lF
bmZvcmNlcjo6YmVnaW5UcmFja2luZyhXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0
dXJlKQoreworICAgIG1fdGltZXIuc3RvcCgpOworICAgIG1fZGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXJzV2l0aFRvdWNoZXMuYWRkKGdlc3R1cmUpOworfQorCit2b2lkIEdlc3R1cmVSZWNvZ25p
emVyQ29uc2lzdGVuY3lFbmZvcmNlcjo6ZW5kVHJhY2tpbmcoV0tEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplciAqZ2VzdHVyZSkKK3sKKyAgICBpZiAoIW1fZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXJzV2l0aFRvdWNoZXMucmVtb3ZlKGdlc3R1cmUpKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAobV9kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcnNXaXRoVG91Y2hlcy5pc0VtcHR5KCkpCisg
ICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDFfcyk7Cit9CisKK3ZvaWQgR2VzdHVyZVJlY29n
bml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyOjpyZXNldCgpCit7CisgICAgbV90aW1lci5zdG9wKCk7
CisgICAgbV9kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcnNXaXRoVG91Y2hlcy5jbGVhcigpOwor
fQorCit2b2lkIEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcjo6dGltZXJGaXJl
ZCgpCit7CisgICAgaWYgKCFtX3ZpZXcpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gc3Ry
b25nVmlldyA9IG1fdmlldy5nZXQoKTsKKyAgICBhdXRvIHBvc3NpYmxlRGVmZXJyaW5nR2VzdHVy
ZXMgPSBbTlNNdXRhYmxlQXJyYXk8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqPiBhcnJh
eV07CisgICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGluIFtz
dHJvbmdWaWV3IGRlZmVycmluZ0dlc3R1cmVzXSkgeworICAgICAgICBpZiAoZ2VzdHVyZS5zdGF0
ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVQb3NzaWJsZSkKKyAgICAgICAgICAgIFtwb3Nz
aWJsZURlZmVycmluZ0dlc3R1cmVzIGFkZE9iamVjdDpnZXN0dXJlXTsKKyAgICB9CisKKyAgICBp
ZiAoIXBvc3NpYmxlRGVmZXJyaW5nR2VzdHVyZXMuY291bnQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGF1dG8gdG91Y2hFdmVudFN0YXRlID0gW3N0cm9uZ1ZpZXcgdG91Y2hFdmVudEdlc3R1cmVS
ZWNvZ25pemVyXS5zdGF0ZTsKKyAgICBpZiAodG91Y2hFdmVudFN0YXRlID09IFVJR2VzdHVyZVJl
Y29nbml6ZXJTdGF0ZVBvc3NpYmxlIHx8IHRvdWNoRXZlbnRTdGF0ZSA9PSBVSUdlc3R1cmVSZWNv
Z25pemVyU3RhdGVCZWdhbiB8fCB0b3VjaEV2ZW50U3RhdGUgPT0gVUlHZXN0dXJlUmVjb2duaXpl
clN0YXRlQ2hhbmdlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChXS0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGluIHBvc3NpYmxlRGVmZXJyaW5nR2VzdHVyZXMpCisg
ICAgICAgIFtnZXN0dXJlIHNldFN0YXRlOlVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZUVuZGVkXTsK
KworICAgIFJFTEVBU0VfTE9HX0ZBVUxUKFZpZXdHZXN0dXJlcywgIlRvdWNoIGV2ZW50IGdlc3R1
cmUgcmVjb2duaXplciBmYWlsZWQgdG8gcmVzZXQgYWZ0ZXIgZW5kaW5nIGdlc3R1cmUgZGVmZXJy
YWw6ICVAIiwgcG9zc2libGVEZWZlcnJpbmdHZXN0dXJlcyk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IGE1YTI5ZjFjMjk2YmY0YWU1ODM5N2UyNjhiODcxY2Zk
MTNkYjczZWUuLjdhNDNlZTg5YjA0M2E3Y2NkMzA1NTNiNTM0NTI5OTI4MTM4NzIyZTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgIkVkaXRvclN0YXRlLmgiCiAjaW1w
b3J0ICJGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmgiCiAjaW1wb3J0ICJGcmFtZUluZm9EYXRh
LmgiCisjaW1wb3J0ICJHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaCIKICNp
bXBvcnQgIkdlc3R1cmVUeXBlcy5oIgogI2ltcG9ydCAiSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24uaCIKICNpbXBvcnQgIlBhc3RlYm9hcmRBY2Nlc3NJbnRlbnQuaCIKQEAgLTI1NSwx
NCArMjU2LDEzIEBAIHByaXZhdGU6CiBAZW5kCiAKIEBpbnRlcmZhY2UgV0tDb250ZW50VmlldyAo
KSB7Ci0jaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgUmV0YWluUHRyPFdLRGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaFN0YXJ0RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXJGb3JJbW1lZGlhdGVseVJlc2V0dGFibGVHZXN0dXJlczsKICAgICBSZXRhaW5QdHI8V0tEZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoU3RhcnREZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplckZvckRlbGF5ZWRSZXNldHRhYmxlR2VzdHVyZXM7CiAgICAgUmV0YWluUHRyPFdLRGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaFN0YXJ0RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXJGb3JTeW50aGV0aWNUYXBHZXN0dXJlczsKICAgICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplcj4gX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJbW1l
ZGlhdGVseVJlc2V0dGFibGVHZXN0dXJlczsKICAgICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplcj4gX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JEZWxh
eWVkUmVzZXR0YWJsZUdlc3R1cmVzOwogICAgIFJldGFpblB0cjxXS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyPiBfdG91Y2hFbmREZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvclN5bnRoZXRp
Y1RhcEdlc3R1cmVzOwotI2VuZGlmCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6R2VzdHVy
ZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyPiBfZ2VzdHVyZVJlY29nbml6ZXJDb25zaXN0
ZW5jeUVuZm9yY2VyOwogICAgIFJldGFpblB0cjxVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29n
bml6ZXI+IF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXI7CiAKICAgICBCT09MIF90b3VjaEV2
ZW50c0NhblByZXZlbnROYXRpdmVHZXN0dXJlczsKQEAgLTQ5OSw3ICs0OTksNyBAQCBwcml2YXRl
OgogCiBAZW5kCiAKLUBpbnRlcmZhY2UgV0tDb250ZW50VmlldyAoV0tJbnRlcmFjdGlvbikgPFVJ
R2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZSwgVUlUZXh0QXV0b3Njcm9sbGluZywgVUlUZXh0SW5w
dXRNdWx0aURvY3VtZW50LCBVSVRleHRJbnB1dFByaXZhdGUsIFVJV2ViRm9ybUFjY2Vzc29yeURl
bGVnYXRlLCBVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZSwgVUlXS0lu
dGVyYWN0aW9uVmlld1Byb3RvY29sLCBXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVsZWdhdGUsIFdL
RmlsZVVwbG9hZFBhbmVsRGVsZWdhdGUsIFdLS2V5Ym9hcmRTY3JvbGxWaWV3QW5pbWF0b3JEZWxl
Z2F0ZSwgV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlCitAaW50ZXJmYWNlIFdL
Q29udGVudFZpZXcgKFdLSW50ZXJhY3Rpb24pIDxVSUdlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUs
IFVJVGV4dEF1dG9zY3JvbGxpbmcsIFVJVGV4dElucHV0TXVsdGlEb2N1bWVudCwgVUlUZXh0SW5w
dXRQcml2YXRlLCBVSVdlYkZvcm1BY2Nlc3NvcnlEZWxlZ2F0ZSwgVUlXZWJUb3VjaEV2ZW50c0dl
c3R1cmVSZWNvZ25pemVyRGVsZWdhdGUsIFVJV0tJbnRlcmFjdGlvblZpZXdQcm90b2NvbCwgV0tB
Y3Rpb25TaGVldEFzc2lzdGFudERlbGVnYXRlLCBXS0ZpbGVVcGxvYWRQYW5lbERlbGVnYXRlLCBX
S0tleWJvYXJkU2Nyb2xsVmlld0FuaW1hdG9yRGVsZWdhdGUgLCBXS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyRGVsZWdhdGUKICNpZiBIQVZFKENPTlRBQ1RTVUkpCiAgICAgLCBXS0NvbnRhY3RQ
aWNrZXJEZWxlZ2F0ZQogI2VuZGlmCkBAIC01MjUsNiArNTI1LDkgQEAgcHJpdmF0ZToKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgVUlWaWV3ICppbnB1dEFjY2Vzc29yeVZpZXdGb3JX
ZWJWaWV3OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHByZXZlbnRzUGFu
bmluZ0luWEF4aXM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgcHJldmVu
dHNQYW5uaW5nSW5ZQXhpczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgVUlXZWJU
b3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyICp0b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXI7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXk8V0tEZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplciAqPiAqZGVmZXJyaW5nR2VzdHVyZXM7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2Vy
JiBnZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI7CiAKICNpZiBFTkFCTEUoREFU
QUxJU1RfRUxFTUVOVCkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIFVJVmlldyA8V0tG
b3JtQ29udHJvbD4gKmRhdGFMaXN0VGV4dFN1Z2dlc3Rpb25zSW5wdXRWaWV3OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KaW5kZXggOTM3YjY1MjM3MjJhMWY2MzE5NDMxYTljN2E5NTU3MzE0N2U0YWQ5Ny4uZDQ4MmM0
N2YyNGEyMGY0YjBkOWIwM2ZlOTM2MzE2M2QzYzkxMDZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC03
NzMsNyArNzczLDYgQEAgLSAodm9pZClzZXRVcEludGVyYWN0aW9uCiAgICAgW190b3VjaEFjdGlv
bkRvd25Td2lwZUdlc3R1cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOnNlbGZdOwogICAgIFtzZWxm
IGFkZEdlc3R1cmVSZWNvZ25pemVyOl90b3VjaEFjdGlvbkRvd25Td2lwZUdlc3R1cmVSZWNvZ25p
emVyLmdldCgpXTsKIAotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIF90b3VjaFN0
YXJ0RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0dGFibGVHZXN0
dXJlcyA9IGFkb3B0TlMoW1tXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGFsbG9jXSBpbml0
V2l0aERlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZTpzZWxmXSk7CiAgICAgW190b3VjaFN0YXJ0RGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0dGFibGVHZXN0dXJlcyBz
ZXROYW1lOkAiVG91Y2ggc3RhcnQgZGVmZXJyZXIgKGltbWVkaWF0ZSByZXNldCkiXTsKIApAQCAt
NzkyLDExICs3OTEsMTMgQEAgLSAodm9pZClzZXRVcEludGVyYWN0aW9uCiAgICAgX3RvdWNoRW5k
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JTeW50aGV0aWNUYXBHZXN0dXJlcyA9IGFkb3B0
TlMoW1tXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGFsbG9jXSBpbml0V2l0aERlZmVycmlu
Z0dlc3R1cmVEZWxlZ2F0ZTpzZWxmXSk7CiAgICAgW190b3VjaEVuZERlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyRm9yU3ludGhldGljVGFwR2VzdHVyZXMgc2V0TmFtZTpAIlRvdWNoIGVuZCBkZWZl
cnJlciAoc3ludGhldGljIHRhcCkiXTsKIAotICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLl9kZWZlcnJpbmdHZXN0dXJlcykgeworICAgIGZvciAo
V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLmRlZmVycmluZ0dl
c3R1cmVzKSB7CiAgICAgICAgIGdlc3R1cmUuZGVsZWdhdGUgPSBzZWxmOwogICAgICAgICBbc2Vs
ZiBhZGRHZXN0dXJlUmVjb2duaXplcjpnZXN0dXJlXTsKICAgICB9Ci0jZW5kaWYgLy8gRU5BQkxF
KElPU19UT1VDSF9FVkVOVFMpCisKKyAgICBpZiAoX2dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVu
Y3lFbmZvcmNlcikKKyAgICAgICAgX2dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNl
ci0+cmVzZXQoKTsKIAogICAgIF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5T
KFtbVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyIGFsbG9jXSBpbml0V2l0aFRhcmdl
dDpzZWxmIGFjdGlvbjpAc2VsZWN0b3IoX3dlYlRvdWNoRXZlbnRzUmVjb2duaXplZDopIHRvdWNo
RGVsZWdhdGU6c2VsZl0pOwogICAgIFtfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyIHNldERl
bGVnYXRlOnNlbGZdOwpAQCAtOTY3LDEyICs5NjgsMTMgQEAgLSAodm9pZCljbGVhblVwSW50ZXJh
Y3Rpb24KICAgICBbX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpuaWxd
OwogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl90b3VjaEV2ZW50R2VzdHVyZVJl
Y29nbml6ZXIuZ2V0KCldOwogCi0jaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCi0gICAgZm9y
IChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGluIHNlbGYuX2RlZmVycmlu
Z0dlc3R1cmVzKSB7CisgICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0
dXJlIGluIHNlbGYuZGVmZXJyaW5nR2VzdHVyZXMpIHsKICAgICAgICAgZ2VzdHVyZS5kZWxlZ2F0
ZSA9IG5pbDsKICAgICAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6Z2VzdHVyZV07
CiAgICAgfQotI2VuZGlmCisKKyAgICBpZiAoX2dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lF
bmZvcmNlcikKKyAgICAgICAgX2dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci0+
cmVzZXQoKTsKIAogI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKQogICAgIFtfbW91
c2VHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpuaWxdOwpAQCAtMTA5OCwxMCArMTEwMCw4
IEBAIC0gKHZvaWQpX2NhbmNlbFBlbmRpbmdLZXlFdmVudEhhbmRsZXIKIAogLSAodm9pZClfcmVt
b3ZlRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVycwogewotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZF
TlRTKQotICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBz
ZWxmLl9kZWZlcnJpbmdHZXN0dXJlcykKKyAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIgKmdlc3R1cmUgaW4gc2VsZi5kZWZlcnJpbmdHZXN0dXJlcykKICAgICAgICAgW3NlbGYg
cmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6Z2VzdHVyZV07Ci0jZW5kaWYKICAgICBbc2VsZiByZW1v
dmVHZXN0dXJlUmVjb2duaXplcjpfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsK
ICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfc2luZ2xlVGFwR2VzdHVyZVJlY29n
bml6ZXIuZ2V0KCldOwogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9oaWdobGln
aHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CkBAIC0xMTI1LDEwICsxMTI1LDgg
QEAgLSAodm9pZClfcmVtb3ZlRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVycwogCiAtICh2b2lkKV9h
ZGREZWZhdWx0R2VzdHVyZVJlY29nbml6ZXJzCiB7Ci0jaWYgRU5BQkxFKElPU19UT1VDSF9FVkVO
VFMpCi0gICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGluIHNl
bGYuX2RlZmVycmluZ0dlc3R1cmVzKQorICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplciAqZ2VzdHVyZSBpbiBzZWxmLmRlZmVycmluZ0dlc3R1cmVzKQogICAgICAgICBbc2VsZiBh
ZGRHZXN0dXJlUmVjb2duaXplcjpnZXN0dXJlXTsKLSNlbmRpZgogICAgIFtzZWxmIGFkZEdlc3R1
cmVSZWNvZ25pemVyOl90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwogICAgIFtz
ZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQo
KV07CiAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X2hpZ2hsaWdodExvbmdQcmVzc0dl
c3R1cmVSZWNvZ25pemVyLmdldCgpXTsKQEAgLTE1NjQsNyArMTU2Miw2IEBAIC0gKHZvaWQpX3dl
YlRvdWNoRXZlbnRzUmVjb2duaXplZDooVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVy
ICopZ2VzdHVyZVJlCiAgICAgICAgIGlmIChuYXRpdmVXZWJUb3VjaEV2ZW50LmlzUG90ZW50aWFs
VGFwKCkgJiYgc2VsZi5oYXNIaWRkZW5Db250ZW50RWRpdGFibGUgJiYgc2VsZi5faGFzRm9jdXNl
ZEVsZW1lbnQgJiYgIXNlbGYud2luZG93LmtleVdpbmRvdykKICAgICAgICAgICAgIFtzZWxmLndp
bmRvdyBtYWtlS2V5V2luZG93XTsKIAotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAg
ICAgICBhdXRvIHN0b3BEZWZlcnJpbmdOYXRpdmVHZXN0dXJlc0lmTmVlZGVkID0gW10gKE5TQXJy
YXk8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqPiAqZGVmZXJyaW5nR2VzdHVyZXMpIHsK
ICAgICAgICAgICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBp
biBkZWZlcnJpbmdHZXN0dXJlcykgewogICAgICAgICAgICAgICAgIGlmIChnZXN0dXJlLnN0YXRl
ID09IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZVBvc3NpYmxlKQpAQCAtMTU3Nyw3ICsxNTc0LDYg
QEAgLSAodm9pZClfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOihVSVdlYlRvdWNoRXZlbnRzR2Vz
dHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmUKIAogICAgICAgICBpZiAoIV9wYWdlLT5pc0hhbmRs
aW5nUHJldmVudGFibGVUb3VjaEVuZCgpKQogICAgICAgICAgICAgc3RvcERlZmVycmluZ05hdGl2
ZUdlc3R1cmVzSWZOZWVkZWQoc2VsZi5fdG91Y2hFbmREZWZlcnJpbmdHZXN0dXJlcyk7Ci0jZW5k
aWYgLy8gRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShU
T1VDSF9FVkVOVFMpCiB9CkBAIC0xNzU1LDkgKzE3NTEsMjAgQEAgLSAodm9pZClfd2ViVG91Y2hF
dmVudDooY29uc3QgV2ViS2l0OjpOYXRpdmVXZWJUb3VjaEV2ZW50Jil0b3VjaEV2ZW50IHByZXZl
bnRzTmEKIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCistIChVSVdl
YlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXIgKil0b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6
ZXIKK3sKKyAgICByZXR1cm4gX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplci5nZXQoKTsKK30K
IAotLSAoTlNBcnJheTxXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICo+ICopX2RlZmVycmlu
Z0dlc3R1cmVzCistIChXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNl
ciYpZ2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyCit7CisgICAgaWYgKCFfZ2Vz
dHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyKQorICAgICAgICBfZ2VzdHVyZVJlY29n
bml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyID0gbWFrZVVuaXF1ZTxXZWJLaXQ6Okdlc3R1cmVSZWNv
Z25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcj4oc2VsZik7CisKKyAgICByZXR1cm4gKl9nZXN0dXJl
UmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI7Cit9CisKKy0gKE5TQXJyYXk8V0tEZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplciAqPiAqKWRlZmVycmluZ0dlc3R1cmVzCiB7CiAgICAgYXV0byBn
ZXN0dXJlcyA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTo2XTsKICAgICBbZ2Vz
dHVyZXMgYWRkT2JqZWN0c0Zyb21BcnJheTpzZWxmLl90b3VjaFN0YXJ0RGVmZXJyaW5nR2VzdHVy
ZXNdOwpAQCAtMTgxNyw4ICsxODI0LDYgQEAgLSAoQk9PTClfaXNUb3VjaEVuZERlZmVycmluZ0dl
c3R1cmU6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlCiAgICAgICAgIHx8
IGdlc3R1cmUgPT0gX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JEZWxheWVk
UmVzZXR0YWJsZUdlc3R1cmVzOwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKElPU19UT1VDSF9FVkVO
VFMpCi0KIHN0YXRpYyBOU1ZhbHVlICpuc1NpemVGb3JUYXBIaWdobGlnaHRCb3JkZXJSYWRpdXMo
V2ViQ29yZTo6SW50U2l6ZSBib3JkZXJSYWRpdXMsIENHRmxvYXQgYm9yZGVyUmFkaXVzU2NhbGUp
CiB7CiAgICAgcmV0dXJuIFtOU1ZhbHVlIHZhbHVlV2l0aENHU2l6ZTpDR1NpemVNYWtlKChib3Jk
ZXJSYWRpdXMud2lkdGgoKSAqIGJvcmRlclJhZGl1c1NjYWxlKSArIG1pbmltdW1UYXBIaWdobGln
aHRSYWRpdXMsIChib3JkZXJSYWRpdXMuaGVpZ2h0KCkgKiBib3JkZXJSYWRpdXNTY2FsZSkgKyBt
aW5pbXVtVGFwSGlnaGxpZ2h0UmFkaXVzKV07CkBAIC0yMjIxLDEyICsyMjI2LDEwIEBAIHN0YXRp
YyBDbGFzcyB0YXBBbmRBSGFsZlJlY29nbml6ZXJDbGFzcygpCiAKIC0gKEJPT0wpZ2VzdHVyZVJl
Y29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGRS
ZWNvZ25pemVTaW11bHRhbmVvdXNseVdpdGhHZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVj
b2duaXplciopb3RoZXJHZXN0dXJlUmVjb2duaXplcgogewotI2lmIEVOQUJMRShJT1NfVE9VQ0hf
RVZFTlRTKQotICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBp
biBzZWxmLl9kZWZlcnJpbmdHZXN0dXJlcykgeworICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLmRlZmVycmluZ0dlc3R1cmVzKSB7CiAgICAgICAg
IGlmIChpc1NhbWVQYWlyKGdlc3R1cmVSZWNvZ25pemVyLCBvdGhlckdlc3R1cmVSZWNvZ25pemVy
LCBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyLmdldCgpLCBnZXN0dXJlKSkKICAgICAgICAg
ICAgIHJldHVybiBZRVM7CiAgICAgfQotI2VuZGlmCiAKICAgICBpZiAoW2dlc3R1cmVSZWNvZ25p
emVyIGlzS2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5jbGFzc10gJiYg
W290aGVyR2VzdHVyZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFzczpXS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyLmNsYXNzXSkKICAgICAgICAgcmV0dXJuIFlFUzsKQEAgLTc1NTMsMjMgKzc1NTYs
MzEgQEAgLSAodm9pZClfaGlkZVRhcmdldGVkUHJldmlld0NvbnRhaW5lclZpZXdzCiAKICNwcmFn
bWEgbWFyayAtIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZQogCi0tIChCT09M
KWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
ICopZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJHZXN0dXJlc0FmdGVyQmVn
aW5uaW5nVG91Y2hlc1dpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50CistIChXZWJLaXQ6OlNob3Vs
ZERlZmVyR2VzdHVyZXMpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5nR2Vz
dHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciB3aWxsQmVnaW5Ub3Vj
aGVzV2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQKK3sKKyAgICBzZWxmLmdlc3R1cmVSZWNvZ25p
emVyQ29uc2lzdGVuY3lFbmZvcmNlci5iZWdpblRyYWNraW5nKGRlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyKTsKKworICAgIHJldHVybiBbc2VsZiBnZXN0dXJlUmVjb2duaXplcjpkZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplciBpc0ludGVycnVwdGluZ01vbWVudHVtU2Nyb2xsaW5nV2l0aEV2ZW50
OmV2ZW50XSA/IFdlYktpdDo6U2hvdWxkRGVmZXJHZXN0dXJlczo6Tm8gOiBXZWJLaXQ6OlNob3Vs
ZERlZmVyR2VzdHVyZXM6OlllczsKK30KKworLSAodm9pZClkZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyIGRpZFRyYW5zaXRpb25Ub1N0YXRlOihVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGUpc3Rh
dGUKIHsKLSAgICByZXR1cm4gIVtzZWxmIGdlc3R1cmVSZWNvZ25pemVyOmRlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyIGlzSW50ZXJydXB0aW5nTW9tZW50dW1TY3JvbGxpbmdXaXRoRXZlbnQ6ZXZl
bnRdOworICAgIGlmIChzdGF0ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVFbmRlZCB8fCBz
dGF0ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVGYWlsZWQgfHwgc3RhdGUgPT0gVUlHZXN0
dXJlUmVjb2duaXplclN0YXRlQ2FuY2VsbGVkKQorICAgICAgICBzZWxmLmdlc3R1cmVSZWNvZ25p
emVyQ29uc2lzdGVuY3lFbmZvcmNlci5lbmRUcmFja2luZyhkZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplcik7CiB9CiAKIC0gKHZvaWQpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6KFdLRGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBkaWRFbmRU
b3VjaGVzV2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQKIHsKKyAgICBzZWxmLmdlc3R1cmVSZWNv
Z25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5lbmRUcmFja2luZyhkZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplcik7CisKICAgICBpZiAoZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuc3RhdGUgIT0g
VUlHZXN0dXJlUmVjb2duaXplclN0YXRlUG9zc2libGUpCiAgICAgICAgIHJldHVybjsKIAotI2lm
IEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIGlmIChfcGFnZS0+aXNIYW5kbGluZ1ByZXZl
bnRhYmxlVG91Y2hTdGFydCgpICYmIFtzZWxmIF9pc1RvdWNoU3RhcnREZWZlcnJpbmdHZXN0dXJl
OmRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyXSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KF9wYWdlLT5pc0hhbmRsaW5nUHJldmVudGFibGVUb3VjaEVuZCgpICYmIFtzZWxmIF9pc1RvdWNo
RW5kRGVmZXJyaW5nR2VzdHVyZTpkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcl0pCiAgICAgICAg
IHJldHVybjsKLSNlbmRpZgogCiAgICAgaWYgKFtfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVy
IHN0YXRlXSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVQb3NzaWJsZSkKICAgICAgICAgcmV0
dXJuOwpAQCAtNzU4Miw3ICs3NTkzLDYgQEAgLSAodm9pZClkZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVycmluZ0dlc3QKIAogLSAo
Qk9PTClkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplciAqKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHNob3VsZERlZmVyT3RoZXJHZXN0dXJl
UmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCiB7Ci0j
aWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgaWYgKFtfd2ViVmlldyBfaXNOYXZpZ2F0
aW9uU3dpcGVHZXN0dXJlUmVjb2duaXplcjpnZXN0dXJlUmVjb2duaXplcl0pCiAgICAgICAgIHJl
dHVybiBOTzsKIApAQCAtNzY1MSwxMSArNzY2MSw2IEBAIC0gKEJPT0wpZGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0
CiAgICAgICAgIHJldHVybiBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciA9PSBfdG91Y2hTdGFy
dERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJlc2V0dGFibGVHZXN0dXJlczsK
IAogICAgIHJldHVybiBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciA9PSBfdG91Y2hTdGFydERl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRpYXRlbHlSZXNldHRhYmxlR2VzdHVyZXM7
Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcik7Ci0g
ICAgVU5VU0VEX1BBUkFNKGdlc3R1cmVSZWNvZ25pemVyKTsKLSAgICByZXR1cm4gTk87Ci0jZW5k
aWYKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaAppbmRl
eCA1NzYwYzc0YzFkYzgxZWFjOWJmOTcwZDFmNmFiNmMzZmNkMTYxMjRlLi4wZjNiNTJiOTVlN2M3
OTNjMmFjY2ZkOGM4MmUyZDhmZWZhMzI0ZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmgKQEAgLTI3
LDEyICsyNywxOSBAQAogCiAjaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgogCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworZW51bSBjbGFzcyBTaG91bGREZWZlckdlc3R1cmVzIDogYm9vbCB7IE5vLCBZZXMg
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKIEBjbGFzcyBXS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyOwogCiBAcHJvdG9jb2wgV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckRlbGVn
YXRlCi0tIChCT09MKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJHZXN0
dXJlc0FmdGVyQmVnaW5uaW5nVG91Y2hlc1dpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50OwotLSAo
Qk9PTClkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplciAqKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGRpZEVuZFRvdWNoZXNXaXRoRXZlbnQ6
KFVJRXZlbnQgKilldmVudDsKIC0gKEJPT0wpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6KFdL
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBz
aG91bGREZWZlck90aGVyR2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKiln
ZXN0dXJlUmVjb2duaXplcjsKKy0gKFdlYktpdDo6U2hvdWxkRGVmZXJHZXN0dXJlcylkZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyIHdpbGxCZWdpblRvdWNoZXNXaXRoRXZlbnQ6KFVJRXZlbnQg
KilldmVudDsKKy0gKHZvaWQpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBkaWRFbmRUb3Vj
aGVzV2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQ7CistICh2b2lkKWRlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXIgZGlkVHJhbnNpdGlvblRvU3RhdGU6KFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0
ZSlzdGF0ZTsKIEBlbmQKIAogQGludGVyZmFjZSBXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
IDogVUlHZXN0dXJlUmVjb2duaXplcgpAQCAtNDEsOCArNDgsNiBAQAogLSAodm9pZClzZXREZWZh
dWx0UHJldmVudGVkOihCT09MKWRlZmF1bHRQcmV2ZW50ZWQ7CiAtIChCT09MKXNob3VsZERlZmVy
R2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXpl
cjsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHJlYWRvbmx5KSBpZCA8V0tEZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlPiBkZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGU7Ci0K
IEBlbmQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
Lm1tCmluZGV4IGVkNmVmZTZjM2UwYWE5ZjY2OTQ1YzEyZDcyYjk1ZGIxZjEyZTI2YjAuLjhlNjU1
ZDc2ZGUzNGFmODViYWQ3MDUwNDIzMTgxYTVmNDhmOTg5N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
Lm1tCkBAIC00MSwxOCArNDEsMTMgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRGVmZXJyaW5n
R2VzdHVyZURlbGVnYXRlOihpZCA8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXoKICAgICByZXR1
cm4gc2VsZjsKIH0KIAotLSAoaWQgPFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0
ZT4pZGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlCi17Ci0gICAgcmV0dXJuIF9kZWZlcnJpbmdHZXN0
dXJlRGVsZWdhdGUuZ2V0KCkuZ2V0KCk7Ci19Ci0KIC0gKHZvaWQpdG91Y2hlc0JlZ2FuOihOU1Nl
dDxVSVRvdWNoICo+ICopdG91Y2hlcyB3aXRoRXZlbnQ6KFVJRXZlbnQgKilldmVudAogeworICAg
IGF1dG8gc2hvdWxkRGVmZXJHZXN0dXJlcyA9IFtfZGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlIGRl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOnNlbGYgd2lsbEJlZ2luVG91Y2hlc1dpdGhFdmVudDpl
dmVudF07CiAgICAgW3N1cGVyIHRvdWNoZXNCZWdhbjp0b3VjaGVzIHdpdGhFdmVudDpldmVudF07
Ci0gICAgaWYgKFtfZGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlIGRlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyOnNlbGYgc2hvdWxkRGVmZXJHZXN0dXJlc0FmdGVyQmVnaW5uaW5nVG91Y2hlc1dpdGhF
dmVudDpldmVudF0pCi0gICAgICAgIHJldHVybjsKIAotICAgIHNlbGYuc3RhdGUgPSBVSUdlc3R1
cmVSZWNvZ25pemVyU3RhdGVGYWlsZWQ7CisgICAgaWYgKHNob3VsZERlZmVyR2VzdHVyZXMgPT0g
V2ViS2l0OjpTaG91bGREZWZlckdlc3R1cmVzOjpObykKKyAgICAgICAgc2VsZi5zdGF0ZSA9IFVJ
R2VzdHVyZVJlY29nbml6ZXJTdGF0ZUZhaWxlZDsKIH0KIAogLSAodm9pZCl0b3VjaGVzRW5kZWQ6
KE5TU2V0PFVJVG91Y2ggKj4gKil0b3VjaGVzIHdpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50CkBA
IC04Niw2ICs4MSwxNSBAQCAtIChCT09MKXNob3VsZERlZmVyR2VzdHVyZVJlY29nbml6ZXI6KFVJ
R2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgogICAgIHJldHVybiBbX2RlZmVy
cmluZ0dlc3R1cmVEZWxlZ2F0ZSBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjpzZWxmIHNob3Vs
ZERlZmVyT3RoZXJHZXN0dXJlUmVjb2duaXplcjpnZXN0dXJlUmVjb2duaXplcl07CiB9CiAKKy0g
KHZvaWQpc2V0U3RhdGU6KFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZSlzdGF0ZQoreworICAgIGF1
dG8gcHJldmlvdXNTdGF0ZSA9IHNlbGYuc3RhdGU7CisgICAgW3N1cGVyIHNldFN0YXRlOnN0YXRl
XTsKKworICAgIGlmIChwcmV2aW91c1N0YXRlICE9IHNlbGYuc3RhdGUpCisgICAgICAgIFtfZGVm
ZXJyaW5nR2VzdHVyZURlbGVnYXRlIGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOnNlbGYgZGlk
VHJhbnNpdGlvblRvU3RhdGU6c3RhdGVdOworfQorCiBAZW5kCiAKICNlbmRpZiAvLyBQTEFURk9S
TShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMzhkMDAzMjBmNTQ1MDMzMmFmZGNhOTA3ZGFhNTEyYmY4MmY5NmJkNS4u
Nzc3MDU1MWYxYzU0N2MxNWM0ZmRjOGIzYWMyYWE2MjI1ODk4MjUwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMDExLDYgKzIwMTEs
NyBAQAogCQlGNEE2RDZCQzI1NENBM0U5MDBCNjVGQUEgLyogU2hhcmVkRGlzcGxheUxpc3RIYW5k
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QTZE
NkJCMjU0Q0EzRTkwMEI2NUZBQSAvKiBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZS5oICovOyB9Owog
CQlGNEJBMzNGMjI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVj
b2duaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjRCQTMzRjAyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29n
bml6ZXIuaCAqLzsgfTsKIAkJRjRDQjA5RTUyMjVENUEwOTAwODkxNDg3IC8qIFdlYnNpdGVNZWRp
YVNvdXJjZVBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjRDQjA5RTQyMjVENUEwMzAwODkxNDg3IC8qIFdlYnNpdGVNZWRpYVNvdXJjZVBvbGlj
eS5oICovOyB9OworCQlGNENGMUU5RDI1RTQwRENDMDAwRjlENzMgLyogR2VzdHVyZVJlY29nbml6
ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNENGMUU5QjI1RTQwRENDMDAwRjlENzMgLyogR2VzdHVyZVJlY29nbml6
ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmggKi87IH07CiAJCUY0RDVGNTFEMjA2MDg3QTEwMDM4QkJB
OCAvKiBXS1RleHRJbnB1dExpc3RWaWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRENUY1MTkyMDYwODdBMDAwMzhCQkE4IC8qIFdL
VGV4dElucHV0TGlzdFZpZXdDb250cm9sbGVyLmggKi87IH07CiAJCUY0RDVGNTFGMjA2MDg3QTEw
MDM4QkJBOCAvKiBXS1F1aWNrYm9hcmRMaXN0Vmlld0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDVGNTFCMjA2MDg3QTEwMDM4QkJB
OCAvKiBXS1F1aWNrYm9hcmRMaXN0Vmlld0NvbnRyb2xsZXIuaCAqLzsgfTsKIAkJRjREQjU0RTYy
MzE5RTczMzAwOUUzMTU1IC8qIFdLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0REI1NEU0
MjMxOUU3MzMwMDlFMzE1NSAvKiBXS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVy
LmggKi87IH07CkBAIC01ODg4LDYgKzU4ODksOCBAQAogCQlGNEJBMzNGMDI1NzU3RTg5MDAwQTND
RTggLyogV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmg7IHBhdGggPSBpb3MvV0tJbWFn
ZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNEJBMzNGMTI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJl
UmVjb2duaXplci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLSW1hZ2VFeHRyYWN0aW9uR2Vz
dHVyZVJlY29nbml6ZXIubW07IHBhdGggPSBpb3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVj
b2duaXplci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRDQjA5RTQyMjVENUEw
MzAwODkxNDg3IC8qIFdlYnNpdGVNZWRpYVNvdXJjZVBvbGljeS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJzaXRlTWVkaWFTb3VyY2VQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjRDRjFFOUIyNUU0MERDQzAwMEY5RDczIC8qIEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lF
bmZvcmNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBHZXN0dXJlUmVjb2du
aXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaDsgcGF0aCA9IGlvcy9HZXN0dXJlUmVjb2duaXplckNv
bnNpc3RlbmN5RW5mb3JjZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjRDRjFF
OUMyNUU0MERDQzAwMEY5RDczIC8qIEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEdlc3R1cmVSZWNv
Z25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5tbTsgcGF0aCA9IGlvcy9HZXN0dXJlUmVjb2duaXpl
ckNvbnNpc3RlbmN5RW5mb3JjZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0
RDVGNTE5MjA2MDg3QTAwMDM4QkJBOCAvKiBXS1RleHRJbnB1dExpc3RWaWV3Q29udHJvbGxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1RleHRJbnB1dExpc3RWaWV3Q29u
dHJvbGxlci5oOyBwYXRoID0gaW9zL2Zvcm1zL1dLVGV4dElucHV0TGlzdFZpZXdDb250cm9sbGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDVGNTFBMjA2MDg3QTEwMDM4QkJB
OCAvKiBXS1RleHRJbnB1dExpc3RWaWV3Q29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLVGV4dElucHV0TGlzdFZpZXdDb250cm9sbGVyLm1tOyBw
YXRoID0gaW9zL2Zvcm1zL1dLVGV4dElucHV0TGlzdFZpZXdDb250cm9sbGVyLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ1RjUxQjIwNjA4N0ExMDAzOEJCQTggLyogV0tRdWlj
a2JvYXJkTGlzdFZpZXdDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdLUXVpY2tib2FyZExpc3RWaWV3Q29udHJvbGxlci5oOyBwYXRoID0gaW9zL2Zvcm1zL1dL
UXVpY2tib2FyZExpc3RWaWV3Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNzU4Miw2ICs3NTg1LDggQEAKIAkJCQlGNDk2QTQzMDFGNThBMjcyMDA0QzE3NTcgLyog
RHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLm1tICovLAogCQkJCUNEQ0RDOTlCMjQ4RkU4REEwMEE2
OTUyMiAvKiBFbmRvd21lbnRTdGF0ZVRyYWNrZXIuaCAqLywKIAkJCQlDRENEQzk5QzI0OEZFOERB
MDBBNjk1MjIgLyogRW5kb3dtZW50U3RhdGVUcmFja2VyLm1tICovLAorCQkJCUY0Q0YxRTlCMjVF
NDBEQ0MwMDBGOUQ3MyAvKiBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaCAq
LywKKwkJCQlGNENGMUU5QzI1RTQwRENDMDAwRjlENzMgLyogR2VzdHVyZVJlY29nbml6ZXJDb25z
aXN0ZW5jeUVuZm9yY2VyLm1tICovLAogCQkJCTJERDQ1QURDMUU1Rjg5NzIwMDZDMzU1RiAvKiBJ
bnB1dFZpZXdVcGRhdGVEZWZlcnJlci5oICovLAogCQkJCTJERDQ1QUREMUU1Rjg5NzIwMDZDMzU1
RiAvKiBJbnB1dFZpZXdVcGRhdGVEZWZlcnJlci5tbSAqLywKIAkJCQkwRkNCNEUzNjE4QkJFMDQ0
MDAwRkNGQzkgLyogUGFnZUNsaWVudEltcGxJT1MuaCAqLywKQEAgLTExNzQ3LDYgKzExNzUyLDcg
QEAKIAkJCQlCQzA2RjQyRjEyREJCOUI2MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDZGNDRBMTJEQkQxRjUwMDJE
NzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzA2RjQzQTEyREJDQ0ZCMDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNENGMUU5RDI1RTQwREND
MDAwRjlENzMgLyogR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyREE5NDRBNDE4ODRFNEYwMDBFRDg2REIgLyogR2VzdHVyZVR5cGVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGNDBCQkI0MTI1N0ZGNDZFMDA2NzQ2M0EgLyogR1BVUHJvY2Vz
c1dha2V1cE1lc3NhZ2VBcmd1bWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQTA0OUI4MTgw
Q0NEMEEwMEFBRkE5RSAvKiBHcmFwaGljc0xheWVyQ0FSZW1vdGUuaCBpbiBIZWFkZXJzICovLAo=
</data>
<flag name="review"
          id="440043"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="440045"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421281</attachid>
            <date>2021-02-22 20:51:36 -0800</date>
            <delta_ts>2021-02-22 22:38:08 -0800</delta_ts>
            <desc>For EWS (fix builds + rebase)</desc>
            <filename>bug-222216-20210222205136.patch</filename>
            <type>text/plain</type>
            <size>32358</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQyNDdmNmI0Yjc2ZjJlZGI3
OTk5Y2YzZWJhMmE1NzhhMDY4MmU3YTYuLjU3YjcxZDJlYTk5NDU1ZmVjOWZmYTQ2ZGMwNmI3ZmU3
OGYwZDY4NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODYgQEAKKzIwMjEtMDItMjIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRkIGEgd2F0
Y2hkb2cgdGltZXIgdG8gZm9yY2libHkgcmVzZXQgZGVmZXJyaW5nIGdlc3R1cmUgcmVjb2duaXpl
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjIx
NgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBBZGQgYSBt
ZWNoYW5pc20gdG8gZGV0ZWN0IGFuZCByZXNvbHZlIHNpdHVhdGlvbnMgd2hlcmUgYXQgbGVhc3Qg
b25lIGRlZmVycmluZyBnZXN0dXJlIHJlY29nbml6ZXIKKyAgICAgICAgKGBXS0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyYCkgaXMgc3R1Y2sgaW4gUG9zc2libGUgc3RhdGUgYWZ0ZXIgZW5kaW5n
IHRvdWNoZXMsIGJ1dCB0aGUgdG91Y2ggZXZlbnQgZ2VzdHVyZQorICAgICAgICByZWNvZ25pemVy
IGlzIHVuYWJsZSB0byBiZSByZXNldCAoaS5lLiBuZWl0aGVyIHBvc3NpYmxlIG9yIHJlY29nbml6
aW5nKS4gVGhpcyBzdGF0ZSBpcyBpbmRpY2F0aXZlIG9mIGEgZ2VuZXJhbAorICAgICAgICBjbGFz
cyBvZiBidWdzIHJlZ2FyZGluZyBuYXRpdmUgZ2VzdHVyZSBkZWZlcnJhbCwgd2hlcmVpbiBvdXIg
Imdlc3R1cmUgZ2F0ZXMiIG5ldmVyIGVuZCB1cCBiZWluZyBsaWZ0ZWQgYWZ0ZXIKKyAgICAgICAg
ZW5kaW5nIGFsbCB0b3VjaGVzIGluIHRoZSB2aWV3LiBPbmUgc3VjaCBleGFtcGxlIG9mIHRoaXMg
dHlwZSBvZiBidWcgd2FzIGZpeGVkIGluIHIyNzI1ODQsIHdoZXJlIGFsbCBpbnRlcmFjdGlvbgor
ICAgICAgICAodG91Y2ggZXZlbnRzLCBzY3JvbGxpbmcsIHRhcHBpbmcpIGR1ZSB0byB0aGUgdG91
Y2ggZW5kIGRlZmVycmVycyBuZXZlciBleGl0aW5nIFBvc3NpYmxlIHN0YXRlIGFmdGVyIGxvbmcK
KyAgICAgICAgcHJlc3NpbmcgdG8gcHJlc2VudCBhIGNvbnRleHQgbWVudS4KKworICAgICAgICBU
byBtYWtlIHRoZXNlIGtpbmRzIG9mIGJ1Z3MgYm90aCBlYXNpZXIgdG8gZGlhZ25vc2UgYW5kIGxl
c3MgZmF0YWwgaW4gdGhlIGZ1dHVyZSwgd2UgaW50cm9kdWNlIGEgd2F0Y2hkb2cgdGltZXIKKyAg
ICAgICAgdGhhdCBkaXNwYXRjaGVzIGFmdGVyIGVuZGluZyBhbGwgdG91Y2hlcyBvbiB0aGUgY29u
dGVudCB2aWV3LCBhbmQgY2hlY2tzIHRoZSBjb25zaXN0ZW5jeSBvZiBkZWZlcnJpbmcgZ2VzdHVy
ZQorICAgICAgICByZWNvZ25pemVycyBpbiB0aGUgdmlldzsgaWYgd2UgZGV0ZWN0IHN0dWNrIGRl
ZmVycmluZyBnZXN0dXJlcywgd2UgaGFuZGxlIHRoaXMgYnkgZm9yY2libHkgcmVzZXR0aW5nIHRo
ZSBzdHVjaworICAgICAgICBkZWZlcnJpbmcgZ2VzdHVyZXMgYW5kIGxvZ2dpbmcgYSBmYXVsdCBt
ZXNzYWdlLgorCisgICAgICAgIEkgbWFudWFsbHkgdmVyaWZpZWQgdGhpcyBjaGFuZ2UgYnkgcmV2
ZXJ0aW5nIG15IGZpeCBmb3IgdGhlIGFmb3JlbWVudGlvbmVkIGJ1ZyAocjI3MjU4NCksIGFuZCBv
YnNlcnZpbmcgYm90aCAoMSkKKyAgICAgICAgYSBzeXN0ZW0gbG9nIGZhdWx0IG1lc3NhZ2UsIGFu
ZCAoMikgdGhhdCBpbnRlcmFjdGlvbnMgY29udGludWVkIHRvIHdvcmsgZXZlbiB3aXRob3V0IHRo
ZSBmaXggaW4gcjI3MjU4NCwgYWZ0ZXIKKyAgICAgICAgdGhlIHdhdGNoZG9nIHRpbWVyIGZpcmVk
LiBTZWUgYmVsb3cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50
eHQ6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9HZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5
RW5mb3JjZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLRGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL0dlc3R1
cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5tbTogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6Okdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcjo6R2VzdHVyZVJlY29nbml6
ZXJDb25zaXN0ZW5jeUVuZm9yY2VyKToKKyAgICAgICAgKFdlYktpdDo6R2VzdHVyZVJlY29nbml6
ZXJDb25zaXN0ZW5jeUVuZm9yY2VyOjpiZWdpblRyYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6
R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyOjplbmRUcmFja2luZyk6CisgICAg
ICAgIChXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcjo6cmVzZXQp
OgorICAgICAgICAoV2ViS2l0OjpHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI6
OnRpbWVyRmlyZWQpOgorCisgICAgICAgIEFkZCBhIGhlbHBlciBjbGFzcyB0aGF0IHdyYXBzIGEg
YFJ1bkxvb3A6OlRpbWVyYCBmb3IgdGhlIG1haW4gcnVubG9vcCwgYW5kIHNjaGVkdWxlcyBhIDEg
c2Vjb25kIHRpbWVyIGFmdGVyIGFsbAorICAgICAgICBkZWZlcnJpbmcgZ2VzdHVyZXMgaGF2ZSBl
bmRlZDsgYXNzdW1pbmcgbm8gbmV3IHRvdWNoZXMgYmVnaW4gYWZ0ZXIgdGhpcyB0aW1lciBpcyBz
Y2hlZHVsZWQsIHdlJ2xsIHBlcmZvcm0gYQorICAgICAgICBjb25zaXN0ZW5jeSBjaGVjayBvdmVy
IHRoZSBjb250ZW50IHZpZXcncyBnZXN0dXJlcyBhbmQgcGVyZm9ybSBhIGxvZyBmYXVsdCBhbmQg
Zm9yY2UgZGVmZXJyaW5nIGdlc3R1cmVzIHRvIGVuZAorICAgICAgICBpZiBuZWVkZWQuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IHNldFVwSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBjbGVhblVwSW50ZXJhY3Rpb25dKToKKworICAgICAgICBNYWtlIHN1cmUgdGhhdCB3ZSBy
ZXNldCBhbnkgZXh0YW50IGBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXJgIGlm
IHRoZSB3ZWIgcHJvY2VzcyBjcmFzaGVzLgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3Jl
bW92ZURlZmF1bHRHZXN0dXJlUmVjb2duaXplcnNdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfYWRkRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVyc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IF93ZWJUb3VjaEV2ZW50c1JlY29nbml6ZWQ6XSk6CisKKyAgICAgICAgQWRqdXN0IGEgZmV3
IGNvbXBpbGUtdGltZSBndWFyZHMgc28gdGhhdCBkZWZlcnJpbmcgZ2VzdHVyZSByZWNvZ25pemVy
cyBleGlzdCBvbiB0aGUgdmlldywgZXZlbiBpZgorICAgICAgICBgRU5BQkxFX0lPU19UT1VDSF9F
VkVOVFNgIGlzIG9mZi4gVGhpcyBtYWtlcyBzb21lIG9mIHRoZSBnZXN0dXJlIGRlZmVycmFsIGNv
ZGUgdGhyb3VnaG91dCB0aGlzIGZpbGUgZWFzaWVyIHRvCisgICAgICAgIHJlYXNvbiBhYm91dCBp
biBub24taW50ZXJuYWwgaU9TIGJ1aWxkcywgc2luY2Ugd2UgZG9uJ3QgbmVlZCB0byBzcHJpbmts
ZSBhcyBtYW55IGBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUylgCisgICAgICAgIGNoZWNrcyB0aHJv
dWdob3V0IHRoaXMgY2xhc3MuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyB0b3VjaEV2ZW50
R2VzdHVyZVJlY29nbml6ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBnZXN0dXJlUmVj
b2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBk
ZWZlcnJpbmdHZXN0dXJlc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGdlc3R1cmVSZWNv
Z25pemVyOnNob3VsZFJlY29nbml6ZVNpbXVsdGFuZW91c2x5V2l0aEdlc3R1cmVSZWNvZ25pemVy
Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
OndpbGxCZWdpblRvdWNoZXNXaXRoRXZlbnQ6XSk6CisKKyAgICAgICAgUmVmYWN0b3IgYC1kZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplcjpzaG91bGREZWZlckdlc3R1cmVzQWZ0ZXJCZWdpbm5pbmdU
b3VjaGVzV2l0aEV2ZW50OmAgc28gdGhhdCBpdCByZXR1cm5zIGFuCisgICAgICAgIGVudW0gZmxh
ZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGdpdmVuIGdlc3R1cmUgc2hvdWxkIGJlIGFsbG93ZWQg
dG8gYmVnaW4gZGVmZXJyaW5nIG5hdGl2ZSBnZXN0dXJlczsgYnkgbWFraW5nCisgICAgICAgIHRo
aXMgYC1kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjp3aWxsQmVnaW5Ub3VjaGVzV2l0aEV2ZW50
OmAsIHdlIGNhbiBub3cgcHV0IHN0YXRlIG1hbmFnZW1lbnQgbG9naWMgaGVyZSB0aGF0J3MKKyAg
ICAgICAgcmVzcG9uc2libGUgZm9yIHVwZGF0aW5nIHRoZSBgR2VzdHVyZVJlY29nbml6ZXJDb25z
aXN0ZW5jeUVuZm9yY2VyYC4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyOmRpZFRyYW5zaXRpb25Ub1N0YXRlOl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOmRpZEVuZFRvdWNoZXNXaXRoRXZl
bnQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RlZmVycmluZ0dlc3R1cmVzXSk6IERl
bGV0ZWQuCisKKyAgICAgICAgUmVuYW1lIHRoaXMgdG8gYC1kZWZlcnJpbmdHZXN0dXJlc2AgYW5k
IGV4cG9zZSBpdCBhcyBhIHJlYWRvbmx5IHByb3BlcnR5LCBmb3IgdXNlIGJ5IHRoZQorICAgICAg
ICBgR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyYC4KKworICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOnNob3VsZERlZmVyR2VzdHVy
ZXNBZnRlckJlZ2lubmluZ1RvdWNoZXNXaXRoRXZlbnQ6XSk6IERlbGV0ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLm1tOgorICAgICAgICAo
LVtXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHRvdWNoZXNCZWdhbjp3aXRoRXZlbnQ6XSk6
CisgICAgICAgICgtW1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgc2V0U3RhdGU6XSk6CisK
KyAgICAgICAgQWRkIGEgZGVsZWdhdGUgaG9vayB0byBpbmZvcm0gYFdLQ29udGVudFZpZXdgIHdo
ZW4gdGhlIGdlc3R1cmUgcmVjb2duaXplciBzdGF0ZSBjaGFuZ2VzLgorCisgICAgICAgICgtW1dL
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgZGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlXSk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIw
MjEtMDItMjIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFtQ
YXltZW50IFJlcXVlc3RdIFJFR1JFU1NJT04ocjI3MzE0Myk6IGNyYXNoIHNob3J0bHkgYWZ0ZXIg
c2hvd2luZyB0aGUgQXBwbGUgUGF5IHNoZWV0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggZTVk
YjZjMTk3NTQ1YTE5YTFlZWViZWNlMTFiMmM0NTg4ZDliNDIzNy4uYjFjZTVhM2RjMjk5ZTEwNWJj
MWNhMDcxYWRhMzdjYTVhYzk3ZGFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNDU4LDYg
KzQ1OCw3IEBAIFVJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVySU9TLm1tCiAKIFVJUHJvY2Vzcy9pb3MvQXBwS2l0U29mdExpbmsubW0KIFVJUHJvY2Vz
cy9pb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLm1tCitVSVByb2Nlc3MvaW9zL0dlc3R1cmVS
ZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5tbQogVUlQcm9jZXNzL2lvcy9JbnB1dFZpZXdV
cGRhdGVEZWZlcnJlci5tbQogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQogVUlQ
cm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5j
eUVuZm9yY2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA5NjY4NjdiMzk3NjUxMDdiMDY4YTE5NTZhM2NhOGNj
ZWViNDRjMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9H
ZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaApAQCAtMCwwICsxLDYzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisj
aW1wb3J0IDx3dGYvRmFzdE1hbGxvYy5oPgorI2ltcG9ydCA8d3RmL05vbmNvcHlhYmxlLmg+Cisj
aW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgorI2ltcG9y
dCA8d3RmL1dlYWtPYmpDUHRyLmg+CisKK0BjbGFzcyBXS0NvbnRlbnRWaWV3OworQGNsYXNzIFdL
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIgeworICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdlc3R1cmVSZWNvZ25pemVy
Q29uc2lzdGVuY3lFbmZvcmNlcik7CitwdWJsaWM6CisgICAgR2VzdHVyZVJlY29nbml6ZXJDb25z
aXN0ZW5jeUVuZm9yY2VyKFdLQ29udGVudFZpZXcgKik7CisgICAgfkdlc3R1cmVSZWNvZ25pemVy
Q29uc2lzdGVuY3lFbmZvcmNlcigpOworCisgICAgdm9pZCBiZWdpblRyYWNraW5nKFdLRGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXIgKik7CisgICAgdm9pZCBlbmRUcmFja2luZyhXS0RlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyICopOworCisgICAgdm9pZCByZXNldCgpOworCitwcml2YXRlOgor
ICAgIHZvaWQgdGltZXJGaXJlZCgpOworCisgICAgV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4g
bV92aWV3OworICAgIFJ1bkxvb3A6OlRpbWVyPEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lF
bmZvcmNlcj4gbV90aW1lcjsKKyAgICBIYXNoU2V0PFJldGFpblB0cjxXS0RlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyPj4gbV9kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcnNXaXRoVG91Y2hlczsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZB
TUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9HZXN0dXJlUmVj
b2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4
MDU1MDQ2NTMyNGYxZWZlYzcxMmRiMTFlODBkMjM0OWU3OWNlZTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5j
eUVuZm9yY2VyLm1tCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIkdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5oIgor
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9y
dCAiV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitH
ZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI6Okdlc3R1cmVSZWNvZ25pemVyQ29u
c2lzdGVuY3lFbmZvcmNlcihXS0NvbnRlbnRWaWV3ICp2aWV3KQorICAgIDogbV92aWV3KHZpZXcp
CisgICAgLCBtX3RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJkdlc3R1cmVSZWNvZ25pemVy
Q29uc2lzdGVuY3lFbmZvcmNlcjo6dGltZXJGaXJlZCkKK3sKKyAgICBBU1NFUlQobV92aWV3KTsK
K30KKworR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyOjp+R2VzdHVyZVJlY29n
bml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyKCkgPSBkZWZhdWx0OworCit2b2lkIEdlc3R1cmVSZWNv
Z25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcjo6YmVnaW5UcmFja2luZyhXS0RlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyICpnZXN0dXJlKQoreworICAgIG1fdGltZXIuc3RvcCgpOworICAgIG1fZGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJzV2l0aFRvdWNoZXMuYWRkKGdlc3R1cmUpOworfQorCit2
b2lkIEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcjo6ZW5kVHJhY2tpbmcoV0tE
ZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSkKK3sKKyAgICBpZiAoIW1fZGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXJzV2l0aFRvdWNoZXMucmVtb3ZlKGdlc3R1cmUpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAobV9kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcnNXaXRoVG91
Y2hlcy5pc0VtcHR5KCkpCisgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDFfcyk7Cit9CisK
K3ZvaWQgR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyOjpyZXNldCgpCit7Cisg
ICAgbV90aW1lci5zdG9wKCk7CisgICAgbV9kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcnNXaXRo
VG91Y2hlcy5jbGVhcigpOworfQorCit2b2lkIEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lF
bmZvcmNlcjo6dGltZXJGaXJlZCgpCit7CisgICAgaWYgKCFtX3ZpZXcpCisgICAgICAgIHJldHVy
bjsKKworICAgIGF1dG8gc3Ryb25nVmlldyA9IG1fdmlldy5nZXQoKTsKKyAgICBhdXRvIHBvc3Np
YmxlRGVmZXJyaW5nR2VzdHVyZXMgPSBbTlNNdXRhYmxlQXJyYXk8V0tEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplciAqPiBhcnJheV07CisgICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyICpnZXN0dXJlIGluIFtzdHJvbmdWaWV3IGRlZmVycmluZ0dlc3R1cmVzXSkgeworICAgICAg
ICBpZiAoZ2VzdHVyZS5zdGF0ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVQb3NzaWJsZSkK
KyAgICAgICAgICAgIFtwb3NzaWJsZURlZmVycmluZ0dlc3R1cmVzIGFkZE9iamVjdDpnZXN0dXJl
XTsKKyAgICB9CisKKyAgICBpZiAoIXBvc3NpYmxlRGVmZXJyaW5nR2VzdHVyZXMuY291bnQpCisg
ICAgICAgIHJldHVybjsKKworICAgIGF1dG8gdG91Y2hFdmVudFN0YXRlID0gW3N0cm9uZ1ZpZXcg
dG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyXS5zdGF0ZTsKKyAgICBpZiAodG91Y2hFdmVudFN0
YXRlID09IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZVBvc3NpYmxlIHx8IHRvdWNoRXZlbnRTdGF0
ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVCZWdhbiB8fCB0b3VjaEV2ZW50U3RhdGUgPT0g
VUlHZXN0dXJlUmVjb2duaXplclN0YXRlQ2hhbmdlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Zm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGluIHBvc3NpYmxlRGVm
ZXJyaW5nR2VzdHVyZXMpCisgICAgICAgIFtnZXN0dXJlIHNldFN0YXRlOlVJR2VzdHVyZVJlY29n
bml6ZXJTdGF0ZUVuZGVkXTsKKworICAgIFJFTEVBU0VfTE9HX0ZBVUxUKFZpZXdHZXN0dXJlcywg
IlRvdWNoIGV2ZW50IGdlc3R1cmUgcmVjb2duaXplciBmYWlsZWQgdG8gcmVzZXQgYWZ0ZXIgZW5k
aW5nIGdlc3R1cmUgZGVmZXJyYWw6ICVAIiwgcG9zc2libGVEZWZlcnJpbmdHZXN0dXJlcyk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlM
WSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaAppbmRleCBhNWEyOWYxYzI5NmJmNGFlNTgzOTdlMjY4Yjg3MWNmZDEzZGI3
M2VlLi5mNDk1ZmIwYjExZTMwZjY5NjIyMTMzMzUxYTc2N2Y2NzIyODY2ZWY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJFZGl0b3JTdGF0ZS5oIgogI2ltcG9ydCAi
Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5oIgogI2ltcG9ydCAiRnJhbWVJbmZvRGF0YS5oIgor
I2ltcG9ydCAiR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmgiCiAjaW1wb3J0
ICJHZXN0dXJlVHlwZXMuaCIKICNpbXBvcnQgIkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uLmgiCiAjaW1wb3J0ICJQYXN0ZWJvYXJkQWNjZXNzSW50ZW50LmgiCkBAIC0yNTUsMTQgKzI1
NiwxMyBAQCBwcml2YXRlOgogQGVuZAogCiBAaW50ZXJmYWNlIFdLQ29udGVudFZpZXcgKCkgewot
I2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIFJldGFpblB0cjxXS0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyPiBfdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9y
SW1tZWRpYXRlbHlSZXNldHRhYmxlR2VzdHVyZXM7CiAgICAgUmV0YWluUHRyPFdLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaFN0YXJ0RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJG
b3JEZWxheWVkUmVzZXR0YWJsZUdlc3R1cmVzOwogICAgIFJldGFpblB0cjxXS0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyPiBfdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9y
U3ludGhldGljVGFwR2VzdHVyZXM7CiAgICAgUmV0YWluUHRyPFdLRGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXI+IF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRpYXRl
bHlSZXNldHRhYmxlR2VzdHVyZXM7CiAgICAgUmV0YWluUHRyPFdLRGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXI+IF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJl
c2V0dGFibGVHZXN0dXJlczsKICAgICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplcj4gX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JTeW50aGV0aWNUYXBH
ZXN0dXJlczsKLSNlbmRpZgorICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6Okdlc3R1cmVSZWNv
Z25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcj4gX2dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lF
bmZvcmNlcjsKICAgICBSZXRhaW5QdHI8VUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVy
PiBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyOwogCiAgICAgQk9PTCBfdG91Y2hFdmVudHND
YW5QcmV2ZW50TmF0aXZlR2VzdHVyZXM7CkBAIC01MjUsNiArNTI1LDkgQEAgcHJpdmF0ZToKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgVUlWaWV3ICppbnB1dEFjY2Vzc29yeVZpZXdG
b3JXZWJWaWV3OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHByZXZlbnRz
UGFubmluZ0luWEF4aXM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgcHJl
dmVudHNQYW5uaW5nSW5ZQXhpczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgVUlX
ZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyICp0b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6
ZXI7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXk8V0tEZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplciAqPiAqZGVmZXJyaW5nR2VzdHVyZXM7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9y
Y2VyJiBnZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI7CiAKICNpZiBFTkFCTEUo
REFUQUxJU1RfRUxFTUVOVCkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIFVJVmlldyA8
V0tGb3JtQ29udHJvbD4gKmRhdGFMaXN0VGV4dFN1Z2dlc3Rpb25zSW5wdXRWaWV3OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KaW5kZXggYTc1NDM2MDVmZmIwZGIzMTY0NjZhY2ZiYjRkOTcxZmI2OWI2YTY0NS4uNjYx
NjJlM2ZhMjkzZWI3NGViZWYzYzBkNTBhYzE3ZWFjZmJkYzgwMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBA
IC03NzMsNyArNzczLDYgQEAgLSAodm9pZClzZXRVcEludGVyYWN0aW9uCiAgICAgW190b3VjaEFj
dGlvbkRvd25Td2lwZUdlc3R1cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOnNlbGZdOwogICAgIFtz
ZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl90b3VjaEFjdGlvbkRvd25Td2lwZUdlc3R1cmVSZWNv
Z25pemVyLmdldCgpXTsKIAotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIF90b3Vj
aFN0YXJ0RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0dGFibGVH
ZXN0dXJlcyA9IGFkb3B0TlMoW1tXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGFsbG9jXSBp
bml0V2l0aERlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZTpzZWxmXSk7CiAgICAgW190b3VjaFN0YXJ0
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0dGFibGVHZXN0dXJl
cyBzZXROYW1lOkAiVG91Y2ggc3RhcnQgZGVmZXJyZXIgKGltbWVkaWF0ZSByZXNldCkiXTsKIApA
QCAtNzkyLDExICs3OTEsMTMgQEAgLSAodm9pZClzZXRVcEludGVyYWN0aW9uCiAgICAgX3RvdWNo
RW5kRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JTeW50aGV0aWNUYXBHZXN0dXJlcyA9IGFk
b3B0TlMoW1tXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGFsbG9jXSBpbml0V2l0aERlZmVy
cmluZ0dlc3R1cmVEZWxlZ2F0ZTpzZWxmXSk7CiAgICAgW190b3VjaEVuZERlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyRm9yU3ludGhldGljVGFwR2VzdHVyZXMgc2V0TmFtZTpAIlRvdWNoIGVuZCBk
ZWZlcnJlciAoc3ludGhldGljIHRhcCkiXTsKIAotICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLl9kZWZlcnJpbmdHZXN0dXJlcykgeworICAgIGZv
ciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLmRlZmVycmlu
Z0dlc3R1cmVzKSB7CiAgICAgICAgIGdlc3R1cmUuZGVsZWdhdGUgPSBzZWxmOwogICAgICAgICBb
c2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpnZXN0dXJlXTsKICAgICB9Ci0jZW5kaWYgLy8gRU5B
QkxFKElPU19UT1VDSF9FVkVOVFMpCisKKyAgICBpZiAoX2dlc3R1cmVSZWNvZ25pemVyQ29uc2lz
dGVuY3lFbmZvcmNlcikKKyAgICAgICAgX2dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZv
cmNlci0+cmVzZXQoKTsKIAogICAgIF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIgPSBhZG9w
dE5TKFtbVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyIGFsbG9jXSBpbml0V2l0aFRh
cmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0b3IoX3dlYlRvdWNoRXZlbnRzUmVjb2duaXplZDopIHRv
dWNoRGVsZWdhdGU6c2VsZl0pOwogICAgIFtfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyIHNl
dERlbGVnYXRlOnNlbGZdOwpAQCAtOTY3LDEyICs5NjgsMTMgQEAgLSAodm9pZCljbGVhblVwSW50
ZXJhY3Rpb24KICAgICBbX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpu
aWxdOwogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl90b3VjaEV2ZW50R2VzdHVy
ZVJlY29nbml6ZXIuZ2V0KCldOwogCi0jaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCi0gICAg
Zm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGluIHNlbGYuX2RlZmVy
cmluZ0dlc3R1cmVzKSB7CisgICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpn
ZXN0dXJlIGluIHNlbGYuZGVmZXJyaW5nR2VzdHVyZXMpIHsKICAgICAgICAgZ2VzdHVyZS5kZWxl
Z2F0ZSA9IG5pbDsKICAgICAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6Z2VzdHVy
ZV07CiAgICAgfQotI2VuZGlmCisKKyAgICBpZiAoX2dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVu
Y3lFbmZvcmNlcikKKyAgICAgICAgX2dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNl
ci0+cmVzZXQoKTsKIAogI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKQogICAgIFtf
bW91c2VHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpuaWxdOwpAQCAtMTA5OCwxMCArMTEw
MCw4IEBAIC0gKHZvaWQpX2NhbmNlbFBlbmRpbmdLZXlFdmVudEhhbmRsZXIKIAogLSAodm9pZClf
cmVtb3ZlRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVycwogewotI2lmIEVOQUJMRShJT1NfVE9VQ0hf
RVZFTlRTKQotICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBp
biBzZWxmLl9kZWZlcnJpbmdHZXN0dXJlcykKKyAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXIgKmdlc3R1cmUgaW4gc2VsZi5kZWZlcnJpbmdHZXN0dXJlcykKICAgICAgICAgW3Nl
bGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6Z2VzdHVyZV07Ci0jZW5kaWYKICAgICBbc2VsZiBy
ZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyLmdldCgp
XTsKICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfc2luZ2xlVGFwR2VzdHVyZVJl
Y29nbml6ZXIuZ2V0KCldOwogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9oaWdo
bGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CkBAIC0xMTI1LDEwICsxMTI1
LDggQEAgLSAodm9pZClfcmVtb3ZlRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVycwogCiAtICh2b2lk
KV9hZGREZWZhdWx0R2VzdHVyZVJlY29nbml6ZXJzCiB7Ci0jaWYgRU5BQkxFKElPU19UT1VDSF9F
VkVOVFMpCi0gICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGlu
IHNlbGYuX2RlZmVycmluZ0dlc3R1cmVzKQorICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLmRlZmVycmluZ0dlc3R1cmVzKQogICAgICAgICBbc2Vs
ZiBhZGRHZXN0dXJlUmVjb2duaXplcjpnZXN0dXJlXTsKLSNlbmRpZgogICAgIFtzZWxmIGFkZEdl
c3R1cmVSZWNvZ25pemVyOl90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwogICAg
IFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplci5n
ZXQoKV07CiAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X2hpZ2hsaWdodExvbmdQcmVz
c0dlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKQEAgLTE1NjQsNyArMTU2Miw2IEBAIC0gKHZvaWQp
X3dlYlRvdWNoRXZlbnRzUmVjb2duaXplZDooVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25p
emVyICopZ2VzdHVyZVJlCiAgICAgICAgIGlmIChuYXRpdmVXZWJUb3VjaEV2ZW50LmlzUG90ZW50
aWFsVGFwKCkgJiYgc2VsZi5oYXNIaWRkZW5Db250ZW50RWRpdGFibGUgJiYgc2VsZi5faGFzRm9j
dXNlZEVsZW1lbnQgJiYgIXNlbGYud2luZG93LmtleVdpbmRvdykKICAgICAgICAgICAgIFtzZWxm
LndpbmRvdyBtYWtlS2V5V2luZG93XTsKIAotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQog
ICAgICAgICBhdXRvIHN0b3BEZWZlcnJpbmdOYXRpdmVHZXN0dXJlc0lmTmVlZGVkID0gW10gKE5T
QXJyYXk8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqPiAqZGVmZXJyaW5nR2VzdHVyZXMp
IHsKICAgICAgICAgICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVy
ZSBpbiBkZWZlcnJpbmdHZXN0dXJlcykgewogICAgICAgICAgICAgICAgIGlmIChnZXN0dXJlLnN0
YXRlID09IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZVBvc3NpYmxlKQpAQCAtMTU3Nyw3ICsxNTc0
LDYgQEAgLSAodm9pZClfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOihVSVdlYlRvdWNoRXZlbnRz
R2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmUKIAogICAgICAgICBpZiAoIV9wYWdlLT5pc0hh
bmRsaW5nUHJldmVudGFibGVUb3VjaEVuZCgpKQogICAgICAgICAgICAgc3RvcERlZmVycmluZ05h
dGl2ZUdlc3R1cmVzSWZOZWVkZWQoc2VsZi5fdG91Y2hFbmREZWZlcnJpbmdHZXN0dXJlcyk7Ci0j
ZW5kaWYgLy8gRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgfQogI2VuZGlmIC8vIEVOQUJM
RShUT1VDSF9FVkVOVFMpCiB9CkBAIC0xNzU1LDkgKzE3NTEsMjAgQEAgLSAodm9pZClfd2ViVG91
Y2hFdmVudDooY29uc3QgV2ViS2l0OjpOYXRpdmVXZWJUb3VjaEV2ZW50Jil0b3VjaEV2ZW50IHBy
ZXZlbnRzTmEKIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCistIChV
SVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXIgKil0b3VjaEV2ZW50R2VzdHVyZVJlY29n
bml6ZXIKK3sKKyAgICByZXR1cm4gX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplci5nZXQoKTsK
K30KIAotLSAoTlNBcnJheTxXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICo+ICopX2RlZmVy
cmluZ0dlc3R1cmVzCistIChXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZv
cmNlciYpZ2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyCit7CisgICAgaWYgKCFf
Z2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyKQorICAgICAgICBfZ2VzdHVyZVJl
Y29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyID0gbWFrZVVuaXF1ZTxXZWJLaXQ6Okdlc3R1cmVS
ZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcj4oc2VsZik7CisKKyAgICByZXR1cm4gKl9nZXN0
dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI7Cit9CisKKy0gKE5TQXJyYXk8V0tEZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplciAqPiAqKWRlZmVycmluZ0dlc3R1cmVzCiB7CiAgICAgYXV0
byBnZXN0dXJlcyA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTo2XTsKICAgICBb
Z2VzdHVyZXMgYWRkT2JqZWN0c0Zyb21BcnJheTpzZWxmLl90b3VjaFN0YXJ0RGVmZXJyaW5nR2Vz
dHVyZXNdOwpAQCAtMTgxNyw4ICsxODI0LDYgQEAgLSAoQk9PTClfaXNUb3VjaEVuZERlZmVycmlu
Z0dlc3R1cmU6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlCiAgICAgICAg
IHx8IGdlc3R1cmUgPT0gX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JEZWxh
eWVkUmVzZXR0YWJsZUdlc3R1cmVzOwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKElPU19UT1VDSF9F
VkVOVFMpCi0KIHN0YXRpYyBOU1ZhbHVlICpuc1NpemVGb3JUYXBIaWdobGlnaHRCb3JkZXJSYWRp
dXMoV2ViQ29yZTo6SW50U2l6ZSBib3JkZXJSYWRpdXMsIENHRmxvYXQgYm9yZGVyUmFkaXVzU2Nh
bGUpCiB7CiAgICAgcmV0dXJuIFtOU1ZhbHVlIHZhbHVlV2l0aENHU2l6ZTpDR1NpemVNYWtlKChi
b3JkZXJSYWRpdXMud2lkdGgoKSAqIGJvcmRlclJhZGl1c1NjYWxlKSArIG1pbmltdW1UYXBIaWdo
bGlnaHRSYWRpdXMsIChib3JkZXJSYWRpdXMuaGVpZ2h0KCkgKiBib3JkZXJSYWRpdXNTY2FsZSkg
KyBtaW5pbXVtVGFwSGlnaGxpZ2h0UmFkaXVzKV07CkBAIC0yMjIxLDEyICsyMjI2LDEwIEBAIHN0
YXRpYyBDbGFzcyB0YXBBbmRBSGFsZlJlY29nbml6ZXJDbGFzcygpCiAKIC0gKEJPT0wpZ2VzdHVy
ZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91
bGRSZWNvZ25pemVTaW11bHRhbmVvdXNseVdpdGhHZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJl
UmVjb2duaXplciopb3RoZXJHZXN0dXJlUmVjb2duaXplcgogewotI2lmIEVOQUJMRShJT1NfVE9V
Q0hfRVZFTlRTKQotICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVy
ZSBpbiBzZWxmLl9kZWZlcnJpbmdHZXN0dXJlcykgeworICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLmRlZmVycmluZ0dlc3R1cmVzKSB7CiAgICAg
ICAgIGlmIChpc1NhbWVQYWlyKGdlc3R1cmVSZWNvZ25pemVyLCBvdGhlckdlc3R1cmVSZWNvZ25p
emVyLCBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyLmdldCgpLCBnZXN0dXJlKSkKICAgICAg
ICAgICAgIHJldHVybiBZRVM7CiAgICAgfQotI2VuZGlmCiAKICAgICBpZiAoW2dlc3R1cmVSZWNv
Z25pemVyIGlzS2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5jbGFzc10g
JiYgW290aGVyR2VzdHVyZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFzczpXS0RlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyLmNsYXNzXSkKICAgICAgICAgcmV0dXJuIFlFUzsKQEAgLTc1NTQsMjMgKzc1
NTcsMzEgQEAgLSAodm9pZClfaGlkZVRhcmdldGVkUHJldmlld0NvbnRhaW5lclZpZXdzCiAKICNw
cmFnbWEgbWFyayAtIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZQogCi0tIChC
T09MKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyICopZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJHZXN0dXJlc0FmdGVy
QmVnaW5uaW5nVG91Y2hlc1dpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50CistIChXZWJLaXQ6OlNo
b3VsZERlZmVyR2VzdHVyZXMpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciB3aWxsQmVnaW5U
b3VjaGVzV2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQKIHsKLSAgICByZXR1cm4gIVtzZWxmIGdl
c3R1cmVSZWNvZ25pemVyOmRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGlzSW50ZXJydXB0aW5n
TW9tZW50dW1TY3JvbGxpbmdXaXRoRXZlbnQ6ZXZlbnRdOworICAgIHNlbGYuZ2VzdHVyZVJlY29n
bml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmJlZ2luVHJhY2tpbmcoZGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXIpOworCisgICAgcmV0dXJuIFtzZWxmIGdlc3R1cmVSZWNvZ25pemVyOmRlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyIGlzSW50ZXJydXB0aW5nTW9tZW50dW1TY3JvbGxpbmdXaXRoRXZl
bnQ6ZXZlbnRdID8gV2ViS2l0OjpTaG91bGREZWZlckdlc3R1cmVzOjpObyA6IFdlYktpdDo6U2hv
dWxkRGVmZXJHZXN0dXJlczo6WWVzOworfQorCistICh2b2lkKWRlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXIgZGlkVHJhbnNpdGlvblRvU3RhdGU6KFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZSlz
dGF0ZQoreworICAgIGlmIChzdGF0ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVFbmRlZCB8
fCBzdGF0ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVGYWlsZWQgfHwgc3RhdGUgPT0gVUlH
ZXN0dXJlUmVjb2duaXplclN0YXRlQ2FuY2VsbGVkKQorICAgICAgICBzZWxmLmdlc3R1cmVSZWNv
Z25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5lbmRUcmFja2luZyhkZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplcik7CiB9CiAKIC0gKHZvaWQpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6KFdLRGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBkaWRF
bmRUb3VjaGVzV2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQKIHsKKyAgICBzZWxmLmdlc3R1cmVS
ZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5lbmRUcmFja2luZyhkZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplcik7CisKICAgICBpZiAoZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuc3RhdGUg
IT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlUG9zc2libGUpCiAgICAgICAgIHJldHVybjsKIAot
I2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIGlmIChfcGFnZS0+aXNIYW5kbGluZ1By
ZXZlbnRhYmxlVG91Y2hTdGFydCgpICYmIFtzZWxmIF9pc1RvdWNoU3RhcnREZWZlcnJpbmdHZXN0
dXJlOmRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyXSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aWYgKF9wYWdlLT5pc0hhbmRsaW5nUHJldmVudGFibGVUb3VjaEVuZCgpICYmIFtzZWxmIF9pc1Rv
dWNoRW5kRGVmZXJyaW5nR2VzdHVyZTpkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcl0pCiAgICAg
ICAgIHJldHVybjsKLSNlbmRpZgogCiAgICAgaWYgKFtfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25p
emVyIHN0YXRlXSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVQb3NzaWJsZSkKICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLRGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Rl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmgKaW5kZXggNTc2MGM3NGMxZGM4MWVhYzliZjk3MGQx
ZjZhYjZjM2ZjZDE2MTI0ZS4uMGYzYjUyYjk1ZTdjNzkzYzJhY2NmZDhjODJlMmQ4ZmVmYTMyNGYx
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2Vz
dHVyZVJlY29nbml6ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tEZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplci5oCkBAIC0yNywxMiArMjcsMTkgQEAKIAogI2ltcG9ydCA8
VUlLaXQvVUlLaXQuaD4KIAorbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gY2xhc3MgU2hvdWxk
RGVmZXJHZXN0dXJlcyA6IGJvb2wgeyBObywgWWVzIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCiBAY2xhc3MgV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjsKIAogQHByb3RvY29sIFdL
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZQotLSAoQk9PTClkZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyIHNob3VsZERlZmVyR2VzdHVyZXNBZnRlckJlZ2lubmluZ1RvdWNoZXNX
aXRoRXZlbnQ6KFVJRXZlbnQgKilldmVudDsKLS0gKEJPT0wpZGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXI6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplciBkaWRFbmRUb3VjaGVzV2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQ7CiAtIChCT09M
KWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
ICopZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJPdGhlckdlc3R1cmVSZWNv
Z25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXI7CistIChXZWJL
aXQ6OlNob3VsZERlZmVyR2VzdHVyZXMpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6KFdLRGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciB3aWxs
QmVnaW5Ub3VjaGVzV2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQ7CistICh2b2lkKWRlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopZGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXIgZGlkRW5kVG91Y2hlc1dpdGhFdmVudDooVUlFdmVudCAqKWV2
ZW50OworLSAodm9pZClkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplciAqKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGRpZFRyYW5zaXRpb25U
b1N0YXRlOihVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGUpc3RhdGU7CiBAZW5kCiAKIEBpbnRlcmZh
Y2UgV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciA6IFVJR2VzdHVyZVJlY29nbml6ZXIKQEAg
LTQxLDggKzQ4LDYgQEAKIC0gKHZvaWQpc2V0RGVmYXVsdFByZXZlbnRlZDooQk9PTClkZWZhdWx0
UHJldmVudGVkOwogLSAoQk9PTClzaG91bGREZWZlckdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1
cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXI7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCB3ZWFrLCByZWFkb25seSkgaWQgPFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0
ZT4gZGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlOwotCiBAZW5kCiAKICNlbmRpZiAvLyBQTEFURk9S
TShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5tbQppbmRleCBlZDZlZmU2YzNlMGFhOWY2
Njk0NWMxMmQ3MmI5NWRiMWYxMmUyNmIwLi44ZTY1NWQ3NmRlMzRhZjg1YmFkNzA1MDQyMzE4MWE1
ZjQ4Zjk4OTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tEZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5tbQpAQCAtNDEsMTggKzQxLDEzIEBAIC0g
KGluc3RhbmNldHlwZSlpbml0V2l0aERlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZTooaWQgPFdLRGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKLS0gKGlkIDxXS0Rl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGU+KWRlZmVycmluZ0dlc3R1cmVEZWxlZ2F0
ZQotewotICAgIHJldHVybiBfZGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlLmdldCgpLmdldCgpOwot
fQotCiAtICh2b2lkKXRvdWNoZXNCZWdhbjooTlNTZXQ8VUlUb3VjaCAqPiAqKXRvdWNoZXMgd2l0
aEV2ZW50OihVSUV2ZW50ICopZXZlbnQKIHsKKyAgICBhdXRvIHNob3VsZERlZmVyR2VzdHVyZXMg
PSBbX2RlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZSBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjpz
ZWxmIHdpbGxCZWdpblRvdWNoZXNXaXRoRXZlbnQ6ZXZlbnRdOwogICAgIFtzdXBlciB0b3VjaGVz
QmVnYW46dG91Y2hlcyB3aXRoRXZlbnQ6ZXZlbnRdOwotICAgIGlmIChbX2RlZmVycmluZ0dlc3R1
cmVEZWxlZ2F0ZSBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjpzZWxmIHNob3VsZERlZmVyR2Vz
dHVyZXNBZnRlckJlZ2lubmluZ1RvdWNoZXNXaXRoRXZlbnQ6ZXZlbnRdKQotICAgICAgICByZXR1
cm47CiAKLSAgICBzZWxmLnN0YXRlID0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlRmFpbGVkOwor
ICAgIGlmIChzaG91bGREZWZlckdlc3R1cmVzID09IFdlYktpdDo6U2hvdWxkRGVmZXJHZXN0dXJl
czo6Tm8pCisgICAgICAgIHNlbGYuc3RhdGUgPSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVGYWls
ZWQ7CiB9CiAKIC0gKHZvaWQpdG91Y2hlc0VuZGVkOihOU1NldDxVSVRvdWNoICo+ICopdG91Y2hl
cyB3aXRoRXZlbnQ6KFVJRXZlbnQgKilldmVudApAQCAtODYsNiArODEsMTUgQEAgLSAoQk9PTClz
aG91bGREZWZlckdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVy
ZVJlY29nbml6ZXIKICAgICByZXR1cm4gW19kZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGUgZGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXI6c2VsZiBzaG91bGREZWZlck90aGVyR2VzdHVyZVJlY29nbml6
ZXI6Z2VzdHVyZVJlY29nbml6ZXJdOwogfQogCistICh2b2lkKXNldFN0YXRlOihVSUdlc3R1cmVS
ZWNvZ25pemVyU3RhdGUpc3RhdGUKK3sKKyAgICBhdXRvIHByZXZpb3VzU3RhdGUgPSBzZWxmLnN0
YXRlOworICAgIFtzdXBlciBzZXRTdGF0ZTpzdGF0ZV07CisKKyAgICBpZiAocHJldmlvdXNTdGF0
ZSAhPSBzZWxmLnN0YXRlKQorICAgICAgICBbX2RlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZSBkZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplcjpzZWxmIGRpZFRyYW5zaXRpb25Ub1N0YXRlOnN0YXRlXTsK
K30KKwogQGVuZAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ1YjA4ZTA0ZDUw
N2NlZDE2ODllMDBlODRhYmViMDU4ZjcwZWM5ZmIuLjMxOWYyZTRjNzc4Y2Q0ZDVmNDNmMDU2MTdm
NTMxMzM5YzZhYmI5MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjAwNiw2ICsyMDA2LDcgQEAKIAkJRjRBNkQ2QkMyNTRDQTNFOTAw
QjY1RkFBIC8qIFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEE2RDZCQjI1NENBM0U5MDBCNjVGQUEgLyogU2hh
cmVkRGlzcGxheUxpc3RIYW5kbGUuaCAqLzsgfTsKIAkJRjRCQTMzRjIyNTc1N0U4OTAwMEEzQ0U4
IC8qIFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QkEzM0YwMjU3NTdFODkwMDBBM0NFOCAv
KiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmggKi87IH07CiAJCUY0Q0IwOUU1
MjI1RDVBMDkwMDg5MTQ4NyAvKiBXZWJzaXRlTWVkaWFTb3VyY2VQb2xpY3kuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Q0IwOUU0MjI1RDVBMDMwMDg5
MTQ4NyAvKiBXZWJzaXRlTWVkaWFTb3VyY2VQb2xpY3kuaCAqLzsgfTsKKwkJRjRDRjFFOUQyNUU0
MERDQzAwMEY5RDczIC8qIEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRDRjFFOUIyNUU0
MERDQzAwMEY5RDczIC8qIEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5oICov
OyB9OwogCQlGNEQ1RjUxRDIwNjA4N0ExMDAzOEJCQTggLyogV0tUZXh0SW5wdXRMaXN0Vmlld0Nv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0RDVGNTE5MjA2MDg3QTAwMDM4QkJBOCAvKiBXS1RleHRJbnB1dExpc3RWaWV3Q29udHJvbGxl
ci5oICovOyB9OwogCQlGNEQ1RjUxRjIwNjA4N0ExMDAzOEJCQTggLyogV0tRdWlja2JvYXJkTGlz
dFZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNEQ1RjUxQjIwNjA4N0ExMDAzOEJCQTggLyogV0tRdWlja2JvYXJkTGlzdFZpZXdD
b250cm9sbGVyLmggKi87IH07CiAJCUY0REI1NEU2MjMxOUU3MzMwMDlFMzE1NSAvKiBXS0hpZ2hs
aWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNERCNTRFNDIzMTlFNzMzMDA5RTMxNTUgLyogV0tIaWdo
bGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5oICovOyB9OwpAQCAtNTg4NCw2ICs1ODg1
LDggQEAKIAkJRjRCQTMzRjAyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VFeHRyYWN0aW9uR2Vz
dHVyZVJlY29nbml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJl
UmVjb2duaXplci5oOyBwYXRoID0gaW9zL1dLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRCQTMzRjEyNTc1N0U4OTAwMEEz
Q0U4IC8qIFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tOyBwYXRoID0g
aW9zL1dLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0Q0IwOUU0MjI1RDVBMDMwMDg5MTQ4NyAvKiBXZWJzaXRlTWVkaWFT
b3VyY2VQb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vic2l0ZU1lZGlhU291cmNlUG9saWN5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0Q0YxRTlCMjVFNDBEQ0MwMDBGOUQ3MyAv
KiBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmg7
IHBhdGggPSBpb3MvR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0Q0YxRTlDMjVFNDBEQ0MwMDBGOUQ3MyAvKiBHZXN0
dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIu
bW07IHBhdGggPSBpb3MvR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ1RjUxOTIwNjA4N0EwMDAzOEJCQTggLyog
V0tUZXh0SW5wdXRMaXN0Vmlld0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV0tUZXh0SW5wdXRMaXN0Vmlld0NvbnRyb2xsZXIuaDsgcGF0aCA9IGlvcy9mb3Jt
cy9XS1RleHRJbnB1dExpc3RWaWV3Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNEQ1RjUxQTIwNjA4N0ExMDAzOEJCQTggLyogV0tUZXh0SW5wdXRMaXN0Vmlld0Nv
bnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS1Rl
eHRJbnB1dExpc3RWaWV3Q29udHJvbGxlci5tbTsgcGF0aCA9IGlvcy9mb3Jtcy9XS1RleHRJbnB1
dExpc3RWaWV3Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRE
NUY1MUIyMDYwODdBMTAwMzhCQkE4IC8qIFdLUXVpY2tib2FyZExpc3RWaWV3Q29udHJvbGxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1F1aWNrYm9hcmRMaXN0Vmlld0Nv
bnRyb2xsZXIuaDsgcGF0aCA9IGlvcy9mb3Jtcy9XS1F1aWNrYm9hcmRMaXN0Vmlld0NvbnRyb2xs
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc1NzksNiArNzU4Miw4IEBACiAJ
CQkJRjQ5NkE0MzAxRjU4QTI3MjAwNEMxNzU3IC8qIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5t
bSAqLywKIAkJCQlDRENEQzk5QjI0OEZFOERBMDBBNjk1MjIgLyogRW5kb3dtZW50U3RhdGVUcmFj
a2VyLmggKi8sCiAJCQkJQ0RDREM5OUMyNDhGRThEQTAwQTY5NTIyIC8qIEVuZG93bWVudFN0YXRl
VHJhY2tlci5tbSAqLywKKwkJCQlGNENGMUU5QjI1RTQwRENDMDAwRjlENzMgLyogR2VzdHVyZVJl
Y29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmggKi8sCisJCQkJRjRDRjFFOUMyNUU0MERDQzAw
MEY5RDczIC8qIEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5tbSAqLywKIAkJ
CQkyREQ0NUFEQzFFNUY4OTcyMDA2QzM1NUYgLyogSW5wdXRWaWV3VXBkYXRlRGVmZXJyZXIuaCAq
LywKIAkJCQkyREQ0NUFERDFFNUY4OTcyMDA2QzM1NUYgLyogSW5wdXRWaWV3VXBkYXRlRGVmZXJy
ZXIubW0gKi8sCiAJCQkJMEZDQjRFMzYxOEJCRTA0NDAwMEZDRkM5IC8qIFBhZ2VDbGllbnRJbXBs
SU9TLmggKi8sCkBAIC0xMTc0NCw2ICsxMTc0OSw3IEBACiAJCQkJQkMwNkY0MkYxMkRCQjlCNjAw
MkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzA2RjQ0QTEyREJEMUY1MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwNkY0M0ExMkRC
Q0NGQjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRjRDRjFFOUQyNUU0MERDQzAwMEY5RDczIC8qIEdlc3R1cmVSZWNvZ25p
emVyQ29uc2lzdGVuY3lFbmZvcmNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRBOTQ0QTQxODg0
RTRGMDAwRUQ4NkRCIC8qIEdlc3R1cmVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDYxNEYx
MzIyNURFRDg3NTAwNzAwNkU3IC8qIEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRjQwQkJCNDEyNTdGRjQ2RTAwNjc0NjNBIC8qIEdQVVByb2Nlc3NX
YWtldXBNZXNzYWdlQXJndW1lbnRzLmggaW4gSGVhZGVycyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421287</attachid>
            <date>2021-02-22 22:38:10 -0800</date>
            <delta_ts>2021-02-23 06:34:44 -0800</delta_ts>
            <desc>Unified source build fix</desc>
            <filename>bug-222216-20210222223809.patch</filename>
            <type>text/plain</type>
            <size>32977</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQyNDdmNmI0Yjc2ZjJlZGI3
OTk5Y2YzZWJhMmE1NzhhMDY4MmU3YTYuLjZiNTFmNDdjOGJlY2YwMGUyM2E2M2FkMzUzODFkZTI2
NDVkZThmZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTAgQEAKKzIwMjEtMDItMjIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRkIGEgd2F0
Y2hkb2cgdGltZXIgdG8gZm9yY2libHkgcmVzZXQgZGVmZXJyaW5nIGdlc3R1cmUgcmVjb2duaXpl
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjIx
NgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBBZGQgYSBt
ZWNoYW5pc20gdG8gZGV0ZWN0IGFuZCByZXNvbHZlIHNpdHVhdGlvbnMgd2hlcmUgYXQgbGVhc3Qg
b25lIGRlZmVycmluZyBnZXN0dXJlIHJlY29nbml6ZXIKKyAgICAgICAgKGBXS0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyYCkgaXMgc3R1Y2sgaW4gUG9zc2libGUgc3RhdGUgYWZ0ZXIgZW5kaW5n
IHRvdWNoZXMsIGJ1dCB0aGUgdG91Y2ggZXZlbnQgZ2VzdHVyZQorICAgICAgICByZWNvZ25pemVy
IGlzIHVuYWJsZSB0byBiZSByZXNldCAoaS5lLiBuZWl0aGVyIHBvc3NpYmxlIG9yIHJlY29nbml6
aW5nKS4gVGhpcyBzdGF0ZSBpcyBpbmRpY2F0aXZlIG9mIGEgZ2VuZXJhbAorICAgICAgICBjbGFz
cyBvZiBidWdzIHJlZ2FyZGluZyBuYXRpdmUgZ2VzdHVyZSBkZWZlcnJhbCwgd2hlcmVpbiBvdXIg
Imdlc3R1cmUgZ2F0ZXMiIG5ldmVyIGVuZCB1cCBiZWluZyBsaWZ0ZWQgYWZ0ZXIKKyAgICAgICAg
ZW5kaW5nIGFsbCB0b3VjaGVzIGluIHRoZSB2aWV3LiBPbmUgc3VjaCBleGFtcGxlIG9mIHRoaXMg
dHlwZSBvZiBidWcgd2FzIGZpeGVkIGluIHIyNzI1ODQsIHdoZXJlIGFsbCBpbnRlcmFjdGlvbgor
ICAgICAgICAodG91Y2ggZXZlbnRzLCBzY3JvbGxpbmcsIHRhcHBpbmcpIGR1ZSB0byB0aGUgdG91
Y2ggZW5kIGRlZmVycmVycyBuZXZlciBleGl0aW5nIFBvc3NpYmxlIHN0YXRlIGFmdGVyIGxvbmcK
KyAgICAgICAgcHJlc3NpbmcgdG8gcHJlc2VudCBhIGNvbnRleHQgbWVudS4KKworICAgICAgICBU
byBtYWtlIHRoZXNlIGtpbmRzIG9mIGJ1Z3MgYm90aCBlYXNpZXIgdG8gZGlhZ25vc2UgYW5kIGxl
c3MgZmF0YWwgaW4gdGhlIGZ1dHVyZSwgd2UgaW50cm9kdWNlIGEgd2F0Y2hkb2cgdGltZXIKKyAg
ICAgICAgdGhhdCBkaXNwYXRjaGVzIGFmdGVyIGVuZGluZyBhbGwgdG91Y2hlcyBvbiB0aGUgY29u
dGVudCB2aWV3LCBhbmQgY2hlY2tzIHRoZSBjb25zaXN0ZW5jeSBvZiBkZWZlcnJpbmcgZ2VzdHVy
ZQorICAgICAgICByZWNvZ25pemVycyBpbiB0aGUgdmlldzsgaWYgd2UgZGV0ZWN0IHN0dWNrIGRl
ZmVycmluZyBnZXN0dXJlcywgd2UgaGFuZGxlIHRoaXMgYnkgZm9yY2libHkgcmVzZXR0aW5nIHRo
ZSBzdHVjaworICAgICAgICBkZWZlcnJpbmcgZ2VzdHVyZXMgYW5kIGxvZ2dpbmcgYSBmYXVsdCBt
ZXNzYWdlLgorCisgICAgICAgIEkgbWFudWFsbHkgdmVyaWZpZWQgdGhpcyBjaGFuZ2UgYnkgcmV2
ZXJ0aW5nIG15IGZpeCBmb3IgdGhlIGFmb3JlbWVudGlvbmVkIGJ1ZyAocjI3MjU4NCksIGFuZCBv
YnNlcnZpbmcgYm90aCAoMSkKKyAgICAgICAgYSBzeXN0ZW0gbG9nIGZhdWx0IG1lc3NhZ2UsIGFu
ZCAoMikgdGhhdCBpbnRlcmFjdGlvbnMgY29udGludWVkIHRvIHdvcmsgZXZlbiB3aXRob3V0IHRo
ZSBmaXggaW4gcjI3MjU4NCwgYWZ0ZXIKKyAgICAgICAgdGhlIHdhdGNoZG9nIHRpbWVyIGZpcmVk
LiBTZWUgYmVsb3cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50
eHQ6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9HZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5
RW5mb3JjZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLRGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL0dlc3R1
cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5tbTogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6Okdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcjo6R2VzdHVyZVJlY29nbml6
ZXJDb25zaXN0ZW5jeUVuZm9yY2VyKToKKyAgICAgICAgKFdlYktpdDo6R2VzdHVyZVJlY29nbml6
ZXJDb25zaXN0ZW5jeUVuZm9yY2VyOjpiZWdpblRyYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6
R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyOjplbmRUcmFja2luZyk6CisgICAg
ICAgIChXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcjo6cmVzZXQp
OgorICAgICAgICAoV2ViS2l0OjpHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI6
OnRpbWVyRmlyZWQpOgorCisgICAgICAgIEFkZCBhIGhlbHBlciBjbGFzcyB0aGF0IHdyYXBzIGEg
YFJ1bkxvb3A6OlRpbWVyYCBmb3IgdGhlIG1haW4gcnVubG9vcCwgYW5kIHNjaGVkdWxlcyBhIDEg
c2Vjb25kIHRpbWVyIGFmdGVyIGFsbAorICAgICAgICBkZWZlcnJpbmcgZ2VzdHVyZXMgaGF2ZSBl
bmRlZDsgYXNzdW1pbmcgbm8gbmV3IHRvdWNoZXMgYmVnaW4gYWZ0ZXIgdGhpcyB0aW1lciBpcyBz
Y2hlZHVsZWQsIHdlJ2xsIHBlcmZvcm0gYQorICAgICAgICBjb25zaXN0ZW5jeSBjaGVjayBvdmVy
IHRoZSBjb250ZW50IHZpZXcncyBnZXN0dXJlcyBhbmQgcGVyZm9ybSBhIGxvZyBmYXVsdCBhbmQg
Zm9yY2UgZGVmZXJyaW5nIGdlc3R1cmVzIHRvIGVuZAorICAgICAgICBpZiBuZWVkZWQuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IHNldFVwSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBjbGVhblVwSW50ZXJhY3Rpb25dKToKKworICAgICAgICBNYWtlIHN1cmUgdGhhdCB3ZSBy
ZXNldCBhbnkgZXh0YW50IGBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXJgIGlm
IHRoZSB3ZWIgcHJvY2VzcyBjcmFzaGVzLgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3Jl
bW92ZURlZmF1bHRHZXN0dXJlUmVjb2duaXplcnNdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfYWRkRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVyc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IF93ZWJUb3VjaEV2ZW50c1JlY29nbml6ZWQ6XSk6CisKKyAgICAgICAgQWRqdXN0IGEgZmV3
IGNvbXBpbGUtdGltZSBndWFyZHMgc28gdGhhdCBkZWZlcnJpbmcgZ2VzdHVyZSByZWNvZ25pemVy
cyBleGlzdCBvbiB0aGUgdmlldywgZXZlbiBpZgorICAgICAgICBgRU5BQkxFX0lPU19UT1VDSF9F
VkVOVFNgIGlzIG9mZi4gVGhpcyBtYWtlcyBzb21lIG9mIHRoZSBnZXN0dXJlIGRlZmVycmFsIGNv
ZGUgdGhyb3VnaG91dCB0aGlzIGZpbGUgZWFzaWVyIHRvCisgICAgICAgIHJlYXNvbiBhYm91dCBp
biBub24taW50ZXJuYWwgaU9TIGJ1aWxkcywgc2luY2Ugd2UgZG9uJ3QgbmVlZCB0byBzcHJpbmts
ZSBhcyBtYW55IGBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUylgCisgICAgICAgIGNoZWNrcyB0aHJv
dWdob3V0IHRoaXMgY2xhc3MuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyB0b3VjaEV2ZW50
R2VzdHVyZVJlY29nbml6ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBnZXN0dXJlUmVj
b2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBk
ZWZlcnJpbmdHZXN0dXJlc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGdlc3R1cmVSZWNv
Z25pemVyOnNob3VsZFJlY29nbml6ZVNpbXVsdGFuZW91c2x5V2l0aEdlc3R1cmVSZWNvZ25pemVy
Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
OndpbGxCZWdpblRvdWNoZXNXaXRoRXZlbnQ6XSk6CisKKyAgICAgICAgUmVmYWN0b3IgYC1kZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplcjpzaG91bGREZWZlckdlc3R1cmVzQWZ0ZXJCZWdpbm5pbmdU
b3VjaGVzV2l0aEV2ZW50OmAgc28gdGhhdCBpdCByZXR1cm5zIGFuCisgICAgICAgIGVudW0gZmxh
ZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGdpdmVuIGdlc3R1cmUgc2hvdWxkIGJlIGFsbG93ZWQg
dG8gYmVnaW4gZGVmZXJyaW5nIG5hdGl2ZSBnZXN0dXJlczsgYnkgbWFraW5nCisgICAgICAgIHRo
aXMgYC1kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjp3aWxsQmVnaW5Ub3VjaGVzV2l0aEV2ZW50
OmAsIHdlIGNhbiBub3cgcHV0IHN0YXRlIG1hbmFnZW1lbnQgbG9naWMgaGVyZSB0aGF0J3MKKyAg
ICAgICAgcmVzcG9uc2libGUgZm9yIHVwZGF0aW5nIHRoZSBgR2VzdHVyZVJlY29nbml6ZXJDb25z
aXN0ZW5jeUVuZm9yY2VyYC4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyOmRpZFRyYW5zaXRpb25Ub1N0YXRlOl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOmRpZEVuZFRvdWNoZXNXaXRoRXZl
bnQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RlZmVycmluZ0dlc3R1cmVzXSk6IERl
bGV0ZWQuCisKKyAgICAgICAgUmVuYW1lIHRoaXMgdG8gYC1kZWZlcnJpbmdHZXN0dXJlc2AgYW5k
IGV4cG9zZSBpdCBhcyBhIHJlYWRvbmx5IHByb3BlcnR5LCBmb3IgdXNlIGJ5IHRoZQorICAgICAg
ICBgR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyYC4KKworICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOnNob3VsZERlZmVyR2VzdHVy
ZXNBZnRlckJlZ2lubmluZ1RvdWNoZXNXaXRoRXZlbnQ6XSk6IERlbGV0ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLm1tOgorICAgICAgICAo
LVtXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHRvdWNoZXNCZWdhbjp3aXRoRXZlbnQ6XSk6
CisgICAgICAgICgtW1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgc2V0U3RhdGU6XSk6CisK
KyAgICAgICAgQWRkIGEgZGVsZWdhdGUgaG9vayB0byBpbmZvcm0gYFdLQ29udGVudFZpZXdgIHdo
ZW4gdGhlIGdlc3R1cmUgcmVjb2duaXplciBzdGF0ZSBjaGFuZ2VzLgorCisgICAgICAgICgtW1dL
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgZGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlXSk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5oOgorCisgICAg
ICAgIEZpeCBhIG1pc3NpbmcgaW5jbHVkZSB0aGF0IHJlc3VsdHMgaW4gYSBidWlsZCBmYWlsdXJl
IGR1ZSB0byBjaGFuZ2VkIHVuaWZpZWQgc291cmNlcy4KKworICAgICAgICAqIFdlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTAyLTIyICBEZXZpbiBSb3Vzc28gIDxkcm91
c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBSRUdSRVNTSU9OKHIy
NzMxNDMpOiBjcmFzaCBzaG9ydGx5IGFmdGVyIHNob3dpbmcgdGhlIEFwcGxlIFBheSBzaGVldApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGU1ZGI2YzE5NzU0NWExOWExZWVlYmVjZTExYjJjNDU4
OGQ5YjQyMzcuLmIxY2U1YTNkYzI5OWUxMDViYzFjYTA3MWFkYTM3Y2E1YWM5N2RhYWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKQEAgLTQ1OCw2ICs0NTgsNyBAQCBVSVByb2Nlc3MvaW9zL2Z1bGxz
Y3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbQogCiBVSVByb2Nlc3MvaW9z
L0FwcEtpdFNvZnRMaW5rLm1tCiBVSVByb2Nlc3MvaW9zL0RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0
ZS5tbQorVUlQcm9jZXNzL2lvcy9HZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIu
bW0KIFVJUHJvY2Vzcy9pb3MvSW5wdXRWaWV3VXBkYXRlRGVmZXJyZXIubW0KIFVJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW0KIFVJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklP
Uy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL0dlc3R1cmVSZWNv
Z25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L0dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwOTY2
ODY3YjM5NzY1MTA3YjA2OGExOTU2YTNjYThjY2VlYjQ0YzIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVu
Zm9yY2VyLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCA8d3RmL0Zhc3RNYWxsb2MuaD4KKyNp
bXBvcnQgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2lt
cG9ydCA8d3RmL1J1bkxvb3AuaD4KKyNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgorCitAY2xh
c3MgV0tDb250ZW50VmlldzsKK0BjbGFzcyBXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5j
eUVuZm9yY2VyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIpOworcHVibGlj
OgorICAgIEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcihXS0NvbnRlbnRWaWV3
ICopOworICAgIH5HZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIoKTsKKworICAg
IHZvaWQgYmVnaW5UcmFja2luZyhXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopOworICAg
IHZvaWQgZW5kVHJhY2tpbmcoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKTsKKworICAg
IHZvaWQgcmVzZXQoKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHRpbWVyRmlyZWQoKTsKKworICAg
IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+IG1fdmlldzsKKyAgICBSdW5Mb29wOjpUaW1lcjxH
ZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI+IG1fdGltZXI7CisgICAgSGFzaFNl
dDxSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcj4+IG1fZGVmZXJyaW5nR2Vz
dHVyZVJlY29nbml6ZXJzV2l0aFRvdWNoZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL0dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVu
Y3lFbmZvcmNlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ODA1NTA0NjUzMjRmMWVmZWM3MTJkYjExZTgwZDIz
NDllNzljZWU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L0dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5tbQpAQCAtMCwwICsxLDkzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJHZXN0dXJlUmVjb2du
aXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaCIKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisK
KyNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgIldLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5o
IgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVu
Zm9yY2VyOjpHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIoV0tDb250ZW50Vmll
dyAqdmlldykKKyAgICA6IG1fdmlldyh2aWV3KQorICAgICwgbV90aW1lcihSdW5Mb29wOjptYWlu
KCksIHRoaXMsICZHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI6OnRpbWVyRmly
ZWQpCit7CisgICAgQVNTRVJUKG1fdmlldyk7Cit9CisKK0dlc3R1cmVSZWNvZ25pemVyQ29uc2lz
dGVuY3lFbmZvcmNlcjo6fkdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcigpID0g
ZGVmYXVsdDsKKwordm9pZCBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI6OmJl
Z2luVHJhY2tpbmcoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSkKK3sKKyAg
ICBtX3RpbWVyLnN0b3AoKTsKKyAgICBtX2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyc1dpdGhU
b3VjaGVzLmFkZChnZXN0dXJlKTsKK30KKwordm9pZCBHZXN0dXJlUmVjb2duaXplckNvbnNpc3Rl
bmN5RW5mb3JjZXI6OmVuZFRyYWNraW5nKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKmdl
c3R1cmUpCit7CisgICAgaWYgKCFtX2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyc1dpdGhUb3Vj
aGVzLnJlbW92ZShnZXN0dXJlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fZGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXJzV2l0aFRvdWNoZXMuaXNFbXB0eSgpKQorICAgICAgICBtX3Rp
bWVyLnN0YXJ0T25lU2hvdCgxX3MpOworfQorCit2b2lkIEdlc3R1cmVSZWNvZ25pemVyQ29uc2lz
dGVuY3lFbmZvcmNlcjo6cmVzZXQoKQoreworICAgIG1fdGltZXIuc3RvcCgpOworICAgIG1fZGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJzV2l0aFRvdWNoZXMuY2xlYXIoKTsKK30KKwordm9pZCBH
ZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI6OnRpbWVyRmlyZWQoKQoreworICAg
IGlmICghbV92aWV3KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHN0cm9uZ1ZpZXcgPSBt
X3ZpZXcuZ2V0KCk7CisgICAgYXV0byBwb3NzaWJsZURlZmVycmluZ0dlc3R1cmVzID0gW05TTXV0
YWJsZUFycmF5PFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKj4gYXJyYXldOworICAgIGZv
ciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBbc3Ryb25nVmlldyBk
ZWZlcnJpbmdHZXN0dXJlc10pIHsKKyAgICAgICAgaWYgKGdlc3R1cmUuc3RhdGUgPT0gVUlHZXN0
dXJlUmVjb2duaXplclN0YXRlUG9zc2libGUpCisgICAgICAgICAgICBbcG9zc2libGVEZWZlcnJp
bmdHZXN0dXJlcyBhZGRPYmplY3Q6Z2VzdHVyZV07CisgICAgfQorCisgICAgaWYgKCFwb3NzaWJs
ZURlZmVycmluZ0dlc3R1cmVzLmNvdW50KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHRv
dWNoRXZlbnRTdGF0ZSA9IFtzdHJvbmdWaWV3IHRvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplcl0u
c3RhdGU7CisgICAgaWYgKHRvdWNoRXZlbnRTdGF0ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3Rh
dGVQb3NzaWJsZSB8fCB0b3VjaEV2ZW50U3RhdGUgPT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRl
QmVnYW4gfHwgdG91Y2hFdmVudFN0YXRlID09IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZUNoYW5n
ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplciAqZ2VzdHVyZSBpbiBwb3NzaWJsZURlZmVycmluZ0dlc3R1cmVzKQorICAgICAgICBbZ2Vz
dHVyZSBzZXRTdGF0ZTpVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVFbmRlZF07CisKKyAgICBSRUxF
QVNFX0xPR19GQVVMVChWaWV3R2VzdHVyZXMsICJUb3VjaCBldmVudCBnZXN0dXJlIHJlY29nbml6
ZXIgZmFpbGVkIHRvIHJlc2V0IGFmdGVyIGVuZGluZyBnZXN0dXJlIGRlZmVycmFsOiAlQCIsIHBv
c3NpYmxlRGVmZXJyaW5nR2VzdHVyZXMpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggYTVhMjlmMWMy
OTZiZjRhZTU4Mzk3ZTI2OGI4NzFjZmQxM2RiNzNlZS4uZjQ5NWZiMGIxMWUzMGY2OTYyMjEzMzM1
MWE3NjdmNjcyMjg2NmVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9y
dCAiRWRpdG9yU3RhdGUuaCIKICNpbXBvcnQgIkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uaCIK
ICNpbXBvcnQgIkZyYW1lSW5mb0RhdGEuaCIKKyNpbXBvcnQgIkdlc3R1cmVSZWNvZ25pemVyQ29u
c2lzdGVuY3lFbmZvcmNlci5oIgogI2ltcG9ydCAiR2VzdHVyZVR5cGVzLmgiCiAjaW1wb3J0ICJJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIgogI2ltcG9ydCAiUGFzdGVib2FyZEFj
Y2Vzc0ludGVudC5oIgpAQCAtMjU1LDE0ICsyNTYsMTMgQEAgcHJpdmF0ZToKIEBlbmQKIAogQGlu
dGVyZmFjZSBXS0NvbnRlbnRWaWV3ICgpIHsKLSNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykK
ICAgICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoU3RhcnRE
ZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvckltbWVkaWF0ZWx5UmVzZXR0YWJsZUdlc3R1cmVz
OwogICAgIFJldGFpblB0cjxXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyPiBfdG91Y2hTdGFy
dERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJlc2V0dGFibGVHZXN0dXJlczsK
ICAgICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoU3RhcnRE
ZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvclN5bnRoZXRpY1RhcEdlc3R1cmVzOwogICAgIFJl
dGFpblB0cjxXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyPiBfdG91Y2hFbmREZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplckZvckltbWVkaWF0ZWx5UmVzZXR0YWJsZUdlc3R1cmVzOwogICAgIFJl
dGFpblB0cjxXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyPiBfdG91Y2hFbmREZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplckZvckRlbGF5ZWRSZXNldHRhYmxlR2VzdHVyZXM7CiAgICAgUmV0YWlu
UHRyPFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaEVuZERlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyRm9yU3ludGhldGljVGFwR2VzdHVyZXM7Ci0jZW5kaWYKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViS2l0OjpHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI+IF9n
ZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI7CiAgICAgUmV0YWluUHRyPFVJV2Vi
VG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXpl
cjsKIAogICAgIEJPT0wgX3RvdWNoRXZlbnRzQ2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzOwpAQCAt
NTI1LDYgKzUyNSw5IEBAIHByaXZhdGU6CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IFVJVmlldyAqaW5wdXRBY2Nlc3NvcnlWaWV3Rm9yV2ViVmlldzsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgQk9PTCBwcmV2ZW50c1Bhbm5pbmdJblhBeGlzOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHByZXZlbnRzUGFubmluZ0luWUF4aXM7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXpl
ciAqdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyOworQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBOU0FycmF5PFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKj4gKmRlZmVycmlu
Z0dlc3R1cmVzOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXZWJLaXQ6Okdlc3R1
cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlciYgZ2VzdHVyZVJlY29nbml6ZXJDb25zaXN0
ZW5jeUVuZm9yY2VyOwogCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc3Ryb25nKSBVSVZpZXcgPFdLRm9ybUNvbnRyb2w+ICpkYXRhTGlzdFRleHRT
dWdnZXN0aW9uc0lucHV0VmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGE3NTQzNjA1ZmZiMGRiMzE2
NDY2YWNmYmI0ZDk3MWZiNjliNmE2NDUuLjY2MTYyZTNmYTI5M2ViNzRlYmVmM2MwZDUwYWMxN2Vh
Y2ZiZGM4MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNzczLDcgKzc3Myw2IEBAIC0gKHZvaWQpc2V0
VXBJbnRlcmFjdGlvbgogICAgIFtfdG91Y2hBY3Rpb25Eb3duU3dpcGVHZXN0dXJlUmVjb2duaXpl
ciBzZXREZWxlZ2F0ZTpzZWxmXTsKICAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpfdG91
Y2hBY3Rpb25Eb3duU3dpcGVHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAKLSNpZiBFTkFCTEUo
SU9TX1RPVUNIX0VWRU5UUykKICAgICBfdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyRm9ySW1tZWRpYXRlbHlSZXNldHRhYmxlR2VzdHVyZXMgPSBhZG9wdE5TKFtbV0tEZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhEZWZlcnJpbmdHZXN0dXJlRGVsZWdh
dGU6c2VsZl0pOwogICAgIFtfdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9y
SW1tZWRpYXRlbHlSZXNldHRhYmxlR2VzdHVyZXMgc2V0TmFtZTpAIlRvdWNoIHN0YXJ0IGRlZmVy
cmVyIChpbW1lZGlhdGUgcmVzZXQpIl07CiAKQEAgLTc5MiwxMSArNzkxLDEzIEBAIC0gKHZvaWQp
c2V0VXBJbnRlcmFjdGlvbgogICAgIF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
Rm9yU3ludGhldGljVGFwR2VzdHVyZXMgPSBhZG9wdE5TKFtbV0tEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplciBhbGxvY10gaW5pdFdpdGhEZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGU6c2VsZl0pOwog
ICAgIFtfdG91Y2hFbmREZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvclN5bnRoZXRpY1RhcEdl
c3R1cmVzIHNldE5hbWU6QCJUb3VjaCBlbmQgZGVmZXJyZXIgKHN5bnRoZXRpYyB0YXApIl07CiAK
LSAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1cmUgaW4gc2VsZi5f
ZGVmZXJyaW5nR2VzdHVyZXMpIHsKKyAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIgKmdlc3R1cmUgaW4gc2VsZi5kZWZlcnJpbmdHZXN0dXJlcykgewogICAgICAgICBnZXN0dXJl
LmRlbGVnYXRlID0gc2VsZjsKICAgICAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6Z2Vz
dHVyZV07CiAgICAgfQotI2VuZGlmIC8vIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQorCisgICAg
aWYgKF9nZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIpCisgICAgICAgIF9nZXN0
dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXItPnJlc2V0KCk7CiAKICAgICBfdG91Y2hF
dmVudEdlc3R1cmVSZWNvZ25pemVyID0gYWRvcHROUyhbW1VJV2ViVG91Y2hFdmVudHNHZXN0dXJl
UmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKF93
ZWJUb3VjaEV2ZW50c1JlY29nbml6ZWQ6KSB0b3VjaERlbGVnYXRlOnNlbGZdKTsKICAgICBbX3Rv
dWNoRXZlbnRHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpzZWxmXTsKQEAgLTk2NywxMiAr
OTY4LDEzIEBAIC0gKHZvaWQpY2xlYW5VcEludGVyYWN0aW9uCiAgICAgW190b3VjaEV2ZW50R2Vz
dHVyZVJlY29nbml6ZXIgc2V0RGVsZWdhdGU6bmlsXTsKICAgICBbc2VsZiByZW1vdmVHZXN0dXJl
UmVjb2duaXplcjpfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKIAotI2lmIEVO
QUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplciAqZ2VzdHVyZSBpbiBzZWxmLl9kZWZlcnJpbmdHZXN0dXJlcykgeworICAgIGZvciAoV0tE
ZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLmRlZmVycmluZ0dlc3R1
cmVzKSB7CiAgICAgICAgIGdlc3R1cmUuZGVsZWdhdGUgPSBuaWw7CiAgICAgICAgIFtzZWxmIHJl
bW92ZUdlc3R1cmVSZWNvZ25pemVyOmdlc3R1cmVdOwogICAgIH0KLSNlbmRpZgorCisgICAgaWYg
KF9nZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIpCisgICAgICAgIF9nZXN0dXJl
UmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXItPnJlc2V0KCk7CiAKICNpZiBIQVZFKFVJS0lU
X1dJVEhfTU9VU0VfU1VQUE9SVCkKICAgICBbX21vdXNlR2VzdHVyZVJlY29nbml6ZXIgc2V0RGVs
ZWdhdGU6bmlsXTsKQEAgLTEwOTgsMTAgKzExMDAsOCBAQCAtICh2b2lkKV9jYW5jZWxQZW5kaW5n
S2V5RXZlbnRIYW5kbGVyCiAKIC0gKHZvaWQpX3JlbW92ZURlZmF1bHRHZXN0dXJlUmVjb2duaXpl
cnMKIHsKLSNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKLSAgICBmb3IgKFdLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1cmUgaW4gc2VsZi5fZGVmZXJyaW5nR2VzdHVyZXMpCisg
ICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGluIHNlbGYuZGVm
ZXJyaW5nR2VzdHVyZXMpCiAgICAgICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOmdl
c3R1cmVdOwotI2VuZGlmCiAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X3RvdWNo
RXZlbnRHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJl
Y29nbml6ZXI6X3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKICAgICBbc2VsZiBy
ZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfaGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6
ZXIuZ2V0KCldOwpAQCAtMTEyNSwxMCArMTEyNSw4IEBAIC0gKHZvaWQpX3JlbW92ZURlZmF1bHRH
ZXN0dXJlUmVjb2duaXplcnMKIAogLSAodm9pZClfYWRkRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVy
cwogewotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotICAgIGZvciAoV0tEZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLl9kZWZlcnJpbmdHZXN0dXJlcykKKyAg
ICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1cmUgaW4gc2VsZi5kZWZl
cnJpbmdHZXN0dXJlcykKICAgICAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6Z2VzdHVy
ZV07Ci0jZW5kaWYKICAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpfdG91Y2hFdmVudEdl
c3R1cmVSZWNvZ25pemVyLmdldCgpXTsKICAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpf
c2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwogICAgIFtzZWxmIGFkZEdlc3R1cmVS
ZWNvZ25pemVyOl9oaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CkBA
IC0xNTY0LDcgKzE1NjIsNiBAQCAtICh2b2lkKV93ZWJUb3VjaEV2ZW50c1JlY29nbml6ZWQ6KFVJ
V2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZQogICAgICAgICBpZiAo
bmF0aXZlV2ViVG91Y2hFdmVudC5pc1BvdGVudGlhbFRhcCgpICYmIHNlbGYuaGFzSGlkZGVuQ29u
dGVudEVkaXRhYmxlICYmIHNlbGYuX2hhc0ZvY3VzZWRFbGVtZW50ICYmICFzZWxmLndpbmRvdy5r
ZXlXaW5kb3cpCiAgICAgICAgICAgICBbc2VsZi53aW5kb3cgbWFrZUtleVdpbmRvd107CiAKLSNp
ZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICAgICAgYXV0byBzdG9wRGVmZXJyaW5nTmF0
aXZlR2VzdHVyZXNJZk5lZWRlZCA9IFtdIChOU0FycmF5PFdLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIgKj4gKmRlZmVycmluZ0dlc3R1cmVzKSB7CiAgICAgICAgICAgICBmb3IgKFdLRGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1cmUgaW4gZGVmZXJyaW5nR2VzdHVyZXMpIHsKICAg
ICAgICAgICAgICAgICBpZiAoZ2VzdHVyZS5zdGF0ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3Rh
dGVQb3NzaWJsZSkKQEAgLTE1NzcsNyArMTU3NCw2IEBAIC0gKHZvaWQpX3dlYlRvdWNoRXZlbnRz
UmVjb2duaXplZDooVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJl
CiAKICAgICAgICAgaWYgKCFfcGFnZS0+aXNIYW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hFbmQoKSkK
ICAgICAgICAgICAgIHN0b3BEZWZlcnJpbmdOYXRpdmVHZXN0dXJlc0lmTmVlZGVkKHNlbGYuX3Rv
dWNoRW5kRGVmZXJyaW5nR2VzdHVyZXMpOwotI2VuZGlmIC8vIEVOQUJMRShJT1NfVE9VQ0hfRVZF
TlRTKQogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogfQpAQCAtMTc1NSw5
ICsxNzUxLDIwIEBAIC0gKHZvaWQpX3dlYlRvdWNoRXZlbnQ6KGNvbnN0IFdlYktpdDo6TmF0aXZl
V2ViVG91Y2hFdmVudCYpdG91Y2hFdmVudCBwcmV2ZW50c05hCiB9CiAjZW5kaWYKIAotI2lmIEVO
QUJMRShJT1NfVE9VQ0hfRVZFTlRTKQorLSAoVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25p
emVyICopdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyCit7CisgICAgcmV0dXJuIF90b3VjaEV2
ZW50R2VzdHVyZVJlY29nbml6ZXIuZ2V0KCk7Cit9CiAKLS0gKE5TQXJyYXk8V0tEZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplciAqPiAqKV9kZWZlcnJpbmdHZXN0dXJlcworLSAoV2ViS2l0OjpHZXN0
dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXImKWdlc3R1cmVSZWNvZ25pemVyQ29uc2lz
dGVuY3lFbmZvcmNlcgoreworICAgIGlmICghX2dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lF
bmZvcmNlcikKKyAgICAgICAgX2dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlciA9
IG1ha2VVbmlxdWU8V2ViS2l0OjpHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXI+
KHNlbGYpOworCisgICAgcmV0dXJuICpfZ2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9y
Y2VyOworfQorCistIChOU0FycmF5PFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKj4gKilk
ZWZlcnJpbmdHZXN0dXJlcwogewogICAgIGF1dG8gZ2VzdHVyZXMgPSBbTlNNdXRhYmxlQXJyYXkg
YXJyYXlXaXRoQ2FwYWNpdHk6Nl07CiAgICAgW2dlc3R1cmVzIGFkZE9iamVjdHNGcm9tQXJyYXk6
c2VsZi5fdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVzXTsKQEAgLTE4MTcsOCArMTgyNCw2IEBA
IC0gKEJPT0wpX2lzVG91Y2hFbmREZWZlcnJpbmdHZXN0dXJlOihXS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyICopZ2VzdHVyZQogICAgICAgICB8fCBnZXN0dXJlID09IF90b3VjaEVuZERlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJlc2V0dGFibGVHZXN0dXJlczsKIH0KIAot
I2VuZGlmIC8vIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotCiBzdGF0aWMgTlNWYWx1ZSAqbnNT
aXplRm9yVGFwSGlnaGxpZ2h0Qm9yZGVyUmFkaXVzKFdlYkNvcmU6OkludFNpemUgYm9yZGVyUmFk
aXVzLCBDR0Zsb2F0IGJvcmRlclJhZGl1c1NjYWxlKQogewogICAgIHJldHVybiBbTlNWYWx1ZSB2
YWx1ZVdpdGhDR1NpemU6Q0dTaXplTWFrZSgoYm9yZGVyUmFkaXVzLndpZHRoKCkgKiBib3JkZXJS
YWRpdXNTY2FsZSkgKyBtaW5pbXVtVGFwSGlnaGxpZ2h0UmFkaXVzLCAoYm9yZGVyUmFkaXVzLmhl
aWdodCgpICogYm9yZGVyUmFkaXVzU2NhbGUpICsgbWluaW11bVRhcEhpZ2hsaWdodFJhZGl1cyld
OwpAQCAtMjIyMSwxMiArMjIyNiwxMCBAQCBzdGF0aWMgQ2xhc3MgdGFwQW5kQUhhbGZSZWNvZ25p
emVyQ2xhc3MoKQogCiAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25p
emVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVjb2duaXplU2ltdWx0YW5lb3VzbHlXaXRo
R2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIqKW90aGVyR2VzdHVyZVJlY29n
bml6ZXIKIHsKLSNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKLSAgICBmb3IgKFdLRGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1cmUgaW4gc2VsZi5fZGVmZXJyaW5nR2VzdHVyZXMp
IHsKKyAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1cmUgaW4gc2Vs
Zi5kZWZlcnJpbmdHZXN0dXJlcykgewogICAgICAgICBpZiAoaXNTYW1lUGFpcihnZXN0dXJlUmVj
b2duaXplciwgb3RoZXJHZXN0dXJlUmVjb2duaXplciwgX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2du
aXplci5nZXQoKSwgZ2VzdHVyZSkpCiAgICAgICAgICAgICByZXR1cm4gWUVTOwogICAgIH0KLSNl
bmRpZgogCiAgICAgaWYgKFtnZXN0dXJlUmVjb2duaXplciBpc0tpbmRPZkNsYXNzOldLRGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXIuY2xhc3NdICYmIFtvdGhlckdlc3R1cmVSZWNvZ25pemVyIGlz
S2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5jbGFzc10pCiAgICAgICAg
IHJldHVybiBZRVM7CkBAIC03NTU0LDIzICs3NTU3LDMxIEBAIC0gKHZvaWQpX2hpZGVUYXJnZXRl
ZFByZXZpZXdDb250YWluZXJWaWV3cwogCiAjcHJhZ21hIG1hcmsgLSBXS0RlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyRGVsZWdhdGUKIAotLSAoQk9PTClkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
cjooV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyIHNob3VsZERlZmVyR2VzdHVyZXNBZnRlckJlZ2lubmluZ1RvdWNoZXNXaXRoRXZlbnQ6KFVJ
RXZlbnQgKilldmVudAorLSAoV2ViS2l0OjpTaG91bGREZWZlckdlc3R1cmVzKWRlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopZGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXIgd2lsbEJlZ2luVG91Y2hlc1dpdGhFdmVudDooVUlFdmVudCAqKWV2
ZW50CiB7Ci0gICAgcmV0dXJuICFbc2VsZiBnZXN0dXJlUmVjb2duaXplcjpkZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplciBpc0ludGVycnVwdGluZ01vbWVudHVtU2Nyb2xsaW5nV2l0aEV2ZW50OmV2
ZW50XTsKKyAgICBzZWxmLmdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5iZWdp
blRyYWNraW5nKGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyKTsKKworICAgIHJldHVybiBbc2Vs
ZiBnZXN0dXJlUmVjb2duaXplcjpkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBpc0ludGVycnVw
dGluZ01vbWVudHVtU2Nyb2xsaW5nV2l0aEV2ZW50OmV2ZW50XSA/IFdlYktpdDo6U2hvdWxkRGVm
ZXJHZXN0dXJlczo6Tm8gOiBXZWJLaXQ6OlNob3VsZERlZmVyR2VzdHVyZXM6OlllczsKK30KKwor
LSAodm9pZClkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplciAqKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGRpZFRyYW5zaXRpb25Ub1N0YXRl
OihVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGUpc3RhdGUKK3sKKyAgICBpZiAoc3RhdGUgPT0gVUlH
ZXN0dXJlUmVjb2duaXplclN0YXRlRW5kZWQgfHwgc3RhdGUgPT0gVUlHZXN0dXJlUmVjb2duaXpl
clN0YXRlRmFpbGVkIHx8IHN0YXRlID09IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZUNhbmNlbGxl
ZCkKKyAgICAgICAgc2VsZi5nZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuZW5k
VHJhY2tpbmcoZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIpOwogfQogCiAtICh2b2lkKWRlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopZGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgZGlkRW5kVG91Y2hlc1dpdGhFdmVudDooVUlFdmVudCAq
KWV2ZW50CiB7CisgICAgc2VsZi5nZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIu
ZW5kVHJhY2tpbmcoZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIpOworCiAgICAgaWYgKGRlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyLnN0YXRlICE9IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZVBv
c3NpYmxlKQogICAgICAgICByZXR1cm47CiAKLSNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykK
ICAgICBpZiAoX3BhZ2UtPmlzSGFuZGxpbmdQcmV2ZW50YWJsZVRvdWNoU3RhcnQoKSAmJiBbc2Vs
ZiBfaXNUb3VjaFN0YXJ0RGVmZXJyaW5nR2VzdHVyZTpkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
cl0pCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChfcGFnZS0+aXNIYW5kbGluZ1ByZXZlbnRh
YmxlVG91Y2hFbmQoKSAmJiBbc2VsZiBfaXNUb3VjaEVuZERlZmVycmluZ0dlc3R1cmU6ZGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXJdKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYKIAogICAgIGlm
IChbX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplciBzdGF0ZV0gPT0gVUlHZXN0dXJlUmVjb2du
aXplclN0YXRlUG9zc2libGUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5oCmlu
ZGV4IDU3NjBjNzRjMWRjODFlYWM5YmY5NzBkMWY2YWI2YzNmY2QxNjEyNGUuLjBmM2I1MmI5NWU3
Yzc5M2MyYWNjZmQ4YzgyZTJkOGZlZmEzMjRmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaApAQCAt
MjcsMTIgKzI3LDE5IEBACiAKICNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CiAKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitlbnVtIGNsYXNzIFNob3VsZERlZmVyR2VzdHVyZXMgOiBib29sIHsgTm8sIFll
cyB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwogQGNsYXNzIFdLRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXI7CiAKIEBwcm90b2NvbCBXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRGVs
ZWdhdGUKLS0gKEJPT0wpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5nR2Vz
dHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlckdl
c3R1cmVzQWZ0ZXJCZWdpbm5pbmdUb3VjaGVzV2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQ7Ci0t
IChCT09MKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyICopZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgZGlkRW5kVG91Y2hlc1dpdGhFdmVu
dDooVUlFdmVudCAqKWV2ZW50OwogLSAoQk9PTClkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjoo
V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
IHNob3VsZERlZmVyT3RoZXJHZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAq
KWdlc3R1cmVSZWNvZ25pemVyOworLSAoV2ViS2l0OjpTaG91bGREZWZlckdlc3R1cmVzKWRlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopZGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgd2lsbEJlZ2luVG91Y2hlc1dpdGhFdmVudDooVUlFdmVu
dCAqKWV2ZW50OworLSAodm9pZClkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGRpZEVuZFRv
dWNoZXNXaXRoRXZlbnQ6KFVJRXZlbnQgKilldmVudDsKKy0gKHZvaWQpZGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplciBkaWRUcmFuc2l0aW9uVG9TdGF0ZTooVUlHZXN0dXJlUmVjb2duaXplclN0
YXRlKXN0YXRlOwogQGVuZAogCiBAaW50ZXJmYWNlIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIgOiBVSUdlc3R1cmVSZWNvZ25pemVyCkBAIC00MSw4ICs0OCw2IEBACiAtICh2b2lkKXNldERl
ZmF1bHRQcmV2ZW50ZWQ6KEJPT0wpZGVmYXVsdFByZXZlbnRlZDsKIC0gKEJPT0wpc2hvdWxkRGVm
ZXJHZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25p
emVyOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgd2VhaywgcmVhZG9ubHkpIGlkIDxXS0RlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGU+IGRlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZTsK
LQogQGVuZAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIubW0KaW5kZXggZWQ2ZWZlNmMzZTBhYTlmNjY5NDVjMTJkNzJiOTVkYjFmMTJlMjZiMC4uOGU2
NTVkNzZkZTM0YWY4NWJhZDcwNTA0MjMxODFhNWY0OGY5ODk3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIubW0KQEAgLTQxLDE4ICs0MSwxMyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhEZWZlcnJp
bmdHZXN0dXJlRGVsZWdhdGU6KGlkIDxXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pegogICAgIHJl
dHVybiBzZWxmOwogfQogCi0tIChpZCA8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckRlbGVn
YXRlPilkZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGUKLXsKLSAgICByZXR1cm4gX2RlZmVycmluZ0dl
c3R1cmVEZWxlZ2F0ZS5nZXQoKS5nZXQoKTsKLX0KLQogLSAodm9pZCl0b3VjaGVzQmVnYW46KE5T
U2V0PFVJVG91Y2ggKj4gKil0b3VjaGVzIHdpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50CiB7Cisg
ICAgYXV0byBzaG91bGREZWZlckdlc3R1cmVzID0gW19kZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGUg
ZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6c2VsZiB3aWxsQmVnaW5Ub3VjaGVzV2l0aEV2ZW50
OmV2ZW50XTsKICAgICBbc3VwZXIgdG91Y2hlc0JlZ2FuOnRvdWNoZXMgd2l0aEV2ZW50OmV2ZW50
XTsKLSAgICBpZiAoW19kZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGUgZGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXI6c2VsZiBzaG91bGREZWZlckdlc3R1cmVzQWZ0ZXJCZWdpbm5pbmdUb3VjaGVzV2l0
aEV2ZW50OmV2ZW50XSkKLSAgICAgICAgcmV0dXJuOwogCi0gICAgc2VsZi5zdGF0ZSA9IFVJR2Vz
dHVyZVJlY29nbml6ZXJTdGF0ZUZhaWxlZDsKKyAgICBpZiAoc2hvdWxkRGVmZXJHZXN0dXJlcyA9
PSBXZWJLaXQ6OlNob3VsZERlZmVyR2VzdHVyZXM6Ok5vKQorICAgICAgICBzZWxmLnN0YXRlID0g
VUlHZXN0dXJlUmVjb2duaXplclN0YXRlRmFpbGVkOwogfQogCiAtICh2b2lkKXRvdWNoZXNFbmRl
ZDooTlNTZXQ8VUlUb3VjaCAqPiAqKXRvdWNoZXMgd2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQK
QEAgLTg2LDYgKzgxLDE1IEBAIC0gKEJPT0wpc2hvdWxkRGVmZXJHZXN0dXJlUmVjb2duaXplcjoo
VUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCiAgICAgcmV0dXJuIFtfZGVm
ZXJyaW5nR2VzdHVyZURlbGVnYXRlIGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOnNlbGYgc2hv
dWxkRGVmZXJPdGhlckdlc3R1cmVSZWNvZ25pemVyOmdlc3R1cmVSZWNvZ25pemVyXTsKIH0KIAor
LSAodm9pZClzZXRTdGF0ZTooVUlHZXN0dXJlUmVjb2duaXplclN0YXRlKXN0YXRlCit7CisgICAg
YXV0byBwcmV2aW91c1N0YXRlID0gc2VsZi5zdGF0ZTsKKyAgICBbc3VwZXIgc2V0U3RhdGU6c3Rh
dGVdOworCisgICAgaWYgKHByZXZpb3VzU3RhdGUgIT0gc2VsZi5zdGF0ZSkKKyAgICAgICAgW19k
ZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGUgZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6c2VsZiBk
aWRUcmFuc2l0aW9uVG9TdGF0ZTpzdGF0ZV07Cit9CisKIEBlbmQKIAogI2VuZGlmIC8vIFBMQVRG
T1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tQcmludGluZ1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5n
Vmlldy5oCmluZGV4IDU5YzkwZTc5MzQyZmIyOGI0MDUwNjlmMDNkOGVjM2RjMTYyYjRlZWQuLmI2
NDI0OWJkODhhYmEzNDMxNDNkNmJlYzVhOThhNTJlOGM1ZDUwNWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW1w
b3J0IDx3dGYvTG9jay5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3Rm
L1ZlY3Rvci5oPgorI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAKIEBjbGFzcyBXS1ByaW50
aW5nVmlld0RhdGE7CiBAY2xhc3MgUERGRGVzdGluYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0NWIwOGUwNGQ1MDdjZWQxNjg5
ZTAwZTg0YWJlYjA1OGY3MGVjOWZiLi4zMTlmMmU0Yzc3OGNkNGQ1ZjQzZjA1NjE3ZjUzMTMzOWM2
YWJiOTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTIwMDYsNiArMjAwNiw3IEBACiAJCUY0QTZENkJDMjU0Q0EzRTkwMEI2NUZBQSAv
KiBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjRBNkQ2QkIyNTRDQTNFOTAwQjY1RkFBIC8qIFNoYXJlZERpc3Bs
YXlMaXN0SGFuZGxlLmggKi87IH07CiAJCUY0QkEzM0YyMjU3NTdFODkwMDBBM0NFOCAvKiBXS0lt
YWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEJBMzNGMDI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFn
ZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oICovOyB9OwogCQlGNENCMDlFNTIyNUQ1QTA5
MDA4OTE0ODcgLyogV2Vic2l0ZU1lZGlhU291cmNlUG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNENCMDlFNDIyNUQ1QTAzMDA4OTE0ODcgLyog
V2Vic2l0ZU1lZGlhU291cmNlUG9saWN5LmggKi87IH07CisJCUY0Q0YxRTlEMjVFNDBEQ0MwMDBG
OUQ3MyAvKiBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Q0YxRTlCMjVFNDBEQ0MwMDBG
OUQ3MyAvKiBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaCAqLzsgfTsKIAkJ
RjRENUY1MUQyMDYwODdBMTAwMzhCQkE4IC8qIFdLVGV4dElucHV0TGlzdFZpZXdDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ1RjUx
OTIwNjA4N0EwMDAzOEJCQTggLyogV0tUZXh0SW5wdXRMaXN0Vmlld0NvbnRyb2xsZXIuaCAqLzsg
fTsKIAkJRjRENUY1MUYyMDYwODdBMTAwMzhCQkE4IC8qIFdLUXVpY2tib2FyZExpc3RWaWV3Q29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjRENUY1MUIyMDYwODdBMTAwMzhCQkE4IC8qIFdLUXVpY2tib2FyZExpc3RWaWV3Q29udHJvbGxl
ci5oICovOyB9OwogCQlGNERCNTRFNjIzMTlFNzMzMDA5RTMxNTUgLyogV0tIaWdobGlnaHRMb25n
UHJlc3NHZXN0dXJlUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjREQjU0RTQyMzE5RTczMzAwOUUzMTU1IC8qIFdLSGlnaGxpZ2h0TG9u
Z1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuaCAqLzsgfTsKQEAgLTU4ODQsNiArNTg4NSw4IEBACiAJ
CUY0QkEzM0YwMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNv
Z25pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6
ZXIuaDsgcGF0aCA9IGlvcy9XS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0QkEzM0YxMjU3NTdFODkwMDBBM0NFOCAvKiBX
S0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5tbTsgcGF0aCA9IGlvcy9XS0lt
YWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNENCMDlFNDIyNUQ1QTAzMDA4OTE0ODcgLyogV2Vic2l0ZU1lZGlhU291cmNlUG9s
aWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVNZWRpYVNvdXJjZVBvbGljeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNENGMUU5QjI1RTQwRENDMDAwRjlENzMgLyogR2VzdHVy
ZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5oOyBwYXRoID0g
aW9zL0dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNENGMUU5QzI1RTQwRENDMDAwRjlENzMgLyogR2VzdHVyZVJlY29n
bml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLm1tOyBwYXRo
ID0gaW9zL0dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRENUY1MTkyMDYwODdBMDAwMzhCQkE4IC8qIFdLVGV4dElu
cHV0TGlzdFZpZXdDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFdLVGV4dElucHV0TGlzdFZpZXdDb250cm9sbGVyLmg7IHBhdGggPSBpb3MvZm9ybXMvV0tUZXh0
SW5wdXRMaXN0Vmlld0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjRENUY1MUEyMDYwODdBMTAwMzhCQkE4IC8qIFdLVGV4dElucHV0TGlzdFZpZXdDb250cm9sbGVy
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tUZXh0SW5wdXRM
aXN0Vmlld0NvbnRyb2xsZXIubW07IHBhdGggPSBpb3MvZm9ybXMvV0tUZXh0SW5wdXRMaXN0Vmll
d0NvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDVGNTFCMjA2
MDg3QTEwMDM4QkJBOCAvKiBXS1F1aWNrYm9hcmRMaXN0Vmlld0NvbnRyb2xsZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tRdWlja2JvYXJkTGlzdFZpZXdDb250cm9sbGVy
Lmg7IHBhdGggPSBpb3MvZm9ybXMvV0tRdWlja2JvYXJkTGlzdFZpZXdDb250cm9sbGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NTc5LDYgKzc1ODIsOCBAQAogCQkJCUY0OTZB
NDMwMUY1OEEyNzIwMDRDMTc1NyAvKiBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUubW0gKi8sCiAJ
CQkJQ0RDREM5OUIyNDhGRThEQTAwQTY5NTIyIC8qIEVuZG93bWVudFN0YXRlVHJhY2tlci5oICov
LAogCQkJCUNEQ0RDOTlDMjQ4RkU4REEwMEE2OTUyMiAvKiBFbmRvd21lbnRTdGF0ZVRyYWNrZXIu
bW0gKi8sCisJCQkJRjRDRjFFOUIyNUU0MERDQzAwMEY5RDczIC8qIEdlc3R1cmVSZWNvZ25pemVy
Q29uc2lzdGVuY3lFbmZvcmNlci5oICovLAorCQkJCUY0Q0YxRTlDMjVFNDBEQ0MwMDBGOUQ3MyAv
KiBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIubW0gKi8sCiAJCQkJMkRENDVB
REMxRTVGODk3MjAwNkMzNTVGIC8qIElucHV0Vmlld1VwZGF0ZURlZmVycmVyLmggKi8sCiAJCQkJ
MkRENDVBREQxRTVGODk3MjAwNkMzNTVGIC8qIElucHV0Vmlld1VwZGF0ZURlZmVycmVyLm1tICov
LAogCQkJCTBGQ0I0RTM2MThCQkUwNDQwMDBGQ0ZDOSAvKiBQYWdlQ2xpZW50SW1wbElPUy5oICov
LApAQCAtMTE3NDQsNiArMTE3NDksNyBAQAogCQkJCUJDMDZGNDJGMTJEQkI5QjYwMDJENzhERSAv
KiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMwNkY0NEExMkRCRDFGNTAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDZGNDNBMTJEQkNDRkIwMDJE
NzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFkZXJzICov
LAorCQkJCUY0Q0YxRTlEMjVFNDBEQ0MwMDBGOUQ3MyAvKiBHZXN0dXJlUmVjb2duaXplckNvbnNp
c3RlbmN5RW5mb3JjZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQTk0NEE0MTg4NEU0RjAwMEVE
ODZEQiAvKiBHZXN0dXJlVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MTRGMTMyMjVERUQ4
NzUwMDcwMDZFNyAvKiBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUY0MEJCQjQxMjU3RkY0NkUwMDY3NDYzQSAvKiBHUFVQcm9jZXNzV2FrZXVwTWVz
c2FnZUFyZ3VtZW50cy5oIGluIEhlYWRlcnMgKi8sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>