<?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>29042</bug_id>
          
          <creation_ts>2009-09-08 11:44:37 -0700</creation_ts>
          <short_desc>Custom printing shrink factors</short_desc>
          <delta_ts>2010-07-12 01:55:22 -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>Printing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>LATER</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>30755</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Jakob Truelsen">antialize</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>hausmann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>145469</commentid>
    <comment_count>0</comment_count>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-09-08 11:44:37 -0700</bug_when>
    <thetext>Currently webkit shrinks pages with a factor of 1.25 to 2.0. 
While this is fine in most cases, it might not be the best choice in some cases.

For for instance one might want to clamp these two values to a constant to get a predicable dpi on the printed document.

The following patch allows one to configure these two factors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145473</commentid>
    <comment_count>1</comment_count>
      <attachid>39199</attachid>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-09-08 11:54:31 -0700</bug_when>
    <thetext>Created attachment 39199
Shrink factor patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145503</commentid>
    <comment_count>2</comment_count>
      <attachid>39199</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-08 12:45:57 -0700</bug_when>
    <thetext>Comment on attachment 39199
Shrink factor patch

Dive-by nit:
 502 void Settings::setPrintingMaximumShrinkFactor(float printingMaximumShrinkFactor) {
 503     m_printingMaximumShrinkFactor = printingMaximumShrinkFactor;
Style issues { goes on a new line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145650</commentid>
    <comment_count>3</comment_count>
      <attachid>39246</attachid>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-09-08 22:34:30 -0700</bug_when>
    <thetext>Created attachment 39246
Shrink factor patch 1.1

Sorry about that, the braces are now the correct place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148974</commentid>
    <comment_count>4</comment_count>
      <attachid>39905</attachid>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-09-22 00:04:46 -0700</bug_when>
    <thetext>Created attachment 39905
Shrink factor patch 1.2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154434</commentid>
    <comment_count>5</comment_count>
      <attachid>39905</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-10-13 14:41:14 -0700</bug_when>
    <thetext>Comment on attachment 39905
Shrink factor patch 1.2

Ok.  This looks reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154438</commentid>
    <comment_count>6</comment_count>
      <attachid>39905</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-13 14:45:07 -0700</bug_when>
    <thetext>Comment on attachment 39905
Shrink factor patch 1.2

Rejecting patch 39905 from commit-queue.

Patch https://bugs.webkit.org/attachment.cgi?id=39905 from bug 29042 failed to download and apply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154550</commentid>
    <comment_count>7</comment_count>
      <attachid>41154</attachid>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-10-14 02:08:43 -0700</bug_when>
    <thetext>Created attachment 41154
Shrink factor patch 1.3

Make patch apply to trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154945</commentid>
    <comment_count>8</comment_count>
      <attachid>41154</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-10-15 16:41:06 -0700</bug_when>
    <thetext>Comment on attachment 41154
Shrink factor patch 1.3

Ok.  I don&apos;t have time to watch the bots right now, but someone else can mark this cq+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155583</commentid>
    <comment_count>9</comment_count>
      <attachid>41154</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-18 23:34:10 -0700</bug_when>
    <thetext>Comment on attachment 41154
Shrink factor patch 1.3

Rejecting patch 41154 from commit-queue.

Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;]&quot; exit_code: 1
Last 500 characters of output:
t/qt/ChangeLog
A repository hook failed: MERGE request failed on &apos;/repository/webkit/trunk&apos;: Commit blocked by pre-commit hook (exit code 1) with output:
svnlook: Can&apos;t write to stream: Broken pipe

    The following files contain tab characters:

        trunk/WebCore/ChangeLog
        trunk/WebCore/page/Settings.h

    Please use spaces instead to indent.
    If you must commit a file with tabs, use svn propset to set the &quot;allow-tabs&quot; property.
 at /usr/local/libexec/git-core//git-svn line 469</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155584</commentid>
    <comment_count>10</comment_count>
      <attachid>41154</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-10-18 23:35:28 -0700</bug_when>
    <thetext>Comment on attachment 41154
Shrink factor patch 1.3

Ack Hans!  It&apos;s the tabs!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155591</commentid>
    <comment_count>11</comment_count>
      <attachid>41399</attachid>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-10-18 23:56:26 -0700</bug_when>
    <thetext>Created attachment 41399
Patch now ^I free

Sorry about that. Emacs apparently adds tabs on empty lines</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155599</commentid>
    <comment_count>12</comment_count>
      <attachid>41399</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-19 00:17:49 -0700</bug_when>
    <thetext>Comment on attachment 41399
Patch now ^I free

Clearing flags on attachment: 41399

Committed r49769: &lt;http://trac.webkit.org/changeset/49769&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155600</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-19 00:17:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162630</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-11-11 12:55:55 -0800</bug_when>
    <thetext>This patch has API issues. The use of float in the API has to be replaced with the use of qreal and the documentation tags are incorrect, they should refer to \since 4.6 instead of 4.7.

Re-opening this bug (Hm, I can&apos;t use REOPEN, but I&apos;ll set it to UNCONFIRMED instead)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162826</commentid>
    <comment_count>15</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-11-12 00:51:24 -0800</bug_when>
    <thetext>Note that the patch is not correct.
If QWebSettings is initialized from WebCore::Settings, QWebSettingsPrivate::printingMinimumShrinkFactor and QWebSettingsPrivate::printingMaximumShrinkFactor are not initialized.

When QWebSettingsPrivate::apply() is called, the following code has an undefined behavior: 
        float minimumShrinkFactor = printingMinimumShrinkFactor &gt; 0.0f ? printingMinimumShrinkFactor : global-&gt;printingMinimumShrinkFactor;
        settings-&gt;setPrintingMinimumShrinkFactor(minimumShrinkFactor);

        float maximumShrinkFactor = printingMaximumShrinkFactor &gt; 0.0f ? printingMaximumShrinkFactor : global-&gt;printingMaximumShrinkFactor;
        settings-&gt;setPrintingMaximumShrinkFactor(maximumShrinkFactor);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162838</commentid>
    <comment_count>16</comment_count>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-11-12 01:25:14 -0800</bug_when>
    <thetext>#15 is not news to me. I submitted a patch for that here
https://bugs.webkit.org/show_bug.cgi?id=30755

As for \since 4.7, I was under the impression that 4.6 had gone into feature freeze. I will submit a new patch to 30755 ASAP..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162873</commentid>
    <comment_count>17</comment_count>
      <attachid>43058</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-11-12 05:07:55 -0800</bug_when>
    <thetext>Created attachment 43058
Revert the commit r49769

Revert the original patch.

This API should not be part of Qt 4.6.
This could be submitted for Qt 4.7, but the public API should be reviewed by someone from Qt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162876</commentid>
    <comment_count>18</comment_count>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-11-12 05:22:06 -0800</bug_when>
    <thetext>I see you just proposed reverting my original patch instead of fixing the issue. 
Is QT pulling WebKit trunk into the QT 4.6 tree, if yes is there real WebKit trunk I can submit patches against, or is it only possible to submit QT related patches into WebKit at time-windows according with the QT release schedule.  I have tried many different strategies for getting patches such as this in, submitting to the QT bug-tracker, QT Gitorius and so on but all of them state that I should submit here.  Now you seem to claim that one needs some sort of QT rewiew, how would that happen.  I&apos;m beginning to wonder if it is at all possible to get a QT related patch into WebKit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162881</commentid>
    <comment_count>19</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-11-12 05:35:12 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; I see you just proposed reverting my original patch instead of fixing the
&gt; issue. 
&gt; Is QT pulling WebKit trunk into the QT 4.6 tree, if yes is there real WebKit
&gt; trunk I can submit patches against, or is it only possible to submit QT related
&gt; patches into WebKit at time-windows according with the QT release schedule.  I
&gt; have tried many different strategies for getting patches such as this in,
&gt; submitting to the QT bug-tracker, QT Gitorius and so on but all of them state
&gt; that I should submit here.  Now you seem to claim that one needs some sort of
&gt; QT rewiew, how would that happen.  I&apos;m beginning to wonder if it is at all
&gt; possible to get a QT related patch into WebKit?

You have done the right workflow, it is correct to submit the patches here for QtWebkit.
We have failed on this patch. Nobody from Qt did notice the patch and it has been merged without any API review (necessary for public APIs).

I suggest to revert the patch here instead of the 4.6 branch in order to have a proper API review before it&apos;s inclusion for 4.7.

I personally think we could introduce a new class for printing in order to add more flexibility in the future. E.g.:
void QWebFrame::print (QPrinter* printer, const QWebPrintSettings&amp; settings)

This would have the advantage of giving the right visibility to the parameters (next to ::print, instead of hidden in the settings). And this would be more future proof in case of new parameters (zoomFactor, and CSS media type for example). This is just my point of view, that need to be discussed with the others.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162884</commentid>
    <comment_count>20</comment_count>
      <attachid>43058</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-12 05:52:57 -0800</bug_when>
    <thetext>Comment on attachment 43058
Revert the commit r49769

Clearing flags on attachment: 43058

Committed r50876: &lt;http://trac.webkit.org/changeset/50876&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162885</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-12 05:53:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39199</attachid>
            <date>2009-09-08 11:54:31 -0700</date>
            <delta_ts>2009-09-08 22:34:30 -0700</delta_ts>
            <desc>Shrink factor patch</desc>
            <filename>shrinkFactor.patch</filename>
            <type>text/plain</type>
            <size>10657</size>
            <attacher name="Jakob Truelsen">antialize</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODE3MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDktMDktMDggIEpha29iIFRydWVsc2VuICA8YW50aWFsaXplQGdt
YWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwNDIKKyAgICAgICAg
QWxsb3cgb25lIHRvIGN1c3RvbWl6ZSB0aGUgbWluaW1hbCBhbmQgbWF4aW1hbCBzaHJpbmsgZmFj
dG9ycyB1c2VkIHdoZW4gcHJpbnRpbmcuCisKKyAgICAgICAgKiBwYWdlL1ByaW50Q29udGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQcmludENvbnRleHQ6OmJlZ2luKToKKyAgICAgICAgKiBw
YWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0UHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRQcmludGluZ01heGltdW1TaHJp
bmtGYWN0b3IpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNldHRpbmdzOjpwcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U2V0dGluZ3M6OnByaW50aW5nTWF4aW11bVNocmlua0ZhY3Rvcik6CisKIDIwMDktMDktMDgg
IEtlbGx5IE5vcnRvbiAgPGtub3J0b25AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEaW1pdHJpIEdsYXprb3YuCkluZGV4OiBXZWJDb3JlL3BhZ2UvUHJpbnRDb250ZXh0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvUHJpbnRDb250ZXh0LmNwcAkocmV2aXNpb24gNDgx
NzApCisrKyBXZWJDb3JlL3BhZ2UvUHJpbnRDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC05NSwxOCArOTYsMjMgQEAgdm9pZCBQcmludENvbnRl
eHQ6OmNvbXB1dGVQYWdlUmVjdHMoY29ucwogCiB2b2lkIFByaW50Q29udGV4dDo6YmVnaW4oZmxv
YXQgd2lkdGgpCiB7Ci0gICAgLy8gQnkgaW1hZ2luZyB0byBhIHdpZHRoIGEgbGl0dGxlIHdpZGVy
IHRoYW4gdGhlIGF2YWlsYWJsZSBwaXhlbHMsCi0gICAgLy8gdGhpbiBwYWdlcyB3aWxsIGJlIHNj
YWxlZCBkb3duIGEgbGl0dGxlLCBtYXRjaGluZyB0aGUgd2F5IHRoZXkKLSAgICAvLyBwcmludCBp
biBJRSBhbmQgQ2FtaW5vLiBUaGlzIGxldHMgdGhlbSB1c2UgZmV3ZXIgc2hlZXRzIHRoYW4gdGhl
eQotICAgIC8vIHdvdWxkIG90aGVyd2lzZSwgd2hpY2ggaXMgcHJlc3VtYWJseSB3aHkgb3RoZXIg
YnJvd3NlcnMgZG8gdGhpcy4KLSAgICAvLyBXaWRlIHBhZ2VzIHdpbGwgYmUgc2NhbGVkIGRvd24g
bW9yZSB0aGFuIHRoaXMuCi0gICAgY29uc3QgZmxvYXQgUHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFj
dG9yID0gMS4yNWY7Ci0KLSAgICAvLyBUaGlzIG51bWJlciBkZXRlcm1pbmVzIGhvdyBzbWFsbCB3
ZSBhcmUgd2lsbGluZyB0byByZWR1Y2UgdGhlIHBhZ2UgY29udGVudAotICAgIC8vIGluIG9yZGVy
IHRvIGFjY29tbW9kYXRlIHRoZSB3aWRlc3QgbGluZS4gSWYgdGhlIHBhZ2Ugd291bGQgaGF2ZSB0
byBiZQotICAgIC8vIHJlZHVjZWQgc21hbGxlciB0byBtYWtlIHRoZSB3aWRlc3QgbGluZSBmaXQs
IHdlIGp1c3QgY2xpcCBpbnN0ZWFkICh0aGlzCi0gICAgLy8gYmVoYXZpb3IgbWF0Y2hlcyBNYWNJ
RSBhbmQgTW96aWxsYSwgYXQgbGVhc3QpCi0gICAgY29uc3QgZmxvYXQgUHJpbnRpbmdNYXhpbXVt
U2hyaW5rRmFjdG9yID0gMi4wZjsKKyAgICBjb25zdCBmbG9hdCBQcmludGluZ01pbmltdW1TaHJp
bmtGYWN0b3IgPSBtX2ZyYW1lLT5zZXR0aW5ncygpID8gbV9mcmFtZS0+c2V0dGluZ3MoKS0+cHJp
bnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKCkgOiAwZjsKKyAgICBjb25zdCBmbG9hdCBQcmludGlu
Z01heGltdW1TaHJpbmtGYWN0b3IgPSBtX2ZyYW1lLT5zZXR0aW5ncygpID8gbV9mcmFtZS0+c2V0
dGluZ3MoKS0+cHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yKCkgOiAwZjsKKworICAgIGlmIChQ
cmludGluZ01heGltdW1TaHJpbmtGYWN0b3IgPCBQcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3Ig
fHwgUHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yIDw9IDBmKSB7CisgICAgICAgIC8vIEJ5IGlt
YWdpbmcgdG8gYSB3aWR0aCBhIGxpdHRsZSB3aWRlciB0aGFuIHRoZSBhdmFpbGFibGUgcGl4ZWxz
LAorICAgICAgICAvLyB0aGluIHBhZ2VzIHdpbGwgYmUgc2NhbGVkIGRvd24gYSBsaXR0bGUsIG1h
dGNoaW5nIHRoZSB3YXkgdGhleQorICAgICAgICAvLyBwcmludCBpbiBJRSBhbmQgQ2FtaW5vLiBU
aGlzIGxldHMgdGhlbSB1c2UgZmV3ZXIgc2hlZXRzIHRoYW4gdGhleQorICAgICAgICAvLyB3b3Vs
ZCBvdGhlcndpc2UsIHdoaWNoIGlzIHByZXN1bWFibHkgd2h5IG90aGVyIGJyb3dzZXJzIGRvIHRo
aXMuCisgICAgICAgIC8vIFdpZGUgcGFnZXMgd2lsbCBiZSBzY2FsZWQgZG93biBtb3JlIHRoYW4g
dGhpcy4KKyAgICAgICAgUHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yID0gMS4yNWY7CisKKyAg
ICAgICAgLy8gVGhpcyBudW1iZXIgZGV0ZXJtaW5lcyBob3cgc21hbGwgd2UgYXJlIHdpbGxpbmcg
dG8gcmVkdWNlIHRoZSBwYWdlIGNvbnRlbnQKKyAgICAgICAgLy8gaW4gb3JkZXIgdG8gYWNjb21t
b2RhdGUgdGhlIHdpZGVzdCBsaW5lLiBJZiB0aGUgcGFnZSB3b3VsZCBoYXZlIHRvIGJlCisgICAg
ICAgIC8vIHJlZHVjZWQgc21hbGxlciB0byBtYWtlIHRoZSB3aWRlc3QgbGluZSBmaXQsIHdlIGp1
c3QgY2xpcCBpbnN0ZWFkICh0aGlzCisgICAgICAgIC8vIGJlaGF2aW9yIG1hdGNoZXMgTWFjSUUg
YW5kIE1vemlsbGEsIGF0IGxlYXN0KQorICAgICAgICBQcmludGluZ01heGltdW1TaHJpbmtGYWN0
b3IgPSAyLjBmOworICAgIH0KIAogICAgIGZsb2F0IG1pbkxheW91dFdpZHRoID0gd2lkdGggKiBQ
cmludGluZ01pbmltdW1TaHJpbmtGYWN0b3I7CiAgICAgZmxvYXQgbWF4TGF5b3V0V2lkdGggPSB3
aWR0aCAqIFByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcjsKSW5kZXg6IFdlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAkocmV2
aXNpb24gNDgxNzApCisrKyBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDksNiArMTA5LDggQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAg
LCBtX2Rvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCh0cnVlKQogICAgICwgbV94c3NBdWRp
dG9yRW5hYmxlZChmYWxzZSkKICAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQo
dHJ1ZSkKKyAgICAsIG1fcHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKDBmKQorICAgICwgbV9w
cmludGluZ01heGltdW1TaHJpbmtGYWN0b3IoMGYpCiB7CiAgICAgLy8gQSBGcmFtZSBtYXkgbm90
IGhhdmUgYmVlbiBjcmVhdGVkIHlldCwgc28gd2UgaW5pdGlhbGl6ZSB0aGUgQXRvbWljU3RyaW5n
IAogICAgIC8vIGhhc2ggYmVmb3JlIHRyeWluZyB0byB1c2UgaXQuCkBAIC00OTMsNCArNDk1LDEy
IEBAIHZvaWQgU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcKICAgICBzZXROZWVk
c1JlYXBwbHlTdHlsZXNJbkFsbEZyYW1lcyhtX3BhZ2UpOwogfQogCit2b2lkIFNldHRpbmdzOjpz
ZXRQcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IoZmxvYXQgcHJpbnRpbmdNaW5pbXVtU2hyaW5r
RmFjdG9yKSB7CisgICAgbV9wcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IgPSBwcmludGluZ01p
bmltdW1TaHJpbmtGYWN0b3I7Cit9ICAgIAorCit2b2lkIFNldHRpbmdzOjpzZXRQcmludGluZ01h
eGltdW1TaHJpbmtGYWN0b3IoZmxvYXQgcHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yKSB7Cisg
ICAgbV9wcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IgPSBwcmludGluZ01heGltdW1TaHJpbmtG
YWN0b3I7Cit9ICAgIAorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkocmV2
aXNpb24gNDgxNzApCisrKyBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpA
QCAtMjUzLDYgKzI1MywxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgYWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkOyB9CiAKKyAgICAgICAgdm9pZCBzZXRQcmludGluZ01pbmltdW1TaHJp
bmtGYWN0b3IoZmxvYXQpOworICAgICAgICBmbG9hdCBwcmludGluZ01pbmltdW1TaHJpbmtGYWN0
b3IoKSBjb25zdCB7IHJldHVybiBtX3ByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcjsgfQorCQor
ICAgICAgICB2b2lkIHNldFByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcihmbG9hdCk7CisgICAg
ICAgIGZsb2F0IHByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1f
cHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yOyB9CisKICAgICBwcml2YXRlOgogICAgICAgICBQ
YWdlKiBtX3BhZ2U7CiAgICAgICAgIApAQCAtMjY4LDYgKzI3NCw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgQXRvbWljU3RyaW5nIG1fZmFudGFzeUZvbnRGYW1pbHk7CiAgICAgICAg
IEVkaXRhYmxlTGlua0JlaGF2aW9yIG1fZWRpdGFibGVMaW5rQmVoYXZpb3I7CiAgICAgICAgIFRl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgbV90ZXh0RGlyZWN0aW9uU3VibWVu
dUluY2x1c2lvbkJlaGF2aW9yOworICAgICAgICBmbG9hdCBtX3ByaW50aW5nTWluaW11bVNocmlu
a0ZhY3RvcjsKKyAgICAgICAgZmxvYXQgbV9wcmludGluZ01heGltdW1TaHJpbmtGYWN0b3I7CiAg
ICAgICAgIGludCBtX21pbmltdW1Gb250U2l6ZTsKICAgICAgICAgaW50IG1fbWluaW11bUxvZ2lj
YWxGb250U2l6ZTsKICAgICAgICAgaW50IG1fZGVmYXVsdEZvbnRTaXplOwpJbmRleDogV2ViS2l0
L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lv
biA0ODE3MSkKKysrIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyMiBAQAorMjAwOS0wOS0wOCAgSmFrb2IgVHJ1ZWxzZW4gIDxhbnRpYWxpemVAZ21haWwuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTA0MgorCisgICAgICAgIEFsbG93
IG9uZSB0byBjb3N0dW1pemUgdGhlIG1pbmltYWwgYW5kIG1heGltYWwgc2hyaW5rIGZhY3RvcnMs
CisgICAgICAgIEFkZGVkIG1ldGhvZHMgc2V0UHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yLCBw
cmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IsCisgICAgICAgIHNldFByaW50aW5nTWF4aW11bVNo
cmlua0ZhY3RvciwgcHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yIHRvIFFXZWJTZXR0aW5ncy4K
KworICAgICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAoUVdlYlNldHRpbmdz
UHJpdmF0ZTo6YXBwbHkpOgorICAgICAgICAoUVdlYlNldHRpbmdzOjpRV2ViU2V0dGluZ3MpOgor
ICAgICAgICAoUVdlYlNldHRpbmdzOjpzZXRQcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IpOgor
ICAgICAgICAoUVdlYlNldHRpbmdzOjpwcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IpOgorICAg
ICAgICAoUVdlYlNldHRpbmdzOjpzZXRQcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IpOgorICAg
ICAgICAoUVdlYlNldHRpbmdzOjpwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IpOgorICAgICAg
ICAqIEFwaS9xd2Vic2V0dGluZ3MuaDoKKwogMjAwOS0wOS0wOCAgQmVuamFtaW4gUG91bGFpbiAg
PGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEhhdXNtYW5uLgpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAkocmV2aXNpb24gNDgxNzApCisr
KyBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYg
KzYyLDggQEAgcHVibGljOgogICAgIFFTdHJpbmcgbG9jYWxTdG9yYWdlUGF0aDsKICAgICBRU3Ry
aW5nIG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlUGF0aDsKICAgICBxaW50NjQgb2ZmbGluZVN0
b3JhZ2VEZWZhdWx0UXVvdGE7CisgICAgZmxvYXQgcHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9y
OworICAgIGZsb2F0IHByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcjsKIAogICAgIHZvaWQgYXBw
bHkoKTsKICAgICBXZWJDb3JlOjpTZXR0aW5ncyogc2V0dGluZ3M7CkBAIC0xNzQsNiArMTc2LDEy
IEBAIHZvaWQgUVdlYlNldHRpbmdzUHJpdmF0ZTo6YXBwbHkoKQogICAgICAgICBRU3RyaW5nIHN0
b3JhZ2VQYXRoID0gIWxvY2FsU3RvcmFnZVBhdGguaXNFbXB0eSgpID8gbG9jYWxTdG9yYWdlUGF0
aCA6IGdsb2JhbC0+bG9jYWxTdG9yYWdlUGF0aDsKICAgICAgICAgc2V0dGluZ3MtPnNldExvY2Fs
U3RvcmFnZURhdGFiYXNlUGF0aChzdG9yYWdlUGF0aCk7CiAKKyAgICAgICAgZmxvYXQgbWluaW11
bVNocmlua0ZhY3RvciA9IHByaW50aW5nTWluaW11bVNocmlua0ZhY3RvciA+IDBmID8gcHJpbnRp
bmdNaW5pbXVtU2hyaW5rRmFjdG9yIDogZ2xvYmFsLT5wcmludGluZ01pbmltdW1TaHJpbmtGYWN0
b3I7CisgICAgICAgIHNldHRpbmdzLT5zZXRQcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IobWlu
aW11bVNocmlua0ZhY3Rvcik7CisKKyAgICAgICAgZmxvYXQgbWF4aW11bVNocmlua0ZhY3RvciA9
IHByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvciA+IDBmID8gcHJpbnRpbmdNYXhpbXVtU2hyaW5r
RmFjdG9yIDogZ2xvYmFsLT5wcmludGluZ01heGltdW1TaHJpbmtGYWN0b3I7CisgICAgICAgIHNl
dHRpbmdzLT5zZXRQcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IobWF4aW11bVNocmlua0ZhY3Rv
cik7CisKICAgICAgICAgdmFsdWUgPSBhdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6Wm9v
bVRleHRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5hdHRy
aWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6Wm9vbVRleHRPbmx5KSk7CiAgICAgICAgIHNldHRp
bmdzLT5zZXRab29tc1RleHRPbmx5KHZhbHVlKTsKQEAgLTM3NCw2ICszODIsOCBAQCBRV2ViU2V0
dGluZ3M6OlFXZWJTZXR0aW5ncygpCiAgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRp
bmdzOjpMb2NhbENvbnRlbnRDYW5BY2Nlc3NSZW1vdGVVcmxzLCBmYWxzZSk7CiAgICAgZC0+YXR0
cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpTZXNzaW9uU3RvcmFnZUVuYWJsZWQsIHRydWUp
OwogICAgIGQtPm9mZmxpbmVTdG9yYWdlRGVmYXVsdFF1b3RhID0gNSAqIDEwMjQgKiAxMDI0Owor
ICAgIGQtPnByaW50aW5nTWluaW11bVNocmlua0ZhY3RvciA9IDBmOworICAgIGQtPnByaW50aW5n
TWF4aW11bVNocmlua0ZhY3RvciA9IDBmOwogfQogCiAvKiEKQEAgLTQ4NSw2ICs0OTUsNjAgQEAg
UVN0cmluZyBRV2ViU2V0dGluZ3M6OmRlZmF1bHRUZXh0RW5jb2RpbgogfQogCiAvKiEKKyAgICBc
c2luY2UgNC43IAorICAgIFNwZWNpZmllcyBtaW5pbXVtIHNocmluayBmYXRvciBhbGxvd2VkIGZv
ciBwcmludGluZy4gSWYgc2V0IHRvIDAgYQorICAgIGRlZmF1bHQgdmFsdWUgaXMgdXNlZC4KKwor
ICAgIFdoZW4gcHJpbnRpbmcsIGNvbnRlbnQgd2lsbCBiZSBzaHJ1bmsgdG8gcmVkdWNlIHBhZ2Ug
dXNhZ2UsIGl0CisgICAgd2lsbCByZWR1Y2VkIGJ5IGEgZmFjdG9yIGJldHdlZW4gcHJpbnRpbmdN
aW5pbXVtU2hyaW5rRmFjdG9yIGFuZAorICAgIHByaW50aW5nTWF4aW11bVNocmlua0ZhY3Rvci4g
CisKKyAgICBcc2EgcHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKCkKKyAgICBcc2Egc2V0UHJp
bnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yKCkKKyAgICBcc2EgcHJpbnRpbmdNYXhpbXVtU2hyaW5r
RmFjdG9yKCkKKyovCit2b2lkIFFXZWJTZXR0aW5nczo6c2V0UHJpbnRpbmdNaW5pbXVtU2hyaW5r
RmFjdG9yKGZsb2F0IHByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcikKK3sKKyAgICBkLT5wcmlu
dGluZ01pbmltdW1TaHJpbmtGYWN0b3IgPSBwcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3I7Cisg
ICAgZC0+YXBwbHkoKTsKK30KKworLyohCisgICAgXHNpbmNlIDQuNyAKKyAgICByZXR1cm5zIHRo
ZSBtaW5pbXVtIHNocmluayBmYWN0b3IgdXNlZCBmb3IgcHJpbnRpbmcuCisKKyAgICBcc2Egc2V0
UHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKCkKKyovCitmbG9hdCBRV2ViU2V0dGluZ3M6OnBy
aW50aW5nTWluaW11bVNocmlua0ZhY3RvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPnByaW50
aW5nTWluaW11bVNocmlua0ZhY3RvcjsKK30KKworLyohCisgICAgXHNpbmNlIDQuNyAKKyAgICBT
cGVjaWZpZXMgbWF4aW11bSBzaHJpbmsgZmF0b3IgYWxsb3dlZCBmb3IgcHJpbnRpbmcuIElmIHNl
dCB0byAwIGEKKyAgICBkZWZhdWx0IHZhbHVlIGlzIHVzZWQuCisKKyAgICBcc2Egc2V0UHJpbnRp
bmdNaW5pbXVtU2hyaW5rRmFjdG9yKCkKKyovCit2b2lkIFFXZWJTZXR0aW5nczo6c2V0UHJpbnRp
bmdNYXhpbXVtU2hyaW5rRmFjdG9yKGZsb2F0IHByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcikK
K3sKKyAgICBkLT5wcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IgPSBwcmludGluZ01heGltdW1T
aHJpbmtGYWN0b3I7CisgICAgZC0+YXBwbHkoKTsKK30KKworLyohCisgICAgXHNpbmNlIDQuNyAK
KyAgICByZXR1cm5zIHRoZSBtYXhpbXVtIHNocmluayBmYWN0b3IgdXNlZCBmb3IgcHJpbnRpbmcu
CisKKyAgICBcc2Egc2V0UHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKCkKKyovCitmbG9hdCBR
V2ViU2V0dGluZ3M6OnByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGQtPnByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcjsKK30KKworLyohCiAgICAgU2V0
cyB0aGUgcGF0aCBvZiB0aGUgaWNvbiBkYXRhYmFzZSB0byBcYSBwYXRoLiBUaGUgaWNvbiBkYXRh
YmFzZSBpcyB1c2VkCiAgICAgdG8gc3RvcmUgImZhdmljb25zIiBhc3NvY2lhdGVkIHdpdGggd2Vi
IHNpdGVzLgogCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmgJKHJldmlzaW9uIDQ4MTcwKQorKysgV2Vi
S2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDYgKzEwMywx
MiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREZWZhdWx0VGV4dEVuY29kaW5nKGNvbnN0IFFTdHJp
bmcgJmVuY29kaW5nKTsKICAgICBRU3RyaW5nIGRlZmF1bHRUZXh0RW5jb2RpbmcoKSBjb25zdDsK
IAorICAgIHZvaWQgc2V0UHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKGZsb2F0IHByaW50aW5n
TWluaW11bVNocmlua0ZhY3Rvcik7CisgICAgZmxvYXQgcHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFj
dG9yKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldFByaW50aW5nTWF4aW11bVNocmlua0ZhY3Rvcihm
bG9hdCBwcmludGluZ01heGltaW1TaHJpbmtGYWN0b3IpOworICAgIGZsb2F0IHByaW50aW5nTWF4
aW11bVNocmlua0ZhY3RvcigpIGNvbnN0OworCiAgICAgc3RhdGljIHZvaWQgc2V0SWNvbkRhdGFi
YXNlUGF0aChjb25zdCBRU3RyaW5nICZsb2NhdGlvbik7CiAgICAgc3RhdGljIFFTdHJpbmcgaWNv
bkRhdGFiYXNlUGF0aCgpOwogICAgIHN0YXRpYyB2b2lkIGNsZWFySWNvbkRhdGFiYXNlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39246</attachid>
            <date>2009-09-08 22:34:30 -0700</date>
            <delta_ts>2009-09-22 00:04:46 -0700</delta_ts>
            <desc>Shrink factor patch 1.1</desc>
            <filename>attachment.cgi?id=39199</filename>
            <type>text/plain</type>
            <size>10659</size>
            <attacher name="Jakob Truelsen">antialize</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODE3MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDktMDktMDggIEpha29iIFRydWVsc2VuICA8YW50aWFsaXplQGdt
YWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwNDIKKyAgICAgICAg
QWxsb3cgb25lIHRvIGN1c3RvbWl6ZSB0aGUgbWluaW1hbCBhbmQgbWF4aW1hbCBzaHJpbmsgZmFj
dG9ycyB1c2VkIHdoZW4gcHJpbnRpbmcuCisKKyAgICAgICAgKiBwYWdlL1ByaW50Q29udGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQcmludENvbnRleHQ6OmJlZ2luKToKKyAgICAgICAgKiBw
YWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0UHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRQcmludGluZ01heGltdW1TaHJp
bmtGYWN0b3IpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNldHRpbmdzOjpwcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U2V0dGluZ3M6OnByaW50aW5nTWF4aW11bVNocmlua0ZhY3Rvcik6CisKIDIwMDktMDktMDgg
IEtlbGx5IE5vcnRvbiAgPGtub3J0b25AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEaW1pdHJpIEdsYXprb3YuCkluZGV4OiBXZWJDb3JlL3BhZ2UvUHJpbnRDb250ZXh0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvUHJpbnRDb250ZXh0LmNwcAkocmV2aXNpb24gNDgx
NzApCisrKyBXZWJDb3JlL3BhZ2UvUHJpbnRDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC05NSwxOCArOTYsMjMgQEAgdm9pZCBQcmludENvbnRl
eHQ6OmNvbXB1dGVQYWdlUmVjdHMoY29ucwogCiB2b2lkIFByaW50Q29udGV4dDo6YmVnaW4oZmxv
YXQgd2lkdGgpCiB7Ci0gICAgLy8gQnkgaW1hZ2luZyB0byBhIHdpZHRoIGEgbGl0dGxlIHdpZGVy
IHRoYW4gdGhlIGF2YWlsYWJsZSBwaXhlbHMsCi0gICAgLy8gdGhpbiBwYWdlcyB3aWxsIGJlIHNj
YWxlZCBkb3duIGEgbGl0dGxlLCBtYXRjaGluZyB0aGUgd2F5IHRoZXkKLSAgICAvLyBwcmludCBp
biBJRSBhbmQgQ2FtaW5vLiBUaGlzIGxldHMgdGhlbSB1c2UgZmV3ZXIgc2hlZXRzIHRoYW4gdGhl
eQotICAgIC8vIHdvdWxkIG90aGVyd2lzZSwgd2hpY2ggaXMgcHJlc3VtYWJseSB3aHkgb3RoZXIg
YnJvd3NlcnMgZG8gdGhpcy4KLSAgICAvLyBXaWRlIHBhZ2VzIHdpbGwgYmUgc2NhbGVkIGRvd24g
bW9yZSB0aGFuIHRoaXMuCi0gICAgY29uc3QgZmxvYXQgUHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFj
dG9yID0gMS4yNWY7Ci0KLSAgICAvLyBUaGlzIG51bWJlciBkZXRlcm1pbmVzIGhvdyBzbWFsbCB3
ZSBhcmUgd2lsbGluZyB0byByZWR1Y2UgdGhlIHBhZ2UgY29udGVudAotICAgIC8vIGluIG9yZGVy
IHRvIGFjY29tbW9kYXRlIHRoZSB3aWRlc3QgbGluZS4gSWYgdGhlIHBhZ2Ugd291bGQgaGF2ZSB0
byBiZQotICAgIC8vIHJlZHVjZWQgc21hbGxlciB0byBtYWtlIHRoZSB3aWRlc3QgbGluZSBmaXQs
IHdlIGp1c3QgY2xpcCBpbnN0ZWFkICh0aGlzCi0gICAgLy8gYmVoYXZpb3IgbWF0Y2hlcyBNYWNJ
RSBhbmQgTW96aWxsYSwgYXQgbGVhc3QpCi0gICAgY29uc3QgZmxvYXQgUHJpbnRpbmdNYXhpbXVt
U2hyaW5rRmFjdG9yID0gMi4wZjsKKyAgICBjb25zdCBmbG9hdCBQcmludGluZ01pbmltdW1TaHJp
bmtGYWN0b3IgPSBtX2ZyYW1lLT5zZXR0aW5ncygpID8gbV9mcmFtZS0+c2V0dGluZ3MoKS0+cHJp
bnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKCkgOiAwZjsKKyAgICBjb25zdCBmbG9hdCBQcmludGlu
Z01heGltdW1TaHJpbmtGYWN0b3IgPSBtX2ZyYW1lLT5zZXR0aW5ncygpID8gbV9mcmFtZS0+c2V0
dGluZ3MoKS0+cHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yKCkgOiAwZjsKKworICAgIGlmIChQ
cmludGluZ01heGltdW1TaHJpbmtGYWN0b3IgPCBQcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3Ig
fHwgUHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yIDw9IDBmKSB7CisgICAgICAgIC8vIEJ5IGlt
YWdpbmcgdG8gYSB3aWR0aCBhIGxpdHRsZSB3aWRlciB0aGFuIHRoZSBhdmFpbGFibGUgcGl4ZWxz
LAorICAgICAgICAvLyB0aGluIHBhZ2VzIHdpbGwgYmUgc2NhbGVkIGRvd24gYSBsaXR0bGUsIG1h
dGNoaW5nIHRoZSB3YXkgdGhleQorICAgICAgICAvLyBwcmludCBpbiBJRSBhbmQgQ2FtaW5vLiBU
aGlzIGxldHMgdGhlbSB1c2UgZmV3ZXIgc2hlZXRzIHRoYW4gdGhleQorICAgICAgICAvLyB3b3Vs
ZCBvdGhlcndpc2UsIHdoaWNoIGlzIHByZXN1bWFibHkgd2h5IG90aGVyIGJyb3dzZXJzIGRvIHRo
aXMuCisgICAgICAgIC8vIFdpZGUgcGFnZXMgd2lsbCBiZSBzY2FsZWQgZG93biBtb3JlIHRoYW4g
dGhpcy4KKyAgICAgICAgUHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yID0gMS4yNWY7CisKKyAg
ICAgICAgLy8gVGhpcyBudW1iZXIgZGV0ZXJtaW5lcyBob3cgc21hbGwgd2UgYXJlIHdpbGxpbmcg
dG8gcmVkdWNlIHRoZSBwYWdlIGNvbnRlbnQKKyAgICAgICAgLy8gaW4gb3JkZXIgdG8gYWNjb21t
b2RhdGUgdGhlIHdpZGVzdCBsaW5lLiBJZiB0aGUgcGFnZSB3b3VsZCBoYXZlIHRvIGJlCisgICAg
ICAgIC8vIHJlZHVjZWQgc21hbGxlciB0byBtYWtlIHRoZSB3aWRlc3QgbGluZSBmaXQsIHdlIGp1
c3QgY2xpcCBpbnN0ZWFkICh0aGlzCisgICAgICAgIC8vIGJlaGF2aW9yIG1hdGNoZXMgTWFjSUUg
YW5kIE1vemlsbGEsIGF0IGxlYXN0KQorICAgICAgICBQcmludGluZ01heGltdW1TaHJpbmtGYWN0
b3IgPSAyLjBmOworICAgIH0KIAogICAgIGZsb2F0IG1pbkxheW91dFdpZHRoID0gd2lkdGggKiBQ
cmludGluZ01pbmltdW1TaHJpbmtGYWN0b3I7CiAgICAgZmxvYXQgbWF4TGF5b3V0V2lkdGggPSB3
aWR0aCAqIFByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcjsKSW5kZXg6IFdlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAkocmV2
aXNpb24gNDgxNzApCisrKyBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDksNiArMTA5LDggQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAg
LCBtX2Rvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCh0cnVlKQogICAgICwgbV94c3NBdWRp
dG9yRW5hYmxlZChmYWxzZSkKICAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQo
dHJ1ZSkKKyAgICAsIG1fcHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKDBmKQorICAgICwgbV9w
cmludGluZ01heGltdW1TaHJpbmtGYWN0b3IoMGYpCiB7CiAgICAgLy8gQSBGcmFtZSBtYXkgbm90
IGhhdmUgYmVlbiBjcmVhdGVkIHlldCwgc28gd2UgaW5pdGlhbGl6ZSB0aGUgQXRvbWljU3RyaW5n
IAogICAgIC8vIGhhc2ggYmVmb3JlIHRyeWluZyB0byB1c2UgaXQuCkBAIC00OTMsNCArNDk1LDE0
IEBAIHZvaWQgU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcKICAgICBzZXROZWVk
c1JlYXBwbHlTdHlsZXNJbkFsbEZyYW1lcyhtX3BhZ2UpOwogfQogCit2b2lkIFNldHRpbmdzOjpz
ZXRQcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IoZmxvYXQgcHJpbnRpbmdNaW5pbXVtU2hyaW5r
RmFjdG9yKQoreworICAgIG1fcHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yID0gcHJpbnRpbmdN
aW5pbXVtU2hyaW5rRmFjdG9yOworfSAgICAKKwordm9pZCBTZXR0aW5nczo6c2V0UHJpbnRpbmdN
YXhpbXVtU2hyaW5rRmFjdG9yKGZsb2F0IHByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcikKK3sK
KyAgICBtX3ByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvciA9IHByaW50aW5nTWF4aW11bVNocmlu
a0ZhY3RvcjsKK30gICAgCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUv
cGFnZS9TZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCShy
ZXZpc2lvbiA0ODE3MCkKKysrIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNTMsNiArMjUzLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBz
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBhY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0VuYWJsZWQ7IH0KIAorICAgICAgICB2b2lkIHNldFByaW50aW5nTWluaW11bVNo
cmlua0ZhY3RvcihmbG9hdCk7CisgICAgICAgIGZsb2F0IHByaW50aW5nTWluaW11bVNocmlua0Zh
Y3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yOyB9CisJ
CisgICAgICAgIHZvaWQgc2V0UHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yKGZsb2F0KTsKKyAg
ICAgICAgZmxvYXQgcHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yKCkgY29uc3QgeyByZXR1cm4g
bV9wcmludGluZ01heGltdW1TaHJpbmtGYWN0b3I7IH0KKwogICAgIHByaXZhdGU6CiAgICAgICAg
IFBhZ2UqIG1fcGFnZTsKICAgICAgICAgCkBAIC0yNjgsNiArMjc0LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBBdG9taWNTdHJpbmcgbV9mYW50YXN5Rm9udEZhbWlseTsKICAgICAg
ICAgRWRpdGFibGVMaW5rQmVoYXZpb3IgbV9lZGl0YWJsZUxpbmtCZWhhdmlvcjsKICAgICAgICAg
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciBtX3RleHREaXJlY3Rpb25TdWJt
ZW51SW5jbHVzaW9uQmVoYXZpb3I7CisgICAgICAgIGZsb2F0IG1fcHJpbnRpbmdNaW5pbXVtU2hy
aW5rRmFjdG9yOworICAgICAgICBmbG9hdCBtX3ByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcjsK
ICAgICAgICAgaW50IG1fbWluaW11bUZvbnRTaXplOwogICAgICAgICBpbnQgbV9taW5pbXVtTG9n
aWNhbEZvbnRTaXplOwogICAgICAgICBpbnQgbV9kZWZhdWx0Rm9udFNpemU7CkluZGV4OiBXZWJL
aXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlz
aW9uIDQ4MTcxKQorKysgV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIyIEBACisyMDA5LTA5LTA4ICBKYWtvYiBUcnVlbHNlbiAgPGFudGlhbGl6ZUBnbWFpbC5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDQyCisKKyAgICAgICAgQWxs
b3cgb25lIHRvIGNvc3R1bWl6ZSB0aGUgbWluaW1hbCBhbmQgbWF4aW1hbCBzaHJpbmsgZmFjdG9y
cywKKyAgICAgICAgQWRkZWQgbWV0aG9kcyBzZXRQcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3Is
IHByaW50aW5nTWluaW11bVNocmlua0ZhY3RvciwKKyAgICAgICAgc2V0UHJpbnRpbmdNYXhpbXVt
U2hyaW5rRmFjdG9yLCBwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IgdG8gUVdlYlNldHRpbmdz
LgorCisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5jcHA6CisgICAgICAgIChRV2ViU2V0dGlu
Z3NQcml2YXRlOjphcHBseSk6CisgICAgICAgIChRV2ViU2V0dGluZ3M6OlFXZWJTZXR0aW5ncyk6
CisgICAgICAgIChRV2ViU2V0dGluZ3M6OnNldFByaW50aW5nTWluaW11bVNocmlua0ZhY3Rvcik6
CisgICAgICAgIChRV2ViU2V0dGluZ3M6OnByaW50aW5nTWluaW11bVNocmlua0ZhY3Rvcik6Cisg
ICAgICAgIChRV2ViU2V0dGluZ3M6OnNldFByaW50aW5nTWF4aW11bVNocmlua0ZhY3Rvcik6Cisg
ICAgICAgIChRV2ViU2V0dGluZ3M6OnByaW50aW5nTWF4aW11bVNocmlua0ZhY3Rvcik6CisgICAg
ICAgICogQXBpL3F3ZWJzZXR0aW5ncy5oOgorCiAyMDA5LTA5LTA4ICBCZW5qYW1pbiBQb3VsYWlu
ICA8YmVuamFtaW4ucG91bGFpbkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2lt
b24gSGF1c21hbm4uCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCShyZXZpc2lvbiA0ODE3MCkK
KysrIFdlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIs
NiArNjIsOCBAQCBwdWJsaWM6CiAgICAgUVN0cmluZyBsb2NhbFN0b3JhZ2VQYXRoOwogICAgIFFT
dHJpbmcgb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVQYXRoOwogICAgIHFpbnQ2NCBvZmZsaW5l
U3RvcmFnZURlZmF1bHRRdW90YTsKKyAgICBmbG9hdCBwcmludGluZ01pbmltdW1TaHJpbmtGYWN0
b3I7CisgICAgZmxvYXQgcHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yOwogCiAgICAgdm9pZCBh
cHBseSgpOwogICAgIFdlYkNvcmU6OlNldHRpbmdzKiBzZXR0aW5nczsKQEAgLTE3NCw2ICsxNzYs
MTIgQEAgdm9pZCBRV2ViU2V0dGluZ3NQcml2YXRlOjphcHBseSgpCiAgICAgICAgIFFTdHJpbmcg
c3RvcmFnZVBhdGggPSAhbG9jYWxTdG9yYWdlUGF0aC5pc0VtcHR5KCkgPyBsb2NhbFN0b3JhZ2VQ
YXRoIDogZ2xvYmFsLT5sb2NhbFN0b3JhZ2VQYXRoOwogICAgICAgICBzZXR0aW5ncy0+c2V0TG9j
YWxTdG9yYWdlRGF0YWJhc2VQYXRoKHN0b3JhZ2VQYXRoKTsKIAorICAgICAgICBmbG9hdCBtaW5p
bXVtU2hyaW5rRmFjdG9yID0gcHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yID4gMGYgPyBwcmlu
dGluZ01pbmltdW1TaHJpbmtGYWN0b3IgOiBnbG9iYWwtPnByaW50aW5nTWluaW11bVNocmlua0Zh
Y3RvcjsKKyAgICAgICAgc2V0dGluZ3MtPnNldFByaW50aW5nTWluaW11bVNocmlua0ZhY3Rvciht
aW5pbXVtU2hyaW5rRmFjdG9yKTsKKworICAgICAgICBmbG9hdCBtYXhpbXVtU2hyaW5rRmFjdG9y
ID0gcHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yID4gMGYgPyBwcmludGluZ01heGltdW1TaHJp
bmtGYWN0b3IgOiBnbG9iYWwtPnByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcjsKKyAgICAgICAg
c2V0dGluZ3MtPnNldFByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcihtYXhpbXVtU2hyaW5rRmFj
dG9yKTsKKwogICAgICAgICB2YWx1ZSA9IGF0dHJpYnV0ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpa
b29tVGV4dE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWwtPmF0
dHJpYnV0ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpab29tVGV4dE9ubHkpKTsKICAgICAgICAgc2V0
dGluZ3MtPnNldFpvb21zVGV4dE9ubHkodmFsdWUpOwpAQCAtMzc0LDYgKzM4Miw4IEBAIFFXZWJT
ZXR0aW5nczo6UVdlYlNldHRpbmdzKCkKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0
dGluZ3M6OkxvY2FsQ29udGVudENhbkFjY2Vzc1JlbW90ZVVybHMsIGZhbHNlKTsKICAgICBkLT5h
dHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6OlNlc3Npb25TdG9yYWdlRW5hYmxlZCwgdHJ1
ZSk7CiAgICAgZC0+b2ZmbGluZVN0b3JhZ2VEZWZhdWx0UXVvdGEgPSA1ICogMTAyNCAqIDEwMjQ7
CisgICAgZC0+cHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yID0gMGY7CisgICAgZC0+cHJpbnRp
bmdNYXhpbXVtU2hyaW5rRmFjdG9yID0gMGY7CiB9CiAKIC8qIQpAQCAtNDg1LDYgKzQ5NSw2MCBA
QCBRU3RyaW5nIFFXZWJTZXR0aW5nczo6ZGVmYXVsdFRleHRFbmNvZGluCiB9CiAKIC8qIQorICAg
IFxzaW5jZSA0LjcgCisgICAgU3BlY2lmaWVzIG1pbmltdW0gc2hyaW5rIGZhdG9yIGFsbG93ZWQg
Zm9yIHByaW50aW5nLiBJZiBzZXQgdG8gMCBhCisgICAgZGVmYXVsdCB2YWx1ZSBpcyB1c2VkLgor
CisgICAgV2hlbiBwcmludGluZywgY29udGVudCB3aWxsIGJlIHNocnVuayB0byByZWR1Y2UgcGFn
ZSB1c2FnZSwgaXQKKyAgICB3aWxsIHJlZHVjZWQgYnkgYSBmYWN0b3IgYmV0d2VlbiBwcmludGlu
Z01pbmltdW1TaHJpbmtGYWN0b3IgYW5kCisgICAgcHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9y
LiAKKworICAgIFxzYSBwcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IoKQorICAgIFxzYSBzZXRQ
cmludGluZ01heGltdW1TaHJpbmtGYWN0b3IoKQorICAgIFxzYSBwcmludGluZ01heGltdW1TaHJp
bmtGYWN0b3IoKQorKi8KK3ZvaWQgUVdlYlNldHRpbmdzOjpzZXRQcmludGluZ01pbmltdW1TaHJp
bmtGYWN0b3IoZmxvYXQgcHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKQoreworICAgIGQtPnBy
aW50aW5nTWluaW11bVNocmlua0ZhY3RvciA9IHByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcjsK
KyAgICBkLT5hcHBseSgpOworfQorCisvKiEKKyAgICBcc2luY2UgNC43IAorICAgIHJldHVybnMg
dGhlIG1pbmltdW0gc2hyaW5rIGZhY3RvciB1c2VkIGZvciBwcmludGluZy4KKworICAgIFxzYSBz
ZXRQcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IoKQorKi8KK2Zsb2F0IFFXZWJTZXR0aW5nczo6
cHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZC0+cHJp
bnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yOworfQorCisvKiEKKyAgICBcc2luY2UgNC43IAorICAg
IFNwZWNpZmllcyBtYXhpbXVtIHNocmluayBmYXRvciBhbGxvd2VkIGZvciBwcmludGluZy4gSWYg
c2V0IHRvIDAgYQorICAgIGRlZmF1bHQgdmFsdWUgaXMgdXNlZC4KKworICAgIFxzYSBzZXRQcmlu
dGluZ01pbmltdW1TaHJpbmtGYWN0b3IoKQorKi8KK3ZvaWQgUVdlYlNldHRpbmdzOjpzZXRQcmlu
dGluZ01heGltdW1TaHJpbmtGYWN0b3IoZmxvYXQgcHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9y
KQoreworICAgIGQtPnByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvciA9IHByaW50aW5nTWF4aW11
bVNocmlua0ZhY3RvcjsKKyAgICBkLT5hcHBseSgpOworfQorCisvKiEKKyAgICBcc2luY2UgNC43
IAorICAgIHJldHVybnMgdGhlIG1heGltdW0gc2hyaW5rIGZhY3RvciB1c2VkIGZvciBwcmludGlu
Zy4KKworICAgIFxzYSBzZXRQcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IoKQorKi8KK2Zsb2F0
IFFXZWJTZXR0aW5nczo6cHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZC0+cHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yOworfQorCisvKiEKICAgICBT
ZXRzIHRoZSBwYXRoIG9mIHRoZSBpY29uIGRhdGFiYXNlIHRvIFxhIHBhdGguIFRoZSBpY29uIGRh
dGFiYXNlIGlzIHVzZWQKICAgICB0byBzdG9yZSAiZmF2aWNvbnMiIGFzc29jaWF0ZWQgd2l0aCB3
ZWIgc2l0ZXMuCiAKSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAkocmV2aXNpb24gNDgxNzApCisrKyBX
ZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsNiArMTAz
LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERlZmF1bHRUZXh0RW5jb2RpbmcoY29uc3QgUVN0
cmluZyAmZW5jb2RpbmcpOwogICAgIFFTdHJpbmcgZGVmYXVsdFRleHRFbmNvZGluZygpIGNvbnN0
OwogCisgICAgdm9pZCBzZXRQcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IoZmxvYXQgcHJpbnRp
bmdNaW5pbXVtU2hyaW5rRmFjdG9yKTsKKyAgICBmbG9hdCBwcmludGluZ01pbmltdW1TaHJpbmtG
YWN0b3IoKSBjb25zdDsKKworICAgIHZvaWQgc2V0UHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9y
KGZsb2F0IHByaW50aW5nTWF4aW1pbVNocmlua0ZhY3Rvcik7CisgICAgZmxvYXQgcHJpbnRpbmdN
YXhpbXVtU2hyaW5rRmFjdG9yKCkgY29uc3Q7CisKICAgICBzdGF0aWMgdm9pZCBzZXRJY29uRGF0
YWJhc2VQYXRoKGNvbnN0IFFTdHJpbmcgJmxvY2F0aW9uKTsKICAgICBzdGF0aWMgUVN0cmluZyBp
Y29uRGF0YWJhc2VQYXRoKCk7CiAgICAgc3RhdGljIHZvaWQgY2xlYXJJY29uRGF0YWJhc2UoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39905</attachid>
            <date>2009-09-22 00:04:46 -0700</date>
            <delta_ts>2009-10-14 02:08:43 -0700</delta_ts>
            <desc>Shrink factor patch 1.2</desc>
            <filename>shrink.patch</filename>
            <type>text/plain</type>
            <size>10583</size>
            <attacher name="Jakob Truelsen">antialize</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODYyMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDktMDktMjIgIEpha29iIFRydWVsc2VuICA8YW50aWFsaXplQGdt
YWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwNDIKKyAgICAgICAg
QWxsb3cgb25lIHRvIGN1c3RvbWl6ZSB0aGUgbWluaW1hbCBhbmQgbWF4aW1hbCBzaHJpbmsgZmFj
dG9ycyB1c2VkIHdoZW4gcHJpbnRpbmcuCisJCisgICAgICAgICogcGFnZS9QcmludENvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJpbnRDb250ZXh0OjpiZWdpbik6CisgICAgICAgICog
cGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6U2V0dGluZ3Mp
OgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNldFByaW50aW5nTWluaW11bVNocmlua0Zh
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0UHJpbnRpbmdNYXhpbXVtU2hy
aW5rRmFjdG9yKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTZXR0aW5nczo6cHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OlNldHRpbmdzOjpwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IpOgorCiAyMDA5LTA5LTIx
ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQXR0ZW1wdGVkIGZp
eCBmb3IgdGhlIFY4IGJ1aWxkLgpJbmRleDogV2ViQ29yZS9wYWdlL1ByaW50Q29udGV4dC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL1ByaW50Q29udGV4dC5jcHAJKHJldmlzaW9uIDQ4
NjIxKQorKysgV2ViQ29yZS9wYWdlL1ByaW50Q29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtOTUsMTggKzk2LDIzIEBAIHZvaWQgUHJpbnRDb250
ZXh0Ojpjb21wdXRlUGFnZVJlY3RzKGNvbnMKIAogdm9pZCBQcmludENvbnRleHQ6OmJlZ2luKGZs
b2F0IHdpZHRoKQogewotICAgIC8vIEJ5IGltYWdpbmcgdG8gYSB3aWR0aCBhIGxpdHRsZSB3aWRl
ciB0aGFuIHRoZSBhdmFpbGFibGUgcGl4ZWxzLAotICAgIC8vIHRoaW4gcGFnZXMgd2lsbCBiZSBz
Y2FsZWQgZG93biBhIGxpdHRsZSwgbWF0Y2hpbmcgdGhlIHdheSB0aGV5Ci0gICAgLy8gcHJpbnQg
aW4gSUUgYW5kIENhbWluby4gVGhpcyBsZXRzIHRoZW0gdXNlIGZld2VyIHNoZWV0cyB0aGFuIHRo
ZXkKLSAgICAvLyB3b3VsZCBvdGhlcndpc2UsIHdoaWNoIGlzIHByZXN1bWFibHkgd2h5IG90aGVy
IGJyb3dzZXJzIGRvIHRoaXMuCi0gICAgLy8gV2lkZSBwYWdlcyB3aWxsIGJlIHNjYWxlZCBkb3du
IG1vcmUgdGhhbiB0aGlzLgotICAgIGNvbnN0IGZsb2F0IFByaW50aW5nTWluaW11bVNocmlua0Zh
Y3RvciA9IDEuMjVmOwotCi0gICAgLy8gVGhpcyBudW1iZXIgZGV0ZXJtaW5lcyBob3cgc21hbGwg
d2UgYXJlIHdpbGxpbmcgdG8gcmVkdWNlIHRoZSBwYWdlIGNvbnRlbnQKLSAgICAvLyBpbiBvcmRl
ciB0byBhY2NvbW1vZGF0ZSB0aGUgd2lkZXN0IGxpbmUuIElmIHRoZSBwYWdlIHdvdWxkIGhhdmUg
dG8gYmUKLSAgICAvLyByZWR1Y2VkIHNtYWxsZXIgdG8gbWFrZSB0aGUgd2lkZXN0IGxpbmUgZml0
LCB3ZSBqdXN0IGNsaXAgaW5zdGVhZCAodGhpcwotICAgIC8vIGJlaGF2aW9yIG1hdGNoZXMgTWFj
SUUgYW5kIE1vemlsbGEsIGF0IGxlYXN0KQotICAgIGNvbnN0IGZsb2F0IFByaW50aW5nTWF4aW11
bVNocmlua0ZhY3RvciA9IDIuMGY7CisgICAgZmxvYXQgUHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFj
dG9yID0gbV9mcmFtZS0+c2V0dGluZ3MoKSA/IG1fZnJhbWUtPnNldHRpbmdzKCktPnByaW50aW5n
TWluaW11bVNocmlua0ZhY3RvcigpIDogMC4wZjsKKyAgICBmbG9hdCBQcmludGluZ01heGltdW1T
aHJpbmtGYWN0b3IgPSBtX2ZyYW1lLT5zZXR0aW5ncygpID8gbV9mcmFtZS0+c2V0dGluZ3MoKS0+
cHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yKCkgOiAwLjBmOworCisgICAgaWYgKFByaW50aW5n
TWF4aW11bVNocmlua0ZhY3RvciA8IFByaW50aW5nTWluaW11bVNocmlua0ZhY3RvciB8fCBQcmlu
dGluZ01pbmltdW1TaHJpbmtGYWN0b3IgPD0gMC4wZikgeworICAgICAgICAvLyBCeSBpbWFnaW5n
IHRvIGEgd2lkdGggYSBsaXR0bGUgd2lkZXIgdGhhbiB0aGUgYXZhaWxhYmxlIHBpeGVscywKKyAg
ICAgICAgLy8gdGhpbiBwYWdlcyB3aWxsIGJlIHNjYWxlZCBkb3duIGEgbGl0dGxlLCBtYXRjaGlu
ZyB0aGUgd2F5IHRoZXkKKyAgICAgICAgLy8gcHJpbnQgaW4gSUUgYW5kIENhbWluby4gVGhpcyBs
ZXRzIHRoZW0gdXNlIGZld2VyIHNoZWV0cyB0aGFuIHRoZXkKKyAgICAgICAgLy8gd291bGQgb3Ro
ZXJ3aXNlLCB3aGljaCBpcyBwcmVzdW1hYmx5IHdoeSBvdGhlciBicm93c2VycyBkbyB0aGlzLgor
ICAgICAgICAvLyBXaWRlIHBhZ2VzIHdpbGwgYmUgc2NhbGVkIGRvd24gbW9yZSB0aGFuIHRoaXMu
CisgICAgICAgIFByaW50aW5nTWluaW11bVNocmlua0ZhY3RvciA9IDEuMjVmOworCisgICAgICAg
IC8vIFRoaXMgbnVtYmVyIGRldGVybWluZXMgaG93IHNtYWxsIHdlIGFyZSB3aWxsaW5nIHRvIHJl
ZHVjZSB0aGUgcGFnZSBjb250ZW50CisgICAgICAgIC8vIGluIG9yZGVyIHRvIGFjY29tbW9kYXRl
IHRoZSB3aWRlc3QgbGluZS4gSWYgdGhlIHBhZ2Ugd291bGQgaGF2ZSB0byBiZQorICAgICAgICAv
LyByZWR1Y2VkIHNtYWxsZXIgdG8gbWFrZSB0aGUgd2lkZXN0IGxpbmUgZml0LCB3ZSBqdXN0IGNs
aXAgaW5zdGVhZCAodGhpcworICAgICAgICAvLyBiZWhhdmlvciBtYXRjaGVzIE1hY0lFIGFuZCBN
b3ppbGxhLCBhdCBsZWFzdCkKKyAgICAgICAgUHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yID0g
Mi4wZjsKKyAgICB9CiAKICAgICBmbG9hdCBtaW5MYXlvdXRXaWR0aCA9IHdpZHRoICogUHJpbnRp
bmdNaW5pbXVtU2hyaW5rRmFjdG9yOwogICAgIGZsb2F0IG1heExheW91dFdpZHRoID0gd2lkdGgg
KiBQcmludGluZ01heGltdW1TaHJpbmtGYWN0b3I7CkluZGV4OiBXZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAJKHJldmlzaW9u
IDQ4NjIxKQorKysgV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTE0LDYgKzExNCw4IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9k
b3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQodHJ1ZSkKICAgICAsIG1feHNzQXVkaXRvckVu
YWJsZWQoZmFsc2UpCiAgICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHRydWUp
CisgICAgLCBtX3ByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcigwLjBmKQorICAgICwgbV9wcmlu
dGluZ01heGltdW1TaHJpbmtGYWN0b3IoMC4wZikKIHsKICAgICAvLyBBIEZyYW1lIG1heSBub3Qg
aGF2ZSBiZWVuIGNyZWF0ZWQgeWV0LCBzbyB3ZSBpbml0aWFsaXplIHRoZSBBdG9taWNTdHJpbmcg
CiAgICAgLy8gaGFzaCBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBpdC4KQEAgLTUwNCw0ICs1MDYsMTQg
QEAgdm9pZCBTZXR0aW5nczo6c2V0U2hvdWxkVXNlSGlnaFJlc29sdXRpbwogfQogI2VuZGlmCiAK
K3ZvaWQgU2V0dGluZ3M6OnNldFByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcihmbG9hdCBwcmlu
dGluZ01pbmltdW1TaHJpbmtGYWN0b3IpCit7CisgICAgbV9wcmludGluZ01pbmltdW1TaHJpbmtG
YWN0b3IgPSBwcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3I7Cit9ICAgIAorCit2b2lkIFNldHRp
bmdzOjpzZXRQcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IoZmxvYXQgcHJpbnRpbmdNYXhpbXVt
U2hyaW5rRmFjdG9yKQoreworICAgIG1fcHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yID0gcHJp
bnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yOworfSAgICAKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmgJKHJldmlzaW9uIDQ4NjIxKQorKysgV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1OCw2ICsyNTgsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBzdGF0aWMgYm9vbCBzaG91bGRVc2VIaWdoUmVzb2x1dGlvblRpbWVycygpIHsg
cmV0dXJuIGdTaG91bGRVc2VIaWdoUmVzb2x1dGlvblRpbWVyczsgfQogI2VuZGlmCiAKKyAgICAg
ICAgdm9pZCBzZXRQcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IoZmxvYXQpOworICAgICAgICBm
bG9hdCBwcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX3ByaW50
aW5nTWluaW11bVNocmlua0ZhY3RvcjsgfQorCQorICAgICAgICB2b2lkIHNldFByaW50aW5nTWF4
aW11bVNocmlua0ZhY3RvcihmbG9hdCk7CisgICAgICAgIGZsb2F0IHByaW50aW5nTWF4aW11bVNo
cmlua0ZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9y
OyB9CisKICAgICBwcml2YXRlOgogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgICAgIApAQCAt
MjczLDYgKzI3OSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQXRvbWljU3RyaW5n
IG1fZmFudGFzeUZvbnRGYW1pbHk7CiAgICAgICAgIEVkaXRhYmxlTGlua0JlaGF2aW9yIG1fZWRp
dGFibGVMaW5rQmVoYXZpb3I7CiAgICAgICAgIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9u
QmVoYXZpb3IgbV90ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yOworICAgICAg
ICBmbG9hdCBtX3ByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcjsKKyAgICAgICAgZmxvYXQgbV9w
cmludGluZ01heGltdW1TaHJpbmtGYWN0b3I7CiAgICAgICAgIGludCBtX21pbmltdW1Gb250U2l6
ZTsKICAgICAgICAgaW50IG1fbWluaW11bUxvZ2ljYWxGb250U2l6ZTsKICAgICAgICAgaW50IG1f
ZGVmYXVsdEZvbnRTaXplOwpJbmRleDogV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA0ODYyMSkKKysrIFdlYktpdC9xdC9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAwOS0wOS0yMiAgSmFrb2Ig
VHJ1ZWxzZW4gIDxhbnRpYWxpemVAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yOTA0MgorCisgICAgICAgIEFsbG93IG9uZSB0byBjb3N0dW1pemUgdGhlIG1pbmlt
YWwgYW5kIG1heGltYWwgc2hyaW5rIGZhY3RvcnMsCisgICAgICAgIEFkZGVkIG1ldGhvZHMgc2V0
UHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yLCBwcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3Is
CisgICAgICAgIHNldFByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvciwgcHJpbnRpbmdNYXhpbXVt
U2hyaW5rRmFjdG9yIHRvIFFXZWJTZXR0aW5ncy4KKworICAgICAgICAqIEFwaS9xd2Vic2V0dGlu
Z3MuY3BwOgorICAgICAgICAoUVdlYlNldHRpbmdzUHJpdmF0ZTo6YXBwbHkpOgorICAgICAgICAo
UVdlYlNldHRpbmdzOjpRV2ViU2V0dGluZ3MpOgorICAgICAgICAoUVdlYlNldHRpbmdzOjpzZXRQ
cmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IpOgorICAgICAgICAoUVdlYlNldHRpbmdzOjpwcmlu
dGluZ01pbmltdW1TaHJpbmtGYWN0b3IpOgorICAgICAgICAoUVdlYlNldHRpbmdzOjpzZXRQcmlu
dGluZ01heGltdW1TaHJpbmtGYWN0b3IpOgorICAgICAgICAoUVdlYlNldHRpbmdzOjpwcmludGlu
Z01heGltdW1TaHJpbmtGYWN0b3IpOgorICAgICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuaDoKKwog
MjAwOS0wOS0yMSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCkluZGV4OiBXZWJLaXQv
cXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Vi
c2V0dGluZ3MuY3BwCShyZXZpc2lvbiA0ODYyMSkKKysrIFdlYktpdC9xdC9BcGkvcXdlYnNldHRp
bmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsOCBAQCBwdWJsaWM6CiAgICAgUVN0
cmluZyBsb2NhbFN0b3JhZ2VQYXRoOwogICAgIFFTdHJpbmcgb2ZmbGluZVdlYkFwcGxpY2F0aW9u
Q2FjaGVQYXRoOwogICAgIHFpbnQ2NCBvZmZsaW5lU3RvcmFnZURlZmF1bHRRdW90YTsKKyAgICBm
bG9hdCBwcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3I7CisgICAgZmxvYXQgcHJpbnRpbmdNYXhp
bXVtU2hyaW5rRmFjdG9yOwogCiAgICAgdm9pZCBhcHBseSgpOwogICAgIFdlYkNvcmU6OlNldHRp
bmdzKiBzZXR0aW5nczsKQEAgLTE3NCw2ICsxNzYsMTIgQEAgdm9pZCBRV2ViU2V0dGluZ3NQcml2
YXRlOjphcHBseSgpCiAgICAgICAgIFFTdHJpbmcgc3RvcmFnZVBhdGggPSAhbG9jYWxTdG9yYWdl
UGF0aC5pc0VtcHR5KCkgPyBsb2NhbFN0b3JhZ2VQYXRoIDogZ2xvYmFsLT5sb2NhbFN0b3JhZ2VQ
YXRoOwogICAgICAgICBzZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKHN0b3Jh
Z2VQYXRoKTsKIAorICAgICAgICBmbG9hdCBtaW5pbXVtU2hyaW5rRmFjdG9yID0gcHJpbnRpbmdN
aW5pbXVtU2hyaW5rRmFjdG9yID4gMC4wZiA/IHByaW50aW5nTWluaW11bVNocmlua0ZhY3RvciA6
IGdsb2JhbC0+cHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yOworICAgICAgICBzZXR0aW5ncy0+
c2V0UHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKG1pbmltdW1TaHJpbmtGYWN0b3IpOworCisg
ICAgICAgIGZsb2F0IG1heGltdW1TaHJpbmtGYWN0b3IgPSBwcmludGluZ01heGltdW1TaHJpbmtG
YWN0b3IgPiAwLjBmID8gcHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yIDogZ2xvYmFsLT5wcmlu
dGluZ01heGltdW1TaHJpbmtGYWN0b3I7CisgICAgICAgIHNldHRpbmdzLT5zZXRQcmludGluZ01h
eGltdW1TaHJpbmtGYWN0b3IobWF4aW11bVNocmlua0ZhY3Rvcik7CisKICAgICAgICAgdmFsdWUg
PSBhdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6Wm9vbVRleHRPbmx5LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5hdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0
aW5nczo6Wm9vbVRleHRPbmx5KSk7CiAgICAgICAgIHNldHRpbmdzLT5zZXRab29tc1RleHRPbmx5
KHZhbHVlKTsKQEAgLTM3Nyw2ICszODUsOCBAQCBRV2ViU2V0dGluZ3M6OlFXZWJTZXR0aW5ncygp
CiAgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpMb2NhbENvbnRlbnRDYW5B
Y2Nlc3NSZW1vdGVVcmxzLCBmYWxzZSk7CiAgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNl
dHRpbmdzOjpTZXNzaW9uU3RvcmFnZUVuYWJsZWQsIHRydWUpOwogICAgIGQtPm9mZmxpbmVTdG9y
YWdlRGVmYXVsdFF1b3RhID0gNSAqIDEwMjQgKiAxMDI0OworICAgIGQtPnByaW50aW5nTWluaW11
bVNocmlua0ZhY3RvciA9IDAuMGY7CisgICAgZC0+cHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9y
ID0gMC4wZjsKIH0KIAogLyohCkBAIC00OTEsNiArNTAxLDYwIEBAIFFTdHJpbmcgUVdlYlNldHRp
bmdzOjpkZWZhdWx0VGV4dEVuY29kaW4KIH0KIAogLyohCisgICAgXHNpbmNlIDQuNyAKKyAgICBT
cGVjaWZpZXMgbWluaW11bSBzaHJpbmsgZmF0b3IgYWxsb3dlZCBmb3IgcHJpbnRpbmcuIElmIHNl
dCB0byAwIGEKKyAgICBkZWZhdWx0IHZhbHVlIGlzIHVzZWQuCisKKyAgICBXaGVuIHByaW50aW5n
LCBjb250ZW50IHdpbGwgYmUgc2hydW5rIHRvIHJlZHVjZSBwYWdlIHVzYWdlLCBpdAorICAgIHdp
bGwgcmVkdWNlZCBieSBhIGZhY3RvciBiZXR3ZWVuIHByaW50aW5nTWluaW11bVNocmlua0ZhY3Rv
ciBhbmQKKyAgICBwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IuIAorCisgICAgXHNhIHByaW50
aW5nTWluaW11bVNocmlua0ZhY3RvcigpCisgICAgXHNhIHNldFByaW50aW5nTWF4aW11bVNocmlu
a0ZhY3RvcigpCisgICAgXHNhIHByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcigpCisqLwordm9p
ZCBRV2ViU2V0dGluZ3M6OnNldFByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcihmbG9hdCBwcmlu
dGluZ01pbmltdW1TaHJpbmtGYWN0b3IpCit7CisgICAgZC0+cHJpbnRpbmdNaW5pbXVtU2hyaW5r
RmFjdG9yID0gcHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yOworICAgIGQtPmFwcGx5KCk7Cit9
CisKKy8qIQorICAgIFxzaW5jZSA0LjcgCisgICAgcmV0dXJucyB0aGUgbWluaW11bSBzaHJpbmsg
ZmFjdG9yIHVzZWQgZm9yIHByaW50aW5nLgorCisgICAgXHNhIHNldFByaW50aW5nTWluaW11bVNo
cmlua0ZhY3RvcigpCisqLworZmxvYXQgUVdlYlNldHRpbmdzOjpwcmludGluZ01pbmltdW1TaHJp
bmtGYWN0b3IoKSBjb25zdAoreworICAgIHJldHVybiBkLT5wcmludGluZ01pbmltdW1TaHJpbmtG
YWN0b3I7Cit9CisKKy8qIQorICAgIFxzaW5jZSA0LjcgCisgICAgU3BlY2lmaWVzIG1heGltdW0g
c2hyaW5rIGZhdG9yIGFsbG93ZWQgZm9yIHByaW50aW5nLiBJZiBzZXQgdG8gMCBhCisgICAgZGVm
YXVsdCB2YWx1ZSBpcyB1c2VkLgorCisgICAgXHNhIHNldFByaW50aW5nTWluaW11bVNocmlua0Zh
Y3RvcigpCisqLwordm9pZCBRV2ViU2V0dGluZ3M6OnNldFByaW50aW5nTWF4aW11bVNocmlua0Zh
Y3RvcihmbG9hdCBwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IpCit7CisgICAgZC0+cHJpbnRp
bmdNYXhpbXVtU2hyaW5rRmFjdG9yID0gcHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yOworICAg
IGQtPmFwcGx5KCk7Cit9CisKKy8qIQorICAgIFxzaW5jZSA0LjcgCisgICAgcmV0dXJucyB0aGUg
bWF4aW11bSBzaHJpbmsgZmFjdG9yIHVzZWQgZm9yIHByaW50aW5nLgorCisgICAgXHNhIHNldFBy
aW50aW5nTWluaW11bVNocmlua0ZhY3RvcigpCisqLworZmxvYXQgUVdlYlNldHRpbmdzOjpwcmlu
dGluZ01heGltdW1TaHJpbmtGYWN0b3IoKSBjb25zdAoreworICAgIHJldHVybiBkLT5wcmludGlu
Z01heGltdW1TaHJpbmtGYWN0b3I7Cit9CisKKy8qIQogICAgIFNldHMgdGhlIHBhdGggb2YgdGhl
IGljb24gZGF0YWJhc2UgdG8gXGEgcGF0aC4gVGhlIGljb24gZGF0YWJhc2UgaXMgdXNlZAogICAg
IHRvIHN0b3JlICJmYXZpY29ucyIgYXNzb2NpYXRlZCB3aXRoIHdlYiBzaXRlcy4KIApJbmRleDog
V2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBp
L3F3ZWJzZXR0aW5ncy5oCShyZXZpc2lvbiA0ODYyMSkKKysrIFdlYktpdC9xdC9BcGkvcXdlYnNl
dHRpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw2ICsxMDMsMTIgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0RGVmYXVsdFRleHRFbmNvZGluZyhjb25zdCBRU3RyaW5nICZlbmNvZGluZyk7CiAg
ICAgUVN0cmluZyBkZWZhdWx0VGV4dEVuY29kaW5nKCkgY29uc3Q7CiAKKyAgICB2b2lkIHNldFBy
aW50aW5nTWluaW11bVNocmlua0ZhY3RvcihmbG9hdCBwcmludGluZ01pbmltdW1TaHJpbmtGYWN0
b3IpOworICAgIGZsb2F0IHByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcigpIGNvbnN0OworCisg
ICAgdm9pZCBzZXRQcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IoZmxvYXQgcHJpbnRpbmdNYXhp
bWltU2hyaW5rRmFjdG9yKTsKKyAgICBmbG9hdCBwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3Io
KSBjb25zdDsKKwogICAgIHN0YXRpYyB2b2lkIHNldEljb25EYXRhYmFzZVBhdGgoY29uc3QgUVN0
cmluZyAmbG9jYXRpb24pOwogICAgIHN0YXRpYyBRU3RyaW5nIGljb25EYXRhYmFzZVBhdGgoKTsK
ICAgICBzdGF0aWMgdm9pZCBjbGVhckljb25EYXRhYmFzZSgpOwo=
</data>
<flag name="review"
          id="21049"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="22457"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41154</attachid>
            <date>2009-10-14 02:08:43 -0700</date>
            <delta_ts>2009-10-18 23:56:26 -0700</delta_ts>
            <desc>Shrink factor patch 1.3</desc>
            <filename>shrink1.3.patch</filename>
            <type>text/plain</type>
            <size>10588</size>
            <attacher name="Jakob Truelsen">antialize</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTU1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDktMTAtMTQgIEpha29iIFRydWVsc2VuICA8YW50aWFsaXplQGdt
YWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwNDIKKyAgICAgICAg
QWxsb3cgb25lIHRvIGN1c3RvbWl6ZSB0aGUgbWluaW1hbCBhbmQgbWF4aW1hbCBzaHJpbmsgZmFj
dG9ycyB1c2VkIHdoZW4gcHJpbnRpbmcuCisJCisgICAgICAgICogcGFnZS9QcmludENvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJpbnRDb250ZXh0OjpiZWdpbik6CisgICAgICAgICog
cGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6U2V0dGluZ3Mp
OgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNldFByaW50aW5nTWluaW11bVNocmlua0Zh
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0UHJpbnRpbmdNYXhpbXVtU2hy
aW5rRmFjdG9yKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTZXR0aW5nczo6cHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OlNldHRpbmdzOjpwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IpOgorCiAyMDA5LTEwLTEz
ICBZb25nanVuIFpoYW5nICA8eW9uZ2p1bi56aGFuZ0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQXJpeWEgSGlkYXlhdC4KSW5kZXg6IFdlYkNvcmUvcGFnZS9QcmludENvbnRleHQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9QcmludENvbnRleHQuY3BwCShyZXZpc2lv
biA0OTU1NikKKysrIFdlYkNvcmUvcGFnZS9QcmludENvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZp
ZXcuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTk1LDE4ICs5NiwyMyBAQCB2b2lkIFByaW50
Q29udGV4dDo6Y29tcHV0ZVBhZ2VSZWN0cyhjb25zCiAKIHZvaWQgUHJpbnRDb250ZXh0OjpiZWdp
bihmbG9hdCB3aWR0aCkKIHsKLSAgICAvLyBCeSBpbWFnaW5nIHRvIGEgd2lkdGggYSBsaXR0bGUg
d2lkZXIgdGhhbiB0aGUgYXZhaWxhYmxlIHBpeGVscywKLSAgICAvLyB0aGluIHBhZ2VzIHdpbGwg
YmUgc2NhbGVkIGRvd24gYSBsaXR0bGUsIG1hdGNoaW5nIHRoZSB3YXkgdGhleQotICAgIC8vIHBy
aW50IGluIElFIGFuZCBDYW1pbm8uIFRoaXMgbGV0cyB0aGVtIHVzZSBmZXdlciBzaGVldHMgdGhh
biB0aGV5Ci0gICAgLy8gd291bGQgb3RoZXJ3aXNlLCB3aGljaCBpcyBwcmVzdW1hYmx5IHdoeSBv
dGhlciBicm93c2VycyBkbyB0aGlzLgotICAgIC8vIFdpZGUgcGFnZXMgd2lsbCBiZSBzY2FsZWQg
ZG93biBtb3JlIHRoYW4gdGhpcy4KLSAgICBjb25zdCBmbG9hdCBQcmludGluZ01pbmltdW1TaHJp
bmtGYWN0b3IgPSAxLjI1ZjsKLQotICAgIC8vIFRoaXMgbnVtYmVyIGRldGVybWluZXMgaG93IHNt
YWxsIHdlIGFyZSB3aWxsaW5nIHRvIHJlZHVjZSB0aGUgcGFnZSBjb250ZW50Ci0gICAgLy8gaW4g
b3JkZXIgdG8gYWNjb21tb2RhdGUgdGhlIHdpZGVzdCBsaW5lLiBJZiB0aGUgcGFnZSB3b3VsZCBo
YXZlIHRvIGJlCi0gICAgLy8gcmVkdWNlZCBzbWFsbGVyIHRvIG1ha2UgdGhlIHdpZGVzdCBsaW5l
IGZpdCwgd2UganVzdCBjbGlwIGluc3RlYWQgKHRoaXMKLSAgICAvLyBiZWhhdmlvciBtYXRjaGVz
IE1hY0lFIGFuZCBNb3ppbGxhLCBhdCBsZWFzdCkKLSAgICBjb25zdCBmbG9hdCBQcmludGluZ01h
eGltdW1TaHJpbmtGYWN0b3IgPSAyLjBmOworICAgIGZsb2F0IFByaW50aW5nTWluaW11bVNocmlu
a0ZhY3RvciA9IG1fZnJhbWUtPnNldHRpbmdzKCkgPyBtX2ZyYW1lLT5zZXR0aW5ncygpLT5wcmlu
dGluZ01pbmltdW1TaHJpbmtGYWN0b3IoKSA6IDAuMGY7CisgICAgZmxvYXQgUHJpbnRpbmdNYXhp
bXVtU2hyaW5rRmFjdG9yID0gbV9mcmFtZS0+c2V0dGluZ3MoKSA/IG1fZnJhbWUtPnNldHRpbmdz
KCktPnByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcigpIDogMC4wZjsKKworICAgIGlmIChQcmlu
dGluZ01heGltdW1TaHJpbmtGYWN0b3IgPCBQcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IgfHwg
UHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yIDw9IDAuMGYpIHsKKyAgICAgICAgLy8gQnkgaW1h
Z2luZyB0byBhIHdpZHRoIGEgbGl0dGxlIHdpZGVyIHRoYW4gdGhlIGF2YWlsYWJsZSBwaXhlbHMs
CisgICAgICAgIC8vIHRoaW4gcGFnZXMgd2lsbCBiZSBzY2FsZWQgZG93biBhIGxpdHRsZSwgbWF0
Y2hpbmcgdGhlIHdheSB0aGV5CisgICAgICAgIC8vIHByaW50IGluIElFIGFuZCBDYW1pbm8uIFRo
aXMgbGV0cyB0aGVtIHVzZSBmZXdlciBzaGVldHMgdGhhbiB0aGV5CisgICAgICAgIC8vIHdvdWxk
IG90aGVyd2lzZSwgd2hpY2ggaXMgcHJlc3VtYWJseSB3aHkgb3RoZXIgYnJvd3NlcnMgZG8gdGhp
cy4KKyAgICAgICAgLy8gV2lkZSBwYWdlcyB3aWxsIGJlIHNjYWxlZCBkb3duIG1vcmUgdGhhbiB0
aGlzLgorICAgICAgICBQcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IgPSAxLjI1ZjsKKworICAg
ICAgICAvLyBUaGlzIG51bWJlciBkZXRlcm1pbmVzIGhvdyBzbWFsbCB3ZSBhcmUgd2lsbGluZyB0
byByZWR1Y2UgdGhlIHBhZ2UgY29udGVudAorICAgICAgICAvLyBpbiBvcmRlciB0byBhY2NvbW1v
ZGF0ZSB0aGUgd2lkZXN0IGxpbmUuIElmIHRoZSBwYWdlIHdvdWxkIGhhdmUgdG8gYmUKKyAgICAg
ICAgLy8gcmVkdWNlZCBzbWFsbGVyIHRvIG1ha2UgdGhlIHdpZGVzdCBsaW5lIGZpdCwgd2UganVz
dCBjbGlwIGluc3RlYWQgKHRoaXMKKyAgICAgICAgLy8gYmVoYXZpb3IgbWF0Y2hlcyBNYWNJRSBh
bmQgTW96aWxsYSwgYXQgbGVhc3QpCisgICAgICAgIFByaW50aW5nTWF4aW11bVNocmlua0ZhY3Rv
ciA9IDIuMGY7CisgICAgfQogCiAgICAgZmxvYXQgbWluTGF5b3V0V2lkdGggPSB3aWR0aCAqIFBy
aW50aW5nTWluaW11bVNocmlua0ZhY3RvcjsKICAgICBmbG9hdCBtYXhMYXlvdXRXaWR0aCA9IHdp
ZHRoICogUHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yOwpJbmRleDogV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCShyZXZp
c2lvbiA0OTU1NikKKysrIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTYzLDYgKzYzLDggQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBt
X21heGltdW1EZWNvZGVkSW1hZ2VTaXplKG51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKQog
ICAgICwgbV9sb2NhbFN0b3JhZ2VRdW90YSg1ICogMTAyNCAqIDEwMjQpICAvLyBTdWdnZXN0ZWQg
YnkgdGhlIEhUTUw1IHNwZWMuCiAgICAgLCBtX3BsdWdpbkFsbG93ZWRSdW5UaW1lKG51bWVyaWNf
bGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpCisgICAgLCBtX3ByaW50aW5nTWluaW11bVNocmlua0Zh
Y3RvcigwLjBmKQorICAgICwgbV9wcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IoMC4wZikKICAg
ICAsIG1faXNKYXZhRW5hYmxlZChmYWxzZSkKICAgICAsIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNh
bGx5KGZhbHNlKQogICAgICwgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKGZhbHNlKQpAQCAtNTM5
LDQgKzU0MSwxNCBAQCB2b2lkIFNldHRpbmdzOjpzZXRFeHBlcmltZW50YWxXZWJTb2NrZXRzCiB9
CiAjZW5kaWYKIAordm9pZCBTZXR0aW5nczo6c2V0UHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9y
KGZsb2F0IHByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcikKK3sKKyAgICBtX3ByaW50aW5nTWlu
aW11bVNocmlua0ZhY3RvciA9IHByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcjsKK30gICAgCisK
K3ZvaWQgU2V0dGluZ3M6OnNldFByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcihmbG9hdCBwcmlu
dGluZ01heGltdW1TaHJpbmtGYWN0b3IpCit7CisgICAgbV9wcmludGluZ01heGltdW1TaHJpbmtG
YWN0b3IgPSBwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3I7Cit9ICAgIAorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkocmV2aXNpb24gNDk1NTYpCisrKyBXZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjc1LDYgKzI3NSwxMiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgZXhwZXJpbWVudGFsV2ViU29ja2V0c0VuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2V4cGVyaW1lbnRhbFdlYlNvY2tldHNFbmFibGVkOyB9CiAjZW5k
aWYKIAorICAgICAgICB2b2lkIHNldFByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcihmbG9hdCk7
CisgICAgICAgIGZsb2F0IHByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcigpIGNvbnN0IHsgcmV0
dXJuIG1fcHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yOyB9CisJCisgICAgICAgIHZvaWQgc2V0
UHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yKGZsb2F0KTsKKyAgICAgICAgZmxvYXQgcHJpbnRp
bmdNYXhpbXVtU2hyaW5rRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9wcmludGluZ01heGltdW1T
aHJpbmtGYWN0b3I7IH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIFBhZ2UqIG1fcGFnZTsKICAg
ICAgICAgCkBAIC0yOTcsNiArMzAzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBz
aXplX3QgbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6ZTsKICAgICAgICAgdW5zaWduZWQgbV9sb2Nh
bFN0b3JhZ2VRdW90YTsKICAgICAgICAgdW5zaWduZWQgbV9wbHVnaW5BbGxvd2VkUnVuVGltZTsK
KyAgICAgICAgZmxvYXQgbV9wcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3I7CisgICAgICAgIGZs
b2F0IG1fcHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yOwogICAgICAgICBib29sIG1faXNKYXZh
RW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgOiAx
OwogICAgICAgICBib29sIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCA6IDE7CkluZGV4OiBXZWJL
aXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlz
aW9uIDQ5NTU2KQorKysgV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDA5LTEwLTE0ICBKYWtvYiBUcnVlbHNlbiAgPGFudGlhbGl6ZUBnbWFpbC5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDQyCisKKyAgICAgICAgQWxs
b3cgb25lIHRvIGNvc3R1bWl6ZSB0aGUgbWluaW1hbCBhbmQgbWF4aW1hbCBzaHJpbmsgZmFjdG9y
cywKKyAgICAgICAgQWRkZWQgbWV0aG9kcyBzZXRQcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3Is
IHByaW50aW5nTWluaW11bVNocmlua0ZhY3RvciwKKyAgICAgICAgc2V0UHJpbnRpbmdNYXhpbXVt
U2hyaW5rRmFjdG9yLCBwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IgdG8gUVdlYlNldHRpbmdz
LgorCisKKyAgICAgICAgKiBBcGkvcXdlYnNldHRpbmdzLmNwcDoKKyAgICAgICAgKFFXZWJTZXR0
aW5nc1ByaXZhdGU6OmFwcGx5KToKKyAgICAgICAgKFFXZWJTZXR0aW5nczo6UVdlYlNldHRpbmdz
KToKKyAgICAgICAgKFFXZWJTZXR0aW5nczo6c2V0UHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9y
KToKKyAgICAgICAgKFFXZWJTZXR0aW5nczo6cHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKToK
KyAgICAgICAgKFFXZWJTZXR0aW5nczo6c2V0UHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yKToK
KyAgICAgICAgKFFXZWJTZXR0aW5nczo6cHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yKToKKyAg
ICAgICAgKiBBcGkvcXdlYnNldHRpbmdzLmg6CisKIDIwMDktMTAtMTMgIEdpcmlzaCBSYW1ha3Jp
c2huYW4gIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2lt
b24gSGF1c21hbm4uCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCShyZXZpc2lvbiA0OTU1NikK
KysrIFdlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIs
NiArNjIsOCBAQCBwdWJsaWM6CiAgICAgUVN0cmluZyBsb2NhbFN0b3JhZ2VQYXRoOwogICAgIFFT
dHJpbmcgb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVQYXRoOwogICAgIHFpbnQ2NCBvZmZsaW5l
U3RvcmFnZURlZmF1bHRRdW90YTsKKyAgICBmbG9hdCBwcmludGluZ01pbmltdW1TaHJpbmtGYWN0
b3I7CisgICAgZmxvYXQgcHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yOwogCiAgICAgdm9pZCBh
cHBseSgpOwogICAgIFdlYkNvcmU6OlNldHRpbmdzKiBzZXR0aW5nczsKQEAgLTE3NCw2ICsxNzYs
MTIgQEAgdm9pZCBRV2ViU2V0dGluZ3NQcml2YXRlOjphcHBseSgpCiAgICAgICAgIFFTdHJpbmcg
c3RvcmFnZVBhdGggPSAhbG9jYWxTdG9yYWdlUGF0aC5pc0VtcHR5KCkgPyBsb2NhbFN0b3JhZ2VQ
YXRoIDogZ2xvYmFsLT5sb2NhbFN0b3JhZ2VQYXRoOwogICAgICAgICBzZXR0aW5ncy0+c2V0TG9j
YWxTdG9yYWdlRGF0YWJhc2VQYXRoKHN0b3JhZ2VQYXRoKTsKIAorICAgICAgICBmbG9hdCBtaW5p
bXVtU2hyaW5rRmFjdG9yID0gcHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yID4gMC4wZiA/IHBy
aW50aW5nTWluaW11bVNocmlua0ZhY3RvciA6IGdsb2JhbC0+cHJpbnRpbmdNaW5pbXVtU2hyaW5r
RmFjdG9yOworICAgICAgICBzZXR0aW5ncy0+c2V0UHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9y
KG1pbmltdW1TaHJpbmtGYWN0b3IpOworCisgICAgICAgIGZsb2F0IG1heGltdW1TaHJpbmtGYWN0
b3IgPSBwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IgPiAwLjBmID8gcHJpbnRpbmdNYXhpbXVt
U2hyaW5rRmFjdG9yIDogZ2xvYmFsLT5wcmludGluZ01heGltdW1TaHJpbmtGYWN0b3I7CisgICAg
ICAgIHNldHRpbmdzLT5zZXRQcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IobWF4aW11bVNocmlu
a0ZhY3Rvcik7CisKICAgICAgICAgdmFsdWUgPSBhdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5n
czo6Wm9vbVRleHRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFs
LT5hdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6Wm9vbVRleHRPbmx5KSk7CiAgICAgICAg
IHNldHRpbmdzLT5zZXRab29tc1RleHRPbmx5KHZhbHVlKTsKQEAgLTM3OCw2ICszODYsOCBAQCBR
V2ViU2V0dGluZ3M6OlFXZWJTZXR0aW5ncygpCiAgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdl
YlNldHRpbmdzOjpTZXNzaW9uU3RvcmFnZUVuYWJsZWQsIHRydWUpOwogICAgIGQtPm9mZmxpbmVT
dG9yYWdlRGVmYXVsdFF1b3RhID0gNSAqIDEwMjQgKiAxMDI0OwogICAgIGQtPmRlZmF1bHRUZXh0
RW5jb2RpbmcgPSBRTGF0aW4xU3RyaW5nKCJpc28tODg1OS0xIik7CisgICAgZC0+cHJpbnRpbmdN
aW5pbXVtU2hyaW5rRmFjdG9yID0gMC4wZjsKKyAgICBkLT5wcmludGluZ01heGltdW1TaHJpbmtG
YWN0b3IgPSAwLjBmOwogfQogCiAvKiEKQEAgLTQ5Miw2ICs1MDIsNjAgQEAgUVN0cmluZyBRV2Vi
U2V0dGluZ3M6OmRlZmF1bHRUZXh0RW5jb2RpbgogfQogCiAvKiEKKyAgICBcc2luY2UgNC43IAor
ICAgIFNwZWNpZmllcyBtaW5pbXVtIHNocmluayBmYXRvciBhbGxvd2VkIGZvciBwcmludGluZy4g
SWYgc2V0IHRvIDAgYQorICAgIGRlZmF1bHQgdmFsdWUgaXMgdXNlZC4KKworICAgIFdoZW4gcHJp
bnRpbmcsIGNvbnRlbnQgd2lsbCBiZSBzaHJ1bmsgdG8gcmVkdWNlIHBhZ2UgdXNhZ2UsIGl0Cisg
ICAgd2lsbCByZWR1Y2VkIGJ5IGEgZmFjdG9yIGJldHdlZW4gcHJpbnRpbmdNaW5pbXVtU2hyaW5r
RmFjdG9yIGFuZAorICAgIHByaW50aW5nTWF4aW11bVNocmlua0ZhY3Rvci4gCisKKyAgICBcc2Eg
cHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKCkKKyAgICBcc2Egc2V0UHJpbnRpbmdNYXhpbXVt
U2hyaW5rRmFjdG9yKCkKKyAgICBcc2EgcHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yKCkKKyov
Cit2b2lkIFFXZWJTZXR0aW5nczo6c2V0UHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKGZsb2F0
IHByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcikKK3sKKyAgICBkLT5wcmludGluZ01pbmltdW1T
aHJpbmtGYWN0b3IgPSBwcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3I7CisgICAgZC0+YXBwbHko
KTsKK30KKworLyohCisgICAgXHNpbmNlIDQuNyAKKyAgICByZXR1cm5zIHRoZSBtaW5pbXVtIHNo
cmluayBmYWN0b3IgdXNlZCBmb3IgcHJpbnRpbmcuCisKKyAgICBcc2Egc2V0UHJpbnRpbmdNaW5p
bXVtU2hyaW5rRmFjdG9yKCkKKyovCitmbG9hdCBRV2ViU2V0dGluZ3M6OnByaW50aW5nTWluaW11
bVNocmlua0ZhY3RvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPnByaW50aW5nTWluaW11bVNo
cmlua0ZhY3RvcjsKK30KKworLyohCisgICAgXHNpbmNlIDQuNyAKKyAgICBTcGVjaWZpZXMgbWF4
aW11bSBzaHJpbmsgZmF0b3IgYWxsb3dlZCBmb3IgcHJpbnRpbmcuIElmIHNldCB0byAwIGEKKyAg
ICBkZWZhdWx0IHZhbHVlIGlzIHVzZWQuCisKKyAgICBcc2Egc2V0UHJpbnRpbmdNaW5pbXVtU2hy
aW5rRmFjdG9yKCkKKyovCit2b2lkIFFXZWJTZXR0aW5nczo6c2V0UHJpbnRpbmdNYXhpbXVtU2hy
aW5rRmFjdG9yKGZsb2F0IHByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcikKK3sKKyAgICBkLT5w
cmludGluZ01heGltdW1TaHJpbmtGYWN0b3IgPSBwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3I7
CisgICAgZC0+YXBwbHkoKTsKK30KKworLyohCisgICAgXHNpbmNlIDQuNyAKKyAgICByZXR1cm5z
IHRoZSBtYXhpbXVtIHNocmluayBmYWN0b3IgdXNlZCBmb3IgcHJpbnRpbmcuCisKKyAgICBcc2Eg
c2V0UHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKCkKKyovCitmbG9hdCBRV2ViU2V0dGluZ3M6
OnByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPnBy
aW50aW5nTWF4aW11bVNocmlua0ZhY3RvcjsKK30KKworLyohCiAgICAgU2V0cyB0aGUgcGF0aCBv
ZiB0aGUgaWNvbiBkYXRhYmFzZSB0byBcYSBwYXRoLiBUaGUgaWNvbiBkYXRhYmFzZSBpcyB1c2Vk
CiAgICAgdG8gc3RvcmUgImZhdmljb25zIiBhc3NvY2lhdGVkIHdpdGggd2ViIHNpdGVzLgogCklu
ZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9x
dC9BcGkvcXdlYnNldHRpbmdzLmgJKHJldmlzaW9uIDQ5NTU2KQorKysgV2ViS2l0L3F0L0FwaS9x
d2Vic2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDYgKzEwMywxMiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXREZWZhdWx0VGV4dEVuY29kaW5nKGNvbnN0IFFTdHJpbmcgJmVuY29kaW5n
KTsKICAgICBRU3RyaW5nIGRlZmF1bHRUZXh0RW5jb2RpbmcoKSBjb25zdDsKIAorICAgIHZvaWQg
c2V0UHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKGZsb2F0IHByaW50aW5nTWluaW11bVNocmlu
a0ZhY3Rvcik7CisgICAgZmxvYXQgcHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKCkgY29uc3Q7
CisKKyAgICB2b2lkIHNldFByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcihmbG9hdCBwcmludGlu
Z01heGltaW1TaHJpbmtGYWN0b3IpOworICAgIGZsb2F0IHByaW50aW5nTWF4aW11bVNocmlua0Zh
Y3RvcigpIGNvbnN0OworCiAgICAgc3RhdGljIHZvaWQgc2V0SWNvbkRhdGFiYXNlUGF0aChjb25z
dCBRU3RyaW5nICZsb2NhdGlvbik7CiAgICAgc3RhdGljIFFTdHJpbmcgaWNvbkRhdGFiYXNlUGF0
aCgpOwogICAgIHN0YXRpYyB2b2lkIGNsZWFySWNvbkRhdGFiYXNlKCk7Cg==
</data>
<flag name="review"
          id="22491"
          type_id="1"
          status="-"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="22490"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41399</attachid>
            <date>2009-10-18 23:56:26 -0700</date>
            <delta_ts>2009-10-19 00:17:48 -0700</delta_ts>
            <desc>Patch now ^I free</desc>
            <filename>shrink1.4.patch</filename>
            <type>text/plain</type>
            <size>11105</size>
            <attacher name="Jakob Truelsen">antialize</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTc2NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDktMTAtMTkgIEpha29iIFRydWVsc2VuICA8YW50aWFsaXplQGdt
YWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwNDIKKyAgICAgICAg
QWxsb3cgb25lIHRvIGN1c3RvbWl6ZSB0aGUgbWluaW1hbCBhbmQgbWF4aW1hbCBzaHJpbmsgZmFj
dG9ycyB1c2VkIHdoZW4gcHJpbnRpbmcuCisKKyAgICAgICAgKiBwYWdlL1ByaW50Q29udGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQcmludENvbnRleHQ6OmJlZ2luKToKKyAgICAgICAgKiBw
YWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0UHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRQcmludGluZ01heGltdW1TaHJp
bmtGYWN0b3IpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNldHRpbmdzOjpwcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U2V0dGluZ3M6OnByaW50aW5nTWF4aW11bVNocmlua0ZhY3Rvcik6CisKIDIwMDktMTAtMTgg
IEtldmluIE9sbGl2aWVyICA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+CiAKICAgICAgICAgQ1VS
TCBidWlsZCBmaXgsIHVzZSBwcm9wZXIgaGVhZGVyIG5hbWUuCkBAIC0xOTQ3LDYgKzE5NjQsNyBA
QAogICAgICAgICAoSW5qZWN0ZWRTY3JpcHQuQ2FsbEZyYW1lUHJveHkucHJvdG90eXBlLl93cmFw
U2NvcGVDaGFpbik6IGRvbid0IHNlbmQgY2FsbCBmcmFtZSBwcm9wZXJ0aWVzIHVudGlsIHRoZXkn
cmUgbmVlZGVkLgogICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpz
OgogCis+Pj4+Pj4+IC5yNDk3NjUKIDIwMDktMTAtMTMgIFlvbmdqdW4gWmhhbmcgIDx5b25nanVu
LnpoYW5nQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBcml5YSBIaWRheWF0LgpJ
bmRleDogV2ViQ29yZS9wYWdlL1ByaW50Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wYWdlL1ByaW50Q29udGV4dC5jcHAJKHJldmlzaW9uIDQ5NzY1KQorKysgV2ViQ29yZS9wYWdl
L1ByaW50Q29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNs
dWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIlJlbmRlclZp
ZXcuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IApAQCAtOTUsMTggKzk2LDIzIEBAIHZvaWQgUHJpbnRDb250ZXh0Ojpjb21wdXRlUGFnZVJlY3Rz
KGNvbnMKIAogdm9pZCBQcmludENvbnRleHQ6OmJlZ2luKGZsb2F0IHdpZHRoKQogewotICAgIC8v
IEJ5IGltYWdpbmcgdG8gYSB3aWR0aCBhIGxpdHRsZSB3aWRlciB0aGFuIHRoZSBhdmFpbGFibGUg
cGl4ZWxzLAotICAgIC8vIHRoaW4gcGFnZXMgd2lsbCBiZSBzY2FsZWQgZG93biBhIGxpdHRsZSwg
bWF0Y2hpbmcgdGhlIHdheSB0aGV5Ci0gICAgLy8gcHJpbnQgaW4gSUUgYW5kIENhbWluby4gVGhp
cyBsZXRzIHRoZW0gdXNlIGZld2VyIHNoZWV0cyB0aGFuIHRoZXkKLSAgICAvLyB3b3VsZCBvdGhl
cndpc2UsIHdoaWNoIGlzIHByZXN1bWFibHkgd2h5IG90aGVyIGJyb3dzZXJzIGRvIHRoaXMuCi0g
ICAgLy8gV2lkZSBwYWdlcyB3aWxsIGJlIHNjYWxlZCBkb3duIG1vcmUgdGhhbiB0aGlzLgotICAg
IGNvbnN0IGZsb2F0IFByaW50aW5nTWluaW11bVNocmlua0ZhY3RvciA9IDEuMjVmOwotCi0gICAg
Ly8gVGhpcyBudW1iZXIgZGV0ZXJtaW5lcyBob3cgc21hbGwgd2UgYXJlIHdpbGxpbmcgdG8gcmVk
dWNlIHRoZSBwYWdlIGNvbnRlbnQKLSAgICAvLyBpbiBvcmRlciB0byBhY2NvbW1vZGF0ZSB0aGUg
d2lkZXN0IGxpbmUuIElmIHRoZSBwYWdlIHdvdWxkIGhhdmUgdG8gYmUKLSAgICAvLyByZWR1Y2Vk
IHNtYWxsZXIgdG8gbWFrZSB0aGUgd2lkZXN0IGxpbmUgZml0LCB3ZSBqdXN0IGNsaXAgaW5zdGVh
ZCAodGhpcwotICAgIC8vIGJlaGF2aW9yIG1hdGNoZXMgTWFjSUUgYW5kIE1vemlsbGEsIGF0IGxl
YXN0KQotICAgIGNvbnN0IGZsb2F0IFByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvciA9IDIuMGY7
CisgICAgZmxvYXQgUHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yID0gbV9mcmFtZS0+c2V0dGlu
Z3MoKSA/IG1fZnJhbWUtPnNldHRpbmdzKCktPnByaW50aW5nTWluaW11bVNocmlua0ZhY3Rvcigp
IDogMC4wZjsKKyAgICBmbG9hdCBQcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IgPSBtX2ZyYW1l
LT5zZXR0aW5ncygpID8gbV9mcmFtZS0+c2V0dGluZ3MoKS0+cHJpbnRpbmdNYXhpbXVtU2hyaW5r
RmFjdG9yKCkgOiAwLjBmOworCisgICAgaWYgKFByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvciA8
IFByaW50aW5nTWluaW11bVNocmlua0ZhY3RvciB8fCBQcmludGluZ01pbmltdW1TaHJpbmtGYWN0
b3IgPD0gMC4wZikgeworICAgICAgICAvLyBCeSBpbWFnaW5nIHRvIGEgd2lkdGggYSBsaXR0bGUg
d2lkZXIgdGhhbiB0aGUgYXZhaWxhYmxlIHBpeGVscywKKyAgICAgICAgLy8gdGhpbiBwYWdlcyB3
aWxsIGJlIHNjYWxlZCBkb3duIGEgbGl0dGxlLCBtYXRjaGluZyB0aGUgd2F5IHRoZXkKKyAgICAg
ICAgLy8gcHJpbnQgaW4gSUUgYW5kIENhbWluby4gVGhpcyBsZXRzIHRoZW0gdXNlIGZld2VyIHNo
ZWV0cyB0aGFuIHRoZXkKKyAgICAgICAgLy8gd291bGQgb3RoZXJ3aXNlLCB3aGljaCBpcyBwcmVz
dW1hYmx5IHdoeSBvdGhlciBicm93c2VycyBkbyB0aGlzLgorICAgICAgICAvLyBXaWRlIHBhZ2Vz
IHdpbGwgYmUgc2NhbGVkIGRvd24gbW9yZSB0aGFuIHRoaXMuCisgICAgICAgIFByaW50aW5nTWlu
aW11bVNocmlua0ZhY3RvciA9IDEuMjVmOworCisgICAgICAgIC8vIFRoaXMgbnVtYmVyIGRldGVy
bWluZXMgaG93IHNtYWxsIHdlIGFyZSB3aWxsaW5nIHRvIHJlZHVjZSB0aGUgcGFnZSBjb250ZW50
CisgICAgICAgIC8vIGluIG9yZGVyIHRvIGFjY29tbW9kYXRlIHRoZSB3aWRlc3QgbGluZS4gSWYg
dGhlIHBhZ2Ugd291bGQgaGF2ZSB0byBiZQorICAgICAgICAvLyByZWR1Y2VkIHNtYWxsZXIgdG8g
bWFrZSB0aGUgd2lkZXN0IGxpbmUgZml0LCB3ZSBqdXN0IGNsaXAgaW5zdGVhZCAodGhpcworICAg
ICAgICAvLyBiZWhhdmlvciBtYXRjaGVzIE1hY0lFIGFuZCBNb3ppbGxhLCBhdCBsZWFzdCkKKyAg
ICAgICAgUHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yID0gMi4wZjsKKyAgICB9CiAKICAgICBm
bG9hdCBtaW5MYXlvdXRXaWR0aCA9IHdpZHRoICogUHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9y
OwogICAgIGZsb2F0IG1heExheW91dFdpZHRoID0gd2lkdGggKiBQcmludGluZ01heGltdW1TaHJp
bmtGYWN0b3I7CkluZGV4OiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAJKHJldmlzaW9uIDQ5NzY1KQorKysgV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjMsNiArNjMsOCBAQCBTZXR0aW5n
czo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fbWF4aW11bURlY29kZWRJbWFnZVNpemUo
bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpCiAgICAgLCBtX2xvY2FsU3RvcmFnZVF1b3Rh
KDUgKiAxMDI0ICogMTAyNCkgIC8vIFN1Z2dlc3RlZCBieSB0aGUgSFRNTDUgc3BlYy4KICAgICAs
IG1fcGx1Z2luQWxsb3dlZFJ1blRpbWUobnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSkK
KyAgICAsIG1fcHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKDAuMGYpCisgICAgLCBtX3ByaW50
aW5nTWF4aW11bVNocmlua0ZhY3RvcigwLjBmKQogICAgICwgbV9pc0phdmFFbmFibGVkKGZhbHNl
KQogICAgICwgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoZmFsc2UpCiAgICAgLCBtX3ByaXZh
dGVCcm93c2luZ0VuYWJsZWQoZmFsc2UpCkBAIC01MzksNCArNTQxLDE0IEBAIHZvaWQgU2V0dGlu
Z3M6OnNldEV4cGVyaW1lbnRhbFdlYlNvY2tldHMKIH0KICNlbmRpZgogCit2b2lkIFNldHRpbmdz
OjpzZXRQcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IoZmxvYXQgcHJpbnRpbmdNaW5pbXVtU2hy
aW5rRmFjdG9yKQoreworICAgIG1fcHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yID0gcHJpbnRp
bmdNaW5pbXVtU2hyaW5rRmFjdG9yOworfSAgICAKKwordm9pZCBTZXR0aW5nczo6c2V0UHJpbnRp
bmdNYXhpbXVtU2hyaW5rRmFjdG9yKGZsb2F0IHByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcikK
K3sKKyAgICBtX3ByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvciA9IHByaW50aW5nTWF4aW11bVNo
cmlua0ZhY3RvcjsKK30gICAgCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNv
cmUvcGFnZS9TZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5o
CShyZXZpc2lvbiA0OTc2NSkKKysrIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNzUsNiArMjc1LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9v
bCBleHBlcmltZW50YWxXZWJTb2NrZXRzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZXhwZXJp
bWVudGFsV2ViU29ja2V0c0VuYWJsZWQ7IH0KICNlbmRpZgogCisgICAgICAgIHZvaWQgc2V0UHJp
bnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKGZsb2F0KTsKKyAgICAgICAgZmxvYXQgcHJpbnRpbmdN
aW5pbXVtU2hyaW5rRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9wcmludGluZ01pbmltdW1TaHJp
bmtGYWN0b3I7IH0KKworICAgICAgICB2b2lkIHNldFByaW50aW5nTWF4aW11bVNocmlua0ZhY3Rv
cihmbG9hdCk7CisgICAgICAgIGZsb2F0IHByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcigpIGNv
bnN0IHsgcmV0dXJuIG1fcHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yOyB9CisKICAgICBwcml2
YXRlOgogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgICAgIApAQCAtMjk3LDYgKzMwMyw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc2l6ZV90IG1fbWF4aW11bURlY29kZWRJbWFn
ZVNpemU7CiAgICAgICAgIHVuc2lnbmVkIG1fbG9jYWxTdG9yYWdlUXVvdGE7CiAgICAgICAgIHVu
c2lnbmVkIG1fcGx1Z2luQWxsb3dlZFJ1blRpbWU7CisgICAgICAgIGZsb2F0IG1fcHJpbnRpbmdN
aW5pbXVtU2hyaW5rRmFjdG9yOworICAgICAgICBmbG9hdCBtX3ByaW50aW5nTWF4aW11bVNocmlu
a0ZhY3RvcjsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJsZWQgOiAxOwogICAgICAgICBib29s
IG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IDogMTsKICAgICAgICAgYm9vbCBtX3ByaXZhdGVC
cm93c2luZ0VuYWJsZWQgOiAxOwpJbmRleDogV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA0OTc2NSkKKysrIFdlYktpdC9xdC9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAorMjAwOS0xMC0xOSAgSmFr
b2IgVHJ1ZWxzZW4gIDxhbnRpYWxpemVAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yOTA0MgorCisgICAgICAgIEFsbG93IG9uZSB0byBjb3N0dW1pemUgdGhlIG1p
bmltYWwgYW5kIG1heGltYWwgc2hyaW5rIGZhY3RvcnMsCisgICAgICAgIEFkZGVkIG1ldGhvZHMg
c2V0UHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yLCBwcmludGluZ01pbmltdW1TaHJpbmtGYWN0
b3IsCisgICAgICAgIHNldFByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvciwgcHJpbnRpbmdNYXhp
bXVtU2hyaW5rRmFjdG9yIHRvIFFXZWJTZXR0aW5ncy4KKworCisgICAgICAgICogQXBpL3F3ZWJz
ZXR0aW5ncy5jcHA6CisgICAgICAgIChRV2ViU2V0dGluZ3NQcml2YXRlOjphcHBseSk6CisgICAg
ICAgIChRV2ViU2V0dGluZ3M6OlFXZWJTZXR0aW5ncyk6CisgICAgICAgIChRV2ViU2V0dGluZ3M6
OnNldFByaW50aW5nTWluaW11bVNocmlua0ZhY3Rvcik6CisgICAgICAgIChRV2ViU2V0dGluZ3M6
OnByaW50aW5nTWluaW11bVNocmlua0ZhY3Rvcik6CisgICAgICAgIChRV2ViU2V0dGluZ3M6OnNl
dFByaW50aW5nTWF4aW11bVNocmlua0ZhY3Rvcik6CisgICAgICAgIChRV2ViU2V0dGluZ3M6OnBy
aW50aW5nTWF4aW11bVNocmlua0ZhY3Rvcik6CisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5o
OgorCiAyMDA5LTEwLTE2ICBBbnRvbmlvIEdvbWVzICA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCkBAIC04OSw2ICsxMDksNyBAQAog
ICAgICAgICAqIEFwaS9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcDoKICAgICAgICAgKFFHcmFwaGljc1dl
YlZpZXc6OmV2ZW50KToKIAorPj4+Pj4+PiAucjQ5NzY1CiAyMDA5LTEwLTEzICBHaXJpc2ggUmFt
YWtyaXNobmFuICA8Z2lyaXNoQGZvcndhcmRiaWFzLmluPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEhhdXNtYW5uLgpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAkocmV2aXNpb24gNDk3
NjUpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTYyLDYgKzYyLDggQEAgcHVibGljOgogICAgIFFTdHJpbmcgbG9jYWxTdG9yYWdlUGF0aDsKICAg
ICBRU3RyaW5nIG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlUGF0aDsKICAgICBxaW50NjQgb2Zm
bGluZVN0b3JhZ2VEZWZhdWx0UXVvdGE7CisgICAgZmxvYXQgcHJpbnRpbmdNaW5pbXVtU2hyaW5r
RmFjdG9yOworICAgIGZsb2F0IHByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcjsKIAogICAgIHZv
aWQgYXBwbHkoKTsKICAgICBXZWJDb3JlOjpTZXR0aW5ncyogc2V0dGluZ3M7CkBAIC0xNzQsNiAr
MTc2LDEyIEBAIHZvaWQgUVdlYlNldHRpbmdzUHJpdmF0ZTo6YXBwbHkoKQogICAgICAgICBRU3Ry
aW5nIHN0b3JhZ2VQYXRoID0gIWxvY2FsU3RvcmFnZVBhdGguaXNFbXB0eSgpID8gbG9jYWxTdG9y
YWdlUGF0aCA6IGdsb2JhbC0+bG9jYWxTdG9yYWdlUGF0aDsKICAgICAgICAgc2V0dGluZ3MtPnNl
dExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChzdG9yYWdlUGF0aCk7CiAKKyAgICAgICAgZmxvYXQg
bWluaW11bVNocmlua0ZhY3RvciA9IHByaW50aW5nTWluaW11bVNocmlua0ZhY3RvciA+IDAuMGYg
PyBwcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IgOiBnbG9iYWwtPnByaW50aW5nTWluaW11bVNo
cmlua0ZhY3RvcjsKKyAgICAgICAgc2V0dGluZ3MtPnNldFByaW50aW5nTWluaW11bVNocmlua0Zh
Y3RvcihtaW5pbXVtU2hyaW5rRmFjdG9yKTsKKworICAgICAgICBmbG9hdCBtYXhpbXVtU2hyaW5r
RmFjdG9yID0gcHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yID4gMC4wZiA/IHByaW50aW5nTWF4
aW11bVNocmlua0ZhY3RvciA6IGdsb2JhbC0+cHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yOwor
ICAgICAgICBzZXR0aW5ncy0+c2V0UHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yKG1heGltdW1T
aHJpbmtGYWN0b3IpOworCiAgICAgICAgIHZhbHVlID0gYXR0cmlidXRlcy52YWx1ZShRV2ViU2V0
dGluZ3M6Olpvb21UZXh0T25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGds
b2JhbC0+YXR0cmlidXRlcy52YWx1ZShRV2ViU2V0dGluZ3M6Olpvb21UZXh0T25seSkpOwogICAg
ICAgICBzZXR0aW5ncy0+c2V0Wm9vbXNUZXh0T25seSh2YWx1ZSk7CkBAIC0zNzgsNiArMzg2LDgg
QEAgUVdlYlNldHRpbmdzOjpRV2ViU2V0dGluZ3MoKQogICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0
KFFXZWJTZXR0aW5nczo6U2Vzc2lvblN0b3JhZ2VFbmFibGVkLCB0cnVlKTsKICAgICBkLT5vZmZs
aW5lU3RvcmFnZURlZmF1bHRRdW90YSA9IDUgKiAxMDI0ICogMTAyNDsKICAgICBkLT5kZWZhdWx0
VGV4dEVuY29kaW5nID0gUUxhdGluMVN0cmluZygiaXNvLTg4NTktMSIpOworICAgIGQtPnByaW50
aW5nTWluaW11bVNocmlua0ZhY3RvciA9IDAuMGY7CisgICAgZC0+cHJpbnRpbmdNYXhpbXVtU2hy
aW5rRmFjdG9yID0gMC4wZjsKIH0KIAogLyohCkBAIC00OTIsNiArNTAyLDYwIEBAIFFTdHJpbmcg
UVdlYlNldHRpbmdzOjpkZWZhdWx0VGV4dEVuY29kaW4KIH0KIAogLyohCisgICAgXHNpbmNlIDQu
NyAKKyAgICBTcGVjaWZpZXMgbWluaW11bSBzaHJpbmsgZmF0b3IgYWxsb3dlZCBmb3IgcHJpbnRp
bmcuIElmIHNldCB0byAwIGEKKyAgICBkZWZhdWx0IHZhbHVlIGlzIHVzZWQuCisKKyAgICBXaGVu
IHByaW50aW5nLCBjb250ZW50IHdpbGwgYmUgc2hydW5rIHRvIHJlZHVjZSBwYWdlIHVzYWdlLCBp
dAorICAgIHdpbGwgcmVkdWNlZCBieSBhIGZhY3RvciBiZXR3ZWVuIHByaW50aW5nTWluaW11bVNo
cmlua0ZhY3RvciBhbmQKKyAgICBwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IuIAorCisgICAg
XHNhIHByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcigpCisgICAgXHNhIHNldFByaW50aW5nTWF4
aW11bVNocmlua0ZhY3RvcigpCisgICAgXHNhIHByaW50aW5nTWF4aW11bVNocmlua0ZhY3Rvcigp
CisqLwordm9pZCBRV2ViU2V0dGluZ3M6OnNldFByaW50aW5nTWluaW11bVNocmlua0ZhY3Rvcihm
bG9hdCBwcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IpCit7CisgICAgZC0+cHJpbnRpbmdNaW5p
bXVtU2hyaW5rRmFjdG9yID0gcHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yOworICAgIGQtPmFw
cGx5KCk7Cit9CisKKy8qIQorICAgIFxzaW5jZSA0LjcgCisgICAgcmV0dXJucyB0aGUgbWluaW11
bSBzaHJpbmsgZmFjdG9yIHVzZWQgZm9yIHByaW50aW5nLgorCisgICAgXHNhIHNldFByaW50aW5n
TWluaW11bVNocmlua0ZhY3RvcigpCisqLworZmxvYXQgUVdlYlNldHRpbmdzOjpwcmludGluZ01p
bmltdW1TaHJpbmtGYWN0b3IoKSBjb25zdAoreworICAgIHJldHVybiBkLT5wcmludGluZ01pbmlt
dW1TaHJpbmtGYWN0b3I7Cit9CisKKy8qIQorICAgIFxzaW5jZSA0LjcgCisgICAgU3BlY2lmaWVz
IG1heGltdW0gc2hyaW5rIGZhdG9yIGFsbG93ZWQgZm9yIHByaW50aW5nLiBJZiBzZXQgdG8gMCBh
CisgICAgZGVmYXVsdCB2YWx1ZSBpcyB1c2VkLgorCisgICAgXHNhIHNldFByaW50aW5nTWluaW11
bVNocmlua0ZhY3RvcigpCisqLwordm9pZCBRV2ViU2V0dGluZ3M6OnNldFByaW50aW5nTWF4aW11
bVNocmlua0ZhY3RvcihmbG9hdCBwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IpCit7CisgICAg
ZC0+cHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yID0gcHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFj
dG9yOworICAgIGQtPmFwcGx5KCk7Cit9CisKKy8qIQorICAgIFxzaW5jZSA0LjcgCisgICAgcmV0
dXJucyB0aGUgbWF4aW11bSBzaHJpbmsgZmFjdG9yIHVzZWQgZm9yIHByaW50aW5nLgorCisgICAg
XHNhIHNldFByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcigpCisqLworZmxvYXQgUVdlYlNldHRp
bmdzOjpwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IoKSBjb25zdAoreworICAgIHJldHVybiBk
LT5wcmludGluZ01heGltdW1TaHJpbmtGYWN0b3I7Cit9CisKKy8qIQogICAgIFNldHMgdGhlIHBh
dGggb2YgdGhlIGljb24gZGF0YWJhc2UgdG8gXGEgcGF0aC4gVGhlIGljb24gZGF0YWJhc2UgaXMg
dXNlZAogICAgIHRvIHN0b3JlICJmYXZpY29ucyIgYXNzb2NpYXRlZCB3aXRoIHdlYiBzaXRlcy4K
IApJbmRleDogV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5oCShyZXZpc2lvbiA0OTc2NSkKKysrIFdlYktpdC9xdC9B
cGkvcXdlYnNldHRpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw2ICsxMDMsMTIgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0RGVmYXVsdFRleHRFbmNvZGluZyhjb25zdCBRU3RyaW5nICZlbmNv
ZGluZyk7CiAgICAgUVN0cmluZyBkZWZhdWx0VGV4dEVuY29kaW5nKCkgY29uc3Q7CiAKKyAgICB2
b2lkIHNldFByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcihmbG9hdCBwcmludGluZ01pbmltdW1T
aHJpbmtGYWN0b3IpOworICAgIGZsb2F0IHByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcigpIGNv
bnN0OworCisgICAgdm9pZCBzZXRQcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IoZmxvYXQgcHJp
bnRpbmdNYXhpbWltU2hyaW5rRmFjdG9yKTsKKyAgICBmbG9hdCBwcmludGluZ01heGltdW1TaHJp
bmtGYWN0b3IoKSBjb25zdDsKKwogICAgIHN0YXRpYyB2b2lkIHNldEljb25EYXRhYmFzZVBhdGgo
Y29uc3QgUVN0cmluZyAmbG9jYXRpb24pOwogICAgIHN0YXRpYyBRU3RyaW5nIGljb25EYXRhYmFz
ZVBhdGgoKTsKICAgICBzdGF0aWMgdm9pZCBjbGVhckljb25EYXRhYmFzZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43058</attachid>
            <date>2009-11-12 05:07:55 -0800</date>
            <delta_ts>2009-11-12 05:52:57 -0800</delta_ts>
            <desc>Revert the commit r49769</desc>
            <filename>revert_r49769.patch</filename>
            <type>text/plain</type>
            <size>9971</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTQ1ODE5Ni4uOGU4MzE2MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAwOS0xMS0xMiAgQmVuamFtaW4gUG91
bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1c3RvbSBwcmludGluZyBzaHJpbmsgZmFjdG9y
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwNDIK
KworICAgICAgICBUaGlzIHJldmVydHMgY29tbWl0IHI0OTc2OS4gVGhlIHB1YmxpYyBBUEkgZm9y
IHRoaXMgbmVlZHMgdG8gYmUgcmV2aWV3ZWQKKyAgICAgICAgYmVmb3JlIGl0cyBpbmNsdXNpb24g
aW4gUXQuCisKKyAgICAgICAgKiBwYWdlL1ByaW50Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQcmludENvbnRleHQ6OmJlZ2luKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CisgICAgICAgICogcGFnZS9T
ZXR0aW5ncy5oOgorCiAyMDA5LTExLTEyICBZdXRhIEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL1ByaW50Q29udGV4dC5jcHAgYi9XZWJDb3JlL3BhZ2UvUHJpbnRDb250ZXh0LmNw
cAppbmRleCBiYmE2NzhhLi40ZDNhODM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvUHJpbnRD
b250ZXh0LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvUHJpbnRDb250ZXh0LmNwcApAQCAtMjUsNyAr
MjUsNiBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5j
bHVkZSAiUmVuZGVyVmlldy5oIgotI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCkBAIC05NiwyMyArOTUsMTggQEAgdm9pZCBQcmludENvbnRleHQ6OmNv
bXB1dGVQYWdlUmVjdHMoY29uc3QgRmxvYXRSZWN0JiBwcmludFJlY3QsIGZsb2F0IGhlYWRlckhl
aWcKIAogdm9pZCBQcmludENvbnRleHQ6OmJlZ2luKGZsb2F0IHdpZHRoKQogewotICAgIGZsb2F0
IFByaW50aW5nTWluaW11bVNocmlua0ZhY3RvciA9IG1fZnJhbWUtPnNldHRpbmdzKCkgPyBtX2Zy
YW1lLT5zZXR0aW5ncygpLT5wcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IoKSA6IDAuMGY7Ci0g
ICAgZmxvYXQgUHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yID0gbV9mcmFtZS0+c2V0dGluZ3Mo
KSA/IG1fZnJhbWUtPnNldHRpbmdzKCktPnByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcigpIDog
MC4wZjsKLQotICAgIGlmIChQcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IgPCBQcmludGluZ01p
bmltdW1TaHJpbmtGYWN0b3IgfHwgUHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yIDw9IDAuMGYp
IHsKLSAgICAgICAgLy8gQnkgaW1hZ2luZyB0byBhIHdpZHRoIGEgbGl0dGxlIHdpZGVyIHRoYW4g
dGhlIGF2YWlsYWJsZSBwaXhlbHMsCi0gICAgICAgIC8vIHRoaW4gcGFnZXMgd2lsbCBiZSBzY2Fs
ZWQgZG93biBhIGxpdHRsZSwgbWF0Y2hpbmcgdGhlIHdheSB0aGV5Ci0gICAgICAgIC8vIHByaW50
IGluIElFIGFuZCBDYW1pbm8uIFRoaXMgbGV0cyB0aGVtIHVzZSBmZXdlciBzaGVldHMgdGhhbiB0
aGV5Ci0gICAgICAgIC8vIHdvdWxkIG90aGVyd2lzZSwgd2hpY2ggaXMgcHJlc3VtYWJseSB3aHkg
b3RoZXIgYnJvd3NlcnMgZG8gdGhpcy4KLSAgICAgICAgLy8gV2lkZSBwYWdlcyB3aWxsIGJlIHNj
YWxlZCBkb3duIG1vcmUgdGhhbiB0aGlzLgotICAgICAgICBQcmludGluZ01pbmltdW1TaHJpbmtG
YWN0b3IgPSAxLjI1ZjsKLQotICAgICAgICAvLyBUaGlzIG51bWJlciBkZXRlcm1pbmVzIGhvdyBz
bWFsbCB3ZSBhcmUgd2lsbGluZyB0byByZWR1Y2UgdGhlIHBhZ2UgY29udGVudAotICAgICAgICAv
LyBpbiBvcmRlciB0byBhY2NvbW1vZGF0ZSB0aGUgd2lkZXN0IGxpbmUuIElmIHRoZSBwYWdlIHdv
dWxkIGhhdmUgdG8gYmUKLSAgICAgICAgLy8gcmVkdWNlZCBzbWFsbGVyIHRvIG1ha2UgdGhlIHdp
ZGVzdCBsaW5lIGZpdCwgd2UganVzdCBjbGlwIGluc3RlYWQgKHRoaXMKLSAgICAgICAgLy8gYmVo
YXZpb3IgbWF0Y2hlcyBNYWNJRSBhbmQgTW96aWxsYSwgYXQgbGVhc3QpCi0gICAgICAgIFByaW50
aW5nTWF4aW11bVNocmlua0ZhY3RvciA9IDIuMGY7Ci0gICAgfQorICAgIC8vIEJ5IGltYWdpbmcg
dG8gYSB3aWR0aCBhIGxpdHRsZSB3aWRlciB0aGFuIHRoZSBhdmFpbGFibGUgcGl4ZWxzLAorICAg
IC8vIHRoaW4gcGFnZXMgd2lsbCBiZSBzY2FsZWQgZG93biBhIGxpdHRsZSwgbWF0Y2hpbmcgdGhl
IHdheSB0aGV5CisgICAgLy8gcHJpbnQgaW4gSUUgYW5kIENhbWluby4gVGhpcyBsZXRzIHRoZW0g
dXNlIGZld2VyIHNoZWV0cyB0aGFuIHRoZXkKKyAgICAvLyB3b3VsZCBvdGhlcndpc2UsIHdoaWNo
IGlzIHByZXN1bWFibHkgd2h5IG90aGVyIGJyb3dzZXJzIGRvIHRoaXMuCisgICAgLy8gV2lkZSBw
YWdlcyB3aWxsIGJlIHNjYWxlZCBkb3duIG1vcmUgdGhhbiB0aGlzLgorICAgIGNvbnN0IGZsb2F0
IFByaW50aW5nTWluaW11bVNocmlua0ZhY3RvciA9IDEuMjVmOworCisgICAgLy8gVGhpcyBudW1i
ZXIgZGV0ZXJtaW5lcyBob3cgc21hbGwgd2UgYXJlIHdpbGxpbmcgdG8gcmVkdWNlIHRoZSBwYWdl
IGNvbnRlbnQKKyAgICAvLyBpbiBvcmRlciB0byBhY2NvbW1vZGF0ZSB0aGUgd2lkZXN0IGxpbmUu
IElmIHRoZSBwYWdlIHdvdWxkIGhhdmUgdG8gYmUKKyAgICAvLyByZWR1Y2VkIHNtYWxsZXIgdG8g
bWFrZSB0aGUgd2lkZXN0IGxpbmUgZml0LCB3ZSBqdXN0IGNsaXAgaW5zdGVhZCAodGhpcworICAg
IC8vIGJlaGF2aW9yIG1hdGNoZXMgTWFjSUUgYW5kIE1vemlsbGEsIGF0IGxlYXN0KQorICAgIGNv
bnN0IGZsb2F0IFByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvciA9IDIuMGY7CiAKICAgICBmbG9h
dCBtaW5MYXlvdXRXaWR0aCA9IHdpZHRoICogUHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yOwog
ICAgIGZsb2F0IG1heExheW91dFdpZHRoID0gd2lkdGggKiBQcmludGluZ01heGltdW1TaHJpbmtG
YWN0b3I7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmNwcAppbmRleCBjNTdjNTZkLi5jM2NjNmEyIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAg
LTYzLDggKzYzLDYgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX21h
eGltdW1EZWNvZGVkSW1hZ2VTaXplKG51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKQogICAg
ICwgbV9sb2NhbFN0b3JhZ2VRdW90YSg1ICogMTAyNCAqIDEwMjQpICAvLyBTdWdnZXN0ZWQgYnkg
dGhlIEhUTUw1IHNwZWMuCiAgICAgLCBtX3BsdWdpbkFsbG93ZWRSdW5UaW1lKG51bWVyaWNfbGlt
aXRzPHVuc2lnbmVkPjo6bWF4KCkpCi0gICAgLCBtX3ByaW50aW5nTWluaW11bVNocmlua0ZhY3Rv
cigwLjBmKQotICAgICwgbV9wcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IoMC4wZikKICAgICAs
IG1faXNKYXZhRW5hYmxlZChmYWxzZSkKICAgICAsIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
KGZhbHNlKQogICAgICwgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKGZhbHNlKQpAQCAtNTI1LDE0
ICs1MjMsNCBAQCB2b2lkIFNldHRpbmdzOjpzZXRXZWJHTEVuYWJsZWQoYm9vbCBlbmFibGVkKQog
ICAgIG1fd2ViR0xFbmFibGVkID0gZW5hYmxlZDsKIH0KIAotdm9pZCBTZXR0aW5nczo6c2V0UHJp
bnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKGZsb2F0IHByaW50aW5nTWluaW11bVNocmlua0ZhY3Rv
cikKLXsKLSAgICBtX3ByaW50aW5nTWluaW11bVNocmlua0ZhY3RvciA9IHByaW50aW5nTWluaW11
bVNocmlua0ZhY3RvcjsKLX0gICAgCi0KLXZvaWQgU2V0dGluZ3M6OnNldFByaW50aW5nTWF4aW11
bVNocmlua0ZhY3RvcihmbG9hdCBwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IpCi17Ci0gICAg
bV9wcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IgPSBwcmludGluZ01heGltdW1TaHJpbmtGYWN0
b3I7Ci19ICAgIAotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaCBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDljYjQzNjIu
LmEyMTVhM2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0yNjcsMTIgKzI2Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdm9pZCBzZXRXZWJHTEVuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgd2Vi
R0xFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV93ZWJHTEVuYWJsZWQ7IH0KIAotICAgICAgICB2
b2lkIHNldFByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcihmbG9hdCk7Ci0gICAgICAgIGZsb2F0
IHByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJpbnRpbmdN
aW5pbXVtU2hyaW5rRmFjdG9yOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRQcmludGluZ01heGltdW1T
aHJpbmtGYWN0b3IoZmxvYXQpOwotICAgICAgICBmbG9hdCBwcmludGluZ01heGltdW1TaHJpbmtG
YWN0b3IoKSBjb25zdCB7IHJldHVybiBtX3ByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcjsgfQot
CiAgICAgcHJpdmF0ZToKICAgICAgICAgUGFnZSogbV9wYWdlOwogICAgICAgICAKQEAgLTI5NSw4
ICsyODksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHNpemVfdCBtX21heGltdW1E
ZWNvZGVkSW1hZ2VTaXplOwogICAgICAgICB1bnNpZ25lZCBtX2xvY2FsU3RvcmFnZVF1b3RhOwog
ICAgICAgICB1bnNpZ25lZCBtX3BsdWdpbkFsbG93ZWRSdW5UaW1lOwotICAgICAgICBmbG9hdCBt
X3ByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcjsKLSAgICAgICAgZmxvYXQgbV9wcmludGluZ01h
eGltdW1TaHJpbmtGYWN0b3I7CiAgICAgICAgIGJvb2wgbV9pc0phdmFFbmFibGVkIDogMTsKICAg
ICAgICAgYm9vbCBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseSA6IDE7CiAgICAgICAgIGJvb2wg
bV9wcml2YXRlQnJvd3NpbmdFbmFibGVkIDogMTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkv
cXdlYnNldHRpbmdzLmNwcCBiL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAppbmRleCBm
Zjg2ZTFmLi40OTBmZTkyIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5j
cHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCkBAIC02Miw4ICs2Miw2IEBA
IHB1YmxpYzoKICAgICBRU3RyaW5nIGxvY2FsU3RvcmFnZVBhdGg7CiAgICAgUVN0cmluZyBvZmZs
aW5lV2ViQXBwbGljYXRpb25DYWNoZVBhdGg7CiAgICAgcWludDY0IG9mZmxpbmVTdG9yYWdlRGVm
YXVsdFF1b3RhOwotICAgIGZsb2F0IHByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcjsKLSAgICBm
bG9hdCBwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3I7CiAKICAgICB2b2lkIGFwcGx5KCk7CiAg
ICAgV2ViQ29yZTo6U2V0dGluZ3MqIHNldHRpbmdzOwpAQCAtMTc2LDEyICsxNzQsNiBAQCB2b2lk
IFFXZWJTZXR0aW5nc1ByaXZhdGU6OmFwcGx5KCkKICAgICAgICAgUVN0cmluZyBzdG9yYWdlUGF0
aCA9ICFsb2NhbFN0b3JhZ2VQYXRoLmlzRW1wdHkoKSA/IGxvY2FsU3RvcmFnZVBhdGggOiBnbG9i
YWwtPmxvY2FsU3RvcmFnZVBhdGg7CiAgICAgICAgIHNldHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VE
YXRhYmFzZVBhdGgoc3RvcmFnZVBhdGgpOwogCi0gICAgICAgIGZsb2F0IG1pbmltdW1TaHJpbmtG
YWN0b3IgPSBwcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IgPiAwLjBmID8gcHJpbnRpbmdNaW5p
bXVtU2hyaW5rRmFjdG9yIDogZ2xvYmFsLT5wcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3I7Ci0g
ICAgICAgIHNldHRpbmdzLT5zZXRQcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IobWluaW11bVNo
cmlua0ZhY3Rvcik7Ci0KLSAgICAgICAgZmxvYXQgbWF4aW11bVNocmlua0ZhY3RvciA9IHByaW50
aW5nTWF4aW11bVNocmlua0ZhY3RvciA+IDAuMGYgPyBwcmludGluZ01heGltdW1TaHJpbmtGYWN0
b3IgOiBnbG9iYWwtPnByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcjsKLSAgICAgICAgc2V0dGlu
Z3MtPnNldFByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvcihtYXhpbXVtU2hyaW5rRmFjdG9yKTsK
LQogICAgICAgICB2YWx1ZSA9IGF0dHJpYnV0ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpab29tVGV4
dE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWwtPmF0dHJpYnV0
ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpab29tVGV4dE9ubHkpKTsKICAgICAgICAgc2V0dGluZ3Mt
PnNldFpvb21zVGV4dE9ubHkodmFsdWUpOwpAQCAtMzc5LDggKzM3MSw2IEBAIFFXZWJTZXR0aW5n
czo6UVdlYlNldHRpbmdzKCkKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6
OkxvY2FsQ29udGVudENhbkFjY2Vzc1JlbW90ZVVybHMsIGZhbHNlKTsKICAgICBkLT5vZmZsaW5l
U3RvcmFnZURlZmF1bHRRdW90YSA9IDUgKiAxMDI0ICogMTAyNDsKICAgICBkLT5kZWZhdWx0VGV4
dEVuY29kaW5nID0gUUxhdGluMVN0cmluZygiaXNvLTg4NTktMSIpOwotICAgIGQtPnByaW50aW5n
TWluaW11bVNocmlua0ZhY3RvciA9IDAuMGY7Ci0gICAgZC0+cHJpbnRpbmdNYXhpbXVtU2hyaW5r
RmFjdG9yID0gMC4wZjsKIH0KIAogLyohCkBAIC00OTUsNjAgKzQ4NSw2IEBAIFFTdHJpbmcgUVdl
YlNldHRpbmdzOjpkZWZhdWx0VGV4dEVuY29kaW5nKCkgY29uc3QKIH0KIAogLyohCi0gICAgXHNp
bmNlIDQuNyAKLSAgICBTcGVjaWZpZXMgbWluaW11bSBzaHJpbmsgZmF0b3IgYWxsb3dlZCBmb3Ig
cHJpbnRpbmcuIElmIHNldCB0byAwIGEKLSAgICBkZWZhdWx0IHZhbHVlIGlzIHVzZWQuCi0KLSAg
ICBXaGVuIHByaW50aW5nLCBjb250ZW50IHdpbGwgYmUgc2hydW5rIHRvIHJlZHVjZSBwYWdlIHVz
YWdlLCBpdAotICAgIHdpbGwgcmVkdWNlZCBieSBhIGZhY3RvciBiZXR3ZWVuIHByaW50aW5nTWlu
aW11bVNocmlua0ZhY3RvciBhbmQKLSAgICBwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IuIAot
Ci0gICAgXHNhIHByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcigpCi0gICAgXHNhIHNldFByaW50
aW5nTWF4aW11bVNocmlua0ZhY3RvcigpCi0gICAgXHNhIHByaW50aW5nTWF4aW11bVNocmlua0Zh
Y3RvcigpCi0qLwotdm9pZCBRV2ViU2V0dGluZ3M6OnNldFByaW50aW5nTWluaW11bVNocmlua0Zh
Y3RvcihmbG9hdCBwcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IpCi17Ci0gICAgZC0+cHJpbnRp
bmdNaW5pbXVtU2hyaW5rRmFjdG9yID0gcHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yOwotICAg
IGQtPmFwcGx5KCk7Ci19Ci0KLS8qIQotICAgIFxzaW5jZSA0LjcgCi0gICAgcmV0dXJucyB0aGUg
bWluaW11bSBzaHJpbmsgZmFjdG9yIHVzZWQgZm9yIHByaW50aW5nLgotCi0gICAgXHNhIHNldFBy
aW50aW5nTWluaW11bVNocmlua0ZhY3RvcigpCi0qLwotZmxvYXQgUVdlYlNldHRpbmdzOjpwcmlu
dGluZ01pbmltdW1TaHJpbmtGYWN0b3IoKSBjb25zdAotewotICAgIHJldHVybiBkLT5wcmludGlu
Z01pbmltdW1TaHJpbmtGYWN0b3I7Ci19Ci0KLS8qIQotICAgIFxzaW5jZSA0LjcgCi0gICAgU3Bl
Y2lmaWVzIG1heGltdW0gc2hyaW5rIGZhdG9yIGFsbG93ZWQgZm9yIHByaW50aW5nLiBJZiBzZXQg
dG8gMCBhCi0gICAgZGVmYXVsdCB2YWx1ZSBpcyB1c2VkLgotCi0gICAgXHNhIHNldFByaW50aW5n
TWluaW11bVNocmlua0ZhY3RvcigpCi0qLwotdm9pZCBRV2ViU2V0dGluZ3M6OnNldFByaW50aW5n
TWF4aW11bVNocmlua0ZhY3RvcihmbG9hdCBwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IpCi17
Ci0gICAgZC0+cHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yID0gcHJpbnRpbmdNYXhpbXVtU2hy
aW5rRmFjdG9yOwotICAgIGQtPmFwcGx5KCk7Ci19Ci0KLS8qIQotICAgIFxzaW5jZSA0LjcgCi0g
ICAgcmV0dXJucyB0aGUgbWF4aW11bSBzaHJpbmsgZmFjdG9yIHVzZWQgZm9yIHByaW50aW5nLgot
Ci0gICAgXHNhIHNldFByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcigpCi0qLwotZmxvYXQgUVdl
YlNldHRpbmdzOjpwcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IoKSBjb25zdAotewotICAgIHJl
dHVybiBkLT5wcmludGluZ01heGltdW1TaHJpbmtGYWN0b3I7Ci19Ci0KLS8qIQogICAgIFNldHMg
dGhlIHBhdGggb2YgdGhlIGljb24gZGF0YWJhc2UgdG8gXGEgcGF0aC4gVGhlIGljb24gZGF0YWJh
c2UgaXMgdXNlZAogICAgIHRvIHN0b3JlICJmYXZpY29ucyIgYXNzb2NpYXRlZCB3aXRoIHdlYiBz
aXRlcy4KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaCBiL1dlYktp
dC9xdC9BcGkvcXdlYnNldHRpbmdzLmgKaW5kZXggM2I2ZDFhNy4uNTBjZjQyNCAxMDA2NDQKLS0t
IGEvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAorKysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJz
ZXR0aW5ncy5oCkBAIC0xMDIsMTIgKzEwMiw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERlZmF1
bHRUZXh0RW5jb2RpbmcoY29uc3QgUVN0cmluZyAmZW5jb2RpbmcpOwogICAgIFFTdHJpbmcgZGVm
YXVsdFRleHRFbmNvZGluZygpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRQcmludGluZ01pbmltdW1T
aHJpbmtGYWN0b3IoZmxvYXQgcHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yKTsKLSAgICBmbG9h
dCBwcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IoKSBjb25zdDsKLQotICAgIHZvaWQgc2V0UHJp
bnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yKGZsb2F0IHByaW50aW5nTWF4aW1pbVNocmlua0ZhY3Rv
cik7Ci0gICAgZmxvYXQgcHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yKCkgY29uc3Q7Ci0KICAg
ICBzdGF0aWMgdm9pZCBzZXRJY29uRGF0YWJhc2VQYXRoKGNvbnN0IFFTdHJpbmcgJmxvY2F0aW9u
KTsKICAgICBzdGF0aWMgUVN0cmluZyBpY29uRGF0YWJhc2VQYXRoKCk7CiAgICAgc3RhdGljIHZv
aWQgY2xlYXJJY29uRGF0YWJhc2UoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cg
Yi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGJkOGM0YWQuLjZjYzlhYmQgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDA5LTExLTEyICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW4ucG91bGFpbkBu
b2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ3VzdG9tIHByaW50aW5nIHNocmluayBmYWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTA0MgorCisgICAgICAgIFRoaXMgcmV2ZXJ0cyBj
b21taXQgcjQ5NzY5LiBUaGUgcHVibGljIEFQSSBmb3IgdGhpcyBuZWVkcyB0byBiZSByZXZpZXdl
ZAorICAgICAgICBiZWZvcmUgaXRzIGluY2x1c2lvbiBpbiBRdC4KKworICAgICAgICAqIEFwaS9x
d2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAoUVdlYlNldHRpbmdzUHJpdmF0ZTo6YXBwbHkpOgor
ICAgICAgICAoUVdlYlNldHRpbmdzOjpRV2ViU2V0dGluZ3MpOgorICAgICAgICAqIEFwaS9xd2Vi
c2V0dGluZ3MuaDoKKwogMjAwOS0xMS0xMSAgQW50b25pbyBHb21lcyAgPHRvbmlraXRvb0B3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggQ2hyaXN0aWFuc2VuLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>