<?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>207717</bug_id>
          
          <creation_ts>2020-02-13 13:00:21 -0800</creation_ts>
          <short_desc>iOS: Autoscrolling is too fast and way too aggressive</short_desc>
          <delta_ts>2020-02-13 15:24:41 -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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>bdakin</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1618666</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-02-13 13:00:21 -0800</bug_when>
    <thetext>iOS: Autoscrolling is too fast and way too aggressive</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618667</commentid>
    <comment_count>1</comment_count>
      <attachid>390682</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-02-13 13:00:49 -0800</bug_when>
    <thetext>Created attachment 390682
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618668</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-02-13 13:00:51 -0800</bug_when>
    <thetext>&lt;rdar://problem/59208122&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618686</commentid>
    <comment_count>3</comment_count>
      <attachid>390682</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-13 13:38:19 -0800</bug_when>
    <thetext>Comment on attachment 390682
Patch

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

I am saddened by the lack of tests.

&gt; Source/WebCore/page/EventHandler.h:631
&gt;      bool m_isAutoscrolling { false };

Please move this bool up.

&gt; Source/WebCore/page/ios/EventHandlerIOS.mm:627
&gt; +        if (autoscrollDelta.height() &lt; insetDistanceThreshold)

Blank line above please.

&gt; Source/WebCore/page/ios/EventHandlerIOS.mm:637
&gt; +        float distanceFromEdge = autoscrollPoint.x() - insetUnobscuredRootViewRect.x();

Do you want negative distanceFromEdge here?

&gt; Source/WebCore/page/ios/EventHandlerIOS.mm:646
&gt; +        float distanceFromEdge = autoscrollPoint.y() - insetUnobscuredRootViewRect.y();

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618744</commentid>
    <comment_count>4</comment_count>
      <attachid>390694</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-02-13 15:21:58 -0800</bug_when>
    <thetext>Created attachment 390694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618746</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-02-13 15:24:34 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/256564/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390682</attachid>
            <date>2020-02-13 13:00:49 -0800</date>
            <delta_ts>2020-02-13 15:21:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207717-20200213130049.patch</filename>
            <type>text/plain</type>
            <size>12255</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWI1ODA2YWRlNTZlZGQ5
NzU4OTFhOWFlNjIxNjQ1ZWQwNjk3NTY3Ny4uYWFiMDExZDFjZTc1YzIyY2RiNjg2ZmFlYzYwNGRi
ZjViYTQ2NGUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTAyLTEzICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIGlPUzogQXV0b3Nj
cm9sbGluZyBpcyB0b28gZmFzdCBhbmQgd2F5IHRvbyBhZ2dyZXNzaXZlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc3MTcKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzU5MjA4MTIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBwYWdlL2lvcy9F
dmVudEhhbmRsZXJJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnN0YXJ0
U2VsZWN0aW9uQXV0b3Njcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNh
bmNlbFNlbGVjdGlvbkF1dG9zY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0QXV0b3Nj
cm9sbERlc3RpbmF0aW9uRm9ySW5zZXRFZGdlcyk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhh
bmRsZXI6OnRhcmdldFBvc2l0aW9uSW5XaW5kb3dGb3JTZWxlY3Rpb25BdXRvc2Nyb2xsIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OmF1dG9zY3JvbGxBZGp1c3RtZW50RmFjdG9yRm9yU2NyZWVu
Qm91bmRhcmllcyk6IERlbGV0ZWQuCisgICAgICAgIE1ha2UgYSBmZXcgc21hbGwgY2hhbmdlcyB0
byBhdXRvc2Nyb2xsaW5nIG9uIGlPUyB0byBtYWtlIGl0IGZlZWwgYmV0dGVyOgorCisgICAgICAg
IC0gU3RvcmUgdGhlIGF1dG9zY3JvbGxpbmcgcG9zaXRpb24gaW4gInVuc2Nyb2xsZWQiIGNvb3Jk
aW5hdGVzLCBhbmQgZG8KKyAgICAgICAgYWxsIHdvcmsgaW4gdGhpcyBzcGFjZSwgY29udmVydGlu
ZyBiYWNrIHdoZW4gaXQncyB0aW1lIHRvIGFjdHVhbGx5IHNjcm9sbC4KKyAgICAgICAgVGhpcyBm
aXhlcyB0aGUgcHJvYmxlbSB3aGVyZSB5b3UgaGF2ZSB0byB3aWdnbGUgeW91ciBmaW5nZXIgdG8g
YXV0b3Njcm9sbCwKKyAgICAgICAgYmVjYXVzZSBub3cgd2hlbiB0aGUgdGltZXIgZmlyZXMsIHRo
ZSBwb2ludCBhY3R1YWxseSBtb3ZlcyAoYmVmb3JlLCBpdCB3YXMKKyAgICAgICAgYWxsIHN0b3Jl
ZCBpbiAiY29udGVudCIgY29vcmRpbmF0ZXMsIHNvIHdvdWxkbid0IGFjdHVhbGx5IGNoYW5nZSB1
bnRpbAorICAgICAgICB0aGUgY2xpZW50IHB1c2hlZCBhIG5ldyBwb2ludCkuCisKKyAgICAgICAg
LSBSZWludHJvZHVjZSB0aGUgbWFjT1Mtc3R5bGUgbGluZWFyIHNjYWxpbmcgb2Ygc2Nyb2xsaW5n
IHZlbG9jaXR5CisgICAgICAgIGluIChhbmQgYmV5b25kKSB0aGUgaW5zZXQgcmVnaW9uLiBXZSBz
Y2FsZSB0aGUgZnJhY3Rpb25hbCBkaXN0YW5jZSBpbnRvCisgICAgICAgIHRoZSBpbnNldCByZWdp
b24gdG8gYSAyMHB0LzUwbXMgc2Nyb2xsIHZlbG9jaXR5OyB3aGVuIHlvdSBleGl0IHRoZSBpbnNl
dAorICAgICAgICBpdCBjb250aW51ZXMgc2NhbGluZyB1cCBsaW5lYXJseSBmcm9tIHRoZXJlLgor
CisgICAgICAgIC0gT25seSBhcHBseSBpbnNldHMgaW4gdGhlIGRpcmVjdGlvbiB0aGF0IHRoZSBh
dXRvc2Nyb2xsIGRyYWcgaXMgb2NjdXJyaW5nCisgICAgICAgIGluLiBUaGlzIGF2b2lkcyBhIHBy
b2JsZW0gd2hlcmUgZS5nLiBob3Jpem9udGFsbHkgc2VsZWN0aW5nIHRleHQgb24gdGhlCisgICAg
ICAgIGZpcnN0IHZpc2libGUgbGluZSBvZiBhIHBhZ2Ugd291bGQgY2F1c2UgdXMgdG8gc2Nyb2xs
IHVwLCBhcyBpdCBzYXQKKyAgICAgICAgd2l0aGluIHRoZSB0b3AgaW5zZXQuIEluc3RlYWQsIHdl
IG9ubHkgYXBwbHkgYW4gaW5zZXQgaW4gdGhlIGRpcmVjdGlvbiBvZgorICAgICAgICB0aGUgZHJh
ZywgYW5kIGRvIG5vdCBhbGxvdyBpdHMgbWFnbml0dWRlIHRvIGV4Y2VlZCB0aGUgY3VycmVudGx5
IGRyYWdnZWQKKyAgICAgICAgZGlzdGFuY2UuCisKIDIwMjAtMDItMTEgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBJbnRyb2R1Y2UgTGF5b3V0OjpMaW5l
QnJlYWtCb3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IGVhMjQ3MmQ4OTVjNjc2
NDI5NDgyNzI2YzE0M2QwN2YxMDE3NTU5MmQuLmQyOWRkMTk2MTliYTljZWI0MmIwODNlMGU0ZDc5
NWU3M2NmZDUxOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtNjI2LDcgKzYy
Niw4IEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGJvb2wgbV9z
aG91bGRBbGxvd01vdXNlRG93blRvU3RhcnREcmFnIHsgZmFsc2UgfTsKLSAgICBJbnRQb2ludCBt
X3RhcmdldEF1dG9zY3JvbGxQb3NpdGlvbkluV2luZG93OworICAgIEludFBvaW50IG1fdGFyZ2V0
QXV0b3Njcm9sbFBvc2l0aW9uSW5VbnNjcm9sbGVkUm9vdFZpZXdDb29yZGluYXRlczsKKyAgICBP
cHRpb25hbDxJbnRQb2ludD4gbV9pbml0aWFsVGFyZ2V0QXV0b3Njcm9sbFBvc2l0aW9uSW5VbnNj
cm9sbGVkUm9vdFZpZXdDb29yZGluYXRlczsKICAgICBib29sIG1faXNBdXRvc2Nyb2xsaW5nIHsg
ZmFsc2UgfTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9F
dmVudEhhbmRsZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJ
T1MubW0KaW5kZXggNmVkNzJjYzA0ZDdhYTU2MjQzN2FjOWUxN2Y5NmQzMjgxOGZjNTAwMS4uNzYy
ZTAxNmI3ODBhOGIwNmIxYTNlMzYwYTBmN2U1ZTEzODgwMGQ5MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQpAQCAtNTg1LDggKzU4NSwxMSBAQCB2b2lkIEV2
ZW50SGFuZGxlcjo6c3RhcnRTZWxlY3Rpb25BdXRvc2Nyb2xsKFJlbmRlck9iamVjdCogcmVuZGVy
ZXIsIGNvbnN0IEZsb2F0UAogewogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUobV9mcmFt
ZSk7CiAKLSAgICBtX3RhcmdldEF1dG9zY3JvbGxQb3NpdGlvbkluV2luZG93ID0gcHJvdGVjdGVk
RnJhbWUtPnZpZXcoKS0+Y29udGVudHNUb1ZpZXcocm91bmRlZEludFBvaW50KHBvc2l0aW9uSW5X
aW5kb3cpKTsKLSAgICAKKyAgICBtX3RhcmdldEF1dG9zY3JvbGxQb3NpdGlvbkluVW5zY3JvbGxl
ZFJvb3RWaWV3Q29vcmRpbmF0ZXMgPSBwcm90ZWN0ZWRGcmFtZS0+dmlldygpLT5jb250ZW50c1Rv
Um9vdFZpZXcocm91bmRlZEludFBvaW50KHBvc2l0aW9uSW5XaW5kb3cpKSAtIHRvSW50U2l6ZShw
cm90ZWN0ZWRGcmFtZS0+dmlldygpLT5kb2N1bWVudFNjcm9sbFBvc2l0aW9uUmVsYXRpdmVUb1Zp
ZXdPcmlnaW4oKSk7CisKKyAgICBpZiAoIW1faXNBdXRvc2Nyb2xsaW5nKQorICAgICAgICBtX2lu
aXRpYWxUYXJnZXRBdXRvc2Nyb2xsUG9zaXRpb25JblVuc2Nyb2xsZWRSb290Vmlld0Nvb3JkaW5h
dGVzID0gbV90YXJnZXRBdXRvc2Nyb2xsUG9zaXRpb25JblVuc2Nyb2xsZWRSb290Vmlld0Nvb3Jk
aW5hdGVzOworCiAgICAgbV9pc0F1dG9zY3JvbGxpbmcgPSB0cnVlOwogICAgIG1fYXV0b3Njcm9s
bENvbnRyb2xsZXItPnN0YXJ0QXV0b3Njcm9sbEZvclNlbGVjdGlvbihyZW5kZXJlcik7CiB9CkBA
IC01OTQsNjUgKzU5Nyw4MSBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6c3RhcnRTZWxlY3Rpb25BdXRv
c2Nyb2xsKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IEZsb2F0UAogdm9pZCBFdmVudEhh
bmRsZXI6OmNhbmNlbFNlbGVjdGlvbkF1dG9zY3JvbGwoKQogewogICAgIG1faXNBdXRvc2Nyb2xs
aW5nID0gZmFsc2U7CisgICAgbV9pbml0aWFsVGFyZ2V0QXV0b3Njcm9sbFBvc2l0aW9uSW5VbnNj
cm9sbGVkUm9vdFZpZXdDb29yZGluYXRlcyA9IFdURjo6bnVsbG9wdDsKICAgICBtX2F1dG9zY3Jv
bGxDb250cm9sbGVyLT5zdG9wQXV0b3Njcm9sbFRpbWVyKCk7CiB9CiAKLXN0YXRpYyBJbnRTaXpl
IGF1dG9zY3JvbGxBZGp1c3RtZW50RmFjdG9yRm9yU2NyZWVuQm91bmRhcmllcyhjb25zdCBJbnRQ
b2ludCYgY29udGVudFBvc2l0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50
UmVjdCwgZmxvYXQgem9vbUZhY3RvcikKK3N0YXRpYyBJbnRQb2ludCBhZGp1c3RBdXRvc2Nyb2xs
RGVzdGluYXRpb25Gb3JJbnNldEVkZ2VzKEludFBvaW50IGF1dG9zY3JvbGxQb2ludCwgT3B0aW9u
YWw8SW50UG9pbnQ+IGluaXRpYWxBdXRvc2Nyb2xsUG9pbnQsIEZsb2F0UmVjdCB1bm9ic2N1cmVk
Um9vdFZpZXdSZWN0KQogewotICAgIC8vIElmIHRoZSB3aW5kb3cgaXMgYXQgdGhlIGVkZ2Ugb2Yg
dGhlIHNjcmVlbiwgYW5kIHRoZSB0b3VjaCBwb3NpdGlvbiBpcyBhbHNvIGF0IHRoYXQgZWRnZSBv
ZiB0aGUgc2NyZWVuLAotICAgIC8vIHdlIG5lZWQgdG8gYWRqdXN0IHRoZSBhdXRvc2Nyb2xsIGFt
b3VudCBpbiBvcmRlciBmb3IgdGhlIHVzZXIgdG8gYmUgYWJsZSB0byBhdXRvc2Nyb2xsIGluIHRo
YXQgZGlyZWN0aW9uLgotICAgIC8vIFdlIGNhbiBwcmV0ZW5kIHRoYXQgdGhlIHRvdWNoIHBvc2l0
aW9uIGlzIHNsaWdodGx5IGJleW9uZCB0aGUgZWRnZSBvZiB0aGUgc2NyZWVuLCBhbmQgdGhlbiBh
dXRvc2Nyb2xsaW5nCi0gICAgLy8gd2lsbCBvY2N1ciBhcyBleHBlY3RlZC4gVGhpcyBmdW5jdGlv
biBmaWd1cmVzIG91dCBqdXN0IGhvdyBtdWNoIHRvIGFkanVzdCB0aGUgYXV0b3Njcm9sbCBhbW91
bnQgYnkKLSAgICAvLyBpbiBvcmRlciB0byBnZXQgYXV0b3Njcm9sbGluZyB0byBmZWVsIG5hdHVy
YWwgaW4gdGhpcyBzaXR1YXRpb24uCi0gICAgCi0gICAgSW50U2l6ZSBhZGp1c3RtZW50RmFjdG9y
OwotICAgIAotI2RlZmluZSBFREdFX0RJU1RBTkNFX1RIUkVTSE9MRCAxMDAKKyAgICBJbnRQb2lu
dCByZXN1bHRQb2ludCA9IGF1dG9zY3JvbGxQb2ludDsKIAotICAgIENHU2l6ZSBlZGdlRGlzdGFu
Y2VUaHJlc2hvbGQgPSBDR1NpemVNYWtlKEVER0VfRElTVEFOQ0VfVEhSRVNIT0xEIC8gem9vbUZh
Y3RvciwgRURHRV9ESVNUQU5DRV9USFJFU0hPTEQgLyB6b29tRmFjdG9yKTsKLSAgICAKLSAgICBm
bG9hdCBzY3JlZW5MZWZ0RWRnZSA9IHVub2JzY3VyZWRDb250ZW50UmVjdC54KCk7Ci0gICAgZmxv
YXQgaW5zZXRTY3JlZW5MZWZ0RWRnZSA9IHNjcmVlbkxlZnRFZGdlICsgZWRnZURpc3RhbmNlVGhy
ZXNob2xkLndpZHRoOwotICAgIGZsb2F0IHNjcmVlblJpZ2h0RWRnZSA9IHVub2JzY3VyZWRDb250
ZW50UmVjdC5tYXhYKCk7Ci0gICAgZmxvYXQgaW5zZXRTY3JlZW5SaWdodEVkZ2UgPSBzY3JlZW5S
aWdodEVkZ2UgLSBlZGdlRGlzdGFuY2VUaHJlc2hvbGQud2lkdGg7Ci0gICAgaWYgKGNvbnRlbnRQ
b3NpdGlvbi54KCkgPj0gc2NyZWVuTGVmdEVkZ2UgJiYgY29udGVudFBvc2l0aW9uLngoKSA8IGlu
c2V0U2NyZWVuTGVmdEVkZ2UpIHsKLSAgICAgICAgZmxvYXQgZGlzdGFuY2VGcm9tRWRnZSA9IGNv
bnRlbnRQb3NpdGlvbi54KCkgLSBzY3JlZW5MZWZ0RWRnZSAtIGVkZ2VEaXN0YW5jZVRocmVzaG9s
ZC53aWR0aDsKKyAgICBjb25zdCBmbG9hdCBlZGdlSW5zZXQgPSA3NTsKKyAgICBjb25zdCBmbG9h
dCBtYXhpbXVtU2Nyb2xsaW5nU3BlZWQgPSAyMDsKKyAgICBjb25zdCBmbG9hdCBpbnNldERpc3Rh
bmNlVGhyZXNob2xkID0gZWRnZUluc2V0IC8gMjsKKworICAgIC8vIEZJWE1FOiBJZGVhbGx5IHdl
IHdvdWxkIG9ubHkgaW5zZXQgb24gZWRnZXMgdGhhdCB0b3VjaCB0aGUgZWRnZSBvZiB0aGUgc2Ny
ZWVuLAorICAgIC8vIGxpa2UgbWFjT1MsIGJ1dCB3ZSBkb24ndCBoYXZlIGVub3VnaCBpbmZvcm1h
dGlvbiBpbiBXZWJDb3JlIHRvIGRvIHRoYXQgY3VycmVudGx5LgorICAgIEZsb2F0UmVjdCBpbnNl
dFVub2JzY3VyZWRSb290Vmlld1JlY3QgPSB1bm9ic2N1cmVkUm9vdFZpZXdSZWN0OworCisgICAg
aWYgKGluaXRpYWxBdXRvc2Nyb2xsUG9pbnQpIHsKKyAgICAgICAgSW50U2l6ZSBhdXRvc2Nyb2xs
RGVsdGEgPSBhdXRvc2Nyb2xsUG9pbnQgLSAqaW5pdGlhbEF1dG9zY3JvbGxQb2ludDsKKworICAg
ICAgICAvLyBJbnNldCBlZGdlcyBpbiB0aGUgZGlyZWN0aW9uIG9mIHRoZSBhdXRvc2Nyb2xsLgor
ICAgICAgICAvLyBEbyBub3QgYXBwbHkgaW5zZXRzIHVudGlsIHlvdSBkcmFnIGluIHRoZSBkaXJl
Y3Rpb24gb2YgdGhlIGVkZ2UgYXQgbGVhc3QgYGluc2V0RGlzdGFuY2VUaHJlc2hvbGRgLAorICAg
ICAgICAvLyB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIHNlbGVjdCB0ZXh0IHRoYXQgYWJ1dHMgdGhl
IGVkZ2Ugb2YgYHVub2JzY3VyZWRSb290Vmlld1JlY3RgIHdpdGhvdXQgY2F1c2luZworICAgICAg
ICAvLyB1bndhbnRlZCBhdXRvc2Nyb2xsaW5nLgorICAgICAgICBpZiAoYXV0b3Njcm9sbERlbHRh
LndpZHRoKCkgPCBpbnNldERpc3RhbmNlVGhyZXNob2xkKQorICAgICAgICAgICAgaW5zZXRVbm9i
c2N1cmVkUm9vdFZpZXdSZWN0LnNoaWZ0WEVkZ2VUbyhpbnNldFVub2JzY3VyZWRSb290Vmlld1Jl
Y3QueCgpICsgc3RkOjptaW48ZmxvYXQ+KGVkZ2VJbnNldCwgLWF1dG9zY3JvbGxEZWx0YS53aWR0
aCgpIC0gaW5zZXREaXN0YW5jZVRocmVzaG9sZCkpOworICAgICAgICBlbHNlIGlmIChhdXRvc2Ny
b2xsRGVsdGEud2lkdGgoKSA+IGluc2V0RGlzdGFuY2VUaHJlc2hvbGQpCisgICAgICAgICAgICBp
bnNldFVub2JzY3VyZWRSb290Vmlld1JlY3Quc2hpZnRNYXhYRWRnZVRvKGluc2V0VW5vYnNjdXJl
ZFJvb3RWaWV3UmVjdC5tYXhYKCkgLSBzdGQ6Om1pbjxmbG9hdD4oZWRnZUluc2V0LCBhdXRvc2Ny
b2xsRGVsdGEud2lkdGgoKSAtIGluc2V0RGlzdGFuY2VUaHJlc2hvbGQpKTsKKyAgICAgICAgaWYg
KGF1dG9zY3JvbGxEZWx0YS5oZWlnaHQoKSA8IGluc2V0RGlzdGFuY2VUaHJlc2hvbGQpCisgICAg
ICAgICAgICBpbnNldFVub2JzY3VyZWRSb290Vmlld1JlY3Quc2hpZnRZRWRnZVRvKGluc2V0VW5v
YnNjdXJlZFJvb3RWaWV3UmVjdC55KCkgKyBzdGQ6Om1pbjxmbG9hdD4oZWRnZUluc2V0LCAtYXV0
b3Njcm9sbERlbHRhLmhlaWdodCgpIC0gaW5zZXREaXN0YW5jZVRocmVzaG9sZCkpOworICAgICAg
ICBlbHNlIGlmIChhdXRvc2Nyb2xsRGVsdGEuaGVpZ2h0KCkgPiBpbnNldERpc3RhbmNlVGhyZXNo
b2xkKQorICAgICAgICAgICAgaW5zZXRVbm9ic2N1cmVkUm9vdFZpZXdSZWN0LnNoaWZ0TWF4WUVk
Z2VUbyhpbnNldFVub2JzY3VyZWRSb290Vmlld1JlY3QubWF4WSgpIC0gc3RkOjptaW48ZmxvYXQ+
KGVkZ2VJbnNldCwgYXV0b3Njcm9sbERlbHRhLmhlaWdodCgpIC0gaW5zZXREaXN0YW5jZVRocmVz
aG9sZCkpOworICAgIH0KKworICAgIC8vIElmIHRoZSBjdXJyZW50IGF1dG9zY3JvbGwgcG9pbnQg
aXMgYmV5b25kIHRoZSBlZGdlIG9mIHRoZSB2aWV3IChyZXNwZWN0aW5nIGluc2V0cyksIHNoaWZ0
IGl0IG91dHNpZGUKKyAgICAvLyBvZiB0aGUgdmlldywgc28gdGhhdCBhdXRvc2Nyb2xsaW5nIHdp
bGwgb2NjdXIuIFRoZSBkaXN0YW5jZSB3ZSBtb3ZlIG91dHNpZGUgb2YgdGhlIHZpZXcgaXMgc2Nh
bGVkIGZyb20KKyAgICAvLyBgZWRnZUluc2V0YCB0byBgbWF4aW11bVNjcm9sbGluZ1NwZWVkYCBz
byB0aGF0IHRoZSBpbnNldCdzIGNvbnRyaWJ1dGlvbiB0byB0aGUgc3BlZWQgaXMgaW5kZXBlbmRl
bnQgb2YgaXRzIHNpemUuCisgICAgaWYgKGF1dG9zY3JvbGxQb2ludC54KCkgPCBpbnNldFVub2Jz
Y3VyZWRSb290Vmlld1JlY3QueCgpKSB7CisgICAgICAgIGZsb2F0IGRpc3RhbmNlRnJvbUVkZ2Ug
PSBhdXRvc2Nyb2xsUG9pbnQueCgpIC0gaW5zZXRVbm9ic2N1cmVkUm9vdFZpZXdSZWN0LngoKTsK
ICAgICAgICAgaWYgKGRpc3RhbmNlRnJvbUVkZ2UgPCAwKQotICAgICAgICAgICAgYWRqdXN0bWVu
dEZhY3Rvci5zZXRXaWR0aCgtZWRnZURpc3RhbmNlVGhyZXNob2xkLndpZHRoKTsKLSAgICB9IGVs
c2UgaWYgKGNvbnRlbnRQb3NpdGlvbi54KCkgPj0gaW5zZXRTY3JlZW5SaWdodEVkZ2UgJiYgY29u
dGVudFBvc2l0aW9uLngoKSA8IHNjcmVlblJpZ2h0RWRnZSkgewotICAgICAgICBmbG9hdCBkaXN0
YW5jZUZyb21FZGdlID0gZWRnZURpc3RhbmNlVGhyZXNob2xkLndpZHRoIC0gKHNjcmVlblJpZ2h0
RWRnZSAtIGNvbnRlbnRQb3NpdGlvbi54KCkpOworICAgICAgICAgICAgcmVzdWx0UG9pbnQuc2V0
WCh1bm9ic2N1cmVkUm9vdFZpZXdSZWN0LngoKSArICgoZGlzdGFuY2VGcm9tRWRnZSAvIGVkZ2VJ
bnNldCkgKiBtYXhpbXVtU2Nyb2xsaW5nU3BlZWQpKTsKKyAgICB9IGVsc2UgaWYgKGF1dG9zY3Jv
bGxQb2ludC54KCkgPj0gaW5zZXRVbm9ic2N1cmVkUm9vdFZpZXdSZWN0Lm1heFgoKSkgeworICAg
ICAgICBmbG9hdCBkaXN0YW5jZUZyb21FZGdlID0gYXV0b3Njcm9sbFBvaW50LngoKSAtIGluc2V0
VW5vYnNjdXJlZFJvb3RWaWV3UmVjdC5tYXhYKCk7CiAgICAgICAgIGlmIChkaXN0YW5jZUZyb21F
ZGdlID4gMCkKLSAgICAgICAgICAgIGFkanVzdG1lbnRGYWN0b3Iuc2V0V2lkdGgoZWRnZURpc3Rh
bmNlVGhyZXNob2xkLndpZHRoKTsKKyAgICAgICAgICAgIHJlc3VsdFBvaW50LnNldFgodW5vYnNj
dXJlZFJvb3RWaWV3UmVjdC5tYXhYKCkgKyAoKGRpc3RhbmNlRnJvbUVkZ2UgLyBlZGdlSW5zZXQp
ICogbWF4aW11bVNjcm9sbGluZ1NwZWVkKSk7CiAgICAgfQotICAgIAotICAgIGZsb2F0IHNjcmVl
blRvcEVkZ2UgPSB1bm9ic2N1cmVkQ29udGVudFJlY3QueSgpOwotICAgIGZsb2F0IGluc2V0U2Ny
ZWVuVG9wRWRnZSA9IHNjcmVlblRvcEVkZ2UgKyBlZGdlRGlzdGFuY2VUaHJlc2hvbGQuaGVpZ2h0
OwotICAgIGZsb2F0IHNjcmVlbkJvdHRvbUVkZ2UgPSB1bm9ic2N1cmVkQ29udGVudFJlY3QubWF4
WSgpOwotICAgIGZsb2F0IGluc2V0U2NyZWVuQm90dG9tRWRnZSA9IHNjcmVlbkJvdHRvbUVkZ2Ug
LSBlZGdlRGlzdGFuY2VUaHJlc2hvbGQuaGVpZ2h0OwotICAgIAotICAgIGlmIChjb250ZW50UG9z
aXRpb24ueSgpID49IHNjcmVlblRvcEVkZ2UgJiYgY29udGVudFBvc2l0aW9uLnkoKSA8IGluc2V0
U2NyZWVuVG9wRWRnZSkgewotICAgICAgICBmbG9hdCBkaXN0YW5jZUZyb21FZGdlID0gY29udGVu
dFBvc2l0aW9uLnkoKSAtIHNjcmVlblRvcEVkZ2UgLSBlZGdlRGlzdGFuY2VUaHJlc2hvbGQuaGVp
Z2h0OworICAgIGlmIChhdXRvc2Nyb2xsUG9pbnQueSgpIDwgaW5zZXRVbm9ic2N1cmVkUm9vdFZp
ZXdSZWN0LnkoKSkgeworICAgICAgICBmbG9hdCBkaXN0YW5jZUZyb21FZGdlID0gYXV0b3Njcm9s
bFBvaW50LnkoKSAtIGluc2V0VW5vYnNjdXJlZFJvb3RWaWV3UmVjdC55KCk7CiAgICAgICAgIGlm
IChkaXN0YW5jZUZyb21FZGdlIDwgMCkKLSAgICAgICAgICAgIGFkanVzdG1lbnRGYWN0b3Iuc2V0
SGVpZ2h0KC1lZGdlRGlzdGFuY2VUaHJlc2hvbGQuaGVpZ2h0KTsKLSAgICB9IGVsc2UgaWYgKGNv
bnRlbnRQb3NpdGlvbi55KCkgPj0gaW5zZXRTY3JlZW5Cb3R0b21FZGdlICYmIGNvbnRlbnRQb3Np
dGlvbi55KCkgPCBzY3JlZW5Cb3R0b21FZGdlKSB7Ci0gICAgICAgIGZsb2F0IGRpc3RhbmNlRnJv
bUVkZ2UgPSBlZGdlRGlzdGFuY2VUaHJlc2hvbGQuaGVpZ2h0IC0gKHNjcmVlbkJvdHRvbUVkZ2Ug
LSBjb250ZW50UG9zaXRpb24ueSgpKTsKKyAgICAgICAgICAgIHJlc3VsdFBvaW50LnNldFkodW5v
YnNjdXJlZFJvb3RWaWV3UmVjdC55KCkgKyAoKGRpc3RhbmNlRnJvbUVkZ2UgLyBlZGdlSW5zZXQp
ICogbWF4aW11bVNjcm9sbGluZ1NwZWVkKSk7CisgICAgfSBlbHNlIGlmIChhdXRvc2Nyb2xsUG9p
bnQueSgpID49IGluc2V0VW5vYnNjdXJlZFJvb3RWaWV3UmVjdC5tYXhZKCkpIHsKKyAgICAgICAg
ZmxvYXQgZGlzdGFuY2VGcm9tRWRnZSA9IGF1dG9zY3JvbGxQb2ludC55KCkgLSBpbnNldFVub2Jz
Y3VyZWRSb290Vmlld1JlY3QubWF4WSgpOwogICAgICAgICBpZiAoZGlzdGFuY2VGcm9tRWRnZSA+
IDApCi0gICAgICAgICAgICBhZGp1c3RtZW50RmFjdG9yLnNldEhlaWdodChlZGdlRGlzdGFuY2VU
aHJlc2hvbGQuaGVpZ2h0KTsKKyAgICAgICAgICAgIHJlc3VsdFBvaW50LnNldFkodW5vYnNjdXJl
ZFJvb3RWaWV3UmVjdC5tYXhZKCkgKyAoKGRpc3RhbmNlRnJvbUVkZ2UgLyBlZGdlSW5zZXQpICog
bWF4aW11bVNjcm9sbGluZ1NwZWVkKSk7CiAgICAgfQotICAgIAotICAgIHJldHVybiBhZGp1c3Rt
ZW50RmFjdG9yOworCisgICAgcmV0dXJuIHJlc3VsdFBvaW50OwogfQogICAgIAogSW50UG9pbnQg
RXZlbnRIYW5kbGVyOjp0YXJnZXRQb3NpdGlvbkluV2luZG93Rm9yU2VsZWN0aW9uQXV0b3Njcm9s
bCgpIGNvbnN0CiB7CiAgICAgUmVmPEZyYW1lPiBwcm90ZWN0ZWRGcmFtZShtX2ZyYW1lKTsKKwor
ICAgIGlmICghbV9mcmFtZS52aWV3KCkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgYXV0byYg
ZnJhbWVWaWV3ID0gKm1fZnJhbWUudmlldygpOworCisgICAgLy8gQWxsIHdvcmsgaXMgZG9uZSBp
biAidW5zY3JvbGxlZCIgcm9vdCB2aWV3IGNvb3JkaW5hdGVzIChhcyBpZiBkZWxlZ2F0ZXNTY3Jv
bGxpbmcgd2VyZSBvZmYpLAorICAgIC8vIHNvIHRoYXQgd2hlbiB0aGUgYXV0b3Njcm9sbGluZyB0
aW1lciBmaXJlcywgaXQgdXNlcyB0aGUgbmV3IHNjcm9sbCBwb3NpdGlvbiwgc28gdGhhdCBpdAor
ICAgIC8vIGNhbiBrZWVwIHNjcm9sbGluZyB3aXRob3V0IHRoZSBjbGllbnQgcHVzaGluZyBhIG5l
dyBjb250ZW50cy1zcGFjZSB0YXJnZXQgcG9zaXRpb24gdmlhIHN0YXJ0U2VsZWN0aW9uQXV0b3Nj
cm9sbC4KKyAgICBhdXRvIHNjcm9sbFBvc2l0aW9uID0gdG9JbnRTaXplKGZyYW1lVmlldy5kb2N1
bWVudFNjcm9sbFBvc2l0aW9uUmVsYXRpdmVUb1ZpZXdPcmlnaW4oKSk7CiAgICAgCi0gICAgRmxv
YXRSZWN0IHVub2JzY3VyZWRDb250ZW50UmVjdCA9IHByb3RlY3RlZEZyYW1lLT52aWV3KCktPnVu
b2JzY3VyZWRDb250ZW50UmVjdCgpOwotICAgIAotICAgIC8vIE1hbnVhbGx5IG5lZWQgdG8gY29u
dmVydCB2aWV3VG9Db250ZW50cywgYXMgaXQgd2lsbCBiZSBza2lwcGVkIGJlY2F1c2UgZGVsZWdh
dGVkU2Nyb2xsaW5nIGlzIG9uIGlPUwotICAgIEludFBvaW50IGNvbnRlbnRQb3NpdGlvbiA9IHBy
b3RlY3RlZEZyYW1lLT52aWV3KCktPnZpZXdUb0NvbnRlbnRzKHByb3RlY3RlZEZyYW1lLT52aWV3
KCktPmNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvdyhtX3RhcmdldEF1dG9zY3JvbGxQb3NpdGlv
bkluV2luZG93KSk7Ci0gICAgSW50U2l6ZSBhZGp1c3RQb3NpdGlvbiA9IGF1dG9zY3JvbGxBZGp1
c3RtZW50RmFjdG9yRm9yU2NyZWVuQm91bmRhcmllcyhjb250ZW50UG9zaXRpb24sIHVub2JzY3Vy
ZWRDb250ZW50UmVjdCwgcHJvdGVjdGVkRnJhbWUtPnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCkp
OwotICAgIHJldHVybiBjb250ZW50UG9zaXRpb24gKyBhZGp1c3RQb3NpdGlvbjsKKyAgICBGbG9h
dFJlY3QgdW5vYnNjdXJlZENvbnRlbnRSZWN0SW5VbnNjcm9sbGVkUm9vdFZpZXdDb29yZGluYXRl
cyA9IGZyYW1lVmlldy5jb250ZW50c1RvUm9vdFZpZXcoZnJhbWVWaWV3LnVub2JzY3VyZWRDb250
ZW50UmVjdCgpKTsKKyAgICB1bm9ic2N1cmVkQ29udGVudFJlY3RJblVuc2Nyb2xsZWRSb290Vmll
d0Nvb3JkaW5hdGVzLm1vdmUoLXNjcm9sbFBvc2l0aW9uKTsKKworICAgIHJldHVybiBhZGp1c3RB
dXRvc2Nyb2xsRGVzdGluYXRpb25Gb3JJbnNldEVkZ2VzKG1fdGFyZ2V0QXV0b3Njcm9sbFBvc2l0
aW9uSW5VbnNjcm9sbGVkUm9vdFZpZXdDb29yZGluYXRlcywgbV9pbml0aWFsVGFyZ2V0QXV0b3Nj
cm9sbFBvc2l0aW9uSW5VbnNjcm9sbGVkUm9vdFZpZXdDb29yZGluYXRlcywgdW5vYnNjdXJlZENv
bnRlbnRSZWN0SW5VbnNjcm9sbGVkUm9vdFZpZXdDb29yZGluYXRlcykgKyBzY3JvbGxQb3NpdGlv
bjsKIH0KICAgICAKIGJvb2wgRXZlbnRIYW5kbGVyOjpzaG91bGRVcGRhdGVBdXRvc2Nyb2xsKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390694</attachid>
            <date>2020-02-13 15:21:58 -0800</date>
            <delta_ts>2020-02-13 15:24:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207717-20200213152158.patch</filename>
            <type>text/plain</type>
            <size>12288</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWI1ODA2YWRlNTZlZGQ5
NzU4OTFhOWFlNjIxNjQ1ZWQwNjk3NTY3Ny4uOTY2N2RjNDU4MjZiMDNhMzg0ZjFlOGI0NWY3ZDI0
MzY0NjI5NmNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTAyLTEzICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIGlPUzogQXV0b3Nj
cm9sbGluZyBpcyB0b28gZmFzdCBhbmQgd2F5IHRvbyBhZ2dyZXNzaXZlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc3MTcKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzU5MjA4MTIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4K
KworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAgICogcGFnZS9pb3MvRXZl
bnRIYW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzdGFydFNl
bGVjdGlvbkF1dG9zY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjYW5j
ZWxTZWxlY3Rpb25BdXRvc2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OmFkanVzdEF1dG9zY3Jv
bGxEZXN0aW5hdGlvbkZvckluc2V0RWRnZXMpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjp0YXJnZXRQb3NpdGlvbkluV2luZG93Rm9yU2VsZWN0aW9uQXV0b3Njcm9sbCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjphdXRvc2Nyb2xsQWRqdXN0bWVudEZhY3RvckZvclNjcmVlbkJv
dW5kYXJpZXMpOiBEZWxldGVkLgorICAgICAgICBNYWtlIGEgZmV3IHNtYWxsIGNoYW5nZXMgdG8g
YXV0b3Njcm9sbGluZyBvbiBpT1MgdG8gbWFrZSBpdCBmZWVsIGJldHRlcjoKKworICAgICAgICAt
IFN0b3JlIHRoZSBhdXRvc2Nyb2xsaW5nIHBvc2l0aW9uIGluICJ1bnNjcm9sbGVkIiBjb29yZGlu
YXRlcywgYW5kIGRvCisgICAgICAgIGFsbCB3b3JrIGluIHRoaXMgc3BhY2UsIGNvbnZlcnRpbmcg
YmFjayB3aGVuIGl0J3MgdGltZSB0byBhY3R1YWxseSBzY3JvbGwuCisgICAgICAgIFRoaXMgZml4
ZXMgdGhlIHByb2JsZW0gd2hlcmUgeW91IGhhdmUgdG8gd2lnZ2xlIHlvdXIgZmluZ2VyIHRvIGF1
dG9zY3JvbGwsCisgICAgICAgIGJlY2F1c2Ugbm93IHdoZW4gdGhlIHRpbWVyIGZpcmVzLCB0aGUg
cG9pbnQgYWN0dWFsbHkgbW92ZXMgKGJlZm9yZSwgaXQgd2FzCisgICAgICAgIGFsbCBzdG9yZWQg
aW4gImNvbnRlbnQiIGNvb3JkaW5hdGVzLCBzbyB3b3VsZG4ndCBhY3R1YWxseSBjaGFuZ2UgdW50
aWwKKyAgICAgICAgdGhlIGNsaWVudCBwdXNoZWQgYSBuZXcgcG9pbnQpLgorCisgICAgICAgIC0g
UmVpbnRyb2R1Y2UgdGhlIG1hY09TLXN0eWxlIGxpbmVhciBzY2FsaW5nIG9mIHNjcm9sbGluZyB2
ZWxvY2l0eQorICAgICAgICBpbiAoYW5kIGJleW9uZCkgdGhlIGluc2V0IHJlZ2lvbi4gV2Ugc2Nh
bGUgdGhlIGZyYWN0aW9uYWwgZGlzdGFuY2UgaW50bworICAgICAgICB0aGUgaW5zZXQgcmVnaW9u
IHRvIGEgMjBwdC81MG1zIHNjcm9sbCB2ZWxvY2l0eTsgd2hlbiB5b3UgZXhpdCB0aGUgaW5zZXQK
KyAgICAgICAgaXQgY29udGludWVzIHNjYWxpbmcgdXAgbGluZWFybHkgZnJvbSB0aGVyZS4KKwor
ICAgICAgICAtIE9ubHkgYXBwbHkgaW5zZXRzIGluIHRoZSBkaXJlY3Rpb24gdGhhdCB0aGUgYXV0
b3Njcm9sbCBkcmFnIGlzIG9jY3VycmluZworICAgICAgICBpbi4gVGhpcyBhdm9pZHMgYSBwcm9i
bGVtIHdoZXJlIGUuZy4gaG9yaXpvbnRhbGx5IHNlbGVjdGluZyB0ZXh0IG9uIHRoZQorICAgICAg
ICBmaXJzdCB2aXNpYmxlIGxpbmUgb2YgYSBwYWdlIHdvdWxkIGNhdXNlIHVzIHRvIHNjcm9sbCB1
cCwgYXMgaXQgc2F0CisgICAgICAgIHdpdGhpbiB0aGUgdG9wIGluc2V0LiBJbnN0ZWFkLCB3ZSBv
bmx5IGFwcGx5IGFuIGluc2V0IGluIHRoZSBkaXJlY3Rpb24gb2YKKyAgICAgICAgdGhlIGRyYWcs
IGFuZCBkbyBub3QgYWxsb3cgaXRzIG1hZ25pdHVkZSB0byBleGNlZWQgdGhlIGN1cnJlbnRseSBk
cmFnZ2VkCisgICAgICAgIGRpc3RhbmNlLgorCiAyMDIwLTAyLTExICBaYWxhbiBCdWp0YXMgIDx6
YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gSW50cm9kdWNlIExheW91dDo6TGluZUJy
ZWFrQm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCBlYTI0NzJkODk1YzY3NjQy
OTQ4MjcyNmMxNDNkMDdmMTAxNzU1OTJkLi5iN2M4MTIwMjYwN2RjODYxZTU0MGVkYjFjZTkwNWMw
NDhlY2NmNGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAgLTYyNiw4ICs2MjYs
OSBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBib29sIG1fc2hv
dWxkQWxsb3dNb3VzZURvd25Ub1N0YXJ0RHJhZyB7IGZhbHNlIH07Ci0gICAgSW50UG9pbnQgbV90
YXJnZXRBdXRvc2Nyb2xsUG9zaXRpb25JbldpbmRvdzsKICAgICBib29sIG1faXNBdXRvc2Nyb2xs
aW5nIHsgZmFsc2UgfTsKKyAgICBJbnRQb2ludCBtX3RhcmdldEF1dG9zY3JvbGxQb3NpdGlvbklu
VW5zY3JvbGxlZFJvb3RWaWV3Q29vcmRpbmF0ZXM7CisgICAgT3B0aW9uYWw8SW50UG9pbnQ+IG1f
aW5pdGlhbFRhcmdldEF1dG9zY3JvbGxQb3NpdGlvbkluVW5zY3JvbGxlZFJvb3RWaWV3Q29vcmRp
bmF0ZXM7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDVVJTT1JfVklTSUJJTElUWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQppbmRleCA2ZWQ3MmNjMDRkN2FhNTYy
NDM3YWM5ZTE3Zjk2ZDMyODE4ZmM1MDAxLi40ZjE3OTIxNjdjOGJhOGQ3Zjc2MTA4MDQwNTZlMDJk
MGQ4NGQ2MjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRs
ZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1t
CkBAIC01ODUsOCArNTg1LDExIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzdGFydFNlbGVjdGlvbkF1
dG9zY3JvbGwoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgRmxvYXRQCiB7CiAgICAgUmVm
PEZyYW1lPiBwcm90ZWN0ZWRGcmFtZShtX2ZyYW1lKTsKIAotICAgIG1fdGFyZ2V0QXV0b3Njcm9s
bFBvc2l0aW9uSW5XaW5kb3cgPSBwcm90ZWN0ZWRGcmFtZS0+dmlldygpLT5jb250ZW50c1RvVmll
dyhyb3VuZGVkSW50UG9pbnQocG9zaXRpb25JbldpbmRvdykpOwotICAgIAorICAgIG1fdGFyZ2V0
QXV0b3Njcm9sbFBvc2l0aW9uSW5VbnNjcm9sbGVkUm9vdFZpZXdDb29yZGluYXRlcyA9IHByb3Rl
Y3RlZEZyYW1lLT52aWV3KCktPmNvbnRlbnRzVG9Sb290Vmlldyhyb3VuZGVkSW50UG9pbnQocG9z
aXRpb25JbldpbmRvdykpIC0gdG9JbnRTaXplKHByb3RlY3RlZEZyYW1lLT52aWV3KCktPmRvY3Vt
ZW50U2Nyb2xsUG9zaXRpb25SZWxhdGl2ZVRvVmlld09yaWdpbigpKTsKKworICAgIGlmICghbV9p
c0F1dG9zY3JvbGxpbmcpCisgICAgICAgIG1faW5pdGlhbFRhcmdldEF1dG9zY3JvbGxQb3NpdGlv
bkluVW5zY3JvbGxlZFJvb3RWaWV3Q29vcmRpbmF0ZXMgPSBtX3RhcmdldEF1dG9zY3JvbGxQb3Np
dGlvbkluVW5zY3JvbGxlZFJvb3RWaWV3Q29vcmRpbmF0ZXM7CisKICAgICBtX2lzQXV0b3Njcm9s
bGluZyA9IHRydWU7CiAgICAgbV9hdXRvc2Nyb2xsQ29udHJvbGxlci0+c3RhcnRBdXRvc2Nyb2xs
Rm9yU2VsZWN0aW9uKHJlbmRlcmVyKTsKIH0KQEAgLTU5NCw2NSArNTk3LDgzIEBAIHZvaWQgRXZl
bnRIYW5kbGVyOjpzdGFydFNlbGVjdGlvbkF1dG9zY3JvbGwoUmVuZGVyT2JqZWN0KiByZW5kZXJl
ciwgY29uc3QgRmxvYXRQCiB2b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsU2VsZWN0aW9uQXV0b3Nj
cm9sbCgpCiB7CiAgICAgbV9pc0F1dG9zY3JvbGxpbmcgPSBmYWxzZTsKKyAgICBtX2luaXRpYWxU
YXJnZXRBdXRvc2Nyb2xsUG9zaXRpb25JblVuc2Nyb2xsZWRSb290Vmlld0Nvb3JkaW5hdGVzID0g
V1RGOjpudWxsb3B0OwogICAgIG1fYXV0b3Njcm9sbENvbnRyb2xsZXItPnN0b3BBdXRvc2Nyb2xs
VGltZXIoKTsKIH0KIAotc3RhdGljIEludFNpemUgYXV0b3Njcm9sbEFkanVzdG1lbnRGYWN0b3JG
b3JTY3JlZW5Cb3VuZGFyaWVzKGNvbnN0IEludFBvaW50JiBjb250ZW50UG9zaXRpb24sIGNvbnN0
IEZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0LCBmbG9hdCB6b29tRmFjdG9yKQorc3Rh
dGljIEludFBvaW50IGFkanVzdEF1dG9zY3JvbGxEZXN0aW5hdGlvbkZvckluc2V0RWRnZXMoSW50
UG9pbnQgYXV0b3Njcm9sbFBvaW50LCBPcHRpb25hbDxJbnRQb2ludD4gaW5pdGlhbEF1dG9zY3Jv
bGxQb2ludCwgRmxvYXRSZWN0IHVub2JzY3VyZWRSb290Vmlld1JlY3QpCiB7Ci0gICAgLy8gSWYg
dGhlIHdpbmRvdyBpcyBhdCB0aGUgZWRnZSBvZiB0aGUgc2NyZWVuLCBhbmQgdGhlIHRvdWNoIHBv
c2l0aW9uIGlzIGFsc28gYXQgdGhhdCBlZGdlIG9mIHRoZSBzY3JlZW4sCi0gICAgLy8gd2UgbmVl
ZCB0byBhZGp1c3QgdGhlIGF1dG9zY3JvbGwgYW1vdW50IGluIG9yZGVyIGZvciB0aGUgdXNlciB0
byBiZSBhYmxlIHRvIGF1dG9zY3JvbGwgaW4gdGhhdCBkaXJlY3Rpb24uCi0gICAgLy8gV2UgY2Fu
IHByZXRlbmQgdGhhdCB0aGUgdG91Y2ggcG9zaXRpb24gaXMgc2xpZ2h0bHkgYmV5b25kIHRoZSBl
ZGdlIG9mIHRoZSBzY3JlZW4sIGFuZCB0aGVuIGF1dG9zY3JvbGxpbmcKLSAgICAvLyB3aWxsIG9j
Y3VyIGFzIGV4cGVjdGVkLiBUaGlzIGZ1bmN0aW9uIGZpZ3VyZXMgb3V0IGp1c3QgaG93IG11Y2gg
dG8gYWRqdXN0IHRoZSBhdXRvc2Nyb2xsIGFtb3VudCBieQotICAgIC8vIGluIG9yZGVyIHRvIGdl
dCBhdXRvc2Nyb2xsaW5nIHRvIGZlZWwgbmF0dXJhbCBpbiB0aGlzIHNpdHVhdGlvbi4KLSAgICAK
LSAgICBJbnRTaXplIGFkanVzdG1lbnRGYWN0b3I7Ci0gICAgCi0jZGVmaW5lIEVER0VfRElTVEFO
Q0VfVEhSRVNIT0xEIDEwMAorICAgIEludFBvaW50IHJlc3VsdFBvaW50ID0gYXV0b3Njcm9sbFBv
aW50OwogCi0gICAgQ0dTaXplIGVkZ2VEaXN0YW5jZVRocmVzaG9sZCA9IENHU2l6ZU1ha2UoRURH
RV9ESVNUQU5DRV9USFJFU0hPTEQgLyB6b29tRmFjdG9yLCBFREdFX0RJU1RBTkNFX1RIUkVTSE9M
RCAvIHpvb21GYWN0b3IpOwotICAgIAotICAgIGZsb2F0IHNjcmVlbkxlZnRFZGdlID0gdW5vYnNj
dXJlZENvbnRlbnRSZWN0LngoKTsKLSAgICBmbG9hdCBpbnNldFNjcmVlbkxlZnRFZGdlID0gc2Ny
ZWVuTGVmdEVkZ2UgKyBlZGdlRGlzdGFuY2VUaHJlc2hvbGQud2lkdGg7Ci0gICAgZmxvYXQgc2Ny
ZWVuUmlnaHRFZGdlID0gdW5vYnNjdXJlZENvbnRlbnRSZWN0Lm1heFgoKTsKLSAgICBmbG9hdCBp
bnNldFNjcmVlblJpZ2h0RWRnZSA9IHNjcmVlblJpZ2h0RWRnZSAtIGVkZ2VEaXN0YW5jZVRocmVz
aG9sZC53aWR0aDsKLSAgICBpZiAoY29udGVudFBvc2l0aW9uLngoKSA+PSBzY3JlZW5MZWZ0RWRn
ZSAmJiBjb250ZW50UG9zaXRpb24ueCgpIDwgaW5zZXRTY3JlZW5MZWZ0RWRnZSkgewotICAgICAg
ICBmbG9hdCBkaXN0YW5jZUZyb21FZGdlID0gY29udGVudFBvc2l0aW9uLngoKSAtIHNjcmVlbkxl
ZnRFZGdlIC0gZWRnZURpc3RhbmNlVGhyZXNob2xkLndpZHRoOworICAgIGNvbnN0IGZsb2F0IGVk
Z2VJbnNldCA9IDc1OworICAgIGNvbnN0IGZsb2F0IG1heGltdW1TY3JvbGxpbmdTcGVlZCA9IDIw
OworICAgIGNvbnN0IGZsb2F0IGluc2V0RGlzdGFuY2VUaHJlc2hvbGQgPSBlZGdlSW5zZXQgLyAy
OworCisgICAgLy8gRklYTUU6IElkZWFsbHkgd2Ugd291bGQgb25seSBpbnNldCBvbiBlZGdlcyB0
aGF0IHRvdWNoIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4sCisgICAgLy8gbGlrZSBtYWNPUywgYnV0
IHdlIGRvbid0IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIGluIFdlYkNvcmUgdG8gZG8gdGhhdCBj
dXJyZW50bHkuCisgICAgRmxvYXRSZWN0IGluc2V0VW5vYnNjdXJlZFJvb3RWaWV3UmVjdCA9IHVu
b2JzY3VyZWRSb290Vmlld1JlY3Q7CisKKyAgICBpZiAoaW5pdGlhbEF1dG9zY3JvbGxQb2ludCkg
eworICAgICAgICBJbnRTaXplIGF1dG9zY3JvbGxEZWx0YSA9IGF1dG9zY3JvbGxQb2ludCAtICpp
bml0aWFsQXV0b3Njcm9sbFBvaW50OworCisgICAgICAgIC8vIEluc2V0IGVkZ2VzIGluIHRoZSBk
aXJlY3Rpb24gb2YgdGhlIGF1dG9zY3JvbGwuCisgICAgICAgIC8vIERvIG5vdCBhcHBseSBpbnNl
dHMgdW50aWwgeW91IGRyYWcgaW4gdGhlIGRpcmVjdGlvbiBvZiB0aGUgZWRnZSBhdCBsZWFzdCBg
aW5zZXREaXN0YW5jZVRocmVzaG9sZGAsCisgICAgICAgIC8vIHRvIG1ha2UgaXQgcG9zc2libGUg
dG8gc2VsZWN0IHRleHQgdGhhdCBhYnV0cyB0aGUgZWRnZSBvZiBgdW5vYnNjdXJlZFJvb3RWaWV3
UmVjdGAgd2l0aG91dCBjYXVzaW5nCisgICAgICAgIC8vIHVud2FudGVkIGF1dG9zY3JvbGxpbmcu
CisgICAgICAgIGlmIChhdXRvc2Nyb2xsRGVsdGEud2lkdGgoKSA8IGluc2V0RGlzdGFuY2VUaHJl
c2hvbGQpCisgICAgICAgICAgICBpbnNldFVub2JzY3VyZWRSb290Vmlld1JlY3Quc2hpZnRYRWRn
ZVRvKGluc2V0VW5vYnNjdXJlZFJvb3RWaWV3UmVjdC54KCkgKyBzdGQ6Om1pbjxmbG9hdD4oZWRn
ZUluc2V0LCAtYXV0b3Njcm9sbERlbHRhLndpZHRoKCkgLSBpbnNldERpc3RhbmNlVGhyZXNob2xk
KSk7CisgICAgICAgIGVsc2UgaWYgKGF1dG9zY3JvbGxEZWx0YS53aWR0aCgpID4gaW5zZXREaXN0
YW5jZVRocmVzaG9sZCkKKyAgICAgICAgICAgIGluc2V0VW5vYnNjdXJlZFJvb3RWaWV3UmVjdC5z
aGlmdE1heFhFZGdlVG8oaW5zZXRVbm9ic2N1cmVkUm9vdFZpZXdSZWN0Lm1heFgoKSAtIHN0ZDo6
bWluPGZsb2F0PihlZGdlSW5zZXQsIGF1dG9zY3JvbGxEZWx0YS53aWR0aCgpIC0gaW5zZXREaXN0
YW5jZVRocmVzaG9sZCkpOworCisgICAgICAgIGlmIChhdXRvc2Nyb2xsRGVsdGEuaGVpZ2h0KCkg
PCBpbnNldERpc3RhbmNlVGhyZXNob2xkKQorICAgICAgICAgICAgaW5zZXRVbm9ic2N1cmVkUm9v
dFZpZXdSZWN0LnNoaWZ0WUVkZ2VUbyhpbnNldFVub2JzY3VyZWRSb290Vmlld1JlY3QueSgpICsg
c3RkOjptaW48ZmxvYXQ+KGVkZ2VJbnNldCwgLWF1dG9zY3JvbGxEZWx0YS5oZWlnaHQoKSAtIGlu
c2V0RGlzdGFuY2VUaHJlc2hvbGQpKTsKKyAgICAgICAgZWxzZSBpZiAoYXV0b3Njcm9sbERlbHRh
LmhlaWdodCgpID4gaW5zZXREaXN0YW5jZVRocmVzaG9sZCkKKyAgICAgICAgICAgIGluc2V0VW5v
YnNjdXJlZFJvb3RWaWV3UmVjdC5zaGlmdE1heFlFZGdlVG8oaW5zZXRVbm9ic2N1cmVkUm9vdFZp
ZXdSZWN0Lm1heFkoKSAtIHN0ZDo6bWluPGZsb2F0PihlZGdlSW5zZXQsIGF1dG9zY3JvbGxEZWx0
YS5oZWlnaHQoKSAtIGluc2V0RGlzdGFuY2VUaHJlc2hvbGQpKTsKKyAgICB9CisKKyAgICAvLyBJ
ZiB0aGUgY3VycmVudCBhdXRvc2Nyb2xsIHBvaW50IGlzIGJleW9uZCB0aGUgZWRnZSBvZiB0aGUg
dmlldyAocmVzcGVjdGluZyBpbnNldHMpLCBzaGlmdCBpdCBvdXRzaWRlCisgICAgLy8gb2YgdGhl
IHZpZXcsIHNvIHRoYXQgYXV0b3Njcm9sbGluZyB3aWxsIG9jY3VyLiBUaGUgZGlzdGFuY2Ugd2Ug
bW92ZSBvdXRzaWRlIG9mIHRoZSB2aWV3IGlzIHNjYWxlZCBmcm9tCisgICAgLy8gYGVkZ2VJbnNl
dGAgdG8gYG1heGltdW1TY3JvbGxpbmdTcGVlZGAgc28gdGhhdCB0aGUgaW5zZXQncyBjb250cmli
dXRpb24gdG8gdGhlIHNwZWVkIGlzIGluZGVwZW5kZW50IG9mIGl0cyBzaXplLgorICAgIGlmIChh
dXRvc2Nyb2xsUG9pbnQueCgpIDwgaW5zZXRVbm9ic2N1cmVkUm9vdFZpZXdSZWN0LngoKSkgewor
ICAgICAgICBmbG9hdCBkaXN0YW5jZUZyb21FZGdlID0gYXV0b3Njcm9sbFBvaW50LngoKSAtIGlu
c2V0VW5vYnNjdXJlZFJvb3RWaWV3UmVjdC54KCk7CiAgICAgICAgIGlmIChkaXN0YW5jZUZyb21F
ZGdlIDwgMCkKLSAgICAgICAgICAgIGFkanVzdG1lbnRGYWN0b3Iuc2V0V2lkdGgoLWVkZ2VEaXN0
YW5jZVRocmVzaG9sZC53aWR0aCk7Ci0gICAgfSBlbHNlIGlmIChjb250ZW50UG9zaXRpb24ueCgp
ID49IGluc2V0U2NyZWVuUmlnaHRFZGdlICYmIGNvbnRlbnRQb3NpdGlvbi54KCkgPCBzY3JlZW5S
aWdodEVkZ2UpIHsKLSAgICAgICAgZmxvYXQgZGlzdGFuY2VGcm9tRWRnZSA9IGVkZ2VEaXN0YW5j
ZVRocmVzaG9sZC53aWR0aCAtIChzY3JlZW5SaWdodEVkZ2UgLSBjb250ZW50UG9zaXRpb24ueCgp
KTsKKyAgICAgICAgICAgIHJlc3VsdFBvaW50LnNldFgodW5vYnNjdXJlZFJvb3RWaWV3UmVjdC54
KCkgKyAoKGRpc3RhbmNlRnJvbUVkZ2UgLyBlZGdlSW5zZXQpICogbWF4aW11bVNjcm9sbGluZ1Nw
ZWVkKSk7CisgICAgfSBlbHNlIGlmIChhdXRvc2Nyb2xsUG9pbnQueCgpID49IGluc2V0VW5vYnNj
dXJlZFJvb3RWaWV3UmVjdC5tYXhYKCkpIHsKKyAgICAgICAgZmxvYXQgZGlzdGFuY2VGcm9tRWRn
ZSA9IGF1dG9zY3JvbGxQb2ludC54KCkgLSBpbnNldFVub2JzY3VyZWRSb290Vmlld1JlY3QubWF4
WCgpOwogICAgICAgICBpZiAoZGlzdGFuY2VGcm9tRWRnZSA+IDApCi0gICAgICAgICAgICBhZGp1
c3RtZW50RmFjdG9yLnNldFdpZHRoKGVkZ2VEaXN0YW5jZVRocmVzaG9sZC53aWR0aCk7CisgICAg
ICAgICAgICByZXN1bHRQb2ludC5zZXRYKHVub2JzY3VyZWRSb290Vmlld1JlY3QubWF4WCgpICsg
KChkaXN0YW5jZUZyb21FZGdlIC8gZWRnZUluc2V0KSAqIG1heGltdW1TY3JvbGxpbmdTcGVlZCkp
OwogICAgIH0KLSAgICAKLSAgICBmbG9hdCBzY3JlZW5Ub3BFZGdlID0gdW5vYnNjdXJlZENvbnRl
bnRSZWN0LnkoKTsKLSAgICBmbG9hdCBpbnNldFNjcmVlblRvcEVkZ2UgPSBzY3JlZW5Ub3BFZGdl
ICsgZWRnZURpc3RhbmNlVGhyZXNob2xkLmhlaWdodDsKLSAgICBmbG9hdCBzY3JlZW5Cb3R0b21F
ZGdlID0gdW5vYnNjdXJlZENvbnRlbnRSZWN0Lm1heFkoKTsKLSAgICBmbG9hdCBpbnNldFNjcmVl
bkJvdHRvbUVkZ2UgPSBzY3JlZW5Cb3R0b21FZGdlIC0gZWRnZURpc3RhbmNlVGhyZXNob2xkLmhl
aWdodDsKLSAgICAKLSAgICBpZiAoY29udGVudFBvc2l0aW9uLnkoKSA+PSBzY3JlZW5Ub3BFZGdl
ICYmIGNvbnRlbnRQb3NpdGlvbi55KCkgPCBpbnNldFNjcmVlblRvcEVkZ2UpIHsKLSAgICAgICAg
ZmxvYXQgZGlzdGFuY2VGcm9tRWRnZSA9IGNvbnRlbnRQb3NpdGlvbi55KCkgLSBzY3JlZW5Ub3BF
ZGdlIC0gZWRnZURpc3RhbmNlVGhyZXNob2xkLmhlaWdodDsKKworICAgIGlmIChhdXRvc2Nyb2xs
UG9pbnQueSgpIDwgaW5zZXRVbm9ic2N1cmVkUm9vdFZpZXdSZWN0LnkoKSkgeworICAgICAgICBm
bG9hdCBkaXN0YW5jZUZyb21FZGdlID0gYXV0b3Njcm9sbFBvaW50LnkoKSAtIGluc2V0VW5vYnNj
dXJlZFJvb3RWaWV3UmVjdC55KCk7CiAgICAgICAgIGlmIChkaXN0YW5jZUZyb21FZGdlIDwgMCkK
LSAgICAgICAgICAgIGFkanVzdG1lbnRGYWN0b3Iuc2V0SGVpZ2h0KC1lZGdlRGlzdGFuY2VUaHJl
c2hvbGQuaGVpZ2h0KTsKLSAgICB9IGVsc2UgaWYgKGNvbnRlbnRQb3NpdGlvbi55KCkgPj0gaW5z
ZXRTY3JlZW5Cb3R0b21FZGdlICYmIGNvbnRlbnRQb3NpdGlvbi55KCkgPCBzY3JlZW5Cb3R0b21F
ZGdlKSB7Ci0gICAgICAgIGZsb2F0IGRpc3RhbmNlRnJvbUVkZ2UgPSBlZGdlRGlzdGFuY2VUaHJl
c2hvbGQuaGVpZ2h0IC0gKHNjcmVlbkJvdHRvbUVkZ2UgLSBjb250ZW50UG9zaXRpb24ueSgpKTsK
KyAgICAgICAgICAgIHJlc3VsdFBvaW50LnNldFkodW5vYnNjdXJlZFJvb3RWaWV3UmVjdC55KCkg
KyAoKGRpc3RhbmNlRnJvbUVkZ2UgLyBlZGdlSW5zZXQpICogbWF4aW11bVNjcm9sbGluZ1NwZWVk
KSk7CisgICAgfSBlbHNlIGlmIChhdXRvc2Nyb2xsUG9pbnQueSgpID49IGluc2V0VW5vYnNjdXJl
ZFJvb3RWaWV3UmVjdC5tYXhZKCkpIHsKKyAgICAgICAgZmxvYXQgZGlzdGFuY2VGcm9tRWRnZSA9
IGF1dG9zY3JvbGxQb2ludC55KCkgLSBpbnNldFVub2JzY3VyZWRSb290Vmlld1JlY3QubWF4WSgp
OwogICAgICAgICBpZiAoZGlzdGFuY2VGcm9tRWRnZSA+IDApCi0gICAgICAgICAgICBhZGp1c3Rt
ZW50RmFjdG9yLnNldEhlaWdodChlZGdlRGlzdGFuY2VUaHJlc2hvbGQuaGVpZ2h0KTsKKyAgICAg
ICAgICAgIHJlc3VsdFBvaW50LnNldFkodW5vYnNjdXJlZFJvb3RWaWV3UmVjdC5tYXhZKCkgKyAo
KGRpc3RhbmNlRnJvbUVkZ2UgLyBlZGdlSW5zZXQpICogbWF4aW11bVNjcm9sbGluZ1NwZWVkKSk7
CiAgICAgfQotICAgIAotICAgIHJldHVybiBhZGp1c3RtZW50RmFjdG9yOworCisgICAgcmV0dXJu
IHJlc3VsdFBvaW50OwogfQogICAgIAogSW50UG9pbnQgRXZlbnRIYW5kbGVyOjp0YXJnZXRQb3Np
dGlvbkluV2luZG93Rm9yU2VsZWN0aW9uQXV0b3Njcm9sbCgpIGNvbnN0CiB7CiAgICAgUmVmPEZy
YW1lPiBwcm90ZWN0ZWRGcmFtZShtX2ZyYW1lKTsKKworICAgIGlmICghbV9mcmFtZS52aWV3KCkp
CisgICAgICAgIHJldHVybiB7IH07CisgICAgYXV0byYgZnJhbWVWaWV3ID0gKm1fZnJhbWUudmll
dygpOworCisgICAgLy8gQWxsIHdvcmsgaXMgZG9uZSBpbiAidW5zY3JvbGxlZCIgcm9vdCB2aWV3
IGNvb3JkaW5hdGVzIChhcyBpZiBkZWxlZ2F0ZXNTY3JvbGxpbmcgd2VyZSBvZmYpLAorICAgIC8v
IHNvIHRoYXQgd2hlbiB0aGUgYXV0b3Njcm9sbGluZyB0aW1lciBmaXJlcywgaXQgdXNlcyB0aGUg
bmV3IHNjcm9sbCBwb3NpdGlvbiwgc28gdGhhdCBpdAorICAgIC8vIGNhbiBrZWVwIHNjcm9sbGlu
ZyB3aXRob3V0IHRoZSBjbGllbnQgcHVzaGluZyBhIG5ldyBjb250ZW50cy1zcGFjZSB0YXJnZXQg
cG9zaXRpb24gdmlhIHN0YXJ0U2VsZWN0aW9uQXV0b3Njcm9sbC4KKyAgICBhdXRvIHNjcm9sbFBv
c2l0aW9uID0gdG9JbnRTaXplKGZyYW1lVmlldy5kb2N1bWVudFNjcm9sbFBvc2l0aW9uUmVsYXRp
dmVUb1ZpZXdPcmlnaW4oKSk7CiAgICAgCi0gICAgRmxvYXRSZWN0IHVub2JzY3VyZWRDb250ZW50
UmVjdCA9IHByb3RlY3RlZEZyYW1lLT52aWV3KCktPnVub2JzY3VyZWRDb250ZW50UmVjdCgpOwot
ICAgIAotICAgIC8vIE1hbnVhbGx5IG5lZWQgdG8gY29udmVydCB2aWV3VG9Db250ZW50cywgYXMg
aXQgd2lsbCBiZSBza2lwcGVkIGJlY2F1c2UgZGVsZWdhdGVkU2Nyb2xsaW5nIGlzIG9uIGlPUwot
ICAgIEludFBvaW50IGNvbnRlbnRQb3NpdGlvbiA9IHByb3RlY3RlZEZyYW1lLT52aWV3KCktPnZp
ZXdUb0NvbnRlbnRzKHByb3RlY3RlZEZyYW1lLT52aWV3KCktPmNvbnZlcnRGcm9tQ29udGFpbmlu
Z1dpbmRvdyhtX3RhcmdldEF1dG9zY3JvbGxQb3NpdGlvbkluV2luZG93KSk7Ci0gICAgSW50U2l6
ZSBhZGp1c3RQb3NpdGlvbiA9IGF1dG9zY3JvbGxBZGp1c3RtZW50RmFjdG9yRm9yU2NyZWVuQm91
bmRhcmllcyhjb250ZW50UG9zaXRpb24sIHVub2JzY3VyZWRDb250ZW50UmVjdCwgcHJvdGVjdGVk
RnJhbWUtPnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCkpOwotICAgIHJldHVybiBjb250ZW50UG9z
aXRpb24gKyBhZGp1c3RQb3NpdGlvbjsKKyAgICBGbG9hdFJlY3QgdW5vYnNjdXJlZENvbnRlbnRS
ZWN0SW5VbnNjcm9sbGVkUm9vdFZpZXdDb29yZGluYXRlcyA9IGZyYW1lVmlldy5jb250ZW50c1Rv
Um9vdFZpZXcoZnJhbWVWaWV3LnVub2JzY3VyZWRDb250ZW50UmVjdCgpKTsKKyAgICB1bm9ic2N1
cmVkQ29udGVudFJlY3RJblVuc2Nyb2xsZWRSb290Vmlld0Nvb3JkaW5hdGVzLm1vdmUoLXNjcm9s
bFBvc2l0aW9uKTsKKworICAgIHJldHVybiBhZGp1c3RBdXRvc2Nyb2xsRGVzdGluYXRpb25Gb3JJ
bnNldEVkZ2VzKG1fdGFyZ2V0QXV0b3Njcm9sbFBvc2l0aW9uSW5VbnNjcm9sbGVkUm9vdFZpZXdD
b29yZGluYXRlcywgbV9pbml0aWFsVGFyZ2V0QXV0b3Njcm9sbFBvc2l0aW9uSW5VbnNjcm9sbGVk
Um9vdFZpZXdDb29yZGluYXRlcywgdW5vYnNjdXJlZENvbnRlbnRSZWN0SW5VbnNjcm9sbGVkUm9v
dFZpZXdDb29yZGluYXRlcykgKyBzY3JvbGxQb3NpdGlvbjsKIH0KICAgICAKIGJvb2wgRXZlbnRI
YW5kbGVyOjpzaG91bGRVcGRhdGVBdXRvc2Nyb2xsKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>