<?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>68808</bug_id>
          
          <creation_ts>2011-09-26 09:38:59 -0700</creation_ts>
          <short_desc>[Texmap][Qt] Refactor texture-upload to allow direct chunk update</short_desc>
          <delta_ts>2011-09-27 09:27:29 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>56935</blocked>
    
    <blocked>60439</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Noam Rosenthal">noam</assigned_to>
          <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>473147</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-09-26 09:38:59 -0700</bug_when>
    <thetext>The current texture-mapper interface only allows for creating a BGRA32 buffer and painting into it.
But in WebKit2, we already have the pixels and want to update them directly into the texture without the extra copy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473155</commentid>
    <comment_count>1</comment_count>
      <attachid>108680</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-09-26 09:46:24 -0700</bug_when>
    <thetext>Created attachment 108680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473740</commentid>
    <comment_count>2</comment_count>
      <attachid>108798</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-09-27 00:28:29 -0700</bug_when>
    <thetext>Created attachment 108798
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473759</commentid>
    <comment_count>3</comment_count>
      <attachid>108798</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-09-27 00:49:10 -0700</bug_when>
    <thetext>Comment on attachment 108798
Patch

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

&gt; Source/WebCore/platform/graphics/opengl/TextureMapperGL.cpp:543
&gt; +static void* swizzleBGRAToRGBA(void* data, const IntSize&amp; size)

This function should take something more specific than a void*.
Also, it has a return type but no return statements.

&gt; Source/WebCore/platform/graphics/opengl/TextureMapperGL.cpp:548
&gt; +        uint* p = static_cast&lt;uint*&gt;(data) + y * (width * 4);

Is the number of bytes per row always guaranteed to be (width * 4)?

&gt; Source/WebCore/platform/graphics/opengl/TextureMapperGL.cpp:559
&gt; +    void* swizzledBits = bits;

This appears to be unused.

&gt; Source/WebCore/platform/graphics/opengl/TextureMapperGL.cpp:586
&gt; +         break;

Wrong indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473852</commentid>
    <comment_count>4</comment_count>
      <attachid>108824</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-09-27 05:00:29 -0700</bug_when>
    <thetext>Created attachment 108824
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473853</commentid>
    <comment_count>5</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-09-27 05:02:47 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/platform/graphics/opengl/TextureMapperGL.cpp:586
&gt; &gt; +         break;
&gt; 
&gt; Wrong indentation.
Hmm... I fail to see the error of my ways here.
I believe the indentation is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473857</commentid>
    <comment_count>6</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-09-27 05:06:06 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; &gt; Source/WebCore/platform/graphics/opengl/TextureMapperGL.cpp:586
&gt; &gt; &gt; +         break;
&gt; &gt; 
&gt; &gt; Wrong indentation.
&gt; Hmm... I fail to see the error of my ways here.
&gt; I believe the indentation is correct.

It should line up with &quot;glFormat = GL_BGR;&quot; which it doesn&apos;t :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473947</commentid>
    <comment_count>7</comment_count>
      <attachid>108824</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-09-27 08:40:36 -0700</bug_when>
    <thetext>Comment on attachment 108824
Patch

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

r=me

&gt; Source/WebCore/platform/graphics/opengl/TextureMapperGL.cpp:585
&gt; +        glFormat = GL_BGR;
&gt; +#endif
&gt; +         break;

Indentation police! Wiiiooowiiioooo!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473979</commentid>
    <comment_count>8</comment_count>
      <attachid>108824</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-27 09:27:25 -0700</bug_when>
    <thetext>Comment on attachment 108824
Patch

Clearing flags on attachment: 108824

Committed r96118: &lt;http://trac.webkit.org/changeset/96118&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473980</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-27 09:27:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108680</attachid>
            <date>2011-09-26 09:46:24 -0700</date>
            <delta_ts>2011-09-27 00:28:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68808-20110926174621.patch</filename>
            <type>text/plain</type>
            <size>10433</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU5NDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOWM1MTVhMDVmOGY3YzU2
OGViYTY1MDZmMTdkYTJmMzY0NTFhYWFlLi5iM2FkYjIwOTkzOTcwODE2MjBiNDgxZDI1OWNlMDdk
MGE1NWY4MGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDktMjYgIE5vJ2Ft
IFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAgICBbVGV4bWFw
XVtRdF0gUmVmYWN0b3IgdGV4dHVyZS11cGxvYWQgdG8gYWxsb3cgZGlyZWN0IGNodW5rIHVwZGF0
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MDgK
KworICAgICAgICBBZGQgYSBmdW5jdGlvbiB0byBCaXRtYXBUZXh0dXJlIGZvciBkaXJlY3QgcGl4
ZWwgdXBkYXRlcy4KKyAgICAgICAgTW9kaWZ5IEJpdG1hcFRleHR1cmVHTDo6ZW5kUGFpbnQgdG8g
dXNlIHRoYXQgZnVuY3Rpb24uIFNpbmNlIHRoZSBCR1JBCisgICAgICAgIHRvIFJHQkEgc3dpenps
aW5nIGlzIGRvbmUgaW5zaWRlIHRoYXQgZnVuY3Rpb24sIHRoZXJlJ3Mgbm8gbmVlZCBmb3IgdGhl
IAorICAgICAgICBSR0JBMzJQcmVtdWx0aXBsaWVkQnVmZmVyIGNsYXNzIHRvIGNvbnRhaW4gc3Vj
aCBmdW5jdGlvbi4gQWxzbywKKyAgICAgICAgUkdCQTMyUHJlbXVsdGlwbGllZEJ1ZmZlciB3YXMg
cmVuYW1lZCB0byBCR1JBMzJQcmVtdWx0aXBsaWVkQnVmZmVyLCBjb3JyZWN0aW5nCisgICAgICAg
IGFuIG9sZCBtaXN0YWtlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cy4gRXhpc3RpbmcgdGVzdHMgaW4gTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcgdGVzdCB0aGlzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6
OmJlZ2luUGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUdMOjplbmRQYWlu
dCk6CisgICAgICAgIChXZWJDb3JlOjpzd2l6emxlQkdSQVRvUkdCQSk6CisgICAgICAgIChXZWJD
b3JlOjpCaXRtYXBUZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmg6CisgICAgICAgIChXZWJDb3JlOjpC
R1JBMzJQcmVtdWx0aW1wbGllZEJ1ZmZlcjo6fkJHUkEzMlByZW11bHRpbXBsaWVkQnVmZmVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9UZXh0dXJlTWFwcGVyUXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZVF0Ojp1cGRhdGVDb250ZW50cyk6CisgICAgICAg
IChXZWJDb3JlOjpCR1JBMzJQcmVtdWx0aW1wbGllZEJ1ZmZlclF0OjpkYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OkJHUkEzMlByZW11bHRpbXBsaWVkQnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3F0L1RleHR1cmVNYXBwZXJRdC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmg6CisKIDIwMTEtMDktMjYgIEFuZHJl
YXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW51c2VkIHZhcmlh
YmxlIGluIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzZW5kTmV0d29ya1JlcXVlc3QuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBl
ckdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJl
TWFwcGVyR0wuY3BwCmluZGV4IGZlOGI4OTRjNTY2Mjg5ZjJjYTE0Yjg0MzA2NzVhZDQyZmQwOTA4
ZTguLjJjYmVmN2Y3N2NlNTBlMmU0OWM1ZDc5YmY1YWU4ZDk2NDk4MWMyYzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJl
TWFwcGVyR0wuY3BwCkBAIC0yMzgsNiArMjM4LDcgQEAgcHVibGljOgogICAgIGlubGluZSBGbG9h
dFNpemUgcmVsYXRpdmVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9yZWxhdGl2ZVNpemU7IH0KICAg
ICB2b2lkIHNldFRleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlckdMKiB0ZXhtYXApIHsgbV90ZXh0
dXJlTWFwcGVyID0gdGV4bWFwOyB9CiAKKyAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzKFBpeGVsRm9y
bWF0LCBjb25zdCBJbnRSZWN0Jiwgdm9pZCopOwogICAgIHZvaWQgcGFjaygpCiAgICAgewogICAg
ICAgICAvLyBUaGlzIGlzIGN1cnJlbnRseSBhIHN0dWIuCkBAIC0yNjUsNyArMjY2LDcgQEAgcHJp
dmF0ZToKICAgICBGbG9hdFNpemUgbV9yZWxhdGl2ZVNpemU7CiAgICAgYm9vbCBtX29wYXF1ZTsK
ICAgICBJbnRTaXplIG1fdGV4dHVyZVNpemU7Ci0gICAgUmVmUHRyPFJHQkEzMlByZW11bHRpbXBs
aWVkQnVmZmVyPiBtX2J1ZmZlcjsKKyAgICBPd25QdHI8QkdSQTMyUHJlbXVsdGltcGxpZWRCdWZm
ZXI+IG1fYnVmZmVyOwogICAgIEludFJlY3QgbV9kaXJ0eVJlY3Q7CiAgICAgR0x1aW50IG1fZmJv
OwogICAgIEdMdWludCBtX3JibzsKQEAgLTUyMyw3ICs1MjQsNyBAQCB2b2lkIEJpdG1hcFRleHR1
cmVHTDo6cmVzZXQoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSwgYm9vbCBvcGFxdWUpCiAKIFBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0KiBCaXRtYXBUZXh0dXJlR0w6OmJlZ2luUGFpbnQoY29uc3QgSW50
UmVjdCYgZGlydHlSZWN0KQogewotICAgIG1fYnVmZmVyID0gUkdCQTMyUHJlbXVsdGltcGxpZWRC
dWZmZXI6OmNyZWF0ZSgpOworICAgIG1fYnVmZmVyID0gQkdSQTMyUHJlbXVsdGltcGxpZWRCdWZm
ZXI6OmNyZWF0ZSgpOwogICAgIG1fZGlydHlSZWN0ID0gZGlydHlSZWN0OwogICAgIHJldHVybiBt
X2J1ZmZlci0+YmVnaW5QYWludChkaXJ0eVJlY3QsIG1fb3BhcXVlKTsKIH0KQEAgLTUzMywxNSAr
NTM0LDYxIEBAIHZvaWQgQml0bWFwVGV4dHVyZUdMOjplbmRQYWludCgpCiAgICAgaWYgKCFtX2J1
ZmZlcikKICAgICAgICAgcmV0dXJuOwogICAgIG1fYnVmZmVyLT5lbmRQYWludCgpOworICAgIHVw
ZGF0ZUNvbnRlbnRzKEJHUkFGb3JtYXQsIG1fZGlydHlSZWN0LCBtX2J1ZmZlci0+ZGF0YSgpKTsK
KyAgICBHTF9DTUQoZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX2lkKSkKKyAgICBtX2J1
ZmZlci5jbGVhcigpOworfQorCisjaWZkZWYgVEVYTUFQX09QRU5HTF9FU18yCitzdGF0aWMgdm9p
ZCogc3dpenpsZUJHUkFUb1JHQkEodm9pZCogcCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAg
ICBmb3IgKGludCB5ID0gMDsgeSA8IHNpemUuaGVpZ2h0KCk7ICsreSkgeworICAgICAgICB1aW50
KiBwID0gc3RhdGljX2Nhc3Q8dWludCo+KGRhdGEpICsgeSAqIChzaXplLndpZHRoKCkgKiA0KTsK
KyAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCBzaXplLndpZHRoKCk7ICsreCkKKyAgICAgICAg
ICAgIHBbeF0gPSAoKHBbeF0gPDwgMTYpICYgMHhmZjAwMDApIHwgKChwW3hdID4+IDE2KSAmIDB4
ZmYpIHwgKHBbeF0gJiAweGZmMDBmZjAwKTsKKyAgICB9Cit9CisjZW5kaWYKKwordm9pZCBCaXRt
YXBUZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBjb25z
dCBJbnRSZWN0JiByZWN0LCB2b2lkKiBiaXRzKQorewogICAgIEdMX0NNRChnbEJpbmRUZXh0dXJl
KEdMX1RFWFRVUkVfMkQsIG1faWQpKQogI2lmZGVmIFRFWE1BUF9PUEVOR0xfRVNfMgotICAgIC8v
IEZJWE1FOiB1c2Ugc2hhZGVycyBmb3IgUkdCQS0+QkdSQSBzd2FwIGlmIHRoaXMgYmVjb21lcyBh
IHBlcmZvcm1hbmNlIGlzc3VlLgotICAgIG1fYnVmZmVyLT5zd2FwUkdCKCk7Ci0gICAgR0xfQ01E
KGdsVGV4U3ViSW1hZ2UyRChHTF9URVhUVVJFXzJELCAwLCBtX2RpcnR5UmVjdC54KCksIG1fZGly
dHlSZWN0LnkoKSwgbV9kaXJ0eVJlY3Qud2lkdGgoKSwgbV9kaXJ0eVJlY3QuaGVpZ2h0KCksIEdM
X1JHQkEsIEdMX1VOU0lHTkVEX0JZVEUsIG1fYnVmZmVyLT5kYXRhKCkpKQorICAgIHZvaWQqIHN3
aXp6bGVkQml0cyA9IGJpdHM7CisgICAgYm9vbCBzaG91bGRTd2l6emxlID0gZmFsc2U7CisjZW5k
aWYKKworICAgIEdMaW50IGdsRm9ybWF0ID0gR0xfUkdCQTsKKyAgICBzd2l0Y2ggKHBpeGVsRm9y
bWF0KSB7CisgICAgY2FzZSBSR0JBRm9ybWF0OgorICAgICAgICBnbEZvcm1hdCA9IEdMX1JHQkE7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUkdCRm9ybWF0OgorICAgICAgICBnbEZvcm1hdCA9
IEdMX1JHQjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCR1JBRm9ybWF0OgorI2lmZGVmIFRF
WE1BUF9PUEVOR0xfRVNfMgorICAgICAgICBzaG91bGRTd2l6emxlID0gdHJ1ZTsKKyAgICAgICAg
Z2xGb3JtYXQgPSBHTF9SR0JBOwogI2Vsc2UKLSAgICBHTF9DTUQoZ2xUZXhTdWJJbWFnZTJEKEdM
X1RFWFRVUkVfMkQsIDAsIG1fZGlydHlSZWN0LngoKSwgbV9kaXJ0eVJlY3QueSgpLCBtX2RpcnR5
UmVjdC53aWR0aCgpLCBtX2RpcnR5UmVjdC5oZWlnaHQoKSwgR0xfQkdSQSwgR0xfVU5TSUdORURf
QllURSwgbV9idWZmZXItPmRhdGEoKSkpCisgICAgICAgIGdsRm9ybWF0ID0gR0xfQkdSQTsKICNl
bmRpZgotICAgIG1fYnVmZmVyLmNsZWFyKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQkdS
Rm9ybWF0OgorI2lmZGVmIFRFWE1BUF9PUEVOR0xfRVNfMgorICAgICAgICBzaG91bGRTd2l6emxl
ID0gdHJ1ZTsKKyAgICAgICAgZ2xGb3JtYXQgPSBHTF9SR0I7CisjZWxzZQorICAgICAgICBnbEZv
cm1hdCA9IEdMX0JHUjsKKyNlbmRpZgorICAgICAgICAgYnJlYWs7CisgICAgfQorCisjaWZkZWYg
VEVYTUFQX09QRU5HTF9FU18yCisgICAgaWYgKHNob3VsZFN3aXp6bGUpCisgICAgICAgIHN3aXp6
bGVCR1JBVG9SR0JBKGJpdHMpOworI2VuZGlmCisgICAgR0xfQ01EKGdsVGV4U3ViSW1hZ2UyRChH
TF9URVhUVVJFXzJELCAwLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5o
ZWlnaHQoKSwgZ2xGb3JtYXQsIEdMX1VOU0lHTkVEX0JZVEUsIGJpdHMpKQogfQogCiB2b2lkIEJp
dG1hcFRleHR1cmVHTDo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVy
R0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFw
cGVyR0wuaAppbmRleCAzMDViNDk2ZTg1Y2E1YWVhOGVjYWJkZDI1ODc4OTFjNDY1OTI5MjhiLi4z
ZDQ4OTZlOTFiYzlkZGQ0YzI4ZjI5OTJiMzgzZTgwODFmNjhlOWZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJH
TC5oCkBAIC02MywxNCArNjMsMTMgQEAgcHJpdmF0ZToKIH07CiAKIC8vIEFuIG9mZnNjcmVlbiBi
dWZmZXIgdG8gYmUgcmVuZGVyZWQgYnkgc29mdHdhcmUuCi1jbGFzcyBSR0JBMzJQcmVtdWx0aW1w
bGllZEJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPFJHQkEzMlByZW11bHRpbXBsaWVkQnVmZmVy
PiB7CitjbGFzcyBCR1JBMzJQcmVtdWx0aW1wbGllZEJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVk
PEJHUkEzMlByZW11bHRpbXBsaWVkQnVmZmVyPiB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+UkdC
QTMyUHJlbXVsdGltcGxpZWRCdWZmZXIoKSB7fQorICAgIHZpcnR1YWwgfkJHUkEzMlByZW11bHRp
bXBsaWVkQnVmZmVyKCkgeyB9CiAgICAgdmlydHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCog
YmVnaW5QYWludChjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QsIGJvb2wgb3BhcXVlKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHN3YXBSR0IoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGVuZFBhaW50
KCkgPSAwOwotICAgIHZpcnR1YWwgY29uc3Qgdm9pZCogZGF0YSgpIGNvbnN0ID0gMDsKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxSR0JBMzJQcmVtdWx0aW1wbGllZEJ1ZmZlcj4gY3JlYXRlKCk7Cisg
ICAgdmlydHVhbCB2b2lkKiBkYXRhKCkgPSAwOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEJHUkEz
MlByZW11bHRpbXBsaWVkQnVmZmVyPiBjcmVhdGUoKTsKIH07CiAKIHN0YXRpYyBpbmxpbmUgaW50
IG5leHRQb3dlck9mVHdvKGludCBudW0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9UZXh0dXJlTWFwcGVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvVGV4dHVyZU1hcHBlclF0LmNwcAppbmRleCA0MTExMmY0ZjZlZGMw
YTVhZTlkY2YzNGE0OTdlZWZkZWUwZDc3NjUzLi5mNDFhNDIxMmQ1NDE1NGUyOGE3NjZkMzFkNTZk
MGNmNGJmNzlkOTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9UZXh0dXJlTWFwcGVyUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L1RleHR1cmVNYXBwZXJRdC5jcHAKQEAgLTYyLDYgKzYyLDIxIEBAIHZvaWQgQml0
bWFwVGV4dHVyZVF0OjplbmRQYWludCgpCiAgICAgbV9wYWludGVyLmVuZCgpOwogfQogCit2b2lk
IEJpdG1hcFRleHR1cmVRdDo6dXBkYXRlQ29udGVudHMoUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQs
IGNvbnN0IEludFJlY3QmIHJlY3QsIHZvaWQqIGJpdHMpCit7CisgICAgbV9wYWludGVyLmJlZ2lu
KCZtX3BpeG1hcCk7CisgICAgUUltYWdlOjpGb3JtYXQgcXRGb3JtYXQgPSBRSW1hZ2U6OkZvcm1h
dF9BUkdCMzJfUHJlbXVsdGlwbGllZDsKKyAgICBpZiAocGl4ZWxGb3JtYXQgPT0gQkdSRm9ybWF0
IHx8IHBpeGVsRm9ybWF0ID09IFJHQkZvcm1hdCkKKyAgICAgICAgcXRGb3JtYXQgPSBRSW1hZ2U6
OkZvcm1hdF9SR0IzMjsKKyAgICBRSW1hZ2UgaW1hZ2Uoc3RhdGljX2Nhc3Q8dWNoYXIqPihiaXRz
KSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpLCBxdEZvcm1hdCk7CisgICAgaWYgKHBpeGVs
Rm9ybWF0ID09IEJHUkZvcm1hdCB8fCBwaXhlbEZvcm1hdCA9PSBCR1JBRm9ybWF0KQorICAgICAg
ICBpbWFnZSA9IGltYWdlLnJnYlN3YXBwZWQoKTsKKyAgICBtX3BhaW50ZXIuc2V0Q29tcG9zaXRp
b25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlKTsKKyAgICBtX3BhaW50ZXIu
ZHJhd0ltYWdlKHJlY3QsIGltYWdlKTsKKyAgICBtX3BhaW50ZXIuZW5kKCk7Cit9CisKKwogYm9v
bCBCaXRtYXBUZXh0dXJlUXQ6OnNhdmUoY29uc3QgU3RyaW5nJiBwYXRoKQogewogICAgIHJldHVy
biBtX3BpeG1hcC5zYXZlKHBhdGgsICJQTkciKTsKQEAgLTIxNCw3ICsyMjksNyBAQCB2b2lkIFRl
eHR1cmVNYXBwZXJRdDo6ZW5kUGFpbnRpbmcoKQogfQogCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVS
X0dMKQotY2xhc3MgUkdCQTMyUHJlbXVsdGltcGxpZWRCdWZmZXJRdCA6IHB1YmxpYyBSR0JBMzJQ
cmVtdWx0aW1wbGllZEJ1ZmZlciB7CitjbGFzcyBCR1JBMzJQcmVtdWx0aW1wbGllZEJ1ZmZlclF0
IDogcHVibGljIEJHUkEzMlByZW11bHRpbXBsaWVkQnVmZmVyIHsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KiBiZWdpblBhaW50KGNvbnN0IEludFJlY3QmIHJl
Y3QsIGJvb2wgb3BhcXVlKQogICAgIHsKQEAgLTIyOCwyMiArMjQzLDE3IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuICZtX3BhaW50ZXI7CiAgICAgfQogCi0gICAgdm9pZCBzd2FwUkdCKCkKLSAg
ICB7Ci0gICAgICAgIG1faW1hZ2UgPSBtX2ltYWdlLnJnYlN3YXBwZWQoKTsKLSAgICB9Ci0KICAg
ICB2aXJ0dWFsIHZvaWQgZW5kUGFpbnQoKSB7IG1fcGFpbnRlci5lbmQoKTsgfQotICAgIHZpcnR1
YWwgY29uc3Qgdm9pZCogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2UuY29uc3RCaXRzKCk7
IH0KKyAgICB2aXJ0dWFsIHZvaWQqIGRhdGEoKSB7IHJldHVybiBtX2ltYWdlLmJpdHMoKTsgfQog
CiBwcml2YXRlOgogICAgIFFQYWludGVyIG1fcGFpbnRlcjsKICAgICBRSW1hZ2UgbV9pbWFnZTsK
IH07CiAKLVBhc3NSZWZQdHI8UkdCQTMyUHJlbXVsdGltcGxpZWRCdWZmZXI+IFJHQkEzMlByZW11
bHRpbXBsaWVkQnVmZmVyOjpjcmVhdGUoKQorUGFzc093blB0cjxCR1JBMzJQcmVtdWx0aW1wbGll
ZEJ1ZmZlcj4gQkdSQTMyUHJlbXVsdGltcGxpZWRCdWZmZXI6OmNyZWF0ZSgpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBSR0JBMzJQcmVtdWx0aW1wbGllZEJ1ZmZlclF0KCkpOworICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgQkdSQTMyUHJlbXVsdGltcGxpZWRCdWZmZXJRdCgpKTsKIH0KIAog
dWludDY0X3QgdWlkRm9ySW1hZ2UoSW1hZ2UqIGltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGV4dHVyZU1hcHBlclF0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9UZXh0dXJlTWFwcGVyUXQuaAppbmRleCA4NGJjMTg4
MDk3NGJhMTQzZGQyMGE5NzQxZjQwOTg5YTM3OTU1NmM1Li5kZTU3MTk3NGY5ODgyMTExMWM4NTU4
MmYwYTM2ZWRlY2NmOTkzMWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9UZXh0dXJlTWFwcGVyUXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9UZXh0dXJlTWFwcGVyUXQuaApAQCAtNDEsNiArNDEsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHBhY2soKTsKICAgICB2aXJ0dWFsIHZvaWQgdW5wYWNrKCk7CiAg
ICAgdmlydHVhbCBib29sIGlzUGFja2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc1BhY2tlZDsgfQor
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb250ZW50cyhQaXhlbEZvcm1hdCwgY29uc3QgSW50UmVj
dCYsIHZvaWQqIGJpdHMpOwogCiAgICAgUVBhaW50ZXIqIHBhaW50ZXIoKSB7IHJldHVybiAmbV9w
YWludGVyOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCmluZGV4IGU0YTk3MWNlYmUxMWM4YTAxNDU1ZWM5ZjBh
ODE4NzVmMTU0YzNhYzQuLjI3MDU4YWFjYWNkNTYzYzVkYWRhOTMxYjQ1NzUwZjc4NzVlNTAyMzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXIuaApAQCAtNDYsNiArNDYsNyBAQCBjbGFzcyBUZXh0dXJlTWFwcGVyOwog
Ly8gQSAyRCB0ZXh0dXJlIHRoYXQgY2FuIGJlIHRoZSB0YXJnZXQgb2Ygc29mdHdhcmUgb3IgR0wg
cmVuZGVyaW5nLgogY2xhc3MgQml0bWFwVGV4dHVyZSAgOiBwdWJsaWMgUmVmQ291bnRlZDxCaXRt
YXBUZXh0dXJlPiB7CiBwdWJsaWM6CisgICAgZW51bSBQaXhlbEZvcm1hdCB7IEJHUkFGb3JtYXQs
IFJHQkFGb3JtYXQsIEJHUkZvcm1hdCwgUkdCRm9ybWF0IH07CiAgICAgQml0bWFwVGV4dHVyZSgp
IDogbV9sb2NrQ291bnQoMCkge30KICAgICB2aXJ0dWFsIH5CaXRtYXBUZXh0dXJlKCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSB7IH0KQEAgLTY2LDYgKzY3LDEwIEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIGJlZ2luUGFpbnQoY29uc3Qg
SW50UmVjdCYgZGlydHlSZWN0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGVuZFBhaW50KCkgPSAw
OworCisgICAgLy8gRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIEJpdG1hcFRleHR1cmUgbWlnaHQg
bW9kaWZ5IHRoZSBiaXRzIGRpcmVjdGx5IChzd2l6emxlKS4KKyAgICAvLyBUaHVzLCB0aGlzIG1l
dGhvZCBpcyBvbmx5IHJlY29tbWVuZGVkIGZvciBidWZmZXIgdXBkYXRlLCBzdWNoIGFzIHVzZWQg
YnkgV2ViS2l0Mi4KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoUGl4ZWxGb3JtYXQs
IGNvbnN0IEludFJlY3QmLCB2b2lkKiBiaXRzKSA9IDA7CiAgICAgdmlydHVhbCBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dCogYmVnaW5QYWludE1lZGlhKCkKICAgICB7CiAgICAgICAgIHJldHVybiBi
ZWdpblBhaW50KEludFJlY3QoMCwgMCwgc2l6ZSgpLndpZHRoKCksIHNpemUoKS5oZWlnaHQoKSkp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108798</attachid>
            <date>2011-09-27 00:28:29 -0700</date>
            <delta_ts>2011-09-27 05:00:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68808-20110927082827.patch</filename>
            <type>text/plain</type>
            <size>10479</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU5NDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOWM1MTVhMDVmOGY3YzU2
OGViYTY1MDZmMTdkYTJmMzY0NTFhYWFlLi5iM2FkYjIwOTkzOTcwODE2MjBiNDgxZDI1OWNlMDdk
MGE1NWY4MGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDktMjYgIE5vJ2Ft
IFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAgICBbVGV4bWFw
XVtRdF0gUmVmYWN0b3IgdGV4dHVyZS11cGxvYWQgdG8gYWxsb3cgZGlyZWN0IGNodW5rIHVwZGF0
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MDgK
KworICAgICAgICBBZGQgYSBmdW5jdGlvbiB0byBCaXRtYXBUZXh0dXJlIGZvciBkaXJlY3QgcGl4
ZWwgdXBkYXRlcy4KKyAgICAgICAgTW9kaWZ5IEJpdG1hcFRleHR1cmVHTDo6ZW5kUGFpbnQgdG8g
dXNlIHRoYXQgZnVuY3Rpb24uIFNpbmNlIHRoZSBCR1JBCisgICAgICAgIHRvIFJHQkEgc3dpenps
aW5nIGlzIGRvbmUgaW5zaWRlIHRoYXQgZnVuY3Rpb24sIHRoZXJlJ3Mgbm8gbmVlZCBmb3IgdGhl
IAorICAgICAgICBSR0JBMzJQcmVtdWx0aXBsaWVkQnVmZmVyIGNsYXNzIHRvIGNvbnRhaW4gc3Vj
aCBmdW5jdGlvbi4gQWxzbywKKyAgICAgICAgUkdCQTMyUHJlbXVsdGlwbGllZEJ1ZmZlciB3YXMg
cmVuYW1lZCB0byBCR1JBMzJQcmVtdWx0aXBsaWVkQnVmZmVyLCBjb3JyZWN0aW5nCisgICAgICAg
IGFuIG9sZCBtaXN0YWtlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cy4gRXhpc3RpbmcgdGVzdHMgaW4gTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcgdGVzdCB0aGlzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6
OmJlZ2luUGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUdMOjplbmRQYWlu
dCk6CisgICAgICAgIChXZWJDb3JlOjpzd2l6emxlQkdSQVRvUkdCQSk6CisgICAgICAgIChXZWJD
b3JlOjpCaXRtYXBUZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmg6CisgICAgICAgIChXZWJDb3JlOjpC
R1JBMzJQcmVtdWx0aW1wbGllZEJ1ZmZlcjo6fkJHUkEzMlByZW11bHRpbXBsaWVkQnVmZmVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9UZXh0dXJlTWFwcGVyUXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZVF0Ojp1cGRhdGVDb250ZW50cyk6CisgICAgICAg
IChXZWJDb3JlOjpCR1JBMzJQcmVtdWx0aW1wbGllZEJ1ZmZlclF0OjpkYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OkJHUkEzMlByZW11bHRpbXBsaWVkQnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3F0L1RleHR1cmVNYXBwZXJRdC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmg6CisKIDIwMTEtMDktMjYgIEFuZHJl
YXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW51c2VkIHZhcmlh
YmxlIGluIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzZW5kTmV0d29ya1JlcXVlc3QuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBl
ckdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJl
TWFwcGVyR0wuY3BwCmluZGV4IGZlOGI4OTRjNTY2Mjg5ZjJjYTE0Yjg0MzA2NzVhZDQyZmQwOTA4
ZTguLmMzNjZhNDQ0ZDI3ZmZlMDVlMWFhZjE0MjQ5M2I1NjQyOTc2NzNmNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJl
TWFwcGVyR0wuY3BwCkBAIC0yMzgsNiArMjM4LDcgQEAgcHVibGljOgogICAgIGlubGluZSBGbG9h
dFNpemUgcmVsYXRpdmVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9yZWxhdGl2ZVNpemU7IH0KICAg
ICB2b2lkIHNldFRleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlckdMKiB0ZXhtYXApIHsgbV90ZXh0
dXJlTWFwcGVyID0gdGV4bWFwOyB9CiAKKyAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzKFBpeGVsRm9y
bWF0LCBjb25zdCBJbnRSZWN0Jiwgdm9pZCopOwogICAgIHZvaWQgcGFjaygpCiAgICAgewogICAg
ICAgICAvLyBUaGlzIGlzIGN1cnJlbnRseSBhIHN0dWIuCkBAIC0yNjUsNyArMjY2LDcgQEAgcHJp
dmF0ZToKICAgICBGbG9hdFNpemUgbV9yZWxhdGl2ZVNpemU7CiAgICAgYm9vbCBtX29wYXF1ZTsK
ICAgICBJbnRTaXplIG1fdGV4dHVyZVNpemU7Ci0gICAgUmVmUHRyPFJHQkEzMlByZW11bHRpbXBs
aWVkQnVmZmVyPiBtX2J1ZmZlcjsKKyAgICBPd25QdHI8QkdSQTMyUHJlbXVsdGltcGxpZWRCdWZm
ZXI+IG1fYnVmZmVyOwogICAgIEludFJlY3QgbV9kaXJ0eVJlY3Q7CiAgICAgR0x1aW50IG1fZmJv
OwogICAgIEdMdWludCBtX3JibzsKQEAgLTUyMyw3ICs1MjQsNyBAQCB2b2lkIEJpdG1hcFRleHR1
cmVHTDo6cmVzZXQoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSwgYm9vbCBvcGFxdWUpCiAKIFBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0KiBCaXRtYXBUZXh0dXJlR0w6OmJlZ2luUGFpbnQoY29uc3QgSW50
UmVjdCYgZGlydHlSZWN0KQogewotICAgIG1fYnVmZmVyID0gUkdCQTMyUHJlbXVsdGltcGxpZWRC
dWZmZXI6OmNyZWF0ZSgpOworICAgIG1fYnVmZmVyID0gQkdSQTMyUHJlbXVsdGltcGxpZWRCdWZm
ZXI6OmNyZWF0ZSgpOwogICAgIG1fZGlydHlSZWN0ID0gZGlydHlSZWN0OwogICAgIHJldHVybiBt
X2J1ZmZlci0+YmVnaW5QYWludChkaXJ0eVJlY3QsIG1fb3BhcXVlKTsKIH0KQEAgLTUzMywxNSAr
NTM0LDYzIEBAIHZvaWQgQml0bWFwVGV4dHVyZUdMOjplbmRQYWludCgpCiAgICAgaWYgKCFtX2J1
ZmZlcikKICAgICAgICAgcmV0dXJuOwogICAgIG1fYnVmZmVyLT5lbmRQYWludCgpOworICAgIHVw
ZGF0ZUNvbnRlbnRzKEJHUkFGb3JtYXQsIG1fZGlydHlSZWN0LCBtX2J1ZmZlci0+ZGF0YSgpKTsK
KyAgICBHTF9DTUQoZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX2lkKSkKKyAgICBtX2J1
ZmZlci5jbGVhcigpOworfQorCisjaWZkZWYgVEVYTUFQX09QRU5HTF9FU18yCitzdGF0aWMgdm9p
ZCogc3dpenpsZUJHUkFUb1JHQkEodm9pZCogZGF0YSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sK
KyAgICBpbnQgd2lkdGggPSBzaXplLndpZHRoKCk7CisgICAgaW50IGhlaWdodCA9IHNpemUuaGVp
Z2h0KCk7CisgICAgZm9yIChpbnQgeSA9IDA7IHkgPCBoZWlnaHQ7ICsreSkgeworICAgICAgICB1
aW50KiBwID0gc3RhdGljX2Nhc3Q8dWludCo+KGRhdGEpICsgeSAqICh3aWR0aCAqIDQpOworICAg
ICAgICBmb3IgKGludCB4ID0gMDsgeCA8IHdpZHRoOyArK3gpCisgICAgICAgICAgICBwW3hdID0g
KChwW3hdIDw8IDE2KSAmIDB4ZmYwMDAwKSB8ICgocFt4XSA+PiAxNikgJiAweGZmKSB8IChwW3hd
ICYgMHhmZjAwZmYwMCk7CisgICAgfQorfQorI2VuZGlmCisKK3ZvaWQgQml0bWFwVGV4dHVyZUdM
Ojp1cGRhdGVDb250ZW50cyhQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgY29uc3QgSW50UmVjdCYg
cmVjdCwgdm9pZCogYml0cykKK3sKICAgICBHTF9DTUQoZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJF
XzJELCBtX2lkKSkKICNpZmRlZiBURVhNQVBfT1BFTkdMX0VTXzIKLSAgICAvLyBGSVhNRTogdXNl
IHNoYWRlcnMgZm9yIFJHQkEtPkJHUkEgc3dhcCBpZiB0aGlzIGJlY29tZXMgYSBwZXJmb3JtYW5j
ZSBpc3N1ZS4KLSAgICBtX2J1ZmZlci0+c3dhcFJHQigpOwotICAgIEdMX0NNRChnbFRleFN1Yklt
YWdlMkQoR0xfVEVYVFVSRV8yRCwgMCwgbV9kaXJ0eVJlY3QueCgpLCBtX2RpcnR5UmVjdC55KCks
IG1fZGlydHlSZWN0LndpZHRoKCksIG1fZGlydHlSZWN0LmhlaWdodCgpLCBHTF9SR0JBLCBHTF9V
TlNJR05FRF9CWVRFLCBtX2J1ZmZlci0+ZGF0YSgpKSkKKyAgICB2b2lkKiBzd2l6emxlZEJpdHMg
PSBiaXRzOworICAgIGJvb2wgc2hvdWxkU3dpenpsZSA9IGZhbHNlOworI2VuZGlmCisKKyAgICBH
TGludCBnbEZvcm1hdCA9IEdMX1JHQkE7CisgICAgc3dpdGNoIChwaXhlbEZvcm1hdCkgeworICAg
IGNhc2UgUkdCQUZvcm1hdDoKKyAgICAgICAgZ2xGb3JtYXQgPSBHTF9SR0JBOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFJHQkZvcm1hdDoKKyAgICAgICAgZ2xGb3JtYXQgPSBHTF9SR0I7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQkdSQUZvcm1hdDoKKyNpZmRlZiBURVhNQVBfT1BFTkdM
X0VTXzIKKyAgICAgICAgc2hvdWxkU3dpenpsZSA9IHRydWU7CisgICAgICAgIGdsRm9ybWF0ID0g
R0xfUkdCQTsKICNlbHNlCi0gICAgR0xfQ01EKGdsVGV4U3ViSW1hZ2UyRChHTF9URVhUVVJFXzJE
LCAwLCBtX2RpcnR5UmVjdC54KCksIG1fZGlydHlSZWN0LnkoKSwgbV9kaXJ0eVJlY3Qud2lkdGgo
KSwgbV9kaXJ0eVJlY3QuaGVpZ2h0KCksIEdMX0JHUkEsIEdMX1VOU0lHTkVEX0JZVEUsIG1fYnVm
ZmVyLT5kYXRhKCkpKQorICAgICAgICBnbEZvcm1hdCA9IEdMX0JHUkE7CiAjZW5kaWYKLSAgICBt
X2J1ZmZlci5jbGVhcigpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJHUkZvcm1hdDoKKyNp
ZmRlZiBURVhNQVBfT1BFTkdMX0VTXzIKKyAgICAgICAgc2hvdWxkU3dpenpsZSA9IHRydWU7Cisg
ICAgICAgIGdsRm9ybWF0ID0gR0xfUkdCOworI2Vsc2UKKyAgICAgICAgZ2xGb3JtYXQgPSBHTF9C
R1I7CisjZW5kaWYKKyAgICAgICAgIGJyZWFrOworICAgIH0KKworI2lmZGVmIFRFWE1BUF9PUEVO
R0xfRVNfMgorICAgIGlmIChzaG91bGRTd2l6emxlKQorICAgICAgICBzd2l6emxlQkdSQVRvUkdC
QShiaXRzKTsKKyNlbmRpZgorICAgIEdMX0NNRChnbFRleFN1YkltYWdlMkQoR0xfVEVYVFVSRV8y
RCwgMCwgcmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCksIGds
Rm9ybWF0LCBHTF9VTlNJR05FRF9CWVRFLCBiaXRzKSkKIH0KIAogdm9pZCBCaXRtYXBUZXh0dXJl
R0w6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmgKaW5k
ZXggMzA1YjQ5NmU4NWNhNWFlYThlY2FiZGQyNTg3ODkxYzQ2NTkyOTI4Yi4uM2Q0ODk2ZTkxYmM5
ZGRkNGMyOGYyOTkyYjM4M2U4MDgxZjY4ZTlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuaApAQCAtNjMs
MTQgKzYzLDEzIEBAIHByaXZhdGU6CiB9OwogCiAvLyBBbiBvZmZzY3JlZW4gYnVmZmVyIHRvIGJl
IHJlbmRlcmVkIGJ5IHNvZnR3YXJlLgotY2xhc3MgUkdCQTMyUHJlbXVsdGltcGxpZWRCdWZmZXIg
OiBwdWJsaWMgUmVmQ291bnRlZDxSR0JBMzJQcmVtdWx0aW1wbGllZEJ1ZmZlcj4geworY2xhc3Mg
QkdSQTMyUHJlbXVsdGltcGxpZWRCdWZmZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxCR1JBMzJQcmVt
dWx0aW1wbGllZEJ1ZmZlcj4gewogcHVibGljOgotICAgIHZpcnR1YWwgflJHQkEzMlByZW11bHRp
bXBsaWVkQnVmZmVyKCkge30KKyAgICB2aXJ0dWFsIH5CR1JBMzJQcmVtdWx0aW1wbGllZEJ1ZmZl
cigpIHsgfQogICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIGJlZ2luUGFpbnQo
Y29uc3QgSW50UmVjdCYgZGlydHlSZWN0LCBib29sIG9wYXF1ZSkgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBzd2FwUkdCKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBlbmRQYWludCgpID0gMDsKLSAg
ICB2aXJ0dWFsIGNvbnN0IHZvaWQqIGRhdGEoKSBjb25zdCA9IDA7Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8UkdCQTMyUHJlbXVsdGltcGxpZWRCdWZmZXI+IGNyZWF0ZSgpOworICAgIHZpcnR1YWwg
dm9pZCogZGF0YSgpID0gMDsKKyAgICBzdGF0aWMgUGFzc093blB0cjxCR1JBMzJQcmVtdWx0aW1w
bGllZEJ1ZmZlcj4gY3JlYXRlKCk7CiB9OwogCiBzdGF0aWMgaW5saW5lIGludCBuZXh0UG93ZXJP
ZlR3byhpbnQgbnVtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvVGV4dHVyZU1hcHBlclF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L1RleHR1cmVNYXBwZXJRdC5jcHAKaW5kZXggNDExMTJmNGY2ZWRjMGE1YWU5ZGNmMzRh
NDk3ZWVmZGVlMGQ3NzY1My4uZjQxYTQyMTJkNTQxNTRlMjhhNzY2ZDMxZDU2ZDBjZjRiZjc5ZDkz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGV4dHVy
ZU1hcHBlclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9U
ZXh0dXJlTWFwcGVyUXQuY3BwCkBAIC02Miw2ICs2MiwyMSBAQCB2b2lkIEJpdG1hcFRleHR1cmVR
dDo6ZW5kUGFpbnQoKQogICAgIG1fcGFpbnRlci5lbmQoKTsKIH0KIAordm9pZCBCaXRtYXBUZXh0
dXJlUXQ6OnVwZGF0ZUNvbnRlbnRzKFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBjb25zdCBJbnRS
ZWN0JiByZWN0LCB2b2lkKiBiaXRzKQoreworICAgIG1fcGFpbnRlci5iZWdpbigmbV9waXhtYXAp
OworICAgIFFJbWFnZTo6Rm9ybWF0IHF0Rm9ybWF0ID0gUUltYWdlOjpGb3JtYXRfQVJHQjMyX1By
ZW11bHRpcGxpZWQ7CisgICAgaWYgKHBpeGVsRm9ybWF0ID09IEJHUkZvcm1hdCB8fCBwaXhlbEZv
cm1hdCA9PSBSR0JGb3JtYXQpCisgICAgICAgIHF0Rm9ybWF0ID0gUUltYWdlOjpGb3JtYXRfUkdC
MzI7CisgICAgUUltYWdlIGltYWdlKHN0YXRpY19jYXN0PHVjaGFyKj4oYml0cyksIHJlY3Qud2lk
dGgoKSwgcmVjdC5oZWlnaHQoKSwgcXRGb3JtYXQpOworICAgIGlmIChwaXhlbEZvcm1hdCA9PSBC
R1JGb3JtYXQgfHwgcGl4ZWxGb3JtYXQgPT0gQkdSQUZvcm1hdCkKKyAgICAgICAgaW1hZ2UgPSBp
bWFnZS5yZ2JTd2FwcGVkKCk7CisgICAgbV9wYWludGVyLnNldENvbXBvc2l0aW9uTW9kZShRUGFp
bnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZSk7CisgICAgbV9wYWludGVyLmRyYXdJbWFnZShy
ZWN0LCBpbWFnZSk7CisgICAgbV9wYWludGVyLmVuZCgpOworfQorCisKIGJvb2wgQml0bWFwVGV4
dHVyZVF0OjpzYXZlKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICByZXR1cm4gbV9waXhtYXAu
c2F2ZShwYXRoLCAiUE5HIik7CkBAIC0yMTQsNyArMjI5LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVy
UXQ6OmVuZFBhaW50aW5nKCkKIH0KIAogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKLWNsYXNz
IFJHQkEzMlByZW11bHRpbXBsaWVkQnVmZmVyUXQgOiBwdWJsaWMgUkdCQTMyUHJlbXVsdGltcGxp
ZWRCdWZmZXIgeworY2xhc3MgQkdSQTMyUHJlbXVsdGltcGxpZWRCdWZmZXJRdCA6IHB1YmxpYyBC
R1JBMzJQcmVtdWx0aW1wbGllZEJ1ZmZlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dCogYmVnaW5QYWludChjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIG9w
YXF1ZSkKICAgICB7CkBAIC0yMjgsMjIgKzI0MywxNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biAmbV9wYWludGVyOwogICAgIH0KIAotICAgIHZvaWQgc3dhcFJHQigpCi0gICAgewotICAgICAg
ICBtX2ltYWdlID0gbV9pbWFnZS5yZ2JTd2FwcGVkKCk7Ci0gICAgfQotCiAgICAgdmlydHVhbCB2
b2lkIGVuZFBhaW50KCkgeyBtX3BhaW50ZXIuZW5kKCk7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IHZv
aWQqIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlLmNvbnN0Qml0cygpOyB9CisgICAgdmly
dHVhbCB2b2lkKiBkYXRhKCkgeyByZXR1cm4gbV9pbWFnZS5iaXRzKCk7IH0KIAogcHJpdmF0ZToK
ICAgICBRUGFpbnRlciBtX3BhaW50ZXI7CiAgICAgUUltYWdlIG1faW1hZ2U7CiB9OwogCi1QYXNz
UmVmUHRyPFJHQkEzMlByZW11bHRpbXBsaWVkQnVmZmVyPiBSR0JBMzJQcmVtdWx0aW1wbGllZEJ1
ZmZlcjo6Y3JlYXRlKCkKK1Bhc3NPd25QdHI8QkdSQTMyUHJlbXVsdGltcGxpZWRCdWZmZXI+IEJH
UkEzMlByZW11bHRpbXBsaWVkQnVmZmVyOjpjcmVhdGUoKQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgUkdCQTMyUHJlbXVsdGltcGxpZWRCdWZmZXJRdCgpKTsKKyAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IEJHUkEzMlByZW11bHRpbXBsaWVkQnVmZmVyUXQoKSk7CiB9CiAKIHVpbnQ2NF90IHVp
ZEZvckltYWdlKEltYWdlKiBpbWFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L1RleHR1cmVNYXBwZXJRdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvVGV4dHVyZU1hcHBlclF0LmgKaW5kZXggODRiYzE4ODA5NzRiYTE0M2Rk
MjBhOTc0MWY0MDk4OWEzNzk1NTZjNS4uZGU1NzE5NzRmOTg4MjExMTFjODU1ODJmMGEzNmVkZWNj
Zjk5MzFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
VGV4dHVyZU1hcHBlclF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvVGV4dHVyZU1hcHBlclF0LmgKQEAgLTQxLDYgKzQxLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBwYWNrKCk7CiAgICAgdmlydHVhbCB2b2lkIHVucGFjaygpOwogICAgIHZpcnR1YWwg
Ym9vbCBpc1BhY2tlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNQYWNrZWQ7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlQ29udGVudHMoUGl4ZWxGb3JtYXQsIGNvbnN0IEludFJlY3QmLCB2b2lkKiBi
aXRzKTsKIAogICAgIFFQYWludGVyKiBwYWludGVyKCkgeyByZXR1cm4gJm1fcGFpbnRlcjsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXIuaAppbmRleCBlNGE5NzFjZWJlMTFjOGEwMTQ1NWVjOWYwYTgxODc1ZjE1NGMz
YWM0Li4yNzA1OGFhY2FjZDU2M2M1ZGFkYTkzMWI0NTc1MGY3ODc1ZTUwMjMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgY2xhc3MgVGV4dHVyZU1hcHBlcjsKIC8vIEEgMkQgdGV4
dHVyZSB0aGF0IGNhbiBiZSB0aGUgdGFyZ2V0IG9mIHNvZnR3YXJlIG9yIEdMIHJlbmRlcmluZy4K
IGNsYXNzIEJpdG1hcFRleHR1cmUgIDogcHVibGljIFJlZkNvdW50ZWQ8Qml0bWFwVGV4dHVyZT4g
ewogcHVibGljOgorICAgIGVudW0gUGl4ZWxGb3JtYXQgeyBCR1JBRm9ybWF0LCBSR0JBRm9ybWF0
LCBCR1JGb3JtYXQsIFJHQkZvcm1hdCB9OwogICAgIEJpdG1hcFRleHR1cmUoKSA6IG1fbG9ja0Nv
dW50KDApIHt9CiAgICAgdmlydHVhbCB+Qml0bWFwVGV4dHVyZSgpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBkZXN0cm95KCkgeyB9CkBAIC02Niw2ICs2NywxMCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KiBiZWdpblBhaW50KGNvbnN0IEludFJlY3QmIGRp
cnR5UmVjdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBlbmRQYWludCgpID0gMDsKKworICAgIC8v
IEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCBCaXRtYXBUZXh0dXJlIG1pZ2h0IG1vZGlmeSB0aGUg
Yml0cyBkaXJlY3RseSAoc3dpenpsZSkuCisgICAgLy8gVGh1cywgdGhpcyBtZXRob2QgaXMgb25s
eSByZWNvbW1lbmRlZCBmb3IgYnVmZmVyIHVwZGF0ZSwgc3VjaCBhcyB1c2VkIGJ5IFdlYktpdDIu
CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRzKFBpeGVsRm9ybWF0LCBjb25zdCBJbnRS
ZWN0Jiwgdm9pZCogYml0cykgPSAwOwogICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFwaGljc0NvbnRl
eHQqIGJlZ2luUGFpbnRNZWRpYSgpCiAgICAgewogICAgICAgICByZXR1cm4gYmVnaW5QYWludChJ
bnRSZWN0KDAsIDAsIHNpemUoKS53aWR0aCgpLCBzaXplKCkuaGVpZ2h0KCkpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108824</attachid>
            <date>2011-09-27 05:00:29 -0700</date>
            <delta_ts>2011-09-27 09:27:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68808-20110927130026.patch</filename>
            <type>text/plain</type>
            <size>10465</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU5NDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOWM1MTVhMDVmOGY3YzU2
OGViYTY1MDZmMTdkYTJmMzY0NTFhYWFlLi5iM2FkYjIwOTkzOTcwODE2MjBiNDgxZDI1OWNlMDdk
MGE1NWY4MGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDktMjYgIE5vJ2Ft
IFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAgICBbVGV4bWFw
XVtRdF0gUmVmYWN0b3IgdGV4dHVyZS11cGxvYWQgdG8gYWxsb3cgZGlyZWN0IGNodW5rIHVwZGF0
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MDgK
KworICAgICAgICBBZGQgYSBmdW5jdGlvbiB0byBCaXRtYXBUZXh0dXJlIGZvciBkaXJlY3QgcGl4
ZWwgdXBkYXRlcy4KKyAgICAgICAgTW9kaWZ5IEJpdG1hcFRleHR1cmVHTDo6ZW5kUGFpbnQgdG8g
dXNlIHRoYXQgZnVuY3Rpb24uIFNpbmNlIHRoZSBCR1JBCisgICAgICAgIHRvIFJHQkEgc3dpenps
aW5nIGlzIGRvbmUgaW5zaWRlIHRoYXQgZnVuY3Rpb24sIHRoZXJlJ3Mgbm8gbmVlZCBmb3IgdGhl
IAorICAgICAgICBSR0JBMzJQcmVtdWx0aXBsaWVkQnVmZmVyIGNsYXNzIHRvIGNvbnRhaW4gc3Vj
aCBmdW5jdGlvbi4gQWxzbywKKyAgICAgICAgUkdCQTMyUHJlbXVsdGlwbGllZEJ1ZmZlciB3YXMg
cmVuYW1lZCB0byBCR1JBMzJQcmVtdWx0aXBsaWVkQnVmZmVyLCBjb3JyZWN0aW5nCisgICAgICAg
IGFuIG9sZCBtaXN0YWtlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cy4gRXhpc3RpbmcgdGVzdHMgaW4gTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcgdGVzdCB0aGlzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6
OmJlZ2luUGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUdMOjplbmRQYWlu
dCk6CisgICAgICAgIChXZWJDb3JlOjpzd2l6emxlQkdSQVRvUkdCQSk6CisgICAgICAgIChXZWJD
b3JlOjpCaXRtYXBUZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmg6CisgICAgICAgIChXZWJDb3JlOjpC
R1JBMzJQcmVtdWx0aW1wbGllZEJ1ZmZlcjo6fkJHUkEzMlByZW11bHRpbXBsaWVkQnVmZmVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9UZXh0dXJlTWFwcGVyUXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZVF0Ojp1cGRhdGVDb250ZW50cyk6CisgICAgICAg
IChXZWJDb3JlOjpCR1JBMzJQcmVtdWx0aW1wbGllZEJ1ZmZlclF0OjpkYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OkJHUkEzMlByZW11bHRpbXBsaWVkQnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3F0L1RleHR1cmVNYXBwZXJRdC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmg6CisKIDIwMTEtMDktMjYgIEFuZHJl
YXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW51c2VkIHZhcmlh
YmxlIGluIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzZW5kTmV0d29ya1JlcXVlc3QuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBl
ckdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJl
TWFwcGVyR0wuY3BwCmluZGV4IGZlOGI4OTRjNTY2Mjg5ZjJjYTE0Yjg0MzA2NzVhZDQyZmQwOTA4
ZTguLjljMTQzZWZhZWFkYjcwNTRhYjkxM2Y4YTQ5MGNiOTlmOTRmMjM5ZDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJl
TWFwcGVyR0wuY3BwCkBAIC0yMzgsNiArMjM4LDcgQEAgcHVibGljOgogICAgIGlubGluZSBGbG9h
dFNpemUgcmVsYXRpdmVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9yZWxhdGl2ZVNpemU7IH0KICAg
ICB2b2lkIHNldFRleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlckdMKiB0ZXhtYXApIHsgbV90ZXh0
dXJlTWFwcGVyID0gdGV4bWFwOyB9CiAKKyAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzKFBpeGVsRm9y
bWF0LCBjb25zdCBJbnRSZWN0Jiwgdm9pZCopOwogICAgIHZvaWQgcGFjaygpCiAgICAgewogICAg
ICAgICAvLyBUaGlzIGlzIGN1cnJlbnRseSBhIHN0dWIuCkBAIC0yNjUsNyArMjY2LDcgQEAgcHJp
dmF0ZToKICAgICBGbG9hdFNpemUgbV9yZWxhdGl2ZVNpemU7CiAgICAgYm9vbCBtX29wYXF1ZTsK
ICAgICBJbnRTaXplIG1fdGV4dHVyZVNpemU7Ci0gICAgUmVmUHRyPFJHQkEzMlByZW11bHRpbXBs
aWVkQnVmZmVyPiBtX2J1ZmZlcjsKKyAgICBPd25QdHI8QkdSQTMyUHJlbXVsdGltcGxpZWRCdWZm
ZXI+IG1fYnVmZmVyOwogICAgIEludFJlY3QgbV9kaXJ0eVJlY3Q7CiAgICAgR0x1aW50IG1fZmJv
OwogICAgIEdMdWludCBtX3JibzsKQEAgLTUyMyw3ICs1MjQsNyBAQCB2b2lkIEJpdG1hcFRleHR1
cmVHTDo6cmVzZXQoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSwgYm9vbCBvcGFxdWUpCiAKIFBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0KiBCaXRtYXBUZXh0dXJlR0w6OmJlZ2luUGFpbnQoY29uc3QgSW50
UmVjdCYgZGlydHlSZWN0KQogewotICAgIG1fYnVmZmVyID0gUkdCQTMyUHJlbXVsdGltcGxpZWRC
dWZmZXI6OmNyZWF0ZSgpOworICAgIG1fYnVmZmVyID0gQkdSQTMyUHJlbXVsdGltcGxpZWRCdWZm
ZXI6OmNyZWF0ZSgpOwogICAgIG1fZGlydHlSZWN0ID0gZGlydHlSZWN0OwogICAgIHJldHVybiBt
X2J1ZmZlci0+YmVnaW5QYWludChkaXJ0eVJlY3QsIG1fb3BhcXVlKTsKIH0KQEAgLTUzMywxNSAr
NTM0LDYyIEBAIHZvaWQgQml0bWFwVGV4dHVyZUdMOjplbmRQYWludCgpCiAgICAgaWYgKCFtX2J1
ZmZlcikKICAgICAgICAgcmV0dXJuOwogICAgIG1fYnVmZmVyLT5lbmRQYWludCgpOworICAgIHVw
ZGF0ZUNvbnRlbnRzKEJHUkFGb3JtYXQsIG1fZGlydHlSZWN0LCBtX2J1ZmZlci0+ZGF0YSgpKTsK
KyAgICBHTF9DTUQoZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX2lkKSkKKyAgICBtX2J1
ZmZlci5jbGVhcigpOworfQorCisjaWZkZWYgVEVYTUFQX09QRU5HTF9FU18yCitzdGF0aWMgdm9p
ZCBzd2l6emxlQkdSQVRvUkdCQSh1aW50MzJfdCogZGF0YSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkK
K3sKKyAgICBpbnQgd2lkdGggPSBzaXplLndpZHRoKCk7CisgICAgaW50IGhlaWdodCA9IHNpemUu
aGVpZ2h0KCk7CisgICAgZm9yIChpbnQgeSA9IDA7IHkgPCBoZWlnaHQ7ICsreSkgeworICAgICAg
ICB1aW50MzJfdCogcCA9IGRhdGEgKyB5ICogd2lkdGg7CisgICAgICAgIGZvciAoaW50IHggPSAw
OyB4IDwgd2lkdGg7ICsreCkKKyAgICAgICAgICAgIHBbeF0gPSAoKHBbeF0gPDwgMTYpICYgMHhm
ZjAwMDApIHwgKChwW3hdID4+IDE2KSAmIDB4ZmYpIHwgKHBbeF0gJiAweGZmMDBmZjAwKTsKKyAg
ICB9Cit9CisjZW5kaWYKKwordm9pZCBCaXRtYXBUZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKFBp
eGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBjb25zdCBJbnRSZWN0JiByZWN0LCB2b2lkKiBiaXRzKQor
ewogICAgIEdMX0NNRChnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1faWQpKQogI2lmZGVm
IFRFWE1BUF9PUEVOR0xfRVNfMgotICAgIC8vIEZJWE1FOiB1c2Ugc2hhZGVycyBmb3IgUkdCQS0+
QkdSQSBzd2FwIGlmIHRoaXMgYmVjb21lcyBhIHBlcmZvcm1hbmNlIGlzc3VlLgotICAgIG1fYnVm
ZmVyLT5zd2FwUkdCKCk7Ci0gICAgR0xfQ01EKGdsVGV4U3ViSW1hZ2UyRChHTF9URVhUVVJFXzJE
LCAwLCBtX2RpcnR5UmVjdC54KCksIG1fZGlydHlSZWN0LnkoKSwgbV9kaXJ0eVJlY3Qud2lkdGgo
KSwgbV9kaXJ0eVJlY3QuaGVpZ2h0KCksIEdMX1JHQkEsIEdMX1VOU0lHTkVEX0JZVEUsIG1fYnVm
ZmVyLT5kYXRhKCkpKQorICAgIGJvb2wgc2hvdWxkU3dpenpsZSA9IGZhbHNlOworI2VuZGlmCisK
KyAgICBHTGludCBnbEZvcm1hdCA9IEdMX1JHQkE7CisgICAgc3dpdGNoIChwaXhlbEZvcm1hdCkg
eworICAgIGNhc2UgUkdCQUZvcm1hdDoKKyAgICAgICAgZ2xGb3JtYXQgPSBHTF9SR0JBOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFJHQkZvcm1hdDoKKyAgICAgICAgZ2xGb3JtYXQgPSBHTF9S
R0I7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQkdSQUZvcm1hdDoKKyNpZmRlZiBURVhNQVBf
T1BFTkdMX0VTXzIKKyAgICAgICAgc2hvdWxkU3dpenpsZSA9IHRydWU7CisgICAgICAgIGdsRm9y
bWF0ID0gR0xfUkdCQTsKICNlbHNlCi0gICAgR0xfQ01EKGdsVGV4U3ViSW1hZ2UyRChHTF9URVhU
VVJFXzJELCAwLCBtX2RpcnR5UmVjdC54KCksIG1fZGlydHlSZWN0LnkoKSwgbV9kaXJ0eVJlY3Qu
d2lkdGgoKSwgbV9kaXJ0eVJlY3QuaGVpZ2h0KCksIEdMX0JHUkEsIEdMX1VOU0lHTkVEX0JZVEUs
IG1fYnVmZmVyLT5kYXRhKCkpKQorICAgICAgICBnbEZvcm1hdCA9IEdMX0JHUkE7CiAjZW5kaWYK
LSAgICBtX2J1ZmZlci5jbGVhcigpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJHUkZvcm1h
dDoKKyNpZmRlZiBURVhNQVBfT1BFTkdMX0VTXzIKKyAgICAgICAgc2hvdWxkU3dpenpsZSA9IHRy
dWU7CisgICAgICAgIGdsRm9ybWF0ID0gR0xfUkdCOworI2Vsc2UKKyAgICAgICAgZ2xGb3JtYXQg
PSBHTF9CR1I7CisjZW5kaWYKKyAgICAgICAgIGJyZWFrOworICAgIH0KKworI2lmZGVmIFRFWE1B
UF9PUEVOR0xfRVNfMgorICAgIGlmIChzaG91bGRTd2l6emxlKQorICAgICAgICBzd2l6emxlQkdS
QVRvUkdCQShzdGF0aWNfY2FzdDx1aW50MzJfdCo+KGJpdHMpLCByZWN0LnNpemUoKSk7CisjZW5k
aWYKKyAgICBHTF9DTUQoZ2xUZXhTdWJJbWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAsIHJlY3QueCgp
LCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpLCBnbEZvcm1hdCwgR0xfVU5T
SUdORURfQllURSwgYml0cykpCiB9CiAKIHZvaWQgQml0bWFwVGV4dHVyZUdMOjpzZXRDb250ZW50
c1RvSW1hZ2UoSW1hZ2UqIGltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5oCmluZGV4IDMwNWI0OTZlODVj
YTVhZWE4ZWNhYmRkMjU4Nzg5MWM0NjU5MjkyOGIuLjNkNDg5NmU5MWJjOWRkZDRjMjhmMjk5MmIz
ODNlODA4MWY2OGU5ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmgKQEAgLTYzLDE0ICs2MywxMyBAQCBw
cml2YXRlOgogfTsKIAogLy8gQW4gb2Zmc2NyZWVuIGJ1ZmZlciB0byBiZSByZW5kZXJlZCBieSBz
b2Z0d2FyZS4KLWNsYXNzIFJHQkEzMlByZW11bHRpbXBsaWVkQnVmZmVyIDogcHVibGljIFJlZkNv
dW50ZWQ8UkdCQTMyUHJlbXVsdGltcGxpZWRCdWZmZXI+IHsKK2NsYXNzIEJHUkEzMlByZW11bHRp
bXBsaWVkQnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8QkdSQTMyUHJlbXVsdGltcGxpZWRCdWZm
ZXI+IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5SR0JBMzJQcmVtdWx0aW1wbGllZEJ1ZmZlcigp
IHt9CisgICAgdmlydHVhbCB+QkdSQTMyUHJlbXVsdGltcGxpZWRCdWZmZXIoKSB7IH0KICAgICB2
aXJ0dWFsIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KiBiZWdpblBhaW50KGNvbnN0IEludFJlY3Qm
IGRpcnR5UmVjdCwgYm9vbCBvcGFxdWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3dhcFJHQigp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZW5kUGFpbnQoKSA9IDA7Ci0gICAgdmlydHVhbCBjb25z
dCB2b2lkKiBkYXRhKCkgY29uc3QgPSAwOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJHQkEzMlBy
ZW11bHRpbXBsaWVkQnVmZmVyPiBjcmVhdGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQqIGRhdGEoKSA9
IDA7CisgICAgc3RhdGljIFBhc3NPd25QdHI8QkdSQTMyUHJlbXVsdGltcGxpZWRCdWZmZXI+IGNy
ZWF0ZSgpOwogfTsKIAogc3RhdGljIGlubGluZSBpbnQgbmV4dFBvd2VyT2ZUd28oaW50IG51bSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1RleHR1cmVN
YXBwZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9UZXh0dXJl
TWFwcGVyUXQuY3BwCmluZGV4IDQxMTEyZjRmNmVkYzBhNWFlOWRjZjM0YTQ5N2VlZmRlZTBkNzc2
NTMuLmY0MWE0MjEyZDU0MTU0ZTI4YTc2NmQzMWQ1NmQwY2Y0YmY3OWQ5MzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1RleHR1cmVNYXBwZXJRdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGV4dHVyZU1hcHBlclF0
LmNwcApAQCAtNjIsNiArNjIsMjEgQEAgdm9pZCBCaXRtYXBUZXh0dXJlUXQ6OmVuZFBhaW50KCkK
ICAgICBtX3BhaW50ZXIuZW5kKCk7CiB9CiAKK3ZvaWQgQml0bWFwVGV4dHVyZVF0Ojp1cGRhdGVD
b250ZW50cyhQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgY29uc3QgSW50UmVjdCYgcmVjdCwgdm9p
ZCogYml0cykKK3sKKyAgICBtX3BhaW50ZXIuYmVnaW4oJm1fcGl4bWFwKTsKKyAgICBRSW1hZ2U6
OkZvcm1hdCBxdEZvcm1hdCA9IFFJbWFnZTo6Rm9ybWF0X0FSR0IzMl9QcmVtdWx0aXBsaWVkOwor
ICAgIGlmIChwaXhlbEZvcm1hdCA9PSBCR1JGb3JtYXQgfHwgcGl4ZWxGb3JtYXQgPT0gUkdCRm9y
bWF0KQorICAgICAgICBxdEZvcm1hdCA9IFFJbWFnZTo6Rm9ybWF0X1JHQjMyOworICAgIFFJbWFn
ZSBpbWFnZShzdGF0aWNfY2FzdDx1Y2hhcio+KGJpdHMpLCByZWN0LndpZHRoKCksIHJlY3QuaGVp
Z2h0KCksIHF0Rm9ybWF0KTsKKyAgICBpZiAocGl4ZWxGb3JtYXQgPT0gQkdSRm9ybWF0IHx8IHBp
eGVsRm9ybWF0ID09IEJHUkFGb3JtYXQpCisgICAgICAgIGltYWdlID0gaW1hZ2UucmdiU3dhcHBl
ZCgpOworICAgIG1fcGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0
aW9uTW9kZV9Tb3VyY2UpOworICAgIG1fcGFpbnRlci5kcmF3SW1hZ2UocmVjdCwgaW1hZ2UpOwor
ICAgIG1fcGFpbnRlci5lbmQoKTsKK30KKworCiBib29sIEJpdG1hcFRleHR1cmVRdDo6c2F2ZShj
b25zdCBTdHJpbmcmIHBhdGgpCiB7CiAgICAgcmV0dXJuIG1fcGl4bWFwLnNhdmUocGF0aCwgIlBO
RyIpOwpAQCAtMjE0LDcgKzIyOSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclF0OjplbmRQYWludGlu
ZygpCiB9CiAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCi1jbGFzcyBSR0JBMzJQcmVtdWx0
aW1wbGllZEJ1ZmZlclF0IDogcHVibGljIFJHQkEzMlByZW11bHRpbXBsaWVkQnVmZmVyIHsKK2Ns
YXNzIEJHUkEzMlByZW11bHRpbXBsaWVkQnVmZmVyUXQgOiBwdWJsaWMgQkdSQTMyUHJlbXVsdGlt
cGxpZWRCdWZmZXIgewogcHVibGljOgogICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFwaGljc0NvbnRl
eHQqIGJlZ2luUGFpbnQoY29uc3QgSW50UmVjdCYgcmVjdCwgYm9vbCBvcGFxdWUpCiAgICAgewpA
QCAtMjI4LDIyICsyNDMsMTcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gJm1fcGFpbnRlcjsK
ICAgICB9CiAKLSAgICB2b2lkIHN3YXBSR0IoKQotICAgIHsKLSAgICAgICAgbV9pbWFnZSA9IG1f
aW1hZ2UucmdiU3dhcHBlZCgpOwotICAgIH0KLQogICAgIHZpcnR1YWwgdm9pZCBlbmRQYWludCgp
IHsgbV9wYWludGVyLmVuZCgpOyB9Ci0gICAgdmlydHVhbCBjb25zdCB2b2lkKiBkYXRhKCkgY29u
c3QgeyByZXR1cm4gbV9pbWFnZS5jb25zdEJpdHMoKTsgfQorICAgIHZpcnR1YWwgdm9pZCogZGF0
YSgpIHsgcmV0dXJuIG1faW1hZ2UuYml0cygpOyB9CiAKIHByaXZhdGU6CiAgICAgUVBhaW50ZXIg
bV9wYWludGVyOwogICAgIFFJbWFnZSBtX2ltYWdlOwogfTsKIAotUGFzc1JlZlB0cjxSR0JBMzJQ
cmVtdWx0aW1wbGllZEJ1ZmZlcj4gUkdCQTMyUHJlbXVsdGltcGxpZWRCdWZmZXI6OmNyZWF0ZSgp
CitQYXNzT3duUHRyPEJHUkEzMlByZW11bHRpbXBsaWVkQnVmZmVyPiBCR1JBMzJQcmVtdWx0aW1w
bGllZEJ1ZmZlcjo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJHQkEzMlBy
ZW11bHRpbXBsaWVkQnVmZmVyUXQoKSk7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBCR1JBMzJQ
cmVtdWx0aW1wbGllZEJ1ZmZlclF0KCkpOwogfQogCiB1aW50NjRfdCB1aWRGb3JJbWFnZShJbWFn
ZSogaW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9UZXh0dXJlTWFwcGVyUXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L1RleHR1cmVNYXBwZXJRdC5oCmluZGV4IDg0YmMxODgwOTc0YmExNDNkZDIwYTk3NDFmNDA5ODlh
Mzc5NTU2YzUuLmRlNTcxOTc0Zjk4ODIxMTExYzg1NTgyZjBhMzZlZGVjY2Y5OTMxZTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1RleHR1cmVNYXBwZXJR
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1RleHR1cmVNYXBw
ZXJRdC5oCkBAIC00MSw2ICs0MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFjaygp
OwogICAgIHZpcnR1YWwgdm9pZCB1bnBhY2soKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYWNrZWQo
KSBjb25zdCB7IHJldHVybiBtX2lzUGFja2VkOyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNv
bnRlbnRzKFBpeGVsRm9ybWF0LCBjb25zdCBJbnRSZWN0Jiwgdm9pZCogYml0cyk7CiAKICAgICBR
UGFpbnRlciogcGFpbnRlcigpIHsgcmV0dXJuICZtX3BhaW50ZXI7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgK
aW5kZXggZTRhOTcxY2ViZTExYzhhMDE0NTVlYzlmMGE4MTg3NWYxNTRjM2FjNC4uMjcwNThhYWNh
Y2Q1NjNjNWRhZGE5MzFiNDU3NTBmNzg3NWU1MDIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCkBAIC00Niw2
ICs0Niw3IEBAIGNsYXNzIFRleHR1cmVNYXBwZXI7CiAvLyBBIDJEIHRleHR1cmUgdGhhdCBjYW4g
YmUgdGhlIHRhcmdldCBvZiBzb2Z0d2FyZSBvciBHTCByZW5kZXJpbmcuCiBjbGFzcyBCaXRtYXBU
ZXh0dXJlICA6IHB1YmxpYyBSZWZDb3VudGVkPEJpdG1hcFRleHR1cmU+IHsKIHB1YmxpYzoKKyAg
ICBlbnVtIFBpeGVsRm9ybWF0IHsgQkdSQUZvcm1hdCwgUkdCQUZvcm1hdCwgQkdSRm9ybWF0LCBS
R0JGb3JtYXQgfTsKICAgICBCaXRtYXBUZXh0dXJlKCkgOiBtX2xvY2tDb3VudCgwKSB7fQogICAg
IHZpcnR1YWwgfkJpdG1hcFRleHR1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgp
IHsgfQpAQCAtNjYsNiArNjcsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dCogYmVnaW5QYWludChjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZW5kUGFpbnQoKSA9IDA7CisKKyAgICAvLyBGb3IgcGVyZm9ybWFu
Y2UgcmVhc29ucywgQml0bWFwVGV4dHVyZSBtaWdodCBtb2RpZnkgdGhlIGJpdHMgZGlyZWN0bHkg
KHN3aXp6bGUpLgorICAgIC8vIFRodXMsIHRoaXMgbWV0aG9kIGlzIG9ubHkgcmVjb21tZW5kZWQg
Zm9yIGJ1ZmZlciB1cGRhdGUsIHN1Y2ggYXMgdXNlZCBieSBXZWJLaXQyLgorICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVDb250ZW50cyhQaXhlbEZvcm1hdCwgY29uc3QgSW50UmVjdCYsIHZvaWQqIGJp
dHMpID0gMDsKICAgICB2aXJ0dWFsIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KiBiZWdpblBhaW50
TWVkaWEoKQogICAgIHsKICAgICAgICAgcmV0dXJuIGJlZ2luUGFpbnQoSW50UmVjdCgwLCAwLCBz
aXplKCkud2lkdGgoKSwgc2l6ZSgpLmhlaWdodCgpKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>