<?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>44006</bug_id>
          
          <creation_ts>2010-08-13 23:01:23 -0700</creation_ts>
          <short_desc>[Qt] Refactor shadow state handling in GraphicsContextQt</short_desc>
          <delta_ts>2010-08-14 01:24:06 -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</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>34479</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ariya Hidayat">ariya.hidayat</reporter>
          <assigned_to name="Ariya Hidayat">ariya.hidayat</assigned_to>
          <cc>hausmann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>264631</commentid>
    <comment_count>0</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-13 23:01:23 -0700</bug_when>
    <thetext>Instead of repeatedly using getShadow(), the shadow state handling should be implemented in setPlatformShadow().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264646</commentid>
    <comment_count>1</comment_count>
      <attachid>64412</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-14 00:18:15 -0700</bug_when>
    <thetext>Created attachment 64412
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264648</commentid>
    <comment_count>2</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-14 00:23:31 -0700</bug_when>
    <thetext>The patch is just the slightly minor version from Patch 1 in https://bugs.webkit.org/show_bug.cgi?id=34479, which I rolled out because it breaks:

canvas/philip/tests/2d.shadow.enable.blur.html
canvas/philip/tests/2d.shadow.offset.positiveX.html
canvas/philip/tests/2d.shadow.offset.positiveY.html
fast/canvas/canvas-shadow.html

Now the problem is tackled propery. The small diff against the previous is:

diff --git a/WebCore/platform/graphics/qt/GraphicsContextQt.cpp b/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
index a409328..94e6f67 100644
--- a/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
+++ b/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
@@ -665,7 +665,7 @@ void GraphicsContext::fillRect(const FloatRect&amp; rect)
         shadowDestRect.translate(m_data-&gt;shadowOffset);
 
         pShadow-&gt;setCompositionMode(QPainter::CompositionMode_Source);
-        pShadow-&gt;fillRect(shadowDestRect, m_data-&gt;shadowColor);
+        pShadow-&gt;fillRect(shadowImage-&gt;rect(), m_data-&gt;shadowColor);
         pShadow-&gt;setCompositionMode(QPainter::CompositionMode_DestinationIn);
     }
 
@@ -895,7 +895,7 @@ void GraphicsContext::setPlatformShadow(const FloatSize&amp; size, float blur, const
         // Can&apos;t paint the shadow with invalid or invisible color.
         m_data-&gt;shadowType = GraphicsContextPlatformPrivate::NoShadow;
     } else {
-        if (blur &gt;= 1) {
+        if (blur &gt; 0) {
             // Shadow is always blurred, even the offset is zero.
             m_data-&gt;shadowType = GraphicsContextPlatformPrivate::BlurShadow;
         } else {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264657</commentid>
    <comment_count>3</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-14 01:24:06 -0700</bug_when>
    <thetext>Manually committed r65362: http://trac.webkit.org/changeset/65362</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64412</attachid>
            <date>2010-08-14 00:18:15 -0700</date>
            <delta_ts>2010-08-14 00:46:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44006-20100814001656.patch</filename>
            <type>text/plain</type>
            <size>14955</size>
            <attacher name="Ariya Hidayat">ariya.hidayat</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDkxMDI4NGFiZDM2MjllOGM0ZmJhYjJlNTIxOTkwOTE2MjdkMjQyNS4uZGIzMjY2YTJhNjhmZTBh
NzM3ZjU1YjU0NzM3NmY0OTFmZjQ3MTZkYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMC0wOC0xNCAgQXJp
eWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBSZWZhY3RvciBzaGFkb3cgc3RhdGUgaGFuZGxp
bmcgaW4gR3JhcGhpY3NDb250ZXh0UXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ0MDA2CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9H
cmFwaGljc0NvbnRleHRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRQ
bGF0Zm9ybVByaXZhdGU6Oik6IEFkZGVkIHNoYWRvdyBzdGF0ZXMgYXMKKyAgICAgICAgbWVtYmVy
IHZhcmlhYmxlcy4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJp
dmF0ZTo6aGFzU2hhZG93KTogQ29udmVuaWVudAorICAgICAgICBmdW5jdGlvbiB0byBjaGVjayB3
aGV0aGVyIHRoZXJlIGlzIHNoYWRvdyBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6OkdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KTogVXNlIHNoYWRv
dyBzdGF0ZXMgaW5zdGVhZCBvZgorICAgICAgICBjYWxsaW5nIGdldFNoYWRvdy4KKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUpOiBkaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlQXJjKTogZGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdDb252ZXhQb2x5Z29uKTogZGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxQYXRoKTogZGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgpOiBkaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QpOiBSZW1vdmVzIHRoZSB1c2Ugb2YgaGVs
cGVyIGZ1bmN0aW9uCisgICAgICAgIGRyYXdCb3JkZXJsZXNzUmVjdFNoYWRvdyBhcyB0aGUgY29k
ZSBhbHJlYWR5IGJlY29tZXMgYSBsb3Qgc2ltcGxlci4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0KTogUmVtb3ZlcyB0aGUgdXNlIG9mIGhlbHBlcgor
ICAgICAgICBmdW5jdGlvbiBkcmF3RmlsbGVkU2hhZG93UGF0aCBhcyB0aGUgY29kZSBhbHJlYWR5
IGJlY29tZXMgYSBsb3Qgc2ltcGxlci4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6c2V0UGxhdGZvcm1TaGFkb3cpOiBTdG9yZSBzaGFkb3cgc3RhdGVzCisgICAgICAgIGFuZCBm
aW5kIG91dCB0aGUgc2hhZG93IHR5cGUgKGNvbXBsZXhpdHkpIGZvciBmdXR1cmUgdXNlLgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpjbGVhclBsYXRmb3JtU2hhZG93KTogUmVz
ZXQgc2hhZG93IHN0YXRlcy4KKwogMjAxMC0wOC0xMyAgTGVhbmRybyBQZXJlaXJhICA8bGVhbmRy
b0Bwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBbRUZMXSBVbnJldmlld2VkIGJ1aWxkIGZpeC4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0
UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5j
cHAKaW5kZXggY2MzMzFiYzgzYzFlODZkOWY1ZDA4NzIwOGQwN2RiZTYzNzhjNzlmYi4uOTRlNmY2
N2RkMTRjNjgxNWM1MmQzNDFiMDYzODQ0OTNkZDdmMGY1OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAKQEAgLTE5OSw2ICsxOTks
MjEgQEAgcHVibGljOgogICAgIC8vIE9ubHkgdXNlZCBieSBTVkcgZm9yIG5vdy4KICAgICBRUGFp
bnRlclBhdGggY3VycmVudFBhdGg7CiAKKyAgICBlbnVtIHsKKyAgICAgICAgTm9TaGFkb3csCisg
ICAgICAgIE9wYXF1ZVNvbGlkU2hhZG93LAorICAgICAgICBBbHBoYVNvbGlkU2hhZG93LAorICAg
ICAgICBCbHVyU2hhZG93CisgICAgfSBzaGFkb3dUeXBlOworICAgIFFDb2xvciBzaGFkb3dDb2xv
cjsKKyAgICBpbnQgc2hhZG93Qmx1clJhZGl1czsKKyAgICBRUG9pbnRGIHNoYWRvd09mZnNldDsK
KworICAgIGJvb2wgaGFzU2hhZG93KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBzaGFk
b3dUeXBlICE9IE5vU2hhZG93OworICAgIH0KKwogcHJpdmF0ZToKICAgICBRUGFpbnRlciogcGFp
bnRlcjsKIH07CkBAIC0yMjIsNiArMjM3LDkgQEAgR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2
YXRlOjpHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGUoUVBhaW50ZXIqIHApCiAgICAgICAg
IHBhaW50ZXItPnNldFJlbmRlckhpbnQoUVBhaW50ZXI6OlNtb290aFBpeG1hcFRyYW5zZm9ybSwg
dHJ1ZSk7CiAgICAgfSBlbHNlCiAgICAgICAgIGFudGlBbGlhc2luZ0ZvclJlY3RzQW5kTGluZXMg
PSBmYWxzZTsKKworICAgIHNoYWRvd1R5cGUgPSBOb1NoYWRvdzsKKyAgICBzaGFkb3dCbHVyUmFk
aXVzID0gMDsKIH0KIAogR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjp+R3JhcGhpY3ND
b250ZXh0UGxhdGZvcm1Qcml2YXRlKCkKQEAgLTI5MiwxNiArMzEwLDExIEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIGNvbnN0IGJvb2wg
YW50aUFsaWFzID0gcC0+dGVzdFJlbmRlckhpbnQoUVBhaW50ZXI6OkFudGlhbGlhc2luZyk7CiAg
ICAgcC0+c2V0UmVuZGVySGludChRUGFpbnRlcjo6QW50aWFsaWFzaW5nLCBtX2RhdGEtPmFudGlB
bGlhc2luZ0ZvclJlY3RzQW5kTGluZXMpOwogCi0gICAgaWYgKG1fY29tbW9uLT5zdGF0ZS5zaGFk
b3dDb2xvci5pc1ZhbGlkKCkpIHsKLSAgICAgICAgRmxvYXRTaXplIHNoYWRvd1NpemU7Ci0gICAg
ICAgIGZsb2F0IHNoYWRvd0JsdXI7Ci0gICAgICAgIENvbG9yIHNoYWRvd0NvbG9yOwotICAgICAg
ICBpZiAoZ2V0U2hhZG93KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKSkgewot
ICAgICAgICAgICAgSW50UmVjdCBzaGFkb3dSZWN0ID0gcmVjdDsKLSAgICAgICAgICAgIHNoYWRv
d1JlY3QubW92ZShzaGFkb3dTaXplLndpZHRoKCksIHNoYWRvd1NpemUuaGVpZ2h0KCkpOwotICAg
ICAgICAgICAgc2hhZG93UmVjdC5pbmZsYXRlKHN0YXRpY19jYXN0PGludD4ocC0+cGVuKCkud2lk
dGhGKCkpKTsKLSAgICAgICAgICAgIHAtPmZpbGxSZWN0KHNoYWRvd1JlY3QsIFFDb2xvcihzaGFk
b3dDb2xvcikpOwotICAgICAgICB9CisgICAgaWYgKG1fZGF0YS0+aGFzU2hhZG93KCkpIHsKKyAg
ICAgICAgSW50UmVjdCBzaGFkb3dSZWN0ID0gcmVjdDsKKyAgICAgICAgc2hhZG93UmVjdC5tb3Zl
KG1fZGF0YS0+c2hhZG93T2Zmc2V0LngoKSwgbV9kYXRhLT5zaGFkb3dPZmZzZXQueSgpKTsKKyAg
ICAgICAgc2hhZG93UmVjdC5pbmZsYXRlKHN0YXRpY19jYXN0PGludD4ocC0+cGVuKCkud2lkdGhG
KCkpKTsKKyAgICAgICAgcC0+ZmlsbFJlY3Qoc2hhZG93UmVjdCwgbV9kYXRhLT5zaGFkb3dDb2xv
cik7CiAgICAgfQogCiAgICAgcC0+ZHJhd1JlY3QocmVjdCk7CkBAIC0zMzEsMTUgKzM0NCwxNCBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUoY29uc3QgSW50UG9pbnQmIHBvaW50MSwg
Y29uc3QgSW50UG9pbnQmIHBvaW50MikKICAgICBwLT5zZXRSZW5kZXJIaW50KFFQYWludGVyOjpB
bnRpYWxpYXNpbmcsIG1fZGF0YS0+YW50aUFsaWFzaW5nRm9yUmVjdHNBbmRMaW5lcyk7CiAgICAg
YWRqdXN0TGluZVRvUGl4ZWxCb3VuZGFyaWVzKHAxLCBwMiwgd2lkdGgsIHN0eWxlKTsKIAotICAg
IEZsb2F0U2l6ZSBzaGFkb3dTaXplOwotICAgIGZsb2F0IHNoYWRvd0JsdXI7Ci0gICAgQ29sb3Ig
c2hhZG93Q29sb3I7Ci0gICAgaWYgKHRleHREcmF3aW5nTW9kZSgpID09IGNUZXh0RmlsbCAmJiBn
ZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpKSB7Ci0gICAgICAg
IHAtPnNhdmUoKTsKLSAgICAgICAgcC0+dHJhbnNsYXRlKHNoYWRvd1NpemUud2lkdGgoKSwgc2hh
ZG93U2l6ZS5oZWlnaHQoKSk7Ci0gICAgICAgIHAtPnNldFBlbihzaGFkb3dDb2xvcik7Ci0gICAg
ICAgIHAtPmRyYXdMaW5lKHAxLCBwMik7Ci0gICAgICAgIHAtPnJlc3RvcmUoKTsKKyAgICBpZiAo
bV9kYXRhLT5oYXNTaGFkb3coKSkgeworICAgICAgICBpZiAodGV4dERyYXdpbmdNb2RlKCkgPT0g
Y1RleHRGaWxsKSB7CisgICAgICAgICAgICBwLT5zYXZlKCk7CisgICAgICAgICAgICBwLT50cmFu
c2xhdGUobV9kYXRhLT5zaGFkb3dPZmZzZXQpOworICAgICAgICAgICAgcC0+c2V0UGVuKG1fZGF0
YS0+c2hhZG93Q29sb3IpOworICAgICAgICAgICAgcC0+ZHJhd0xpbmUocDEsIHAyKTsKKyAgICAg
ICAgICAgIHAtPnJlc3RvcmUoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGludCBwYXRXaWR0
aCA9IDA7CkBAIC00MzMsMTYgKzQ0NSwxNCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tl
QXJjKGNvbnN0IEludFJlY3QmIHJlY3QsIGludCBzdGFydEFuZ2xlLCBpbnQgYW5nbGVTcAogICAg
IGNvbnN0IGJvb2wgYW50aUFsaWFzID0gcC0+dGVzdFJlbmRlckhpbnQoUVBhaW50ZXI6OkFudGlh
bGlhc2luZyk7CiAgICAgcC0+c2V0UmVuZGVySGludChRUGFpbnRlcjo6QW50aWFsaWFzaW5nLCB0
cnVlKTsKIAotICAgIEZsb2F0U2l6ZSBzaGFkb3dTaXplOwotICAgIGZsb2F0IHNoYWRvd0JsdXI7
Ci0gICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgc3RhcnRBbmdsZSAqPSAxNjsKICAgICBhbmds
ZVNwYW4gKj0gMTY7Ci0gICAgaWYgKGdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBz
aGFkb3dDb2xvcikpIHsKKworICAgIGlmIChtX2RhdGEtPmhhc1NoYWRvdygpKSB7CiAgICAgICAg
IHAtPnNhdmUoKTsKLSAgICAgICAgcC0+dHJhbnNsYXRlKHNoYWRvd1NpemUud2lkdGgoKSwgc2hh
ZG93U2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIHAtPnRyYW5zbGF0ZShtX2RhdGEtPnNoYWRvd09m
ZnNldCk7CiAgICAgICAgIFFQZW4gcGVuKHAtPnBlbigpKTsKLSAgICAgICAgcGVuLnNldENvbG9y
KHNoYWRvd0NvbG9yKTsKKyAgICAgICAgcGVuLnNldENvbG9yKG1fZGF0YS0+c2hhZG93Q29sb3Ip
OwogICAgICAgICBwLT5zZXRQZW4ocGVuKTsKICAgICAgICAgcC0+ZHJhd0FyYyhyZWN0LCBzdGFy
dEFuZ2xlLCBhbmdsZVNwYW4pOwogICAgICAgICBwLT5yZXN0b3JlKCk7CkBAIC00NjgsMTcgKzQ3
OCwxNCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0NvbnZleFBvbHlnb24oc2l6ZV90IG5w
b2ludHMsIGNvbnN0IEZsb2F0UG9pbnQqIHBvaW50cwogICAgIFFQYWludGVyKiBwID0gbV9kYXRh
LT5wKCk7CiAgICAgcC0+c2F2ZSgpOwogICAgIHAtPnNldFJlbmRlckhpbnQoUVBhaW50ZXI6OkFu
dGlhbGlhc2luZywgc2hvdWxkQW50aWFsaWFzKTsKLSAgICBGbG9hdFNpemUgc2hhZG93U2l6ZTsK
LSAgICBmbG9hdCBzaGFkb3dCbHVyOwotICAgIENvbG9yIHNoYWRvd0NvbG9yOwotICAgIGlmIChn
ZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpKSB7CisgICAgaWYg
KG1fZGF0YS0+aGFzU2hhZG93KCkpIHsKICAgICAgICAgcC0+c2F2ZSgpOwotICAgICAgICBwLT50
cmFuc2xhdGUoc2hhZG93U2l6ZS53aWR0aCgpLCBzaGFkb3dTaXplLmhlaWdodCgpKTsKKyAgICAg
ICAgcC0+dHJhbnNsYXRlKG1fZGF0YS0+c2hhZG93T2Zmc2V0KTsKICAgICAgICAgaWYgKHAtPmJy
dXNoKCkuc3R5bGUoKSAhPSBRdDo6Tm9CcnVzaCkKLSAgICAgICAgICAgIHAtPnNldEJydXNoKFFC
cnVzaChzaGFkb3dDb2xvcikpOworICAgICAgICAgICAgcC0+c2V0QnJ1c2goUUJydXNoKG1fZGF0
YS0+c2hhZG93Q29sb3IpKTsKICAgICAgICAgUVBlbiBwZW4ocC0+cGVuKCkpOwogICAgICAgICBp
ZiAocGVuLnN0eWxlKCkgIT0gUXQ6Ok5vUGVuKSB7Ci0gICAgICAgICAgICBwZW4uc2V0Q29sb3Io
c2hhZG93Q29sb3IpOworICAgICAgICAgICAgcGVuLnNldENvbG9yKG1fZGF0YS0+c2hhZG93Q29s
b3IpOwogICAgICAgICAgICAgcC0+c2V0UGVuKHBlbik7CiAgICAgICAgIH0KICAgICAgICAgcC0+
ZHJhd0NvbnZleFBvbHlnb24ocG9seWdvbik7CkBAIC01MTIsMTggKzUxOSw2IEBAIFFQZW4gR3Jh
cGhpY3NDb250ZXh0OjpwZW4oKQogICAgIHJldHVybiBwLT5wZW4oKTsKIH0KIAotc3RhdGljIHZv
aWQgaW5saW5lIGRyYXdGaWxsZWRTaGFkb3dQYXRoKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwg
UVBhaW50ZXIqIHAsIGNvbnN0IFFQYWludGVyUGF0aCYgcGF0aCkKLXsKLSAgICBGbG9hdFNpemUg
c2hhZG93U2l6ZTsKLSAgICBmbG9hdCBzaGFkb3dCbHVyOwotICAgIENvbG9yIHNoYWRvd0NvbG9y
OwotICAgIGlmIChjb250ZXh0LT5nZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hh
ZG93Q29sb3IpKSB7Ci0gICAgICAgIHAtPnRyYW5zbGF0ZShzaGFkb3dTaXplLndpZHRoKCksIHNo
YWRvd1NpemUuaGVpZ2h0KCkpOwotICAgICAgICBwLT5maWxsUGF0aChwYXRoLCBRQnJ1c2goc2hh
ZG93Q29sb3IpKTsKLSAgICAgICAgcC0+dHJhbnNsYXRlKC1zaGFkb3dTaXplLndpZHRoKCksIC1z
aGFkb3dTaXplLmhlaWdodCgpKTsKLSAgICB9Ci19Ci0KIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpm
aWxsUGF0aCgpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKQEAgLTUzMyw3ICs1Mjgs
MTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxQYXRoKCkKICAgICBRUGFpbnRlclBhdGgm
IHBhdGggPSBtX2RhdGEtPmN1cnJlbnRQYXRoOyAvLyBBdm9pZCBkZXRhY2hpbmcgdGhlIFFQYWlu
dGVyUGF0aAogICAgIHBhdGguc2V0RmlsbFJ1bGUodG9RdEZpbGxSdWxlKGZpbGxSdWxlKCkpKTsK
IAotICAgIGRyYXdGaWxsZWRTaGFkb3dQYXRoKHRoaXMsIHAsIHBhdGgpOworICAgIGlmIChtX2Rh
dGEtPmhhc1NoYWRvdygpKSB7CisgICAgICAgIHAtPnRyYW5zbGF0ZShtX2RhdGEtPnNoYWRvd09m
ZnNldCk7CisgICAgICAgIHAtPmZpbGxQYXRoKHBhdGgsIG1fZGF0YS0+c2hhZG93Q29sb3IpOwor
ICAgICAgICBwLT50cmFuc2xhdGUoLW1fZGF0YS0+c2hhZG93T2Zmc2V0KTsKKyAgICB9CiAgICAg
aWYgKG1fY29tbW9uLT5zdGF0ZS5maWxsUGF0dGVybikgewogICAgICAgICBBZmZpbmVUcmFuc2Zv
cm0gYWZmaW5lOwogICAgICAgICBwLT5maWxsUGF0aChwYXRoLCBRQnJ1c2gobV9jb21tb24tPnN0
YXRlLmZpbGxQYXR0ZXJuLT5jcmVhdGVQbGF0Zm9ybVBhdHRlcm4oYWZmaW5lKSkpOwpAQCAtNTU3
LDE2ICs1NTYsMTIgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgoKQogICAgIFFQ
YWludGVyUGF0aCYgcGF0aCA9IG1fZGF0YS0+Y3VycmVudFBhdGg7IC8vIEF2b2lkIGRldGFjaGlu
ZyB0aGUgUVBhaW50ZXJQYXRoCiAgICAgcGF0aC5zZXRGaWxsUnVsZSh0b1F0RmlsbFJ1bGUoZmls
bFJ1bGUoKSkpOwogCi0gICAgRmxvYXRTaXplIHNoYWRvd1NpemU7Ci0gICAgZmxvYXQgc2hhZG93
Qmx1cjsKLSAgICBDb2xvciBzaGFkb3dDb2xvcjsKLSAgICBpZiAoZ2V0U2hhZG93KHNoYWRvd1Np
emUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKSkgewotICAgICAgICBRVHJhbnNmb3JtIHQocC0+
d29ybGRUcmFuc2Zvcm0oKSk7Ci0gICAgICAgIHAtPnRyYW5zbGF0ZShzaGFkb3dTaXplLndpZHRo
KCksIHNoYWRvd1NpemUuaGVpZ2h0KCkpOworICAgIGlmIChtX2RhdGEtPmhhc1NoYWRvdygpKSB7
CisgICAgICAgIHAtPnRyYW5zbGF0ZShtX2RhdGEtPnNoYWRvd09mZnNldCk7CiAgICAgICAgIFFQ
ZW4gc2hhZG93UGVuKHBlbik7Ci0gICAgICAgIHNoYWRvd1Blbi5zZXRDb2xvcihzaGFkb3dDb2xv
cik7CisgICAgICAgIHNoYWRvd1Blbi5zZXRDb2xvcihtX2RhdGEtPnNoYWRvd0NvbG9yKTsKICAg
ICAgICAgcC0+c3Ryb2tlUGF0aChwYXRoLCBzaGFkb3dQZW4pOwotICAgICAgICBwLT5zZXRXb3Js
ZFRyYW5zZm9ybSh0KTsKKyAgICAgICAgcC0+dHJhbnNsYXRlKC1tX2RhdGEtPnNoYWRvd09mZnNl
dCk7CiAgICAgfQogICAgIGlmIChtX2NvbW1vbi0+c3RhdGUuc3Ryb2tlUGF0dGVybikgewogICAg
ICAgICBBZmZpbmVUcmFuc2Zvcm0gYWZmaW5lOwpAQCAtNTg0LDE4ICs1NzksNiBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aCgpCiAgICAgbV9kYXRhLT5jdXJyZW50UGF0aCA9IFFQ
YWludGVyUGF0aCgpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgZHJhd0JvcmRlcmxlc3NSZWN0
U2hhZG93KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgUVBhaW50ZXIqIHAsIGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCkKLXsKLSAgICBGbG9hdFNpemUgc2hhZG93U2l6ZTsKLSAgICBmbG9hdCBzaGFk
b3dCbHVyOwotICAgIENvbG9yIHNoYWRvd0NvbG9yOwotICAgIGlmIChjb250ZXh0LT5nZXRTaGFk
b3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpKSB7Ci0gICAgICAgIEZsb2F0
UmVjdCBzaGFkb3dSZWN0KHJlY3QpOwotICAgICAgICBzaGFkb3dSZWN0Lm1vdmUoc2hhZG93U2l6
ZS53aWR0aCgpLCBzaGFkb3dTaXplLmhlaWdodCgpKTsKLSAgICAgICAgcC0+ZmlsbFJlY3Qoc2hh
ZG93UmVjdCwgUUNvbG9yKHNoYWRvd0NvbG9yKSk7Ci0gICAgfQotfQotCiBzdGF0aWMgaW5saW5l
IHZvaWQgZHJhd1JlcGVhdFBhdHRlcm4oUVBhaW50ZXIqIHAsIFFQaXhtYXAqIGltYWdlLCBjb25z
dCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IGJvb2wgcmVwZWF0WCwgY29uc3QgYm9vbCByZXBlYXRZ
KQogewogICAgIC8vIFBhdHRlcm5zIG11c3QgYmUgcGFpbnRlZCBzbyB0aGF0IHRoZSB0b3AgbGVm
dCBvZiB0aGUgZmlyc3QgaW1hZ2UgaXMgYW5jaG9yZWQgYXQKQEAgLTY3MSwyMiArNjU0LDE4IEBA
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAg
ICAgUVBhaW50ZXIqIHAgPSBtX2RhdGEtPnAoKTsKICAgICBGbG9hdFJlY3Qgbm9ybWFsaXplZFJl
Y3QgPSByZWN0Lm5vcm1hbGl6ZWQoKTsKIAotICAgIEZsb2F0U2l6ZSBzaGFkb3dTaXplOwotICAg
IGZsb2F0IHNoYWRvd0JsdXI7Ci0gICAgQ29sb3Igc2hhZG93Q29sb3I7Ci0gICAgYm9vbCBoYXNT
aGFkb3cgPSBnZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpOwot
ICAgIEZsb2F0UmVjdCBzaGFkb3dEZXN0UmVjdDsKKyAgICBRUmVjdEYgc2hhZG93RGVzdFJlY3Q7
CiAgICAgUUltYWdlKiBzaGFkb3dJbWFnZSA9IDA7CiAgICAgUVBhaW50ZXIqIHBTaGFkb3cgPSAw
OwogCi0gICAgaWYgKGhhc1NoYWRvdykgeworICAgIGlmIChtX2RhdGEtPmhhc1NoYWRvdygpKSB7
CiAgICAgICAgIHNoYWRvd0ltYWdlID0gbmV3IFFJbWFnZShyb3VuZGVkSW50U2l6ZShub3JtYWxp
emVkUmVjdC5zaXplKCkpLCBRSW1hZ2U6OkZvcm1hdF9BUkdCMzJfUHJlbXVsdGlwbGllZCk7CiAg
ICAgICAgIHBTaGFkb3cgPSBuZXcgUVBhaW50ZXIoc2hhZG93SW1hZ2UpOwogICAgICAgICBzaGFk
b3dEZXN0UmVjdCA9IG5vcm1hbGl6ZWRSZWN0OwotICAgICAgICBzaGFkb3dEZXN0UmVjdC5tb3Zl
KHNoYWRvd1NpemUud2lkdGgoKSwgc2hhZG93U2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIHNoYWRv
d0Rlc3RSZWN0LnRyYW5zbGF0ZShtX2RhdGEtPnNoYWRvd09mZnNldCk7CiAKICAgICAgICAgcFNo
YWRvdy0+c2V0Q29tcG9zaXRpb25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNl
KTsKLSAgICAgICAgcFNoYWRvdy0+ZmlsbFJlY3Qoc2hhZG93SW1hZ2UtPnJlY3QoKSwgc2hhZG93
Q29sb3IpOworICAgICAgICBwU2hhZG93LT5maWxsUmVjdChzaGFkb3dJbWFnZS0+cmVjdCgpLCBt
X2RhdGEtPnNoYWRvd0NvbG9yKTsKICAgICAgICAgcFNoYWRvdy0+c2V0Q29tcG9zaXRpb25Nb2Rl
KFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfRGVzdGluYXRpb25Jbik7CiAgICAgfQogCkBAIC02
OTYsNyArNjc1LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCkKICAgICAgICAgUUJydXNoIGJydXNoKG1fY29tbW9uLT5zdGF0ZS5maWxsUGF0
dGVybi0+Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuKGFmZmluZSkpOwogICAgICAgICBRUGl4bWFwKiBp
bWFnZSA9IG1fY29tbW9uLT5zdGF0ZS5maWxsUGF0dGVybi0+dGlsZUltYWdlKCktPm5hdGl2ZUlt
YWdlRm9yQ3VycmVudEZyYW1lKCk7CiAKLSAgICAgICAgaWYgKGhhc1NoYWRvdykgeworICAgICAg
ICBpZiAobV9kYXRhLT5oYXNTaGFkb3coKSkgewogICAgICAgICAgICAgZHJhd1JlcGVhdFBhdHRl
cm4ocFNoYWRvdywgaW1hZ2UsIEZsb2F0UmVjdChzdGF0aWNfY2FzdDxRUmVjdEY+KHNoYWRvd0lt
YWdlLT5yZWN0KCkpKSwgbV9jb21tb24tPnN0YXRlLmZpbGxQYXR0ZXJuLT5yZXBlYXRYKCksIG1f
Y29tbW9uLT5zdGF0ZS5maWxsUGF0dGVybi0+cmVwZWF0WSgpKTsKICAgICAgICAgICAgIHBTaGFk
b3ctPmVuZCgpOwogICAgICAgICAgICAgcC0+ZHJhd0ltYWdlKHNoYWRvd0Rlc3RSZWN0LCAqc2hh
ZG93SW1hZ2UsIHNoYWRvd0ltYWdlLT5yZWN0KCkpOwpAQCAtNzA2LDE0ICs2ODUsMTQgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAgICAg
ICAgUUJydXNoIGJydXNoKCptX2NvbW1vbi0+c3RhdGUuZmlsbEdyYWRpZW50LT5wbGF0Zm9ybUdy
YWRpZW50KCkpOwogICAgICAgICBicnVzaC5zZXRUcmFuc2Zvcm0obV9jb21tb24tPnN0YXRlLmZp
bGxHcmFkaWVudC0+Z3JhZGllbnRTcGFjZVRyYW5zZm9ybSgpKTsKIAotICAgICAgICBpZiAoaGFz
U2hhZG93KSB7CisgICAgICAgIGlmIChtX2RhdGEtPmhhc1NoYWRvdygpKSB7CiAgICAgICAgICAg
ICBwU2hhZG93LT5maWxsUmVjdChzaGFkb3dJbWFnZS0+cmVjdCgpLCBicnVzaCk7CiAgICAgICAg
ICAgICBwU2hhZG93LT5lbmQoKTsKICAgICAgICAgICAgIHAtPmRyYXdJbWFnZShzaGFkb3dEZXN0
UmVjdCwgKnNoYWRvd0ltYWdlLCBzaGFkb3dJbWFnZS0+cmVjdCgpKTsKICAgICAgICAgfQogICAg
ICAgICBwLT5maWxsUmVjdChub3JtYWxpemVkUmVjdCwgYnJ1c2gpOwogICAgIH0gZWxzZSB7Ci0g
ICAgICAgIGlmIChoYXNTaGFkb3cpIHsKKyAgICAgICAgaWYgKG1fZGF0YS0+aGFzU2hhZG93KCkp
IHsKICAgICAgICAgICAgIHBTaGFkb3ctPmZpbGxSZWN0KHNoYWRvd0ltYWdlLT5yZWN0KCksIHAt
PmJydXNoKCkpOwogICAgICAgICAgICAgcFNoYWRvdy0+ZW5kKCk7CiAgICAgICAgICAgICBwLT5k
cmF3SW1hZ2Uoc2hhZG93RGVzdFJlY3QsICpzaGFkb3dJbWFnZSwgc2hhZG93SW1hZ2UtPnJlY3Qo
KSk7CkBAIC03MzMsOCArNzEyLDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChj
b25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTCiAKICAgICBt
X2RhdGEtPnNvbGlkQ29sb3Iuc2V0Q29sb3IoY29sb3IpOwogICAgIFFQYWludGVyKiBwID0gbV9k
YXRhLT5wKCk7Ci0gICAgaWYgKG1fY29tbW9uLT5zdGF0ZS5zaGFkb3dDb2xvci5pc1ZhbGlkKCkp
Ci0gICAgICAgIGRyYXdCb3JkZXJsZXNzUmVjdFNoYWRvdyh0aGlzLCBwLCByZWN0KTsKKworICAg
IGlmIChtX2RhdGEtPmhhc1NoYWRvdygpKQorICAgICAgICBwLT5maWxsUmVjdChRUmVjdEYocmVj
dCkudHJhbnNsYXRlZChtX2RhdGEtPnNoYWRvd09mZnNldCksIG1fZGF0YS0+c2hhZG93Q29sb3Ip
OworCiAgICAgcC0+ZmlsbFJlY3QocmVjdCwgbV9kYXRhLT5zb2xpZENvbG9yKTsKIH0KIApAQCAt
NzQ1LDcgKzcyNiwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0KGNv
bnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEludFNpemUmIHRvcExlZgogCiAgICAgUGF0aCBwYXRo
ID0gUGF0aDo6Y3JlYXRlUm91bmRlZFJlY3RhbmdsZShyZWN0LCB0b3BMZWZ0LCB0b3BSaWdodCwg
Ym90dG9tTGVmdCwgYm90dG9tUmlnaHQpOwogICAgIFFQYWludGVyKiBwID0gbV9kYXRhLT5wKCk7
Ci0gICAgZHJhd0ZpbGxlZFNoYWRvd1BhdGgodGhpcywgcCwgcGF0aC5wbGF0Zm9ybVBhdGgoKSk7
CisgICAgaWYgKG1fZGF0YS0+aGFzU2hhZG93KCkpIHsKKyAgICAgICAgcC0+dHJhbnNsYXRlKG1f
ZGF0YS0+c2hhZG93T2Zmc2V0KTsKKyAgICAgICAgcC0+ZmlsbFBhdGgocGF0aC5wbGF0Zm9ybVBh
dGgoKSwgbV9kYXRhLT5zaGFkb3dDb2xvcik7CisgICAgICAgIHAtPnRyYW5zbGF0ZSgtbV9kYXRh
LT5zaGFkb3dPZmZzZXQpOworICAgIH0KICAgICBwLT5maWxsUGF0aChwYXRoLnBsYXRmb3JtUGF0
aCgpLCBRQ29sb3IoY29sb3IpKTsKIH0KIApAQCAtODg3LDcgKzg3Miw3IEBAIEZsb2F0UmVjdCBH
cmFwaGljc0NvbnRleHQ6OnJvdW5kVG9EZXZpY2VQaXhlbHMoY29uc3QgRmxvYXRSZWN0JiBmcmVj
dCkKICAgICByZXR1cm4gRmxvYXRSZWN0KHJvdW5kZWRPcmlnaW4sIHJvdW5kZWRMb3dlclJpZ2h0
IC0gcm91bmRlZE9yaWdpbik7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9y
bVNoYWRvdyhjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0LCBjb25zdCBDb2xvciYsIENvbG9y
U3BhY2UpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgRmxv
YXRTaXplJiBzaXplLCBmbG9hdCBibHVyLCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2Up
CiB7CiAgICAgLy8gUXQgZG9lc24ndCBzdXBwb3J0IHNoYWRvd3MgbmF0aXZlbHksIHRoZXkgYXJl
IGRyYXduIG1hbnVhbGx5IGluIHRoZSBkcmF3KgogICAgIC8vIGZ1bmN0aW9ucwpAQCAtODk3LDEy
ICs4ODIsMzkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQsIGNvbnN0IENvbG8KICAgICAgICAgLy8gV2UgZmxpcCB0
aGUgaGVpZ2h0IHNpbmNlIENHIGFuZCBIVE1MNSBDYW52YXMgaGF2ZSBvcHBvc2l0ZSBZIGF4aXMK
ICAgICAgICAgbV9jb21tb24tPnN0YXRlLnNoYWRvd1NpemUgPSBGbG9hdFNpemUoc2l6ZS53aWR0
aCgpLCAtc2l6ZS5oZWlnaHQoKSk7CiAgICAgfQorCisgICAgLy8gSGVyZSB3ZSBqdXN0IHN0b3Jl
IGltcG9ydGFudCBzaGFkb3cgc3RhdGVzLgorCisgICAgbV9kYXRhLT5zaGFkb3dCbHVyUmFkaXVz
ID0gcVJvdW5kKGJsdXIpOworICAgIG1fZGF0YS0+c2hhZG93T2Zmc2V0ID0gUVBvaW50RihtX2Nv
bW1vbi0+c3RhdGUuc2hhZG93U2l6ZS53aWR0aCgpLCBtX2NvbW1vbi0+c3RhdGUuc2hhZG93U2l6
ZS5oZWlnaHQoKSk7CisgICAgbV9kYXRhLT5zaGFkb3dDb2xvciA9IGNvbG9yOworCisgICAgLy8g
VGhlIHR5cGUgb2Ygc2hhZG93IGlzIGRlY2lkZWQgYnkgdGhlIGJsdXIgcmFkaXVzLCBzaGFkb3cg
b2Zmc2V0LCBhbmQgc2hhZG93IGNvbG9yLgorCisgICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkgfHwg
IWNvbG9yLmFscGhhKCkpIHsKKyAgICAgICAgLy8gQ2FuJ3QgcGFpbnQgdGhlIHNoYWRvdyB3aXRo
IGludmFsaWQgb3IgaW52aXNpYmxlIGNvbG9yLgorICAgICAgICBtX2RhdGEtPnNoYWRvd1R5cGUg
PSBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6Ok5vU2hhZG93OworICAgIH0gZWxzZSB7
CisgICAgICAgIGlmIChibHVyID4gMCkgeworICAgICAgICAgICAgLy8gU2hhZG93IGlzIGFsd2F5
cyBibHVycmVkLCBldmVuIHRoZSBvZmZzZXQgaXMgemVyby4KKyAgICAgICAgICAgIG1fZGF0YS0+
c2hhZG93VHlwZSA9IEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6Qmx1clNoYWRvdzsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChtX2RhdGEtPnNoYWRvd09mZnNldC5p
c051bGwoKSkgeworICAgICAgICAgICAgICAgIC8vIFdpdGhvdXQgYmx1ciBhbmQgemVybyBvZmZz
ZXQgbWVhbnMgdGhlIHNoYWRvdyBpcyBmdWxseSBoaWRkZW4uCisgICAgICAgICAgICAgICAgbV9k
YXRhLT5zaGFkb3dUeXBlID0gR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpOb1NoYWRv
dzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGNvbG9yLmhhc0Fs
cGhhKCkpCisgICAgICAgICAgICAgICAgICAgIG1fZGF0YS0+c2hhZG93VHlwZSA9IEdyYXBoaWNz
Q29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6QWxwaGFTb2xpZFNoYWRvdzsKKyAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG1fZGF0YS0+c2hhZG93VHlwZSA9IEdyYXBoaWNz
Q29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6T3BhcXVlU29saWRTaGFkb3c7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGVhclBsYXRm
b3JtU2hhZG93KCkKIHsKLSAgICAvLyBRdCBkb2Vzbid0IHN1cHBvcnQgc2hhZG93cyBuYXRpdmVs
eSwgdGhleSBhcmUgZHJhd24gbWFudWFsbHkgaW4gdGhlIGRyYXcqCi0gICAgLy8gZnVuY3Rpb25z
CisgICAgbV9kYXRhLT5zaGFkb3dUeXBlID0gR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRl
OjpOb1NoYWRvdzsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luVHJhbnNwYXJlbmN5
TGF5ZXIoZmxvYXQgb3BhY2l0eSkK
</data>
<flag name="review"
          id="52973"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
      

    </bug>

</bugzilla>