<?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>88254</bug_id>
          
          <creation_ts>2012-06-04 14:08:38 -0700</creation_ts>
          <short_desc>[BlackBerry] Implement a top-down in-region boundary detection in InRegionScrollableArea</short_desc>
          <delta_ts>2012-06-06 21:36:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit BlackBerry</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antonio Gomes">tonikitoo</reporter>
          <assigned_to name="Antonio Gomes">tonikitoo</assigned_to>
          <cc>anilsson</cc>
    
    <cc>efidler</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>640822</commentid>
    <comment_count>0</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-06-04 14:08:38 -0700</bug_when>
    <thetext>From PRZilla:

That way we could guarantee clipping is 100% correct.

think in a scrollable iframe that has a scrollable div that has another
scrollable iframe :) and we want the visible window rect of the inner one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641873</commentid>
    <comment_count>1</comment_count>
      <attachid>145867</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-06-05 14:02:52 -0700</bug_when>
    <thetext>Created attachment 145867
(committed r119679, r=rbuis) patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642008</commentid>
    <comment_count>2</comment_count>
      <attachid>145867</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-06-05 16:42:31 -0700</bug_when>
    <thetext>Comment on attachment 145867
(committed r119679, r=rbuis) patch

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

Looks good overall, some questions still, would also like to see internal review.

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:4657
&gt; +std::vector&lt;Platform::ScrollViewBase*&gt; WebPagePrivate::inRegionScrollableAreasForPoint(const Platform::IntPoint&amp; point)

It seems from looking at WebPage.cpp you do not even need std:: prefix.But this does not have to be fixed in this patch.

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:4683
&gt; +                    pushBackInRegionScrollable(validReturn, new InRegionScrollableArea(this, layer), this);

Who deletes this InRegionScrollableArea?

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:4715
&gt; +        if (layer &amp;&amp; layer-&gt;renderer()-&gt;isRenderView()) { // #document case

I think the RenderView is always the final layer from end to start. So could it be special cased after the for loop?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642103</commentid>
    <comment_count>3</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-06-05 19:20:10 -0700</bug_when>
    <thetext>
&gt; &gt; Source/WebKit/blackberry/Api/WebPage.cpp:4683
&gt; &gt; +                    pushBackInRegionScrollable(validReturn, new InRegionScrollableArea(this, layer), this);
&gt; 
&gt; Who deletes this InRegionScrollableArea?

The client is deleting it now:

-    virtual void notifyInRegionScrollingStartingPointChanged(std::vector&lt;Platform::ScrollViewBase&gt;) = 0;
+    // Client is responsible for deleting the vector elements.
+    virtual void notifyInRegionScrollingStartingPointChanged(std::vector&lt;Platform::ScrollViewBase*&gt;) = 0;

The internal PR has the libwebview patch that deletes it now.
 
&gt; &gt; Source/WebKit/blackberry/Api/WebPage.cpp:4715
&gt; &gt; +        if (layer &amp;&amp; layer-&gt;renderer()-&gt;isRenderView()) { // #document case
&gt; 
&gt; I think the RenderView is always the final layer from end to start. So could it be special cased after the for loop?

Not actually. See our parentLayer method:

4672 static RenderLayer* parentLayer(RenderLayer* layer)
4673 {
4674     ASSERT(layer);
4675     if (layer-&gt;parent())
4676         return layer-&gt;parent();
4677 
4678     RenderObject* renderer = layer-&gt;renderer();
4679     if (renderer-&gt;document() &amp;&amp; renderer-&gt;document()-&gt;ownerElement() &amp;&amp; renderer-&gt;document()-&gt;ownerElement()-&gt;renderer())
4680         return renderer-&gt;document()-&gt;ownerElement()-&gt;renderer()-&gt;enclosingLayer();
4681 
4682     return 0;
4683 }

in case a iframe/frame (i.e. the renderview case) is found it keeps going up cross the frame tree boundary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642584</commentid>
    <comment_count>4</comment_count>
      <attachid>145867</attachid>
    <who name="Jakob Petsovits">jpetsovits</who>
    <bug_when>2012-06-06 10:25:35 -0700</bug_when>
    <thetext>Comment on attachment 145867
(committed r119679, r=rbuis) patch

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

The meat of the patch looks good to me. Some typo and style suggestions to fix for the final version maybe. Otherwise r+, only that I&apos;m not a reviewer so this review is informal I guess.

&gt;&gt; Source/WebKit/blackberry/Api/WebPage.cpp:4657
&gt;&gt; +std::vector&lt;Platform::ScrollViewBase*&gt; WebPagePrivate::inRegionScrollableAreasForPoint(const Platform::IntPoint&amp; point)
&gt; 
&gt; It seems from looking at WebPage.cpp you do not even need std:: prefix.But this does not have to be fixed in this patch.

I was just thinking, maybe because the InRegionScrollableAreas are now created with &quot;new&quot;, maybe the method name should be changed to createInRegionScrollableAreasForPoint(). Makes it clearer that they need to be deleted later on.

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:4704
&gt; +    // Pos-calculate the visible window rects in reverse hit test order so

Typo: Post-calculate
         ^

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:4707
&gt; +            WebCore::IntPoint(), transformedViewportSize());

I was going to comment on indentation width, but if you don&apos;t use copy-constructor-like syntax then maybe one line is enough:
WebCore::IntRect recursiveClippingRect(WebCore::IntPoint::zero(), transformedViewportSize());

(Also included the ::zero() constructor for IntPoint, which had been used in InRegionScrollableArea before.)

&gt; Source/WebKit/blackberry/ChangeLog:13
&gt; +       window rect from the outtermost scrollable element towards the inner ones, and

Typo: outermost (only one &quot;t&quot;)

&gt; Source/WebKit/blackberry/ChangeLog:18
&gt; +       we can make use of static_cast properly.

Maybe state that platform is now responsible for deleting the ScrollViewBase objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642585</commentid>
    <comment_count>5</comment_count>
      <attachid>145867</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-06-06 10:28:30 -0700</bug_when>
    <thetext>Comment on attachment 145867
(committed r119679, r=rbuis) patch

R+ based on Jakob&apos;s review and Antonio&apos;s answers to my concerns.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145867</attachid>
            <date>2012-06-05 14:02:52 -0700</date>
            <delta_ts>2012-06-06 21:35:14 -0700</delta_ts>
            <desc>(committed r119679, r=rbuis) patch</desc>
            <filename>0001-2012-06-05-Antonio-Gomes-agomes-rim.com.patch</filename>
            <type>text/plain</type>
            <size>14539</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSAwYmJjN2ViNjEwNWRiM2Q0N2ViNmZkY2QzZDEzZmJjOWJlZWM3YzNmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDxhZ29tZXNAcmltLmNvbT4KRGF0ZTog
VHVlLCA1IEp1biAyMDEyIDE2OjMzOjEzIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gMjAxMi0wNi0w
NSAgQW50b25pbyBHb21lcyAgPGFnb21lc0ByaW0uY29tPgoKICAgICAgICBbQmxhY2tCZXJyeV0g
SW1wbGVtZW50IGEgdG9wLWRvd24gaW4tcmVnaW9uIGJvdW5kYXJ5IGRldGVjdGlvbiBpbiBJblJl
Z2lvblNjcm9sbGFibGVBcmVhCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg4MjU0CiAgICAgICAgUFIgIzEyNTIzNwoKICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCiAgICAgICAgUGF0Y2ggaW1wbGVtZW50cyBhIHRvcC1kb3duIHZpc2li
bGVXaW5kb3dSZWN0IGNhbGN1bGF0aW9uIGZvciBhbGwgc2Nyb2xsYWJsZQogICAgICAgIGVsZW1l
bnRzIGhpdC10ZXN0ZWQgYnkgYSBnaXZlbiBwb2ludC4KCiAgICAgICAgVGhlIHJlYXNvbiBvbiB3
aHkgdGhpcyBhcHByb2FjaCBpcyBiZXR0ZXIgaXMgdGhhdCBpdCBjYWxjdWxhdGVzIHRoZSB2aXNp
YmxlCiAgICAgICAgd2luZG93IHJlY3QgZnJvbSB0aGUgb3V0dGVybW9zdCBzY3JvbGxhYmxlIGVs
ZW1lbnQgdG93YXJkcyB0aGUgaW5uZXIgb25lcywgYW5kCiAgICAgICAgdGhhdCBhbGxvd3MgaXQg
dG8gdXNlIHRoZSB2aXNpYmxlIHdpbmRvdyByZWN0IG9mIHRoZSBwcmV2aW91cyBzY3JvbGxhYmxl
IGVsZW1lbnQKICAgICAgICBhcyB0aGUgY2xpcHBpbmcgcmVjdCBmb3IgdGhlIGN1cnJlbnQgb25l
LgoKICAgICAgICBQYXRjaCBhbHNvIGNoYW5nZXMgdGhlIHJldHVybiB2ZWN0b3IgdG8gc3RvcmUg
U2Nyb2xsVmlld0Jhc2UgcG9pbnRlcnMsIHNvCiAgICAgICAgd2UgY2FuIG1ha2UgdXNlIG9mIHN0
YXRpY19jYXN0IHByb3Blcmx5LgoKICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoKICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpwdXNoQmFja0luUmVnaW9uU2Nyb2xsYWJsZSk6CiAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmluUmVnaW9uU2Nyb2xsYWJsZUFy
ZWFzRm9yUG9pbnQpOgogICAgICAgICogQXBpL1dlYlBhZ2VDbGllbnQuaDoKICAgICAgICAqIEFw
aS9XZWJQYWdlX3AuaDoKICAgICAgICAoV2ViUGFnZVByaXZhdGUpOgogICAgICAgICogV2ViS2l0
U3VwcG9ydC9JblJlZ2lvblNjcm9sbGFibGVBcmVhLmNwcDoKICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpJblJlZ2lvblNjcm9sbGFibGVBcmVhOjpJblJlZ2lvblNjcm9sbGFibGVBcmVhKToK
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJblJlZ2lvblNjcm9sbGFibGVBcmVhOjpzZXRW
aXNpYmxlV2luZG93UmVjdCk6CiAgICAgICAgKFdlYktpdCk6CiAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6SW5SZWdpb25TY3JvbGxhYmxlQXJlYTo6dmlzaWJsZVdpbmRvd1JlY3QpOgogICAg
ICAgICogV2ViS2l0U3VwcG9ydC9JblJlZ2lvblNjcm9sbGFibGVBcmVhLmg6CiAgICAgICAgKElu
UmVnaW9uU2Nyb2xsYWJsZUFyZWEpOgotLS0KIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkv
V2ViUGFnZS5jcHAgICAgICAgICAgIHwgICA1OCArKysrKysrKysrKysrKysrLS0tLQogU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlQ2xpZW50LmggICAgICAgfCAgICAzICstCiBT
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oICAgICAgICAgICB8ICAgIDIg
Ky0KIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgIHwg
ICAzMyArKysrKysrKysrKwogLi4uL1dlYktpdFN1cHBvcnQvSW5SZWdpb25TY3JvbGxhYmxlQXJl
YS5jcHAgICAgICAgfCAgIDI2ICsrKysrLS0tLQogLi4uL1dlYktpdFN1cHBvcnQvSW5SZWdpb25T
Y3JvbGxhYmxlQXJlYS5oICAgICAgICAgfCAgICA3ICsrLQogNiBmaWxlcyBjaGFuZ2VkLCAxMDQg
aW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZS5jcHAKaW5kZXggNzQ5YjUyYy4uMzlmNDRmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC00NjQxLDIzICs0NjQxLDIzIEBAIHN0YXRpYyBO
b2RlKiBlbmNsb3NpbmdMYXllck5vZGUoUmVuZGVyTGF5ZXIqIGxheWVyKQogICAgIHJldHVybiAw
OwogfQogCi1zdGF0aWMgdm9pZCBwdXNoQmFja0luUmVnaW9uU2Nyb2xsYWJsZShzdGQ6OnZlY3Rv
cjxQbGF0Zm9ybTo6U2Nyb2xsVmlld0Jhc2U+JiB2ZWN0b3IsIEluUmVnaW9uU2Nyb2xsYWJsZUFy
ZWEgc2Nyb2xsZXIsIFdlYlBhZ2VQcml2YXRlKiB3ZWJQYWdlKQorc3RhdGljIHZvaWQgcHVzaEJh
Y2tJblJlZ2lvblNjcm9sbGFibGUoc3RkOjp2ZWN0b3I8UGxhdGZvcm06OlNjcm9sbFZpZXdCYXNl
Kj4mIHZlY3RvciwgSW5SZWdpb25TY3JvbGxhYmxlQXJlYSogc2Nyb2xsZXIsIFdlYlBhZ2VQcml2
YXRlKiB3ZWJQYWdlKQogewogICAgIEFTU0VSVCh3ZWJQYWdlKTsKICAgICBBU1NFUlQoIXNjcm9s
bGVyLmlzTnVsbCgpKTsKIAotICAgIHNjcm9sbGVyLnNldENhblByb3BhZ2F0ZVNjcm9sbGluZ1Rv
RW5jbG9zaW5nU2Nyb2xsYWJsZSghaXNOb25SZW5kZXJWaWV3Rml4ZWRQb3NpdGlvbmVkQ29udGFp
bmVyKHNjcm9sbGVyLmxheWVyKCkpKTsKKyAgICBzY3JvbGxlci0+c2V0Q2FuUHJvcGFnYXRlU2Ny
b2xsaW5nVG9FbmNsb3NpbmdTY3JvbGxhYmxlKCFpc05vblJlbmRlclZpZXdGaXhlZFBvc2l0aW9u
ZWRDb250YWluZXIoc2Nyb2xsZXItPmxheWVyKCkpKTsKICAgICB2ZWN0b3IucHVzaF9iYWNrKHNj
cm9sbGVyKTsKICAgICBpZiAodmVjdG9yLnNpemUoKSA9PSAxKSB7CiAgICAgICAgIC8vIEZJWE1F
OiBVc2UgUmVuZGVyTGF5ZXI6OnJlbmRlckJveCgpLT5ub2RlKCkgaW5zdGVhZD8KLSAgICAgICAg
d2ViUGFnZS0+bV9pblJlZ2lvblNjcm9sbFN0YXJ0aW5nTm9kZSA9IGVuY2xvc2luZ0xheWVyTm9k
ZShzY3JvbGxlci5sYXllcigpKTsKKyAgICAgICAgd2ViUGFnZS0+bV9pblJlZ2lvblNjcm9sbFN0
YXJ0aW5nTm9kZSA9IGVuY2xvc2luZ0xheWVyTm9kZShzY3JvbGxlci0+bGF5ZXIoKSk7CiAgICAg
fQogfQogCi1zdGQ6OnZlY3RvcjxQbGF0Zm9ybTo6U2Nyb2xsVmlld0Jhc2U+IFdlYlBhZ2VQcml2
YXRlOjppblJlZ2lvblNjcm9sbGFibGVBcmVhc0ZvclBvaW50KGNvbnN0IFBsYXRmb3JtOjpJbnRQ
b2ludCYgcG9pbnQpCitzdGQ6OnZlY3RvcjxQbGF0Zm9ybTo6U2Nyb2xsVmlld0Jhc2UqPiBXZWJQ
YWdlUHJpdmF0ZTo6aW5SZWdpb25TY3JvbGxhYmxlQXJlYXNGb3JQb2ludChjb25zdCBQbGF0Zm9y
bTo6SW50UG9pbnQmIHBvaW50KQogewotICAgIHN0ZDo6dmVjdG9yPFBsYXRmb3JtOjpTY3JvbGxW
aWV3QmFzZT4gdmFsaWRSZXR1cm47Ci0gICAgc3RkOjp2ZWN0b3I8UGxhdGZvcm06OlNjcm9sbFZp
ZXdCYXNlPiBlbXB0eVJldHVybjsKKyAgICBzdGQ6OnZlY3RvcjxQbGF0Zm9ybTo6U2Nyb2xsVmll
d0Jhc2UqPiB2YWxpZFJldHVybjsKKyAgICBzdGQ6OnZlY3RvcjxQbGF0Zm9ybTo6U2Nyb2xsVmll
d0Jhc2UqPiBlbXB0eVJldHVybjsKIAogICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0ID0gbV9tYWlu
RnJhbWUtPmV2ZW50SGFuZGxlcigpLT5oaXRUZXN0UmVzdWx0QXRQb2ludChtYXBGcm9tVmlld3Bv
cnRUb0NvbnRlbnRzKHBvaW50KSwgZmFsc2UgLyphbGxvd1NoYWRvd0NvbnRlbnQqLyk7CiAgICAg
Tm9kZSogbm9kZSA9IHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKTsKQEAgLTQ2ODAsMjYgKzQ2
ODAsNjQgQEAgc3RkOjp2ZWN0b3I8UGxhdGZvcm06OlNjcm9sbFZpZXdCYXNlPiBXZWJQYWdlUHJp
dmF0ZTo6aW5SZWdpb25TY3JvbGxhYmxlQXJlYXNGb3IKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGVtcHR5UmV0dXJuOwogCiAgICAgICAgICAgICAgICAgaWYgKGNhblNjcm9sbElubmVyRnJh
bWUodmlldy0+ZnJhbWUoKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgcHVzaEJhY2tJblJlZ2lv
blNjcm9sbGFibGUodmFsaWRSZXR1cm4sIEluUmVnaW9uU2Nyb2xsYWJsZUFyZWEodGhpcywgbGF5
ZXIpLCB0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaEJhY2tJblJlZ2lvblNjcm9sbGFi
bGUodmFsaWRSZXR1cm4sIG5ldyBJblJlZ2lvblNjcm9sbGFibGVBcmVhKHRoaXMsIGxheWVyKSwg
dGhpcyk7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmIChjYW5TY3JvbGxSZW5kZXJCb3gobGF5
ZXItPnJlbmRlckJveCgpKSkgewotICAgICAgICAgICAgcHVzaEJhY2tJblJlZ2lvblNjcm9sbGFi
bGUodmFsaWRSZXR1cm4sIEluUmVnaW9uU2Nyb2xsYWJsZUFyZWEodGhpcywgbGF5ZXIpLCB0aGlz
KTsKKyAgICAgICAgICAgIHB1c2hCYWNrSW5SZWdpb25TY3JvbGxhYmxlKHZhbGlkUmV0dXJuLCBu
ZXcgSW5SZWdpb25TY3JvbGxhYmxlQXJlYSh0aGlzLCBsYXllciksIHRoaXMpOwogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBJZiB3ZSBydW4gaW50byBhIGZp
eCBwb3NpdGlvbmVkIGxheWVyLCBzZXQgdGhlIGxhc3Qgc2Nyb2xsYWJsZSBpbi1yZWdpb24gb2Jq
ZWN0CiAgICAgICAgIC8vIGFzIG5vdCBhYmxlIHRvIHByb3BhZ2F0ZSBzY3JvbGwgdG8gaXRzIHBh
cmVudCBzY3JvbGxhYmxlLgogICAgICAgICBpZiAoaXNOb25SZW5kZXJWaWV3Rml4ZWRQb3NpdGlv
bmVkQ29udGFpbmVyKGxheWVyKSAmJiB2YWxpZFJldHVybi5zaXplKCkpIHsKLSAgICAgICAgICAg
IFBsYXRmb3JtOjpTY3JvbGxWaWV3QmFzZSYgZW5kID0gdmFsaWRSZXR1cm4uYmFjaygpOwotICAg
ICAgICAgICAgZW5kLnNldENhblByb3BhZ2F0ZVNjcm9sbGluZ1RvRW5jbG9zaW5nU2Nyb2xsYWJs
ZShmYWxzZSk7CisgICAgICAgICAgICBQbGF0Zm9ybTo6U2Nyb2xsVmlld0Jhc2UqIGVuZCA9IHZh
bGlkUmV0dXJuLmJhY2soKTsKKyAgICAgICAgICAgIGVuZC0+c2V0Q2FuUHJvcGFnYXRlU2Nyb2xs
aW5nVG9FbmNsb3NpbmdTY3JvbGxhYmxlKGZhbHNlKTsKICAgICAgICAgfQogCiAgICAgfSB3aGls
ZSAobGF5ZXIgPSBwYXJlbnRMYXllcihsYXllcikpOworCiAgICAgaWYgKHZhbGlkUmV0dXJuLmVt
cHR5KCkpCiAgICAgICAgIHJldHVybiBlbXB0eVJldHVybjsKIAorICAgIC8vIFBvcy1jYWxjdWxh
dGUgdGhlIHZpc2libGUgd2luZG93IHJlY3RzIGluIHJldmVyc2UgaGl0IHRlc3Qgb3JkZXIgc28K
KyAgICAvLyB3ZSBhY2NvdW50IGZvciBhbGwgYW5kIGFueSBjbGlwcGluZyByZWN0cy4KKyAgICBX
ZWJDb3JlOjpJbnRSZWN0IHJlY3Vyc2l2ZUNsaXBwaW5nUmVjdCA9IFdlYkNvcmU6OkludFJlY3Qo
CisgICAgICAgICAgICBXZWJDb3JlOjpJbnRQb2ludCgpLCB0cmFuc2Zvcm1lZFZpZXdwb3J0U2l6
ZSgpKTsKKworICAgIHN0ZDo6dmVjdG9yPFBsYXRmb3JtOjpTY3JvbGxWaWV3QmFzZSo+OjpyZXZl
cnNlX2l0ZXJhdG9yIHJlbmQgPSB2YWxpZFJldHVybi5yZW5kKCk7CisgICAgZm9yIChzdGQ6OnZl
Y3RvcjxQbGF0Zm9ybTo6U2Nyb2xsVmlld0Jhc2UqPjo6cmV2ZXJzZV9pdGVyYXRvciByaXQgPSB2
YWxpZFJldHVybi5yYmVnaW4oKTsgcml0ICE9IHJlbmQ7ICsrcml0KSB7CisKKyAgICAgICAgSW5S
ZWdpb25TY3JvbGxhYmxlQXJlYSogY3VyciA9IHN0YXRpY19jYXN0PEluUmVnaW9uU2Nyb2xsYWJs
ZUFyZWEqPigqcml0KTsKKyAgICAgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gY3Vyci0+bGF5ZXIo
KTsKKworICAgICAgICBpZiAobGF5ZXIgJiYgbGF5ZXItPnJlbmRlcmVyKCktPmlzUmVuZGVyVmll
dygpKSB7IC8vICNkb2N1bWVudCBjYXNlCisgICAgICAgICAgICBGcmFtZVZpZXcqIHZpZXcgPSB0
b1JlbmRlclZpZXcobGF5ZXItPnJlbmRlcmVyKCkpLT5mcmFtZVZpZXcoKTsKKyAgICAgICAgICAg
IEFTU0VSVCh2aWV3KTsKKyAgICAgICAgICAgIEFTU0VSVChjYW5TY3JvbGxJbm5lckZyYW1lKHZp
ZXctPmZyYW1lKCkpKTsKKworICAgICAgICAgICAgV2ViQ29yZTo6SW50UmVjdCBmcmFtZVdpbmRv
d1JlY3QgPSBtYXBUb1RyYW5zZm9ybWVkKGdldFJlY3Vyc2l2ZVZpc2libGVXaW5kb3dSZWN0KHZp
ZXcpKTsKKyAgICAgICAgICAgIGZyYW1lV2luZG93UmVjdC5pbnRlcnNlY3QocmVjdXJzaXZlQ2xp
cHBpbmdSZWN0KTsKKyAgICAgICAgICAgIGN1cnItPnNldFZpc2libGVXaW5kb3dSZWN0KGZyYW1l
V2luZG93UmVjdCk7CisgICAgICAgICAgICByZWN1cnNpdmVDbGlwcGluZ1JlY3QgPSBmcmFtZVdp
bmRvd1JlY3Q7CisKKyAgICAgICAgfSBlbHNlIHsgLy8gUmVuZGVyQm94LWJhc2VkIGVsZW1lbnRz
IGNhc2UgKHNjcm9sbGFibGUgYm94ZXMgKGRpdidzLCBwJ3MsIHRleHRhcmVhJ3MsIGV0YykpLgor
CisgICAgICAgICAgICBSZW5kZXJCb3gqIGJveCA9IGxheWVyLT5yZW5kZXJCb3goKTsKKyAgICAg
ICAgICAgIEFTU0VSVChib3gpOworICAgICAgICAgICAgQVNTRVJUKGNhblNjcm9sbFJlbmRlckJv
eChib3gpKTsKKworICAgICAgICAgICAgV2ViQ29yZTo6SW50UmVjdCB2aXNpYmxlV2luZG93UmVj
dCA9IGJveC0+YWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCk7CisgICAgICAgICAgICB2aXNp
YmxlV2luZG93UmVjdCA9IGJveC0+ZnJhbWUoKS0+dmlldygpLT5jb250ZW50c1RvV2luZG93KHZp
c2libGVXaW5kb3dSZWN0KTsKKyAgICAgICAgICAgIHZpc2libGVXaW5kb3dSZWN0ID0gbWFwVG9U
cmFuc2Zvcm1lZCh2aXNpYmxlV2luZG93UmVjdCk7CisgICAgICAgICAgICB2aXNpYmxlV2luZG93
UmVjdC5pbnRlcnNlY3QocmVjdXJzaXZlQ2xpcHBpbmdSZWN0KTsKKworICAgICAgICAgICAgY3Vy
ci0+c2V0VmlzaWJsZVdpbmRvd1JlY3QodmlzaWJsZVdpbmRvd1JlY3QpOworICAgICAgICAgICAg
cmVjdXJzaXZlQ2xpcHBpbmdSZWN0ID0gdmlzaWJsZVdpbmRvd1JlY3Q7CisgICAgICAgIH0KKyAg
ICB9CisKICAgICByZXR1cm4gdmFsaWRSZXR1cm47CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9XZWJQYWdlQ2xpZW50LmgKaW5kZXggNmRmZDE3NC4uMTMyZTZkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlQ2xpZW50LmgKQEAgLTk5LDcgKzk5
LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeVJ1bkxheW91dFRlc3RzRmlu
aXNoZWQoKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5SW5SZWdpb25TY3JvbGxpbmdT
dGFydGluZ1BvaW50Q2hhbmdlZChzdGQ6OnZlY3RvcjxQbGF0Zm9ybTo6U2Nyb2xsVmlld0Jhc2U+
KSA9IDA7CisgICAgLy8gQ2xpZW50IGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyB0aGUgdmVj
dG9yIGVsZW1lbnRzLgorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlJblJlZ2lvblNjcm9sbGluZ1N0
YXJ0aW5nUG9pbnRDaGFuZ2VkKHN0ZDo6dmVjdG9yPFBsYXRmb3JtOjpTY3JvbGxWaWV3QmFzZSo+
KSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RG9jdW1lbnRPbkxvYWQoKSA9IDA7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmggYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCmluZGV4IDZlMWUwMDYuLjcw
NjNmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9w
LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaApAQCAtMTM4
LDcgKzEzOCw3IEBAIHB1YmxpYzoKICAgICBib29sIHNjcm9sbEJ5KGludCBkZWx0YVgsIGludCBk
ZWx0YVksIGJvb2wgc2Nyb2xsTWFpbkZyYW1lID0gdHJ1ZSk7CiAKICAgICB2b2lkIGVucXVldWVS
ZW5kZXJpbmdPZkNsaXBwZWRDb250ZW50T2ZTY3JvbGxhYmxlTm9kZUFmdGVySW5SZWdpb25TY3Jv
bGxpbmcoV2ViQ29yZTo6Tm9kZSopOwotICAgIHN0ZDo6dmVjdG9yPFBsYXRmb3JtOjpTY3JvbGxW
aWV3QmFzZT4gaW5SZWdpb25TY3JvbGxhYmxlQXJlYXNGb3JQb2ludChjb25zdCBQbGF0Zm9ybTo6
SW50UG9pbnQmKTsKKyAgICBzdGQ6OnZlY3RvcjxQbGF0Zm9ybTo6U2Nyb2xsVmlld0Jhc2UqPiBp
blJlZ2lvblNjcm9sbGFibGVBcmVhc0ZvclBvaW50KGNvbnN0IFBsYXRmb3JtOjpJbnRQb2ludCYp
OwogICAgIHZvaWQgbm90aWZ5SW5SZWdpb25TY3JvbGxTdGF0dXNDaGFuZ2VkKGJvb2wgc3RhdHVz
KTsKICAgICB2b2lkIHNldFNjcm9sbE9yaWdpblBvaW50KGNvbnN0IFBsYXRmb3JtOjpJbnRQb2lu
dCYpOwogICAgIHZvaWQgc2V0SGFzSW5SZWdpb25TY3JvbGxhYmxlQXJlYXMoYm9vbCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCBlNzY2OWRiLi45OGUzMGM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMi0wNi0wNSAgQW50b25p
byBHb21lcyAgPGFnb21lc0ByaW0uY29tPgorCisgICAgICAgW0JsYWNrQmVycnldIEltcGxlbWVu
dCBhIHRvcC1kb3duIGluLXJlZ2lvbiBib3VuZGFyeSBkZXRlY3Rpb24gaW4gSW5SZWdpb25TY3Jv
bGxhYmxlQXJlYQorICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04ODI1NAorICAgICAgIFBSICMxMjUyMzcKKworICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgUGF0Y2ggaW1wbGVtZW50cyBhIHRvcC1kb3duIHZpc2libGVXaW5k
b3dSZWN0IGNhbGN1bGF0aW9uIGZvciBhbGwgc2Nyb2xsYWJsZQorICAgICAgIGVsZW1lbnRzIGhp
dC10ZXN0ZWQgYnkgYSBnaXZlbiBwb2ludC4KKworICAgICAgIFRoZSByZWFzb24gb24gd2h5IHRo
aXMgYXBwcm9hY2ggaXMgYmV0dGVyIGlzIHRoYXQgaXQgY2FsY3VsYXRlcyB0aGUgdmlzaWJsZQor
ICAgICAgIHdpbmRvdyByZWN0IGZyb20gdGhlIG91dHRlcm1vc3Qgc2Nyb2xsYWJsZSBlbGVtZW50
IHRvd2FyZHMgdGhlIGlubmVyIG9uZXMsIGFuZAorICAgICAgIHRoYXQgYWxsb3dzIGl0IHRvIHVz
ZSB0aGUgdmlzaWJsZSB3aW5kb3cgcmVjdCBvZiB0aGUgcHJldmlvdXMgc2Nyb2xsYWJsZSBlbGVt
ZW50CisgICAgICAgYXMgdGhlIGNsaXBwaW5nIHJlY3QgZm9yIHRoZSBjdXJyZW50IG9uZS4KKwor
ICAgICAgIFBhdGNoIGFsc28gY2hhbmdlcyB0aGUgcmV0dXJuIHZlY3RvciB0byBzdG9yZSBTY3Jv
bGxWaWV3QmFzZSBwb2ludGVycywgc28KKyAgICAgICB3ZSBjYW4gbWFrZSB1c2Ugb2Ygc3RhdGlj
X2Nhc3QgcHJvcGVybHkuCisKKyAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoKKyAgICAgICAoQmxh
Y2tCZXJyeTo6V2ViS2l0OjpwdXNoQmFja0luUmVnaW9uU2Nyb2xsYWJsZSk6CisgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmluUmVnaW9uU2Nyb2xsYWJsZUFyZWFz
Rm9yUG9pbnQpOgorICAgICAgICogQXBpL1dlYlBhZ2VDbGllbnQuaDoKKyAgICAgICAqIEFwaS9X
ZWJQYWdlX3AuaDoKKyAgICAgICAoV2ViUGFnZVByaXZhdGUpOgorICAgICAgICogV2ViS2l0U3Vw
cG9ydC9JblJlZ2lvblNjcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpJblJlZ2lvblNjcm9sbGFibGVBcmVhOjpJblJlZ2lvblNjcm9sbGFibGVBcmVhKToKKyAg
ICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJblJlZ2lvblNjcm9sbGFibGVBcmVhOjpzZXRWaXNp
YmxlV2luZG93UmVjdCk6CisgICAgICAgKFdlYktpdCk6CisgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6SW5SZWdpb25TY3JvbGxhYmxlQXJlYTo6dmlzaWJsZVdpbmRvd1JlY3QpOgorICAgICAg
ICogV2ViS2l0U3VwcG9ydC9JblJlZ2lvblNjcm9sbGFibGVBcmVhLmg6CisgICAgICAgKEluUmVn
aW9uU2Nyb2xsYWJsZUFyZWEpOgorCiAyMDEyLTA2LTA1ICBLb25yYWQgUGlhc2NpayAgPGtwaWFz
Y2lrQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldV2ViIEluc3BlY3RvciBoaWdobGln
aHQgaXMgc2xvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1
cHBvcnQvSW5SZWdpb25TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9JblJlZ2lvblNjcm9sbGFibGVBcmVhLmNwcAppbmRleCBmYzEwZjg5
Li5mNThjYWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9JblJlZ2lvblNjcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViS2l0U3VwcG9ydC9JblJlZ2lvblNjcm9sbGFibGVBcmVhLmNwcApAQCAtMzUsMTIg
KzM1LDE0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogSW5SZWdpb25TY3JvbGxhYmxlQXJlYTo6SW5S
ZWdpb25TY3JvbGxhYmxlQXJlYSgpCiAgICAgOiBtX3dlYlBhZ2UoMCkKICAgICAsIG1fbGF5ZXIo
MCkKKyAgICAsIG1faGFzV2luZG93VmlzaWJsZVJlY3RDYWxjdWxhdGVkKGZhbHNlKQogewogfQog
CiBJblJlZ2lvblNjcm9sbGFibGVBcmVhOjpJblJlZ2lvblNjcm9sbGFibGVBcmVhKFdlYlBhZ2VQ
cml2YXRlKiB3ZWJQYWdlLCBSZW5kZXJMYXllciogbGF5ZXIpCiAgICAgOiBtX3dlYlBhZ2Uod2Vi
UGFnZSkKICAgICAsIG1fbGF5ZXIobGF5ZXIpCisgICAgLCBtX2hhc1dpbmRvd1Zpc2libGVSZWN0
Q2FsY3VsYXRlZChmYWxzZSkKIHsKICAgICBBU1NFUlQod2ViUGFnZSk7CiAgICAgQVNTRVJUKGxh
eWVyKTsKQEAgLTYzLDEwICs2NSw2IEBAIEluUmVnaW9uU2Nyb2xsYWJsZUFyZWE6OkluUmVnaW9u
U2Nyb2xsYWJsZUFyZWEoV2ViUGFnZVByaXZhdGUqIHdlYlBhZ2UsIFJlbmRlckxhCiAgICAgICAg
IG1fY29udGVudHNTaXplID0gbV93ZWJQYWdlLT5tYXBUb1RyYW5zZm9ybWVkKHZpZXctPmNvbnRl
bnRzU2l6ZSgpKTsKICAgICAgICAgbV92aWV3cG9ydFNpemUgPSBtX3dlYlBhZ2UtPm1hcFRvVHJh
bnNmb3JtZWQodmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KGZhbHNlIC8qaW5jbHVkZVNjcm9sbGJh
cnMqLykpLnNpemUoKTsKIAotICAgICAgICBtX3Zpc2libGVXaW5kb3dSZWN0ID0gbV93ZWJQYWdl
LT5tYXBUb1RyYW5zZm9ybWVkKG1fd2ViUGFnZS0+Z2V0UmVjdXJzaXZlVmlzaWJsZVdpbmRvd1Jl
Y3QodmlldykpOwotICAgICAgICBJbnRSZWN0IHRyYW5zZm9ybWVkV2luZG93UmVjdCA9IEludFJl
Y3QoSW50UG9pbnQ6Onplcm8oKSwgbV93ZWJQYWdlLT50cmFuc2Zvcm1lZFZpZXdwb3J0U2l6ZSgp
KTsKLSAgICAgICAgbV92aXNpYmxlV2luZG93UmVjdC5pbnRlcnNlY3QodHJhbnNmb3JtZWRXaW5k
b3dSZWN0KTsKLQogICAgICAgICBtX3Njcm9sbHNIb3Jpem9udGFsbHkgPSB2aWV3LT5jb250ZW50
c1dpZHRoKCkgPiB2aWV3LT52aXNpYmxlV2lkdGgoKTsKICAgICAgICAgbV9zY3JvbGxzVmVydGlj
YWxseSA9IHZpZXctPmNvbnRlbnRzSGVpZ2h0KCkgPiB2aWV3LT52aXNpYmxlSGVpZ2h0KCk7CiAK
QEAgLTgyLDE0ICs4MCw2IEBAIEluUmVnaW9uU2Nyb2xsYWJsZUFyZWE6OkluUmVnaW9uU2Nyb2xs
YWJsZUFyZWEoV2ViUGFnZVByaXZhdGUqIHdlYlBhZ2UsIFJlbmRlckxhCiAgICAgICAgIG1fY29u
dGVudHNTaXplID0gbV93ZWJQYWdlLT5tYXBUb1RyYW5zZm9ybWVkKHNjcm9sbGFibGVBcmVhLT5j
b250ZW50c1NpemUoKSk7CiAgICAgICAgIG1fdmlld3BvcnRTaXplID0gbV93ZWJQYWdlLT5tYXBU
b1RyYW5zZm9ybWVkKHNjcm9sbGFibGVBcmVhLT52aXNpYmxlQ29udGVudFJlY3QoZmFsc2UgLypp
bmNsdWRlU2Nyb2xsYmFycyovKSkuc2l6ZSgpOwogCi0gICAgICAgIG1fdmlzaWJsZVdpbmRvd1Jl
Y3QgPSBtX2xheWVyLT5yZW5kZXJlcigpLT5hYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3QoKTsK
LSAgICAgICAgbV92aXNpYmxlV2luZG93UmVjdCA9IG1fbGF5ZXItPnJlbmRlcmVyKCktPmZyYW1l
KCktPnZpZXcoKS0+Y29udGVudHNUb1dpbmRvdyhtX3Zpc2libGVXaW5kb3dSZWN0KTsKLSAgICAg
ICAgSW50UmVjdCB2aXNpYmxlRnJhbWVXaW5kb3dSZWN0ID0gbV93ZWJQYWdlLT5nZXRSZWN1cnNp
dmVWaXNpYmxlV2luZG93UmVjdChtX2xheWVyLT5yZW5kZXJlcigpLT5mcmFtZSgpLT52aWV3KCkp
OwotICAgICAgICBtX3Zpc2libGVXaW5kb3dSZWN0LmludGVyc2VjdCh2aXNpYmxlRnJhbWVXaW5k
b3dSZWN0KTsKLSAgICAgICAgbV92aXNpYmxlV2luZG93UmVjdCA9IG1fd2ViUGFnZS0+bWFwVG9U
cmFuc2Zvcm1lZChtX3Zpc2libGVXaW5kb3dSZWN0KTsKLSAgICAgICAgSW50UmVjdCB0cmFuc2Zv
cm1lZFdpbmRvd1JlY3QgPSBJbnRSZWN0KEludFBvaW50Ojp6ZXJvKCksIG1fd2ViUGFnZS0+dHJh
bnNmb3JtZWRWaWV3cG9ydFNpemUoKSk7Ci0gICAgICAgIG1fdmlzaWJsZVdpbmRvd1JlY3QuaW50
ZXJzZWN0KHRyYW5zZm9ybWVkV2luZG93UmVjdCk7Ci0KICAgICAgICAgbV9zY3JvbGxzSG9yaXpv
bnRhbGx5ID0gYm94LT5zY3JvbGxXaWR0aCgpICE9IGJveC0+Y2xpZW50V2lkdGgoKSAmJiBib3gt
PnNjcm9sbHNPdmVyZmxvd1goKTsKICAgICAgICAgbV9zY3JvbGxzVmVydGljYWxseSA9IGJveC0+
c2Nyb2xsSGVpZ2h0KCkgIT0gYm94LT5jbGllbnRIZWlnaHQoKSAmJiBib3gtPnNjcm9sbHNPdmVy
Zmxvd1koKTsKIApAQCAtOTcsNiArODcsMTggQEAgSW5SZWdpb25TY3JvbGxhYmxlQXJlYTo6SW5S
ZWdpb25TY3JvbGxhYmxlQXJlYShXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZSwgUmVuZGVyTGEKICAg
ICB9CiB9CiAKK3ZvaWQgSW5SZWdpb25TY3JvbGxhYmxlQXJlYTo6c2V0VmlzaWJsZVdpbmRvd1Jl
Y3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKK3sKKyAgICBtX2hhc1dpbmRvd1Zpc2li
bGVSZWN0Q2FsY3VsYXRlZCA9IHRydWU7CisgICAgbV92aXNpYmxlV2luZG93UmVjdCA9IHJlY3Q7
Cit9CisKK1BsYXRmb3JtOjpJbnRSZWN0IEluUmVnaW9uU2Nyb2xsYWJsZUFyZWE6OnZpc2libGVX
aW5kb3dSZWN0KCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9oYXNXaW5kb3dWaXNpYmxlUmVjdENh
bGN1bGF0ZWQpOworICAgIHJldHVybiBtX3Zpc2libGVXaW5kb3dSZWN0OworfQorCiBSZW5kZXJM
YXllciogSW5SZWdpb25TY3JvbGxhYmxlQXJlYTo6bGF5ZXIoKSBjb25zdAogewogICAgIEFTU0VS
VCghbV9pc051bGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvSW5SZWdpb25TY3JvbGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYktpdFN1cHBvcnQvSW5SZWdpb25TY3JvbGxhYmxlQXJlYS5oCmluZGV4IGYxNjU1NjIu
LjFlODQ4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBw
b3J0L0luUmVnaW9uU2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9JblJlZ2lvblNjcm9sbGFibGVBcmVhLmgKQEAgLTE5LDcgKzE5LDgg
QEAKICNpZm5kZWYgSW5SZWdpb25TY3JvbGxhYmxlQXJlYV9oCiAjZGVmaW5lIEluUmVnaW9uU2Ny
b2xsYWJsZUFyZWFfaAogCi0jaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtUHJpbWl0aXZlcy5o
PgorI2luY2x1ZGUgIkludFJlY3QuaCIKKwogI2luY2x1ZGUgPGludGVyYWN0aW9uL1Njcm9sbFZp
ZXdCYXNlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM3LDExICszOCwxNSBAQCBwdWJs
aWM6CiAgICAgSW5SZWdpb25TY3JvbGxhYmxlQXJlYSgpOwogICAgIEluUmVnaW9uU2Nyb2xsYWJs
ZUFyZWEoV2ViUGFnZVByaXZhdGUqLCBXZWJDb3JlOjpSZW5kZXJMYXllciopOwogCisgICAgdm9p
ZCBzZXRWaXNpYmxlV2luZG93UmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CisgICAgUGxh
dGZvcm06OkludFJlY3QgdmlzaWJsZVdpbmRvd1JlY3QoKSBjb25zdDsKKwogICAgIFdlYkNvcmU6
OlJlbmRlckxheWVyKiBsYXllcigpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIFdlYlBhZ2VQcml2
YXRlKiBtX3dlYlBhZ2U7CiAgICAgV2ViQ29yZTo6UmVuZGVyTGF5ZXIqIG1fbGF5ZXI7CisgICAg
Ym9vbCBtX2hhc1dpbmRvd1Zpc2libGVSZWN0Q2FsY3VsYXRlZDsKIH07CiAKIH0KLS0gCjEuNy41
LjQKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>