<?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>26584</bug_id>
          
          <creation_ts>2009-06-21 07:01:52 -0700</creation_ts>
          <short_desc>[Qt] Provide a way for better control over the process of printing</short_desc>
          <delta_ts>2014-01-13 22:06:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P3</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jakob Truelsen">antialize</reporter>
          <assigned_to name="Diego Gonzalez">diegohcg</assigned_to>
          <cc>andersca</cc>
    
    <cc>ariya.hidayat</cc>
    
    <cc>benjamin</cc>
    
    <cc>chinmaya</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>diegohcg</cc>
    
    <cc>eric</cc>
    
    <cc>hausmann</cc>
    
    <cc>indrajit.tapadar</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kling</cc>
    
    <cc>vestbo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>127217</commentid>
    <comment_count>0</comment_count>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-06-21 07:01:52 -0700</bug_when>
    <thetext>There should be a way to add extra information on printed pages, and a way to print more then one page in one job.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127218</commentid>
    <comment_count>1</comment_count>
      <attachid>31613</attachid>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-06-21 07:03:49 -0700</bug_when>
    <thetext>Created attachment 31613
Add support for suplying a costum painter, and counting pages</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127219</commentid>
    <comment_count>2</comment_count>
      <attachid>31614</attachid>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-06-21 07:05:14 -0700</bug_when>
    <thetext>Created attachment 31614
Add support for suplying a costum painter, and counting pages</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127305</commentid>
    <comment_count>3</comment_count>
      <attachid>31614</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-06-22 00:18:02 -0700</bug_when>
    <thetext>Comment on attachment 31614
Add support for suplying a costum painter, and counting pages

Please see:
   http://webkit.org/coding/coding-style.html (specially for the way you handle if statements)





&gt; Index: WebKit/qt/ChangeLog
&gt; ===================================================================
&gt; --- WebKit/qt/ChangeLog	(revision 44911)
&gt; +++ WebKit/qt/ChangeLog	(working copy)
&gt; @@ -1,3 +1,16 @@
&gt; +2009-06-21  Jakob Truelsen  &lt;antialize@gmail.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Fix: https://bugs.webkit.org/show_bug.cgi?id=26584
&gt; +
&gt; +        Allow one to count page numbers and to print extra information on pages.

maybe mention that you add API?


&gt; +	
&gt; +        * Api/qwebframe.cpp:
&gt; +        (QWebFrame::countPages):
&gt; +        (QWebFrame::print):
&gt; +        * Api/qwebframe.h:
&gt; +
&gt;  2009-06-19  Daniel Teske &lt;qt-info@nokia.com&gt;
&gt;  
&gt;          Reviewed by Simon Hausmann.
&gt; Index: WebKit/qt/Api/qwebframe.cpp
&gt; ===================================================================
&gt; --- WebKit/qt/Api/qwebframe.cpp	(revision 44911)
&gt; +++ WebKit/qt/Api/qwebframe.cpp	(working copy)
&gt; @@ -1033,15 +1033,44 @@ bool QWebFrame::event(QEvent *e)
&gt;  
&gt;  #ifndef QT_NO_PRINTER
&gt;  /*!
&gt; -    Prints the frame to the given \a printer.
&gt; +    \since 4.6
&gt; +    Count the number of pages, that will be printed by print.
&gt; +
&gt; +    \sa print
&gt; +*/
&gt; +uint QWebFrame::countPages(QPrinter *printer) {
&gt; +    const qreal zoomFactorX = printer-&gt;logicalDpiX() / qt_defaultDpi();
&gt; +    const qreal zoomFactorY = printer-&gt;logicalDpiY() / qt_defaultDpi();
&gt; +
&gt; +    PrintContext printContext(d-&gt;frame);
&gt; +    float pageHeight = 0;
&gt; +
&gt; +    QRect qprinterRect = printer-&gt;pageRect();
&gt; +
&gt; +    IntRect pageRect(0, 0,
&gt; +                     int(qprinterRect.width() / zoomFactorX),
&gt; +                     int(qprinterRect.height() / zoomFactorY));
&gt; +
&gt; +    printContext.begin(pageRect.width());
&gt; +    printContext.computePageRects(pageRect, 0, 0, 1.0, pageHeight);
&gt; +    uint count = printContext.pageCount();
&gt; +    printContext.end();
&gt; +    return count;
&gt; +}

If print() is const, countPages should be const as well... then please check of uint is ever used in Qt API. I think it is not the case and you should either go for unsigned int or such... And it seems a bit wasteful to use a PrintContext for that...



&gt; +/*!
&gt; +    Prints the frame to the given \a printer. If \a painter is
&gt; +    provided print with this painter, this allows to print multiple
&gt; +    pages into on job.
&gt;  
&gt;      \sa render()
&gt;  */
&gt; -void QWebFrame::print(QPrinter *printer) const
&gt; +void QWebFrame::print(QPrinter *printer, QPainter * painter) const

You can not simply remove a paramater (+ style guideline violation). You will need to add a new overload...


&gt;  {
&gt; -    QPainter painter;
&gt; -    if (!painter.begin(printer))
&gt; -        return;
&gt; +    QPainter * innerPainter = painter;
&gt; +    if(!innerPainter) innerPainter = new QPainter();
&gt; +    if(!innerPainter-&gt;isActive()) innerPainter-&gt;begin(printer);

style guide violation...


&gt;      for (int i = 0; i &lt; docCopies; ++i) {
&gt;          int page = fromPage;
&gt; @@ -1101,10 +1130,13 @@ void QWebFrame::print(QPrinter *printer)
&gt;                      return;
&gt;                  }
&gt;                  printContext.spoolPage(ctx, page - 1, pageRect.width());
&gt; -                if (j &lt; pageCopies - 1)
&gt; +                if (j &lt; pageCopies - 1) {
&gt; +                    emit printingNewPage(printer,fromPage,toPage,page);
&gt;                      printer-&gt;newPage();
&gt; +                }
&gt;              }
&gt; -
&gt; +            emit printingNewPage(printer,fromPage,toPage,page);
&gt; +        
&gt;              if (page == toPage)
&gt;                  break;
&gt;  
&gt; @@ -1121,6 +1153,8 @@ void QWebFrame::print(QPrinter *printer)
&gt;      }
&gt;  
&gt;      printContext.end();
&gt; +    innerPainter-&gt;restore();
&gt; +    if(innerPainter != painter) delete innerPainter;
&gt;  }
&gt;  #endif // QT_NO_PRINTER
&gt;  
&gt; @@ -1229,6 +1263,18 @@ QWebFrame* QWebFramePrivate::kit(WebCore
&gt;  */
&gt;  
&gt;  /*!
&gt; +  \fn void QWebFrame::printingNewPage(QPrinter *printer, int fromPage, int toPage, int Page) const
&gt; +  \since 4.6
&gt; +
&gt; +  This signal is emitted when when a page is printed. This allows one
&gt; +  to add extra contest 

contest? did you meant conent?


&gt;  public Q_SLOTS:
&gt;      QVariant evaluateJavaScript(const QString&amp; scriptSource);
&gt;  #ifndef QT_NO_PRINTER
&gt; -    void print(QPrinter *printer) const;
&gt; +    void print(QPrinter *printer, QPainter * painter=NULL) const;

Don&apos;t use NULL in C++, and due ABI compability requirements you can not do that...


and in general I&apos;m not sure if this is the best way of achieving this....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127312</commentid>
    <comment_count>4</comment_count>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-06-22 00:40:27 -0700</bug_when>
    <thetext>Do you have any pointers on what would be a good way to achieve this.. I have thought long and hard, but I have not found a better way. Inpaticular I cannot think of a nother way to print two documents into one job. 
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127338</commentid>
    <comment_count>5</comment_count>
      <attachid>31643</attachid>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-06-22 04:47:45 -0700</bug_when>
    <thetext>Created attachment 31643
A better patch

As for using an printcontext in the countpages method: It is my impression that you need a print rendertree, to predict the number of pages.  It would of cause make good sense to use the same render three both for counting and for printing. But this would as I seed it require changes to existing API.  In my experience building the printcontext does not take long. 

If anyone know of a better way to achieve then please let my know. I&apos;m willing to implement it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127912</commentid>
    <comment_count>6</comment_count>
      <attachid>31643</attachid>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2009-06-24 07:39:39 -0700</bug_when>
    <thetext>Comment on attachment 31643
A better patch

I&apos;ll just say at the outlet that I don&apos;t think this new API is appropriate or necessary.  I think the answer you are seeking is to just forgo the convenience API that QWebView/QWebFrame allows for printing and do the heavy lifting yourself.  It sounds like you are writing a specific application that has demands above and beyond what the convenience API allows.  I believe you can still accomplish your goals by using QWebFrame::render directly to draw the entire page to a QImage for instance.  And then, in your client code, you can do the heavy lifting of breaking up this QImage and sending it to the QPrinter.

That said, there were a number of problems with the patch still:

&gt; +        Added an overloared QWebFrame::print allowing one to use an
&gt; +        existing painter object.  

Spelling mistake.

&gt; +unsigned int QWebFrame::countPages(QPrinter *printer) const {

I guess this should return a quint32?

&gt; +    This allows to print multiple pages into on job.

Spelling mistake.

&gt; +void QWebFrame::print(QPrinter* printer, QPainter* painter) const
&gt; +{
&gt; +    if(!painter-&gt;isActive() &amp;&amp; !painter.begin(printer))  
&gt;          return;

This looks wrong.  Why the check for painter-&gt;isActive() and why the &amp;&amp; logic?

&gt; +    This signal is emitted when when a page is printed. This allows one

Typo.

&gt; +    void printingNewPage(QPrinter* printer, int fromPage, int toPage, int page) const;

Coding style issues with * decoration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127914</commentid>
    <comment_count>7</comment_count>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-06-24 08:10:53 -0700</bug_when>
    <thetext>&gt; Coding style issues with * decoration.
Why is this the case, if you read the Other Punctuation section of 
http://webkit.org/coding/coding-style.html

It tells me to do it like this (even though I also do not like it)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138366</commentid>
    <comment_count>8</comment_count>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-08-08 10:31:37 -0700</bug_when>
    <thetext>You tould me to use render instead of print. However I fail to see how
this would work. Render does not render under print-media-type (show
stopper). And also I would have to do the cutting into pages my self,
there is no way I could ever get this to support
&apos;page-break-inside:avoid&apos;. Even the render tree is not exposed, and
thus the is no way for me to know if I am cutting a text string in
half..

It seems to me that this is not something obscure than only I need..
Anyone implementing a browser on top of qtwebkit (arora?), would
probably want to add some kind of header and footer to the printed
document, with page: number, date and so on.  I do not see anyway that
this is currently possible..

As you (and everyone else I have talked with) seems to think that the
patch (given I fixed all the little faults) still is the wrong way to
add this to the API. My question is then what is the right way?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138368</commentid>
    <comment_count>9</comment_count>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-08-08 10:32:13 -0700</bug_when>
    <thetext>Reply from Trent:
First, this conversation would be much better easier to follow if it occurred
on the bugzillla.  Please reply there.

I am saying what you should do is render the WebPage to a QImage yourself.
The entire page without any breaks or clipping.

And then you can manipulate that QImage yourself into several smaller QImage&apos;s
corresponding to each page... add footers, and headers... and then send the
set of those QImage&apos;s to the printer to be printed.

I fail to see how this is impossible or how you could have any show stoppers.
A webpage can be rendered to a QImage and you can print QImage&apos;s yourself.

What is the problem?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138380</commentid>
    <comment_count>10</comment_count>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-08-08 10:59:44 -0700</bug_when>
    <thetext>There are a lot of problems with the solution that you propose, some of which I stated before, but let me state them again.

1) When printing with &quot;render&quot;, it will use the display render tree. And not a new render tree produces under print media-type.. Thus what is rendered is not what should be printed.. This could be fixed by allowing one to switch the media-type but that would again require changes to the API.

2) When printing to a QImage you get a pixmap, and not a vector format. Rendering the QImage to a pdf document will not magicly convert it back into a vector format.

3) Printing the whole thing as one long image and splitting it up is a very hard thing to do.  It is not mearly a case of splitting up an image into some rectangels.  You need to splite above or below a line of text.  You cannot split in nodes that have style=&quot;page-break-inside:avoid&quot;.  If something can almost fit on one page you scale it down and so on and so fourth.  WebKit has a nice piece of code that does this for you. 


In all the solution proposed by Mr. Trent is not acceptable.

I seek to be able to do the following:

1) Count the number of pages that is going to be printed, I feel that this is something others might also need (and not some crasy feature that only I need)

2) To be able to insert stuff into each page printed. Again I feel that this this is a general feature that others might need.   This is actually possible today, by an ugly hack. That goes as follows.  Create a subclass of QPrinter exposing the setEngines method.  Create a normal QPrinter instance, then create a instance of the subclass then setEngines, with the engines from the first instance, only the QPrintEngine instance must be wrapped in a class doing something more on the new page virtual method.

3) Allow a supplied painter to be used (so that one can print more then one document into a single print job). Arguable this is not a feature that alot of others would need, but it does not change the fact that I do.


I would like to know how an api that *could* be used to do one ore more of the above could look like, so that it might be merged?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138400</commentid>
    <comment_count>11</comment_count>
      <attachid>34388</attachid>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-08-08 11:44:06 -0700</bug_when>
    <thetext>Created attachment 34388
New patch

Fixes the petty issues from comment 6. Safe the part about the style violation, which is clearly wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138403</commentid>
    <comment_count>12</comment_count>
      <attachid>34389</attachid>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-08-08 11:56:43 -0700</bug_when>
    <thetext>Created attachment 34389
Newer patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138404</commentid>
    <comment_count>13</comment_count>
      <attachid>34390</attachid>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-08-08 11:58:23 -0700</bug_when>
    <thetext>Created attachment 34390
New patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138523</commentid>
    <comment_count>14</comment_count>
      <attachid>34390</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-09 08:30:15 -0700</bug_when>
    <thetext>Comment on attachment 34390
New patch

Looks like you deleted a line from the ChangeLog, probably by accident here:
+2009-08-08  Jakob Truelsen  &lt;antialize@gmail.com&gt;
+        Reviewed by NOBODY (OOPS!).

Seems you&apos;ll need a Qt person to review this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144416</commentid>
    <comment_count>15</comment_count>
      <attachid>34390</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-03 00:56:24 -0700</bug_when>
    <thetext>Comment on attachment 34390
New patch

You ChangeLog entry is malformed.

style:
 1152 quint32 QWebFrame::countPages(QPrinter* printer) const {

c++ code in WebCore uses static_cast&lt;int&gt;:
+                     int(qprinterRect.width() / zoomFactorX),
+                     int(qprinterRect.height() / zoomFactorY));

WebCore style is to omit argument names when they don&apos;t add value:
 #ifndef QT_NO_PRINTER
-    void print(QPrinter *printer) const;
+    void print(QPrinter* printer) const;
+    void print(QPrinter* printer, QPainter* painter) const;
 #endif
maye that&apos;s not true of qt?

Since no Qt person has made a comment on this in the 20+ days that it has been up or review, I can only assume they don&apos;t want this patch.  I would encourage you to try and track down a Qt reviewer (ideally over email) and get their attention before posting the revised version.

r- for the nits above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144423</commentid>
    <comment_count>16</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2009-09-03 01:19:42 -0700</bug_when>
    <thetext>I am also not so confident that the new API functions that you propose here is
the right way to implement it. I am not even sure that it will work (you do not
include any unit test at all).
Note that I fully agree that there should be a mechanism for the developer to
control and fine-tune the printing process.

Anyway, here is my feedback.

&gt; +quint32 QWebFrame::countPages(QPrinter* printer) const {

Looking at other Qt API functions, the closes I get is pageCount(), e.g.
QTextDocument. Granted, it does not take a QPrinter as an argument, hence more
like a property rather than an action. I am not sure about the name
&quot;countPages&quot;, it seems to me that the web frame is counting the pages, but then
what? Maybe something like &quot;computePageCount&quot; sounds better? Feel free to
suggest other names as well.

&gt; +void QWebFrame::print(QPrinter* printer, QPainter* painter) const

Here is my biggest concern, I am not sure that passing another QPainter is the
right thing to do. Read further more for more comments.

&gt; +    \fn void QWebFrame::printingNewPage(QPrinter *printer, int fromPage, int toPage, int Page) const

This does not make a good API. A signal is usually in the form of past tense,
because it indicates that something has happened. Otherwise use the form
aboutToDoSomething.
Also, have you checked whether this works at all? I mean, from the moment the
signal is emitted until you do something in your object slot, another new page
might have been printed.


Finally, here is an idea if I were to implement this (I don&apos;t know if this is
technically manageable or not). Instead of using &quot;pull&quot; strategy, what about a
&quot;push&quot; one. Look at the code:

int pageCount = frame-&gt;computePageCount(myPrinter)
// setup the print dialog if necessary, which might need the page count
frame-&gt;beginPrint(myPrinter);
for (int i = 1; i &lt; pageCount; ++i)
  frame-&gt;spoolPage(i);
frame-&gt;endPrint();

The drawbacks: we put some kind of state information into the QWebFrame, hence
you can&apos;t really interleave the printing e.g. to two printers (but seriously,
who does that).
Also if you need to grab the QPainter that operates on the printer, it&apos;s
possible via myPrinter-&gt;paintEngine()-&gt;painter() but then it&apos;s const (might
need some casting). If this is ugly, we might need some other hook like
&quot;printingPainter()&quot;.

r- until we solve this issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144558</commentid>
    <comment_count>17</comment_count>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-09-03 12:01:38 -0700</bug_when>
    <thetext>I totally agree with the push strategy. However the solution you suggest have some draw backs as you say: One cannot do multiple prints on the same frame, one cannot print multiple frames into the same document (Or any other stuff for that matter).  I think that it would be cleener to make a seperate class for printing webpages,  QWebPrinter or whatever.  

Then one could do something like the following:

QWebPrinter p(myPrinter)
p.begin(myFrame)
for(int i=0; i &lt; p.currentFramePageCount(); ++i)
  p-&gt;spoolPage(i);
p.end();

The QWebPrinter class could then have the following methods

::QWebPrinter 
   construct the QPainter and set up stuff
::begin()  
   Setup a frame for printing, construct the print context, compute pages rects and so on
::end()  
  Release the print context
::spoolPage
  Print a given page for the current frame
::currentFramePageCount 
  Return the number of pages for the current fram
::painter
  Return the current painter
::printer
  Return the current printer

Then QWebFrame print method could then be reduced to creating a QWebPrinter and calling spool page on it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144559</commentid>
    <comment_count>18</comment_count>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-09-03 12:04:50 -0700</bug_when>
    <thetext>If the above solution (with some prober naming) has a chance of being merged.  Then I am willing to put in the work to make it.  If there is some completely other way of doing it that is better please let know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144794</commentid>
    <comment_count>19</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2009-09-04 06:23:53 -0700</bug_when>
    <thetext>I am not sure I understand your concerns &quot;One cannot do multiple prints on the same frame&quot; and &quot;one cannot print multiple frames into the same document&quot; correctly. Could you elaborate and possibly give an example?

Note that even if the frame contains the printing state information, it is still possible to print the frame to different printers, provided that you don&apos;t interleave the printing process. And I am pretty confident there is no useful use case of such a printing interleave (I am happy to be proven wrong).

Before we delve into making a new class, let&apos;s find out whether we can get away without it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144829</commentid>
    <comment_count>20</comment_count>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-09-04 09:39:00 -0700</bug_when>
    <thetext>Sure thing, so for the project I am developing what I need is to print the content of several different web pages (frames) into one print job (Create one pdf document).  The problem is that if the frame creates a printer then that is not possible. (One can extend QPrinter and make some ugly hacks but that is besides the point). Of cause the project I am working on (qtwkhtmltopdf) requires a lot of different changes to make all its features working, most of which you (webkit/qt) has made it quite clear are to obscure to make it into qt/webkit.  If printing multiple frames into one document is also considered an obscure thing (I do not find it obscure). Then I of cause am willing to implement the functionality into the QWebFrame object as you described.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145284</commentid>
    <comment_count>21</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2009-09-08 01:51:06 -0700</bug_when>
    <thetext>I would argue that merging several contents into one printer job to result in one single PDF rather belongs to the Qt core library. Imagine if we need to duplicate this functionality everywhere (e.g. printing from other sources, QTextDocument), literally we would sprinkle the API with functions that can be centralized in e.g. QPrinter.

Coming back to the patch, if we only exclude the above merging feature, can we get away without introducing a new class (QWebPrinter)? IOW is that possible to realize the code snippet I posted before?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145677</commentid>
    <comment_count>22</comment_count>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-09-09 00:13:59 -0700</bug_when>
    <thetext>I have made a patch allowing one to do

frame-&gt;beginPrint(myPrinter);
int pageCount = frame-&gt;printingPageCount(myPrinter)
for (int i = 1; i &lt; pageCount; ++i)
  frame-&gt;spoolPage(i);
frame-&gt;endPrint();

note that moving the pageCount inside the begin and end.. it can be made an O(1) operation and then it makes sence calling it printingPageCount instead of computePageCount.

I will submit the patch once I get it testet probberly, and within the style guidelines..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146924</commentid>
    <comment_count>23</comment_count>
      <attachid>39513</attachid>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-09-12 06:33:27 -0700</bug_when>
    <thetext>Created attachment 39513
Ariya Hidayat&apos;s solution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146925</commentid>
    <comment_count>24</comment_count>
      <attachid>39514</attachid>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2009-09-12 06:44:46 -0700</bug_when>
    <thetext>Created attachment 39514
My solution

This patch implements my solution. Ariya&apos;s proposal has the following disadvantages:
* For Ariya&apos;s solution to work the print slot can no longer be const. The only way it could be const, is to either duplicate the code or use const_cast.
* Printing state is stored in the QWebFrame, where I feel it does not belong.
* A lot of pointer magic is needed to store the state.
* All the added methods needs to have some document string stating that they are only to be installed between begin and end
It has the following advantages
* No new classes are added

My solution has the following diadvantages
* A new class is added
* The QWebPrinterBeginCaller constructor is &quot;clever code&quot; and not very pretty.
It has the following advantages
* the print slot can stay const
* no printing state is stored in QWebFrame and as such one can make two print jobs concurently. In the future I hope to have even more state added to printing and as such this will not get into the QWebFrame.

My current solution no longer allows printing more document then one into a print job, Ariya rightfully pointed out that that belongs elsewhere, and is therefore quite simple.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162271</commentid>
    <comment_count>25</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-10 16:05:16 -0800</bug_when>
    <thetext>Ping?  No comments in 2 months.  I&apos;m not capable of reviewing this, however I would expect Qt folks are. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162618</commentid>
    <comment_count>26</comment_count>
      <attachid>39513</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-11-11 12:36:51 -0800</bug_when>
    <thetext>Comment on attachment 39513
Ariya Hidayat&apos;s solution

This patch has various style issues and it changes the signature of an existing public method, which breaks binary compatibility with Visual Studio builds.

I think the concept of it is okay, but we indeed have to discuss properly whether this belongs straight into QWebFrame or into a separate class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162624</commentid>
    <comment_count>27</comment_count>
      <attachid>39514</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-11-11 12:48:46 -0800</bug_when>
    <thetext>Comment on attachment 39514
My solution

This patch, too, has coding style issues.

However the bigger problem right now is that the Qt team is crunching towards the next release together with Qt 4.6. Apparently there is not enough bandwidth to review this API currently.

We prioritized review of existing API and bugfixing over this feature, unfortunately.

However we need to make time for this after the release.

As it stands right now this bug only shows up in the list of webkit reviewers.

For the API design I would like to involve everyone interested, in particular the Qt team of course.

That means we either add everyone to the CC list of this bug (not feasible) or we take the API discussion to the webkit-qt mailing list first. One we reach a concencus there I think it makes sense to go back to the coding side and bring it back onto the radar of the webkit code reviewers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166083</commentid>
    <comment_count>28</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-11-24 07:53:17 -0800</bug_when>
    <thetext>*** Bug 29859 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166376</commentid>
    <comment_count>29</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-11-25 01:20:22 -0800</bug_when>
    <thetext>*** Bug 29868 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166392</commentid>
    <comment_count>30</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-11-25 01:54:13 -0800</bug_when>
    <thetext>*** Bug 29863 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197938</commentid>
    <comment_count>31</comment_count>
    <who name="Jakob Truelsen">antialize</who>
    <bug_when>2010-03-10 02:08:10 -0800</bug_when>
    <thetext>I see that there is has been some activity in this bug report lately. I just wanted to note that the patches I have posted in here are not my latest patches. The can be found here

http://qt.gitorious.org/+wkhtml2pdf/qt/wkhtmltopdf-qt/commits/wk-printing

In paticular the interface I propose is found here
http://qt.gitorious.org/+wkhtml2pdf/qt/wkhtmltopdf-qt/blobs/wk-printing/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.h#line109

If anyone should have interest in this. I am willing to push the new patches up here, including doing proper documentation, and coding style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337313</commentid>
    <comment_count>32</comment_count>
      <attachid>79593</attachid>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2011-01-20 06:25:22 -0800</bug_when>
    <thetext>Created attachment 79593
Patch to try do turn this bug alive again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337343</commentid>
    <comment_count>33</comment_count>
      <attachid>79593</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-20 08:01:19 -0800</bug_when>
    <thetext>Comment on attachment 79593
Patch to try do turn this bug alive again

(In reply to comment #32)
&gt; Created an attachment (id=79593) [details]
&gt; Patch to try do turn this bug alive again

It is nice someone is working on this.

But I do not get the purpose of your patch(?). The QWebPrinter is not accessible by the public API. The test is also not really testing anything new there.

The changelog do not describe anything so not much help there.


Personnally, I would like to see the printing support improve. I thing a public class to control the print settings could make sense. If this is done, I think that should not be for just one use case but for the most common settings offered by QtWebKit.

Since it is new API, it will need API review. You can start a new thread on the mailing list to suggest a new API. This way the chance of changes because of the API review is lower.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337407</commentid>
    <comment_count>34</comment_count>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2011-01-20 10:00:51 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; (From update of attachment 79593 [details])
&gt; (In reply to comment #32)
&gt; &gt; Created an attachment (id=79593) [details] [details]
&gt; &gt; Patch to try do turn this bug alive again
&gt; 
&gt; It is nice someone is working on this.
&gt; 

Thanks Benjamin,

&gt; But I do not get the purpose of your patch(?). The QWebPrinter is not accessible by the public API. The test is also not really testing anything new there.
&gt; 
&gt; The changelog do not describe anything so not much help there.
&gt; 

I will start to improve it

&gt; Personnally, I would like to see the printing support improve. I thing a public class to control the print settings could make sense. If this is done, I think that should not be for just one use case but for the most common settings offered by QtWebKit.

agree

&gt; Since it is new API, it will need API review. You can start a new thread on the mailing list to suggest a new API. This way the chance of changes because of the API review is lower.

I will start this thread after improve the patch. Thanks :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877101</commentid>
    <comment_count>35</comment_count>
    <who name="Indrajit">indrajit.tapadar</who>
    <bug_when>2013-04-17 03:08:48 -0700</bug_when>
    <thetext>As there are no updates on this report for a long time and I am not in the mailing list either, do not know the status of this.

Is this going to be in near future? or something else is suggested to get better printing controls ?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31613</attachid>
            <date>2009-06-21 07:03:49 -0700</date>
            <delta_ts>2009-06-21 07:05:14 -0700</delta_ts>
            <desc>Add support for suplying a costum painter, and counting pages</desc>
            <filename>fix.patch</filename>
            <type>text/plain</type>
            <size>4962</size>
            <attacher name="Jakob Truelsen">antialize</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNDQ5MTEpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMDYtMjEgIEpha29iIFRydWVsc2VuICA8YW50aWFs
aXplQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
CUZpeDogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2NTg0CisKKwlB
bGxvdyBvbmUgdG8gY291bnQgcGFnZSBudW1iZXJzIGFuZCB0byBwcmludCBleHRyYSBpbmZvcm1h
dGlvbiBvbiBwYWdlcy4KKwkKKyAgICAgICAgKiBBcGkvcXdlYmZyYW1lLmNwcDoKKyAgICAgICAg
KFFXZWJGcmFtZTo6Y291bnRQYWdlcyk6CisgICAgICAgIChRV2ViRnJhbWU6OnByaW50KToKKyAg
ICAgICAgKiBBcGkvcXdlYmZyYW1lLmg6CisKIDIwMDktMDYtMTkgIERhbmllbCBUZXNrZSA8cXQt
aW5mb0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCklu
ZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0
L0FwaS9xd2ViZnJhbWUuY3BwCShyZXZpc2lvbiA0NDkxMSkKKysrIFdlYktpdC9xdC9BcGkvcXdl
YmZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzMywxNSArMTAzMyw0NCBAQCBib29sIFFX
ZWJGcmFtZTo6ZXZlbnQoUUV2ZW50ICplKQogCiAjaWZuZGVmIFFUX05PX1BSSU5URVIKIC8qIQot
ICAgIFByaW50cyB0aGUgZnJhbWUgdG8gdGhlIGdpdmVuIFxhIHByaW50ZXIuCisgICAgXHNpbmNl
IDQuNgorICAgIENvdW50IHRoZSBudW1iZXIgb2YgcGFnZXMsIHRoYXQgd2lsbCBiZSBwcmludGVk
IGJ5IHByaW50LgorCisgICAgXHNhIHByaW50CisqLwordWludCBRV2ViRnJhbWU6OmNvdW50UGFn
ZXMoUVByaW50ZXIgKnByaW50ZXIpIHsKKyAgICBjb25zdCBxcmVhbCB6b29tRmFjdG9yWCA9IHBy
aW50ZXItPmxvZ2ljYWxEcGlYKCkgLyBxdF9kZWZhdWx0RHBpKCk7CisgICAgY29uc3QgcXJlYWwg
em9vbUZhY3RvclkgPSBwcmludGVyLT5sb2dpY2FsRHBpWSgpIC8gcXRfZGVmYXVsdERwaSgpOwor
CisgICAgUHJpbnRDb250ZXh0IHByaW50Q29udGV4dChkLT5mcmFtZSk7CisgICAgZmxvYXQgcGFn
ZUhlaWdodCA9IDA7CisKKyAgICBRUmVjdCBxcHJpbnRlclJlY3QgPSBwcmludGVyLT5wYWdlUmVj
dCgpOworCisgICAgSW50UmVjdCBwYWdlUmVjdCgwLCAwLAorICAgICAgICAgICAgICAgICAgICAg
aW50KHFwcmludGVyUmVjdC53aWR0aCgpIC8gem9vbUZhY3RvclgpLAorICAgICAgICAgICAgICAg
ICAgICAgaW50KHFwcmludGVyUmVjdC5oZWlnaHQoKSAvIHpvb21GYWN0b3JZKSk7CisKKyAgICBw
cmludENvbnRleHQuYmVnaW4ocGFnZVJlY3Qud2lkdGgoKSk7CisgICAgcHJpbnRDb250ZXh0LmNv
bXB1dGVQYWdlUmVjdHMocGFnZVJlY3QsIDAsIDAsIDEuMCwgcGFnZUhlaWdodCk7CisgICAgdWlu
dCBjb3VudCA9IHByaW50Q29udGV4dC5wYWdlQ291bnQoKTsKKyAgICBwcmludENvbnRleHQuZW5k
KCk7CisgICAgcmV0dXJuIGNvdW50OworfQorCisvKiEKKyAgICBQcmludHMgdGhlIGZyYW1lIHRv
IHRoZSBnaXZlbiBcYSBwcmludGVyLiBJZiBcYSBwYWludGVyIGlzCisgICAgcHJvdmlkZWQgcHJp
bnQgd2l0aCB0aGlzIHBhaW50ZXIsIHRoaXMgYWxsb3dzIHRvIHByaW50IG11bHRpcGxlCisgICAg
cGFnZXMgaW50byBvbiBqb2IuCiAKICAgICBcc2EgcmVuZGVyKCkKICovCi12b2lkIFFXZWJGcmFt
ZTo6cHJpbnQoUVByaW50ZXIgKnByaW50ZXIpIGNvbnN0Cit2b2lkIFFXZWJGcmFtZTo6cHJpbnQo
UVByaW50ZXIgKnByaW50ZXIsIFFQYWludGVyICogcGFpbnRlcikgY29uc3QKIHsKLSAgICBRUGFp
bnRlciBwYWludGVyOwotICAgIGlmICghcGFpbnRlci5iZWdpbihwcmludGVyKSkKLSAgICAgICAg
cmV0dXJuOworICAgIFFQYWludGVyICogaW5uZXJQYWludGVyID0gcGFpbnRlcjsKKyAgICBpZigh
aW5uZXJQYWludGVyKSBpbm5lclBhaW50ZXIgPSBuZXcgUVBhaW50ZXIoKTsKKyAgICBpZighaW5u
ZXJQYWludGVyLT5pc0FjdGl2ZSgpKSBpbm5lclBhaW50ZXItPmJlZ2luKHByaW50ZXIpOworICAg
IGlubmVyUGFpbnRlci0+c2F2ZSgpOwogCiAgICAgY29uc3QgcXJlYWwgem9vbUZhY3RvclggPSBw
cmludGVyLT5sb2dpY2FsRHBpWCgpIC8gcXRfZGVmYXVsdERwaSgpOwogICAgIGNvbnN0IHFyZWFs
IHpvb21GYWN0b3JZID0gcHJpbnRlci0+bG9naWNhbERwaVkoKSAvIHF0X2RlZmF1bHREcGkoKTsK
QEAgLTEwODgsOCArMTExNyw4IEBAIHZvaWQgUVdlYkZyYW1lOjpwcmludChRUHJpbnRlciAqcHJp
bnRlcikKICAgICAgICAgYXNjZW5kaW5nID0gZmFsc2U7CiAgICAgfQogCi0gICAgcGFpbnRlci5z
Y2FsZSh6b29tRmFjdG9yWCwgem9vbUZhY3RvclkpOwotICAgIEdyYXBoaWNzQ29udGV4dCBjdHgo
JnBhaW50ZXIpOworICAgIGlubmVyUGFpbnRlci0+c2NhbGUoem9vbUZhY3RvclgsIHpvb21GYWN0
b3JZKTsKKyAgICBHcmFwaGljc0NvbnRleHQgY3R4KGlubmVyUGFpbnRlcik7CiAKICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IGRvY0NvcGllczsgKytpKSB7CiAgICAgICAgIGludCBwYWdlID0gZnJv
bVBhZ2U7CkBAIC0xMTAxLDEwICsxMTMwLDEzIEBAIHZvaWQgUVdlYkZyYW1lOjpwcmludChRUHJp
bnRlciAqcHJpbnRlcikKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBwcmludENvbnRleHQuc3Bvb2xQYWdlKGN0eCwgcGFnZSAt
IDEsIHBhZ2VSZWN0LndpZHRoKCkpOwotICAgICAgICAgICAgICAgIGlmIChqIDwgcGFnZUNvcGll
cyAtIDEpCisgICAgICAgICAgICAgICAgaWYgKGogPCBwYWdlQ29waWVzIC0gMSkgeworICAgICAg
ICAgICAgICAgICAgICBlbWl0IHByaW50aW5nTmV3UGFnZShwcmludGVyLGZyb21QYWdlLHRvUGFn
ZSxwYWdlKTsKICAgICAgICAgICAgICAgICAgICAgcHJpbnRlci0+bmV3UGFnZSgpOworICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLQorICAgICAgICAgICAgZW1pdCBwcmludGluZ05l
d1BhZ2UocHJpbnRlcixmcm9tUGFnZSx0b1BhZ2UscGFnZSk7CisgICAgICAgIAogICAgICAgICAg
ICAgaWYgKHBhZ2UgPT0gdG9QYWdlKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCkBAIC0xMTIx
LDYgKzExNTMsOCBAQCB2b2lkIFFXZWJGcmFtZTo6cHJpbnQoUVByaW50ZXIgKnByaW50ZXIpCiAg
ICAgfQogCiAgICAgcHJpbnRDb250ZXh0LmVuZCgpOworICAgIGlubmVyUGFpbnRlci0+cmVzdG9y
ZSgpOworICAgIGlmKGlubmVyUGFpbnRlciAhPSBwYWludGVyKSBkZWxldGUgaW5uZXJQYWludGVy
OwogfQogI2VuZGlmIC8vIFFUX05PX1BSSU5URVIKIApAQCAtMTIyOSw2ICsxMjYzLDE4IEBAIFFX
ZWJGcmFtZSogUVdlYkZyYW1lUHJpdmF0ZTo6a2l0KFdlYkNvcmUKICovCiAKIC8qIQorICBcZm4g
dm9pZCBRV2ViRnJhbWU6OnByaW50aW5nTmV3UGFnZShRUHJpbnRlciAqcHJpbnRlciwgaW50IGZy
b21QYWdlLCBpbnQgdG9QYWdlLCBpbnQgUGFnZSkgY29uc3QKKyAgXHNpbmNlIDQuNgorCisgIFRo
aXMgc2lnbmFsIGlzIGVtaXR0ZWQgd2hlbiB3aGVuIGEgcGFnZSBpcyBwcmludGVkLiBUaGlzIGFs
bG93cyBvbmUKKyAgdG8gYWRkIGV4dHJhIGNvbnRlc3Qgc3VjaCBhcyBwYWdlIG51bWJlcnMgdG8g
dGhlIGpvYi4gXGEgcHJpbnRlciBpcworICB0aGUgb24gd2hpY2ggdGhlIHBhZ2UgaXMgcHJpbnRl
ZC4gXGEgcGFnZSBpcyB0aGUgbnVtYmVyIG9mIHRoZQorICBjdXJyZW50IHBhZ2UgYmV0d2VlbiBc
YSBmcm9tUGFnZSBhbmQgXGEgdG9QYWdlCisKKyAgXHNhIHByaW50KCkKKyovCisKKy8qIQogICAg
IFxjbGFzcyBRV2ViSGl0VGVzdFJlc3VsdAogICAgIFxzaW5jZSA0LjQKICAgICBcYnJpZWYgVGhl
IFFXZWJIaXRUZXN0UmVzdWx0IGNsYXNzIHByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSB3
ZWIKSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L3F0L0FwaS9xd2ViZnJhbWUuaAkocmV2aXNpb24gNDQ5MTEpCisrKyBXZWJLaXQvcXQvQXBpL3F3
ZWJmcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODUsMTAgKzE4NSwxMiBAQCBwdWJsaWM6CiAK
ICAgICBRV2ViU2VjdXJpdHlPcmlnaW4gc2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKIAorICAgIHVp
bnQgY291bnRQYWdlcyhRUHJpbnRlciAqcHJpbnRlcik7CisKIHB1YmxpYyBRX1NMT1RTOgogICAg
IFFWYXJpYW50IGV2YWx1YXRlSmF2YVNjcmlwdChjb25zdCBRU3RyaW5nJiBzY3JpcHRTb3VyY2Up
OwogI2lmbmRlZiBRVF9OT19QUklOVEVSCi0gICAgdm9pZCBwcmludChRUHJpbnRlciAqcHJpbnRl
cikgY29uc3Q7CisgICAgdm9pZCBwcmludChRUHJpbnRlciAqcHJpbnRlciwgUVBhaW50ZXIgKiBw
YWludGVyPU5VTEwpIGNvbnN0OwogI2VuZGlmCiAKIFFfU0lHTkFMUzoKQEAgLTIwNCw2ICsyMDYs
NyBAQCBRX1NJR05BTFM6CiAKICAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoY29uc3QgUVNp
emUgJnNpemUpOwogCisgICAgdm9pZCBwcmludGluZ05ld1BhZ2UoUVByaW50ZXIgKnByaW50ZXIs
IGludCBmcm9tUGFnZSwgaW50IHRvUGFnZSwgaW50IHBhZ2UpIGNvbnN0OwogcHJpdmF0ZToKICAg
ICBmcmllbmQgY2xhc3MgUVdlYlBhZ2U7CiAgICAgZnJpZW5kIGNsYXNzIFFXZWJQYWdlUHJpdmF0
ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31614</attachid>
            <date>2009-06-21 07:05:14 -0700</date>
            <delta_ts>2009-06-22 04:47:45 -0700</delta_ts>
            <desc>Add support for suplying a costum painter, and counting pages</desc>
            <filename>fix.patch</filename>
            <type>text/plain</type>
            <size>4976</size>
            <attacher name="Jakob Truelsen">antialize</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNDQ5MTEpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMDYtMjEgIEpha29iIFRydWVsc2VuICA8YW50aWFs
aXplQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBGaXg6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjU4
NAorCisgICAgICAgIEFsbG93IG9uZSB0byBjb3VudCBwYWdlIG51bWJlcnMgYW5kIHRvIHByaW50
IGV4dHJhIGluZm9ybWF0aW9uIG9uIHBhZ2VzLgorCQorICAgICAgICAqIEFwaS9xd2ViZnJhbWUu
Y3BwOgorICAgICAgICAoUVdlYkZyYW1lOjpjb3VudFBhZ2VzKToKKyAgICAgICAgKFFXZWJGcmFt
ZTo6cHJpbnQpOgorICAgICAgICAqIEFwaS9xd2ViZnJhbWUuaDoKKwogMjAwOS0wNi0xOSAgRGFu
aWVsIFRlc2tlIDxxdC1pbmZvQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1v
biBIYXVzbWFubi4KSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAJKHJldmlzaW9uIDQ0OTExKQorKysgV2Vi
S2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMzLDE1ICsxMDMz
LDQ0IEBAIGJvb2wgUVdlYkZyYW1lOjpldmVudChRRXZlbnQgKmUpCiAKICNpZm5kZWYgUVRfTk9f
UFJJTlRFUgogLyohCi0gICAgUHJpbnRzIHRoZSBmcmFtZSB0byB0aGUgZ2l2ZW4gXGEgcHJpbnRl
ci4KKyAgICBcc2luY2UgNC42CisgICAgQ291bnQgdGhlIG51bWJlciBvZiBwYWdlcywgdGhhdCB3
aWxsIGJlIHByaW50ZWQgYnkgcHJpbnQuCisKKyAgICBcc2EgcHJpbnQKKyovCit1aW50IFFXZWJG
cmFtZTo6Y291bnRQYWdlcyhRUHJpbnRlciAqcHJpbnRlcikgeworICAgIGNvbnN0IHFyZWFsIHpv
b21GYWN0b3JYID0gcHJpbnRlci0+bG9naWNhbERwaVgoKSAvIHF0X2RlZmF1bHREcGkoKTsKKyAg
ICBjb25zdCBxcmVhbCB6b29tRmFjdG9yWSA9IHByaW50ZXItPmxvZ2ljYWxEcGlZKCkgLyBxdF9k
ZWZhdWx0RHBpKCk7CisKKyAgICBQcmludENvbnRleHQgcHJpbnRDb250ZXh0KGQtPmZyYW1lKTsK
KyAgICBmbG9hdCBwYWdlSGVpZ2h0ID0gMDsKKworICAgIFFSZWN0IHFwcmludGVyUmVjdCA9IHBy
aW50ZXItPnBhZ2VSZWN0KCk7CisKKyAgICBJbnRSZWN0IHBhZ2VSZWN0KDAsIDAsCisgICAgICAg
ICAgICAgICAgICAgICBpbnQocXByaW50ZXJSZWN0LndpZHRoKCkgLyB6b29tRmFjdG9yWCksCisg
ICAgICAgICAgICAgICAgICAgICBpbnQocXByaW50ZXJSZWN0LmhlaWdodCgpIC8gem9vbUZhY3Rv
clkpKTsKKworICAgIHByaW50Q29udGV4dC5iZWdpbihwYWdlUmVjdC53aWR0aCgpKTsKKyAgICBw
cmludENvbnRleHQuY29tcHV0ZVBhZ2VSZWN0cyhwYWdlUmVjdCwgMCwgMCwgMS4wLCBwYWdlSGVp
Z2h0KTsKKyAgICB1aW50IGNvdW50ID0gcHJpbnRDb250ZXh0LnBhZ2VDb3VudCgpOworICAgIHBy
aW50Q29udGV4dC5lbmQoKTsKKyAgICByZXR1cm4gY291bnQ7Cit9CisKKy8qIQorICAgIFByaW50
cyB0aGUgZnJhbWUgdG8gdGhlIGdpdmVuIFxhIHByaW50ZXIuIElmIFxhIHBhaW50ZXIgaXMKKyAg
ICBwcm92aWRlZCBwcmludCB3aXRoIHRoaXMgcGFpbnRlciwgdGhpcyBhbGxvd3MgdG8gcHJpbnQg
bXVsdGlwbGUKKyAgICBwYWdlcyBpbnRvIG9uIGpvYi4KIAogICAgIFxzYSByZW5kZXIoKQogKi8K
LXZvaWQgUVdlYkZyYW1lOjpwcmludChRUHJpbnRlciAqcHJpbnRlcikgY29uc3QKK3ZvaWQgUVdl
YkZyYW1lOjpwcmludChRUHJpbnRlciAqcHJpbnRlciwgUVBhaW50ZXIgKiBwYWludGVyKSBjb25z
dAogewotICAgIFFQYWludGVyIHBhaW50ZXI7Ci0gICAgaWYgKCFwYWludGVyLmJlZ2luKHByaW50
ZXIpKQotICAgICAgICByZXR1cm47CisgICAgUVBhaW50ZXIgKiBpbm5lclBhaW50ZXIgPSBwYWlu
dGVyOworICAgIGlmKCFpbm5lclBhaW50ZXIpIGlubmVyUGFpbnRlciA9IG5ldyBRUGFpbnRlcigp
OworICAgIGlmKCFpbm5lclBhaW50ZXItPmlzQWN0aXZlKCkpIGlubmVyUGFpbnRlci0+YmVnaW4o
cHJpbnRlcik7CisgICAgaW5uZXJQYWludGVyLT5zYXZlKCk7CiAKICAgICBjb25zdCBxcmVhbCB6
b29tRmFjdG9yWCA9IHByaW50ZXItPmxvZ2ljYWxEcGlYKCkgLyBxdF9kZWZhdWx0RHBpKCk7CiAg
ICAgY29uc3QgcXJlYWwgem9vbUZhY3RvclkgPSBwcmludGVyLT5sb2dpY2FsRHBpWSgpIC8gcXRf
ZGVmYXVsdERwaSgpOwpAQCAtMTA4OCw4ICsxMTE3LDggQEAgdm9pZCBRV2ViRnJhbWU6OnByaW50
KFFQcmludGVyICpwcmludGVyKQogICAgICAgICBhc2NlbmRpbmcgPSBmYWxzZTsKICAgICB9CiAK
LSAgICBwYWludGVyLnNjYWxlKHpvb21GYWN0b3JYLCB6b29tRmFjdG9yWSk7Ci0gICAgR3JhcGhp
Y3NDb250ZXh0IGN0eCgmcGFpbnRlcik7CisgICAgaW5uZXJQYWludGVyLT5zY2FsZSh6b29tRmFj
dG9yWCwgem9vbUZhY3RvclkpOworICAgIEdyYXBoaWNzQ29udGV4dCBjdHgoaW5uZXJQYWludGVy
KTsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZG9jQ29waWVzOyArK2kpIHsKICAgICAgICAg
aW50IHBhZ2UgPSBmcm9tUGFnZTsKQEAgLTExMDEsMTAgKzExMzAsMTMgQEAgdm9pZCBRV2ViRnJh
bWU6OnByaW50KFFQcmludGVyICpwcmludGVyKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHByaW50Q29udGV4dC5zcG9vbFBh
Z2UoY3R4LCBwYWdlIC0gMSwgcGFnZVJlY3Qud2lkdGgoKSk7Ci0gICAgICAgICAgICAgICAgaWYg
KGogPCBwYWdlQ29waWVzIC0gMSkKKyAgICAgICAgICAgICAgICBpZiAoaiA8IHBhZ2VDb3BpZXMg
LSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGVtaXQgcHJpbnRpbmdOZXdQYWdlKHByaW50ZXIs
ZnJvbVBhZ2UsdG9QYWdlLHBhZ2UpOwogICAgICAgICAgICAgICAgICAgICBwcmludGVyLT5uZXdQ
YWdlKCk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotCisgICAgICAgICAgICBl
bWl0IHByaW50aW5nTmV3UGFnZShwcmludGVyLGZyb21QYWdlLHRvUGFnZSxwYWdlKTsKKyAgICAg
ICAgCiAgICAgICAgICAgICBpZiAocGFnZSA9PSB0b1BhZ2UpCiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAKQEAgLTExMjEsNiArMTE1Myw4IEBAIHZvaWQgUVdlYkZyYW1lOjpwcmludChRUHJpbnRl
ciAqcHJpbnRlcikKICAgICB9CiAKICAgICBwcmludENvbnRleHQuZW5kKCk7CisgICAgaW5uZXJQ
YWludGVyLT5yZXN0b3JlKCk7CisgICAgaWYoaW5uZXJQYWludGVyICE9IHBhaW50ZXIpIGRlbGV0
ZSBpbm5lclBhaW50ZXI7CiB9CiAjZW5kaWYgLy8gUVRfTk9fUFJJTlRFUgogCkBAIC0xMjI5LDYg
KzEyNjMsMTggQEAgUVdlYkZyYW1lKiBRV2ViRnJhbWVQcml2YXRlOjpraXQoV2ViQ29yZQogKi8K
IAogLyohCisgIFxmbiB2b2lkIFFXZWJGcmFtZTo6cHJpbnRpbmdOZXdQYWdlKFFQcmludGVyICpw
cmludGVyLCBpbnQgZnJvbVBhZ2UsIGludCB0b1BhZ2UsIGludCBQYWdlKSBjb25zdAorICBcc2lu
Y2UgNC42CisKKyAgVGhpcyBzaWduYWwgaXMgZW1pdHRlZCB3aGVuIHdoZW4gYSBwYWdlIGlzIHBy
aW50ZWQuIFRoaXMgYWxsb3dzIG9uZQorICB0byBhZGQgZXh0cmEgY29udGVzdCBzdWNoIGFzIHBh
Z2UgbnVtYmVycyB0byB0aGUgam9iLiBcYSBwcmludGVyIGlzCisgIHRoZSBvbiB3aGljaCB0aGUg
cGFnZSBpcyBwcmludGVkLiBcYSBwYWdlIGlzIHRoZSBudW1iZXIgb2YgdGhlCisgIGN1cnJlbnQg
cGFnZSBiZXR3ZWVuIFxhIGZyb21QYWdlIGFuZCBcYSB0b1BhZ2UKKworICBcc2EgcHJpbnQoKQor
Ki8KKworLyohCiAgICAgXGNsYXNzIFFXZWJIaXRUZXN0UmVzdWx0CiAgICAgXHNpbmNlIDQuNAog
ICAgIFxicmllZiBUaGUgUVdlYkhpdFRlc3RSZXN1bHQgY2xhc3MgcHJvdmlkZXMgaW5mb3JtYXRp
b24gYWJvdXQgdGhlIHdlYgpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5oCShyZXZpc2lvbiA0NDkxMSkKKysrIFdl
YktpdC9xdC9BcGkvcXdlYmZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4NSwxMCArMTg1LDEy
IEBAIHB1YmxpYzoKIAogICAgIFFXZWJTZWN1cml0eU9yaWdpbiBzZWN1cml0eU9yaWdpbigpIGNv
bnN0OwogCisgICAgdWludCBjb3VudFBhZ2VzKFFQcmludGVyICpwcmludGVyKTsKKwogcHVibGlj
IFFfU0xPVFM6CiAgICAgUVZhcmlhbnQgZXZhbHVhdGVKYXZhU2NyaXB0KGNvbnN0IFFTdHJpbmcm
IHNjcmlwdFNvdXJjZSk7CiAjaWZuZGVmIFFUX05PX1BSSU5URVIKLSAgICB2b2lkIHByaW50KFFQ
cmludGVyICpwcmludGVyKSBjb25zdDsKKyAgICB2b2lkIHByaW50KFFQcmludGVyICpwcmludGVy
LCBRUGFpbnRlciAqIHBhaW50ZXI9TlVMTCkgY29uc3Q7CiAjZW5kaWYKIAogUV9TSUdOQUxTOgpA
QCAtMjA0LDYgKzIwNiw3IEBAIFFfU0lHTkFMUzoKIAogICAgIHZvaWQgY29udGVudHNTaXplQ2hh
bmdlZChjb25zdCBRU2l6ZSAmc2l6ZSk7CiAKKyAgICB2b2lkIHByaW50aW5nTmV3UGFnZShRUHJp
bnRlciAqcHJpbnRlciwgaW50IGZyb21QYWdlLCBpbnQgdG9QYWdlLCBpbnQgcGFnZSkgY29uc3Q7
CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBRV2ViUGFnZTsKICAgICBmcmllbmQgY2xhc3Mg
UVdlYlBhZ2VQcml2YXRlOwo=
</data>
<flag name="review"
          id="16231"
          type_id="1"
          status="-"
          setter="zecke"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31643</attachid>
            <date>2009-06-22 04:47:45 -0700</date>
            <delta_ts>2009-08-08 11:44:06 -0700</delta_ts>
            <desc>A better patch</desc>
            <filename>fix2.patch</filename>
            <type>text/plain</type>
            <size>5220</size>
            <attacher name="Jakob Truelsen">antialize</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNDQ5MzIpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDktMDYtMjIgIEpha29iIFRydWVsc2VuICA8YW50aWFs
aXplQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY1ODQKKwor
ICAgICAgICBBZGRlZCBhbiBvdmVybG9hcmVkIFFXZWJGcmFtZTo6cHJpbnQgYWxsb3dpbmcgb25l
IHRvIHVzZSBhbgorICAgICAgICBleGlzdGluZyBwYWludGVyIG9iamVjdC4gIAorICAgICAgICBB
ZGRlZCBRV2ViRnJhbWU6OmNvdW50UGFnZXMsIHRoYXQgY2FsY3VsYXRlcyBob3cgbWFueSBwYWdl
cyBwcmludAorICAgICAgICB3aWxsIHByb2R1Y2UuCisgICAgICAgIEFkZGVkIFFXZWJGcmFtZTo6
cHJpbnRpbmdOZXdQYWdlLCBzaWduYWwgdGhhdCBlbWl0cyBmb3IgZWFjaCBwYWdlCisgICAgICAg
IHByaW50ZWQuCisJCQorICAgICAgICAqIEFwaS9xd2ViZnJhbWUuY3BwOgorICAgICAgICAoUVdl
YkZyYW1lOjpjb3VudFBhZ2VzKToKKyAgICAgICAgKFFXZWJGcmFtZTo6cHJpbnQpOgorICAgICAg
ICAqIEFwaS9xd2ViZnJhbWUuaDoKKwogMjAwOS0wNi0xOSAgRGFuaWVsIFRlc2tlIDxxdC1pbmZv
QG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KSW5kZXg6
IFdlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBp
L3F3ZWJmcmFtZS5jcHAJKHJldmlzaW9uIDQ0OTMyKQorKysgV2ViS2l0L3F0L0FwaS9xd2ViZnJh
bWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMzLDE1ICsxMDMzLDU0IEBAIGJvb2wgUVdlYkZy
YW1lOjpldmVudChRRXZlbnQgKmUpCiAKICNpZm5kZWYgUVRfTk9fUFJJTlRFUgogLyohCisgICAg
XHNpbmNlIDQuNgorICAgIENvdW50IHRoZSBudW1iZXIgb2YgcGFnZXMsIHRoYXQgd2lsbCBiZSBw
cmludGVkIGJ5IHByaW50LgorCisgICAgXHNhIHByaW50KCkKKyovCit1bnNpZ25lZCBpbnQgUVdl
YkZyYW1lOjpjb3VudFBhZ2VzKFFQcmludGVyICpwcmludGVyKSBjb25zdCB7CisgICAgY29uc3Qg
cXJlYWwgem9vbUZhY3RvclggPSBwcmludGVyLT5sb2dpY2FsRHBpWCgpIC8gcXRfZGVmYXVsdERw
aSgpOworICAgIGNvbnN0IHFyZWFsIHpvb21GYWN0b3JZID0gcHJpbnRlci0+bG9naWNhbERwaVko
KSAvIHF0X2RlZmF1bHREcGkoKTsKKworICAgIFByaW50Q29udGV4dCBwcmludENvbnRleHQoZC0+
ZnJhbWUpOworICAgIGZsb2F0IHBhZ2VIZWlnaHQgPSAwOworCisgICAgUVJlY3QgcXByaW50ZXJS
ZWN0ID0gcHJpbnRlci0+cGFnZVJlY3QoKTsKKworICAgIEludFJlY3QgcGFnZVJlY3QoMCwgMCwK
KyAgICAgICAgICAgICAgICAgICAgIGludChxcHJpbnRlclJlY3Qud2lkdGgoKSAvIHpvb21GYWN0
b3JYKSwKKyAgICAgICAgICAgICAgICAgICAgIGludChxcHJpbnRlclJlY3QuaGVpZ2h0KCkgLyB6
b29tRmFjdG9yWSkpOworCisgICAgcHJpbnRDb250ZXh0LmJlZ2luKHBhZ2VSZWN0LndpZHRoKCkp
OworICAgIHByaW50Q29udGV4dC5jb21wdXRlUGFnZVJlY3RzKHBhZ2VSZWN0LCAwLCAwLCAxLjAs
IHBhZ2VIZWlnaHQpOworICAgIHVuc2lnbmVkIGludCBjb3VudCA9IHByaW50Q29udGV4dC5wYWdl
Q291bnQoKTsKKyAgICBwcmludENvbnRleHQuZW5kKCk7CisgICAgcmV0dXJuIGNvdW50OworfQor
IAorLyohCiAgICAgUHJpbnRzIHRoZSBmcmFtZSB0byB0aGUgZ2l2ZW4gXGEgcHJpbnRlci4KIAog
ICAgIFxzYSByZW5kZXIoKQogKi8KLXZvaWQgUVdlYkZyYW1lOjpwcmludChRUHJpbnRlciAqcHJp
bnRlcikgY29uc3QKK3ZvaWQgUVdlYkZyYW1lOjpwcmludChRUHJpbnRlciogcHJpbnRlcikgY29u
c3QKIHsKICAgICBRUGFpbnRlciBwYWludGVyOwotICAgIGlmICghcGFpbnRlci5iZWdpbihwcmlu
dGVyKSkKKyAgICBwcmludChwcmludGVyLCBwYWludGVyKTsKK30KKworLyohCisgICAgXHNpbmNl
IDQuNgorICAgIFByaW50cyB0aGUgZnJhbWUgdG8gdGhlIGdpdmVuIFxhIHByaW50ZXIsIHVzaW5n
IHRoZSBnaXZlbiBcYSBwYWludGVyLgorICAgIFRoaXMgYWxsb3dzIHRvIHByaW50IG11bHRpcGxl
IHBhZ2VzIGludG8gb24gam9iLgorCisgICAgXHNhIHJlbmRlcigpCisqLwordm9pZCBRV2ViRnJh
bWU6OnByaW50KFFQcmludGVyKiBwcmludGVyLCBRUGFpbnRlciogcGFpbnRlcikgY29uc3QKK3sK
KyAgICBpZighcGFpbnRlci0+aXNBY3RpdmUoKSAmJiAhcGFpbnRlci5iZWdpbihwcmludGVyKSkg
IAogICAgICAgICByZXR1cm47CisgICAgcGFpbnRlci0+c2F2ZSgpOwogCiAgICAgY29uc3QgcXJl
YWwgem9vbUZhY3RvclggPSBwcmludGVyLT5sb2dpY2FsRHBpWCgpIC8gcXRfZGVmYXVsdERwaSgp
OwogICAgIGNvbnN0IHFyZWFsIHpvb21GYWN0b3JZID0gcHJpbnRlci0+bG9naWNhbERwaVkoKSAv
IHF0X2RlZmF1bHREcGkoKTsKQEAgLTEwODgsOCArMTEyNyw4IEBAIHZvaWQgUVdlYkZyYW1lOjpw
cmludChRUHJpbnRlciAqcHJpbnRlcikKICAgICAgICAgYXNjZW5kaW5nID0gZmFsc2U7CiAgICAg
fQogCi0gICAgcGFpbnRlci5zY2FsZSh6b29tRmFjdG9yWCwgem9vbUZhY3RvclkpOwotICAgIEdy
YXBoaWNzQ29udGV4dCBjdHgoJnBhaW50ZXIpOworICAgIHBhaW50ZXItPnNjYWxlKHpvb21GYWN0
b3JYLCB6b29tRmFjdG9yWSk7CisgICAgR3JhcGhpY3NDb250ZXh0IGN0eChwYWludGVyKTsKIAog
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZG9jQ29waWVzOyArK2kpIHsKICAgICAgICAgaW50IHBh
Z2UgPSBmcm9tUGFnZTsKQEAgLTExMDEsMTAgKzExNDAsMTMgQEAgdm9pZCBRV2ViRnJhbWU6OnBy
aW50KFFQcmludGVyICpwcmludGVyKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHByaW50Q29udGV4dC5zcG9vbFBhZ2UoY3R4
LCBwYWdlIC0gMSwgcGFnZVJlY3Qud2lkdGgoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGogPCBw
YWdlQ29waWVzIC0gMSkKKyAgICAgICAgICAgICAgICBpZiAoaiA8IHBhZ2VDb3BpZXMgLSAxKSB7
CisgICAgICAgICAgICAgICAgICAgIGVtaXQgcHJpbnRpbmdOZXdQYWdlKHByaW50ZXIsIGZyb21Q
YWdlLCB0b1BhZ2UsIHBhZ2UpOwogICAgICAgICAgICAgICAgICAgICBwcmludGVyLT5uZXdQYWdl
KCk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotCisgICAgICAgICAgICBlbWl0
IHByaW50aW5nTmV3UGFnZShwcmludGVyLCBmcm9tUGFnZSwgdG9QYWdlLCBwYWdlKTsKKyAgICAg
ICAgCiAgICAgICAgICAgICBpZiAocGFnZSA9PSB0b1BhZ2UpCiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAKQEAgLTExMjEsNiArMTE2Myw3IEBAIHZvaWQgUVdlYkZyYW1lOjpwcmludChRUHJpbnRl
ciAqcHJpbnRlcikKICAgICB9CiAKICAgICBwcmludENvbnRleHQuZW5kKCk7CisgICAgcGFpbnRl
ci0+cmVzdG9yZSgpOwogfQogI2VuZGlmIC8vIFFUX05PX1BSSU5URVIKIApAQCAtMTIyOSw2ICsx
MjcyLDE4IEBAIFFXZWJGcmFtZSogUVdlYkZyYW1lUHJpdmF0ZTo6a2l0KFdlYkNvcmUKICovCiAK
IC8qIQorICAgIFxmbiB2b2lkIFFXZWJGcmFtZTo6cHJpbnRpbmdOZXdQYWdlKFFQcmludGVyICpw
cmludGVyLCBpbnQgZnJvbVBhZ2UsIGludCB0b1BhZ2UsIGludCBQYWdlKSBjb25zdAorICAgIFxz
aW5jZSA0LjYKKworICAgIFRoaXMgc2lnbmFsIGlzIGVtaXR0ZWQgd2hlbiB3aGVuIGEgcGFnZSBp
cyBwcmludGVkLiBUaGlzIGFsbG93cyBvbmUKKyAgICB0byBhZGQgZXh0cmEgY29udGVudCwgc3Vj
aCBhcyBwYWdlIG51bWJlcnMsIHRvIHRoZSBqb2IuIFxhIHByaW50ZXIgaXMKKyAgICB0aGUgcHJp
bnRlciBvbiB3aGljaCB0aGUgcGFnZSBpcyBwcmludGVkLiBcYSBwYWdlIGlzIHRoZSBudW1iZXIg
b2YgdGhlCisgICAgY3VycmVudCBwYWdlIGJldHdlZW4gXGEgZnJvbVBhZ2UgYW5kIFxhIHRvUGFn
ZS4KKworICAgIFxzYSBwcmludCgpCisqLworCisvKiEKICAgICBcY2xhc3MgUVdlYkhpdFRlc3RS
ZXN1bHQKICAgICBcc2luY2UgNC40CiAgICAgXGJyaWVmIFRoZSBRV2ViSGl0VGVzdFJlc3VsdCBj
bGFzcyBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgd2ViCkluZGV4OiBXZWJLaXQvcXQv
QXBpL3F3ZWJmcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmgJ
KHJldmlzaW9uIDQ0OTMyKQorKysgV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuaAkod29ya2luZyBj
b3B5KQpAQCAtMTg1LDEwICsxODUsMTMgQEAgcHVibGljOgogCiAgICAgUVdlYlNlY3VyaXR5T3Jp
Z2luIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKKyAgICB1bnNpZ25lZCBpbnQgY291bnRQYWdl
cyhRUHJpbnRlciogcHJpbnRlcikgY29uc3Q7CisKIHB1YmxpYyBRX1NMT1RTOgogICAgIFFWYXJp
YW50IGV2YWx1YXRlSmF2YVNjcmlwdChjb25zdCBRU3RyaW5nJiBzY3JpcHRTb3VyY2UpOwogI2lm
bmRlZiBRVF9OT19QUklOVEVSCi0gICAgdm9pZCBwcmludChRUHJpbnRlciAqcHJpbnRlcikgY29u
c3Q7CisgICAgdm9pZCBwcmludChRUHJpbnRlciogcHJpbnRlcikgY29uc3Q7CisgICAgdm9pZCBw
cmludChRUHJpbnRlciogcHJpbnRlciwgUVBhaW50ZXIqIHBhaW50ZXIpIGNvbnN0OwogI2VuZGlm
CiAKIFFfU0lHTkFMUzoKQEAgLTIwNCw2ICsyMDcsNyBAQCBRX1NJR05BTFM6CiAKICAgICB2b2lk
IGNvbnRlbnRzU2l6ZUNoYW5nZWQoY29uc3QgUVNpemUgJnNpemUpOwogCisgICAgdm9pZCBwcmlu
dGluZ05ld1BhZ2UoUVByaW50ZXIqIHByaW50ZXIsIGludCBmcm9tUGFnZSwgaW50IHRvUGFnZSwg
aW50IHBhZ2UpIGNvbnN0OwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUVdlYlBhZ2U7CiAg
ICAgZnJpZW5kIGNsYXNzIFFXZWJQYWdlUHJpdmF0ZTsK
</data>
<flag name="review"
          id="16257"
          type_id="1"
          status="-"
          setter="manyoso"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34388</attachid>
            <date>2009-08-08 11:44:06 -0700</date>
            <delta_ts>2009-08-08 11:56:43 -0700</delta_ts>
            <desc>New patch</desc>
            <filename>new.patch</filename>
            <type>text/plain</type>
            <size>5163</size>
            <attacher name="Jakob Truelsen">antialize</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQ2OTU1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMDgt
MDggIEpha29iIFRydWVsc2VuICA8YW50aWFsaXplQGdtYWlsLmNvbT4KKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI2NTg0CisKKyAgICAgICAgQWRkZWQgYW4gb3ZlcmxvYWRlZCBRV2Vi
RnJhbWU6OnByaW50IGFsbG93aW5nIG9uZSB0byB1c2UgYW4KKyAgICAgICAgZXhpc3RpbmcgcGFp
bnRlciBvYmplY3QuICAKKyAgICAgICAgQWRkZWQgUVdlYkZyYW1lOjpjb3VudFBhZ2VzLCB0aGF0
IGNhbGN1bGF0ZXMgaG93IG1hbnkgcGFnZXMgcHJpbnQKKyAgICAgICAgd2lsbCBwcm9kdWNlLgor
ICAgICAgICBBZGRlZCBRV2ViRnJhbWU6OnByaW50aW5nTmV3UGFnZSwgc2lnbmFsIHRoYXQgZW1p
dHMgZm9yIGVhY2ggcGFnZQorICAgICAgICBwcmludGVkLgorCQorICAgICAgICBOZWVkIGEgc2hv
cnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgICogcXQvQXBpL3F3
ZWJmcmFtZS5jcHA6CisgICAgICAgICogcXQvQXBpL3F3ZWJmcmFtZS5oOgorCiAyMDA5LTA4LTA1
ICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFhhbiBMb3Blei4KSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAJKHJldmlzaW9uIDQ2OTU1
KQorKysgV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQ0
LDE1ICsxMTQ0LDUzIEBAIGJvb2wgUVdlYkZyYW1lOjpldmVudChRRXZlbnQgKmUpCiAKICNpZm5k
ZWYgUVRfTk9fUFJJTlRFUgogLyohCisgICAgXHNpbmNlIDQuNgorICAgIENvdW50IHRoZSBudW1i
ZXIgb2YgcGFnZXMsIHRoYXQgd2lsbCBiZSBwcmludGVkIGJ5IHByaW50LgorCisgICAgXHNhIHBy
aW50KCkKKyovCitxdWludDMyIFFXZWJGcmFtZTo6Y291bnRQYWdlcyhRUHJpbnRlciAqcHJpbnRl
cikgY29uc3QgeworICAgIGNvbnN0IHFyZWFsIHpvb21GYWN0b3JYID0gcHJpbnRlci0+bG9naWNh
bERwaVgoKSAvIHF0X2RlZmF1bHREcGkoKTsKKyAgICBjb25zdCBxcmVhbCB6b29tRmFjdG9yWSA9
IHByaW50ZXItPmxvZ2ljYWxEcGlZKCkgLyBxdF9kZWZhdWx0RHBpKCk7CisKKyAgICBQcmludENv
bnRleHQgcHJpbnRDb250ZXh0KGQtPmZyYW1lKTsKKyAgICBmbG9hdCBwYWdlSGVpZ2h0ID0gMDsK
KworICAgIFFSZWN0IHFwcmludGVyUmVjdCA9IHByaW50ZXItPnBhZ2VSZWN0KCk7CisKKyAgICBJ
bnRSZWN0IHBhZ2VSZWN0KDAsIDAsCisgICAgICAgICAgICAgICAgICAgICBpbnQocXByaW50ZXJS
ZWN0LndpZHRoKCkgLyB6b29tRmFjdG9yWCksCisgICAgICAgICAgICAgICAgICAgICBpbnQocXBy
aW50ZXJSZWN0LmhlaWdodCgpIC8gem9vbUZhY3RvclkpKTsKKworICAgIHByaW50Q29udGV4dC5i
ZWdpbihwYWdlUmVjdC53aWR0aCgpKTsKKyAgICBwcmludENvbnRleHQuY29tcHV0ZVBhZ2VSZWN0
cyhwYWdlUmVjdCwgMCwgMCwgMS4wLCBwYWdlSGVpZ2h0KTsKKyAgICBxdWludDMyIGNvdW50ID0g
cHJpbnRDb250ZXh0LnBhZ2VDb3VudCgpOworICAgIHByaW50Q29udGV4dC5lbmQoKTsKKyAgICBy
ZXR1cm4gY291bnQ7Cit9CisgCisvKiEKICAgICBQcmludHMgdGhlIGZyYW1lIHRvIHRoZSBnaXZl
biBcYSBwcmludGVyLgogCiAgICAgXHNhIHJlbmRlcigpCiAqLwotdm9pZCBRV2ViRnJhbWU6OnBy
aW50KFFQcmludGVyICpwcmludGVyKSBjb25zdAordm9pZCBRV2ViRnJhbWU6OnByaW50KFFQcmlu
dGVyKiBwcmludGVyKSBjb25zdAogewogICAgIFFQYWludGVyIHBhaW50ZXI7Ci0gICAgaWYgKCFw
YWludGVyLmJlZ2luKHByaW50ZXIpKQotICAgICAgICByZXR1cm47CisgICAgaWYoIXBhaW50ZXIu
YmVnaW4ocHJpbnRlcikpIHJldHVybjsKKyAgICBwcmludChwcmludGVyLCBwYWludGVyKTsKK30K
KworLyohCisgICAgXHNpbmNlIDQuNgorICAgIFByaW50cyB0aGUgZnJhbWUgdG8gdGhlIGdpdmVu
IFxhIHByaW50ZXIsIHVzaW5nIHRoZSBnaXZlbiBcYSBwYWludGVyLgorICAgIFRoaXMgYWxsb3dz
IG9uZSB0byBwcmludCBtdWx0aXBsZSBwYWdlcyBpbnRvIG9uZSBqb2IuCisKKyAgICBcc2EgcmVu
ZGVyKCkKKyovCit2b2lkIFFXZWJGcmFtZTo6cHJpbnQoUVByaW50ZXIqIHByaW50ZXIsIFFQYWlu
dGVyKiBwYWludGVyKSBjb25zdAoreworICAgIHBhaW50ZXItPnNhdmUoKTsKIAogICAgIGNvbnN0
IHFyZWFsIHpvb21GYWN0b3JYID0gcHJpbnRlci0+bG9naWNhbERwaVgoKSAvIHF0X2RlZmF1bHRE
cGkoKTsKICAgICBjb25zdCBxcmVhbCB6b29tRmFjdG9yWSA9IHByaW50ZXItPmxvZ2ljYWxEcGlZ
KCkgLyBxdF9kZWZhdWx0RHBpKCk7CkBAIC0xMTk5LDggKzEyMzcsOCBAQCB2b2lkIFFXZWJGcmFt
ZTo6cHJpbnQoUVByaW50ZXIgKnByaW50ZXIpCiAgICAgICAgIGFzY2VuZGluZyA9IGZhbHNlOwog
ICAgIH0KIAotICAgIHBhaW50ZXIuc2NhbGUoem9vbUZhY3RvclgsIHpvb21GYWN0b3JZKTsKLSAg
ICBHcmFwaGljc0NvbnRleHQgY3R4KCZwYWludGVyKTsKKyAgICBwYWludGVyLT5zY2FsZSh6b29t
RmFjdG9yWCwgem9vbUZhY3RvclkpOworICAgIEdyYXBoaWNzQ29udGV4dCBjdHgocGFpbnRlcik7
CiAKICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRvY0NvcGllczsgKytpKSB7CiAgICAgICAgIGlu
dCBwYWdlID0gZnJvbVBhZ2U7CkBAIC0xMjEyLDEwICsxMjUwLDEzIEBAIHZvaWQgUVdlYkZyYW1l
OjpwcmludChRUHJpbnRlciAqcHJpbnRlcikKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBwcmludENvbnRleHQuc3Bvb2xQYWdl
KGN0eCwgcGFnZSAtIDEsIHBhZ2VSZWN0LndpZHRoKCkpOwotICAgICAgICAgICAgICAgIGlmIChq
IDwgcGFnZUNvcGllcyAtIDEpCisgICAgICAgICAgICAgICAgaWYgKGogPCBwYWdlQ29waWVzIC0g
MSkgeworICAgICAgICAgICAgICAgICAgICBlbWl0IHByaW50aW5nTmV3UGFnZShwcmludGVyLCBm
cm9tUGFnZSwgdG9QYWdlLCBwYWdlKTsKICAgICAgICAgICAgICAgICAgICAgcHJpbnRlci0+bmV3
UGFnZSgpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLQorICAgICAgICAgICAg
ZW1pdCBwcmludGluZ05ld1BhZ2UocHJpbnRlciwgZnJvbVBhZ2UsIHRvUGFnZSwgcGFnZSk7Cisg
ICAgICAgIAogICAgICAgICAgICAgaWYgKHBhZ2UgPT0gdG9QYWdlKQogICAgICAgICAgICAgICAg
IGJyZWFrOwogCkBAIC0xMjMyLDYgKzEyNzMsNyBAQCB2b2lkIFFXZWJGcmFtZTo6cHJpbnQoUVBy
aW50ZXIgKnByaW50ZXIpCiAgICAgfQogCiAgICAgcHJpbnRDb250ZXh0LmVuZCgpOworICAgIHBh
aW50ZXItPnJlc3RvcmUoKTsKIH0KICNlbmRpZiAvLyBRVF9OT19QUklOVEVSCiAKQEAgLTEzNTks
NiArMTQwMSwxOCBAQCBRV2ViRnJhbWUqIFFXZWJGcmFtZVByaXZhdGU6OmtpdChXZWJDb3JlCiAq
LwogCiAvKiEKKyAgICBcZm4gdm9pZCBRV2ViRnJhbWU6OnByaW50aW5nTmV3UGFnZShRUHJpbnRl
ciAqcHJpbnRlciwgaW50IGZyb21QYWdlLCBpbnQgdG9QYWdlLCBpbnQgUGFnZSkgY29uc3QKKyAg
ICBcc2luY2UgNC42CisKKyAgICBUaGlzIHNpZ25hbCBpcyBlbWl0dGVkIHdoZW4gYSBwYWdlIGlz
IHByaW50ZWQuIFRoaXMgYWxsb3dzIG9uZQorICAgIHRvIGFkZCBleHRyYSBjb250ZW50LCBzdWNo
IGFzIHBhZ2UgbnVtYmVycywgdG8gdGhlIGpvYi4gXGEgcHJpbnRlciBpcworICAgIHRoZSBwcmlu
dGVyIG9uIHdoaWNoIHRoZSBwYWdlIGlzIHByaW50ZWQuIFxhIHBhZ2UgaXMgdGhlIG51bWJlciBv
ZiB0aGUKKyAgICBjdXJyZW50IHBhZ2UgYmV0d2VlbiBcYSBmcm9tUGFnZSBhbmQgXGEgdG9QYWdl
LgorCisgICAgXHNhIHByaW50KCkKKyovCisKKy8qIQogICAgIFxjbGFzcyBRV2ViSGl0VGVzdFJl
c3VsdAogICAgIFxzaW5jZSA0LjQKICAgICBcYnJpZWYgVGhlIFFXZWJIaXRUZXN0UmVzdWx0IGNs
YXNzIHByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSB3ZWIKSW5kZXg6IFdlYktpdC9xdC9B
cGkvcXdlYmZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuaAko
cmV2aXNpb24gNDY5NTUpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xOTMsMTAgKzE5MywxMyBAQCBwdWJsaWM6CiAKICAgICBRV2ViU2VjdXJpdHlPcmln
aW4gc2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKIAorICAgIHF1aW50MzIgY291bnRQYWdlcyhRUHJp
bnRlciogcHJpbnRlcikgY29uc3Q7CisKIHB1YmxpYyBRX1NMT1RTOgogICAgIFFWYXJpYW50IGV2
YWx1YXRlSmF2YVNjcmlwdChjb25zdCBRU3RyaW5nJiBzY3JpcHRTb3VyY2UpOwogI2lmbmRlZiBR
VF9OT19QUklOVEVSCi0gICAgdm9pZCBwcmludChRUHJpbnRlciAqcHJpbnRlcikgY29uc3Q7Cisg
ICAgdm9pZCBwcmludChRUHJpbnRlciogcHJpbnRlcikgY29uc3Q7CisgICAgdm9pZCBwcmludChR
UHJpbnRlciogcHJpbnRlciwgUVBhaW50ZXIqIHBhaW50ZXIpIGNvbnN0OwogI2VuZGlmCiAKIFFf
U0lHTkFMUzoKQEAgLTIxNSw2ICsyMTgsNyBAQCBRX1NJR05BTFM6CiAgICAgdm9pZCBsb2FkU3Rh
cnRlZCgpOwogICAgIHZvaWQgbG9hZEZpbmlzaGVkKGJvb2wgb2spOwogCisgICAgdm9pZCBwcmlu
dGluZ05ld1BhZ2UoUVByaW50ZXIqIHByaW50ZXIsIGludCBmcm9tUGFnZSwgaW50IHRvUGFnZSwg
aW50IHBhZ2UpIGNvbnN0OwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUVdlYlBhZ2U7CiAg
ICAgZnJpZW5kIGNsYXNzIFFXZWJQYWdlUHJpdmF0ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34389</attachid>
            <date>2009-08-08 11:56:43 -0700</date>
            <delta_ts>2009-08-08 11:58:23 -0700</delta_ts>
            <desc>Newer patch</desc>
            <filename>new.patch</filename>
            <type>text/plain</type>
            <size>5158</size>
            <attacher name="Jakob Truelsen">antialize</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQ2OTU1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMDgt
MDggIEpha29iIFRydWVsc2VuICA8YW50aWFsaXplQGdtYWlsLmNvbT4KKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI2NTg0CisKKyAgICAgICAgQWRkZWQgYW4gb3ZlcmxvYWRlZCBRV2Vi
RnJhbWU6OnByaW50IGFsbG93aW5nIG9uZSB0byB1c2UgYW4KKyAgICAgICAgZXhpc3RpbmcgcGFp
bnRlciBvYmplY3QuICAKKyAgICAgICAgQWRkZWQgUVdlYkZyYW1lOjpjb3VudFBhZ2VzLCB0aGF0
IGNhbGN1bGF0ZXMgaG93IG1hbnkgcGFnZXMgcHJpbnQKKyAgICAgICAgd2lsbCBwcm9kdWNlLgor
ICAgICAgICBBZGRlZCBRV2ViRnJhbWU6OnByaW50aW5nTmV3UGFnZSwgc2lnbmFsIHRoYXQgZW1p
dHMgZm9yIGVhY2ggcGFnZQorICAgICAgICBwcmludGVkLgorCQorICAgICAgICBOZWVkIGEgc2hv
cnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgICogcXQvQXBpL3F3
ZWJmcmFtZS5jcHA6CisgICAgICAgICogcXQvQXBpL3F3ZWJmcmFtZS5oOgorCiAyMDA5LTA4LTA1
ICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFhhbiBMb3Blei4KSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAJKHJldmlzaW9uIDQ2OTU1
KQorKysgV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQ0
LDE1ICsxMTQ0LDU0IEBAIGJvb2wgUVdlYkZyYW1lOjpldmVudChRRXZlbnQgKmUpCiAKICNpZm5k
ZWYgUVRfTk9fUFJJTlRFUgogLyohCisgICAgXHNpbmNlIDQuNgorICAgIENvdW50IHRoZSBudW1i
ZXIgb2YgcGFnZXMsIHRoYXQgd2lsbCBiZSBwcmludGVkIGJ5IHByaW50LgorCisgICAgXHNhIHBy
aW50KCkKKyovCitxdWludDMyIFFXZWJGcmFtZTo6Y291bnRQYWdlcyhRUHJpbnRlciogcHJpbnRl
cikgY29uc3QgeworICAgIGNvbnN0IHFyZWFsIHpvb21GYWN0b3JYID0gcHJpbnRlci0+bG9naWNh
bERwaVgoKSAvIHF0X2RlZmF1bHREcGkoKTsKKyAgICBjb25zdCBxcmVhbCB6b29tRmFjdG9yWSA9
IHByaW50ZXItPmxvZ2ljYWxEcGlZKCkgLyBxdF9kZWZhdWx0RHBpKCk7CisKKyAgICBQcmludENv
bnRleHQgcHJpbnRDb250ZXh0KGQtPmZyYW1lKTsKKyAgICBmbG9hdCBwYWdlSGVpZ2h0ID0gMDsK
KworICAgIFFSZWN0IHFwcmludGVyUmVjdCA9IHByaW50ZXItPnBhZ2VSZWN0KCk7CisKKyAgICBJ
bnRSZWN0IHBhZ2VSZWN0KDAsIDAsCisgICAgICAgICAgICAgICAgICAgICBpbnQocXByaW50ZXJS
ZWN0LndpZHRoKCkgLyB6b29tRmFjdG9yWCksCisgICAgICAgICAgICAgICAgICAgICBpbnQocXBy
aW50ZXJSZWN0LmhlaWdodCgpIC8gem9vbUZhY3RvclkpKTsKKworICAgIHByaW50Q29udGV4dC5i
ZWdpbihwYWdlUmVjdC53aWR0aCgpKTsKKyAgICBwcmludENvbnRleHQuY29tcHV0ZVBhZ2VSZWN0
cyhwYWdlUmVjdCwgMCwgMCwgMS4wLCBwYWdlSGVpZ2h0KTsKKyAgICBxdWludDMyIGNvdW50ID0g
cHJpbnRDb250ZXh0LnBhZ2VDb3VudCgpOworICAgIHByaW50Q29udGV4dC5lbmQoKTsKKyAgICBy
ZXR1cm4gY291bnQ7Cit9CisgCisvKiEKICAgICBQcmludHMgdGhlIGZyYW1lIHRvIHRoZSBnaXZl
biBcYSBwcmludGVyLgogCiAgICAgXHNhIHJlbmRlcigpCiAqLwotdm9pZCBRV2ViRnJhbWU6OnBy
aW50KFFQcmludGVyICpwcmludGVyKSBjb25zdAordm9pZCBRV2ViRnJhbWU6OnByaW50KFFQcmlu
dGVyKiBwcmludGVyKSBjb25zdAogewogICAgIFFQYWludGVyIHBhaW50ZXI7Ci0gICAgaWYgKCFw
YWludGVyLmJlZ2luKHByaW50ZXIpKQorICAgIGlmICghcGFpbnRlci5iZWdpbihwcmludGVyKSkg
CiAgICAgICAgIHJldHVybjsKKyAgICBwcmludChwcmludGVyLCBwYWludGVyKTsKK30KKworLyoh
CisgICAgXHNpbmNlIDQuNgorICAgIFByaW50cyB0aGUgZnJhbWUgdG8gdGhlIGdpdmVuIFxhIHBy
aW50ZXIsIHVzaW5nIHRoZSBnaXZlbiBcYSBwYWludGVyLgorICAgIFRoaXMgYWxsb3dzIG9uZSB0
byBwcmludCBtdWx0aXBsZSBwYWdlcyBpbnRvIG9uZSBqb2IuCisKKyAgICBcc2EgcmVuZGVyKCkK
KyovCit2b2lkIFFXZWJGcmFtZTo6cHJpbnQoUVByaW50ZXIqIHByaW50ZXIsIFFQYWludGVyKiBw
YWludGVyKSBjb25zdAoreworICAgIHBhaW50ZXItPnNhdmUoKTsKIAogICAgIGNvbnN0IHFyZWFs
IHpvb21GYWN0b3JYID0gcHJpbnRlci0+bG9naWNhbERwaVgoKSAvIHF0X2RlZmF1bHREcGkoKTsK
ICAgICBjb25zdCBxcmVhbCB6b29tRmFjdG9yWSA9IHByaW50ZXItPmxvZ2ljYWxEcGlZKCkgLyBx
dF9kZWZhdWx0RHBpKCk7CkBAIC0xMTk5LDggKzEyMzgsOCBAQCB2b2lkIFFXZWJGcmFtZTo6cHJp
bnQoUVByaW50ZXIgKnByaW50ZXIpCiAgICAgICAgIGFzY2VuZGluZyA9IGZhbHNlOwogICAgIH0K
IAotICAgIHBhaW50ZXIuc2NhbGUoem9vbUZhY3RvclgsIHpvb21GYWN0b3JZKTsKLSAgICBHcmFw
aGljc0NvbnRleHQgY3R4KCZwYWludGVyKTsKKyAgICBwYWludGVyLT5zY2FsZSh6b29tRmFjdG9y
WCwgem9vbUZhY3RvclkpOworICAgIEdyYXBoaWNzQ29udGV4dCBjdHgocGFpbnRlcik7CiAKICAg
ICBmb3IgKGludCBpID0gMDsgaSA8IGRvY0NvcGllczsgKytpKSB7CiAgICAgICAgIGludCBwYWdl
ID0gZnJvbVBhZ2U7CkBAIC0xMjEyLDEwICsxMjUxLDEzIEBAIHZvaWQgUVdlYkZyYW1lOjpwcmlu
dChRUHJpbnRlciAqcHJpbnRlcikKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBwcmludENvbnRleHQuc3Bvb2xQYWdlKGN0eCwg
cGFnZSAtIDEsIHBhZ2VSZWN0LndpZHRoKCkpOwotICAgICAgICAgICAgICAgIGlmIChqIDwgcGFn
ZUNvcGllcyAtIDEpCisgICAgICAgICAgICAgICAgaWYgKGogPCBwYWdlQ29waWVzIC0gMSkgewor
ICAgICAgICAgICAgICAgICAgICBlbWl0IHByaW50aW5nTmV3UGFnZShwcmludGVyLCBmcm9tUGFn
ZSwgdG9QYWdlLCBwYWdlKTsKICAgICAgICAgICAgICAgICAgICAgcHJpbnRlci0+bmV3UGFnZSgp
OworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLQorICAgICAgICAgICAgZW1pdCBw
cmludGluZ05ld1BhZ2UocHJpbnRlciwgZnJvbVBhZ2UsIHRvUGFnZSwgcGFnZSk7CisgICAgICAg
IAogICAgICAgICAgICAgaWYgKHBhZ2UgPT0gdG9QYWdlKQogICAgICAgICAgICAgICAgIGJyZWFr
OwogCkBAIC0xMjMyLDYgKzEyNzQsNyBAQCB2b2lkIFFXZWJGcmFtZTo6cHJpbnQoUVByaW50ZXIg
KnByaW50ZXIpCiAgICAgfQogCiAgICAgcHJpbnRDb250ZXh0LmVuZCgpOworICAgIHBhaW50ZXIt
PnJlc3RvcmUoKTsKIH0KICNlbmRpZiAvLyBRVF9OT19QUklOVEVSCiAKQEAgLTEzNTksNiArMTQw
MiwxOCBAQCBRV2ViRnJhbWUqIFFXZWJGcmFtZVByaXZhdGU6OmtpdChXZWJDb3JlCiAqLwogCiAv
KiEKKyAgICBcZm4gdm9pZCBRV2ViRnJhbWU6OnByaW50aW5nTmV3UGFnZShRUHJpbnRlciAqcHJp
bnRlciwgaW50IGZyb21QYWdlLCBpbnQgdG9QYWdlLCBpbnQgUGFnZSkgY29uc3QKKyAgICBcc2lu
Y2UgNC42CisKKyAgICBUaGlzIHNpZ25hbCBpcyBlbWl0dGVkIHdoZW43IGEgcGFnZSBpcyBwcmlu
dGVkLiBUaGlzIGFsbG93cyBvbmUKKyAgICB0byBhZGQgZXh0cmEgY29udGVudCwgc3VjaCBhcyBw
YWdlIG51bWJlcnMsIHRvIHRoZSBqb2IuIFxhIHByaW50ZXIgaXMKKyAgICB0aGUgcHJpbnRlciBv
biB3aGljaCB0aGUgcGFnZSBpcyBwcmludGVkLiBcYSBwYWdlIGlzIHRoZSBudW1iZXIgb2YgdGhl
CisgICAgY3VycmVudCBwYWdlIGJldHdlZW4gXGEgZnJvbVBhZ2UgYW5kIFxhIHRvUGFnZS4KKwor
ICAgIFxzYSBwcmludCgpCisqLworCisvKiEKICAgICBcY2xhc3MgUVdlYkhpdFRlc3RSZXN1bHQK
ICAgICBcc2luY2UgNC40CiAgICAgXGJyaWVmIFRoZSBRV2ViSGl0VGVzdFJlc3VsdCBjbGFzcyBw
cm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgd2ViCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3
ZWJmcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmgJKHJldmlz
aW9uIDQ2OTU1KQorKysgV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuaAkod29ya2luZyBjb3B5KQpA
QCAtMTkzLDEwICsxOTMsMTMgQEAgcHVibGljOgogCiAgICAgUVdlYlNlY3VyaXR5T3JpZ2luIHNl
Y3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKKyAgICBxdWludDMyIGNvdW50UGFnZXMoUVByaW50ZXIq
IHByaW50ZXIpIGNvbnN0OworCiBwdWJsaWMgUV9TTE9UUzoKICAgICBRVmFyaWFudCBldmFsdWF0
ZUphdmFTY3JpcHQoY29uc3QgUVN0cmluZyYgc2NyaXB0U291cmNlKTsKICNpZm5kZWYgUVRfTk9f
UFJJTlRFUgotICAgIHZvaWQgcHJpbnQoUVByaW50ZXIgKnByaW50ZXIpIGNvbnN0OworICAgIHZv
aWQgcHJpbnQoUVByaW50ZXIqIHByaW50ZXIpIGNvbnN0OworICAgIHZvaWQgcHJpbnQoUVByaW50
ZXIqIHByaW50ZXIsIFFQYWludGVyKiBwYWludGVyKSBjb25zdDsKICNlbmRpZgogCiBRX1NJR05B
TFM6CkBAIC0yMTUsNiArMjE4LDcgQEAgUV9TSUdOQUxTOgogICAgIHZvaWQgbG9hZFN0YXJ0ZWQo
KTsKICAgICB2b2lkIGxvYWRGaW5pc2hlZChib29sIG9rKTsKIAorICAgIHZvaWQgcHJpbnRpbmdO
ZXdQYWdlKFFQcmludGVyKiBwcmludGVyLCBpbnQgZnJvbVBhZ2UsIGludCB0b1BhZ2UsIGludCBw
YWdlKSBjb25zdDsKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFFXZWJQYWdlOwogICAgIGZy
aWVuZCBjbGFzcyBRV2ViUGFnZVByaXZhdGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34390</attachid>
            <date>2009-08-08 11:58:23 -0700</date>
            <delta_ts>2009-09-12 06:33:27 -0700</delta_ts>
            <desc>New patch</desc>
            <filename>new.patch</filename>
            <type>text/plain</type>
            <size>5123</size>
            <attacher name="Jakob Truelsen">antialize</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQ2OTU1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMDgt
MDggIEpha29iIFRydWVsc2VuICA8YW50aWFsaXplQGdtYWlsLmNvbT4KKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI2NTg0CisKKyAgICAgICAgQWRkZWQgYW4gb3ZlcmxvYWRlZCBRV2Vi
RnJhbWU6OnByaW50IGFsbG93aW5nIG9uZSB0byB1c2UgYW4KKyAgICAgICAgZXhpc3RpbmcgcGFp
bnRlciBvYmplY3QuICAKKyAgICAgICAgQWRkZWQgUVdlYkZyYW1lOjpjb3VudFBhZ2VzLCB0aGF0
IGNhbGN1bGF0ZXMgaG93IG1hbnkgcGFnZXMgcHJpbnQKKyAgICAgICAgd2lsbCBwcm9kdWNlLgor
ICAgICAgICBBZGRlZCBRV2ViRnJhbWU6OnByaW50aW5nTmV3UGFnZSwgc2lnbmFsIHRoYXQgZW1p
dHMgZm9yIGVhY2ggcGFnZQorICAgICAgICBwcmludGVkLgorCQorICAgICAgICBOZWVkIGEgc2hv
cnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgICogcXQvQXBpL3F3
ZWJmcmFtZS5jcHA6CisgICAgICAgICogcXQvQXBpL3F3ZWJmcmFtZS5oOgorCiAyMDA5LTA4LTA1
ICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFhhbiBMb3Blei4KSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAJKHJldmlzaW9uIDQ2OTU1
KQorKysgV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQ0
LDE1ICsxMTQ0LDU0IEBAIGJvb2wgUVdlYkZyYW1lOjpldmVudChRRXZlbnQgKmUpCiAKICNpZm5k
ZWYgUVRfTk9fUFJJTlRFUgogLyohCisgICAgXHNpbmNlIDQuNgorICAgIENvdW50IHRoZSBudW1i
ZXIgb2YgcGFnZXMsIHRoYXQgd2lsbCBiZSBwcmludGVkIGJ5IHByaW50LgorCisgICAgXHNhIHBy
aW50KCkKKyovCitxdWludDMyIFFXZWJGcmFtZTo6Y291bnRQYWdlcyhRUHJpbnRlciogcHJpbnRl
cikgY29uc3QgeworICAgIGNvbnN0IHFyZWFsIHpvb21GYWN0b3JYID0gcHJpbnRlci0+bG9naWNh
bERwaVgoKSAvIHF0X2RlZmF1bHREcGkoKTsKKyAgICBjb25zdCBxcmVhbCB6b29tRmFjdG9yWSA9
IHByaW50ZXItPmxvZ2ljYWxEcGlZKCkgLyBxdF9kZWZhdWx0RHBpKCk7CisKKyAgICBQcmludENv
bnRleHQgcHJpbnRDb250ZXh0KGQtPmZyYW1lKTsKKyAgICBmbG9hdCBwYWdlSGVpZ2h0ID0gMDsK
KworICAgIFFSZWN0IHFwcmludGVyUmVjdCA9IHByaW50ZXItPnBhZ2VSZWN0KCk7CisKKyAgICBJ
bnRSZWN0IHBhZ2VSZWN0KDAsIDAsCisgICAgICAgICAgICAgICAgICAgICBpbnQocXByaW50ZXJS
ZWN0LndpZHRoKCkgLyB6b29tRmFjdG9yWCksCisgICAgICAgICAgICAgICAgICAgICBpbnQocXBy
aW50ZXJSZWN0LmhlaWdodCgpIC8gem9vbUZhY3RvclkpKTsKKworICAgIHByaW50Q29udGV4dC5i
ZWdpbihwYWdlUmVjdC53aWR0aCgpKTsKKyAgICBwcmludENvbnRleHQuY29tcHV0ZVBhZ2VSZWN0
cyhwYWdlUmVjdCwgMCwgMCwgMS4wLCBwYWdlSGVpZ2h0KTsKKyAgICBxdWludDMyIGNvdW50ID0g
cHJpbnRDb250ZXh0LnBhZ2VDb3VudCgpOworICAgIHByaW50Q29udGV4dC5lbmQoKTsKKyAgICBy
ZXR1cm4gY291bnQ7Cit9CisgCisvKiEKICAgICBQcmludHMgdGhlIGZyYW1lIHRvIHRoZSBnaXZl
biBcYSBwcmludGVyLgogCiAgICAgXHNhIHJlbmRlcigpCiAqLwotdm9pZCBRV2ViRnJhbWU6OnBy
aW50KFFQcmludGVyICpwcmludGVyKSBjb25zdAordm9pZCBRV2ViRnJhbWU6OnByaW50KFFQcmlu
dGVyKiBwcmludGVyKSBjb25zdAogewogICAgIFFQYWludGVyIHBhaW50ZXI7CiAgICAgaWYgKCFw
YWludGVyLmJlZ2luKHByaW50ZXIpKQogICAgICAgICByZXR1cm47CisgICAgcHJpbnQocHJpbnRl
ciwgcGFpbnRlcik7Cit9CisKKy8qIQorICAgIFxzaW5jZSA0LjYKKyAgICBQcmludHMgdGhlIGZy
YW1lIHRvIHRoZSBnaXZlbiBcYSBwcmludGVyLCB1c2luZyB0aGUgZ2l2ZW4gXGEgcGFpbnRlci4K
KyAgICBUaGlzIGFsbG93cyBvbmUgdG8gcHJpbnQgbXVsdGlwbGUgcGFnZXMgaW50byBvbmUgam9i
LgorCisgICAgXHNhIHJlbmRlcigpCisqLwordm9pZCBRV2ViRnJhbWU6OnByaW50KFFQcmludGVy
KiBwcmludGVyLCBRUGFpbnRlciogcGFpbnRlcikgY29uc3QKK3sKKyAgICBwYWludGVyLT5zYXZl
KCk7CiAKICAgICBjb25zdCBxcmVhbCB6b29tRmFjdG9yWCA9IHByaW50ZXItPmxvZ2ljYWxEcGlY
KCkgLyBxdF9kZWZhdWx0RHBpKCk7CiAgICAgY29uc3QgcXJlYWwgem9vbUZhY3RvclkgPSBwcmlu
dGVyLT5sb2dpY2FsRHBpWSgpIC8gcXRfZGVmYXVsdERwaSgpOwpAQCAtMTE5OSw4ICsxMjM4LDgg
QEAgdm9pZCBRV2ViRnJhbWU6OnByaW50KFFQcmludGVyICpwcmludGVyKQogICAgICAgICBhc2Nl
bmRpbmcgPSBmYWxzZTsKICAgICB9CiAKLSAgICBwYWludGVyLnNjYWxlKHpvb21GYWN0b3JYLCB6
b29tRmFjdG9yWSk7Ci0gICAgR3JhcGhpY3NDb250ZXh0IGN0eCgmcGFpbnRlcik7CisgICAgcGFp
bnRlci0+c2NhbGUoem9vbUZhY3RvclgsIHpvb21GYWN0b3JZKTsKKyAgICBHcmFwaGljc0NvbnRl
eHQgY3R4KHBhaW50ZXIpOwogCiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkb2NDb3BpZXM7ICsr
aSkgewogICAgICAgICBpbnQgcGFnZSA9IGZyb21QYWdlOwpAQCAtMTIxMiwxMCArMTI1MSwxMyBA
QCB2b2lkIFFXZWJGcmFtZTo6cHJpbnQoUVByaW50ZXIgKnByaW50ZXIpCiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgcHJpbnRD
b250ZXh0LnNwb29sUGFnZShjdHgsIHBhZ2UgLSAxLCBwYWdlUmVjdC53aWR0aCgpKTsKLSAgICAg
ICAgICAgICAgICBpZiAoaiA8IHBhZ2VDb3BpZXMgLSAxKQorICAgICAgICAgICAgICAgIGlmIChq
IDwgcGFnZUNvcGllcyAtIDEpIHsKKyAgICAgICAgICAgICAgICAgICAgZW1pdCBwcmludGluZ05l
d1BhZ2UocHJpbnRlciwgZnJvbVBhZ2UsIHRvUGFnZSwgcGFnZSk7CiAgICAgICAgICAgICAgICAg
ICAgIHByaW50ZXItPm5ld1BhZ2UoKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
Ci0KKyAgICAgICAgICAgIGVtaXQgcHJpbnRpbmdOZXdQYWdlKHByaW50ZXIsIGZyb21QYWdlLCB0
b1BhZ2UsIHBhZ2UpOworICAgICAgICAKICAgICAgICAgICAgIGlmIChwYWdlID09IHRvUGFnZSkK
ICAgICAgICAgICAgICAgICBicmVhazsKIApAQCAtMTIzMiw2ICsxMjc0LDcgQEAgdm9pZCBRV2Vi
RnJhbWU6OnByaW50KFFQcmludGVyICpwcmludGVyKQogICAgIH0KIAogICAgIHByaW50Q29udGV4
dC5lbmQoKTsKKyAgICBwYWludGVyLT5yZXN0b3JlKCk7CiB9CiAjZW5kaWYgLy8gUVRfTk9fUFJJ
TlRFUgogCkBAIC0xMzU5LDYgKzE0MDIsMTggQEAgUVdlYkZyYW1lKiBRV2ViRnJhbWVQcml2YXRl
OjpraXQoV2ViQ29yZQogKi8KIAogLyohCisgICAgXGZuIHZvaWQgUVdlYkZyYW1lOjpwcmludGlu
Z05ld1BhZ2UoUVByaW50ZXIgKnByaW50ZXIsIGludCBmcm9tUGFnZSwgaW50IHRvUGFnZSwgaW50
IFBhZ2UpIGNvbnN0CisgICAgXHNpbmNlIDQuNgorCisgICAgVGhpcyBzaWduYWwgaXMgZW1pdHRl
ZCB3aGVuNyBhIHBhZ2UgaXMgcHJpbnRlZC4gVGhpcyBhbGxvd3Mgb25lCisgICAgdG8gYWRkIGV4
dHJhIGNvbnRlbnQsIHN1Y2ggYXMgcGFnZSBudW1iZXJzLCB0byB0aGUgam9iLiBcYSBwcmludGVy
IGlzCisgICAgdGhlIHByaW50ZXIgb24gd2hpY2ggdGhlIHBhZ2UgaXMgcHJpbnRlZC4gXGEgcGFn
ZSBpcyB0aGUgbnVtYmVyIG9mIHRoZQorICAgIGN1cnJlbnQgcGFnZSBiZXR3ZWVuIFxhIGZyb21Q
YWdlIGFuZCBcYSB0b1BhZ2UuCisKKyAgICBcc2EgcHJpbnQoKQorKi8KKworLyohCiAgICAgXGNs
YXNzIFFXZWJIaXRUZXN0UmVzdWx0CiAgICAgXHNpbmNlIDQuNAogICAgIFxicmllZiBUaGUgUVdl
YkhpdFRlc3RSZXN1bHQgY2xhc3MgcHJvdmlkZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHdlYgpJ
bmRleDogV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQv
QXBpL3F3ZWJmcmFtZS5oCShyZXZpc2lvbiA0Njk1NSkKKysrIFdlYktpdC9xdC9BcGkvcXdlYmZy
YW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5MywxMCArMTkzLDEzIEBAIHB1YmxpYzoKIAogICAg
IFFXZWJTZWN1cml0eU9yaWdpbiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OwogCisgICAgcXVpbnQz
MiBjb3VudFBhZ2VzKFFQcmludGVyKiBwcmludGVyKSBjb25zdDsKKwogcHVibGljIFFfU0xPVFM6
CiAgICAgUVZhcmlhbnQgZXZhbHVhdGVKYXZhU2NyaXB0KGNvbnN0IFFTdHJpbmcmIHNjcmlwdFNv
dXJjZSk7CiAjaWZuZGVmIFFUX05PX1BSSU5URVIKLSAgICB2b2lkIHByaW50KFFQcmludGVyICpw
cmludGVyKSBjb25zdDsKKyAgICB2b2lkIHByaW50KFFQcmludGVyKiBwcmludGVyKSBjb25zdDsK
KyAgICB2b2lkIHByaW50KFFQcmludGVyKiBwcmludGVyLCBRUGFpbnRlciogcGFpbnRlcikgY29u
c3Q7CiAjZW5kaWYKIAogUV9TSUdOQUxTOgpAQCAtMjE1LDYgKzIxOCw3IEBAIFFfU0lHTkFMUzoK
ICAgICB2b2lkIGxvYWRTdGFydGVkKCk7CiAgICAgdm9pZCBsb2FkRmluaXNoZWQoYm9vbCBvayk7
CiAKKyAgICB2b2lkIHByaW50aW5nTmV3UGFnZShRUHJpbnRlciogcHJpbnRlciwgaW50IGZyb21Q
YWdlLCBpbnQgdG9QYWdlLCBpbnQgcGFnZSkgY29uc3Q7CiBwcml2YXRlOgogICAgIGZyaWVuZCBj
bGFzcyBRV2ViUGFnZTsKICAgICBmcmllbmQgY2xhc3MgUVdlYlBhZ2VQcml2YXRlOwo=
</data>
<flag name="review"
          id="18568"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39513</attachid>
            <date>2009-09-12 06:33:27 -0700</date>
            <delta_ts>2011-01-20 06:25:22 -0800</delta_ts>
            <desc>Ariya Hidayat&apos;s solution</desc>
            <filename>print-control.patch</filename>
            <type>text/plain</type>
            <size>6773</size>
            <attacher name="Jakob Truelsen">antialize</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNDgzMTcpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDktMDktMTEgIEpha29iIFRydWVsc2VuICA8YW50aWFs
aXplQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY1ODQKKyAg
ICAgICAgQWxsb3cgbW9yZSBjb250cm9sIHdoZW4gcHJpbnRpbmcsIGFkZGVkIG1ldGhvZHMKKyAg
ICAgICAgYmVnaW5QcmludCwgZW5kUHJpbnQsIHNwb29sUGFnZSwgcHJpbnRpbmdQYWludGVyIGFu
ZCBwcmludGluZ1BhZ2VDb3VudAorICAgICAgICB0byBRV2ViRnJhbWUuCisKKyAgICAgICAgKiBB
cGkvcXdlYmZyYW1lLmNwcDoKKyAgICAgICAgKFFXZWJGcmFtZTo6YmVnaW5QcmludCk6CisgICAg
ICAgIChRV2ViRnJhbWU6OmVuZFByaW50KToKKyAgICAgICAgKFFXZWJGcmFtZTo6c3Bvb2xQYWdl
KToKKyAgICAgICAgKFFXZWJGcmFtZTo6cHJpbnRpbmdQYWludGVyKToKKyAgICAgICAgKFFXZWJG
cmFtZTo6cHJpbnRpbmdQYWdlQ291bnQpOgorICAgICAgICAoUVdlYkZyYW1lOjpwcmludCk6Cisg
ICAgICAgICogQXBpL3F3ZWJmcmFtZS5oOgorICAgICAgICAqIEFwaS9xd2ViZnJhbWVfcC5oOgor
CiAyMDA5LTA5LTExICBEYXZpZCBCb2RkaWUgIDxkYm9kZGllQHRyb2xsdGVjaC5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3
ZWJmcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCShy
ZXZpc2lvbiA0ODMxNCkKKysrIFdlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTE0MywzMiArMTE0MywxMDEgQEAgYm9vbCBRV2ViRnJhbWU6OmV2ZW50KFFFdmVu
dCAqZSkKIH0KIAogI2lmbmRlZiBRVF9OT19QUklOVEVSCiAvKiEKLSAgICBQcmludHMgdGhlIGZy
YW1lIHRvIHRoZSBnaXZlbiBcYSBwcmludGVyLgorICAgIFxzaW5jZSA0LjcKKyAgICBTZXR1cCBw
cmludGluZyBvZiB0aGUgZnJhbWUuCiAKLSAgICBcc2EgcmVuZGVyKCkKKyAgICBcc2EgZW5kUHJp
bnQoKQorICAgIFxzYSBzcG9vbFBhZ2UoKQogKi8KLXZvaWQgUVdlYkZyYW1lOjpwcmludChRUHJp
bnRlciAqcHJpbnRlcikgY29uc3QKLXsKLSAgICBRUGFpbnRlciBwYWludGVyOwotICAgIGlmICgh
cGFpbnRlci5iZWdpbihwcmludGVyKSkKLSAgICAgICAgcmV0dXJuOworYm9vbCBRV2ViRnJhbWU6
OmJlZ2luUHJpbnQoUVByaW50ZXIgKnByaW50ZXIpCit7CisgICAgZC0+cGFpbnRlciA9IHN0ZDo6
YXV0b19wdHI8UVBhaW50ZXI+KG5ldyBRUGFpbnRlcigpKTsKKyAgICBpZiAoIWQtPnBhaW50ZXIt
PmJlZ2luKHByaW50ZXIpKQorCXJldHVybiBmYWxzZTsKIAogICAgIGNvbnN0IHFyZWFsIHpvb21G
YWN0b3JYID0gcHJpbnRlci0+bG9naWNhbERwaVgoKSAvIHF0X2RlZmF1bHREcGkoKTsKICAgICBj
b25zdCBxcmVhbCB6b29tRmFjdG9yWSA9IHByaW50ZXItPmxvZ2ljYWxEcGlZKCkgLyBxdF9kZWZh
dWx0RHBpKCk7CiAKLSAgICBQcmludENvbnRleHQgcHJpbnRDb250ZXh0KGQtPmZyYW1lKTsKLSAg
ICBmbG9hdCBwYWdlSGVpZ2h0ID0gMDsKLQorICAgIGQtPnByaW50Q29udGV4dCA9IHN0ZDo6YXV0
b19wdHI8V2ViQ29yZTo6UHJpbnRDb250ZXh0PihuZXcgUHJpbnRDb250ZXh0KGQtPmZyYW1lKSk7
CiAgICAgUVJlY3QgcXByaW50ZXJSZWN0ID0gcHJpbnRlci0+cGFnZVJlY3QoKTsKIAogICAgICBJ
bnRSZWN0IHBhZ2VSZWN0KDAsIDAsCiAgICAgICAgICAgICAgICAgICAgICBpbnQocXByaW50ZXJS
ZWN0LndpZHRoKCkgLyB6b29tRmFjdG9yWCksCiAgICAgICAgICAgICAgICAgICAgICBpbnQocXBy
aW50ZXJSZWN0LmhlaWdodCgpIC8gem9vbUZhY3RvclkpKTsKIAotICAgIHByaW50Q29udGV4dC5i
ZWdpbihwYWdlUmVjdC53aWR0aCgpKTsKKyAgICBkLT5wcmludENvbnRleHQtPmJlZ2luKHBhZ2VS
ZWN0LndpZHRoKCkpOworCisgICAgZmxvYXQgcGFnZUhlaWdodCA9IDA7CisgICAgZC0+cHJpbnRD
b250ZXh0LT5jb21wdXRlUGFnZVJlY3RzKHBhZ2VSZWN0LCAvKiBoZWFkZXJIZWlnaHQgKi8gMCwg
LyogZm9vdGVySGVpZ2h0ICovIDAsIC8qIHVzZXJTY2FsZUZhY3RvciAqLyAxLjAsIHBhZ2VIZWln
aHQpOworCisgICAgZC0+cGFpbnRlci0+c2NhbGUoem9vbUZhY3RvclgsIHpvb21GYWN0b3JZKTsK
KyAgICBkLT5ncmFwaGljc0NvbnRleHQgPSBzdGQ6OmF1dG9fcHRyPFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dD4obmV3IEdyYXBoaWNzQ29udGV4dChkLT5wYWludGVyLmdldCgpKSk7CisgICAgZC0+
cHJpbnRXaWR0aCA9IHBhZ2VSZWN0LndpZHRoKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKKy8q
IQorICAgIFxzaW5jZSA0LjcKKyAgICBFbmQgcHJpbnRpbmcgb2YgdGhlIGZyYW1lLgorCisgICAg
XHNhIGJlZ2luUHJpbnQoKQorKi8KK3ZvaWQgUVdlYkZyYW1lOjplbmRQcmludCgpCit7CisgICAg
ZC0+Z3JhcGhpY3NDb250ZXh0LnJlc2V0KCk7CisgICAgaWYgKGQtPnByaW50Q29udGV4dC5nZXQo
KSkgeworICAgICAgIGQtPnByaW50Q29udGV4dC0+ZW5kKCk7CisgICAgICAgZC0+cHJpbnRDb250
ZXh0LnJlc2V0KCk7CisgICAgfQorICAgIGlmIChkLT5wYWludGVyLmdldCgpKSB7CisgICAgICAg
IGQtPnBhaW50ZXItPmVuZCgpOworICAgICAgICBkLT5wYWludGVyLnJlc2V0KCk7CisgICAgfQor
fQorCisvKiEKKyAgICBcc2luY2UgNC43IAorICAgIFByaW50IGEgcGFnZSBvZiB0aGUgZnJhbWUu
IE1heSBvbmx5IGJlIGNhbGxlZCBiZXR3ZWVuIGEgXGZuCisgICAgUVdlYkZyYW1lOjpiZWdpblBy
aW50KCkgYW5kIGEgXGZuIFFXZWJGcmFtZTo6ZW5kUHJpbnQoKS4gXGEgaSBpcworICAgIHRoZSBu
dW1iZXIgb2YgdGhlIHBhZ2UgdG8gcHJpbnQsIGFuZCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgXGZu
CisgICAgUVdlYkZyYW1lOjpwcmludGluZ1BhZ2VDb3VudCgpLgorKi8KK3ZvaWQgUVdlYkZyYW1l
OjpzcG9vbFBhZ2UoaW50IGkpIGNvbnN0eworICAgIGlmICghZC0+cHJpbnRDb250ZXh0LmdldCgp
IHx8ICFkLT5ncmFwaGljc0NvbnRleHQuZ2V0KCkpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAo
aSA8IDEgfHwgaSA+IGQtPnByaW50Q29udGV4dC0+cGFnZUNvdW50KCkpIAorICAgICAgICByZXR1
cm47CisgICAgZC0+cHJpbnRDb250ZXh0LT5zcG9vbFBhZ2UoKmQtPmdyYXBoaWNzQ29udGV4dCwg
aSAtIDEsIGQtPnByaW50V2lkdGgpOworfQogCi0gICAgcHJpbnRDb250ZXh0LmNvbXB1dGVQYWdl
UmVjdHMocGFnZVJlY3QsIC8qIGhlYWRlckhlaWdodCAqLyAwLCAvKiBmb290ZXJIZWlnaHQgKi8g
MCwgLyogdXNlclNjYWxlRmFjdG9yICovIDEuMCwgcGFnZUhlaWdodCk7CisvKiEKKyAgICBcc2lu
Y2UgNC43CisgICAgUmV0dXJuIHRoZSBwYWludGVyIHVzZWQgZm9yIHByaW50aW5nLiBNYXkgb25s
eSBiZSBjYWxsZWQgYmV0d2VlbiBhCisgICAgXGZuIFFXZWJGcmFtZTo6YmVnaW5QcmludCgpIGFu
ZCBhIFxmbiBRV2ViRnJhbWU6OmVuZFByaW50KCkuCisqLworUVBhaW50ZXIgKiBRV2ViRnJhbWU6
OnByaW50aW5nUGFpbnRlcigpIHsKKyAgICByZXR1cm4gZC0+cGFpbnRlci5nZXQoKTsKK30KKwor
LyohCisgICAgXHNpbmNlIDQuNyAKKyAgICBSZXR1cm5zIHRoZSBudW1iZXIgb2YgcGFnZXMgb2Yg
dGhlIGZyYW1lIHdoZW4gcHJpbnRlZC4KKyAgICBNYXkgb25seSBiZSBjYWxsZWQgYmV0d2VlbiBh
IFxmbiBRV2ViRnJhbWU6OmJlZ2luUHJpbnQoKSBhbmQgYSBcZm4gUVdlYkZyYW1lOjplbmRQcmlu
dCgpLgorKi8KK2ludCBRV2ViRnJhbWU6OnByaW50aW5nUGFnZUNvdW50KCkgY29uc3QgeworICAg
IHJldHVybiBkLT5wcmludENvbnRleHQuZ2V0KCkgPyBkLT5wcmludENvbnRleHQtPnBhZ2VDb3Vu
dCgpIDogMDsKK30KKworLyohCisgICAgUHJpbnRzIHRoZSBmcmFtZSB0byB0aGUgZ2l2ZW4gXGEg
cHJpbnRlci4KKworICAgIFxzYSByZW5kZXIoKQorKi8KK3ZvaWQgUVdlYkZyYW1lOjpwcmludChR
UHJpbnRlciAqcHJpbnRlcikKK3sKKyAgICBpZiAoIWJlZ2luUHJpbnQocHJpbnRlcikpCisgICAg
ICAgIHJldHVybjsKIAogICAgIGludCBkb2NDb3BpZXM7CiAgICAgaW50IHBhZ2VDb3BpZXM7CkBA
IC0xMTg2LDExICsxMjU1LDExIEBAIHZvaWQgUVdlYkZyYW1lOjpwcmludChRUHJpbnRlciAqcHJp
bnRlcikKIAogICAgIGlmIChmcm9tUGFnZSA9PSAwICYmIHRvUGFnZSA9PSAwKSB7CiAgICAgICAg
IGZyb21QYWdlID0gMTsKLSAgICAgICAgdG9QYWdlID0gcHJpbnRDb250ZXh0LnBhZ2VDb3VudCgp
OworICAgICAgICB0b1BhZ2UgPSBwcmludGluZ1BhZ2VDb3VudCgpOwogICAgIH0KICAgICAvLyBw
YXJhbm9pYSBjaGVjawogICAgIGZyb21QYWdlID0gcU1heCgxLCBmcm9tUGFnZSk7Ci0gICAgdG9Q
YWdlID0gcU1pbihwcmludENvbnRleHQucGFnZUNvdW50KCksIHRvUGFnZSk7CisgICAgdG9QYWdl
ID0gcU1pbihwcmludGluZ1BhZ2VDb3VudCgpLCB0b1BhZ2UpOwogCiAgICAgaWYgKHByaW50ZXIt
PnBhZ2VPcmRlcigpID09IFFQcmludGVyOjpMYXN0UGFnZUZpcnN0KSB7CiAgICAgICAgIGludCB0
bXAgPSBmcm9tUGFnZTsKQEAgLTExOTksOSArMTI2OCw2IEBAIHZvaWQgUVdlYkZyYW1lOjpwcmlu
dChRUHJpbnRlciAqcHJpbnRlcikKICAgICAgICAgYXNjZW5kaW5nID0gZmFsc2U7CiAgICAgfQog
Ci0gICAgcGFpbnRlci5zY2FsZSh6b29tRmFjdG9yWCwgem9vbUZhY3RvclkpOwotICAgIEdyYXBo
aWNzQ29udGV4dCBjdHgoJnBhaW50ZXIpOwotCiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkb2ND
b3BpZXM7ICsraSkgewogICAgICAgICBpbnQgcGFnZSA9IGZyb21QYWdlOwogICAgICAgICB3aGls
ZSAodHJ1ZSkgewpAQCAtMTIzMSw3ICsxMjk3LDcgQEAgdm9pZCBRV2ViRnJhbWU6OnByaW50KFFQ
cmludGVyICpwcmludGVyKQogICAgICAgICAgICAgcHJpbnRlci0+bmV3UGFnZSgpOwogICAgIH0K
IAotICAgIHByaW50Q29udGV4dC5lbmQoKTsKKyAgICBlbmRQcmludCgpOwogfQogI2VuZGlmIC8v
IFFUX05PX1BSSU5URVIKIApJbmRleDogV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5oICAgICAgICAocmV2aXNpb24gNDgzMTQp
CisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5oICAgICAgICAod29ya2luZyBjb3B5KQpAQCAt
MTkzLDEwICsxOTMsMTggQEAgcHVibGljOgogCiAgICAgUVdlYlNlY3VyaXR5T3JpZ2luIHNlY3Vy
aXR5T3JpZ2luKCkgY29uc3Q7CiAKKyNpZm5kZWYgUVRfTk9fUFJJTlRFUgorICAgIGJvb2wgYmVn
aW5QcmludChRUHJpbnRlciAqcHJpbnRlcik7CisgICAgdm9pZCBlbmRQcmludCgpOworICAgIHZv
aWQgc3Bvb2xQYWdlKGludCBpKSBjb25zdDsKKyAgICBRUGFpbnRlciAqIHByaW50aW5nUGFpbnRl
cigpOworICAgIGludCBwcmludGluZ1BhZ2VDb3VudCgpIGNvbnN0OworI2VuZGlmCisKIHB1Ymxp
YyBRX1NMT1RTOgogICAgIFFWYXJpYW50IGV2YWx1YXRlSmF2YVNjcmlwdChjb25zdCBRU3RyaW5n
JiBzY3JpcHRTb3VyY2UpOwogI2lmbmRlZiBRVF9OT19QUklOVEVSCi0gICAgdm9pZCBwcmludChR
UHJpbnRlciAqcHJpbnRlcikgY29uc3Q7CisgICAgdm9pZCBwcmludChRUHJpbnRlciAqcHJpbnRl
cik7CiAjZW5kaWYKIAogUV9TSUdOQUxTOgpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWVf
cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYmZyYW1lX3AuaCAgICAgICAgKHJl
dmlzaW9uIDQ4MzE0KQorKysgV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWVfcC5oICAgICAgICAod29y
a2luZyBjb3B5KQpAQCAtMzAsNiArMzAsOSBAQAogI2luY2x1ZGUgInF3ZWJlbGVtZW50LmgiCiAj
aW5jbHVkZSAid3RmL1JlZlB0ci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSA8cXBh
aW50ZXIuaD4KKyNpbmNsdWRlICJQcmludENvbnRleHQuaCIKKyNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEZyYW1lTG9hZGVyQ2xp
ZW50UXQ7CkBAIC05NSw2ICs5OCwxMSBAQCBwdWJsaWM6CiAgICAgaW50IG1hcmdpbldpZHRoOwog
ICAgIGludCBtYXJnaW5IZWlnaHQ7CiAgICAgYm9vbCBjbGlwUmVuZGVyVG9WaWV3cG9ydDsKKwor
ICAgIHN0ZDo6YXV0b19wdHI8V2ViQ29yZTo6UHJpbnRDb250ZXh0PiBwcmludENvbnRleHQ7Cisg
ICAgc3RkOjphdXRvX3B0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+IGdyYXBoaWNzQ29udGV4
dDsKKyAgICBzdGQ6OmF1dG9fcHRyPFFQYWludGVyPiBwYWludGVyOworICAgIGZsb2F0IHByaW50
V2lkdGg7CiB9OwogCiBjbGFzcyBRV2ViSGl0VGVzdFJlc3VsdFByaXZhdGUgewo=
</data>
<flag name="review"
          id="20608"
          type_id="1"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39514</attachid>
            <date>2009-09-12 06:44:46 -0700</date>
            <delta_ts>2011-01-20 06:25:22 -0800</delta_ts>
            <desc>My solution</desc>
            <filename>print-control-2.patch</filename>
            <type>text/plain</type>
            <size>8156</size>
            <attacher name="Jakob Truelsen">antialize</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNDgzMzMpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMDktMDktMTIgIEpha29iIFRydWVsc2VuICA8YW50aWFs
aXplQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY1ODQKKyAg
ICAgICAgQWRkZWQgY2xhc3MgUVdlYlByaW50ZXIgdG8gYWxsb3cgbW9yZSBjb250cm9sZSB3aGVu
IHByaW50aW5nIHdlYnBhZ2VzLgorCisgICAgICAgICogQXBpL3F3ZWJmcmFtZS5jcHA6CisgICAg
ICAgIChRV2ViUHJpbnRlckJlZ2luQ2FsbGVyOjpRV2ViUHJpbnRlckJlZ2luQ2FsbGVyKToKKyAg
ICAgICAgKFFXZWJQcmludGVyUHJpdmF0ZTo6UVdlYlByaW50ZXJQcml2YXRlKToKKyAgICAgICAg
KFFXZWJQcmludGVyUHJpdmF0ZTo6flFXZWJQcmludGVyUHJpdmF0ZSk6CisgICAgICAgIChRV2Vi
UHJpbnRlcjo6UVdlYlByaW50ZXIpOgorICAgICAgICAoUVdlYlByaW50ZXI6On5RV2ViUHJpbnRl
cik6CisgICAgICAgIChRV2ViUHJpbnRlcjo6c3Bvb2xQYWdlKToKKyAgICAgICAgKFFXZWJQcmlu
dGVyOjpwYWdlQ291bnQpOgorICAgICAgICAoUVdlYlByaW50ZXI6OnBhaW50ZXIpOgorICAgICAg
ICAoUVdlYkZyYW1lOjpwcmludCk6CisgICAgICAgICogQXBpL3F3ZWJmcmFtZS5oOgorICAgICAg
ICAqIEFwaS9xd2ViZnJhbWVfcC5oOgorCiAyMDA5LTA5LTExICBEYXZpZCBCb2RkaWUgIDxkYm9k
ZGllQHRyb2xsdGVjaC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4u
CkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L3F0L0FwaS9xd2ViZnJhbWUuY3BwCShyZXZpc2lvbiA0ODMxNCkKKysrIFdlYktpdC9xdC9BcGkv
cXdlYmZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg1LDYgKzE4NSw4NSBAQCB2b2lkIFFX
RUJLSVRfRVhQT1JUIHF0X2RydF9nYXJiYWdlQ29sbGVjCiAgICAgZ2NDb250cm9sbGVyKCkuZ2Fy
YmFnZUNvbGxlY3RPbkFsdGVybmF0ZVRocmVhZEZvckRlYnVnZ2luZyh3YWl0VW50aWxEb25lKTsK
IH0KIAorCisjaWZuZGVmIFFUX05PX1BSSU5URVIKKworUVdlYlByaW50ZXJCZWdpbkNhbGxlcjo6
UVdlYlByaW50ZXJCZWdpbkNhbGxlcihRUGFpbnRlciAmcGFpbnRlciwgUVByaW50ZXIgKnByaW50
ZXIpCit7CisgICAgcGFpbnRlci5iZWdpbihwcmludGVyKTsKK30KKworUVdlYlByaW50ZXJQcml2
YXRlOjpRV2ViUHJpbnRlclByaXZhdGUoY29uc3QgUVdlYkZyYW1lICpmcmFtZSwgUVByaW50ZXIg
KnByaW50ZXIpCisgICAgOiBwcmludENvbnRleHQoZnJhbWUtPmQtPmZyYW1lKQorICAgICwgYmVn
aW5DYWxsZXIocGFpbnRlciwgcHJpbnRlcikKKyAgICAsIGdyYXBoaWNzQ29udGV4dCgmcGFpbnRl
cikKK3sKKyAgICBjb25zdCBxcmVhbCB6b29tRmFjdG9yWCA9IHByaW50ZXItPmxvZ2ljYWxEcGlY
KCkgLyBxdF9kZWZhdWx0RHBpKCk7CisgICAgY29uc3QgcXJlYWwgem9vbUZhY3RvclkgPSBwcmlu
dGVyLT5sb2dpY2FsRHBpWSgpIC8gcXRfZGVmYXVsdERwaSgpOworICAgIFFSZWN0IHFwcmludGVy
UmVjdCA9IHByaW50ZXItPnBhZ2VSZWN0KCk7CisgICAgSW50UmVjdCBwYWdlUmVjdCgwLCAwLAor
ICAgICAgICAgICAgICAgICAgICAgaW50KHFwcmludGVyUmVjdC53aWR0aCgpIC8gem9vbUZhY3Rv
clgpLAorICAgICAgICAgICAgICAgICAgICAgaW50KHFwcmludGVyUmVjdC5oZWlnaHQoKSAvIHpv
b21GYWN0b3JZKSk7CisgICAgCisgICAgcHJpbnRDb250ZXh0LmJlZ2luKHBhZ2VSZWN0LndpZHRo
KCkpOworICAgIGZsb2F0IHBhZ2VIZWlnaHQgPSAwOworICAgIHByaW50Q29udGV4dC5jb21wdXRl
UGFnZVJlY3RzKHBhZ2VSZWN0LCAvKiBoZWFkZXJIZWlnaHQgKi8gMCwgLyogZm9vdGVySGVpZ2h0
ICovIDAsIC8qIHVzZXJTY2FsZUZhY3RvciAqLyAxLjAsIHBhZ2VIZWlnaHQpOworICAgIAorICAg
IHBhaW50ZXIuc2NhbGUoem9vbUZhY3RvclgsIHpvb21GYWN0b3JZKTsKKyAgICBwcmludFdpZHRo
ID0gcGFnZVJlY3Qud2lkdGgoKTsKK30KKworUVdlYlByaW50ZXJQcml2YXRlOjp+UVdlYlByaW50
ZXJQcml2YXRlKCkgCit7CisgICAgcHJpbnRDb250ZXh0LmVuZCgpOworICAgIHBhaW50ZXIuZW5k
KCk7Cit9CisKKy8qIQorICAgIFxjbGFzcyBRV2ViUHJpbnRlcgorICAgIFxzaW5jZSA0LjcKKyAg
ICBcYnJpZWYgVGhlIFFXZWJQcmludGVyIGNvbnRyb2xzIHByaW50aW5nIG9mIGEgXGx7UVdlYkZy
YW1lOjp9CisKKyAgICBcaW5tb2R1bGUgUXRXZWJLaXQKKworICAgIFxzYSBRV2ViRnJhbWUKKyov
CitRV2ViUHJpbnRlcjo6UVdlYlByaW50ZXIoY29uc3QgUVdlYkZyYW1lICpmcmFtZSwgUVByaW50
ZXIgKnByaW50ZXIpCisgICAgOiBkKG5ldyBRV2ViUHJpbnRlclByaXZhdGUoZnJhbWUsIHByaW50
ZXIpKQore30KKworUVdlYlByaW50ZXI6On5RV2ViUHJpbnRlcigpIAoreworICAgIGRlbGV0ZSBk
OyAKK30KKworLyohCisgICAgUHJpbnQgYSBwYWdlIG9mIHRoZSBmcmFtZS4gXGEgaSBpcyAgdGhl
IG51bWJlciBvZiB0aGUgcGFnZSB0byBwcmludCwgCisgICAgYW5kIG11c3QgYmUgYmV0d2VlbiAx
IGFuZCBcZm4gUVdlYlByaW50ZXI6OnBhZ2VDb3VudCgpIC4KKyovCit2b2lkIFFXZWJQcmludGVy
OjpzcG9vbFBhZ2UoaW50IGkpIGNvbnN0Cit7CisgICAgaWYgKGkgPCAxIHx8IGkgPiBkLT5wcmlu
dENvbnRleHQucGFnZUNvdW50KCkpIAorICAgICAgICByZXR1cm47CisgICAgZC0+cHJpbnRDb250
ZXh0LnNwb29sUGFnZShkLT5ncmFwaGljc0NvbnRleHQsIGkgLSAxLCBkLT5wcmludFdpZHRoKTsK
K30KKworLyohCisgICAgUmV0dXJucyB0aGUgbnVtYmVyIG9mIHBhZ2VzIG9mIHRoZSBmcmFtZSB3
aGVuIHByaW50ZWQuCisqLworaW50IFFXZWJQcmludGVyOjpwYWdlQ291bnQoKSBjb25zdAorewor
ICAgIHJldHVybiBkLT5wcmludENvbnRleHQucGFnZUNvdW50KCk7Cit9CisKKy8qIQorICAgIFJl
dHVybiB0aGUgcGFpbnRlciB1c2VkIGZvciBwcmludGluZy4KKyovCitRUGFpbnRlciAqIFFXZWJQ
cmludGVyOjpwYWludGVyKCkgeworICAgIHJldHVybiAmZC0+cGFpbnRlcjsKK30KKyNlbmRpZiAv
L1FUX05PX1BSSU5URVIKKwogUVdlYkZyYW1lRGF0YTo6UVdlYkZyYW1lRGF0YShXZWJDb3JlOjpQ
YWdlKiBwYXJlbnRQYWdlLCBXZWJDb3JlOjpGcmFtZSogcGFyZW50RnJhbWUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJG
cmFtZUVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYkNvcmU6
OlN0cmluZyYgZnJhbWVOYW1lKQpAQCAtMTE1MCwyNiArMTIyOSw3IEBAIGJvb2wgUVdlYkZyYW1l
OjpldmVudChRRXZlbnQgKmUpCiAqLwogdm9pZCBRV2ViRnJhbWU6OnByaW50KFFQcmludGVyICpw
cmludGVyKSBjb25zdAogewotICAgIFFQYWludGVyIHBhaW50ZXI7Ci0gICAgaWYgKCFwYWludGVy
LmJlZ2luKHByaW50ZXIpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjb25zdCBxcmVhbCB6b29t
RmFjdG9yWCA9IHByaW50ZXItPmxvZ2ljYWxEcGlYKCkgLyBxdF9kZWZhdWx0RHBpKCk7Ci0gICAg
Y29uc3QgcXJlYWwgem9vbUZhY3RvclkgPSBwcmludGVyLT5sb2dpY2FsRHBpWSgpIC8gcXRfZGVm
YXVsdERwaSgpOwotCi0gICAgUHJpbnRDb250ZXh0IHByaW50Q29udGV4dChkLT5mcmFtZSk7Ci0g
ICAgZmxvYXQgcGFnZUhlaWdodCA9IDA7Ci0KLSAgICBRUmVjdCBxcHJpbnRlclJlY3QgPSBwcmlu
dGVyLT5wYWdlUmVjdCgpOwotCi0gICAgSW50UmVjdCBwYWdlUmVjdCgwLCAwLAotICAgICAgICAg
ICAgICAgICAgICAgaW50KHFwcmludGVyUmVjdC53aWR0aCgpIC8gem9vbUZhY3RvclgpLAotICAg
ICAgICAgICAgICAgICAgICAgaW50KHFwcmludGVyUmVjdC5oZWlnaHQoKSAvIHpvb21GYWN0b3JZ
KSk7Ci0KLSAgICBwcmludENvbnRleHQuYmVnaW4ocGFnZVJlY3Qud2lkdGgoKSk7Ci0KLSAgICBw
cmludENvbnRleHQuY29tcHV0ZVBhZ2VSZWN0cyhwYWdlUmVjdCwgLyogaGVhZGVySGVpZ2h0ICov
IDAsIC8qIGZvb3RlckhlaWdodCAqLyAwLCAvKiB1c2VyU2NhbGVGYWN0b3IgKi8gMS4wLCBwYWdl
SGVpZ2h0KTsKLQorICAgIFFXZWJQcmludGVyIHAodGhpcywgcHJpbnRlcik7CiAgICAgaW50IGRv
Y0NvcGllczsKICAgICBpbnQgcGFnZUNvcGllczsKICAgICBpZiAocHJpbnRlci0+Y29sbGF0ZUNv
cGllcygpKSB7CkBAIC0xMTg2LDExICsxMjQ2LDExIEBAIHZvaWQgUVdlYkZyYW1lOjpwcmludChR
UHJpbnRlciAqcHJpbnRlcikKIAogICAgIGlmIChmcm9tUGFnZSA9PSAwICYmIHRvUGFnZSA9PSAw
KSB7CiAgICAgICAgIGZyb21QYWdlID0gMTsKLSAgICAgICAgdG9QYWdlID0gcHJpbnRDb250ZXh0
LnBhZ2VDb3VudCgpOworICAgICAgICB0b1BhZ2UgPSBwLnBhZ2VDb3VudCgpOwogICAgIH0KICAg
ICAvLyBwYXJhbm9pYSBjaGVjawogICAgIGZyb21QYWdlID0gcU1heCgxLCBmcm9tUGFnZSk7Ci0g
ICAgdG9QYWdlID0gcU1pbihwcmludENvbnRleHQucGFnZUNvdW50KCksIHRvUGFnZSk7CisgICAg
dG9QYWdlID0gcU1pbihwLnBhZ2VDb3VudCgpLCB0b1BhZ2UpOwogCiAgICAgaWYgKHByaW50ZXIt
PnBhZ2VPcmRlcigpID09IFFQcmludGVyOjpMYXN0UGFnZUZpcnN0KSB7CiAgICAgICAgIGludCB0
bXAgPSBmcm9tUGFnZTsKQEAgLTExOTgsMjAgKzEyNTgsMTUgQEAgdm9pZCBRV2ViRnJhbWU6OnBy
aW50KFFQcmludGVyICpwcmludGVyKQogICAgICAgICB0b1BhZ2UgPSB0bXA7CiAgICAgICAgIGFz
Y2VuZGluZyA9IGZhbHNlOwogICAgIH0KLQotICAgIHBhaW50ZXIuc2NhbGUoem9vbUZhY3Rvclgs
IHpvb21GYWN0b3JZKTsKLSAgICBHcmFwaGljc0NvbnRleHQgY3R4KCZwYWludGVyKTsKLQogICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgZG9jQ29waWVzOyArK2kpIHsKICAgICAgICAgaW50IHBhZ2Ug
PSBmcm9tUGFnZTsKICAgICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgICAgIGZvciAoaW50
IGogPSAwOyBqIDwgcGFnZUNvcGllczsgKytqKSB7CiAgICAgICAgICAgICAgICAgaWYgKHByaW50
ZXItPnByaW50ZXJTdGF0ZSgpID09IFFQcmludGVyOjpBYm9ydGVkCiAgICAgICAgICAgICAgICAg
ICAgIHx8IHByaW50ZXItPnByaW50ZXJTdGF0ZSgpID09IFFQcmludGVyOjpFcnJvcikgewotICAg
ICAgICAgICAgICAgICAgICBwcmludENvbnRleHQuZW5kKCk7CiAgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcHJpbnRDb250ZXh0
LnNwb29sUGFnZShjdHgsIHBhZ2UgLSAxLCBwYWdlUmVjdC53aWR0aCgpKTsKKyAgICAgICAgICAg
ICAgICBwLnNwb29sUGFnZShwYWdlKTsKICAgICAgICAgICAgICAgICBpZiAoaiA8IHBhZ2VDb3Bp
ZXMgLSAxKQogICAgICAgICAgICAgICAgICAgICBwcmludGVyLT5uZXdQYWdlKCk7CiAgICAgICAg
ICAgICB9CkBAIC0xMjMwLDggKzEyODUsNiBAQCB2b2lkIFFXZWJGcmFtZTo6cHJpbnQoUVByaW50
ZXIgKnByaW50ZXIpCiAgICAgICAgIGlmICggaSA8IGRvY0NvcGllcyAtIDEpCiAgICAgICAgICAg
ICBwcmludGVyLT5uZXdQYWdlKCk7CiAgICAgfQotCi0gICAgcHJpbnRDb250ZXh0LmVuZCgpOwog
fQogI2VuZGlmIC8vIFFUX05PX1BSSU5URVIKIApJbmRleDogV2ViS2l0L3F0L0FwaS9xd2ViZnJh
bWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5oCShyZXZpc2lvbiA0
ODMxNCkKKysrIFdlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0
LDYgKzQ0LDkgQEAgY2xhc3MgUVByaW50ZXI7CiBRVF9FTkRfTkFNRVNQQUNFCiAKIGNsYXNzIFFX
ZWJOZXR3b3JrUmVxdWVzdDsKKyNpZm5kZWYgUVRfTk9fUFJJTlRFUgorY2xhc3MgUVdlYlByaW50
ZXJQcml2YXRlOworI2VuZGlmCiBjbGFzcyBRV2ViRnJhbWVQcml2YXRlOwogY2xhc3MgUVdlYlBh
Z2U7CiBjbGFzcyBRV2ViSGl0VGVzdFJlc3VsdDsKQEAgLTEwMSw2ICsxMDQsMTkgQEAgcHJpdmF0
ZToKICAgICBmcmllbmQgY2xhc3MgUVdlYlBhZ2U7CiB9OwogCisjaWZuZGVmIFFUX05PX1BSSU5U
RVIKK2NsYXNzIFFXRUJLSVRfRVhQT1JUIFFXZWJQcmludGVyIHsKK3B1YmxpYzoKKyAgICBRV2Vi
UHJpbnRlcihjb25zdCBRV2ViRnJhbWUgKiBmcmFtZSwgUVByaW50ZXIgKiBwcmludGVyKTsKKyAg
ICB+UVdlYlByaW50ZXIoKTsKKyAgICB2b2lkIHNwb29sUGFnZShpbnQgaSkgY29uc3Q7CisgICAg
UVBhaW50ZXIgKiBwYWludGVyKCk7CisgICAgaW50IHBhZ2VDb3VudCgpIGNvbnN0OworcHJpdmF0
ZToKKyAgICBRV2ViUHJpbnRlclByaXZhdGUgKiBkOworfTsKKyNlbmRpZgorCiBjbGFzcyBRV0VC
S0lUX0VYUE9SVCBRV2ViRnJhbWUgOiBwdWJsaWMgUU9iamVjdCB7CiAgICAgUV9PQkpFQ1QKICAg
ICBRX1BST1BFUlRZKHFyZWFsIHRleHRTaXplTXVsdGlwbGllciBSRUFEIHRleHRTaXplTXVsdGlw
bGllciBXUklURSBzZXRUZXh0U2l6ZU11bHRpcGxpZXIgREVTSUdOQUJMRSBmYWxzZSkKQEAgLTIx
OSw2ICsyMzUsNyBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBRV2ViUGFnZTsKICAgICBm
cmllbmQgY2xhc3MgUVdlYlBhZ2VQcml2YXRlOwogICAgIGZyaWVuZCBjbGFzcyBRV2ViRnJhbWVQ
cml2YXRlOworICAgIGZyaWVuZCBjbGFzcyBRV2ViUHJpbnRlclByaXZhdGU7CiAgICAgZnJpZW5k
IGNsYXNzIFdlYkNvcmU6OldpZGdldFByaXZhdGU7CiAgICAgZnJpZW5kIGNsYXNzIFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50UXQ7CiAgICAgZnJpZW5kIGNsYXNzIFdlYkNvcmU6OkNocm9tZUNs
aWVudFF0OwpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWVfcC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9xdC9BcGkvcXdlYmZyYW1lX3AuaAkocmV2aXNpb24gNDgzMTQpCisrKyBXZWJLaXQv
cXQvQXBpL3F3ZWJmcmFtZV9wLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDkgQEAKICNp
bmNsdWRlICJxd2ViZWxlbWVudC5oIgogI2luY2x1ZGUgInd0Zi9SZWZQdHIuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgPHFwYWludGVyLmg+CisjaW5jbHVkZSAiUHJpbnRDb250ZXh0
LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBjbGFzcyBGcmFtZUxvYWRlckNsaWVudFF0OwpAQCAtNTgsNiArNjEsMjIgQEAgcHVibGlj
OgogICAgIGludCBtYXJnaW5IZWlnaHQ7CiB9OwogCitzdHJ1Y3QgUVdlYlByaW50ZXJCZWdpbkNh
bGxlciB7CisgICAgUVdlYlByaW50ZXJCZWdpbkNhbGxlcihRUGFpbnRlciAmIHBhaW50ZXIsIFFQ
cmludGVyICogcHJpbnRlcik7IAorfTsKKworY2xhc3MgUVdlYlByaW50ZXJQcml2YXRlIHsKK3B1
YmxpYzoKKyAgICBXZWJDb3JlOjpQcmludENvbnRleHQgcHJpbnRDb250ZXh0OworICAgIFFQYWlu
dGVyIHBhaW50ZXI7CisgICAgUVdlYlByaW50ZXJCZWdpbkNhbGxlciBiZWdpbkNhbGxlcjsKKyAg
ICBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0OworICAgIGludCBwcmlu
dFdpZHRoOworICAgIAorICAgIFFXZWJQcmludGVyUHJpdmF0ZShjb25zdCBRV2ViRnJhbWUgKiBm
cmFtZSwgUVByaW50ZXIgKnByaW50ZXIpOworICAgIH5RV2ViUHJpbnRlclByaXZhdGUoKTsKK307
CisKIGNsYXNzIFFXZWJGcmFtZVByaXZhdGUgewogcHVibGljOgogICAgIFFXZWJGcmFtZVByaXZh
dGUoKQo=
</data>
<flag name="review"
          id="20609"
          type_id="1"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79593</attachid>
            <date>2011-01-20 06:25:22 -0800</date>
            <delta_ts>2011-01-20 08:01:18 -0800</delta_ts>
            <desc>Patch to try do turn this bug alive again</desc>
            <filename>0001-2011-01-20-Diego-Gonzalez-diegohcg-webkit.org-Jakob-T.diff</filename>
            <type>text/plain</type>
            <size>10396</size>
            <attacher name="Diego Gonzalez">diegohcg</attacher>
            
              <data encoding="base64">RnJvbSAyMDI3OGNlNmQ0MzdmNjY1ZjgzYzZhMjQ5OGI5YjgzZTNlN2E3NTUxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBHb256YWxleiA8ZGllZ29oY2dAd2Via2l0Lm9yZz4K
RGF0ZTogVGh1LCAyMCBKYW4gMjAxMSAxMDoxOTozMSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIDIw
MTEtMDEtMjAgIERpZWdvIEdvbnphbGV6ICA8ZGllZ29oY2dAd2Via2l0Lm9yZz4gLCBKYWtvYiBU
cnVlbHNlbiA8YW50aWFsaXplQGdtYWlsLmNvbT4KClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgoKW1F0XSBQcm92aWRlIGEgd2F5IGZvciBiZXR0ZXIgY29udHJvbCBvdmVyIHRoZSBwcm9jZXNz
IG9mIHByaW50aW5nCmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjU4
NAoKKiBBcGkvcXdlYmZyYW1lLmNwcDoKKFFXZWJQcmludGVyUHJpdmF0ZTo6UVdlYlByaW50ZXJQ
cml2YXRlKToKKFFXZWJQcmludGVyUHJpdmF0ZTo6flFXZWJQcmludGVyUHJpdmF0ZSk6CihRV2Vi
UHJpbnRlcjo6UVdlYlByaW50ZXIpOgooUVdlYlByaW50ZXI6On5RV2ViUHJpbnRlcik6CihRV2Vi
UHJpbnRlcjo6c3Bvb2xQYWdlKToKKFFXZWJQcmludGVyOjpwYWdlQ291bnQpOgooUVdlYkZyYW1l
OjpwcmludCk6CiogQXBpL3F3ZWJmcmFtZS5oOgoqIEFwaS9xd2ViZnJhbWVfcC5oOgoqIHRlc3Rz
L3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcDoKLS0tCiBTb3VyY2UvV2ViS2l0L3F0L0FwaS9x
d2ViZnJhbWUuY3BwICAgICAgICAgICAgICAgICB8ICAxMDIgKysrKysrKysrKysrKystLS0tLS0K
IFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5oICAgICAgICAgICAgICAgICAgIHwgICAy
MSArKysrCiBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWVfcC5oICAgICAgICAgICAgICAg
ICB8ICAgMTQgKysrCiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMTkgKysrKwogU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0
X3F3ZWJmcmFtZS5jcHAgfCAgIDIzICsrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDE1MSBpbnNlcnRp
b25zKCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0Fw
aS9xd2ViZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAppbmRl
eCA5Yzg5YTRjLi4zYTlkZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vi
ZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKQEAgLTIx
Niw2ICsyMTYsNzUgQEAgc3RhdGljIGlubGluZSBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeSBj
YWNoZUxvYWRDb250cm9sVG9DYWNoZVBvbGljeSh1aW50IGNhY2gKICAgICByZXR1cm4gV2ViQ29y
ZTo6VXNlUHJvdG9jb2xDYWNoZVBvbGljeTsKIH0KIAorCisjaWZuZGVmIFFUX05PX1BSSU5URVIK
K1FXZWJQcmludGVyUHJpdmF0ZTo6UVdlYlByaW50ZXJQcml2YXRlKGNvbnN0IFFXZWJGcmFtZSog
ZnJhbWUsIFFQcmludGVyKiBwcmludGVyKQorICAgIDogcGFpbnRlcihuZXcgUVBhaW50ZXIocHJp
bnRlcikpCisgICAgLCBwcmludENvbnRleHQoZnJhbWUtPmQtPmZyYW1lKQorICAgICwgZ3JhcGhp
Y3NDb250ZXh0KHBhaW50ZXIpCit7CisgICAgY29uc3QgcXJlYWwgem9vbUZhY3RvclggPSBwcmlu
dGVyLT5sb2dpY2FsRHBpWCgpIC8gcXRfZGVmYXVsdERwaSgpOworICAgIGNvbnN0IHFyZWFsIHpv
b21GYWN0b3JZID0gcHJpbnRlci0+bG9naWNhbERwaVkoKSAvIHF0X2RlZmF1bHREcGkoKTsKKyAg
ICBRUmVjdCBxcHJpbnRlclJlY3QgPSBwcmludGVyLT5wYWdlUmVjdCgpOworICAgIEludFJlY3Qg
cGFnZVJlY3QoMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgIGludChxcHJpbnRlclJlY3Qud2lk
dGgoKSAvIHpvb21GYWN0b3JYKSwKKyAgICAgICAgICAgICAgICAgICAgIGludChxcHJpbnRlclJl
Y3QuaGVpZ2h0KCkgLyB6b29tRmFjdG9yWSkpOworCisgICAgcHJpbnRDb250ZXh0LmJlZ2luKHBh
Z2VSZWN0LndpZHRoKCkpOworICAgIGZsb2F0IHBhZ2VIZWlnaHQgPSAwOworICAgIHByaW50Q29u
dGV4dC5jb21wdXRlUGFnZVJlY3RzKHBhZ2VSZWN0LCAvKiBoZWFkZXJIZWlnaHQgKi8gMCwgLyog
Zm9vdGVySGVpZ2h0ICovIDAsIC8qIHVzZXJTY2FsZUZhY3RvciAqLyAxLjAsIHBhZ2VIZWlnaHQp
OworCisgICAgcGFpbnRlci0+c2NhbGUoem9vbUZhY3RvclgsIHpvb21GYWN0b3JZKTsKKyAgICBw
cmludFdpZHRoID0gcGFnZVJlY3Qud2lkdGgoKTsKK30KKworUVdlYlByaW50ZXJQcml2YXRlOjp+
UVdlYlByaW50ZXJQcml2YXRlKCkKK3sKKyAgICBwcmludENvbnRleHQuZW5kKCk7CisgICAgZGVs
ZXRlIHBhaW50ZXI7Cit9CisKKy8qIQorICAgIFxjbGFzcyBRV2ViUHJpbnRlcgorICAgIFxzaW5j
ZSA0LjgKKyAgICBcYnJpZWYgVGhlIFFXZWJQcmludGVyIGNvbnRyb2xzIHByaW50aW5nIG9mIGEg
XGx7UVdlYkZyYW1lOjp9CisKKyAgICBUaGlzIGNsYXNzIGlzIG9ubHkgdXNlZCBpbnRlcm5hbGx5
IGJ5IFFXZWJGcmFtZS4KKworICAgIFxpbm1vZHVsZSBRdFdlYktpdAorCisgICAgXHNhIFFXZWJG
cmFtZQorKi8KK1FXZWJQcmludGVyOjpRV2ViUHJpbnRlcihjb25zdCBRV2ViRnJhbWUqIGZyYW1l
LCBRUHJpbnRlciogcHJpbnRlcikKKyAgICA6IGQobmV3IFFXZWJQcmludGVyUHJpdmF0ZShmcmFt
ZSwgcHJpbnRlcikpCit7fQorCitRV2ViUHJpbnRlcjo6flFXZWJQcmludGVyKCkKK3sKKyAgICBk
ZWxldGUgZDsKK30KKworLyohCisgICAgUHJpbnQgYSBwYWdlIG9mIHRoZSBmcmFtZS4gXGEgcGFn
ZSBpcyAgdGhlIG51bWJlciBvZiB0aGUgcGFnZSB0byBwcmludCwKKyAgICBhbmQgbXVzdCBiZSBi
ZXR3ZWVuIDEgYW5kIFxmbiBRV2ViUHJpbnRlcjo6cGFnZUNvdW50KCkgLgorKi8KK3ZvaWQgUVdl
YlByaW50ZXI6OnNwb29sUGFnZShpbnQgcGFnZSkgY29uc3QKK3sKKyAgICBpZiAocGFnZSA8IDEg
fHwgcGFnZSA+IGQtPnByaW50Q29udGV4dC5wYWdlQ291bnQoKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIGQtPnByaW50Q29udGV4dC5zcG9vbFBhZ2UoZC0+Z3JhcGhpY3NDb250ZXh0LCBwYWdlIC0g
MSwgZC0+cHJpbnRXaWR0aCk7Cit9CisKKy8qIQorICAgIFJldHVybnMgdGhlIG51bWJlciBvZiBw
YWdlcyBvZiB0aGUgZnJhbWUgd2hlbiBwcmludGVkLgorKi8KK2ludCBRV2ViUHJpbnRlcjo6cGFn
ZUNvdW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZC0+cHJpbnRDb250ZXh0LnBhZ2VDb3VudCgp
OworfQorI2VuZGlmIC8vIFFUX05PX1BSSU5URVIKKworCiBRV2ViRnJhbWVEYXRhOjpRV2ViRnJh
bWVEYXRhKFdlYkNvcmU6OlBhZ2UqIHBhcmVudFBhZ2UsIFdlYkNvcmU6OkZyYW1lKiBwYXJlbnRG
cmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViQ29yZTo6SFRNTEZyYW1lT3du
ZXJFbGVtZW50KiBvd25lckZyYW1lRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSkKQEAgLTE0MTQsMjUgKzE0ODMsNyBAQCBi
b29sIFFXZWJGcmFtZTo6ZXZlbnQoUUV2ZW50ICplKQogKi8KIHZvaWQgUVdlYkZyYW1lOjpwcmlu
dChRUHJpbnRlciAqcHJpbnRlcikgY29uc3QKIHsKLSAgICBRUGFpbnRlciBwYWludGVyOwotICAg
IGlmICghcGFpbnRlci5iZWdpbihwcmludGVyKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY29u
c3QgcXJlYWwgem9vbUZhY3RvclggPSAocXJlYWwpcHJpbnRlci0+bG9naWNhbERwaVgoKSAvIHF0
X2RlZmF1bHREcGkoKTsKLSAgICBjb25zdCBxcmVhbCB6b29tRmFjdG9yWSA9IChxcmVhbClwcmlu
dGVyLT5sb2dpY2FsRHBpWSgpIC8gcXRfZGVmYXVsdERwaSgpOwotCi0gICAgUHJpbnRDb250ZXh0
IHByaW50Q29udGV4dChkLT5mcmFtZSk7Ci0gICAgZmxvYXQgcGFnZUhlaWdodCA9IDA7Ci0KLSAg
ICBRUmVjdCBxcHJpbnRlclJlY3QgPSBwcmludGVyLT5wYWdlUmVjdCgpOwotCi0gICAgSW50UmVj
dCBwYWdlUmVjdCgwLCAwLAotICAgICAgICAgICAgICAgICAgICAgaW50KHFwcmludGVyUmVjdC53
aWR0aCgpIC8gem9vbUZhY3RvclgpLAotICAgICAgICAgICAgICAgICAgICAgaW50KHFwcmludGVy
UmVjdC5oZWlnaHQoKSAvIHpvb21GYWN0b3JZKSk7Ci0KLSAgICBwcmludENvbnRleHQuYmVnaW4o
cGFnZVJlY3Qud2lkdGgoKSk7Ci0KLSAgICBwcmludENvbnRleHQuY29tcHV0ZVBhZ2VSZWN0cyhw
YWdlUmVjdCwgLyogaGVhZGVySGVpZ2h0ICovIDAsIC8qIGZvb3RlckhlaWdodCAqLyAwLCAvKiB1
c2VyU2NhbGVGYWN0b3IgKi8gMS4wLCBwYWdlSGVpZ2h0KTsKKyAgICBRV2ViUHJpbnRlciBwKHRo
aXMsIHByaW50ZXIpOwogCiAgICAgaW50IGRvY0NvcGllczsKICAgICBpbnQgcGFnZUNvcGllczsK
QEAgLTE0NTAsMTEgKzE1MDEsMTEgQEAgdm9pZCBRV2ViRnJhbWU6OnByaW50KFFQcmludGVyICpw
cmludGVyKSBjb25zdAogCiAgICAgaWYgKGZyb21QYWdlID09IDAgJiYgdG9QYWdlID09IDApIHsK
ICAgICAgICAgZnJvbVBhZ2UgPSAxOwotICAgICAgICB0b1BhZ2UgPSBwcmludENvbnRleHQucGFn
ZUNvdW50KCk7CisgICAgICAgIHRvUGFnZSA9IHAucGFnZUNvdW50KCk7CiAgICAgfQogICAgIC8v
IHBhcmFub2lhIGNoZWNrCiAgICAgZnJvbVBhZ2UgPSBxTWF4KDEsIGZyb21QYWdlKTsKLSAgICB0
b1BhZ2UgPSBxTWluKHN0YXRpY19jYXN0PGludD4ocHJpbnRDb250ZXh0LnBhZ2VDb3VudCgpKSwg
dG9QYWdlKTsKKyAgICB0b1BhZ2UgPSBxTWluKHN0YXRpY19jYXN0PGludD4ocC5wYWdlQ291bnQo
KSksIHRvUGFnZSk7CiAgICAgaWYgKHRvUGFnZSA8IGZyb21QYWdlKSB7CiAgICAgICAgIC8vIGlm
IHRoZSB1c2VyIGVudGVyZWQgYSBwYWdlIHJhbmdlIG91dHNpZGUgdGhlIGFjdHVhbCBudW1iZXIK
ICAgICAgICAgLy8gb2YgcHJpbnRhYmxlIHBhZ2VzLCBqdXN0IHJldHVybgpAQCAtMTQ2OCwxOSAr
MTUxOSwxNiBAQCB2b2lkIFFXZWJGcmFtZTo6cHJpbnQoUVByaW50ZXIgKnByaW50ZXIpIGNvbnN0
CiAgICAgICAgIGFzY2VuZGluZyA9IGZhbHNlOwogICAgIH0KIAotICAgIHBhaW50ZXIuc2NhbGUo
em9vbUZhY3RvclgsIHpvb21GYWN0b3JZKTsKLSAgICBHcmFwaGljc0NvbnRleHQgY3R4KCZwYWlu
dGVyKTsKLQogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZG9jQ29waWVzOyArK2kpIHsKICAgICAg
ICAgaW50IHBhZ2UgPSBmcm9tUGFnZTsKICAgICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAg
ICAgIGZvciAoaW50IGogPSAwOyBqIDwgcGFnZUNvcGllczsgKytqKSB7CiAgICAgICAgICAgICAg
ICAgaWYgKHByaW50ZXItPnByaW50ZXJTdGF0ZSgpID09IFFQcmludGVyOjpBYm9ydGVkCiAgICAg
ICAgICAgICAgICAgICAgIHx8IHByaW50ZXItPnByaW50ZXJTdGF0ZSgpID09IFFQcmludGVyOjpF
cnJvcikgewotICAgICAgICAgICAgICAgICAgICBwcmludENvbnRleHQuZW5kKCk7CiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
cHJpbnRDb250ZXh0LnNwb29sUGFnZShjdHgsIHBhZ2UgLSAxLCBwYWdlUmVjdC53aWR0aCgpKTsK
KyAgICAgICAgICAgICAgICBwLnNwb29sUGFnZShwYWdlKTsKKwogICAgICAgICAgICAgICAgIGlm
IChqIDwgcGFnZUNvcGllcyAtIDEpCiAgICAgICAgICAgICAgICAgICAgIHByaW50ZXItPm5ld1Bh
Z2UoKTsKICAgICAgICAgICAgIH0KQEAgLTE0OTksOCArMTU0Nyw2IEBAIHZvaWQgUVdlYkZyYW1l
OjpwcmludChRUHJpbnRlciAqcHJpbnRlcikgY29uc3QKICAgICAgICAgaWYgKCBpIDwgZG9jQ29w
aWVzIC0gMSkKICAgICAgICAgICAgIHByaW50ZXItPm5ld1BhZ2UoKTsKICAgICB9Ci0KLSAgICBw
cmludENvbnRleHQuZW5kKCk7CiB9CiAjZW5kaWYgLy8gUVRfTk9fUFJJTlRFUgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvcXQv
QXBpL3F3ZWJmcmFtZS5oCmluZGV4IDg0MTA5NjIuLjRjMDBjYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3
ZWJmcmFtZS5oCkBAIC00Miw2ICs0Miw5IEBAIGNsYXNzIFFQcmludGVyOwogUVRfRU5EX05BTUVT
UEFDRQogCiBjbGFzcyBRV2ViTmV0d29ya1JlcXVlc3Q7CisjaWZuZGVmIFFUX05PX1BSSU5URVIK
K2NsYXNzIFFXZWJQcmludGVyUHJpdmF0ZTsKKyNlbmRpZgogY2xhc3MgUVdlYkZyYW1lUHJpdmF0
ZTsKIGNsYXNzIFFXZWJQYWdlOwogY2xhc3MgUVdlYkhpdFRlc3RSZXN1bHQ7CkBAIC0xMDMsNiAr
MTA2LDIzIEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFFXZWJQYWdlOwogfTsKIAorI2lm
bmRlZiBRVF9OT19QUklOVEVSCitjbGFzcyBRV2ViUHJpbnRlciB7CitwdWJsaWM6CisgICAgdm9p
ZCBzcG9vbFBhZ2UoaW50KSBjb25zdDsKKyAgICBpbnQgcGFnZUNvdW50KCkgY29uc3Q7CisKK3By
aXZhdGU6CisgICAgUVdlYlByaW50ZXIoY29uc3QgUVdlYkZyYW1lKiwgUVByaW50ZXIqKTsKKyAg
ICB+UVdlYlByaW50ZXIoKTsKKworICAgIFFXZWJQcmludGVyUHJpdmF0ZSogZDsKKworICAgIGZy
aWVuZCBjbGFzcyBRV2ViRnJhbWU7Cit9OworI2VuZGlmCisKKwogY2xhc3MgUVdFQktJVF9FWFBP
UlQgUVdlYkZyYW1lIDogcHVibGljIFFPYmplY3QgewogICAgIFFfT0JKRUNUCiAgICAgUV9QUk9Q
RVJUWShxcmVhbCB0ZXh0U2l6ZU11bHRpcGxpZXIgUkVBRCB0ZXh0U2l6ZU11bHRpcGxpZXIgV1JJ
VEUgc2V0VGV4dFNpemVNdWx0aXBsaWVyIERFU0lHTkFCTEUgZmFsc2UpCkBAIC0yMzEsNiArMjUx
LDcgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUVdlYlBhZ2U7CiAgICAgZnJpZW5kIGNs
YXNzIFFXZWJQYWdlUHJpdmF0ZTsKICAgICBmcmllbmQgY2xhc3MgUVdlYkZyYW1lUHJpdmF0ZTsK
KyAgICBmcmllbmQgY2xhc3MgUVdlYlByaW50ZXJQcml2YXRlOwogICAgIGZyaWVuZCBjbGFzcyBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdDsKICAgICBmcmllbmQgY2xhc3MgV2ViQ29yZTo6V2lkZ2V0
UHJpdmF0ZTsKICAgICBmcmllbmQgY2xhc3MgV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZV9wLmggYi9Tb3VyY2Uv
V2ViS2l0L3F0L0FwaS9xd2ViZnJhbWVfcC5oCmluZGV4IGVlOGM0NjMuLjg0ZmM4ZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZV9wLmgKKysrIGIvU291cmNlL1dl
YktpdC9xdC9BcGkvcXdlYmZyYW1lX3AuaApAQCAtMzEsOSArMzEsMTIgQEAKICNpZiBFTkFCTEUo
T1JJRU5UQVRJT05fRVZFTlRTKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogI2luY2x1
ZGUgInFvcmllbnRhdGlvbnNlbnNvci5oIgogI2VuZGlmCisjaW5jbHVkZSA8cXBhaW50ZXIuaD4K
ICNpbmNsdWRlICJxd2ViZWxlbWVudC5oIgogI2luY2x1ZGUgInd0Zi9SZWZQdHIuaCIKICNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlByaW50Q29udGV4dC5oIgorCiAjaW5jbHVkZSAiVmll
d3BvcnRBcmd1bWVudHMuaCIKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYg
VVNFKFRFWFRVUkVfTUFQUEVSKQpAQCAtNjksNiArNzIsMTcgQEAgcHVibGljOgogICAgIGludCBt
YXJnaW5IZWlnaHQ7CiB9OwogCitjbGFzcyBRV2ViUHJpbnRlclByaXZhdGUgeworcHVibGljOgor
ICAgIFFXZWJQcmludGVyUHJpdmF0ZShjb25zdCBRV2ViRnJhbWUqLCBRUHJpbnRlciopOworICAg
IH5RV2ViUHJpbnRlclByaXZhdGUoKTsKKworICAgIGludCBwcmludFdpZHRoOworICAgIFFQYWlu
dGVyKiBwYWludGVyOworICAgIFdlYkNvcmU6OlByaW50Q29udGV4dCBwcmludENvbnRleHQ7Cisg
ICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dDsKK307CisKIGNsYXNz
IFFXZWJGcmFtZVByaXZhdGUgewogcHVibGljOgogICAgIFFXZWJGcmFtZVByaXZhdGUoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZwppbmRleCBmZmQxYWU2Li4zYjZjOTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIyIEBACisyMDExLTAxLTIwICBEaWVnbyBHb256YWxleiAgPGRpZWdvaGNnQHdlYmtpdC5vcmc+
ICwgSmFrb2IgVHJ1ZWxzZW4gPGFudGlhbGl6ZUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBQcm92aWRlIGEgd2F5IGZvciBi
ZXR0ZXIgY29udHJvbCBvdmVyIHRoZSBwcm9jZXNzIG9mIHByaW50aW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjU4NAorCisgICAgICAgICogQXBp
L3F3ZWJmcmFtZS5jcHA6CisgICAgICAgIChRV2ViUHJpbnRlclByaXZhdGU6OlFXZWJQcmludGVy
UHJpdmF0ZSk6CisgICAgICAgIChRV2ViUHJpbnRlclByaXZhdGU6On5RV2ViUHJpbnRlclByaXZh
dGUpOgorICAgICAgICAoUVdlYlByaW50ZXI6OlFXZWJQcmludGVyKToKKyAgICAgICAgKFFXZWJQ
cmludGVyOjp+UVdlYlByaW50ZXIpOgorICAgICAgICAoUVdlYlByaW50ZXI6OnNwb29sUGFnZSk6
CisgICAgICAgIChRV2ViUHJpbnRlcjo6cGFnZUNvdW50KToKKyAgICAgICAgKFFXZWJGcmFtZTo6
cHJpbnQpOgorICAgICAgICAqIEFwaS9xd2ViZnJhbWUuaDoKKyAgICAgICAgKiBBcGkvcXdlYmZy
YW1lX3AuaDoKKyAgICAgICAgKiB0ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5jcHA6CisK
IDIwMTEtMDEtMTkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9xdC90
ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5jcHAKaW5kZXggNmIwYjU4ZC4uZWJjYzAwNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFt
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFt
ZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxRQ29tYm9Cb3g+CiAjaW5jbHVkZSA8
UVBhaW50RW5naW5lPgogI2luY2x1ZGUgPFFQaWN0dXJlPgorI2luY2x1ZGUgPFFQcmludGVyPgog
I2luY2x1ZGUgPFFSZWdFeHA+CiAjaW5jbHVkZSA8UU5ldHdvcmtSZXF1ZXN0PgogI2luY2x1ZGUg
PFFOZXR3b3JrUmVwbHk+CkBAIC02MDgsNiArNjA5LDkgQEAgcHJpdmF0ZSBzbG90czoKICAgICAv
LyB0aGlzIHRlc3QgZG9lcyBub3QgbWFrZSBzZW5zZSBmb3IgaXQuCiAgICAgdm9pZCBwb3B1cEZv
Y3VzKCk7CiAjZW5kaWYKKyNpZm5kZWYgUVRfTk9fUFJJTlRFUgorICAgIHZvaWQgcHJpbnRQYWdl
KCk7CisjZW5kaWYKICAgICB2b2lkIGlucHV0RmllbGRGb2N1cygpOwogICAgIHZvaWQgaGl0VGVz
dENvbnRlbnQoKTsKICAgICB2b2lkIGpzQnl0ZUFycmF5KCk7CkBAIC0yNjI5LDYgKzI2MzMsMjUg
QEAgdm9pZCB0c3RfUVdlYkZyYW1lOjpwb3B1cEZvY3VzKCkKIH0KICNlbmRpZgogCisjaWZuZGVm
IFFUX05PX1BSSU5URVIKK3ZvaWQgdHN0X1FXZWJGcmFtZTo6cHJpbnRQYWdlKCkKK3sKKyAgICBR
UHJpbnRlciogcHJpbnRlciA9IG5ldyBRUHJpbnRlcjsKKyAgICBwcmludGVyLT5zZXRPdXRwdXRG
aWxlTmFtZSgidGVzdHByaW50LnBkZiIpOworICAgIHByaW50ZXItPnNldE91dHB1dEZvcm1hdChR
UHJpbnRlcjo6UGRmRm9ybWF0KTsKKyAgICBRV2ViUGFnZSBwYWdlOworICAgIFFXZWJGcmFtZSog
ZnJhbWUgPSBwYWdlLm1haW5GcmFtZSgpOworICAgIGZyYW1lLT5zZXRIdG1sKCI8aHRtbD48Ym9k
eT48ZGl2PlF0IFdlYktpdCBUZXN0IFByaW50PC9kaXY+PC9ib2R5PjwvaHRtbD4iKTsKKyAgICBm
cmFtZS0+cHJpbnQocHJpbnRlcik7CisKKyAgICBRVkVSSUZZKHByaW50ZXItPmlzVmFsaWQoKSk7
CisgICAgUVZFUklGWShRRmlsZTo6ZXhpc3RzKCJ0ZXN0cHJpbnQucGRmIikpOworCisgICAgUUZp
bGU6OnJlbW92ZSgidGVzdHByaW50LnBkZiIpOworICAgIGRlbGV0ZSBwcmludGVyOworfQorI2Vu
ZGlmCisKIHZvaWQgdHN0X1FXZWJGcmFtZTo6aW5wdXRGaWVsZEZvY3VzKCkKIHsKICAgICBRV2Vi
VmlldyB2aWV3OwotLSAKMS43LjEKCg==
</data>
<flag name="review"
          id="71012"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>