<?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>107560</bug_id>
          
          <creation_ts>2013-01-22 08:46:39 -0800</creation_ts>
          <short_desc>[Qt] RGB -&gt; BGR is wrong on big endian</short_desc>
          <delta_ts>2013-02-05 05:03:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Images</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Allan Sandfeld Jensen">allan.jensen</reporter>
          <assigned_to name="Allan Sandfeld Jensen">allan.jensen</assigned_to>
          <cc>noam</cc>
    
    <cc>zherczeg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>813064</commentid>
    <comment_count>0</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-01-22 08:46:39 -0800</bug_when>
    <thetext>In ImageBufferQt we do some conversion from RGB to BGR. While the code doesn&apos;t say why, the reason it is needed is because Qt uses ARGB and JavaScript canvas expect RGBA, and storing ABGR as a 32bit vector happens to produce a RGBA byte-order on a little endian machine. This is ofcourse wrong on a bit endian machine.

The conversion should be fixed, and the code and its reason made clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813070</commentid>
    <comment_count>1</comment_count>
      <attachid>183997</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-01-22 08:52:14 -0800</bug_when>
    <thetext>Created attachment 183997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813074</commentid>
    <comment_count>2</comment_count>
      <attachid>183999</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-01-22 08:59:28 -0800</bug_when>
    <thetext>Created attachment 183999
Patch

Fix copyRGBAToPremultipliedQRgb path</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813076</commentid>
    <comment_count>3</comment_count>
      <attachid>183999</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-01-22 09:07:33 -0800</bug_when>
    <thetext>Comment on attachment 183999
Patch

Removing review. The code ihas a few identified mistakes that only trigger with canvas code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813088</commentid>
    <comment_count>4</comment_count>
      <attachid>183999</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-01-22 09:20:09 -0800</bug_when>
    <thetext>Comment on attachment 183999
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        Replace the conversion to methods that make it clearer what is going on. 
&gt; +        The routines are also optimized compared to the existing by avoiding going
&gt; +        over the WebCore Color class, and unswitching branches from the loop.

Tests?

&gt; Source/WebCore/platform/graphics/qt/ImageBufferQt.cpp:277
&gt; +    const QRgb* srcData = (const QRgb*)image.constScanLine(originy);

reinterpret_cast please.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813097</commentid>
    <comment_count>5</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-01-22 09:40:39 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 183999 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=183999&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +        Replace the conversion to methods that make it clearer what is going on. 
&gt; &gt; +        The routines are also optimized compared to the existing by avoiding going
&gt; &gt; +        over the WebCore Color class, and unswitching branches from the loop.
&gt; 
&gt; Tests?
&gt; 
It is tested by existing tests in fast/canvas for instance. I would keep a watch on http://build.webkit.sed.hu/results/ARMv7 Linux Qt5 Release (Test)/r140405 (7739)/fast/canvas/canvas-putImageData-pretty-diff.html for instance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813099</commentid>
    <comment_count>6</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-01-22 09:41:18 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 183999 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=183999&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; &gt; +        Replace the conversion to methods that make it clearer what is going on. 
&gt; &gt; &gt; +        The routines are also optimized compared to the existing by avoiding going
&gt; &gt; &gt; +        over the WebCore Color class, and unswitching branches from the loop.
&gt; &gt; 
&gt; &gt; Tests?
&gt; &gt; 
&gt; It is tested by existing tests in fast/canvas for instance. I would keep a watch on http://build.webkit.sed.hu/results/ARMv7 Linux Qt5 Release (Test)/r140405 (7739)/fast/canvas/canvas-putImageData-pretty-diff.html for instance.

OK, would be good to mention it in the changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813150</commentid>
    <comment_count>7</comment_count>
      <attachid>184005</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-01-22 10:26:38 -0800</bug_when>
    <thetext>Created attachment 184005
Patch

Fixed problem with non-zero x offsets</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814161</commentid>
    <comment_count>8</comment_count>
      <attachid>184221</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-01-23 06:38:28 -0800</bug_when>
    <thetext>Created attachment 184221
Patch

Use reinterpret_cast, and other cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824390</commentid>
    <comment_count>9</comment_count>
      <attachid>186386</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-04 08:35:15 -0800</bug_when>
    <thetext>Created attachment 186386
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825360</commentid>
    <comment_count>10</comment_count>
      <attachid>186386</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-05 04:02:57 -0800</bug_when>
    <thetext>Comment on attachment 186386
Patch

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

LGTM beside 2 nitpicks.

&gt; Source/WebCore/platform/graphics/qt/ImageBufferQt.cpp:201
&gt; +    to[0] = from.red();
&gt; +    to[1] = from.green();
&gt; +    to[2] = from.blue();
&gt; +    to[3] = from.alpha();

Somebody in the future might come here and rewrite this using bit shifting if he feels like it.
A comment would be great to explain why this is the only right way.

Maybe quote the spec at http://www.w3.org/TR/2011/WD-2dcontext-20110525/#pixel-manipulation ?

&gt; Source/WebCore/platform/graphics/qt/ImageBufferQt.cpp:253
&gt; +        const unsigned* srcRow = reinterpret_cast&lt;const unsigned*&gt;(image.constScanLine(originy + y)) + originx;

This could use RGBA32 to keep the type abstraction of colorFromPremultipliedARGB and some Color methods.

&gt; Source/WebCore/platform/graphics/qt/ImageBufferQt.cpp:316
&gt; +        unsigned* destRow = destData + y * numColumns;

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825389</commentid>
    <comment_count>11</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-05 05:03:45 -0800</bug_when>
    <thetext>Committed r141886: &lt;http://trac.webkit.org/changeset/141886&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183997</attachid>
            <date>2013-01-22 08:52:14 -0800</date>
            <delta_ts>2013-01-22 08:59:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107560-20130122174830.patch</filename>
            <type>text/plain</type>
            <size>6296</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU2MWQ2ZGI0MzcyMjVm
NDY2ZTE0OGFhZTIyZDEzZTEyYTY1Yjc5Ni4uMWY4MzY1ZjAzODhjNzVjOTZlMjc2Mjc5ZjZlNDgz
NGZiNzVlMzEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBACiAyMDEzLTAxLTIyICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgogCisgICAgICAgIFtR
dF0gUkdCIC0+IEJHUiBpcyB3cm9uZyBvbiBiaWcgZW5kaWFuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc1NjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHRoZSBjb252ZXJzaW9uIHRvIG1l
dGhvZHMgdGhhdCBtYWtlIGl0IGNsZWFyZXIgd2hhdCBpcyBnb2luZyBvbi4gCisgICAgICAgIFRo
ZSByb3V0aW5lcyBhcmUgYWxzbyBvcHRpbWl6ZWQgY29tcGFyZWQgdG8gdGhlIGV4aXN0aW5nIGJ5
IGF2b2lkaW5nIGdvaW5nCisgICAgICAgIG92ZXIgdGhlIFdlYkNvcmUgQ29sb3IgY2xhc3MsIGFu
ZCB1bnN3aXRjaGluZyBicmFuY2hlcyBmcm9tIHRoZSBsb29wLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb3B5
UVJnYlRvUkdCQSk6CisgICAgICAgIChXZWJDb3JlOjpjb3B5UHJlbXVsdGlwbGllZFFSZ2JUb1JH
QkEpOgorICAgICAgICAoV2ViQ29yZTo6Y29weVJHQkFUb1FSZ2IpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29weVJHQkFUb1ByZW11bHRpcGxpZWRRUmdiKToKKyAgICAgICAgKFdlYkNvcmU6OmdldElt
YWdlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6cHV0Qnl0ZUFycmF5KToK
KworMjAxMy0wMS0yMiAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRpZ2lh
LmNvbT4KKwogICAgICAgICBbUXRdIEJveCBzaGFkb3dzIG9uIGEgdHJhbnNwYXJlbmN5IGxheWVy
IGlzIHZlcnkgc2xvdwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA3NTQ3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKaW5kZXggOGIwYjMyYTZkOGFmNGVkNWI2OWYwMGJiMGNi
NWE4Yzc0ODM2MDJjYy4uY2I4NzRmYzI1ODUwNDg0MjIzZTZkOWVhOGFkNWJkODU3MzljODY4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZm
ZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VC
dWZmZXJRdC5jcHAKQEAgLTE5MywxNCArMTkzLDQ0IEBAIHZvaWQgSW1hZ2VCdWZmZXI6OnBsYXRm
b3JtVHJhbnNmb3JtQ29sb3JTcGFjZShjb25zdCBWZWN0b3I8aW50PiYgbG9va1VwVGFibGUpCiAg
ICAgICAgIG1fZGF0YS5tX3BhaW50ZXItPmJlZ2luKCZtX2RhdGEubV9waXhtYXApOwogfQogCi1z
dGF0aWMgaW5saW5lIHF1aW50MzIgY29udmVydEFCR1JUb0FSR0IocXVpbnQzMiBwaXhlbCkKK3N0
YXRpYyBpbmxpbmUgdm9pZCBjb3B5UVJnYlRvUkdCQShRUmdiIGZyb20sIHVjaGFyKiB0bykKIHsK
LSAgICByZXR1cm4gKChwaXhlbCA8PCAxNikgJiAweGZmMDAwMCkgfCAoKHBpeGVsID4+IDE2KSAm
IDB4ZmYpIHwgKHBpeGVsICYgMHhmZjAwZmYwMCk7CisgICAgdG9bMF0gPSBxUmVkKGZyb20pOwor
ICAgIHRvWzFdID0gcUdyZWVuKGZyb20pOworICAgIHRvWzJdID0gcUJsdWUoZnJvbSk7CisgICAg
dG9bM10gPSBxQWxwaGEoZnJvbSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgcXVpbnQzMiBjb252ZXJ0
QVJHQlRvQUJHUihxdWludDMyIHBpeGVsKQorc3RhdGljIGlubGluZSB2b2lkIGNvcHlQcmVtdWx0
aXBsaWVkUVJnYlRvUkdCQShRUmdiIGZyb20sIHVjaGFyKiB0bykKIHsKLSAgICByZXR1cm4gY29u
dmVydEFCR1JUb0FSR0IocGl4ZWwpOworICAgIHVjaGFyIGFscGhhID0gcUFscGhhKGZyb20pOwor
ICAgIGlmIChhbHBoYSAmJiBhbHBoYSA8IDI1NSkgeworICAgICAgICB0b1swXSA9IHFSZWQoZnJv
bSkgKiAyNTUgLyBhbHBoYTsKKyAgICAgICAgdG9bMV0gPSBxR3JlZW4oZnJvbSkgKiAyNTUgLyBh
bHBoYTsKKyAgICAgICAgdG9bMl0gPSBxQmx1ZShmcm9tKSAqIDI1NSAvIGFscGhhOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHRvWzBdID0gcVJlZChmcm9tKTsKKyAgICAgICAgdG9bMV0gPSBxR3Jl
ZW4oZnJvbSk7CisgICAgICAgIHRvWzJdID0gcUJsdWUoZnJvbSk7CisgICAgfQorICAgIHRvWzNd
ID0gYWxwaGE7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBjb3B5UkdCQVRvUVJnYihjb25zdCB1
Y2hhciogZnJvbSwgUVJnYiYgdG8pCit7CisgICAgdG8gPSBxUmdiYShmcm9tWzBdLCBmcm9tWzFd
LCBmcm9tWzJdLCBmcm9tWzNdKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGNvcHlSR0JBVG9Q
cmVtdWx0aXBsaWVkUVJnYihjb25zdCB1Y2hhciogZnJvbSwgUVJnYiYgdG8pCit7CisgICAgdWNo
YXIgYWxwaGEgPSBmcm9tWzNdOworICAgIGlmIChhbHBoYSAmJiBhbHBoYSA8IDI1NSkgeworICAg
ICAgICB1Y2hhciByZWQgPSAoZnJvbVswXSAqIGFscGhhICsgMjU0KSAvIDI1NTsKKyAgICAgICAg
dWNoYXIgZ3JlZW4gPSAoZnJvbVswXSAqIGFscGhhICsgMjU0KSAvIDI1NTsKKyAgICAgICAgdWNo
YXIgYmx1ZSA9IChmcm9tWzBdICogYWxwaGEgKyAyNTQpIC8gMjU1OworICAgICAgICB0byA9IHFS
Z2JhKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKKyAgICB9IGVsc2UKKyAgICAgICAgdG8gPSBx
UmdiYShmcm9tWzBdLCBmcm9tWzFdLCBmcm9tWzJdLCBhbHBoYSk7CiB9CiAKIHRlbXBsYXRlIDxN
dWx0aXBseSBtdWx0aXBsaWVkPgpAQCAtMjQzLDIyICsyNzMsMTkgQEAgUGFzc1JlZlB0cjxVaW50
OENsYW1wZWRBcnJheT4gZ2V0SW1hZ2VEYXRhKGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IElt
YWdlQnVmZmUKIAogICAgIEFTU0VSVCghaW1hZ2UuaXNOdWxsKCkpOwogCi0gICAgY29uc3QgaW50
IGJ5dGVzUGVyTGluZSA9IGltYWdlLmJ5dGVzUGVyTGluZSgpOwotICAgIGNvbnN0IHVjaGFyKiBi
aXRzID0gaW1hZ2UuY29uc3RCaXRzKCk7Ci0KLSAgICBxdWludDMyKiBkZXN0Um93cyA9IHJlaW50
ZXJwcmV0X2Nhc3RfcHRyPHF1aW50MzIqPigmZGF0YVtkZXN0eSAqIHJlY3Qud2lkdGgoKSAqIDQg
KyBkZXN0eCAqIDRdKTsKLSAgICBmb3IgKGludCB5ID0gMDsgeSA8IG51bVJvd3M7ICsreSkgewot
ICAgICAgICBjb25zdCBxdWludDMyKiBzY2FuTGluZSA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPGNv
bnN0IHF1aW50MzIqPihiaXRzICsgKHkgKyBvcmlnaW55KSAqIGJ5dGVzUGVyTGluZSk7Ci0gICAg
ICAgIGZvciAoaW50IHggPSAwOyB4IDwgbnVtQ29sdW1uczsgeCsrKSB7Ci0gICAgICAgICAgICBR
UmdiIHBpeGVsID0gc2NhbkxpbmVbeCArIG9yaWdpbnhdOwotICAgICAgICAgICAgQ29sb3IgcGl4
ZWxDb2xvcjsKLSAgICAgICAgICAgIGlmIChtdWx0aXBsaWVkID09IFVubXVsdGlwbGllZCkKLSAg
ICAgICAgICAgICAgICBwaXhlbENvbG9yID0gY29sb3JGcm9tUHJlbXVsdGlwbGllZEFSR0IoQ29s
b3IocVJlZChwaXhlbCksIHFHcmVlbihwaXhlbCksIHFCbHVlKHBpeGVsKSwgcUFscGhhKHBpeGVs
KSkucmdiKCkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHBpeGVsQ29sb3Ig
PSBDb2xvcihxUmVkKHBpeGVsKSwgcUdyZWVuKHBpeGVsKSwgcUJsdWUocGl4ZWwpLCBxQWxwaGEo
cGl4ZWwpKTsKLSAgICAgICAgICAgIGRlc3RSb3dzW3hdID0gY29udmVydEFSR0JUb0FCR1IocGl4
ZWxDb2xvci5yZ2IoKSk7CisgICAgLy8gVGhlIENhbnZhcyAyRCBDb250ZXh0IGV4cGVjdHMgUkdC
QSBvcmRlciwgd2hpbGUgUXQgdXNlcyAzMmJpdCBRUmdiIChBUkdCL0JHUkEpLgorICAgIGNvbnN0
IFFSZ2IqIHNyY0RhdGEgPSAoY29uc3QgUVJnYiopaW1hZ2UuY29uc3RTY2FuTGluZShvcmlnaW55
KTsKKyAgICB1Y2hhciogZGVzdERhdGEgPSAmZGF0YVtkZXN0eSAqIHJlY3Qud2lkdGgoKSAqIDQg
KyBkZXN0eCAqIDRdOworICAgIGlmIChtdWx0aXBsaWVkID09IFVubXVsdGlwbGllZCkgeworICAg
ICAgICBmb3IgKGludCB5ID0gMDsgeSA8IG51bVJvd3M7ICsreSkgeworICAgICAgICAgICAgZm9y
IChpbnQgeCA9IDA7IHggPCBudW1Db2x1bW5zOyB4KyspCisgICAgICAgICAgICAgICAgY29weVBy
ZW11bHRpcGxpZWRRUmdiVG9SR0JBKCpzcmNEYXRhKyssIGRlc3REYXRhICs9IDQpOworICAgICAg
ICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yIChpbnQgeSA9IDA7IHkgPCBudW1Sb3dzOyAr
K3kpIHsKKyAgICAgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgbnVtQ29sdW1uczsgeCsrKQor
ICAgICAgICAgICAgICAgIGNvcHlRUmdiVG9SR0JBKCpzcmNEYXRhKyssIGRlc3REYXRhICs9IDQp
OwogICAgICAgICB9Ci0gICAgICAgIGRlc3RSb3dzICs9IHJlY3Qud2lkdGgoKTsKICAgICB9CiAK
ICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKQEAgLTMwNiwyMSArMzMzLDIwIEBAIHZvaWQg
SW1hZ2VCdWZmZXI6OnB1dEJ5dGVBcnJheShNdWx0aXBseSBtdWx0aXBsaWVkLCBVaW50OENsYW1w
ZWRBcnJheSogc291cmNlLCBjCiAKICAgICAvLyBOT1RFOiBGb3IgdW5tdWx0aXBsaWVkIGlucHV0
IGRhdGEsIHdlIGRvIHRoZSBwcmVtdWx0aXBsaWNhdGlvbiBiZWxvdy4KICAgICBRSW1hZ2UgaW1h
Z2UobnVtQ29sdW1ucywgbnVtUm93cywgUUltYWdlOjpGb3JtYXRfQVJHQjMyX1ByZW11bHRpcGxp
ZWQpOwotICAgIHVjaGFyKiBiaXRzID0gaW1hZ2UuYml0cygpOwotICAgIGNvbnN0IGludCBieXRl
c1BlckxpbmUgPSBpbWFnZS5ieXRlc1BlckxpbmUoKTsKIAotICAgIGNvbnN0IHF1aW50MzIqIHNy
Y1NjYW5MaW5lID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8Y29uc3QgcXVpbnQzMio+KHNvdXJjZS0+
ZGF0YSgpICsgb3JpZ2lueSAqIHNyY0J5dGVzUGVyUm93ICsgb3JpZ2lueCAqIDQpOworICAgIGNv
bnN0IHVjaGFyKiBzcmNEYXRhID0gc291cmNlLT5kYXRhKCkgKyBvcmlnaW55ICogc3JjQnl0ZXNQ
ZXJSb3cgKyBvcmlnaW54ICogNDsKKyAgICBRUmdiKiBkZXN0RGF0YSA9IChRUmdiKilpbWFnZS5i
aXRzKCk7CiAKLSAgICBmb3IgKGludCB5ID0gMDsgeSA8IG51bVJvd3M7ICsreSkgewotICAgICAg
ICBxdWludDMyKiBkZXN0U2NhbkxpbmUgPSByZWludGVycHJldF9jYXN0X3B0cjxxdWludDMyKj4o
Yml0cyArIHkgKiBieXRlc1BlckxpbmUpOwotICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IG51
bUNvbHVtbnM7IHgrKykgewotICAgICAgICAgICAgcXVpbnQzMiBwaXhlbCA9IGNvbnZlcnRBQkdS
VG9BUkdCKHNyY1NjYW5MaW5lW3hdKTsKLSAgICAgICAgICAgIGlmIChtdWx0aXBsaWVkID09IFVu
bXVsdGlwbGllZCkKLSAgICAgICAgICAgICAgICBkZXN0U2NhbkxpbmVbeF0gPSBwcmVtdWx0aXBs
aWVkQVJHQkZyb21Db2xvcihDb2xvcihwaXhlbCkpOwotICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIGRlc3RTY2FuTGluZVt4XSA9IHBpeGVsOworICAgIGlmIChtdWx0aXBsaWVkID09
IFVubXVsdGlwbGllZCkgeworICAgICAgICBmb3IgKGludCB5ID0gMDsgeSA8IG51bVJvd3M7ICsr
eSkgeworICAgICAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCBudW1Db2x1bW5zOyB4KyspCisg
ICAgICAgICAgICAgICAgY29weVJHQkFUb1FSZ2Ioc3JjRGF0YSArPSA0LCAqZGVzdERhdGErKyk7
CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBmb3IgKGludCB5ID0gMDsgeSA8IG51
bVJvd3M7ICsreSkgeworICAgICAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCBudW1Db2x1bW5z
OyB4KyspCisgICAgICAgICAgICAgICAgY29weVJHQkFUb1ByZW11bHRpcGxpZWRRUmdiKHNyY0Rh
dGEgKz0gNCwgKmRlc3REYXRhKyspOwogICAgICAgICB9Ci0gICAgICAgIHNyY1NjYW5MaW5lICs9
IHNvdXJjZVNpemUud2lkdGgoKTsKICAgICB9CiAKICAgICBib29sIGlzUGFpbnRpbmcgPSBtX2Rh
dGEubV9wYWludGVyLT5pc0FjdGl2ZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183999</attachid>
            <date>2013-01-22 08:59:28 -0800</date>
            <delta_ts>2013-01-22 10:26:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107560-20130122175545.patch</filename>
            <type>text/plain</type>
            <size>6296</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU2MWQ2ZGI0MzcyMjVm
NDY2ZTE0OGFhZTIyZDEzZTEyYTY1Yjc5Ni4uMWY4MzY1ZjAzODhjNzVjOTZlMjc2Mjc5ZjZlNDgz
NGZiNzVlMzEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBACiAyMDEzLTAxLTIyICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgogCisgICAgICAgIFtR
dF0gUkdCIC0+IEJHUiBpcyB3cm9uZyBvbiBiaWcgZW5kaWFuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc1NjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHRoZSBjb252ZXJzaW9uIHRvIG1l
dGhvZHMgdGhhdCBtYWtlIGl0IGNsZWFyZXIgd2hhdCBpcyBnb2luZyBvbi4gCisgICAgICAgIFRo
ZSByb3V0aW5lcyBhcmUgYWxzbyBvcHRpbWl6ZWQgY29tcGFyZWQgdG8gdGhlIGV4aXN0aW5nIGJ5
IGF2b2lkaW5nIGdvaW5nCisgICAgICAgIG92ZXIgdGhlIFdlYkNvcmUgQ29sb3IgY2xhc3MsIGFu
ZCB1bnN3aXRjaGluZyBicmFuY2hlcyBmcm9tIHRoZSBsb29wLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb3B5
UVJnYlRvUkdCQSk6CisgICAgICAgIChXZWJDb3JlOjpjb3B5UHJlbXVsdGlwbGllZFFSZ2JUb1JH
QkEpOgorICAgICAgICAoV2ViQ29yZTo6Y29weVJHQkFUb1FSZ2IpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29weVJHQkFUb1ByZW11bHRpcGxpZWRRUmdiKToKKyAgICAgICAgKFdlYkNvcmU6OmdldElt
YWdlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6cHV0Qnl0ZUFycmF5KToK
KworMjAxMy0wMS0yMiAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRpZ2lh
LmNvbT4KKwogICAgICAgICBbUXRdIEJveCBzaGFkb3dzIG9uIGEgdHJhbnNwYXJlbmN5IGxheWVy
IGlzIHZlcnkgc2xvdwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA3NTQ3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKaW5kZXggOGIwYjMyYTZkOGFmNGVkNWI2OWYwMGJiMGNi
NWE4Yzc0ODM2MDJjYy4uMDlhMDA5ZjJlOTdiOGE3OTgxY2VhZDIxODkyYjJkZGI4MmFmNmY5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZm
ZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VC
dWZmZXJRdC5jcHAKQEAgLTE5MywxNCArMTkzLDQ0IEBAIHZvaWQgSW1hZ2VCdWZmZXI6OnBsYXRm
b3JtVHJhbnNmb3JtQ29sb3JTcGFjZShjb25zdCBWZWN0b3I8aW50PiYgbG9va1VwVGFibGUpCiAg
ICAgICAgIG1fZGF0YS5tX3BhaW50ZXItPmJlZ2luKCZtX2RhdGEubV9waXhtYXApOwogfQogCi1z
dGF0aWMgaW5saW5lIHF1aW50MzIgY29udmVydEFCR1JUb0FSR0IocXVpbnQzMiBwaXhlbCkKK3N0
YXRpYyBpbmxpbmUgdm9pZCBjb3B5UVJnYlRvUkdCQShRUmdiIGZyb20sIHVjaGFyKiB0bykKIHsK
LSAgICByZXR1cm4gKChwaXhlbCA8PCAxNikgJiAweGZmMDAwMCkgfCAoKHBpeGVsID4+IDE2KSAm
IDB4ZmYpIHwgKHBpeGVsICYgMHhmZjAwZmYwMCk7CisgICAgdG9bMF0gPSBxUmVkKGZyb20pOwor
ICAgIHRvWzFdID0gcUdyZWVuKGZyb20pOworICAgIHRvWzJdID0gcUJsdWUoZnJvbSk7CisgICAg
dG9bM10gPSBxQWxwaGEoZnJvbSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgcXVpbnQzMiBjb252ZXJ0
QVJHQlRvQUJHUihxdWludDMyIHBpeGVsKQorc3RhdGljIGlubGluZSB2b2lkIGNvcHlQcmVtdWx0
aXBsaWVkUVJnYlRvUkdCQShRUmdiIGZyb20sIHVjaGFyKiB0bykKIHsKLSAgICByZXR1cm4gY29u
dmVydEFCR1JUb0FSR0IocGl4ZWwpOworICAgIHVjaGFyIGFscGhhID0gcUFscGhhKGZyb20pOwor
ICAgIGlmIChhbHBoYSAmJiBhbHBoYSA8IDI1NSkgeworICAgICAgICB0b1swXSA9IHFSZWQoZnJv
bSkgKiAyNTUgLyBhbHBoYTsKKyAgICAgICAgdG9bMV0gPSBxR3JlZW4oZnJvbSkgKiAyNTUgLyBh
bHBoYTsKKyAgICAgICAgdG9bMl0gPSBxQmx1ZShmcm9tKSAqIDI1NSAvIGFscGhhOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHRvWzBdID0gcVJlZChmcm9tKTsKKyAgICAgICAgdG9bMV0gPSBxR3Jl
ZW4oZnJvbSk7CisgICAgICAgIHRvWzJdID0gcUJsdWUoZnJvbSk7CisgICAgfQorICAgIHRvWzNd
ID0gYWxwaGE7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBjb3B5UkdCQVRvUVJnYihjb25zdCB1
Y2hhciogZnJvbSwgUVJnYiYgdG8pCit7CisgICAgdG8gPSBxUmdiYShmcm9tWzBdLCBmcm9tWzFd
LCBmcm9tWzJdLCBmcm9tWzNdKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGNvcHlSR0JBVG9Q
cmVtdWx0aXBsaWVkUVJnYihjb25zdCB1Y2hhciogZnJvbSwgUVJnYiYgdG8pCit7CisgICAgdWNo
YXIgYWxwaGEgPSBmcm9tWzNdOworICAgIGlmIChhbHBoYSAmJiBhbHBoYSA8IDI1NSkgeworICAg
ICAgICB1Y2hhciByZWQgPSAoZnJvbVswXSAqIGFscGhhICsgMjU0KSAvIDI1NTsKKyAgICAgICAg
dWNoYXIgZ3JlZW4gPSAoZnJvbVsxXSAqIGFscGhhICsgMjU0KSAvIDI1NTsKKyAgICAgICAgdWNo
YXIgYmx1ZSA9IChmcm9tWzJdICogYWxwaGEgKyAyNTQpIC8gMjU1OworICAgICAgICB0byA9IHFS
Z2JhKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKKyAgICB9IGVsc2UKKyAgICAgICAgdG8gPSBx
UmdiYShmcm9tWzBdLCBmcm9tWzFdLCBmcm9tWzJdLCBhbHBoYSk7CiB9CiAKIHRlbXBsYXRlIDxN
dWx0aXBseSBtdWx0aXBsaWVkPgpAQCAtMjQzLDIyICsyNzMsMTkgQEAgUGFzc1JlZlB0cjxVaW50
OENsYW1wZWRBcnJheT4gZ2V0SW1hZ2VEYXRhKGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IElt
YWdlQnVmZmUKIAogICAgIEFTU0VSVCghaW1hZ2UuaXNOdWxsKCkpOwogCi0gICAgY29uc3QgaW50
IGJ5dGVzUGVyTGluZSA9IGltYWdlLmJ5dGVzUGVyTGluZSgpOwotICAgIGNvbnN0IHVjaGFyKiBi
aXRzID0gaW1hZ2UuY29uc3RCaXRzKCk7Ci0KLSAgICBxdWludDMyKiBkZXN0Um93cyA9IHJlaW50
ZXJwcmV0X2Nhc3RfcHRyPHF1aW50MzIqPigmZGF0YVtkZXN0eSAqIHJlY3Qud2lkdGgoKSAqIDQg
KyBkZXN0eCAqIDRdKTsKLSAgICBmb3IgKGludCB5ID0gMDsgeSA8IG51bVJvd3M7ICsreSkgewot
ICAgICAgICBjb25zdCBxdWludDMyKiBzY2FuTGluZSA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPGNv
bnN0IHF1aW50MzIqPihiaXRzICsgKHkgKyBvcmlnaW55KSAqIGJ5dGVzUGVyTGluZSk7Ci0gICAg
ICAgIGZvciAoaW50IHggPSAwOyB4IDwgbnVtQ29sdW1uczsgeCsrKSB7Ci0gICAgICAgICAgICBR
UmdiIHBpeGVsID0gc2NhbkxpbmVbeCArIG9yaWdpbnhdOwotICAgICAgICAgICAgQ29sb3IgcGl4
ZWxDb2xvcjsKLSAgICAgICAgICAgIGlmIChtdWx0aXBsaWVkID09IFVubXVsdGlwbGllZCkKLSAg
ICAgICAgICAgICAgICBwaXhlbENvbG9yID0gY29sb3JGcm9tUHJlbXVsdGlwbGllZEFSR0IoQ29s
b3IocVJlZChwaXhlbCksIHFHcmVlbihwaXhlbCksIHFCbHVlKHBpeGVsKSwgcUFscGhhKHBpeGVs
KSkucmdiKCkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHBpeGVsQ29sb3Ig
PSBDb2xvcihxUmVkKHBpeGVsKSwgcUdyZWVuKHBpeGVsKSwgcUJsdWUocGl4ZWwpLCBxQWxwaGEo
cGl4ZWwpKTsKLSAgICAgICAgICAgIGRlc3RSb3dzW3hdID0gY29udmVydEFSR0JUb0FCR1IocGl4
ZWxDb2xvci5yZ2IoKSk7CisgICAgLy8gVGhlIENhbnZhcyAyRCBDb250ZXh0IGV4cGVjdHMgUkdC
QSBvcmRlciwgd2hpbGUgUXQgdXNlcyAzMmJpdCBRUmdiIChBUkdCL0JHUkEpLgorICAgIGNvbnN0
IFFSZ2IqIHNyY0RhdGEgPSAoY29uc3QgUVJnYiopaW1hZ2UuY29uc3RTY2FuTGluZShvcmlnaW55
KTsKKyAgICB1Y2hhciogZGVzdERhdGEgPSAmZGF0YVtkZXN0eSAqIHJlY3Qud2lkdGgoKSAqIDQg
KyBkZXN0eCAqIDRdOworICAgIGlmIChtdWx0aXBsaWVkID09IFVubXVsdGlwbGllZCkgeworICAg
ICAgICBmb3IgKGludCB5ID0gMDsgeSA8IG51bVJvd3M7ICsreSkgeworICAgICAgICAgICAgZm9y
IChpbnQgeCA9IDA7IHggPCBudW1Db2x1bW5zOyB4KyspCisgICAgICAgICAgICAgICAgY29weVBy
ZW11bHRpcGxpZWRRUmdiVG9SR0JBKCpzcmNEYXRhKyssIGRlc3REYXRhICs9IDQpOworICAgICAg
ICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yIChpbnQgeSA9IDA7IHkgPCBudW1Sb3dzOyAr
K3kpIHsKKyAgICAgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgbnVtQ29sdW1uczsgeCsrKQor
ICAgICAgICAgICAgICAgIGNvcHlRUmdiVG9SR0JBKCpzcmNEYXRhKyssIGRlc3REYXRhICs9IDQp
OwogICAgICAgICB9Ci0gICAgICAgIGRlc3RSb3dzICs9IHJlY3Qud2lkdGgoKTsKICAgICB9CiAK
ICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKQEAgLTMwNiwyMSArMzMzLDIwIEBAIHZvaWQg
SW1hZ2VCdWZmZXI6OnB1dEJ5dGVBcnJheShNdWx0aXBseSBtdWx0aXBsaWVkLCBVaW50OENsYW1w
ZWRBcnJheSogc291cmNlLCBjCiAKICAgICAvLyBOT1RFOiBGb3IgdW5tdWx0aXBsaWVkIGlucHV0
IGRhdGEsIHdlIGRvIHRoZSBwcmVtdWx0aXBsaWNhdGlvbiBiZWxvdy4KICAgICBRSW1hZ2UgaW1h
Z2UobnVtQ29sdW1ucywgbnVtUm93cywgUUltYWdlOjpGb3JtYXRfQVJHQjMyX1ByZW11bHRpcGxp
ZWQpOwotICAgIHVjaGFyKiBiaXRzID0gaW1hZ2UuYml0cygpOwotICAgIGNvbnN0IGludCBieXRl
c1BlckxpbmUgPSBpbWFnZS5ieXRlc1BlckxpbmUoKTsKIAotICAgIGNvbnN0IHF1aW50MzIqIHNy
Y1NjYW5MaW5lID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8Y29uc3QgcXVpbnQzMio+KHNvdXJjZS0+
ZGF0YSgpICsgb3JpZ2lueSAqIHNyY0J5dGVzUGVyUm93ICsgb3JpZ2lueCAqIDQpOworICAgIGNv
bnN0IHVjaGFyKiBzcmNEYXRhID0gc291cmNlLT5kYXRhKCkgKyBvcmlnaW55ICogc3JjQnl0ZXNQ
ZXJSb3cgKyBvcmlnaW54ICogNDsKKyAgICBRUmdiKiBkZXN0RGF0YSA9IChRUmdiKilpbWFnZS5i
aXRzKCk7CiAKLSAgICBmb3IgKGludCB5ID0gMDsgeSA8IG51bVJvd3M7ICsreSkgewotICAgICAg
ICBxdWludDMyKiBkZXN0U2NhbkxpbmUgPSByZWludGVycHJldF9jYXN0X3B0cjxxdWludDMyKj4o
Yml0cyArIHkgKiBieXRlc1BlckxpbmUpOwotICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IG51
bUNvbHVtbnM7IHgrKykgewotICAgICAgICAgICAgcXVpbnQzMiBwaXhlbCA9IGNvbnZlcnRBQkdS
VG9BUkdCKHNyY1NjYW5MaW5lW3hdKTsKLSAgICAgICAgICAgIGlmIChtdWx0aXBsaWVkID09IFVu
bXVsdGlwbGllZCkKLSAgICAgICAgICAgICAgICBkZXN0U2NhbkxpbmVbeF0gPSBwcmVtdWx0aXBs
aWVkQVJHQkZyb21Db2xvcihDb2xvcihwaXhlbCkpOwotICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIGRlc3RTY2FuTGluZVt4XSA9IHBpeGVsOworICAgIGlmIChtdWx0aXBsaWVkID09
IFVubXVsdGlwbGllZCkgeworICAgICAgICBmb3IgKGludCB5ID0gMDsgeSA8IG51bVJvd3M7ICsr
eSkgeworICAgICAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCBudW1Db2x1bW5zOyB4KyspCisg
ICAgICAgICAgICAgICAgY29weVJHQkFUb1FSZ2Ioc3JjRGF0YSArPSA0LCAqZGVzdERhdGErKyk7
CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBmb3IgKGludCB5ID0gMDsgeSA8IG51
bVJvd3M7ICsreSkgeworICAgICAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCBudW1Db2x1bW5z
OyB4KyspCisgICAgICAgICAgICAgICAgY29weVJHQkFUb1ByZW11bHRpcGxpZWRRUmdiKHNyY0Rh
dGEgKz0gNCwgKmRlc3REYXRhKyspOwogICAgICAgICB9Ci0gICAgICAgIHNyY1NjYW5MaW5lICs9
IHNvdXJjZVNpemUud2lkdGgoKTsKICAgICB9CiAKICAgICBib29sIGlzUGFpbnRpbmcgPSBtX2Rh
dGEubV9wYWludGVyLT5pc0FjdGl2ZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184005</attachid>
            <date>2013-01-22 10:26:38 -0800</date>
            <delta_ts>2013-01-23 06:38:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107560-20130122192254.patch</filename>
            <type>text/plain</type>
            <size>7990</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU2MWQ2ZGI0MzcyMjVm
NDY2ZTE0OGFhZTIyZDEzZTEyYTY1Yjc5Ni4uM2QxNDgyZDE2YTViNmMzOWQ5YTlmNmUxY2RlZmQz
NmI1ZDUzNWM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDEzLTAxLTIyICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgogCisgICAgICAgIFtR
dF0gUkdCIC0+IEJHUiBpcyB3cm9uZyBvbiBiaWcgZW5kaWFuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc1NjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHRoZSBjb252ZXJzaW9uIHRvIG1l
dGhvZHMgdGhhdCBtYWtlIGl0IGNsZWFyZXIgd2hhdCBpcyBnb2luZyBvbi4gCisgICAgICAgIFRo
ZSByb3V0aW5lcyBhcmUgYWxzbyBvcHRpbWl6ZWQgY29tcGFyZWQgdG8gdGhlIGV4aXN0aW5nIGJ5
IGF2b2lkaW5nIGdvaW5nCisgICAgICAgIG92ZXIgdGhlIFdlYkNvcmUgQ29sb3IgY2xhc3MsIGFu
ZCB1bnN3aXRjaGluZyBicmFuY2hlcyBmcm9tIHRoZSBsb29wLgorCisgICAgICAgIFRlc3RlZCBi
eSBleGlzdGluZyB0ZXN0cyBpbiBjYW52YXMgYW5kIGZhc3QvY2FudmFzLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpjb3B5UVJnYlRvUkdCQSk6CisgICAgICAgIChXZWJDb3JlOjpjb3B5UHJlbXVsdGlwbGllZFFS
Z2JUb1JHQkEpOgorICAgICAgICAoV2ViQ29yZTo6Y29weVJHQkFUb1FSZ2IpOgorICAgICAgICAo
V2ViQ29yZTo6Y29weVJHQkFUb1ByZW11bHRpcGxpZWRRUmdiKToKKyAgICAgICAgKFdlYkNvcmU6
OmdldEltYWdlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6cHV0Qnl0ZUFy
cmF5KToKKworMjAxMy0wMS0yMiAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2Vu
QGRpZ2lhLmNvbT4KKwogICAgICAgICBbUXRdIEJveCBzaGFkb3dzIG9uIGEgdHJhbnNwYXJlbmN5
IGxheWVyIGlzIHZlcnkgc2xvdwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA3NTQ3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKaW5kZXggOGIwYjMyYTZkOGFmNGVkNWI2OWYw
MGJiMGNiNWE4Yzc0ODM2MDJjYy4uZjJjM2NkMGVlNWQ1MDJiMzA3OTI5OTc0MzU4MDY0N2Y1NjNl
MThlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1h
Z2VCdWZmZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
SW1hZ2VCdWZmZXJRdC5jcHAKQEAgLTE5MywxNCArMTkzLDQ1IEBAIHZvaWQgSW1hZ2VCdWZmZXI6
OnBsYXRmb3JtVHJhbnNmb3JtQ29sb3JTcGFjZShjb25zdCBWZWN0b3I8aW50PiYgbG9va1VwVGFi
bGUpCiAgICAgICAgIG1fZGF0YS5tX3BhaW50ZXItPmJlZ2luKCZtX2RhdGEubV9waXhtYXApOwog
fQogCi1zdGF0aWMgaW5saW5lIHF1aW50MzIgY29udmVydEFCR1JUb0FSR0IocXVpbnQzMiBwaXhl
bCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBjb3B5UVJnYlRvUkdCQShRUmdiIGZyb20sIHVjaGFyKiB0
bykKIHsKLSAgICByZXR1cm4gKChwaXhlbCA8PCAxNikgJiAweGZmMDAwMCkgfCAoKHBpeGVsID4+
IDE2KSAmIDB4ZmYpIHwgKHBpeGVsICYgMHhmZjAwZmYwMCk7CisgICAgdG9bMF0gPSBxUmVkKGZy
b20pOworICAgIHRvWzFdID0gcUdyZWVuKGZyb20pOworICAgIHRvWzJdID0gcUJsdWUoZnJvbSk7
CisgICAgdG9bM10gPSBxQWxwaGEoZnJvbSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgcXVpbnQzMiBj
b252ZXJ0QVJHQlRvQUJHUihxdWludDMyIHBpeGVsKQorc3RhdGljIGlubGluZSB2b2lkIGNvcHlQ
cmVtdWx0aXBsaWVkUVJnYlRvUkdCQShRUmdiIGZyb20sIHVjaGFyKiB0bykKIHsKLSAgICByZXR1
cm4gY29udmVydEFCR1JUb0FSR0IocGl4ZWwpOworICAgIHVjaGFyIGFscGhhID0gcUFscGhhKGZy
b20pOworICAgIGlmIChhbHBoYSAmJiBhbHBoYSA8IDI1NSkgeworICAgICAgICB0b1swXSA9IHFS
ZWQoZnJvbSkgKiAyNTUgLyBhbHBoYTsKKyAgICAgICAgdG9bMV0gPSBxR3JlZW4oZnJvbSkgKiAy
NTUgLyBhbHBoYTsKKyAgICAgICAgdG9bMl0gPSBxQmx1ZShmcm9tKSAqIDI1NSAvIGFscGhhOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHRvWzBdID0gcVJlZChmcm9tKTsKKyAgICAgICAgdG9bMV0g
PSBxR3JlZW4oZnJvbSk7CisgICAgICAgIHRvWzJdID0gcUJsdWUoZnJvbSk7CisgICAgfQorICAg
IHRvWzNdID0gYWxwaGE7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBjb3B5UkdCQVRvUVJnYihj
b25zdCB1Y2hhciogZnJvbSwgUVJnYiYgdG8pCit7CisgICAgdG8gPSBxUmdiYShmcm9tWzBdLCBm
cm9tWzFdLCBmcm9tWzJdLCBmcm9tWzNdKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGNvcHlS
R0JBVG9QcmVtdWx0aXBsaWVkUVJnYihjb25zdCB1Y2hhciogZnJvbSwgUVJnYiYgdG8pCit7Cisg
ICAgdWNoYXIgYWxwaGEgPSBmcm9tWzNdOworICAgIGlmIChhbHBoYSA8IDI1NSkgeworICAgICAg
ICAvLyAoeCArIDI1NCkgLyAyNTUgaXMgaW50ZWdlciBkaXZpc2lvbiBieSAyNTUgcm91bmRpbmcg
dXAuCisgICAgICAgIHVjaGFyIHJlZCA9IChmcm9tWzBdICogYWxwaGEgKyAyNTQpIC8gMjU1Owor
ICAgICAgICB1Y2hhciBncmVlbiA9IChmcm9tWzFdICogYWxwaGEgKyAyNTQpIC8gMjU1OworICAg
ICAgICB1Y2hhciBibHVlID0gKGZyb21bMl0gKiBhbHBoYSArIDI1NCkgLyAyNTU7CisgICAgICAg
IHRvID0gcVJnYmEocmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEpOworICAgIH0gZWxzZQorICAgICAg
ICB0byA9IHFSZ2JhKGZyb21bMF0sIGZyb21bMV0sIGZyb21bMl0sIGFscGhhKTsKIH0KIAogdGVt
cGxhdGUgPE11bHRpcGx5IG11bHRpcGxpZWQ+CkBAIC0yMTEsNyArMjQyLDcgQEAgUGFzc1JlZlB0
cjxVaW50OENsYW1wZWRBcnJheT4gZ2V0SW1hZ2VEYXRhKGNvbnN0IEludFJlY3QmIHJlY3QsIGNv
bnN0IEltYWdlQnVmZmUKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8VWludDhDbGFt
cGVkQXJyYXk+IHJlc3VsdCA9IFVpbnQ4Q2xhbXBlZEFycmF5OjpjcmVhdGVVbmluaXRpYWxpemVk
KHJlY3Qud2lkdGgoKSAqIHJlY3QuaGVpZ2h0KCkgKiA0KTsKLSAgICB1bnNpZ25lZCBjaGFyKiBk
YXRhID0gcmVzdWx0LT5kYXRhKCk7CisgICAgdWNoYXIqIHJlc3VsdERhdGEgPSByZXN1bHQtPmRh
dGEoKTsKIAogICAgIGlmIChyZWN0LngoKSA8IDAgfHwgcmVjdC55KCkgPCAwIHx8IHJlY3QubWF4
WCgpID4gc2l6ZS53aWR0aCgpIHx8IHJlY3QubWF4WSgpID4gc2l6ZS5oZWlnaHQoKSkKICAgICAg
ICAgcmVzdWx0LT56ZXJvRmlsbCgpOwpAQCAtMjM4LDI3ICsyNjksMzIgQEAgUGFzc1JlZlB0cjxV
aW50OENsYW1wZWRBcnJheT4gZ2V0SW1hZ2VEYXRhKGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0
IEltYWdlQnVmZmUKICAgICAgICAgZW5keSA9IHNpemUuaGVpZ2h0KCk7CiAgICAgaW50IG51bVJv
d3MgPSBlbmR5IC0gb3JpZ2lueTsKIAorICAgIGNvbnN0IHVuc2lnbmVkIGRlc3RCeXRlc1BlclJv
dyA9IDQgKiByZWN0LndpZHRoKCk7CisKICAgICAvLyBOT1RFOiBGb3IgdW5tdWx0aXBsaWVkIGRh
dGEsIHdlIHVuZG8gdGhlIHByZW11bHRpcGxpY2F0aW9uIGJlbG93LgogICAgIFFJbWFnZSBpbWFn
ZSA9IGltYWdlRGF0YS50b1FJbWFnZSgpLmNvbnZlcnRUb0Zvcm1hdChRSW1hZ2U6OkZvcm1hdF9B
UkdCMzJfUHJlbXVsdGlwbGllZCk7CiAKICAgICBBU1NFUlQoIWltYWdlLmlzTnVsbCgpKTsKIAot
ICAgIGNvbnN0IGludCBieXRlc1BlckxpbmUgPSBpbWFnZS5ieXRlc1BlckxpbmUoKTsKLSAgICBj
b25zdCB1Y2hhciogYml0cyA9IGltYWdlLmNvbnN0Qml0cygpOwotCi0gICAgcXVpbnQzMiogZGVz
dFJvd3MgPSByZWludGVycHJldF9jYXN0X3B0cjxxdWludDMyKj4oJmRhdGFbZGVzdHkgKiByZWN0
LndpZHRoKCkgKiA0ICsgZGVzdHggKiA0XSk7Ci0gICAgZm9yIChpbnQgeSA9IDA7IHkgPCBudW1S
b3dzOyArK3kpIHsKLSAgICAgICAgY29uc3QgcXVpbnQzMiogc2NhbkxpbmUgPSByZWludGVycHJl
dF9jYXN0X3B0cjxjb25zdCBxdWludDMyKj4oYml0cyArICh5ICsgb3JpZ2lueSkgKiBieXRlc1Bl
ckxpbmUpOwotICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IG51bUNvbHVtbnM7IHgrKykgewot
ICAgICAgICAgICAgUVJnYiBwaXhlbCA9IHNjYW5MaW5lW3ggKyBvcmlnaW54XTsKLSAgICAgICAg
ICAgIENvbG9yIHBpeGVsQ29sb3I7Ci0gICAgICAgICAgICBpZiAobXVsdGlwbGllZCA9PSBVbm11
bHRpcGxpZWQpCi0gICAgICAgICAgICAgICAgcGl4ZWxDb2xvciA9IGNvbG9yRnJvbVByZW11bHRp
cGxpZWRBUkdCKENvbG9yKHFSZWQocGl4ZWwpLCBxR3JlZW4ocGl4ZWwpLCBxQmx1ZShwaXhlbCks
IHFBbHBoYShwaXhlbCkpLnJnYigpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICBwaXhlbENvbG9yID0gQ29sb3IocVJlZChwaXhlbCksIHFHcmVlbihwaXhlbCksIHFCbHVlKHBp
eGVsKSwgcUFscGhhKHBpeGVsKSk7Ci0gICAgICAgICAgICBkZXN0Um93c1t4XSA9IGNvbnZlcnRB
UkdCVG9BQkdSKHBpeGVsQ29sb3IucmdiKCkpOworICAgIC8vIFRoZSBDYW52YXMgMkQgQ29udGV4
dCBleHBlY3RzIFJHQkEgb3JkZXIsIHdoaWxlIFF0IHVzZXMgMzJiaXQgUVJnYiAoQVJHQi9CR1JB
KS4KKyAgICBpZiAobXVsdGlwbGllZCA9PSBVbm11bHRpcGxpZWQpIHsKKyAgICAgICAgZm9yIChp
bnQgeSA9IDA7IHkgPCBudW1Sb3dzOyArK3kpIHsKKyAgICAgICAgICAgIGNvbnN0IFFSZ2IqIHNy
Y1JvdyA9ICgoY29uc3QgUVJnYiopaW1hZ2UuY29uc3RTY2FuTGluZShvcmlnaW55ICsgeSkpICsg
b3JpZ2lueDsKKyAgICAgICAgICAgIHVjaGFyKiBkZXN0Um93ID0gcmVzdWx0RGF0YSArIChkZXN0
eSArIHkpICogZGVzdEJ5dGVzUGVyUm93ICsgZGVzdHggKiA0OworICAgICAgICAgICAgZm9yIChp
bnQgeCA9IDA7IHggPCBudW1Db2x1bW5zOyB4KyspIHsKKyAgICAgICAgICAgICAgICBjb3B5UHJl
bXVsdGlwbGllZFFSZ2JUb1JHQkEoKnNyY1JvdysrLCBkZXN0Um93KTsKKyAgICAgICAgICAgICAg
ICBkZXN0Um93ICs9IDQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2Ugewor
ICAgICAgICBmb3IgKGludCB5ID0gMDsgeSA8IG51bVJvd3M7ICsreSkgeworICAgICAgICAgICAg
Y29uc3QgUVJnYiogc3JjUm93ID0gKChjb25zdCBRUmdiKilpbWFnZS5jb25zdFNjYW5MaW5lKG9y
aWdpbnkgKyB5KSkgKyBvcmlnaW54OworICAgICAgICAgICAgdWNoYXIqIGRlc3RSb3cgPSByZXN1
bHREYXRhICsgKGRlc3R5ICsgeSkgKiBkZXN0Qnl0ZXNQZXJSb3cgKyBkZXN0eCAqIDQ7CisgICAg
ICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IG51bUNvbHVtbnM7IHgrKykgeworICAgICAgICAg
ICAgICAgIGNvcHlRUmdiVG9SR0JBKCpzcmNSb3crKywgZGVzdFJvdyk7CisgICAgICAgICAgICAg
ICAgZGVzdFJvdyArPSA0OworICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGRlc3RS
b3dzICs9IHJlY3Qud2lkdGgoKTsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2Uo
KTsKQEAgLTMwMiwyNSArMzM4LDMyIEBAIHZvaWQgSW1hZ2VCdWZmZXI6OnB1dEJ5dGVBcnJheShN
dWx0aXBseSBtdWx0aXBsaWVkLCBVaW50OENsYW1wZWRBcnJheSogc291cmNlLCBjCiAgICAgQVNT
RVJUKGVuZHkgPD0gbV9zaXplLmhlaWdodCgpKTsKICAgICBpbnQgbnVtUm93cyA9IGVuZHkgLSBk
ZXN0eTsKIAotICAgIHVuc2lnbmVkIHNyY0J5dGVzUGVyUm93ID0gNCAqIHNvdXJjZVNpemUud2lk
dGgoKTsKKyAgICBjb25zdCB1bnNpZ25lZCBzcmNCeXRlc1BlclJvdyA9IDQgKiBzb3VyY2VTaXpl
LndpZHRoKCk7CiAKICAgICAvLyBOT1RFOiBGb3IgdW5tdWx0aXBsaWVkIGlucHV0IGRhdGEsIHdl
IGRvIHRoZSBwcmVtdWx0aXBsaWNhdGlvbiBiZWxvdy4KICAgICBRSW1hZ2UgaW1hZ2UobnVtQ29s
dW1ucywgbnVtUm93cywgUUltYWdlOjpGb3JtYXRfQVJHQjMyX1ByZW11bHRpcGxpZWQpOwotICAg
IHVjaGFyKiBiaXRzID0gaW1hZ2UuYml0cygpOwotICAgIGNvbnN0IGludCBieXRlc1BlckxpbmUg
PSBpbWFnZS5ieXRlc1BlckxpbmUoKTsKLQotICAgIGNvbnN0IHF1aW50MzIqIHNyY1NjYW5MaW5l
ID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8Y29uc3QgcXVpbnQzMio+KHNvdXJjZS0+ZGF0YSgpICsg
b3JpZ2lueSAqIHNyY0J5dGVzUGVyUm93ICsgb3JpZ2lueCAqIDQpOwogCi0gICAgZm9yIChpbnQg
eSA9IDA7IHkgPCBudW1Sb3dzOyArK3kpIHsKLSAgICAgICAgcXVpbnQzMiogZGVzdFNjYW5MaW5l
ID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8cXVpbnQzMio+KGJpdHMgKyB5ICogYnl0ZXNQZXJMaW5l
KTsKLSAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCBudW1Db2x1bW5zOyB4KyspIHsKLSAgICAg
ICAgICAgIHF1aW50MzIgcGl4ZWwgPSBjb252ZXJ0QUJHUlRvQVJHQihzcmNTY2FuTGluZVt4XSk7
Ci0gICAgICAgICAgICBpZiAobXVsdGlwbGllZCA9PSBVbm11bHRpcGxpZWQpCi0gICAgICAgICAg
ICAgICAgZGVzdFNjYW5MaW5lW3hdID0gcHJlbXVsdGlwbGllZEFSR0JGcm9tQ29sb3IoQ29sb3Io
cGl4ZWwpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBkZXN0U2NhbkxpbmVb
eF0gPSBwaXhlbDsKKyAgICBRUmdiKiBkZXN0RGF0YSA9IChRUmdiKilpbWFnZS5iaXRzKCk7Cisg
ICAgY29uc3QgdWNoYXIqIHNyY0RhdGEgPSBzb3VyY2UtPmRhdGEoKTsKKworICAgIGlmIChtdWx0
aXBsaWVkID09IFVubXVsdGlwbGllZCkgeworICAgICAgICBmb3IgKGludCB5ID0gMDsgeSA8IG51
bVJvd3M7ICsreSkgeworICAgICAgICAgICAgY29uc3QgdWNoYXIqIHNyY1JvdyA9IHNyY0RhdGEg
KyAob3JpZ2lueSArIHkpICogc3JjQnl0ZXNQZXJSb3cgKyBvcmlnaW54ICogNDsKKyAgICAgICAg
ICAgIFFSZ2IqIGRlc3RSb3cgPSBkZXN0RGF0YSArIHkgKiBudW1Db2x1bW5zOworICAgICAgICAg
ICAgZm9yIChpbnQgeCA9IDA7IHggPCBudW1Db2x1bW5zOyB4KyspIHsKKyAgICAgICAgICAgICAg
ICBjb3B5UkdCQVRvUHJlbXVsdGlwbGllZFFSZ2Ioc3JjUm93LCAqZGVzdFJvdysrKTsKKyAgICAg
ICAgICAgICAgICBzcmNSb3cgKz0gNDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0g
ZWxzZSB7CisgICAgICAgIGZvciAoaW50IHkgPSAwOyB5IDwgbnVtUm93czsgKyt5KSB7CisgICAg
ICAgICAgICBjb25zdCB1Y2hhciogc3JjUm93ID0gc3JjRGF0YSArIChvcmlnaW55ICsgeSkgKiBz
cmNCeXRlc1BlclJvdyArIG9yaWdpbnggKiA0OworICAgICAgICAgICAgUVJnYiogZGVzdFJvdyA9
IGRlc3REYXRhICsgeSAqIG51bUNvbHVtbnM7CisgICAgICAgICAgICBmb3IgKGludCB4ID0gMDsg
eCA8IG51bUNvbHVtbnM7IHgrKykgeworICAgICAgICAgICAgICAgIGNvcHlSR0JBVG9RUmdiKHNy
Y1JvdywgKmRlc3RSb3crKyk7CisgICAgICAgICAgICAgICAgc3JjUm93ICs9IDQ7CisgICAgICAg
ICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgc3JjU2NhbkxpbmUgKz0gc291cmNlU2l6ZS53aWR0
aCgpOwogICAgIH0KIAogICAgIGJvb2wgaXNQYWludGluZyA9IG1fZGF0YS5tX3BhaW50ZXItPmlz
QWN0aXZlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184221</attachid>
            <date>2013-01-23 06:38:28 -0800</date>
            <delta_ts>2013-02-04 08:35:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107560-20130123153443.patch</filename>
            <type>text/plain</type>
            <size>7439</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA2ODVlNWQxYTg5M2Ji
NzVmOGI0MTgzODRkYjFlMTRlODA0ZjhiYy4uOGM1M2ZkODM4ZmVlNWU1Yzk5M2IxZGJjZmNkMjhi
MThmY2Y2ZTQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAxLTIzICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFtR
dF0gUkdCIC0+IEJHUiBpcyB3cm9uZyBvbiBiaWcgZW5kaWFuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc1NjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHRoZSBjb252ZXJzaW9uIHRvIG1l
dGhvZHMgdGhhdCBtYWtlIGl0IGNsZWFyZXIgd2hhdCBpcyBnb2luZyBvbi4gCisgICAgICAgIFRo
ZSByb3V0aW5lcyBhcmUgYWxzbyBvcHRpbWl6ZWQgY29tcGFyZWQgdG8gdGhlIGV4aXN0aW5nIGJ5
IGF2b2lkaW5nIGdvaW5nCisgICAgICAgIG92ZXIgdGhlIFdlYkNvcmUgQ29sb3IgY2xhc3MsIGFu
ZCB1bnN3aXRjaGluZyBicmFuY2hlcyBmcm9tIHRoZSBsb29wLgorCisgICAgICAgIFRlc3RlZCBi
eSBleGlzdGluZyB0ZXN0cyBpbiBjYW52YXMgYW5kIGZhc3QvY2FudmFzLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpjb3B5UVJnYlRvUkdCQSk6CisgICAgICAgIChXZWJDb3JlOjpjb3B5UHJlbXVsdGlwbGllZFFS
Z2JUb1JHQkEpOgorICAgICAgICAoV2ViQ29yZTo6Y29weVJHQkFUb1FSZ2IpOgorICAgICAgICAo
V2ViQ29yZTo6Y29weVJHQkFUb1ByZW11bHRpcGxpZWRRUmdiKToKKyAgICAgICAgKFdlYkNvcmU6
OmdldEltYWdlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6cHV0Qnl0ZUFy
cmF5KToKKwogMjAxMy0wMS0yMyAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIEFkZCBPcHVzIE1JTUUgdHlwZSB0byB0aGUg
bGlzdCBvZiBzdXBwb3J0ZWQgb25lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcAppbmRleCA4YjBiMzJhNmQ4YWY0ZWQ1YjY5
ZjAwYmIwY2I1YThjNzQ4MzYwMmNjLi4yMmE2OGM1OWZkN2RlMDFkNTk3OGIxYWRiZmYwMjIwYThj
NTZiZGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9J
bWFnZUJ1ZmZlclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9JbWFnZUJ1ZmZlclF0LmNwcApAQCAtMTkzLDE0ICsxOTMsNDUgQEAgdm9pZCBJbWFnZUJ1ZmZl
cjo6cGxhdGZvcm1UcmFuc2Zvcm1Db2xvclNwYWNlKGNvbnN0IFZlY3RvcjxpbnQ+JiBsb29rVXBU
YWJsZSkKICAgICAgICAgbV9kYXRhLm1fcGFpbnRlci0+YmVnaW4oJm1fZGF0YS5tX3BpeG1hcCk7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgcXVpbnQzMiBjb252ZXJ0QUJHUlRvQVJHQihxdWludDMyIHBp
eGVsKQorc3RhdGljIGlubGluZSB2b2lkIGNvcHlRUmdiVG9SR0JBKFFSZ2IgZnJvbSwgdWNoYXIq
IHRvKQogewotICAgIHJldHVybiAoKHBpeGVsIDw8IDE2KSAmIDB4ZmYwMDAwKSB8ICgocGl4ZWwg
Pj4gMTYpICYgMHhmZikgfCAocGl4ZWwgJiAweGZmMDBmZjAwKTsKKyAgICB0b1swXSA9IHFSZWQo
ZnJvbSk7CisgICAgdG9bMV0gPSBxR3JlZW4oZnJvbSk7CisgICAgdG9bMl0gPSBxQmx1ZShmcm9t
KTsKKyAgICB0b1szXSA9IHFBbHBoYShmcm9tKTsKIH0KIAotc3RhdGljIGlubGluZSBxdWludDMy
IGNvbnZlcnRBUkdCVG9BQkdSKHF1aW50MzIgcGl4ZWwpCitzdGF0aWMgaW5saW5lIHZvaWQgY29w
eVByZW11bHRpcGxpZWRRUmdiVG9SR0JBKFFSZ2IgZnJvbSwgdWNoYXIqIHRvKQogewotICAgIHJl
dHVybiBjb252ZXJ0QUJHUlRvQVJHQihwaXhlbCk7CisgICAgdWNoYXIgYWxwaGEgPSBxQWxwaGEo
ZnJvbSk7CisgICAgaWYgKGFscGhhICYmIGFscGhhIDwgMjU1KSB7CisgICAgICAgIHRvWzBdID0g
cVJlZChmcm9tKSAqIDI1NSAvIGFscGhhOworICAgICAgICB0b1sxXSA9IHFHcmVlbihmcm9tKSAq
IDI1NSAvIGFscGhhOworICAgICAgICB0b1syXSA9IHFCbHVlKGZyb20pICogMjU1IC8gYWxwaGE7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgdG9bMF0gPSBxUmVkKGZyb20pOworICAgICAgICB0b1sx
XSA9IHFHcmVlbihmcm9tKTsKKyAgICAgICAgdG9bMl0gPSBxQmx1ZShmcm9tKTsKKyAgICB9Cisg
ICAgdG9bM10gPSBhbHBoYTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGNvcHlSR0JBVG9RUmdi
KGNvbnN0IHVjaGFyKiBmcm9tLCBRUmdiJiB0bykKK3sKKyAgICB0byA9IHFSZ2JhKGZyb21bMF0s
IGZyb21bMV0sIGZyb21bMl0sIGZyb21bM10pOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgY29w
eVJHQkFUb1ByZW11bHRpcGxpZWRRUmdiKGNvbnN0IHVjaGFyKiBmcm9tLCBRUmdiJiB0bykKK3sK
KyAgICB1Y2hhciBhbHBoYSA9IGZyb21bM107CisgICAgaWYgKGFscGhhIDwgMjU1KSB7CisgICAg
ICAgIC8vICh4ICsgMjU0KSAvIDI1NSBpcyBpbnRlZ2VyIGRpdmlzaW9uIGJ5IDI1NSByb3VuZGlu
ZyB1cC4KKyAgICAgICAgdWNoYXIgcmVkID0gKGZyb21bMF0gKiBhbHBoYSArIDI1NCkgLyAyNTU7
CisgICAgICAgIHVjaGFyIGdyZWVuID0gKGZyb21bMV0gKiBhbHBoYSArIDI1NCkgLyAyNTU7Cisg
ICAgICAgIHVjaGFyIGJsdWUgPSAoZnJvbVsyXSAqIGFscGhhICsgMjU0KSAvIDI1NTsKKyAgICAg
ICAgdG8gPSBxUmdiYShyZWQsIGdyZWVuLCBibHVlLCBhbHBoYSk7CisgICAgfSBlbHNlCisgICAg
ICAgIHRvID0gcVJnYmEoZnJvbVswXSwgZnJvbVsxXSwgZnJvbVsyXSwgYWxwaGEpOwogfQogCiB0
ZW1wbGF0ZSA8TXVsdGlwbHkgbXVsdGlwbGllZD4KQEAgLTIxMSw3ICsyNDIsNyBAQCBQYXNzUmVm
UHRyPFVpbnQ4Q2xhbXBlZEFycmF5PiBnZXRJbWFnZURhdGEoY29uc3QgSW50UmVjdCYgcmVjdCwg
Y29uc3QgSW1hZ2VCdWZmZQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxVaW50OENs
YW1wZWRBcnJheT4gcmVzdWx0ID0gVWludDhDbGFtcGVkQXJyYXk6OmNyZWF0ZVVuaW5pdGlhbGl6
ZWQocmVjdC53aWR0aCgpICogcmVjdC5oZWlnaHQoKSAqIDQpOwotICAgIHVuc2lnbmVkIGNoYXIq
IGRhdGEgPSByZXN1bHQtPmRhdGEoKTsKKyAgICB1Y2hhciogcmVzdWx0RGF0YSA9IHJlc3VsdC0+
ZGF0YSgpOwogCiAgICAgaWYgKHJlY3QueCgpIDwgMCB8fCByZWN0LnkoKSA8IDAgfHwgcmVjdC5t
YXhYKCkgPiBzaXplLndpZHRoKCkgfHwgcmVjdC5tYXhZKCkgPiBzaXplLmhlaWdodCgpKQogICAg
ICAgICByZXN1bHQtPnplcm9GaWxsKCk7CkBAIC0yMzgsMjcgKzI2OSwyOCBAQCBQYXNzUmVmUHRy
PFVpbnQ4Q2xhbXBlZEFycmF5PiBnZXRJbWFnZURhdGEoY29uc3QgSW50UmVjdCYgcmVjdCwgY29u
c3QgSW1hZ2VCdWZmZQogICAgICAgICBlbmR5ID0gc2l6ZS5oZWlnaHQoKTsKICAgICBpbnQgbnVt
Um93cyA9IGVuZHkgLSBvcmlnaW55OwogCisgICAgY29uc3QgdW5zaWduZWQgZGVzdEJ5dGVzUGVy
Um93ID0gNCAqIHJlY3Qud2lkdGgoKTsKKwogICAgIC8vIE5PVEU6IEZvciB1bm11bHRpcGxpZWQg
ZGF0YSwgd2UgdW5kbyB0aGUgcHJlbXVsdGlwbGljYXRpb24gYmVsb3cuCiAgICAgUUltYWdlIGlt
YWdlID0gaW1hZ2VEYXRhLnRvUUltYWdlKCkuY29udmVydFRvRm9ybWF0KFFJbWFnZTo6Rm9ybWF0
X0FSR0IzMl9QcmVtdWx0aXBsaWVkKTsKIAogICAgIEFTU0VSVCghaW1hZ2UuaXNOdWxsKCkpOwog
Ci0gICAgY29uc3QgaW50IGJ5dGVzUGVyTGluZSA9IGltYWdlLmJ5dGVzUGVyTGluZSgpOwotICAg
IGNvbnN0IHVjaGFyKiBiaXRzID0gaW1hZ2UuY29uc3RCaXRzKCk7Ci0KLSAgICBxdWludDMyKiBk
ZXN0Um93cyA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPHF1aW50MzIqPigmZGF0YVtkZXN0eSAqIHJl
Y3Qud2lkdGgoKSAqIDQgKyBkZXN0eCAqIDRdKTsKKyAgICAvLyBUaGUgQ2FudmFzIDJEIENvbnRl
eHQgZXhwZWN0cyBSR0JBIG9yZGVyLCB3aGlsZSBRdCB1c2VzIDMyYml0IFFSZ2IgKEFSR0IvQkdS
QSkuCiAgICAgZm9yIChpbnQgeSA9IDA7IHkgPCBudW1Sb3dzOyArK3kpIHsKLSAgICAgICAgY29u
c3QgcXVpbnQzMiogc2NhbkxpbmUgPSByZWludGVycHJldF9jYXN0X3B0cjxjb25zdCBxdWludDMy
Kj4oYml0cyArICh5ICsgb3JpZ2lueSkgKiBieXRlc1BlckxpbmUpOwotICAgICAgICBmb3IgKGlu
dCB4ID0gMDsgeCA8IG51bUNvbHVtbnM7IHgrKykgewotICAgICAgICAgICAgUVJnYiBwaXhlbCA9
IHNjYW5MaW5lW3ggKyBvcmlnaW54XTsKLSAgICAgICAgICAgIENvbG9yIHBpeGVsQ29sb3I7Ci0g
ICAgICAgICAgICBpZiAobXVsdGlwbGllZCA9PSBVbm11bHRpcGxpZWQpCi0gICAgICAgICAgICAg
ICAgcGl4ZWxDb2xvciA9IGNvbG9yRnJvbVByZW11bHRpcGxpZWRBUkdCKENvbG9yKHFSZWQocGl4
ZWwpLCBxR3JlZW4ocGl4ZWwpLCBxQmx1ZShwaXhlbCksIHFBbHBoYShwaXhlbCkpLnJnYigpKTsK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBwaXhlbENvbG9yID0gQ29sb3IocVJl
ZChwaXhlbCksIHFHcmVlbihwaXhlbCksIHFCbHVlKHBpeGVsKSwgcUFscGhhKHBpeGVsKSk7Ci0g
ICAgICAgICAgICBkZXN0Um93c1t4XSA9IGNvbnZlcnRBUkdCVG9BQkdSKHBpeGVsQ29sb3Iucmdi
KCkpOworICAgICAgICBjb25zdCBRUmdiKiBzcmNSb3cgPSByZWludGVycHJldF9jYXN0PGNvbnN0
IFFSZ2IqPihpbWFnZS5jb25zdFNjYW5MaW5lKG9yaWdpbnkgKyB5KSkgKyBvcmlnaW54OworICAg
ICAgICB1Y2hhciogZGVzdFJvdyA9IHJlc3VsdERhdGEgKyAoZGVzdHkgKyB5KSAqIGRlc3RCeXRl
c1BlclJvdyArIGRlc3R4ICogNDsKKyAgICAgICAgaWYgKG11bHRpcGxpZWQgPT0gVW5tdWx0aXBs
aWVkKSB7CisgICAgICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IG51bUNvbHVtbnM7IHgrKykg
eworICAgICAgICAgICAgICAgIGNvcHlQcmVtdWx0aXBsaWVkUVJnYlRvUkdCQSgqc3JjUm93Kyss
IGRlc3RSb3cpOworICAgICAgICAgICAgICAgIGRlc3RSb3cgKz0gNDsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgbnVtQ29s
dW1uczsgeCsrKSB7CisgICAgICAgICAgICAgICAgY29weVFSZ2JUb1JHQkEoKnNyY1JvdysrLCBk
ZXN0Um93KTsKKyAgICAgICAgICAgICAgICBkZXN0Um93ICs9IDQ7CisgICAgICAgICAgICB9CiAg
ICAgICAgIH0KLSAgICAgICAgZGVzdFJvd3MgKz0gcmVjdC53aWR0aCgpOwogICAgIH0KIAogICAg
IHJldHVybiByZXN1bHQucmVsZWFzZSgpOwpAQCAtMzAyLDI1ICszMzQsMjggQEAgdm9pZCBJbWFn
ZUJ1ZmZlcjo6cHV0Qnl0ZUFycmF5KE11bHRpcGx5IG11bHRpcGxpZWQsIFVpbnQ4Q2xhbXBlZEFy
cmF5KiBzb3VyY2UsIGMKICAgICBBU1NFUlQoZW5keSA8PSBtX3NpemUuaGVpZ2h0KCkpOwogICAg
IGludCBudW1Sb3dzID0gZW5keSAtIGRlc3R5OwogCi0gICAgdW5zaWduZWQgc3JjQnl0ZXNQZXJS
b3cgPSA0ICogc291cmNlU2l6ZS53aWR0aCgpOworICAgIGNvbnN0IHVuc2lnbmVkIHNyY0J5dGVz
UGVyUm93ID0gNCAqIHNvdXJjZVNpemUud2lkdGgoKTsKIAogICAgIC8vIE5PVEU6IEZvciB1bm11
bHRpcGxpZWQgaW5wdXQgZGF0YSwgd2UgZG8gdGhlIHByZW11bHRpcGxpY2F0aW9uIGJlbG93Lgog
ICAgIFFJbWFnZSBpbWFnZShudW1Db2x1bW5zLCBudW1Sb3dzLCBRSW1hZ2U6OkZvcm1hdF9BUkdC
MzJfUHJlbXVsdGlwbGllZCk7Ci0gICAgdWNoYXIqIGJpdHMgPSBpbWFnZS5iaXRzKCk7Ci0gICAg
Y29uc3QgaW50IGJ5dGVzUGVyTGluZSA9IGltYWdlLmJ5dGVzUGVyTGluZSgpOwogCi0gICAgY29u
c3QgcXVpbnQzMiogc3JjU2NhbkxpbmUgPSByZWludGVycHJldF9jYXN0X3B0cjxjb25zdCBxdWlu
dDMyKj4oc291cmNlLT5kYXRhKCkgKyBvcmlnaW55ICogc3JjQnl0ZXNQZXJSb3cgKyBvcmlnaW54
ICogNCk7CisgICAgUVJnYiogZGVzdERhdGEgPSByZWludGVycHJldF9jYXN0PFFSZ2IqPihpbWFn
ZS5iaXRzKCkpOworICAgIGNvbnN0IHVjaGFyKiBzcmNEYXRhID0gc291cmNlLT5kYXRhKCk7CiAK
ICAgICBmb3IgKGludCB5ID0gMDsgeSA8IG51bVJvd3M7ICsreSkgewotICAgICAgICBxdWludDMy
KiBkZXN0U2NhbkxpbmUgPSByZWludGVycHJldF9jYXN0X3B0cjxxdWludDMyKj4oYml0cyArIHkg
KiBieXRlc1BlckxpbmUpOwotICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IG51bUNvbHVtbnM7
IHgrKykgewotICAgICAgICAgICAgcXVpbnQzMiBwaXhlbCA9IGNvbnZlcnRBQkdSVG9BUkdCKHNy
Y1NjYW5MaW5lW3hdKTsKLSAgICAgICAgICAgIGlmIChtdWx0aXBsaWVkID09IFVubXVsdGlwbGll
ZCkKLSAgICAgICAgICAgICAgICBkZXN0U2NhbkxpbmVbeF0gPSBwcmVtdWx0aXBsaWVkQVJHQkZy
b21Db2xvcihDb2xvcihwaXhlbCkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IGRlc3RTY2FuTGluZVt4XSA9IHBpeGVsOworICAgICAgICBjb25zdCB1Y2hhciogc3JjUm93ID0g
c3JjRGF0YSArIChvcmlnaW55ICsgeSkgKiBzcmNCeXRlc1BlclJvdyArIG9yaWdpbnggKiA0Owor
ICAgICAgICBRUmdiKiBkZXN0Um93ID0gZGVzdERhdGEgKyB5ICogbnVtQ29sdW1uczsKKyAgICAg
ICAgaWYgKG11bHRpcGxpZWQgPT0gVW5tdWx0aXBsaWVkKSB7CisgICAgICAgICAgICBmb3IgKGlu
dCB4ID0gMDsgeCA8IG51bUNvbHVtbnM7IHgrKykgeworICAgICAgICAgICAgICAgIGNvcHlSR0JB
VG9QcmVtdWx0aXBsaWVkUVJnYihzcmNSb3csICpkZXN0Um93KyspOworICAgICAgICAgICAgICAg
IHNyY1JvdyArPSA0OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgZm9yIChpbnQgeCA9IDA7IHggPCBudW1Db2x1bW5zOyB4KyspIHsKKyAgICAgICAgICAgICAg
ICBjb3B5UkdCQVRvUVJnYihzcmNSb3csICpkZXN0Um93KyspOworICAgICAgICAgICAgICAgIHNy
Y1JvdyArPSA0OworICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIHNyY1NjYW5MaW5l
ICs9IHNvdXJjZVNpemUud2lkdGgoKTsKICAgICB9CiAKICAgICBib29sIGlzUGFpbnRpbmcgPSBt
X2RhdGEubV9wYWludGVyLT5pc0FjdGl2ZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186386</attachid>
            <date>2013-02-04 08:35:15 -0800</date>
            <delta_ts>2013-02-05 04:02:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107560-20130204173113.patch</filename>
            <type>text/plain</type>
            <size>9238</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI3NDZjZThmZjk2NDM4
MjllM2ZiYTBhNDkyNTQ3NWNmOWNhNTg3OS4uZGJkNWMwYzg5MzcyMjUwYmRjOTVhZDc0M2I3YTNl
YzA2ZmU4NDczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTA0ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFtR
dF0gUkdCIC0+IEJHUiBpcyB3cm9uZyBvbiBiaWcgZW5kaWFuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc1NjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHRoZSBjb252ZXJzaW9uIHRvIG1l
dGhvZHMgdGhhdCBtYWtlIGl0IGNsZWFyZXIgd2hhdCBpcyBnb2luZyBvbi4gCisgICAgICAgIFRo
ZSByb3V0aW5lcyBhcmUgYWxzbyBvcHRpbWl6ZWQgY29tcGFyZWQgdG8gdGhlIGV4aXN0aW5nIGJ5
IGF2b2lkaW5nIGdvaW5nCisgICAgICAgIG92ZXIgc2xvdyBDb2xvciBjb25zdHJ1Y3Rvci4KKwor
ICAgICAgICBUZXN0ZWQgYnkgZXhpc3RpbmcgdGVzdHMgaW4gY2FudmFzIGFuZCBmYXN0L2NhbnZh
cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmNvbG9yRnJvbVByZW11bHRpcGxpZWRBUkdCKToKKyAgICAgICAgICAgIENsZWFudXAu
CisgICAgICAgIChXZWJDb3JlOjpwcmVtdWx0aXBsaWVkQVJHQkZyb21Db2xvcik6CisgICAgICAg
ICAgICBDbGVhbnVwIGFuZCBjb3JyZWN0IGZvciBhbHBoYSA9IDAuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3IuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29w
eUNvbG9yVG9SR0JBKToKKyAgICAgICAgKFdlYkNvcmU6OmNvcHlSR0JBVG9Db2xvcik6CisgICAg
ICAgIChXZWJDb3JlOjpnZXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZm
ZXI6OnB1dEJ5dGVBcnJheSk6CisKIDIwMTMtMDItMDQgIERtaXRyeSBHb3ptYW4gIDxkZ296bWFu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBbGxvdyB1c2VyIHRvIGNo
YW5nZSBkb2NrIHNpZGUgYnkgZHJhZ2dpbmcgdG9vbGJhcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3IuY3BwCmluZGV4IGYzY2RkYzVmMzcyYmI1MmQyMTA5YTYxNGJlOTUz
NmI4OGY2ZmNmYzIuLjA0ZGM3M2VhNmVhMjdhNzcwY2VhNDJlNmY0ODdiYjJlZWZiNDVmMDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKQEAgLTQxNCwzMSAr
NDE0LDMwIEBAIHZvaWQgQ29sb3I6OmdldEhTTChkb3VibGUmIGh1ZSwgZG91YmxlJiBzYXR1cmF0
aW9uLCBkb3VibGUmIGxpZ2h0bmVzcykgY29uc3QKICAgICAgICAgc2F0dXJhdGlvbiA9ICgobWF4
IC0gbWluKSAvICgyLjAgLSAobWF4ICsgbWluKSkpOwogfQogCi1Db2xvciBjb2xvckZyb21QcmVt
dWx0aXBsaWVkQVJHQih1bnNpZ25lZCBwaXhlbENvbG9yKQorQ29sb3IgY29sb3JGcm9tUHJlbXVs
dGlwbGllZEFSR0IoUkdCQTMyIHBpeGVsQ29sb3IpCiB7Ci0gICAgQ29sb3IgY29sb3I7Ci0KLSAg
ICBpZiAodW5zaWduZWQgYWxwaGEgPSAocGl4ZWxDb2xvciAmIDB4RkYwMDAwMDApID4+IDI0KSB7
Ci0gICAgICAgIGNvbG9yID0gQ29sb3I6OmNyZWF0ZVVuY2hlY2tlZCgKLSAgICAgICAgICAgICAg
ICAgICAgICAgICgocGl4ZWxDb2xvciAmIDB4MDBGRjAwMDApID4+IDE2KSAqIDI1NSAvIGFscGhh
LAotICAgICAgICAgICAgICAgICAgICAgICAgKChwaXhlbENvbG9yICYgMHgwMDAwRkYwMCkgPj4g
OCkgKiAyNTUgLyBhbHBoYSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAocGl4ZWxDb2xvciAm
IDB4MDAwMDAwRkYpICogMjU1IC8gYWxwaGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGFs
cGhhKTsKKyAgICBpbnQgYWxwaGEgPSBhbHBoYUNoYW5uZWwocGl4ZWxDb2xvcik7CisgICAgaWYg
KGFscGhhICYmIGFscGhhIDwgMjU1KSB7CisgICAgICAgIHJldHVybiBDb2xvcjo6Y3JlYXRlVW5j
aGVja2VkKAorICAgICAgICAgICAgcmVkQ2hhbm5lbChwaXhlbENvbG9yKSAqIDI1NSAvIGFscGhh
LAorICAgICAgICAgICAgZ3JlZW5DaGFubmVsKHBpeGVsQ29sb3IpICogMjU1IC8gYWxwaGEsCisg
ICAgICAgICAgICBibHVlQ2hhbm5lbChwaXhlbENvbG9yKSAqIDI1NSAvIGFscGhhLAorICAgICAg
ICAgICAgYWxwaGEpOwogICAgIH0gZWxzZQotICAgICAgICBjb2xvciA9IENvbG9yKHBpeGVsQ29s
b3IpOwotCi0gICAgcmV0dXJuIGNvbG9yOworICAgICAgICByZXR1cm4gQ29sb3IocGl4ZWxDb2xv
cik7CiB9CiAKLXVuc2lnbmVkIHByZW11bHRpcGxpZWRBUkdCRnJvbUNvbG9yKGNvbnN0IENvbG9y
JiBjb2xvcikKK1JHQkEzMiBwcmVtdWx0aXBsaWVkQVJHQkZyb21Db2xvcihjb25zdCBDb2xvciYg
Y29sb3IpCiB7CiAgICAgdW5zaWduZWQgcGl4ZWxDb2xvcjsKIAotICAgIGlmICh1bnNpZ25lZCBh
bHBoYSA9IGNvbG9yLmFscGhhKCkpIHsKLSAgICAgICAgcGl4ZWxDb2xvciA9IGFscGhhIDw8IDI0
IHwKLSAgICAgICAgICAgICAoKGNvbG9yLnJlZCgpICogYWxwaGEgICsgMjU0KSAvIDI1NSkgPDwg
MTYgfCAKLSAgICAgICAgICAgICAoKGNvbG9yLmdyZWVuKCkgKiBhbHBoYSAgKyAyNTQpIC8gMjU1
KSA8PCA4IHwgCi0gICAgICAgICAgICAgKChjb2xvci5ibHVlKCkgKiBhbHBoYSAgKyAyNTQpIC8g
MjU1KTsKKyAgICB1bnNpZ25lZCBhbHBoYSA9IGNvbG9yLmFscGhhKCk7CisgICAgaWYgKGFscGhh
IDwgMjU1KSB7CisgICAgICAgIHBpeGVsQ29sb3IgPSBDb2xvcjo6Y3JlYXRlVW5jaGVja2VkKAor
ICAgICAgICAgICAgKGNvbG9yLnJlZCgpICogYWxwaGEgICsgMjU0KSAvIDI1NSwKKyAgICAgICAg
ICAgIChjb2xvci5ncmVlbigpICogYWxwaGEgICsgMjU0KSAvIDI1NSwKKyAgICAgICAgICAgIChj
b2xvci5ibHVlKCkgKiBhbHBoYSAgKyAyNTQpIC8gMjU1LAorICAgICAgICAgICAgYWxwaGEpLnJn
YigpOwogICAgIH0gZWxzZQogICAgICAgICAgcGl4ZWxDb2xvciA9IGNvbG9yLnJnYigpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAppbmRleCA5YjUxZmY3OTAwMzI3
MGM1ZGZjNTVjMTQxZWIzODg2MWE5OGJiMDM2Li44N2NhMjMzNzUwNmMxYWI2ZDEwNWYwMzllOTJj
MmI5NjY1YTdkMjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgK
QEAgLTE4Miw4ICsxODIsOCBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IENvbG9yJiBh
LCBjb25zdCBDb2xvciYgYikKICAgICByZXR1cm4gIShhID09IGIpOwogfQogCi1Db2xvciBjb2xv
ckZyb21QcmVtdWx0aXBsaWVkQVJHQih1bnNpZ25lZCk7Ci11bnNpZ25lZCBwcmVtdWx0aXBsaWVk
QVJHQkZyb21Db2xvcihjb25zdCBDb2xvciYpOworQ29sb3IgY29sb3JGcm9tUHJlbXVsdGlwbGll
ZEFSR0IoUkdCQTMyKTsKK1JHQkEzMiBwcmVtdWx0aXBsaWVkQVJHQkZyb21Db2xvcihjb25zdCBD
b2xvciYpOwogCiBpbmxpbmUgQ29sb3IgYmxlbmQoY29uc3QgQ29sb3ImIGZyb20sIGNvbnN0IENv
bG9yJiB0bywgZG91YmxlIHByb2dyZXNzLCBib29sIGJsZW5kUHJlbXVsdGlwbGllZCA9IHRydWUp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFn
ZUJ1ZmZlclF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdl
QnVmZmVyUXQuY3BwCmluZGV4IDhiMGIzMmE2ZDhhZjRlZDViNjlmMDBiYjBjYjVhOGM3NDgzNjAy
Y2MuLjE4NjczNGU1YzM5NmFlMTY5MTllY2MwYTg0ZjRjNjljOTI3OWQxZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVyUXQuY3Bw
CkBAIC0xOTMsMTQgKzE5MywxNyBAQCB2b2lkIEltYWdlQnVmZmVyOjpwbGF0Zm9ybVRyYW5zZm9y
bUNvbG9yU3BhY2UoY29uc3QgVmVjdG9yPGludD4mIGxvb2tVcFRhYmxlKQogICAgICAgICBtX2Rh
dGEubV9wYWludGVyLT5iZWdpbigmbV9kYXRhLm1fcGl4bWFwKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBxdWludDMyIGNvbnZlcnRBQkdSVG9BUkdCKHF1aW50MzIgcGl4ZWwpCitzdGF0aWMgaW5saW5l
IHZvaWQgY29weUNvbG9yVG9SR0JBKENvbG9yJiBmcm9tLCB1Y2hhciogdG8pCiB7Ci0gICAgcmV0
dXJuICgocGl4ZWwgPDwgMTYpICYgMHhmZjAwMDApIHwgKChwaXhlbCA+PiAxNikgJiAweGZmKSB8
IChwaXhlbCAmIDB4ZmYwMGZmMDApOworICAgIHRvWzBdID0gZnJvbS5yZWQoKTsKKyAgICB0b1sx
XSA9IGZyb20uZ3JlZW4oKTsKKyAgICB0b1syXSA9IGZyb20uYmx1ZSgpOworICAgIHRvWzNdID0g
ZnJvbS5hbHBoYSgpOwogfQogCi1zdGF0aWMgaW5saW5lIHF1aW50MzIgY29udmVydEFSR0JUb0FC
R1IocXVpbnQzMiBwaXhlbCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBjb3B5UkdCQVRvQ29sb3IoY29u
c3QgdWNoYXIqIGZyb20sIENvbG9yJiB0bykKIHsKLSAgICByZXR1cm4gY29udmVydEFCR1JUb0FS
R0IocGl4ZWwpOworICAgIHRvID0gQ29sb3I6OmNyZWF0ZVVuY2hlY2tlZChmcm9tWzBdLCBmcm9t
WzFdLCBmcm9tWzJdLCBmcm9tWzNdKTsKIH0KIAogdGVtcGxhdGUgPE11bHRpcGx5IG11bHRpcGxp
ZWQ+CkBAIC0yMTEsNyArMjE0LDcgQEAgUGFzc1JlZlB0cjxVaW50OENsYW1wZWRBcnJheT4gZ2V0
SW1hZ2VEYXRhKGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEltYWdlQnVmZmUKICAgICAgICAg
cmV0dXJuIDA7CiAKICAgICBSZWZQdHI8VWludDhDbGFtcGVkQXJyYXk+IHJlc3VsdCA9IFVpbnQ4
Q2xhbXBlZEFycmF5OjpjcmVhdGVVbmluaXRpYWxpemVkKHJlY3Qud2lkdGgoKSAqIHJlY3QuaGVp
Z2h0KCkgKiA0KTsKLSAgICB1bnNpZ25lZCBjaGFyKiBkYXRhID0gcmVzdWx0LT5kYXRhKCk7Cisg
ICAgdWNoYXIqIHJlc3VsdERhdGEgPSByZXN1bHQtPmRhdGEoKTsKIAogICAgIGlmIChyZWN0Lngo
KSA8IDAgfHwgcmVjdC55KCkgPCAwIHx8IHJlY3QubWF4WCgpID4gc2l6ZS53aWR0aCgpIHx8IHJl
Y3QubWF4WSgpID4gc2l6ZS5oZWlnaHQoKSkKICAgICAgICAgcmVzdWx0LT56ZXJvRmlsbCgpOwpA
QCAtMjM4LDI3ICsyNDEsMjUgQEAgUGFzc1JlZlB0cjxVaW50OENsYW1wZWRBcnJheT4gZ2V0SW1h
Z2VEYXRhKGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEltYWdlQnVmZmUKICAgICAgICAgZW5k
eSA9IHNpemUuaGVpZ2h0KCk7CiAgICAgaW50IG51bVJvd3MgPSBlbmR5IC0gb3JpZ2lueTsKIAor
ICAgIGNvbnN0IHVuc2lnbmVkIGRlc3RCeXRlc1BlclJvdyA9IDQgKiByZWN0LndpZHRoKCk7CisK
ICAgICAvLyBOT1RFOiBGb3IgdW5tdWx0aXBsaWVkIGRhdGEsIHdlIHVuZG8gdGhlIHByZW11bHRp
cGxpY2F0aW9uIGJlbG93LgogICAgIFFJbWFnZSBpbWFnZSA9IGltYWdlRGF0YS50b1FJbWFnZSgp
LmNvbnZlcnRUb0Zvcm1hdChRSW1hZ2U6OkZvcm1hdF9BUkdCMzJfUHJlbXVsdGlwbGllZCk7CiAK
ICAgICBBU1NFUlQoIWltYWdlLmlzTnVsbCgpKTsKIAotICAgIGNvbnN0IGludCBieXRlc1Blckxp
bmUgPSBpbWFnZS5ieXRlc1BlckxpbmUoKTsKLSAgICBjb25zdCB1Y2hhciogYml0cyA9IGltYWdl
LmNvbnN0Qml0cygpOwotCi0gICAgcXVpbnQzMiogZGVzdFJvd3MgPSByZWludGVycHJldF9jYXN0
X3B0cjxxdWludDMyKj4oJmRhdGFbZGVzdHkgKiByZWN0LndpZHRoKCkgKiA0ICsgZGVzdHggKiA0
XSk7CisgICAgLy8gVGhlIENhbnZhcyAyRCBDb250ZXh0IGV4cGVjdHMgUkdCQSBvcmRlciwgd2hp
bGUgUXQgdXNlcyAzMmJpdCBRUmdiIChBUkdCL0JHUkEpLgogICAgIGZvciAoaW50IHkgPSAwOyB5
IDwgbnVtUm93czsgKyt5KSB7Ci0gICAgICAgIGNvbnN0IHF1aW50MzIqIHNjYW5MaW5lID0gcmVp
bnRlcnByZXRfY2FzdF9wdHI8Y29uc3QgcXVpbnQzMio+KGJpdHMgKyAoeSArIG9yaWdpbnkpICog
Ynl0ZXNQZXJMaW5lKTsKLSAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCBudW1Db2x1bW5zOyB4
KyspIHsKLSAgICAgICAgICAgIFFSZ2IgcGl4ZWwgPSBzY2FuTGluZVt4ICsgb3JpZ2lueF07Cisg
ICAgICAgIGNvbnN0IHVuc2lnbmVkKiBzcmNSb3cgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVu
c2lnbmVkKj4oaW1hZ2UuY29uc3RTY2FuTGluZShvcmlnaW55ICsgeSkpICsgb3JpZ2lueDsKKyAg
ICAgICAgdWNoYXIqIGRlc3RSb3cgPSByZXN1bHREYXRhICsgKGRlc3R5ICsgeSkgKiBkZXN0Qnl0
ZXNQZXJSb3cgKyBkZXN0eCAqIDQ7CisgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgbnVtQ29s
dW1uczsgeCsrLCBzcmNSb3crKywgZGVzdFJvdyArPSA0KSB7CiAgICAgICAgICAgICBDb2xvciBw
aXhlbENvbG9yOwogICAgICAgICAgICAgaWYgKG11bHRpcGxpZWQgPT0gVW5tdWx0aXBsaWVkKQot
ICAgICAgICAgICAgICAgIHBpeGVsQ29sb3IgPSBjb2xvckZyb21QcmVtdWx0aXBsaWVkQVJHQihD
b2xvcihxUmVkKHBpeGVsKSwgcUdyZWVuKHBpeGVsKSwgcUJsdWUocGl4ZWwpLCBxQWxwaGEocGl4
ZWwpKS5yZ2IoKSk7CisgICAgICAgICAgICAgICAgcGl4ZWxDb2xvciA9IGNvbG9yRnJvbVByZW11
bHRpcGxpZWRBUkdCKCpzcmNSb3cpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IHBpeGVsQ29sb3IgPSBDb2xvcihxUmVkKHBpeGVsKSwgcUdyZWVuKHBpeGVsKSwgcUJsdWUocGl4
ZWwpLCBxQWxwaGEocGl4ZWwpKTsKLSAgICAgICAgICAgIGRlc3RSb3dzW3hdID0gY29udmVydEFS
R0JUb0FCR1IocGl4ZWxDb2xvci5yZ2IoKSk7CisgICAgICAgICAgICAgICAgcGl4ZWxDb2xvciA9
IENvbG9yKCpzcmNSb3cpOworICAgICAgICAgICAgY29weUNvbG9yVG9SR0JBKHBpeGVsQ29sb3Is
IGRlc3RSb3cpOwogICAgICAgICB9Ci0gICAgICAgIGRlc3RSb3dzICs9IHJlY3Qud2lkdGgoKTsK
ICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKQEAgLTMwMiwyNSArMzAzLDI1
IEBAIHZvaWQgSW1hZ2VCdWZmZXI6OnB1dEJ5dGVBcnJheShNdWx0aXBseSBtdWx0aXBsaWVkLCBV
aW50OENsYW1wZWRBcnJheSogc291cmNlLCBjCiAgICAgQVNTRVJUKGVuZHkgPD0gbV9zaXplLmhl
aWdodCgpKTsKICAgICBpbnQgbnVtUm93cyA9IGVuZHkgLSBkZXN0eTsKIAotICAgIHVuc2lnbmVk
IHNyY0J5dGVzUGVyUm93ID0gNCAqIHNvdXJjZVNpemUud2lkdGgoKTsKKyAgICBjb25zdCB1bnNp
Z25lZCBzcmNCeXRlc1BlclJvdyA9IDQgKiBzb3VyY2VTaXplLndpZHRoKCk7CiAKICAgICAvLyBO
T1RFOiBGb3IgdW5tdWx0aXBsaWVkIGlucHV0IGRhdGEsIHdlIGRvIHRoZSBwcmVtdWx0aXBsaWNh
dGlvbiBiZWxvdy4KICAgICBRSW1hZ2UgaW1hZ2UobnVtQ29sdW1ucywgbnVtUm93cywgUUltYWdl
OjpGb3JtYXRfQVJHQjMyX1ByZW11bHRpcGxpZWQpOwotICAgIHVjaGFyKiBiaXRzID0gaW1hZ2Uu
Yml0cygpOwotICAgIGNvbnN0IGludCBieXRlc1BlckxpbmUgPSBpbWFnZS5ieXRlc1BlckxpbmUo
KTsKIAotICAgIGNvbnN0IHF1aW50MzIqIHNyY1NjYW5MaW5lID0gcmVpbnRlcnByZXRfY2FzdF9w
dHI8Y29uc3QgcXVpbnQzMio+KHNvdXJjZS0+ZGF0YSgpICsgb3JpZ2lueSAqIHNyY0J5dGVzUGVy
Um93ICsgb3JpZ2lueCAqIDQpOworICAgIHVuc2lnbmVkKiBkZXN0RGF0YSA9IHJlaW50ZXJwcmV0
X2Nhc3Q8dW5zaWduZWQqPihpbWFnZS5iaXRzKCkpOworICAgIGNvbnN0IHVjaGFyKiBzcmNEYXRh
ID0gc291cmNlLT5kYXRhKCk7CiAKICAgICBmb3IgKGludCB5ID0gMDsgeSA8IG51bVJvd3M7ICsr
eSkgewotICAgICAgICBxdWludDMyKiBkZXN0U2NhbkxpbmUgPSByZWludGVycHJldF9jYXN0X3B0
cjxxdWludDMyKj4oYml0cyArIHkgKiBieXRlc1BlckxpbmUpOwotICAgICAgICBmb3IgKGludCB4
ID0gMDsgeCA8IG51bUNvbHVtbnM7IHgrKykgewotICAgICAgICAgICAgcXVpbnQzMiBwaXhlbCA9
IGNvbnZlcnRBQkdSVG9BUkdCKHNyY1NjYW5MaW5lW3hdKTsKKyAgICAgICAgY29uc3QgdWNoYXIq
IHNyY1JvdyA9IHNyY0RhdGEgKyAob3JpZ2lueSArIHkpICogc3JjQnl0ZXNQZXJSb3cgKyBvcmln
aW54ICogNDsKKyAgICAgICAgdW5zaWduZWQqIGRlc3RSb3cgPSBkZXN0RGF0YSArIHkgKiBudW1D
b2x1bW5zOworICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IG51bUNvbHVtbnM7IHgrKywgc3Jj
Um93ICs9IDQsIGRlc3RSb3crKykgeworICAgICAgICAgICAgQ29sb3IgcGl4ZWxDb2xvcjsKKyAg
ICAgICAgICAgIGNvcHlSR0JBVG9Db2xvcihzcmNSb3csIHBpeGVsQ29sb3IpOwogICAgICAgICAg
ICAgaWYgKG11bHRpcGxpZWQgPT0gVW5tdWx0aXBsaWVkKQotICAgICAgICAgICAgICAgIGRlc3RT
Y2FuTGluZVt4XSA9IHByZW11bHRpcGxpZWRBUkdCRnJvbUNvbG9yKENvbG9yKHBpeGVsKSk7Cisg
ICAgICAgICAgICAgICAgKmRlc3RSb3cgPSBwcmVtdWx0aXBsaWVkQVJHQkZyb21Db2xvcihwaXhl
bENvbG9yKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBkZXN0U2NhbkxpbmVb
eF0gPSBwaXhlbDsKKyAgICAgICAgICAgICAgICAqZGVzdFJvdyA9IHBpeGVsQ29sb3IucmdiKCk7
CiAgICAgICAgIH0KLSAgICAgICAgc3JjU2NhbkxpbmUgKz0gc291cmNlU2l6ZS53aWR0aCgpOwog
ICAgIH0KIAogICAgIGJvb2wgaXNQYWludGluZyA9IG1fZGF0YS5tX3BhaW50ZXItPmlzQWN0aXZl
KCk7Cg==
</data>
<flag name="review"
          id="205808"
          type_id="1"
          status="+"
          setter="jturcotte"
    />
          </attachment>
      

    </bug>

</bugzilla>