<?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>25415</bug_id>
          
          <creation_ts>2009-04-26 18:48:13 -0700</creation_ts>
          <short_desc>[GTK][ATK] Please implement support for get_text_at_offset</short_desc>
          <delta_ts>2009-12-07 07:39:11 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>16135</dependson>
          <blocked>25531</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joanmarie Diggs">jdiggs</reporter>
          <assigned_to name="Xan Lopez">xan.lopez</assigned_to>
          <cc>abarth</cc>
    
    <cc>apinheiro</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>jmalonzo</cc>
    
    <cc>walker.willie</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>118940</commentid>
    <comment_count>0</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-04-26 18:48:13 -0700</bug_when>
    <thetext>The accessible text interface includes methods to get a specified amount of text, given a caret offset and a boundary type. For more information please see http://library.gnome.org/devel/pygtk/stable/class-atktext.html.

Usage/need example: (Once caret-moved events have been implemented) A user presses Down Arrow and WebKit emits a caret-moved event with, say, detail1 == 30. As a result, an AT such as Orca should present the line of text at offset 30 which it could obtain by:

  acc.queryText().getTextAtOffset(30, TEXT_BOUNDARY_LINE_START)

The expected result would be something like:

  (&apos;This is a test&apos;, 25, 39)

Currently we get something like:

  (&apos;&apos;, -1074032920, 152169976)

As a result, it is difficult to present the new position to the user.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120713</commentid>
    <comment_count>1</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-05-11 13:27:06 -0700</bug_when>
    <thetext>OK, so I have a patch for atk_text_get_text_{at,before,after}_offset, for now I support WORD_START, WORD_END and CHAR boundaries. One question though: what are you supposed to do in &apos;degenerate&apos; cases? Example: get the previous word when you are at the first word, or the next word when you are at the last one, etc. Does not seem to be documented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120715</commentid>
    <comment_count>2</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-05-11 13:32:14 -0700</bug_when>
    <thetext>Oh, and remember when I said this seemed easy to implement? Lies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120718</commentid>
    <comment_count>3</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-05-11 13:52:43 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; OK, so I have a patch for atk_text_get_text_{at,before,after}_offset, for now I
&gt; support WORD_START, WORD_END and CHAR boundaries. 

Excellent!

&gt; One question though: what are
&gt; you supposed to do in &apos;degenerate&apos; cases? Example: get the previous word when
&gt; you are at the first word, or the next word when you are at the last one, etc.

I&apos;d go with (&apos;&apos;, 0, 0)

&gt; Does not seem to be documented.

Documentation is for the weak. ;-)

The only reason I know/am suggesting the above is because that&apos;s what I&apos;ve grown accustomed to seeing in the cases you describe. If I didn&apos;t have an answer, however, what I would do is see what other apps do -- starting with either gtk-demo and/or Gedit (which as a general rule seems to use standard widgets).

(In reply to comment #2)
&gt; Oh, and remember when I said this seemed easy to implement? Lies.

Heh. :-) (And sorry! And thank you for doing it!!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120869</commentid>
    <comment_count>4</comment_count>
      <attachid>30234</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-05-12 08:57:54 -0700</bug_when>
    <thetext>Created attachment 30234
gettextat.patch

OK, all the stuff is implemented now. I don&apos;t have tests for the LINE_{START,END} boundaries because I don&apos;t seem to be able to convince WebKit to load strings with line breaks. Either me being stupid or a bug, I&apos;ll figure it out, but in any case this can be already reviewed IMHO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120962</commentid>
    <comment_count>5</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-05-12 19:18:24 -0700</bug_when>
    <thetext>Xan this is awesome! Thanks!!

&gt; OK, all the stuff is implemented now. I don&apos;t have tests for the
&gt; LINE_{START,END} boundaries because I don&apos;t seem to be able to convince WebKit
&gt; to load strings with line breaks.

When I read this, I initially took it to mean the functionality for ATs was implemented (i.e. ATs could get the text at/before/after the LINE_{START,END} boundary) and that there were WebKit tests that were not yet in place. In testing it, I&apos;m seeing (&apos;&apos;, 0, 0) when I try to get the text of a line. No worries as long as you know that line support doesn&apos;t seem to be implemented.

I also noticed that your implementation doesn&apos;t include the character(s) serving as the boundary (i.e. space and/or punctuation mark), whereas other apps and toolkits do include it. For instance, given the sentence &quot;This is another, silly test.&quot; and using Accerciser&apos;s IPython console:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Gedit and OOo Writer:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In [1]: text = acc.queryText()
In [2]: text.getTextAtOffset(8, TEXT_BOUNDARY_WORD_START)
Out[2]: (&apos;another, &apos;, 8, 17)
In [3]: text.getTextAtOffset(8, TEXT_BOUNDARY_WORD_END)
Out[3]: (&apos; another&apos;, 7, 15)
In [4]: text.getTextAtOffset(23, TEXT_BOUNDARY_WORD_START)
Out[4]: (&apos;test.&apos;, 23, 28)
In [5]: text.getTextAtOffset(23, TEXT_BOUNDARY_WORD_END)
Out[5]: (&apos; test&apos;, 22, 27)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Gecko:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In [1]:text = acc.queryText()
In [2]:text.getTextAtOffset(8, TEXT_BOUNDARY_WORD_START)
Out[2]: (&apos;another, &apos;, 8, 17)
In [3]:text.getTextAtOffset(8, TEXT_BOUNDARY_WORD_END)
Out[3]: (&apos; another,&apos;, 7, 16)
In [4]:text.getTextAtOffset(23, TEXT_BOUNDARY_WORD_START)
Out[4]: (&apos;test.&apos;, 23, 28)
In [5]:text.getTextAtOffset(23, TEXT_BOUNDARY_WORD_END)
Out[5]: (&apos; test.&apos;, 22, 28)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WebKit:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In [1]: text = acc.queryText()
In [2]: text.getTextAtOffset(8, TEXT_BOUNDARY_WORD_START)
Out[2]: (&apos;another&apos;, 8, 15)
In [3]: text.getTextAtOffset(8, TEXT_BOUNDARY_WORD_END)
Out[3]: (&apos;another&apos;, 8, 15)
In [4]: text.getTextAtOffset(23, TEXT_BOUNDARY_WORD_START)
Out[4]: (&apos;test&apos;, 23, 27)
In [5]: text.getTextAtOffset(23, TEXT_BOUNDARY_WORD_END)
Out[5]: (&apos;test&apos;, 23, 27)

I&apos;m not convinced the inclusion of the space in each word is critical (although given that Gedit, OOo, and Gecko all do it, perhaps it is??). That said, the inclusion of any punctuation that defines the boundary is important. If a user presses Control+Right and moves to the word &apos;another,&apos; Orca needs to know that there&apos;s a comma attached to the word so that we display it in braille and -- when appropriate -- present it in speech.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121298</commentid>
    <comment_count>6</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-05-14 08:14:45 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Xan this is awesome! Thanks!!
&gt; 
&gt; &gt; OK, all the stuff is implemented now. I don&apos;t have tests for the
&gt; &gt; LINE_{START,END} boundaries because I don&apos;t seem to be able to convince WebKit
&gt; &gt; to load strings with line breaks.
&gt; 
&gt; When I read this, I initially took it to mean the functionality for ATs was
&gt; implemented (i.e. ATs could get the text at/before/after the LINE_{START,END}
&gt; boundary) and that there were WebKit tests that were not yet in place. In
&gt; testing it, I&apos;m seeing (&apos;&apos;, 0, 0) when I try to get the text of a line. No
&gt; worries as long as you know that line support doesn&apos;t seem to be implemented.

Mmm, I thought I had, but it seems I was wrong. Looking at what Gecko does it seems to me that for LINE_{START,END} we want the *visual* lines, not the logical ones, right? That is, what is returned in a getText(0, -1) might be &quot;One two three four five six seven eight nine ten.&quot;, but if that&apos;s split in 5 lines of two items in the browser getTextAtOffset(0, TEXT_BOUNDARY_LINE_START) would be &quot;one two&quot;. Am I right?

&gt; 
&gt; I also noticed that your implementation doesn&apos;t include the character(s)
&gt; serving as the boundary (i.e. space and/or punctuation mark), whereas other
&gt; apps and toolkits do include it. For instance, given the sentence &quot;This is
&gt; another, silly test.&quot; and using Accerciser&apos;s IPython console:
&gt; 
&gt; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
&gt; Gedit and OOo Writer:
&gt; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
&gt; In [1]: text = acc.queryText()
&gt; In [2]: text.getTextAtOffset(8, TEXT_BOUNDARY_WORD_START)
&gt; Out[2]: (&apos;another, &apos;, 8, 17)
&gt; In [3]: text.getTextAtOffset(8, TEXT_BOUNDARY_WORD_END)
&gt; Out[3]: (&apos; another&apos;, 7, 15)
&gt; In [4]: text.getTextAtOffset(23, TEXT_BOUNDARY_WORD_START)
&gt; Out[4]: (&apos;test.&apos;, 23, 28)
&gt; In [5]: text.getTextAtOffset(23, TEXT_BOUNDARY_WORD_END)
&gt; Out[5]: (&apos; test&apos;, 22, 27)
&gt; 
&gt; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
&gt; Gecko:
&gt; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
&gt; In [1]:text = acc.queryText()
&gt; In [2]:text.getTextAtOffset(8, TEXT_BOUNDARY_WORD_START)
&gt; Out[2]: (&apos;another, &apos;, 8, 17)
&gt; In [3]:text.getTextAtOffset(8, TEXT_BOUNDARY_WORD_END)
&gt; Out[3]: (&apos; another,&apos;, 7, 16)
&gt; In [4]:text.getTextAtOffset(23, TEXT_BOUNDARY_WORD_START)
&gt; Out[4]: (&apos;test.&apos;, 23, 28)
&gt; In [5]:text.getTextAtOffset(23, TEXT_BOUNDARY_WORD_END)
&gt; Out[5]: (&apos; test.&apos;, 22, 28)
&gt; 
&gt; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
&gt; WebKit:
&gt; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
&gt; In [1]: text = acc.queryText()
&gt; In [2]: text.getTextAtOffset(8, TEXT_BOUNDARY_WORD_START)
&gt; Out[2]: (&apos;another&apos;, 8, 15)
&gt; In [3]: text.getTextAtOffset(8, TEXT_BOUNDARY_WORD_END)
&gt; Out[3]: (&apos;another&apos;, 8, 15)
&gt; In [4]: text.getTextAtOffset(23, TEXT_BOUNDARY_WORD_START)
&gt; Out[4]: (&apos;test&apos;, 23, 27)
&gt; In [5]: text.getTextAtOffset(23, TEXT_BOUNDARY_WORD_END)
&gt; Out[5]: (&apos;test&apos;, 23, 27)
&gt; 
&gt; I&apos;m not convinced the inclusion of the space in each word is critical (although
&gt; given that Gedit, OOo, and Gecko all do it, perhaps it is??). That said, the
&gt; inclusion of any punctuation that defines the boundary is important. If a user
&gt; presses Control+Right and moves to the word &apos;another,&apos; Orca needs to know that
&gt; there&apos;s a comma attached to the word so that we display it in braille and --
&gt; when appropriate -- present it in speech.

OK, I&apos;ll look into this.
 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121306</commentid>
    <comment_count>7</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-05-14 08:50:43 -0700</bug_when>
    <thetext>(In reply to comment #6)

&gt; Mmm, I thought I had, but it seems I was wrong. Looking at what Gecko does it
&gt; seems to me that for LINE_{START,END} we want the *visual* lines, not the
&gt; logical ones, right? That is, what is returned in a getText(0, -1) might be
&gt; &quot;One two three four five six seven eight nine ten.&quot;, but if that&apos;s split in 5
&gt; lines of two items in the browser getTextAtOffset(0, TEXT_BOUNDARY_LINE_START)
&gt; would be &quot;one two&quot;. Am I right?

You are indeed. And this should occur regardless of why the line is split (e.g. forced to split by &lt;br /&gt; or just happens to split due to text wrapping).

&gt; OK, I&apos;ll look into this.

Awesome. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121321</commentid>
    <comment_count>8</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-05-14 09:39:18 -0700</bug_when>
    <thetext>OK, one thing. Say I have this string: &quot;This   is.&quot; (3 spaces between &apos;This&apos; and &apos;is&apos;). If I ask for getTextAtOffset(7, TEXT_BOUNDARY_WORD_END) should I really get: &quot;   is&quot; ? I think this might complicate the implementation enough that I might want to rewrite it from scratch, not sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121326</commentid>
    <comment_count>9</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-05-14 10:22:23 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; OK, one thing. Say I have this string: &quot;This   is.&quot; (3 spaces between &apos;This&apos;
&gt; and &apos;is&apos;). If I ask for getTextAtOffset(7, TEXT_BOUNDARY_WORD_END) should I
&gt; really get: &quot;   is&quot; ? 

I&apos;d not thought of that case before. But I just looked at the AT-SPI IDL and it says:

&quot;TEXT_BOUNDARY_WORD_END: Boundary condition is the end of a word; i.e. range is from the end of one word to the end of another.&quot;

So, yeah, I suppose you should get &quot;   is&quot; in that case.

&gt; I think this might complicate the implementation enough
&gt; that I might want to rewrite it from scratch, not sure.

Sorry!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121464</commentid>
    <comment_count>10</comment_count>
      <attachid>30370</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-05-15 01:22:55 -0700</bug_when>
    <thetext>Created attachment 30370
gettextv2.patch

OK, I *think* this now works as it should, but please review it carefully :)

I have removed the LINE_{START,END} implementation, since it was completely wrong. I&apos;ll try to figure out how to get the visual line break information out of WebKit now to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121619</commentid>
    <comment_count>11</comment_count>
      <attachid>30408</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-05-15 20:19:22 -0700</bug_when>
    <thetext>Created attachment 30408
test case

Hi Xan.

I did some thorough testing of your patch. Observations:

1. Given the variants present in implementations (e.g. Gedit/Gtk+ text objects, OOo Writer, and Gecko), it looks like what you&apos;ve done is most consistent with Gedit/Gtk+ text objects. Yea! Thanks!! :-)

2. Given the text &quot;This is another, silly test.&quot; (See attached test case.) I compared what we get for getText{At,Before,After}Offset from Gedit and what we now get from WebKit:

  * TEXT_BOUNDARY_CHAR is the same in both.

  * TEXT_BOUNDARY_WORD_{START,END} is essentially the same, however:

    - When we do a getTextAtOffset(i, TEXT_BOUNDARY_WORD_END) where
      i is an offset of a character in the first word, Gedit (and
      OOo Writer, and Firefox) return the first word. I think the
      idea is that there *is* a word *at* the specified offset.

      From the test case I described above:

	i	Gedit WORD_END		WebKit WORD_END
	0	(&apos;This&apos;, 0, 4) 		(&apos;&apos;, 0, 0)
	1	(&apos;This&apos;, 0, 4) 		(&apos;&apos;, 0, 0)
	2	(&apos;This&apos;, 0, 4) 		(&apos;&apos;, 0, 0)
	3	(&apos;This&apos;, 0, 4) 		(&apos;&apos;, 0, 0)

      A similar issue can be seen with getTextBeforeOffset. Both
      Gedit and WebKit return (&apos;&apos;, 0, 0) as expected when i is the
      offset of a character in the first word, but WebKit continues
      to do so until i seems to be the offset of the end of the 2nd
      word:

	i	Gedit WORD_END	WebKit WORD_END
	3	(&apos;&apos;, 0, 0) 	(&apos;&apos;, 0, 0)
	4	(&apos;This&apos;, 0, 4) 	(&apos;&apos;, 0, 0)
	5	(&apos;This&apos;, 0, 4) 	(&apos;&apos;, 0, 0)
	6	(&apos;This&apos;, 0, 4) 	(&apos;&apos;, 0, 0)

    - Similarly for getTextAtOffset(i, TEXT_BOUNDARY_WORD_START)
      where i is an offset of a character in the final word:

	i	Gedit WORD_START	WebKit WORD_START
	23	(&apos;test.&apos;, 23, 28) 	(&apos;&apos;, 0, 0)
	24	(&apos;test.&apos;, 23, 28) 	(&apos;&apos;, 0, 0)
	25	(&apos;test.&apos;, 23, 28) 	(&apos;&apos;, 0, 0)
	26	(&apos;test.&apos;, 23, 28) 	(&apos;&apos;, 0, 0)
	27	(&apos;test.&apos;, 23, 28) 	(&apos;&apos;, 0, 0)

    - There&apos;s also a difference with TEXT_BOUNDARY_WORD_END when
      the offset is for a space:

	i	Gedit WORD_END		WebKit WORD_END
	7	(&apos; another&apos;, 7, 15) 	(&apos; is&apos;, 4, 7)
	15	(&apos;, silly&apos;, 15, 22) 	(&apos; another&apos;, 7, 15)
	22	(&apos; test&apos;, 22, 27) 	(&apos;, silly&apos;, 15, 22)

      Firefox does the same thing as Gedit. OOo Writer returns
      (&apos;&apos;, 0, 0), but don&apos;t think that makes as much sense.

    - Calling getTextAfterOffset with either word boundary type
      will eventually crash the GtkLauncher with the following
      error:

      GLib-ERROR **: /build/buildd/glib2.0-2.20.1/glib/gmem.c:136:
      failed to allocate 4294967269 bytes
      aborting...
      Aborted

      See test case below.

  * TEXT_BOUNDARY_LINE_{START,END} have not been implemented,
    as you indicated in your comments.

  * TEXT_BOUNDARY_SENTENCE_END when used with an offset in the
    first/only sentence results in (&apos;&apos;, 0, 0) instead of that
    sentence.

  * TEXT_BOUNDARY_SENTENCE_START when used with an offset in the
    first/only sentence results in GtkLauncher crashing with the
    above Glib error.

    See test case below.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Tests to reproduce the aforementioned crashes:

1. Open the attached test case in GtkLauncher.

2. Using Accerciser, select the text object in the tree on the left. 

3. In the IPython console:

   Test 1: 
   acc.queryText().getTextAtOffset(0, TEXT_BOUNDARY_SENTENCE_START)

   Test 2: 
   acc.queryText().getTextAfterOffset(26, TEXT_BOUNDARY_WORD_START)

Hope this helps!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121885</commentid>
    <comment_count>12</comment_count>
      <attachid>30465</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-05-19 03:36:53 -0700</bug_when>
    <thetext>Created attachment 30465
gettextv3.patch

OK, I think I&apos;ve fixed all issues raised in the last comment (most of them were really special cases of the same bug: &quot;Not taking into account being in the first or last word/sentence&quot;). I&apos;ve also fixed the crashers, which were due to not doing error checking properly in some cases.

LINE_{START,END} is still missing from the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122150</commentid>
    <comment_count>13</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-05-20 07:22:35 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Created an attachment (id=30465) [review]
&gt; gettextv3.patch
&gt; 
&gt; OK, I think I&apos;ve fixed all issues raised in the last comment (most of them were
&gt; really special cases of the same bug: &quot;Not taking into account being in the
&gt; first or last word/sentence&quot;). I&apos;ve also fixed the crashers, which were due to
&gt; not doing error checking properly in some cases.

Hi Xan. Is it possible to split this patch into bite-sized chunks so it&apos;s easier to review? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122153</commentid>
    <comment_count>14</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-05-20 07:32:13 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; Created an attachment (id=30465) [review] [review]
&gt; &gt; gettextv3.patch
&gt; &gt; 
&gt; &gt; OK, I think I&apos;ve fixed all issues raised in the last comment (most of them were
&gt; &gt; really special cases of the same bug: &quot;Not taking into account being in the
&gt; &gt; first or last word/sentence&quot;). I&apos;ve also fixed the crashers, which were due to
&gt; &gt; not doing error checking properly in some cases.
&gt; 
&gt; Hi Xan. Is it possible to split this patch into bite-sized chunks so it&apos;s
&gt; easier to review? Thanks.
&gt; 

Well, I&apos;m not sure. I mean, the bulk of it is the getTextHelper function, and that can&apos;t be really splitted too much (I could do a first version only supporting the CHAR boundary and then add everything else perhaps, but that&apos;s a bit artificial), since the point of it is that it manages to implement 4 boundaries with the same code. Everything else are either little helper functions for getTextHelper, the test file, or the actual hooking of the code into the ATK API, which is trivial.

What are you having problems with?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122231</commentid>
    <comment_count>15</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-05-20 18:16:34 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Created an attachment (id=30465) [review]
&gt; gettextv3.patch
&gt; 
&gt; OK, I think I&apos;ve fixed all issues raised in the last comment (most of them were
&gt; really special cases of the same bug: &quot;Not taking into account being in the
&gt; first or last word/sentence&quot;). I&apos;ve also fixed the crashers, which were due to
&gt; not doing error checking properly in some cases.

In terms of testing, so far so good. Awesome!!

&gt; LINE_{START,END} is still missing from the patch.

Understood. Having that is quite important, but I don&apos;t see it as a reason to hold off committing what you&apos;ve done so far.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122492</commentid>
    <comment_count>16</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-05-21 18:42:15 -0700</bug_when>
    <thetext>Xan, given your work on this bug and other recent fixes, I&apos;m thinking we&apos;re approaching the point where it would be worth getting a skeleton/debugging/testing script for WebKit in place in Orca.
(Up to now, I&apos;ve done all testing in Accerciser.) Unfortunately, the mere act of using the GtkLauncher or Epiphany while Orca is running crashes GtkLauncher/Epiphany 100% of the time with this error:

~~~
ERROR:WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:628:gchar* getTextHelper(GetTextFunctionType, AtkText*, gint, AtkTextBoundary, gint*, gint*): code should not be reached
Aborted
~~~~

Looking at what code in Orca was triggering the crash, it turned out to be attempting to get the text of a line. 

I realize that you&apos;re still working on getting the visible line. The problem is that while Orca speaks the character, word, etc. based on how the user is navigating, it ALWAYS brailles the line. Hence the constant crashes.

I&apos;m guessing that the problem is the assertion at the bottom of this block:

+        if (boundaryType == ATK_TEXT_BOUNDARY_WORD_START)
+            predicate = isWordStart;
+        else if (boundaryType == ATK_TEXT_BOUNDARY_WORD_END)
+            predicate = isWordEnd;
+        else if (boundaryType == ATK_TEXT_BOUNDARY_SENTENCE_START)
+            predicate = isSentenceStart;
+        else if (boundaryType == ATK_TEXT_BOUNDARY_SENTENCE_END)
+            predicate = isSentenceEnd;
+        else
+            g_assert_not_reached();

If so, would it be possible to return (&apos;&apos;, 0, 0) instead? If you&apos;d like, you could also display a grumpy error message. ;-) ;-) That way, while you&apos;re working on the line implementation, I could start implementing support in Orca for things which are not lines.

If this would be more hassle than it&apos;s worth, no worries, I&apos;ll wait.

Thanks either way!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122808</commentid>
    <comment_count>17</comment_count>
      <attachid>30465</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-05-23 00:00:53 -0700</bug_when>
    <thetext>Comment on attachment 30465
gettextv3.patch

&gt; -static gchar* webkit_accessible_text_get_text_after_offset(AtkText* text, gint offset, AtkTextBoundary boundary_type, gint* start_offset, gint* end_offset)
&gt; +typedef enum {
&gt; +    AfterOffset,
&gt; +    AtOffset,
&gt; +    BeforeOffset
&gt; +} GetTextFunctionType;

enum GetTextFunctionType would do.

&gt; +typedef int (*advanceFunc) (int);
&gt; +
&gt; +static int increaseInt(int i) {
&gt; +    return i + 1;
&gt; +}
&gt; +
&gt; +static int decreaseInt(int i) {
&gt; +    return i - 1;
&gt; +}
&gt; +
&gt; +typedef enum {
&gt; +    DirectionForward,
&gt; +    DirectionBackwards
&gt; +} Direction;

See enum comment above.

&gt; +
&gt; +static bool findCharacterAttribute(isCharacterAttribute predicateFunction, PangoLogAttr* attributes, Direction direction, int startOffset, int attrsLength, int* resultOffset)
&gt; +{

attrsLength should be unsigned. can starOffset be negative here?

&gt; +    int i;

You can move this in for loop below.

&gt; +    advanceFunc advanceFunc = direction == DirectionForward ? increaseInt : decreaseInt;
&gt; +
&gt; +    *resultOffset = -1;
&gt; +
&gt; +    for (i = startOffset; i &gt;= 0 &amp;&amp; i &lt; attrsLength; i = advanceFunc(i)) {

int i = startOffset;

&gt; +        if (predicateFunction(attributes+i)) {

there should be spaces in attributes+1

&gt; +static bool findCharacterAttributeSkip(isCharacterAttribute predicateFunction, unsigned skip, PangoLogAttr* attributes, Direction direction, int startOffset, int attrsLength, int* resultOffset)
&gt; +{
&gt; +    int tmpOffset;
&gt; +    bool retValue;
&gt; +
&gt; +    retValue = findCharacterAttribute(predicateFunction, attributes, direction, startOffset, attrsLength, &amp;tmpOffset);

Better to assign value in the declaration.

&gt; +static gchar* getTextHelper(GetTextFunctionType getTextFunctionType, AtkText* textObject, gint offset, AtkTextBoundary boundaryType, gint* startOffset, gint* endOffset)
&gt; +{
&gt; +    AccessibilityObject* coreObject = core(textObject);
&gt; +    String text;
&gt; +
&gt; +    *startOffset = *endOffset = -1;
&gt; +
&gt; +    if (coreObject-&gt;isTextControl())
&gt; +        text = coreObject-&gt;text();
&gt; +    else
&gt; +        text = coreObject-&gt;textUnderElement();
&gt; +
&gt; +    char* cText = g_strdup(text.utf8().data());
&gt; +    glong textLength = g_utf8_strlen(cText, -1);

-1 means cText is nul-terminated. Is this going to be the case? Can&apos;t we just use strlen here?

&gt; +    if (boundaryType == ATK_TEXT_BOUNDARY_CHAR) {
&gt; +        int effectiveOffset;
&gt; +
&gt; +        switch(getTextFunctionType) {

space between switch and (.

&gt; +        case AfterOffset:
&gt; +            effectiveOffset = offset + 1;
&gt; +            break;
&gt; +        case BeforeOffset:
&gt; +            effectiveOffset = offset - 1;
&gt; +            break;
&gt; +        case AtOffset:
&gt; +            effectiveOffset = offset;
&gt; +            break;
&gt; +        default:
&gt; +            g_assert_not_reached();
&gt; +        }

Is g_asset_not_reached the correct behaviour here? Can&apos;t we set effectiveOffset to NULL in this case?

&gt; +        *startOffset = effectiveOffset;
&gt; +        *endOffset = effectiveOffset + 1;

what should be the behaviour if effectiveOffset is NULL? should we set start/end offsets to 0?

&gt; +    } else {
&gt; +        PangoLogAttr* attrs = g_new(PangoLogAttr, textLength+1);

spaces in textLength+1

&gt; +        PangoLanguage* language = pango_language_get_default();
&gt; +        pango_get_log_attrs(cText, -1, -1, language, attrs, textLength+1);

ditto.

&gt; +      
&gt; +        isCharacterAttribute predicate;
&gt; +
&gt; +        if (boundaryType == ATK_TEXT_BOUNDARY_WORD_START)
&gt; +            predicate = isWordStart;
&gt; +        else if (boundaryType == ATK_TEXT_BOUNDARY_WORD_END)
&gt; +            predicate = isWordEnd;
&gt; +        else if (boundaryType == ATK_TEXT_BOUNDARY_SENTENCE_START)
&gt; +            predicate = isSentenceStart;
&gt; +        else if (boundaryType == ATK_TEXT_BOUNDARY_SENTENCE_END)
&gt; +            predicate = isSentenceEnd;
&gt; +        else
&gt; +            g_assert_not_reached();

what should be the default behaviour here?

&gt; +
&gt; +        switch(boundaryType) {

space between switch and (.

&gt; +        case ATK_TEXT_BOUNDARY_WORD_START:
&gt; +        case ATK_TEXT_BOUNDARY_SENTENCE_START:
&gt; +            if (getTextFunctionType == AfterOffset) {
&gt; +                // Take the item after the current one in any case
&gt; +                findCharacterAttribute(predicate, attrs, DirectionForward, offset+1, textLength + 1, startOffset);
&gt; +                findCharacterAttributeSkip(predicate, 1, attrs, DirectionForward, offset+1, textLength + 1, endOffset);

Spaces in offset+1. Also, what&apos;s the difference between the two?

&gt; +            } else if (getTextFunctionType == AtOffset) {
&gt; +                // Take the item at point if the offset is in an item or
&gt; +                // the item before otherwise
&gt; +                findCharacterAttribute(predicate, attrs, DirectionBackwards, offset, textLength + 1, startOffset);
&gt; +                if (!findCharacterAttribute(predicate, attrs, DirectionForward, offset+1, textLength + 1, endOffset)) {
&gt; +                    findCharacterAttribute(oppositePredicate(predicate), attrs, DirectionForward, offset+1, textLength + 1, endOffset);

spaces in offset+1.

&gt; +                findCharacterAttribute(predicate, attrs, DirectionForward, offset+1, textLength + 1, endOffset);

ditto.

&gt; +            } else {
&gt; +                // Take the item before the point in any case
&gt; +                if (!findCharacterAttributeSkip(predicate, 1, attrs, DirectionBackwards, offset, textLength + 1, startOffset)) {
&gt; +                    int tmpOffset;
&gt; +                    // No match before offset, take the first opposite match at or before the offset
&gt; +                    findCharacterAttribute(predicate, attrs, DirectionBackwards, offset, textLength + 1, &amp;tmpOffset);
&gt; +                    findCharacterAttribute(oppositePredicate(predicate), attrs, DirectionBackwards, tmpOffset-1, textLength + 1, startOffset);

spaces in tmpOffset-1.

&gt; +        default:
&gt; +            g_assert_not_reached();

is asserting the right behaviour here? 

&gt; +    char* start = g_utf8_offset_to_pointer(cText, (glong)*startOffset);
&gt; +    char* end = g_utf8_offset_to_pointer(cText, (glong)*endOffset);
&gt; +    char* resultText = g_strndup(start, end - start);
&gt; +    g_free(cText);
&gt; +    return resultText;

should we g_strdup resultText?

&gt; +}
&gt; +
&gt; +static gchar* webkit_accessible_text_get_text_after_offset(AtkText* text, gint offset, AtkTextBoundary boundaryType, gint* startOffset, gint* endOffset)
&gt; +{
&gt; +    return getTextHelper(AfterOffset, text, offset, boundaryType, startOffset, endOffset);
&gt; +}
&gt; +
&gt; +static gchar* webkit_accessible_text_get_text_at_offset(AtkText* text, gint offset, AtkTextBoundary boundaryType, gint* startOffset, gint* endOffset)
&gt; +{
&gt; +    return getTextHelper(AtOffset, text, offset, boundaryType, startOffset, endOffset);
&gt;  }
&gt;  
&gt; -static gchar* webkit_accessible_text_get_text_before_offset(AtkText* text, gint offset, AtkTextBoundary boundary_type, gint* start_offset, gint* end_offset)
&gt; +static gchar* webkit_accessible_text_get_text_before_offset(AtkText* text, gint offset, AtkTextBoundary boundaryType, gint* startOffset, gint* endOffset)
&gt; +{
&gt; +    return getTextHelper(BeforeOffset, text, offset, boundaryType, startOffset, endOffset);
&gt; +}
&gt; +
&gt; +static gunichar webkit_accessible_text_get_character_at_offset(AtkText* text, gint offset)

I think we should start using WebKit-style for the function names here.

r- for the style issues and the crash Joanmarie reported in comment #16. Would also be nice to work out the default behaviour instead of just asserting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122809</commentid>
    <comment_count>18</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-05-23 00:05:47 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Xan, given your work on this bug and other recent fixes, I&apos;m thinking we&apos;re
&gt; approaching the point where it would be worth getting a
&gt; skeleton/debugging/testing script for WebKit in place in Orca.

Hi Joanmarie. Apart from the unit tests this patch introduces, I&apos;m also working to get our accessibility layout tests working in WebKit so we can identify AX issues in our layout (and hopefully we&apos;d be able to detect possible crashes like this).
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122810</commentid>
    <comment_count>19</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-05-23 00:40:16 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 30465 [review])
&gt; &gt; -static gchar* webkit_accessible_text_get_text_after_offset(AtkText* text, gint offset, AtkTextBoundary boundary_type, gint* start_offset, gint* end_offset)
&gt; &gt; +typedef enum {
&gt; &gt; +    AfterOffset,
&gt; &gt; +    AtOffset,
&gt; &gt; +    BeforeOffset
&gt; &gt; +} GetTextFunctionType;
&gt; 
&gt; enum GetTextFunctionType would do.

Ah, right, C habits :)

&gt; 
&gt; &gt; +
&gt; &gt; +static bool findCharacterAttribute(isCharacterAttribute predicateFunction, PangoLogAttr* attributes, Direction direction, int startOffset, int attrsLength, int* resultOffset)
&gt; &gt; +{
&gt; 
&gt; attrsLength should be unsigned. can starOffset be negative here?

Right, I think both can be unsigned.

&gt; 
&gt; &gt; +    int i;
&gt; 
&gt; You can move this in for loop below.

Right.

&gt; 
&gt; &gt; +    advanceFunc advanceFunc = direction == DirectionForward ? increaseInt : decreaseInt;
&gt; &gt; +
&gt; &gt; +    *resultOffset = -1;
&gt; &gt; +
&gt; &gt; +    for (i = startOffset; i &gt;= 0 &amp;&amp; i &lt; attrsLength; i = advanceFunc(i)) {
&gt; 
&gt; int i = startOffset;

Right.

&gt; 
&gt; &gt; +        if (predicateFunction(attributes+i)) {
&gt; 
&gt; there should be spaces in attributes+1

Right.

&gt; 
&gt; &gt; +static bool findCharacterAttributeSkip(isCharacterAttribute predicateFunction, unsigned skip, PangoLogAttr* attributes, Direction direction, int startOffset, int attrsLength, int* resultOffset)
&gt; &gt; +{
&gt; &gt; +    int tmpOffset;
&gt; &gt; +    bool retValue;
&gt; &gt; +
&gt; &gt; +    retValue = findCharacterAttribute(predicateFunction, attributes, direction, startOffset, attrsLength, &amp;tmpOffset);
&gt; 
&gt; Better to assign value in the declaration.

Right.

&gt; 
&gt; &gt; +static gchar* getTextHelper(GetTextFunctionType getTextFunctionType, AtkText* textObject, gint offset, AtkTextBoundary boundaryType, gint* startOffset, gint* endOffset)
&gt; &gt; +{
&gt; &gt; +    AccessibilityObject* coreObject = core(textObject);
&gt; &gt; +    String text;
&gt; &gt; +
&gt; &gt; +    *startOffset = *endOffset = -1;
&gt; &gt; +
&gt; &gt; +    if (coreObject-&gt;isTextControl())
&gt; &gt; +        text = coreObject-&gt;text();
&gt; &gt; +    else
&gt; &gt; +        text = coreObject-&gt;textUnderElement();
&gt; &gt; +
&gt; &gt; +    char* cText = g_strdup(text.utf8().data());
&gt; &gt; +    glong textLength = g_utf8_strlen(cText, -1);
&gt; 
&gt; -1 means cText is nul-terminated. Is this going to be the case? Can&apos;t we just
&gt; use strlen here?

Yes, it&apos;s NULL terminated. strlen() is wrong, that gives the number of bytes, I need the number of characters (and anyway strlen would crash just the same if it were not NULL terminated? Or you meant that as a different issue).

&gt; 
&gt; &gt; +    if (boundaryType == ATK_TEXT_BOUNDARY_CHAR) {
&gt; &gt; +        int effectiveOffset;
&gt; &gt; +
&gt; &gt; +        switch(getTextFunctionType) {
&gt; 
&gt; space between switch and (.

Right.

&gt; 
&gt; &gt; +        case AfterOffset:
&gt; &gt; +            effectiveOffset = offset + 1;
&gt; &gt; +            break;
&gt; &gt; +        case BeforeOffset:
&gt; &gt; +            effectiveOffset = offset - 1;
&gt; &gt; +            break;
&gt; &gt; +        case AtOffset:
&gt; &gt; +            effectiveOffset = offset;
&gt; &gt; +            break;
&gt; &gt; +        default:
&gt; &gt; +            g_assert_not_reached();
&gt; &gt; +        }
&gt; 
&gt; Is g_asset_not_reached the correct behaviour here? Can&apos;t we set effectiveOffset
&gt; to NULL in this case?

Since there are only three functions calling this, it&apos;s in theory impossible that the default would be reached here, so I think an assert is OK (IMHO asserts should be used for &apos;this is in theory impossible, or should never happen&apos;).

&gt; 
&gt; &gt; +        *startOffset = effectiveOffset;
&gt; &gt; +        *endOffset = effectiveOffset + 1;
&gt; 
&gt; what should be the behaviour if effectiveOffset is NULL? should we set
&gt; start/end offsets to 0?

What you mean with NULL exactly? effectiveOffset is a number, not a pointer.

&gt; 
&gt; &gt; +    } else {
&gt; &gt; +        PangoLogAttr* attrs = g_new(PangoLogAttr, textLength+1);
&gt; 
&gt; spaces in textLength+1

Right.

&gt; 
&gt; &gt; +        PangoLanguage* language = pango_language_get_default();
&gt; &gt; +        pango_get_log_attrs(cText, -1, -1, language, attrs, textLength+1);
&gt; 
&gt; ditto.

Right.

&gt; 
&gt; &gt; +      
&gt; &gt; +        isCharacterAttribute predicate;
&gt; &gt; +
&gt; &gt; +        if (boundaryType == ATK_TEXT_BOUNDARY_WORD_START)
&gt; &gt; +            predicate = isWordStart;
&gt; &gt; +        else if (boundaryType == ATK_TEXT_BOUNDARY_WORD_END)
&gt; &gt; +            predicate = isWordEnd;
&gt; &gt; +        else if (boundaryType == ATK_TEXT_BOUNDARY_SENTENCE_START)
&gt; &gt; +            predicate = isSentenceStart;
&gt; &gt; +        else if (boundaryType == ATK_TEXT_BOUNDARY_SENTENCE_END)
&gt; &gt; +            predicate = isSentenceEnd;
&gt; &gt; +        else
&gt; &gt; +            g_assert_not_reached();
&gt; 
&gt; what should be the default behaviour here?

OK, this is wrong now, because we miss the LINE boundary implementations, and this will crash if someone tries to use them. I think I should just set *startOffset and *endOffset to -1 beforehand and here do a goto to the end of the function (as a temporary solution until everything is implemented). When LINE boundary is done I think an assert would be again correct, since that last option should never be reached.

&gt; 
&gt; &gt; +
&gt; &gt; +        switch(boundaryType) {
&gt; 
&gt; space between switch and (.

Right.

&gt; 
&gt; &gt; +        case ATK_TEXT_BOUNDARY_WORD_START:
&gt; &gt; +        case ATK_TEXT_BOUNDARY_SENTENCE_START:
&gt; &gt; +            if (getTextFunctionType == AfterOffset) {
&gt; &gt; +                // Take the item after the current one in any case
&gt; &gt; +                findCharacterAttribute(predicate, attrs, DirectionForward, offset+1, textLength + 1, startOffset);
&gt; &gt; +                findCharacterAttributeSkip(predicate, 1, attrs, DirectionForward, offset+1, textLength + 1, endOffset);
&gt; 
&gt; Spaces in offset+1. Also, what&apos;s the difference between the two?

Sorry, between what two?

&gt; 
&gt; &gt; +            } else if (getTextFunctionType == AtOffset) {
&gt; &gt; +                // Take the item at point if the offset is in an item or
&gt; &gt; +                // the item before otherwise
&gt; &gt; +                findCharacterAttribute(predicate, attrs, DirectionBackwards, offset, textLength + 1, startOffset);
&gt; &gt; +                if (!findCharacterAttribute(predicate, attrs, DirectionForward, offset+1, textLength + 1, endOffset)) {
&gt; &gt; +                    findCharacterAttribute(oppositePredicate(predicate), attrs, DirectionForward, offset+1, textLength + 1, endOffset);
&gt; 
&gt; spaces in offset+1.

Right.

&gt; 
&gt; &gt; +                findCharacterAttribute(predicate, attrs, DirectionForward, offset+1, textLength + 1, endOffset);
&gt; 
&gt; ditto.
&gt; 
&gt; &gt; +            } else {
&gt; &gt; +                // Take the item before the point in any case
&gt; &gt; +                if (!findCharacterAttributeSkip(predicate, 1, attrs, DirectionBackwards, offset, textLength + 1, startOffset)) {
&gt; &gt; +                    int tmpOffset;
&gt; &gt; +                    // No match before offset, take the first opposite match at or before the offset
&gt; &gt; +                    findCharacterAttribute(predicate, attrs, DirectionBackwards, offset, textLength + 1, &amp;tmpOffset);
&gt; &gt; +                    findCharacterAttribute(oppositePredicate(predicate), attrs, DirectionBackwards, tmpOffset-1, textLength + 1, startOffset);
&gt; 
&gt; spaces in tmpOffset-1.
&gt; 
&gt; &gt; +        default:
&gt; &gt; +            g_assert_not_reached();
&gt; 
&gt; is asserting the right behaviour here?

Since we will exit early for unknown boundaries, I think it is.

&gt; 
&gt; &gt; +    char* start = g_utf8_offset_to_pointer(cText, (glong)*startOffset);
&gt; &gt; +    char* end = g_utf8_offset_to_pointer(cText, (glong)*endOffset);
&gt; &gt; +    char* resultText = g_strndup(start, end - start);
&gt; &gt; +    g_free(cText);
&gt; &gt; +    return resultText;
&gt; 
&gt; should we g_strdup resultText?

I am already doing that, see two lines up.

&gt; 
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +static gchar* webkit_accessible_text_get_text_after_offset(AtkText* text, gint offset, AtkTextBoundary boundaryType, gint* startOffset, gint* endOffset)
&gt; &gt; +{
&gt; &gt; +    return getTextHelper(AfterOffset, text, offset, boundaryType, startOffset, endOffset);
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +static gchar* webkit_accessible_text_get_text_at_offset(AtkText* text, gint offset, AtkTextBoundary boundaryType, gint* startOffset, gint* endOffset)
&gt; &gt; +{
&gt; &gt; +    return getTextHelper(AtOffset, text, offset, boundaryType, startOffset, endOffset);
&gt; &gt;  }
&gt; &gt;  
&gt; &gt; -static gchar* webkit_accessible_text_get_text_before_offset(AtkText* text, gint offset, AtkTextBoundary boundary_type, gint* start_offset, gint* end_offset)
&gt; &gt; +static gchar* webkit_accessible_text_get_text_before_offset(AtkText* text, gint offset, AtkTextBoundary boundaryType, gint* startOffset, gint* endOffset)
&gt; &gt; +{
&gt; &gt; +    return getTextHelper(BeforeOffset, text, offset, boundaryType, startOffset, endOffset);
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +static gunichar webkit_accessible_text_get_character_at_offset(AtkText* text, gint offset)
&gt; 
&gt; I think we should start using WebKit-style for the function names here.

Next patch perhaps, to do it all at once?

&gt; 
&gt; r- for the style issues and the crash Joanmarie reported in comment #16. Would
&gt; also be nice to work out the default behaviour instead of just asserting.
&gt; 

OK, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122833</commentid>
    <comment_count>20</comment_count>
      <attachid>30614</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-05-23 03:39:59 -0700</bug_when>
    <thetext>Created attachment 30614
gettextv4.patch

This fixes all issues raised in the comment, plus the crash with LINE boundary and tests to check that using LINE boundary does not crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123434</commentid>
    <comment_count>21</comment_count>
      <attachid>30614</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-05-28 10:40:38 -0700</bug_when>
    <thetext>Comment on attachment 30614
gettextv4.patch

&gt; +typedef int (*advanceFunc) (int);
&gt; +
&gt; +static int increaseInt(int i) {
&gt; +    return i + 1;
&gt; +}
&gt; +
&gt; +static int decreaseInt(int i) {
&gt; +    return i - 1;
&gt; +}
[...]
&gt; +static bool findCharacterAttribute(isCharacterAttribute predicateFunction, PangoLogAttr* attributes, Direction direction, int startOffset, int attrsLength, int* resultOffset)
&gt; +{
&gt; +    advanceFunc advanceFunc = direction == DirectionForward ? increaseInt : decreaseInt;
&gt; +
&gt; +    *resultOffset = -1;
&gt; +
&gt; +    for (int i = startOffset; i &gt;= 0 &amp;&amp; i &lt; attrsLength; i = advanceFunc(i)) {

The patch looks good to me, except for this nitpick. I think using the advanceFunc strategy here is a bit overblown. You should be able to use a simple int variable here.

int advanceBy = direction == DirectionForward ? 1 : -1;

for (int i = startOffset; i &gt;= 0 &amp;&amp; i &lt; attrsLength; i = i + advanceBy) {

If there&apos;s a reason that escaped my eye, please not in a comment =).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123637</commentid>
    <comment_count>22</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-05-29 16:00:46 -0700</bug_when>
    <thetext>Patch landed in r44246.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123668</commentid>
    <comment_count>23</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-05-29 19:15:55 -0700</bug_when>
    <thetext>The line boundaries are still not implemented, this bug is not fixed yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124612</commentid>
    <comment_count>24</comment_count>
      <attachid>30614</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-05 19:58:18 -0700</bug_when>
    <thetext>Comment on attachment 30614
gettextv4.patch

clearing review flag so it won&apos;t appear in the commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124766</commentid>
    <comment_count>25</comment_count>
      <attachid>31049</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-06-08 07:08:54 -0700</bug_when>
    <thetext>Created attachment 31049
gailtextutil.patch

This uses GailTextUtil to implement the get_text functions, instead of my own lesser implementation. It should add support for all boundary types, but that&apos;s untested for now (I&apos;ll move into this now). It still passes all the tests we have though, fixing two bugs/oversights on top of that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124768</commentid>
    <comment_count>26</comment_count>
      <attachid>31051</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-06-08 08:31:24 -0700</bug_when>
    <thetext>Created attachment 31051
uselayout.patch

Pass a properly initialized PangoLayout to GailTextUtil, needed when using LINE boundaries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124769</commentid>
    <comment_count>27</comment_count>
      <attachid>31052</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-06-08 08:31:52 -0700</bug_when>
    <thetext>Created attachment 31052
unifytextaccess.patch

Reduce some duplicated code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125120</commentid>
    <comment_count>28</comment_count>
      <attachid>31049</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-10 04:05:28 -0700</bug_when>
    <thetext>Comment on attachment 31049
gailtextutil.patch

&gt; -static bool findCharacterAttributeSkip(isCharacterAttribute predicateFunction, unsigned skip, PangoLogAttr* attributes, Direction direction, int startOffset, int attrsLength, int* resultOffset)
&gt; +static GailTextUtil* getGailTextUtilForAtk(AtkText* textObject)
&gt;  {
&gt; -    int tmpOffset;
&gt; +    gpointer data = g_object_get_data(G_OBJECT(textObject), &quot;webkit-accessible-gail-text-util&quot;);



&gt;  static gchar* webkit_accessible_text_get_text_after_offset(AtkText* text, gint offset, AtkTextBoundary boundaryType, gint* startOffset, gint* endOffset)
&gt;  {
&gt; -    return getTextHelper(AfterOffset, text, offset, boundaryType, startOffset, endOffset);
&gt; +    return gail_text_util_get_text(getGailTextUtilForAtk(text), NULL, GAIL_AFTER_OFFSET, boundaryType, offset, startOffset, endOffset);
&gt;  }
&gt;  
&gt;  static gchar* webkit_accessible_text_get_text_at_offset(AtkText* text, gint offset, AtkTextBoundary boundaryType, gint* startOffset, gint* endOffset)
&gt;  {
&gt; -    return getTextHelper(AtOffset, text, offset, boundaryType, startOffset, endOffset);
&gt; +    return gail_text_util_get_text(getGailTextUtilForAtk(text), NULL, GAIL_AT_OFFSET, boundaryType, offset, startOffset, endOffset);
&gt;  }
&gt;  
&gt;  static gchar* webkit_accessible_text_get_text_before_offset(AtkText* text, gint offset, AtkTextBoundary boundaryType, gint* startOffset, gint* endOffset)
&gt;  {
&gt; -    return getTextHelper(BeforeOffset, text, offset, boundaryType, startOffset, endOffset);
&gt; +    return gail_text_util_get_text(getGailTextUtilForAtk(text), NULL, GAIL_BEFORE_OFFSET, boundaryType, offset, startOffset, endOffset);
&gt;  }

Would be nice if we can refactor these in the future.

Looks fine. Are we OK with depending on libgail? If so, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125122</commentid>
    <comment_count>29</comment_count>
      <attachid>31051</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-10 04:36:46 -0700</bug_when>
    <thetext>Comment on attachment 31051
uselayout.patch

&gt; From f00e7bd148421009d2178db814c4ed4cb20c1074 Mon Sep 17 00:00:00 2001
&gt; From: Xan Lopez &lt;xlopez@igalia.com&gt;
&gt; Date: Mon, 8 Jun 2009 18:20:51 +0300
&gt; Subject: [PATCH] 2009-06-08  Xan Lopez  &lt;xlopez@igalia.com&gt;
&gt; 
&gt;         Reviewed by NOBODY (OOPS!).
&gt; 
&gt;         https://bugs.webkit.org/show_bug.cgi?id=25415
&gt;         [GTK][ATK] Please implement support for get_text_at_offset
&gt; 
&gt;         Pass a PangoLayout to the GailTextUtil function calls.
&gt; 
&gt;         It&apos;s needed for LINE boundary calls to work correctly.
&gt; 
&gt;         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
&gt;         (updateLayout):
&gt;         (getPangoLayoutForAtk):
&gt;         (webkit_accessible_text_get_text_after_offset):
&gt;         (webkit_accessible_text_get_text_at_offset):
&gt; ---
&gt;  WebCore/ChangeLog                                  |   17 ++++++++
&gt;  .../gtk/AccessibilityObjectWrapperAtk.cpp          |   41 ++++++++++++++++++-
&gt;  2 files changed, 55 insertions(+), 3 deletions(-)
&gt; 
&gt; diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
&gt; index 0334758..694f595 100644
&gt; --- a/WebCore/ChangeLog
&gt; +++ b/WebCore/ChangeLog
&gt; @@ -5,6 +5,23 @@
&gt;          https://bugs.webkit.org/show_bug.cgi?id=25415
&gt;          [GTK][ATK] Please implement support for get_text_at_offset
&gt;  
&gt; +        Pass a PangoLayout to the GailTextUtil function calls.
&gt; +
&gt; +        It&apos;s needed for LINE boundary calls to work correctly.
&gt; +
&gt; +        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
&gt; +        (updateLayout):
&gt; +        (getPangoLayoutForAtk):
&gt; +        (webkit_accessible_text_get_text_after_offset):
&gt; +        (webkit_accessible_text_get_text_at_offset):
&gt; +
&gt; +2009-06-08  Xan Lopez  &lt;xlopez@igalia.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=25415
&gt; +        [GTK][ATK] Please implement support for get_text_at_offset
&gt; +
&gt;          Use GailUtilText instead of my crappy partial reimplementation of
&gt;          it. This should add support for LINE boundaries too, although it&apos;s
&gt;          mostly untested for now.
&gt; diff --git a/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp b/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp
&gt; index e70aaa0..bddac93 100644
&gt; --- a/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp
&gt; +++ b/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp
&gt; @@ -41,6 +41,7 @@
&gt;  #include &quot;Editor.h&quot;
&gt;  #include &quot;Frame.h&quot;
&gt;  #include &quot;FrameView.h&quot;
&gt; +#include &quot;HostWindow.h&quot;
&gt;  #include &quot;HTMLNames.h&quot;
&gt;  #include &quot;IntRect.h&quot;
&gt;  #include &quot;NotImplemented.h&quot;
&gt; @@ -503,19 +504,53 @@ static GailTextUtil* getGailTextUtilForAtk(AtkText* textObject)
&gt;      return gailTextUtil;
&gt;  }
&gt;  
&gt; +// We can use the same callback for both &apos;style-set&apos; and
&gt; +// &apos;direction-changed&apos;, since we don&apos;t care about neither of their
&gt; +// second parameters.
&gt; +static void updateLayout(GtkWidget* widget, gpointer dummy, gpointer userData)
&gt; +{
&gt; +   gpointer data = g_object_get_data(G_OBJECT(userData), &quot;webkit-accessible-pango-layout&quot;);
&gt; +   if (!data)
&gt; +       return;
&gt; +
&gt; +   pango_layout_context_changed(static_cast&lt;PangoLayout*&gt;(data));
&gt; +}
&gt; +
&gt; +static PangoLayout* getPangoLayoutForAtk(AtkText* textObject)
&gt; +{
&gt; +    gpointer data = g_object_get_data(G_OBJECT(textObject), &quot;webkit-accessible-pango-layout&quot;);
&gt; +    if (data)
&gt; +        return static_cast&lt;PangoLayout*&gt;(data);
&gt; +
&gt; +    String text;
&gt; +    AccessibilityObject* coreObject = core(textObject);
&gt; +
&gt; +    if (coreObject-&gt;isTextControl())
&gt; +        text = coreObject-&gt;text();
&gt; +    else
&gt; +        text = coreObject-&gt;textUnderElement();
&gt; +
&gt; +    PlatformWidget webView = coreObject-&gt;document()-&gt;view()-&gt;hostWindow()-&gt;platformWindow();

Might be good to null-check hostWindow() and maybe platformWindow() too.

Looks fine. r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125123</commentid>
    <comment_count>30</comment_count>
      <attachid>31052</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-10 04:39:20 -0700</bug_when>
    <thetext>Comment on attachment 31052
unifytextaccess.patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125124</commentid>
    <comment_count>31</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-06-10 04:48:48 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; Would be nice if we can refactor these in the future.

Mmm, refactor what exactly?

&gt; 
&gt; Looks fine. Are we OK with depending on libgail? If so, r=me.
&gt; 

Ideally a11y in general should be optional I think (uh oh, here we go again), but other than that I believe we are OK depending on it yeah (and Holger and Gustavo agree on this per conversations on IRC).
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125125</commentid>
    <comment_count>32</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-10 05:08:31 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; (In reply to comment #28)
&gt; &gt; Would be nice if we can refactor these in the future.
&gt; 
&gt; Mmm, refactor what exactly?

AFAICS, the only difference between these three are whether it&apos;s an at/before/after offset. I think we can compress it into one function.

&gt; &gt; Looks fine. Are we OK with depending on libgail? If so, r=me.
&gt; &gt; 
&gt; 
&gt; Ideally a11y in general should be optional I think (uh oh, here we go again),
&gt; but other than that I believe we are OK depending on it yeah (and Holger and
&gt; Gustavo agree on this per conversations on IRC).

Cool
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125126</commentid>
    <comment_count>33</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-06-10 05:11:48 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; (In reply to comment #31)
&gt; &gt; (In reply to comment #28)
&gt; &gt; &gt; Would be nice if we can refactor these in the future.
&gt; &gt; 
&gt; &gt; Mmm, refactor what exactly?
&gt; 
&gt; AFAICS, the only difference between these three are whether it&apos;s an
&gt; at/before/after offset. I think we can compress it into one function.
&gt; 

Well, each one is the implementation of a different AtkText method with identical parameter list, so if we use the same function for all three there would be no way of knowing if we have to do AT/BEFORE/AFTER. So this can&apos;t be refactored.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125132</commentid>
    <comment_count>34</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-06-10 06:11:33 -0700</bug_when>
    <thetext>Patches committed (with the NULL check suggested) as r4455{7,8,9}. Closing the bug, thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125250</commentid>
    <comment_count>35</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-06-10 17:23:12 -0700</bug_when>
    <thetext>It looks like returning the actual/displayed line isn&apos;t working. Instead, it seems like the full text object is being returned.

Test I tried:

On Orca wiki (live.gnome.org/Orca), under the first heading, there is a short paragraph. I sized my browser window so that the text on screen wrapped across 6 lines.

&gt;&gt; acc.queryText().getText(0, -1)
&apos;Before you are tempted to post a note to every mailing list on the planet, like every other user has done, please read this. Speech and audio integration is not working well on Jaunty. You need to install with the blindness profile:&apos;

&gt;&gt; acc.queryText().characterCount
232

&gt;&gt; acc.queryText().getTextAtOffset(100, TEXT_BOUNDARY_LINE_START)
(&apos;Before you are tempted to post a note to every mailing list on the planet, like every other user has done, please read this. Speech and audio integration is not working well on Jaunty. You need to install with the blindness profile:&apos;,
 0,
 232)

Reopening. Sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125543</commentid>
    <comment_count>36</comment_count>
      <attachid>31049</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-12 15:11:26 -0700</bug_when>
    <thetext>Comment on attachment 31049
gailtextutil.patch

Clearing review flag as the patch has landed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125544</commentid>
    <comment_count>37</comment_count>
      <attachid>31051</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-12 15:11:47 -0700</bug_when>
    <thetext>Comment on attachment 31051
uselayout.patch

Clearing review flag as the patch has landed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125545</commentid>
    <comment_count>38</comment_count>
      <attachid>31052</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-12 15:12:24 -0700</bug_when>
    <thetext>Comment on attachment 31052
unifytextaccess.patch

Clearing review flag as the patch has landed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130428</commentid>
    <comment_count>39</comment_count>
      <attachid>32451</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-07-08 07:21:11 -0700</bug_when>
    <thetext>Created attachment 32451
lineboundary.patch

OK, this patch seems to at least get the basics right from my testing. Unfortunately it copies a bit of code from FontGtk.cpp, we need to share it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130501</commentid>
    <comment_count>40</comment_count>
      <attachid>32471</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-07-08 14:07:53 -0700</bug_when>
    <thetext>Created attachment 32471
Screenshot illustrating a problem

This is definitely a great start!

I suspect this is going to take some time to fully sort through. Therefore once things are reasonably close to being correct, I propose we close this bug and open new, specific bugs for problems getting the text of a line. In the meantime....

1. I found a case where things start out working as expected but then fail. I&apos;m not sure why/what&apos;s special at the failure point. Rather than attempt to explain it, I&apos;ve attached a screenshot so you can see the URL, window size and text wrapping, hierarchy, what I typed, where things worked and failed, etc., etc.

2. After taking the above screenshot, I tried resizing the Epiphany window and getting the lines again. I got the same results as before (i.e. as if the lines hadn&apos;t changed).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130524</commentid>
    <comment_count>41</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-07-08 14:42:49 -0700</bug_when>
    <thetext>Another (hopefully reproducible) example of the line contents getting cut off unexpectedly:

In the table of attachments for this bug, highlight the accessible text object which corresponds to the attachment size and do:

    acc.queryText().getTextAtOffset(0, TEXT_BOUNDARY_LINE_START)

Examples:

    * (&apos;(17.85 KB, p&apos;, 0, 12)
    * (&apos;(5.28 KB, p&apos;, 0, 11)
    * (&apos;(263.30 KB, i&apos;, 0, 13)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131175</commentid>
    <comment_count>42</comment_count>
      <attachid>32451</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-07-12 10:10:32 -0700</bug_when>
    <thetext>Comment on attachment 32451
lineboundary.patch

&gt; +static void utf16_to_utf8(const UChar* aText, gint aLength, char* &amp;text, gint &amp;length)
&gt; +{
&gt; +    gboolean need_copy = FALSE;

I believe we want UTF16ToUTF8, and needCopy, here, though the first one looks blergh. Maybe Utf16ToUtf8? Though the style doesn&apos;t like that for acronyms...

&gt; +        if (!aText[i] || IS_LOW_SURROGATE(aText[i])) {
&gt; +            need_copy = TRUE;
&gt; +            break;
&gt; +        }
&gt; +        else if (IS_HIGH_SURROGATE(aText[i])) {

The else if line should be after the if&apos;s } here.

&gt; +    gint new_length = 0;

newLength

It would be good to have a comment on top of convertUniCharToUTF8 explaining that it is not really general, as the name seems to imply, and that it is concerned with how the layouting is done. I know there&apos;s a comment that may lead people to notice this in the middle of the function, but then again, it would be best to make this obvious.

The rest looks fine to me, so r=me with the style changes. It&apos;s a pitty you had to do all that messing with the text to get it right, but I figure it would be much harder to change the way webcore works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131177</commentid>
    <comment_count>43</comment_count>
      <attachid>32451</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-07-12 10:29:56 -0700</bug_when>
    <thetext>Comment on attachment 32451
lineboundary.patch

Committed as r45760 with the suggested fixes, removing from queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131827</commentid>
    <comment_count>44</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-07-15 02:15:40 -0700</bug_when>
    <thetext>(In reply to comment #43)
&gt; (From update of attachment 32451 [details])
&gt; Committed as r45760 with the suggested fixes, removing from queue.

Are there more upcoming patches for this bug? Can we close it? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131857</commentid>
    <comment_count>45</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-07-15 05:21:34 -0700</bug_when>
    <thetext>(In reply to comment #44)
&gt; (In reply to comment #43)
&gt; &gt; (From update of attachment 32451 [details] [details])
&gt; &gt; Committed as r45760 with the suggested fixes, removing from queue.
&gt; 
&gt; Are there more upcoming patches for this bug? Can we close it? Thanks.

I&apos;m okay with closing it, but then we need to open a new bug for the issues raised in comment 40 and comment 41.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131858</commentid>
    <comment_count>46</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-07-15 05:27:20 -0700</bug_when>
    <thetext>(In reply to comment #45)
&gt; (In reply to comment #44)
&gt; &gt; (In reply to comment #43)
&gt; &gt; &gt; (From update of attachment 32451 [details] [details] [details])
&gt; &gt; &gt; Committed as r45760 with the suggested fixes, removing from queue.
&gt; &gt; 
&gt; &gt; Are there more upcoming patches for this bug? Can we close it? Thanks.
&gt; 
&gt; I&apos;m okay with closing it, but then we need to open a new bug for the issues
&gt; raised in comment 40 and comment 41.

Thanks Joannie for the status. It&apos;s fine.  I&apos;ll leave the bug open.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131859</commentid>
    <comment_count>47</comment_count>
      <attachid>32451</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-07-15 05:28:08 -0700</bug_when>
    <thetext>Comment on attachment 32451
lineboundary.patch

Clearing review. Patch landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133750</commentid>
    <comment_count>48</comment_count>
      <attachid>33258</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-07-22 05:44:07 -0700</bug_when>
    <thetext>Created attachment 33258
leninbytes.patch

Fix a problem in the g_substr function wrt length in characters != length in bytes for utf8 strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133751</commentid>
    <comment_count>49</comment_count>
      <attachid>33259</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-07-22 05:44:39 -0700</bug_when>
    <thetext>Created attachment 33259
textencoding.patch

Use TextEncoding facilities for UTF16-&gt;UTF8 conversion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134431</commentid>
    <comment_count>50</comment_count>
      <attachid>33259</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-07-24 00:49:53 -0700</bug_when>
    <thetext>Comment on attachment 33259
textencoding.patch

&gt; +static gchar* utf8_substr(const gchar* string, gint start, gint end)

Style - utf8Substr or similar.

&gt;  {
&gt;      gchar* startPtr = g_utf8_offset_to_pointer(string, start);
&gt;      gsize lenInBytes = g_utf8_offset_to_pointer(string, end) -  startPtr + 1;
&gt; @@ -581,27 +530,23 @@ static gchar* g_substr(const gchar* string, gint start, gint end)
&gt;  // internals of WebCore&apos;s text presentation.
&gt;  static gchar* convertUniCharToUTF8(const UChar* characters, gint length, int from, int to)
&gt;  {
&gt; -    gchar* utf8 = 0;
&gt; -    gint newLength = 0;
&gt; -    UTF16ToUTF8(characters, length, utf8, newLength);
&gt; -    if (!utf8)
&gt; -        return NULL;
&gt; -
&gt; -    gchar *pos = g_substr(utf8, from, to);
&gt; -    g_free(utf8);
&gt; -    gint len = strlen(pos);
&gt; +    CString stringUTF8 = UTF8Encoding().encode(characters, length, QuestionMarksForUnencodables);
&gt; +    gchar* utf8 = utf8_substr(stringUTF8.data(), from, to);
&gt; +    if (!g_utf8_validate(utf8, -1, NULL))
&gt; +        return 0;

Please change utf8 to something like utf8String. Also maybe free utf8 as well? It may not validate but that doesn&apos;t mean utf8 is NULL either.

&gt; +    gint len = strlen(utf8);

Use gsize here too.

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134440</commentid>
    <comment_count>51</comment_count>
      <attachid>33258</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-07-24 01:07:09 -0700</bug_when>
    <thetext>Comment on attachment 33258
leninbytes.patch

&gt;  static gchar* g_substr(const gchar* string, gint start, gint end)
&gt;  {
&gt; -    gsize len = end - start + 1;
&gt; -    gchar* output = static_cast&lt;gchar*&gt;(g_malloc0(len + 1));
&gt; -    return g_utf8_strncpy(output, string +start, len);
&gt; +    gchar* startPtr = g_utf8_offset_to_pointer(string, start);

According to the doc, g_utf8_offset_to_pointer doesn&apos;t check if offset is within the boundaries of string. Can we add a check here?

&gt; +    gsize lenInBytes = g_utf8_offset_to_pointer(string, end) -  startPtr + 1;

Ditto for &apos;end&apos; and check if startPtr is 0 first. Looks fine otherwise. r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134445</commentid>
    <comment_count>52</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-07-24 01:14:14 -0700</bug_when>
    <thetext>Assign bug to myself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134457</commentid>
    <comment_count>53</comment_count>
      <attachid>33258</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-07-24 01:44:14 -0700</bug_when>
    <thetext>Comment on attachment 33258
leninbytes.patch

Landed as r46342, clearing flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134458</commentid>
    <comment_count>54</comment_count>
      <attachid>33259</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-07-24 01:44:35 -0700</bug_when>
    <thetext>Comment on attachment 33259
textencoding.patch

Landed as r46343, clearing flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134983</commentid>
    <comment_count>55</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-07-27 13:04:35 -0700</bug_when>
    <thetext>Xan, I just tried the latest WebKit with the latest Epiphany, and lines are looking much, much better. Thanks!

So that leaves two issues:

1. Updating what is returned if the user resizes the window (not a huge big deal, but needs doing), and:

2. When I attempted to verify the issue in comment #41 by performing the exact steps I outlined there, as soon as I pressed Return, Epiphany crashed with the following spewed out without my asking:

*** glibc detected *** epiphany: munmap_chunk(): invalid pointer: 0x097beb0b ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0x2403e44]
/usr/lib/libglib-2.0.so.0(g_free+0x36)[0x612f16]
/usr/lib/libwebkit-1.0.so.2[0x17a2cf7]
/usr/lib/libwebkit-1.0.so.2[0x17a3b64]
/usr/lib/libatk-1.0.so.0(atk_text_get_text_at_offset+0xb3)[0x1992f3]
/usr/lib/libspi.so.0[0x1b46d6a]
/usr/lib/libspi.so.0(_ORBIT_skel_small_Accessibility_Text_getTextAtOffset+0x3c)[0x1b3b29c]
/usr/lib/libORBit-2.so.0[0x81d537]
/usr/lib/libORBit-2.so.0(ORBit_OAObject_invoke+0x35)[0x823b45]
/usr/lib/libORBit-2.so.0(ORBit_small_invoke_adaptor+0x113)[0x80fe63]
/usr/lib/libORBit-2.so.0[0x821649]
/usr/lib/libORBit-2.so.0[0x821d22]
/usr/lib/libORBit-2.so.0[0x821ed9]
/usr/lib/libORBit-2.so.0(ORBit_handle_request+0x52)[0x823f92]
/usr/lib/libORBit-2.so.0(giop_connection_handle_input+0x385)[0x80c155]
/usr/lib/libORBit-2.so.0[0x82b743]
/usr/lib/libORBit-2.so.0[0x82e016]
/usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x1f8)[0x60abc8]
/usr/lib/libglib-2.0.so.0[0x60e470]
/usr/lib/libglib-2.0.so.0(g_main_loop_run+0x1bf)[0x60e8df]
/usr/lib/libgtk-x11-2.0.so.0(gtk_main+0xb9)[0x1ef1a19]
epiphany(main+0x69f)[0x806f15f]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe5)[0x23ab7c5]
epiphany[0x806e6e1]
======= Memory map: ========
00110000-00145000 r-xp 00000000 08:01 7192       /usr/lib/libxslt.so.1.1.24
00145000-00146000 r--p 00034000 08:01 7192       /usr/lib/libxslt.so.1.1.24
00146000-00147000 rw-p 00035000 08:01 7192       /usr/lib/libxslt.so.1.1.24
00147000-0017a000 r-xp 00000000 08:01 29469      /usr/lib/libgconf-2.so.4.1.5
0017a000-0017b000 r--p 00033000 08:01 29469      /usr/lib/libgconf-2.so.4.1.5
0017b000-0017d000 rw-p 00034000 08:01 29469      /usr/lib/libgconf-2.so.4.1.5
0017d000-00185000 r-xp 00000000 08:01 7091       /usr/lib/libstartup-notification-1.so.0.0.0
00185000-00186000 r--p 00008000 08:01 7091       /usr/lib/libstartup-notification-1.so.0.0.0
00186000-00187000 rw-p 00009000 08:01 7091       /usr/lib/libstartup-notification-1.so.0.0.0
00187000-001a3000 r-xp 00000000 08:01 6270       /usr/lib/libatk-1.0.so.0.2609.1
001a3000-001a4000 r--p 0001c000 08:01 6270       /usr/lib/libatk-1.0.so.0.2609.1
001a4000-001a5000 rw-p 0001d000 08:01 6270       /usr/lib/libatk-1.0.so.0.2609.1
001a5000-001ce000 r-xp 00000000 08:01 37655      /usr/lib/libpangoft2-1.0.so.0.2400.4
001ce000-001cf000 r--p 00028000 08:01 37655      /usr/lib/libpangoft2-1.0.so.0.2400.4
001cf000-001d0000 rw-p 00029000 08:01 37655      /usr/lib/libpangoft2-1.0.so.0.2400.4
001d0000-001d2000 r-xp 00000000 08:01 6211       /usr/lib/libXinerama.so.1.0.0
001d2000-001d3000 rw-p 00001000 08:01 6211       /usr/lib/libXinerama.so.1.0.0
001d3000-001e2000 r-xp 00000000 08:01 6276       /usr/lib/libavahi-client.so.3.2.5
001e2000-001e3000 r--p 0000f000 08:01 6276       /usr/lib/libavahi-client.so.3.2.5
001e3000-001e4000 rw-p 00010000 08:01 6276       /usr/lib/libavahi-client.so.3.2.5
001e4000-0031d000 r-xp 00000000 08:01 77747      /usr/lib/libxml2.so.2.7.3
0031d000-00321000 r--p 00139000 08:01 77747      /usr/lib/libxml2.so.2.7.3
00321000-00322000 rw-p 0013d000 08:01 77747      /usr/lib/libxml2.so.2.7.3
00322000-00323000 rw-p 00000000 00:00 0 
00323000-0032e000 r-xp 00000000 08:01 37654      /usr/lib/libpangocairo-1.0.so.0.2400.4
0032e000-0032f000 r--p 0000a000 08:01 37654      /usr/lib/libpangocairo-1.0.so.0.2400.4
0032f000-00330000 rw-p 0000b000 08:01 37654      /usr/lib/libpangocairo-1.0.so.0.2400.4
00330000-00334000 r-xp 00000000 08:01 57734      /usr/lib/libsoup-gnome-2.4.so.1.2.0
00334000-00335000 r--p 00003000 08:01 57734      /usr/lib/libsoup-gnome-2.4.so.1.2.0
00335000-00336000 rw-p 00004000 08:01 57734      /usr/lib/libsoup-gnome-2.4.so.1.2.0
00336000-00354000 r-xp 00000000 08:01 6385       /usr/lib/libdbus-glib-1.so.2.1.0
00354000-00355000 r--p 0001e000 08:01 6385       /usr/lib/libdbus-glib-1.so.2.1.0
00355000-00356000 rw-p 0001f000 08:01 6385       /usr/lib/libdbus-glib-1.so.2.1.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134999</commentid>
    <comment_count>56</comment_count>
      <attachid>33565</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-07-27 13:26:05 -0700</bug_when>
    <thetext>Created attachment 33565
dontcachelayout.patch

I believe this should fix the issue with the function not reacting to layout changes. About the crasher, if you can provide a trace with full debug symbols that would help (you need to compile WebKit with --enable-debug), otherwise I&apos;ll get to it tomorrow. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135000</commentid>
    <comment_count>57</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-07-27 13:26:44 -0700</bug_when>
    <thetext>Another instance of a segfault with get_text_at_offset:

1. View Google in Epiphany. Don&apos;t type anything in the search entry.

2. In Accerciser, locate the search entry in the tree of accessibles on the left. With it highlighted, type the following in the iPython console:

  acc.queryText().getTextAtOffset(0, TEXT_BOUNDARY_LINE_START)

Program received signal SIGSEGV, Segmentation fault.
0x0174fb5c in getPangoLayoutForAtk(_AtkText*) () from /usr/lib/libwebkit-1.0.so.2
Current language:  auto; currently asm
(gdb) thread apply all bt

Thread 1 (Thread 0xb725a740 (LWP 18561)):
#0  0x0174fb5c in getPangoLayoutForAtk(_AtkText*) () from /usr/lib/libwebkit-1.0.so.2
#1  0x01750b64 in webkit_accessible_text_get_text_at_offset(_AtkText*, int, AtkTextBoundary, int*, int*) () from /usr/lib/libwebkit-1.0.so.2
#2  0x002ff2f3 in atk_text_get_text_at_offset () from /usr/lib/libatk-1.0.so.0
#3  0x06c94d6a in impl_getTextAtOffset (servant=0xa087564, offset=0, 
    type=Accessibility_TEXT_BOUNDARY_LINE_START, startOffset=0xbf903f90, endOffset=0xbf903f70, 
    ev=0xbf9041dc) at text.c:128
#4  0x06c8929c in _ORBIT_skel_small_Accessibility_Text_getTextAtOffset (_o_servant=0xa087564, 
    _o_retval=0xbf904030, _o_args=0xbf904010, _o_ctx=0xbf9040c8, _o_ev=0xbf9041dc, 
    _impl_getTextAtOffset=0x6c94d20 &lt;impl_getTextAtOffset&gt;) at Accessibility-common.c:744
#5  0x007c0537 in ?? () from /usr/lib/libORBit-2.so.0
#6  0x0a087564 in ?? ()
#7  0xbf904030 in ?? ()
#8  0xbf904010 in ?? ()
#9  0xbf9040c8 in ?? ()
#10 0xbf9041dc in ?? ()
#11 0x06c94d20 in ?? () at text.c:190 from /usr/lib/libspi.so.0
#12 0xbf903f48 in ?? ()
#13 0x007c6b45 in ORBit_OAObject_invoke () from /usr/lib/libORBit-2.so.0
Backtrace stopped: frame did not save the PC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135032</commentid>
    <comment_count>58</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-07-27 15:10:04 -0700</bug_when>
    <thetext>(In reply to comment #56)
&gt; About the crasher, if you can provide a trace with full debug symbols
&gt; that would help (you need to compile WebKit with --enable-debug)

Program received signal SIGABRT, Aborted.
0x00c5c422 in __kernel_vsyscall ()
(gdb) thread apply all bt

Thread 1 (Thread 0xb71fb740 (LWP 8533)):
#0  0x00c5c422 in __kernel_vsyscall ()
#1  0x058ce4c0 in *__GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0x058d1b75 in *__GI_abort () at abort.c:88
#3  0x0590783d in __libc_message (do_abort=2, fmt=0x59e5768 &quot;*** glibc detected *** %s: %s: 0x%s ***\n&quot;)
    at ../sysdeps/unix/sysv/linux/libc_fatal.c:192
#4  0x05911e44 in malloc_printerr (action=2, str=0x59e5794 &quot;munmap_chunk(): invalid pointer&quot;, ptr=0x942e31b) at malloc.c:5994
#5  0x00901f16 in IA__g_free (mem=0x942e31b) at /build/buildd/glib2.0-2.21.3/glib/gmem.c:190
#6  0x018b5f12 in convertUniCharToUTF8 (characters=0x925b120, length=62, from=15, to=25)
    at WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:559
#7  0x018b6102 in getPangoLayoutForAtk (textObject=0x93d4568) at WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:593
#8  0x018b622f in webkit_accessible_text_get_text_at_offset (text=0x93d4568, offset=0, boundaryType=ATK_TEXT_BOUNDARY_LINE_START, 
    startOffset=0xbfd0aa4c, endOffset=0xbfd0aa48) at WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:611
#9  0x0077c2f3 in atk_text_get_text_at_offset (text=0x93d4568, offset=0, boundary_type=ATK_TEXT_BOUNDARY_LINE_START, start_offset=0xbfd0aa4c, 
    end_offset=0xbfd0aa48) at atktext.c:419
#10 0x0304fd6a in impl_getTextAtOffset (servant=0x9461644, offset=0, type=Accessibility_TEXT_BOUNDARY_LINE_START, startOffset=0xbfd0ab20, 
    endOffset=0xbfd0ab00, ev=0xbfd0ad6c) at text.c:128
#11 0x0304429c in _ORBIT_skel_small_Accessibility_Text_getTextAtOffset (_o_servant=0x9461644, _o_retval=0xbfd0abc0, _o_args=0xbfd0aba0, 
    _o_ctx=0xbfd0ac58, _o_ev=0xbfd0ad6c, _impl_getTextAtOffset=0x304fd20 &lt;impl_getTextAtOffset&gt;) at Accessibility-common.c:744
#12 0x00a7d537 in ?? () from /usr/lib/libORBit-2.so.0
#13 0x09461644 in ?? ()
#14 0xbfd0abc0 in ?? ()
#15 0xbfd0aba0 in ?? ()
#16 0xbfd0ac58 in ?? ()
#17 0xbfd0ad6c in ?? ()
#18 0x0304fd20 in ?? () at text.c:190 from /usr/lib/libspi.so.0
#19 0xbfd0aad8 in ?? ()
#20 0x00a83b45 in ORBit_OAObject_invoke () from /usr/lib/libORBit-2.so.0
Backtrace stopped: frame did not save the PC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135072</commentid>
    <comment_count>59</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-07-27 17:24:03 -0700</bug_when>
    <thetext>(In reply to comment #56)
&gt; Created an attachment (id=33565) [details]
&gt; dontcachelayout.patch
&gt; 
&gt; I believe this should fix the issue with the function not reacting to layout
&gt; changes.

Seems to. Thanks!!

I did find another case/example where but is getting cut off prematurely, however. (Sorry.)

At the bottom of http://live.gnome.org/Orca is a line stating who did the last edit.

  acc.name
  &apos;Orca (last edited 2009-07-14 15:13:57 by &apos;

(Note that my window is sized so that the whole thing is on a single line.)

  acc.queryText().getTextAtOffset(0, TEXT_BOUNDARY_LINE_START)
  (&apos;Orca (&apos;, 0, 6)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135155</commentid>
    <comment_count>60</comment_count>
      <attachid>33565</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-07-28 03:28:23 -0700</bug_when>
    <thetext>Comment on attachment 33565
dontcachelayout.patch

There is also an updateLayout callback that currently updates the patch. rs=me on removing the callback and the signal connections, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135157</commentid>
    <comment_count>61</comment_count>
      <attachid>33565</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-07-28 03:54:14 -0700</bug_when>
    <thetext>Comment on attachment 33565
dontcachelayout.patch

Landed as r46466 addressing Gustavo&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136115</commentid>
    <comment_count>62</comment_count>
      <attachid>33565</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-07-30 23:58:02 -0700</bug_when>
    <thetext>Comment on attachment 33565
dontcachelayout.patch

Clearing review flag as this patch was already committed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160716</commentid>
    <comment_count>63</comment_count>
      <attachid>42544</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-11-04 21:17:31 -0800</bug_when>
    <thetext>Created attachment 42544
Fix for the issue in comment 59

This seems to fix the issue I pointed out in comment 59, namely:

&gt; At the bottom of http://live.gnome.org/Orca is a line stating who did the last
&gt; edit.
&gt; 
&gt;   acc.name
&gt;   &apos;Orca (last edited 2009-07-14 15:13:57 by &apos;
&gt; 
&gt; (Note that my window is sized so that the whole thing is on a single line.)
&gt; 
&gt;   acc.queryText().getTextAtOffset(0, TEXT_BOUNDARY_LINE_START)
&gt;   (&apos;Orca (&apos;, 0, 6)

Assuming this solution (or one I generate post-review) is acceptable, I believe that only leaves the invalid pointer issue from comment #55.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160749</commentid>
    <comment_count>64</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-11-05 00:04:55 -0800</bug_when>
    <thetext>(In reply to comment #63)
&gt; Assuming this solution (or one I generate post-review) is acceptable, I believe
&gt; that only leaves the invalid pointer issue from comment #55.

Sorry for the spam. Turns out the segfault reported in comment #57 is still present too....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161407</commentid>
    <comment_count>65</comment_count>
      <attachid>42712</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-11-08 02:36:48 -0800</bug_when>
    <thetext>Created attachment 42712
Fix for the issue in comment 41, 55

It turns out that the segfault would/will occur pretty frequently:

&lt;body&gt;
hello
world
&lt;/body&gt;

is sufficient. What seems to be going on is the modification (corruption?) of utf8String when there is at least one newline char in the source. When we attempt to free the string, GtkLauncher reliably segfaults.

The attach patch solves the problem and doesn&apos;t seem to have any side effects w.r.t. get_text_at_offset. Is there a reason the line in question needs to remain?

Please review. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161409</commentid>
    <comment_count>66</comment_count>
      <attachid>42712</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-11-08 03:37:52 -0800</bug_when>
    <thetext>Comment on attachment 42712
Fix for the issue in comment 41, 55

Well, this is the line that makes us advance to the next paragraph boundary. If you remove it I think this function won&apos;t work for text chunks with more than one of those...? If removing that makes the crash go away I think it&apos;s very likely the problem is some mix-up between lengths in characters and lengths in bytes. What are the indexs the pango function return specified in? Characters? If that is so then advancing the string like we do it there is wrong, and we should use the glib functions for doing so I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161452</commentid>
    <comment_count>67</comment_count>
      <attachid>42720</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-11-08 15:07:10 -0800</bug_when>
    <thetext>Created attachment 42720
What about....? (for the comment 41, 55 crasher)

(In reply to comment #66)
&gt; (From update of attachment 42712 [details])
&gt; Well, this is the line that makes us advance to the next paragraph boundary.

Gotcha. Thanks!

&gt; If that is so then advancing the string like we do it there is wrong, and we
&gt; should use the glib functions for doing so I think.

Which ones in particular? I experimented a bit with g_utf8_offset_to_pointer and g_utf8_pointer_to_offset combined with some other changes and nothing I did seemed to make a difference. :-( Then I looked at the g_free() doc:

  g_free ()
  void  g_free  (gpointer mem);
  Frees the memory pointed to by mem. If mem is NULL it simply returns.
  mem : the memory to free 

I apologize for being new to C++, and for asking what is probably a silly question, but based on the above.... Is the thing which should be freed the memory at the original location and not the new location resulting from doing:

  utf8String += start;

The attached solves the crasher by resetting utf8String to what it was before. It strikes me as inelegant, assuming it is even (more or less) the right thing to do. So I&apos;m not flagging this patch for review, but asking for enlightenment -- or, better still, for the RightAnswer(tm). :-)

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161454</commentid>
    <comment_count>68</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-11-08 15:50:26 -0800</bug_when>
    <thetext>(In reply to comment #67)
&gt; Then I looked at the g_free() doc:
&gt; 
&gt;   g_free ()
&gt;   void  g_free  (gpointer mem);
&gt;   Frees the memory pointed to by mem. If mem is NULL it simply returns.
&gt;   mem : the memory to free 
&gt; 
&gt; I apologize for being new to C++, and for asking what is probably a silly
&gt; question, but based on the above.... Is the thing which should be freed the
&gt; memory at the original location and not the new location resulting from doing:
&gt; 
&gt;   utf8String += start;

You are totally right, good catch. What you pass to free must be a pointer returned by malloc/calloc/realloc, and you modify it with pointer arithmetic you will very likely confuse the underlying memory management system.
&gt; 
&gt; The attached solves the crasher by resetting utf8String to what it was before.
&gt; It strikes me as inelegant, assuming it is even (more or less) the right thing
&gt; to do. So I&apos;m not flagging this patch for review, but asking for enlightenment
&gt; -- or, better still, for the RightAnswer(tm). :-)

Well, this is wrong too, since it will be allocating a new string (and was fixing the problem by means of not actually freeing the original string). What you need to do is to save the original pointer, and just use a temporary one to advance the string. So something like, 

utf8string = ptr = utf8Substr...;

Then use ptr in the loop, and call free on utf8String in the end.

&gt; 
&gt; Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161457</commentid>
    <comment_count>69</comment_count>
      <attachid>42722</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-11-08 16:27:27 -0800</bug_when>
    <thetext>Created attachment 42722
Use temporary pointer to advance the string (comment 41, 55 crasher)

Xan, thank you so much for your help!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161514</commentid>
    <comment_count>70</comment_count>
      <attachid>42722</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-11-09 00:06:10 -0800</bug_when>
    <thetext>Comment on attachment 42722
Use temporary pointer to advance the string (comment 41, 55 crasher)

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161516</commentid>
    <comment_count>71</comment_count>
      <attachid>42722</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-09 00:18:13 -0800</bug_when>
    <thetext>Comment on attachment 42722
Use temporary pointer to advance the string (comment 41, 55 crasher)

Clearing flags on attachment: 42722

Committed r50641: &lt;http://trac.webkit.org/changeset/50641&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161517</commentid>
    <comment_count>72</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-09 00:18:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161549</commentid>
    <comment_count>73</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-11-09 06:05:47 -0800</bug_when>
    <thetext>Reopening.

Xan, do you have an opinion on my proposed fix for the issue in comment 59?

The one other issue besides the issue in comment 59 is the one in comment 57. I&apos;ll look at that one today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161998</commentid>
    <comment_count>74</comment_count>
      <attachid>42855</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-11-10 02:39:07 -0800</bug_when>
    <thetext>Created attachment 42855
Fix for the issue in comment 57

It turns out that the segfault occurs in all entries and whether there is text or not. (At the time I made the comment in question, entries didn&apos;t implement the accessible text interface.)

This patch seems to solve the problem and cause get_text_at_offset to do the right thing in single-line and multi-line entries.

Note that this patch assumes the patch for comment 59. Not so much in terms of function as in terms of whether this patch will apply cleanly. :-)

Also note that I think this is the last of the get_text_at_offset-specific issues. And there was much rejoicing. Yea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162446</commentid>
    <comment_count>75</comment_count>
      <attachid>42544</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-11-11 04:52:54 -0800</bug_when>
    <thetext>Comment on attachment 42544
Fix for the issue in comment 59

Can&apos;t you simply check if &apos;box&apos; is not null to add the \n? I&apos;m not 100% sure nextOnLineExists does exactly what we want, since I&apos;m not very familiar with these APIs. It might we the right thing, but then we should be probably using netxOnLine() instead of nextTextboxy()? If you feel like checking that in detail feel free to do so, otherwise just check the value of box. r- for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162447</commentid>
    <comment_count>76</comment_count>
      <attachid>42855</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-11-11 04:56:36 -0800</bug_when>
    <thetext>Comment on attachment 42855
Fix for the issue in comment 57

Marking r- for now since the previous patch needs some changes. Also, doesn&apos;t this has the same problem in the textControl branch with one extra \n? (Hopefully I&apos;ll have my computer back tomorrow and I&apos;ll be able to review this in detail!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162581</commentid>
    <comment_count>77</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-11-11 11:18:45 -0800</bug_when>
    <thetext>(In reply to comment #75)
&gt; (From update of attachment 42544 [details])
&gt; Can&apos;t you simply check if &apos;box&apos; is not null to add the \n? I&apos;m not 100% sure
&gt; nextOnLineExists does exactly what we want, since I&apos;m not very familiar with
&gt; these APIs. It might we the right thing, but then we should be probably using
&gt; netxOnLine() instead of nextTextboxy()? If you feel like checking that in
&gt; detail feel free to do so, otherwise just check the value of box. r- for now.

Thanks for the review! Checking to see if &apos;box&apos; is not null to add the \n is the first thing I tried actually. :-)

Test Case:
========================
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;test&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
hello
world


This is


a





silly test.

&lt;br /&gt;
Here is another line.
&lt;/body&gt;
&lt;/html&gt;
========================
Which, of course, results in the following being displayed:

---------------------------------
hello world This is a silly test. 
Here is another line.
---------------------------------

My patch:

-        g_string_append(str, &quot;\n&quot;);
+        if (!box-&gt;nextOnLineExists())
+            g_string_append(str, &quot;\n&quot;);

In [1]: acc.queryText().getTextAtOffset(0, TEXT_BOUNDARY_LINE_START)
Out[1]: (&apos;hello world This is a silly test. &apos;, 0, 34)
In [2]: acc.queryText().getTextAtOffset(0, TEXT_BOUNDARY_LINE_START)
Out[2]: (&apos;Here is another line.&apos;, 0, 21)

~~~~~~~~~~~~~~~~~~~~~~~~~
-        g_string_append(str, &quot;\n&quot;);
         box = box-&gt;nextTextBox();
+        if (box)
+            g_string_append(str, &quot;\n&quot;);

In [1]: acc.queryText().getTextAtOffset(0, TEXT_BOUNDARY_LINE_START)
Out[1]: (&apos;hello world T&apos;, 0, 13)
In [2]: acc.queryText().getTextAtOffset(0, TEXT_BOUNDARY_LINE_START)
Out[2]: (&apos;Here is another line.&apos;, 0, 21)

~~~~~~~~~~~~~~~~~~~~~~~~~
-        box = box-&gt;nextTextBox();
+        box = static_cast&lt;InlineTextBox*&gt;(box-&gt;nextOnLine());

In [1]: acc.queryText().getTextAtOffset(0, TEXT_BOUNDARY_LINE_START)
Out[1]: (&apos;hello world T&apos;, 0, 13)
In [2]: acc.queryText().getTextAtOffset(0, TEXT_BOUNDARY_LINE_START)
Out[2]: (&apos;Here is another line.&apos;, 0, 21)

~~~~~~~~~~~~~~~~~~~~~~~~~

-        g_string_append(str, &quot;\n&quot;);
-        box = box-&gt;nextTextBox();
+        box = static_cast&lt;InlineTextBox*&gt;(box-&gt;nextOnLine());

In [1]: acc.queryText().getTextAtOffset(0, TEXT_BOUNDARY_LINE_START)
Out[1]: (&apos;hello world This is a silly test. &apos;, 0, 34)
In [2]: acc.queryText().getTextAtOffset(0, TEXT_BOUNDARY_LINE_START)
Out[2]: (&apos;Here is another line.&apos;, 0, 21)

So this looks like a promising alternative as long as we can be certain that there aren&apos;t occasions where nextOnLine would fail, but nextTextBox would succeed. Note that I&apos;m not suggesting that those occasions do or will exist; merely that I&apos;m not yet familiar enough with WebKit to rule out definitively that they will not. :-) Also note that my proposed patch was based on the assumption that nextTextBox was being used for a specific reason/test case, and that appending a newline char was also done for a specific reason/test case. If my assumption was wrong, well.... :-) :-)

Thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165690</commentid>
    <comment_count>78</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-11-21 23:05:45 -0800</bug_when>
    <thetext>Xan and I discussed this further via IRC, and he asked me to dig into this a bit more so that we are sure we understand what&apos;s taking place. So dug. :-)

Same test case as the one outlined in comment #77 with one line altered to have an image.

[...]
Here is another &lt;img src=&quot;missing.gif&quot; alt=&quot;junk-filled&quot; /&gt; line.
[...]

Accessible Hierarchy:

-&gt; Document Frame
   -&gt; Panel
      -&gt; hello world This is a silly test. (Text)
      -&gt; Here is another (Text)
      -&gt; (Image)
      -&gt; line. (Text)
      
-------------------------------------------------------------
1st text object, Window sized so that text wraps after &apos;This&apos;
-------------------------------------------------------------

accObject-&gt;stringValue(): &lt;&lt;hello world This is a silly test. &gt;&gt;
renderText-&gt;textLength(): 45
box: 1
  text: &lt;&lt;hello world &gt;&gt;
  box-&gt;start(): 1
  box-&gt;end(): 12
  nextTextBox is NULL: 0
  nextOnLineExists: 1
box: 2
  text: &lt;&lt;This&gt;&gt;
  box-&gt;start(): 15
  box-&gt;end(): 18
  nextTextBox is NULL: 0
  nextOnLineExists: 0
box: 3
  text: &lt;&lt;is &gt;&gt;
  box-&gt;start(): 20
  box-&gt;end(): 22
  nextTextBox is NULL: 0
  nextOnLineExists: 1
box: 4
  text: &lt;&lt;a &gt;&gt;
  box-&gt;start(): 25
  box-&gt;end(): 26
  nextTextBox is NULL: 0
  nextOnLineExists: 1
box: 5
  text: &lt;&lt;silly test. &gt;&gt;
  box-&gt;start(): 32
  box-&gt;end(): 43
  nextTextBox is NULL: 1
  nextOnLineExists: 0
-----------------
Observations:

1. Newline chars in the source document result in separate boxes.

2. Newline chars in the source document impact the start and end offsets of boxes.

3. We&apos;ll also have a separate box when the displayed text in an object wraps onto subsequent lines.

4. For text which is displayed on a single line, nextTextBox will be the same as nextOnLine, thus it really doesn&apos;t matter which one we use.
   
5. For text within an object which wraps onto subsequent lines, there will be a nextTextBox for (at least part of) the text displayed on the next line. There will not be a nextOnLine, however.
   
Thoughts:

1. The current code seems to be making the assumption that getting the nextTextBox() will return a box which contains all of the text on the next line. Operating under this assumption, it makes sense to append a newline char at the end each time in the while loop. The problem with this assumption is that it is incorrect in instances where one or more newline chars appear in the source document.

2. If instead of using nextTextBox we switch to nextOnLine as an alternative, we&apos;ll be stopping before we have all of the text associated with this AtkObject.

3. In order to get all of the text that is associated with this AtkObject *and* accurately reflect where the line breaks are in the displayed text, we should continue to use nextTextBox as the current code does, but only insert a newline char if there is not any more text on the current line (a question which !box-&gt;nextOnLineExists() seems to answer).

----------------------------------------------------------------
2nd text object, Window sized so that text wraps after the image
----------------------------------------------------------------

accObject-&gt;stringValue(): &lt;&lt;Here is another &gt;&gt;
renderText-&gt;textLength(): 17
box: 1
  text: &lt;&lt;Here is another &gt;&gt;
  box-&gt;start(): 1
  box-&gt;end(): 16
  nextTextBox is NULL: 1
  nextOnLineExists: 1
-----------------
Observations:

1. The current code automatically appends a newline char at the end of each box. Therefore, it will insert one after &quot;Here is another &quot; and before the image which is on the same line. We probably don&apos;t want that.

2. It appears that here too we can use nextOnLineExists() as a means to check that there is something else on this line (the image at the end of the line).

Xan, thoughts? Or more details that you&apos;d like?

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165813</commentid>
    <comment_count>79</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-11-23 02:31:33 -0800</bug_when>
    <thetext>(In reply to comment #78)

(The analysis for the first text object seems right to me, so skipping that).

&gt; ----------------------------------------------------------------
&gt; 2nd text object, Window sized so that text wraps after the image
&gt; ----------------------------------------------------------------
&gt; 
&gt; accObject-&gt;stringValue(): &lt;&lt;Here is another &gt;&gt;
&gt; renderText-&gt;textLength(): 17
&gt; box: 1
&gt;   text: &lt;&lt;Here is another &gt;&gt;
&gt;   box-&gt;start(): 1
&gt;   box-&gt;end(): 16
&gt;   nextTextBox is NULL: 1
&gt;   nextOnLineExists: 1
&gt; -----------------

Hrm, this seems pretty bad? If nextTextBox is NULL we won&apos;t get the last line of the text at all, so whether or not nextOnLineExists() says the right thing is a bit pointless?

What would be the ideal behavior here? What does Firefox do?

&gt; Observations:
&gt; 
&gt; 1. The current code automatically appends a newline char at the end of each
&gt; box. Therefore, it will insert one after &quot;Here is another &quot; and before the
&gt; image which is on the same line. We probably don&apos;t want that.
&gt; 
&gt; 2. It appears that here too we can use nextOnLineExists() as a means to check
&gt; that there is something else on this line (the image at the end of the line).
&gt; 
&gt; Xan, thoughts? Or more details that you&apos;d like?

I think the analysis for the first object makes sense, and I&apos;d be OK with having it go provided we have a good explanation of the code in a comment and a few tests to track regressions. Still, I&apos;d like to know what should we be doing in cases like the text object #2.

&gt; 
&gt; Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165856</commentid>
    <comment_count>80</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-11-23 07:53:25 -0800</bug_when>
    <thetext>(In reply to comment #79)
&gt; (In reply to comment #78)
&gt; Hrm, this seems pretty bad? If nextTextBox is NULL we won&apos;t get the last line
&gt; of the text at all,

If you look at the first example (box 5), nextTextBox is NULL as well. But there&apos;s still an additional line of text.

As I understand it, the function in question is looking at a single AtkObject and creating a pango layout based on that. The text that appears in subsequent objects is, as far as this method is concerned, irrelevant.

(Right??)

&gt; so whether or not nextOnLineExists() says the right thing
&gt; is a bit pointless?

Is it? Don&apos;t we want to know if we have a line break at the end of the text that precedes the image? And even if it does happen to be pointless, it&apos;s nice to know that in the case of an image we don&apos;t have do to anything special to avoid breakage. :-)
 
&gt; What would be the ideal behavior here? What does Firefox do?

Firefox puts all of the text in the parent object rather than in separate objects of ATK_ROLE_TEXT like WebKit does. The image would be represented by an embedded object character. Thus, given the test case, the accessible hierarchy would be, in its entirety:

-&gt; Document Frame
   -&gt; Image

The document frame would implement AtkText.

If we want to do what Firefox does (I think we want to do some of it, but not all), we have big changes to make which go well beyond the scope of this bug.

&gt; I think the analysis for the first object makes sense, and I&apos;d be OK with
&gt; having it go provided we have a good explanation of the code in a comment and a
&gt; few tests to track regressions.

Okie dokie. Thanks. I&apos;ll start looking at creating unit tests.

&gt; Still, I&apos;d like to know what should we be doing
&gt; in cases like the text object #2.

In the short term (i.e. GNOME a11y should already be in place, Yelp needs to work, etc., etc.), I&apos;d suggest that we fix the bug related to character extents (i.e. bug 25677).

See, right now, WebKit is rendering text in lots and lots of separate text objects. As a result ATs like Orca must construct the full contents of a line based on the bits and pieces. I&apos;d rather we didn&apos;t, but it&apos;s not out of the realm of what&apos;s reasonable to ask an AT to do. Given this.... The work done in this bug is essential because we need to be able to get the text on the line w.r.t. any given object. The fix for bug 25677 is what will enable us to then go to the next object and say &quot;are you on this line as well?&quot; if the answer is yes, then we use the functionality in this bug to get the text contents for that object. (In the case of images, we&apos;d actually be comparing character extents to component extents, but you get the idea.)

Ultimately, I&apos;d like to get text objects as flattened as possible. At that point, then we do have to consider the very issue you&apos;ve raised, decide if we want to use embedded object characters (in the case of images, we might have to. blek.), etc.

Make sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165905</commentid>
    <comment_count>81</comment_count>
      <attachid>43725</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-11-23 13:02:26 -0800</bug_when>
    <thetext>Created attachment 43725
Fix for the issue in comment 59 - with updated unit test and comment

I modified the existing unit test for get_text_at_offset to include some newline chars. Without the proposed fix, the modified test fails:

~~~~~~~~~~~~~~~~~~~~~~
/webkit/atk/get_text_at_offset: **
ERROR:../../WebKit/gtk/tests/testatk.c:47:test_get_text_function: assertion failed (text == text_result): (&quot;This is a test. T&quot; == &quot;This is a test. This is the second sentence. And this the third.&quot;)
Aborted
~~~~~~~~~~~~~~~~~~~~~~

With the proposed fix, it once again passes.

I&apos;ve also added a comment regarding what is taking place and referencing this discussion for more detail.

Xan, is there anything else you&apos;d like me to do w.r.t. this particular issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166080</commentid>
    <comment_count>82</comment_count>
      <attachid>43725</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-11-24 07:49:46 -0800</bug_when>
    <thetext>Comment on attachment 43725
Fix for the issue in comment 59 - with updated unit test and comment

I think I prefer to add new functions to that test instead of modifying the existing string to serve as a testcase for lots of different issues, otherwise things can be a bit confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166130</commentid>
    <comment_count>83</comment_count>
      <attachid>43778</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-11-24 10:03:32 -0800</bug_when>
    <thetext>Created attachment 43778
Fix for the issue in comment 59 - with new unit test and comment

(In reply to comment #82)
&gt; (From update of attachment 43725 [details])
&gt; I think I prefer to add new functions to that test instead of modifying the
&gt; existing string to serve as a testcase for lots of different issues, otherwise
&gt; things can be a bit confusing.

Makes sense. How &apos;bout this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166159</commentid>
    <comment_count>84</comment_count>
      <attachid>43778</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-11-24 10:36:00 -0800</bug_when>
    <thetext>Comment on attachment 43778
Fix for the issue in comment 59 - with new unit test and comment

Woot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166171</commentid>
    <comment_count>85</comment_count>
      <attachid>43778</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-24 10:47:22 -0800</bug_when>
    <thetext>Comment on attachment 43778
Fix for the issue in comment 59 - with new unit test and comment

Clearing flags on attachment: 43778

Committed r51342: &lt;http://trac.webkit.org/changeset/51342&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166172</commentid>
    <comment_count>86</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-24 10:47:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166176</commentid>
    <comment_count>87</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-11-24 10:51:03 -0800</bug_when>
    <thetext>Just.... one.... last.... issue. :-)

And then we shall never, ever speak of get_text_at_offset again. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166182</commentid>
    <comment_count>88</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-11-24 10:53:00 -0800</bug_when>
    <thetext>(In reply to comment #87)
&gt; Just.... one.... last.... issue. :-)
&gt; 
&gt; And then we shall never, ever speak of get_text_at_offset again. :-)

That&apos;s what you always say.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166826</commentid>
    <comment_count>89</comment_count>
      <attachid>43935</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-11-26 21:30:23 -0800</bug_when>
    <thetext>Created attachment 43935
Comment 57 fix with unit tests

This is essentially the same fix as I originally proposed for the issue. The only different in the fix is adding a check to be sure we have wrapped text before eliminating the final character on the line.

This patch also adds two more unit tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167374</commentid>
    <comment_count>90</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-30 12:46:23 -0800</bug_when>
    <thetext>Attachment 43935 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
Done processing WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp
WebKit/gtk/tests/testatk.c:303:  Declaration has space between * and variable name in WebKitWebView* webView  [whitespace/declaration] [3]
WebKit/gtk/tests/testatk.c:304:  Declaration has space between * and variable name in AtkObject* obj  [whitespace/declaration] [3]
WebKit/gtk/tests/testatk.c:305:  Declaration has space between * and variable name in GMainLoop* loop  [whitespace/declaration] [3]
WebKit/gtk/tests/testatk.c:306:  Declaration has space between * and variable name in AtkText* text_obj  [whitespace/declaration] [3]
WebKit/gtk/tests/testatk.c:336:  Declaration has space between * and variable name in WebKitWebView* webView  [whitespace/declaration] [3]
WebKit/gtk/tests/testatk.c:337:  Declaration has space between * and variable name in AtkObject* obj  [whitespace/declaration] [3]
WebKit/gtk/tests/testatk.c:338:  Declaration has space between * and variable name in GMainLoop* loop  [whitespace/declaration] [3]
WebKit/gtk/tests/testatk.c:339:  Declaration has space between * and variable name in AtkText* text_obj  [whitespace/declaration] [3]
Done processing WebKit/gtk/tests/testatk.c
Total errors found: 8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167448</commentid>
    <comment_count>91</comment_count>
      <attachid>44046</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-11-30 15:49:37 -0800</bug_when>
    <thetext>Created attachment 44046
Comment 57 fix with unit tests

Correct the issue pointed out by the style bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167450</commentid>
    <comment_count>92</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-11-30 15:52:48 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44046 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169263</commentid>
    <comment_count>93</comment_count>
      <attachid>44046</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-12-07 05:22:33 -0800</bug_when>
    <thetext>Comment on attachment 44046
Comment 57 fix with unit tests

&gt;@@ -197,10 +201,10 @@ static void run_get_text_tests(AtkText* text_obj)
&gt; 
&gt; static void test_webkit_atk_get_text_at_offset_forms(void)
&gt; {
&gt;-    WebKitWebView* webView;
&gt;-    AtkObject* obj;
&gt;-    GMainLoop* loop;
&gt;-    AtkText* text_obj;
&gt;+    WebKitWebView *webView;
&gt;+    AtkObject *obj;
&gt;+    GMainLoop *loop;
&gt;+    AtkText *text_obj;

Everything else looks fine, but doesn&apos;t this go against the style rules? How can the bot say it&apos;s ok? What am I missing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169266</commentid>
    <comment_count>94</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-12-07 05:24:09 -0800</bug_when>
    <thetext>(In reply to comment #93)
&gt; (From update of attachment 44046 [details])
&gt; &gt;@@ -197,10 +201,10 @@ static void run_get_text_tests(AtkText* text_obj)
&gt; &gt; 
&gt; &gt; static void test_webkit_atk_get_text_at_offset_forms(void)
&gt; &gt; {
&gt; &gt;-    WebKitWebView* webView;
&gt; &gt;-    AtkObject* obj;
&gt; &gt;-    GMainLoop* loop;
&gt; &gt;-    AtkText* text_obj;
&gt; &gt;+    WebKitWebView *webView;
&gt; &gt;+    AtkObject *obj;
&gt; &gt;+    GMainLoop *loop;
&gt; &gt;+    AtkText *text_obj;
&gt; 
&gt; Everything else looks fine, but doesn&apos;t this go against the style rules? How
&gt; can the bot say it&apos;s ok? What am I missing?

C versus C++ ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169286</commentid>
    <comment_count>95</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-12-07 06:12:38 -0800</bug_when>
    <thetext>(In reply to comment #94)
&gt; &gt; Everything else looks fine, but doesn&apos;t this go against the style rules? How
&gt; &gt; can the bot say it&apos;s ok? What am I missing?
&gt; 
&gt; C versus C++ ?

I don&apos;t think it&apos;s that, the style rule applies to all C/C++ code. Anyway, this goes against the rules, so can you please update the patch to not do that and we&apos;ll get it committed? Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169295</commentid>
    <comment_count>96</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-12-07 06:31:56 -0800</bug_when>
    <thetext>(In reply to comment #95)
&gt; (In reply to comment #94)
&gt; &gt; &gt; Everything else looks fine, but doesn&apos;t this go against the style rules? How
&gt; &gt; &gt; can the bot say it&apos;s ok? What am I missing?
&gt; &gt; 
&gt; &gt; C versus C++ ?
&gt; 
&gt; I don&apos;t think it&apos;s that, the style rule applies to all C/C++ code. Anyway, this
&gt; goes against the rules, so can you please update the patch to not do that and
&gt; we&apos;ll get it committed? Thanks!

Sure. But then perhaps the style rules should be changed? If you take the rules literally (perhaps the bot author did), they are different:

1. Constructors for C++ classes should initialize all of their members using C++ initializer syntax. Each member (and superclass) should be indented on a separate line, with the colon or comma preceding the member on that line.

2. Pointer types in non-C++ code — Pointer types should be written with a space between the type and the * (so the * is adjacent to the following identifier if any).

3. Pointer and reference types in C++ code — Both pointer types and reference types should be written with no space between the type name and the * or &amp;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169296</commentid>
    <comment_count>97</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-12-07 06:33:40 -0800</bug_when>
    <thetext>By the way, here is the original one which doesn&apos;t include the bot-inspired changes:

(In reply to comment #89)
&gt; Created an attachment (id=43935) [details]
&gt; Comment 57 fix with unit tests
&gt; 
&gt; This is essentially the same fix as I originally proposed for the issue. The
&gt; only different in the fix is adding a check to be sure we have wrapped text
&gt; before eliminating the final character on the line.
&gt; 
&gt; This patch also adds two more unit tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169307</commentid>
    <comment_count>98</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-12-07 06:53:06 -0800</bug_when>
    <thetext>(In reply to comment #96)
&gt; (In reply to comment #95)
&gt; &gt; (In reply to comment #94)
&gt; &gt; &gt; &gt; Everything else looks fine, but doesn&apos;t this go against the style rules? How
&gt; &gt; &gt; &gt; can the bot say it&apos;s ok? What am I missing?
&gt; &gt; &gt; 
&gt; &gt; &gt; C versus C++ ?
&gt; &gt; 
&gt; &gt; I don&apos;t think it&apos;s that, the style rule applies to all C/C++ code. Anyway, this
&gt; &gt; goes against the rules, so can you please update the patch to not do that and
&gt; &gt; we&apos;ll get it committed? Thanks!
&gt; 
&gt; Sure. But then perhaps the style rules should be changed? If you take the rules
&gt; literally (perhaps the bot author did), they are different:
&gt; 
&gt; 1. Constructors for C++ classes should initialize all of their members using
&gt; C++ initializer syntax. Each member (and superclass) should be indented on a
&gt; separate line, with the colon or comma preceding the member on that line.
&gt; 
&gt; 2. Pointer types in non-C++ code — Pointer types should be written with a space
&gt; between the type and the * (so the * is adjacent to the following identifier if
&gt; any).
&gt; 
&gt; 3. Pointer and reference types in C++ code — Both pointer types and reference
&gt; types should be written with no space between the type name and the * or &amp;.

Holy crap.

Neither I or the other WebKitGTK+ reviewers were aware of this change in the style guide (and I must say, I don&apos;t really get what it tries to achieve). Maybe it&apos;s meant to be applied to Obj-C or something? In any case applying that patch would only move some lines of the file towards the &quot;new&quot; style, leaving everything else as is. I don&apos;t that makes much sense, so I&apos;ll r+ the old patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169309</commentid>
    <comment_count>99</comment_count>
      <attachid>43935</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-12-07 06:56:05 -0800</bug_when>
    <thetext>Comment on attachment 43935
Comment 57 fix with unit tests

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169323</commentid>
    <comment_count>100</comment_count>
      <attachid>43935</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-07 07:38:57 -0800</bug_when>
    <thetext>Comment on attachment 43935
Comment 57 fix with unit tests

Clearing flags on attachment: 43935

Committed r51768: &lt;http://trac.webkit.org/changeset/51768&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169324</commentid>
    <comment_count>101</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-07 07:39:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30234</attachid>
            <date>2009-05-12 08:57:54 -0700</date>
            <delta_ts>2009-05-15 01:22:55 -0700</delta_ts>
            <desc>gettextat.patch</desc>
            <filename>gettextat.patch</filename>
            <type>text/plain</type>
            <size>26203</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA4ZWI5MzA5NWY0NmI2MjZkYjQ5YmUwMzA1NDAyZTJiNTZjMjM3MjhiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBU
dWUsIDEyIE1heSAyMDA5IDE4OjUzOjE1ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gMjAwOS0wNS0x
MiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CgogICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgoKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjU0MTUKICAgICAgICBbR1RLXVtBVEtdIFBsZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBm
b3IgZ2V0X3RleHRfYXRfb2Zmc2V0CgogICAgICAgIEFkZCBuZXcgdGVzdCBmaWxlIGZvciBBVEsu
CgogICAgICAgICogR05VbWFrZWZpbGUuYW06CgpXZWJDb3JlOgoKMjAwOS0wNS0xMiAgWGFuIExv
cGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgoKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0
MTUKICAgICAgICBbR1RLXVtBVEtdIFBsZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgZ2V0X3Rl
eHRfYXRfb2Zmc2V0CgogICAgICAgIEltcGxlbWVudCBhdGtfdGV4dF9nZXRfdGV4dF97YXQsYWZ0
ZXIsYmVmb3JlfV9vZmZzZXQuCgogICAgICAgICogcGFnZS9ndGsvQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJBdGsuY3BwOgoKV2ViS2l0L2d0azoKCjIwMDktMDUtMTIgIFhhbiBMb3BleiAgPHhs
b3BlekBpZ2FsaWEuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDE1CiAgICAg
ICAgW0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGdldF90ZXh0X2F0X29m
ZnNldAoKICAgICAgICBOZXcgdGVzdCBmaWxlIGZvciBBVEsgZnVuY3Rpb25hbGl0eS4KCiAgICAg
ICAgKiB0ZXN0cy90ZXN0YXRrLmM6IEFkZGVkLgogICAgICAgIChiYWlsX291dCk6CiAgICAgICAg
KHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24pOgogICAgICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0X3Rl
eHRfYXRfb2Zmc2V0KToKICAgICAgICAobWFpbik6Ci0tLQogQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsKIEdOVW1ha2VmaWxlLmFtICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOCArLQogV2ViQ29yZS9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsKIFdlYkNvcmUv
cGFnZS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwIHwgIDI3OCArKysrKysr
KysrKysrKysrKysrLQogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDE1ICsKIFdlYktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgIDIwMiArKysrKysrKysrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCA1MTQg
aW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0
L2d0ay90ZXN0cy90ZXN0YXRrLmMKCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cK
aW5kZXggM2NlOWNkMC4uNjdiODc5NyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDA5LTA1LTEyICBYYW4gTG9wZXogIDx4bG9wZXpAaWdh
bGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MTUKKyAgICAgICAg
W0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGdldF90ZXh0X2F0X29mZnNl
dAorCisgICAgICAgIEFkZCBuZXcgdGVzdCBmaWxlIGZvciBBVEsuCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKKwogMjAwOS0wNS0wNiAgVG9yIEFybmUgVmVzdGLDuCAgPHRvci5hcm5lLnZl
c3Rib0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCmRp
ZmYgLS1naXQgYS9HTlVtYWtlZmlsZS5hbSBiL0dOVW1ha2VmaWxlLmFtCmluZGV4IDE3ZmFiYzAu
LmQ4OTFkOTMgMTAwNjQ0Ci0tLSBhL0dOVW1ha2VmaWxlLmFtCisrKyBiL0dOVW1ha2VmaWxlLmFt
CkBAIC01MTEsNyArNTExLDggQEAgd2Via2l0X3Rlc3RzX2xkYWRkID0gXAogVEVTVF9QUk9HUyAr
PSBQcm9ncmFtcy91bml0dGVzdHMvdGVzdHdlYmZyYW1lIFwKIAlQcm9ncmFtcy91bml0dGVzdHMv
dGVzdHdlYmJhY2tmb3J3YXJkbGlzdCBcCiAJUHJvZ3JhbXMvdW5pdHRlc3RzL3Rlc3R3ZWJoaXN0
b3J5aXRlbSBcCi0JUHJvZ3JhbXMvdW5pdHRlc3RzL3Rlc3Rkb3dubG9hZAorCVByb2dyYW1zL3Vu
aXR0ZXN0cy90ZXN0ZG93bmxvYWQgXAorCVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0YXRrCiAKICMg
QWRkIGFkZGl0aW9uYWwgdGVzdHMgaGVyZQogUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3R3ZWJmcmFt
ZV9TT1VSQ0VTID0gV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2ViZnJhbWUuYwpAQCAtNTMwLDYgKzUz
MSwxMSBAQCBQcm9ncmFtc191bml0dGVzdHNfdGVzdGRvd25sb2FkX1NPVVJDRVMgPSBXZWJLaXQv
Z3RrL3Rlc3RzL3Rlc3Rkb3dubG9hZC5jCiBQcm9ncmFtc191bml0dGVzdHNfdGVzdGRvd25sb2Fk
X0NGTEFHUyA9ICQod2Via2l0X3Rlc3RzX2NmbGFncykKIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0
ZG93bmxvYWRfTERBREQgPSAkKHdlYmtpdF90ZXN0c19sZGFkZCkKIAorUHJvZ3JhbXNfdW5pdHRl
c3RzX3Rlc3RhdGtfU09VUkNFUyA9IFdlYktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jCitQcm9ncmFt
c191bml0dGVzdHNfdGVzdGF0a19DRkxBR1MgPSAkKHdlYmtpdF90ZXN0c19jZmxhZ3MpCitQcm9n
cmFtc191bml0dGVzdHNfdGVzdGF0a19MREFERCA9ICQod2Via2l0X3Rlc3RzX2xkYWRkKQorCisK
ICMgQXV0b2dlbmVyYXRlZCBzb3VyY2VzCiBCVUlMVF9TT1VSQ0VTIDo9IFwKIAkkKGphdmFzY3Jp
cHRjb3JlX2J1aWx0X3NvdXJjZXMpIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFhMDkwOS4uN2NhOWI0MCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAwOS0wNS0xMiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI1NDE1CisgICAgICAgIFtHVEtdW0FUS10gUGxlYXNlIGltcGxl
bWVudCBzdXBwb3J0IGZvciBnZXRfdGV4dF9hdF9vZmZzZXQKKworICAgICAgICBJbXBsZW1lbnQg
YXRrX3RleHRfZ2V0X3RleHRfe2F0LGFmdGVyLGJlZm9yZX1fb2Zmc2V0LgorCisgICAgICAgICog
cGFnZS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgorCiAyMDA5LTA1LTA3
ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQg
YnkgT2xpdmVyIEh1bnQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvZ3RrL0FjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyQXRrLmNwcCBiL1dlYkNvcmUvcGFnZS9ndGsvQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJBdGsuY3BwCmluZGV4IDFjMDA3ODUuLmY3MWRjMTIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGFnZS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCisrKyBiL1dl
YkNvcmUvcGFnZS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCkBAIC00Nyw2
ICs0Nyw3IEBACiAjaW5jbHVkZSA8YXRrL2F0ay5oPgogI2luY2x1ZGUgPGdsaWIuaD4KICNpbmNs
dWRlIDxnbGliL2dwcmludGYuaD4KKyNpbmNsdWRlIDxwYW5nby9wYW5nby5oPgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNDYxLDI1ICs0NjIsMjgyIEBAIHN0YXRpYyBnY2hhciog
d2Via2l0X2FjY2Vzc2libGVfdGV4dF9nZXRfdGV4dChBdGtUZXh0KiB0ZXh0LCBnaW50IHN0YXJ0
T2Zmc2V0LCBnCiAgICAgcmV0dXJuIGdfc3RyZHVwKHJldC51dGY4KCkuZGF0YSgpKTsKIH0KIAot
c3RhdGljIGdjaGFyKiB3ZWJraXRfYWNjZXNzaWJsZV90ZXh0X2dldF90ZXh0X2FmdGVyX29mZnNl
dChBdGtUZXh0KiB0ZXh0LCBnaW50IG9mZnNldCwgQXRrVGV4dEJvdW5kYXJ5IGJvdW5kYXJ5X3R5
cGUsIGdpbnQqIHN0YXJ0X29mZnNldCwgZ2ludCogZW5kX29mZnNldCkKK3R5cGVkZWYgZW51bSB7
CisgICAgQWZ0ZXJPZmZzZXQsCisgICAgQXRPZmZzZXQsCisgICAgQmVmb3JlT2Zmc2V0Cit9IEdl
dFRleHRGdW5jdGlvblR5cGU7CisKK3R5cGVkZWYgYm9vbCAoKmlzQ2hhcmFjdGVyQXR0cmlidXRl
KSAoUGFuZ29Mb2dBdHRyKiBhdHRyKTsKKworc3RhdGljIGlubGluZSBib29sIGlzV29yZFN0YXJ0
KFBhbmdvTG9nQXR0ciogYXR0cikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBOVUxMOworICAgIHJldHVybiBhdHRyLT5pc193b3JkX3N0YXJ0OwogfQogCi1zdGF0aWMgZ2No
YXIqIHdlYmtpdF9hY2Nlc3NpYmxlX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0KEF0a1RleHQqIHRl
eHQsIGdpbnQgb2Zmc2V0LCBBdGtUZXh0Qm91bmRhcnkgYm91bmRhcnlfdHlwZSwgZ2ludCogc3Rh
cnRfb2Zmc2V0LCBnaW50KiBlbmRfb2Zmc2V0KQorc3RhdGljIGlubGluZSBib29sIGlzV29yZEVu
ZChQYW5nb0xvZ0F0dHIqIGF0dHIpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gTlVMTDsKKyAgICByZXR1cm4gYXR0ci0+aXNfd29yZF9lbmQ7CiB9CiAKLXN0YXRpYyBndW5p
Y2hhciB3ZWJraXRfYWNjZXNzaWJsZV90ZXh0X2dldF9jaGFyYWN0ZXJfYXRfb2Zmc2V0KEF0a1Rl
eHQqIHRleHQsIGdpbnQgb2Zmc2V0KQorc3RhdGljIGlubGluZSBib29sIGlzU2VudGVuY2VTdGFy
dChQYW5nb0xvZ0F0dHIqIGF0dHIpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gMDsKKyAgICByZXR1cm4gYXR0ci0+aXNfc2VudGVuY2Vfc3RhcnQ7Cit9CisKK3N0YXRpYyBp
bmxpbmUgYm9vbCBpc1NlbnRlbmNlRW5kKFBhbmdvTG9nQXR0ciogYXR0cikKK3sKKyAgICByZXR1
cm4gYXR0ci0+aXNfc2VudGVuY2VfZW5kOworfQorCitzdGF0aWMgaXNDaGFyYWN0ZXJBdHRyaWJ1
dGUgb3Bwb3NpdGVDaGFyYWN0ZXJQcmVkaWNhdGVGdW5jdGlvbihpc0NoYXJhY3RlckF0dHJpYnV0
ZSBwcmVkaWNhdGUpCit7CisgICAgaWYgKHByZWRpY2F0ZSA9PSBpc1dvcmRTdGFydCkKKyAgICAg
ICAgcmV0dXJuIGlzV29yZEVuZDsKKyAgICBpZiAocHJlZGljYXRlID09IGlzV29yZEVuZCkKKyAg
ICAgICAgcmV0dXJuIGlzV29yZFN0YXJ0OworICAgIGlmIChwcmVkaWNhdGUgPT0gaXNTZW50ZW5j
ZVN0YXJ0KQorICAgICAgICByZXR1cm4gaXNTZW50ZW5jZUVuZDsKKyAgICBpZiAocHJlZGljYXRl
ID09IGlzU2VudGVuY2VFbmQpCisgICAgICAgIHJldHVybiBpc1NlbnRlbmNlU3RhcnQ7CisKKyAg
ICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOworfQorCit0eXBlZGVmIGludCAoKmFkdmFuY2VGdW5j
KSAoaW50KTsKKworc3RhdGljIGludCBpbmNyZWFzZUludChpbnQgaSkgeworICAgIHJldHVybiBp
ICsgMTsKK30KKworc3RhdGljIGludCBkZWNyZWFzZUludChpbnQgaSkgeworICAgIHJldHVybiBp
IC0gMTsKK30KKwordHlwZWRlZiBlbnVtIHsKKyAgICBEaXJlY3Rpb25Gb3J3YXJkLAorICAgIERp
cmVjdGlvbkJhY2t3YXJkcworfSBEaXJlY3Rpb247CisKK3N0YXRpYyBib29sIGZpbmRDaGFyYWN0
ZXJBdHRyaWJ1dGUoaXNDaGFyYWN0ZXJBdHRyaWJ1dGUgcHJlZGljYXRlRnVuY3Rpb24sIFBhbmdv
TG9nQXR0ciogYXR0cmlidXRlcywgRGlyZWN0aW9uIGRpcmVjdGlvbiwgaW50IHN0YXJ0T2Zmc2V0
LCBpbnQgYXR0cnNMZW5ndGgsIGludCogcmVzdWx0T2Zmc2V0KQoreworICAgIGludCBpOworICAg
IGJvb2wgcmV0VmFsdWUgPSB0cnVlOworICAgIGlzQ2hhcmFjdGVyQXR0cmlidXRlIG9wcG9zaXRl
UHJlZGljYXRlID0gb3Bwb3NpdGVDaGFyYWN0ZXJQcmVkaWNhdGVGdW5jdGlvbihwcmVkaWNhdGVG
dW5jdGlvbik7CisgICAgYWR2YW5jZUZ1bmMgYWR2YW5jZUZ1bmMgPSBkaXJlY3Rpb24gPT0gRGly
ZWN0aW9uRm9yd2FyZCA/IGluY3JlYXNlSW50IDogZGVjcmVhc2VJbnQ7CisKKyAgICAqcmVzdWx0
T2Zmc2V0ID0gLTE7CisKKyAgICBmb3IgKGkgPSBzdGFydE9mZnNldDsgaSA+PSAwICYmIGkgPD0g
YXR0cnNMZW5ndGg7IGkgPSBhZHZhbmNlRnVuYyhpKSkgeworICAgICAgICBpZiAob3Bwb3NpdGVQ
cmVkaWNhdGUoYXR0cmlidXRlcytpKSkKKyAgICAgICAgICAgIHJldFZhbHVlID0gZmFsc2U7CisK
KyAgICAgICAgaWYgKHByZWRpY2F0ZUZ1bmN0aW9uKGF0dHJpYnV0ZXMraSkpIHsKKyAgICAgICAg
ICAgICpyZXN1bHRPZmZzZXQgPSBpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICByZXR1cm4gcmV0VmFsdWU7Cit9CisKK3N0YXRpYyBib29sIGZpbmRDaGFyYWN0
ZXJBdHRyaWJ1dGVTa2lwKGlzQ2hhcmFjdGVyQXR0cmlidXRlIHByZWRpY2F0ZUZ1bmN0aW9uLCB1
bnNpZ25lZCBza2lwLCBQYW5nb0xvZ0F0dHIqIGF0dHJpYnV0ZXMsIERpcmVjdGlvbiBkaXJlY3Rp
b24sIGludCBzdGFydE9mZnNldCwgaW50IGF0dHJzTGVuZ3RoLCBpbnQqIHJlc3VsdE9mZnNldCkK
K3sKKyAgICBpbnQgdG1wT2Zmc2V0OworICAgIGJvb2wgcmVzdWx0OworCisgICAgcmVzdWx0ID0g
ZmluZENoYXJhY3RlckF0dHJpYnV0ZShwcmVkaWNhdGVGdW5jdGlvbiwgYXR0cmlidXRlcywgZGly
ZWN0aW9uLCBzdGFydE9mZnNldCwgYXR0cnNMZW5ndGgsICZ0bXBPZmZzZXQpOworICAgIGlmIChz
a2lwID09IDApIHsKKyAgICAgICAgKnJlc3VsdE9mZnNldCA9IHRtcE9mZnNldDsKKyAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBpZiAoZGlyZWN0aW9uID09IERpcmVjdGlvbkZv
cndhcmQpCisgICAgICAgIHRtcE9mZnNldCsrOworICAgIGVsc2UKKyAgICAgICAgdG1wT2Zmc2V0
LS07CisKKyAgICByZXR1cm4gZmluZENoYXJhY3RlckF0dHJpYnV0ZVNraXAocHJlZGljYXRlRnVu
Y3Rpb24sIHNraXAgLSAxLCBhdHRyaWJ1dGVzLCBkaXJlY3Rpb24sIHRtcE9mZnNldCwgYXR0cnNM
ZW5ndGgsIHJlc3VsdE9mZnNldCk7CiB9CiAKLXN0YXRpYyBnY2hhciogd2Via2l0X2FjY2Vzc2li
bGVfdGV4dF9nZXRfdGV4dF9iZWZvcmVfb2Zmc2V0KEF0a1RleHQqIHRleHQsIGdpbnQgb2Zmc2V0
LCBBdGtUZXh0Qm91bmRhcnkgYm91bmRhcnlfdHlwZSwgZ2ludCogc3RhcnRfb2Zmc2V0LCBnaW50
KiBlbmRfb2Zmc2V0KQorc3RhdGljIGlubGluZSBib29sIGlzTGluZUJyZWFrKFBhbmdvTG9nQXR0
ciogYXR0cikKK3sKKyAgICByZXR1cm4gYXR0ci0+aXNfbGluZV9icmVhazsKK30KKworc3RhdGlj
IGdjaGFyKiBnZXRUZXh0SGVscGVyKEdldFRleHRGdW5jdGlvblR5cGUgZ2V0VGV4dEZ1bmN0aW9u
VHlwZSwgQXRrVGV4dCogdGV4dE9iamVjdCwgZ2ludCBvZmZzZXQsIEF0a1RleHRCb3VuZGFyeSBi
b3VuZGFyeVR5cGUsIGdpbnQqIHN0YXJ0T2Zmc2V0LCBnaW50KiBlbmRPZmZzZXQpCit7CisgICAg
QWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCA9IGNvcmUodGV4dE9iamVjdCk7CisgICAg
U3RyaW5nIHRleHQ7CisKKyAgICBpZiAoY29yZU9iamVjdC0+aXNUZXh0Q29udHJvbCgpKQorICAg
ICAgICB0ZXh0ID0gY29yZU9iamVjdC0+dGV4dCgpOworICAgIGVsc2UKKyAgICAgICAgdGV4dCA9
IGNvcmVPYmplY3QtPnRleHRVbmRlckVsZW1lbnQoKTsKKworICAgIGNoYXIqIGNUZXh0ID0gZ19z
dHJkdXAodGV4dC51dGY4KCkuZGF0YSgpKTsKKyAgICBnbG9uZyB0ZXh0TGVuZ3RoID0gZ191dGY4
X3N0cmxlbihjVGV4dCwgLTEpOworCisgICAgaWYgKGJvdW5kYXJ5VHlwZSA9PSBBVEtfVEVYVF9C
T1VOREFSWV9DSEFSKSB7CisgICAgICAgIGludCBlZmZlY3RpdmVPZmZzZXQ7CisKKyAgICAgICAg
c3dpdGNoKGdldFRleHRGdW5jdGlvblR5cGUpIHsKKyAgICAgICAgY2FzZSBBZnRlck9mZnNldDoK
KyAgICAgICAgICAgIGVmZmVjdGl2ZU9mZnNldCA9IG9mZnNldCArIDE7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBCZWZvcmVPZmZzZXQ6CisgICAgICAgICAgICBlZmZlY3RpdmVP
ZmZzZXQgPSBvZmZzZXQgLSAxOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQXRP
ZmZzZXQ6CisgICAgICAgICAgICBlZmZlY3RpdmVPZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGdfYXNzZXJ0X25vdF9yZWFj
aGVkKCk7CisgICAgICAgIH0KKworICAgICAgICAqc3RhcnRPZmZzZXQgPSBlZmZlY3RpdmVPZmZz
ZXQ7CisgICAgICAgICplbmRPZmZzZXQgPSBlZmZlY3RpdmVPZmZzZXQgKyAxOworICAgIH0gZWxz
ZSBpZiAoYm91bmRhcnlUeXBlID09IEFUS19URVhUX0JPVU5EQVJZX0xJTkVfU1RBUlQgfHwKKyAg
ICAgICAgICAgICAgIGJvdW5kYXJ5VHlwZSA9PSBBVEtfVEVYVF9CT1VOREFSWV9MSU5FX0VORCkg
eworICAgIH0gZWxzZSB7CisgICAgICAgIFBhbmdvTG9nQXR0ciogYXR0cnMgPSBnX25ldyhQYW5n
b0xvZ0F0dHIsIHRleHRMZW5ndGgrMSk7CisgICAgICAgIFBhbmdvTGFuZ3VhZ2UqIGxhbmd1YWdl
ID0gcGFuZ29fbGFuZ3VhZ2VfZ2V0X2RlZmF1bHQoKTsKKyAgICAgICAgcGFuZ29fZ2V0X2xvZ19h
dHRycyhjVGV4dCwgLTEsIC0xLCBsYW5ndWFnZSwgYXR0cnMsIHRleHRMZW5ndGgrMSk7CisgICAg
ICAKKyAgICAgICAgYm9vbCByZXN1bHQ7CisgICAgICAgIGlzQ2hhcmFjdGVyQXR0cmlidXRlIHBy
ZWRpY2F0ZSwgb3Bwb3NpdGVQcmVkaWNhdGU7CisKKyAgICAgICAgaWYgKGJvdW5kYXJ5VHlwZSA9
PSBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX1NUQVJUKQorICAgICAgICAgICAgcHJlZGljYXRlID0g
aXNXb3JkU3RhcnQ7CisgICAgICAgIGVsc2UgaWYgKGJvdW5kYXJ5VHlwZSA9PSBBVEtfVEVYVF9C
T1VOREFSWV9XT1JEX0VORCkKKyAgICAgICAgICAgIHByZWRpY2F0ZSA9IGlzV29yZEVuZDsKKyAg
ICAgICAgZWxzZSBpZiAoYm91bmRhcnlUeXBlID09IEFUS19URVhUX0JPVU5EQVJZX1NFTlRFTkNF
X1NUQVJUKQorICAgICAgICAgICAgcHJlZGljYXRlID0gaXNTZW50ZW5jZVN0YXJ0OworICAgICAg
ICBlbHNlIGlmIChib3VuZGFyeVR5cGUgPT0gQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0VfRU5E
KQorICAgICAgICAgICAgcHJlZGljYXRlID0gaXNTZW50ZW5jZUVuZDsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQoKTsKKworICAgICAgICBvcHBvc2l0ZVBy
ZWRpY2F0ZSA9IG9wcG9zaXRlQ2hhcmFjdGVyUHJlZGljYXRlRnVuY3Rpb24ocHJlZGljYXRlKTsK
KworICAgICAgICBzd2l0Y2goYm91bmRhcnlUeXBlKSB7CisgICAgICAgIGNhc2UgQVRLX1RFWFRf
Qk9VTkRBUllfV09SRF9TVEFSVDoKKyAgICAgICAgY2FzZSBBVEtfVEVYVF9CT1VOREFSWV9TRU5U
RU5DRV9TVEFSVDoKKyAgICAgICAgICAgIGlmIChnZXRUZXh0RnVuY3Rpb25UeXBlID09IEFmdGVy
T2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgLy8gVGFrZSB0aGUgaXRlbSBhZnRlciB0aGUgY3Vy
cmVudCBvbmUgaW4gYW55IGNhc2UKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBmaW5kQ2hhcmFj
dGVyQXR0cmlidXRlKHByZWRpY2F0ZSwgYXR0cnMsIERpcmVjdGlvbkZvcndhcmQsIG9mZnNldCsx
LCB0ZXh0TGVuZ3RoICsgMSwgc3RhcnRPZmZzZXQpOworICAgICAgICAgICAgICAgIGlmIChyZXN1
bHQpCisgICAgICAgICAgICAgICAgICAgIGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGUob3Bwb3NpdGVQ
cmVkaWNhdGUsIGF0dHJzLCBEaXJlY3Rpb25Gb3J3YXJkLCBvZmZzZXQrMSwgdGV4dExlbmd0aCAr
IDEsIGVuZE9mZnNldCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlU2tpcChvcHBvc2l0ZVByZWRpY2F0ZSwgMSwgYXR0cnMs
IERpcmVjdGlvbkZvcndhcmQsIG9mZnNldCsxLCB0ZXh0TGVuZ3RoICsgMSwgZW5kT2Zmc2V0KTsK
KyAgICAgICAgICAgIH0gZWxzZSBpZiAoZ2V0VGV4dEZ1bmN0aW9uVHlwZSA9PSBBdE9mZnNldCkg
eworICAgICAgICAgICAgICAgIC8vIFRha2UgdGhlIGl0ZW0gYXQgcG9pbnQgaWYgdGhlIG9mZnNl
dCBpcyBpbiBhbiBpdGVtIG9yCisgICAgICAgICAgICAgICAgLy8gdGhlIGl0ZW0gYmVmb3JlIG90
aGVyd2lzZQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGUo
cHJlZGljYXRlLCBhdHRycywgRGlyZWN0aW9uQmFja3dhcmRzLCBvZmZzZXQsIHRleHRMZW5ndGgg
KyAxLCBzdGFydE9mZnNldCk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAg
ICAgICAgICAgICAgZmluZENoYXJhY3RlckF0dHJpYnV0ZShvcHBvc2l0ZVByZWRpY2F0ZSwgYXR0
cnMsIERpcmVjdGlvbkZvcndhcmQsIG9mZnNldCwgdGV4dExlbmd0aCArIDEsIGVuZE9mZnNldCk7
CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBmaW5kQ2hhcmFjdGVy
QXR0cmlidXRlKG9wcG9zaXRlUHJlZGljYXRlLCBhdHRycywgRGlyZWN0aW9uQmFja3dhcmRzLCBv
ZmZzZXQsIHRleHRMZW5ndGggKyAxLCBlbmRPZmZzZXQpOworICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICAvLyBUYWtlIHRoZSBpdGVtIGJlZm9yZSB0aGUgcG9pbnQgaWYgdGhl
IG9mZnNldCBpcyBpbiBhbgorICAgICAgICAgICAgICAgIC8vIGl0ZW0sIG9yIHRoZSB0aGUgaXRl
bSBiZWZvcmUgdGhhdCBvbmUgb3RoZXJ3aXNlCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmlu
ZENoYXJhY3RlckF0dHJpYnV0ZShwcmVkaWNhdGUsIGF0dHJzLCBEaXJlY3Rpb25CYWNrd2FyZHMs
IG9mZnNldCwgdGV4dExlbmd0aCArIDEsIHN0YXJ0T2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBp
ZiAocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGVT
a2lwKHByZWRpY2F0ZSwgMSwgYXR0cnMsIERpcmVjdGlvbkJhY2t3YXJkcywgb2Zmc2V0LCB0ZXh0
TGVuZ3RoICsgMSwgc3RhcnRPZmZzZXQpOworICAgICAgICAgICAgICAgICAgICBmaW5kQ2hhcmFj
dGVyQXR0cmlidXRlKG9wcG9zaXRlUHJlZGljYXRlLCBhdHRycywgRGlyZWN0aW9uQmFja3dhcmRz
LCBvZmZzZXQsIHRleHRMZW5ndGggKyAxLCBlbmRPZmZzZXQpOworICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGVTa2lwKHBy
ZWRpY2F0ZSwgMSwgYXR0cnMsIERpcmVjdGlvbkJhY2t3YXJkcywgb2Zmc2V0LCB0ZXh0TGVuZ3Ro
ICsgMSwgc3RhcnRPZmZzZXQpOworICAgICAgICAgICAgICAgICAgICBmaW5kQ2hhcmFjdGVyQXR0
cmlidXRlU2tpcChvcHBvc2l0ZVByZWRpY2F0ZSwgMSwgYXR0cnMsIERpcmVjdGlvbkJhY2t3YXJk
cywgb2Zmc2V0LCB0ZXh0TGVuZ3RoICsgMSwgZW5kT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBVEtfVEVY
VF9CT1VOREFSWV9XT1JEX0VORDoKKyAgICAgICAgY2FzZSBBVEtfVEVYVF9CT1VOREFSWV9TRU5U
RU5DRV9FTkQ6CisgICAgICAgICAgICBpZiAoZ2V0VGV4dEZ1bmN0aW9uVHlwZSA9PSBBZnRlck9m
ZnNldCkgeworICAgICAgICAgICAgICAgIC8vIFRha2UgdGhlIGl0ZW0gYWZ0ZXIgdGhlIGN1cnJl
bnQgaXRlbSBpZiB0aGUgb2Zmc2V0IGlzCisgICAgICAgICAgICAgICAgLy8gaW4gYSBpdGVtLCBv
ciB0aGUgaXRlbSBhZnRlciB0aGF0IG90aGVyd2lzZQorICAgICAgICAgICAgICAgIHJlc3VsdCA9
IGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGUob3Bwb3NpdGVQcmVkaWNhdGUsIGF0dHJzLCBEaXJlY3Rp
b25Gb3J3YXJkLCBvZmZzZXQrMSwgdGV4dExlbmd0aCArIDEsIHN0YXJ0T2Zmc2V0KTsKKyAgICAg
ICAgICAgICAgICBpZiAocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGZpbmRDaGFyYWN0
ZXJBdHRyaWJ1dGVTa2lwKG9wcG9zaXRlUHJlZGljYXRlLCAxLCBhdHRycywgRGlyZWN0aW9uRm9y
d2FyZCwgb2Zmc2V0KzEsIHRleHRMZW5ndGggKyAxLCBzdGFydE9mZnNldCk7CisgICAgICAgICAg
ICAgICAgICAgIGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGVTa2lwKHByZWRpY2F0ZSwgMSwgYXR0cnMs
IERpcmVjdGlvbkZvcndhcmQsIG9mZnNldCsxLCB0ZXh0TGVuZ3RoICsgMSwgZW5kT2Zmc2V0KTsK
KyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZmluZENoYXJhY3Rl
ckF0dHJpYnV0ZVNraXAocHJlZGljYXRlLCAxLCBhdHRycywgRGlyZWN0aW9uRm9yd2FyZCwgb2Zm
c2V0KzEsIHRleHRMZW5ndGggKyAxLCBlbmRPZmZzZXQpOworICAgICAgICAgICAgfSBlbHNlIGlm
IChnZXRUZXh0RnVuY3Rpb25UeXBlID09IEF0T2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgLy8g
VGFrZSB0aGUgaXRlbSBhdCBwb2ludCBpZiB0aGUgb2Zmc2V0IGlzIGluIGEgaXRlbSBvcgorICAg
ICAgICAgICAgICAgIC8vIHRoZSBpdGVtIGFmdGVyIG90aGVyd2lzZQorICAgICAgICAgICAgICAg
IHJlc3VsdCA9IGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGUocHJlZGljYXRlLCBhdHRycywgRGlyZWN0
aW9uRm9yd2FyZCwgb2Zmc2V0ICsgMSwgdGV4dExlbmd0aCArIDEsIGVuZE9mZnNldCk7CisgICAg
ICAgICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAgZmluZENoYXJhY3Rl
ckF0dHJpYnV0ZShvcHBvc2l0ZVByZWRpY2F0ZSwgYXR0cnMsIERpcmVjdGlvbkJhY2t3YXJkcywg
b2Zmc2V0LCB0ZXh0TGVuZ3RoICsgMSwgc3RhcnRPZmZzZXQpOworICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgZmluZENoYXJhY3RlckF0dHJpYnV0ZShvcHBvc2l0ZVBy
ZWRpY2F0ZSwgYXR0cnMsIERpcmVjdGlvbkZvcndhcmQsIG9mZnNldCwgdGV4dExlbmd0aCArIDEs
IHN0YXJ0T2Zmc2V0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8g
VGFrZSB0aGUgaXRlbSBiZWZvcmUgdGhlIHBvaW50IGluIGFueSBjYXNlCisgICAgICAgICAgICAg
ICAgcmVzdWx0ID0gZmluZENoYXJhY3RlckF0dHJpYnV0ZShwcmVkaWNhdGUsIGF0dHJzLCBEaXJl
Y3Rpb25CYWNrd2FyZHMsIG9mZnNldCwgdGV4dExlbmd0aCArIDEsIGVuZE9mZnNldCk7CisgICAg
ICAgICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAgZmluZENoYXJhY3Rl
ckF0dHJpYnV0ZShvcHBvc2l0ZVByZWRpY2F0ZSwgYXR0cnMsIERpcmVjdGlvbkJhY2t3YXJkcywg
b2Zmc2V0LCB0ZXh0TGVuZ3RoICsgMSwgc3RhcnRPZmZzZXQpOworICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgZmluZENoYXJhY3RlckF0dHJpYnV0ZVNraXAob3Bwb3Np
dGVQcmVkaWNhdGUsIDEsIGF0dHJzLCBEaXJlY3Rpb25CYWNrd2FyZHMsIG9mZnNldCwgdGV4dExl
bmd0aCArIDEsIHN0YXJ0T2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFUS19URVhUX0JPVU5EQVJZX0xJTkVfU1RBUlQ6CisgICAgICAgICAg
ICBpZiAoZ2V0VGV4dEZ1bmN0aW9uVHlwZSA9PSBBZnRlck9mZnNldCkgeworICAgICAgICAgICAg
ICAgIGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGUoaXNMaW5lQnJlYWssIGF0dHJzLCBEaXJlY3Rpb25G
b3J3YXJkLCBvZmZzZXQrMSwgdGV4dExlbmd0aCArIDEsIHN0YXJ0T2Zmc2V0KTsKKyAgICAgICAg
ICAgICAgICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlU2tpcChpc0xpbmVCcmVhaywgMSwgYXR0cnMs
IERpcmVjdGlvbkZvcndhcmQsIG9mZnNldCsxLCB0ZXh0TGVuZ3RoICsgMSwgZW5kT2Zmc2V0KTsK
KyAgICAgICAgICAgIH0gZWxzZSBpZiAoZ2V0VGV4dEZ1bmN0aW9uVHlwZSA9PSBBdE9mZnNldCkg
eworICAgICAgICAgICAgICAgIGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGUoaXNMaW5lQnJlYWssIGF0
dHJzLCBEaXJlY3Rpb25CYWNrd2FyZHMsIG9mZnNldCwgdGV4dExlbmd0aCArIDEsIHN0YXJ0T2Zm
c2V0KTsKKyAgICAgICAgICAgICAgICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlKGlzTGluZUJyZWFr
LCBhdHRycywgRGlyZWN0aW9uRm9yd2FyZCwgb2Zmc2V0KzEsIHRleHRMZW5ndGggKyAxLCBlbmRP
ZmZzZXQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmaW5kQ2hhcmFj
dGVyQXR0cmlidXRlU2tpcChpc0xpbmVCcmVhaywgMSwgYXR0cnMsIERpcmVjdGlvbkJhY2t3YXJk
cywgb2Zmc2V0LCB0ZXh0TGVuZ3RoICsgMSwgc3RhcnRPZmZzZXQpOworICAgICAgICAgICAgICAg
IGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGUoaXNMaW5lQnJlYWssIGF0dHJzLCBEaXJlY3Rpb25CYWNr
d2FyZHMsIG9mZnNldCwgdGV4dExlbmd0aCArIDEsIGVuZE9mZnNldCk7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBVEtfVEVYVF9CT1VOREFSWV9MSU5F
X0VORDoKKyAgICAgICAgICAgIGlmIChnZXRUZXh0RnVuY3Rpb25UeXBlID09IEFmdGVyT2Zmc2V0
KSB7CisgICAgICAgICAgICAgICAgZmluZENoYXJhY3RlckF0dHJpYnV0ZShpc0xpbmVCcmVhaywg
YXR0cnMsIERpcmVjdGlvbkZvcndhcmQsIG9mZnNldCwgdGV4dExlbmd0aCArIDEsIHN0YXJ0T2Zm
c2V0KTsKKyAgICAgICAgICAgICAgICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlU2tpcChpc0xpbmVC
cmVhaywgMSwgYXR0cnMsIERpcmVjdGlvbkZvcndhcmQsIG9mZnNldCwgdGV4dExlbmd0aCArIDEs
IGVuZE9mZnNldCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGdldFRleHRGdW5jdGlvblR5cGUg
PT0gQXRPZmZzZXQpIHsKKyAgICAgICAgICAgICAgICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlKGlz
TGluZUJyZWFrLCBhdHRycywgRGlyZWN0aW9uQmFja3dhcmRzLCBvZmZzZXQsIHRleHRMZW5ndGgg
KyAxLCBzdGFydE9mZnNldCk7CisgICAgICAgICAgICAgICAgZmluZENoYXJhY3RlckF0dHJpYnV0
ZShpc0xpbmVCcmVhaywgYXR0cnMsIERpcmVjdGlvbkZvcndhcmQsIG9mZnNldCwgdGV4dExlbmd0
aCArIDEsIGVuZE9mZnNldCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGVTa2lwKGlzTGluZUJyZWFrLCAxLCBhdHRycywgRGlyZWN0
aW9uQmFja3dhcmRzLCBvZmZzZXQsIHRleHRMZW5ndGggKyAxLCBzdGFydE9mZnNldCk7CisgICAg
ICAgICAgICAgICAgZmluZENoYXJhY3RlckF0dHJpYnV0ZShpc0xpbmVCcmVhaywgYXR0cnMsIERp
cmVjdGlvbkJhY2t3YXJkcywgb2Zmc2V0LCB0ZXh0TGVuZ3RoICsgMSwgZW5kT2Zmc2V0KTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGdfZnJl
ZShhdHRycyk7CisgICAgfQorCisgICAgaWYgKCpzdGFydE9mZnNldCA8IDAgfHwgKmVuZE9mZnNl
dCA+IHRleHRMZW5ndGgpIHsKKyAgICAgICAgKnN0YXJ0T2Zmc2V0ID0gKmVuZE9mZnNldCA9IDA7
CisgICAgICAgIHJldHVybiBnX3N0cmR1cCgiIik7CisgICAgfQorCisgICAgY2hhciogc3RhcnQg
PSBnX3V0Zjhfb2Zmc2V0X3RvX3BvaW50ZXIoY1RleHQsIChnbG9uZykqc3RhcnRPZmZzZXQpOwor
ICAgIGNoYXIqIGVuZCA9IGdfdXRmOF9vZmZzZXRfdG9fcG9pbnRlcihjVGV4dCwgKGdsb25nKSpl
bmRPZmZzZXQpOworICAgIGNoYXIqIHJlc3VsdFRleHQgPSBnX3N0cm5kdXAoc3RhcnQsIGVuZCAt
IHN0YXJ0KTsKKyAgICBnX2ZyZWUoY1RleHQpOworICAgIHJldHVybiByZXN1bHRUZXh0OworfQor
CitzdGF0aWMgZ2NoYXIqIHdlYmtpdF9hY2Nlc3NpYmxlX3RleHRfZ2V0X3RleHRfYWZ0ZXJfb2Zm
c2V0KEF0a1RleHQqIHRleHQsIGdpbnQgb2Zmc2V0LCBBdGtUZXh0Qm91bmRhcnkgYm91bmRhcnlU
eXBlLCBnaW50KiBzdGFydE9mZnNldCwgZ2ludCogZW5kT2Zmc2V0KQoreworICAgIHJldHVybiBn
ZXRUZXh0SGVscGVyKEFmdGVyT2Zmc2V0LCB0ZXh0LCBvZmZzZXQsIGJvdW5kYXJ5VHlwZSwgc3Rh
cnRPZmZzZXQsIGVuZE9mZnNldCk7Cit9CisKK3N0YXRpYyBnY2hhciogd2Via2l0X2FjY2Vzc2li
bGVfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQoQXRrVGV4dCogdGV4dCwgZ2ludCBvZmZzZXQsIEF0
a1RleHRCb3VuZGFyeSBib3VuZGFyeVR5cGUsIGdpbnQqIHN0YXJ0T2Zmc2V0LCBnaW50KiBlbmRP
ZmZzZXQpCit7CisgICAgcmV0dXJuIGdldFRleHRIZWxwZXIoQXRPZmZzZXQsIHRleHQsIG9mZnNl
dCwgYm91bmRhcnlUeXBlLCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTsKK30KKworc3RhdGljIGdj
aGFyKiB3ZWJraXRfYWNjZXNzaWJsZV90ZXh0X2dldF90ZXh0X2JlZm9yZV9vZmZzZXQoQXRrVGV4
dCogdGV4dCwgZ2ludCBvZmZzZXQsIEF0a1RleHRCb3VuZGFyeSBib3VuZGFyeVR5cGUsIGdpbnQq
IHN0YXJ0T2Zmc2V0LCBnaW50KiBlbmRPZmZzZXQpCit7CisgICAgcmV0dXJuIGdldFRleHRIZWxw
ZXIoQmVmb3JlT2Zmc2V0LCB0ZXh0LCBvZmZzZXQsIGJvdW5kYXJ5VHlwZSwgc3RhcnRPZmZzZXQs
IGVuZE9mZnNldCk7Cit9CisKK3N0YXRpYyBndW5pY2hhciB3ZWJraXRfYWNjZXNzaWJsZV90ZXh0
X2dldF9jaGFyYWN0ZXJfYXRfb2Zmc2V0KEF0a1RleHQqIHRleHQsIGdpbnQgb2Zmc2V0KQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIE5VTEw7CmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDc4MjI0NGUuLmMw
OGM5MmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMDUtMTIgIFhhbiBMb3BleiAgPHhsb3Bl
ekBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQxNQorICAg
ICAgICBbR1RLXVtBVEtdIFBsZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgZ2V0X3RleHRfYXRf
b2Zmc2V0CisKKyAgICAgICAgTmV3IHRlc3QgZmlsZSBmb3IgQVRLIGZ1bmN0aW9uYWxpdHkuCisK
KyAgICAgICAgKiB0ZXN0cy90ZXN0YXRrLmM6IEFkZGVkLgorICAgICAgICAoYmFpbF9vdXQpOgor
ICAgICAgICAodGVzdF9nZXRfdGV4dF9mdW5jdGlvbik6CisgICAgICAgICh0ZXN0X3dlYmtpdF9h
dGtfZ2V0X3RleHRfYXRfb2Zmc2V0KToKKyAgICAgICAgKG1haW4pOgorCiAyMDA5LTA1LTA4ICBY
YW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0
YXZvIE5vcm9uaGEuCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYyBiL1dl
YktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjQwOTY1NzQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsu
YwpAQCAtMCwwICsxLDIwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBJZ2FsaWEgUy5M
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxnbGli
Lmg+CisjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KKyNpbmNsdWRlIDxndGsvZ3RrLmg+CisjaW5j
bHVkZSA8d2Via2l0L3dlYmtpdC5oPgorCisjaWYgR0xJQl9DSEVDS19WRVJTSU9OKDIsIDE2LCAw
KSAmJiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxNCwgMCkKKworc3RhdGljIGNvbnN0IGNoYXIqIGNv
bnRlbnRzID0gIjxodG1sPjxib2R5PjxwPlRoaXMgaXMgYSB0ZXN0LiBUaGlzIGlzIHRoZSBzZWNv
bmQgc2VudGVuY2UuIEFuZCB0aGlzIHRoZSB0aGlyZC48L3A+PC9ib2R5PjwvaHRtbD4iOworCitz
dGF0aWMgZ2Jvb2xlYW4gYmFpbF9vdXQoR01haW5Mb29wKiBsb29wKQoreworICAgIGlmIChnX21h
aW5fbG9vcF9pc19ydW5uaW5nKGxvb3ApKQorICAgICAgICBnX21haW5fbG9vcF9xdWl0KGxvb3Ap
OworCisgICAgcmV0dXJuIEZBTFNFOworfQorCit0eXBlZGVmIGdjaGFyKiAoKkF0a0dldFRleHRG
dW5jdGlvbikgKEF0a1RleHQqLCBnaW50LCBBdGtUZXh0Qm91bmRhcnksIGdpbnQqLCBnaW50Kik7
CisKK3N0YXRpYyB2b2lkIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24oQXRrVGV4dCogdGV4dF9vYmos
IEF0a0dldFRleHRGdW5jdGlvbiBmbiwgQXRrVGV4dEJvdW5kYXJ5IGJvdW5kYXJ5LCBnaW50IG9m
ZnNldCwgY29uc3QgY2hhciogdGV4dF9yZXN1bHQsIGdpbnQgc3RhcnRfb2Zmc2V0X3Jlc3VsdCwg
Z2ludCBlbmRfb2Zmc2V0X3Jlc3VsdCkKK3sKKyAgICBnaW50IHN0YXJ0X29mZnNldCwgZW5kX29m
ZnNldDsKKyAgICBjaGFyKiB0ZXh0OworCisgICAgdGV4dCA9IGZuKHRleHRfb2JqLCBvZmZzZXQs
IGJvdW5kYXJ5LCAmc3RhcnRfb2Zmc2V0LCAmZW5kX29mZnNldCk7CisgICAgZ19hc3NlcnRfY21w
c3RyKHRleHQsID09LCB0ZXh0X3Jlc3VsdCk7CisgICAgZ19hc3NlcnRfY21waW50KHN0YXJ0X29m
ZnNldCwgPT0sIHN0YXJ0X29mZnNldF9yZXN1bHQpOworICAgIGdfYXNzZXJ0X2NtcGludChlbmRf
b2Zmc2V0LCA9PSwgZW5kX29mZnNldF9yZXN1bHQpOworICAgIGdfZnJlZSh0ZXh0KTsKK30KKwor
c3RhdGljIHZvaWQgdGVzdF93ZWJraXRfYXRrX2dldF90ZXh0X2F0X29mZnNldCh2b2lkKQorewor
ICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXc7CisgICAgQXRrT2JqZWN0ICpvYmo7CisgICAgR01h
aW5Mb29wKiBsb29wOworICAgIEF0a1RleHQqIHRleHRfb2JqOworICAgIGNoYXIqIHRleHQ7CisK
KyAgICB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdlYmtpdF93ZWJfdmlld19uZXcoKSk7Cisg
ICAgZ19vYmplY3RfcmVmX3Npbmsod2ViVmlldyk7CisgICAgd2Via2l0X3dlYl92aWV3X2xvYWRf
c3RyaW5nKHdlYlZpZXcsIGNvbnRlbnRzLCBOVUxMLCBOVUxMLCBOVUxMKTsKKyAgICBsb29wID0g
Z19tYWluX2xvb3BfbmV3KE5VTEwsIFRSVUUpOworCisgICAgZ190aW1lb3V0X2FkZCgxMDAsIChH
U291cmNlRnVuYyliYWlsX291dCwgbG9vcCk7CisgICAgZ19tYWluX2xvb3BfcnVuKGxvb3ApOwor
CisgICAgLyogR2V0IHRvIHRoZSBpbm5lciBBdGtUZXh0IG9iamVjdCAqLworICAgIG9iaiA9IGd0
a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoR1RLX1dJREdFVCh3ZWJWaWV3KSk7CisgICAgZ19hc3Nl
cnQob2JqKTsKKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iaiwg
MCk7CisgICAgZ19hc3NlcnQob2JqKTsKKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3Np
YmxlX2NoaWxkKG9iaiwgMCk7CisgICAgZ19hc3NlcnQob2JqKTsKKworICAgIHRleHRfb2JqID0g
QVRLX1RFWFQob2JqKTsKKyAgICBnX2Fzc2VydChBVEtfSVNfVEVYVCh0ZXh0X29iaikpOworCisg
ICAgdGV4dCA9IGF0a190ZXh0X2dldF90ZXh0KHRleHRfb2JqLCAwLCAtMSk7CisgICAgZ19hc3Nl
cnRfY21wc3RyKHRleHQsID09LCAiVGhpcyBpcyBhIHRlc3QuIFRoaXMgaXMgdGhlIHNlY29uZCBz
ZW50ZW5jZS4gQW5kIHRoaXMgdGhlIHRoaXJkLiIpOworICAgIGdfZnJlZSh0ZXh0KTsKKworICAg
IC8qIEFUS19URVhUX0JPVU5EQVJZX0NIQVIgKi8KKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9u
KHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZ
X0NIQVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAiVCIsIDAsIDEpOworCisgICAg
dGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYWZ0ZXJf
b2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9DSEFSLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMCwgImgiLCAxLCAyKTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmos
IGF0a190ZXh0X2dldF90ZXh0X2JlZm9yZV9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX0NIQVIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAiIiwgMCwgMCk7CisKKyAgICB0ZXN0X2dl
dF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9iZWZvcmVfb2Zmc2V0
LCBBVEtfVEVYVF9CT1VOREFSWV9DSEFSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwg
IlQiLCAwLCAxKTsKKyAgICAKKyAgICAvKiBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX1NUQVJUICov
CisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRf
YXRfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX1NUQVJULAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMCwgIlRoaXMiLCAwLCA0KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rp
b24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCwgQVRLX1RFWFRfQk9VTkRB
UllfV09SRF9TVEFSVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsICJUaGlzIiwgMCwg
NCk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRf
dGV4dF9iZWZvcmVfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX1NUQVJULAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNSwgIlRoaXMiLCAwLCA0KTsKKworICAgIHRlc3RfZ2V0X3Rl
eHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2JlZm9yZV9vZmZzZXQsIEFU
S19URVhUX0JPVU5EQVJZX1dPUkRfU1RBUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICA3
LCAiVGhpcyIsIDAsIDQpOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwg
YXRrX3RleHRfZ2V0X3RleHRfYWZ0ZXJfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX1NU
QVJULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgImlzIiwgNSwgNyk7CisKKyAgICB0
ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hZnRlcl9v
ZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfU1RBUlQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0LCAiaXMiLCA1LCA3KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4
dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2FmdGVyX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllf
V09SRF9TVEFSVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDMsICJpcyIsIDUsIDcpOwor
CisgICAgLyogQVRLX1RFWFRfQk9VTkRBUllfV09SRF9FTkQgKi8KKyAgICB0ZXN0X2dldF90ZXh0
X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19URVhU
X0JPVU5EQVJZX1dPUkRfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgIlRoaXMi
LCAwLCA0KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0
X2dldF90ZXh0X2F0X29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfV09SRF9FTkQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0LCAiaXMiLCA1LCA3KTsKKworICAgIHRlc3RfZ2V0X3RleHRf
ZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2JlZm9yZV9vZmZzZXQsIEFUS19U
RVhUX0JPVU5EQVJZX1dPUkRfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgNSwgIlRo
aXMiLCAwLCA0KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190
ZXh0X2dldF90ZXh0X2JlZm9yZV9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfRU5ELAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwgIlRoaXMiLCAwLCA0KTsKKworICAgIHRlc3Rf
Z2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2FmdGVyX29mZnNl
dCwgQVRLX1RFWFRfQk9VTkRBUllfV09SRF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICA1LCAiYSIsIDgsIDkpOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwg
YXRrX3RleHRfZ2V0X3RleHRfYWZ0ZXJfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX0VO
RCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsICJhIiwgOCwgOSk7CisKKyAgICAvKiBB
VEtfVEVYVF9CT1VOREFSWV9TRU5URU5DRV9TVEFSVCAqLworICAgIHRlc3RfZ2V0X3RleHRfZnVu
Y3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCwgQVRLX1RFWFRfQk9V
TkRBUllfU0VOVEVOQ0VfU1RBUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAiVGhp
cyBpcyBhIHRlc3QuIiwgMCwgMTUpOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0
X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9TRU5U
RU5DRV9TVEFSVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1LCAiVGhpcyBpcyBhIHRl
c3QuIiwgMCwgMTUpOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRr
X3RleHRfZ2V0X3RleHRfYWZ0ZXJfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9TRU5URU5DRV9T
VEFSVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICJUaGlzIGlzIHRoZSBzZWNvbmQg
c2VudGVuY2UuIiwgMTYsIDQ0KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9v
YmosIGF0a190ZXh0X2dldF90ZXh0X2FmdGVyX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VO
VEVOQ0VfU1RBUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAxNSwgIlRoaXMgaXMgdGhl
IHNlY29uZCBzZW50ZW5jZS4iLCAxNiwgNDQpOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlv
bih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYmVmb3JlX29mZnNldCwgQVRLX1RFWFRfQk9V
TkRBUllfU0VOVEVOQ0VfU1RBUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAxNiwgIlRo
aXMgaXMgYSB0ZXN0LiIsIDAsIDE1KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4
dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2JlZm9yZV9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZ
X1NFTlRFTkNFX1NUQVJULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQsICJUaGlzIGlz
IGEgdGVzdC4iLCAwLCAxNSk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2Jq
LCBhdGtfdGV4dF9nZXRfdGV4dF9iZWZvcmVfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9TRU5U
RU5DRV9TVEFSVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1LCAiIiwgMCwgMCk7CisK
KyAgICAvKiBBVEtfVEVYVF9CT1VOREFSWV9TRU5URU5DRV9FTkQgKi8KKyAgICB0ZXN0X2dldF90
ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19U
RVhUX0JPVU5EQVJZX1NFTlRFTkNFX0VORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDAs
ICJUaGlzIGlzIGEgdGVzdC4iLCAwLCAxNSk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9u
KHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZ
X1NFTlRFTkNFX0VORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1LCAiVGhpcyBpcyB0
aGUgc2Vjb25kIHNlbnRlbmNlLiIsIDE2LCA0NCk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0
aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hZnRlcl9vZmZzZXQsIEFUS19URVhUX0JP
VU5EQVJZX1NFTlRFTkNFX0VORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICJUaGlz
IGlzIHRoZSBzZWNvbmQgc2VudGVuY2UuIiwgMTYsIDQ0KTsKKworICAgIHRlc3RfZ2V0X3RleHRf
ZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2FmdGVyX29mZnNldCwgQVRLX1RF
WFRfQk9VTkRBUllfU0VOVEVOQ0VfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUs
ICJBbmQgdGhpcyB0aGUgdGhpcmQuIiwgNDUsIDY0KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVu
Y3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2JlZm9yZV9vZmZzZXQsIEFUS19URVhU
X0JPVU5EQVJZX1NFTlRFTkNFX0VORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2LCAi
VGhpcyBpcyBhIHRlc3QuIiwgMCwgMTUpOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0
ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYmVmb3JlX29mZnNldCwgQVRLX1RFWFRfQk9VTkRB
UllfU0VOVEVOQ0VfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUsICJUaGlzIGlz
IGEgdGVzdC4iLCAwLCAxNSk7CisKKyAgICAvKiBBVEtfVEVYVF9CT1VOREFSWV9MSU5FX1NUQVJU
ICovCisgICAgLyogQVRLX1RFWFRfQk9VTkRBUllfTElORV9FTkQgKi8KKworICAgIGdfb2JqZWN0
X3VucmVmKHdlYlZpZXcpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7
CisgICAgZ190aHJlYWRfaW5pdChOVUxMKTsKKyAgICBndGtfdGVzdF9pbml0KCZhcmdjLCAmYXJn
diwgTlVMTCk7CisKKyAgICBnX3Rlc3RfYnVnX2Jhc2UoImh0dHBzOi8vYnVncy53ZWJraXQub3Jn
LyIpOworICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvZ2V0X3RleHRfYXRfb2Zmc2V0
IiwgdGVzdF93ZWJraXRfYXRrX2dldF90ZXh0X2F0X29mZnNldCk7CisgICAgcmV0dXJuIGdfdGVz
dF9ydW4gKCk7Cit9CisKKyNlbHNlCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7
CisgICAgZ19jcml0aWNhbCgiWW91IHdpbGwgbmVlZCBhdCBsZWFzdCBnbGliLTIuMTYuMCBhbmQg
Z3RrLTIuMTQuMCB0byBydW4gdGhlIHVuaXQgdGVzdHMuIERvaW5nIG5vdGhpbmcgbm93LiIpOwor
ICAgIHJldHVybiAwOworfQorCisjZW5kaWYKLS0gCjEuNi4yLjIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30370</attachid>
            <date>2009-05-15 01:22:55 -0700</date>
            <delta_ts>2009-05-19 03:36:53 -0700</delta_ts>
            <desc>gettextv2.patch</desc>
            <filename>gettextv2.patch</filename>
            <type>text/plain</type>
            <size>22982</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSAyMGQ5YTAxMzM5OWM4NjM0Y2U2ZTMwYTcxOWMxYTBiOTlmOGIxM2ViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBU
dWUsIDEyIE1heSAyMDA5IDE4OjUzOjE1ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gMjAwOS0wNS0x
MiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CgogICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgoKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjU0MTUKICAgICAgICBbR1RLXVtBVEtdIFBsZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBm
b3IgZ2V0X3RleHRfYXRfb2Zmc2V0CgogICAgICAgIEFkZCBuZXcgdGVzdCBmaWxlIGZvciBBVEsu
CgogICAgICAgICogR05VbWFrZWZpbGUuYW06CgpXZWJDb3JlOgoKMjAwOS0wNS0xMiAgWGFuIExv
cGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgoKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0
MTUKICAgICAgICBbR1RLXVtBVEtdIFBsZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgZ2V0X3Rl
eHRfYXRfb2Zmc2V0CgogICAgICAgIEltcGxlbWVudCBhdGtfdGV4dF9nZXRfdGV4dF97YXQsYWZ0
ZXIsYmVmb3JlfV9vZmZzZXQuCgogICAgICAgICogcGFnZS9ndGsvQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJBdGsuY3BwOgoKV2ViS2l0L2d0azoKCjIwMDktMDUtMTIgIFhhbiBMb3BleiAgPHhs
b3BlekBpZ2FsaWEuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDE1CiAgICAg
ICAgW0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGdldF90ZXh0X2F0X29m
ZnNldAoKICAgICAgICBOZXcgdGVzdCBmaWxlIGZvciBBVEsgZnVuY3Rpb25hbGl0eS4KCiAgICAg
ICAgKiB0ZXN0cy90ZXN0YXRrLmM6IEFkZGVkLgogICAgICAgIChiYWlsX291dCk6CiAgICAgICAg
KHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24pOgogICAgICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0X3Rl
eHRfYXRfb2Zmc2V0KToKICAgICAgICAobWFpbik6Ci0tLQogQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsKIEdOVW1ha2VmaWxlLmFtICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOCArLQogV2ViQ29yZS9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsKIFdlYkNvcmUv
cGFnZS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwIHwgIDIxNSArKysrKysr
KysrKysrKysrKystCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMTUgKysKIFdlYktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgIDIxOSArKysrKysrKysrKysrKysrKysrKwogNiBmaWxlcyBjaGFuZ2Vk
LCA0NjggaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg
V2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMKCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFu
Z2VMb2cKaW5kZXggOTgzNmFiNy4uMTI5MWI0MiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBi
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDA5LTA1LTEyICBYYW4gTG9wZXogIDx4bG9w
ZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MTUKKyAg
ICAgICAgW0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGdldF90ZXh0X2F0
X29mZnNldAorCisgICAgICAgIEFkZCBuZXcgdGVzdCBmaWxlIGZvciBBVEsuCisKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbToKKwogMjAwOS0wNS0xMyAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxp
YS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZDogYnVtcCB2ZXJzaW9ucyBpbiBwcmVwYXJhdGlv
biBmb3IgMS4xLjcgcmVsZWFzZS4KZGlmZiAtLWdpdCBhL0dOVW1ha2VmaWxlLmFtIGIvR05VbWFr
ZWZpbGUuYW0KaW5kZXggOTU3MDc4Zi4uNTNjOGNmZiAxMDA2NDQKLS0tIGEvR05VbWFrZWZpbGUu
YW0KKysrIGIvR05VbWFrZWZpbGUuYW0KQEAgLTUxMiw3ICs1MTIsOCBAQCB3ZWJraXRfdGVzdHNf
bGRhZGQgPSBcCiBURVNUX1BST0dTICs9IFByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0d2ViZnJhbWUg
XAogCVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0d2ViYmFja2ZvcndhcmRsaXN0IFwKIAlQcm9ncmFt
cy91bml0dGVzdHMvdGVzdHdlYmhpc3RvcnlpdGVtIFwKLQlQcm9ncmFtcy91bml0dGVzdHMvdGVz
dGRvd25sb2FkCisJUHJvZ3JhbXMvdW5pdHRlc3RzL3Rlc3Rkb3dubG9hZCBcCisJUHJvZ3JhbXMv
dW5pdHRlc3RzL3Rlc3RhdGsKIAogIyBBZGQgYWRkaXRpb25hbCB0ZXN0cyBoZXJlCiBQcm9ncmFt
c191bml0dGVzdHNfdGVzdHdlYmZyYW1lX1NPVVJDRVMgPSBXZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3
ZWJmcmFtZS5jCkBAIC01MzEsNiArNTMyLDExIEBAIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0ZG93
bmxvYWRfU09VUkNFUyA9IFdlYktpdC9ndGsvdGVzdHMvdGVzdGRvd25sb2FkLmMKIFByb2dyYW1z
X3VuaXR0ZXN0c190ZXN0ZG93bmxvYWRfQ0ZMQUdTID0gJCh3ZWJraXRfdGVzdHNfY2ZsYWdzKQog
UHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3Rkb3dubG9hZF9MREFERCA9ICQod2Via2l0X3Rlc3RzX2xk
YWRkKQogCitQcm9ncmFtc191bml0dGVzdHNfdGVzdGF0a19TT1VSQ0VTID0gV2ViS2l0L2d0ay90
ZXN0cy90ZXN0YXRrLmMKK1Byb2dyYW1zX3VuaXR0ZXN0c190ZXN0YXRrX0NGTEFHUyA9ICQod2Vi
a2l0X3Rlc3RzX2NmbGFncykKK1Byb2dyYW1zX3VuaXR0ZXN0c190ZXN0YXRrX0xEQUREID0gJCh3
ZWJraXRfdGVzdHNfbGRhZGQpCisKKwogIyBBdXRvZ2VuZXJhdGVkIHNvdXJjZXMKIEJVSUxUX1NP
VVJDRVMgOj0gXAogCSQoamF2YXNjcmlwdGNvcmVfYnVpbHRfc291cmNlcykgXApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNTgzMjhiLi40
NWNiNDFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDA5LTA1LTEyICBYYW4gTG9wZXogIDx4bG9wZXpAaWdh
bGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MTUKKyAgICAgICAg
W0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGdldF90ZXh0X2F0X29mZnNl
dAorCisgICAgICAgIEltcGxlbWVudCBhdGtfdGV4dF9nZXRfdGV4dF97YXQsYWZ0ZXIsYmVmb3Jl
fV9vZmZzZXQuCisKKyAgICAgICAgKiBwYWdlL2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ckF0ay5jcHA6CisKIDIwMDktMDUtMTQgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
YWdlL2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAgYi9XZWJDb3JlL3BhZ2Uv
Z3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAppbmRleCAxYzAwNzg1Li42YWI5
MDZhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQXRrLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQXRrLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgPGF0ay9hdGsuaD4KICNpbmNs
dWRlIDxnbGliLmg+CiAjaW5jbHVkZSA8Z2xpYi9ncHJpbnRmLmg+CisjaW5jbHVkZSA8cGFuZ28v
cGFuZ28uaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTQ2MSwyNSArNDYyLDIx
OSBAQCBzdGF0aWMgZ2NoYXIqIHdlYmtpdF9hY2Nlc3NpYmxlX3RleHRfZ2V0X3RleHQoQXRrVGV4
dCogdGV4dCwgZ2ludCBzdGFydE9mZnNldCwgZwogICAgIHJldHVybiBnX3N0cmR1cChyZXQudXRm
OCgpLmRhdGEoKSk7CiB9CiAKLXN0YXRpYyBnY2hhciogd2Via2l0X2FjY2Vzc2libGVfdGV4dF9n
ZXRfdGV4dF9hZnRlcl9vZmZzZXQoQXRrVGV4dCogdGV4dCwgZ2ludCBvZmZzZXQsIEF0a1RleHRC
b3VuZGFyeSBib3VuZGFyeV90eXBlLCBnaW50KiBzdGFydF9vZmZzZXQsIGdpbnQqIGVuZF9vZmZz
ZXQpCit0eXBlZGVmIGVudW0geworICAgIEFmdGVyT2Zmc2V0LAorICAgIEF0T2Zmc2V0LAorICAg
IEJlZm9yZU9mZnNldAorfSBHZXRUZXh0RnVuY3Rpb25UeXBlOworCit0eXBlZGVmIGJvb2wgKCpp
c0NoYXJhY3RlckF0dHJpYnV0ZSkgKFBhbmdvTG9nQXR0ciogYXR0cik7CisKK3N0YXRpYyBpbmxp
bmUgYm9vbCBpc1dvcmRTdGFydChQYW5nb0xvZ0F0dHIqIGF0dHIpCiB7Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gTlVMTDsKKyAgICByZXR1cm4gYXR0ci0+aXNfd29yZF9zdGFy
dDsKIH0KIAotc3RhdGljIGdjaGFyKiB3ZWJraXRfYWNjZXNzaWJsZV90ZXh0X2dldF90ZXh0X2F0
X29mZnNldChBdGtUZXh0KiB0ZXh0LCBnaW50IG9mZnNldCwgQXRrVGV4dEJvdW5kYXJ5IGJvdW5k
YXJ5X3R5cGUsIGdpbnQqIHN0YXJ0X29mZnNldCwgZ2ludCogZW5kX29mZnNldCkKK3N0YXRpYyBp
bmxpbmUgYm9vbCBpc1dvcmRFbmQoUGFuZ29Mb2dBdHRyKiBhdHRyKQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuIGF0dHItPmlzX3dvcmRfZW5k
OwogfQogCi1zdGF0aWMgZ3VuaWNoYXIgd2Via2l0X2FjY2Vzc2libGVfdGV4dF9nZXRfY2hhcmFj
dGVyX2F0X29mZnNldChBdGtUZXh0KiB0ZXh0LCBnaW50IG9mZnNldCkKK3N0YXRpYyBpbmxpbmUg
Ym9vbCBpc1NlbnRlbmNlU3RhcnQoUGFuZ29Mb2dBdHRyKiBhdHRyKQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGF0dHItPmlzX3NlbnRlbmNlX3N0
YXJ0OwogfQogCi1zdGF0aWMgZ2NoYXIqIHdlYmtpdF9hY2Nlc3NpYmxlX3RleHRfZ2V0X3RleHRf
YmVmb3JlX29mZnNldChBdGtUZXh0KiB0ZXh0LCBnaW50IG9mZnNldCwgQXRrVGV4dEJvdW5kYXJ5
IGJvdW5kYXJ5X3R5cGUsIGdpbnQqIHN0YXJ0X29mZnNldCwgZ2ludCogZW5kX29mZnNldCkKK3N0
YXRpYyBpbmxpbmUgYm9vbCBpc1NlbnRlbmNlRW5kKFBhbmdvTG9nQXR0ciogYXR0cikKK3sKKyAg
ICByZXR1cm4gYXR0ci0+aXNfc2VudGVuY2VfZW5kOworfQorCit0eXBlZGVmIGludCAoKmFkdmFu
Y2VGdW5jKSAoaW50KTsKKworc3RhdGljIGludCBpbmNyZWFzZUludChpbnQgaSkgeworICAgIHJl
dHVybiBpICsgMTsKK30KKworc3RhdGljIGludCBkZWNyZWFzZUludChpbnQgaSkgeworICAgIHJl
dHVybiBpIC0gMTsKK30KKwordHlwZWRlZiBlbnVtIHsKKyAgICBEaXJlY3Rpb25Gb3J3YXJkLAor
ICAgIERpcmVjdGlvbkJhY2t3YXJkcworfSBEaXJlY3Rpb247CisKK3N0YXRpYyB2b2lkIGZpbmRD
aGFyYWN0ZXJBdHRyaWJ1dGUoaXNDaGFyYWN0ZXJBdHRyaWJ1dGUgcHJlZGljYXRlRnVuY3Rpb24s
IFBhbmdvTG9nQXR0ciogYXR0cmlidXRlcywgRGlyZWN0aW9uIGRpcmVjdGlvbiwgaW50IHN0YXJ0
T2Zmc2V0LCBpbnQgYXR0cnNMZW5ndGgsIGludCogcmVzdWx0T2Zmc2V0KQoreworICAgIGludCBp
OworICAgIGFkdmFuY2VGdW5jIGFkdmFuY2VGdW5jID0gZGlyZWN0aW9uID09IERpcmVjdGlvbkZv
cndhcmQgPyBpbmNyZWFzZUludCA6IGRlY3JlYXNlSW50OworCisgICAgKnJlc3VsdE9mZnNldCA9
IC0xOworCisgICAgZm9yIChpID0gc3RhcnRPZmZzZXQ7IGkgPj0gMCAmJiBpIDw9IGF0dHJzTGVu
Z3RoOyBpID0gYWR2YW5jZUZ1bmMoaSkpIHsKKyAgICAgICAgaWYgKHByZWRpY2F0ZUZ1bmN0aW9u
KGF0dHJpYnV0ZXMraSkpIHsKKyAgICAgICAgICAgICpyZXN1bHRPZmZzZXQgPSBpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIGZpbmRDaGFy
YWN0ZXJBdHRyaWJ1dGVTa2lwKGlzQ2hhcmFjdGVyQXR0cmlidXRlIHByZWRpY2F0ZUZ1bmN0aW9u
LCB1bnNpZ25lZCBza2lwLCBQYW5nb0xvZ0F0dHIqIGF0dHJpYnV0ZXMsIERpcmVjdGlvbiBkaXJl
Y3Rpb24sIGludCBzdGFydE9mZnNldCwgaW50IGF0dHJzTGVuZ3RoLCBpbnQqIHJlc3VsdE9mZnNl
dCkKK3sKKyAgICBpbnQgdG1wT2Zmc2V0OworCisgICAgZmluZENoYXJhY3RlckF0dHJpYnV0ZShw
cmVkaWNhdGVGdW5jdGlvbiwgYXR0cmlidXRlcywgZGlyZWN0aW9uLCBzdGFydE9mZnNldCwgYXR0
cnNMZW5ndGgsICZ0bXBPZmZzZXQpOworICAgIGlmIChza2lwID09IDApIHsKKyAgICAgICAgKnJl
c3VsdE9mZnNldCA9IHRtcE9mZnNldDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChkaXJlY3Rpb24gPT0gRGlyZWN0aW9uRm9yd2FyZCkKKyAgICAgICAgdG1wT2Zmc2V0Kys7Cisg
ICAgZWxzZQorICAgICAgICB0bXBPZmZzZXQtLTsKKworICAgIGZpbmRDaGFyYWN0ZXJBdHRyaWJ1
dGVTa2lwKHByZWRpY2F0ZUZ1bmN0aW9uLCBza2lwIC0gMSwgYXR0cmlidXRlcywgZGlyZWN0aW9u
LCB0bXBPZmZzZXQsIGF0dHJzTGVuZ3RoLCByZXN1bHRPZmZzZXQpOworfQorCitzdGF0aWMgaW5s
aW5lIGJvb2wgaXNMaW5lQnJlYWsoUGFuZ29Mb2dBdHRyKiBhdHRyKQoreworICAgIHJldHVybiBh
dHRyLT5pc19saW5lX2JyZWFrOworfQorCitzdGF0aWMgZ2NoYXIqIGdldFRleHRIZWxwZXIoR2V0
VGV4dEZ1bmN0aW9uVHlwZSBnZXRUZXh0RnVuY3Rpb25UeXBlLCBBdGtUZXh0KiB0ZXh0T2JqZWN0
LCBnaW50IG9mZnNldCwgQXRrVGV4dEJvdW5kYXJ5IGJvdW5kYXJ5VHlwZSwgZ2ludCogc3RhcnRP
ZmZzZXQsIGdpbnQqIGVuZE9mZnNldCkKK3sKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3Jl
T2JqZWN0ID0gY29yZSh0ZXh0T2JqZWN0KTsKKyAgICBTdHJpbmcgdGV4dDsKKworICAgIGlmIChj
b3JlT2JqZWN0LT5pc1RleHRDb250cm9sKCkpCisgICAgICAgIHRleHQgPSBjb3JlT2JqZWN0LT50
ZXh0KCk7CisgICAgZWxzZQorICAgICAgICB0ZXh0ID0gY29yZU9iamVjdC0+dGV4dFVuZGVyRWxl
bWVudCgpOworCisgICAgY2hhciogY1RleHQgPSBnX3N0cmR1cCh0ZXh0LnV0ZjgoKS5kYXRhKCkp
OworICAgIGdsb25nIHRleHRMZW5ndGggPSBnX3V0Zjhfc3RybGVuKGNUZXh0LCAtMSk7CisKKyAg
ICBpZiAoYm91bmRhcnlUeXBlID09IEFUS19URVhUX0JPVU5EQVJZX0NIQVIpIHsKKyAgICAgICAg
aW50IGVmZmVjdGl2ZU9mZnNldDsKKworICAgICAgICBzd2l0Y2goZ2V0VGV4dEZ1bmN0aW9uVHlw
ZSkgeworICAgICAgICBjYXNlIEFmdGVyT2Zmc2V0OgorICAgICAgICAgICAgZWZmZWN0aXZlT2Zm
c2V0ID0gb2Zmc2V0ICsgMTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEJlZm9y
ZU9mZnNldDoKKyAgICAgICAgICAgIGVmZmVjdGl2ZU9mZnNldCA9IG9mZnNldCAtIDE7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBdE9mZnNldDoKKyAgICAgICAgICAgIGVmZmVj
dGl2ZU9mZnNldCA9IG9mZnNldDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQoKTsKKyAgICAgICAgfQorCisgICAg
ICAgICpzdGFydE9mZnNldCA9IGVmZmVjdGl2ZU9mZnNldDsKKyAgICAgICAgKmVuZE9mZnNldCA9
IGVmZmVjdGl2ZU9mZnNldCArIDE7CisgICAgfSBlbHNlIGlmIChib3VuZGFyeVR5cGUgPT0gQVRL
X1RFWFRfQk9VTkRBUllfTElORV9TVEFSVCB8fAorICAgICAgICAgICAgICAgYm91bmRhcnlUeXBl
ID09IEFUS19URVhUX0JPVU5EQVJZX0xJTkVfRU5EKSB7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
UGFuZ29Mb2dBdHRyKiBhdHRycyA9IGdfbmV3KFBhbmdvTG9nQXR0ciwgdGV4dExlbmd0aCsxKTsK
KyAgICAgICAgUGFuZ29MYW5ndWFnZSogbGFuZ3VhZ2UgPSBwYW5nb19sYW5ndWFnZV9nZXRfZGVm
YXVsdCgpOworICAgICAgICBwYW5nb19nZXRfbG9nX2F0dHJzKGNUZXh0LCAtMSwgLTEsIGxhbmd1
YWdlLCBhdHRycywgdGV4dExlbmd0aCsxKTsKKyAgICAgIAorICAgICAgICBpc0NoYXJhY3RlckF0
dHJpYnV0ZSBwcmVkaWNhdGU7CisKKyAgICAgICAgaWYgKGJvdW5kYXJ5VHlwZSA9PSBBVEtfVEVY
VF9CT1VOREFSWV9XT1JEX1NUQVJUKQorICAgICAgICAgICAgcHJlZGljYXRlID0gaXNXb3JkU3Rh
cnQ7CisgICAgICAgIGVsc2UgaWYgKGJvdW5kYXJ5VHlwZSA9PSBBVEtfVEVYVF9CT1VOREFSWV9X
T1JEX0VORCkKKyAgICAgICAgICAgIHByZWRpY2F0ZSA9IGlzV29yZEVuZDsKKyAgICAgICAgZWxz
ZSBpZiAoYm91bmRhcnlUeXBlID09IEFUS19URVhUX0JPVU5EQVJZX1NFTlRFTkNFX1NUQVJUKQor
ICAgICAgICAgICAgcHJlZGljYXRlID0gaXNTZW50ZW5jZVN0YXJ0OworICAgICAgICBlbHNlIGlm
IChib3VuZGFyeVR5cGUgPT0gQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0VfRU5EKQorICAgICAg
ICAgICAgcHJlZGljYXRlID0gaXNTZW50ZW5jZUVuZDsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgZ19hc3NlcnRfbm90X3JlYWNoZWQoKTsKKworICAgICAgICBzd2l0Y2goYm91bmRhcnlUeXBl
KSB7CisgICAgICAgIGNhc2UgQVRLX1RFWFRfQk9VTkRBUllfV09SRF9TVEFSVDoKKyAgICAgICAg
Y2FzZSBBVEtfVEVYVF9CT1VOREFSWV9TRU5URU5DRV9TVEFSVDoKKyAgICAgICAgICAgIGlmIChn
ZXRUZXh0RnVuY3Rpb25UeXBlID09IEFmdGVyT2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgLy8g
VGFrZSB0aGUgaXRlbSBhZnRlciB0aGUgY3VycmVudCBvbmUgaW4gYW55IGNhc2UKKyAgICAgICAg
ICAgICAgICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlKHByZWRpY2F0ZSwgYXR0cnMsIERpcmVjdGlv
bkZvcndhcmQsIG9mZnNldCsxLCB0ZXh0TGVuZ3RoICsgMSwgc3RhcnRPZmZzZXQpOworICAgICAg
ICAgICAgICAgIGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGVTa2lwKHByZWRpY2F0ZSwgMSwgYXR0cnMs
IERpcmVjdGlvbkZvcndhcmQsIG9mZnNldCsxLCB0ZXh0TGVuZ3RoICsgMSwgZW5kT2Zmc2V0KTsK
KyAgICAgICAgICAgIH0gZWxzZSBpZiAoZ2V0VGV4dEZ1bmN0aW9uVHlwZSA9PSBBdE9mZnNldCkg
eworICAgICAgICAgICAgICAgIC8vIFRha2UgdGhlIGl0ZW0gYXQgcG9pbnQgaWYgdGhlIG9mZnNl
dCBpcyBpbiBhbiBpdGVtIG9yCisgICAgICAgICAgICAgICAgLy8gdGhlIGl0ZW0gYmVmb3JlIG90
aGVyd2lzZQorICAgICAgICAgICAgICAgIGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGUocHJlZGljYXRl
LCBhdHRycywgRGlyZWN0aW9uQmFja3dhcmRzLCBvZmZzZXQsIHRleHRMZW5ndGggKyAxLCBzdGFy
dE9mZnNldCk7CisgICAgICAgICAgICAgICAgZmluZENoYXJhY3RlckF0dHJpYnV0ZShwcmVkaWNh
dGUsIGF0dHJzLCBEaXJlY3Rpb25Gb3J3YXJkLCBvZmZzZXQrMSwgdGV4dExlbmd0aCArIDEsIGVu
ZE9mZnNldCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFRha2Ug
dGhlIGl0ZW0gYmVmb3JlIHRoZSBwb2ludCBpZiB0aGUgb2Zmc2V0IGlzIGluIGFuCisgICAgICAg
ICAgICAgICAgLy8gaXRlbSwgb3IgdGhlIHRoZSBpdGVtIGJlZm9yZSB0aGF0IG9uZSBvdGhlcndp
c2UKKyAgICAgICAgICAgICAgICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlU2tpcChwcmVkaWNhdGUs
IDEsIGF0dHJzLCBEaXJlY3Rpb25CYWNrd2FyZHMsIG9mZnNldCwgdGV4dExlbmd0aCArIDEsIHN0
YXJ0T2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlKHByZWRp
Y2F0ZSwgYXR0cnMsIERpcmVjdGlvbkJhY2t3YXJkcywgb2Zmc2V0LCB0ZXh0TGVuZ3RoICsgMSwg
ZW5kT2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfRU5EOgorICAgICAgICBjYXNlIEFUS19URVhUX0JP
VU5EQVJZX1NFTlRFTkNFX0VORDoKKyAgICAgICAgICAgIGlmIChnZXRUZXh0RnVuY3Rpb25UeXBl
ID09IEFmdGVyT2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgLy8gVGFrZSB0aGUgaXRlbSBhZnRl
ciB0aGUgY3VycmVudCBpdGVtIGlmIHRoZSBvZmZzZXQgaXMKKyAgICAgICAgICAgICAgICAvLyBp
biBhIGl0ZW0sIG9yIHRoZSBpdGVtIGFmdGVyIHRoYXQgb3RoZXJ3aXNlCisgICAgICAgICAgICAg
ICAgZmluZENoYXJhY3RlckF0dHJpYnV0ZShwcmVkaWNhdGUsIGF0dHJzLCBEaXJlY3Rpb25Gb3J3
YXJkLCBvZmZzZXQsIHRleHRMZW5ndGggKyAxLCBzdGFydE9mZnNldCk7CisgICAgICAgICAgICAg
ICAgZmluZENoYXJhY3RlckF0dHJpYnV0ZVNraXAocHJlZGljYXRlLCAxLCBhdHRycywgRGlyZWN0
aW9uRm9yd2FyZCwgb2Zmc2V0LCB0ZXh0TGVuZ3RoICsgMSwgZW5kT2Zmc2V0KTsKKyAgICAgICAg
ICAgIH0gZWxzZSBpZiAoZ2V0VGV4dEZ1bmN0aW9uVHlwZSA9PSBBdE9mZnNldCkgeworICAgICAg
ICAgICAgICAgIC8vIFRha2UgdGhlIGl0ZW0gYXQgcG9pbnQgaWYgdGhlIG9mZnNldCBpcyBpbiBh
IGl0ZW0gb3IKKyAgICAgICAgICAgICAgICAvLyB0aGUgaXRlbSBhZnRlciBvdGhlcndpc2UKKyAg
ICAgICAgICAgICAgICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlKHByZWRpY2F0ZSwgYXR0cnMsIERp
cmVjdGlvbkJhY2t3YXJkcywgb2Zmc2V0LTEsIHRleHRMZW5ndGggKyAxLCBzdGFydE9mZnNldCk7
CisgICAgICAgICAgICAgICAgZmluZENoYXJhY3RlckF0dHJpYnV0ZShwcmVkaWNhdGUsIGF0dHJz
LCBEaXJlY3Rpb25Gb3J3YXJkLCBvZmZzZXQsIHRleHRMZW5ndGggKyAxLCBlbmRPZmZzZXQpOwor
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBUYWtlIHRoZSBpdGVtIGJl
Zm9yZSB0aGUgcG9pbnQgaW4gYW55IGNhc2UKKyAgICAgICAgICAgICAgICBmaW5kQ2hhcmFjdGVy
QXR0cmlidXRlU2tpcChwcmVkaWNhdGUsIDEsIGF0dHJzLCBEaXJlY3Rpb25CYWNrd2FyZHMsIG9m
ZnNldCwgdGV4dExlbmd0aCArIDEsIHN0YXJ0T2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBmaW5k
Q2hhcmFjdGVyQXR0cmlidXRlKHByZWRpY2F0ZSwgYXR0cnMsIERpcmVjdGlvbkJhY2t3YXJkcywg
b2Zmc2V0LCB0ZXh0TGVuZ3RoICsgMSwgZW5kT2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFUS19URVhUX0JPVU5EQVJZX0xJTkVfU1RBUlQ6
CisgICAgICAgICAgICAvLyBUT0RPCisgICAgICAgICAgICAqc3RhcnRPZmZzZXQgPSAqZW5kT2Zm
c2V0ID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFUS19URVhUX0JPVU5E
QVJZX0xJTkVfRU5EOgorICAgICAgICAgICAgLy8gVE9ETworICAgICAgICAgICAgKnN0YXJ0T2Zm
c2V0ID0gKmVuZE9mZnNldCA9IDA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVkKCk7CisgICAgICAgIH0KKworICAg
ICAgICBnX2ZyZWUoYXR0cnMpOworICAgIH0KKworICAgIGlmICgqc3RhcnRPZmZzZXQgPCAwIHx8
ICplbmRPZmZzZXQgPiB0ZXh0TGVuZ3RoKSB7CisgICAgICAgICpzdGFydE9mZnNldCA9ICplbmRP
ZmZzZXQgPSAwOworICAgICAgICByZXR1cm4gZ19zdHJkdXAoIiIpOworICAgIH0KKworICAgIGNo
YXIqIHN0YXJ0ID0gZ191dGY4X29mZnNldF90b19wb2ludGVyKGNUZXh0LCAoZ2xvbmcpKnN0YXJ0
T2Zmc2V0KTsKKyAgICBjaGFyKiBlbmQgPSBnX3V0Zjhfb2Zmc2V0X3RvX3BvaW50ZXIoY1RleHQs
IChnbG9uZykqZW5kT2Zmc2V0KTsKKyAgICBjaGFyKiByZXN1bHRUZXh0ID0gZ19zdHJuZHVwKHN0
YXJ0LCBlbmQgLSBzdGFydCk7CisgICAgZ19mcmVlKGNUZXh0KTsKKyAgICByZXR1cm4gcmVzdWx0
VGV4dDsKK30KKworc3RhdGljIGdjaGFyKiB3ZWJraXRfYWNjZXNzaWJsZV90ZXh0X2dldF90ZXh0
X2FmdGVyX29mZnNldChBdGtUZXh0KiB0ZXh0LCBnaW50IG9mZnNldCwgQXRrVGV4dEJvdW5kYXJ5
IGJvdW5kYXJ5VHlwZSwgZ2ludCogc3RhcnRPZmZzZXQsIGdpbnQqIGVuZE9mZnNldCkKK3sKKyAg
ICByZXR1cm4gZ2V0VGV4dEhlbHBlcihBZnRlck9mZnNldCwgdGV4dCwgb2Zmc2V0LCBib3VuZGFy
eVR5cGUsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOworfQorCitzdGF0aWMgZ2NoYXIqIHdlYmtp
dF9hY2Nlc3NpYmxlX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0KEF0a1RleHQqIHRleHQsIGdpbnQg
b2Zmc2V0LCBBdGtUZXh0Qm91bmRhcnkgYm91bmRhcnlUeXBlLCBnaW50KiBzdGFydE9mZnNldCwg
Z2ludCogZW5kT2Zmc2V0KQoreworICAgIHJldHVybiBnZXRUZXh0SGVscGVyKEF0T2Zmc2V0LCB0
ZXh0LCBvZmZzZXQsIGJvdW5kYXJ5VHlwZSwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7Cit9CisK
K3N0YXRpYyBnY2hhciogd2Via2l0X2FjY2Vzc2libGVfdGV4dF9nZXRfdGV4dF9iZWZvcmVfb2Zm
c2V0KEF0a1RleHQqIHRleHQsIGdpbnQgb2Zmc2V0LCBBdGtUZXh0Qm91bmRhcnkgYm91bmRhcnlU
eXBlLCBnaW50KiBzdGFydE9mZnNldCwgZ2ludCogZW5kT2Zmc2V0KQoreworICAgIHJldHVybiBn
ZXRUZXh0SGVscGVyKEJlZm9yZU9mZnNldCwgdGV4dCwgb2Zmc2V0LCBib3VuZGFyeVR5cGUsIHN0
YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOworfQorCitzdGF0aWMgZ3VuaWNoYXIgd2Via2l0X2FjY2Vz
c2libGVfdGV4dF9nZXRfY2hhcmFjdGVyX2F0X29mZnNldChBdGtUZXh0KiB0ZXh0LCBnaW50IG9m
ZnNldCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBOVUxMOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBm
YzIyNzk5Li40MDExOGU4IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDA5LTA1LTEyICBYYW4gTG9w
ZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjU0MTUKKyAgICAgICAgW0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGdl
dF90ZXh0X2F0X29mZnNldAorCisgICAgICAgIE5ldyB0ZXN0IGZpbGUgZm9yIEFUSyBmdW5jdGlv
bmFsaXR5LgorCisgICAgICAgICogdGVzdHMvdGVzdGF0ay5jOiBBZGRlZC4KKyAgICAgICAgKGJh
aWxfb3V0KToKKyAgICAgICAgKHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24pOgorICAgICAgICAodGVz
dF93ZWJraXRfYXRrX2dldF90ZXh0X2F0X29mZnNldCk6CisgICAgICAgIChtYWluKToKKwogMjAw
OS0wNS0xMyAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay90ZXN0cy90ZXN0
YXRrLmMgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5jZjg4NjBmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2d0ay90ZXN0
cy90ZXN0YXRrLmMKQEAgLTAsMCArMSwyMTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkg
SWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5j
bHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPGdsaWIvZ3N0ZGlvLmg+CisjaW5jbHVkZSA8Z3RrL2d0
ay5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXQuaD4KKworI2lmIEdMSUJfQ0hFQ0tfVkVSU0lP
TigyLCAxNiwgMCkgJiYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQsIDApCisKK3N0YXRpYyBjb25z
dCBjaGFyKiBjb250ZW50cyA9ICI8aHRtbD48Ym9keT48cD5UaGlzIGlzIGEgdGVzdC4gVGhpcyBp
cyB0aGUgc2Vjb25kIHNlbnRlbmNlLiBBbmQgdGhpcyB0aGUgdGhpcmQuPC9wPjwvYm9keT48L2h0
bWw+IjsKKworc3RhdGljIGdib29sZWFuIGJhaWxfb3V0KEdNYWluTG9vcCogbG9vcCkKK3sKKyAg
ICBpZiAoZ19tYWluX2xvb3BfaXNfcnVubmluZyhsb29wKSkKKyAgICAgICAgZ19tYWluX2xvb3Bf
cXVpdChsb29wKTsKKworICAgIHJldHVybiBGQUxTRTsKK30KKwordHlwZWRlZiBnY2hhciogKCpB
dGtHZXRUZXh0RnVuY3Rpb24pIChBdGtUZXh0KiwgZ2ludCwgQXRrVGV4dEJvdW5kYXJ5LCBnaW50
KiwgZ2ludCopOworCitzdGF0aWMgdm9pZCB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKEF0a1RleHQq
IHRleHRfb2JqLCBBdGtHZXRUZXh0RnVuY3Rpb24gZm4sIEF0a1RleHRCb3VuZGFyeSBib3VuZGFy
eSwgZ2ludCBvZmZzZXQsIGNvbnN0IGNoYXIqIHRleHRfcmVzdWx0LCBnaW50IHN0YXJ0X29mZnNl
dF9yZXN1bHQsIGdpbnQgZW5kX29mZnNldF9yZXN1bHQpCit7CisgICAgZ2ludCBzdGFydF9vZmZz
ZXQsIGVuZF9vZmZzZXQ7CisgICAgY2hhciogdGV4dDsKKworICAgIHRleHQgPSBmbih0ZXh0X29i
aiwgb2Zmc2V0LCBib3VuZGFyeSwgJnN0YXJ0X29mZnNldCwgJmVuZF9vZmZzZXQpOworICAgIGdf
YXNzZXJ0X2NtcHN0cih0ZXh0LCA9PSwgdGV4dF9yZXN1bHQpOworICAgIGdfYXNzZXJ0X2NtcGlu
dChzdGFydF9vZmZzZXQsID09LCBzdGFydF9vZmZzZXRfcmVzdWx0KTsKKyAgICBnX2Fzc2VydF9j
bXBpbnQoZW5kX29mZnNldCwgPT0sIGVuZF9vZmZzZXRfcmVzdWx0KTsKKyAgICBnX2ZyZWUodGV4
dCk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rfd2Via2l0X2F0a19nZXRfdGV4dF9hdF9vZmZzZXQo
dm9pZCkKK3sKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3OworICAgIEF0a09iamVjdCAqb2Jq
OworICAgIEdNYWluTG9vcCogbG9vcDsKKyAgICBBdGtUZXh0KiB0ZXh0X29iajsKKyAgICBjaGFy
KiB0ZXh0OworCisgICAgd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdf
bmV3KCkpOworICAgIGdfb2JqZWN0X3JlZl9zaW5rKHdlYlZpZXcpOworICAgIHdlYmtpdF93ZWJf
dmlld19sb2FkX3N0cmluZyh3ZWJWaWV3LCBjb250ZW50cywgTlVMTCwgTlVMTCwgTlVMTCk7Cisg
ICAgbG9vcCA9IGdfbWFpbl9sb29wX25ldyhOVUxMLCBUUlVFKTsKKworICAgIGdfdGltZW91dF9h
ZGQoMTAwLCAoR1NvdXJjZUZ1bmMpYmFpbF9vdXQsIGxvb3ApOworICAgIGdfbWFpbl9sb29wX3J1
bihsb29wKTsKKworICAgIC8qIEdldCB0byB0aGUgaW5uZXIgQXRrVGV4dCBvYmplY3QgKi8KKyAg
ICBvYmogPSBndGtfd2lkZ2V0X2dldF9hY2Nlc3NpYmxlKEdUS19XSURHRVQod2ViVmlldykpOwor
ICAgIGdfYXNzZXJ0KG9iaik7CisgICAgb2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9j
aGlsZChvYmosIDApOworICAgIGdfYXNzZXJ0KG9iaik7CisgICAgb2JqID0gYXRrX29iamVjdF9y
ZWZfYWNjZXNzaWJsZV9jaGlsZChvYmosIDApOworICAgIGdfYXNzZXJ0KG9iaik7CisKKyAgICB0
ZXh0X29iaiA9IEFUS19URVhUKG9iaik7CisgICAgZ19hc3NlcnQoQVRLX0lTX1RFWFQodGV4dF9v
YmopKTsKKworICAgIHRleHQgPSBhdGtfdGV4dF9nZXRfdGV4dCh0ZXh0X29iaiwgMCwgLTEpOwor
ICAgIGdfYXNzZXJ0X2NtcHN0cih0ZXh0LCA9PSwgIlRoaXMgaXMgYSB0ZXN0LiBUaGlzIGlzIHRo
ZSBzZWNvbmQgc2VudGVuY2UuIEFuZCB0aGlzIHRoZSB0aGlyZC4iKTsKKyAgICBnX2ZyZWUodGV4
dCk7CisKKyAgICAvKiBBVEtfVEVYVF9CT1VOREFSWV9DSEFSICovCisgICAgdGVzdF9nZXRfdGV4
dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0LCBBVEtfVEVY
VF9CT1VOREFSWV9DSEFSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgIlQiLCAwLCAx
KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90
ZXh0X2FmdGVyX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfQ0hBUiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDAsICJoIiwgMSwgMik7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9u
KHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9iZWZvcmVfb2Zmc2V0LCBBVEtfVEVYVF9CT1VO
REFSWV9DSEFSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgIiIsIDAsIDApOworCisg
ICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYmVm
b3JlX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfQ0hBUiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEsICJUIiwgMCwgMSk7CisgICAgCisgICAgLyogQVRLX1RFWFRfQk9VTkRBUllfV09S
RF9TVEFSVCAqLworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0
X2dldF90ZXh0X2F0X29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfV09SRF9TVEFSVCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDAsICJUaGlzICIsIDAsIDUpOworCisgICAgdGVzdF9nZXRf
dGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0LCBBVEtf
VEVYVF9CT1VOREFSWV9XT1JEX1NUQVJULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwg
IlRoaXMgIiwgMCwgNSk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBh
dGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfU1RBUlQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCwgInRlc3QuICIsIDEwLCAxNik7CisKKyAg
ICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9iZWZv
cmVfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX1NUQVJULAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNSwgIlRoaXMgIiwgMCwgNSk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0
aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9iZWZvcmVfb2Zmc2V0LCBBVEtfVEVYVF9C
T1VOREFSWV9XT1JEX1NUQVJULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgNywgIlRoaXMg
IiwgMCwgNSk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4
dF9nZXRfdGV4dF9hZnRlcl9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfU1RBUlQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAiaXMgIiwgNSwgOCk7CisKKyAgICB0ZXN0X2dl
dF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hZnRlcl9vZmZzZXQs
IEFUS19URVhUX0JPVU5EQVJZX1dPUkRfU1RBUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICA0LCAiaXMgIiwgNSwgOCk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2Jq
LCBhdGtfdGV4dF9nZXRfdGV4dF9hZnRlcl9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRf
U1RBUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAzLCAiaXMgIiwgNSwgOCk7CisKKyAg
ICAvKiBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX0VORCAqLworICAgIHRlc3RfZ2V0X3RleHRfZnVu
Y3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCwgQVRLX1RFWFRfQk9V
TkRBUllfV09SRF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAiIiwgMCwgMCk7
CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4
dF9hdF9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfRU5ELAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNCwgIiIsIDAsIDApOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0
ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9X
T1JEX0VORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDUsICIgaXMiLCA0LCA3KTsKKwor
ICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2Jl
Zm9yZV9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfRU5ELAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNSwgIiIsIDAsIDApOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0
ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYmVmb3JlX29mZnNldCwgQVRLX1RFWFRfQk9VTkRB
UllfV09SRF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICA0LCAiIiwgMCwgMCk7CisK
KyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9i
ZWZvcmVfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX0VORCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDcsICIgaXMiLCA0LCA3KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rp
b24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2FmdGVyX29mZnNldCwgQVRLX1RFWFRfQk9V
TkRBUllfV09SRF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICA1LCAiIGEiLCA3LCA5
KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90
ZXh0X2FmdGVyX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfV09SRF9FTkQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICA0LCAiIGlzIiwgNCwgNyk7CisKKyAgICAvKiBBVEtfVEVYVF9CT1VO
REFSWV9TRU5URU5DRV9TVEFSVCAqLworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9v
YmosIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVO
Q0VfU1RBUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAiVGhpcyBpcyBhIHRlc3Qu
ICIsIDAsIDE2KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190
ZXh0X2dldF90ZXh0X2F0X29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0VfU1RBUlQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAxNSwgIlRoaXMgaXMgYSB0ZXN0LiAiLCAwLCAx
Nik7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRf
dGV4dF9hZnRlcl9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1NFTlRFTkNFX1NUQVJULAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMCwgIlRoaXMgaXMgdGhlIHNlY29uZCBzZW50ZW5jZS4g
IiwgMTYsIDQ1KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190
ZXh0X2dldF90ZXh0X2FmdGVyX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0VfU1RB
UlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAxNSwgIlRoaXMgaXMgdGhlIHNlY29uZCBz
ZW50ZW5jZS4gIiwgMTYsIDQ1KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9v
YmosIGF0a190ZXh0X2dldF90ZXh0X2JlZm9yZV9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1NF
TlRFTkNFX1NUQVJULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYsICJUaGlzIGlzIGEg
dGVzdC4gIiwgMCwgMTYpOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwg
YXRrX3RleHRfZ2V0X3RleHRfYmVmb3JlX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVO
Q0VfU1RBUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICA0NCwgIlRoaXMgaXMgYSB0ZXN0
LiAiLCAwLCAxNik7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtf
dGV4dF9nZXRfdGV4dF9iZWZvcmVfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9TRU5URU5DRV9T
VEFSVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1LCAiIiwgMCwgMCk7CisKKyAgICAv
KiBBVEtfVEVYVF9CT1VOREFSWV9TRU5URU5DRV9FTkQgKi8KKyAgICB0ZXN0X2dldF90ZXh0X2Z1
bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19URVhUX0JP
VU5EQVJZX1NFTlRFTkNFX0VORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICIiLCAw
LCAwKTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dl
dF90ZXh0X2F0X29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0VfRU5ELAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTUsICIiLCAwLCAwKTsKKworICAgIHRlc3RfZ2V0X3RleHRf
ZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCwgQVRLX1RFWFRf
Qk9VTkRBUllfU0VOVEVOQ0VfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYsICIg
VGhpcyBpcyB0aGUgc2Vjb25kIHNlbnRlbmNlLiIsIDE1LCA0NCk7CisKKyAgICB0ZXN0X2dldF90
ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hZnRlcl9vZmZzZXQsIEFU
S19URVhUX0JPVU5EQVJZX1NFTlRFTkNFX0VORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IDAsICIgVGhpcyBpcyB0aGUgc2Vjb25kIHNlbnRlbmNlLiIsIDE1LCA0NCk7CisKKyAgICB0ZXN0
X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hZnRlcl9vZmZz
ZXQsIEFUS19URVhUX0JPVU5EQVJZX1NFTlRFTkNFX0VORCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDE1LCAiIFRoaXMgaXMgdGhlIHNlY29uZCBzZW50ZW5jZS4iLCAxNSwgNDQpOworCisg
ICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYmVm
b3JlX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0VfRU5ELAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTYsICIiLCAwLCAwKTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rp
b24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2JlZm9yZV9vZmZzZXQsIEFUS19URVhUX0JP
VU5EQVJZX1NFTlRFTkNFX0VORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1LCAiIiwg
MCwgMCk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9n
ZXRfdGV4dF9iZWZvcmVfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9TRU5URU5DRV9FTkQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICA0NCwgIiBUaGlzIGlzIHRoZSBzZWNvbmQgc2VudGVu
Y2UuIiwgMTUsIDQ0KTsKKworICAgIC8qIEFUS19URVhUX0JPVU5EQVJZX0xJTkVfU1RBUlQgKi8K
KyAgICAvKiBUT0RPICovCisgICAgLyogQVRLX1RFWFRfQk9VTkRBUllfTElORV9FTkQgKi8KKyAg
ICAvKiBUT0RPICovCisKKyAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3KTsKK30KKworaW50IG1h
aW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIGdfdGhyZWFkX2luaXQoTlVMTCk7Cisg
ICAgZ3RrX3Rlc3RfaW5pdCgmYXJnYywgJmFyZ3YsIE5VTEwpOworCisgICAgZ190ZXN0X2J1Z19i
YXNlKCJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8iKTsKKyAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93
ZWJraXQvYXRrL2dldF90ZXh0X2F0X29mZnNldCIsIHRlc3Rfd2Via2l0X2F0a19nZXRfdGV4dF9h
dF9vZmZzZXQpOworICAgIHJldHVybiBnX3Rlc3RfcnVuICgpOworfQorCisjZWxzZQoraW50IG1h
aW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIGdfY3JpdGljYWwoIllvdSB3aWxsIG5l
ZWQgYXQgbGVhc3QgZ2xpYi0yLjE2LjAgYW5kIGd0ay0yLjE0LjAgdG8gcnVuIHRoZSB1bml0IHRl
c3RzLiBEb2luZyBub3RoaW5nIG5vdy4iKTsKKyAgICByZXR1cm4gMDsKK30KKworI2VuZGlmCi0t
IAoxLjYuMi4yCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>30408</attachid>
            <date>2009-05-15 20:19:22 -0700</date>
            <delta_ts>2009-05-15 20:19:22 -0700</delta_ts>
            <desc>test case</desc>
            <filename>text-boundary-test.html</filename>
            <type>text/html</type>
            <size>59</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">PGh0bWw+Cjxib2R5PgpUaGlzIGlzIGFub3RoZXIsIHNpbGx5IHRlc3QuCjwvYm9keT4KPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30465</attachid>
            <date>2009-05-19 03:36:53 -0700</date>
            <delta_ts>2009-05-23 03:39:59 -0700</delta_ts>
            <desc>gettextv3.patch</desc>
            <filename>gettextv3.patch</filename>
            <type>text/plain</type>
            <size>25222</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBjZjAwZGY3OWE0YTNjNWM5M2I4OGY1YmJmYWZmZmJiYmI0YzcxNGY2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBU
dWUsIDE5IE1heSAyMDA5IDEzOjMwOjM4ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gICAgIDIwMDkt
MDUtMTIgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgoKICAgICAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MTUKICAgICAgICAgICAgW0dUS11bQVRLXSBQbGVhc2UgaW1w
bGVtZW50IHN1cHBvcnQgZm9yIGdldF90ZXh0X2F0X29mZnNldAoKICAgICAgICAgICAgQWRkIG5l
dyB0ZXN0IGZpbGUgZm9yIEFUSy4KCiAgICAgICAgICAgICogR05VbWFrZWZpbGUuYW06CgogICAg
V2ViQ29yZToKCiAgICAyMDA5LTA1LTEyICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4K
CiAgICAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDE1CiAgICAgICAgICAgIFtH
VEtdW0FUS10gUGxlYXNlIGltcGxlbWVudCBzdXBwb3J0IGZvciBnZXRfdGV4dF9hdF9vZmZzZXQK
CiAgICAgICAgICAgIEltcGxlbWVudCBhdGtfdGV4dF9nZXRfdGV4dF97YXQsYWZ0ZXIsYmVmb3Jl
fV9vZmZzZXQuCgogICAgICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQXRrLmNwcDoKCiAgICBXZWJLaXQvZ3RrOgoKICAgIDIwMDktMDUtMTIgIFhh
biBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgoKICAgICAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgogICAgICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjU0MTUKICAgICAgICAgICAgW0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1
cHBvcnQgZm9yIGdldF90ZXh0X2F0X29mZnNldAoKICAgICAgICAgICAgTmV3IHRlc3QgZmlsZSBm
b3IgQVRLIGZ1bmN0aW9uYWxpdHkuCgogICAgICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzogQWRk
ZWQuCiAgICAgICAgICAgIChiYWlsX291dCk6CiAgICAgICAgICAgICh0ZXN0X2dldF90ZXh0X2Z1
bmN0aW9uKToKICAgICAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfdGV4dF9hdF9vZmZzZXQp
OgogICAgICAgICAgICAobWFpbik6Ci0tLQogQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsKIEdOVW1ha2VmaWxlLmFtICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOCArLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsKIC4uLi9ndGsvQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwICAgICAgICAgIHwgIDIzMyArKysrKysrKysrKysrKysr
KysrLQogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDE1ICsrCiBXZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYyAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAyMzQgKysrKysrKysrKysrKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgNTAxIGlu
c2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9n
dGsvdGVzdHMvdGVzdGF0ay5jCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmlu
ZGV4IGZlNGIwOGUuLjQ3YmNiYjQgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAwOS0wNS0xOSAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxp
YS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDE1CisgICAgICAgIFtH
VEtdW0FUS10gUGxlYXNlIGltcGxlbWVudCBzdXBwb3J0IGZvciBnZXRfdGV4dF9hdF9vZmZzZXQK
KworICAgICAgICBBZGQgbmV3IHRlc3QgZmlsZSBmb3IgQVRLLgorCisgICAgICAgICogR05VbWFr
ZWZpbGUuYW06CisKIDIwMDktMDUtMTggIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8u
bm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2F2aW4gQmFy
cmFjbG91Z2guCmRpZmYgLS1naXQgYS9HTlVtYWtlZmlsZS5hbSBiL0dOVW1ha2VmaWxlLmFtCmlu
ZGV4IGFiYThlNDkuLmZkNzA1ZjMgMTAwNjQ0Ci0tLSBhL0dOVW1ha2VmaWxlLmFtCisrKyBiL0dO
VW1ha2VmaWxlLmFtCkBAIC01MTEsNyArNTExLDggQEAgd2Via2l0X3Rlc3RzX2xkZmxhZ3MgPSBc
CiBURVNUX1BST0dTICs9IFByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0d2ViZnJhbWUgXAogCVByb2dy
YW1zL3VuaXR0ZXN0cy90ZXN0d2ViYmFja2ZvcndhcmRsaXN0IFwKIAlQcm9ncmFtcy91bml0dGVz
dHMvdGVzdHdlYmhpc3RvcnlpdGVtIFwKLQlQcm9ncmFtcy91bml0dGVzdHMvdGVzdGRvd25sb2Fk
CisJUHJvZ3JhbXMvdW5pdHRlc3RzL3Rlc3Rkb3dubG9hZCBcCisJUHJvZ3JhbXMvdW5pdHRlc3Rz
L3Rlc3RhdGsKIAogIyBBZGQgYWRkaXRpb25hbCB0ZXN0cyBoZXJlCiBQcm9ncmFtc191bml0dGVz
dHNfdGVzdHdlYmZyYW1lX1NPVVJDRVMgPSBXZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJmcmFtZS5j
CkBAIC01MzQsNiArNTM1LDExIEBAIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0ZG93bmxvYWRfQ0ZM
QUdTID0gJCh3ZWJraXRfdGVzdHNfY2ZsYWdzKQogUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3Rkb3du
bG9hZF9MREFERCA9ICQod2Via2l0X3Rlc3RzX2xkYWRkKQogUHJvZ3JhbXNfdW5pdHRlc3RzX3Rl
c3Rkb3dubG9hZF9MREZMQUdTID0gJCh3ZWJraXRfdGVzdHNfbGRmbGFncykKIAorUHJvZ3JhbXNf
dW5pdHRlc3RzX3Rlc3RhdGtfU09VUkNFUyA9IFdlYktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jCitQ
cm9ncmFtc191bml0dGVzdHNfdGVzdGF0a19DRkxBR1MgPSAkKHdlYmtpdF90ZXN0c19jZmxhZ3Mp
CitQcm9ncmFtc191bml0dGVzdHNfdGVzdGF0a19MREFERCA9ICQod2Via2l0X3Rlc3RzX2xkYWRk
KQorUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3RhdGtfTERGTEFHUyA9ICQod2Via2l0X3Rlc3RzX2xk
ZmxhZ3MpCisKICMgQXV0b2dlbmVyYXRlZCBzb3VyY2VzCiBCVUlMVF9TT1VSQ0VTIDo9IFwKIAkk
KGphdmFzY3JpcHRjb3JlX2J1aWx0X3NvdXJjZXMpIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM1NmZhOS4uYTlkMjMxOSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAwOS0wNS0xOSAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDE1CisgICAgICAgIFtHVEtdW0FUS10gUGxl
YXNlIGltcGxlbWVudCBzdXBwb3J0IGZvciBnZXRfdGV4dF9hdF9vZmZzZXQKKworICAgICAgICBJ
bXBsZW1lbnQgYXRrX3RleHRfZ2V0X3RleHRfe2F0LGFmdGVyLGJlZm9yZX1fb2Zmc2V0LgorCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsu
Y3BwOgorCiAyMDA5LTA1LTE4ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGlnZXIgYnVpbGQgZml4IGZvciByNDM4NTAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwIGIvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAK
aW5kZXggMWMwMDc4NS4uMWMxZTQ0YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKKysrIGIvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKQEAgLTQ3LDYg
KzQ3LDcgQEAKICNpbmNsdWRlIDxhdGsvYXRrLmg+CiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1
ZGUgPGdsaWIvZ3ByaW50Zi5oPgorI2luY2x1ZGUgPHBhbmdvL3BhbmdvLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCkBAIC00NjEsMjUgKzQ2MiwyMzcgQEAgc3RhdGljIGdjaGFyKiB3
ZWJraXRfYWNjZXNzaWJsZV90ZXh0X2dldF90ZXh0KEF0a1RleHQqIHRleHQsIGdpbnQgc3RhcnRP
ZmZzZXQsIGcKICAgICByZXR1cm4gZ19zdHJkdXAocmV0LnV0ZjgoKS5kYXRhKCkpOwogfQogCi1z
dGF0aWMgZ2NoYXIqIHdlYmtpdF9hY2Nlc3NpYmxlX3RleHRfZ2V0X3RleHRfYWZ0ZXJfb2Zmc2V0
KEF0a1RleHQqIHRleHQsIGdpbnQgb2Zmc2V0LCBBdGtUZXh0Qm91bmRhcnkgYm91bmRhcnlfdHlw
ZSwgZ2ludCogc3RhcnRfb2Zmc2V0LCBnaW50KiBlbmRfb2Zmc2V0KQordHlwZWRlZiBlbnVtIHsK
KyAgICBBZnRlck9mZnNldCwKKyAgICBBdE9mZnNldCwKKyAgICBCZWZvcmVPZmZzZXQKK30gR2V0
VGV4dEZ1bmN0aW9uVHlwZTsKKwordHlwZWRlZiBib29sICgqaXNDaGFyYWN0ZXJBdHRyaWJ1dGUp
IChQYW5nb0xvZ0F0dHIqIGF0dHIpOworCitzdGF0aWMgaW5saW5lIGJvb2wgaXNXb3JkU3RhcnQo
UGFuZ29Mb2dBdHRyKiBhdHRyKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
IE5VTEw7CisgICAgcmV0dXJuIGF0dHItPmlzX3dvcmRfc3RhcnQ7CiB9CiAKLXN0YXRpYyBnY2hh
ciogd2Via2l0X2FjY2Vzc2libGVfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQoQXRrVGV4dCogdGV4
dCwgZ2ludCBvZmZzZXQsIEF0a1RleHRCb3VuZGFyeSBib3VuZGFyeV90eXBlLCBnaW50KiBzdGFy
dF9vZmZzZXQsIGdpbnQqIGVuZF9vZmZzZXQpCitzdGF0aWMgaW5saW5lIGJvb2wgaXNXb3JkRW5k
KFBhbmdvTG9nQXR0ciogYXR0cikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBOVUxMOworICAgIHJldHVybiBhdHRyLT5pc193b3JkX2VuZDsKIH0KIAotc3RhdGljIGd1bmlj
aGFyIHdlYmtpdF9hY2Nlc3NpYmxlX3RleHRfZ2V0X2NoYXJhY3Rlcl9hdF9vZmZzZXQoQXRrVGV4
dCogdGV4dCwgZ2ludCBvZmZzZXQpCitzdGF0aWMgaW5saW5lIGJvb2wgaXNTZW50ZW5jZVN0YXJ0
KFBhbmdvTG9nQXR0ciogYXR0cikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biAwOworICAgIHJldHVybiBhdHRyLT5pc19zZW50ZW5jZV9zdGFydDsKK30KKworc3RhdGljIGlu
bGluZSBib29sIGlzU2VudGVuY2VFbmQoUGFuZ29Mb2dBdHRyKiBhdHRyKQoreworICAgIHJldHVy
biBhdHRyLT5pc19zZW50ZW5jZV9lbmQ7Cit9CisKK3R5cGVkZWYgaW50ICgqYWR2YW5jZUZ1bmMp
IChpbnQpOworCitzdGF0aWMgaW50IGluY3JlYXNlSW50KGludCBpKSB7CisgICAgcmV0dXJuIGkg
KyAxOworfQorCitzdGF0aWMgaW50IGRlY3JlYXNlSW50KGludCBpKSB7CisgICAgcmV0dXJuIGkg
LSAxOworfQorCit0eXBlZGVmIGVudW0geworICAgIERpcmVjdGlvbkZvcndhcmQsCisgICAgRGly
ZWN0aW9uQmFja3dhcmRzCit9IERpcmVjdGlvbjsKKworc3RhdGljIGJvb2wgZmluZENoYXJhY3Rl
ckF0dHJpYnV0ZShpc0NoYXJhY3RlckF0dHJpYnV0ZSBwcmVkaWNhdGVGdW5jdGlvbiwgUGFuZ29M
b2dBdHRyKiBhdHRyaWJ1dGVzLCBEaXJlY3Rpb24gZGlyZWN0aW9uLCBpbnQgc3RhcnRPZmZzZXQs
IGludCBhdHRyc0xlbmd0aCwgaW50KiByZXN1bHRPZmZzZXQpCit7CisgICAgaW50IGk7CisgICAg
YWR2YW5jZUZ1bmMgYWR2YW5jZUZ1bmMgPSBkaXJlY3Rpb24gPT0gRGlyZWN0aW9uRm9yd2FyZCA/
IGluY3JlYXNlSW50IDogZGVjcmVhc2VJbnQ7CisKKyAgICAqcmVzdWx0T2Zmc2V0ID0gLTE7CisK
KyAgICBmb3IgKGkgPSBzdGFydE9mZnNldDsgaSA+PSAwICYmIGkgPCBhdHRyc0xlbmd0aDsgaSA9
IGFkdmFuY2VGdW5jKGkpKSB7CisgICAgICAgIGlmIChwcmVkaWNhdGVGdW5jdGlvbihhdHRyaWJ1
dGVzK2kpKSB7CisgICAgICAgICAgICAqcmVzdWx0T2Zmc2V0ID0gaTsKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCitz
dGF0aWMgYm9vbCBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlU2tpcChpc0NoYXJhY3RlckF0dHJpYnV0
ZSBwcmVkaWNhdGVGdW5jdGlvbiwgdW5zaWduZWQgc2tpcCwgUGFuZ29Mb2dBdHRyKiBhdHRyaWJ1
dGVzLCBEaXJlY3Rpb24gZGlyZWN0aW9uLCBpbnQgc3RhcnRPZmZzZXQsIGludCBhdHRyc0xlbmd0
aCwgaW50KiByZXN1bHRPZmZzZXQpCit7CisgICAgaW50IHRtcE9mZnNldDsKKyAgICBib29sIHJl
dFZhbHVlOworCisgICAgcmV0VmFsdWUgPSBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlKHByZWRpY2F0
ZUZ1bmN0aW9uLCBhdHRyaWJ1dGVzLCBkaXJlY3Rpb24sIHN0YXJ0T2Zmc2V0LCBhdHRyc0xlbmd0
aCwgJnRtcE9mZnNldCk7CisgICAgaWYgKHNraXAgPT0gMCkgeworICAgICAgICAqcmVzdWx0T2Zm
c2V0ID0gdG1wT2Zmc2V0OworICAgICAgICByZXR1cm4gcmV0VmFsdWU7CisgICAgfQorCisgICAg
aWYgKGRpcmVjdGlvbiA9PSBEaXJlY3Rpb25Gb3J3YXJkKQorICAgICAgICB0bXBPZmZzZXQrKzsK
KyAgICBlbHNlCisgICAgICAgIHRtcE9mZnNldC0tOworCisgICAgcmV0dXJuIGZpbmRDaGFyYWN0
ZXJBdHRyaWJ1dGVTa2lwKHByZWRpY2F0ZUZ1bmN0aW9uLCBza2lwIC0gMSwgYXR0cmlidXRlcywg
ZGlyZWN0aW9uLCB0bXBPZmZzZXQsIGF0dHJzTGVuZ3RoLCByZXN1bHRPZmZzZXQpOworfQorCitz
dGF0aWMgaXNDaGFyYWN0ZXJBdHRyaWJ1dGUgb3Bwb3NpdGVQcmVkaWNhdGUoaXNDaGFyYWN0ZXJB
dHRyaWJ1dGUgcHJlZGljYXRlKQoreworICAgIGlmIChwcmVkaWNhdGUgPT0gaXNXb3JkU3RhcnQp
CisgICAgICAgIHJldHVybiBpc1dvcmRFbmQ7CisgICAgaWYgKHByZWRpY2F0ZSA9PSBpc1dvcmRF
bmQpCisgICAgICAgIHJldHVybiBpc1dvcmRTdGFydDsKKyAgICBpZiAocHJlZGljYXRlID09IGlz
U2VudGVuY2VTdGFydCkKKyAgICAgICAgcmV0dXJuIGlzU2VudGVuY2VFbmQ7CisgICAgaWYgKHBy
ZWRpY2F0ZSA9PSBpc1NlbnRlbmNlRW5kKQorICAgICAgICByZXR1cm4gaXNTZW50ZW5jZVN0YXJ0
OworCisgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQoKTsKK30KKworc3RhdGljIGdjaGFyKiBnZXRU
ZXh0SGVscGVyKEdldFRleHRGdW5jdGlvblR5cGUgZ2V0VGV4dEZ1bmN0aW9uVHlwZSwgQXRrVGV4
dCogdGV4dE9iamVjdCwgZ2ludCBvZmZzZXQsIEF0a1RleHRCb3VuZGFyeSBib3VuZGFyeVR5cGUs
IGdpbnQqIHN0YXJ0T2Zmc2V0LCBnaW50KiBlbmRPZmZzZXQpCit7CisgICAgQWNjZXNzaWJpbGl0
eU9iamVjdCogY29yZU9iamVjdCA9IGNvcmUodGV4dE9iamVjdCk7CisgICAgU3RyaW5nIHRleHQ7
CisKKyAgICAqc3RhcnRPZmZzZXQgPSAqZW5kT2Zmc2V0ID0gLTE7CisKKyAgICBpZiAoY29yZU9i
amVjdC0+aXNUZXh0Q29udHJvbCgpKQorICAgICAgICB0ZXh0ID0gY29yZU9iamVjdC0+dGV4dCgp
OworICAgIGVsc2UKKyAgICAgICAgdGV4dCA9IGNvcmVPYmplY3QtPnRleHRVbmRlckVsZW1lbnQo
KTsKKworICAgIGNoYXIqIGNUZXh0ID0gZ19zdHJkdXAodGV4dC51dGY4KCkuZGF0YSgpKTsKKyAg
ICBnbG9uZyB0ZXh0TGVuZ3RoID0gZ191dGY4X3N0cmxlbihjVGV4dCwgLTEpOworCisgICAgaWYg
KGJvdW5kYXJ5VHlwZSA9PSBBVEtfVEVYVF9CT1VOREFSWV9DSEFSKSB7CisgICAgICAgIGludCBl
ZmZlY3RpdmVPZmZzZXQ7CisKKyAgICAgICAgc3dpdGNoKGdldFRleHRGdW5jdGlvblR5cGUpIHsK
KyAgICAgICAgY2FzZSBBZnRlck9mZnNldDoKKyAgICAgICAgICAgIGVmZmVjdGl2ZU9mZnNldCA9
IG9mZnNldCArIDE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBCZWZvcmVPZmZz
ZXQ6CisgICAgICAgICAgICBlZmZlY3RpdmVPZmZzZXQgPSBvZmZzZXQgLSAxOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQXRPZmZzZXQ6CisgICAgICAgICAgICBlZmZlY3RpdmVP
ZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVkKCk7CisgICAgICAgIH0KKworICAgICAgICAq
c3RhcnRPZmZzZXQgPSBlZmZlY3RpdmVPZmZzZXQ7CisgICAgICAgICplbmRPZmZzZXQgPSBlZmZl
Y3RpdmVPZmZzZXQgKyAxOworICAgIH0gZWxzZSB7CisgICAgICAgIFBhbmdvTG9nQXR0ciogYXR0
cnMgPSBnX25ldyhQYW5nb0xvZ0F0dHIsIHRleHRMZW5ndGgrMSk7CisgICAgICAgIFBhbmdvTGFu
Z3VhZ2UqIGxhbmd1YWdlID0gcGFuZ29fbGFuZ3VhZ2VfZ2V0X2RlZmF1bHQoKTsKKyAgICAgICAg
cGFuZ29fZ2V0X2xvZ19hdHRycyhjVGV4dCwgLTEsIC0xLCBsYW5ndWFnZSwgYXR0cnMsIHRleHRM
ZW5ndGgrMSk7CisgICAgICAKKyAgICAgICAgaXNDaGFyYWN0ZXJBdHRyaWJ1dGUgcHJlZGljYXRl
OworCisgICAgICAgIGlmIChib3VuZGFyeVR5cGUgPT0gQVRLX1RFWFRfQk9VTkRBUllfV09SRF9T
VEFSVCkKKyAgICAgICAgICAgIHByZWRpY2F0ZSA9IGlzV29yZFN0YXJ0OworICAgICAgICBlbHNl
IGlmIChib3VuZGFyeVR5cGUgPT0gQVRLX1RFWFRfQk9VTkRBUllfV09SRF9FTkQpCisgICAgICAg
ICAgICBwcmVkaWNhdGUgPSBpc1dvcmRFbmQ7CisgICAgICAgIGVsc2UgaWYgKGJvdW5kYXJ5VHlw
ZSA9PSBBVEtfVEVYVF9CT1VOREFSWV9TRU5URU5DRV9TVEFSVCkKKyAgICAgICAgICAgIHByZWRp
Y2F0ZSA9IGlzU2VudGVuY2VTdGFydDsKKyAgICAgICAgZWxzZSBpZiAoYm91bmRhcnlUeXBlID09
IEFUS19URVhUX0JPVU5EQVJZX1NFTlRFTkNFX0VORCkKKyAgICAgICAgICAgIHByZWRpY2F0ZSA9
IGlzU2VudGVuY2VFbmQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGdfYXNzZXJ0X25vdF9y
ZWFjaGVkKCk7CisKKyAgICAgICAgc3dpdGNoKGJvdW5kYXJ5VHlwZSkgeworICAgICAgICBjYXNl
IEFUS19URVhUX0JPVU5EQVJZX1dPUkRfU1RBUlQ6CisgICAgICAgIGNhc2UgQVRLX1RFWFRfQk9V
TkRBUllfU0VOVEVOQ0VfU1RBUlQ6CisgICAgICAgICAgICBpZiAoZ2V0VGV4dEZ1bmN0aW9uVHlw
ZSA9PSBBZnRlck9mZnNldCkgeworICAgICAgICAgICAgICAgIC8vIFRha2UgdGhlIGl0ZW0gYWZ0
ZXIgdGhlIGN1cnJlbnQgb25lIGluIGFueSBjYXNlCisgICAgICAgICAgICAgICAgZmluZENoYXJh
Y3RlckF0dHJpYnV0ZShwcmVkaWNhdGUsIGF0dHJzLCBEaXJlY3Rpb25Gb3J3YXJkLCBvZmZzZXQr
MSwgdGV4dExlbmd0aCArIDEsIHN0YXJ0T2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBmaW5kQ2hh
cmFjdGVyQXR0cmlidXRlU2tpcChwcmVkaWNhdGUsIDEsIGF0dHJzLCBEaXJlY3Rpb25Gb3J3YXJk
LCBvZmZzZXQrMSwgdGV4dExlbmd0aCArIDEsIGVuZE9mZnNldCk7CisgICAgICAgICAgICB9IGVs
c2UgaWYgKGdldFRleHRGdW5jdGlvblR5cGUgPT0gQXRPZmZzZXQpIHsKKyAgICAgICAgICAgICAg
ICAvLyBUYWtlIHRoZSBpdGVtIGF0IHBvaW50IGlmIHRoZSBvZmZzZXQgaXMgaW4gYW4gaXRlbSBv
cgorICAgICAgICAgICAgICAgIC8vIHRoZSBpdGVtIGJlZm9yZSBvdGhlcndpc2UKKyAgICAgICAg
ICAgICAgICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlKHByZWRpY2F0ZSwgYXR0cnMsIERpcmVjdGlv
bkJhY2t3YXJkcywgb2Zmc2V0LCB0ZXh0TGVuZ3RoICsgMSwgc3RhcnRPZmZzZXQpOworICAgICAg
ICAgICAgICAgIGlmICghZmluZENoYXJhY3RlckF0dHJpYnV0ZShwcmVkaWNhdGUsIGF0dHJzLCBE
aXJlY3Rpb25Gb3J3YXJkLCBvZmZzZXQrMSwgdGV4dExlbmd0aCArIDEsIGVuZE9mZnNldCkpIHsK
KyAgICAgICAgICAgICAgICAgICAgZmluZENoYXJhY3RlckF0dHJpYnV0ZShvcHBvc2l0ZVByZWRp
Y2F0ZShwcmVkaWNhdGUpLCBhdHRycywgRGlyZWN0aW9uRm9yd2FyZCwgb2Zmc2V0KzEsIHRleHRM
ZW5ndGggKyAxLCBlbmRPZmZzZXQpOworICAgICAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRv
IGluY2x1ZGUgdGhlIGFjdHVhbCBlbmQgYm91bmRhcnkKKyAgICAgICAgICAgICAgICAgICAgLy8g
aGVyZSwgc2luY2UgKl9TVEFSVCB3b3VsZCBoYXZlIGRvbmUgc28uIEFkdmFuY2UKKyAgICAgICAg
ICAgICAgICAgICAgLy8gdW50aWwgdGhlIGVuZCBvZiB0aGUgc3RyaW5nIGlmIHBvc3NpYmxlCisg
ICAgICAgICAgICAgICAgICAgIGlmICgqZW5kT2Zmc2V0ICE9IC0xICYmICplbmRPZmZzZXQgPCB0
ZXh0TGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgKmVuZE9mZnNldCA9IHRleHRMZW5n
dGg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAvLyBUYWtlIHRoZSBpdGVtIGJlZm9yZSB0aGUgcG9pbnQgaWYgdGhlIG9mZnNldCBpcyBp
biBhbgorICAgICAgICAgICAgICAgIC8vIGl0ZW0sIG9yIHRoZSB0aGUgaXRlbSBiZWZvcmUgdGhh
dCBvbmUgb3RoZXJ3aXNlCisgICAgICAgICAgICAgICAgZmluZENoYXJhY3RlckF0dHJpYnV0ZVNr
aXAocHJlZGljYXRlLCAxLCBhdHRycywgRGlyZWN0aW9uQmFja3dhcmRzLCBvZmZzZXQsIHRleHRM
ZW5ndGggKyAxLCBzdGFydE9mZnNldCk7CisgICAgICAgICAgICAgICAgZmluZENoYXJhY3RlckF0
dHJpYnV0ZShwcmVkaWNhdGUsIGF0dHJzLCBEaXJlY3Rpb25CYWNrd2FyZHMsIG9mZnNldCwgdGV4
dExlbmd0aCArIDEsIGVuZE9mZnNldCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX0VORDoKKyAgICAgICAgY2Fz
ZSBBVEtfVEVYVF9CT1VOREFSWV9TRU5URU5DRV9FTkQ6CisgICAgICAgICAgICBpZiAoZ2V0VGV4
dEZ1bmN0aW9uVHlwZSA9PSBBZnRlck9mZnNldCkgeworICAgICAgICAgICAgICAgIC8vIFRha2Ug
dGhlIGl0ZW0gYWZ0ZXIgdGhlIGN1cnJlbnQgaXRlbSBpZiB0aGUgb2Zmc2V0IGlzCisgICAgICAg
ICAgICAgICAgLy8gaW4gYSBpdGVtLCBvciB0aGUgaXRlbSBhZnRlciB0aGF0IG90aGVyd2lzZQor
ICAgICAgICAgICAgICAgIGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGUocHJlZGljYXRlLCBhdHRycywg
RGlyZWN0aW9uRm9yd2FyZCwgb2Zmc2V0LCB0ZXh0TGVuZ3RoICsgMSwgc3RhcnRPZmZzZXQpOwor
ICAgICAgICAgICAgICAgIGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGVTa2lwKHByZWRpY2F0ZSwgMSwg
YXR0cnMsIERpcmVjdGlvbkZvcndhcmQsIG9mZnNldCwgdGV4dExlbmd0aCArIDEsIGVuZE9mZnNl
dCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGdldFRleHRGdW5jdGlvblR5cGUgPT0gQXRPZmZz
ZXQpIHsKKyAgICAgICAgICAgICAgICAvLyBUYWtlIHRoZSBpdGVtIGF0IHBvaW50IGlmIHRoZSBv
ZmZzZXQgaXMgaW4gYSBpdGVtIG9yCisgICAgICAgICAgICAgICAgLy8gdGhlIGl0ZW0gYWZ0ZXIg
b3RoZXJ3aXNlCisgICAgICAgICAgICAgICAgaWYgKCFmaW5kQ2hhcmFjdGVyQXR0cmlidXRlKHBy
ZWRpY2F0ZSwgYXR0cnMsIERpcmVjdGlvbkJhY2t3YXJkcywgb2Zmc2V0LCB0ZXh0TGVuZ3RoICsg
MSwgc3RhcnRPZmZzZXQpKQorICAgICAgICAgICAgICAgICAgICAvLyBObyBtYXRjaCBiZWZvcmUg
b2Zmc2V0LCB0YWtlIHRoZSBmaXJzdCBvcHBvc2l0ZSBtYXRjaCBhdCBvciBiZWZvcmUgdGhlIG9m
ZnNldAorICAgICAgICAgICAgICAgICAgICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlKG9wcG9zaXRl
UHJlZGljYXRlKHByZWRpY2F0ZSksIGF0dHJzLCBEaXJlY3Rpb25CYWNrd2FyZHMsIG9mZnNldCwg
dGV4dExlbmd0aCArIDEsIHN0YXJ0T2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBmaW5kQ2hhcmFj
dGVyQXR0cmlidXRlKHByZWRpY2F0ZSwgYXR0cnMsIERpcmVjdGlvbkZvcndhcmQsIG9mZnNldCsx
LCB0ZXh0TGVuZ3RoICsgMSwgZW5kT2Zmc2V0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgLy8gVGFrZSB0aGUgaXRlbSBiZWZvcmUgdGhlIHBvaW50IGluIGFueSBjYXNl
CisgICAgICAgICAgICAgICAgaWYgKCFmaW5kQ2hhcmFjdGVyQXR0cmlidXRlU2tpcChwcmVkaWNh
dGUsIDEsIGF0dHJzLCBEaXJlY3Rpb25CYWNrd2FyZHMsIG9mZnNldCwgdGV4dExlbmd0aCArIDEs
IHN0YXJ0T2Zmc2V0KSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgdG1wT2Zmc2V0OworICAg
ICAgICAgICAgICAgICAgICAvLyBObyBtYXRjaCBiZWZvcmUgb2Zmc2V0LCB0YWtlIHRoZSBmaXJz
dCBvcHBvc2l0ZSBtYXRjaCBhdCBvciBiZWZvcmUgdGhlIG9mZnNldAorICAgICAgICAgICAgICAg
ICAgICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlKHByZWRpY2F0ZSwgYXR0cnMsIERpcmVjdGlvbkJh
Y2t3YXJkcywgb2Zmc2V0LCB0ZXh0TGVuZ3RoICsgMSwgJnRtcE9mZnNldCk7CisgICAgICAgICAg
ICAgICAgICAgIGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGUob3Bwb3NpdGVQcmVkaWNhdGUocHJlZGlj
YXRlKSwgYXR0cnMsIERpcmVjdGlvbkJhY2t3YXJkcywgdG1wT2Zmc2V0LTEsIHRleHRMZW5ndGgg
KyAxLCBzdGFydE9mZnNldCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZp
bmRDaGFyYWN0ZXJBdHRyaWJ1dGUocHJlZGljYXRlLCBhdHRycywgRGlyZWN0aW9uQmFja3dhcmRz
LCBvZmZzZXQsIHRleHRMZW5ndGggKyAxLCBlbmRPZmZzZXQpOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBnX2Fzc2VydF9u
b3RfcmVhY2hlZCgpOworICAgICAgICB9CisKKyAgICAgICAgZ19mcmVlKGF0dHJzKTsKKyAgICB9
CisKKyAgICBpZiAoKnN0YXJ0T2Zmc2V0IDwgMCB8fCAqZW5kT2Zmc2V0IDwgMCkgeworICAgICAg
ICAqc3RhcnRPZmZzZXQgPSAqZW5kT2Zmc2V0ID0gMDsKKyAgICAgICAgcmV0dXJuIGdfc3RyZHVw
KCIiKTsKKyAgICB9CisKKyAgICBjaGFyKiBzdGFydCA9IGdfdXRmOF9vZmZzZXRfdG9fcG9pbnRl
cihjVGV4dCwgKGdsb25nKSpzdGFydE9mZnNldCk7CisgICAgY2hhciogZW5kID0gZ191dGY4X29m
ZnNldF90b19wb2ludGVyKGNUZXh0LCAoZ2xvbmcpKmVuZE9mZnNldCk7CisgICAgY2hhciogcmVz
dWx0VGV4dCA9IGdfc3RybmR1cChzdGFydCwgZW5kIC0gc3RhcnQpOworICAgIGdfZnJlZShjVGV4
dCk7CisgICAgcmV0dXJuIHJlc3VsdFRleHQ7Cit9CisKK3N0YXRpYyBnY2hhciogd2Via2l0X2Fj
Y2Vzc2libGVfdGV4dF9nZXRfdGV4dF9hZnRlcl9vZmZzZXQoQXRrVGV4dCogdGV4dCwgZ2ludCBv
ZmZzZXQsIEF0a1RleHRCb3VuZGFyeSBib3VuZGFyeVR5cGUsIGdpbnQqIHN0YXJ0T2Zmc2V0LCBn
aW50KiBlbmRPZmZzZXQpCit7CisgICAgcmV0dXJuIGdldFRleHRIZWxwZXIoQWZ0ZXJPZmZzZXQs
IHRleHQsIG9mZnNldCwgYm91bmRhcnlUeXBlLCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTsKK30K
Kworc3RhdGljIGdjaGFyKiB3ZWJraXRfYWNjZXNzaWJsZV90ZXh0X2dldF90ZXh0X2F0X29mZnNl
dChBdGtUZXh0KiB0ZXh0LCBnaW50IG9mZnNldCwgQXRrVGV4dEJvdW5kYXJ5IGJvdW5kYXJ5VHlw
ZSwgZ2ludCogc3RhcnRPZmZzZXQsIGdpbnQqIGVuZE9mZnNldCkKK3sKKyAgICByZXR1cm4gZ2V0
VGV4dEhlbHBlcihBdE9mZnNldCwgdGV4dCwgb2Zmc2V0LCBib3VuZGFyeVR5cGUsIHN0YXJ0T2Zm
c2V0LCBlbmRPZmZzZXQpOwogfQogCi1zdGF0aWMgZ2NoYXIqIHdlYmtpdF9hY2Nlc3NpYmxlX3Rl
eHRfZ2V0X3RleHRfYmVmb3JlX29mZnNldChBdGtUZXh0KiB0ZXh0LCBnaW50IG9mZnNldCwgQXRr
VGV4dEJvdW5kYXJ5IGJvdW5kYXJ5X3R5cGUsIGdpbnQqIHN0YXJ0X29mZnNldCwgZ2ludCogZW5k
X29mZnNldCkKK3N0YXRpYyBnY2hhciogd2Via2l0X2FjY2Vzc2libGVfdGV4dF9nZXRfdGV4dF9i
ZWZvcmVfb2Zmc2V0KEF0a1RleHQqIHRleHQsIGdpbnQgb2Zmc2V0LCBBdGtUZXh0Qm91bmRhcnkg
Ym91bmRhcnlUeXBlLCBnaW50KiBzdGFydE9mZnNldCwgZ2ludCogZW5kT2Zmc2V0KQoreworICAg
IHJldHVybiBnZXRUZXh0SGVscGVyKEJlZm9yZU9mZnNldCwgdGV4dCwgb2Zmc2V0LCBib3VuZGFy
eVR5cGUsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOworfQorCitzdGF0aWMgZ3VuaWNoYXIgd2Vi
a2l0X2FjY2Vzc2libGVfdGV4dF9nZXRfY2hhcmFjdGVyX2F0X29mZnNldChBdGtUZXh0KiB0ZXh0
LCBnaW50IG9mZnNldCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBOVUxM
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZwppbmRleCBiM2RkOGUzLi44MzU0M2E4IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDA5LTA1LTE5
ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjU0MTUKKyAgICAgICAgW0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1cHBv
cnQgZm9yIGdldF90ZXh0X2F0X29mZnNldAorCisgICAgICAgIE5ldyB0ZXN0IGZpbGUgZm9yIEFU
SyBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogdGVzdHMvdGVzdGF0ay5jOiBBZGRlZC4KKyAg
ICAgICAgKGJhaWxfb3V0KToKKyAgICAgICAgKHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24pOgorICAg
ICAgICAodGVzdF93ZWJraXRfYXRrX2dldF90ZXh0X2F0X29mZnNldCk6CisgICAgICAgIChtYWlu
KToKKwogMjAwOS0wNS0xNSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBKYW4gQWxvbnpvLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0
ay90ZXN0cy90ZXN0YXRrLmMgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjdjYzE1Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vi
S2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMKQEAgLTAsMCArMSwyMzQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDkgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8dW5p
c3RkLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPGdsaWIvZ3N0ZGlvLmg+CisjaW5j
bHVkZSA8Z3RrL2d0ay5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXQuaD4KKworI2lmIEdMSUJf
Q0hFQ0tfVkVSU0lPTigyLCAxNiwgMCkgJiYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQsIDApCisK
K3N0YXRpYyBjb25zdCBjaGFyKiBjb250ZW50cyA9ICI8aHRtbD48Ym9keT48cD5UaGlzIGlzIGEg
dGVzdC4gVGhpcyBpcyB0aGUgc2Vjb25kIHNlbnRlbmNlLiBBbmQgdGhpcyB0aGUgdGhpcmQuPC9w
PjwvYm9keT48L2h0bWw+IjsKKworc3RhdGljIGdib29sZWFuIGJhaWxfb3V0KEdNYWluTG9vcCog
bG9vcCkKK3sKKyAgICBpZiAoZ19tYWluX2xvb3BfaXNfcnVubmluZyhsb29wKSkKKyAgICAgICAg
Z19tYWluX2xvb3BfcXVpdChsb29wKTsKKworICAgIHJldHVybiBGQUxTRTsKK30KKwordHlwZWRl
ZiBnY2hhciogKCpBdGtHZXRUZXh0RnVuY3Rpb24pIChBdGtUZXh0KiwgZ2ludCwgQXRrVGV4dEJv
dW5kYXJ5LCBnaW50KiwgZ2ludCopOworCitzdGF0aWMgdm9pZCB0ZXN0X2dldF90ZXh0X2Z1bmN0
aW9uKEF0a1RleHQqIHRleHRfb2JqLCBBdGtHZXRUZXh0RnVuY3Rpb24gZm4sIEF0a1RleHRCb3Vu
ZGFyeSBib3VuZGFyeSwgZ2ludCBvZmZzZXQsIGNvbnN0IGNoYXIqIHRleHRfcmVzdWx0LCBnaW50
IHN0YXJ0X29mZnNldF9yZXN1bHQsIGdpbnQgZW5kX29mZnNldF9yZXN1bHQpCit7CisgICAgZ2lu
dCBzdGFydF9vZmZzZXQsIGVuZF9vZmZzZXQ7CisgICAgY2hhciogdGV4dDsKKworICAgIHRleHQg
PSBmbih0ZXh0X29iaiwgb2Zmc2V0LCBib3VuZGFyeSwgJnN0YXJ0X29mZnNldCwgJmVuZF9vZmZz
ZXQpOworICAgIGdfYXNzZXJ0X2NtcHN0cih0ZXh0LCA9PSwgdGV4dF9yZXN1bHQpOworICAgIGdf
YXNzZXJ0X2NtcGludChzdGFydF9vZmZzZXQsID09LCBzdGFydF9vZmZzZXRfcmVzdWx0KTsKKyAg
ICBnX2Fzc2VydF9jbXBpbnQoZW5kX29mZnNldCwgPT0sIGVuZF9vZmZzZXRfcmVzdWx0KTsKKyAg
ICBnX2ZyZWUodGV4dCk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rfd2Via2l0X2F0a19nZXRfdGV4
dF9hdF9vZmZzZXQodm9pZCkKK3sKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3OworICAgIEF0
a09iamVjdCAqb2JqOworICAgIEdNYWluTG9vcCogbG9vcDsKKyAgICBBdGtUZXh0KiB0ZXh0X29i
ajsKKyAgICBjaGFyKiB0ZXh0OworCisgICAgd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJr
aXRfd2ViX3ZpZXdfbmV3KCkpOworICAgIGdfb2JqZWN0X3JlZl9zaW5rKHdlYlZpZXcpOworICAg
IHdlYmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyh3ZWJWaWV3LCBjb250ZW50cywgTlVMTCwgTlVM
TCwgTlVMTCk7CisgICAgbG9vcCA9IGdfbWFpbl9sb29wX25ldyhOVUxMLCBUUlVFKTsKKworICAg
IGdfdGltZW91dF9hZGQoMTAwLCAoR1NvdXJjZUZ1bmMpYmFpbF9vdXQsIGxvb3ApOworICAgIGdf
bWFpbl9sb29wX3J1bihsb29wKTsKKworICAgIC8qIEdldCB0byB0aGUgaW5uZXIgQXRrVGV4dCBv
YmplY3QgKi8KKyAgICBvYmogPSBndGtfd2lkZ2V0X2dldF9hY2Nlc3NpYmxlKEdUS19XSURHRVQo
d2ViVmlldykpOworICAgIGdfYXNzZXJ0KG9iaik7CisgICAgb2JqID0gYXRrX29iamVjdF9yZWZf
YWNjZXNzaWJsZV9jaGlsZChvYmosIDApOworICAgIGdfYXNzZXJ0KG9iaik7CisgICAgb2JqID0g
YXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmosIDApOworICAgIGdfYXNzZXJ0KG9i
aik7CisKKyAgICB0ZXh0X29iaiA9IEFUS19URVhUKG9iaik7CisgICAgZ19hc3NlcnQoQVRLX0lT
X1RFWFQodGV4dF9vYmopKTsKKworICAgIHRleHQgPSBhdGtfdGV4dF9nZXRfdGV4dCh0ZXh0X29i
aiwgMCwgLTEpOworICAgIGdfYXNzZXJ0X2NtcHN0cih0ZXh0LCA9PSwgIlRoaXMgaXMgYSB0ZXN0
LiBUaGlzIGlzIHRoZSBzZWNvbmQgc2VudGVuY2UuIEFuZCB0aGlzIHRoZSB0aGlyZC4iKTsKKyAg
ICBnX2ZyZWUodGV4dCk7CisKKyAgICAvKiBBVEtfVEVYVF9CT1VOREFSWV9DSEFSICovCisgICAg
dGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zm
c2V0LCBBVEtfVEVYVF9CT1VOREFSWV9DSEFSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
MCwgIlQiLCAwLCAxKTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0
a190ZXh0X2dldF90ZXh0X2FmdGVyX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfQ0hBUiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDAsICJoIiwgMSwgMik7CisKKyAgICB0ZXN0X2dldF90
ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9iZWZvcmVfb2Zmc2V0LCBB
VEtfVEVYVF9CT1VOREFSWV9DSEFSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgIiIs
IDAsIDApOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRf
Z2V0X3RleHRfYmVmb3JlX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfQ0hBUiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEsICJUIiwgMCwgMSk7CisgICAgCisgICAgLyogQVRLX1RFWFRf
Qk9VTkRBUllfV09SRF9TVEFSVCAqLworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9v
YmosIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfV09SRF9T
VEFSVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICJUaGlzICIsIDAsIDUpOworCisg
ICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYXRf
b2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX1NUQVJULAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNCwgIlRoaXMgIiwgMCwgNSk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9u
KHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZ
X1dPUkRfU1RBUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCwgInRlc3QuICIsIDEw
LCAxNik7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9n
ZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfU1RBUlQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICA1OCwgInRoaXJkLiIsIDU4LCA2NCk7CisKKyAgICB0ZXN0X2dl
dF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9iZWZvcmVfb2Zmc2V0
LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX1NUQVJULAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNSwgIlRoaXMgIiwgMCwgNSk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRf
b2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9iZWZvcmVfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9X
T1JEX1NUQVJULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgNywgIlRoaXMgIiwgMCwgNSk7
CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4
dF9hZnRlcl9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfU1RBUlQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAwLCAiaXMgIiwgNSwgOCk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1
bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hZnRlcl9vZmZzZXQsIEFUS19URVhU
X0JPVU5EQVJZX1dPUkRfU1RBUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICA0LCAiaXMg
IiwgNSwgOCk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4
dF9nZXRfdGV4dF9hZnRlcl9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfU1RBUlQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzLCAiaXMgIiwgNSwgOCk7CisKKyAgICAvKiBBVEtf
VEVYVF9CT1VOREFSWV9XT1JEX0VORCAqLworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4
dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfV09S
RF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAiVGhpcyIsIDAsIDQpOworCisg
ICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYXRf
b2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX0VORCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQsICIgaXMiLCA0LCA3KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4
dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfV09S
RF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICA1LCAiIGlzIiwgNCwgNyk7CisKKyAg
ICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hdF9v
ZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfRU5ELAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOSwgIiB0ZXN0IiwgOSwgMTQpOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0
ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYmVmb3JlX29mZnNldCwgQVRLX1RFWFRfQk9VTkRB
UllfV09SRF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICA1LCAiVGhpcyIsIDAsIDQp
OworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3Rl
eHRfYmVmb3JlX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfV09SRF9FTkQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICA0LCAiVGhpcyIsIDAsIDQpOworCisgICAgdGVzdF9nZXRfdGV4dF9m
dW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYmVmb3JlX29mZnNldCwgQVRLX1RF
WFRfQk9VTkRBUllfV09SRF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICA3LCAiIGlz
IiwgNCwgNyk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4
dF9nZXRfdGV4dF9hZnRlcl9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfRU5ELAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNSwgIiBhIiwgNywgOSk7CisKKyAgICB0ZXN0X2dldF90
ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hZnRlcl9vZmZzZXQsIEFU
S19URVhUX0JPVU5EQVJZX1dPUkRfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwg
IiBpcyIsIDQsIDcpOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRr
X3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX0VORCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDU4LCAiIHRoaXJkIiwgNTcsIDYzKTsKKworICAgIC8q
IEFUS19URVhUX0JPVU5EQVJZX1NFTlRFTkNFX1NUQVJUICovCisgICAgdGVzdF9nZXRfdGV4dF9m
dW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0LCBBVEtfVEVYVF9C
T1VOREFSWV9TRU5URU5DRV9TVEFSVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICJU
aGlzIGlzIGEgdGVzdC4gIiwgMCwgMTYpOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0
ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9T
RU5URU5DRV9TVEFSVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1LCAiVGhpcyBpcyBh
IHRlc3QuICIsIDAsIDE2KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmos
IGF0a190ZXh0X2dldF90ZXh0X2FmdGVyX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVO
Q0VfU1RBUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAiVGhpcyBpcyB0aGUgc2Vj
b25kIHNlbnRlbmNlLiAiLCAxNiwgNDUpOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0
ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYWZ0ZXJfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFS
WV9TRU5URU5DRV9TVEFSVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1LCAiVGhpcyBp
cyB0aGUgc2Vjb25kIHNlbnRlbmNlLiAiLCAxNiwgNDUpOworCisgICAgdGVzdF9nZXRfdGV4dF9m
dW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYmVmb3JlX29mZnNldCwgQVRLX1RF
WFRfQk9VTkRBUllfU0VOVEVOQ0VfU1RBUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAx
NiwgIlRoaXMgaXMgYSB0ZXN0LiAiLCAwLCAxNik7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0
aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9iZWZvcmVfb2Zmc2V0LCBBVEtfVEVYVF9C
T1VOREFSWV9TRU5URU5DRV9TVEFSVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0LCAi
VGhpcyBpcyBhIHRlc3QuICIsIDAsIDE2KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24o
dGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2JlZm9yZV9vZmZzZXQsIEFUS19URVhUX0JPVU5E
QVJZX1NFTlRFTkNFX1NUQVJULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUsICIiLCAw
LCAwKTsKKworICAgIC8qIEFUS19URVhUX0JPVU5EQVJZX1NFTlRFTkNFX0VORCAqLworICAgIHRl
c3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNl
dCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0VfRU5ELAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMCwgIlRoaXMgaXMgYSB0ZXN0LiIsIDAsIDE1KTsKKworICAgIHRlc3RfZ2V0X3RleHRf
ZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCwgQVRLX1RFWFRf
Qk9VTkRBUllfU0VOVEVOQ0VfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUsICIg
VGhpcyBpcyB0aGUgc2Vjb25kIHNlbnRlbmNlLiIsIDE1LCA0NCk7CisKKyAgICB0ZXN0X2dldF90
ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19U
RVhUX0JPVU5EQVJZX1NFTlRFTkNFX0VORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2
LCAiIFRoaXMgaXMgdGhlIHNlY29uZCBzZW50ZW5jZS4iLCAxNSwgNDQpOworCisgICAgdGVzdF9n
ZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0LCBB
VEtfVEVYVF9CT1VOREFSWV9TRU5URU5DRV9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxNywgIiBUaGlzIGlzIHRoZSBzZWNvbmQgc2VudGVuY2UuIiwgMTUsIDQ0KTsKKworICAgIHRl
c3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2FmdGVyX29m
ZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0VfRU5ELAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMCwgIiBUaGlzIGlzIHRoZSBzZWNvbmQgc2VudGVuY2UuIiwgMTUsIDQ0KTsKKwor
ICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2Fm
dGVyX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0VfRU5ELAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTUsICIgVGhpcyBpcyB0aGUgc2Vjb25kIHNlbnRlbmNlLiIsIDE1LCA0
NCk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRf
dGV4dF9iZWZvcmVfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9TRU5URU5DRV9FTkQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxNiwgIlRoaXMgaXMgYSB0ZXN0LiIsIDAsIDE1KTsKKwor
ICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2Jl
Zm9yZV9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1NFTlRFTkNFX0VORCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDE1LCAiVGhpcyBpcyBhIHRlc3QuIiwgMCwgMTUpOworCisgICAgdGVz
dF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYmVmb3JlX29m
ZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0VfRU5ELAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTQsICIiLCAwLCAwKTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4
dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2JlZm9yZV9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZ
X1NFTlRFTkNFX0VORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0LCAiIFRoaXMgaXMg
dGhlIHNlY29uZCBzZW50ZW5jZS4iLCAxNSwgNDQpOworCisgICAgLyogQVRLX1RFWFRfQk9VTkRB
UllfTElORV9TVEFSVCAqLworICAgIC8qIFRPRE8gKi8KKyAgICAvKiBBVEtfVEVYVF9CT1VOREFS
WV9MSU5FX0VORCAqLworICAgIC8qIFRPRE8gKi8KKworICAgIGdfb2JqZWN0X3VucmVmKHdlYlZp
ZXcpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgZ190aHJl
YWRfaW5pdChOVUxMKTsKKyAgICBndGtfdGVzdF9pbml0KCZhcmdjLCAmYXJndiwgTlVMTCk7CisK
KyAgICBnX3Rlc3RfYnVnX2Jhc2UoImh0dHBzOi8vYnVncy53ZWJraXQub3JnLyIpOworICAgIGdf
dGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvZ2V0X3RleHRfYXRfb2Zmc2V0IiwgdGVzdF93ZWJr
aXRfYXRrX2dldF90ZXh0X2F0X29mZnNldCk7CisgICAgcmV0dXJuIGdfdGVzdF9ydW4gKCk7Cit9
CisKKyNlbHNlCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgZ19jcml0
aWNhbCgiWW91IHdpbGwgbmVlZCBhdCBsZWFzdCBnbGliLTIuMTYuMCBhbmQgZ3RrLTIuMTQuMCB0
byBydW4gdGhlIHVuaXQgdGVzdHMuIERvaW5nIG5vdGhpbmcgbm93LiIpOworICAgIHJldHVybiAw
OworfQorCisjZW5kaWYKLS0gCjEuNi4yLjIKCg==
</data>
<flag name="review"
          id="15374"
          type_id="1"
          status="-"
          setter="jmalonzo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30614</attachid>
            <date>2009-05-23 03:39:59 -0700</date>
            <delta_ts>2009-06-08 07:08:54 -0700</delta_ts>
            <desc>gettextv4.patch</desc>
            <filename>gettextv4.patch</filename>
            <type>text/plain</type>
            <size>25638</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA4NWZiM2UwMjliM2Q3YjFkMTQ0MDIwNGZlMGM4MDU1YTBhM2Q4MmVhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBU
dWUsIDE5IE1heSAyMDA5IDEzOjMwOjM4ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gICAgIDIwMDkt
MDUtMTIgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgoKICAgICAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MTUKICAgICAgICAgICAgW0dUS11bQVRLXSBQbGVhc2UgaW1w
bGVtZW50IHN1cHBvcnQgZm9yIGdldF90ZXh0X2F0X29mZnNldAoKICAgICAgICAgICAgQWRkIG5l
dyB0ZXN0IGZpbGUgZm9yIEFUSy4KCiAgICAgICAgICAgICogR05VbWFrZWZpbGUuYW06CgogICAg
V2ViQ29yZToKCiAgICAyMDA5LTA1LTEyICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4K
CiAgICAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDE1CiAgICAgICAgICAgIFtH
VEtdW0FUS10gUGxlYXNlIGltcGxlbWVudCBzdXBwb3J0IGZvciBnZXRfdGV4dF9hdF9vZmZzZXQK
CiAgICAgICAgICAgIEltcGxlbWVudCBhdGtfdGV4dF9nZXRfdGV4dF97YXQsYWZ0ZXIsYmVmb3Jl
fV9vZmZzZXQuCgogICAgICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQXRrLmNwcDoKCiAgICBXZWJLaXQvZ3RrOgoKICAgIDIwMDktMDUtMTIgIFhh
biBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgoKICAgICAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgogICAgICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjU0MTUKICAgICAgICAgICAgW0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1
cHBvcnQgZm9yIGdldF90ZXh0X2F0X29mZnNldAoKICAgICAgICAgICAgTmV3IHRlc3QgZmlsZSBm
b3IgQVRLIGZ1bmN0aW9uYWxpdHkuCgogICAgICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzogQWRk
ZWQuCiAgICAgICAgICAgIChiYWlsX291dCk6CiAgICAgICAgICAgICh0ZXN0X2dldF90ZXh0X2Z1
bmN0aW9uKToKICAgICAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfdGV4dF9hdF9vZmZzZXQp
OgogICAgICAgICAgICAobWFpbik6Ci0tLQogQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsKIEdOVW1ha2VmaWxlLmFtICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOCArLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsKIC4uLi9ndGsvQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwICAgICAgICAgIHwgIDIzNCArKysrKysrKysrKysrKysr
KystCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMTUgKysKIFdlYktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgIDIzOSArKysrKysrKysrKysrKysrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCA1MDcgaW5z
ZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0L2d0
ay90ZXN0cy90ZXN0YXRrLmMKCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5k
ZXggN2I2ZjFiMS4uMDYxYTI2YSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDA5LTA1LTE5ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlh
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MTUKKyAgICAgICAgW0dU
S11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGdldF90ZXh0X2F0X29mZnNldAor
CisgICAgICAgIEFkZCBuZXcgdGVzdCBmaWxlIGZvciBBVEsuCisKKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5hbToKKwogMjAwOS0wNS0yMiAgQW50b25pbyBHb21lcyAgIDxhbnRvbmlvLmdvbWVzQG9w
ZW5ib3NzYS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgpkaWZm
IC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtlZmlsZS5hbQppbmRleCBjYjZjZjE5Li40
NDQwZTJlIDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5hbQorKysgYi9HTlVtYWtlZmlsZS5hbQpA
QCAtNTI4LDcgKzUyOCw4IEBAIHdlYmtpdF90ZXN0c19sZGZsYWdzID0gXAogVEVTVF9QUk9HUyAr
PSBQcm9ncmFtcy91bml0dGVzdHMvdGVzdHdlYmZyYW1lIFwKIAlQcm9ncmFtcy91bml0dGVzdHMv
dGVzdHdlYmJhY2tmb3J3YXJkbGlzdCBcCiAJUHJvZ3JhbXMvdW5pdHRlc3RzL3Rlc3R3ZWJoaXN0
b3J5aXRlbSBcCi0JUHJvZ3JhbXMvdW5pdHRlc3RzL3Rlc3Rkb3dubG9hZAorCVByb2dyYW1zL3Vu
aXR0ZXN0cy90ZXN0ZG93bmxvYWQgXAorCVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0YXRrCiAKICMg
QWRkIGFkZGl0aW9uYWwgdGVzdHMgaGVyZQogUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3R3ZWJmcmFt
ZV9TT1VSQ0VTID0gV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2ViZnJhbWUuYwpAQCAtNTUxLDYgKzU1
MiwxMSBAQCBQcm9ncmFtc191bml0dGVzdHNfdGVzdGRvd25sb2FkX0NGTEFHUyA9ICQod2Via2l0
X3Rlc3RzX2NmbGFncykKIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0ZG93bmxvYWRfTERBREQgPSAk
KHdlYmtpdF90ZXN0c19sZGFkZCkKIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0ZG93bmxvYWRfTERG
TEFHUyA9ICQod2Via2l0X3Rlc3RzX2xkZmxhZ3MpCiAKK1Byb2dyYW1zX3VuaXR0ZXN0c190ZXN0
YXRrX1NPVVJDRVMgPSBXZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYworUHJvZ3JhbXNfdW5pdHRl
c3RzX3Rlc3RhdGtfQ0ZMQUdTID0gJCh3ZWJraXRfdGVzdHNfY2ZsYWdzKQorUHJvZ3JhbXNfdW5p
dHRlc3RzX3Rlc3RhdGtfTERBREQgPSAkKHdlYmtpdF90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX3Vu
aXR0ZXN0c190ZXN0YXRrX0xERkxBR1MgPSAkKHdlYmtpdF90ZXN0c19sZGZsYWdzKQorCiAjIEF1
dG9nZW5lcmF0ZWQgc291cmNlcwogQlVJTFRfU09VUkNFUyA6PSBcCiAJJChqYXZhc2NyaXB0Y29y
ZV9idWlsdF9zb3VyY2VzKSBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGY4ZjkxZWUuLjRlY2M2NTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDkt
MDUtMTkgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNTQxNQorICAgICAgICBbR1RLXVtBVEtdIFBsZWFzZSBpbXBsZW1lbnQg
c3VwcG9ydCBmb3IgZ2V0X3RleHRfYXRfb2Zmc2V0CisKKyAgICAgICAgSW1wbGVtZW50IGF0a190
ZXh0X2dldF90ZXh0X3thdCxhZnRlcixiZWZvcmV9X29mZnNldC4KKworICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcDoKKwogMjAwOS0w
NS0yMyAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9B
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
Z3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAppbmRleCBlMjVkNTZhLi5jYzVj
MzUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQXRrLmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUg
PGF0ay9hdGsuaD4KICNpbmNsdWRlIDxnbGliLmg+CiAjaW5jbHVkZSA8Z2xpYi9ncHJpbnRmLmg+
CisjaW5jbHVkZSA8cGFuZ28vcGFuZ28uaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
QEAgLTQ4MSwyNSArNDgyLDIzOCBAQCBzdGF0aWMgZ2NoYXIqIHdlYmtpdF9hY2Nlc3NpYmxlX3Rl
eHRfZ2V0X3RleHQoQXRrVGV4dCogdGV4dCwgZ2ludCBzdGFydE9mZnNldCwgZwogICAgIHJldHVy
biBnX3N0cmR1cChyZXQudXRmOCgpLmRhdGEoKSk7CiB9CiAKLXN0YXRpYyBnY2hhciogd2Via2l0
X2FjY2Vzc2libGVfdGV4dF9nZXRfdGV4dF9hZnRlcl9vZmZzZXQoQXRrVGV4dCogdGV4dCwgZ2lu
dCBvZmZzZXQsIEF0a1RleHRCb3VuZGFyeSBib3VuZGFyeV90eXBlLCBnaW50KiBzdGFydF9vZmZz
ZXQsIGdpbnQqIGVuZF9vZmZzZXQpCitlbnVtIEdldFRleHRGdW5jdGlvblR5cGUgeworICAgIEFm
dGVyT2Zmc2V0LAorICAgIEF0T2Zmc2V0LAorICAgIEJlZm9yZU9mZnNldAorfTsKKwordHlwZWRl
ZiBib29sICgqaXNDaGFyYWN0ZXJBdHRyaWJ1dGUpIChQYW5nb0xvZ0F0dHIqIGF0dHIpOworCitz
dGF0aWMgaW5saW5lIGJvb2wgaXNXb3JkU3RhcnQoUGFuZ29Mb2dBdHRyKiBhdHRyKQogewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuIGF0dHItPmlz
X3dvcmRfc3RhcnQ7CiB9CiAKLXN0YXRpYyBnY2hhciogd2Via2l0X2FjY2Vzc2libGVfdGV4dF9n
ZXRfdGV4dF9hdF9vZmZzZXQoQXRrVGV4dCogdGV4dCwgZ2ludCBvZmZzZXQsIEF0a1RleHRCb3Vu
ZGFyeSBib3VuZGFyeV90eXBlLCBnaW50KiBzdGFydF9vZmZzZXQsIGdpbnQqIGVuZF9vZmZzZXQp
CitzdGF0aWMgaW5saW5lIGJvb2wgaXNXb3JkRW5kKFBhbmdvTG9nQXR0ciogYXR0cikKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBOVUxMOworICAgIHJldHVybiBhdHRyLT5p
c193b3JkX2VuZDsKIH0KIAotc3RhdGljIGd1bmljaGFyIHdlYmtpdF9hY2Nlc3NpYmxlX3RleHRf
Z2V0X2NoYXJhY3Rlcl9hdF9vZmZzZXQoQXRrVGV4dCogdGV4dCwgZ2ludCBvZmZzZXQpCitzdGF0
aWMgaW5saW5lIGJvb2wgaXNTZW50ZW5jZVN0YXJ0KFBhbmdvTG9nQXR0ciogYXR0cikKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBhdHRyLT5pc19z
ZW50ZW5jZV9zdGFydDsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzU2VudGVuY2VFbmQoUGFu
Z29Mb2dBdHRyKiBhdHRyKQoreworICAgIHJldHVybiBhdHRyLT5pc19zZW50ZW5jZV9lbmQ7Cit9
CisKK3R5cGVkZWYgaW50ICgqYWR2YW5jZUZ1bmMpIChpbnQpOworCitzdGF0aWMgaW50IGluY3Jl
YXNlSW50KGludCBpKSB7CisgICAgcmV0dXJuIGkgKyAxOworfQorCitzdGF0aWMgaW50IGRlY3Jl
YXNlSW50KGludCBpKSB7CisgICAgcmV0dXJuIGkgLSAxOworfQorCitlbnVtIERpcmVjdGlvbiB7
CisgICAgRGlyZWN0aW9uRm9yd2FyZCwKKyAgICBEaXJlY3Rpb25CYWNrd2FyZHMKK307CisKK3N0
YXRpYyBib29sIGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGUoaXNDaGFyYWN0ZXJBdHRyaWJ1dGUgcHJl
ZGljYXRlRnVuY3Rpb24sIFBhbmdvTG9nQXR0ciogYXR0cmlidXRlcywgRGlyZWN0aW9uIGRpcmVj
dGlvbiwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQgYXR0cnNMZW5ndGgsIGludCogcmVzdWx0T2Zmc2V0
KQoreworICAgIGFkdmFuY2VGdW5jIGFkdmFuY2VGdW5jID0gZGlyZWN0aW9uID09IERpcmVjdGlv
bkZvcndhcmQgPyBpbmNyZWFzZUludCA6IGRlY3JlYXNlSW50OworCisgICAgKnJlc3VsdE9mZnNl
dCA9IC0xOworCisgICAgZm9yIChpbnQgaSA9IHN0YXJ0T2Zmc2V0OyBpID49IDAgJiYgaSA8IGF0
dHJzTGVuZ3RoOyBpID0gYWR2YW5jZUZ1bmMoaSkpIHsKKyAgICAgICAgaWYgKHByZWRpY2F0ZUZ1
bmN0aW9uKGF0dHJpYnV0ZXMgKyBpKSkgeworICAgICAgICAgICAgKnJlc3VsdE9mZnNldCA9IGk7
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVy
biBmYWxzZTsKK30KKworc3RhdGljIGJvb2wgZmluZENoYXJhY3RlckF0dHJpYnV0ZVNraXAoaXND
aGFyYWN0ZXJBdHRyaWJ1dGUgcHJlZGljYXRlRnVuY3Rpb24sIHVuc2lnbmVkIHNraXAsIFBhbmdv
TG9nQXR0ciogYXR0cmlidXRlcywgRGlyZWN0aW9uIGRpcmVjdGlvbiwgaW50IHN0YXJ0T2Zmc2V0
LCBpbnQgYXR0cnNMZW5ndGgsIGludCogcmVzdWx0T2Zmc2V0KQoreworICAgIGludCB0bXBPZmZz
ZXQ7CisKKyAgICBib29sIHJldFZhbHVlID0gZmluZENoYXJhY3RlckF0dHJpYnV0ZShwcmVkaWNh
dGVGdW5jdGlvbiwgYXR0cmlidXRlcywgZGlyZWN0aW9uLCBzdGFydE9mZnNldCwgYXR0cnNMZW5n
dGgsICZ0bXBPZmZzZXQpOworICAgIGlmIChza2lwID09IDApIHsKKyAgICAgICAgKnJlc3VsdE9m
ZnNldCA9IHRtcE9mZnNldDsKKyAgICAgICAgcmV0dXJuIHJldFZhbHVlOworICAgIH0KKworICAg
IGlmIChkaXJlY3Rpb24gPT0gRGlyZWN0aW9uRm9yd2FyZCkKKyAgICAgICAgdG1wT2Zmc2V0Kys7
CisgICAgZWxzZQorICAgICAgICB0bXBPZmZzZXQtLTsKKworICAgIHJldHVybiBmaW5kQ2hhcmFj
dGVyQXR0cmlidXRlU2tpcChwcmVkaWNhdGVGdW5jdGlvbiwgc2tpcCAtIDEsIGF0dHJpYnV0ZXMs
IGRpcmVjdGlvbiwgdG1wT2Zmc2V0LCBhdHRyc0xlbmd0aCwgcmVzdWx0T2Zmc2V0KTsKK30KKwor
c3RhdGljIGlzQ2hhcmFjdGVyQXR0cmlidXRlIG9wcG9zaXRlUHJlZGljYXRlKGlzQ2hhcmFjdGVy
QXR0cmlidXRlIHByZWRpY2F0ZSkKK3sKKyAgICBpZiAocHJlZGljYXRlID09IGlzV29yZFN0YXJ0
KQorICAgICAgICByZXR1cm4gaXNXb3JkRW5kOworICAgIGlmIChwcmVkaWNhdGUgPT0gaXNXb3Jk
RW5kKQorICAgICAgICByZXR1cm4gaXNXb3JkU3RhcnQ7CisgICAgaWYgKHByZWRpY2F0ZSA9PSBp
c1NlbnRlbmNlU3RhcnQpCisgICAgICAgIHJldHVybiBpc1NlbnRlbmNlRW5kOworICAgIGlmIChw
cmVkaWNhdGUgPT0gaXNTZW50ZW5jZUVuZCkKKyAgICAgICAgcmV0dXJuIGlzU2VudGVuY2VTdGFy
dDsKKworICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVkKCk7CiB9CiAKLXN0YXRpYyBnY2hhciogd2Vi
a2l0X2FjY2Vzc2libGVfdGV4dF9nZXRfdGV4dF9iZWZvcmVfb2Zmc2V0KEF0a1RleHQqIHRleHQs
IGdpbnQgb2Zmc2V0LCBBdGtUZXh0Qm91bmRhcnkgYm91bmRhcnlfdHlwZSwgZ2ludCogc3RhcnRf
b2Zmc2V0LCBnaW50KiBlbmRfb2Zmc2V0KQorc3RhdGljIGdjaGFyKiBnZXRUZXh0SGVscGVyKEdl
dFRleHRGdW5jdGlvblR5cGUgZ2V0VGV4dEZ1bmN0aW9uVHlwZSwgQXRrVGV4dCogdGV4dE9iamVj
dCwgZ2ludCBvZmZzZXQsIEF0a1RleHRCb3VuZGFyeSBib3VuZGFyeVR5cGUsIGdpbnQqIHN0YXJ0
T2Zmc2V0LCBnaW50KiBlbmRPZmZzZXQpCit7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogY29y
ZU9iamVjdCA9IGNvcmUodGV4dE9iamVjdCk7CisgICAgU3RyaW5nIHRleHQ7CisKKyAgICAqc3Rh
cnRPZmZzZXQgPSAqZW5kT2Zmc2V0ID0gLTE7CisKKyAgICBpZiAoY29yZU9iamVjdC0+aXNUZXh0
Q29udHJvbCgpKQorICAgICAgICB0ZXh0ID0gY29yZU9iamVjdC0+dGV4dCgpOworICAgIGVsc2UK
KyAgICAgICAgdGV4dCA9IGNvcmVPYmplY3QtPnRleHRVbmRlckVsZW1lbnQoKTsKKworICAgIGNo
YXIqIGNUZXh0ID0gZ19zdHJkdXAodGV4dC51dGY4KCkuZGF0YSgpKTsKKyAgICBnbG9uZyB0ZXh0
TGVuZ3RoID0gZ191dGY4X3N0cmxlbihjVGV4dCwgLTEpOworCisgICAgaWYgKGJvdW5kYXJ5VHlw
ZSA9PSBBVEtfVEVYVF9CT1VOREFSWV9DSEFSKSB7CisgICAgICAgIGludCBlZmZlY3RpdmVPZmZz
ZXQ7CisKKyAgICAgICAgc3dpdGNoIChnZXRUZXh0RnVuY3Rpb25UeXBlKSB7CisgICAgICAgIGNh
c2UgQWZ0ZXJPZmZzZXQ6CisgICAgICAgICAgICBlZmZlY3RpdmVPZmZzZXQgPSBvZmZzZXQgKyAx
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQmVmb3JlT2Zmc2V0OgorICAgICAg
ICAgICAgZWZmZWN0aXZlT2Zmc2V0ID0gb2Zmc2V0IC0gMTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEF0T2Zmc2V0OgorICAgICAgICAgICAgZWZmZWN0aXZlT2Zmc2V0ID0gb2Zm
c2V0OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBn
X2Fzc2VydF9ub3RfcmVhY2hlZCgpOworICAgICAgICB9CisKKyAgICAgICAgKnN0YXJ0T2Zmc2V0
ID0gZWZmZWN0aXZlT2Zmc2V0OworICAgICAgICAqZW5kT2Zmc2V0ID0gZWZmZWN0aXZlT2Zmc2V0
ICsgMTsKKyAgICB9IGVsc2UgeworICAgICAgICBQYW5nb0xvZ0F0dHIqIGF0dHJzID0gZ19uZXco
UGFuZ29Mb2dBdHRyLCB0ZXh0TGVuZ3RoICsgMSk7CisgICAgICAgIFBhbmdvTGFuZ3VhZ2UqIGxh
bmd1YWdlID0gcGFuZ29fbGFuZ3VhZ2VfZ2V0X2RlZmF1bHQoKTsKKyAgICAgICAgcGFuZ29fZ2V0
X2xvZ19hdHRycyhjVGV4dCwgLTEsIC0xLCBsYW5ndWFnZSwgYXR0cnMsIHRleHRMZW5ndGggKyAx
KTsKKyAgICAgIAorICAgICAgICBpc0NoYXJhY3RlckF0dHJpYnV0ZSBwcmVkaWNhdGU7CisKKyAg
ICAgICAgaWYgKGJvdW5kYXJ5VHlwZSA9PSBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX1NUQVJUKQor
ICAgICAgICAgICAgcHJlZGljYXRlID0gaXNXb3JkU3RhcnQ7CisgICAgICAgIGVsc2UgaWYgKGJv
dW5kYXJ5VHlwZSA9PSBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX0VORCkKKyAgICAgICAgICAgIHBy
ZWRpY2F0ZSA9IGlzV29yZEVuZDsKKyAgICAgICAgZWxzZSBpZiAoYm91bmRhcnlUeXBlID09IEFU
S19URVhUX0JPVU5EQVJZX1NFTlRFTkNFX1NUQVJUKQorICAgICAgICAgICAgcHJlZGljYXRlID0g
aXNTZW50ZW5jZVN0YXJ0OworICAgICAgICBlbHNlIGlmIChib3VuZGFyeVR5cGUgPT0gQVRLX1RF
WFRfQk9VTkRBUllfU0VOVEVOQ0VfRU5EKQorICAgICAgICAgICAgcHJlZGljYXRlID0gaXNTZW50
ZW5jZUVuZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgLy8gRklYTUU6IGJhaWwgb3V0IGZv
ciBub3csIHNpbmNlIHdlIGFyZSBtaXNzaW5nIHRoZSBMSU5FCisgICAgICAgICAgICAvLyBib3Vu
ZGFyeSBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgICAgIGdvdG8gb3V0OworCisgICAgICAgIHN3
aXRjaCAoYm91bmRhcnlUeXBlKSB7CisgICAgICAgIGNhc2UgQVRLX1RFWFRfQk9VTkRBUllfV09S
RF9TVEFSVDoKKyAgICAgICAgY2FzZSBBVEtfVEVYVF9CT1VOREFSWV9TRU5URU5DRV9TVEFSVDoK
KyAgICAgICAgICAgIGlmIChnZXRUZXh0RnVuY3Rpb25UeXBlID09IEFmdGVyT2Zmc2V0KSB7Cisg
ICAgICAgICAgICAgICAgLy8gVGFrZSB0aGUgaXRlbSBhZnRlciB0aGUgY3VycmVudCBvbmUgaW4g
YW55IGNhc2UKKyAgICAgICAgICAgICAgICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlKHByZWRpY2F0
ZSwgYXR0cnMsIERpcmVjdGlvbkZvcndhcmQsIG9mZnNldCArIDEsIHRleHRMZW5ndGggKyAxLCBz
dGFydE9mZnNldCk7CisgICAgICAgICAgICAgICAgZmluZENoYXJhY3RlckF0dHJpYnV0ZVNraXAo
cHJlZGljYXRlLCAxLCBhdHRycywgRGlyZWN0aW9uRm9yd2FyZCwgb2Zmc2V0ICsgMSwgdGV4dExl
bmd0aCArIDEsIGVuZE9mZnNldCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGdldFRleHRGdW5j
dGlvblR5cGUgPT0gQXRPZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAvLyBUYWtlIHRoZSBpdGVt
IGF0IHBvaW50IGlmIHRoZSBvZmZzZXQgaXMgaW4gYW4gaXRlbSBvcgorICAgICAgICAgICAgICAg
IC8vIHRoZSBpdGVtIGJlZm9yZSBvdGhlcndpc2UKKyAgICAgICAgICAgICAgICBmaW5kQ2hhcmFj
dGVyQXR0cmlidXRlKHByZWRpY2F0ZSwgYXR0cnMsIERpcmVjdGlvbkJhY2t3YXJkcywgb2Zmc2V0
LCB0ZXh0TGVuZ3RoICsgMSwgc3RhcnRPZmZzZXQpOworICAgICAgICAgICAgICAgIGlmICghZmlu
ZENoYXJhY3RlckF0dHJpYnV0ZShwcmVkaWNhdGUsIGF0dHJzLCBEaXJlY3Rpb25Gb3J3YXJkLCBv
ZmZzZXQgKyAxLCB0ZXh0TGVuZ3RoICsgMSwgZW5kT2Zmc2V0KSkgeworICAgICAgICAgICAgICAg
ICAgICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlKG9wcG9zaXRlUHJlZGljYXRlKHByZWRpY2F0ZSks
IGF0dHJzLCBEaXJlY3Rpb25Gb3J3YXJkLCBvZmZzZXQgKyAxLCB0ZXh0TGVuZ3RoICsgMSwgZW5k
T2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0byBpbmNsdWRlIHRoZSBh
Y3R1YWwgZW5kIGJvdW5kYXJ5CisgICAgICAgICAgICAgICAgICAgIC8vIGhlcmUsIHNpbmNlICpf
U1RBUlQgd291bGQgaGF2ZSBkb25lIHNvLiBBZHZhbmNlCisgICAgICAgICAgICAgICAgICAgIC8v
IHVudGlsIHRoZSBlbmQgb2YgdGhlIHN0cmluZyBpZiBwb3NzaWJsZQorICAgICAgICAgICAgICAg
ICAgICBpZiAoKmVuZE9mZnNldCAhPSAtMSAmJiAqZW5kT2Zmc2V0IDwgdGV4dExlbmd0aCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICplbmRPZmZzZXQgPSB0ZXh0TGVuZ3RoOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gVGFrZSB0
aGUgaXRlbSBiZWZvcmUgdGhlIHBvaW50IGlmIHRoZSBvZmZzZXQgaXMgaW4gYW4KKyAgICAgICAg
ICAgICAgICAvLyBpdGVtLCBvciB0aGUgdGhlIGl0ZW0gYmVmb3JlIHRoYXQgb25lIG90aGVyd2lz
ZQorICAgICAgICAgICAgICAgIGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGVTa2lwKHByZWRpY2F0ZSwg
MSwgYXR0cnMsIERpcmVjdGlvbkJhY2t3YXJkcywgb2Zmc2V0LCB0ZXh0TGVuZ3RoICsgMSwgc3Rh
cnRPZmZzZXQpOworICAgICAgICAgICAgICAgIGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGUocHJlZGlj
YXRlLCBhdHRycywgRGlyZWN0aW9uQmFja3dhcmRzLCBvZmZzZXQsIHRleHRMZW5ndGggKyAxLCBl
bmRPZmZzZXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQVRLX1RFWFRfQk9VTkRBUllfV09SRF9FTkQ6CisgICAgICAgIGNhc2UgQVRLX1RFWFRfQk9V
TkRBUllfU0VOVEVOQ0VfRU5EOgorICAgICAgICAgICAgaWYgKGdldFRleHRGdW5jdGlvblR5cGUg
PT0gQWZ0ZXJPZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAvLyBUYWtlIHRoZSBpdGVtIGFmdGVy
IHRoZSBjdXJyZW50IGl0ZW0gaWYgdGhlIG9mZnNldCBpcworICAgICAgICAgICAgICAgIC8vIGlu
IGEgaXRlbSwgb3IgdGhlIGl0ZW0gYWZ0ZXIgdGhhdCBvdGhlcndpc2UKKyAgICAgICAgICAgICAg
ICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlKHByZWRpY2F0ZSwgYXR0cnMsIERpcmVjdGlvbkZvcndh
cmQsIG9mZnNldCwgdGV4dExlbmd0aCArIDEsIHN0YXJ0T2Zmc2V0KTsKKyAgICAgICAgICAgICAg
ICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlU2tpcChwcmVkaWNhdGUsIDEsIGF0dHJzLCBEaXJlY3Rp
b25Gb3J3YXJkLCBvZmZzZXQsIHRleHRMZW5ndGggKyAxLCBlbmRPZmZzZXQpOworICAgICAgICAg
ICAgfSBlbHNlIGlmIChnZXRUZXh0RnVuY3Rpb25UeXBlID09IEF0T2Zmc2V0KSB7CisgICAgICAg
ICAgICAgICAgLy8gVGFrZSB0aGUgaXRlbSBhdCBwb2ludCBpZiB0aGUgb2Zmc2V0IGlzIGluIGEg
aXRlbSBvcgorICAgICAgICAgICAgICAgIC8vIHRoZSBpdGVtIGFmdGVyIG90aGVyd2lzZQorICAg
ICAgICAgICAgICAgIGlmICghZmluZENoYXJhY3RlckF0dHJpYnV0ZShwcmVkaWNhdGUsIGF0dHJz
LCBEaXJlY3Rpb25CYWNrd2FyZHMsIG9mZnNldCwgdGV4dExlbmd0aCArIDEsIHN0YXJ0T2Zmc2V0
KSkKKyAgICAgICAgICAgICAgICAgICAgLy8gTm8gbWF0Y2ggYmVmb3JlIG9mZnNldCwgdGFrZSB0
aGUgZmlyc3Qgb3Bwb3NpdGUgbWF0Y2ggYXQgb3IgYmVmb3JlIHRoZSBvZmZzZXQKKyAgICAgICAg
ICAgICAgICAgICAgZmluZENoYXJhY3RlckF0dHJpYnV0ZShvcHBvc2l0ZVByZWRpY2F0ZShwcmVk
aWNhdGUpLCBhdHRycywgRGlyZWN0aW9uQmFja3dhcmRzLCBvZmZzZXQsIHRleHRMZW5ndGggKyAx
LCBzdGFydE9mZnNldCk7CisgICAgICAgICAgICAgICAgZmluZENoYXJhY3RlckF0dHJpYnV0ZShw
cmVkaWNhdGUsIGF0dHJzLCBEaXJlY3Rpb25Gb3J3YXJkLCBvZmZzZXQgKyAxLCB0ZXh0TGVuZ3Ro
ICsgMSwgZW5kT2Zmc2V0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
Ly8gVGFrZSB0aGUgaXRlbSBiZWZvcmUgdGhlIHBvaW50IGluIGFueSBjYXNlCisgICAgICAgICAg
ICAgICAgaWYgKCFmaW5kQ2hhcmFjdGVyQXR0cmlidXRlU2tpcChwcmVkaWNhdGUsIDEsIGF0dHJz
LCBEaXJlY3Rpb25CYWNrd2FyZHMsIG9mZnNldCwgdGV4dExlbmd0aCArIDEsIHN0YXJ0T2Zmc2V0
KSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgdG1wT2Zmc2V0OworICAgICAgICAgICAgICAg
ICAgICAvLyBObyBtYXRjaCBiZWZvcmUgb2Zmc2V0LCB0YWtlIHRoZSBmaXJzdCBvcHBvc2l0ZSBt
YXRjaCBhdCBvciBiZWZvcmUgdGhlIG9mZnNldAorICAgICAgICAgICAgICAgICAgICBmaW5kQ2hh
cmFjdGVyQXR0cmlidXRlKHByZWRpY2F0ZSwgYXR0cnMsIERpcmVjdGlvbkJhY2t3YXJkcywgb2Zm
c2V0LCB0ZXh0TGVuZ3RoICsgMSwgJnRtcE9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgIGZp
bmRDaGFyYWN0ZXJBdHRyaWJ1dGUob3Bwb3NpdGVQcmVkaWNhdGUocHJlZGljYXRlKSwgYXR0cnMs
IERpcmVjdGlvbkJhY2t3YXJkcywgdG1wT2Zmc2V0IC0gMSwgdGV4dExlbmd0aCArIDEsIHN0YXJ0
T2Zmc2V0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZmluZENoYXJhY3Rl
ckF0dHJpYnV0ZShwcmVkaWNhdGUsIGF0dHJzLCBEaXJlY3Rpb25CYWNrd2FyZHMsIG9mZnNldCwg
dGV4dExlbmd0aCArIDEsIGVuZE9mZnNldCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVk
KCk7CisgICAgICAgIH0KKworICAgICAgICBnX2ZyZWUoYXR0cnMpOworICAgIH0KKworIG91dDoK
KyAgICBpZiAoKnN0YXJ0T2Zmc2V0IDwgMCB8fCAqZW5kT2Zmc2V0IDwgMCkgeworICAgICAgICAq
c3RhcnRPZmZzZXQgPSAqZW5kT2Zmc2V0ID0gMDsKKyAgICAgICAgcmV0dXJuIGdfc3RyZHVwKCIi
KTsKKyAgICB9CisKKyAgICBjaGFyKiBzdGFydCA9IGdfdXRmOF9vZmZzZXRfdG9fcG9pbnRlcihj
VGV4dCwgKGdsb25nKSpzdGFydE9mZnNldCk7CisgICAgY2hhciogZW5kID0gZ191dGY4X29mZnNl
dF90b19wb2ludGVyKGNUZXh0LCAoZ2xvbmcpKmVuZE9mZnNldCk7CisgICAgY2hhciogcmVzdWx0
VGV4dCA9IGdfc3RybmR1cChzdGFydCwgZW5kIC0gc3RhcnQpOworICAgIGdfZnJlZShjVGV4dCk7
CisgICAgcmV0dXJuIHJlc3VsdFRleHQ7Cit9CisKK3N0YXRpYyBnY2hhciogd2Via2l0X2FjY2Vz
c2libGVfdGV4dF9nZXRfdGV4dF9hZnRlcl9vZmZzZXQoQXRrVGV4dCogdGV4dCwgZ2ludCBvZmZz
ZXQsIEF0a1RleHRCb3VuZGFyeSBib3VuZGFyeVR5cGUsIGdpbnQqIHN0YXJ0T2Zmc2V0LCBnaW50
KiBlbmRPZmZzZXQpCit7CisgICAgcmV0dXJuIGdldFRleHRIZWxwZXIoQWZ0ZXJPZmZzZXQsIHRl
eHQsIG9mZnNldCwgYm91bmRhcnlUeXBlLCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTsKK30KKwor
c3RhdGljIGdjaGFyKiB3ZWJraXRfYWNjZXNzaWJsZV90ZXh0X2dldF90ZXh0X2F0X29mZnNldChB
dGtUZXh0KiB0ZXh0LCBnaW50IG9mZnNldCwgQXRrVGV4dEJvdW5kYXJ5IGJvdW5kYXJ5VHlwZSwg
Z2ludCogc3RhcnRPZmZzZXQsIGdpbnQqIGVuZE9mZnNldCkKK3sKKyAgICByZXR1cm4gZ2V0VGV4
dEhlbHBlcihBdE9mZnNldCwgdGV4dCwgb2Zmc2V0LCBib3VuZGFyeVR5cGUsIHN0YXJ0T2Zmc2V0
LCBlbmRPZmZzZXQpOworfQorCitzdGF0aWMgZ2NoYXIqIHdlYmtpdF9hY2Nlc3NpYmxlX3RleHRf
Z2V0X3RleHRfYmVmb3JlX29mZnNldChBdGtUZXh0KiB0ZXh0LCBnaW50IG9mZnNldCwgQXRrVGV4
dEJvdW5kYXJ5IGJvdW5kYXJ5VHlwZSwgZ2ludCogc3RhcnRPZmZzZXQsIGdpbnQqIGVuZE9mZnNl
dCkKK3sKKyAgICByZXR1cm4gZ2V0VGV4dEhlbHBlcihCZWZvcmVPZmZzZXQsIHRleHQsIG9mZnNl
dCwgYm91bmRhcnlUeXBlLCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTsKK30KKworc3RhdGljIGd1
bmljaGFyIHdlYmtpdF9hY2Nlc3NpYmxlX3RleHRfZ2V0X2NoYXJhY3Rlcl9hdF9vZmZzZXQoQXRr
VGV4dCogdGV4dCwgZ2ludCBvZmZzZXQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBy
ZXR1cm4gTlVMTDsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKaW5kZXggMjNmODk4Ni4uZDkwM2UwOCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTU4LDYgKzU4LDIxIEBA
CiAKIDIwMDktMDUtMTkgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQxNQorICAgICAgICBbR1RLXVtBVEtdIFBsZWFzZSBp
bXBsZW1lbnQgc3VwcG9ydCBmb3IgZ2V0X3RleHRfYXRfb2Zmc2V0CisKKyAgICAgICAgTmV3IHRl
c3QgZmlsZSBmb3IgQVRLIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiB0ZXN0cy90ZXN0YXRr
LmM6IEFkZGVkLgorICAgICAgICAoYmFpbF9vdXQpOgorICAgICAgICAodGVzdF9nZXRfdGV4dF9m
dW5jdGlvbik6CisgICAgICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0X3RleHRfYXRfb2Zmc2V0KToK
KyAgICAgICAgKG1haW4pOgorCisyMDA5LTA1LTE5ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlh
LmNvbT4KKwogICAgICAgICBSZXZpZXdlZCBieSBKYW4gQWxvbnpvLgogCiAgICAgICAgIERvIG5v
dCB0cnkgdG8gZnJlZSBlbmNoYW50IGJyb2tlciBhbmQgZGljdGlvbmFyeSBpZiB0aGV5IGRvIG5v
dApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMgYi9XZWJLaXQvZ3RrL3Rl
c3RzL3Rlc3RhdGsuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjZhOGUy
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMKQEAgLTAsMCAr
MSwyMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgSWdhbGlhIFMuTC4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUg
PGVycm5vLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1
ZGUgPGdsaWIvZ3N0ZGlvLmg+CisjaW5jbHVkZSA8Z3RrL2d0ay5oPgorI2luY2x1ZGUgPHdlYmtp
dC93ZWJraXQuaD4KKworI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTigyLCAxNiwgMCkgJiYgR1RLX0NI
RUNLX1ZFUlNJT04oMiwgMTQsIDApCisKK3N0YXRpYyBjb25zdCBjaGFyKiBjb250ZW50cyA9ICI8
aHRtbD48Ym9keT48cD5UaGlzIGlzIGEgdGVzdC4gVGhpcyBpcyB0aGUgc2Vjb25kIHNlbnRlbmNl
LiBBbmQgdGhpcyB0aGUgdGhpcmQuPC9wPjwvYm9keT48L2h0bWw+IjsKKworc3RhdGljIGdib29s
ZWFuIGJhaWxfb3V0KEdNYWluTG9vcCogbG9vcCkKK3sKKyAgICBpZiAoZ19tYWluX2xvb3BfaXNf
cnVubmluZyhsb29wKSkKKyAgICAgICAgZ19tYWluX2xvb3BfcXVpdChsb29wKTsKKworICAgIHJl
dHVybiBGQUxTRTsKK30KKwordHlwZWRlZiBnY2hhciogKCpBdGtHZXRUZXh0RnVuY3Rpb24pIChB
dGtUZXh0KiwgZ2ludCwgQXRrVGV4dEJvdW5kYXJ5LCBnaW50KiwgZ2ludCopOworCitzdGF0aWMg
dm9pZCB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKEF0a1RleHQqIHRleHRfb2JqLCBBdGtHZXRUZXh0
RnVuY3Rpb24gZm4sIEF0a1RleHRCb3VuZGFyeSBib3VuZGFyeSwgZ2ludCBvZmZzZXQsIGNvbnN0
IGNoYXIqIHRleHRfcmVzdWx0LCBnaW50IHN0YXJ0X29mZnNldF9yZXN1bHQsIGdpbnQgZW5kX29m
ZnNldF9yZXN1bHQpCit7CisgICAgZ2ludCBzdGFydF9vZmZzZXQsIGVuZF9vZmZzZXQ7CisgICAg
Y2hhciogdGV4dDsKKworICAgIHRleHQgPSBmbih0ZXh0X29iaiwgb2Zmc2V0LCBib3VuZGFyeSwg
JnN0YXJ0X29mZnNldCwgJmVuZF9vZmZzZXQpOworICAgIGdfYXNzZXJ0X2NtcHN0cih0ZXh0LCA9
PSwgdGV4dF9yZXN1bHQpOworICAgIGdfYXNzZXJ0X2NtcGludChzdGFydF9vZmZzZXQsID09LCBz
dGFydF9vZmZzZXRfcmVzdWx0KTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZW5kX29mZnNldCwgPT0s
IGVuZF9vZmZzZXRfcmVzdWx0KTsKKyAgICBnX2ZyZWUodGV4dCk7Cit9CisKK3N0YXRpYyB2b2lk
IHRlc3Rfd2Via2l0X2F0a19nZXRfdGV4dF9hdF9vZmZzZXQodm9pZCkKK3sKKyAgICBXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3OworICAgIEF0a09iamVjdCAqb2JqOworICAgIEdNYWluTG9vcCogbG9v
cDsKKyAgICBBdGtUZXh0KiB0ZXh0X29iajsKKyAgICBjaGFyKiB0ZXh0OworCisgICAgd2ViVmll
dyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdfbmV3KCkpOworICAgIGdfb2JqZWN0
X3JlZl9zaW5rKHdlYlZpZXcpOworICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyh3ZWJW
aWV3LCBjb250ZW50cywgTlVMTCwgTlVMTCwgTlVMTCk7CisgICAgbG9vcCA9IGdfbWFpbl9sb29w
X25ldyhOVUxMLCBUUlVFKTsKKworICAgIGdfdGltZW91dF9hZGQoMTAwLCAoR1NvdXJjZUZ1bmMp
YmFpbF9vdXQsIGxvb3ApOworICAgIGdfbWFpbl9sb29wX3J1bihsb29wKTsKKworICAgIC8qIEdl
dCB0byB0aGUgaW5uZXIgQXRrVGV4dCBvYmplY3QgKi8KKyAgICBvYmogPSBndGtfd2lkZ2V0X2dl
dF9hY2Nlc3NpYmxlKEdUS19XSURHRVQod2ViVmlldykpOworICAgIGdfYXNzZXJ0KG9iaik7Cisg
ICAgb2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmosIDApOworICAgIGdf
YXNzZXJ0KG9iaik7CisgICAgb2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChv
YmosIDApOworICAgIGdfYXNzZXJ0KG9iaik7CisKKyAgICB0ZXh0X29iaiA9IEFUS19URVhUKG9i
aik7CisgICAgZ19hc3NlcnQoQVRLX0lTX1RFWFQodGV4dF9vYmopKTsKKworICAgIHRleHQgPSBh
dGtfdGV4dF9nZXRfdGV4dCh0ZXh0X29iaiwgMCwgLTEpOworICAgIGdfYXNzZXJ0X2NtcHN0cih0
ZXh0LCA9PSwgIlRoaXMgaXMgYSB0ZXN0LiBUaGlzIGlzIHRoZSBzZWNvbmQgc2VudGVuY2UuIEFu
ZCB0aGlzIHRoZSB0aGlyZC4iKTsKKyAgICBnX2ZyZWUodGV4dCk7CisKKyAgICAvKiBBVEtfVEVY
VF9CT1VOREFSWV9DSEFSICovCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwg
YXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9DSEFSLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMCwgIlQiLCAwLCAxKTsKKworICAgIHRlc3RfZ2V0X3Rl
eHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2FmdGVyX29mZnNldCwgQVRL
X1RFWFRfQk9VTkRBUllfQ0hBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICJoIiwg
MSwgMik7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9n
ZXRfdGV4dF9iZWZvcmVfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9DSEFSLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMCwgIiIsIDAsIDApOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5j
dGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYmVmb3JlX29mZnNldCwgQVRLX1RFWFRf
Qk9VTkRBUllfQ0hBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsICJUIiwgMCwgMSk7
CisgICAgCisgICAgLyogQVRLX1RFWFRfQk9VTkRBUllfV09SRF9TVEFSVCAqLworICAgIHRlc3Rf
Z2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCwg
QVRLX1RFWFRfQk9VTkRBUllfV09SRF9TVEFSVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IDAsICJUaGlzICIsIDAsIDUpOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29i
aiwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX1NU
QVJULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwgIlRoaXMgIiwgMCwgNSk7CisKKyAg
ICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hdF9v
ZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfU1RBUlQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxMCwgInRlc3QuICIsIDEwLCAxNik7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0
aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19URVhUX0JPVU5E
QVJZX1dPUkRfU1RBUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICA1OCwgInRoaXJkLiIs
IDU4LCA2NCk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4
dF9nZXRfdGV4dF9iZWZvcmVfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX1NUQVJULAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNSwgIlRoaXMgIiwgMCwgNSk7CisKKyAgICB0ZXN0
X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9iZWZvcmVfb2Zm
c2V0LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX1NUQVJULAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNywgIlRoaXMgIiwgMCwgNSk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRl
eHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hZnRlcl9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZ
X1dPUkRfU1RBUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAiaXMgIiwgNSwgOCk7
CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4
dF9hZnRlcl9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfU1RBUlQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICA0LCAiaXMgIiwgNSwgOCk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1
bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hZnRlcl9vZmZzZXQsIEFUS19URVhU
X0JPVU5EQVJZX1dPUkRfU1RBUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAzLCAiaXMg
IiwgNSwgOCk7CisKKyAgICAvKiBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX0VORCAqLworICAgIHRl
c3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNl
dCwgQVRLX1RFWFRfQk9VTkRBUllfV09SRF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAwLCAiVGhpcyIsIDAsIDQpOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29i
aiwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX0VO
RCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsICIgaXMiLCA0LCA3KTsKKworICAgIHRl
c3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNl
dCwgQVRLX1RFWFRfQk9VTkRBUllfV09SRF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICA1LCAiIGlzIiwgNCwgNyk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2Jq
LCBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfRU5E
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgOSwgIiB0ZXN0IiwgOSwgMTQpOworCisgICAg
dGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYmVmb3Jl
X29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfV09SRF9FTkQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICA1LCAiVGhpcyIsIDAsIDQpOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0
ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYmVmb3JlX29mZnNldCwgQVRLX1RFWFRfQk9VTkRB
UllfV09SRF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICA0LCAiVGhpcyIsIDAsIDQp
OworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3Rl
eHRfYmVmb3JlX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfV09SRF9FTkQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICA3LCAiIGlzIiwgNCwgNyk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1
bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hZnRlcl9vZmZzZXQsIEFUS19URVhU
X0JPVU5EQVJZX1dPUkRfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgNSwgIiBhIiwg
NywgOSk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9n
ZXRfdGV4dF9hZnRlcl9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfRU5ELAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNCwgIiBpcyIsIDQsIDcpOworCisgICAgdGVzdF9nZXRfdGV4
dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0LCBBVEtfVEVY
VF9CT1VOREFSWV9XT1JEX0VORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDU4LCAiIHRo
aXJkIiwgNTcsIDYzKTsKKworICAgIC8qIEFUS19URVhUX0JPVU5EQVJZX1NFTlRFTkNFX1NUQVJU
ICovCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3Rl
eHRfYXRfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9TRU5URU5DRV9TVEFSVCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDAsICJUaGlzIGlzIGEgdGVzdC4gIiwgMCwgMTYpOworCisgICAg
dGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zm
c2V0LCBBVEtfVEVYVF9CT1VOREFSWV9TRU5URU5DRV9TVEFSVCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDE1LCAiVGhpcyBpcyBhIHRlc3QuICIsIDAsIDE2KTsKKworICAgIHRlc3RfZ2V0
X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2FmdGVyX29mZnNldCwg
QVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0VfU1RBUlQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLCAiVGhpcyBpcyB0aGUgc2Vjb25kIHNlbnRlbmNlLiAiLCAxNiwgNDUpOworCisgICAg
dGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYWZ0ZXJf
b2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9TRU5URU5DRV9TVEFSVCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDE1LCAiVGhpcyBpcyB0aGUgc2Vjb25kIHNlbnRlbmNlLiAiLCAxNiwgNDUp
OworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3Rl
eHRfYmVmb3JlX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0VfU1RBUlQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxNiwgIlRoaXMgaXMgYSB0ZXN0LiAiLCAwLCAxNik7CisK
KyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9i
ZWZvcmVfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9TRU5URU5DRV9TVEFSVCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQ0LCAiVGhpcyBpcyBhIHRlc3QuICIsIDAsIDE2KTsKKworICAg
IHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2JlZm9y
ZV9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1NFTlRFTkNFX1NUQVJULAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTUsICIiLCAwLCAwKTsKKworICAgIC8qIEFUS19URVhUX0JPVU5EQVJZ
X1NFTlRFTkNFX0VORCAqLworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0
a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0VfRU5E
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgIlRoaXMgaXMgYSB0ZXN0LiIsIDAsIDE1
KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90
ZXh0X2F0X29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0VfRU5ELAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTUsICIgVGhpcyBpcyB0aGUgc2Vjb25kIHNlbnRlbmNlLiIsIDE1
LCA0NCk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9n
ZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1NFTlRFTkNFX0VORCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDE2LCAiIFRoaXMgaXMgdGhlIHNlY29uZCBzZW50ZW5jZS4i
LCAxNSwgNDQpOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3Rl
eHRfZ2V0X3RleHRfYXRfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9TRU5URU5DRV9FTkQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxNywgIiBUaGlzIGlzIHRoZSBzZWNvbmQgc2VudGVu
Y2UuIiwgMTUsIDQ0KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0
a190ZXh0X2dldF90ZXh0X2FmdGVyX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0Vf
RU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgIiBUaGlzIGlzIHRoZSBzZWNvbmQg
c2VudGVuY2UuIiwgMTUsIDQ0KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9v
YmosIGF0a190ZXh0X2dldF90ZXh0X2FmdGVyX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VO
VEVOQ0VfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUsICIgVGhpcyBpcyB0aGUg
c2Vjb25kIHNlbnRlbmNlLiIsIDE1LCA0NCk7CisKKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9u
KHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9iZWZvcmVfb2Zmc2V0LCBBVEtfVEVYVF9CT1VO
REFSWV9TRU5URU5DRV9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAxNiwgIlRoaXMg
aXMgYSB0ZXN0LiIsIDAsIDE1KTsKKworICAgIHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9v
YmosIGF0a190ZXh0X2dldF90ZXh0X2JlZm9yZV9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1NF
TlRFTkNFX0VORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1LCAiVGhpcyBpcyBhIHRl
c3QuIiwgMCwgMTUpOworCisgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRr
X3RleHRfZ2V0X3RleHRfYmVmb3JlX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0Vf
RU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQsICIiLCAwLCAwKTsKKworICAgIHRl
c3RfZ2V0X3RleHRfZnVuY3Rpb24odGV4dF9vYmosIGF0a190ZXh0X2dldF90ZXh0X2JlZm9yZV9v
ZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1NFTlRFTkNFX0VORCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDQ0LCAiIFRoaXMgaXMgdGhlIHNlY29uZCBzZW50ZW5jZS4iLCAxNSwgNDQpOwor
CisgICAgLyogQVRLX1RFWFRfQk9VTkRBUllfTElORV9TVEFSVCAqLworICAgIC8qIFRPRE8gKi8K
KyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9h
dF9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX0xJTkVfU1RBUlQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAwLCAiIiwgMCwgMCk7CisKKyAgICAvKiBBVEtfVEVYVF9CT1VOREFSWV9MSU5F
X0VORCAqLworICAgIC8qIFRPRE8gKi8KKyAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRf
b2JqLCBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX0xJTkVf
RU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgIiIsIDAsIDApOworCisgICAgZ19v
YmplY3RfdW5yZWYod2ViVmlldyk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJn
dikKK3sKKyAgICBnX3RocmVhZF9pbml0KE5VTEwpOworICAgIGd0a190ZXN0X2luaXQoJmFyZ2Ms
ICZhcmd2LCBOVUxMKTsKKworICAgIGdfdGVzdF9idWdfYmFzZSgiaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvIik7CisgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay9nZXRfdGV4dF9hdF9v
ZmZzZXQiLCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3RleHRfYXRfb2Zmc2V0KTsKKyAgICByZXR1cm4g
Z190ZXN0X3J1biAoKTsKK30KKworI2Vsc2UKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJn
dikKK3sKKyAgICBnX2NyaXRpY2FsKCJZb3Ugd2lsbCBuZWVkIGF0IGxlYXN0IGdsaWItMi4xNi4w
IGFuZCBndGstMi4xNC4wIHRvIHJ1biB0aGUgdW5pdCB0ZXN0cy4gRG9pbmcgbm90aGluZyBub3cu
Iik7CisgICAgcmV0dXJuIDA7Cit9CisKKyNlbmRpZgotLSAKMS42LjIuMgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31049</attachid>
            <date>2009-06-08 07:08:54 -0700</date>
            <delta_ts>2009-07-24 01:09:05 -0700</delta_ts>
            <desc>gailtextutil.patch</desc>
            <filename>gailtextutil.patch</filename>
            <type>text/plain</type>
            <size>18277</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSAzZmJkZGQ2MGEyMmM1NWYwMTEzNjc4MTdjMmQzYzI0ZWYxNzI5OTkwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBN
b24sIDggSnVuIDIwMDkgMTc6MDQ6MjAgKzAzMDAKU3ViamVjdDogW1BBVENIXSAyMDA5LTA2LTA4
ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNTQxNQogICAgICAgIFtHVEtdW0FUS10gUGxlYXNlIGltcGxlbWVudCBzdXBwb3J0IGZv
ciBnZXRfdGV4dF9hdF9vZmZzZXQKCiAgICAgICAgQWRkIG5ldyBkZXBlbmRlbmN5IG9uIHRoZSBH
YWlsIHV0aWxzIGxpYnJhcnksIG5lZWRlZCBmb3Igb3VyIGExMXkKICAgICAgICBpbXBsZW1lbnRh
dGlvbi4KCiAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKICAgICAgICAqIGNvbmZpZ3VyZS5hYzoK
CldlYkNvcmU6CgoyMDA5LTA2LTA4ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KCiAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQxNQogICAgICAgIFtHVEtdW0FUS10gUGxlYXNl
IGltcGxlbWVudCBzdXBwb3J0IGZvciBnZXRfdGV4dF9hdF9vZmZzZXQKCiAgICAgICAgVXNlIEdh
aWxVdGlsVGV4dCBpbnN0ZWFkIG9mIG15IGNyYXBweSBwYXJ0aWFsIHJlaW1wbGVtZW50YXRpb24g
b2YKICAgICAgICBpdC4gVGhpcyBzaG91bGQgYWRkIHN1cHBvcnQgZm9yIExJTkUgYm91bmRhcmll
cyB0b28sIGFsdGhvdWdoIGl0J3MKICAgICAgICBtb3N0bHkgdW50ZXN0ZWQgZm9yIG5vdy4KCiAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5j
cHA6CiAgICAgICAgKGdldEdhaWxUZXh0VXRpbEZvckF0ayk6CiAgICAgICAgKHdlYmtpdF9hY2Nl
c3NpYmxlX3RleHRfZ2V0X3RleHRfYWZ0ZXJfb2Zmc2V0KToKICAgICAgICAod2Via2l0X2FjY2Vz
c2libGVfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQpOgoKV2ViS2l0L2d0azoKCjIwMDktMDYtMDgg
IFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI1NDE1CiAgICAgICAgW0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9y
IGdldF90ZXh0X2F0X29mZnNldAoKICAgICAgICBVcGRhdGUgdGVzdCBmb3IgbmV3IGltcGxlbWVu
dGF0aW9uIChpdCBmaXhlcyB0d28gYnVncyBhbmQgYWRkcwogICAgICAgIGFjdHVhbCBpbXBsZW1l
bnRhdGlvbnMgZm9yIExJTkUgYm91bmRhcmllcykuCgogICAgICAgICogdGVzdHMvdGVzdGF0ay5j
OgogICAgICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0X3RleHRfYXRfb2Zmc2V0KToKLS0tCiBDaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysK
IEdOVW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg
MiArCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMTYgKysKIC4uLi9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwICAgICAg
ICAgIHwgIDIxMSArKy0tLS0tLS0tLS0tLS0tLS0tLQogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrCiBXZWJLaXQvZ3RrL3Rlc3RzL3Rl
c3RhdGsuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKy0KIGNvbmZpZ3VyZS5hYyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNSArCiA3IGZpbGVzIGNo
YW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDIwNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9D
aGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMTk0NmQ1Ni4uZjQwNGYwYSAxMDA2NDQKLS0tIGEv
Q2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDA5LTA2LTA4ICBY
YW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjU0MTUKKyAgICAgICAgW0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQg
Zm9yIGdldF90ZXh0X2F0X29mZnNldAorCisgICAgICAgIEFkZCBuZXcgZGVwZW5kZW5jeSBvbiB0
aGUgR2FpbCB1dGlscyBsaWJyYXJ5LCBuZWVkZWQgZm9yIG91ciBhMTF5CisgICAgICAgIGltcGxl
bWVudGF0aW9uLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogY29uZmln
dXJlLmFjOgorCiAyMDA5LTA1LTI5ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbiBBbG9uem8uCmRpZmYgLS1naXQgYS9HTlVt
YWtlZmlsZS5hbSBiL0dOVW1ha2VmaWxlLmFtCmluZGV4IGM4N2VlNDkuLjcyMmU0NjcgMTAwNjQ0
Ci0tLSBhL0dOVW1ha2VmaWxlLmFtCisrKyBiL0dOVW1ha2VmaWxlLmFtCkBAIC04NCw2ICs4NCw3
IEBAIGNvcmVraXRfY2ZsYWdzICs9IFwKIAktZm5vLXN0cmljdC1hbGlhc2luZyBcCiAJJChDT1ZF
UkFHRV9DRkxBR1MpIFwKIAkkKEVOQ0hBTlRfQ0ZMQUdTKSBcCisJJChHQUlMX0NGTEFHUykgXAog
CSQoR0VPQ0xVRV9DRkxBR1MpIFwKIAkkKEdMSUJfQ0ZMQUdTKSBcCiAJJChHTk9NRUtFWVJJTkdf
Q0ZMQUdTKSBcCkBAIC0yNDMsNiArMjQ0LDcgQEAgbGlid2Via2l0XzFfMF9sYV9MSUJBREQgPSBc
CiAJJChDT1ZFUkFHRV9MREZMQUdTKSBcCiAJJChFTkNIQU5UX0xJQlMpIFwKIAkkKEZSRUVUWVBF
X0xJQlMpIFwKKwkkKEdBSUxfTElCUykgXAogCSQoR0VPQ0xVRV9MSUJTKSBcCiAJJChHTElCX0xJ
QlMpIFwKIAkkKEdOT01FS0VZUklOR19MSUJTKSBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDJjZjVlODYuLjAzMzQ3NTggMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTkgQEAKKzIwMDktMDYtMDggIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQxNQorICAgICAgICBbR1RLXVtBVEtdIFBsZWFz
ZSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgZ2V0X3RleHRfYXRfb2Zmc2V0CisKKyAgICAgICAgVXNl
IEdhaWxVdGlsVGV4dCBpbnN0ZWFkIG9mIG15IGNyYXBweSBwYXJ0aWFsIHJlaW1wbGVtZW50YXRp
b24gb2YKKyAgICAgICAgaXQuIFRoaXMgc2hvdWxkIGFkZCBzdXBwb3J0IGZvciBMSU5FIGJvdW5k
YXJpZXMgdG9vLCBhbHRob3VnaCBpdCdzCisgICAgICAgIG1vc3RseSB1bnRlc3RlZCBmb3Igbm93
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJBdGsuY3BwOgorICAgICAgICAoZ2V0R2FpbFRleHRVdGlsRm9yQXRrKToKKyAgICAgICAgKHdl
YmtpdF9hY2Nlc3NpYmxlX3RleHRfZ2V0X3RleHRfYWZ0ZXJfb2Zmc2V0KToKKyAgICAgICAgKHdl
YmtpdF9hY2Nlc3NpYmxlX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0KToKKwogMjAwOS0wNi0wNyAg
RGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNh
bSBXZWluaWcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCmluZGV4IDE0MWQ1NjEuLmU3MGFhYTAgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJBdGsuY3BwCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJBdGsuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8YXRrL2F0
ay5oPgogI2luY2x1ZGUgPGdsaWIuaD4KICNpbmNsdWRlIDxnbGliL2dwcmludGYuaD4KKyNpbmNs
dWRlIDxsaWJnYWlsLXV0aWwvZ2FpbC11dGlsLmg+CiAjaW5jbHVkZSA8cGFuZ28vcGFuZ28uaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC00ODIsMjI1ICs0ODMsMzkgQEAgc3RhdGlj
IGdjaGFyKiB3ZWJraXRfYWNjZXNzaWJsZV90ZXh0X2dldF90ZXh0KEF0a1RleHQqIHRleHQsIGdp
bnQgc3RhcnRPZmZzZXQsIGcKICAgICByZXR1cm4gZ19zdHJkdXAocmV0LnV0ZjgoKS5kYXRhKCkp
OwogfQogCi1lbnVtIEdldFRleHRGdW5jdGlvblR5cGUgewotICAgIEFmdGVyT2Zmc2V0LAotICAg
IEF0T2Zmc2V0LAotICAgIEJlZm9yZU9mZnNldAotfTsKLQotdHlwZWRlZiBib29sICgqaXNDaGFy
YWN0ZXJBdHRyaWJ1dGUpIChQYW5nb0xvZ0F0dHIqIGF0dHIpOwotCi1zdGF0aWMgaW5saW5lIGJv
b2wgaXNXb3JkU3RhcnQoUGFuZ29Mb2dBdHRyKiBhdHRyKQotewotICAgIHJldHVybiBhdHRyLT5p
c193b3JkX3N0YXJ0OwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNXb3JkRW5kKFBhbmdvTG9n
QXR0ciogYXR0cikKLXsKLSAgICByZXR1cm4gYXR0ci0+aXNfd29yZF9lbmQ7Ci19Ci0KLXN0YXRp
YyBpbmxpbmUgYm9vbCBpc1NlbnRlbmNlU3RhcnQoUGFuZ29Mb2dBdHRyKiBhdHRyKQotewotICAg
IHJldHVybiBhdHRyLT5pc19zZW50ZW5jZV9zdGFydDsKLX0KLQotc3RhdGljIGlubGluZSBib29s
IGlzU2VudGVuY2VFbmQoUGFuZ29Mb2dBdHRyKiBhdHRyKQotewotICAgIHJldHVybiBhdHRyLT5p
c19zZW50ZW5jZV9lbmQ7Ci19Ci0KLWVudW0gRGlyZWN0aW9uIHsKLSAgICBEaXJlY3Rpb25Gb3J3
YXJkLAotICAgIERpcmVjdGlvbkJhY2t3YXJkcwotfTsKLQotc3RhdGljIGJvb2wgZmluZENoYXJh
Y3RlckF0dHJpYnV0ZShpc0NoYXJhY3RlckF0dHJpYnV0ZSBwcmVkaWNhdGVGdW5jdGlvbiwgUGFu
Z29Mb2dBdHRyKiBhdHRyaWJ1dGVzLCBEaXJlY3Rpb24gZGlyZWN0aW9uLCBpbnQgc3RhcnRPZmZz
ZXQsIGludCBhdHRyc0xlbmd0aCwgaW50KiByZXN1bHRPZmZzZXQpCi17Ci0gICAgaW50IGFkdmFu
Y2VCeSA9IGRpcmVjdGlvbiA9PSBEaXJlY3Rpb25Gb3J3YXJkID8gMSA6IC0xOwotCi0gICAgKnJl
c3VsdE9mZnNldCA9IC0xOwotCi0gICAgZm9yIChpbnQgaSA9IHN0YXJ0T2Zmc2V0OyBpID49IDAg
JiYgaSA8IGF0dHJzTGVuZ3RoOyBpICs9IGFkdmFuY2VCeSkgewotICAgICAgICBpZiAocHJlZGlj
YXRlRnVuY3Rpb24oYXR0cmlidXRlcyArIGkpKSB7Ci0gICAgICAgICAgICAqcmVzdWx0T2Zmc2V0
ID0gaTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAg
cmV0dXJuIGZhbHNlOwotfQotCi1zdGF0aWMgYm9vbCBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlU2tp
cChpc0NoYXJhY3RlckF0dHJpYnV0ZSBwcmVkaWNhdGVGdW5jdGlvbiwgdW5zaWduZWQgc2tpcCwg
UGFuZ29Mb2dBdHRyKiBhdHRyaWJ1dGVzLCBEaXJlY3Rpb24gZGlyZWN0aW9uLCBpbnQgc3RhcnRP
ZmZzZXQsIGludCBhdHRyc0xlbmd0aCwgaW50KiByZXN1bHRPZmZzZXQpCitzdGF0aWMgR2FpbFRl
eHRVdGlsKiBnZXRHYWlsVGV4dFV0aWxGb3JBdGsoQXRrVGV4dCogdGV4dE9iamVjdCkKIHsKLSAg
ICBpbnQgdG1wT2Zmc2V0OworICAgIGdwb2ludGVyIGRhdGEgPSBnX29iamVjdF9nZXRfZGF0YShH
X09CSkVDVCh0ZXh0T2JqZWN0KSwgIndlYmtpdC1hY2Nlc3NpYmxlLWdhaWwtdGV4dC11dGlsIik7
CisgICAgaWYgKGRhdGEpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxHYWlsVGV4dFV0aWwq
PihkYXRhKTsKIAotICAgIGJvb2wgcmV0VmFsdWUgPSBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlKHBy
ZWRpY2F0ZUZ1bmN0aW9uLCBhdHRyaWJ1dGVzLCBkaXJlY3Rpb24sIHN0YXJ0T2Zmc2V0LCBhdHRy
c0xlbmd0aCwgJnRtcE9mZnNldCk7Ci0gICAgaWYgKHNraXAgPT0gMCkgewotICAgICAgICAqcmVz
dWx0T2Zmc2V0ID0gdG1wT2Zmc2V0OwotICAgICAgICByZXR1cm4gcmV0VmFsdWU7Ci0gICAgfQot
Ci0gICAgaWYgKGRpcmVjdGlvbiA9PSBEaXJlY3Rpb25Gb3J3YXJkKQotICAgICAgICB0bXBPZmZz
ZXQrKzsKLSAgICBlbHNlCi0gICAgICAgIHRtcE9mZnNldC0tOwotCi0gICAgcmV0dXJuIGZpbmRD
aGFyYWN0ZXJBdHRyaWJ1dGVTa2lwKHByZWRpY2F0ZUZ1bmN0aW9uLCBza2lwIC0gMSwgYXR0cmli
dXRlcywgZGlyZWN0aW9uLCB0bXBPZmZzZXQsIGF0dHJzTGVuZ3RoLCByZXN1bHRPZmZzZXQpOwot
fQotCi1zdGF0aWMgaXNDaGFyYWN0ZXJBdHRyaWJ1dGUgb3Bwb3NpdGVQcmVkaWNhdGUoaXNDaGFy
YWN0ZXJBdHRyaWJ1dGUgcHJlZGljYXRlKQotewotICAgIGlmIChwcmVkaWNhdGUgPT0gaXNXb3Jk
U3RhcnQpCi0gICAgICAgIHJldHVybiBpc1dvcmRFbmQ7Ci0gICAgaWYgKHByZWRpY2F0ZSA9PSBp
c1dvcmRFbmQpCi0gICAgICAgIHJldHVybiBpc1dvcmRTdGFydDsKLSAgICBpZiAocHJlZGljYXRl
ID09IGlzU2VudGVuY2VTdGFydCkKLSAgICAgICAgcmV0dXJuIGlzU2VudGVuY2VFbmQ7Ci0gICAg
aWYgKHByZWRpY2F0ZSA9PSBpc1NlbnRlbmNlRW5kKQotICAgICAgICByZXR1cm4gaXNTZW50ZW5j
ZVN0YXJ0OwotCi0gICAgZ19hc3NlcnRfbm90X3JlYWNoZWQoKTsKLX0KLQotc3RhdGljIGdjaGFy
KiBnZXRUZXh0SGVscGVyKEdldFRleHRGdW5jdGlvblR5cGUgZ2V0VGV4dEZ1bmN0aW9uVHlwZSwg
QXRrVGV4dCogdGV4dE9iamVjdCwgZ2ludCBvZmZzZXQsIEF0a1RleHRCb3VuZGFyeSBib3VuZGFy
eVR5cGUsIGdpbnQqIHN0YXJ0T2Zmc2V0LCBnaW50KiBlbmRPZmZzZXQpCi17Ci0gICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogY29yZU9iamVjdCA9IGNvcmUodGV4dE9iamVjdCk7CiAgICAgU3RyaW5n
IHRleHQ7Ci0KLSAgICAqc3RhcnRPZmZzZXQgPSAqZW5kT2Zmc2V0ID0gLTE7CisgICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogY29yZU9iamVjdCA9IGNvcmUodGV4dE9iamVjdCk7CiAKICAgICBpZiAo
Y29yZU9iamVjdC0+aXNUZXh0Q29udHJvbCgpKQogICAgICAgICB0ZXh0ID0gY29yZU9iamVjdC0+
dGV4dCgpOwogICAgIGVsc2UKICAgICAgICAgdGV4dCA9IGNvcmVPYmplY3QtPnRleHRVbmRlckVs
ZW1lbnQoKTsKIAotICAgIGNoYXIqIGNUZXh0ID0gZ19zdHJkdXAodGV4dC51dGY4KCkuZGF0YSgp
KTsKLSAgICBnbG9uZyB0ZXh0TGVuZ3RoID0gZ191dGY4X3N0cmxlbihjVGV4dCwgLTEpOwotCi0g
ICAgaWYgKGJvdW5kYXJ5VHlwZSA9PSBBVEtfVEVYVF9CT1VOREFSWV9DSEFSKSB7Ci0gICAgICAg
IGludCBlZmZlY3RpdmVPZmZzZXQ7Ci0KLSAgICAgICAgc3dpdGNoIChnZXRUZXh0RnVuY3Rpb25U
eXBlKSB7Ci0gICAgICAgIGNhc2UgQWZ0ZXJPZmZzZXQ6Ci0gICAgICAgICAgICBlZmZlY3RpdmVP
ZmZzZXQgPSBvZmZzZXQgKyAxOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQmVm
b3JlT2Zmc2V0OgotICAgICAgICAgICAgZWZmZWN0aXZlT2Zmc2V0ID0gb2Zmc2V0IC0gMTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEF0T2Zmc2V0OgotICAgICAgICAgICAgZWZm
ZWN0aXZlT2Zmc2V0ID0gb2Zmc2V0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1
bHQ6Ci0gICAgICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgKnN0YXJ0T2Zmc2V0ID0gZWZmZWN0aXZlT2Zmc2V0OwotICAgICAgICAqZW5kT2Zmc2V0
ID0gZWZmZWN0aXZlT2Zmc2V0ICsgMTsKLSAgICB9IGVsc2UgewotICAgICAgICBQYW5nb0xvZ0F0
dHIqIGF0dHJzID0gZ19uZXcoUGFuZ29Mb2dBdHRyLCB0ZXh0TGVuZ3RoICsgMSk7Ci0gICAgICAg
IFBhbmdvTGFuZ3VhZ2UqIGxhbmd1YWdlID0gcGFuZ29fbGFuZ3VhZ2VfZ2V0X2RlZmF1bHQoKTsK
LSAgICAgICAgcGFuZ29fZ2V0X2xvZ19hdHRycyhjVGV4dCwgLTEsIC0xLCBsYW5ndWFnZSwgYXR0
cnMsIHRleHRMZW5ndGggKyAxKTsKLSAgICAgIAotICAgICAgICBpc0NoYXJhY3RlckF0dHJpYnV0
ZSBwcmVkaWNhdGU7Ci0KLSAgICAgICAgaWYgKGJvdW5kYXJ5VHlwZSA9PSBBVEtfVEVYVF9CT1VO
REFSWV9XT1JEX1NUQVJUKQotICAgICAgICAgICAgcHJlZGljYXRlID0gaXNXb3JkU3RhcnQ7Ci0g
ICAgICAgIGVsc2UgaWYgKGJvdW5kYXJ5VHlwZSA9PSBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX0VO
RCkKLSAgICAgICAgICAgIHByZWRpY2F0ZSA9IGlzV29yZEVuZDsKLSAgICAgICAgZWxzZSBpZiAo
Ym91bmRhcnlUeXBlID09IEFUS19URVhUX0JPVU5EQVJZX1NFTlRFTkNFX1NUQVJUKQotICAgICAg
ICAgICAgcHJlZGljYXRlID0gaXNTZW50ZW5jZVN0YXJ0OwotICAgICAgICBlbHNlIGlmIChib3Vu
ZGFyeVR5cGUgPT0gQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0VfRU5EKQotICAgICAgICAgICAg
cHJlZGljYXRlID0gaXNTZW50ZW5jZUVuZDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgLy8g
RklYTUU6IGJhaWwgb3V0IGZvciBub3csIHNpbmNlIHdlIGFyZSBtaXNzaW5nIHRoZSBMSU5FCi0g
ICAgICAgICAgICAvLyBib3VuZGFyeSBpbXBsZW1lbnRhdGlvbnMKLSAgICAgICAgICAgIGdvdG8g
b3V0OwotCi0gICAgICAgIHN3aXRjaCAoYm91bmRhcnlUeXBlKSB7Ci0gICAgICAgIGNhc2UgQVRL
X1RFWFRfQk9VTkRBUllfV09SRF9TVEFSVDoKLSAgICAgICAgY2FzZSBBVEtfVEVYVF9CT1VOREFS
WV9TRU5URU5DRV9TVEFSVDoKLSAgICAgICAgICAgIGlmIChnZXRUZXh0RnVuY3Rpb25UeXBlID09
IEFmdGVyT2Zmc2V0KSB7Ci0gICAgICAgICAgICAgICAgLy8gVGFrZSB0aGUgaXRlbSBhZnRlciB0
aGUgY3VycmVudCBvbmUgaW4gYW55IGNhc2UKLSAgICAgICAgICAgICAgICBmaW5kQ2hhcmFjdGVy
QXR0cmlidXRlKHByZWRpY2F0ZSwgYXR0cnMsIERpcmVjdGlvbkZvcndhcmQsIG9mZnNldCArIDEs
IHRleHRMZW5ndGggKyAxLCBzdGFydE9mZnNldCk7Ci0gICAgICAgICAgICAgICAgZmluZENoYXJh
Y3RlckF0dHJpYnV0ZVNraXAocHJlZGljYXRlLCAxLCBhdHRycywgRGlyZWN0aW9uRm9yd2FyZCwg
b2Zmc2V0ICsgMSwgdGV4dExlbmd0aCArIDEsIGVuZE9mZnNldCk7Ci0gICAgICAgICAgICB9IGVs
c2UgaWYgKGdldFRleHRGdW5jdGlvblR5cGUgPT0gQXRPZmZzZXQpIHsKLSAgICAgICAgICAgICAg
ICAvLyBUYWtlIHRoZSBpdGVtIGF0IHBvaW50IGlmIHRoZSBvZmZzZXQgaXMgaW4gYW4gaXRlbSBv
cgotICAgICAgICAgICAgICAgIC8vIHRoZSBpdGVtIGJlZm9yZSBvdGhlcndpc2UKLSAgICAgICAg
ICAgICAgICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlKHByZWRpY2F0ZSwgYXR0cnMsIERpcmVjdGlv
bkJhY2t3YXJkcywgb2Zmc2V0LCB0ZXh0TGVuZ3RoICsgMSwgc3RhcnRPZmZzZXQpOwotICAgICAg
ICAgICAgICAgIGlmICghZmluZENoYXJhY3RlckF0dHJpYnV0ZShwcmVkaWNhdGUsIGF0dHJzLCBE
aXJlY3Rpb25Gb3J3YXJkLCBvZmZzZXQgKyAxLCB0ZXh0TGVuZ3RoICsgMSwgZW5kT2Zmc2V0KSkg
ewotICAgICAgICAgICAgICAgICAgICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlKG9wcG9zaXRlUHJl
ZGljYXRlKHByZWRpY2F0ZSksIGF0dHJzLCBEaXJlY3Rpb25Gb3J3YXJkLCBvZmZzZXQgKyAxLCB0
ZXh0TGVuZ3RoICsgMSwgZW5kT2Zmc2V0KTsKLSAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2Fu
dCB0byBpbmNsdWRlIHRoZSBhY3R1YWwgZW5kIGJvdW5kYXJ5Ci0gICAgICAgICAgICAgICAgICAg
IC8vIGhlcmUsIHNpbmNlICpfU1RBUlQgd291bGQgaGF2ZSBkb25lIHNvLiBBZHZhbmNlCi0gICAg
ICAgICAgICAgICAgICAgIC8vIHVudGlsIHRoZSBlbmQgb2YgdGhlIHN0cmluZyBpZiBwb3NzaWJs
ZQotICAgICAgICAgICAgICAgICAgICBpZiAoKmVuZE9mZnNldCAhPSAtMSAmJiAqZW5kT2Zmc2V0
IDwgdGV4dExlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgICAgICplbmRPZmZzZXQgPSB0ZXh0
TGVuZ3RoOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgLy8gVGFrZSB0aGUgaXRlbSBiZWZvcmUgdGhlIHBvaW50IGlmIHRoZSBvZmZzZXQg
aXMgaW4gYW4KLSAgICAgICAgICAgICAgICAvLyBpdGVtLCBvciB0aGUgdGhlIGl0ZW0gYmVmb3Jl
IHRoYXQgb25lIG90aGVyd2lzZQotICAgICAgICAgICAgICAgIGZpbmRDaGFyYWN0ZXJBdHRyaWJ1
dGVTa2lwKHByZWRpY2F0ZSwgMSwgYXR0cnMsIERpcmVjdGlvbkJhY2t3YXJkcywgb2Zmc2V0LCB0
ZXh0TGVuZ3RoICsgMSwgc3RhcnRPZmZzZXQpOwotICAgICAgICAgICAgICAgIGZpbmRDaGFyYWN0
ZXJBdHRyaWJ1dGUocHJlZGljYXRlLCBhdHRycywgRGlyZWN0aW9uQmFja3dhcmRzLCBvZmZzZXQs
IHRleHRMZW5ndGggKyAxLCBlbmRPZmZzZXQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQVRLX1RFWFRfQk9VTkRBUllfV09SRF9FTkQ6Ci0gICAgICAg
IGNhc2UgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0VfRU5EOgotICAgICAgICAgICAgaWYgKGdl
dFRleHRGdW5jdGlvblR5cGUgPT0gQWZ0ZXJPZmZzZXQpIHsKLSAgICAgICAgICAgICAgICAvLyBU
YWtlIHRoZSBpdGVtIGFmdGVyIHRoZSBjdXJyZW50IGl0ZW0gaWYgdGhlIG9mZnNldCBpcwotICAg
ICAgICAgICAgICAgIC8vIGluIGEgaXRlbSwgb3IgdGhlIGl0ZW0gYWZ0ZXIgdGhhdCBvdGhlcndp
c2UKLSAgICAgICAgICAgICAgICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlKHByZWRpY2F0ZSwgYXR0
cnMsIERpcmVjdGlvbkZvcndhcmQsIG9mZnNldCwgdGV4dExlbmd0aCArIDEsIHN0YXJ0T2Zmc2V0
KTsKLSAgICAgICAgICAgICAgICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlU2tpcChwcmVkaWNhdGUs
IDEsIGF0dHJzLCBEaXJlY3Rpb25Gb3J3YXJkLCBvZmZzZXQsIHRleHRMZW5ndGggKyAxLCBlbmRP
ZmZzZXQpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChnZXRUZXh0RnVuY3Rpb25UeXBlID09IEF0
T2Zmc2V0KSB7Ci0gICAgICAgICAgICAgICAgLy8gVGFrZSB0aGUgaXRlbSBhdCBwb2ludCBpZiB0
aGUgb2Zmc2V0IGlzIGluIGEgaXRlbSBvcgotICAgICAgICAgICAgICAgIC8vIHRoZSBpdGVtIGFm
dGVyIG90aGVyd2lzZQotICAgICAgICAgICAgICAgIGlmICghZmluZENoYXJhY3RlckF0dHJpYnV0
ZShwcmVkaWNhdGUsIGF0dHJzLCBEaXJlY3Rpb25CYWNrd2FyZHMsIG9mZnNldCwgdGV4dExlbmd0
aCArIDEsIHN0YXJ0T2Zmc2V0KSkKLSAgICAgICAgICAgICAgICAgICAgLy8gTm8gbWF0Y2ggYmVm
b3JlIG9mZnNldCwgdGFrZSB0aGUgZmlyc3Qgb3Bwb3NpdGUgbWF0Y2ggYXQgb3IgYmVmb3JlIHRo
ZSBvZmZzZXQKLSAgICAgICAgICAgICAgICAgICAgZmluZENoYXJhY3RlckF0dHJpYnV0ZShvcHBv
c2l0ZVByZWRpY2F0ZShwcmVkaWNhdGUpLCBhdHRycywgRGlyZWN0aW9uQmFja3dhcmRzLCBvZmZz
ZXQsIHRleHRMZW5ndGggKyAxLCBzdGFydE9mZnNldCk7Ci0gICAgICAgICAgICAgICAgZmluZENo
YXJhY3RlckF0dHJpYnV0ZShwcmVkaWNhdGUsIGF0dHJzLCBEaXJlY3Rpb25Gb3J3YXJkLCBvZmZz
ZXQgKyAxLCB0ZXh0TGVuZ3RoICsgMSwgZW5kT2Zmc2V0KTsKLSAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgLy8gVGFrZSB0aGUgaXRlbSBiZWZvcmUgdGhlIHBvaW50IGluIGFu
eSBjYXNlCi0gICAgICAgICAgICAgICAgaWYgKCFmaW5kQ2hhcmFjdGVyQXR0cmlidXRlU2tpcChw
cmVkaWNhdGUsIDEsIGF0dHJzLCBEaXJlY3Rpb25CYWNrd2FyZHMsIG9mZnNldCwgdGV4dExlbmd0
aCArIDEsIHN0YXJ0T2Zmc2V0KSkgewotICAgICAgICAgICAgICAgICAgICBpbnQgdG1wT2Zmc2V0
OwotICAgICAgICAgICAgICAgICAgICAvLyBObyBtYXRjaCBiZWZvcmUgb2Zmc2V0LCB0YWtlIHRo
ZSBmaXJzdCBvcHBvc2l0ZSBtYXRjaCBhdCBvciBiZWZvcmUgdGhlIG9mZnNldAotICAgICAgICAg
ICAgICAgICAgICBmaW5kQ2hhcmFjdGVyQXR0cmlidXRlKHByZWRpY2F0ZSwgYXR0cnMsIERpcmVj
dGlvbkJhY2t3YXJkcywgb2Zmc2V0LCB0ZXh0TGVuZ3RoICsgMSwgJnRtcE9mZnNldCk7Ci0gICAg
ICAgICAgICAgICAgICAgIGZpbmRDaGFyYWN0ZXJBdHRyaWJ1dGUob3Bwb3NpdGVQcmVkaWNhdGUo
cHJlZGljYXRlKSwgYXR0cnMsIERpcmVjdGlvbkJhY2t3YXJkcywgdG1wT2Zmc2V0IC0gMSwgdGV4
dExlbmd0aCArIDEsIHN0YXJ0T2Zmc2V0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgZmluZENoYXJhY3RlckF0dHJpYnV0ZShwcmVkaWNhdGUsIGF0dHJzLCBEaXJlY3Rpb25C
YWNrd2FyZHMsIG9mZnNldCwgdGV4dExlbmd0aCArIDEsIGVuZE9mZnNldCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGdf
YXNzZXJ0X25vdF9yZWFjaGVkKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBnX2ZyZWUoYXR0cnMp
OwotICAgIH0KLQotIG91dDoKLSAgICBpZiAoKnN0YXJ0T2Zmc2V0IDwgMCB8fCAqZW5kT2Zmc2V0
IDwgMCkgewotICAgICAgICAqc3RhcnRPZmZzZXQgPSAqZW5kT2Zmc2V0ID0gMDsKLSAgICAgICAg
cmV0dXJuIGdfc3RyZHVwKCIiKTsKLSAgICB9Ci0KLSAgICBjaGFyKiBzdGFydCA9IGdfdXRmOF9v
ZmZzZXRfdG9fcG9pbnRlcihjVGV4dCwgKGdsb25nKSpzdGFydE9mZnNldCk7Ci0gICAgY2hhciog
ZW5kID0gZ191dGY4X29mZnNldF90b19wb2ludGVyKGNUZXh0LCAoZ2xvbmcpKmVuZE9mZnNldCk7
Ci0gICAgY2hhciogcmVzdWx0VGV4dCA9IGdfc3RybmR1cChzdGFydCwgZW5kIC0gc3RhcnQpOwot
ICAgIGdfZnJlZShjVGV4dCk7Ci0gICAgcmV0dXJuIHJlc3VsdFRleHQ7CisgICAgR2FpbFRleHRV
dGlsKiBnYWlsVGV4dFV0aWwgPSBnYWlsX3RleHRfdXRpbF9uZXcoKTsKKyAgICBnYWlsX3RleHRf
dXRpbF90ZXh0X3NldHVwKGdhaWxUZXh0VXRpbCwgdGV4dC51dGY4KCkuZGF0YSgpKTsKKyAgICBn
X29iamVjdF9zZXRfZGF0YV9mdWxsKEdfT0JKRUNUKHRleHRPYmplY3QpLCAid2Via2l0LWFjY2Vz
c2libGUtZ2FpbC10ZXh0LXV0aWwiLCBnYWlsVGV4dFV0aWwsIGdfb2JqZWN0X3VucmVmKTsKKyAg
ICByZXR1cm4gZ2FpbFRleHRVdGlsOwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYmtpdF9hY2Nlc3Np
YmxlX3RleHRfZ2V0X3RleHRfYWZ0ZXJfb2Zmc2V0KEF0a1RleHQqIHRleHQsIGdpbnQgb2Zmc2V0
LCBBdGtUZXh0Qm91bmRhcnkgYm91bmRhcnlUeXBlLCBnaW50KiBzdGFydE9mZnNldCwgZ2ludCog
ZW5kT2Zmc2V0KQogewotICAgIHJldHVybiBnZXRUZXh0SGVscGVyKEFmdGVyT2Zmc2V0LCB0ZXh0
LCBvZmZzZXQsIGJvdW5kYXJ5VHlwZSwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7CisgICAgcmV0
dXJuIGdhaWxfdGV4dF91dGlsX2dldF90ZXh0KGdldEdhaWxUZXh0VXRpbEZvckF0ayh0ZXh0KSwg
TlVMTCwgR0FJTF9BRlRFUl9PRkZTRVQsIGJvdW5kYXJ5VHlwZSwgb2Zmc2V0LCBzdGFydE9mZnNl
dCwgZW5kT2Zmc2V0KTsKIH0KIAogc3RhdGljIGdjaGFyKiB3ZWJraXRfYWNjZXNzaWJsZV90ZXh0
X2dldF90ZXh0X2F0X29mZnNldChBdGtUZXh0KiB0ZXh0LCBnaW50IG9mZnNldCwgQXRrVGV4dEJv
dW5kYXJ5IGJvdW5kYXJ5VHlwZSwgZ2ludCogc3RhcnRPZmZzZXQsIGdpbnQqIGVuZE9mZnNldCkK
IHsKLSAgICByZXR1cm4gZ2V0VGV4dEhlbHBlcihBdE9mZnNldCwgdGV4dCwgb2Zmc2V0LCBib3Vu
ZGFyeVR5cGUsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOworICAgIHJldHVybiBnYWlsX3RleHRf
dXRpbF9nZXRfdGV4dChnZXRHYWlsVGV4dFV0aWxGb3JBdGsodGV4dCksIE5VTEwsIEdBSUxfQVRf
T0ZGU0VULCBib3VuZGFyeVR5cGUsIG9mZnNldCwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7CiB9
CiAKIHN0YXRpYyBnY2hhciogd2Via2l0X2FjY2Vzc2libGVfdGV4dF9nZXRfdGV4dF9iZWZvcmVf
b2Zmc2V0KEF0a1RleHQqIHRleHQsIGdpbnQgb2Zmc2V0LCBBdGtUZXh0Qm91bmRhcnkgYm91bmRh
cnlUeXBlLCBnaW50KiBzdGFydE9mZnNldCwgZ2ludCogZW5kT2Zmc2V0KQogewotICAgIHJldHVy
biBnZXRUZXh0SGVscGVyKEJlZm9yZU9mZnNldCwgdGV4dCwgb2Zmc2V0LCBib3VuZGFyeVR5cGUs
IHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOworICAgIHJldHVybiBnYWlsX3RleHRfdXRpbF9nZXRf
dGV4dChnZXRHYWlsVGV4dFV0aWxGb3JBdGsodGV4dCksIE5VTEwsIEdBSUxfQkVGT1JFX09GRlNF
VCwgYm91bmRhcnlUeXBlLCBvZmZzZXQsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOwogfQogCiBz
dGF0aWMgZ3VuaWNoYXIgd2Via2l0X2FjY2Vzc2libGVfdGV4dF9nZXRfY2hhcmFjdGVyX2F0X29m
ZnNldChBdGtUZXh0KiB0ZXh0LCBnaW50IG9mZnNldCkKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsv
Q2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYTI2Y2RhNi4uNjY0NThiMSAx
MDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0wNi0wOCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxp
YS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDE1CisgICAgICAgIFtH
VEtdW0FUS10gUGxlYXNlIGltcGxlbWVudCBzdXBwb3J0IGZvciBnZXRfdGV4dF9hdF9vZmZzZXQK
KworICAgICAgICBVcGRhdGUgdGVzdCBmb3IgbmV3IGltcGxlbWVudGF0aW9uIChpdCBmaXhlcyB0
d28gYnVncyBhbmQgYWRkcworICAgICAgICBhY3R1YWwgaW1wbGVtZW50YXRpb25zIGZvciBMSU5F
IGJvdW5kYXJpZXMpLgorCisgICAgICAgICogdGVzdHMvdGVzdGF0ay5jOgorICAgICAgICAodGVz
dF93ZWJraXRfYXRrX2dldF90ZXh0X2F0X29mZnNldCk6CisKIDIwMDktMDYtMDYgIEd1c3Rhdm8g
Tm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFu
IExvcGV6LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMgYi9XZWJLaXQv
Z3RrL3Rlc3RzL3Rlc3RhdGsuYwppbmRleCAxNjZhOGUyLi42MWVhZTYwIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYworKysgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsu
YwpAQCAtMTQ4LDcgKzE0OCw3IEBAIHN0YXRpYyB2b2lkIHRlc3Rfd2Via2l0X2F0a19nZXRfdGV4
dF9hdF9vZmZzZXQodm9pZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUsICIgYSIsIDcs
IDkpOwogCiAgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0
X3RleHRfYWZ0ZXJfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX0VORCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQsICIgaXMiLCA0LCA3KTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQsICIgYSIsIDcsIDkpOwogCiAgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0
X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JE
X0VORCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU4LCAiIHRoaXJkIiwgNTcsIDYzKTsK
QEAgLTE5Miw3ICsxOTIsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3RleHRf
YXRfb2Zmc2V0KHZvaWQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAiIFRoaXMgaXMg
dGhlIHNlY29uZCBzZW50ZW5jZS4iLCAxNSwgNDQpOwogCiAgICAgdGVzdF9nZXRfdGV4dF9mdW5j
dGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYWZ0ZXJfb2Zmc2V0LCBBVEtfVEVYVF9C
T1VOREFSWV9TRU5URU5DRV9FTkQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAxNSwgIiBU
aGlzIGlzIHRoZSBzZWNvbmQgc2VudGVuY2UuIiwgMTUsIDQ0KTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDE1LCAiIEFuZCB0aGlzIHRoZSB0aGlyZC4iLCA0NCwgNjQpOwogCiAgICAgdGVz
dF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYmVmb3JlX29m
ZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0VfRU5ELAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTYsICJUaGlzIGlzIGEgdGVzdC4iLCAwLCAxNSk7CkBAIC0yMDYsMTUgKzIwNiwx
NiBAQCBzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3RleHRfYXRfb2Zmc2V0KHZvaWQp
CiAgICAgdGVzdF9nZXRfdGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRf
YmVmb3JlX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVOQ0VfRU5ELAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNDQsICIgVGhpcyBpcyB0aGUgc2Vjb25kIHNlbnRlbmNlLiIsIDE1
LCA0NCk7CiAKKyAgICAvKiBJdCdzIHRyaWNrIHRvIHRlc3QgdGhlc2UgcHJvcGVybHkgcmlnaHQg
bm93LCBzaW5jZSBvdXIgYTExeQorICAgICAgIGltcGxlbWVudGF0aW9uIHNwbGl0cyBkaWZmZXJl
bnQgbGluZXMgaW4gZGlmZmVyZW50IGExMXkKKyAgICAgICBpdGVtcyAqLwogICAgIC8qIEFUS19U
RVhUX0JPVU5EQVJZX0xJTkVfU1RBUlQgKi8KLSAgICAvKiBUT0RPICovCiAgICAgdGVzdF9nZXRf
dGV4dF9mdW5jdGlvbih0ZXh0X29iaiwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0LCBBVEtf
VEVYVF9CT1VOREFSWV9MSU5FX1NUQVJULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwg
IiIsIDAsIDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgIlRoaXMgaXMgYSB0ZXN0
LiBUaGlzIGlzIHRoZSBzZWNvbmQgc2VudGVuY2UuIEFuZCB0aGlzIHRoZSB0aGlyZC4iLCAwLCA2
NCk7CiAKICAgICAvKiBBVEtfVEVYVF9CT1VOREFSWV9MSU5FX0VORCAqLwotICAgIC8qIFRPRE8g
Ki8KICAgICB0ZXN0X2dldF90ZXh0X2Z1bmN0aW9uKHRleHRfb2JqLCBhdGtfdGV4dF9nZXRfdGV4
dF9hdF9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX0xJTkVfRU5ELAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMCwgIiIsIDAsIDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwg
IlRoaXMgaXMgYSB0ZXN0LiBUaGlzIGlzIHRoZSBzZWNvbmQgc2VudGVuY2UuIEFuZCB0aGlzIHRo
ZSB0aGlyZC4iLCAwLCA2NCk7CiAKICAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3KTsKIH0KZGlm
ZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCAyZWU4MjEwLi5jMGVl
Njc2IDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0xOTIs
NiArMTkyLDcgQEAgU1FMSVRFX1JFUVVJUkVEX1ZFUlNJT049My4wCiBHU1RSRUFNRVJfUkVRVUlS
RURfVkVSU0lPTj0wLjEwCiBHTk9NRV9LRVlSSU5HX1JFUVVJUkVEX1ZFUlNJT049Mi4yNi4wCiBF
TkNIQU5UX1JFUVVJUkVEX1ZFUlNJT049MC4yMgorR0FJTF9SRVFVSVJFRF9WRVJTSU9OPTEuOAog
CiAjIEF2YWlsYWJsZSBtb2R1bGVzCiAjCkBAIC0yMjAsNiArMjIxLDEwIEBAIFBLR19DSEVDS19N
T0RVTEVTKEVOQ0hBTlQsIGVuY2hhbnQgPj0gJEVOQ0hBTlRfUkVRVUlSRURfVkVSU0lPTikKIEFD
X1NVQlNUKEVOQ0hBTlRfQ0ZMQUdTKQogQUNfU1VCU1QoRU5DSEFOVF9MSUJTKQogCitQS0dfQ0hF
Q0tfTU9EVUxFUyhHQUlMLCBnYWlsID49ICRHQUlMX1JFUVVJUkVEX1ZFUlNJT04pCitBQ19TVUJT
VChHQUlMX0NGTEFHUykKK0FDX1NVQlNUKEdBSUxfTElCUykKKwogIyBjaGVjayBmb3IgdGFyZ2V0
LXNwZWNpZmljIGRlcGVuZGVuY2llcwogaWYgdGVzdCAiJHdpdGhfdGFyZ2V0IiA9ICJkaXJlY3Rm
YiI7IHRoZW4KICAgIFBLR19DSEVDS19NT0RVTEVTKENBSVJPLCBjYWlyby1kaXJlY3RmYiA+PSAk
Q0FJUk9fUkVRVUlSRURfVkVSU0lPTikKLS0gCjEuNi4zLjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31051</attachid>
            <date>2009-06-08 08:31:24 -0700</date>
            <delta_ts>2009-07-24 01:16:13 -0700</delta_ts>
            <desc>uselayout.patch</desc>
            <filename>uselayout.patch</filename>
            <type>text/plain</type>
            <size>5410</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBmMDBlN2JkMTQ4NDIxMDA5ZDIxNzhkYjgxNGM0ZWQ0Y2IyMGMxMDc0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBN
b24sIDggSnVuIDIwMDkgMTg6MjA6NTEgKzAzMDAKU3ViamVjdDogW1BBVENIXSAyMDA5LTA2LTA4
ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNTQxNQogICAgICAgIFtHVEtdW0FUS10gUGxlYXNlIGltcGxlbWVudCBzdXBwb3J0IGZv
ciBnZXRfdGV4dF9hdF9vZmZzZXQKCiAgICAgICAgUGFzcyBhIFBhbmdvTGF5b3V0IHRvIHRoZSBH
YWlsVGV4dFV0aWwgZnVuY3Rpb24gY2FsbHMuCgogICAgICAgIEl0J3MgbmVlZGVkIGZvciBMSU5F
IGJvdW5kYXJ5IGNhbGxzIHRvIHdvcmsgY29ycmVjdGx5LgoKICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcDoKICAgICAgICAodXBkYXRl
TGF5b3V0KToKICAgICAgICAoZ2V0UGFuZ29MYXlvdXRGb3JBdGspOgogICAgICAgICh3ZWJraXRf
YWNjZXNzaWJsZV90ZXh0X2dldF90ZXh0X2FmdGVyX29mZnNldCk6CiAgICAgICAgKHdlYmtpdF9h
Y2Nlc3NpYmxlX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0KToKLS0tCiBXZWJDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysrKysrKysKIC4uLi9n
dGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwICAgICAgICAgIHwgICA0MSArKysr
KysrKysrKysrKysrKystCiAyIGZpbGVzIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKyksIDMgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCAwMzM0NzU4Li42OTRmNTk1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtNSw2ICs1LDIzIEBACiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQxNQogICAgICAgICBbR1RLXVtB
VEtdIFBsZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgZ2V0X3RleHRfYXRfb2Zmc2V0CiAKKyAg
ICAgICAgUGFzcyBhIFBhbmdvTGF5b3V0IHRvIHRoZSBHYWlsVGV4dFV0aWwgZnVuY3Rpb24gY2Fs
bHMuCisKKyAgICAgICAgSXQncyBuZWVkZWQgZm9yIExJTkUgYm91bmRhcnkgY2FsbHMgdG8gd29y
ayBjb3JyZWN0bHkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckF0ay5jcHA6CisgICAgICAgICh1cGRhdGVMYXlvdXQpOgorICAgICAgICAo
Z2V0UGFuZ29MYXlvdXRGb3JBdGspOgorICAgICAgICAod2Via2l0X2FjY2Vzc2libGVfdGV4dF9n
ZXRfdGV4dF9hZnRlcl9vZmZzZXQpOgorICAgICAgICAod2Via2l0X2FjY2Vzc2libGVfdGV4dF9n
ZXRfdGV4dF9hdF9vZmZzZXQpOgorCisyMDA5LTA2LTA4ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdh
bGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MTUKKyAgICAgICAg
W0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGdldF90ZXh0X2F0X29mZnNl
dAorCiAgICAgICAgIFVzZSBHYWlsVXRpbFRleHQgaW5zdGVhZCBvZiBteSBjcmFwcHkgcGFydGlh
bCByZWltcGxlbWVudGF0aW9uIG9mCiAgICAgICAgIGl0LiBUaGlzIHNob3VsZCBhZGQgc3VwcG9y
dCBmb3IgTElORSBib3VuZGFyaWVzIHRvbywgYWx0aG91Z2ggaXQncwogICAgICAgICBtb3N0bHkg
dW50ZXN0ZWQgZm9yIG5vdy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsv
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKaW5kZXggZTcwYWFhMC4uYmRk
YWM5MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckF0ay5jcHAKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRl
ICJFZGl0b3IuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgor
I2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRl
ICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKQEAgLTUwMywxOSArNTA0
LDUzIEBAIHN0YXRpYyBHYWlsVGV4dFV0aWwqIGdldEdhaWxUZXh0VXRpbEZvckF0ayhBdGtUZXh0
KiB0ZXh0T2JqZWN0KQogICAgIHJldHVybiBnYWlsVGV4dFV0aWw7CiB9CiAKKy8vIFdlIGNhbiB1
c2UgdGhlIHNhbWUgY2FsbGJhY2sgZm9yIGJvdGggJ3N0eWxlLXNldCcgYW5kCisvLyAnZGlyZWN0
aW9uLWNoYW5nZWQnLCBzaW5jZSB3ZSBkb24ndCBjYXJlIGFib3V0IG5laXRoZXIgb2YgdGhlaXIK
Ky8vIHNlY29uZCBwYXJhbWV0ZXJzLgorc3RhdGljIHZvaWQgdXBkYXRlTGF5b3V0KEd0a1dpZGdl
dCogd2lkZ2V0LCBncG9pbnRlciBkdW1teSwgZ3BvaW50ZXIgdXNlckRhdGEpCit7CisgICBncG9p
bnRlciBkYXRhID0gZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QodXNlckRhdGEpLCAid2Via2l0
LWFjY2Vzc2libGUtcGFuZ28tbGF5b3V0Iik7CisgICBpZiAoIWRhdGEpCisgICAgICAgcmV0dXJu
OworCisgICBwYW5nb19sYXlvdXRfY29udGV4dF9jaGFuZ2VkKHN0YXRpY19jYXN0PFBhbmdvTGF5
b3V0Kj4oZGF0YSkpOworfQorCitzdGF0aWMgUGFuZ29MYXlvdXQqIGdldFBhbmdvTGF5b3V0Rm9y
QXRrKEF0a1RleHQqIHRleHRPYmplY3QpCit7CisgICAgZ3BvaW50ZXIgZGF0YSA9IGdfb2JqZWN0
X2dldF9kYXRhKEdfT0JKRUNUKHRleHRPYmplY3QpLCAid2Via2l0LWFjY2Vzc2libGUtcGFuZ28t
bGF5b3V0Iik7CisgICAgaWYgKGRhdGEpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQYW5n
b0xheW91dCo+KGRhdGEpOworCisgICAgU3RyaW5nIHRleHQ7CisgICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogY29yZU9iamVjdCA9IGNvcmUodGV4dE9iamVjdCk7CisKKyAgICBpZiAoY29yZU9iamVj
dC0+aXNUZXh0Q29udHJvbCgpKQorICAgICAgICB0ZXh0ID0gY29yZU9iamVjdC0+dGV4dCgpOwor
ICAgIGVsc2UKKyAgICAgICAgdGV4dCA9IGNvcmVPYmplY3QtPnRleHRVbmRlckVsZW1lbnQoKTsK
KworICAgIFBsYXRmb3JtV2lkZ2V0IHdlYlZpZXcgPSBjb3JlT2JqZWN0LT5kb2N1bWVudCgpLT52
aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1XaW5kb3coKTsKKyAgICBnX3NpZ25hbF9jb25u
ZWN0KHdlYlZpZXcsICJzdHlsZS1zZXQiLCBHX0NBTExCQUNLKHVwZGF0ZUxheW91dCksIHRleHRP
YmplY3QpOworICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViVmlldywgImRpcmVjdGlvbi1jaGFuZ2Vk
IiwgR19DQUxMQkFDSyh1cGRhdGVMYXlvdXQpLCB0ZXh0T2JqZWN0KTsKKyAgICBQYW5nb0xheW91
dCogbGF5b3V0ID0gZ3RrX3dpZGdldF9jcmVhdGVfcGFuZ29fbGF5b3V0KHN0YXRpY19jYXN0PEd0
a1dpZGdldCo+KHdlYlZpZXcpLCB0ZXh0LnV0ZjgoKS5kYXRhKCkpOworICAgIGdfb2JqZWN0X3Nl
dF9kYXRhX2Z1bGwoR19PQkpFQ1QodGV4dE9iamVjdCksICJ3ZWJraXQtYWNjZXNzaWJsZS1wYW5n
by1sYXlvdXQiLCBsYXlvdXQsIGdfb2JqZWN0X3VucmVmKTsKKyAgICByZXR1cm4gbGF5b3V0Owor
fQorCiBzdGF0aWMgZ2NoYXIqIHdlYmtpdF9hY2Nlc3NpYmxlX3RleHRfZ2V0X3RleHRfYWZ0ZXJf
b2Zmc2V0KEF0a1RleHQqIHRleHQsIGdpbnQgb2Zmc2V0LCBBdGtUZXh0Qm91bmRhcnkgYm91bmRh
cnlUeXBlLCBnaW50KiBzdGFydE9mZnNldCwgZ2ludCogZW5kT2Zmc2V0KQogewotICAgIHJldHVy
biBnYWlsX3RleHRfdXRpbF9nZXRfdGV4dChnZXRHYWlsVGV4dFV0aWxGb3JBdGsodGV4dCksIE5V
TEwsIEdBSUxfQUZURVJfT0ZGU0VULCBib3VuZGFyeVR5cGUsIG9mZnNldCwgc3RhcnRPZmZzZXQs
IGVuZE9mZnNldCk7CisgICAgcmV0dXJuIGdhaWxfdGV4dF91dGlsX2dldF90ZXh0KGdldEdhaWxU
ZXh0VXRpbEZvckF0ayh0ZXh0KSwgZ2V0UGFuZ29MYXlvdXRGb3JBdGsodGV4dCksIEdBSUxfQUZU
RVJfT0ZGU0VULCBib3VuZGFyeVR5cGUsIG9mZnNldCwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7
CiB9CiAKIHN0YXRpYyBnY2hhciogd2Via2l0X2FjY2Vzc2libGVfdGV4dF9nZXRfdGV4dF9hdF9v
ZmZzZXQoQXRrVGV4dCogdGV4dCwgZ2ludCBvZmZzZXQsIEF0a1RleHRCb3VuZGFyeSBib3VuZGFy
eVR5cGUsIGdpbnQqIHN0YXJ0T2Zmc2V0LCBnaW50KiBlbmRPZmZzZXQpCiB7Ci0gICAgcmV0dXJu
IGdhaWxfdGV4dF91dGlsX2dldF90ZXh0KGdldEdhaWxUZXh0VXRpbEZvckF0ayh0ZXh0KSwgTlVM
TCwgR0FJTF9BVF9PRkZTRVQsIGJvdW5kYXJ5VHlwZSwgb2Zmc2V0LCBzdGFydE9mZnNldCwgZW5k
T2Zmc2V0KTsKKyAgICByZXR1cm4gZ2FpbF90ZXh0X3V0aWxfZ2V0X3RleHQoZ2V0R2FpbFRleHRV
dGlsRm9yQXRrKHRleHQpLCBnZXRQYW5nb0xheW91dEZvckF0ayh0ZXh0KSwgR0FJTF9BVF9PRkZT
RVQsIGJvdW5kYXJ5VHlwZSwgb2Zmc2V0LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTsKIH0KIAog
c3RhdGljIGdjaGFyKiB3ZWJraXRfYWNjZXNzaWJsZV90ZXh0X2dldF90ZXh0X2JlZm9yZV9vZmZz
ZXQoQXRrVGV4dCogdGV4dCwgZ2ludCBvZmZzZXQsIEF0a1RleHRCb3VuZGFyeSBib3VuZGFyeVR5
cGUsIGdpbnQqIHN0YXJ0T2Zmc2V0LCBnaW50KiBlbmRPZmZzZXQpCiB7Ci0gICAgcmV0dXJuIGdh
aWxfdGV4dF91dGlsX2dldF90ZXh0KGdldEdhaWxUZXh0VXRpbEZvckF0ayh0ZXh0KSwgTlVMTCwg
R0FJTF9CRUZPUkVfT0ZGU0VULCBib3VuZGFyeVR5cGUsIG9mZnNldCwgc3RhcnRPZmZzZXQsIGVu
ZE9mZnNldCk7CisgICAgcmV0dXJuIGdhaWxfdGV4dF91dGlsX2dldF90ZXh0KGdldEdhaWxUZXh0
VXRpbEZvckF0ayh0ZXh0KSwgZ2V0UGFuZ29MYXlvdXRGb3JBdGsodGV4dCksIEdBSUxfQkVGT1JF
X09GRlNFVCwgYm91bmRhcnlUeXBlLCBvZmZzZXQsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOwog
fQogCiBzdGF0aWMgZ3VuaWNoYXIgd2Via2l0X2FjY2Vzc2libGVfdGV4dF9nZXRfY2hhcmFjdGVy
X2F0X29mZnNldChBdGtUZXh0KiB0ZXh0LCBnaW50IG9mZnNldCkKLS0gCjEuNi4zLjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31052</attachid>
            <date>2009-06-08 08:31:52 -0700</date>
            <delta_ts>2009-07-24 01:16:16 -0700</delta_ts>
            <desc>unifytextaccess.patch</desc>
            <filename>unifytextaccess.patch</filename>
            <type>text/plain</type>
            <size>3875</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBkNDI1NjZmYmQxN2Q3Y2U5MDU3MjFlNzJiY2YyOGM3MzgwMmJlMDM3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBN
b24sIDggSnVuIDIwMDkgMTg6Mjg6MTIgKzAzMDAKU3ViamVjdDogW1BBVENIXSAyMDA5LTA2LTA4
ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNTQxNQogICAgICAgIFtHVEtdW0FUS10gUGxlYXNlIGltcGxlbWVudCBzdXBwb3J0IGZv
ciBnZXRfdGV4dF9hdF9vZmZzZXQKCiAgICAgICAgUmVkdWNlIGR1cGxpY2F0ZWQgY29kZSB0byBh
Y2Nlc3MgdGhlIHRleHQgb2YgYSBBdGtUZXh0CiAgICAgICAgb2JqZWN0LiBkb0FYU3RyaW5nRm9y
UmFuZ2UgY2FsbHMgdGV4dCgpIGludGVybmFsbHksIHNvIHdlIGFyZQogICAgICAgIGRvaW5nIGV4
YWN0bHkgdGhlIHNhbWUgYWZ0ZXIgdGhlIGNoYW5nZS4KCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6CiAgICAgICAgKGdldEdhaWxU
ZXh0VXRpbEZvckF0ayk6CiAgICAgICAgKGdldFBhbmdvTGF5b3V0Rm9yQXRrKToKLS0tCiBXZWJD
b3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysr
KysrKysrKysrKysrCiAuLi4vZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcCAg
ICAgICAgICB8ICAgMTkgKystLS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxNyBp
bnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY5NGY1OTUuLjhjNjk5MTQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC01LDYgKzUs
MjEgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1
NDE1CiAgICAgICAgIFtHVEtdW0FUS10gUGxlYXNlIGltcGxlbWVudCBzdXBwb3J0IGZvciBnZXRf
dGV4dF9hdF9vZmZzZXQKIAorICAgICAgICBSZWR1Y2UgZHVwbGljYXRlZCBjb2RlIHRvIGFjY2Vz
cyB0aGUgdGV4dCBvZiBhIEF0a1RleHQKKyAgICAgICAgb2JqZWN0LiBkb0FYU3RyaW5nRm9yUmFu
Z2UgY2FsbHMgdGV4dCgpIGludGVybmFsbHksIHNvIHdlIGFyZQorICAgICAgICBkb2luZyBleGFj
dGx5IHRoZSBzYW1lIGFmdGVyIHRoZSBjaGFuZ2UuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6CisgICAgICAgIChnZXRHYWls
VGV4dFV0aWxGb3JBdGspOgorICAgICAgICAoZ2V0UGFuZ29MYXlvdXRGb3JBdGspOgorCisyMDA5
LTA2LTA4ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjU0MTUKKyAgICAgICAgW0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50
IHN1cHBvcnQgZm9yIGdldF90ZXh0X2F0X29mZnNldAorCiAgICAgICAgIFBhc3MgYSBQYW5nb0xh
eW91dCB0byB0aGUgR2FpbFRleHRVdGlsIGZ1bmN0aW9uIGNhbGxzLgogCiAgICAgICAgIEl0J3Mg
bmVlZGVkIGZvciBMSU5FIGJvdW5kYXJ5IGNhbGxzIHRvIHdvcmsgY29ycmVjdGx5LgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ckF0ay5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQXRrLmNwcAppbmRleCBiZGRhYzkzLi5mM2M4M2I0IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAorKysg
Yi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRr
LmNwcApAQCAtNDkwLDE2ICs0OTAsOCBAQCBzdGF0aWMgR2FpbFRleHRVdGlsKiBnZXRHYWlsVGV4
dFV0aWxGb3JBdGsoQXRrVGV4dCogdGV4dE9iamVjdCkKICAgICBpZiAoZGF0YSkKICAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PEdhaWxUZXh0VXRpbCo+KGRhdGEpOwogCi0gICAgU3RyaW5nIHRl
eHQ7Ci0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCA9IGNvcmUodGV4dE9iamVj
dCk7Ci0KLSAgICBpZiAoY29yZU9iamVjdC0+aXNUZXh0Q29udHJvbCgpKQotICAgICAgICB0ZXh0
ID0gY29yZU9iamVjdC0+dGV4dCgpOwotICAgIGVsc2UKLSAgICAgICAgdGV4dCA9IGNvcmVPYmpl
Y3QtPnRleHRVbmRlckVsZW1lbnQoKTsKLQogICAgIEdhaWxUZXh0VXRpbCogZ2FpbFRleHRVdGls
ID0gZ2FpbF90ZXh0X3V0aWxfbmV3KCk7Ci0gICAgZ2FpbF90ZXh0X3V0aWxfdGV4dF9zZXR1cChn
YWlsVGV4dFV0aWwsIHRleHQudXRmOCgpLmRhdGEoKSk7CisgICAgZ2FpbF90ZXh0X3V0aWxfdGV4
dF9zZXR1cChnYWlsVGV4dFV0aWwsIHdlYmtpdF9hY2Nlc3NpYmxlX3RleHRfZ2V0X3RleHQodGV4
dE9iamVjdCwgMCwgLTEpKTsKICAgICBnX29iamVjdF9zZXRfZGF0YV9mdWxsKEdfT0JKRUNUKHRl
eHRPYmplY3QpLCAid2Via2l0LWFjY2Vzc2libGUtZ2FpbC10ZXh0LXV0aWwiLCBnYWlsVGV4dFV0
aWwsIGdfb2JqZWN0X3VucmVmKTsKICAgICByZXR1cm4gZ2FpbFRleHRVdGlsOwogfQpAQCAtNTIy
LDE4ICs1MTQsMTEgQEAgc3RhdGljIFBhbmdvTGF5b3V0KiBnZXRQYW5nb0xheW91dEZvckF0ayhB
dGtUZXh0KiB0ZXh0T2JqZWN0KQogICAgIGlmIChkYXRhKQogICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8UGFuZ29MYXlvdXQqPihkYXRhKTsKIAotICAgIFN0cmluZyB0ZXh0OwogICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QgPSBjb3JlKHRleHRPYmplY3QpOwotCi0gICAgaWYg
KGNvcmVPYmplY3QtPmlzVGV4dENvbnRyb2woKSkKLSAgICAgICAgdGV4dCA9IGNvcmVPYmplY3Qt
PnRleHQoKTsKLSAgICBlbHNlCi0gICAgICAgIHRleHQgPSBjb3JlT2JqZWN0LT50ZXh0VW5kZXJF
bGVtZW50KCk7Ci0KICAgICBQbGF0Zm9ybVdpZGdldCB3ZWJWaWV3ID0gY29yZU9iamVjdC0+ZG9j
dW1lbnQoKS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtV2luZG93KCk7CiAgICAgZ19z
aWduYWxfY29ubmVjdCh3ZWJWaWV3LCAic3R5bGUtc2V0IiwgR19DQUxMQkFDSyh1cGRhdGVMYXlv
dXQpLCB0ZXh0T2JqZWN0KTsKICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlZpZXcsICJkaXJlY3Rp
b24tY2hhbmdlZCIsIEdfQ0FMTEJBQ0sodXBkYXRlTGF5b3V0KSwgdGV4dE9iamVjdCk7Ci0gICAg
UGFuZ29MYXlvdXQqIGxheW91dCA9IGd0a193aWRnZXRfY3JlYXRlX3BhbmdvX2xheW91dChzdGF0
aWNfY2FzdDxHdGtXaWRnZXQqPih3ZWJWaWV3KSwgdGV4dC51dGY4KCkuZGF0YSgpKTsKKyAgICBQ
YW5nb0xheW91dCogbGF5b3V0ID0gZ3RrX3dpZGdldF9jcmVhdGVfcGFuZ29fbGF5b3V0KHN0YXRp
Y19jYXN0PEd0a1dpZGdldCo+KHdlYlZpZXcpLCB3ZWJraXRfYWNjZXNzaWJsZV90ZXh0X2dldF90
ZXh0KHRleHRPYmplY3QsIDAsIC0xKSk7CiAgICAgZ19vYmplY3Rfc2V0X2RhdGFfZnVsbChHX09C
SkVDVCh0ZXh0T2JqZWN0KSwgIndlYmtpdC1hY2Nlc3NpYmxlLXBhbmdvLWxheW91dCIsIGxheW91
dCwgZ19vYmplY3RfdW5yZWYpOwogICAgIHJldHVybiBsYXlvdXQ7CiB9Ci0tIAoxLjYuMy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32451</attachid>
            <date>2009-07-08 07:21:11 -0700</date>
            <delta_ts>2009-07-15 05:28:07 -0700</delta_ts>
            <desc>lineboundary.patch</desc>
            <filename>lineboundary.patch</filename>
            <type>text/plain</type>
            <size>6726</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBkYjE3YWE2MWJhOTU1MmM3MmQyNmQ2ODFiMzRjMjkwYWJhYWVlZTlhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBX
ZWQsIDggSnVsIDIwMDkgMTY6MzQ6NDAgKzAzMDAKU3ViamVjdDogW1BBVENIXSAyMDA5LTA3LTA4
ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNTQxNQogICAgICAgIFtHVEtdW0FUS10gUGxlYXNlIGltcGxlbWVudCBzdXBwb3J0IGZv
ciBnZXRfdGV4dF9hdF9vZmZzZXQKCiAgICAgICAgQ3JlYXRlIGEgUGFuZ29MYXlvdXQgdGhhdCBw
cm9wZXJseSByZXByZXNlbnRzIHRoZSB2aXN1YWwKICAgICAgICBhcHBlYXJhbmNlIG9mIHRoZSB0
ZXh0IGluIHRoZSB3ZWIgcGFnZSBzbyB0aGF0IHRoZSBsaW5lIGJvdW5kYXJ5CiAgICAgICAgbW9k
ZXMgb2YgZ2V0VGV4dHtBdCxCZWZvcmUsQWZ0ZXJ9T2Zmc2V0IHdvcmsgY29ycmVjdGx5LgoKICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNw
cDoKICAgICAgICAodXRmMTZfdG9fdXRmOCk6CiAgICAgICAgKGdfc3Vic3RyKToKICAgICAgICAo
Y29udmVydFVuaUNoYXJUb1VURjgpOgogICAgICAgIChnZXRQYW5nb0xheW91dEZvckF0ayk6Ci0t
LQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDE3ICsrKwogLi4uL2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAgICAgICAg
ICAgfCAgMTEyICsrKysrKysrKysrKysrKysrKystCiAyIGZpbGVzIGNoYW5nZWQsIDEyOCBpbnNl
cnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzI5NjQ2YS4uM2Q3YTgxNiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBA
QAorMjAwOS0wNy0wOCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDE1CisgICAgICAgIFtHVEtdW0FUS10gUGxlYXNlIGlt
cGxlbWVudCBzdXBwb3J0IGZvciBnZXRfdGV4dF9hdF9vZmZzZXQKKworICAgICAgICBDcmVhdGUg
YSBQYW5nb0xheW91dCB0aGF0IHByb3Blcmx5IHJlcHJlc2VudHMgdGhlIHZpc3VhbAorICAgICAg
ICBhcHBlYXJhbmNlIG9mIHRoZSB0ZXh0IGluIHRoZSB3ZWIgcGFnZSBzbyB0aGF0IHRoZSBsaW5l
IGJvdW5kYXJ5CisgICAgICAgIG1vZGVzIG9mIGdldFRleHR7QXQsQmVmb3JlLEFmdGVyfU9mZnNl
dCB3b3JrIGNvcnJlY3RseS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAgKHV0ZjE2X3RvX3V0ZjgpOgorICAg
ICAgICAoZ19zdWJzdHIpOgorICAgICAgICAoY29udmVydFVuaUNoYXJUb1VURjgpOgorICAgICAg
ICAoZ2V0UGFuZ29MYXlvdXRGb3JBdGspOgorCiAyMDA5LTA3LTA3ICBKaWFodWEgSHVhbmcgIDxq
aHVhbmdqaWFodWFAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbiBBbG9uem8u
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyQXRrLmNwcCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJBdGsuY3BwCmluZGV4IGEwNjEzYjAuLmMyYTk4MjggMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsu
Y3BwCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJBdGsuY3BwCkBAIC00Myw4ICs0MywxMCBAQAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgog
I2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRl
ICJJbmxpbmVUZXh0Qm94LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogCiAjaW5jbHVkZSA8YXRrL2F0
ay5oPgogI2luY2x1ZGUgPGdsaWIuaD4KQEAgLTUxMyw2ICs1MTUsOTUgQEAgc3RhdGljIHZvaWQg
dXBkYXRlTGF5b3V0KEd0a1dpZGdldCogd2lkZ2V0LCBncG9pbnRlciBkdW1teSwgZ3BvaW50ZXIg
dXNlckRhdGEpCiAgICBwYW5nb19sYXlvdXRfY29udGV4dF9jaGFuZ2VkKHN0YXRpY19jYXN0PFBh
bmdvTGF5b3V0Kj4oZGF0YSkpOwogfQogCisjZGVmaW5lIElTX0hJR0hfU1VSUk9HQVRFKHUpICAo
KFVDaGFyKSh1KSA+PSAoVUNoYXIpMHhkODAwICYmIChVQ2hhcikodSkgPD0gKFVDaGFyKTB4ZGJm
ZikKKyNkZWZpbmUgSVNfTE9XX1NVUlJPR0FURSh1KSAgICgoVUNoYXIpKHUpID49IChVQ2hhcikw
eGRjMDAgJiYgKFVDaGFyKSh1KSA8PSAoVUNoYXIpMHhkZmZmKQorCitzdGF0aWMgdm9pZCB1dGYx
Nl90b191dGY4KGNvbnN0IFVDaGFyKiBhVGV4dCwgZ2ludCBhTGVuZ3RoLCBjaGFyKiAmdGV4dCwg
Z2ludCAmbGVuZ3RoKQoreworICAgIGdib29sZWFuIG5lZWRfY29weSA9IEZBTFNFOworICAgIGlu
dCBpOworCisgICAgZm9yIChpID0gMDsgaSA8IGFMZW5ndGg7IGkrKykgeworICAgICAgICBpZiAo
IWFUZXh0W2ldIHx8IElTX0xPV19TVVJST0dBVEUoYVRleHRbaV0pKSB7CisgICAgICAgICAgICBu
ZWVkX2NvcHkgPSBUUlVFOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
ZWxzZSBpZiAoSVNfSElHSF9TVVJST0dBVEUoYVRleHRbaV0pKSB7CisgICAgICAgICAgICBpZiAo
aSA8IGFMZW5ndGggLSAxICYmIElTX0xPV19TVVJST0dBVEUoYVRleHRbaSsxXSkpCisgICAgICAg
ICAgICAgICAgaSsrOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbmVlZF9j
b3B5ID0gVFJVRTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIH0KKworICAgIGlmIChuZWVkX2NvcHkpIHsKKyAgICAgICAgLyogUGFuZ28gZG9l
c24ndCBjb3JyZWN0bHkgaGFuZGxlIG51bHMuICBXZSBjb252ZXJ0IHRoZW0gdG8gMHhmZi4gKi8K
KyAgICAgICAgLyogQWxzbyAidmFsaWRhdGUiIFVURi0xNiB0ZXh0IHRvIG1ha2Ugc3VyZSBjb252
ZXJzaW9uIGRvZXNuJ3QgZmFpbC4gKi8KKworICAgICAgICBVQ2hhciogcCA9IChVQ2hhciopZ19t
ZW1kdXAoYVRleHQsIGFMZW5ndGggKiBzaXplb2YoYVRleHRbMF0pKTsKKworICAgICAgICAvKiBk
b24ndCBuZWVkIHRvIHJlc2V0IGkgKi8KKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGFMZW5ndGg7
IGkrKykgeworICAgICAgICAgICAgaWYgKCFwW2ldIHx8IElTX0xPV19TVVJST0dBVEUocFtpXSkp
CisgICAgICAgICAgICAgICAgcFtpXSA9IDB4RkZGRDsKKyAgICAgICAgICAgIGVsc2UgaWYgKElT
X0hJR0hfU1VSUk9HQVRFKHBbaV0pKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPCBhTGVuZ3Ro
IC0gMSAmJiBJU19MT1dfU1VSUk9HQVRFKGFUZXh0W2krMV0pKQorICAgICAgICAgICAgICAgICAg
ICBpKys7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBwW2ldID0g
MHhGRkZEOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYVRleHQgPSBwOwor
ICAgIH0KKworICAgIGdsb25nIGl0ZW1zX3dyaXR0ZW47CisgICAgdGV4dCA9IGdfdXRmMTZfdG9f
dXRmOChyZWludGVycHJldF9jYXN0PGNvbnN0IGd1bmljaGFyMio+KGFUZXh0KSwgYUxlbmd0aCwg
TlVMTCwgJml0ZW1zX3dyaXR0ZW4sIE5VTEwpOworICAgIGxlbmd0aCA9IGl0ZW1zX3dyaXR0ZW47
CisKKyAgICBpZiAobmVlZF9jb3B5KQorICAgICAgICBnX2ZyZWUoKGdwb2ludGVyKWFUZXh0KTsK
KworfQorCitzdGF0aWMgZ2NoYXIqIGdfc3Vic3RyKGNvbnN0IGdjaGFyKiBzdHJpbmcsIGdpbnQg
c3RhcnQsIGdpbnQgZW5kKQoreworICAgIGdzaXplIGxlbiA9IGVuZCAtIHN0YXJ0ICsgMTsKKyAg
ICBnY2hhciogb3V0cHV0ID0gc3RhdGljX2Nhc3Q8Z2NoYXIqPihnX21hbGxvYzAobGVuICsgMSkp
OworICAgIHJldHVybiBnX3V0Zjhfc3RybmNweShvdXRwdXQsIHN0cmluZyArc3RhcnQsIGxlbik7
Cit9CisKK3N0YXRpYyBnY2hhciogY29udmVydFVuaUNoYXJUb1VURjgoY29uc3QgVUNoYXIqIGNo
YXJhY3RlcnMsIGdpbnQgbGVuZ3RoLCBpbnQgZnJvbSwgaW50IHRvKQoreworICAgIGdjaGFyKiB1
dGY4ID0gMDsKKyAgICBnaW50IG5ld19sZW5ndGggPSAwOworICAgIHV0ZjE2X3RvX3V0ZjgoY2hh
cmFjdGVycywgbGVuZ3RoLCB1dGY4LCBuZXdfbGVuZ3RoKTsKKyAgICBpZiAoIXV0ZjgpCisgICAg
ICAgIHJldHVybiBOVUxMOworCisgICAgZ2NoYXIgKnBvcyA9IGdfc3Vic3RyKHV0ZjgsIGZyb20s
IHRvKTsKKyAgICBnX2ZyZWUodXRmOCk7CisgICAgZ2ludCBsZW4gPSBzdHJsZW4ocG9zKTsKKyAg
ICBHU3RyaW5nKiByZXQgPSBnX3N0cmluZ19uZXdfbGVuKE5VTEwsIGxlbik7CisKKyAgICAvLyBX
ZWJDb3JlIGludHJvZHVjZXMgbGluZSBicmVha3MgaW4gdGhlIHRleHQgdGhhdCBkbyBub3QgcmVm
bGVjdAorICAgIC8vIHRoZSBsYXlvdXQgeW91IHNlZSBvbiB0aGUgc2NyZWVuLCByZXBsYWNlIHRo
ZW0gd2l0aCBzcGFjZXMKKyAgICB3aGlsZSAobGVuID4gMCkgeworICAgICAgICBnaW50IGluZGV4
LCBzdGFydDsKKyAgICAgICAgcGFuZ29fZmluZF9wYXJhZ3JhcGhfYm91bmRhcnkocG9zLCBsZW4s
ICZpbmRleCwgJnN0YXJ0KTsKKyAgICAgICAgZ19zdHJpbmdfYXBwZW5kX2xlbihyZXQsIHBvcywg
aW5kZXgpOworICAgICAgICBpZiAoaW5kZXggPT0gc3RhcnQpCisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgZ19zdHJpbmdfYXBwZW5kX2MocmV0LCAnICcpOworICAgICAgICBwb3MgKz0gc3Rh
cnQ7CisgICAgICAgIGxlbiAtPSBzdGFydDsKKyAgICB9CisKKyAgICByZXR1cm4gZ19zdHJpbmdf
ZnJlZShyZXQsIEZBTFNFKTsKK30KKwogc3RhdGljIFBhbmdvTGF5b3V0KiBnZXRQYW5nb0xheW91
dEZvckF0ayhBdGtUZXh0KiB0ZXh0T2JqZWN0KQogewogICAgIGdwb2ludGVyIGRhdGEgPSBnX29i
amVjdF9nZXRfZGF0YShHX09CSkVDVCh0ZXh0T2JqZWN0KSwgIndlYmtpdC1hY2Nlc3NpYmxlLXBh
bmdvLWxheW91dCIpOwpAQCAtNTMwLDcgKzYyMSwyNiBAQCBzdGF0aWMgUGFuZ29MYXlvdXQqIGdl
dFBhbmdvTGF5b3V0Rm9yQXRrKEF0a1RleHQqIHRleHRPYmplY3QpCiAKICAgICBnX3NpZ25hbF9j
b25uZWN0KHdlYlZpZXcsICJzdHlsZS1zZXQiLCBHX0NBTExCQUNLKHVwZGF0ZUxheW91dCksIHRl
eHRPYmplY3QpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViVmlldywgImRpcmVjdGlvbi1jaGFu
Z2VkIiwgR19DQUxMQkFDSyh1cGRhdGVMYXlvdXQpLCB0ZXh0T2JqZWN0KTsKLSAgICBQYW5nb0xh
eW91dCogbGF5b3V0ID0gZ3RrX3dpZGdldF9jcmVhdGVfcGFuZ29fbGF5b3V0KHN0YXRpY19jYXN0
PEd0a1dpZGdldCo+KHdlYlZpZXcpLCB3ZWJraXRfYWNjZXNzaWJsZV90ZXh0X2dldF90ZXh0KHRl
eHRPYmplY3QsIDAsIC0xKSk7CisKKyAgICBHU3RyaW5nKiBzdHIgPSBnX3N0cmluZ19uZXcoTlVM
TCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KiBhY2NPYmplY3QgPSBzdGF0aWNf
Y2FzdDxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Kj4oY29yZU9iamVjdCk7CisgICAgaWYgKCFh
Y2NPYmplY3QpCisgICAgICAgIHJldHVybiAwOworICAgIFJlbmRlclRleHQqIHJlbmRlclRleHQg
PSBzdGF0aWNfY2FzdDxSZW5kZXJUZXh0Kj4oYWNjT2JqZWN0LT5yZW5kZXJlcigpKTsKKyAgICBp
ZiAoIXJlbmRlclRleHQpCisgICAgICAgIHJldHVybiAwOworCisgICAgLy8gQ3JlYXRlIGEgc3Ry
aW5nIHdpdGggdGhlIGxheW91dCBhcyBpdCBhcHBlYXJzIG9uIHRoZSBzY3JlZW4KKyAgICBJbmxp
bmVUZXh0Qm94KiBib3ggPSByZW5kZXJUZXh0LT5maXJzdFRleHRCb3goKTsKKyAgICB3aGlsZSAo
Ym94KSB7CisgICAgICAgIGdjaGFyICp0ZXh0ID0gY29udmVydFVuaUNoYXJUb1VURjgocmVuZGVy
VGV4dC0+Y2hhcmFjdGVycygpLCByZW5kZXJUZXh0LT50ZXh0TGVuZ3RoKCksIGJveC0+c3RhcnQo
KSwgYm94LT5lbmQoKSk7CisgICAgICAgIGdfc3RyaW5nX2FwcGVuZChzdHIsIHRleHQpOworICAg
ICAgICBnX3N0cmluZ19hcHBlbmQoc3RyLCAiXG4iKTsKKyAgICAgICAgYm94ID0gYm94LT5uZXh0
VGV4dEJveCgpOworICAgIH0KKworICAgIFBhbmdvTGF5b3V0KiBsYXlvdXQgPSBndGtfd2lkZ2V0
X2NyZWF0ZV9wYW5nb19sYXlvdXQoc3RhdGljX2Nhc3Q8R3RrV2lkZ2V0Kj4od2ViVmlldyksIGdf
c3RyaW5nX2ZyZWUoc3RyLCBGQUxTRSkpOwogICAgIGdfb2JqZWN0X3NldF9kYXRhX2Z1bGwoR19P
QkpFQ1QodGV4dE9iamVjdCksICJ3ZWJraXQtYWNjZXNzaWJsZS1wYW5nby1sYXlvdXQiLCBsYXlv
dXQsIGdfb2JqZWN0X3VucmVmKTsKICAgICByZXR1cm4gbGF5b3V0OwogfQotLSAKMS42LjAuNgoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>32471</attachid>
            <date>2009-07-08 14:07:53 -0700</date>
            <delta_ts>2009-07-08 14:07:53 -0700</delta_ts>
            <desc>Screenshot illustrating a problem</desc>
            <filename>Screenshot1.png</filename>
            <type>image/png</type>
            <size>269616</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">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
TkSuQmCC
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33258</attachid>
            <date>2009-07-22 05:44:07 -0700</date>
            <delta_ts>2009-07-24 01:44:14 -0700</delta_ts>
            <desc>leninbytes.patch</desc>
            <filename>leninbytes.patch</filename>
            <type>text/plain</type>
            <size>2568</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBkMmIwNWExNGRjYTgyYjY5YjE1NWRhYWZiNTM5MzgzN2IyNjI1NGU0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBX
ZWQsIDIyIEp1bCAyMDA5IDE1OjM0OjI1ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gMjAwOS0wNy0y
MiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CgogICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgoKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjU0MTUKICAgICAgICBbR1RLXVtBVEtdIFBsZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBm
b3IgZ2V0X3RleHRfYXRfb2Zmc2V0CgogICAgICAgIEZpeCBjb25mdXNpb24gaW4gZ19zdWJzdHIg
YmV0d2VlbiBsZW5ndGggaW4gYnl0ZXMgYW5kIGxlbmd0aCBpbgogICAgICAgIGNoYXJhY3RlcnMu
IFdhcyBjYXVzaW5nIGNyYXNoZXMgaW4gc29tZSBzaXR1YXRpb25zIHdoZW4gZGVhbGluZwogICAg
ICAgIHdpdGggbm9uLUFTQ0lJIHRleHQgZW5jb2RlZCBhcyBVVEY4LgoKICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcDoKICAgICAgICAo
Z19zdWJzdHIpOgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAxNCArKysrKysrKysrKysrKwogLi4uL2d0ay9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckF0ay5jcHAgICAgICAgICAgfCAgICA3ICsrKystLS0KIDIgZmlsZXMgY2hhbmdl
ZCwgMTggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhmMTU3NjQuLmZkOWVhZTIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDUgKzEsMTkgQEAKIDIwMDktMDctMjIgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgog
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQxNQorICAgICAgICBbR1RLXVtBVEtd
IFBsZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgZ2V0X3RleHRfYXRfb2Zmc2V0CisKKyAgICAg
ICAgRml4IGNvbmZ1c2lvbiBpbiBnX3N1YnN0ciBiZXR3ZWVuIGxlbmd0aCBpbiBieXRlcyBhbmQg
bGVuZ3RoIGluCisgICAgICAgIGNoYXJhY3RlcnMuIFdhcyBjYXVzaW5nIGNyYXNoZXMgaW4gc29t
ZSBzaXR1YXRpb25zIHdoZW4gZGVhbGluZworICAgICAgICB3aXRoIG5vbi1BU0NJSSB0ZXh0IGVu
Y29kZWQgYXMgVVRGOC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAgKGdfc3Vic3RyKToKKworMjAwOS0wNy0y
MiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CisKICAgICAgICAgQXR0ZW1wdCB0byBm
aXggdGhlIEdUSysgYnVpbGQuCiAKICAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJB
dGsuY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlckF0ay5jcHAKaW5kZXggOGQ4YTM3Ny4uMjc5YTI3NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKKysrIGIv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5j
cHAKQEAgLTU3MSw5ICs1NzEsMTAgQEAgc3RhdGljIHZvaWQgVVRGMTZUb1VURjgoY29uc3QgVUNo
YXIqIGFUZXh0LCBnaW50IGFMZW5ndGgsIGNoYXIqICZ0ZXh0LCBnaW50ICZsZW4KIAogc3RhdGlj
IGdjaGFyKiBnX3N1YnN0cihjb25zdCBnY2hhciogc3RyaW5nLCBnaW50IHN0YXJ0LCBnaW50IGVu
ZCkKIHsKLSAgICBnc2l6ZSBsZW4gPSBlbmQgLSBzdGFydCArIDE7Ci0gICAgZ2NoYXIqIG91dHB1
dCA9IHN0YXRpY19jYXN0PGdjaGFyKj4oZ19tYWxsb2MwKGxlbiArIDEpKTsKLSAgICByZXR1cm4g
Z191dGY4X3N0cm5jcHkob3V0cHV0LCBzdHJpbmcgK3N0YXJ0LCBsZW4pOworICAgIGdjaGFyKiBz
dGFydFB0ciA9IGdfdXRmOF9vZmZzZXRfdG9fcG9pbnRlcihzdHJpbmcsIHN0YXJ0KTsKKyAgICBn
c2l6ZSBsZW5JbkJ5dGVzID0gZ191dGY4X29mZnNldF90b19wb2ludGVyKHN0cmluZywgZW5kKSAt
ICBzdGFydFB0ciArIDE7CisgICAgZ2NoYXIqIG91dHB1dCA9IHN0YXRpY19jYXN0PGdjaGFyKj4o
Z19tYWxsb2MwKGxlbkluQnl0ZXMgKyAxKSk7CisgICAgcmV0dXJuIGdfdXRmOF9zdHJuY3B5KG91
dHB1dCwgc3RhcnRQdHIsIGVuZCAtIHN0YXJ0ICsgMSk7CiB9CiAKIC8vIFRoaXMgZnVuY3Rpb24g
aXMgbm90IGNvbXBsZXRlbHkgZ2VuZXJhbCwgaXMgaXQncyB0aWVkIHRvIHRoZQotLSAKMS42LjMu
MwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33259</attachid>
            <date>2009-07-22 05:44:39 -0700</date>
            <delta_ts>2009-07-24 01:45:00 -0700</delta_ts>
            <desc>textencoding.patch</desc>
            <filename>textencoding.patch</filename>
            <type>text/plain</type>
            <size>5565</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBhMTBhNTdiZjkwZjJmOGExZDZhNmY2NDkzODEwNDcxN2M2NDNkZmQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBX
ZWQsIDIyIEp1bCAyMDA5IDE1OjM2OjAyICswMzAwClN1YmplY3Q6IFtQQVRDSF0gMjAwOS0wNy0y
MiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CgogICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgoKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjU0MTUKICAgICAgICBbR1RLXVtBVEtdIFBsZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBm
b3IgZ2V0X3RleHRfYXRfb2Zmc2V0CgogICAgICAgIFVzZSBUZXh0RW5jb2RpbmcgZmFjaWxpdGll
cyB0byBjb252ZXJ0IGJldHdlZW4gVVRGMTYgYW5kIFVURjgKICAgICAgICBpbnN0ZWFkIG9mIHJv
bGxpbmcgb3VyIG93biBzb2x1dGlvbi4KCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6CiAgICAgICAgKGNvbnZlcnRVbmlDaGFyVG9V
VEY4KToKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMTMgKysrKwogLi4uL2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5j
cHAgICAgICAgICAgfCAgIDc1ICsrKy0tLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQs
IDIzIGluc2VydGlvbnMoKyksIDY1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmQ5ZWFlMi4uNmJhZWFlYSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTUs
NiArNSwxOSBAQAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjU0MTUKICAgICAgICAgW0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9y
IGdldF90ZXh0X2F0X29mZnNldAogCisgICAgICAgIFVzZSBUZXh0RW5jb2RpbmcgZmFjaWxpdGll
cyB0byBjb252ZXJ0IGJldHdlZW4gVVRGMTYgYW5kIFVURjgKKyAgICAgICAgaW5zdGVhZCBvZiBy
b2xsaW5nIG91ciBvd24gc29sdXRpb24uCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9B
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6CisgICAgICAgIChjb252ZXJ0VW5pQ2hh
clRvVVRGOCk6CisKKzIwMDktMDctMjIgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQxNQorICAgICAgICBbR1RLXVtBVEtd
IFBsZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgZ2V0X3RleHRfYXRfb2Zmc2V0CisKICAgICAg
ICAgRml4IGNvbmZ1c2lvbiBpbiBnX3N1YnN0ciBiZXR3ZWVuIGxlbmd0aCBpbiBieXRlcyBhbmQg
bGVuZ3RoIGluCiAgICAgICAgIGNoYXJhY3RlcnMuIFdhcyBjYXVzaW5nIGNyYXNoZXMgaW4gc29t
ZSBzaXR1YXRpb25zIHdoZW4gZGVhbGluZwogICAgICAgICB3aXRoIG5vbi1BU0NJSSB0ZXh0IGVu
Y29kZWQgYXMgVVRGOC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0
ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKaW5kZXggMjc5YTI3Ni4uNjRhYTRl
NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckF0ay5jcHAKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJJ
bnRSZWN0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJSZW5kZXJU
ZXh0LmgiCisjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAKICNpbmNsdWRlIDxhdGsvYXRrLmg+
CiAjaW5jbHVkZSA8Z2xpYi5oPgpAQCAtNTE3LDU5ICs1MTgsNyBAQCBzdGF0aWMgdm9pZCB1cGRh
dGVMYXlvdXQoR3RrV2lkZ2V0KiB3aWRnZXQsIGdwb2ludGVyIGR1bW15LCBncG9pbnRlciB1c2Vy
RGF0YSkKICAgIHBhbmdvX2xheW91dF9jb250ZXh0X2NoYW5nZWQoc3RhdGljX2Nhc3Q8UGFuZ29M
YXlvdXQqPihkYXRhKSk7CiB9CiAKLSNkZWZpbmUgSVNfSElHSF9TVVJST0dBVEUodSkgICgoVUNo
YXIpKHUpID49IChVQ2hhcikweGQ4MDAgJiYgKFVDaGFyKSh1KSA8PSAoVUNoYXIpMHhkYmZmKQot
I2RlZmluZSBJU19MT1dfU1VSUk9HQVRFKHUpICAgKChVQ2hhcikodSkgPj0gKFVDaGFyKTB4ZGMw
MCAmJiAoVUNoYXIpKHUpIDw9IChVQ2hhcikweGRmZmYpCi0KLXN0YXRpYyB2b2lkIFVURjE2VG9V
VEY4KGNvbnN0IFVDaGFyKiBhVGV4dCwgZ2ludCBhTGVuZ3RoLCBjaGFyKiAmdGV4dCwgZ2ludCAm
bGVuZ3RoKQotewotICAgIGdib29sZWFuIG5lZWRDb3B5ID0gRkFMU0U7Ci0gICAgaW50IGk7Ci0K
LSAgICBmb3IgKGkgPSAwOyBpIDwgYUxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmICghYVRleHRb
aV0gfHwgSVNfTE9XX1NVUlJPR0FURShhVGV4dFtpXSkpIHsKLSAgICAgICAgICAgIG5lZWRDb3B5
ID0gVFJVRTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9IGVsc2UgaWYgKElTX0hJR0hf
U1VSUk9HQVRFKGFUZXh0W2ldKSkgewotICAgICAgICAgICAgaWYgKGkgPCBhTGVuZ3RoIC0gMSAm
JiBJU19MT1dfU1VSUk9HQVRFKGFUZXh0W2krMV0pKQotICAgICAgICAgICAgICAgIGkrKzsKLSAg
ICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIG5lZWRDb3B5ID0gVFJVRTsKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAg
IGlmIChuZWVkQ29weSkgewotICAgICAgICAvKiBQYW5nbyBkb2Vzbid0IGNvcnJlY3RseSBoYW5k
bGUgbnVscy4gIFdlIGNvbnZlcnQgdGhlbSB0byAweGZmLiAqLwotICAgICAgICAvKiBBbHNvICJ2
YWxpZGF0ZSIgVVRGLTE2IHRleHQgdG8gbWFrZSBzdXJlIGNvbnZlcnNpb24gZG9lc24ndCBmYWls
LiAqLwotCi0gICAgICAgIFVDaGFyKiBwID0gKFVDaGFyKilnX21lbWR1cChhVGV4dCwgYUxlbmd0
aCAqIHNpemVvZihhVGV4dFswXSkpOwotCi0gICAgICAgIC8qIGRvbid0IG5lZWQgdG8gcmVzZXQg
aSAqLwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYUxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAg
ICBpZiAoIXBbaV0gfHwgSVNfTE9XX1NVUlJPR0FURShwW2ldKSkKLSAgICAgICAgICAgICAgICBw
W2ldID0gMHhGRkZEOwotICAgICAgICAgICAgZWxzZSBpZiAoSVNfSElHSF9TVVJST0dBVEUocFtp
XSkpIHsKLSAgICAgICAgICAgICAgICBpZiAoaSA8IGFMZW5ndGggLSAxICYmIElTX0xPV19TVVJS
T0dBVEUoYVRleHRbaSsxXSkpCi0gICAgICAgICAgICAgICAgICAgIGkrKzsKLSAgICAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHBbaV0gPSAweEZGRkQ7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLQotICAgICAgICBhVGV4dCA9IHA7Ci0gICAgfQotCi0gICAgZ2xvbmcg
aXRlbXNfd3JpdHRlbjsKLSAgICB0ZXh0ID0gZ191dGYxNl90b191dGY4KHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgZ3VuaWNoYXIyKj4oYVRleHQpLCBhTGVuZ3RoLCBOVUxMLCAmaXRlbXNfd3JpdHRl
biwgTlVMTCk7Ci0gICAgbGVuZ3RoID0gaXRlbXNfd3JpdHRlbjsKLQotICAgIGlmIChuZWVkQ29w
eSkKLSAgICAgICAgZ19mcmVlKChncG9pbnRlcilhVGV4dCk7Ci0KLX0KLQotc3RhdGljIGdjaGFy
KiBnX3N1YnN0cihjb25zdCBnY2hhciogc3RyaW5nLCBnaW50IHN0YXJ0LCBnaW50IGVuZCkKK3N0
YXRpYyBnY2hhciogdXRmOF9zdWJzdHIoY29uc3QgZ2NoYXIqIHN0cmluZywgZ2ludCBzdGFydCwg
Z2ludCBlbmQpCiB7CiAgICAgZ2NoYXIqIHN0YXJ0UHRyID0gZ191dGY4X29mZnNldF90b19wb2lu
dGVyKHN0cmluZywgc3RhcnQpOwogICAgIGdzaXplIGxlbkluQnl0ZXMgPSBnX3V0Zjhfb2Zmc2V0
X3RvX3BvaW50ZXIoc3RyaW5nLCBlbmQpIC0gIHN0YXJ0UHRyICsgMTsKQEAgLTU4MSwyNyArNTMw
LDIzIEBAIHN0YXRpYyBnY2hhciogZ19zdWJzdHIoY29uc3QgZ2NoYXIqIHN0cmluZywgZ2ludCBz
dGFydCwgZ2ludCBlbmQpCiAvLyBpbnRlcm5hbHMgb2YgV2ViQ29yZSdzIHRleHQgcHJlc2VudGF0
aW9uLgogc3RhdGljIGdjaGFyKiBjb252ZXJ0VW5pQ2hhclRvVVRGOChjb25zdCBVQ2hhciogY2hh
cmFjdGVycywgZ2ludCBsZW5ndGgsIGludCBmcm9tLCBpbnQgdG8pCiB7Ci0gICAgZ2NoYXIqIHV0
ZjggPSAwOwotICAgIGdpbnQgbmV3TGVuZ3RoID0gMDsKLSAgICBVVEYxNlRvVVRGOChjaGFyYWN0
ZXJzLCBsZW5ndGgsIHV0ZjgsIG5ld0xlbmd0aCk7Ci0gICAgaWYgKCF1dGY4KQotICAgICAgICBy
ZXR1cm4gTlVMTDsKLQotICAgIGdjaGFyICpwb3MgPSBnX3N1YnN0cih1dGY4LCBmcm9tLCB0byk7
Ci0gICAgZ19mcmVlKHV0ZjgpOwotICAgIGdpbnQgbGVuID0gc3RybGVuKHBvcyk7CisgICAgQ1N0
cmluZyBzdHJpbmdVVEY4ID0gVVRGOEVuY29kaW5nKCkuZW5jb2RlKGNoYXJhY3RlcnMsIGxlbmd0
aCwgUXVlc3Rpb25NYXJrc0ZvclVuZW5jb2RhYmxlcyk7CisgICAgZ2NoYXIqIHV0ZjggPSB1dGY4
X3N1YnN0cihzdHJpbmdVVEY4LmRhdGEoKSwgZnJvbSwgdG8pOworICAgIGlmICghZ191dGY4X3Zh
bGlkYXRlKHV0ZjgsIC0xLCBOVUxMKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgZ2ludCBsZW4g
PSBzdHJsZW4odXRmOCk7CiAgICAgR1N0cmluZyogcmV0ID0gZ19zdHJpbmdfbmV3X2xlbihOVUxM
LCBsZW4pOwogCiAgICAgLy8gV2ViQ29yZSBpbnRyb2R1Y2VzIGxpbmUgYnJlYWtzIGluIHRoZSB0
ZXh0IHRoYXQgZG8gbm90IHJlZmxlY3QKICAgICAvLyB0aGUgbGF5b3V0IHlvdSBzZWUgb24gdGhl
IHNjcmVlbiwgcmVwbGFjZSB0aGVtIHdpdGggc3BhY2VzCiAgICAgd2hpbGUgKGxlbiA+IDApIHsK
ICAgICAgICAgZ2ludCBpbmRleCwgc3RhcnQ7Ci0gICAgICAgIHBhbmdvX2ZpbmRfcGFyYWdyYXBo
X2JvdW5kYXJ5KHBvcywgbGVuLCAmaW5kZXgsICZzdGFydCk7Ci0gICAgICAgIGdfc3RyaW5nX2Fw
cGVuZF9sZW4ocmV0LCBwb3MsIGluZGV4KTsKKyAgICAgICAgcGFuZ29fZmluZF9wYXJhZ3JhcGhf
Ym91bmRhcnkodXRmOCwgbGVuLCAmaW5kZXgsICZzdGFydCk7CisgICAgICAgIGdfc3RyaW5nX2Fw
cGVuZF9sZW4ocmV0LCB1dGY4LCBpbmRleCk7CiAgICAgICAgIGlmIChpbmRleCA9PSBzdGFydCkK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBnX3N0cmluZ19hcHBlbmRfYyhyZXQsICcgJyk7
Ci0gICAgICAgIHBvcyArPSBzdGFydDsKKyAgICAgICAgdXRmOCArPSBzdGFydDsKICAgICAgICAg
bGVuIC09IHN0YXJ0OwogICAgIH0KIAotLSAKMS42LjMuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33565</attachid>
            <date>2009-07-27 13:26:05 -0700</date>
            <delta_ts>2009-07-30 23:58:02 -0700</delta_ts>
            <desc>dontcachelayout.patch</desc>
            <filename>dontcachelayout.patch</filename>
            <type>text/plain</type>
            <size>2150</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA0NTg4ZTE1Y2I1Y2QwNTU3ZDg0MzljMmRlYjZmYjQwZDVhYWMxZjQ4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBN
b24sIDI3IEp1bCAyMDA5IDIzOjI0OjExICswMzAwClN1YmplY3Q6IFtQQVRDSF0gMjAwOS0wNy0y
NyAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CgogICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgoKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjU0MTUKICAgICAgICBbR1RLXVtBVEtdIFBsZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBm
b3IgZ2V0X3RleHRfYXRfb2Zmc2V0CgogICAgICAgIERvIG5vdCBjYWNoZSB0aGUgcGFuZ28gbGF5
b3V0IGluIHRoZSBvYmplY3QsIHNpbmNlIHRoZSBsYXlvdXQgb2YKICAgICAgICB0aGUgcGFnZSBj
YW4gY2hhbmdlIGJldHdlZW4gY2FsbHMuCgogICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKysrKysrKysrKysKIC4uLi9n
dGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwICAgICAgICAgIHwgICAgNCAtLS0t
CiAyIGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmMjhj
YmIyLi42YTdmMDM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDA5LTA3LTI3ICBYYW4gTG9wZXogIDx4bG9w
ZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MTUKKyAg
ICAgICAgW0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGdldF90ZXh0X2F0
X29mZnNldAorCisgICAgICAgIERvIG5vdCBjYWNoZSB0aGUgcGFuZ28gbGF5b3V0IGluIHRoZSBv
YmplY3QsIHNpbmNlIHRoZSBsYXlvdXQgb2YKKyAgICAgICAgdGhlIHBhZ2UgY2FuIGNoYW5nZSBi
ZXR3ZWVuIGNhbGxzLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJBdGsuY3BwOgorCiAyMDA5LTA3LTI3ICBNaWNoZWxhbmdlbG8gRGUgU2lt
b25lICA8bWljZGVzaW1AZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckF0ay5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAppbmRleCA4MGViOWFjLi40MGU1ZjMwIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
QXRrLmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyQXRrLmNwcApAQCAtNTYyLDEwICs1NjIsNiBAQCBzdGF0aWMgZ2NoYXIqIGNvbnZl
cnRVbmlDaGFyVG9VVEY4KGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBnaW50IGxlbmd0aCwgaW50
IGZybwogCiBzdGF0aWMgUGFuZ29MYXlvdXQqIGdldFBhbmdvTGF5b3V0Rm9yQXRrKEF0a1RleHQq
IHRleHRPYmplY3QpCiB7Ci0gICAgZ3BvaW50ZXIgZGF0YSA9IGdfb2JqZWN0X2dldF9kYXRhKEdf
T0JKRUNUKHRleHRPYmplY3QpLCAid2Via2l0LWFjY2Vzc2libGUtcGFuZ28tbGF5b3V0Iik7Ci0g
ICAgaWYgKGRhdGEpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQYW5nb0xheW91dCo+KGRh
dGEpOwotCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCA9IGNvcmUodGV4dE9i
amVjdCk7CiAKICAgICBIb3N0V2luZG93KiBob3N0V2luZG93ID0gY29yZU9iamVjdC0+ZG9jdW1l
bnQoKS0+dmlldygpLT5ob3N0V2luZG93KCk7Ci0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42544</attachid>
            <date>2009-11-04 21:17:31 -0800</date>
            <delta_ts>2009-11-23 13:02:26 -0800</delta_ts>
            <desc>Fix for the issue in comment 59</desc>
            <filename>25415-jd.1.patch</filename>
            <type>text/plain</type>
            <size>2296</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSA2NTgzYzgyNGFmMzJkMThjNWI5YThmNWMyYmJhMWE4OTllOTc3OGU2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgRGlnZ3MgPGpvYW5tYXJpZS5kaWdnc0BnbWFp
bC5jb20+CkRhdGU6IFdlZCwgNCBOb3YgMjAwOSAyMzo1ODo1MSAtMDUwMApTdWJqZWN0OiBbUEFU
Q0hdIDIwMDktMTEtMDQgIEpvYW5tYXJpZSBEaWdncyAgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5j
b20+CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MTUKICAgICAgICBbR1RLXVtBVEtd
IFBsZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgZ2V0X3RleHRfYXRfb2Zmc2V0CgogICAgICAg
IFdoZW4gYnVpbGRpbmcgdXAgdGhlIHBhbmdvIGxheW91dCBmcm9tIHRleHQgYm94ZXMsIG9ubHkg
YXBwZW5kIGEKICAgICAgICBuZXdsaW5lIGNoYXIgYWZ0ZXIgdmVyaWZ5aW5nIHRoZXJlIGFyZSBu
byBtb3JlIGJveGVzIG9uIHRoaXMgbGluZS4KCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9B
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6CiAgICAgICAgKGdldFBhbmdvTGF5b3V0
Rm9yQXRrKToKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMTMgKysrKysrKysrKysrKwogLi4uL2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlckF0ay5jcHAgICAgICAgICAgfCAgICAzICsrLQogMiBmaWxlcyBjaGFuZ2VkLCAxNSBp
bnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDVlMmU4Yy4uZmUzZDkyNyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAwOS0xMS0wNCAgSm9hbm1hcmllIERpZ2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWls
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MTUKKyAgICAgICAgW0dU
S11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGdldF90ZXh0X2F0X29mZnNldAor
CisgICAgICAgIFdoZW4gYnVpbGRpbmcgdXAgdGhlIHBhbmdvIGxheW91dCBmcm9tIHRleHQgYm94
ZXMsIG9ubHkgYXBwZW5kIGEKKyAgICAgICAgbmV3bGluZSBjaGFyIGFmdGVyIHZlcmlmeWluZyB0
aGVyZSBhcmUgbm8gbW9yZSBib3hlcyBvbiB0aGlzIGxpbmUuCisKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6CisgICAgICAgIChn
ZXRQYW5nb0xheW91dEZvckF0ayk6CisKIDIwMDktMTEtMDMgIFNpbW9uIEhhdXNtYW5uICA8aGF1
c21hbm5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBmb3IgV2Vi
SW5zcGVjdG9yIHdpdGggUXQgYnVpbGQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcCBiL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCmluZGV4IDgwYjVh
M2QuLjdjNzkxMDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9n
dGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCkBAIC04NjIsNyArODYyLDggQEAg
c3RhdGljIFBhbmdvTGF5b3V0KiBnZXRQYW5nb0xheW91dEZvckF0ayhBdGtUZXh0KiB0ZXh0T2Jq
ZWN0KQogICAgIHdoaWxlIChib3gpIHsKICAgICAgICAgZ2NoYXIgKnRleHQgPSBjb252ZXJ0VW5p
Q2hhclRvVVRGOChyZW5kZXJUZXh0LT5jaGFyYWN0ZXJzKCksIHJlbmRlclRleHQtPnRleHRMZW5n
dGgoKSwgYm94LT5zdGFydCgpLCBib3gtPmVuZCgpKTsKICAgICAgICAgZ19zdHJpbmdfYXBwZW5k
KHN0ciwgdGV4dCk7Ci0gICAgICAgIGdfc3RyaW5nX2FwcGVuZChzdHIsICJcbiIpOworICAgICAg
ICBpZiAoIWJveC0+bmV4dE9uTGluZUV4aXN0cygpKQorICAgICAgICAgICAgZ19zdHJpbmdfYXBw
ZW5kKHN0ciwgIlxuIik7CiAgICAgICAgIGJveCA9IGJveC0+bmV4dFRleHRCb3goKTsKICAgICB9
CiAKLS0gCjEuNi4zLjMKCg==
</data>
<flag name="review"
          id="24092"
          type_id="1"
          status="-"
          setter="xan.lopez"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42712</attachid>
            <date>2009-11-08 02:36:48 -0800</date>
            <delta_ts>2009-11-08 15:07:10 -0800</delta_ts>
            <desc>Fix for the issue in comment 41, 55</desc>
            <filename>25415-crasher55.patch</filename>
            <type>text/plain</type>
            <size>1990</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSA3ZDhjYjlmNDM2ZDk4MTBmYzBhYjRjY2JlZTJlMDRkMjViODY0NDE5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgRGlnZ3MgPGpvYW5tYXJpZS5kaWdnc0BnbWFp
bC5jb20+CkRhdGU6IFN1biwgOCBOb3YgMjAwOSAwNToyMjozMyAtMDUwMApTdWJqZWN0OiBbUEFU
Q0hdIDIwMDktMTEtMDggIEpvYW5tYXJpZSBEaWdncyAgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5j
b20+CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MTUKICAgICAgICBbR1RLXVtBVEtd
IFBsZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgZ2V0X3RleHRfYXRfb2Zmc2V0CgogICAgICAg
IEZpeCBhIGNyYXNoZXIgdGhhdCBvY2N1cnJlZCB3aXRoIHRleHQgd2hpY2ggaW5jbHVkZWQgbmV3
bGluZQogICAgICAgIGNoYXJzIGluIHRoZSBtYXJrdXAuCgogICAgICAgICogYWNjZXNzaWJpbGl0
eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgogICAgICAgIChjb252ZXJ0
VW5pQ2hhclRvVVRGOCk6Ci0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEzICsrKysrKysrKysrKysKIC4uLi9ndGsvQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJBdGsuY3BwICAgICAgICAgIHwgICAgMSAtCiAyIGZpbGVzIGNoYW5nZWQs
IDEzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNWU0MDI2Li45N2FmYTMzIDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDA5LTExLTA4ICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NA
Z21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQxNQorICAgICAg
ICBbR1RLXVtBVEtdIFBsZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgZ2V0X3RleHRfYXRfb2Zm
c2V0CisKKyAgICAgICAgRml4IGEgY3Jhc2hlciB0aGF0IG9jY3VycmVkIHdpdGggdGV4dCB3aGlj
aCBpbmNsdWRlZCBuZXdsaW5lCisgICAgICAgIGNoYXJzIGluIHRoZSBtYXJrdXAuCisKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6
CisgICAgICAgIChjb252ZXJ0VW5pQ2hhclRvVVRGOCk6CisKIDIwMDktMTEtMDcgIERhbmllbCBC
YXRlcyAgPGRiYXRlc0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckF0ay5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAppbmRleCAzMzhhMDNjLi5iZmU0MDE4IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
QXRrLmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyQXRrLmNwcApAQCAtODU2LDcgKzg1Niw2IEBAIHN0YXRpYyBnY2hhciogY29udmVy
dFVuaUNoYXJUb1VURjgoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGdpbnQgbGVuZ3RoLCBpbnQg
ZnJvCiAgICAgICAgIGlmIChpbmRleCA9PSBzdGFydCkKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBnX3N0cmluZ19hcHBlbmRfYyhyZXQsICcgJyk7Ci0gICAgICAgIHV0ZjhTdHJpbmcgKz0g
c3RhcnQ7CiAgICAgICAgIGxlbiAtPSBzdGFydDsKICAgICB9CiAKLS0gCjEuNi4zLjMKCg==
</data>
<flag name="review"
          id="24272"
          type_id="1"
          status="-"
          setter="xan.lopez"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42720</attachid>
            <date>2009-11-08 15:07:10 -0800</date>
            <delta_ts>2009-11-08 16:27:27 -0800</delta_ts>
            <desc>What about....? (for the comment 41, 55 crasher)</desc>
            <filename>25415-crasher55.patch</filename>
            <type>text/plain</type>
            <size>1999</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSA0OWIxYWMyYWFiNDQ4ZGU5ZmViZWViOTM2ZTE1YTIyYmJjZGMwMjgyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgRGlnZ3MgPGpvYW5tYXJpZS5kaWdnc0BnbWFp
bC5jb20+CkRhdGU6IFN1biwgOCBOb3YgMjAwOSAwNToyMjozMyAtMDUwMApTdWJqZWN0OiBbUEFU
Q0hdIDIwMDktMTEtMDggIEpvYW5tYXJpZSBEaWdncyAgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5j
b20+CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MTUKICAgICAgICBbR1RLXVtBVEtd
IFBsZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgZ2V0X3RleHRfYXRfb2Zmc2V0CgogICAgICAg
IEZpeCBhIGNyYXNoZXIgdGhhdCBvY2N1cnJlZCB3aXRoIHRleHQgd2hpY2ggaW5jbHVkZWQgbmV3
bGluZQogICAgICAgIGNoYXJzIGluIHRoZSBtYXJrdXAuCgogICAgICAgICogYWNjZXNzaWJpbGl0
eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgogICAgICAgIChjb252ZXJ0
VW5pQ2hhclRvVVRGOCk6Ci0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEzICsrKysrKysrKysrKysKIC4uLi9ndGsvQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJBdGsuY3BwICAgICAgICAgIHwgICAgMSArCiAyIGZpbGVzIGNoYW5nZWQs
IDE0IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNWU0MDI2Li45N2FmYTMzIDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDA5LTExLTA4ICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NA
Z21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQxNQorICAgICAg
ICBbR1RLXVtBVEtdIFBsZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgZ2V0X3RleHRfYXRfb2Zm
c2V0CisKKyAgICAgICAgRml4IGEgY3Jhc2hlciB0aGF0IG9jY3VycmVkIHdpdGggdGV4dCB3aGlj
aCBpbmNsdWRlZCBuZXdsaW5lCisgICAgICAgIGNoYXJzIGluIHRoZSBtYXJrdXAuCisKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6
CisgICAgICAgIChjb252ZXJ0VW5pQ2hhclRvVVRGOCk6CisKIDIwMDktMTEtMDcgIERhbmllbCBC
YXRlcyAgPGRiYXRlc0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckF0ay5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAppbmRleCAzMzhhMDNjLi44MjU0YTRjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
QXRrLmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyQXRrLmNwcApAQCAtODYwLDYgKzg2MCw3IEBAIHN0YXRpYyBnY2hhciogY29udmVy
dFVuaUNoYXJUb1VURjgoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGdpbnQgbGVuZ3RoLCBpbnQg
ZnJvCiAgICAgICAgIGxlbiAtPSBzdGFydDsKICAgICB9CiAKKyAgICB1dGY4U3RyaW5nID0gdXRm
OFN1YnN0cihzdHJpbmdVVEY4LmRhdGEoKSwgZnJvbSwgdG8pOwogICAgIGdfZnJlZSh1dGY4U3Ry
aW5nKTsKICAgICByZXR1cm4gZ19zdHJpbmdfZnJlZShyZXQsIEZBTFNFKTsKIH0KLS0gCjEuNi4z
LjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42722</attachid>
            <date>2009-11-08 16:27:27 -0800</date>
            <delta_ts>2009-11-09 00:18:13 -0800</delta_ts>
            <desc>Use temporary pointer to advance the string (comment 41, 55 crasher)</desc>
            <filename>25415-crasher55.patch</filename>
            <type>text/plain</type>
            <size>2575</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSAzMDFhNDYxODBmODBmMGI0YzY5YmM1YTlhMjEwZDdkN2IxMTAzYjcwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgRGlnZ3MgPGpvYW5tYXJpZS5kaWdnc0BnbWFp
bC5jb20+CkRhdGU6IFN1biwgOCBOb3YgMjAwOSAwNToyMjozMyAtMDUwMApTdWJqZWN0OiBbUEFU
Q0hdIDIwMDktMTEtMDggIEpvYW5tYXJpZSBEaWdncyAgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5j
b20+CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MTUKICAgICAgICBbR1RLXVtBVEtd
IFBsZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgZ2V0X3RleHRfYXRfb2Zmc2V0CgogICAgICAg
IEZpeCBhIGNyYXNoZXIgdGhhdCBvY2N1cnJlZCB3aXRoIHRleHQgd2hpY2ggaW5jbHVkZWQgbmV3
bGluZQogICAgICAgIGNoYXJzIGluIHRoZSBtYXJrdXAuCgogICAgICAgICogYWNjZXNzaWJpbGl0
eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgogICAgICAgIChjb252ZXJ0
VW5pQ2hhclRvVVRGOCk6Ci0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEzICsrKysrKysrKysrKysKIC4uLi9ndGsvQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJBdGsuY3BwICAgICAgICAgIHwgICAgNyArKysrLS0tCiAyIGZpbGVzIGNo
YW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNWU0MDI2Li45N2FmYTMz
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDA5LTExLTA4ICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUu
ZGlnZ3NAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQxNQor
ICAgICAgICBbR1RLXVtBVEtdIFBsZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgZ2V0X3RleHRf
YXRfb2Zmc2V0CisKKyAgICAgICAgRml4IGEgY3Jhc2hlciB0aGF0IG9jY3VycmVkIHdpdGggdGV4
dCB3aGljaCBpbmNsdWRlZCBuZXdsaW5lCisgICAgICAgIGNoYXJzIGluIHRoZSBtYXJrdXAuCisK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0
ay5jcHA6CisgICAgICAgIChjb252ZXJ0VW5pQ2hhclRvVVRGOCk6CisKIDIwMDktMTEtMDcgIERh
bmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0Fj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAppbmRleCAzMzhhMDNjLi42N2ZkMjlkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQXRrLmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyQXRrLmNwcApAQCAtODQ2LDE3ICs4NDYsMTggQEAgc3RhdGljIGdjaGFy
KiBjb252ZXJ0VW5pQ2hhclRvVVRGOChjb25zdCBVQ2hhciogY2hhcmFjdGVycywgZ2ludCBsZW5n
dGgsIGludCBmcm8KICAgICB9CiAgICAgZ3NpemUgbGVuID0gc3RybGVuKHV0ZjhTdHJpbmcpOwog
ICAgIEdTdHJpbmcqIHJldCA9IGdfc3RyaW5nX25ld19sZW4oTlVMTCwgbGVuKTsKKyAgICBnY2hh
ciogcHRyID0gdXRmOFN0cmluZzsKIAogICAgIC8vIFdlYkNvcmUgaW50cm9kdWNlcyBsaW5lIGJy
ZWFrcyBpbiB0aGUgdGV4dCB0aGF0IGRvIG5vdCByZWZsZWN0CiAgICAgLy8gdGhlIGxheW91dCB5
b3Ugc2VlIG9uIHRoZSBzY3JlZW4sIHJlcGxhY2UgdGhlbSB3aXRoIHNwYWNlcwogICAgIHdoaWxl
IChsZW4gPiAwKSB7CiAgICAgICAgIGdpbnQgaW5kZXgsIHN0YXJ0OwotICAgICAgICBwYW5nb19m
aW5kX3BhcmFncmFwaF9ib3VuZGFyeSh1dGY4U3RyaW5nLCBsZW4sICZpbmRleCwgJnN0YXJ0KTsK
LSAgICAgICAgZ19zdHJpbmdfYXBwZW5kX2xlbihyZXQsIHV0ZjhTdHJpbmcsIGluZGV4KTsKKyAg
ICAgICAgcGFuZ29fZmluZF9wYXJhZ3JhcGhfYm91bmRhcnkocHRyLCBsZW4sICZpbmRleCwgJnN0
YXJ0KTsKKyAgICAgICAgZ19zdHJpbmdfYXBwZW5kX2xlbihyZXQsIHB0ciwgaW5kZXgpOwogICAg
ICAgICBpZiAoaW5kZXggPT0gc3RhcnQpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZ19z
dHJpbmdfYXBwZW5kX2MocmV0LCAnICcpOwotICAgICAgICB1dGY4U3RyaW5nICs9IHN0YXJ0Owor
ICAgICAgICBwdHIgKz0gc3RhcnQ7CiAgICAgICAgIGxlbiAtPSBzdGFydDsKICAgICB9CiAKLS0g
CjEuNi4zLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42855</attachid>
            <date>2009-11-10 02:39:07 -0800</date>
            <delta_ts>2009-11-26 21:30:23 -0800</delta_ts>
            <desc>Fix for the issue in comment 57</desc>
            <filename>25415-comment57.patch</filename>
            <type>text/plain</type>
            <size>3348</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSA0ZGY1ZGIxYTgyYTc4ZmY0YjMzMGU5ZTI4NjAxZWJhMmZhNjJhZDkyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgRGlnZ3MgPGpvYW5tYXJpZS5kaWdnc0BnbWFp
bC5jb20+CkRhdGU6IFR1ZSwgMTAgTm92IDIwMDkgMDU6MjU6MDkgLTA1MDAKU3ViamVjdDogW1BB
VENIIDMvM10gMjAwOS0xMS0xMCAgSm9hbm1hcmllIERpZ2dzICA8am9hbm1hcmllLmRpZ2dzQGdt
YWlsLmNvbT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQxNQogICAgICAgIFtHVEtd
W0FUS10gUGxlYXNlIGltcGxlbWVudCBzdXBwb3J0IGZvciBnZXRfdGV4dF9hdF9vZmZzZXQKCiAg
ICAgICAgRWxpbWluYXRlIHRoZSBzZWdmYXVsdHMgd2hpY2ggb2NjdXIgd2hlbiBhY2Nlc3Npbmcg
dGhlIHRleHQgaW50ZXJmYWNlIG5vdwogICAgICAgIGltcGxlbWVudGVkIGJ5IHRleHQgY29udHJv
bHMuCgogICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJBdGsuY3BwOgogICAgICAgIChnZXRQYW5nb0xheW91dEZvckF0ayk6Ci0tLQogV2ViQ29yZS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrKysrKysr
KysKIC4uLi9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwICAgICAgICAgIHwg
ICAyNSArKysrKysrKysrKysrKystLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMo
KyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA5Y2MwZTIxLi41OTlkNzNkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDA5
LTExLTEwICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NAZ21haWwuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQxNQorICAgICAgICBbR1RLXVtBVEtdIFBs
ZWFzZSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgZ2V0X3RleHRfYXRfb2Zmc2V0CisKKyAgICAgICAg
RWxpbWluYXRlIHRoZSBzZWdmYXVsdHMgd2hpY2ggb2NjdXIgd2hlbiBhY2Nlc3NpbmcgdGhlIHRl
eHQgaW50ZXJmYWNlIG5vdworICAgICAgICBpbXBsZW1lbnRlZCBieSB0ZXh0IGNvbnRyb2xzLgor
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJB
dGsuY3BwOgorICAgICAgICAoZ2V0UGFuZ29MYXlvdXRGb3JBdGspOgorCiAyMDA5LTExLTA5ICBK
b2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NAZ21haWwuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAgYi9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNw
cAppbmRleCA4MzFiMmZkLi4zY2ZjNDc4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAorKysgYi9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcApAQCAtODg2
LDEzICs4ODYsMjYgQEAgc3RhdGljIFBhbmdvTGF5b3V0KiBnZXRQYW5nb0xheW91dEZvckF0ayhB
dGtUZXh0KiB0ZXh0T2JqZWN0KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8vIENyZWF0ZSBh
IHN0cmluZyB3aXRoIHRoZSBsYXlvdXQgYXMgaXQgYXBwZWFycyBvbiB0aGUgc2NyZWVuCi0gICAg
SW5saW5lVGV4dEJveCogYm94ID0gcmVuZGVyVGV4dC0+Zmlyc3RUZXh0Qm94KCk7Ci0gICAgd2hp
bGUgKGJveCkgewotICAgICAgICBnY2hhciogdGV4dCA9IGNvbnZlcnRVbmlDaGFyVG9VVEY4KHJl
bmRlclRleHQtPmNoYXJhY3RlcnMoKSwgcmVuZGVyVGV4dC0+dGV4dExlbmd0aCgpLCBib3gtPnN0
YXJ0KCksIGJveC0+ZW5kKCkpOwotICAgICAgICBnX3N0cmluZ19hcHBlbmQoc3RyLCB0ZXh0KTsK
LSAgICAgICAgaWYgKCFib3gtPm5leHRPbkxpbmVFeGlzdHMoKSkKKyAgICBpZiAoYWNjT2JqZWN0
LT5pc1RleHRDb250cm9sKCkpIHsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBQbGFpblRl
eHRSYW5nZSByYW5nZSA9IGFjY09iamVjdC0+ZG9BWFJhbmdlRm9yTGluZShpKTsKKyAgICAgICAg
d2hpbGUgKHJhbmdlLmxlbmd0aCkgeworICAgICAgICAgICAgLy8gV2hlbiBhIGxpbmUgb2YgdGV4
dCB3cmFwcyBpbiBhIHRleHQgYXJlYSwgdGhlIGZpbmFsIHNwYWNlIGlzIHJlbW92ZWQuCisgICAg
ICAgICAgICByYW5nZS5sZW5ndGggLT0gMTsKKyAgICAgICAgICAgIFN0cmluZyBsaW5lVGV4dCA9
IGFjY09iamVjdC0+ZG9BWFN0cmluZ0ZvclJhbmdlKHJhbmdlKTsKKyAgICAgICAgICAgIGdfc3Ry
aW5nX2FwcGVuZChzdHIsIGxpbmVUZXh0LnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgZ19z
dHJpbmdfYXBwZW5kKHN0ciwgIlxuIik7Ci0gICAgICAgIGJveCA9IGJveC0+bmV4dFRleHRCb3go
KTsKKyAgICAgICAgICAgIHJhbmdlID0gYWNjT2JqZWN0LT5kb0FYUmFuZ2VGb3JMaW5lKCsraSk7
CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBJbmxpbmVUZXh0Qm94KiBib3ggPSBy
ZW5kZXJUZXh0LT5maXJzdFRleHRCb3goKTsKKyAgICAgICAgd2hpbGUgKGJveCkgeworICAgICAg
ICAgICAgZ2NoYXIqIHRleHQgPSBjb252ZXJ0VW5pQ2hhclRvVVRGOChyZW5kZXJUZXh0LT5jaGFy
YWN0ZXJzKCksIHJlbmRlclRleHQtPnRleHRMZW5ndGgoKSwgYm94LT5zdGFydCgpLCBib3gtPmVu
ZCgpKTsKKyAgICAgICAgICAgIGdfc3RyaW5nX2FwcGVuZChzdHIsIHRleHQpOworICAgICAgICAg
ICAgaWYgKCFib3gtPm5leHRPbkxpbmVFeGlzdHMoKSkKKyAgICAgICAgICAgICAgICBnX3N0cmlu
Z19hcHBlbmQoc3RyLCAiXG4iKTsKKyAgICAgICAgICAgIGJveCA9IGJveC0+bmV4dFRleHRCb3go
KTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIFBhbmdvTGF5b3V0KiBsYXlvdXQgPSBndGtfd2lk
Z2V0X2NyZWF0ZV9wYW5nb19sYXlvdXQoc3RhdGljX2Nhc3Q8R3RrV2lkZ2V0Kj4od2ViVmlldyks
IGdfc3RyaW5nX2ZyZWUoc3RyLCBGQUxTRSkpOwotLSAKMS42LjMuMwoK
</data>
<flag name="review"
          id="24466"
          type_id="1"
          status="-"
          setter="xan.lopez"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43725</attachid>
            <date>2009-11-23 13:02:26 -0800</date>
            <delta_ts>2009-11-24 10:03:32 -0800</delta_ts>
            <desc>Fix for the issue in comment 59 - with updated unit test and comment</desc>
            <filename>25415-jd.2.patch</filename>
            <type>text/plain</type>
            <size>3837</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSAyMTliZWU5OWZkODI5MDY5OGFlNmQwN2JiNTQ5MGVkNWJlZmZkNGMzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgRGlnZ3MgPGpvYW5tYXJpZS5kaWdnc0BnbWFp
bC5jb20+CkRhdGU6IE1vbiwgMjMgTm92IDIwMDkgMTU6NTA6NTcgLTA1MDAKU3ViamVjdDogW1BB
VENIXSAyMDA5LTExLTIzICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NAZ21haWwu
Y29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDE1CiAgICAgICAgW0dUS11bQVRL
XSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGdldF90ZXh0X2F0X29mZnNldAoKICAgICAg
ICBXaGVuIGJ1aWxkaW5nIHVwIHRoZSBwYW5nbyBsYXlvdXQgZnJvbSB0ZXh0IGJveGVzLCBvbmx5
IGFwcGVuZCBhCiAgICAgICAgbmV3bGluZSBjaGFyIGFmdGVyIHZlcmlmeWluZyB0aGVyZSBhcmUg
bm8gbW9yZSBib3hlcyBvbiB0aGlzIGxpbmUuCgogICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsv
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgogICAgICAgIChnZXRQYW5nb0xheW91
dEZvckF0ayk6CgogICAgICAgICogLi4vV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMKLS0tCiBX
ZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMg
KysrKysrKysrKysrKwogLi4uL2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAg
ICAgICAgICAgfCAgICA1ICsrKystCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTIgKysrKysrKysrKysrCiBXZWJLaXQvZ3RrL3Rlc3RzL3Rl
c3RhdGsuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIDQgZmlsZXMgY2hhbmdl
ZCwgMzAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM3YWZkZTIuLjg4NTFkMTcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMDktMTEtMjMgIEpvYW5tYXJpZSBEaWdncyAgPGpvYW5tYXJpZS5kaWdn
c0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDE1CisgICAg
ICAgIFtHVEtdW0FUS10gUGxlYXNlIGltcGxlbWVudCBzdXBwb3J0IGZvciBnZXRfdGV4dF9hdF9v
ZmZzZXQKKworICAgICAgICBXaGVuIGJ1aWxkaW5nIHVwIHRoZSBwYW5nbyBsYXlvdXQgZnJvbSB0
ZXh0IGJveGVzLCBvbmx5IGFwcGVuZCBhCisgICAgICAgIG5ld2xpbmUgY2hhciBhZnRlciB2ZXJp
ZnlpbmcgdGhlcmUgYXJlIG5vIG1vcmUgYm94ZXMgb24gdGhpcyBsaW5lLgorCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgorICAg
ICAgICAoZ2V0UGFuZ29MYXlvdXRGb3JBdGspOgorCiAyMDA5LTExLTIzICBEaXJrIFNjaHVsemUg
IDxrcml0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTmlrb2xhcyBaaW1tZXJt
YW5uLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckF0ay5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAppbmRleCBkNGY0YmE4Li4zMDgwMDdjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
QXRrLmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyQXRrLmNwcApAQCAtODkwLDcgKzg5MCwxMCBAQCBzdGF0aWMgUGFuZ29MYXlvdXQq
IGdldFBhbmdvTGF5b3V0Rm9yQXRrKEF0a1RleHQqIHRleHRPYmplY3QpCiAgICAgd2hpbGUgKGJv
eCkgewogICAgICAgICBnY2hhciogdGV4dCA9IGNvbnZlcnRVbmlDaGFyVG9VVEY4KHJlbmRlclRl
eHQtPmNoYXJhY3RlcnMoKSwgcmVuZGVyVGV4dC0+dGV4dExlbmd0aCgpLCBib3gtPnN0YXJ0KCks
IGJveC0+ZW5kKCkpOwogICAgICAgICBnX3N0cmluZ19hcHBlbmQoc3RyLCB0ZXh0KTsKLSAgICAg
ICAgZ19zdHJpbmdfYXBwZW5kKHN0ciwgIlxuIik7CisgICAgICAgIC8vIE5ld2xpbmUgY2hhcnMg
aW4gdGhlIHNvdXJjZSByZXN1bHQgaW4gc2VwYXJhdGUgdGV4dCBib3hlcywgc28gY2hlY2sKKyAg
ICAgICAgLy8gYmVmb3JlIGFkZGluZyBhIG5ld2xpbmUgaW4gdGhlIGxheW91dC4gU2VlIGJ1ZyAy
NTQxNSBjb21tZW50ICM3OC4KKyAgICAgICAgaWYgKCFib3gtPm5leHRPbkxpbmVFeGlzdHMoKSkK
KyAgICAgICAgICAgIGdfc3RyaW5nX2FwcGVuZChzdHIsICJcbiIpOwogICAgICAgICBib3ggPSBi
b3gtPm5leHRUZXh0Qm94KCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGZlMzNkZjEuLmI3NmY1MGEgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDktMTEtMjMgIEpvYW5tYXJpZSBEaWdncyAgPGpvYW5tYXJpZS5k
aWdnc0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDE1Cisg
ICAgICAgIFtHVEtdW0FUS10gUGxlYXNlIGltcGxlbWVudCBzdXBwb3J0IGZvciBnZXRfdGV4dF9h
dF9vZmZzZXQKKworICAgICAgICBXaGVuIGJ1aWxkaW5nIHVwIHRoZSBwYW5nbyBsYXlvdXQgZnJv
bSB0ZXh0IGJveGVzLCBvbmx5IGFwcGVuZCBhCisgICAgICAgIG5ld2xpbmUgY2hhciBhZnRlciB2
ZXJpZnlpbmcgdGhlcmUgYXJlIG5vIG1vcmUgYm94ZXMgb24gdGhpcyBsaW5lLgorCisgICAgICAg
ICogdGVzdHMvdGVzdGF0ay5jCisKIDIwMDktMTEtMTkgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1h
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNp
bHZhLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMgYi9XZWJLaXQvZ3Rr
L3Rlc3RzL3Rlc3RhdGsuYwppbmRleCBlNDc4OThiLi4xYjFmM2Y5IDEwMDY0NAotLS0gYS9XZWJL
aXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYworKysgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYwpA
QCAtMjYsNyArMjYsNyBAQAogCiAjaWYgR0xJQl9DSEVDS19WRVJTSU9OKDIsIDE2LCAwKSAmJiBH
VEtfQ0hFQ0tfVkVSU0lPTigyLCAxNCwgMCkKIAotc3RhdGljIGNvbnN0IGNoYXIqIGNvbnRlbnRz
ID0gIjxodG1sPjxib2R5PjxwPlRoaXMgaXMgYSB0ZXN0LiBUaGlzIGlzIHRoZSBzZWNvbmQgc2Vu
dGVuY2UuIEFuZCB0aGlzIHRoZSB0aGlyZC48L3A+PC9ib2R5PjwvaHRtbD4iOworc3RhdGljIGNv
bnN0IGNoYXIqIGNvbnRlbnRzID0gIjxodG1sPjxib2R5PjxwPlRoaXMgaXMgYSB0ZXN0LiBcblxu
VGhpc1xuIGlzIHRoZSBzZWNvbmQgc2VudGVuY2UuIEFuZCB0aGlzIHRoZSB0aGlyZC48L3A+PC9i
b2R5PjwvaHRtbD4iOwogCiBzdGF0aWMgZ2Jvb2xlYW4gYmFpbF9vdXQoR01haW5Mb29wKiBsb29w
KQogewotLSAKMS42LjMuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43778</attachid>
            <date>2009-11-24 10:03:32 -0800</date>
            <delta_ts>2009-11-24 10:47:22 -0800</delta_ts>
            <desc>Fix for the issue in comment 59 - with new unit test and comment</desc>
            <filename>25415-jd.3.patch</filename>
            <type>text/plain</type>
            <size>5564</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSAyOWUzOTBkNWM1Nzc3MDEzOWZmMTNjN2YwMTNkMzVhNWQyNzFjOGU4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgRGlnZ3MgPGpvYW5tYXJpZS5kaWdnc0BnbWFp
bC5jb20+CkRhdGU6IE1vbiwgMjMgTm92IDIwMDkgMTU6NTA6NTcgLTA1MDAKU3ViamVjdDogW1BB
VENIXSAyMDA5LTExLTI0ICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NAZ21haWwu
Y29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDE1CiAgICAgICAgW0dUS11bQVRL
XSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGdldF90ZXh0X2F0X29mZnNldAoKICAgICAg
ICBXaGVuIGJ1aWxkaW5nIHVwIHRoZSBwYW5nbyBsYXlvdXQgZnJvbSB0ZXh0IGJveGVzLCBvbmx5
IGFwcGVuZCBhCiAgICAgICAgbmV3bGluZSBjaGFyIGFmdGVyIHZlcmlmeWluZyB0aGVyZSBhcmUg
bm8gbW9yZSBib3hlcyBvbiB0aGlzIGxpbmUuCgogICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsv
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgogICAgICAgIChnZXRQYW5nb0xheW91
dEZvckF0ayk6CgogICAgICAgICogLi4vV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMKICAgICAg
ICAodGVzdF93ZWJraXRfYXRrX2dldF90ZXh0X2F0X29mZnNldF9uZXdsaW5lcyk6CiAgICAgICAg
KG1haW4pOgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxMyArKysrKysrCiAuLi4vZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
QXRrLmNwcCAgICAgICAgICB8ICAgIDUgKystCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTQgKysrKysrKysKIFdlYktpdC9ndGsvdGVzdHMv
dGVzdGF0ay5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNiArKysrKysrKysrKysrKysr
KysrKwogNCBmaWxlcyBjaGFuZ2VkLCA2NyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzdhZmRlMi4uNmRjNzEyNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0xMS0yNCAgSm9hbm1hcmllIERp
Z2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjU0MTUKKyAgICAgICAgW0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1cHBv
cnQgZm9yIGdldF90ZXh0X2F0X29mZnNldAorCisgICAgICAgIFdoZW4gYnVpbGRpbmcgdXAgdGhl
IHBhbmdvIGxheW91dCBmcm9tIHRleHQgYm94ZXMsIG9ubHkgYXBwZW5kIGEKKyAgICAgICAgbmV3
bGluZSBjaGFyIGFmdGVyIHZlcmlmeWluZyB0aGVyZSBhcmUgbm8gbW9yZSBib3hlcyBvbiB0aGlz
IGxpbmUuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlckF0ay5jcHA6CisgICAgICAgIChnZXRQYW5nb0xheW91dEZvckF0ayk6CisKIDIwMDkt
MTEtMjMgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBOaWtvbGFzIFppbW1lcm1hbm4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcCBiL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCmluZGV4IGQ0ZjRi
YTguLjMwODAwN2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9n
dGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCkBAIC04OTAsNyArODkwLDEwIEBA
IHN0YXRpYyBQYW5nb0xheW91dCogZ2V0UGFuZ29MYXlvdXRGb3JBdGsoQXRrVGV4dCogdGV4dE9i
amVjdCkKICAgICB3aGlsZSAoYm94KSB7CiAgICAgICAgIGdjaGFyKiB0ZXh0ID0gY29udmVydFVu
aUNoYXJUb1VURjgocmVuZGVyVGV4dC0+Y2hhcmFjdGVycygpLCByZW5kZXJUZXh0LT50ZXh0TGVu
Z3RoKCksIGJveC0+c3RhcnQoKSwgYm94LT5lbmQoKSk7CiAgICAgICAgIGdfc3RyaW5nX2FwcGVu
ZChzdHIsIHRleHQpOwotICAgICAgICBnX3N0cmluZ19hcHBlbmQoc3RyLCAiXG4iKTsKKyAgICAg
ICAgLy8gTmV3bGluZSBjaGFycyBpbiB0aGUgc291cmNlIHJlc3VsdCBpbiBzZXBhcmF0ZSB0ZXh0
IGJveGVzLCBzbyBjaGVjaworICAgICAgICAvLyBiZWZvcmUgYWRkaW5nIGEgbmV3bGluZSBpbiB0
aGUgbGF5b3V0LiBTZWUgYnVnIDI1NDE1IGNvbW1lbnQgIzc4LgorICAgICAgICBpZiAoIWJveC0+
bmV4dE9uTGluZUV4aXN0cygpKQorICAgICAgICAgICAgZ19zdHJpbmdfYXBwZW5kKHN0ciwgIlxu
Iik7CiAgICAgICAgIGJveCA9IGJveC0+bmV4dFRleHRCb3goKTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZmUz
M2RmMS4uNWU5Y2M0NyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAwOS0xMS0yNCAgSm9hbm1hcmll
IERpZ2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjU0MTUKKyAgICAgICAgW0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1
cHBvcnQgZm9yIGdldF90ZXh0X2F0X29mZnNldAorCisgICAgICAgIFdoZW4gYnVpbGRpbmcgdXAg
dGhlIHBhbmdvIGxheW91dCBmcm9tIHRleHQgYm94ZXMsIG9ubHkgYXBwZW5kIGEKKyAgICAgICAg
bmV3bGluZSBjaGFyIGFmdGVyIHZlcmlmeWluZyB0aGVyZSBhcmUgbm8gbW9yZSBib3hlcyBvbiB0
aGlzIGxpbmUuCisKKyAgICAgICAgKiB0ZXN0cy90ZXN0YXRrLmMKKyAgICAgICAgKHRlc3Rfd2Vi
a2l0X2F0a19nZXRfdGV4dF9hdF9vZmZzZXRfbmV3bGluZXMpOgorICAgICAgICAobWFpbik6CisK
IDIwMDktMTEtMTkgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYwppbmRl
eCBlNDc4OThiLi43OWJmNzVjIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsu
YworKysgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYwpAQCAtMjgsNiArMjgsOCBAQAogCiBz
dGF0aWMgY29uc3QgY2hhciogY29udGVudHMgPSAiPGh0bWw+PGJvZHk+PHA+VGhpcyBpcyBhIHRl
c3QuIFRoaXMgaXMgdGhlIHNlY29uZCBzZW50ZW5jZS4gQW5kIHRoaXMgdGhlIHRoaXJkLjwvcD48
L2JvZHk+PC9odG1sPiI7CiAKK3N0YXRpYyBjb25zdCBjaGFyKiBjb250ZW50c1dpdGhOZXdsaW5l
cyA9ICI8aHRtbD48Ym9keT48cD5UaGlzIGlzIGEgdGVzdC4gXG5cblRoaXNcbiBpcyB0aGUgc2Vj
b25kIHNlbnRlbmNlLiBBbmQgdGhpcyB0aGUgdGhpcmQuPC9wPjwvYm9keT48L2h0bWw+IjsKKwog
c3RhdGljIGdib29sZWFuIGJhaWxfb3V0KEdNYWluTG9vcCogbG9vcCkKIHsKICAgICBpZiAoZ19t
YWluX2xvb3BfaXNfcnVubmluZyhsb29wKSkKQEAgLTI1OSw2ICsyNjEsMzkgQEAgc3RhdGljIHZv
aWQgdGVzdF93ZWJraXRfYXRrX2dldF90ZXh0X2F0X29mZnNldCh2b2lkKQogICAgIGdfb2JqZWN0
X3VucmVmKHdlYlZpZXcpOwogfQogCitzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3Rl
eHRfYXRfb2Zmc2V0X25ld2xpbmVzKHZvaWQpCit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmll
dzsKKyAgICBBdGtPYmplY3QqIG9iajsKKyAgICBHTWFpbkxvb3AqIGxvb3A7CisgICAgQXRrVGV4
dCogdGV4dF9vYmo7CisKKyAgICB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdlYmtpdF93ZWJf
dmlld19uZXcoKSk7CisgICAgZ19vYmplY3RfcmVmX3Npbmsod2ViVmlldyk7CisgICAgR3RrQWxs
b2NhdGlvbiBhbGxvYyA9IHsgMCwgMCwgODAwLCA2MDAgfTsKKyAgICBndGtfd2lkZ2V0X3NpemVf
YWxsb2NhdGUoR1RLX1dJREdFVCh3ZWJWaWV3KSwgJmFsbG9jKTsKKyAgICB3ZWJraXRfd2ViX3Zp
ZXdfbG9hZF9zdHJpbmcod2ViVmlldywgY29udGVudHNXaXRoTmV3bGluZXMsIE5VTEwsIE5VTEws
IE5VTEwpOworICAgIGxvb3AgPSBnX21haW5fbG9vcF9uZXcoTlVMTCwgVFJVRSk7CisKKyAgICBn
X3RpbWVvdXRfYWRkKDEwMCwgKEdTb3VyY2VGdW5jKWJhaWxfb3V0LCBsb29wKTsKKyAgICBnX21h
aW5fbG9vcF9ydW4obG9vcCk7CisKKyAgICAvKiBHZXQgdG8gdGhlIGlubmVyIEF0a1RleHQgb2Jq
ZWN0ICovCisgICAgb2JqID0gZ3RrX3dpZGdldF9nZXRfYWNjZXNzaWJsZShHVEtfV0lER0VUKHdl
YlZpZXcpKTsKKyAgICBnX2Fzc2VydChvYmopOworICAgIG9iaiA9IGF0a19vYmplY3RfcmVmX2Fj
Y2Vzc2libGVfY2hpbGQob2JqLCAwKTsKKyAgICBnX2Fzc2VydChvYmopOworICAgIG9iaiA9IGF0
a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQob2JqLCAwKTsKKyAgICBnX2Fzc2VydChvYmop
OworCisgICAgdGV4dF9vYmogPSBBVEtfVEVYVChvYmopOworICAgIGdfYXNzZXJ0KEFUS19JU19U
RVhUKHRleHRfb2JqKSk7CisKKyAgICBydW5fZ2V0X3RleHRfdGVzdHModGV4dF9vYmopOworCisg
ICAgZ19vYmplY3RfdW5yZWYod2ViVmlldyk7Cit9CisKIGludCBtYWluKGludCBhcmdjLCBjaGFy
KiogYXJndikKIHsKICAgICBnX3RocmVhZF9pbml0KE5VTEwpOwpAQCAtMjY3LDYgKzMwMiw3IEBA
IGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICBnX3Rlc3RfYnVnX2Jhc2UoImh0
dHBzOi8vYnVncy53ZWJraXQub3JnLyIpOwogICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9h
dGsvZ2V0X3RleHRfYXRfb2Zmc2V0IiwgdGVzdF93ZWJraXRfYXRrX2dldF90ZXh0X2F0X29mZnNl
dCk7CiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay9nZXRfdGV4dF9hdF9vZmZzZXRf
Zm9ybXMiLCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3RleHRfYXRfb2Zmc2V0X2Zvcm1zKTsKKyAgICBn
X3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL2dldF90ZXh0X2F0X29mZnNldF9uZXdsaW5lcyIs
IHRlc3Rfd2Via2l0X2F0a19nZXRfdGV4dF9hdF9vZmZzZXRfbmV3bGluZXMpOwogICAgIHJldHVy
biBnX3Rlc3RfcnVuICgpOwogfQogCi0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43935</attachid>
            <date>2009-11-26 21:30:23 -0800</date>
            <delta_ts>2009-12-07 07:38:56 -0800</delta_ts>
            <desc>Comment 57 fix with unit tests</desc>
            <filename>25415-comment57-2.patch</filename>
            <type>text/plain</type>
            <size>8295</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSAzOGNkODA4NTI0NWY2YzkwNmM0MmI0ZDhiMjEyODI3YTcxZjVkZDMxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgRGlnZ3MgPGpvYW5tYXJpZS5kaWdnc0BnbWFp
bC5jb20+CkRhdGU6IEZyaSwgMjcgTm92IDIwMDkgMDA6MTg6NTAgLTA1MDAKU3ViamVjdDogW1BB
VENIXSAyMDA5LTExLTI3ICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NAZ21haWwu
Y29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDE1CiAgICAgICAgW0dUS11bQVRL
XSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGdldF90ZXh0X2F0X29mZnNldAoKICAgICAg
ICBFbGltaW5hdGUgdGhlIHNlZ2ZhdWx0cyB3aGljaCBvY2N1ciB3aGVuIGFjY2Vzc2luZyB0aGUg
dGV4dCBpbnRlcmZhY2Ugbm93CiAgICAgICAgaW1wbGVtZW50ZWQgYnkgdGV4dCBjb250cm9scy4K
CiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0
ay5jcHA6CiAgICAgICAgKGdldFBhbmdvTGF5b3V0Rm9yQXRrKToKLS0tCiBXZWJDb3JlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrKwogLi4uL2d0
ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAgICAgICAgICAgfCAgIDMxICsrKysr
Ky0tCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMTUgKysrKwogV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDcyICsrKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDEyMyBp
bnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTgzMTcwYi4uMzQ5ZGI0OSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAwOS0xMS0yNyAgSm9hbm1hcmllIERpZ2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWls
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MTUKKyAgICAgICAgW0dU
S11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGdldF90ZXh0X2F0X29mZnNldAor
CisgICAgICAgIEVsaW1pbmF0ZSB0aGUgc2VnZmF1bHRzIHdoaWNoIG9jY3VyIHdoZW4gYWNjZXNz
aW5nIHRoZSB0ZXh0IGludGVyZmFjZSBub3cKKyAgICAgICAgaW1wbGVtZW50ZWQgYnkgdGV4dCBj
b250cm9scy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAgKGdldFBhbmdvTGF5b3V0Rm9yQXRrKToKKwogMjAw
OS0xMS0yNiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBOb3QgcmV2aWV3ZWQuIEJ1aWxkIGZpeDogcmV2ZXJ0IHI1MTQyMS4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3Bw
IGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0
ay5jcHAKaW5kZXggMzA4MDA3Yy4uYmFmM2IyZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKKysrIGIvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKQEAg
LTg4NiwxNSArODg2LDMwIEBAIHN0YXRpYyBQYW5nb0xheW91dCogZ2V0UGFuZ29MYXlvdXRGb3JB
dGsoQXRrVGV4dCogdGV4dE9iamVjdCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAvLyBDcmVh
dGUgYSBzdHJpbmcgd2l0aCB0aGUgbGF5b3V0IGFzIGl0IGFwcGVhcnMgb24gdGhlIHNjcmVlbgot
ICAgIElubGluZVRleHRCb3gqIGJveCA9IHJlbmRlclRleHQtPmZpcnN0VGV4dEJveCgpOwotICAg
IHdoaWxlIChib3gpIHsKLSAgICAgICAgZ2NoYXIqIHRleHQgPSBjb252ZXJ0VW5pQ2hhclRvVVRG
OChyZW5kZXJUZXh0LT5jaGFyYWN0ZXJzKCksIHJlbmRlclRleHQtPnRleHRMZW5ndGgoKSwgYm94
LT5zdGFydCgpLCBib3gtPmVuZCgpKTsKLSAgICAgICAgZ19zdHJpbmdfYXBwZW5kKHN0ciwgdGV4
dCk7Ci0gICAgICAgIC8vIE5ld2xpbmUgY2hhcnMgaW4gdGhlIHNvdXJjZSByZXN1bHQgaW4gc2Vw
YXJhdGUgdGV4dCBib3hlcywgc28gY2hlY2sKLSAgICAgICAgLy8gYmVmb3JlIGFkZGluZyBhIG5l
d2xpbmUgaW4gdGhlIGxheW91dC4gU2VlIGJ1ZyAyNTQxNSBjb21tZW50ICM3OC4KLSAgICAgICAg
aWYgKCFib3gtPm5leHRPbkxpbmVFeGlzdHMoKSkKKyAgICBpZiAoYWNjT2JqZWN0LT5pc1RleHRD
b250cm9sKCkpIHsKKyAgICAgICAgdW5zaWduZWQgdGV4dExlbmd0aCA9IGFjY09iamVjdC0+dGV4
dExlbmd0aCgpOworICAgICAgICBpbnQgbGluZU51bWJlciA9IDA7CisgICAgICAgIFBsYWluVGV4
dFJhbmdlIHJhbmdlID0gYWNjT2JqZWN0LT5kb0FYUmFuZ2VGb3JMaW5lKGxpbmVOdW1iZXIpOwor
ICAgICAgICB3aGlsZSAocmFuZ2UubGVuZ3RoKSB7CisgICAgICAgICAgICAvLyBXaGVuIGEgbGlu
ZSBvZiB0ZXh0IHdyYXBzIGluIGEgdGV4dCBhcmVhLCB0aGUgZmluYWwgc3BhY2UgaXMgcmVtb3Zl
ZC4KKyAgICAgICAgICAgIGlmIChyYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCA8IHRleHRMZW5n
dGgpCisgICAgICAgICAgICAgICAgcmFuZ2UubGVuZ3RoIC09IDE7CisgICAgICAgICAgICBTdHJp
bmcgbGluZVRleHQgPSBhY2NPYmplY3QtPmRvQVhTdHJpbmdGb3JSYW5nZShyYW5nZSk7CisgICAg
ICAgICAgICBnX3N0cmluZ19hcHBlbmQoc3RyLCBsaW5lVGV4dC51dGY4KCkuZGF0YSgpKTsKICAg
ICAgICAgICAgIGdfc3RyaW5nX2FwcGVuZChzdHIsICJcbiIpOwotICAgICAgICBib3ggPSBib3gt
Pm5leHRUZXh0Qm94KCk7CisgICAgICAgICAgICByYW5nZSA9IGFjY09iamVjdC0+ZG9BWFJhbmdl
Rm9yTGluZSgrK2xpbmVOdW1iZXIpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAg
SW5saW5lVGV4dEJveCogYm94ID0gcmVuZGVyVGV4dC0+Zmlyc3RUZXh0Qm94KCk7CisgICAgICAg
IHdoaWxlIChib3gpIHsKKyAgICAgICAgICAgIGdjaGFyKiB0ZXh0ID0gY29udmVydFVuaUNoYXJU
b1VURjgocmVuZGVyVGV4dC0+Y2hhcmFjdGVycygpLCByZW5kZXJUZXh0LT50ZXh0TGVuZ3RoKCks
IGJveC0+c3RhcnQoKSwgYm94LT5lbmQoKSk7CisgICAgICAgICAgICBnX3N0cmluZ19hcHBlbmQo
c3RyLCB0ZXh0KTsKKyAgICAgICAgICAgIC8vIE5ld2xpbmUgY2hhcnMgaW4gdGhlIHNvdXJjZSBy
ZXN1bHQgaW4gc2VwYXJhdGUgdGV4dCBib3hlcywgc28gY2hlY2sKKyAgICAgICAgICAgIC8vIGJl
Zm9yZSBhZGRpbmcgYSBuZXdsaW5lIGluIHRoZSBsYXlvdXQuIFNlZSBidWcgMjU0MTUgY29tbWVu
dCAjNzguCisgICAgICAgICAgICBpZiAoIWJveC0+bmV4dE9uTGluZUV4aXN0cygpKQorICAgICAg
ICAgICAgICAgIGdfc3RyaW5nX2FwcGVuZChzdHIsICJcbiIpOworICAgICAgICAgICAgYm94ID0g
Ym94LT5uZXh0VGV4dEJveCgpOworICAgICAgICB9CiAgICAgfQogCiAgICAgUGFuZ29MYXlvdXQq
IGxheW91dCA9IGd0a193aWRnZXRfY3JlYXRlX3BhbmdvX2xheW91dChzdGF0aWNfY2FzdDxHdGtX
aWRnZXQqPih3ZWJWaWV3KSwgZ19zdHJpbmdfZnJlZShzdHIsIEZBTFNFKSk7CmRpZmYgLS1naXQg
YS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDBkYWQ5
MGMuLjBhMmY5NWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMTEtMjcgIEpvYW5tYXJpZSBE
aWdncyAgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI1NDE1CisgICAgICAgIFtHVEtdW0FUS10gUGxlYXNlIGltcGxlbWVudCBzdXBw
b3J0IGZvciBnZXRfdGV4dF9hdF9vZmZzZXQKKworICAgICAgICBFbGltaW5hdGUgdGhlIHNlZ2Zh
dWx0cyB3aGljaCBvY2N1ciB3aGVuIGFjY2Vzc2luZyB0aGUgdGV4dCBpbnRlcmZhY2Ugbm93Cisg
ICAgICAgIGltcGxlbWVudGVkIGJ5IHRleHQgY29udHJvbHMuCisKKyAgICAgICAgKiB0ZXN0cy90
ZXN0YXRrLmMKKyAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfdGV4dF9hdF9vZmZzZXRfdGV4
dGFyZWEpOgorICAgICAgICAodGVzdF93ZWJraXRfYXRrX2dldF90ZXh0X2F0X29mZnNldF90ZXh0
X2lucHV0KToKKyAgICAgICAgKG1haW4pOgorCiAyMDA5LTExLTI0ICBKb2FubWFyaWUgRGlnZ3Mg
IDxqb2FubWFyaWUuZGlnZ3NAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBM
b3Blei4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jIGIvV2ViS2l0L2d0
ay90ZXN0cy90ZXN0YXRrLmMKaW5kZXggNzliZjc1Yy4uYzVmNGRiMyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMKKysrIGIvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMK
QEAgLTMwLDYgKzMwLDEwIEBAIHN0YXRpYyBjb25zdCBjaGFyKiBjb250ZW50cyA9ICI8aHRtbD48
Ym9keT48cD5UaGlzIGlzIGEgdGVzdC4gVGhpcyBpcyB0aGUgc2Vjb25kCiAKIHN0YXRpYyBjb25z
dCBjaGFyKiBjb250ZW50c1dpdGhOZXdsaW5lcyA9ICI8aHRtbD48Ym9keT48cD5UaGlzIGlzIGEg
dGVzdC4gXG5cblRoaXNcbiBpcyB0aGUgc2Vjb25kIHNlbnRlbmNlLiBBbmQgdGhpcyB0aGUgdGhp
cmQuPC9wPjwvYm9keT48L2h0bWw+IjsKIAorc3RhdGljIGNvbnN0IGNoYXIqIGNvbnRlbnRzSW5U
ZXh0YXJlYSA9ICI8aHRtbD48Ym9keT48dGV4dGFyZWEgY29scz0nODAnPlRoaXMgaXMgYSB0ZXN0
LiBUaGlzIGlzIHRoZSBzZWNvbmQgc2VudGVuY2UuIEFuZCB0aGlzIHRoZSB0aGlyZC48L3RleHRh
cmVhPjwvYm9keT48L2h0bWw+IjsKKworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnRlbnRzSW5UZXh0
SW5wdXQgPSAiPGh0bWw+PGJvZHk+PGlucHV0IHR5cGU9J3RleHQnIHNpemU9JzgwJyB2YWx1ZT0n
VGhpcyBpcyBhIHRlc3QuIFRoaXMgaXMgdGhlIHNlY29uZCBzZW50ZW5jZS4gQW5kIHRoaXMgdGhl
IHRoaXJkLicvPjwvYm9keT48L2h0bWw+IjsKKwogc3RhdGljIGdib29sZWFuIGJhaWxfb3V0KEdN
YWluTG9vcCogbG9vcCkKIHsKICAgICBpZiAoZ19tYWluX2xvb3BfaXNfcnVubmluZyhsb29wKSkK
QEAgLTI5NCw2ICsyOTgsNzIgQEAgc3RhdGljIHZvaWQgdGVzdF93ZWJraXRfYXRrX2dldF90ZXh0
X2F0X29mZnNldF9uZXdsaW5lcyh2b2lkKQogICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXcpOwog
fQogCitzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3RleHRfYXRfb2Zmc2V0X3RleHRh
cmVhKHZvaWQpCit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldzsKKyAgICBBdGtPYmplY3Qq
IG9iajsKKyAgICBHTWFpbkxvb3AqIGxvb3A7CisgICAgQXRrVGV4dCogdGV4dF9vYmo7CisKKyAg
ICB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdlYmtpdF93ZWJfdmlld19uZXcoKSk7CisgICAg
Z19vYmplY3RfcmVmX3Npbmsod2ViVmlldyk7CisgICAgR3RrQWxsb2NhdGlvbiBhbGxvYyA9IHsg
MCwgMCwgODAwLCA2MDAgfTsKKyAgICBndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUoR1RLX1dJREdF
VCh3ZWJWaWV3KSwgJmFsbG9jKTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcod2Vi
VmlldywgY29udGVudHNJblRleHRhcmVhLCBOVUxMLCBOVUxMLCBOVUxMKTsKKyAgICBsb29wID0g
Z19tYWluX2xvb3BfbmV3KE5VTEwsIFRSVUUpOworCisgICAgZ190aW1lb3V0X2FkZCgxMDAsIChH
U291cmNlRnVuYyliYWlsX291dCwgbG9vcCk7CisgICAgZ19tYWluX2xvb3BfcnVuKGxvb3ApOwor
CisgICAgLyogR2V0IHRvIHRoZSBpbm5lciBBdGtUZXh0IG9iamVjdCAqLworICAgIG9iaiA9IGd0
a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoR1RLX1dJREdFVCh3ZWJWaWV3KSk7CisgICAgZ19hc3Nl
cnQob2JqKTsKKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iaiwg
MCk7CisgICAgZ19hc3NlcnQob2JqKTsKKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3Np
YmxlX2NoaWxkKG9iaiwgMCk7CisgICAgZ19hc3NlcnQob2JqKTsKKworICAgIHRleHRfb2JqID0g
QVRLX1RFWFQob2JqKTsKKyAgICBnX2Fzc2VydChBVEtfSVNfVEVYVCh0ZXh0X29iaikpOworCisg
ICAgcnVuX2dldF90ZXh0X3Rlc3RzKHRleHRfb2JqKTsKKworICAgIGdfb2JqZWN0X3VucmVmKHdl
YlZpZXcpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3RleHRfYXRfb2Zm
c2V0X3RleHRfaW5wdXQodm9pZCkKK3sKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3OworICAg
IEF0a09iamVjdCogb2JqOworICAgIEdNYWluTG9vcCogbG9vcDsKKyAgICBBdGtUZXh0KiB0ZXh0
X29iajsKKworICAgIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2Via2l0X3dlYl92aWV3X25l
dygpKTsKKyAgICBnX29iamVjdF9yZWZfc2luayh3ZWJWaWV3KTsKKyAgICBHdGtBbGxvY2F0aW9u
IGFsbG9jID0geyAwLCAwLCA4MDAsIDYwMCB9OworICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0
ZShHVEtfV0lER0VUKHdlYlZpZXcpLCAmYWxsb2MpOworICAgIHdlYmtpdF93ZWJfdmlld19sb2Fk
X3N0cmluZyh3ZWJWaWV3LCBjb250ZW50c0luVGV4dElucHV0LCBOVUxMLCBOVUxMLCBOVUxMKTsK
KyAgICBsb29wID0gZ19tYWluX2xvb3BfbmV3KE5VTEwsIFRSVUUpOworCisgICAgZ190aW1lb3V0
X2FkZCgxMDAsIChHU291cmNlRnVuYyliYWlsX291dCwgbG9vcCk7CisgICAgZ19tYWluX2xvb3Bf
cnVuKGxvb3ApOworCisgICAgLyogR2V0IHRvIHRoZSBpbm5lciBBdGtUZXh0IG9iamVjdCAqLwor
ICAgIG9iaiA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoR1RLX1dJREdFVCh3ZWJWaWV3KSk7
CisgICAgZ19hc3NlcnQob2JqKTsKKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxl
X2NoaWxkKG9iaiwgMCk7CisgICAgZ19hc3NlcnQob2JqKTsKKyAgICBvYmogPSBhdGtfb2JqZWN0
X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iaiwgMCk7CisgICAgZ19hc3NlcnQob2JqKTsKKworICAg
IHRleHRfb2JqID0gQVRLX1RFWFQob2JqKTsKKyAgICBnX2Fzc2VydChBVEtfSVNfVEVYVCh0ZXh0
X29iaikpOworCisgICAgcnVuX2dldF90ZXh0X3Rlc3RzKHRleHRfb2JqKTsKKworICAgIGdfb2Jq
ZWN0X3VucmVmKHdlYlZpZXcpOworfQorCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3Yp
CiB7CiAgICAgZ190aHJlYWRfaW5pdChOVUxMKTsKQEAgLTMwMyw2ICszNzMsOCBAQCBpbnQgbWFp
bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0
ay9nZXRfdGV4dF9hdF9vZmZzZXQiLCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3RleHRfYXRfb2Zmc2V0
KTsKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL2dldF90ZXh0X2F0X29mZnNldF9m
b3JtcyIsIHRlc3Rfd2Via2l0X2F0a19nZXRfdGV4dF9hdF9vZmZzZXRfZm9ybXMpOwogICAgIGdf
dGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvZ2V0X3RleHRfYXRfb2Zmc2V0X25ld2xpbmVzIiwg
dGVzdF93ZWJraXRfYXRrX2dldF90ZXh0X2F0X29mZnNldF9uZXdsaW5lcyk7CisgICAgZ190ZXN0
X2FkZF9mdW5jKCIvd2Via2l0L2F0ay9nZXRfdGV4dF9hdF9vZmZzZXRfdGV4dGFyZWEiLCB0ZXN0
X3dlYmtpdF9hdGtfZ2V0X3RleHRfYXRfb2Zmc2V0X3RleHRhcmVhKTsKKyAgICBnX3Rlc3RfYWRk
X2Z1bmMoIi93ZWJraXQvYXRrL2dldF90ZXh0X2F0X29mZnNldF90ZXh0X2lucHV0IiwgdGVzdF93
ZWJraXRfYXRrX2dldF90ZXh0X2F0X29mZnNldF90ZXh0X2lucHV0KTsKICAgICByZXR1cm4gZ190
ZXN0X3J1biAoKTsKIH0KIAotLSAKMS42LjMuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44046</attachid>
            <date>2009-11-30 15:49:37 -0800</date>
            <delta_ts>2009-12-07 06:56:47 -0800</delta_ts>
            <desc>Comment 57 fix with unit tests</desc>
            <filename>25415-comment57-3.patch</filename>
            <type>text/plain</type>
            <size>9540</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSBmYjcyNGYyNDRjNDE4NWU3MjdjZDg4ZWQ2N2IwOWIxODEwYjIxMzY1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgRGlnZ3MgPGpvYW5tYXJpZS5kaWdnc0BnbWFp
bC5jb20+CkRhdGU6IE1vbiwgMzAgTm92IDIwMDkgMTg6NDU6NDMgLTA1MDAKU3ViamVjdDogW1BB
VENIXSAyMDA5LTExLTMwICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NAZ21haWwu
Y29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDE1CiAgICAgICAgW0dUS11bQVRL
XSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGdldF90ZXh0X2F0X29mZnNldAoKICAgICAg
ICBFbGltaW5hdGUgdGhlIHNlZ2ZhdWx0cyB3aGljaCBvY2N1ciB3aGVuIGFjY2Vzc2luZyB0aGUg
dGV4dCBpbnRlcmZhY2Ugbm93CiAgICAgICAgaW1wbGVtZW50ZWQgYnkgdGV4dCBjb250cm9scy4K
CiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0
ay5jcHA6CiAgICAgICAgKGdldFBhbmdvTGF5b3V0Rm9yQXRrKToKLS0tCiBXZWJDb3JlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrCiAuLi4vZ3Rr
L0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcCAgICAgICAgICB8ICAgMzEgKysrKyst
LQogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDE1ICsrKwogV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDk2ICsrKysrKysrKysrKysrKysrLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDEzNSBpbnNl
cnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRkNTMxYTAuLmZlYzI5YTMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMDktMTEtMzAgIEpvYW5tYXJpZSBEaWdncyAgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDE1CisgICAgICAgIFtHVEtd
W0FUS10gUGxlYXNlIGltcGxlbWVudCBzdXBwb3J0IGZvciBnZXRfdGV4dF9hdF9vZmZzZXQKKwor
ICAgICAgICBFbGltaW5hdGUgdGhlIHNlZ2ZhdWx0cyB3aGljaCBvY2N1ciB3aGVuIGFjY2Vzc2lu
ZyB0aGUgdGV4dCBpbnRlcmZhY2Ugbm93CisgICAgICAgIGltcGxlbWVudGVkIGJ5IHRleHQgY29u
dHJvbHMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlckF0ay5jcHA6CisgICAgICAgIChnZXRQYW5nb0xheW91dEZvckF0ayk6CisKIDIwMDkt
MTEtMjQgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVuLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAgYi9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAppbmRleCAz
MDgwMDdjLi5iYWYzYjJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0Fj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcApAQCAtODg2LDE1ICs4ODYs
MzAgQEAgc3RhdGljIFBhbmdvTGF5b3V0KiBnZXRQYW5nb0xheW91dEZvckF0ayhBdGtUZXh0KiB0
ZXh0T2JqZWN0KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8vIENyZWF0ZSBhIHN0cmluZyB3
aXRoIHRoZSBsYXlvdXQgYXMgaXQgYXBwZWFycyBvbiB0aGUgc2NyZWVuCi0gICAgSW5saW5lVGV4
dEJveCogYm94ID0gcmVuZGVyVGV4dC0+Zmlyc3RUZXh0Qm94KCk7Ci0gICAgd2hpbGUgKGJveCkg
ewotICAgICAgICBnY2hhciogdGV4dCA9IGNvbnZlcnRVbmlDaGFyVG9VVEY4KHJlbmRlclRleHQt
PmNoYXJhY3RlcnMoKSwgcmVuZGVyVGV4dC0+dGV4dExlbmd0aCgpLCBib3gtPnN0YXJ0KCksIGJv
eC0+ZW5kKCkpOwotICAgICAgICBnX3N0cmluZ19hcHBlbmQoc3RyLCB0ZXh0KTsKLSAgICAgICAg
Ly8gTmV3bGluZSBjaGFycyBpbiB0aGUgc291cmNlIHJlc3VsdCBpbiBzZXBhcmF0ZSB0ZXh0IGJv
eGVzLCBzbyBjaGVjawotICAgICAgICAvLyBiZWZvcmUgYWRkaW5nIGEgbmV3bGluZSBpbiB0aGUg
bGF5b3V0LiBTZWUgYnVnIDI1NDE1IGNvbW1lbnQgIzc4LgotICAgICAgICBpZiAoIWJveC0+bmV4
dE9uTGluZUV4aXN0cygpKQorICAgIGlmIChhY2NPYmplY3QtPmlzVGV4dENvbnRyb2woKSkgewor
ICAgICAgICB1bnNpZ25lZCB0ZXh0TGVuZ3RoID0gYWNjT2JqZWN0LT50ZXh0TGVuZ3RoKCk7Cisg
ICAgICAgIGludCBsaW5lTnVtYmVyID0gMDsKKyAgICAgICAgUGxhaW5UZXh0UmFuZ2UgcmFuZ2Ug
PSBhY2NPYmplY3QtPmRvQVhSYW5nZUZvckxpbmUobGluZU51bWJlcik7CisgICAgICAgIHdoaWxl
IChyYW5nZS5sZW5ndGgpIHsKKyAgICAgICAgICAgIC8vIFdoZW4gYSBsaW5lIG9mIHRleHQgd3Jh
cHMgaW4gYSB0ZXh0IGFyZWEsIHRoZSBmaW5hbCBzcGFjZSBpcyByZW1vdmVkLgorICAgICAgICAg
ICAgaWYgKHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoIDwgdGV4dExlbmd0aCkKKyAgICAgICAg
ICAgICAgICByYW5nZS5sZW5ndGggLT0gMTsKKyAgICAgICAgICAgIFN0cmluZyBsaW5lVGV4dCA9
IGFjY09iamVjdC0+ZG9BWFN0cmluZ0ZvclJhbmdlKHJhbmdlKTsKKyAgICAgICAgICAgIGdfc3Ry
aW5nX2FwcGVuZChzdHIsIGxpbmVUZXh0LnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgZ19z
dHJpbmdfYXBwZW5kKHN0ciwgIlxuIik7Ci0gICAgICAgIGJveCA9IGJveC0+bmV4dFRleHRCb3go
KTsKKyAgICAgICAgICAgIHJhbmdlID0gYWNjT2JqZWN0LT5kb0FYUmFuZ2VGb3JMaW5lKCsrbGlu
ZU51bWJlcik7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBJbmxpbmVUZXh0Qm94
KiBib3ggPSByZW5kZXJUZXh0LT5maXJzdFRleHRCb3goKTsKKyAgICAgICAgd2hpbGUgKGJveCkg
eworICAgICAgICAgICAgZ2NoYXIqIHRleHQgPSBjb252ZXJ0VW5pQ2hhclRvVVRGOChyZW5kZXJU
ZXh0LT5jaGFyYWN0ZXJzKCksIHJlbmRlclRleHQtPnRleHRMZW5ndGgoKSwgYm94LT5zdGFydCgp
LCBib3gtPmVuZCgpKTsKKyAgICAgICAgICAgIGdfc3RyaW5nX2FwcGVuZChzdHIsIHRleHQpOwor
ICAgICAgICAgICAgLy8gTmV3bGluZSBjaGFycyBpbiB0aGUgc291cmNlIHJlc3VsdCBpbiBzZXBh
cmF0ZSB0ZXh0IGJveGVzLCBzbyBjaGVjaworICAgICAgICAgICAgLy8gYmVmb3JlIGFkZGluZyBh
IG5ld2xpbmUgaW4gdGhlIGxheW91dC4gU2VlIGJ1ZyAyNTQxNSBjb21tZW50ICM3OC4KKyAgICAg
ICAgICAgIGlmICghYm94LT5uZXh0T25MaW5lRXhpc3RzKCkpCisgICAgICAgICAgICAgICAgZ19z
dHJpbmdfYXBwZW5kKHN0ciwgIlxuIik7CisgICAgICAgICAgICBib3ggPSBib3gtPm5leHRUZXh0
Qm94KCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBQYW5nb0xheW91dCogbGF5b3V0ID0gZ3Rr
X3dpZGdldF9jcmVhdGVfcGFuZ29fbGF5b3V0KHN0YXRpY19jYXN0PEd0a1dpZGdldCo+KHdlYlZp
ZXcpLCBnX3N0cmluZ19mcmVlKHN0ciwgRkFMU0UpKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsv
Q2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggM2Y4NzUzMi4uMmQwMDE2NCAx
MDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOCBAQAorMjAwOS0xMS0zMCAgSm9hbm1hcmllIERpZ2dzICA8am9hbm1h
cmllLmRpZ2dzQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0
MTUKKyAgICAgICAgW0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGdldF90
ZXh0X2F0X29mZnNldAorCisgICAgICAgIEVsaW1pbmF0ZSB0aGUgc2VnZmF1bHRzIHdoaWNoIG9j
Y3VyIHdoZW4gYWNjZXNzaW5nIHRoZSB0ZXh0IGludGVyZmFjZSBub3cKKyAgICAgICAgaW1wbGVt
ZW50ZWQgYnkgdGV4dCBjb250cm9scy4KKworICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYworICAg
ICAgICAodGVzdF93ZWJraXRfYXRrX2dldF90ZXh0X2F0X29mZnNldF90ZXh0YXJlYSk6CisgICAg
ICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0X3RleHRfYXRfb2Zmc2V0X3RleHRfaW5wdXQpOgorICAg
ICAgICAobWFpbik6CisKIDIwMDktMTEtMzAgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KZGlmZiAtLWdpdCBhL1dl
YktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jIGIvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMKaW5k
ZXggNzliZjc1Yy4uZTdkMjYxMiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRr
LmMKKysrIGIvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMKQEAgLTMwLDYgKzMwLDEwIEBAIHN0
YXRpYyBjb25zdCBjaGFyKiBjb250ZW50cyA9ICI8aHRtbD48Ym9keT48cD5UaGlzIGlzIGEgdGVz
dC4gVGhpcyBpcyB0aGUgc2Vjb25kCiAKIHN0YXRpYyBjb25zdCBjaGFyKiBjb250ZW50c1dpdGhO
ZXdsaW5lcyA9ICI8aHRtbD48Ym9keT48cD5UaGlzIGlzIGEgdGVzdC4gXG5cblRoaXNcbiBpcyB0
aGUgc2Vjb25kIHNlbnRlbmNlLiBBbmQgdGhpcyB0aGUgdGhpcmQuPC9wPjwvYm9keT48L2h0bWw+
IjsKIAorc3RhdGljIGNvbnN0IGNoYXIqIGNvbnRlbnRzSW5UZXh0YXJlYSA9ICI8aHRtbD48Ym9k
eT48dGV4dGFyZWEgY29scz0nODAnPlRoaXMgaXMgYSB0ZXN0LiBUaGlzIGlzIHRoZSBzZWNvbmQg
c2VudGVuY2UuIEFuZCB0aGlzIHRoZSB0aGlyZC48L3RleHRhcmVhPjwvYm9keT48L2h0bWw+IjsK
Kworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnRlbnRzSW5UZXh0SW5wdXQgPSAiPGh0bWw+PGJvZHk+
PGlucHV0IHR5cGU9J3RleHQnIHNpemU9JzgwJyB2YWx1ZT0nVGhpcyBpcyBhIHRlc3QuIFRoaXMg
aXMgdGhlIHNlY29uZCBzZW50ZW5jZS4gQW5kIHRoaXMgdGhlIHRoaXJkLicvPjwvYm9keT48L2h0
bWw+IjsKKwogc3RhdGljIGdib29sZWFuIGJhaWxfb3V0KEdNYWluTG9vcCogbG9vcCkKIHsKICAg
ICBpZiAoZ19tYWluX2xvb3BfaXNfcnVubmluZyhsb29wKSkKQEAgLTE5NywxMCArMjAxLDEwIEBA
IHN0YXRpYyB2b2lkIHJ1bl9nZXRfdGV4dF90ZXN0cyhBdGtUZXh0KiB0ZXh0X29iaikKIAogc3Rh
dGljIHZvaWQgdGVzdF93ZWJraXRfYXRrX2dldF90ZXh0X2F0X29mZnNldF9mb3Jtcyh2b2lkKQog
ewotICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXc7Ci0gICAgQXRrT2JqZWN0KiBvYmo7Ci0gICAg
R01haW5Mb29wKiBsb29wOwotICAgIEF0a1RleHQqIHRleHRfb2JqOworICAgIFdlYktpdFdlYlZp
ZXcgKndlYlZpZXc7CisgICAgQXRrT2JqZWN0ICpvYmo7CisgICAgR01haW5Mb29wICpsb29wOwor
ICAgIEF0a1RleHQgKnRleHRfb2JqOwogCiAgICAgd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3
ZWJraXRfd2ViX3ZpZXdfbmV3KCkpOwogICAgIGdfb2JqZWN0X3JlZl9zaW5rKHdlYlZpZXcpOwpA
QCAtMjMwLDEwICsyMzQsMTAgQEAgc3RhdGljIHZvaWQgdGVzdF93ZWJraXRfYXRrX2dldF90ZXh0
X2F0X29mZnNldF9mb3Jtcyh2b2lkKQogCiBzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0
X3RleHRfYXRfb2Zmc2V0KHZvaWQpCiB7Ci0gICAgV2ViS2l0V2ViVmlldyogd2ViVmlldzsKLSAg
ICBBdGtPYmplY3QqIG9iajsKLSAgICBHTWFpbkxvb3AqIGxvb3A7Ci0gICAgQXRrVGV4dCogdGV4
dF9vYmo7CisgICAgV2ViS2l0V2ViVmlldyAqd2ViVmlldzsKKyAgICBBdGtPYmplY3QgKm9iajsK
KyAgICBHTWFpbkxvb3AgKmxvb3A7CisgICAgQXRrVGV4dCAqdGV4dF9vYmo7CiAKICAgICB3ZWJW
aWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdlYmtpdF93ZWJfdmlld19uZXcoKSk7CiAgICAgZ19vYmpl
Y3RfcmVmX3Npbmsod2ViVmlldyk7CkBAIC0yNjMsMTAgKzI2NywxMCBAQCBzdGF0aWMgdm9pZCB0
ZXN0X3dlYmtpdF9hdGtfZ2V0X3RleHRfYXRfb2Zmc2V0KHZvaWQpCiAKIHN0YXRpYyB2b2lkIHRl
c3Rfd2Via2l0X2F0a19nZXRfdGV4dF9hdF9vZmZzZXRfbmV3bGluZXModm9pZCkKIHsKLSAgICBX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3OwotICAgIEF0a09iamVjdCogb2JqOwotICAgIEdNYWluTG9v
cCogbG9vcDsKLSAgICBBdGtUZXh0KiB0ZXh0X29iajsKKyAgICBXZWJLaXRXZWJWaWV3ICp3ZWJW
aWV3OworICAgIEF0a09iamVjdCAqb2JqOworICAgIEdNYWluTG9vcCAqbG9vcDsKKyAgICBBdGtU
ZXh0ICp0ZXh0X29iajsKIAogICAgIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2Via2l0X3dl
Yl92aWV3X25ldygpKTsKICAgICBnX29iamVjdF9yZWZfc2luayh3ZWJWaWV3KTsKQEAgLTI5NCw2
ICsyOTgsNzIgQEAgc3RhdGljIHZvaWQgdGVzdF93ZWJraXRfYXRrX2dldF90ZXh0X2F0X29mZnNl
dF9uZXdsaW5lcyh2b2lkKQogICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXcpOwogfQogCitzdGF0
aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3RleHRfYXRfb2Zmc2V0X3RleHRhcmVhKHZvaWQp
Cit7CisgICAgV2ViS2l0V2ViVmlldyAqd2ViVmlldzsKKyAgICBBdGtPYmplY3QgKm9iajsKKyAg
ICBHTWFpbkxvb3AgKmxvb3A7CisgICAgQXRrVGV4dCAqdGV4dF9vYmo7CisKKyAgICB3ZWJWaWV3
ID0gV0VCS0lUX1dFQl9WSUVXKHdlYmtpdF93ZWJfdmlld19uZXcoKSk7CisgICAgZ19vYmplY3Rf
cmVmX3Npbmsod2ViVmlldyk7CisgICAgR3RrQWxsb2NhdGlvbiBhbGxvYyA9IHsgMCwgMCwgODAw
LCA2MDAgfTsKKyAgICBndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUoR1RLX1dJREdFVCh3ZWJWaWV3
KSwgJmFsbG9jKTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcod2ViVmlldywgY29u
dGVudHNJblRleHRhcmVhLCBOVUxMLCBOVUxMLCBOVUxMKTsKKyAgICBsb29wID0gZ19tYWluX2xv
b3BfbmV3KE5VTEwsIFRSVUUpOworCisgICAgZ190aW1lb3V0X2FkZCgxMDAsIChHU291cmNlRnVu
YyliYWlsX291dCwgbG9vcCk7CisgICAgZ19tYWluX2xvb3BfcnVuKGxvb3ApOworCisgICAgLyog
R2V0IHRvIHRoZSBpbm5lciBBdGtUZXh0IG9iamVjdCAqLworICAgIG9iaiA9IGd0a193aWRnZXRf
Z2V0X2FjY2Vzc2libGUoR1RLX1dJREdFVCh3ZWJWaWV3KSk7CisgICAgZ19hc3NlcnQob2JqKTsK
KyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iaiwgMCk7CisgICAg
Z19hc3NlcnQob2JqKTsKKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxk
KG9iaiwgMCk7CisgICAgZ19hc3NlcnQob2JqKTsKKworICAgIHRleHRfb2JqID0gQVRLX1RFWFQo
b2JqKTsKKyAgICBnX2Fzc2VydChBVEtfSVNfVEVYVCh0ZXh0X29iaikpOworCisgICAgcnVuX2dl
dF90ZXh0X3Rlc3RzKHRleHRfb2JqKTsKKworICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXcpOwor
fQorCitzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3RleHRfYXRfb2Zmc2V0X3RleHRf
aW5wdXQodm9pZCkKK3sKKyAgICBXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3OworICAgIEF0a09iamVj
dCAqb2JqOworICAgIEdNYWluTG9vcCAqbG9vcDsKKyAgICBBdGtUZXh0ICp0ZXh0X29iajsKKwor
ICAgIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2Via2l0X3dlYl92aWV3X25ldygpKTsKKyAg
ICBnX29iamVjdF9yZWZfc2luayh3ZWJWaWV3KTsKKyAgICBHdGtBbGxvY2F0aW9uIGFsbG9jID0g
eyAwLCAwLCA4MDAsIDYwMCB9OworICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShHVEtfV0lE
R0VUKHdlYlZpZXcpLCAmYWxsb2MpOworICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyh3
ZWJWaWV3LCBjb250ZW50c0luVGV4dElucHV0LCBOVUxMLCBOVUxMLCBOVUxMKTsKKyAgICBsb29w
ID0gZ19tYWluX2xvb3BfbmV3KE5VTEwsIFRSVUUpOworCisgICAgZ190aW1lb3V0X2FkZCgxMDAs
IChHU291cmNlRnVuYyliYWlsX291dCwgbG9vcCk7CisgICAgZ19tYWluX2xvb3BfcnVuKGxvb3Ap
OworCisgICAgLyogR2V0IHRvIHRoZSBpbm5lciBBdGtUZXh0IG9iamVjdCAqLworICAgIG9iaiA9
IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoR1RLX1dJREdFVCh3ZWJWaWV3KSk7CisgICAgZ19h
c3NlcnQob2JqKTsKKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9i
aiwgMCk7CisgICAgZ19hc3NlcnQob2JqKTsKKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nl
c3NpYmxlX2NoaWxkKG9iaiwgMCk7CisgICAgZ19hc3NlcnQob2JqKTsKKworICAgIHRleHRfb2Jq
ID0gQVRLX1RFWFQob2JqKTsKKyAgICBnX2Fzc2VydChBVEtfSVNfVEVYVCh0ZXh0X29iaikpOwor
CisgICAgcnVuX2dldF90ZXh0X3Rlc3RzKHRleHRfb2JqKTsKKworICAgIGdfb2JqZWN0X3VucmVm
KHdlYlZpZXcpOworfQorCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiB7CiAgICAg
Z190aHJlYWRfaW5pdChOVUxMKTsKQEAgLTMwMyw2ICszNzMsOCBAQCBpbnQgbWFpbihpbnQgYXJn
YywgY2hhcioqIGFyZ3YpCiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay9nZXRfdGV4
dF9hdF9vZmZzZXQiLCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3RleHRfYXRfb2Zmc2V0KTsKICAgICBn
X3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL2dldF90ZXh0X2F0X29mZnNldF9mb3JtcyIsIHRl
c3Rfd2Via2l0X2F0a19nZXRfdGV4dF9hdF9vZmZzZXRfZm9ybXMpOwogICAgIGdfdGVzdF9hZGRf
ZnVuYygiL3dlYmtpdC9hdGsvZ2V0X3RleHRfYXRfb2Zmc2V0X25ld2xpbmVzIiwgdGVzdF93ZWJr
aXRfYXRrX2dldF90ZXh0X2F0X29mZnNldF9uZXdsaW5lcyk7CisgICAgZ190ZXN0X2FkZF9mdW5j
KCIvd2Via2l0L2F0ay9nZXRfdGV4dF9hdF9vZmZzZXRfdGV4dGFyZWEiLCB0ZXN0X3dlYmtpdF9h
dGtfZ2V0X3RleHRfYXRfb2Zmc2V0X3RleHRhcmVhKTsKKyAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93
ZWJraXQvYXRrL2dldF90ZXh0X2F0X29mZnNldF90ZXh0X2lucHV0IiwgdGVzdF93ZWJraXRfYXRr
X2dldF90ZXh0X2F0X29mZnNldF90ZXh0X2lucHV0KTsKICAgICByZXR1cm4gZ190ZXN0X3J1biAo
KTsKIH0KIAotLSAKMS42LjMuMwoK
</data>

          </attachment>
      

    </bug>

</bugzilla>