<?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>220480</bug_id>
          
          <creation_ts>2021-01-08 13:27:22 -0800</creation_ts>
          <short_desc>[Cocoa] Web Inspector: move browser domain activation methods back to WKWebView and UIDelegate</short_desc>
          <delta_ts>2021-01-12 16:19:44 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1718426</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-01-08 13:27:22 -0800</bug_when>
    <thetext>After some recent cleanups in WKInspectorDelegate and related code, it&apos;s no longer necessary to keep these backend methods in an inspector-specific delegate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718430</commentid>
    <comment_count>1</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-01-08 13:55:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/71977924&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718431</commentid>
    <comment_count>2</comment_count>
      <attachid>417301</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-01-08 13:56:52 -0800</bug_when>
    <thetext>Created attachment 417301
Patch v1.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718461</commentid>
    <comment_count>3</comment_count>
      <attachid>417306</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-01-08 15:05:06 -0800</bug_when>
    <thetext>Created attachment 417306
Patch v1.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718486</commentid>
    <comment_count>4</comment_count>
      <attachid>417306</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-01-08 16:05:48 -0800</bug_when>
    <thetext>Comment on attachment 417306
Patch v1.1

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

r=me

&gt; Source/WebKit/ChangeLog:70
&gt; +        Drive-by: rename m_page to m_inspectedPage to emphasize that this
&gt; +        class exists as part of Web Inspector&apos;s backend, not its frontend.

+1 nice!

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1660
&gt; +

Style: I&apos;d remove this newline

&gt; Source/WebKit/UIProcess/Cocoa/UIDelegate.mm:1568
&gt; +    [(id &lt;WKUIDelegatePrivate&gt;)delegate _webViewDidEnableInspectorBrowserDomain:m_uiDelegate-&gt;m_webView.get().get()];

NIT: I&apos;d do the cast on :1564 so that if `delegate` is needed for other things it doesn&apos;t have to be casted multiple times

&gt; Source/WebKit/UIProcess/Cocoa/UIDelegate.mm:1583
&gt; +    [(id &lt;WKUIDelegatePrivate&gt;)delegate _webViewDidDisableInspectorBrowserDomain:m_uiDelegate-&gt;m_webView.get().get()];

ditto (:1568)

&gt; Source/WebKit/UIProcess/Inspector/WebPageInspectorController.cpp:252
&gt; +    if (agent)

NIT: I prefer to use `m_enabledBrowserAgent` for stuff like this in case there&apos;s some funky logic inside `operator=` that prevents the `m_enabledBrowserAgent` from actually changing

&gt; Source/WebKit/UIProcess/Inspector/WebPageInspectorController.cpp:260
&gt; +    if (auto* browserAgent = enabledBrowserAgent())

NIT: you could just use `m_enabledBrowserAgent`

&gt; Source/WebKit/UIProcess/Inspector/WebPageInspectorController.cpp:266
&gt; +    if (auto* browserAgent = enabledBrowserAgent())

ditto (:260)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719049</commentid>
    <comment_count>5</comment_count>
      <attachid>417470</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-01-12 10:47:07 -0800</bug_when>
    <thetext>Created attachment 417470
Patch v1.2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719146</commentid>
    <comment_count>6</comment_count>
      <attachid>417470</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-01-12 15:17:56 -0800</bug_when>
    <thetext>Comment on attachment 417470
Patch v1.2

Needs to be landed manually with internal changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719165</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-12 16:19:42 -0800</bug_when>
    <thetext>Committed r271424: &lt;https://trac.webkit.org/changeset/271424&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417470.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417301</attachid>
            <date>2021-01-08 13:56:52 -0800</date>
            <delta_ts>2021-01-08 15:05:05 -0800</delta_ts>
            <desc>Patch v1.0</desc>
            <filename>bug-220480-20210108135651.patch</filename>
            <type>text/plain</type>
            <size>31227</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBlZWY2NGY3ZjNiMzM1MmY3
MDBlOTA0ODg2ODZlMDIwOGFjMzhmMzAuLjlhMDIwMjA2YTcyMTI2Yzk4YzJiZGYxMDM2MDYzYjc0
NzhmMmYwZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzQgQEAKKzIwMjEtMDEtMDggIEJKIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBtb3Zl
IGJyb3dzZXIgZG9tYWluIGFjdGl2YXRpb24gbWV0aG9kcyBiYWNrIHRvIFdLV2ViVmlldyBhbmQg
VUlEZWxlZ2F0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIwNDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSGF2aW5nIGJyb3dzZXIgZG9tYWluIGFjdGl2YXRpb24gbWV0aG9kcyBvbiBXS0luc3BlY3Rv
ckRlbGVnYXRlIG1lYW5zIHRoYXQKKyAgICAgICAgdGhlIGJyb3dzZXIgZG9tYWluIHdpbGwgbm90
IHdvcmsgd2l0aCByZW1vdGUgaW5zcGVjdGlvbiBvZiBXS1dlYlZpZXdzIG9uCisgICAgICAgIG1h
Y09TLiBNb3ZlIHRoZXNlIG1ldGhvZHMgYmFjayB0byBVSURlbGVnYXRlL1dLV2ViVmlldyBzbyB0
aGF0IGl0IGlzIHBvc3NpYmxlCisgICAgICAgIHRvIHJlbW90ZSBpbnNwZWN0IFNhZmFyaSBUZWNo
bm9sb2d5IFByZXZpZXcgd2l0aCBhbm90aGVyIFNhZmFyaSB3aGlsZSBzdGlsbAorICAgICAgICBi
ZW5lZml0aW5nIGZyb20gdGhlIGJyb3dzZXIgZG9tYWluIGJlaW5nIHR1cm5lZCBvbi4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIEFQSSB0ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50Lmg6CisgICAgICAgIChBUEk6Okluc3BlY3RvckNsaWVu
dDo6YnJvd3NlckRvbWFpbkVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoQVBJOjpJbnNwZWN0
b3JDbGllbnQ6OmJyb3dzZXJEb21haW5EaXNhYmxlZCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGlkRW5h
YmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbik6IE1vdmVkLgorICAgICAgICAoQVBJOjpVSUNsaWVu
dDo6ZGlkRGlzYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW4pOiBNb3ZlZC4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZEVuYWJs
ZUJyb3dzZXJFeHRlbnNpb25zOl0pOiBNb3ZlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaWRE
aXNhYmxlQnJvd3NlckV4dGVuc2lvbnM6XSk6IE1vdmVkLgorICAgICAgICBNb3ZlZCBmcm9tIFdL
SW5zcGVjdG9yLm1tLiBSYXRoZXIgdGhhbiBhY2Nlc3NpbmcgdGhlIGJyb3dzZXIgYWdlbnQKKyAg
ICAgICAgZGlyZWN0bHkgZnJvbSBPYmpDIGNvZGUsIHVzZSB0aGUgcGFnZSdzIFdlYlBhZ2VJbnNw
ZWN0b3JDb250cm9sbGVyLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNw
ZWN0b3JEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVj
dG9yUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9y
Lm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0b3IgX2Jyb3dzZXJFeHRlbnNpb25zRW5hYmxlZDpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bX1dLSW5zcGVjdG9yIF9icm93c2VyRXh0ZW5zaW9uc0Rp
c2FibGVkOl0pOiBEZWxldGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAg
KFdlYktpdDo6VUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpVSURl
bGVnYXRlOjpVSUNsaWVudDo6ZGlkRW5hYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbik6CisgICAg
ICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkaWREaXNhYmxlSW5zcGVjdG9yQnJv
d3NlckRvbWFpbik6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9BZ2VudHMvSW5zcGVj
dG9yQnJvd3NlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQnJvd3NlckFn
ZW50OjplbmFibGUpOgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JCcm93c2VyQWdlbnQ6OmRp
c2FibGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVs
ZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRl
bGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JEZWxlZ2F0ZTo6c2V0RGVsZWdh
dGUpOgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xpZW50
Ojp+SW5zcGVjdG9yQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yRGVsZWdhdGU6
Okluc3BlY3RvckNsaWVudDo6YnJvd3NlckRvbWFpbkVuYWJsZWQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpJbnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xpZW50Ojpicm93c2VyRG9t
YWluRGlzYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6
YnJvd3NlckV4dGVuc2lvbnNFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
SW5zcGVjdG9yUHJveHk6OmJyb3dzZXJFeHRlbnNpb25zRGlzYWJsZWQpOiBEZWxldGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuaDoKKworICAgICAg
ICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OldlYlBhZ2VJ
bnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUluc3BlY3RvckNv
bnRyb2xsZXI6OmluaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlSW5zcGVjdG9yQ29udHJv
bGxlcjo6Y29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUluc3BlY3Rv
ckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0QWxsRnJvbnRlbmRzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OnNldEluZGljYXRpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6Y3JlYXRlSW5zcGVjdG9y
VGFyZ2V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6Ondl
YlBhZ2VBZ2VudENvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlSW5zcGVjdG9yQ29u
dHJvbGxlcjo6c2V0RW5hYmxlZEJyb3dzZXJBZ2VudCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6YnJvd3NlckV4dGVuc2lvbnNFbmFibGVkKTog
QWRkZWQuIAorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6YnJv
d3NlckV4dGVuc2lvbnNEaXNhYmxlZCk6IEFkZGVkLgorICAgICAgICBEcml2ZS1ieTogcmVuYW1l
IG1fcGFnZSB0byBtX2luc3BlY3RlZFBhZ2UgdG8gZW1waGFzaXplIHRoYXQgdGhpcworICAgICAg
ICBjbGFzcyBleGlzdHMgYXMgcGFydCBvZiBXZWIgSW5zcGVjdG9yJ3MgYmFja2VuZCwgbm90IGl0
cyBmcm9udGVuZC4KKwogMjAyMS0wMS0wOCAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtXZWJBdXRobl0gQWRvcHQgbmV3IFVJIGZvciB0aGUgdXBkYXRlIGZs
b3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JDbGllbnQu
aAppbmRleCBjZjIxOTRkNGZlMzAxZWIzZGNlZGEwYmMyYzZhZTk0NjQ1OGM5OWY0Li5iODQxMWU2
ZjAwNzY5YjFlMDRiOTA4Yjc4MGI5NTRiYmFiN2IyMDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNsaWVudC5oCkBAIC0zOCw4ICszOCw2IEBAIGNs
YXNzIEluc3BlY3RvckNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yQ2xp
ZW50KCkgPSBkZWZhdWx0OwogCi0gICAgdmlydHVhbCB2b2lkIGJyb3dzZXJEb21haW5FbmFibGVk
KFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHkmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYnJvd3Nl
ckRvbWFpbkRpc2FibGVkKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHkmKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgb3BlblVSTEV4dGVybmFsbHkoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eSYsIGNv
bnN0IFdURjo6U3RyaW5nJiB1cmwpIHsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJVUlDbGllbnQuaAppbmRleCBmMjcxMzkyZjJkODZhMjkwYTM3Mzg5NGIzMmU5YTNlNjdm
NjdmNGNhLi5iMTdiNWExOTYyYmM5ZmRlNmJmOGYwNTVkNGI0YWU5ZTE3ZWI4NGRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMjAxLDYgKzIwMSw4IEBA
IHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBBUEk6Okluc3BlY3RvckNvbmZpZ3VyYXRp
b246OmNyZWF0ZSgpOwogICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5hYmxlSW5zcGVjdG9y
QnJvd3NlckRvbWFpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYp
IHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJp
dHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikgeyBwYWdlLnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25CeURl
ZmF1bHRBY3Rpb24ob3JpZ2luLnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IGYwYTliYTQxZjUxNWVmNzE4Zjc0NmM3
ZmRmZmZlYTRhMzVlOGRlMWUuLmNlMTkwNTY3ZWI3NzRlODA1ZDYyMThhMDc4NzJiYjNhOGQ3NjIz
MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVs
ZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtMTU0LDYgKzE1NCw5IEBAIHN0cnVjdCBVSUVkZ2VJbnNl
dHM7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFNwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkZvck9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKW9yaWdp
biBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5k
bGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAKKy0gKHZvaWQpX3dlYlZpZXdEaWRFbmFibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluOihXS1dl
YlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3RGlkRGlzYWJsZUluc3BlY3RvckJyb3dzZXJE
b21haW46KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogI2lmIFRBUkdFVF9PU19JUEhPTkUKIAogLSAoQk9P
TClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzaG91bGRJbmNsdWRlQXBwTGlua0FjdGlv
bnNGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FW
QUlMQUJMRShpb3MoOS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQppbmRleCA3MGViNTczZjQ0YjcxOTA2M2I0YWJkNGQ2M2Q1Mzc2ZTQzZjFi
MTc0Li41ZDY1YzQzMmZiOTJjYzU3ZGRmMjAwOTdkOTdmOTljYWFiN2Y4NDYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTkwLDYgKzkw
LDcgQEAKICNpbXBvcnQgIldlYkNlcnRpZmljYXRlSW5mby5oIgogI2ltcG9ydCAiV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5oIgogI2ltcG9ydCAiV2ViUGFnZUdyb3VwLmgiCisjaW1wb3J0ICJX
ZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAj
aW1wb3J0ICJXZWJQcmVmZXJlbmNlcy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKQEAg
LTE2NDksNiArMTY1MCwyNiBAQCAtIChfV0tJbnNwZWN0b3IgKilfaW5zcGVjdG9yCiAgICAgcmV0
dXJuIG5pbDsKIH0KIAorLSAodm9pZClfZGlkRW5hYmxlQnJvd3NlckV4dGVuc2lvbnM6KE5TRGlj
dGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqKWV4dGVuc2lvbklEVG9OYW1lTWFwCit7
CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gdHJhbnNmb3JtZWQ7CisgICAgdHJhbnNmb3Jt
ZWQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShleHRlbnNpb25JRFRvTmFtZU1hcC5jb3VudCk7Cisg
ICAgW2V4dGVuc2lvbklEVG9OYW1lTWFwIGVudW1lcmF0ZUtleXNBbmRPYmplY3RzVXNpbmdCbG9j
azpbJl0oTlNTdHJpbmcgKmV4dGVuc2lvbklELCBOU1N0cmluZyAqZXh0ZW5zaW9uTmFtZSwgQk9P
TCAqKSB7CisgICAgICAgIHRyYW5zZm9ybWVkLnNldChleHRlbnNpb25JRCwgZXh0ZW5zaW9uTmFt
ZSk7CisgICAgfV07CisKKyAgICBfcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmJyb3dzZXJF
eHRlbnNpb25zRW5hYmxlZChXVEZNb3ZlKHRyYW5zZm9ybWVkKSk7Cit9CisKKy0gKHZvaWQpX2Rp
ZERpc2FibGVCcm93c2VyRXh0ZW5zaW9uczooTlNTZXQ8TlNTdHJpbmcgKj4gKilleHRlbnNpb25J
RHMKK3sKKyAgICBIYXNoU2V0PFN0cmluZz4gdHJhbnNmb3JtZWQ7CisgICAgdHJhbnNmb3JtZWQu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShleHRlbnNpb25JRHMuY291bnQpOworICAgIGZvciAoTlNT
dHJpbmcgKmV4dGVuc2lvbklEIGluIGV4dGVuc2lvbklEcykKKyAgICAgICAgdHJhbnNmb3JtZWQu
YWRkVm9pZChleHRlbnNpb25JRCk7CisgICAgX3BhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5i
cm93c2VyRXh0ZW5zaW9uc0Rpc2FibGVkKFdURk1vdmUodHJhbnNmb3JtZWQpKTsKK30KKwogLSAo
X1dLRnJhbWVIYW5kbGUgKilfbWFpbkZyYW1lCiB7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gX3Bh
Z2UtPm1haW5GcmFtZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggYzRlMDc2MTIxZWQxMzVmNzUxMzVkNTJkNTE3
M2Y4NTg4MGJjNGFlZi4uMWUzMzFjNDBmNzIzNjlmMjQ3ZmU4ZWJmNDkwNTM0NmQ2MDFkNjYyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oCkBAIC0zNTksNiArMzU5LDkgQEAgZm9yIHRoaXMgcHJvcGVydHkuCiAKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENhblVzZUNyZWRlbnRpYWxTdG9yYWdlOikgQk9P
TCBfY2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAorLSAodm9pZClfZGlkRW5hYmxlQnJvd3NlckV4dGVu
c2lvbnM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqKWV4dGVuc2lvbklE
VG9OYW1lTWFwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CistICh2b2lkKV9kaWREaXNhYmxlQnJvd3NlckV4dGVuc2lvbnM6KE5TU2V0PE5TU3Ry
aW5nICo+ICopZXh0ZW5zaW9uSURzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CisKIEBlbmQKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCmluZGV4
IGYwNGY5YTQyNGE0NGExMjg5MWQ4MjI4MDNmN2I2YzJlMmM5ZTA4NWUuLjZiZWI0NWU4NDY1OTgx
ZjllMDkyNDcyZWE0YjMxNzg2NjcyNmJlMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQpAQCAtMTcwLDI1ICsxNzAsNiBAQCAtICh2
b2lkKV9zZXREaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlOihpZDxfV0tEaWFnbm9zdGljTG9nZ2lu
Z0RlbGVnYXRlPilkZWxlZ2F0ZQogICAgIF9pbnNwZWN0b3ItPnNldERpYWdub3N0aWNMb2dnaW5n
QXZhaWxhYmxlKCEhZGVsZWdhdGUpOwogfQogCi0tICh2b2lkKV9icm93c2VyRXh0ZW5zaW9uc0Vu
YWJsZWQ6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqKWV4dGVuc2lvbklE
VG9OYW1lTWFwCi17Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gdHJhbnNmb3JtZWQ7Ci0g
ICAgdHJhbnNmb3JtZWQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShleHRlbnNpb25JRFRvTmFtZU1h
cC5jb3VudCk7Ci0gICAgW2V4dGVuc2lvbklEVG9OYW1lTWFwIGVudW1lcmF0ZUtleXNBbmRPYmpl
Y3RzVXNpbmdCbG9jazpbJl0oTlNTdHJpbmcgKmV4dGVuc2lvbklELCBOU1N0cmluZyAqZXh0ZW5z
aW9uTmFtZSwgQk9PTCAqKSB7Ci0gICAgICAgIHRyYW5zZm9ybWVkLnNldChleHRlbnNpb25JRCwg
ZXh0ZW5zaW9uTmFtZSk7Ci0gICAgfV07Ci0gICAgX2luc3BlY3Rvci0+YnJvd3NlckV4dGVuc2lv
bnNFbmFibGVkKFdURk1vdmUodHJhbnNmb3JtZWQpKTsKLX0KLQotLSAodm9pZClfYnJvd3NlckV4
dGVuc2lvbnNEaXNhYmxlZDooTlNTZXQ8TlNTdHJpbmcgKj4gKilleHRlbnNpb25JRHMKLXsKLSAg
ICBIYXNoU2V0PFN0cmluZz4gdHJhbnNmb3JtZWQ7Ci0gICAgdHJhbnNmb3JtZWQucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eShleHRlbnNpb25JRHMuY291bnQpOwotICAgIGZvciAoTlNTdHJpbmcgKmV4
dGVuc2lvbklEIGluIGV4dGVuc2lvbklEcykKLSAgICAgICAgdHJhbnNmb3JtZWQuYWRkVm9pZChl
eHRlbnNpb25JRCk7Ci0gICAgX2luc3BlY3Rvci0+YnJvd3NlckV4dGVuc2lvbnNEaXNhYmxlZChX
VEZNb3ZlKHRyYW5zZm9ybWVkKSk7Ci19Ci0KIC8vIE1BUks6IF9XS0luc3BlY3RvckludGVybmFs
IG1ldGhvZHMKIAogLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlbGVnYXRlLmgKaW5k
ZXggNTUyMDFjNzg2Yjg3YzZjZjdjMDliMjcwOGM3MzcxMGM3NDkyODAxYy4uNDA1YjdkMDNhNzk0
MTIyMjFjMjVkYWQ3MWZkZWNiMmZjZjJmMzk0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlbGVnYXRlLmgKQEAgLTMxLDE2
ICszMSw2IEBACiBAcHJvdG9jb2wgX1dLSW5zcGVjdG9yRGVsZWdhdGUgPE5TT2JqZWN0PgogQG9w
dGlvbmFsCiAKLS8qISBAYWJzdHJhY3QgQ2FsbGVkIHdoZW4gdGhlIEJyb3dzZXIgZG9tYWluIGlz
IGVuYWJsZWQgZm9yIHRoZSBhc3NvY2lhdGVkIF9XS0luc3BlY3Rvci4KLSAgICBAcGFyYW0gaW5z
cGVjdG9yIHRoZSBhc3NvY2lhdGVkIF9XS0luc3BlY3RvciBmb3Igd2hpY2ggdGhlIEJyb3dzZXIg
ZG9tYWluIGhhcyBiZWVuIGVuYWJsZWQuCi0gKi8KLS0gKHZvaWQpaW5zcGVjdG9yRGlkRW5hYmxl
QnJvd3NlckRvbWFpbjooX1dLSW5zcGVjdG9yICopaW5zcGVjdG9yOwotCi0vKiEgQGFic3RyYWN0
IENhbGxlZCB3aGVuIHRoZSAgQnJvd3NlciBkb21haW4gaXMgZGlzYWJsZWQgZm9yIHRoZSBhc3Nv
Y2lhdGVkIF9XS0luc3BlY3Rvci4KLSAgICBAcGFyYW0gaW5zcGVjdG9yIHRoZSBhc3NvY2lhdGVk
IF9XS0luc3BlY3RvciBmb3Igd2hpY2ggdGhlIEJyb3dzZXIgZG9tYWluIGhhcyBiZWVuIGRpc2Fi
bGVkLgotICovCi0tICh2b2lkKWluc3BlY3RvckRpZERpc2FibGVCcm93c2VyRG9tYWluOihfV0tJ
bnNwZWN0b3IgKilpbnNwZWN0b3I7Ci0KIC8qISBAYWJzdHJhY3QgQ2FsbGVkIHdoZW4gdGhlIF9X
S0luc3BlY3RvciByZXF1ZXN0cyB0byBzaG93IGEgcmVzb3VyY2UgZXh0ZXJuYWxseS4gVGhpcwog
ICAgIGlzIHVzZWQgdG8gZGlzcGxheSBkb2N1bWVudGF0aW9uIHBhZ2VzIGFuZCB0byBzaG93IGV4
dGVybmFsIFVSTHMgdGhhdCBhcmUgbGlua2lmaWVkLgogICAgIEBwYXJhbSBpbnNwZWN0b3IgdGhl
IGFzc29jaWF0ZWQgaW5zcGVjdG9yIGZvciB3aGljaCBhbiBleHRlcm5hbCBuYXZpZ2F0aW9uIHNo
b3VsZCBiZSB0cmlnZ2VyZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLSW5zcGVjdG9yUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0luc3BlY3RvclByaXZhdGUuaAppbmRleCBlMjAyYWYwN2E1YzcwM2IzYTZi
NGRhOGQzNTRjZTYyNzQyNzU0YWM0Li5jMGQ5ODQ5MDc5OGE2Y2FjNTI1YmU2Y2RiYzhjMzhiNGM0
MWJiYjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
SW5zcGVjdG9yUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tJbnNwZWN0b3JQcml2YXRlLmgKQEAgLTMxLDggKzMxLDQgQEAKIAogQHByb3BlcnR5IChu
b25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZTopIGlk
PF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+IF9kaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRl
OwogCi0vLyBCcm93c2VyCi0tICh2b2lkKV9icm93c2VyRXh0ZW5zaW9uc0VuYWJsZWQ6KE5TRGlj
dGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqKWV4dGVuc2lvbklEVG9OYW1lOwotLSAo
dm9pZClfYnJvd3NlckV4dGVuc2lvbnNEaXNhYmxlZDooTlNTZXQ8TlNTdHJpbmcgKj4gKilleHRl
bnNpb25JRHM7Ci0KIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaAppbmRleCAzMGRjMmI5Nzc4MjgyNWYyMzE4NGI0MjMwMWM1MGFjZjYwNjE3MjE2Li44NTk1
ZjIwZTQxYzZmYzMxM2E0M2ZiODJjZDA5YmY5MmU1YWU2OTViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0xNjMsNiArMTYzLDggQEAgcHJpdmF0ZToK
ICAgICAgICAgdm9pZCBydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsKFdlYlBhZ2VQcm94eSYsIEFQ
STo6V2ViQXV0aGVudGljYXRpb25QYW5lbCYsIFdlYkZyYW1lUHJveHkmLCBGcmFtZUluZm9EYXRh
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdCk+
JiYpIGZpbmFsOwogI2VuZGlmCiAgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgICAgIHZv
aWQgZGlkRW5hYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihXZWJQYWdlUHJveHkmKSBmaW5hbDsK
KyAgICAgICAgdm9pZCBkaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihXZWJQYWdlUHJv
eHkmKSBmaW5hbDsKIAogICAgICAgICBXZWFrUHRyPFVJRGVsZWdhdGU+IG1fdWlEZWxlZ2F0ZTsK
ICAgICB9OwpAQCAtMjUwLDYgKzI1Miw4IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQl9BVVRI
TikKICAgICAgICAgYm9vbCB3ZWJWaWV3UnVuV2ViQXV0aGVudGljYXRpb25QYW5lbEluaXRpYXRl
ZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlciA6IDE7CiAjZW5kaWYKKyAgICAgICAgYm9vbCB3ZWJW
aWV3RGlkRW5hYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbiA6IDE7CisgICAgICAgIGJvb2wgd2Vi
Vmlld0RpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluIDogMTsKICAgICB9IG1fZGVsZWdh
dGVNZXRob2RzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW0KaW5kZXggMWI5ZWRiZjRkOThiOGU1MDkwMGI1YTM2YTkzNjQ3NDg3YmUzNThkYi4uNDM4
MmFmZDgwNGE1MTE5M2MxOGQ3NjNlYmQ2MTg3MDc1OTcxODZjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xODMsNiArMTgzLDkgQEAgdm9pZCBV
SURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURlbGVnYXRlPiBkZWxlZ2F0ZSkKICNpZiBF
TkFCTEUoV0VCX0FVVEhOKQogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSdW5XZWJBdXRo
ZW50aWNhdGlvblBhbmVsSW5pdGlhdGVkQnlGcmFtZUNvbXBsZXRpb25IYW5kbGVyID0gW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cnVuV2ViQXV0aGVudGlj
YXRpb25QYW5lbDppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOildOwogI2VuZGlm
CisgICAgCisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVuYWJsZUluc3BlY3RvckJy
b3dzZXJEb21haW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
Vmlld0RpZEVuYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW46KV07CisgICAgbV9kZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld0RpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdEaWREaXNhYmxlSW5zcGVjdG9y
QnJvd3NlckRvbWFpbjopXTsKIH0KIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpAQCAtMTU1
MCw0ICsxNTUzLDI4IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZv
clNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViCiAgICAgfSkuZ2V0KCldOwog
fQogCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkaWRFbmFibGVJbnNwZWN0b3JCcm93c2Vy
RG9tYWluKFdlYlBhZ2VQcm94eSYpCit7CisgICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld0RpZEVuYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW4pCisgICAgICAg
IHJldHVybjsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5n
ZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBbKGlkIDxX
S1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlld0RpZEVuYWJsZUluc3BlY3RvckJy
b3dzZXJEb21haW46bV91aURlbGVnYXRlLm1fd2ViVmlld107Cit9CisKK3ZvaWQgVUlEZWxlZ2F0
ZTo6VUlDbGllbnQ6OmRpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluKFdlYlBhZ2VQcm94
eSYpCit7CisgICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Rp
ZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluKQorICAgICAgICByZXR1cm47CisKKyAgICBh
dXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFk
ZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0
ZT4pZGVsZWdhdGUgX3dlYlZpZXdEaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbjptX3Vp
RGVsZWdhdGUubV93ZWJWaWV3XTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQWdlbnRzL0luc3BlY3RvckJy
b3dzZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQWdlbnRz
L0luc3BlY3RvckJyb3dzZXJBZ2VudC5jcHAKaW5kZXggMmQ0NDQ1MjdlZWRlZTdlYThhNmU0OTg4
ZjczNTE5NzU1MmNiOTA4MC4uZGJkNjM4MjU0NWExNDlmMzlkN2EyNjRlYWZlNDRjMzkzYzc2ZGQy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0FnZW50cy9J
bnNwZWN0b3JCcm93c2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9BZ2VudHMvSW5zcGVjdG9yQnJvd3NlckFnZW50LmNwcApAQCAtMjYsNyArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc3BlY3RvckJyb3dzZXJBZ2VudC5o
IgogCi0jaW5jbHVkZSAiQVBJSW5zcGVjdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiQVBJVUlDbGll
bnQuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VJ
bnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCkBAIC03MSw5
ICs3MSw2IEBAIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gSW5zcGVj
dG9yQnJvd3NlckFnZW50OjplbmFibGUoKQogCiAgICAgbV9pbnNwZWN0ZWRQYWdlLmluc3BlY3Rv
ckNvbnRyb2xsZXIoKS5zZXRFbmFibGVkQnJvd3NlckFnZW50KHRoaXMpOwogCi0gICAgaWYgKGF1
dG8qIGluc3BlY3RvciA9IG1faW5zcGVjdGVkUGFnZS5pbnNwZWN0b3IoKSkKLSAgICAgICAgaW5z
cGVjdG9yLT5pbnNwZWN0b3JDbGllbnQoKS5icm93c2VyRG9tYWluRW5hYmxlZCgqaW5zcGVjdG9y
KTsKLQogICAgIHJldHVybiB7IH07CiB9CiAKQEAgLTg0LDkgKzgxLDYgQEAgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBJbnNwZWN0b3JCcm93c2VyQWdlbnQ6OmRpc2Fi
bGUoKQogCiAgICAgbV9pbnNwZWN0ZWRQYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5zZXRFbmFi
bGVkQnJvd3NlckFnZW50KG51bGxwdHIpOwogCi0gICAgaWYgKGF1dG8qIGluc3BlY3RvciA9IG1f
aW5zcGVjdGVkUGFnZS5pbnNwZWN0b3IoKSkKLSAgICAgICAgaW5zcGVjdG9yLT5pbnNwZWN0b3JD
bGllbnQoKS5icm93c2VyRG9tYWluRGlzYWJsZWQoKmluc3BlY3Rvcik7Ci0KICAgICByZXR1cm4g
eyB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
Q29jb2EvSW5zcGVjdG9yRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5oCmluZGV4IGQ2NGI0N2IyOTViMTJiZTU3NTRl
MmZlNzFkNGYwYzViZTkwYzNmM2QuLjAxMmUxZTRkZjAzNzJjMTVhOWVlNmMyMjFmOTM2YzlkM2Q2
MzA1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2Nv
YS9JbnNwZWN0b3JEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5oCkBAIC0zNSw3ICszNSw2IEBACiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViSW5zcGVjdG9yUHJveHk7Ci1jbGFzcyBXZWJQYWdlUHJv
eHk7CiAKIGNsYXNzIEluc3BlY3RvckRlbGVnYXRlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKQEAgLTU2LDggKzU1LDYgQEAgcHJpdmF0ZToKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IC8vIEFQSTo6SW5zcGVjdG9yQ2xpZW50Ci0gICAgICAgIHZvaWQgYnJvd3NlckRvbWFpbkVuYWJs
ZWQoV2ViSW5zcGVjdG9yUHJveHkmKTsKLSAgICAgICAgdm9pZCBicm93c2VyRG9tYWluRGlzYWJs
ZWQoV2ViSW5zcGVjdG9yUHJveHkmKTsKICAgICAgICAgdm9pZCBvcGVuVVJMRXh0ZXJuYWxseShX
ZWJJbnNwZWN0b3JQcm94eSYsIGNvbnN0IFN0cmluZyYgdXJsKTsKIAogICAgICAgICBJbnNwZWN0
b3JEZWxlZ2F0ZSYgbV9pbnNwZWN0b3JEZWxlZ2F0ZTsKQEAgLTY3LDggKzY0LDYgQEAgcHJpdmF0
ZToKICAgICBXZWFrT2JqQ1B0cjxpZCA8X1dLSW5zcGVjdG9yRGVsZWdhdGU+PiBtX2RlbGVnYXRl
OwogCiAgICAgc3RydWN0IHsKLSAgICAgICAgYm9vbCBpbnNwZWN0b3JEaWRFbmFibGVCcm93c2Vy
RG9tYWluIDogMTsKLSAgICAgICAgYm9vbCBpbnNwZWN0b3JEaWREaXNhYmxlQnJvd3NlckRvbWFp
biA6IDE7CiAgICAgICAgIGJvb2wgaW5zcGVjdG9yT3BlblVSTEV4dGVybmFsbHkgOiAxOwogICAg
IH0gbV9kZWxlZ2F0ZU1ldGhvZHM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRlLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRlLm1tCmluZGV4IDVj
ZWRhMTg1OTQwZTA0NzUwNzNmY2NmMzgxMjg0MjA1YzEwYmVhMjQuLjYwYzEzMmQ1ZDg5ZDE3YjQ2
ZDMzMmRmMWEwMmMwYThhMmNiYTFjODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW0KQEAgLTI3
LDcgKzI3LDYgQEAKICNpbXBvcnQgIkluc3BlY3RvckRlbGVnYXRlLmgiCiAKICNpbXBvcnQgIldl
Ykluc3BlY3RvclByb3h5LmgiCi0jaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgIl9X
S0luc3BlY3RvckRlbGVnYXRlLmgiCiAjaW1wb3J0ICJfV0tJbnNwZWN0b3JJbnRlcm5hbC5oIgog
CkBAIC01Miw4ICs1MSw2IEBAIHZvaWQgSW5zcGVjdG9yRGVsZWdhdGU6OnNldERlbGVnYXRlKGlk
IDxfV0tJbnNwZWN0b3JEZWxlZ2F0ZT4gZGVsZWdhdGUpCiB7CiAgICAgbV9kZWxlZ2F0ZSA9IGRl
bGVnYXRlOwogCi0gICAgbV9kZWxlZ2F0ZU1ldGhvZHMuaW5zcGVjdG9yRGlkRW5hYmxlQnJvd3Nl
ckRvbWFpbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGluc3BlY3Rv
ckRpZEVuYWJsZUJyb3dzZXJEb21haW46KV07Ci0gICAgbV9kZWxlZ2F0ZU1ldGhvZHMuaW5zcGVj
dG9yRGlkRGlzYWJsZUJyb3dzZXJEb21haW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3RvcihpbnNwZWN0b3JEaWREaXNhYmxlQnJvd3NlckRvbWFpbjopXTsKICAgICBtX2Rl
bGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JPcGVuVVJMRXh0ZXJuYWxseSA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGluc3BlY3RvcjpvcGVuVVJMRXh0ZXJuYWxseTopXTsK
IH0KIApAQCAtNjIsMzAgKzU5LDggQEAgSW5zcGVjdG9yRGVsZWdhdGU6Okluc3BlY3RvckNsaWVu
dDo6SW5zcGVjdG9yQ2xpZW50KEluc3BlY3RvckRlbGVnYXRlJiBkZWxlZ2F0ZSkKIHsKIH0KIAot
SW5zcGVjdG9yRGVsZWdhdGU6Okluc3BlY3RvckNsaWVudDo6fkluc3BlY3RvckNsaWVudCgpID0g
ZGVmYXVsdDsKLQotdm9pZCBJbnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xpZW50Ojpicm93
c2VyRG9tYWluRW5hYmxlZChXZWJJbnNwZWN0b3JQcm94eSYpCi17Ci0gICAgaWYgKCFtX2luc3Bl
Y3RvckRlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3RvckRpZEVuYWJsZUJyb3dzZXJE
b21haW4pCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8mIGRlbGVnYXRlID0gbV9pbnNwZWN0
b3JEZWxlZ2F0ZS5tX2RlbGVnYXRlOwotICAgIGlmICghZGVsZWdhdGUpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIFtkZWxlZ2F0ZSBpbnNwZWN0b3JEaWRFbmFibGVCcm93c2VyRG9tYWluOm1faW5z
cGVjdG9yRGVsZWdhdGUubV9pbnNwZWN0b3IuZ2V0KCkuZ2V0KCldOwotfQotCi12b2lkIEluc3Bl
Y3RvckRlbGVnYXRlOjpJbnNwZWN0b3JDbGllbnQ6OmJyb3dzZXJEb21haW5EaXNhYmxlZChXZWJJ
bnNwZWN0b3JQcm94eSYpCitJbnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xpZW50Ojp+SW5z
cGVjdG9yQ2xpZW50KCkKIHsKLSAgICBpZiAoIW1faW5zcGVjdG9yRGVsZWdhdGUubV9kZWxlZ2F0
ZU1ldGhvZHMuaW5zcGVjdG9yRGlkRGlzYWJsZUJyb3dzZXJEb21haW4pCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGF1dG8mIGRlbGVnYXRlID0gbV9pbnNwZWN0b3JEZWxlZ2F0ZS5tX2RlbGVnYXRl
OwotICAgIGlmICghZGVsZWdhdGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFtkZWxlZ2F0ZSBp
bnNwZWN0b3JEaWREaXNhYmxlQnJvd3NlckRvbWFpbjptX2luc3BlY3RvckRlbGVnYXRlLm1faW5z
cGVjdG9yLmdldCgpLmdldCgpXTsKIH0KIAogdm9pZCBJbnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVj
dG9yQ2xpZW50OjpvcGVuVVJMRXh0ZXJuYWxseShXZWJJbnNwZWN0b3JQcm94eSYsIGNvbnN0IFN0
cmluZyYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JQcm94eS5jcHAKaW5kZXggZThjMzhiOTYyMGRhNTc4NWRjMTczNTNkZTg4
OGExOWIyNzdmNzFkNi4uYzFhZWI0Mjg0Zjg1OWFhNzQwYzAxODNjNTgwNDAxNjIyYWMwNzI5ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yUHJveHkuY3BwCkBAIC02OTksMTggKzY5OSw2IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJv
eHk6OnNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlKGJvb2wgYXZhaWxhYmxlKQogI2VuZGlm
CiB9CiAKLXZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OmJyb3dzZXJFeHRlbnNpb25zRW5hYmxlZChI
YXNoTWFwPFN0cmluZywgU3RyaW5nPiYmIGV4dGVuc2lvbklEVG9OYW1lKQotewotICAgIGlmIChh
dXRvKiBicm93c2VyQWdlbnQgPSBtX2luc3BlY3RlZFBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIo
KS5lbmFibGVkQnJvd3NlckFnZW50KCkpCi0gICAgICAgIGJyb3dzZXJBZ2VudC0+ZXh0ZW5zaW9u
c0VuYWJsZWQoV1RGTW92ZShleHRlbnNpb25JRFRvTmFtZSkpOwotfQotCi12b2lkIFdlYkluc3Bl
Y3RvclByb3h5Ojpicm93c2VyRXh0ZW5zaW9uc0Rpc2FibGVkKEhhc2hTZXQ8U3RyaW5nPiYmIGV4
dGVuc2lvbklEcykKLXsKLSAgICBpZiAoYXV0byogYnJvd3NlckFnZW50ID0gbV9pbnNwZWN0ZWRQ
YWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZW5hYmxlZEJyb3dzZXJBZ2VudCgpKQotICAgICAg
ICBicm93c2VyQWdlbnQtPmV4dGVuc2lvbnNEaXNhYmxlZChXVEZNb3ZlKGV4dGVuc2lvbklEcykp
OwotfQotCiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpzYXZlKGNvbnN0IFN0cmluZyYgZmlsZW5h
bWUsIGNvbnN0IFN0cmluZyYgY29udGVudCwgYm9vbCBiYXNlNjRFbmNvZGVkLCBib29sIGZvcmNl
U2F2ZUFzKQogewogICAgIGlmICghbV9pbnNwZWN0ZWRQYWdlLT5wcmVmZXJlbmNlcygpLmRldmVs
b3BlckV4dHJhc0VuYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5LmgKaW5kZXggZjU1NDFiZjcwMjgxN2ViYzhiZTM2
NTI1ZGFjMzA5Zjg2NTQ1OGRmZC4uMTNiZWI4OWE3Yzc5YWMxMjFiODU0YTc5Njg2MjZhZDQ1YjUy
ZWM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvclByb3h5LmgKQEAgLTE4NCwxMCArMTg0LDYgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBzZXREaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZShib29sKTsKIAotICAgIC8vIEJyb3dzZXIK
LSAgICB2b2lkIGJyb3dzZXJFeHRlbnNpb25zRW5hYmxlZChIYXNoTWFwPFN0cmluZywgU3RyaW5n
PiYmKTsKLSAgICB2b2lkIGJyb3dzZXJFeHRlbnNpb25zRGlzYWJsZWQoSGFzaFNldDxTdHJpbmc+
JiYpOwotCiAgICAgLy8gUHJvdmlkZWQgYnkgcGxhdGZvcm0gV2ViSW5zcGVjdG9yUHJveHkgaW1w
bGVtZW50YXRpb25zLgogICAgIHN0YXRpYyBTdHJpbmcgaW5zcGVjdG9yUGFnZVVSTCgpOwogICAg
IHN0YXRpYyBTdHJpbmcgaW5zcGVjdG9yVGVzdFBhZ2VVUkwoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZUluc3BlY3RvckNv
bnRyb2xsZXIuY3BwCmluZGV4IDE4NjFjZmY4MDYxMzExOTZlYTQ5YjRmOGFjYTY2NjViZWViYmY2
ZTguLmZkMjI3MjUxMDZmYmJlYjIyYjU4MWE5OTE2ODk5YjQ1YzZmMDE5MWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlSW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VJ
bnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE4LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXIuaCIKIAorI2luY2x1ZGUgIkFQ
SVVJQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQnJvd3NlckFnZW50LmgiCiAjaW5jbHVk
ZSAiUHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJGcmFtZVByb3h5LmgiCkBA
IC00OCwxMCArNDksMTAgQEAgc3RhdGljIFN0cmluZyBnZXRUYXJnZXRJRChjb25zdCBQcm92aXNp
b25hbFBhZ2VQcm94eSYgcHJvdmlzaW9uYWxQYWdlKQogICAgIHJldHVybiBXZWJQYWdlSW5zcGVj
dG9yVGFyZ2V0Ojp0b1RhcmdldElEKHByb3Zpc2lvbmFsUGFnZS53ZWJQYWdlSUQoKSk7CiB9CiAK
LVdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcihX
ZWJQYWdlUHJveHkmIHBhZ2UpCitXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6V2ViUGFnZUlu
c3BlY3RvckNvbnRyb2xsZXIoV2ViUGFnZVByb3h5JiBpbnNwZWN0ZWRQYWdlKQogICAgIDogbV9m
cm9udGVuZFJvdXRlcihGcm9udGVuZFJvdXRlcjo6Y3JlYXRlKCkpCiAgICAgLCBtX2JhY2tlbmRE
aXNwYXRjaGVyKEJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUobV9mcm9udGVuZFJvdXRlci5jb3B5
UmVmKCkpKQotICAgICwgbV9wYWdlKHBhZ2UpCisgICAgLCBtX2luc3BlY3RlZFBhZ2UoaW5zcGVj
dGVkUGFnZSkKIHsKICAgICBhdXRvIHRhcmdldEFnZW50ID0gbWFrZVVuaXF1ZTxJbnNwZWN0b3JU
YXJnZXRBZ2VudD4obV9mcm9udGVuZFJvdXRlci5nZXQoKSwgbV9iYWNrZW5kRGlzcGF0Y2hlci5n
ZXQoKSk7CiAgICAgbV90YXJnZXRBZ2VudCA9IHRhcmdldEFnZW50LmdldCgpOwpAQCAtNjAsNyAr
NjEsNyBAQCBXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6V2ViUGFnZUluc3BlY3RvckNvbnRy
b2xsZXIoV2ViUGFnZVByb3h5JiBwYWdlKQogCiB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JDb250cm9s
bGVyOjppbml0KCkKIHsKLSAgICBTdHJpbmcgcGFnZVRhcmdldElkID0gV2ViUGFnZUluc3BlY3Rv
clRhcmdldDo6dG9UYXJnZXRJRChtX3BhZ2Uud2ViUGFnZUlEKCkpOworICAgIFN0cmluZyBwYWdl
VGFyZ2V0SWQgPSBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Ojp0b1RhcmdldElEKG1faW5zcGVjdGVk
UGFnZS53ZWJQYWdlSUQoKSk7CiAgICAgY3JlYXRlSW5zcGVjdG9yVGFyZ2V0KHBhZ2VUYXJnZXRJ
ZCwgSW5zcGVjdG9yOjpJbnNwZWN0b3JUYXJnZXRUeXBlOjpQYWdlKTsKIH0KIApAQCAtODcsMTEg
Kzg4LDExIEBAIHZvaWQgV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVu
ZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYgZnJvCiAgICAgaWYgKGNvbm5lY3RpbmdGaXJz
dEZyb250ZW5kKQogICAgICAgICBtX2FnZW50cy5kaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
Jm1fZnJvbnRlbmRSb3V0ZXIuZ2V0KCksICZtX2JhY2tlbmREaXNwYXRjaGVyLmdldCgpKTsKIAot
ICAgIG1fcGFnZS5kaWRDaGFuZ2VJbnNwZWN0b3JGcm9udGVuZENvdW50KG1fZnJvbnRlbmRSb3V0
ZXItPmZyb250ZW5kQ291bnQoKSk7CisgICAgbV9pbnNwZWN0ZWRQYWdlLmRpZENoYW5nZUluc3Bl
Y3RvckZyb250ZW5kQ291bnQobV9mcm9udGVuZFJvdXRlci0+ZnJvbnRlbmRDb3VudCgpKTsKIAog
I2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogICAgIGlmIChoYXNMb2NhbEZyb250ZW5kKCkp
Ci0gICAgICAgIG1fcGFnZS5yZW1vdGVJbnNwZWN0b3JJbmZvcm1hdGlvbkRpZENoYW5nZSgpOwor
ICAgICAgICBtX2luc3BlY3RlZFBhZ2UucmVtb3RlSW5zcGVjdG9ySW5mb3JtYXRpb25EaWRDaGFu
Z2UoKTsKICNlbmRpZgogfQogCkBAIC0xMDMsMTEgKzEwNCwxMSBAQCB2b2lkIFdlYlBhZ2VJbnNw
ZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJiBmcm9u
dGVuZENoYQogICAgIGlmIChkaXNjb25uZWN0aW5nTGFzdEZyb250ZW5kKQogICAgICAgICBtX2Fn
ZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uOjpJbnNw
ZWN0b3JEZXN0cm95ZWQpOwogCi0gICAgbV9wYWdlLmRpZENoYW5nZUluc3BlY3RvckZyb250ZW5k
Q291bnQobV9mcm9udGVuZFJvdXRlci0+ZnJvbnRlbmRDb3VudCgpKTsKKyAgICBtX2luc3BlY3Rl
ZFBhZ2UuZGlkQ2hhbmdlSW5zcGVjdG9yRnJvbnRlbmRDb3VudChtX2Zyb250ZW5kUm91dGVyLT5m
cm9udGVuZENvdW50KCkpOwogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAgICAgaWYg
KGRpc2Nvbm5lY3RpbmdMYXN0RnJvbnRlbmQpCi0gICAgICAgIG1fcGFnZS5yZW1vdGVJbnNwZWN0
b3JJbmZvcm1hdGlvbkRpZENoYW5nZSgpOworICAgICAgICBtX2luc3BlY3RlZFBhZ2UucmVtb3Rl
SW5zcGVjdG9ySW5mb3JtYXRpb25EaWRDaGFuZ2UoKTsKICNlbmRpZgogfQogCkBAIC0xMjQsMTAg
KzEyNSwxMCBAQCB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0QWxs
RnJvbnRlbmRzKCkKICAgICAvLyBEaXNjb25uZWN0IGFueSByZW1haW5pbmcgcmVtb3RlIGZyb250
ZW5kcy4KICAgICBtX2Zyb250ZW5kUm91dGVyLT5kaXNjb25uZWN0QWxsRnJvbnRlbmRzKCk7CiAK
LSAgICBtX3BhZ2UuZGlkQ2hhbmdlSW5zcGVjdG9yRnJvbnRlbmRDb3VudChtX2Zyb250ZW5kUm91
dGVyLT5mcm9udGVuZENvdW50KCkpOworICAgIG1faW5zcGVjdGVkUGFnZS5kaWRDaGFuZ2VJbnNw
ZWN0b3JGcm9udGVuZENvdW50KG1fZnJvbnRlbmRSb3V0ZXItPmZyb250ZW5kQ291bnQoKSk7CiAK
ICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKLSAgICBtX3BhZ2UucmVtb3RlSW5zcGVjdG9y
SW5mb3JtYXRpb25EaWRDaGFuZ2UoKTsKKyAgICBtX2luc3BlY3RlZFBhZ2UucmVtb3RlSW5zcGVj
dG9ySW5mb3JtYXRpb25EaWRDaGFuZ2UoKTsKICNlbmRpZgogfQogCkBAIC0xNDAsMTkgKzE0MSwx
OSBAQCB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNwYXRjaE1lc3NhZ2VGcm9t
RnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYQogdm9pZCBXZWJQYWdlSW5zcGVjdG9yQ29udHJv
bGxlcjo6c2V0SW5kaWNhdGluZyhib29sIGluZGljYXRpbmcpCiB7CiAjaWYgIVBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgbV9wYWdlLnNldEluZGljYXRpbmcoaW5kaWNhdGluZyk7CisgICAgbV9p
bnNwZWN0ZWRQYWdlLnNldEluZGljYXRpbmcoaW5kaWNhdGluZyk7CiAjZWxzZQogICAgIGlmIChp
bmRpY2F0aW5nKQotICAgICAgICBtX3BhZ2Uuc2hvd0luc3BlY3RvckluZGljYXRpb24oKTsKKyAg
ICAgICAgbV9pbnNwZWN0ZWRQYWdlLnNob3dJbnNwZWN0b3JJbmRpY2F0aW9uKCk7CiAgICAgZWxz
ZQotICAgICAgICBtX3BhZ2UuaGlkZUluc3BlY3RvckluZGljYXRpb24oKTsKKyAgICAgICAgbV9p
bnNwZWN0ZWRQYWdlLmhpZGVJbnNwZWN0b3JJbmRpY2F0aW9uKCk7CiAjZW5kaWYKIH0KICNlbmRp
ZgogCiB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpjcmVhdGVJbnNwZWN0b3JUYXJn
ZXQoY29uc3QgU3RyaW5nJiB0YXJnZXRJZCwgSW5zcGVjdG9yOjpJbnNwZWN0b3JUYXJnZXRUeXBl
IHR5cGUpCiB7Ci0gICAgYWRkVGFyZ2V0KEluc3BlY3RvclRhcmdldFByb3h5OjpjcmVhdGUobV9w
YWdlLCB0YXJnZXRJZCwgdHlwZSkpOworICAgIGFkZFRhcmdldChJbnNwZWN0b3JUYXJnZXRQcm94
eTo6Y3JlYXRlKG1faW5zcGVjdGVkUGFnZSwgdGFyZ2V0SWQsIHR5cGUpKTsKIH0KIAogdm9pZCBX
ZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGVzdHJveUluc3BlY3RvclRhcmdldChjb25zdCBT
dHJpbmcmIHRhcmdldElkKQpAQCAtMjE5LDcgKzIyMCw3IEBAIFdlYlBhZ2VBZ2VudENvbnRleHQg
V2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OndlYlBhZ2VBZ2VudENvbnRleHQoKQogICAgIHJl
dHVybiB7CiAgICAgICAgIG1fZnJvbnRlbmRSb3V0ZXIuZ2V0KCksCiAgICAgICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIuZ2V0KCksCi0gICAgICAgIG1fcGFnZSwKKyAgICAgICAgbV9pbnNwZWN0ZWRQ
YWdlLAogICAgIH07CiB9CiAKQEAgLTI0MSw0ICsyNDIsMjkgQEAgdm9pZCBXZWJQYWdlSW5zcGVj
dG9yQ29udHJvbGxlcjo6YWRkVGFyZ2V0KHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JUYXJnZXRQ
cm94eT4KICAgICBtX3RhcmdldHMuc2V0KHRhcmdldC0+aWRlbnRpZmllcigpLCBXVEZNb3ZlKHRh
cmdldCkpOwogfQogCit2b2lkIFdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpzZXRFbmFibGVk
QnJvd3NlckFnZW50KEluc3BlY3RvckJyb3dzZXJBZ2VudCogYWdlbnQpCit7CisgICAgaWYgKG1f
ZW5hYmxlZEJyb3dzZXJBZ2VudCA9PSBhZ2VudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9l
bmFibGVkQnJvd3NlckFnZW50ID0gYWdlbnQ7CisKKyAgICBpZiAoYWdlbnQpCisgICAgICAgIG1f
aW5zcGVjdGVkUGFnZS51aUNsaWVudCgpLmRpZEVuYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW4o
bV9pbnNwZWN0ZWRQYWdlKTsKKyAgICBlbHNlCisgICAgICAgIG1faW5zcGVjdGVkUGFnZS51aUNs
aWVudCgpLmRpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluKG1faW5zcGVjdGVkUGFnZSk7
Cit9CisKK3ZvaWQgV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmJyb3dzZXJFeHRlbnNpb25z
RW5hYmxlZChIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYmIGV4dGVuc2lvbklEVG9OYW1lKQorewor
ICAgIGlmIChhdXRvKiBicm93c2VyQWdlbnQgPSBlbmFibGVkQnJvd3NlckFnZW50KCkpCisgICAg
ICAgIGJyb3dzZXJBZ2VudC0+ZXh0ZW5zaW9uc0VuYWJsZWQoV1RGTW92ZShleHRlbnNpb25JRFRv
TmFtZSkpOworfQorCit2b2lkIFdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpicm93c2VyRXh0
ZW5zaW9uc0Rpc2FibGVkKEhhc2hTZXQ8U3RyaW5nPiYmIGV4dGVuc2lvbklEcykKK3sKKyAgICBp
ZiAoYXV0byogYnJvd3NlckFnZW50ID0gZW5hYmxlZEJyb3dzZXJBZ2VudCgpKQorICAgICAgICBi
cm93c2VyQWdlbnQtPmV4dGVuc2lvbnNEaXNhYmxlZChXVEZNb3ZlKGV4dGVuc2lvbklEcykpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmgKaW5k
ZXggZjljMjY4MzJkM2U5MWU4ZDc0N2M1YzFlMGYwZDc2YzM0ZjRjMzA5Ni4uOGMxMzM5MzQ1ZDQ1
MTg3NDUwMmIyNzFmNmFhMmVjYTNmYTBkM2ZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVy
LmgKQEAgLTc3LDcgKzc3LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENvbW1pdFByb3Zpc2lv
bmFsUGFnZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBvbGRXZWJQYWdlSUQsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIG5ld1dlYlBhZ2VJRCk7CiAKICAgICBJbnNwZWN0b3JCcm93c2VyQWdlbnQq
IGVuYWJsZWRCcm93c2VyQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX2VuYWJsZWRCcm93c2VyQWdl
bnQ7IH0KLSAgICB2b2lkIHNldEVuYWJsZWRCcm93c2VyQWdlbnQoSW5zcGVjdG9yQnJvd3NlckFn
ZW50KiBhZ2VudCkgeyBtX2VuYWJsZWRCcm93c2VyQWdlbnQgPSBhZ2VudDsgfQorICAgIHZvaWQg
c2V0RW5hYmxlZEJyb3dzZXJBZ2VudChJbnNwZWN0b3JCcm93c2VyQWdlbnQqKTsKKworICAgIHZv
aWQgYnJvd3NlckV4dGVuc2lvbnNFbmFibGVkKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiYpOwor
ICAgIHZvaWQgYnJvd3NlckV4dGVuc2lvbnNEaXNhYmxlZChIYXNoU2V0PFN0cmluZz4mJik7CiAK
IHByaXZhdGU6CiAgICAgV2ViUGFnZUFnZW50Q29udGV4dCB3ZWJQYWdlQWdlbnRDb250ZXh0KCk7
CkBAIC04OSw3ICs5Miw3IEBAIHByaXZhdGU6CiAgICAgUmVmPEluc3BlY3Rvcjo6QmFja2VuZERp
c3BhdGNoZXI+IG1fYmFja2VuZERpc3BhdGNoZXI7CiAgICAgSW5zcGVjdG9yOjpBZ2VudFJlZ2lz
dHJ5IG1fYWdlbnRzOwogCi0gICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7CisgICAgV2ViUGFnZVBy
b3h5JiBtX2luc3BlY3RlZFBhZ2U7CiAKICAgICBJbnNwZWN0b3I6Okluc3BlY3RvclRhcmdldEFn
ZW50KiBtX3RhcmdldEFnZW50IHsgbnVsbHB0ciB9OwogICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6
OnVuaXF1ZV9wdHI8SW5zcGVjdG9yVGFyZ2V0UHJveHk+PiBtX3RhcmdldHM7CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTg2ZmVmNjFmMDY4MDM0
NzcwYzVmNWZjMDUwOGM1MWIyMWIxYzBiYy4uODBjZTM5MGE3NTM4MzE5NjZkZTkxMDNhMmJhMjE0
MTJkYzZhOGUzMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTAxLTA4ICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUu
Y29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3RvcjogbW92ZSBicm93c2VyIGRvbWFp
biBhY3RpdmF0aW9uIG1ldGhvZHMgYmFjayB0byBXS1dlYlZpZXcgYW5kIFVJRGVsZWdhdGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDQ4MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckRlbGVnYXRlLm1tOgorICAgICAgICAo
LVtVSURlbGVnYXRlIF93ZWJWaWV3RGlkRW5hYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbjpdKToK
KyAgICAgICAgKC1bVUlEZWxlZ2F0ZSBfd2ViVmlld0RpZERpc2FibGVJbnNwZWN0b3JCcm93c2Vy
RG9tYWluOl0pOgorICAgICAgICAoLVtJbnNwZWN0b3JEZWxlZ2F0ZSBpbnNwZWN0b3JEaWRFbmFi
bGVCcm93c2VyRG9tYWluOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtJbnNwZWN0b3JEZWxlZ2F0
ZSBpbnNwZWN0b3JEaWREaXNhYmxlQnJvd3NlckRvbWFpbjpdKTogRGVsZXRlZC4KKyAgICAgICAg
QWRhcHQgdG8gbmV3IGxvY2F0aW9uIGZvciBkZWxlZ2F0ZSBtZXRob2RzLgorCiAyMDIxLTAxLTA4
ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwZS5jb20+CiAKICAgICAgICAgU3RvcCB1c2luZyBN
ZWRpYVJlY29yZGVyIGluIEFQSSB0ZXN0IFdlYktpdDIuU3BlZWNoUmVjb2duaXRpb25FcnJvcldo
ZW5TdGFydGluZ0F1ZGlvQ2FwdHVyZU9uRGlmZmVyZW50UGFnZQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckRlbGVnYXRlLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckRlbGVnYXRl
Lm1tCmluZGV4IGExOTEyM2JhODgwMTIyNTUxNzY0NGNiMDE3YzkyZDUzYWU3ZjcyOGUuLmEzNmRi
MjE4OTNhMTFlY2U1YjQxNjBkYjM0ZmMzNzA0YWUxYjU2NDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JEZWxlZ2F0ZS5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRGVsZWdh
dGUubW0KQEAgLTEwNCwxNiArMTA0LDYgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gSW5zcGVj
dG9yRGVsZWdhdGUKIAotLSAodm9pZClpbnNwZWN0b3JEaWRFbmFibGVCcm93c2VyRG9tYWluOihf
V0tJbnNwZWN0b3IgKilpbnNwZWN0b3IKLXsKLSAgICBicm93c2VyRG9tYWluRW5hYmxlZEZvcklu
c3BlY3RvckNhbGxlZCA9IHRydWU7Ci19Ci0KLS0gKHZvaWQpaW5zcGVjdG9yRGlkRGlzYWJsZUJy
b3dzZXJEb21haW46KF9XS0luc3BlY3RvciAqKWluc3BlY3RvcgotewotICAgIGJyb3dzZXJEb21h
aW5EaXNhYmxlZEZvckluc3BlY3RvckNhbGxlZCA9IHRydWU7Ci19Ci0KIC0gKHZvaWQpaW5zcGVj
dG9yOihfV0tJbnNwZWN0b3IgKilpbnNwZWN0b3Igb3BlblVSTEV4dGVybmFsbHk6KE5TVVJMICop
dXJsCiB7CiAgICAgRVhQRUNUX1NUUkVRKHVybC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nLCB1
cmxUb09wZW4uZ2V0KCkuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7CkBAIC0xNTYsNiArMTQ2
LDE2IEBAIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbENsb3NlTG9j
YWxJbnNwZWN0b3I6KF9XS0luc3BlY3RvciAqKWluCiAgICAgICAgIFtpbnNwZWN0b3IgY2xvc2Vd
OwogfQogCistICh2b2lkKV93ZWJWaWV3RGlkRW5hYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbjoo
V0tXZWJWaWV3ICopd2ViVmlldworeworICAgIGJyb3dzZXJEb21haW5FbmFibGVkRm9ySW5zcGVj
dG9yQ2FsbGVkID0gdHJ1ZTsKK30KKworLSAodm9pZClfd2ViVmlld0RpZERpc2FibGVJbnNwZWN0
b3JCcm93c2VyRG9tYWluOihXS1dlYlZpZXcgKil3ZWJWaWV3Cit7CisgICAgYnJvd3NlckRvbWFp
bkRpc2FibGVkRm9ySW5zcGVjdG9yQ2FsbGVkID0gdHJ1ZTsKK30KKwogQGVuZAogCiBURVNUKFdL
SW5zcGVjdG9yRGVsZWdhdGUsIEluc3BlY3RvckxpZmVjeWNsZUNhbGxiYWNrcykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417306</attachid>
            <date>2021-01-08 15:05:06 -0800</date>
            <delta_ts>2021-01-12 10:47:06 -0800</delta_ts>
            <desc>Patch v1.1</desc>
            <filename>bug-220480-20210108150505.patch</filename>
            <type>text/plain</type>
            <size>31343</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBlZWY2NGY3ZjNiMzM1MmY3
MDBlOTA0ODg2ODZlMDIwOGFjMzhmMzAuLjlhMDIwMjA2YTcyMTI2Yzk4YzJiZGYxMDM2MDYzYjc0
NzhmMmYwZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzQgQEAKKzIwMjEtMDEtMDggIEJKIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBtb3Zl
IGJyb3dzZXIgZG9tYWluIGFjdGl2YXRpb24gbWV0aG9kcyBiYWNrIHRvIFdLV2ViVmlldyBhbmQg
VUlEZWxlZ2F0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIwNDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSGF2aW5nIGJyb3dzZXIgZG9tYWluIGFjdGl2YXRpb24gbWV0aG9kcyBvbiBXS0luc3BlY3Rv
ckRlbGVnYXRlIG1lYW5zIHRoYXQKKyAgICAgICAgdGhlIGJyb3dzZXIgZG9tYWluIHdpbGwgbm90
IHdvcmsgd2l0aCByZW1vdGUgaW5zcGVjdGlvbiBvZiBXS1dlYlZpZXdzIG9uCisgICAgICAgIG1h
Y09TLiBNb3ZlIHRoZXNlIG1ldGhvZHMgYmFjayB0byBVSURlbGVnYXRlL1dLV2ViVmlldyBzbyB0
aGF0IGl0IGlzIHBvc3NpYmxlCisgICAgICAgIHRvIHJlbW90ZSBpbnNwZWN0IFNhZmFyaSBUZWNo
bm9sb2d5IFByZXZpZXcgd2l0aCBhbm90aGVyIFNhZmFyaSB3aGlsZSBzdGlsbAorICAgICAgICBi
ZW5lZml0aW5nIGZyb20gdGhlIGJyb3dzZXIgZG9tYWluIGJlaW5nIHR1cm5lZCBvbi4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIEFQSSB0ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50Lmg6CisgICAgICAgIChBUEk6Okluc3BlY3RvckNsaWVu
dDo6YnJvd3NlckRvbWFpbkVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoQVBJOjpJbnNwZWN0
b3JDbGllbnQ6OmJyb3dzZXJEb21haW5EaXNhYmxlZCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGlkRW5h
YmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbik6IE1vdmVkLgorICAgICAgICAoQVBJOjpVSUNsaWVu
dDo6ZGlkRGlzYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW4pOiBNb3ZlZC4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZEVuYWJs
ZUJyb3dzZXJFeHRlbnNpb25zOl0pOiBNb3ZlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaWRE
aXNhYmxlQnJvd3NlckV4dGVuc2lvbnM6XSk6IE1vdmVkLgorICAgICAgICBNb3ZlZCBmcm9tIFdL
SW5zcGVjdG9yLm1tLiBSYXRoZXIgdGhhbiBhY2Nlc3NpbmcgdGhlIGJyb3dzZXIgYWdlbnQKKyAg
ICAgICAgZGlyZWN0bHkgZnJvbSBPYmpDIGNvZGUsIHVzZSB0aGUgcGFnZSdzIFdlYlBhZ2VJbnNw
ZWN0b3JDb250cm9sbGVyLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNw
ZWN0b3JEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVj
dG9yUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9y
Lm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0b3IgX2Jyb3dzZXJFeHRlbnNpb25zRW5hYmxlZDpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bX1dLSW5zcGVjdG9yIF9icm93c2VyRXh0ZW5zaW9uc0Rp
c2FibGVkOl0pOiBEZWxldGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAg
KFdlYktpdDo6VUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpVSURl
bGVnYXRlOjpVSUNsaWVudDo6ZGlkRW5hYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbik6CisgICAg
ICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkaWREaXNhYmxlSW5zcGVjdG9yQnJv
d3NlckRvbWFpbik6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9BZ2VudHMvSW5zcGVj
dG9yQnJvd3NlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQnJvd3NlckFn
ZW50OjplbmFibGUpOgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JCcm93c2VyQWdlbnQ6OmRp
c2FibGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVs
ZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRl
bGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JEZWxlZ2F0ZTo6c2V0RGVsZWdh
dGUpOgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xpZW50
Ojp+SW5zcGVjdG9yQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yRGVsZWdhdGU6
Okluc3BlY3RvckNsaWVudDo6YnJvd3NlckRvbWFpbkVuYWJsZWQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpJbnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xpZW50Ojpicm93c2VyRG9t
YWluRGlzYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6
YnJvd3NlckV4dGVuc2lvbnNFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
SW5zcGVjdG9yUHJveHk6OmJyb3dzZXJFeHRlbnNpb25zRGlzYWJsZWQpOiBEZWxldGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuaDoKKworICAgICAg
ICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OldlYlBhZ2VJ
bnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUluc3BlY3RvckNv
bnRyb2xsZXI6OmluaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlSW5zcGVjdG9yQ29udHJv
bGxlcjo6Y29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUluc3BlY3Rv
ckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0QWxsRnJvbnRlbmRzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OnNldEluZGljYXRpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6Y3JlYXRlSW5zcGVjdG9y
VGFyZ2V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6Ondl
YlBhZ2VBZ2VudENvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlSW5zcGVjdG9yQ29u
dHJvbGxlcjo6c2V0RW5hYmxlZEJyb3dzZXJBZ2VudCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6YnJvd3NlckV4dGVuc2lvbnNFbmFibGVkKTog
QWRkZWQuIAorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6YnJv
d3NlckV4dGVuc2lvbnNEaXNhYmxlZCk6IEFkZGVkLgorICAgICAgICBEcml2ZS1ieTogcmVuYW1l
IG1fcGFnZSB0byBtX2luc3BlY3RlZFBhZ2UgdG8gZW1waGFzaXplIHRoYXQgdGhpcworICAgICAg
ICBjbGFzcyBleGlzdHMgYXMgcGFydCBvZiBXZWIgSW5zcGVjdG9yJ3MgYmFja2VuZCwgbm90IGl0
cyBmcm9udGVuZC4KKwogMjAyMS0wMS0wOCAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtXZWJBdXRobl0gQWRvcHQgbmV3IFVJIGZvciB0aGUgdXBkYXRlIGZs
b3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JDbGllbnQu
aAppbmRleCBjZjIxOTRkNGZlMzAxZWIzZGNlZGEwYmMyYzZhZTk0NjQ1OGM5OWY0Li5iODQxMWU2
ZjAwNzY5YjFlMDRiOTA4Yjc4MGI5NTRiYmFiN2IyMDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNsaWVudC5oCkBAIC0zOCw4ICszOCw2IEBAIGNs
YXNzIEluc3BlY3RvckNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yQ2xp
ZW50KCkgPSBkZWZhdWx0OwogCi0gICAgdmlydHVhbCB2b2lkIGJyb3dzZXJEb21haW5FbmFibGVk
KFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHkmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYnJvd3Nl
ckRvbWFpbkRpc2FibGVkKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHkmKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgb3BlblVSTEV4dGVybmFsbHkoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eSYsIGNv
bnN0IFdURjo6U3RyaW5nJiB1cmwpIHsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJVUlDbGllbnQuaAppbmRleCBmMjcxMzkyZjJkODZhMjkwYTM3Mzg5NGIzMmU5YTNlNjdm
NjdmNGNhLi5iMTdiNWExOTYyYmM5ZmRlNmJmOGYwNTVkNGI0YWU5ZTE3ZWI4NGRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMjAxLDYgKzIwMSw4IEBA
IHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBBUEk6Okluc3BlY3RvckNvbmZpZ3VyYXRp
b246OmNyZWF0ZSgpOwogICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5hYmxlSW5zcGVjdG9y
QnJvd3NlckRvbWFpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYp
IHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJp
dHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikgeyBwYWdlLnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25CeURl
ZmF1bHRBY3Rpb24ob3JpZ2luLnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IGYwYTliYTQxZjUxNWVmNzE4Zjc0NmM3
ZmRmZmZlYTRhMzVlOGRlMWUuLmNlMTkwNTY3ZWI3NzRlODA1ZDYyMThhMDc4NzJiYjNhOGQ3NjIz
MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVs
ZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtMTU0LDYgKzE1NCw5IEBAIHN0cnVjdCBVSUVkZ2VJbnNl
dHM7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFNwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkZvck9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKW9yaWdp
biBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5k
bGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAKKy0gKHZvaWQpX3dlYlZpZXdEaWRFbmFibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluOihXS1dl
YlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3RGlkRGlzYWJsZUluc3BlY3RvckJyb3dzZXJE
b21haW46KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogI2lmIFRBUkdFVF9PU19JUEhPTkUKIAogLSAoQk9P
TClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzaG91bGRJbmNsdWRlQXBwTGlua0FjdGlv
bnNGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FW
QUlMQUJMRShpb3MoOS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQppbmRleCA3MGViNTczZjQ0YjcxOTA2M2I0YWJkNGQ2M2Q1Mzc2ZTQzZjFi
MTc0Li41ZDY1YzQzMmZiOTJjYzU3ZGRmMjAwOTdkOTdmOTljYWFiN2Y4NDYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTkwLDYgKzkw
LDcgQEAKICNpbXBvcnQgIldlYkNlcnRpZmljYXRlSW5mby5oIgogI2ltcG9ydCAiV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5oIgogI2ltcG9ydCAiV2ViUGFnZUdyb3VwLmgiCisjaW1wb3J0ICJX
ZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAj
aW1wb3J0ICJXZWJQcmVmZXJlbmNlcy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKQEAg
LTE2NDksNiArMTY1MCwyNiBAQCAtIChfV0tJbnNwZWN0b3IgKilfaW5zcGVjdG9yCiAgICAgcmV0
dXJuIG5pbDsKIH0KIAorLSAodm9pZClfZGlkRW5hYmxlQnJvd3NlckV4dGVuc2lvbnM6KE5TRGlj
dGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqKWV4dGVuc2lvbklEVG9OYW1lTWFwCit7
CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gdHJhbnNmb3JtZWQ7CisgICAgdHJhbnNmb3Jt
ZWQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShleHRlbnNpb25JRFRvTmFtZU1hcC5jb3VudCk7Cisg
ICAgW2V4dGVuc2lvbklEVG9OYW1lTWFwIGVudW1lcmF0ZUtleXNBbmRPYmplY3RzVXNpbmdCbG9j
azpbJl0oTlNTdHJpbmcgKmV4dGVuc2lvbklELCBOU1N0cmluZyAqZXh0ZW5zaW9uTmFtZSwgQk9P
TCAqKSB7CisgICAgICAgIHRyYW5zZm9ybWVkLnNldChleHRlbnNpb25JRCwgZXh0ZW5zaW9uTmFt
ZSk7CisgICAgfV07CisKKyAgICBfcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmJyb3dzZXJF
eHRlbnNpb25zRW5hYmxlZChXVEZNb3ZlKHRyYW5zZm9ybWVkKSk7Cit9CisKKy0gKHZvaWQpX2Rp
ZERpc2FibGVCcm93c2VyRXh0ZW5zaW9uczooTlNTZXQ8TlNTdHJpbmcgKj4gKilleHRlbnNpb25J
RHMKK3sKKyAgICBIYXNoU2V0PFN0cmluZz4gdHJhbnNmb3JtZWQ7CisgICAgdHJhbnNmb3JtZWQu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShleHRlbnNpb25JRHMuY291bnQpOworICAgIGZvciAoTlNT
dHJpbmcgKmV4dGVuc2lvbklEIGluIGV4dGVuc2lvbklEcykKKyAgICAgICAgdHJhbnNmb3JtZWQu
YWRkVm9pZChleHRlbnNpb25JRCk7CisgICAgX3BhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5i
cm93c2VyRXh0ZW5zaW9uc0Rpc2FibGVkKFdURk1vdmUodHJhbnNmb3JtZWQpKTsKK30KKwogLSAo
X1dLRnJhbWVIYW5kbGUgKilfbWFpbkZyYW1lCiB7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gX3Bh
Z2UtPm1haW5GcmFtZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggYzRlMDc2MTIxZWQxMzVmNzUxMzVkNTJkNTE3
M2Y4NTg4MGJjNGFlZi4uMWUzMzFjNDBmNzIzNjlmMjQ3ZmU4ZWJmNDkwNTM0NmQ2MDFkNjYyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oCkBAIC0zNTksNiArMzU5LDkgQEAgZm9yIHRoaXMgcHJvcGVydHkuCiAKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENhblVzZUNyZWRlbnRpYWxTdG9yYWdlOikgQk9P
TCBfY2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAorLSAodm9pZClfZGlkRW5hYmxlQnJvd3NlckV4dGVu
c2lvbnM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqKWV4dGVuc2lvbklE
VG9OYW1lTWFwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CistICh2b2lkKV9kaWREaXNhYmxlQnJvd3NlckV4dGVuc2lvbnM6KE5TU2V0PE5TU3Ry
aW5nICo+ICopZXh0ZW5zaW9uSURzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CisKIEBlbmQKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCmluZGV4
IGYwNGY5YTQyNGE0NGExMjg5MWQ4MjI4MDNmN2I2YzJlMmM5ZTA4NWUuLjZiZWI0NWU4NDY1OTgx
ZjllMDkyNDcyZWE0YjMxNzg2NjcyNmJlMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQpAQCAtMTcwLDI1ICsxNzAsNiBAQCAtICh2
b2lkKV9zZXREaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlOihpZDxfV0tEaWFnbm9zdGljTG9nZ2lu
Z0RlbGVnYXRlPilkZWxlZ2F0ZQogICAgIF9pbnNwZWN0b3ItPnNldERpYWdub3N0aWNMb2dnaW5n
QXZhaWxhYmxlKCEhZGVsZWdhdGUpOwogfQogCi0tICh2b2lkKV9icm93c2VyRXh0ZW5zaW9uc0Vu
YWJsZWQ6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqKWV4dGVuc2lvbklE
VG9OYW1lTWFwCi17Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gdHJhbnNmb3JtZWQ7Ci0g
ICAgdHJhbnNmb3JtZWQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShleHRlbnNpb25JRFRvTmFtZU1h
cC5jb3VudCk7Ci0gICAgW2V4dGVuc2lvbklEVG9OYW1lTWFwIGVudW1lcmF0ZUtleXNBbmRPYmpl
Y3RzVXNpbmdCbG9jazpbJl0oTlNTdHJpbmcgKmV4dGVuc2lvbklELCBOU1N0cmluZyAqZXh0ZW5z
aW9uTmFtZSwgQk9PTCAqKSB7Ci0gICAgICAgIHRyYW5zZm9ybWVkLnNldChleHRlbnNpb25JRCwg
ZXh0ZW5zaW9uTmFtZSk7Ci0gICAgfV07Ci0gICAgX2luc3BlY3Rvci0+YnJvd3NlckV4dGVuc2lv
bnNFbmFibGVkKFdURk1vdmUodHJhbnNmb3JtZWQpKTsKLX0KLQotLSAodm9pZClfYnJvd3NlckV4
dGVuc2lvbnNEaXNhYmxlZDooTlNTZXQ8TlNTdHJpbmcgKj4gKilleHRlbnNpb25JRHMKLXsKLSAg
ICBIYXNoU2V0PFN0cmluZz4gdHJhbnNmb3JtZWQ7Ci0gICAgdHJhbnNmb3JtZWQucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eShleHRlbnNpb25JRHMuY291bnQpOwotICAgIGZvciAoTlNTdHJpbmcgKmV4
dGVuc2lvbklEIGluIGV4dGVuc2lvbklEcykKLSAgICAgICAgdHJhbnNmb3JtZWQuYWRkVm9pZChl
eHRlbnNpb25JRCk7Ci0gICAgX2luc3BlY3Rvci0+YnJvd3NlckV4dGVuc2lvbnNEaXNhYmxlZChX
VEZNb3ZlKHRyYW5zZm9ybWVkKSk7Ci19Ci0KIC8vIE1BUks6IF9XS0luc3BlY3RvckludGVybmFs
IG1ldGhvZHMKIAogLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlbGVnYXRlLmgKaW5k
ZXggNTUyMDFjNzg2Yjg3YzZjZjdjMDliMjcwOGM3MzcxMGM3NDkyODAxYy4uNDA1YjdkMDNhNzk0
MTIyMjFjMjVkYWQ3MWZkZWNiMmZjZjJmMzk0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlbGVnYXRlLmgKQEAgLTMxLDE2
ICszMSw2IEBACiBAcHJvdG9jb2wgX1dLSW5zcGVjdG9yRGVsZWdhdGUgPE5TT2JqZWN0PgogQG9w
dGlvbmFsCiAKLS8qISBAYWJzdHJhY3QgQ2FsbGVkIHdoZW4gdGhlIEJyb3dzZXIgZG9tYWluIGlz
IGVuYWJsZWQgZm9yIHRoZSBhc3NvY2lhdGVkIF9XS0luc3BlY3Rvci4KLSAgICBAcGFyYW0gaW5z
cGVjdG9yIHRoZSBhc3NvY2lhdGVkIF9XS0luc3BlY3RvciBmb3Igd2hpY2ggdGhlIEJyb3dzZXIg
ZG9tYWluIGhhcyBiZWVuIGVuYWJsZWQuCi0gKi8KLS0gKHZvaWQpaW5zcGVjdG9yRGlkRW5hYmxl
QnJvd3NlckRvbWFpbjooX1dLSW5zcGVjdG9yICopaW5zcGVjdG9yOwotCi0vKiEgQGFic3RyYWN0
IENhbGxlZCB3aGVuIHRoZSAgQnJvd3NlciBkb21haW4gaXMgZGlzYWJsZWQgZm9yIHRoZSBhc3Nv
Y2lhdGVkIF9XS0luc3BlY3Rvci4KLSAgICBAcGFyYW0gaW5zcGVjdG9yIHRoZSBhc3NvY2lhdGVk
IF9XS0luc3BlY3RvciBmb3Igd2hpY2ggdGhlIEJyb3dzZXIgZG9tYWluIGhhcyBiZWVuIGRpc2Fi
bGVkLgotICovCi0tICh2b2lkKWluc3BlY3RvckRpZERpc2FibGVCcm93c2VyRG9tYWluOihfV0tJ
bnNwZWN0b3IgKilpbnNwZWN0b3I7Ci0KIC8qISBAYWJzdHJhY3QgQ2FsbGVkIHdoZW4gdGhlIF9X
S0luc3BlY3RvciByZXF1ZXN0cyB0byBzaG93IGEgcmVzb3VyY2UgZXh0ZXJuYWxseS4gVGhpcwog
ICAgIGlzIHVzZWQgdG8gZGlzcGxheSBkb2N1bWVudGF0aW9uIHBhZ2VzIGFuZCB0byBzaG93IGV4
dGVybmFsIFVSTHMgdGhhdCBhcmUgbGlua2lmaWVkLgogICAgIEBwYXJhbSBpbnNwZWN0b3IgdGhl
IGFzc29jaWF0ZWQgaW5zcGVjdG9yIGZvciB3aGljaCBhbiBleHRlcm5hbCBuYXZpZ2F0aW9uIHNo
b3VsZCBiZSB0cmlnZ2VyZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLSW5zcGVjdG9yUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0luc3BlY3RvclByaXZhdGUuaAppbmRleCBlMjAyYWYwN2E1YzcwM2IzYTZi
NGRhOGQzNTRjZTYyNzQyNzU0YWM0Li5jMGQ5ODQ5MDc5OGE2Y2FjNTI1YmU2Y2RiYzhjMzhiNGM0
MWJiYjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
SW5zcGVjdG9yUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tJbnNwZWN0b3JQcml2YXRlLmgKQEAgLTMxLDggKzMxLDQgQEAKIAogQHByb3BlcnR5IChu
b25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZTopIGlk
PF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+IF9kaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRl
OwogCi0vLyBCcm93c2VyCi0tICh2b2lkKV9icm93c2VyRXh0ZW5zaW9uc0VuYWJsZWQ6KE5TRGlj
dGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqKWV4dGVuc2lvbklEVG9OYW1lOwotLSAo
dm9pZClfYnJvd3NlckV4dGVuc2lvbnNEaXNhYmxlZDooTlNTZXQ8TlNTdHJpbmcgKj4gKilleHRl
bnNpb25JRHM7Ci0KIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaAppbmRleCAzMGRjMmI5Nzc4MjgyNWYyMzE4NGI0MjMwMWM1MGFjZjYwNjE3MjE2Li44NTk1
ZjIwZTQxYzZmYzMxM2E0M2ZiODJjZDA5YmY5MmU1YWU2OTViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0xNjMsNiArMTYzLDggQEAgcHJpdmF0ZToK
ICAgICAgICAgdm9pZCBydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsKFdlYlBhZ2VQcm94eSYsIEFQ
STo6V2ViQXV0aGVudGljYXRpb25QYW5lbCYsIFdlYkZyYW1lUHJveHkmLCBGcmFtZUluZm9EYXRh
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdCk+
JiYpIGZpbmFsOwogI2VuZGlmCiAgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgICAgIHZv
aWQgZGlkRW5hYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihXZWJQYWdlUHJveHkmKSBmaW5hbDsK
KyAgICAgICAgdm9pZCBkaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihXZWJQYWdlUHJv
eHkmKSBmaW5hbDsKIAogICAgICAgICBXZWFrUHRyPFVJRGVsZWdhdGU+IG1fdWlEZWxlZ2F0ZTsK
ICAgICB9OwpAQCAtMjUwLDYgKzI1Miw4IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQl9BVVRI
TikKICAgICAgICAgYm9vbCB3ZWJWaWV3UnVuV2ViQXV0aGVudGljYXRpb25QYW5lbEluaXRpYXRl
ZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlciA6IDE7CiAjZW5kaWYKKyAgICAgICAgYm9vbCB3ZWJW
aWV3RGlkRW5hYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbiA6IDE7CisgICAgICAgIGJvb2wgd2Vi
Vmlld0RpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluIDogMTsKICAgICB9IG1fZGVsZWdh
dGVNZXRob2RzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW0KaW5kZXggMWI5ZWRiZjRkOThiOGU1MDkwMGI1YTM2YTkzNjQ3NDg3YmUzNThkYi4uMzQx
YTQzMDNlN2JkMGMzNjA0OWZmY2ZlZGI5NTE5NmJiMjZjZmJiMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xODMsNiArMTgzLDkgQEAgdm9pZCBV
SURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURlbGVnYXRlPiBkZWxlZ2F0ZSkKICNpZiBF
TkFCTEUoV0VCX0FVVEhOKQogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSdW5XZWJBdXRo
ZW50aWNhdGlvblBhbmVsSW5pdGlhdGVkQnlGcmFtZUNvbXBsZXRpb25IYW5kbGVyID0gW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cnVuV2ViQXV0aGVudGlj
YXRpb25QYW5lbDppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOildOwogI2VuZGlm
CisgICAgCisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVuYWJsZUluc3BlY3RvckJy
b3dzZXJEb21haW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
Vmlld0RpZEVuYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW46KV07CisgICAgbV9kZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld0RpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdEaWREaXNhYmxlSW5zcGVjdG9y
QnJvd3NlckRvbWFpbjopXTsKIH0KIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpAQCAtMTU1
MCw0ICsxNTUzLDM0IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZv
clNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViCiAgICAgfSkuZ2V0KCldOwog
fQogCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkaWRFbmFibGVJbnNwZWN0b3JCcm93c2Vy
RG9tYWluKFdlYlBhZ2VQcm94eSYpCit7CisgICAgaWYgKCFtX3VpRGVsZWdhdGUpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmICghbV91aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3RGlkRW5hYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS0+bV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBp
ZiAoIWRlbGVnYXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQ
cml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlld0RpZEVuYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW46
bV91aURlbGVnYXRlLT5tX3dlYlZpZXcuZ2V0KCkuZ2V0KCldOworfQorCit2b2lkIFVJRGVsZWdh
dGU6OlVJQ2xpZW50OjpkaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihXZWJQYWdlUHJv
eHkmKQoreworICAgIGlmICghbV91aURlbGVnYXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoIW1fdWlEZWxlZ2F0ZS0+bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZERpc2FibGVJbnNw
ZWN0b3JCcm93c2VyRG9tYWluKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGRlbGVnYXRl
ID0gbV91aURlbGVnYXRlLT5tX2RlbGVnYXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUpCisg
ICAgICAgIHJldHVybjsKKworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRl
IF93ZWJWaWV3RGlkRGlzYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW46bV91aURlbGVnYXRlLT5t
X3dlYlZpZXcuZ2V0KCkuZ2V0KCldOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9BZ2VudHMvSW5zcGVjdG9y
QnJvd3NlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9BZ2Vu
dHMvSW5zcGVjdG9yQnJvd3NlckFnZW50LmNwcAppbmRleCAyZDQ0NDUyN2VlZGVlN2VhOGE2ZTQ5
ODhmNzM1MTk3NTUyY2I5MDgwLi5kYmQ2MzgyNTQ1YTE0OWYzOWQ3YTI2NGVhZmU0NGMzOTNjNzZk
ZDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQWdlbnRz
L0luc3BlY3RvckJyb3dzZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL0FnZW50cy9JbnNwZWN0b3JCcm93c2VyQWdlbnQuY3BwCkBAIC0yNiw3ICsyNiw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQnJvd3NlckFnZW50
LmgiCiAKLSNpbmNsdWRlICJBUElJbnNwZWN0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJBUElVSUNs
aWVudC5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFn
ZUluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKQEAgLTcx
LDkgKzcxLDYgQEAgSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBJbnNw
ZWN0b3JCcm93c2VyQWdlbnQ6OmVuYWJsZSgpCiAKICAgICBtX2luc3BlY3RlZFBhZ2UuaW5zcGVj
dG9yQ29udHJvbGxlcigpLnNldEVuYWJsZWRCcm93c2VyQWdlbnQodGhpcyk7CiAKLSAgICBpZiAo
YXV0byogaW5zcGVjdG9yID0gbV9pbnNwZWN0ZWRQYWdlLmluc3BlY3RvcigpKQotICAgICAgICBp
bnNwZWN0b3ItPmluc3BlY3RvckNsaWVudCgpLmJyb3dzZXJEb21haW5FbmFibGVkKCppbnNwZWN0
b3IpOwotCiAgICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtODQsOSArODEsNiBAQCBJbnNwZWN0b3I6
OlByb3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IEluc3BlY3RvckJyb3dzZXJBZ2VudDo6ZGlz
YWJsZSgpCiAKICAgICBtX2luc3BlY3RlZFBhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLnNldEVu
YWJsZWRCcm93c2VyQWdlbnQobnVsbHB0cik7CiAKLSAgICBpZiAoYXV0byogaW5zcGVjdG9yID0g
bV9pbnNwZWN0ZWRQYWdlLmluc3BlY3RvcigpKQotICAgICAgICBpbnNwZWN0b3ItPmluc3BlY3Rv
ckNsaWVudCgpLmJyb3dzZXJEb21haW5EaXNhYmxlZCgqaW5zcGVjdG9yKTsKLQogICAgIHJldHVy
biB7IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5z
cGVjdG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRlLmgKaW5kZXggZDY0YjQ3YjI5NWIxMmJlNTc1
NGUyZmU3MWQ0ZjBjNWJlOTBjM2YzZC4uMDEyZTFlNGRmMDM3MmMxNWE5ZWU2YzIyMWY5MzZjOWQz
ZDYzMDVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0Nv
Y29hL0luc3BlY3RvckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5z
cGVjdG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRlLmgKQEAgLTM1LDcgKzM1LDYgQEAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJJbnNwZWN0b3JQcm94eTsKLWNsYXNzIFdlYlBhZ2VQ
cm94eTsKIAogY2xhc3MgSW5zcGVjdG9yRGVsZWdhdGUgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwpAQCAtNTYsOCArNTUsNiBAQCBwcml2YXRlOgogCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgLy8gQVBJOjpJbnNwZWN0b3JDbGllbnQKLSAgICAgICAgdm9pZCBicm93c2VyRG9tYWluRW5h
YmxlZChXZWJJbnNwZWN0b3JQcm94eSYpOwotICAgICAgICB2b2lkIGJyb3dzZXJEb21haW5EaXNh
YmxlZChXZWJJbnNwZWN0b3JQcm94eSYpOwogICAgICAgICB2b2lkIG9wZW5VUkxFeHRlcm5hbGx5
KFdlYkluc3BlY3RvclByb3h5JiwgY29uc3QgU3RyaW5nJiB1cmwpOwogCiAgICAgICAgIEluc3Bl
Y3RvckRlbGVnYXRlJiBtX2luc3BlY3RvckRlbGVnYXRlOwpAQCAtNjcsOCArNjQsNiBAQCBwcml2
YXRlOgogICAgIFdlYWtPYmpDUHRyPGlkIDxfV0tJbnNwZWN0b3JEZWxlZ2F0ZT4+IG1fZGVsZWdh
dGU7CiAKICAgICBzdHJ1Y3QgewotICAgICAgICBib29sIGluc3BlY3RvckRpZEVuYWJsZUJyb3dz
ZXJEb21haW4gOiAxOwotICAgICAgICBib29sIGluc3BlY3RvckRpZERpc2FibGVCcm93c2VyRG9t
YWluIDogMTsKICAgICAgICAgYm9vbCBpbnNwZWN0b3JPcGVuVVJMRXh0ZXJuYWxseSA6IDE7CiAg
ICAgfSBtX2RlbGVnYXRlTWV0aG9kczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW0KaW5kZXgg
NWNlZGExODU5NDBlMDQ3NTA3M2ZjY2YzODEyODQyMDVjMTBiZWEyNC4uNjBjMTMyZDVkODlkMTdi
NDZkMzMyZGYxYTAyYzBhOGEyY2JhMWM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5tbQpAQCAt
MjcsNyArMjcsNiBAQAogI2ltcG9ydCAiSW5zcGVjdG9yRGVsZWdhdGUuaCIKIAogI2ltcG9ydCAi
V2ViSW5zcGVjdG9yUHJveHkuaCIKLSNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAi
X1dLSW5zcGVjdG9yRGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS0luc3BlY3RvckludGVybmFsLmgi
CiAKQEAgLTUyLDggKzUxLDYgQEAgdm9pZCBJbnNwZWN0b3JEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUo
aWQgPF9XS0luc3BlY3RvckRlbGVnYXRlPiBkZWxlZ2F0ZSkKIHsKICAgICBtX2RlbGVnYXRlID0g
ZGVsZWdhdGU7CiAKLSAgICBtX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JEaWRFbmFibGVCcm93
c2VyRG9tYWluID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVj
dG9yRGlkRW5hYmxlQnJvd3NlckRvbWFpbjopXTsKLSAgICBtX2RlbGVnYXRlTWV0aG9kcy5pbnNw
ZWN0b3JEaWREaXNhYmxlQnJvd3NlckRvbWFpbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKGluc3BlY3RvckRpZERpc2FibGVCcm93c2VyRG9tYWluOildOwogICAgIG1f
ZGVsZWdhdGVNZXRob2RzLmluc3BlY3Rvck9wZW5VUkxFeHRlcm5hbGx5ID0gW2RlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9yOm9wZW5VUkxFeHRlcm5hbGx5Oild
OwogfQogCkBAIC02MiwzMCArNTksOCBAQCBJbnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xp
ZW50OjpJbnNwZWN0b3JDbGllbnQoSW5zcGVjdG9yRGVsZWdhdGUmIGRlbGVnYXRlKQogewogfQog
Ci1JbnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xpZW50Ojp+SW5zcGVjdG9yQ2xpZW50KCkg
PSBkZWZhdWx0OwotCi12b2lkIEluc3BlY3RvckRlbGVnYXRlOjpJbnNwZWN0b3JDbGllbnQ6OmJy
b3dzZXJEb21haW5FbmFibGVkKFdlYkluc3BlY3RvclByb3h5JikKLXsKLSAgICBpZiAoIW1faW5z
cGVjdG9yRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMuaW5zcGVjdG9yRGlkRW5hYmxlQnJvd3Nl
ckRvbWFpbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byYgZGVsZWdhdGUgPSBtX2luc3Bl
Y3RvckRlbGVnYXRlLm1fZGVsZWdhdGU7Ci0gICAgaWYgKCFkZWxlZ2F0ZSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgW2RlbGVnYXRlIGluc3BlY3RvckRpZEVuYWJsZUJyb3dzZXJEb21haW46bV9p
bnNwZWN0b3JEZWxlZ2F0ZS5tX2luc3BlY3Rvci5nZXQoKS5nZXQoKV07Ci19Ci0KLXZvaWQgSW5z
cGVjdG9yRGVsZWdhdGU6Okluc3BlY3RvckNsaWVudDo6YnJvd3NlckRvbWFpbkRpc2FibGVkKFdl
Ykluc3BlY3RvclByb3h5JikKK0luc3BlY3RvckRlbGVnYXRlOjpJbnNwZWN0b3JDbGllbnQ6On5J
bnNwZWN0b3JDbGllbnQoKQogewotICAgIGlmICghbV9pbnNwZWN0b3JEZWxlZ2F0ZS5tX2RlbGVn
YXRlTWV0aG9kcy5pbnNwZWN0b3JEaWREaXNhYmxlQnJvd3NlckRvbWFpbikKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgYXV0byYgZGVsZWdhdGUgPSBtX2luc3BlY3RvckRlbGVnYXRlLm1fZGVsZWdh
dGU7Ci0gICAgaWYgKCFkZWxlZ2F0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgW2RlbGVnYXRl
IGluc3BlY3RvckRpZERpc2FibGVCcm93c2VyRG9tYWluOm1faW5zcGVjdG9yRGVsZWdhdGUubV9p
bnNwZWN0b3IuZ2V0KCkuZ2V0KCldOwogfQogCiB2b2lkIEluc3BlY3RvckRlbGVnYXRlOjpJbnNw
ZWN0b3JDbGllbnQ6Om9wZW5VUkxFeHRlcm5hbGx5KFdlYkluc3BlY3RvclByb3h5JiwgY29uc3Qg
U3RyaW5nJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL1dlYkluc3BlY3RvclByb3h5LmNwcAppbmRleCBlOGMzOGI5NjIwZGE1Nzg1ZGMxNzM1M2Rl
ODg4YTE5YjI3N2Y3MWQ2Li5jMWFlYjQyODRmODU5YWE3NDBjMDE4M2M1ODA0MDE2MjJhYzA3Mjlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JQcm94eS5jcHAKQEAgLTY5OSwxOCArNjk5LDYgQEAgdm9pZCBXZWJJbnNwZWN0b3JQ
cm94eTo6c2V0RGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUoYm9vbCBhdmFpbGFibGUpCiAjZW5k
aWYKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6YnJvd3NlckV4dGVuc2lvbnNFbmFibGVk
KEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiYgZXh0ZW5zaW9uSURUb05hbWUpCi17Ci0gICAgaWYg
KGF1dG8qIGJyb3dzZXJBZ2VudCA9IG1faW5zcGVjdGVkUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxl
cigpLmVuYWJsZWRCcm93c2VyQWdlbnQoKSkKLSAgICAgICAgYnJvd3NlckFnZW50LT5leHRlbnNp
b25zRW5hYmxlZChXVEZNb3ZlKGV4dGVuc2lvbklEVG9OYW1lKSk7Ci19Ci0KLXZvaWQgV2ViSW5z
cGVjdG9yUHJveHk6OmJyb3dzZXJFeHRlbnNpb25zRGlzYWJsZWQoSGFzaFNldDxTdHJpbmc+JiYg
ZXh0ZW5zaW9uSURzKQotewotICAgIGlmIChhdXRvKiBicm93c2VyQWdlbnQgPSBtX2luc3BlY3Rl
ZFBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5lbmFibGVkQnJvd3NlckFnZW50KCkpCi0gICAg
ICAgIGJyb3dzZXJBZ2VudC0+ZXh0ZW5zaW9uc0Rpc2FibGVkKFdURk1vdmUoZXh0ZW5zaW9uSURz
KSk7Ci19Ci0KIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnNhdmUoY29uc3QgU3RyaW5nJiBmaWxl
bmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50LCBib29sIGJhc2U2NEVuY29kZWQsIGJvb2wgZm9y
Y2VTYXZlQXMpCiB7CiAgICAgaWYgKCFtX2luc3BlY3RlZFBhZ2UtPnByZWZlcmVuY2VzKCkuZGV2
ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuaAppbmRleCBmNTU0MWJmNzAyODE3ZWJjOGJl
MzY1MjVkYWMzMDlmODY1NDU4ZGZkLi4xM2JlYjg5YTdjNzlhYzEyMWI4NTRhNzk2ODYyNmFkNDVi
NTJlYzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yUHJveHkuaApAQCAtMTg0LDEwICsxODQsNiBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlKGJvb2wpOwogCi0gICAgLy8gQnJvd3Nl
cgotICAgIHZvaWQgYnJvd3NlckV4dGVuc2lvbnNFbmFibGVkKEhhc2hNYXA8U3RyaW5nLCBTdHJp
bmc+JiYpOwotICAgIHZvaWQgYnJvd3NlckV4dGVuc2lvbnNEaXNhYmxlZChIYXNoU2V0PFN0cmlu
Zz4mJik7Ci0KICAgICAvLyBQcm92aWRlZCBieSBwbGF0Zm9ybSBXZWJJbnNwZWN0b3JQcm94eSBp
bXBsZW1lbnRhdGlvbnMuCiAgICAgc3RhdGljIFN0cmluZyBpbnNwZWN0b3JQYWdlVVJMKCk7CiAg
ICAgc3RhdGljIFN0cmluZyBpbnNwZWN0b3JUZXN0UGFnZVVSTCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlSW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKaW5kZXggMTg2MWNmZjgwNjEzMTE5NmVhNDliNGY4YWNhNjY2NWJlZWJi
ZjZlOC4uZmQyMjcyNTEwNmZiYmViMjJiNTgxYTk5MTY4OTliNDVjNmYwMTkxYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VJbnNwZWN0b3JDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFn
ZUluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5oIgogCisjaW5jbHVkZSAi
QVBJVUlDbGllbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JCcm93c2VyQWdlbnQuaCIKICNpbmNs
dWRlICJQcm92aXNpb25hbFBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYkZyYW1lUHJveHkuaCIK
QEAgLTQ4LDEwICs0OSwxMCBAQCBzdGF0aWMgU3RyaW5nIGdldFRhcmdldElEKGNvbnN0IFByb3Zp
c2lvbmFsUGFnZVByb3h5JiBwcm92aXNpb25hbFBhZ2UpCiAgICAgcmV0dXJuIFdlYlBhZ2VJbnNw
ZWN0b3JUYXJnZXQ6OnRvVGFyZ2V0SUQocHJvdmlzaW9uYWxQYWdlLndlYlBhZ2VJRCgpKTsKIH0K
IAotV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OldlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVy
KFdlYlBhZ2VQcm94eSYgcGFnZSkKK1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpXZWJQYWdl
SW5zcGVjdG9yQ29udHJvbGxlcihXZWJQYWdlUHJveHkmIGluc3BlY3RlZFBhZ2UpCiAgICAgOiBt
X2Zyb250ZW5kUm91dGVyKEZyb250ZW5kUm91dGVyOjpjcmVhdGUoKSkKICAgICAsIG1fYmFja2Vu
ZERpc3BhdGNoZXIoQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShtX2Zyb250ZW5kUm91dGVyLmNv
cHlSZWYoKSkpCi0gICAgLCBtX3BhZ2UocGFnZSkKKyAgICAsIG1faW5zcGVjdGVkUGFnZShpbnNw
ZWN0ZWRQYWdlKQogewogICAgIGF1dG8gdGFyZ2V0QWdlbnQgPSBtYWtlVW5pcXVlPEluc3BlY3Rv
clRhcmdldEFnZW50PihtX2Zyb250ZW5kUm91dGVyLmdldCgpLCBtX2JhY2tlbmREaXNwYXRjaGVy
LmdldCgpKTsKICAgICBtX3RhcmdldEFnZW50ID0gdGFyZ2V0QWdlbnQuZ2V0KCk7CkBAIC02MCw3
ICs2MSw3IEBAIFdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpXZWJQYWdlSW5zcGVjdG9yQ29u
dHJvbGxlcihXZWJQYWdlUHJveHkmIHBhZ2UpCiAKIHZvaWQgV2ViUGFnZUluc3BlY3RvckNvbnRy
b2xsZXI6OmluaXQoKQogewotICAgIFN0cmluZyBwYWdlVGFyZ2V0SWQgPSBXZWJQYWdlSW5zcGVj
dG9yVGFyZ2V0Ojp0b1RhcmdldElEKG1fcGFnZS53ZWJQYWdlSUQoKSk7CisgICAgU3RyaW5nIHBh
Z2VUYXJnZXRJZCA9IFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXQ6OnRvVGFyZ2V0SUQobV9pbnNwZWN0
ZWRQYWdlLndlYlBhZ2VJRCgpKTsKICAgICBjcmVhdGVJbnNwZWN0b3JUYXJnZXQocGFnZVRhcmdl
dElkLCBJbnNwZWN0b3I6Okluc3BlY3RvclRhcmdldFR5cGU6OlBhZ2UpOwogfQogCkBAIC04Nywx
MSArODgsMTEgQEAgdm9pZCBXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250
ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJiBmcm8KICAgICBpZiAoY29ubmVjdGluZ0Zp
cnN0RnJvbnRlbmQpCiAgICAgICAgIG1fYWdlbnRzLmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZCgmbV9mcm9udGVuZFJvdXRlci5nZXQoKSwgJm1fYmFja2VuZERpc3BhdGNoZXIuZ2V0KCkpOwog
Ci0gICAgbV9wYWdlLmRpZENoYW5nZUluc3BlY3RvckZyb250ZW5kQ291bnQobV9mcm9udGVuZFJv
dXRlci0+ZnJvbnRlbmRDb3VudCgpKTsKKyAgICBtX2luc3BlY3RlZFBhZ2UuZGlkQ2hhbmdlSW5z
cGVjdG9yRnJvbnRlbmRDb3VudChtX2Zyb250ZW5kUm91dGVyLT5mcm9udGVuZENvdW50KCkpOwog
CiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAgICAgaWYgKGhhc0xvY2FsRnJvbnRlbmQo
KSkKLSAgICAgICAgbV9wYWdlLnJlbW90ZUluc3BlY3RvckluZm9ybWF0aW9uRGlkQ2hhbmdlKCk7
CisgICAgICAgIG1faW5zcGVjdGVkUGFnZS5yZW1vdGVJbnNwZWN0b3JJbmZvcm1hdGlvbkRpZENo
YW5nZSgpOwogI2VuZGlmCiB9CiAKQEAgLTEwMywxMSArMTA0LDExIEBAIHZvaWQgV2ViUGFnZUlu
c3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChGcm9udGVuZENoYW5uZWwmIGZy
b250ZW5kQ2hhCiAgICAgaWYgKGRpc2Nvbm5lY3RpbmdMYXN0RnJvbnRlbmQpCiAgICAgICAgIG1f
YWdlbnRzLndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb246Oklu
c3BlY3RvckRlc3Ryb3llZCk7CiAKLSAgICBtX3BhZ2UuZGlkQ2hhbmdlSW5zcGVjdG9yRnJvbnRl
bmRDb3VudChtX2Zyb250ZW5kUm91dGVyLT5mcm9udGVuZENvdW50KCkpOworICAgIG1faW5zcGVj
dGVkUGFnZS5kaWRDaGFuZ2VJbnNwZWN0b3JGcm9udGVuZENvdW50KG1fZnJvbnRlbmRSb3V0ZXIt
PmZyb250ZW5kQ291bnQoKSk7CiAKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICAgICBp
ZiAoZGlzY29ubmVjdGluZ0xhc3RGcm9udGVuZCkKLSAgICAgICAgbV9wYWdlLnJlbW90ZUluc3Bl
Y3RvckluZm9ybWF0aW9uRGlkQ2hhbmdlKCk7CisgICAgICAgIG1faW5zcGVjdGVkUGFnZS5yZW1v
dGVJbnNwZWN0b3JJbmZvcm1hdGlvbkRpZENoYW5nZSgpOwogI2VuZGlmCiB9CiAKQEAgLTEyNCwx
MCArMTI1LDEwIEBAIHZvaWQgV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RB
bGxGcm9udGVuZHMoKQogICAgIC8vIERpc2Nvbm5lY3QgYW55IHJlbWFpbmluZyByZW1vdGUgZnJv
bnRlbmRzLgogICAgIG1fZnJvbnRlbmRSb3V0ZXItPmRpc2Nvbm5lY3RBbGxGcm9udGVuZHMoKTsK
IAotICAgIG1fcGFnZS5kaWRDaGFuZ2VJbnNwZWN0b3JGcm9udGVuZENvdW50KG1fZnJvbnRlbmRS
b3V0ZXItPmZyb250ZW5kQ291bnQoKSk7CisgICAgbV9pbnNwZWN0ZWRQYWdlLmRpZENoYW5nZUlu
c3BlY3RvckZyb250ZW5kQ291bnQobV9mcm9udGVuZFJvdXRlci0+ZnJvbnRlbmRDb3VudCgpKTsK
IAogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQotICAgIG1fcGFnZS5yZW1vdGVJbnNwZWN0
b3JJbmZvcm1hdGlvbkRpZENoYW5nZSgpOworICAgIG1faW5zcGVjdGVkUGFnZS5yZW1vdGVJbnNw
ZWN0b3JJbmZvcm1hdGlvbkRpZENoYW5nZSgpOwogI2VuZGlmCiB9CiAKQEAgLTE0MCwxOSArMTQx
LDE5IEBAIHZvaWQgV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmRpc3BhdGNoTWVzc2FnZUZy
b21Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhCiB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JDb250
cm9sbGVyOjpzZXRJbmRpY2F0aW5nKGJvb2wgaW5kaWNhdGluZykKIHsKICNpZiAhUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLSAgICBtX3BhZ2Uuc2V0SW5kaWNhdGluZyhpbmRpY2F0aW5nKTsKKyAgICBt
X2luc3BlY3RlZFBhZ2Uuc2V0SW5kaWNhdGluZyhpbmRpY2F0aW5nKTsKICNlbHNlCiAgICAgaWYg
KGluZGljYXRpbmcpCi0gICAgICAgIG1fcGFnZS5zaG93SW5zcGVjdG9ySW5kaWNhdGlvbigpOwor
ICAgICAgICBtX2luc3BlY3RlZFBhZ2Uuc2hvd0luc3BlY3RvckluZGljYXRpb24oKTsKICAgICBl
bHNlCi0gICAgICAgIG1fcGFnZS5oaWRlSW5zcGVjdG9ySW5kaWNhdGlvbigpOworICAgICAgICBt
X2luc3BlY3RlZFBhZ2UuaGlkZUluc3BlY3RvckluZGljYXRpb24oKTsKICNlbmRpZgogfQogI2Vu
ZGlmCiAKIHZvaWQgV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmNyZWF0ZUluc3BlY3RvclRh
cmdldChjb25zdCBTdHJpbmcmIHRhcmdldElkLCBJbnNwZWN0b3I6Okluc3BlY3RvclRhcmdldFR5
cGUgdHlwZSkKIHsKLSAgICBhZGRUYXJnZXQoSW5zcGVjdG9yVGFyZ2V0UHJveHk6OmNyZWF0ZSht
X3BhZ2UsIHRhcmdldElkLCB0eXBlKSk7CisgICAgYWRkVGFyZ2V0KEluc3BlY3RvclRhcmdldFBy
b3h5OjpjcmVhdGUobV9pbnNwZWN0ZWRQYWdlLCB0YXJnZXRJZCwgdHlwZSkpOwogfQogCiB2b2lk
IFdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpkZXN0cm95SW5zcGVjdG9yVGFyZ2V0KGNvbnN0
IFN0cmluZyYgdGFyZ2V0SWQpCkBAIC0yMTksNyArMjIwLDcgQEAgV2ViUGFnZUFnZW50Q29udGV4
dCBXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6d2ViUGFnZUFnZW50Q29udGV4dCgpCiAgICAg
cmV0dXJuIHsKICAgICAgICAgbV9mcm9udGVuZFJvdXRlci5nZXQoKSwKICAgICAgICAgbV9iYWNr
ZW5kRGlzcGF0Y2hlci5nZXQoKSwKLSAgICAgICAgbV9wYWdlLAorICAgICAgICBtX2luc3BlY3Rl
ZFBhZ2UsCiAgICAgfTsKIH0KIApAQCAtMjQxLDQgKzI0MiwyOSBAQCB2b2lkIFdlYlBhZ2VJbnNw
ZWN0b3JDb250cm9sbGVyOjphZGRUYXJnZXQoc3RkOjp1bmlxdWVfcHRyPEluc3BlY3RvclRhcmdl
dFByb3h5PgogICAgIG1fdGFyZ2V0cy5zZXQodGFyZ2V0LT5pZGVudGlmaWVyKCksIFdURk1vdmUo
dGFyZ2V0KSk7CiB9CiAKK3ZvaWQgV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OnNldEVuYWJs
ZWRCcm93c2VyQWdlbnQoSW5zcGVjdG9yQnJvd3NlckFnZW50KiBhZ2VudCkKK3sKKyAgICBpZiAo
bV9lbmFibGVkQnJvd3NlckFnZW50ID09IGFnZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBt
X2VuYWJsZWRCcm93c2VyQWdlbnQgPSBhZ2VudDsKKworICAgIGlmIChhZ2VudCkKKyAgICAgICAg
bV9pbnNwZWN0ZWRQYWdlLnVpQ2xpZW50KCkuZGlkRW5hYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFp
bihtX2luc3BlY3RlZFBhZ2UpOworICAgIGVsc2UKKyAgICAgICAgbV9pbnNwZWN0ZWRQYWdlLnVp
Q2xpZW50KCkuZGlkRGlzYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW4obV9pbnNwZWN0ZWRQYWdl
KTsKK30KKwordm9pZCBXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6YnJvd3NlckV4dGVuc2lv
bnNFbmFibGVkKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiYgZXh0ZW5zaW9uSURUb05hbWUpCit7
CisgICAgaWYgKGF1dG8qIGJyb3dzZXJBZ2VudCA9IGVuYWJsZWRCcm93c2VyQWdlbnQoKSkKKyAg
ICAgICAgYnJvd3NlckFnZW50LT5leHRlbnNpb25zRW5hYmxlZChXVEZNb3ZlKGV4dGVuc2lvbklE
VG9OYW1lKSk7Cit9CisKK3ZvaWQgV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmJyb3dzZXJF
eHRlbnNpb25zRGlzYWJsZWQoSGFzaFNldDxTdHJpbmc+JiYgZXh0ZW5zaW9uSURzKQoreworICAg
IGlmIChhdXRvKiBicm93c2VyQWdlbnQgPSBlbmFibGVkQnJvd3NlckFnZW50KCkpCisgICAgICAg
IGJyb3dzZXJBZ2VudC0+ZXh0ZW5zaW9uc0Rpc2FibGVkKFdURk1vdmUoZXh0ZW5zaW9uSURzKSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXIuaApp
bmRleCBmOWMyNjgzMmQzZTkxZThkNzQ3YzVjMWUwZjBkNzZjMzRmNGMzMDk2Li44YzEzMzkzNDVk
NDUxODc0NTAyYjI3MWY2YWEyZWNhM2ZhMGQzZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZUluc3BlY3RvckNvbnRyb2xs
ZXIuaApAQCAtNzcsNyArNzcsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ29tbWl0UHJvdmlz
aW9uYWxQYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG9sZFdlYlBhZ2VJRCwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgbmV3V2ViUGFnZUlEKTsKIAogICAgIEluc3BlY3RvckJyb3dzZXJBZ2Vu
dCogZW5hYmxlZEJyb3dzZXJBZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZEJyb3dzZXJB
Z2VudDsgfQotICAgIHZvaWQgc2V0RW5hYmxlZEJyb3dzZXJBZ2VudChJbnNwZWN0b3JCcm93c2Vy
QWdlbnQqIGFnZW50KSB7IG1fZW5hYmxlZEJyb3dzZXJBZ2VudCA9IGFnZW50OyB9CisgICAgdm9p
ZCBzZXRFbmFibGVkQnJvd3NlckFnZW50KEluc3BlY3RvckJyb3dzZXJBZ2VudCopOworCisgICAg
dm9pZCBicm93c2VyRXh0ZW5zaW9uc0VuYWJsZWQoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mJik7
CisgICAgdm9pZCBicm93c2VyRXh0ZW5zaW9uc0Rpc2FibGVkKEhhc2hTZXQ8U3RyaW5nPiYmKTsK
IAogcHJpdmF0ZToKICAgICBXZWJQYWdlQWdlbnRDb250ZXh0IHdlYlBhZ2VBZ2VudENvbnRleHQo
KTsKQEAgLTg5LDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICBSZWY8SW5zcGVjdG9yOjpCYWNrZW5k
RGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKICAgICBJbnNwZWN0b3I6OkFnZW50UmVn
aXN0cnkgbV9hZ2VudHM7CiAKLSAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKKyAgICBXZWJQYWdl
UHJveHkmIG1faW5zcGVjdGVkUGFnZTsKIAogICAgIEluc3BlY3Rvcjo6SW5zcGVjdG9yVGFyZ2V0
QWdlbnQqIG1fdGFyZ2V0QWdlbnQgeyBudWxscHRyIH07CiAgICAgSGFzaE1hcDxTdHJpbmcsIHN0
ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JUYXJnZXRQcm94eT4+IG1fdGFyZ2V0czsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5ODZmZWY2MWYwNjgw
MzQ3NzBjNWY1ZmMwNTA4YzUxYjIxYjFjMGJjLi44MGNlMzkwYTc1MzgzMTk2NmRlOTEwM2EyYmEy
MTQxMmRjNmE4ZTMyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDEtMDggIEJKIEJ1cmcgIDxiYnVyZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBtb3ZlIGJyb3dzZXIgZG9t
YWluIGFjdGl2YXRpb24gbWV0aG9kcyBiYWNrIHRvIFdLV2ViVmlldyBhbmQgVUlEZWxlZ2F0ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNDgwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRGVsZWdhdGUubW06CisgICAgICAg
ICgtW1VJRGVsZWdhdGUgX3dlYlZpZXdEaWRFbmFibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluOl0p
OgorICAgICAgICAoLVtVSURlbGVnYXRlIF93ZWJWaWV3RGlkRGlzYWJsZUluc3BlY3RvckJyb3dz
ZXJEb21haW46XSk6CisgICAgICAgICgtW0luc3BlY3RvckRlbGVnYXRlIGluc3BlY3RvckRpZEVu
YWJsZUJyb3dzZXJEb21haW46XSk6IERlbGV0ZWQuCisgICAgICAgICgtW0luc3BlY3RvckRlbGVn
YXRlIGluc3BlY3RvckRpZERpc2FibGVCcm93c2VyRG9tYWluOl0pOiBEZWxldGVkLgorICAgICAg
ICBBZGFwdCB0byBuZXcgbG9jYXRpb24gZm9yIGRlbGVnYXRlIG1ldGhvZHMuCisKIDIwMjEtMDEt
MDggIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5n
IE1lZGlhUmVjb3JkZXIgaW4gQVBJIHRlc3QgV2ViS2l0Mi5TcGVlY2hSZWNvZ25pdGlvbkVycm9y
V2hlblN0YXJ0aW5nQXVkaW9DYXB0dXJlT25EaWZmZXJlbnRQYWdlCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRGVsZWdhdGUubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRGVsZWdh
dGUubW0KaW5kZXggYTE5MTIzYmE4ODAxMjI1NTE3NjQ0Y2IwMTdjOTJkNTNhZTdmNzI4ZS4uYTM2
ZGIyMTg5M2ExMWVjZTViNDE2MGRiMzRmYzM3MDRhZTFiNTY0NyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckRlbGVnYXRlLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JEZWxl
Z2F0ZS5tbQpAQCAtMTA0LDE2ICsxMDQsNiBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBJbnNw
ZWN0b3JEZWxlZ2F0ZQogCi0tICh2b2lkKWluc3BlY3RvckRpZEVuYWJsZUJyb3dzZXJEb21haW46
KF9XS0luc3BlY3RvciAqKWluc3BlY3RvcgotewotICAgIGJyb3dzZXJEb21haW5FbmFibGVkRm9y
SW5zcGVjdG9yQ2FsbGVkID0gdHJ1ZTsKLX0KLQotLSAodm9pZClpbnNwZWN0b3JEaWREaXNhYmxl
QnJvd3NlckRvbWFpbjooX1dLSW5zcGVjdG9yICopaW5zcGVjdG9yCi17Ci0gICAgYnJvd3NlckRv
bWFpbkRpc2FibGVkRm9ySW5zcGVjdG9yQ2FsbGVkID0gdHJ1ZTsKLX0KLQogLSAodm9pZClpbnNw
ZWN0b3I6KF9XS0luc3BlY3RvciAqKWluc3BlY3RvciBvcGVuVVJMRXh0ZXJuYWxseTooTlNVUkwg
Kil1cmwKIHsKICAgICBFWFBFQ1RfU1RSRVEodXJsLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcs
IHVybFRvT3Blbi5nZXQoKS5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKQEAgLTE1Niw2ICsx
NDYsMTYgQEAgLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB3aWxsQ2xvc2VM
b2NhbEluc3BlY3RvcjooX1dLSW5zcGVjdG9yICopaW4KICAgICAgICAgW2luc3BlY3RvciBjbG9z
ZV07CiB9CiAKKy0gKHZvaWQpX3dlYlZpZXdEaWRFbmFibGVJbnNwZWN0b3JCcm93c2VyRG9tYWlu
OihXS1dlYlZpZXcgKil3ZWJWaWV3Cit7CisgICAgYnJvd3NlckRvbWFpbkVuYWJsZWRGb3JJbnNw
ZWN0b3JDYWxsZWQgPSB0cnVlOworfQorCistICh2b2lkKV93ZWJWaWV3RGlkRGlzYWJsZUluc3Bl
Y3RvckJyb3dzZXJEb21haW46KFdLV2ViVmlldyAqKXdlYlZpZXcKK3sKKyAgICBicm93c2VyRG9t
YWluRGlzYWJsZWRGb3JJbnNwZWN0b3JDYWxsZWQgPSB0cnVlOworfQorCiBAZW5kCiAKIFRFU1Qo
V0tJbnNwZWN0b3JEZWxlZ2F0ZSwgSW5zcGVjdG9yTGlmZWN5Y2xlQ2FsbGJhY2tzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417470</attachid>
            <date>2021-01-12 10:47:07 -0800</date>
            <delta_ts>2021-01-12 16:19:43 -0800</delta_ts>
            <desc>Patch v1.2</desc>
            <filename>bug-220480-20210112104706.patch</filename>
            <type>text/plain</type>
            <size>31272</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ5ZTNlNmYwMDQ2YTdhMzY4
OWNkMjc3NThhNWY0MTdlMjJiNTA0MzUuLjc4YWNiZjA3ZDM4ZWQxOGRiNmVkY2FiOGZhYTMxZDNm
NTc0ZWU5MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzQgQEAKKzIwMjEtMDEtMDggIEJKIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBtb3Zl
IGJyb3dzZXIgZG9tYWluIGFjdGl2YXRpb24gbWV0aG9kcyBiYWNrIHRvIFdLV2ViVmlldyBhbmQg
VUlEZWxlZ2F0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIwNDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAg
IEhhdmluZyBicm93c2VyIGRvbWFpbiBhY3RpdmF0aW9uIG1ldGhvZHMgb24gV0tJbnNwZWN0b3JE
ZWxlZ2F0ZSBtZWFucyB0aGF0CisgICAgICAgIHRoZSBicm93c2VyIGRvbWFpbiB3aWxsIG5vdCB3
b3JrIHdpdGggcmVtb3RlIGluc3BlY3Rpb24gb2YgV0tXZWJWaWV3cyBvbgorICAgICAgICBtYWNP
Uy4gTW92ZSB0aGVzZSBtZXRob2RzIGJhY2sgdG8gVUlEZWxlZ2F0ZS9XS1dlYlZpZXcgc28gdGhh
dCBpdCBpcyBwb3NzaWJsZQorICAgICAgICB0byByZW1vdGUgaW5zcGVjdCBTYWZhcmkgVGVjaG5v
bG9neSBQcmV2aWV3IHdpdGggYW5vdGhlciBTYWZhcmkgd2hpbGUgc3RpbGwKKyAgICAgICAgYmVu
ZWZpdGluZyBmcm9tIHRoZSBicm93c2VyIGRvbWFpbiBiZWluZyB0dXJuZWQgb24uCisKKyAgICAg
ICAgQ292ZXJlZCBieSBleGlzdGluZyBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0FQSUluc3BlY3RvckNsaWVudC5oOgorICAgICAgICAoQVBJOjpJbnNwZWN0b3JDbGllbnQ6
OmJyb3dzZXJEb21haW5FbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKEFQSTo6SW5zcGVjdG9y
Q2xpZW50Ojpicm93c2VyRG9tYWluRGlzYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQVBJVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OmRpZEVuYWJs
ZUluc3BlY3RvckJyb3dzZXJEb21haW4pOiBNb3ZlZC4KKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6
OmRpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluKTogTW92ZWQuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaWRFbmFibGVC
cm93c2VyRXh0ZW5zaW9uczpdKTogTW92ZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfZGlkRGlz
YWJsZUJyb3dzZXJFeHRlbnNpb25zOl0pOiBNb3ZlZC4KKyAgICAgICAgTW92ZWQgZnJvbSBXS0lu
c3BlY3Rvci5tbS4gUmF0aGVyIHRoYW4gYWNjZXNzaW5nIHRoZSBicm93c2VyIGFnZW50CisgICAg
ICAgIGRpcmVjdGx5IGZyb20gT2JqQyBjb2RlLCB1c2UgdGhlIHBhZ2UncyBXZWJQYWdlSW5zcGVj
dG9yQ29udHJvbGxlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVj
dG9yRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rv
clByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5t
bToKKyAgICAgICAgKC1bX1dLSW5zcGVjdG9yIF9icm93c2VyRXh0ZW5zaW9uc0VuYWJsZWQ6XSk6
IERlbGV0ZWQuCisgICAgICAgICgtW19XS0luc3BlY3RvciBfYnJvd3NlckV4dGVuc2lvbnNEaXNh
YmxlZDpdKTogRGVsZXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChX
ZWJLaXQ6OlVJRGVsZWdhdGU6OnNldERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxl
Z2F0ZTo6VUlDbGllbnQ6OmRpZEVuYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW4pOgorICAgICAg
ICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkRGlzYWJsZUluc3BlY3RvckJyb3dz
ZXJEb21haW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvQWdlbnRzL0luc3BlY3Rv
ckJyb3dzZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckJyb3dzZXJBZ2Vu
dDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQnJvd3NlckFnZW50OjpkaXNh
YmxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRlbGVn
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxl
Z2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yRGVsZWdhdGU6OnNldERlbGVnYXRl
KToKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yRGVsZWdhdGU6Okluc3BlY3RvckNsaWVudDo6
fkluc3BlY3RvckNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckRlbGVnYXRlOjpJ
bnNwZWN0b3JDbGllbnQ6OmJyb3dzZXJEb21haW5FbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6SW5zcGVjdG9yRGVsZWdhdGU6Okluc3BlY3RvckNsaWVudDo6YnJvd3NlckRvbWFp
bkRpc2FibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OmJy
b3dzZXJFeHRlbnNpb25zRW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYklu
c3BlY3RvclByb3h5Ojpicm93c2VyRXh0ZW5zaW9uc0Rpc2FibGVkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5Lmg6CisKKyAgICAgICAg
KiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpXZWJQYWdlSW5z
cGVjdG9yQ29udHJvbGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VJbnNwZWN0b3JDb250
cm9sbGVyOjppbml0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUluc3BlY3RvckNvbnRyb2xs
ZXI6OmNvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VJbnNwZWN0b3JD
b250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEFsbEZyb250ZW5kcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpzZXRJbmRpY2F0aW5nKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmNyZWF0ZUluc3BlY3RvclRh
cmdldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjp3ZWJQ
YWdlQWdlbnRDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUluc3BlY3RvckNvbnRy
b2xsZXI6OnNldEVuYWJsZWRCcm93c2VyQWdlbnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmJyb3dzZXJFeHRlbnNpb25zRW5hYmxlZCk6IEFk
ZGVkLiAKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmJyb3dz
ZXJFeHRlbnNpb25zRGlzYWJsZWQpOiBBZGRlZC4KKyAgICAgICAgRHJpdmUtYnk6IHJlbmFtZSBt
X3BhZ2UgdG8gbV9pbnNwZWN0ZWRQYWdlIHRvIGVtcGhhc2l6ZSB0aGF0IHRoaXMKKyAgICAgICAg
Y2xhc3MgZXhpc3RzIGFzIHBhcnQgb2YgV2ViIEluc3BlY3RvcidzIGJhY2tlbmQsIG5vdCBpdHMg
ZnJvbnRlbmQuCisKIDIwMjEtMDEtMTEgIFlvc2hpYWtpIEppdHN1a2F3YSAgPHlvc2hpYWtpLmpp
dHN1a2F3YUBzb255LmNvbT4KIAogICAgICAgICBbUGxheVN0YXRpb25dIEFkZCBNaW5pQnJvd3Nl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNsaWVudC5o
CmluZGV4IGNmMjE5NGQ0ZmUzMDFlYjNkY2VkYTBiYzJjNmFlOTQ2NDU4Yzk5ZjQuLmI4NDExZTZm
MDA3NjliMWUwNGI5MDhiNzgwYjk1NGJiYWI3YjIwMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTM4LDggKzM4LDYgQEAgY2xh
c3MgSW5zcGVjdG9yQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JDbGll
bnQoKSA9IGRlZmF1bHQ7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYnJvd3NlckRvbWFpbkVuYWJsZWQo
V2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eSYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBicm93c2Vy
RG9tYWluRGlzYWJsZWQoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eSYpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBvcGVuVVJMRXh0ZXJuYWxseShXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5JiwgY29u
c3QgV1RGOjpTdHJpbmcmIHVybCkgeyB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElVSUNsaWVudC5oCmluZGV4IGYyNzEzOTJmMmQ4NmEyOTBhMzczODk0YjMyZTlhM2U2N2Y2
N2Y0Y2EuLmIxN2I1YTE5NjJiYzlmZGU2YmY4ZjA1NWQ0YjRhZTllMTdlYjg0ZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0yMDEsNiArMjAxLDggQEAg
cHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIEFQSTo6SW5zcGVjdG9yQ29uZmlndXJhdGlv
bjo6Y3JlYXRlKCk7CiAgICAgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRFbmFibGVJbnNwZWN0b3JC
cm93c2VyRG9tYWluKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CisgICAgdmlydHVhbCB2b2lk
IGRpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluKFdlYktpdDo6V2ViUGFnZVByb3h5Jikg
eyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0
eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKSB7IHBhZ2UucmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkJ5RGVm
YXVsdEFjdGlvbihvcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggZjBhOWJhNDFmNTE1ZWY3MThmNzQ2Yzdm
ZGZmZmVhNGEzNWU4ZGUxZS4uY2UxOTA1NjdlYjc3NGU4MDVkNjIxOGEwNzg3MmJiM2E4ZDc2MjMw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
SURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0xNTQsNiArMTU0LDkgQEAgc3RydWN0IFVJRWRnZUluc2V0
czsKIAogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0U3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uRm9yT3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopb3JpZ2lu
IGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRs
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAorLSAodm9pZClfd2ViVmlld0RpZEVuYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW46KFdLV2Vi
VmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXdEaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRv
bWFpbjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogCiAtIChCT09M
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZEluY2x1ZGVBcHBMaW5rQWN0aW9u
c0ZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BUElfQVZB
SUxBQkxFKGlvcyg5LjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCmluZGV4IDcwZWI1NzNmNDRiNzE5MDYzYjRhYmQ0ZDYzZDUzNzZlNDNmMWIx
NzQuLmEwOGFhYzA0ZmRmNjYxODJiNmZhOTYxYjQ4Nzg0NDI4OTczOGNjYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtOTAsNiArOTAs
NyBAQAogI2ltcG9ydCAiV2ViQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW1wb3J0ICJXZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5LmgiCiAjaW1wb3J0ICJXZWJQYWdlR3JvdXAuaCIKKyNpbXBvcnQgIldl
YlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNp
bXBvcnQgIldlYlByZWZlcmVuY2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgpAQCAt
MTY0OSw2ICsxNjUwLDI1IEBAIC0gKF9XS0luc3BlY3RvciAqKV9pbnNwZWN0b3IKICAgICByZXR1
cm4gbmlsOwogfQogCistICh2b2lkKV9kaWRFbmFibGVCcm93c2VyRXh0ZW5zaW9uczooTlNEaWN0
aW9uYXJ5PE5TU3RyaW5nICosIE5TU3RyaW5nICo+ICopZXh0ZW5zaW9uSURUb05hbWVNYXAKK3sK
KyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiB0cmFuc2Zvcm1lZDsKKyAgICB0cmFuc2Zvcm1l
ZC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGV4dGVuc2lvbklEVG9OYW1lTWFwLmNvdW50KTsKKyAg
ICBbZXh0ZW5zaW9uSURUb05hbWVNYXAgZW51bWVyYXRlS2V5c0FuZE9iamVjdHNVc2luZ0Jsb2Nr
OlsmXShOU1N0cmluZyAqZXh0ZW5zaW9uSUQsIE5TU3RyaW5nICpleHRlbnNpb25OYW1lLCBCT09M
ICopIHsKKyAgICAgICAgdHJhbnNmb3JtZWQuc2V0KGV4dGVuc2lvbklELCBleHRlbnNpb25OYW1l
KTsKKyAgICB9XTsKKyAgICBfcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmJyb3dzZXJFeHRl
bnNpb25zRW5hYmxlZChXVEZNb3ZlKHRyYW5zZm9ybWVkKSk7Cit9CisKKy0gKHZvaWQpX2RpZERp
c2FibGVCcm93c2VyRXh0ZW5zaW9uczooTlNTZXQ8TlNTdHJpbmcgKj4gKilleHRlbnNpb25JRHMK
K3sKKyAgICBIYXNoU2V0PFN0cmluZz4gdHJhbnNmb3JtZWQ7CisgICAgdHJhbnNmb3JtZWQucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eShleHRlbnNpb25JRHMuY291bnQpOworICAgIGZvciAoTlNTdHJp
bmcgKmV4dGVuc2lvbklEIGluIGV4dGVuc2lvbklEcykKKyAgICAgICAgdHJhbnNmb3JtZWQuYWRk
Vm9pZChleHRlbnNpb25JRCk7CisgICAgX3BhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5icm93
c2VyRXh0ZW5zaW9uc0Rpc2FibGVkKFdURk1vdmUodHJhbnNmb3JtZWQpKTsKK30KKwogLSAoX1dL
RnJhbWVIYW5kbGUgKilfbWFpbkZyYW1lCiB7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gX3BhZ2Ut
Pm1haW5GcmFtZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggYzRlMDc2MTIxZWQxMzVmNzUxMzVkNTJkNTE3M2Y4
NTg4MGJjNGFlZi4uMWUzMzFjNDBmNzIzNjlmMjQ3ZmU4ZWJmNDkwNTM0NmQ2MDFkNjYyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oCkBAIC0zNTksNiArMzU5LDkgQEAgZm9yIHRoaXMgcHJvcGVydHkuCiAKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENhblVzZUNyZWRlbnRpYWxTdG9yYWdlOikgQk9PTCBf
Y2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKIAorLSAodm9pZClfZGlkRW5hYmxlQnJvd3NlckV4dGVuc2lv
bnM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqKWV4dGVuc2lvbklEVG9O
YW1lTWFwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CistICh2b2lkKV9kaWREaXNhYmxlQnJvd3NlckV4dGVuc2lvbnM6KE5TU2V0PE5TU3RyaW5n
ICo+ICopZXh0ZW5zaW9uSURzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CisKIEBlbmQKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCmluZGV4IGYw
NGY5YTQyNGE0NGExMjg5MWQ4MjI4MDNmN2I2YzJlMmM5ZTA4NWUuLjZiZWI0NWU4NDY1OTgxZjll
MDkyNDcyZWE0YjMxNzg2NjcyNmJlMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQpAQCAtMTcwLDI1ICsxNzAsNiBAQCAtICh2b2lk
KV9zZXREaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlOihpZDxfV0tEaWFnbm9zdGljTG9nZ2luZ0Rl
bGVnYXRlPilkZWxlZ2F0ZQogICAgIF9pbnNwZWN0b3ItPnNldERpYWdub3N0aWNMb2dnaW5nQXZh
aWxhYmxlKCEhZGVsZWdhdGUpOwogfQogCi0tICh2b2lkKV9icm93c2VyRXh0ZW5zaW9uc0VuYWJs
ZWQ6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqKWV4dGVuc2lvbklEVG9O
YW1lTWFwCi17Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gdHJhbnNmb3JtZWQ7Ci0gICAg
dHJhbnNmb3JtZWQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShleHRlbnNpb25JRFRvTmFtZU1hcC5j
b3VudCk7Ci0gICAgW2V4dGVuc2lvbklEVG9OYW1lTWFwIGVudW1lcmF0ZUtleXNBbmRPYmplY3Rz
VXNpbmdCbG9jazpbJl0oTlNTdHJpbmcgKmV4dGVuc2lvbklELCBOU1N0cmluZyAqZXh0ZW5zaW9u
TmFtZSwgQk9PTCAqKSB7Ci0gICAgICAgIHRyYW5zZm9ybWVkLnNldChleHRlbnNpb25JRCwgZXh0
ZW5zaW9uTmFtZSk7Ci0gICAgfV07Ci0gICAgX2luc3BlY3Rvci0+YnJvd3NlckV4dGVuc2lvbnNF
bmFibGVkKFdURk1vdmUodHJhbnNmb3JtZWQpKTsKLX0KLQotLSAodm9pZClfYnJvd3NlckV4dGVu
c2lvbnNEaXNhYmxlZDooTlNTZXQ8TlNTdHJpbmcgKj4gKilleHRlbnNpb25JRHMKLXsKLSAgICBI
YXNoU2V0PFN0cmluZz4gdHJhbnNmb3JtZWQ7Ci0gICAgdHJhbnNmb3JtZWQucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShleHRlbnNpb25JRHMuY291bnQpOwotICAgIGZvciAoTlNTdHJpbmcgKmV4dGVu
c2lvbklEIGluIGV4dGVuc2lvbklEcykKLSAgICAgICAgdHJhbnNmb3JtZWQuYWRkVm9pZChleHRl
bnNpb25JRCk7Ci0gICAgX2luc3BlY3Rvci0+YnJvd3NlckV4dGVuc2lvbnNEaXNhYmxlZChXVEZN
b3ZlKHRyYW5zZm9ybWVkKSk7Ci19Ci0KIC8vIE1BUks6IF9XS0luc3BlY3RvckludGVybmFsIG1l
dGhvZHMKIAogLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlbGVnYXRlLmgKaW5kZXgg
NTUyMDFjNzg2Yjg3YzZjZjdjMDliMjcwOGM3MzcxMGM3NDkyODAxYy4uNDA1YjdkMDNhNzk0MTIy
MjFjMjVkYWQ3MWZkZWNiMmZjZjJmMzk0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlbGVnYXRlLmgKQEAgLTMxLDE2ICsz
MSw2IEBACiBAcHJvdG9jb2wgX1dLSW5zcGVjdG9yRGVsZWdhdGUgPE5TT2JqZWN0PgogQG9wdGlv
bmFsCiAKLS8qISBAYWJzdHJhY3QgQ2FsbGVkIHdoZW4gdGhlIEJyb3dzZXIgZG9tYWluIGlzIGVu
YWJsZWQgZm9yIHRoZSBhc3NvY2lhdGVkIF9XS0luc3BlY3Rvci4KLSAgICBAcGFyYW0gaW5zcGVj
dG9yIHRoZSBhc3NvY2lhdGVkIF9XS0luc3BlY3RvciBmb3Igd2hpY2ggdGhlIEJyb3dzZXIgZG9t
YWluIGhhcyBiZWVuIGVuYWJsZWQuCi0gKi8KLS0gKHZvaWQpaW5zcGVjdG9yRGlkRW5hYmxlQnJv
d3NlckRvbWFpbjooX1dLSW5zcGVjdG9yICopaW5zcGVjdG9yOwotCi0vKiEgQGFic3RyYWN0IENh
bGxlZCB3aGVuIHRoZSAgQnJvd3NlciBkb21haW4gaXMgZGlzYWJsZWQgZm9yIHRoZSBhc3NvY2lh
dGVkIF9XS0luc3BlY3Rvci4KLSAgICBAcGFyYW0gaW5zcGVjdG9yIHRoZSBhc3NvY2lhdGVkIF9X
S0luc3BlY3RvciBmb3Igd2hpY2ggdGhlIEJyb3dzZXIgZG9tYWluIGhhcyBiZWVuIGRpc2FibGVk
LgotICovCi0tICh2b2lkKWluc3BlY3RvckRpZERpc2FibGVCcm93c2VyRG9tYWluOihfV0tJbnNw
ZWN0b3IgKilpbnNwZWN0b3I7Ci0KIC8qISBAYWJzdHJhY3QgQ2FsbGVkIHdoZW4gdGhlIF9XS0lu
c3BlY3RvciByZXF1ZXN0cyB0byBzaG93IGEgcmVzb3VyY2UgZXh0ZXJuYWxseS4gVGhpcwogICAg
IGlzIHVzZWQgdG8gZGlzcGxheSBkb2N1bWVudGF0aW9uIHBhZ2VzIGFuZCB0byBzaG93IGV4dGVy
bmFsIFVSTHMgdGhhdCBhcmUgbGlua2lmaWVkLgogICAgIEBwYXJhbSBpbnNwZWN0b3IgdGhlIGFz
c29jaWF0ZWQgaW5zcGVjdG9yIGZvciB3aGljaCBhbiBleHRlcm5hbCBuYXZpZ2F0aW9uIHNob3Vs
ZCBiZSB0cmlnZ2VyZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLSW5zcGVjdG9yUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0luc3BlY3RvclByaXZhdGUuaAppbmRleCBlMjAyYWYwN2E1YzcwM2IzYTZiNGRh
OGQzNTRjZTYyNzQyNzU0YWM0Li5jMGQ5ODQ5MDc5OGE2Y2FjNTI1YmU2Y2RiYzhjMzhiNGM0MWJi
YjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5z
cGVjdG9yUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tJbnNwZWN0b3JQcml2YXRlLmgKQEAgLTMxLDggKzMxLDQgQEAKIAogQHByb3BlcnR5IChub25h
dG9taWMsIHdlYWssIHNldHRlcj1fc2V0RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZTopIGlkPF9X
S0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+IF9kaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlOwog
Ci0vLyBCcm93c2VyCi0tICh2b2lkKV9icm93c2VyRXh0ZW5zaW9uc0VuYWJsZWQ6KE5TRGljdGlv
bmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqKWV4dGVuc2lvbklEVG9OYW1lOwotLSAodm9p
ZClfYnJvd3NlckV4dGVuc2lvbnNEaXNhYmxlZDooTlNTZXQ8TlNTdHJpbmcgKj4gKilleHRlbnNp
b25JRHM7Ci0KIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aAppbmRleCAzMGRjMmI5Nzc4MjgyNWYyMzE4NGI0MjMwMWM1MGFjZjYwNjE3MjE2Li44NTk1ZjIw
ZTQxYzZmYzMxM2E0M2ZiODJjZDA5YmY5MmU1YWU2OTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0xNjMsNiArMTYzLDggQEAgcHJpdmF0ZToKICAg
ICAgICAgdm9pZCBydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsKFdlYlBhZ2VQcm94eSYsIEFQSTo6
V2ViQXV0aGVudGljYXRpb25QYW5lbCYsIFdlYkZyYW1lUHJveHkmLCBGcmFtZUluZm9EYXRhJiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdCk+JiYp
IGZpbmFsOwogI2VuZGlmCiAgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2lu
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgICAgIHZvaWQg
ZGlkRW5hYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihXZWJQYWdlUHJveHkmKSBmaW5hbDsKKyAg
ICAgICAgdm9pZCBkaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihXZWJQYWdlUHJveHkm
KSBmaW5hbDsKIAogICAgICAgICBXZWFrUHRyPFVJRGVsZWdhdGU+IG1fdWlEZWxlZ2F0ZTsKICAg
ICB9OwpAQCAtMjUwLDYgKzI1Miw4IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQl9BVVRITikK
ICAgICAgICAgYm9vbCB3ZWJWaWV3UnVuV2ViQXV0aGVudGljYXRpb25QYW5lbEluaXRpYXRlZEJ5
RnJhbWVDb21wbGV0aW9uSGFuZGxlciA6IDE7CiAjZW5kaWYKKyAgICAgICAgYm9vbCB3ZWJWaWV3
RGlkRW5hYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbiA6IDE7CisgICAgICAgIGJvb2wgd2ViVmll
d0RpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluIDogMTsKICAgICB9IG1fZGVsZWdhdGVN
ZXRob2RzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
bW0KaW5kZXggMWI5ZWRiZjRkOThiOGU1MDkwMGI1YTM2YTkzNjQ3NDg3YmUzNThkYi4uOTExOTU2
MDM2ODY5YWQ5ZTNlNjhiODljMWMyZWMzOTZhMmNjMjk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xODMsNiArMTgzLDkgQEAgdm9pZCBVSURl
bGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURlbGVnYXRlPiBkZWxlZ2F0ZSkKICNpZiBFTkFC
TEUoV0VCX0FVVEhOKQogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSdW5XZWJBdXRoZW50
aWNhdGlvblBhbmVsSW5pdGlhdGVkQnlGcmFtZUNvbXBsZXRpb25IYW5kbGVyID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cnVuV2ViQXV0aGVudGljYXRp
b25QYW5lbDppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOildOwogI2VuZGlmCisg
ICAgCisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVuYWJsZUluc3BlY3RvckJyb3dz
ZXJEb21haW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmll
d0RpZEVuYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW46KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld0RpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluID0gW2RlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdEaWREaXNhYmxlSW5zcGVjdG9yQnJv
d3NlckRvbWFpbjopXTsKIH0KIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpAQCAtMTU1MCw0
ICsxNTUzLDM0IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclNw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViCiAgICAgfSkuZ2V0KCldOwogfQog
Cit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkaWRFbmFibGVJbnNwZWN0b3JCcm93c2VyRG9t
YWluKFdlYlBhZ2VQcm94eSYpCit7CisgICAgaWYgKCFtX3VpRGVsZWdhdGUpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmICghbV91aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
RGlkRW5hYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbikKKyAgICAgICAgcmV0dXJuOworCisgICAg
YXV0byBkZWxlZ2F0ZSA9IChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLT5t
X2RlbGVnYXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFtkZWxlZ2F0ZSBfd2ViVmlld0RpZEVuYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW46bV91
aURlbGVnYXRlLT5tX3dlYlZpZXcuZ2V0KCkuZ2V0KCldOworfQorCit2b2lkIFVJRGVsZWdhdGU6
OlVJQ2xpZW50OjpkaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihXZWJQYWdlUHJveHkm
KQoreworICAgIGlmICghbV91aURlbGVnYXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
IW1fdWlEZWxlZ2F0ZS0+bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZERpc2FibGVJbnNwZWN0
b3JCcm93c2VyRG9tYWluKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGRlbGVnYXRlID0g
KGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUtPm1fZGVsZWdhdGUuZ2V0KCk7
CisgICAgaWYgKCFkZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW2RlbGVnYXRlIF93
ZWJWaWV3RGlkRGlzYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW46bV91aURlbGVnYXRlLT5tX3dl
YlZpZXcuZ2V0KCkuZ2V0KCldOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9BZ2VudHMvSW5zcGVjdG9yQnJv
d3NlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9BZ2VudHMv
SW5zcGVjdG9yQnJvd3NlckFnZW50LmNwcAppbmRleCAyZDQ0NDUyN2VlZGVlN2VhOGE2ZTQ5ODhm
NzM1MTk3NTUyY2I5MDgwLi5kYmQ2MzgyNTQ1YTE0OWYzOWQ3YTI2NGVhZmU0NGMzOTNjNzZkZDIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQWdlbnRzL0lu
c3BlY3RvckJyb3dzZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5z
cGVjdG9yL0FnZW50cy9JbnNwZWN0b3JCcm93c2VyQWdlbnQuY3BwCkBAIC0yNiw3ICsyNiw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQnJvd3NlckFnZW50Lmgi
CiAKLSNpbmNsdWRlICJBUElJbnNwZWN0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJBUElVSUNsaWVu
dC5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZUlu
c3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKQEAgLTcxLDkg
KzcxLDYgQEAgSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBJbnNwZWN0
b3JCcm93c2VyQWdlbnQ6OmVuYWJsZSgpCiAKICAgICBtX2luc3BlY3RlZFBhZ2UuaW5zcGVjdG9y
Q29udHJvbGxlcigpLnNldEVuYWJsZWRCcm93c2VyQWdlbnQodGhpcyk7CiAKLSAgICBpZiAoYXV0
byogaW5zcGVjdG9yID0gbV9pbnNwZWN0ZWRQYWdlLmluc3BlY3RvcigpKQotICAgICAgICBpbnNw
ZWN0b3ItPmluc3BlY3RvckNsaWVudCgpLmJyb3dzZXJEb21haW5FbmFibGVkKCppbnNwZWN0b3Ip
OwotCiAgICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtODQsOSArODEsNiBAQCBJbnNwZWN0b3I6OlBy
b3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IEluc3BlY3RvckJyb3dzZXJBZ2VudDo6ZGlzYWJs
ZSgpCiAKICAgICBtX2luc3BlY3RlZFBhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLnNldEVuYWJs
ZWRCcm93c2VyQWdlbnQobnVsbHB0cik7CiAKLSAgICBpZiAoYXV0byogaW5zcGVjdG9yID0gbV9p
bnNwZWN0ZWRQYWdlLmluc3BlY3RvcigpKQotICAgICAgICBpbnNwZWN0b3ItPmluc3BlY3RvckNs
aWVudCgpLmJyb3dzZXJEb21haW5EaXNhYmxlZCgqaW5zcGVjdG9yKTsKLQogICAgIHJldHVybiB7
IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9D
b2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRlLmgKaW5kZXggZDY0YjQ3YjI5NWIxMmJlNTc1NGUy
ZmU3MWQ0ZjBjNWJlOTBjM2YzZC4uMDEyZTFlNGRmMDM3MmMxNWE5ZWU2YzIyMWY5MzZjOWQzZDYz
MDVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29h
L0luc3BlY3RvckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRlLmgKQEAgLTM1LDcgKzM1LDYgQEAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBXZWJJbnNwZWN0b3JQcm94eTsKLWNsYXNzIFdlYlBhZ2VQcm94
eTsKIAogY2xhc3MgSW5zcGVjdG9yRGVsZWdhdGUgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwpAQCAtNTYsOCArNTUsNiBAQCBwcml2YXRlOgogCiAgICAgcHJpdmF0ZToKICAgICAgICAg
Ly8gQVBJOjpJbnNwZWN0b3JDbGllbnQKLSAgICAgICAgdm9pZCBicm93c2VyRG9tYWluRW5hYmxl
ZChXZWJJbnNwZWN0b3JQcm94eSYpOwotICAgICAgICB2b2lkIGJyb3dzZXJEb21haW5EaXNhYmxl
ZChXZWJJbnNwZWN0b3JQcm94eSYpOwogICAgICAgICB2b2lkIG9wZW5VUkxFeHRlcm5hbGx5KFdl
Ykluc3BlY3RvclByb3h5JiwgY29uc3QgU3RyaW5nJiB1cmwpOwogCiAgICAgICAgIEluc3BlY3Rv
ckRlbGVnYXRlJiBtX2luc3BlY3RvckRlbGVnYXRlOwpAQCAtNjcsOCArNjQsNiBAQCBwcml2YXRl
OgogICAgIFdlYWtPYmpDUHRyPGlkIDxfV0tJbnNwZWN0b3JEZWxlZ2F0ZT4+IG1fZGVsZWdhdGU7
CiAKICAgICBzdHJ1Y3QgewotICAgICAgICBib29sIGluc3BlY3RvckRpZEVuYWJsZUJyb3dzZXJE
b21haW4gOiAxOwotICAgICAgICBib29sIGluc3BlY3RvckRpZERpc2FibGVCcm93c2VyRG9tYWlu
IDogMTsKICAgICAgICAgYm9vbCBpbnNwZWN0b3JPcGVuVVJMRXh0ZXJuYWxseSA6IDE7CiAgICAg
fSBtX2RlbGVnYXRlTWV0aG9kczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW0KaW5kZXggNWNl
ZGExODU5NDBlMDQ3NTA3M2ZjY2YzODEyODQyMDVjMTBiZWEyNC4uNjBjMTMyZDVkODlkMTdiNDZk
MzMyZGYxYTAyYzBhOGEyY2JhMWM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5tbQpAQCAtMjcs
NyArMjcsNiBAQAogI2ltcG9ydCAiSW5zcGVjdG9yRGVsZWdhdGUuaCIKIAogI2ltcG9ydCAiV2Vi
SW5zcGVjdG9yUHJveHkuaCIKLSNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAiX1dL
SW5zcGVjdG9yRGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS0luc3BlY3RvckludGVybmFsLmgiCiAK
QEAgLTUyLDggKzUxLDYgQEAgdm9pZCBJbnNwZWN0b3JEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQg
PF9XS0luc3BlY3RvckRlbGVnYXRlPiBkZWxlZ2F0ZSkKIHsKICAgICBtX2RlbGVnYXRlID0gZGVs
ZWdhdGU7CiAKLSAgICBtX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JEaWRFbmFibGVCcm93c2Vy
RG9tYWluID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9y
RGlkRW5hYmxlQnJvd3NlckRvbWFpbjopXTsKLSAgICBtX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0
b3JEaWREaXNhYmxlQnJvd3NlckRvbWFpbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKGluc3BlY3RvckRpZERpc2FibGVCcm93c2VyRG9tYWluOildOwogICAgIG1fZGVs
ZWdhdGVNZXRob2RzLmluc3BlY3Rvck9wZW5VUkxFeHRlcm5hbGx5ID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9yOm9wZW5VUkxFeHRlcm5hbGx5OildOwog
fQogCkBAIC02MiwzMCArNTksOCBAQCBJbnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xpZW50
OjpJbnNwZWN0b3JDbGllbnQoSW5zcGVjdG9yRGVsZWdhdGUmIGRlbGVnYXRlKQogewogfQogCi1J
bnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xpZW50Ojp+SW5zcGVjdG9yQ2xpZW50KCkgPSBk
ZWZhdWx0OwotCi12b2lkIEluc3BlY3RvckRlbGVnYXRlOjpJbnNwZWN0b3JDbGllbnQ6OmJyb3dz
ZXJEb21haW5FbmFibGVkKFdlYkluc3BlY3RvclByb3h5JikKLXsKLSAgICBpZiAoIW1faW5zcGVj
dG9yRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMuaW5zcGVjdG9yRGlkRW5hYmxlQnJvd3NlckRv
bWFpbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byYgZGVsZWdhdGUgPSBtX2luc3BlY3Rv
ckRlbGVnYXRlLm1fZGVsZWdhdGU7Ci0gICAgaWYgKCFkZWxlZ2F0ZSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgW2RlbGVnYXRlIGluc3BlY3RvckRpZEVuYWJsZUJyb3dzZXJEb21haW46bV9pbnNw
ZWN0b3JEZWxlZ2F0ZS5tX2luc3BlY3Rvci5nZXQoKS5nZXQoKV07Ci19Ci0KLXZvaWQgSW5zcGVj
dG9yRGVsZWdhdGU6Okluc3BlY3RvckNsaWVudDo6YnJvd3NlckRvbWFpbkRpc2FibGVkKFdlYklu
c3BlY3RvclByb3h5JikKK0luc3BlY3RvckRlbGVnYXRlOjpJbnNwZWN0b3JDbGllbnQ6On5JbnNw
ZWN0b3JDbGllbnQoKQogewotICAgIGlmICghbV9pbnNwZWN0b3JEZWxlZ2F0ZS5tX2RlbGVnYXRl
TWV0aG9kcy5pbnNwZWN0b3JEaWREaXNhYmxlQnJvd3NlckRvbWFpbikKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgYXV0byYgZGVsZWdhdGUgPSBtX2luc3BlY3RvckRlbGVnYXRlLm1fZGVsZWdhdGU7
Ci0gICAgaWYgKCFkZWxlZ2F0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgW2RlbGVnYXRlIGlu
c3BlY3RvckRpZERpc2FibGVCcm93c2VyRG9tYWluOm1faW5zcGVjdG9yRGVsZWdhdGUubV9pbnNw
ZWN0b3IuZ2V0KCkuZ2V0KCldOwogfQogCiB2b2lkIEluc3BlY3RvckRlbGVnYXRlOjpJbnNwZWN0
b3JDbGllbnQ6Om9wZW5VUkxFeHRlcm5hbGx5KFdlYkluc3BlY3RvclByb3h5JiwgY29uc3QgU3Ry
aW5nJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclByb3h5LmNwcAppbmRleCBlOGMzOGI5NjIwZGE1Nzg1ZGMxNzM1M2RlODg4
YTE5YjI3N2Y3MWQ2Li5jMWFlYjQyODRmODU5YWE3NDBjMDE4M2M1ODA0MDE2MjJhYzA3MjlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9y
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JQcm94eS5jcHAKQEAgLTY5OSwxOCArNjk5LDYgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94
eTo6c2V0RGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUoYm9vbCBhdmFpbGFibGUpCiAjZW5kaWYK
IH0KIAotdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6YnJvd3NlckV4dGVuc2lvbnNFbmFibGVkKEhh
c2hNYXA8U3RyaW5nLCBTdHJpbmc+JiYgZXh0ZW5zaW9uSURUb05hbWUpCi17Ci0gICAgaWYgKGF1
dG8qIGJyb3dzZXJBZ2VudCA9IG1faW5zcGVjdGVkUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
LmVuYWJsZWRCcm93c2VyQWdlbnQoKSkKLSAgICAgICAgYnJvd3NlckFnZW50LT5leHRlbnNpb25z
RW5hYmxlZChXVEZNb3ZlKGV4dGVuc2lvbklEVG9OYW1lKSk7Ci19Ci0KLXZvaWQgV2ViSW5zcGVj
dG9yUHJveHk6OmJyb3dzZXJFeHRlbnNpb25zRGlzYWJsZWQoSGFzaFNldDxTdHJpbmc+JiYgZXh0
ZW5zaW9uSURzKQotewotICAgIGlmIChhdXRvKiBicm93c2VyQWdlbnQgPSBtX2luc3BlY3RlZFBh
Z2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5lbmFibGVkQnJvd3NlckFnZW50KCkpCi0gICAgICAg
IGJyb3dzZXJBZ2VudC0+ZXh0ZW5zaW9uc0Rpc2FibGVkKFdURk1vdmUoZXh0ZW5zaW9uSURzKSk7
Ci19Ci0KIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnNhdmUoY29uc3QgU3RyaW5nJiBmaWxlbmFt
ZSwgY29uc3QgU3RyaW5nJiBjb250ZW50LCBib29sIGJhc2U2NEVuY29kZWQsIGJvb2wgZm9yY2VT
YXZlQXMpCiB7CiAgICAgaWYgKCFtX2luc3BlY3RlZFBhZ2UtPnByZWZlcmVuY2VzKCkuZGV2ZWxv
cGVyRXh0cmFzRW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuaAppbmRleCBmNTU0MWJmNzAyODE3ZWJjOGJlMzY1
MjVkYWMzMDlmODY1NDU4ZGZkLi4xM2JlYjg5YTdjNzlhYzEyMWI4NTRhNzk2ODYyNmFkNDViNTJl
YzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yUHJveHkuaApAQCAtMTg0LDEwICsxODQsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlKGJvb2wpOwogCi0gICAgLy8gQnJvd3Nlcgot
ICAgIHZvaWQgYnJvd3NlckV4dGVuc2lvbnNFbmFibGVkKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+
JiYpOwotICAgIHZvaWQgYnJvd3NlckV4dGVuc2lvbnNEaXNhYmxlZChIYXNoU2V0PFN0cmluZz4m
Jik7Ci0KICAgICAvLyBQcm92aWRlZCBieSBwbGF0Zm9ybSBXZWJJbnNwZWN0b3JQcm94eSBpbXBs
ZW1lbnRhdGlvbnMuCiAgICAgc3RhdGljIFN0cmluZyBpbnNwZWN0b3JQYWdlVVJMKCk7CiAgICAg
c3RhdGljIFN0cmluZyBpbnNwZWN0b3JUZXN0UGFnZVVSTCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAKaW5kZXggMTg2MWNmZjgwNjEzMTE5NmVhNDliNGY4YWNhNjY2NWJlZWJiZjZl
OC4uZWQ0ZTZmMzBiOGMzNTk2NjA3NTU3M2RjY2VlODAxZGFjZWVjODY1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZUlu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgICAgLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIldlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAKKyNpbmNs
dWRlICJBUElVSUNsaWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckJyb3dzZXJBZ2VudC5oIgog
I2luY2x1ZGUgIlByb3Zpc2lvbmFsUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQcm94
eS5oIgpAQCAtNDgsMTAgKzQ5LDEwIEBAIHN0YXRpYyBTdHJpbmcgZ2V0VGFyZ2V0SUQoY29uc3Qg
UHJvdmlzaW9uYWxQYWdlUHJveHkmIHByb3Zpc2lvbmFsUGFnZSkKICAgICByZXR1cm4gV2ViUGFn
ZUluc3BlY3RvclRhcmdldDo6dG9UYXJnZXRJRChwcm92aXNpb25hbFBhZ2Uud2ViUGFnZUlEKCkp
OwogfQogCi1XZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6V2ViUGFnZUluc3BlY3RvckNvbnRy
b2xsZXIoV2ViUGFnZVByb3h5JiBwYWdlKQorV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6Oldl
YlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyKFdlYlBhZ2VQcm94eSYgaW5zcGVjdGVkUGFnZSkKICAg
ICA6IG1fZnJvbnRlbmRSb3V0ZXIoRnJvbnRlbmRSb3V0ZXI6OmNyZWF0ZSgpKQogICAgICwgbV9i
YWNrZW5kRGlzcGF0Y2hlcihCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKG1fZnJvbnRlbmRSb3V0
ZXIuY29weVJlZigpKSkKLSAgICAsIG1fcGFnZShwYWdlKQorICAgICwgbV9pbnNwZWN0ZWRQYWdl
KGluc3BlY3RlZFBhZ2UpCiB7CiAgICAgYXV0byB0YXJnZXRBZ2VudCA9IG1ha2VVbmlxdWU8SW5z
cGVjdG9yVGFyZ2V0QWdlbnQ+KG1fZnJvbnRlbmRSb3V0ZXIuZ2V0KCksIG1fYmFja2VuZERpc3Bh
dGNoZXIuZ2V0KCkpOwogICAgIG1fdGFyZ2V0QWdlbnQgPSB0YXJnZXRBZ2VudC5nZXQoKTsKQEAg
LTYwLDcgKzYxLDcgQEAgV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OldlYlBhZ2VJbnNwZWN0
b3JDb250cm9sbGVyKFdlYlBhZ2VQcm94eSYgcGFnZSkKIAogdm9pZCBXZWJQYWdlSW5zcGVjdG9y
Q29udHJvbGxlcjo6aW5pdCgpCiB7Ci0gICAgU3RyaW5nIHBhZ2VUYXJnZXRJZCA9IFdlYlBhZ2VJ
bnNwZWN0b3JUYXJnZXQ6OnRvVGFyZ2V0SUQobV9wYWdlLndlYlBhZ2VJRCgpKTsKKyAgICBTdHJp
bmcgcGFnZVRhcmdldElkID0gV2ViUGFnZUluc3BlY3RvclRhcmdldDo6dG9UYXJnZXRJRChtX2lu
c3BlY3RlZFBhZ2Uud2ViUGFnZUlEKCkpOwogICAgIGNyZWF0ZUluc3BlY3RvclRhcmdldChwYWdl
VGFyZ2V0SWQsIEluc3BlY3Rvcjo6SW5zcGVjdG9yVGFyZ2V0VHlwZTo6UGFnZSk7CiB9CiAKQEAg
LTg3LDExICs4OCwxMSBAQCB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0
RnJvbnRlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmIGZybwogICAgIGlmIChjb25uZWN0
aW5nRmlyc3RGcm9udGVuZCkKICAgICAgICAgbV9hZ2VudHMuZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKCZtX2Zyb250ZW5kUm91dGVyLmdldCgpLCAmbV9iYWNrZW5kRGlzcGF0Y2hlci5nZXQo
KSk7CiAKLSAgICBtX3BhZ2UuZGlkQ2hhbmdlSW5zcGVjdG9yRnJvbnRlbmRDb3VudChtX2Zyb250
ZW5kUm91dGVyLT5mcm9udGVuZENvdW50KCkpOworICAgIG1faW5zcGVjdGVkUGFnZS5kaWRDaGFu
Z2VJbnNwZWN0b3JGcm9udGVuZENvdW50KG1fZnJvbnRlbmRSb3V0ZXItPmZyb250ZW5kQ291bnQo
KSk7CiAKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICAgICBpZiAoaGFzTG9jYWxGcm9u
dGVuZCgpKQotICAgICAgICBtX3BhZ2UucmVtb3RlSW5zcGVjdG9ySW5mb3JtYXRpb25EaWRDaGFu
Z2UoKTsKKyAgICAgICAgbV9pbnNwZWN0ZWRQYWdlLnJlbW90ZUluc3BlY3RvckluZm9ybWF0aW9u
RGlkQ2hhbmdlKCk7CiAjZW5kaWYKIH0KIApAQCAtMTAzLDExICsxMDQsMTEgQEAgdm9pZCBXZWJQ
YWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKEZyb250ZW5kQ2hhbm5l
bCYgZnJvbnRlbmRDaGEKICAgICBpZiAoZGlzY29ubmVjdGluZ0xhc3RGcm9udGVuZCkKICAgICAg
ICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNv
bjo6SW5zcGVjdG9yRGVzdHJveWVkKTsKIAotICAgIG1fcGFnZS5kaWRDaGFuZ2VJbnNwZWN0b3JG
cm9udGVuZENvdW50KG1fZnJvbnRlbmRSb3V0ZXItPmZyb250ZW5kQ291bnQoKSk7CisgICAgbV9p
bnNwZWN0ZWRQYWdlLmRpZENoYW5nZUluc3BlY3RvckZyb250ZW5kQ291bnQobV9mcm9udGVuZFJv
dXRlci0+ZnJvbnRlbmRDb3VudCgpKTsKIAogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQog
ICAgIGlmIChkaXNjb25uZWN0aW5nTGFzdEZyb250ZW5kKQotICAgICAgICBtX3BhZ2UucmVtb3Rl
SW5zcGVjdG9ySW5mb3JtYXRpb25EaWRDaGFuZ2UoKTsKKyAgICAgICAgbV9pbnNwZWN0ZWRQYWdl
LnJlbW90ZUluc3BlY3RvckluZm9ybWF0aW9uRGlkQ2hhbmdlKCk7CiAjZW5kaWYKIH0KIApAQCAt
MTI0LDEwICsxMjUsMTAgQEAgdm9pZCBXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29u
bmVjdEFsbEZyb250ZW5kcygpCiAgICAgLy8gRGlzY29ubmVjdCBhbnkgcmVtYWluaW5nIHJlbW90
ZSBmcm9udGVuZHMuCiAgICAgbV9mcm9udGVuZFJvdXRlci0+ZGlzY29ubmVjdEFsbEZyb250ZW5k
cygpOwogCi0gICAgbV9wYWdlLmRpZENoYW5nZUluc3BlY3RvckZyb250ZW5kQ291bnQobV9mcm9u
dGVuZFJvdXRlci0+ZnJvbnRlbmRDb3VudCgpKTsKKyAgICBtX2luc3BlY3RlZFBhZ2UuZGlkQ2hh
bmdlSW5zcGVjdG9yRnJvbnRlbmRDb3VudChtX2Zyb250ZW5kUm91dGVyLT5mcm9udGVuZENvdW50
KCkpOwogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCi0gICAgbV9wYWdlLnJlbW90ZUlu
c3BlY3RvckluZm9ybWF0aW9uRGlkQ2hhbmdlKCk7CisgICAgbV9pbnNwZWN0ZWRQYWdlLnJlbW90
ZUluc3BlY3RvckluZm9ybWF0aW9uRGlkQ2hhbmdlKCk7CiAjZW5kaWYKIH0KIApAQCAtMTQwLDE5
ICsxNDEsMTkgQEAgdm9pZCBXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzcGF0Y2hNZXNz
YWdlRnJvbUZyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2EKIHZvaWQgV2ViUGFnZUluc3BlY3Rv
ckNvbnRyb2xsZXI6OnNldEluZGljYXRpbmcoYm9vbCBpbmRpY2F0aW5nKQogewogI2lmICFQTEFU
Rk9STShJT1NfRkFNSUxZKQotICAgIG1fcGFnZS5zZXRJbmRpY2F0aW5nKGluZGljYXRpbmcpOwor
ICAgIG1faW5zcGVjdGVkUGFnZS5zZXRJbmRpY2F0aW5nKGluZGljYXRpbmcpOwogI2Vsc2UKICAg
ICBpZiAoaW5kaWNhdGluZykKLSAgICAgICAgbV9wYWdlLnNob3dJbnNwZWN0b3JJbmRpY2F0aW9u
KCk7CisgICAgICAgIG1faW5zcGVjdGVkUGFnZS5zaG93SW5zcGVjdG9ySW5kaWNhdGlvbigpOwog
ICAgIGVsc2UKLSAgICAgICAgbV9wYWdlLmhpZGVJbnNwZWN0b3JJbmRpY2F0aW9uKCk7CisgICAg
ICAgIG1faW5zcGVjdGVkUGFnZS5oaWRlSW5zcGVjdG9ySW5kaWNhdGlvbigpOwogI2VuZGlmCiB9
CiAjZW5kaWYKIAogdm9pZCBXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6Y3JlYXRlSW5zcGVj
dG9yVGFyZ2V0KGNvbnN0IFN0cmluZyYgdGFyZ2V0SWQsIEluc3BlY3Rvcjo6SW5zcGVjdG9yVGFy
Z2V0VHlwZSB0eXBlKQogewotICAgIGFkZFRhcmdldChJbnNwZWN0b3JUYXJnZXRQcm94eTo6Y3Jl
YXRlKG1fcGFnZSwgdGFyZ2V0SWQsIHR5cGUpKTsKKyAgICBhZGRUYXJnZXQoSW5zcGVjdG9yVGFy
Z2V0UHJveHk6OmNyZWF0ZShtX2luc3BlY3RlZFBhZ2UsIHRhcmdldElkLCB0eXBlKSk7CiB9CiAK
IHZvaWQgV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmRlc3Ryb3lJbnNwZWN0b3JUYXJnZXQo
Y29uc3QgU3RyaW5nJiB0YXJnZXRJZCkKQEAgLTIxOSw3ICsyMjAsNyBAQCBXZWJQYWdlQWdlbnRD
b250ZXh0IFdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjp3ZWJQYWdlQWdlbnRDb250ZXh0KCkK
ICAgICByZXR1cm4gewogICAgICAgICBtX2Zyb250ZW5kUm91dGVyLmdldCgpLAogICAgICAgICBt
X2JhY2tlbmREaXNwYXRjaGVyLmdldCgpLAotICAgICAgICBtX3BhZ2UsCisgICAgICAgIG1faW5z
cGVjdGVkUGFnZSwKICAgICB9OwogfQogCkBAIC0yNDEsNCArMjQyLDI5IEBAIHZvaWQgV2ViUGFn
ZUluc3BlY3RvckNvbnRyb2xsZXI6OmFkZFRhcmdldChzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9y
VGFyZ2V0UHJveHk+CiAgICAgbV90YXJnZXRzLnNldCh0YXJnZXQtPmlkZW50aWZpZXIoKSwgV1RG
TW92ZSh0YXJnZXQpKTsKIH0KIAordm9pZCBXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0
RW5hYmxlZEJyb3dzZXJBZ2VudChJbnNwZWN0b3JCcm93c2VyQWdlbnQqIGFnZW50KQoreworICAg
IGlmIChtX2VuYWJsZWRCcm93c2VyQWdlbnQgPT0gYWdlbnQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fZW5hYmxlZEJyb3dzZXJBZ2VudCA9IGFnZW50OworCisgICAgaWYgKG1fZW5hYmxlZEJy
b3dzZXJBZ2VudCkKKyAgICAgICAgbV9pbnNwZWN0ZWRQYWdlLnVpQ2xpZW50KCkuZGlkRW5hYmxl
SW5zcGVjdG9yQnJvd3NlckRvbWFpbihtX2luc3BlY3RlZFBhZ2UpOworICAgIGVsc2UKKyAgICAg
ICAgbV9pbnNwZWN0ZWRQYWdlLnVpQ2xpZW50KCkuZGlkRGlzYWJsZUluc3BlY3RvckJyb3dzZXJE
b21haW4obV9pbnNwZWN0ZWRQYWdlKTsKK30KKwordm9pZCBXZWJQYWdlSW5zcGVjdG9yQ29udHJv
bGxlcjo6YnJvd3NlckV4dGVuc2lvbnNFbmFibGVkKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiYg
ZXh0ZW5zaW9uSURUb05hbWUpCit7CisgICAgaWYgKG1fZW5hYmxlZEJyb3dzZXJBZ2VudCkKKyAg
ICAgICAgbV9lbmFibGVkQnJvd3NlckFnZW50LT5leHRlbnNpb25zRW5hYmxlZChXVEZNb3ZlKGV4
dGVuc2lvbklEVG9OYW1lKSk7Cit9CisKK3ZvaWQgV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6
OmJyb3dzZXJFeHRlbnNpb25zRGlzYWJsZWQoSGFzaFNldDxTdHJpbmc+JiYgZXh0ZW5zaW9uSURz
KQoreworICAgIGlmIChtX2VuYWJsZWRCcm93c2VyQWdlbnQpCisgICAgICAgIG1fZW5hYmxlZEJy
b3dzZXJBZ2VudC0+ZXh0ZW5zaW9uc0Rpc2FibGVkKFdURk1vdmUoZXh0ZW5zaW9uSURzKSk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXIuaAppbmRl
eCBmOWMyNjgzMmQzZTkxZThkNzQ3YzVjMWUwZjBkNzZjMzRmNGMzMDk2Li44YzEzMzkzNDVkNDUx
ODc0NTAyYjI3MWY2YWEyZWNhM2ZhMGQzZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXIu
aApAQCAtNzcsNyArNzcsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ29tbWl0UHJvdmlzaW9u
YWxQYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG9sZFdlYlBhZ2VJRCwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgbmV3V2ViUGFnZUlEKTsKIAogICAgIEluc3BlY3RvckJyb3dzZXJBZ2VudCog
ZW5hYmxlZEJyb3dzZXJBZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZEJyb3dzZXJBZ2Vu
dDsgfQotICAgIHZvaWQgc2V0RW5hYmxlZEJyb3dzZXJBZ2VudChJbnNwZWN0b3JCcm93c2VyQWdl
bnQqIGFnZW50KSB7IG1fZW5hYmxlZEJyb3dzZXJBZ2VudCA9IGFnZW50OyB9CisgICAgdm9pZCBz
ZXRFbmFibGVkQnJvd3NlckFnZW50KEluc3BlY3RvckJyb3dzZXJBZ2VudCopOworCisgICAgdm9p
ZCBicm93c2VyRXh0ZW5zaW9uc0VuYWJsZWQoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mJik7Cisg
ICAgdm9pZCBicm93c2VyRXh0ZW5zaW9uc0Rpc2FibGVkKEhhc2hTZXQ8U3RyaW5nPiYmKTsKIAog
cHJpdmF0ZToKICAgICBXZWJQYWdlQWdlbnRDb250ZXh0IHdlYlBhZ2VBZ2VudENvbnRleHQoKTsK
QEAgLTg5LDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlz
cGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKICAgICBJbnNwZWN0b3I6OkFnZW50UmVnaXN0
cnkgbV9hZ2VudHM7CiAKLSAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKKyAgICBXZWJQYWdlUHJv
eHkmIG1faW5zcGVjdGVkUGFnZTsKIAogICAgIEluc3BlY3Rvcjo6SW5zcGVjdG9yVGFyZ2V0QWdl
bnQqIG1fdGFyZ2V0QWdlbnQgeyBudWxscHRyIH07CiAgICAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6
dW5pcXVlX3B0cjxJbnNwZWN0b3JUYXJnZXRQcm94eT4+IG1fdGFyZ2V0czsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1ZjNmNjY4NzhmM2FlMWRi
ZjRmYTBiOTZmZDA4NTU4YzI0YzUwZWYzLi40YzU5NjdjNTMxYWM3MzdiMWY5NGQ5NTIzMWUzZThj
YjBlOTJjZGMyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDEtMDggIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBtb3ZlIGJyb3dzZXIgZG9tYWlu
IGFjdGl2YXRpb24gbWV0aG9kcyBiYWNrIHRvIFdLV2ViVmlldyBhbmQgVUlEZWxlZ2F0ZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNDgwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckRlbGVnYXRlLm1tOgorICAgICAgICAoLVtV
SURlbGVnYXRlIF93ZWJWaWV3RGlkRW5hYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbjpdKToKKyAg
ICAgICAgKC1bVUlEZWxlZ2F0ZSBfd2ViVmlld0RpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9t
YWluOl0pOgorICAgICAgICAoLVtJbnNwZWN0b3JEZWxlZ2F0ZSBpbnNwZWN0b3JEaWRFbmFibGVC
cm93c2VyRG9tYWluOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtJbnNwZWN0b3JEZWxlZ2F0ZSBp
bnNwZWN0b3JEaWREaXNhYmxlQnJvd3NlckRvbWFpbjpdKTogRGVsZXRlZC4KKyAgICAgICAgQWRh
cHQgdG8gbmV3IGxvY2F0aW9uIGZvciBkZWxlZ2F0ZSBtZXRob2RzLgorCiAyMDIxLTAxLTExICBB
YWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbZXdzXSBBZGQg
cHl0aG9uIDMgc3VwcG9ydCAtIHBhcnQgMQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckRlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckRlbGVnYXRlLm1tCmluZGV4IGEx
OTEyM2JhODgwMTIyNTUxNzY0NGNiMDE3YzkyZDUzYWU3ZjcyOGUuLmEzNmRiMjE4OTNhMTFlY2U1
YjQxNjBkYjM0ZmMzNzA0YWUxYjU2NDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JEZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRGVsZWdhdGUubW0KQEAgLTEw
NCwxNiArMTA0LDYgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gSW5zcGVjdG9yRGVsZWdhdGUK
IAotLSAodm9pZClpbnNwZWN0b3JEaWRFbmFibGVCcm93c2VyRG9tYWluOihfV0tJbnNwZWN0b3Ig
KilpbnNwZWN0b3IKLXsKLSAgICBicm93c2VyRG9tYWluRW5hYmxlZEZvckluc3BlY3RvckNhbGxl
ZCA9IHRydWU7Ci19Ci0KLS0gKHZvaWQpaW5zcGVjdG9yRGlkRGlzYWJsZUJyb3dzZXJEb21haW46
KF9XS0luc3BlY3RvciAqKWluc3BlY3RvcgotewotICAgIGJyb3dzZXJEb21haW5EaXNhYmxlZEZv
ckluc3BlY3RvckNhbGxlZCA9IHRydWU7Ci19Ci0KIC0gKHZvaWQpaW5zcGVjdG9yOihfV0tJbnNw
ZWN0b3IgKilpbnNwZWN0b3Igb3BlblVSTEV4dGVybmFsbHk6KE5TVVJMICopdXJsCiB7CiAgICAg
RVhQRUNUX1NUUkVRKHVybC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nLCB1cmxUb09wZW4uZ2V0
KCkuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7CkBAIC0xNTYsNiArMTQ2LDE2IEBAIC0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbENsb3NlTG9jYWxJbnNwZWN0b3I6
KF9XS0luc3BlY3RvciAqKWluCiAgICAgICAgIFtpbnNwZWN0b3IgY2xvc2VdOwogfQogCistICh2
b2lkKV93ZWJWaWV3RGlkRW5hYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbjooV0tXZWJWaWV3ICop
d2ViVmlldworeworICAgIGJyb3dzZXJEb21haW5FbmFibGVkRm9ySW5zcGVjdG9yQ2FsbGVkID0g
dHJ1ZTsKK30KKworLSAodm9pZClfd2ViVmlld0RpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9t
YWluOihXS1dlYlZpZXcgKil3ZWJWaWV3Cit7CisgICAgYnJvd3NlckRvbWFpbkRpc2FibGVkRm9y
SW5zcGVjdG9yQ2FsbGVkID0gdHJ1ZTsKK30KKwogQGVuZAogCiBURVNUKFdLSW5zcGVjdG9yRGVs
ZWdhdGUsIEluc3BlY3RvckxpZmVjeWNsZUNhbGxiYWNrcykK
</data>

          </attachment>
      

    </bug>

</bugzilla>