<?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>5354</bug_id>
          
          <creation_ts>2005-10-12 14:46:46 -0700</creation_ts>
          <short_desc>Corner case where you can select outside the bounds of an editable block.</short_desc>
          <delta_ts>2005-12-02 16:35:37 -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>HTML Editing</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>4375</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dan Wood">dwood</reporter>
          <assigned_to name="Justin Garcia">justin.garcia</assigned_to>
          <cc>ap</cc>
    
    <cc>ttalbot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>21921</commentid>
    <comment_count>0</comment_count>
    <who name="Dan Wood">dwood</who>
    <bug_when>2005-10-12 14:46:46 -0700</bug_when>
    <thetext>To reproduce:

View attached page &quot;testEditableNotReduced.html&quot; with Safari linking to TOT (as of 2005-Oct-12).
Drag from the editable block of text downward, observe behavior.
Click on the edtable block, choose &apos;Select All&apos; from menu.

Repeat with &apos;testEditableReduced.html&apos; for reduced case

Expected Behavior: After the fix of bug #4375, you should not be able to drag or select-all outside of 
an editable block.

Actual behavior: More than just the editable block is selected.  On the non-reduced case, it selects 
outside in multiple directions.

Notes: The reduced case is the minimum contents I needed to reproduce.  There has to be a div below 
the editable block, with overflow:hidden; style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21922</commentid>
    <comment_count>1</comment_count>
      <attachid>4329</attachid>
    <who name="Dan Wood">dwood</who>
    <bug_when>2005-10-12 14:48:03 -0700</bug_when>
    <thetext>Created attachment 4329
Reduced &amp; unreduced test cases showing selection problem</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21923</commentid>
    <comment_count>2</comment_count>
    <who name="Dan Wood">dwood</who>
    <bug_when>2005-10-12 14:49:54 -0700</bug_when>
    <thetext>FYI It was justin garcia who fixed 4375 just a few days ago....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24182</commentid>
    <comment_count>3</comment_count>
      <attachid>4707</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2005-11-16 20:51:48 -0800</bug_when>
    <thetext>Created attachment 4707
first cut

We added SelectionController::adjustExtentForEditableContent for 4375.	In it,
if the base is inside an editable element and the extent is not, and if the
extent comes after the base, we use the last position in the editable element
for the extent.  Here&apos;s a snippit:

// base is in an editable region, but extent is not.
if (baseRoot) {
    Position first(Position(baseRoot, 0));
    Position last(Position(baseRoot, baseRoot-&gt;maxDeepOffset()));
	
    m_extent = baseIsStart ? last : first;
...

Later, in SelectionController::validate(), VisiblePositions are created out of
base and extent.  The problem is that a VisiblePosition created with the last
position in an block doesn&apos;t always stay inside that block.  This is why the
selection &quot;spills&quot; out of the editable div in the test case.  

Attached is a first cut at fixing VisiblePosition::initDownstream so that it
only uses the nextVisiblePosition if that position is inside the enclosing
block of the position passed to VisiblePosition&apos;s constructor.	It changes a
few layout tests in acceptible ways except one in editing/style, which I&apos;m
looking into.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24215</commentid>
    <comment_count>4</comment_count>
      <attachid>4719</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2005-11-17 19:27:25 -0800</bug_when>
    <thetext>Created attachment 4719
patch

We sometimes want to leave the block containing the input position.  For
example, if a script tries to set a caret selection in an empty div with
adjacent pieces of visible text, we should leave the empty div to find a valid
visible position.  We should only leave the original containing block if there
aren&apos;t any valid visible positions inside of it.  

The ChangeLog entry explains the rest of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24244</commentid>
    <comment_count>5</comment_count>
      <attachid>4727</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2005-11-18 13:41:08 -0800</bug_when>
    <thetext>Created attachment 4727
new patch

Made a few small tweaks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24251</commentid>
    <comment_count>6</comment_count>
      <attachid>4727</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-11-18 16:04:45 -0800</bug_when>
    <thetext>Comment on attachment 4727
new patch

Looks like a really great change to me. Given our conversation about how this
affected layout tests (gave better results on 4), r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24284</commentid>
    <comment_count>7</comment_count>
    <who name="Dan Wood">dwood</who>
    <bug_when>2005-11-19 20:56:25 -0800</bug_when>
    <thetext>I found a problem with the existing solution!

In my reduced test case, make sure no text is selected, then double-click somewhere in the blank area to 
the right of the word &quot;responsible.&quot;  Notice that the selection goes outside the editable box. If you type a 
letter with that selected, you&apos;ve just joined with the text below.

so we&apos;re getting close, but it&apos;s still possible to do damage to your DOM by allowing the selection to go 
past the last character in the editable div.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24785</commentid>
    <comment_count>8</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2005-11-28 15:39:50 -0800</bug_when>
    <thetext>The bug that Dan points out comes from the fact that SelectionController::validate does changes to the 
selection that aren&apos;t validated (changes when the granularity passed to validate does not equal 
CHARACTER).  It doesn&apos;t seem right that such changes are part of &quot;validation&quot; at all.

This problem is unrelated to the patch above, so I&apos;m filing a new bug for it and landing the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24786</commentid>
    <comment_count>9</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2005-11-28 15:40:12 -0800</bug_when>
    <thetext>The new bug is 5856.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24788</commentid>
    <comment_count>10</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2005-11-28 15:45:47 -0800</bug_when>
    <thetext>I said above that the problem was unrelated to the one addressed by the reviewed patch, but that wasn&apos;t 
quite right.  I meant to say that the cause of the problem is unrelated to the changes to visible positions 
made in the patch.  The two problems are actually closely related (a selection that is based in an editable 
div is allowed to extend into a non-editable region).  I&apos;m pushing the new bug into a separate report to 
make it easier to track the changes necessary to fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24800</commentid>
    <comment_count>11</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2005-11-28 17:35:51 -0800</bug_when>
    <thetext>Landed the patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>4329</attachid>
            <date>2005-10-12 14:48:03 -0700</date>
            <delta_ts>2005-10-12 14:48:03 -0700</delta_ts>
            <desc>Reduced &amp; unreduced test cases showing selection problem</desc>
            <filename>5354_test_submission.bz2</filename>
            <type>application/octet-stream</type>
            <size>27851</size>
            <attacher name="Dan Wood">dwood</attacher>
            
              <data encoding="base64">QlpoOTFBWSZTWQkygl8AOkH/////////////////////////////////////////////4E5fB9AK
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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4707</attachid>
            <date>2005-11-16 20:51:48 -0800</date>
            <delta_ts>2005-11-17 19:27:25 -0800</delta_ts>
            <desc>first cut</desc>
            <filename>vp.txt</filename>
            <type>text/plain</type>
            <size>845</size>
            <attacher name="Justin Garcia">justin.garcia</attacher>
            
              <data encoding="base64">SW5kZXg6IGVkaXRpbmcvdmlzaWJsZV9wb3NpdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRpdGluZy92aXNpYmxlX3Bvc2l0aW9uLmNwcCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS42MgpkaWZmIC11IC1yMS42MiB2aXNpYmxlX3Bvc2l0aW9uLmNw
cAotLS0gZWRpdGluZy92aXNpYmxlX3Bvc2l0aW9uLmNwcAk4IE5vdiAyMDA1IDA4OjEwOjU1IC0w
MDAwCTEuNjIKKysrIGVkaXRpbmcvdmlzaWJsZV9wb3NpdGlvbi5jcHAJMTcgTm92IDIwMDUgMDQ6
NDY6NTkgLTAwMDAKQEAgLTE0NCw3ICsxNDQsOSBAQAogICAgICAgICB9CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgUG9zaXRpb24gbmV4dCA9IG5leHRWaXNpYmxlUG9zaXRpb24oZGVlcFBvcyk7Ci0g
ICAgICAgIGlmIChuZXh0LmlzTm90TnVsbCgpKSB7CisgICAgICAgIAorICAgICAgICBOb2RlSW1w
bCAqb3JpZ2luYWxCbG9jayA9IGRlZXBQb3Mubm9kZSgpID8gZGVlcFBvcy5ub2RlKCktPmVuY2xv
c2luZ0Jsb2NrRmxvd0VsZW1lbnQoKSA6IDA7CisgICAgICAgIGlmIChuZXh0LmlzTm90TnVsbCgp
ICYmIG5leHQubm9kZSgpLT5pc0FuY2VzdG9yKG9yaWdpbmFsQmxvY2spKSB7CiAgICAgICAgICAg
ICBtX2RlZXBQb3NpdGlvbiA9IG5leHQ7CiAgICAgICAgIH0gZWxzZSBpZiAoaXNSZW5kZXJlZEJS
KGRlZXBQb3Mubm9kZSgpKSAmJiBkZWVwUG9zLm9mZnNldCgpID09IDEpIHsKICAgICAgICAgICAg
IG1fZGVlcFBvc2l0aW9uID0gUG9zaXRpb24oZGVlcFBvcy5ub2RlKCksIDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4719</attachid>
            <date>2005-11-17 19:27:25 -0800</date>
            <delta_ts>2005-11-18 13:41:17 -0800</delta_ts>
            <desc>patch</desc>
            <filename>vp.txt</filename>
            <type>text/plain</type>
            <size>6408</size>
            <attacher name="Justin Garcia">justin.garcia</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9D
aGFuZ2VMb2csdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzgwCmRpZmYgLXUgLXIxLjM4MCBDaGFu
Z2VMb2cKLS0tIENoYW5nZUxvZwkxNyBOb3YgMjAwNSAyMzozOTo1NyAtMDAwMAkxLjM4MAorKysg
Q2hhbmdlTG9nCTE4IE5vdiAyMDA1IDAzOjIzOjI0IC0wMDAwCkBAIC0xLDMgKzEsMjkgQEAKKzIw
MDUtMTEtMTcgIEp1c3RpbiBHYXJjaWEgIDxqdXN0aW4uZ2FyY2lhQGFwcGxlLmNvbT4KKworICAg
ICAgICBGaXhlJCBmb3IgPGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTM1ND46CisgICAgICAgIENvcm5lciBjYXNlIHdoZXJlIHlvdSBjYW4gc2VsZWN0IG91
dHNpZGUgdGhlIGJvdW5kcyBvZiBhbiBlZGl0YWJsZSBibG9jay4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkL2FkZGVkIGVkaXRpbmcgdGVz
dCBjYXNlcyB0byByZWZsZWN0IGZpeC4KKworICAgICAgICAqIGtodG1sL2VkaXRpbmcvdmlzaWJs
ZV9wb3NpdGlvbi5jcHA6CisgICAgICAgIChraHRtbDo6VmlzaWJsZVBvc2l0aW9uOjppbml0KToK
KyAgICAgICAgSXQncyBvayB0byBkbyBzb21lIGh1bnRpbmcgdG8gZmluZCBhIHZhbGlkIFZpc2Js
ZVBvc2l0aW9uIGdpdmVuIGEgcG9zaXRpb24gdGhhdCBpcyBub3QgCisgICAgICAgIHNvbWV3aGVy
ZSB2aXNpYmxlLCBsaWtlIGluc2lkZSBhbiBlbXB0eSBkaXYuICBCdXQgb25seSBsZWF2ZSB0aGUg
YmxvY2sgY29udGFpbmluZyB0aGUgCisgICAgICAgIHBvc2l0aW9uIHVzZWQgdG8gY29uc3RydWN0
IHRoZSBWaXNpYmxlUG9zaXRpb24gaWYgd2UgY2FuJ3QgZmluZCBhIFZpc2libGVQb3NpdGlvbgor
ICAgICAgICBpbnNpZGUgdGhhdCBibG9jay4KKyAgICAgICAgV2Ugd2VyZW4ndCB1c2luZyB0aGUg
ZXF1aXZhbGVudERlZXBQb3NpdGlvbiBvZiB0aGUgaW5wdXQgcG9zaXRpb24gdG8gbWFrZSB0aGUg
CisgICAgICAgIGluaXRVcHN0cmVhbS9pbml0RG93bnN0cmVhbSBkZWNpc2lvbiwgc28gd2Ugd2Vy
ZSBzb21ldGltZXMgbW92aW5nIHBhc3QgW2JyLCAwXS4gIAorICAgICAgICBJIGdvdCByaWQgb2Yg
aW5pdFVwc3RyZWFtIGFuZCBpbmNsdWRlZCB0aGUgY2hlY2sgdG8gcHJldmVudCBtb3ZpbmcgcGFz
dCBbYnIsIDBdIAorICAgICAgICBpbnNpZGUgdGhlIG5vdyBnZW5lcmFsaXplZCBpbml0KCkuCisg
ICAgICAgIEFzc2VydCB0aGF0IG1fZGVlcFBvc2l0aW9uIGlzIG5vdCBhdCBbYnIsIDFdLgorICAg
ICAgICAqIGtodG1sL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHA6CisgICAgICAgIChraHRtbDo6
ZW5kT2ZQYXJhZ3JhcGgpOgorICAgICAgICBUaGVyZSdzIG5vIHN1Y2ggdGhpbmcgYXMgYSBWaXNp
YmxlUG9zaXRpb24gYXQgW2JyLCAxXSwganVzdCBbYnIsIDBdIGFuZCB0aGUgc3RhcnQgb2YgdGhl
IAorICAgICAgICBuZXh0IGxpbmUuICBTbyB3aGVuIGFza2VkIHRvIGluY2x1ZGVMaW5lQnJlYWss
IHdlIG5vdyByZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IGxpbmUgCisgICAgICAgIGFzIGxv
bmcgYXMgaXQgaXMgbm9uLW51bGwuCisKIDIwMDUtMTEtMTcgIEJldGggRGFraW4gIDxiZGFraW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEh5YXR0IGFuZCBFcmljLgpJbmRleDog
a2h0bWwvZWRpdGluZy92aXNpYmxlX3Bvc2l0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0aW5nL3Zpc2libGVfcG9zaXRpb24uY3BwLHYKcmV0
cmlldmluZyByZXZpc2lvbiAxLjYyCmRpZmYgLXUgLXIxLjYyIHZpc2libGVfcG9zaXRpb24uY3Bw
Ci0tLSBraHRtbC9lZGl0aW5nL3Zpc2libGVfcG9zaXRpb24uY3BwCTggTm92IDIwMDUgMDg6MTA6
NTUgLTAwMDAJMS42MgorKysga2h0bWwvZWRpdGluZy92aXNpYmxlX3Bvc2l0aW9uLmNwcAkxOCBO
b3YgMjAwNSAwMzoyMzoyNSAtMDAwMApAQCAtNzUsNjMgKzc1LDcgQEAKIHZvaWQgVmlzaWJsZVBv
c2l0aW9uOjppbml0KGNvbnN0IFBvc2l0aW9uICZwb3MsIEVBZmZpbml0eSBhZmZpbml0eSkKIHsK
ICAgICBtX2FmZmluaXR5ID0gYWZmaW5pdHk7Ci0KLSAgICAvLyBGb3IgPGJyPiAwLCBpdCdzIGlt
cG9ydGFudCBub3QgdG8gbW92ZSBwYXN0IHRoZSA8YnI+LgotICAgIGlmIChwb3Mubm9kZSgpICYm
IHBvcy5ub2RlKCktPmhhc1RhZ05hbWUoYnJUYWcpICYmIHBvcy5vZmZzZXQoKSA9PSAwKQotICAg
ICAgICBpbml0VXBzdHJlYW0ocG9zKTsKLSAgICBlbHNlCi0gICAgICAgIGluaXREb3duc3RyZWFt
KHBvcyk7Ci0KLSAgICAvLyB3aGVuIG5vdCBhdCBsaW5lIGJyZWFrLCBtYWtlIHN1cmUgdG8gZW5k
IHVwIHdpdGggRE9XTlNUUkVBTSBhZmZpbml0eS4gIAotICAgIGlmIChtX2FmZmluaXR5ID09IFVQ
U1RSRUFNICYmIChpc051bGwoKSB8fCBpblNhbWVMaW5lKFZpc2libGVQb3NpdGlvbihwb3MsIERP
V05TVFJFQU0pLCAqdGhpcykpKQotICAgICAgICBtX2FmZmluaXR5ID0gRE9XTlNUUkVBTTsKLX0K
LQotdm9pZCBWaXNpYmxlUG9zaXRpb246OmluaXRVcHN0cmVhbShjb25zdCBQb3NpdGlvbiAmcG9z
KQotewotICAgIFBvc2l0aW9uIGRlZXBQb3MgPSBkZWVwRXF1aXZhbGVudChwb3MpOwotCi0gICAg
aWYgKGlzQ2FuZGlkYXRlKGRlZXBQb3MpKSB7Ci0gICAgICAgIG1fZGVlcFBvc2l0aW9uID0gZGVl
cFBvczsKLSAgICAgICAgUG9zaXRpb24gbmV4dCA9IG5leHRWaXNpYmxlUG9zaXRpb24oZGVlcFBv
cyk7Ci0gICAgICAgIGlmIChuZXh0LmlzTm90TnVsbCgpKSB7Ci0gICAgICAgICAgICBQb3NpdGlv
biBwcmV2aW91cyA9IHByZXZpb3VzVmlzaWJsZVBvc2l0aW9uKG5leHQpOwotICAgICAgICAgICAg
aWYgKHByZXZpb3VzLmlzTm90TnVsbCgpKQotICAgICAgICAgICAgICAgIG1fZGVlcFBvc2l0aW9u
ID0gcHJldmlvdXM7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIFBvc2l0
aW9uIHByZXZpb3VzID0gcHJldmlvdXNWaXNpYmxlUG9zaXRpb24oZGVlcFBvcyk7Ci0gICAgICAg
IGlmIChwcmV2aW91cy5pc05vdE51bGwoKSkgewotICAgICAgICAgICAgbV9kZWVwUG9zaXRpb24g
PSBwcmV2aW91czsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIFBvc2l0aW9uIG5leHQg
PSBuZXh0VmlzaWJsZVBvc2l0aW9uKGRlZXBQb3MpOwotICAgICAgICAgICAgaWYgKG5leHQuaXNO
b3ROdWxsKCkpCi0gICAgICAgICAgICAgICAgbV9kZWVwUG9zaXRpb24gPSBuZXh0OwotICAgICAg
ICB9Ci0gICAgfQotfQotCi1zdGF0aWMgYm9vbCBpc1JlbmRlcmVkQlIoTm9kZUltcGwgKm5vZGUp
Ci17Ci0gICAgaWYgKCFub2RlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBSZW5kZXJP
YmplY3QgKnJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsKLSAgICBpZiAoIXJlbmRlcmVyKQot
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgaWYgKHJlbmRlcmVyLT5zdHlsZSgpLT52
aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYg
KHJlbmRlcmVyLT5pc0JSKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgcmV0dXJuIGZh
bHNlOwotfQotCi12b2lkIFZpc2libGVQb3NpdGlvbjo6aW5pdERvd25zdHJlYW0oY29uc3QgUG9z
aXRpb24gJnBvcykKLXsKICAgICBQb3NpdGlvbiBkZWVwUG9zID0gZGVlcEVxdWl2YWxlbnQocG9z
KTsKIAogICAgIGlmIChpc0NhbmRpZGF0ZShkZWVwUG9zKSkgewpAQCAtMTQ0LDE2ICs4OCwzMiBA
QAogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgUG9zaXRpb24gbmV4dCA9IG5leHRW
aXNpYmxlUG9zaXRpb24oZGVlcFBvcyk7Ci0gICAgICAgIGlmIChuZXh0LmlzTm90TnVsbCgpKSB7
CisgICAgICAgIFBvc2l0aW9uIHByZXYgPSBwcmV2aW91c1Zpc2libGVQb3NpdGlvbihkZWVwUG9z
KTsKKyAgICAgICAgCisgICAgICAgIGlmIChuZXh0LmlzTnVsbCgpICYmIHByZXYuaXNOdWxsKCkp
CisgICAgICAgICAgICBtX2RlZXBQb3NpdGlvbiA9IFBvc2l0aW9uKCk7CisgICAgICAgIGVsc2Ug
aWYgKG5leHQuaXNOdWxsKCkpCisgICAgICAgICAgICBtX2RlZXBQb3NpdGlvbiA9IHByZXY7Cisg
ICAgICAgIGVsc2UgaWYgKHByZXYuaXNOdWxsKCkpCiAgICAgICAgICAgICBtX2RlZXBQb3NpdGlv
biA9IG5leHQ7Ci0gICAgICAgIH0gZWxzZSBpZiAoaXNSZW5kZXJlZEJSKGRlZXBQb3Mubm9kZSgp
KSAmJiBkZWVwUG9zLm9mZnNldCgpID09IDEpIHsKLSAgICAgICAgICAgIG1fZGVlcFBvc2l0aW9u
ID0gUG9zaXRpb24oZGVlcFBvcy5ub2RlKCksIDApOwotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgUG9zaXRpb24gcHJldmlvdXMgPSBwcmV2aW91c1Zpc2libGVQb3NpdGlvbihkZWVwUG9z
KTsKLSAgICAgICAgICAgIGlmIChwcmV2aW91cy5pc05vdE51bGwoKSkKLSAgICAgICAgICAgICAg
ICBtX2RlZXBQb3NpdGlvbiA9IHByZXZpb3VzOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
IE5vZGVJbXBsICpvcmlnaW5hbEJsb2NrID0gcG9zLm5vZGUoKSA/IHBvcy5ub2RlKCktPmVuY2xv
c2luZ0Jsb2NrRmxvd0VsZW1lbnQoKSA6IDA7CisgICAgICAgICAgICBib29sIG5leHRJc0luT3Jp
Z2luYWxCbG9jayA9IG5leHQubm9kZSgpLT5pc0FuY2VzdG9yKG9yaWdpbmFsQmxvY2spOworICAg
ICAgICAgICAgYm9vbCBwcmV2SXNJbk9yaWdpbmFsQmxvY2sgPSBwcmV2Lm5vZGUoKS0+aXNBbmNl
c3RvcihvcmlnaW5hbEJsb2NrKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKCFuZXh0
SXNJbk9yaWdpbmFsQmxvY2sgJiYgcHJldklzSW5PcmlnaW5hbEJsb2NrIHx8IAorICAgICAgICAg
ICAgICAgIChkZWVwUG9zLm5vZGUoKS0+aGFzVGFnTmFtZShiclRhZykgJiYgZGVlcFBvcy5vZmZz
ZXQoKSA9PSAwKSkKKyAgICAgICAgICAgICAgICBtX2RlZXBQb3NpdGlvbiA9IHByZXY7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbV9kZWVwUG9zaXRpb24gPSBuZXh0OwogICAg
ICAgICB9CiAgICAgfQorICAgIAorICAgIEFTU0VSVCghKG1fZGVlcFBvc2l0aW9uLm5vZGUoKS0+
aGFzVGFnTmFtZShiclRhZykgJiYgbV9kZWVwUG9zaXRpb24ub2Zmc2V0KCkgPT0gMSkpOworCisg
ICAgLy8gV2hlbiBub3QgYXQgYSBsaW5lIHdyYXAsIG1ha2Ugc3VyZSB0byBlbmQgdXAgd2l0aCBE
T1dOU1RSRUFNIGFmZmluaXR5LgorICAgIGlmIChtX2FmZmluaXR5ID09IFVQU1RSRUFNICYmIChp
c051bGwoKSB8fCBpblNhbWVMaW5lKFZpc2libGVQb3NpdGlvbihwb3MsIERPV05TVFJFQU0pLCAq
dGhpcykpKQorICAgICAgICBtX2FmZmluaXR5ID0gRE9XTlNUUkVBTTsKIH0KIAogVmlzaWJsZVBv
c2l0aW9uIFZpc2libGVQb3NpdGlvbjo6bmV4dCgpIGNvbnN0CkluZGV4OiBraHRtbC9lZGl0aW5n
L3Zpc2libGVfdW5pdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3Jl
L2todG1sL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
NDIKZGlmZiAtdSAtcjEuNDIgdmlzaWJsZV91bml0cy5jcHAKLS0tIGtodG1sL2VkaXRpbmcvdmlz
aWJsZV91bml0cy5jcHAJMiBOb3YgMjAwNSAwODo1Mjo0MyAtMDAwMAkxLjQyCisrKyBraHRtbC9l
ZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCTE4IE5vdiAyMDA1IDAzOjIzOjI1IC0wMDAwCkBAIC02
MTEsOCArNjExLDExIEBACiAgICAgICAgIGlmIChzdHlsZS0+dmlzaWJpbGl0eSgpICE9IFZJU0lC
TEUpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKHItPmlzQlIoKSkgewotICAg
ICAgICAgICAgaWYgKGluY2x1ZGVMaW5lQnJlYWspCi0gICAgICAgICAgICAgICAgcmV0dXJuIFZp
c2libGVQb3NpdGlvbihuLCAxLCBET1dOU1RSRUFNKTsKKyAgICAgICAgICAgIGlmIChpbmNsdWRl
TGluZUJyZWFrKSB7CisgICAgICAgICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIGJyKG4sIDAsIERP
V05TVFJFQU0pOworICAgICAgICAgICAgICAgIFZpc2libGVQb3NpdGlvbiBuZXh0ID0gYnIubmV4
dCgpOworICAgICAgICAgICAgICAgIHJldHVybiBuZXh0LmlzTm90TnVsbCgpID8gbmV4dCA6IGJy
OworICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
aWYgKHItPmlzQmxvY2tGbG93KCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4727</attachid>
            <date>2005-11-18 13:41:08 -0800</date>
            <delta_ts>2005-11-18 16:04:45 -0800</delta_ts>
            <desc>new patch</desc>
            <filename>vp.txt</filename>
            <type>text/plain</type>
            <size>6292</size>
            <attacher name="Justin Garcia">justin.garcia</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9D
aGFuZ2VMb2csdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzgxCmRpZmYgLXUgLXIxLjM4MSBDaGFu
Z2VMb2cKLS0tIENoYW5nZUxvZwkxOCBOb3YgMjAwNSAyMTozNDozNSAtMDAwMAkxLjM4MQorKysg
Q2hhbmdlTG9nCTE4IE5vdiAyMDA1IDIxOjQwOjQzIC0wMDAwCkBAIC0xLDMgKzEsNSBAQAorMjAw
NS0xMS0xOCAgSnVzdGluIEdhcmNpYSAgPGp1c3Rpbi5nYXJjaWFAYXBwbGUuY29tPg0NICAgICAg
ICBGaXhlcyBmb3IgPGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTM1ND46DSAgICAgICAgQ29ybmVyIGNhc2Ugd2hlcmUgeW91IGNhbiBzZWxlY3Qgb3V0c2lk
ZSB0aGUgYm91bmRzIG9mIGFuIGVkaXRhYmxlIGJsb2NrLg0NICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4NDSAgICAgICAgVXBkYXRlZC9hZGRlZCBlZGl0aW5nIHRlc3QgY2FzZXMg
dG8gcmVmbGVjdCBmaXguDQ0gICAgICAgICoga2h0bWwvZWRpdGluZy92aXNpYmxlX3Bvc2l0aW9u
LmNwcDoNICAgICAgICAoa2h0bWw6OlZpc2libGVQb3NpdGlvbjo6aW5pdCk6DSAgICAgICAgSXQn
cyBvayB0byBkbyBzb21lIGh1bnRpbmcgdG8gZmluZCBhIHZhbGlkIFZpc2JsZVBvc2l0aW9uIGdp
dmVuIGEgcG9zaXRpb24gdGhhdCBpcyBub3QgDSAgICAgICAgc29tZXdoZXJlIHZpc2libGUsIGxp
a2UgaW5zaWRlIGFuIGVtcHR5IGRpdi4gIEJ1dCBvbmx5IGxlYXZlIHRoZSBibG9jayBjb250YWlu
aW5nIHRoZSANICAgICAgICBwb3NpdGlvbiB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgVmlzaWJsZVBv
c2l0aW9uIGlmIHdlIGNhbid0IGZpbmQgYSBWaXNpYmxlUG9zaXRpb24NICAgICAgICBpbnNpZGUg
dGhhdCBibG9jay4NICAgICAgICBXZSB3ZXJlbid0IHVzaW5nIHRoZSBlcXVpdmFsZW50RGVlcFBv
c2l0aW9uIG9mIHRoZSBpbnB1dCBwb3NpdGlvbiB0byBtYWtlIHRoZSANICAgICAgICBpbml0VXBz
dHJlYW0vaW5pdERvd25zdHJlYW0gZGVjaXNpb24sIHNvIHdlIHdlcmUgc29tZXRpbWVzIG1vdmlu
ZyBwYXN0IFticiwgMF0uICANICAgICAgICBJIGdvdCByaWQgb2YgaW5pdFVwc3RyZWFtIGFuZCBp
bmNsdWRlZCB0aGUgY2hlY2sgdG8gcHJldmVudCBtb3ZpbmcgcGFzdCBbYnIsIDBdIA0gICAgICAg
IGluc2lkZSB0aGUgbm93IGdlbmVyYWxpemVkIGluaXQoKS4NICAgICAgICAqIGtodG1sL2VkaXRp
bmcvdmlzaWJsZV91bml0cy5jcHA6DSAgICAgICAgKGtodG1sOjplbmRPZlBhcmFncmFwaCk6DSAg
ICAgICAgVGhlcmUncyBubyBzdWNoIHRoaW5nIGFzIGEgVmlzaWJsZVBvc2l0aW9uIGF0IFticiwg
MV0sIGp1c3QgW2JyLCAwXSBhbmQgdGhlIHN0YXJ0IG9mIHRoZSANICAgICAgICBuZXh0IGxpbmUu
ICBTbyB3aGVuIGFza2VkIHRvIGluY2x1ZGVMaW5lQnJlYWssIHdlIG5vdyByZXR1cm4gdGhlIHN0
YXJ0IG9mIHRoZSBuZXh0IGxpbmUgDSAgICAgICAgYXMgbG9uZyBhcyBpdCBpcyBub24tbnVsbC4K
KwogMjAwNS0xMS0xOCAgRGF2aWQgSGFycmlzb24gIDxoYXJyaXNvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgPGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYy
OT4KSW5kZXg6IGtodG1sL2VkaXRpbmcvdmlzaWJsZV9wb3NpdGlvbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRpdGluZy92aXNpYmxlX3Bvc2l0aW9u
LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42MgpkaWZmIC11IC1yMS42MiB2aXNpYmxlX3Bv
c2l0aW9uLmNwcAotLS0ga2h0bWwvZWRpdGluZy92aXNpYmxlX3Bvc2l0aW9uLmNwcAk4IE5vdiAy
MDA1IDA4OjEwOjU1IC0wMDAwCTEuNjIKKysrIGtodG1sL2VkaXRpbmcvdmlzaWJsZV9wb3NpdGlv
bi5jcHAJMTggTm92IDIwMDUgMjE6NDA6NDMgLTAwMDAKQEAgLTc1LDYzICs3NSw3IEBACiB2b2lk
IFZpc2libGVQb3NpdGlvbjo6aW5pdChjb25zdCBQb3NpdGlvbiAmcG9zLCBFQWZmaW5pdHkgYWZm
aW5pdHkpCiB7CiAgICAgbV9hZmZpbml0eSA9IGFmZmluaXR5OwotCi0gICAgLy8gRm9yIDxicj4g
MCwgaXQncyBpbXBvcnRhbnQgbm90IHRvIG1vdmUgcGFzdCB0aGUgPGJyPi4KLSAgICBpZiAocG9z
Lm5vZGUoKSAmJiBwb3Mubm9kZSgpLT5oYXNUYWdOYW1lKGJyVGFnKSAmJiBwb3Mub2Zmc2V0KCkg
PT0gMCkKLSAgICAgICAgaW5pdFVwc3RyZWFtKHBvcyk7Ci0gICAgZWxzZQotICAgICAgICBpbml0
RG93bnN0cmVhbShwb3MpOwotCi0gICAgLy8gd2hlbiBub3QgYXQgbGluZSBicmVhaywgbWFrZSBz
dXJlIHRvIGVuZCB1cCB3aXRoIERPV05TVFJFQU0gYWZmaW5pdHkuICAKLSAgICBpZiAobV9hZmZp
bml0eSA9PSBVUFNUUkVBTSAmJiAoaXNOdWxsKCkgfHwgaW5TYW1lTGluZShWaXNpYmxlUG9zaXRp
b24ocG9zLCBET1dOU1RSRUFNKSwgKnRoaXMpKSkKLSAgICAgICAgbV9hZmZpbml0eSA9IERPV05T
VFJFQU07Ci19Ci0KLXZvaWQgVmlzaWJsZVBvc2l0aW9uOjppbml0VXBzdHJlYW0oY29uc3QgUG9z
aXRpb24gJnBvcykKLXsKLSAgICBQb3NpdGlvbiBkZWVwUG9zID0gZGVlcEVxdWl2YWxlbnQocG9z
KTsKLQotICAgIGlmIChpc0NhbmRpZGF0ZShkZWVwUG9zKSkgewotICAgICAgICBtX2RlZXBQb3Np
dGlvbiA9IGRlZXBQb3M7Ci0gICAgICAgIFBvc2l0aW9uIG5leHQgPSBuZXh0VmlzaWJsZVBvc2l0
aW9uKGRlZXBQb3MpOwotICAgICAgICBpZiAobmV4dC5pc05vdE51bGwoKSkgewotICAgICAgICAg
ICAgUG9zaXRpb24gcHJldmlvdXMgPSBwcmV2aW91c1Zpc2libGVQb3NpdGlvbihuZXh0KTsKLSAg
ICAgICAgICAgIGlmIChwcmV2aW91cy5pc05vdE51bGwoKSkKLSAgICAgICAgICAgICAgICBtX2Rl
ZXBQb3NpdGlvbiA9IHByZXZpb3VzOwotICAgICAgICB9Ci0gICAgfQotICAgIGVsc2UgewotICAg
ICAgICBQb3NpdGlvbiBwcmV2aW91cyA9IHByZXZpb3VzVmlzaWJsZVBvc2l0aW9uKGRlZXBQb3Mp
OwotICAgICAgICBpZiAocHJldmlvdXMuaXNOb3ROdWxsKCkpIHsKLSAgICAgICAgICAgIG1fZGVl
cFBvc2l0aW9uID0gcHJldmlvdXM7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBQb3Np
dGlvbiBuZXh0ID0gbmV4dFZpc2libGVQb3NpdGlvbihkZWVwUG9zKTsKLSAgICAgICAgICAgIGlm
IChuZXh0LmlzTm90TnVsbCgpKQotICAgICAgICAgICAgICAgIG1fZGVlcFBvc2l0aW9uID0gbmV4
dDsKLSAgICAgICAgfQotICAgIH0KLX0KLQotc3RhdGljIGJvb2wgaXNSZW5kZXJlZEJSKE5vZGVJ
bXBsICpub2RlKQotewotICAgIGlmICghbm9kZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0g
ICAgUmVuZGVyT2JqZWN0ICpyZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7Ci0gICAgaWYgKCFy
ZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotICAgIGlmIChyZW5kZXJlci0+
c3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIGlmIChyZW5kZXJlci0+aXNCUigpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAg
IHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBWaXNpYmxlUG9zaXRpb246OmluaXREb3duc3RyZWFt
KGNvbnN0IFBvc2l0aW9uICZwb3MpCi17CiAgICAgUG9zaXRpb24gZGVlcFBvcyA9IGRlZXBFcXVp
dmFsZW50KHBvcyk7CiAKICAgICBpZiAoaXNDYW5kaWRhdGUoZGVlcFBvcykpIHsKQEAgLTE0NCwx
NiArODgsMzAgQEAKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIFBvc2l0aW9uIG5l
eHQgPSBuZXh0VmlzaWJsZVBvc2l0aW9uKGRlZXBQb3MpOwotICAgICAgICBpZiAobmV4dC5pc05v
dE51bGwoKSkgeworICAgICAgICBQb3NpdGlvbiBwcmV2ID0gcHJldmlvdXNWaXNpYmxlUG9zaXRp
b24oZGVlcFBvcyk7CisgICAgICAgIAorICAgICAgICBpZiAobmV4dC5pc051bGwoKSAmJiBwcmV2
LmlzTnVsbCgpKQorICAgICAgICAgICAgbV9kZWVwUG9zaXRpb24gPSBQb3NpdGlvbigpOworICAg
ICAgICBlbHNlIGlmIChuZXh0LmlzTnVsbCgpKQorICAgICAgICAgICAgbV9kZWVwUG9zaXRpb24g
PSBwcmV2OworICAgICAgICBlbHNlIGlmIChwcmV2LmlzTnVsbCgpKQogICAgICAgICAgICAgbV9k
ZWVwUG9zaXRpb24gPSBuZXh0OwotICAgICAgICB9IGVsc2UgaWYgKGlzUmVuZGVyZWRCUihkZWVw
UG9zLm5vZGUoKSkgJiYgZGVlcFBvcy5vZmZzZXQoKSA9PSAxKSB7Ci0gICAgICAgICAgICBtX2Rl
ZXBQb3NpdGlvbiA9IFBvc2l0aW9uKGRlZXBQb3Mubm9kZSgpLCAwKTsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIFBvc2l0aW9uIHByZXZpb3VzID0gcHJldmlvdXNWaXNpYmxlUG9zaXRp
b24oZGVlcFBvcyk7Ci0gICAgICAgICAgICBpZiAocHJldmlvdXMuaXNOb3ROdWxsKCkpCi0gICAg
ICAgICAgICAgICAgbV9kZWVwUG9zaXRpb24gPSBwcmV2aW91czsKKyAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICBOb2RlSW1wbCAqb3JpZ2luYWxCbG9jayA9IHBvcy5ub2RlKCkgPyBwb3Mubm9k
ZSgpLT5lbmNsb3NpbmdCbG9ja0Zsb3dFbGVtZW50KCkgOiAwOworICAgICAgICAgICAgYm9vbCBu
ZXh0SXNJbk9yaWdpbmFsQmxvY2sgPSBuZXh0Lm5vZGUoKS0+aXNBbmNlc3RvcihvcmlnaW5hbEJs
b2NrKTsKKyAgICAgICAgICAgIGJvb2wgcHJldklzSW5PcmlnaW5hbEJsb2NrID0gcHJldi5ub2Rl
KCktPmlzQW5jZXN0b3Iob3JpZ2luYWxCbG9jayk7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IGlmICghbmV4dElzSW5PcmlnaW5hbEJsb2NrICYmIHByZXZJc0luT3JpZ2luYWxCbG9jayB8fCAK
KyAgICAgICAgICAgICAgICAoZGVlcFBvcy5ub2RlKCktPmhhc1RhZ05hbWUoYnJUYWcpICYmIGRl
ZXBQb3Mub2Zmc2V0KCkgPT0gMCkpCisgICAgICAgICAgICAgICAgbV9kZWVwUG9zaXRpb24gPSBw
cmV2OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1fZGVlcFBvc2l0aW9uID0g
bmV4dDsKICAgICAgICAgfQogICAgIH0KKworICAgIC8vIFdoZW4gbm90IGF0IGEgbGluZSB3cmFw
LCBtYWtlIHN1cmUgdG8gZW5kIHVwIHdpdGggRE9XTlNUUkVBTSBhZmZpbml0eS4KKyAgICBpZiAo
bV9hZmZpbml0eSA9PSBVUFNUUkVBTSAmJiAoaXNOdWxsKCkgfHwgaW5TYW1lTGluZShWaXNpYmxl
UG9zaXRpb24ocG9zLCBET1dOU1RSRUFNKSwgKnRoaXMpKSkKKyAgICAgICAgbV9hZmZpbml0eSA9
IERPV05TVFJFQU07CiB9CiAKIFZpc2libGVQb3NpdGlvbiBWaXNpYmxlUG9zaXRpb246Om5leHQo
KSBjb25zdApJbmRleDoga2h0bWwvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0aW5nL3Zpc2libGVfdW5pdHMu
Y3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQyCmRpZmYgLXUgLXIxLjQyIHZpc2libGVfdW5p
dHMuY3BwCi0tLSBraHRtbC9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCTIgTm92IDIwMDUgMDg6
NTI6NDMgLTAwMDAJMS40MgorKysga2h0bWwvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAkxOCBO
b3YgMjAwNSAyMTo0MDo0MyAtMDAwMApAQCAtNjExLDggKzYxMSwxMSBAQAogICAgICAgICBpZiAo
c3R5bGUtPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIGlmIChyLT5pc0JSKCkpIHsKLSAgICAgICAgICAgIGlmIChpbmNsdWRlTGluZUJyZWFr
KQotICAgICAgICAgICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24obiwgMSwgRE9XTlNUUkVB
TSk7CisgICAgICAgICAgICBpZiAoaW5jbHVkZUxpbmVCcmVhaykgeworICAgICAgICAgICAgICAg
IFZpc2libGVQb3NpdGlvbiBiZWZvcmVCcmVhayhuLCAwLCBET1dOU1RSRUFNKTsKKyAgICAgICAg
ICAgICAgICBWaXNpYmxlUG9zaXRpb24gbmV4dCA9IGJlZm9yZUJyZWFrLm5leHQoKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbmV4dC5pc05vdE51bGwoKSA/IG5leHQgOiBiZWZvcmVCcmVhazsK
KyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGlm
IChyLT5pc0Jsb2NrRmxvdygpKSB7Cg==
</data>
<flag name="review"
          id="868"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>