<?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>26326</bug_id>
          
          <creation_ts>2009-06-11 11:05:43 -0700</creation_ts>
          <short_desc>REGRESSION: When the main page (ScrollView) has a custom scrollbar, it crashes on destruction.</short_desc>
          <delta_ts>2009-06-22 10:20:56 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Windows Vista</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://trac.webkit.org/export/41842/trunk/LayoutTests/scrollbars/overflow-scrollbar-combinations.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Levin">levin</reporter>
          <assigned_to name="David Levin">levin</assigned_to>
          <cc>alice.barraclough</cc>
    
    <cc>aroben</cc>
    
    <cc>hyatt</cc>
    
    <cc>japhet</cc>
    
    <cc>justin.garcia</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>125344</commentid>
    <comment_count>0</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-06-11 11:05:43 -0700</bug_when>
    <thetext>Original chromium bug: http://code.google.com/p/chromium/issues/detail?id=13693

This won&apos;t repro in Safari on OSX because it doesn&apos;t allow custom scrollbar for the main window, but it does repro in Safari on Windows (and in Google Chrome).

Repro steps:
1. Visit http://trac.webkit.org/export/41842/trunk/LayoutTests/scrollbars/overflow-scrollbar-combinations.html
2. Shrink the window so that a veritical scroll bar appears.
3. Refresh (or visit any other site, etc.)
crash

(Simple) fix and layout test coming shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125358</commentid>
    <comment_count>1</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-06-11 11:37:04 -0700</bug_when>
    <thetext>In case anyone wants to compare this to crashes that they&apos;ve seen (or search for crashes using function names), here&apos;s a stack for where the crash occurs:

[animationcontroller.cpp:449] - WebCore::AnimationController::cancelAnimations(WebCore::RenderObject *)
     [renderobject.cpp:1825] - WebCore::RenderObject::destroy()
          [renderbox.cpp:95] - WebCore::RenderBox::destroy()
   [renderscrollbar.cpp:219] - WebCore::RenderScrollbar::updateScrollbarPart(WebCore::ScrollbarPart,bool)
   [renderscrollbar.cpp:132] - WebCore::RenderScrollbar::updateScrollbarParts(bool)
    [renderscrollbar.cpp:54] - WebCore::RenderScrollbar::setParent(WebCore::ScrollView *)
         [scrollview.cpp:73] - WebCore::ScrollView::removeChild(WebCore::Widget *)
         [scrollview.cpp:96] - WebCore::ScrollView::setHasVerticalScrollbar(bool)
         [frameview.cpp:159] - WebCore::FrameView::~FrameView()
     [chrome.dll+0x0007f634] - WebCore::FrameView::`vector deleting destructor&apos;(unsigned int)
              [refptr.h:122] - WTF::RefPtr&lt;WebCore::FrameView&gt;::operator=(WebCore::FrameView *)
             [frame.cpp:237] - WebCore::Frame::setView(WebCore::FrameView *)
     [webframe_impl.cc:1444] - WebFrameImpl::CreateFrameView()
      [frameloader.cpp:2943] - WebCore::FrameLoader::transitionToCommitted(WTF::PassRefPtr&lt;WebCore::CachedPage&gt;)
      [frameloader.cpp:2809] - WebCore::FrameLoader::commitProvisionalLoad(WTF::PassRefPtr&lt;WebCore::CachedPage&gt;)
    [documentloader.cpp:339] - WebCore::DocumentLoader::commitIfReady()
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125407</commentid>
    <comment_count>2</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-06-11 17:21:49 -0700</bug_when>
    <thetext>A few more notes:

In safari, it appears to only repro on a refresh (not navigation) and it also repro&apos;s for iframes with custom scrollbars.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125585</commentid>
    <comment_count>3</comment_count>
      <attachid>31224</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-06-12 18:00:08 -0700</bug_when>
    <thetext>Created attachment 31224
Here&apos;s a layout test to repro the crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125586</commentid>
    <comment_count>4</comment_count>
      <attachid>31225</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-06-12 18:00:58 -0700</bug_when>
    <thetext>Created attachment 31225
Here&apos;s a patch to make the crash repro on OSX.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125588</commentid>
    <comment_count>5</comment_count>
      <attachid>31226</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-06-12 18:11:05 -0700</bug_when>
    <thetext>Created attachment 31226
Failed attempt at fix.

&quot;Failed attempt at fix&quot; was my first attempt to fix the bug.

The problem is that even if I guard the call to animation() in RenderObject, it still calls

    arenaDelete(renderArena(), this);

and the renderArena (from document) has been deleted and is 0 at this point due to Document::detach() being called, so it feels like something worse is going on and perhaps more should be cleaned up in Document::detach().

At the moment, I could do some fix for this but not being familiar with the code I&apos;m not sure what is most appropriate.

Next step: Ask dhyatt :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125984</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-06-15 10:48:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/6972721&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125998</commentid>
    <comment_count>7</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-06-15 11:58:14 -0700</bug_when>
    <thetext>I just found out about a website from http://code.google.com/p/chromium/issues/detail?id=13630 that exhibits this crash:

  http://www.apple.com/iphone/iphone-3g-s/

On Safari on Windows, visit this website and refresh.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126025</commentid>
    <comment_count>8</comment_count>
      <attachid>31305</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-06-15 14:07:12 -0700</bug_when>
    <thetext>Created attachment 31305
Proposed fix.

I have a few concerns about my patch, but I put it together as a place to start.

Here are my concerns:
1. I don&apos;t know if there is another function that I should call in FrameView.  (It doesn&apos;t look like there is one.)

2. I don&apos;t know if this function should do more.  For example, ~FrameView does resetScrollbars right before the calls to setHas*Scrollbar(false);  
Should it do even more of what ~FrameView does?

3. onDocumentDetaching doesn&apos;t seem like a great name.  detach() seemed to be typical but I wasn&apos;t sure what that function mean in general so I didn&apos;t know if this fit the pattern or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126031</commentid>
    <comment_count>9</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-06-15 14:16:12 -0700</bug_when>
    <thetext>You don&apos;t want to always destroy the scrollbars.  You only want to nuke them if the document supplied them.  If they were custom basically.

onDocumentDetaching could be renamed to detachCustomScrollbars.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126032</commentid>
    <comment_count>10</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-06-15 14:16:42 -0700</bug_when>
    <thetext>Oh, also if the scrollbars are supplied by the ownerElement&apos;s document rather than your own, then you don&apos;t need to destroy them either.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126033</commentid>
    <comment_count>11</comment_count>
      <attachid>31305</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-06-15 14:17:08 -0700</bug_when>
    <thetext>Comment on attachment 31305
Proposed fix.

Minusing based on above comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126375</commentid>
    <comment_count>12</comment_count>
      <attachid>31397</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-06-16 21:31:23 -0700</bug_when>
    <thetext>Created attachment 31397
Proposed fix.

Regarding this comment &quot;Oh, also if the scrollbars are supplied by the ownerElement&apos;s document rather than your own, then you don&apos;t need to destroy them either&quot;

I should have asked in irc, but I wasn&apos;t quite sure how that translated to code.  I did my best guess by adding the renderBox check.  Let me know if this isn&apos;t correct (and hopefully what it should be).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126378</commentid>
    <comment_count>13</comment_count>
      <attachid>31397</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-06-16 21:44:34 -0700</bug_when>
    <thetext>Comment on attachment 31397
Proposed fix.

The RenderObject.cpp change seems unintentional.  Everything else is perfect.

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126381</commentid>
    <comment_count>14</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-06-16 21:59:26 -0700</bug_when>
    <thetext>As discussed in irc, the RenderObject.cpp change is described in the changelog and David Hyatt was fine with leaving that part of the change in.

Committed as http://trac.webkit.org/changeset/44751.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126412</commentid>
    <comment_count>15</comment_count>
      <attachid>31397</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-06-17 00:43:28 -0700</bug_when>
    <thetext>Comment on attachment 31397
Proposed fix.

Clearing the r+ since this caused a layout test on windows to start crashing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126413</commentid>
    <comment_count>16</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-06-17 00:43:58 -0700</bug_when>
    <thetext>Reverted with http://trac.webkit.org/changeset/44755 due to crashing layout test on windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127047</commentid>
    <comment_count>17</comment_count>
      <attachid>31566</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-06-19 15:29:44 -0700</bug_when>
    <thetext>Created attachment 31566
Proposed fix.

I had to move the call to FrameView::detachCustomScrollbars in Document::detach to ensure that the renderBox was still set on the body element when this method was called.

I&apos;ve tried this out on windows and it works fine.  (I thought I tested the last patch on windows but I must have missed something when doing the revisions.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127288</commentid>
    <comment_count>18</comment_count>
      <attachid>31566</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-21 23:33:59 -0700</bug_when>
    <thetext>Comment on attachment 31566
Proposed fix.

Looks great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127372</commentid>
    <comment_count>19</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-06-22 10:20:56 -0700</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/44940
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31224</attachid>
            <date>2009-06-12 18:00:08 -0700</date>
            <delta_ts>2009-06-12 18:00:08 -0700</delta_ts>
            <desc>Here&apos;s a layout test to repro the crash.</desc>
            <filename>layouttest26326.txt</filename>
            <type>text/plain</type>
            <size>1851</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Njcm9sbGJhcnMvcmVzb3VyY2VzL3BhZ2Utd2l0aC1j
dXN0b20tc2Nyb2xsYmFycy5odG1sIGIvTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9yZXNvdXJjZXMv
cGFnZS13aXRoLWN1c3RvbS1zY3JvbGxiYXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uM2Q3MjRmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Njcm9s
bGJhcnMvcmVzb3VyY2VzL3BhZ2Utd2l0aC1jdXN0b20tc2Nyb2xsYmFycy5odG1sCkBAIC0wLDAg
KzEsMTkgQEAKKzxodG1sPgorPGhlYWQ+IAorPHN0eWxlPiAKKzo6LXdlYmtpdC1zY3JvbGxiYXIg
eworICAgIHdpZHRoOiAxM3B4OworICAgIGhlaWdodDogMTNweDsKK30KKworLmJveCB7CisgICAg
YmFja2dyb3VuZDogZ3JheTsKKyAgICB3aWR0aDogNDAwMHB4OworICAgIGhlaWdodDogNDAwMHB4
OworfQorPC9zdHlsZT4gCis8L2hlYWQ+IAorPGJvZHk+Cis8UCBjbGFzcz0iYm94Ij5QQVNTPC9w
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9z
Y3JvbGxiYXItY3Jhc2gtb24tcmVmcmVzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zY3Jv
bGxiYXJzL3Njcm9sbGJhci1jcmFzaC1vbi1yZWZyZXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNGYxYzc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxiYXItY3Jhc2gtb24tcmVmcmVzaC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACitUZXN0IGZvciBidWcgMjYzMjY6IFRoaXMgdGVzdHMgdGhhdCB0
aGVyZSBpcyBubyBjcmFzaCB3aGVuIHJlZnJlc2hpbmcgYSBwYWdlIHdpdGggYSBjdXN0b20gc2Ny
b2xsYmFyLiBPbiBzdWNjZXNzIHlvdSBzaG91bGQgc2VlIGEgZnJhbWUgd2l0aCBzY3JvbGxiYXJz
IGFuZCBvbmUgUEFTUyBtZXNzYWdlIGluIGl0LgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3Njcm9sbGJhcnMvc2Nyb2xsYmFyLWNyYXNoLW9uLXJlZnJlc2guaHRtbCBiL0xheW91dFRlc3Rz
L3Njcm9sbGJhcnMvc2Nyb2xsYmFyLWNyYXNoLW9uLXJlZnJlc2guaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODE0YTg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxiYXItY3Jhc2gtb24tcmVmcmVzaC5odG1sCkBAIC0wLDAg
KzEsMTcgQEAKKzxodG1sPgorPGhlYWQ+IAorPHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blRlc3QoKQor
eworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB3aW5kb3cuZnJhbWVzLm15ZnJhbWUubG9j
YXRpb24ucmVsb2FkKHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+IAorPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI2MzI2Ij5idWcgMjYzMjY8L2E+OgorVGhpcyB0ZXN0cyB0aGF0
IHRoZXJlIGlzIG5vIGNyYXNoIHdoZW4gcmVmcmVzaGluZyBhIHBhZ2Ugd2l0aCBhIGN1c3RvbSBz
Y3JvbGxiYXIuICBPbiBzdWNjZXNzIHlvdSBzaG91bGQgc2VlIGEgZnJhbWUgd2l0aCBzY3JvbGxi
YXJzIGFuZCBvbmUgUEFTUyBtZXNzYWdlIGluIGl0LjxwLz4KKzxpZnJhbWUgbmFtZT0ibXlmcmFt
ZSIgaWQ9Im15ZnJhbWUiIHNyYz0icmVzb3VyY2VzL3BhZ2Utd2l0aC1jdXN0b20tc2Nyb2xsYmFy
cy5odG1sIj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31225</attachid>
            <date>2009-06-12 18:00:58 -0700</date>
            <delta_ts>2009-06-12 18:00:58 -0700</delta_ts>
            <desc>Here&apos;s a patch to make the crash repro on OSX.</desc>
            <filename>crash26326.txt</filename>
            <type>text/plain</type>
            <size>1033</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0gYi9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCmluZGV4IGNmZDhkNWYuLmVmMmQ4NGIgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0KKysrIGIvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQpAQCAtMjY0LDE3ICsyNjQsMTcgQEAgc3RhdGljIGlu
bGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVz
LCBDbGFzcyBvYmpDQ2wKICAgICAvLyB3b24ndCBldmVyIGdldCBpbnN0YWxsZWQgaW4gdGhlIHZp
ZXcgaGllcmFyY2h5LgogICAgIEFTU0VSVChmcmFtZSA9PSBmcmFtZS0+cGFnZSgpLT5tYWluRnJh
bWUoKSB8fCBmcmFtZS0+b3duZXJFbGVtZW50KCkpOwogCi0gICAgRnJhbWVWaWV3KiB2aWV3ID0g
ZnJhbWUtPnZpZXcoKTsKKy8vICAgIEZyYW1lVmlldyogdmlldyA9IGZyYW1lLT52aWV3KCk7CiAK
LSAgICB2aWV3LT5zZXRQbGF0Zm9ybVdpZGdldChfcHJpdmF0ZS0+ZnJhbWVTY3JvbGxWaWV3KTsK
Ky8vICAgIHZpZXctPnNldFBsYXRmb3JtV2lkZ2V0KF9wcml2YXRlLT5mcmFtZVNjcm9sbFZpZXcp
OwogCiAgICAgLy8gRklYTUU6IEZyYW1lIHRyaWVzIHRvIGRvIHRoaXMgdG9vLiBJcyB0aGlzIGNv
ZGUgbmVlZGVkPwotICAgIGlmIChSZW5kZXJQYXJ0KiBvd25lciA9IGZyYW1lLT5vd25lclJlbmRl
cmVyKCkpIHsKLSAgICAgICAgb3duZXItPnNldFdpZGdldCh2aWV3KTsKKy8vICAgIGlmIChSZW5k
ZXJQYXJ0KiBvd25lciA9IGZyYW1lLT5vd25lclJlbmRlcmVyKCkpIHsKKy8vICAgICAgICBvd25l
ci0+c2V0V2lkZ2V0KHZpZXcpOwogICAgICAgICAvLyBOb3cgdGhlIHJlbmRlciBwYXJ0IG93bnMg
dGhlIHZpZXcsIHNvIHdlIGRvbid0IGFueSBtb3JlLgotICAgIH0KKy8vICAgIH0KIAotICAgIHZp
ZXctPmluaXRTY3JvbGxiYXJzKCk7CisvLyAgICB2aWV3LT5pbml0U2Nyb2xsYmFycygpOwogfQog
CiBAZW5kCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31226</attachid>
            <date>2009-06-12 18:11:05 -0700</date>
            <delta_ts>2009-06-15 14:07:12 -0700</delta_ts>
            <desc>Failed attempt at fix.</desc>
            <filename>FailedFix26326.txt</filename>
            <type>text/plain</type>
            <size>1948</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGY4MTAxOGQuLmFhOTU1MjYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMTgxOCwxNSArMTgxOCwxNiBAQCB2b2lkIFJl
bmRlck9iamVjdDo6ZGVzdHJveSgpCiAgICAgaWYgKG1faGFzQ291bnRlck5vZGVNYXApCiAgICAg
ICAgIFJlbmRlckNvdW50ZXI6OmRlc3Ryb3lDb3VudGVyTm9kZXModGhpcyk7CiAKKyAgICAvLyBC
eSBkZWZhdWx0IG5vIHJlZi1jb3VudGluZy4gUmVuZGVyV2lkZ2V0OjpkZXN0cm95KCkgZG9lc24n
dCBjYWxsCisgICAgLy8gdGhpcyBmdW5jdGlvbiBiZWNhdXNlIGl0IG5lZWRzIHRvIGRvIHJlZi1j
b3VudGluZy4gSWYgYW55dGhpbmcKKyAgICAvLyBpbiB0aGlzIGZ1bmN0aW9uIGNoYW5nZXMsIGJl
IHN1cmUgdG8gZml4IFJlbmRlcldpZGdldDo6ZGVzdHJveSgpIGFzIHdlbGwuCisgICAgaWYgKGRv
Y3VtZW50KCktPmZyYW1lKCkpCisgICAgICAgIGRvY3VtZW50KCktPmZyYW1lKCktPmFuaW1hdGlv
bigpLT5jYW5jZWxBbmltYXRpb25zKHRoaXMpOworCiAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFj
Y2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKICAgICAgICAgZG9jdW1lbnQoKS0+YXhPYmplY3RDYWNo
ZSgpLT5jaGlsZHJlbkNoYW5nZWQodGhpcy0+cGFyZW50KCkpOwogICAgICAgICBkb2N1bWVudCgp
LT5heE9iamVjdENhY2hlKCktPnJlbW92ZSh0aGlzKTsKICAgICB9Ci0gICAgYW5pbWF0aW9uKCkt
PmNhbmNlbEFuaW1hdGlvbnModGhpcyk7Ci0KLSAgICAvLyBCeSBkZWZhdWx0IG5vIHJlZi1jb3Vu
dGluZy4gUmVuZGVyV2lkZ2V0OjpkZXN0cm95KCkgZG9lc24ndCBjYWxsCi0gICAgLy8gdGhpcyBm
dW5jdGlvbiBiZWNhdXNlIGl0IG5lZWRzIHRvIGRvIHJlZi1jb3VudGluZy4gSWYgYW55dGhpbmcK
LSAgICAvLyBpbiB0aGlzIGZ1bmN0aW9uIGNoYW5nZXMsIGJlIHN1cmUgdG8gZml4IFJlbmRlcldp
ZGdldDo6ZGVzdHJveSgpIGFzIHdlbGwuCiAKICAgICByZW1vdmUoKTsKIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcldpZGdldC5jcHAKaW5kZXggN2Q5NDE4Yy4uZDYzZjI1NSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJXaWRnZXQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgog
I2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKQEAgLTcwLDcgKzcxLDggQEAgdm9pZCBSZW5kZXJX
aWRnZXQ6OmRlc3Ryb3koKQogICAgIC8vIFNvIHRoZSBjb2RlIGJlbG93IGluY2x1ZGVzIGNvcGll
ZCBhbmQgcGFzdGVkIGNvbnRlbnRzIG9mCiAgICAgLy8gYm90aCBSZW5kZXJCb3g6OmRlc3Ryb3ko
KSBhbmQgUmVuZGVyT2JqZWN0OjpkZXN0cm95KCkuCiAgICAgLy8gRml4IG9yaWdpbmFsbHkgbWFk
ZSBmb3IgPHJkYXI6Ly9wcm9ibGVtLzQyMjg4MTg+LgotICAgIGFuaW1hdGlvbigpLT5jYW5jZWxB
bmltYXRpb25zKHRoaXMpOworICAgIGlmIChkb2N1bWVudCgpLT5mcmFtZSgpKQorICAgICAgICBk
b2N1bWVudCgpLT5mcmFtZSgpLT5hbmltYXRpb24oKS0+Y2FuY2VsQW5pbWF0aW9ucyh0aGlzKTsK
IAogICAgIGlmIChSZW5kZXJWaWV3KiB2ID0gdmlldygpKQogICAgICAgICB2LT5yZW1vdmVXaWRn
ZXQodGhpcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31305</attachid>
            <date>2009-06-15 14:07:12 -0700</date>
            <delta_ts>2009-06-16 21:31:23 -0700</delta_ts>
            <desc>Proposed fix.</desc>
            <filename>bug26326.txt</filename>
            <type>text/plain</type>
            <size>5817</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMjI2MTVmLi4zNDI2NmExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMDYt
MTUgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT046IFdoZW4gdGhlIG1haW4g
cGFnZSAoU2Nyb2xsVmlldykgaGFzIGEgY3VzdG9tIHNjcm9sbGJhciwgaXQgY3Jhc2hlcyBvbiBk
ZXN0cnVjdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI2MzI2CisKKyAgICAgICAgVGVzdCB0aGF0IHJlZnJlc2hpbmcgYW4gaWZyYW1lIHdpdGgg
Y3VzdG9tIHNjcm9sbGJhcnMgd29ya3Mgd2l0aG91dCBjcmFzaGluZy4KKyAgICAgICAgCisgICAg
ICAgICogc2Nyb2xsYmFycy9yZXNvdXJjZXMvcGFnZS13aXRoLWN1c3RvbS1zY3JvbGxiYXJzLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHNjcm9sbGJhcnMvc2Nyb2xsYmFyLWNyYXNoLW9uLXJlZnJl
c2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzY3JvbGxiYXJzL3Njcm9sbGJhci1j
cmFzaC1vbi1yZWZyZXNoLmh0bWw6IEFkZGVkLgorCiAyMDA5LTA2LTE0ICBEYXJpbiBBZGxlciAg
PGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9yZXNvdXJjZXMvcGFnZS13aXRoLWN1
c3RvbS1zY3JvbGxiYXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Jlc291cmNlcy9w
YWdlLXdpdGgtY3VzdG9tLXNjcm9sbGJhcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5jMmE3ZTE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc2Nyb2xs
YmFycy9yZXNvdXJjZXMvcGFnZS13aXRoLWN1c3RvbS1zY3JvbGxiYXJzLmh0bWwKQEAgLTAsMCAr
MSwxOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKzo6LXdlYmtpdC1zY3JvbGxiYXIgewor
ICAgIHdpZHRoOiAxM3B4OworICAgIGhlaWdodDogMTNweDsKK30KKworLmJveCB7CisgICAgYmFj
a2dyb3VuZDogZ3JheTsKKyAgICB3aWR0aDogNDAwMHB4OworICAgIGhlaWdodDogNDAwMHB4Owor
fQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPFAgY2xhc3M9ImJveCI+UEFTUzwvcD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xs
YmFyLWNyYXNoLW9uLXJlZnJlc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc2Nyb2xsYmFy
cy9zY3JvbGxiYXItY3Jhc2gtb24tcmVmcmVzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZTRmMWM3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLWNyYXNoLW9uLXJlZnJlc2gtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorVGVzdCBmb3IgYnVnIDI2MzI2OiBUaGlzIHRlc3RzIHRoYXQgdGhlcmUg
aXMgbm8gY3Jhc2ggd2hlbiByZWZyZXNoaW5nIGEgcGFnZSB3aXRoIGEgY3VzdG9tIHNjcm9sbGJh
ci4gT24gc3VjY2VzcyB5b3Ugc2hvdWxkIHNlZSBhIGZyYW1lIHdpdGggc2Nyb2xsYmFycyBhbmQg
b25lIFBBU1MgbWVzc2FnZSBpbiBpdC4KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zY3Jv
bGxiYXJzL3Njcm9sbGJhci1jcmFzaC1vbi1yZWZyZXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9zY3Jv
bGxiYXJzL3Njcm9sbGJhci1jcmFzaC1vbi1yZWZyZXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZmQzYjU0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3Njcm9sbGJhcnMvc2Nyb2xsYmFyLWNyYXNoLW9uLXJlZnJlc2guaHRtbApAQCAtMCwwICsxLDE3
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB3aW5kb3cuZnJhbWVzLm15ZnJhbWUubG9jYXRpb24u
cmVsb2FkKHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjYzMjYiPmJ1ZyAyNjMyNjwvYT46CitUaGlzIHRlc3RzIHRoYXQgdGhlcmUg
aXMgbm8gY3Jhc2ggd2hlbiByZWZyZXNoaW5nIGEgcGFnZSB3aXRoIGEgY3VzdG9tIHNjcm9sbGJh
ci4gIE9uIHN1Y2Nlc3MgeW91IHNob3VsZCBzZWUgYSBmcmFtZSB3aXRoIHNjcm9sbGJhcnMgYW5k
IG9uZSBQQVNTIG1lc3NhZ2UgaW4gaXQuPHAvPgorPGlmcmFtZSBuYW1lPSJteWZyYW1lIiBpZD0i
bXlmcmFtZSIgc3JjPSJyZXNvdXJjZXMvcGFnZS13aXRoLWN1c3RvbS1zY3JvbGxiYXJzLmh0bWwi
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBkNTExNWIwLi41Zjg3ZjlmIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDA5
LTA2LTE1ICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OOiBXaGVuIHRoZSBt
YWluIHBhZ2UgKFNjcm9sbFZpZXcpIGhhcyBhIGN1c3RvbSBzY3JvbGxiYXIsIGl0IGNyYXNoZXMg
b24gZGVzdHJ1Y3Rpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNjMyNgorCisgICAgICAgIFRlc3Q6IHNjcm9sbGJhcnMvc2Nyb2xsYmFyLWNyYXNo
LW9uLXJlZnJlc2guaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpkZXRhY2gpOgorICAgICAgICBHaXZlcyB0aGUgRnJhbWVWaWV3
IGEgY2hhbmdlIHRvIGRvIGFueSBuZWNlc3NhcnkgY2xlYW51cCBvbgorICAgICAgICBEb2N1bWVu
dDo6ZGV0YWNoKCkgd2hpY2ggaXMgd2hlcmUgdGhlIHJlbmRlckFyZW5hIGdldHMgZGV0cm95ZWQu
CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjpvbkRvY3VtZW50RGV0YWNoaW5nKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyT2JqZWN0OjpkZXN0cm95KToKKyAgICAgICAgUmVtb3ZlZCB0aGUgY2hlY2sgZm9yIGRv
Y3VtZW50KCktPmZyYW1lKCkuICBJZiBmcmFtZSgpIGlzIDAgaW4gdGhpcyBjb2RlLAorICAgICAg
ICB0aGVuIHRoZSBjYWxsIHRvIGFuaW1hdGlvbigpIGlzIGFsc28gaW5jb3JyZWN0IChzaW5jZSBp
dCBkb2VzIGRvY3VtZW50KCktPmZyYW1lKCktPmFuaW1hdGlvbigpKS4KKwogMjAwOS0wNi0xNSAg
U2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgYW5kIGRvbmUgd2l0aCBUb3IgQXJuZSBWZXN0YsO4LgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDU3
ZWYxOTcuLjJiYjBmMDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEzNDksNiArMTM0OSwxMiBAQCB2b2lkIERv
Y3VtZW50OjpkZXRhY2goKQogCiAgICAgdW5zY2hlZHVsZVN0eWxlUmVjYWxjKCk7CiAKKyAgICBp
ZiAobV9mcmFtZSkgeworICAgICAgICBGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLT52aWV3KCk7
CisgICAgICAgIGlmICh2aWV3KQorICAgICAgICAgICAgdmlldy0+b25Eb2N1bWVudERldGFjaGlu
ZygpOworICAgIH0KKwogICAgIGlmIChyZW5kZXIpCiAgICAgICAgIHJlbmRlci0+ZGVzdHJveSgp
OwogICAgIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBmNjUwMWJlLi40NzdjNzhhIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cApAQCAtMjI4LDYgKzIyOCwxMyBAQCB2b2lkIEZyYW1lVmlldzo6aW5pdCgpCiAgICAgfQogfQog
Cit2b2lkIEZyYW1lVmlldzo6b25Eb2N1bWVudERldGFjaGluZygpCit7CisgICAgLy8gRGVzdHJv
eSB0aGUgYW55IFJlbmRlclNjcm9sbGJhcnMgbm93IGJlZm9yZSB0aGUgcmVuZGVyQXJlbmEgZ2V0
cyBkZWxldGVkLgorICAgIHNldEhhc0hvcml6b250YWxTY3JvbGxiYXIoZmFsc2UpOworICAgIHNl
dEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGZhbHNlKTsKK30KKwogdm9pZCBGcmFtZVZpZXc6OmNsZWFy
KCkKIHsKICAgICBzZXRDYW5CbGl0T25TY3JvbGwodHJ1ZSk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmggYi9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggMTZlYWRj
NS4uNDUwN2ExOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNjMsNiArNjMsNyBAQCBwdWJsaWM6CiAKICAgICBG
cmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lLmdldCgpOyB9CiAgICAgdm9pZCBj
bGVhckZyYW1lKCk7CisgICAgdm9pZCBvbkRvY3VtZW50RGV0YWNoaW5nKCk7CiAKICAgICBpbnQg
bWFyZ2luV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX21hcmdpbnMud2lkdGgoKTsgfSAvLyAtMSBt
ZWFucyBkZWZhdWx0CiAgICAgaW50IG1hcmdpbkhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFy
Z2lucy5oZWlnaHQoKTsgfSAvLyAtMSBtZWFucyBkZWZhdWx0CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcAppbmRleCBmODEwMThkLi40NjFhZGZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAKQEAgLTE4MTIsNyArMTgxMiw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpkZXN0cm95KCkK
ICAgICAgICAgY2hpbGRyZW4tPmRlc3Ryb3lMZWZ0b3ZlckNoaWxkcmVuKCk7CiAKICAgICAvLyBJ
ZiB0aGlzIHJlbmRlcmVyIGlzIGJlaW5nIGF1dG9zY3JvbGxlZCwgc3RvcCB0aGUgYXV0b3Njcm9s
bCB0aW1lcgotICAgIGlmIChkb2N1bWVudCgpLT5mcmFtZSgpICYmIGRvY3VtZW50KCktPmZyYW1l
KCktPmV2ZW50SGFuZGxlcigpLT5hdXRvc2Nyb2xsUmVuZGVyZXIoKSA9PSB0aGlzKQorICAgIGlm
IChkb2N1bWVudCgpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+YXV0b3Njcm9sbFJlbmRlcmVy
KCkgPT0gdGhpcykKICAgICAgICAgZG9jdW1lbnQoKS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkt
PnN0b3BBdXRvc2Nyb2xsVGltZXIodHJ1ZSk7CiAKICAgICBpZiAobV9oYXNDb3VudGVyTm9kZU1h
cCkK
</data>
<flag name="review"
          id="15995"
          type_id="1"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31397</attachid>
            <date>2009-06-16 21:31:23 -0700</date>
            <delta_ts>2009-06-17 00:43:28 -0700</delta_ts>
            <desc>Proposed fix.</desc>
            <filename>bug26326.txt</filename>
            <type>text/plain</type>
            <size>8384</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5MWFiMjNhLi44NzE2OGY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMDYt
MTUgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT046IFdoZW4gdGhlIG1haW4g
cGFnZSAoU2Nyb2xsVmlldykgaGFzIGEgY3VzdG9tIHNjcm9sbGJhciwgaXQgY3Jhc2hlcyBvbiBk
ZXN0cnVjdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI2MzI2CisKKyAgICAgICAgVGVzdCB0aGF0IHJlZnJlc2hpbmcgYW4gaWZyYW1lIHdpdGgg
Y3VzdG9tIHNjcm9sbGJhcnMgd29ya3Mgd2l0aG91dCBjcmFzaGluZy4KKworICAgICAgICAqIHNj
cm9sbGJhcnMvcmVzb3VyY2VzL3BhZ2Utd2l0aC1jdXN0b20tc2Nyb2xsYmFycy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBzY3JvbGxiYXJzL3Njcm9sbGJhci1jcmFzaC1vbi1yZWZyZXNoLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc2Nyb2xsYmFycy9zY3JvbGxiYXItY3Jhc2gtb24t
cmVmcmVzaC5odG1sOiBBZGRlZC4KKwogMjAwOS0wNi0xNiAgWGFuIExvcGV6ICA8eGxvcGV6QGln
YWxpYS5jb20+CiAKICAgICAgICAgRGlzYWJsZSBhbm90aGVyIG5ldyB0ZXN0LgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9yZXNvdXJjZXMvcGFnZS13aXRoLWN1c3RvbS1zY3Jv
bGxiYXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Jlc291cmNlcy9wYWdlLXdpdGgt
Y3VzdG9tLXNjcm9sbGJhcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5jMmE3ZTE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9yZXNv
dXJjZXMvcGFnZS13aXRoLWN1c3RvbS1zY3JvbGxiYXJzLmh0bWwKQEAgLTAsMCArMSwxOSBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKzo6LXdlYmtpdC1zY3JvbGxiYXIgeworICAgIHdpZHRo
OiAxM3B4OworICAgIGhlaWdodDogMTNweDsKK30KKworLmJveCB7CisgICAgYmFja2dyb3VuZDog
Z3JheTsKKyAgICB3aWR0aDogNDAwMHB4OworICAgIGhlaWdodDogNDAwMHB4OworfQorPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorPFAgY2xhc3M9ImJveCI+UEFTUzwvcD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLWNyYXNo
LW9uLXJlZnJlc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxi
YXItY3Jhc2gtb24tcmVmcmVzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZTRmMWM3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Njcm9s
bGJhcnMvc2Nyb2xsYmFyLWNyYXNoLW9uLXJlZnJlc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorVGVzdCBmb3IgYnVnIDI2MzI2OiBUaGlzIHRlc3RzIHRoYXQgdGhlcmUgaXMgbm8gY3Jh
c2ggd2hlbiByZWZyZXNoaW5nIGEgcGFnZSB3aXRoIGEgY3VzdG9tIHNjcm9sbGJhci4gT24gc3Vj
Y2VzcyB5b3Ugc2hvdWxkIHNlZSBhIGZyYW1lIHdpdGggc2Nyb2xsYmFycyBhbmQgb25lIFBBU1Mg
bWVzc2FnZSBpbiBpdC4KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Nj
cm9sbGJhci1jcmFzaC1vbi1yZWZyZXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Nj
cm9sbGJhci1jcmFzaC1vbi1yZWZyZXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZmQzYjU0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Njcm9sbGJh
cnMvc2Nyb2xsYmFyLWNyYXNoLW9uLXJlZnJlc2guaHRtbApAQCAtMCwwICsxLDE3IEBACis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICB3aW5kb3cuZnJhbWVzLm15ZnJhbWUubG9jYXRpb24ucmVsb2FkKHRy
dWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8
cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjYzMjYiPmJ1ZyAyNjMyNjwvYT46CitUaGlzIHRlc3RzIHRoYXQgdGhlcmUgaXMgbm8gY3Jh
c2ggd2hlbiByZWZyZXNoaW5nIGEgcGFnZSB3aXRoIGEgY3VzdG9tIHNjcm9sbGJhci4gIE9uIHN1
Y2Nlc3MgeW91IHNob3VsZCBzZWUgYSBmcmFtZSB3aXRoIHNjcm9sbGJhcnMgYW5kIG9uZSBQQVNT
IG1lc3NhZ2UgaW4gaXQuPHAvPgorPGlmcmFtZSBuYW1lPSJteWZyYW1lIiBpZD0ibXlmcmFtZSIg
c3JjPSJyZXNvdXJjZXMvcGFnZS13aXRoLWN1c3RvbS1zY3JvbGxiYXJzLmh0bWwiPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCAyZmI4NjcxLi5iZDM5YTQ5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDA5LTA2LTE2ICBE
YXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OOiBXaGVuIHRoZSBtYWluIHBhZ2Ug
KFNjcm9sbFZpZXcpIGhhcyBhIGN1c3RvbSBzY3JvbGxiYXIsIGl0IGNyYXNoZXMgb24gZGVzdHJ1
Y3Rpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
NjMyNgorCisgICAgICAgIFRlc3Q6IHNjcm9sbGJhcnMvc2Nyb2xsYmFyLWNyYXNoLW9uLXJlZnJl
c2guaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpkZXRhY2gpOgorICAgICAgICBHaXZlcyB0aGUgRnJhbWVWaWV3IGEgY2hhbmdl
IHRvIGRvIGFueSBuZWNlc3NhcnkgY2xlYW51cCBvbgorICAgICAgICBEb2N1bWVudDo6ZGV0YWNo
KCkgd2hpY2ggaXMgd2hlcmUgdGhlIHJlbmRlckFyZW5hIGdldHMgZGV0cm95ZWQuCisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpkZXRh
Y2hDdXN0b21TY3JvbGxiYXJzKToKKyAgICAgICAgR2V0cyByaWQgb2YgYW55IGN1c3RvbSBzY3Jv
bGxiYXJzIChpZiB0aGUgZG9jbWVudCBzdXBwbGllZCB0aGVtKS4KKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlldy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGJhci5oOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsYmFyOjppc0N1c3RvbVNjcm9sbGJhcik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmRlc3Ry
b3kpOgorICAgICAgICBSZW1vdmVkIHRoZSBjaGVjayBmb3IgZG9jdW1lbnQoKS0+ZnJhbWUoKS4g
IElmIGZyYW1lKCkgaXMgMCBpbiB0aGlzIGNvZGUsCisgICAgICAgIHRoZW4gdGhlIGNhbGwgdG8g
YW5pbWF0aW9uKCkgaXMgYWxzbyBpbmNvcnJlY3QgKHNpbmNlIGl0IGRvZXMgZG9jdW1lbnQoKS0+
ZnJhbWUoKS0+YW5pbWF0aW9uKCkpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTY3JvbGxi
YXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNjcm9sbGJhcjo6aXNDdXN0b21TY3JvbGxi
YXIpOgorCiAyMDA5LTA2LTE2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNTdlZjE5Ny4u
MWI4ZDA5ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNSw3ICs1LDcgQEAKICAqICAgICAgICAgICAoQykgMjAw
NiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEB3ZWJraXQub3JnKQogICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQotICogQ29w
eXJpZ2h0IChDKSAyMDA4IERhdmlkIExldmluIChsZXZpbkBjaHJvbWl1bS5vcmcpCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDgsIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMTM0OSw2ICsxMzQ5LDEyIEBAIHZvaWQgRG9jdW1lbnQ6OmRl
dGFjaCgpCiAKICAgICB1bnNjaGVkdWxlU3R5bGVSZWNhbGMoKTsKIAorICAgIGlmIChtX2ZyYW1l
KSB7CisgICAgICAgIEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXcoKTsKKyAgICAgICAg
aWYgKHZpZXcpCisgICAgICAgICAgICB2aWV3LT5kZXRhY2hDdXN0b21TY3JvbGxiYXJzKCk7Cisg
ICAgfQorCiAgICAgaWYgKHJlbmRlcikKICAgICAgICAgcmVuZGVyLT5kZXN0cm95KCk7CiAgICAg
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCmluZGV4IGY2NTAxYmUuLjU5YjNmYjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC02
LDYgKzYsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAwNiBH
cmFoYW0gRGVubmlzIChncmFoYW0uZGVubmlzQGdtYWlsLmNvbSkKICAqICAgICAgICAgICAoQykg
MjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwpAQCAtMjI4LDYgKzIyOSwzMCBAQCB2b2lkIEZyYW1lVmlldzo6aW5pdCgpCiAgICAgfQogfQog
Cit2b2lkIEZyYW1lVmlldzo6ZGV0YWNoQ3VzdG9tU2Nyb2xsYmFycygpCit7CisgICAgaWYgKCFt
X2ZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2Zy
YW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIEVsZW1lbnQqIGJvZHkgPSBkb2N1bWVudC0+Ym9keSgpOworICAgIGlmICghYm9keSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSBib2R5LT5yZW5kZXJC
b3goKTsKKworICAgIFNjcm9sbGJhciogaG9yaXpvbnRhbEJhciA9IGhvcml6b250YWxTY3JvbGxi
YXIoKTsKKyAgICBpZiAoaG9yaXpvbnRhbEJhciAmJiBob3Jpem9udGFsQmFyLT5pc0N1c3RvbVNj
cm9sbGJhcigpICYmIHJlaW50ZXJwcmV0X2Nhc3Q8UmVuZGVyU2Nyb2xsYmFyKj4oaG9yaXpvbnRh
bEJhciktPm93bmluZ1JlbmRlcmVyKCkgPT0gcmVuZGVyQm94KQorICAgICAgICBzZXRIYXNIb3Jp
em9udGFsU2Nyb2xsYmFyKGZhbHNlKTsKKworICAgIFNjcm9sbGJhciogdmVydGljYWxCYXIgPSB2
ZXJ0aWNhbFNjcm9sbGJhcigpOworICAgIGlmICh2ZXJ0aWNhbEJhciAmJiB2ZXJ0aWNhbEJhci0+
aXNDdXN0b21TY3JvbGxiYXIoKSAmJiByZWludGVycHJldF9jYXN0PFJlbmRlclNjcm9sbGJhcio+
KHZlcnRpY2FsQmFyKS0+b3duaW5nUmVuZGVyZXIoKSA9PSByZW5kZXJCb3gpCisgICAgICAgIHNl
dEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGZhbHNlKTsKK30KKwogdm9pZCBGcmFtZVZpZXc6OmNsZWFy
KCkKIHsKICAgICBzZXRDYW5CbGl0T25TY3JvbGwodHJ1ZSk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmggYi9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggMTZlYWRj
NS4uOWRhYmU1NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMTA1LDYgKzEwNSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHdpbGxNb3ZlT2Zmc2NyZWVuKCk7CiAKICAgICB2b2lkIHJlc2V0U2Nyb2xsYmFycygpOwor
ICAgIHZvaWQgZGV0YWNoQ3VzdG9tU2Nyb2xsYmFycygpOwogCiAgICAgdm9pZCBjbGVhcigpOwog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxiYXIuaAppbmRleCAxOWQ5NWQ3Li43MTFhZTM2IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGJhci5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFy
LmgKQEAgLTU4LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2xpZW50KFNjcm9sbGJh
ckNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAgICAgU2Nyb2xsYmFyQ2xp
ZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQogCisgICAgdmlydHVhbCBi
b29sIGlzQ3VzdG9tU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBTY3Jv
bGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZW50YXRp
b247IH0KICAgICAKICAgICBpbnQgdmFsdWUoKSBjb25zdCB7IHJldHVybiBscm91bmRmKG1fY3Vy
cmVudFBvcyk7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5j
cHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGY4MTAxOGQuLjQ2
MWFkZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysr
IGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMTgxMiw3ICsxODEyLDcg
QEAgdm9pZCBSZW5kZXJPYmplY3Q6OmRlc3Ryb3koKQogICAgICAgICBjaGlsZHJlbi0+ZGVzdHJv
eUxlZnRvdmVyQ2hpbGRyZW4oKTsKIAogICAgIC8vIElmIHRoaXMgcmVuZGVyZXIgaXMgYmVpbmcg
YXV0b3Njcm9sbGVkLCBzdG9wIHRoZSBhdXRvc2Nyb2xsIHRpbWVyCi0gICAgaWYgKGRvY3VtZW50
KCktPmZyYW1lKCkgJiYgZG9jdW1lbnQoKS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmF1dG9z
Y3JvbGxSZW5kZXJlcigpID09IHRoaXMpCisgICAgaWYgKGRvY3VtZW50KCktPmZyYW1lKCktPmV2
ZW50SGFuZGxlcigpLT5hdXRvc2Nyb2xsUmVuZGVyZXIoKSA9PSB0aGlzKQogICAgICAgICBkb2N1
bWVudCgpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+c3RvcEF1dG9zY3JvbGxUaW1lcih0cnVl
KTsKIAogICAgIGlmIChtX2hhc0NvdW50ZXJOb2RlTWFwKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3Jv
bGxiYXIuaAppbmRleCA1MjRjNGU4Li4yNDVkNzUwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTY3JvbGxiYXIuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3Jv
bGxiYXIuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAgICAgSW50UmVjdCB0cmFja1BpZWNl
UmVjdFdpdGhNYXJnaW5zKFNjcm9sbGJhclBhcnQsIGNvbnN0IEludFJlY3QmKTsKIAogICAgIGlu
dCBtaW5pbXVtVGh1bWJMZW5ndGgoKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNDdXN0b21TY3JvbGxi
YXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKIHByaXZhdGU6CiAgICAgUGFzc1JlZlB0cjxS
ZW5kZXJTdHlsZT4gZ2V0U2Nyb2xsYmFyUHNldWRvU3R5bGUoU2Nyb2xsYmFyUGFydCwgUHNldWRv
SWQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31566</attachid>
            <date>2009-06-19 15:29:44 -0700</date>
            <delta_ts>2009-06-21 23:33:59 -0700</delta_ts>
            <desc>Proposed fix.</desc>
            <filename>bug26326.txt</filename>
            <type>text/plain</type>
            <size>8473</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4YjU0MjBjLi41ZTFiNWY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMDYt
MTUgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT046IFdoZW4gdGhlIG1haW4g
cGFnZSAoU2Nyb2xsVmlldykgaGFzIGEgY3VzdG9tIHNjcm9sbGJhciwgaXQgY3Jhc2hlcyBvbiBk
ZXN0cnVjdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI2MzI2CisKKyAgICAgICAgVGVzdCB0aGF0IHJlZnJlc2hpbmcgYW4gaWZyYW1lIHdpdGgg
Y3VzdG9tIHNjcm9sbGJhcnMgd29ya3Mgd2l0aG91dCBjcmFzaGluZy4KKworICAgICAgICAqIHNj
cm9sbGJhcnMvcmVzb3VyY2VzL3BhZ2Utd2l0aC1jdXN0b20tc2Nyb2xsYmFycy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBzY3JvbGxiYXJzL3Njcm9sbGJhci1jcmFzaC1vbi1yZWZyZXNoLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc2Nyb2xsYmFycy9zY3JvbGxiYXItY3Jhc2gtb24t
cmVmcmVzaC5odG1sOiBBZGRlZC4KKwogMjAwOS0wNi0xOSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Jlc291cmNlcy9wYWdlLXdpdGgtY3VzdG9tLXNjcm9s
bGJhcnMuaHRtbCBiL0xheW91dFRlc3RzL3Njcm9sbGJhcnMvcmVzb3VyY2VzL3BhZ2Utd2l0aC1j
dXN0b20tc2Nyb2xsYmFycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmMyYTdlMTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Jlc291
cmNlcy9wYWdlLXdpdGgtY3VzdG9tLXNjcm9sbGJhcnMuaHRtbApAQCAtMCwwICsxLDE5IEBACis8
aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorOjotd2Via2l0LXNjcm9sbGJhciB7CisgICAgd2lkdGg6
IDEzcHg7CisgICAgaGVpZ2h0OiAxM3B4OworfQorCisuYm94IHsKKyAgICBiYWNrZ3JvdW5kOiBn
cmF5OworICAgIHdpZHRoOiA0MDAwcHg7CisgICAgaGVpZ2h0OiA0MDAwcHg7Cit9Cis8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+Cis8UCBjbGFzcz0iYm94Ij5QQVNTPC9wPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxiYXItY3Jhc2gt
b24tcmVmcmVzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGJh
ci1jcmFzaC1vbi1yZWZyZXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5lNGYxYzc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc2Nyb2xs
YmFycy9zY3JvbGxiYXItY3Jhc2gtb24tcmVmcmVzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACitUZXN0IGZvciBidWcgMjYzMjY6IFRoaXMgdGVzdHMgdGhhdCB0aGVyZSBpcyBubyBjcmFz
aCB3aGVuIHJlZnJlc2hpbmcgYSBwYWdlIHdpdGggYSBjdXN0b20gc2Nyb2xsYmFyLiBPbiBzdWNj
ZXNzIHlvdSBzaG91bGQgc2VlIGEgZnJhbWUgd2l0aCBzY3JvbGxiYXJzIGFuZCBvbmUgUEFTUyBt
ZXNzYWdlIGluIGl0LgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Ny
b2xsYmFyLWNyYXNoLW9uLXJlZnJlc2guaHRtbCBiL0xheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Ny
b2xsYmFyLWNyYXNoLW9uLXJlZnJlc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5mZDNiNTQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc2Nyb2xsYmFy
cy9zY3JvbGxiYXItY3Jhc2gtb24tcmVmcmVzaC5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIHdpbmRvdy5mcmFtZXMubXlmcmFtZS5sb2NhdGlvbi5yZWxvYWQodHJ1
ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxw
PlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNjMyNiI+YnVnIDI2MzI2PC9hPjoKK1RoaXMgdGVzdHMgdGhhdCB0aGVyZSBpcyBubyBjcmFz
aCB3aGVuIHJlZnJlc2hpbmcgYSBwYWdlIHdpdGggYSBjdXN0b20gc2Nyb2xsYmFyLiAgT24gc3Vj
Y2VzcyB5b3Ugc2hvdWxkIHNlZSBhIGZyYW1lIHdpdGggc2Nyb2xsYmFycyBhbmQgb25lIFBBU1Mg
bWVzc2FnZSBpbiBpdC48cC8+Cis8aWZyYW1lIG5hbWU9Im15ZnJhbWUiIGlkPSJteWZyYW1lIiBz
cmM9InJlc291cmNlcy9wYWdlLXdpdGgtY3VzdG9tLXNjcm9sbGJhcnMuaHRtbCI+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGQ5NzhkMWMuLjBhOWIyYmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMDktMDYtMTYgIERh
dmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT046IFdoZW4gdGhlIG1haW4gcGFnZSAo
U2Nyb2xsVmlldykgaGFzIGEgY3VzdG9tIHNjcm9sbGJhciwgaXQgY3Jhc2hlcyBvbiBkZXN0cnVj
dGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2
MzI2CisKKyAgICAgICAgVGVzdDogc2Nyb2xsYmFycy9zY3JvbGxiYXItY3Jhc2gtb24tcmVmcmVz
aC5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmRldGFjaCk6CisgICAgICAgIEdpdmVzIHRoZSBGcmFtZVZpZXcgYSBjaGFuZ2Ug
dG8gZG8gYW55IG5lY2Vzc2FyeSBjbGVhbnVwIG9uCisgICAgICAgIERvY3VtZW50OjpkZXRhY2go
KSB3aGljaCBpcyB3aGVyZSB0aGUgcmVuZGVyQXJlbmEgZ2V0cyBkZXRyb3llZC4KKyAgICAgICAg
KiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmRldGFj
aEN1c3RvbVNjcm9sbGJhcnMpOgorICAgICAgICBHZXRzIHJpZCBvZiBhbnkgY3VzdG9tIHNjcm9s
bGJhcnMgKGlmIHRoZSBkb2NtZW50IHN1cHBsaWVkIHRoZW0pLgorICAgICAgICAqIHBhZ2UvRnJh
bWVWaWV3Lmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYmFyLmg6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxiYXI6OmlzQ3VzdG9tU2Nyb2xsYmFyKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6ZGVzdHJv
eSk6CisgICAgICAgIFJlbW92ZWQgdGhlIGNoZWNrIGZvciBkb2N1bWVudCgpLT5mcmFtZSgpLiAg
SWYgZnJhbWUoKSBpcyAwIGluIHRoaXMgY29kZSwKKyAgICAgICAgdGhlbiB0aGUgY2FsbCB0byBh
bmltYXRpb24oKSBpcyBhbHNvIGluY29ycmVjdCAoc2luY2UgaXQgZG9lcyBkb2N1bWVudCgpLT5m
cmFtZSgpLT5hbmltYXRpb24oKSkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJh
ci5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2Nyb2xsYmFyOjppc0N1c3RvbVNjcm9sbGJh
cik6CisKIDIwMDktMDYtMTkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNDc5NmI2My4u
ZWM0MzlkZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNSw3ICs1LDcgQEAKICAqICAgICAgICAgICAoQykgMjAw
NiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEB3ZWJraXQub3JnKQogICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQotICogQ29w
eXJpZ2h0IChDKSAyMDA4IERhdmlkIExldmluIChsZXZpbkBjaHJvbWl1bS5vcmcpCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDgsIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMTMzOCw2ICsxMzM4LDEyIEBAIHZvaWQgRG9jdW1lbnQ6OmRl
dGFjaCgpCiAgICAgLy8gaW4gb3JkZXIgdG8gc3RvcCBtZWRpYSBlbGVtZW50cwogICAgIGRvY3Vt
ZW50V2lsbEJlY29tZUluYWN0aXZlKCk7CiAgICAgCisgICAgaWYgKG1fZnJhbWUpIHsKKyAgICAg
ICAgRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS0+dmlldygpOworICAgICAgICBpZiAodmlldykK
KyAgICAgICAgICAgIHZpZXctPmRldGFjaEN1c3RvbVNjcm9sbGJhcnMoKTsKKyAgICB9CisKICAg
ICAvLyBpbmRpY2F0ZSBkZXN0cnVjdGlvbiBtb2RlLCAgaS5lLiBhdHRhY2hlZCgpIGJ1dCByZW5k
ZXJlciA9PSAwCiAgICAgc2V0UmVuZGVyZXIoMCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMzhiMDVl
OC4uOWNlM2M4MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTYsNiArNiw3IEBACiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA2IEdyYWhhbSBEZW5uaXMgKGdyYWhhbS5kZW5u
aXNAZ21haWwuY29tKQogICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3Yg
KGFwQG55cG9wLmNvbSkKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMjgsNiArMjI5LDMwIEBAIHZv
aWQgRnJhbWVWaWV3Ojppbml0KCkKICAgICB9CiB9CiAKK3ZvaWQgRnJhbWVWaWV3OjpkZXRhY2hD
dXN0b21TY3JvbGxiYXJzKCkKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybjsK
KworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CisgICAgaWYg
KCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgRWxlbWVudCogYm9keSA9IGRvY3Vt
ZW50LT5ib2R5KCk7CisgICAgaWYgKCFib2R5KQorICAgICAgICByZXR1cm47CisKKyAgICBSZW5k
ZXJCb3gqIHJlbmRlckJveCA9IGJvZHktPnJlbmRlckJveCgpOworCisgICAgU2Nyb2xsYmFyKiBo
b3Jpem9udGFsQmFyID0gaG9yaXpvbnRhbFNjcm9sbGJhcigpOworICAgIGlmIChob3Jpem9udGFs
QmFyICYmIGhvcml6b250YWxCYXItPmlzQ3VzdG9tU2Nyb2xsYmFyKCkgJiYgcmVpbnRlcnByZXRf
Y2FzdDxSZW5kZXJTY3JvbGxiYXIqPihob3Jpem9udGFsQmFyKS0+b3duaW5nUmVuZGVyZXIoKSA9
PSByZW5kZXJCb3gpCisgICAgICAgIHNldEhhc0hvcml6b250YWxTY3JvbGxiYXIoZmFsc2UpOwor
CisgICAgU2Nyb2xsYmFyKiB2ZXJ0aWNhbEJhciA9IHZlcnRpY2FsU2Nyb2xsYmFyKCk7CisgICAg
aWYgKHZlcnRpY2FsQmFyICYmIHZlcnRpY2FsQmFyLT5pc0N1c3RvbVNjcm9sbGJhcigpICYmIHJl
aW50ZXJwcmV0X2Nhc3Q8UmVuZGVyU2Nyb2xsYmFyKj4odmVydGljYWxCYXIpLT5vd25pbmdSZW5k
ZXJlcigpID09IHJlbmRlckJveCkKKyAgICAgICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIoZmFs
c2UpOworfQorCiB2b2lkIEZyYW1lVmlldzo6Y2xlYXIoKQogewogICAgIHNldENhbkJsaXRPblNj
cm9sbCh0cnVlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCAxNmVhZGM1Li45ZGFiZTU2IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBA
IC0xMDUsNiArMTA1LDcgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbE1vdmVPZmZzY3JlZW4oKTsK
IAogICAgIHZvaWQgcmVzZXRTY3JvbGxiYXJzKCk7CisgICAgdm9pZCBkZXRhY2hDdXN0b21TY3Jv
bGxiYXJzKCk7CiAKICAgICB2b2lkIGNsZWFyKCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsYmFyLmggYi9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5oCmluZGV4IDE5
ZDk1ZDcuLjcxMWFlMzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmgK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuaApAQCAtNTgsNiArNTgsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRDbGllbnQoU2Nyb2xsYmFyQ2xpZW50KiBjbGllbnQpIHsgbV9jbGll
bnQgPSBjbGllbnQ7IH0KICAgICBTY3JvbGxiYXJDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fY2xpZW50OyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNDdXN0b21TY3JvbGxiYXIoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRhdGlvbjsgfQogICAgIAogICAgIGludCB2YWx1
ZSgpIGNvbnN0IHsgcmV0dXJuIGxyb3VuZGYobV9jdXJyZW50UG9zKTsgfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAKaW5kZXggYzQ0OGEwZi4uOWE2NTI0MiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCkBAIC0xODE5LDcgKzE4MTksNyBAQCB2b2lkIFJlbmRlck9iamVjdDo6ZGVz
dHJveSgpCiAgICAgICAgIGNoaWxkcmVuLT5kZXN0cm95TGVmdG92ZXJDaGlsZHJlbigpOwogCiAg
ICAgLy8gSWYgdGhpcyByZW5kZXJlciBpcyBiZWluZyBhdXRvc2Nyb2xsZWQsIHN0b3AgdGhlIGF1
dG9zY3JvbGwgdGltZXIKLSAgICBpZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKSAmJiBkb2N1bWVudCgp
LT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+YXV0b3Njcm9sbFJlbmRlcmVyKCkgPT0gdGhpcykK
KyAgICBpZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmF1dG9zY3JvbGxS
ZW5kZXJlcigpID09IHRoaXMpCiAgICAgICAgIGRvY3VtZW50KCktPmZyYW1lKCktPmV2ZW50SGFu
ZGxlcigpLT5zdG9wQXV0b3Njcm9sbFRpbWVyKHRydWUpOwogCiAgICAgaWYgKG1faGFzQ291bnRl
ck5vZGVNYXApCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXIu
aCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5oCmluZGV4IDUyNGM0ZTguLjI0
NWQ3NTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5oCisr
KyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5oCkBAIC03MCw2ICs3MCw3IEBA
IHB1YmxpYzoKICAgICBJbnRSZWN0IHRyYWNrUGllY2VSZWN0V2l0aE1hcmdpbnMoU2Nyb2xsYmFy
UGFydCwgY29uc3QgSW50UmVjdCYpOwogCiAgICAgaW50IG1pbmltdW1UaHVtYkxlbmd0aCgpOwor
ICAgIHZpcnR1YWwgYm9vbCBpc0N1c3RvbVNjcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KIAogcHJpdmF0ZToKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBnZXRTY3JvbGxiYXJQ
c2V1ZG9TdHlsZShTY3JvbGxiYXJQYXJ0LCBQc2V1ZG9JZCk7Cg==
</data>
<flag name="review"
          id="16202"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>