<?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>26447</bug_id>
          
          <creation_ts>2009-06-16 10:33:17 -0700</creation_ts>
          <short_desc>REGRESSION: Animated GIF problems on GTK</short_desc>
          <delta_ts>2009-06-16 12:27:59 -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>Images</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peter Kasting">pkasting</reporter>
          <assigned_to name="Peter Kasting">pkasting</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>126223</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-06-16 10:33:17 -0700</bug_when>
    <thetext>According to bug 25709 comment 73, one of the patches on bug 25709 caused problems with animated GIFs where &quot;at the end of one animation cycle, [we show] an empty (sometimes black) image&quot;.

According to xan on IRC, there is a problem with GIFs on GTK that &quot;they flicker a lot&quot;.  I suspect this is the bug zecke is reporting.  If so, the problem happened before landing the &quot;part nine&quot; patch on bug 25709.  xan reports that the GIF at http://www.cracked.com/funny-36-twilight/ exhibits the problem.

I will try and get more info from IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126229</commentid>
    <comment_count>1</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-06-16 10:55:18 -0700</bug_when>
    <thetext>According to IRC trackback zecke reports the problem was caused by r44631 and was indeed in GTK+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126232</commentid>
    <comment_count>2</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2009-06-16 11:07:20 -0700</bug_when>
    <thetext>I can confirm that the animated GIF &quot;flickers&quot;, or shows a black frame under Windows Cairo.  I have not payed much attention to animated GIF&apos;s, so I cannot confirm when this change might have happened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126236</commentid>
    <comment_count>3</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-06-16 11:13:50 -0700</bug_when>
    <thetext>On IRC bfulgham reports that the precise behavior is that the image rapidly cycles between a single still image and a black frame.  There is no other discernable animation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126247</commentid>
    <comment_count>4</comment_count>
      <attachid>31359</attachid>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-06-16 11:48:33 -0700</bug_when>
    <thetext>Created attachment 31359
patch v1

Simple fix.  I forgot to copy one member.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126250</commentid>
    <comment_count>5</comment_count>
      <attachid>31360</attachid>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-06-16 11:51:14 -0700</bug_when>
    <thetext>Created attachment 31360
patch v1, for real

Oops, uploaded the wrong patch file!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126252</commentid>
    <comment_count>6</comment_count>
      <attachid>31360</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-06-16 11:55:22 -0700</bug_when>
    <thetext>Comment on attachment 31360
patch v1, for real

I can confirm that the missing setting of m_size in the copy function was the cause of the bug (and it looks ok), so r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126259</commentid>
    <comment_count>7</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-06-16 12:27:59 -0700</bug_when>
    <thetext>Fixed in r44733.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31359</attachid>
            <date>2009-06-16 11:48:33 -0700</date>
            <delta_ts>2009-06-16 11:51:14 -0700</delta_ts>
            <desc>patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>15226</size>
            <attacher name="Peter Kasting">pkasting</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NDY2OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDAgQEAKKzIwMDktMDYtMTMgIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTcwOSBwYXJ0IGVsZXZl
bgorICAgICAgICBXcml0ZSBhIHd4IGltcGxlbWVudGF0aW9uIHNvIHRoZSB3eCBwb3J0IGNhbiBj
b21waWxlLiAgRm9yIG5vdyB0aGlzIGlzCisgICAgICAgIG1vc3RseSBhIGNvcHkgb2YgdGhlIENh
aXJvIHBvcnQsIGJ1dCBpbiB0aGUgZnV0dXJlIGl0IGNhbiBiZSBjaGFuZ2VkIHRvCisgICAgICAg
IHVzZSBhIHd4Qml0bWFwIGFzIHRoZSBzdG9yYWdlIHR5cGUgZXZlcnl3aGVyZSAoanVzdCBhcyBD
YWlybyBjYW4KKyAgICAgICAgcHJvYmFibHkgYmUgY2hhbmdlZCkuCisgICAgICAgIAorICAgICAg
ICBBbHNvIEFTU0VSVCBmb3IgYW55IG90aGVyIHBvcnRzIHdobyBjYWxsIGdldEFkZHIoKSAoSSBk
b24ndCB0aGluayB0aGVyZQorICAgICAgICBhcmUgYW55LCBhbmQgYmVzaWRlcywgdGhleSBwcm9i
YWJseSB3b24ndCBsaW5rLCBidXQgdGhpcyBkb2Vzbid0IGh1cnQpLgorICAgICAgICAKKyAgICAg
ICAgQWxzbyBmaXhlcyBhIGR1bWIgQ2Fpcm8gYnVpbGQgYnVzdGFnZSB0eXBvIGludHJvZHVjZWQg
aW4gcGFydCB0ZW4uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZVNvdXJj
ZVd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpjcmVhdGVGcmFtZUF0SW5k
ZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6UkdCQTMyQnVmZmVyOjpnZXRBZGRyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9jYWlyby9JbWFnZURlY29kZXJDYWlyby5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSR0JBMzJCdWZmZXI6OnNldFN0YXR1cyk6CisgICAgICAgICogcGxhdGZvcm0v
aW1hZ2UtZGVjb2RlcnMvd3g6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29k
ZXJzL3d4L0ltYWdlRGVjb2Rlcld4LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSR0JB
MzJCdWZmZXI6OlJHQkEzMkJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpSR0JBMzJCdWZmZXI6
OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlJHQkEzMkJ1ZmZlcjo6emVyb0ZpbGwpOgorICAg
ICAgICAoV2ViQ29yZTo6UkdCQTMyQnVmZmVyOjpjb3B5Qml0bWFwRGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpSR0JBMzJCdWZmZXI6OnNldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UkdCQTMy
QnVmZmVyOjphc05ld05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJHQkEzMkJ1ZmZl
cjo6aGFzQWxwaGEpOgorICAgICAgICAoV2ViQ29yZTo6UkdCQTMyQnVmZmVyOjpzZXRIYXNBbHBo
YSk6CisgICAgICAgIChXZWJDb3JlOjpSR0JBMzJCdWZmZXI6OnNldFN0YXR1cyk6CisgICAgICAg
IChXZWJDb3JlOjpSR0JBMzJCdWZmZXI6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpS
R0JBMzJCdWZmZXI6OndpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJHQkEzMkJ1ZmZlcjo6aGVp
Z2h0KToKKyAgICAgICAgKiB3ZWJjb3JlLXd4LmJrbDoKKwogMjAwOS0wNi0xMyAgU3RlcGhlbiBX
aGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
aW1pdHJpIEdsYXprb3YuICBMYW5kZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdlYkNvcmUvd2Vi
Y29yZS13eC5ia2wKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93ZWJjb3JlLXd4LmJrbAkocmV2aXNp
b24gNDQ2NjgpCisrKyBXZWJDb3JlL3dlYmNvcmUtd3guYmtsCSh3b3JraW5nIGNvcHkpCkBAIC00
NSw1NiArNDUsNTggQEAgd3hXZWJDb3JlIHBvcnQgQmFrZWZpbGUgcHJvamVjdCBmaWxlLgogICAg
ICAgICA8aW5jbHVkZT4kKFdLX1JPT1QpL1dlYktpdExpYnJhcmllczwvaW5jbHVkZT4KICAgICAg
ICAgCiAgICAgICAgIDxzb3VyY2VzPgotICAgICAgICAgICAgYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlcld4LmNwcAorICAgICAgICAgIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXJXeC5j
cHAKIAotICAgICAgICAgICAgZWRpdGluZy93eC9FZGl0b3JXeC5jcHAKKyAgICAgICAgICBlZGl0
aW5nL3d4L0VkaXRvcld4LmNwcAogCi0gICAgICAgICAgICBwYWdlL3d4L0RyYWdDb250cm9sbGVy
V3guY3BwCi0gICAgICAgICAgICBwYWdlL3d4L0V2ZW50SGFuZGxlcld4LmNwcAotICAgICAgICAg
ICAKLSAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3d4L1RyYW5zZm9ybWF0aW9uTWF0cml4
V3guY3BwCi0gICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy93eC9Db2xvcld4LmNwcAotICAg
ICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRmxvYXRSZWN0V3guY3BwCi0gICAgICAgICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy93eC9HcmFkaWVudFd4LmNwcAotICAgICAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvd3gvR3JhcGhpY3NDb250ZXh0V3guY3BwCi0gICAgICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy93eC9JbWFnZUJ1ZmZlcld4LmNwcAotICAgICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3Mvd3gvSW1hZ2VTb3VyY2VXeC5jcHAKLSAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNz
L3d4L0ltYWdlV3guY3BwCi0gICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy93eC9JbnRQb2lu
dFd4LmNwcAotICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW50UmVjdFd4LmNwcAot
ICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvUGF0aFd4LmNwcAotICAgICAgICAgICAg
cGxhdGZvcm0vZ3JhcGhpY3Mvd3gvUGVuV3guY3BwCi0gICAgICAgICAgICAKLSAgICAgICAgICAg
IHBsYXRmb3JtL3d4L1RlbXBvcmFyeUxpbmtTdHVicy5jcHAKLSAgICAgICAgICAgIHBsYXRmb3Jt
L3d4L0NsaXBib2FyZFd4LmNwcAotICAgICAgICAgICAgcGxhdGZvcm0vd3gvQ3Vyc29yV3guY3Bw
Ci0gICAgICAgICAgICBwbGF0Zm9ybS93eC9EcmFnRGF0YVd4LmNwcAotICAgICAgICAgICAgcGxh
dGZvcm0vd3gvRHJhZ0ltYWdlV3guY3BwCi0gICAgICAgICAgICBwbGF0Zm9ybS93eC9FdmVudExv
b3BXeC5jcHAKLSAgICAgICAgICAgIHBsYXRmb3JtL3d4L0ZpbGVTeXN0ZW1XeC5jcHAKLSAgICAg
ICAgICAgIHBsYXRmb3JtL3d4L1BvcHVwTWVudVd4LmNwcAotICAgICAgICAgICAgcGxhdGZvcm0v
Z3JhcGhpY3Mvd3gvRm9udENhY2hlV3guY3BwCi0gICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy93eC9Gb250UGxhdGZvcm1EYXRhV3guY3BwCi0gICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy93eC9Gb250V3guY3BwICAgICAgICAgICAgIAotICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3Mvd3gvR2x5cGhNYXBXeC5jcHAKLSAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3d4L1Np
bXBsZUZvbnREYXRhV3guY3BwCi0gICAgICAgICAgICBwbGF0Zm9ybS93eC9LZXlib2FyZEV2ZW50
V3guY3BwCi0gICAgICAgICAgICBwbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwCi0g
ICAgICAgICAgICBwbGF0Zm9ybS93eC9Mb2dnaW5nV3guY3BwCi0gICAgICAgICAgICBwbGF0Zm9y
bS93eC9NaW1lVHlwZVJlZ2lzdHJ5V3guY3BwCi0gICAgICAgICAgICBwbGF0Zm9ybS93eC9Nb3Vz
ZUV2ZW50V3guY3BwCi0gICAgICAgICAgICBwbGF0Zm9ybS93eC9Nb3VzZVdoZWVsRXZlbnRXeC5j
cHAKLSAgICAgICAgICAgIHBsYXRmb3JtL3d4L1Bhc3RlYm9hcmRXeC5jcHAKLSAgICAgICAgICAg
IHBsYXRmb3JtL3d4L1JlbmRlclRoZW1lV3guY3BwCi0gICAgICAgICAgICBwbGF0Zm9ybS93eC9T
Y3JlZW5XeC5jcHAKLSAgICAgICAgICAgIHBsYXRmb3JtL3d4L1Njcm9sbFZpZXdXeC5jcHAKLSAg
ICAgICAgICAgIHBsYXRmb3JtL3d4L1NvdW5kV3guY3BwCi0gICAgICAgICAgICBwbGF0Zm9ybS90
ZXh0L3d4L1N0cmluZ1d4LmNwcAotICAgICAgICAgICAgcGxhdGZvcm0vd3gvV2lkZ2V0V3guY3Bw
Ci0gICAgICAgICAgICBwbGF0Zm9ybS93eC9Db250ZXh0TWVudVd4LmNwcAotICAgICAgICAgICAg
cGxhdGZvcm0vd3gvQ29udGV4dE1lbnVJdGVtV3guY3BwCi0gICAgICAgICAgIAotICAgICAgICAg
ICAgPCEtLSBmaWxlcyBmcm9tIG90aGVyIHBvcnRzIHdlIGN1cnJlbnRseSByZWx5IG9uIC0tPgor
ICAgICAgICAgIHBhZ2Uvd3gvRHJhZ0NvbnRyb2xsZXJXeC5jcHAKKyAgICAgICAgICBwYWdlL3d4
L0V2ZW50SGFuZGxlcld4LmNwcAorCisgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvVHJh
bnNmb3JtYXRpb25NYXRyaXhXeC5jcHAKKyAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy93eC9D
b2xvcld4LmNwcAorICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0Zsb2F0UmVjdFd4LmNw
cAorICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0dyYWRpZW50V3guY3BwCisgICAgICAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvR3JhcGhpY3NDb250ZXh0V3guY3BwCisgICAgICAgICAg
cGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VCdWZmZXJXeC5jcHAKKyAgICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy93eC9JbWFnZVNvdXJjZVd4LmNwcAorICAgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL3d4L0ltYWdlV3guY3BwCisgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW50UG9p
bnRXeC5jcHAKKyAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy93eC9JbnRSZWN0V3guY3BwCisg
ICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvUGF0aFd4LmNwcAorICAgICAgICAgIHBsYXRm
b3JtL2dyYXBoaWNzL3d4L1Blbld4LmNwcAorCisgICAgICAgICAgcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvd3gvSW1hZ2VEZWNvZGVyV3guY3BwCisKKyAgICAgICAgICBwbGF0Zm9ybS93eC9UZW1w
b3JhcnlMaW5rU3R1YnMuY3BwCisgICAgICAgICAgcGxhdGZvcm0vd3gvQ2xpcGJvYXJkV3guY3Bw
CisgICAgICAgICAgcGxhdGZvcm0vd3gvQ3Vyc29yV3guY3BwCisgICAgICAgICAgcGxhdGZvcm0v
d3gvRHJhZ0RhdGFXeC5jcHAKKyAgICAgICAgICBwbGF0Zm9ybS93eC9EcmFnSW1hZ2VXeC5jcHAK
KyAgICAgICAgICBwbGF0Zm9ybS93eC9FdmVudExvb3BXeC5jcHAKKyAgICAgICAgICBwbGF0Zm9y
bS93eC9GaWxlU3lzdGVtV3guY3BwCisgICAgICAgICAgcGxhdGZvcm0vd3gvUG9wdXBNZW51V3gu
Y3BwCisgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udENhY2hlV3guY3BwCisgICAg
ICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udFBsYXRmb3JtRGF0YVd4LmNwcAorICAgICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRXeC5jcHAKKyAgICAgICAgICBwbGF0Zm9ybS9n
cmFwaGljcy93eC9HbHlwaE1hcFd4LmNwcAorICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3d4
L1NpbXBsZUZvbnREYXRhV3guY3BwCisgICAgICAgICAgcGxhdGZvcm0vd3gvS2V5Ym9hcmRFdmVu
dFd4LmNwcAorICAgICAgICAgIHBsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAKKyAg
ICAgICAgICBwbGF0Zm9ybS93eC9Mb2dnaW5nV3guY3BwCisgICAgICAgICAgcGxhdGZvcm0vd3gv
TWltZVR5cGVSZWdpc3RyeVd4LmNwcAorICAgICAgICAgIHBsYXRmb3JtL3d4L01vdXNlRXZlbnRX
eC5jcHAKKyAgICAgICAgICBwbGF0Zm9ybS93eC9Nb3VzZVdoZWVsRXZlbnRXeC5jcHAKKyAgICAg
ICAgICBwbGF0Zm9ybS93eC9QYXN0ZWJvYXJkV3guY3BwCisgICAgICAgICAgcGxhdGZvcm0vd3gv
UmVuZGVyVGhlbWVXeC5jcHAKKyAgICAgICAgICBwbGF0Zm9ybS93eC9TY3JlZW5XeC5jcHAKKyAg
ICAgICAgICBwbGF0Zm9ybS93eC9TY3JvbGxWaWV3V3guY3BwCisgICAgICAgICAgcGxhdGZvcm0v
d3gvU291bmRXeC5jcHAKKyAgICAgICAgICBwbGF0Zm9ybS90ZXh0L3d4L1N0cmluZ1d4LmNwcAor
ICAgICAgICAgIHBsYXRmb3JtL3d4L1dpZGdldFd4LmNwcAorICAgICAgICAgIHBsYXRmb3JtL3d4
L0NvbnRleHRNZW51V3guY3BwCisgICAgICAgICAgcGxhdGZvcm0vd3gvQ29udGV4dE1lbnVJdGVt
V3guY3BwCisKKyAgICAgICAgICA8IS0tIGZpbGVzIGZyb20gb3RoZXIgcG9ydHMgd2UgY3VycmVu
dGx5IHJlbHkgb24gLS0+CiAgICAgICAgICAgICBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2ll
SmFyQ3VybC5jcHAKICAgICAgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvY3VybC9Gb3JtRGF0YVN0
cmVhbUN1cmwuY3BwCiAgICAgICAgICAgICBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VI
YW5kbGVDdXJsLmNwcApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZVNv
dXJjZVd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0lt
YWdlU291cmNlV3guY3BwCShyZXZpc2lvbiA0NDY2OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd3gvSW1hZ2VTb3VyY2VXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4NSw1NiArMTg1
LDcgQEAgTmF0aXZlSW1hZ2VQdHIgSW1hZ2VTb3VyY2U6OmNyZWF0ZUZyYW1lQQogICAgIGlmICgh
YnVmZmVyIHx8IGJ1ZmZlci0+c3RhdHVzKCkgPT0gUkdCQTMyQnVmZmVyOjpGcmFtZUVtcHR5KQog
ICAgICAgICByZXR1cm4gMDsKICAgICAKLSAgICBJbnRSZWN0IGltYWdlUmVjdCA9IGJ1ZmZlci0+
cmVjdCgpOwotICAgIHVuc2lnbmVkIGNoYXIqIGJ5dGVzID0gKHVuc2lnbmVkIGNoYXIqKWJ1ZmZl
ci0+Ynl0ZXMoKS5kYXRhKCk7Ci0gICAgbG9uZyBjb2xvclNpemUgPSBidWZmZXItPmJ5dGVzKCku
c2l6ZSgpOwotICAgIAotICAgIHR5cGVkZWYgd3hQaXhlbERhdGE8d3hCaXRtYXAsIHd4QWxwaGFQ
aXhlbEZvcm1hdD4gUGl4ZWxEYXRhOwotCi0gICAgaW50IHdpZHRoID0gc2l6ZSgpLndpZHRoKCk7
Ci0gICAgaW50IGhlaWdodCA9IHNpemUoKS5oZWlnaHQoKTsKLQotICAgIHd4Qml0bWFwKiBibXAg
PSBuZXcgd3hCaXRtYXAod2lkdGgsIGhlaWdodCwgMzIpOwotICAgIFBpeGVsRGF0YSBkYXRhKCpi
bXApOwotICAgIAotICAgIGludCByb3dDb3VudGVyID0gMDsKLSAgICBsb25nIHBpeGVsQ291bnRl
ciA9IDA7Ci0gICAgCi0gICAgUGl4ZWxEYXRhOjpJdGVyYXRvciBwKGRhdGEpOwotICAgIAotICAg
IFBpeGVsRGF0YTo6SXRlcmF0b3Igcm93U3RhcnQgPSBwOyAKLSAgICAKLSAgICAvLyBOQjogSXQg
YXBwZWFycyB0aGF0IHRoZSBkYXRhIGlzIGluIEJHUkEgZm9ybWF0IGluc3RlYWQgb2YgUkdCQSBm
b3JtYXQuCi0gICAgLy8gVGhpcyBjb2RlIHdvcmtzIHByb3Blcmx5IG9uIGJvdGggcHBjIGFuZCBp
bnRlbCwgbWVhbmluZyB0aGUgaXNzdWUgaXMKLSAgICAvLyBsaWtlbHkgbm90IGFuIGlzc3VlIG9m
IGJ5dGUgb3JkZXIgZ2V0dGluZyBtaXhlZCB1cCBvbiBkaWZmZXJlbnQgYXJjaHMuIAotICAgIGZv
ciAobG9uZyBpID0gMDsgaSA8IGJ1ZmZlci0+Ynl0ZXMoKS5zaXplKCkqNDsgaSs9NCkgewotICAg
ICAgICBwLlJlZCgpID0gYnl0ZXNbaSsyXTsKLSAgICAgICAgcC5HcmVlbigpID0gYnl0ZXNbaSsx
XTsKLSAgICAgICAgcC5CbHVlKCkgPSBieXRlc1tpKzBdOwotICAgICAgICBwLkFscGhhKCkgPSBi
eXRlc1tpKzNdOwotICAgICAgICAKLSAgICAgICAgcCsrOwotCi0gICAgICAgIHBpeGVsQ291bnRl
cisrOwotICAgICAgICBpZiAoIChwaXhlbENvdW50ZXIgJSB3aWR0aCApID09IDAgKSB7Ci0gICAg
ICAgICAgICByb3dDb3VudGVyKys7Ci0gICAgICAgICAgICBwID0gcm93U3RhcnQ7Ci0gICAgICAg
ICAgICBwLk1vdmVUbyhkYXRhLCAwLCByb3dDb3VudGVyKTsKLSAgICAgICAgfQotCi0gICAgfQot
I2lmICF3eENIRUNLX1ZFUlNJT04oMiw5LDApCi0gICAgYm1wLT5Vc2VBbHBoYSgpOwotI2VuZGlm
Ci0gICAgQVNTRVJUKGJtcC0+SXNPaygpKTsKLQotI2lmIFVTRShXWEdDKQotICAgIHd4R3JhcGhp
Y3NCaXRtYXAqIGJpdG1hcCA9ICBuZXcgd3hHcmFwaGljc0JpdG1hcCh3eEdyYXBoaWNzUmVuZGVy
ZXI6OkdldERlZmF1bHRSZW5kZXJlcigpLT5DcmVhdGVCaXRtYXAoKmJtcCkpOwotICAgIGRlbGV0
ZSBibXA7Ci0gICAgcmV0dXJuIGJpdG1hcDsKLSNlbHNlCi0gICAgcmV0dXJuIGJtcDsKLSNlbmRp
ZgorICAgIHJldHVybiBidWZmZXItPmFzTmV3TmF0aXZlSW1hZ2UoKTsKIH0KIAogZmxvYXQgSW1h
Z2VTb3VyY2U6OmZyYW1lRHVyYXRpb25BdEluZGV4KHNpemVfdCBpbmRleCkKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaAkocmV2aXNpb24g
NDQ2NjgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzQsMTAgKzEzNCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgaW5saW5lIFBpeGVsRGF0YSogZ2V0QWRkcihpbnQgeCwgaW50IHkpCiAgICAg
ICAgIHsKLSNpZiBQTEFURk9STShDQUlSTykKKyNpZiBQTEFURk9STShDQUlSTykgfHwgUExBVEZP
Uk0oV1gpCiAgICAgICAgICAgICByZXR1cm4gbV9ieXRlcy5kYXRhKCkgKyAoeSAqIHdpZHRoKCkp
ICsgeDsKICNlbGlmIFBMQVRGT1JNKFNLSUEpCiAgICAgICAgICAgICByZXR1cm4gbV9iaXRtYXAu
Z2V0QWRkcjMyKHgsIHkpOworI2Vsc2UKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICAgICAgcmV0dXJuIDA7CiAjZW5kaWYKICAgICAgICAgfQogCkBAIC0xNTcsNyAr
MTYwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgfQogICAgICAgICB9CiAK
LSNpZiBQTEFURk9STShDQUlSTykKKyNpZiBQTEFURk9STShDQUlSTykgfHwgUExBVEZPUk0oV1gp
CiAgICAgICAgIFZlY3RvcjxQaXhlbERhdGE+IG1fYnl0ZXM7CiAgICAgICAgIEludFNpemUgbV9z
aXplOyAgICAgICAvLyBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyLiAgVGhpcyBzaG91bGQgYmUgdGhl
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzYW1lIGFzIEltYWdlRGVjb2Rlcjo6
bV9zaXplLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9jYWlyby9JbWFn
ZURlY29kZXJDYWlyby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1k
ZWNvZGVycy9jYWlyby9JbWFnZURlY29kZXJDYWlyby5jcHAJKHJldmlzaW9uIDQ0NjY4KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9jYWlyby9JbWFnZURlY29kZXJDYWlyby5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBSR0JBMzJCdWZmZXI6OnNl
dEhhc0FscGhhKGJvb2wgYWxwaAogICAgIG1faGFzQWxwaGEgPSBhbHBoYTsKIH0KIAotdm9pZCBz
ZXRTdGF0dXMoRnJhbWVTdGF0dXMgc3RhdHVzKQordm9pZCBSR0JBMzJCdWZmZXI6OnNldFN0YXR1
cyhGcmFtZVN0YXR1cyBzdGF0dXMpCiB7CiAgICAgbV9zdGF0dXMgPSBzdGF0dXM7CiB9CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3d4L0ltYWdlRGVjb2Rlcld4LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3d4L0ltYWdlRGVj
b2Rlcld4LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2Rl
cnMvd3gvSW1hZ2VEZWNvZGVyV3guY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkltYWdl
RGVjb2Rlci5oIgorCisvLyBGSVhNRTogQXJlIGFsbCB0aGVzZSBuZWVkZWQ/CisjaW5jbHVkZSA8
d3gvZGVmcy5oPgorI2luY2x1ZGUgPHd4L2JpdG1hcC5oPgorI2lmIFVTRShXWEdDKQorI2luY2x1
ZGUgPHd4L2dyYXBoaWNzLmg+CisjZW5kaWYKKyNpbmNsdWRlIDx3eC9pbWFnZS5oPgorI2luY2x1
ZGUgPHd4L3Jhd2JtcC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JHQkEzMkJ1ZmZlcjo6
UkdCQTMyQnVmZmVyKCkKKyAgICA6IG1faGFzQWxwaGEoZmFsc2UpCisgICAgLCBtX3N0YXR1cyhG
cmFtZUVtcHR5KQorICAgICwgbV9kdXJhdGlvbigwKQorICAgICwgbV9kaXNwb3NhbE1ldGhvZChE
aXNwb3NlTm90U3BlY2lmaWVkKQoreworfSAKKwordm9pZCBSR0JBMzJCdWZmZXI6OmNsZWFyKCkK
K3sKKyAgICBtX2J5dGVzLmNsZWFyKCk7CisgICAgbV9zdGF0dXMgPSBGcmFtZUVtcHR5OworICAg
IC8vIE5PVEU6IERvIG5vdCByZXNldCBvdGhlciBtZW1iZXJzIGhlcmU7IGNsZWFyRnJhbWVCdWZm
ZXJDYWNoZSgpCisgICAgLy8gY2FsbHMgdGhpcyB0byBmcmVlIHRoZSBiaXRtYXAgZGF0YSwgYnV0
IG90aGVyIGZ1bmN0aW9ucyBsaWtlCisgICAgLy8gaW5pdEZyYW1lQnVmZmVyKCkgYW5kIGZyYW1l
Q29tcGxldGUoKSBtYXkgc3RpbGwgbmVlZCB0byByZWFkCisgICAgLy8gb3RoZXIgbWV0YWRhdGEg
b3V0IG9mIHRoaXMgZnJhbWUgbGF0ZXIuCit9CisKK3ZvaWQgUkdCQTMyQnVmZmVyOjp6ZXJvRmls
bCgpCit7CisgICAgbV9ieXRlcy5maWxsKDApOworICAgIG1faGFzQWxwaGEgPSB0cnVlOworfQor
Cit2b2lkIFJHQkEzMkJ1ZmZlcjo6Y29weUJpdG1hcERhdGEoY29uc3QgUkdCQTMyQnVmZmVyJiBv
dGhlcikKK3sKKyAgICBpZiAodGhpcyA9PSAmb3RoZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fYnl0ZXMgPSBvdGhlci5tX2J5dGVzOworICAgIHNldEhhc0FscGhhKG90aGVyLm1faGFzQWxw
aGEpOworfQorCitib29sIFJHQkEzMkJ1ZmZlcjo6c2V0U2l6ZShpbnQgbmV3V2lkdGgsIGludCBu
ZXdIZWlnaHQpCit7CisgICAgLy8gTk9URTogVGhpcyBoYXMgbm8gd2F5IHRvIGNoZWNrIGZvciBh
bGxvY2F0aW9uIGZhaWx1cmUgaWYgdGhlCisgICAgLy8gcmVxdWVzdGVkIHNpemUgd2FzIHRvbyBi
aWcuLi4KKyAgICBtX2J5dGVzLnJlc2l6ZShuZXdXaWR0aCAqIG5ld0hlaWdodCk7CisgICAgbV9z
aXplID0gSW50U2l6ZShuZXdXaWR0aCwgbmV3SGVpZ2h0KTsKKworICAgIC8vIFplcm8gdGhlIGlt
YWdlLgorICAgIHplcm9GaWxsKCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworTmF0aXZlSW1h
Z2VQdHIgUkdCQTMyQnVmZmVyOjphc05ld05hdGl2ZUltYWdlKCkgY29uc3QKK3sKKyAgICBjb25z
dCB1bnNpZ25lZCBjaGFyKiBieXRlcyA9IChjb25zdCB1bnNpZ25lZCBjaGFyKiltX2J5dGVzLmRh
dGEoKTsKKyAgICAKKyAgICB0eXBlZGVmIHd4UGl4ZWxEYXRhPHd4Qml0bWFwLCB3eEFscGhhUGl4
ZWxGb3JtYXQ+IFd4UGl4ZWxEYXRhOworCisgICAgd3hCaXRtYXAqIGJtcCA9IG5ldyB3eEJpdG1h
cCh3aWR0aCgpLCBoZWlnaHQoKSwgMzIpOworICAgIFd4UGl4ZWxEYXRhIGRhdGEoKmJtcCk7Cisg
ICAgCisgICAgaW50IHJvd0NvdW50ZXIgPSAwOworICAgIGxvbmcgcGl4ZWxDb3VudGVyID0gMDsK
KyAgICAKKyAgICBXeFBpeGVsRGF0YTo6SXRlcmF0b3IgcChkYXRhKTsKKyAgICAKKyAgICBXeFBp
eGVsRGF0YTo6SXRlcmF0b3Igcm93U3RhcnQgPSBwOyAKKyAgICAKKyAgICAvLyBOQjogSXQgYXBw
ZWFycyB0aGF0IHRoZSBkYXRhIGlzIGluIEJHUkEgZm9ybWF0IGluc3RlYWQgb2YgUkdCQSBmb3Jt
YXQuCisgICAgLy8gVGhpcyBjb2RlIHdvcmtzIHByb3Blcmx5IG9uIGJvdGggcHBjIGFuZCBpbnRl
bCwgbWVhbmluZyB0aGUgaXNzdWUgaXMKKyAgICAvLyBsaWtlbHkgbm90IGFuIGlzc3VlIG9mIGJ5
dGUgb3JkZXIgZ2V0dGluZyBtaXhlZCB1cCBvbiBkaWZmZXJlbnQgYXJjaHMuIAorICAgIGZvciAo
bG9uZyBpID0gMDsgaSA8IG1fYnl0ZXMuc2l6ZSgpICogc2l6ZW9mKFBpeGVsRGF0YSk7IGkgKz0g
c2l6ZW9mKFBpeGVsRGF0YSkpIHsKKyAgICAgICAgcC5SZWQoKSA9IGJ5dGVzW2krMl07CisgICAg
ICAgIHAuR3JlZW4oKSA9IGJ5dGVzW2krMV07CisgICAgICAgIHAuQmx1ZSgpID0gYnl0ZXNbaSsw
XTsKKyAgICAgICAgcC5BbHBoYSgpID0gYnl0ZXNbaSszXTsKKyAgICAgICAgCisgICAgICAgIHAr
KzsKKworICAgICAgICBwaXhlbENvdW50ZXIrKzsKKyAgICAgICAgaWYgKCAocGl4ZWxDb3VudGVy
ICUgd2lkdGgoKSApID09IDAgKSB7CisgICAgICAgICAgICByb3dDb3VudGVyKys7CisgICAgICAg
ICAgICBwID0gcm93U3RhcnQ7CisgICAgICAgICAgICBwLk1vdmVUbyhkYXRhLCAwLCByb3dDb3Vu
dGVyKTsKKyAgICAgICAgfQorCisgICAgfQorI2lmICF3eENIRUNLX1ZFUlNJT04oMiw5LDApCisg
ICAgYm1wLT5Vc2VBbHBoYSgpOworI2VuZGlmCisgICAgQVNTRVJUKGJtcC0+SXNPaygpKTsKKwor
I2lmIFVTRShXWEdDKQorICAgIHd4R3JhcGhpY3NCaXRtYXAqIGJpdG1hcCA9ICBuZXcgd3hHcmFw
aGljc0JpdG1hcCh3eEdyYXBoaWNzUmVuZGVyZXI6OkdldERlZmF1bHRSZW5kZXJlcigpLT5DcmVh
dGVCaXRtYXAoKmJtcCkpOworICAgIGRlbGV0ZSBibXA7CisgICAgcmV0dXJuIGJpdG1hcDsKKyNl
bHNlCisgICAgcmV0dXJuIGJtcDsKKyNlbmRpZgorfQorCitib29sIFJHQkEzMkJ1ZmZlcjo6aGFz
QWxwaGEoKSBjb25zdAoreworICAgIHJldHVybiBtX2hhc0FscGhhOworfQorCit2b2lkIFJHQkEz
MkJ1ZmZlcjo6c2V0SGFzQWxwaGEoYm9vbCBhbHBoYSkKK3sKKyAgICBtX2hhc0FscGhhID0gYWxw
aGE7Cit9CisKK3ZvaWQgUkdCQTMyQnVmZmVyOjpzZXRTdGF0dXMoRnJhbWVTdGF0dXMgc3RhdHVz
KQoreworICAgIG1fc3RhdHVzID0gc3RhdHVzOworfQorCitSR0JBMzJCdWZmZXImIFJHQkEzMkJ1
ZmZlcjo6b3BlcmF0b3I9KGNvbnN0IFJHQkEzMkJ1ZmZlciYgb3RoZXIpCit7CisgICAgaWYgKHRo
aXMgPT0gJm90aGVyKQorICAgICAgICByZXR1cm4gKnRoaXM7CisKKyAgICBtX2J5dGVzID0gb3Ro
ZXIubV9ieXRlczsKKyAgICBtX3NpemUgPSBvdGhlci5tX3NpemU7CisgICAgc2V0SGFzQWxwaGEo
b3RoZXIuaGFzQWxwaGEoKSk7CisgICAgc2V0UmVjdChvdGhlci5yZWN0KCkpOworICAgIHNldFN0
YXR1cyhvdGhlci5zdGF0dXMoKSk7CisgICAgc2V0RHVyYXRpb24ob3RoZXIuZHVyYXRpb24oKSk7
CisgICAgc2V0RGlzcG9zYWxNZXRob2Qob3RoZXIuZGlzcG9zYWxNZXRob2QoKSk7CisgICAgcmV0
dXJuICp0aGlzOworfQorCitpbnQgUkdCQTMyQnVmZmVyOjp3aWR0aCgpIGNvbnN0IHsKKyAgICBy
ZXR1cm4gbV9zaXplLndpZHRoKCk7Cit9CisKK2ludCBSR0JBMzJCdWZmZXI6OmhlaWdodCgpIGNv
bnN0IHsKKyAgICByZXR1cm4gbV9zaXplLmhlaWdodCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31360</attachid>
            <date>2009-06-16 11:51:14 -0700</date>
            <delta_ts>2009-06-16 11:55:22 -0700</delta_ts>
            <desc>patch v1, for real</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>2380</size>
            <attacher name="Peter Kasting">pkasting</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NDczMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDktMDYtMTYgIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjQ0NworICAgICAgICBG
aXggYW5pbWF0ZWQgR0lGIGJyZWFrYWdlIGluIENhaXJvL3d4IHBvcnRzLgorCisgICAgICAgICog
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fpcm8vSW1hZ2VEZWNvZGVyQ2Fpcm8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UkdCQTMyQnVmZmVyOjpjb3B5Qml0bWFwRGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpSR0JBMzJCdWZmZXI6Om9wZXJhdG9yPSk6CisgICAgICAgICogcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMvd3gvSW1hZ2VEZWNvZGVyV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UkdC
QTMyQnVmZmVyOjpjb3B5Qml0bWFwRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSR0JBMzJCdWZm
ZXI6Om9wZXJhdG9yPSk6CisKIDIwMDktMDYtMTYgIFBpZXJyZSBkJ0hlcmJlbW9udCAgPHBkaGVy
YmVtb250QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb2huIFN1bGxpdmFuCklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2NhaXJvL0ltYWdlRGVjb2RlckNh
aXJvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2Nh
aXJvL0ltYWdlRGVjb2RlckNhaXJvLmNwcAkocmV2aXNpb24gNDQ3MjgpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL2NhaXJvL0ltYWdlRGVjb2RlckNhaXJvLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjAsNiArNjAsNyBAQCB2b2lkIFJHQkEzMkJ1ZmZlcjo6Y29weUJpdG1hcERh
dGEoY29uc3QgCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fYnl0ZXMgPSBvdGhlci5tX2J5dGVz
OworICAgIG1fc2l6ZSA9IG90aGVyLm1fc2l6ZTsKICAgICBzZXRIYXNBbHBoYShvdGhlci5tX2hh
c0FscGhhKTsKIH0KIApAQCAtMTA0LDkgKzEwNSw3IEBAIFJHQkEzMkJ1ZmZlciYgUkdCQTMyQnVm
ZmVyOjpvcGVyYXRvcj0oY28KICAgICBpZiAodGhpcyA9PSAmb3RoZXIpCiAgICAgICAgIHJldHVy
biAqdGhpczsKIAotICAgIG1fYnl0ZXMgPSBvdGhlci5tX2J5dGVzOwotICAgIG1fc2l6ZSA9IG90
aGVyLm1fc2l6ZTsKLSAgICBzZXRIYXNBbHBoYShvdGhlci5oYXNBbHBoYSgpKTsKKyAgICBjb3B5
Qml0bWFwRGF0YShvdGhlcik7CiAgICAgc2V0UmVjdChvdGhlci5yZWN0KCkpOwogICAgIHNldFN0
YXR1cyhvdGhlci5zdGF0dXMoKSk7CiAgICAgc2V0RHVyYXRpb24ob3RoZXIuZHVyYXRpb24oKSk7
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3d4L0ltYWdlRGVjb2Rlcld4
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3d4L0lt
YWdlRGVjb2Rlcld4LmNwcAkocmV2aXNpb24gNDQ3MjgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL3d4L0ltYWdlRGVjb2Rlcld4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjcs
NiArNjcsNyBAQCB2b2lkIFJHQkEzMkJ1ZmZlcjo6Y29weUJpdG1hcERhdGEoY29uc3QgCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG1fYnl0ZXMgPSBvdGhlci5tX2J5dGVzOworICAgIG1fc2l6ZSA9
IG90aGVyLm1fc2l6ZTsKICAgICBzZXRIYXNBbHBoYShvdGhlci5tX2hhc0FscGhhKTsKIH0KIApA
QCAtMTUyLDkgKzE1Myw3IEBAIFJHQkEzMkJ1ZmZlciYgUkdCQTMyQnVmZmVyOjpvcGVyYXRvcj0o
Y28KICAgICBpZiAodGhpcyA9PSAmb3RoZXIpCiAgICAgICAgIHJldHVybiAqdGhpczsKIAotICAg
IG1fYnl0ZXMgPSBvdGhlci5tX2J5dGVzOwotICAgIG1fc2l6ZSA9IG90aGVyLm1fc2l6ZTsKLSAg
ICBzZXRIYXNBbHBoYShvdGhlci5oYXNBbHBoYSgpKTsKKyAgICBjb3B5Qml0bWFwRGF0YShvdGhl
cik7CiAgICAgc2V0UmVjdChvdGhlci5yZWN0KCkpOwogICAgIHNldFN0YXR1cyhvdGhlci5zdGF0
dXMoKSk7CiAgICAgc2V0RHVyYXRpb24ob3RoZXIuZHVyYXRpb24oKSk7Cg==
</data>
<flag name="review"
          id="16031"
          type_id="1"
          status="+"
          setter="xan.lopez"
    />
          </attachment>
      

    </bug>

</bugzilla>