<?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>109316</bug_id>
          
          <creation_ts>2013-02-08 13:01:30 -0800</creation_ts>
          <short_desc>REGRESSION: A page can be scrolled with touch when its body has style overflow-x:hidden or overflow-y:hidden</short_desc>
          <delta_ts>2013-03-01 17:14:56 -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>Layout and Rendering</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>109769</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Terry Anderson">tdanderson</reporter>
          <assigned_to name="Terry Anderson">tdanderson</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>eric</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rjkroege</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>828727</commentid>
    <comment_count>0</comment_count>
      <attachid>187352</attachid>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2013-02-08 13:01:30 -0800</bug_when>
    <thetext>Created attachment 187352
Example page to reproduce the bug in chromium

The attached page has style=&quot;overflow-y:hidden&quot; on its body. It cannot be scrolled with mousewheels but can be scrolled with touch in chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828770</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-08 14:33:55 -0800</bug_when>
    <thetext>This page scrolls with trackpad on Mac. Behavior is different in Safari 6.0.2 and current WebKit build though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829374</commentid>
    <comment_count>2</comment_count>
      <attachid>187497</attachid>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2013-02-10 17:22:46 -0800</bug_when>
    <thetext>Created attachment 187497
WIP, not for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829386</commentid>
    <comment_count>3</comment_count>
      <attachid>187497</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-10 17:52:33 -0800</bug_when>
    <thetext>Comment on attachment 187497
WIP, not for review

Attachment 187497 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16471981

New failing tests:
fast/css/sticky/inline-sticky-abspos-child.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829753</commentid>
    <comment_count>4</comment_count>
      <attachid>187592</attachid>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2013-02-11 08:54:27 -0800</bug_when>
    <thetext>Created attachment 187592
WIP, not for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829975</commentid>
    <comment_count>5</comment_count>
      <attachid>187352</attachid>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2013-02-11 12:20:48 -0800</bug_when>
    <thetext>Comment on attachment 187352
Example page to reproduce the bug in chromium

This page does not accurately reproduce the problem in chromium, please ignore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830261</commentid>
    <comment_count>6</comment_count>
      <attachid>187704</attachid>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2013-02-11 15:54:58 -0800</bug_when>
    <thetext>Created attachment 187704
WIP, not for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831080</commentid>
    <comment_count>7</comment_count>
      <attachid>187897</attachid>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2013-02-12 10:52:03 -0800</bug_when>
    <thetext>Created attachment 187897
Page to reproduce the bug. This scrolls with touch but does not scroll with mousewheels in chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831232</commentid>
    <comment_count>8</comment_count>
      <attachid>187930</attachid>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2013-02-12 14:03:09 -0800</bug_when>
    <thetext>Created attachment 187930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831317</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-12 15:13:33 -0800</bug_when>
    <thetext>Terry tells me this bug is all about making Gesture scrolling match wheel-event scrolling.

Currently &lt;div&gt; with overflow hidden scroll:
text-scroll: YES
wheel: NO
gesture: YES

&lt;body&gt; with overflow hidden scroll:
text-scroll: YES
wheel: NO
gesture: YES

A few months back, before Terry moved the gesture scroll path off of wheel events gesture and wheel were the same in those above cases.  The goal of this change is to make them match again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831323</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-12 15:15:18 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Terry tells me this bug is all about making Gesture scrolling match wheel-event scrolling.
&gt; 
&gt; Currently &lt;div&gt; with overflow hidden scroll:
&gt; text-scroll: YES
&gt; wheel: NO
&gt; gesture: YES

Sorry, Terry tells me that bug 109087 fixed &lt;div&gt; scrolling for gesture to match wheel event, so that should be gesture: NO for &lt;div&gt;

Also, to clarify &quot;text scrolling&quot; I mean selecting text and dragging outside of the scroll region.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831331</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-12 15:21:00 -0800</bug_when>
    <thetext>overflow:hidden should never be scrollable by the user (only programmatically).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831348</commentid>
    <comment_count>12</comment_count>
      <attachid>187930</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-12 15:30:25 -0800</bug_when>
    <thetext>Comment on attachment 187930
Patch

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:2047
&gt; +    if (body &amp;&amp; body-&gt;renderer() &amp;&amp; body-&gt;hasTagName(bodyTag)) {

document-&gt;body() always hasTagName(bodyTag)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831415</commentid>
    <comment_count>13</comment_count>
      <attachid>187930</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-12 16:42:58 -0800</bug_when>
    <thetext>Comment on attachment 187930
Patch

OK.  I spoke with Jamesr and we learned a few things.

1.  Wheel events seem to scroll each direction separately, gestures may need to do the same if they aren&apos;t already.
2.  This appears to be a programatic scroll path.  You really want to be heading down the user-scroll paths instead.  RenderBox::scroll/RenderLayer::scroll/ScrollableArea::scroll are the ones you want.
3.  In the wheel-event case, scrolls are prevented for overflow: none by ScrollableArea::scroll detecting that it doesn&apos;t have a scrollbar in the direction you&apos;re asking it to scroll and bailing.  Gestures should likely go down that same path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832510</commentid>
    <comment_count>14</comment_count>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2013-02-13 16:38:55 -0800</bug_when>
    <thetext>After discussing the matter with Eric, it is clear that we should not even be using RenderLayer::scrollBy() to perform gesture scrolling. Switching code paths will fix this bug, among others. I have filed https://bugs.webkit.org/show_bug.cgi?id=109769 to track.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845661</commentid>
    <comment_count>15</comment_count>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2013-03-01 17:14:56 -0800</bug_when>
    <thetext>This issue is resolved by http://trac.webkit.org/changeset/144519.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>187352</attachid>
            <date>2013-02-08 13:01:30 -0800</date>
            <delta_ts>2013-02-11 12:20:48 -0800</delta_ts>
            <desc>Example page to reproduce the bug in chromium</desc>
            <filename>non-scrollable-body.html</filename>
            <type>text/html</type>
            <size>249</size>
            <attacher name="Terry Anderson">tdanderson</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgo8c3R5bGU+CgojcmVkYm94IHsKICB3aWR0aDog
MTAwcHg7CiAgaGVpZ2h0OiAyMDAwcHg7CiAgYmFja2dyb3VuZDogcmVkOwogIHBhZGRpbmc6IDBw
eDsKICBtYXJnaW46IDBweDsKfQoKPC9zdHlsZT4KPC9oZWFkPgo8Ym9keSBzdHlsZT0ib3ZlcmZs
b3cteTpoaWRkZW4iPgoKPGRpdiBpZD0icmVkYm94Ij48L2Rpdj4KPHA+Qm90dG9tIG9mIHBhZ2Uu
PC9wPgoKPC9ib2R5PjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187497</attachid>
            <date>2013-02-10 17:22:46 -0800</date>
            <delta_ts>2013-02-11 08:54:24 -0800</delta_ts>
            <desc>WIP, not for review</desc>
            <filename>bug-109316-20130210201917.patch</filename>
            <type>text/plain</type>
            <size>3219</size>
            <attacher name="Terry Anderson">tdanderson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzUzM2M0MmViMmJkY2M5
NGJlZjAxZjY2ZWEwNWJmOTYxMzJkMjhkMS4uMjhkY2NlZmVlZTBlYTU5ODQ0NWQ1YjQ3YjY2NDdj
OGE2N2Q0N2VhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAyLTEwICBUZXJy
eSBBbmRlcnNvbiAgPHRkYW5kZXJzb25AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEEgcGFnZSBj
YW4gYmUgc2Nyb2xsZWQgd2l0aCB0b3VjaCB3aGVuIGl0cyBib2R5IGhhcyBzdHlsZSBvdmVyZmxv
dzpoaWRkZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwOTMxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxCeSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Ym9keUhhc0hpZGRlbk92ZXJmbG93SW5TY3JvbGxEaXJl
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmg6CisgICAgICAgIChSZW5kZXJMYXllcik6CisKIDIwMTMtMDItMTAgIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjEzMjQy
Mik6IFBhZ2UgY29udGVudCBhbmQgc2Nyb2xsYmFycyBhcmUgaW5jb3JyZWN0bHkgb2Zmc2V0IGFm
dGVyIHJlc3RvcmluZyBhIHBhZ2UgZnJvbSB0aGUgcGFnZSBjYWNoZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggZThkMDNlYTExZDE0MjcyNjBhNDIyNzEwM2Ri
MDdiMmM3Zjg1NmQwNy4uMzE0M2RlYzU2NGIzMDMzMmU4ZDdmZWVhNmE4MTZkOWZkOTRhZjRhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yMDI2LDcgKzIw
MjYsNyBAQCBib29sIFJlbmRlckxheWVyOjpzY3JvbGxCeShjb25zdCBJbnRTaXplJiBkZWx0YSwg
U2Nyb2xsT2Zmc2V0Q2xhbXBpbmcgY2xhbXAsIFNjcgogICAgICAgICAvLyBoYXZlIGFuIG92ZXJm
bG93IGNsaXAuIFdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBkb2N1bWVudCBub2RlIHRoYXQgY2Fu
IGJlIHNjcm9sbGVkLgogICAgICAgICBGcmFtZVZpZXcqIHZpZXcgPSByZW5kZXJlcigpLT52aWV3
KCktPmZyYW1lVmlldygpOwogICAgICAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbkJlZm9yZSA9
IHZpZXctPnNjcm9sbFBvc2l0aW9uKCk7Ci0gICAgICAgIGlmICh2aWV3LT5pc1Njcm9sbGFibGUo
KSkKKyAgICAgICAgaWYgKHZpZXctPmlzU2Nyb2xsYWJsZSgpICYmICFib2R5SGFzSGlkZGVuT3Zl
cmZsb3dJblNjcm9sbERpcmVjdGlvbihkZWx0YSkpCiAgICAgICAgICAgICB2aWV3LT5zY3JvbGxC
eShkZWx0YSk7CiAgICAgICAgIEludFBvaW50IHNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSB2aWV3LT5z
Y3JvbGxQb3NpdGlvbigpOwogICAgICAgICByZXR1cm4gc2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0g
c2Nyb2xsUG9zaXRpb25BZnRlcjsKQEAgLTIwMzgsNiArMjAzOCwyMCBAQCBib29sIFJlbmRlckxh
eWVyOjpzY3JvbGxCeShjb25zdCBJbnRTaXplJiBkZWx0YSwgU2Nyb2xsT2Zmc2V0Q2xhbXBpbmcg
Y2xhbXAsIFNjcgogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBSZW5kZXJMYXllcjo6Ym9k
eUhhc0hpZGRlbk92ZXJmbG93SW5TY3JvbGxEaXJlY3Rpb24oY29uc3QgSW50U2l6ZSYgZGVsdGEp
Cit7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gcmVuZGVyZXIoKS0+dmlldygpLT5mcmFtZVZp
ZXcoKS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICBOb2RlKiBib2R5ID0gZG9jdW1lbnQtPmJv
ZHkoKTsKKyAgICBpZiAoYm9keSAmJiBib2R5LT5yZW5kZXJlcigpICYmIGJvZHktPmhhc1RhZ05h
bWUoYm9keVRhZykpIHsKKyAgICAgICAgRU92ZXJmbG93IG92ZXJmbG93WCA9IGJvZHktPnJlbmRl
cmVyKCktPnN0eWxlKCktPm92ZXJmbG93WCgpOworICAgICAgICBFT3ZlcmZsb3cgb3ZlcmZsb3dZ
ID0gYm9keS0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+b3ZlcmZsb3dZKCk7CisgICAgICAgIGlmICgo
b3ZlcmZsb3dYID09IE9ISURERU4gJiYgZGVsdGEud2lkdGgoKSkgfHwgKG92ZXJmbG93WSA9PSBP
SElEREVOICYmIGRlbHRhLmhlaWdodCgpKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogSW50U2l6ZSBSZW5kZXJMYXllcjo6Y2xhbXBT
Y3JvbGxPZmZzZXQoY29uc3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KSBjb25zdAogewogICAgIFJl
bmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oCmluZGV4IDBiNjc0NTMzZTZkNTJkMjY1YmMwNWI5YTM3Y2EzNzIyYjM2ZjI4ZGYuLjE5
OWFmOTY5YjJiNWFlZDg2ZTE1YTNmMjg5YjY1NTI2OGI3MjY0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC0xMDM4LDYgKzEwMzgsOCBAQCBwcml2YXRlOgogCiAg
ICAgYm9vbCBvdmVyZmxvd0NvbnRyb2xzSW50ZXJzZWN0UmVjdChjb25zdCBJbnRSZWN0JiBsb2Nh
bFJlY3QpIGNvbnN0OwogCisgICAgYm9vbCBib2R5SGFzSGlkZGVuT3ZlcmZsb3dJblNjcm9sbERp
cmVjdGlvbihjb25zdCBJbnRTaXplJik7CisKIHByb3RlY3RlZDoKICAgICAvLyBUaGUgYml0Zmll
bGRzIGFyZSB1cCBoZXJlIHNvIHRoZXkgd2lsbCBmYWxsIGludG8gdGhlIHBhZGRpbmcgZnJvbSBT
Y3JvbGxhYmxlQXJlYSBvbiA2NC1iaXQuCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187592</attachid>
            <date>2013-02-11 08:54:27 -0800</date>
            <delta_ts>2013-02-11 15:54:55 -0800</delta_ts>
            <desc>WIP, not for review</desc>
            <filename>bug-109316-20130211115058.patch</filename>
            <type>text/plain</type>
            <size>3219</size>
            <attacher name="Terry Anderson">tdanderson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzUzM2M0MmViMmJkY2M5
NGJlZjAxZjY2ZWEwNWJmOTYxMzJkMjhkMS4uZmUxNWFjOGY1MGFjNWNlN2I4MTJiODI0YzUxZWEx
N2U0ZTEzZTc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAyLTExICBUZXJy
eSBBbmRlcnNvbiAgPHRkYW5kZXJzb25AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEEgcGFnZSBj
YW4gYmUgc2Nyb2xsZWQgd2l0aCB0b3VjaCB3aGVuIGl0cyBib2R5IGhhcyBzdHlsZSBvdmVyZmxv
dzpoaWRkZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwOTMxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxCeSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Ym9keUhhc0hpZGRlbk92ZXJmbG93SW5TY3JvbGxEaXJl
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmg6CisgICAgICAgIChSZW5kZXJMYXllcik6CisKIDIwMTMtMDItMTAgIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjEzMjQy
Mik6IFBhZ2UgY29udGVudCBhbmQgc2Nyb2xsYmFycyBhcmUgaW5jb3JyZWN0bHkgb2Zmc2V0IGFm
dGVyIHJlc3RvcmluZyBhIHBhZ2UgZnJvbSB0aGUgcGFnZSBjYWNoZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggZThkMDNlYTExZDE0MjcyNjBhNDIyNzEwM2Ri
MDdiMmM3Zjg1NmQwNy4uMzE0M2RlYzU2NGIzMDMzMmU4ZDdmZWVhNmE4MTZkOWZkOTRhZjRhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yMDI2LDcgKzIw
MjYsNyBAQCBib29sIFJlbmRlckxheWVyOjpzY3JvbGxCeShjb25zdCBJbnRTaXplJiBkZWx0YSwg
U2Nyb2xsT2Zmc2V0Q2xhbXBpbmcgY2xhbXAsIFNjcgogICAgICAgICAvLyBoYXZlIGFuIG92ZXJm
bG93IGNsaXAuIFdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBkb2N1bWVudCBub2RlIHRoYXQgY2Fu
IGJlIHNjcm9sbGVkLgogICAgICAgICBGcmFtZVZpZXcqIHZpZXcgPSByZW5kZXJlcigpLT52aWV3
KCktPmZyYW1lVmlldygpOwogICAgICAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbkJlZm9yZSA9
IHZpZXctPnNjcm9sbFBvc2l0aW9uKCk7Ci0gICAgICAgIGlmICh2aWV3LT5pc1Njcm9sbGFibGUo
KSkKKyAgICAgICAgaWYgKHZpZXctPmlzU2Nyb2xsYWJsZSgpICYmICFib2R5SGFzSGlkZGVuT3Zl
cmZsb3dJblNjcm9sbERpcmVjdGlvbihkZWx0YSkpCiAgICAgICAgICAgICB2aWV3LT5zY3JvbGxC
eShkZWx0YSk7CiAgICAgICAgIEludFBvaW50IHNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSB2aWV3LT5z
Y3JvbGxQb3NpdGlvbigpOwogICAgICAgICByZXR1cm4gc2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0g
c2Nyb2xsUG9zaXRpb25BZnRlcjsKQEAgLTIwMzgsNiArMjAzOCwyMCBAQCBib29sIFJlbmRlckxh
eWVyOjpzY3JvbGxCeShjb25zdCBJbnRTaXplJiBkZWx0YSwgU2Nyb2xsT2Zmc2V0Q2xhbXBpbmcg
Y2xhbXAsIFNjcgogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBSZW5kZXJMYXllcjo6Ym9k
eUhhc0hpZGRlbk92ZXJmbG93SW5TY3JvbGxEaXJlY3Rpb24oY29uc3QgSW50U2l6ZSYgZGVsdGEp
Cit7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gcmVuZGVyZXIoKS0+dmlldygpLT5mcmFtZVZp
ZXcoKS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICBOb2RlKiBib2R5ID0gZG9jdW1lbnQtPmJv
ZHkoKTsKKyAgICBpZiAoYm9keSAmJiBib2R5LT5yZW5kZXJlcigpICYmIGJvZHktPmhhc1RhZ05h
bWUoYm9keVRhZykpIHsKKyAgICAgICAgRU92ZXJmbG93IG92ZXJmbG93WCA9IGJvZHktPnJlbmRl
cmVyKCktPnN0eWxlKCktPm92ZXJmbG93WCgpOworICAgICAgICBFT3ZlcmZsb3cgb3ZlcmZsb3dZ
ID0gYm9keS0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+b3ZlcmZsb3dZKCk7CisgICAgICAgIGlmICgo
b3ZlcmZsb3dYID09IE9ISURERU4gJiYgZGVsdGEud2lkdGgoKSkgfHwgKG92ZXJmbG93WSA9PSBP
SElEREVOICYmIGRlbHRhLmhlaWdodCgpKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogSW50U2l6ZSBSZW5kZXJMYXllcjo6Y2xhbXBT
Y3JvbGxPZmZzZXQoY29uc3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KSBjb25zdAogewogICAgIFJl
bmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oCmluZGV4IDBiNjc0NTMzZTZkNTJkMjY1YmMwNWI5YTM3Y2EzNzIyYjM2ZjI4ZGYuLjE5
OWFmOTY5YjJiNWFlZDg2ZTE1YTNmMjg5YjY1NTI2OGI3MjY0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC0xMDM4LDYgKzEwMzgsOCBAQCBwcml2YXRlOgogCiAg
ICAgYm9vbCBvdmVyZmxvd0NvbnRyb2xzSW50ZXJzZWN0UmVjdChjb25zdCBJbnRSZWN0JiBsb2Nh
bFJlY3QpIGNvbnN0OwogCisgICAgYm9vbCBib2R5SGFzSGlkZGVuT3ZlcmZsb3dJblNjcm9sbERp
cmVjdGlvbihjb25zdCBJbnRTaXplJik7CisKIHByb3RlY3RlZDoKICAgICAvLyBUaGUgYml0Zmll
bGRzIGFyZSB1cCBoZXJlIHNvIHRoZXkgd2lsbCBmYWxsIGludG8gdGhlIHBhZGRpbmcgZnJvbSBT
Y3JvbGxhYmxlQXJlYSBvbiA2NC1iaXQuCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187704</attachid>
            <date>2013-02-11 15:54:58 -0800</date>
            <delta_ts>2013-02-12 14:03:04 -0800</delta_ts>
            <desc>WIP, not for review</desc>
            <filename>bug-109316-20130211185129.patch</filename>
            <type>text/plain</type>
            <size>3239</size>
            <attacher name="Terry Anderson">tdanderson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk0OTM2MGNlYzM4MTNm
OGNkNmVmYzI3Njg3Y2RmYWI0NzlhNzkyZC4uNzA3MWE4MTlhODVkZDFiOTZlNWU5Yjc2NGNiZTM1
N2Q0MjljMTRlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAyLTExICBUZXJy
eSBBbmRlcnNvbiAgPHRkYW5kZXJzb25AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEEgcGFnZSBj
YW4gYmUgc2Nyb2xsZWQgd2l0aCB0b3VjaCB3aGVuIGl0cyBib2R5IGhhcyBzdHlsZSBvdmVyZmxv
dzpoaWRkZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwOTMxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxCeSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6bW9kaWZ5RGVsdGFJZkJvZHlIYXNIaWRkZW5PdmVyZmxv
dyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aDoKKyAgICAgICAgKFJlbmRlckxheWVyKToKKwogMjAxMy0wMi0xMSAgQW5kcmV5IEtvc3lha292
ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRpbWVsaW5l
OiBpbnZhbGlkYXRlIGFuZCBmb3JjZSBsb2NhdGlvbnMgYXJlIHNhbWUgZm9yIExheW91dCByZWNv
cmRzIGNhdXNlZCBieSBzdHlsZSByZWNhbGN1bGFpdG9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAppbmRleCBlOGQwM2VhMTFkMTQyNzI2MGE0MjI3MTAzZGIwN2IyYzdm
ODU2ZDA3Li5kNWIwZTY5OTYxMGRhYzY1OGVhZWFkYmRlNWYwZDFjZjUwNWRlNDAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTIwMjYsOCArMjAyNiwxMCBA
QCBib29sIFJlbmRlckxheWVyOjpzY3JvbGxCeShjb25zdCBJbnRTaXplJiBkZWx0YSwgU2Nyb2xs
T2Zmc2V0Q2xhbXBpbmcgY2xhbXAsIFNjcgogICAgICAgICAvLyBoYXZlIGFuIG92ZXJmbG93IGNs
aXAuIFdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBkb2N1bWVudCBub2RlIHRoYXQgY2FuIGJlIHNj
cm9sbGVkLgogICAgICAgICBGcmFtZVZpZXcqIHZpZXcgPSByZW5kZXJlcigpLT52aWV3KCktPmZy
YW1lVmlldygpOwogICAgICAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbkJlZm9yZSA9IHZpZXct
PnNjcm9sbFBvc2l0aW9uKCk7CisgICAgICAgIEludFNpemUgbmV3RGVsdGEgPSBkZWx0YTsKKyAg
ICAgICAgbW9kaWZ5RGVsdGFJZkJvZHlIYXNIaWRkZW5PdmVyZmxvdyhuZXdEZWx0YSk7CiAgICAg
ICAgIGlmICh2aWV3LT5pc1Njcm9sbGFibGUoKSkKLSAgICAgICAgICAgIHZpZXctPnNjcm9sbEJ5
KGRlbHRhKTsKKyAgICAgICAgICAgIHZpZXctPnNjcm9sbEJ5KG5ld0RlbHRhKTsKICAgICAgICAg
SW50UG9pbnQgc2Nyb2xsUG9zaXRpb25BZnRlciA9IHZpZXctPnNjcm9sbFBvc2l0aW9uKCk7CiAg
ICAgICAgIHJldHVybiBzY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBzY3JvbGxQb3NpdGlvbkFmdGVy
OwogCkBAIC0yMDM4LDYgKzIwNDAsMjAgQEAgYm9vbCBSZW5kZXJMYXllcjo6c2Nyb2xsQnkoY29u
c3QgSW50U2l6ZSYgZGVsdGEsIFNjcm9sbE9mZnNldENsYW1waW5nIGNsYW1wLCBTY3IKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6Om1vZGlmeURlbHRhSWZCb2R5SGFz
SGlkZGVuT3ZlcmZsb3coSW50U2l6ZSYgbmV3RGVsdGEpCit7CisgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gcmVuZGVyZXIoKS0+dmlldygpLT5mcmFtZVZpZXcoKS0+ZnJhbWUoKS0+ZG9jdW1lbnQo
KTsKKyAgICBOb2RlKiBib2R5ID0gZG9jdW1lbnQtPmJvZHkoKTsKKyAgICBpZiAoYm9keSAmJiBi
b2R5LT5yZW5kZXJlcigpICYmIGJvZHktPmhhc1RhZ05hbWUoYm9keVRhZykpIHsKKyAgICAgICAg
RU92ZXJmbG93IG92ZXJmbG93WCA9IGJvZHktPnJlbmRlcmVyKCktPnN0eWxlKCktPm92ZXJmbG93
WCgpOworICAgICAgICBFT3ZlcmZsb3cgb3ZlcmZsb3dZID0gYm9keS0+cmVuZGVyZXIoKS0+c3R5
bGUoKS0+b3ZlcmZsb3dZKCk7CisgICAgICAgIGlmIChvdmVyZmxvd1ggPT0gT0hJRERFTikKKyAg
ICAgICAgICAgIG5ld0RlbHRhLnNldFdpZHRoKDApOworICAgICAgICBpZiAob3ZlcmZsb3dZID09
IE9ISURERU4pCisgICAgICAgICAgICBuZXdEZWx0YS5zZXRIZWlnaHQoMCk7IAorICAgIH0KK30K
KwogSW50U2l6ZSBSZW5kZXJMYXllcjo6Y2xhbXBTY3JvbGxPZmZzZXQoY29uc3QgSW50U2l6ZSYg
c2Nyb2xsT2Zmc2V0KSBjb25zdAogewogICAgIFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDBiNjc0NTMzZTZkNTJk
MjY1YmMwNWI5YTM3Y2EzNzIyYjM2ZjI4ZGYuLmNlZGJhZWZmNGU3NjM3NTY3YjIzNDNmNmVhYzI4
NjE2OTdkNzljODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC0x
MDM4LDYgKzEwMzgsOCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBvdmVyZmxvd0NvbnRyb2xzSW50
ZXJzZWN0UmVjdChjb25zdCBJbnRSZWN0JiBsb2NhbFJlY3QpIGNvbnN0OwogCisgICAgdm9pZCBt
b2RpZnlEZWx0YUlmQm9keUhhc0hpZGRlbk92ZXJmbG93KEludFNpemUmKTsKKwogcHJvdGVjdGVk
OgogICAgIC8vIFRoZSBiaXRmaWVsZHMgYXJlIHVwIGhlcmUgc28gdGhleSB3aWxsIGZhbGwgaW50
byB0aGUgcGFkZGluZyBmcm9tIFNjcm9sbGFibGVBcmVhIG9uIDY0LWJpdC4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>187897</attachid>
            <date>2013-02-12 10:52:03 -0800</date>
            <delta_ts>2013-02-12 10:52:03 -0800</delta_ts>
            <desc>Page to reproduce the bug. This scrolls with touch but does not scroll with mousewheels in chromium.</desc>
            <filename>non-scrollable-body-repro.html</filename>
            <type>text/html</type>
            <size>348</size>
            <attacher name="Terry Anderson">tdanderson</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHN0eWxlPgojdGFsbGRpdiB7CiAgd2lkdGg6
NTAwcHg7CiAgaGVpZ2h0OjUwMDBweDsKICBiYWNrZ3JvdW5kLWNvbG9yOnJlZDsKICBjb2xvcjp3
aGl0ZTsKfQoKI2ZpeGVkcG9zZGl2IHsKICBwb3NpdGlvbjpmaXhlZDsKICB0b3A6MDsKICBsZWZ0
OjA7CiAgYm90dG9tOjA7CiAgcmlnaHQ6MDsKfQo8L3N0eWxlPgo8L2hlYWQ+Cgo8Ym9keSBzdHls
ZT0ib3ZlcmZsb3cteTpoaWRkZW4iPgogIDxkaXYgaWQ9ImZpeGVkcG9zZGl2Ij48L2Rpdj4KICA8
ZGl2IGlkPSJ0YWxsZGl2Ij48cD5SZWFsbHkgdGFsbCBkaXYuPC9wPjwvZGl2Pgo8L2JvZHk+Cjwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187930</attachid>
            <date>2013-02-12 14:03:09 -0800</date>
            <delta_ts>2013-02-12 16:42:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109316-20130212165938.patch</filename>
            <type>text/plain</type>
            <size>31750</size>
            <attacher name="Terry Anderson">tdanderson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU0ZjdhZjNlYzA4NTEw
MjNkYjZmZjFjMjk3MzlhOGZkNWQ2ZDU0Yy4uNzJjZDE3NjkzZTljZTJhZTNmZmU4ZDZkNmVlMDRl
N2YyODYzNDNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAyLTEyICBUZXJy
eSBBbmRlcnNvbiAgPHRkYW5kZXJzb25AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEEgcGFnZSBj
YW4gYmUgc2Nyb2xsZWQgd2l0aCB0b3VjaCB3aGVuIGl0cyBib2R5IGhhcyBzdHlsZSBvdmVyZmxv
dy14OmhpZGRlbiBvciBvdmVyZmxvdy15OmhpZGRlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIGJvZHkgb2YgYSBwYWdlIGhhcyBzdHlsZSBv
dmVyZmxvdy14OmhpZGRlbiBvciBvdmVyZmxvdy15OmhpZGRlbiwgaXQgc2hvdWxkCisgICAgICAg
IG5vdCBiZSBhYmxlIHRvIGJlIHNjcm9sbGVkIGluIHRoYXQgZGlyZWN0aW9uLiBJZiB0aGUgfGRl
bHRhfCBjb3JyZXNwb25kaW5nIHRvCisgICAgICAgIHRoZSBzY3JvbGwgZXZlbnQgaGFzIG5vbi16
ZXJvIHggYW5kIHkgY29vcmRpbmF0ZXMsIHZlcnRpY2FsIHNjcm9sbGluZyB3aWxsCisgICAgICAg
IHN0aWxsIGJlIHBlcm1pdHRlZCBpZiBvbmx5IG92ZXJmbG93LXg6aGlkZGVuIGlzIHNldCAoYW5k
IHNpbWlsYXJseSBmb3IKKyAgICAgICAgaG9yaXpvbnRhbCBzY3JvbGxpbmcpLgorCisgICAgICAg
IFRlc3RzOiBmYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3RvdWNoLWdlc3R1cmUtbm9zY3JvbGwt
Ym9keS1wcm9wYWdhdGVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3RvdWNoL2dl
c3R1cmUvdG91Y2gtZ2VzdHVyZS1ub3Njcm9sbC1ib2R5LXhoaWRkZW4uaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS90b3VjaC1nZXN0dXJlLW5vc2Nyb2xsLWJv
ZHkteWhpZGRlbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJl
L3RvdWNoLWdlc3R1cmUtbm9zY3JvbGwtYm9keS5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbEJ5
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjptb2RpZnlEZWx0YUlmQm9keUhhc0hp
ZGRlbk92ZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXIpOgorCiAyMDEzLTAyLTEyICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBSZW1v
dmUgcmVtYWluaW5nIHRyYWNlcyBvZiBXZWIgSW50ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKaW5kZXggOWExZDMzYWE4YmE5MTQ1MGM3MzUzYmYyN2M4MjVhNmMy
Y2VjMDk3My4uNGM4MjgxNzEwM2RhZGUxNDQxZmZlZmViY2RkNWRjYzdjMWU3NzBmZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yMDI2LDggKzIwMjYsMTAg
QEAgYm9vbCBSZW5kZXJMYXllcjo6c2Nyb2xsQnkoY29uc3QgSW50U2l6ZSYgZGVsdGEsIFNjcm9s
bE9mZnNldENsYW1waW5nIGNsYW1wLCBTY3IKICAgICAgICAgLy8gaGF2ZSBhbiBvdmVyZmxvdyBj
bGlwLiBXaGljaCBtZWFucyB0aGF0IGl0IGlzIGEgZG9jdW1lbnQgbm9kZSB0aGF0IGNhbiBiZSBz
Y3JvbGxlZC4KICAgICAgICAgRnJhbWVWaWV3KiB2aWV3ID0gcmVuZGVyZXIoKS0+dmlldygpLT5m
cmFtZVZpZXcoKTsKICAgICAgICAgSW50UG9pbnQgc2Nyb2xsUG9zaXRpb25CZWZvcmUgPSB2aWV3
LT5zY3JvbGxQb3NpdGlvbigpOworICAgICAgICBJbnRTaXplIG5ld0RlbHRhID0gZGVsdGE7Cisg
ICAgICAgIG1vZGlmeURlbHRhSWZCb2R5SGFzSGlkZGVuT3ZlcmZsb3cobmV3RGVsdGEpOwogICAg
ICAgICBpZiAodmlldy0+aXNTY3JvbGxhYmxlKCkpCi0gICAgICAgICAgICB2aWV3LT5zY3JvbGxC
eShkZWx0YSk7CisgICAgICAgICAgICB2aWV3LT5zY3JvbGxCeShuZXdEZWx0YSk7CiAgICAgICAg
IEludFBvaW50IHNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSB2aWV3LT5zY3JvbGxQb3NpdGlvbigpOwog
ICAgICAgICByZXR1cm4gc2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gc2Nyb2xsUG9zaXRpb25BZnRl
cjsKIApAQCAtMjAzOCw2ICsyMDQwLDIwIEBAIGJvb2wgUmVuZGVyTGF5ZXI6OnNjcm9sbEJ5KGNv
bnN0IEludFNpemUmIGRlbHRhLCBTY3JvbGxPZmZzZXRDbGFtcGluZyBjbGFtcCwgU2NyCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCit2b2lkIFJlbmRlckxheWVyOjptb2RpZnlEZWx0YUlmQm9keUhh
c0hpZGRlbk92ZXJmbG93KEludFNpemUmIG5ld0RlbHRhKQoreworICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IHJlbmRlcmVyKCktPnZpZXcoKS0+ZnJhbWVWaWV3KCktPmZyYW1lKCktPmRvY3VtZW50
KCk7CisgICAgTm9kZSogYm9keSA9IGRvY3VtZW50LT5ib2R5KCk7CisgICAgaWYgKGJvZHkgJiYg
Ym9keS0+cmVuZGVyZXIoKSAmJiBib2R5LT5oYXNUYWdOYW1lKGJvZHlUYWcpKSB7CisgICAgICAg
IEVPdmVyZmxvdyBvdmVyZmxvd1ggPSBib2R5LT5yZW5kZXJlcigpLT5zdHlsZSgpLT5vdmVyZmxv
d1goKTsKKyAgICAgICAgRU92ZXJmbG93IG92ZXJmbG93WSA9IGJvZHktPnJlbmRlcmVyKCktPnN0
eWxlKCktPm92ZXJmbG93WSgpOworICAgICAgICBpZiAob3ZlcmZsb3dYID09IE9ISURERU4pCisg
ICAgICAgICAgICBuZXdEZWx0YS5zZXRXaWR0aCgwKTsKKyAgICAgICAgaWYgKG92ZXJmbG93WSA9
PSBPSElEREVOKQorICAgICAgICAgICAgbmV3RGVsdGEuc2V0SGVpZ2h0KDApOyAKKyAgICB9Cit9
CisKIEludFNpemUgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0KGNvbnN0IEludFNpemUm
IHNjcm9sbE9mZnNldCkgY29uc3QKIHsKICAgICBSZW5kZXJCb3gqIGJveCA9IHJlbmRlckJveCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAzZjYwMzVkNGFhOWY2
ZjhjZjc4ZWMyNDZiN2YwMmRhMmIwNTExMDliLi5hNWY2M2ZiNWFhZTlhNGU4Y2U2NWUzZjhhYTA4
ZDNiMzM4ODlkZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAt
MTAzOCw2ICsxMDM4LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgb3ZlcmZsb3dDb250cm9sc0lu
dGVyc2VjdFJlY3QoY29uc3QgSW50UmVjdCYgbG9jYWxSZWN0KSBjb25zdDsKIAorICAgIHZvaWQg
bW9kaWZ5RGVsdGFJZkJvZHlIYXNIaWRkZW5PdmVyZmxvdyhJbnRTaXplJik7CisKIHByb3RlY3Rl
ZDoKICAgICAvLyBUaGUgYml0ZmllbGRzIGFyZSB1cCBoZXJlIHNvIHRoZXkgd2lsbCBmYWxsIGlu
dG8gdGhlIHBhZGRpbmcgZnJvbSBTY3JvbGxhYmxlQXJlYSBvbiA2NC1iaXQuCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAz
NmJjNTcyZDMwZTkxOWM5YjcxOWM4NGFjMjlkYzRlZDEyNTQzYTE5Li40YzAwZmU1YzgzYTY2MGJi
ZjVlOGIwMWU2NDA4MWU3MjgyYzQyOTUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMDIt
MTIgIFRlcnJ5IEFuZGVyc29uICA8dGRhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
QSBwYWdlIGNhbiBiZSBzY3JvbGxlZCB3aXRoIHRvdWNoIHdoZW4gaXRzIGJvZHkgaGFzIHN0eWxl
IG92ZXJmbG93LXg6aGlkZGVuIG9yIG92ZXJmbG93LXk6aGlkZGVuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzMTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2dlc3R1
cmUvdG91Y2gtZ2VzdHVyZS1ub3Njcm9sbC1ib2R5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS90b3VjaC1nZXN0dXJlLW5vc2Nyb2xsLWJv
ZHktcHJvcGFnYXRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3RvdWNoL2dlc3R1cmUvdG91Y2gtZ2VzdHVyZS1ub3Njcm9sbC1ib2R5LXByb3BhZ2F0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS90b3VjaC1nZXN0
dXJlLW5vc2Nyb2xsLWJvZHkteGhpZGRlbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvdG91Y2gtZ2VzdHVyZS1ub3Njcm9sbC1ib2R5LXho
aWRkZW4uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS90
b3VjaC1nZXN0dXJlLW5vc2Nyb2xsLWJvZHkteWhpZGRlbi1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvdG91Y2gtZ2VzdHVyZS1ub3Njcm9s
bC1ib2R5LXloaWRkZW4uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gv
Z2VzdHVyZS90b3VjaC1nZXN0dXJlLW5vc2Nyb2xsLWJvZHkuaHRtbDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS90b3VjaC1nZXN0
dXJlLW5vc2Nyb2xsLWJvZHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3RvdWNoLWdlc3R1cmUtbm9zY3Jv
bGwtYm9keS1wcm9wYWdhdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS90b3VjaC1nZXN0dXJlLW5vc2Ny
b2xsLWJvZHkteGhpZGRlbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvdG91Y2gtZ2VzdHVyZS1ub3Njcm9s
bC1ib2R5LXloaWRkZW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMy0wMi0xMiAgUm9iZXJ0
IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTM2OTY3
KTogQ29tYmluYXRpb24gb2YgZmxvYXQgYW5kIGNsZWFyIHlpZWxkcyB0byBiYWQgbGF5b3V0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3RvdWNoLWdl
c3R1cmUtbm9zY3JvbGwtYm9keS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9nZXN0dXJlL3RvdWNoLWdlc3R1cmUtbm9zY3JvbGwtYm9keS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGZiZTNkMmNjMWQwODE4MDdmMmFlNzk1NGYxZTIwZTBmZjg5NDU0OQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvdG91
Y2gtZ2VzdHVyZS1ub3Njcm9sbC1ib2R5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitU
aGlzIHRlc3RzIHRoYXQgYSBwYWdlIGNhbm5vdCBiZSBzY3JvbGxlZCB3aXRoIHRvdWNoIGlmIGl0
cyBib2R5IGhhcyBzdHlsZSBvdmVyZmxvdzpoaWRkZW4uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitnZXN0dXJlIGV2ZW50cyBub3QgaW1wbGVtZW50ZWQgb24gdGhpcyBwbGF0Zm9y
bSBvciBnZXN0dXJlIGV2ZW50IHNjcm9sbGluZyBvZiBhIGRvY3VtZW50IGlzIGJyb2tlbgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvdG91Y2gtZ2VzdHVyZS1u
b3Njcm9sbC1ib2R5LXByb3BhZ2F0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvZ2VzdHVyZS90b3VjaC1nZXN0dXJlLW5vc2Nyb2xsLWJvZHktcHJvcGFnYXRl
ZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2U4N2U0ODY4NGEwNWM5MTAxYzkyZDJiNzgxYzFl
ODdiY2M3ZWU3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2dlc3R1cmUvdG91Y2gtZ2VzdHVyZS1ub3Njcm9sbC1ib2R5LXByb3BhZ2F0ZWQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdHMgdGhhdCBhIHBhZ2UgY2Fubm90IGJl
IHNjcm9sbGVkIHZlcnRpY2FsbHkgd2l0aCB0b3VjaCBpZiBpdHMgYm9keSBoYXMgc3R5bGUgb3Zl
cmZsb3cteTpoaWRkZW4gYW5kIHRoZSBzY3JvbGwgZXZlbnQgaXMgcHJvcG9nYXRlZCBmcm9tIGEg
c2Nyb2xsYWJsZSBjaGlsZCBkaXYuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitn
ZXN0dXJlIGV2ZW50cyBub3QgaW1wbGVtZW50ZWQgb24gdGhpcyBwbGF0Zm9ybSBvciBnZXN0dXJl
IGV2ZW50IHNjcm9sbGluZyBvZiBhIGRvY3VtZW50IGlzIGJyb2tlbgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvdG91Y2gtZ2VzdHVyZS1ub3Njcm9sbC1ib2R5
LXByb3BhZ2F0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUv
dG91Y2gtZ2VzdHVyZS1ub3Njcm9sbC1ib2R5LXByb3BhZ2F0ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
NWU4MTc2ZjZhMDIyMmMwNjYyNGJlZTE1M2YxYWUxMzA1NGE4YTk2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS90b3VjaC1nZXN0dXJlLW5v
c2Nyb2xsLWJvZHktcHJvcGFnYXRlZC5odG1sCkBAIC0wLDAgKzEsMTU3IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2dlc3R1cmUtaGVscGVycy5q
cyI+PC9zY3JpcHQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3RvdWNodGFyZ2V0IHsKKyAg
d2lkdGg6IDEwMHB4OworICBoZWlnaHQ6IDEwMHB4OworICBiYWNrZ3JvdW5kOiB3aGl0ZTsKKyAg
b3ZlcmZsb3c6c2Nyb2xsOworfQorCis6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKKyAgICB3aWR0aDog
MHB4OworICAgIGhlaWdodDogMHB4OworfQorCisjZ3JlZW5ib3ggeworICB3aWR0aDogMTAwcHg7
CisgIGhlaWdodDogMTAwcHg7CisgIGJhY2tncm91bmQ6IGdyZWVuOworICBwYWRkaW5nOiAwcHg7
CisgIG1hcmdpbjogMHB4OworfQorCisjcmVkYm94IHsKKyAgd2lkdGg6IDEwMHB4OworICBoZWln
aHQ6IDEwMHB4OworICBiYWNrZ3JvdW5kOiByZWQ7CisgIHBhZGRpbmc6IDBweDsKKyAgbWFyZ2lu
OiAwcHg7Cit9CisKK3RkIHsKKyAgcGFkZGluZzogMHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5IHN0eWxlPSJtYXJnaW46MDsgb3ZlcmZsb3cteTpoaWRkZW47IiBvbmxvYWQ9InJ1blRl
c3QoKTsiPgorCis8ZGl2IGlkPSJ0b3VjaHRhcmdldCI+CisgIDx0YWJsZSBib3JkZXI9IjAiIGNl
bGxzcGFjaW5nPSIwcHgiIGlkPSJ0YWJsZWZvbyI+CisgICAgPHRyPgorICAgICAgPHRkPjxkaXYg
aWQ9InJlZGJveCI+PC9kaXY+PC90ZD4KKyAgICAgIDx0ZD48ZGl2IGlkPSJncmVlbmJveCI+PC9k
aXY+PC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD48ZGl2IGlkPSJncmVlbmJv
eCI+PC9kaXY+PC90ZD4KKyAgICAgIDx0ZD48ZGl2IGlkPSJncmVlbmJveCI+PC9kaXY+PC90ZD4K
KyAgICA8L3RyPgorICA8L3RhYmxlPgorPC9kaXY+CisKKzx0YWJsZSBpZD0idGFibGVfdG9fZmls
bCI+CisgICAgPHRyPjx0ZD48ZGl2IGlkPSJncmVlbmJveCI+PC9kaXY+PC90ZD48L3RyPgorICAg
IDx0cj48dGQ+PGRpdiBpZD0icmVkYm94Ij48L2Rpdj48L3RkPjwvdHI+Cis8L3RhYmxlPgorCis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit2YXIgZXhwZWN0ZWRHZXN0dXJlc1RvdGFsID0g
MjsKK3ZhciBnZXN0dXJlc09jY3VycmVkID0gMDsKK3ZhciBzY3JvbGxBbW91bnRYID0gWycwJywg
JzAnXTsKK3ZhciBzY3JvbGxBbW91bnRZID0gWycwJywgJzAnXTsKK3ZhciB3aGVlbEV2ZW50c09j
Y3VycmVkID0gMDsKK3ZhciBleHBlY3RlZFdoZWVsRXZlbnRzT2NjdXJyZWQgPSBbJzAnLCAnMCdd
OwordmFyIHNjcm9sbEV2ZW50c09jY3VycmVkID0gMDsKK3ZhciBleHBlY3RlZFNjcm9sbEV2ZW50
c09jY3VycmVkID0gJzAnOwordmFyIHNjcm9sbGVkRWxlbWVudCA9ICdkb2N1bWVudC5ib2R5Jwor
CisvLyBBbHdheXMgY29uc3RydWN0IGEgcGFnZSBsYXJnZXIgdGhhbiB0aGUgdmVydGljYWwgaGVp
Z2h0IG9mIHRoZSB3aW5kb3cuCitmdW5jdGlvbiBidWlsZFBhZ2UoKQoreworICAgIHZhciB0YWJs
ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YWJsZV90b19maWxsJyk7CisgICAgdmFyIHRh
cmdldEhlaWdodCA9IGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0OworICAgIHZhciBjZWxsUGFp
ckhlaWdodCA9IHRhYmxlLm9mZnNldEhlaWdodDsKKyAgICB2YXIgbnVtYmVyT2ZSZXBzID0gdGFy
Z2V0SGVpZ2h0IC8gY2VsbFBhaXJIZWlnaHQgKiAyOworICAgIHZhciBpOworICAgIGZvciAoaSA9
IDA7IGkgPCBudW1iZXJPZlJlcHM7IGkrKykgeworICAgICAgICB2YXIgcCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3RyJyk7CisgICAgICAgIHAuaW5uZXJIVE1MID0gJzx0ZD48ZGl2IGlkPSJn
cmVlbmJveCI+PC9kaXY+PC90ZD4nOworICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChwKTsKKyAg
ICAgICAgdmFyIHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOworICAgICAgICBwLmlu
bmVySFRNTCA9ICc8dGQ+PGRpdiBpZD0icmVkYm94Ij48L2Rpdj48L3RkPic7CisgICAgICAgIHRh
YmxlLmFwcGVuZENoaWxkKHApOworICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCJzY3JvbGwiLCByZWNvcmRTY3JvbGwpOworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJt
b3VzZXdoZWVsIiwgcmVjb3JkV2hlZWwpOworfQorCitmdW5jdGlvbiBmaXJzdEdlc3R1cmVTY3Jv
bGwoKQoreworICAgIGRlYnVnKCJmaXJzdCBnZXN0dXJlIik7CisgICAgZXZlbnRTZW5kZXIuZ2Vz
dHVyZVNjcm9sbEJlZ2luKDk1LCAxMik7CisgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVNjcm9sbFVw
ZGF0ZSgwLCAtMTEwKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlU2Nyb2xsRW5kKDAsIDApOwor
CisgICAgLy8gV2FpdCBmb3IgbGF5b3V0LgorICAgIGNoZWNrU2Nyb2xsT2Zmc2V0KCk7Cit9CisK
K2Z1bmN0aW9uIHNlY29uZEdlc3R1cmVTY3JvbGwoKQoreworICAgIGRlYnVnKCJzZWNvbmQgZ2Vz
dHVyZSIpOworICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVTY3JvbGxCZWdpbigxMiwgOTcpOworICAg
IGV2ZW50U2VuZGVyLmdlc3R1cmVTY3JvbGxVcGRhdGUoMCwgLTk1KTsKKyAgICBldmVudFNlbmRl
ci5nZXN0dXJlU2Nyb2xsRW5kKDAsIDApOworCisgICAgLy8gV2FpdCBmb3IgbGF5b3V0LgorICAg
IGNoZWNrU2Nyb2xsT2Zmc2V0KCk7CisKKyAgICAvLyBJbiB0aGlzIHRlc3Qgd2UgZG8gbm90IGV4
cGVjdCBhbnkgc2Nyb2xsIGV2ZW50cyB0bworICAgIC8vIGJlIHJlY2VpdmVkIGJ5IHRoZSBldmVu
dCBsaXN0ZW5lciwgc28gd2Ugc2lnbmFsCisgICAgLy8gdGhlIGVuZCBvZiB0aGUgdGVzdCBieSBj
YWxsaW5nIHRoaXMgZnVuY3Rpb24gaW5zdGVhZAorICAgIC8vIG9mIHJlbHlpbmcgb24gcmVjb3Jk
U2Nyb2xsKCkgdG8gZG8gaXQuCisgICAgZmluaXNoVGVzdCgpOworfQorCitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2Z1bmN0aW9uIHJ1
blRlc3QoKQoreworICAgIGJ1aWxkUGFnZSgpOworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIp
IHsKKyAgICAgICAgZGVzY3JpcHRpb24oJ1RoaXMgdGVzdHMgdGhhdCBhIHBhZ2UgY2Fubm90IGJl
IHNjcm9sbGVkIHZlcnRpY2FsbHkgd2l0aCB0b3VjaCBpZiBpdHMgYm9keSBoYXMgc3R5bGUgb3Zl
cmZsb3cteTpoaWRkZW4gJyArCisgICAgICAgICAgICAgICAgICAgICdhbmQgdGhlIHNjcm9sbCBl
dmVudCBpcyBwcm9wb2dhdGVkIGZyb20gYSBzY3JvbGxhYmxlIGNoaWxkIGRpdi4nKTsKKworICAg
ICAgICBpZiAoY2hlY2tUZXN0RGVwZW5kZW5jaWVzKCkpCisgICAgICAgICAgICBmaXJzdEdlc3R1
cmVTY3JvbGwoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXhpdElmTmVjZXNzYXJ5KCk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGVidWcoIlRoaXMgdGVzdCByZXF1aXJlcyBEdW1wUmVu
ZGVyVHJlZS4gIFRvdWNoIHNjcm9sbCB0aGUgcmVkIHJlY3QgdG8gbG9nLiIpOworICAgIH0KK30K
KworZnVuY3Rpb24gZmluaXNoVGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikg
eworICAgICAgICBpZiAoZ2VzdHVyZXNPY2N1cnJlZCA9PSBleHBlY3RlZEdlc3R1cmVzVG90YWwp
IHsKKyAgICAgICAgICAgIHNob3VsZEJlKCdzY3JvbGxFdmVudHNPY2N1cnJlZCcsIGV4cGVjdGVk
U2Nyb2xsRXZlbnRzT2NjdXJyZWQpOworICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKyAgICAgICAgICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CisgICAgICAgIH0KKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvdG91Y2gt
Z2VzdHVyZS1ub3Njcm9sbC1ib2R5LXhoaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS90b3VjaC1nZXN0dXJlLW5vc2Nyb2xsLWJvZHkteGhp
ZGRlbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWM5YWEzYmE5MGI4YjU1NzJhYjBhYWM2YTRi
MTRmYzUzYTk3MzYzNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2dlc3R1cmUvdG91Y2gtZ2VzdHVyZS1ub3Njcm9sbC1ib2R5LXhoaWRkZW4tZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdHMgdGhhdCBhIHBhZ2UgY2Fubm90IGJl
IHNjcm9sbGVkIGhvcml6b250YWxseSB3aXRoIHRvdWNoIChidXQgY2FuIHN0aWxsIGJlIHNjcm9s
bGVkIHZlcnRpY2FsbHkpIGlmIGl0cyBib2R5IGhhcyBzdHlsZSBvdmVyZmxvdy14OmhpZGRlbi4g
VGhlIHNjcm9sbCBldmVudHMgaW4gdGhpcyB0ZXN0IGhhdmUgYm90aCBhbiB4IGFuZCB5IGNvbXBv
bmVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2dlc3R1cmUgZXZlbnRzIG5v
dCBpbXBsZW1lbnRlZCBvbiB0aGlzIHBsYXRmb3JtIG9yIGdlc3R1cmUgZXZlbnQgc2Nyb2xsaW5n
IG9mIGEgZG9jdW1lbnQgaXMgYnJva2VuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvZ2VzdHVyZS90b3VjaC1nZXN0dXJlLW5vc2Nyb2xsLWJvZHkteGhpZGRlbi5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS90b3VjaC1nZXN0dXJlLW5vc2Ny
b2xsLWJvZHkteGhpZGRlbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3YzdhYjRkYmE3ZGM2ZjkxZDNjMzY1
NWY4ZTk2ZjU5ZjdhYWRlNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9nZXN0dXJlL3RvdWNoLWdlc3R1cmUtbm9zY3JvbGwtYm9keS14aGlkZGVuLmh0
bWwKQEAgLTAsMCArMSwxNDkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvZ2VzdHVyZS1oZWxwZXJzLmpzIj48L3NjcmlwdD4KKzxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyI+CisjdG91Y2h0YXJnZXQgeworICB3aWR0aDogMTAwcHg7CisgIGhlaWdodDog
MTAwcHg7CisgIGJhY2tncm91bmQ6IHdoaXRlOworICBvdmVyZmxvdzpoaWRkZW47Cit9CisKKzo6
LXdlYmtpdC1zY3JvbGxiYXIgeworICAgIHdpZHRoOiAwcHg7CisgICAgaGVpZ2h0OiAwcHg7Cit9
CisKKyNncmVlbmJveCB7CisgIHdpZHRoOiAxMDBweDsKKyAgaGVpZ2h0OiAxMDBweDsKKyAgYmFj
a2dyb3VuZDogZ3JlZW47CisgIHBhZGRpbmc6IDBweDsKKyAgbWFyZ2luOiAwcHg7Cit9CisKKyNy
ZWRib3ggeworICB3aWR0aDogMTAwcHg7CisgIGhlaWdodDogMTAwcHg7CisgIGJhY2tncm91bmQ6
IHJlZDsKKyAgcGFkZGluZzogMHB4OworICBtYXJnaW46IDBweDsKK30KKwordGQgeworICBwYWRk
aW5nOiAwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgc3R5bGU9Im1hcmdpbjowOyBv
dmVyZmxvdy14OmhpZGRlbjsiIG9ubG9hZD0icnVuVGVzdCgpOyI+CisKKzx0YWJsZSBpZD0iaG9y
aXpvbnRhbF90YWJsZV90b19maWxsIj4KKyAgPHRyIGlkPSJmaXJzdHJvdyI+CisgICAgPHRkPjxk
aXYgaWQ9InJlZGJveCI+PC9kaXY+PC90ZD4KKyAgICA8dGQ+PGRpdiBpZD0iZ3JlZW5ib3giPjwv
ZGl2PjwvdGQ+CisgIDwvdHI+Cis8L3RhYmxlPgorCis8dGFibGUgaWQ9InZlcnRpY2FsX3RhYmxl
X3RvX2ZpbGwiPgorICAgIDx0cj48dGQ+PGRpdiBpZD0iZ3JlZW5ib3giPjwvZGl2PjwvdGQ+PC90
cj4KKyAgICA8dHI+PHRkPjxkaXYgaWQ9InJlZGJveCI+PC9kaXY+PC90ZD48L3RyPgorPC90YWJs
ZT4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKwordmFyIGV4cGVjdGVkR2VzdHVyZXNU
b3RhbCA9IDI7Cit2YXIgZ2VzdHVyZXNPY2N1cnJlZCA9IDA7Cit2YXIgc2Nyb2xsQW1vdW50WCA9
IFsnMCcsICcwJ107Cit2YXIgc2Nyb2xsQW1vdW50WSA9IFsnMTEwJywgJzIwNSddOwordmFyIHdo
ZWVsRXZlbnRzT2NjdXJyZWQgPSAwOwordmFyIGV4cGVjdGVkV2hlZWxFdmVudHNPY2N1cnJlZCA9
IFsnMCcsICcwJ107Cit2YXIgc2Nyb2xsRXZlbnRzT2NjdXJyZWQgPSAwOwordmFyIGV4cGVjdGVk
U2Nyb2xsRXZlbnRzT2NjdXJyZWQgPSAnMSc7Cit2YXIgc2Nyb2xsZWRFbGVtZW50ID0gJ2RvY3Vt
ZW50LmJvZHknCisKKy8vIEFsd2F5cyBjb25zdHJ1Y3QgYSBwYWdlIGxhcmdlciB0aGFuIHRoZSB2
ZXJ0aWNhbCBoZWlnaHQgb2YgdGhlIHdpbmRvdy4KK2Z1bmN0aW9uIGJ1aWxkUGFnZSgpCit7Cisg
ICAgLy8gYnVpbGQgdmVydGljYWwgdGFibGUKKyAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndmVydGljYWxfdGFibGVfdG9fZmlsbCcpOworICAgIHZhciB0YXJnZXRIZWln
aHQgPSBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKKyAgICB2YXIgY2VsbFBhaXJIZWlnaHQg
PSB0YWJsZS5vZmZzZXRIZWlnaHQ7CisgICAgdmFyIG51bWJlck9mUmVwcyA9IHRhcmdldEhlaWdo
dCAvIGNlbGxQYWlySGVpZ2h0ICogMjsKKyAgICB2YXIgaTsKKyAgICBmb3IgKGkgPSAwOyBpIDwg
bnVtYmVyT2ZSZXBzOyBpKyspIHsKKyAgICAgICAgdmFyIHAgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCd0cicpOworICAgICAgICBwLmlubmVySFRNTCA9ICc8dGQ+PGRpdiBpZD0iZ3JlZW5ib3gi
PjwvZGl2PjwvdGQ+JzsKKyAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQocCk7CisgICAgICAgIHZh
ciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKKyAgICAgICAgcC5pbm5lckhUTUwg
PSAnPHRkPjxkaXYgaWQ9InJlZGJveCI+PC9kaXY+PC90ZD4nOworICAgICAgICB0YWJsZS5hcHBl
bmRDaGlsZChwKTsKKyAgICB9CisKKyAgICAvLyBidWlsZCBob3Jpem9udGFsIHRhYmxlCisgICAg
dmFyIGhvcml6b250YWxUYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3Jpem9udGFs
X3RhYmxlX3RvX2ZpbGwnKTsKKyAgICB2YXIgdGFibGVSb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZmlyc3Ryb3cnKTsKKyAgICB2YXIgdGFyZ2V0V2lkdGggPSBkb2N1bWVudC5ib2R5Lm9m
ZnNldFdpZHRoOworICAgIHZhciBjZWxsUGFpcldpZHRoID0gaG9yaXpvbnRhbFRhYmxlLm9mZnNl
dFdpZHRoOworICAgIG51bWJlck9mUmVwcyA9IHRhcmdldFdpZHRoIC8gY2VsbFBhaXJXaWR0aCAq
IDI7CisgICAgZm9yIChpID0gMDsgaSA8IG51bWJlck9mUmVwczsgaSsrKSB7CisgICAgICAgIHZh
ciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKKyAgICAgICAgcC5pbm5lckhUTUwg
PSAnPGRpdiBpZD0icmVkYm94Ij48L2Rpdj4nOworICAgICAgICB0YWJsZVJvdy5hcHBlbmRDaGls
ZChwKTsKKyAgICAgICAgdmFyIHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOworICAg
ICAgICBwLmlubmVySFRNTCA9ICc8ZGl2IGlkPSJncmVlbmJveCI+PC9kaXY+JzsKKyAgICAgICAg
dGFibGVSb3cuYXBwZW5kQ2hpbGQocCk7CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoInNjcm9sbCIsIHJlY29yZFNjcm9sbCk7CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoIm1vdXNld2hlZWwiLCByZWNvcmRXaGVlbCk7Cit9CisKK2Z1bmN0aW9uIGZpcnN0R2VzdHVy
ZVNjcm9sbCgpCit7CisgICAgZGVidWcoImZpcnN0IGdlc3R1cmUiKTsKKyAgICBldmVudFNlbmRl
ci5nZXN0dXJlU2Nyb2xsQmVnaW4oOTUsIDEyKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlU2Ny
b2xsVXBkYXRlKC01NSwgLTExMCk7CisgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVNjcm9sbEVuZCgw
LCAwKTsKKworICAgIC8vIFdhaXQgZm9yIGxheW91dC4KKyAgICBjaGVja1Njcm9sbE9mZnNldCgp
OworfQorCitmdW5jdGlvbiBzZWNvbmRHZXN0dXJlU2Nyb2xsKCkKK3sKKyAgICBkZWJ1Zygic2Vj
b25kIGdlc3R1cmUiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlU2Nyb2xsQmVnaW4oMTIsIDk3
KTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlU2Nyb2xsVXBkYXRlKC00MiwgLTk1KTsKKyAgICBl
dmVudFNlbmRlci5nZXN0dXJlU2Nyb2xsRW5kKDAsIDApOworCisgICAgLy8gV2FpdCBmb3IgbGF5
b3V0LgorICAgIGNoZWNrU2Nyb2xsT2Zmc2V0KCk7Cit9CisKK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24gcnVuVGVzdCgp
Cit7CisgICAgYnVpbGRQYWdlKCk7CisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAg
ICAgICBkZXNjcmlwdGlvbignVGhpcyB0ZXN0cyB0aGF0IGEgcGFnZSBjYW5ub3QgYmUgc2Nyb2xs
ZWQgaG9yaXpvbnRhbGx5IHdpdGggdG91Y2ggJyArCisgICAgICAgICAgICAgICAgICAgICcoYnV0
IGNhbiBzdGlsbCBiZSBzY3JvbGxlZCB2ZXJ0aWNhbGx5KSBpZiBpdHMgYm9keSBoYXMgc3R5bGUg
b3ZlcmZsb3cteDpoaWRkZW4uICcgKworICAgICAgICAgICAgICAgICAgICAnVGhlIHNjcm9sbCBl
dmVudHMgaW4gdGhpcyB0ZXN0IGhhdmUgYm90aCBhbiB4IGFuZCB5IGNvbXBvbmVudC4nKTsKKwor
ICAgICAgICBpZiAoY2hlY2tUZXN0RGVwZW5kZW5jaWVzKCkpCisgICAgICAgICAgICBmaXJzdEdl
c3R1cmVTY3JvbGwoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXhpdElmTmVjZXNzYXJ5
KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGVidWcoIlRoaXMgdGVzdCByZXF1aXJlcyBEdW1w
UmVuZGVyVHJlZS4gIFRvdWNoIHNjcm9sbCB0aGUgcmVkIHJlY3QgdG8gbG9nLiIpOworICAgIH0K
K30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS90b3VjaC1nZXN0dXJlLW5vc2Nyb2xsLWJvZHkteWhp
ZGRlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJl
L3RvdWNoLWdlc3R1cmUtbm9zY3JvbGwtYm9keS15aGlkZGVuLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43OTg5MmJhMjhmYjQ2YjJmMDE3YmRhZGU4Yzk4Njc3ZmI3NTNlMTdkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS90b3VjaC1nZXN0
dXJlLW5vc2Nyb2xsLWJvZHkteWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
VGhpcyB0ZXN0cyB0aGF0IGEgcGFnZSBjYW5ub3QgYmUgc2Nyb2xsZWQgdmVydGljYWxseSB3aXRo
IHRvdWNoIChidXQgY2FuIHN0aWxsIGJlIHNjcm9sbGVkIGhvcml6b250YWxseSkgaWYgaXRzIGJv
ZHkgaGFzIHN0eWxlIG92ZXJmbG93LXk6aGlkZGVuLiBUaGUgc2Nyb2xsIGV2ZW50cyBpbiB0aGlz
IHRlc3QgaGF2ZSBib3RoIGFuIHggYW5kIHkgY29tcG9uZW50LgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworZ2VzdHVyZSBldmVudHMgbm90IGltcGxlbWVudGVkIG9uIHRoaXMgcGxh
dGZvcm0gb3IgZ2VzdHVyZSBldmVudCBzY3JvbGxpbmcgb2YgYSBkb2N1bWVudCBpcyBicm9rZW4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3RvdWNoLWdlc3R1
cmUtbm9zY3JvbGwtYm9keS15aGlkZGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9nZXN0dXJlL3RvdWNoLWdlc3R1cmUtbm9zY3JvbGwtYm9keS15aGlkZGVuLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzE2ZTg4NzAwYTZkODNlNDM4OTFjYzA0MzE3NDAxNDgzOGE1NGU0NwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvdG91Y2gt
Z2VzdHVyZS1ub3Njcm9sbC1ib2R5LXloaWRkZW4uaHRtbApAQCAtMCwwICsxLDE0OSBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9nZXN0dXJlLWhl
bHBlcnMuanMiPjwvc2NyaXB0PgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0b3VjaHRhcmdl
dCB7CisgIHdpZHRoOiAxMDBweDsKKyAgaGVpZ2h0OiAxMDBweDsKKyAgYmFja2dyb3VuZDogd2hp
dGU7CisgIG92ZXJmbG93OmhpZGRlbjsKK30KKworOjotd2Via2l0LXNjcm9sbGJhciB7CisgICAg
d2lkdGg6IDBweDsKKyAgICBoZWlnaHQ6IDBweDsKK30KKworI2dyZWVuYm94IHsKKyAgd2lkdGg6
IDEwMHB4OworICBoZWlnaHQ6IDEwMHB4OworICBiYWNrZ3JvdW5kOiBncmVlbjsKKyAgcGFkZGlu
ZzogMHB4OworICBtYXJnaW46IDBweDsKK30KKworI3JlZGJveCB7CisgIHdpZHRoOiAxMDBweDsK
KyAgaGVpZ2h0OiAxMDBweDsKKyAgYmFja2dyb3VuZDogcmVkOworICBwYWRkaW5nOiAwcHg7Cisg
IG1hcmdpbjogMHB4OworfQorCit0ZCB7CisgIHBhZGRpbmc6IDBweDsKK30KKzwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keSBzdHlsZT0ibWFyZ2luOjA7IG92ZXJmbG93LXk6aGlkZGVuOyIgb25sb2Fk
PSJydW5UZXN0KCk7Ij4KKworPHRhYmxlIGlkPSJob3Jpem9udGFsX3RhYmxlX3RvX2ZpbGwiPgor
ICA8dHIgaWQ9ImZpcnN0cm93Ij4KKyAgICA8dGQ+PGRpdiBpZD0icmVkYm94Ij48L2Rpdj48L3Rk
PgorICAgIDx0ZD48ZGl2IGlkPSJncmVlbmJveCI+PC9kaXY+PC90ZD4KKyAgPC90cj4KKzwvdGFi
bGU+CisKKzx0YWJsZSBpZD0idmVydGljYWxfdGFibGVfdG9fZmlsbCI+CisgICAgPHRyPjx0ZD48
ZGl2IGlkPSJncmVlbmJveCI+PC9kaXY+PC90ZD48L3RyPgorICAgIDx0cj48dGQ+PGRpdiBpZD0i
cmVkYm94Ij48L2Rpdj48L3RkPjwvdHI+Cis8L3RhYmxlPgorCis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgorCit2YXIgZXhwZWN0ZWRHZXN0dXJlc1RvdGFsID0gMjsKK3ZhciBnZXN0dXJlc09j
Y3VycmVkID0gMDsKK3ZhciBzY3JvbGxBbW91bnRYID0gWyc1NScsICc5NyddOwordmFyIHNjcm9s
bEFtb3VudFkgPSBbJzAnLCAnMCddOwordmFyIHdoZWVsRXZlbnRzT2NjdXJyZWQgPSAwOwordmFy
IGV4cGVjdGVkV2hlZWxFdmVudHNPY2N1cnJlZCA9IFsnMCcsICcwJ107Cit2YXIgc2Nyb2xsRXZl
bnRzT2NjdXJyZWQgPSAwOwordmFyIGV4cGVjdGVkU2Nyb2xsRXZlbnRzT2NjdXJyZWQgPSAnMSc7
Cit2YXIgc2Nyb2xsZWRFbGVtZW50ID0gJ2RvY3VtZW50LmJvZHknCisKKy8vIEFsd2F5cyBjb25z
dHJ1Y3QgYSBwYWdlIGxhcmdlciB0aGFuIHRoZSB2ZXJ0aWNhbCBoZWlnaHQgb2YgdGhlIHdpbmRv
dy4KK2Z1bmN0aW9uIGJ1aWxkUGFnZSgpCit7CisgICAgLy8gYnVpbGQgdmVydGljYWwgdGFibGUK
KyAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndmVydGljYWxfdGFibGVf
dG9fZmlsbCcpOworICAgIHZhciB0YXJnZXRIZWlnaHQgPSBkb2N1bWVudC5ib2R5Lm9mZnNldEhl
aWdodDsKKyAgICB2YXIgY2VsbFBhaXJIZWlnaHQgPSB0YWJsZS5vZmZzZXRIZWlnaHQ7CisgICAg
dmFyIG51bWJlck9mUmVwcyA9IHRhcmdldEhlaWdodCAvIGNlbGxQYWlySGVpZ2h0ICogMjsKKyAg
ICB2YXIgaTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbnVtYmVyT2ZSZXBzOyBpKyspIHsKKyAgICAg
ICAgdmFyIHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOworICAgICAgICBwLmlubmVy
SFRNTCA9ICc8dGQ+PGRpdiBpZD0iZ3JlZW5ib3giPjwvZGl2PjwvdGQ+JzsKKyAgICAgICAgdGFi
bGUuYXBwZW5kQ2hpbGQocCk7CisgICAgICAgIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgndHInKTsKKyAgICAgICAgcC5pbm5lckhUTUwgPSAnPHRkPjxkaXYgaWQ9InJlZGJveCI+PC9k
aXY+PC90ZD4nOworICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChwKTsKKyAgICB9CisKKyAgICAv
LyBidWlsZCBob3Jpem9udGFsIHRhYmxlCisgICAgdmFyIGhvcml6b250YWxUYWJsZSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdob3Jpem9udGFsX3RhYmxlX3RvX2ZpbGwnKTsKKyAgICB2YXIg
dGFibGVSb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlyc3Ryb3cnKTsKKyAgICB2YXIg
dGFyZ2V0V2lkdGggPSBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOworICAgIHZhciBjZWxsUGFp
cldpZHRoID0gaG9yaXpvbnRhbFRhYmxlLm9mZnNldFdpZHRoOworICAgIG51bWJlck9mUmVwcyA9
IHRhcmdldFdpZHRoIC8gY2VsbFBhaXJXaWR0aCAqIDI7CisgICAgZm9yIChpID0gMDsgaSA8IG51
bWJlck9mUmVwczsgaSsrKSB7CisgICAgICAgIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgndGQnKTsKKyAgICAgICAgcC5pbm5lckhUTUwgPSAnPGRpdiBpZD0icmVkYm94Ij48L2Rpdj4n
OworICAgICAgICB0YWJsZVJvdy5hcHBlbmRDaGlsZChwKTsKKyAgICAgICAgdmFyIHAgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOworICAgICAgICBwLmlubmVySFRNTCA9ICc8ZGl2IGlk
PSJncmVlbmJveCI+PC9kaXY+JzsKKyAgICAgICAgdGFibGVSb3cuYXBwZW5kQ2hpbGQocCk7Cisg
ICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHJlY29yZFNjcm9s
bCk7CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwiLCByZWNvcmRXaGVl
bCk7Cit9CisKK2Z1bmN0aW9uIGZpcnN0R2VzdHVyZVNjcm9sbCgpCit7CisgICAgZGVidWcoImZp
cnN0IGdlc3R1cmUiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlU2Nyb2xsQmVnaW4oMTk1LCAx
Mik7CisgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVNjcm9sbFVwZGF0ZSgtNTUsIC0xMTApOworICAg
IGV2ZW50U2VuZGVyLmdlc3R1cmVTY3JvbGxFbmQoMCwgMCk7CisKKyAgICAvLyBXYWl0IGZvciBs
YXlvdXQuCisgICAgY2hlY2tTY3JvbGxPZmZzZXQoKTsKK30KKworZnVuY3Rpb24gc2Vjb25kR2Vz
dHVyZVNjcm9sbCgpCit7CisgICAgZGVidWcoInNlY29uZCBnZXN0dXJlIik7CisgICAgZXZlbnRT
ZW5kZXIuZ2VzdHVyZVNjcm9sbEJlZ2luKDEyMCwgMjU1KTsKKyAgICBldmVudFNlbmRlci5nZXN0
dXJlU2Nyb2xsVXBkYXRlKC00MiwgLTk1KTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlU2Nyb2xs
RW5kKDAsIDApOworCisgICAgLy8gV2FpdCBmb3IgbGF5b3V0LgorICAgIGNoZWNrU2Nyb2xsT2Zm
c2V0KCk7Cit9CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgYnVpbGRQYWdlKCk7Cisg
ICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICBkZXNjcmlwdGlvbignVGhpcyB0
ZXN0cyB0aGF0IGEgcGFnZSBjYW5ub3QgYmUgc2Nyb2xsZWQgdmVydGljYWxseSB3aXRoIHRvdWNo
ICcgKworICAgICAgICAgICAgICAgICAgICAnKGJ1dCBjYW4gc3RpbGwgYmUgc2Nyb2xsZWQgaG9y
aXpvbnRhbGx5KSBpZiBpdHMgYm9keSBoYXMgc3R5bGUgb3ZlcmZsb3cteTpoaWRkZW4uICcgKwor
ICAgICAgICAgICAgICAgICAgICAnVGhlIHNjcm9sbCBldmVudHMgaW4gdGhpcyB0ZXN0IGhhdmUg
Ym90aCBhbiB4IGFuZCB5IGNvbXBvbmVudC4nKTsKKworICAgICAgICBpZiAoY2hlY2tUZXN0RGVw
ZW5kZW5jaWVzKCkpCisgICAgICAgICAgICBmaXJzdEdlc3R1cmVTY3JvbGwoKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgZXhpdElmTmVjZXNzYXJ5KCk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgZGVidWcoIlRoaXMgdGVzdCByZXF1aXJlcyBEdW1wUmVuZGVyVHJlZS4gIFRvdWNoIHNjcm9s
bCB0aGUgcmVkIHJlY3QgdG8gbG9nLiIpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVy
ZS90b3VjaC1nZXN0dXJlLW5vc2Nyb2xsLWJvZHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL2dlc3R1cmUvdG91Y2gtZ2VzdHVyZS1ub3Njcm9sbC1ib2R5Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYWEzNjliOTBlZmEwMDZiZGJmN2ExN2U5MjgyODUzODc0NzJmZDNhYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvdG91Y2gtZ2Vz
dHVyZS1ub3Njcm9sbC1ib2R5Lmh0bWwKQEAgLTAsMCArMSwxNjYgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZ2VzdHVyZS1oZWxwZXJzLmpzIj48
L3NjcmlwdD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdG91Y2h0YXJnZXQgeworICB3aWR0
aDogMTAwcHg7CisgIGhlaWdodDogMTAwcHg7CisgIGJhY2tncm91bmQ6IHdoaXRlOworICBvdmVy
ZmxvdzpoaWRkZW47Cit9CisKKzo6LXdlYmtpdC1zY3JvbGxiYXIgeworICAgIHdpZHRoOiAwcHg7
CisgICAgaGVpZ2h0OiAwcHg7Cit9CisKKyNncmVlbmJveCB7CisgIHdpZHRoOiAxMDBweDsKKyAg
aGVpZ2h0OiAxMDBweDsKKyAgYmFja2dyb3VuZDogZ3JlZW47CisgIHBhZGRpbmc6IDBweDsKKyAg
bWFyZ2luOiAwcHg7Cit9CisKKyNyZWRib3ggeworICB3aWR0aDogMTAwcHg7CisgIGhlaWdodDog
MTAwcHg7CisgIGJhY2tncm91bmQ6IHJlZDsKKyAgcGFkZGluZzogMHB4OworICBtYXJnaW46IDBw
eDsKK30KKwordGQgeworICBwYWRkaW5nOiAwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHkgc3R5bGU9Im1hcmdpbjowOyBvdmVyZmxvdzpoaWRkZW47IiBvbmxvYWQ9InJ1blRlc3QoKTsi
PgorCis8dGFibGUgaWQ9Imhvcml6b250YWxfdGFibGVfdG9fZmlsbCI+CisgIDx0ciBpZD0iZmly
c3Ryb3ciPgorICAgIDx0ZD48ZGl2IGlkPSJyZWRib3giPjwvZGl2PjwvdGQ+CisgICAgPHRkPjxk
aXYgaWQ9ImdyZWVuYm94Ij48L2Rpdj48L3RkPgorICA8L3RyPgorPC90YWJsZT4KKworPHRhYmxl
IGlkPSJ2ZXJ0aWNhbF90YWJsZV90b19maWxsIj4KKyAgICA8dHI+PHRkPjxkaXYgaWQ9ImdyZWVu
Ym94Ij48L2Rpdj48L3RkPjwvdHI+CisgICAgPHRyPjx0ZD48ZGl2IGlkPSJyZWRib3giPjwvZGl2
PjwvdGQ+PC90cj4KKzwvdGFibGU+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3Zh
ciBleHBlY3RlZEdlc3R1cmVzVG90YWwgPSAyOwordmFyIGdlc3R1cmVzT2NjdXJyZWQgPSAwOwor
dmFyIHNjcm9sbEFtb3VudFggPSBbJzAnLCAnMCddOwordmFyIHNjcm9sbEFtb3VudFkgPSBbJzAn
LCAnMCddOwordmFyIHdoZWVsRXZlbnRzT2NjdXJyZWQgPSAwOwordmFyIGV4cGVjdGVkV2hlZWxF
dmVudHNPY2N1cnJlZCA9IFsnMCcsICcwJ107Cit2YXIgc2Nyb2xsRXZlbnRzT2NjdXJyZWQgPSAw
OwordmFyIGV4cGVjdGVkU2Nyb2xsRXZlbnRzT2NjdXJyZWQgPSAnMCc7Cit2YXIgc2Nyb2xsZWRF
bGVtZW50ID0gJ2RvY3VtZW50LmJvZHknCisKKy8vIEFsd2F5cyBjb25zdHJ1Y3QgYSBwYWdlIGxh
cmdlciB0aGFuIHRoZSB2ZXJ0aWNhbCBoZWlnaHQgb2YgdGhlIHdpbmRvdy4KK2Z1bmN0aW9uIGJ1
aWxkUGFnZSgpCit7CisgICAgLy8gYnVpbGQgdmVydGljYWwgdGFibGUKKyAgICB2YXIgdGFibGUg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndmVydGljYWxfdGFibGVfdG9fZmlsbCcpOworICAg
IHZhciB0YXJnZXRIZWlnaHQgPSBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKKyAgICB2YXIg
Y2VsbFBhaXJIZWlnaHQgPSB0YWJsZS5vZmZzZXRIZWlnaHQ7CisgICAgdmFyIG51bWJlck9mUmVw
cyA9IHRhcmdldEhlaWdodCAvIGNlbGxQYWlySGVpZ2h0ICogMjsKKyAgICB2YXIgaTsKKyAgICBm
b3IgKGkgPSAwOyBpIDwgbnVtYmVyT2ZSZXBzOyBpKyspIHsKKyAgICAgICAgdmFyIHAgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOworICAgICAgICBwLmlubmVySFRNTCA9ICc8dGQ+PGRp
diBpZD0iZ3JlZW5ib3giPjwvZGl2PjwvdGQ+JzsKKyAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQo
cCk7CisgICAgICAgIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKKyAgICAg
ICAgcC5pbm5lckhUTUwgPSAnPHRkPjxkaXYgaWQ9InJlZGJveCI+PC9kaXY+PC90ZD4nOworICAg
ICAgICB0YWJsZS5hcHBlbmRDaGlsZChwKTsKKyAgICB9CisKKyAgICAvLyBidWlsZCBob3Jpem9u
dGFsIHRhYmxlCisgICAgdmFyIGhvcml6b250YWxUYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdob3Jpem9udGFsX3RhYmxlX3RvX2ZpbGwnKTsKKyAgICB2YXIgdGFibGVSb3cgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZmlyc3Ryb3cnKTsKKyAgICB2YXIgdGFyZ2V0V2lkdGggPSBk
b2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOworICAgIHZhciBjZWxsUGFpcldpZHRoID0gaG9yaXpv
bnRhbFRhYmxlLm9mZnNldFdpZHRoOworICAgIG51bWJlck9mUmVwcyA9IHRhcmdldFdpZHRoIC8g
Y2VsbFBhaXJXaWR0aCAqIDI7CisgICAgZm9yIChpID0gMDsgaSA8IG51bWJlck9mUmVwczsgaSsr
KSB7CisgICAgICAgIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKKyAgICAg
ICAgcC5pbm5lckhUTUwgPSAnPGRpdiBpZD0icmVkYm94Ij48L2Rpdj4nOworICAgICAgICB0YWJs
ZVJvdy5hcHBlbmRDaGlsZChwKTsKKyAgICAgICAgdmFyIHAgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCd0ZCcpOworICAgICAgICBwLmlubmVySFRNTCA9ICc8ZGl2IGlkPSJncmVlbmJveCI+PC9k
aXY+JzsKKyAgICAgICAgdGFibGVSb3cuYXBwZW5kQ2hpbGQocCk7CisgICAgfQorCisgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHJlY29yZFNjcm9sbCk7CisgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwiLCByZWNvcmRXaGVlbCk7Cit9CisKK2Z1bmN0
aW9uIGZpcnN0R2VzdHVyZVNjcm9sbCgpCit7CisgICAgZGVidWcoImZpcnN0IGdlc3R1cmUiKTsK
KyAgICBldmVudFNlbmRlci5nZXN0dXJlU2Nyb2xsQmVnaW4oOTUsIDEyKTsKKyAgICBldmVudFNl
bmRlci5nZXN0dXJlU2Nyb2xsVXBkYXRlKC01NSwgLTExMCk7CisgICAgZXZlbnRTZW5kZXIuZ2Vz
dHVyZVNjcm9sbEVuZCgwLCAwKTsKKworICAgIC8vIFdhaXQgZm9yIGxheW91dC4KKyAgICBjaGVj
a1Njcm9sbE9mZnNldCgpOworfQorCitmdW5jdGlvbiBzZWNvbmRHZXN0dXJlU2Nyb2xsKCkKK3sK
KyAgICBkZWJ1Zygic2Vjb25kIGdlc3R1cmUiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlU2Ny
b2xsQmVnaW4oMTIsIDk3KTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlU2Nyb2xsVXBkYXRlKC00
MiwgLTk1KTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlU2Nyb2xsRW5kKDAsIDApOworCisgICAg
Ly8gV2FpdCBmb3IgbGF5b3V0LgorICAgIGNoZWNrU2Nyb2xsT2Zmc2V0KCk7CisKKyAgICAvLyBJ
biB0aGlzIHRlc3Qgd2UgZG8gbm90IGV4cGVjdCBhbnkgc2Nyb2xsIGV2ZW50cyB0bworICAgIC8v
IGJlIHJlY2VpdmVkIGJ5IHRoZSBldmVudCBsaXN0ZW5lciwgc28gd2Ugc2lnbmFsCisgICAgLy8g
dGhlIGVuZCBvZiB0aGUgdGVzdCBieSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gaW5zdGVhZAorICAg
IC8vIG9mIHJlbHlpbmcgb24gcmVjb3JkU2Nyb2xsKCkgdG8gZG8gaXQuCisgICAgZmluaXNoVGVz
dCgpOworfQorCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGJ1aWxkUGFnZSgpOworICAg
IGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgZGVzY3JpcHRpb24oJ1RoaXMgdGVz
dHMgdGhhdCBhIHBhZ2UgY2Fubm90IGJlIHNjcm9sbGVkIHdpdGggdG91Y2ggaWYgaXRzIGJvZHkg
aGFzIHN0eWxlIG92ZXJmbG93OmhpZGRlbi4nKTsKKworICAgICAgICBpZiAoY2hlY2tUZXN0RGVw
ZW5kZW5jaWVzKCkpCisgICAgICAgICAgICBmaXJzdEdlc3R1cmVTY3JvbGwoKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgZXhpdElmTmVjZXNzYXJ5KCk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgZGVidWcoIlRoaXMgdGVzdCByZXF1aXJlcyBEdW1wUmVuZGVyVHJlZS4gIFRvdWNoIHNjcm9s
bCB0aGUgcmVkIHJlY3QgdG8gbG9nLiIpOworICAgIH0KK30KKworZnVuY3Rpb24gZmluaXNoVGVz
dCgpCit7CisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICBpZiAoZ2VzdHVy
ZXNPY2N1cnJlZCA9PSBleHBlY3RlZEdlc3R1cmVzVG90YWwpIHsKKyAgICAgICAgICAgIHNob3Vs
ZEJlKCdzY3JvbGxFdmVudHNPY2N1cnJlZCcsIGV4cGVjdGVkU2Nyb2xsRXZlbnRzT2NjdXJyZWQp
OworICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlz
U3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAg
ICB9Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvdG91Y2gtZ2Vz
dHVyZS1ub3Njcm9sbC1ib2R5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvdG91Y2gtZ2VzdHVyZS1ub3Njcm9sbC1i
b2R5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NGNhZjlhYTc1ZDQ0ZDJhMDBjNTMxYmIyYjBm
ZDFhOWIxNTgxZDExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS90b3VjaC1nZXN0dXJlLW5vc2Nyb2xsLWJv
ZHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1RoaXMgdGVzdHMgdGhhdCBhIHBhZ2Ug
Y2Fubm90IGJlIHNjcm9sbGVkIHdpdGggdG91Y2ggaWYgaXRzIGJvZHkgaGFzIHN0eWxlIG92ZXJm
bG93OmhpZGRlbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2ZpcnN0IGdlc3R1
cmUKK1BBU1MgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgaXMgMAorUEFTUyBkb2N1bWVudC5ib2R5
LnNjcm9sbExlZnQgaXMgMAorUEFTUyB3aGVlbEV2ZW50c09jY3VycmVkIGlzIDAKK3NlY29uZCBn
ZXN0dXJlCitQQVNTIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZG9jdW1lbnQu
Ym9keS5zY3JvbGxMZWZ0IGlzIDAKK1BBU1Mgd2hlZWxFdmVudHNPY2N1cnJlZCBpcyAwCitQQVNT
IHNjcm9sbEV2ZW50c09jY3VycmVkIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3RvdWNoLWdlc3R1cmUtbm9zY3JvbGwt
Ym9keS1wcm9wYWdhdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvdG91Y2gtZ2VzdHVyZS1ub3Njcm9sbC1ib2R5
LXByb3BhZ2F0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmMjM3YTU4ZmZlY2EzMmU4ZGUx
MzQ3NTFjOTQxNzUyNzU4MjY0ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3RvdWNoLWdlc3R1cmUtbm9z
Y3JvbGwtYm9keS1wcm9wYWdhdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUaGlz
IHRlc3RzIHRoYXQgYSBwYWdlIGNhbm5vdCBiZSBzY3JvbGxlZCB2ZXJ0aWNhbGx5IHdpdGggdG91
Y2ggaWYgaXRzIGJvZHkgaGFzIHN0eWxlIG92ZXJmbG93LXk6aGlkZGVuIGFuZCB0aGUgc2Nyb2xs
IGV2ZW50IGlzIHByb3BvZ2F0ZWQgZnJvbSBhIHNjcm9sbGFibGUgY2hpbGQgZGl2LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworZmlyc3QgZ2VzdHVyZQorUEFTUyBkb2N1bWVudC5i
b2R5LnNjcm9sbFRvcCBpcyAwCitQQVNTIGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCBpcyAwCitQ
QVNTIHdoZWVsRXZlbnRzT2NjdXJyZWQgaXMgMAorc2Vjb25kIGdlc3R1cmUKK1BBU1MgZG9jdW1l
bnQuYm9keS5zY3JvbGxUb3AgaXMgMAorUEFTUyBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQgaXMg
MAorUEFTUyB3aGVlbEV2ZW50c09jY3VycmVkIGlzIDAKK1BBU1Mgc2Nyb2xsRXZlbnRzT2NjdXJy
ZWQgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRz
L3RvdWNoL2dlc3R1cmUvdG91Y2gtZ2VzdHVyZS1ub3Njcm9sbC1ib2R5LXhoaWRkZW4tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gv
Z2VzdHVyZS90b3VjaC1nZXN0dXJlLW5vc2Nyb2xsLWJvZHkteGhpZGRlbi1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGMyNzc2MjlmNDNhYzdkMjhlNzEyYWZhOWM1YjQ3MzQwYzliZDEwOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRz
L3RvdWNoL2dlc3R1cmUvdG91Y2gtZ2VzdHVyZS1ub3Njcm9sbC1ib2R5LXhoaWRkZW4tZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKK1RoaXMgdGVzdHMgdGhhdCBhIHBhZ2UgY2Fubm90IGJl
IHNjcm9sbGVkIGhvcml6b250YWxseSB3aXRoIHRvdWNoIChidXQgY2FuIHN0aWxsIGJlIHNjcm9s
bGVkIHZlcnRpY2FsbHkpIGlmIGl0cyBib2R5IGhhcyBzdHlsZSBvdmVyZmxvdy14OmhpZGRlbi4g
VGhlIHNjcm9sbCBldmVudHMgaW4gdGhpcyB0ZXN0IGhhdmUgYm90aCBhbiB4IGFuZCB5IGNvbXBv
bmVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2ZpcnN0IGdlc3R1cmUKK1BB
U1MgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgaXMgMTEwCitQQVNTIGRvY3VtZW50LmJvZHkuc2Ny
b2xsTGVmdCBpcyAwCitQQVNTIHdoZWVsRXZlbnRzT2NjdXJyZWQgaXMgMAorc2Vjb25kIGdlc3R1
cmUKK1BBU1MgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgaXMgMjA1CitQQVNTIGRvY3VtZW50LmJv
ZHkuc2Nyb2xsTGVmdCBpcyAwCitQQVNTIHdoZWVsRXZlbnRzT2NjdXJyZWQgaXMgMAorc2Nyb2xs
IGV2ZW50IDArPiBbb2JqZWN0IEhUTUxEb2N1bWVudF0KK1BBU1Mgc2Nyb2xsRXZlbnRzT2NjdXJy
ZWQgaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRz
L3RvdWNoL2dlc3R1cmUvdG91Y2gtZ2VzdHVyZS1ub3Njcm9sbC1ib2R5LXloaWRkZW4tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gv
Z2VzdHVyZS90b3VjaC1nZXN0dXJlLW5vc2Nyb2xsLWJvZHkteWhpZGRlbi1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjg5YTFkNzI1ZDljMzFjY2E1MDMxYTYyMDA5ZGE4ZTRmOTI3ZjMxOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRz
L3RvdWNoL2dlc3R1cmUvdG91Y2gtZ2VzdHVyZS1ub3Njcm9sbC1ib2R5LXloaWRkZW4tZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKK1RoaXMgdGVzdHMgdGhhdCBhIHBhZ2UgY2Fubm90IGJl
IHNjcm9sbGVkIHZlcnRpY2FsbHkgd2l0aCB0b3VjaCAoYnV0IGNhbiBzdGlsbCBiZSBzY3JvbGxl
ZCBob3Jpem9udGFsbHkpIGlmIGl0cyBib2R5IGhhcyBzdHlsZSBvdmVyZmxvdy15OmhpZGRlbi4g
VGhlIHNjcm9sbCBldmVudHMgaW4gdGhpcyB0ZXN0IGhhdmUgYm90aCBhbiB4IGFuZCB5IGNvbXBv
bmVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2ZpcnN0IGdlc3R1cmUKK1BB
U1MgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgaXMgMAorUEFTUyBkb2N1bWVudC5ib2R5LnNjcm9s
bExlZnQgaXMgNTUKK1BBU1Mgd2hlZWxFdmVudHNPY2N1cnJlZCBpcyAwCitzZWNvbmQgZ2VzdHVy
ZQorUEFTUyBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCBpcyAwCitQQVNTIGRvY3VtZW50LmJvZHku
c2Nyb2xsTGVmdCBpcyA5NworUEFTUyB3aGVlbEV2ZW50c09jY3VycmVkIGlzIDAKK3Njcm9sbCBl
dmVudCAwKz4gW29iamVjdCBIVE1MRG9jdW1lbnRdCitQQVNTIHNjcm9sbEV2ZW50c09jY3VycmVk
IGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
Cg==
</data>
<flag name="review"
          id="207913"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>