<?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>44031</bug_id>
          
          <creation_ts>2010-08-15 07:46:25 -0700</creation_ts>
          <short_desc>[Qt] Save and restore shadow state in GraphicsContextQt</short_desc>
          <delta_ts>2010-08-16 05:59:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HTML5, Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>44015</dependson>
          <blocked>34479</blocked>
    
    <blocked>44025</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ariya Hidayat">ariya.hidayat</reporter>
          <assigned_to name="Ariya Hidayat">ariya.hidayat</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>hausmann</cc>
    
    <cc>kling</cc>
    
    <cc>krit</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>264827</commentid>
    <comment_count>0</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-15 07:46:25 -0700</bug_when>
    <thetext>This is the next step after https://bugs.webkit.org/show_bug.cgi?id=44006. We should save and restore shadow parameters properly. We will not use GraphicsContextState for this because we may want to cache some stuff useful for shadow blur.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264894</commentid>
    <comment_count>1</comment_count>
      <attachid>64459</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-15 15:56:20 -0700</bug_when>
    <thetext>Created attachment 64459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264896</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-15 15:59:30 -0700</bug_when>
    <thetext>Attachment 64459 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/platform/graphics/qt/GraphicsContextQt.cpp:177:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264898</commentid>
    <comment_count>3</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-08-15 16:03:30 -0700</bug_when>
    <thetext>Attachment 64459 did not build on qt:
Build output: http://queues.webkit.org/results/3778194</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264900</commentid>
    <comment_count>4</comment_count>
      <attachid>64461</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-15 17:18:50 -0700</bug_when>
    <thetext>Created attachment 64461
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264901</commentid>
    <comment_count>5</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-15 17:19:28 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Attachment 64459 [details] did not build on qt:
&gt; Build output: http://queues.webkit.org/results/3778194

This is bogus, since this patch requires https://bugs.webkit.org/show_bug.cgi?id=44015 first to be applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264902</commentid>
    <comment_count>6</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-08-15 17:25:35 -0700</bug_when>
    <thetext>Attachment 64461 did not build on qt:
Build output: http://queues.webkit.org/results/3717221</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264905</commentid>
    <comment_count>7</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-15 17:41:21 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Attachment 64461 [details] did not build on qt:
&gt; Build output: http://queues.webkit.org/results/3717221

Please ignore this, the patch can&apos;t be built before https://bugs.webkit.org/show_bug.cgi?id=44015,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264927</commentid>
    <comment_count>8</comment_count>
      <attachid>64461</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-08-15 20:46:34 -0700</bug_when>
    <thetext>Comment on attachment 64461
Patch

&gt; +2010-08-15  Ariya Hidayat  &lt;ariya@sencha.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        [Qt] Save and restore shadow state in GraphicsContextQt
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=44031
&gt; +
&gt; +        * platform/graphics/qt/GraphicsContextQt.cpp:

Ariya, could you enrich you ChangeLog?
  
&gt; +
&gt; +// This is to track and keep the shadow state. We use this rather than
&gt; +// using GraphicsContextState to allow possible optimizations (right now
&gt; +// only to determine the shadow type, but in future it might covers things
&gt; +// like cached scratch image, persistent shader, etc).

/s/covers/cover

&gt; +        : color(c)
&gt; +        , blurRadius(qRound(r))
&gt; +        , offset(dx, dy)
&gt; +    {
&gt; +        // The type of shadow is decided by the blur radius, shadow offset, and shadow color.
&gt; +        if (!color.isValid() || !color.alpha()) {
&gt; +            // Can&apos;t paint the shadow with invalid or invisible color.
&gt; +            type = NoShadow;
&gt; +        } else {
&gt; +            if (r &gt; 0) {
&gt; +                // Shadow is always blurred, even the offset is zero.
&gt; +                type = BlurShadow;
&gt; +            } else {
&gt; +                if (offset.isNull()) {
&gt; +                    // Without blur and zero offset means the shadow is fully hidden.
&gt; +                    type = NoShadow;
&gt; +                } else {
&gt; +                    if (color.alpha() &gt; 0)
&gt; +                        type = AlphaSolidShadow;
&gt; +                    else
&gt; +                        type = OpaqueSolidShadow;
&gt; +                }
&gt; +            }
&gt; +        }
&gt; +    }


If you use &quot;else if&quot;  instead of &quot;else { \n\TAB\ if ..&quot; you would look better, identation-wise.

&gt; +
&gt; +    void clear()
&gt; +    {
&gt; +        type = NoShadow;
&gt; +        color = QColor();
&gt; +        blurRadius = 0;
&gt; +        offset = QPointF(0, 0);

Lets use QPoingF() here.

r=me with the above fixed! Nice split up / group up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264945</commentid>
    <comment_count>9</comment_count>
      <attachid>64461</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-15 23:21:54 -0700</bug_when>
    <thetext>Comment on attachment 64461
Patch

Manually committed r65393: http://trac.webkit.org/changeset/65393</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264949</commentid>
    <comment_count>10</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-15 23:38:33 -0700</bug_when>
    <thetext>Reverted r65393 for reason:

Breaks some canvas tests

Committed r65394: &lt;http://trac.webkit.org/changeset/65394&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264950</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-15 23:48:48 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65393 might have broken Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264953</commentid>
    <comment_count>12</comment_count>
      <attachid>64468</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-16 00:02:21 -0700</bug_when>
    <thetext>Created attachment 64468
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264954</commentid>
    <comment_count>13</comment_count>
      <attachid>64468</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-16 00:03:40 -0700</bug_when>
    <thetext>Comment on attachment 64468
Patch

The updated patch should fix the problem with canvas tests (the reason I rolled out the previous patch, http://trac.webkit.org/changeset/65394).

Here is the small diff of the fix:

diff --git a/WebCore/platform/graphics/qt/GraphicsContextQt.cpp b/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
index 43fc32f..d30ea66 100644
--- a/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
+++ b/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
@@ -920,9 +920,10 @@ void GraphicsContext::setPlatformShadow(const FloatSize&amp; size, float blur, const
         // Meaning that this graphics context is associated with a CanvasRenderingContext
         // We flip the height since CG and HTML5 Canvas have opposite Y axis
         m_common-&gt;state.shadowSize = FloatSize(size.width(), -size.height());
+        m_data-&gt;shadow = ContextShadowParameter(color, blur, size.width(), -size.height());
+    } else {
+        m_data-&gt;shadow = ContextShadowParameter(color, blur, size.width(), size.height());
     }
-
-    m_data-&gt;shadow = ContextShadowParameter(color, blur, size.width(), size.height());
 }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265019</commentid>
    <comment_count>14</comment_count>
      <attachid>64468</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-08-16 04:47:12 -0700</bug_when>
    <thetext>Comment on attachment 64468
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265049</commentid>
    <comment_count>15</comment_count>
      <attachid>64468</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-16 05:59:03 -0700</bug_when>
    <thetext>Comment on attachment 64468
Patch

Clearing flags on attachment: 64468

Committed r65420: &lt;http://trac.webkit.org/changeset/65420&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265050</commentid>
    <comment_count>16</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-16 05:59:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64459</attachid>
            <date>2010-08-15 15:56:20 -0700</date>
            <delta_ts>2010-08-15 17:18:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44031-20100815155459.patch</filename>
            <type>text/plain</type>
            <size>11159</size>
            <attacher name="Ariya Hidayat">ariya.hidayat</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NmE2Y2RkNmIzZjdjZDgxODk5NDMyNGIxZGQ4ZGZhZTRmNWNmYTQwYi4uMDQ3ZjM1OTI2MTJlNWE0
NjhmNWZkYTgzODc0MGY4ZTU0MTBmZDQxYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMC0wOC0xNSAgQXJp
eWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBTYXZlIGFuZCByZXN0b3JlIHNoYWRvdyBzdGF0
ZSBpbiBHcmFwaGljc0NvbnRleHRRdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDQwMzEKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0dy
YXBoaWNzQ29udGV4dFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRTaGFkb3dQYXJh
bWV0ZXI6Oik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0U2hhZG93UGFyYW1ldGVyOjpDb250
ZXh0U2hhZG93UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRTaGFkb3dQYXJh
bWV0ZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFBsYXRmb3Jt
UHJpdmF0ZTo6aGFzU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFBs
YXRmb3JtUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2F2ZVBsYXRmb3JtU3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpyZXN0b3JlUGxhdGZvcm1TdGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0OjpzdHJva2VBcmMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpk
cmF3Q29udmV4UG9seWdvbik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZp
bGxQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aCk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3cpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpjbGVhclBsYXRmb3JtU2hhZG93KToKKwogMjAxMC0wOC0x
NCAgQXJpeWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
R3JhcGhpY3NDb250ZXh0UXQuY3BwCmluZGV4IGQyMjEzMWY1NjI1MDdlOGUwYzAxMTJlM2MxMGM0
N2QxMjMzYWRiMzYuLjgzYTQ0OTcwMzVmOTQ3MGZkMWRiMTEzMDE1MzgyY2E1YTg0Y2UxZGUgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQu
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQu
Y3BwCkBAIC0xNjcsNiArMTY3LDY4IEBAIHN0YXRpYyBpbmxpbmUgUXQ6OkZpbGxSdWxlIHRvUXRG
aWxsUnVsZShXaW5kUnVsZSBydWxlKQogICAgIHJldHVybiBRdDo6T2RkRXZlbkZpbGw7CiB9CiAK
KworLy8gVGhpcyBpcyB0byB0cmFjayBhbmQga2VlcCB0aGUgc2hhZG93IHN0YXRlLiBXZSB1c2Ug
dGhpcyByYXRoZXIgdGhhbgorLy8gdXNpbmcgR3JhcGhpY3NDb250ZXh0U3RhdGUgdG8gYWxsb3cg
cG9zc2libGUgb3B0aW1pemF0aW9ucyAocmlnaHQgbm93CisvLyBvbmx5IHRvIGRldGVybWluZSB0
aGUgc2hhZG93IHR5cGUsIGJ1dCBpbiBmdXR1cmUgaXQgbWlnaHQgY292ZXJzIHRoaW5ncworLy8g
bGlrZSBjYWNoZWQgc2NyYXRjaCBpbWFnZSwgcGVyc2lzdGVudCBzaGFkZXIsIGV0YykuCisKK2Ns
YXNzIENvbnRleHRTaGFkb3dQYXJhbWV0ZXIKK3sKK3B1YmxpYzoKKyAgICBlbnVtIHsKKyAgICAg
ICAgTm9TaGFkb3csCisgICAgICAgIE9wYXF1ZVNvbGlkU2hhZG93LAorICAgICAgICBBbHBoYVNv
bGlkU2hhZG93LAorICAgICAgICBCbHVyU2hhZG93CisgICAgfSB0eXBlOworCisgICAgUUNvbG9y
IGNvbG9yOworICAgIGludCBibHVyUmFkaXVzOworICAgIFFQb2ludEYgb2Zmc2V0OworCisgICAg
Q29udGV4dFNoYWRvd1BhcmFtZXRlcigpCisgICAgICAgIDogdHlwZShOb1NoYWRvdykKKyAgICAg
ICAgLCBibHVyUmFkaXVzKDApCisgICAgeworICAgIH0KKworICAgIENvbnRleHRTaGFkb3dQYXJh
bWV0ZXIoY29uc3QgUUNvbG9yJiBjLCBmbG9hdCByLCBxcmVhbCBkeCwgcXJlYWwgZHkpCisgICAg
ICAgIDogY29sb3IoYykKKyAgICAgICAgLCBibHVyUmFkaXVzKHFSb3VuZChyKSkKKyAgICAgICAg
LCBvZmZzZXQoZHgsIGR5KQorICAgIHsKKyAgICAgICAgLy8gVGhlIHR5cGUgb2Ygc2hhZG93IGlz
IGRlY2lkZWQgYnkgdGhlIGJsdXIgcmFkaXVzLCBzaGFkb3cgb2Zmc2V0LCBhbmQgc2hhZG93IGNv
bG9yLgorICAgICAgICBpZiAoIWNvbG9yLmlzVmFsaWQoKSB8fCAhY29sb3IuYWxwaGEoKSkgewor
ICAgICAgICAgICAgLy8gQ2FuJ3QgcGFpbnQgdGhlIHNoYWRvdyB3aXRoIGludmFsaWQgb3IgaW52
aXNpYmxlIGNvbG9yLgorICAgICAgICAgICAgdHlwZSA9IE5vU2hhZG93OworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgaWYgKHIgPiAwKSB7CisgICAgICAgICAgICAgICAgLy8gU2hhZG93
IGlzIGFsd2F5cyBibHVycmVkLCBldmVuIHRoZSBvZmZzZXQgaXMgemVyby4KKyAgICAgICAgICAg
ICAgICB0eXBlID0gQmx1clNoYWRvdzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgaWYgKG9mZnNldC5pc051bGwoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBXaXRo
b3V0IGJsdXIgYW5kIHplcm8gb2Zmc2V0IG1lYW5zIHRoZSBzaGFkb3cgaXMgZnVsbHkgaGlkZGVu
LgorICAgICAgICAgICAgICAgICAgICB0eXBlID0gTm9TaGFkb3c7CisgICAgICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvbG9yLmFscGhhKCkgPiAwKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IEFscGhhU29saWRTaGFkb3c7CisgICAgICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSBPcGFxdWVTb2xp
ZFNoYWRvdzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICB2b2lkIGNsZWFyKCkKKyAgICB7CisgICAgICAgIHR5cGUgPSBOb1NoYWRvdzsK
KyAgICAgICAgY29sb3IgPSBRQ29sb3IoKTsKKyAgICAgICAgYmx1clJhZGl1cyA9IDA7CisgICAg
ICAgIG9mZnNldCA9IFFQb2ludEYoMCwgMCk7CisgICAgfQorfTsKKwogY2xhc3MgR3JhcGhpY3ND
b250ZXh0UGxhdGZvcm1Qcml2YXRlIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKICAg
ICBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGUoUVBhaW50ZXIqIHBhaW50ZXIpOwpAQCAt
MTk5LDE5ICsyNjEsMTIgQEAgcHVibGljOgogICAgIC8vIE9ubHkgdXNlZCBieSBTVkcgZm9yIG5v
dy4KICAgICBRUGFpbnRlclBhdGggY3VycmVudFBhdGg7CiAKLSAgICBlbnVtIHsKLSAgICAgICAg
Tm9TaGFkb3csCi0gICAgICAgIE9wYXF1ZVNvbGlkU2hhZG93LAotICAgICAgICBBbHBoYVNvbGlk
U2hhZG93LAotICAgICAgICBCbHVyU2hhZG93Ci0gICAgfSBzaGFkb3dUeXBlOwotICAgIFFDb2xv
ciBzaGFkb3dDb2xvcjsKLSAgICBpbnQgc2hhZG93Qmx1clJhZGl1czsKLSAgICBRUG9pbnRGIHNo
YWRvd09mZnNldDsKKyAgICBDb250ZXh0U2hhZG93UGFyYW1ldGVyIHNoYWRvdzsKKyAgICBRU3Rh
Y2s8Q29udGV4dFNoYWRvd1BhcmFtZXRlcj4gc2hhZG93U3RhY2s7CiAKICAgICBib29sIGhhc1No
YWRvdygpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gc2hhZG93VHlwZSAhPSBOb1NoYWRv
dzsKKyAgICAgICAgcmV0dXJuIHNoYWRvdy50eXBlICE9IENvbnRleHRTaGFkb3dQYXJhbWV0ZXI6
Ok5vU2hhZG93OwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTIzNyw5ICsyOTIsNiBAQCBHcmFwaGlj
c0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6OkdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZShR
UGFpbnRlciogcCkKICAgICAgICAgcGFpbnRlci0+c2V0UmVuZGVySGludChRUGFpbnRlcjo6U21v
b3RoUGl4bWFwVHJhbnNmb3JtLCB0cnVlKTsKICAgICB9IGVsc2UKICAgICAgICAgYW50aUFsaWFz
aW5nRm9yUmVjdHNBbmRMaW5lcyA9IGZhbHNlOwotCi0gICAgc2hhZG93VHlwZSA9IE5vU2hhZG93
OwotICAgIHNoYWRvd0JsdXJSYWRpdXMgPSAwOwogfQogCiBHcmFwaGljc0NvbnRleHRQbGF0Zm9y
bVByaXZhdGU6On5HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGUoKQpAQCAtMjg0LDYgKzMz
Niw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzYXZlUGxhdGZvcm1TdGF0ZSgpCiAgICAgaWYg
KCFtX2RhdGEtPmxheWVycy5pc0VtcHR5KCkgJiYgIW1fZGF0YS0+bGF5ZXJzLnRvcCgpLT5hbHBo
YU1hc2suaXNOdWxsKCkpCiAgICAgICAgICsrbV9kYXRhLT5sYXllcnMudG9wKCktPnNhdmVDb3Vu
dGVyOwogICAgIG1fZGF0YS0+cCgpLT5zYXZlKCk7CisgICAgbV9kYXRhLT5zaGFkb3dTdGFjay5w
dXNoKG1fZGF0YS0+c2hhZG93KTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnJlc3RvcmVQ
bGF0Zm9ybVN0YXRlKCkKQEAgLTI5OCw2ICszNTEsMTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6
OnJlc3RvcmVQbGF0Zm9ybVN0YXRlKCkKICAgICAgICAgUVRyYW5zZm9ybSBtYXRyaXggPSBtX2Nv
bW1vbi0+c3RhdGUucGF0aFRyYW5zZm9ybTsKICAgICAgICAgbV9kYXRhLT5jdXJyZW50UGF0aCA9
IG1fZGF0YS0+Y3VycmVudFBhdGggKiBtYXRyaXg7CiAgICAgfQorCisgICAgaWYgKG1fZGF0YS0+
c2hhZG93U3RhY2suaXNFbXB0eSgpKQorICAgICAgICBtX2RhdGEtPnNoYWRvdyA9IENvbnRleHRT
aGFkb3dQYXJhbWV0ZXIoKTsKKyAgICBlbHNlCisgICAgICAgIG1fZGF0YS0+c2hhZG93ID0gbV9k
YXRhLT5zaGFkb3dTdGFjay5wb3AoKTsKIH0KIAogLy8gRHJhd3MgYSBmaWxsZWQgcmVjdGFuZ2xl
IHdpdGggYSBzdHJva2VkIGJvcmRlci4KQEAgLTQzNiw5ICs0OTQsOSBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6c3Ryb2tlQXJjKGNvbnN0IEludFJlY3QmIHJlY3QsIGludCBzdGFydEFuZ2xlLCBp
bnQgYW5nbGVTcAogCiAgICAgaWYgKG1fZGF0YS0+aGFzU2hhZG93KCkpIHsKICAgICAgICAgcC0+
c2F2ZSgpOwotICAgICAgICBwLT50cmFuc2xhdGUobV9kYXRhLT5zaGFkb3dPZmZzZXQpOworICAg
ICAgICBwLT50cmFuc2xhdGUobV9kYXRhLT5zaGFkb3cub2Zmc2V0KTsKICAgICAgICAgUVBlbiBw
ZW4ocC0+cGVuKCkpOwotICAgICAgICBwZW4uc2V0Q29sb3IobV9kYXRhLT5zaGFkb3dDb2xvcik7
CisgICAgICAgIHBlbi5zZXRDb2xvcihtX2RhdGEtPnNoYWRvdy5jb2xvcik7CiAgICAgICAgIHAt
PnNldFBlbihwZW4pOwogICAgICAgICBwLT5kcmF3QXJjKHJlY3QsIHN0YXJ0QW5nbGUsIGFuZ2xl
U3Bhbik7CiAgICAgICAgIHAtPnJlc3RvcmUoKTsKQEAgLTQ2NiwxMiArNTI0LDEyIEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpkcmF3Q29udmV4UG9seWdvbihzaXplX3QgbnBvaW50cywgY29uc3Qg
RmxvYXRQb2ludCogcG9pbnRzCiAgICAgcC0+c2V0UmVuZGVySGludChRUGFpbnRlcjo6QW50aWFs
aWFzaW5nLCBzaG91bGRBbnRpYWxpYXMpOwogICAgIGlmIChtX2RhdGEtPmhhc1NoYWRvdygpKSB7
CiAgICAgICAgIHAtPnNhdmUoKTsKLSAgICAgICAgcC0+dHJhbnNsYXRlKG1fZGF0YS0+c2hhZG93
T2Zmc2V0KTsKKyAgICAgICAgcC0+dHJhbnNsYXRlKG1fZGF0YS0+c2hhZG93Lm9mZnNldCk7CiAg
ICAgICAgIGlmIChwLT5icnVzaCgpLnN0eWxlKCkgIT0gUXQ6Ok5vQnJ1c2gpCi0gICAgICAgICAg
ICBwLT5zZXRCcnVzaChRQnJ1c2gobV9kYXRhLT5zaGFkb3dDb2xvcikpOworICAgICAgICAgICAg
cC0+c2V0QnJ1c2goUUJydXNoKG1fZGF0YS0+c2hhZG93LmNvbG9yKSk7CiAgICAgICAgIFFQZW4g
cGVuKHAtPnBlbigpKTsKICAgICAgICAgaWYgKHBlbi5zdHlsZSgpICE9IFF0OjpOb1Blbikgewot
ICAgICAgICAgICAgcGVuLnNldENvbG9yKG1fZGF0YS0+c2hhZG93Q29sb3IpOworICAgICAgICAg
ICAgcGVuLnNldENvbG9yKG1fZGF0YS0+c2hhZG93LmNvbG9yKTsKICAgICAgICAgICAgIHAtPnNl
dFBlbihwZW4pOwogICAgICAgICB9CiAgICAgICAgIHAtPmRyYXdDb252ZXhQb2x5Z29uKHBvbHln
b24pOwpAQCAtNTE1LDkgKzU3Myw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUGF0aCgp
CiAgICAgcGF0aC5zZXRGaWxsUnVsZSh0b1F0RmlsbFJ1bGUoZmlsbFJ1bGUoKSkpOwogCiAgICAg
aWYgKG1fZGF0YS0+aGFzU2hhZG93KCkpIHsKLSAgICAgICAgcC0+dHJhbnNsYXRlKG1fZGF0YS0+
c2hhZG93T2Zmc2V0KTsKLSAgICAgICAgcC0+ZmlsbFBhdGgocGF0aCwgbV9kYXRhLT5zaGFkb3dD
b2xvcik7Ci0gICAgICAgIHAtPnRyYW5zbGF0ZSgtbV9kYXRhLT5zaGFkb3dPZmZzZXQpOworICAg
ICAgICBwLT50cmFuc2xhdGUobV9kYXRhLT5zaGFkb3cub2Zmc2V0KTsKKyAgICAgICAgcC0+Zmls
bFBhdGgocGF0aCwgbV9kYXRhLT5zaGFkb3cuY29sb3IpOworICAgICAgICBwLT50cmFuc2xhdGUo
LW1fZGF0YS0+c2hhZG93Lm9mZnNldCk7CiAgICAgfQogICAgIGlmIChtX2NvbW1vbi0+c3RhdGUu
ZmlsbFBhdHRlcm4pIHsKICAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGFmZmluZTsKQEAgLTU0Mywx
MSArNjAxLDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKCkKICAgICBwYXRo
LnNldEZpbGxSdWxlKHRvUXRGaWxsUnVsZShmaWxsUnVsZSgpKSk7CiAKICAgICBpZiAobV9kYXRh
LT5oYXNTaGFkb3coKSkgewotICAgICAgICBwLT50cmFuc2xhdGUobV9kYXRhLT5zaGFkb3dPZmZz
ZXQpOworICAgICAgICBwLT50cmFuc2xhdGUobV9kYXRhLT5zaGFkb3cub2Zmc2V0KTsKICAgICAg
ICAgUVBlbiBzaGFkb3dQZW4ocGVuKTsKLSAgICAgICAgc2hhZG93UGVuLnNldENvbG9yKG1fZGF0
YS0+c2hhZG93Q29sb3IpOworICAgICAgICBzaGFkb3dQZW4uc2V0Q29sb3IobV9kYXRhLT5zaGFk
b3cuY29sb3IpOwogICAgICAgICBwLT5zdHJva2VQYXRoKHBhdGgsIHNoYWRvd1Blbik7Ci0gICAg
ICAgIHAtPnRyYW5zbGF0ZSgtbV9kYXRhLT5zaGFkb3dPZmZzZXQpOworICAgICAgICBwLT50cmFu
c2xhdGUoLW1fZGF0YS0+c2hhZG93Lm9mZnNldCk7CiAgICAgfQogICAgIGlmIChtX2NvbW1vbi0+
c3RhdGUuc3Ryb2tlUGF0dGVybikgewogICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gYWZmaW5lOwpA
QCAtNjQ4LDEwICs3MDYsMTAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkKICAgICAgICAgc2hhZG93SW1hZ2UgPSBuZXcgUUltYWdlKHJvdW5k
ZWRJbnRTaXplKG5vcm1hbGl6ZWRSZWN0LnNpemUoKSksIFFJbWFnZTo6Rm9ybWF0X0FSR0IzMl9Q
cmVtdWx0aXBsaWVkKTsKICAgICAgICAgcFNoYWRvdyA9IG5ldyBRUGFpbnRlcihzaGFkb3dJbWFn
ZSk7CiAgICAgICAgIHNoYWRvd0Rlc3RSZWN0ID0gbm9ybWFsaXplZFJlY3Q7Ci0gICAgICAgIHNo
YWRvd0Rlc3RSZWN0LnRyYW5zbGF0ZShtX2RhdGEtPnNoYWRvd09mZnNldCk7CisgICAgICAgIHNo
YWRvd0Rlc3RSZWN0LnRyYW5zbGF0ZShtX2RhdGEtPnNoYWRvdy5vZmZzZXQpOwogCiAgICAgICAg
IHBTaGFkb3ctPnNldENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1Nv
dXJjZSk7Ci0gICAgICAgIHBTaGFkb3ctPmZpbGxSZWN0KHNoYWRvd0ltYWdlLT5yZWN0KCksIG1f
ZGF0YS0+c2hhZG93Q29sb3IpOworICAgICAgICBwU2hhZG93LT5maWxsUmVjdChzaGFkb3dJbWFn
ZS0+cmVjdCgpLCBtX2RhdGEtPnNoYWRvdy5jb2xvcik7CiAgICAgICAgIHBTaGFkb3ctPnNldENv
bXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX0Rlc3RpbmF0aW9uSW4pOwog
ICAgIH0KIApAQCAtNzAwLDcgKzc1OCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVj
dChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTCiAgICAg
UVBhaW50ZXIqIHAgPSBtX2RhdGEtPnAoKTsKIAogICAgIGlmIChtX2RhdGEtPmhhc1NoYWRvdygp
KQotICAgICAgICBwLT5maWxsUmVjdChRUmVjdEYocmVjdCkudHJhbnNsYXRlZChtX2RhdGEtPnNo
YWRvd09mZnNldCksIG1fZGF0YS0+c2hhZG93Q29sb3IpOworICAgICAgICBwLT5maWxsUmVjdChR
UmVjdEYocmVjdCkudHJhbnNsYXRlZChtX2RhdGEtPnNoYWRvdy5vZmZzZXQpLCBtX2RhdGEtPnNo
YWRvdy5jb2xvcik7CiAKICAgICBwLT5maWxsUmVjdChyZWN0LCBtX2RhdGEtPnNvbGlkQ29sb3Ip
OwogfQpAQCAtNzEzLDkgKzc3MSw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUm91bmRl
ZFJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgSW50U2l6ZSYgdG9wTGVmCiAgICAgUGF0
aCBwYXRoID0gUGF0aDo6Y3JlYXRlUm91bmRlZFJlY3RhbmdsZShyZWN0LCB0b3BMZWZ0LCB0b3BS
aWdodCwgYm90dG9tTGVmdCwgYm90dG9tUmlnaHQpOwogICAgIFFQYWludGVyKiBwID0gbV9kYXRh
LT5wKCk7CiAgICAgaWYgKG1fZGF0YS0+aGFzU2hhZG93KCkpIHsKLSAgICAgICAgcC0+dHJhbnNs
YXRlKG1fZGF0YS0+c2hhZG93T2Zmc2V0KTsKLSAgICAgICAgcC0+ZmlsbFBhdGgocGF0aC5wbGF0
Zm9ybVBhdGgoKSwgbV9kYXRhLT5zaGFkb3dDb2xvcik7Ci0gICAgICAgIHAtPnRyYW5zbGF0ZSgt
bV9kYXRhLT5zaGFkb3dPZmZzZXQpOworICAgICAgICBwLT50cmFuc2xhdGUobV9kYXRhLT5zaGFk
b3cub2Zmc2V0KTsKKyAgICAgICAgcC0+ZmlsbFBhdGgocGF0aC5wbGF0Zm9ybVBhdGgoKSwgbV9k
YXRhLT5zaGFkb3cuY29sb3IpOworICAgICAgICBwLT50cmFuc2xhdGUoLW1fZGF0YS0+c2hhZG93
Lm9mZnNldCk7CiAgICAgfQogICAgIHAtPmZpbGxQYXRoKHBhdGgucGxhdGZvcm1QYXRoKCksIFFD
b2xvcihjb2xvcikpOwogfQpAQCAtODY5LDM4ICs5MjcsMTIgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgYmx1ciwg
Y29uc3QKICAgICAgICAgbV9jb21tb24tPnN0YXRlLnNoYWRvd1NpemUgPSBGbG9hdFNpemUoc2l6
ZS53aWR0aCgpLCAtc2l6ZS5oZWlnaHQoKSk7CiAgICAgfQogCi0gICAgLy8gSGVyZSB3ZSBqdXN0
IHN0b3JlIGltcG9ydGFudCBzaGFkb3cgc3RhdGVzLgotCi0gICAgbV9kYXRhLT5zaGFkb3dCbHVy
UmFkaXVzID0gcVJvdW5kKGJsdXIpOwotICAgIG1fZGF0YS0+c2hhZG93T2Zmc2V0ID0gUVBvaW50
RihtX2NvbW1vbi0+c3RhdGUuc2hhZG93U2l6ZS53aWR0aCgpLCBtX2NvbW1vbi0+c3RhdGUuc2hh
ZG93U2l6ZS5oZWlnaHQoKSk7Ci0gICAgbV9kYXRhLT5zaGFkb3dDb2xvciA9IGNvbG9yOwotCi0g
ICAgLy8gVGhlIHR5cGUgb2Ygc2hhZG93IGlzIGRlY2lkZWQgYnkgdGhlIGJsdXIgcmFkaXVzLCBz
aGFkb3cgb2Zmc2V0LCBhbmQgc2hhZG93IGNvbG9yLgotCi0gICAgaWYgKCFjb2xvci5pc1ZhbGlk
KCkgfHwgIWNvbG9yLmFscGhhKCkpIHsKLSAgICAgICAgLy8gQ2FuJ3QgcGFpbnQgdGhlIHNoYWRv
dyB3aXRoIGludmFsaWQgb3IgaW52aXNpYmxlIGNvbG9yLgotICAgICAgICBtX2RhdGEtPnNoYWRv
d1R5cGUgPSBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6Ok5vU2hhZG93OwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIGlmIChibHVyID4gMCkgewotICAgICAgICAgICAgLy8gU2hhZG93IGlz
IGFsd2F5cyBibHVycmVkLCBldmVuIHRoZSBvZmZzZXQgaXMgemVyby4KLSAgICAgICAgICAgIG1f
ZGF0YS0+c2hhZG93VHlwZSA9IEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6Qmx1clNo
YWRvdzsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChtX2RhdGEtPnNoYWRvd09m
ZnNldC5pc051bGwoKSkgewotICAgICAgICAgICAgICAgIC8vIFdpdGhvdXQgYmx1ciBhbmQgemVy
byBvZmZzZXQgbWVhbnMgdGhlIHNoYWRvdyBpcyBmdWxseSBoaWRkZW4uCi0gICAgICAgICAgICAg
ICAgbV9kYXRhLT5zaGFkb3dUeXBlID0gR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpO
b1NoYWRvdzsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNvbG9y
Lmhhc0FscGhhKCkpCi0gICAgICAgICAgICAgICAgICAgIG1fZGF0YS0+c2hhZG93VHlwZSA9IEdy
YXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6QWxwaGFTb2xpZFNoYWRvdzsKLSAgICAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIG1fZGF0YS0+c2hhZG93VHlwZSA9IEdy
YXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6T3BhcXVlU29saWRTaGFkb3c7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0KLSAgICB9CisgICAgbV9kYXRhLT5zaGFkb3cgPSBDb250ZXh0U2hh
ZG93UGFyYW1ldGVyKGNvbG9yLCBibHVyLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpOwog
fQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xlYXJQbGF0Zm9ybVNoYWRvdygpCiB7Ci0gICAg
bV9kYXRhLT5zaGFkb3dUeXBlID0gR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpOb1No
YWRvdzsKKyAgICBtX2RhdGEtPnNoYWRvdy5jbGVhcigpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64461</attachid>
            <date>2010-08-15 17:18:50 -0700</date>
            <delta_ts>2010-08-16 00:02:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44031-20100815171729.patch</filename>
            <type>text/plain</type>
            <size>11158</size>
            <attacher name="Ariya Hidayat">ariya.hidayat</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NmE2Y2RkNmIzZjdjZDgxODk5NDMyNGIxZGQ4ZGZhZTRmNWNmYTQwYi4uMDQ3ZjM1OTI2MTJlNWE0
NjhmNWZkYTgzODc0MGY4ZTU0MTBmZDQxYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMC0wOC0xNSAgQXJp
eWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBTYXZlIGFuZCByZXN0b3JlIHNoYWRvdyBzdGF0
ZSBpbiBHcmFwaGljc0NvbnRleHRRdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDQwMzEKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0dy
YXBoaWNzQ29udGV4dFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRTaGFkb3dQYXJh
bWV0ZXI6Oik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0U2hhZG93UGFyYW1ldGVyOjpDb250
ZXh0U2hhZG93UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRTaGFkb3dQYXJh
bWV0ZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFBsYXRmb3Jt
UHJpdmF0ZTo6aGFzU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFBs
YXRmb3JtUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2F2ZVBsYXRmb3JtU3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpyZXN0b3JlUGxhdGZvcm1TdGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0OjpzdHJva2VBcmMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpk
cmF3Q29udmV4UG9seWdvbik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZp
bGxQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aCk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3cpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpjbGVhclBsYXRmb3JtU2hhZG93KToKKwogMjAxMC0wOC0x
NCAgQXJpeWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
R3JhcGhpY3NDb250ZXh0UXQuY3BwCmluZGV4IGQyMjEzMWY1NjI1MDdlOGUwYzAxMTJlM2MxMGM0
N2QxMjMzYWRiMzYuLjA4YjkwNmU4NjliN2E1MGFiNTBlMmI4N2QyNWY3NzExYmFlNWQ2ZWIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQu
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQu
Y3BwCkBAIC0xNjcsNiArMTY3LDY3IEBAIHN0YXRpYyBpbmxpbmUgUXQ6OkZpbGxSdWxlIHRvUXRG
aWxsUnVsZShXaW5kUnVsZSBydWxlKQogICAgIHJldHVybiBRdDo6T2RkRXZlbkZpbGw7CiB9CiAK
KworLy8gVGhpcyBpcyB0byB0cmFjayBhbmQga2VlcCB0aGUgc2hhZG93IHN0YXRlLiBXZSB1c2Ug
dGhpcyByYXRoZXIgdGhhbgorLy8gdXNpbmcgR3JhcGhpY3NDb250ZXh0U3RhdGUgdG8gYWxsb3cg
cG9zc2libGUgb3B0aW1pemF0aW9ucyAocmlnaHQgbm93CisvLyBvbmx5IHRvIGRldGVybWluZSB0
aGUgc2hhZG93IHR5cGUsIGJ1dCBpbiBmdXR1cmUgaXQgbWlnaHQgY292ZXJzIHRoaW5ncworLy8g
bGlrZSBjYWNoZWQgc2NyYXRjaCBpbWFnZSwgcGVyc2lzdGVudCBzaGFkZXIsIGV0YykuCisKK2Ns
YXNzIENvbnRleHRTaGFkb3dQYXJhbWV0ZXIgeworcHVibGljOgorICAgIGVudW0geworICAgICAg
ICBOb1NoYWRvdywKKyAgICAgICAgT3BhcXVlU29saWRTaGFkb3csCisgICAgICAgIEFscGhhU29s
aWRTaGFkb3csCisgICAgICAgIEJsdXJTaGFkb3cKKyAgICB9IHR5cGU7CisKKyAgICBRQ29sb3Ig
Y29sb3I7CisgICAgaW50IGJsdXJSYWRpdXM7CisgICAgUVBvaW50RiBvZmZzZXQ7CisKKyAgICBD
b250ZXh0U2hhZG93UGFyYW1ldGVyKCkKKyAgICAgICAgOiB0eXBlKE5vU2hhZG93KQorICAgICAg
ICAsIGJsdXJSYWRpdXMoMCkKKyAgICB7CisgICAgfQorCisgICAgQ29udGV4dFNoYWRvd1BhcmFt
ZXRlcihjb25zdCBRQ29sb3ImIGMsIGZsb2F0IHIsIHFyZWFsIGR4LCBxcmVhbCBkeSkKKyAgICAg
ICAgOiBjb2xvcihjKQorICAgICAgICAsIGJsdXJSYWRpdXMocVJvdW5kKHIpKQorICAgICAgICAs
IG9mZnNldChkeCwgZHkpCisgICAgeworICAgICAgICAvLyBUaGUgdHlwZSBvZiBzaGFkb3cgaXMg
ZGVjaWRlZCBieSB0aGUgYmx1ciByYWRpdXMsIHNoYWRvdyBvZmZzZXQsIGFuZCBzaGFkb3cgY29s
b3IuCisgICAgICAgIGlmICghY29sb3IuaXNWYWxpZCgpIHx8ICFjb2xvci5hbHBoYSgpKSB7Cisg
ICAgICAgICAgICAvLyBDYW4ndCBwYWludCB0aGUgc2hhZG93IHdpdGggaW52YWxpZCBvciBpbnZp
c2libGUgY29sb3IuCisgICAgICAgICAgICB0eXBlID0gTm9TaGFkb3c7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBpZiAociA+IDApIHsKKyAgICAgICAgICAgICAgICAvLyBTaGFkb3cg
aXMgYWx3YXlzIGJsdXJyZWQsIGV2ZW4gdGhlIG9mZnNldCBpcyB6ZXJvLgorICAgICAgICAgICAg
ICAgIHR5cGUgPSBCbHVyU2hhZG93OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBpZiAob2Zmc2V0LmlzTnVsbCgpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdpdGhv
dXQgYmx1ciBhbmQgemVybyBvZmZzZXQgbWVhbnMgdGhlIHNoYWRvdyBpcyBmdWxseSBoaWRkZW4u
CisgICAgICAgICAgICAgICAgICAgIHR5cGUgPSBOb1NoYWRvdzsKKyAgICAgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoY29sb3IuYWxwaGEoKSA+IDApCisgICAg
ICAgICAgICAgICAgICAgICAgICB0eXBlID0gQWxwaGFTb2xpZFNoYWRvdzsKKyAgICAgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IE9wYXF1ZVNvbGlk
U2hhZG93OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KKworICAgIHZvaWQgY2xlYXIoKQorICAgIHsKKyAgICAgICAgdHlwZSA9IE5vU2hhZG93Owor
ICAgICAgICBjb2xvciA9IFFDb2xvcigpOworICAgICAgICBibHVyUmFkaXVzID0gMDsKKyAgICAg
ICAgb2Zmc2V0ID0gUVBvaW50RigwLCAwKTsKKyAgICB9Cit9OworCiBjbGFzcyBHcmFwaGljc0Nv
bnRleHRQbGF0Zm9ybVByaXZhdGUgOiBwdWJsaWMgTm9uY29weWFibGUgewogcHVibGljOgogICAg
IEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZShRUGFpbnRlciogcGFpbnRlcik7CkBAIC0x
OTksMTkgKzI2MCwxMiBAQCBwdWJsaWM6CiAgICAgLy8gT25seSB1c2VkIGJ5IFNWRyBmb3Igbm93
LgogICAgIFFQYWludGVyUGF0aCBjdXJyZW50UGF0aDsKIAotICAgIGVudW0gewotICAgICAgICBO
b1NoYWRvdywKLSAgICAgICAgT3BhcXVlU29saWRTaGFkb3csCi0gICAgICAgIEFscGhhU29saWRT
aGFkb3csCi0gICAgICAgIEJsdXJTaGFkb3cKLSAgICB9IHNoYWRvd1R5cGU7Ci0gICAgUUNvbG9y
IHNoYWRvd0NvbG9yOwotICAgIGludCBzaGFkb3dCbHVyUmFkaXVzOwotICAgIFFQb2ludEYgc2hh
ZG93T2Zmc2V0OworICAgIENvbnRleHRTaGFkb3dQYXJhbWV0ZXIgc2hhZG93OworICAgIFFTdGFj
azxDb250ZXh0U2hhZG93UGFyYW1ldGVyPiBzaGFkb3dTdGFjazsKIAogICAgIGJvb2wgaGFzU2hh
ZG93KCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBzaGFkb3dUeXBlICE9IE5vU2hhZG93
OworICAgICAgICByZXR1cm4gc2hhZG93LnR5cGUgIT0gQ29udGV4dFNoYWRvd1BhcmFtZXRlcjo6
Tm9TaGFkb3c7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtMjM3LDkgKzI5MSw2IEBAIEdyYXBoaWNz
Q29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlKFFQ
YWludGVyKiBwKQogICAgICAgICBwYWludGVyLT5zZXRSZW5kZXJIaW50KFFQYWludGVyOjpTbW9v
dGhQaXhtYXBUcmFuc2Zvcm0sIHRydWUpOwogICAgIH0gZWxzZQogICAgICAgICBhbnRpQWxpYXNp
bmdGb3JSZWN0c0FuZExpbmVzID0gZmFsc2U7Ci0KLSAgICBzaGFkb3dUeXBlID0gTm9TaGFkb3c7
Ci0gICAgc2hhZG93Qmx1clJhZGl1cyA9IDA7CiB9CiAKIEdyYXBoaWNzQ29udGV4dFBsYXRmb3Jt
UHJpdmF0ZTo6fkdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZSgpCkBAIC0yODQsNiArMzM1
LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNhdmVQbGF0Zm9ybVN0YXRlKCkKICAgICBpZiAo
IW1fZGF0YS0+bGF5ZXJzLmlzRW1wdHkoKSAmJiAhbV9kYXRhLT5sYXllcnMudG9wKCktPmFscGhh
TWFzay5pc051bGwoKSkKICAgICAgICAgKyttX2RhdGEtPmxheWVycy50b3AoKS0+c2F2ZUNvdW50
ZXI7CiAgICAgbV9kYXRhLT5wKCktPnNhdmUoKTsKKyAgICBtX2RhdGEtPnNoYWRvd1N0YWNrLnB1
c2gobV9kYXRhLT5zaGFkb3cpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6cmVzdG9yZVBs
YXRmb3JtU3RhdGUoKQpAQCAtMjk4LDYgKzM1MCwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
cmVzdG9yZVBsYXRmb3JtU3RhdGUoKQogICAgICAgICBRVHJhbnNmb3JtIG1hdHJpeCA9IG1fY29t
bW9uLT5zdGF0ZS5wYXRoVHJhbnNmb3JtOwogICAgICAgICBtX2RhdGEtPmN1cnJlbnRQYXRoID0g
bV9kYXRhLT5jdXJyZW50UGF0aCAqIG1hdHJpeDsKICAgICB9CisKKyAgICBpZiAobV9kYXRhLT5z
aGFkb3dTdGFjay5pc0VtcHR5KCkpCisgICAgICAgIG1fZGF0YS0+c2hhZG93ID0gQ29udGV4dFNo
YWRvd1BhcmFtZXRlcigpOworICAgIGVsc2UKKyAgICAgICAgbV9kYXRhLT5zaGFkb3cgPSBtX2Rh
dGEtPnNoYWRvd1N0YWNrLnBvcCgpOwogfQogCiAvLyBEcmF3cyBhIGZpbGxlZCByZWN0YW5nbGUg
d2l0aCBhIHN0cm9rZWQgYm9yZGVyLgpAQCAtNDM2LDkgKzQ5Myw5IEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0OjpzdHJva2VBcmMoY29uc3QgSW50UmVjdCYgcmVjdCwgaW50IHN0YXJ0QW5nbGUsIGlu
dCBhbmdsZVNwCiAKICAgICBpZiAobV9kYXRhLT5oYXNTaGFkb3coKSkgewogICAgICAgICBwLT5z
YXZlKCk7Ci0gICAgICAgIHAtPnRyYW5zbGF0ZShtX2RhdGEtPnNoYWRvd09mZnNldCk7CisgICAg
ICAgIHAtPnRyYW5zbGF0ZShtX2RhdGEtPnNoYWRvdy5vZmZzZXQpOwogICAgICAgICBRUGVuIHBl
bihwLT5wZW4oKSk7Ci0gICAgICAgIHBlbi5zZXRDb2xvcihtX2RhdGEtPnNoYWRvd0NvbG9yKTsK
KyAgICAgICAgcGVuLnNldENvbG9yKG1fZGF0YS0+c2hhZG93LmNvbG9yKTsKICAgICAgICAgcC0+
c2V0UGVuKHBlbik7CiAgICAgICAgIHAtPmRyYXdBcmMocmVjdCwgc3RhcnRBbmdsZSwgYW5nbGVT
cGFuKTsKICAgICAgICAgcC0+cmVzdG9yZSgpOwpAQCAtNDY2LDEyICs1MjMsMTIgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdDb252ZXhQb2x5Z29uKHNpemVfdCBucG9pbnRzLCBjb25zdCBG
bG9hdFBvaW50KiBwb2ludHMKICAgICBwLT5zZXRSZW5kZXJIaW50KFFQYWludGVyOjpBbnRpYWxp
YXNpbmcsIHNob3VsZEFudGlhbGlhcyk7CiAgICAgaWYgKG1fZGF0YS0+aGFzU2hhZG93KCkpIHsK
ICAgICAgICAgcC0+c2F2ZSgpOwotICAgICAgICBwLT50cmFuc2xhdGUobV9kYXRhLT5zaGFkb3dP
ZmZzZXQpOworICAgICAgICBwLT50cmFuc2xhdGUobV9kYXRhLT5zaGFkb3cub2Zmc2V0KTsKICAg
ICAgICAgaWYgKHAtPmJydXNoKCkuc3R5bGUoKSAhPSBRdDo6Tm9CcnVzaCkKLSAgICAgICAgICAg
IHAtPnNldEJydXNoKFFCcnVzaChtX2RhdGEtPnNoYWRvd0NvbG9yKSk7CisgICAgICAgICAgICBw
LT5zZXRCcnVzaChRQnJ1c2gobV9kYXRhLT5zaGFkb3cuY29sb3IpKTsKICAgICAgICAgUVBlbiBw
ZW4ocC0+cGVuKCkpOwogICAgICAgICBpZiAocGVuLnN0eWxlKCkgIT0gUXQ6Ok5vUGVuKSB7Ci0g
ICAgICAgICAgICBwZW4uc2V0Q29sb3IobV9kYXRhLT5zaGFkb3dDb2xvcik7CisgICAgICAgICAg
ICBwZW4uc2V0Q29sb3IobV9kYXRhLT5zaGFkb3cuY29sb3IpOwogICAgICAgICAgICAgcC0+c2V0
UGVuKHBlbik7CiAgICAgICAgIH0KICAgICAgICAgcC0+ZHJhd0NvbnZleFBvbHlnb24ocG9seWdv
bik7CkBAIC01MTUsOSArNTcyLDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxQYXRoKCkK
ICAgICBwYXRoLnNldEZpbGxSdWxlKHRvUXRGaWxsUnVsZShmaWxsUnVsZSgpKSk7CiAKICAgICBp
ZiAobV9kYXRhLT5oYXNTaGFkb3coKSkgewotICAgICAgICBwLT50cmFuc2xhdGUobV9kYXRhLT5z
aGFkb3dPZmZzZXQpOwotICAgICAgICBwLT5maWxsUGF0aChwYXRoLCBtX2RhdGEtPnNoYWRvd0Nv
bG9yKTsKLSAgICAgICAgcC0+dHJhbnNsYXRlKC1tX2RhdGEtPnNoYWRvd09mZnNldCk7CisgICAg
ICAgIHAtPnRyYW5zbGF0ZShtX2RhdGEtPnNoYWRvdy5vZmZzZXQpOworICAgICAgICBwLT5maWxs
UGF0aChwYXRoLCBtX2RhdGEtPnNoYWRvdy5jb2xvcik7CisgICAgICAgIHAtPnRyYW5zbGF0ZSgt
bV9kYXRhLT5zaGFkb3cub2Zmc2V0KTsKICAgICB9CiAgICAgaWYgKG1fY29tbW9uLT5zdGF0ZS5m
aWxsUGF0dGVybikgewogICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gYWZmaW5lOwpAQCAtNTQzLDEx
ICs2MDAsMTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgoKQogICAgIHBhdGgu
c2V0RmlsbFJ1bGUodG9RdEZpbGxSdWxlKGZpbGxSdWxlKCkpKTsKIAogICAgIGlmIChtX2RhdGEt
Pmhhc1NoYWRvdygpKSB7Ci0gICAgICAgIHAtPnRyYW5zbGF0ZShtX2RhdGEtPnNoYWRvd09mZnNl
dCk7CisgICAgICAgIHAtPnRyYW5zbGF0ZShtX2RhdGEtPnNoYWRvdy5vZmZzZXQpOwogICAgICAg
ICBRUGVuIHNoYWRvd1BlbihwZW4pOwotICAgICAgICBzaGFkb3dQZW4uc2V0Q29sb3IobV9kYXRh
LT5zaGFkb3dDb2xvcik7CisgICAgICAgIHNoYWRvd1Blbi5zZXRDb2xvcihtX2RhdGEtPnNoYWRv
dy5jb2xvcik7CiAgICAgICAgIHAtPnN0cm9rZVBhdGgocGF0aCwgc2hhZG93UGVuKTsKLSAgICAg
ICAgcC0+dHJhbnNsYXRlKC1tX2RhdGEtPnNoYWRvd09mZnNldCk7CisgICAgICAgIHAtPnRyYW5z
bGF0ZSgtbV9kYXRhLT5zaGFkb3cub2Zmc2V0KTsKICAgICB9CiAgICAgaWYgKG1fY29tbW9uLT5z
dGF0ZS5zdHJva2VQYXR0ZXJuKSB7CiAgICAgICAgIEFmZmluZVRyYW5zZm9ybSBhZmZpbmU7CkBA
IC02NDgsMTAgKzcwNSwxMCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QoY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQogICAgICAgICBzaGFkb3dJbWFnZSA9IG5ldyBRSW1hZ2Uocm91bmRl
ZEludFNpemUobm9ybWFsaXplZFJlY3Quc2l6ZSgpKSwgUUltYWdlOjpGb3JtYXRfQVJHQjMyX1By
ZW11bHRpcGxpZWQpOwogICAgICAgICBwU2hhZG93ID0gbmV3IFFQYWludGVyKHNoYWRvd0ltYWdl
KTsKICAgICAgICAgc2hhZG93RGVzdFJlY3QgPSBub3JtYWxpemVkUmVjdDsKLSAgICAgICAgc2hh
ZG93RGVzdFJlY3QudHJhbnNsYXRlKG1fZGF0YS0+c2hhZG93T2Zmc2V0KTsKKyAgICAgICAgc2hh
ZG93RGVzdFJlY3QudHJhbnNsYXRlKG1fZGF0YS0+c2hhZG93Lm9mZnNldCk7CiAKICAgICAgICAg
cFNoYWRvdy0+c2V0Q29tcG9zaXRpb25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291
cmNlKTsKLSAgICAgICAgcFNoYWRvdy0+ZmlsbFJlY3Qoc2hhZG93SW1hZ2UtPnJlY3QoKSwgbV9k
YXRhLT5zaGFkb3dDb2xvcik7CisgICAgICAgIHBTaGFkb3ctPmZpbGxSZWN0KHNoYWRvd0ltYWdl
LT5yZWN0KCksIG1fZGF0YS0+c2hhZG93LmNvbG9yKTsKICAgICAgICAgcFNoYWRvdy0+c2V0Q29t
cG9zaXRpb25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfRGVzdGluYXRpb25Jbik7CiAg
ICAgfQogCkBAIC03MDAsNyArNzU3LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0
KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclMKICAgICBR
UGFpbnRlciogcCA9IG1fZGF0YS0+cCgpOwogCiAgICAgaWYgKG1fZGF0YS0+aGFzU2hhZG93KCkp
Ci0gICAgICAgIHAtPmZpbGxSZWN0KFFSZWN0RihyZWN0KS50cmFuc2xhdGVkKG1fZGF0YS0+c2hh
ZG93T2Zmc2V0KSwgbV9kYXRhLT5zaGFkb3dDb2xvcik7CisgICAgICAgIHAtPmZpbGxSZWN0KFFS
ZWN0RihyZWN0KS50cmFuc2xhdGVkKG1fZGF0YS0+c2hhZG93Lm9mZnNldCksIG1fZGF0YS0+c2hh
ZG93LmNvbG9yKTsKIAogICAgIHAtPmZpbGxSZWN0KHJlY3QsIG1fZGF0YS0+c29saWRDb2xvcik7
CiB9CkBAIC03MTMsOSArNzcwLDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZGVk
UmVjdChjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBJbnRTaXplJiB0b3BMZWYKICAgICBQYXRo
IHBhdGggPSBQYXRoOjpjcmVhdGVSb3VuZGVkUmVjdGFuZ2xlKHJlY3QsIHRvcExlZnQsIHRvcFJp
Z2h0LCBib3R0b21MZWZ0LCBib3R0b21SaWdodCk7CiAgICAgUVBhaW50ZXIqIHAgPSBtX2RhdGEt
PnAoKTsKICAgICBpZiAobV9kYXRhLT5oYXNTaGFkb3coKSkgewotICAgICAgICBwLT50cmFuc2xh
dGUobV9kYXRhLT5zaGFkb3dPZmZzZXQpOwotICAgICAgICBwLT5maWxsUGF0aChwYXRoLnBsYXRm
b3JtUGF0aCgpLCBtX2RhdGEtPnNoYWRvd0NvbG9yKTsKLSAgICAgICAgcC0+dHJhbnNsYXRlKC1t
X2RhdGEtPnNoYWRvd09mZnNldCk7CisgICAgICAgIHAtPnRyYW5zbGF0ZShtX2RhdGEtPnNoYWRv
dy5vZmZzZXQpOworICAgICAgICBwLT5maWxsUGF0aChwYXRoLnBsYXRmb3JtUGF0aCgpLCBtX2Rh
dGEtPnNoYWRvdy5jb2xvcik7CisgICAgICAgIHAtPnRyYW5zbGF0ZSgtbV9kYXRhLT5zaGFkb3cu
b2Zmc2V0KTsKICAgICB9CiAgICAgcC0+ZmlsbFBhdGgocGF0aC5wbGF0Zm9ybVBhdGgoKSwgUUNv
bG9yKGNvbG9yKSk7CiB9CkBAIC04NjksMzggKzkyNiwxMiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCBibHVyLCBj
b25zdAogICAgICAgICBtX2NvbW1vbi0+c3RhdGUuc2hhZG93U2l6ZSA9IEZsb2F0U2l6ZShzaXpl
LndpZHRoKCksIC1zaXplLmhlaWdodCgpKTsKICAgICB9CiAKLSAgICAvLyBIZXJlIHdlIGp1c3Qg
c3RvcmUgaW1wb3J0YW50IHNoYWRvdyBzdGF0ZXMuCi0KLSAgICBtX2RhdGEtPnNoYWRvd0JsdXJS
YWRpdXMgPSBxUm91bmQoYmx1cik7Ci0gICAgbV9kYXRhLT5zaGFkb3dPZmZzZXQgPSBRUG9pbnRG
KG1fY29tbW9uLT5zdGF0ZS5zaGFkb3dTaXplLndpZHRoKCksIG1fY29tbW9uLT5zdGF0ZS5zaGFk
b3dTaXplLmhlaWdodCgpKTsKLSAgICBtX2RhdGEtPnNoYWRvd0NvbG9yID0gY29sb3I7Ci0KLSAg
ICAvLyBUaGUgdHlwZSBvZiBzaGFkb3cgaXMgZGVjaWRlZCBieSB0aGUgYmx1ciByYWRpdXMsIHNo
YWRvdyBvZmZzZXQsIGFuZCBzaGFkb3cgY29sb3IuCi0KLSAgICBpZiAoIWNvbG9yLmlzVmFsaWQo
KSB8fCAhY29sb3IuYWxwaGEoKSkgewotICAgICAgICAvLyBDYW4ndCBwYWludCB0aGUgc2hhZG93
IHdpdGggaW52YWxpZCBvciBpbnZpc2libGUgY29sb3IuCi0gICAgICAgIG1fZGF0YS0+c2hhZG93
VHlwZSA9IEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6Tm9TaGFkb3c7Ci0gICAgfSBl
bHNlIHsKLSAgICAgICAgaWYgKGJsdXIgPiAwKSB7Ci0gICAgICAgICAgICAvLyBTaGFkb3cgaXMg
YWx3YXlzIGJsdXJyZWQsIGV2ZW4gdGhlIG9mZnNldCBpcyB6ZXJvLgotICAgICAgICAgICAgbV9k
YXRhLT5zaGFkb3dUeXBlID0gR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpCbHVyU2hh
ZG93OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1fZGF0YS0+c2hhZG93T2Zm
c2V0LmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gV2l0aG91dCBibHVyIGFuZCB6ZXJv
IG9mZnNldCBtZWFucyB0aGUgc2hhZG93IGlzIGZ1bGx5IGhpZGRlbi4KLSAgICAgICAgICAgICAg
ICBtX2RhdGEtPnNoYWRvd1R5cGUgPSBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6Ok5v
U2hhZG93OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoY29sb3Iu
aGFzQWxwaGEoKSkKLSAgICAgICAgICAgICAgICAgICAgbV9kYXRhLT5zaGFkb3dUeXBlID0gR3Jh
cGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpBbHBoYVNvbGlkU2hhZG93OwotICAgICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgbV9kYXRhLT5zaGFkb3dUeXBlID0gR3Jh
cGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpPcGFxdWVTb2xpZFNoYWRvdzsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfQotICAgIH0KKyAgICBtX2RhdGEtPnNoYWRvdyA9IENvbnRleHRTaGFk
b3dQYXJhbWV0ZXIoY29sb3IsIGJsdXIsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7CiB9
CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGVhclBsYXRmb3JtU2hhZG93KCkKIHsKLSAgICBt
X2RhdGEtPnNoYWRvd1R5cGUgPSBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6Ok5vU2hh
ZG93OworICAgIG1fZGF0YS0+c2hhZG93LmNsZWFyKCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64468</attachid>
            <date>2010-08-16 00:02:21 -0700</date>
            <delta_ts>2010-08-16 05:59:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44031-20100816000100.patch</filename>
            <type>text/plain</type>
            <size>11660</size>
            <attacher name="Ariya Hidayat">ariya.hidayat</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NmE2Y2RkNmIzZjdjZDgxODk5NDMyNGIxZGQ4ZGZhZTRmNWNmYTQwYi4uYzFhODU5NjJiYWM0MjU0
MmM4ZTNiZTI3YmM0NWNlOTcxM2QwZGI4OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMC0wOC0xNiAgQXJp
eWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBTYXZlIGFuZCByZXN0b3JlIHNoYWRvdyBzdGF0
ZSBpbiBHcmFwaGljc0NvbnRleHRRdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDQwMzEKKworICAgICAgICBUaGlzIGlzIG5lZWRlZCBhZnRlciByNjUz
NjIuCisgICAgICAgIFVzZSBhIG5ldyBjbGFzcyBDb250ZXh0U2hhZG93UGFyYW1ldGVyIHRvIHRy
YWNrIGFuZCBrZWVwIHRoZSBzaGFkb3cKKyAgICAgICAgc3RhdGUuIFdlIHVzZSB0aGlzIHJhdGhl
ciB0aGFuIHVzaW5nIEdyYXBoaWNzQ29udGV4dFN0YXRlIHRvIGFsbG93CisgICAgICAgIHBvc3Np
YmxlIG9wdGltaXphdGlvbnMgKHJpZ2h0IG5vdyBvbmx5IHRvIGRldGVybWluZSB0aGUgc2hhZG93
IHR5cGUsCisgICAgICAgIGJ1dCBpbiBmdXR1cmUgaXQgbWlnaHQgY292ZXIgdGhpbmdzIGxpa2Ug
Y2FjaGVkIHNjcmF0Y2ggaW1hZ2UsCisgICAgICAgIHBlcnNpc3RlbnQgc2hhZGVyLCBldGMpLgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGV4dFNoYWRvd1BhcmFtZXRlcjo6KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRleHRTaGFkb3dQYXJhbWV0ZXI6OkNvbnRleHRTaGFkb3dQYXJhbWV0ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGV4dFNoYWRvd1BhcmFtZXRlcjo6Y2xlYXIpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpoYXNTaGFkb3cpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpHcmFwaGlj
c0NvbnRleHRQbGF0Zm9ybVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpzYXZlUGxhdGZvcm1TdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OnJlc3RvcmVQbGF0Zm9ybVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6ZHJhd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3
TGluZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN0cm9rZUFyYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdDb252ZXhQb2x5Z29uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFBhdGgpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpmaWxsUm91bmRlZFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
OjpzZXRQbGF0Zm9ybVNoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmNsZWFyUGxhdGZvcm1TaGFkb3cpOgorCiAyMDEwLTA4LTE0ICBBcml5YSBIaWRheWF0ICA8YXJp
eWFAc2VuY2hhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAK
aW5kZXggZDIyMTMxZjU2MjUwN2U4ZTBjMDExMmUzYzEwYzQ3ZDEyMzNhZGIzNi4uZDMwZWE2NmY5
MTE5MjUzOTY0ZTAzZmQ5NDQ0ZjUzOWE4NjgyN2U2ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAKQEAgLTE2Nyw2ICsxNjcsNjMg
QEAgc3RhdGljIGlubGluZSBRdDo6RmlsbFJ1bGUgdG9RdEZpbGxSdWxlKFdpbmRSdWxlIHJ1bGUp
CiAgICAgcmV0dXJuIFF0OjpPZGRFdmVuRmlsbDsKIH0KIAorCisvLyBUaGlzIGlzIHRvIHRyYWNr
IGFuZCBrZWVwIHRoZSBzaGFkb3cgc3RhdGUuIFdlIHVzZSB0aGlzIHJhdGhlciB0aGFuCisvLyB1
c2luZyBHcmFwaGljc0NvbnRleHRTdGF0ZSB0byBhbGxvdyBwb3NzaWJsZSBvcHRpbWl6YXRpb25z
IChyaWdodCBub3cKKy8vIG9ubHkgdG8gZGV0ZXJtaW5lIHRoZSBzaGFkb3cgdHlwZSwgYnV0IGlu
IGZ1dHVyZSBpdCBtaWdodCBjb3ZlciB0aGluZ3MKKy8vIGxpa2UgY2FjaGVkIHNjcmF0Y2ggaW1h
Z2UsIHBlcnNpc3RlbnQgc2hhZGVyLCBldGMpLgorCitjbGFzcyBDb250ZXh0U2hhZG93UGFyYW1l
dGVyIHsKK3B1YmxpYzoKKyAgICBlbnVtIHsKKyAgICAgICAgTm9TaGFkb3csCisgICAgICAgIE9w
YXF1ZVNvbGlkU2hhZG93LAorICAgICAgICBBbHBoYVNvbGlkU2hhZG93LAorICAgICAgICBCbHVy
U2hhZG93CisgICAgfSB0eXBlOworCisgICAgUUNvbG9yIGNvbG9yOworICAgIGludCBibHVyUmFk
aXVzOworICAgIFFQb2ludEYgb2Zmc2V0OworCisgICAgQ29udGV4dFNoYWRvd1BhcmFtZXRlcigp
CisgICAgICAgIDogdHlwZShOb1NoYWRvdykKKyAgICAgICAgLCBibHVyUmFkaXVzKDApCisgICAg
eworICAgIH0KKworICAgIENvbnRleHRTaGFkb3dQYXJhbWV0ZXIoY29uc3QgUUNvbG9yJiBjLCBm
bG9hdCByLCBxcmVhbCBkeCwgcXJlYWwgZHkpCisgICAgICAgIDogY29sb3IoYykKKyAgICAgICAg
LCBibHVyUmFkaXVzKHFSb3VuZChyKSkKKyAgICAgICAgLCBvZmZzZXQoZHgsIGR5KQorICAgIHsK
KyAgICAgICAgLy8gVGhlIHR5cGUgb2Ygc2hhZG93IGlzIGRlY2lkZWQgYnkgdGhlIGJsdXIgcmFk
aXVzLCBzaGFkb3cgb2Zmc2V0LCBhbmQgc2hhZG93IGNvbG9yLgorICAgICAgICBpZiAoIWNvbG9y
LmlzVmFsaWQoKSB8fCAhY29sb3IuYWxwaGEoKSkgeworICAgICAgICAgICAgLy8gQ2FuJ3QgcGFp
bnQgdGhlIHNoYWRvdyB3aXRoIGludmFsaWQgb3IgaW52aXNpYmxlIGNvbG9yLgorICAgICAgICAg
ICAgdHlwZSA9IE5vU2hhZG93OworICAgICAgICB9IGVsc2UgaWYgKHIgPiAwKSB7CisgICAgICAg
ICAgICAvLyBTaGFkb3cgaXMgYWx3YXlzIGJsdXJyZWQsIGV2ZW4gdGhlIG9mZnNldCBpcyB6ZXJv
LgorICAgICAgICAgICAgdHlwZSA9IEJsdXJTaGFkb3c7CisgICAgICAgIH0gZWxzZSBpZiAob2Zm
c2V0LmlzTnVsbCgpKSB7CisgICAgICAgICAgICAvLyBXaXRob3V0IGJsdXIgYW5kIHplcm8gb2Zm
c2V0IG1lYW5zIHRoZSBzaGFkb3cgaXMgZnVsbHkgaGlkZGVuLgorICAgICAgICAgICAgdHlwZSA9
IE5vU2hhZG93OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGNvbG9yLmFscGhh
KCkgPiAwKQorICAgICAgICAgICAgICAgIHR5cGUgPSBBbHBoYVNvbGlkU2hhZG93OworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHR5cGUgPSBPcGFxdWVTb2xpZFNoYWRvdzsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIHZvaWQgY2xlYXIoKQorICAgIHsKKyAgICAgICAgdHlwZSA9
IE5vU2hhZG93OworICAgICAgICBjb2xvciA9IFFDb2xvcigpOworICAgICAgICBibHVyUmFkaXVz
ID0gMDsKKyAgICAgICAgb2Zmc2V0ID0gUVBvaW50RigpOworICAgIH0KK307CisKIGNsYXNzIEdy
YXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZSA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJs
aWM6CiAgICAgR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlKFFQYWludGVyKiBwYWludGVy
KTsKQEAgLTE5OSwxOSArMjU2LDEyIEBAIHB1YmxpYzoKICAgICAvLyBPbmx5IHVzZWQgYnkgU1ZH
IGZvciBub3cuCiAgICAgUVBhaW50ZXJQYXRoIGN1cnJlbnRQYXRoOwogCi0gICAgZW51bSB7Ci0g
ICAgICAgIE5vU2hhZG93LAotICAgICAgICBPcGFxdWVTb2xpZFNoYWRvdywKLSAgICAgICAgQWxw
aGFTb2xpZFNoYWRvdywKLSAgICAgICAgQmx1clNoYWRvdwotICAgIH0gc2hhZG93VHlwZTsKLSAg
ICBRQ29sb3Igc2hhZG93Q29sb3I7Ci0gICAgaW50IHNoYWRvd0JsdXJSYWRpdXM7Ci0gICAgUVBv
aW50RiBzaGFkb3dPZmZzZXQ7CisgICAgQ29udGV4dFNoYWRvd1BhcmFtZXRlciBzaGFkb3c7Cisg
ICAgUVN0YWNrPENvbnRleHRTaGFkb3dQYXJhbWV0ZXI+IHNoYWRvd1N0YWNrOwogCiAgICAgYm9v
bCBoYXNTaGFkb3coKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHNoYWRvd1R5cGUgIT0g
Tm9TaGFkb3c7CisgICAgICAgIHJldHVybiBzaGFkb3cudHlwZSAhPSBDb250ZXh0U2hhZG93UGFy
YW1ldGVyOjpOb1NoYWRvdzsKICAgICB9CiAKIHByaXZhdGU6CkBAIC0yMzcsOSArMjg3LDYgQEAg
R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVBy
aXZhdGUoUVBhaW50ZXIqIHApCiAgICAgICAgIHBhaW50ZXItPnNldFJlbmRlckhpbnQoUVBhaW50
ZXI6OlNtb290aFBpeG1hcFRyYW5zZm9ybSwgdHJ1ZSk7CiAgICAgfSBlbHNlCiAgICAgICAgIGFu
dGlBbGlhc2luZ0ZvclJlY3RzQW5kTGluZXMgPSBmYWxzZTsKLQotICAgIHNoYWRvd1R5cGUgPSBO
b1NoYWRvdzsKLSAgICBzaGFkb3dCbHVyUmFkaXVzID0gMDsKIH0KIAogR3JhcGhpY3NDb250ZXh0
UGxhdGZvcm1Qcml2YXRlOjp+R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlKCkKQEAgLTI4
NCw2ICszMzEsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2F2ZVBsYXRmb3JtU3RhdGUoKQog
ICAgIGlmICghbV9kYXRhLT5sYXllcnMuaXNFbXB0eSgpICYmICFtX2RhdGEtPmxheWVycy50b3Ao
KS0+YWxwaGFNYXNrLmlzTnVsbCgpKQogICAgICAgICArK21fZGF0YS0+bGF5ZXJzLnRvcCgpLT5z
YXZlQ291bnRlcjsKICAgICBtX2RhdGEtPnAoKS0+c2F2ZSgpOworICAgIG1fZGF0YS0+c2hhZG93
U3RhY2sucHVzaChtX2RhdGEtPnNoYWRvdyk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpy
ZXN0b3JlUGxhdGZvcm1TdGF0ZSgpCkBAIC0yOTgsNiArMzQ2LDExIEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0OjpyZXN0b3JlUGxhdGZvcm1TdGF0ZSgpCiAgICAgICAgIFFUcmFuc2Zvcm0gbWF0cml4
ID0gbV9jb21tb24tPnN0YXRlLnBhdGhUcmFuc2Zvcm07CiAgICAgICAgIG1fZGF0YS0+Y3VycmVu
dFBhdGggPSBtX2RhdGEtPmN1cnJlbnRQYXRoICogbWF0cml4OwogICAgIH0KKworICAgIGlmICht
X2RhdGEtPnNoYWRvd1N0YWNrLmlzRW1wdHkoKSkKKyAgICAgICAgbV9kYXRhLT5zaGFkb3cgPSBD
b250ZXh0U2hhZG93UGFyYW1ldGVyKCk7CisgICAgZWxzZQorICAgICAgICBtX2RhdGEtPnNoYWRv
dyA9IG1fZGF0YS0+c2hhZG93U3RhY2sucG9wKCk7CiB9CiAKIC8vIERyYXdzIGEgZmlsbGVkIHJl
Y3RhbmdsZSB3aXRoIGEgc3Ryb2tlZCBib3JkZXIuCkBAIC00MzYsOSArNDg5LDkgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQ6OnN0cm9rZUFyYyhjb25zdCBJbnRSZWN0JiByZWN0LCBpbnQgc3RhcnRB
bmdsZSwgaW50IGFuZ2xlU3AKIAogICAgIGlmIChtX2RhdGEtPmhhc1NoYWRvdygpKSB7CiAgICAg
ICAgIHAtPnNhdmUoKTsKLSAgICAgICAgcC0+dHJhbnNsYXRlKG1fZGF0YS0+c2hhZG93T2Zmc2V0
KTsKKyAgICAgICAgcC0+dHJhbnNsYXRlKG1fZGF0YS0+c2hhZG93Lm9mZnNldCk7CiAgICAgICAg
IFFQZW4gcGVuKHAtPnBlbigpKTsKLSAgICAgICAgcGVuLnNldENvbG9yKG1fZGF0YS0+c2hhZG93
Q29sb3IpOworICAgICAgICBwZW4uc2V0Q29sb3IobV9kYXRhLT5zaGFkb3cuY29sb3IpOwogICAg
ICAgICBwLT5zZXRQZW4ocGVuKTsKICAgICAgICAgcC0+ZHJhd0FyYyhyZWN0LCBzdGFydEFuZ2xl
LCBhbmdsZVNwYW4pOwogICAgICAgICBwLT5yZXN0b3JlKCk7CkBAIC00NjYsMTIgKzUxOSwxMiBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0NvbnZleFBvbHlnb24oc2l6ZV90IG5wb2ludHMs
IGNvbnN0IEZsb2F0UG9pbnQqIHBvaW50cwogICAgIHAtPnNldFJlbmRlckhpbnQoUVBhaW50ZXI6
OkFudGlhbGlhc2luZywgc2hvdWxkQW50aWFsaWFzKTsKICAgICBpZiAobV9kYXRhLT5oYXNTaGFk
b3coKSkgewogICAgICAgICBwLT5zYXZlKCk7Ci0gICAgICAgIHAtPnRyYW5zbGF0ZShtX2RhdGEt
PnNoYWRvd09mZnNldCk7CisgICAgICAgIHAtPnRyYW5zbGF0ZShtX2RhdGEtPnNoYWRvdy5vZmZz
ZXQpOwogICAgICAgICBpZiAocC0+YnJ1c2goKS5zdHlsZSgpICE9IFF0OjpOb0JydXNoKQotICAg
ICAgICAgICAgcC0+c2V0QnJ1c2goUUJydXNoKG1fZGF0YS0+c2hhZG93Q29sb3IpKTsKKyAgICAg
ICAgICAgIHAtPnNldEJydXNoKFFCcnVzaChtX2RhdGEtPnNoYWRvdy5jb2xvcikpOwogICAgICAg
ICBRUGVuIHBlbihwLT5wZW4oKSk7CiAgICAgICAgIGlmIChwZW4uc3R5bGUoKSAhPSBRdDo6Tm9Q
ZW4pIHsKLSAgICAgICAgICAgIHBlbi5zZXRDb2xvcihtX2RhdGEtPnNoYWRvd0NvbG9yKTsKKyAg
ICAgICAgICAgIHBlbi5zZXRDb2xvcihtX2RhdGEtPnNoYWRvdy5jb2xvcik7CiAgICAgICAgICAg
ICBwLT5zZXRQZW4ocGVuKTsKICAgICAgICAgfQogICAgICAgICBwLT5kcmF3Q29udmV4UG9seWdv
bihwb2x5Z29uKTsKQEAgLTUxNSw5ICs1NjgsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Zmls
bFBhdGgoKQogICAgIHBhdGguc2V0RmlsbFJ1bGUodG9RdEZpbGxSdWxlKGZpbGxSdWxlKCkpKTsK
IAogICAgIGlmIChtX2RhdGEtPmhhc1NoYWRvdygpKSB7Ci0gICAgICAgIHAtPnRyYW5zbGF0ZSht
X2RhdGEtPnNoYWRvd09mZnNldCk7Ci0gICAgICAgIHAtPmZpbGxQYXRoKHBhdGgsIG1fZGF0YS0+
c2hhZG93Q29sb3IpOwotICAgICAgICBwLT50cmFuc2xhdGUoLW1fZGF0YS0+c2hhZG93T2Zmc2V0
KTsKKyAgICAgICAgcC0+dHJhbnNsYXRlKG1fZGF0YS0+c2hhZG93Lm9mZnNldCk7CisgICAgICAg
IHAtPmZpbGxQYXRoKHBhdGgsIG1fZGF0YS0+c2hhZG93LmNvbG9yKTsKKyAgICAgICAgcC0+dHJh
bnNsYXRlKC1tX2RhdGEtPnNoYWRvdy5vZmZzZXQpOwogICAgIH0KICAgICBpZiAobV9jb21tb24t
PnN0YXRlLmZpbGxQYXR0ZXJuKSB7CiAgICAgICAgIEFmZmluZVRyYW5zZm9ybSBhZmZpbmU7CkBA
IC01NDMsMTEgKzU5NiwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aCgpCiAg
ICAgcGF0aC5zZXRGaWxsUnVsZSh0b1F0RmlsbFJ1bGUoZmlsbFJ1bGUoKSkpOwogCiAgICAgaWYg
KG1fZGF0YS0+aGFzU2hhZG93KCkpIHsKLSAgICAgICAgcC0+dHJhbnNsYXRlKG1fZGF0YS0+c2hh
ZG93T2Zmc2V0KTsKKyAgICAgICAgcC0+dHJhbnNsYXRlKG1fZGF0YS0+c2hhZG93Lm9mZnNldCk7
CiAgICAgICAgIFFQZW4gc2hhZG93UGVuKHBlbik7Ci0gICAgICAgIHNoYWRvd1Blbi5zZXRDb2xv
cihtX2RhdGEtPnNoYWRvd0NvbG9yKTsKKyAgICAgICAgc2hhZG93UGVuLnNldENvbG9yKG1fZGF0
YS0+c2hhZG93LmNvbG9yKTsKICAgICAgICAgcC0+c3Ryb2tlUGF0aChwYXRoLCBzaGFkb3dQZW4p
OwotICAgICAgICBwLT50cmFuc2xhdGUoLW1fZGF0YS0+c2hhZG93T2Zmc2V0KTsKKyAgICAgICAg
cC0+dHJhbnNsYXRlKC1tX2RhdGEtPnNoYWRvdy5vZmZzZXQpOwogICAgIH0KICAgICBpZiAobV9j
b21tb24tPnN0YXRlLnN0cm9rZVBhdHRlcm4pIHsKICAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGFm
ZmluZTsKQEAgLTY0OCwxMCArNzAxLDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVj
dChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAgICAgICAgIHNoYWRvd0ltYWdlID0gbmV3IFFJbWFn
ZShyb3VuZGVkSW50U2l6ZShub3JtYWxpemVkUmVjdC5zaXplKCkpLCBRSW1hZ2U6OkZvcm1hdF9B
UkdCMzJfUHJlbXVsdGlwbGllZCk7CiAgICAgICAgIHBTaGFkb3cgPSBuZXcgUVBhaW50ZXIoc2hh
ZG93SW1hZ2UpOwogICAgICAgICBzaGFkb3dEZXN0UmVjdCA9IG5vcm1hbGl6ZWRSZWN0OwotICAg
ICAgICBzaGFkb3dEZXN0UmVjdC50cmFuc2xhdGUobV9kYXRhLT5zaGFkb3dPZmZzZXQpOworICAg
ICAgICBzaGFkb3dEZXN0UmVjdC50cmFuc2xhdGUobV9kYXRhLT5zaGFkb3cub2Zmc2V0KTsKIAog
ICAgICAgICBwU2hhZG93LT5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9u
TW9kZV9Tb3VyY2UpOwotICAgICAgICBwU2hhZG93LT5maWxsUmVjdChzaGFkb3dJbWFnZS0+cmVj
dCgpLCBtX2RhdGEtPnNoYWRvd0NvbG9yKTsKKyAgICAgICAgcFNoYWRvdy0+ZmlsbFJlY3Qoc2hh
ZG93SW1hZ2UtPnJlY3QoKSwgbV9kYXRhLT5zaGFkb3cuY29sb3IpOwogICAgICAgICBwU2hhZG93
LT5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9EZXN0aW5hdGlv
bkluKTsKICAgICB9CiAKQEAgLTcwMCw3ICs3NTMsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZmlsbFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9y
UwogICAgIFFQYWludGVyKiBwID0gbV9kYXRhLT5wKCk7CiAKICAgICBpZiAobV9kYXRhLT5oYXNT
aGFkb3coKSkKLSAgICAgICAgcC0+ZmlsbFJlY3QoUVJlY3RGKHJlY3QpLnRyYW5zbGF0ZWQobV9k
YXRhLT5zaGFkb3dPZmZzZXQpLCBtX2RhdGEtPnNoYWRvd0NvbG9yKTsKKyAgICAgICAgcC0+Zmls
bFJlY3QoUVJlY3RGKHJlY3QpLnRyYW5zbGF0ZWQobV9kYXRhLT5zaGFkb3cub2Zmc2V0KSwgbV9k
YXRhLT5zaGFkb3cuY29sb3IpOwogCiAgICAgcC0+ZmlsbFJlY3QocmVjdCwgbV9kYXRhLT5zb2xp
ZENvbG9yKTsKIH0KQEAgLTcxMyw5ICs3NjYsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Zmls
bFJvdW5kZWRSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEludFNpemUmIHRvcExlZgog
ICAgIFBhdGggcGF0aCA9IFBhdGg6OmNyZWF0ZVJvdW5kZWRSZWN0YW5nbGUocmVjdCwgdG9wTGVm
dCwgdG9wUmlnaHQsIGJvdHRvbUxlZnQsIGJvdHRvbVJpZ2h0KTsKICAgICBRUGFpbnRlciogcCA9
IG1fZGF0YS0+cCgpOwogICAgIGlmIChtX2RhdGEtPmhhc1NoYWRvdygpKSB7Ci0gICAgICAgIHAt
PnRyYW5zbGF0ZShtX2RhdGEtPnNoYWRvd09mZnNldCk7Ci0gICAgICAgIHAtPmZpbGxQYXRoKHBh
dGgucGxhdGZvcm1QYXRoKCksIG1fZGF0YS0+c2hhZG93Q29sb3IpOwotICAgICAgICBwLT50cmFu
c2xhdGUoLW1fZGF0YS0+c2hhZG93T2Zmc2V0KTsKKyAgICAgICAgcC0+dHJhbnNsYXRlKG1fZGF0
YS0+c2hhZG93Lm9mZnNldCk7CisgICAgICAgIHAtPmZpbGxQYXRoKHBhdGgucGxhdGZvcm1QYXRo
KCksIG1fZGF0YS0+c2hhZG93LmNvbG9yKTsKKyAgICAgICAgcC0+dHJhbnNsYXRlKC1tX2RhdGEt
PnNoYWRvdy5vZmZzZXQpOwogICAgIH0KICAgICBwLT5maWxsUGF0aChwYXRoLnBsYXRmb3JtUGF0
aCgpLCBRQ29sb3IoY29sb3IpKTsKIH0KQEAgLTg2Nyw0MCArOTIwLDE1IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0
IGJsdXIsIGNvbnN0CiAgICAgICAgIC8vIE1lYW5pbmcgdGhhdCB0aGlzIGdyYXBoaWNzIGNvbnRl
eHQgaXMgYXNzb2NpYXRlZCB3aXRoIGEgQ2FudmFzUmVuZGVyaW5nQ29udGV4dAogICAgICAgICAv
LyBXZSBmbGlwIHRoZSBoZWlnaHQgc2luY2UgQ0cgYW5kIEhUTUw1IENhbnZhcyBoYXZlIG9wcG9z
aXRlIFkgYXhpcwogICAgICAgICBtX2NvbW1vbi0+c3RhdGUuc2hhZG93U2l6ZSA9IEZsb2F0U2l6
ZShzaXplLndpZHRoKCksIC1zaXplLmhlaWdodCgpKTsKLSAgICB9Ci0KLSAgICAvLyBIZXJlIHdl
IGp1c3Qgc3RvcmUgaW1wb3J0YW50IHNoYWRvdyBzdGF0ZXMuCi0KLSAgICBtX2RhdGEtPnNoYWRv
d0JsdXJSYWRpdXMgPSBxUm91bmQoYmx1cik7Ci0gICAgbV9kYXRhLT5zaGFkb3dPZmZzZXQgPSBR
UG9pbnRGKG1fY29tbW9uLT5zdGF0ZS5zaGFkb3dTaXplLndpZHRoKCksIG1fY29tbW9uLT5zdGF0
ZS5zaGFkb3dTaXplLmhlaWdodCgpKTsKLSAgICBtX2RhdGEtPnNoYWRvd0NvbG9yID0gY29sb3I7
Ci0KLSAgICAvLyBUaGUgdHlwZSBvZiBzaGFkb3cgaXMgZGVjaWRlZCBieSB0aGUgYmx1ciByYWRp
dXMsIHNoYWRvdyBvZmZzZXQsIGFuZCBzaGFkb3cgY29sb3IuCi0KLSAgICBpZiAoIWNvbG9yLmlz
VmFsaWQoKSB8fCAhY29sb3IuYWxwaGEoKSkgewotICAgICAgICAvLyBDYW4ndCBwYWludCB0aGUg
c2hhZG93IHdpdGggaW52YWxpZCBvciBpbnZpc2libGUgY29sb3IuCi0gICAgICAgIG1fZGF0YS0+
c2hhZG93VHlwZSA9IEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6Tm9TaGFkb3c7Cisg
ICAgICAgIG1fZGF0YS0+c2hhZG93ID0gQ29udGV4dFNoYWRvd1BhcmFtZXRlcihjb2xvciwgYmx1
ciwgc2l6ZS53aWR0aCgpLCAtc2l6ZS5oZWlnaHQoKSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAg
aWYgKGJsdXIgPiAwKSB7Ci0gICAgICAgICAgICAvLyBTaGFkb3cgaXMgYWx3YXlzIGJsdXJyZWQs
IGV2ZW4gdGhlIG9mZnNldCBpcyB6ZXJvLgotICAgICAgICAgICAgbV9kYXRhLT5zaGFkb3dUeXBl
ID0gR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpCbHVyU2hhZG93OwotICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgaWYgKG1fZGF0YS0+c2hhZG93T2Zmc2V0LmlzTnVsbCgpKSB7
Ci0gICAgICAgICAgICAgICAgLy8gV2l0aG91dCBibHVyIGFuZCB6ZXJvIG9mZnNldCBtZWFucyB0
aGUgc2hhZG93IGlzIGZ1bGx5IGhpZGRlbi4KLSAgICAgICAgICAgICAgICBtX2RhdGEtPnNoYWRv
d1R5cGUgPSBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6Ok5vU2hhZG93OwotICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoY29sb3IuaGFzQWxwaGEoKSkKLSAg
ICAgICAgICAgICAgICAgICAgbV9kYXRhLT5zaGFkb3dUeXBlID0gR3JhcGhpY3NDb250ZXh0UGxh
dGZvcm1Qcml2YXRlOjpBbHBoYVNvbGlkU2hhZG93OwotICAgICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICAgICAgbV9kYXRhLT5zaGFkb3dUeXBlID0gR3JhcGhpY3NDb250ZXh0UGxh
dGZvcm1Qcml2YXRlOjpPcGFxdWVTb2xpZFNoYWRvdzsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQorICAgICAgICBtX2RhdGEtPnNoYWRvdyA9IENvbnRleHRTaGFkb3dQYXJhbWV0ZXIoY29sb3Is
IGJsdXIsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7CiAgICAgfQogfQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6Y2xlYXJQbGF0Zm9ybVNoYWRvdygpCiB7Ci0gICAgbV9kYXRhLT5zaGFk
b3dUeXBlID0gR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpOb1NoYWRvdzsKKyAgICBt
X2RhdGEtPnNoYWRvdy5jbGVhcigpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5U
cmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>