<?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>178240</bug_id>
          
          <creation_ts>2017-10-12 15:52:07 -0700</creation_ts>
          <short_desc>Expose some of WKView&apos;s WebViewImpl accessors through WKWebViewPrivate</short_desc>
          <delta_ts>2018-01-27 10:16:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>jeffm</cc>
    
    <cc>mitz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1359784</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-10-12 15:52:07 -0700</bug_when>
    <thetext>Expose some of WKView&apos;s WebViewImpl accessors through WKWebViewPrivate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359787</commentid>
    <comment_count>1</comment_count>
      <attachid>323583</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-10-12 15:55:27 -0700</bug_when>
    <thetext>Created attachment 323583
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359813</commentid>
    <comment_count>2</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2017-10-12 16:32:26 -0700</bug_when>
    <thetext>rdar://problem/34962720</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359814</commentid>
    <comment_count>3</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2017-10-12 16:33:05 -0700</bug_when>
    <thetext>Can you add the immediate action methods as well?

- (void)_prepareForImmediateActionAnimation;
- (void)_cancelImmediateActionAnimation;
- (void)_completeImmediateActionAnimation;

These methods are overridden in Safari, so the fact that they are no-ops in WebKit is misleading. We need WebKit to invoke these methods at the right time in WKWebView, e.g.:

- (void)_web_prepareForImmediateActionAnimation
{
    [self _prepareForImmediateActionAnimation];
}

Currently, _web_prepareForImmediateActionAnimation/_web_cancelImmediateActionAnimation/_web_completeImmediateActionAnimation do nothing in WKWebView, unlike WKView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359819</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-10-12 16:43:44 -0700</bug_when>
    <thetext>Behavior equivalent to WKView can already be achieved by overriding _web_prepareForImmediateActionAnimation et al. in subclasses, so those are not blocking.  We aren&apos;t going to add yet another layer of selectors that do nothing but call selectors because a subclass may have overridden it.  Those will be added as WKUIDelegatePrivate callbacks when we decide to organize this in a sane way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359821</commentid>
    <comment_count>5</comment_count>
      <attachid>323583</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-10-12 16:49:48 -0700</bug_when>
    <thetext>Comment on attachment 323583
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:403
&gt; +@property (copy, nonatomic, setter=_setUnderlayColor:) NSColor *_underlayColor;

Can we put the nonatomic first, like the others? Also would be nice to group this with the the properties below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359825</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-10-12 16:55:53 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Behavior equivalent to WKView can already be achieved by overriding
&gt; _web_prepareForImmediateActionAnimation et al. in subclasses, so those are
&gt; not blocking.  We aren&apos;t going to add yet another layer of selectors that do
&gt; nothing but call selectors because a subclass may have overridden it.  Those
&gt; will be added as WKUIDelegatePrivate callbacks when we decide to organize
&gt; this in a sane way.

I think we don&apos;t need these to be _web_ things, since they call self, not super -- we can just call the real thing (without the _web prefix) from WebViewImpl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359836</commentid>
    <comment_count>7</comment_count>
      <attachid>323607</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-10-12 17:22:17 -0700</bug_when>
    <thetext>Created attachment 323607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359841</commentid>
    <comment_count>8</comment_count>
      <attachid>323608</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-10-12 17:27:14 -0700</bug_when>
    <thetext>Created attachment 323608
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359852</commentid>
    <comment_count>9</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-10-12 17:41:58 -0700</bug_when>
    <thetext>http://trac.webkit.org/r223267</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393864</commentid>
    <comment_count>10</comment_count>
      <attachid>323608</attachid>
    <who name="">mitz</who>
    <bug_when>2018-01-27 10:16:42 -0800</bug_when>
    <thetext>Comment on attachment 323608
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:408
&gt; +@property (nonatomic, copy, setter=_setUnderlayColor:) NSColor *_underlayColor;

Why is this one not annotated with availability?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323583</attachid>
            <date>2017-10-12 15:55:27 -0700</date>
            <delta_ts>2017-10-12 17:22:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178240-20171012155526.patch</filename>
            <type>text/plain</type>
            <size>10796</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjMyNjIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE3LTEwLTEyICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXhwb3NlIHNvbWUg
b2YgV0tWaWV3J3MgV2ViVmlld0ltcGwgYWNjZXNzb3JzIHRocm91Z2ggV0tXZWJWaWV3UHJpdmF0
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjQw
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDk2MjcyMD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFsc28gcmVuYW1lZCBjcmVhdGVG
dWxsU2NyZWVuV2luZG93IHRvIGZ1bGxTY3JlZW5XaW5kb3cgdG8gcmVmbGVjdCB0aGUgZmFjdCB0
aGF0IGl0IHJldHVybnMKKyAgICAgICAgYW4gYXV0b3JlbGVhc2VkIE5TV2luZG93IHNvIHdlIGRv
bid0IG1ha2UgdGhlIHNhbWUgbmFtaW5nIG1pc3Rha2UgaW4gdGhlIFdLV2ViVmlldyBTUEkuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBfc2V0RnJhbWU6YW5kU2Nyb2xsQnk6XSk6CisgICAgICAgICgtW1dLV2Vi
VmlldyBfc2V0VG90YWxIZWlnaHRPZkJhbm5lcnM6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBf
dG90YWxIZWlnaHRPZkJhbm5lcnNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9iZWdpbkRlZmVy
cmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9lbmREZWZl
cnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZW5kRGVm
ZXJyaW5nVmlld0luV2luZG93Q2hhbmdlc1N5bmNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9n
ZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOl0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX3NldElnbm9yZXNOb25XaGVlbEV2ZW50czpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9p
Z25vcmVzTm9uV2hlZWxFdmVudHNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRDdXN0b21T
d2lwZVZpZXdzOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldEN1c3RvbVN3aXBlVmlld3NU
b3BDb250ZW50SW5zZXQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfdHJ5VG9Td2lwZVdpdGhF
dmVudDppZ25vcmluZ1Bpbm5lZFN0YXRlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldERp
ZE1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2s6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZnVs
bFNjcmVlblBsYWNlaG9sZGVyVmlld10pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2Z1bGxTY3Jl
ZW5XaW5kb3ddKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaXNhYmxlRnJhbWVTaXplVXBkYXRl
c10pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2VuYWJsZUZyYW1lU2l6ZVVwZGF0ZXNdKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9jYW5DaGFuZ2VGcmFtZUxheW91dDpdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF91bmRlcmxheUNvbG9yXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0VW5k
ZXJsYXlDb2xvcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAg
ICgtW1dLVmlldyBjcmVhdGVGdWxsU2NyZWVuV2luZG93XSk6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZnVsbFNjcmVlbldpbmRv
dyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjcmVhdGVGdWxsU2NyZWVuV2luZG93
KTogRGVsZXRlZC4KKwogMjAxNy0xMC0xMiAgU3RlcGhhbiBTemFibyAgPHN0ZXBoYW4uc3phYm9A
c29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBhZGQgV2ViUHJvY2VzcyBmaWxlcyBmb3Ig
d2luY2Fpcm8gd2Via2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0JKHJldmlzaW9uIDIyMzI1MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTUzNDgsNyAr
NTM0OCw3IEBAIC0gKE5TUHJpbnRPcGVyYXRpb24gKilfcHJpbnRPcGVyYXRpb25XaXQKIAogLSAo
TlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9wZXJhdGlvbldpdGhQcmludEluZm86KE5TUHJpbnRJ
bmZvICopcHJpbnRJbmZvIGZvckZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlCiB7
Ci0gICAgaWYgKGF1dG8gd2ViRnJhbWVQcm94eSA9IF9wYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUo
ZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKQorICAgIGlmIChhdXRvKiB3ZWJGcmFtZVByb3h5ID0gX3Bh
Z2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUhhbmRsZS5fZnJhbWVJRCkpCiAgICAgICAgIHJl
dHVybiBfaW1wbC0+cHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvKHByaW50SW5mbywgKndlYkZy
YW1lUHJveHkpOwogICAgIHJldHVybiBuaWw7CiB9CkBAIC01NjYwLDYgKzU2NjAsMTEzIEBAIC0g
KFdLUGFnZVJlZilfcGFnZVJlZkZvclRyYW5zaXRpb25Ub1dLV2UKICAgICByZXR1cm4gdG9BUEko
X3BhZ2UuZ2V0KCkpOwogfQogCistICh2b2lkKV9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRX
aW5kb3dzCit7CisgICAgX2ltcGwtPmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NG
cm9tVmlld09ubHkoKTsKK30KKworLSAodm9pZClfc2V0RnJhbWU6KE5TUmVjdClyZWN0IGFuZFNj
cm9sbEJ5OihOU1NpemUpb2Zmc2V0Cit7CisgICAgX2ltcGwtPnNldEZyYW1lQW5kU2Nyb2xsQnko
TlNSZWN0VG9DR1JlY3QocmVjdCksIE5TU2l6ZVRvQ0dTaXplKG9mZnNldCkpOworfQorCistICh2
b2lkKV9zZXRUb3RhbEhlaWdodE9mQmFubmVyczooQ0dGbG9hdCl0b3RhbEhlaWdodE9mQmFubmVy
cworeworICAgIF9pbXBsLT5zZXRUb3RhbEhlaWdodE9mQmFubmVycyh0b3RhbEhlaWdodE9mQmFu
bmVycyk7Cit9CisKKy0gKENHRmxvYXQpX3RvdGFsSGVpZ2h0T2ZCYW5uZXJzCit7CisgICAgcmV0
dXJuIF9pbXBsLT50b3RhbEhlaWdodE9mQmFubmVycygpOworfQorCistICh2b2lkKV9iZWdpbkRl
ZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMKK3sKKyAgICBfaW1wbC0+YmVnaW5EZWZlcnJpbmdW
aWV3SW5XaW5kb3dDaGFuZ2VzKCk7Cit9CisKKy0gKHZvaWQpX2VuZERlZmVycmluZ1ZpZXdJbldp
bmRvd0NoYW5nZXMKK3sKKyAgICBfaW1wbC0+ZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdl
cygpOworfQorCistICh2b2lkKV9lbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3luYwor
eworICAgIF9pbXBsLT5lbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3luYygpOworfQor
CistICh2b2lkKV9nZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOihOU0V2ZW50ICop
ZXZlbnQKK3sKKyAgICBfaW1wbC0+Z2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZUZy
b21WaWV3T25seShldmVudCk7Cit9CisKKy0gKHZvaWQpX3NldElnbm9yZXNOb25XaGVlbEV2ZW50
czooQk9PTClpZ25vcmVzTm9uV2hlZWxFdmVudHMKK3sKKyAgICBfaW1wbC0+c2V0SWdub3Jlc05v
bldoZWVsRXZlbnRzKGlnbm9yZXNOb25XaGVlbEV2ZW50cyk7Cit9CisKKy0gKEJPT0wpX2lnbm9y
ZXNOb25XaGVlbEV2ZW50cworeworICAgIHJldHVybiBfaW1wbC0+aWdub3Jlc05vbldoZWVsRXZl
bnRzKCk7Cit9CisKKy0gKHZvaWQpX3NldEN1c3RvbVN3aXBlVmlld3M6KE5TQXJyYXkgKiljdXN0
b21Td2lwZVZpZXdzCit7CisgICAgX2ltcGwtPnNldEN1c3RvbVN3aXBlVmlld3MoY3VzdG9tU3dp
cGVWaWV3cyk7Cit9CisKKy0gKHZvaWQpX3NldEN1c3RvbVN3aXBlVmlld3NUb3BDb250ZW50SW5z
ZXQ6KGZsb2F0KXRvcENvbnRlbnRJbnNldAoreworICAgIF9pbXBsLT5zZXRDdXN0b21Td2lwZVZp
ZXdzVG9wQ29udGVudEluc2V0KHRvcENvbnRlbnRJbnNldCk7Cit9CisKKy0gKEJPT0wpX3RyeVRv
U3dpcGVXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudCBpZ25vcmluZ1Bpbm5lZFN0YXRlOihCT09M
KWlnbm9yaW5nUGlubmVkU3RhdGUKK3sKKyAgICByZXR1cm4gX2ltcGwtPnRyeVRvU3dpcGVXaXRo
RXZlbnQoZXZlbnQsIGlnbm9yaW5nUGlubmVkU3RhdGUpOworfQorCistICh2b2lkKV9zZXREaWRN
b3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrOih2b2lkKF4pKENHUmVjdCkpY2FsbGJhY2sKK3sKKyAg
ICBfaW1wbC0+c2V0RGlkTW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayhjYWxsYmFjayk7Cit9CisK
Ky0gKE5TVmlldyAqKV9mdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3Cit7CisgICAgcmV0dXJuIF9p
bXBsLT5mdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3KCk7Cit9CisKKy0gKE5TV2luZG93ICopX2Z1
bGxTY3JlZW5XaW5kb3cKK3sKKyAgICByZXR1cm4gX2ltcGwtPmZ1bGxTY3JlZW5XaW5kb3coKTsK
K30KKworLSAodm9pZClfZGlzYWJsZUZyYW1lU2l6ZVVwZGF0ZXMKK3sKKyAgICBfaW1wbC0+ZGlz
YWJsZUZyYW1lU2l6ZVVwZGF0ZXMoKTsKK30KKworLSAodm9pZClfZW5hYmxlRnJhbWVTaXplVXBk
YXRlcworeworICAgIF9pbXBsLT5lbmFibGVGcmFtZVNpemVVcGRhdGVzKCk7Cit9CisKKy0gKEJP
T0wpX2NhbkNoYW5nZUZyYW1lTGF5b3V0OihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlCit7
CisgICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1l
KGZyYW1lSGFuZGxlLl9mcmFtZUlEKSkKKyAgICAgICAgcmV0dXJuIF9pbXBsLT5jYW5DaGFuZ2VG
cmFtZUxheW91dCgqd2ViRnJhbWVQcm94eSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCistIChO
U0NvbG9yICopX3VuZGVybGF5Q29sb3IKK3sKKyAgICByZXR1cm4gX2ltcGwtPnVuZGVybGF5Q29s
b3IoKTsKK30KKworLSAodm9pZClfc2V0VW5kZXJsYXlDb2xvcjooTlNDb2xvciAqKXVuZGVybGF5
Q29sb3IKK3sKKyAgICBfaW1wbC0+c2V0VW5kZXJsYXlDb2xvcih1bmRlcmxheUNvbG9yKTsKK30K
KwogLSAoQk9PTClfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXIKIHsKICAgICByZXR1
cm4gX3BhZ2UgJiYgX3BhZ2UtPmhhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNNYW5hZ2VyKCk7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmgJKHJldmlzaW9uIDIyMzI1MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4NSw5ICsz
ODUsMjUgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TSW50ZWdlciwgX1dLUmVjdEVkZwogLSAodm9p
ZClfcmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRBdFBvc2l0aW9uOihDR1BvaW50KXBvc2l0aW9uIGNv
bXBsZXRpb25CbG9jazoodm9pZCAoXikoX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKikpYmxvY2sg
V0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwogLSAodm9pZClfYWNjZXNzaWJpbGl0eVJldHJp
ZXZlUmVjdHNBdFNlbGVjdGlvbk9mZnNldDooTlNJbnRlZ2VyKW9mZnNldCB3aXRoVGV4dDooTlNT
dHJpbmcgKil0ZXh0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0FycmF5PE5TVmFsdWUg
Kj4gKnJlY3RzKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1Nf
VEJBKSk7CiAKLSNlbmRpZiAvLyBUQVJHRVRfT1NfSVBIT05FCi0KLSNpZiAhVEFSR0VUX09TX0lQ
SE9ORQorI2Vsc2UKKy0gKHZvaWQpX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3Mg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworLSAodm9pZClfc2V0RnJhbWU6
KE5TUmVjdClyZWN0IGFuZFNjcm9sbEJ5OihOU1NpemUpb2Zmc2V0IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRv
dGFsSGVpZ2h0T2ZCYW5uZXJzOikgQ0dGbG9hdCBfdG90YWxIZWlnaHRPZkJhbm5lcnMgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworLSAodm9pZClfYmVnaW5EZWZlcnJpbmdW
aWV3SW5XaW5kb3dDaGFuZ2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsK
Ky0gKHZvaWQpX2VuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSkpOworLSAodm9pZClfZW5kRGVmZXJyaW5nVmlld0luV2luZG93
Q2hhbmdlc1N5bmMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworLSAodm9p
ZClfZ2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZTooTlNFdmVudCAqKWV2ZW50IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0gKHZvaWQpX3NldEN1c3RvbVN3
aXBlVmlld3M6KE5TQXJyYXkgKiljdXN0b21Td2lwZVZpZXdzIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpKTsKKy0gKHZvaWQpX3NldEN1c3RvbVN3aXBlVmlld3NUb3BDb250ZW50
SW5zZXQ6KGZsb2F0KXRvcENvbnRlbnRJbnNldCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSk7CistIChOU1ZpZXcgKilfZnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldyBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CistIChOU1dpbmRvdyAqKV9mdWxsU2NyZWVu
V2luZG93IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0gKHZvaWQpX2Rp
c2FibGVGcmFtZVNpemVVcGRhdGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
KTsKKy0gKHZvaWQpX2VuYWJsZUZyYW1lU2l6ZVVwZGF0ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSkpOworLSAoQk9PTClfY2FuQ2hhbmdlRnJhbWVMYXlvdXQ6KF9XS0ZyYW1l
SGFuZGxlICopZnJhbWVIYW5kbGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkp
OworQHByb3BlcnR5IChjb3B5LCBub25hdG9taWMsIHNldHRlcj1fc2V0VW5kZXJsYXlDb2xvcjop
IE5TQ29sb3IgKl91bmRlcmxheUNvbG9yOworLSAoQk9PTClfdHJ5VG9Td2lwZVdpdGhFdmVudDoo
TlNFdmVudCAqKWV2ZW50IGlnbm9yaW5nUGlubmVkU3RhdGU6KEJPT0wpaWdub3JpbmdQaW5uZWRT
dGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV9zZXRE
aWRNb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrOih2b2lkKF4pKENHUmVjdCkpY2FsbGJhY2sgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHM6KSBCT09MIF9pZ25v
cmVzTm9uV2hlZWxFdmVudHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1BhZ2VSZWYgX3BhZ2VSZWZGb3JUcmFu
c2l0aW9uVG9XS1dlYlZpZXcgIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaGFzQWN0aXZlVmlkZW9Gb3JD
b250cm9sc01hbmFnZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpKTsKIC0gKHZvaWQp
X3JlcXVlc3RDb250cm9sbGVkRWxlbWVudElEIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEy
LjMpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCShy
ZXZpc2lvbiAyMjMyNTMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTI0NSw3ICsxMjQ1LDcgQEAgLSAoTlNWaWV3ICopZnVs
bFNjcmVlblBsYWNlaG9sZGVyVmlldwogLy8gRklYTUU6IFRoaXMgcmV0dXJucyBhbiBhdXRvcmVs
ZWFzZWQgb2JqZWN0LiBTaG91bGQgaXQgcmVhbGx5IGJlIHByZWZpeGVkICdjcmVhdGUnPwogLSAo
TlNXaW5kb3cgKiljcmVhdGVGdWxsU2NyZWVuV2luZG93CiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5f
aW1wbC0+Y3JlYXRlRnVsbFNjcmVlbldpbmRvdygpOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwt
PmZ1bGxTY3JlZW5XaW5kb3coKTsKIH0KIAogLSAodm9pZCliZWdpbkRlZmVycmluZ1ZpZXdJbldp
bmRvd0NoYW5nZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaAkocmV2aXNpb24gMjIzMjUzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDcgKzI4Miw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGNsb3NlRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKTsKICNlbmRpZgog
ICAgIE5TVmlldyAqZnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldygpOwotICAgIE5TV2luZG93ICpj
cmVhdGVGdWxsU2NyZWVuV2luZG93KCk7CisgICAgTlNXaW5kb3cgKmZ1bGxTY3JlZW5XaW5kb3co
KTsKIAogICAgIGJvb2wgaXNFZGl0YWJsZSgpIGNvbnN0OwogICAgIGJvb2wgZXhlY3V0ZVNhdmVk
Q29tbWFuZEJ5U2VsZWN0b3IoU0VMKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCShyZXZpc2lvbiAyMjMyNTMpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjQzMiw3
ICsyNDMyLDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6aGFzRnVsbFNjcmVlbldpbmRvd0NvbgogV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlciAqV2ViVmlld0ltcGw6OmZ1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyKCkKIHsKICAgICBpZiAoIW1fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIpCi0g
ICAgICAgIG1fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhXaW5kb3c6Y3JlYXRlRnVsbFNjcmVl
bldpbmRvdygpIHdlYlZpZXc6bV92aWV3LmdldEF1dG9yZWxlYXNlZCgpIHBhZ2U6bV9wYWdlXSk7
CisgICAgICAgIG1fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhXaW5kb3c6ZnVsbFNjcmVlbldp
bmRvdygpIHdlYlZpZXc6bV92aWV3LmdldEF1dG9yZWxlYXNlZCgpIHBhZ2U6bV9wYWdlXSk7CiAK
ICAgICByZXR1cm4gbV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5nZXQoKTsKIH0KQEAgLTI0
NTYsNyArMjQ1Niw3IEBAIE5TVmlldyAqV2ViVmlld0ltcGw6OmZ1bGxTY3JlZW5QbGFjZWhvbGQK
ICAgICByZXR1cm4gbmlsOwogfQogCi1OU1dpbmRvdyAqV2ViVmlld0ltcGw6OmNyZWF0ZUZ1bGxT
Y3JlZW5XaW5kb3coKQorTlNXaW5kb3cgKldlYlZpZXdJbXBsOjpmdWxsU2NyZWVuV2luZG93KCkK
IHsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgcmV0dXJuIFtbW1dlYkNvcmVGdWxs
U2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OltbTlNTY3JlZW4gbWFpblNj
cmVlbl0gZnJhbWVdIHN0eWxlTWFzazooTlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIHwgTlNX
aW5kb3dTdHlsZU1hc2tSZXNpemFibGUpIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBk
ZWZlcjpOT10gYXV0b3JlbGVhc2VdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323607</attachid>
            <date>2017-10-12 17:22:17 -0700</date>
            <delta_ts>2017-10-12 17:27:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178240-20171012172214.patch</filename>
            <type>text/plain</type>
            <size>14108</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjMyNjIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE3LTEwLTEyICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXhwb3NlIHNvbWUg
b2YgV0tWaWV3J3MgV2ViVmlld0ltcGwgYWNjZXNzb3JzIHRocm91Z2ggV0tXZWJWaWV3UHJpdmF0
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjQw
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDk2MjcyMD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFsc28gcmVuYW1lZCBjcmVhdGVG
dWxsU2NyZWVuV2luZG93IHRvIGZ1bGxTY3JlZW5XaW5kb3cgdG8gcmVmbGVjdCB0aGUgZmFjdCB0
aGF0IGl0IHJldHVybnMKKyAgICAgICAgYW4gYXV0b3JlbGVhc2VkIE5TV2luZG93IHNvIHdlIGRv
bid0IG1ha2UgdGhlIHNhbWUgbmFtaW5nIG1pc3Rha2UgaW4gdGhlIFdLV2ViVmlldyBTUEkuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBfc2V0RnJhbWU6YW5kU2Nyb2xsQnk6XSk6CisgICAgICAgICgtW1dLV2Vi
VmlldyBfc2V0VG90YWxIZWlnaHRPZkJhbm5lcnM6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBf
dG90YWxIZWlnaHRPZkJhbm5lcnNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9iZWdpbkRlZmVy
cmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9lbmREZWZl
cnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZW5kRGVm
ZXJyaW5nVmlld0luV2luZG93Q2hhbmdlc1N5bmNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9n
ZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOl0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX3NldElnbm9yZXNOb25XaGVlbEV2ZW50czpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9p
Z25vcmVzTm9uV2hlZWxFdmVudHNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRDdXN0b21T
d2lwZVZpZXdzOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldEN1c3RvbVN3aXBlVmlld3NU
b3BDb250ZW50SW5zZXQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfdHJ5VG9Td2lwZVdpdGhF
dmVudDppZ25vcmluZ1Bpbm5lZFN0YXRlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldERp
ZE1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2s6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZnVs
bFNjcmVlblBsYWNlaG9sZGVyVmlld10pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2Z1bGxTY3Jl
ZW5XaW5kb3ddKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaXNhYmxlRnJhbWVTaXplVXBkYXRl
c10pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2VuYWJsZUZyYW1lU2l6ZVVwZGF0ZXNdKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9jYW5DaGFuZ2VGcmFtZUxheW91dDpdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF91bmRlcmxheUNvbG9yXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0VW5k
ZXJsYXlDb2xvcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAg
ICgtW1dLVmlldyBjcmVhdGVGdWxsU2NyZWVuV2luZG93XSk6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZnVsbFNjcmVlbldpbmRv
dyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjcmVhdGVGdWxsU2NyZWVuV2luZG93
KTogRGVsZXRlZC4KKwogMjAxNy0xMC0xMiAgU3RlcGhhbiBTemFibyAgPHN0ZXBoYW4uc3phYm9A
c29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBhZGQgV2ViUHJvY2VzcyBmaWxlcyBmb3Ig
d2luY2Fpcm8gd2Via2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tVSURlbGVnYXRlUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJKHJldmlzaW9uIDIyMzI1MykKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE1MCw2ICsxNTAsOSBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwog
I2VuZGlmCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZENoYW5nZVNh
ZmVBcmVhU2hvdWxkQWZmZWN0T2JzY3VyZWRJbnNldHM6KEJPT0wpc2FmZUFyZWFTaG91bGRBZmZl
Y3RPYnNjdXJlZEluc2V0cyBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAjZWxzZQorLSAo
dm9pZClfcHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbiBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV9jYW5jZWxJbW1lZGlhdGVBY3Rpb25Bbmlt
YXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworLSAodm9pZClfY29t
cGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSkpOwogLSAodm9pZClfc2hvd1dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogLSAodm9pZClfZm9jdXNXZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
KTsKIC0gKHZvaWQpX3VuZm9jdXNXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaAkocmV2aXNpb24gMjIzMjUzKQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNiBAQAogI2lmICFUQVJHRVRfT1NfSVBIT05FCiAKICNp
bXBvcnQgPFdlYktpdC9XS0Jhc2UuaD4KLSNpbXBvcnQgPFdlYktpdC9XS0ltbWVkaWF0ZUFjdGlv
blR5cGVzLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tMYXlvdXRNb2RlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tWaWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmg+
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0JKHJldmlzaW9uIDIyMzI1MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTM2ODMsMTggKzM2ODMsMzEgQEAgLSAo
aWQpX3dlYl9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cgogICAgIHJldHVybiBbc2VsZiBf
aW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6d3JhcHBl
cigqaGl0VGVzdFJlc3VsdCkgd2l0aFR5cGU6KF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpdHlwZSB1
c2VyRGF0YTpkYXRhXTsKIH0KIAotLy8gV2UgZG9uJ3QgZXhwb3NlIHRoZXNlIHZhcmlvdXMgYml0
cyBvZiBTUEkgbGlrZSBXS1ZpZXcgZG9lcywKLS8vIHNvIGhhdmUgdGhlc2UgaW50ZXJuYWwgbWV0
aG9kcyBqdXN0IGRvIHRoZSB3b3JrIChvciBkbyBub3RoaW5nKToKIC0gKHZvaWQpX3dlYl9wcmVw
YXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uCiB7CisgICAgaWQgPFdLVUlEZWxlZ2F0ZVBy
aXZhdGU+IHVpRGVsZWdhdGUgPSAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KVtzZWxmIFVJRGVs
ZWdhdGVdOworICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF9wcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uOildKQorICAgICAgICBbdWlEZWxl
Z2F0ZSBfcHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl07CisgICAgZWxzZQorICAg
ICAgICBbc2VsZiBfcHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl07CiB9CiAKIC0g
KHZvaWQpX3dlYl9jYW5jZWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24KIHsKKyAgICBpZCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4p
W3NlbGYgVUlEZWxlZ2F0ZV07CisgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX2NhbmNlbEltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbjopXSkKKyAgICAgICAg
W3VpRGVsZWdhdGUgX2NhbmNlbEltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl07CisgICAgZWxzZQor
ICAgICAgICBbc2VsZiBfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uXTsKIH0KIAogLSAo
dm9pZClfd2ViX2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uCiB7CisgICAgaWQgPFdL
VUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+
KVtzZWxmIFVJRGVsZWdhdGVdOworICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbjopXSkKKyAgICAg
ICAgW3VpRGVsZWdhdGUgX2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uXTsKKyAgICBl
bHNlCisgICAgICAgIFtzZWxmIF9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl07CiB9
CiAKIC0gKHZvaWQpX3dlYl9kaWRDaGFuZ2VDb250ZW50U2l6ZTooTlNTaXplKW5ld1NpemUKQEAg
LTUzNDgsNyArNTM2MSw3IEBAIC0gKE5TUHJpbnRPcGVyYXRpb24gKilfcHJpbnRPcGVyYXRpb25X
aXQKIAogLSAoTlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9wZXJhdGlvbldpdGhQcmludEluZm86
KE5TUHJpbnRJbmZvICopcHJpbnRJbmZvIGZvckZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1l
SGFuZGxlCiB7Ci0gICAgaWYgKGF1dG8gd2ViRnJhbWVQcm94eSA9IF9wYWdlLT5wcm9jZXNzKCku
d2ViRnJhbWUoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKQorICAgIGlmIChhdXRvKiB3ZWJGcmFtZVBy
b3h5ID0gX3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUhhbmRsZS5fZnJhbWVJRCkpCiAg
ICAgICAgIHJldHVybiBfaW1wbC0+cHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvKHByaW50SW5m
bywgKndlYkZyYW1lUHJveHkpOwogICAgIHJldHVybiBuaWw7CiB9CkBAIC01NjYwLDYgKzU2NzMs
MTI1IEBAIC0gKFdLUGFnZVJlZilfcGFnZVJlZkZvclRyYW5zaXRpb25Ub1dLV2UKICAgICByZXR1
cm4gdG9BUEkoX3BhZ2UuZ2V0KCkpOwogfQogCistICh2b2lkKV9kaXNtaXNzQ29udGVudFJlbGF0
aXZlQ2hpbGRXaW5kb3dzCit7CisgICAgX2ltcGwtPmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGls
ZFdpbmRvd3NGcm9tVmlld09ubHkoKTsKK30KKworLSAodm9pZClfc2V0RnJhbWU6KE5TUmVjdCly
ZWN0IGFuZFNjcm9sbEJ5OihOU1NpemUpb2Zmc2V0Cit7CisgICAgX2ltcGwtPnNldEZyYW1lQW5k
U2Nyb2xsQnkoTlNSZWN0VG9DR1JlY3QocmVjdCksIE5TU2l6ZVRvQ0dTaXplKG9mZnNldCkpOwor
fQorCistICh2b2lkKV9zZXRUb3RhbEhlaWdodE9mQmFubmVyczooQ0dGbG9hdCl0b3RhbEhlaWdo
dE9mQmFubmVycworeworICAgIF9pbXBsLT5zZXRUb3RhbEhlaWdodE9mQmFubmVycyh0b3RhbEhl
aWdodE9mQmFubmVycyk7Cit9CisKKy0gKENHRmxvYXQpX3RvdGFsSGVpZ2h0T2ZCYW5uZXJzCit7
CisgICAgcmV0dXJuIF9pbXBsLT50b3RhbEhlaWdodE9mQmFubmVycygpOworfQorCistICh2b2lk
KV9iZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMKK3sKKyAgICBfaW1wbC0+YmVnaW5E
ZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzKCk7Cit9CisKKy0gKHZvaWQpX2VuZERlZmVycmlu
Z1ZpZXdJbldpbmRvd0NoYW5nZXMKK3sKKyAgICBfaW1wbC0+ZW5kRGVmZXJyaW5nVmlld0luV2lu
ZG93Q2hhbmdlcygpOworfQorCistICh2b2lkKV9lbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFu
Z2VzU3luYworeworICAgIF9pbXBsLT5lbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3lu
YygpOworfQorCistICh2b2lkKV9nZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOihO
U0V2ZW50ICopZXZlbnQKK3sKKyAgICBfaW1wbC0+Z2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5
V2ViQ29yZUZyb21WaWV3T25seShldmVudCk7Cit9CisKKy0gKHZvaWQpX3NldElnbm9yZXNOb25X
aGVlbEV2ZW50czooQk9PTClpZ25vcmVzTm9uV2hlZWxFdmVudHMKK3sKKyAgICBfaW1wbC0+c2V0
SWdub3Jlc05vbldoZWVsRXZlbnRzKGlnbm9yZXNOb25XaGVlbEV2ZW50cyk7Cit9CisKKy0gKEJP
T0wpX2lnbm9yZXNOb25XaGVlbEV2ZW50cworeworICAgIHJldHVybiBfaW1wbC0+aWdub3Jlc05v
bldoZWVsRXZlbnRzKCk7Cit9CisKKy0gKHZvaWQpX3NldEN1c3RvbVN3aXBlVmlld3M6KE5TQXJy
YXkgKiljdXN0b21Td2lwZVZpZXdzCit7CisgICAgX2ltcGwtPnNldEN1c3RvbVN3aXBlVmlld3Mo
Y3VzdG9tU3dpcGVWaWV3cyk7Cit9CisKKy0gKHZvaWQpX3NldEN1c3RvbVN3aXBlVmlld3NUb3BD
b250ZW50SW5zZXQ6KGZsb2F0KXRvcENvbnRlbnRJbnNldAoreworICAgIF9pbXBsLT5zZXRDdXN0
b21Td2lwZVZpZXdzVG9wQ29udGVudEluc2V0KHRvcENvbnRlbnRJbnNldCk7Cit9CisKKy0gKEJP
T0wpX3RyeVRvU3dpcGVXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudCBpZ25vcmluZ1Bpbm5lZFN0
YXRlOihCT09MKWlnbm9yaW5nUGlubmVkU3RhdGUKK3sKKyAgICByZXR1cm4gX2ltcGwtPnRyeVRv
U3dpcGVXaXRoRXZlbnQoZXZlbnQsIGlnbm9yaW5nUGlubmVkU3RhdGUpOworfQorCistICh2b2lk
KV9zZXREaWRNb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrOih2b2lkKF4pKENHUmVjdCkpY2FsbGJh
Y2sKK3sKKyAgICBfaW1wbC0+c2V0RGlkTW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayhjYWxsYmFj
ayk7Cit9CisKKy0gKE5TVmlldyAqKV9mdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3Cit7CisgICAg
cmV0dXJuIF9pbXBsLT5mdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3KCk7Cit9CisKKy0gKE5TV2lu
ZG93ICopX2Z1bGxTY3JlZW5XaW5kb3cKK3sKKyAgICByZXR1cm4gX2ltcGwtPmZ1bGxTY3JlZW5X
aW5kb3coKTsKK30KKworLSAodm9pZClfZGlzYWJsZUZyYW1lU2l6ZVVwZGF0ZXMKK3sKKyAgICBf
aW1wbC0+ZGlzYWJsZUZyYW1lU2l6ZVVwZGF0ZXMoKTsKK30KKworLSAodm9pZClfZW5hYmxlRnJh
bWVTaXplVXBkYXRlcworeworICAgIF9pbXBsLT5lbmFibGVGcmFtZVNpemVVcGRhdGVzKCk7Cit9
CisKKy0gKHZvaWQpX3ByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24KK3sKK30KKwor
LSAodm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uCit7Cit9CisKKy0gKHZvaWQp
X2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uCit7Cit9CisKKy0gKEJPT0wpX2NhbkNo
YW5nZUZyYW1lTGF5b3V0OihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlCit7CisgICAgaWYg
KGF1dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSGFu
ZGxlLl9mcmFtZUlEKSkKKyAgICAgICAgcmV0dXJuIF9pbXBsLT5jYW5DaGFuZ2VGcmFtZUxheW91
dCgqd2ViRnJhbWVQcm94eSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCistIChOU0NvbG9yICop
X3VuZGVybGF5Q29sb3IKK3sKKyAgICByZXR1cm4gX2ltcGwtPnVuZGVybGF5Q29sb3IoKTsKK30K
KworLSAodm9pZClfc2V0VW5kZXJsYXlDb2xvcjooTlNDb2xvciAqKXVuZGVybGF5Q29sb3IKK3sK
KyAgICBfaW1wbC0+c2V0VW5kZXJsYXlDb2xvcih1bmRlcmxheUNvbG9yKTsKK30KKwogLSAoQk9P
TClfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXIKIHsKICAgICByZXR1cm4gX3BhZ2Ug
JiYgX3BhZ2UtPmhhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNNYW5hZ2VyKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRl
LmgJKHJldmlzaW9uIDIyMzI1MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4NSw5ICszODUsMjggQEAg
dHlwZWRlZiBOU19PUFRJT05TKE5TSW50ZWdlciwgX1dLUmVjdEVkZwogLSAodm9pZClfcmVxdWVz
dEFjdGl2YXRlZEVsZW1lbnRBdFBvc2l0aW9uOihDR1BvaW50KXBvc2l0aW9uIGNvbXBsZXRpb25C
bG9jazoodm9pZCAoXikoX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKikpYmxvY2sgV0tfQVBJX0FW
QUlMQUJMRShpb3MoMTEuMCkpOwogLSAodm9pZClfYWNjZXNzaWJpbGl0eVJldHJpZXZlUmVjdHNB
dFNlbGVjdGlvbk9mZnNldDooTlNJbnRlZ2VyKW9mZnNldCB3aXRoVGV4dDooTlNTdHJpbmcgKil0
ZXh0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0FycmF5PE5TVmFsdWUgKj4gKnJlY3Rz
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAK
LSNlbmRpZiAvLyBUQVJHRVRfT1NfSVBIT05FCi0KLSNpZiAhVEFSR0VUX09TX0lQSE9ORQorI2Vs
c2UKKy0gKHZvaWQpX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3MgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworLSAodm9pZClfc2V0RnJhbWU6KE5TUmVjdCly
ZWN0IGFuZFNjcm9sbEJ5OihOU1NpemUpb2Zmc2V0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpKTsKKy0gKHZvaWQpX2JlZ2luRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV9lbmREZWZlcnJp
bmdWaWV3SW5XaW5kb3dDaGFuZ2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
KTsKKy0gKHZvaWQpX2VuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNTeW5jIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0gKHZvaWQpX2dlc3R1cmVFdmVudFdhc05v
dEhhbmRsZWRCeVdlYkNvcmU6KE5TRXZlbnQgKilldmVudCBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSk7CistICh2b2lkKV9zZXRDdXN0b21Td2lwZVZpZXdzOihOU0FycmF5ICop
Y3VzdG9tU3dpcGVWaWV3cyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7Cist
ICh2b2lkKV9zZXRDdXN0b21Td2lwZVZpZXdzVG9wQ29udGVudEluc2V0OihmbG9hdCl0b3BDb250
ZW50SW5zZXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworLSAoTlNWaWV3
ICopX2Z1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSkpOworLSAoTlNXaW5kb3cgKilfZnVsbFNjcmVlbldpbmRvdyBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV9kaXNhYmxlRnJhbWVTaXplVXBkYXRl
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV9lbmFibGVG
cmFtZVNpemVVcGRhdGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0g
KHZvaWQpX3ByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24gV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSkpOworLSAodm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5p
bWF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0gKHZvaWQpX2Nv
bXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpKTsKKy0gKEJPT0wpX2NhbkNoYW5nZUZyYW1lTGF5b3V0OihfV0tGcmFtZUhhbmRs
ZSAqKWZyYW1lSGFuZGxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0g
KEJPT0wpX3RyeVRvU3dpcGVXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudCBpZ25vcmluZ1Bpbm5l
ZFN0YXRlOihCT09MKWlnbm9yaW5nUGlubmVkU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSkpOworLSAodm9pZClfc2V0RGlkTW92ZVN3aXBlU25hcHNob3RDYWxsYmFjazoo
dm9pZCheKShDR1JlY3QpKWNhbGxiYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRvdGFsSGVpZ2h0T2ZCYW5u
ZXJzOikgQ0dGbG9hdCBfdG90YWxIZWlnaHRPZkJhbm5lcnMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0
VW5kZXJsYXlDb2xvcjopIE5TQ29sb3IgKl91bmRlcmxheUNvbG9yOworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHM6KSBCT09M
IF9pZ25vcmVzTm9uV2hlZWxFdmVudHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1BhZ2VSZWYgX3BhZ2VSZWZG
b3JUcmFuc2l0aW9uVG9XS1dlYlZpZXcgIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaGFzQWN0aXZlVmlk
ZW9Gb3JDb250cm9sc01hbmFnZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpKTsKIC0g
KHZvaWQpX3JlcXVlc3RDb250cm9sbGVkRWxlbWVudElEIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEyLjMpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tCShyZXZpc2lvbiAyMjMyNTMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTI0NSw3ICsxMjQ1LDcgQEAgLSAoTlNWaWV3
ICopZnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldwogLy8gRklYTUU6IFRoaXMgcmV0dXJucyBhbiBh
dXRvcmVsZWFzZWQgb2JqZWN0LiBTaG91bGQgaXQgcmVhbGx5IGJlIHByZWZpeGVkICdjcmVhdGUn
PwogLSAoTlNXaW5kb3cgKiljcmVhdGVGdWxsU2NyZWVuV2luZG93CiB7Ci0gICAgcmV0dXJuIF9k
YXRhLT5faW1wbC0+Y3JlYXRlRnVsbFNjcmVlbldpbmRvdygpOworICAgIHJldHVybiBfZGF0YS0+
X2ltcGwtPmZ1bGxTY3JlZW5XaW5kb3coKTsKIH0KIAogLSAodm9pZCliZWdpbkRlZmVycmluZ1Zp
ZXdJbldpbmRvd0NoYW5nZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwuaAkocmV2aXNpb24gMjIzMjUzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDcgKzI4Miw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNsb3NlRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKTsKICNl
bmRpZgogICAgIE5TVmlldyAqZnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldygpOwotICAgIE5TV2lu
ZG93ICpjcmVhdGVGdWxsU2NyZWVuV2luZG93KCk7CisgICAgTlNXaW5kb3cgKmZ1bGxTY3JlZW5X
aW5kb3coKTsKIAogICAgIGJvb2wgaXNFZGl0YWJsZSgpIGNvbnN0OwogICAgIGJvb2wgZXhlY3V0
ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3IoU0VMKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCShyZXZpc2lvbiAyMjMyNTMpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQkod29ya2luZyBjb3B5KQpAQCAt
MjQzMiw3ICsyNDMyLDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6aGFzRnVsbFNjcmVlbldpbmRvd0Nv
bgogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciAqV2ViVmlld0ltcGw6OmZ1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVyKCkKIHsKICAgICBpZiAoIW1fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIpCi0gICAgICAgIG1fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhXaW5kb3c6Y3JlYXRlRnVs
bFNjcmVlbldpbmRvdygpIHdlYlZpZXc6bV92aWV3LmdldEF1dG9yZWxlYXNlZCgpIHBhZ2U6bV9w
YWdlXSk7CisgICAgICAgIG1fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgPSBhZG9wdE5TKFtb
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhXaW5kb3c6ZnVsbFNj
cmVlbldpbmRvdygpIHdlYlZpZXc6bV92aWV3LmdldEF1dG9yZWxlYXNlZCgpIHBhZ2U6bV9wYWdl
XSk7CiAKICAgICByZXR1cm4gbV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5nZXQoKTsKIH0K
QEAgLTI0NTYsNyArMjQ1Niw3IEBAIE5TVmlldyAqV2ViVmlld0ltcGw6OmZ1bGxTY3JlZW5QbGFj
ZWhvbGQKICAgICByZXR1cm4gbmlsOwogfQogCi1OU1dpbmRvdyAqV2ViVmlld0ltcGw6OmNyZWF0
ZUZ1bGxTY3JlZW5XaW5kb3coKQorTlNXaW5kb3cgKldlYlZpZXdJbXBsOjpmdWxsU2NyZWVuV2lu
ZG93KCkKIHsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgcmV0dXJuIFtbW1dlYkNv
cmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OltbTlNTY3JlZW4g
bWFpblNjcmVlbl0gZnJhbWVdIHN0eWxlTWFzazooTlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNz
IHwgTlNXaW5kb3dTdHlsZU1hc2tSZXNpemFibGUpIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZm
ZXJlZCBkZWZlcjpOT10gYXV0b3JlbGVhc2VdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323608</attachid>
            <date>2017-10-12 17:27:14 -0700</date>
            <delta_ts>2017-10-12 17:40:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178240-20171012172711.patch</filename>
            <type>text/plain</type>
            <size>15014</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjMyNjIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE3LTEwLTEyICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXhwb3NlIHNvbWUg
b2YgV0tWaWV3J3MgV2ViVmlld0ltcGwgYWNjZXNzb3JzIHRocm91Z2ggV0tXZWJWaWV3UHJpdmF0
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjQw
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDk2MjcyMD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFsc28gcmVuYW1lZCBjcmVhdGVG
dWxsU2NyZWVuV2luZG93IHRvIGZ1bGxTY3JlZW5XaW5kb3cgdG8gcmVmbGVjdCB0aGUgZmFjdCB0
aGF0IGl0IHJldHVybnMKKyAgICAgICAgYW4gYXV0b3JlbGVhc2VkIE5TV2luZG93IHNvIHdlIGRv
bid0IG1ha2UgdGhlIHNhbWUgbmFtaW5nIG1pc3Rha2UgaW4gdGhlIFdLV2ViVmlldyBTUEkuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBfc2V0RnJhbWU6YW5kU2Nyb2xsQnk6XSk6CisgICAgICAgICgtW1dLV2Vi
VmlldyBfc2V0VG90YWxIZWlnaHRPZkJhbm5lcnM6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBf
dG90YWxIZWlnaHRPZkJhbm5lcnNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9iZWdpbkRlZmVy
cmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9lbmREZWZl
cnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZW5kRGVm
ZXJyaW5nVmlld0luV2luZG93Q2hhbmdlc1N5bmNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9n
ZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOl0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX3NldElnbm9yZXNOb25XaGVlbEV2ZW50czpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9p
Z25vcmVzTm9uV2hlZWxFdmVudHNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRDdXN0b21T
d2lwZVZpZXdzOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldEN1c3RvbVN3aXBlVmlld3NU
b3BDb250ZW50SW5zZXQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfdHJ5VG9Td2lwZVdpdGhF
dmVudDppZ25vcmluZ1Bpbm5lZFN0YXRlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldERp
ZE1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2s6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZnVs
bFNjcmVlblBsYWNlaG9sZGVyVmlld10pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2Z1bGxTY3Jl
ZW5XaW5kb3ddKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaXNhYmxlRnJhbWVTaXplVXBkYXRl
c10pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2VuYWJsZUZyYW1lU2l6ZVVwZGF0ZXNdKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9jYW5DaGFuZ2VGcmFtZUxheW91dDpdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF91bmRlcmxheUNvbG9yXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0VW5k
ZXJsYXlDb2xvcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAg
ICgtW1dLVmlldyBjcmVhdGVGdWxsU2NyZWVuV2luZG93XSk6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZnVsbFNjcmVlbldpbmRv
dyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjcmVhdGVGdWxsU2NyZWVuV2luZG93
KTogRGVsZXRlZC4KKwogMjAxNy0xMC0xMiAgU3RlcGhhbiBTemFibyAgPHN0ZXBoYW4uc3phYm9A
c29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBhZGQgV2ViUHJvY2VzcyBmaWxlcyBmb3Ig
d2luY2Fpcm8gd2Via2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tVSURlbGVnYXRlUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJKHJldmlzaW9uIDIyMzI1MykKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE0OSw3ICsxNDksMTAgQEAgc3RydWN0IFVJRWRnZUluc2V0czsK
IC0gKE5TSW50ZWdlcilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkYXRhT3duZXJGb3JE
cmFnU2Vzc2lvbjooaWQgPFVJRHJhZ1Nlc3Npb24+KXNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShp
b3MoMTEuMCkpOwogI2VuZGlmCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGRpZENoYW5nZVNhZmVBcmVhU2hvdWxkQWZmZWN0T2JzY3VyZWRJbnNldHM6KEJPT0wpc2FmZUFy
ZWFTaG91bGRBZmZlY3RPYnNjdXJlZEluc2V0cyBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7
Ci0jZWxzZQorI2Vsc2UgLy8gVEFSR0VUX09TX0lQSE9ORQorLSAodm9pZClfcHJlcGFyZUZvcklt
bWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworLSAodm9pZClfY2FuY2VsSW1tZWRp
YXRlQWN0aW9uQW5pbWF0aW9uRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV9jb21wbGV0ZUltbWVkaWF0
ZUFjdGlvbkFuaW1hdGlvbkZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogLSAodm9pZClfc2hvd1dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogLSAo
dm9pZClfZm9jdXNXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpKTsKIC0gKHZvaWQpX3VuZm9jdXNXZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKQEAgLTE3NCw3
ICsxNzcsNyBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyB1bmF2YWlsYWJsZVBsdWdJbkJ1dHRvbkNsaWNrZWRXaXRoUmVhc29uOihf
V0tQbHVnSW5VbmF2YWlsYWJpbGl0eVJlYXNvbilyZWFzb24gcGx1Z0luSW5mbzooTlNEaWN0aW9u
YXJ5ICopcGx1Z0luSW5mbzsKIC0gKE5TTWVudSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZvckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51
RWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSk7CiAt
IChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVudTooTlNN
ZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICopZWxlbWVu
dCB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMikpOwotI2VuZGlmCisjZW5kaWYgLy8gVEFSR0VUX09TX0lQSE9ORQogCiBA
ZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2
YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
Vmlld1ByaXZhdGUuaAkocmV2aXNpb24gMjIzMjUzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYs
NiBAQAogI2lmICFUQVJHRVRfT1NfSVBIT05FCiAKICNpbXBvcnQgPFdlYktpdC9XS0Jhc2UuaD4K
LSNpbXBvcnQgPFdlYktpdC9XS0ltbWVkaWF0ZUFjdGlvblR5cGVzLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tMYXlvdXRNb2RlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tWaWV3Lmg+CiAjaW1wb3J0IDxX
ZWJLaXQvX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHJldmlzaW9uIDIyMzI1MykKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTM2ODMsMTggKzM2ODMsMzEgQEAgLSAoaWQpX3dlYl9pbW1lZGlhdGVBY3Rpb25B
bmltYXRpb25Db250cgogICAgIHJldHVybiBbc2VsZiBfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9u
Q29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6d3JhcHBlcigqaGl0VGVzdFJlc3VsdCkgd2l0aFR5
cGU6KF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpdHlwZSB1c2VyRGF0YTpkYXRhXTsKIH0KIAotLy8g
V2UgZG9uJ3QgZXhwb3NlIHRoZXNlIHZhcmlvdXMgYml0cyBvZiBTUEkgbGlrZSBXS1ZpZXcgZG9l
cywKLS8vIHNvIGhhdmUgdGhlc2UgaW50ZXJuYWwgbWV0aG9kcyBqdXN0IGRvIHRoZSB3b3JrIChv
ciBkbyBub3RoaW5nKToKIC0gKHZvaWQpX3dlYl9wcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5p
bWF0aW9uCiB7CisgICAgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSAoaWQg
PFdLVUlEZWxlZ2F0ZVByaXZhdGU+KVtzZWxmIFVJRGVsZWdhdGVdOworICAgIGlmIChbdWlEZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9wcmVwYXJlRm9ySW1tZWRpYXRlQWN0
aW9uQW5pbWF0aW9uRm9yV2ViVmlldzopXSkKKyAgICAgICAgW3VpRGVsZWdhdGUgX3ByZXBhcmVG
b3JJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Gb3JXZWJWaWV3OnNlbGZdOworICAgIGVsc2UKKyAg
ICAgICAgW3NlbGYgX3ByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25dOwogfQogCiAt
ICh2b2lkKV93ZWJfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uCiB7CisgICAgaWQgPFdL
VUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+
KVtzZWxmIFVJRGVsZWdhdGVdOworICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF9jYW5jZWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Gb3JXZWJWaWV3Oild
KQorICAgICAgICBbdWlEZWxlZ2F0ZSBfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uRm9y
V2ViVmlldzpzZWxmXTsKKyAgICBlbHNlCisgICAgICAgIFtzZWxmIF9jYW5jZWxJbW1lZGlhdGVB
Y3Rpb25BbmltYXRpb25dOwogfQogCiAtICh2b2lkKV93ZWJfY29tcGxldGVJbW1lZGlhdGVBY3Rp
b25BbmltYXRpb24KIHsKKyAgICBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9
IChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pW3NlbGYgVUlEZWxlZ2F0ZV07CisgICAgaWYgKFt1
aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX2NvbXBsZXRlSW1tZWRpYXRl
QWN0aW9uQW5pbWF0aW9uRm9yV2ViVmlldzopXSkKKyAgICAgICAgW3VpRGVsZWdhdGUgX2NvbXBs
ZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uRm9yV2ViVmlldzpzZWxmXTsKKyAgICBlbHNlCisg
ICAgICAgIFtzZWxmIF9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl07CiB9CiAKIC0g
KHZvaWQpX3dlYl9kaWRDaGFuZ2VDb250ZW50U2l6ZTooTlNTaXplKW5ld1NpemUKQEAgLTUzNDgs
NyArNTM2MSw3IEBAIC0gKE5TUHJpbnRPcGVyYXRpb24gKilfcHJpbnRPcGVyYXRpb25XaXQKIAog
LSAoTlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9wZXJhdGlvbldpdGhQcmludEluZm86KE5TUHJp
bnRJbmZvICopcHJpbnRJbmZvIGZvckZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxl
CiB7Ci0gICAgaWYgKGF1dG8gd2ViRnJhbWVQcm94eSA9IF9wYWdlLT5wcm9jZXNzKCkud2ViRnJh
bWUoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKQorICAgIGlmIChhdXRvKiB3ZWJGcmFtZVByb3h5ID0g
X3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUhhbmRsZS5fZnJhbWVJRCkpCiAgICAgICAg
IHJldHVybiBfaW1wbC0+cHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvKHByaW50SW5mbywgKndl
YkZyYW1lUHJveHkpOwogICAgIHJldHVybiBuaWw7CiB9CkBAIC01NjYwLDYgKzU2NzMsMTI1IEBA
IC0gKFdLUGFnZVJlZilfcGFnZVJlZkZvclRyYW5zaXRpb25Ub1dLV2UKICAgICByZXR1cm4gdG9B
UEkoX3BhZ2UuZ2V0KCkpOwogfQogCistICh2b2lkKV9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hp
bGRXaW5kb3dzCit7CisgICAgX2ltcGwtPmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRv
d3NGcm9tVmlld09ubHkoKTsKK30KKworLSAodm9pZClfc2V0RnJhbWU6KE5TUmVjdClyZWN0IGFu
ZFNjcm9sbEJ5OihOU1NpemUpb2Zmc2V0Cit7CisgICAgX2ltcGwtPnNldEZyYW1lQW5kU2Nyb2xs
QnkoTlNSZWN0VG9DR1JlY3QocmVjdCksIE5TU2l6ZVRvQ0dTaXplKG9mZnNldCkpOworfQorCist
ICh2b2lkKV9zZXRUb3RhbEhlaWdodE9mQmFubmVyczooQ0dGbG9hdCl0b3RhbEhlaWdodE9mQmFu
bmVycworeworICAgIF9pbXBsLT5zZXRUb3RhbEhlaWdodE9mQmFubmVycyh0b3RhbEhlaWdodE9m
QmFubmVycyk7Cit9CisKKy0gKENHRmxvYXQpX3RvdGFsSGVpZ2h0T2ZCYW5uZXJzCit7CisgICAg
cmV0dXJuIF9pbXBsLT50b3RhbEhlaWdodE9mQmFubmVycygpOworfQorCistICh2b2lkKV9iZWdp
bkRlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMKK3sKKyAgICBfaW1wbC0+YmVnaW5EZWZlcnJp
bmdWaWV3SW5XaW5kb3dDaGFuZ2VzKCk7Cit9CisKKy0gKHZvaWQpX2VuZERlZmVycmluZ1ZpZXdJ
bldpbmRvd0NoYW5nZXMKK3sKKyAgICBfaW1wbC0+ZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hh
bmdlcygpOworfQorCistICh2b2lkKV9lbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3lu
YworeworICAgIF9pbXBsLT5lbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3luYygpOwor
fQorCistICh2b2lkKV9nZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOihOU0V2ZW50
ICopZXZlbnQKK3sKKyAgICBfaW1wbC0+Z2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29y
ZUZyb21WaWV3T25seShldmVudCk7Cit9CisKKy0gKHZvaWQpX3NldElnbm9yZXNOb25XaGVlbEV2
ZW50czooQk9PTClpZ25vcmVzTm9uV2hlZWxFdmVudHMKK3sKKyAgICBfaW1wbC0+c2V0SWdub3Jl
c05vbldoZWVsRXZlbnRzKGlnbm9yZXNOb25XaGVlbEV2ZW50cyk7Cit9CisKKy0gKEJPT0wpX2ln
bm9yZXNOb25XaGVlbEV2ZW50cworeworICAgIHJldHVybiBfaW1wbC0+aWdub3Jlc05vbldoZWVs
RXZlbnRzKCk7Cit9CisKKy0gKHZvaWQpX3NldEN1c3RvbVN3aXBlVmlld3M6KE5TQXJyYXkgKilj
dXN0b21Td2lwZVZpZXdzCit7CisgICAgX2ltcGwtPnNldEN1c3RvbVN3aXBlVmlld3MoY3VzdG9t
U3dpcGVWaWV3cyk7Cit9CisKKy0gKHZvaWQpX3NldEN1c3RvbVN3aXBlVmlld3NUb3BDb250ZW50
SW5zZXQ6KGZsb2F0KXRvcENvbnRlbnRJbnNldAoreworICAgIF9pbXBsLT5zZXRDdXN0b21Td2lw
ZVZpZXdzVG9wQ29udGVudEluc2V0KHRvcENvbnRlbnRJbnNldCk7Cit9CisKKy0gKEJPT0wpX3Ry
eVRvU3dpcGVXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudCBpZ25vcmluZ1Bpbm5lZFN0YXRlOihC
T09MKWlnbm9yaW5nUGlubmVkU3RhdGUKK3sKKyAgICByZXR1cm4gX2ltcGwtPnRyeVRvU3dpcGVX
aXRoRXZlbnQoZXZlbnQsIGlnbm9yaW5nUGlubmVkU3RhdGUpOworfQorCistICh2b2lkKV9zZXRE
aWRNb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrOih2b2lkKF4pKENHUmVjdCkpY2FsbGJhY2sKK3sK
KyAgICBfaW1wbC0+c2V0RGlkTW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayhjYWxsYmFjayk7Cit9
CisKKy0gKE5TVmlldyAqKV9mdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3Cit7CisgICAgcmV0dXJu
IF9pbXBsLT5mdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3KCk7Cit9CisKKy0gKE5TV2luZG93ICop
X2Z1bGxTY3JlZW5XaW5kb3cKK3sKKyAgICByZXR1cm4gX2ltcGwtPmZ1bGxTY3JlZW5XaW5kb3co
KTsKK30KKworLSAodm9pZClfZGlzYWJsZUZyYW1lU2l6ZVVwZGF0ZXMKK3sKKyAgICBfaW1wbC0+
ZGlzYWJsZUZyYW1lU2l6ZVVwZGF0ZXMoKTsKK30KKworLSAodm9pZClfZW5hYmxlRnJhbWVTaXpl
VXBkYXRlcworeworICAgIF9pbXBsLT5lbmFibGVGcmFtZVNpemVVcGRhdGVzKCk7Cit9CisKKy0g
KHZvaWQpX3ByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24KK3sKK30KKworLSAodm9p
ZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uCit7Cit9CisKKy0gKHZvaWQpX2NvbXBs
ZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uCit7Cit9CisKKy0gKEJPT0wpX2NhbkNoYW5nZUZy
YW1lTGF5b3V0OihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlCit7CisgICAgaWYgKGF1dG8q
IHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSGFuZGxlLl9m
cmFtZUlEKSkKKyAgICAgICAgcmV0dXJuIF9pbXBsLT5jYW5DaGFuZ2VGcmFtZUxheW91dCgqd2Vi
RnJhbWVQcm94eSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCistIChOU0NvbG9yICopX3VuZGVy
bGF5Q29sb3IKK3sKKyAgICByZXR1cm4gX2ltcGwtPnVuZGVybGF5Q29sb3IoKTsKK30KKworLSAo
dm9pZClfc2V0VW5kZXJsYXlDb2xvcjooTlNDb2xvciAqKXVuZGVybGF5Q29sb3IKK3sKKyAgICBf
aW1wbC0+c2V0VW5kZXJsYXlDb2xvcih1bmRlcmxheUNvbG9yKTsKK30KKwogLSAoQk9PTClfaGFz
QWN0aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXIKIHsKICAgICByZXR1cm4gX3BhZ2UgJiYgX3Bh
Z2UtPmhhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNNYW5hZ2VyKCk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHJl
dmlzaW9uIDIyMzI1MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4NSw5ICszODUsMjggQEAgdHlwZWRl
ZiBOU19PUFRJT05TKE5TSW50ZWdlciwgX1dLUmVjdEVkZwogLSAodm9pZClfcmVxdWVzdEFjdGl2
YXRlZEVsZW1lbnRBdFBvc2l0aW9uOihDR1BvaW50KXBvc2l0aW9uIGNvbXBsZXRpb25CbG9jazoo
dm9pZCAoXikoX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKikpYmxvY2sgV0tfQVBJX0FWQUlMQUJM
RShpb3MoMTEuMCkpOwogLSAodm9pZClfYWNjZXNzaWJpbGl0eVJldHJpZXZlUmVjdHNBdFNlbGVj
dGlvbk9mZnNldDooTlNJbnRlZ2VyKW9mZnNldCB3aXRoVGV4dDooTlNTdHJpbmcgKil0ZXh0IGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0FycmF5PE5TVmFsdWUgKj4gKnJlY3RzKSljb21w
bGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKLSNlbmRp
ZiAvLyBUQVJHRVRfT1NfSVBIT05FCi0KLSNpZiAhVEFSR0VUX09TX0lQSE9ORQorI2Vsc2UKKy0g
KHZvaWQpX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3MgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSkpOworLSAodm9pZClfc2V0RnJhbWU6KE5TUmVjdClyZWN0IGFu
ZFNjcm9sbEJ5OihOU1NpemUpb2Zmc2V0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpKTsKKy0gKHZvaWQpX2JlZ2luRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcyBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV9lbmREZWZlcnJpbmdWaWV3
SW5XaW5kb3dDaGFuZ2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0g
KHZvaWQpX2VuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNTeW5jIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0gKHZvaWQpX2dlc3R1cmVFdmVudFdhc05vdEhhbmRs
ZWRCeVdlYkNvcmU6KE5TRXZlbnQgKilldmVudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSk7CistICh2b2lkKV9zZXRDdXN0b21Td2lwZVZpZXdzOihOU0FycmF5ICopY3VzdG9t
U3dpcGVWaWV3cyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CistICh2b2lk
KV9zZXRDdXN0b21Td2lwZVZpZXdzVG9wQ29udGVudEluc2V0OihmbG9hdCl0b3BDb250ZW50SW5z
ZXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworLSAoTlNWaWV3ICopX2Z1
bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSkpOworLSAoTlNXaW5kb3cgKilfZnVsbFNjcmVlbldpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV9kaXNhYmxlRnJhbWVTaXplVXBkYXRlcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV9lbmFibGVGcmFtZVNp
emVVcGRhdGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0gKHZvaWQp
X3ByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSkpOworLSAodm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9u
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0gKHZvaWQpX2NvbXBsZXRl
SW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpKTsKKy0gKEJPT0wpX2NhbkNoYW5nZUZyYW1lTGF5b3V0OihfV0tGcmFtZUhhbmRsZSAqKWZy
YW1lSGFuZGxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0gKEJPT0wp
X3RyeVRvU3dpcGVXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudCBpZ25vcmluZ1Bpbm5lZFN0YXRl
OihCT09MKWlnbm9yaW5nUGlubmVkU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSkpOworLSAodm9pZClfc2V0RGlkTW92ZVN3aXBlU25hcHNob3RDYWxsYmFjazoodm9pZChe
KShDR1JlY3QpKWNhbGxiYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRvdGFsSGVpZ2h0T2ZCYW5uZXJzOikg
Q0dGbG9hdCBfdG90YWxIZWlnaHRPZkJhbm5lcnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0VW5kZXJs
YXlDb2xvcjopIE5TQ29sb3IgKl91bmRlcmxheUNvbG9yOworQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHM6KSBCT09MIF9pZ25v
cmVzTm9uV2hlZWxFdmVudHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1BhZ2VSZWYgX3BhZ2VSZWZGb3JUcmFu
c2l0aW9uVG9XS1dlYlZpZXcgIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaGFzQWN0aXZlVmlkZW9Gb3JD
b250cm9sc01hbmFnZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpKTsKIC0gKHZvaWQp
X3JlcXVlc3RDb250cm9sbGVkRWxlbWVudElEIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEy
LjMpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCShy
ZXZpc2lvbiAyMjMyNTMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTI0NSw3ICsxMjQ1LDcgQEAgLSAoTlNWaWV3ICopZnVs
bFNjcmVlblBsYWNlaG9sZGVyVmlldwogLy8gRklYTUU6IFRoaXMgcmV0dXJucyBhbiBhdXRvcmVs
ZWFzZWQgb2JqZWN0LiBTaG91bGQgaXQgcmVhbGx5IGJlIHByZWZpeGVkICdjcmVhdGUnPwogLSAo
TlNXaW5kb3cgKiljcmVhdGVGdWxsU2NyZWVuV2luZG93CiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5f
aW1wbC0+Y3JlYXRlRnVsbFNjcmVlbldpbmRvdygpOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwt
PmZ1bGxTY3JlZW5XaW5kb3coKTsKIH0KIAogLSAodm9pZCliZWdpbkRlZmVycmluZ1ZpZXdJbldp
bmRvd0NoYW5nZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaAkocmV2aXNpb24gMjIzMjUzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDcgKzI4Miw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGNsb3NlRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKTsKICNlbmRpZgog
ICAgIE5TVmlldyAqZnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldygpOwotICAgIE5TV2luZG93ICpj
cmVhdGVGdWxsU2NyZWVuV2luZG93KCk7CisgICAgTlNXaW5kb3cgKmZ1bGxTY3JlZW5XaW5kb3co
KTsKIAogICAgIGJvb2wgaXNFZGl0YWJsZSgpIGNvbnN0OwogICAgIGJvb2wgZXhlY3V0ZVNhdmVk
Q29tbWFuZEJ5U2VsZWN0b3IoU0VMKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCShyZXZpc2lvbiAyMjMyNTMpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjQzMiw3
ICsyNDMyLDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6aGFzRnVsbFNjcmVlbldpbmRvd0NvbgogV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlciAqV2ViVmlld0ltcGw6OmZ1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyKCkKIHsKICAgICBpZiAoIW1fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIpCi0g
ICAgICAgIG1fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhXaW5kb3c6Y3JlYXRlRnVsbFNjcmVl
bldpbmRvdygpIHdlYlZpZXc6bV92aWV3LmdldEF1dG9yZWxlYXNlZCgpIHBhZ2U6bV9wYWdlXSk7
CisgICAgICAgIG1fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhXaW5kb3c6ZnVsbFNjcmVlbldp
bmRvdygpIHdlYlZpZXc6bV92aWV3LmdldEF1dG9yZWxlYXNlZCgpIHBhZ2U6bV9wYWdlXSk7CiAK
ICAgICByZXR1cm4gbV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5nZXQoKTsKIH0KQEAgLTI0
NTYsNyArMjQ1Niw3IEBAIE5TVmlldyAqV2ViVmlld0ltcGw6OmZ1bGxTY3JlZW5QbGFjZWhvbGQK
ICAgICByZXR1cm4gbmlsOwogfQogCi1OU1dpbmRvdyAqV2ViVmlld0ltcGw6OmNyZWF0ZUZ1bGxT
Y3JlZW5XaW5kb3coKQorTlNXaW5kb3cgKldlYlZpZXdJbXBsOjpmdWxsU2NyZWVuV2luZG93KCkK
IHsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgcmV0dXJuIFtbW1dlYkNvcmVGdWxs
U2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OltbTlNTY3JlZW4gbWFpblNj
cmVlbl0gZnJhbWVdIHN0eWxlTWFzazooTlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIHwgTlNX
aW5kb3dTdHlsZU1hc2tSZXNpemFibGUpIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBk
ZWZlcjpOT10gYXV0b3JlbGVhc2VdOwo=
</data>
<flag name="review"
          id="343336"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>