<?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>227265</bug_id>
          
          <creation_ts>2021-06-22 12:29:52 -0700</creation_ts>
          <short_desc>[Live Text] [macOS] Add an internal option to disable inline text selection in images</short_desc>
          <delta_ts>2021-06-22 18:33:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1771751</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-22 12:29:52 -0700</bug_when>
    <thetext>Add an (off-by-default) internal feature flag to control whether or not we should allow inline text selection inside images. When disallowing inline text selection in images, we will instead have a context menu action to &quot;Quick Look&quot;, which will automatically be retitled to either &quot;Look Up in Quick Look&quot; or &quot;Select Text in Quick Look&quot; depending on the presence of recognized text or visual search results for the image.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771752</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-22 12:34:58 -0700</bug_when>
    <thetext>rdar://79460142</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771775</commentid>
    <comment_count>2</comment_count>
      <attachid>431990</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-22 13:38:58 -0700</bug_when>
    <thetext>Created attachment 431990
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771779</commentid>
    <comment_count>3</comment_count>
      <attachid>431991</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-22 13:58:25 -0700</bug_when>
    <thetext>Created attachment 431991
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771788</commentid>
    <comment_count>4</comment_count>
      <attachid>431991</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-06-22 14:18:20 -0700</bug_when>
    <thetext>Comment on attachment 431991
For EWS

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

&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:238
&gt;  void WebViewImpl::computeHasVisualSearchResults(const URL&amp; imageURL, ShareableBitmap&amp; imageBitmap, CompletionHandler&lt;void(bool)&gt;&amp;&amp; completion)

These seem ... slightly silly, instead of just passing the nice pretty enum. But also fine.

&gt; Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm:553
&gt; +                page-&gt;computeHasVisualSearchResults(imageURL, *imageBitmap, [weakThis = makeWeakPtr(protectedThis.get()), quickLookItemToInsertIfNeeded = WTFMove(*quickLookItemToInsertIfNeeded)] (bool hasVisualSearchResults) mutable {

This function is getting a bit out of hand, maybe the visual search stuff can be in its own? (also then you could drop a lot of the `protectedThis`)

&gt; Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm:607
&gt; +        auto item = retainPtr([m_menu itemAtIndex:itemIndex]);

Not sure what the retainPtr() is for! Where&apos;s the item going to go?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771810</commentid>
    <comment_count>5</comment_count>
      <attachid>431991</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-22 15:32:18 -0700</bug_when>
    <thetext>Comment on attachment 431991
For EWS

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

&gt;&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:238
&gt;&gt;  void WebViewImpl::computeHasVisualSearchResults(const URL&amp; imageURL, ShareableBitmap&amp; imageBitmap, CompletionHandler&lt;void(bool)&gt;&amp;&amp; completion)
&gt; 
&gt; These seem ... slightly silly, instead of just passing the nice pretty enum. But also fine.

Good point — I&apos;ll change this so that we just have `computeHasImageAnalysisResults` instead of both `computeHasTextRecognitionResults` and `computeHasVisualSearchResults`.

&gt;&gt; Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm:553
&gt;&gt; +                page-&gt;computeHasVisualSearchResults(imageURL, *imageBitmap, [weakThis = makeWeakPtr(protectedThis.get()), quickLookItemToInsertIfNeeded = WTFMove(*quickLookItemToInsertIfNeeded)] (bool hasVisualSearchResults) mutable {
&gt; 
&gt; This function is getting a bit out of hand, maybe the visual search stuff can be in its own? (also then you could drop a lot of the `protectedThis`)

Sounds good — I pulled the logic in this ENABLE(IMAGE_ANALYSIS) block out into a separate helper method named `insertOrUpdateQuickLookImageItem`.

&gt;&gt; Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm:607
&gt;&gt; +        auto item = retainPtr([m_menu itemAtIndex:itemIndex]);
&gt; 
&gt; Not sure what the retainPtr() is for! Where&apos;s the item going to go?

I suppose the item&apos;s not going anywhere :P removed the RetainPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771814</commentid>
    <comment_count>6</comment_count>
      <attachid>432004</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-22 16:02:27 -0700</bug_when>
    <thetext>Created attachment 432004
Fix GTK/WPE/Win builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771815</commentid>
    <comment_count>7</comment_count>
      <attachid>432005</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-22 16:15:34 -0700</bug_when>
    <thetext>Created attachment 432005
Fix GTK/WPE/Win builds (2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771840</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-22 18:33:02 -0700</bug_when>
    <thetext>Committed r279164 (239061@main): &lt;https://commits.webkit.org/239061@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432005.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431990</attachid>
            <date>2021-06-22 13:38:58 -0700</date>
            <delta_ts>2021-06-22 14:16:39 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-227265-20210622133857.patch</filename>
            <type>text/plain</type>
            <size>47013</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJmMGFjNjg1MmZkMTI3ZWVjNDQ2MDY5
YTcxNjczYjc0NmVjYmU2ODQuLjE5ZTYxNWVmNTgxZDk0ZTc1YWNiYWVlMGRkMWIxMGY0MzM0MmM3
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDYtMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0xpdmUgVGV4dF0gW21hY09TXSBBZGQgYW4g
aW50ZXJuYWwgb3B0aW9uIHRvIGRpc2FibGUgaW5saW5lIHRleHQgc2VsZWN0aW9uIGluIGltYWdl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjY1
CisgICAgICAgIHJkYXI6Ly83OTQ2MDE0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBpbnRlcm5hbCBmZWF0dXJlIGZsYWcuIFNlZSBX
ZWJLaXQgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBTY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbDoKKwogMjAyMS0wNi0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkanVzdCBgZmV0Y2hgIHBv
cnQgYmxvY2tpbmcgZm9yIHBvcnRzIDk5MCwgOTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmMzYmNjNjQyZGMz
NTE1MTAyNzM0ZjQ2M2IyYzg1ZDZjNjk1MDkxZC4uNmRkZWQwNGFlODE3YWMzYmU4ZDUyMTQxZGI2
NDJmOGVjMzgzNjM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIxLTA2LTIyICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtMaXZlIFRl
eHRdIFttYWNPU10gQWRkIGFuIGludGVybmFsIG9wdGlvbiB0byBkaXNhYmxlIGlubGluZSB0ZXh0
IHNlbGVjdGlvbiBpbiBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNzI2NQorICAgICAgICByZGFyOi8vNzk0NjAxNDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdGhl
IG5ldyBmZWF0dXJlIGZsYWcuIFNlZSBXZWJLaXQvQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMu
CisKKyAgICAgICAgKiBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorCisgICAgICAgIEFk
ZCBhZGRpdGlvbmFsIGxvY2FsaXphYmxlIHN0cmluZ3MgdG8gcmVwcmVzZW50IGVhY2ggb2YgdGhl
IHBvc3NpYmxlIHRpdGxlcyBmb3IgdGhlICJRdWljayBMb29rIi8iTG9vayBVcCIKKyAgICAgICAg
Y29udGV4dCBtZW51IGl0ZW0uIFdoZW4gaW5saW5lIHRleHQgc2VsZWN0aW9uIGlzIGVuYWJsZWQs
IHRoZSBpdGVtIHNob3dzIHVwIGFzICJMb29rIFVwIiwgYW5kIGlzIG9ubHkgYWRkZWQgaWYKKyAg
ICAgICAgd2UgYWN0dWFsbHkgZGlzY292ZXIgdmlzdWFsIHNlYXJjaCByZXN1bHRzLgorCisgICAg
ICAgIEhvd2V2ZXIsIHdoZW4gaW5saW5lIHRleHQgc2VsZWN0aW9uIGlzIGRpc2FibGVkLCB0aGlz
IGl0ZW0gd2lsbCBhbHdheXMgYmUgYWRkZWQgdG8gdGhlIGNvbnRleHQgbWVudSB1bmRlciB0aGUK
KyAgICAgICAgdGl0bGUgIlF1aWNrIExvb2siLCBhbmQgd2lsbCBiZSByZXRpdGxlZCB0byBlaXRo
ZXIgIkxvb2sgVXAgaW4gUXVpY2sgTG9vayIgb3IgIlNlbGVjdCBUZXh0IGluIFF1aWNrIExvb2si
IG9uY2UKKyAgICAgICAgZWl0aGVyIHZpc3VhbCBzZWFyY2ggcmVzdWx0cyBvciB0ZXh0IGlzIHJl
Y29nbml6ZWQsIHJlc3BlY3RpdmVseS4KKworICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y29u
dGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250
cm9sbGVyOjpwb3B1bGF0ZSk6CisKKyAgICAgICAgSW4gdGhlIGNhc2Ugd2hlcmUgaW5saW5lIHRl
eHQgc2VsZWN0aW9uIGlzIGRpc2FibGVkLCBhZGQgdGhlIFF1aWNrIExvb2sgaXRlbSB0byB0aGUg
ZW5kIG9mIHRoZSBjb250ZXh0IG1lbnUsCisgICAgICAgIGFmdGVyIGEgc2VwYXJhdG9yLiBOb3Rl
IHRoYXQgaW4gdGhlIGNhc2Ugd2hlcmUgaW5saW5lIHRleHQgc2VsZWN0aW9uIGlzIGVuYWJsZWQs
IGl0IGRvZXNuJ3QgYWN0dWFsbHkgbWF0dGVyCisgICAgICAgIHdoZXJlIHdlIGFkZCB0aGlzIGl0
ZW0sIHNpbmNlIGl0IGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZCBhbmQgb25seSByZWluc2VydGVk
IGlmIHdlIGZpbmQgdmlzdWFsIHNlYXJjaCByZXN1bHRzCisgICAgICAgIGZvciB0aGUgaW1hZ2Uu
CisKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y2hlY2tPckVuYWJs
ZUlmTmVlZGVkIGNvbnN0KToKKworICAgICAgICBSZW5hbWUgdGhlIGV4aXN0aW5nIENvbnRleHRN
ZW51SXRlbVRhZ0xvb2tVcEltYWdlIHRvIENvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdl
LCBzaW5jZSBpdCBpcyBubyBsb25nZXIKKyAgICAgICAgbGltaXRlZCB0byB0aGUgdmlzdWFsIGxv
b2sgdXAgZmVhdHVyZS4KKworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXBkYXRlTW91c2VFdmVudFRhcmdldE5vZGUpOgor
CisgICAgICAgIENvbnN1bHQgdGhlIGZlYXR1cmUgZmxhZyBhbmQgYXZvaWQga2lja2luZyBvZmYg
dGhlIHRleHQgcmVjb2duaXRpb24gdGltZXIgaWYgaW5saW5lIHRleHQgc2VsZWN0aW9uIGlzIGRp
c2FibGVkLgorCisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmlzVmFsaWRDb250ZXh0TWVudUFjdGlvbik6CisgICAgICAgICogcGxhdGZv
cm0vQ29udGV4dE1lbnVJdGVtLmg6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlRm9yVGV4dFNl
bGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJ
bWFnZUZvclZpc3VhbFNlYXJjaCk6CisKIDIwMjEtMDYtMjEgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBbV2ViS2l0TGVnYWN5XSBOb24t
YWN0aW9uYWJsZSAiTG9vayBVcCIgYWN0aW9uIGFwcGVhcnMgd2hlbiByaWdodCBjbGlja2luZyBp
bWFnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggYTNmNmMxZjFjOWI2YTgwYjcxYzM2Yzc5MWMxZGE0ZTRhZjNjYTgw
Ni4uZjM0M2Q3NGU1MDYyMzA0YTcxYWJhNzE5MmJlYTZiZWMzYTk5ZTk3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw4MiBAQAorMjAyMS0wNi0yMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBbTGl2ZSBUZXh0XSBbbWFjT1NdIEFkZCBhbiBpbnRlcm5hbCBv
cHRpb24gdG8gZGlzYWJsZSBpbmxpbmUgdGV4dCBzZWxlY3Rpb24gaW4gaW1hZ2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcyNjUKKyAgICAgICAg
cmRhcjovLzc5NDYwMTQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVmYWN0b3IgTGl2ZSBUZXh0IGFuZCBWaXN1YWwgTG9vayBVcCBsb2dpYywgc3Vj
aCB0aGF0IHRoZSBhYmlsaXR5IHRvIHNlbGVjdCB0ZXh0IGluc2lkZSBvZiBpbWFnZXMgaXMgYmVo
aW5kIGFuCisgICAgICAgIGludGVybmFsIGZlYXR1cmUgZmxhZyB0aGF0IGNhbiBiZSB0b2dnbGVk
IGF0IHJ1bnRpbWUuIFdoZW4gTGl2ZSBUZXh0IGlzIGRpc2FibGVkLCB3ZSdsbCB1bmNvbmRpdGlv
bmFsbHkgc2hvdyB0aGUKKyAgICAgICAgIkxvb2sgVXAiIGNvbnRleHQgbWVudSBhY3Rpb24gdXNp
bmcgdGhlIG1vcmUgZ2VuZXJpYyB0aXRsZSAiUXVpY2sgTG9vayIuIFRoaXMgIlF1aWNrIExvb2si
IGFjdGlvbiBpcyB0aGVuCisgICAgICAgIHJldGl0bGVkIHRvIGVpdGhlciAiTG9vayBVcCBpbiBR
dWljayBMb29rIiBvciAiU2VsZWN0IFRleHQgaW4gUXVpY2sgTG9vayIgb25jZSBpbWFnZSBhbmFs
eXNpcyBjb21wbGV0ZXMuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0
Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAgKFdlYktpdDo6dG9JbXBsKToK
KworICAgICAgICBSZW5hbWUgQ29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UgdG8gQ29udGV4
dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
UXVpY2tMb29rUHJldmlld0FjdGl2aXR5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVyLmguCisKKyAgICAgICAgTW92
ZSB0aGlzIGVudW0gb3V0IG9mIFdLUXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIuaCwgc3VjaCB0
aGF0IHdlIGNhbiB1c2UgYW5kIGltcG9ydCBpdCBpbiBub24tQ29jb2EgaGVhZGVycworICAgICAg
ICBhbmQgaW1wbGVtZW50YXRpb24gZmlsZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjb21wdXRlSGFzVGV4dFJlY29nbml0aW9u
UmVzdWx0cyk6CisKKyAgICAgICAgQWRkIGBjb21wdXRlSGFzVGV4dFJlY29nbml0aW9uUmVzdWx0
c2AsIHdoaWNoIGNvbXB1dGVzIHdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiBpbWFnZSBoYXMgdGV4
dCByZWNvZ25pdGlvbgorICAgICAgICByZXN1bHRzLiBXZSB1c2UgdGhpcyBmb3IgdGhlICJRdWlj
ayBMb29rIiBjb250ZXh0IG1lbnUgYWN0aW9uIHdoZW4gaW5saW5lIHRleHQgc2VsZWN0aW9uIGlz
IGRpc2FibGVkLCBpbiBvcmRlcgorICAgICAgICB0byByZXRpdGxlIHRoZSBpdGVtIHRvICJTZWxl
Y3QgVGV4dCBpbiBRdWljayBMb29rIi4KKworICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6Y29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvUGFnZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50Ojpjb21wdXRlSGFz
VGV4dFJlY29nbml0aW9uUmVzdWx0cyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRN
ZW51UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eTo6cXVpY2tM
b29rUHJldmlld0FjdGl2aXR5IGNvbnN0KToKKworICAgICAgICBBZGQgYSBmbGFnIHRvIFdlYkNv
bnRleHRNZW51UHJveHkgdG8gZGV0ZXJtaW5lIHdoYXQgaW5pdGlhbCBhY3Rpdml0eSB0byB1c2Ug
d2hlbiBwcmVzZW50aW5nIHRoZSBRdWlja0xvb2sKKyAgICAgICAgcHJldmlldyBwYW5lbCBhZnRl
ciBzZWxlY3RpbmcgdGhlIENvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlIGl0ZW0uCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6Y29tcHV0ZUhhc1RleHRSZWNvZ25pdGlvblJlc3VsdHMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmNvbXB1dGVIYXNUZXh0
UmVjb2duaXRpb25SZXN1bHRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLUXVpY2tMb29r
UHJldmlld0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLUXVpY2tMb29r
UHJldmlld0NvbnRyb2xsZXIubW06CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0
TWVudVByb3h5TWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVBy
b3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjptZW51SXRlbUlkZW50aWZpZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVudUZyb21JdGVt
cyk6CisKKyAgICAgICAgQWRkIGxvZ2ljIHRvIGVpdGhlciByZW1vdmUgYW5kIHJlaW5zZXJ0IHRo
ZSAiTG9vayBVcCIgY29udGV4dCBtZW51IGFjdGlvbiAoaWYgaW5saW5lIHRleHQgc2VsZWN0aW9u
IGluIGltYWdlcyBpcworICAgICAgICBlbmFibGVkKSwgb3IgdG8gcHJvbW90ZSB0aGUgIlF1aWNr
IExvb2siIGNvbnRleHQgbWVudSBhY3Rpb24gdG8gZWl0aGVyICJTZWxlY3QgVGV4dCBpbiBRdWlj
ayBMb29rIiBvciAiTG9vayBVcAorICAgICAgICBpbiBRdWljayBMb29rIiBpbiB0aGUgY2FzZSB3
aGVyZSBpbmxpbmUgdGV4dCBzZWxlY3Rpb24gaW4gaW1hZ2VzIGlzIGRpc2FibGVkLgorCisgICAg
ICAgIE5vdGUgdGhhdCB3aGVuIGlubGluZSB0ZXh0IHNlbGVjdGlvbiBpbiBpbWFnZXMgaXMgZGlz
YWJsZWQsIHdlJ2xsIGZpcnN0IGNoZWNrIGZvciB2aXN1YWwgc2VhcmNoIHJlc3VsdHMgYmVmb3Jl
CisgICAgICAgIGNoZWNraW5nIGZvciB0ZXh0LiBUaGlzIGlzIGJlY2F1c2UgdmlzdWFsIHNlYXJj
aCByZXN1bHRzIHdpbGwgdGFrZSBwcmVjZWRlbmNlIG92ZXIgdGV4dCBzZWxlY3Rpb24gKGkuZS4s
IHdlJ2xsCisgICAgICAgIHNob3cgIkxvb2sgVXAgaW4gUXVpY2sgTG9vayIgZXZlbiBpZiBib3Ro
IHZpc3VhbCBzZWFyY2ggcmVzdWx0cyBhbmQgdGV4dCBpcyBwcmVzZW50KSwgc28gd2UgY2FuIGF2
b2lkIHBlcmZvcm1pbmcKKyAgICAgICAgdGV4dCBhbmFseXNpcyBpbiB0aGUgY2FzZSB3aGVyZSB3
ZSBhbHJlYWR5IGZvdW5kIHZpc3VhbCBzZWFyY2ggcmVzdWx0cy4KKworICAgICAgICAoV2ViS2l0
OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjp1cGRhdGVRdWlja0xvb2tDb250ZXh0TWVudUl0ZW1U
aXRsZSk6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIG1ldGhvZCB0byBmaW5kIGFuZCB1cGRhdGUg
dGhlIHRpdGxlIG9mIHRoZSBOU01lbnVJdGVtIGNvcnJlc3BvbmRpbmcgdG8KKyAgICAgICAgQ29u
dGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2UuIFNlZSBgZ2V0Q29udGV4dE1lbnVGcm9tSXRl
bXNgIGFib3ZlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dl
YlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVD
b250ZXh0TWVudVF1aWNrTG9va0ltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpoYW5kbGVDb250ZXh0TWVudUxvb2tVcEltYWdlKTogRGVsZXRlZC4KKworICAgICAgICBSZW5h
bWUgdGhpcyB0byBgaGFuZGxlQ29udGV4dE1lbnVRdWlja0xvb2tJbWFnZWAsIGFuZCBoYXZlIGl0
IHRha2UgYW4gYXJndW1lbnQgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgUXVpY2tMb29rCisgICAg
ICAgIHBhbmVsIHNob3VsZCBzdGFydCBvdXQgaW4gVmlzdWFsIExvb2sgVXAgbW9kZS4KKworICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA2LTE5ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFt3YXRjaE9T
XSBBdXRvbWF0aWNhbGx5IGFwcGx5IHN5c3RlbSBtaW5pbXVtIGxheW91dCBtYXJnaW5zIGFzIHNj
cm9sbCB2aWV3IGNvbnRlbnQgaW5zZXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXgg
YTBjZTVhMDA1Y2Y0NjQ4MGI2ZDFkYTA4OTdkMjZmOWY3ZDA5N2UyNi4uZTQyN2E2NWYyNDhiOWMz
NTI0YzY0ZDI1MjJjYTk1YTI4MDMzNTllOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDIxLTA2LTIyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIFtMaXZlIFRleHRdIFttYWNPU10gQWRkIGFuIGludGVybmFs
IG9wdGlvbiB0byBkaXNhYmxlIGlubGluZSB0ZXh0IHNlbGVjdGlvbiBpbiBpbWFnZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI2NQorICAgICAg
ICByZGFyOi8vNzk0NjAxNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW5hbWUgQ29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UgdG8gQ29udGV4
dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2UuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxW
aWV3Lm1tOgorICAgICAgICAodG9UYWcpOgorCiAyMDIxLTA2LTIxICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gW1dlYktpdExlZ2FjeV0g
Tm9uLWFjdGlvbmFibGUgIkxvb2sgVXAiIGFjdGlvbiBhcHBlYXJzIHdoZW4gcmlnaHQgY2xpY2tp
bmcgaW1hZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAppbmRleCAxODM4OWZjNzZlZWE3N2MwYTRhZjAx
NzVjNTNkNWJlODUxNTZkYTJlLi42NmViYTc5N2IzNzU5MDRkYmE1MGI0MWYxNzkzYzJjNjI3NjQ0
ODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNJbnRlcm5hbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9X
ZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKQEAgLTU4NCw2ICs1ODQsMTkgQEAgUHJlZmVyRmFz
dGVyQ2xpY2tPdmVyRG91YmxlVGFwOgogICAgICAgIlBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQ
TEFURk9STShXQVRDSE9TKSI6IHRydWUKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKK1ByZWZlcklu
bGluZVRleHRTZWxlY3Rpb25JbkltYWdlczoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxl
TmFtZTogIklubGluZSBUZXh0IFNlbGVjdGlvbiBpbiBJbWFnZXMiCisgIGh1bWFuUmVhZGFibGVE
ZXNjcmlwdGlvbjogIlByZWZlciBpbmxpbmUgdGV4dCBzZWxlY3Rpb24gaW4gaW1hZ2VzIG92ZXIg
dXNpbmcgdGhlIGNvbnRleHQgbWVudSIKKyAgY29uZGl0aW9uOiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogdHJ1ZQor
ICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IHRydWUKKyAgICBXZWJLaXQ6CisgICAg
ICBkZWZhdWx0OiB0cnVlCisKIFByZWZlclBhZ2VSZW5kZXJpbmdVcGRhdGVzTmVhcjYwRlBTRW5h
YmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIlByZWZlciBQYWdlIFJl
bmRlcmluZyBVcGRhdGVzIG5lYXIgNjBmcHMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
bi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9j
YWxpemFibGUuc3RyaW5ncwppbmRleCA3ZWE0OTdlZTFiY2NmMGZhM2E4OWNhODY1MDdhODk3ODA0
MjAyYTE5Li43MTY2ZjlhZmVhZmYzZjJjODA2ZWVlZjUzNjE4NzRjYjc0OTY2MjcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTU3Nyw2ICs1Nzcs
OSBAQAogLyogTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQgbWVudSBpdGVtICovCiAiTG9v
ayBVcCBpbiBEaWN0aW9uYXJ5IiA9ICJMb29rIFVwIGluIERpY3Rpb25hcnkiOwogCisvKiBUaXRs
ZSBmb3IgUXVpY2sgTG9vayBhY3Rpb24gYnV0dG9uIGZvciBpbWFnZXMgd2l0aCB2aXN1YWwgc2Vh
cmNoIHJlc3VsdHMgKi8KKyJMb29rIFVwIGluIFF1aWNrIExvb2siID0gIkxvb2sgVXAgaW4gUXVp
Y2sgTG9vayI7CisKIC8qIExvb2sgVXAgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBzZWxlY3RlZCB3
b3JkICovCiAiTG9vayBVcCDigJwlQOKAnSIgPSAiTG9vayBVcCDigJwlQOKAnSI7CiAKQEAgLTc1
MSw2ICs3NTQsOSBAQAogLyogRGVzY3JpcHRpb24gb2YgdGhlIFBvc3RTY3JpcHQgdHlwZSBzdXBw
b3J0ZWQgYnkgdGhlIFBERiBwc2V1ZG8gcGx1Zy1pbi4gVmlzaWJsZSBpbiB0aGUgSW5zdGFsbGVk
IFBsdWctaW5zIHBhZ2UgaW4gU2FmYXJpLiAqLwogIlBvc3RTY3JpcHQiID0gIlBvc3RTY3JpcHQi
OwogCisvKiBUaXRsZSBmb3IgUXVpY2sgTG9vayBhY3Rpb24gYnV0dG9uICovCisiUXVpY2sgTG9v
ayIgPSAiUXVpY2sgTG9vayI7CisKIC8qIFVuZG8gYWN0aW9uIG5hbWUgKi8KICJSYWlzZSBCYXNl
bGluZSAoVW5kbyBhY3Rpb24gbmFtZSkiID0gIlJhaXNlIEJhc2VsaW5lIjsKIApAQCAtNzkzLDYg
Kzc5OSw5IEBACiAvKiBTZWFyY2ggd2l0aCBzZWFyY2ggcHJvdmlkZXIgY29udGV4dCBtZW51IGl0
ZW0gd2l0aCBwcm92aWRlciBuYW1lIGluc2VydGVkICovCiAiU2VhcmNoIHdpdGggJUAiID0gIlNl
YXJjaCB3aXRoICVAIjsKIAorLyogVGl0bGUgZm9yIFF1aWNrIExvb2sgYWN0aW9uIGJ1dHRvbiBm
b3IgaW1hZ2VzIHdpdGggdGV4dCAqLworIlNlbGVjdCBUZXh0IGluIFF1aWNrIExvb2siID0gIlNl
bGVjdCBUZXh0IGluIFF1aWNrIExvb2siOworCiAvKiBWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIHJl
cXVpcmVkIGZpbGUgaW5wdXRzIHRoYXQgaGF2ZSBubyB2YWx1ZSAqLwogIlNlbGVjdCBhIGZpbGUi
ID0gIlNlbGVjdCBhIGZpbGUiOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHAKaW5kZXggMGRhYTVlMzZiZGFkNmU2MDMzNjJkZTgxMzkxNDBhYzdkOThm
OWY5Mi4uYzRlNDNlODhkZmQ5Zjg3NTM5NjBlZDkzZTNlMmM0ZmRlMWNlZDA4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAtNTE1LDcgKzUx
NSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3Rl
ZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1U
YWdEaWN0YXRpb25BbHRlcm5hdGl2ZToKICAgICAgICAgZnJhbWUtPmVkaXRvcigpLmFwcGx5RGlj
dGF0aW9uQWx0ZXJuYXRpdmUodGl0bGUpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbnRl
eHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlOgorICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnUXVp
Y2tMb29rSW1hZ2U6CiAgICAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIGhhbmRsZWQgYXQgdGhlIGNs
aWVudCBsYXllci4KICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFr
OwpAQCAtODI0LDkgKzgyNCw2IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpwb3B1bGF0
ZSgpCiAgICAgQ29udGV4dE1lbnVJdGVtIFNlbGVjdEFsbEl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4
dE1lbnVJdGVtVGFnU2VsZWN0QWxsLCBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKSk7CiAg
ICAgQ29udGV4dE1lbnVJdGVtIEluc2VydEVtb2ppSXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVu
dUl0ZW1UYWdJbnNlcnRFbW9qaSwgY29udGV4dE1lbnVJdGVtVGFnSW5zZXJ0RW1vamkoKSk7CiAj
ZW5kaWYKLSNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCi0gICAgQ29udGV4dE1lbnVJdGVtIExv
b2tVcEltYWdlSXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSwg
Y29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UoKSk7Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV0lOKQogICAgIENvbnRleHRNZW51SXRlbSBTaGFyZU1lbnVJdGVt
OwpAQCAtODUxLDYgKzg0OCwxMiBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6cG9wdWxh
dGUoKQogICAgICAgICByZXR1cm47CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykKKyAgICBib29sIHNob3VsZEFwcGVuZFF1aWNrTG9va0ltYWdlSXRlbSA9IGZhbHNlOworICAg
IGF1dG8gcXVpY2tMb29rSXRlbVRpdGxlID0gZnJhbWUtPnNldHRpbmdzKCkucHJlZmVySW5saW5l
VGV4dFNlbGVjdGlvbkluSW1hZ2VzKCkgPyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSgp
IDogY29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2UoKTsKKyAgICBDb250ZXh0TWVudUl0
ZW0gUXVpY2tMb29rSW1hZ2VJdGVtIHsgQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnUXVp
Y2tMb29rSW1hZ2UsIHF1aWNrTG9va0l0ZW1UaXRsZSB9OworI2VuZGlmCisKICAgICBhdXRvIGFk
ZFNlbGVjdGVkVGV4dEFjdGlvbnNJZk5lZWRlZCA9IFsmXSAoY29uc3QgU3RyaW5nJiBzZWxlY3Rl
ZFRleHQpIHsKICAgICAgICAgaWYgKHNlbGVjdGVkVGV4dC5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICByZXR1cm47CkBAIC05MDAsNyArOTAzLDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6
OnBvcHVsYXRlKCkKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKICAgICAgICAgICAgICAg
ICBpZiAobV9jbGllbnQuc3VwcG9ydHNMb29rVXBJbkltYWdlcygpICYmIGltYWdlICYmICFpbWFn
ZS0+aXNBbmltYXRlZCgpKQotICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKExvb2tVcElt
YWdlSXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIHNob3Vs
ZEFwcGVuZFF1aWNrTG9va0ltYWdlSXRlbSA9IHRydWU7CiAjZW5kaWYKICAgICAgICAgICAgIH0K
ICNpZiBQTEFURk9STShHVEspCkBAIC0xMTY0LDYgKzExNjcsMTggQEAgdm9pZCBDb250ZXh0TWVu
dUNvbnRyb2xsZXI6OnBvcHVsYXRlKCkKICAgICAgICAgICAgIGFwcGVuZEl0ZW0oU2hhcmVNZW51
SXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CiAgICAgICAgIH0KICAgICB9CisKKyNpZiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCisgICAgaWYgKHNob3VsZEFwcGVuZFF1aWNrTG9va0ltYWdlSXRl
bSkgeworICAgICAgICBpZiAoIWZyYW1lLT5zZXR0aW5ncygpLnByZWZlcklubGluZVRleHRTZWxl
Y3Rpb25JbkltYWdlcygpKSB7CisgICAgICAgICAgICAvLyBJbiB0aGUgY2FzZSB3aGVyZSBpbmxp
bmUgdGV4dCBzZWxlY3Rpb24gaXMgZW5hYmxlZCwgdGhlIExvb2sgVXAgaXRlbSBpcyBvbmx5IGFk
ZGVkIGlmCisgICAgICAgICAgICAvLyB3ZSBkaXNjb3ZlciB2aXN1YWwgbG9vayB1cCByZXN1bHRz
IGFmdGVyIGltYWdlIGFuYWx5c2lzLiBJbiB0aGF0IHNjZW5hcmlvLCBhIHNlcGFyYXRvcgorICAg
ICAgICAgICAgLy8gaXMgb25seSBhZGRlZCBiZWZvcmUgdGhlIExvb2sgVXAgaXRlbSBvbmNlIHdl
J3JlIGNlcnRhaW4gdGhhdCB3ZSB3YW50IHRvIHNob3cgaXQuCisgICAgICAgICAgICBhcHBlbmRJ
dGVtKCpzZXBhcmF0b3JJdGVtKCksIG1fY29udGV4dE1lbnUuZ2V0KCkpOworICAgICAgICB9Cisg
ICAgICAgIGFwcGVuZEl0ZW0oUXVpY2tMb29rSW1hZ2VJdGVtLCBtX2NvbnRleHRNZW51LmdldCgp
KTsKKyAgICB9CisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogfQogCiB2b2lkIENv
bnRleHRNZW51Q29udHJvbGxlcjo6YWRkSW5zcGVjdEVsZW1lbnRJdGVtKCkKQEAgLTE0ODksNyAr
MTUwNCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjaGVja09yRW5hYmxlSWZOZWVk
ZWQoQ29udGV4dE1lbnVJdGVtJiBpdGVtKSBjb25zdAogICAgICAgICAgICAgc2hvdWxkRW5hYmxl
ID0gbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5tZWRpYUhhc0F1ZGlvKCk7CiAgICAgICAgICAg
ICBzaG91bGRDaGVjayA9IHNob3VsZEVuYWJsZSAmJiAgbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQo
KS5tZWRpYU11dGVkKCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDb250ZXh0
TWVudUl0ZW1UYWdMb29rVXBJbWFnZToKKyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdR
dWlja0xvb2tJbWFnZToKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6
CiAgICAgICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKaW5kZXggZjViMWY5MTgxODQwNWQ5ZmRmZTUwM2MzOWY5NzUyZmFjYTgzNTllMy4uZGY5YzM5
NjJjNjE4OTI3MGVjOGQxODliMmI0YmM3NDcxNWU4NjdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcApAQCAtMjUzNywxMCArMjUzNywxMiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6
dXBkYXRlTW91c2VFdmVudFRhcmdldE5vZGUoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBO
b2RlKgogICAgIG1fZWxlbWVudFVuZGVyTW91c2UgPSB0YXJnZXRFbGVtZW50OwogCiAjaWYgRU5B
QkxFKElNQUdFX0FOQUxZU0lTKQotICAgIGlmICghbV9lbGVtZW50VW5kZXJNb3VzZSB8fCAhaXM8
UmVuZGVySW1hZ2U+KG1fZWxlbWVudFVuZGVyTW91c2UtPnJlbmRlcmVyKCkpKQotICAgICAgICBt
X3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXIuc3RvcCgpOwotICAgIGVsc2UgaWYgKCFwbGF0Zm9y
bU1vdXNlRXZlbnQubW92ZW1lbnREZWx0YSgpLmlzWmVybygpKQotICAgICAgICBtX3RleHRSZWNv
Z25pdGlvbkhvdmVyVGltZXIucmVzdGFydCgpOworICAgIGlmIChtX2ZyYW1lLnNldHRpbmdzKCku
cHJlZmVySW5saW5lVGV4dFNlbGVjdGlvbkluSW1hZ2VzKCkpIHsKKyAgICAgICAgaWYgKCFtX2Vs
ZW1lbnRVbmRlck1vdXNlIHx8ICFpczxSZW5kZXJJbWFnZT4obV9lbGVtZW50VW5kZXJNb3VzZS0+
cmVuZGVyZXIoKSkpCisgICAgICAgICAgICBtX3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXIuc3Rv
cCgpOworICAgICAgICBlbHNlIGlmICghcGxhdGZvcm1Nb3VzZUV2ZW50Lm1vdmVtZW50RGVsdGEo
KS5pc1plcm8oKSkKKyAgICAgICAgICAgIG1fdGV4dFJlY29nbml0aW9uSG92ZXJUaW1lci5yZXN0
YXJ0KCk7CisgICAgfQogI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogICAgIGlm
IChhdXRvKiBwYWdlID0gbV9mcmFtZS5wYWdlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q29udGV4dE1lbnVJdGVtLmNwcAppbmRleCAzNTVhOGY0ZGVlMGIwODRkMjAzN2FjM2Q1MzlmODUw
NjkwNmE3MDdjLi41ZDhmN2I1MjBlYjM3ZDE0NGFmNjY0ZjAzZjY3ZjkzNTlhZTc4OTQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHAKQEAgLTI1OCw3ICsy
NTgsNyBAQCBib29sIGlzVmFsaWRDb250ZXh0TWVudUFjdGlvbihDb250ZXh0TWVudUFjdGlvbiBh
Y3Rpb24pCiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlVmlkZW9GdWxsc2NyZWVuOgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRN
ZW51SXRlbVRhZ1NoYXJlTWVudToKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0VuaGFuY2VkRnVsbHNjcmVlbjoKLSAgICBjYXNlIENvbnRl
eHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZToKKyAgICBjYXNlIENv
bnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZToKICAgICBj
YXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6CiAgICAg
Y2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZzoKICAg
ICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAppbmRleCAwNTFjN2JlYmE3
YjI3NTJkMDkwMGQ5Yzg4OTg1ZTljNzdjMzg2OWRkLi42ZTVmNjJlYjY4N2I2NjUyNGIwNTNmODY1
Y2M2NDE4MWE0NjY2YmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250
ZXh0TWVudUl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0
ZW0uaApAQCAtMTQ3LDcgKzE0Nyw3IEBAIGVudW0gQ29udGV4dE1lbnVBY3Rpb24gewogICAgIENv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5oYW5jZWRGdWxsc2NyZWVuLAogICAgIENvbnRl
eHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdodFRvQ3VycmVudFF1aWNrTm90ZSwKICAgICBDb250ZXh0
TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb05ld1F1aWNrTm90ZSwKLSAgICBDb250ZXh0TWVudUl0
ZW1UYWdMb29rVXBJbWFnZSwKKyAgICBDb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZSwK
ICAgICBDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGUsCiAgICAgQ29udGV4dE1lbnVJdGVtQmFz
ZUN1c3RvbVRhZyA9IDUwMDAsCiAgICAgQ29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRhZyA9IDU5
OTksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKaW5kZXggY2Jm
MGNiY2EyYmI3NWUwZTU4MWE2NjY2NzAzZWI5ZmZjOTkwZWJlMC4uZDg1NmEwZDcwYmM5MGVkNGYw
YTY0MTAzZDI3ODE2MmI0ZDIyMmIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaApAQCAtMzY4LDcgKzM2OCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlKCk7Ci0jZW5kaWYKKyAgICBXRUJDT1JFX0VYUE9S
VCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2UoKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2VGb3JUZXh0U2Vs
ZWN0aW9uKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1F1
aWNrTG9va0ltYWdlRm9yVmlzdWFsU2VhcmNoKCk7CisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FO
QUxZU0lTKQogCiAjaWYgSEFWRShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykKICAgICBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlKGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJpbmcp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3Ry
aW5nc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3Ry
aW5nc0NvY29hLm1tCmluZGV4IDhiOWYxNmQyMTc2OTI1YWMxNDUxNjBjNGZkY2RlY2Q3ZjNlODE0
YWIuLjFlOGZjZGE3NWE4MGU1ZjRkNTgyNDA1ZGQ1OThiMjBjYWQ2ZjgzMGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2Eu
bW0KQEAgLTMxOSw2ICszMTksMjEgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcElt
YWdlKCkKICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTG9vayBVcCIsICJUaXRsZSBmb3IgTG9v
ayBVcCBhY3Rpb24gYnV0dG9uIik7CiB9CiAKLSNlbmRpZgorU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1F1aWNrTG9va0ltYWdlKCkKK3sKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUXVpY2sg
TG9vayIsICJUaXRsZSBmb3IgUXVpY2sgTG9vayBhY3Rpb24gYnV0dG9uIik7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZUZvclRleHRTZWxlY3Rpb24oKQorewor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTZWxlY3QgVGV4dCBpbiBRdWljayBMb29rIiwgIlRp
dGxlIGZvciBRdWljayBMb29rIGFjdGlvbiBidXR0b24gZm9yIGltYWdlcyB3aXRoIHRleHQiKTsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlRm9yVmlzdWFsU2Vh
cmNoKCkKK3sKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTG9vayBVcCBpbiBRdWljayBMb29r
IiwgIlRpdGxlIGZvciBRdWljayBMb29rIGFjdGlvbiBidXR0b24gZm9yIGltYWdlcyB3aXRoIHZp
c3VhbCBzZWFyY2ggcmVzdWx0cyIpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9jL1dLU2hhcmVkQVBJQ2FzdC5oCmluZGV4IDBiZWYwZjNkNjFkMmVmYjRlZjc1ODYyNjRmY2Iz
NGUyYmY5MzMxNDIuLjdjM2YxY2VjZjBmYzAxMmYyNzY5YTYyZTlhZDkyNGNhYWRhOWUzODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC01NDMs
NyArNTQzLDcgQEAgaW5saW5lIFdLQ29udGV4dE1lbnVJdGVtVGFnIHRvQVBJKFdlYkNvcmU6OkNv
bnRleHRNZW51QWN0aW9uIGFjdGlvbikKICNlbmRpZgogICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4
dE1lbnVJdGVtVGFnU2hhcmVNZW51OgogICAgICAgICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVt
VGFnU2hhcmVNZW51OwotICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnTG9va1Vw
SW1hZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFn
ZToKICAgICAgICAgcmV0dXJuIGtXS0NvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOwogICAg
IGNhc2UgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlOgogICAgICAgICByZXR1
cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlOwpAQCAtNzQ2LDcgKzc0Niw3IEBAIGlu
bGluZSBXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiB0b0ltcGwoV0tDb250ZXh0TWVudUl0ZW1U
YWcgdGFnKQogICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVN
ZW51OwogI2VuZGlmCiAgICAgY2FzZSBrV0tDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToK
LSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlOwor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2U7
CiAgICAgY2FzZSBrV0tDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6CiAgICAgICAgIHJldHVy
biBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU7CiAgICAgY2FzZSBrV0tDb250
ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luVGhpc1dpbmRvdzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1F1aWNrTG9va1ByZXZpZXdBY3Rpdml0eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUXVpY2tMb29rUHJldmlld0FjdGl2aXR5LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTBkMzY1NjNmMWE0OWE4NWE1ODczOTZiYjRmMzE5MWE1ZTYzZjYwZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1F1aWNrTG9va1ByZXZpZXdB
Y3Rpdml0eS5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBjbGFzcyBR
dWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgOiB1aW50OF90IHsKKyAgICBOb25lLAorICAgIFZpc3Vh
bFNlYXJjaCwKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZP
Uk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApp
bmRleCBiYmM2ODNhYzA3MTUxMzhhNjAxZjhkODU3OTZiOTAxZmRjMTcwYjJlLi40YzRhZGZjYzZk
MGNhNjM5ODQ0ZmNmNjRkNDY0NTQyYjFlOWQ0ZWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTU5OSw2ICs1OTksNyBAQCBwdWJsaWM6CiAjaWYg
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihj
b25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VE
YXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3Vs
dCYmKT4mJik7CiAgICAgdm9pZCBjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhjb25zdCBV
UkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIGNvbXB1dGVIYXNUZXh0UmVjb2duaXRpb25S
ZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlmCiAKICAgICBib29sIGFj
Y2VwdHNQcmV2aWV3UGFuZWxDb250cm9sKFFMUHJldmlld1BhbmVsICopOwpAQCAtNzQ5LDYgKzc1
MCw5IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgVktJbWFn
ZUFuYWx5emVyICplbnN1cmVJbWFnZUFuYWx5emVyKCk7CisKKyAgICBlbnVtIGNsYXNzIEltYWdl
QW5hbHlzaXNUeXBlIDogdWludDhfdCB7IFRleHQsIFZpc3VhbFNlYXJjaCB9OworICAgIHZvaWQg
Y29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJl
YWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIEltYWdlQW5hbHlzaXNUeXBlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKICNlbmRpZgogCiAgICAgV2Vha09iakNQdHI8TlNWaWV3PFdl
YlZpZXdJbXBsRGVsZWdhdGU+PiBtX3ZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDdjMzczZWQ3MTk2Njg5Mzg1OWJlMTZhZTgzNDA5NzM0
ZTk1YjAwNTAuLjAwYWNkNjUwMzhmY2RjODI4ODkwY2ZkYjg1NTA1ZDUxMzI0ZDk2OGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0yMzAsNyAr
MjMwLDE3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3Qg
VVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0CiAgICAgfSkuZ2V0KCldOwogfQogCit2
b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRlSGFzVGV4dFJlY29nbml0aW9uUmVzdWx0cyhjb25zdCBV
UkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24pCit7CisgICAgY29tcHV0ZUhhc0ltYWdlQW5h
bHlzaXNSZXN1bHRzKGltYWdlVVJMLCBpbWFnZUJpdG1hcCwgSW1hZ2VBbmFseXNpc1R5cGU6OlRl
eHQsIFdURk1vdmUoY29tcGxldGlvbikpOworfQorCiB2b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRl
SGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRt
YXAmIGltYWdlQml0bWFwLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b24pCit7CisgICAgY29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKGltYWdlVVJMLCBpbWFn
ZUJpdG1hcCwgSW1hZ2VBbmFseXNpc1R5cGU6OlZpc3VhbFNlYXJjaCwgV1RGTW92ZShjb21wbGV0
aW9uKSk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVz
dWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBJ
bWFnZUFuYWx5c2lzVHlwZSB0eXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb24pCiB7CiAgICAgaWYgKCFpc0xpdmVUZXh0QXZhaWxhYmxlQW5kRW5hYmxlZCgpKSB7
CiAgICAgICAgIGNvbXBsZXRpb24oZmFsc2UpOwpAQCAtMjM4LDEyICsyNDgsMTMgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiBpbWFn
ZVVSTCwgU2hhcmVhYmxlQmkKICAgICB9CiAKICAgICBhdXRvIGNnSW1hZ2UgPSBpbWFnZUJpdG1h
cC5tYWtlQ0dJbWFnZSgpOwotICAgIGF1dG8gcmVxdWVzdCA9IGNyZWF0ZUltYWdlQW5hbHlzaXNS
ZXF1ZXN0KGNnSW1hZ2UuZ2V0KCksIGltYWdlVVJMLCBbTlNVUkwgX3dlYl9VUkxXaXRoV1RGU3Ry
aW5nOm1fcGFnZS0+Y3VycmVudFVSTCgpXSwgVktBbmFseXNpc1R5cGVWaXN1YWxTZWFyY2gpOwor
ICAgIGF1dG8gYW5hbHlzaXNUeXBlID0gdHlwZSA9PSBJbWFnZUFuYWx5c2lzVHlwZTo6VmlzdWFs
U2VhcmNoID8gVktBbmFseXNpc1R5cGVWaXN1YWxTZWFyY2ggOiBWS0FuYWx5c2lzVHlwZVRleHQ7
CisgICAgYXV0byByZXF1ZXN0ID0gY3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3QoY2dJbWFnZS5n
ZXQoKSwgaW1hZ2VVUkwsIFtOU1VSTCBfd2ViX1VSTFdpdGhXVEZTdHJpbmc6bV9wYWdlLT5jdXJy
ZW50VVJMKCldLCBhbmFseXNpc1R5cGUpOwogICAgIGF1dG8gc3RhcnRUaW1lID0gTW9ub3Rvbmlj
VGltZTo6bm93KCk7Ci0gICAgW2Vuc3VyZUltYWdlQW5hbHl6ZXIoKSBwcm9jZXNzUmVxdWVzdDpy
ZXF1ZXN0LmdldCgpIHByb2dyZXNzSGFuZGxlcjpuaWwgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJs
b2NrUHRyKFtjb21wbGV0aW9uID0gV1RGTW92ZShjb21wbGV0aW9uKSwgc3RhcnRUaW1lXSAoVktJ
bWFnZUFuYWx5c2lzICphbmFseXNpcywgTlNFcnJvciAqKSBtdXRhYmxlIHsKLSAgICAgICAgQk9P
TCByZXN1bHQgPSBbYW5hbHlzaXMgaGFzUmVzdWx0c0ZvckFuYWx5c2lzVHlwZXM6VktBbmFseXNp
c1R5cGVWaXN1YWxTZWFyY2hdOwotICAgICAgICBDRlJ1bkxvb3BQZXJmb3JtQmxvY2soQ0ZSdW5M
b29wR2V0TWFpbigpLCAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpTlNFdmVudFRyYWNraW5nUnVuTG9v
cE1vZGUsIG1ha2VCbG9ja1B0cihbY29tcGxldGlvbiA9IFdURk1vdmUoY29tcGxldGlvbiksIHJl
c3VsdCwgc3RhcnRUaW1lXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HKElt
YWdlcywgIkltYWdlIGFuYWx5c2lzIGNvbXBsZXRlZCBpbiAlLjBmIG1zIChmb3VuZCB2aXN1YWwg
c2VhcmNoIHJlc3VsdHM/ICVkKSIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0VGltZSku
bWlsbGlzZWNvbmRzKCksIHJlc3VsdCk7CisgICAgW2Vuc3VyZUltYWdlQW5hbHl6ZXIoKSBwcm9j
ZXNzUmVxdWVzdDpyZXF1ZXN0LmdldCgpIHByb2dyZXNzSGFuZGxlcjpuaWwgY29tcGxldGlvbkhh
bmRsZXI6bWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uID0gV1RGTW92ZShjb21wbGV0aW9uKSwgc3Rh
cnRUaW1lLCBhbmFseXNpc1R5cGVdIChWS0ltYWdlQW5hbHlzaXMgKmFuYWx5c2lzLCBOU0Vycm9y
ICopIG11dGFibGUgeworICAgICAgICBCT09MIHJlc3VsdCA9IFthbmFseXNpcyBoYXNSZXN1bHRz
Rm9yQW5hbHlzaXNUeXBlczphbmFseXNpc1R5cGVdOworICAgICAgICBDRlJ1bkxvb3BQZXJmb3Jt
QmxvY2soQ0ZSdW5Mb29wR2V0TWFpbigpLCAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpTlNFdmVudFRy
YWNraW5nUnVuTG9vcE1vZGUsIG1ha2VCbG9ja1B0cihbY29tcGxldGlvbiA9IFdURk1vdmUoY29t
cGxldGlvbiksIHJlc3VsdCwgYW5hbHlzaXNUeXBlLCBzdGFydFRpbWVdICgpIG11dGFibGUgewor
ICAgICAgICAgICAgUkVMRUFTRV9MT0coSW1hZ2VzLCAiSW1hZ2UgYW5hbHlzaXMgY29tcGxldGVk
IGluICUuMGYgbXMgKGZvdW5kICVzPyAlZCkiLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFy
dFRpbWUpLm1pbGxpc2Vjb25kcygpLCBhbmFseXNpc1R5cGUgPT0gVktBbmFseXNpc1R5cGVWaXN1
YWxTZWFyY2ggPyAidmlzdWFsIHNlYXJjaCByZXN1bHRzIiA6ICJ0ZXh0IiwgcmVzdWx0KTsKICAg
ICAgICAgICAgIGNvbXBsZXRpb24ocmVzdWx0KTsKICAgICAgICAgfSkuZ2V0KCkpOwogICAgICAg
ICBDRlJ1bkxvb3BXYWtlVXAoQ0ZSdW5Mb29wR2V0TWFpbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaAppbmRleCA4NzcwYWQ0NjM4MTZiZmVmNGM0YTk5Mzc0NjUzOWUwMmQyMWNk
NTcyLi5kOTVjMGFhZDEzZWJiOTk5NWE0Yjk2ZDk5MmE4NTAxOGFhYTBkZDc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC01NDEsNiArNTQxLDcgQEAgcHVibGljOgogI2lm
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFRleHRSZWNv
Z25pdGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRs
ZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25p
dGlvblJlc3VsdCYmKT4mJiBjb21wbGV0aW9uKSB7IGNvbXBsZXRpb24oeyB9KTsgfQogICAgIHZp
cnR1YWwgdm9pZCBjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmLCBTaGFy
ZWFibGVCaXRtYXAmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24p
IHsgY29tcGxldGlvbihmYWxzZSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUhhc1RleHRS
ZWNvZ25pdGlvblJlc3VsdHMoY29uc3QgVVJMJiwgU2hhcmVhYmxlQml0bWFwJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKSB7IGNvbXBsZXRpb24oZmFsc2UpOyB9
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBV
U0UoVUlDT05URVhUTUVOVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvbnRleHRNZW51UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRN
ZW51UHJveHkuaAppbmRleCAxYjhmY2M4NDY2NGYzMDlhZmU1ZjRlYWNkMjhiNTQxM2MxYjFiOTA3
Li4zMDU3ODRhNDc2MTQ4MTQ4OTdmMDIyZWM2ZDI5NmE1NjA2NjUxMjhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5oCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRl
eHREYXRhLmgiCisjaW5jbHVkZSAiUXVpY2tMb29rUHJldmlld0FjdGl2aXR5LmgiCiAjaW5jbHVk
ZSAiVXNlckRhdGEuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkuaCIK
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNTEsNiArNTIsNyBAQCBwdWJsaWM6CiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdmlydHVhbCBOU01lbnUgKnBsYXRmb3JtTWVudSgpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIE5TQXJyYXkgKnBsYXRmb3JtRGF0YSgpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSBxdWlja0xvb2tQcmV2aWV3QWN0
aXZpdHkoKSBjb25zdCB7IHJldHVybiBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHk6Ok5vbmU7IH07
CiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGFmZTJiMDg2YjNiOThiMzQxNmIyZTkxNjdl
MjZhNTI3NTFjMTI0ZjYuLmU5NmRmZTc2ZDM5NGFiZWYyNTYyNjk0NzhkODkxZTZiZWYwMzgxZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODUsNiArODUs
NyBAQAogI2luY2x1ZGUgIlByaW50SW5mby5oIgogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIu
aCIKICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIlF1aWNrTG9v
a1ByZXZpZXdBY3Rpdml0eS5oIgogI2luY2x1ZGUgIlNhZmVCcm93c2luZ1dhcm5pbmcuaCIKICNp
bmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oIgpAQCAtNjkwOCw5ICs2OTA5LDEwIEBAIHZvaWQg
V2ViUGFnZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChjb25zdCBXZWJDb250ZXh0TWVu
dUl0ZW1EYXRhJiBpdGVtKQogICAgICAgICArK21fcGVuZGluZ0xlYXJuT3JJZ25vcmVXb3JkTWVz
c2FnZUNvdW50OwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
TG9va1VwSW1hZ2U6CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZToK
ICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCi0gICAgICAgIGhhbmRsZUNvbnRleHRNZW51TG9v
a1VwSW1hZ2UoKTsKKyAgICAgICAgaWYgKG1fYWN0aXZlQ29udGV4dE1lbnUpCisgICAgICAgICAg
ICBoYW5kbGVDb250ZXh0TWVudVF1aWNrTG9va0ltYWdlKG1fYWN0aXZlQ29udGV4dE1lbnUtPnF1
aWNrTG9va1ByZXZpZXdBY3Rpdml0eSgpKTsKICNlbmRpZgogICAgICAgICByZXR1cm47CiAKQEAg
LTg1MTMsNiArODUxNSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tcHV0ZUhhc1Zpc3VhbFNl
YXJjaFJlc3VsdHMoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQgogICAgIHBhZ2VDbGll
bnQoKS5jb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAs
IFdURk1vdmUoY29tcGxldGlvbikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29tcHV0ZUhh
c1RleHRSZWNvZ25pdGlvblJlc3VsdHMoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0
bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0
aW9uKQoreworICAgIHBhZ2VDbGllbnQoKS5jb21wdXRlSGFzVGV4dFJlY29nbml0aW9uUmVzdWx0
cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAsIFdURk1vdmUoY29tcGxldGlvbikpOworfQorCiB2b2lk
IFdlYlBhZ2VQcm94eTo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChUZXh0UmVjb2du
aXRpb25SZXN1bHQmJiByZXN1bHRzLCBjb25zdCBFbGVtZW50Q29udGV4dCYgY29udGV4dCwgY29u
c3QgRmxvYXRQb2ludCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVGV4dFJlY29n
bml0aW9uVXBkYXRlUmVzdWx0KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWhh
c1J1bm5pbmdQcm9jZXNzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggNjc1OGFmODI5ZjFlODg1MjA1ZTFlYjRjNDE4YmQyMmE2ZjM0OWUzYS4uNjQ5ZTc1NzQ2
OTcxYWY2MTlkZTUzZDM0NDNkNjRlOTQzNmE1YWRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTE2NjAsNiArMTY2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
cXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+JiYpOwogICAgIHZvaWQgdXBkYXRlV2l0aFRleHRS
ZWNvZ25pdGlvblJlc3VsdChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJiwgY29uc3Qg
V2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2Nh
dGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQp
PiYmKTsKICAgICB2b2lkIGNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0IFVSTCYg
aW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgY29tcHV0ZUhhc1RleHRSZWNvZ25pdGlvblJlc3Vs
dHMoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJ
QV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKQEAgLTE5MDYs
NiArMTkwNyw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpCiAgICAgdm9pZCBoYW5kbGVDb250ZXh0TWVudUxvb2tVcEltYWdl
KCk7CisgICAgdm9pZCBoYW5kbGVDb250ZXh0TWVudVF1aWNrTG9va0ltYWdlKFF1aWNrTG9va1By
ZXZpZXdBY3Rpdml0eSk7CiAjZW5kaWYKIAogI2lmIFVTRShBUFBLSVQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IGRkN2I0OTdhYTY0
YmY3YTIzZWVmMTg0ODZlYmNiNDQzYTM1ODcxZTQuLjAyOTUzNWRkOWM0OTcwMTQ5NzNhZmIzN2Fk
ZDkxZWYyNTgyZmQ1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbE1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5oCkBAIC0xMzMsNiArMTMzLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCiAgICAgdm9pZCByZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVS
TCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYm
KSBvdmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0
IFVSTCYsIFNoYXJlYWJsZUJpdG1hcCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
IG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZUhhc1RleHRSZWNvZ25pdGlvblJlc3VsdHMoY29u
c3QgVVJMJiwgU2hhcmVhYmxlQml0bWFwJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3Jl
YXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KaW5kZXggYzJkZThkNmVh
N2MwYmNhZmEwOTE0YzFmNTJhZTRkNjQ1ZGY4NjlkYy4uN2M5ZjUyZDZlZGUwYzU5MWJkOGU2MWYw
ZGI5ZjBmYTcwYjc5YjI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbE1hYy5tbQpAQCAtNDkwLDYgKzQ5MCwxMSBAQCB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBT
aGFyZWFibAogICAgIG1faW1wbC0+Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoaW1hZ2VV
UkwsIGltYWdlQml0bWFwLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKIH0KIAordm9pZCBQYWdlQ2xp
ZW50SW1wbDo6Y29tcHV0ZUhhc1RleHRSZWNvZ25pdGlvblJlc3VsdHMoY29uc3QgVVJMJiBpbWFn
ZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uKQoreworICAgIG1faW1wbC0+Y29tcHV0ZUhhc1RleHRSZWNv
Z25pdGlvblJlc3VsdHMoaW1hZ2VVUkwsIGltYWdlQml0bWFwLCBXVEZNb3ZlKGNvbXBsZXRpb24p
KTsKK30KKwogI2VuZGlmCiAKIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFnZUNsaWVudElt
cGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVy
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tRdWlja0xvb2tQcmV2aWV3Q29udHJv
bGxlci5oCmluZGV4IDAyYzdkMmYxZDRiOTNkYTQwNjRiMDg2OTJjYzNlM2JhNGQ0Y2QxM2UuLjFl
MjdjOGQzYmNlOWUxYzkxZjA1ZTUzMGVlNTIwYzgwNDE0NzczNDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUXVpY2tMb29rUHJldmlld0NvbnRyb2xs
ZXIuaApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBh
Z2VQcm94eTsKLWVudW0gY2xhc3MgUXVpY2tMb29rUHJldmlld0FjdGl2aXR5IDogdWludDhfdCB7
IE5vbmUsIFZpc3VhbFNlYXJjaCB9OworZW51bSBjbGFzcyBRdWlja0xvb2tQcmV2aWV3QWN0aXZp
dHkgOiB1aW50OF90OwogfQogCiBAY2xhc3MgUUxQcmV2aWV3UGFuZWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tRdWlja0xvb2tQcmV2aWV3Q29udHJvbGxlci5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdDb250cm9s
bGVyLm1tCmluZGV4IDUxOTJiMTRlZjEzM2I5NDY2MDFhNzdmYzQyNWNhYTQxZDY4YjE3YzAuLjhm
NWM4MmUwNjRjMGViZjFjODAyM2FlMGI5YWZhMGJiNjkzZmNhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdDb250cm9s
bGVyLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBIQVZFKFFVSUNLTE9PS19QUkVWSUVXX0lU
RU1fREFUQV9QUk9WSURFUikKIAorI2ltcG9ydCAiUXVpY2tMb29rUHJldmlld0FjdGl2aXR5Lmgi
CiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNp
bXBvcnQgPHBhbC9tYWMvUXVpY2tMb29rVUlTb2Z0TGluay5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgKaW5kZXggNTYwNjFh
ZmMzZDAzZWIxZDNlZDk5YTM5ZGFjZDZjY2FkMzYxMDliZS4uMzdmY2Y1Mjk2YjE5OGIwM2E3MTAy
OTZmMDk1YjBiNDExY2Y5NTE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oCkBAIC02MCw2ICs2MCw4IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgV2ViQ29udGV4dE1lbnVQcm94eU1hYyhOU1ZpZXcgKiwgV2ViUGFnZVBy
b3h5JiwgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYmLCBjb25zdCBVc2VyRGF0YSYpOwogCisgICAg
UXVpY2tMb29rUHJldmlld0FjdGl2aXR5IHF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fcXVpY2tMb29rUHJldmlld0FjdGl2aXR5OyB9CisKICAgICB2b2lk
IHNob3coKSBvdmVycmlkZTsKICAgICB2b2lkIHNob3dDb250ZXh0TWVudVdpdGhJdGVtcyhWZWN0
b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgdXNlQ29u
dGV4dE1lbnVJdGVtcyhWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiYpIG92ZXJyaWRl
OwpAQCAtNzMsOSArNzUsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldHVwU2VydmljZXNNZW51
KCk7CiAjZW5kaWYKIAorICAgIHZvaWQgdXBkYXRlUXVpY2tMb29rQ29udGV4dE1lbnVJdGVtVGl0
bGUoY29uc3QgU3RyaW5nJik7CisKICAgICBOU01lbnUgKnBsYXRmb3JtTWVudSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIE5TQXJyYXkgKnBsYXRmb3JtRGF0YSgpIGNvbnN0IG92ZXJyaWRlOwogCisg
ICAgUXVpY2tMb29rUHJldmlld0FjdGl2aXR5IG1fcXVpY2tMb29rUHJldmlld0FjdGl2aXR5IHsg
UXVpY2tMb29rUHJldmlld0FjdGl2aXR5OjpOb25lIH07CiAgICAgUmV0YWluUHRyPE5TTWVudT4g
bV9tZW51OwogICAgIFJldGFpblB0cjxXS01lbnVEZWxlZ2F0ZT4gbV9tZW51RGVsZWdhdGU7CiAg
ICAgV2Vha09iakNQdHI8TlNWaWV3PiBtX3dlYlZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCmluZGV4IDY1NWIwYjgz
OWQzNTM2YmEzYjc1NGU0MTM4YTg3NzA1ZDYxMGRhZTguLjY5MzY1MzBjMTY3MmU5MWIyYjdiZGFl
NWIxOGQ2ZTg3OWQ5NGU0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCkBAIC0zOCw2ICszOCw3IEBACiAjaW1wb3J0
ICJXZWJDb250ZXh0TWVudUl0ZW0uaCIKICNpbXBvcnQgIldlYkNvbnRleHRNZW51SXRlbURhdGEu
aCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgorI2ltcG9ydCAiV2ViUHJlZmVyZW5jZXMuaCIK
ICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0lu
dFJlY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgpAQCAtNDM2LDcg
KzQzNyw3IEBAIHN0YXRpYyBOU1N0cmluZyAqbWVudUl0ZW1JZGVudGlmaWVyKGNvbnN0IFdlYkNv
cmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z1JlbG9hZDoKICAgICAgICAgcmV0dXJuIF9XS01lbnVJdGVtSWRlbnRpZmllclJlbG9hZDsKIAot
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2U6CisgICAgY2FzZSBDb250ZXh0
TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZToKICAgICAgICAgcmV0dXJuIF9XS01lbnVJdGVtSWRl
bnRpZmllclJldmVhbEltYWdlOwogCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hX
ZWI6CkBAIC01MDcsMTcgKzUwOCwyMiBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6Omdl
dENvbnRleHRNZW51RnJvbUl0ZW1zKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudQogICAgICAg
ICB9KTsKICAgICB9CiAKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvbnRleHRNZW51SXRlbURhdGE+
IGxvb2tVcEltYWdlSXRlbTsKKyAgICBib29sIHNob3VsZFVwZGF0ZVF1aWNrTG9va0l0ZW1UaXRs
ZSA9IGZhbHNlOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4gcXVp
Y2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQ7CiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMp
Ci0gICAgZmlsdGVyZWRJdGVtcy5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmXSAoYXV0byYgaXRlbSkg
ewotICAgICAgICBpZiAoaXRlbS5hY3Rpb24oKSAhPSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1U
YWdMb29rVXBJbWFnZSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBsb29r
VXBJbWFnZUl0ZW0gPSB7IGl0ZW0gfTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgYXV0byBp
bmRleE9mUXVpY2tMb29rSXRlbSA9IGZpbHRlcmVkSXRlbXMuZmluZE1hdGNoaW5nKFsmXSAoYXV0
byYgaXRlbSkgeworICAgICAgICByZXR1cm4gaXRlbS5hY3Rpb24oKSA9PSBXZWJDb3JlOjpDb250
ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZTsKICAgICB9KTsKLSNlbmRpZgorCisgICAgaWYg
KGluZGV4T2ZRdWlja0xvb2tJdGVtICE9IG5vdEZvdW5kKSB7CisgICAgICAgIGlmIChhdXRvIHBh
Z2UgPSB0aGlzLT5wYWdlKCk7IHBhZ2UgJiYgcGFnZS0+cHJlZmVyZW5jZXMoKS5wcmVmZXJJbmxp
bmVUZXh0U2VsZWN0aW9uSW5JbWFnZXMoKSkgeworICAgICAgICAgICAgcXVpY2tMb29rSXRlbVRv
SW5zZXJ0SWZOZWVkZWQgPSBmaWx0ZXJlZEl0ZW1zW2luZGV4T2ZRdWlja0xvb2tJdGVtXTsKKyAg
ICAgICAgICAgIGZpbHRlcmVkSXRlbXMucmVtb3ZlKGluZGV4T2ZRdWlja0xvb2tJdGVtKTsKKyAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICBzaG91bGRVcGRhdGVRdWlja0xvb2tJdGVtVGl0bGUg
PSB0cnVlOworICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKICNpZiBI
QVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKQogICAgIGlmICghcGFnZSgpLT5jYW5IYW5kbGVD
b250ZXh0TWVudVRyYW5zbGF0aW9uKCkgfHwgaXNQb3BvdmVyKSB7CkBAIC01MzEsNyArNTM3LDcg
QEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVudUZyb21JdGVtcyhj
b25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnUKICAgICBhdXRvIGltYWdlQml0bWFwID0gbV9jb250
ZXh0LndlYkhpdFRlc3RSZXN1bHREYXRhKCkuaW1hZ2VCaXRtYXA7CiAKICAgICBhdXRvIHNwYXJz
ZU1lbnVJdGVtcyA9IHJldGFpblB0cihbTlNQb2ludGVyQXJyYXkgc3Ryb25nT2JqZWN0c1BvaW50
ZXJBcnJheV0pOwotICAgIGF1dG8gaW5zZXJ0TWVudUl0ZW0gPSBtYWtlQmxvY2tQdHIoW3Byb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKCkp
LCBpbWFnZVVSTCA9IFdURk1vdmUoaW1hZ2VVUkwpLCBpbWFnZUJpdG1hcCA9IFdURk1vdmUoaW1h
Z2VCaXRtYXApLCBsb29rVXBJbWFnZUl0ZW0gPSBXVEZNb3ZlKGxvb2tVcEltYWdlSXRlbSksIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGl0ZW1zUmVtYWlu
aW5nID0gZmlsdGVyZWRJdGVtcy5zaXplKCksIG1lbnUgPSBXVEZNb3ZlKG1lbnUpLCBzcGFyc2VN
ZW51SXRlbXNdKE5TTWVudUl0ZW0gKml0ZW0sIE5TVUludGVnZXIgaW5kZXgpIG11dGFibGUgewor
ICAgIGF1dG8gaW5zZXJ0TWVudUl0ZW0gPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKCkpLCBpbWFnZVVSTCA9
IFdURk1vdmUoaW1hZ2VVUkwpLCBpbWFnZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApLCBz
aG91bGRVcGRhdGVRdWlja0xvb2tJdGVtVGl0bGUsIHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVl
ZGVkID0gV1RGTW92ZShxdWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCksIGNvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGl0ZW1zUmVtYWluaW5nID0gZmls
dGVyZWRJdGVtcy5zaXplKCksIG1lbnUgPSBXVEZNb3ZlKG1lbnUpLCBzcGFyc2VNZW51SXRlbXNd
KE5TTWVudUl0ZW0gKml0ZW0sIE5TVUludGVnZXIgaW5kZXgpIG11dGFibGUgewogICAgICAgICBB
U1NFUlQoaW5kZXggPCBbc3BhcnNlTWVudUl0ZW1zIGNvdW50XSk7CiAgICAgICAgIEFTU0VSVCgh
W3NwYXJzZU1lbnVJdGVtcyBwb2ludGVyQXRJbmRleDppbmRleF0pOwogICAgICAgICBbc3BhcnNl
TWVudUl0ZW1zIHJlcGxhY2VQb2ludGVyQXRJbmRleDppbmRleCB3aXRoUG9pbnRlcjppdGVtXTsK
QEAgLTU0MSwxNSArNTQ3LDQzIEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29u
dGV4dE1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51CiAgICAgICAgIFtt
ZW51IHNldEl0ZW1BcnJheTpbc3BhcnNlTWVudUl0ZW1zIGFsbE9iamVjdHNdXTsKIAogICAgICAg
ICBhdXRvIHBhZ2UgPSBtYWtlUmVmUHRyKHdlYWtQYWdlLmdldCgpKTsKLSAgICAgICAgaWYgKGxv
b2tVcEltYWdlSXRlbSAmJiBwYWdlICYmIGltYWdlQml0bWFwKSB7CisgICAgICAgIGlmIChwYWdl
ICYmIGltYWdlQml0bWFwKSB7CiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQotICAgICAgICAg
ICAgcGFnZS0+Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoaW1hZ2VVUkwsICppbWFnZUJp
dG1hcCwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBsb29rVXBJbWFn
ZUl0ZW0gPSBXVEZNb3ZlKCpsb29rVXBJbWFnZUl0ZW0pXSAoYm9vbCBoYXNWaXN1YWxTZWFyY2hS
ZXN1bHRzKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBpZiAoaGFzVmlzdWFsU2VhcmNoUmVz
dWx0cykKLSAgICAgICAgICAgICAgICAgICAgW3Byb3RlY3RlZFRoaXMtPm1fbWVudSBhZGRJdGVt
OmNyZWF0ZU1lbnVBY3Rpb25JdGVtKGxvb2tVcEltYWdlSXRlbSkuZ2V0KCldOwotICAgICAgICAg
ICAgfSk7Ci0jZWxzZQotICAgICAgICAgICAgVU5VU0VEX1BBUkFNKGltYWdlVVJMKTsKLSNlbmRp
ZgorICAgICAgICAgICAgaWYgKHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkKSB7CisgICAg
ICAgICAgICAgICAgcGFnZS0+Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoaW1hZ2VVUkws
ICppbWFnZUJpdG1hcCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIocHJvdGVjdGVkVGhpcy5nZXQo
KSksIHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkID0gV1RGTW92ZSgqcXVpY2tMb29rSXRl
bVRvSW5zZXJ0SWZOZWVkZWQpXSAoYm9vbCBoYXNWaXN1YWxTZWFyY2hSZXN1bHRzKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQ
dHIod2Vha1RoaXMuZ2V0KCkpOyBwcm90ZWN0ZWRUaGlzICYmIGhhc1Zpc3VhbFNlYXJjaFJlc3Vs
dHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcXVpY2tMb29r
UHJldmlld0FjdGl2aXR5ID0gUXVpY2tMb29rUHJldmlld0FjdGl2aXR5OjpWaXN1YWxTZWFyY2g7
CisgICAgICAgICAgICAgICAgICAgICAgICBbcHJvdGVjdGVkVGhpcy0+bV9tZW51IGFkZEl0ZW06
TlNNZW51SXRlbS5zZXBhcmF0b3JJdGVtXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFtwcm90
ZWN0ZWRUaGlzLT5tX21lbnUgYWRkSXRlbTpjcmVhdGVNZW51QWN0aW9uSXRlbShxdWlja0xvb2tJ
dGVtVG9JbnNlcnRJZk5lZWRlZCkuZ2V0KCldOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHNob3VsZFVwZGF0ZVF1aWNr
TG9va0l0ZW1UaXRsZSkgeworICAgICAgICAgICAgICAgIHBhZ2UtPmNvbXB1dGVIYXNWaXN1YWxT
ZWFyY2hSZXN1bHRzKGltYWdlVVJMLCAqaW1hZ2VCaXRtYXAsIFt3ZWFrVGhpcyA9IG1ha2VXZWFr
UHRyKHByb3RlY3RlZFRoaXMuZ2V0KCkpLCB3ZWFrUGFnZSwgaW1hZ2VVUkwsIGltYWdlQml0bWFw
XSAoYm9vbCBoYXNWaXN1YWxTZWFyY2hSZXN1bHRzKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAg
ICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih3ZWFrVGhpcy5nZXQoKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcykKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgICAgICBhdXRvIHBhZ2UgPSBtYWtlUmVm
UHRyKHdlYWtQYWdlLmdldCgpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFwYWdlKQorICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgICAgIGlmICho
YXNWaXN1YWxTZWFyY2hSZXN1bHRzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0
ZWRUaGlzLT5tX3F1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSA9IFF1aWNrTG9va1ByZXZpZXdBY3Rp
dml0eTo6VmlzdWFsU2VhcmNoOworICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhp
cy0+dXBkYXRlUXVpY2tMb29rQ29udGV4dE1lbnVJdGVtVGl0bGUoY29udGV4dE1lbnVJdGVtVGFn
UXVpY2tMb29rSW1hZ2VGb3JWaXN1YWxTZWFyY2goKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBw
YWdlLT5jb21wdXRlSGFzVGV4dFJlY29nbml0aW9uUmVzdWx0cyhpbWFnZVVSTCwgKmltYWdlQml0
bWFwLCBbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgd2Vha1BhZ2VdIChib29sIGhhc1Rl
eHQpIG11dGFibGUgeworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZlB0cih3ZWFrVGhpcy5nZXQoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoIXByb3RlY3RlZFRoaXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBwYWdlID0gbWFrZVJlZlB0cih3ZWFr
UGFnZS5nZXQoKSk7IHBhZ2UgJiYgaGFzVGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwcm90ZWN0ZWRUaGlzLT51cGRhdGVRdWlja0xvb2tDb250ZXh0TWVudUl0ZW1UaXRsZShjb250
ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZUZvclRleHRTZWxlY3Rpb24oKSk7CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorI2Vu
ZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKICAgICAgICAgfQogCiAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKG1lbnUuZ2V0KCkpOwpAQCAtNTYzLDYgKzU5NywxNyBAQCB2b2lkIFdlYkNv
bnRleHRNZW51UHJveHlNYWM6OmdldENvbnRleHRNZW51RnJvbUl0ZW1zKGNvbnN0IFZlY3RvcjxX
ZWJDb250ZXh0TWVudQogICAgIH0KIH0KIAordm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjp1
cGRhdGVRdWlja0xvb2tDb250ZXh0TWVudUl0ZW1UaXRsZShjb25zdCBTdHJpbmcmIG5ld1RpdGxl
KQoreworICAgIGZvciAoTlNJbnRlZ2VyIGl0ZW1JbmRleCA9IDA7IGl0ZW1JbmRleCA8IFttX21l
bnUgbnVtYmVyT2ZJdGVtc107ICsraXRlbUluZGV4KSB7CisgICAgICAgIGF1dG8gaXRlbSA9IHJl
dGFpblB0cihbbV9tZW51IGl0ZW1BdEluZGV4Oml0ZW1JbmRleF0pOworICAgICAgICBpZiAoc3Rh
dGljX2Nhc3Q8Q29udGV4dE1lbnVBY3Rpb24+KFtpdGVtIHRhZ10pID09IENvbnRleHRNZW51SXRl
bVRhZ1F1aWNrTG9va0ltYWdlKSB7CisgICAgICAgICAgICBbaXRlbSBzZXRUaXRsZTpuZXdUaXRs
ZV07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBXZWJD
b250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVudUl0ZW0oY29uc3QgV2ViQ29udGV4dE1l
bnVJdGVtRGF0YSYgaXRlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOU01lbnVJdGVtICopPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KaW5kZXggMWFi
MzUwYTQzMGUzYTE1YTM3NGUxNjU5ZGU3YzhmNDQ4MTk5NzZmZi4uZTEyOTEzMzU3NWRhYzNjNTM0
ZWYzMDg4MWFmOTc1NjM0NThjNjgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV2ViUGFnZVByb3h5TWFjLm1tCkBAIC03NDYsMTMgKzc0NiwxMyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6Y2xvc2VTaGFyZWRQcmV2aWV3UGFuZWxJZk5lY2Vzc2FyeSgpCiAKICNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVDb250ZXh0TWVudUxv
b2tVcEltYWdlKCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVDb250ZXh0TWVudVF1aWNrTG9v
a0ltYWdlKFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSBhY3Rpdml0eSkKIHsKICAgICBhdXRvJiBy
ZXN1bHQgPSBtX2FjdGl2ZUNvbnRleHRNZW51Q29udGV4dERhdGEud2ViSGl0VGVzdFJlc3VsdERh
dGEoKTsKICAgICBpZiAoIXJlc3VsdC5pbWFnZUJpdG1hcCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgc2hvd0ltYWdlSW5RdWlja0xvb2tQcmV2aWV3UGFuZWwoKnJlc3VsdC5pbWFnZUJpdG1hcCwg
cmVzdWx0LnRvb2xUaXBUZXh0LCBVUkwgeyBVUkwgeyB9LCByZXN1bHQuYWJzb2x1dGVJbWFnZVVS
TCB9LCBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHk6OlZpc3VhbFNlYXJjaCk7CisgICAgc2hvd0lt
YWdlSW5RdWlja0xvb2tQcmV2aWV3UGFuZWwoKnJlc3VsdC5pbWFnZUJpdG1hcCwgcmVzdWx0LnRv
b2xUaXBUZXh0LCBVUkwgeyBVUkwgeyB9LCByZXN1bHQuYWJzb2x1dGVJbWFnZVVSTCB9LCBhY3Rp
dml0eSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93SW1hZ2VJblF1aWNrTG9va1ByZXZp
ZXdQYW5lbChTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBjb25zdCBTdHJpbmcmIHRvb2x0
aXAsIGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSBhY3Rpdml0
eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDQ1ZThlYTc3ZGFlY2UwMjhhMGIwOWJmMmM3Njg4ZjQ2ODMxYTcwNzguLjM4ZjNkODcwMmNk
M2MzYjE0YmM0NGEzNTg0NmY5YjhhZDNmMThkMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTk4NCw2ICs1OTg0LDcgQEAKIAkJRjQ0
REZFQjAxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSWNvblV0aWxpdGllcy5oOyBwYXRoID0gaW9zL1dlYklj
b25VdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0REZFQjExRTlF
NzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJJY29uVXRpbGl0aWVzLm1tOyBwYXRoID0gaW9zL1dlYklj
b25VdGlsaXRpZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NjYwQkMxMjVE
RUYwODEwMEU4NjU5OCAvKiBQYXN0ZWJvYXJkQWNjZXNzSW50ZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBhc3RlYm9hcmRBY2Nlc3NJbnRlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjQ3QTA1MTYyNjgyN0EwOTAwN0U1Q0YyIC8qIFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjQ4NTcwQTIyNjQ0QkVDNDAwQzA1RjcxIC8qIFRpbWVvdXQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGltZW91dC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNDhEMkE4NDIxNTgzQTAyMDBDNjc1MkIgLyogQXBwS2l0U1BJLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFwcEtpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDk2QTQyRjFGNThBMjcyMDA0QzE3NTcgLyogRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5oOyBwYXRoID0gaW9zL0RyYWdE
cm9wSW50ZXJhY3Rpb25TdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzA0
NSw2ICs3MDQ2LDcgQEAKIAkJCQlDREEyOUExRjFDQkVCNUZCMDA5MDFDQ0YgLyogUGxheWJhY2tT
ZXNzaW9uTWFuYWdlclByb3h5Lm1tICovLAogCQkJCUMxNDVDQzBFMjNEQ0E0MjcwMDNBNUVFQiAv
KiBQcmVmZXJlbmNlT2JzZXJ2ZXIuaCAqLywKIAkJCQlDMTVDQkIzMzIzRjM0QzM4MDAzMDBDQzcg
LyogUHJlZmVyZW5jZU9ic2VydmVyLm1tICovLAorCQkJCUY0N0EwNTE2MjY4MjdBMDkwMDdFNUNG
MiAvKiBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkuaCAqLywKIAkJCQk1Q0I3QUZERDIzQzUyNzNE
MDBFNDlDRjMgLyogUmVzb3VyY2VMb2FkRGVsZWdhdGUuaCAqLywKIAkJCQk1Q0I3QUZERTIzQzUy
NzNEMDBFNDlDRjMgLyogUmVzb3VyY2VMb2FkRGVsZWdhdGUubW0gKi8sCiAJCQkJNUNBOTg1NEIy
MTBCRUI3MzAwNTdFQjZCIC8qIFNhZmVCcm93c2luZ1dhcm5pbmdDb2NvYS5tbSAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IGI0MjE2
ZGFhNGMwMmMxZWVkNzc1Y2JhYjU0ZGMwNzk4NzI1MTMyOGEuLmMwMjBiOGJiYTJkMDA0MWYzZTU0
ZTdmMThjNmEzNzc2ODMzZWYwNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbQpAQCAtNjE1LDcgKzYxNSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPE5TSW50ZWdlcj4gdG9UYWcoV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKQog
ICAgICAgICByZXR1cm4gV2ViTWVudUl0ZW1UYWdUb2dnbGVWaWRlb0VuaGFuY2VkRnVsbHNjcmVl
bjsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZToKICAgICAgICAgcmV0dXJu
IFdlYk1lbnVJdGVtVGFnVHJhbnNsYXRlOwotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnTG9v
a1VwSW1hZ2U6CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZToKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtQmFz
ZUN1c3RvbVRhZyAuLi4gQ29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRhZzoK
</data>
<flag name="commit-queue"
          id="453922"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431991</attachid>
            <date>2021-06-22 13:58:25 -0700</date>
            <delta_ts>2021-06-22 16:02:25 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-227265-20210622135824.patch</filename>
            <type>text/plain</type>
            <size>47054</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJmMGFjNjg1MmZkMTI3ZWVjNDQ2MDY5
YTcxNjczYjc0NmVjYmU2ODQuLjE5ZTYxNWVmNTgxZDk0ZTc1YWNiYWVlMGRkMWIxMGY0MzM0MmM3
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDYtMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0xpdmUgVGV4dF0gW21hY09TXSBBZGQgYW4g
aW50ZXJuYWwgb3B0aW9uIHRvIGRpc2FibGUgaW5saW5lIHRleHQgc2VsZWN0aW9uIGluIGltYWdl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjY1
CisgICAgICAgIHJkYXI6Ly83OTQ2MDE0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBpbnRlcm5hbCBmZWF0dXJlIGZsYWcuIFNlZSBX
ZWJLaXQgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBTY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbDoKKwogMjAyMS0wNi0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkanVzdCBgZmV0Y2hgIHBv
cnQgYmxvY2tpbmcgZm9yIHBvcnRzIDk5MCwgOTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmMzYmNjNjQyZGMz
NTE1MTAyNzM0ZjQ2M2IyYzg1ZDZjNjk1MDkxZC4uNmRkZWQwNGFlODE3YWMzYmU4ZDUyMTQxZGI2
NDJmOGVjMzgzNjM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIxLTA2LTIyICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtMaXZlIFRl
eHRdIFttYWNPU10gQWRkIGFuIGludGVybmFsIG9wdGlvbiB0byBkaXNhYmxlIGlubGluZSB0ZXh0
IHNlbGVjdGlvbiBpbiBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNzI2NQorICAgICAgICByZGFyOi8vNzk0NjAxNDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdGhl
IG5ldyBmZWF0dXJlIGZsYWcuIFNlZSBXZWJLaXQvQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMu
CisKKyAgICAgICAgKiBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorCisgICAgICAgIEFk
ZCBhZGRpdGlvbmFsIGxvY2FsaXphYmxlIHN0cmluZ3MgdG8gcmVwcmVzZW50IGVhY2ggb2YgdGhl
IHBvc3NpYmxlIHRpdGxlcyBmb3IgdGhlICJRdWljayBMb29rIi8iTG9vayBVcCIKKyAgICAgICAg
Y29udGV4dCBtZW51IGl0ZW0uIFdoZW4gaW5saW5lIHRleHQgc2VsZWN0aW9uIGlzIGVuYWJsZWQs
IHRoZSBpdGVtIHNob3dzIHVwIGFzICJMb29rIFVwIiwgYW5kIGlzIG9ubHkgYWRkZWQgaWYKKyAg
ICAgICAgd2UgYWN0dWFsbHkgZGlzY292ZXIgdmlzdWFsIHNlYXJjaCByZXN1bHRzLgorCisgICAg
ICAgIEhvd2V2ZXIsIHdoZW4gaW5saW5lIHRleHQgc2VsZWN0aW9uIGlzIGRpc2FibGVkLCB0aGlz
IGl0ZW0gd2lsbCBhbHdheXMgYmUgYWRkZWQgdG8gdGhlIGNvbnRleHQgbWVudSB1bmRlciB0aGUK
KyAgICAgICAgdGl0bGUgIlF1aWNrIExvb2siLCBhbmQgd2lsbCBiZSByZXRpdGxlZCB0byBlaXRo
ZXIgIkxvb2sgVXAgaW4gUXVpY2sgTG9vayIgb3IgIlNlbGVjdCBUZXh0IGluIFF1aWNrIExvb2si
IG9uY2UKKyAgICAgICAgZWl0aGVyIHZpc3VhbCBzZWFyY2ggcmVzdWx0cyBvciB0ZXh0IGlzIHJl
Y29nbml6ZWQsIHJlc3BlY3RpdmVseS4KKworICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y29u
dGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250
cm9sbGVyOjpwb3B1bGF0ZSk6CisKKyAgICAgICAgSW4gdGhlIGNhc2Ugd2hlcmUgaW5saW5lIHRl
eHQgc2VsZWN0aW9uIGlzIGRpc2FibGVkLCBhZGQgdGhlIFF1aWNrIExvb2sgaXRlbSB0byB0aGUg
ZW5kIG9mIHRoZSBjb250ZXh0IG1lbnUsCisgICAgICAgIGFmdGVyIGEgc2VwYXJhdG9yLiBOb3Rl
IHRoYXQgaW4gdGhlIGNhc2Ugd2hlcmUgaW5saW5lIHRleHQgc2VsZWN0aW9uIGlzIGVuYWJsZWQs
IGl0IGRvZXNuJ3QgYWN0dWFsbHkgbWF0dGVyCisgICAgICAgIHdoZXJlIHdlIGFkZCB0aGlzIGl0
ZW0sIHNpbmNlIGl0IGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZCBhbmQgb25seSByZWluc2VydGVk
IGlmIHdlIGZpbmQgdmlzdWFsIHNlYXJjaCByZXN1bHRzCisgICAgICAgIGZvciB0aGUgaW1hZ2Uu
CisKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y2hlY2tPckVuYWJs
ZUlmTmVlZGVkIGNvbnN0KToKKworICAgICAgICBSZW5hbWUgdGhlIGV4aXN0aW5nIENvbnRleHRN
ZW51SXRlbVRhZ0xvb2tVcEltYWdlIHRvIENvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdl
LCBzaW5jZSBpdCBpcyBubyBsb25nZXIKKyAgICAgICAgbGltaXRlZCB0byB0aGUgdmlzdWFsIGxv
b2sgdXAgZmVhdHVyZS4KKworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXBkYXRlTW91c2VFdmVudFRhcmdldE5vZGUpOgor
CisgICAgICAgIENvbnN1bHQgdGhlIGZlYXR1cmUgZmxhZyBhbmQgYXZvaWQga2lja2luZyBvZmYg
dGhlIHRleHQgcmVjb2duaXRpb24gdGltZXIgaWYgaW5saW5lIHRleHQgc2VsZWN0aW9uIGlzIGRp
c2FibGVkLgorCisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmlzVmFsaWRDb250ZXh0TWVudUFjdGlvbik6CisgICAgICAgICogcGxhdGZv
cm0vQ29udGV4dE1lbnVJdGVtLmg6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlRm9yVGV4dFNl
bGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJ
bWFnZUZvclZpc3VhbFNlYXJjaCk6CisKIDIwMjEtMDYtMjEgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBbV2ViS2l0TGVnYWN5XSBOb24t
YWN0aW9uYWJsZSAiTG9vayBVcCIgYWN0aW9uIGFwcGVhcnMgd2hlbiByaWdodCBjbGlja2luZyBp
bWFnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggYTNmNmMxZjFjOWI2YTgwYjcxYzM2Yzc5MWMxZGE0ZTRhZjNjYTgw
Ni4uZjM0M2Q3NGU1MDYyMzA0YTcxYWJhNzE5MmJlYTZiZWMzYTk5ZTk3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw4MiBAQAorMjAyMS0wNi0yMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBbTGl2ZSBUZXh0XSBbbWFjT1NdIEFkZCBhbiBpbnRlcm5hbCBv
cHRpb24gdG8gZGlzYWJsZSBpbmxpbmUgdGV4dCBzZWxlY3Rpb24gaW4gaW1hZ2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcyNjUKKyAgICAgICAg
cmRhcjovLzc5NDYwMTQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVmYWN0b3IgTGl2ZSBUZXh0IGFuZCBWaXN1YWwgTG9vayBVcCBsb2dpYywgc3Vj
aCB0aGF0IHRoZSBhYmlsaXR5IHRvIHNlbGVjdCB0ZXh0IGluc2lkZSBvZiBpbWFnZXMgaXMgYmVo
aW5kIGFuCisgICAgICAgIGludGVybmFsIGZlYXR1cmUgZmxhZyB0aGF0IGNhbiBiZSB0b2dnbGVk
IGF0IHJ1bnRpbWUuIFdoZW4gTGl2ZSBUZXh0IGlzIGRpc2FibGVkLCB3ZSdsbCB1bmNvbmRpdGlv
bmFsbHkgc2hvdyB0aGUKKyAgICAgICAgIkxvb2sgVXAiIGNvbnRleHQgbWVudSBhY3Rpb24gdXNp
bmcgdGhlIG1vcmUgZ2VuZXJpYyB0aXRsZSAiUXVpY2sgTG9vayIuIFRoaXMgIlF1aWNrIExvb2si
IGFjdGlvbiBpcyB0aGVuCisgICAgICAgIHJldGl0bGVkIHRvIGVpdGhlciAiTG9vayBVcCBpbiBR
dWljayBMb29rIiBvciAiU2VsZWN0IFRleHQgaW4gUXVpY2sgTG9vayIgb25jZSBpbWFnZSBhbmFs
eXNpcyBjb21wbGV0ZXMuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0
Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAgKFdlYktpdDo6dG9JbXBsKToK
KworICAgICAgICBSZW5hbWUgQ29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UgdG8gQ29udGV4
dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
UXVpY2tMb29rUHJldmlld0FjdGl2aXR5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVyLmguCisKKyAgICAgICAgTW92
ZSB0aGlzIGVudW0gb3V0IG9mIFdLUXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIuaCwgc3VjaCB0
aGF0IHdlIGNhbiB1c2UgYW5kIGltcG9ydCBpdCBpbiBub24tQ29jb2EgaGVhZGVycworICAgICAg
ICBhbmQgaW1wbGVtZW50YXRpb24gZmlsZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjb21wdXRlSGFzVGV4dFJlY29nbml0aW9u
UmVzdWx0cyk6CisKKyAgICAgICAgQWRkIGBjb21wdXRlSGFzVGV4dFJlY29nbml0aW9uUmVzdWx0
c2AsIHdoaWNoIGNvbXB1dGVzIHdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiBpbWFnZSBoYXMgdGV4
dCByZWNvZ25pdGlvbgorICAgICAgICByZXN1bHRzLiBXZSB1c2UgdGhpcyBmb3IgdGhlICJRdWlj
ayBMb29rIiBjb250ZXh0IG1lbnUgYWN0aW9uIHdoZW4gaW5saW5lIHRleHQgc2VsZWN0aW9uIGlz
IGRpc2FibGVkLCBpbiBvcmRlcgorICAgICAgICB0byByZXRpdGxlIHRoZSBpdGVtIHRvICJTZWxl
Y3QgVGV4dCBpbiBRdWljayBMb29rIi4KKworICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6Y29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvUGFnZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50Ojpjb21wdXRlSGFz
VGV4dFJlY29nbml0aW9uUmVzdWx0cyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRN
ZW51UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eTo6cXVpY2tM
b29rUHJldmlld0FjdGl2aXR5IGNvbnN0KToKKworICAgICAgICBBZGQgYSBmbGFnIHRvIFdlYkNv
bnRleHRNZW51UHJveHkgdG8gZGV0ZXJtaW5lIHdoYXQgaW5pdGlhbCBhY3Rpdml0eSB0byB1c2Ug
d2hlbiBwcmVzZW50aW5nIHRoZSBRdWlja0xvb2sKKyAgICAgICAgcHJldmlldyBwYW5lbCBhZnRl
ciBzZWxlY3RpbmcgdGhlIENvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlIGl0ZW0uCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6Y29tcHV0ZUhhc1RleHRSZWNvZ25pdGlvblJlc3VsdHMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmNvbXB1dGVIYXNUZXh0
UmVjb2duaXRpb25SZXN1bHRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLUXVpY2tMb29r
UHJldmlld0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLUXVpY2tMb29r
UHJldmlld0NvbnRyb2xsZXIubW06CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0
TWVudVByb3h5TWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVBy
b3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjptZW51SXRlbUlkZW50aWZpZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVudUZyb21JdGVt
cyk6CisKKyAgICAgICAgQWRkIGxvZ2ljIHRvIGVpdGhlciByZW1vdmUgYW5kIHJlaW5zZXJ0IHRo
ZSAiTG9vayBVcCIgY29udGV4dCBtZW51IGFjdGlvbiAoaWYgaW5saW5lIHRleHQgc2VsZWN0aW9u
IGluIGltYWdlcyBpcworICAgICAgICBlbmFibGVkKSwgb3IgdG8gcHJvbW90ZSB0aGUgIlF1aWNr
IExvb2siIGNvbnRleHQgbWVudSBhY3Rpb24gdG8gZWl0aGVyICJTZWxlY3QgVGV4dCBpbiBRdWlj
ayBMb29rIiBvciAiTG9vayBVcAorICAgICAgICBpbiBRdWljayBMb29rIiBpbiB0aGUgY2FzZSB3
aGVyZSBpbmxpbmUgdGV4dCBzZWxlY3Rpb24gaW4gaW1hZ2VzIGlzIGRpc2FibGVkLgorCisgICAg
ICAgIE5vdGUgdGhhdCB3aGVuIGlubGluZSB0ZXh0IHNlbGVjdGlvbiBpbiBpbWFnZXMgaXMgZGlz
YWJsZWQsIHdlJ2xsIGZpcnN0IGNoZWNrIGZvciB2aXN1YWwgc2VhcmNoIHJlc3VsdHMgYmVmb3Jl
CisgICAgICAgIGNoZWNraW5nIGZvciB0ZXh0LiBUaGlzIGlzIGJlY2F1c2UgdmlzdWFsIHNlYXJj
aCByZXN1bHRzIHdpbGwgdGFrZSBwcmVjZWRlbmNlIG92ZXIgdGV4dCBzZWxlY3Rpb24gKGkuZS4s
IHdlJ2xsCisgICAgICAgIHNob3cgIkxvb2sgVXAgaW4gUXVpY2sgTG9vayIgZXZlbiBpZiBib3Ro
IHZpc3VhbCBzZWFyY2ggcmVzdWx0cyBhbmQgdGV4dCBpcyBwcmVzZW50KSwgc28gd2UgY2FuIGF2
b2lkIHBlcmZvcm1pbmcKKyAgICAgICAgdGV4dCBhbmFseXNpcyBpbiB0aGUgY2FzZSB3aGVyZSB3
ZSBhbHJlYWR5IGZvdW5kIHZpc3VhbCBzZWFyY2ggcmVzdWx0cy4KKworICAgICAgICAoV2ViS2l0
OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjp1cGRhdGVRdWlja0xvb2tDb250ZXh0TWVudUl0ZW1U
aXRsZSk6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIG1ldGhvZCB0byBmaW5kIGFuZCB1cGRhdGUg
dGhlIHRpdGxlIG9mIHRoZSBOU01lbnVJdGVtIGNvcnJlc3BvbmRpbmcgdG8KKyAgICAgICAgQ29u
dGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2UuIFNlZSBgZ2V0Q29udGV4dE1lbnVGcm9tSXRl
bXNgIGFib3ZlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dl
YlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVD
b250ZXh0TWVudVF1aWNrTG9va0ltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpoYW5kbGVDb250ZXh0TWVudUxvb2tVcEltYWdlKTogRGVsZXRlZC4KKworICAgICAgICBSZW5h
bWUgdGhpcyB0byBgaGFuZGxlQ29udGV4dE1lbnVRdWlja0xvb2tJbWFnZWAsIGFuZCBoYXZlIGl0
IHRha2UgYW4gYXJndW1lbnQgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgUXVpY2tMb29rCisgICAg
ICAgIHBhbmVsIHNob3VsZCBzdGFydCBvdXQgaW4gVmlzdWFsIExvb2sgVXAgbW9kZS4KKworICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA2LTE5ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFt3YXRjaE9T
XSBBdXRvbWF0aWNhbGx5IGFwcGx5IHN5c3RlbSBtaW5pbXVtIGxheW91dCBtYXJnaW5zIGFzIHNj
cm9sbCB2aWV3IGNvbnRlbnQgaW5zZXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXgg
YTBjZTVhMDA1Y2Y0NjQ4MGI2ZDFkYTA4OTdkMjZmOWY3ZDA5N2UyNi4uZTQyN2E2NWYyNDhiOWMz
NTI0YzY0ZDI1MjJjYTk1YTI4MDMzNTllOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDIxLTA2LTIyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIFtMaXZlIFRleHRdIFttYWNPU10gQWRkIGFuIGludGVybmFs
IG9wdGlvbiB0byBkaXNhYmxlIGlubGluZSB0ZXh0IHNlbGVjdGlvbiBpbiBpbWFnZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI2NQorICAgICAg
ICByZGFyOi8vNzk0NjAxNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW5hbWUgQ29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UgdG8gQ29udGV4
dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2UuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxW
aWV3Lm1tOgorICAgICAgICAodG9UYWcpOgorCiAyMDIxLTA2LTIxICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gW1dlYktpdExlZ2FjeV0g
Tm9uLWFjdGlvbmFibGUgIkxvb2sgVXAiIGFjdGlvbiBhcHBlYXJzIHdoZW4gcmlnaHQgY2xpY2tp
bmcgaW1hZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAppbmRleCAxODM4OWZjNzZlZWE3N2MwYTRhZjAx
NzVjNTNkNWJlODUxNTZkYTJlLi42NmViYTc5N2IzNzU5MDRkYmE1MGI0MWYxNzkzYzJjNjI3NjQ0
ODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNJbnRlcm5hbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9X
ZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKQEAgLTU4NCw2ICs1ODQsMTkgQEAgUHJlZmVyRmFz
dGVyQ2xpY2tPdmVyRG91YmxlVGFwOgogICAgICAgIlBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQ
TEFURk9STShXQVRDSE9TKSI6IHRydWUKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKK1ByZWZlcklu
bGluZVRleHRTZWxlY3Rpb25JbkltYWdlczoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxl
TmFtZTogIklubGluZSBUZXh0IFNlbGVjdGlvbiBpbiBJbWFnZXMiCisgIGh1bWFuUmVhZGFibGVE
ZXNjcmlwdGlvbjogIlByZWZlciBpbmxpbmUgdGV4dCBzZWxlY3Rpb24gaW4gaW1hZ2VzIG92ZXIg
dXNpbmcgdGhlIGNvbnRleHQgbWVudSIKKyAgY29uZGl0aW9uOiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogdHJ1ZQor
ICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IHRydWUKKyAgICBXZWJLaXQ6CisgICAg
ICBkZWZhdWx0OiB0cnVlCisKIFByZWZlclBhZ2VSZW5kZXJpbmdVcGRhdGVzTmVhcjYwRlBTRW5h
YmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIlByZWZlciBQYWdlIFJl
bmRlcmluZyBVcGRhdGVzIG5lYXIgNjBmcHMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
bi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9j
YWxpemFibGUuc3RyaW5ncwppbmRleCA3ZWE0OTdlZTFiY2NmMGZhM2E4OWNhODY1MDdhODk3ODA0
MjAyYTE5Li43MTY2ZjlhZmVhZmYzZjJjODA2ZWVlZjUzNjE4NzRjYjc0OTY2MjcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTU3Nyw2ICs1Nzcs
OSBAQAogLyogTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQgbWVudSBpdGVtICovCiAiTG9v
ayBVcCBpbiBEaWN0aW9uYXJ5IiA9ICJMb29rIFVwIGluIERpY3Rpb25hcnkiOwogCisvKiBUaXRs
ZSBmb3IgUXVpY2sgTG9vayBhY3Rpb24gYnV0dG9uIGZvciBpbWFnZXMgd2l0aCB2aXN1YWwgc2Vh
cmNoIHJlc3VsdHMgKi8KKyJMb29rIFVwIGluIFF1aWNrIExvb2siID0gIkxvb2sgVXAgaW4gUXVp
Y2sgTG9vayI7CisKIC8qIExvb2sgVXAgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBzZWxlY3RlZCB3
b3JkICovCiAiTG9vayBVcCDigJwlQOKAnSIgPSAiTG9vayBVcCDigJwlQOKAnSI7CiAKQEAgLTc1
MSw2ICs3NTQsOSBAQAogLyogRGVzY3JpcHRpb24gb2YgdGhlIFBvc3RTY3JpcHQgdHlwZSBzdXBw
b3J0ZWQgYnkgdGhlIFBERiBwc2V1ZG8gcGx1Zy1pbi4gVmlzaWJsZSBpbiB0aGUgSW5zdGFsbGVk
IFBsdWctaW5zIHBhZ2UgaW4gU2FmYXJpLiAqLwogIlBvc3RTY3JpcHQiID0gIlBvc3RTY3JpcHQi
OwogCisvKiBUaXRsZSBmb3IgUXVpY2sgTG9vayBhY3Rpb24gYnV0dG9uICovCisiUXVpY2sgTG9v
ayIgPSAiUXVpY2sgTG9vayI7CisKIC8qIFVuZG8gYWN0aW9uIG5hbWUgKi8KICJSYWlzZSBCYXNl
bGluZSAoVW5kbyBhY3Rpb24gbmFtZSkiID0gIlJhaXNlIEJhc2VsaW5lIjsKIApAQCAtNzkzLDYg
Kzc5OSw5IEBACiAvKiBTZWFyY2ggd2l0aCBzZWFyY2ggcHJvdmlkZXIgY29udGV4dCBtZW51IGl0
ZW0gd2l0aCBwcm92aWRlciBuYW1lIGluc2VydGVkICovCiAiU2VhcmNoIHdpdGggJUAiID0gIlNl
YXJjaCB3aXRoICVAIjsKIAorLyogVGl0bGUgZm9yIFF1aWNrIExvb2sgYWN0aW9uIGJ1dHRvbiBm
b3IgaW1hZ2VzIHdpdGggdGV4dCAqLworIlNlbGVjdCBUZXh0IGluIFF1aWNrIExvb2siID0gIlNl
bGVjdCBUZXh0IGluIFF1aWNrIExvb2siOworCiAvKiBWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIHJl
cXVpcmVkIGZpbGUgaW5wdXRzIHRoYXQgaGF2ZSBubyB2YWx1ZSAqLwogIlNlbGVjdCBhIGZpbGUi
ID0gIlNlbGVjdCBhIGZpbGUiOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHAKaW5kZXggMGRhYTVlMzZiZGFkNmU2MDMzNjJkZTgxMzkxNDBhYzdkOThm
OWY5Mi4uYzRlNDNlODhkZmQ5Zjg3NTM5NjBlZDkzZTNlMmM0ZmRlMWNlZDA4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAtNTE1LDcgKzUx
NSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3Rl
ZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1U
YWdEaWN0YXRpb25BbHRlcm5hdGl2ZToKICAgICAgICAgZnJhbWUtPmVkaXRvcigpLmFwcGx5RGlj
dGF0aW9uQWx0ZXJuYXRpdmUodGl0bGUpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbnRl
eHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlOgorICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnUXVp
Y2tMb29rSW1hZ2U6CiAgICAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIGhhbmRsZWQgYXQgdGhlIGNs
aWVudCBsYXllci4KICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFr
OwpAQCAtODI0LDkgKzgyNCw2IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpwb3B1bGF0
ZSgpCiAgICAgQ29udGV4dE1lbnVJdGVtIFNlbGVjdEFsbEl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4
dE1lbnVJdGVtVGFnU2VsZWN0QWxsLCBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKSk7CiAg
ICAgQ29udGV4dE1lbnVJdGVtIEluc2VydEVtb2ppSXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVu
dUl0ZW1UYWdJbnNlcnRFbW9qaSwgY29udGV4dE1lbnVJdGVtVGFnSW5zZXJ0RW1vamkoKSk7CiAj
ZW5kaWYKLSNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCi0gICAgQ29udGV4dE1lbnVJdGVtIExv
b2tVcEltYWdlSXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSwg
Y29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UoKSk7Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV0lOKQogICAgIENvbnRleHRNZW51SXRlbSBTaGFyZU1lbnVJdGVt
OwpAQCAtODUxLDYgKzg0OCwxMiBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6cG9wdWxh
dGUoKQogICAgICAgICByZXR1cm47CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykKKyAgICBib29sIHNob3VsZEFwcGVuZFF1aWNrTG9va0ltYWdlSXRlbSA9IGZhbHNlOworICAg
IGF1dG8gcXVpY2tMb29rSXRlbVRpdGxlID0gZnJhbWUtPnNldHRpbmdzKCkucHJlZmVySW5saW5l
VGV4dFNlbGVjdGlvbkluSW1hZ2VzKCkgPyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSgp
IDogY29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2UoKTsKKyAgICBDb250ZXh0TWVudUl0
ZW0gUXVpY2tMb29rSW1hZ2VJdGVtIHsgQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnUXVp
Y2tMb29rSW1hZ2UsIHF1aWNrTG9va0l0ZW1UaXRsZSB9OworI2VuZGlmCisKICAgICBhdXRvIGFk
ZFNlbGVjdGVkVGV4dEFjdGlvbnNJZk5lZWRlZCA9IFsmXSAoY29uc3QgU3RyaW5nJiBzZWxlY3Rl
ZFRleHQpIHsKICAgICAgICAgaWYgKHNlbGVjdGVkVGV4dC5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICByZXR1cm47CkBAIC05MDAsNyArOTAzLDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6
OnBvcHVsYXRlKCkKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKICAgICAgICAgICAgICAg
ICBpZiAobV9jbGllbnQuc3VwcG9ydHNMb29rVXBJbkltYWdlcygpICYmIGltYWdlICYmICFpbWFn
ZS0+aXNBbmltYXRlZCgpKQotICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKExvb2tVcElt
YWdlSXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIHNob3Vs
ZEFwcGVuZFF1aWNrTG9va0ltYWdlSXRlbSA9IHRydWU7CiAjZW5kaWYKICAgICAgICAgICAgIH0K
ICNpZiBQTEFURk9STShHVEspCkBAIC0xMTY0LDYgKzExNjcsMTggQEAgdm9pZCBDb250ZXh0TWVu
dUNvbnRyb2xsZXI6OnBvcHVsYXRlKCkKICAgICAgICAgICAgIGFwcGVuZEl0ZW0oU2hhcmVNZW51
SXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CiAgICAgICAgIH0KICAgICB9CisKKyNpZiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCisgICAgaWYgKHNob3VsZEFwcGVuZFF1aWNrTG9va0ltYWdlSXRl
bSkgeworICAgICAgICBpZiAoIWZyYW1lLT5zZXR0aW5ncygpLnByZWZlcklubGluZVRleHRTZWxl
Y3Rpb25JbkltYWdlcygpKSB7CisgICAgICAgICAgICAvLyBJbiB0aGUgY2FzZSB3aGVyZSBpbmxp
bmUgdGV4dCBzZWxlY3Rpb24gaXMgZW5hYmxlZCwgdGhlIExvb2sgVXAgaXRlbSBpcyBvbmx5IGFk
ZGVkIGlmCisgICAgICAgICAgICAvLyB3ZSBkaXNjb3ZlciB2aXN1YWwgbG9vayB1cCByZXN1bHRz
IGFmdGVyIGltYWdlIGFuYWx5c2lzLiBJbiB0aGF0IHNjZW5hcmlvLCBhIHNlcGFyYXRvcgorICAg
ICAgICAgICAgLy8gaXMgb25seSBhZGRlZCBiZWZvcmUgdGhlIExvb2sgVXAgaXRlbSBvbmNlIHdl
J3JlIGNlcnRhaW4gdGhhdCB3ZSB3YW50IHRvIHNob3cgaXQuCisgICAgICAgICAgICBhcHBlbmRJ
dGVtKCpzZXBhcmF0b3JJdGVtKCksIG1fY29udGV4dE1lbnUuZ2V0KCkpOworICAgICAgICB9Cisg
ICAgICAgIGFwcGVuZEl0ZW0oUXVpY2tMb29rSW1hZ2VJdGVtLCBtX2NvbnRleHRNZW51LmdldCgp
KTsKKyAgICB9CisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogfQogCiB2b2lkIENv
bnRleHRNZW51Q29udHJvbGxlcjo6YWRkSW5zcGVjdEVsZW1lbnRJdGVtKCkKQEAgLTE0ODksNyAr
MTUwNCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjaGVja09yRW5hYmxlSWZOZWVk
ZWQoQ29udGV4dE1lbnVJdGVtJiBpdGVtKSBjb25zdAogICAgICAgICAgICAgc2hvdWxkRW5hYmxl
ID0gbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5tZWRpYUhhc0F1ZGlvKCk7CiAgICAgICAgICAg
ICBzaG91bGRDaGVjayA9IHNob3VsZEVuYWJsZSAmJiAgbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQo
KS5tZWRpYU11dGVkKCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDb250ZXh0
TWVudUl0ZW1UYWdMb29rVXBJbWFnZToKKyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdR
dWlja0xvb2tJbWFnZToKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6
CiAgICAgICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKaW5kZXggZjViMWY5MTgxODQwNWQ5ZmRmZTUwM2MzOWY5NzUyZmFjYTgzNTllMy4uZGY5YzM5
NjJjNjE4OTI3MGVjOGQxODliMmI0YmM3NDcxNWU4NjdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcApAQCAtMjUzNywxMCArMjUzNywxMiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6
dXBkYXRlTW91c2VFdmVudFRhcmdldE5vZGUoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBO
b2RlKgogICAgIG1fZWxlbWVudFVuZGVyTW91c2UgPSB0YXJnZXRFbGVtZW50OwogCiAjaWYgRU5B
QkxFKElNQUdFX0FOQUxZU0lTKQotICAgIGlmICghbV9lbGVtZW50VW5kZXJNb3VzZSB8fCAhaXM8
UmVuZGVySW1hZ2U+KG1fZWxlbWVudFVuZGVyTW91c2UtPnJlbmRlcmVyKCkpKQotICAgICAgICBt
X3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXIuc3RvcCgpOwotICAgIGVsc2UgaWYgKCFwbGF0Zm9y
bU1vdXNlRXZlbnQubW92ZW1lbnREZWx0YSgpLmlzWmVybygpKQotICAgICAgICBtX3RleHRSZWNv
Z25pdGlvbkhvdmVyVGltZXIucmVzdGFydCgpOworICAgIGlmIChtX2ZyYW1lLnNldHRpbmdzKCku
cHJlZmVySW5saW5lVGV4dFNlbGVjdGlvbkluSW1hZ2VzKCkpIHsKKyAgICAgICAgaWYgKCFtX2Vs
ZW1lbnRVbmRlck1vdXNlIHx8ICFpczxSZW5kZXJJbWFnZT4obV9lbGVtZW50VW5kZXJNb3VzZS0+
cmVuZGVyZXIoKSkpCisgICAgICAgICAgICBtX3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXIuc3Rv
cCgpOworICAgICAgICBlbHNlIGlmICghcGxhdGZvcm1Nb3VzZUV2ZW50Lm1vdmVtZW50RGVsdGEo
KS5pc1plcm8oKSkKKyAgICAgICAgICAgIG1fdGV4dFJlY29nbml0aW9uSG92ZXJUaW1lci5yZXN0
YXJ0KCk7CisgICAgfQogI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogICAgIGlm
IChhdXRvKiBwYWdlID0gbV9mcmFtZS5wYWdlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q29udGV4dE1lbnVJdGVtLmNwcAppbmRleCAzNTVhOGY0ZGVlMGIwODRkMjAzN2FjM2Q1MzlmODUw
NjkwNmE3MDdjLi41ZDhmN2I1MjBlYjM3ZDE0NGFmNjY0ZjAzZjY3ZjkzNTlhZTc4OTQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHAKQEAgLTI1OCw3ICsy
NTgsNyBAQCBib29sIGlzVmFsaWRDb250ZXh0TWVudUFjdGlvbihDb250ZXh0TWVudUFjdGlvbiBh
Y3Rpb24pCiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlVmlkZW9GdWxsc2NyZWVuOgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRN
ZW51SXRlbVRhZ1NoYXJlTWVudToKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0VuaGFuY2VkRnVsbHNjcmVlbjoKLSAgICBjYXNlIENvbnRl
eHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZToKKyAgICBjYXNlIENv
bnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZToKICAgICBj
YXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6CiAgICAg
Y2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZzoKICAg
ICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAppbmRleCAwNTFjN2JlYmE3
YjI3NTJkMDkwMGQ5Yzg4OTg1ZTljNzdjMzg2OWRkLi42ZTVmNjJlYjY4N2I2NjUyNGIwNTNmODY1
Y2M2NDE4MWE0NjY2YmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250
ZXh0TWVudUl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0
ZW0uaApAQCAtMTQ3LDcgKzE0Nyw3IEBAIGVudW0gQ29udGV4dE1lbnVBY3Rpb24gewogICAgIENv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5oYW5jZWRGdWxsc2NyZWVuLAogICAgIENvbnRl
eHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdodFRvQ3VycmVudFF1aWNrTm90ZSwKICAgICBDb250ZXh0
TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb05ld1F1aWNrTm90ZSwKLSAgICBDb250ZXh0TWVudUl0
ZW1UYWdMb29rVXBJbWFnZSwKKyAgICBDb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZSwK
ICAgICBDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGUsCiAgICAgQ29udGV4dE1lbnVJdGVtQmFz
ZUN1c3RvbVRhZyA9IDUwMDAsCiAgICAgQ29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRhZyA9IDU5
OTksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKaW5kZXggY2Jm
MGNiY2EyYmI3NWUwZTU4MWE2NjY2NzAzZWI5ZmZjOTkwZWJlMC4uZDg1NmEwZDcwYmM5MGVkNGYw
YTY0MTAzZDI3ODE2MmI0ZDIyMmIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaApAQCAtMzY4LDcgKzM2OCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlKCk7Ci0jZW5kaWYKKyAgICBXRUJDT1JFX0VYUE9S
VCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2UoKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2VGb3JUZXh0U2Vs
ZWN0aW9uKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1F1
aWNrTG9va0ltYWdlRm9yVmlzdWFsU2VhcmNoKCk7CisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FO
QUxZU0lTKQogCiAjaWYgSEFWRShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykKICAgICBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlKGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJpbmcp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3Ry
aW5nc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3Ry
aW5nc0NvY29hLm1tCmluZGV4IDhiOWYxNmQyMTc2OTI1YWMxNDUxNjBjNGZkY2RlY2Q3ZjNlODE0
YWIuLjFlOGZjZGE3NWE4MGU1ZjRkNTgyNDA1ZGQ1OThiMjBjYWQ2ZjgzMGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2Eu
bW0KQEAgLTMxOSw2ICszMTksMjEgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcElt
YWdlKCkKICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTG9vayBVcCIsICJUaXRsZSBmb3IgTG9v
ayBVcCBhY3Rpb24gYnV0dG9uIik7CiB9CiAKLSNlbmRpZgorU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1F1aWNrTG9va0ltYWdlKCkKK3sKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUXVpY2sg
TG9vayIsICJUaXRsZSBmb3IgUXVpY2sgTG9vayBhY3Rpb24gYnV0dG9uIik7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZUZvclRleHRTZWxlY3Rpb24oKQorewor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTZWxlY3QgVGV4dCBpbiBRdWljayBMb29rIiwgIlRp
dGxlIGZvciBRdWljayBMb29rIGFjdGlvbiBidXR0b24gZm9yIGltYWdlcyB3aXRoIHRleHQiKTsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlRm9yVmlzdWFsU2Vh
cmNoKCkKK3sKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTG9vayBVcCBpbiBRdWljayBMb29r
IiwgIlRpdGxlIGZvciBRdWljayBMb29rIGFjdGlvbiBidXR0b24gZm9yIGltYWdlcyB3aXRoIHZp
c3VhbCBzZWFyY2ggcmVzdWx0cyIpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9jL1dLU2hhcmVkQVBJQ2FzdC5oCmluZGV4IDBiZWYwZjNkNjFkMmVmYjRlZjc1ODYyNjRmY2Iz
NGUyYmY5MzMxNDIuLjdjM2YxY2VjZjBmYzAxMmYyNzY5YTYyZTlhZDkyNGNhYWRhOWUzODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC01NDMs
NyArNTQzLDcgQEAgaW5saW5lIFdLQ29udGV4dE1lbnVJdGVtVGFnIHRvQVBJKFdlYkNvcmU6OkNv
bnRleHRNZW51QWN0aW9uIGFjdGlvbikKICNlbmRpZgogICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4
dE1lbnVJdGVtVGFnU2hhcmVNZW51OgogICAgICAgICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVt
VGFnU2hhcmVNZW51OwotICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnTG9va1Vw
SW1hZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFn
ZToKICAgICAgICAgcmV0dXJuIGtXS0NvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOwogICAg
IGNhc2UgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlOgogICAgICAgICByZXR1
cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlOwpAQCAtNzQ2LDcgKzc0Niw3IEBAIGlu
bGluZSBXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiB0b0ltcGwoV0tDb250ZXh0TWVudUl0ZW1U
YWcgdGFnKQogICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVN
ZW51OwogI2VuZGlmCiAgICAgY2FzZSBrV0tDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToK
LSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlOwor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2U7
CiAgICAgY2FzZSBrV0tDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6CiAgICAgICAgIHJldHVy
biBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU7CiAgICAgY2FzZSBrV0tDb250
ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luVGhpc1dpbmRvdzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1F1aWNrTG9va1ByZXZpZXdBY3Rpdml0eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUXVpY2tMb29rUHJldmlld0FjdGl2aXR5LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTBkMzY1NjNmMWE0OWE4NWE1ODczOTZiYjRmMzE5MWE1ZTYzZjYwZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1F1aWNrTG9va1ByZXZpZXdB
Y3Rpdml0eS5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBjbGFzcyBR
dWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgOiB1aW50OF90IHsKKyAgICBOb25lLAorICAgIFZpc3Vh
bFNlYXJjaCwKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZP
Uk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApp
bmRleCBiYmM2ODNhYzA3MTUxMzhhNjAxZjhkODU3OTZiOTAxZmRjMTcwYjJlLi40YzRhZGZjYzZk
MGNhNjM5ODQ0ZmNmNjRkNDY0NTQyYjFlOWQ0ZWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTU5OSw2ICs1OTksNyBAQCBwdWJsaWM6CiAjaWYg
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihj
b25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VE
YXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3Vs
dCYmKT4mJik7CiAgICAgdm9pZCBjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhjb25zdCBV
UkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIGNvbXB1dGVIYXNUZXh0UmVjb2duaXRpb25S
ZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlmCiAKICAgICBib29sIGFj
Y2VwdHNQcmV2aWV3UGFuZWxDb250cm9sKFFMUHJldmlld1BhbmVsICopOwpAQCAtNzQ5LDYgKzc1
MCw5IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgVktJbWFn
ZUFuYWx5emVyICplbnN1cmVJbWFnZUFuYWx5emVyKCk7CisKKyAgICBlbnVtIGNsYXNzIEltYWdl
QW5hbHlzaXNUeXBlIDogdWludDhfdCB7IFRleHQsIFZpc3VhbFNlYXJjaCB9OworICAgIHZvaWQg
Y29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJl
YWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIEltYWdlQW5hbHlzaXNUeXBlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKICNlbmRpZgogCiAgICAgV2Vha09iakNQdHI8TlNWaWV3PFdl
YlZpZXdJbXBsRGVsZWdhdGU+PiBtX3ZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDdjMzczZWQ3MTk2Njg5Mzg1OWJlMTZhZTgzNDA5NzM0
ZTk1YjAwNTAuLjAwYWNkNjUwMzhmY2RjODI4ODkwY2ZkYjg1NTA1ZDUxMzI0ZDk2OGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0yMzAsNyAr
MjMwLDE3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3Qg
VVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0CiAgICAgfSkuZ2V0KCldOwogfQogCit2
b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRlSGFzVGV4dFJlY29nbml0aW9uUmVzdWx0cyhjb25zdCBV
UkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24pCit7CisgICAgY29tcHV0ZUhhc0ltYWdlQW5h
bHlzaXNSZXN1bHRzKGltYWdlVVJMLCBpbWFnZUJpdG1hcCwgSW1hZ2VBbmFseXNpc1R5cGU6OlRl
eHQsIFdURk1vdmUoY29tcGxldGlvbikpOworfQorCiB2b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRl
SGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRt
YXAmIGltYWdlQml0bWFwLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b24pCit7CisgICAgY29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKGltYWdlVVJMLCBpbWFn
ZUJpdG1hcCwgSW1hZ2VBbmFseXNpc1R5cGU6OlZpc3VhbFNlYXJjaCwgV1RGTW92ZShjb21wbGV0
aW9uKSk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVz
dWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBJ
bWFnZUFuYWx5c2lzVHlwZSB0eXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb24pCiB7CiAgICAgaWYgKCFpc0xpdmVUZXh0QXZhaWxhYmxlQW5kRW5hYmxlZCgpKSB7
CiAgICAgICAgIGNvbXBsZXRpb24oZmFsc2UpOwpAQCAtMjM4LDEyICsyNDgsMTMgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiBpbWFn
ZVVSTCwgU2hhcmVhYmxlQmkKICAgICB9CiAKICAgICBhdXRvIGNnSW1hZ2UgPSBpbWFnZUJpdG1h
cC5tYWtlQ0dJbWFnZSgpOwotICAgIGF1dG8gcmVxdWVzdCA9IGNyZWF0ZUltYWdlQW5hbHlzaXNS
ZXF1ZXN0KGNnSW1hZ2UuZ2V0KCksIGltYWdlVVJMLCBbTlNVUkwgX3dlYl9VUkxXaXRoV1RGU3Ry
aW5nOm1fcGFnZS0+Y3VycmVudFVSTCgpXSwgVktBbmFseXNpc1R5cGVWaXN1YWxTZWFyY2gpOwor
ICAgIGF1dG8gYW5hbHlzaXNUeXBlID0gdHlwZSA9PSBJbWFnZUFuYWx5c2lzVHlwZTo6VmlzdWFs
U2VhcmNoID8gVktBbmFseXNpc1R5cGVWaXN1YWxTZWFyY2ggOiBWS0FuYWx5c2lzVHlwZVRleHQ7
CisgICAgYXV0byByZXF1ZXN0ID0gY3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3QoY2dJbWFnZS5n
ZXQoKSwgaW1hZ2VVUkwsIFtOU1VSTCBfd2ViX1VSTFdpdGhXVEZTdHJpbmc6bV9wYWdlLT5jdXJy
ZW50VVJMKCldLCBhbmFseXNpc1R5cGUpOwogICAgIGF1dG8gc3RhcnRUaW1lID0gTW9ub3Rvbmlj
VGltZTo6bm93KCk7Ci0gICAgW2Vuc3VyZUltYWdlQW5hbHl6ZXIoKSBwcm9jZXNzUmVxdWVzdDpy
ZXF1ZXN0LmdldCgpIHByb2dyZXNzSGFuZGxlcjpuaWwgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJs
b2NrUHRyKFtjb21wbGV0aW9uID0gV1RGTW92ZShjb21wbGV0aW9uKSwgc3RhcnRUaW1lXSAoVktJ
bWFnZUFuYWx5c2lzICphbmFseXNpcywgTlNFcnJvciAqKSBtdXRhYmxlIHsKLSAgICAgICAgQk9P
TCByZXN1bHQgPSBbYW5hbHlzaXMgaGFzUmVzdWx0c0ZvckFuYWx5c2lzVHlwZXM6VktBbmFseXNp
c1R5cGVWaXN1YWxTZWFyY2hdOwotICAgICAgICBDRlJ1bkxvb3BQZXJmb3JtQmxvY2soQ0ZSdW5M
b29wR2V0TWFpbigpLCAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpTlNFdmVudFRyYWNraW5nUnVuTG9v
cE1vZGUsIG1ha2VCbG9ja1B0cihbY29tcGxldGlvbiA9IFdURk1vdmUoY29tcGxldGlvbiksIHJl
c3VsdCwgc3RhcnRUaW1lXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HKElt
YWdlcywgIkltYWdlIGFuYWx5c2lzIGNvbXBsZXRlZCBpbiAlLjBmIG1zIChmb3VuZCB2aXN1YWwg
c2VhcmNoIHJlc3VsdHM/ICVkKSIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0VGltZSku
bWlsbGlzZWNvbmRzKCksIHJlc3VsdCk7CisgICAgW2Vuc3VyZUltYWdlQW5hbHl6ZXIoKSBwcm9j
ZXNzUmVxdWVzdDpyZXF1ZXN0LmdldCgpIHByb2dyZXNzSGFuZGxlcjpuaWwgY29tcGxldGlvbkhh
bmRsZXI6bWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uID0gV1RGTW92ZShjb21wbGV0aW9uKSwgc3Rh
cnRUaW1lLCBhbmFseXNpc1R5cGVdIChWS0ltYWdlQW5hbHlzaXMgKmFuYWx5c2lzLCBOU0Vycm9y
ICopIG11dGFibGUgeworICAgICAgICBCT09MIHJlc3VsdCA9IFthbmFseXNpcyBoYXNSZXN1bHRz
Rm9yQW5hbHlzaXNUeXBlczphbmFseXNpc1R5cGVdOworICAgICAgICBDRlJ1bkxvb3BQZXJmb3Jt
QmxvY2soQ0ZSdW5Mb29wR2V0TWFpbigpLCAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpTlNFdmVudFRy
YWNraW5nUnVuTG9vcE1vZGUsIG1ha2VCbG9ja1B0cihbY29tcGxldGlvbiA9IFdURk1vdmUoY29t
cGxldGlvbiksIHJlc3VsdCwgYW5hbHlzaXNUeXBlLCBzdGFydFRpbWVdICgpIG11dGFibGUgewor
ICAgICAgICAgICAgUkVMRUFTRV9MT0coSW1hZ2VzLCAiSW1hZ2UgYW5hbHlzaXMgY29tcGxldGVk
IGluICUuMGYgbXMgKGZvdW5kICVzPyAlZCkiLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFy
dFRpbWUpLm1pbGxpc2Vjb25kcygpLCBhbmFseXNpc1R5cGUgPT0gVktBbmFseXNpc1R5cGVWaXN1
YWxTZWFyY2ggPyAidmlzdWFsIHNlYXJjaCByZXN1bHRzIiA6ICJ0ZXh0IiwgcmVzdWx0KTsKICAg
ICAgICAgICAgIGNvbXBsZXRpb24ocmVzdWx0KTsKICAgICAgICAgfSkuZ2V0KCkpOwogICAgICAg
ICBDRlJ1bkxvb3BXYWtlVXAoQ0ZSdW5Mb29wR2V0TWFpbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaAppbmRleCA4NzcwYWQ0NjM4MTZiZmVmNGM0YTk5Mzc0NjUzOWUwMmQyMWNk
NTcyLi5kOTVjMGFhZDEzZWJiOTk5NWE0Yjk2ZDk5MmE4NTAxOGFhYTBkZDc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC01NDEsNiArNTQxLDcgQEAgcHVibGljOgogI2lm
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFRleHRSZWNv
Z25pdGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRs
ZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25p
dGlvblJlc3VsdCYmKT4mJiBjb21wbGV0aW9uKSB7IGNvbXBsZXRpb24oeyB9KTsgfQogICAgIHZp
cnR1YWwgdm9pZCBjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmLCBTaGFy
ZWFibGVCaXRtYXAmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24p
IHsgY29tcGxldGlvbihmYWxzZSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUhhc1RleHRS
ZWNvZ25pdGlvblJlc3VsdHMoY29uc3QgVVJMJiwgU2hhcmVhYmxlQml0bWFwJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKSB7IGNvbXBsZXRpb24oZmFsc2UpOyB9
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBV
U0UoVUlDT05URVhUTUVOVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvbnRleHRNZW51UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRN
ZW51UHJveHkuaAppbmRleCAxYjhmY2M4NDY2NGYzMDlhZmU1ZjRlYWNkMjhiNTQxM2MxYjFiOTA3
Li4zMDU3ODRhNDc2MTQ4MTQ4OTdmMDIyZWM2ZDI5NmE1NjA2NjUxMjhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5oCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRl
eHREYXRhLmgiCisjaW5jbHVkZSAiUXVpY2tMb29rUHJldmlld0FjdGl2aXR5LmgiCiAjaW5jbHVk
ZSAiVXNlckRhdGEuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkuaCIK
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNTEsNiArNTIsNyBAQCBwdWJsaWM6CiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdmlydHVhbCBOU01lbnUgKnBsYXRmb3JtTWVudSgpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIE5TQXJyYXkgKnBsYXRmb3JtRGF0YSgpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSBxdWlja0xvb2tQcmV2aWV3QWN0
aXZpdHkoKSBjb25zdCB7IHJldHVybiBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHk6Ok5vbmU7IH07
CiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGFmZTJiMDg2YjNiOThiMzQxNmIyZTkxNjdl
MjZhNTI3NTFjMTI0ZjYuLmU5NmRmZTc2ZDM5NGFiZWYyNTYyNjk0NzhkODkxZTZiZWYwMzgxZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODUsNiArODUs
NyBAQAogI2luY2x1ZGUgIlByaW50SW5mby5oIgogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIu
aCIKICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIlF1aWNrTG9v
a1ByZXZpZXdBY3Rpdml0eS5oIgogI2luY2x1ZGUgIlNhZmVCcm93c2luZ1dhcm5pbmcuaCIKICNp
bmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oIgpAQCAtNjkwOCw5ICs2OTA5LDEwIEBAIHZvaWQg
V2ViUGFnZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChjb25zdCBXZWJDb250ZXh0TWVu
dUl0ZW1EYXRhJiBpdGVtKQogICAgICAgICArK21fcGVuZGluZ0xlYXJuT3JJZ25vcmVXb3JkTWVz
c2FnZUNvdW50OwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
TG9va1VwSW1hZ2U6CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZToK
ICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCi0gICAgICAgIGhhbmRsZUNvbnRleHRNZW51TG9v
a1VwSW1hZ2UoKTsKKyAgICAgICAgaWYgKG1fYWN0aXZlQ29udGV4dE1lbnUpCisgICAgICAgICAg
ICBoYW5kbGVDb250ZXh0TWVudVF1aWNrTG9va0ltYWdlKG1fYWN0aXZlQ29udGV4dE1lbnUtPnF1
aWNrTG9va1ByZXZpZXdBY3Rpdml0eSgpKTsKICNlbmRpZgogICAgICAgICByZXR1cm47CiAKQEAg
LTg1MTMsNiArODUxNSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tcHV0ZUhhc1Zpc3VhbFNl
YXJjaFJlc3VsdHMoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQgogICAgIHBhZ2VDbGll
bnQoKS5jb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAs
IFdURk1vdmUoY29tcGxldGlvbikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29tcHV0ZUhh
c1RleHRSZWNvZ25pdGlvblJlc3VsdHMoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0
bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0
aW9uKQoreworICAgIHBhZ2VDbGllbnQoKS5jb21wdXRlSGFzVGV4dFJlY29nbml0aW9uUmVzdWx0
cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAsIFdURk1vdmUoY29tcGxldGlvbikpOworfQorCiB2b2lk
IFdlYlBhZ2VQcm94eTo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChUZXh0UmVjb2du
aXRpb25SZXN1bHQmJiByZXN1bHRzLCBjb25zdCBFbGVtZW50Q29udGV4dCYgY29udGV4dCwgY29u
c3QgRmxvYXRQb2ludCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVGV4dFJlY29n
bml0aW9uVXBkYXRlUmVzdWx0KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWhh
c1J1bm5pbmdQcm9jZXNzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggNjc1OGFmODI5ZjFlODg1MjA1ZTFlYjRjNDE4YmQyMmE2ZjM0OWUzYS4uNjQ5ZTc1NzQ2
OTcxYWY2MTlkZTUzZDM0NDNkNjRlOTQzNmE1YWRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTE2NjAsNiArMTY2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
cXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+JiYpOwogICAgIHZvaWQgdXBkYXRlV2l0aFRleHRS
ZWNvZ25pdGlvblJlc3VsdChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJiwgY29uc3Qg
V2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2Nh
dGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQp
PiYmKTsKICAgICB2b2lkIGNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0IFVSTCYg
aW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgY29tcHV0ZUhhc1RleHRSZWNvZ25pdGlvblJlc3Vs
dHMoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJ
QV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKQEAgLTE5MDYs
NiArMTkwNyw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpCiAgICAgdm9pZCBoYW5kbGVDb250ZXh0TWVudUxvb2tVcEltYWdl
KCk7CisgICAgdm9pZCBoYW5kbGVDb250ZXh0TWVudVF1aWNrTG9va0ltYWdlKFF1aWNrTG9va1By
ZXZpZXdBY3Rpdml0eSk7CiAjZW5kaWYKIAogI2lmIFVTRShBUFBLSVQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IGRkN2I0OTdhYTY0
YmY3YTIzZWVmMTg0ODZlYmNiNDQzYTM1ODcxZTQuLjAyOTUzNWRkOWM0OTcwMTQ5NzNhZmIzN2Fk
ZDkxZWYyNTgyZmQ1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbE1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5oCkBAIC0xMzMsNiArMTMzLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCiAgICAgdm9pZCByZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVS
TCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYm
KSBvdmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0
IFVSTCYsIFNoYXJlYWJsZUJpdG1hcCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
IG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZUhhc1RleHRSZWNvZ25pdGlvblJlc3VsdHMoY29u
c3QgVVJMJiwgU2hhcmVhYmxlQml0bWFwJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3Jl
YXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KaW5kZXggYzJkZThkNmVh
N2MwYmNhZmEwOTE0YzFmNTJhZTRkNjQ1ZGY4NjlkYy4uN2M5ZjUyZDZlZGUwYzU5MWJkOGU2MWYw
ZGI5ZjBmYTcwYjc5YjI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbE1hYy5tbQpAQCAtNDkwLDYgKzQ5MCwxMSBAQCB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBT
aGFyZWFibAogICAgIG1faW1wbC0+Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoaW1hZ2VV
UkwsIGltYWdlQml0bWFwLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKIH0KIAordm9pZCBQYWdlQ2xp
ZW50SW1wbDo6Y29tcHV0ZUhhc1RleHRSZWNvZ25pdGlvblJlc3VsdHMoY29uc3QgVVJMJiBpbWFn
ZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uKQoreworICAgIG1faW1wbC0+Y29tcHV0ZUhhc1RleHRSZWNv
Z25pdGlvblJlc3VsdHMoaW1hZ2VVUkwsIGltYWdlQml0bWFwLCBXVEZNb3ZlKGNvbXBsZXRpb24p
KTsKK30KKwogI2VuZGlmCiAKIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFnZUNsaWVudElt
cGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVy
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tRdWlja0xvb2tQcmV2aWV3Q29udHJv
bGxlci5oCmluZGV4IDAyYzdkMmYxZDRiOTNkYTQwNjRiMDg2OTJjYzNlM2JhNGQ0Y2QxM2UuLjFl
MjdjOGQzYmNlOWUxYzkxZjA1ZTUzMGVlNTIwYzgwNDE0NzczNDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUXVpY2tMb29rUHJldmlld0NvbnRyb2xs
ZXIuaApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBh
Z2VQcm94eTsKLWVudW0gY2xhc3MgUXVpY2tMb29rUHJldmlld0FjdGl2aXR5IDogdWludDhfdCB7
IE5vbmUsIFZpc3VhbFNlYXJjaCB9OworZW51bSBjbGFzcyBRdWlja0xvb2tQcmV2aWV3QWN0aXZp
dHkgOiB1aW50OF90OwogfQogCiBAY2xhc3MgUUxQcmV2aWV3UGFuZWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tRdWlja0xvb2tQcmV2aWV3Q29udHJvbGxlci5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdDb250cm9s
bGVyLm1tCmluZGV4IDUxOTJiMTRlZjEzM2I5NDY2MDFhNzdmYzQyNWNhYTQxZDY4YjE3YzAuLjhm
NWM4MmUwNjRjMGViZjFjODAyM2FlMGI5YWZhMGJiNjkzZmNhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdDb250cm9s
bGVyLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBIQVZFKFFVSUNLTE9PS19QUkVWSUVXX0lU
RU1fREFUQV9QUk9WSURFUikKIAorI2ltcG9ydCAiUXVpY2tMb29rUHJldmlld0FjdGl2aXR5Lmgi
CiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNp
bXBvcnQgPHBhbC9tYWMvUXVpY2tMb29rVUlTb2Z0TGluay5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgKaW5kZXggNTYwNjFh
ZmMzZDAzZWIxZDNlZDk5YTM5ZGFjZDZjY2FkMzYxMDliZS4uMzdmY2Y1Mjk2YjE5OGIwM2E3MTAy
OTZmMDk1YjBiNDExY2Y5NTE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oCkBAIC02MCw2ICs2MCw4IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgV2ViQ29udGV4dE1lbnVQcm94eU1hYyhOU1ZpZXcgKiwgV2ViUGFnZVBy
b3h5JiwgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYmLCBjb25zdCBVc2VyRGF0YSYpOwogCisgICAg
UXVpY2tMb29rUHJldmlld0FjdGl2aXR5IHF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fcXVpY2tMb29rUHJldmlld0FjdGl2aXR5OyB9CisKICAgICB2b2lk
IHNob3coKSBvdmVycmlkZTsKICAgICB2b2lkIHNob3dDb250ZXh0TWVudVdpdGhJdGVtcyhWZWN0
b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgdXNlQ29u
dGV4dE1lbnVJdGVtcyhWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiYpIG92ZXJyaWRl
OwpAQCAtNzMsOSArNzUsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldHVwU2VydmljZXNNZW51
KCk7CiAjZW5kaWYKIAorICAgIHZvaWQgdXBkYXRlUXVpY2tMb29rQ29udGV4dE1lbnVJdGVtVGl0
bGUoY29uc3QgU3RyaW5nJik7CisKICAgICBOU01lbnUgKnBsYXRmb3JtTWVudSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIE5TQXJyYXkgKnBsYXRmb3JtRGF0YSgpIGNvbnN0IG92ZXJyaWRlOwogCisg
ICAgUXVpY2tMb29rUHJldmlld0FjdGl2aXR5IG1fcXVpY2tMb29rUHJldmlld0FjdGl2aXR5IHsg
UXVpY2tMb29rUHJldmlld0FjdGl2aXR5OjpOb25lIH07CiAgICAgUmV0YWluUHRyPE5TTWVudT4g
bV9tZW51OwogICAgIFJldGFpblB0cjxXS01lbnVEZWxlZ2F0ZT4gbV9tZW51RGVsZWdhdGU7CiAg
ICAgV2Vha09iakNQdHI8TlNWaWV3PiBtX3dlYlZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCmluZGV4IDY1NWIwYjgz
OWQzNTM2YmEzYjc1NGU0MTM4YTg3NzA1ZDYxMGRhZTguLjgyZmNhYjMxMDA2OTY2ZDkyYTRiM2Q5
YmYxNjBjODk0N2E1MjhhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCkBAIC0zOCw2ICszOCw3IEBACiAjaW1wb3J0
ICJXZWJDb250ZXh0TWVudUl0ZW0uaCIKICNpbXBvcnQgIldlYkNvbnRleHRNZW51SXRlbURhdGEu
aCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgorI2ltcG9ydCAiV2ViUHJlZmVyZW5jZXMuaCIK
ICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0lu
dFJlY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgpAQCAtNDM2LDcg
KzQzNyw3IEBAIHN0YXRpYyBOU1N0cmluZyAqbWVudUl0ZW1JZGVudGlmaWVyKGNvbnN0IFdlYkNv
cmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z1JlbG9hZDoKICAgICAgICAgcmV0dXJuIF9XS01lbnVJdGVtSWRlbnRpZmllclJlbG9hZDsKIAot
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2U6CisgICAgY2FzZSBDb250ZXh0
TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZToKICAgICAgICAgcmV0dXJuIF9XS01lbnVJdGVtSWRl
bnRpZmllclJldmVhbEltYWdlOwogCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hX
ZWI6CkBAIC01MDcsMTcgKzUwOCwyMiBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6Omdl
dENvbnRleHRNZW51RnJvbUl0ZW1zKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudQogICAgICAg
ICB9KTsKICAgICB9CiAKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvbnRleHRNZW51SXRlbURhdGE+
IGxvb2tVcEltYWdlSXRlbTsKKyAgICBib29sIHNob3VsZFVwZGF0ZVF1aWNrTG9va0l0ZW1UaXRs
ZSA9IGZhbHNlOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4gcXVp
Y2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQ7CiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMp
Ci0gICAgZmlsdGVyZWRJdGVtcy5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmXSAoYXV0byYgaXRlbSkg
ewotICAgICAgICBpZiAoaXRlbS5hY3Rpb24oKSAhPSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1U
YWdMb29rVXBJbWFnZSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBsb29r
VXBJbWFnZUl0ZW0gPSB7IGl0ZW0gfTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgYXV0byBp
bmRleE9mUXVpY2tMb29rSXRlbSA9IGZpbHRlcmVkSXRlbXMuZmluZE1hdGNoaW5nKFsmXSAoYXV0
byYgaXRlbSkgeworICAgICAgICByZXR1cm4gaXRlbS5hY3Rpb24oKSA9PSBXZWJDb3JlOjpDb250
ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZTsKICAgICB9KTsKLSNlbmRpZgorCisgICAgaWYg
KGluZGV4T2ZRdWlja0xvb2tJdGVtICE9IG5vdEZvdW5kKSB7CisgICAgICAgIGlmIChhdXRvIHBh
Z2UgPSB0aGlzLT5wYWdlKCk7IHBhZ2UgJiYgcGFnZS0+cHJlZmVyZW5jZXMoKS5wcmVmZXJJbmxp
bmVUZXh0U2VsZWN0aW9uSW5JbWFnZXMoKSkgeworICAgICAgICAgICAgcXVpY2tMb29rSXRlbVRv
SW5zZXJ0SWZOZWVkZWQgPSBmaWx0ZXJlZEl0ZW1zW2luZGV4T2ZRdWlja0xvb2tJdGVtXTsKKyAg
ICAgICAgICAgIGZpbHRlcmVkSXRlbXMucmVtb3ZlKGluZGV4T2ZRdWlja0xvb2tJdGVtKTsKKyAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICBzaG91bGRVcGRhdGVRdWlja0xvb2tJdGVtVGl0bGUg
PSB0cnVlOworICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKICNpZiBI
QVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKQogICAgIGlmICghcGFnZSgpLT5jYW5IYW5kbGVD
b250ZXh0TWVudVRyYW5zbGF0aW9uKCkgfHwgaXNQb3BvdmVyKSB7CkBAIC01MzEsNyArNTM3LDcg
QEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVudUZyb21JdGVtcyhj
b25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnUKICAgICBhdXRvIGltYWdlQml0bWFwID0gbV9jb250
ZXh0LndlYkhpdFRlc3RSZXN1bHREYXRhKCkuaW1hZ2VCaXRtYXA7CiAKICAgICBhdXRvIHNwYXJz
ZU1lbnVJdGVtcyA9IHJldGFpblB0cihbTlNQb2ludGVyQXJyYXkgc3Ryb25nT2JqZWN0c1BvaW50
ZXJBcnJheV0pOwotICAgIGF1dG8gaW5zZXJ0TWVudUl0ZW0gPSBtYWtlQmxvY2tQdHIoW3Byb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKCkp
LCBpbWFnZVVSTCA9IFdURk1vdmUoaW1hZ2VVUkwpLCBpbWFnZUJpdG1hcCA9IFdURk1vdmUoaW1h
Z2VCaXRtYXApLCBsb29rVXBJbWFnZUl0ZW0gPSBXVEZNb3ZlKGxvb2tVcEltYWdlSXRlbSksIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGl0ZW1zUmVtYWlu
aW5nID0gZmlsdGVyZWRJdGVtcy5zaXplKCksIG1lbnUgPSBXVEZNb3ZlKG1lbnUpLCBzcGFyc2VN
ZW51SXRlbXNdKE5TTWVudUl0ZW0gKml0ZW0sIE5TVUludGVnZXIgaW5kZXgpIG11dGFibGUgewor
ICAgIGF1dG8gaW5zZXJ0TWVudUl0ZW0gPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKCkpLCBpbWFnZVVSTCA9
IFdURk1vdmUoaW1hZ2VVUkwpLCBpbWFnZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApLCBz
aG91bGRVcGRhdGVRdWlja0xvb2tJdGVtVGl0bGUsIHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVl
ZGVkID0gV1RGTW92ZShxdWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCksIGNvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGl0ZW1zUmVtYWluaW5nID0gZmls
dGVyZWRJdGVtcy5zaXplKCksIG1lbnUgPSBXVEZNb3ZlKG1lbnUpLCBzcGFyc2VNZW51SXRlbXNd
KE5TTWVudUl0ZW0gKml0ZW0sIE5TVUludGVnZXIgaW5kZXgpIG11dGFibGUgewogICAgICAgICBB
U1NFUlQoaW5kZXggPCBbc3BhcnNlTWVudUl0ZW1zIGNvdW50XSk7CiAgICAgICAgIEFTU0VSVCgh
W3NwYXJzZU1lbnVJdGVtcyBwb2ludGVyQXRJbmRleDppbmRleF0pOwogICAgICAgICBbc3BhcnNl
TWVudUl0ZW1zIHJlcGxhY2VQb2ludGVyQXRJbmRleDppbmRleCB3aXRoUG9pbnRlcjppdGVtXTsK
QEAgLTU0MSwxMyArNTQ3LDQ1IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29u
dGV4dE1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51CiAgICAgICAgIFtt
ZW51IHNldEl0ZW1BcnJheTpbc3BhcnNlTWVudUl0ZW1zIGFsbE9iamVjdHNdXTsKIAogICAgICAg
ICBhdXRvIHBhZ2UgPSBtYWtlUmVmUHRyKHdlYWtQYWdlLmdldCgpKTsKLSAgICAgICAgaWYgKGxv
b2tVcEltYWdlSXRlbSAmJiBwYWdlICYmIGltYWdlQml0bWFwKSB7CisgICAgICAgIGlmIChwYWdl
ICYmIGltYWdlQml0bWFwKSB7CiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQotICAgICAgICAg
ICAgcGFnZS0+Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoaW1hZ2VVUkwsICppbWFnZUJp
dG1hcCwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBsb29rVXBJbWFn
ZUl0ZW0gPSBXVEZNb3ZlKCpsb29rVXBJbWFnZUl0ZW0pXSAoYm9vbCBoYXNWaXN1YWxTZWFyY2hS
ZXN1bHRzKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBpZiAoaGFzVmlzdWFsU2VhcmNoUmVz
dWx0cykKLSAgICAgICAgICAgICAgICAgICAgW3Byb3RlY3RlZFRoaXMtPm1fbWVudSBhZGRJdGVt
OmNyZWF0ZU1lbnVBY3Rpb25JdGVtKGxvb2tVcEltYWdlSXRlbSkuZ2V0KCldOwotICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICBpZiAocXVpY2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQpIHsK
KyAgICAgICAgICAgICAgICBwYWdlLT5jb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhpbWFn
ZVVSTCwgKmltYWdlQml0bWFwLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cihwcm90ZWN0ZWRUaGlz
LmdldCgpKSwgcXVpY2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQgPSBXVEZNb3ZlKCpxdWlja0xv
b2tJdGVtVG9JbnNlcnRJZk5lZWRlZCldIChib29sIGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpIG11
dGFibGUgeworICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZlB0cih3ZWFrVGhpcy5nZXQoKSk7IHByb3RlY3RlZFRoaXMgJiYgaGFzVmlzdWFsU2VhcmNo
UmVzdWx0cykgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9xdWlj
a0xvb2tQcmV2aWV3QWN0aXZpdHkgPSBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHk6OlZpc3VhbFNl
YXJjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgIFtwcm90ZWN0ZWRUaGlzLT5tX21lbnUgYWRk
SXRlbTpOU01lbnVJdGVtLnNlcGFyYXRvckl0ZW1dOworICAgICAgICAgICAgICAgICAgICAgICAg
W3Byb3RlY3RlZFRoaXMtPm1fbWVudSBhZGRJdGVtOmNyZWF0ZU1lbnVBY3Rpb25JdGVtKHF1aWNr
TG9va0l0ZW1Ub0luc2VydElmTmVlZGVkKS5nZXQoKV07CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoc2hvdWxkVXBkYXRl
UXVpY2tMb29rSXRlbVRpdGxlKSB7CisgICAgICAgICAgICAgICAgcGFnZS0+Y29tcHV0ZUhhc1Zp
c3VhbFNlYXJjaFJlc3VsdHMoaW1hZ2VVUkwsICppbWFnZUJpdG1hcCwgW3dlYWtUaGlzID0gbWFr
ZVdlYWtQdHIocHJvdGVjdGVkVGhpcy5nZXQoKSksIHdlYWtQYWdlLCBpbWFnZVVSTCwgaW1hZ2VC
aXRtYXBdIChib29sIGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpIG11dGFibGUgeworICAgICAgICAg
ICAgICAgICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHdlYWtUaGlzLmdldCgp
KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzKQorICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgICAgIGF1dG8gcGFnZSA9IG1h
a2VSZWZQdHIod2Vha1BhZ2UuZ2V0KCkpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXBhZ2Up
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBy
b3RlY3RlZFRoaXMtPm1fcXVpY2tMb29rUHJldmlld0FjdGl2aXR5ID0gUXVpY2tMb29rUHJldmll
d0FjdGl2aXR5OjpWaXN1YWxTZWFyY2g7CisgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0
ZWRUaGlzLT51cGRhdGVRdWlja0xvb2tDb250ZXh0TWVudUl0ZW1UaXRsZShjb250ZXh0TWVudUl0
ZW1UYWdRdWlja0xvb2tJbWFnZUZvclZpc3VhbFNlYXJjaCgpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAg
ICAgIHBhZ2UtPmNvbXB1dGVIYXNUZXh0UmVjb2duaXRpb25SZXN1bHRzKGltYWdlVVJMLCAqaW1h
Z2VCaXRtYXAsIFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCB3ZWFrUGFnZV0gKGJvb2wg
aGFzVGV4dCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmUHRyKHdlYWtUaGlzLmdldCgpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICghcHJvdGVjdGVkVGhpcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIHBhZ2UgPSBtYWtlUmVmUHRy
KHdlYWtQYWdlLmdldCgpKTsgcGFnZSAmJiBoYXNUZXh0KQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByb3RlY3RlZFRoaXMtPnVwZGF0ZVF1aWNrTG9va0NvbnRleHRNZW51SXRlbVRpdGxl
KGNvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlRm9yVGV4dFNlbGVjdGlvbigpKTsKKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9
CiAjZWxzZQorICAgICAgICAgICAgVU5VU0VEX1BBUkFNKHF1aWNrTG9va0l0ZW1Ub0luc2VydElm
TmVlZGVkKTsKKyAgICAgICAgICAgIFVOVVNFRF9QQVJBTShzaG91bGRVcGRhdGVRdWlja0xvb2tJ
dGVtVGl0bGUpOwogICAgICAgICAgICAgVU5VU0VEX1BBUkFNKGltYWdlVVJMKTsKICNlbmRpZgog
ICAgICAgICB9CkBAIC01NjMsNiArNjAxLDE3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1h
Yzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51CiAg
ICAgfQogfQogCit2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OnVwZGF0ZVF1aWNrTG9va0Nv
bnRleHRNZW51SXRlbVRpdGxlKGNvbnN0IFN0cmluZyYgbmV3VGl0bGUpCit7CisgICAgZm9yIChO
U0ludGVnZXIgaXRlbUluZGV4ID0gMDsgaXRlbUluZGV4IDwgW21fbWVudSBudW1iZXJPZkl0ZW1z
XTsgKytpdGVtSW5kZXgpIHsKKyAgICAgICAgYXV0byBpdGVtID0gcmV0YWluUHRyKFttX21lbnUg
aXRlbUF0SW5kZXg6aXRlbUluZGV4XSk7CisgICAgICAgIGlmIChzdGF0aWNfY2FzdDxDb250ZXh0
TWVudUFjdGlvbj4oW2l0ZW0gdGFnXSkgPT0gQ29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1h
Z2UpIHsKKyAgICAgICAgICAgIFtpdGVtIHNldFRpdGxlOm5ld1RpdGxlXTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCiB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlN
YWM6OmdldENvbnRleHRNZW51SXRlbShjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpdGVt
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5TTWVudUl0ZW0gKik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCAxYWIzNTBhNDMwZTNhMTVhMzc0
ZTE2NTlkZTdjOGY0NDgxOTk3NmZmLi5lMTI5MTMzNTc1ZGFjM2M1MzRlZjMwODgxYWY5NzU2MzQ1
OGM2ODE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVBy
b3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlN
YWMubW0KQEAgLTc0NiwxMyArNzQ2LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbG9zZVNoYXJl
ZFByZXZpZXdQYW5lbElmTmVjZXNzYXJ5KCkKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykK
IAotdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRleHRNZW51TG9va1VwSW1hZ2UoKQordm9p
ZCBXZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRleHRNZW51UXVpY2tMb29rSW1hZ2UoUXVpY2tMb29r
UHJldmlld0FjdGl2aXR5IGFjdGl2aXR5KQogewogICAgIGF1dG8mIHJlc3VsdCA9IG1fYWN0aXZl
Q29udGV4dE1lbnVDb250ZXh0RGF0YS53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpOwogICAgIGlmICgh
cmVzdWx0LmltYWdlQml0bWFwKQogICAgICAgICByZXR1cm47CiAKLSAgICBzaG93SW1hZ2VJblF1
aWNrTG9va1ByZXZpZXdQYW5lbCgqcmVzdWx0LmltYWdlQml0bWFwLCByZXN1bHQudG9vbFRpcFRl
eHQsIFVSTCB7IFVSTCB7IH0sIHJlc3VsdC5hYnNvbHV0ZUltYWdlVVJMIH0sIFF1aWNrTG9va1By
ZXZpZXdBY3Rpdml0eTo6VmlzdWFsU2VhcmNoKTsKKyAgICBzaG93SW1hZ2VJblF1aWNrTG9va1By
ZXZpZXdQYW5lbCgqcmVzdWx0LmltYWdlQml0bWFwLCByZXN1bHQudG9vbFRpcFRleHQsIFVSTCB7
IFVSTCB7IH0sIHJlc3VsdC5hYnNvbHV0ZUltYWdlVVJMIH0sIGFjdGl2aXR5KTsKIH0KIAogdm9p
ZCBXZWJQYWdlUHJveHk6OnNob3dJbWFnZUluUXVpY2tMb29rUHJldmlld1BhbmVsKFNoYXJlYWJs
ZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIGNvbnN0IFN0cmluZyYgdG9vbHRpcCwgY29uc3QgVVJMJiBp
bWFnZVVSTCwgUXVpY2tMb29rUHJldmlld0FjdGl2aXR5IGFjdGl2aXR5KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDVlOGVhNzdkYWVj
ZTAyOGEwYjA5YmYyYzc2ODhmNDY4MzFhNzA3OC4uMzhmM2Q4NzAyY2QzYzNiMTRiYzQ0YTM1ODQ2
ZjliOGFkM2YxOGQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC01OTg0LDYgKzU5ODQsNyBAQAogCQlGNDRERkVCMDFFOUU3NTJGMDAz
OEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBXZWJJY29uVXRpbGl0aWVzLmg7IHBhdGggPSBpb3MvV2ViSWNvblV0aWxpdGllcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRERkVCMTFFOUU3NTJGMDAzOEQxOTYgLyog
V2ViSWNvblV0aWxpdGllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFt
ZSA9IFdlYkljb25VdGlsaXRpZXMubW07IHBhdGggPSBpb3MvV2ViSWNvblV0aWxpdGllcy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ2NjBCQzEyNURFRjA4MTAwRTg2NTk4IC8q
IFBhc3RlYm9hcmRBY2Nlc3NJbnRlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFzdGVib2FyZEFjY2Vz
c0ludGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDdBMDUxNjI2ODI3QTA5
MDA3RTVDRjIgLyogUXVpY2tMb29rUHJldmlld0FjdGl2aXR5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1
aWNrTG9va1ByZXZpZXdBY3Rpdml0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDg1NzBBMjI2NDRCRUM0MDBDMDVGNzEgLyogVGltZW91dC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUaW1lb3V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0
OEQyQTg0MjE1ODNBMDIwMEM2NzUyQiAvKiBBcHBLaXRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBw
S2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0OTZBNDJGMUY1OEEyNzIw
MDRDMTc1NyAvKiBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRHJh
Z0Ryb3BJbnRlcmFjdGlvblN0YXRlLmg7IHBhdGggPSBpb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0
YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MDQ1LDYgKzcwNDYsNyBAQAog
CQkJCUNEQTI5QTFGMUNCRUI1RkIwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJv
eHkubW0gKi8sCiAJCQkJQzE0NUNDMEUyM0RDQTQyNzAwM0E1RUVCIC8qIFByZWZlcmVuY2VPYnNl
cnZlci5oICovLAogCQkJCUMxNUNCQjMzMjNGMzRDMzgwMDMwMENDNyAvKiBQcmVmZXJlbmNlT2Jz
ZXJ2ZXIubW0gKi8sCisJCQkJRjQ3QTA1MTYyNjgyN0EwOTAwN0U1Q0YyIC8qIFF1aWNrTG9va1By
ZXZpZXdBY3Rpdml0eS5oICovLAogCQkJCTVDQjdBRkREMjNDNTI3M0QwMEU0OUNGMyAvKiBSZXNv
dXJjZUxvYWREZWxlZ2F0ZS5oICovLAogCQkJCTVDQjdBRkRFMjNDNTI3M0QwMEU0OUNGMyAvKiBS
ZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbSAqLywKIAkJCQk1Q0E5ODU0QjIxMEJFQjczMDA1N0VCNkIg
LyogU2FmZUJyb3dzaW5nV2FybmluZ0NvY29hLm1tICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggYjQyMTZkYWE0YzAyYzFlZWQ3NzVj
YmFiNTRkYzA3OTg3MjUxMzI4YS4uYzAyMGI4YmJhMmQwMDQxZjNlNTRlN2YxOGM2YTM3NzY4MzNl
ZjA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1M
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3
Lm1tCkBAIC02MTUsNyArNjE1LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TlNJbnRlZ2VyPiB0
b1RhZyhXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAgICAgICAgIHJldHVybiBX
ZWJNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5oYW5jZWRGdWxsc2NyZWVuOwogICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlOgogICAgICAgICByZXR1cm4gV2ViTWVudUl0ZW1UYWdU
cmFuc2xhdGU7Ci0gICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZToKKyAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlOgogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnIC4uLiBD
b250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432004</attachid>
            <date>2021-06-22 16:02:27 -0700</date>
            <delta_ts>2021-06-22 16:15:32 -0700</delta_ts>
            <desc>Fix GTK/WPE/Win builds</desc>
            <filename>bug-227265-20210622160226.patch</filename>
            <type>text/plain</type>
            <size>49160</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJmMGFjNjg1MmZkMTI3ZWVjNDQ2MDY5
YTcxNjczYjc0NmVjYmU2ODQuLmRkNGZkYmVjN2Y1MTVmN2ZlOWViODZkMjExNmU2N2NlZjIyN2M0
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDYtMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0xpdmUgVGV4dF0gW21hY09TXSBBZGQgYW4g
aW50ZXJuYWwgb3B0aW9uIHRvIGRpc2FibGUgaW5saW5lIHRleHQgc2VsZWN0aW9uIGluIGltYWdl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjY1
CisgICAgICAgIHJkYXI6Ly83OTQ2MDE0MgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0
b24uCisKKyAgICAgICAgQWRkIGEgbmV3IGludGVybmFsIGZlYXR1cmUgZmxhZy4gU2VlIFdlYktp
dCBDaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sOgorCiAyMDIxLTA2LTIxICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRqdXN0IGBmZXRjaGAgcG9ydCBi
bG9ja2luZyBmb3IgcG9ydHMgOTkwLCA5ODkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYzNiY2M2NDJkYzM1MTUx
MDI3MzRmNDYzYjJjODVkNmM2OTUwOTFkLi41NTBkMGE0MDdlYjJkMTEyNGMwM2ViMTc2Zjg2M2U3
ZWE4ZmMzZmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjEtMDYtMjIgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0xpdmUgVGV4dF0g
W21hY09TXSBBZGQgYW4gaW50ZXJuYWwgb3B0aW9uIHRvIGRpc2FibGUgaW5saW5lIHRleHQgc2Vs
ZWN0aW9uIGluIGltYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI3MjY1CisgICAgICAgIHJkYXI6Ly83OTQ2MDE0MgorCisgICAgICAgIFJldmll
d2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBuZXcgZmVh
dHVyZSBmbGFnLiBTZWUgV2ViS2l0L0NoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAg
ICAgICogZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczoKKworICAgICAgICBBZGQgYWRkaXRp
b25hbCBsb2NhbGl6YWJsZSBzdHJpbmdzIHRvIHJlcHJlc2VudCBlYWNoIG9mIHRoZSBwb3NzaWJs
ZSB0aXRsZXMgZm9yIHRoZSAiUXVpY2sgTG9vayIvIkxvb2sgVXAiCisgICAgICAgIGNvbnRleHQg
bWVudSBpdGVtLiBXaGVuIGlubGluZSB0ZXh0IHNlbGVjdGlvbiBpcyBlbmFibGVkLCB0aGUgaXRl
bSBzaG93cyB1cCBhcyAiTG9vayBVcCIsIGFuZCBpcyBvbmx5IGFkZGVkIGlmCisgICAgICAgIHdl
IGFjdHVhbGx5IGRpc2NvdmVyIHZpc3VhbCBzZWFyY2ggcmVzdWx0cy4KKworICAgICAgICBIb3dl
dmVyLCB3aGVuIGlubGluZSB0ZXh0IHNlbGVjdGlvbiBpcyBkaXNhYmxlZCwgdGhpcyBpdGVtIHdp
bGwgYWx3YXlzIGJlIGFkZGVkIHRvIHRoZSBjb250ZXh0IG1lbnUgdW5kZXIgdGhlCisgICAgICAg
IHRpdGxlICJRdWljayBMb29rIiwgYW5kIHdpbGwgYmUgcmV0aXRsZWQgdG8gZWl0aGVyICJMb29r
IFVwIGluIFF1aWNrIExvb2siIG9yICJTZWxlY3QgVGV4dCBpbiBRdWljayBMb29rIiBvbmNlCisg
ICAgICAgIGVpdGhlciB2aXN1YWwgc2VhcmNoIHJlc3VsdHMgb3IgdGV4dCBpcyByZWNvZ25pemVk
LCByZXNwZWN0aXZlbHkuCisKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51
SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6
cG9wdWxhdGUpOgorCisgICAgICAgIEluIHRoZSBjYXNlIHdoZXJlIGlubGluZSB0ZXh0IHNlbGVj
dGlvbiBpcyBkaXNhYmxlZCwgYWRkIHRoZSBRdWljayBMb29rIGl0ZW0gdG8gdGhlIGVuZCBvZiB0
aGUgY29udGV4dCBtZW51LAorICAgICAgICBhZnRlciBhIHNlcGFyYXRvci4gTm90ZSB0aGF0IGlu
IHRoZSBjYXNlIHdoZXJlIGlubGluZSB0ZXh0IHNlbGVjdGlvbiBpcyBlbmFibGVkLCBpdCBkb2Vz
bid0IGFjdHVhbGx5IG1hdHRlcgorICAgICAgICB3aGVyZSB3ZSBhZGQgdGhpcyBpdGVtLCBzaW5j
ZSBpdCBpcyBhdXRvbWF0aWNhbGx5IHJlbW92ZWQgYW5kIG9ubHkgcmVpbnNlcnRlZCBpZiB3ZSBm
aW5kIHZpc3VhbCBzZWFyY2ggcmVzdWx0cworICAgICAgICBmb3IgdGhlIGltYWdlLgorCisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNoZWNrT3JFbmFibGVJZk5lZWRl
ZCBjb25zdCk6CisKKyAgICAgICAgUmVuYW1lIHRoZSBleGlzdGluZyBDb250ZXh0TWVudUl0ZW1U
YWdMb29rVXBJbWFnZSB0byBDb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZSwgc2luY2Ug
aXQgaXMgbm8gbG9uZ2VyCisgICAgICAgIGxpbWl0ZWQgdG8gdGhlIHZpc3VhbCBsb29rIHVwIGZl
YXR1cmUuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZU1vdXNlRXZlbnRUYXJnZXROb2RlKToKKworICAgICAg
ICBDb25zdWx0IHRoZSBmZWF0dXJlIGZsYWcgYW5kIGF2b2lkIGtpY2tpbmcgb2ZmIHRoZSB0ZXh0
IHJlY29nbml0aW9uIHRpbWVyIGlmIGlubGluZSB0ZXh0IHNlbGVjdGlvbiBpcyBkaXNhYmxlZC4K
KworICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjppc1ZhbGlkQ29udGV4dE1lbnVBY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRl
eHRNZW51SXRlbS5oOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZUZvclRleHRTZWxlY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2VGb3JW
aXN1YWxTZWFyY2gpOgorCiAyMDIxLTA2LTIxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gW1dlYktpdExlZ2FjeV0gTm9uLWFjdGlvbmFi
bGUgIkxvb2sgVXAiIGFjdGlvbiBhcHBlYXJzIHdoZW4gcmlnaHQgY2xpY2tpbmcgaW1hZ2VzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGEzZjZjMWYxYzliNmE4MGI3MWMzNmM3OTFjMWRhNGU0YWYzY2E4MDYuLjJmZWRl
YjAxMzE0ZmNhYTczMDhmNmNlZmM5Y2Q1OTRhMDRhOGZhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
ODYgQEAKKzIwMjEtMDYtMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CisKKyAgICAgICAgW0xpdmUgVGV4dF0gW21hY09TXSBBZGQgYW4gaW50ZXJuYWwgb3B0aW9uIHRv
IGRpc2FibGUgaW5saW5lIHRleHQgc2VsZWN0aW9uIGluIGltYWdlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjY1CisgICAgICAgIHJkYXI6Ly83
OTQ2MDE0MgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgUmVm
YWN0b3IgTGl2ZSBUZXh0IGFuZCBWaXN1YWwgTG9vayBVcCBsb2dpYywgc3VjaCB0aGF0IHRoZSBh
YmlsaXR5IHRvIHNlbGVjdCB0ZXh0IGluc2lkZSBvZiBpbWFnZXMgaXMgYmVoaW5kIGFuCisgICAg
ICAgIGludGVybmFsIGZlYXR1cmUgZmxhZyB0aGF0IGNhbiBiZSB0b2dnbGVkIGF0IHJ1bnRpbWUu
IFdoZW4gTGl2ZSBUZXh0IGlzIGRpc2FibGVkLCB3ZSdsbCB1bmNvbmRpdGlvbmFsbHkgc2hvdyB0
aGUKKyAgICAgICAgIkxvb2sgVXAiIGNvbnRleHQgbWVudSBhY3Rpb24gdXNpbmcgdGhlIG1vcmUg
Z2VuZXJpYyB0aXRsZSAiUXVpY2sgTG9vayIuIFRoaXMgIlF1aWNrIExvb2siIGFjdGlvbiBpcyB0
aGVuCisgICAgICAgIHJldGl0bGVkIHRvIGVpdGhlciAiTG9vayBVcCBpbiBRdWljayBMb29rIiBv
ciAiU2VsZWN0IFRleHQgaW4gUXVpY2sgTG9vayIgb25jZSBpbWFnZSBhbmFseXNpcyBjb21wbGV0
ZXMuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmg6CisgICAgICAg
IChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAgKFdlYktpdDo6dG9JbXBsKToKKworICAgICAgICBS
ZW5hbWUgQ29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UgdG8gQ29udGV4dE1lbnVJdGVtVGFn
UXVpY2tMb29rSW1hZ2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUXVpY2tMb29rUHJl
dmlld0FjdGl2aXR5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
S1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVyLmguCisKKyAgICAgICAgTW92ZSB0aGlzIGVudW0g
b3V0IG9mIFdLUXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIuaCwgc3VjaCB0aGF0IHdlIGNhbiB1
c2UgYW5kIGltcG9ydCBpdCBpbiBub24tQ29jb2EgaGVhZGVycworICAgICAgICBhbmQgaW1wbGVt
ZW50YXRpb24gZmlsZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjpjb21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMpOgorCisg
ICAgICAgIFJlbmFtZSBgY29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHNgIHRvIGBjb21wdXRl
SGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHNgLCBhbmQgYWxsb3cgaXQgdG8gdGFrZSBhIGZsYWcgdG8K
KyAgICAgICAgaW5kaWNhdGUgd2hldGhlciBvciBub3QgaXQgc2hvdWxkIHJlcXVlc3QgdGV4dCBy
ZWNvZ25pdGlvbiByZXN1bHRzIG9yIHZpc3VhbCBzZWFyY2ggcmVzdWx0cy4gV2UgdXNlIHRoaXMg
Zm9yIHRoZQorICAgICAgICAiUXVpY2sgTG9vayIgY29udGV4dCBtZW51IGFjdGlvbiB3aGVuIGlu
bGluZSB0ZXh0IHNlbGVjdGlvbiBpcyBkaXNhYmxlZCwgaW4gb3JkZXIgdG8gcmV0aXRsZSB0aGUg
aXRlbSB0byAiU2VsZWN0CisgICAgICAgIFRleHQgaW4gUXVpY2sgTG9vayIuCisKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50Ojpjb21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMpOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50Ojpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eTo6cXVpY2tMb29rUHJldmlld0FjdGl2aXR5IGNv
bnN0KToKKworICAgICAgICBBZGQgYSBmbGFnIHRvIFdlYkNvbnRleHRNZW51UHJveHkgdG8gZGV0
ZXJtaW5lIHdoYXQgaW5pdGlhbCBhY3Rpdml0eSB0byB1c2Ugd2hlbiBwcmVzZW50aW5nIHRoZSBR
dWlja0xvb2sKKyAgICAgICAgcHJldmlldyBwYW5lbCBhZnRlciBzZWxlY3RpbmcgdGhlIENvbnRl
eHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlIGl0ZW0uCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZXh0
TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tcHV0
ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyk6IERlbGV0ZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y29tcHV0ZUhhc0ltYWdlQW5hbHlz
aXNSZXN1bHRzKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmNvbXB1dGVIYXNW
aXN1YWxTZWFyY2hSZXN1bHRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dL
UXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dL
UXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIubW06CisgICAgICAgICogVUlQcm9jZXNzL21hYy9X
ZWJDb250ZXh0TWVudVByb3h5TWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250
ZXh0TWVudVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjptZW51SXRlbUlkZW50aWZpZXIp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVu
dUZyb21JdGVtcyk6CisKKyAgICAgICAgQWRkIGxvZ2ljIHRvIGVpdGhlciByZW1vdmUgYW5kIHJl
aW5zZXJ0IHRoZSAiTG9vayBVcCIgY29udGV4dCBtZW51IGFjdGlvbiAoaWYgaW5saW5lIHRleHQg
c2VsZWN0aW9uIGluIGltYWdlcyBpcworICAgICAgICBlbmFibGVkKSwgb3IgdG8gcHJvbW90ZSB0
aGUgIlF1aWNrIExvb2siIGNvbnRleHQgbWVudSBhY3Rpb24gdG8gZWl0aGVyICJTZWxlY3QgVGV4
dCBpbiBRdWljayBMb29rIiBvciAiTG9vayBVcAorICAgICAgICBpbiBRdWljayBMb29rIiBpbiB0
aGUgY2FzZSB3aGVyZSBpbmxpbmUgdGV4dCBzZWxlY3Rpb24gaW4gaW1hZ2VzIGlzIGRpc2FibGVk
LgorCisgICAgICAgIE5vdGUgdGhhdCB3aGVuIGlubGluZSB0ZXh0IHNlbGVjdGlvbiBpbiBpbWFn
ZXMgaXMgZGlzYWJsZWQsIHdlJ2xsIGZpcnN0IGNoZWNrIGZvciB2aXN1YWwgc2VhcmNoIHJlc3Vs
dHMgYmVmb3JlCisgICAgICAgIGNoZWNraW5nIGZvciB0ZXh0LiBUaGlzIGlzIGJlY2F1c2Ugdmlz
dWFsIHNlYXJjaCByZXN1bHRzIHdpbGwgdGFrZSBwcmVjZWRlbmNlIG92ZXIgdGV4dCBzZWxlY3Rp
b24gKGkuZS4sIHdlJ2xsCisgICAgICAgIHNob3cgIkxvb2sgVXAgaW4gUXVpY2sgTG9vayIgZXZl
biBpZiBib3RoIHZpc3VhbCBzZWFyY2ggcmVzdWx0cyBhbmQgdGV4dCBpcyBwcmVzZW50KSwgc28g
d2UgY2FuIGF2b2lkIHBlcmZvcm1pbmcKKyAgICAgICAgdGV4dCBhbmFseXNpcyBpbiB0aGUgY2Fz
ZSB3aGVyZSB3ZSBhbHJlYWR5IGZvdW5kIHZpc3VhbCBzZWFyY2ggcmVzdWx0cy4KKworICAgICAg
ICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjppbnNlcnRPclVwZGF0ZVF1aWNrTG9v
a0ltYWdlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnVw
ZGF0ZVF1aWNrTG9va0NvbnRleHRNZW51SXRlbVRpdGxlKToKKworICAgICAgICBBZGQgYSBoZWxw
ZXIgbWV0aG9kIHRvIGZpbmQgYW5kIHVwZGF0ZSB0aGUgdGl0bGUgb2YgdGhlIE5TTWVudUl0ZW0g
Y29ycmVzcG9uZGluZyB0bworICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFn
ZS4gU2VlIGBnZXRDb250ZXh0TWVudUZyb21JdGVtc2AgYWJvdmUgZm9yIG1vcmUgZGV0YWlscy4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRleHRNZW51UXVpY2tMb29rSW1hZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRleHRNZW51TG9va1VwSW1h
Z2UpOiBEZWxldGVkLgorCisgICAgICAgIFJlbmFtZSB0aGlzIHRvIGBoYW5kbGVDb250ZXh0TWVu
dVF1aWNrTG9va0ltYWdlYCwgYW5kIGhhdmUgaXQgdGFrZSBhbiBhcmd1bWVudCB0byBpbmRpY2F0
ZSB3aGV0aGVyIHRoZSBRdWlja0xvb2sKKyAgICAgICAgcGFuZWwgc2hvdWxkIHN0YXJ0IG91dCBp
biBWaXN1YWwgTG9vayBVcCBtb2RlLgorCisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisKIDIwMjEtMDYtMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgW3dhdGNoT1NdIEF1dG9tYXRpY2FsbHkgYXBwbHkgc3lzdGVt
IG1pbmltdW0gbGF5b3V0IG1hcmdpbnMgYXMgc2Nyb2xsIHZpZXcgY29udGVudCBpbnNldHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBhMGNlNWEwMDVjZjQ2NDgwYjZkMWRhMDg5N2Qy
NmY5ZjdkMDk3ZTI2Li4yOGY2NDEzMjBlOWJkMTE2NTE3MDdhY2MwMTNmYWJmMjM0Y2JiNWQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDYtMjIg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0xpdmUg
VGV4dF0gW21hY09TXSBBZGQgYW4gaW50ZXJuYWwgb3B0aW9uIHRvIGRpc2FibGUgaW5saW5lIHRl
eHQgc2VsZWN0aW9uIGluIGltYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI3MjY1CisgICAgICAgIHJkYXI6Ly83OTQ2MDE0MgorCisgICAgICAg
IFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgUmVuYW1lIENvbnRleHRNZW51SXRl
bVRhZ0xvb2tVcEltYWdlIHRvIENvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlLgorCisg
ICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKHRvVGFnKToKKwogMjAy
MS0wNi0yMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbbWFjT1NdIFtXZWJLaXRMZWdhY3ldIE5vbi1hY3Rpb25hYmxlICJMb29rIFVwIiBhY3Rpb24g
YXBwZWFycyB3aGVuIHJpZ2h0IGNsaWNraW5nIGltYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbCBiL1NvdXJj
ZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKaW5k
ZXggMTgzODlmYzc2ZWVhNzdjMGE0YWYwMTc1YzUzZDViZTg1MTU2ZGEyZS4uNjZlYmE3OTdiMzc1
OTA0ZGJhNTBiNDFmMTc5M2MyYzYyNzY0NDg3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAorKysgYi9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCkBAIC01
ODQsNiArNTg0LDE5IEBAIFByZWZlckZhc3RlckNsaWNrT3ZlckRvdWJsZVRhcDoKICAgICAgICJQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykiOiB0cnVlCiAgICAgICBk
ZWZhdWx0OiBmYWxzZQogCitQcmVmZXJJbmxpbmVUZXh0U2VsZWN0aW9uSW5JbWFnZXM6CisgIHR5
cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJJbmxpbmUgVGV4dCBTZWxlY3Rpb24gaW4g
SW1hZ2VzIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJQcmVmZXIgaW5saW5lIHRleHQg
c2VsZWN0aW9uIGluIGltYWdlcyBvdmVyIHVzaW5nIHRoZSBjb250ZXh0IG1lbnUiCisgIGNvbmRp
dGlvbjogRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViQ29y
ZToKKyAgICAgIGRlZmF1bHQ6IHRydWUKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0
OiB0cnVlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogdHJ1ZQorCiBQcmVmZXJQYWdlUmVu
ZGVyaW5nVXBkYXRlc05lYXI2MEZQU0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFk
YWJsZU5hbWU6ICJQcmVmZXIgUGFnZSBSZW5kZXJpbmcgVXBkYXRlcyBuZWFyIDYwZnBzIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncyBiL1Nv
dXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKaW5kZXggN2VhNDk3ZWUx
YmNjZjBmYTNhODljYTg2NTA3YTg5NzgwNDIwMmExOS4uNzE2NmY5YWZlYWZmM2YyYzgwNmVlZWY1
MzYxODc0Y2I3NDk2NjI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9j
YWxpemFibGUuc3RyaW5ncworKysgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJs
ZS5zdHJpbmdzCkBAIC01NzcsNiArNTc3LDkgQEAKIC8qIExvb2sgVXAgaW4gRGljdGlvbmFyeSBj
b250ZXh0IG1lbnUgaXRlbSAqLwogIkxvb2sgVXAgaW4gRGljdGlvbmFyeSIgPSAiTG9vayBVcCBp
biBEaWN0aW9uYXJ5IjsKIAorLyogVGl0bGUgZm9yIFF1aWNrIExvb2sgYWN0aW9uIGJ1dHRvbiBm
b3IgaW1hZ2VzIHdpdGggdmlzdWFsIHNlYXJjaCByZXN1bHRzICovCisiTG9vayBVcCBpbiBRdWlj
ayBMb29rIiA9ICJMb29rIFVwIGluIFF1aWNrIExvb2siOworCiAvKiBMb29rIFVwIGNvbnRleHQg
bWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCAqLwogIkxvb2sgVXAg4oCcJUDigJ0iID0gIkxv
b2sgVXAg4oCcJUDigJ0iOwogCkBAIC03NTEsNiArNzU0LDkgQEAKIC8qIERlc2NyaXB0aW9uIG9m
IHRoZSBQb3N0U2NyaXB0IHR5cGUgc3VwcG9ydGVkIGJ5IHRoZSBQREYgcHNldWRvIHBsdWctaW4u
IFZpc2libGUgaW4gdGhlIEluc3RhbGxlZCBQbHVnLWlucyBwYWdlIGluIFNhZmFyaS4gKi8KICJQ
b3N0U2NyaXB0IiA9ICJQb3N0U2NyaXB0IjsKIAorLyogVGl0bGUgZm9yIFF1aWNrIExvb2sgYWN0
aW9uIGJ1dHRvbiAqLworIlF1aWNrIExvb2siID0gIlF1aWNrIExvb2siOworCiAvKiBVbmRvIGFj
dGlvbiBuYW1lICovCiAiUmFpc2UgQmFzZWxpbmUgKFVuZG8gYWN0aW9uIG5hbWUpIiA9ICJSYWlz
ZSBCYXNlbGluZSI7CiAKQEAgLTc5Myw2ICs3OTksOSBAQAogLyogU2VhcmNoIHdpdGggc2VhcmNo
IHByb3ZpZGVyIGNvbnRleHQgbWVudSBpdGVtIHdpdGggcHJvdmlkZXIgbmFtZSBpbnNlcnRlZCAq
LwogIlNlYXJjaCB3aXRoICVAIiA9ICJTZWFyY2ggd2l0aCAlQCI7CiAKKy8qIFRpdGxlIGZvciBR
dWljayBMb29rIGFjdGlvbiBidXR0b24gZm9yIGltYWdlcyB3aXRoIHRleHQgKi8KKyJTZWxlY3Qg
VGV4dCBpbiBRdWljayBMb29rIiA9ICJTZWxlY3QgVGV4dCBpbiBRdWljayBMb29rIjsKKwogLyog
VmFsaWRhdGlvbiBtZXNzYWdlIGZvciByZXF1aXJlZCBmaWxlIGlucHV0cyB0aGF0IGhhdmUgbm8g
dmFsdWUgKi8KICJTZWxlY3QgYSBmaWxlIiA9ICJTZWxlY3QgYSBmaWxlIjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4IDBkYWE1ZTM2YmRh
ZDZlNjAzMzYyZGU4MTM5MTQwYWM3ZDk4ZjlmOTIuLmM0ZTQzZTg4ZGZkOWY4NzUzOTYwZWQ5M2Uz
ZTJjNGZkZTFjZWQwOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1l
bnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29u
dHJvbGxlci5jcHAKQEAgLTUxNSw3ICs1MTUsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxl
cjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwog
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRGljdGF0aW9uQWx0ZXJuYXRpdmU6CiAgICAgICAg
IGZyYW1lLT5lZGl0b3IoKS5hcHBseURpY3RhdGlvbkFsdGVybmF0aXZlKHRpdGxlKTsKICAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZToKKyAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlOgogICAgICAgICAvLyBUaGlzIHNo
b3VsZCBiZSBoYW5kbGVkIGF0IHRoZSBjbGllbnQgbGF5ZXIuCiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKQEAgLTgyNCw5ICs4MjQsNiBAQCB2b2lkIENvbnRl
eHRNZW51Q29udHJvbGxlcjo6cG9wdWxhdGUoKQogICAgIENvbnRleHRNZW51SXRlbSBTZWxlY3RB
bGxJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCwgY29udGV4dE1l
bnVJdGVtVGFnU2VsZWN0QWxsKCkpOwogICAgIENvbnRleHRNZW51SXRlbSBJbnNlcnRFbW9qaUl0
ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnSW5zZXJ0RW1vamksIGNvbnRleHRNZW51
SXRlbVRhZ0luc2VydEVtb2ppKCkpOwogI2VuZGlmCi0jaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lT
KQotICAgIENvbnRleHRNZW51SXRlbSBMb29rVXBJbWFnZUl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4
dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UsIGNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlKCkp
OwotI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikKICAgICBDb250
ZXh0TWVudUl0ZW0gU2hhcmVNZW51SXRlbTsKQEAgLTg1MSw2ICs4NDgsMTIgQEAgdm9pZCBDb250
ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRlKCkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgYm9vbCBzaG91bGRBcHBlbmRRdWlja0xv
b2tJbWFnZUl0ZW0gPSBmYWxzZTsKKyAgICBhdXRvIHF1aWNrTG9va0l0ZW1UaXRsZSA9IGZyYW1l
LT5zZXR0aW5ncygpLnByZWZlcklubGluZVRleHRTZWxlY3Rpb25JbkltYWdlcygpID8gY29udGV4
dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UoKSA6IGNvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0lt
YWdlKCk7CisgICAgQ29udGV4dE1lbnVJdGVtIFF1aWNrTG9va0ltYWdlSXRlbSB7IEFjdGlvblR5
cGUsIENvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlLCBxdWlja0xvb2tJdGVtVGl0bGUg
fTsKKyNlbmRpZgorCiAgICAgYXV0byBhZGRTZWxlY3RlZFRleHRBY3Rpb25zSWZOZWVkZWQgPSBb
Jl0gKGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRUZXh0KSB7CiAgICAgICAgIGlmIChzZWxlY3RlZFRl
eHQuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtOTAwLDcgKzkwMyw3IEBAIHZv
aWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpwb3B1bGF0ZSgpCiAKICNpZiBFTkFCTEUoSU1BR0Vf
QU5BTFlTSVMpCiAgICAgICAgICAgICAgICAgaWYgKG1fY2xpZW50LnN1cHBvcnRzTG9va1VwSW5J
bWFnZXMoKSAmJiBpbWFnZSAmJiAhaW1hZ2UtPmlzQW5pbWF0ZWQoKSkKLSAgICAgICAgICAgICAg
ICAgICAgYXBwZW5kSXRlbShMb29rVXBJbWFnZUl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRBcHBlbmRRdWlja0xvb2tJbWFnZUl0ZW0gPSB0cnVl
OwogI2VuZGlmCiAgICAgICAgICAgICB9CiAjaWYgUExBVEZPUk0oR1RLKQpAQCAtMTE2NCw2ICsx
MTY3LDE4IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpwb3B1bGF0ZSgpCiAgICAgICAg
ICAgICBhcHBlbmRJdGVtKFNoYXJlTWVudUl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOwogICAg
ICAgICB9CiAgICAgfQorCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIGlmIChzaG91
bGRBcHBlbmRRdWlja0xvb2tJbWFnZUl0ZW0pIHsKKyAgICAgICAgaWYgKCFmcmFtZS0+c2V0dGlu
Z3MoKS5wcmVmZXJJbmxpbmVUZXh0U2VsZWN0aW9uSW5JbWFnZXMoKSkgeworICAgICAgICAgICAg
Ly8gSW4gdGhlIGNhc2Ugd2hlcmUgaW5saW5lIHRleHQgc2VsZWN0aW9uIGlzIGVuYWJsZWQsIHRo
ZSBMb29rIFVwIGl0ZW0gaXMgb25seSBhZGRlZCBpZgorICAgICAgICAgICAgLy8gd2UgZGlzY292
ZXIgdmlzdWFsIGxvb2sgdXAgcmVzdWx0cyBhZnRlciBpbWFnZSBhbmFseXNpcy4gSW4gdGhhdCBz
Y2VuYXJpbywgYSBzZXBhcmF0b3IKKyAgICAgICAgICAgIC8vIGlzIG9ubHkgYWRkZWQgYmVmb3Jl
IHRoZSBMb29rIFVwIGl0ZW0gb25jZSB3ZSdyZSBjZXJ0YWluIHRoYXQgd2Ugd2FudCB0byBzaG93
IGl0LgorICAgICAgICAgICAgYXBwZW5kSXRlbSgqc2VwYXJhdG9ySXRlbSgpLCBtX2NvbnRleHRN
ZW51LmdldCgpKTsKKyAgICAgICAgfQorICAgICAgICBhcHBlbmRJdGVtKFF1aWNrTG9va0ltYWdl
SXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CisgICAgfQorI2VuZGlmIC8vIEVOQUJMRShJTUFH
RV9BTkFMWVNJUykKIH0KIAogdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmFkZEluc3BlY3RF
bGVtZW50SXRlbSgpCkBAIC0xNDg5LDcgKzE1MDQsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJv
bGxlcjo6Y2hlY2tPckVuYWJsZUlmTmVlZGVkKENvbnRleHRNZW51SXRlbSYgaXRlbSkgY29uc3QK
ICAgICAgICAgICAgIHNob3VsZEVuYWJsZSA9IG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkubWVk
aWFIYXNBdWRpbygpOwogICAgICAgICAgICAgc2hvdWxkQ2hlY2sgPSBzaG91bGRFbmFibGUgJiYg
IG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkubWVkaWFNdXRlZCgpOwogICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2U6CisgICAgICAg
IGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2U6CiAgICAgICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGY1YjFmOTE4MTg0MDVkOWZkZmU1MDNj
MzlmOTc1MmZhY2E4MzU5ZTMuLmRmOWMzOTYyYzYxODkyNzBlYzhkMTg5YjJiNGJjNzQ3MTVlODY3
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI1MzcsMTAgKzI1Mzcs
MTIgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZU1vdXNlRXZlbnRUYXJnZXROb2RlKGNvbnN0
IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSoKICAgICBtX2VsZW1lbnRVbmRlck1vdXNlID0g
dGFyZ2V0RWxlbWVudDsKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKLSAgICBpZiAoIW1f
ZWxlbWVudFVuZGVyTW91c2UgfHwgIWlzPFJlbmRlckltYWdlPihtX2VsZW1lbnRVbmRlck1vdXNl
LT5yZW5kZXJlcigpKSkKLSAgICAgICAgbV90ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyLnN0b3Ao
KTsKLSAgICBlbHNlIGlmICghcGxhdGZvcm1Nb3VzZUV2ZW50Lm1vdmVtZW50RGVsdGEoKS5pc1pl
cm8oKSkKLSAgICAgICAgbV90ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyLnJlc3RhcnQoKTsKKyAg
ICBpZiAobV9mcmFtZS5zZXR0aW5ncygpLnByZWZlcklubGluZVRleHRTZWxlY3Rpb25JbkltYWdl
cygpKSB7CisgICAgICAgIGlmICghbV9lbGVtZW50VW5kZXJNb3VzZSB8fCAhaXM8UmVuZGVySW1h
Z2U+KG1fZWxlbWVudFVuZGVyTW91c2UtPnJlbmRlcmVyKCkpKQorICAgICAgICAgICAgbV90ZXh0
UmVjb2duaXRpb25Ib3ZlclRpbWVyLnN0b3AoKTsKKyAgICAgICAgZWxzZSBpZiAoIXBsYXRmb3Jt
TW91c2VFdmVudC5tb3ZlbWVudERlbHRhKCkuaXNaZXJvKCkpCisgICAgICAgICAgICBtX3RleHRS
ZWNvZ25pdGlvbkhvdmVyVGltZXIucmVzdGFydCgpOworICAgIH0KICNlbmRpZiAvLyBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCiAKICAgICBpZiAoYXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHAKaW5kZXggMzU1YThm
NGRlZTBiMDg0ZDIwMzdhYzNkNTM5Zjg1MDY5MDZhNzA3Yy4uNWQ4ZjdiNTIwZWIzN2QxNDRhZjY2
NGYwM2Y2N2Y5MzU5YWU3ODk0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q29udGV4dE1lbnVJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0
TWVudUl0ZW0uY3BwCkBAIC0yNTgsNyArMjU4LDcgQEAgYm9vbCBpc1ZhbGlkQ29udGV4dE1lbnVB
Y3Rpb24oQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rp
b246OkNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRnVsbHNjcmVlbjoKICAgICBjYXNlIENv
bnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdTaGFyZU1lbnU6CiAgICAgY2FzZSBD
b250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9FbmhhbmNlZEZ1
bGxzY3JlZW46Ci0gICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFn
TG9va1VwSW1hZ2U6CisgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVt
VGFnUXVpY2tMb29rSW1hZ2U6CiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1l
bnVJdGVtVGFnVHJhbnNsYXRlOgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRN
ZW51SXRlbUJhc2VDdXN0b21UYWc6CiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4
dE1lbnVJdGVtTGFzdEN1c3RvbVRhZzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0NvbnRleHRNZW51SXRlbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1l
bnVJdGVtLmgKaW5kZXggMDUxYzdiZWJhN2IyNzUyZDA5MDBkOWM4ODk4NWU5Yzc3YzM4NjlkZC4u
NmU1ZjYyZWI2ODdiNjY1MjRiMDUzZjg2NWNjNjQxODFhNDY2NmJkMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKQEAgLTE0Nyw3ICsxNDcsNyBAQCBlbnVtIENv
bnRleHRNZW51QWN0aW9uIHsKICAgICBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0VuaGFu
Y2VkRnVsbHNjcmVlbiwKICAgICBDb250ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb0N1cnJl
bnRRdWlja05vdGUsCiAgICAgQ29udGV4dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9OZXdRdWlj
a05vdGUsCi0gICAgQ29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UsCisgICAgQ29udGV4dE1l
bnVJdGVtVGFnUXVpY2tMb29rSW1hZ2UsCiAgICAgQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRl
LAogICAgIENvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcgPSA1MDAwLAogICAgIENvbnRleHRN
ZW51SXRlbUxhc3RDdXN0b21UYWcgPSA1OTk5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5oCmluZGV4IGNiZjBjYmNhMmJiNzVlMGU1ODFhNjY2NjcwM2ViOWZmYzk5
MGViZTAuLmQ4NTZhMGQ3MGJjOTBlZDRmMGE2NDEwM2QyNzgxNjJiNGQyMjJiMTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTM2OCw3ICszNjgsMTAg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAg
IFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSgpOwot
I2VuZGlmCisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1F1aWNr
TG9va0ltYWdlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1F1aWNrTG9va0ltYWdlRm9yVGV4dFNlbGVjdGlvbigpOworICAgIFdFQkNPUkVfRVhQT1JUIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZUZvclZpc3VhbFNlYXJjaCgpOwor
I2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogI2lmIEhBVkUoVFJBTlNMQVRJT05f
VUlfU0VSVklDRVMpCiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZShjb25z
dCBTdHJpbmcmIHNlbGVjdGVkU3RyaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQppbmRleCA4YjlmMTZkMjE3Njky
NWFjMTQ1MTYwYzRmZGNkZWNkN2YzZTgxNGFiLi4xZThmY2RhNzVhODBlNWY0ZDU4MjQwNWRkNTk4
YjIwY2FkNmY4MzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9M
b2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCkBAIC0zMTksNiArMzE5LDIxIEBAIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSgpCiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
Ikxvb2sgVXAiLCAiVGl0bGUgZm9yIExvb2sgVXAgYWN0aW9uIGJ1dHRvbiIpOwogfQogCi0jZW5k
aWYKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZSgpCit7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlF1aWNrIExvb2siLCAiVGl0bGUgZm9yIFF1aWNrIExvb2sgYWN0
aW9uIGJ1dHRvbiIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1h
Z2VGb3JUZXh0U2VsZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2VsZWN0
IFRleHQgaW4gUXVpY2sgTG9vayIsICJUaXRsZSBmb3IgUXVpY2sgTG9vayBhY3Rpb24gYnV0dG9u
IGZvciBpbWFnZXMgd2l0aCB0ZXh0Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdR
dWlja0xvb2tJbWFnZUZvclZpc3VhbFNlYXJjaCgpCit7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIkxvb2sgVXAgaW4gUXVpY2sgTG9vayIsICJUaXRsZSBmb3IgUXVpY2sgTG9vayBhY3Rpb24g
YnV0dG9uIGZvciBpbWFnZXMgd2l0aCB2aXN1YWwgc2VhcmNoIHJlc3VsdHMiKTsKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAppbmRleCAwYmVm
MGYzZDYxZDJlZmI0ZWY3NTg2MjY0ZmNiMzRlMmJmOTMzMTQyLi43YzNmMWNlY2YwZmMwMTJmMjc2
OWE2MmU5YWQ5MjRjYWFkYTllMzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvYy9XS1NoYXJlZEFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9X
S1NoYXJlZEFQSUNhc3QuaApAQCAtNTQzLDcgKzU0Myw3IEBAIGlubGluZSBXS0NvbnRleHRNZW51
SXRlbVRhZyB0b0FQSShXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAjZW5kaWYK
ICAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1NoYXJlTWVudToKICAgICAgICAg
cmV0dXJuIGtXS0NvbnRleHRNZW51SXRlbVRhZ1NoYXJlTWVudTsKLSAgICBjYXNlIFdlYkNvcmU6
OkNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlOgorICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4
dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2U6CiAgICAgICAgIHJldHVybiBrV0tDb250ZXh0TWVu
dUl0ZW1UYWdSZXZlYWxJbWFnZTsKICAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRh
Z1RyYW5zbGF0ZToKICAgICAgICAgcmV0dXJuIGtXS0NvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0
ZTsKQEAgLTc0Niw3ICs3NDYsNyBAQCBpbmxpbmUgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24g
dG9JbXBsKFdLQ29udGV4dE1lbnVJdGVtVGFnIHRhZykKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkNvbnRleHRNZW51SXRlbVRhZ1NoYXJlTWVudTsKICNlbmRpZgogICAgIGNhc2Uga1dLQ29udGV4
dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW1UYWdMb29rVXBJbWFnZTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNvbnRleHRN
ZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlOwogICAgIGNhc2Uga1dLQ29udGV4dE1lbnVJdGVtVGFn
VHJhbnNsYXRlOgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnVHJh
bnNsYXRlOwogICAgIGNhc2Uga1dLQ29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJblRoaXNXaW5k
b3c6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9RdWlja0xvb2tQ
cmV2aWV3QWN0aXZpdHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1F1aWNrTG9v
a1ByZXZpZXdBY3Rpdml0eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwZDM2NTYzZjFhNDlhODVhNTg3Mzk2YmI0
ZjMxOTFhNWU2M2Y2MGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9RdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkuaApAQCAtMCwwICsxLDM5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2VudW0gY2xhc3MgUXVpY2tMb29rUHJldmlld0FjdGl2aXR5IDogdWludDhf
dCB7CisgICAgTm9uZSwKKyAgICBWaXN1YWxTZWFyY2gsCit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggYmJjNjgzYWMwNzE1MTM4YTYwMWY4ZDg1Nzk2
YjkwMWZkYzE3MGIyZS4uYWM1MDU4YjgxMzFiMWRhZDNmYTE1NjBhMDgxNzMwNzRmZjNjMTQzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC0xNjgs
NiArMTY4LDcgQEAgY2xhc3MgV2ViUHJvY2Vzc1Byb3h5Owogc3RydWN0IFdlYkhpdFRlc3RSZXN1
bHREYXRhOwogCiBlbnVtIGNsYXNzIENvbnRpbnVlVW5zYWZlTG9hZCA6IGJvb2w7CitlbnVtIGNs
YXNzIEltYWdlQW5hbHlzaXNUeXBlIDogdWludDhfdDsKIGVudW0gY2xhc3MgVW5kb09yUmVkbyA6
IGJvb2w7CiAKIHR5cGVkZWYgaWQgPE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+IFZhbGlk
YXRpb25JdGVtOwpAQCAtNTk4LDcgKzU5OSw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShJTUFH
RV9BTkFMWVNJUykKICAgICB2b2lkIHJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBp
bWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+JiYpOwot
ICAgIHZvaWQgY29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiBpbWFnZVVS
TCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CisgICAgdm9pZCBjb21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMoY29uc3Qg
VVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgSW1hZ2VBbmFseXNp
c1R5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlmCiAKICAgICBi
b29sIGFjY2VwdHNQcmV2aWV3UGFuZWxDb250cm9sKFFMUHJldmlld1BhbmVsICopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA3YzM3M2VkNzE5
NjY4OTM4NTliZTE2YWU4MzQwOTczNGU5NWIwMDUwLi43MTc4OWUxMDIzMDU4NDQ2YWUxY2M4ZDkx
Mjk5MzI1MjI3NjQ1M2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQpAQCAtMjMwLDcgKzIzMCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnJlcXVlc3RU
ZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0CiAg
ICAgfSkuZ2V0KCldOwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRlSGFzVmlzdWFsU2Vh
cmNoUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0
bWFwLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24pCit2b2lkIFdl
YlZpZXdJbXBsOjpjb21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMoY29uc3QgVVJMJiBpbWFn
ZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgSW1hZ2VBbmFseXNpc1R5cGUgdHlw
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKQogewogICAgIGlm
ICghaXNMaXZlVGV4dEF2YWlsYWJsZUFuZEVuYWJsZWQoKSkgewogICAgICAgICBjb21wbGV0aW9u
KGZhbHNlKTsKQEAgLTIzOCwxMiArMjM4LDEzIEBAIHZvaWQgV2ViVmlld0ltcGw6OmNvbXB1dGVI
YXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpCiAg
ICAgfQogCiAgICAgYXV0byBjZ0ltYWdlID0gaW1hZ2VCaXRtYXAubWFrZUNHSW1hZ2UoKTsKLSAg
ICBhdXRvIHJlcXVlc3QgPSBjcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdChjZ0ltYWdlLmdldCgp
LCBpbWFnZVVSTCwgW05TVVJMIF93ZWJfVVJMV2l0aFdURlN0cmluZzptX3BhZ2UtPmN1cnJlbnRV
UkwoKV0sIFZLQW5hbHlzaXNUeXBlVmlzdWFsU2VhcmNoKTsKKyAgICBhdXRvIGFuYWx5c2lzVHlw
ZSA9IHR5cGUgPT0gSW1hZ2VBbmFseXNpc1R5cGU6OlZpc3VhbFNlYXJjaCA/IFZLQW5hbHlzaXNU
eXBlVmlzdWFsU2VhcmNoIDogVktBbmFseXNpc1R5cGVUZXh0OworICAgIGF1dG8gcmVxdWVzdCA9
IGNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0KGNnSW1hZ2UuZ2V0KCksIGltYWdlVVJMLCBbTlNV
UkwgX3dlYl9VUkxXaXRoV1RGU3RyaW5nOm1fcGFnZS0+Y3VycmVudFVSTCgpXSwgYW5hbHlzaXNU
eXBlKTsKICAgICBhdXRvIHN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwotICAgIFtl
bnN1cmVJbWFnZUFuYWx5emVyKCkgcHJvY2Vzc1JlcXVlc3Q6cmVxdWVzdC5nZXQoKSBwcm9ncmVz
c0hhbmRsZXI6bmlsIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY29tcGxldGlvbiA9
IFdURk1vdmUoY29tcGxldGlvbiksIHN0YXJ0VGltZV0gKFZLSW1hZ2VBbmFseXNpcyAqYW5hbHlz
aXMsIE5TRXJyb3IgKikgbXV0YWJsZSB7Ci0gICAgICAgIEJPT0wgcmVzdWx0ID0gW2FuYWx5c2lz
IGhhc1Jlc3VsdHNGb3JBbmFseXNpc1R5cGVzOlZLQW5hbHlzaXNUeXBlVmlzdWFsU2VhcmNoXTsK
LSAgICAgICAgQ0ZSdW5Mb29wUGVyZm9ybUJsb2NrKENGUnVuTG9vcEdldE1haW4oKSwgKF9fYnJp
ZGdlIENGU3RyaW5nUmVmKU5TRXZlbnRUcmFja2luZ1J1bkxvb3BNb2RlLCBtYWtlQmxvY2tQdHIo
W2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCByZXN1bHQsIHN0YXJ0VGltZV0gKCkg
bXV0YWJsZSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPRyhJbWFnZXMsICJJbWFnZSBhbmFseXNp
cyBjb21wbGV0ZWQgaW4gJS4wZiBtcyAoZm91bmQgdmlzdWFsIHNlYXJjaCByZXN1bHRzPyAlZCki
LCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydFRpbWUpLm1pbGxpc2Vjb25kcygpLCByZXN1
bHQpOworICAgIFtlbnN1cmVJbWFnZUFuYWx5emVyKCkgcHJvY2Vzc1JlcXVlc3Q6cmVxdWVzdC5n
ZXQoKSBwcm9ncmVzc0hhbmRsZXI6bmlsIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihb
Y29tcGxldGlvbiA9IFdURk1vdmUoY29tcGxldGlvbiksIHN0YXJ0VGltZSwgYW5hbHlzaXNUeXBl
XSAoVktJbWFnZUFuYWx5c2lzICphbmFseXNpcywgTlNFcnJvciAqKSBtdXRhYmxlIHsKKyAgICAg
ICAgQk9PTCByZXN1bHQgPSBbYW5hbHlzaXMgaGFzUmVzdWx0c0ZvckFuYWx5c2lzVHlwZXM6YW5h
bHlzaXNUeXBlXTsKKyAgICAgICAgQ0ZSdW5Mb29wUGVyZm9ybUJsb2NrKENGUnVuTG9vcEdldE1h
aW4oKSwgKF9fYnJpZGdlIENGU3RyaW5nUmVmKU5TRXZlbnRUcmFja2luZ1J1bkxvb3BNb2RlLCBt
YWtlQmxvY2tQdHIoW2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCByZXN1bHQsIGFu
YWx5c2lzVHlwZSwgc3RhcnRUaW1lXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIFJFTEVBU0Vf
TE9HKEltYWdlcywgIkltYWdlIGFuYWx5c2lzIGNvbXBsZXRlZCBpbiAlLjBmIG1zIChmb3VuZCAl
cz8gJWQpIiwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnRUaW1lKS5taWxsaXNlY29uZHMo
KSwgYW5hbHlzaXNUeXBlID09IFZLQW5hbHlzaXNUeXBlVmlzdWFsU2VhcmNoID8gInZpc3VhbCBz
ZWFyY2ggcmVzdWx0cyIgOiAidGV4dCIsIHJlc3VsdCk7CiAgICAgICAgICAgICBjb21wbGV0aW9u
KHJlc3VsdCk7CiAgICAgICAgIH0pLmdldCgpKTsKICAgICAgICAgQ0ZSdW5Mb29wV2FrZVVwKENG
UnVuTG9vcEdldE1haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
YWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXgg
ODc3MGFkNDYzODE2YmZlZjRjNGE5OTM3NDY1MzllMDJkMjFjZDU3Mi4uNjcwNDE2NGE5NTNlMGVm
NDVmNGE4Mjc4NTAzYjBmYjc4ZmE0OTY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaApAQCAtMTYwLDYgKzE2MCwxMCBAQCBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiAKIGVudW0g
Y2xhc3MgQ29udGludWVVbnNhZmVMb2FkIDogYm9vbCB7IE5vLCBZZXMgfTsKIAorI2lmIEVOQUJM
RShJTUFHRV9BTkFMWVNJUykKK2VudW0gY2xhc3MgSW1hZ2VBbmFseXNpc1R5cGUgOiB1aW50OF90
IHsgVGV4dCwgVmlzdWFsU2VhcmNoIH07CisjZW5kaWYKKwogc3RydWN0IEZvY3VzZWRFbGVtZW50
SW5mb3JtYXRpb247CiBzdHJ1Y3QgRnJhbWVJbmZvRGF0YTsKIHN0cnVjdCBJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbjsKQEAgLTU0MCw3ICs1NDQsNyBAQCBwdWJsaWM6CiAKICNpZiBF
TkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RUZXh0UmVjb2du
aXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUm
IGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRp
b25SZXN1bHQmJik+JiYgY29tcGxldGlvbikgeyBjb21wbGV0aW9uKHsgfSk7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgY29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiwgU2hhcmVh
YmxlQml0bWFwJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKSB7
IGNvbXBsZXRpb24oZmFsc2UpOyB9CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVIYXNJbWFnZUFu
YWx5c2lzUmVzdWx0cyhjb25zdCBVUkwmLCBTaGFyZWFibGVCaXRtYXAmLCBJbWFnZUFuYWx5c2lz
VHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKSB7IGNvbXBs
ZXRpb24oZmFsc2UpOyB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05U
RVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaAppbmRleCAxYjhmY2M4NDY2NGYzMDlhZmU1ZjRlYWNk
MjhiNTQxM2MxYjFiOTA3Li42MzBiZjExNzBkYTE3NmRjYzY1ZDY1OWMxZmRmN2MwNTE4NTkxMGU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5oCkBA
IC0zMyw2ICszMywxMCBAQAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIlF1aWNrTG9v
a1ByZXZpZXdBY3Rpdml0eS5oIgorI2VuZGlmCisKIE9CSkNfQ0xBU1MgTlNNZW51OwogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTUxLDYgKzU1LDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIHZpcnR1YWwgTlNNZW51ICpwbGF0Zm9ybU1lbnUoKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCBOU0FycmF5ICpwbGF0Zm9ybURhdGEoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBR
dWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgcXVpY2tMb29rUHJldmlld0FjdGl2aXR5KCkgY29uc3Qg
eyByZXR1cm4gUXVpY2tMb29rUHJldmlld0FjdGl2aXR5OjpOb25lOyB9OwogI2VuZGlmIC8vIFBM
QVRGT1JNKENPQ09BKQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCBhZmUyYjA4NmIzYjk4YjM0MTZiMmU5MTY3ZTI2YTUyNzUxYzEyNGY2
Li42NGRjODgzYTE1MTVjNDZlY2Y5NjJkNDJiNmMwOTQyMmIzMWM0NGIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTg1LDYgKzg1LDcgQEAKICNpbmNsdWRl
ICJQcmludEluZm8uaCIKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyLmgiCiAjaW5jbHVkZSAi
UHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJRdWlja0xvb2tQcmV2aWV3QWN0aXZp
dHkuaCIKICNpbmNsdWRlICJTYWZlQnJvd3NpbmdXYXJuaW5nLmgiCiAjaW5jbHVkZSAiU2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvbk1hbmFnZXIuaCIKQEAgLTY5MDgsOSArNjkwOSwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRl
bSkKICAgICAgICAgKyttX3BlbmRpbmdMZWFybk9ySWdub3JlV29yZE1lc3NhZ2VDb3VudDsKICAg
ICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlOgor
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2U6CiAjaWYgRU5BQkxFKElN
QUdFX0FOQUxZU0lTKQotICAgICAgICBoYW5kbGVDb250ZXh0TWVudUxvb2tVcEltYWdlKCk7Cisg
ICAgICAgIGlmIChtX2FjdGl2ZUNvbnRleHRNZW51KQorICAgICAgICAgICAgaGFuZGxlQ29udGV4
dE1lbnVRdWlja0xvb2tJbWFnZShtX2FjdGl2ZUNvbnRleHRNZW51LT5xdWlja0xvb2tQcmV2aWV3
QWN0aXZpdHkoKSk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuOwogCkBAIC04NTAzLDE0ICs4NTA1
LDE1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBmCiAKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykKKwogdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3Qg
VVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgcGFnZUNsaWVudCgpLnJlcXVlc3RUZXh0UmVj
b2duaXRpb24oaW1hZ2VVUkwsIGltYWdlRGF0YSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMo
Y29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKQordm9pZCBXZWJQYWdlUHJveHk6
OmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFy
ZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBJbWFnZUFuYWx5c2lzVHlwZSB0eXBlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24pCiB7Ci0gICAgcGFnZUNsaWVudCgp
LmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGltYWdlVVJMLCBpbWFnZUJpdG1hcCwgV1RG
TW92ZShjb21wbGV0aW9uKSk7CisgICAgcGFnZUNsaWVudCgpLmNvbXB1dGVIYXNJbWFnZUFuYWx5
c2lzUmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAsIHR5cGUsIFdURk1vdmUoY29tcGxldGlv
bikpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJl
c3VsdChUZXh0UmVjb2duaXRpb25SZXN1bHQmJiByZXN1bHRzLCBjb25zdCBFbGVtZW50Q29udGV4
dCYgY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0KT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
QEAgLTg1MjIsNyArODUyNSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVXaXRoVGV4dFJl
Y29nbml0aW9uUmVzdWx0KFRleHRSZWNvZ25pdGlvblJlc3VsdCYmIHJlc3VsCiAKICAgICBzZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlVwZGF0ZVdpdGhUZXh0UmVjb2duaXRp
b25SZXN1bHQoV1RGTW92ZShyZXN1bHRzKSwgY29udGV4dCwgbG9jYXRpb24pLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9Ci0jZW5kaWYKKworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9B
TkFMWVNJUykKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiBNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBXZWJQYWdlUHJveHk6Om1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggNjc1OGFmODI5ZjFlODg1MjA1ZTFlYjRjNDE4YmQyMmE2ZjM0OWUzYS4uZWM1
ZDBjZjA1ZTNiNDM1NDdhZjU5M2RkNjUzN2MwMzc4MTdlNmE5ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQwMiw2ICs0MDIsNyBAQCBzdHJ1Y3QgV2ViTmF2aWdh
dGlvbkRhdGFTdG9yZTsKIHN0cnVjdCBXZWJQb3B1cEl0ZW07CiBzdHJ1Y3QgV2ViU3BlZWNoU3lu
dGhlc2lzVm9pY2U7CiAKK2VudW0gY2xhc3MgSW1hZ2VBbmFseXNpc1R5cGUgOiB1aW50OF90Owog
ZW51bSBjbGFzcyBUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQgOiB1aW50OF90OwogZW51bSBj
bGFzcyBOZWdvdGlhdGVkTGVnYWN5VExTIDogYm9vbDsKIGVudW0gY2xhc3MgUHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCA6IGJvb2w7CkBAIC0xNjU5LDcgKzE2NjAsNyBAQCBwdWJsaWM6CiAj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlv
bihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1h
Z2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJl
c3VsdCYmKT4mJik7CiAgICAgdm9pZCB1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KFdl
YkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYmLCBjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29u
dGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdCk+JiYpOwotICAgIHZvaWQgY29t
cHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxl
Qml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Cisg
ICAgdm9pZCBjb21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMoY29uc3QgVVJMJiBpbWFnZVVS
TCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgSW1hZ2VBbmFseXNpc1R5cGUsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFf
Q09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCkBAIC0xOTA2LDYg
KzE5MDcsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpICYmIEVOQUJM
RShDT05URVhUX01FTlVTKQogICAgIHZvaWQgaGFuZGxlQ29udGV4dE1lbnVMb29rVXBJbWFnZSgp
OworICAgIHZvaWQgaGFuZGxlQ29udGV4dE1lbnVRdWlja0xvb2tJbWFnZShRdWlja0xvb2tQcmV2
aWV3QWN0aXZpdHkpOwogI2VuZGlmCiAKICNpZiBVU0UoQVBQS0lUKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRleCBkZDdiNDk3YWE2NGJm
N2EyM2VlZjE4NDg2ZWJjYjQ0M2EzNTg3MWU0Li42YzVjNGUzOWM2MTQ4M2RhZTkwZTY5MmNjNzg2
NjlkYWI3NDllNWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGxNYWMuaApAQCAtMTMyLDcgKzEzMiw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCiAgICAgdm9pZCByZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVS
TCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYm
KSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0
IFVSTCYsIFNoYXJlYWJsZUJpdG1hcCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
IG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKGNvbnN0
IFVSTCYsIFNoYXJlYWJsZUJpdG1hcCYsIEltYWdlQW5hbHlzaXNUeXBlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAgUmVmUHRyPFdlYlBv
cHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5t
bQppbmRleCBjMmRlOGQ2ZWE3YzBiY2FmYTA5MTRjMWY1MmFlNGQ2NDVkZjg2OWRjLi44Yjc0YjQ1
NDVkODk3YTk5OTI5NGY4MTVjN2MxZjY3YjM4ZmQzYzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC00ODUsMTIgKzQ4NSwxMiBA
QCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVSTCYg
aW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZQogICAgIG1faW1wbC0+cmVxdWVzdFRleHRSZWNvZ25p
dGlvbihpbWFnZVVSTCwgaW1hZ2VEYXRhLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKIH0KIAotdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJM
JiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6Y29tcHV0
ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJp
dG1hcCYgaW1hZ2VCaXRtYXAsIEltYWdlQW5hbHlzaXNUeXBlIHR5cGUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbikKIHsKLSAgICBtX2ltcGwtPmNvbXB1dGVIYXNW
aXN1YWxTZWFyY2hSZXN1bHRzKGltYWdlVVJMLCBpbWFnZUJpdG1hcCwgV1RGTW92ZShjb21wbGV0
aW9uKSk7CisgICAgbV9pbXBsLT5jb21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMoaW1hZ2VV
UkwsIGltYWdlQml0bWFwLCB0eXBlLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKIH0KIAotI2VuZGlm
CisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiBSZWZQdHI8V2ViUG9wdXBNZW51
UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkm
IHBhZ2UpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tRdWlj
a0xvb2tQcmV2aWV3Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dL
UXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIuaAppbmRleCAwMmM3ZDJmMWQ0YjkzZGE0MDY0YjA4
NjkyY2MzZTNiYTRkNGNkMTNlLi4xZTI3YzhkM2JjZTllMWM5MWYwNWU1MzBlZTUyMGM4MDQxNDc3
MzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tRdWlja0xvb2tQ
cmV2aWV3Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1
aWNrTG9va1ByZXZpZXdDb250cm9sbGVyLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiBjbGFzcyBXZWJQYWdlUHJveHk7Ci1lbnVtIGNsYXNzIFF1aWNrTG9va1ByZXZp
ZXdBY3Rpdml0eSA6IHVpbnQ4X3QgeyBOb25lLCBWaXN1YWxTZWFyY2ggfTsKK2VudW0gY2xhc3Mg
UXVpY2tMb29rUHJldmlld0FjdGl2aXR5IDogdWludDhfdDsKIH0KIAogQGNsYXNzIFFMUHJldmll
d1BhbmVsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUXVpY2tM
b29rUHJldmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tR
dWlja0xvb2tQcmV2aWV3Q29udHJvbGxlci5tbQppbmRleCA1MTkyYjE0ZWYxMzNiOTQ2NjAxYTc3
ZmM0MjVjYWE0MWQ2OGIxN2MwLi44ZjVjODJlMDY0YzBlYmYxYzgwMjNhZTBiOWFmYTBiYjY5M2Zj
YTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tRdWlja0xvb2tQ
cmV2aWV3Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tR
dWlja0xvb2tQcmV2aWV3Q29udHJvbGxlci5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgSEFW
RShRVUlDS0xPT0tfUFJFVklFV19JVEVNX0RBVEFfUFJPVklERVIpCiAKKyNpbXBvcnQgIlF1aWNr
TG9va1ByZXZpZXdBY3Rpdml0eS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0
IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDxwYWwvbWFjL1F1aWNrTG9va1VJU29mdExpbmsu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVu
dVByb3h5TWFjLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQ
cm94eU1hYy5oCmluZGV4IDU2MDYxYWZjM2QwM2ViMWQzZWQ5OWEzOWRhY2Q2Y2NhZDM2MTA5YmUu
LjM0ZTJkMDA3NDZlYmIwNzk3MTliZWNiZTc4MWY1YmM2Y2VhMWQ0ODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaApAQCAt
NjAsNiArNjAsMTMgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJDb250ZXh0TWVudVByb3h5
TWFjKE5TVmlldyAqLCBXZWJQYWdlUHJveHkmLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYsIGNv
bnN0IFVzZXJEYXRhJik7CiAKKyAgICBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgcXVpY2tMb29r
UHJldmlld0FjdGl2aXR5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9xdWlja0xvb2tQcmV2aWV3
QWN0aXZpdHk7IH0KKworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICB2b2lkIGluc2Vy
dE9yVXBkYXRlUXVpY2tMb29rSW1hZ2VJdGVtKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFJlZjxTaGFy
ZWFibGVCaXRtYXA+JiYgaW1hZ2VCaXRtYXAsIHN0ZDo6b3B0aW9uYWw8V2ViQ29udGV4dE1lbnVJ
dGVtRGF0YT4mJiwgYm9vbCk7CisgICAgdm9pZCB1cGRhdGVRdWlja0xvb2tDb250ZXh0TWVudUl0
ZW1UaXRsZShjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBzaG93KCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxXZWJDb250
ZXh0TWVudUl0ZW0+PiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHVzZUNvbnRleHRNZW51SXRlbXMo
VmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiYmKSBvdmVycmlkZTsKQEAgLTc5LDYgKzg2
LDcgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8TlNNZW51PiBtX21lbnU7CiAgICAgUmV0YWlu
UHRyPFdLTWVudURlbGVnYXRlPiBtX21lbnVEZWxlZ2F0ZTsKICAgICBXZWFrT2JqQ1B0cjxOU1Zp
ZXc+IG1fd2ViVmlldzsKKyAgICBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgbV9xdWlja0xvb2tQ
cmV2aWV3QWN0aXZpdHkgeyBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHk6Ok5vbmUgfTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCA2NTViMGI4MzlkMzUzNmJhM2I3
NTRlNDEzOGE4NzcwNWQ2MTBkYWU4Li4zZTAwOTBiNTg3NWIzNDg4N2MzYWVlZDQ1ZWIzMzMzZTM0
NTJhNDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4
dE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5tbQpAQCAtMzgsNiArMzgsNyBAQAogI2ltcG9ydCAiV2ViQ29udGV4
dE1lbnVJdGVtLmgiCiAjaW1wb3J0ICJXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgiCiAjaW1wb3J0
ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgIldlYlByZWZlcmVuY2VzLmgiCiAjaW1wb3J0IDxX
ZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KQEAgLTQzNiw3ICs0MzcsNyBAQCBz
dGF0aWMgTlNTdHJpbmcgKm1lbnVJdGVtSWRlbnRpZmllcihjb25zdCBXZWJDb3JlOjpDb250ZXh0
TWVudUFjdGlvbiBhY3Rpb24pCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQ6CiAg
ICAgICAgIHJldHVybiBfV0tNZW51SXRlbUlkZW50aWZpZXJSZWxvYWQ7CiAKLSAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlOgorICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
UXVpY2tMb29rSW1hZ2U6CiAgICAgICAgIHJldHVybiBfV0tNZW51SXRlbUlkZW50aWZpZXJSZXZl
YWxJbWFnZTsKIAogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViOgpAQCAtNTA3
LDE3ICs1MDgsMjIgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVu
dUZyb21JdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnUKICAgICAgICAgfSk7CiAgICAg
fQogCi0gICAgc3RkOjpvcHRpb25hbDxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBsb29rVXBJbWFn
ZUl0ZW07CisgICAgYm9vbCBzaG91bGRVcGRhdGVRdWlja0xvb2tJdGVtVGl0bGUgPSBmYWxzZTsK
KyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvbnRleHRNZW51SXRlbURhdGE+IHF1aWNrTG9va0l0ZW1U
b0luc2VydElmTmVlZGVkOwogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQotICAgIGZpbHRl
cmVkSXRlbXMucmVtb3ZlRmlyc3RNYXRjaGluZyhbJl0gKGF1dG8mIGl0ZW0pIHsKLSAgICAgICAg
aWYgKGl0ZW0uYWN0aW9uKCkgIT0gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1h
Z2UpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgbG9va1VwSW1hZ2VJdGVt
ID0geyBpdGVtIH07Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgIGF1dG8gaW5kZXhPZlF1aWNr
TG9va0l0ZW0gPSBmaWx0ZXJlZEl0ZW1zLmZpbmRNYXRjaGluZyhbJl0gKGF1dG8mIGl0ZW0pIHsK
KyAgICAgICAgcmV0dXJuIGl0ZW0uYWN0aW9uKCkgPT0gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVt
VGFnUXVpY2tMb29rSW1hZ2U7CiAgICAgfSk7Ci0jZW5kaWYKKworICAgIGlmIChpbmRleE9mUXVp
Y2tMb29rSXRlbSAhPSBub3RGb3VuZCkgeworICAgICAgICBpZiAoYXV0byBwYWdlID0gdGhpcy0+
cGFnZSgpOyBwYWdlICYmIHBhZ2UtPnByZWZlcmVuY2VzKCkucHJlZmVySW5saW5lVGV4dFNlbGVj
dGlvbkluSW1hZ2VzKCkpIHsKKyAgICAgICAgICAgIHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVl
ZGVkID0gZmlsdGVyZWRJdGVtc1tpbmRleE9mUXVpY2tMb29rSXRlbV07CisgICAgICAgICAgICBm
aWx0ZXJlZEl0ZW1zLnJlbW92ZShpbmRleE9mUXVpY2tMb29rSXRlbSk7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgc2hvdWxkVXBkYXRlUXVpY2tMb29rSXRlbVRpdGxlID0gdHJ1ZTsKKyAg
ICB9CisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiAjaWYgSEFWRShUUkFOU0xB
VElPTl9VSV9TRVJWSUNFUykKICAgICBpZiAoIXBhZ2UoKS0+Y2FuSGFuZGxlQ29udGV4dE1lbnVU
cmFuc2xhdGlvbigpIHx8IGlzUG9wb3ZlcikgewpAQCAtNTMxLDcgKzUzNyw3IEBAIHZvaWQgV2Vi
Q29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9y
PFdlYkNvbnRleHRNZW51CiAgICAgYXV0byBpbWFnZUJpdG1hcCA9IG1fY29udGV4dC53ZWJIaXRU
ZXN0UmVzdWx0RGF0YSgpLmltYWdlQml0bWFwOwogCiAgICAgYXV0byBzcGFyc2VNZW51SXRlbXMg
PSByZXRhaW5QdHIoW05TUG9pbnRlckFycmF5IHN0cm9uZ09iamVjdHNQb2ludGVyQXJyYXldKTsK
LSAgICBhdXRvIGluc2VydE1lbnVJdGVtID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIHdlYWtQYWdlID0gbWFrZVdlYWtQdHIocGFnZSgpKSwgaW1hZ2VVUkwg
PSBXVEZNb3ZlKGltYWdlVVJMKSwgaW1hZ2VCaXRtYXAgPSBXVEZNb3ZlKGltYWdlQml0bWFwKSwg
bG9va1VwSW1hZ2VJdGVtID0gV1RGTW92ZShsb29rVXBJbWFnZUl0ZW0pLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBpdGVtc1JlbWFpbmluZyA9IGZpbHRl
cmVkSXRlbXMuc2l6ZSgpLCBtZW51ID0gV1RGTW92ZShtZW51KSwgc3BhcnNlTWVudUl0ZW1zXShO
U01lbnVJdGVtICppdGVtLCBOU1VJbnRlZ2VyIGluZGV4KSBtdXRhYmxlIHsKKyAgICBhdXRvIGlu
c2VydE1lbnVJdGVtID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIHdlYWtQYWdlID0gbWFrZVdlYWtQdHIocGFnZSgpKSwgaW1hZ2VVUkwgPSBXVEZNb3ZlKGlt
YWdlVVJMKSwgaW1hZ2VCaXRtYXAgPSBXVEZNb3ZlKGltYWdlQml0bWFwKSwgc2hvdWxkVXBkYXRl
UXVpY2tMb29rSXRlbVRpdGxlLCBxdWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCA9IFdURk1v
dmUocXVpY2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBpdGVtc1JlbWFpbmluZyA9IGZpbHRlcmVkSXRlbXMu
c2l6ZSgpLCBtZW51ID0gV1RGTW92ZShtZW51KSwgc3BhcnNlTWVudUl0ZW1zXShOU01lbnVJdGVt
ICppdGVtLCBOU1VJbnRlZ2VyIGluZGV4KSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGluZGV4
IDwgW3NwYXJzZU1lbnVJdGVtcyBjb3VudF0pOwogICAgICAgICBBU1NFUlQoIVtzcGFyc2VNZW51
SXRlbXMgcG9pbnRlckF0SW5kZXg6aW5kZXhdKTsKICAgICAgICAgW3NwYXJzZU1lbnVJdGVtcyBy
ZXBsYWNlUG9pbnRlckF0SW5kZXg6aW5kZXggd2l0aFBvaW50ZXI6aXRlbV07CkBAIC01NDEsMTMg
KzU0NywxMiBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmdldENvbnRleHRNZW51RnJv
bUl0ZW1zKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudQogICAgICAgICBbbWVudSBzZXRJdGVt
QXJyYXk6W3NwYXJzZU1lbnVJdGVtcyBhbGxPYmplY3RzXV07CiAKICAgICAgICAgYXV0byBwYWdl
ID0gbWFrZVJlZlB0cih3ZWFrUGFnZS5nZXQoKSk7Ci0gICAgICAgIGlmIChsb29rVXBJbWFnZUl0
ZW0gJiYgcGFnZSAmJiBpbWFnZUJpdG1hcCkgeworICAgICAgICBpZiAocGFnZSAmJiBpbWFnZUJp
dG1hcCkgewogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKLSAgICAgICAgICAgIHBhZ2UtPmNv
bXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGltYWdlVVJMLCAqaW1hZ2VCaXRtYXAsIFtwcm90
ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgbG9va1VwSW1hZ2VJdGVtID0gV1RG
TW92ZSgqbG9va1VwSW1hZ2VJdGVtKV0gKGJvb2wgaGFzVmlzdWFsU2VhcmNoUmVzdWx0cykgbXV0
YWJsZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpCi0gICAg
ICAgICAgICAgICAgICAgIFtwcm90ZWN0ZWRUaGlzLT5tX21lbnUgYWRkSXRlbTpjcmVhdGVNZW51
QWN0aW9uSXRlbShsb29rVXBJbWFnZUl0ZW0pLmdldCgpXTsKLSAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgcHJvdGVjdGVkVGhpcy0+aW5zZXJ0T3JVcGRhdGVRdWlja0xvb2tJbWFnZUl0ZW0o
aW1hZ2VVUkwsIGltYWdlQml0bWFwLnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUocXVpY2tMb29r
SXRlbVRvSW5zZXJ0SWZOZWVkZWQpLCBzaG91bGRVcGRhdGVRdWlja0xvb2tJdGVtVGl0bGUpOwog
I2Vsc2UKKyAgICAgICAgICAgIFVOVVNFRF9QQVJBTShxdWlja0xvb2tJdGVtVG9JbnNlcnRJZk5l
ZWRlZCk7CisgICAgICAgICAgICBVTlVTRURfUEFSQU0oc2hvdWxkVXBkYXRlUXVpY2tMb29rSXRl
bVRpdGxlKTsKICAgICAgICAgICAgIFVOVVNFRF9QQVJBTShpbWFnZVVSTCk7CiAjZW5kaWYKICAg
ICAgICAgfQpAQCAtNTYzLDYgKzU2OCw2MyBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6
OmdldENvbnRleHRNZW51RnJvbUl0ZW1zKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudQogICAg
IH0KIH0KIAorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKwordm9pZCBXZWJDb250ZXh0TWVu
dVByb3h5TWFjOjppbnNlcnRPclVwZGF0ZVF1aWNrTG9va0ltYWdlSXRlbShjb25zdCBVUkwmIGlt
YWdlVVJMLCBSZWY8U2hhcmVhYmxlQml0bWFwPiYmIGltYWdlQml0bWFwLCBzdGQ6Om9wdGlvbmFs
PFdlYkNvbnRleHRNZW51SXRlbURhdGE+JiYgcXVpY2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQs
IGJvb2wgc2hvdWxkVXBkYXRlUXVpY2tMb29rSXRlbVRpdGxlKQoreworICAgIGF1dG8gcGFnZSA9
IG1ha2VSZWYoKnRoaXMtPnBhZ2UoKSk7CisgICAgaWYgKHF1aWNrTG9va0l0ZW1Ub0luc2VydElm
TmVlZGVkKSB7CisgICAgICAgIHBhZ2UtPmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhp
bWFnZVVSTCwgaW1hZ2VCaXRtYXAuZ2V0KCksIEltYWdlQW5hbHlzaXNUeXBlOjpWaXN1YWxTZWFy
Y2gsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcXVpY2tMb29rSXRlbVRvSW5zZXJ0
SWZOZWVkZWQgPSBXVEZNb3ZlKCpxdWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCldIChib29s
IGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKGF1dG8g
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIod2Vha1RoaXMuZ2V0KCkpOyBwcm90ZWN0ZWRUaGlz
ICYmIGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpIHsKKyAgICAgICAgICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5tX3F1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSA9IFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0
eTo6VmlzdWFsU2VhcmNoOworICAgICAgICAgICAgICAgIFtwcm90ZWN0ZWRUaGlzLT5tX21lbnUg
YWRkSXRlbTpOU01lbnVJdGVtLnNlcGFyYXRvckl0ZW1dOworICAgICAgICAgICAgICAgIFtwcm90
ZWN0ZWRUaGlzLT5tX21lbnUgYWRkSXRlbTpjcmVhdGVNZW51QWN0aW9uSXRlbShxdWlja0xvb2tJ
dGVtVG9JbnNlcnRJZk5lZWRlZCkuZ2V0KCldOworICAgICAgICAgICAgfQorICAgICAgICB9KTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChzaG91bGRVcGRhdGVRdWlja0xvb2tJ
dGVtVGl0bGUpIHsKKyAgICAgICAgcGFnZS0+Y29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRz
KGltYWdlVVJMLCBpbWFnZUJpdG1hcC5nZXQoKSwgSW1hZ2VBbmFseXNpc1R5cGU6OlZpc3VhbFNl
YXJjaCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB3ZWFrUGFnZSA9IG1ha2VXZWFr
UHRyKHBhZ2UuZ2V0KCkpLCBpbWFnZVVSTCwgaW1hZ2VCaXRtYXAgPSBXVEZNb3ZlKGltYWdlQml0
bWFwKV0gKGJvb2wgaGFzVmlzdWFsU2VhcmNoUmVzdWx0cykgbXV0YWJsZSB7CisgICAgICAgICAg
ICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHdlYWtUaGlzLmdldCgpKTsKKyAgICAg
ICAgICAgIGlmICghcHJvdGVjdGVkVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgICAgIGF1dG8gcGFnZSA9IG1ha2VSZWZQdHIod2Vha1BhZ2UuZ2V0KCkpOworICAgICAg
ICAgICAgaWYgKCFwYWdlKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAg
aWYgKGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpIHsKKyAgICAgICAgICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5tX3F1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSA9IFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0
eTo6VmlzdWFsU2VhcmNoOworICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPnVwZGF0ZVF1
aWNrTG9va0NvbnRleHRNZW51SXRlbVRpdGxlKGNvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0lt
YWdlRm9yVmlzdWFsU2VhcmNoKCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgcGFnZS0+Y29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRz
KGltYWdlVVJMLCBpbWFnZUJpdG1hcC5nZXQoKSwgSW1hZ2VBbmFseXNpc1R5cGU6OlRleHQsIFt3
ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCB3ZWFrUGFnZV0gKGJvb2wgaGFzVGV4dCkgbXV0
YWJsZSB7CisgICAgICAgICAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih3
ZWFrVGhpcy5nZXQoKSk7CisgICAgICAgICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBwYWdl
ID0gbWFrZVJlZlB0cih3ZWFrUGFnZS5nZXQoKSk7IHBhZ2UgJiYgaGFzVGV4dCkKKyAgICAgICAg
ICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+dXBkYXRlUXVpY2tMb29rQ29udGV4dE1lbnVJdGVt
VGl0bGUoY29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2VGb3JUZXh0U2VsZWN0aW9uKCkp
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KK30KKwordm9pZCBXZWJDb250
ZXh0TWVudVByb3h5TWFjOjp1cGRhdGVRdWlja0xvb2tDb250ZXh0TWVudUl0ZW1UaXRsZShjb25z
dCBTdHJpbmcmIG5ld1RpdGxlKQoreworICAgIGZvciAoTlNJbnRlZ2VyIGl0ZW1JbmRleCA9IDA7
IGl0ZW1JbmRleCA8IFttX21lbnUgbnVtYmVyT2ZJdGVtc107ICsraXRlbUluZGV4KSB7CisgICAg
ICAgIGF1dG8gaXRlbSA9IFttX21lbnUgaXRlbUF0SW5kZXg6aXRlbUluZGV4XTsKKyAgICAgICAg
aWYgKHN0YXRpY19jYXN0PENvbnRleHRNZW51QWN0aW9uPihpdGVtLnRhZykgPT0gQ29udGV4dE1l
bnVJdGVtVGFnUXVpY2tMb29rSW1hZ2UpIHsKKyAgICAgICAgICAgIGl0ZW0udGl0bGUgPSBuZXdU
aXRsZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCisjZW5kaWYg
Ly8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCiB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6
OmdldENvbnRleHRNZW51SXRlbShjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpdGVtLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE5TTWVudUl0ZW0gKik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCAxYWIzNTBhNDMwZTNhMTVhMzc0ZTE2
NTlkZTdjOGY0NDgxOTk3NmZmLi5lMTI5MTMzNTc1ZGFjM2M1MzRlZjMwODgxYWY5NzU2MzQ1OGM2
ODE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMu
bW0KQEAgLTc0NiwxMyArNzQ2LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbG9zZVNoYXJlZFBy
ZXZpZXdQYW5lbElmTmVjZXNzYXJ5KCkKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAot
dm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRleHRNZW51TG9va1VwSW1hZ2UoKQordm9pZCBX
ZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRleHRNZW51UXVpY2tMb29rSW1hZ2UoUXVpY2tMb29rUHJl
dmlld0FjdGl2aXR5IGFjdGl2aXR5KQogewogICAgIGF1dG8mIHJlc3VsdCA9IG1fYWN0aXZlQ29u
dGV4dE1lbnVDb250ZXh0RGF0YS53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpOwogICAgIGlmICghcmVz
dWx0LmltYWdlQml0bWFwKQogICAgICAgICByZXR1cm47CiAKLSAgICBzaG93SW1hZ2VJblF1aWNr
TG9va1ByZXZpZXdQYW5lbCgqcmVzdWx0LmltYWdlQml0bWFwLCByZXN1bHQudG9vbFRpcFRleHQs
IFVSTCB7IFVSTCB7IH0sIHJlc3VsdC5hYnNvbHV0ZUltYWdlVVJMIH0sIFF1aWNrTG9va1ByZXZp
ZXdBY3Rpdml0eTo6VmlzdWFsU2VhcmNoKTsKKyAgICBzaG93SW1hZ2VJblF1aWNrTG9va1ByZXZp
ZXdQYW5lbCgqcmVzdWx0LmltYWdlQml0bWFwLCByZXN1bHQudG9vbFRpcFRleHQsIFVSTCB7IFVS
TCB7IH0sIHJlc3VsdC5hYnNvbHV0ZUltYWdlVVJMIH0sIGFjdGl2aXR5KTsKIH0KIAogdm9pZCBX
ZWJQYWdlUHJveHk6OnNob3dJbWFnZUluUXVpY2tMb29rUHJldmlld1BhbmVsKFNoYXJlYWJsZUJp
dG1hcCYgaW1hZ2VCaXRtYXAsIGNvbnN0IFN0cmluZyYgdG9vbHRpcCwgY29uc3QgVVJMJiBpbWFn
ZVVSTCwgUXVpY2tMb29rUHJldmlld0FjdGl2aXR5IGFjdGl2aXR5KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDVlOGVhNzdkYWVjZTAy
OGEwYjA5YmYyYzc2ODhmNDY4MzFhNzA3OC4uMzhmM2Q4NzAyY2QzYzNiMTRiYzQ0YTM1ODQ2Zjli
OGFkM2YxOGQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC01OTg0LDYgKzU5ODQsNyBAQAogCQlGNDRERkVCMDFFOUU3NTJGMDAzOEQx
OTYgLyogV2ViSWNvblV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXZWJJY29uVXRpbGl0aWVzLmg7IHBhdGggPSBpb3MvV2ViSWNvblV0aWxpdGllcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRERkVCMTFFOUU3NTJGMDAzOEQxOTYgLyogV2Vi
SWNvblV0aWxpdGllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9
IFdlYkljb25VdGlsaXRpZXMubW07IHBhdGggPSBpb3MvV2ViSWNvblV0aWxpdGllcy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ2NjBCQzEyNURFRjA4MTAwRTg2NTk4IC8qIFBh
c3RlYm9hcmRBY2Nlc3NJbnRlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFzdGVib2FyZEFjY2Vzc0lu
dGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDdBMDUxNjI2ODI3QTA5MDA3
RTVDRjIgLyogUXVpY2tMb29rUHJldmlld0FjdGl2aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1aWNr
TG9va1ByZXZpZXdBY3Rpdml0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDg1
NzBBMjI2NDRCRUM0MDBDMDVGNzEgLyogVGltZW91dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUaW1lb3V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0OEQy
QTg0MjE1ODNBMDIwMEM2NzUyQiAvKiBBcHBLaXRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwS2l0
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0OTZBNDJGMUY1OEEyNzIwMDRD
MTc1NyAvKiBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRHJhZ0Ry
b3BJbnRlcmFjdGlvblN0YXRlLmg7IHBhdGggPSBpb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MDQ1LDYgKzcwNDYsNyBAQAogCQkJ
CUNEQTI5QTFGMUNCRUI1RkIwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHku
bW0gKi8sCiAJCQkJQzE0NUNDMEUyM0RDQTQyNzAwM0E1RUVCIC8qIFByZWZlcmVuY2VPYnNlcnZl
ci5oICovLAogCQkJCUMxNUNCQjMzMjNGMzRDMzgwMDMwMENDNyAvKiBQcmVmZXJlbmNlT2JzZXJ2
ZXIubW0gKi8sCisJCQkJRjQ3QTA1MTYyNjgyN0EwOTAwN0U1Q0YyIC8qIFF1aWNrTG9va1ByZXZp
ZXdBY3Rpdml0eS5oICovLAogCQkJCTVDQjdBRkREMjNDNTI3M0QwMEU0OUNGMyAvKiBSZXNvdXJj
ZUxvYWREZWxlZ2F0ZS5oICovLAogCQkJCTVDQjdBRkRFMjNDNTI3M0QwMEU0OUNGMyAvKiBSZXNv
dXJjZUxvYWREZWxlZ2F0ZS5tbSAqLywKIAkJCQk1Q0E5ODU0QjIxMEJFQjczMDA1N0VCNkIgLyog
U2FmZUJyb3dzaW5nV2FybmluZ0NvY29hLm1tICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggYjQyMTZkYWE0YzAyYzFlZWQ3NzVjYmFi
NTRkYzA3OTg3MjUxMzI4YS4uYzAyMGI4YmJhMmQwMDQxZjNlNTRlN2YxOGM2YTM3NzY4MzNlZjA0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
CkBAIC02MTUsNyArNjE1LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TlNJbnRlZ2VyPiB0b1Rh
ZyhXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAgICAgICAgIHJldHVybiBXZWJN
ZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5oYW5jZWRGdWxsc2NyZWVuOwogICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnVHJhbnNsYXRlOgogICAgICAgICByZXR1cm4gV2ViTWVudUl0ZW1UYWdUcmFu
c2xhdGU7Ci0gICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZToKKyAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlOgogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnIC4uLiBDb250
ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432005</attachid>
            <date>2021-06-22 16:15:34 -0700</date>
            <delta_ts>2021-06-22 18:33:02 -0700</delta_ts>
            <desc>Fix GTK/WPE/Win builds (2)</desc>
            <filename>bug-227265-20210622161533.patch</filename>
            <type>text/plain</type>
            <size>49147</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJmMGFjNjg1MmZkMTI3ZWVjNDQ2MDY5
YTcxNjczYjc0NmVjYmU2ODQuLmRkNGZkYmVjN2Y1MTVmN2ZlOWViODZkMjExNmU2N2NlZjIyN2M0
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDYtMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0xpdmUgVGV4dF0gW21hY09TXSBBZGQgYW4g
aW50ZXJuYWwgb3B0aW9uIHRvIGRpc2FibGUgaW5saW5lIHRleHQgc2VsZWN0aW9uIGluIGltYWdl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjY1
CisgICAgICAgIHJkYXI6Ly83OTQ2MDE0MgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0
b24uCisKKyAgICAgICAgQWRkIGEgbmV3IGludGVybmFsIGZlYXR1cmUgZmxhZy4gU2VlIFdlYktp
dCBDaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sOgorCiAyMDIxLTA2LTIxICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRqdXN0IGBmZXRjaGAgcG9ydCBi
bG9ja2luZyBmb3IgcG9ydHMgOTkwLCA5ODkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYzNiY2M2NDJkYzM1MTUx
MDI3MzRmNDYzYjJjODVkNmM2OTUwOTFkLi41NTBkMGE0MDdlYjJkMTEyNGMwM2ViMTc2Zjg2M2U3
ZWE4ZmMzZmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjEtMDYtMjIgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0xpdmUgVGV4dF0g
W21hY09TXSBBZGQgYW4gaW50ZXJuYWwgb3B0aW9uIHRvIGRpc2FibGUgaW5saW5lIHRleHQgc2Vs
ZWN0aW9uIGluIGltYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI3MjY1CisgICAgICAgIHJkYXI6Ly83OTQ2MDE0MgorCisgICAgICAgIFJldmll
d2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBuZXcgZmVh
dHVyZSBmbGFnLiBTZWUgV2ViS2l0L0NoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAg
ICAgICogZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczoKKworICAgICAgICBBZGQgYWRkaXRp
b25hbCBsb2NhbGl6YWJsZSBzdHJpbmdzIHRvIHJlcHJlc2VudCBlYWNoIG9mIHRoZSBwb3NzaWJs
ZSB0aXRsZXMgZm9yIHRoZSAiUXVpY2sgTG9vayIvIkxvb2sgVXAiCisgICAgICAgIGNvbnRleHQg
bWVudSBpdGVtLiBXaGVuIGlubGluZSB0ZXh0IHNlbGVjdGlvbiBpcyBlbmFibGVkLCB0aGUgaXRl
bSBzaG93cyB1cCBhcyAiTG9vayBVcCIsIGFuZCBpcyBvbmx5IGFkZGVkIGlmCisgICAgICAgIHdl
IGFjdHVhbGx5IGRpc2NvdmVyIHZpc3VhbCBzZWFyY2ggcmVzdWx0cy4KKworICAgICAgICBIb3dl
dmVyLCB3aGVuIGlubGluZSB0ZXh0IHNlbGVjdGlvbiBpcyBkaXNhYmxlZCwgdGhpcyBpdGVtIHdp
bGwgYWx3YXlzIGJlIGFkZGVkIHRvIHRoZSBjb250ZXh0IG1lbnUgdW5kZXIgdGhlCisgICAgICAg
IHRpdGxlICJRdWljayBMb29rIiwgYW5kIHdpbGwgYmUgcmV0aXRsZWQgdG8gZWl0aGVyICJMb29r
IFVwIGluIFF1aWNrIExvb2siIG9yICJTZWxlY3QgVGV4dCBpbiBRdWljayBMb29rIiBvbmNlCisg
ICAgICAgIGVpdGhlciB2aXN1YWwgc2VhcmNoIHJlc3VsdHMgb3IgdGV4dCBpcyByZWNvZ25pemVk
LCByZXNwZWN0aXZlbHkuCisKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51
SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6
cG9wdWxhdGUpOgorCisgICAgICAgIEluIHRoZSBjYXNlIHdoZXJlIGlubGluZSB0ZXh0IHNlbGVj
dGlvbiBpcyBkaXNhYmxlZCwgYWRkIHRoZSBRdWljayBMb29rIGl0ZW0gdG8gdGhlIGVuZCBvZiB0
aGUgY29udGV4dCBtZW51LAorICAgICAgICBhZnRlciBhIHNlcGFyYXRvci4gTm90ZSB0aGF0IGlu
IHRoZSBjYXNlIHdoZXJlIGlubGluZSB0ZXh0IHNlbGVjdGlvbiBpcyBlbmFibGVkLCBpdCBkb2Vz
bid0IGFjdHVhbGx5IG1hdHRlcgorICAgICAgICB3aGVyZSB3ZSBhZGQgdGhpcyBpdGVtLCBzaW5j
ZSBpdCBpcyBhdXRvbWF0aWNhbGx5IHJlbW92ZWQgYW5kIG9ubHkgcmVpbnNlcnRlZCBpZiB3ZSBm
aW5kIHZpc3VhbCBzZWFyY2ggcmVzdWx0cworICAgICAgICBmb3IgdGhlIGltYWdlLgorCisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNoZWNrT3JFbmFibGVJZk5lZWRl
ZCBjb25zdCk6CisKKyAgICAgICAgUmVuYW1lIHRoZSBleGlzdGluZyBDb250ZXh0TWVudUl0ZW1U
YWdMb29rVXBJbWFnZSB0byBDb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZSwgc2luY2Ug
aXQgaXMgbm8gbG9uZ2VyCisgICAgICAgIGxpbWl0ZWQgdG8gdGhlIHZpc3VhbCBsb29rIHVwIGZl
YXR1cmUuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZU1vdXNlRXZlbnRUYXJnZXROb2RlKToKKworICAgICAg
ICBDb25zdWx0IHRoZSBmZWF0dXJlIGZsYWcgYW5kIGF2b2lkIGtpY2tpbmcgb2ZmIHRoZSB0ZXh0
IHJlY29nbml0aW9uIHRpbWVyIGlmIGlubGluZSB0ZXh0IHNlbGVjdGlvbiBpcyBkaXNhYmxlZC4K
KworICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjppc1ZhbGlkQ29udGV4dE1lbnVBY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRl
eHRNZW51SXRlbS5oOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZUZvclRleHRTZWxlY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2VGb3JW
aXN1YWxTZWFyY2gpOgorCiAyMDIxLTA2LTIxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gW1dlYktpdExlZ2FjeV0gTm9uLWFjdGlvbmFi
bGUgIkxvb2sgVXAiIGFjdGlvbiBhcHBlYXJzIHdoZW4gcmlnaHQgY2xpY2tpbmcgaW1hZ2VzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGEzZjZjMWYxYzliNmE4MGI3MWMzNmM3OTFjMWRhNGU0YWYzY2E4MDYuLjJmZWRl
YjAxMzE0ZmNhYTczMDhmNmNlZmM5Y2Q1OTRhMDRhOGZhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
ODYgQEAKKzIwMjEtMDYtMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CisKKyAgICAgICAgW0xpdmUgVGV4dF0gW21hY09TXSBBZGQgYW4gaW50ZXJuYWwgb3B0aW9uIHRv
IGRpc2FibGUgaW5saW5lIHRleHQgc2VsZWN0aW9uIGluIGltYWdlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjY1CisgICAgICAgIHJkYXI6Ly83
OTQ2MDE0MgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgUmVm
YWN0b3IgTGl2ZSBUZXh0IGFuZCBWaXN1YWwgTG9vayBVcCBsb2dpYywgc3VjaCB0aGF0IHRoZSBh
YmlsaXR5IHRvIHNlbGVjdCB0ZXh0IGluc2lkZSBvZiBpbWFnZXMgaXMgYmVoaW5kIGFuCisgICAg
ICAgIGludGVybmFsIGZlYXR1cmUgZmxhZyB0aGF0IGNhbiBiZSB0b2dnbGVkIGF0IHJ1bnRpbWUu
IFdoZW4gTGl2ZSBUZXh0IGlzIGRpc2FibGVkLCB3ZSdsbCB1bmNvbmRpdGlvbmFsbHkgc2hvdyB0
aGUKKyAgICAgICAgIkxvb2sgVXAiIGNvbnRleHQgbWVudSBhY3Rpb24gdXNpbmcgdGhlIG1vcmUg
Z2VuZXJpYyB0aXRsZSAiUXVpY2sgTG9vayIuIFRoaXMgIlF1aWNrIExvb2siIGFjdGlvbiBpcyB0
aGVuCisgICAgICAgIHJldGl0bGVkIHRvIGVpdGhlciAiTG9vayBVcCBpbiBRdWljayBMb29rIiBv
ciAiU2VsZWN0IFRleHQgaW4gUXVpY2sgTG9vayIgb25jZSBpbWFnZSBhbmFseXNpcyBjb21wbGV0
ZXMuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmg6CisgICAgICAg
IChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAgKFdlYktpdDo6dG9JbXBsKToKKworICAgICAgICBS
ZW5hbWUgQ29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UgdG8gQ29udGV4dE1lbnVJdGVtVGFn
UXVpY2tMb29rSW1hZ2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUXVpY2tMb29rUHJl
dmlld0FjdGl2aXR5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
S1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVyLmguCisKKyAgICAgICAgTW92ZSB0aGlzIGVudW0g
b3V0IG9mIFdLUXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIuaCwgc3VjaCB0aGF0IHdlIGNhbiB1
c2UgYW5kIGltcG9ydCBpdCBpbiBub24tQ29jb2EgaGVhZGVycworICAgICAgICBhbmQgaW1wbGVt
ZW50YXRpb24gZmlsZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjpjb21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMpOgorCisg
ICAgICAgIFJlbmFtZSBgY29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHNgIHRvIGBjb21wdXRl
SGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHNgLCBhbmQgYWxsb3cgaXQgdG8gdGFrZSBhIGZsYWcgdG8K
KyAgICAgICAgaW5kaWNhdGUgd2hldGhlciBvciBub3QgaXQgc2hvdWxkIHJlcXVlc3QgdGV4dCBy
ZWNvZ25pdGlvbiByZXN1bHRzIG9yIHZpc3VhbCBzZWFyY2ggcmVzdWx0cy4gV2UgdXNlIHRoaXMg
Zm9yIHRoZQorICAgICAgICAiUXVpY2sgTG9vayIgY29udGV4dCBtZW51IGFjdGlvbiB3aGVuIGlu
bGluZSB0ZXh0IHNlbGVjdGlvbiBpcyBkaXNhYmxlZCwgaW4gb3JkZXIgdG8gcmV0aXRsZSB0aGUg
aXRlbSB0byAiU2VsZWN0CisgICAgICAgIFRleHQgaW4gUXVpY2sgTG9vayIuCisKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50Ojpjb21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMpOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50Ojpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eTo6cXVpY2tMb29rUHJldmlld0FjdGl2aXR5IGNv
bnN0KToKKworICAgICAgICBBZGQgYSBmbGFnIHRvIFdlYkNvbnRleHRNZW51UHJveHkgdG8gZGV0
ZXJtaW5lIHdoYXQgaW5pdGlhbCBhY3Rpdml0eSB0byB1c2Ugd2hlbiBwcmVzZW50aW5nIHRoZSBR
dWlja0xvb2sKKyAgICAgICAgcHJldmlldyBwYW5lbCBhZnRlciBzZWxlY3RpbmcgdGhlIENvbnRl
eHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlIGl0ZW0uCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZXh0
TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tcHV0
ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyk6IERlbGV0ZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y29tcHV0ZUhhc0ltYWdlQW5hbHlz
aXNSZXN1bHRzKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmNvbXB1dGVIYXNW
aXN1YWxTZWFyY2hSZXN1bHRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dL
UXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dL
UXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIubW06CisgICAgICAgICogVUlQcm9jZXNzL21hYy9X
ZWJDb250ZXh0TWVudVByb3h5TWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250
ZXh0TWVudVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjptZW51SXRlbUlkZW50aWZpZXIp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVu
dUZyb21JdGVtcyk6CisKKyAgICAgICAgQWRkIGxvZ2ljIHRvIGVpdGhlciByZW1vdmUgYW5kIHJl
aW5zZXJ0IHRoZSAiTG9vayBVcCIgY29udGV4dCBtZW51IGFjdGlvbiAoaWYgaW5saW5lIHRleHQg
c2VsZWN0aW9uIGluIGltYWdlcyBpcworICAgICAgICBlbmFibGVkKSwgb3IgdG8gcHJvbW90ZSB0
aGUgIlF1aWNrIExvb2siIGNvbnRleHQgbWVudSBhY3Rpb24gdG8gZWl0aGVyICJTZWxlY3QgVGV4
dCBpbiBRdWljayBMb29rIiBvciAiTG9vayBVcAorICAgICAgICBpbiBRdWljayBMb29rIiBpbiB0
aGUgY2FzZSB3aGVyZSBpbmxpbmUgdGV4dCBzZWxlY3Rpb24gaW4gaW1hZ2VzIGlzIGRpc2FibGVk
LgorCisgICAgICAgIE5vdGUgdGhhdCB3aGVuIGlubGluZSB0ZXh0IHNlbGVjdGlvbiBpbiBpbWFn
ZXMgaXMgZGlzYWJsZWQsIHdlJ2xsIGZpcnN0IGNoZWNrIGZvciB2aXN1YWwgc2VhcmNoIHJlc3Vs
dHMgYmVmb3JlCisgICAgICAgIGNoZWNraW5nIGZvciB0ZXh0LiBUaGlzIGlzIGJlY2F1c2Ugdmlz
dWFsIHNlYXJjaCByZXN1bHRzIHdpbGwgdGFrZSBwcmVjZWRlbmNlIG92ZXIgdGV4dCBzZWxlY3Rp
b24gKGkuZS4sIHdlJ2xsCisgICAgICAgIHNob3cgIkxvb2sgVXAgaW4gUXVpY2sgTG9vayIgZXZl
biBpZiBib3RoIHZpc3VhbCBzZWFyY2ggcmVzdWx0cyBhbmQgdGV4dCBpcyBwcmVzZW50KSwgc28g
d2UgY2FuIGF2b2lkIHBlcmZvcm1pbmcKKyAgICAgICAgdGV4dCBhbmFseXNpcyBpbiB0aGUgY2Fz
ZSB3aGVyZSB3ZSBhbHJlYWR5IGZvdW5kIHZpc3VhbCBzZWFyY2ggcmVzdWx0cy4KKworICAgICAg
ICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjppbnNlcnRPclVwZGF0ZVF1aWNrTG9v
a0ltYWdlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnVw
ZGF0ZVF1aWNrTG9va0NvbnRleHRNZW51SXRlbVRpdGxlKToKKworICAgICAgICBBZGQgYSBoZWxw
ZXIgbWV0aG9kIHRvIGZpbmQgYW5kIHVwZGF0ZSB0aGUgdGl0bGUgb2YgdGhlIE5TTWVudUl0ZW0g
Y29ycmVzcG9uZGluZyB0bworICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFn
ZS4gU2VlIGBnZXRDb250ZXh0TWVudUZyb21JdGVtc2AgYWJvdmUgZm9yIG1vcmUgZGV0YWlscy4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRleHRNZW51UXVpY2tMb29rSW1hZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRleHRNZW51TG9va1VwSW1h
Z2UpOiBEZWxldGVkLgorCisgICAgICAgIFJlbmFtZSB0aGlzIHRvIGBoYW5kbGVDb250ZXh0TWVu
dVF1aWNrTG9va0ltYWdlYCwgYW5kIGhhdmUgaXQgdGFrZSBhbiBhcmd1bWVudCB0byBpbmRpY2F0
ZSB3aGV0aGVyIHRoZSBRdWlja0xvb2sKKyAgICAgICAgcGFuZWwgc2hvdWxkIHN0YXJ0IG91dCBp
biBWaXN1YWwgTG9vayBVcCBtb2RlLgorCisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisKIDIwMjEtMDYtMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgW3dhdGNoT1NdIEF1dG9tYXRpY2FsbHkgYXBwbHkgc3lzdGVt
IG1pbmltdW0gbGF5b3V0IG1hcmdpbnMgYXMgc2Nyb2xsIHZpZXcgY29udGVudCBpbnNldHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBhMGNlNWEwMDVjZjQ2NDgwYjZkMWRhMDg5N2Qy
NmY5ZjdkMDk3ZTI2Li4yOGY2NDEzMjBlOWJkMTE2NTE3MDdhY2MwMTNmYWJmMjM0Y2JiNWQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDYtMjIg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0xpdmUg
VGV4dF0gW21hY09TXSBBZGQgYW4gaW50ZXJuYWwgb3B0aW9uIHRvIGRpc2FibGUgaW5saW5lIHRl
eHQgc2VsZWN0aW9uIGluIGltYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI3MjY1CisgICAgICAgIHJkYXI6Ly83OTQ2MDE0MgorCisgICAgICAg
IFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgUmVuYW1lIENvbnRleHRNZW51SXRl
bVRhZ0xvb2tVcEltYWdlIHRvIENvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlLgorCisg
ICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKHRvVGFnKToKKwogMjAy
MS0wNi0yMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbbWFjT1NdIFtXZWJLaXRMZWdhY3ldIE5vbi1hY3Rpb25hYmxlICJMb29rIFVwIiBhY3Rpb24g
YXBwZWFycyB3aGVuIHJpZ2h0IGNsaWNraW5nIGltYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbCBiL1NvdXJj
ZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKaW5k
ZXggMTgzODlmYzc2ZWVhNzdjMGE0YWYwMTc1YzUzZDViZTg1MTU2ZGEyZS4uNjZlYmE3OTdiMzc1
OTA0ZGJhNTBiNDFmMTc5M2MyYzYyNzY0NDg3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAorKysgYi9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCkBAIC01
ODQsNiArNTg0LDE5IEBAIFByZWZlckZhc3RlckNsaWNrT3ZlckRvdWJsZVRhcDoKICAgICAgICJQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykiOiB0cnVlCiAgICAgICBk
ZWZhdWx0OiBmYWxzZQogCitQcmVmZXJJbmxpbmVUZXh0U2VsZWN0aW9uSW5JbWFnZXM6CisgIHR5
cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJJbmxpbmUgVGV4dCBTZWxlY3Rpb24gaW4g
SW1hZ2VzIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJQcmVmZXIgaW5saW5lIHRleHQg
c2VsZWN0aW9uIGluIGltYWdlcyBvdmVyIHVzaW5nIHRoZSBjb250ZXh0IG1lbnUiCisgIGNvbmRp
dGlvbjogRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViQ29y
ZToKKyAgICAgIGRlZmF1bHQ6IHRydWUKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0
OiB0cnVlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogdHJ1ZQorCiBQcmVmZXJQYWdlUmVu
ZGVyaW5nVXBkYXRlc05lYXI2MEZQU0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFk
YWJsZU5hbWU6ICJQcmVmZXIgUGFnZSBSZW5kZXJpbmcgVXBkYXRlcyBuZWFyIDYwZnBzIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncyBiL1Nv
dXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKaW5kZXggN2VhNDk3ZWUx
YmNjZjBmYTNhODljYTg2NTA3YTg5NzgwNDIwMmExOS4uNzE2NmY5YWZlYWZmM2YyYzgwNmVlZWY1
MzYxODc0Y2I3NDk2NjI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9j
YWxpemFibGUuc3RyaW5ncworKysgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJs
ZS5zdHJpbmdzCkBAIC01NzcsNiArNTc3LDkgQEAKIC8qIExvb2sgVXAgaW4gRGljdGlvbmFyeSBj
b250ZXh0IG1lbnUgaXRlbSAqLwogIkxvb2sgVXAgaW4gRGljdGlvbmFyeSIgPSAiTG9vayBVcCBp
biBEaWN0aW9uYXJ5IjsKIAorLyogVGl0bGUgZm9yIFF1aWNrIExvb2sgYWN0aW9uIGJ1dHRvbiBm
b3IgaW1hZ2VzIHdpdGggdmlzdWFsIHNlYXJjaCByZXN1bHRzICovCisiTG9vayBVcCBpbiBRdWlj
ayBMb29rIiA9ICJMb29rIFVwIGluIFF1aWNrIExvb2siOworCiAvKiBMb29rIFVwIGNvbnRleHQg
bWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCAqLwogIkxvb2sgVXAg4oCcJUDigJ0iID0gIkxv
b2sgVXAg4oCcJUDigJ0iOwogCkBAIC03NTEsNiArNzU0LDkgQEAKIC8qIERlc2NyaXB0aW9uIG9m
IHRoZSBQb3N0U2NyaXB0IHR5cGUgc3VwcG9ydGVkIGJ5IHRoZSBQREYgcHNldWRvIHBsdWctaW4u
IFZpc2libGUgaW4gdGhlIEluc3RhbGxlZCBQbHVnLWlucyBwYWdlIGluIFNhZmFyaS4gKi8KICJQ
b3N0U2NyaXB0IiA9ICJQb3N0U2NyaXB0IjsKIAorLyogVGl0bGUgZm9yIFF1aWNrIExvb2sgYWN0
aW9uIGJ1dHRvbiAqLworIlF1aWNrIExvb2siID0gIlF1aWNrIExvb2siOworCiAvKiBVbmRvIGFj
dGlvbiBuYW1lICovCiAiUmFpc2UgQmFzZWxpbmUgKFVuZG8gYWN0aW9uIG5hbWUpIiA9ICJSYWlz
ZSBCYXNlbGluZSI7CiAKQEAgLTc5Myw2ICs3OTksOSBAQAogLyogU2VhcmNoIHdpdGggc2VhcmNo
IHByb3ZpZGVyIGNvbnRleHQgbWVudSBpdGVtIHdpdGggcHJvdmlkZXIgbmFtZSBpbnNlcnRlZCAq
LwogIlNlYXJjaCB3aXRoICVAIiA9ICJTZWFyY2ggd2l0aCAlQCI7CiAKKy8qIFRpdGxlIGZvciBR
dWljayBMb29rIGFjdGlvbiBidXR0b24gZm9yIGltYWdlcyB3aXRoIHRleHQgKi8KKyJTZWxlY3Qg
VGV4dCBpbiBRdWljayBMb29rIiA9ICJTZWxlY3QgVGV4dCBpbiBRdWljayBMb29rIjsKKwogLyog
VmFsaWRhdGlvbiBtZXNzYWdlIGZvciByZXF1aXJlZCBmaWxlIGlucHV0cyB0aGF0IGhhdmUgbm8g
dmFsdWUgKi8KICJTZWxlY3QgYSBmaWxlIiA9ICJTZWxlY3QgYSBmaWxlIjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4IDBkYWE1ZTM2YmRh
ZDZlNjAzMzYyZGU4MTM5MTQwYWM3ZDk4ZjlmOTIuLmM0ZTQzZTg4ZGZkOWY4NzUzOTYwZWQ5M2Uz
ZTJjNGZkZTFjZWQwOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1l
bnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29u
dHJvbGxlci5jcHAKQEAgLTUxNSw3ICs1MTUsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxl
cjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwog
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRGljdGF0aW9uQWx0ZXJuYXRpdmU6CiAgICAgICAg
IGZyYW1lLT5lZGl0b3IoKS5hcHBseURpY3RhdGlvbkFsdGVybmF0aXZlKHRpdGxlKTsKICAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZToKKyAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlOgogICAgICAgICAvLyBUaGlzIHNo
b3VsZCBiZSBoYW5kbGVkIGF0IHRoZSBjbGllbnQgbGF5ZXIuCiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKQEAgLTgyNCw5ICs4MjQsNiBAQCB2b2lkIENvbnRl
eHRNZW51Q29udHJvbGxlcjo6cG9wdWxhdGUoKQogICAgIENvbnRleHRNZW51SXRlbSBTZWxlY3RB
bGxJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCwgY29udGV4dE1l
bnVJdGVtVGFnU2VsZWN0QWxsKCkpOwogICAgIENvbnRleHRNZW51SXRlbSBJbnNlcnRFbW9qaUl0
ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnSW5zZXJ0RW1vamksIGNvbnRleHRNZW51
SXRlbVRhZ0luc2VydEVtb2ppKCkpOwogI2VuZGlmCi0jaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lT
KQotICAgIENvbnRleHRNZW51SXRlbSBMb29rVXBJbWFnZUl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4
dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UsIGNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlKCkp
OwotI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikKICAgICBDb250
ZXh0TWVudUl0ZW0gU2hhcmVNZW51SXRlbTsKQEAgLTg1MSw2ICs4NDgsMTIgQEAgdm9pZCBDb250
ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRlKCkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgYm9vbCBzaG91bGRBcHBlbmRRdWlja0xv
b2tJbWFnZUl0ZW0gPSBmYWxzZTsKKyAgICBhdXRvIHF1aWNrTG9va0l0ZW1UaXRsZSA9IGZyYW1l
LT5zZXR0aW5ncygpLnByZWZlcklubGluZVRleHRTZWxlY3Rpb25JbkltYWdlcygpID8gY29udGV4
dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UoKSA6IGNvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0lt
YWdlKCk7CisgICAgQ29udGV4dE1lbnVJdGVtIFF1aWNrTG9va0ltYWdlSXRlbSB7IEFjdGlvblR5
cGUsIENvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlLCBxdWlja0xvb2tJdGVtVGl0bGUg
fTsKKyNlbmRpZgorCiAgICAgYXV0byBhZGRTZWxlY3RlZFRleHRBY3Rpb25zSWZOZWVkZWQgPSBb
Jl0gKGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRUZXh0KSB7CiAgICAgICAgIGlmIChzZWxlY3RlZFRl
eHQuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtOTAwLDcgKzkwMyw3IEBAIHZv
aWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpwb3B1bGF0ZSgpCiAKICNpZiBFTkFCTEUoSU1BR0Vf
QU5BTFlTSVMpCiAgICAgICAgICAgICAgICAgaWYgKG1fY2xpZW50LnN1cHBvcnRzTG9va1VwSW5J
bWFnZXMoKSAmJiBpbWFnZSAmJiAhaW1hZ2UtPmlzQW5pbWF0ZWQoKSkKLSAgICAgICAgICAgICAg
ICAgICAgYXBwZW5kSXRlbShMb29rVXBJbWFnZUl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRBcHBlbmRRdWlja0xvb2tJbWFnZUl0ZW0gPSB0cnVl
OwogI2VuZGlmCiAgICAgICAgICAgICB9CiAjaWYgUExBVEZPUk0oR1RLKQpAQCAtMTE2NCw2ICsx
MTY3LDE4IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpwb3B1bGF0ZSgpCiAgICAgICAg
ICAgICBhcHBlbmRJdGVtKFNoYXJlTWVudUl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOwogICAg
ICAgICB9CiAgICAgfQorCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIGlmIChzaG91
bGRBcHBlbmRRdWlja0xvb2tJbWFnZUl0ZW0pIHsKKyAgICAgICAgaWYgKCFmcmFtZS0+c2V0dGlu
Z3MoKS5wcmVmZXJJbmxpbmVUZXh0U2VsZWN0aW9uSW5JbWFnZXMoKSkgeworICAgICAgICAgICAg
Ly8gSW4gdGhlIGNhc2Ugd2hlcmUgaW5saW5lIHRleHQgc2VsZWN0aW9uIGlzIGVuYWJsZWQsIHRo
ZSBMb29rIFVwIGl0ZW0gaXMgb25seSBhZGRlZCBpZgorICAgICAgICAgICAgLy8gd2UgZGlzY292
ZXIgdmlzdWFsIGxvb2sgdXAgcmVzdWx0cyBhZnRlciBpbWFnZSBhbmFseXNpcy4gSW4gdGhhdCBz
Y2VuYXJpbywgYSBzZXBhcmF0b3IKKyAgICAgICAgICAgIC8vIGlzIG9ubHkgYWRkZWQgYmVmb3Jl
IHRoZSBMb29rIFVwIGl0ZW0gb25jZSB3ZSdyZSBjZXJ0YWluIHRoYXQgd2Ugd2FudCB0byBzaG93
IGl0LgorICAgICAgICAgICAgYXBwZW5kSXRlbSgqc2VwYXJhdG9ySXRlbSgpLCBtX2NvbnRleHRN
ZW51LmdldCgpKTsKKyAgICAgICAgfQorICAgICAgICBhcHBlbmRJdGVtKFF1aWNrTG9va0ltYWdl
SXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CisgICAgfQorI2VuZGlmIC8vIEVOQUJMRShJTUFH
RV9BTkFMWVNJUykKIH0KIAogdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmFkZEluc3BlY3RF
bGVtZW50SXRlbSgpCkBAIC0xNDg5LDcgKzE1MDQsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJv
bGxlcjo6Y2hlY2tPckVuYWJsZUlmTmVlZGVkKENvbnRleHRNZW51SXRlbSYgaXRlbSkgY29uc3QK
ICAgICAgICAgICAgIHNob3VsZEVuYWJsZSA9IG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkubWVk
aWFIYXNBdWRpbygpOwogICAgICAgICAgICAgc2hvdWxkQ2hlY2sgPSBzaG91bGRFbmFibGUgJiYg
IG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkubWVkaWFNdXRlZCgpOwogICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2U6CisgICAgICAg
IGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2U6CiAgICAgICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGY1YjFmOTE4MTg0MDVkOWZkZmU1MDNj
MzlmOTc1MmZhY2E4MzU5ZTMuLmRmOWMzOTYyYzYxODkyNzBlYzhkMTg5YjJiNGJjNzQ3MTVlODY3
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI1MzcsMTAgKzI1Mzcs
MTIgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZU1vdXNlRXZlbnRUYXJnZXROb2RlKGNvbnN0
IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSoKICAgICBtX2VsZW1lbnRVbmRlck1vdXNlID0g
dGFyZ2V0RWxlbWVudDsKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKLSAgICBpZiAoIW1f
ZWxlbWVudFVuZGVyTW91c2UgfHwgIWlzPFJlbmRlckltYWdlPihtX2VsZW1lbnRVbmRlck1vdXNl
LT5yZW5kZXJlcigpKSkKLSAgICAgICAgbV90ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyLnN0b3Ao
KTsKLSAgICBlbHNlIGlmICghcGxhdGZvcm1Nb3VzZUV2ZW50Lm1vdmVtZW50RGVsdGEoKS5pc1pl
cm8oKSkKLSAgICAgICAgbV90ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyLnJlc3RhcnQoKTsKKyAg
ICBpZiAobV9mcmFtZS5zZXR0aW5ncygpLnByZWZlcklubGluZVRleHRTZWxlY3Rpb25JbkltYWdl
cygpKSB7CisgICAgICAgIGlmICghbV9lbGVtZW50VW5kZXJNb3VzZSB8fCAhaXM8UmVuZGVySW1h
Z2U+KG1fZWxlbWVudFVuZGVyTW91c2UtPnJlbmRlcmVyKCkpKQorICAgICAgICAgICAgbV90ZXh0
UmVjb2duaXRpb25Ib3ZlclRpbWVyLnN0b3AoKTsKKyAgICAgICAgZWxzZSBpZiAoIXBsYXRmb3Jt
TW91c2VFdmVudC5tb3ZlbWVudERlbHRhKCkuaXNaZXJvKCkpCisgICAgICAgICAgICBtX3RleHRS
ZWNvZ25pdGlvbkhvdmVyVGltZXIucmVzdGFydCgpOworICAgIH0KICNlbmRpZiAvLyBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCiAKICAgICBpZiAoYXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHAKaW5kZXggMzU1YThm
NGRlZTBiMDg0ZDIwMzdhYzNkNTM5Zjg1MDY5MDZhNzA3Yy4uNWQ4ZjdiNTIwZWIzN2QxNDRhZjY2
NGYwM2Y2N2Y5MzU5YWU3ODk0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q29udGV4dE1lbnVJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0
TWVudUl0ZW0uY3BwCkBAIC0yNTgsNyArMjU4LDcgQEAgYm9vbCBpc1ZhbGlkQ29udGV4dE1lbnVB
Y3Rpb24oQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rp
b246OkNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRnVsbHNjcmVlbjoKICAgICBjYXNlIENv
bnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdTaGFyZU1lbnU6CiAgICAgY2FzZSBD
b250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9FbmhhbmNlZEZ1
bGxzY3JlZW46Ci0gICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFn
TG9va1VwSW1hZ2U6CisgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVt
VGFnUXVpY2tMb29rSW1hZ2U6CiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1l
bnVJdGVtVGFnVHJhbnNsYXRlOgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRN
ZW51SXRlbUJhc2VDdXN0b21UYWc6CiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4
dE1lbnVJdGVtTGFzdEN1c3RvbVRhZzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0NvbnRleHRNZW51SXRlbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1l
bnVJdGVtLmgKaW5kZXggMDUxYzdiZWJhN2IyNzUyZDA5MDBkOWM4ODk4NWU5Yzc3YzM4NjlkZC4u
NmU1ZjYyZWI2ODdiNjY1MjRiMDUzZjg2NWNjNjQxODFhNDY2NmJkMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKQEAgLTE0Nyw3ICsxNDcsNyBAQCBlbnVtIENv
bnRleHRNZW51QWN0aW9uIHsKICAgICBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0VuaGFu
Y2VkRnVsbHNjcmVlbiwKICAgICBDb250ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb0N1cnJl
bnRRdWlja05vdGUsCiAgICAgQ29udGV4dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9OZXdRdWlj
a05vdGUsCi0gICAgQ29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UsCisgICAgQ29udGV4dE1l
bnVJdGVtVGFnUXVpY2tMb29rSW1hZ2UsCiAgICAgQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRl
LAogICAgIENvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcgPSA1MDAwLAogICAgIENvbnRleHRN
ZW51SXRlbUxhc3RDdXN0b21UYWcgPSA1OTk5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5oCmluZGV4IGNiZjBjYmNhMmJiNzVlMGU1ODFhNjY2NjcwM2ViOWZmYzk5
MGViZTAuLmQ4NTZhMGQ3MGJjOTBlZDRmMGE2NDEwM2QyNzgxNjJiNGQyMjJiMTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTM2OCw3ICszNjgsMTAg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAg
IFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSgpOwot
I2VuZGlmCisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1F1aWNr
TG9va0ltYWdlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1F1aWNrTG9va0ltYWdlRm9yVGV4dFNlbGVjdGlvbigpOworICAgIFdFQkNPUkVfRVhQT1JUIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZUZvclZpc3VhbFNlYXJjaCgpOwor
I2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogI2lmIEhBVkUoVFJBTlNMQVRJT05f
VUlfU0VSVklDRVMpCiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZShjb25z
dCBTdHJpbmcmIHNlbGVjdGVkU3RyaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQppbmRleCA4YjlmMTZkMjE3Njky
NWFjMTQ1MTYwYzRmZGNkZWNkN2YzZTgxNGFiLi4xZThmY2RhNzVhODBlNWY0ZDU4MjQwNWRkNTk4
YjIwY2FkNmY4MzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9M
b2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCkBAIC0zMTksNiArMzE5LDIxIEBAIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSgpCiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
Ikxvb2sgVXAiLCAiVGl0bGUgZm9yIExvb2sgVXAgYWN0aW9uIGJ1dHRvbiIpOwogfQogCi0jZW5k
aWYKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZSgpCit7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlF1aWNrIExvb2siLCAiVGl0bGUgZm9yIFF1aWNrIExvb2sgYWN0
aW9uIGJ1dHRvbiIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1h
Z2VGb3JUZXh0U2VsZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2VsZWN0
IFRleHQgaW4gUXVpY2sgTG9vayIsICJUaXRsZSBmb3IgUXVpY2sgTG9vayBhY3Rpb24gYnV0dG9u
IGZvciBpbWFnZXMgd2l0aCB0ZXh0Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdR
dWlja0xvb2tJbWFnZUZvclZpc3VhbFNlYXJjaCgpCit7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIkxvb2sgVXAgaW4gUXVpY2sgTG9vayIsICJUaXRsZSBmb3IgUXVpY2sgTG9vayBhY3Rpb24g
YnV0dG9uIGZvciBpbWFnZXMgd2l0aCB2aXN1YWwgc2VhcmNoIHJlc3VsdHMiKTsKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAppbmRleCAwYmVm
MGYzZDYxZDJlZmI0ZWY3NTg2MjY0ZmNiMzRlMmJmOTMzMTQyLi43YzNmMWNlY2YwZmMwMTJmMjc2
OWE2MmU5YWQ5MjRjYWFkYTllMzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvYy9XS1NoYXJlZEFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9X
S1NoYXJlZEFQSUNhc3QuaApAQCAtNTQzLDcgKzU0Myw3IEBAIGlubGluZSBXS0NvbnRleHRNZW51
SXRlbVRhZyB0b0FQSShXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAjZW5kaWYK
ICAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1NoYXJlTWVudToKICAgICAgICAg
cmV0dXJuIGtXS0NvbnRleHRNZW51SXRlbVRhZ1NoYXJlTWVudTsKLSAgICBjYXNlIFdlYkNvcmU6
OkNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlOgorICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4
dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2U6CiAgICAgICAgIHJldHVybiBrV0tDb250ZXh0TWVu
dUl0ZW1UYWdSZXZlYWxJbWFnZTsKICAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRh
Z1RyYW5zbGF0ZToKICAgICAgICAgcmV0dXJuIGtXS0NvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0
ZTsKQEAgLTc0Niw3ICs3NDYsNyBAQCBpbmxpbmUgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24g
dG9JbXBsKFdLQ29udGV4dE1lbnVJdGVtVGFnIHRhZykKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkNvbnRleHRNZW51SXRlbVRhZ1NoYXJlTWVudTsKICNlbmRpZgogICAgIGNhc2Uga1dLQ29udGV4
dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW1UYWdMb29rVXBJbWFnZTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNvbnRleHRN
ZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlOwogICAgIGNhc2Uga1dLQ29udGV4dE1lbnVJdGVtVGFn
VHJhbnNsYXRlOgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnVHJh
bnNsYXRlOwogICAgIGNhc2Uga1dLQ29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJblRoaXNXaW5k
b3c6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9RdWlja0xvb2tQ
cmV2aWV3QWN0aXZpdHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1F1aWNrTG9v
a1ByZXZpZXdBY3Rpdml0eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwZDM2NTYzZjFhNDlhODVhNTg3Mzk2YmI0
ZjMxOTFhNWU2M2Y2MGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9RdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkuaApAQCAtMCwwICsxLDM5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2VudW0gY2xhc3MgUXVpY2tMb29rUHJldmlld0FjdGl2aXR5IDogdWludDhf
dCB7CisgICAgTm9uZSwKKyAgICBWaXN1YWxTZWFyY2gsCit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggYmJjNjgzYWMwNzE1MTM4YTYwMWY4ZDg1Nzk2
YjkwMWZkYzE3MGIyZS4uYWM1MDU4YjgxMzFiMWRhZDNmYTE1NjBhMDgxNzMwNzRmZjNjMTQzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC0xNjgs
NiArMTY4LDcgQEAgY2xhc3MgV2ViUHJvY2Vzc1Byb3h5Owogc3RydWN0IFdlYkhpdFRlc3RSZXN1
bHREYXRhOwogCiBlbnVtIGNsYXNzIENvbnRpbnVlVW5zYWZlTG9hZCA6IGJvb2w7CitlbnVtIGNs
YXNzIEltYWdlQW5hbHlzaXNUeXBlIDogdWludDhfdDsKIGVudW0gY2xhc3MgVW5kb09yUmVkbyA6
IGJvb2w7CiAKIHR5cGVkZWYgaWQgPE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+IFZhbGlk
YXRpb25JdGVtOwpAQCAtNTk4LDcgKzU5OSw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShJTUFH
RV9BTkFMWVNJUykKICAgICB2b2lkIHJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBp
bWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+JiYpOwot
ICAgIHZvaWQgY29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiBpbWFnZVVS
TCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CisgICAgdm9pZCBjb21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMoY29uc3Qg
VVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgSW1hZ2VBbmFseXNp
c1R5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlmCiAKICAgICBi
b29sIGFjY2VwdHNQcmV2aWV3UGFuZWxDb250cm9sKFFMUHJldmlld1BhbmVsICopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA3YzM3M2VkNzE5
NjY4OTM4NTliZTE2YWU4MzQwOTczNGU5NWIwMDUwLi43MTc4OWUxMDIzMDU4NDQ2YWUxY2M4ZDkx
Mjk5MzI1MjI3NjQ1M2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQpAQCAtMjMwLDcgKzIzMCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnJlcXVlc3RU
ZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0CiAg
ICAgfSkuZ2V0KCldOwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRlSGFzVmlzdWFsU2Vh
cmNoUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0
bWFwLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24pCit2b2lkIFdl
YlZpZXdJbXBsOjpjb21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMoY29uc3QgVVJMJiBpbWFn
ZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgSW1hZ2VBbmFseXNpc1R5cGUgdHlw
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKQogewogICAgIGlm
ICghaXNMaXZlVGV4dEF2YWlsYWJsZUFuZEVuYWJsZWQoKSkgewogICAgICAgICBjb21wbGV0aW9u
KGZhbHNlKTsKQEAgLTIzOCwxMiArMjM4LDEzIEBAIHZvaWQgV2ViVmlld0ltcGw6OmNvbXB1dGVI
YXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpCiAg
ICAgfQogCiAgICAgYXV0byBjZ0ltYWdlID0gaW1hZ2VCaXRtYXAubWFrZUNHSW1hZ2UoKTsKLSAg
ICBhdXRvIHJlcXVlc3QgPSBjcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdChjZ0ltYWdlLmdldCgp
LCBpbWFnZVVSTCwgW05TVVJMIF93ZWJfVVJMV2l0aFdURlN0cmluZzptX3BhZ2UtPmN1cnJlbnRV
UkwoKV0sIFZLQW5hbHlzaXNUeXBlVmlzdWFsU2VhcmNoKTsKKyAgICBhdXRvIGFuYWx5c2lzVHlw
ZSA9IHR5cGUgPT0gSW1hZ2VBbmFseXNpc1R5cGU6OlZpc3VhbFNlYXJjaCA/IFZLQW5hbHlzaXNU
eXBlVmlzdWFsU2VhcmNoIDogVktBbmFseXNpc1R5cGVUZXh0OworICAgIGF1dG8gcmVxdWVzdCA9
IGNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0KGNnSW1hZ2UuZ2V0KCksIGltYWdlVVJMLCBbTlNV
UkwgX3dlYl9VUkxXaXRoV1RGU3RyaW5nOm1fcGFnZS0+Y3VycmVudFVSTCgpXSwgYW5hbHlzaXNU
eXBlKTsKICAgICBhdXRvIHN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwotICAgIFtl
bnN1cmVJbWFnZUFuYWx5emVyKCkgcHJvY2Vzc1JlcXVlc3Q6cmVxdWVzdC5nZXQoKSBwcm9ncmVz
c0hhbmRsZXI6bmlsIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY29tcGxldGlvbiA9
IFdURk1vdmUoY29tcGxldGlvbiksIHN0YXJ0VGltZV0gKFZLSW1hZ2VBbmFseXNpcyAqYW5hbHlz
aXMsIE5TRXJyb3IgKikgbXV0YWJsZSB7Ci0gICAgICAgIEJPT0wgcmVzdWx0ID0gW2FuYWx5c2lz
IGhhc1Jlc3VsdHNGb3JBbmFseXNpc1R5cGVzOlZLQW5hbHlzaXNUeXBlVmlzdWFsU2VhcmNoXTsK
LSAgICAgICAgQ0ZSdW5Mb29wUGVyZm9ybUJsb2NrKENGUnVuTG9vcEdldE1haW4oKSwgKF9fYnJp
ZGdlIENGU3RyaW5nUmVmKU5TRXZlbnRUcmFja2luZ1J1bkxvb3BNb2RlLCBtYWtlQmxvY2tQdHIo
W2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCByZXN1bHQsIHN0YXJ0VGltZV0gKCkg
bXV0YWJsZSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPRyhJbWFnZXMsICJJbWFnZSBhbmFseXNp
cyBjb21wbGV0ZWQgaW4gJS4wZiBtcyAoZm91bmQgdmlzdWFsIHNlYXJjaCByZXN1bHRzPyAlZCki
LCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydFRpbWUpLm1pbGxpc2Vjb25kcygpLCByZXN1
bHQpOworICAgIFtlbnN1cmVJbWFnZUFuYWx5emVyKCkgcHJvY2Vzc1JlcXVlc3Q6cmVxdWVzdC5n
ZXQoKSBwcm9ncmVzc0hhbmRsZXI6bmlsIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihb
Y29tcGxldGlvbiA9IFdURk1vdmUoY29tcGxldGlvbiksIHN0YXJ0VGltZSwgYW5hbHlzaXNUeXBl
XSAoVktJbWFnZUFuYWx5c2lzICphbmFseXNpcywgTlNFcnJvciAqKSBtdXRhYmxlIHsKKyAgICAg
ICAgQk9PTCByZXN1bHQgPSBbYW5hbHlzaXMgaGFzUmVzdWx0c0ZvckFuYWx5c2lzVHlwZXM6YW5h
bHlzaXNUeXBlXTsKKyAgICAgICAgQ0ZSdW5Mb29wUGVyZm9ybUJsb2NrKENGUnVuTG9vcEdldE1h
aW4oKSwgKF9fYnJpZGdlIENGU3RyaW5nUmVmKU5TRXZlbnRUcmFja2luZ1J1bkxvb3BNb2RlLCBt
YWtlQmxvY2tQdHIoW2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCByZXN1bHQsIGFu
YWx5c2lzVHlwZSwgc3RhcnRUaW1lXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIFJFTEVBU0Vf
TE9HKEltYWdlcywgIkltYWdlIGFuYWx5c2lzIGNvbXBsZXRlZCBpbiAlLjBmIG1zIChmb3VuZCAl
cz8gJWQpIiwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnRUaW1lKS5taWxsaXNlY29uZHMo
KSwgYW5hbHlzaXNUeXBlID09IFZLQW5hbHlzaXNUeXBlVmlzdWFsU2VhcmNoID8gInZpc3VhbCBz
ZWFyY2ggcmVzdWx0cyIgOiAidGV4dCIsIHJlc3VsdCk7CiAgICAgICAgICAgICBjb21wbGV0aW9u
KHJlc3VsdCk7CiAgICAgICAgIH0pLmdldCgpKTsKICAgICAgICAgQ0ZSdW5Mb29wV2FrZVVwKENG
UnVuTG9vcEdldE1haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
YWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXgg
ODc3MGFkNDYzODE2YmZlZjRjNGE5OTM3NDY1MzllMDJkMjFjZDU3Mi4uNjcwNDE2NGE5NTNlMGVm
NDVmNGE4Mjc4NTAzYjBmYjc4ZmE0OTY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaApAQCAtMTYwLDYgKzE2MCwxMCBAQCBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiAKIGVudW0g
Y2xhc3MgQ29udGludWVVbnNhZmVMb2FkIDogYm9vbCB7IE5vLCBZZXMgfTsKIAorI2lmIEVOQUJM
RShJTUFHRV9BTkFMWVNJUykKK2VudW0gY2xhc3MgSW1hZ2VBbmFseXNpc1R5cGUgOiB1aW50OF90
IHsgVGV4dCwgVmlzdWFsU2VhcmNoIH07CisjZW5kaWYKKwogc3RydWN0IEZvY3VzZWRFbGVtZW50
SW5mb3JtYXRpb247CiBzdHJ1Y3QgRnJhbWVJbmZvRGF0YTsKIHN0cnVjdCBJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbjsKQEAgLTU0MCw3ICs1NDQsNyBAQCBwdWJsaWM6CiAKICNpZiBF
TkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RUZXh0UmVjb2du
aXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUm
IGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRp
b25SZXN1bHQmJik+JiYgY29tcGxldGlvbikgeyBjb21wbGV0aW9uKHsgfSk7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgY29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiwgU2hhcmVh
YmxlQml0bWFwJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKSB7
IGNvbXBsZXRpb24oZmFsc2UpOyB9CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVIYXNJbWFnZUFu
YWx5c2lzUmVzdWx0cyhjb25zdCBVUkwmLCBTaGFyZWFibGVCaXRtYXAmLCBJbWFnZUFuYWx5c2lz
VHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKSB7IGNvbXBs
ZXRpb24oZmFsc2UpOyB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05U
RVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaAppbmRleCAxYjhmY2M4NDY2NGYzMDlhZmU1ZjRlYWNk
MjhiNTQxM2MxYjFiOTA3Li42MzBiZjExNzBkYTE3NmRjYzY1ZDY1OWMxZmRmN2MwNTE4NTkxMGU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5oCkBA
IC0zMyw2ICszMywxMCBAQAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIlF1aWNrTG9v
a1ByZXZpZXdBY3Rpdml0eS5oIgorI2VuZGlmCisKIE9CSkNfQ0xBU1MgTlNNZW51OwogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTUxLDYgKzU1LDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIHZpcnR1YWwgTlNNZW51ICpwbGF0Zm9ybU1lbnUoKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCBOU0FycmF5ICpwbGF0Zm9ybURhdGEoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBR
dWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgcXVpY2tMb29rUHJldmlld0FjdGl2aXR5KCkgY29uc3Qg
eyByZXR1cm4gUXVpY2tMb29rUHJldmlld0FjdGl2aXR5OjpOb25lOyB9OwogI2VuZGlmIC8vIFBM
QVRGT1JNKENPQ09BKQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCBhZmUyYjA4NmIzYjk4YjM0MTZiMmU5MTY3ZTI2YTUyNzUxYzEyNGY2
Li41YzQ5ZmNjOTVkNGNjMDBiMjRjYWU0OTgyNmJmMjNkYjE5NTlkYjZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTIxMiw2ICsyMTIsNyBAQAogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiSW5zZXJ0VGV4dE9wdGlvbnMuaCIKKyNpbmNsdWRl
ICJRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkuaCIKICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlU2Nyb2xsaW5nUGVy
Zm9ybWFuY2VEYXRhLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
IgpAQCAtNjkwOCw5ICs2OTA5LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZXh0TWVudUl0
ZW1TZWxlY3RlZChjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpdGVtKQogICAgICAgICAr
K21fcGVuZGluZ0xlYXJuT3JJZ25vcmVXb3JkTWVzc2FnZUNvdW50OwogICAgICAgICBicmVhazsK
IAotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2U6CisgICAgY2FzZSBDb250
ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZToKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMp
Ci0gICAgICAgIGhhbmRsZUNvbnRleHRNZW51TG9va1VwSW1hZ2UoKTsKKyAgICAgICAgaWYgKG1f
YWN0aXZlQ29udGV4dE1lbnUpCisgICAgICAgICAgICBoYW5kbGVDb250ZXh0TWVudVF1aWNrTG9v
a0ltYWdlKG1fYWN0aXZlQ29udGV4dE1lbnUtPnF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSgpKTsK
ICNlbmRpZgogICAgICAgICByZXR1cm47CiAKQEAgLTg1MDMsMTQgKzg1MDUsMTUgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mo
RnJhbWVJZGVudGlmaWVyIGYKIAogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCiB2b2lk
IFdlYlBhZ2VQcm94eTo6cmVxdWVzdFRleHRSZWNvZ25pdGlvbihjb25zdCBVUkwmIGltYWdlVVJM
LCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFRleHRSZWNvZ25pdGlvbihpbWFn
ZVVSTCwgaW1hZ2VEYXRhLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5Ojpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmIGlt
YWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24pCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29tcHV0ZUhhc0lt
YWdlQW5hbHlzaXNSZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYg
aW1hZ2VCaXRtYXAsIEltYWdlQW5hbHlzaXNUeXBlIHR5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbikKIHsKLSAgICBwYWdlQ2xpZW50KCkuY29tcHV0ZUhhc1Zp
c3VhbFNlYXJjaFJlc3VsdHMoaW1hZ2VVUkwsIGltYWdlQml0bWFwLCBXVEZNb3ZlKGNvbXBsZXRp
b24pKTsKKyAgICBwYWdlQ2xpZW50KCkuY29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKGlt
YWdlVVJMLCBpbWFnZUJpdG1hcCwgdHlwZSwgV1RGTW92ZShjb21wbGV0aW9uKSk7CiB9CiAKIHZv
aWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KFRleHRSZWNv
Z25pdGlvblJlc3VsdCYmIHJlc3VsdHMsIGNvbnN0IEVsZW1lbnRDb250ZXh0JiBjb250ZXh0LCBj
b25zdCBGbG9hdFBvaW50JiBsb2NhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChUZXh0UmVj
b2duaXRpb25VcGRhdGVSZXN1bHQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtODUyMiw3ICs4
NTI1LDggQEAgdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1
bHQoVGV4dFJlY29nbml0aW9uUmVzdWx0JiYgcmVzdWwKIAogICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViUGFnZTo6VXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChXVEZN
b3ZlKHJlc3VsdHMpLCBjb250ZXh0LCBsb2NhdGlvbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKIH0KLSNlbmRpZgorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiAj
aWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkmIFdlYlBhZ2VQcm94eTo6bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA2
NzU4YWY4MjlmMWU4ODUyMDVlMWViNGM0MThiZDIyYTZmMzQ5ZTNhLi5lYzVkMGNmMDVlM2I0MzU0
N2FmNTkzZGQ2NTM3YzAzNzgxN2U2YTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtNDAyLDYgKzQwMiw3IEBAIHN0cnVjdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3Jl
Owogc3RydWN0IFdlYlBvcHVwSXRlbTsKIHN0cnVjdCBXZWJTcGVlY2hTeW50aGVzaXNWb2ljZTsK
IAorZW51bSBjbGFzcyBJbWFnZUFuYWx5c2lzVHlwZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFRl
eHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIE5lZ290aWF0
ZWRMZWdhY3lUTFMgOiBib29sOwogZW51bSBjbGFzcyBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xp
ZW50IDogYm9vbDsKQEAgLTE2NTksNyArMTY2MCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCiAgICAgdm9pZCByZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVSTCYg
aW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmKTsK
ICAgICB2b2lkIHVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoV2ViQ29yZTo6VGV4dFJl
Y29nbml0aW9uUmVzdWx0JiYsIGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVGV4
dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0KT4mJik7Ci0gICAgdm9pZCBjb21wdXRlSGFzVmlzdWFs
U2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdl
Qml0bWFwLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIGNvbXB1
dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVC
aXRtYXAmIGltYWdlQml0bWFwLCBJbWFnZUFuYWx5c2lzVHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05U
RVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKQEAgLTE5MDYsNiArMTkwNyw3IEBAIHB1
YmxpYzoKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgRU5BQkxFKENPTlRFWFRfTUVO
VVMpCiAgICAgdm9pZCBoYW5kbGVDb250ZXh0TWVudUxvb2tVcEltYWdlKCk7CisgICAgdm9pZCBo
YW5kbGVDb250ZXh0TWVudVF1aWNrTG9va0ltYWdlKFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSk7
CiAjZW5kaWYKIAogI2lmIFVTRShBUFBLSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IGRkN2I0OTdhYTY0YmY3YTIzZWVmMTg0ODZl
YmNiNDQzYTM1ODcxZTQuLjZjNWM0ZTM5YzYxNDgzZGFlOTBlNjkyY2M3ODY2OWRhYjc0OWU1ZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5o
CkBAIC0xMzIsNyArMTMyLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykKICAgICB2b2lkIHJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwg
Y29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+JiYpIG92ZXJyaWRlOwot
ICAgIHZvaWQgY29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiwgU2hhcmVh
YmxlQml0bWFwJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBjb21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMoY29uc3QgVVJMJiwgU2hhcmVh
YmxlQml0bWFwJiwgSW1hZ2VBbmFseXNpc1R5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+
IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IGMyZGU4
ZDZlYTdjMGJjYWZhMDkxNGMxZjUyYWU0ZDY0NWRmODY5ZGMuLjhiNzRiNDU0NWQ4OTdhOTk5Mjk0
ZjgxNWM3YzFmNjdiMzhmZDNjMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTQ4NSwxMiArNDg1LDEyIEBAIHZvaWQgUGFnZUNs
aWVudEltcGw6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29u
c3QgU2hhcmVhYmxlCiAgICAgbV9pbXBsLT5yZXF1ZXN0VGV4dFJlY29nbml0aW9uKGltYWdlVVJM
LCBpbWFnZURhdGEsIFdURk1vdmUoY29tcGxldGlvbikpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJ
bXBsOjpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBT
aGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmIGNvbXBsZXRpb24pCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpjb21wdXRlSGFzSW1hZ2VBbmFs
eXNpc1Jlc3VsdHMoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJp
dG1hcCwgSW1hZ2VBbmFseXNpc1R5cGUgdHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJiBjb21wbGV0aW9uKQogewotICAgIG1faW1wbC0+Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJl
c3VsdHMoaW1hZ2VVUkwsIGltYWdlQml0bWFwLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKKyAgICBt
X2ltcGwtPmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VCaXRt
YXAsIHR5cGUsIFdURk1vdmUoY29tcGxldGlvbikpOwogfQogCi0jZW5kaWYKKyNlbmRpZiAvLyBF
TkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFnZUNs
aWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tRdWlja0xvb2tQcmV2
aWV3Q29udHJvbGxlci5oCmluZGV4IDAyYzdkMmYxZDRiOTNkYTQwNjRiMDg2OTJjYzNlM2JhNGQ0
Y2QxM2UuLjFlMjdjOGQzYmNlOWUxYzkxZjA1ZTUzMGVlNTIwYzgwNDE0NzczNDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUXVpY2tMb29rUHJldmll
d0NvbnRyb2xsZXIuaApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNs
YXNzIFdlYlBhZ2VQcm94eTsKLWVudW0gY2xhc3MgUXVpY2tMb29rUHJldmlld0FjdGl2aXR5IDog
dWludDhfdCB7IE5vbmUsIFZpc3VhbFNlYXJjaCB9OworZW51bSBjbGFzcyBRdWlja0xvb2tQcmV2
aWV3QWN0aXZpdHkgOiB1aW50OF90OwogfQogCiBAY2xhc3MgUUxQcmV2aWV3UGFuZWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tRdWlja0xvb2tQcmV2aWV3Q29u
dHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZp
ZXdDb250cm9sbGVyLm1tCmluZGV4IDUxOTJiMTRlZjEzM2I5NDY2MDFhNzdmYzQyNWNhYTQxZDY4
YjE3YzAuLjhmNWM4MmUwNjRjMGViZjFjODAyM2FlMGI5YWZhMGJiNjkzZmNhMzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdDb250cm9s
bGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZp
ZXdDb250cm9sbGVyLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBIQVZFKFFVSUNLTE9PS19Q
UkVWSUVXX0lURU1fREFUQV9QUk9WSURFUikKIAorI2ltcG9ydCAiUXVpY2tMb29rUHJldmlld0Fj
dGl2aXR5LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4KICNpbXBvcnQgPHBhbC9tYWMvUXVpY2tMb29rVUlTb2Z0TGluay5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgKaW5k
ZXggNTYwNjFhZmMzZDAzZWIxZDNlZDk5YTM5ZGFjZDZjY2FkMzYxMDliZS4uMzRlMmQwMDc0NmVi
YjA3OTcxOWJlY2JlNzgxZjViYzZjZWExZDQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oCkBAIC02MCw2ICs2MCwxMyBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdlYkNvbnRleHRNZW51UHJveHlNYWMoTlNWaWV3ICos
IFdlYlBhZ2VQcm94eSYsIENvbnRleHRNZW51Q29udGV4dERhdGEmJiwgY29uc3QgVXNlckRhdGEm
KTsKIAorICAgIFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSBxdWlja0xvb2tQcmV2aWV3QWN0aXZp
dHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3F1aWNrTG9va1ByZXZpZXdBY3Rpdml0eTsgfQor
CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIHZvaWQgaW5zZXJ0T3JVcGRhdGVRdWlj
a0xvb2tJbWFnZUl0ZW0oY29uc3QgVVJMJiBpbWFnZVVSTCwgUmVmPFNoYXJlYWJsZUJpdG1hcD4m
JiBpbWFnZUJpdG1hcCwgc3RkOjpvcHRpb25hbDxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYmLCBi
b29sKTsKKyAgICB2b2lkIHVwZGF0ZVF1aWNrTG9va0NvbnRleHRNZW51SXRlbVRpdGxlKGNvbnN0
IFN0cmluZyYpOworI2VuZGlmCisKICAgICB2b2lkIHNob3coKSBvdmVycmlkZTsKICAgICB2b2lk
IHNob3dDb250ZXh0TWVudVdpdGhJdGVtcyhWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+
JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgdXNlQ29udGV4dE1lbnVJdGVtcyhWZWN0b3I8UmVmPFdl
YkNvbnRleHRNZW51SXRlbT4+JiYpIG92ZXJyaWRlOwpAQCAtNzksNiArODYsNyBAQCBwcml2YXRl
OgogICAgIFJldGFpblB0cjxOU01lbnU+IG1fbWVudTsKICAgICBSZXRhaW5QdHI8V0tNZW51RGVs
ZWdhdGU+IG1fbWVudURlbGVnYXRlOwogICAgIFdlYWtPYmpDUHRyPE5TVmlldz4gbV93ZWJWaWV3
OworICAgIFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSBtX3F1aWNrTG9va1ByZXZpZXdBY3Rpdml0
eSB7IFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eTo6Tm9uZSB9OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250
ZXh0TWVudVByb3h5TWFjLm1tCmluZGV4IDY1NWIwYjgzOWQzNTM2YmEzYjc1NGU0MTM4YTg3NzA1
ZDYxMGRhZTguLjNlMDA5MGI1ODc1YjM0ODg3YzNhZWVkNDVlYjMzMzNlMzQ1MmE0MTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5
TWFjLm1tCkBAIC0zOCw2ICszOCw3IEBACiAjaW1wb3J0ICJXZWJDb250ZXh0TWVudUl0ZW0uaCIK
ICNpbXBvcnQgIldlYkNvbnRleHRNZW51SXRlbURhdGEuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94
eS5oIgorI2ltcG9ydCAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhp
Y3NDb250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTG9jYWxpemVkU3RyaW5ncy5oPgpAQCAtNDM2LDcgKzQzNyw3IEBAIHN0YXRpYyBOU1N0cmlu
ZyAqbWVudUl0ZW1JZGVudGlmaWVyKGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFj
dGlvbikKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1JlbG9hZDoKICAgICAgICAgcmV0dXJu
IF9XS01lbnVJdGVtSWRlbnRpZmllclJlbG9hZDsKIAotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVt
VGFnTG9va1VwSW1hZ2U6CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFn
ZToKICAgICAgICAgcmV0dXJuIF9XS01lbnVJdGVtSWRlbnRpZmllclJldmVhbEltYWdlOwogCiAg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWI6CkBAIC01MDcsMTcgKzUwOCwyMiBA
QCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmdldENvbnRleHRNZW51RnJvbUl0ZW1zKGNv
bnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudQogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBzdGQ6
Om9wdGlvbmFsPFdlYkNvbnRleHRNZW51SXRlbURhdGE+IGxvb2tVcEltYWdlSXRlbTsKKyAgICBi
b29sIHNob3VsZFVwZGF0ZVF1aWNrTG9va0l0ZW1UaXRsZSA9IGZhbHNlOworICAgIHN0ZDo6b3B0
aW9uYWw8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4gcXVpY2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVk
ZWQ7CiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCi0gICAgZmlsdGVyZWRJdGVtcy5yZW1v
dmVGaXJzdE1hdGNoaW5nKFsmXSAoYXV0byYgaXRlbSkgewotICAgICAgICBpZiAoaXRlbS5hY3Rp
b24oKSAhPSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSkKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBsb29rVXBJbWFnZUl0ZW0gPSB7IGl0ZW0gfTsK
LSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgYXV0byBpbmRleE9mUXVpY2tMb29rSXRlbSA9IGZp
bHRlcmVkSXRlbXMuZmluZE1hdGNoaW5nKFsmXSAoYXV0byYgaXRlbSkgeworICAgICAgICByZXR1
cm4gaXRlbS5hY3Rpb24oKSA9PSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJ
bWFnZTsKICAgICB9KTsKLSNlbmRpZgorCisgICAgaWYgKGluZGV4T2ZRdWlja0xvb2tJdGVtICE9
IG5vdEZvdW5kKSB7CisgICAgICAgIGlmIChhdXRvIHBhZ2UgPSB0aGlzLT5wYWdlKCk7IHBhZ2Ug
JiYgcGFnZS0+cHJlZmVyZW5jZXMoKS5wcmVmZXJJbmxpbmVUZXh0U2VsZWN0aW9uSW5JbWFnZXMo
KSkgeworICAgICAgICAgICAgcXVpY2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQgPSBmaWx0ZXJl
ZEl0ZW1zW2luZGV4T2ZRdWlja0xvb2tJdGVtXTsKKyAgICAgICAgICAgIGZpbHRlcmVkSXRlbXMu
cmVtb3ZlKGluZGV4T2ZRdWlja0xvb2tJdGVtKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICBzaG91bGRVcGRhdGVRdWlja0xvb2tJdGVtVGl0bGUgPSB0cnVlOworICAgIH0KKyNlbmRpZiAv
LyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKICNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJ
Q0VTKQogICAgIGlmICghcGFnZSgpLT5jYW5IYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKCkg
fHwgaXNQb3BvdmVyKSB7CkBAIC01MzEsNyArNTM3LDcgQEAgdm9pZCBXZWJDb250ZXh0TWVudVBy
b3h5TWFjOjpnZXRDb250ZXh0TWVudUZyb21JdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1l
bnUKICAgICBhdXRvIGltYWdlQml0bWFwID0gbV9jb250ZXh0LndlYkhpdFRlc3RSZXN1bHREYXRh
KCkuaW1hZ2VCaXRtYXA7CiAKICAgICBhdXRvIHNwYXJzZU1lbnVJdGVtcyA9IHJldGFpblB0cihb
TlNQb2ludGVyQXJyYXkgc3Ryb25nT2JqZWN0c1BvaW50ZXJBcnJheV0pOwotICAgIGF1dG8gaW5z
ZXJ0TWVudUl0ZW0gPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKCkpLCBpbWFnZVVSTCA9IFdURk1vdmUoaW1h
Z2VVUkwpLCBpbWFnZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApLCBsb29rVXBJbWFnZUl0
ZW0gPSBXVEZNb3ZlKGxvb2tVcEltYWdlSXRlbSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlciksIGl0ZW1zUmVtYWluaW5nID0gZmlsdGVyZWRJdGVtcy5zaXpl
KCksIG1lbnUgPSBXVEZNb3ZlKG1lbnUpLCBzcGFyc2VNZW51SXRlbXNdKE5TTWVudUl0ZW0gKml0
ZW0sIE5TVUludGVnZXIgaW5kZXgpIG11dGFibGUgeworICAgIGF1dG8gaW5zZXJ0TWVudUl0ZW0g
PSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgd2Vha1BhZ2Ug
PSBtYWtlV2Vha1B0cihwYWdlKCkpLCBpbWFnZVVSTCA9IFdURk1vdmUoaW1hZ2VVUkwpLCBpbWFn
ZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApLCBzaG91bGRVcGRhdGVRdWlja0xvb2tJdGVt
VGl0bGUsIHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkID0gV1RGTW92ZShxdWlja0xvb2tJ
dGVtVG9JbnNlcnRJZk5lZWRlZCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlciksIGl0ZW1zUmVtYWluaW5nID0gZmlsdGVyZWRJdGVtcy5zaXplKCksIG1lbnUg
PSBXVEZNb3ZlKG1lbnUpLCBzcGFyc2VNZW51SXRlbXNdKE5TTWVudUl0ZW0gKml0ZW0sIE5TVUlu
dGVnZXIgaW5kZXgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoaW5kZXggPCBbc3BhcnNlTWVu
dUl0ZW1zIGNvdW50XSk7CiAgICAgICAgIEFTU0VSVCghW3NwYXJzZU1lbnVJdGVtcyBwb2ludGVy
QXRJbmRleDppbmRleF0pOwogICAgICAgICBbc3BhcnNlTWVudUl0ZW1zIHJlcGxhY2VQb2ludGVy
QXRJbmRleDppbmRleCB3aXRoUG9pbnRlcjppdGVtXTsKQEAgLTU0MSwxMyArNTQ3LDEyIEBAIHZv
aWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoY29uc3Qg
VmVjdG9yPFdlYkNvbnRleHRNZW51CiAgICAgICAgIFttZW51IHNldEl0ZW1BcnJheTpbc3BhcnNl
TWVudUl0ZW1zIGFsbE9iamVjdHNdXTsKIAogICAgICAgICBhdXRvIHBhZ2UgPSBtYWtlUmVmUHRy
KHdlYWtQYWdlLmdldCgpKTsKLSAgICAgICAgaWYgKGxvb2tVcEltYWdlSXRlbSAmJiBwYWdlICYm
IGltYWdlQml0bWFwKSB7CisgICAgICAgIGlmIChwYWdlICYmIGltYWdlQml0bWFwKSB7CiAjaWYg
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQotICAgICAgICAgICAgcGFnZS0+Y29tcHV0ZUhhc1Zpc3Vh
bFNlYXJjaFJlc3VsdHMoaW1hZ2VVUkwsICppbWFnZUJpdG1hcCwgW3Byb3RlY3RlZFRoaXMgPSBX
VEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBsb29rVXBJbWFnZUl0ZW0gPSBXVEZNb3ZlKCpsb29rVXBJ
bWFnZUl0ZW0pXSAoYm9vbCBoYXNWaXN1YWxTZWFyY2hSZXN1bHRzKSBtdXRhYmxlIHsKLSAgICAg
ICAgICAgICAgICBpZiAoaGFzVmlzdWFsU2VhcmNoUmVzdWx0cykKLSAgICAgICAgICAgICAgICAg
ICAgW3Byb3RlY3RlZFRoaXMtPm1fbWVudSBhZGRJdGVtOmNyZWF0ZU1lbnVBY3Rpb25JdGVtKGxv
b2tVcEltYWdlSXRlbSkuZ2V0KCldOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBwcm90
ZWN0ZWRUaGlzLT5pbnNlcnRPclVwZGF0ZVF1aWNrTG9va0ltYWdlSXRlbShpbWFnZVVSTCwgaW1h
Z2VCaXRtYXAucmVsZWFzZU5vbk51bGwoKSwgV1RGTW92ZShxdWlja0xvb2tJdGVtVG9JbnNlcnRJ
Zk5lZWRlZCksIHNob3VsZFVwZGF0ZVF1aWNrTG9va0l0ZW1UaXRsZSk7CiAjZWxzZQorICAgICAg
ICAgICAgVU5VU0VEX1BBUkFNKHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkKTsKKyAgICAg
ICAgICAgIFVOVVNFRF9QQVJBTShzaG91bGRVcGRhdGVRdWlja0xvb2tJdGVtVGl0bGUpOwogICAg
ICAgICAgICAgVU5VU0VEX1BBUkFNKGltYWdlVVJMKTsKICNlbmRpZgogICAgICAgICB9CkBAIC01
NjMsNiArNTY4LDYzIEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1l
bnVGcm9tSXRlbXMoY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51CiAgICAgfQogfQogCisjaWYg
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCit2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6Omlu
c2VydE9yVXBkYXRlUXVpY2tMb29rSW1hZ2VJdGVtKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFJlZjxT
aGFyZWFibGVCaXRtYXA+JiYgaW1hZ2VCaXRtYXAsIHN0ZDo6b3B0aW9uYWw8V2ViQ29udGV4dE1l
bnVJdGVtRGF0YT4mJiBxdWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCwgYm9vbCBzaG91bGRV
cGRhdGVRdWlja0xvb2tJdGVtVGl0bGUpCit7CisgICAgYXV0byBwYWdlID0gbWFrZVJlZigqdGhp
cy0+cGFnZSgpKTsKKyAgICBpZiAocXVpY2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQpIHsKKyAg
ICAgICAgcGFnZS0+Y29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKGltYWdlVVJMLCBpbWFn
ZUJpdG1hcC5nZXQoKSwgSW1hZ2VBbmFseXNpc1R5cGU6OlZpc3VhbFNlYXJjaCwgW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBxdWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCA9IFdU
Rk1vdmUoKnF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkKV0gKGJvb2wgaGFzVmlzdWFsU2Vh
cmNoUmVzdWx0cykgbXV0YWJsZSB7CisgICAgICAgICAgICBpZiAoYXV0byBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZlB0cih3ZWFrVGhpcy5nZXQoKSk7IHByb3RlY3RlZFRoaXMgJiYgaGFzVmlzdWFs
U2VhcmNoUmVzdWx0cykgeworICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcXVpY2tM
b29rUHJldmlld0FjdGl2aXR5ID0gUXVpY2tMb29rUHJldmlld0FjdGl2aXR5OjpWaXN1YWxTZWFy
Y2g7CisgICAgICAgICAgICAgICAgW3Byb3RlY3RlZFRoaXMtPm1fbWVudSBhZGRJdGVtOk5TTWVu
dUl0ZW0uc2VwYXJhdG9ySXRlbV07CisgICAgICAgICAgICAgICAgW3Byb3RlY3RlZFRoaXMtPm1f
bWVudSBhZGRJdGVtOmNyZWF0ZU1lbnVBY3Rpb25JdGVtKHF1aWNrTG9va0l0ZW1Ub0luc2VydElm
TmVlZGVkKS5nZXQoKV07CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaWYgKHNob3VsZFVwZGF0ZVF1aWNrTG9va0l0ZW1UaXRsZSkgewor
ICAgICAgICBwYWdlLT5jb21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMoaW1hZ2VVUkwsIGlt
YWdlQml0bWFwLmdldCgpLCBJbWFnZUFuYWx5c2lzVHlwZTo6VmlzdWFsU2VhcmNoLCBbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHdlYWtQYWdlID0gbWFrZVdlYWtQdHIocGFnZS5nZXQo
KSksIGltYWdlVVJMLCBpbWFnZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApXSAoYm9vbCBo
YXNWaXN1YWxTZWFyY2hSZXN1bHRzKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGF1dG8gcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWZQdHIod2Vha1RoaXMuZ2V0KCkpOworICAgICAgICAgICAgaWYgKCFw
cm90ZWN0ZWRUaGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXV0
byBwYWdlID0gbWFrZVJlZlB0cih3ZWFrUGFnZS5nZXQoKSk7CisgICAgICAgICAgICBpZiAoIXBh
Z2UpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoaGFzVmlzdWFs
U2VhcmNoUmVzdWx0cykgeworICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcXVpY2tM
b29rUHJldmlld0FjdGl2aXR5ID0gUXVpY2tMb29rUHJldmlld0FjdGl2aXR5OjpWaXN1YWxTZWFy
Y2g7CisgICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+dXBkYXRlUXVpY2tMb29rQ29udGV4
dE1lbnVJdGVtVGl0bGUoY29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2VGb3JWaXN1YWxT
ZWFyY2goKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBwYWdlLT5jb21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMoaW1hZ2VVUkwsIGlt
YWdlQml0bWFwLmdldCgpLCBJbWFnZUFuYWx5c2lzVHlwZTo6VGV4dCwgW3dlYWtUaGlzID0gV1RG
TW92ZSh3ZWFrVGhpcyksIHdlYWtQYWdlXSAoYm9vbCBoYXNUZXh0KSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHdlYWtUaGlzLmdldCgp
KTsKKyAgICAgICAgICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgIGlmIChhdXRvIHBhZ2UgPSBtYWtlUmVmUHRy
KHdlYWtQYWdlLmdldCgpKTsgcGFnZSAmJiBoYXNUZXh0KQorICAgICAgICAgICAgICAgICAgICBw
cm90ZWN0ZWRUaGlzLT51cGRhdGVRdWlja0xvb2tDb250ZXh0TWVudUl0ZW1UaXRsZShjb250ZXh0
TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZUZvclRleHRTZWxlY3Rpb24oKSk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCit2b2lkIFdlYkNvbnRleHRNZW51UHJveHlN
YWM6OnVwZGF0ZVF1aWNrTG9va0NvbnRleHRNZW51SXRlbVRpdGxlKGNvbnN0IFN0cmluZyYgbmV3
VGl0bGUpCit7CisgICAgZm9yIChOU0ludGVnZXIgaXRlbUluZGV4ID0gMDsgaXRlbUluZGV4IDwg
W21fbWVudSBudW1iZXJPZkl0ZW1zXTsgKytpdGVtSW5kZXgpIHsKKyAgICAgICAgYXV0byBpdGVt
ID0gW21fbWVudSBpdGVtQXRJbmRleDppdGVtSW5kZXhdOworICAgICAgICBpZiAoc3RhdGljX2Nh
c3Q8Q29udGV4dE1lbnVBY3Rpb24+KGl0ZW0udGFnKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdRdWlj
a0xvb2tJbWFnZSkgeworICAgICAgICAgICAgaXRlbS50aXRsZSA9IG5ld1RpdGxlOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCisKIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1l
bnVJdGVtKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmIGl0ZW0sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoTlNNZW51SXRlbSAqKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICNpZiBFTkFC
TEUoU0VSVklDRV9DT05UUk9MUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XZWJQYWdlUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2Vi
UGFnZVByb3h5TWFjLm1tCmluZGV4IDFhYjM1MGE0MzBlM2ExNWEzNzRlMTY1OWRlN2M4ZjQ0ODE5
OTc2ZmYuLmUxMjkxMzM1NzVkYWMzYzUzNGVmMzA4ODFhZjk3NTYzNDU4YzY4MTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQpAQCAtNzQ2LDEz
ICs3NDYsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsb3NlU2hhcmVkUHJldmlld1BhbmVsSWZO
ZWNlc3NhcnkoKQogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6aGFuZGxlQ29udGV4dE1lbnVMb29rVXBJbWFnZSgpCit2b2lkIFdlYlBhZ2VQcm94eTo6
aGFuZGxlQ29udGV4dE1lbnVRdWlja0xvb2tJbWFnZShRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkg
YWN0aXZpdHkpCiB7CiAgICAgYXV0byYgcmVzdWx0ID0gbV9hY3RpdmVDb250ZXh0TWVudUNvbnRl
eHREYXRhLndlYkhpdFRlc3RSZXN1bHREYXRhKCk7CiAgICAgaWYgKCFyZXN1bHQuaW1hZ2VCaXRt
YXApCiAgICAgICAgIHJldHVybjsKIAotICAgIHNob3dJbWFnZUluUXVpY2tMb29rUHJldmlld1Bh
bmVsKCpyZXN1bHQuaW1hZ2VCaXRtYXAsIHJlc3VsdC50b29sVGlwVGV4dCwgVVJMIHsgVVJMIHsg
fSwgcmVzdWx0LmFic29sdXRlSW1hZ2VVUkwgfSwgUXVpY2tMb29rUHJldmlld0FjdGl2aXR5OjpW
aXN1YWxTZWFyY2gpOworICAgIHNob3dJbWFnZUluUXVpY2tMb29rUHJldmlld1BhbmVsKCpyZXN1
bHQuaW1hZ2VCaXRtYXAsIHJlc3VsdC50b29sVGlwVGV4dCwgVVJMIHsgVVJMIHsgfSwgcmVzdWx0
LmFic29sdXRlSW1hZ2VVUkwgfSwgYWN0aXZpdHkpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
c2hvd0ltYWdlSW5RdWlja0xvb2tQcmV2aWV3UGFuZWwoU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJp
dG1hcCwgY29uc3QgU3RyaW5nJiB0b29sdGlwLCBjb25zdCBVUkwmIGltYWdlVVJMLCBRdWlja0xv
b2tQcmV2aWV3QWN0aXZpdHkgYWN0aXZpdHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0NWU4ZWE3N2RhZWNlMDI4YTBiMDliZjJjNzY4
OGY0NjgzMWE3MDc4Li4zOGYzZDg3MDJjZDNjM2IxNGJjNDRhMzU4NDZmOWI4YWQzZjE4ZDA0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTU5ODQsNiArNTk4NCw3IEBACiAJCUY0NERGRUIwMUU5RTc1MkYwMDM4RDE5NiAvKiBXZWJJY29u
VXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkljb25VdGls
aXRpZXMuaDsgcGF0aCA9IGlvcy9XZWJJY29uVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY0NERGRUIxMUU5RTc1MkYwMDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVz
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViSWNvblV0aWxp
dGllcy5tbTsgcGF0aCA9IGlvcy9XZWJJY29uVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNDY2MEJDMTI1REVGMDgxMDBFODY1OTggLyogUGFzdGVib2FyZEFjY2Vz
c0ludGVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZWJvYXJkQWNjZXNzSW50ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0N0EwNTE2MjY4MjdBMDkwMDdFNUNGMiAvKiBRdWlj
a0xvb2tQcmV2aWV3QWN0aXZpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUXVpY2tMb29rUHJldmlld0Fj
dGl2aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0ODU3MEEyMjY0NEJFQzQw
MEMwNUY3MSAvKiBUaW1lb3V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRp
bWVvdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4RDJBODQyMTU4M0EwMjAw
QzY3NTJCIC8qIEFwcEtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBLaXRTUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ5NkE0MkYxRjU4QTI3MjAwNEMxNzU3IC8qIERyYWdE
cm9wSW50ZXJhY3Rpb25TdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBEcmFnRHJvcEludGVyYWN0aW9u
U3RhdGUuaDsgcGF0aCA9IGlvcy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcwNDUsNiArNzA0Niw3IEBACiAJCQkJQ0RBMjlBMUYxQ0JF
QjVGQjAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tbSAqLywKIAkJCQlD
MTQ1Q0MwRTIzRENBNDI3MDAzQTVFRUIgLyogUHJlZmVyZW5jZU9ic2VydmVyLmggKi8sCiAJCQkJ
QzE1Q0JCMzMyM0YzNEMzODAwMzAwQ0M3IC8qIFByZWZlcmVuY2VPYnNlcnZlci5tbSAqLywKKwkJ
CQlGNDdBMDUxNjI2ODI3QTA5MDA3RTVDRjIgLyogUXVpY2tMb29rUHJldmlld0FjdGl2aXR5Lmgg
Ki8sCiAJCQkJNUNCN0FGREQyM0M1MjczRDAwRTQ5Q0YzIC8qIFJlc291cmNlTG9hZERlbGVnYXRl
LmggKi8sCiAJCQkJNUNCN0FGREUyM0M1MjczRDAwRTQ5Q0YzIC8qIFJlc291cmNlTG9hZERlbGVn
YXRlLm1tICovLAogCQkJCTVDQTk4NTRCMjEwQkVCNzMwMDU3RUI2QiAvKiBTYWZlQnJvd3NpbmdX
YXJuaW5nQ29jb2EubW0gKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJIVE1MVmlldy5tbQppbmRleCBiNDIxNmRhYTRjMDJjMWVlZDc3NWNiYWI1NGRjMDc5ODcyNTEz
MjhhLi5jMDIwYjhiYmEyZDAwNDFmM2U1NGU3ZjE4YzZhMzc3NjgzM2VmMDQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTYxNSw3ICs2
MTUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxOU0ludGVnZXI+IHRvVGFnKFdlYkNvcmU6OkNv
bnRleHRNZW51QWN0aW9uIGFjdGlvbikKICAgICAgICAgcmV0dXJuIFdlYk1lbnVJdGVtVGFnVG9n
Z2xlVmlkZW9FbmhhbmNlZEZ1bGxzY3JlZW47CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdU
cmFuc2xhdGU6CiAgICAgICAgIHJldHVybiBXZWJNZW51SXRlbVRhZ1RyYW5zbGF0ZTsKLSAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlOgorICAgIGNhc2UgQ29udGV4dE1lbnVJ
dGVtVGFnUXVpY2tMb29rSW1hZ2U6CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAg
ICBjYXNlIENvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcgLi4uIENvbnRleHRNZW51SXRlbUxh
c3RDdXN0b21UYWc6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>