<?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>34153</bug_id>
          
          <creation_ts>2010-01-25 20:37:08 -0800</creation_ts>
          <short_desc>Crash in WebCore while processing the fast scrolling code path.</short_desc>
          <delta_ts>2010-01-28 08:52:48 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</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="Ananta Iyengar">ananta</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>evan</cc>
    
    <cc>hausmann</cc>
    
    <cc>hyatt</cc>
    
    <cc>jamesr</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>184479</commentid>
    <comment_count>0</comment_count>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2010-01-25 20:37:08 -0800</bug_when>
    <thetext>This crash appears to be a regression of this changelist http://trac.webkit.org/changeset/53693 for bug
https://bugs.webkit.org/show_bug.cgi?id=33150. The crash has been consistently occurring in Chromium reliability
test runs.

The callstack can be found here.

http://build.chromium.org/buildbot/waterfall/builders/Chromium%20Reliability/builds/7979/steps/reliability:%20partial%20result%20of%20current%20build/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184494</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-25 21:29:17 -0800</bug_when>
    <thetext>Happy to revert the change if we can confirm it&apos;s that revision.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184513</commentid>
    <comment_count>2</comment_count>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2010-01-25 23:42:13 -0800</bug_when>
    <thetext>I looked at the reliability test runs from Friday. The crashes started occurring from the time we bumped up the DEPS to pull in the corresponding webkit revision. The only change in the revision of webkit which could cause this appears to be this change. We can try reverting it and see if this is indeed the case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184531</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-01-26 01:57:53 -0800</bug_when>
    <thetext>This would be my fault. I am getting Chronium to see what&apos;s wrong, I hope I can compile it quickly on Linux.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184564</commentid>
    <comment_count>4</comment_count>
      <attachid>47403</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-01-26 04:49:53 -0800</bug_when>
    <thetext>Created attachment 47403
Unregister the RenderObject in corner cases

This patch should fix the problem for the websites listed.

The problem is deriving from the change of https://bugs.webkit.org/show_bug.cgi?id=33150
RenderWidget::destroy() is special and do not call ::destroy() on the parent. The code for cleaning the state must be copied in that class (as said in the comments of RenderWidget::destroy()).

It&apos;s great you have those tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184835</commentid>
    <comment_count>5</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-01-26 17:04:23 -0800</bug_when>
    <thetext>Could http://trac.webkit.org/changeset/53797 be reverted until this crash is resolved?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184843</commentid>
    <comment_count>6</comment_count>
    <who name="Evan Martin">evan</who>
    <bug_when>2010-01-26 17:08:50 -0800</bug_when>
    <thetext>Typo in changelog:
+        The code to unregister the object with fixed positionning must</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184849</commentid>
    <comment_count>7</comment_count>
      <attachid>47403</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-01-26 17:17:58 -0800</bug_when>
    <thetext>Comment on attachment 47403
Unregister the RenderObject in corner cases

&gt; diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog

&gt; +        The code to unregister the object with fixed positionning must
&gt; +        be copied to RenderWidget.

&quot;positionning&quot;

&gt; +        Unregistering must also be done when a render widget get a 
&gt; +        transformation.

Not just a RenderWidget, but any RenderObject. &quot;gets&quot;, not &quot;get&quot;.

&gt; diff --git a/WebCore/rendering/RenderWidget.cpp b/WebCore/rendering/RenderWidget.cpp

&gt;      animation()-&gt;cancelAnimations(this);
&gt;  
&gt; -    if (RenderView* v = view())
&gt; +    if (RenderView* v = view()) {
&gt;          v-&gt;removeWidget(this);
&gt; +        FrameView* frameView = view()-&gt;frameView();
&gt; +        if (frameView)
&gt; +            frameView-&gt;unregisterFixedPositionedObject(this);
&gt; +    }

Why doesn&apos;t this have the &quot;m_style-&gt;position() == FixedPosition&quot; check that RenderObject does? Is one of them wrong?

This also needs a layout test. r- for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184852</commentid>
    <comment_count>8</comment_count>
      <attachid>47472</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-01-26 17:20:01 -0800</bug_when>
    <thetext>Created attachment 47472
Revert 53797 until we land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184974</commentid>
    <comment_count>9</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-01-27 00:04:36 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt;      animation()-&gt;cancelAnimations(this);
&gt; &gt;  
&gt; &gt; -    if (RenderView* v = view())
&gt; &gt; +    if (RenderView* v = view()) {
&gt; &gt;          v-&gt;removeWidget(this);
&gt; &gt; +        FrameView* frameView = view()-&gt;frameView();
&gt; &gt; +        if (frameView)
&gt; &gt; +            frameView-&gt;unregisterFixedPositionedObject(this);
&gt; &gt; +    }
&gt; 
&gt; Why doesn&apos;t this have the &quot;m_style-&gt;position() == FixedPosition&quot; check that
&gt; RenderObject does? Is one of them wrong?

Yep, in the hurry I forgot the &quot;m_style-&gt;position() == FixedPosition&quot; for this one.

(In reply to comment #8)
&gt; Created an attachment (id=47472) [details]
&gt; Revert 53797 until we land

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185513</commentid>
    <comment_count>10</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-01-28 08:52:48 -0800</bug_when>
    <thetext>Closing the task:
The original patch has been reverted. The upgraded version is on https://bugs.webkit.org/show_bug.cgi?id=33150 for review.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47403</attachid>
            <date>2010-01-26 04:49:53 -0800</date>
            <delta_ts>2010-01-26 17:17:57 -0800</delta_ts>
            <desc>Unregister the RenderObject in corner cases</desc>
            <filename>unregister_render_widget.fix</filename>
            <type>text/plain</type>
            <size>3430</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NmI0MWUzYS4uODI4OTU4MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wMS0yNiAgQmVuamFtaW4gUG91
bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyYXNoIGluIFdlYkNvcmUgd2hpbGUgcHJvY2Vz
c2luZyB0aGUgZmFzdCBzY3JvbGxpbmcgY29kZSBwYXRoLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQxNTMKKworICAgICAgICBSZW5kZXJXaWRnZXQ6
OmRlc3Ryb3koKSBkb2VzIG5vdCBjYWxsIHRoZSBwYXJlbnQgaW1wbGVtZW50YXRpb24uCisgICAg
ICAgIFRoZSBjb2RlIHRvIHVucmVnaXN0ZXIgdGhlIG9iamVjdCB3aXRoIGZpeGVkIHBvc2l0aW9u
bmluZyBtdXN0CisgICAgICAgIGJlIGNvcGllZCB0byBSZW5kZXJXaWRnZXQuCisKKyAgICAgICAg
VW5yZWdpc3RlcmluZyBtdXN0IGFsc28gYmUgZG9uZSB3aGVuIGEgcmVuZGVyIHdpZGdldCBnZXQg
YSAKKyAgICAgICAgdHJhbnNmb3JtYXRpb24uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c3R5bGVXaWxsQ2hh
bmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlcldpZGdldDo6ZGVzdHJveSk6CisKIDIwMTAtMDEtMjYgIEdhcnJldCBLZWxs
eSAgPGdka0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCBlODJhNzdlLi40NTBlMWI1IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTE2NjksOCArMTY2OSw5IEBAIHZvaWQgUmVu
ZGVyT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJl
bmRlclN0eWxlKiBuZXdTCiAgICAgICAgIH0KIAogICAgICAgICBib29sIG5ld1N0eWxlSGFzVHJh
bnNmb3JtID0gbmV3U3R5bGUgJiYgKG5ld1N0eWxlLT5oYXNUcmFuc2Zvcm1SZWxhdGVkUHJvcGVy
dHkoKSk7CisgICAgICAgIGJvb2wgb2xkU3R5bGVIYXNUcmFuc2Zvcm0gPSBtX3N0eWxlICYmICht
X3N0eWxlLT5oYXNUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydHkoKSk7CisgICAgICAgIGJvb2wgbmV3
U3R5bGVIYXNGaXhlZFBvc2l0aW9uID0gbmV3U3R5bGUgJiYgKG5ld1N0eWxlLT5wb3NpdGlvbigp
ID09IEZpeGVkUG9zaXRpb24pOwogICAgICAgICBpZiAoIW5ld1N0eWxlSGFzVHJhbnNmb3JtKSB7
Ci0gICAgICAgICAgICBib29sIG5ld1N0eWxlSGFzRml4ZWRQb3NpdGlvbiA9IG5ld1N0eWxlICYm
IChuZXdTdHlsZS0+cG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uKTsKICAgICAgICAgICAgIGJv
b2wgb2xkU3R5bGVIYXNGaXhlZFBvc2l0aW9uID0gbV9zdHlsZSAmJiAobV9zdHlsZS0+cG9zaXRp
b24oKSA9PSBGaXhlZFBvc2l0aW9uKTsKIAogICAgICAgICAgICAgaWYgKG9sZFN0eWxlSGFzRml4
ZWRQb3NpdGlvbiAhPSBuZXdTdHlsZUhhc0ZpeGVkUG9zaXRpb24pIHsKQEAgLTE2ODAsMTAgKzE2
ODEsMTIgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVu
Y2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1MKICAgICAgICAgICAgICAgICAgICAgZnJh
bWVWaWV3LT51bnJlZ2lzdGVyRml4ZWRQb3NpdGlvbmVkT2JqZWN0KHRoaXMpOwogICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyBpZiBwcmV2aW91c2x5IGhhZCBhIGZpeCBw
b3NpdGlvbiwgYnV0IGhhZCBhIHRyYW5zZm9ybSwgd2hpY2ggaGFzIGJlZW4gcmVtb3ZlZAotICAg
ICAgICAgICAgICAgIGJvb2wgb2xkU3R5bGVIYXNUcmFuc2Zvcm0gPSBtX3N0eWxlICYmIChtX3N0
eWxlLT5oYXNUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydHkoKSk7CiAgICAgICAgICAgICAgICAgaWYg
KG9sZFN0eWxlSGFzVHJhbnNmb3JtICYmIG5ld1N0eWxlSGFzRml4ZWRQb3NpdGlvbikKICAgICAg
ICAgICAgICAgICAgICAgZnJhbWVWaWV3LT5yZWdpc3RlckZpeGVkUG9zaXRpb25lZE9iamVjdCh0
aGlzKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmICghb2xkU3R5bGVIYXNUcmFu
c2Zvcm0gJiYgbmV3U3R5bGVIYXNGaXhlZFBvc2l0aW9uKSB7CisgICAgICAgICAgICAvLyBpZiBh
IHRyYW5zZm9ybWF0aW9uIGlzIGFkZGVkIG9uIGEgZml4ZWQgb2JqZWN0CisgICAgICAgICAgICBm
cmFtZVZpZXctPnVucmVnaXN0ZXJGaXhlZFBvc2l0aW9uZWRPYmplY3QodGhpcyk7CiAgICAgICAg
IH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQu
Y3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAppbmRleCA0NzYzMzA5Li5k
ZDYzYWM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCisr
KyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKQEAgLTI1LDYgKzI1LDcgQEAK
IAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJBbmltYXRpb25Db250cm9s
bGVyLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIK
QEAgLTExMSw4ICsxMTIsMTIgQEAgdm9pZCBSZW5kZXJXaWRnZXQ6OmRlc3Ryb3koKQogCiAgICAg
YW5pbWF0aW9uKCktPmNhbmNlbEFuaW1hdGlvbnModGhpcyk7CiAKLSAgICBpZiAoUmVuZGVyVmll
dyogdiA9IHZpZXcoKSkKKyAgICBpZiAoUmVuZGVyVmlldyogdiA9IHZpZXcoKSkgewogICAgICAg
ICB2LT5yZW1vdmVXaWRnZXQodGhpcyk7CisgICAgICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0g
dmlldygpLT5mcmFtZVZpZXcoKTsKKyAgICAgICAgaWYgKGZyYW1lVmlldykKKyAgICAgICAgICAg
IGZyYW1lVmlldy0+dW5yZWdpc3RlckZpeGVkUG9zaXRpb25lZE9iamVjdCh0aGlzKTsKKyAgICB9
CiAKICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgewogICAg
ICAgICBkb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPmNoaWxkcmVuQ2hhbmdlZCh0aGlzLT5w
YXJlbnQoKSk7Cg==
</data>
<flag name="review"
          id="29832"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47472</attachid>
            <date>2010-01-26 17:20:01 -0800</date>
            <delta_ts>2010-01-26 17:21:37 -0800</delta_ts>
            <desc>Revert 53797 until we land </desc>
            <filename>a</filename>
            <type>text/plain</type>
            <size>11331</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1Mzg3NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMDEtMjYgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmV2ZXJ0IDUzNzk3IGFzIGl0IHNlZW1zIHRvIGJlIGNhdXNpbmcgY3Jhc2hlcy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MTUzCisKKyAgICAgICAg
KiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVzZVNs
b3dSZXBhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVzZVNsb3dSZXBhaW50
c0lmTm90T3ZlcmxhcHBlZCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6
OnNjcm9sbENvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJPYmplY3Q6OnN0eWxlV2lsbENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmpl
Y3Q6OmRlc3Ryb3kpOgorCiAyMDEwLTAxLTI2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkZWxlIFBldGVyc29uLgpJbmRleDog
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAJKHJldmlzaW9uIDUzODc1KQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTc4NCwxMiArNzg0LDEyIEBAIFN0cmluZyBGcmFtZVZpZXc6
Om1lZGlhVHlwZSgpIGNvbnN0CiAKIGJvb2wgRnJhbWVWaWV3Ojp1c2VTbG93UmVwYWludHMoKSBj
b25zdAogewotICAgIHJldHVybiBtX3VzZVNsb3dSZXBhaW50cyB8fCBtX3Nsb3dSZXBhaW50T2Jq
ZWN0Q291bnQgPiAwIHx8IChwbGF0Zm9ybVdpZGdldCgpICYmICFtX2ZpeGVkUG9zaXRpb25lZE9i
amVjdHMuaXNFbXB0eSgpKSB8fCBtX2lzT3ZlcmxhcHBlZCB8fCAhbV9jb250ZW50SXNPcGFxdWU7
CisgICAgcmV0dXJuIG1fdXNlU2xvd1JlcGFpbnRzIHx8IG1fc2xvd1JlcGFpbnRPYmplY3RDb3Vu
dCA+IDAgfHwgbV9pc092ZXJsYXBwZWQgfHwgIW1fY29udGVudElzT3BhcXVlOwogfQogCiBib29s
IEZyYW1lVmlldzo6dXNlU2xvd1JlcGFpbnRzSWZOb3RPdmVybGFwcGVkKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gbV91c2VTbG93UmVwYWludHMgfHwgbV9zbG93UmVwYWludE9iamVjdENvdW50ID4g
MCB8fCAocGxhdGZvcm1XaWRnZXQoKSAmJiAhbV9maXhlZFBvc2l0aW9uZWRPYmplY3RzLmlzRW1w
dHkoKSkgfHwgIW1fY29udGVudElzT3BhcXVlOworICAgIHJldHVybiBtX3VzZVNsb3dSZXBhaW50
cyB8fCBtX3Nsb3dSZXBhaW50T2JqZWN0Q291bnQgPiAwIHx8ICFtX2NvbnRlbnRJc09wYXF1ZTsK
IH0KIAogdm9pZCBGcmFtZVZpZXc6OnNldFVzZVNsb3dSZXBhaW50cygpCkBAIC04MTMsNzMgKzgx
Myw2IEBAIHZvaWQgRnJhbWVWaWV3OjpyZW1vdmVTbG93UmVwYWludE9iamVjdCgKICAgICAgICAg
c2V0Q2FuQmxpdE9uU2Nyb2xsKCF1c2VTbG93UmVwYWludHMoKSk7CiB9CiAKLQotdm9pZCBGcmFt
ZVZpZXc6OnJlZ2lzdGVyRml4ZWRQb3NpdGlvbmVkT2JqZWN0KFJlbmRlck9iamVjdCogb2JqZWN0
KQotewotICAgIGlmIChwbGF0Zm9ybVdpZGdldCgpICYmIG1fZml4ZWRQb3NpdGlvbmVkT2JqZWN0
cy5pc0VtcHR5KCkpCi0gICAgICAgIHNldENhbkJsaXRPblNjcm9sbChmYWxzZSk7Ci0gICAgbV9m
aXhlZFBvc2l0aW9uZWRPYmplY3RzLmFkZChvYmplY3QpOwotfQotCi12b2lkIEZyYW1lVmlldzo6
dW5yZWdpc3RlckZpeGVkUG9zaXRpb25lZE9iamVjdChSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsK
LSAgICBib29sIHdhc0VtcHR5ID0gbV9maXhlZFBvc2l0aW9uZWRPYmplY3RzLmlzRW1wdHkoKTsK
LSAgICBtX2ZpeGVkUG9zaXRpb25lZE9iamVjdHMucmVtb3ZlKG9iamVjdCk7Ci0gICAgaWYgKHBs
YXRmb3JtV2lkZ2V0KCkgJiYgIXdhc0VtcHR5ICYmIG1fZml4ZWRQb3NpdGlvbmVkT2JqZWN0cy5p
c0VtcHR5KCkpCi0gICAgICAgIHNldENhbkJsaXRPblNjcm9sbCghdXNlU2xvd1JlcGFpbnRzKCkp
OwotfQotCi12b2lkIEZyYW1lVmlldzo6c2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRT
aXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRS
ZWN0JiBjbGlwUmVjdCkKLXsKLSAgICBjb25zdCBzaXplX3QgZml4ZWRPYmplY3ROdW1iZXJUaHJl
c2hvbGQgPSA1OwotCi0gICAgaWYgKG1fZml4ZWRQb3NpdGlvbmVkT2JqZWN0cy5pc0VtcHR5KCkp
Ci0gICAgICAgIGhvc3RXaW5kb3coKS0+c2Nyb2xsKHNjcm9sbERlbHRhLCByZWN0VG9TY3JvbGws
IGNsaXBSZWN0KTsKLSAgICBlbHNlIHsKLSAgICAgICAgVmVjdG9yPFJlbmRlck9iamVjdCosIGZp
eGVkT2JqZWN0TnVtYmVyVGhyZXNob2xkPiBmaXhlZE9iamVjdHNJblZpZXdwb3J0OwotCi0gICAg
ICAgIGJvb2wgdXBkYXRlSW52YWxpZGF0ZWRTdWJSZWN0ID0gdHJ1ZTsKLSAgICAgICAgLy8gR2V0
IGEgbGlzdCBvZiBmaXhlZCBvYmplY3RzIHRoYXQgYXJlIG5vdCBpbiB0cmFuc2Zvcm1hdGlvbnMK
LSAgICAgICAgSGFzaFNldDxSZW5kZXJPYmplY3QqPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9m
aXhlZFBvc2l0aW9uZWRPYmplY3RzLmVuZCgpOwotICAgICAgICBIYXNoU2V0PFJlbmRlck9iamVj
dCo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fZml4ZWRQb3NpdGlvbmVkT2JqZWN0cy5iZWdpbigp
OwotICAgICAgICBmb3IgKDsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgICAgICBSZW5kZXJP
YmplY3QqIG9iaiA9ICppdDsKLSAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGUgcGFyZW50IGxh
eWVyIGhhcyBub3QgYmVlbiB0cmFuc2Zvcm1lZAotICAgICAgICAgICAgaWYgKG9iai0+Y29udGFp
bmluZ0Jsb2NrKCkgPT0gb2JqLT52aWV3KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoZml4ZWRP
YmplY3RzSW5WaWV3cG9ydC5zaXplKCkgPj0gZml4ZWRPYmplY3ROdW1iZXJUaHJlc2hvbGQpIHsK
LSAgICAgICAgICAgICAgICAgICAgdXBkYXRlSW52YWxpZGF0ZWRTdWJSZWN0ID0gZmFsc2U7Ci0g
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBmaXhlZE9iamVjdHNJblZpZXdwb3J0LmFwcGVuZChvYmopOwotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0KLSAgICAgICAgLy8gc2Nyb2xsIHRoZSBjb250ZW50Ci0gICAgICAgIGlmICh1
cGRhdGVJbnZhbGlkYXRlZFN1YlJlY3QpIHsKLSAgICAgICAgICAgIC8vIDEpIHNjcm9sbAotICAg
ICAgICAgICAgaG9zdFdpbmRvdygpLT5zY3JvbGwoc2Nyb2xsRGVsdGEsIHJlY3RUb1Njcm9sbCwg
Y2xpcFJlY3QpOwotCi0gICAgICAgICAgICAvLyAyKSB1cGRhdGUgdGhlIGFyZWEgb2YgZml4ZWQg
b2JqZXRzIHRoYXQgaGFzIGJlZW4gaW52YWxpZGF0ZWQKLSAgICAgICAgICAgIHNpemVfdCBmaXhP
YmplY3RzQ291bnQgPSBmaXhlZE9iamVjdHNJblZpZXdwb3J0LnNpemUoKTsKLSAgICAgICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZml4T2JqZWN0c0NvdW50OyArK2kpIHsKLSAgICAgICAg
ICAgICAgICBJbnRSZWN0IHRvcExldmVsUmVjdDsKLSAgICAgICAgICAgICAgICBJbnRSZWN0IHVw
ZGF0ZVJlY3QgPSBmaXhlZE9iamVjdHNJblZpZXdwb3J0W2ldLT5wYWludGluZ1Jvb3RSZWN0KHRv
cExldmVsUmVjdCk7Ci0gICAgICAgICAgICAgICAgdXBkYXRlUmVjdC5tb3ZlKC1zY3JvbGxYKCks
IC1zY3JvbGxZKCkpOwotICAgICAgICAgICAgICAgIEludFJlY3Qgc2Nyb2xsZWRSZWN0ID0gdXBk
YXRlUmVjdDsKLSAgICAgICAgICAgICAgICBzY3JvbGxlZFJlY3QubW92ZShzY3JvbGxEZWx0YSk7
Ci0gICAgICAgICAgICAgICAgdXBkYXRlUmVjdC51bml0ZShzY3JvbGxlZFJlY3QpOwotICAgICAg
ICAgICAgICAgIHVwZGF0ZVJlY3QuaW50ZXJzZWN0KHJlY3RUb1Njcm9sbCk7Ci0gICAgICAgICAg
ICAgICAgaG9zdFdpbmRvdygpLT5yZXBhaW50KHVwZGF0ZVJlY3QsIHRydWUsIGZhbHNlLCB0cnVl
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIHRoZSBu
dW1iZXIgb2YgZml4ZWQgb2JqZWN0cyBleGNlZWQgdGhlIHRocmVzaG9sZCwgc28gd2UgcmVwYWlu
dCBldmVyeXRoaW5nLgotICAgICAgICAgICAgSW50UmVjdCB1cGRhdGVSZWN0ID0gY2xpcFJlY3Q7
Ci0gICAgICAgICAgICB1cGRhdGVSZWN0LmludGVyc2VjdChyZWN0VG9TY3JvbGwpOwotICAgICAg
ICAgICAgaG9zdFdpbmRvdygpLT5yZXBhaW50KHVwZGF0ZVJlY3QsIHRydWUsIGZhbHNlLCB0cnVl
KTsKLSAgICAgICAgfQotICAgIH0KLX0KLQogdm9pZCBGcmFtZVZpZXc6OnNldElzT3ZlcmxhcHBl
ZChib29sIGlzT3ZlcmxhcHBlZCkKIHsKICAgICBpZiAoaXNPdmVybGFwcGVkID09IG1faXNPdmVy
bGFwcGVkKQpJbmRleDogV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkocmV2aXNpb24gNTM4NzUpCisrKyBXZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0NSwxMSArMTQ1LDYgQEAgcHVibGljOgog
ICAgIHZvaWQgYWRkU2xvd1JlcGFpbnRPYmplY3QoKTsKICAgICB2b2lkIHJlbW92ZVNsb3dSZXBh
aW50T2JqZWN0KCk7CiAKLSAgICAvLyBNZXRob2RzIHRvIG1hbmFnZSB0aGUgb2JqZWN0cyB0aGF0
IGFyZSBmaXhlZAotICAgIC8vIGluIHRoZSB2aWV3IHdoZW4gc2Nyb2xsaW5nCi0gICAgdm9pZCBy
ZWdpc3RlckZpeGVkUG9zaXRpb25lZE9iamVjdChSZW5kZXJPYmplY3QqIG9iamVjdCk7Ci0gICAg
dm9pZCB1bnJlZ2lzdGVyRml4ZWRQb3NpdGlvbmVkT2JqZWN0KFJlbmRlck9iamVjdCogb2JqZWN0
KTsKLQogICAgIHZvaWQgYmVnaW5EZWZlcnJlZFJlcGFpbnRzKCk7CiAgICAgdm9pZCBlbmREZWZl
cnJlZFJlcGFpbnRzKCk7CiAgICAgdm9pZCBjaGVja1N0b3BEZWxheWluZ0RlZmVycmVkUmVwYWlu
dHMoKTsKQEAgLTIwNCw5ICsxOTksNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0ZyYW1lVmlld1Nj
cm9sbENvcm5lcihSZW5kZXJTY3JvbGxiYXJQYXJ0KiBzY3JvbGxDb3JuZXIpIGNvbnN0IHsgcmV0
dXJuIG1fc2Nyb2xsQ29ybmVyID09IHNjcm9sbENvcm5lcjsgfQogICAgIHZvaWQgaW52YWxpZGF0
ZVNjcm9sbENvcm5lcigpOwogCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lkIHNjcm9sbENv
bnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3Qm
IHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpOwotCiBwcml2YXRlOgogICAg
IEZyYW1lVmlldyhGcmFtZSopOwogCkBAIC0yNzYsNyArMjY4LDYgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faXNPdmVybGFwcGVkOwogICAgIGJvb2wgbV9jb250ZW50SXNPcGFxdWU7CiAgICAgdW5z
aWduZWQgbV9zbG93UmVwYWludE9iamVjdENvdW50OwotICAgIEhhc2hTZXQ8UmVuZGVyT2JqZWN0
Kj4gbV9maXhlZFBvc2l0aW9uZWRPYmplY3RzOwogCiAgICAgaW50IG1fYm9yZGVyWCwgbV9ib3Jk
ZXJZOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAJKHJldmlzaW9uIDUzODc1KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEzLDcg
KzUxMyw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHMoY29uc3QgSW4KIAogICAg
IGlmIChjYW5CbGl0T25TY3JvbGwoKSkgeyAvLyBUaGUgbWFpbiBmcmFtZSBjYW4ganVzdCBibGl0
IHRoZSBXZWJWaWV3IHdpbmRvdwogICAgICAgIC8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIGJsaXQg
c3ViZnJhbWVzIHdpdGhvdXQgYmxpdHRpbmcgb3ZlcmxhcHBpbmcgY29udGVudAotICAgICAgIHNj
cm9sbENvbnRlbnRzRmFzdFBhdGgoLXNjcm9sbERlbHRhLCBzY3JvbGxWaWV3UmVjdCwgY2xpcFJl
Y3QpOworICAgICAgIGhvc3RXaW5kb3coKS0+c2Nyb2xsKC1zY3JvbGxEZWx0YSwgc2Nyb2xsVmll
d1JlY3QsIGNsaXBSZWN0KTsKICAgICB9IGVsc2UgeyAKICAgICAgICAvLyBXZSBuZWVkIHRvIGdv
IGFoZWFkIGFuZCByZXBhaW50IHRoZSBlbnRpcmUgYmFja2luZyBzdG9yZS4gIERvIGl0IG5vdyBi
ZWZvcmUgbW92aW5nIHRoZQogICAgICAgIC8vIHdpbmRvd2VkIHBsdWdpbnMuCkBAIC01MjgsMTEg
KzUyOCw2IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHMoY29uc3QgSW4KICAgICBo
b3N0V2luZG93KCktPnBhaW50KCk7CiB9CiAKLXZvaWQgU2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVu
dHNGYXN0UGF0aChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVj
dFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKLXsKLSAgICBob3N0V2luZG93KCkt
PnNjcm9sbChzY3JvbGxEZWx0YSwgcmVjdFRvU2Nyb2xsLCBjbGlwUmVjdCk7Ci19Ci0KIEludFBv
aW50IFNjcm9sbFZpZXc6OndpbmRvd1RvQ29udGVudHMoY29uc3QgSW50UG9pbnQmIHdpbmRvd1Bv
aW50KSBjb25zdAogewogICAgIEludFBvaW50IHZpZXdQb2ludCA9IGNvbnZlcnRGcm9tQ29udGFp
bmluZ1dpbmRvdyh3aW5kb3dQb2ludCk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZp
ZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAkocmV2aXNp
b24gNTM4NzUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAkod29ya2luZyBjb3B5
KQpAQCAtMjQ5LDkgKzI0OSw2IEBAIHByb3RlY3RlZDoKICAgICBJbnRSZWN0IHNjcm9sbENvcm5l
clJlY3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU2Nyb2xsQ29ybmVyKCk7CiAg
ICAgdmlydHVhbCB2b2lkIHBhaW50U2Nyb2xsQ29ybmVyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0
IEludFJlY3QmIGNvcm5lclJlY3QpOwotCi0gICAgLy8gU2Nyb2xsIHRoZSBjb250ZW50IGJ5IGJs
aXR0aW5nIHRoZSBwaXhlbHMKLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsQ29udGVudHNGYXN0UGF0
aChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xs
LCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCk7CiAgICAgCiBwcml2YXRlOgogICAgIFJlZlB0cjxT
Y3JvbGxiYXI+IG1faG9yaXpvbnRhbFNjcm9sbGJhcjsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcAkocmV2aXNpb24gNTM4NzUpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjQ3LDggKzE2NDcsMTAgQEAgdm9pZCBSZW5k
ZXJPYmplY3Q6OnN0eWxlV2lsbENoYW5nZShTdHlsZQogICAgIH0gZWxzZQogICAgICAgICBzX2Fm
ZmVjdHNQYXJlbnRCbG9jayA9IGZhbHNlOwogCi0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB2
aWV3KCktPmZyYW1lVmlldygpOwotICAgIGlmIChmcmFtZVZpZXcpIHsKKyAgICBpZiAodmlldygp
LT5mcmFtZVZpZXcoKSkgeworICAgICAgICAvLyBGSVhNRTogQSBiZXR0ZXIgc29sdXRpb24gd291
bGQgYmUgdG8gb25seSBpbnZhbGlkYXRlIHRoZSBmaXhlZCByZWdpb25zIHdoZW4gc2Nyb2xsaW5n
LiAgSXQncyBvdmVya2lsbCB0bworICAgICAgICAvLyBwcmV2ZW50IHRoZSBlbnRpcmUgdmlldyBm
cm9tIGJsaXR0aW5nIG9uIGEgc2Nyb2xsLgorCiAgICAgICAgIGJvb2wgc2hvdWxkQmxpdE9uRml4
ZWRCYWNrZ3JvdW5kSW1hZ2UgPSBmYWxzZTsKICNpZiBFTkFCTEUoRkFTVF9NT0JJTEVfU0NST0xM
SU5HKQogICAgICAgICAvLyBPbiBsb3ctcG93ZXJlZC9tb2JpbGUgZGV2aWNlcywgcHJldmVudGlu
ZyBibGl0dGluZyBvbiBhIHNjcm9sbCBjYW4gY2F1c2Ugbm90aWNlYWJsZSBkZWxheXMKQEAgLTE2
NTgsMzIgKzE2NjAsMTUgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnN0eWxlV2lsbENoYW5nZShTdHls
ZQogICAgICAgICBzaG91bGRCbGl0T25GaXhlZEJhY2tncm91bmRJbWFnZSA9IHRydWU7CiAjZW5k
aWYKIAotICAgICAgICBib29sIG5ld1N0eWxlU2xvd1Njcm9sbCA9IG5ld1N0eWxlICYmICFzaG91
bGRCbGl0T25GaXhlZEJhY2tncm91bmRJbWFnZSAmJiBuZXdTdHlsZS0+aGFzRml4ZWRCYWNrZ3Jv
dW5kSW1hZ2UoKTsKLSAgICAgICAgYm9vbCBvbGRTdHlsZVNsb3dTY3JvbGwgPSBtX3N0eWxlICYm
ICFzaG91bGRCbGl0T25GaXhlZEJhY2tncm91bmRJbWFnZSAmJiBtX3N0eWxlLT5oYXNGaXhlZEJh
Y2tncm91bmRJbWFnZSgpOwotCisgICAgICAgIGJvb2wgbmV3U3R5bGVTbG93U2Nyb2xsID0gbmV3
U3R5bGUgJiYgKG5ld1N0eWxlLT5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKCFzaG91bGRCbGl0T25G
aXhlZEJhY2tncm91bmRJbWFnZSAmJiBuZXdTdHlsZS0+aGFzRml4ZWRCYWNrZ3JvdW5kSW1hZ2Uo
KSkpOworICAgICAgICBib29sIG9sZFN0eWxlU2xvd1Njcm9sbCA9IG1fc3R5bGUgJiYgKG1fc3R5
bGUtPnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8fCAoIXNob3VsZEJsaXRPbkZpeGVkQmFja2dyb3VuZElt
YWdlICYmIG1fc3R5bGUtPmhhc0ZpeGVkQmFja2dyb3VuZEltYWdlKCkpKTsKICAgICAgICAgaWYg
KG9sZFN0eWxlU2xvd1Njcm9sbCAhPSBuZXdTdHlsZVNsb3dTY3JvbGwpIHsKICAgICAgICAgICAg
IGlmIChvbGRTdHlsZVNsb3dTY3JvbGwpCi0gICAgICAgICAgICAgICAgZnJhbWVWaWV3LT5yZW1v
dmVTbG93UmVwYWludE9iamVjdCgpOworICAgICAgICAgICAgICAgIHZpZXcoKS0+ZnJhbWVWaWV3
KCktPnJlbW92ZVNsb3dSZXBhaW50T2JqZWN0KCk7CiAgICAgICAgICAgICBpZiAobmV3U3R5bGVT
bG93U2Nyb2xsKQotICAgICAgICAgICAgICAgIGZyYW1lVmlldy0+YWRkU2xvd1JlcGFpbnRPYmpl
Y3QoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgbmV3U3R5bGVIYXNUcmFuc2Zvcm0gPSBu
ZXdTdHlsZSAmJiAobmV3U3R5bGUtPmhhc1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0eSgpKTsKLSAg
ICAgICAgaWYgKCFuZXdTdHlsZUhhc1RyYW5zZm9ybSkgewotICAgICAgICAgICAgYm9vbCBuZXdT
dHlsZUhhc0ZpeGVkUG9zaXRpb24gPSBuZXdTdHlsZSAmJiAobmV3U3R5bGUtPnBvc2l0aW9uKCkg
PT0gRml4ZWRQb3NpdGlvbik7Ci0gICAgICAgICAgICBib29sIG9sZFN0eWxlSGFzRml4ZWRQb3Np
dGlvbiA9IG1fc3R5bGUgJiYgKG1fc3R5bGUtPnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbik7
Ci0KLSAgICAgICAgICAgIGlmIChvbGRTdHlsZUhhc0ZpeGVkUG9zaXRpb24gIT0gbmV3U3R5bGVI
YXNGaXhlZFBvc2l0aW9uKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG5ld1N0eWxlSGFzRml4ZWRQ
b3NpdGlvbikKLSAgICAgICAgICAgICAgICAgICAgZnJhbWVWaWV3LT5yZWdpc3RlckZpeGVkUG9z
aXRpb25lZE9iamVjdCh0aGlzKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgICAgIGZyYW1lVmlldy0+dW5yZWdpc3RlckZpeGVkUG9zaXRpb25lZE9iamVjdCh0aGlzKTsK
LSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gaWYgcHJldmlvdXNseSBo
YWQgYSBmaXggcG9zaXRpb24sIGJ1dCBoYWQgYSB0cmFuc2Zvcm0sIHdoaWNoIGhhcyBiZWVuIHJl
bW92ZWQKLSAgICAgICAgICAgICAgICBib29sIG9sZFN0eWxlSGFzVHJhbnNmb3JtID0gbV9zdHls
ZSAmJiAobV9zdHlsZS0+aGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCkpOwotICAgICAgICAg
ICAgICAgIGlmIChvbGRTdHlsZUhhc1RyYW5zZm9ybSAmJiBuZXdTdHlsZUhhc0ZpeGVkUG9zaXRp
b24pCi0gICAgICAgICAgICAgICAgICAgIGZyYW1lVmlldy0+cmVnaXN0ZXJGaXhlZFBvc2l0aW9u
ZWRPYmplY3QodGhpcyk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmlldygpLT5m
cmFtZVZpZXcoKS0+YWRkU2xvd1JlcGFpbnRPYmplY3QoKTsKICAgICAgICAgfQogICAgIH0KIH0K
QEAgLTE5NDYsMTMgKzE5MzEsNiBAQCBib29sIFJlbmRlck9iamVjdDo6aXNTZWxlY3Rpb25Cb3Jk
ZXIoKSBjCiAKIHZvaWQgUmVuZGVyT2JqZWN0OjpkZXN0cm95KCkKIHsKLSAgICAvLyB1bnJlZ2lz
dGVyIGZyb20gdGhlIHZpZXcgaWYgdGhlIG9iamVjdCBoYWQgYSBmaXhlZCBwb3NpdGlvbgotICAg
IGlmIChtX3N0eWxlICYmIG1fc3R5bGUtPnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbikgewot
ICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGRvY3VtZW50KCktPnZpZXcoKTsKLSAgICAg
ICAgaWYgKGZyYW1lVmlldykKLSAgICAgICAgICAgIGZyYW1lVmlldy0+dW5yZWdpc3RlckZpeGVk
UG9zaXRpb25lZE9iamVjdCh0aGlzKTsKLSAgICB9Ci0KICAgICAvLyBEZXN0cm95IGFueSBsZWZ0
b3ZlciBhbm9ueW1vdXMgY2hpbGRyZW4uCiAgICAgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiBjaGls
ZHJlbiA9IHZpcnR1YWxDaGlsZHJlbigpOwogICAgIGlmIChjaGlsZHJlbikK
</data>
<flag name="review"
          id="29914"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>