<?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>153404</bug_id>
          
          <creation_ts>2016-01-24 01:54:28 -0800</creation_ts>
          <short_desc>REGRESSION(r188659): Non main frame scrollable areas don&apos;t work for pages restored from the page cache</short_desc>
          <delta_ts>2016-02-16 23:34:45 -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>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=154333</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>153405</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>dino</cc>
    
    <cc>kgraff</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1158103</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-01-24 01:54:28 -0800</bug_when>
    <thetext>Since r188659 FrameView scrollable areas are cleared when a page is cached in the history cache, but they are not restored on resume. The problem can be reproduced with safari:

 - Visit a page containing non frame scrollable areas, like a menu list, for example: http://www.robinlionheart.com/stds/html4/forms this page has a lot of scrollable areas
 - Note that you can scroll the examples and menu lists with the scroll wheel
 - Go back and then go forward
 - Try to scroll any of the areas using the scroll wheel, without using the scrollbars. The main frame is scrolled instead.

If you enable overlay scrollbars and repeat the steps you will notice that scrollbars never appear again for those areas, so it&apos;s impossible to scroll them. When the page is suspended, scrollbars are locked (see Page::lockAllOverlayScrollbarsToHidden), but they are not unclocked on resume, because the frame view has an empty ScrollabeAreas set.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1158113</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-01-24 10:46:04 -0800</bug_when>
    <thetext>I&apos;ve been investigating this too. The issue is that the FrameView&apos;s scrollableAreaSet is not updated with overflow and subframe regions when coming out of the page cache. I have a provisional patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1158829</commentid>
    <comment_count>2</comment_count>
      <attachid>269884</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-01-26 09:18:10 -0800</bug_when>
    <thetext>Created attachment 269884
WIP patch

Work-in-progress patch. It would be nice to do without the RenderLayer walk, but I&apos;m not sure there&apos;s a way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163174</commentid>
    <comment_count>3</comment_count>
      <attachid>270922</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-09 05:01:59 -0800</bug_when>
    <thetext>Created attachment 270922
Test

You can use this test (depends on bug #153479). You can see that after history navigation only the main frame receives events. The expected result is what we get if we remove the line 
testRunner.overridePreference(&quot;WebKitUsesPageCachePreferenceKey&quot;, 1);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164684</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-15 00:09:55 -0800</bug_when>
    <thetext>Any progress on this? I&apos;ve tried the patch but it doesn&apos;t seem to fix the issue. Can we roll out r188659 until this is properly fixed? This is blocking us to enable overlay scrollbars in GTK+ port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164748</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-15 08:41:54 -0800</bug_when>
    <thetext>r188659 was fixing a security bug, so I don&apos;t want to roll it out. I&apos;ll try to get back to this patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164755</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-15 08:47:15 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; r188659 was fixing a security bug, so I don&apos;t want to roll it out. I&apos;ll try
&gt; to get back to this patch soon.

Ah, right, ok, let me know if I can help somehow. I&apos;ll take a look at r188659 in more detail to try to understand the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164765</commentid>
    <comment_count>7</comment_count>
      <attachid>271347</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-15 09:48:51 -0800</bug_when>
    <thetext>Created attachment 271347
Different WIP approach

So, according to bug #148182 crashes happen when restoring from page cache because of pointers to ScrollableAreas that has already been removed. So, I think the actual bug is that those ScrollableAreas haven&apos;t been unregistered themselves when they were destroyed. RenderListBox and RenderLayer already do that, so I think the bug is in Mac PDFPlugin, and maybe in FrameView. This patch could also fix the crash without having to clear/restore scrollable areas when entering/restoring from the page cache. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164773</commentid>
    <comment_count>8</comment_count>
      <attachid>271347</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-15 10:36:46 -0800</bug_when>
    <thetext>Comment on attachment 271347
Different WIP approach

Seems reasonable, but you should make sure that you can actually get back to the FrameView in these two destructors (might be too late).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164794</commentid>
    <comment_count>9</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-02-15 11:33:39 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 271347 [details]
&gt; Different WIP approach
&gt; 
&gt; Seems reasonable, but you should make sure that you can actually get back to
&gt; the FrameView in these two destructors (might be too late).

Disconnecting destroyed renderers from the FrameView seems like a good thing to be doing. So if this changes fixes your problem, without reintroducing the issues from Bug 148182, then I&apos;m in favor of it.

However, I don&apos;t really like that various Render elements have to do work to keep things in proper balance. E.g., RenderListBox and RenderLayer have cleanup code, now DeprecatedPDFPlugin will have special code. Are there others we are missing?

Should ScrollableAreas know about their containing frames, so they can unregister themselves during destruction, rather than doing so in the individual destructors for ScrollableArea descendants?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165105</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-16 03:43:24 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Comment on attachment 271347 [details]
&gt; &gt; Different WIP approach
&gt; &gt; 
&gt; &gt; Seems reasonable, but you should make sure that you can actually get back to
&gt; &gt; the FrameView in these two destructors (might be too late).
&gt; 
&gt; Disconnecting destroyed renderers from the FrameView seems like a good thing
&gt; to be doing. So if this changes fixes your problem, without reintroducing
&gt; the issues from Bug 148182, then I&apos;m in favor of it.

I can&apos;t be sure it doesn&apos;t reintroduce the issues from bug #148182, because I haven&apos;t been able to reproduce those crashes. Based on the analysis made in that bug I assume the problem is only with PDFPlugin, and it should be fixed by unregistering the plugin in the destructor, but someone with a mac who can reproduce the issue should confirm it.

&gt; However, I don&apos;t really like that various Render elements have to do work to
&gt; keep things in proper balance. E.g., RenderListBox and RenderLayer have
&gt; cleanup code, now DeprecatedPDFPlugin will have special code.

I think it makes sense that classes registering themselves as scrollable areas unregister themselves as well. Ideally the base class could do it, but ScrollableArea is in platform layer and FrameView in WebCore layer. So, I don&apos;t think DeprecatedPDFPlugin will have any special code, it&apos;s registering itself as scrollable area in the FrameView and should unregister if it&apos;s destructed.

&gt; Are there
&gt; others we are missing?

No, there aren&apos;t.

&gt; Should ScrollableAreas know about their containing frames, so they can
&gt; unregister themselves during destruction, rather than doing so in the
&gt; individual destructors for ScrollableArea descendants?

That would be a layering violation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165106</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-16 03:44:04 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 271347 [details]
&gt; Different WIP approach
&gt; 
&gt; Seems reasonable, but you should make sure that you can actually get back to
&gt; the FrameView in these two destructors (might be too late).

I guess the only way to be sure would be to also use WeakPtr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165110</commentid>
    <comment_count>12</comment_count>
      <attachid>271424</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-16 04:14:59 -0800</bug_when>
    <thetext>Created attachment 271424
Patch

For now I&apos;m not using WeakPtr, because I&apos;m not sure it&apos;s actually needed, so it&apos;s probably not worth it the extra space of the WeakPtrFactory in ScrollabelArea (see the compile assert ScrollableArea_should_stay_small), and also because WeakPtr is not hashable. If it&apos;s really needed, I guess we can just make it hahsable and add it to ScrollabelArea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165137</commentid>
    <comment_count>13</comment_count>
      <attachid>271424</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-16 08:54:15 -0800</bug_when>
    <thetext>Comment on attachment 271424
Patch

Making a test doesn&apos;t require a fix for bug 153479. You can make a test that dispatches mouse wheel events after navigating then going back, I have one half-written.

I&apos;ll try to reproduce the original crash today and test this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165140</commentid>
    <comment_count>14</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-16 09:06:02 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Comment on attachment 271424 [details]
&gt; Patch
&gt; 
&gt; Making a test doesn&apos;t require a fix for bug 153479. You can make a test that
&gt; dispatches mouse wheel events after navigating then going back, I have one
&gt; half-written.

I meant a test for this bug, not for bug #148182, that is attached to this bug already, but that depends on bug #153479. With current trunk, scrollable areas do actually scroll after being restored from the page cache when they receive wheel events, but the scroll animator is not notified. That&apos;s not a problem at all for non-overlay scrollbars that are always visible, but for overlay scrollbars that are shown when the mouse enters the scrollable area, we never see them (unless hovered) when the page is restored from the page cache.

&gt; I&apos;ll try to reproduce the original crash today and test this patch.

Great, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165175</commentid>
    <comment_count>15</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-16 10:49:36 -0800</bug_when>
    <thetext>Fixed by rollout of r188659 in https://trac.webkit.org/r196641</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165209</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-16 11:21:01 -0800</bug_when>
    <thetext>Adding tests that detect the regression via bug 154300.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165405</commentid>
    <comment_count>17</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-16 16:45:00 -0800</bug_when>
    <thetext>The supplied patch doesn&apos;t work; details in bug 148182.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165530</commentid>
    <comment_count>18</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-16 23:21:26 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; Adding tests that detect the regression via bug 154300.

The problem of this regression was not that scrollable areas were not scrollable after being restored from the page cache, that still worked (at least in GTK+ port), because the scrollable areas still existed and the event handler correctly passed the wheel events to them. The problem was that the scroll animator was not notified when the mouse entered or exited the scrollable areas, which is what we use to show/hide the overlay scrollbars. I&apos;ll add a new test for this particular case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165534</commentid>
    <comment_count>19</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-16 23:34:45 -0800</bug_when>
    <thetext>Adding more tests in bug #154333</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269884</attachid>
            <date>2016-01-26 09:18:10 -0800</date>
            <delta_ts>2016-01-26 09:18:10 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>18690</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDllNGVmZDA4ZDEyOTQ0ZjhjNjAyY2RiODFmOWMy
NmEyYjA4NDUwN2IuLmEyNjU2MjExZmQzNTA2YzhlZTc4NDg5MThhYzg4N2QyNzJjZDI5YjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDYxMCw3ICs0NjEwLDcgQEAgdm9pZCBEb2N1bWVu
dDo6c2V0SW5QYWdlQ2FjaGUoYm9vbCBmbGFnKQogICAgICAgICAgICAgaWYgKHBhZ2UgJiYgbV9m
cmFtZS0+aXNNYWluRnJhbWUoKSkgewogICAgICAgICAgICAgICAgIHYtPnJlc2V0U2Nyb2xsYmFy
c0FuZENsZWFyQ29udGVudHNTaXplKCk7CiAgICAgICAgICAgICAgICAgaWYgKFNjcm9sbGluZ0Nv
b3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5h
dG9yKCkpCi0gICAgICAgICAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5jbGVhclN0
YXRlVHJlZSgpOworICAgICAgICAgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJh
bWVWaWV3RW50ZXJpbmdQYWdlQ2FjaGUoKnYpOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICAgICAgdi0+cmVzZXRTY3JvbGxiYXJzKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaGlz
dG9yeS9DYWNoZWRGcmFtZS5jcHAKaW5kZXggNzQxMjg4ZDYzOWQ0NmUyMzdkYzNmNjY5ODMwMTZj
NWMzOTgyYmRjNC4uNDM2NGJhZDY3NTdjZWZjYmU1MmUzYmNmZjBlMDQ5MGU0ZDVmYmMzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKQEAgLTEwMiw2ICsxMDIsMTAgQEAg
dm9pZCBDYWNoZWRGcmFtZUJhc2U6OnJlc3RvcmUoKQogICAgIGlmIChtX2lzQ29tcG9zaXRlZCkK
ICAgICAgICAgZnJhbWUudmlldygpLT5yZXN0b3JlQmFja2luZ1N0b3JlcygpOwogCisgICAgLy8g
UmUtcmVnaXN0ZXIgZnJhbWUgYW5kIG92ZXJmbG93IHNjcm9sbGFibGUgYXJlYXMsIGNvdW50ZXJp
bmcgdGhlIGNsZWFyU2Nyb2xsYWJsZUFyZWFzKCkgd2hlbiBnb2luZyBpbnRvIHRoZSBwYWdlIGNh
Y2hlLgorICAgIGZyYW1lLnZpZXcoKS0+dXBkYXRlSW5QYXJlbnRWaWV3c1Njcm9sbGFibGVBcmVh
U2V0KCk7CisgICAgZnJhbWUudmlldygpLT5yZWdpc3Rlck92ZXJmbG93U2Nyb2xsYWJsZUFyZWFz
KCk7CisKICAgICBmcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5kaWRSZXN0b3JlRnJvbVBhZ2VDYWNo
ZSgpOwogCiAgICAgLy8gUmVjb25zdHJ1Y3QgdGhlIEZyYW1lVHJlZS4gQW5kIG9wZW4gdGhlIGNo
aWxkIENhY2hlZEZyYW1lcyBpbiB0aGVpciByZXNwZWN0aXZlIEZyYW1lTG9hZGVycy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCmluZGV4IDNhNmVhNzE2ZjI5
YWEwNzE0NTkyZGRlMjBiOTQzYjliOWEzN2FmOGMuLjY2ZDQyYTAyMmZlY2I4N2UxZWNkNDE2MTcz
YWQ4MzhkOWZlYWExNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9s
bGVyLmNwcApAQCAtMTQxLDcgKzE0MSw3IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnJlc3Rv
cmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSgpCiAgICAgICAgIFBhZ2UqIHBhZ2UgPSBtX2Zy
YW1lLnBhZ2UoKTsKICAgICAgICAgaWYgKHBhZ2UgJiYgbV9mcmFtZS5pc01haW5GcmFtZSgpKSB7
CiAgICAgICAgICAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5h
dG9yID0gcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKLSAgICAgICAgICAgICAgICBzY3Jv
bGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3Um9vdExheWVyRGlkQ2hhbmdlKCp2aWV3KTsKKyAg
ICAgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3UmVzdG9yZWRGcm9t
UGFnZUNhY2hlKCp2aWV3KTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCmluZGV4IDU5ODE1YjYyZTkyYTQ4OTQ5NTZkY2E3NWM3MDdkY2E0ZWJkOWE1OWQuLmM4
MWVhMWI2YzZkNzQ2MDY5NDEzOWUyYmIyZjZiZjY5NmI5ZWUzYWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKQEAgLTQ5NCw3ICs0OTQsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2V0RnJhbWVS
ZWN0KGNvbnN0IEludFJlY3QmIG5ld1JlY3QpCiAKICAgICBTY3JvbGxWaWV3OjpzZXRGcmFtZVJl
Y3QobmV3UmVjdCk7CiAKLSAgICB1cGRhdGVTY3JvbGxhYmxlQXJlYVNldCgpOworICAgIHVwZGF0
ZUluUGFyZW50Vmlld3NTY3JvbGxhYmxlQXJlYVNldCgpOwogCiAgICAgaWYgKFJlbmRlclZpZXcq
IHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCkpIHsKICAgICAgICAgaWYgKHJlbmRlclZp
ZXctPnVzZXNDb21wb3NpdGluZygpKQpAQCAtNjE0LDcgKzYxNCw3IEBAIHZvaWQgRnJhbWVWaWV3
OjpzZXRDb250ZW50c1NpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICBpZiAoIXBhZ2UpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZVNjcm9sbGFibGVBcmVhU2V0KCk7CisgICAgdXBk
YXRlSW5QYXJlbnRWaWV3c1Njcm9sbGFibGVBcmVhU2V0KCk7CiAKICAgICBwYWdlLT5jaHJvbWUo
KS5jb250ZW50c1NpemVDaGFuZ2VkKCZmcmFtZSgpLCBzaXplKTsgLy8gTm90aWZ5IG9ubHkuCiAK
QEAgLTM2MDQsNyArMzYwNCw3IEBAIGJvb2wgRnJhbWVWaWV3OjpoYXNTY3JvbGxhYmxlT3JSdWJi
ZXJiYW5kYWJsZUFuY2VzdG9yKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgRnJhbWVW
aWV3Ojp1cGRhdGVTY3JvbGxhYmxlQXJlYVNldCgpCit2b2lkIEZyYW1lVmlldzo6dXBkYXRlSW5Q
YXJlbnRWaWV3c1Njcm9sbGFibGVBcmVhU2V0KCkKIHsKICAgICAvLyBUaGF0IGVuc3VyZXMgdGhh
dCBvbmx5IGlubmVyIGZyYW1lcyBhcmUgY2FjaGVkLgogICAgIEZyYW1lVmlldyogcGFyZW50RnJh
bWVWaWV3ID0gdGhpcy0+cGFyZW50RnJhbWVWaWV3KCk7CkBAIC0zNjE5LDYgKzM2MTksMTQgQEAg
dm9pZCBGcmFtZVZpZXc6OnVwZGF0ZVNjcm9sbGFibGVBcmVhU2V0KCkKICAgICBwYXJlbnRGcmFt
ZVZpZXctPmFkZFNjcm9sbGFibGVBcmVhKHRoaXMpOwogfQogCit2b2lkIEZyYW1lVmlldzo6cmVn
aXN0ZXJPdmVyZmxvd1Njcm9sbGFibGVBcmVhcygpCit7CisgICAgaWYgKCFyZW5kZXJWaWV3KCkp
CisgICAgICAgIHJldHVybjsKKworICAgIHJlbmRlclZpZXcoKS0+bGF5ZXIoKS0+cmVnaXN0ZXJP
dmVyZmxvd1Njcm9sbGFibGVBcmVhcygpOworfQorCiBib29sIEZyYW1lVmlldzo6c2hvdWxkU3Vz
cGVuZFNjcm9sbEFuaW1hdGlvbnMoKSBjb25zdAogewogICAgIHJldHVybiBmcmFtZSgpLmxvYWRl
cigpLnN0YXRlKCkgIT0gRnJhbWVTdGF0ZUNvbXBsZXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgK
aW5kZXggNDJkNDkxOTUxMGNlNTQ0YjMyNGQyZDAwZTU5ZTQ4YjAyZjliOGEzNi4uYTNmZDY2ODZi
YWUyMDI2ZmVkMjVkNDIwMGE4ODA0MjUzNWM5ZTVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CkBAIC00NTgsNiArNDU4LDkgQEAgcHVibGljOgogICAgIGNvbnN0IFNjcm9sbGFibGVBcmVhU2V0
KiBzY3JvbGxhYmxlQXJlYXMoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFibGVBcmVhcy5nZXQo
KTsgfQogICAgIHZvaWQgY2xlYXJTY3JvbGxhYmxlQXJlYXMoKTsKIAorICAgIHZvaWQgcmVnaXN0
ZXJPdmVyZmxvd1Njcm9sbGFibGVBcmVhcygpOworICAgIHZvaWQgdXBkYXRlSW5QYXJlbnRWaWV3
c1Njcm9sbGFibGVBcmVhU2V0KCk7CisKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2hpbGQoV2lk
Z2V0Jikgb3ZlcnJpZGU7CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBmb3IgcG9ydHMg
dGhhdCBuZWVkIHRvIGhhbmRsZSB3aGVlbCBldmVudHMgbWFudWFsbHkuCkBAIC02NDUsOCArNjQ4
LDYgQEAgcHJpdmF0ZToKICAgICBJbnRTaXplIHNpemVGb3JSZXNpemVFdmVudCgpIGNvbnN0Owog
ICAgIHZvaWQgc2VuZFJlc2l6ZUV2ZW50SWZOZWVkZWQoKTsKIAotICAgIHZvaWQgdXBkYXRlU2Ny
b2xsYWJsZUFyZWFTZXQoKTsKLQogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlQYWdlVGhhdENvbnRl
bnRBcmVhV2lsbFBhaW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGVuYWJsZVNwZWN1
bGF0aXZlVGlsaW5nSWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggMzAxNjBj
MGE0MjVlOTM4ODQ0NzFiZTc3MDg3Yjg0ZGUyMzkzYmI3Ny4uYTA0ODhkZDZmMjgxNWQ0MDMyMzNk
YTkzNjgwZjVmYzBlOWJlM2M2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTkxLDYgKzkx
LDcgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp3aWxsQ29tbWl0VHJlZSgpCiAK
IHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlTm9uRmFzdFNjcm9sbGFibGVS
ZWdpb24oKQogeworICAgIExPRyhTY3JvbGxpbmcsICJBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Ojp1cGRhdGVOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbigpIG1fbm9uRmFzdFNjcm9sbGFibGVSZWdp
b25EaXJ0eT0lZCIsIG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb25EaXJ0eSk7CiAgICAgaWYgKCFt
X25vbkZhc3RTY3JvbGxhYmxlUmVnaW9uRGlydHkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTE4
LDYgKzExOSw4IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6ZnJhbWVWaWV3TGF5
b3V0VXBkYXRlZChGcmFtZVZpZXcmIGZyYW1lVmlldykKICAgICBtX3Njcm9sbGluZ1N0YXRlVHJl
ZS0+cm9vdFN0YXRlTm9kZSgpLT5zZXROb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihhYnNvbHV0ZU5v
bkZhc3RTY3JvbGxhYmxlUmVnaW9uKCkpOwogICAgIG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb25E
aXJ0eSA9IGZhbHNlOwogCisgICAgTE9HKFNjcm9sbGluZywgIkFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OmZyYW1lVmlld0xheW91dFVwZGF0ZWQoKSIpOworCiAgICAgaWYgKCFjb29yZGluYXRl
c1Njcm9sbGluZ0ZvckZyYW1lVmlldyhmcmFtZVZpZXcpKQogICAgICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcAppbmRleCA1M2I5OGMxNDVhMzcyOWVjOGQyNTFmY2UyN2ViNjZlNGY3OTdiMDBhLi5l
OWU5ZTY4NzMzMjUyM2NlYjk0YzExOGM5NDI0OTE4ZWE1OTFmNDI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NMYXllci5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtV2hlZWxFdmVudC5oIgpAQCAtMTMwLDYgKzEzMSw3IEBAIFJlZ2lvbiBTY3JvbGxpbmdDb29y
ZGluYXRvcjo6YWJzb2x1dGVOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbkZvckZyYW1lKGNvbnN0IEZy
YW1lCiAKICAgICBpZiAoY29uc3QgRnJhbWVWaWV3OjpTY3JvbGxhYmxlQXJlYVNldCogc2Nyb2xs
YWJsZUFyZWFzID0gZnJhbWVWaWV3LT5zY3JvbGxhYmxlQXJlYXMoKSkgewogICAgICAgICBmb3Ig
KGF1dG8mIHNjcm9sbGFibGVBcmVhIDogKnNjcm9sbGFibGVBcmVhcykgeworICAgICAgICAgICAg
TE9HKFNjcm9sbGluZywgInNjcm9sbGFibGVBcmVhICVwIiwgc2Nyb2xsYWJsZUFyZWEpOwogICAg
ICAgICAgICAgLy8gQ29tcG9zaXRlZCBzY3JvbGxhYmxlIGFyZWFzIGNhbiBiZSBzY3JvbGxlZCBv
ZmYgdGhlIG1haW4gdGhyZWFkLgogICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVBcmVhLT51c2Vz
QXN5bmNTY3JvbGxpbmcoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTE3Nyw2ICsx
NzksOCBAQCBSZWdpb24gU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlTm9uRmFzdFNjcm9s
bGFibGVSZWdpb25Gb3JGcmFtZShjb25zdCBGcmFtZQogICAgIAogICAgIG5vbkZhc3RTY3JvbGxh
YmxlUmVnaW9uLnVuaXRlKHdoZWVsSGFuZGxlclJlZ2lvbi5maXJzdCk7CiAKKyAgICBMT0dfV0lU
SF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjphYnNv
bHV0ZU5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uRm9yRnJhbWU6ICIgPDwgbm9uRmFzdFNjcm9sbGFi
bGVSZWdpb24pOworCiAgICAgLy8gRklYTUU6IElmIHRoaXMgaXMgbm90IHRoZSBtYWluIGZyYW1l
LCB3ZSBjb3VsZCBjbGlwIHRoZSByZWdpb24gdG8gdGhlIGZyYW1lJ3MgYm91bmRzLgogICAgIHJl
dHVybiBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbjsKICNlbmRpZgpAQCAtMjkxLDYgKzI5NSwxOCBA
QCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2Uo
RnJhbWVWaWV3JiBmcmFtZVZpZXcpCiAgICAgdXBkYXRlU3luY2hyb25vdXNTY3JvbGxpbmdSZWFz
b25zKGZyYW1lVmlldyk7CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmZyYW1lVmll
d0VudGVyaW5nUGFnZUNhY2hlKEZyYW1lVmlldyYpCit7CisgICAgY2xlYXJTdGF0ZVRyZWUoKTsK
K30KKwordm9pZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6ZnJhbWVWaWV3UmVzdG9yZWRGcm9tUGFn
ZUNhY2hlKEZyYW1lVmlldyYgZnJhbWVWaWV3KQoreworICAgIExPRyhTY3JvbGxpbmcsICJTY3Jv
bGxpbmdDb29yZGluYXRvcjo6ZnJhbWVWaWV3UmVzdG9yZWRGcm9tUGFnZUNhY2hlKCkiKTsKKyAg
ICBmcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UoZnJhbWVWaWV3KTsKKy8vICAgIGZyYW1lVmll
d05vbkZhc3RTY3JvbGxhYmxlUmVnaW9uQ2hhbmdlZChmcmFtZVZpZXcpOworfQorCiAjaWYgUExB
VEZPUk0oQ09DT0EpCiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpoYW5kbGVXaGVlbEV2ZW50
UGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UgcGhhc2UpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCBjOTFj
MzJjZDI4Yjc2YTA3YmNhMjAyNjQzOThhMDc3ZDk0MGRiMjdjLi4wYjgyY2I0NTAyYjhhYjAzYzFi
MmFiZmQ2MmVmYTQwZjhiM2Y1OWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTEzMyw2ICsxMzMsMTAgQEAgcHVi
bGljOgogICAgIC8vIFNob3VsZCBiZSBjYWxsZWQgd2hlbmV2ZXIgdGhlIHJvb3QgbGF5ZXIgZm9y
IHRoZSBnaXZlbiBmcmFtZSB2aWV3IGNoYW5nZXMuCiAgICAgdmlydHVhbCB2b2lkIGZyYW1lVmll
d1Jvb3RMYXllckRpZENoYW5nZShGcmFtZVZpZXcmKTsKIAorICAgIC8vIENhbGxlZCB3aGVuIGVu
dGVyaW5nLCBhbmQgYmVpbmcgcmVzdG9yZWQgZnJvbSB0aGUgcGFnZSBjYWNoZS4KKyAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZnJhbWVWaWV3RW50ZXJpbmdQYWdlQ2FjaGUoRnJhbWVW
aWV3Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGZyYW1lVmlld1Jlc3RvcmVk
RnJvbVBhZ2VDYWNoZShGcmFtZVZpZXcmKTsKKwogICAgIC8vIFJldHVybiB3aGV0aGVyIHRoaXMg
c2Nyb2xsaW5nIGNvb3JkaW5hdG9yIGNhbiBrZWVwIGZpeGVkIHBvc2l0aW9uIGxheWVycyBmaXhl
ZCB0byB0aGVpcgogICAgIC8vIGNvbnRhaW5lcnMgd2hpbGUgc2Nyb2xsaW5nLgogICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0ZpeGVkUG9zaXRpb25MYXllcnMoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVGcmFtZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDg1MDM5MzZhMWE1
MWE1NTcyNWU1ZGMyMzNiMWY3Y2VlNjY0ZjM0N2QuLjMxZWU0NDc2NDBkNTk2Nzg5OTJmMTViZjhm
OTY5MTk3MWQ2NjgwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpIHx8IFVTRShDT09S
RElOQVRFRF9HUkFQSElDUykKIAorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTY3Jv
bGxpbmdTdGF0ZVRyZWUuaCIKICNpbmNsdWRlICJUZXh0U3RyZWFtLmgiCiAKQEAgLTEwMyw2ICsx
MDQsOCBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpzZXROb25GYXN0
U2Nyb2xsYWJsZVJlZ2lvbihjb25zdCBSZWdpb24mCiAgICAgaWYgKG1fbm9uRmFzdFNjcm9sbGFi
bGVSZWdpb24gPT0gbm9uRmFzdFNjcm9sbGFibGVSZWdpb24pCiAgICAgICAgIHJldHVybjsKIAor
ICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nU3RhdGVG
cmFtZVNjcm9sbGluZ05vZGU6OnNldE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uIiA8PCBub25GYXN0
U2Nyb2xsYWJsZVJlZ2lvbik7CisKICAgICBtX25vbkZhc3RTY3JvbGxhYmxlUmVnaW9uID0gbm9u
RmFzdFNjcm9sbGFibGVSZWdpb247CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKE5vbkZhc3RTY3Jv
bGxhYmxlUmVnaW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQppbmRleCBkZGY0ZmIyNDRk
ZDc1MzA5NzgzNGZiZTgxNjVjOTFiMmRkOGFhZjBmLi5lZWRkYWRhN2VhYmE4MGU3OTU2NDhlOGI1
MDBjMGRkOTRhYzU2MDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCkBAIC0zMCw2ICszMCw3
IEBACiAjaW1wb3J0ICJTY3JvbGxpbmdDb29yZGluYXRvck1hYy5oIgogCiAjaW5jbHVkZSAiRnJh
bWVWaWV3LmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKQEAgLTQw
LDYgKzQxLDcgQEAKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFj
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZU1hYy5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1Ry
ZWVTdGlja3lOb2RlLmgiCisjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgogI2luY2x1ZGUgIlRpbGVk
QmFja2luZy5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KQEAgLTExNiw2ICsxMTgsOCBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
TWFjOjpjb21taXRUcmVlU3RhdGUoKQogICAgIFJlZlB0cjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+
IHRocmVhZGVkU2Nyb2xsaW5nVHJlZSA9IGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4o
c2Nyb2xsaW5nVHJlZSgpKTsKICAgICBTY3JvbGxpbmdTdGF0ZVRyZWUqIHVucHJvdGVjdGVkVHJl
ZVN0YXRlID0gc2Nyb2xsaW5nU3RhdGVUcmVlKCktPmNvbW1pdChMYXllclJlcHJlc2VudGF0aW9u
OjpQbGF0Zm9ybUxheWVyUmVwcmVzZW50YXRpb24pLnJlbGVhc2UoKTsKIAorICAgIExPR19XSVRI
X1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpj
b21taXRUcmVlU3RhdGUgIiA8PCBzY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQoKSk7CisKICAgICBT
Y3JvbGxpbmdUaHJlYWQ6OmRpc3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1RyZWUsIHVucHJvdGVj
dGVkVHJlZVN0YXRlXSB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdTdGF0ZVRy
ZWU+IHRyZWVTdGF0ZSh1bnByb3RlY3RlZFRyZWVTdGF0ZSk7CiAgICAgICAgIHRocmVhZGVkU2Ny
b2xsaW5nVHJlZS0+Y29tbWl0TmV3VHJlZVN0YXRlKFdURk1vdmUodHJlZVN0YXRlKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmNwcAppbmRleCBjZTU1NWI3MjE5
NWI0MzA1NTJmYjdiMjFjMjdiYzM1MGY0ZWFkN2U5Li4xZGJlNDI5Yjk3ZDg5NTc4ZDdjNDQ2ZThj
ZWRiYTBkYzA4M2FkMDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9SZWdpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Jl
Z2lvbi5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJSZWdpb24uaCIKIAogI2luY2x1
ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgogCiAvLyBBIHJlZ2lvbiBjbGFz
cyBiYXNlZCBvbiB0aGUgcGFwZXIgIlNjYW5saW5lIENvaGVyZW50IFNoYXBlIEFsZ2VicmEiCiAv
LyBieSBKb25hdGhhbiBFLiBTdGVpbmhhcnQgZnJvbSB0aGUgYm9vayAiR3JhcGhpY3MgR2VtcyBJ
SSIuCkBAIC0zMTYsMjAgKzMxNywxOSBAQCBSZWdpb246OlNoYXBlOjpTZWdtZW50SXRlcmF0b3Ig
UmVnaW9uOjpTaGFwZTo6c2VnbWVudHNfZW5kKFNwYW5JdGVyYXRvciBpdCkgY29ucwogICAgIHJl
dHVybiBtX3NlZ21lbnRzLmRhdGEoKSArIHNlZ21lbnRJbmRleDsKIH0KIAotI2lmbmRlZiBOREVC
VUcKLXZvaWQgUmVnaW9uOjpTaGFwZTo6ZHVtcCgpIGNvbnN0Cit2b2lkIFJlZ2lvbjo6U2hhcGU6
OmR1bXAoVGV4dFN0cmVhbSYgc3RyZWFtKSBjb25zdAogewogICAgIGZvciAoYXV0byBzcGFuID0g
c3BhbnNfYmVnaW4oKSwgZW5kID0gc3BhbnNfZW5kKCk7IHNwYW4gIT0gZW5kOyArK3NwYW4pIHsK
LSAgICAgICAgcHJpbnRmKCIlNmQ6ICgiLCBzcGFuLT55KTsKKyAgICAgICAgc3RyZWFtIDw8ICIo
IiA8PCBzcGFuLT55IDw8ICIgIjsKIAogICAgICAgICBmb3IgKGF1dG8gc2VnbWVudCA9IHNlZ21l
bnRzX2JlZ2luKHNwYW4pLCBlbmQgPSBzZWdtZW50c19lbmQoc3Bhbik7IHNlZ21lbnQgIT0gZW5k
OyArK3NlZ21lbnQpCi0gICAgICAgICAgICBwcmludGYoIiVkICIsICpzZWdtZW50KTsKLSAgICAg
ICAgcHJpbnRmKCIpXG4iKTsKKyAgICAgICAgICAgIHN0cmVhbSA8PCAqc2VnbWVudCA8PCAiICI7
CisKKyAgICAgICAgc3RyZWFtIDw8ICIpXG4iOwogICAgIH0KIAotICAgIHByaW50ZigiXG4iKTsK
KyAgICBzdHJlYW0gPDwgIlxuIjsKIH0KLSNlbmRpZgogCiBib29sIFJlZ2lvbjo6U2hhcGU6Omlz
VmFsaWQoKSBjb25zdAogewpAQCAtNTYyLDE0ICs1NjIsMTcgQEAgUmVnaW9uOjpTaGFwZSBSZWdp
b246OlNoYXBlOjpzdWJ0cmFjdFNoYXBlcyhjb25zdCBTaGFwZSYgc2hhcGUxLCBjb25zdCBTaGFw
ZSYgc2gKICAgICByZXR1cm4gc2hhcGVPcGVyYXRpb248U3VidHJhY3RPcGVyYXRpb24+KHNoYXBl
MSwgc2hhcGUyKTsKIH0KIAotI2lmbmRlZiBOREVCVUcKLXZvaWQgUmVnaW9uOjpkdW1wKCkgY29u
c3QKK1N0cmluZyBSZWdpb246OmRlc2NyaXB0aW9uKCkgY29uc3QKIHsKLSAgICBwcmludGYoIkJv
dW5kczogKCVkLCAlZCwgJWQsICVkKVxuIiwKLSAgICAgICAgICAgbV9ib3VuZHMueCgpLCBtX2Jv
dW5kcy55KCksIG1fYm91bmRzLndpZHRoKCksIG1fYm91bmRzLmhlaWdodCgpKTsKLSAgICBtX3No
YXBlLmR1bXAoKTsKKyAgICBUZXh0U3RyZWFtIHN0cmVhbTsKKworICAgIHN0cmVhbS5zdGFydEdy
b3VwKCk7CisgICAgc3RyZWFtIDw8ICJyZWdpb24iOworICAgIHN0cmVhbS5kdW1wUHJvcGVydHko
ImJvdW5kcyIsIG1fYm91bmRzKTsKKyAgICBtX3NoYXBlLmR1bXAoc3RyZWFtKTsKKyAgICAKKyAg
ICByZXR1cm4gc3RyZWFtLnJlbGVhc2UoKTsKIH0KLSNlbmRpZgogCiB2b2lkIFJlZ2lvbjo6dXBk
YXRlQm91bmRzRnJvbVNoYXBlKCkKIHsKQEAgLTYzNCw0ICs2MzcsMTAgQEAgdm9pZCBSZWdpb246
OnRyYW5zbGF0ZShjb25zdCBJbnRTaXplJiBvZmZzZXQpCiAgICAgbV9zaGFwZS50cmFuc2xhdGUo
b2Zmc2V0KTsKIH0KIAorVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiBzdHJlYW0s
IGNvbnN0IFJlZ2lvbiYgcmVnaW9uKQoreworICAgIHN0cmVhbSA8PCByZWdpb24uZGVzY3JpcHRp
b24oKTsKKyAgICByZXR1cm4gc3RyZWFtOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlZ2lvbi5oCmluZGV4IDU0NWU3NjQ3YTYy
MGRmNGEyMmE0ZTgzODRjY2M2OGU5NmZjMzhhYzMuLjNhMmE0YmYwYTdhMmZmM2NkZWI2M2NmOTI1
NzZiMGNmZmM4ZTc0YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1JlZ2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlZ2lv
bi5oCkBAIC0zMSw2ICszMSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgVGV4
dFN0cmVhbTsKKwogY2xhc3MgUmVnaW9uIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IApAQCAtNjIsOSArNjQsNyBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBncmlkU2l6ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc2hhcGUuZ3JpZFNpemUoKTsgfQogCi0jaWZuZGVmIE5ERUJVRwotICAg
IHZvaWQgZHVtcCgpIGNvbnN0OwotI2VuZGlmCisgICAgU3RyaW5nIGRlc2NyaXB0aW9uKCkgY29u
c3Q7CiAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBtX3NoYXBlLmlzVmFsaWQo
KTsgfQogCkBAIC0xMzcsOSArMTM3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBzZXRTZWdt
ZW50cyhjb25zdCBWZWN0b3I8aW50PiYgc2VnbWVudHMpIHsgbV9zZWdtZW50cyA9IHNlZ21lbnRz
OyB9CiAgICAgICAgIHZvaWQgc2V0U3BhbnMoY29uc3QgVmVjdG9yPFNwYW4+JiBzcGFucykgeyBt
X3NwYW5zID0gc3BhbnM7IH0KIAotI2lmbmRlZiBOREVCVUcKLSAgICAgICAgdm9pZCBkdW1wKCkg
Y29uc3Q7Ci0jZW5kaWYKKyAgICAgICAgdm9pZCBkdW1wKFRleHRTdHJlYW0mKSBjb25zdDsKIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIHN0cnVjdCBVbmlvbk9wZXJhdGlvbjsKQEAgLTIwOSw2ICsy
MDcsOCBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlZ2lvbjo6U3BhbiYgYSwgY29u
c3QgUmVnaW9uOjpTcGFuJiBiKQogICAgIHJldHVybiBhLnkgPT0gYi55ICYmIGEuc2VnbWVudElu
ZGV4ID09IGIuc2VnbWVudEluZGV4OwogfQogCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mLCBjb25zdCBSZWdpb24mKTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gUmVnaW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmlu
ZGV4IGVhMzc5NzcwYWQxOWY3Y2Q3ZTg1YzMzYmNmYjJhMmRlMjVmMDI0YjUuLjU1MDdlNjRmYzFj
YzA2NmUwNzQ0Njg1NDA3MjhiYzZhYTQ3YmQyNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcApAQCAtMzQ2MSw3ICszNDYxLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6
dXBkYXRlU2Nyb2xsYmFyc0FmdGVyTGF5b3V0KCkKICAgICAgICAgbV92QmFyLT5zZXRQcm9wb3J0
aW9uKGNsaWVudEhlaWdodCwgbV9zY3JvbGxTaXplLmhlaWdodCgpLnJvdW5kKCkpOwogICAgIH0K
IAotICAgIHVwZGF0ZVNjcm9sbGFibGVBcmVhU2V0KGhhc1Njcm9sbGFibGVIb3Jpem9udGFsT3Zl
cmZsb3coKSB8fCBoYXNTY3JvbGxhYmxlVmVydGljYWxPdmVyZmxvdygpKTsKKyAgICB1cGRhdGVT
Y3JvbGxhYmxlQXJlYVNldCgpOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVTY3JvbGxJ
bmZvQWZ0ZXJMYXlvdXQoKQpAQCAtNjY0NSw3ICs2NjQ1LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6
dXBkYXRlU2Nyb2xsYmFyc0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlKQogICAgICAgICBtX3ZCYXItPnNldEVuYWJsZWQodHJ1ZSk7CiAKICAgICBpZiAoIW1fc2Ny
b2xsRGltZW5zaW9uc0RpcnR5KQotICAgICAgICB1cGRhdGVTY3JvbGxhYmxlQXJlYVNldChoYXNT
Y3JvbGxhYmxlSG9yaXpvbnRhbE92ZXJmbG93KCkgfHwgaGFzU2Nyb2xsYWJsZVZlcnRpY2FsT3Zl
cmZsb3coKSk7CisgICAgICAgIHVwZGF0ZVNjcm9sbGFibGVBcmVhU2V0KCk7CiB9CiAKIHZvaWQg
UmVuZGVyTGF5ZXI6OnNldEFuY2VzdG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2Vu
ZGFudChSZW5kZXJCbG9jayogY29udGFpbmluZ0Jsb2NrKQpAQCAtNjc0NiwxNSArNjc0NiwyNiBA
QCB2b2lkIFJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZQogI2VuZGlmCiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6
OnVwZGF0ZVNjcm9sbGFibGVBcmVhU2V0KGJvb2wgaGFzT3ZlcmZsb3cpCit2b2lkIFJlbmRlckxh
eWVyOjpyZWdpc3Rlck92ZXJmbG93U2Nyb2xsYWJsZUFyZWFzKCkKIHsKKyAgICBpZiAocmVuZGVy
ZXIoKS5oYXNPdmVyZmxvd0NsaXAoKSkKKyAgICAgICAgdXBkYXRlU2Nyb2xsYWJsZUFyZWFTZXQo
KTsKKyAgICAKKyAgICBmb3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hp
bGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCisgICAgICAgIGNoaWxkLT5yZWdpc3Rl
ck92ZXJmbG93U2Nyb2xsYWJsZUFyZWFzKCk7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0
ZVNjcm9sbGFibGVBcmVhU2V0KCkKK3sKKyAgICBib29sIGhhc1Njcm9sbGFibGVPdmVyZmxvdyA9
IGhhc1Njcm9sbGFibGVIb3Jpem9udGFsT3ZlcmZsb3coKSB8fCBoYXNTY3JvbGxhYmxlVmVydGlj
YWxPdmVyZmxvdygpOworCiAgICAgRnJhbWVWaWV3JiBmcmFtZVZpZXcgPSByZW5kZXJlcigpLnZp
ZXcoKS5mcmFtZVZpZXcoKTsKIAogICAgIGJvb2wgaXNWaXNpYmxlVG9IaXRUZXN0ID0gcmVuZGVy
ZXIoKS52aXNpYmxlVG9IaXRUZXN0aW5nKCk7CiAgICAgaWYgKEhUTUxGcmFtZU93bmVyRWxlbWVu
dCogb3duZXIgPSBmcmFtZVZpZXcuZnJhbWUoKS5vd25lckVsZW1lbnQoKSkKICAgICAgICAgaXNW
aXNpYmxlVG9IaXRUZXN0ICY9IG93bmVyLT5yZW5kZXJlcigpICYmIG93bmVyLT5yZW5kZXJlcigp
LT52aXNpYmxlVG9IaXRUZXN0aW5nKCk7CiAKLSAgICBib29sIGlzU2Nyb2xsYWJsZSA9IGhhc092
ZXJmbG93ICYmIGlzVmlzaWJsZVRvSGl0VGVzdDsKKyAgICBib29sIGlzU2Nyb2xsYWJsZSA9IGhh
c1Njcm9sbGFibGVPdmVyZmxvdyAmJiBpc1Zpc2libGVUb0hpdFRlc3Q7CiAgICAgYm9vbCBhZGRl
ZE9yUmVtb3ZlZCA9IGZhbHNlOwogICAgIGlmIChpc1Njcm9sbGFibGUpCiAgICAgICAgIGFkZGVk
T3JSZW1vdmVkID0gZnJhbWVWaWV3LmFkZFNjcm9sbGFibGVBcmVhKHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCBiZDQ4MTIzYzkzNWI5NGQ4MzExMzA2N2U2
YTRjMjMxNGVlODBlZGE4Li5iZGMwYmFmNTA1ZjZmZTA3OGVkMjc5OGQwMGUzZDAyOGU5ZGQ4YzNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtMzA1LDYgKzMwNSw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJPdmVyZmxvd1Nj
cm9sbCgpOwogICAgIHZvaWQgdXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckRvY3VtZW50U2Nyb2xs
KCk7CiAKKyAgICB2b2lkIHJlZ2lzdGVyT3ZlcmZsb3dTY3JvbGxhYmxlQXJlYXMoKTsKKwogICAg
IHZvaWQgcG9zaXRpb25OZXdseUNyZWF0ZWRPdmVyZmxvd0NvbnRyb2xzKCk7CiAKICAgICBib29s
IGhhc0NvbXBvc2l0ZWRMYXllckluRW5jbG9zaW5nUGFnaW5hdGlvbkNoYWluKCkgY29uc3Q7CkBA
IC04OTgsOSArOTAwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUNvbXBvc2l0aW5nTGF5
ZXJzQWZ0ZXJTY3JvbGwoKTsKIAogICAgIEludFNpemUgc2Nyb2xsYmFyT2Zmc2V0KGNvbnN0IFNj
cm9sbGJhciopIGNvbnN0OwotICAgIAotICAgIHZvaWQgdXBkYXRlU2Nyb2xsYWJsZUFyZWFTZXQo
Ym9vbCBoYXNPdmVyZmxvdyk7Ci0gICAgCisKKyAgICB2b2lkIHVwZGF0ZVNjcm9sbGFibGVBcmVh
U2V0KCk7CisKICAgICBib29sIGFsbG93c0N1cnJlbnRTY3JvbGwoKSBjb25zdDsKIAogICAgIHZv
aWQgZGlydHlBbmNlc3RvckNoYWluVmlzaWJsZURlc2NlbmRhbnRTdGF0dXMoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBjNjBjZTI3MGUw
N2Y0Yzk4Y2E0NmUwNjVhMjVkNmRhZjA4YmYyZjg0Li42ZDhjMzU0ZGQxM2M0ODk0YjE4MTI2OTRl
MjhiYjg3YjU3NzY2MTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCkBAIC0xMTg0LDcgKzExODQsNyBAQCB2b2lkIFdlYlBhZ2U6OmdvRm9yd2Fy
ZCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlEKQogICAg
IGlmICghaXRlbSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKCFtX3BlbmRpbmdOYXZp
Z2F0aW9uSUQpOworLy8gICAgQVNTRVJUKCFtX3BlbmRpbmdOYXZpZ2F0aW9uSUQpOwogICAgIG1f
cGVuZGluZ05hdmlnYXRpb25JRCA9IG5hdmlnYXRpb25JRDsKIAogICAgIG1fcGFnZS0+Z29Ub0l0
ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6OkZvcndhcmQpOwpAQCAtMTE5OSw3ICsxMTk5LDcgQEAg
dm9pZCBXZWJQYWdlOjpnb0JhY2sodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50NjRfdCBiYWNr
Rm9yd2FyZEl0ZW1JRCkKICAgICBpZiAoIWl0ZW0pCiAgICAgICAgIHJldHVybjsKIAotICAgIEFT
U0VSVCghbV9wZW5kaW5nTmF2aWdhdGlvbklEKTsKKy8vICAgIEFTU0VSVCghbV9wZW5kaW5nTmF2
aWdhdGlvbklEKTsKICAgICBtX3BlbmRpbmdOYXZpZ2F0aW9uSUQgPSBuYXZpZ2F0aW9uSUQ7CiAK
ICAgICBtX3BhZ2UtPmdvVG9JdGVtKCppdGVtLCBGcmFtZUxvYWRUeXBlOjpCYWNrKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>270922</attachid>
            <date>2016-02-09 05:01:59 -0800</date>
            <delta_ts>2016-02-09 05:01:59 -0800</delta_ts>
            <desc>Test</desc>
            <filename>scroll-animator-events-after-history-navigation.html</filename>
            <type>text/html</type>
            <size>1316</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">PGh0bWw+CjxzdHlsZT4KICAgICNzY3JvbGxtZSB7CiAgICAgICAgd2lkdGg6IDEwMHB4OwogICAg
ICAgIGhlaWdodDogMTAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICB9CiAgICAjc2Ny
b2xsbWUgcCB7CiAgICAgICAgaGVpZ2h0OiAxMDAwcHg7CiAgICB9Cjwvc3R5bGU+CjxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgo8c2NyaXB0Pgog
IGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0VXNlTW9j
a1Njcm9sbEFuaW1hdG9yKHRydWUpOwogIH0KICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAg
ICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFVzZXNQYWdlQ2FjaGVQcmVm
ZXJlbmNlS2V5IiwgMSk7CiAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICB9CiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBh
Z2VzaG93IiwgZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJyNzY3JvbGxtZScpOwogICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygwLCAwKTsKICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKGRpdi5vZmZzZXRMZWZ0ICsgMSwgZGl2Lm9mZnNldFRvcCArIDEpOwog
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMCwgMCk7CiAgICAgIH0KCiAgICAgIGlm
IChzZXNzaW9uU3RvcmFnZS5kaWROYXZpZ2F0ZSkgewogICAgICAgICAgZGVsZXRlIHNlc3Npb25T
dG9yYWdlLmRpZE5hdmlnYXRlOwoKICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgfSBlbHNlIHsKICAgICAg
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7bG9jYXRpb24uaHJlZiA9ICdkYXRhOnRleHQvaHRt
bCw8c2NyaXB0Pmhpc3RvcnkuYmFjaygpOzwvJyArICdzY3JpcHQ+Jzt9LCAwKTsKICAgICAgICAg
IHNlc3Npb25TdG9yYWdlLmRpZE5hdmlnYXRlID0gdHJ1ZTsKICAgICAgfQogIH0sIGZhbHNlKTsK
PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KPGJvZHk+CiAgPGRpdiBpZD0ic2Nyb2xsbWUiPjxwPlRoaXMgaXMgYSBzY3JvbGxh
YmxlIGRpdi48L3A+PC9kaXY+CiAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CjwvYm9keT4KPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271347</attachid>
            <date>2016-02-15 09:48:51 -0800</date>
            <delta_ts>2016-02-16 04:14:59 -0800</delta_ts>
            <desc>Different WIP approach</desc>
            <filename>wip.diff</filename>
            <type>text/plain</type>
            <size>1698</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKaW5kZXggN2EzMDk3My4uMjRhNWJi
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKQEAgLTE3MSw4ICsxNzEs
NiBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJhbWUoRnJhbWUmIGZyYW1lKQogICAgIGlmIChtX2lz
Q29tcG9zaXRlZCAmJiBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnNob3VsZENsZWFyQmFja2luZ1N0
b3JlcygpKQogICAgICAgICBmcmFtZS52aWV3KCktPmNsZWFyQmFja2luZ1N0b3JlcygpOwogCi0g
ICAgZnJhbWUudmlldygpLT5jbGVhclNjcm9sbGFibGVBcmVhcygpOwotCiAgICAgLy8gRGVjb25z
dHJ1Y3QgdGhlIEZyYW1lVHJlZSwgdG8gcmVzdG9yZSBpdCBsYXRlci4KICAgICAvLyBXZSBkbyB0
aGlzIGZvciB0d28gcmVhc29uczoKICAgICAvLyAxIC0gV2UgcmV1c2UgdGhlIG1haW4gZnJhbWUs
IHNvIHdoZW4gaXQgbmF2aWdhdGVzIHRvIGEgbmV3IHBhZ2UgbG9hZCBpdCBuZWVkcyB0byBzdGFy
dCB3aXRoIGEgYmxhbmsgRnJhbWVUcmVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4
IDcwMjYyMzguLjBjNzg0YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTI2Niw2
ICsyNjYsOSBAQCBGcmFtZVZpZXc6On5GcmFtZVZpZXcoKQogewogICAgIGlmIChtX3Bvc3RMYXlv
dXRUYXNrc1RpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fcG9zdExheW91dFRhc2tzVGltZXIu
c3RvcCgpOworCisgICAgaWYgKEZyYW1lVmlldyogcGFyZW50RnJhbWVWaWV3ID0gdGhpcy0+cGFy
ZW50RnJhbWVWaWV3KCkpCisgICAgICAgIHBhcmVudEZyYW1lVmlldy0+cmVtb3ZlU2Nyb2xsYWJs
ZUFyZWEodGhpcyk7CiAgICAgCiAgICAgcmVtb3ZlRnJvbUFYT2JqZWN0Q2FjaGUoKTsKICAgICBy
ZXNldFNjcm9sbGJhcnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQppbmRleCA0YmViYmU0Li40
Njg5NTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCkBAIC01NDEsNiArNTQxLDggQEAgUERG
UGx1Z2luOjpQREZQbHVnaW4oV2ViRnJhbWUqIGZyYW1lKQogCiBQREZQbHVnaW46On5QREZQbHVn
aW4oKQogeworICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fZnJhbWUtPmNvcmVGcmFt
ZSgpLT52aWV3KCkpCisgICAgICAgIGZyYW1lVmlldy0+cmVtb3ZlU2Nyb2xsYWJsZUFyZWEodGhp
cyk7CiB9CiAKIFBsdWdpbkluZm8gUERGUGx1Z2luOjpwbHVnaW5JbmZvKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271424</attachid>
            <date>2016-02-16 04:14:59 -0800</date>
            <delta_ts>2016-02-16 10:49:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-scrollable-areas-page-cache.diff</filename>
            <type>text/plain</type>
            <size>4870</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NzFiNjdlLi42Njk5MjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzIg
QEAKIDIwMTYtMDItMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFJFR1JFU1NJT04ocjE4ODY1OSk6IE5vbiBtYWluIGZyYW1lIHNjcm9sbGFi
bGUgYXJlYXMgZG9uJ3Qgd29yayBmb3IgcGFnZXMgcmVzdG9yZWQgZnJvbSB0aGUgcGFnZSBjYWNo
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNDA0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVh
ZCBvZiBjbGVhcmluZyB0aGUgc2Nyb2xsYWJsZSBhcmVhcyBmcm9tIHRoZSBGcmFtZVZpZXcgd2hl
bgorICAgICAgICB0aGUgcGFnZSBlbnRlcnMgaW4gdGhlIFBhZ2VDYWNoZSwgZW5zdXJlIHRoYXQg
YWxsIGNsYXNzZXMgdGhhdAorICAgICAgICByZWdpc3RlciB0aGVtc2VsdmVzIGFzIHNjcm9sbGFi
bGUgYXJlYXMgaW4gYSBmcmFtZSB2aWV3LCBhbHNvCisgICAgICAgIHVucmVnaXN0ZXIgdGhlbSB3
aGVuIHRoZXkgYXJlIGRlc3RydWN0ZWQuIFRoYXQgd2F5LCBpZiBhbnkKKyAgICAgICAgc2Nyb2xs
YWJsZSBhcmVhIGlzIGRlc3Ryb3llZCB3aGVuIHRoZSBwYWdlIGlzIGNhY2hlZCwgdGhlIGZyYW1l
CisgICAgICAgIHZpZXcgd2lsbCBiZSBub3RpZmllZC4gVGhpcyBpcyB3aGF0IFJlbmRlckxheWVy
IGFuZCBSZW5kZXJMaXN0Qm94CisgICAgICAgIGFscmVhZHkgZG8uCisKKyAgICAgICAgQSBsYXlv
dXQgdGVzdHMgZm9yIHRoaXMgYnVnIHdpbGwgYmUgYWRkZWQgaW4gYSBmb2xsb3cgdXAgcGF0Y2gK
KyAgICAgICAgb25jZSBidWcgIzE1MzQ3OSBpcyBmaXhlZC4KKworICAgICAgICAqIGhpc3Rvcnkv
Q2FjaGVkRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRnJhbWU6OkNhY2hlZEZy
YW1lKTogRG8gbm90IGNsZWFyIHNjcm9sbGFibGUgYXJlYXMKKyAgICAgICAgZnJvbSB0aGUgRnJh
bWVWaWV3LgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6fkZyYW1lVmlldyk6IFJlbW92ZSB0aGUgRnJhbWVWaWV3IGZyb20gdGhlCisg
ICAgICAgIHBhcmVudCdzIHNjcm9sbGFibGUgYXJlYXMgc2V0LgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjpjbGVhclNjcm9sbGFibGVBcmVhcyk6IERlbGV0ZWQuCisgICAgICAgICogcGFn
ZS9GcmFtZVZpZXcuaDoKKworMjAxNi0wMi0xNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CisKICAgICAgICAgQWRkIGEgd2F5IHRvIHRlc3QgU2Nyb2xsQW5pbWF0
b3IKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzQ3
OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCmluZGV4IDdhMzA5NzMuLjI0
YTViYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCkBAIC0xNzEsOCAr
MTcxLDYgQEAgQ2FjaGVkRnJhbWU6OkNhY2hlZEZyYW1lKEZyYW1lJiBmcmFtZSkKICAgICBpZiAo
bV9pc0NvbXBvc2l0ZWQgJiYgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5zaG91bGRDbGVhckJhY2tp
bmdTdG9yZXMoKSkKICAgICAgICAgZnJhbWUudmlldygpLT5jbGVhckJhY2tpbmdTdG9yZXMoKTsK
IAotICAgIGZyYW1lLnZpZXcoKS0+Y2xlYXJTY3JvbGxhYmxlQXJlYXMoKTsKLQogICAgIC8vIERl
Y29uc3RydWN0IHRoZSBGcmFtZVRyZWUsIHRvIHJlc3RvcmUgaXQgbGF0ZXIuCiAgICAgLy8gV2Ug
ZG8gdGhpcyBmb3IgdHdvIHJlYXNvbnM6CiAgICAgLy8gMSAtIFdlIHJldXNlIHRoZSBtYWluIGZy
YW1lLCBzbyB3aGVuIGl0IG5hdmlnYXRlcyB0byBhIG5ldyBwYWdlIGxvYWQgaXQgbmVlZHMgdG8g
c3RhcnQgd2l0aCBhIGJsYW5rIEZyYW1lVHJlZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApp
bmRleCA1ZmU2YzNiLi4xODM3ZjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0y
NjYsNiArMjY2LDkgQEAgRnJhbWVWaWV3Ojp+RnJhbWVWaWV3KCkKIHsKICAgICBpZiAobV9wb3N0
TGF5b3V0VGFza3NUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBtX3Bvc3RMYXlvdXRUYXNrc1Rp
bWVyLnN0b3AoKTsKKworICAgIGlmIChGcmFtZVZpZXcqIHBhcmVudEZyYW1lVmlldyA9IHRoaXMt
PnBhcmVudEZyYW1lVmlldygpKQorICAgICAgICBwYXJlbnRGcmFtZVZpZXctPnJlbW92ZVNjcm9s
bGFibGVBcmVhKHRoaXMpOwogICAgIAogICAgIHJlbW92ZUZyb21BWE9iamVjdENhY2hlKCk7CiAg
ICAgcmVzZXRTY3JvbGxiYXJzKCk7CkBAIC00NTQxLDEyICs0NTQ0LDYgQEAgYm9vbCBGcmFtZVZp
ZXc6OmNvbnRhaW5zU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGVBcmVh
KSBjb25zdAogICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVhcyAmJiBtX3Njcm9sbGFibGVBcmVh
cy0+Y29udGFpbnMoc2Nyb2xsYWJsZUFyZWEpOwogfQogCi12b2lkIEZyYW1lVmlldzo6Y2xlYXJT
Y3JvbGxhYmxlQXJlYXMoKQotewotICAgIGlmIChtX3Njcm9sbGFibGVBcmVhcykKLSAgICAgICAg
bV9zY3JvbGxhYmxlQXJlYXMtPmNsZWFyKCk7Ci19Ci0KIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxh
YmxlQXJlYVNldENoYW5nZWQoKQogewogICAgIGlmIChhdXRvKiBwYWdlID0gZnJhbWUoKS5wYWdl
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDEyNTI2ODIuLjY3Y2YxMjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNDU2LDcgKzQ1Niw2IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCBib29sIHJlbW92ZVNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVhKik7CiAg
ICAgYm9vbCBjb250YWluc1Njcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVhKikgY29uc3Q7CiAg
ICAgY29uc3QgU2Nyb2xsYWJsZUFyZWFTZXQqIHNjcm9sbGFibGVBcmVhcygpIGNvbnN0IHsgcmV0
dXJuIG1fc2Nyb2xsYWJsZUFyZWFzLmdldCgpOyB9Ci0gICAgdm9pZCBjbGVhclNjcm9sbGFibGVB
cmVhcygpOwogCiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNoaWxkKFdpZGdldCYpIG92ZXJyaWRl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggOWEwYmE4ZS4uM2EwOWQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDE2LTAyLTE2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIxODg2NTkpOiBOb24gbWFpbiBmcmFtZSBzY3Jv
bGxhYmxlIGFyZWFzIGRvbid0IHdvcmsgZm9yIHBhZ2VzIHJlc3RvcmVkIGZyb20gdGhlIHBhZ2Ug
Y2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
MzQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAgICAo
V2ViS2l0OjpQREZQbHVnaW46On5QREZQbHVnaW4pOiBSZW1vdmUgdGhlIHBsdWdpbiBmcm9tIHRo
ZQorICAgICAgICBGcmFtZVZpZXcgc2Nyb2xsYWJsZSBhcmVhcyBzZXQuCisKIDIwMTYtMDItMTYg
IENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbTWFjXVtj
bWFrZV0gVW5yZXZpZXdlZCBidWlsZGZpeCBhZnRlciByMTk2NDg4LiBKdXN0IGZvciBmdW4uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0
ZWRQREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0Rl
cHJlY2F0ZWRQREZQbHVnaW4ubW0KaW5kZXggNGJlYmJlNC4uNDY4OTU5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2lu
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRl
ZFBERlBsdWdpbi5tbQpAQCAtNTQxLDYgKzU0MSw4IEBAIFBERlBsdWdpbjo6UERGUGx1Z2luKFdl
YkZyYW1lKiBmcmFtZSkKIAogUERGUGx1Z2luOjp+UERGUGx1Z2luKCkKIHsKKyAgICBpZiAoRnJh
bWVWaWV3KiBmcmFtZVZpZXcgPSBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+dmlldygpKQorICAgICAg
ICBmcmFtZVZpZXctPnJlbW92ZVNjcm9sbGFibGVBcmVhKHRoaXMpOwogfQogCiBQbHVnaW5JbmZv
IFBERlBsdWdpbjo6cGx1Z2luSW5mbygpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>