<?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>16935</bug_id>
          
          <creation_ts>2008-01-19 01:11:16 -0800</creation_ts>
          <short_desc>Acid3 expects &lt;html&gt; margins to not affect absolute positioned elements</short_desc>
          <delta_ts>2008-01-21 14:56:03 -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>CSS</component>
          <version>528+ (Nightly build)</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>hyatt</cc>
    
    <cc>ian</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>67671</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-01-19 01:11:16 -0800</bug_when>
    <thetext>Acid3 expects &lt;html&gt; margins to not affect absolute positioned elements

See the @font-face test (the map::after generated content).

Hixie claims that:
http://www.w3.org/TR/CSS21/visudet.html#containing-block-details

justifies that absolute positioned elements should ignore margins on &lt;html&gt;.  I tried to build a test case, but I couldn&apos;t get a &lt;div style=&quot;position: relative; left: -20px; top: -20px;&quot; to actually move itself up into the margins of the HTML (I could get it to move left into the left margin).

FF seems to behave identically to us in this regard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67672</commentid>
    <comment_count>1</comment_count>
      <attachid>18540</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-01-19 01:13:00 -0800</bug_when>
    <thetext>Created attachment 18540
test case

I changed my test case to not use position: relative.  If I&apos;m reading the spec correctly, this test case should show a single green 100x100 rect at 20px,20px.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67717</commentid>
    <comment_count>2</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-01-19 10:59:56 -0800</bug_when>
    <thetext>Hixie&apos;s correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67718</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-01-19 11:00:34 -0800</bug_when>
    <thetext>I&apos;m actually surprised we don&apos;t handle this correctly.  We made a change for Safari 3 to really use the ICB for positioned elements.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67742</commentid>
    <comment_count>4</comment_count>
      <attachid>18553</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-01-19 13:34:13 -0800</bug_when>
    <thetext>Created attachment 18553
Update a couple of spots in RenderLayer that were missed.

Unfortunate.  Our change in Safari 3 was incomplete.  RenderLayer still incorrectly halted at the root element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67743</commentid>
    <comment_count>5</comment_count>
      <attachid>18553</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-01-19 13:36:48 -0800</bug_when>
    <thetext>Comment on attachment 18553
Update a couple of spots in RenderLayer that were missed.

Actually never mind.  CSS2.1 states that the root element establishes a stacking context.  This is kind of weird, since it means positioned objects are positioned relative to the ICB, but in terms of stacking context they are sorted in the root (&lt;html&gt;&apos;s) stacking context.

This means we&apos;ll probably just have to add in some kind of positioning hack when painting and hit testing for this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67744</commentid>
    <comment_count>6</comment_count>
      <attachid>18554</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-01-19 13:39:25 -0800</bug_when>
    <thetext>Created attachment 18554
Here we go. Easy after all.

The enclosingPositionedAncestor method is all that needed updating.  It is used when converting to the right layer coords, and it was incorrectly allowing the root to be a positioned ancestor.

I will use the test case from the bug as the layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67745</commentid>
    <comment_count>7</comment_count>
      <attachid>18554</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-01-19 13:40:07 -0800</bug_when>
    <thetext>Comment on attachment 18554
Here we go. Easy after all.

Oops, I&apos;ve been attaching the wrong patches this whole time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67746</commentid>
    <comment_count>8</comment_count>
      <attachid>18555</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-01-19 13:40:49 -0800</bug_when>
    <thetext>Created attachment 18555
Finally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67747</commentid>
    <comment_count>9</comment_count>
      <attachid>18555</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-01-19 13:52:19 -0800</bug_when>
    <thetext>Comment on attachment 18555
Finally.

i would argue that the change to RenderLayer::stackingContext is both unnecessary, and results in less clear code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67748</commentid>
    <comment_count>10</comment_count>
      <attachid>18555</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-01-19 14:01:14 -0800</bug_when>
    <thetext>Comment on attachment 18555
Finally.

r=me, though i&apos;d like it if you could make a layout test :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67873</commentid>
    <comment_count>11</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-01-21 13:20:55 -0800</bug_when>
    <thetext>Fixed in r29696.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67893</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-01-21 14:56:03 -0800</bug_when>
    <thetext>The part of Acid3 which tests this still seems a few pixels off (absolute positioning of generated glyphs).  I&apos;ll file a separate bug about that.  Thanks for fixing this Dave.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>18540</attachid>
            <date>2008-01-19 01:13:00 -0800</date>
            <delta_ts>2008-01-19 01:13:00 -0800</delta_ts>
            <desc>test case</desc>
            <filename>position_generated.html</filename>
            <type>text/html</type>
            <size>383</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPgo8aHRtbD4K
PGhlYWQ+CjxzdHlsZT4KaHRtbCB7IG1hcmdpbi10b3A6IDIwcHg7IG1hcmdpbi1sZWZ0OiAyMHB4
OyBwYWRkaW5nOiAwcHg7fQpib2R5IHsgcGFkZGluZzogMHB4OyBtYXJnaW46IDBweDt9Cjwvc3R5
bGU+CjwvaGVhZD4KPGJvZHk+CjxkaXYgc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiAxMDBw
eDsgYmFja2dyb3VuZDogcmVkOyI+PC9kaXY+CjxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0
ZTsgdG9wOiAyMHB4OyBsZWZ0OiAyMHB4OyBoZWlnaHQ6IDEwMHB4OyB3aWR0aDogMTAwcHg7IGJh
Y2tncm91bmQ6IGdyZWVuOyI+PC9kaXY+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18553</attachid>
            <date>2008-01-19 13:34:13 -0800</date>
            <delta_ts>2008-01-19 13:39:25 -0800</delta_ts>
            <desc>Update a couple of spots in RenderLayer that were missed.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>19692</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyOTY0NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMDgtMDEtMTggIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgorCisgICAgICAgIEZpeCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU2NjUKKworICAgICAgICBCdWlsZGluZyBvbiBCZXRoJ3MgZWFybGllciB3b3JrIHRvIHN0
YXJ0IGJ1aWxkaW5nIGxpbmUgYm94ZXMgZm9yIGVtcHR5IGlubGluZXMsIHRoaXMgcGF0Y2ggbWFr
ZXMgbW9yZQorICAgICAgICBlbXB0eSBpbmxpbmUgY2FzZXMgd29yay4gIEVtcHR5IGlubGluZXMg
b24gbGluZXMgYnkgdGhlbXNlbHZlcyBub3cgc2V0IGlzTGluZUVtcHR5IHRvIGZhbHNlIHNvIHRo
YXQKKyAgICAgICAgYmlkaVJlb3JkZXJMaW5lIHdpbGwgZ2V0IHByb3Blcmx5IGNhbGxlZC4gIElu
IGFkZGl0aW9uLCB0aGUgInNocmluayBib3hlcyB3aXRoIG5vIHRleHQgY2hpbGRyZW4iIHF1aXJr
CisgICAgICAgIG5lZWRzIHRvIGJlIGRpc2FibGVkIGZvciBpbmxpbmVzIHdpdGggcGFkZGluZywg
bWFyZ2lucyBvciBib3JkZXJzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZGVkIGZhc3QvaW5saW5lL2lubGluZS1wYWRkaW5nLWRpc2FibGVzLXRl
eHQtcXVpcmsuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxCb3hIZWlnaHRz
KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OnBsYWNlQm94ZXNWZXJ0aWNhbGx5
KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OnNocmlua0JveGVzV2l0aE5vVGV4
dENoaWxkcmVuKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Omhhc0JvcmRlcnNQYWRkaW5nT3JNYXJnaW4pOgorICAg
ICAgICAqIHJlbmRlcmluZy9iaWRpLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlubGluZUZsb3dS
ZXF1aXJlc0xpbmVCb3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmZpbmROZXh0
TGluZUJyZWFrKToKKwogMjAwOC0wMS0xOCAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+
CiAKICAgICAgICAgRml4IGZvciBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDk3NQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAJKHJldmlzaW9uIDI5
NTk0KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQzMSw3ICs0MzEsNyBAQCB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVMb2dpY2Fs
Qm94SGVpCiAgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICAgICAgc2V0QmFzZWxpbmUo
b2JqZWN0KCktPmJhc2VsaW5lUG9zaXRpb24obV9maXJzdExpbmUsIHRydWUpKTsKLSAgICAgICAg
aWYgKGhhc1RleHRDaGlsZHJlbigpIHx8IHN0cmljdE1vZGUpIHsKKyAgICAgICAgaWYgKGhhc1Rl
eHRDaGlsZHJlbigpIHx8IG9iamVjdCgpLT5oYXNCb3JkZXJzUGFkZGluZ09yTWFyZ2luKCkgfHwg
c3RyaWN0TW9kZSkgewogICAgICAgICAgICAgaW50IGFzY2VudCA9IGJhc2VsaW5lKCk7CiAgICAg
ICAgICAgICBpbnQgZGVzY2VudCA9IGhlaWdodCgpIC0gYXNjZW50OwogICAgICAgICAgICAgaWYg
KG1heEFzY2VudCA8IGFzY2VudCkKQEAgLTQ1Niw3ICs0NTYsNyBAQCB2b2lkIElubGluZUZsb3dC
b3g6OmNvbXB1dGVMb2dpY2FsQm94SGVpCiAgICAgICAgICAgICBpZiAobWF4UG9zaXRpb25Cb3R0
b20gPCBjdXJyLT5oZWlnaHQoKSkKICAgICAgICAgICAgICAgICBtYXhQb3NpdGlvbkJvdHRvbSA9
IGN1cnItPmhlaWdodCgpOwogICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKGN1cnItPmhhc1Rl
eHRDaGlsZHJlbigpIHx8IHN0cmljdE1vZGUpIHsKKyAgICAgICAgZWxzZSBpZiAoY3Vyci0+aGFz
VGV4dENoaWxkcmVuKCkgfHwgY3Vyci0+b2JqZWN0KCktPmhhc0JvcmRlcnNQYWRkaW5nT3JNYXJn
aW4oKSB8fCBzdHJpY3RNb2RlKSB7CiAgICAgICAgICAgICBpbnQgYXNjZW50ID0gY3Vyci0+YmFz
ZWxpbmUoKSAtIGN1cnItPnlQb3MoKTsKICAgICAgICAgICAgIGludCBkZXNjZW50ID0gY3Vyci0+
aGVpZ2h0KCkgLSBhc2NlbnQ7CiAgICAgICAgICAgICBpZiAobWF4QXNjZW50IDwgYXNjZW50KQpA
QCAtNDkxLDcgKzQ5MSw3IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6cGxhY2VCb3hlc1ZlcnRpY2Fs
bHkKICAgICAgICAgZWxzZSBpZiAoY3Vyci0+eVBvcygpID09IFBvc2l0aW9uQm90dG9tKQogICAg
ICAgICAgICAgY3Vyci0+c2V0WVBvcyh5ICsgbWF4SGVpZ2h0IC0gY3Vyci0+aGVpZ2h0KCkpOwog
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGlmICghY3Vyci0+aGFzVGV4dENoaWxkcmVuKCkg
JiYgIXN0cmljdE1vZGUpCisgICAgICAgICAgICBpZiAoIWN1cnItPmhhc1RleHRDaGlsZHJlbigp
ICYmICFjdXJyLT5vYmplY3QoKS0+aGFzQm9yZGVyc1BhZGRpbmdPck1hcmdpbigpICYmICFzdHJp
Y3RNb2RlKQogICAgICAgICAgICAgICAgIGNoaWxkQWZmZWN0c1RvcEJvdHRvbVBvcyA9IGZhbHNl
OwogICAgICAgICAgICAgY3Vyci0+c2V0WVBvcyhjdXJyLT55UG9zKCkgKyB5ICsgbWF4QXNjZW50
IC0gY3Vyci0+YmFzZWxpbmUoKSk7CiAgICAgICAgIH0KQEAgLTU0Niw3ICs1NDYsNyBAQCB2b2lk
IElubGluZUZsb3dCb3g6OnBsYWNlQm94ZXNWZXJ0aWNhbGx5CiAgICAgICAgIHNldEhlaWdodChm
b250LmFzY2VudCgpICsgZm9udC5kZXNjZW50KCkpOwogICAgICAgICBzZXRZUG9zKHlQb3MoKSAr
IGJhc2VsaW5lKCkgLSBmb250LmFzY2VudCgpKTsKICAgICAgICAgc2V0QmFzZWxpbmUoZm9udC5h
c2NlbnQoKSk7Ci0gICAgICAgIGlmIChoYXNUZXh0Q2hpbGRyZW4oKSB8fCBzdHJpY3RNb2RlKSB7
CisgICAgICAgIGlmIChoYXNUZXh0Q2hpbGRyZW4oKSB8fCBvYmplY3QoKS0+aGFzQm9yZGVyc1Bh
ZGRpbmdPck1hcmdpbigpIHx8IHN0cmljdE1vZGUpIHsKICAgICAgICAgICAgIHNlbGVjdGlvblRv
cCA9IG1pbihzZWxlY3Rpb25Ub3AsIHlQb3MoKSk7CiAgICAgICAgICAgICBzZWxlY3Rpb25Cb3R0
b20gPSBtYXgoc2VsZWN0aW9uQm90dG9tLCB5UG9zKCkgKyBoZWlnaHQoKSk7CiAgICAgICAgIH0K
QEAgLTU2NSw3ICs1NjUsNyBAQCB2b2lkIElubGluZUZsb3dCb3g6OnNocmlua0JveGVzV2l0aE5v
VGV4CiAgICAgfQogCiAgICAgLy8gU2VlIGlmIHdlIGhhdmUgdGV4dCBjaGlsZHJlbi4gSWYgbm90
LCB0aGVuIHdlIG5lZWQgdG8gc2hyaW5rIG91cnNlbHZlcyB0byBmaXQgb24gdGhlIGxpbmUuCi0g
ICAgaWYgKCFoYXNUZXh0Q2hpbGRyZW4oKSkgeworICAgIGlmICghaGFzVGV4dENoaWxkcmVuKCkg
JiYgIW9iamVjdCgpLT5oYXNCb3JkZXJzUGFkZGluZ09yTWFyZ2luKCkpIHsKICAgICAgICAgaWYg
KHlQb3MoKSA8IHRvcFBvcykKICAgICAgICAgICAgIHNldFlQb3ModG9wUG9zKTsKICAgICAgICAg
aWYgKHlQb3MoKSArIGhlaWdodCgpID4gYm90dG9tUG9zKQpJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmgJKHJldmlzaW9uIDI5NTk0KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyNCw2ICszMjQsMTAgQEAgcHVibGljOgogICAgIGJv
b2wgaGFzQm94RGVjb3JhdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX3BhaW50QmFja2dyb3VuZDsg
fQogICAgIGJvb2wgbXVzdFJlcGFpbnRCYWNrZ3JvdW5kT3JCb3JkZXIoKSBjb25zdDsKIAorICAg
IGJvb2wgaGFzQm9yZGVyc1BhZGRpbmdPck1hcmdpbigpIGNvbnN0IHsgcmV0dXJuIGJvcmRlckxl
ZnQoKSAhPSAwIHx8IGJvcmRlclJpZ2h0KCkgIT0gMCB8fCBib3JkZXJUb3AoKSAhPSAwIHx8IGJv
cmRlckJvdHRvbSgpICE9IDAgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYWRkaW5nTGVmdCgpICE9IDAgfHwgcGFkZGluZ1JpZ2h0KCkgIT0g
MCB8fCBwYWRkaW5nVG9wKCkgIT0gMCB8fCBwYWRkaW5nQm90dG9tKCkgIT0gMCB8fAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQo
KSAhPSAwIHx8IG1hcmdpblJpZ2h0KCkgIT0gMCB8fCBtYXJnaW5Ub3AoKSAhPSAwIHx8IG1hcmdp
bkJvdHRvbSgpICE9IDA7IH0KKwogICAgIGJvb2wgbmVlZHNMYXlvdXQoKSBjb25zdCB7IHJldHVy
biBtX25lZWRzTGF5b3V0IHx8IG1fbm9ybWFsQ2hpbGROZWVkc0xheW91dCB8fCBtX3Bvc0NoaWxk
TmVlZHNMYXlvdXQ7IH0KICAgICBib29sIHNlbGZOZWVkc0xheW91dCgpIGNvbnN0IHsgcmV0dXJu
IG1fbmVlZHNMYXlvdXQ7IH0KICAgICBib29sIHBvc0NoaWxkTmVlZHNMYXlvdXQoKSBjb25zdCB7
IHJldHVybiBtX3Bvc0NoaWxkTmVlZHNMYXlvdXQ7IH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5n
L2JpZGkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL2JpZGkuY3BwCShyZXZp
c2lvbiAyOTU5NCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL2JpZGkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjQ3LDE5ICsxMjQ3LDkgQEAgc3RhdGljIGlubGluZSBib29sIHNob3VsZFByZXNlcnZl
TmV3bGluZQogc3RhdGljIGJvb2wgaW5saW5lRmxvd1JlcXVpcmVzTGluZUJveChSZW5kZXJPYmpl
Y3QqIGZsb3cpCiB7CiAgICAgLy8gRklYTUU6IFJpZ2h0IG5vdywgd2Ugb25seSBhbGxvdyBsaW5l
IGJveGVzIGZvciBpbmxpbmVzIHRoYXQgYXJlIHRydWx5IGVtcHR5LgotICAgIC8vIFdlIG5lZWQg
dG8gZml4IHRoaXMsIHRob3VnaCwgYmVjYXVzZSBhdCB0aGUgdmVyeSBsZWFzdCwgaW5saW5lcyB3
aXRoIG9ubHkgdGV4dAotICAgIC8vIGNoaWxkcmVuIHRoYXQgaXMgYWxsIHdoaXRlc3BhY2Ugc2hv
dWxkIHNob3VsZCBhbHNvIGhhdmUgbGluZSBib3hlcy4gCi0gICAgaWYgKCFmbG93LT5pc0lubGlu
ZUZsb3coKSB8fCBmbG93LT5maXJzdENoaWxkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIGJvb2wgaGFzUGFkZGluZ09yTWFyZ2luID0gIShmbG93LT5wYWRkaW5nTGVmdCgpID09IDAg
JiYgZmxvdy0+cGFkZGluZ1JpZ2h0KCkgPT0gMAotICAgICAgICAmJiBmbG93LT5wYWRkaW5nVG9w
KCkgPT0gMCAmJiBmbG93LT5wYWRkaW5nQm90dG9tKCkgPT0gMCAKLSAgICAgICAgJiYgZmxvdy0+
bWFyZ2luTGVmdCgpID09IDAgJiYgZmxvdy0+bWFyZ2luUmlnaHQoKSA9PSAwCi0gICAgICAgICYm
IGZsb3ctPm1hcmdpblRvcCgpID09IDAgJiYgZmxvdy0+bWFyZ2luQm90dG9tKCkgPT0gMCk7Ci0g
ICAgaWYgKGZsb3ctPmhhc0JveERlY29yYXRpb25zKCkgfHwgaGFzUGFkZGluZ09yTWFyZ2luKQot
ICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBXZSBuZWVk
IHRvIGZpeCB0aGlzLCB0aG91Z2gsIGJlY2F1c2UgYXQgdGhlIHZlcnkgbGVhc3QsIGlubGluZXMg
Y29udGFpbmluZyBvbmx5CisgICAgLy8gaWdub3JhYmxlIHdoaXRlc3BhY2Ugc2hvdWxkIHNob3Vs
ZCBhbHNvIGhhdmUgbGluZSBib3hlcy4gCisgICAgcmV0dXJuIGZsb3ctPmlzSW5saW5lRmxvdygp
ICYmICFmbG93LT5maXJzdENoaWxkKCkgJiYgZmxvdy0+aGFzQm9yZGVyc1BhZGRpbmdPck1hcmdp
bigpOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgcmVxdWlyZXNMaW5lQm94KEJpZGlJdGVyYXRv
ciYgaXQpCkBAIC0xNTAxLDYgKzE0OTEsNyBAQCBCaWRpSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZp
bmROZXh0TGluZUJyCiAgICAgICAgICAgICAvLyBJZiB0aGlzIG9iamVjdCBpcyBhdCB0aGUgc3Rh
cnQgb2YgdGhlIGxpbmUsIHdlIG5lZWQgdG8gYmVoYXZlIGxpa2UgbGlzdCBtYXJrZXJzIGFuZCAK
ICAgICAgICAgICAgIC8vIHN0YXJ0IGlnbm9yaW5nIHNwYWNlcy4KICAgICAgICAgICAgIGlmIChp
bmxpbmVGbG93UmVxdWlyZXNMaW5lQm94KG8pKSB7CisgICAgICAgICAgICAgICAgaXNMaW5lRW1w
dHkgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBpZiAoaWdub3JpbmdTcGFjZXMpIHsKICAgICAg
ICAgICAgICAgICAgICAgdHJhaWxpbmdTcGFjZU9iamVjdCA9IDA7CiAgICAgICAgICAgICAgICAg
ICAgIGFkZE1pZHBvaW50KEJpZGlJdGVyYXRvcigwLCBvLCAwKSk7IC8vIFN0b3AgaWdub3Jpbmcg
c3BhY2VzLgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjk2NDcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAwOC0wMS0xOCAgRGF2aWQgSHlh
dHQgIDxoeWF0dEBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGZvciBodHRwOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9pbmxpbmUvaW5saW5lLXBhZGRpbmctZGlzYWJs
ZXMtdGV4dC1xdWlyay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9p
bmxpbmUvaW5saW5lLXBhZGRpbmctZGlzYWJsZXMtdGV4dC1xdWlyay1leHBlY3RlZC5jaGVja3N1
bTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvaW5saW5lL2lubGluZS1wYWRk
aW5nLWRpc2FibGVzLXRleHQtcXVpcmstZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvZmFzdC9pbmxpbmUvaW5saW5lLXBhZGRpbmctZGlzYWJsZXMtdGV4dC1xdWly
ay1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDA4LTAxLTE4ICBEYXZpZCBIeWF0dCAgPGh5YXR0
QGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGVkIHJlc3VsdHMgZm9yIGh0dHA6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTc1CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2lu
bGluZS9pbmxpbmUtcGFkZGluZy1kaXNhYmxlcy10ZXh0LXF1aXJrLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9pbmxpbmUvaW5saW5lLXBhZGRpbmctZGlzYWJsZXMtdGV4dC1x
dWlyay5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9pbmxpbmUvaW5saW5l
LXBhZGRpbmctZGlzYWJsZXMtdGV4dC1xdWlyay5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDggQEAKKzxIVE1MPiANCis8Qk9EWT4gDQorCQkJPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogZ3Jl
ZW47IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjazsiPiANCisJCQkJPHNwYW4gc3R5bGU9
InBhZGRpbmc6IDAgMCAwIDFweDsiPjwvc3Bhbj4NCisJCQk8L2Rpdj4gDQorCSAgIAk8ZGl2PlRo
ZXJlIHNob3VsZCBiZSBhIGdyZWVuIGJsb2NrIGFib3ZlIHRoaXMgdGV4dDwvZGl2PiANCisgPC9C
T0RZPiANCis8L0hUTUw+IApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2lubGluZS9pbmxpbmUtcGFkZGluZy1kaXNhYmxlcy10
ZXh0LXF1aXJrLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L2lubGluZS9pbmxpbmUtcGFkZGluZy1kaXNhYmxlcy10ZXh0LXF1aXJr
LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvaW5saW5lL2lubGluZS1wYWRkaW5nLWRpc2FibGVzLXRleHQtcXVpcmstZXhwZWN0
ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKzVmZWUzMjMyN2EyN2IwODQ5
YzFjNzI2MWM5NTc0Zjc4ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW5saW5lL2lubGluZS1wYWRkaW5nLWRpc2FibGVzLXRl
eHQtcXVpcmstZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2lubGluZS9pbmxpbmUtcGFkZGluZy1kaXNhYmxlcy10ZXh0LXF1aXJrLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2lu
bGluZS9pbmxpbmUtcGFkZGluZy1kaXNhYmxlcy10ZXh0LXF1aXJrLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
IFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4MTkgW2JnY29sb3I9IzAwODAwMF0gW2JvcmRlcjogKDFw
eCBzb2xpZCAjMDAwMDAwKSBub25lXQorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgw
LDApIHNpemUgMXgxOAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAw
eDAKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDE5KSBzaXplIDc4NHgxOAorICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyODZ4MTgKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCAyODY6ICJUaGVyZSBzaG91bGQgYmUgYSBncmVlbiBibG9jayBh
Ym92ZSB0aGlzIHRleHQiCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9pbmxp
bmUvaW5saW5lLXBhZGRpbmctZGlzYWJsZXMtdGV4dC1xdWlyay1leHBlY3RlZC5wbmcKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1p
bWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW5saW5lL2lubGluZS1wYWRkaW5nLWRpc2Fi
bGVzLXRleHQtcXVpcmstZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlw
ZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdB
QUF5QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBYjdrbEVRVlI0bk8zZGYyeGQ1MzNmOFE4SHFhYmEKeUky
Y3hlbmlCTGJ6bzAyR21Cd1NHRm1EZWkyWlltdWFJZFRTWkZrYXFxaXdsVFkwSTVIK1dBUVpNZExS
eFF4cHd4cDVRVWRuR09TMQprdFpCd2hCcUd5UUVrN3dwV2VyQWtMZlEyYVMwMGlvRms1ZklpTFNT
cTBtSEhKNzlRVXFreEIrWDlJOXZGT2YxQW14UXZPZWU4OXpuCjNBT2NOM25QWVZkcnJRVUFBS0RB
WC9oaER3QUFBUGp4SVVBQUFJQXlBZ1FBQUNnalFBQUFnRElDQkFBQUtDTkFBQUNBTWdJRUFBQW8K
czY3VEFsMy9zS3RpSEFBQXdHdEErL3pLZjJiUWIwQUFBSUF5QWdRQUFDZ2pRQUFBZ0RJQ0JBQUFL
Q05BQUFDQU1nSUVBQUFvSTBBQQpBSUF5QWdRQUFDZ2pRQUFBZ0RJQ0JBQUFLQ05BQUFDQU1nSUVB
QUFvSTBBQUFJQXlBZ1FBQUNnalFBQUFnRElDQkFBQUtDTkFBQUNBCk1sMnR0YmJpQWwxZFZXTUJB
QUIreEhYSWk2eDd1U3NBQUFCWUxSL0JBZ0FBeXJ5eUFUSjFKYzg5UC9HS3J2SmxlOVhITkpVTFo4
N2sKeXN6eWp6OTM0ZmtzLy9EenVmRGNUVFpuUDJ3ZDU2VFRuSy9Cek1USysyY3RidVo5MmVFNG1M
cHlJZWN1WENrY0VBRHc0NnBEZ0V6awppUzFkNmVwYStiOHQvL3cvNUxFdC9lbmFjRnMrdE85LzFJ
eThrNWtMci9LWXBuSml6NVowZFczSVhlLytSUDU0Y3RFQWN1S3grOVBWCnRTRjNmT1JmWjlHcDM4
eUY3Tm5TbjY0TnQrY2orMitTT2Z0aDZ6Z25uZVo4YmR0NjdQNytkSzIvZGVuOXM4WjEzYlQ3Y2xY
SHdVVCsKOE5mdXlqdnUrcVY4NHlidEp3RGd0YVBqYjBCZXZKZ003VHVaUzVjbk0zbnhaQWFTcEdk
M3prOU81L0xGMDlrN21GeWMva3ZadHZ0ego2VXR5ZC9mNlYzM1FxN0x1emxkNVROM3AvK3kveU1u
ZGZVbnV6dUl0ckV2L3RzOW5iMStTTjl5eStHS2JkWGZtMDcrelBYblZ4dmNqCnFPT2NkSnJ6dFcx
cjJ6LzV2UXozWk9uOXM4WjEzWFQ3Y3VwY2podzdzOHJqWUVONnR1M085dUdIODdhTkwzRTdyNFJY
Y2wwQXdFMnIKUTRETUpPL2NuYy8vNW4xNTQ2YnVkTi8yVTltWUpIZi9kRzdyWHBkTmIzNVh0djMy
Z2J3enlicmJYcDliazR6ZmNwT2NnS1ZpVE4xNQovVS9mdXRJQThoZnZXT0haYjNyTGJORGRSSFAy
dzlaNVRqck0rUnFzMjNoSDNucjM3TmN2OXlOWU45ZSt2SkluL3M0Nzh2RFlDMGxXCmN4eXN5M3Mv
OXRuODdzTWZ5eHRmeG5aZW5sZHlYUURBemF4RGdHeksvWTkvTm05ZVlZbDFiLy8xUFA3cDk4NS80
OUt6T2J4bnk5ekgKcy9weitNejhaenFtbnZ0cWR2VFBmWFNyZDB1ZStPcUZKRE81OE94WDgvaERX
M0wvNDhkeVpPNjVqeHk3c016eVM1bktpY2QzcExlMwpQNXY3ZTlQVnV5UFBMdndveVFwanlwVm5a
eitLMDl1ZjNxNnViSDdvaVp5YnlOeEhkRGFudjdjM093NmVTZkpjOW16cFQzOS9iL3AzCkhGNytJ
enNUeithUnpWM3A2dTFQZjllR2ZHcC9rZzdueStNWHZwN0hkdlJmZTUwSG4zbSt3NXd0WlNiUEh0
NlQzcTZ1OVBmM3BxdXIKTjA4c1dNL2ljWjdKWTF0bWwrdnE2czM5anp5ZUkwY081OWd6MzNsSisy
TzVmWHZ1cTBleVo4Zm05RzUrSkllZmVPamFQamo0ek1yWApHNncwSjRzc3R3OFh2Tlk5VzNyblB6
TDQwTUU4ZDBOeGJFankxY2QyWlBQbS92VDM5MmZIWXljeTlSTG1lTVZ4THp2T3FSelpNZnY5Ci90
NytQSExrWEpLWm5OaHpmM3A3dTlMLzBKRk1MVHZIaXgyNS83WnNIVTNHZG02ZGZiLy96eGRuSDFq
bU9MaHk0ZGtjT2Jnbi9WMWIKNWo2QzFlRjRXbTQ3NTZhV0dlTlVUdXk1UC8zOW03TmxjMysyN0Rt
Y0k0OC9sTTJiKzlPNytaR2NtMXA2WFFEQWExUmJpOGxUYlRCcApHUmhwNDhzOWxyUys0VVB0cVpQ
N1dsL1MwamUzN09XVHJTOXBJMDlkYW0zNlloc1ptRjMyd05udnRFUERBeTFYbnpzNDFIcVNOdmpG
Ci9jc3NQN2xvV05QbkQ3VWtiZlJ5YTYyZGI3dDZCdHJKOFZXTWFYS3NEU1V0UTRmYWVHdHQvUFNo
MXBPMFpIczdQZGxhR3ovWmtyU0IKdmFmbXRuU3A3ZTJiZmY3bHVlK01qUXkwWktDZEdtK3RUWjl0
MjVPVzdhTnR2TFUyZmZGNEcxaTR2UlhtYkdEM3ZuWmdaUHZjUFBTMAo0NWRXbXJNbDV1RGkwWmFr
N1RwK3FiWFcyc25obnBZTXQ0dEw3OGgyWUdCK1A1NDlOTC9ka2VPbjFyNC9WaGpuNmFONzUrWTBM
VVA3CjJzbmpOK3lEdGM3SmpYUGVhUjlPbjI1RFNSc1lPZG1tVzJ2blIyZlhOM2pnZEd0dHZPMGJT
RXZmdmpiZFdqcyszTmZTTTl6R0xpMmUKMzQ1ejNHbmNuY2JaenJmaG5yUmtxSjJlbnR2ZzVlTXRH
Wmo5OXhyZUMrTm5SMXRQMHZxR2o3WkxseSszeVJXUGcrazJkblJmRytyTAp0VGxkOW5qcXRKMFZ4
emc5Tzc5SjJ6NTZ2bDA4dXIwbHcrM3E4QmV0YThrOUFBQzhGcnlpQVRLUXRKN2hrM1BmbUc2SGh0
S1NYZTM4CmRHdFA3ZTVyU1Y4YkdSMXRvNk9qYmUvZzdNbEp6KzZuV212amJhUXZMWDE3NThKZ3Nz
UHkxeHNmRzJsSjJ0QytVMjI2dFhiNXFkRjIKNm5Mbk1aMCtNSGpkaVcxcjh5ZmpnL3RPdHpZKysv
ejVBTGw2d2pyLytoZWVETStlM1BhMXA2NU56dVNpNVplYXM3NEZyMmxzMzlEcwpTZXpJMkpybW9G
MmFQZms3Y0hhNnRUYmRqdThldUdFc2kvZGp6KzY1MXpVOTFnYVROakJ5K3RyclhNdis2TFJ2OS9Z
c2pMYnBkbUR3CnBjL0pqWFBlYVIrZVBURFlrdTN0L0xYMW4yN0RBd050MzZsTDgvdXpaNmp0M3Q3
VE1uVGdXbGd1YWFVNTdqRHVqdSsxMXRyRm83dG0KQStmb2JEYWVQVEI0YlYrdjZiMHdPVGI3dmgw
NWRkMmNMbmNjdE5iYTZYMkQxK1owMmVPcHczWTZqdkZxb0NjdDZidHVMaGFOR1FCNAp6WHJGL3c3
STNiZi8xTnhYNi9KelB6K1k1S2w4ZDNJaXA3LytaRExRbHpjaytjRVBmcEM3UG40MFIwZEg4OFVQ
dlMxSmNzdXRTWExMCjdGTzdwenN1djlER3V6NlF3U1JmMnZxK3JPL2FrdU0vZVYvZXU2blRtR1p5
L2x0alNlN082N3ZubDczalBmY21TU2JHWDhqVnE1ekgKVi9YS1ovTE5KNytRNUozNTZXc2Z0Wjll
MVROdm5YOUM3dm53MzBwUGtyejRaMnVhZzd6eHZweG9rM25YZi8rbjZlOWFudy91SEUxeQp4eklY
YXM5K2QrenJUODkrbEd6ZEcvTFdKT012em4vK2Z2WDc0L2FPNDd4MTdqcUxkWFAvditjWEJwTHZ2
NVE1dVhFK08rM0RLL212Ci8zbC8wbk4zYnJ2NllQZTc4dkNYdjV6ZmZPL2MxUTRiazR4OUtUdS9N
SmFSQnorYUJXK2J4Vll4eDB1UGU2cnpleTNKbTMvcGt4bE0KOHVqSVZ6S1ZpUno4MVA0OC9JbjNK
ZWw4L0Z4dmRwN0dYN3ordTBzZkIzUFBlSEgrTTFhZGpxZWx0N09LTWE1N2U0WlBqY3grM2ZPSgpm
T0NOeTYwTEFIZ3RlMWszLzFuS2RTY1FMMDRrdVhYK0JHMzhyZm1iSC9sSXVxOTd4a3lTWmU2bnV1
enlOOWg0VC83ZzhsanUrZlJnCmR1N2ZuNC8zN00vdWt4ZnoyWHRYR3ROTS91OWtrb3puenhlc3N2
dXVlektZNU9LQ3A2enVrdWVKblA5bWtyeVF0VjVHZTkzNE50NlIKbm9YYlgrMGNUSjNMUSs5L1J4
N05jTTVPdDB6djM1SjNiMTNtU3BYdWUvTGd5R0QyUC9CQXR1MTVRN2ErNVprOG1wNk1EdnpsRGdO
ZAphaXovSitkV0hPZFMrN1p6MHEwNEp3dld2L0krL0gvNXdRdEp4cjZieTVsdGpVVVdUTkVEUFov
SkJ5WWZ6ejNkU3kyWVZjM3gwdU5lCjVYdXQrNTRNN2U3TC9wMi9uMzkxK0ZJTzk0M2thM2N1T0VS
WCsxNVl4b3JINWtMTEhVLzNyWFExMk9yR09QUG5memI3eGRnRCtkSTMKL25ZKy9mNFZrdzhBZUEx
YTQyOUFPdC9oNTlhRmQ5cTU1ZW9wMy9yOHhNWWtUMjdOSHk2OG12WDVFK252L2IzTVg0Nzg0dHlw
eW1xWApuelh4amNmejJMZnV5bWYvNEpzNWUzd2tQVWwyN3YvNnRZdUlseDVUZDM2dXR5ZkprL21q
UDU1ZjQ4ejMvalQ3cno1bjdnZnU4NmZMCjY1ZjQ2cXBOZVU5Zlg1TDlHZnVUaWV1WCt2N0tQOWE5
OVpZRi83Zzh1LzNlbjcxOVRYTnc3dC91eWFOanllalJoL1AyZFprN3dWeHkKb0VtUzNsLzhZSktC
ZlBCdHlYZC80cGR6Y2ZLYitjaWRONTU1cjJaLy9NdE1yM0tjYTduVDFOSno4b1libHVxMEQxK1hu
M2xyVDVKSAo4MjlPekYrd1BYUGhjUHEzSEp5L3lIem9RTVpPN2szeXBmVDgxaFBMM21CZ05YTzg5
TGpmM1BtOU51Zm5QN0V0UFhreUQzeDhaejc4CnVZL09SZFBham9mNXNheGYvdCszTEgrLzNVN0gw
OUxiV2NVWUo1N0pyLzIxblJrNWVpaURTVDd6VjRkemJtYXBkUUVBcjJWckM1RHYKL1duR2ttVDh4
Y1Vuayt0bVR4eEduL24yM0dNeitmWWY3Wjk5YkgxM1B2VGczaVRKMXA1ZnlKNkR4M0xpeU9QcHZm
MkQ2ZnZpSjdNcApVN2swbnVUSnVaK09wdFB5TjFqL1lqN3o0TDVjU2ZMMi9yK2JiVDFKM3ZLbWRL
ODRwdVNlRDIrZFBia2ErbUl1ekwyZzAvL2xVSksrCjdQcjFlNUlOUDVrM0pYbnlNNytiWTJmTzVj
Ump2NXF0bzBtKy8weiswNW5aMDc3cHEyMnhQcmwzOHlmbXhyd3R4ODQ4bCtmUGZDVy8KUDVwazdN
czVlT3laeFNlMjA5TVpUeko2NW4vTmpXOGloLy94UUpMaC9JTmYrZGsxemNFTFA1ajl2Y3Vodzhm
eTdEY09adHNEbzBuRwo4L1JYanVYTTh6ZnNyWmx6MmZYdXJlbmIzcCtmZWQzcmN0dnJrak5QZnlQ
bnJ2MFY3N1hzajkvSXh6cU04OFc1Z3Rzd3QrNW52L1prCk1uWW1sMjZjajQ1emN1ZWlPVjk1SC82
VjNQdkpiVW1TblIrOEsvYy9kakJIbm5nazYrLzZlUDdlYjM4MDNabVpmWjFmT3BkMzN2ZnAKbk53
OWtPemZtb0ZIamkxNXNyM2lIUC92eVJYSDNmRzlObWZkblg4ak93YVNaQ2kvY2UwelNtczhIdWFN
ZnUzSlBQUE1rVHgyNlB6cwp2NWM1RHE2elBzc2ZUeXR1NXl2NXpqdDNyakRHcVJ6ZTlyNWs3Nm5j
L3lzZnkrK003a3J5aGZ6V295ZVdIdlBCWjVmWkdnRHdJMisxCkY0dWNIUjIrZG1la0pDMDlBMjMw
Nmkxc3BzKzN2WU05MXg0YkdqbmFqbDY3QzFCYXovWkRiYkpOdDFQN3RsKzNqdUhSMDYxTm4yMjcK
QithLzF6YzAwaTVPdDlhV1czNEpWeSthVGQ5UTJ6N1kwOUt6dloyODhPMVZqS20xeTJPSFp1OVVs
WUcyZmFpbkpYMXQ5UFQ4NWRHbgpEKzJhSDl2MjRkbUx0d2UzdDVIUnA5dngzWVB6NitzYmFzZlBU
N2F4QmN0ZmUyeHdlOXQ3Nk9RU0Z6aVB0Nk83aDY3ZExTbEp5K0RlCk5uOWpvOVhQd2ZURm8zT3ZJ
eTE5dyszUXZxdmoyTDdFQmNUamJhUW5pOGFacE8zNzFuOTdDZnRqdWNjbTI5RUZkOVFhMmp0NjNU
N28KMnpXNnhOMk9WcHFUeVNYbnZOTStQSHQwOS95ZHVOTFRScDY2dVBnOXUvZDRHenU2NEQzZU45
eHV2TUhVeW5QY2FWOTJmcTlkZGVubwo5cGJ0eDIvY3c2dCtMeXk4NDFUeTE5dmYvK2g3VmpnT0Ry
U2plNGZtMTlzejFQNzlzWCsyK0hpNnVOUjlxUlp1WjZBZHZ6aXg3UHRnCmROZnNjZ083WnkrRWYy
cGtmcHQ5dTQ2MnlVWHJjaDhzQUhpdDZtcXR0YlVseThzek0zRWxWNlptMHIzcGpkbTRpaXRRMXJM
OHpOUkUKSmlhVFRadlcvT2VjOC94ejM4c0wwK3Z6cGp2ZnZPZ252VE5URTVtWVhwOU5HN3N6TXpX
VGRkMGRCakkxa1N1VHljWk5HN051WmlwWgp0OXpQanE5dElCT1RrNW5KaG16YXVIaloxYy9CVkNZ
bWtvMXo2NWlabXNxNjdzWHJtN3B3TEw5NjEwZytkMzVmN3IxMUpoT1RzNTgxCk8vZnZkdWJCU3cv
bW13Ky9mL21ocmpDV3RlN2JGWFdZazhWVzNvZVptY3FWaWNsczJMZ3BuWFpmcCsyc09NY2R4OTFo
bkIyc2ZvNW4KTW5GbE1oczJiWHpKRjNxdDduaGF2SjJYL2o1NCtXTUdBRzUrNVFIQ0Q5dFVEbS9a
a0kvdjM1V3prLzhvYjc5NkJqejFmQTUrNXBkegpidkEvNXVINzF2YjNzQUVBWUxWZThkdndjclBy
enIyZkdrN3lhTjZ4b1N0ZFhiM3A3ZXBLMTRiYjgvUXY3c3N1OFFFQXdLdkliMEIrClRFMDlmeTVQ
bi9xVFhFbXk2ZmE3OHA2ZWQyV1R6NzBBQVBBcUV5QUFBRUFaSDhFQ0FBREtDQkFBQUtDTUFBRUFB
TW9JRUFBQW9Jd0EKQVFBQXlnZ1FBQUNnakFBQkFBREtDQkFBQUtDTUFBRUFBTW9JRUFBQW9Jd0FB
UUFBeWdnUUFBQ2dqQUFCQUFES0NCQUFBS0NNQUFFQQpBTW9JRUFBQW9Jd0FBUUFBeWdnUUFBQ2dq
QUFCQUFES0NCQUFBS0NNQUFFQUFNb0lFQUFBb0l3QUFRQUF5Z2dRQUFDZ2pBQUJBQURLCkNCQUFB
S0NNQUFFQUFNb0lFQUFBb0l3QUFRQUF5Z2dRQUFDZ2pBQUJBQURLQ0JBQUFLQ01BQUVBQU1vSUVB
QUFvSXdBQVFBQXlnZ1EKQUFDZ2pBQUJBQURLQ0JBQUFLQ01BQUVBQU1vSUVBQUFvSXdBQVFBQXln
Z1FBQUNnakFBQkFBREtDQkFBQUtDTUFBRUFBTW9JRUFBQQpvSXdBQVFBQXlnZ1FBQUNnakFBQkFB
REtDQkFBQUtDTUFBRUFBTW9JRUFBQW9Jd0FBUUFBeWdnUUFBQ2dqQUFCQUFES0NCQUFBS0NNCkFB
RUFBTW9JRUFBQW9Jd0FBUUFBeWdnUUFBQ2dqQUFCQUFES0NCQUFBS0NNQUFFQUFNb0lFQUFBb0l3
QUFRQUF5Z2dRQUFDZ2pBQUIKQUFES0NCQUFBS0NNQUFFQUFNb0lFQUFBb0l3QUFRQUF5Z2dRQUFD
Z2pBQUJBQURLQ0JBQUFLQ01BQUVBQU1vSUVBQUFvSXdBQVFBQQp5Z2dRQUFDZ2pBQUJBQURLQ0JB
QUFLQ01BQUVBQU1vSUVBQUFvSXdBQVFBQXlnZ1FBQUNnakFBQkFBREtDQkFBQUtDTUFBRUFBTW9J
CkVBQUFvSXdBQVFBQXlnZ1FBQUNnakFBQkFBREtDQkFBQUtDTUFBRUFBTW9JRUFBQW9Jd0FBUUFB
eWdnUUFBQ2dqQUFCQUFES0NCQUEKQUtDTUFBRUFBTW9JRUFBQW9Jd0FBUUFBeWdnUUFBQ2dqQUFC
QUFES0NCQUFBS0NNQUFFQUFNb0lFQUFBb0l3QUFRQUF5Z2dRQUFDZwpqQUFCQUFES0NCQUFBS0NN
QUFFQUFNb0lFQUFBb0l3QUFRQUF5Z2dRQUFDZ2pBQUJBQURLQ0JBQUFLQ01BQUVBQU1vSUVBQUFv
SXdBCkFRQUF5Z2dRQUFDZ2pBQUJBQURLQ0JBQUFLQ01BQUVBQU1vSUVBQUFvSXdBQVFBQXlnZ1FB
QUNnakFBQkFBREtDQkFBQUtDTUFBRUEKQU1vSUVBQUFvSXdBQVFBQXlnZ1FBQUNnakFBQkFBREtD
QkFBQUtDTUFBRUFBTW9JRUFBQW9Jd0FBUUFBeWdnUUFBQ2dqQUFCQUFESwpDQkFBQUtDTUFBRUFB
TW9JRUFBQW9Jd0FBUUFBeWdnUUFBQ2dqQUFCQUFES0NCQUFBS0NNQUFFQUFNb0lFQUFBb0l3QUFR
QUF5Z2dRCkFBQ2dqQUFCQUFES0NCQUFBS0NNQUFFQUFNb0lFQUFBb0l3QUFRQUF5Z2dRQUFDZ2pB
QUJBQURLQ0JBQUFLQ01BQUVBQU1vSUVBQUEKb0l3QUFRQUF5Z2dRQUFDZ2pBQUJBQURLQ0JBQUFL
Q01BQUVBQU1vSUVBQUFvSXdBQVFBQXlnZ1FBQUNnakFBQkFBREtDQkFBQUtDTQpBQUVBQU1vSUVB
QUFvSXdBQVFBQXlnZ1FBQUNnakFBQkFBREtDQkFBQUtDTUFBRUFBTW9JRUFBQW9Jd0FBUUFBeWdn
UUFBQ2dqQUFCCkFBREtDQkFBQUtDTUFBRUFBTW9JRUFBQW9Jd0FBUUFBeWdnUUFBQ2dqQUFCQUFE
S0NCQUFBS0NNQUFFQUFNb0lFQUFBb0l3QUFRQUEKeWdnUUFBQ2dqQUFCQUFES0NCQUFBS0NNQUFF
QUFNb0lFQUFBb0l3QUFRQUF5Z2dRQUFDZ2pBQUJBQURLQ0JBQUFLQ01BQUVBQU1vSQpFQUFBb0l3
QUFRQUF5Z2dRQUFDZ2pBQUJBQURLQ0JBQUFLQ01BQUVBQU1vSUVBQUFvSXdBQVFBQXlnZ1FBQUNn
akFBQkFBREtDQkFBCkFLQ01BQUVBQU1vSUVBQUFvSXdBQVFBQXlnZ1FBQUNnakFBQkFBREtDQkFB
QUtDTUFBRUFBTW9JRUFBQW9Jd0FBUUFBeWdnUUFBQ2cKakFBQkFBREtDQkFBQUtDTUFBRUFBTW9J
RUFBQW9Jd0FBUUFBeWdnUUFBQ2dqQUFCQUFES0NCQUFBS0NNQUFFQUFNb0lFQUFBb0l3QQpBUUFB
eWdnUUFBQ2dqQUFCQUFES0NCQUFBS0NNQUFFQUFNb0lFQUFBb0l3QUFRQUF5Z2dRQUFDZ2pBQUJB
QURLQ0JBQUFLQ01BQUVBCkFNb0lFQUFBb0l3QUFRQUF5Z2dRQUFDZ2pBQUJBQURLQ0JBQUFLQ01B
QUVBQU1vSUVBQUFvSXdBQVFBQXlnZ1FBQUNnakFBQkFBREsKQ0JBQUFLQ01BQUVBQU1vSUVBQUFv
SXdBQVFBQXlnZ1FBQUNnakFBQkFBREtDQkFBQUtDTUFBRUFBTW9JRUFBQW9Jd0FBUUFBeWdnUQpB
QUNnakFBQkFBREtDQkFBQUtDTUFBRUFBTW9JRUFBQW9Jd0FBUUFBeWdnUUFBQ2dqQUFCQUFES0NC
QUFBS0NNQUFFQUFNb0lFQUFBCm9Jd0FBUUFBeWdnUUFBQ2dqQUFCQUFES0NCQUFBS0NNQUFFQUFN
b0lFQUFBb0l3QUFRQUF5Z2dRQUFDZ2pBQUJBQURLQ0JBQUFLQ00KQUFFQUFNb0lFQUFBb0l3QUFR
QUF5Z2dRQUFDZ2pBQUJBQURLQ0JBQUFLQ01BQUVBQU1vSUVBQUFvSXdBQVFBQXlnZ1FBQUNnakFB
QgpBQURLQ0JBQUFLQ01BQUVBQU1vSUVBQUFvSXdBQVFBQXlnZ1FBQUNnakFBQkFBREtDQkFBQUtD
TUFBRUFBTW9JRUFBQW9Jd0FBUUFBCnlnZ1FBQUNnakFBQkFBREtDQkFBQUtDTUFBRUFBTW9JRUFB
QW9Jd0FBUUFBeWdnUUFBQ2dqQUFCQUFES0NCQUFBS0NNQUFFQUFNb0kKRUFBQW9Jd0FBUUFBeWdn
UUFBQ2dqQUFCQUFES0NCQUFBS0NNQUFFQUFNb0lFQUFBb0l3QUFRQUF5Z2dRQUFDZ2pBQUJBQURL
Q0JBQQpBS0NNQUFFQUFNb0lFQUFBb0l3QUFRQUF5Z2dRQUFDZ2pBQUJBQURLQ0JBQUFLQ01BQUVB
QU1vSUVBQUFvSXdBQVFBQXlnZ1FBQUNnCmpBQUJBQURLQ0JBQUFLQ01BQUVBQU1vSUVBQUFvSXdB
QVFBQXlnZ1FBQUNnakFBQkFBREtDQkFBQUtDTUFBRUFBTW9JRUFBQW9Jd0EKQVFBQXlnZ1FBQUNn
akFBQkFBREtDQkFBQUtDTUFBRUFBTW9JRUFBQW9Jd0FBUUFBeWdnUUFBQ2dqQUFCQUFES0NCQUFB
S0NNQUFFQQpBTW9JRUFBQW9Jd0FBUUFBeWdnUUFBQ2dqQUFCQUFES0NCQUFBS0NNQUFFQUFNb0lF
QUFBb0l3QUFRQUF5Z2dRQUFDZ2pBQUJBQURLCkNCQUFBS0NNQUFFQUFNb0lFQUFBb0l3QUFRQUF5
Z2dRQUFDZ2pBQUJBQURLQ0JBQUFLQ01BQUVBQU1vSUVBQUFvSXdBQVFBQXlnZ1EKQUFDZ2pBQUJB
QURLQ0JBQUFLQ01BQUVBQU1vSUVBQUFvSXdBQVFBQXlnZ1FBQUNnakFBQkFBREtDQkFBQUtDTUFB
RUFBTW9JRUFBQQpvSXdBQVFBQXlnZ1FBQUNnakFBQkFBREtDQkFBQUtDTUFBRUFBTW9JRUFBQW9J
d0FBUUFBeWdnUUFBQ2dqQUFCQUFES0NCQUFBS0NNCkFBRUFBTW9JRUFBQW9Jd0FBUUFBeWdnUUFB
Q2dqQUFCQUFES0NCQUFBS0NNQUFFQUFNb0lFQUFBb0l3QUFRQUF5Z2dRQUFDZ2pBQUIKQUFES0NC
QUFBS0NNQUFFQUFNb0lFQUFBb0l3QUFRQUF5Z2dRQUFDZ2pBQUJBQURLQ0JBQUFLQ01BQUVBQU1v
SUVBQUFvSXdBQVFBQQp5Z2dRQUFDZ2pBQUJBQURLQ0JBQUFLQ01BQUVBQU1vSUVBQUFvSXdBQVFB
QXlnZ1FBQUNnakFBQkFBREtDQkFBQUtDTUFBRUFBTW9JCkVBQUFvSXdBQVFBQXlnZ1FBQUNnakFB
QkFBREtDQkFBQUtDTUFBRUFBTW9JRUFBQW9Jd0FBUUFBeWdnUUFBQ2dqQUFCQUFES0NCQUEKQUtD
TUFBRUFBTW9JRUFBQW9Jd0FBUUFBeWdnUUFBQ2dqQUFCQUFES0NCQUFBS0NNQUFFQUFNb0lFQUFB
b0l3QUFRQUF5Z2dRQUFDZwpqQUFCQUFES0NCQUFBS0NNQUFFQUFNb0lFQUFBb0l3QUFRQUF5Z2dR
QUFDZ2pBQUJBQURLQ0JBQUFLQ01BQUVBQU1vSUVBQUFvSXdBCkFRQUF5Z2dRQUFDZ2pBQUJBQURL
Q0JBQUFLQ01BQUVBQU1vSUVBQUFvSXdBQVFBQXlnZ1FBQUNnakFBQkFBREtDQkFBQUtDTUFBRUEK
QU1vSUVBQUFvSXdBQVFBQXlnZ1FBQUNnakFBQkFBREtDQkFBQUtDTUFBRUFBTW9JRUFBQW9Jd0FB
UUFBeWdnUUFBQ2dqQUFCQUFESwpDQkFBQUtDTUFBRUFBTW9JRUFBQW9Jd0FBUUFBeWdnUUFBQ2dq
QUFCQUFES0NCQUFBS0NNQUFFQUFNb0lFQUFBb0l3QUFRQUF5Z2dRCkFBQ2dqQUFCQUFES0NCQUFB
S0NNQUFFQUFNb0lFQUFBb0l3QUFRQUF5Z2dRQUFDZ2pBQUJBQURLQ0JBQUFLQ01BQUVBQU1vSUVB
QUEKb0l3QUFRQUF5Z2dRQUFDZ2pBQUJBQURLQ0JBQUFLQ01BQUVBQU1vSUVBQUFvSXdBQVFBQXln
Z1FBQUNnakFBQkFBREtDQkFBQUtDTQpBQUVBQU1vSUVBQUFvSXdBQVFBQXlnZ1FBQUNnakFBQkFB
REtDQkFBQUtDTUFBRUFBTW9JRUFBQW9Jd0FBUUFBeWdnUUFBQ2dqQUFCCkFBREtDQkFBQUtDTUFB
RUFBTW9JRUFBQW9Jd0FBUUFBeWdnUUFBQ2dqQUFCQUFES0NCQUFBS0NNQUFFQUFNb0lFQUFBb0l3
QUFRQUEKeWdnUUFBQ2dqQUFCQUFES0NCQUFBS0NNQUFFQUFNb0lFQUFBb0l3QUFRQUF5Z2dRQUFD
Z2pBQUJBQURLQ0JBQUFLQ01BQUVBQU1vSQpFQUFBb0l3QUFRQUF5Z2dRQUFDZ2pBQUJBQURLQ0JB
QUFLQ01BQUVBQU1vSUVBQUFvSXdBQVFBQXlnZ1FBQUNnakFBQkFBREtDQkFBCkFLRE0vd2N5VTRl
L3h0ZWowd0FBQUFCSlJVNUVya0pnZ2c9PQoK
</data>
<flag name="review"
          id="8117"
          type_id="1"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18554</attachid>
            <date>2008-01-19 13:39:25 -0800</date>
            <delta_ts>2008-01-19 13:40:59 -0800</delta_ts>
            <desc>Here we go. Easy after all.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>1688</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24gMjk1OTQpCisrKyByZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MTIsOCArNDEyLDcgQEAgdm9pZCBSZW5kZXJMYXll
cjo6dXBkYXRlTGF5ZXJQb3NpdGlvbigpCiBSZW5kZXJMYXllciAqUmVuZGVyTGF5ZXI6OnN0YWNr
aW5nQ29udGV4dCgpIGNvbnN0CiB7CiAgICAgUmVuZGVyTGF5ZXIqIGN1cnIgPSBwYXJlbnQoKTsK
LSAgICBmb3IgKCA7IGN1cnIgJiYgIWN1cnItPm1fb2JqZWN0LT5pc1JlbmRlclZpZXcoKSAmJiAh
Y3Vyci0+bV9vYmplY3QtPmlzUm9vdCgpICYmCi0gICAgICAgICAgY3Vyci0+bV9vYmplY3QtPnN0
eWxlKCktPmhhc0F1dG9aSW5kZXgoKTsKKyAgICBmb3IgKCA7IGN1cnIgJiYgIWN1cnItPm1fb2Jq
ZWN0LT5pc1JlbmRlclZpZXcoKSAmJiBjdXJyLT5tX29iamVjdC0+c3R5bGUoKS0+aGFzQXV0b1pJ
bmRleCgpOwogICAgICAgICAgIGN1cnIgPSBjdXJyLT5wYXJlbnQoKSkgeyB9CiAgICAgcmV0dXJu
IGN1cnI7CiB9CkBAIC00MjIsOCArNDIxLDcgQEAgUmVuZGVyTGF5ZXIqCiBSZW5kZXJMYXllcjo6
ZW5jbG9zaW5nUG9zaXRpb25lZEFuY2VzdG9yKCkgY29uc3QKIHsKICAgICBSZW5kZXJMYXllciog
Y3VyciA9IHBhcmVudCgpOwotICAgIGZvciAoIDsgY3VyciAmJiAhY3Vyci0+bV9vYmplY3QtPmlz
UmVuZGVyVmlldygpICYmICFjdXJyLT5tX29iamVjdC0+aXNSb290KCkgJiYKLSAgICAgICAgICFj
dXJyLT5tX29iamVjdC0+aXNQb3NpdGlvbmVkKCkgJiYgIWN1cnItPm1fb2JqZWN0LT5pc1JlbFBv
c2l0aW9uZWQoKTsKKyAgICBmb3IgKCA7IGN1cnIgJiYgIWN1cnItPm1fb2JqZWN0LT5pc1JlbmRl
clZpZXcoKSAmJiAhY3Vyci0+bV9vYmplY3QtPmlzUG9zaXRpb25lZCgpICYmICFjdXJyLT5tX29i
amVjdC0+aXNSZWxQb3NpdGlvbmVkKCk7CiAgICAgICAgICBjdXJyID0gY3Vyci0+cGFyZW50KCkp
IHsgfQogICAgICAgICAgCiAgICAgcmV0dXJuIGN1cnI7CkluZGV4OiByZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2
aXNpb24gMjk2NDcpCisrKyByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDk2LDYgKzQ5Niw4IEBAIFJlbmRlckxheWVyKiBSZW5kZXJPYmplY3Q6OmVuY2xvc2lu
Z0xheWUKIAogYm9vbCBSZW5kZXJPYmplY3Q6OnJlcXVpcmVzTGF5ZXIoKQogeworICAgIC8vIEZJ
WE1FOiBUaGUgcm9vdCBubyBsb25nZXIgbmVlZHMgYSBsYXllci4gIEVsaW1pbmF0aW5nIHRoaXMg
aGFzIHRvIGJlIGRvbmUgYnkgc29tZW9uZSB3aG8gY2FuIHVwZGF0ZSBldmVyeSBzaW5nbGUKKyAg
ICAvLyBsYXlvdXQgdGVzdCB0aG91Z2guCiAgICAgcmV0dXJuIGlzUm9vdCgpIHx8IGlzUG9zaXRp
b25lZCgpIHx8IGlzUmVsUG9zaXRpb25lZCgpIHx8IGlzVHJhbnNwYXJlbnQoKSB8fCBoYXNPdmVy
Zmxvd0NsaXAoKSB8fCBoYXNUcmFuc2Zvcm0oKTsKIH0KIAo=
</data>
<flag name="review"
          id="8118"
          type_id="1"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18555</attachid>
            <date>2008-01-19 13:40:49 -0800</date>
            <delta_ts>2008-01-19 14:01:14 -0800</delta_ts>
            <desc>Finally.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>1043</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24gMjk1OTQpCisrKyByZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MTQsNyArNDE0LDcgQEAgUmVuZGVyTGF5ZXIgKlJl
bmRlckxheWVyOjpzdGFja2luZ0NvbnRleAogICAgIFJlbmRlckxheWVyKiBjdXJyID0gcGFyZW50
KCk7CiAgICAgZm9yICggOyBjdXJyICYmICFjdXJyLT5tX29iamVjdC0+aXNSZW5kZXJWaWV3KCkg
JiYgIWN1cnItPm1fb2JqZWN0LT5pc1Jvb3QoKSAmJgogICAgICAgICAgIGN1cnItPm1fb2JqZWN0
LT5zdHlsZSgpLT5oYXNBdXRvWkluZGV4KCk7Ci0gICAgICAgICAgY3VyciA9IGN1cnItPnBhcmVu
dCgpKSB7IH0KKyAgICAgICAgICBjdXJyID0gY3Vyci0+cGFyZW50KCkpOwogICAgIHJldHVybiBj
dXJyOwogfQogCkBAIC00MjIsMTAgKzQyMiw4IEBAIFJlbmRlckxheWVyKgogUmVuZGVyTGF5ZXI6
OmVuY2xvc2luZ1Bvc2l0aW9uZWRBbmNlc3RvcigpIGNvbnN0CiB7CiAgICAgUmVuZGVyTGF5ZXIq
IGN1cnIgPSBwYXJlbnQoKTsKLSAgICBmb3IgKCA7IGN1cnIgJiYgIWN1cnItPm1fb2JqZWN0LT5p
c1JlbmRlclZpZXcoKSAmJiAhY3Vyci0+bV9vYmplY3QtPmlzUm9vdCgpICYmCi0gICAgICAgICAh
Y3Vyci0+bV9vYmplY3QtPmlzUG9zaXRpb25lZCgpICYmICFjdXJyLT5tX29iamVjdC0+aXNSZWxQ
b3NpdGlvbmVkKCk7Ci0gICAgICAgICBjdXJyID0gY3Vyci0+cGFyZW50KCkpIHsgfQotICAgICAg
ICAgCisgICAgZm9yICggOyBjdXJyICYmICFjdXJyLT5tX29iamVjdC0+aXNSZW5kZXJWaWV3KCkg
JiYgIWN1cnItPm1fb2JqZWN0LT5pc1Bvc2l0aW9uZWQoKSAmJiAhY3Vyci0+bV9vYmplY3QtPmlz
UmVsUG9zaXRpb25lZCgpOworICAgICAgICAgY3VyciA9IGN1cnItPnBhcmVudCgpKTsKICAgICBy
ZXR1cm4gY3VycjsKIH0KIAo=
</data>
<flag name="review"
          id="8119"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>