<?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>179413</bug_id>
          
          <creation_ts>2017-11-07 23:35:16 -0800</creation_ts>
          <short_desc>Make WKFullScreenWindowController more robust against modification by the embedding app</short_desc>
          <delta_ts>2018-05-23 06:47:18 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Jones">jeremyj-wk</reporter>
          <assigned_to name="Jeremy Jones">jeremyj-wk</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jer.noble</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1369352</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2017-11-07 23:35:16 -0800</bug_when>
    <thetext>Make WKFullScreenWidnowController more robust against modification by the embedding app.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369355</commentid>
    <comment_count>1</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2017-11-07 23:48:02 -0800</bug_when>
    <thetext>rdar://problem/35408061</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369359</commentid>
    <comment_count>2</comment_count>
      <attachid>326310</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2017-11-07 23:52:13 -0800</bug_when>
    <thetext>Created attachment 326310
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369457</commentid>
    <comment_count>3</comment_count>
      <attachid>326310</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-11-08 09:37:56 -0800</bug_when>
    <thetext>Comment on attachment 326310
Patch

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

r=me if you fix the storage leak, but also please consider my other comments and make sure you do substantial testing

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:6224
&gt; +@implementation WKWebView (FullscreenMode)

Why put this in a separate category rather than in the main WKWebView implementation? Seems like it would be easy to accidentally write two different overrides of this method, but if in the main implementation we would get a compile time error if we made that mistake. I suppose there might be a benefit to using a category if we wanted it in a separate source file, but here it’s in the main source file with an #if.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:6226
&gt; +- (void)removeFromSuperview {

Brace goes on a separate line in WebKit coding style.

&gt; Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.mm:186
&gt; -    [self setView:adoptNS([[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]).get()];
&gt; +    [self setView:adoptNS([[UIView alloc] init]).get()];

Code like this has been dangerous in the past; objects with zero frames ended up in strange state later after resizing. How much have you tested with this change?

&gt; Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.mm:417
&gt; +    [[_window rootViewController] setView:[[UIView alloc] initWithFrame:[_window bounds]]];

Missing adoptNS here. I think that means we will have a storage leak.

&gt; Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.mm:420
&gt; +    [_window setWindowLevel:UIWindowLevelNormal-1];

Missing spaces around the &quot;-&quot; here.

&gt; Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.mm:460
&gt; +            [protectedSelf _manager]-&gt;willEnterFullScreen();

Is there a guarantee that _manager will be non-null later when this is called back? By then the page could be null.

Cleaner way to write protectedSelf without stating the long type:

    protectedSelf = retainPtr(self)

&gt; Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.mm:569
&gt;          [_webView _page]-&gt;setSuppressVisibilityUpdates(false);

Is there a guarantee that _page will be non-null later when this is called back?

&gt; Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.mm:596
&gt; +- (void)webViewDidRemoveFromSuperviewWhileInFullscreen {

Brace goes on next line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369458</commentid>
    <comment_count>4</comment_count>
      <attachid>326310</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-11-08 09:38:12 -0800</bug_when>
    <thetext>Comment on attachment 326310
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.mm:577
&gt; +    if ([self isFullScreen]) {

I think this would read better with early exit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369567</commentid>
    <comment_count>5</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2017-11-08 13:45:23 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 326310 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=326310&amp;action=review
&gt; 
&gt; r=me if you fix the storage leak, but also please consider my other comments
&gt; and make sure you do substantial testing
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:6224
&gt; &gt; +@implementation WKWebView (FullscreenMode)
&gt; 
&gt; Why put this in a separate category rather than in the main WKWebView
&gt; implementation? Seems like it would be easy to accidentally write two
&gt; different overrides of this method, but if in the main implementation we
&gt; would get a compile time error if we made that mistake. I suppose there
&gt; might be a benefit to using a category if we wanted it in a separate source
&gt; file, but here it’s in the main source file with an #if.

Done. I put it with the other iOS specific methods.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:6226
&gt; &gt; +- (void)removeFromSuperview {
&gt; 
&gt; Brace goes on a separate line in WebKit coding style.

Done.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.mm:186
&gt; &gt; -    [self setView:adoptNS([[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]).get()];
&gt; &gt; +    [self setView:adoptNS([[UIView alloc] init]).get()];
&gt; 
&gt; Code like this has been dangerous in the past; objects with zero frames
&gt; ended up in strange state later after resizing. How much have you tested
&gt; with this change?

This isn&apos;t a problem for this particular case because of the auto layout constraints of the children of this view.

I&apos;ll change this to use an arbitrary initial size to anticipate any future, more complicated layout.

initWithFrame:CGRectMake(0, 0, 100, 100)

&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.mm:417
&gt; &gt; +    [[_window rootViewController] setView:[[UIView alloc] initWithFrame:[_window bounds]]];
&gt; 
&gt; Missing adoptNS here. I think that means we will have a storage leak.

Fixed this and audited for any other uses of +alloc without adoptNS. None found.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.mm:420
&gt; &gt; +    [_window setWindowLevel:UIWindowLevelNormal-1];
&gt; 
&gt; Missing spaces around the &quot;-&quot; here.

Done.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.mm:460
&gt; &gt; +            [protectedSelf _manager]-&gt;willEnterFullScreen();
&gt; 
&gt; Is there a guarantee that _manager will be non-null later when this is
&gt; called back? By then the page could be null.

No. I&apos;ve added a check and an early return to guard against teardown during async tasks. I audited and fixed five instances of this.

&gt; 
&gt; Cleaner way to write protectedSelf without stating the long type:
&gt; 
&gt;     protectedSelf = retainPtr(self)

Fixed in two places.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.mm:569
&gt; &gt;          [_webView _page]-&gt;setSuppressVisibilityUpdates(false);
&gt; 
&gt; Is there a guarantee that _page will be non-null later when this is called
&gt; back?

No. Fixed. See previous comment.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.mm:596
&gt; &gt; +- (void)webViewDidRemoveFromSuperviewWhileInFullscreen {
&gt; 
&gt; Brace goes on next line.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369570</commentid>
    <comment_count>6</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2017-11-08 13:45:58 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 326310 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=326310&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.mm:577
&gt; &gt; +    if ([self isFullScreen]) {
&gt; 
&gt; I think this would read better with early exit.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369584</commentid>
    <comment_count>7</comment_count>
      <attachid>326365</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2017-11-08 13:54:56 -0800</bug_when>
    <thetext>Created attachment 326365
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369637</commentid>
    <comment_count>8</comment_count>
      <attachid>326386</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2017-11-08 14:56:19 -0800</bug_when>
    <thetext>Created attachment 326386
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369699</commentid>
    <comment_count>9</comment_count>
      <attachid>326386</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-08 16:45:50 -0800</bug_when>
    <thetext>Comment on attachment 326386
Patch for landing.

Clearing flags on attachment: 326386

Committed r224608: &lt;https://trac.webkit.org/changeset/224608&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426557</commentid>
    <comment_count>10</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-05-23 06:47:18 -0700</bug_when>
    <thetext>Closing bug since a patch landed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326310</attachid>
            <date>2017-11-07 23:52:13 -0800</date>
            <delta_ts>2017-11-08 09:37:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179413-20171107235212.patch</filename>
            <type>text/plain</type>
            <size>14010</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0NTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRkNDEwZjIyODUzMGMyOTYy
MGNjNWIzNzlmODY4MThmNjU4ZWE0OTguLmIyZjg1MGVkMTgzNTJiZjJkZDliMjIzYjExM2M4MGM2
NTRkMmZjN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDEgQEAKIDIwMTctMTEtMDcgIEplcmVteSBK
b25lcyAgPGplcmVteWpAYXBwbGUuY29tPgogCisgICAgICAgIE1ha2UgV0tGdWxsU2NyZWVuV2lk
bm93Q29udHJvbGxlciBtb3JlIHJvYnVzdCBhZ2FpbnN0IG1vZGlmaWNhdGlvbiBieSB0aGUgZW1i
ZWRkaW5nIGFwcC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3OTQxMworICAgICAgICByZGFyOi8vcHJvYmxlbS8zNTQwODA2MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXNlbnQgZnVsbHNjcmVlbiBV
Vmlld0NvbnRyb2xsZXIgaW4gYSBzZXBhcmF0ZSBVSVdpbmRvdyB0byBwcmV2ZW50IGludGVyYWN0
aW9uIHdpdGggdGhlIGVtYmVkZGluZyBhcHAncworICAgICAgICBVSVZpZXdDb250cm9sbGVyIGhp
ZXJhcmNoeS4KKworICAgICAgICBJbW1lZGlhdGVseSB0ZWFyIGRvd24gdGhlIGZ1bGxzY3JlZW4g
aW50ZXJmYWNlIGlmIHRoZSBlbWJlZGRpbmcgYXBwIHJlbW92ZXMgdGhlIFdLV2ViVmlldyBmcm9t
IHRoZSBmdWxsc2NyZWVuIHdpbmRvdy4KKyAgICAgICAgVGhpcyBwcmV2ZW50cyB0aGUgZnVsbHNj
cmVlbiBpbnRlcmZhY2UgZnJvbSBnZXR0aW5nIGludG8gYW4gaW52YWxpZCBzdGF0ZS4KKworICAg
ICAgICBQcmVzZXJ2ZSBzY3JvbGxWaWV3Lnpvb21TY2FsZSBiZWNhdXNlIGl0IGlzIG5vdCBlZmZl
Y3RpdmVseSBwcmVzZXJ2ZWQgYnkgdGhlIG1vcmUgaW5kaXJlY3QgX3ZpZXdTY2FsZS4KKworICAg
ICAgICBVc2UgYSBjdXN0b20gcm9vdCB2aWV3IGNvbnRyb2xsZXIgdG8gYWxsb3cgaGlkaW5nIG9m
IHRoZSBzdGF0dXMgYmFyLgorCisgICAgICAgIFJlbW92ZSB0aGUgbm8tbG9uZ2VyLW5lY2Vzc2Fy
eSBkaXNwYXRjaF9hZnRlciBjYWxscyBkdXJpbmcgZW50ZXIgYW5kIGV4aXQgZnVsbHNjcmVlbi4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAo
LVtXS1dlYlZpZXcgcmVtb3ZlRnJvbVN1cGVydmlld10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdlYktp
dDo6V0tXZWJWaWV3U3RhdGU6OmFwcGx5VG8pOgorICAgICAgICAoV2ViS2l0OjpXS1dlYlZpZXdT
dGF0ZTo6c3RvcmUpOgorICAgICAgICAoLVtfV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgbG9h
ZFZpZXddKToKKyAgICAgICAgKC1bX1dLRnVsbHNjcmVlblJvb3RWaWV3Q29udHJvbGxlciBwcmVm
ZXJzU3RhdHVzQmFySGlkZGVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIgZW50ZXJGdWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIgYmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6
XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgY29tcGxldGVkRXhp
dEZ1bGxTY3JlZW5dKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBl
eGl0RnVsbHNjcmVlbkltbWVkaWF0ZWx5XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIgY2xvc2VdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJv
bGxlciB3ZWJWaWV3RGlkUmVtb3ZlRnJvbVN1cGVydmlld1doaWxlSW5GdWxsc2NyZWVuXSk6Cisg
ICAgICAgICgtW19XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciB2aWV3RGlkRGlzYXBwZWFyOl0p
OiBEZWxldGVkLgorCisyMDE3LTExLTA3ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNv
bT4KKwogICAgICAgICBBZGQgZG93bmNhc3Qgc3VwcG9ydCBmb3IgRnVsbHNjcmVlbkNsaWVudC4K
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODgyNAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRl
eCBkYzQzYWY5MzU4Njg0ZTkwYTM4NzQ4ZWM2NDk1OWMwNTJlMzc0NTE2Li4xMjY3YTJiNWJiMzIy
ZmRkNTVmNGVmM2ViZmYyYWUyNThkMWNmMzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTYyMjAsNiArNjIyMCwxOSBAQCAtICh2b2lk
KV9zZXRGb3JtRGVsZWdhdGU6KGlkIDxfV0tJbnB1dERlbGVnYXRlPilmb3JtRGVsZWdhdGUKIAog
QGVuZAogCisjaWYgUExBVEZPUk0oSU9TKQorQGltcGxlbWVudGF0aW9uIFdLV2ViVmlldyAoRnVs
bHNjcmVlbk1vZGUpCisKKy0gKHZvaWQpcmVtb3ZlRnJvbVN1cGVydmlldyB7CisgICAgW3N1cGVy
IHJlbW92ZUZyb21TdXBlcnZpZXddOworCisgICAgaWYgKFtfZnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIgaXNGdWxsU2NyZWVuXSkKKyAgICAgICAgW19mdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
ciB3ZWJWaWV3RGlkUmVtb3ZlRnJvbVN1cGVydmlld1doaWxlSW5GdWxsc2NyZWVuXTsKK30KKwor
QGVuZAorI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKKwogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tXZWJWaWV3QWRkaXRpb25zQWZ0ZXIubW0+
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oCmluZGV4IDQzOWUzNWFjNmFkZmUxNjRj
MjE0YjQ3MDI1ZDA1OTRkNTljY2RiYjkuLjUzMDQ3OTljZDU3MTUzM2MzOWRkYjdkMTI4ZDY2NzQ4
ZDhjZDk5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MuaApAQCAtNTIsNiArNTIsNyBAQCBj
bGFzcyBJbnRSZWN0OwogLSAodm9pZCljbG9zZTsKIC0gKHZvaWQpYmVnYW5FbnRlckZ1bGxTY3Jl
ZW5XaXRoSW5pdGlhbEZyYW1lOihDR1JlY3QpaW5pdGlhbEZyYW1lIGZpbmFsRnJhbWU6KENHUmVj
dClmaW5hbEZyYW1lOwogLSAodm9pZCliZWdhbkV4aXRGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFt
ZTooQ0dSZWN0KWluaXRpYWxGcmFtZSBmaW5hbEZyYW1lOihDR1JlY3QpZmluYWxGcmFtZTsKKy0g
KHZvaWQpd2ViVmlld0RpZFJlbW92ZUZyb21TdXBlcnZpZXdXaGlsZUluRnVsbHNjcmVlbjsKIAog
QGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tCmluZGV4IGFkN2YyNjE4YjgwOWVlYTI1
MWI3MzIzZjJjYWVjMzhmYTliYjJhYzkuLjE2ZDBkNTk5Y2Q4MzUwNmVlNzJlOWJlN2M1MDU4ZTFm
N2ZiZjgxNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tCkBAIC03MCwxMSArNzAsMTIg
QEAgc3RydWN0IFdLV2ViVmlld1N0YXRlIHsKICAgICBmbG9hdCBfc2F2ZWRUb3BDb250ZW50SW5z
ZXQgPSAwLjA7CiAgICAgQ0dGbG9hdCBfc2F2ZWRQYWdlU2NhbGUgPSAxOwogICAgIENHRmxvYXQg
X3NhdmVkVmlld1NjYWxlID0gMS4wOworICAgIENHRmxvYXQgX3NhdmVkWm9vbVNjYWxlID0gMTsK
ICAgICBVSUVkZ2VJbnNldHMgX3NhdmVkRWRnZUluc2V0ID0gVUlFZGdlSW5zZXRzWmVybzsKICAg
ICBVSUVkZ2VJbnNldHMgX3NhdmVkT2JzY3VyZWRJbnNldHMgPSBVSUVkZ2VJbnNldHNaZXJvOwog
ICAgIFVJRWRnZUluc2V0cyBfc2F2ZWRTY3JvbGxJbmRpY2F0b3JJbnNldHMgPSBVSUVkZ2VJbnNl
dHNaZXJvOwogICAgIENHUG9pbnQgX3NhdmVkQ29udGVudE9mZnNldCA9IENHUG9pbnRaZXJvOwot
ICAgIAorCiAgICAgdm9pZCBhcHBseVRvKFdLV2ViVmlldyogd2ViVmlldykKICAgICB7CiAgICAg
ICAgIFt3ZWJWaWV3IF9zZXRQYWdlU2NhbGU6X3NhdmVkUGFnZVNjYWxlIHdpdGhPcmlnaW46Q0dQ
b2ludE1ha2UoMCwgMCldOwpAQCAtODQsNiArODUsNyBAQCBzdHJ1Y3QgV0tXZWJWaWV3U3RhdGUg
ewogICAgICAgICBbW3dlYlZpZXcgc2Nyb2xsVmlld10gc2V0U2Nyb2xsSW5kaWNhdG9ySW5zZXRz
Ol9zYXZlZFNjcm9sbEluZGljYXRvckluc2V0c107CiAgICAgICAgIFt3ZWJWaWV3IF9wYWdlXS0+
c2V0VG9wQ29udGVudEluc2V0KF9zYXZlZFRvcENvbnRlbnRJbnNldCk7CiAgICAgICAgIFt3ZWJW
aWV3IF9zZXRWaWV3U2NhbGU6X3NhdmVkVmlld1NjYWxlXTsKKyAgICAgICAgW1t3ZWJWaWV3IHNj
cm9sbFZpZXddIHNldFpvb21TY2FsZTpfc2F2ZWRab29tU2NhbGVdOwogICAgIH0KICAgICAKICAg
ICB2b2lkIHN0b3JlKFdLV2ViVmlldyogd2ViVmlldykKQEAgLTk1LDYgKzk3LDcgQEAgc3RydWN0
IFdLV2ViVmlld1N0YXRlIHsKICAgICAgICAgX3NhdmVkU2Nyb2xsSW5kaWNhdG9ySW5zZXRzID0g
W1t3ZWJWaWV3IHNjcm9sbFZpZXddIHNjcm9sbEluZGljYXRvckluc2V0c107CiAgICAgICAgIF9z
YXZlZFRvcENvbnRlbnRJbnNldCA9IFt3ZWJWaWV3IF9wYWdlXS0+dG9wQ29udGVudEluc2V0KCk7
CiAgICAgICAgIF9zYXZlZFZpZXdTY2FsZSA9IFt3ZWJWaWV3IF92aWV3U2NhbGVdOworICAgICAg
ICBfc2F2ZWRab29tU2NhbGUgPSBbW3dlYlZpZXcgc2Nyb2xsVmlld10gem9vbVNjYWxlXTsKICAg
ICB9CiB9OwogICAgIApAQCAtMTgwLDcgKzE4Myw3IEBAIC0gKFVJVmlzdWFsRWZmZWN0VmlldyAq
KXZpc3VhbEVmZmVjdFZpZXdXaXRoRnJhbWU6KENHUmVjdClmcmFtZQogCiAtICh2b2lkKWxvYWRW
aWV3CiB7Ci0gICAgW3NlbGYgc2V0VmlldzphZG9wdE5TKFtbVUlWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOltbVUlTY3JlZW4gbWFpblNjcmVlbl0gYm91bmRzXV0pLmdldCgpXTsKKyAgICBbc2Vs
ZiBzZXRWaWV3OmFkb3B0TlMoW1tVSVZpZXcgYWxsb2NdIGluaXRdKS5nZXQoKV07CiAgICAgW1tz
ZWxmIHZpZXddIHNldEF1dG9yZXNpemluZ01hc2s6KFVJVmlld0F1dG9yZXNpemluZ0ZsZXhpYmxl
V2lkdGggfCBVSVZpZXdBdXRvcmVzaXppbmdGbGV4aWJsZUhlaWdodCldOwogCiAgICAgQ0dSZWN0
IGRvbmVCdXR0b25SZWN0ID0gQ0dSZWN0TWFrZSgxMCwgMjAsIDYwLCA0Nyk7CkBAIC0yMjAsMTAg
KzIyMyw2IEBAIC0gKHZvaWQpdmlld1dpbGxBcHBlYXI6KEJPT0wpYW5pbWF0ZWQKICAgICBbW3Nl
bGYgdmlld10gaW5zZXJ0U3Vidmlldzpbc2VsZiBjb250ZW50Vmlld10gYXRJbmRleDowXTsKIH0K
IAotLSAodm9pZCl2aWV3RGlkRGlzYXBwZWFyOihCT09MKWFuaW1hdGVkCi17Ci19Ci0KIC0gKHZv
aWQpY2FuY2VsQWN0aW9uOihpZClzZW5kZXIKIHsKICAgICBbW3NlbGYgdGFyZ2V0XSBwZXJmb3Jt
U2VsZWN0b3I6W3NlbGYgYWN0aW9uXV07CkBAIC0yNzUsNiArMjc0LDE3IEBAIC0gKEJPT0wpZ2Vz
dHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBz
aG91bGRSZWNvZ25pCiAKIEBlbmQKIAorQGludGVyZmFjZSBfV0tGdWxsc2NyZWVuUm9vdFZpZXdD
b250cm9sbGVyIDogVUlWaWV3Q29udHJvbGxlcgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gX1dL
RnVsbHNjcmVlblJvb3RWaWV3Q29udHJvbGxlciA6IFVJVmlld0NvbnRyb2xsZXIKKworLSAoQk9P
TClwcmVmZXJzU3RhdHVzQmFySGlkZGVuCit7CisgICAgcmV0dXJuIFlFUzsKK30KKworQGVuZAog
CiBAaW50ZXJmYWNlIFdLRnVsbHNjcmVlbkFuaW1hdGlvbkNvbnRyb2xsZXIgOiBOU09iamVjdCA8
VUlWaWV3Q29udHJvbGxlckFuaW1hdGVkVHJhbnNpdGlvbmluZz4KIEBwcm9wZXJ0eSAocmV0YWlu
LCBub25hdG9taWMpIFVJVmlld0NvbnRyb2xsZXIqIHZpZXdDb250cm9sbGVyOwpAQCAtMzQ3LDYg
KzM1Nyw4IEBAIEBpbXBsZW1lbnRhdGlvbiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIHsK
ICAgICBGdWxsU2NyZWVuU3RhdGUgX2Z1bGxTY3JlZW5TdGF0ZTsKICAgICBXS1dlYlZpZXdTdGF0
ZSBfdmlld1N0YXRlOwogCisgICAgUmV0YWluUHRyPFVJV2luZG93PiBfd2luZG93OworCiAgICAg
UmVmUHRyPFdlYktpdDo6Vm9pZENhbGxiYWNrPiBfcmVwYWludENhbGxiYWNrOwogICAgIFJldGFp
blB0cjxVSVZpZXdDb250cm9sbGVyPiBfdmlld0NvbnRyb2xsZXJGb3JQcmVzZW50YXRpb247CiAg
ICAgUmV0YWluUHRyPF9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlcj4gX2Z1bGxzY3JlZW5WaWV3
Q29udHJvbGxlcjsKQEAgLTM5OCwxMyArNDEwLDIzIEBAIC0gKHZvaWQpZW50ZXJGdWxsU2NyZWVu
CiAgICAgICAgIHJldHVybjsKIAogICAgIF9mdWxsU2NyZWVuU3RhdGUgPSBXYWl0aW5nVG9FbnRl
ckZ1bGxTY3JlZW47Ci0gICAgCi0gICAgX3ZpZXdDb250cm9sbGVyRm9yUHJlc2VudGF0aW9uID0g
W1VJVmlld0NvbnRyb2xsZXIgX3ZpZXdDb250cm9sbGVyRm9yRnVsbFNjcmVlblByZXNlbnRhdGlv
bkZyb21WaWV3Ol93ZWJWaWV3XTsKKworICAgIF93aW5kb3cgPSBhZG9wdE5TKFtbVUlXaW5kb3cg
YWxsb2NdIGluaXRdKTsKKyAgICBbX3dpbmRvdyBzZXRCYWNrZ3JvdW5kQ29sb3I6W1VJQ29sb3Ig
Y2xlYXJDb2xvcl1dOworICAgIFtfd2luZG93IHNldFJvb3RWaWV3Q29udHJvbGxlcjphZG9wdE5T
KFtbX1dLRnVsbHNjcmVlblJvb3RWaWV3Q29udHJvbGxlciBhbGxvY10gaW5pdF0pLmdldCgpXTsK
KyAgICBbW193aW5kb3cgcm9vdFZpZXdDb250cm9sbGVyXSBzZXRWaWV3OltbVUlWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOltfd2luZG93IGJvdW5kc11dXTsKKyAgICBbW1tfd2luZG93IHJvb3RW
aWV3Q29udHJvbGxlcl0gdmlld10gc2V0QmFja2dyb3VuZENvbG9yOltVSUNvbG9yIGNsZWFyQ29s
b3JdXTsKKyAgICBbW1tfd2luZG93IHJvb3RWaWV3Q29udHJvbGxlcl0gdmlld10gc2V0QXV0b3Jl
c2l6aW5nTWFzazooVUlWaWV3QXV0b3Jlc2l6aW5nRmxleGlibGVXaWR0aCB8IFVJVmlld0F1dG9y
ZXNpemluZ0ZsZXhpYmxlSGVpZ2h0KV07CisgICAgW193aW5kb3cgc2V0V2luZG93TGV2ZWw6VUlX
aW5kb3dMZXZlbE5vcm1hbC0xXTsKKyAgICBbX3dpbmRvdyBzZXRIaWRkZW46Tk9dOworICAgIF92
aWV3Q29udHJvbGxlckZvclByZXNlbnRhdGlvbiA9IFtfd2luZG93IHJvb3RWaWV3Q29udHJvbGxl
cl07CisKICAgICBfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyID0gYWRvcHROUyhbW19XS0Z1bGxT
Y3JlZW5WaWV3Q29udHJvbGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtfZnVsbHNjcmVlblZpZXdD
b250cm9sbGVyIHNldFRyYW5zaXRpb25pbmdEZWxlZ2F0ZTpzZWxmXTsKICAgICBbX2Z1bGxzY3Jl
ZW5WaWV3Q29udHJvbGxlciBzZXRNb2RhbFByZXNlbnRhdGlvblN0eWxlOlVJTW9kYWxQcmVzZW50
YXRpb25DdXN0b21dOwogICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyIHNldFRhcmdldDpz
ZWxmIGFjdGlvbjpAc2VsZWN0b3IocmVxdWVzdEV4aXRGdWxsU2NyZWVuKV07Ci0gICAgCisgICAg
W1tfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyIHZpZXddIHNldEZyYW1lOltbX3ZpZXdDb250cm9s
bGVyRm9yUHJlc2VudGF0aW9uIHZpZXddIGJvdW5kc11dOworCiAgICAgW3NlbGYgX21hbmFnZXJd
LT5zYXZlU2Nyb2xsUG9zaXRpb24oKTsKIAogICAgIFtfd2ViVmlldyBfcGFnZV0tPnNldFN1cHBy
ZXNzVmlzaWJpbGl0eVVwZGF0ZXModHJ1ZSk7CkBAIC00MTYsMzcgKzQzOCwyOSBAQCAtICh2b2lk
KWVudGVyRnVsbFNjcmVlbgogCiAgICAgV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24qIGNvbmZpZyA9
IG5pbDsKICAgICBbX3dlYlZpZXcgdGFrZVNuYXBzaG90V2l0aENvbmZpZ3VyYXRpb246Y29uZmln
IGNvbXBsZXRpb25IYW5kbGVyOl4oVUlJbWFnZSAqIHNuYXBzaG90SW1hZ2UsIE5TRXJyb3IgKiBl
cnJvcil7Ci0gICAgICAgIFVJU2NyZWVuKiBzY3JlZW4gPSBbVUlTY3JlZW4gbWFpblNjcmVlbl07
Ci0gICAgICAgIFJldGFpblB0cjxVSVdpbmRvdz4gd2ViV2luZG93ID0gW193ZWJWaWV3IHdpbmRv
d107Ci0gICAgICAgIAogICAgICAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CiAgICAgICAgIFtD
QVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107CiAgICAgICAgIAogICAgICAgICBb
W193ZWJWaWV3UGxhY2Vob2xkZXIgbGF5ZXJdIHNldENvbnRlbnRzOihpZClbc25hcHNob3RJbWFn
ZSBDR0ltYWdlXV07CiAgICAgICAgIHJlcGxhY2VWaWV3V2l0aFZpZXcoX3dlYlZpZXcsIF93ZWJW
aWV3UGxhY2Vob2xkZXIuZ2V0KCkpOwotICAgICAgICAKKwogICAgICAgICBXS1dlYlZpZXdTdGF0
ZSgpLmFwcGx5VG8oX3dlYlZpZXcpOwogICAgICAgICAKICAgICAgICAgW193ZWJWaWV3IHNldEF1
dG9yZXNpemluZ01hc2s6KFVJVmlld0F1dG9yZXNpemluZ0ZsZXhpYmxlV2lkdGggfCBVSVZpZXdB
dXRvcmVzaXppbmdGbGV4aWJsZUhlaWdodCldOwotICAgICAgICBbX3dlYlZpZXcgc2V0RnJhbWU6
W3NjcmVlbiBib3VuZHNdXTsKLSAgICAgICAgW3dlYldpbmRvdyBpbnNlcnRTdWJ2aWV3Ol93ZWJW
aWV3IGF0SW5kZXg6MF07Ci0gICAgICAgIFtfd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0
ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOltzY3JlZW4gYm91bmRzXS5zaXplIG1heGltdW1Vbm9i
c2N1cmVkU2l6ZU92ZXJyaWRlOltzY3JlZW4gYm91bmRzXS5zaXplXTsKLSAgICAgICAgCisgICAg
ICAgIFtfd2ViVmlldyBzZXRGcmFtZTpbX3dpbmRvdyBib3VuZHNdXTsKKyAgICAgICAgW193aW5k
b3cgaW5zZXJ0U3Vidmlldzpfd2ViVmlldyBhdEluZGV4OjBdOworICAgICAgICBbX3dlYlZpZXcg
X292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpbX3dpbmRvdyBi
b3VuZHNdLnNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6W193aW5kb3cgYm91bmRz
XS5zaXplXTsKKwogICAgICAgICBbX3dlYlZpZXcgc2V0TmVlZHNMYXlvdXRdOwogICAgICAgICBb
X3dlYlZpZXcgbGF5b3V0SWZOZWVkZWRdOwogICAgICAgICAKICAgICAgICAgW3NlbGYgX21hbmFn
ZXJdLT5zZXRBbmltYXRpbmdGdWxsU2NyZWVuKHRydWUpOwotICAgICAgICAKLSAgICAgICAgLy8g
RklYTUU6IDxodHRwOi8vd2Via2l0Lm9yZy9iLzE3ODkyMz4gRmluZCBhIGJldHRlciB3YXkgdG8g
ZG8gdGhpcy4KLSAgICAgICAgZGlzcGF0Y2hfYWZ0ZXIoZGlzcGF0Y2hfdGltZShESVNQQVRDSF9U
SU1FX05PVywgMCksIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57Ci0gICAgICAgICAgICBf
cmVwYWludENhbGxiYWNrID0gVm9pZENhbGxiYWNrOjpjcmVhdGUoW3Byb3RlY3RlZFNlbGYgPSBS
ZXRhaW5QdHI8V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcj4oc2VsZildKFdlYktpdDo6Q2Fs
bGJhY2tCYXNlOjpFcnJvcikgewotICAgICAgICAgICAgICAgIGRpc3BhdGNoX2FmdGVyKGRpc3Bh
dGNoX3RpbWUoRElTUEFUQ0hfVElNRV9OT1csIDApLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
LCBeewotICAgICAgICAgICAgICAgICAgICBbcHJvdGVjdGVkU2VsZiBfbWFuYWdlcl0tPndpbGxF
bnRlckZ1bGxTY3JlZW4oKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgW193ZWJWaWV3IF9wYWdlXS0+Zm9yY2VSZXBhaW50KF9yZXBhaW50Q2FsbGJh
Y2suY29weVJlZigpKTsKKworICAgICAgICBfcmVwYWludENhbGxiYWNrID0gVm9pZENhbGxiYWNr
OjpjcmVhdGUoW3Byb3RlY3RlZFNlbGYgPSBSZXRhaW5QdHI8V0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlcj4oc2VsZildKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeworICAgICAgICAg
ICAgW3Byb3RlY3RlZFNlbGYgX21hbmFnZXJdLT53aWxsRW50ZXJGdWxsU2NyZWVuKCk7CiAgICAg
ICAgIH0pOwotICAgICAgICAKKyAgICAgICAgW193ZWJWaWV3IF9wYWdlXS0+Zm9yY2VSZXBhaW50
KF9yZXBhaW50Q2FsbGJhY2suY29weVJlZigpKTsKKwogICAgICAgICBbQ0FUcmFuc2FjdGlvbiBj
b21taXRdOwogICAgIH1dOwogfQpAQCAtNDU5LDkgKzQ3MywxOCBAQCAtICh2b2lkKWJlZ2FuRW50
ZXJGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTooQ0dSZWN0KWluaXRpYWxGcmFtZSBmaW5hbEZy
YW1lOihDRwogCiAgICAgX2luaXRpYWxGcmFtZSA9IGluaXRpYWxGcmFtZTsKICAgICBfZmluYWxG
cmFtZSA9IGZpbmFsRnJhbWU7Ci0gICAgCi0gICAgW1tfZnVsbHNjcmVlblZpZXdDb250cm9sbGVy
IHZpZXddIHNldEZyYW1lOltbVUlTY3JlZW4gbWFpblNjcmVlbl0gYm91bmRzXV07CisKKyAgICBb
Q0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlv
bnM6WUVTXTsKKworICAgIFtfd2ViVmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKICAgICBbX2Z1
bGxzY3JlZW5WaWV3Q29udHJvbGxlciBzZXRDb250ZW50Vmlldzpfd2ViVmlld107CisKKyAgICBb
X3dpbmRvdyBzZXRXaW5kb3dMZXZlbDpVSVdpbmRvd0xldmVsTm9ybWFsXTsKKyAgICBbX3dpbmRv
dyBtYWtlS2V5QW5kVmlzaWJsZV07CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworCiAg
ICAgW192aWV3Q29udHJvbGxlckZvclByZXNlbnRhdGlvbiBwcmVzZW50Vmlld0NvbnRyb2xsZXI6
X2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlci5nZXQoKSBhbmltYXRlZDpZRVMgY29tcGxldGlvbjpe
ewogICAgICAgICBbc2VsZiBjb21wbGV0ZWRFbnRlckZ1bGxTY3JlZW5dOwogICAgIH1dOwpAQCAt
NTA5LDQxICs1MzIsNzIgQEAgLSAodm9pZCliZWdhbkV4aXRGdWxsU2NyZWVuV2l0aEluaXRpYWxG
cmFtZTooQ0dSZWN0KWluaXRpYWxGcmFtZSBmaW5hbEZyYW1lOihDR1IKIAogLSAodm9pZCljb21w
bGV0ZWRFeGl0RnVsbFNjcmVlbgogeworICAgIGlmIChfZnVsbFNjcmVlblN0YXRlICE9IEV4aXRp
bmdGdWxsU2NyZWVuKQorICAgICAgICByZXR1cm47CiAgICAgX2Z1bGxTY3JlZW5TdGF0ZSA9IE5v
dEluRnVsbFNjcmVlbjsKIAotICAgIFtfd2ViVmlldyBzZXRGcmFtZTpbX3dlYlZpZXdQbGFjZWhv
bGRlciBib3VuZHNdXTsKLSAgICBbW193ZWJWaWV3UGxhY2Vob2xkZXIgd2luZG93XSBpbnNlcnRT
dWJ2aWV3Ol93ZWJWaWV3IGF0SW5kZXg6MF07CisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOwor
ICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107CisKKyAgICBbW193ZWJW
aWV3UGxhY2Vob2xkZXIgc3VwZXJ2aWV3XSBpbnNlcnRTdWJ2aWV3Ol93ZWJWaWV3IGJlbG93U3Vi
dmlldzpfd2ViVmlld1BsYWNlaG9sZGVyLmdldCgpXTsKKyAgICBbX3dlYlZpZXcgc2V0RnJhbWU6
W193ZWJWaWV3UGxhY2Vob2xkZXIgZnJhbWVdXTsKKyAgICBbX3dlYlZpZXcgc2V0QXV0b3Jlc2l6
aW5nTWFzazpbX3dlYlZpZXdQbGFjZWhvbGRlciBhdXRvcmVzaXppbmdNYXNrXV07CiAKICAgICBb
W193ZWJWaWV3IHdpbmRvd10gbWFrZUtleUFuZFZpc2libGVdOwogCi0gICAgW3NlbGYgX21hbmFn
ZXJdLT5kaWRFeGl0RnVsbFNjcmVlbigpOwotICAgIFtzZWxmIF9tYW5hZ2VyXS0+c2V0QW5pbWF0
aW5nRnVsbFNjcmVlbihmYWxzZSk7Ci0KICAgICBfdmlld1N0YXRlLmFwcGx5VG8oX3dlYlZpZXcp
OwogCiAgICAgW193ZWJWaWV3IHNldE5lZWRzTGF5b3V0XTsKICAgICBbX3dlYlZpZXcgbGF5b3V0
SWZOZWVkZWRdOwogCisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKKworICAgIFtfd2luZG93
IHNldEhpZGRlbjpZRVNdOworICAgIF93aW5kb3cgPSBuaWw7CisKKyAgICBbc2VsZiBfbWFuYWdl
cl0tPnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oZmFsc2UpOworICAgIFtzZWxmIF9tYW5hZ2VyXS0+
ZGlkRXhpdEZ1bGxTY3JlZW4oKTsKKwogICAgIGlmIChfcmVwYWludENhbGxiYWNrKSB7CiAgICAg
ICAgIF9yZXBhaW50Q2FsbGJhY2stPmludmFsaWRhdGUoV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVy
cm9yOjpPd25lcldhc0ludmFsaWRhdGVkKTsKICAgICAgICAgQVNTRVJUKCFfcmVwYWludENhbGxi
YWNrKTsKICAgICB9CisKICAgICBfcmVwYWludENhbGxiYWNrID0gVm9pZENhbGxiYWNrOjpjcmVh
dGUoW3Byb3RlY3RlZFNlbGYgPSBSZXRhaW5QdHI8V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
cj4oc2VsZiksIHNlbGZdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgewotICAgICAgICBy
ZXBsYWNlVmlld1dpdGhWaWV3KF93ZWJWaWV3UGxhY2Vob2xkZXIuZ2V0KCksIF93ZWJWaWV3KTsK
ICAgICAgICAgX3JlcGFpbnRDYWxsYmFjayA9IG51bGxwdHI7CisgICAgICAgIFtfd2ViVmlld1Bs
YWNlaG9sZGVyIHJlbW92ZUZyb21TdXBlcnZpZXddOwogICAgICAgICBbX3dlYlZpZXcgX3BhZ2Vd
LT5zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzKGZhbHNlKTsKICAgICB9KTsKKwogICAgIFtf
d2ViVmlldyBfcGFnZV0tPmZvcmNlUmVwYWludChfcmVwYWludENhbGxiYWNrLmNvcHlSZWYoKSk7
CiB9CiAKLS0gKHZvaWQpY2xvc2UKKy0gKHZvaWQpZXhpdEZ1bGxzY3JlZW5JbW1lZGlhdGVseQog
ewotICAgIGlmIChbc2VsZiBpc0Z1bGxTY3JlZW5dKQorICAgIGlmIChbc2VsZiBpc0Z1bGxTY3Jl
ZW5dKSB7CisgICAgICAgIFtzZWxmIF9tYW5hZ2VyXS0+cmVxdWVzdEV4aXRGdWxsU2NyZWVuKCk7
CiAgICAgICAgIFtzZWxmIGV4aXRGdWxsU2NyZWVuXTsKLSAgICAKKyAgICAgICAgX2Z1bGxTY3Jl
ZW5TdGF0ZSA9IEV4aXRpbmdGdWxsU2NyZWVuOworICAgICAgICBbc2VsZiBjb21wbGV0ZWRFeGl0
RnVsbFNjcmVlbl07CisgICAgICAgIHJlcGxhY2VWaWV3V2l0aFZpZXcoX3dlYlZpZXdQbGFjZWhv
bGRlci5nZXQoKSwgX3dlYlZpZXcpOworICAgICAgICBbX3dlYlZpZXcgX3BhZ2VdLT5zZXRTdXBw
cmVzc1Zpc2liaWxpdHlVcGRhdGVzKGZhbHNlKTsKKyAgICAgICAgW3NlbGYgX21hbmFnZXJdLT5k
aWRFeGl0RnVsbFNjcmVlbigpOworICAgICAgICBbc2VsZiBfbWFuYWdlcl0tPnNldEFuaW1hdGlu
Z0Z1bGxTY3JlZW4oZmFsc2UpOworICAgICAgICBfd2ViVmlld1BsYWNlaG9sZGVyID0gbmlsOwor
ICAgIH0KK30KKworLSAodm9pZCljbG9zZQoreworICAgIFtzZWxmIGV4aXRGdWxsc2NyZWVuSW1t
ZWRpYXRlbHldOwogICAgIF93ZWJWaWV3ID0gbmlsOwogfQogCistICh2b2lkKXdlYlZpZXdEaWRS
ZW1vdmVGcm9tU3VwZXJ2aWV3V2hpbGVJbkZ1bGxzY3JlZW4geworICAgIGlmIChfZnVsbFNjcmVl
blN0YXRlID09IEluRnVsbFNjcmVlbiAmJiBfd2ViVmlldy53aW5kb3cgIT0gX3dpbmRvdy5nZXQo
KSkKKyAgICAgICAgW3NlbGYgZXhpdEZ1bGxzY3JlZW5JbW1lZGlhdGVseV07Cit9CisKICNwcmFn
bWEgbWFyayAtCiAjcHJhZ21hIG1hcmsgSW50ZXJuYWwgSW50ZXJmYWNlCiAK
</data>
<flag name="review"
          id="345630"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326365</attachid>
            <date>2017-11-08 13:54:56 -0800</date>
            <delta_ts>2017-11-08 14:55:06 -0800</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-179413-20171108135456.patch</filename>
            <type>text/plain</type>
            <size>14831</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0NTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRkNDEwZjIyODUzMGMyOTYy
MGNjNWIzNzlmODY4MThmNjU4ZWE0OTguLjM4NGJlNzI5YzBkMzY5ZmE5YzBlOWIyOTdjMGIyNWQ1
ZWM5ZmE1ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDEgQEAKIDIwMTctMTEtMDcgIEplcmVteSBK
b25lcyAgPGplcmVteWpAYXBwbGUuY29tPgogCisgICAgICAgIE1ha2UgV0tGdWxsU2NyZWVuV2lk
bm93Q29udHJvbGxlciBtb3JlIHJvYnVzdCBhZ2FpbnN0IG1vZGlmaWNhdGlvbiBieSB0aGUgZW1i
ZWRkaW5nIGFwcC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3OTQxMworICAgICAgICByZGFyOi8vcHJvYmxlbS8zNTQwODA2MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFByZXNlbnQgZnVsbHNjcmVlbiBVVmll
d0NvbnRyb2xsZXIgaW4gYSBzZXBhcmF0ZSBVSVdpbmRvdyB0byBwcmV2ZW50IGludGVyYWN0aW9u
IHdpdGggdGhlIGVtYmVkZGluZyBhcHAncworICAgICAgICBVSVZpZXdDb250cm9sbGVyIGhpZXJh
cmNoeS4KKworICAgICAgICBJbW1lZGlhdGVseSB0ZWFyIGRvd24gdGhlIGZ1bGxzY3JlZW4gaW50
ZXJmYWNlIGlmIHRoZSBlbWJlZGRpbmcgYXBwIHJlbW92ZXMgdGhlIFdLV2ViVmlldyBmcm9tIHRo
ZSBmdWxsc2NyZWVuIHdpbmRvdy4KKyAgICAgICAgVGhpcyBwcmV2ZW50cyB0aGUgZnVsbHNjcmVl
biBpbnRlcmZhY2UgZnJvbSBnZXR0aW5nIGludG8gYW4gaW52YWxpZCBzdGF0ZS4KKworICAgICAg
ICBQcmVzZXJ2ZSBzY3JvbGxWaWV3Lnpvb21TY2FsZSBiZWNhdXNlIGl0IGlzIG5vdCBlZmZlY3Rp
dmVseSBwcmVzZXJ2ZWQgYnkgdGhlIG1vcmUgaW5kaXJlY3QgX3ZpZXdTY2FsZS4KKworICAgICAg
ICBVc2UgYSBjdXN0b20gcm9vdCB2aWV3IGNvbnRyb2xsZXIgdG8gYWxsb3cgaGlkaW5nIG9mIHRo
ZSBzdGF0dXMgYmFyLgorCisgICAgICAgIFJlbW92ZSB0aGUgbm8tbG9uZ2VyLW5lY2Vzc2FyeSBk
aXNwYXRjaF9hZnRlciBjYWxscyBkdXJpbmcgZW50ZXIgYW5kIGV4aXQgZnVsbHNjcmVlbi4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtX
S1dlYlZpZXcgcmVtb3ZlRnJvbVN1cGVydmlld10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdlYktpdDo6
V0tXZWJWaWV3U3RhdGU6OmFwcGx5VG8pOgorICAgICAgICAoV2ViS2l0OjpXS1dlYlZpZXdTdGF0
ZTo6c3RvcmUpOgorICAgICAgICAoLVtfV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgbG9hZFZp
ZXddKToKKyAgICAgICAgKC1bX1dLRnVsbHNjcmVlblJvb3RWaWV3Q29udHJvbGxlciBwcmVmZXJz
U3RhdHVzQmFySGlkZGVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIgZW50ZXJGdWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIgYmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6XSk6
CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgY29tcGxldGVkRXhpdEZ1
bGxTY3JlZW5dKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBleGl0
RnVsbHNjcmVlbkltbWVkaWF0ZWx5XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIgY2xvc2VdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
ciB3ZWJWaWV3RGlkUmVtb3ZlRnJvbVN1cGVydmlld1doaWxlSW5GdWxsc2NyZWVuXSk6CisgICAg
ICAgICgtW19XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciB2aWV3RGlkRGlzYXBwZWFyOl0pOiBE
ZWxldGVkLgorCisyMDE3LTExLTA3ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4K
KwogICAgICAgICBBZGQgZG93bmNhc3Qgc3VwcG9ydCBmb3IgRnVsbHNjcmVlbkNsaWVudC4KICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODgyNAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBk
YzQzYWY5MzU4Njg0ZTkwYTM4NzQ4ZWM2NDk1OWMwNTJlMzc0NTE2Li5kNGQ1YWMxMmE5OWI1MTRk
NGY5OTE2MjdkZjk4Yzc4MGEwOWM3ZDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQ4MDQsNiArNDgwNCwxNCBAQCAtICh2b2lkKV9z
ZXRQYWdlTXV0ZWQ6KF9XS01lZGlhTXV0ZWRTdGF0ZSltdXRlZFN0YXRlCiAKICNpZiBQTEFURk9S
TShJT1MpCiAKKy0gKHZvaWQpcmVtb3ZlRnJvbVN1cGVydmlldworeworICAgIFtzdXBlciByZW1v
dmVGcm9tU3VwZXJ2aWV3XTsKKworICAgIGlmIChbX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
IGlzRnVsbFNjcmVlbl0pCisgICAgICAgIFtfZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgd2Vi
Vmlld0RpZFJlbW92ZUZyb21TdXBlcnZpZXdXaGlsZUluRnVsbHNjcmVlbl07Cit9CisKIC0gKENH
U2l6ZSlfbWluaW11bUxheW91dFNpemVPdmVycmlkZQogewogICAgIEFTU0VSVChfb3ZlcnJpZGVz
TWluaW11bUxheW91dFNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmgKaW5kZXggNDM5ZTM1
YWM2YWRmZTE2NGMyMTRiNDcwMjVkMDU5NGQ1OWNjZGJiOS4uNTMwNDc5OWNkNTcxNTMzYzM5ZGRi
N2QxMjhkNjY3NDhkOGNkOTljZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oCkBAIC01Miw2
ICs1Miw3IEBAIGNsYXNzIEludFJlY3Q7CiAtICh2b2lkKWNsb3NlOwogLSAodm9pZCliZWdhbkVu
dGVyRnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6KENHUmVjdClpbml0aWFsRnJhbWUgZmluYWxG
cmFtZTooQ0dSZWN0KWZpbmFsRnJhbWU7CiAtICh2b2lkKWJlZ2FuRXhpdEZ1bGxTY3JlZW5XaXRo
SW5pdGlhbEZyYW1lOihDR1JlY3QpaW5pdGlhbEZyYW1lIGZpbmFsRnJhbWU6KENHUmVjdClmaW5h
bEZyYW1lOworLSAodm9pZCl3ZWJWaWV3RGlkUmVtb3ZlRnJvbVN1cGVydmlld1doaWxlSW5GdWxs
c2NyZWVuOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KaW5kZXggYWQ3ZjI2
MThiODA5ZWVhMjUxYjczMjNmMmNhZWMzOGZhOWJiMmFjOS4uMTQyMGRkYzVmZDMyNzcyM2NkOGUz
NDBmZTk4ZDlmMzk0MTkzNjdhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KQEAgLTcw
LDExICs3MCwxMiBAQCBzdHJ1Y3QgV0tXZWJWaWV3U3RhdGUgewogICAgIGZsb2F0IF9zYXZlZFRv
cENvbnRlbnRJbnNldCA9IDAuMDsKICAgICBDR0Zsb2F0IF9zYXZlZFBhZ2VTY2FsZSA9IDE7CiAg
ICAgQ0dGbG9hdCBfc2F2ZWRWaWV3U2NhbGUgPSAxLjA7CisgICAgQ0dGbG9hdCBfc2F2ZWRab29t
U2NhbGUgPSAxOwogICAgIFVJRWRnZUluc2V0cyBfc2F2ZWRFZGdlSW5zZXQgPSBVSUVkZ2VJbnNl
dHNaZXJvOwogICAgIFVJRWRnZUluc2V0cyBfc2F2ZWRPYnNjdXJlZEluc2V0cyA9IFVJRWRnZUlu
c2V0c1plcm87CiAgICAgVUlFZGdlSW5zZXRzIF9zYXZlZFNjcm9sbEluZGljYXRvckluc2V0cyA9
IFVJRWRnZUluc2V0c1plcm87CiAgICAgQ0dQb2ludCBfc2F2ZWRDb250ZW50T2Zmc2V0ID0gQ0dQ
b2ludFplcm87Ci0gICAgCisKICAgICB2b2lkIGFwcGx5VG8oV0tXZWJWaWV3KiB3ZWJWaWV3KQog
ICAgIHsKICAgICAgICAgW3dlYlZpZXcgX3NldFBhZ2VTY2FsZTpfc2F2ZWRQYWdlU2NhbGUgd2l0
aE9yaWdpbjpDR1BvaW50TWFrZSgwLCAwKV07CkBAIC04NCw2ICs4NSw3IEBAIHN0cnVjdCBXS1dl
YlZpZXdTdGF0ZSB7CiAgICAgICAgIFtbd2ViVmlldyBzY3JvbGxWaWV3XSBzZXRTY3JvbGxJbmRp
Y2F0b3JJbnNldHM6X3NhdmVkU2Nyb2xsSW5kaWNhdG9ySW5zZXRzXTsKICAgICAgICAgW3dlYlZp
ZXcgX3BhZ2VdLT5zZXRUb3BDb250ZW50SW5zZXQoX3NhdmVkVG9wQ29udGVudEluc2V0KTsKICAg
ICAgICAgW3dlYlZpZXcgX3NldFZpZXdTY2FsZTpfc2F2ZWRWaWV3U2NhbGVdOworICAgICAgICBb
W3dlYlZpZXcgc2Nyb2xsVmlld10gc2V0Wm9vbVNjYWxlOl9zYXZlZFpvb21TY2FsZV07CiAgICAg
fQogICAgIAogICAgIHZvaWQgc3RvcmUoV0tXZWJWaWV3KiB3ZWJWaWV3KQpAQCAtOTUsNiArOTcs
NyBAQCBzdHJ1Y3QgV0tXZWJWaWV3U3RhdGUgewogICAgICAgICBfc2F2ZWRTY3JvbGxJbmRpY2F0
b3JJbnNldHMgPSBbW3dlYlZpZXcgc2Nyb2xsVmlld10gc2Nyb2xsSW5kaWNhdG9ySW5zZXRzXTsK
ICAgICAgICAgX3NhdmVkVG9wQ29udGVudEluc2V0ID0gW3dlYlZpZXcgX3BhZ2VdLT50b3BDb250
ZW50SW5zZXQoKTsKICAgICAgICAgX3NhdmVkVmlld1NjYWxlID0gW3dlYlZpZXcgX3ZpZXdTY2Fs
ZV07CisgICAgICAgIF9zYXZlZFpvb21TY2FsZSA9IFtbd2ViVmlldyBzY3JvbGxWaWV3XSB6b29t
U2NhbGVdOwogICAgIH0KIH07CiAgICAgCkBAIC0xODAsNyArMTgzLDcgQEAgLSAoVUlWaXN1YWxF
ZmZlY3RWaWV3ICopdmlzdWFsRWZmZWN0Vmlld1dpdGhGcmFtZTooQ0dSZWN0KWZyYW1lCiAKIC0g
KHZvaWQpbG9hZFZpZXcKIHsKLSAgICBbc2VsZiBzZXRWaWV3OmFkb3B0TlMoW1tVSVZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6W1tVSVNjcmVlbiBtYWluU2NyZWVuXSBib3VuZHNdXSkuZ2V0KCld
OworICAgIFtzZWxmIHNldFZpZXc6YWRvcHROUyhbW1VJVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpDR1JlY3RNYWtlKDAsIDAsIDEwMCwgMTAwKV0pLmdldCgpXTsKICAgICBbW3NlbGYgdmlld10g
c2V0QXV0b3Jlc2l6aW5nTWFzazooVUlWaWV3QXV0b3Jlc2l6aW5nRmxleGlibGVXaWR0aCB8IFVJ
Vmlld0F1dG9yZXNpemluZ0ZsZXhpYmxlSGVpZ2h0KV07CiAKICAgICBDR1JlY3QgZG9uZUJ1dHRv
blJlY3QgPSBDR1JlY3RNYWtlKDEwLCAyMCwgNjAsIDQ3KTsKQEAgLTIyMCwxMCArMjIzLDYgQEAg
LSAodm9pZCl2aWV3V2lsbEFwcGVhcjooQk9PTClhbmltYXRlZAogICAgIFtbc2VsZiB2aWV3XSBp
bnNlcnRTdWJ2aWV3OltzZWxmIGNvbnRlbnRWaWV3XSBhdEluZGV4OjBdOwogfQogCi0tICh2b2lk
KXZpZXdEaWREaXNhcHBlYXI6KEJPT0wpYW5pbWF0ZWQKLXsKLX0KLQogLSAodm9pZCljYW5jZWxB
Y3Rpb246KGlkKXNlbmRlcgogewogICAgIFtbc2VsZiB0YXJnZXRdIHBlcmZvcm1TZWxlY3Rvcjpb
c2VsZiBhY3Rpb25dXTsKQEAgLTI3NSw2ICsyNzQsMTcgQEAgLSAoQk9PTClnZXN0dXJlUmVjb2du
aXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyIHNob3VsZFJlY29n
bmkKIAogQGVuZAogCitAaW50ZXJmYWNlIF9XS0Z1bGxzY3JlZW5Sb290Vmlld0NvbnRyb2xsZXIg
OiBVSVZpZXdDb250cm9sbGVyCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBfV0tGdWxsc2NyZWVu
Um9vdFZpZXdDb250cm9sbGVyIDogVUlWaWV3Q29udHJvbGxlcgorCistIChCT09MKXByZWZlcnNT
dGF0dXNCYXJIaWRkZW4KK3sKKyAgICByZXR1cm4gWUVTOworfQorCitAZW5kCiAKIEBpbnRlcmZh
Y2UgV0tGdWxsc2NyZWVuQW5pbWF0aW9uQ29udHJvbGxlciA6IE5TT2JqZWN0IDxVSVZpZXdDb250
cm9sbGVyQW5pbWF0ZWRUcmFuc2l0aW9uaW5nPgogQHByb3BlcnR5IChyZXRhaW4sIG5vbmF0b21p
YykgVUlWaWV3Q29udHJvbGxlciogdmlld0NvbnRyb2xsZXI7CkBAIC0zNDcsNiArMzU3LDggQEAg
QGltcGxlbWVudGF0aW9uIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgewogICAgIEZ1bGxT
Y3JlZW5TdGF0ZSBfZnVsbFNjcmVlblN0YXRlOwogICAgIFdLV2ViVmlld1N0YXRlIF92aWV3U3Rh
dGU7CiAKKyAgICBSZXRhaW5QdHI8VUlXaW5kb3c+IF93aW5kb3c7CisKICAgICBSZWZQdHI8V2Vi
S2l0OjpWb2lkQ2FsbGJhY2s+IF9yZXBhaW50Q2FsbGJhY2s7CiAgICAgUmV0YWluUHRyPFVJVmll
d0NvbnRyb2xsZXI+IF92aWV3Q29udHJvbGxlckZvclByZXNlbnRhdGlvbjsKICAgICBSZXRhaW5Q
dHI8X1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyPiBfZnVsbHNjcmVlblZpZXdDb250cm9sbGVy
OwpAQCAtMzk4LDEzICs0MTAsMjMgQEAgLSAodm9pZCllbnRlckZ1bGxTY3JlZW4KICAgICAgICAg
cmV0dXJuOwogCiAgICAgX2Z1bGxTY3JlZW5TdGF0ZSA9IFdhaXRpbmdUb0VudGVyRnVsbFNjcmVl
bjsKLSAgICAKLSAgICBfdmlld0NvbnRyb2xsZXJGb3JQcmVzZW50YXRpb24gPSBbVUlWaWV3Q29u
dHJvbGxlciBfdmlld0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6
X3dlYlZpZXddOworCisgICAgX3dpbmRvdyA9IGFkb3B0TlMoW1tVSVdpbmRvdyBhbGxvY10gaW5p
dF0pOworICAgIFtfd2luZG93IHNldEJhY2tncm91bmRDb2xvcjpbVUlDb2xvciBjbGVhckNvbG9y
XV07CisgICAgW193aW5kb3cgc2V0Um9vdFZpZXdDb250cm9sbGVyOmFkb3B0TlMoW1tfV0tGdWxs
c2NyZWVuUm9vdFZpZXdDb250cm9sbGVyIGFsbG9jXSBpbml0XSkuZ2V0KCldOworICAgIFtbX3dp
bmRvdyByb290Vmlld0NvbnRyb2xsZXJdIHNldFZpZXc6YWRvcHROUyhbW1VJVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpbX3dpbmRvdyBib3VuZHNdXSldOworICAgIFtbW193aW5kb3cgcm9vdFZp
ZXdDb250cm9sbGVyXSB2aWV3XSBzZXRCYWNrZ3JvdW5kQ29sb3I6W1VJQ29sb3IgY2xlYXJDb2xv
cl1dOworICAgIFtbW193aW5kb3cgcm9vdFZpZXdDb250cm9sbGVyXSB2aWV3XSBzZXRBdXRvcmVz
aXppbmdNYXNrOihVSVZpZXdBdXRvcmVzaXppbmdGbGV4aWJsZVdpZHRoIHwgVUlWaWV3QXV0b3Jl
c2l6aW5nRmxleGlibGVIZWlnaHQpXTsKKyAgICBbX3dpbmRvdyBzZXRXaW5kb3dMZXZlbDpVSVdp
bmRvd0xldmVsTm9ybWFsIC0gMV07CisgICAgW193aW5kb3cgc2V0SGlkZGVuOk5PXTsKKyAgICBf
dmlld0NvbnRyb2xsZXJGb3JQcmVzZW50YXRpb24gPSBbX3dpbmRvdyByb290Vmlld0NvbnRyb2xs
ZXJdOworCiAgICAgX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciA9IGFkb3B0TlMoW1tfV0tGdWxs
U2NyZWVuVmlld0NvbnRyb2xsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbX2Z1bGxzY3JlZW5WaWV3
Q29udHJvbGxlciBzZXRUcmFuc2l0aW9uaW5nRGVsZWdhdGU6c2VsZl07CiAgICAgW19mdWxsc2Ny
ZWVuVmlld0NvbnRyb2xsZXIgc2V0TW9kYWxQcmVzZW50YXRpb25TdHlsZTpVSU1vZGFsUHJlc2Vu
dGF0aW9uQ3VzdG9tXTsKICAgICBbX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciBzZXRUYXJnZXQ6
c2VsZiBhY3Rpb246QHNlbGVjdG9yKHJlcXVlc3RFeGl0RnVsbFNjcmVlbildOwotICAgIAorICAg
IFtbX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciB2aWV3XSBzZXRGcmFtZTpbW192aWV3Q29udHJv
bGxlckZvclByZXNlbnRhdGlvbiB2aWV3XSBib3VuZHNdXTsKKwogICAgIFtzZWxmIF9tYW5hZ2Vy
XS0+c2F2ZVNjcm9sbFBvc2l0aW9uKCk7CiAKICAgICBbX3dlYlZpZXcgX3BhZ2VdLT5zZXRTdXBw
cmVzc1Zpc2liaWxpdHlVcGRhdGVzKHRydWUpOwpAQCAtNDE2LDM3ICs0MzgsMzUgQEAgLSAodm9p
ZCllbnRlckZ1bGxTY3JlZW4KIAogICAgIFdLU25hcHNob3RDb25maWd1cmF0aW9uKiBjb25maWcg
PSBuaWw7CiAgICAgW193ZWJWaWV3IHRha2VTbmFwc2hvdFdpdGhDb25maWd1cmF0aW9uOmNvbmZp
ZyBjb21wbGV0aW9uSGFuZGxlcjpeKFVJSW1hZ2UgKiBzbmFwc2hvdEltYWdlLCBOU0Vycm9yICog
ZXJyb3IpewotICAgICAgICBVSVNjcmVlbiogc2NyZWVuID0gW1VJU2NyZWVuIG1haW5TY3JlZW5d
OwotICAgICAgICBSZXRhaW5QdHI8VUlXaW5kb3c+IHdlYldpbmRvdyA9IFtfd2ViVmlldyB3aW5k
b3ddOwotICAgICAgICAKKyAgICAgICAgaWYgKCFbX3dlYlZpZXcgX3BhZ2VdKQorICAgICAgICAg
ICAgcmV0dXJuOworCiAgICAgICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKICAgICAgICAgW0NB
VHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKICAgICAgICAgCiAgICAgICAgIFtb
X3dlYlZpZXdQbGFjZWhvbGRlciBsYXllcl0gc2V0Q29udGVudHM6KGlkKVtzbmFwc2hvdEltYWdl
IENHSW1hZ2VdXTsKICAgICAgICAgcmVwbGFjZVZpZXdXaXRoVmlldyhfd2ViVmlldywgX3dlYlZp
ZXdQbGFjZWhvbGRlci5nZXQoKSk7Ci0gICAgICAgIAorCiAgICAgICAgIFdLV2ViVmlld1N0YXRl
KCkuYXBwbHlUbyhfd2ViVmlldyk7CiAgICAgICAgIAogICAgICAgICBbX3dlYlZpZXcgc2V0QXV0
b3Jlc2l6aW5nTWFzazooVUlWaWV3QXV0b3Jlc2l6aW5nRmxleGlibGVXaWR0aCB8IFVJVmlld0F1
dG9yZXNpemluZ0ZsZXhpYmxlSGVpZ2h0KV07Ci0gICAgICAgIFtfd2ViVmlldyBzZXRGcmFtZTpb
c2NyZWVuIGJvdW5kc11dOwotICAgICAgICBbd2ViV2luZG93IGluc2VydFN1YnZpZXc6X3dlYlZp
ZXcgYXRJbmRleDowXTsKLSAgICAgICAgW193ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRl
cnNXaXRoTWluaW11bUxheW91dFNpemU6W3NjcmVlbiBib3VuZHNdLnNpemUgbWF4aW11bVVub2Jz
Y3VyZWRTaXplT3ZlcnJpZGU6W3NjcmVlbiBib3VuZHNdLnNpemVdOwotICAgICAgICAKKyAgICAg
ICAgW193ZWJWaWV3IHNldEZyYW1lOltfd2luZG93IGJvdW5kc11dOworICAgICAgICBbX3dpbmRv
dyBpbnNlcnRTdWJ2aWV3Ol93ZWJWaWV3IGF0SW5kZXg6MF07CisgICAgICAgIFtfd2ViVmlldyBf
b3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOltfd2luZG93IGJv
dW5kc10uc2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpbX3dpbmRvdyBib3VuZHNd
LnNpemVdOworCiAgICAgICAgIFtfd2ViVmlldyBzZXROZWVkc0xheW91dF07CiAgICAgICAgIFtf
d2ViVmlldyBsYXlvdXRJZk5lZWRlZF07CiAgICAgICAgIAogICAgICAgICBbc2VsZiBfbWFuYWdl
cl0tPnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4odHJ1ZSk7Ci0gICAgICAgIAotICAgICAgICAvLyBG
SVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTc4OTIzPiBGaW5kIGEgYmV0dGVyIHdheSB0byBk
byB0aGlzLgotICAgICAgICBkaXNwYXRjaF9hZnRlcihkaXNwYXRjaF90aW1lKERJU1BBVENIX1RJ
TUVfTk9XLCAwKSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKLSAgICAgICAgICAgIF9y
ZXBhaW50Q2FsbGJhY2sgPSBWb2lkQ2FsbGJhY2s6OmNyZWF0ZShbcHJvdGVjdGVkU2VsZiA9IFJl
dGFpblB0cjxXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyPihzZWxmKV0oV2ViS2l0OjpDYWxs
YmFja0Jhc2U6OkVycm9yKSB7Ci0gICAgICAgICAgICAgICAgZGlzcGF0Y2hfYWZ0ZXIoZGlzcGF0
Y2hfdGltZShESVNQQVRDSF9USU1FX05PVywgMCksIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCks
IF57Ci0gICAgICAgICAgICAgICAgICAgIFtwcm90ZWN0ZWRTZWxmIF9tYW5hZ2VyXS0+d2lsbEVu
dGVyRnVsbFNjcmVlbigpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICBbX3dlYlZpZXcgX3BhZ2VdLT5mb3JjZVJlcGFpbnQoX3JlcGFpbnRDYWxsYmFj
ay5jb3B5UmVmKCkpOworCisgICAgICAgIF9yZXBhaW50Q2FsbGJhY2sgPSBWb2lkQ2FsbGJhY2s6
OmNyZWF0ZShbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0oV2ViS2l0OjpDYWxsYmFj
a0Jhc2U6OkVycm9yKSB7CisgICAgICAgICAgICBpZiAoIVtfd2ViVmlldyBfcGFnZV0pCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBbcHJvdGVjdGVkU2VsZiBfbWFuYWdl
cl0tPndpbGxFbnRlckZ1bGxTY3JlZW4oKTsKICAgICAgICAgfSk7Ci0gICAgICAgIAorICAgICAg
ICBbX3dlYlZpZXcgX3BhZ2VdLT5mb3JjZVJlcGFpbnQoX3JlcGFpbnRDYWxsYmFjay5jb3B5UmVm
KCkpOworCiAgICAgICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiAgICAgfV07CiB9CkBAIC00
NTksOSArNDc5LDE4IEBAIC0gKHZvaWQpYmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZy
YW1lOihDR1JlY3QpaW5pdGlhbEZyYW1lIGZpbmFsRnJhbWU6KENHCiAKICAgICBfaW5pdGlhbEZy
YW1lID0gaW5pdGlhbEZyYW1lOwogICAgIF9maW5hbEZyYW1lID0gZmluYWxGcmFtZTsKLSAgICAK
LSAgICBbW19mdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIgdmlld10gc2V0RnJhbWU6W1tVSVNjcmVl
biBtYWluU2NyZWVuXSBib3VuZHNdXTsKKworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAg
ICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworCisgICAgW193ZWJWaWV3
IHJlbW92ZUZyb21TdXBlcnZpZXddOwogICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyIHNl
dENvbnRlbnRWaWV3Ol93ZWJWaWV3XTsKKworICAgIFtfd2luZG93IHNldFdpbmRvd0xldmVsOlVJ
V2luZG93TGV2ZWxOb3JtYWxdOworICAgIFtfd2luZG93IG1ha2VLZXlBbmRWaXNpYmxlXTsKKwor
ICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CisKICAgICBbX3ZpZXdDb250cm9sbGVyRm9yUHJl
c2VudGF0aW9uIHByZXNlbnRWaWV3Q29udHJvbGxlcjpfZnVsbHNjcmVlblZpZXdDb250cm9sbGVy
LmdldCgpIGFuaW1hdGVkOllFUyBjb21wbGV0aW9uOl57CiAgICAgICAgIFtzZWxmIGNvbXBsZXRl
ZEVudGVyRnVsbFNjcmVlbl07CiAgICAgfV07CkBAIC00NjksNyArNDk4LDExIEBAIC0gKHZvaWQp
YmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOihDR1JlY3QpaW5pdGlhbEZyYW1l
IGZpbmFsRnJhbWU6KENHCiAKIC0gKHZvaWQpY29tcGxldGVkRW50ZXJGdWxsU2NyZWVuCiB7Cisg
ICAgaWYgKCFbX3dlYlZpZXcgX3BhZ2VdKQorICAgICAgICByZXR1cm47CisKICAgICBfZnVsbFNj
cmVlblN0YXRlID0gSW5GdWxsU2NyZWVuOworCiAgICAgW3NlbGYgX21hbmFnZXJdLT5kaWRFbnRl
ckZ1bGxTY3JlZW4oKTsKICAgICBbc2VsZiBfbWFuYWdlcl0tPnNldEFuaW1hdGluZ0Z1bGxTY3Jl
ZW4oZmFsc2UpOwogCkBAIC01MDMsNDcgKzUzNiw5MCBAQCAtICh2b2lkKWJlZ2FuRXhpdEZ1bGxT
Y3JlZW5XaXRoSW5pdGlhbEZyYW1lOihDR1JlY3QpaW5pdGlhbEZyYW1lIGZpbmFsRnJhbWU6KENH
UgogICAgIFtfd2ViVmlldyBfcGFnZV0tPnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXModHJ1
ZSk7CiAKICAgICBbX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciBkaXNtaXNzVmlld0NvbnRyb2xs
ZXJBbmltYXRlZDpZRVMgY29tcGxldGlvbjpeeworICAgICAgICBpZiAoIVtfd2ViVmlldyBfcGFn
ZV0pCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgW3NlbGYgY29tcGxldGVkRXhpdEZ1
bGxTY3JlZW5dOwogICAgIH1dOwogfQogCiAtICh2b2lkKWNvbXBsZXRlZEV4aXRGdWxsU2NyZWVu
CiB7CisgICAgaWYgKF9mdWxsU2NyZWVuU3RhdGUgIT0gRXhpdGluZ0Z1bGxTY3JlZW4pCisgICAg
ICAgIHJldHVybjsKICAgICBfZnVsbFNjcmVlblN0YXRlID0gTm90SW5GdWxsU2NyZWVuOwogCi0g
ICAgW193ZWJWaWV3IHNldEZyYW1lOltfd2ViVmlld1BsYWNlaG9sZGVyIGJvdW5kc11dOwotICAg
IFtbX3dlYlZpZXdQbGFjZWhvbGRlciB3aW5kb3ddIGluc2VydFN1YnZpZXc6X3dlYlZpZXcgYXRJ
bmRleDowXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24g
c2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKworICAgIFtbX3dlYlZpZXdQbGFjZWhvbGRlciBzdXBl
cnZpZXddIGluc2VydFN1YnZpZXc6X3dlYlZpZXcgYmVsb3dTdWJ2aWV3Ol93ZWJWaWV3UGxhY2Vo
b2xkZXIuZ2V0KCldOworICAgIFtfd2ViVmlldyBzZXRGcmFtZTpbX3dlYlZpZXdQbGFjZWhvbGRl
ciBmcmFtZV1dOworICAgIFtfd2ViVmlldyBzZXRBdXRvcmVzaXppbmdNYXNrOltfd2ViVmlld1Bs
YWNlaG9sZGVyIGF1dG9yZXNpemluZ01hc2tdXTsKIAogICAgIFtbX3dlYlZpZXcgd2luZG93XSBt
YWtlS2V5QW5kVmlzaWJsZV07CiAKLSAgICBbc2VsZiBfbWFuYWdlcl0tPmRpZEV4aXRGdWxsU2Ny
ZWVuKCk7Ci0gICAgW3NlbGYgX21hbmFnZXJdLT5zZXRBbmltYXRpbmdGdWxsU2NyZWVuKGZhbHNl
KTsKLQogICAgIF92aWV3U3RhdGUuYXBwbHlUbyhfd2ViVmlldyk7CiAKICAgICBbX3dlYlZpZXcg
c2V0TmVlZHNMYXlvdXRdOwogICAgIFtfd2ViVmlldyBsYXlvdXRJZk5lZWRlZF07CiAKKyAgICBb
Q0FUcmFuc2FjdGlvbiBjb21taXRdOworCisgICAgW193aW5kb3cgc2V0SGlkZGVuOllFU107Cisg
ICAgX3dpbmRvdyA9IG5pbDsKKworICAgIFtzZWxmIF9tYW5hZ2VyXS0+c2V0QW5pbWF0aW5nRnVs
bFNjcmVlbihmYWxzZSk7CisgICAgW3NlbGYgX21hbmFnZXJdLT5kaWRFeGl0RnVsbFNjcmVlbigp
OworCiAgICAgaWYgKF9yZXBhaW50Q2FsbGJhY2spIHsKICAgICAgICAgX3JlcGFpbnRDYWxsYmFj
ay0+aW52YWxpZGF0ZShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxp
ZGF0ZWQpOwogICAgICAgICBBU1NFUlQoIV9yZXBhaW50Q2FsbGJhY2spOwogICAgIH0KLSAgICBf
cmVwYWludENhbGxiYWNrID0gVm9pZENhbGxiYWNrOjpjcmVhdGUoW3Byb3RlY3RlZFNlbGYgPSBS
ZXRhaW5QdHI8V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcj4oc2VsZiksIHNlbGZdKFdlYktp
dDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgewotICAgICAgICByZXBsYWNlVmlld1dpdGhWaWV3KF93
ZWJWaWV3UGxhY2Vob2xkZXIuZ2V0KCksIF93ZWJWaWV3KTsKKworICAgIF9yZXBhaW50Q2FsbGJh
Y2sgPSBWb2lkQ2FsbGJhY2s6OmNyZWF0ZShbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxm
KSwgc2VsZl0oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7CiAgICAgICAgIF9yZXBhaW50
Q2FsbGJhY2sgPSBudWxscHRyOworICAgICAgICBbX3dlYlZpZXdQbGFjZWhvbGRlciByZW1vdmVG
cm9tU3VwZXJ2aWV3XTsKKworICAgICAgICBpZiAoIVtfd2ViVmlldyBfcGFnZV0pCisgICAgICAg
ICAgICByZXR1cm47CisKICAgICAgICAgW193ZWJWaWV3IF9wYWdlXS0+c2V0U3VwcHJlc3NWaXNp
YmlsaXR5VXBkYXRlcyhmYWxzZSk7CiAgICAgfSk7CisKICAgICBbX3dlYlZpZXcgX3BhZ2VdLT5m
b3JjZVJlcGFpbnQoX3JlcGFpbnRDYWxsYmFjay5jb3B5UmVmKCkpOwogfQogCistICh2b2lkKWV4
aXRGdWxsc2NyZWVuSW1tZWRpYXRlbHkKK3sKKyAgICBpZiAoIVtzZWxmIGlzRnVsbFNjcmVlbl0p
CisgICAgICAgIHJldHVybjsKKworICAgIGlmICghW193ZWJWaWV3IF9wYWdlXSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgW3NlbGYgX21hbmFnZXJdLT5yZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKTsK
KyAgICBbc2VsZiBleGl0RnVsbFNjcmVlbl07CisgICAgX2Z1bGxTY3JlZW5TdGF0ZSA9IEV4aXRp
bmdGdWxsU2NyZWVuOworICAgIFtzZWxmIGNvbXBsZXRlZEV4aXRGdWxsU2NyZWVuXTsKKyAgICBy
ZXBsYWNlVmlld1dpdGhWaWV3KF93ZWJWaWV3UGxhY2Vob2xkZXIuZ2V0KCksIF93ZWJWaWV3KTsK
KyAgICBbX3dlYlZpZXcgX3BhZ2VdLT5zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzKGZhbHNl
KTsKKyAgICBbc2VsZiBfbWFuYWdlcl0tPmRpZEV4aXRGdWxsU2NyZWVuKCk7CisgICAgW3NlbGYg
X21hbmFnZXJdLT5zZXRBbmltYXRpbmdGdWxsU2NyZWVuKGZhbHNlKTsKKyAgICBfd2ViVmlld1Bs
YWNlaG9sZGVyID0gbmlsOworfQorCiAtICh2b2lkKWNsb3NlCiB7Ci0gICAgaWYgKFtzZWxmIGlz
RnVsbFNjcmVlbl0pCi0gICAgICAgIFtzZWxmIGV4aXRGdWxsU2NyZWVuXTsKLSAgICAKKyAgICBb
c2VsZiBleGl0RnVsbHNjcmVlbkltbWVkaWF0ZWx5XTsKICAgICBfd2ViVmlldyA9IG5pbDsKIH0K
IAorLSAodm9pZCl3ZWJWaWV3RGlkUmVtb3ZlRnJvbVN1cGVydmlld1doaWxlSW5GdWxsc2NyZWVu
Cit7CisgICAgaWYgKF9mdWxsU2NyZWVuU3RhdGUgPT0gSW5GdWxsU2NyZWVuICYmIF93ZWJWaWV3
LndpbmRvdyAhPSBfd2luZG93LmdldCgpKQorICAgICAgICBbc2VsZiBleGl0RnVsbHNjcmVlbklt
bWVkaWF0ZWx5XTsKK30KKwogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBJbnRlcm5hbCBJ
bnRlcmZhY2UKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326386</attachid>
            <date>2017-11-08 14:56:19 -0800</date>
            <delta_ts>2017-11-08 16:45:50 -0800</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-179413-20171108145618.patch</filename>
            <type>text/plain</type>
            <size>14843</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0NTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRkNDEwZjIyODUzMGMyOTYy
MGNjNWIzNzlmODY4MThmNjU4ZWE0OTguLjM4NGJlNzI5YzBkMzY5ZmE5YzBlOWIyOTdjMGIyNWQ1
ZWM5ZmE1ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDEgQEAKIDIwMTctMTEtMDcgIEplcmVteSBK
b25lcyAgPGplcmVteWpAYXBwbGUuY29tPgogCisgICAgICAgIE1ha2UgV0tGdWxsU2NyZWVuV2lk
bm93Q29udHJvbGxlciBtb3JlIHJvYnVzdCBhZ2FpbnN0IG1vZGlmaWNhdGlvbiBieSB0aGUgZW1i
ZWRkaW5nIGFwcC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3OTQxMworICAgICAgICByZGFyOi8vcHJvYmxlbS8zNTQwODA2MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFByZXNlbnQgZnVsbHNjcmVlbiBVVmll
d0NvbnRyb2xsZXIgaW4gYSBzZXBhcmF0ZSBVSVdpbmRvdyB0byBwcmV2ZW50IGludGVyYWN0aW9u
IHdpdGggdGhlIGVtYmVkZGluZyBhcHAncworICAgICAgICBVSVZpZXdDb250cm9sbGVyIGhpZXJh
cmNoeS4KKworICAgICAgICBJbW1lZGlhdGVseSB0ZWFyIGRvd24gdGhlIGZ1bGxzY3JlZW4gaW50
ZXJmYWNlIGlmIHRoZSBlbWJlZGRpbmcgYXBwIHJlbW92ZXMgdGhlIFdLV2ViVmlldyBmcm9tIHRo
ZSBmdWxsc2NyZWVuIHdpbmRvdy4KKyAgICAgICAgVGhpcyBwcmV2ZW50cyB0aGUgZnVsbHNjcmVl
biBpbnRlcmZhY2UgZnJvbSBnZXR0aW5nIGludG8gYW4gaW52YWxpZCBzdGF0ZS4KKworICAgICAg
ICBQcmVzZXJ2ZSBzY3JvbGxWaWV3Lnpvb21TY2FsZSBiZWNhdXNlIGl0IGlzIG5vdCBlZmZlY3Rp
dmVseSBwcmVzZXJ2ZWQgYnkgdGhlIG1vcmUgaW5kaXJlY3QgX3ZpZXdTY2FsZS4KKworICAgICAg
ICBVc2UgYSBjdXN0b20gcm9vdCB2aWV3IGNvbnRyb2xsZXIgdG8gYWxsb3cgaGlkaW5nIG9mIHRo
ZSBzdGF0dXMgYmFyLgorCisgICAgICAgIFJlbW92ZSB0aGUgbm8tbG9uZ2VyLW5lY2Vzc2FyeSBk
aXNwYXRjaF9hZnRlciBjYWxscyBkdXJpbmcgZW50ZXIgYW5kIGV4aXQgZnVsbHNjcmVlbi4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtX
S1dlYlZpZXcgcmVtb3ZlRnJvbVN1cGVydmlld10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdlYktpdDo6
V0tXZWJWaWV3U3RhdGU6OmFwcGx5VG8pOgorICAgICAgICAoV2ViS2l0OjpXS1dlYlZpZXdTdGF0
ZTo6c3RvcmUpOgorICAgICAgICAoLVtfV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgbG9hZFZp
ZXddKToKKyAgICAgICAgKC1bX1dLRnVsbHNjcmVlblJvb3RWaWV3Q29udHJvbGxlciBwcmVmZXJz
U3RhdHVzQmFySGlkZGVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIgZW50ZXJGdWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIgYmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6XSk6
CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgY29tcGxldGVkRXhpdEZ1
bGxTY3JlZW5dKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBleGl0
RnVsbHNjcmVlbkltbWVkaWF0ZWx5XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIgY2xvc2VdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
ciB3ZWJWaWV3RGlkUmVtb3ZlRnJvbVN1cGVydmlld1doaWxlSW5GdWxsc2NyZWVuXSk6CisgICAg
ICAgICgtW19XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciB2aWV3RGlkRGlzYXBwZWFyOl0pOiBE
ZWxldGVkLgorCisyMDE3LTExLTA3ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4K
KwogICAgICAgICBBZGQgZG93bmNhc3Qgc3VwcG9ydCBmb3IgRnVsbHNjcmVlbkNsaWVudC4KICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODgyNAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBk
YzQzYWY5MzU4Njg0ZTkwYTM4NzQ4ZWM2NDk1OWMwNTJlMzc0NTE2Li5kNGQ1YWMxMmE5OWI1MTRk
NGY5OTE2MjdkZjk4Yzc4MGEwOWM3ZDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQ4MDQsNiArNDgwNCwxNCBAQCAtICh2b2lkKV9z
ZXRQYWdlTXV0ZWQ6KF9XS01lZGlhTXV0ZWRTdGF0ZSltdXRlZFN0YXRlCiAKICNpZiBQTEFURk9S
TShJT1MpCiAKKy0gKHZvaWQpcmVtb3ZlRnJvbVN1cGVydmlldworeworICAgIFtzdXBlciByZW1v
dmVGcm9tU3VwZXJ2aWV3XTsKKworICAgIGlmIChbX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
IGlzRnVsbFNjcmVlbl0pCisgICAgICAgIFtfZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgd2Vi
Vmlld0RpZFJlbW92ZUZyb21TdXBlcnZpZXdXaGlsZUluRnVsbHNjcmVlbl07Cit9CisKIC0gKENH
U2l6ZSlfbWluaW11bUxheW91dFNpemVPdmVycmlkZQogewogICAgIEFTU0VSVChfb3ZlcnJpZGVz
TWluaW11bUxheW91dFNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmgKaW5kZXggNDM5ZTM1
YWM2YWRmZTE2NGMyMTRiNDcwMjVkMDU5NGQ1OWNjZGJiOS4uNTMwNDc5OWNkNTcxNTMzYzM5ZGRi
N2QxMjhkNjY3NDhkOGNkOTljZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oCkBAIC01Miw2
ICs1Miw3IEBAIGNsYXNzIEludFJlY3Q7CiAtICh2b2lkKWNsb3NlOwogLSAodm9pZCliZWdhbkVu
dGVyRnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6KENHUmVjdClpbml0aWFsRnJhbWUgZmluYWxG
cmFtZTooQ0dSZWN0KWZpbmFsRnJhbWU7CiAtICh2b2lkKWJlZ2FuRXhpdEZ1bGxTY3JlZW5XaXRo
SW5pdGlhbEZyYW1lOihDR1JlY3QpaW5pdGlhbEZyYW1lIGZpbmFsRnJhbWU6KENHUmVjdClmaW5h
bEZyYW1lOworLSAodm9pZCl3ZWJWaWV3RGlkUmVtb3ZlRnJvbVN1cGVydmlld1doaWxlSW5GdWxs
c2NyZWVuOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KaW5kZXggYWQ3ZjI2
MThiODA5ZWVhMjUxYjczMjNmMmNhZWMzOGZhOWJiMmFjOS4uZmY2ZTQwMmFjY2I1NzI5ZmIyNTY0
NThlMTIxZGY3NzQ1ODYyMWI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KQEAgLTcw
LDExICs3MCwxMiBAQCBzdHJ1Y3QgV0tXZWJWaWV3U3RhdGUgewogICAgIGZsb2F0IF9zYXZlZFRv
cENvbnRlbnRJbnNldCA9IDAuMDsKICAgICBDR0Zsb2F0IF9zYXZlZFBhZ2VTY2FsZSA9IDE7CiAg
ICAgQ0dGbG9hdCBfc2F2ZWRWaWV3U2NhbGUgPSAxLjA7CisgICAgQ0dGbG9hdCBfc2F2ZWRab29t
U2NhbGUgPSAxOwogICAgIFVJRWRnZUluc2V0cyBfc2F2ZWRFZGdlSW5zZXQgPSBVSUVkZ2VJbnNl
dHNaZXJvOwogICAgIFVJRWRnZUluc2V0cyBfc2F2ZWRPYnNjdXJlZEluc2V0cyA9IFVJRWRnZUlu
c2V0c1plcm87CiAgICAgVUlFZGdlSW5zZXRzIF9zYXZlZFNjcm9sbEluZGljYXRvckluc2V0cyA9
IFVJRWRnZUluc2V0c1plcm87CiAgICAgQ0dQb2ludCBfc2F2ZWRDb250ZW50T2Zmc2V0ID0gQ0dQ
b2ludFplcm87Ci0gICAgCisKICAgICB2b2lkIGFwcGx5VG8oV0tXZWJWaWV3KiB3ZWJWaWV3KQog
ICAgIHsKICAgICAgICAgW3dlYlZpZXcgX3NldFBhZ2VTY2FsZTpfc2F2ZWRQYWdlU2NhbGUgd2l0
aE9yaWdpbjpDR1BvaW50TWFrZSgwLCAwKV07CkBAIC04NCw2ICs4NSw3IEBAIHN0cnVjdCBXS1dl
YlZpZXdTdGF0ZSB7CiAgICAgICAgIFtbd2ViVmlldyBzY3JvbGxWaWV3XSBzZXRTY3JvbGxJbmRp
Y2F0b3JJbnNldHM6X3NhdmVkU2Nyb2xsSW5kaWNhdG9ySW5zZXRzXTsKICAgICAgICAgW3dlYlZp
ZXcgX3BhZ2VdLT5zZXRUb3BDb250ZW50SW5zZXQoX3NhdmVkVG9wQ29udGVudEluc2V0KTsKICAg
ICAgICAgW3dlYlZpZXcgX3NldFZpZXdTY2FsZTpfc2F2ZWRWaWV3U2NhbGVdOworICAgICAgICBb
W3dlYlZpZXcgc2Nyb2xsVmlld10gc2V0Wm9vbVNjYWxlOl9zYXZlZFpvb21TY2FsZV07CiAgICAg
fQogICAgIAogICAgIHZvaWQgc3RvcmUoV0tXZWJWaWV3KiB3ZWJWaWV3KQpAQCAtOTUsNiArOTcs
NyBAQCBzdHJ1Y3QgV0tXZWJWaWV3U3RhdGUgewogICAgICAgICBfc2F2ZWRTY3JvbGxJbmRpY2F0
b3JJbnNldHMgPSBbW3dlYlZpZXcgc2Nyb2xsVmlld10gc2Nyb2xsSW5kaWNhdG9ySW5zZXRzXTsK
ICAgICAgICAgX3NhdmVkVG9wQ29udGVudEluc2V0ID0gW3dlYlZpZXcgX3BhZ2VdLT50b3BDb250
ZW50SW5zZXQoKTsKICAgICAgICAgX3NhdmVkVmlld1NjYWxlID0gW3dlYlZpZXcgX3ZpZXdTY2Fs
ZV07CisgICAgICAgIF9zYXZlZFpvb21TY2FsZSA9IFtbd2ViVmlldyBzY3JvbGxWaWV3XSB6b29t
U2NhbGVdOwogICAgIH0KIH07CiAgICAgCkBAIC0xODAsNyArMTgzLDcgQEAgLSAoVUlWaXN1YWxF
ZmZlY3RWaWV3ICopdmlzdWFsRWZmZWN0Vmlld1dpdGhGcmFtZTooQ0dSZWN0KWZyYW1lCiAKIC0g
KHZvaWQpbG9hZFZpZXcKIHsKLSAgICBbc2VsZiBzZXRWaWV3OmFkb3B0TlMoW1tVSVZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6W1tVSVNjcmVlbiBtYWluU2NyZWVuXSBib3VuZHNdXSkuZ2V0KCld
OworICAgIFtzZWxmIHNldFZpZXc6YWRvcHROUyhbW1VJVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpDR1JlY3RNYWtlKDAsIDAsIDEwMCwgMTAwKV0pLmdldCgpXTsKICAgICBbW3NlbGYgdmlld10g
c2V0QXV0b3Jlc2l6aW5nTWFzazooVUlWaWV3QXV0b3Jlc2l6aW5nRmxleGlibGVXaWR0aCB8IFVJ
Vmlld0F1dG9yZXNpemluZ0ZsZXhpYmxlSGVpZ2h0KV07CiAKICAgICBDR1JlY3QgZG9uZUJ1dHRv
blJlY3QgPSBDR1JlY3RNYWtlKDEwLCAyMCwgNjAsIDQ3KTsKQEAgLTIyMCwxMCArMjIzLDYgQEAg
LSAodm9pZCl2aWV3V2lsbEFwcGVhcjooQk9PTClhbmltYXRlZAogICAgIFtbc2VsZiB2aWV3XSBp
bnNlcnRTdWJ2aWV3OltzZWxmIGNvbnRlbnRWaWV3XSBhdEluZGV4OjBdOwogfQogCi0tICh2b2lk
KXZpZXdEaWREaXNhcHBlYXI6KEJPT0wpYW5pbWF0ZWQKLXsKLX0KLQogLSAodm9pZCljYW5jZWxB
Y3Rpb246KGlkKXNlbmRlcgogewogICAgIFtbc2VsZiB0YXJnZXRdIHBlcmZvcm1TZWxlY3Rvcjpb
c2VsZiBhY3Rpb25dXTsKQEAgLTI3NSw2ICsyNzQsMTcgQEAgLSAoQk9PTClnZXN0dXJlUmVjb2du
aXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyIHNob3VsZFJlY29n
bmkKIAogQGVuZAogCitAaW50ZXJmYWNlIF9XS0Z1bGxzY3JlZW5Sb290Vmlld0NvbnRyb2xsZXIg
OiBVSVZpZXdDb250cm9sbGVyCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBfV0tGdWxsc2NyZWVu
Um9vdFZpZXdDb250cm9sbGVyIDogVUlWaWV3Q29udHJvbGxlcgorCistIChCT09MKXByZWZlcnNT
dGF0dXNCYXJIaWRkZW4KK3sKKyAgICByZXR1cm4gWUVTOworfQorCitAZW5kCiAKIEBpbnRlcmZh
Y2UgV0tGdWxsc2NyZWVuQW5pbWF0aW9uQ29udHJvbGxlciA6IE5TT2JqZWN0IDxVSVZpZXdDb250
cm9sbGVyQW5pbWF0ZWRUcmFuc2l0aW9uaW5nPgogQHByb3BlcnR5IChyZXRhaW4sIG5vbmF0b21p
YykgVUlWaWV3Q29udHJvbGxlciogdmlld0NvbnRyb2xsZXI7CkBAIC0zNDcsNiArMzU3LDggQEAg
QGltcGxlbWVudGF0aW9uIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgewogICAgIEZ1bGxT
Y3JlZW5TdGF0ZSBfZnVsbFNjcmVlblN0YXRlOwogICAgIFdLV2ViVmlld1N0YXRlIF92aWV3U3Rh
dGU7CiAKKyAgICBSZXRhaW5QdHI8VUlXaW5kb3c+IF93aW5kb3c7CisKICAgICBSZWZQdHI8V2Vi
S2l0OjpWb2lkQ2FsbGJhY2s+IF9yZXBhaW50Q2FsbGJhY2s7CiAgICAgUmV0YWluUHRyPFVJVmll
d0NvbnRyb2xsZXI+IF92aWV3Q29udHJvbGxlckZvclByZXNlbnRhdGlvbjsKICAgICBSZXRhaW5Q
dHI8X1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyPiBfZnVsbHNjcmVlblZpZXdDb250cm9sbGVy
OwpAQCAtMzk4LDEzICs0MTAsMjMgQEAgLSAodm9pZCllbnRlckZ1bGxTY3JlZW4KICAgICAgICAg
cmV0dXJuOwogCiAgICAgX2Z1bGxTY3JlZW5TdGF0ZSA9IFdhaXRpbmdUb0VudGVyRnVsbFNjcmVl
bjsKLSAgICAKLSAgICBfdmlld0NvbnRyb2xsZXJGb3JQcmVzZW50YXRpb24gPSBbVUlWaWV3Q29u
dHJvbGxlciBfdmlld0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6
X3dlYlZpZXddOworCisgICAgX3dpbmRvdyA9IGFkb3B0TlMoW1tVSVdpbmRvdyBhbGxvY10gaW5p
dF0pOworICAgIFtfd2luZG93IHNldEJhY2tncm91bmRDb2xvcjpbVUlDb2xvciBjbGVhckNvbG9y
XV07CisgICAgW193aW5kb3cgc2V0Um9vdFZpZXdDb250cm9sbGVyOmFkb3B0TlMoW1tfV0tGdWxs
c2NyZWVuUm9vdFZpZXdDb250cm9sbGVyIGFsbG9jXSBpbml0XSkuZ2V0KCldOworICAgIFtbX3dp
bmRvdyByb290Vmlld0NvbnRyb2xsZXJdIHNldFZpZXc6YWRvcHROUyhbW1VJVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpbX3dpbmRvdyBib3VuZHNdXSkuZ2V0KCldOworICAgIFtbW193aW5kb3cg
cm9vdFZpZXdDb250cm9sbGVyXSB2aWV3XSBzZXRCYWNrZ3JvdW5kQ29sb3I6W1VJQ29sb3IgY2xl
YXJDb2xvcl1dOworICAgIFtbW193aW5kb3cgcm9vdFZpZXdDb250cm9sbGVyXSB2aWV3XSBzZXRB
dXRvcmVzaXppbmdNYXNrOihVSVZpZXdBdXRvcmVzaXppbmdGbGV4aWJsZVdpZHRoIHwgVUlWaWV3
QXV0b3Jlc2l6aW5nRmxleGlibGVIZWlnaHQpXTsKKyAgICBbX3dpbmRvdyBzZXRXaW5kb3dMZXZl
bDpVSVdpbmRvd0xldmVsTm9ybWFsIC0gMV07CisgICAgW193aW5kb3cgc2V0SGlkZGVuOk5PXTsK
KyAgICBfdmlld0NvbnRyb2xsZXJGb3JQcmVzZW50YXRpb24gPSBbX3dpbmRvdyByb290Vmlld0Nv
bnRyb2xsZXJdOworCiAgICAgX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciA9IGFkb3B0TlMoW1tf
V0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbX2Z1bGxzY3Jl
ZW5WaWV3Q29udHJvbGxlciBzZXRUcmFuc2l0aW9uaW5nRGVsZWdhdGU6c2VsZl07CiAgICAgW19m
dWxsc2NyZWVuVmlld0NvbnRyb2xsZXIgc2V0TW9kYWxQcmVzZW50YXRpb25TdHlsZTpVSU1vZGFs
UHJlc2VudGF0aW9uQ3VzdG9tXTsKICAgICBbX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciBzZXRU
YXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKHJlcXVlc3RFeGl0RnVsbFNjcmVlbildOwotICAg
IAorICAgIFtbX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciB2aWV3XSBzZXRGcmFtZTpbW192aWV3
Q29udHJvbGxlckZvclByZXNlbnRhdGlvbiB2aWV3XSBib3VuZHNdXTsKKwogICAgIFtzZWxmIF9t
YW5hZ2VyXS0+c2F2ZVNjcm9sbFBvc2l0aW9uKCk7CiAKICAgICBbX3dlYlZpZXcgX3BhZ2VdLT5z
ZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzKHRydWUpOwpAQCAtNDE2LDM3ICs0MzgsMzUgQEAg
LSAodm9pZCllbnRlckZ1bGxTY3JlZW4KIAogICAgIFdLU25hcHNob3RDb25maWd1cmF0aW9uKiBj
b25maWcgPSBuaWw7CiAgICAgW193ZWJWaWV3IHRha2VTbmFwc2hvdFdpdGhDb25maWd1cmF0aW9u
OmNvbmZpZyBjb21wbGV0aW9uSGFuZGxlcjpeKFVJSW1hZ2UgKiBzbmFwc2hvdEltYWdlLCBOU0Vy
cm9yICogZXJyb3IpewotICAgICAgICBVSVNjcmVlbiogc2NyZWVuID0gW1VJU2NyZWVuIG1haW5T
Y3JlZW5dOwotICAgICAgICBSZXRhaW5QdHI8VUlXaW5kb3c+IHdlYldpbmRvdyA9IFtfd2ViVmll
dyB3aW5kb3ddOwotICAgICAgICAKKyAgICAgICAgaWYgKCFbX3dlYlZpZXcgX3BhZ2VdKQorICAg
ICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKICAgICAg
ICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKICAgICAgICAgCiAgICAg
ICAgIFtbX3dlYlZpZXdQbGFjZWhvbGRlciBsYXllcl0gc2V0Q29udGVudHM6KGlkKVtzbmFwc2hv
dEltYWdlIENHSW1hZ2VdXTsKICAgICAgICAgcmVwbGFjZVZpZXdXaXRoVmlldyhfd2ViVmlldywg
X3dlYlZpZXdQbGFjZWhvbGRlci5nZXQoKSk7Ci0gICAgICAgIAorCiAgICAgICAgIFdLV2ViVmll
d1N0YXRlKCkuYXBwbHlUbyhfd2ViVmlldyk7CiAgICAgICAgIAogICAgICAgICBbX3dlYlZpZXcg
c2V0QXV0b3Jlc2l6aW5nTWFzazooVUlWaWV3QXV0b3Jlc2l6aW5nRmxleGlibGVXaWR0aCB8IFVJ
Vmlld0F1dG9yZXNpemluZ0ZsZXhpYmxlSGVpZ2h0KV07Ci0gICAgICAgIFtfd2ViVmlldyBzZXRG
cmFtZTpbc2NyZWVuIGJvdW5kc11dOwotICAgICAgICBbd2ViV2luZG93IGluc2VydFN1YnZpZXc6
X3dlYlZpZXcgYXRJbmRleDowXTsKLSAgICAgICAgW193ZWJWaWV3IF9vdmVycmlkZUxheW91dFBh
cmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6W3NjcmVlbiBib3VuZHNdLnNpemUgbWF4aW11
bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6W3NjcmVlbiBib3VuZHNdLnNpemVdOwotICAgICAgICAK
KyAgICAgICAgW193ZWJWaWV3IHNldEZyYW1lOltfd2luZG93IGJvdW5kc11dOworICAgICAgICBb
X3dpbmRvdyBpbnNlcnRTdWJ2aWV3Ol93ZWJWaWV3IGF0SW5kZXg6MF07CisgICAgICAgIFtfd2Vi
VmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOltfd2lu
ZG93IGJvdW5kc10uc2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpbX3dpbmRvdyBi
b3VuZHNdLnNpemVdOworCiAgICAgICAgIFtfd2ViVmlldyBzZXROZWVkc0xheW91dF07CiAgICAg
ICAgIFtfd2ViVmlldyBsYXlvdXRJZk5lZWRlZF07CiAgICAgICAgIAogICAgICAgICBbc2VsZiBf
bWFuYWdlcl0tPnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4odHJ1ZSk7Ci0gICAgICAgIAotICAgICAg
ICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTc4OTIzPiBGaW5kIGEgYmV0dGVyIHdh
eSB0byBkbyB0aGlzLgotICAgICAgICBkaXNwYXRjaF9hZnRlcihkaXNwYXRjaF90aW1lKERJU1BB
VENIX1RJTUVfTk9XLCAwKSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKLSAgICAgICAg
ICAgIF9yZXBhaW50Q2FsbGJhY2sgPSBWb2lkQ2FsbGJhY2s6OmNyZWF0ZShbcHJvdGVjdGVkU2Vs
ZiA9IFJldGFpblB0cjxXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyPihzZWxmKV0oV2ViS2l0
OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7Ci0gICAgICAgICAgICAgICAgZGlzcGF0Y2hfYWZ0ZXIo
ZGlzcGF0Y2hfdGltZShESVNQQVRDSF9USU1FX05PVywgMCksIGRpc3BhdGNoX2dldF9tYWluX3F1
ZXVlKCksIF57Ci0gICAgICAgICAgICAgICAgICAgIFtwcm90ZWN0ZWRTZWxmIF9tYW5hZ2VyXS0+
d2lsbEVudGVyRnVsbFNjcmVlbigpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICBbX3dlYlZpZXcgX3BhZ2VdLT5mb3JjZVJlcGFpbnQoX3JlcGFpbnRD
YWxsYmFjay5jb3B5UmVmKCkpOworCisgICAgICAgIF9yZXBhaW50Q2FsbGJhY2sgPSBWb2lkQ2Fs
bGJhY2s6OmNyZWF0ZShbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwgc2VsZl0oV2Vi
S2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7CisgICAgICAgICAgICBpZiAoIVtfd2ViVmlldyBf
cGFnZV0pCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBbcHJvdGVjdGVk
U2VsZiBfbWFuYWdlcl0tPndpbGxFbnRlckZ1bGxTY3JlZW4oKTsKICAgICAgICAgfSk7Ci0gICAg
ICAgIAorICAgICAgICBbX3dlYlZpZXcgX3BhZ2VdLT5mb3JjZVJlcGFpbnQoX3JlcGFpbnRDYWxs
YmFjay5jb3B5UmVmKCkpOworCiAgICAgICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiAgICAg
fV07CiB9CkBAIC00NTksOSArNDc5LDE4IEBAIC0gKHZvaWQpYmVnYW5FbnRlckZ1bGxTY3JlZW5X
aXRoSW5pdGlhbEZyYW1lOihDR1JlY3QpaW5pdGlhbEZyYW1lIGZpbmFsRnJhbWU6KENHCiAKICAg
ICBfaW5pdGlhbEZyYW1lID0gaW5pdGlhbEZyYW1lOwogICAgIF9maW5hbEZyYW1lID0gZmluYWxG
cmFtZTsKLSAgICAKLSAgICBbW19mdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIgdmlld10gc2V0RnJh
bWU6W1tVSVNjcmVlbiBtYWluU2NyZWVuXSBib3VuZHNdXTsKKworICAgIFtDQVRyYW5zYWN0aW9u
IGJlZ2luXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworCisg
ICAgW193ZWJWaWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOwogICAgIFtfZnVsbHNjcmVlblZpZXdD
b250cm9sbGVyIHNldENvbnRlbnRWaWV3Ol93ZWJWaWV3XTsKKworICAgIFtfd2luZG93IHNldFdp
bmRvd0xldmVsOlVJV2luZG93TGV2ZWxOb3JtYWxdOworICAgIFtfd2luZG93IG1ha2VLZXlBbmRW
aXNpYmxlXTsKKworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CisKICAgICBbX3ZpZXdDb250
cm9sbGVyRm9yUHJlc2VudGF0aW9uIHByZXNlbnRWaWV3Q29udHJvbGxlcjpfZnVsbHNjcmVlblZp
ZXdDb250cm9sbGVyLmdldCgpIGFuaW1hdGVkOllFUyBjb21wbGV0aW9uOl57CiAgICAgICAgIFtz
ZWxmIGNvbXBsZXRlZEVudGVyRnVsbFNjcmVlbl07CiAgICAgfV07CkBAIC00NjksNyArNDk4LDEx
IEBAIC0gKHZvaWQpYmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOihDR1JlY3Qp
aW5pdGlhbEZyYW1lIGZpbmFsRnJhbWU6KENHCiAKIC0gKHZvaWQpY29tcGxldGVkRW50ZXJGdWxs
U2NyZWVuCiB7CisgICAgaWYgKCFbX3dlYlZpZXcgX3BhZ2VdKQorICAgICAgICByZXR1cm47CisK
ICAgICBfZnVsbFNjcmVlblN0YXRlID0gSW5GdWxsU2NyZWVuOworCiAgICAgW3NlbGYgX21hbmFn
ZXJdLT5kaWRFbnRlckZ1bGxTY3JlZW4oKTsKICAgICBbc2VsZiBfbWFuYWdlcl0tPnNldEFuaW1h
dGluZ0Z1bGxTY3JlZW4oZmFsc2UpOwogCkBAIC01MDMsNDcgKzUzNiw5MCBAQCAtICh2b2lkKWJl
Z2FuRXhpdEZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOihDR1JlY3QpaW5pdGlhbEZyYW1lIGZp
bmFsRnJhbWU6KENHUgogICAgIFtfd2ViVmlldyBfcGFnZV0tPnNldFN1cHByZXNzVmlzaWJpbGl0
eVVwZGF0ZXModHJ1ZSk7CiAKICAgICBbX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciBkaXNtaXNz
Vmlld0NvbnRyb2xsZXJBbmltYXRlZDpZRVMgY29tcGxldGlvbjpeeworICAgICAgICBpZiAoIVtf
d2ViVmlldyBfcGFnZV0pCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgW3NlbGYgY29t
cGxldGVkRXhpdEZ1bGxTY3JlZW5dOwogICAgIH1dOwogfQogCiAtICh2b2lkKWNvbXBsZXRlZEV4
aXRGdWxsU2NyZWVuCiB7CisgICAgaWYgKF9mdWxsU2NyZWVuU3RhdGUgIT0gRXhpdGluZ0Z1bGxT
Y3JlZW4pCisgICAgICAgIHJldHVybjsKICAgICBfZnVsbFNjcmVlblN0YXRlID0gTm90SW5GdWxs
U2NyZWVuOwogCi0gICAgW193ZWJWaWV3IHNldEZyYW1lOltfd2ViVmlld1BsYWNlaG9sZGVyIGJv
dW5kc11dOwotICAgIFtbX3dlYlZpZXdQbGFjZWhvbGRlciB3aW5kb3ddIGluc2VydFN1YnZpZXc6
X3dlYlZpZXcgYXRJbmRleDowXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NB
VHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKworICAgIFtbX3dlYlZpZXdQbGFj
ZWhvbGRlciBzdXBlcnZpZXddIGluc2VydFN1YnZpZXc6X3dlYlZpZXcgYmVsb3dTdWJ2aWV3Ol93
ZWJWaWV3UGxhY2Vob2xkZXIuZ2V0KCldOworICAgIFtfd2ViVmlldyBzZXRGcmFtZTpbX3dlYlZp
ZXdQbGFjZWhvbGRlciBmcmFtZV1dOworICAgIFtfd2ViVmlldyBzZXRBdXRvcmVzaXppbmdNYXNr
Oltfd2ViVmlld1BsYWNlaG9sZGVyIGF1dG9yZXNpemluZ01hc2tdXTsKIAogICAgIFtbX3dlYlZp
ZXcgd2luZG93XSBtYWtlS2V5QW5kVmlzaWJsZV07CiAKLSAgICBbc2VsZiBfbWFuYWdlcl0tPmRp
ZEV4aXRGdWxsU2NyZWVuKCk7Ci0gICAgW3NlbGYgX21hbmFnZXJdLT5zZXRBbmltYXRpbmdGdWxs
U2NyZWVuKGZhbHNlKTsKLQogICAgIF92aWV3U3RhdGUuYXBwbHlUbyhfd2ViVmlldyk7CiAKICAg
ICBbX3dlYlZpZXcgc2V0TmVlZHNMYXlvdXRdOwogICAgIFtfd2ViVmlldyBsYXlvdXRJZk5lZWRl
ZF07CiAKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworCisgICAgW193aW5kb3cgc2V0SGlk
ZGVuOllFU107CisgICAgX3dpbmRvdyA9IG5pbDsKKworICAgIFtzZWxmIF9tYW5hZ2VyXS0+c2V0
QW5pbWF0aW5nRnVsbFNjcmVlbihmYWxzZSk7CisgICAgW3NlbGYgX21hbmFnZXJdLT5kaWRFeGl0
RnVsbFNjcmVlbigpOworCiAgICAgaWYgKF9yZXBhaW50Q2FsbGJhY2spIHsKICAgICAgICAgX3Jl
cGFpbnRDYWxsYmFjay0+aW52YWxpZGF0ZShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok93
bmVyV2FzSW52YWxpZGF0ZWQpOwogICAgICAgICBBU1NFUlQoIV9yZXBhaW50Q2FsbGJhY2spOwog
ICAgIH0KLSAgICBfcmVwYWludENhbGxiYWNrID0gVm9pZENhbGxiYWNrOjpjcmVhdGUoW3Byb3Rl
Y3RlZFNlbGYgPSBSZXRhaW5QdHI8V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcj4oc2VsZiks
IHNlbGZdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgewotICAgICAgICByZXBsYWNlVmll
d1dpdGhWaWV3KF93ZWJWaWV3UGxhY2Vob2xkZXIuZ2V0KCksIF93ZWJWaWV3KTsKKworICAgIF9y
ZXBhaW50Q2FsbGJhY2sgPSBWb2lkQ2FsbGJhY2s6OmNyZWF0ZShbcHJvdGVjdGVkU2VsZiA9IHJl
dGFpblB0cihzZWxmKSwgc2VsZl0oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7CiAgICAg
ICAgIF9yZXBhaW50Q2FsbGJhY2sgPSBudWxscHRyOworICAgICAgICBbX3dlYlZpZXdQbGFjZWhv
bGRlciByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKKworICAgICAgICBpZiAoIVtfd2ViVmlldyBfcGFn
ZV0pCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgW193ZWJWaWV3IF9wYWdlXS0+c2V0
U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7CiAgICAgfSk7CisKICAgICBbX3dlYlZp
ZXcgX3BhZ2VdLT5mb3JjZVJlcGFpbnQoX3JlcGFpbnRDYWxsYmFjay5jb3B5UmVmKCkpOwogfQog
CistICh2b2lkKWV4aXRGdWxsc2NyZWVuSW1tZWRpYXRlbHkKK3sKKyAgICBpZiAoIVtzZWxmIGlz
RnVsbFNjcmVlbl0pCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghW193ZWJWaWV3IF9wYWdl
XSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW3NlbGYgX21hbmFnZXJdLT5yZXF1ZXN0RXhpdEZ1
bGxTY3JlZW4oKTsKKyAgICBbc2VsZiBleGl0RnVsbFNjcmVlbl07CisgICAgX2Z1bGxTY3JlZW5T
dGF0ZSA9IEV4aXRpbmdGdWxsU2NyZWVuOworICAgIFtzZWxmIGNvbXBsZXRlZEV4aXRGdWxsU2Ny
ZWVuXTsKKyAgICByZXBsYWNlVmlld1dpdGhWaWV3KF93ZWJWaWV3UGxhY2Vob2xkZXIuZ2V0KCks
IF93ZWJWaWV3KTsKKyAgICBbX3dlYlZpZXcgX3BhZ2VdLT5zZXRTdXBwcmVzc1Zpc2liaWxpdHlV
cGRhdGVzKGZhbHNlKTsKKyAgICBbc2VsZiBfbWFuYWdlcl0tPmRpZEV4aXRGdWxsU2NyZWVuKCk7
CisgICAgW3NlbGYgX21hbmFnZXJdLT5zZXRBbmltYXRpbmdGdWxsU2NyZWVuKGZhbHNlKTsKKyAg
ICBfd2ViVmlld1BsYWNlaG9sZGVyID0gbmlsOworfQorCiAtICh2b2lkKWNsb3NlCiB7Ci0gICAg
aWYgKFtzZWxmIGlzRnVsbFNjcmVlbl0pCi0gICAgICAgIFtzZWxmIGV4aXRGdWxsU2NyZWVuXTsK
LSAgICAKKyAgICBbc2VsZiBleGl0RnVsbHNjcmVlbkltbWVkaWF0ZWx5XTsKICAgICBfd2ViVmll
dyA9IG5pbDsKIH0KIAorLSAodm9pZCl3ZWJWaWV3RGlkUmVtb3ZlRnJvbVN1cGVydmlld1doaWxl
SW5GdWxsc2NyZWVuCit7CisgICAgaWYgKF9mdWxsU2NyZWVuU3RhdGUgPT0gSW5GdWxsU2NyZWVu
ICYmIF93ZWJWaWV3LndpbmRvdyAhPSBfd2luZG93LmdldCgpKQorICAgICAgICBbc2VsZiBleGl0
RnVsbHNjcmVlbkltbWVkaWF0ZWx5XTsKK30KKwogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFy
ayBJbnRlcm5hbCBJbnRlcmZhY2UKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>