<?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>72095</bug_id>
          
          <creation_ts>2011-11-11 00:27:35 -0800</creation_ts>
          <short_desc>[chromium] Font::drawComplexText can not draw a segment of text run</short_desc>
          <delta_ts>2011-11-17 21:25:22 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Linux</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>0</everconfirmed>
          <reporter name="Robin Cao">robin.webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bashi</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>jamesr</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>500560</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Cao">robin.webkit</who>
    <bug_when>2011-11-11 00:27:35 -0800</bug_when>
    <thetext>The implementation of Font::drawComplexText() in Chromium Linux does not respect the |from| and |to| arguments. It just draws the whole text run. This will result in text overlap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500576</commentid>
    <comment_count>1</comment_count>
      <attachid>114642</attachid>
    <who name="Robin Cao">robin.webkit</who>
    <bug_when>2011-11-11 01:04:21 -0800</bug_when>
    <thetext>Created attachment 114642
proposed patch with test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501334</commentid>
    <comment_count>2</comment_count>
    <who name="Robin Cao">robin.webkit</who>
    <bug_when>2011-11-11 19:47:13 -0800</bug_when>
    <thetext>CC folks familiar with this part of the code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501732</commentid>
    <comment_count>3</comment_count>
      <attachid>114642</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-11-14 02:01:39 -0800</bug_when>
    <thetext>Comment on attachment 114642
proposed patch with test case

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

Thanks for the patch. It looks good to me. Some minor comments follows.

&gt; Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.h:109
&gt; +    const unsigned charStartPos() const { return m_item.item.pos; }

nit: WebKit doesn&apos;t prefer abbreviation. characterStartPosition() would be fine.

&gt; Source/WebCore/platform/graphics/chromium/FontLinux.cpp:211
&gt; +            // No chars in this item to display.

I think this comment is saying almost the same of above comment. Braces can be removed when this comment is no longer needed.

&gt; Source/WebCore/platform/graphics/chromium/FontLinux.cpp:227
&gt; +            continue;

How about having a function which takes |from| and |to| as arguments and handles these logic in ComplexTextController? The function would return false if there is no glyph to be displayed in the run. Otherwise, the function would return true and update values of length() and positions(). This way, we don&apos;t need to expose logclusters and beginning offset.

&gt; Source/WebCore/platform/graphics/chromium/FontLinux.cpp:238
&gt; +            canvas-&gt;drawPosText(controller.glyphs() + fromGlyph, glyphCount &lt;&lt; 1, controller.positions() + fromGlyph, strokePaint);

If you agree with having a function that handle clipping in ComplexTextController, these changes might not be needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502993</commentid>
    <comment_count>4</comment_count>
    <who name="Robin Cao">robin.webkit</who>
    <bug_when>2011-11-15 09:50:05 -0800</bug_when>
    <thetext>Thanks for your comments.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/FontLinux.cpp:211
&gt; &gt; +            // No chars in this item to display.
&gt; 
&gt; I think this comment is saying almost the same of above comment. Braces can be removed when this comment is no longer needed.

Good point.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/FontLinux.cpp:227
&gt; &gt; +            continue;
&gt; 
&gt; How about having a function which takes |from| and |to| as arguments and handles these logic in ComplexTextController? The function would return false if there is no glyph to be displayed in the run. Otherwise, the function would return true and update values of length() and positions(). This way, we don&apos;t need to expose logclusters and beginning offset.

I agree that we should add a function here, but personally, i don&apos;t like the idea of updating values of length() and positions() after calling nextScriptRun(). How about adding a function glyphsForRange() which will return the start index and length of glyphs that we need to draw?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503003</commentid>
    <comment_count>5</comment_count>
      <attachid>115186</attachid>
    <who name="Robin Cao">robin.webkit</who>
    <bug_when>2011-11-15 10:04:58 -0800</bug_when>
    <thetext>Created attachment 115186
patch-v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504600</commentid>
    <comment_count>6</comment_count>
    <who name="Robin Cao">robin.webkit</who>
    <bug_when>2011-11-16 23:45:53 -0800</bug_when>
    <thetext>ping : i have updated the patch, could you take a look at it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504616</commentid>
    <comment_count>7</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-11-17 00:03:35 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; ping : i have updated the patch, could you take a look at it?

Sorry for late response. Looks good to me. Please wait for official reviewers review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504618</commentid>
    <comment_count>8</comment_count>
    <who name="Robin Cao">robin.webkit</who>
    <bug_when>2011-11-17 00:08:46 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; 
&gt; Sorry for late response. Looks good to me. Please wait for official reviewers review.

Thank you very much.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505370</commentid>
    <comment_count>9</comment_count>
      <attachid>115186</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-17 17:20:23 -0800</bug_when>
    <thetext>Comment on attachment 115186
patch-v2

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

&gt; Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.cpp:548
&gt; +void ComplexTextController::glyphsForRange(int from , int to, int&amp; fromGlyph, int&amp; glyphLength)

nit: &quot;from ,&quot; has an extra space.

&gt; LayoutTests/platform/chromium-linux/fast/text/international/draw-complex-text-from-to.html:11
&gt; +&lt;p&gt;The text and ellipsis should not overlap.&lt;/p&gt;

Should this test be run on all ports?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505372</commentid>
    <comment_count>10</comment_count>
      <attachid>115186</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-11-17 17:21:19 -0800</bug_when>
    <thetext>Comment on attachment 115186
patch-v2

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

&gt;&gt; LayoutTests/platform/chromium-linux/fast/text/international/draw-complex-text-from-to.html:11
&gt;&gt; +&lt;p&gt;The text and ellipsis should not overlap.&lt;/p&gt;
&gt; 
&gt; Should this test be run on all ports?

Can you add a call to layoutTestController.dumpAsText(true) to not have the render tree in the text output?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505380</commentid>
    <comment_count>11</comment_count>
    <who name="Robin Cao">robin.webkit</who>
    <bug_when>2011-11-17 17:29:45 -0800</bug_when>
    <thetext>(In reply to comment #9)

&gt; &gt; Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.cpp:548
&gt; &gt; +void ComplexTextController::glyphsForRange(int from , int to, int&amp; fromGlyph, int&amp; glyphLength)
&gt; 
&gt; nit: &quot;from ,&quot; has an extra space.
&gt; 

good catch! Will remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505387</commentid>
    <comment_count>12</comment_count>
    <who name="Robin Cao">robin.webkit</who>
    <bug_when>2011-11-17 17:35:00 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 115186 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=115186&amp;action=review
&gt; 
&gt; &gt;&gt; LayoutTests/platform/chromium-linux/fast/text/international/draw-complex-text-from-to.html:11
&gt; &gt;&gt; +&lt;p&gt;The text and ellipsis should not overlap.&lt;/p&gt;
&gt; &gt; 
&gt; &gt; Should this test be run on all ports?
&gt; 
&gt; Can you add a call to layoutTestController.dumpAsText(true) to not have the render tree in the text output?

It makes sense to call layoutTestController.dumpAsText(true). If this test be run on all ports, should i generate all the expected PNGs on all platform in this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505405</commentid>
    <comment_count>13</comment_count>
      <attachid>115720</attachid>
    <who name="Robin Cao">robin.webkit</who>
    <bug_when>2011-11-17 18:15:36 -0800</bug_when>
    <thetext>Created attachment 115720
patch-v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505470</commentid>
    <comment_count>14</comment_count>
      <attachid>115720</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-17 21:25:17 -0800</bug_when>
    <thetext>Comment on attachment 115720
patch-v3

Clearing flags on attachment: 115720

Committed r100718: &lt;http://trac.webkit.org/changeset/100718&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505471</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-17 21:25:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114642</attachid>
            <date>2011-11-11 01:04:21 -0800</date>
            <delta_ts>2011-11-15 10:04:47 -0800</delta_ts>
            <desc>proposed patch with test case</desc>
            <filename>bug-72095-20111111170421.patch</filename>
            <type>text/plain</type>
            <size>12684</size>
            <attacher name="Robin Cao">robin.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk4ODMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OGJiYjAxODgzMDdmMzUx
NjQ2MWI1MjQ4N2IzZDZiZGMyYjEwYzgxLi4yYjAzNWYzYTFiNGExNDU0MDYyNDI4ZDkwMWQ2YjAz
Mzg1NGJmMmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTEtMTEgIFJvYmlu
IENhbyAgPHJvYmluLmNhb0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgW2Nocm9taXVt
XSBGb250OjpkcmF3Q29tcGxleFRleHQgY2FuIG5vdCBkcmF3IGEgc2VnbWVudCBvZiB0ZXh0IHJ1
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwOTUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBkcmF3Q29t
cGxleFRleHQoKSBzaG91bGQgcmVzcGVjdCB0aGUgJ2Zyb20nIGFuZCAndG8nIGFyZ3VtZW50cy4K
KyAgICAgICAgRHJhd2luZyB0aGUgd2hvbGUgdGV4dCBydW4gbWF5IHJlc3VsdCBpbiB0ZXh0IG92
ZXJsYXBwaW5nLgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qv
dGV4dC9pbnRlcm5hdGlvbmFsL2RyYXctY29tcGxleC10ZXh0LWZyb20tdG8uaHRtbAorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29tcGxleFRleHRDb250cm9sbGVyTGlu
dXguaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6bG9nQ2x1c3Rl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjpjaGFyU3RhcnRQ
b3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51eC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3Q29tcGxleFRleHQpOgorCiAyMDExLTExLTEw
ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXJzZSBkcm9wLXNo
YWRvdygpIGZpbHRlciBzeW50YXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NvbXBsZXhUZXh0Q29udHJvbGxlckxpbnV4LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db21wbGV4VGV4dENvbnRyb2xsZXJM
aW51eC5oCmluZGV4IGUxZWQzZDhkZDIyMDhkMjU5YzA0NzNiMjc1MGQ0ZGZmN2I0MGM0OGIuLjBj
Y2JjMzZhODBkNDUxN2Y4YWQ2MzJjYWU4M2I3YzgxOGU1ZDNiOTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbXBsZXhUZXh0Q29udHJvbGxl
ckxpbnV4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Q29tcGxleFRleHRDb250cm9sbGVyTGludXguaApAQCAtMTAxLDYgKzEwMSwxMyBAQCBwdWJsaWM6
CiAgICAgLy8gcnVuLgogICAgIGNvbnN0IFNrUG9pbnQqIHBvc2l0aW9ucygpIGNvbnN0IHsgcmV0
dXJuIG1fcG9zaXRpb25zOyB9CiAKKyAgICAvLyBSZXR1cm4gdGhlIGNsdXN0ZXIgbG9nIGZvciB0
aGUgY3VycmVudCBzY3JpcHQgcnVuLgorICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0KiBsb2dDbHVz
dGVycygpIGNvbnN0IHsgcmV0dXJuIG1faXRlbS5sb2dfY2x1c3RlcnM7IH0KKworICAgIC8vIFJl
dHVybiB0aGUgb2Zmc2V0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgd2hvbGUgc3RyaW5nIHRv
IHRoZSBmaXJzdCBjaGFyYWN0ZXIKKyAgICAvLyBvZiB0aGUgY3VycmVudCBzY3JpcHQgcnVuLCBj
b3VudGVkIGluIGNvZGUgcG9pbnRzLgorICAgIGNvbnN0IHVuc2lnbmVkIGNoYXJTdGFydFBvcygp
IGNvbnN0IHsgcmV0dXJuIG1faXRlbS5pdGVtLnBvczsgfQorCiAgICAgLy8gcmV0dXJuIHRoZSBu
dW1iZXIgb2YgY29kZSBwb2ludHMgaW4gdGhlIGN1cnJlbnQgc2NyaXB0IHJ1bgogICAgIGNvbnN0
IHVuc2lnbmVkIG51bUNvZGVQb2ludHMoKSBjb25zdCB7IHJldHVybiBtX2l0ZW0uaXRlbS5sZW5n
dGg7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRm9udExpbnV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ZvbnRMaW51eC5jcHAKaW5kZXggMTA0NzFhNjE2Y2QyOGY5ZDJjODg2YmE4OGM0MzIz
MTMzNjMxNzlkYS4uYTY5Yjk4NjBmMmNkN2M3MTkzYjEzMDg2MDM3YzJjNmIzNmIzYjJiNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExp
bnV4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9G
b250TGludXguY3BwCkBAIC0yMDEsMTYgKzIwMSw0MSBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4
VGV4dChHcmFwaGljc0NvbnRleHQqIGdjLCBjb25zdCBUZXh0UnVuJiBydW4sCiAgICAgICAgIGNv
bnRyb2xsZXIuc2V0dXBGb3JSVEwoKTsKIAogICAgIHdoaWxlIChjb250cm9sbGVyLm5leHRTY3Jp
cHRSdW4oKSkgeworICAgICAgICAvLyBDaGFyYWN0ZXIgb2Zmc2V0cyB3aXRoaW4gdGhpcyBydW4u
IFRIRVNFIE1BWSBOT1QgQkUgSU4gUkFOR0UgYW5kIG1heQorICAgICAgICAvLyBiZSBuZWdhdGl2
ZSwgZXRjLiBUaGUgY29kZSBiZWxvdyBoYW5kbGVzIHRoaXMuCisgICAgICAgIGludCBmcm9tQ2hh
ciA9IGZyb20gLSBjb250cm9sbGVyLmNoYXJTdGFydFBvcygpOworICAgICAgICBpbnQgdG9DaGFy
ID0gdG8gLSBjb250cm9sbGVyLmNoYXJTdGFydFBvcygpOworCisgICAgICAgIC8vIFNlZSBpZiB3
ZSBuZWVkIHRvIGRyYXcgYW55IGNoYXJhY3RlcnMgaW4gdGhpcyBpdGVtLgorICAgICAgICBpZiAo
IWNvbnRyb2xsZXIubnVtQ29kZVBvaW50cygpIHx8IGZyb21DaGFyID49IHN0YXRpY19jYXN0PGlu
dD4oY29udHJvbGxlci5udW1Db2RlUG9pbnRzKCkpIHx8IHRvQ2hhciA8PSAwKSB7CisgICAgICAg
ICAgICAvLyBObyBjaGFycyBpbiB0aGlzIGl0ZW0gdG8gZGlzcGxheS4KKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29tcHV0ZSB0aGUgc3RhcnRpbmcgZ2x5
cGggd2l0aGluIHRoaXMgc3Bhbi4gfGZyb218IGFuZCB8dG98IGFyZQorICAgICAgICAvLyBnbG9i
YWwgb2Zmc2V0cyB0aGF0IG1heSBpbnRlcnNlY3QgYXJiaXRyYXJpbHkgd2l0aCBvdXIgbG9jYWwg
cnVuLgorICAgICAgICBpbnQgZnJvbUdseXBoLCBhZnRlckdseXBoOworICAgICAgICBmcm9tR2x5
cGggPSBjb250cm9sbGVyLmxvZ0NsdXN0ZXJzKClbZnJvbUNoYXIgPCAwID8gMCA6IGZyb21DaGFy
XTsKKyAgICAgICAgaWYgKHRvQ2hhciA+PSBzdGF0aWNfY2FzdDxpbnQ+KGNvbnRyb2xsZXIubnVt
Q29kZVBvaW50cygpKSkKKyAgICAgICAgICAgIGFmdGVyR2x5cGggPSBjb250cm9sbGVyLmxlbmd0
aCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBhZnRlckdseXBoID0gY29udHJvbGxlci5s
b2dDbHVzdGVycygpW3RvQ2hhcl07CisKKyAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgaXMgYW55
IGdseXBoIGZvdW5kIGluIHRoZSBjdXJyZW50IHNjcmlwdCBydW4uCisgICAgICAgIGludCBnbHlw
aENvdW50ID0gYWZ0ZXJHbHlwaCAtIGZyb21HbHlwaDsKKyAgICAgICAgaWYgKGZyb21HbHlwaCA8
IDAgfHwgZ2x5cGhDb3VudCA8PSAwKQorICAgICAgICAgICAgY29udGludWU7CisKICAgICAgICAg
aWYgKGZpbGwpIHsKICAgICAgICAgICAgIGNvbnRyb2xsZXIuZm9udFBsYXRmb3JtRGF0YUZvclNj
cmlwdFJ1bigpLT5zZXR1cFBhaW50KCZmaWxsUGFpbnQpOwogICAgICAgICAgICAgYWRqdXN0VGV4
dFJlbmRlck1vZGUoJmZpbGxQYWludCwgZ2MtPnBsYXRmb3JtQ29udGV4dCgpKTsKLSAgICAgICAg
ICAgIGNhbnZhcy0+ZHJhd1Bvc1RleHQoY29udHJvbGxlci5nbHlwaHMoKSwgY29udHJvbGxlci5s
ZW5ndGgoKSA8PCAxLCBjb250cm9sbGVyLnBvc2l0aW9ucygpLCBmaWxsUGFpbnQpOworICAgICAg
ICAgICAgY2FudmFzLT5kcmF3UG9zVGV4dChjb250cm9sbGVyLmdseXBocygpICsgZnJvbUdseXBo
LCBnbHlwaENvdW50IDw8IDEsIGNvbnRyb2xsZXIucG9zaXRpb25zKCkgKyBmcm9tR2x5cGgsIGZp
bGxQYWludCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoc3Ryb2tlKSB7CiAgICAgICAgICAg
ICBjb250cm9sbGVyLmZvbnRQbGF0Zm9ybURhdGFGb3JTY3JpcHRSdW4oKS0+c2V0dXBQYWludCgm
c3Ryb2tlUGFpbnQpOwogICAgICAgICAgICAgYWRqdXN0VGV4dFJlbmRlck1vZGUoJnN0cm9rZVBh
aW50LCBnYy0+cGxhdGZvcm1Db250ZXh0KCkpOwotICAgICAgICAgICAgY2FudmFzLT5kcmF3UG9z
VGV4dChjb250cm9sbGVyLmdseXBocygpLCBjb250cm9sbGVyLmxlbmd0aCgpIDw8IDEsIGNvbnRy
b2xsZXIucG9zaXRpb25zKCksIHN0cm9rZVBhaW50KTsKKyAgICAgICAgICAgIGNhbnZhcy0+ZHJh
d1Bvc1RleHQoY29udHJvbGxlci5nbHlwaHMoKSArIGZyb21HbHlwaCwgZ2x5cGhDb3VudCA8PCAx
LCBjb250cm9sbGVyLnBvc2l0aW9ucygpICsgZnJvbUdseXBoLCBzdHJva2VQYWludCk7CiAgICAg
ICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTFmZjU0MmYwMWU1Mzg2N2M3NzQxZTM1MDcwZDhmYzE3
OGE1ZDk5MS4uNjIyNmVhOGY5MzhmYjVhMGE5NjRhMjJhNTI4ZWI5YjRkMjRlMDU1ZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDExLTExLTExICBSb2JpbiBDYW8gIDxyb2Jpbi5jYW9AdG9yY2ht
b2JpbGUuY29tLmNuPgorCisgICAgICAgIFtjaHJvbWl1bV0gRm9udDo6ZHJhd0NvbXBsZXhUZXh0
IGNhbiBub3QgZHJhdyBhIHNlZ21lbnQgb2YgdGV4dCBydW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0
L3RleHQvaW50ZXJuYXRpb25hbC9kcmF3LWNvbXBsZXgtdGV4dC1mcm9tLXRvLWV4cGVjdGVkLnBu
ZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC90ZXh0L2lu
dGVybmF0aW9uYWwvZHJhdy1jb21wbGV4LXRleHQtZnJvbS10by1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3QvdGV4dC9pbnRlcm5hdGlv
bmFsL2RyYXctY29tcGxleC10ZXh0LWZyb20tdG8uaHRtbDogQWRkZWQuCisKIDIwMTEtMTEtMTAg
IERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFBhcnNlIGRyb3Atc2hh
ZG93KCkgZmlsdGVyIHN5bnRheApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvZHJhdy1jb21wbGV4LXRleHQtZnJv
bS10by1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9m
YXN0L3RleHQvaW50ZXJuYXRpb25hbC9kcmF3LWNvbXBsZXgtdGV4dC1mcm9tLXRvLWV4cGVjdGVk
LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xM2I4ODM5ZWRkN2QyZTgwYzBkZWVjOGNkODIxMjc0NGMzMDU1NDY5
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA2MzgwCnpjbWVITVlkRCtQekpJR1ZTfWtVRmkqXil5
YzRzKUtZRD9UTj9RVkBKdCNycEZFa2F3QHg7SGApbDlvfVlXMzsxIQp6N0xsNHhYbypYIXJKKWtF
cyVTKFJpQXhldm0kKmc9QXwkZXhJcDVGT0FJYF9WQUNsKTtQdTY8PT47TTFWLVkwaTEKenkxU15V
ZXlhKldrbE1NUSZMU1hhPWllYm4+QyRjYHUlZFpEKC0zP2FWVm9+djA+Z3A+QmpWenRweVM3X1k9
VlEyCnpoZ2lad0VHQDFiS1dQcE54ZHlYMmUkX2xVSU02eVVCeWdZbFN+M0ozI0dnQlIrQjMwdWZ0
VUpRVU5FbV5YJTAkRAp6Nkt5RVgqMU5mWHw4M2leSkclYU9WczRYWDklaSlQSHZnPm9pS2lGYitZ
ajFLOSp+fWReLVRRcW0xPTl5KSV+Zy0Keih7QyR0RSokKllDfmNTV0hFT3ItWipIJTVKK0ZQNnZ9
TWhURTl0a3ZzZHEydTF7Ymh8SEFTMHIoSSRQWlE4OHZHCnpFT3NkQjQ1YH0jLUx5c3g8Rz9MUSop
Mi1ZWmk4OX5PNTFaM3hfTCF1RlpBflp8SnpjWTh1ZmdWU2pifD9tYj45bwp6TXxaeCZGSDNWVyVL
WnJQKWVjO1RXJTIjSHAoUCEtNEUyP0QrZ3tIZGsxbSNSXj5JQnhDcjlOWHRiWCF6c2ZnRFUKemRo
JWhVQzJxUjZia0JZUmA+cGtIe3ErYD1gan1EdlhAeDgxIVVnN0NUe3xDaERMcipGbiU0KmBWb3E3
UHgyLUlQCnpNP31ENWJHazF5dCh4P1RoSno8fWpKKllnb0tGQUIpVkgybVFESUNXP3hobUBffDNS
WDRTaE8jdmRmJWhVI0YmNgp6bjU+RVdUYVU0QHhBYVVeYVNBP1k0ISNIVCQ7dVIpQHRlTmtTfUMj
cm4yODJ0U1V2Q2lhfEVaRklwOT9+SjNJUl8KemcwblhMQHYkMSNyeS1obSZhTl96NFI+QH1QOSpS
XyR6dl9JI3ZNRXtGUVQmaW9eVW5ZV25CVWRPN1ZXT0c0dnY8CnpwNzM3MiZAaWZKOEZ8VWVZdjlI
OGVsKUpJdTwrZmxoeCtTNlN0ZDJGKGN8eTNveVRKc0AtLXNEQW9tYX4rJXFkKAp6T2tQU31ZUyRL
eklFUUwoJSlrbDVIMzFDczlfej18KXpRbG5va2tTcHk7fVBZOXZAcElDXmxnbktNeVoyU2EyNm4K
ekhmOXF5d1leKiUqT1JtKjc1ZDY8N3tlVjY2Ki1TR19HK3Npd3ZIWEJAWTB1MHlXbSE1VlIySSpX
RG07OF97TENICnpObnBvYVgzKXRRaExmYD09RStaNEVeZ1gzNmJzemlKZzU/TTROa0khSDVmS3tR
JHtrM1lmZmNRT3F4KntuRnczRgp6cGU9KURnaTQ7RjcqUmV4YmBmcTM0R3Z5dm9UNlF+N2tAQzxN
cXhlPEFPbGN8THd5fTZmZjAxZHVEa3g5R3F1RCUKejU0Z2lpb0owaTVfZSl1N3I7JGN3USZ4bTZH
MSY/UlcwSVd8V2t0fnlEV3R3dSNSaTgjVSZAWT1lYT57Xkc2OyQlCnp8OWJySHVJQEgydj0mUm10
czN+KygkWjJJRXZmVlY1NiNKfFRfSlRhNz5zc2pWZmJZUHw4LUlgUFNUVUBfZDBQJgp6JjVCIWx5
fXlqdGdtc2RBZXEtdWkrdWtYM25YKks0U1JyLVZ7KXR5enVYaG9SS3M3dXRsWHduRkArciR+PlBL
JWQKekJNeWk0KDdiJF8qbXVVK148TXB9X2FAJWRefHl3Tzl8czU1bSVHaTdOVGd5KiFUXlY/dUM3
WSFFRiVYbVN9ZEBzCnpyKVpSanIzNmhxKlF7fEo5aTE1M1dQWkFlTW84VnopWU1jJk98enZXJGNe
KEZQSWZlKzYhPDNfNW41JjB1S0wpRgp6YXRLPGVUKTM0dFZ2VX5vc28pcTJKclctdUZPOGxYc3Rj
VypCa0g3WlAqP31+TzIzQnY9YSVnQHB8UHhwQGJFJioKenNOdTJKXnRlRFVBWFVUc1E5WnwkXl5N
aUp4RGhiMz5xfXstSj5eZTQpJUVOanNQZi07bGJabkl4OCQzYGRLR3tTCnowMXs5UipHWEpYKUg2
bVR6aTQqYGRsT1NyUT0+UEJMZG0pb1ZIYW5OXlMpeEFLdDV7Zygta0xWYlkmfXNJclJHRQp6KSE5
aFAmRHFLdCRNdnl2OGleOSZaPUt6enF2O0AwaDN8bGRJZHtKRDc5YHgkYk1QVU0oQ01NZiF1VEU9
O1JLI3AKeiNwVDhFNlVWYkZZdj56LU9uclhfS0pffXtLcn1nP2VIayNaSTtCLWg9I2YwNjZAeXYt
RVJmQnBzaXxUNE51ZG45CnpKcFVOViRLdl9RI1pweTZ0IVY1YlUqMitTQ3Y4RSNER0BJRStTS35n
RE1pc3lyUmVianZqRTQwYDlWO2FsdHNXIwp6Y0lEQVhkN1JoTjxjPF8+IyYlaUFwZXQmNl9TT3Vz
SGU9bSt5UDJ8UV9maksyeX1maDk8dHtaPVFqQ3t4TyMwXnkKenleS0lrd3RWWjV5c3x2bTRMVD9o
VGAtI0R8OEQlfXJ4YXJxWl56NCkoY0h3ekpmeFFZTExTbmVIZ1Z0MHI8Zm9wCnpNTkdPTV5fdktn
Jm13NkhCcyhsI0htPVhvdXVmaEghIzdSeTJINGI9QzRQMGd2X09aPDN7Zz0oeXh6YyZNKilHegp6
TkVlVFEtbVMzRV9uTyl+cHFwI3hVdDRVR1NFbERgNyR1MTBnX29TPSNVWXI1I1VJNF9zRjhlVDJ6
R3VqMlFtQ1MKeip2K3k/JlRnUXUpeyo2cmlZPlckWHdUc2oqVXJ1aUd7KD0+MlgpQChqe0hiVHBQ
UVI9Kzhrb182eCl+PUZ+TyZ9CnpKNzViUDcjUjVSYXo+QVhnYlE+YmEtQEV0KH52eWhOOW8yYkhX
eklFN2I1IUZOSjkoQDlAJWtNbWxIc2NLTShGKwp6VE8xYFE8ZFNrP2N6RjBQKSF3I2JXfDM3bnV8
QXNUXldzXk9jcS1EZTI9VDJ8RyNCVkVzQnJCbUpoaEAkQlpPSkYKeiVKeip4I2tNTC12bkpxMV9N
V291dz5IQ1EmaTsqPG5NfXUoUVlaTmcrenUtYG5nV31haUNGPSlTNllHMjZJTEdVCnpROzB5aCNy
QEd0UmliWXJ5MV8ocHVgMyZwTzJjOExIYDdUYmgjX29fWHRHbmZeRyVIP1dvMmREbntFMX5EPnNt
ZAp6cyElV2U/bCtmYTdANy01aHhyWExxZnJlIUhzSmhzWEt1ZCtsfjltNlYzPGlsbEJDT3w9N3Nl
dVp0en1+QHllZWIKekBZVlVEeFdVQDFmRnJhfHpuSHdjcnluM3Y5ZzBqfjdRejZ1WU8xUEdGVHk/
b1pyV2wrK318c2A5PkFZK0tYTW80CnowfE5zVzNONDwtd3dKLWx7eT03dm1NOGwzRD9WU0dLX0lR
NGVHWXdTcFJgTzltaVQmam1gQVh3dktoRmVHXm9iRQp6YEw/PWw8QmpvbS1OJXxEZmdwOWZSTy1N
cnAqMU1uYiUwaDVWKyUkaFpocjRRMzBuak1uNCRpcTFGPk5JYFJAQjUKel9ybHp6XyM5R1NyP2wq
WHZHQFJGNFUtMTRxTXBTR2R4IWBUJCE8OFM5Qk1KQC1VfihMQz1CNDBvViloUWtvKURvCnpqSmFY
PWp7bnJCfDEmckxLWXh8YnhRaCo+UWA5KER5fEo7ZVI8YXhGbD9GY19pb34lNXNvMDc0SVk0JDg7
dlBHbwp6ellKanNqeEh1R3VGVWs4SHliS0w3JDFeQWxlI1ZiY2A2P3NvRVJyemBSOXl1ZnNBIUha
N3UheEglSHZ4eT99MV4KemR1M2ArTjRNNCpmSzY4MGh4R2slRTw8dEgyYH01VUlSY0dnSUQoeEta
OW5lOyRmRFladzVCT3pNXm13IVlMdGc3CnpQK2h1d1ozTiErQ3BmfmhMIUcpRUZTLWxONmhiRyg8
KWxHcFpJbmcpPzRQZypfT0F5fGUwdFdRKkJ4fXlGZjx1egp6blIpN3FnT0J9OF4/N01iIUYqYHgr
RDZGfnZxPDh8KzZfSFFYUWFnZ0tRMVRvUXpnOVpvMzwkQzI1KShKYztxNiYKenFvZXRDcD5QfmE4
NSQkUiYkbCN3WnJkQkQ8TnNDKGFAUXEmVXpATm55ejBvaTI1d25vOEk/PnZyVmUzVGI/c2BDCnpm
JGRQLTNXeHxtUVdKUjZNMj9HcmR2UExBTGlScD9VfG4lNjJrZHlaUlckIUtaSn0tIzxaY2VPRyR0
JTBeT0o7Pgp6QGpYOzRlcXRjXillUiZuLWI+V1BHcl9IVmJuJFFuM1RubH1ebHdXM2FSfTx8I0xU
ejI4bSk/V2NEZ0x6cEp+K18KektvQ3d3NCVRQS1COVJBYTtSNip2eGFDak9iN30kPEFZRSgjSCEt
dzhMU3Jrdj1hZUVxV21TakMxaT5zMUpLNzh3CnpXcytpeDJRMH1AX3xhM09LdXB7RjF1PW07QTtU
d2NSSl9US3NlTWJrKnhoRH5sbiEwJk03Pm9FS1ZgOTVsQ0xBcAp6RmlSMjQxdF5qUUNCVnhGaUA0
RTxAdn1RX19QQEtYZWQqMEBISmwocmQrTmkoP0YyO1p0MEJuZW9EQD0pPjBRNk4KejVUP0ZqejJr
UyVKOyNre0g/d0FwbDJ7cUNXdkpfNHFHYHw/OUJhfGhPJCtzeD5wfnsrSkN+TF5ediFmQEw0R05V
CnpwKGc/VGNpeVpVcU1BaVJrbiFCLVRrIzxPbG9RdCRNekY2OWA2KiYleighdkkhV0Nwd2dAbUMl
Vk9ET2I9dmx7KAp6d0UjZCQ9NzspJHZDfitvI3xVQWdeaTwkTiFraTs2P3ZiQ01Re0BBb0FCKzZ2
Q35IWk1pezE+Izdha3R7YGRnbmYKeit2SUtxJDRISzs4KUJBfDZMMkFyNCktMj1IS3lYVWVwK3lv
PEJ6S2YofH1JLTh9NmFANitINUpUdmolZk9PXiQ+CnpVVF48SlElWWhvbkckWHMrX0RHJkpgbz0o
IWZKWkJoOEV4V0Y/dC1KYWlzUkBuV0F6djJ5O3lyKz9MI0c4I3tKdAp6I0dTRzlQUkdNX0pCY25Q
ZVkjYEZ1SlNFRkcpbms1YWxyYzQyWG9kUiNFUXp3YXlZcVVCbn17R2JDSUZnV2RMeUkKejFDRlN1
czZlPHpaSztCb25ee0l3UnM3OTt0QzxuN3dPankoOzlETyNeIUNudntnbHRHI0opJFQoP0tMUCRJ
STVhCnpILVhtWVpLfENHRU1wNkhSeUg9O1FaT0tUKXN5Z0BLTko5V2lXd34jamd3OW0ycGRMMFg5
YUlFQDk5e0hLcmw5PAp6e09qP0w2ZTMrQVVsY3crTzBmV0dxdSV7NkgydU9oPHE5Y3ZaT0RrQyNr
a1UzVEtaalg9WWlEa2E1LUV+U1RuZVUKeilGRGdUakpgPFVNMzBWTG9VVyo+LXNuUW8/O35jfVJV
YFoxX0JrVzhTVjd6VkIxZm9xUHlCa3pFQ0JFWmdZKWN7Cnp8S1h7R2htOUdtRSM7RDUrMDBTdjVV
d2czZExLZ1NmUXpHTz10KTRMaFdJKFFvPHM3MVkoSjBfTyZobztmcXBsUAp6OytxSkhFZ0dweGFp
a3lje18hXk4meXRkKzl2Vj9WcVV0KlgwTyo4cC00MT40VF50ZThlfUk4ZSVyMHglcGVOcGMKelk2
ckZZYEBJckI/Pj1UbnBIWUkhWj5jTCh5K3llRnhBekBGQnVfdEpWJFBxcnkpUzdNcX5BbkEyS3I5
XnJsJUhrCnpzdVRlRDtkejdIUEh5WlFIQS1lUXBjVTdKSXtZWXJmajFCTmtTSmZ9KUhJMTI/TEBC
dmQ1IVVhNlpFT1YyLU9aeAp6QiRCWE44NHh3SHk1cHclUTRpNlpiR3ErQU9oV3woajl6bUNMRS0j
Xjw1eGZhP3JmSlp8MEVebnlnYDJAdkliYlEKenh+P3EtaCVaX0NBKyN8KkxMbCRBOGNtNDxxWGli
aXFzMG05U2RNbiFBYGkkcnB5eyk9WFJaS31yeylANTJ3JUptCnpMOSZ7anVQO0dSSVo8NzQyKXl1
bHtQcTZGJlRsRVNpdCRIbktmRTtNeSpAVXRWbipwJVRCZiNCVzhnZUNuX1o3Uwp6NHopYWVZRCNY
Y3NIJFNobSp+VTghJlNad18yXml6Qmo0MGxObzZOZ1RzWFh9PlRRcn5HI3RocDgqZS1ibyQ0Mz4K
ejJpd01uTXtQZH5hUXQjXiFyXl5UWjFeJXY0VDQlX1RIaXNaal45Iy16Q00zdDJlZk5IRDY0ZkI9
O1c4QkZQLT47CnhpNyE8NkFfYHgkQFFXKmFAeTlRKjtRdXVzJUBkJGtZRlRNI3pWV1VFZV91Zjdv
WlpoPnxNTj1Qelg0dX4mUFZfTgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC90ZXh0L2ludGVybmF0aW9u
YWwvZHJhdy1jb21wbGV4LXRleHQtZnJvbS10by1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC9kcmF3LWNvbXBs
ZXgtdGV4dC1mcm9tLXRvLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTBjM2QyYjRiMmJlZDMz
MGUwYTc5MjVkYjhhM2JlYjBmMzlmYWM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvZHJhdy1jb21w
bGV4LXRleHQtZnJvbS10by1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCits
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDAp
IHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4
NAorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDIwCisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIzN3gxOQorICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDIzNzogIlRoZSB0ZXh0IGFuZCBlbGxpcHNpcyBzaG91bGQgbm90IG92
ZXJsYXAuIgorbGF5ZXIgYXQgKDgsNDQpIHNpemUgMTAweDU3IHNjcm9sbFggMTM0IHNjcm9sbFdp
ZHRoIDIzNAorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNikgc2l6ZSAxMDB4NTcKKyAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKC0xMzQsMSkgc2l6ZSAyMzR4NTUKKyAgICAgIHRleHQgcnVu
IGF0ICgtMTM0LDEpIHdpZHRoIDIzNCBSVEw6ICJceHs2NDd9XHh7NjMwfVx4ezYyN30gXHh7NjQ3
fVx4ezY0OH0gXHh7NjI3fVx4ezY0NH1ceHs2Mjd9XHh7NjJFfVx4ezYyQX1ceHs2Mjh9XHh7NjI3
fVx4ezYzMX0iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC9kcmF3LWNvbXBsZXgtdGV4dC1mcm9tLXRvLmh0bWwg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3RleHQvaW50ZXJuYXRp
b25hbC9kcmF3LWNvbXBsZXgtdGV4dC1mcm9tLXRvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIxMjhkZWQx
ZDQ5OWQ0NGU0M2EzODk3ZDA4OWZjMTIwNDVmZmYyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2Ry
YXctY29tcGxleC10ZXh0LWZyb20tdG8uaHRtbApAQCAtMCwwICsxLDEzIEBACis8c3R5bGU+Cisg
IGRpdiB7CisgICAgZm9udC1zaXplOjM2cHQ7CisgICAgd2lkdGg6MTAwcHg7CisgICAgd2hpdGUt
c3BhY2U6bm93cmFwOworICAgIG92ZXJmbG93OmhpZGRlbjsKKyAgICB0ZXh0LW92ZXJmbG93OmVs
bGlwc2lzOworICAgIGRpcmVjdGlvbjpydGw7CisgIH0KKzwvc3R5bGU+Cis8cD5UaGUgdGV4dCBh
bmQgZWxsaXBzaXMgc2hvdWxkIG5vdCBvdmVybGFwLjwvcD4KKzxkaXY+JiMxNjA3OyYjMTU4NDsm
IzE1NzU7ICYjMTYwNzsmIzE2MDg7ICYjMTU3NTsmIzE2MDQ7JiMxNTc1OyYjMTU4MjsmIzE1Nzg7
JiMxNTc2OyYjMTU3NTsmIzE1ODU7PC9kaXY+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115186</attachid>
            <date>2011-11-15 10:04:58 -0800</date>
            <delta_ts>2011-11-17 18:15:24 -0800</delta_ts>
            <desc>patch-v2</desc>
            <filename>bug-72095-20111116020441.patch</filename>
            <type>text/plain</type>
            <size>13182</size>
            <attacher name="Robin Cao">robin.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk4ODMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OGJiYjAxODgzMDdmMzUx
NjQ2MWI1MjQ4N2IzZDZiZGMyYjEwYzgxLi5iZjk0MDk5ZWFiYjA0OGE4Y2FhYjU0YTQ1ZWQyNjJj
MGU1MmZlZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTEtMTUgIFJvYmlu
IENhbyAgPHJvYmluLmNhb0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgW2Nocm9taXVt
XSBGb250OjpkcmF3Q29tcGxleFRleHQgY2FuIG5vdCBkcmF3IGEgc2VnbWVudCBvZiB0ZXh0IHJ1
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwOTUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBkcmF3Q29t
cGxleFRleHQoKSBzaG91bGQgcmVzcGVjdCB0aGUgJ2Zyb20nIGFuZCAndG8nIGFyZ3VtZW50cy4K
KyAgICAgICAgRHJhd2luZyB0aGUgd2hvbGUgdGV4dCBydW4gbWF5IHJlc3VsdCBpbiB0ZXh0IG92
ZXJsYXBwaW5nLgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qv
dGV4dC9pbnRlcm5hdGlvbmFsL2RyYXctY29tcGxleC10ZXh0LWZyb20tdG8uaHRtbAorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29tcGxleFRleHRDb250cm9sbGVyTGlu
dXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjpnbHlwaHNG
b3JSYW5nZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29tcGxleFRl
eHRDb250cm9sbGVyTGludXguaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9Gb250TGludXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0NvbXBsZXhUZXh0
KToKKwogMjAxMS0xMS0xMCAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUGFyc2UgZHJvcC1zaGFkb3coKSBmaWx0ZXIgc3ludGF4CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db21wbGV4VGV4dENvbnRyb2xsZXJM
aW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db21w
bGV4VGV4dENvbnRyb2xsZXJMaW51eC5jcHAKaW5kZXggYmJhZDNmZDhmNzZmZGYyYTgyOGNkYTU4
MDJjYTJjZGMzNGYwYzUyYS4uZDRhNjdiMWM0ZTYwNjk1YWVkN2UwOWExNmMxM2MwZTE1NjgxZWY3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Q29tcGxleFRleHRDb250cm9sbGVyTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbXBsZXhUZXh0Q29udHJvbGxlckxpbnV4LmNwcApAQCAt
NTQ1LDQgKzU0NSwyNyBAQCBGbG9hdFJlY3QgQ29tcGxleFRleHRDb250cm9sbGVyOjpzZWxlY3Rp
b25SZWN0KGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBpbnQgaGVpZwogICAgIHJldHVybiBGbG9h
dFJlY3QocG9pbnQueCgpICsgdG9YLCBwb2ludC55KCksIGZyb21YIC0gdG9YLCBoZWlnaHQpOwog
fQogCit2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Z2x5cGhzRm9yUmFuZ2UoaW50IGZyb20g
LCBpbnQgdG8sIGludCYgZnJvbUdseXBoLCBpbnQmIGdseXBoTGVuZ3RoKQoreworICAgIC8vIENo
YXJhY3RlciBvZmZzZXRzIHdpdGhpbiB0aGUgY3VycmVudCBydW4uIFRIRVNFIE1BWSBOT1QgQkUg
SU4gUkFOR0UgYW5kIG1heQorICAgIC8vIGJlIG5lZ2F0aXZlLCBldGMuIFRoZSBjb2RlIGJlbG93
IGhhbmRsZXMgdGhpcy4KKyAgICBpbnQgZnJvbUNoYXIgPSBmcm9tIC0gbV9pdGVtLml0ZW0ucG9z
OworICAgIGludCB0b0NoYXIgPSB0byAtIG1faXRlbS5pdGVtLnBvczsKKworICAgIC8vIFNlZSBp
ZiB0aGVyZSBhcmUgYW55IGNoYXJhY3RlcnMgaW4gdGhlIGN1cnJlbnQgcnVuLgorICAgIGlmICgh
bnVtQ29kZVBvaW50cygpIHx8IGZyb21DaGFyID49IHN0YXRpY19jYXN0PGludD4obnVtQ29kZVBv
aW50cygpKSB8fCB0b0NoYXIgPD0gMCkgeworICAgICAgICBmcm9tR2x5cGggPSAtMTsKKyAgICAg
ICAgZ2x5cGhMZW5ndGggPSAwOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gQ29t
cHV0ZSB0aGUgc3RhcnRpbmcgZ2x5cGggd2l0aGluIHRoaXMgc3Bhbi4gfGZyb218IGFuZCB8dG98
IGFyZQorICAgIC8vIGdsb2JhbCBvZmZzZXRzIHRoYXQgbWF5IGludGVyc2VjdCBhcmJpdHJhcmls
eSB3aXRoIG91ciBsb2NhbCBydW4uCisgICAgZnJvbUdseXBoID0gbV9pdGVtLmxvZ19jbHVzdGVy
c1tmcm9tQ2hhciA8IDAgPyAwIDogZnJvbUNoYXJdOworICAgIGlmICh0b0NoYXIgPj0gc3RhdGlj
X2Nhc3Q8aW50PihudW1Db2RlUG9pbnRzKCkpKQorICAgICAgICBnbHlwaExlbmd0aCA9IGxlbmd0
aCgpIC0gZnJvbUdseXBoOworICAgIGVsc2UKKyAgICAgICAgZ2x5cGhMZW5ndGggPSBtX2l0ZW0u
bG9nX2NsdXN0ZXJzW3RvQ2hhcl0gLSBmcm9tR2x5cGg7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0NvbXBsZXhUZXh0Q29udHJvbGxlckxpbnV4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9Db21wbGV4VGV4dENvbnRyb2xsZXJMaW51eC5oCmluZGV4IGUx
ZWQzZDhkZDIyMDhkMjU5YzA0NzNiMjc1MGQ0ZGZmN2I0MGM0OGIuLmQ1ZmZmZDE3MzY0MDcyOThi
ZWIzNGFjN2ZlMDc0MzEzZTIyYjAyZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbXBsZXhUZXh0Q29udHJvbGxlckxpbnV4LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29tcGxleFRleHRDb250
cm9sbGVyTGludXguaApAQCAtOTMsNiArOTMsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBydGwoKSBj
b25zdCB7IHJldHVybiBtX3J1bi5ydGwoKTsgfQogICAgIGNvbnN0IHVpbnQxNl90KiBnbHlwaHMo
KSBjb25zdCB7IHJldHVybiBtX2dseXBoczE2OyB9CiAKKyAgICAvLyBSZXR1cm4gdGhlIHN0YXJ0
IGluZGV4IGFuZCBsZW5ndGggb2YgZ2x5cGhzIGZvciB0aGUgcmFuZ2UgW2Zyb20sIHRvKSBpbiB0
aGUgY3VycmVudCBzY3JpcHQgcnVuLgorICAgIHZvaWQgZ2x5cGhzRm9yUmFuZ2UoaW50IGZyb20g
LCBpbnQgdG8sIGludCYgZnJvbUdseXBoLCBpbnQmIGdseXBoTGVuZ3RoKTsKKwogICAgIC8vIFJl
dHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSByZXR1cm5lZCBieSB8Z2x5cGhzfAogICAgIGNv
bnN0IHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1faXRlbS5udW1fZ2x5cGhzOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ZvbnRMaW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9Gb250TGludXguY3BwCmluZGV4IDEwNDcxYTYxNmNkMjhmOWQyYzg4NmJhODhjNDMyMzEzMzYz
MTc5ZGEuLjkyNjU1ZDgyM2FlYTk4OTE3NWE2MmM0NjYwOWI3OTNjNzc4MTgwNTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51eC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExp
bnV4LmNwcApAQCAtMjAxLDE2ICsyMDEsMjIgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQo
R3JhcGhpY3NDb250ZXh0KiBnYywgY29uc3QgVGV4dFJ1biYgcnVuLAogICAgICAgICBjb250cm9s
bGVyLnNldHVwRm9yUlRMKCk7CiAKICAgICB3aGlsZSAoY29udHJvbGxlci5uZXh0U2NyaXB0UnVu
KCkpIHsKKyAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgaXMgYW55IGdseXBoIGZvdW5kIGluIHRo
ZSBjdXJyZW50IHNjcmlwdCBydW4uCisgICAgICAgIGludCBmcm9tR2x5cGgsIGdseXBoTGVuZ3Ro
OworICAgICAgICBjb250cm9sbGVyLmdseXBoc0ZvclJhbmdlKGZyb20sIHRvLCBmcm9tR2x5cGgs
IGdseXBoTGVuZ3RoKTsKKyAgICAgICAgaWYgKGZyb21HbHlwaCA8IDAgfHwgZ2x5cGhMZW5ndGgg
PD0gMCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCiAgICAgICAgIGlmIChmaWxsKSB7CiAgICAg
ICAgICAgICBjb250cm9sbGVyLmZvbnRQbGF0Zm9ybURhdGFGb3JTY3JpcHRSdW4oKS0+c2V0dXBQ
YWludCgmZmlsbFBhaW50KTsKICAgICAgICAgICAgIGFkanVzdFRleHRSZW5kZXJNb2RlKCZmaWxs
UGFpbnQsIGdjLT5wbGF0Zm9ybUNvbnRleHQoKSk7Ci0gICAgICAgICAgICBjYW52YXMtPmRyYXdQ
b3NUZXh0KGNvbnRyb2xsZXIuZ2x5cGhzKCksIGNvbnRyb2xsZXIubGVuZ3RoKCkgPDwgMSwgY29u
dHJvbGxlci5wb3NpdGlvbnMoKSwgZmlsbFBhaW50KTsKKyAgICAgICAgICAgIGNhbnZhcy0+ZHJh
d1Bvc1RleHQoY29udHJvbGxlci5nbHlwaHMoKSArIGZyb21HbHlwaCwgZ2x5cGhMZW5ndGggPDwg
MSwgY29udHJvbGxlci5wb3NpdGlvbnMoKSArIGZyb21HbHlwaCwgZmlsbFBhaW50KTsKICAgICAg
ICAgfQogCiAgICAgICAgIGlmIChzdHJva2UpIHsKICAgICAgICAgICAgIGNvbnRyb2xsZXIuZm9u
dFBsYXRmb3JtRGF0YUZvclNjcmlwdFJ1bigpLT5zZXR1cFBhaW50KCZzdHJva2VQYWludCk7CiAg
ICAgICAgICAgICBhZGp1c3RUZXh0UmVuZGVyTW9kZSgmc3Ryb2tlUGFpbnQsIGdjLT5wbGF0Zm9y
bUNvbnRleHQoKSk7Ci0gICAgICAgICAgICBjYW52YXMtPmRyYXdQb3NUZXh0KGNvbnRyb2xsZXIu
Z2x5cGhzKCksIGNvbnRyb2xsZXIubGVuZ3RoKCkgPDwgMSwgY29udHJvbGxlci5wb3NpdGlvbnMo
KSwgc3Ryb2tlUGFpbnQpOworICAgICAgICAgICAgY2FudmFzLT5kcmF3UG9zVGV4dChjb250cm9s
bGVyLmdseXBocygpICsgZnJvbUdseXBoLCBnbHlwaExlbmd0aCA8PCAxLCBjb250cm9sbGVyLnBv
c2l0aW9ucygpICsgZnJvbUdseXBoLCBzdHJva2VQYWludCk7CiAgICAgICAgIH0KICAgICB9CiB9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMTFmZjU0MmYwMWU1Mzg2N2M3NzQxZTM1MDcwZDhmYzE3OGE1ZDk5MS4uMzgwZDhk
NWY0NjdjMGJjMTVlNDEwYjY3M2MzNmJhNmI4OGU3MGI4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDExLTExLTE1ICBSb2JpbiBDYW8gIDxyb2Jpbi5jYW9AdG9yY2htb2JpbGUuY29tLmNuPgor
CisgICAgICAgIFtjaHJvbWl1bV0gRm9udDo6ZHJhd0NvbXBsZXhUZXh0IGNhbiBub3QgZHJhdyBh
IHNlZ21lbnQgb2YgdGV4dCBydW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcyMDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3RleHQvaW50ZXJuYXRp
b25hbC9kcmF3LWNvbXBsZXgtdGV4dC1mcm9tLXRvLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvZHJh
dy1jb21wbGV4LXRleHQtZnJvbS10by1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2RyYXctY29tcGxl
eC10ZXh0LWZyb20tdG8uaHRtbDogQWRkZWQuCisKIDIwMTEtMTEtMTAgIERlYW4gSmFja3NvbiAg
PGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFBhcnNlIGRyb3Atc2hhZG93KCkgZmlsdGVyIHN5
bnRheApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFz
dC90ZXh0L2ludGVybmF0aW9uYWwvZHJhdy1jb21wbGV4LXRleHQtZnJvbS10by1leHBlY3RlZC5w
bmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3RleHQvaW50ZXJu
YXRpb25hbC9kcmF3LWNvbXBsZXgtdGV4dC1mcm9tLXRvLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xM2I4ODM5ZWRkN2QyZTgwYzBkZWVjOGNkODIxMjc0NGMzMDU1NDY5CkdJVCBiaW5hcnkgcGF0
Y2gKbGl0ZXJhbCA2MzgwCnpjbWVITVlkRCtQekpJR1ZTfWtVRmkqXil5YzRzKUtZRD9UTj9RVkBK
dCNycEZFa2F3QHg7SGApbDlvfVlXMzsxIQp6N0xsNHhYbypYIXJKKWtFcyVTKFJpQXhldm0kKmc9
QXwkZXhJcDVGT0FJYF9WQUNsKTtQdTY8PT47TTFWLVkwaTEKenkxU15VZXlhKldrbE1NUSZMU1hh
PWllYm4+QyRjYHUlZFpEKC0zP2FWVm9+djA+Z3A+QmpWenRweVM3X1k9VlEyCnpoZ2lad0VHQDFi
S1dQcE54ZHlYMmUkX2xVSU02eVVCeWdZbFN+M0ozI0dnQlIrQjMwdWZ0VUpRVU5FbV5YJTAkRAp6
Nkt5RVgqMU5mWHw4M2leSkclYU9WczRYWDklaSlQSHZnPm9pS2lGYitZajFLOSp+fWReLVRRcW0x
PTl5KSV+Zy0Keih7QyR0RSokKllDfmNTV0hFT3ItWipIJTVKK0ZQNnZ9TWhURTl0a3ZzZHEydTF7
Ymh8SEFTMHIoSSRQWlE4OHZHCnpFT3NkQjQ1YH0jLUx5c3g8Rz9MUSopMi1ZWmk4OX5PNTFaM3hf
TCF1RlpBflp8SnpjWTh1ZmdWU2pifD9tYj45bwp6TXxaeCZGSDNWVyVLWnJQKWVjO1RXJTIjSHAo
UCEtNEUyP0QrZ3tIZGsxbSNSXj5JQnhDcjlOWHRiWCF6c2ZnRFUKemRoJWhVQzJxUjZia0JZUmA+
cGtIe3ErYD1gan1EdlhAeDgxIVVnN0NUe3xDaERMcipGbiU0KmBWb3E3UHgyLUlQCnpNP31ENWJH
azF5dCh4P1RoSno8fWpKKllnb0tGQUIpVkgybVFESUNXP3hobUBffDNSWDRTaE8jdmRmJWhVI0Ym
Ngp6bjU+RVdUYVU0QHhBYVVeYVNBP1k0ISNIVCQ7dVIpQHRlTmtTfUMjcm4yODJ0U1V2Q2lhfEVa
RklwOT9+SjNJUl8KemcwblhMQHYkMSNyeS1obSZhTl96NFI+QH1QOSpSXyR6dl9JI3ZNRXtGUVQm
aW9eVW5ZV25CVWRPN1ZXT0c0dnY8CnpwNzM3MiZAaWZKOEZ8VWVZdjlIOGVsKUpJdTwrZmxoeCtT
NlN0ZDJGKGN8eTNveVRKc0AtLXNEQW9tYX4rJXFkKAp6T2tQU31ZUyRLeklFUUwoJSlrbDVIMzFD
czlfej18KXpRbG5va2tTcHk7fVBZOXZAcElDXmxnbktNeVoyU2EyNm4KekhmOXF5d1leKiUqT1Jt
Kjc1ZDY8N3tlVjY2Ki1TR19HK3Npd3ZIWEJAWTB1MHlXbSE1VlIySSpXRG07OF97TENICnpObnBv
YVgzKXRRaExmYD09RStaNEVeZ1gzNmJzemlKZzU/TTROa0khSDVmS3tRJHtrM1lmZmNRT3F4Kntu
RnczRgp6cGU9KURnaTQ7RjcqUmV4YmBmcTM0R3Z5dm9UNlF+N2tAQzxNcXhlPEFPbGN8THd5fTZm
ZjAxZHVEa3g5R3F1RCUKejU0Z2lpb0owaTVfZSl1N3I7JGN3USZ4bTZHMSY/UlcwSVd8V2t0fnlE
V3R3dSNSaTgjVSZAWT1lYT57Xkc2OyQlCnp8OWJySHVJQEgydj0mUm10czN+KygkWjJJRXZmVlY1
NiNKfFRfSlRhNz5zc2pWZmJZUHw4LUlgUFNUVUBfZDBQJgp6JjVCIWx5fXlqdGdtc2RBZXEtdWkr
dWtYM25YKks0U1JyLVZ7KXR5enVYaG9SS3M3dXRsWHduRkArciR+PlBLJWQKekJNeWk0KDdiJF8q
bXVVK148TXB9X2FAJWRefHl3Tzl8czU1bSVHaTdOVGd5KiFUXlY/dUM3WSFFRiVYbVN9ZEBzCnpy
KVpSanIzNmhxKlF7fEo5aTE1M1dQWkFlTW84VnopWU1jJk98enZXJGNeKEZQSWZlKzYhPDNfNW41
JjB1S0wpRgp6YXRLPGVUKTM0dFZ2VX5vc28pcTJKclctdUZPOGxYc3RjVypCa0g3WlAqP31+TzIz
QnY9YSVnQHB8UHhwQGJFJioKenNOdTJKXnRlRFVBWFVUc1E5WnwkXl5NaUp4RGhiMz5xfXstSj5e
ZTQpJUVOanNQZi07bGJabkl4OCQzYGRLR3tTCnowMXs5UipHWEpYKUg2bVR6aTQqYGRsT1NyUT0+
UEJMZG0pb1ZIYW5OXlMpeEFLdDV7Zygta0xWYlkmfXNJclJHRQp6KSE5aFAmRHFLdCRNdnl2OGle
OSZaPUt6enF2O0AwaDN8bGRJZHtKRDc5YHgkYk1QVU0oQ01NZiF1VEU9O1JLI3AKeiNwVDhFNlVW
YkZZdj56LU9uclhfS0pffXtLcn1nP2VIayNaSTtCLWg9I2YwNjZAeXYtRVJmQnBzaXxUNE51ZG45
CnpKcFVOViRLdl9RI1pweTZ0IVY1YlUqMitTQ3Y4RSNER0BJRStTS35nRE1pc3lyUmVianZqRTQw
YDlWO2FsdHNXIwp6Y0lEQVhkN1JoTjxjPF8+IyYlaUFwZXQmNl9TT3VzSGU9bSt5UDJ8UV9maksy
eX1maDk8dHtaPVFqQ3t4TyMwXnkKenleS0lrd3RWWjV5c3x2bTRMVD9oVGAtI0R8OEQlfXJ4YXJx
Wl56NCkoY0h3ekpmeFFZTExTbmVIZ1Z0MHI8Zm9wCnpNTkdPTV5fdktnJm13NkhCcyhsI0htPVhv
dXVmaEghIzdSeTJINGI9QzRQMGd2X09aPDN7Zz0oeXh6YyZNKilHegp6TkVlVFEtbVMzRV9uTyl+
cHFwI3hVdDRVR1NFbERgNyR1MTBnX29TPSNVWXI1I1VJNF9zRjhlVDJ6R3VqMlFtQ1MKeip2K3k/
JlRnUXUpeyo2cmlZPlckWHdUc2oqVXJ1aUd7KD0+MlgpQChqe0hiVHBQUVI9Kzhrb182eCl+PUZ+
TyZ9CnpKNzViUDcjUjVSYXo+QVhnYlE+YmEtQEV0KH52eWhOOW8yYkhXeklFN2I1IUZOSjkoQDlA
JWtNbWxIc2NLTShGKwp6VE8xYFE8ZFNrP2N6RjBQKSF3I2JXfDM3bnV8QXNUXldzXk9jcS1EZTI9
VDJ8RyNCVkVzQnJCbUpoaEAkQlpPSkYKeiVKeip4I2tNTC12bkpxMV9NV291dz5IQ1EmaTsqPG5N
fXUoUVlaTmcrenUtYG5nV31haUNGPSlTNllHMjZJTEdVCnpROzB5aCNyQEd0UmliWXJ5MV8ocHVg
MyZwTzJjOExIYDdUYmgjX29fWHRHbmZeRyVIP1dvMmREbntFMX5EPnNtZAp6cyElV2U/bCtmYTdA
Ny01aHhyWExxZnJlIUhzSmhzWEt1ZCtsfjltNlYzPGlsbEJDT3w9N3NldVp0en1+QHllZWIKekBZ
VlVEeFdVQDFmRnJhfHpuSHdjcnluM3Y5ZzBqfjdRejZ1WU8xUEdGVHk/b1pyV2wrK318c2A5PkFZ
K0tYTW80CnowfE5zVzNONDwtd3dKLWx7eT03dm1NOGwzRD9WU0dLX0lRNGVHWXdTcFJgTzltaVQm
am1gQVh3dktoRmVHXm9iRQp6YEw/PWw8QmpvbS1OJXxEZmdwOWZSTy1NcnAqMU1uYiUwaDVWKyUk
aFpocjRRMzBuak1uNCRpcTFGPk5JYFJAQjUKel9ybHp6XyM5R1NyP2wqWHZHQFJGNFUtMTRxTXBT
R2R4IWBUJCE8OFM5Qk1KQC1VfihMQz1CNDBvViloUWtvKURvCnpqSmFYPWp7bnJCfDEmckxLWXh8
YnhRaCo+UWA5KER5fEo7ZVI8YXhGbD9GY19pb34lNXNvMDc0SVk0JDg7dlBHbwp6ellKanNqeEh1
R3VGVWs4SHliS0w3JDFeQWxlI1ZiY2A2P3NvRVJyemBSOXl1ZnNBIUhaN3UheEglSHZ4eT99MV4K
emR1M2ArTjRNNCpmSzY4MGh4R2slRTw8dEgyYH01VUlSY0dnSUQoeEtaOW5lOyRmRFladzVCT3pN
Xm13IVlMdGc3CnpQK2h1d1ozTiErQ3BmfmhMIUcpRUZTLWxONmhiRyg8KWxHcFpJbmcpPzRQZypf
T0F5fGUwdFdRKkJ4fXlGZjx1egp6blIpN3FnT0J9OF4/N01iIUYqYHgrRDZGfnZxPDh8KzZfSFFY
UWFnZ0tRMVRvUXpnOVpvMzwkQzI1KShKYztxNiYKenFvZXRDcD5QfmE4NSQkUiYkbCN3WnJkQkQ8
TnNDKGFAUXEmVXpATm55ejBvaTI1d25vOEk/PnZyVmUzVGI/c2BDCnpmJGRQLTNXeHxtUVdKUjZN
Mj9HcmR2UExBTGlScD9VfG4lNjJrZHlaUlckIUtaSn0tIzxaY2VPRyR0JTBeT0o7Pgp6QGpYOzRl
cXRjXillUiZuLWI+V1BHcl9IVmJuJFFuM1RubH1ebHdXM2FSfTx8I0xUejI4bSk/V2NEZ0x6cEp+
K18KektvQ3d3NCVRQS1COVJBYTtSNip2eGFDak9iN30kPEFZRSgjSCEtdzhMU3Jrdj1hZUVxV21T
akMxaT5zMUpLNzh3CnpXcytpeDJRMH1AX3xhM09LdXB7RjF1PW07QTtUd2NSSl9US3NlTWJrKnho
RH5sbiEwJk03Pm9FS1ZgOTVsQ0xBcAp6RmlSMjQxdF5qUUNCVnhGaUA0RTxAdn1RX19QQEtYZWQq
MEBISmwocmQrTmkoP0YyO1p0MEJuZW9EQD0pPjBRNk4KejVUP0ZqejJrUyVKOyNre0g/d0FwbDJ7
cUNXdkpfNHFHYHw/OUJhfGhPJCtzeD5wfnsrSkN+TF5ediFmQEw0R05VCnpwKGc/VGNpeVpVcU1B
aVJrbiFCLVRrIzxPbG9RdCRNekY2OWA2KiYleighdkkhV0Nwd2dAbUMlVk9ET2I9dmx7KAp6d0Uj
ZCQ9NzspJHZDfitvI3xVQWdeaTwkTiFraTs2P3ZiQ01Re0BBb0FCKzZ2Q35IWk1pezE+Izdha3R7
YGRnbmYKeit2SUtxJDRISzs4KUJBfDZMMkFyNCktMj1IS3lYVWVwK3lvPEJ6S2YofH1JLTh9NmFA
NitINUpUdmolZk9PXiQ+CnpVVF48SlElWWhvbkckWHMrX0RHJkpgbz0oIWZKWkJoOEV4V0Y/dC1K
YWlzUkBuV0F6djJ5O3lyKz9MI0c4I3tKdAp6I0dTRzlQUkdNX0pCY25QZVkjYEZ1SlNFRkcpbms1
YWxyYzQyWG9kUiNFUXp3YXlZcVVCbn17R2JDSUZnV2RMeUkKejFDRlN1czZlPHpaSztCb25ee0l3
UnM3OTt0QzxuN3dPankoOzlETyNeIUNudntnbHRHI0opJFQoP0tMUCRJSTVhCnpILVhtWVpLfENH
RU1wNkhSeUg9O1FaT0tUKXN5Z0BLTko5V2lXd34jamd3OW0ycGRMMFg5YUlFQDk5e0hLcmw5PAp6
e09qP0w2ZTMrQVVsY3crTzBmV0dxdSV7NkgydU9oPHE5Y3ZaT0RrQyNra1UzVEtaalg9WWlEa2E1
LUV+U1RuZVUKeilGRGdUakpgPFVNMzBWTG9VVyo+LXNuUW8/O35jfVJVYFoxX0JrVzhTVjd6VkIx
Zm9xUHlCa3pFQ0JFWmdZKWN7Cnp8S1h7R2htOUdtRSM7RDUrMDBTdjVVd2czZExLZ1NmUXpHTz10
KTRMaFdJKFFvPHM3MVkoSjBfTyZobztmcXBsUAp6OytxSkhFZ0dweGFpa3lje18hXk4meXRkKzl2
Vj9WcVV0KlgwTyo4cC00MT40VF50ZThlfUk4ZSVyMHglcGVOcGMKelk2ckZZYEBJckI/Pj1UbnBI
WUkhWj5jTCh5K3llRnhBekBGQnVfdEpWJFBxcnkpUzdNcX5BbkEyS3I5XnJsJUhrCnpzdVRlRDtk
ejdIUEh5WlFIQS1lUXBjVTdKSXtZWXJmajFCTmtTSmZ9KUhJMTI/TEBCdmQ1IVVhNlpFT1YyLU9a
eAp6QiRCWE44NHh3SHk1cHclUTRpNlpiR3ErQU9oV3woajl6bUNMRS0jXjw1eGZhP3JmSlp8MEVe
bnlnYDJAdkliYlEKenh+P3EtaCVaX0NBKyN8KkxMbCRBOGNtNDxxWGliaXFzMG05U2RNbiFBYGkk
cnB5eyk9WFJaS31yeylANTJ3JUptCnpMOSZ7anVQO0dSSVo8NzQyKXl1bHtQcTZGJlRsRVNpdCRI
bktmRTtNeSpAVXRWbipwJVRCZiNCVzhnZUNuX1o3Uwp6NHopYWVZRCNYY3NIJFNobSp+VTghJlNa
d18yXml6Qmo0MGxObzZOZ1RzWFh9PlRRcn5HI3RocDgqZS1ibyQ0Mz4KejJpd01uTXtQZH5hUXQj
XiFyXl5UWjFeJXY0VDQlX1RIaXNaal45Iy16Q00zdDJlZk5IRDY0ZkI9O1c4QkZQLT47CnhpNyE8
NkFfYHgkQFFXKmFAeTlRKjtRdXVzJUBkJGtZRlRNI3pWV1VFZV91ZjdvWlpoPnxNTj1Qelg0dX4m
UFZfTgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvZHJhdy1jb21wbGV4
LXRleHQtZnJvbS10by1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC9kcmF3LWNvbXBsZXgtdGV4dC1mcm9tLXRv
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTBjM2QyYjRiMmJlZDMzMGUwYTc5MjVkYjhhM2Jl
YjBmMzlmYWM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvZHJhdy1jb21wbGV4LXRleHQtZnJvbS10
by1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAor
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVy
QmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDIwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDIzN3gxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDIzNzogIlRoZSB0ZXh0IGFuZCBlbGxpcHNpcyBzaG91bGQgbm90IG92ZXJsYXAuIgorbGF5ZXIg
YXQgKDgsNDQpIHNpemUgMTAweDU3IHNjcm9sbFggMTM0IHNjcm9sbFdpZHRoIDIzNAorICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMCwzNikgc2l6ZSAxMDB4NTcKKyAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKC0xMzQsMSkgc2l6ZSAyMzR4NTUKKyAgICAgIHRleHQgcnVuIGF0ICgtMTM0LDEpIHdp
ZHRoIDIzNCBSVEw6ICJceHs2NDd9XHh7NjMwfVx4ezYyN30gXHh7NjQ3fVx4ezY0OH0gXHh7NjI3
fVx4ezY0NH1ceHs2Mjd9XHh7NjJFfVx4ezYyQX1ceHs2Mjh9XHh7NjI3fVx4ezYzMX0iCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3RleHQvaW50
ZXJuYXRpb25hbC9kcmF3LWNvbXBsZXgtdGV4dC1mcm9tLXRvLmh0bWwgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC9kcmF3LWNvbXBs
ZXgtdGV4dC1mcm9tLXRvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIxMjhkZWQxZDQ5OWQ0NGU0M2EzODk3
ZDA4OWZjMTIwNDVmZmYyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2RyYXctY29tcGxleC10ZXh0
LWZyb20tdG8uaHRtbApAQCAtMCwwICsxLDEzIEBACis8c3R5bGU+CisgIGRpdiB7CisgICAgZm9u
dC1zaXplOjM2cHQ7CisgICAgd2lkdGg6MTAwcHg7CisgICAgd2hpdGUtc3BhY2U6bm93cmFwOwor
ICAgIG92ZXJmbG93OmhpZGRlbjsKKyAgICB0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOworICAgIGRp
cmVjdGlvbjpydGw7CisgIH0KKzwvc3R5bGU+Cis8cD5UaGUgdGV4dCBhbmQgZWxsaXBzaXMgc2hv
dWxkIG5vdCBvdmVybGFwLjwvcD4KKzxkaXY+JiMxNjA3OyYjMTU4NDsmIzE1NzU7ICYjMTYwNzsm
IzE2MDg7ICYjMTU3NTsmIzE2MDQ7JiMxNTc1OyYjMTU4MjsmIzE1Nzg7JiMxNTc2OyYjMTU3NTsm
IzE1ODU7PC9kaXY+CisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115720</attachid>
            <date>2011-11-17 18:15:36 -0800</date>
            <delta_ts>2011-11-17 21:25:17 -0800</delta_ts>
            <desc>patch-v3</desc>
            <filename>bug-72095-20111118101452.patch</filename>
            <type>text/plain</type>
            <size>12711</size>
            <attacher name="Robin Cao">robin.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk4ODMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OGJiYjAxODgzMDdmMzUx
NjQ2MWI1MjQ4N2IzZDZiZGMyYjEwYzgxLi5iZjk0MDk5ZWFiYjA0OGE4Y2FhYjU0YTQ1ZWQyNjJj
MGU1MmZlZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTEtMTUgIFJvYmlu
IENhbyAgPHJvYmluLmNhb0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgW2Nocm9taXVt
XSBGb250OjpkcmF3Q29tcGxleFRleHQgY2FuIG5vdCBkcmF3IGEgc2VnbWVudCBvZiB0ZXh0IHJ1
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwOTUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBkcmF3Q29t
cGxleFRleHQoKSBzaG91bGQgcmVzcGVjdCB0aGUgJ2Zyb20nIGFuZCAndG8nIGFyZ3VtZW50cy4K
KyAgICAgICAgRHJhd2luZyB0aGUgd2hvbGUgdGV4dCBydW4gbWF5IHJlc3VsdCBpbiB0ZXh0IG92
ZXJsYXBwaW5nLgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qv
dGV4dC9pbnRlcm5hdGlvbmFsL2RyYXctY29tcGxleC10ZXh0LWZyb20tdG8uaHRtbAorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29tcGxleFRleHRDb250cm9sbGVyTGlu
dXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjpnbHlwaHNG
b3JSYW5nZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29tcGxleFRl
eHRDb250cm9sbGVyTGludXguaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9Gb250TGludXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0NvbXBsZXhUZXh0
KToKKwogMjAxMS0xMS0xMCAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUGFyc2UgZHJvcC1zaGFkb3coKSBmaWx0ZXIgc3ludGF4CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db21wbGV4VGV4dENvbnRyb2xsZXJM
aW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db21w
bGV4VGV4dENvbnRyb2xsZXJMaW51eC5jcHAKaW5kZXggYmJhZDNmZDhmNzZmZGYyYTgyOGNkYTU4
MDJjYTJjZGMzNGYwYzUyYS4uMDAwODdjMjMzMDkwMWZlYTZhM2U3ZjE2YzRkM2YwZjc3ZGVmYTM0
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Q29tcGxleFRleHRDb250cm9sbGVyTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbXBsZXhUZXh0Q29udHJvbGxlckxpbnV4LmNwcApAQCAt
NTQ1LDQgKzU0NSwyNyBAQCBGbG9hdFJlY3QgQ29tcGxleFRleHRDb250cm9sbGVyOjpzZWxlY3Rp
b25SZWN0KGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBpbnQgaGVpZwogICAgIHJldHVybiBGbG9h
dFJlY3QocG9pbnQueCgpICsgdG9YLCBwb2ludC55KCksIGZyb21YIC0gdG9YLCBoZWlnaHQpOwog
fQogCit2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Z2x5cGhzRm9yUmFuZ2UoaW50IGZyb20s
IGludCB0bywgaW50JiBmcm9tR2x5cGgsIGludCYgZ2x5cGhMZW5ndGgpCit7CisgICAgLy8gQ2hh
cmFjdGVyIG9mZnNldHMgd2l0aGluIHRoZSBjdXJyZW50IHJ1bi4gVEhFU0UgTUFZIE5PVCBCRSBJ
TiBSQU5HRSBhbmQgbWF5CisgICAgLy8gYmUgbmVnYXRpdmUsIGV0Yy4gVGhlIGNvZGUgYmVsb3cg
aGFuZGxlcyB0aGlzLgorICAgIGludCBmcm9tQ2hhciA9IGZyb20gLSBtX2l0ZW0uaXRlbS5wb3M7
CisgICAgaW50IHRvQ2hhciA9IHRvIC0gbV9pdGVtLml0ZW0ucG9zOworCisgICAgLy8gU2VlIGlm
IHRoZXJlIGFyZSBhbnkgY2hhcmFjdGVycyBpbiB0aGUgY3VycmVudCBydW4uCisgICAgaWYgKCFu
dW1Db2RlUG9pbnRzKCkgfHwgZnJvbUNoYXIgPj0gc3RhdGljX2Nhc3Q8aW50PihudW1Db2RlUG9p
bnRzKCkpIHx8IHRvQ2hhciA8PSAwKSB7CisgICAgICAgIGZyb21HbHlwaCA9IC0xOworICAgICAg
ICBnbHlwaExlbmd0aCA9IDA7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBDb21w
dXRlIHRoZSBzdGFydGluZyBnbHlwaCB3aXRoaW4gdGhpcyBzcGFuLiB8ZnJvbXwgYW5kIHx0b3wg
YXJlCisgICAgLy8gZ2xvYmFsIG9mZnNldHMgdGhhdCBtYXkgaW50ZXJzZWN0IGFyYml0cmFyaWx5
IHdpdGggb3VyIGxvY2FsIHJ1bi4KKyAgICBmcm9tR2x5cGggPSBtX2l0ZW0ubG9nX2NsdXN0ZXJz
W2Zyb21DaGFyIDwgMCA/IDAgOiBmcm9tQ2hhcl07CisgICAgaWYgKHRvQ2hhciA+PSBzdGF0aWNf
Y2FzdDxpbnQ+KG51bUNvZGVQb2ludHMoKSkpCisgICAgICAgIGdseXBoTGVuZ3RoID0gbGVuZ3Ro
KCkgLSBmcm9tR2x5cGg7CisgICAgZWxzZQorICAgICAgICBnbHlwaExlbmd0aCA9IG1faXRlbS5s
b2dfY2x1c3RlcnNbdG9DaGFyXSAtIGZyb21HbHlwaDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQ29tcGxleFRleHRDb250cm9sbGVyTGludXguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NvbXBsZXhUZXh0Q29udHJvbGxlckxpbnV4LmgKaW5kZXggZTFl
ZDNkOGRkMjIwOGQyNTljMDQ3M2IyNzUwZDRkZmY3YjQwYzQ4Yi4uMWQzZWM5NWVlZTEzNzRlMTVk
MzllODIxYjBjOTliZDMzZGEwMTM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29tcGxleFRleHRDb250cm9sbGVyTGludXguaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db21wbGV4VGV4dENvbnRy
b2xsZXJMaW51eC5oCkBAIC05Myw2ICs5Myw5IEBAIHB1YmxpYzoKICAgICBib29sIHJ0bCgpIGNv
bnN0IHsgcmV0dXJuIG1fcnVuLnJ0bCgpOyB9CiAgICAgY29uc3QgdWludDE2X3QqIGdseXBocygp
IGNvbnN0IHsgcmV0dXJuIG1fZ2x5cGhzMTY7IH0KIAorICAgIC8vIFJldHVybiB0aGUgc3RhcnQg
aW5kZXggYW5kIGxlbmd0aCBvZiBnbHlwaHMgZm9yIHRoZSByYW5nZSBbZnJvbSwgdG8pIGluIHRo
ZSBjdXJyZW50IHNjcmlwdCBydW4uCisgICAgdm9pZCBnbHlwaHNGb3JSYW5nZShpbnQgZnJvbSwg
aW50IHRvLCBpbnQmIGZyb21HbHlwaCwgaW50JiBnbHlwaExlbmd0aCk7CisKICAgICAvLyBSZXR1
cm4gdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgcmV0dXJuZWQgYnkgfGdseXBoc3wKICAgICBjb25z
dCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2l0ZW0ubnVtX2dseXBoczsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9G
b250TGludXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Rm9udExpbnV4LmNwcAppbmRleCAxMDQ3MWE2MTZjZDI4ZjlkMmM4ODZiYTg4YzQzMjMxMzM2MzE3
OWRhLi45MjY1NWQ4MjNhZWE5ODkxNzVhNjJjNDY2MDliNzkzYzc3ODE4MDUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250TGludXguY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51
eC5jcHAKQEAgLTIwMSwxNiArMjAxLDIyIEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdy
YXBoaWNzQ29udGV4dCogZ2MsIGNvbnN0IFRleHRSdW4mIHJ1biwKICAgICAgICAgY29udHJvbGxl
ci5zZXR1cEZvclJUTCgpOwogCiAgICAgd2hpbGUgKGNvbnRyb2xsZXIubmV4dFNjcmlwdFJ1bigp
KSB7CisgICAgICAgIC8vIENoZWNrIGlmIHRoZXJlIGlzIGFueSBnbHlwaCBmb3VuZCBpbiB0aGUg
Y3VycmVudCBzY3JpcHQgcnVuLgorICAgICAgICBpbnQgZnJvbUdseXBoLCBnbHlwaExlbmd0aDsK
KyAgICAgICAgY29udHJvbGxlci5nbHlwaHNGb3JSYW5nZShmcm9tLCB0bywgZnJvbUdseXBoLCBn
bHlwaExlbmd0aCk7CisgICAgICAgIGlmIChmcm9tR2x5cGggPCAwIHx8IGdseXBoTGVuZ3RoIDw9
IDApCisgICAgICAgICAgICBjb250aW51ZTsKKwogICAgICAgICBpZiAoZmlsbCkgewogICAgICAg
ICAgICAgY29udHJvbGxlci5mb250UGxhdGZvcm1EYXRhRm9yU2NyaXB0UnVuKCktPnNldHVwUGFp
bnQoJmZpbGxQYWludCk7CiAgICAgICAgICAgICBhZGp1c3RUZXh0UmVuZGVyTW9kZSgmZmlsbFBh
aW50LCBnYy0+cGxhdGZvcm1Db250ZXh0KCkpOwotICAgICAgICAgICAgY2FudmFzLT5kcmF3UG9z
VGV4dChjb250cm9sbGVyLmdseXBocygpLCBjb250cm9sbGVyLmxlbmd0aCgpIDw8IDEsIGNvbnRy
b2xsZXIucG9zaXRpb25zKCksIGZpbGxQYWludCk7CisgICAgICAgICAgICBjYW52YXMtPmRyYXdQ
b3NUZXh0KGNvbnRyb2xsZXIuZ2x5cGhzKCkgKyBmcm9tR2x5cGgsIGdseXBoTGVuZ3RoIDw8IDEs
IGNvbnRyb2xsZXIucG9zaXRpb25zKCkgKyBmcm9tR2x5cGgsIGZpbGxQYWludCk7CiAgICAgICAg
IH0KIAogICAgICAgICBpZiAoc3Ryb2tlKSB7CiAgICAgICAgICAgICBjb250cm9sbGVyLmZvbnRQ
bGF0Zm9ybURhdGFGb3JTY3JpcHRSdW4oKS0+c2V0dXBQYWludCgmc3Ryb2tlUGFpbnQpOwogICAg
ICAgICAgICAgYWRqdXN0VGV4dFJlbmRlck1vZGUoJnN0cm9rZVBhaW50LCBnYy0+cGxhdGZvcm1D
b250ZXh0KCkpOwotICAgICAgICAgICAgY2FudmFzLT5kcmF3UG9zVGV4dChjb250cm9sbGVyLmds
eXBocygpLCBjb250cm9sbGVyLmxlbmd0aCgpIDw8IDEsIGNvbnRyb2xsZXIucG9zaXRpb25zKCks
IHN0cm9rZVBhaW50KTsKKyAgICAgICAgICAgIGNhbnZhcy0+ZHJhd1Bvc1RleHQoY29udHJvbGxl
ci5nbHlwaHMoKSArIGZyb21HbHlwaCwgZ2x5cGhMZW5ndGggPDwgMSwgY29udHJvbGxlci5wb3Np
dGlvbnMoKSArIGZyb21HbHlwaCwgc3Ryb2tlUGFpbnQpOwogICAgICAgICB9CiAgICAgfQogfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDExZmY1NDJmMDFlNTM4NjdjNzc0MWUzNTA3MGQ4ZmMxNzhhNWQ5OTEuLjM4MGQ4ZDVm
NDY3YzBiYzE1ZTQxMGI2NzNjMzZiYTZiODhlNzBiOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxMS0xMS0xNSAgUm9iaW4gQ2FvICA8cm9iaW4uY2FvQHRvcmNobW9iaWxlLmNvbS5jbj4KKwor
ICAgICAgICBbY2hyb21pdW1dIEZvbnQ6OmRyYXdDb21wbGV4VGV4dCBjYW4gbm90IGRyYXcgYSBz
ZWdtZW50IG9mIHRleHQgcnVuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MjA5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC90ZXh0L2ludGVybmF0aW9u
YWwvZHJhdy1jb21wbGV4LXRleHQtZnJvbS10by1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2RyYXct
Y29tcGxleC10ZXh0LWZyb20tdG8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC9kcmF3LWNvbXBsZXgt
dGV4dC1mcm9tLXRvLmh0bWw6IEFkZGVkLgorCiAyMDExLTExLTEwICBEZWFuIEphY2tzb24gIDxk
aW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXJzZSBkcm9wLXNoYWRvdygpIGZpbHRlciBzeW50
YXgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qv
dGV4dC9pbnRlcm5hdGlvbmFsL2RyYXctY29tcGxleC10ZXh0LWZyb20tdG8tZXhwZWN0ZWQucG5n
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC90ZXh0L2ludGVybmF0
aW9uYWwvZHJhdy1jb21wbGV4LXRleHQtZnJvbS10by1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTNiODgzOWVkZDdkMmU4MGMwZGVlYzhjZDgyMTI3NDRjMzA1NTQ2OQpHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgNjM4MAp6Y21lSE1ZZEQrUHpKSUdWU31rVUZpKl4peWM0cylLWUQ/VE4/UVZASnQj
cnBGRWthd0B4O0hgKWw5b31ZVzM7MSEKejdMbDR4WG8qWCFySilrRXMlUyhSaUF4ZXZtJCpnPUF8
JGV4SXA1Rk9BSWBfVkFDbCk7UHU2PD0+O00xVi1ZMGkxCnp5MVNeVWV5YSpXa2xNTVEmTFNYYT1p
ZWJuPkMkY2B1JWRaRCgtMz9hVlZvfnYwPmdwPkJqVnp0cHlTN19ZPVZRMgp6aGdpWndFR0AxYktX
UHBOeGR5WDJlJF9sVUlNNnlVQnlnWWxTfjNKMyNHZ0JSK0IzMHVmdFVKUVVORW1eWCUwJEQKejZL
eUVYKjFOZlh8ODNpXkpHJWFPVnM0WFg5JWkpUEh2Zz5vaUtpRmIrWWoxSzkqfn1kXi1UUXFtMT05
eSklfmctCnooe0MkdEUqJCpZQ35jU1dIRU9yLVoqSCU1SitGUDZ2fU1oVEU5dGt2c2RxMnUxe2Jo
fEhBUzByKEkkUFpRODh2Rwp6RU9zZEI0NWB9Iy1MeXN4PEc/TFEqKTItWVppODl+TzUxWjN4X0wh
dUZaQX5afEp6Y1k4dWZnVlNqYnw/bWI+OW8Kek18WngmRkgzVlclS1pyUCllYztUVyUyI0hwKFAh
LTRFMj9EK2d7SGRrMW0jUl4+SUJ4Q3I5Tlh0YlghenNmZ0RVCnpkaCVoVUMycVI2YmtCWVJgPnBr
SHtxK2A9YGp9RHZYQHg4MSFVZzdDVHt8Q2hETHIqRm4lNCpgVm9xN1B4Mi1JUAp6TT99RDViR2sx
eXQoeD9UaEp6PH1qSipZZ29LRkFCKVZIMm1RRElDVz94aG1AX3wzUlg0U2hPI3ZkZiVoVSNGJjYK
em41PkVXVGFVNEB4QWFVXmFTQT9ZNCEjSFQkO3VSKUB0ZU5rU31DI3JuMjgydFNVdkNpYXxFWkZJ
cDk/fkozSVJfCnpnMG5YTEB2JDEjcnktaG0mYU5fejRSPkB9UDkqUl8kenZfSSN2TUV7RlFUJmlv
XlVuWVduQlVkTzdWV09HNHZ2PAp6cDczNzImQGlmSjhGfFVlWXY5SDhlbClKSXU8K2ZsaHgrUzZT
dGQyRihjfHkzb3lUSnNALS1zREFvbWF+KyVxZCgKek9rUFN9WVMkS3pJRVFMKCUpa2w1SDMxQ3M5
X3o9fCl6UWxub2trU3B5O31QWTl2QHBJQ15sZ25LTXlaMlNhMjZuCnpIZjlxeXdZXiolKk9SbSo3
NWQ2PDd7ZVY2NiotU0dfRytzaXd2SFhCQFkwdTB5V20hNVZSMkkqV0RtOzhfe0xDSAp6Tm5wb2FY
Myl0UWhMZmA9PUUrWjRFXmdYMzZic3ppSmc1P000TmtJIUg1Zkt7USR7azNZZmZjUU9xeCp7bkZ3
M0YKenBlPSlEZ2k0O0Y3KlJleGJgZnEzNEd2eXZvVDZRfjdrQEM8TXF4ZTxBT2xjfEx3eX02ZmYw
MWR1RGt4OUdxdUQlCno1NGdpaW9KMGk1X2UpdTdyOyRjd1EmeG02RzEmP1JXMElXfFdrdH55RFd0
d3UjUmk4I1UmQFk9ZWE+e15HNjskJQp6fDlickh1SUBIMnY9JlJtdHMzfisoJFoySUV2ZlZWNTYj
SnxUX0pUYTc+c3NqVmZiWVB8OC1JYFBTVFVAX2QwUCYKeiY1QiFseX15anRnbXNkQWVxLXVpK3Vr
WDNuWCpLNFNSci1Weyl0eXp1WGhvUktzN3V0bFh3bkZAK3Ikfj5QSyVkCnpCTXlpNCg3YiRfKm11
VStePE1wfV9hQCVkXnx5d085fHM1NW0lR2k3TlRneSohVF5WP3VDN1khRUYlWG1TfWRAcwp6cila
UmpyMzZocSpRe3xKOWkxNTNXUFpBZU1vOFZ6KVlNYyZPfHp2VyRjXihGUElmZSs2ITwzXzVuNSYw
dUtMKUYKemF0SzxlVCkzNHRWdlV+b3NvKXEySnJXLXVGTzhsWHN0Y1cqQmtIN1pQKj99fk8yM0J2
PWElZ0BwfFB4cEBiRSYqCnpzTnUySl50ZURVQVhVVHNROVp8JF5eTWlKeERoYjM+cX17LUo+XmU0
KSVFTmpzUGYtO2xiWm5JeDgkM2BkS0d7Uwp6MDF7OVIqR1hKWClINm1Uemk0KmBkbE9TclE9PlBC
TGRtKW9WSGFuTl5TKXhBS3Q1e2coLWtMVmJZJn1zSXJSR0UKeikhOWhQJkRxS3QkTXZ5djhpXjkm
Wj1LenpxdjtAMGgzfGxkSWR7SkQ3OWB4JGJNUFVNKENNTWYhdVRFPTtSSyNwCnojcFQ4RTZVVmJG
WXY+ei1PbnJYX0tKX317S3J9Zz9lSGsjWkk7Qi1oPSNmMDY2QHl2LUVSZkJwc2l8VDROdWRuOQp6
SnBVTlYkS3ZfUSNacHk2dCFWNWJVKjIrU0N2OEUjREdASUUrU0t+Z0RNaXN5clJlYmp2akU0MGA5
VjthbHRzVyMKemNJREFYZDdSaE48YzxfPiMmJWlBcGV0JjZfU091c0hlPW0reVAyfFFfZmpLMnl9
Zmg5PHR7Wj1RakN7eE8jMF55Cnp5XktJa3d0Vlo1eXN8dm00TFQ/aFRgLSNEfDhEJX1yeGFycVpe
ejQpKGNId3pKZnhRWUxMU25lSGdWdDByPGZvcAp6TU5HT01eX3ZLZyZtdzZIQnMobCNIbT1Yb3V1
ZmhIISM3UnkySDRiPUM0UDBndl9PWjwze2c9KHl4emMmTSopR3oKek5FZVRRLW1TM0Vfbk8pfnBx
cCN4VXQ0VUdTRWxEYDckdTEwZ19vUz0jVVlyNSNVSTRfc0Y4ZVQyekd1ajJRbUNTCnoqdit5PyZU
Z1F1KXsqNnJpWT5XJFh3VHNqKlVydWlHeyg9PjJYKUAoantIYlRwUFFSPSs4a29fNngpfj1Gfk8m
fQp6Sjc1YlA3I1I1UmF6PkFYZ2JRPmJhLUBFdCh+dnloTjlvMmJIV3pJRTdiNSFGTko5KEA5QCVr
TW1sSHNjS00oRisKelRPMWBRPGRTaz9jekYwUCkhdyNiV3wzN251fEFzVF5Xc15PY3EtRGUyPVQy
fEcjQlZFc0JyQm1KaGhAJEJaT0pGCnolSnoqeCNrTUwtdm5KcTFfTVdvdXc+SENRJmk7KjxuTX11
KFFZWk5nK3p1LWBuZ1d9YWlDRj0pUzZZRzI2SUxHVQp6UTsweWgjckBHdFJpYllyeTFfKHB1YDMm
cE8yYzhMSGA3VGJoI19vX1h0R25mXkclSD9XbzJkRG57RTF+RD5zbWQKenMhJVdlP2wrZmE3QDct
NWh4clhMcWZyZSFIc0poc1hLdWQrbH45bTZWMzxpbGxCQ098PTdzZXVadHp9fkB5ZWViCnpAWVZV
RHhXVUAxZkZyYXx6bkh3Y3J5bjN2OWcwan43UXo2dVlPMVBHRlR5P29acldsKyt9fHNgOT5BWStL
WE1vNAp6MHxOc1czTjQ8LXd3Si1se3k9N3ZtTThsM0Q/VlNHS19JUTRlR1l3U3BSYE85bWlUJmpt
YEFYd3ZLaEZlR15vYkUKemBMPz1sPEJqb20tTiV8RGZncDlmUk8tTXJwKjFNbmIlMGg1VislJGha
aHI0UTMwbmpNbjQkaXExRj5OSWBSQEI1Cnpfcmx6el8jOUdTcj9sKlh2R0BSRjRVLTE0cU1wU0dk
eCFgVCQhPDhTOUJNSkAtVX4oTEM9QjQwb1YpaFFrbylEbwp6akphWD1qe25yQnwxJnJMS1l4fGJ4
UWgqPlFgOShEeXxKO2VSPGF4Rmw/RmNfaW9+JTVzbzA3NElZNCQ4O3ZQR28KenpZSmpzanhIdUd1
RlVrOEh5YktMNyQxXkFsZSNWYmNgNj9zb0VScnpgUjl5dWZzQSFIWjd1IXhIJUh2eHk/fTFeCnpk
dTNgK040TTQqZks2ODBoeEdrJUU8PHRIMmB9NVVJUmNHZ0lEKHhLWjluZTskZkRZWnc1Qk96TV5t
dyFZTHRnNwp6UCtodXdaM04hK0NwZn5oTCFHKUVGUy1sTjZoYkcoPClsR3BaSW5nKT80UGcqX09B
eXxlMHRXUSpCeH15RmY8dXoKem5SKTdxZ09CfThePzdNYiFGKmB4K0Q2Rn52cTw4fCs2X0hRWFFh
Z2dLUTFUb1F6ZzlabzM8JEMyNSkoSmM7cTYmCnpxb2V0Q3A+UH5hODUkJFImJGwjd1pyZEJEPE5z
QyhhQFFxJlV6QE5ueXowb2kyNXdubzhJPz52clZlM1RiP3NgQwp6ZiRkUC0zV3h8bVFXSlI2TTI/
R3JkdlBMQUxpUnA/VXxuJTYya2R5WlJXJCFLWkp9LSM8WmNlT0ckdCUwXk9KOz4KekBqWDs0ZXF0
Y14pZVImbi1iPldQR3JfSFZibiRRbjNUbmx9Xmx3VzNhUn08fCNMVHoyOG0pP1djRGdMenBKfitf
CnpLb0N3dzQlUUEtQjlSQWE7UjYqdnhhQ2pPYjd9JDxBWUUoI0ghLXc4TFNya3Y9YWVFcVdtU2pD
MWk+czFKSzc4dwp6V3MraXgyUTB9QF98YTNPS3Vwe0YxdT1tO0E7VHdjUkpfVEtzZU1iayp4aER+
bG4hMCZNNz5vRUtWYDk1bENMQXAKekZpUjI0MXRealFDQlZ4RmlANEU8QHZ9UV9fUEBLWGVkKjBA
SEpsKHJkK05pKD9GMjtadDBCbmVvREA9KT4wUTZOCno1VD9Ganoya1MlSjsja3tIP3dBcGwye3FD
V3ZKXzRxR2B8PzlCYXxoTyQrc3g+cH57K0pDfkxeXnYhZkBMNEdOVQp6cChnP1RjaXlaVXFNQWlS
a24hQi1UayM8T2xvUXQkTXpGNjlgNiomJXooIXZJIVdDcHdnQG1DJVZPRE9iPXZseygKendFI2Qk
PTc7KSR2Q34rbyN8VUFnXmk8JE4ha2k7Nj92YkNNUXtAQW9BQis2dkN+SFpNaXsxPiM3YWt0e2Bk
Z25mCnordklLcSQ0SEs7OClCQXw2TDJBcjQpLTI9SEt5WFVlcCt5bzxCektmKHx9SS04fTZhQDYr
SDVKVHZqJWZPT14kPgp6VVRePEpRJVlob25HJFhzK19ERyZKYG89KCFmSlpCaDhFeFdGP3QtSmFp
c1JAbldBenYyeTt5cis/TCNHOCN7SnQKeiNHU0c5UFJHTV9KQmNuUGVZI2BGdUpTRUZHKW5rNWFs
cmM0MlhvZFIjRVF6d2F5WXFVQm59e0diQ0lGZ1dkTHlJCnoxQ0ZTdXM2ZTx6Wks7Qm9uXntJd1Jz
Nzk7dEM8bjd3T2p5KDs5RE8jXiFDbnZ7Z2x0RyNKKSRUKD9LTFAkSUk1YQp6SC1YbVlaS3xDR0VN
cDZIUnlIPTtRWk9LVClzeWdAS05KOVdpV3d+I2pndzltMnBkTDBYOWFJRUA5OXtIS3JsOTwKentP
aj9MNmUzK0FVbGN3K08wZldHcXUlezZIMnVPaDxxOWN2Wk9Ea0Mja2tVM1RLWmpYPVlpRGthNS1F
flNUbmVVCnopRkRnVGpKYDxVTTMwVkxvVVcqPi1zblFvPzt+Y31SVWBaMV9Ca1c4U1Y3elZCMWZv
cVB5Qmt6RUNCRVpnWSljewp6fEtYe0dobTlHbUUjO0Q1KzAwU3Y1VXdnM2RMS2dTZlF6R089dCk0
TGhXSShRbzxzNzFZKEowX08maG87ZnFwbFAKejsrcUpIRWdHcHhhaWt5Y3tfIV5OJnl0ZCs5dlY/
VnFVdCpYME8qOHAtNDE+NFRedGU4ZX1JOGUlcjB4JXBlTnBjCnpZNnJGWWBASXJCPz49VG5wSFlJ
IVo+Y0woeSt5ZUZ4QXpARkJ1X3RKViRQcXJ5KVM3TXF+QW5BMktyOV5ybCVIawp6c3VUZUQ7ZHo3
SFBIeVpRSEEtZVFwY1U3Skl7WVlyZmoxQk5rU0pmfSlISTEyP0xAQnZkNSFVYTZaRU9WMi1PWngK
ekIkQlhOODR4d0h5NXB3JVE0aTZaYkdxK0FPaFd8KGo5em1DTEUtI148NXhmYT9yZkpafDBFXm55
Z2AyQHZJYmJRCnp4fj9xLWglWl9DQSsjfCpMTGwkQThjbTQ8cVhpYmlxczBtOVNkTW4hQWBpJHJw
eXspPVhSWkt9cnspQDUydyVKbQp6TDkme2p1UDtHUklaPDc0Mil5dWx7UHE2RiZUbEVTaXQkSG5L
ZkU7TXkqQFV0Vm4qcCVUQmYjQlc4Z2VDbl9aN1MKejR6KWFlWUQjWGNzSCRTaG0qflU4ISZTWndf
Ml5pekJqNDBsTm82TmdUc1hYfT5UUXJ+RyN0aHA4KmUtYm8kNDM+CnoyaXdNbk17UGR+YVF0I14h
cl5eVFoxXiV2NFQ0JV9USGlzWmpeOSMtekNNM3QyZWZOSEQ2NGZCPTtXOEJGUC0+Owp4aTchPDZB
X2B4JEBRVyphQHk5USo7UXV1cyVAZCRrWUZUTSN6VldVRWVfdWY3b1paaD58TU49UHpYNHV+JlBW
X04KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2RyYXctY29tcGxleC10
ZXh0LWZyb20tdG8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvZHJhdy1jb21wbGV4LXRleHQtZnJvbS10by1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2M0ODJhMDIxNDg2ZjE4NzdlMzQ2NmJkOWZmMWZjZGFj
ZTkxZGQ0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2RyYXctY29tcGxleC10ZXh0LWZyb20tdG8t
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGhlIHRleHQgYW5kIGVsbGlwc2lzIHNob3Vs
ZCBub3Qgb3ZlcmxhcC4KKwor2YfYsNinINmH2Ygg2KfZhNin2K7Yqtio2KfYsQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC90ZXh0L2ludGVybmF0
aW9uYWwvZHJhdy1jb21wbGV4LXRleHQtZnJvbS10by5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvZHJhdy1jb21wbGV4LXRl
eHQtZnJvbS10by5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1MzAwZTYxM2M4NDBiYTg4YTU5Mjg2N2EzZTQx
ZjI2ZTE1YWU3YmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC9kcmF3LWNvbXBsZXgtdGV4dC1mcm9t
LXRvLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPHN0eWxlPgorICBkaXYgeworICAgIGZvbnQtc2l6
ZTozNnB0OworICAgIHdpZHRoOjEwMHB4OworICAgIHdoaXRlLXNwYWNlOm5vd3JhcDsKKyAgICBv
dmVyZmxvdzpoaWRkZW47CisgICAgdGV4dC1vdmVyZmxvdzplbGxpcHNpczsKKyAgICBkaXJlY3Rp
b246cnRsOworICB9Cis8L3N0eWxlPgorIDxzY3JpcHQ+CisgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsK
Kzwvc2NyaXB0PgorCis8cD5UaGUgdGV4dCBhbmQgZWxsaXBzaXMgc2hvdWxkIG5vdCBvdmVybGFw
LjwvcD4KKzxkaXY+JiMxNjA3OyYjMTU4NDsmIzE1NzU7ICYjMTYwNzsmIzE2MDg7ICYjMTU3NTsm
IzE2MDQ7JiMxNTc1OyYjMTU4MjsmIzE1Nzg7JiMxNTc2OyYjMTU3NTsmIzE1ODU7PC9kaXY+CisK
</data>

          </attachment>
      

    </bug>

</bugzilla>