<?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>113588</bug_id>
          
          <creation_ts>2013-03-29 10:32:49 -0700</creation_ts>
          <short_desc>Web Inspector: find dialog does not populate search string from system find pasteboard</short_desc>
          <delta_ts>2020-05-26 18:46:31 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>GoodFirstBug, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>211163</blocked>
    
    <blocked>211164</blocked>
    
    <blocked>212395</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brad">brkemper</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bburg</cc>
    
    <cc>graouts</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>timothy</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>866226</commentid>
    <comment_count>0</comment_count>
    <who name="Brad">brkemper</who>
    <bug_when>2013-03-29 10:32:49 -0700</bug_when>
    <thetext>In almost all Cocoa applications on the Mac where you can search for something in the document, the find command is system wide. That is, you can highlight a word, press Command-E to make it the search term, then switch to another Cocoa application and press Command-G to find again. The second application will search for the term from the first application. And it goes both ways (search for a term in the second app, find it in the first app). This generally works great in Safari and Chrome, and I often use it as a developer to highlight something on a page, press command-e and then find it in BBEdit (and vice versa). Or I highlight something in an e-mail and then go find it in a Web page.

However, the developer tools don&apos;t work that way. My deeply-ingrained habit of using this very useful standard Mac keyboard shortcut don&apos;t work in the developer tools, because they don&apos;t access the systemwide Find pasteboard (or whatever its called). I end up having to copy and paste the term into the Find field for &quot;Sources&quot; and &quot;Resources&quot; especially (it is what I search for things in the most), and also for &quot;Elements&quot;. Please bring system-wide &quot;Find&quot; to the Inspector and Developer Tools.

PS. I have &quot;Use Webkit Inspector&quot; checked in the &quot;Develop&quot; menu all the time, because I find the UI on the newer version of the inspector tools to be pretty much unusable, and a huge step backwards. I hate the new version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055438</commentid>
    <comment_count>1</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-12-13 13:20:29 -0800</bug_when>
    <thetext>More details:

On Mac, doing Ctrl+E on selected content within the inspector will:

 * put it into the system find pasteboard (NSFindPboard?)
 * populate the main content view&apos;s find dialog with that text (open or closed)

doing Ctrl+E on inspected page content, or any other application, will put it into the find pasteboard but not populate any find dialog in the inspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056401</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-12-17 11:21:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/19281466&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645109</commentid>
    <comment_count>3</comment_count>
      <attachid>397432</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-24 00:18:36 -0700</bug_when>
    <thetext>Created attachment 397432
Patch

this has bothered me for too long T.T</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645206</commentid>
    <comment_count>4</comment_count>
      <attachid>397432</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-04-24 08:56:36 -0700</bug_when>
    <thetext>Comment on attachment 397432
Patch

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

There are some lifetime issues to address in the ObjC parts, but other than that this patch looks god and is a welcome improvement!

&gt; Source/WebKit/UIProcess/Inspector/mac/WKInspectorViewController.mm:240
&gt; +    if (!!_delegate &amp;&amp; [_delegate respondsToSelector:@selector(inspectorViewControllerDidBecomeActive:)])

Nit: respondsToSelector check will return NO if _delegate is nil, so the null check is not necessary.

&gt; Source/WebKit/UIProcess/Inspector/mac/WKInspectorWKWebView.mm:62
&gt; +        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_handleWindowDidBecomeKey:) name:NSWindowDidBecomeKeyNotification object:nil];

This needs to be unregistered at some point or `self` will be retained forever by NSNotificationCenter.

&gt; Source/WebKit/UIProcess/Inspector/mac/WKInspectorWKWebView.mm:88
&gt; +- (BOOL)becomeFirstResponder

Does this correctly handle the case when Inspector is attached?

&gt; Source/WebKit/UIProcess/Inspector/mac/WKInspectorWKWebView.mm:95
&gt; +- (void)_handleWindowDidBecomeKey:(NSNotification *)notification

You don&apos;t check which window is key, so this would probably fire if Web Inspector window is not key.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645207</commentid>
    <comment_count>5</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-04-24 08:57:02 -0700</bug_when>
    <thetext>good* 😆</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646066</commentid>
    <comment_count>6</comment_count>
      <attachid>397432</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-27 09:57:54 -0700</bug_when>
    <thetext>Comment on attachment 397432
Patch

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

&gt;&gt; Source/WebKit/UIProcess/Inspector/mac/WKInspectorWKWebView.mm:62
&gt;&gt; +        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_handleWindowDidBecomeKey:) name:NSWindowDidBecomeKeyNotification object:nil];
&gt; 
&gt; This needs to be unregistered at some point or `self` will be retained forever by NSNotificationCenter.

Ah, oops.

&gt;&gt; Source/WebKit/UIProcess/Inspector/mac/WKInspectorWKWebView.mm:88
&gt;&gt; +- (BOOL)becomeFirstResponder
&gt; 
&gt; Does this correctly handle the case when Inspector is attached?

I believe so, but only if the Safari window was already focused (e.g. clicking on Web Inspector when the inspected page was previously focused).  I also have the `NSWindowDidBecomeKeyNotification` to handle the case that Web Inspector is focused (as well as if it&apos;s its own window).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646067</commentid>
    <comment_count>7</comment_count>
      <attachid>397693</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-27 09:59:19 -0700</bug_when>
    <thetext>Created attachment 397693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646387</commentid>
    <comment_count>8</comment_count>
      <attachid>397804</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-27 21:47:46 -0700</bug_when>
    <thetext>Created attachment 397804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646613</commentid>
    <comment_count>9</comment_count>
      <attachid>397804</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-04-28 12:31:07 -0700</bug_when>
    <thetext>Comment on attachment 397804
Patch

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

r=me!

&gt; Source/WebKit/UIProcess/Inspector/mac/WKInspectorWKWebView.mm:98
&gt; +    [self.inspectorWKWebViewDelegate inspectorWKWebViewDidBecomeActive:self];

Nit: usually prefer to use the ivar in this situation, _inspectorWKWebViewDelegate.

&gt; Source/WebKit/UIProcess/Inspector/mac/WKInspectorWKWebView.mm:104
&gt; +    if ([notification object] == [self window])

nit: notification.object, self.window</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646628</commentid>
    <comment_count>10</comment_count>
      <attachid>397804</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-28 12:42:41 -0700</bug_when>
    <thetext>Comment on attachment 397804
Patch

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

&gt;&gt; Source/WebKit/UIProcess/Inspector/mac/WKInspectorWKWebView.mm:98
&gt;&gt; +    [self.inspectorWKWebViewDelegate inspectorWKWebViewDidBecomeActive:self];
&gt; 
&gt; Nit: usually prefer to use the ivar in this situation, _inspectorWKWebViewDelegate.

I&apos;d prefer to follow the convention of what is done in this file.  Not to mention, the ivar is a `WeakObjCPtr&lt;id &lt;WKInspectorWKWebViewDelegate&gt;&gt;` so I think I&apos;d have to do some extra casting, which `-[WKInspectorWKWebView inspectorWKWebViewDelegate]` does for me.

&gt;&gt; Source/WebKit/UIProcess/Inspector/mac/WKInspectorWKWebView.mm:104
&gt;&gt; +    if ([notification object] == [self window])
&gt; 
&gt; nit: notification.object, self.window

lol oops :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646630</commentid>
    <comment_count>11</comment_count>
      <attachid>397875</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-28 12:43:46 -0700</bug_when>
    <thetext>Created attachment 397875
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646684</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-28 14:43:18 -0700</bug_when>
    <thetext>Committed r260847: &lt;https://trac.webkit.org/changeset/260847&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397875.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397432</attachid>
            <date>2020-04-24 00:18:36 -0700</date>
            <delta_ts>2020-04-27 09:59:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113588-20200424011835.patch</filename>
            <type>text/plain</type>
            <size>26715</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDQ0NzgwZGNmYTFiMjlmNWE0ZGJiY2RhOTY2MmRl
NGQ1ODY3NzJjYzMuLjdhOWNlNzc0NTJhMTU1MjFlMjgwYzExNThmMjIzMjZmODhlODhlYjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA0LTIzICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBm
aW5kIGRpYWxvZyBkb2VzIG5vdCBwb3B1bGF0ZSBzZWFyY2ggc3RyaW5nIGZyb20gc3lzdGVtIGZp
bmQgcGFzdGVib2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEzNTg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xOTI4MTQ2Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanM6CisgICAgICAgIChJbnNwZWN0b3JGcm9u
dGVuZEFQSS51cGRhdGVGaW5kU3RyaW5nKTogQWRkZWQuCisgICAgICAgICogVXNlckludGVyZmFj
ZS9CYXNlL01haW4uanM6CisgICAgICAgIChXSS5jb250ZW50TG9hZGVkKToKKyAgICAgICAgKFdJ
LnVwZGF0ZUZpbmRTdHJpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdJLl9wb3B1bGF0ZUZpbmQpOgor
ICAgICAgICAoV0kuX2ZpbmROZXh0KToKKyAgICAgICAgKFdJLl9maW5kUHJldmlvdXMpOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudEJyb3dzZXIuanM6CisgICAgICAgIChX
SS5Db250ZW50QnJvd3Nlci5wcm90b3R5cGUuaGFuZGxlRmluZFN0cmluZ1VwZGF0ZWQpOiBBZGRl
ZC4KKyAgICAgICAgKFdJLkNvbnRlbnRCcm93c2VyLnByb3RvdHlwZS5oYW5kbGVQb3B1bGF0ZUZp
bmRTaG9ydGN1dCk6CisgICAgICAgIChXSS5Db250ZW50QnJvd3Nlci5wcm90b3R5cGUuaGFuZGxl
RmluZE5leHRTaG9ydGN1dCk6CisgICAgICAgIChXSS5Db250ZW50QnJvd3Nlci5wcm90b3R5cGUu
aGFuZGxlRmluZFByZXZpb3VzU2hvcnRjdXQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvTG9nQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5Mb2dDb250ZW50Vmlldy5wcm90b3R5
cGUuaGFuZGxlRmluZFN0cmluZ1VwZGF0ZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkxvZ0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5oYW5kbGVQb3B1bGF0ZUZpbmRTaG9ydGN1dCk6CisgICAgICAgIChX
SS5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxlRmluZE5leHRTaG9ydGN1dCk6CisgICAg
ICAgIChXSS5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxlRmluZFByZXZpb3VzU2hvcnRj
dXQpOgorICAgICAgICBXaGVuIHRoZSBmaW5kIHN0cmluZyBnZXRzIHVwZGF0ZWQsIHRlbGwgdGhl
IGFjdGl2ZSB2aWV3LiBUaGUgYGZpbmROZXh0S2V5Ym9hcmRTaG9ydGN1dGAgYW5kCisgICAgICAg
IGBmaW5kUHJldmlvdXNLZXlib2FyZFNob3J0Y3V0YCB3aWxsIGFsc28gdXBkYXRlIHRoZSByZWxh
dGVkIGBXSS5GaW5kQmFubmVyYCB3aGVuIGludm9rZWQgaWYKKyAgICAgICAgdGhlIGN1cnJlbnQg
c2VhcmNoIHF1ZXJ5IGRvZXMgbm90IG1hdGNoIHRoZSBmaW5kIHN0cmluZy4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzOgorICAgICAgICAoV0kudXBkYXRlRmluZFN0cmlu
Zyk6IEFkZGVkLgorCiAyMDIwLTA0LTIzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zc3BlY3RvcjogU3RvcmFnZTogY2Fubm90IHNlbGVjdCBtdWx0
aXBsZSBsb2NhbCBzdG9yYWdlIGVudHJpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGRmMjUyZjEyZWVlZTcxYzhi
NzRmNWU1ZTg2OWFjMTVmNzYxNzVlZS4uODJkNjVlMjMxNmI1MjM1MzZjYjRiODZiYzM5YjcyZjZk
MmYyNGMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAyMC0wNC0yMyAgRGV2aW4gUm91
c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZmluZCBk
aWFsb2cgZG9lcyBub3QgcG9wdWxhdGUgc2VhcmNoIHN0cmluZyBmcm9tIHN5c3RlbSBmaW5kIHBh
c3RlYm9hcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExMzU4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTkyODE0NjY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9y
L21hYy9XS0luc3BlY3RvcldLV2ViVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0
b3IvbWFjL1dLSW5zcGVjdG9yV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS0luc3BlY3RvcldL
V2ViVmlldyBzZXRJbnNwZWN0b3JXS1dlYlZpZXdEZWxlZ2F0ZTpdKToKKyAgICAgICAgKC1bV0tJ
bnNwZWN0b3JXS1dlYlZpZXcgYmVjb21lRmlyc3RSZXNwb25kZXJdKTogQWRkZWQuCisgICAgICAg
ICgtW1dLSW5zcGVjdG9yV0tXZWJWaWV3IF9oYW5kbGVXaW5kb3dEaWRCZWNvbWVLZXk6XSk6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0Nv
bnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3Rv
clZpZXdDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0luc3BlY3RvclZpZXdDb250cm9sbGVy
IGluc3BlY3RvcldLV2ViVmlld0RpZEJlY29tZUFjdGl2ZTpdKTogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tOgorICAgICAgICAoLVtX
S1dlYkluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgaW5zcGVjdG9yVmlld0NvbnRyb2xsZXJEaWRC
ZWNvbWVBY3RpdmU6XSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94
eTo6ZGlkQmVjb21lQWN0aXZlKTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rv
ci9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0
b3IvbWFjL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tOgorICAgICAgICAoLVtXS1JlbW90
ZVdlYkluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgaW5zcGVjdG9yV0tXZWJWaWV3RGlkQmVjb21l
QWN0aXZlOl0pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yUHJv
eHk6OmRpZEJlY29tZUFjdGl2ZSk6IEFkZGVkLgorICAgICAgICBBZGQgYSBuZXcgZGVsZWdhdGUg
Y2FsbCBjaGFpbiB0aGF0IG5vdGlmaWVzIHRoZSBpbnNwZWN0b3IgcHJveHkgYWJvdXQgd2hlbiB0
aGUgaW5zcGVjdG9yIHdlYgorICAgICAgICB2aWV3IGJlY29tZXMgYWN0aXZlLCBhdCB3aGljaCBw
b2ludCB0aGUgaW5zcGVjdG9yIHByb3h5IGNhbiBnZXQgdGhlIGN1cnJlbnQgZmluZCBzdHJpbmcg
YW5kCisgICAgICAgIHNlbnQgaXQgdG8gdGhlIGluc3BlY3RvciBwYWdlLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3RvclVJOjp1cGRhdGVGaW5kU3RyaW5nKTogQWRkZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjp1cGRhdGVGaW5kU3RyaW5nKTogQWRkZWQu
CisgICAgICAgIFBhc3MgYWxvbmcgdGhlIG5ldyBmaW5kIHN0cmluZyB0byB0aGUgZnJvbnRlbmQg
dmlhIGBJbnNwZWN0b3JGcm9udGVuZEFQSS51cGRhdGVGaW5kU3RyaW5nYC4KKwogMjAyMC0wNC0y
MyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBCb3Vu
Y2UgZGlzcGxheVdhc1JlZnJlc2hlZCgpIHZpYSBFdmVudERpc3BhdGNoZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwppbmRleCA5MTIwYzA3
MTY1NDU4NjJlODg1NmZhNTE4ZDczZjY2ZjNlOGM1MmZmLi4wNjQ5NzU2MDZhYmY0MTA5ODk0NDUz
NGMxY2VjOGJmOGI3ZDJiZmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9CYXNlL01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC0yOTAsNyArMjkwLDcgQEAgV0kuY29udGVudExvYWRl
ZCA9IGZ1bmN0aW9uKCkKIAogICAgIFdJLmNsZWFyS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXSS5L
ZXlib2FyZFNob3J0Y3V0KFdJLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29tbWFuZE9yQ29u
dHJvbCwgIksiLCBXSS5fY2xlYXIpOwogCi0gICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5v
cmcvYi8xNTEzMTA+IFdlYiBJbnNwZWN0b3I6IENvbW1hbmQtRSBzaG91bGQgcHJvcGFnYXRlIHRv
IG90aGVyIHNlYXJjaCBmaWVsZHMgKGluY2x1ZGluZyB0aGUgc3lzdGVtKQorICAgIFdJLmZpbmRT
dHJpbmcgPSAiIjsKICAgICBXSS5wb3B1bGF0ZUZpbmRLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdJ
LktleWJvYXJkU2hvcnRjdXQoV0kuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5Db21tYW5kT3JD
b250cm9sLCAiRSIsIFdJLl9wb3B1bGF0ZUZpbmQpOwogICAgIFdJLnBvcHVsYXRlRmluZEtleWJv
YXJkU2hvcnRjdXQuaW1wbGljaXRseVByZXZlbnRzRGVmYXVsdCA9IGZhbHNlOwogICAgIFdJLmZp
bmROZXh0S2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXSS5LZXlib2FyZFNob3J0Y3V0KFdJLktleWJv
YXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29tbWFuZE9yQ29udHJvbCwgIkciLCBXSS5fZmluZE5leHQp
OwpAQCAtMTA0NSw2ICsxMDQ1LDI2IEBAIFdJLnVwZGF0ZVZpc2liaWxpdHlTdGF0ZSA9IGZ1bmN0
aW9uKHZpc2libGUpCiAgICAgV0kubm90aWZpY2F0aW9ucy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoV0kuTm90aWZpY2F0aW9uLlZpc2liaWxpdHlTdGF0ZURpZENoYW5nZSk7CiB9OwogCitXSS51
cGRhdGVGaW5kU3RyaW5nID0gZnVuY3Rpb24oZmluZFN0cmluZykKK3sKKyAgICBpZiAoV0kuZmlu
ZFN0cmluZyA9PT0gZmluZFN0cmluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgV0kuZmluZFN0
cmluZyA9IGZpbmRTdHJpbmc7CisKKyAgICBsZXQgZm9jdXNlZENvbnRlbnRWaWV3ID0gV0kuX2Zv
Y3VzZWRDb250ZW50VmlldygpOworICAgIGlmIChmb2N1c2VkQ29udGVudFZpZXcgJiYgZm9jdXNl
ZENvbnRlbnRWaWV3LnN1cHBvcnRzQ3VzdG9tRmluZEJhbm5lcikgeworICAgICAgICBmb2N1c2Vk
Q29udGVudFZpZXcuaGFuZGxlRmluZFN0cmluZ1VwZGF0ZWQoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGxldCBjb250ZW50QnJvd3NlciA9IFdJLl9mb2N1c2VkT3JWaXNpYmxlQ29u
dGVudEJyb3dzZXIoKTsKKyAgICBpZiAoY29udGVudEJyb3dzZXIpIHsKKyAgICAgICAgY29udGVu
dEJyb3dzZXIuaGFuZGxlRmluZFN0cmluZ1VwZGF0ZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KK307CisKIFdJLmhhbmRsZVBvc3NpYmxlTGlua0NsaWNrID0gZnVuY3Rpb24oZXZlbnQsIGZy
YW1lLCBvcHRpb25zID0ge30pCiB7CiAgICAgbGV0IGFuY2hvckVsZW1lbnQgPSBldmVudC50YXJn
ZXQuY2xvc2VzdCgiYSIpOwpAQCAtMjYxMCw1NSArMjYzMCw1MiBAQCBXSS5fY2xlYXIgPSBmdW5j
dGlvbihldmVudCkKIFdJLl9wb3B1bGF0ZUZpbmQgPSBmdW5jdGlvbihldmVudCkKIHsKICAgICBs
ZXQgZm9jdXNlZENvbnRlbnRWaWV3ID0gV0kuX2ZvY3VzZWRDb250ZW50VmlldygpOwotICAgIGlm
ICghZm9jdXNlZENvbnRlbnRWaWV3KQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoZm9jdXNl
ZENvbnRlbnRWaWV3LnN1cHBvcnRzQ3VzdG9tRmluZEJhbm5lcikgewotICAgICAgICBmb2N1c2Vk
Q29udGVudFZpZXcuaGFuZGxlUG9wdWxhdGVGaW5kU2hvcnRjdXQoKTsKKyAgICBpZiAoZm9jdXNl
ZENvbnRlbnRWaWV3ICYmIGZvY3VzZWRDb250ZW50Vmlldy5zdXBwb3J0c0N1c3RvbUZpbmRCYW5u
ZXIpIHsKKyAgICAgICAgbGV0IHN0cmluZyA9IGZvY3VzZWRDb250ZW50Vmlldy5oYW5kbGVQb3B1
bGF0ZUZpbmRTaG9ydGN1dCgpOworICAgICAgICBpZiAoc3RyaW5nKQorICAgICAgICAgICAgV0ku
ZmluZFN0cmluZyA9IHN0cmluZzsKKyAgICAgICAgZm9jdXNlZENvbnRlbnRWaWV3LmhhbmRsZUZp
bmRTdHJpbmdVcGRhdGVkKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBsZXQgY29u
dGVudEJyb3dzZXIgPSBXSS5fZm9jdXNlZE9yVmlzaWJsZUNvbnRlbnRCcm93c2VyKCk7Ci0gICAg
aWYgKCFjb250ZW50QnJvd3NlcikKKyAgICBpZiAoY29udGVudEJyb3dzZXIpIHsKKyAgICAgICAg
bGV0IHN0cmluZyA9IGNvbnRlbnRCcm93c2VyLmhhbmRsZVBvcHVsYXRlRmluZFNob3J0Y3V0KCk7
CisgICAgICAgIGlmIChzdHJpbmcpCisgICAgICAgICAgICBXSS5maW5kU3RyaW5nID0gc3RyaW5n
OworICAgICAgICBjb250ZW50QnJvd3Nlci5oYW5kbGVGaW5kU3RyaW5nVXBkYXRlZCgpOwogICAg
ICAgICByZXR1cm47Ci0KLSAgICBjb250ZW50QnJvd3Nlci5oYW5kbGVQb3B1bGF0ZUZpbmRTaG9y
dGN1dCgpOworICAgIH0KIH07CiAKIFdJLl9maW5kTmV4dCA9IGZ1bmN0aW9uKGV2ZW50KQogewog
ICAgIGxldCBmb2N1c2VkQ29udGVudFZpZXcgPSBXSS5fZm9jdXNlZENvbnRlbnRWaWV3KCk7Ci0g
ICAgaWYgKCFmb2N1c2VkQ29udGVudFZpZXcpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChm
b2N1c2VkQ29udGVudFZpZXcuc3VwcG9ydHNDdXN0b21GaW5kQmFubmVyKSB7CisgICAgaWYgKGZv
Y3VzZWRDb250ZW50Vmlldz8uc3VwcG9ydHNDdXN0b21GaW5kQmFubmVyKSB7CiAgICAgICAgIGZv
Y3VzZWRDb250ZW50Vmlldy5oYW5kbGVGaW5kTmV4dFNob3J0Y3V0KCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKICAgICBsZXQgY29udGVudEJyb3dzZXIgPSBXSS5fZm9jdXNlZE9yVmlzaWJs
ZUNvbnRlbnRCcm93c2VyKCk7Ci0gICAgaWYgKCFjb250ZW50QnJvd3NlcikKKyAgICBpZiAoY29u
dGVudEJyb3dzZXIpIHsKKyAgICAgICAgY29udGVudEJyb3dzZXIuaGFuZGxlRmluZE5leHRTaG9y
dGN1dCgpOwogICAgICAgICByZXR1cm47Ci0KLSAgICBjb250ZW50QnJvd3Nlci5oYW5kbGVGaW5k
TmV4dFNob3J0Y3V0KCk7CisgICAgfQogfTsKIAogV0kuX2ZpbmRQcmV2aW91cyA9IGZ1bmN0aW9u
KGV2ZW50KQogewogICAgIGxldCBmb2N1c2VkQ29udGVudFZpZXcgPSBXSS5fZm9jdXNlZENvbnRl
bnRWaWV3KCk7Ci0gICAgaWYgKCFmb2N1c2VkQ29udGVudFZpZXcpCi0gICAgICAgIHJldHVybjsK
LQotICAgIGlmIChmb2N1c2VkQ29udGVudFZpZXcuc3VwcG9ydHNDdXN0b21GaW5kQmFubmVyKSB7
CisgICAgaWYgKGZvY3VzZWRDb250ZW50Vmlldz8uc3VwcG9ydHNDdXN0b21GaW5kQmFubmVyKSB7
CiAgICAgICAgIGZvY3VzZWRDb250ZW50Vmlldy5oYW5kbGVGaW5kUHJldmlvdXNTaG9ydGN1dCgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgbGV0IGNvbnRlbnRCcm93c2VyID0gV0ku
X2ZvY3VzZWRPclZpc2libGVDb250ZW50QnJvd3NlcigpOwotICAgIGlmICghY29udGVudEJyb3dz
ZXIpCisgICAgaWYgKGNvbnRlbnRCcm93c2VyKSB7CisgICAgICAgIGNvbnRlbnRCcm93c2VyLmhh
bmRsZUZpbmRQcmV2aW91c1Nob3J0Y3V0KCk7CiAgICAgICAgIHJldHVybjsKLQotICAgIGNvbnRl
bnRCcm93c2VyLmhhbmRsZUZpbmRQcmV2aW91c1Nob3J0Y3V0KCk7CisgICAgfQogfTsKIAogV0ku
X2NvcHkgPSBmdW5jdGlvbihldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZyb250ZW5kQVBJLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRB
UEkuanMKaW5kZXggZDJkYmUxZDFkZDQ0OTAzYTBmMmVmMTk3OTU0MjQxMjYzY2YwYmNmMS4uYTM0
YjEwNzhlZGY4MTc3Njk1NjZkNWQ1NGE3ZjVhMjZmZGU4YjZkNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRB
UEkuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wv
SW5zcGVjdG9yRnJvbnRlbmRBUEkuanMKQEAgLTkxLDYgKzkxLDExIEBAIEluc3BlY3RvckZyb250
ZW5kQVBJID0gewogICAgICAgICBXSS51cGRhdGVWaXNpYmlsaXR5U3RhdGUodmlzaWJsZSk7CiAg
ICAgfSwKIAorICAgIHVwZGF0ZUZpbmRTdHJpbmc6IGZ1bmN0aW9uKGZpbmRTdHJpbmcpCisgICAg
eworICAgICAgICBXSS51cGRhdGVGaW5kU3RyaW5nKGZpbmRTdHJpbmcpOworICAgIH0sCisKICAg
ICBzZXREaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZTogZnVuY3Rpb24oYXZhaWxhYmxlKQogICAg
IHsKICAgICAgICAgaWYgKFdJLmRpYWdub3N0aWNDb250cm9sbGVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzCmluZGV4IDZlMDVkOTJiYTE0
NDhjODFiNDcxZmJlMmE2NGU4YzU0OTZjNmMxZjcuLmQzZjJkNTc2ZmIyZTk0M2Y2ZTIzNmM3ZmQ2
ODg1Y2U5MjAyMDVjMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Rlc3QvVGVzdC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9UZXN0L1Rlc3QuanMKQEAgLTE3Nyw2ICsxNzcsNyBAQCBXSS5yZXNvbHZlZExheW91dERp
cmVjdGlvbiA9ICgpID0+IHsgcmV0dXJuIEluc3BlY3RvckZyb250ZW5kSG9zdC51c2VySW50ZXJm
YWNlTAogV0kudXBkYXRlRG9ja2VkU3RhdGUgPSAoKSA9PiB7fTsKIFdJLnVwZGF0ZURvY2tpbmdB
dmFpbGFiaWxpdHkgPSAoKSA9PiB7fTsKIFdJLnVwZGF0ZVZpc2liaWxpdHlTdGF0ZSA9ICgpID0+
IHt9OworV0kudXBkYXRlRmluZFN0cmluZyA9ICgpID0+IHt9OwogCiAvLyBGSVhNRTogPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzIwMTE0OT4gV2ViIEluc3BlY3RvcjogcmVwbGFjZSBhbGwgdXNlcyBv
ZiBgd2luZG93LipBZ2VudGAgd2l0aCBhIHRhcmdldC1zcGVjaWZpYyBjYWxsCiAoZnVuY3Rpb24o
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Db250ZW50QnJvd3Nlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NvbnRlbnRCcm93c2VyLmpzCmluZGV4IDJhMjg2N2ExZDdhZjBiZTE3MDcyZGM0ZjNi
Mzk2MjgzMmY2YTVhMDYuLjc1ZDk3OGQyZWJiN2Q1Y2I1ZGI5OGUyZWIzZDhjNzdjNzFlMmMyNmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nv
bnRlbnRCcm93c2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NvbnRlbnRCcm93c2VyLmpzCkBAIC0yNDYsMjggKzI0Niw1MyBAQCBXSS5Db250ZW50
QnJvd3NlciA9IGNsYXNzIENvbnRlbnRCcm93c2VyIGV4dGVuZHMgV0kuVmlldwogCiAgICAgLy8g
R2xvYmFsIENvbnRlbnRCcm93c2VyIEtleWJvYXJkU2hvcnRjdXQgaGFuZGxlcnMKIAotICAgIGhh
bmRsZVBvcHVsYXRlRmluZFNob3J0Y3V0KCkKKyAgICBoYW5kbGVGaW5kU3RyaW5nVXBkYXRlZCgp
CiAgICAgeworICAgICAgICB0aGlzLl9maW5kQmFubmVyLnNlYXJjaFF1ZXJ5ID0gV0kuZmluZFN0
cmluZzsKKwogICAgICAgICBsZXQgY3VycmVudENvbnRlbnRWaWV3ID0gdGhpcy5jdXJyZW50Q29u
dGVudFZpZXc7Ci0gICAgICAgIGlmICghY3VycmVudENvbnRlbnRWaWV3IHx8ICFjdXJyZW50Q29u
dGVudFZpZXcuc3VwcG9ydHNTZWFyY2gpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
bGV0IHNlYXJjaFF1ZXJ5ID0gY3VycmVudENvbnRlbnRWaWV3LnNlYXJjaFF1ZXJ5V2l0aFNlbGVj
dGlvbigpOwotICAgICAgICBpZiAoIXNlYXJjaFF1ZXJ5KQotICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgIHRoaXMuX2ZpbmRCYW5uZXIuc2VhcmNoUXVlcnkgPSBzZWFyY2hRdWVyeTsKLQot
ICAgICAgICBjdXJyZW50Q29udGVudFZpZXcucGVyZm9ybVNlYXJjaCh0aGlzLl9maW5kQmFubmVy
LnNlYXJjaFF1ZXJ5KTsKKyAgICAgICAgaWYgKGN1cnJlbnRDb250ZW50Vmlldz8uc3VwcG9ydHNT
ZWFyY2gpCisgICAgICAgICAgICBjdXJyZW50Q29udGVudFZpZXcucGVyZm9ybVNlYXJjaCh0aGlz
Ll9maW5kQmFubmVyLnNlYXJjaFF1ZXJ5KTsKICAgICB9CiAKLSAgICBoYW5kbGVGaW5kTmV4dFNo
b3J0Y3V0KCkKKyAgICBoYW5kbGVQb3B1bGF0ZUZpbmRTaG9ydGN1dCgpCiAgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5jdXJyZW50Q29udGVudFZpZXc/LnNlYXJjaFF1ZXJ5V2l0aFNlbGVjdGlv
bigpOworICAgIH0KKworICAgIGFzeW5jIGhhbmRsZUZpbmROZXh0U2hvcnRjdXQoKQorICAgIHsK
KyAgICAgICAgaWYgKHRoaXMuX2ZpbmRCYW5uZXIuc2VhcmNoUXVlcnkgIT09IFdJLmZpbmRTdHJp
bmcpIHsKKyAgICAgICAgICAgIGxldCBzZWFyY2hRdWVyeSA9IFdJLmZpbmRTdHJpbmc7CisgICAg
ICAgICAgICB0aGlzLl9maW5kQmFubmVyLnNlYXJjaFF1ZXJ5ID0gc2VhcmNoUXVlcnk7CisKKyAg
ICAgICAgICAgIGxldCBjdXJyZW50Q29udGVudFZpZXcgPSB0aGlzLmN1cnJlbnRDb250ZW50Vmll
dzsKKyAgICAgICAgICAgIGlmIChjdXJyZW50Q29udGVudFZpZXc/LnN1cHBvcnRzU2VhcmNoKSB7
CisgICAgICAgICAgICAgICAgY3VycmVudENvbnRlbnRWaWV3LnBlcmZvcm1TZWFyY2godGhpcy5f
ZmluZEJhbm5lci5zZWFyY2hRdWVyeSk7CisgICAgICAgICAgICAgICAgYXdhaXQgY3VycmVudENv
bnRlbnRWaWV3LmF3YWl0RXZlbnQoV0kuQ29udGVudFZpZXcuRXZlbnQuTnVtYmVyT2ZTZWFyY2hS
ZXN1bHRzRGlkQ2hhbmdlKTsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5fZmluZEJhbm5lci5z
ZWFyY2hRdWVyeSAhPT0gc2VhcmNoUXVlcnkgfHwgdGhpcy5jdXJyZW50Q29udGVudFZpZXcgIT09
IGN1cnJlbnRDb250ZW50VmlldykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgdGhpcy5maW5kQmFubmVyUmV2ZWFsTmV4dFJl
c3VsdCh0aGlzLl9maW5kQmFubmVyKTsKICAgICB9CiAKLSAgICBoYW5kbGVGaW5kUHJldmlvdXNT
aG9ydGN1dCgpCisgICAgYXN5bmMgaGFuZGxlRmluZFByZXZpb3VzU2hvcnRjdXQoKQogICAgIHsK
KyAgICAgICAgaWYgKHRoaXMuX2ZpbmRCYW5uZXIuc2VhcmNoUXVlcnkgIT09IFdJLmZpbmRTdHJp
bmcpIHsKKyAgICAgICAgICAgIGxldCBzZWFyY2hRdWVyeSA9IFdJLmZpbmRTdHJpbmc7CisgICAg
ICAgICAgICB0aGlzLl9maW5kQmFubmVyLnNlYXJjaFF1ZXJ5ID0gc2VhcmNoUXVlcnk7CisKKyAg
ICAgICAgICAgIGxldCBjdXJyZW50Q29udGVudFZpZXcgPSB0aGlzLmN1cnJlbnRDb250ZW50Vmll
dzsKKyAgICAgICAgICAgIGlmIChjdXJyZW50Q29udGVudFZpZXc/LnN1cHBvcnRzU2VhcmNoKSB7
CisgICAgICAgICAgICAgICAgY3VycmVudENvbnRlbnRWaWV3LnBlcmZvcm1TZWFyY2godGhpcy5f
ZmluZEJhbm5lci5zZWFyY2hRdWVyeSk7CisgICAgICAgICAgICAgICAgYXdhaXQgY3VycmVudENv
bnRlbnRWaWV3LmF3YWl0RXZlbnQoV0kuQ29udGVudFZpZXcuRXZlbnQuTnVtYmVyT2ZTZWFyY2hS
ZXN1bHRzRGlkQ2hhbmdlKTsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5fZmluZEJhbm5lci5z
ZWFyY2hRdWVyeSAhPT0gc2VhcmNoUXVlcnkgfHwgdGhpcy5jdXJyZW50Q29udGVudFZpZXcgIT09
IGN1cnJlbnRDb250ZW50VmlldykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgdGhpcy5maW5kQmFubmVyUmV2ZWFsUHJldmlv
dXNSZXN1bHQodGhpcy5fZmluZEJhbm5lcik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3Lmpz
CmluZGV4IDYyMmVkODA0ZGFkNDNkY2RlZDM4MGYzZDc0ZDYxNTQ4NDI3NTk1ODkuLjE1MmI4YTEw
MDMwZTFiZjNiNGQ5OGM2NDVjMzNkYjNmZDljODYwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3Lmpz
CkBAIC0yOTYsMjQgKzI5NiwzMSBAQCBXSS5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRl
bnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgdGhpcy5fbG9nVmlld0NvbnRy
b2xsZXIucmVxdWVzdENsZWFyTWVzc2FnZXMoKTsKICAgICB9CiAKLSAgICBoYW5kbGVQb3B1bGF0
ZUZpbmRTaG9ydGN1dCgpCisgICAgaGFuZGxlRmluZFN0cmluZ1VwZGF0ZWQoKQogICAgIHsKLSAg
ICAgICAgbGV0IHNlYXJjaFF1ZXJ5ID0gdGhpcy5zZWFyY2hRdWVyeVdpdGhTZWxlY3Rpb24oKTsK
LSAgICAgICAgaWYgKCFzZWFyY2hRdWVyeSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICB0aGlzLl9maW5kQmFubmVyLnNlYXJjaFF1ZXJ5ID0gc2VhcmNoUXVlcnk7CisgICAgICAgIHRo
aXMuX2ZpbmRCYW5uZXIuc2VhcmNoUXVlcnkgPSBXSS5maW5kU3RyaW5nOwogCiAgICAgICAgIHRo
aXMucGVyZm9ybVNlYXJjaCh0aGlzLl9maW5kQmFubmVyLnNlYXJjaFF1ZXJ5KTsKICAgICB9CiAK
KyAgICBoYW5kbGVQb3B1bGF0ZUZpbmRTaG9ydGN1dCgpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5zZWFyY2hRdWVyeVdpdGhTZWxlY3Rpb24oKTsKKyAgICB9CisKICAgICBoYW5kbGVGaW5k
TmV4dFNob3J0Y3V0KCkKICAgICB7CisgICAgICAgIGlmICh0aGlzLl9maW5kQmFubmVyLnNlYXJj
aFF1ZXJ5ICE9PSBXSS5maW5kU3RyaW5nKQorICAgICAgICAgICAgdGhpcy5oYW5kbGVGaW5kU3Ry
aW5nVXBkYXRlZCgpOworCiAgICAgICAgIHRoaXMuZmluZEJhbm5lclJldmVhbE5leHRSZXN1bHQo
dGhpcy5fZmluZEJhbm5lcik7CiAgICAgfQogCiAgICAgaGFuZGxlRmluZFByZXZpb3VzU2hvcnRj
dXQoKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2ZpbmRCYW5uZXIuc2VhcmNoUXVlcnkgIT09
IFdJLmZpbmRTdHJpbmcpCisgICAgICAgICAgICB0aGlzLmhhbmRsZUZpbmRTdHJpbmdVcGRhdGVk
KCk7CisKICAgICAgICAgdGhpcy5maW5kQmFubmVyUmV2ZWFsUHJldmlvdXNSZXN1bHQodGhpcy5f
ZmluZEJhbm5lcik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5oCmluZGV4IDIxMzc1NzU3
MDk1NTJkZDMyNTliNTk2YTljMmI4NmNhOTA3MzIwODMuLmQ0Yjk3ODc4Mjg3NDY5MDUxZWJiNzU2
MDVkMTBiZGY5MzdiN2M1MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5oCkBAIC05MCw2ICs5MCw4
IEBAIHB1YmxpYzoKICAgICBXS1dlYlZpZXcgKndlYlZpZXcoKSBjb25zdDsKIAogICAgIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgc2hlZXRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9zaGVldFJl
Y3Q7IH0KKworICAgIHZvaWQgZGlkQmVjb21lQWN0aXZlKCk7CiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvclByb3h5LmgKaW5kZXggNDZlMzQyNDkzODFiYjliMWM3YTM2ZGNhMmE4MTNmMTkz
ZTdmM2VjZC4uZWIwYjgxZWI4MTRmODczYTJhZGFiMzAyNzgxYmQ5ZDhiZGM3MDMzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclBy
b3h5LmgKQEAgLTExMyw2ICsxMTMsOCBAQCBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBJbnNwZWN0
aW9uVGFyZ2V0VHlwZSB7IExvY2FsLCBSZW1vdGUgfTsKICAgICBzdGF0aWMgUmV0YWluUHRyPE5T
V2luZG93PiBjcmVhdGVGcm9udGVuZFdpbmRvdyhOU1JlY3Qgc2F2ZWRXaW5kb3dGcmFtZSwgSW5z
cGVjdGlvblRhcmdldFR5cGUpOwogCisgICAgdm9pZCBkaWRCZWNvbWVBY3RpdmUoKTsKKwogICAg
IHZvaWQgdXBkYXRlSW5zcGVjdG9yV2luZG93VGl0bGUoKSBjb25zdDsKICAgICB2b2lkIGluc3Bl
Y3RlZFZpZXdGcmFtZURpZENoYW5nZShDR0Zsb2F0ID0gMCk7CiAgICAgdm9pZCB3aW5kb3dGcmFt
ZURpZENoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL21hYy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9tYWMvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KaW5kZXgg
NTE0ZmQ0YTA5MmQ3Y2ZlYjdiYTM2ODhiNWZlNDk0YjU2MGIwZDQ5Yy4uZjFiMmI1MTFkN2VjNjg4
ZGJlZDE0MzQ5NGEwMzM4MWVlOGZkMmY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL21hYy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1JlbW90ZVdlYkluc3BlY3RvclBy
b3h5TWFjLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJM
RShSRU1PVEVfSU5TUEVDVE9SKQogCisjaW1wb3J0ICJHbG9iYWxGaW5kSW5QYWdlU3RhdGUuaCIK
ICNpbXBvcnQgIlJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIlJl
bW90ZVdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCIKICNpbXBvcnQgIldLRnJhbWVJbmZvLmgiCkBA
IC02OCw2ICs2OSwxMSBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhSZW1vdGVXZWJJbnNwZWN0
b3JQcm94eTooV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eQogICAgIHJldHVybiBzZWxm
OwogfQogCistICh2b2lkKWluc3BlY3RvcldLV2ViVmlld0RpZEJlY29tZUFjdGl2ZTooV0tJbnNw
ZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3BlY3RvclZpZXdDb250cm9sbGVyCit7CisgICAgX2lu
c3BlY3RvclByb3h5LT5kaWRCZWNvbWVBY3RpdmUoKTsKK30KKwogLSAodm9pZClpbnNwZWN0b3JW
aWV3Q29udHJvbGxlckluc3BlY3RvckRpZENyYXNoOihXS0luc3BlY3RvclZpZXdDb250cm9sbGVy
ICopaW5zcGVjdG9yVmlld0NvbnRyb2xsZXIKIHsKICAgICBfaW5zcGVjdG9yUHJveHktPmNsb3Nl
RnJvbUNyYXNoKCk7CkBAIC04OCw2ICs5NCwxMSBAQCBXS1dlYlZpZXcgKlJlbW90ZVdlYkluc3Bl
Y3RvclByb3h5Ojp3ZWJWaWV3KCkgY29uc3QKICAgICByZXR1cm4gbV9pbnNwZWN0b3JWaWV3Lmdl
dCgpLndlYlZpZXc7CiB9CiAKK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OmRpZEJlY29t
ZUFjdGl2ZSgpCit7CisgICAgbV9pbnNwZWN0b3JQYWdlLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVX
ZWJJbnNwZWN0b3JVSTo6VXBkYXRlRmluZFN0cmluZyhXZWJLaXQ6OnN0cmluZ0ZvckZpbmQoKSkp
OworfQorCiBXZWJQYWdlUHJveHkqIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNy
ZWF0ZUZyb250ZW5kUGFnZUFuZFdpbmRvdygpCiB7CiAgICAgbV9vYmpDQWRhcHRlciA9IGFkb3B0
TlMoW1tXS1JlbW90ZVdlYkluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgYWxsb2NdIGluaXRXaXRo
UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6dGhpc10pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRy
b2xsZXIuaAppbmRleCA3MGRjZTE0MmI3YTQyNDU2ZWY2MmIzOTAxMWI4Mzc4M2E1NDJkZDJlLi5i
YWJkMzMyNTAyYWRlOTliNjFkYzQ1Yjk3Njk5NjYwOGI3YzhiODEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIuaApAQCAtNTEsNiArNTEsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9C
RUdJTgogCiBAcHJvdG9jb2wgV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlckRlbGVnYXRlIDxOU09i
amVjdD4KIEBvcHRpb25hbAorLSAodm9pZClpbnNwZWN0b3JWaWV3Q29udHJvbGxlckRpZEJlY29t
ZUFjdGl2ZTooV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3BlY3RvclZpZXdDb250cm9s
bGVyOwogLSAodm9pZClpbnNwZWN0b3JWaWV3Q29udHJvbGxlckluc3BlY3RvckRpZENyYXNoOihX
S0luc3BlY3RvclZpZXdDb250cm9sbGVyICopaW5zcGVjdG9yVmlld0NvbnRyb2xsZXI7CiAtIChC
T09MKWluc3BlY3RvclZpZXdDb250cm9sbGVySW5zcGVjdG9ySXNVbmRlclRlc3Q6KFdLSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIgKilpbnNwZWN0b3JWaWV3Q29udHJvbGxlcjsKIC0gKHZvaWQpaW5z
cGVjdG9yVmlld0NvbnRyb2xsZXI6KFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgKilpbnNwZWN0
b3JWaWV3Q29udHJvbGxlciB3aWxsTW92ZVRvV2luZG93OihOU1dpbmRvdyAqKW5ld1dpbmRvdzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNw
ZWN0b3JWaWV3Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQppbmRleCBhNjFmMWVkMGI4MDRmODdh
ZjI3YmJlNTJhOTE3NWFiNTgxNzE1ZmRmLi5lYWUyMmFjNDFjODMyYTY0N2FhMTBmYmZlMzM3ZjJk
MzIzY2E2ODU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
bWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCkBAIC0yMzUs
NiArMjM1LDEyIEBAIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpCiAKIC8vIE1BUks6IFdLSW5zcGVj
dG9yV0tXZWJWaWV3RGVsZWdhdGUgbWV0aG9kcwogCistICh2b2lkKWluc3BlY3RvcldLV2ViVmll
d0RpZEJlY29tZUFjdGl2ZTooV0tJbnNwZWN0b3JXS1dlYlZpZXcgKil3ZWJWaWV3Cit7CisgICAg
aWYgKCEhX2RlbGVnYXRlICYmIFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihpbnNwZWN0b3JWaWV3Q29udHJvbGxlckRpZEJlY29tZUFjdGl2ZTopXSkKKyAgICAgICAgW19k
ZWxlZ2F0ZSBpbnNwZWN0b3JWaWV3Q29udHJvbGxlckRpZEJlY29tZUFjdGl2ZTpzZWxmXTsKK30K
KwogLSAodm9pZClpbnNwZWN0b3JXS1dlYlZpZXdSZWxvYWQ6KFdLSW5zcGVjdG9yV0tXZWJWaWV3
ICopd2ViVmlldwogewogICAgIGlmICghX2luc3BlY3RlZFBhZ2UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yV0tXZWJWaWV3Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yV0tXZWJW
aWV3LmgKaW5kZXggYjIxOTBiMzgzMzllMDlhZjAwOGRlYjI1Mzg1Y2YwMjA4ODdmN2U2My4uZDc0
ZTdmZTE0MjJiM2NkY2RhMDhjNzUyNWRjOTA0Y2RkN2EwOTYyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvcldLV2ViVmlldy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JXS1dl
YlZpZXcuaApAQCAtMzUsNiArMzUsNyBAQAogCiBAcHJvdG9jb2wgV0tJbnNwZWN0b3JXS1dlYlZp
ZXdEZWxlZ2F0ZQogQHJlcXVpcmVkCistICh2b2lkKWluc3BlY3RvcldLV2ViVmlld0RpZEJlY29t
ZUFjdGl2ZTooV0tJbnNwZWN0b3JXS1dlYlZpZXcgKil3ZWJWaWV3OwogLSAodm9pZClpbnNwZWN0
b3JXS1dlYlZpZXdSZWxvYWQ6KFdLSW5zcGVjdG9yV0tXZWJWaWV3ICopd2ViVmlldzsKIC0gKHZv
aWQpaW5zcGVjdG9yV0tXZWJWaWV3UmVsb2FkRnJvbU9yaWdpbjooV0tJbnNwZWN0b3JXS1dlYlZp
ZXcgKil3ZWJWaWV3OwogLSAodm9pZClpbnNwZWN0b3JXS1dlYlZpZXc6KFdLSW5zcGVjdG9yV0tX
ZWJWaWV3ICopd2ViVmlldyB3aWxsTW92ZVRvV2luZG93OihOU1dpbmRvdyAqKW5ld1dpbmRvdzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNw
ZWN0b3JXS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFj
L1dLSW5zcGVjdG9yV0tXZWJWaWV3Lm1tCmluZGV4IDRiZmVmNGEwMWJhZjEzYWQ0ZmU3MWY4YTlk
M2RjNjU0MjU4YTljYjYuLjA4MTNjYmQzNjk5MGNkZWY5NzNlYTE4ODZlMGJmMjBjY2EyM2JlZjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNw
ZWN0b3JXS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L21hYy9XS0luc3BlY3RvcldLV2ViVmlldy5tbQpAQCAtMzMsNiArMzMsNyBAQAogCiBAaW1wbGVt
ZW50YXRpb24gV0tJbnNwZWN0b3JXS1dlYlZpZXcgewogICAgIFdlYWtPYmpDUHRyPGlkIDxXS0lu
c3BlY3RvcldLV2ViVmlld0RlbGVnYXRlPj4gX2luc3BlY3RvcldLV2ViVmlld0RlbGVnYXRlOwor
ICAgIEJPT0wgX2FkZGVkT2JzZXJ2ZXJzOwogfQogCiAtIChOU1JlY3QpX29wYXF1ZVJlY3RGb3JX
aW5kb3dNb3ZlV2hlbkluVGl0bGViYXIKQEAgLTU1LDYgKzU2LDExIEBAIC0gKGlkIDxXS0luc3Bl
Y3RvcldLV2ViVmlld0RlbGVnYXRlPilpbnNwZWN0b3JXS1dlYlZpZXdEZWxlZ2F0ZQogLSAodm9p
ZClzZXRJbnNwZWN0b3JXS1dlYlZpZXdEZWxlZ2F0ZTooaWQgPFdLSW5zcGVjdG9yV0tXZWJWaWV3
RGVsZWdhdGU+KWRlbGVnYXRlCiB7CiAgICAgX2luc3BlY3RvcldLV2ViVmlld0RlbGVnYXRlID0g
ZGVsZWdhdGU7CisKKyAgICBpZiAoIV9hZGRlZE9ic2VydmVycykgeworICAgICAgICBfYWRkZWRP
YnNlcnZlcnMgPSBZRVM7CisgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENl
bnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2hhbmRsZVdpbmRvd0Rp
ZEJlY29tZUtleTopIG5hbWU6TlNXaW5kb3dEaWRCZWNvbWVLZXlOb3RpZmljYXRpb24gb2JqZWN0
Om5pbF07CisgICAgfQogfQogCiAtIChJQkFjdGlvbilyZWxvYWQ6KGlkKXNlbmRlcgpAQCAtNzks
NiArODUsMTggQEAgLSAodm9pZCl2aWV3RGlkTW92ZVRvV2luZG93CiAgICAgW3NlbGYuaW5zcGVj
dG9yV0tXZWJWaWV3RGVsZWdhdGUgaW5zcGVjdG9yV0tXZWJWaWV3RGlkTW92ZVRvV2luZG93OnNl
bGZdOwogfQogCistIChCT09MKWJlY29tZUZpcnN0UmVzcG9uZGVyCit7CisgICAgQk9PTCByZXN1
bHQgPSBbc3VwZXIgYmVjb21lRmlyc3RSZXNwb25kZXJdOworICAgIFtzZWxmLmluc3BlY3RvcldL
V2ViVmlld0RlbGVnYXRlIGluc3BlY3RvcldLV2ViVmlld0RpZEJlY29tZUFjdGl2ZTpzZWxmXTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCistICh2b2lkKV9oYW5kbGVXaW5kb3dEaWRCZWNvbWVL
ZXk6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgW3NlbGYuaW5zcGVjdG9y
V0tXZWJWaWV3RGVsZWdhdGUgaW5zcGVjdG9yV0tXZWJWaWV3RGlkQmVjb21lQWN0aXZlOnNlbGZd
OworfQorCiBAZW5kCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KaW5kZXggNmIz
MWRlNTE1ZDU5N2U3NjBhNDMxZGIzMzViYTkxNTk1NGRlOTVhOC4uYjM2NjM5M2E0YWIwMDQ4Njc3
MzAxNWRhY2Y4YjA2MTk3M2FmYzQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCkBAIC0y
OCw2ICsyOCw3IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAKKyNpbXBvcnQgIkdsb2JhbEZpbmRJ
blBhZ2VTdGF0ZS5oIgogI2ltcG9ydCAiV0tJbnNwZWN0b3JQcml2YXRlTWFjLmgiCiAjaW1wb3J0
ICJXS0luc3BlY3RvclZpZXdDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS1ZpZXdJbnRlcm5hbC5o
IgpAQCAtMTYzLDYgKzE2NCwxMiBAQCAtICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6KE5T
U3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTgogCiAvLyBNQVJL
OiBXS0luc3BlY3RvclZpZXdDb250cm9sbGVyRGVsZWdhdGUgbWV0aG9kcwogCistICh2b2lkKWlu
c3BlY3RvclZpZXdDb250cm9sbGVyRGlkQmVjb21lQWN0aXZlOihXS0luc3BlY3RvclZpZXdDb250
cm9sbGVyICopaW5zcGVjdG9yVmlld0NvbnRyb2xsZXIKK3sKKyAgICBpZiAoX2luc3BlY3RvclBy
b3h5KQorICAgICAgICBfaW5zcGVjdG9yUHJveHktPmRpZEJlY29tZUFjdGl2ZSgpOworfQorCiAt
ICh2b2lkKWluc3BlY3RvclZpZXdDb250cm9sbGVySW5zcGVjdG9yRGlkQ3Jhc2g6KFdLSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIgKilpbnNwZWN0b3JWaWV3Q29udHJvbGxlcgogewogICAgIGlmIChf
aW5zcGVjdG9yUHJveHkpCkBAIC0xOTEsNiArMTk4LDExIEBAIEBlbmQKIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6
OmRpZEJlY29tZUFjdGl2ZSgpCit7CisgICAgbV9pbnNwZWN0b3JQYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJJbnNwZWN0b3JVSTo6VXBkYXRlRmluZFN0cmluZyhXZWJLaXQ6OnN0cmluZ0ZvckZpbmQo
KSkpOworfQorCiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjphdHRhY2htZW50Vmlld0RpZENoYW5n
ZShOU1ZpZXcgKm9sZFZpZXcsIE5TVmlldyAqbmV3VmlldykKIHsKICAgICBbW05TTm90aWZpY2F0
aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fb2JqQ0FkYXB0ZXIuZ2V0
KCkgbmFtZTpOU1ZpZXdGcmFtZURpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6b2xkVmlld107
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdl
Ykluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVt
b3RlV2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IDVmY2M5ZjgyNDRkNWM3ZWUyNDg4ZWFkNzdhN2Q3
NzgzNjU5YTFlMzEuLmNjZGFjY2FiNzQxMWY4Nzc0ZTg0ZjgyYjRiN2Y1MTIwYTRmOTc1NDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5z
cGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVt
b3RlV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC02Nyw2ICs2NywxMSBAQCB2b2lkIFJlbW90ZVdlYklu
c3BlY3RvclVJOjppbml0aWFsaXplKERlYnVnZ2FibGVJbmZvRGF0YSYmIGRlYnVnZ2FibGVJbmZv
LCBjb25zdAogICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0
RG9ja2luZ1VuYXZhaWxhYmxlIl9zLCB0cnVlKTsKIH0KIAordm9pZCBSZW1vdGVXZWJJbnNwZWN0
b3JVSTo6dXBkYXRlRmluZFN0cmluZyhjb25zdCBTdHJpbmcmIGZpbmRTdHJpbmcpCit7CisgICAg
bV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJ1cGRhdGVGaW5kU3RyaW5n
Il9zLCBmaW5kU3RyaW5nKTsKK30KKwogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6ZGlkU2F2
ZShjb25zdCBTdHJpbmcmIHVybCkKIHsKICAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNw
YXRjaENvbW1hbmQoInNhdmVkVVJMIl9zLCB1cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oCmluZGV4IDY2
N2E2NTcwNDJiOTg2OWU2YTYxY2EyODQ4ZTdjNzZlMTkzYzdlZWMuLmNhNGFmNzI1NzhlMzQ4Njhk
NWJmZjBhNWI1YmVlMmZkMjFmMzQ4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmgKQEAgLTUwLDYgKzUw
LDcgQEAgcHVibGljOgogCiAgICAgLy8gQ2FsbGVkIGJ5IFJlbW90ZVdlYkluc3BlY3RvclVJIG1l
c3NhZ2VzCiAgICAgdm9pZCBpbml0aWFsaXplKERlYnVnZ2FibGVJbmZvRGF0YSYmLCBjb25zdCBT
dHJpbmcmIGJhY2tlbmRDb21tYW5kc1VSTCk7CisgICAgdm9pZCB1cGRhdGVGaW5kU3RyaW5nKGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgZGlkU2F2ZShjb25zdCBTdHJpbmcmIHVybCk7CiAgICAg
dm9pZCBkaWRBcHBlbmQoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZvaWQgc2VuZE1lc3NhZ2VU
b0Zyb250ZW5kKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkubWVzc2Fn
ZXMuaW4KaW5kZXggMmJmN2U0Yzg3OGRhMWUzNDg5Yjk4MjRjY2Q2ZDg2MTg0NDRlYTlkZS4uM2Uy
MDJjMTZlN2M1MTZmODMwMDE5ZDdkZTE5ZDAzMGM1YTFkMzQ1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYklu
c3BlY3RvclVJLm1lc3NhZ2VzLmluCkBAIC0yMyw2ICsyMyw4IEBACiBtZXNzYWdlcyAtPiBSZW1v
dGVXZWJJbnNwZWN0b3JVSSB7CiAgICAgSW5pdGlhbGl6ZShzdHJ1Y3QgV2ViS2l0OjpEZWJ1Z2dh
YmxlSW5mb0RhdGEgZGVidWdnYWJsZUluZm8sIFN0cmluZyBiYWNrZW5kQ29tbWFuZHNVUkwpCiAK
KyAgICBVcGRhdGVGaW5kU3RyaW5nKFN0cmluZyBmaW5kU3RyaW5nKQorCiAjaWYgRU5BQkxFKElO
U1BFQ1RPUl9URUxFTUVUUlkpCiAgICAgU2V0RGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUoYm9v
bCBhdmFpbGFibGUpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHAKaW5kZXggYzVjNWI3NjkzMjA3NjYzMTZkMDc5
M2I5ZDc1MGM1N2M5ZDI1N2YxMy4uM2IzYWM5Zjg5YTk3MzA3N2I2YjBjZjAyNzQ0ODRmOTEwM2U5
MTA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JVSS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JVSS5jcHAKQEAgLTI2OSw2ICsyNjksMTEgQEAgdm9pZCBXZWJJbnNwZWN0b3JV
STo6c2V0SXNWaXNpYmxlKGJvb2wgdmlzaWJsZSkKICAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hl
ci5kaXNwYXRjaENvbW1hbmQoInNldElzVmlzaWJsZSJfcywgdmlzaWJsZSk7CiB9CiAKK3ZvaWQg
V2ViSW5zcGVjdG9yVUk6OnVwZGF0ZUZpbmRTdHJpbmcoY29uc3QgU3RyaW5nJiBmaW5kU3RyaW5n
KQoreworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgidXBkYXRl
RmluZFN0cmluZyJfcywgZmluZFN0cmluZyk7Cit9CisKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmNo
YW5nZUF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkKIHsKICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJJbnNwZWN0b3JQcm94eTo6U2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQoaGVpZ2h0KSwgbV9p
bnNwZWN0ZWRQYWdlSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmgKaW5kZXggYzZiODcxNThhMTM5ZjJhNWQyZDhm
NzEzZDg5MGE2YmM2OTQ2Nzg4YS4uNzc5MDI3YTYwYWE0MWNjNmU4MzNjMjI4NzIzMDEyMTM3MTNi
OWE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JVSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yVUkuaApAQCAtNzksNiArNzksOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldElz
VmlzaWJsZShib29sKTsKIAorICAgIHZvaWQgdXBkYXRlRmluZFN0cmluZyhjb25zdCBTdHJpbmcm
KTsKKwogICAgIHZvaWQgZGlkU2F2ZShjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBkaWRB
cHBlbmQoY29uc3QgU3RyaW5nJiB1cmwpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbgppbmRl
eCA5NGYxMzg1ZDQ4OTU1NjI2OWJhZmE1N2MwNzVlYjRkYWYxM2UxNjM1Li44OGEyMGY4MTBmNmZk
YWU1Mjc3ZmM1NThjOTFmNWZkY2JhOWVhNDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW4K
QEAgLTMwLDYgKzMwLDcgQEAgbWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9yVUkgewogICAgIERldGFj
aGVkKCkKICAgICBTZXREb2NraW5nVW5hdmFpbGFibGUoYm9vbCB1bmF2YWlsYWJsZSkKICAgICBT
ZXRJc1Zpc2libGUoYm9vbCB2aXNpYmxlKQorICAgIFVwZGF0ZUZpbmRTdHJpbmcoU3RyaW5nIGZp
bmRTdHJpbmcpCiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX1RFTEVNRVRSWSkKICAgICBTZXREaWFn
bm9zdGljTG9nZ2luZ0F2YWlsYWJsZShib29sIGF2YWlsYWJsZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397693</attachid>
            <date>2020-04-27 09:59:19 -0700</date>
            <delta_ts>2020-04-27 21:47:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113588-20200427105919.patch</filename>
            <type>text/plain</type>
            <size>26730</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDRiMWJlYjFmN2IxNDkyZmZhN2ZkZDM1YTNmNTI5
ZmY0MTg2Y2Q1ZDAuLjY4NzI3NTRhODE3ZTRjOTFjZjljMTc3NjE5ZWE4MGJhZTM5NTQxZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA0LTI3ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBm
aW5kIGRpYWxvZyBkb2VzIG5vdCBwb3B1bGF0ZSBzZWFyY2ggc3RyaW5nIGZyb20gc3lzdGVtIGZp
bmQgcGFzdGVib2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEzNTg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xOTI4MTQ2Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanM6CisgICAgICAgIChJbnNwZWN0b3JGcm9u
dGVuZEFQSS51cGRhdGVGaW5kU3RyaW5nKTogQWRkZWQuCisgICAgICAgICogVXNlckludGVyZmFj
ZS9CYXNlL01haW4uanM6CisgICAgICAgIChXSS5jb250ZW50TG9hZGVkKToKKyAgICAgICAgKFdJ
LnVwZGF0ZUZpbmRTdHJpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdJLl9wb3B1bGF0ZUZpbmQpOgor
ICAgICAgICAoV0kuX2ZpbmROZXh0KToKKyAgICAgICAgKFdJLl9maW5kUHJldmlvdXMpOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudEJyb3dzZXIuanM6CisgICAgICAgIChX
SS5Db250ZW50QnJvd3Nlci5wcm90b3R5cGUuaGFuZGxlRmluZFN0cmluZ1VwZGF0ZWQpOiBBZGRl
ZC4KKyAgICAgICAgKFdJLkNvbnRlbnRCcm93c2VyLnByb3RvdHlwZS5oYW5kbGVQb3B1bGF0ZUZp
bmRTaG9ydGN1dCk6CisgICAgICAgIChXSS5Db250ZW50QnJvd3Nlci5wcm90b3R5cGUuaGFuZGxl
RmluZE5leHRTaG9ydGN1dCk6CisgICAgICAgIChXSS5Db250ZW50QnJvd3Nlci5wcm90b3R5cGUu
aGFuZGxlRmluZFByZXZpb3VzU2hvcnRjdXQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvTG9nQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5Mb2dDb250ZW50Vmlldy5wcm90b3R5
cGUuaGFuZGxlRmluZFN0cmluZ1VwZGF0ZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkxvZ0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5oYW5kbGVQb3B1bGF0ZUZpbmRTaG9ydGN1dCk6CisgICAgICAgIChX
SS5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxlRmluZE5leHRTaG9ydGN1dCk6CisgICAg
ICAgIChXSS5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxlRmluZFByZXZpb3VzU2hvcnRj
dXQpOgorICAgICAgICBXaGVuIHRoZSBmaW5kIHN0cmluZyBnZXRzIHVwZGF0ZWQsIHRlbGwgdGhl
IGFjdGl2ZSB2aWV3LiBUaGUgYGZpbmROZXh0S2V5Ym9hcmRTaG9ydGN1dGAgYW5kCisgICAgICAg
IGBmaW5kUHJldmlvdXNLZXlib2FyZFNob3J0Y3V0YCB3aWxsIGFsc28gdXBkYXRlIHRoZSByZWxh
dGVkIGBXSS5GaW5kQmFubmVyYCB3aGVuIGludm9rZWQgaWYKKyAgICAgICAgdGhlIGN1cnJlbnQg
c2VhcmNoIHF1ZXJ5IGRvZXMgbm90IG1hdGNoIHRoZSBmaW5kIHN0cmluZy4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzOgorICAgICAgICAoV0kudXBkYXRlRmluZFN0cmlu
Zyk6IEFkZGVkLgorCiAyMDIwLTA0LTIzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSRUdSRVNTSU9OKHIyNTc3NTkpOiBOZXR3b3Jr
OiB3YXRlcmZhbGwgcG9wb3ZlciBpcyBtaXNzaW5nIGJhcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNmM3YzI5NTVm
MzUxYWY2OTJmMjRlNmQ0NWVjOGIxNzYzNDRlYjBmNS4uZDhiZWVmM2RlYmQwY2VmMDY5YWU1MDZm
ZTQ4MGVlNTlmNmYxMjRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAyMC0wNC0yNyAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogZmluZCBkaWFsb2cgZG9lcyBub3QgcG9wdWxhdGUgc2VhcmNoIHN0cmluZyBmcm9tIHN5c3Rl
bSBmaW5kIHBhc3RlYm9hcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMzU4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTkyODE0NjY+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
SW5zcGVjdG9yL21hYy9XS0luc3BlY3RvcldLV2ViVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS0lu
c3BlY3RvcldLV2ViVmlldyBzZXRJbnNwZWN0b3JXS1dlYlZpZXdEZWxlZ2F0ZTpdKToKKyAgICAg
ICAgKC1bV0tJbnNwZWN0b3JXS1dlYlZpZXcgYmVjb21lRmlyc3RSZXNwb25kZXJdKTogQWRkZWQu
CisgICAgICAgICgtW1dLSW5zcGVjdG9yV0tXZWJWaWV3IF9oYW5kbGVXaW5kb3dEaWRCZWNvbWVL
ZXk6XSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9X
S0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0luc3BlY3RvclZpZXdD
b250cm9sbGVyIGluc3BlY3RvcldLV2ViVmlld0RpZEJlY29tZUFjdGl2ZTpdKTogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tOgorICAg
ICAgICAoLVtXS1dlYkluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgaW5zcGVjdG9yVmlld0NvbnRy
b2xsZXJEaWRCZWNvbWVBY3RpdmU6XSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNw
ZWN0b3JQcm94eTo6ZGlkQmVjb21lQWN0aXZlKTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9JbnNwZWN0b3IvbWFjL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tOgorICAgICAgICAo
LVtXS1JlbW90ZVdlYkluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgaW5zcGVjdG9yV0tXZWJWaWV3
RGlkQmVjb21lQWN0aXZlOl0pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5z
cGVjdG9yUHJveHk6OmRpZEJlY29tZUFjdGl2ZSk6IEFkZGVkLgorICAgICAgICBBZGQgYSBuZXcg
ZGVsZWdhdGUgY2FsbCBjaGFpbiB0aGF0IG5vdGlmaWVzIHRoZSBpbnNwZWN0b3IgcHJveHkgYWJv
dXQgd2hlbiB0aGUgaW5zcGVjdG9yIHdlYgorICAgICAgICB2aWV3IGJlY29tZXMgYWN0aXZlLCBh
dCB3aGljaCBwb2ludCB0aGUgaW5zcGVjdG9yIHByb3h5IGNhbiBnZXQgdGhlIGN1cnJlbnQgZmlu
ZCBzdHJpbmcgYW5kCisgICAgICAgIHNlbnQgaXQgdG8gdGhlIGluc3BlY3RvciBwYWdlLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkluc3BlY3RvclVJOjp1cGRhdGVGaW5kU3RyaW5nKTogQWRkZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjp1cGRhdGVGaW5kU3RyaW5n
KTogQWRkZWQuCisgICAgICAgIFBhc3MgYWxvbmcgdGhlIG5ldyBmaW5kIHN0cmluZyB0byB0aGUg
ZnJvbnRlbmQgdmlhIGBJbnNwZWN0b3JGcm9udGVuZEFQSS51cGRhdGVGaW5kU3RyaW5nYC4KKwog
MjAyMC0wNC0yNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIFNQSSBjbGllbnRzIHVzaW5nIGZhc3RTZXJ2ZXJUcnVzdEV2YWx1YXRpb25FbmFi
bGVkIG5lZWQgU1BJIHRvIGluZm9ybSB0aGVtIG9mIG1vZGVybiBUTFMgbmVnb3RpYXRpb24KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwppbmRl
eCA5MTIwYzA3MTY1NDU4NjJlODg1NmZhNTE4ZDczZjY2ZjNlOGM1MmZmLi4wNjQ5NzU2MDZhYmY0
MTA5ODk0NDUzNGMxY2VjOGJmOGI3ZDJiZmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC0yOTAsNyArMjkwLDcgQEAgV0kuY29u
dGVudExvYWRlZCA9IGZ1bmN0aW9uKCkKIAogICAgIFdJLmNsZWFyS2V5Ym9hcmRTaG9ydGN1dCA9
IG5ldyBXSS5LZXlib2FyZFNob3J0Y3V0KFdJLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29t
bWFuZE9yQ29udHJvbCwgIksiLCBXSS5fY2xlYXIpOwogCi0gICAgLy8gRklYTUU6IDxodHRwczov
L3dlYmtpdC5vcmcvYi8xNTEzMTA+IFdlYiBJbnNwZWN0b3I6IENvbW1hbmQtRSBzaG91bGQgcHJv
cGFnYXRlIHRvIG90aGVyIHNlYXJjaCBmaWVsZHMgKGluY2x1ZGluZyB0aGUgc3lzdGVtKQorICAg
IFdJLmZpbmRTdHJpbmcgPSAiIjsKICAgICBXSS5wb3B1bGF0ZUZpbmRLZXlib2FyZFNob3J0Y3V0
ID0gbmV3IFdJLktleWJvYXJkU2hvcnRjdXQoV0kuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5D
b21tYW5kT3JDb250cm9sLCAiRSIsIFdJLl9wb3B1bGF0ZUZpbmQpOwogICAgIFdJLnBvcHVsYXRl
RmluZEtleWJvYXJkU2hvcnRjdXQuaW1wbGljaXRseVByZXZlbnRzRGVmYXVsdCA9IGZhbHNlOwog
ICAgIFdJLmZpbmROZXh0S2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXSS5LZXlib2FyZFNob3J0Y3V0
KFdJLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29tbWFuZE9yQ29udHJvbCwgIkciLCBXSS5f
ZmluZE5leHQpOwpAQCAtMTA0NSw2ICsxMDQ1LDI2IEBAIFdJLnVwZGF0ZVZpc2liaWxpdHlTdGF0
ZSA9IGZ1bmN0aW9uKHZpc2libGUpCiAgICAgV0kubm90aWZpY2F0aW9ucy5kaXNwYXRjaEV2ZW50
VG9MaXN0ZW5lcnMoV0kuTm90aWZpY2F0aW9uLlZpc2liaWxpdHlTdGF0ZURpZENoYW5nZSk7CiB9
OwogCitXSS51cGRhdGVGaW5kU3RyaW5nID0gZnVuY3Rpb24oZmluZFN0cmluZykKK3sKKyAgICBp
ZiAoV0kuZmluZFN0cmluZyA9PT0gZmluZFN0cmluZykKKyAgICAgICAgcmV0dXJuOworCisgICAg
V0kuZmluZFN0cmluZyA9IGZpbmRTdHJpbmc7CisKKyAgICBsZXQgZm9jdXNlZENvbnRlbnRWaWV3
ID0gV0kuX2ZvY3VzZWRDb250ZW50VmlldygpOworICAgIGlmIChmb2N1c2VkQ29udGVudFZpZXcg
JiYgZm9jdXNlZENvbnRlbnRWaWV3LnN1cHBvcnRzQ3VzdG9tRmluZEJhbm5lcikgeworICAgICAg
ICBmb2N1c2VkQ29udGVudFZpZXcuaGFuZGxlRmluZFN0cmluZ1VwZGF0ZWQoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGxldCBjb250ZW50QnJvd3NlciA9IFdJLl9mb2N1c2VkT3JW
aXNpYmxlQ29udGVudEJyb3dzZXIoKTsKKyAgICBpZiAoY29udGVudEJyb3dzZXIpIHsKKyAgICAg
ICAgY29udGVudEJyb3dzZXIuaGFuZGxlRmluZFN0cmluZ1VwZGF0ZWQoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KK307CisKIFdJLmhhbmRsZVBvc3NpYmxlTGlua0NsaWNrID0gZnVuY3Rpb24o
ZXZlbnQsIGZyYW1lLCBvcHRpb25zID0ge30pCiB7CiAgICAgbGV0IGFuY2hvckVsZW1lbnQgPSBl
dmVudC50YXJnZXQuY2xvc2VzdCgiYSIpOwpAQCAtMjYxMCw1NSArMjYzMCw1MiBAQCBXSS5fY2xl
YXIgPSBmdW5jdGlvbihldmVudCkKIFdJLl9wb3B1bGF0ZUZpbmQgPSBmdW5jdGlvbihldmVudCkK
IHsKICAgICBsZXQgZm9jdXNlZENvbnRlbnRWaWV3ID0gV0kuX2ZvY3VzZWRDb250ZW50Vmlldygp
OwotICAgIGlmICghZm9jdXNlZENvbnRlbnRWaWV3KQotICAgICAgICByZXR1cm47Ci0KLSAgICBp
ZiAoZm9jdXNlZENvbnRlbnRWaWV3LnN1cHBvcnRzQ3VzdG9tRmluZEJhbm5lcikgewotICAgICAg
ICBmb2N1c2VkQ29udGVudFZpZXcuaGFuZGxlUG9wdWxhdGVGaW5kU2hvcnRjdXQoKTsKKyAgICBp
ZiAoZm9jdXNlZENvbnRlbnRWaWV3ICYmIGZvY3VzZWRDb250ZW50Vmlldy5zdXBwb3J0c0N1c3Rv
bUZpbmRCYW5uZXIpIHsKKyAgICAgICAgbGV0IHN0cmluZyA9IGZvY3VzZWRDb250ZW50Vmlldy5o
YW5kbGVQb3B1bGF0ZUZpbmRTaG9ydGN1dCgpOworICAgICAgICBpZiAoc3RyaW5nKQorICAgICAg
ICAgICAgV0kuZmluZFN0cmluZyA9IHN0cmluZzsKKyAgICAgICAgZm9jdXNlZENvbnRlbnRWaWV3
LmhhbmRsZUZpbmRTdHJpbmdVcGRhdGVkKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBsZXQgY29udGVudEJyb3dzZXIgPSBXSS5fZm9jdXNlZE9yVmlzaWJsZUNvbnRlbnRCcm93c2Vy
KCk7Ci0gICAgaWYgKCFjb250ZW50QnJvd3NlcikKKyAgICBpZiAoY29udGVudEJyb3dzZXIpIHsK
KyAgICAgICAgbGV0IHN0cmluZyA9IGNvbnRlbnRCcm93c2VyLmhhbmRsZVBvcHVsYXRlRmluZFNo
b3J0Y3V0KCk7CisgICAgICAgIGlmIChzdHJpbmcpCisgICAgICAgICAgICBXSS5maW5kU3RyaW5n
ID0gc3RyaW5nOworICAgICAgICBjb250ZW50QnJvd3Nlci5oYW5kbGVGaW5kU3RyaW5nVXBkYXRl
ZCgpOwogICAgICAgICByZXR1cm47Ci0KLSAgICBjb250ZW50QnJvd3Nlci5oYW5kbGVQb3B1bGF0
ZUZpbmRTaG9ydGN1dCgpOworICAgIH0KIH07CiAKIFdJLl9maW5kTmV4dCA9IGZ1bmN0aW9uKGV2
ZW50KQogewogICAgIGxldCBmb2N1c2VkQ29udGVudFZpZXcgPSBXSS5fZm9jdXNlZENvbnRlbnRW
aWV3KCk7Ci0gICAgaWYgKCFmb2N1c2VkQ29udGVudFZpZXcpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGlmIChmb2N1c2VkQ29udGVudFZpZXcuc3VwcG9ydHNDdXN0b21GaW5kQmFubmVyKSB7Cisg
ICAgaWYgKGZvY3VzZWRDb250ZW50Vmlldz8uc3VwcG9ydHNDdXN0b21GaW5kQmFubmVyKSB7CiAg
ICAgICAgIGZvY3VzZWRDb250ZW50Vmlldy5oYW5kbGVGaW5kTmV4dFNob3J0Y3V0KCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBsZXQgY29udGVudEJyb3dzZXIgPSBXSS5fZm9jdXNl
ZE9yVmlzaWJsZUNvbnRlbnRCcm93c2VyKCk7Ci0gICAgaWYgKCFjb250ZW50QnJvd3NlcikKKyAg
ICBpZiAoY29udGVudEJyb3dzZXIpIHsKKyAgICAgICAgY29udGVudEJyb3dzZXIuaGFuZGxlRmlu
ZE5leHRTaG9ydGN1dCgpOwogICAgICAgICByZXR1cm47Ci0KLSAgICBjb250ZW50QnJvd3Nlci5o
YW5kbGVGaW5kTmV4dFNob3J0Y3V0KCk7CisgICAgfQogfTsKIAogV0kuX2ZpbmRQcmV2aW91cyA9
IGZ1bmN0aW9uKGV2ZW50KQogewogICAgIGxldCBmb2N1c2VkQ29udGVudFZpZXcgPSBXSS5fZm9j
dXNlZENvbnRlbnRWaWV3KCk7Ci0gICAgaWYgKCFmb2N1c2VkQ29udGVudFZpZXcpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGlmIChmb2N1c2VkQ29udGVudFZpZXcuc3VwcG9ydHNDdXN0b21GaW5k
QmFubmVyKSB7CisgICAgaWYgKGZvY3VzZWRDb250ZW50Vmlldz8uc3VwcG9ydHNDdXN0b21GaW5k
QmFubmVyKSB7CiAgICAgICAgIGZvY3VzZWRDb250ZW50Vmlldy5oYW5kbGVGaW5kUHJldmlvdXNT
aG9ydGN1dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgbGV0IGNvbnRlbnRCcm93
c2VyID0gV0kuX2ZvY3VzZWRPclZpc2libGVDb250ZW50QnJvd3NlcigpOwotICAgIGlmICghY29u
dGVudEJyb3dzZXIpCisgICAgaWYgKGNvbnRlbnRCcm93c2VyKSB7CisgICAgICAgIGNvbnRlbnRC
cm93c2VyLmhhbmRsZUZpbmRQcmV2aW91c1Nob3J0Y3V0KCk7CiAgICAgICAgIHJldHVybjsKLQot
ICAgIGNvbnRlbnRCcm93c2VyLmhhbmRsZUZpbmRQcmV2aW91c1Nob3J0Y3V0KCk7CisgICAgfQog
fTsKIAogV0kuX2NvcHkgPSBmdW5jdGlvbihldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZyb250ZW5kQVBJLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9y
RnJvbnRlbmRBUEkuanMKaW5kZXggZDJkYmUxZDFkZDQ0OTAzYTBmMmVmMTk3OTU0MjQxMjYzY2Yw
YmNmMS4uYTM0YjEwNzhlZGY4MTc3Njk1NjZkNWQ1NGE3ZjVhMjZmZGU4YjZkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9y
RnJvbnRlbmRBUEkuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanMKQEAgLTkxLDYgKzkxLDExIEBAIEluc3Bl
Y3RvckZyb250ZW5kQVBJID0gewogICAgICAgICBXSS51cGRhdGVWaXNpYmlsaXR5U3RhdGUodmlz
aWJsZSk7CiAgICAgfSwKIAorICAgIHVwZGF0ZUZpbmRTdHJpbmc6IGZ1bmN0aW9uKGZpbmRTdHJp
bmcpCisgICAgeworICAgICAgICBXSS51cGRhdGVGaW5kU3RyaW5nKGZpbmRTdHJpbmcpOworICAg
IH0sCisKICAgICBzZXREaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZTogZnVuY3Rpb24oYXZhaWxh
YmxlKQogICAgIHsKICAgICAgICAgaWYgKFdJLmRpYWdub3N0aWNDb250cm9sbGVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzCmluZGV4IDZl
MDVkOTJiYTE0NDhjODFiNDcxZmJlMmE2NGU4YzU0OTZjNmMxZjcuLmQzZjJkNTc2ZmIyZTk0M2Y2
ZTIzNmM3ZmQ2ODg1Y2U5MjAyMDVjMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMKQEAgLTE3Nyw2ICsxNzcsNyBAQCBXSS5yZXNvbHZl
ZExheW91dERpcmVjdGlvbiA9ICgpID0+IHsgcmV0dXJuIEluc3BlY3RvckZyb250ZW5kSG9zdC51
c2VySW50ZXJmYWNlTAogV0kudXBkYXRlRG9ja2VkU3RhdGUgPSAoKSA9PiB7fTsKIFdJLnVwZGF0
ZURvY2tpbmdBdmFpbGFiaWxpdHkgPSAoKSA9PiB7fTsKIFdJLnVwZGF0ZVZpc2liaWxpdHlTdGF0
ZSA9ICgpID0+IHt9OworV0kudXBkYXRlRmluZFN0cmluZyA9ICgpID0+IHt9OwogCiAvLyBGSVhN
RTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIwMTE0OT4gV2ViIEluc3BlY3RvcjogcmVwbGFjZSBh
bGwgdXNlcyBvZiBgd2luZG93LipBZ2VudGAgd2l0aCBhIHRhcmdldC1zcGVjaWZpYyBjYWxsCiAo
ZnVuY3Rpb24oKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRCcm93c2VyLmpzCmluZGV4IDJhMjg2N2ExZDdhZjBiZTE3
MDcyZGM0ZjNiMzk2MjgzMmY2YTVhMDYuLjc1ZDk3OGQyZWJiN2Q1Y2I1ZGI5OGUyZWIzZDhjNzdj
NzFlMmMyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NvbnRlbnRCcm93c2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRCcm93c2VyLmpzCkBAIC0yNDYsMjggKzI0Niw1MyBAQCBX
SS5Db250ZW50QnJvd3NlciA9IGNsYXNzIENvbnRlbnRCcm93c2VyIGV4dGVuZHMgV0kuVmlldwog
CiAgICAgLy8gR2xvYmFsIENvbnRlbnRCcm93c2VyIEtleWJvYXJkU2hvcnRjdXQgaGFuZGxlcnMK
IAotICAgIGhhbmRsZVBvcHVsYXRlRmluZFNob3J0Y3V0KCkKKyAgICBoYW5kbGVGaW5kU3RyaW5n
VXBkYXRlZCgpCiAgICAgeworICAgICAgICB0aGlzLl9maW5kQmFubmVyLnNlYXJjaFF1ZXJ5ID0g
V0kuZmluZFN0cmluZzsKKwogICAgICAgICBsZXQgY3VycmVudENvbnRlbnRWaWV3ID0gdGhpcy5j
dXJyZW50Q29udGVudFZpZXc7Ci0gICAgICAgIGlmICghY3VycmVudENvbnRlbnRWaWV3IHx8ICFj
dXJyZW50Q29udGVudFZpZXcuc3VwcG9ydHNTZWFyY2gpCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgbGV0IHNlYXJjaFF1ZXJ5ID0gY3VycmVudENvbnRlbnRWaWV3LnNlYXJjaFF1ZXJ5
V2l0aFNlbGVjdGlvbigpOwotICAgICAgICBpZiAoIXNlYXJjaFF1ZXJ5KQotICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgIHRoaXMuX2ZpbmRCYW5uZXIuc2VhcmNoUXVlcnkgPSBzZWFyY2hR
dWVyeTsKLQotICAgICAgICBjdXJyZW50Q29udGVudFZpZXcucGVyZm9ybVNlYXJjaCh0aGlzLl9m
aW5kQmFubmVyLnNlYXJjaFF1ZXJ5KTsKKyAgICAgICAgaWYgKGN1cnJlbnRDb250ZW50Vmlldz8u
c3VwcG9ydHNTZWFyY2gpCisgICAgICAgICAgICBjdXJyZW50Q29udGVudFZpZXcucGVyZm9ybVNl
YXJjaCh0aGlzLl9maW5kQmFubmVyLnNlYXJjaFF1ZXJ5KTsKICAgICB9CiAKLSAgICBoYW5kbGVG
aW5kTmV4dFNob3J0Y3V0KCkKKyAgICBoYW5kbGVQb3B1bGF0ZUZpbmRTaG9ydGN1dCgpCiAgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Q29udGVudFZpZXc/LnNlYXJjaFF1ZXJ5V2l0
aFNlbGVjdGlvbigpOworICAgIH0KKworICAgIGFzeW5jIGhhbmRsZUZpbmROZXh0U2hvcnRjdXQo
KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2ZpbmRCYW5uZXIuc2VhcmNoUXVlcnkgIT09IFdJ
LmZpbmRTdHJpbmcpIHsKKyAgICAgICAgICAgIGxldCBzZWFyY2hRdWVyeSA9IFdJLmZpbmRTdHJp
bmc7CisgICAgICAgICAgICB0aGlzLl9maW5kQmFubmVyLnNlYXJjaFF1ZXJ5ID0gc2VhcmNoUXVl
cnk7CisKKyAgICAgICAgICAgIGxldCBjdXJyZW50Q29udGVudFZpZXcgPSB0aGlzLmN1cnJlbnRD
b250ZW50VmlldzsKKyAgICAgICAgICAgIGlmIChjdXJyZW50Q29udGVudFZpZXc/LnN1cHBvcnRz
U2VhcmNoKSB7CisgICAgICAgICAgICAgICAgY3VycmVudENvbnRlbnRWaWV3LnBlcmZvcm1TZWFy
Y2godGhpcy5fZmluZEJhbm5lci5zZWFyY2hRdWVyeSk7CisgICAgICAgICAgICAgICAgYXdhaXQg
Y3VycmVudENvbnRlbnRWaWV3LmF3YWl0RXZlbnQoV0kuQ29udGVudFZpZXcuRXZlbnQuTnVtYmVy
T2ZTZWFyY2hSZXN1bHRzRGlkQ2hhbmdlKTsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5fZmlu
ZEJhbm5lci5zZWFyY2hRdWVyeSAhPT0gc2VhcmNoUXVlcnkgfHwgdGhpcy5jdXJyZW50Q29udGVu
dFZpZXcgIT09IGN1cnJlbnRDb250ZW50VmlldykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgdGhpcy5maW5kQmFubmVyUmV2
ZWFsTmV4dFJlc3VsdCh0aGlzLl9maW5kQmFubmVyKTsKICAgICB9CiAKLSAgICBoYW5kbGVGaW5k
UHJldmlvdXNTaG9ydGN1dCgpCisgICAgYXN5bmMgaGFuZGxlRmluZFByZXZpb3VzU2hvcnRjdXQo
KQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2ZpbmRCYW5uZXIuc2VhcmNoUXVlcnkgIT09IFdJ
LmZpbmRTdHJpbmcpIHsKKyAgICAgICAgICAgIGxldCBzZWFyY2hRdWVyeSA9IFdJLmZpbmRTdHJp
bmc7CisgICAgICAgICAgICB0aGlzLl9maW5kQmFubmVyLnNlYXJjaFF1ZXJ5ID0gc2VhcmNoUXVl
cnk7CisKKyAgICAgICAgICAgIGxldCBjdXJyZW50Q29udGVudFZpZXcgPSB0aGlzLmN1cnJlbnRD
b250ZW50VmlldzsKKyAgICAgICAgICAgIGlmIChjdXJyZW50Q29udGVudFZpZXc/LnN1cHBvcnRz
U2VhcmNoKSB7CisgICAgICAgICAgICAgICAgY3VycmVudENvbnRlbnRWaWV3LnBlcmZvcm1TZWFy
Y2godGhpcy5fZmluZEJhbm5lci5zZWFyY2hRdWVyeSk7CisgICAgICAgICAgICAgICAgYXdhaXQg
Y3VycmVudENvbnRlbnRWaWV3LmF3YWl0RXZlbnQoV0kuQ29udGVudFZpZXcuRXZlbnQuTnVtYmVy
T2ZTZWFyY2hSZXN1bHRzRGlkQ2hhbmdlKTsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5fZmlu
ZEJhbm5lci5zZWFyY2hRdWVyeSAhPT0gc2VhcmNoUXVlcnkgfHwgdGhpcy5jdXJyZW50Q29udGVu
dFZpZXcgIT09IGN1cnJlbnRDb250ZW50VmlldykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgdGhpcy5maW5kQmFubmVyUmV2
ZWFsUHJldmlvdXNSZXN1bHQodGhpcy5fZmluZEJhbm5lcik7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmll
dy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRl
bnRWaWV3LmpzCmluZGV4IDYyMmVkODA0ZGFkNDNkY2RlZDM4MGYzZDc0ZDYxNTQ4NDI3NTk1ODku
LjE1MmI4YTEwMDMwZTFiZjNiNGQ5OGM2NDVjMzNkYjNmZDljODYwOWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3Lmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRl
bnRWaWV3LmpzCkBAIC0yOTYsMjQgKzI5NiwzMSBAQCBXSS5Mb2dDb250ZW50VmlldyA9IGNsYXNz
IExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgdGhpcy5fbG9n
Vmlld0NvbnRyb2xsZXIucmVxdWVzdENsZWFyTWVzc2FnZXMoKTsKICAgICB9CiAKLSAgICBoYW5k
bGVQb3B1bGF0ZUZpbmRTaG9ydGN1dCgpCisgICAgaGFuZGxlRmluZFN0cmluZ1VwZGF0ZWQoKQog
ICAgIHsKLSAgICAgICAgbGV0IHNlYXJjaFF1ZXJ5ID0gdGhpcy5zZWFyY2hRdWVyeVdpdGhTZWxl
Y3Rpb24oKTsKLSAgICAgICAgaWYgKCFzZWFyY2hRdWVyeSkKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICB0aGlzLl9maW5kQmFubmVyLnNlYXJjaFF1ZXJ5ID0gc2VhcmNoUXVlcnk7Cisg
ICAgICAgIHRoaXMuX2ZpbmRCYW5uZXIuc2VhcmNoUXVlcnkgPSBXSS5maW5kU3RyaW5nOwogCiAg
ICAgICAgIHRoaXMucGVyZm9ybVNlYXJjaCh0aGlzLl9maW5kQmFubmVyLnNlYXJjaFF1ZXJ5KTsK
ICAgICB9CiAKKyAgICBoYW5kbGVQb3B1bGF0ZUZpbmRTaG9ydGN1dCgpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5zZWFyY2hRdWVyeVdpdGhTZWxlY3Rpb24oKTsKKyAgICB9CisKICAgICBo
YW5kbGVGaW5kTmV4dFNob3J0Y3V0KCkKICAgICB7CisgICAgICAgIGlmICh0aGlzLl9maW5kQmFu
bmVyLnNlYXJjaFF1ZXJ5ICE9PSBXSS5maW5kU3RyaW5nKQorICAgICAgICAgICAgdGhpcy5oYW5k
bGVGaW5kU3RyaW5nVXBkYXRlZCgpOworCiAgICAgICAgIHRoaXMuZmluZEJhbm5lclJldmVhbE5l
eHRSZXN1bHQodGhpcy5fZmluZEJhbm5lcik7CiAgICAgfQogCiAgICAgaGFuZGxlRmluZFByZXZp
b3VzU2hvcnRjdXQoKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2ZpbmRCYW5uZXIuc2VhcmNo
UXVlcnkgIT09IFdJLmZpbmRTdHJpbmcpCisgICAgICAgICAgICB0aGlzLmhhbmRsZUZpbmRTdHJp
bmdVcGRhdGVkKCk7CisKICAgICAgICAgdGhpcy5maW5kQmFubmVyUmV2ZWFsUHJldmlvdXNSZXN1
bHQodGhpcy5fZmluZEJhbm5lcik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5oCmluZGV4
IDIxMzc1NzU3MDk1NTJkZDMyNTliNTk2YTljMmI4NmNhOTA3MzIwODMuLmQ0Yjk3ODc4Mjg3NDY5
MDUxZWJiNzU2MDVkMTBiZGY5MzdiN2M1MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5oCkBAIC05
MCw2ICs5MCw4IEBAIHB1YmxpYzoKICAgICBXS1dlYlZpZXcgKndlYlZpZXcoKSBjb25zdDsKIAog
ICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc2hlZXRSZWN0KCkgY29uc3QgeyByZXR1cm4g
bV9zaGVldFJlY3Q7IH0KKworICAgIHZvaWQgZGlkQmVjb21lQWN0aXZlKCk7CiAjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvclByb3h5LmgKaW5kZXggNDZlMzQyNDkzODFiYjliMWM3YTM2ZGNh
MmE4MTNmMTkzZTdmM2VjZC4uZWIwYjgxZWI4MTRmODczYTJhZGFiMzAyNzgxYmQ5ZDhiZGM3MDMz
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3Bl
Y3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclByb3h5LmgKQEAgLTExMyw2ICsxMTMsOCBAQCBwdWJsaWM6CiAgICAgZW51bSBjbGFz
cyBJbnNwZWN0aW9uVGFyZ2V0VHlwZSB7IExvY2FsLCBSZW1vdGUgfTsKICAgICBzdGF0aWMgUmV0
YWluUHRyPE5TV2luZG93PiBjcmVhdGVGcm9udGVuZFdpbmRvdyhOU1JlY3Qgc2F2ZWRXaW5kb3dG
cmFtZSwgSW5zcGVjdGlvblRhcmdldFR5cGUpOwogCisgICAgdm9pZCBkaWRCZWNvbWVBY3RpdmUo
KTsKKwogICAgIHZvaWQgdXBkYXRlSW5zcGVjdG9yV2luZG93VGl0bGUoKSBjb25zdDsKICAgICB2
b2lkIGluc3BlY3RlZFZpZXdGcmFtZURpZENoYW5nZShDR0Zsb2F0ID0gMCk7CiAgICAgdm9pZCB3
aW5kb3dGcmFtZURpZENoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL21hYy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMu
bW0KaW5kZXggNTE0ZmQ0YTA5MmQ3Y2ZlYjdiYTM2ODhiNWZlNDk0YjU2MGIwZDQ5Yy4uZjFiMmI1
MTFkN2VjNjg4ZGJlZDE0MzQ5NGEwMzM4MWVlOGZkMmY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1JlbW90ZVdlYklu
c3BlY3RvclByb3h5TWFjLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBQTEFURk9STShNQUMp
ICYmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogCisjaW1wb3J0ICJHbG9iYWxGaW5kSW5QYWdl
U3RhdGUuaCIKICNpbXBvcnQgIlJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCIKICNp
bXBvcnQgIlJlbW90ZVdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCIKICNpbXBvcnQgIldLRnJhbWVJ
bmZvLmgiCkBAIC02OCw2ICs2OSwxMSBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhSZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eTooV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eQogICAgIHJl
dHVybiBzZWxmOwogfQogCistICh2b2lkKWluc3BlY3RvcldLV2ViVmlld0RpZEJlY29tZUFjdGl2
ZTooV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3BlY3RvclZpZXdDb250cm9sbGVyCit7
CisgICAgX2luc3BlY3RvclByb3h5LT5kaWRCZWNvbWVBY3RpdmUoKTsKK30KKwogLSAodm9pZClp
bnNwZWN0b3JWaWV3Q29udHJvbGxlckluc3BlY3RvckRpZENyYXNoOihXS0luc3BlY3RvclZpZXdD
b250cm9sbGVyICopaW5zcGVjdG9yVmlld0NvbnRyb2xsZXIKIHsKICAgICBfaW5zcGVjdG9yUHJv
eHktPmNsb3NlRnJvbUNyYXNoKCk7CkBAIC04OCw2ICs5NCwxMSBAQCBXS1dlYlZpZXcgKlJlbW90
ZVdlYkluc3BlY3RvclByb3h5Ojp3ZWJWaWV3KCkgY29uc3QKICAgICByZXR1cm4gbV9pbnNwZWN0
b3JWaWV3LmdldCgpLndlYlZpZXc7CiB9CiAKK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6
OmRpZEJlY29tZUFjdGl2ZSgpCit7CisgICAgbV9pbnNwZWN0b3JQYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6VXBkYXRlRmluZFN0cmluZyhXZWJLaXQ6OnN0cmluZ0Zv
ckZpbmQoKSkpOworfQorCiBXZWJQYWdlUHJveHkqIFJlbW90ZVdlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybUNyZWF0ZUZyb250ZW5kUGFnZUFuZFdpbmRvdygpCiB7CiAgICAgbV9vYmpDQWRhcHRl
ciA9IGFkb3B0TlMoW1tXS1JlbW90ZVdlYkluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgYWxsb2Nd
IGluaXRXaXRoUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6dGhpc10pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9s
bGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9y
Vmlld0NvbnRyb2xsZXIuaAppbmRleCA3MGRjZTE0MmI3YTQyNDU2ZWY2MmIzOTAxMWI4Mzc4M2E1
NDJkZDJlLi5iYWJkMzMyNTAyYWRlOTliNjFkYzQ1Yjk3Njk5NjYwOGI3YzhiODEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmll
d0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFj
L1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIuaApAQCAtNTEsNiArNTEsNyBAQCBOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgogCiBAcHJvdG9jb2wgV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlckRlbGVn
YXRlIDxOU09iamVjdD4KIEBvcHRpb25hbAorLSAodm9pZClpbnNwZWN0b3JWaWV3Q29udHJvbGxl
ckRpZEJlY29tZUFjdGl2ZTooV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3BlY3RvclZp
ZXdDb250cm9sbGVyOwogLSAodm9pZClpbnNwZWN0b3JWaWV3Q29udHJvbGxlckluc3BlY3RvckRp
ZENyYXNoOihXS0luc3BlY3RvclZpZXdDb250cm9sbGVyICopaW5zcGVjdG9yVmlld0NvbnRyb2xs
ZXI7CiAtIChCT09MKWluc3BlY3RvclZpZXdDb250cm9sbGVySW5zcGVjdG9ySXNVbmRlclRlc3Q6
KFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgKilpbnNwZWN0b3JWaWV3Q29udHJvbGxlcjsKIC0g
KHZvaWQpaW5zcGVjdG9yVmlld0NvbnRyb2xsZXI6KFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIg
KilpbnNwZWN0b3JWaWV3Q29udHJvbGxlciB3aWxsTW92ZVRvV2luZG93OihOU1dpbmRvdyAqKW5l
d1dpbmRvdzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9t
YWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQppbmRleCBhNjFmMWVk
MGI4MDRmODdhZjI3YmJlNTJhOTE3NWFiNTgxNzE1ZmRmLi5mNDA3YWUxYmY2Yjc5YmRlZjJlODJj
NDU4YTk5NjRmODA0N2Q4MGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1t
CkBAIC0yMzUsNiArMjM1LDEyIEBAIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpCiAKIC8vIE1BUks6
IFdLSW5zcGVjdG9yV0tXZWJWaWV3RGVsZWdhdGUgbWV0aG9kcwogCistICh2b2lkKWluc3BlY3Rv
cldLV2ViVmlld0RpZEJlY29tZUFjdGl2ZTooV0tJbnNwZWN0b3JXS1dlYlZpZXcgKil3ZWJWaWV3
Cit7CisgICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihpbnNw
ZWN0b3JWaWV3Q29udHJvbGxlckRpZEJlY29tZUFjdGl2ZTopXSkKKyAgICAgICAgW19kZWxlZ2F0
ZSBpbnNwZWN0b3JWaWV3Q29udHJvbGxlckRpZEJlY29tZUFjdGl2ZTpzZWxmXTsKK30KKwogLSAo
dm9pZClpbnNwZWN0b3JXS1dlYlZpZXdSZWxvYWQ6KFdLSW5zcGVjdG9yV0tXZWJWaWV3ICopd2Vi
VmlldwogewogICAgIGlmICghX2luc3BlY3RlZFBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yV0tXZWJWaWV3LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yV0tXZWJWaWV3LmgK
aW5kZXggYjIxOTBiMzgzMzllMDlhZjAwOGRlYjI1Mzg1Y2YwMjA4ODdmN2U2My4uZDc0ZTdmZTE0
MjJiM2NkY2RhMDhjNzUyNWRjOTA0Y2RkN2EwOTYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvcldLV2ViVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JXS1dlYlZpZXcu
aApAQCAtMzUsNiArMzUsNyBAQAogCiBAcHJvdG9jb2wgV0tJbnNwZWN0b3JXS1dlYlZpZXdEZWxl
Z2F0ZQogQHJlcXVpcmVkCistICh2b2lkKWluc3BlY3RvcldLV2ViVmlld0RpZEJlY29tZUFjdGl2
ZTooV0tJbnNwZWN0b3JXS1dlYlZpZXcgKil3ZWJWaWV3OwogLSAodm9pZClpbnNwZWN0b3JXS1dl
YlZpZXdSZWxvYWQ6KFdLSW5zcGVjdG9yV0tXZWJWaWV3ICopd2ViVmlldzsKIC0gKHZvaWQpaW5z
cGVjdG9yV0tXZWJWaWV3UmVsb2FkRnJvbU9yaWdpbjooV0tJbnNwZWN0b3JXS1dlYlZpZXcgKil3
ZWJWaWV3OwogLSAodm9pZClpbnNwZWN0b3JXS1dlYlZpZXc6KFdLSW5zcGVjdG9yV0tXZWJWaWV3
ICopd2ViVmlldyB3aWxsTW92ZVRvV2luZG93OihOU1dpbmRvdyAqKW5ld1dpbmRvdzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JX
S1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5z
cGVjdG9yV0tXZWJWaWV3Lm1tCmluZGV4IDRiZmVmNGEwMWJhZjEzYWQ0ZmU3MWY4YTlkM2RjNjU0
MjU4YTljYjYuLmY3MWQzYmQ2MTA3Y2Q4Mzc1ZDFmMjUyMGQ1NDI4YWNhNTA2ODUyZDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JX
S1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9X
S0luc3BlY3RvcldLV2ViVmlldy5tbQpAQCAtNTQsNyArNTQsMTMgQEAgLSAoaWQgPFdLSW5zcGVj
dG9yV0tXZWJWaWV3RGVsZWdhdGU+KWluc3BlY3RvcldLV2ViVmlld0RlbGVnYXRlCiAKIC0gKHZv
aWQpc2V0SW5zcGVjdG9yV0tXZWJWaWV3RGVsZWdhdGU6KGlkIDxXS0luc3BlY3RvcldLV2ViVmll
d0RlbGVnYXRlPilkZWxlZ2F0ZQogeworICAgIGlmICghIV9pbnNwZWN0b3JXS1dlYlZpZXdEZWxl
Z2F0ZSkKKyAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1v
dmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRCZWNvbWVLZXlOb3RpZmljYXRpb24gb2Jq
ZWN0Om5pbF07CisKICAgICBfaW5zcGVjdG9yV0tXZWJWaWV3RGVsZWdhdGUgPSBkZWxlZ2F0ZTsK
KworICAgIGlmICghIV9pbnNwZWN0b3JXS1dlYlZpZXdEZWxlZ2F0ZSkKKyAgICAgICAgW1tOU05v
dGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9y
OkBzZWxlY3RvcihfaGFuZGxlV2luZG93RGlkQmVjb21lS2V5OikgbmFtZTpOU1dpbmRvd0RpZEJl
Y29tZUtleU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKIH0KIAogLSAoSUJBY3Rpb24pcmVsb2Fk
OihpZClzZW5kZXIKQEAgLTc5LDYgKzg1LDE5IEBAIC0gKHZvaWQpdmlld0RpZE1vdmVUb1dpbmRv
dwogICAgIFtzZWxmLmluc3BlY3RvcldLV2ViVmlld0RlbGVnYXRlIGluc3BlY3RvcldLV2ViVmll
d0RpZE1vdmVUb1dpbmRvdzpzZWxmXTsKIH0KIAorLSAoQk9PTCliZWNvbWVGaXJzdFJlc3BvbmRl
cgoreworICAgIEJPT0wgcmVzdWx0ID0gW3N1cGVyIGJlY29tZUZpcnN0UmVzcG9uZGVyXTsKKyAg
ICBbc2VsZi5pbnNwZWN0b3JXS1dlYlZpZXdEZWxlZ2F0ZSBpbnNwZWN0b3JXS1dlYlZpZXdEaWRC
ZWNvbWVBY3RpdmU6c2VsZl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLSAodm9pZClfaGFu
ZGxlV2luZG93RGlkQmVjb21lS2V5OihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgorewor
ICAgIGlmIChbbm90aWZpY2F0aW9uIG9iamVjdF0gPT0gW3NlbGYgd2luZG93XSkKKyAgICAgICAg
W3NlbGYuaW5zcGVjdG9yV0tXZWJWaWV3RGVsZWdhdGUgaW5zcGVjdG9yV0tXZWJWaWV3RGlkQmVj
b21lQWN0aXZlOnNlbGZdOworfQorCiBAZW5kCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yUHJveHlN
YWMubW0KaW5kZXggNmIzMWRlNTE1ZDU5N2U3NjBhNDMxZGIzMzViYTkxNTk1NGRlOTVhOC4uYjM2
NjM5M2E0YWIwMDQ4Njc3MzAxNWRhY2Y4YjA2MTk3M2FmYzQwMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclBy
b3h5TWFjLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAKKyNpbXBv
cnQgIkdsb2JhbEZpbmRJblBhZ2VTdGF0ZS5oIgogI2ltcG9ydCAiV0tJbnNwZWN0b3JQcml2YXRl
TWFjLmgiCiAjaW1wb3J0ICJXS0luc3BlY3RvclZpZXdDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJX
S1ZpZXdJbnRlcm5hbC5oIgpAQCAtMTYzLDYgKzE2NCwxMiBAQCAtICh2b2lkKW9ic2VydmVWYWx1
ZUZvcktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5n
ZTooTgogCiAvLyBNQVJLOiBXS0luc3BlY3RvclZpZXdDb250cm9sbGVyRGVsZWdhdGUgbWV0aG9k
cwogCistICh2b2lkKWluc3BlY3RvclZpZXdDb250cm9sbGVyRGlkQmVjb21lQWN0aXZlOihXS0lu
c3BlY3RvclZpZXdDb250cm9sbGVyICopaW5zcGVjdG9yVmlld0NvbnRyb2xsZXIKK3sKKyAgICBp
ZiAoX2luc3BlY3RvclByb3h5KQorICAgICAgICBfaW5zcGVjdG9yUHJveHktPmRpZEJlY29tZUFj
dGl2ZSgpOworfQorCiAtICh2b2lkKWluc3BlY3RvclZpZXdDb250cm9sbGVySW5zcGVjdG9yRGlk
Q3Jhc2g6KFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgKilpbnNwZWN0b3JWaWV3Q29udHJvbGxl
cgogewogICAgIGlmIChfaW5zcGVjdG9yUHJveHkpCkBAIC0xOTEsNiArMTk4LDExIEBAIEBlbmQK
IG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKK3ZvaWQgV2Vi
SW5zcGVjdG9yUHJveHk6OmRpZEJlY29tZUFjdGl2ZSgpCit7CisgICAgbV9pbnNwZWN0b3JQYWdl
LT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6VXBkYXRlRmluZFN0cmluZyhXZWJLaXQ6
OnN0cmluZ0ZvckZpbmQoKSkpOworfQorCiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjphdHRhY2ht
ZW50Vmlld0RpZENoYW5nZShOU1ZpZXcgKm9sZFZpZXcsIE5TVmlldyAqbmV3VmlldykKIHsKICAg
ICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1f
b2JqQ0FkYXB0ZXIuZ2V0KCkgbmFtZTpOU1ZpZXdGcmFtZURpZENoYW5nZU5vdGlmaWNhdGlvbiBv
YmplY3Q6b2xkVmlld107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5z
cGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IDVmY2M5ZjgyNDRkNWM3
ZWUyNDg4ZWFkNzdhN2Q3NzgzNjU5YTFlMzEuLmNjZGFjY2FiNzQxMWY4Nzc0ZTg0ZjgyYjRiN2Y1
MTIwYTRmOTc1NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC02Nyw2ICs2NywxMSBAQCB2
b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjppbml0aWFsaXplKERlYnVnZ2FibGVJbmZvRGF0YSYm
IGRlYnVnZ2FibGVJbmZvLCBjb25zdAogICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3Bh
dGNoQ29tbWFuZCgic2V0RG9ja2luZ1VuYXZhaWxhYmxlIl9zLCB0cnVlKTsKIH0KIAordm9pZCBS
ZW1vdGVXZWJJbnNwZWN0b3JVSTo6dXBkYXRlRmluZFN0cmluZyhjb25zdCBTdHJpbmcmIGZpbmRT
dHJpbmcpCit7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJ1
cGRhdGVGaW5kU3RyaW5nIl9zLCBmaW5kU3RyaW5nKTsKK30KKwogdm9pZCBSZW1vdGVXZWJJbnNw
ZWN0b3JVSTo6ZGlkU2F2ZShjb25zdCBTdHJpbmcmIHVybCkKIHsKICAgICBtX2Zyb250ZW5kQVBJ
RGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNhdmVkVVJMIl9zLCB1cmwpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JV
SS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0
b3JVSS5oCmluZGV4IDY2N2E2NTcwNDJiOTg2OWU2YTYxY2EyODQ4ZTdjNzZlMTkzYzdlZWMuLmNh
NGFmNzI1NzhlMzQ4NjhkNWJmZjBhNWI1YmVlMmZkMjFmMzQ4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJ
LmgKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogCiAgICAgLy8gQ2FsbGVkIGJ5IFJlbW90ZVdl
Ykluc3BlY3RvclVJIG1lc3NhZ2VzCiAgICAgdm9pZCBpbml0aWFsaXplKERlYnVnZ2FibGVJbmZv
RGF0YSYmLCBjb25zdCBTdHJpbmcmIGJhY2tlbmRDb21tYW5kc1VSTCk7CisgICAgdm9pZCB1cGRh
dGVGaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgZGlkU2F2ZShjb25zdCBTdHJp
bmcmIHVybCk7CiAgICAgdm9pZCBkaWRBcHBlbmQoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZv
aWQgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5z
cGVjdG9yVUkubWVzc2FnZXMuaW4KaW5kZXggMmJmN2U0Yzg3OGRhMWUzNDg5Yjk4MjRjY2Q2ZDg2
MTg0NDRlYTlkZS4uM2UyMDJjMTZlN2M1MTZmODMwMDE5ZDdkZTE5ZDAzMGM1YTFkMzQ1ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNw
ZWN0b3JVSS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVj
dG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLm1lc3NhZ2VzLmluCkBAIC0yMyw2ICsyMyw4IEBACiBt
ZXNzYWdlcyAtPiBSZW1vdGVXZWJJbnNwZWN0b3JVSSB7CiAgICAgSW5pdGlhbGl6ZShzdHJ1Y3Qg
V2ViS2l0OjpEZWJ1Z2dhYmxlSW5mb0RhdGEgZGVidWdnYWJsZUluZm8sIFN0cmluZyBiYWNrZW5k
Q29tbWFuZHNVUkwpCiAKKyAgICBVcGRhdGVGaW5kU3RyaW5nKFN0cmluZyBmaW5kU3RyaW5nKQor
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9URUxFTUVUUlkpCiAgICAgU2V0RGlhZ25vc3RpY0xvZ2dp
bmdBdmFpbGFibGUoYm9vbCBhdmFpbGFibGUpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHAKaW5kZXggYzVjNWI3
NjkzMjA3NjYzMTZkMDc5M2I5ZDc1MGM1N2M5ZDI1N2YxMy4uM2IzYWM5Zjg5YTk3MzA3N2I2YjBj
ZjAyNzQ0ODRmOTEwM2U5MTA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHAKQEAgLTI2OSw2ICsyNjksMTEgQEAgdm9p
ZCBXZWJJbnNwZWN0b3JVSTo6c2V0SXNWaXNpYmxlKGJvb2wgdmlzaWJsZSkKICAgICBtX2Zyb250
ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNldElzVmlzaWJsZSJfcywgdmlzaWJs
ZSk7CiB9CiAKK3ZvaWQgV2ViSW5zcGVjdG9yVUk6OnVwZGF0ZUZpbmRTdHJpbmcoY29uc3QgU3Ry
aW5nJiBmaW5kU3RyaW5nKQoreworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNo
Q29tbWFuZCgidXBkYXRlRmluZFN0cmluZyJfcywgZmluZFN0cmluZyk7Cit9CisKIHZvaWQgV2Vi
SW5zcGVjdG9yVUk6OmNoYW5nZUF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkK
IHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6U2V0QXR0YWNoZWRXaW5kb3dIZWln
aHQoaGVpZ2h0KSwgbV9pbnNwZWN0ZWRQYWdlSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmgKaW5kZXggYzZiODcx
NThhMTM5ZjJhNWQyZDhmNzEzZDg5MGE2YmM2OTQ2Nzg4YS4uNzc5MDI3YTYwYWE0MWNjNmU4MzNj
MjI4NzIzMDEyMTM3MTNiOWE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaApAQCAtNzksNiArNzksOCBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHNldElzVmlzaWJsZShib29sKTsKIAorICAgIHZvaWQgdXBkYXRlRmluZFN0cmlu
Zyhjb25zdCBTdHJpbmcmKTsKKwogICAgIHZvaWQgZGlkU2F2ZShjb25zdCBTdHJpbmcmIHVybCk7
CiAgICAgdm9pZCBkaWRBcHBlbmQoY29uc3QgU3RyaW5nJiB1cmwpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5t
ZXNzYWdlcy5pbgppbmRleCA5NGYxMzg1ZDQ4OTU1NjI2OWJhZmE1N2MwNzVlYjRkYWYxM2UxNjM1
Li44OGEyMGY4MTBmNmZkYWU1Mjc3ZmM1NThjOTFmNWZkY2JhOWVhNDA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9y
VUkubWVzc2FnZXMuaW4KQEAgLTMwLDYgKzMwLDcgQEAgbWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9y
VUkgewogICAgIERldGFjaGVkKCkKICAgICBTZXREb2NraW5nVW5hdmFpbGFibGUoYm9vbCB1bmF2
YWlsYWJsZSkKICAgICBTZXRJc1Zpc2libGUoYm9vbCB2aXNpYmxlKQorICAgIFVwZGF0ZUZpbmRT
dHJpbmcoU3RyaW5nIGZpbmRTdHJpbmcpCiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX1RFTEVNRVRS
WSkKICAgICBTZXREaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZShib29sIGF2YWlsYWJsZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397804</attachid>
            <date>2020-04-27 21:47:46 -0700</date>
            <delta_ts>2020-04-28 12:43:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113588-20200427224745.patch</filename>
            <type>text/plain</type>
            <size>27184</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGQ5YjI1NDIyZjg5ZWYzM2Q0OTZlM2MxMjVlNjIx
MzZhZmNiYzY1NDYuLjU3NTM4ODkzN2EyZTdjYTZmNTc4MWM4MDVlYTMzMTJmY2NkYzA2MjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA0LTI3ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBm
aW5kIGRpYWxvZyBkb2VzIG5vdCBwb3B1bGF0ZSBzZWFyY2ggc3RyaW5nIGZyb20gc3lzdGVtIGZp
bmQgcGFzdGVib2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEzNTg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xOTI4MTQ2Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanM6CisgICAgICAgIChJbnNwZWN0b3JGcm9u
dGVuZEFQSS51cGRhdGVGaW5kU3RyaW5nKTogQWRkZWQuCisgICAgICAgICogVXNlckludGVyZmFj
ZS9CYXNlL01haW4uanM6CisgICAgICAgIChXSS5jb250ZW50TG9hZGVkKToKKyAgICAgICAgKFdJ
LnVwZGF0ZUZpbmRTdHJpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdJLl9wb3B1bGF0ZUZpbmQpOgor
ICAgICAgICAoV0kuX2ZpbmROZXh0KToKKyAgICAgICAgKFdJLl9maW5kUHJldmlvdXMpOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudEJyb3dzZXIuanM6CisgICAgICAgIChX
SS5Db250ZW50QnJvd3Nlci5wcm90b3R5cGUuaGFuZGxlRmluZFN0cmluZ1VwZGF0ZWQpOiBBZGRl
ZC4KKyAgICAgICAgKFdJLkNvbnRlbnRCcm93c2VyLnByb3RvdHlwZS5oYW5kbGVQb3B1bGF0ZUZp
bmRTaG9ydGN1dCk6CisgICAgICAgIChXSS5Db250ZW50QnJvd3Nlci5wcm90b3R5cGUuaGFuZGxl
RmluZE5leHRTaG9ydGN1dCk6CisgICAgICAgIChXSS5Db250ZW50QnJvd3Nlci5wcm90b3R5cGUu
aGFuZGxlRmluZFByZXZpb3VzU2hvcnRjdXQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvTG9nQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5Mb2dDb250ZW50Vmlldy5wcm90b3R5
cGUuaGFuZGxlRmluZFN0cmluZ1VwZGF0ZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkxvZ0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5oYW5kbGVQb3B1bGF0ZUZpbmRTaG9ydGN1dCk6CisgICAgICAgIChX
SS5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxlRmluZE5leHRTaG9ydGN1dCk6CisgICAg
ICAgIChXSS5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxlRmluZFByZXZpb3VzU2hvcnRj
dXQpOgorICAgICAgICBXaGVuIHRoZSBmaW5kIHN0cmluZyBnZXRzIHVwZGF0ZWQsIHRlbGwgdGhl
IGFjdGl2ZSB2aWV3LiBUaGUgYGZpbmROZXh0S2V5Ym9hcmRTaG9ydGN1dGAgYW5kCisgICAgICAg
IGBmaW5kUHJldmlvdXNLZXlib2FyZFNob3J0Y3V0YCB3aWxsIGFsc28gdXBkYXRlIHRoZSByZWxh
dGVkIGBXSS5GaW5kQmFubmVyYCB3aGVuIGludm9rZWQgaWYKKyAgICAgICAgdGhlIGN1cnJlbnQg
c2VhcmNoIHF1ZXJ5IGRvZXMgbm90IG1hdGNoIHRoZSBmaW5kIHN0cmluZy4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzOgorICAgICAgICAoV0kudXBkYXRlRmluZFN0cmlu
Zyk6IEFkZGVkLgorCiAyMDIwLTA0LTI3ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBw
bGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNTg3MzApOiBXZWIgSW5zcGVjdG9yOiBT
aWRlYmFyIHRhYnMgaGF2ZSBpbmNvcnJlY3QgdGFiSW5kZXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOTU3ODlkNDhj
NmUwMmNkNTEyZjdmYzQ0MjVmZjMwNzA4YzliNmFjZi4uM2IwZTMwYjM0MDZiNTQxNDc1MWNkZWU3
ZjNmOTI2MzQzMmUwMDM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAyMC0wNC0yNyAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogZmluZCBkaWFsb2cgZG9lcyBub3QgcG9wdWxhdGUgc2VhcmNoIHN0cmluZyBmcm9tIHN5c3Rl
bSBmaW5kIHBhc3RlYm9hcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMzU4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTkyODE0NjY+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
SW5zcGVjdG9yL21hYy9XS0luc3BlY3RvcldLV2ViVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS0lu
c3BlY3RvcldLV2ViVmlldyBkZWFsbG9jXSk6IEFkZGVkLgorICAgICAgICAoLVtXS0luc3BlY3Rv
cldLV2ViVmlldyBzZXRJbnNwZWN0b3JXS1dlYlZpZXdEZWxlZ2F0ZTpdKToKKyAgICAgICAgKC1b
V0tJbnNwZWN0b3JXS1dlYlZpZXcgYmVjb21lRmlyc3RSZXNwb25kZXJdKTogQWRkZWQuCisgICAg
ICAgICgtW1dLSW5zcGVjdG9yV0tXZWJWaWV3IF9oYW5kbGVXaW5kb3dEaWRCZWNvbWVLZXk6XSk6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmll
d0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3Bl
Y3RvclZpZXdDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0luc3BlY3RvclZpZXdDb250cm9s
bGVyIGluc3BlY3RvcldLV2ViVmlld0RpZEJlY29tZUFjdGl2ZTpdKTogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tOgorICAgICAgICAo
LVtXS1dlYkluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgaW5zcGVjdG9yVmlld0NvbnRyb2xsZXJE
aWRCZWNvbWVBY3RpdmU6XSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQ
cm94eTo6ZGlkQmVjb21lQWN0aXZlKTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0luc3Bl
Y3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNw
ZWN0b3IvbWFjL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tOgorICAgICAgICAoLVtXS1Jl
bW90ZVdlYkluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgaW5zcGVjdG9yV0tXZWJWaWV3RGlkQmVj
b21lQWN0aXZlOl0pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9y
UHJveHk6OmRpZEJlY29tZUFjdGl2ZSk6IEFkZGVkLgorICAgICAgICBBZGQgYSBuZXcgZGVsZWdh
dGUgY2FsbCBjaGFpbiB0aGF0IG5vdGlmaWVzIHRoZSBpbnNwZWN0b3IgcHJveHkgYWJvdXQgd2hl
biB0aGUgaW5zcGVjdG9yIHdlYgorICAgICAgICB2aWV3IGJlY29tZXMgYWN0aXZlLCBhdCB3aGlj
aCBwb2ludCB0aGUgaW5zcGVjdG9yIHByb3h5IGNhbiBnZXQgdGhlIGN1cnJlbnQgZmluZCBzdHJp
bmcgYW5kCisgICAgICAgIHNlbnQgaXQgdG8gdGhlIGluc3BlY3RvciBwYWdlLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkluc3BlY3RvclVJOjp1cGRhdGVGaW5kU3RyaW5nKTogQWRkZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjp1cGRhdGVGaW5kU3RyaW5nKTogQWRk
ZWQuCisgICAgICAgIFBhc3MgYWxvbmcgdGhlIG5ldyBmaW5kIHN0cmluZyB0byB0aGUgZnJvbnRl
bmQgdmlhIGBJbnNwZWN0b3JGcm9udGVuZEFQSS51cGRhdGVGaW5kU3RyaW5nYC4KKwogMjAyMC0w
NC0yNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogU3RvcmFnZTogY2FuIHNlZSB0aGlyZC1wYXJ0eSBjb29raWVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKaW5kZXggOTEyMGMw
NzE2NTQ1ODYyZTg4NTZmYTUxOGQ3M2Y2NmYzZThjNTJmZi4uMDY0OTc1NjA2YWJmNDEwOTg5NDQ1
MzRjMWNlYzhiZjhiN2QyYmZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtMjkwLDcgKzI5MCw3IEBAIFdJLmNvbnRlbnRMb2Fk
ZWQgPSBmdW5jdGlvbigpCiAKICAgICBXSS5jbGVhcktleWJvYXJkU2hvcnRjdXQgPSBuZXcgV0ku
S2V5Ym9hcmRTaG9ydGN1dChXSS5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1hbmRPckNv
bnRyb2wsICJLIiwgV0kuX2NsZWFyKTsKIAotICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQu
b3JnL2IvMTUxMzEwPiBXZWIgSW5zcGVjdG9yOiBDb21tYW5kLUUgc2hvdWxkIHByb3BhZ2F0ZSB0
byBvdGhlciBzZWFyY2ggZmllbGRzIChpbmNsdWRpbmcgdGhlIHN5c3RlbSkKKyAgICBXSS5maW5k
U3RyaW5nID0gIiI7CiAgICAgV0kucG9wdWxhdGVGaW5kS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBX
SS5LZXlib2FyZFNob3J0Y3V0KFdJLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29tbWFuZE9y
Q29udHJvbCwgIkUiLCBXSS5fcG9wdWxhdGVGaW5kKTsKICAgICBXSS5wb3B1bGF0ZUZpbmRLZXli
b2FyZFNob3J0Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKICAgICBXSS5m
aW5kTmV4dEtleWJvYXJkU2hvcnRjdXQgPSBuZXcgV0kuS2V5Ym9hcmRTaG9ydGN1dChXSS5LZXli
b2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1hbmRPckNvbnRyb2wsICJHIiwgV0kuX2ZpbmROZXh0
KTsKQEAgLTEwNDUsNiArMTA0NSwyNiBAQCBXSS51cGRhdGVWaXNpYmlsaXR5U3RhdGUgPSBmdW5j
dGlvbih2aXNpYmxlKQogICAgIFdJLm5vdGlmaWNhdGlvbnMuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKFdJLk5vdGlmaWNhdGlvbi5WaXNpYmlsaXR5U3RhdGVEaWRDaGFuZ2UpOwogfTsKIAorV0ku
dXBkYXRlRmluZFN0cmluZyA9IGZ1bmN0aW9uKGZpbmRTdHJpbmcpCit7CisgICAgaWYgKFdJLmZp
bmRTdHJpbmcgPT09IGZpbmRTdHJpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIFdJLmZpbmRT
dHJpbmcgPSBmaW5kU3RyaW5nOworCisgICAgbGV0IGZvY3VzZWRDb250ZW50VmlldyA9IFdJLl9m
b2N1c2VkQ29udGVudFZpZXcoKTsKKyAgICBpZiAoZm9jdXNlZENvbnRlbnRWaWV3ICYmIGZvY3Vz
ZWRDb250ZW50Vmlldy5zdXBwb3J0c0N1c3RvbUZpbmRCYW5uZXIpIHsKKyAgICAgICAgZm9jdXNl
ZENvbnRlbnRWaWV3LmhhbmRsZUZpbmRTdHJpbmdVcGRhdGVkKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBsZXQgY29udGVudEJyb3dzZXIgPSBXSS5fZm9jdXNlZE9yVmlzaWJsZUNv
bnRlbnRCcm93c2VyKCk7CisgICAgaWYgKGNvbnRlbnRCcm93c2VyKSB7CisgICAgICAgIGNvbnRl
bnRCcm93c2VyLmhhbmRsZUZpbmRTdHJpbmdVcGRhdGVkKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9Cit9OworCiBXSS5oYW5kbGVQb3NzaWJsZUxpbmtDbGljayA9IGZ1bmN0aW9uKGV2ZW50LCBm
cmFtZSwgb3B0aW9ucyA9IHt9KQogewogICAgIGxldCBhbmNob3JFbGVtZW50ID0gZXZlbnQudGFy
Z2V0LmNsb3Nlc3QoImEiKTsKQEAgLTI2MTAsNTUgKzI2MzAsNTIgQEAgV0kuX2NsZWFyID0gZnVu
Y3Rpb24oZXZlbnQpCiBXSS5fcG9wdWxhdGVGaW5kID0gZnVuY3Rpb24oZXZlbnQpCiB7CiAgICAg
bGV0IGZvY3VzZWRDb250ZW50VmlldyA9IFdJLl9mb2N1c2VkQ29udGVudFZpZXcoKTsKLSAgICBp
ZiAoIWZvY3VzZWRDb250ZW50VmlldykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGZvY3Vz
ZWRDb250ZW50Vmlldy5zdXBwb3J0c0N1c3RvbUZpbmRCYW5uZXIpIHsKLSAgICAgICAgZm9jdXNl
ZENvbnRlbnRWaWV3LmhhbmRsZVBvcHVsYXRlRmluZFNob3J0Y3V0KCk7CisgICAgaWYgKGZvY3Vz
ZWRDb250ZW50VmlldyAmJiBmb2N1c2VkQ29udGVudFZpZXcuc3VwcG9ydHNDdXN0b21GaW5kQmFu
bmVyKSB7CisgICAgICAgIGxldCBzdHJpbmcgPSBmb2N1c2VkQ29udGVudFZpZXcuaGFuZGxlUG9w
dWxhdGVGaW5kU2hvcnRjdXQoKTsKKyAgICAgICAgaWYgKHN0cmluZykKKyAgICAgICAgICAgIFdJ
LmZpbmRTdHJpbmcgPSBzdHJpbmc7CisgICAgICAgIGZvY3VzZWRDb250ZW50Vmlldy5oYW5kbGVG
aW5kU3RyaW5nVXBkYXRlZCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgbGV0IGNv
bnRlbnRCcm93c2VyID0gV0kuX2ZvY3VzZWRPclZpc2libGVDb250ZW50QnJvd3NlcigpOwotICAg
IGlmICghY29udGVudEJyb3dzZXIpCisgICAgaWYgKGNvbnRlbnRCcm93c2VyKSB7CisgICAgICAg
IGxldCBzdHJpbmcgPSBjb250ZW50QnJvd3Nlci5oYW5kbGVQb3B1bGF0ZUZpbmRTaG9ydGN1dCgp
OworICAgICAgICBpZiAoc3RyaW5nKQorICAgICAgICAgICAgV0kuZmluZFN0cmluZyA9IHN0cmlu
ZzsKKyAgICAgICAgY29udGVudEJyb3dzZXIuaGFuZGxlRmluZFN0cmluZ1VwZGF0ZWQoKTsKICAg
ICAgICAgcmV0dXJuOwotCi0gICAgY29udGVudEJyb3dzZXIuaGFuZGxlUG9wdWxhdGVGaW5kU2hv
cnRjdXQoKTsKKyAgICB9CiB9OwogCiBXSS5fZmluZE5leHQgPSBmdW5jdGlvbihldmVudCkKIHsK
ICAgICBsZXQgZm9jdXNlZENvbnRlbnRWaWV3ID0gV0kuX2ZvY3VzZWRDb250ZW50VmlldygpOwot
ICAgIGlmICghZm9jdXNlZENvbnRlbnRWaWV3KQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAo
Zm9jdXNlZENvbnRlbnRWaWV3LnN1cHBvcnRzQ3VzdG9tRmluZEJhbm5lcikgeworICAgIGlmIChm
b2N1c2VkQ29udGVudFZpZXc/LnN1cHBvcnRzQ3VzdG9tRmluZEJhbm5lcikgewogICAgICAgICBm
b2N1c2VkQ29udGVudFZpZXcuaGFuZGxlRmluZE5leHRTaG9ydGN1dCgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCiAgICAgbGV0IGNvbnRlbnRCcm93c2VyID0gV0kuX2ZvY3VzZWRPclZpc2li
bGVDb250ZW50QnJvd3NlcigpOwotICAgIGlmICghY29udGVudEJyb3dzZXIpCisgICAgaWYgKGNv
bnRlbnRCcm93c2VyKSB7CisgICAgICAgIGNvbnRlbnRCcm93c2VyLmhhbmRsZUZpbmROZXh0U2hv
cnRjdXQoKTsKICAgICAgICAgcmV0dXJuOwotCi0gICAgY29udGVudEJyb3dzZXIuaGFuZGxlRmlu
ZE5leHRTaG9ydGN1dCgpOworICAgIH0KIH07CiAKIFdJLl9maW5kUHJldmlvdXMgPSBmdW5jdGlv
bihldmVudCkKIHsKICAgICBsZXQgZm9jdXNlZENvbnRlbnRWaWV3ID0gV0kuX2ZvY3VzZWRDb250
ZW50VmlldygpOwotICAgIGlmICghZm9jdXNlZENvbnRlbnRWaWV3KQotICAgICAgICByZXR1cm47
Ci0KLSAgICBpZiAoZm9jdXNlZENvbnRlbnRWaWV3LnN1cHBvcnRzQ3VzdG9tRmluZEJhbm5lcikg
eworICAgIGlmIChmb2N1c2VkQ29udGVudFZpZXc/LnN1cHBvcnRzQ3VzdG9tRmluZEJhbm5lcikg
ewogICAgICAgICBmb2N1c2VkQ29udGVudFZpZXcuaGFuZGxlRmluZFByZXZpb3VzU2hvcnRjdXQo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGxldCBjb250ZW50QnJvd3NlciA9IFdJ
Ll9mb2N1c2VkT3JWaXNpYmxlQ29udGVudEJyb3dzZXIoKTsKLSAgICBpZiAoIWNvbnRlbnRCcm93
c2VyKQorICAgIGlmIChjb250ZW50QnJvd3NlcikgeworICAgICAgICBjb250ZW50QnJvd3Nlci5o
YW5kbGVGaW5kUHJldmlvdXNTaG9ydGN1dCgpOwogICAgICAgICByZXR1cm47Ci0KLSAgICBjb250
ZW50QnJvd3Nlci5oYW5kbGVGaW5kUHJldmlvdXNTaG9ydGN1dCgpOworICAgIH0KIH07CiAKIFdJ
Ll9jb3B5ID0gZnVuY3Rpb24oZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZyb250ZW5k
QVBJLmpzCmluZGV4IGQyZGJlMWQxZGQ0NDkwM2EwZjJlZjE5Nzk1NDI0MTI2M2NmMGJjZjEuLmEz
NGIxMDc4ZWRmODE3NzY5NTY2ZDVkNTRhN2Y1YTI2ZmRlOGI2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZyb250ZW5k
QVBJLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29s
L0luc3BlY3RvckZyb250ZW5kQVBJLmpzCkBAIC05MSw2ICs5MSwxMSBAQCBJbnNwZWN0b3JGcm9u
dGVuZEFQSSA9IHsKICAgICAgICAgV0kudXBkYXRlVmlzaWJpbGl0eVN0YXRlKHZpc2libGUpOwog
ICAgIH0sCiAKKyAgICB1cGRhdGVGaW5kU3RyaW5nOiBmdW5jdGlvbihmaW5kU3RyaW5nKQorICAg
IHsKKyAgICAgICAgV0kudXBkYXRlRmluZFN0cmluZyhmaW5kU3RyaW5nKTsKKyAgICB9LAorCiAg
ICAgc2V0RGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGU6IGZ1bmN0aW9uKGF2YWlsYWJsZSkKICAg
ICB7CiAgICAgICAgIGlmIChXSS5kaWFnbm9zdGljQ29udHJvbGxlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5qcwppbmRleCA2ZTA1ZDkyYmEx
NDQ4YzgxYjQ3MWZiZTJhNjRlOGM1NDk2YzZjMWY3Li5kM2YyZDU3NmZiMmU5NDNmNmUyMzZjN2Zk
Njg4NWNlOTIwMjA1YzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9UZXN0L1Rlc3QuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVGVzdC9UZXN0LmpzCkBAIC0xNzcsNiArMTc3LDcgQEAgV0kucmVzb2x2ZWRMYXlvdXRE
aXJlY3Rpb24gPSAoKSA9PiB7IHJldHVybiBJbnNwZWN0b3JGcm9udGVuZEhvc3QudXNlckludGVy
ZmFjZUwKIFdJLnVwZGF0ZURvY2tlZFN0YXRlID0gKCkgPT4ge307CiBXSS51cGRhdGVEb2NraW5n
QXZhaWxhYmlsaXR5ID0gKCkgPT4ge307CiBXSS51cGRhdGVWaXNpYmlsaXR5U3RhdGUgPSAoKSA9
PiB7fTsKK1dJLnVwZGF0ZUZpbmRTdHJpbmcgPSAoKSA9PiB7fTsKIAogLy8gRklYTUU6IDxodHRw
czovL3dlYmtpdC5vcmcvYi8yMDExNDk+IFdlYiBJbnNwZWN0b3I6IHJlcGxhY2UgYWxsIHVzZXMg
b2YgYHdpbmRvdy4qQWdlbnRgIHdpdGggYSB0YXJnZXQtc3BlY2lmaWMgY2FsbAogKGZ1bmN0aW9u
KCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ29udGVudEJyb3dzZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qcwppbmRleCAyYTI4NjdhMWQ3YWYwYmUxNzA3MmRjNGYz
YjM5NjI4MzJmNmE1YTA2Li43NWQ5NzhkMmViYjdkNWNiNWRiOThlMmViM2Q4Yzc3YzcxZTJjMjZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
b250ZW50QnJvd3Nlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qcwpAQCAtMjQ2LDI4ICsyNDYsNTMgQEAgV0kuQ29udGVu
dEJyb3dzZXIgPSBjbGFzcyBDb250ZW50QnJvd3NlciBleHRlbmRzIFdJLlZpZXcKIAogICAgIC8v
IEdsb2JhbCBDb250ZW50QnJvd3NlciBLZXlib2FyZFNob3J0Y3V0IGhhbmRsZXJzCiAKLSAgICBo
YW5kbGVQb3B1bGF0ZUZpbmRTaG9ydGN1dCgpCisgICAgaGFuZGxlRmluZFN0cmluZ1VwZGF0ZWQo
KQogICAgIHsKKyAgICAgICAgdGhpcy5fZmluZEJhbm5lci5zZWFyY2hRdWVyeSA9IFdJLmZpbmRT
dHJpbmc7CisKICAgICAgICAgbGV0IGN1cnJlbnRDb250ZW50VmlldyA9IHRoaXMuY3VycmVudENv
bnRlbnRWaWV3OwotICAgICAgICBpZiAoIWN1cnJlbnRDb250ZW50VmlldyB8fCAhY3VycmVudENv
bnRlbnRWaWV3LnN1cHBvcnRzU2VhcmNoKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IGxldCBzZWFyY2hRdWVyeSA9IGN1cnJlbnRDb250ZW50Vmlldy5zZWFyY2hRdWVyeVdpdGhTZWxl
Y3Rpb24oKTsKLSAgICAgICAgaWYgKCFzZWFyY2hRdWVyeSkKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICB0aGlzLl9maW5kQmFubmVyLnNlYXJjaFF1ZXJ5ID0gc2VhcmNoUXVlcnk7Ci0K
LSAgICAgICAgY3VycmVudENvbnRlbnRWaWV3LnBlcmZvcm1TZWFyY2godGhpcy5fZmluZEJhbm5l
ci5zZWFyY2hRdWVyeSk7CisgICAgICAgIGlmIChjdXJyZW50Q29udGVudFZpZXc/LnN1cHBvcnRz
U2VhcmNoKQorICAgICAgICAgICAgY3VycmVudENvbnRlbnRWaWV3LnBlcmZvcm1TZWFyY2godGhp
cy5fZmluZEJhbm5lci5zZWFyY2hRdWVyeSk7CiAgICAgfQogCi0gICAgaGFuZGxlRmluZE5leHRT
aG9ydGN1dCgpCisgICAgaGFuZGxlUG9wdWxhdGVGaW5kU2hvcnRjdXQoKQogICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuY3VycmVudENvbnRlbnRWaWV3Py5zZWFyY2hRdWVyeVdpdGhTZWxlY3Rp
b24oKTsKKyAgICB9CisKKyAgICBhc3luYyBoYW5kbGVGaW5kTmV4dFNob3J0Y3V0KCkKKyAgICB7
CisgICAgICAgIGlmICh0aGlzLl9maW5kQmFubmVyLnNlYXJjaFF1ZXJ5ICE9PSBXSS5maW5kU3Ry
aW5nKSB7CisgICAgICAgICAgICBsZXQgc2VhcmNoUXVlcnkgPSBXSS5maW5kU3RyaW5nOworICAg
ICAgICAgICAgdGhpcy5fZmluZEJhbm5lci5zZWFyY2hRdWVyeSA9IHNlYXJjaFF1ZXJ5OworCisg
ICAgICAgICAgICBsZXQgY3VycmVudENvbnRlbnRWaWV3ID0gdGhpcy5jdXJyZW50Q29udGVudFZp
ZXc7CisgICAgICAgICAgICBpZiAoY3VycmVudENvbnRlbnRWaWV3Py5zdXBwb3J0c1NlYXJjaCkg
eworICAgICAgICAgICAgICAgIGN1cnJlbnRDb250ZW50Vmlldy5wZXJmb3JtU2VhcmNoKHRoaXMu
X2ZpbmRCYW5uZXIuc2VhcmNoUXVlcnkpOworICAgICAgICAgICAgICAgIGF3YWl0IGN1cnJlbnRD
b250ZW50Vmlldy5hd2FpdEV2ZW50KFdJLkNvbnRlbnRWaWV3LkV2ZW50Lk51bWJlck9mU2VhcmNo
UmVzdWx0c0RpZENoYW5nZSk7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2ZpbmRCYW5uZXIu
c2VhcmNoUXVlcnkgIT09IHNlYXJjaFF1ZXJ5IHx8IHRoaXMuY3VycmVudENvbnRlbnRWaWV3ICE9
PSBjdXJyZW50Q29udGVudFZpZXcpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorCiAgICAgICAgIHRoaXMuZmluZEJhbm5lclJldmVhbE5leHRS
ZXN1bHQodGhpcy5fZmluZEJhbm5lcik7CiAgICAgfQogCi0gICAgaGFuZGxlRmluZFByZXZpb3Vz
U2hvcnRjdXQoKQorICAgIGFzeW5jIGhhbmRsZUZpbmRQcmV2aW91c1Nob3J0Y3V0KCkKICAgICB7
CisgICAgICAgIGlmICh0aGlzLl9maW5kQmFubmVyLnNlYXJjaFF1ZXJ5ICE9PSBXSS5maW5kU3Ry
aW5nKSB7CisgICAgICAgICAgICBsZXQgc2VhcmNoUXVlcnkgPSBXSS5maW5kU3RyaW5nOworICAg
ICAgICAgICAgdGhpcy5fZmluZEJhbm5lci5zZWFyY2hRdWVyeSA9IHNlYXJjaFF1ZXJ5OworCisg
ICAgICAgICAgICBsZXQgY3VycmVudENvbnRlbnRWaWV3ID0gdGhpcy5jdXJyZW50Q29udGVudFZp
ZXc7CisgICAgICAgICAgICBpZiAoY3VycmVudENvbnRlbnRWaWV3Py5zdXBwb3J0c1NlYXJjaCkg
eworICAgICAgICAgICAgICAgIGN1cnJlbnRDb250ZW50Vmlldy5wZXJmb3JtU2VhcmNoKHRoaXMu
X2ZpbmRCYW5uZXIuc2VhcmNoUXVlcnkpOworICAgICAgICAgICAgICAgIGF3YWl0IGN1cnJlbnRD
b250ZW50Vmlldy5hd2FpdEV2ZW50KFdJLkNvbnRlbnRWaWV3LkV2ZW50Lk51bWJlck9mU2VhcmNo
UmVzdWx0c0RpZENoYW5nZSk7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2ZpbmRCYW5uZXIu
c2VhcmNoUXVlcnkgIT09IHNlYXJjaFF1ZXJ5IHx8IHRoaXMuY3VycmVudENvbnRlbnRWaWV3ICE9
PSBjdXJyZW50Q29udGVudFZpZXcpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorCiAgICAgICAgIHRoaXMuZmluZEJhbm5lclJldmVhbFByZXZp
b3VzUmVzdWx0KHRoaXMuX2ZpbmRCYW5uZXIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5q
cwppbmRleCA2MjJlZDgwNGRhZDQzZGNkZWQzODBmM2Q3NGQ2MTU0ODQyNzU5NTg5Li4xNTJiOGEx
MDAzMGUxYmYzYjRkOThjNjQ1YzMzZGIzZmQ5Yzg2MDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5q
cwpAQCAtMjk2LDI0ICsyOTYsMzEgQEAgV0kuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250
ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgIHRoaXMuX2xvZ1ZpZXdDb250
cm9sbGVyLnJlcXVlc3RDbGVhck1lc3NhZ2VzKCk7CiAgICAgfQogCi0gICAgaGFuZGxlUG9wdWxh
dGVGaW5kU2hvcnRjdXQoKQorICAgIGhhbmRsZUZpbmRTdHJpbmdVcGRhdGVkKCkKICAgICB7Ci0g
ICAgICAgIGxldCBzZWFyY2hRdWVyeSA9IHRoaXMuc2VhcmNoUXVlcnlXaXRoU2VsZWN0aW9uKCk7
Ci0gICAgICAgIGlmICghc2VhcmNoUXVlcnkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgdGhpcy5fZmluZEJhbm5lci5zZWFyY2hRdWVyeSA9IHNlYXJjaFF1ZXJ5OworICAgICAgICB0
aGlzLl9maW5kQmFubmVyLnNlYXJjaFF1ZXJ5ID0gV0kuZmluZFN0cmluZzsKIAogICAgICAgICB0
aGlzLnBlcmZvcm1TZWFyY2godGhpcy5fZmluZEJhbm5lci5zZWFyY2hRdWVyeSk7CiAgICAgfQog
CisgICAgaGFuZGxlUG9wdWxhdGVGaW5kU2hvcnRjdXQoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuc2VhcmNoUXVlcnlXaXRoU2VsZWN0aW9uKCk7CisgICAgfQorCiAgICAgaGFuZGxlRmlu
ZE5leHRTaG9ydGN1dCgpCiAgICAgeworICAgICAgICBpZiAodGhpcy5fZmluZEJhbm5lci5zZWFy
Y2hRdWVyeSAhPT0gV0kuZmluZFN0cmluZykKKyAgICAgICAgICAgIHRoaXMuaGFuZGxlRmluZFN0
cmluZ1VwZGF0ZWQoKTsKKwogICAgICAgICB0aGlzLmZpbmRCYW5uZXJSZXZlYWxOZXh0UmVzdWx0
KHRoaXMuX2ZpbmRCYW5uZXIpOwogICAgIH0KIAogICAgIGhhbmRsZUZpbmRQcmV2aW91c1Nob3J0
Y3V0KCkKICAgICB7CisgICAgICAgIGlmICh0aGlzLl9maW5kQmFubmVyLnNlYXJjaFF1ZXJ5ICE9
PSBXSS5maW5kU3RyaW5nKQorICAgICAgICAgICAgdGhpcy5oYW5kbGVGaW5kU3RyaW5nVXBkYXRl
ZCgpOworCiAgICAgICAgIHRoaXMuZmluZEJhbm5lclJldmVhbFByZXZpb3VzUmVzdWx0KHRoaXMu
X2ZpbmRCYW5uZXIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkuaAppbmRleCAyMTM3NTc1
NzA5NTUyZGQzMjU5YjU5NmE5YzJiODZjYTkwNzMyMDgzLi5kNGI5Nzg3ODI4NzQ2OTA1MWViYjc1
NjA1ZDEwYmRmOTM3YjdjNTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkuaApAQCAtOTAsNiArOTAs
OCBAQCBwdWJsaWM6CiAgICAgV0tXZWJWaWV3ICp3ZWJWaWV3KCkgY29uc3Q7CiAKICAgICBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNoZWV0UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hlZXRS
ZWN0OyB9CisKKyAgICB2b2lkIGRpZEJlY29tZUFjdGl2ZSgpOwogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JQcm94eS5oCmluZGV4IDQ2ZTM0MjQ5MzgxYmI5YjFjN2EzNmRjYTJhODEzZjE5
M2U3ZjNlY2QuLmViMGI4MWViODE0Zjg3M2EyYWRhYjMwMjc4MWJkOWQ4YmRjNzAzMzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQ
cm94eS5oCkBAIC0xMTMsNiArMTEzLDggQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgSW5zcGVj
dGlvblRhcmdldFR5cGUgeyBMb2NhbCwgUmVtb3RlIH07CiAgICAgc3RhdGljIFJldGFpblB0cjxO
U1dpbmRvdz4gY3JlYXRlRnJvbnRlbmRXaW5kb3coTlNSZWN0IHNhdmVkV2luZG93RnJhbWUsIElu
c3BlY3Rpb25UYXJnZXRUeXBlKTsKIAorICAgIHZvaWQgZGlkQmVjb21lQWN0aXZlKCk7CisKICAg
ICB2b2lkIHVwZGF0ZUluc3BlY3RvcldpbmRvd1RpdGxlKCkgY29uc3Q7CiAgICAgdm9pZCBpbnNw
ZWN0ZWRWaWV3RnJhbWVEaWRDaGFuZ2UoQ0dGbG9hdCA9IDApOwogICAgIHZvaWQgd2luZG93RnJh
bWVEaWRDaGFuZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci9tYWMvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tCmluZGV4
IDUxNGZkNGEwOTJkN2NmZWI3YmEzNjg4YjVmZTQ5NGI1NjBiMGQ0OWMuLmYxYjJiNTExZDdlYzY4
OGRiZWQxNDM0OTRhMDMzODFlZThmZDJmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9tYWMvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9SZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eU1hYy5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFC
TEUoUkVNT1RFX0lOU1BFQ1RPUikKIAorI2ltcG9ydCAiR2xvYmFsRmluZEluUGFnZVN0YXRlLmgi
CiAjaW1wb3J0ICJSZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJS
ZW1vdGVXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXS0ZyYW1lSW5mby5oIgpA
QCAtNjgsNiArNjksMTEgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUmVtb3RlV2ViSW5zcGVj
dG9yUHJveHk6KFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHkKICAgICByZXR1cm4gc2Vs
ZjsKIH0KIAorLSAodm9pZClpbnNwZWN0b3JXS1dlYlZpZXdEaWRCZWNvbWVBY3RpdmU6KFdLSW5z
cGVjdG9yVmlld0NvbnRyb2xsZXIgKilpbnNwZWN0b3JWaWV3Q29udHJvbGxlcgoreworICAgIF9p
bnNwZWN0b3JQcm94eS0+ZGlkQmVjb21lQWN0aXZlKCk7Cit9CisKIC0gKHZvaWQpaW5zcGVjdG9y
Vmlld0NvbnRyb2xsZXJJbnNwZWN0b3JEaWRDcmFzaDooV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxl
ciAqKWluc3BlY3RvclZpZXdDb250cm9sbGVyCiB7CiAgICAgX2luc3BlY3RvclByb3h5LT5jbG9z
ZUZyb21DcmFzaCgpOwpAQCAtODgsNiArOTQsMTEgQEAgV0tXZWJWaWV3ICpSZW1vdGVXZWJJbnNw
ZWN0b3JQcm94eTo6d2ViVmlldygpIGNvbnN0CiAgICAgcmV0dXJuIG1faW5zcGVjdG9yVmlldy5n
ZXQoKS53ZWJWaWV3OwogfQogCit2b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpkaWRCZWNv
bWVBY3RpdmUoKQoreworICAgIG1faW5zcGVjdG9yUGFnZS0+c2VuZChNZXNzYWdlczo6UmVtb3Rl
V2ViSW5zcGVjdG9yVUk6OlVwZGF0ZUZpbmRTdHJpbmcoV2ViS2l0OjpzdHJpbmdGb3JGaW5kKCkp
KTsKK30KKwogV2ViUGFnZVByb3h5KiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1D
cmVhdGVGcm9udGVuZFBhZ2VBbmRXaW5kb3coKQogewogICAgIG1fb2JqQ0FkYXB0ZXIgPSBhZG9w
dE5TKFtbV0tSZW1vdGVXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyIGFsbG9jXSBpbml0V2l0
aFJlbW90ZVdlYkluc3BlY3RvclByb3h5OnRoaXNdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250
cm9sbGVyLmgKaW5kZXggNzBkY2UxNDJiN2E0MjQ1NmVmNjJiMzkwMTFiODM3ODNhNTQyZGQyZS4u
YmFiZDMzMjUwMmFkZTk5YjYxZGM0NWI5NzY5OTY2MDhiN2M4YjgxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3Bl
Y3RvclZpZXdDb250cm9sbGVyLmgKQEAgLTUxLDYgKzUxLDcgQEAgTlNfQVNTVU1FX05PTk5VTExf
QkVHSU4KIAogQHByb3RvY29sIFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZSA8TlNP
YmplY3Q+CiBAb3B0aW9uYWwKKy0gKHZvaWQpaW5zcGVjdG9yVmlld0NvbnRyb2xsZXJEaWRCZWNv
bWVBY3RpdmU6KFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgKilpbnNwZWN0b3JWaWV3Q29udHJv
bGxlcjsKIC0gKHZvaWQpaW5zcGVjdG9yVmlld0NvbnRyb2xsZXJJbnNwZWN0b3JEaWRDcmFzaDoo
V0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3BlY3RvclZpZXdDb250cm9sbGVyOwogLSAo
Qk9PTClpbnNwZWN0b3JWaWV3Q29udHJvbGxlckluc3BlY3RvcklzVW5kZXJUZXN0OihXS0luc3Bl
Y3RvclZpZXdDb250cm9sbGVyICopaW5zcGVjdG9yVmlld0NvbnRyb2xsZXI7CiAtICh2b2lkKWlu
c3BlY3RvclZpZXdDb250cm9sbGVyOihXS0luc3BlY3RvclZpZXdDb250cm9sbGVyICopaW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIgd2lsbE1vdmVUb1dpbmRvdzooTlNXaW5kb3cgKiluZXdXaW5kb3c7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5z
cGVjdG9yVmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KaW5kZXggYTYxZjFlZDBiODA0Zjg3
YWYyN2JiZTUyYTkxNzVhYjU4MTcxNWZkZi4uZjQwN2FlMWJmNmI3OWJkZWYyZTgyYzQ1OGE5OTY0
ZjgwNDdkODBmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQpAQCAtMjM1
LDYgKzIzNSwxMiBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aQogCiAvLyBNQVJLOiBXS0luc3Bl
Y3RvcldLV2ViVmlld0RlbGVnYXRlIG1ldGhvZHMKIAorLSAodm9pZClpbnNwZWN0b3JXS1dlYlZp
ZXdEaWRCZWNvbWVBY3RpdmU6KFdLSW5zcGVjdG9yV0tXZWJWaWV3ICopd2ViVmlldworeworICAg
IGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9yVmll
d0NvbnRyb2xsZXJEaWRCZWNvbWVBY3RpdmU6KV0pCisgICAgICAgIFtfZGVsZWdhdGUgaW5zcGVj
dG9yVmlld0NvbnRyb2xsZXJEaWRCZWNvbWVBY3RpdmU6c2VsZl07Cit9CisKIC0gKHZvaWQpaW5z
cGVjdG9yV0tXZWJWaWV3UmVsb2FkOihXS0luc3BlY3RvcldLV2ViVmlldyAqKXdlYlZpZXcKIHsK
ICAgICBpZiAoIV9pbnNwZWN0ZWRQYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvcldLV2ViVmlldy5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvcldLV2ViVmlldy5oCmluZGV4IGIy
MTkwYjM4MzM5ZTA5YWYwMDhkZWIyNTM4NWNmMDIwODg3ZjdlNjMuLmQ3NGU3ZmUxNDIyYjNjZGNk
YTA4Yzc1MjVkYzkwNGNkZDdhMDk2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JXS1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yV0tXZWJWaWV3LmgKQEAgLTM1
LDYgKzM1LDcgQEAKIAogQHByb3RvY29sIFdLSW5zcGVjdG9yV0tXZWJWaWV3RGVsZWdhdGUKIEBy
ZXF1aXJlZAorLSAodm9pZClpbnNwZWN0b3JXS1dlYlZpZXdEaWRCZWNvbWVBY3RpdmU6KFdLSW5z
cGVjdG9yV0tXZWJWaWV3ICopd2ViVmlldzsKIC0gKHZvaWQpaW5zcGVjdG9yV0tXZWJWaWV3UmVs
b2FkOihXS0luc3BlY3RvcldLV2ViVmlldyAqKXdlYlZpZXc7CiAtICh2b2lkKWluc3BlY3RvcldL
V2ViVmlld1JlbG9hZEZyb21PcmlnaW46KFdLSW5zcGVjdG9yV0tXZWJWaWV3ICopd2ViVmlldzsK
IC0gKHZvaWQpaW5zcGVjdG9yV0tXZWJWaWV3OihXS0luc3BlY3RvcldLV2ViVmlldyAqKXdlYlZp
ZXcgd2lsbE1vdmVUb1dpbmRvdzooTlNXaW5kb3cgKiluZXdXaW5kb3c7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yV0tXZWJWaWV3
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvcldL
V2ViVmlldy5tbQppbmRleCA0YmZlZjRhMDFiYWYxM2FkNGZlNzFmOGE5ZDNkYzY1NDI1OGE5Y2I2
Li40NWM4NWE4ZDA4MWY1MmI0NzljNTZiZDQ3YjNiNWM1Zjc3Mjc3ZGY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yV0tXZWJWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0
b3JXS1dlYlZpZXcubW0KQEAgLTM1LDYgKzM1LDEzIEBAIEBpbXBsZW1lbnRhdGlvbiBXS0luc3Bl
Y3RvcldLV2ViVmlldyB7CiAgICAgV2Vha09iakNQdHI8aWQgPFdLSW5zcGVjdG9yV0tXZWJWaWV3
RGVsZWdhdGU+PiBfaW5zcGVjdG9yV0tXZWJWaWV3RGVsZWdhdGU7CiB9CiAKKy0gKHZvaWQpZGVh
bGxvYworeworICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3Zl
T2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkQmVjb21lS2V5Tm90aWZpY2F0aW9uIG9iamVj
dDpuaWxdOworCisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCiAtIChOU1JlY3QpX29wYXF1ZVJl
Y3RGb3JXaW5kb3dNb3ZlV2hlbkluVGl0bGViYXIKIHsKICAgICAvLyBUaGlzIGNvbnZpbmNlcyBB
cHBLaXQgdG8gYWxsb3cgd2luZG93IG1vdmVzIHdoZW4gY2xpY2tpbmcgYW55d2hlcmUgaW4gdGhl
IHRpdGxlYmFyICh0b3AgMjJwdCkKQEAgLTU0LDcgKzYxLDEzIEBAIC0gKGlkIDxXS0luc3BlY3Rv
cldLV2ViVmlld0RlbGVnYXRlPilpbnNwZWN0b3JXS1dlYlZpZXdEZWxlZ2F0ZQogCiAtICh2b2lk
KXNldEluc3BlY3RvcldLV2ViVmlld0RlbGVnYXRlOihpZCA8V0tJbnNwZWN0b3JXS1dlYlZpZXdE
ZWxlZ2F0ZT4pZGVsZWdhdGUKIHsKKyAgICBpZiAoISFfaW5zcGVjdG9yV0tXZWJWaWV3RGVsZWdh
dGUpCisgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3Zl
T2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkQmVjb21lS2V5Tm90aWZpY2F0aW9uIG9iamVj
dDpuaWxdOworCiAgICAgX2luc3BlY3RvcldLV2ViVmlld0RlbGVnYXRlID0gZGVsZWdhdGU7CisK
KyAgICBpZiAoISFfaW5zcGVjdG9yV0tXZWJWaWV3RGVsZWdhdGUpCisgICAgICAgIFtbTlNOb3Rp
ZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpA
c2VsZWN0b3IoX2hhbmRsZVdpbmRvd0RpZEJlY29tZUtleTopIG5hbWU6TlNXaW5kb3dEaWRCZWNv
bWVLZXlOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CiB9CiAKIC0gKElCQWN0aW9uKXJlbG9hZDoo
aWQpc2VuZGVyCkBAIC03OSw2ICs5MiwxOSBAQCAtICh2b2lkKXZpZXdEaWRNb3ZlVG9XaW5kb3cK
ICAgICBbc2VsZi5pbnNwZWN0b3JXS1dlYlZpZXdEZWxlZ2F0ZSBpbnNwZWN0b3JXS1dlYlZpZXdE
aWRNb3ZlVG9XaW5kb3c6c2VsZl07CiB9CiAKKy0gKEJPT0wpYmVjb21lRmlyc3RSZXNwb25kZXIK
K3sKKyAgICBCT09MIHJlc3VsdCA9IFtzdXBlciBiZWNvbWVGaXJzdFJlc3BvbmRlcl07CisgICAg
W3NlbGYuaW5zcGVjdG9yV0tXZWJWaWV3RGVsZWdhdGUgaW5zcGVjdG9yV0tXZWJWaWV3RGlkQmVj
b21lQWN0aXZlOnNlbGZdOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy0gKHZvaWQpX2hhbmRs
ZVdpbmRvd0RpZEJlY29tZUtleTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAg
ICBpZiAoW25vdGlmaWNhdGlvbiBvYmplY3RdID09IFtzZWxmIHdpbmRvd10pCisgICAgICAgIFtz
ZWxmLmluc3BlY3RvcldLV2ViVmlld0RlbGVnYXRlIGluc3BlY3RvcldLV2ViVmlld0RpZEJlY29t
ZUFjdGl2ZTpzZWxmXTsKK30KKwogQGVuZAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclByb3h5TWFj
Lm1tCmluZGV4IDZiMzFkZTUxNWQ1OTdlNzYwYTQzMWRiMzM1YmE5MTU5NTRkZTk1YTguLmIzNjYz
OTNhNGFiMDA0ODY3NzMwMTVkYWNmOGIwNjE5NzNhZmM0MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JQcm94
eU1hYy5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgUExBVEZPUk0oTUFDKQogCisjaW1wb3J0
ICJHbG9iYWxGaW5kSW5QYWdlU3RhdGUuaCIKICNpbXBvcnQgIldLSW5zcGVjdG9yUHJpdmF0ZU1h
Yy5oIgogI2ltcG9ydCAiV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tW
aWV3SW50ZXJuYWwuaCIKQEAgLTE2Myw2ICsxNjQsMTIgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVG
b3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6
KE4KIAogLy8gTUFSSzogV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlckRlbGVnYXRlIG1ldGhvZHMK
IAorLSAodm9pZClpbnNwZWN0b3JWaWV3Q29udHJvbGxlckRpZEJlY29tZUFjdGl2ZTooV0tJbnNw
ZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3BlY3RvclZpZXdDb250cm9sbGVyCit7CisgICAgaWYg
KF9pbnNwZWN0b3JQcm94eSkKKyAgICAgICAgX2luc3BlY3RvclByb3h5LT5kaWRCZWNvbWVBY3Rp
dmUoKTsKK30KKwogLSAodm9pZClpbnNwZWN0b3JWaWV3Q29udHJvbGxlckluc3BlY3RvckRpZENy
YXNoOihXS0luc3BlY3RvclZpZXdDb250cm9sbGVyICopaW5zcGVjdG9yVmlld0NvbnRyb2xsZXIK
IHsKICAgICBpZiAoX2luc3BlY3RvclByb3h5KQpAQCAtMTkxLDYgKzE5OCwxMSBAQCBAZW5kCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCit2b2lkIFdlYklu
c3BlY3RvclByb3h5OjpkaWRCZWNvbWVBY3RpdmUoKQoreworICAgIG1faW5zcGVjdG9yUGFnZS0+
c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yVUk6OlVwZGF0ZUZpbmRTdHJpbmcoV2ViS2l0Ojpz
dHJpbmdGb3JGaW5kKCkpKTsKK30KKwogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6YXR0YWNobWVu
dFZpZXdEaWRDaGFuZ2UoTlNWaWV3ICpvbGRWaWV3LCBOU1ZpZXcgKm5ld1ZpZXcpCiB7CiAgICAg
W1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX29i
akNBZGFwdGVyLmdldCgpIG5hbWU6TlNWaWV3RnJhbWVEaWRDaGFuZ2VOb3RpZmljYXRpb24gb2Jq
ZWN0Om9sZFZpZXddOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3Bl
Y3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcAppbmRleCA1ZmNjOWY4MjQ0ZDVjN2Vl
MjQ4OGVhZDc3YTdkNzc4MzY1OWExZTMxLi5jY2RhY2NhYjc0MTFmODc3NGU4NGY4MmI0YjdmNTEy
MGE0Zjk3NTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcApAQCAtNjcsNiArNjcsMTEgQEAgdm9p
ZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6aW5pdGlhbGl6ZShEZWJ1Z2dhYmxlSW5mb0RhdGEmJiBk
ZWJ1Z2dhYmxlSW5mbywgY29uc3QKICAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRj
aENvbW1hbmQoInNldERvY2tpbmdVbmF2YWlsYWJsZSJfcywgdHJ1ZSk7CiB9CiAKK3ZvaWQgUmVt
b3RlV2ViSW5zcGVjdG9yVUk6OnVwZGF0ZUZpbmRTdHJpbmcoY29uc3QgU3RyaW5nJiBmaW5kU3Ry
aW5nKQoreworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgidXBk
YXRlRmluZFN0cmluZyJfcywgZmluZFN0cmluZyk7Cit9CisKIHZvaWQgUmVtb3RlV2ViSW5zcGVj
dG9yVUk6OmRpZFNhdmUoY29uc3QgU3RyaW5nJiB1cmwpCiB7CiAgICAgbV9mcm9udGVuZEFQSURp
c3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzYXZlZFVSTCJfcywgdXJsKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9y
VUkuaAppbmRleCA2NjdhNjU3MDQyYjk4NjllNmE2MWNhMjg0OGU3Yzc2ZTE5M2M3ZWVjLi5jYTRh
ZjcyNTc4ZTM0ODY4ZDViZmYwYTViNWJlZTJmZDIxZjM0OGNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5o
CkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIENhbGxlZCBieSBSZW1vdGVXZWJJ
bnNwZWN0b3JVSSBtZXNzYWdlcwogICAgIHZvaWQgaW5pdGlhbGl6ZShEZWJ1Z2dhYmxlSW5mb0Rh
dGEmJiwgY29uc3QgU3RyaW5nJiBiYWNrZW5kQ29tbWFuZHNVUkwpOworICAgIHZvaWQgdXBkYXRl
RmluZFN0cmluZyhjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGRpZFNhdmUoY29uc3QgU3RyaW5n
JiB1cmwpOwogICAgIHZvaWQgZGlkQXBwZW5kKGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICB2b2lk
IHNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3Bl
Y3RvclVJLm1lc3NhZ2VzLmluCmluZGV4IDJiZjdlNGM4NzhkYTFlMzQ4OWI5ODI0Y2NkNmQ4NjE4
NDQ0ZWE5ZGUuLjNlMjAyYzE2ZTdjNTE2ZjgzMDAxOWQ3ZGUxOWQwMzBjNWExZDM0NWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVj
dG9yVUkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rv
ci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbgpAQCAtMjMsNiArMjMsOCBAQAogbWVz
c2FnZXMgLT4gUmVtb3RlV2ViSW5zcGVjdG9yVUkgewogICAgIEluaXRpYWxpemUoc3RydWN0IFdl
YktpdDo6RGVidWdnYWJsZUluZm9EYXRhIGRlYnVnZ2FibGVJbmZvLCBTdHJpbmcgYmFja2VuZENv
bW1hbmRzVVJMKQogCisgICAgVXBkYXRlRmluZFN0cmluZyhTdHJpbmcgZmluZFN0cmluZykKKwog
I2lmIEVOQUJMRShJTlNQRUNUT1JfVEVMRU1FVFJZKQogICAgIFNldERpYWdub3N0aWNMb2dnaW5n
QXZhaWxhYmxlKGJvb2wgYXZhaWxhYmxlKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IGM1YzViNzY5
MzIwNzY2MzE2ZDA3OTNiOWQ3NTBjNTdjOWQyNTdmMTMuLjNiM2FjOWY4OWE5NzMwNzdiNmIwY2Yw
Mjc0NDg0ZjkxMDNlOTEwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC0yNjksNiArMjY5LDExIEBAIHZvaWQg
V2ViSW5zcGVjdG9yVUk6OnNldElzVmlzaWJsZShib29sIHZpc2libGUpCiAgICAgbV9mcm9udGVu
ZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXRJc1Zpc2libGUiX3MsIHZpc2libGUp
OwogfQogCit2b2lkIFdlYkluc3BlY3RvclVJOjp1cGRhdGVGaW5kU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgZmluZFN0cmluZykKK3sKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENv
bW1hbmQoInVwZGF0ZUZpbmRTdHJpbmciX3MsIGZpbmRTdHJpbmcpOworfQorCiB2b2lkIFdlYklu
c3BlY3RvclVJOjpjaGFuZ2VBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCBoZWlnaHQpCiB7
CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OlNldEF0dGFjaGVkV2luZG93SGVpZ2h0
KGhlaWdodCksIG1faW5zcGVjdGVkUGFnZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oCmluZGV4IGM2Yjg3MTU4
YTEzOWYyYTVkMmQ4ZjcxM2Q4OTBhNmJjNjk0Njc4OGEuLjc3OTAyN2E2MGFhNDFjYzZlODMzYzIy
ODcyMzAxMjEzNzEzYjlhOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmgKQEAgLTc5LDYgKzc5LDggQEAgcHVibGljOgogCiAg
ICAgdm9pZCBzZXRJc1Zpc2libGUoYm9vbCk7CiAKKyAgICB2b2lkIHVwZGF0ZUZpbmRTdHJpbmco
Y29uc3QgU3RyaW5nJik7CisKICAgICB2b2lkIGRpZFNhdmUoY29uc3QgU3RyaW5nJiB1cmwpOwog
ICAgIHZvaWQgZGlkQXBwZW5kKGNvbnN0IFN0cmluZyYgdXJsKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkubWVz
c2FnZXMuaW4KaW5kZXggOTRmMTM4NWQ0ODk1NTYyNjliYWZhNTdjMDc1ZWI0ZGFmMTNlMTYzNS4u
ODhhMjBmODEwZjZmZGFlNTI3N2ZjNTU4YzkxZjVmZGNiYTllYTQwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJ
Lm1lc3NhZ2VzLmluCkBAIC0zMCw2ICszMCw3IEBAIG1lc3NhZ2VzIC0+IFdlYkluc3BlY3RvclVJ
IHsKICAgICBEZXRhY2hlZCgpCiAgICAgU2V0RG9ja2luZ1VuYXZhaWxhYmxlKGJvb2wgdW5hdmFp
bGFibGUpCiAgICAgU2V0SXNWaXNpYmxlKGJvb2wgdmlzaWJsZSkKKyAgICBVcGRhdGVGaW5kU3Ry
aW5nKFN0cmluZyBmaW5kU3RyaW5nKQogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9URUxFTUVUUlkp
CiAgICAgU2V0RGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUoYm9vbCBhdmFpbGFibGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397875</attachid>
            <date>2020-04-28 12:43:46 -0700</date>
            <delta_ts>2020-04-28 14:43:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113588-20200428134345.patch</filename>
            <type>text/plain</type>
            <size>27172</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGQ5YjI1NDIyZjg5ZWYzM2Q0OTZlM2MxMjVlNjIx
MzZhZmNiYzY1NDYuLmU3ZDljMTkwMmQ5MTVlMDljZmEwYzJhOGQ1YWRiMWMyNzA2OTE2NGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA0LTI4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBm
aW5kIGRpYWxvZyBkb2VzIG5vdCBwb3B1bGF0ZSBzZWFyY2ggc3RyaW5nIGZyb20gc3lzdGVtIGZp
bmQgcGFzdGVib2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEzNTg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xOTI4MTQ2Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90
b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qczoKKyAgICAgICAgKEluc3BlY3RvckZyb250ZW5k
QVBJLnVwZGF0ZUZpbmRTdHJpbmcpOiBBZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jh
c2UvTWFpbi5qczoKKyAgICAgICAgKFdJLmNvbnRlbnRMb2FkZWQpOgorICAgICAgICAoV0kudXBk
YXRlRmluZFN0cmluZyk6IEFkZGVkLgorICAgICAgICAoV0kuX3BvcHVsYXRlRmluZCk6CisgICAg
ICAgIChXSS5fZmluZE5leHQpOgorICAgICAgICAoV0kuX2ZpbmRQcmV2aW91cyk6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qczoKKyAgICAgICAgKFdJLkNv
bnRlbnRCcm93c2VyLnByb3RvdHlwZS5oYW5kbGVGaW5kU3RyaW5nVXBkYXRlZCk6IEFkZGVkLgor
ICAgICAgICAoV0kuQ29udGVudEJyb3dzZXIucHJvdG90eXBlLmhhbmRsZVBvcHVsYXRlRmluZFNo
b3J0Y3V0KToKKyAgICAgICAgKFdJLkNvbnRlbnRCcm93c2VyLnByb3RvdHlwZS5oYW5kbGVGaW5k
TmV4dFNob3J0Y3V0KToKKyAgICAgICAgKFdJLkNvbnRlbnRCcm93c2VyLnByb3RvdHlwZS5oYW5k
bGVGaW5kUHJldmlvdXNTaG9ydGN1dCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9M
b2dDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5o
YW5kbGVGaW5kU3RyaW5nVXBkYXRlZCk6IEFkZGVkLgorICAgICAgICAoV0kuTG9nQ29udGVudFZp
ZXcucHJvdG90eXBlLmhhbmRsZVBvcHVsYXRlRmluZFNob3J0Y3V0KToKKyAgICAgICAgKFdJLkxv
Z0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oYW5kbGVGaW5kTmV4dFNob3J0Y3V0KToKKyAgICAgICAg
KFdJLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oYW5kbGVGaW5kUHJldmlvdXNTaG9ydGN1dCk6
CisgICAgICAgIFdoZW4gdGhlIGZpbmQgc3RyaW5nIGdldHMgdXBkYXRlZCwgdGVsbCB0aGUgYWN0
aXZlIHZpZXcuIFRoZSBgZmluZE5leHRLZXlib2FyZFNob3J0Y3V0YCBhbmQKKyAgICAgICAgYGZp
bmRQcmV2aW91c0tleWJvYXJkU2hvcnRjdXRgIHdpbGwgYWxzbyB1cGRhdGUgdGhlIHJlbGF0ZWQg
YFdJLkZpbmRCYW5uZXJgIHdoZW4gaW52b2tlZCBpZgorICAgICAgICB0aGUgY3VycmVudCBzZWFy
Y2ggcXVlcnkgZG9lcyBub3QgbWF0Y2ggdGhlIGZpbmQgc3RyaW5nLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9UZXN0L1Rlc3QuanM6CisgICAgICAgIChXSS51cGRhdGVGaW5kU3RyaW5nKTog
QWRkZWQuCisKIDIwMjAtMDQtMjcgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI1ODczMCk6IFdlYiBJbnNwZWN0b3I6IFNpZGVi
YXIgdGFicyBoYXZlIGluY29ycmVjdCB0YWJJbmRleApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5NTc4OWQ0OGM2ZTAy
Y2Q1MTJmN2ZjNDQyNWZmMzA3MDhjOWI2YWNmLi44ZWJjMzRiNmZkMDQ5MDVjZmZhODNkMzAyMDk4
ZTk3YzlhMWExMjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTA0LTI4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBm
aW5kIGRpYWxvZyBkb2VzIG5vdCBwb3B1bGF0ZSBzZWFyY2ggc3RyaW5nIGZyb20gc3lzdGVtIGZp
bmQgcGFzdGVib2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEzNTg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xOTI4MTQ2Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgorCisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rv
ci9tYWMvV0tJbnNwZWN0b3JXS1dlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVj
dG9yL21hYy9XS0luc3BlY3RvcldLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tJbnNwZWN0b3JX
S1dlYlZpZXcgZGVhbGxvY10pOiBBZGRlZC4KKyAgICAgICAgKC1bV0tJbnNwZWN0b3JXS1dlYlZp
ZXcgc2V0SW5zcGVjdG9yV0tXZWJWaWV3RGVsZWdhdGU6XSk6CisgICAgICAgICgtW1dLSW5zcGVj
dG9yV0tXZWJWaWV3IGJlY29tZUZpcnN0UmVzcG9uZGVyXSk6IEFkZGVkLgorICAgICAgICAoLVtX
S0luc3BlY3RvcldLV2ViVmlldyBfaGFuZGxlV2luZG93RGlkQmVjb21lS2V5Ol0pOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9s
bGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3
Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciBpbnNw
ZWN0b3JXS1dlYlZpZXdEaWRCZWNvbWVBY3RpdmU6XSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
SW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbToKKyAgICAgICAgKC1bV0tXZWJJ
bnNwZWN0b3JQcm94eU9iakNBZGFwdGVyIGluc3BlY3RvclZpZXdDb250cm9sbGVyRGlkQmVjb21l
QWN0aXZlOl0pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OmRp
ZEJlY29tZUFjdGl2ZSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL21h
Yy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbToKKyAgICAgICAgKC1bV0tSZW1vdGVXZWJJ
bnNwZWN0b3JQcm94eU9iakNBZGFwdGVyIGluc3BlY3RvcldLV2ViVmlld0RpZEJlY29tZUFjdGl2
ZTpdKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5Ojpk
aWRCZWNvbWVBY3RpdmUpOiBBZGRlZC4KKyAgICAgICAgQWRkIGEgbmV3IGRlbGVnYXRlIGNhbGwg
Y2hhaW4gdGhhdCBub3RpZmllcyB0aGUgaW5zcGVjdG9yIHByb3h5IGFib3V0IHdoZW4gdGhlIGlu
c3BlY3RvciB3ZWIKKyAgICAgICAgdmlldyBiZWNvbWVzIGFjdGl2ZSwgYXQgd2hpY2ggcG9pbnQg
dGhlIGluc3BlY3RvciBwcm94eSBjYW4gZ2V0IHRoZSBjdXJyZW50IGZpbmQgc3RyaW5nIGFuZAor
ICAgICAgICBzZW50IGl0IHRvIHRoZSBpbnNwZWN0b3IgcGFnZS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNw
ZWN0b3JVSTo6dXBkYXRlRmluZFN0cmluZyk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6dXBkYXRlRmluZFN0cmluZyk6IEFkZGVkLgorICAg
ICAgICBQYXNzIGFsb25nIHRoZSBuZXcgZmluZCBzdHJpbmcgdG8gdGhlIGZyb250ZW5kIHZpYSBg
SW5zcGVjdG9yRnJvbnRlbmRBUEkudXBkYXRlRmluZFN0cmluZ2AuCisKIDIwMjAtMDQtMjcgIERl
dmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IFN0b3JhZ2U6IGNhbiBzZWUgdGhpcmQtcGFydHkgY29va2llcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCmluZGV4IDkxMjBjMDcxNjU0NTg2
MmU4ODU2ZmE1MThkNzNmNjZmM2U4YzUyZmYuLjA2NDk3NTYwNmFiZjQxMDk4OTQ0NTM0YzFjZWM4
YmY4YjdkMmJmZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0Jhc2UvTWFpbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9CYXNlL01haW4uanMKQEAgLTI5MCw3ICsyOTAsNyBAQCBXSS5jb250ZW50TG9hZGVkID0gZnVu
Y3Rpb24oKQogCiAgICAgV0kuY2xlYXJLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdJLktleWJvYXJk
U2hvcnRjdXQoV0kuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5Db21tYW5kT3JDb250cm9sLCAi
SyIsIFdJLl9jbGVhcik7CiAKLSAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1
MTMxMD4gV2ViIEluc3BlY3RvcjogQ29tbWFuZC1FIHNob3VsZCBwcm9wYWdhdGUgdG8gb3RoZXIg
c2VhcmNoIGZpZWxkcyAoaW5jbHVkaW5nIHRoZSBzeXN0ZW0pCisgICAgV0kuZmluZFN0cmluZyA9
ICIiOwogICAgIFdJLnBvcHVsYXRlRmluZEtleWJvYXJkU2hvcnRjdXQgPSBuZXcgV0kuS2V5Ym9h
cmRTaG9ydGN1dChXSS5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1hbmRPckNvbnRyb2ws
ICJFIiwgV0kuX3BvcHVsYXRlRmluZCk7CiAgICAgV0kucG9wdWxhdGVGaW5kS2V5Ym9hcmRTaG9y
dGN1dC5pbXBsaWNpdGx5UHJldmVudHNEZWZhdWx0ID0gZmFsc2U7CiAgICAgV0kuZmluZE5leHRL
ZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdJLktleWJvYXJkU2hvcnRjdXQoV0kuS2V5Ym9hcmRTaG9y
dGN1dC5Nb2RpZmllci5Db21tYW5kT3JDb250cm9sLCAiRyIsIFdJLl9maW5kTmV4dCk7CkBAIC0x
MDQ1LDYgKzEwNDUsMjYgQEAgV0kudXBkYXRlVmlzaWJpbGl0eVN0YXRlID0gZnVuY3Rpb24odmlz
aWJsZSkKICAgICBXSS5ub3RpZmljYXRpb25zLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5O
b3RpZmljYXRpb24uVmlzaWJpbGl0eVN0YXRlRGlkQ2hhbmdlKTsKIH07CiAKK1dJLnVwZGF0ZUZp
bmRTdHJpbmcgPSBmdW5jdGlvbihmaW5kU3RyaW5nKQoreworICAgIGlmIChXSS5maW5kU3RyaW5n
ID09PSBmaW5kU3RyaW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBXSS5maW5kU3RyaW5nID0g
ZmluZFN0cmluZzsKKworICAgIGxldCBmb2N1c2VkQ29udGVudFZpZXcgPSBXSS5fZm9jdXNlZENv
bnRlbnRWaWV3KCk7CisgICAgaWYgKGZvY3VzZWRDb250ZW50VmlldyAmJiBmb2N1c2VkQ29udGVu
dFZpZXcuc3VwcG9ydHNDdXN0b21GaW5kQmFubmVyKSB7CisgICAgICAgIGZvY3VzZWRDb250ZW50
Vmlldy5oYW5kbGVGaW5kU3RyaW5nVXBkYXRlZCgpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgbGV0IGNvbnRlbnRCcm93c2VyID0gV0kuX2ZvY3VzZWRPclZpc2libGVDb250ZW50QnJv
d3NlcigpOworICAgIGlmIChjb250ZW50QnJvd3NlcikgeworICAgICAgICBjb250ZW50QnJvd3Nl
ci5oYW5kbGVGaW5kU3RyaW5nVXBkYXRlZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorfTsK
KwogV0kuaGFuZGxlUG9zc2libGVMaW5rQ2xpY2sgPSBmdW5jdGlvbihldmVudCwgZnJhbWUsIG9w
dGlvbnMgPSB7fSkKIHsKICAgICBsZXQgYW5jaG9yRWxlbWVudCA9IGV2ZW50LnRhcmdldC5jbG9z
ZXN0KCJhIik7CkBAIC0yNjEwLDU1ICsyNjMwLDUyIEBAIFdJLl9jbGVhciA9IGZ1bmN0aW9uKGV2
ZW50KQogV0kuX3BvcHVsYXRlRmluZCA9IGZ1bmN0aW9uKGV2ZW50KQogewogICAgIGxldCBmb2N1
c2VkQ29udGVudFZpZXcgPSBXSS5fZm9jdXNlZENvbnRlbnRWaWV3KCk7Ci0gICAgaWYgKCFmb2N1
c2VkQ29udGVudFZpZXcpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChmb2N1c2VkQ29udGVu
dFZpZXcuc3VwcG9ydHNDdXN0b21GaW5kQmFubmVyKSB7Ci0gICAgICAgIGZvY3VzZWRDb250ZW50
Vmlldy5oYW5kbGVQb3B1bGF0ZUZpbmRTaG9ydGN1dCgpOworICAgIGlmIChmb2N1c2VkQ29udGVu
dFZpZXcgJiYgZm9jdXNlZENvbnRlbnRWaWV3LnN1cHBvcnRzQ3VzdG9tRmluZEJhbm5lcikgewor
ICAgICAgICBsZXQgc3RyaW5nID0gZm9jdXNlZENvbnRlbnRWaWV3LmhhbmRsZVBvcHVsYXRlRmlu
ZFNob3J0Y3V0KCk7CisgICAgICAgIGlmIChzdHJpbmcpCisgICAgICAgICAgICBXSS5maW5kU3Ry
aW5nID0gc3RyaW5nOworICAgICAgICBmb2N1c2VkQ29udGVudFZpZXcuaGFuZGxlRmluZFN0cmlu
Z1VwZGF0ZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGxldCBjb250ZW50QnJv
d3NlciA9IFdJLl9mb2N1c2VkT3JWaXNpYmxlQ29udGVudEJyb3dzZXIoKTsKLSAgICBpZiAoIWNv
bnRlbnRCcm93c2VyKQorICAgIGlmIChjb250ZW50QnJvd3NlcikgeworICAgICAgICBsZXQgc3Ry
aW5nID0gY29udGVudEJyb3dzZXIuaGFuZGxlUG9wdWxhdGVGaW5kU2hvcnRjdXQoKTsKKyAgICAg
ICAgaWYgKHN0cmluZykKKyAgICAgICAgICAgIFdJLmZpbmRTdHJpbmcgPSBzdHJpbmc7CisgICAg
ICAgIGNvbnRlbnRCcm93c2VyLmhhbmRsZUZpbmRTdHJpbmdVcGRhdGVkKCk7CiAgICAgICAgIHJl
dHVybjsKLQotICAgIGNvbnRlbnRCcm93c2VyLmhhbmRsZVBvcHVsYXRlRmluZFNob3J0Y3V0KCk7
CisgICAgfQogfTsKIAogV0kuX2ZpbmROZXh0ID0gZnVuY3Rpb24oZXZlbnQpCiB7CiAgICAgbGV0
IGZvY3VzZWRDb250ZW50VmlldyA9IFdJLl9mb2N1c2VkQ29udGVudFZpZXcoKTsKLSAgICBpZiAo
IWZvY3VzZWRDb250ZW50VmlldykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGZvY3VzZWRD
b250ZW50Vmlldy5zdXBwb3J0c0N1c3RvbUZpbmRCYW5uZXIpIHsKKyAgICBpZiAoZm9jdXNlZENv
bnRlbnRWaWV3Py5zdXBwb3J0c0N1c3RvbUZpbmRCYW5uZXIpIHsKICAgICAgICAgZm9jdXNlZENv
bnRlbnRWaWV3LmhhbmRsZUZpbmROZXh0U2hvcnRjdXQoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIGxldCBjb250ZW50QnJvd3NlciA9IFdJLl9mb2N1c2VkT3JWaXNpYmxlQ29udGVu
dEJyb3dzZXIoKTsKLSAgICBpZiAoIWNvbnRlbnRCcm93c2VyKQorICAgIGlmIChjb250ZW50QnJv
d3NlcikgeworICAgICAgICBjb250ZW50QnJvd3Nlci5oYW5kbGVGaW5kTmV4dFNob3J0Y3V0KCk7
CiAgICAgICAgIHJldHVybjsKLQotICAgIGNvbnRlbnRCcm93c2VyLmhhbmRsZUZpbmROZXh0U2hv
cnRjdXQoKTsKKyAgICB9CiB9OwogCiBXSS5fZmluZFByZXZpb3VzID0gZnVuY3Rpb24oZXZlbnQp
CiB7CiAgICAgbGV0IGZvY3VzZWRDb250ZW50VmlldyA9IFdJLl9mb2N1c2VkQ29udGVudFZpZXco
KTsKLSAgICBpZiAoIWZvY3VzZWRDb250ZW50VmlldykKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
aWYgKGZvY3VzZWRDb250ZW50Vmlldy5zdXBwb3J0c0N1c3RvbUZpbmRCYW5uZXIpIHsKKyAgICBp
ZiAoZm9jdXNlZENvbnRlbnRWaWV3Py5zdXBwb3J0c0N1c3RvbUZpbmRCYW5uZXIpIHsKICAgICAg
ICAgZm9jdXNlZENvbnRlbnRWaWV3LmhhbmRsZUZpbmRQcmV2aW91c1Nob3J0Y3V0KCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBsZXQgY29udGVudEJyb3dzZXIgPSBXSS5fZm9jdXNl
ZE9yVmlzaWJsZUNvbnRlbnRCcm93c2VyKCk7Ci0gICAgaWYgKCFjb250ZW50QnJvd3NlcikKKyAg
ICBpZiAoY29udGVudEJyb3dzZXIpIHsKKyAgICAgICAgY29udGVudEJyb3dzZXIuaGFuZGxlRmlu
ZFByZXZpb3VzU2hvcnRjdXQoKTsKICAgICAgICAgcmV0dXJuOwotCi0gICAgY29udGVudEJyb3dz
ZXIuaGFuZGxlRmluZFByZXZpb3VzU2hvcnRjdXQoKTsKKyAgICB9CiB9OwogCiBXSS5fY29weSA9
IGZ1bmN0aW9uKGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qcwpp
bmRleCBkMmRiZTFkMWRkNDQ5MDNhMGYyZWYxOTc5NTQyNDEyNjNjZjBiY2YxLi5hMzRiMTA3OGVk
ZjgxNzc2OTU2NmQ1ZDU0YTdmNWEyNmZkZThiNmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0
b3JGcm9udGVuZEFQSS5qcwpAQCAtOTEsNiArOTEsMTEgQEAgSW5zcGVjdG9yRnJvbnRlbmRBUEkg
PSB7CiAgICAgICAgIFdJLnVwZGF0ZVZpc2liaWxpdHlTdGF0ZSh2aXNpYmxlKTsKICAgICB9LAog
CisgICAgdXBkYXRlRmluZFN0cmluZzogZnVuY3Rpb24oZmluZFN0cmluZykKKyAgICB7CisgICAg
ICAgIFdJLnVwZGF0ZUZpbmRTdHJpbmcoZmluZFN0cmluZyk7CisgICAgfSwKKwogICAgIHNldERp
YWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlOiBmdW5jdGlvbihhdmFpbGFibGUpCiAgICAgewogICAg
ICAgICBpZiAoV0kuZGlhZ25vc3RpY0NvbnRyb2xsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMKaW5kZXggNmUwNWQ5MmJhMTQ0OGM4MWI0
NzFmYmUyYTY0ZThjNTQ5NmM2YzFmNy4uZDNmMmQ1NzZmYjJlOTQzZjZlMjM2YzdmZDY4ODVjZTky
MDIwNWMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
VGVzdC9UZXN0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rl
c3QvVGVzdC5qcwpAQCAtMTc3LDYgKzE3Nyw3IEBAIFdJLnJlc29sdmVkTGF5b3V0RGlyZWN0aW9u
ID0gKCkgPT4geyByZXR1cm4gSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnVzZXJJbnRlcmZhY2VMCiBX
SS51cGRhdGVEb2NrZWRTdGF0ZSA9ICgpID0+IHt9OwogV0kudXBkYXRlRG9ja2luZ0F2YWlsYWJp
bGl0eSA9ICgpID0+IHt9OwogV0kudXBkYXRlVmlzaWJpbGl0eVN0YXRlID0gKCkgPT4ge307CitX
SS51cGRhdGVGaW5kU3RyaW5nID0gKCkgPT4ge307CiAKIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJr
aXQub3JnL2IvMjAxMTQ5PiBXZWIgSW5zcGVjdG9yOiByZXBsYWNlIGFsbCB1c2VzIG9mIGB3aW5k
b3cuKkFnZW50YCB3aXRoIGEgdGFyZ2V0LXNwZWNpZmljIGNhbGwKIChmdW5jdGlvbigpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRl
bnRCcm93c2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q29udGVudEJyb3dzZXIuanMKaW5kZXggMmEyODY3YTFkN2FmMGJlMTcwNzJkYzRmM2IzOTYyODMy
ZjZhNWEwNi4uNzVkOTc4ZDJlYmI3ZDVjYjVkYjk4ZTJlYjNkOGM3N2M3MWUyYzI2YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudEJy
b3dzZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q29udGVudEJyb3dzZXIuanMKQEAgLTI0NiwyOCArMjQ2LDUzIEBAIFdJLkNvbnRlbnRCcm93c2Vy
ID0gY2xhc3MgQ29udGVudEJyb3dzZXIgZXh0ZW5kcyBXSS5WaWV3CiAKICAgICAvLyBHbG9iYWwg
Q29udGVudEJyb3dzZXIgS2V5Ym9hcmRTaG9ydGN1dCBoYW5kbGVycwogCi0gICAgaGFuZGxlUG9w
dWxhdGVGaW5kU2hvcnRjdXQoKQorICAgIGhhbmRsZUZpbmRTdHJpbmdVcGRhdGVkKCkKICAgICB7
CisgICAgICAgIHRoaXMuX2ZpbmRCYW5uZXIuc2VhcmNoUXVlcnkgPSBXSS5maW5kU3RyaW5nOwor
CiAgICAgICAgIGxldCBjdXJyZW50Q29udGVudFZpZXcgPSB0aGlzLmN1cnJlbnRDb250ZW50Vmll
dzsKLSAgICAgICAgaWYgKCFjdXJyZW50Q29udGVudFZpZXcgfHwgIWN1cnJlbnRDb250ZW50Vmll
dy5zdXBwb3J0c1NlYXJjaCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgc2Vh
cmNoUXVlcnkgPSBjdXJyZW50Q29udGVudFZpZXcuc2VhcmNoUXVlcnlXaXRoU2VsZWN0aW9uKCk7
Ci0gICAgICAgIGlmICghc2VhcmNoUXVlcnkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgdGhpcy5fZmluZEJhbm5lci5zZWFyY2hRdWVyeSA9IHNlYXJjaFF1ZXJ5OwotCi0gICAgICAg
IGN1cnJlbnRDb250ZW50Vmlldy5wZXJmb3JtU2VhcmNoKHRoaXMuX2ZpbmRCYW5uZXIuc2VhcmNo
UXVlcnkpOworICAgICAgICBpZiAoY3VycmVudENvbnRlbnRWaWV3Py5zdXBwb3J0c1NlYXJjaCkK
KyAgICAgICAgICAgIGN1cnJlbnRDb250ZW50Vmlldy5wZXJmb3JtU2VhcmNoKHRoaXMuX2ZpbmRC
YW5uZXIuc2VhcmNoUXVlcnkpOwogICAgIH0KIAotICAgIGhhbmRsZUZpbmROZXh0U2hvcnRjdXQo
KQorICAgIGhhbmRsZVBvcHVsYXRlRmluZFNob3J0Y3V0KCkKICAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLmN1cnJlbnRDb250ZW50Vmlldz8uc2VhcmNoUXVlcnlXaXRoU2VsZWN0aW9uKCk7Cisg
ICAgfQorCisgICAgYXN5bmMgaGFuZGxlRmluZE5leHRTaG9ydGN1dCgpCisgICAgeworICAgICAg
ICBpZiAodGhpcy5fZmluZEJhbm5lci5zZWFyY2hRdWVyeSAhPT0gV0kuZmluZFN0cmluZykgewor
ICAgICAgICAgICAgbGV0IHNlYXJjaFF1ZXJ5ID0gV0kuZmluZFN0cmluZzsKKyAgICAgICAgICAg
IHRoaXMuX2ZpbmRCYW5uZXIuc2VhcmNoUXVlcnkgPSBzZWFyY2hRdWVyeTsKKworICAgICAgICAg
ICAgbGV0IGN1cnJlbnRDb250ZW50VmlldyA9IHRoaXMuY3VycmVudENvbnRlbnRWaWV3OworICAg
ICAgICAgICAgaWYgKGN1cnJlbnRDb250ZW50Vmlldz8uc3VwcG9ydHNTZWFyY2gpIHsKKyAgICAg
ICAgICAgICAgICBjdXJyZW50Q29udGVudFZpZXcucGVyZm9ybVNlYXJjaCh0aGlzLl9maW5kQmFu
bmVyLnNlYXJjaFF1ZXJ5KTsKKyAgICAgICAgICAgICAgICBhd2FpdCBjdXJyZW50Q29udGVudFZp
ZXcuYXdhaXRFdmVudChXSS5Db250ZW50Vmlldy5FdmVudC5OdW1iZXJPZlNlYXJjaFJlc3VsdHNE
aWRDaGFuZ2UpOworICAgICAgICAgICAgICAgIGlmICh0aGlzLl9maW5kQmFubmVyLnNlYXJjaFF1
ZXJ5ICE9PSBzZWFyY2hRdWVyeSB8fCB0aGlzLmN1cnJlbnRDb250ZW50VmlldyAhPT0gY3VycmVu
dENvbnRlbnRWaWV3KQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKwogICAgICAgICB0aGlzLmZpbmRCYW5uZXJSZXZlYWxOZXh0UmVzdWx0KHRo
aXMuX2ZpbmRCYW5uZXIpOwogICAgIH0KIAotICAgIGhhbmRsZUZpbmRQcmV2aW91c1Nob3J0Y3V0
KCkKKyAgICBhc3luYyBoYW5kbGVGaW5kUHJldmlvdXNTaG9ydGN1dCgpCiAgICAgeworICAgICAg
ICBpZiAodGhpcy5fZmluZEJhbm5lci5zZWFyY2hRdWVyeSAhPT0gV0kuZmluZFN0cmluZykgewor
ICAgICAgICAgICAgbGV0IHNlYXJjaFF1ZXJ5ID0gV0kuZmluZFN0cmluZzsKKyAgICAgICAgICAg
IHRoaXMuX2ZpbmRCYW5uZXIuc2VhcmNoUXVlcnkgPSBzZWFyY2hRdWVyeTsKKworICAgICAgICAg
ICAgbGV0IGN1cnJlbnRDb250ZW50VmlldyA9IHRoaXMuY3VycmVudENvbnRlbnRWaWV3OworICAg
ICAgICAgICAgaWYgKGN1cnJlbnRDb250ZW50Vmlldz8uc3VwcG9ydHNTZWFyY2gpIHsKKyAgICAg
ICAgICAgICAgICBjdXJyZW50Q29udGVudFZpZXcucGVyZm9ybVNlYXJjaCh0aGlzLl9maW5kQmFu
bmVyLnNlYXJjaFF1ZXJ5KTsKKyAgICAgICAgICAgICAgICBhd2FpdCBjdXJyZW50Q29udGVudFZp
ZXcuYXdhaXRFdmVudChXSS5Db250ZW50Vmlldy5FdmVudC5OdW1iZXJPZlNlYXJjaFJlc3VsdHNE
aWRDaGFuZ2UpOworICAgICAgICAgICAgICAgIGlmICh0aGlzLl9maW5kQmFubmVyLnNlYXJjaFF1
ZXJ5ICE9PSBzZWFyY2hRdWVyeSB8fCB0aGlzLmN1cnJlbnRDb250ZW50VmlldyAhPT0gY3VycmVu
dENvbnRlbnRWaWV3KQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKwogICAgICAgICB0aGlzLmZpbmRCYW5uZXJSZXZlYWxQcmV2aW91c1Jlc3Vs
dCh0aGlzLl9maW5kQmFubmVyKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMKaW5kZXgg
NjIyZWQ4MDRkYWQ0M2RjZGVkMzgwZjNkNzRkNjE1NDg0Mjc1OTU4OS4uMTUyYjhhMTAwMzBlMWJm
M2I0ZDk4YzY0NWMzM2RiM2ZkOWM4NjA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMKQEAgLTI5
NiwyNCArMjk2LDMxIEBAIFdJLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcg
ZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICB0aGlzLl9sb2dWaWV3Q29udHJvbGxlci5y
ZXF1ZXN0Q2xlYXJNZXNzYWdlcygpOwogICAgIH0KIAotICAgIGhhbmRsZVBvcHVsYXRlRmluZFNo
b3J0Y3V0KCkKKyAgICBoYW5kbGVGaW5kU3RyaW5nVXBkYXRlZCgpCiAgICAgewotICAgICAgICBs
ZXQgc2VhcmNoUXVlcnkgPSB0aGlzLnNlYXJjaFF1ZXJ5V2l0aFNlbGVjdGlvbigpOwotICAgICAg
ICBpZiAoIXNlYXJjaFF1ZXJ5KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMu
X2ZpbmRCYW5uZXIuc2VhcmNoUXVlcnkgPSBzZWFyY2hRdWVyeTsKKyAgICAgICAgdGhpcy5fZmlu
ZEJhbm5lci5zZWFyY2hRdWVyeSA9IFdJLmZpbmRTdHJpbmc7CiAKICAgICAgICAgdGhpcy5wZXJm
b3JtU2VhcmNoKHRoaXMuX2ZpbmRCYW5uZXIuc2VhcmNoUXVlcnkpOwogICAgIH0KIAorICAgIGhh
bmRsZVBvcHVsYXRlRmluZFNob3J0Y3V0KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLnNl
YXJjaFF1ZXJ5V2l0aFNlbGVjdGlvbigpOworICAgIH0KKwogICAgIGhhbmRsZUZpbmROZXh0U2hv
cnRjdXQoKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2ZpbmRCYW5uZXIuc2VhcmNoUXVlcnkg
IT09IFdJLmZpbmRTdHJpbmcpCisgICAgICAgICAgICB0aGlzLmhhbmRsZUZpbmRTdHJpbmdVcGRh
dGVkKCk7CisKICAgICAgICAgdGhpcy5maW5kQmFubmVyUmV2ZWFsTmV4dFJlc3VsdCh0aGlzLl9m
aW5kQmFubmVyKTsKICAgICB9CiAKICAgICBoYW5kbGVGaW5kUHJldmlvdXNTaG9ydGN1dCgpCiAg
ICAgeworICAgICAgICBpZiAodGhpcy5fZmluZEJhbm5lci5zZWFyY2hRdWVyeSAhPT0gV0kuZmlu
ZFN0cmluZykKKyAgICAgICAgICAgIHRoaXMuaGFuZGxlRmluZFN0cmluZ1VwZGF0ZWQoKTsKKwog
ICAgICAgICB0aGlzLmZpbmRCYW5uZXJSZXZlYWxQcmV2aW91c1Jlc3VsdCh0aGlzLl9maW5kQmFu
bmVyKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclByb3h5LmgKaW5kZXggMjEzNzU3NTcwOTU1MmRk
MzI1OWI1OTZhOWMyYjg2Y2E5MDczMjA4My4uZDRiOTc4NzgyODc0NjkwNTFlYmI3NTYwNWQxMGJk
ZjkzN2I3YzUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L1JlbW90ZVdlYkluc3BlY3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclByb3h5LmgKQEAgLTkwLDYgKzkwLDggQEAgcHVi
bGljOgogICAgIFdLV2ViVmlldyAqd2ViVmlldygpIGNvbnN0OwogCiAgICAgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBzaGVldFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3NoZWV0UmVjdDsgfQor
CisgICAgdm9pZCBkaWRCZWNvbWVBY3RpdmUoKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RL
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3Bl
Y3RvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yUHJveHkuaAppbmRleCA0NmUzNDI0OTM4MWJiOWIxYzdhMzZkY2EyYTgxM2YxOTNlN2YzZWNk
Li5lYjBiODFlYjgxNGY4NzNhMmFkYWIzMDI3ODFiZDlkOGJkYzcwMzM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuaApA
QCAtMTEzLDYgKzExMyw4IEBAIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIEluc3BlY3Rpb25UYXJn
ZXRUeXBlIHsgTG9jYWwsIFJlbW90ZSB9OwogICAgIHN0YXRpYyBSZXRhaW5QdHI8TlNXaW5kb3c+
IGNyZWF0ZUZyb250ZW5kV2luZG93KE5TUmVjdCBzYXZlZFdpbmRvd0ZyYW1lLCBJbnNwZWN0aW9u
VGFyZ2V0VHlwZSk7CiAKKyAgICB2b2lkIGRpZEJlY29tZUFjdGl2ZSgpOworCiAgICAgdm9pZCB1
cGRhdGVJbnNwZWN0b3JXaW5kb3dUaXRsZSgpIGNvbnN0OwogICAgIHZvaWQgaW5zcGVjdGVkVmll
d0ZyYW1lRGlkQ2hhbmdlKENHRmxvYXQgPSAwKTsKICAgICB2b2lkIHdpbmRvd0ZyYW1lRGlkQ2hh
bmdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFj
L1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL21hYy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbQppbmRleCA1MTRmZDRh
MDkyZDdjZmViN2JhMzY4OGI1ZmU0OTRiNTYwYjBkNDljLi5mMWIyYjUxMWQ3ZWM2ODhkYmVkMTQz
NDk0YTAzMzgxZWU4ZmQyZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvbWFjL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMu
bW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFJFTU9U
RV9JTlNQRUNUT1IpCiAKKyNpbXBvcnQgIkdsb2JhbEZpbmRJblBhZ2VTdGF0ZS5oIgogI2ltcG9y
dCAiUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiUmVtb3RlV2Vi
SW5zcGVjdG9yVUlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV0tGcmFtZUluZm8uaCIKQEAgLTY4LDYg
KzY5LDExIEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFJlbW90ZVdlYkluc3BlY3RvclByb3h5
OihXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAK
Ky0gKHZvaWQpaW5zcGVjdG9yV0tXZWJWaWV3RGlkQmVjb21lQWN0aXZlOihXS0luc3BlY3RvclZp
ZXdDb250cm9sbGVyICopaW5zcGVjdG9yVmlld0NvbnRyb2xsZXIKK3sKKyAgICBfaW5zcGVjdG9y
UHJveHktPmRpZEJlY29tZUFjdGl2ZSgpOworfQorCiAtICh2b2lkKWluc3BlY3RvclZpZXdDb250
cm9sbGVySW5zcGVjdG9yRGlkQ3Jhc2g6KFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgKilpbnNw
ZWN0b3JWaWV3Q29udHJvbGxlcgogewogICAgIF9pbnNwZWN0b3JQcm94eS0+Y2xvc2VGcm9tQ3Jh
c2goKTsKQEAgLTg4LDYgKzk0LDExIEBAIFdLV2ViVmlldyAqUmVtb3RlV2ViSW5zcGVjdG9yUHJv
eHk6OndlYlZpZXcoKSBjb25zdAogICAgIHJldHVybiBtX2luc3BlY3RvclZpZXcuZ2V0KCkud2Vi
VmlldzsKIH0KIAordm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6ZGlkQmVjb21lQWN0aXZl
KCkKK3sKKyAgICBtX2luc3BlY3RvclBhZ2UtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3Bl
Y3RvclVJOjpVcGRhdGVGaW5kU3RyaW5nKFdlYktpdDo6c3RyaW5nRm9yRmluZCgpKSk7Cit9CisK
IFdlYlBhZ2VQcm94eSogUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRlRnJv
bnRlbmRQYWdlQW5kV2luZG93KCkKIHsKICAgICBtX29iakNBZGFwdGVyID0gYWRvcHROUyhbW1dL
UmVtb3RlV2ViSW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlciBhbGxvY10gaW5pdFdpdGhSZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eTp0aGlzXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5o
CmluZGV4IDcwZGNlMTQyYjdhNDI0NTZlZjYyYjM5MDExYjgzNzgzYTU0MmRkMmUuLmJhYmQzMzI1
MDJhZGU5OWI2MWRjNDViOTc2OTk2NjA4YjdjOGI4MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3
Q29udHJvbGxlci5oCkBAIC01MSw2ICs1MSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAK
IEBwcm90b2NvbCBXS0luc3BlY3RvclZpZXdDb250cm9sbGVyRGVsZWdhdGUgPE5TT2JqZWN0Pgog
QG9wdGlvbmFsCistICh2b2lkKWluc3BlY3RvclZpZXdDb250cm9sbGVyRGlkQmVjb21lQWN0aXZl
OihXS0luc3BlY3RvclZpZXdDb250cm9sbGVyICopaW5zcGVjdG9yVmlld0NvbnRyb2xsZXI7CiAt
ICh2b2lkKWluc3BlY3RvclZpZXdDb250cm9sbGVySW5zcGVjdG9yRGlkQ3Jhc2g6KFdLSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIgKilpbnNwZWN0b3JWaWV3Q29udHJvbGxlcjsKIC0gKEJPT0wpaW5z
cGVjdG9yVmlld0NvbnRyb2xsZXJJbnNwZWN0b3JJc1VuZGVyVGVzdDooV0tJbnNwZWN0b3JWaWV3
Q29udHJvbGxlciAqKWluc3BlY3RvclZpZXdDb250cm9sbGVyOwogLSAodm9pZClpbnNwZWN0b3JW
aWV3Q29udHJvbGxlcjooV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3BlY3RvclZpZXdD
b250cm9sbGVyIHdpbGxNb3ZlVG9XaW5kb3c6KE5TV2luZG93ICopbmV3V2luZG93OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZp
ZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9X
S0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCmluZGV4IGE2MWYxZWQwYjgwNGY4N2FmMjdiYmU1
MmE5MTc1YWI1ODE3MTVmZGYuLmY0MDdhZTFiZjZiNzliZGVmMmU4MmM0NThhOTk2NGY4MDQ3ZDgw
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KQEAgLTIzNSw2ICsyMzUs
MTIgQEAgLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGkKIAogLy8gTUFSSzogV0tJbnNwZWN0b3JXS1dl
YlZpZXdEZWxlZ2F0ZSBtZXRob2RzCiAKKy0gKHZvaWQpaW5zcGVjdG9yV0tXZWJWaWV3RGlkQmVj
b21lQWN0aXZlOihXS0luc3BlY3RvcldLV2ViVmlldyAqKXdlYlZpZXcKK3sKKyAgICBpZiAoW19k
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGluc3BlY3RvclZpZXdDb250cm9s
bGVyRGlkQmVjb21lQWN0aXZlOildKQorICAgICAgICBbX2RlbGVnYXRlIGluc3BlY3RvclZpZXdD
b250cm9sbGVyRGlkQmVjb21lQWN0aXZlOnNlbGZdOworfQorCiAtICh2b2lkKWluc3BlY3RvcldL
V2ViVmlld1JlbG9hZDooV0tJbnNwZWN0b3JXS1dlYlZpZXcgKil3ZWJWaWV3CiB7CiAgICAgaWYg
KCFfaW5zcGVjdGVkUGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JXS1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JXS1dlYlZpZXcuaAppbmRleCBiMjE5MGIzODMz
OWUwOWFmMDA4ZGViMjUzODVjZjAyMDg4N2Y3ZTYzLi5kNzRlN2ZlMTQyMmIzY2RjZGEwOGM3NTI1
ZGM5MDRjZGQ3YTA5NjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvbWFjL1dLSW5zcGVjdG9yV0tXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvcldLV2ViVmlldy5oCkBAIC0zNSw2ICszNSw3
IEBACiAKIEBwcm90b2NvbCBXS0luc3BlY3RvcldLV2ViVmlld0RlbGVnYXRlCiBAcmVxdWlyZWQK
Ky0gKHZvaWQpaW5zcGVjdG9yV0tXZWJWaWV3RGlkQmVjb21lQWN0aXZlOihXS0luc3BlY3RvcldL
V2ViVmlldyAqKXdlYlZpZXc7CiAtICh2b2lkKWluc3BlY3RvcldLV2ViVmlld1JlbG9hZDooV0tJ
bnNwZWN0b3JXS1dlYlZpZXcgKil3ZWJWaWV3OwogLSAodm9pZClpbnNwZWN0b3JXS1dlYlZpZXdS
ZWxvYWRGcm9tT3JpZ2luOihXS0luc3BlY3RvcldLV2ViVmlldyAqKXdlYlZpZXc7CiAtICh2b2lk
KWluc3BlY3RvcldLV2ViVmlldzooV0tJbnNwZWN0b3JXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxN
b3ZlVG9XaW5kb3c6KE5TV2luZG93ICopbmV3V2luZG93OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvcldLV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JXS1dlYlZpZXcu
bW0KaW5kZXggNGJmZWY0YTAxYmFmMTNhZDRmZTcxZjhhOWQzZGM2NTQyNThhOWNiNi4uMDhkMTQ5
ZWVkYjQ2ODk2YjhmMzE0YTU0ZjA1ZmI1N2E2ZWFlMjRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvcldLV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yV0tXZWJW
aWV3Lm1tCkBAIC0zNSw2ICszNSwxMyBAQCBAaW1wbGVtZW50YXRpb24gV0tJbnNwZWN0b3JXS1dl
YlZpZXcgewogICAgIFdlYWtPYmpDUHRyPGlkIDxXS0luc3BlY3RvcldLV2ViVmlld0RlbGVnYXRl
Pj4gX2luc3BlY3RvcldLV2ViVmlld0RlbGVnYXRlOwogfQogCistICh2b2lkKWRlYWxsb2MKK3sK
KyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVy
OnNlbGYgbmFtZTpOU1dpbmRvd0RpZEJlY29tZUtleU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsK
KworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKwogLSAoTlNSZWN0KV9vcGFxdWVSZWN0Rm9yV2lu
ZG93TW92ZVdoZW5JblRpdGxlYmFyCiB7CiAgICAgLy8gVGhpcyBjb252aW5jZXMgQXBwS2l0IHRv
IGFsbG93IHdpbmRvdyBtb3ZlcyB3aGVuIGNsaWNraW5nIGFueXdoZXJlIGluIHRoZSB0aXRsZWJh
ciAodG9wIDIycHQpCkBAIC01NCw3ICs2MSwxMyBAQCAtIChpZCA8V0tJbnNwZWN0b3JXS1dlYlZp
ZXdEZWxlZ2F0ZT4paW5zcGVjdG9yV0tXZWJWaWV3RGVsZWdhdGUKIAogLSAodm9pZClzZXRJbnNw
ZWN0b3JXS1dlYlZpZXdEZWxlZ2F0ZTooaWQgPFdLSW5zcGVjdG9yV0tXZWJWaWV3RGVsZWdhdGU+
KWRlbGVnYXRlCiB7CisgICAgaWYgKCEhX2luc3BlY3RvcldLV2ViVmlld0RlbGVnYXRlKQorICAg
ICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVy
OnNlbGYgbmFtZTpOU1dpbmRvd0RpZEJlY29tZUtleU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsK
KwogICAgIF9pbnNwZWN0b3JXS1dlYlZpZXdEZWxlZ2F0ZSA9IGRlbGVnYXRlOworCisgICAgaWYg
KCEhX2luc3BlY3RvcldLV2ViVmlld0RlbGVnYXRlKQorICAgICAgICBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9y
KF9oYW5kbGVXaW5kb3dEaWRCZWNvbWVLZXk6KSBuYW1lOk5TV2luZG93RGlkQmVjb21lS2V5Tm90
aWZpY2F0aW9uIG9iamVjdDpuaWxdOwogfQogCiAtIChJQkFjdGlvbilyZWxvYWQ6KGlkKXNlbmRl
cgpAQCAtNzksNiArOTIsMTkgQEAgLSAodm9pZCl2aWV3RGlkTW92ZVRvV2luZG93CiAgICAgW3Nl
bGYuaW5zcGVjdG9yV0tXZWJWaWV3RGVsZWdhdGUgaW5zcGVjdG9yV0tXZWJWaWV3RGlkTW92ZVRv
V2luZG93OnNlbGZdOwogfQogCistIChCT09MKWJlY29tZUZpcnN0UmVzcG9uZGVyCit7CisgICAg
Qk9PTCByZXN1bHQgPSBbc3VwZXIgYmVjb21lRmlyc3RSZXNwb25kZXJdOworICAgIFtzZWxmLmlu
c3BlY3RvcldLV2ViVmlld0RlbGVnYXRlIGluc3BlY3RvcldLV2ViVmlld0RpZEJlY29tZUFjdGl2
ZTpzZWxmXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCistICh2b2lkKV9oYW5kbGVXaW5kb3dE
aWRCZWNvbWVLZXk6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgaWYgKG5v
dGlmaWNhdGlvbi5vYmplY3QgPT0gc2VsZi53aW5kb3cpCisgICAgICAgIFtzZWxmLmluc3BlY3Rv
cldLV2ViVmlld0RlbGVnYXRlIGluc3BlY3RvcldLV2ViVmlld0RpZEJlY29tZUFjdGl2ZTpzZWxm
XTsKK30KKwogQGVuZAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCmluZGV4IDZi
MzFkZTUxNWQ1OTdlNzYwYTQzMWRiMzM1YmE5MTU5NTRkZTk1YTguLmIzNjYzOTNhNGFiMDA0ODY3
NzMwMTVkYWNmOGIwNjE5NzNhZmM0MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQpAQCAt
MjgsNiArMjgsNyBAQAogCiAjaWYgUExBVEZPUk0oTUFDKQogCisjaW1wb3J0ICJHbG9iYWxGaW5k
SW5QYWdlU3RhdGUuaCIKICNpbXBvcnQgIldLSW5zcGVjdG9yUHJpdmF0ZU1hYy5oIgogI2ltcG9y
dCAiV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tWaWV3SW50ZXJuYWwu
aCIKQEAgLTE2Myw2ICsxNjQsMTIgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihO
U1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE4KIAogLy8gTUFS
SzogV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlckRlbGVnYXRlIG1ldGhvZHMKIAorLSAodm9pZClp
bnNwZWN0b3JWaWV3Q29udHJvbGxlckRpZEJlY29tZUFjdGl2ZTooV0tJbnNwZWN0b3JWaWV3Q29u
dHJvbGxlciAqKWluc3BlY3RvclZpZXdDb250cm9sbGVyCit7CisgICAgaWYgKF9pbnNwZWN0b3JQ
cm94eSkKKyAgICAgICAgX2luc3BlY3RvclByb3h5LT5kaWRCZWNvbWVBY3RpdmUoKTsKK30KKwog
LSAodm9pZClpbnNwZWN0b3JWaWV3Q29udHJvbGxlckluc3BlY3RvckRpZENyYXNoOihXS0luc3Bl
Y3RvclZpZXdDb250cm9sbGVyICopaW5zcGVjdG9yVmlld0NvbnRyb2xsZXIKIHsKICAgICBpZiAo
X2luc3BlY3RvclByb3h5KQpAQCAtMTkxLDYgKzE5OCwxMSBAQCBAZW5kCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCit2b2lkIFdlYkluc3BlY3RvclByb3h5
OjpkaWRCZWNvbWVBY3RpdmUoKQoreworICAgIG1faW5zcGVjdG9yUGFnZS0+c2VuZChNZXNzYWdl
czo6V2ViSW5zcGVjdG9yVUk6OlVwZGF0ZUZpbmRTdHJpbmcoV2ViS2l0OjpzdHJpbmdGb3JGaW5k
KCkpKTsKK30KKwogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6YXR0YWNobWVudFZpZXdEaWRDaGFu
Z2UoTlNWaWV3ICpvbGRWaWV3LCBOU1ZpZXcgKm5ld1ZpZXcpCiB7CiAgICAgW1tOU05vdGlmaWNh
dGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX29iakNBZGFwdGVyLmdl
dCgpIG5hbWU6TlNWaWV3RnJhbWVEaWRDaGFuZ2VOb3RpZmljYXRpb24gb2JqZWN0Om9sZFZpZXdd
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVX
ZWJJbnNwZWN0b3JVSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1Jl
bW90ZVdlYkluc3BlY3RvclVJLmNwcAppbmRleCA1ZmNjOWY4MjQ0ZDVjN2VlMjQ4OGVhZDc3YTdk
Nzc4MzY1OWExZTMxLi5jY2RhY2NhYjc0MTFmODc3NGU4NGY4MmI0YjdmNTEyMGE0Zjk3NTQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYklu
c3BlY3RvclVJLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1Jl
bW90ZVdlYkluc3BlY3RvclVJLmNwcApAQCAtNjcsNiArNjcsMTEgQEAgdm9pZCBSZW1vdGVXZWJJ
bnNwZWN0b3JVSTo6aW5pdGlhbGl6ZShEZWJ1Z2dhYmxlSW5mb0RhdGEmJiBkZWJ1Z2dhYmxlSW5m
bywgY29uc3QKICAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNl
dERvY2tpbmdVbmF2YWlsYWJsZSJfcywgdHJ1ZSk7CiB9CiAKK3ZvaWQgUmVtb3RlV2ViSW5zcGVj
dG9yVUk6OnVwZGF0ZUZpbmRTdHJpbmcoY29uc3QgU3RyaW5nJiBmaW5kU3RyaW5nKQoreworICAg
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgidXBkYXRlRmluZFN0cmlu
ZyJfcywgZmluZFN0cmluZyk7Cit9CisKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OmRpZFNh
dmUoY29uc3QgU3RyaW5nJiB1cmwpCiB7CiAgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlz
cGF0Y2hDb21tYW5kKCJzYXZlZFVSTCJfcywgdXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaAppbmRleCA2
NjdhNjU3MDQyYjk4NjllNmE2MWNhMjg0OGU3Yzc2ZTE5M2M3ZWVjLi5jYTRhZjcyNTc4ZTM0ODY4
ZDViZmYwYTViNWJlZTJmZDIxZjM0OGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oCkBAIC01MCw2ICs1
MCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIENhbGxlZCBieSBSZW1vdGVXZWJJbnNwZWN0b3JVSSBt
ZXNzYWdlcwogICAgIHZvaWQgaW5pdGlhbGl6ZShEZWJ1Z2dhYmxlSW5mb0RhdGEmJiwgY29uc3Qg
U3RyaW5nJiBiYWNrZW5kQ29tbWFuZHNVUkwpOworICAgIHZvaWQgdXBkYXRlRmluZFN0cmluZyhj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGRpZFNhdmUoY29uc3QgU3RyaW5nJiB1cmwpOwogICAg
IHZvaWQgZGlkQXBwZW5kKGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICB2b2lkIHNlbmRNZXNzYWdl
VG9Gcm9udGVuZChjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLm1lc3Nh
Z2VzLmluCmluZGV4IDJiZjdlNGM4NzhkYTFlMzQ4OWI5ODI0Y2NkNmQ4NjE4NDQ0ZWE5ZGUuLjNl
MjAyYzE2ZTdjNTE2ZjgzMDAxOWQ3ZGUxOWQwMzBjNWExZDM0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJ
bnNwZWN0b3JVSS5tZXNzYWdlcy5pbgpAQCAtMjMsNiArMjMsOCBAQAogbWVzc2FnZXMgLT4gUmVt
b3RlV2ViSW5zcGVjdG9yVUkgewogICAgIEluaXRpYWxpemUoc3RydWN0IFdlYktpdDo6RGVidWdn
YWJsZUluZm9EYXRhIGRlYnVnZ2FibGVJbmZvLCBTdHJpbmcgYmFja2VuZENvbW1hbmRzVVJMKQog
CisgICAgVXBkYXRlRmluZFN0cmluZyhTdHJpbmcgZmluZFN0cmluZykKKwogI2lmIEVOQUJMRShJ
TlNQRUNUT1JfVEVMRU1FVFJZKQogICAgIFNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlKGJv
b2wgYXZhaWxhYmxlKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IGM1YzViNzY5MzIwNzY2MzE2ZDA3
OTNiOWQ3NTBjNTdjOWQyNTdmMTMuLjNiM2FjOWY4OWE5NzMwNzdiNmIwY2YwMjc0NDg0ZjkxMDNl
OTEwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUkuY3BwCkBAIC0yNjksNiArMjY5LDExIEBAIHZvaWQgV2ViSW5zcGVjdG9y
VUk6OnNldElzVmlzaWJsZShib29sIHZpc2libGUpCiAgICAgbV9mcm9udGVuZEFQSURpc3BhdGNo
ZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXRJc1Zpc2libGUiX3MsIHZpc2libGUpOwogfQogCit2b2lk
IFdlYkluc3BlY3RvclVJOjp1cGRhdGVGaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYgZmluZFN0cmlu
ZykKK3sKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInVwZGF0
ZUZpbmRTdHJpbmciX3MsIGZpbmRTdHJpbmcpOworfQorCiB2b2lkIFdlYkluc3BlY3RvclVJOjpj
aGFuZ2VBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCBoZWlnaHQpCiB7CiAgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6V2ViSW5zcGVjdG9yUHJveHk6OlNldEF0dGFjaGVkV2luZG93SGVpZ2h0KGhlaWdodCksIG1f
aW5zcGVjdGVkUGFnZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oCmluZGV4IGM2Yjg3MTU4YTEzOWYyYTVkMmQ4
ZjcxM2Q4OTBhNmJjNjk0Njc4OGEuLjc3OTAyN2E2MGFhNDFjYzZlODMzYzIyODcyMzAxMjEzNzEz
YjlhOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yVUkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvclVJLmgKQEAgLTc5LDYgKzc5LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRJ
c1Zpc2libGUoYm9vbCk7CiAKKyAgICB2b2lkIHVwZGF0ZUZpbmRTdHJpbmcoY29uc3QgU3RyaW5n
Jik7CisKICAgICB2b2lkIGRpZFNhdmUoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZvaWQgZGlk
QXBwZW5kKGNvbnN0IFN0cmluZyYgdXJsKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW4KaW5k
ZXggOTRmMTM4NWQ0ODk1NTYyNjliYWZhNTdjMDc1ZWI0ZGFmMTNlMTYzNS4uODhhMjBmODEwZjZm
ZGFlNTI3N2ZjNTU4YzkxZjVmZGNiYTllYTQwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLm1lc3NhZ2VzLmlu
CkBAIC0zMCw2ICszMCw3IEBAIG1lc3NhZ2VzIC0+IFdlYkluc3BlY3RvclVJIHsKICAgICBEZXRh
Y2hlZCgpCiAgICAgU2V0RG9ja2luZ1VuYXZhaWxhYmxlKGJvb2wgdW5hdmFpbGFibGUpCiAgICAg
U2V0SXNWaXNpYmxlKGJvb2wgdmlzaWJsZSkKKyAgICBVcGRhdGVGaW5kU3RyaW5nKFN0cmluZyBm
aW5kU3RyaW5nKQogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9URUxFTUVUUlkpCiAgICAgU2V0RGlh
Z25vc3RpY0xvZ2dpbmdBdmFpbGFibGUoYm9vbCBhdmFpbGFibGUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>