<?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>19161</bug_id>
          
          <creation_ts>2008-05-20 16:24:30 -0700</creation_ts>
          <short_desc>wrong font size when css font-family includes monospace</short_desc>
          <delta_ts>2009-08-13 16:37:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>525.x (Safari 3.1)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>GoogleBug</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>24855</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>anantha</cc>
    
    <cc>hyatt</cc>
    
    <cc>jon</cc>
    
    <cc>jshin</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>martine</cc>
    
    <cc>mitz</cc>
    
    <cc>ojan</cc>
    
    <cc>phiw2</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>81061</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-05-20 16:24:30 -0700</bug_when>
    <thetext>getComputedStyle(element, null).fontSize is wrong

This affects an internal Google application.

See test case.  TOT results:
foo bar baz
monospace: 13px
courier new: 16px
courier new,monospace: 13px

FF results are:
foo bar baz
monospace: 13px
courier new: 16px
courier new,monospace: 16px</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81062</commentid>
    <comment_count>1</comment_count>
      <attachid>21261</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-05-20 16:24:52 -0700</bug_when>
    <thetext>Created attachment 21261
test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81064</commentid>
    <comment_count>2</comment_count>
    <who name="">mitz</who>
    <bug_when>2008-05-20 16:34:24 -0700</bug_when>
    <thetext>The reported sizes are in fact the ones used. That &quot;&apos;courier new&apos;, monospace&quot; uses 13px is probably a bug (I think there is a separate bug about it in Bugzilla).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81065</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2008-05-20 16:37:41 -0700</bug_when>
    <thetext>Perhaps related to bug 13139.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83230</commentid>
    <comment_count>4</comment_count>
      <attachid>21685</attachid>
    <who name="Evan Martin">martine</who>
    <bug_when>2008-06-13 11:45:12 -0700</bug_when>
    <thetext>Created attachment 21685
screenshot comparing safari, firefox, ie

Screenshot showing Safari with a tiny default monospace font where FF and IE agree on a different one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86863</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-07-24 10:37:54 -0700</bug_when>
    <thetext>This seems to be a common complaint (to google) from Safari users using Google Reader or Google Groups, both of which use monospace fonts to display certain contents, and hit this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117401</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2009-04-13 18:27:17 -0700</bug_when>
    <thetext>*** Bug 19643 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117531</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2009-04-14 15:35:33 -0700</bug_when>
    <thetext>some more test cases at: http://ponderer.org/tests/monospace.html

In particular, having the font-family be &quot;serif, monospace&quot; or &quot;times, monospace&quot; causes the font to be sized to the default fixed width font size.  This is because the generic font family gets set in CSSStyleSelector.cpp:applyProperty() in the font order from left to right and the default font size is then determined based on the generic font family.

Firefox has a similar bug where it only uses the default fixed width font size if the font-family is monospace (no fallbacks).  So in Firefox, &quot;foobar, monospace&quot; uses the default variable width font size even though foobar doesn&apos;t exist.
  https://bugzilla.mozilla.org/show_bug.cgi?id=175415

IE doesn&apos;t seem to have any of these problems because there is only one default font size which I can&apos;t find the setting for.

The Firefox and WebKit bugs seems to exist because we can&apos;t take the time to look up font existence at style parse time.  If we have to maintain that constraint, I think Firefox&apos;s behavior is a bit better (only use the fixed font size when the font-family is only &apos;monospace&apos;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118191</commentid>
    <comment_count>8</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2009-04-20 17:03:46 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=21685) [review]
&gt; screenshot comparing safari, firefox, ie
&gt; 
&gt; Screenshot showing Safari with a tiny default monospace font where FF and IE
&gt; agree on a different one.

In this particular case, the style specified by Google Groups is :

&lt;font face=&quot;Courier, Monospaced&quot; class=&quot;fixed_width&quot;&gt;

Class fixed_width gets these two from 
http://groups.google.com/groups/style.css

.fixed_width { font-family: fixed-width, monospace; font-size: 90%}
.msg .mb .fixed_width { font-family: fixed-width, monospace; font-size: 100%}

The computed font size in Safari 4beta is 10px while in Firefox3 is 12.08px. 

So, at least for Google Groups, there appears to be a separate issue that needs to be fixed. 



</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118407</commentid>
    <comment_count>9</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-04-22 12:47:26 -0700</bug_when>
    <thetext>This behavior is deliberate.  The assumption is that because the generic monospace family was listed that the monospace size should be used.  After all the font in front is in fact a monospace font.  It&apos;s not a bug in the sense that it was a deliberate design decision on my part.  Might be worth revisiting if it&apos;s causing incompatibilities though.


</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118419</commentid>
    <comment_count>10</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2009-04-22 14:13:59 -0700</bug_when>
    <thetext>Talked to hyatt on IRC. We came to the conclusion that we should match FF behavior to maximize compatibility. To be clear, this means we only use the fixed-width font-size if the font-family is set to *exactly* monospace. For font-family:&apos;monospace&apos;, font-family:foo,monospace and font-family:monospace,foo, we should use the standard font-size.

Longer-term we should test a webkit build that has one font-size for all fonts and see how bad the compat hit is. If it&apos;s minor, then we can consider getting rid of the font preferences entirely for Safari/Chrome. According to Hyatt, noone especially wants these preferences. They are just leftovers from Netscape long ago that everyone matched for compatibility.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118421</commentid>
    <comment_count>11</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2009-04-22 14:19:06 -0700</bug_when>
    <thetext>Test-case that show&apos;s the firefox behavior: http://tinyurl.com/dn89xe</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119334</commentid>
    <comment_count>12</comment_count>
      <attachid>29893</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2009-04-29 13:56:06 -0700</bug_when>
    <thetext>Created attachment 29893
another test case : &lt;pre&gt; vs monospace, serif, sans-serif


There&apos;s another twist to this issue (below is rehash of a part of what I wrote at
http://code.google.com/p/chromium/issues/detail?id=10524#c8 with what Ojan replied. I&apos;m not including what I heard from Frank Tang about two font size preferences.).

This test file has 4 paragraphs. The 1st is &lt;pre&gt; while the 2nd,3rd and 4th are divs styled with &apos;monospace&apos;, &apos;serif&apos; and &apos;sans-serif&apos;.

In IE8, the first is rendered in a smaller font than the other three. This is because IE8 (IE 6/7, too) apparently has a UA style for &lt;pre&gt; with &apos;font-size: small&apos; (or something like that). 

In Firefox, if the encoding is set to one of CJK encodings, all four are rendered at the same size. If not, the first two paras are smaller than the 3rd and the 4th. This is because 

1) Firefox uses the same font size for &lt;pre&gt; and &apos;font-family: monospace&apos; 
2) For CJK langgroups, the monospace font size is identical to that of proportional font size (other 4 CSS generic families).
For most other langgroups, the size for CSS &apos;monospace&apos; generic is smaller than that for other generic families. 

In Safari, the behavior is the same as Firefox with the encoding set to one of non-CJK encodings (e.g. ISO-8859-1). BTW, I can make a single test file showing the impact of changing the encoding in Firefox. 

After making a change to make webkit behave identically to Firefox (i.e. only &apos;font-family: monospace&apos; will use the font size for fixed-width), we may consider making webkit behave similarly to IE7/8. (Ojan&apos;s #3 at http://code.google.com/p/chromium/issues/detail?id=10524#c10 ) with the compat impact evaluated.

And, then we can also think about replacing the font size UI with the page zoom level UI. The font size pref. is (mainly) for accessibility needs, but just setting the font size larger is likely to break the page layout. Now that webkit has page-zoom implemented, it makes more sense to have a page zoom-level UI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119554</commentid>
    <comment_count>13</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2009-04-30 18:30:33 -0700</bug_when>
    <thetext>Textarea&apos;s also use the smaller font-size in IE and window&apos;s webkit (which uses monospace as the font-family).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135310</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-28 12:00:21 -0700</bug_when>
    <thetext>I believe this is the cause of https://bugs.webkit.org/show_bug.cgi?id=24855, and bug 24855 can be duped to this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135312</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-28 12:02:30 -0700</bug_when>
    <thetext>Well, to be more clear: bug 24855 is caused by a bug in gmail/TrogEdit&apos;s workaround for bug 21033.   But this strangeness is what&apos;s causing their workaround to break.

Basically:
courier new: 13px
courier new, monspace: 12px

their code doesn&apos;t expect to ever see 12px, and fails.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135338</commentid>
    <comment_count>16</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2009-07-28 13:17:20 -0700</bug_when>
    <thetext>I think the issue in bug 24855 is that the font-size is actually smaller and can&apos;t be made the same size as the text around it by making the font-size value be &quot;2&quot;. Even if the Gmail code added a workaround for the 12px case, all that would do is make the &quot;normal&quot; font-size be selected in the font menu. Which is an improvement, but not really the main issue in bug 24855.

That said, I agree with Eric. Bug 24855 would also be fixed with the proposed fix of matching FF behavior of only using the smaller font-size if the font-family is exactly the string monospace (no quotes).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135344</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-28 13:22:10 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; I think the issue in bug 24855 is that the font-size is actually smaller and
&gt; can&apos;t be made the same size as the text around it by making the font-size value
&gt; be &quot;2&quot;. Even if the Gmail code added a workaround for the 12px case, all that
&gt; would do is make the &quot;normal&quot; font-size be selected in the font menu. Which is
&gt; an improvement, but not really the main issue in bug 24855.
&gt; 
&gt; That said, I agree with Eric. Bug 24855 would also be fixed with the proposed
&gt; fix of matching FF behavior of only using the smaller font-size if the
&gt; font-family is exactly the string monospace (no quotes).

Oh.  I misunderstood bug 24855 then.  I thought that you could not change the font size at all once it was made courier new.  I now find that you can, it just never is the same size as the font around it.  In which case then yes, the rendering bug is best fixed by bug 19161.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137386</commentid>
    <comment_count>18</comment_count>
      <attachid>34162</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-05 12:46:47 -0700</bug_when>
    <thetext>Created attachment 34162
First (somewhat blind) stab at this.


---
 2 files changed, 18 insertions(+), 23 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137586</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-06 09:21:08 -0700</bug_when>
    <thetext>It turns out that our current font fallback behavior is:

&lt;div style=&quot;font-family: foo, bar&quot;&gt;
&lt;div style=&quot;font-family: monospace&quot;&gt;&lt;/div&gt;
&lt;/div&gt;

The font-family list carried on the inner div is &quot;monospace, bar&quot;, which is not what I would have expected.  I would have expected just &quot;monospace&quot; or &quot;monospace, foo, bar&quot;.  But maybe that&apos;s correct behavior?

You can see this behavior implemented in the for loop inside CSSStyleSelector::applyProperty() case CSSPropertyFontFamily.

Why this matters is that this breaks my new &quot;useFixedDefaultSize&quot; logic.
    bool FontDescription::useFixedDefaultSize() const { return genericFamily() == MonospaceFamily &amp;&amp; !family().next() &amp;&amp; family().family() == &quot;-webkit-monospace&quot;; }
I had assumed the fallback list for the inner div would only have included &quot;monospace&quot;.

Hyatt?  Could you tell me if our family list behavior is correct here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137611</commentid>
    <comment_count>20</comment_count>
      <attachid>34215</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-06 11:55:11 -0700</bug_when>
    <thetext>Created attachment 34215
Now a patch which works


---
 6 files changed, 64 insertions(+), 59 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137634</commentid>
    <comment_count>21</comment_count>
      <attachid>34224</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-06 13:28:43 -0700</bug_when>
    <thetext>Created attachment 34224
Full fix with tests


---
 8 files changed, 119 insertions(+), 63 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137640</commentid>
    <comment_count>22</comment_count>
      <attachid>34226</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-06 13:42:04 -0700</bug_when>
    <thetext>Created attachment 34226
Add more info to the ChangeLog for easier review


---
 8 files changed, 130 insertions(+), 63 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137659</commentid>
    <comment_count>23</comment_count>
      <attachid>34229</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-06 14:30:35 -0700</bug_when>
    <thetext>Created attachment 34229
Visual test showing the extra bug I had to fix (partial font-family fallback inheritance)

I&apos;m attaching this visual version of the test to the bug.  The attached patch has a dumpAsText version which tests the same thing w/o needing a pixel test.  This version is here to make reviewers lives easier. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137661</commentid>
    <comment_count>24</comment_count>
      <attachid>34230</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-06 14:33:23 -0700</bug_when>
    <thetext>Created attachment 34230
Oops, now includes missing test files.


---
 14 files changed, 226 insertions(+), 63 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139542</commentid>
    <comment_count>25</comment_count>
      <attachid>34230</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-08-12 14:17:19 -0700</bug_when>
    <thetext>Comment on attachment 34230
Oops, now includes missing test files.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139551</commentid>
    <comment_count>26</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-12 14:31:59 -0700</bug_when>
    <thetext>Hyatt and I had a long (informative) discussion over IRC.  I&apos;m happy to provide the log to anyone interested.

Hyatt&apos;s concerns were that our previous behavior was self-consistent and that our new behavior (matching FF) is bizarre.

My opinion was that our previous behavior is a good thing if you start with the premise that having two separate default font sizes is a good thing.  FF&apos;s behavior &quot;limits the scope&quot; of the separate fixed-width default size to only affect font-family: monospace;  Likely they did this to more closely match IE, but I&apos;m not sure.

IE only has one default font size.  FF and WK have separate sizes for &quot;standard&quot; fonts and &quot;fixed width&quot; fonts.  After this change the &quot;fixed width&quot; preference only affects text which is explicitly font-family: monospace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139668</commentid>
    <comment_count>27</comment_count>
      <attachid>34230</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-12 17:10:16 -0700</bug_when>
    <thetext>Comment on attachment 34230
Oops, now includes missing test files.

Rejecting patch 34230 from commit-queue.  This patch will require manual commit.

W e b K i t T o o l s / S c r i p t s / b u i l d - w e b k i t failed with exit code 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140001</commentid>
    <comment_count>28</comment_count>
      <attachid>34230</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-13 13:27:51 -0700</bug_when>
    <thetext>Comment on attachment 34230
Oops, now includes missing test files.

Rejecting patch 34230 from commit-queue.  This patch will require manual commit.

W e b K i t T o o l s / S c r i p t s / b u i l d - w e b k i t failed with exit code 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140015</commentid>
    <comment_count>29</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-13 13:56:54 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	M	LayoutTests/fast/css/getComputedStyle/computed-style-font-family-expected.txt
	A	LayoutTests/fast/css/getComputedStyle/computed-style-font-family-monospace-expected.txt
	A	LayoutTests/fast/css/getComputedStyle/computed-style-font-family-monospace.html
	A	LayoutTests/fast/css/getComputedStyle/font-family-fallback-reset-expected.txt
	A	LayoutTests/fast/css/getComputedStyle/font-family-fallback-reset.html
	A	LayoutTests/fast/css/getComputedStyle/resources/computed-style-font-family-monospace.js
	A	LayoutTests/fast/css/getComputedStyle/resources/font-family-fallback-reset.js
	M	LayoutTests/platform/mac/css1/font_properties/font_family-expected.txt
	M	LayoutTests/platform/mac/css2.1/t1503-c522-font-family-00-b-expected.txt
	M	LayoutTests/platform/mac/fast/text/monospace-width-cache-expected.txt
	M	WebCore/ChangeLog
	M	WebCore/css/CSSStyleSelector.cpp
	M	WebCore/platform/graphics/FontDescription.h
Committed r47229
	M	WebKitTools/ChangeLog
	M	WebKitTools/Scripts/modules/committers.py
r47228 = 2aa5a865f28f3a686ebb3c7a675d9c7414e6fcd9 (trunk)
	M	WebCore/ChangeLog
	M	WebCore/platform/graphics/FontDescription.h
	M	WebCore/css/CSSStyleSelector.cpp
	M	LayoutTests/platform/mac/fast/text/monospace-width-cache-expected.txt
	M	LayoutTests/platform/mac/css2.1/t1503-c522-font-family-00-b-expected.txt
	M	LayoutTests/platform/mac/css1/font_properties/font_family-expected.txt
	M	LayoutTests/ChangeLog
	A	LayoutTests/fast/css/getComputedStyle/computed-style-font-family-monospace.html
	A	LayoutTests/fast/css/getComputedStyle/font-family-fallback-reset-expected.txt
	A	LayoutTests/fast/css/getComputedStyle/computed-style-font-family-monospace-expected.txt
	A	LayoutTests/fast/css/getComputedStyle/font-family-fallback-reset.html
	A	LayoutTests/fast/css/getComputedStyle/resources/font-family-fallback-reset.js
	A	LayoutTests/fast/css/getComputedStyle/resources/computed-style-font-family-monospace.js
	M	LayoutTests/fast/css/getComputedStyle/computed-style-font-family-expected.txt
r47229 = 53ed0bc9178698557ffef09fec2e1dd1ac125daf (trunk)
First, rewinding head to replay your work on top of it...
Nothing to do.
http://trac.webkit.org/changeset/47229</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140096</commentid>
    <comment_count>30</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-13 16:37:05 -0700</bug_when>
    <thetext>Test updates in r47250 and r47251</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>21261</attachid>
            <date>2008-05-20 16:24:52 -0700</date>
            <delta_ts>2008-05-20 16:24:52 -0700</delta_ts>
            <desc>test case</desc>
            <filename>font-size.html</filename>
            <type>text/html</type>
            <size>508</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">PGRpdiBpZD0ibXlEaXYiPmZvbyBiYXIgYmF6PC9kaXY+CjxkaXYgaWQ9J3Jlcyc+PC9kaXY+Cjxz
Y3JpcHQ+CmZ1bmN0aW9uIHByaW50KHN0cikgeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVz
JykuaW5uZXJIVE1MICs9IHN0ciB9OwoKdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdteURpdicpOwoKZnVuY3Rpb24gcHJpbnRDb21wdXRlZEZvbnRTaXplKGZvbnRGYW1pbHkpIHsK
ICBkaXYuc3R5bGUuZm9udEZhbWlseSA9IGZvbnRGYW1pbHk7CiAgcHJpbnQoZm9udEZhbWlseSAr
ICI6ICIgKyAKICAgIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRpdixudWxsKS5nZXRQcm9wZXJ0
eVZhbHVlKCdmb250LXNpemUnKSArICc8YnI+JykKfQoKcHJpbnRDb21wdXRlZEZvbnRTaXplKCdt
b25vc3BhY2UnKTsKcHJpbnRDb21wdXRlZEZvbnRTaXplKCdjb3VyaWVyIG5ldycpOwpwcmludENv
bXB1dGVkRm9udFNpemUoJ2NvdXJpZXIgbmV3LCBtb25vc3BhY2UnKTsKCjwvc2NyaXB0Pg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>21685</attachid>
            <date>2008-06-13 11:45:12 -0700</date>
            <delta_ts>2008-06-13 11:45:12 -0700</delta_ts>
            <desc>screenshot comparing safari, firefox, ie</desc>
            <filename>safari font.png</filename>
            <type>image/png</type>
            <size>29979</size>
            <attacher name="Evan Martin">martine</attacher>
            
              <data encoding="base64">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
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>29893</attachid>
            <date>2009-04-29 13:56:06 -0700</date>
            <delta_ts>2009-04-29 13:56:06 -0700</delta_ts>
            <desc>another test case : &lt;pre&gt; vs monospace, serif, sans-serif</desc>
            <filename>mono.html</filename>
            <type>text/html</type>
            <size>419</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8dGl0bGU+TW9ub3NwYWNlIGFuZCBQcmU8L3RpdGxlPgo8L2hlYWQ+Cjxi
b2R5Pgo8cHJlPgoxMjM0NTY3ODkwCkFCQ0RFRkdISUoKYWJjZGVmZ2hpago8L3ByZT4KPGRpdiBz
dHlsZT0iZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsiPgoxMjM0NTY3ODkwPGJyLz4KQUJDREVGR0hJ
Sjxici8+CmFiY2RlZmdoaWo8YnIvPgo8YnIvPgo8L2Rpdj4KPGRpdiBzdHlsZT0iZm9udC1mYW1p
bHk6IHNlcmlmOyI+CjEyMzQ1Njc4OTA8YnIvPgpBQkNERUZHSElKPGJyLz4KYWJjZGVmZ2hpajxi
ci8+Cjxici8+CjwvZGl2Pgo8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogc2Fucy1zZXJpZjsiPgox
MjM0NTY3ODkwPGJyLz4KQUJDREVGR0hJSjxici8+CmFiY2RlZmdoaWo8YnIvPgo8YnIvPgo8L2Rp
dj4KCjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34162</attachid>
            <date>2009-08-05 12:46:47 -0700</date>
            <delta_ts>2009-08-06 11:55:01 -0700</delta_ts>
            <desc>First (somewhat blind) stab at this.</desc>
            <filename>bug-19161-20090805124645.patch</filename>
            <type>text/plain</type>
            <size>7595</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggN2NmYTNlMS4uYTBjN2U0ZSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHAKQEAgLTM3NTQsNyArMzc1NCw2IEBAIHZvaWQgQ1NTU3R5bGVTZWxl
Y3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKICAgICB7CiAgICAg
ICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24gPSBtX3N0eWxlLT5mb250RGVzY3Jp
cHRpb24oKTsKICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldEtleXdvcmRTaXplKDApOwotICAg
ICAgICBib29sIGZhbWlseUlzRml4ZWQgPSBmb250RGVzY3JpcHRpb24uZ2VuZXJpY0ZhbWlseSgp
ID09IEZvbnREZXNjcmlwdGlvbjo6TW9ub3NwYWNlRmFtaWx5OwogICAgICAgICBmbG9hdCBvbGRT
aXplID0gMDsKICAgICAgICAgZmxvYXQgc2l6ZSA9IDA7CiAgICAgICAgIApAQCAtMzc2OSw3ICsz
NzY4LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NT
VmFsdWUgKnZhbHVlKQogICAgICAgICAgICAgaWYgKG1fcGFyZW50Tm9kZSkKICAgICAgICAgICAg
ICAgICBmb250RGVzY3JpcHRpb24uc2V0S2V5d29yZFNpemUobV9wYXJlbnRTdHlsZS0+Zm9udERl
c2NyaXB0aW9uKCkua2V5d29yZFNpemUoKSk7CiAgICAgICAgIH0gZWxzZSBpZiAoaXNJbml0aWFs
KSB7Ci0gICAgICAgICAgICBzaXplID0gZm9udFNpemVGb3JLZXl3b3JkKENTU1ZhbHVlTWVkaXVt
LCBtX3N0eWxlLT5odG1sSGFja3MoKSwgZmFtaWx5SXNGaXhlZCk7CisgICAgICAgICAgICBzaXpl
ID0gZm9udFNpemVGb3JLZXl3b3JkKENTU1ZhbHVlTWVkaXVtLCBtX3N0eWxlLT5odG1sSGFja3Mo
KSwgZm9udERlc2NyaXB0aW9uLnVzZUZpeGVkRGVmYXVsdFNpemUoKSk7CiAgICAgICAgICAgICBm
b250RGVzY3JpcHRpb24uc2V0S2V5d29yZFNpemUoQ1NTVmFsdWVNZWRpdW0gLSBDU1NWYWx1ZVh4
U21hbGwgKyAxKTsKICAgICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQo
KSkgewogICAgICAgICAgICAgLy8gS2V5d29yZHMgYXJlIGJlaW5nIHVzZWQuCkBAIC0zNzgyLDcg
KzM3ODEsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBD
U1NWYWx1ZSAqdmFsdWUpCiAgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVhMYXJnZToKICAg
ICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlWHhMYXJnZToKICAgICAgICAgICAgICAgICBjYXNl
IENTU1ZhbHVlV2Via2l0WHh4TGFyZ2U6Ci0gICAgICAgICAgICAgICAgICAgIHNpemUgPSBmb250
U2l6ZUZvcktleXdvcmQocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCksIG1fc3R5bGUtPmh0bWxI
YWNrcygpLCBmYW1pbHlJc0ZpeGVkKTsKKyAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IGZvbnRT
aXplRm9yS2V5d29yZChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSwgbV9zdHlsZS0+aHRtbEhh
Y2tzKCksIGZvbnREZXNjcmlwdGlvbi51c2VGaXhlZERlZmF1bHRTaXplKCkpOwogICAgICAgICAg
ICAgICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0S2V5d29yZFNpemUocHJpbWl0aXZlVmFsdWUt
PmdldElkZW50KCkgLSBDU1NWYWx1ZVh4U21hbGwgKyAxKTsKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUxhcmdlcjoKQEAgLTQwMjUsMTMg
KzQwMjQsMTIgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwg
Q1NTVmFsdWUgKnZhbHVlKQogICAgICAgICAgICAgaWYgKG1fc3R5bGUtPnNldEZvbnREZXNjcmlw
dGlvbihmb250RGVzY3JpcHRpb24pKQogICAgICAgICAgICAgICAgIG1fZm9udERpcnR5ID0gdHJ1
ZTsKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChpc0lu
aXRpYWwpIHsKKyAgICAgICAgfSBlbHNlIGlmIChpc0luaXRpYWwpIHsKICAgICAgICAgICAgIEZv
bnREZXNjcmlwdGlvbiBpbml0aWFsRGVzYyA9IEZvbnREZXNjcmlwdGlvbigpOwogICAgICAgICAg
ICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbiA9IG1fc3R5bGUtPmZvbnREZXNjcmlw
dGlvbigpOwogICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBhZGp1c3QgdGhlIHNpemUgdG8gYWNj
b3VudCBmb3IgdGhlIGdlbmVyaWMgZmFtaWx5IGNoYW5nZSBmcm9tIG1vbm9zcGFjZQogICAgICAg
ICAgICAgLy8gdG8gbm9uLW1vbm9zcGFjZS4KLSAgICAgICAgICAgIGlmIChmb250RGVzY3JpcHRp
b24ua2V5d29yZFNpemUoKSAmJiBmb250RGVzY3JpcHRpb24uZ2VuZXJpY0ZhbWlseSgpID09IEZv
bnREZXNjcmlwdGlvbjo6TW9ub3NwYWNlRmFtaWx5KQorICAgICAgICAgICAgaWYgKGZvbnREZXNj
cmlwdGlvbi5rZXl3b3JkU2l6ZSgpICYmIGZvbnREZXNjcmlwdGlvbi51c2VGaXhlZERlZmF1bHRT
aXplKCkpCiAgICAgICAgICAgICAgICAgc2V0Rm9udFNpemUoZm9udERlc2NyaXB0aW9uLCBmb250
U2l6ZUZvcktleXdvcmQoQ1NTVmFsdWVYeFNtYWxsICsgZm9udERlc2NyaXB0aW9uLmtleXdvcmRT
aXplKCkgLSAxLCBtX3N0eWxlLT5odG1sSGFja3MoKSwgZmFsc2UpKTsKICAgICAgICAgICAgIGZv
bnREZXNjcmlwdGlvbi5zZXRHZW5lcmljRmFtaWx5KGluaXRpYWxEZXNjLmdlbmVyaWNGYW1pbHko
KSk7CiAgICAgICAgICAgICBpZiAoIWluaXRpYWxEZXNjLmZpcnN0RmFtaWx5KCkuZmFtaWx5SXNF
bXB0eSgpKQpAQCAtNDA0MSw3ICs0MDM5LDggQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBs
eVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBpZiAoIXZhbHVlLT5pc1ZhbHVlTGlzdCgpKSBy
ZXR1cm47CisgICAgICAgIGlmICghdmFsdWUtPmlzVmFsdWVMaXN0KCkpCisgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24gPSBtX3N0eWxl
LT5mb250RGVzY3JpcHRpb24oKTsKICAgICAgICAgQ1NTVmFsdWVMaXN0ICpsaXN0ID0gc3RhdGlj
X2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpOwogICAgICAgICBpbnQgbGVuID0gbGlzdC0+bGVu
Z3RoKCk7CkBAIC00MDQ5LDcgKzQwNDgsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5
UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAgICAgICAgIEZvbnRGYW1pbHkgKmN1
cnJGYW1pbHkgPSAwOwogICAgICAgICAKICAgICAgICAgLy8gQmVmb3JlIG1hcHBpbmcgaW4gYSBu
ZXcgZm9udC1mYW1pbHkgcHJvcGVydHksIHdlIHNob3VsZCByZXNldCB0aGUgZ2VuZXJpYyBmYW1p
bHkuCi0gICAgICAgIGJvb2wgb2xkRmFtaWx5SXNNb25vc3BhY2UgPSBmb250RGVzY3JpcHRpb24u
Z2VuZXJpY0ZhbWlseSgpID09IEZvbnREZXNjcmlwdGlvbjo6TW9ub3NwYWNlRmFtaWx5OworICAg
ICAgICBib29sIG9sZEZhbWlseVVzZWRGaXhlZERlZmF1bHRTaXplID0gZm9udERlc2NyaXB0aW9u
LnVzZUZpeGVkRGVmYXVsdFNpemUoKTsKICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldEdlbmVy
aWNGYW1pbHkoRm9udERlc2NyaXB0aW9uOjpOb0ZhbWlseSk7CiAKICAgICAgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCBsZW47IGkrKykgewpAQCAtNDEwMSw4ICs0MTAwLDggQEAgdm9pZCBDU1NTdHls
ZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAgICAg
ICAgICAgICAgICAgICBjdXJyRmFtaWx5ID0gbmV3RmFtaWx5LmdldCgpOwogICAgICAgICAgICAg
ICAgIH0KICAgICAKLSAgICAgICAgICAgICAgICBpZiAoZm9udERlc2NyaXB0aW9uLmtleXdvcmRT
aXplKCkgJiYgKGZvbnREZXNjcmlwdGlvbi5nZW5lcmljRmFtaWx5KCkgPT0gRm9udERlc2NyaXB0
aW9uOjpNb25vc3BhY2VGYW1pbHkpICE9IG9sZEZhbWlseUlzTW9ub3NwYWNlKQotICAgICAgICAg
ICAgICAgICAgICBzZXRGb250U2l6ZShmb250RGVzY3JpcHRpb24sIGZvbnRTaXplRm9yS2V5d29y
ZChDU1NWYWx1ZVh4U21hbGwgKyBmb250RGVzY3JpcHRpb24ua2V5d29yZFNpemUoKSAtIDEsIG1f
c3R5bGUtPmh0bWxIYWNrcygpLCAhb2xkRmFtaWx5SXNNb25vc3BhY2UpKTsKKyAgICAgICAgICAg
ICAgICBpZiAoZm9udERlc2NyaXB0aW9uLmtleXdvcmRTaXplKCkgJiYgZm9udERlc2NyaXB0aW9u
LnVzZUZpeGVkRGVmYXVsdFNpemUoKSAhPSBvbGRGYW1pbHlVc2VkRml4ZWREZWZhdWx0U2l6ZSkK
KyAgICAgICAgICAgICAgICAgICAgc2V0Rm9udFNpemUoZm9udERlc2NyaXB0aW9uLCBmb250U2l6
ZUZvcktleXdvcmQoQ1NTVmFsdWVYeFNtYWxsICsgZm9udERlc2NyaXB0aW9uLmtleXdvcmRTaXpl
KCkgLSAxLCBtX3N0eWxlLT5odG1sSGFja3MoKSwgIW9sZEZhbWlseVVzZWRGaXhlZERlZmF1bHRT
aXplKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAobV9zdHlsZS0+c2V0Rm9u
dERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbikpCiAgICAgICAgICAgICAgICAgICAgIG1fZm9u
dERpcnR5ID0gdHJ1ZTsKQEAgLTU1NzYsMTMgKzU1NzUsOCBAQCB2b2lkIENTU1N0eWxlU2VsZWN0
b3I6OmNoZWNrRm9yR2VuZXJpY0ZhbWlseUNoYW5nZShSZW5kZXJTdHlsZSogc3R5bGUsIFJlbmRl
clN0eQogICAgICAgICByZXR1cm47CiAKICAgICBjb25zdCBGb250RGVzY3JpcHRpb24mIHBhcmVu
dEZvbnQgPSBwYXJlbnRTdHlsZS0+Zm9udERlc2NyaXB0aW9uKCk7Ci0KLSAgICBpZiAoY2hpbGRG
b250LmdlbmVyaWNGYW1pbHkoKSA9PSBwYXJlbnRGb250LmdlbmVyaWNGYW1pbHkoKSkKLSAgICAg
ICAgcmV0dXJuOwotCiAgICAgLy8gRm9yIG5vdywgbHVtcCBhbGwgZmFtaWxpZXMgYnV0IG1vbm9z
cGFjZSB0b2dldGhlci4KLSAgICBpZiAoY2hpbGRGb250LmdlbmVyaWNGYW1pbHkoKSAhPSBGb250
RGVzY3JpcHRpb246Ok1vbm9zcGFjZUZhbWlseSAmJgotICAgICAgICBwYXJlbnRGb250LmdlbmVy
aWNGYW1pbHkoKSAhPSBGb250RGVzY3JpcHRpb246Ok1vbm9zcGFjZUZhbWlseSkKKyAgICBpZiAo
Y2hpbGRGb250LnVzZUZpeGVkRGVmYXVsdFNpemUoKSAhPSBwYXJlbnRGb250LnVzZUZpeGVkRGVm
YXVsdFNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gV2Uga25vdyB0aGUgcGFyZW50
IGlzIG1vbm9zcGFjZSBvciB0aGUgY2hpbGQgaXMgbW9ub3NwYWNlLCBhbmQgdGhhdCBmb250CkBA
IC01NTkwLDE3ICs1NTg0LDE2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6Y2hlY2tGb3JHZW5l
cmljRmFtaWx5Q2hhbmdlKFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVyU3R5CiAgICAgLy8gSWYg
dGhlIGZvbnQgdXNlcyBhIGtleXdvcmQgc2l6ZSwgdGhlbiB3ZSByZWZldGNoIGZyb20gdGhlIHRh
YmxlIHJhdGhlciB0aGFuCiAgICAgLy8gbXVsdGlwbHlpbmcgYnkgb3VyIHNjYWxlIGZhY3Rvci4K
ICAgICBmbG9hdCBzaXplOwotICAgIGlmIChjaGlsZEZvbnQua2V5d29yZFNpemUoKSkgewotICAg
ICAgICBzaXplID0gZm9udFNpemVGb3JLZXl3b3JkKENTU1ZhbHVlWHhTbWFsbCArIGNoaWxkRm9u
dC5rZXl3b3JkU2l6ZSgpIC0gMSwgc3R5bGUtPmh0bWxIYWNrcygpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNoaWxkRm9udC5nZW5lcmljRmFtaWx5KCkgPT0gRm9udERlc2Ny
aXB0aW9uOjpNb25vc3BhY2VGYW1pbHkpOwotICAgIH0gZWxzZSB7CisgICAgaWYgKGNoaWxkRm9u
dC5rZXl3b3JkU2l6ZSgpKQorICAgICAgICBzaXplID0gZm9udFNpemVGb3JLZXl3b3JkKENTU1Zh
bHVlWHhTbWFsbCArIGNoaWxkRm9udC5rZXl3b3JkU2l6ZSgpIC0gMSwgc3R5bGUtPmh0bWxIYWNr
cygpLCBjaGlsZEZvbnQudXNlRml4ZWREZWZhdWx0U2l6ZSgpKTsKKyAgICBlbHNlIHsKICAgICAg
ICAgU2V0dGluZ3MqIHNldHRpbmdzID0gbV9jaGVja2VyLm1fZG9jdW1lbnQtPnNldHRpbmdzKCk7
CiAgICAgICAgIGZsb2F0IGZpeGVkU2NhbGVGYWN0b3IgPSBzZXR0aW5ncwogICAgICAgICAgICAg
PyBzdGF0aWNfY2FzdDxmbG9hdD4oc2V0dGluZ3MtPmRlZmF1bHRGaXhlZEZvbnRTaXplKCkpIC8g
c2V0dGluZ3MtPmRlZmF1bHRGb250U2l6ZSgpCiAgICAgICAgICAgICA6IDE7Ci0gICAgICAgIHNp
emUgPSAocGFyZW50Rm9udC5nZW5lcmljRmFtaWx5KCkgPT0gRm9udERlc2NyaXB0aW9uOjpNb25v
c3BhY2VGYW1pbHkpID8gCi0gICAgICAgICAgICAgICAgY2hpbGRGb250LnNwZWNpZmllZFNpemUo
KS9maXhlZFNjYWxlRmFjdG9yIDoKLSAgICAgICAgICAgICAgICBjaGlsZEZvbnQuc3BlY2lmaWVk
U2l6ZSgpKmZpeGVkU2NhbGVGYWN0b3I7CisgICAgICAgIHNpemUgPSBwYXJlbnRGb250LnVzZUZp
eGVkRGVmYXVsdFNpemUoKSA/CisgICAgICAgICAgICAgICAgY2hpbGRGb250LnNwZWNpZmllZFNp
emUoKSAvIGZpeGVkU2NhbGVGYWN0b3IgOgorICAgICAgICAgICAgICAgIGNoaWxkRm9udC5zcGVj
aWZpZWRTaXplKCkgKiBmaXhlZFNjYWxlRmFjdG9yOwogICAgIH0KIAogICAgIEZvbnREZXNjcmlw
dGlvbiBuZXdGb250RGVzY3JpcHRpb24oY2hpbGRGb250KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCmluZGV4IGM4OTNiOGEuLjkwNDgxMjggMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaApAQCAtODAsNiArODAsOCBA
QCBwdWJsaWM6CiAgICAgRm9udFdlaWdodCBib2xkZXJXZWlnaHQoKSBjb25zdDsKICAgICBHZW5l
cmljRmFtaWx5VHlwZSBnZW5lcmljRmFtaWx5KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
R2VuZXJpY0ZhbWlseVR5cGU+KG1fZ2VuZXJpY0ZhbWlseSk7IH0KICAgICBib29sIHVzZVByaW50
ZXJGb250KCkgY29uc3QgeyByZXR1cm4gbV91c2VQcmludGVyRm9udDsgfQorICAgIC8vIG9ubHkg
dXNlIGZpeGVkIGRlZmF1bHQgc2l6ZSB3aGVuIHRoZXJlIGlzIG9ubHkgb25lIGZvbnQgZmFtaWx5
LCBhbmQgdGhhdCBmYW1pbHkgaXMgIm1vbm9zcGFjZSIKKyAgICBib29sIHVzZUZpeGVkRGVmYXVs
dFNpemUoKSBjb25zdCB7IHJldHVybiBnZW5lcmljRmFtaWx5KCkgPT0gTW9ub3NwYWNlRmFtaWx5
ICYmIGZpcnN0RmFtaWx5KCkuZmFtaWx5KCkgPT0gIi13ZWJraXQtbW9ub3NwYWNlIiAmJiAhZmly
c3RGYW1pbHkoKS5uZXh0KCk7IH0KICAgICBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2Rl
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Rm9udFJlbmRlcmluZ01vZGU+KG1fcmVuZGVy
aW5nTW9kZSk7IH0KICAgICB1bnNpZ25lZCBrZXl3b3JkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
a2V5d29yZFNpemU7IH0=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34215</attachid>
            <date>2009-08-06 11:55:11 -0700</date>
            <delta_ts>2009-08-06 13:28:33 -0700</delta_ts>
            <desc>Now a patch which works</desc>
            <filename>bug-19161-20090806115508.patch</filename>
            <type>text/plain</type>
            <size>17428</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0
ZWQtc3R5bGUtZm9udC1mYW1pbHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Z2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1mb250LWZhbWlseS1leHBlY3RlZC50eHQK
aW5kZXggZTdiNTBkMy4uNjczZDc4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Z2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1mb250LWZhbWlseS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHls
ZS1mb250LWZhbWlseS1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiBGb250IGF0dHJpYnV0
ZXMuIFRoZSBmb250LWZhbWlseSBzaG91bGQgbGlzdCB0aHJlZSBmYW1pbGllczoKIAogZm9udC1m
YW1pbHk6IG1vbm9zcGFjZSwgJ0x1Y2lkYSBHcmFuZGUnLCBzYW5zLXNlcmlmOwotZm9udC1zaXpl
OiAxM3B4OworZm9udC1zaXplOiAxNnB4OwogZm9udC1zdHlsZTogbm9ybWFsOwogZm9udC12YXJp
YW50OiBub3JtYWw7CiBmb250LXdlaWdodDogbm9ybWFsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2NzczEvZm9udF9wcm9wZXJ0aWVzL2ZvbnRfZmFtaWx5LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MxL2ZvbnRfcHJvcGVydGllcy9mb250
X2ZhbWlseS1leHBlY3RlZC50eHQKaW5kZXggN2FhZDJmMi4uYmMwYzIxOSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczEvZm9udF9wcm9wZXJ0aWVzL2ZvbnRfZmFtaWx5
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMS9mb250X3By
b3BlcnRpZXMvZm9udF9mYW1pbHktZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsOCBAQAotbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA3ODV4MTMwMQorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4MTMxMwogICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNzg1eDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4
MTMwMQotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA3ODV4MTMwMQotICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzY5eDEyODUgW2JnY29sb3I9I0NDQ0NDQ10K
K2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDEzMTMKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgNzg1eDEzMTMKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc2
OXgxMjk3IFtiZ2NvbG9yPSNDQ0NDQ0NdCiAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkg
c2l6ZSA3Njl4MTgKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzU1
eDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzU1OiAiVGhlIHN0eWxlIGRl
Y2xhcmF0aW9ucyB3aGljaCBhcHBseSB0byB0aGUgdGV4dCBiZWxvdyBhcmU6IgpAQCAtNTAsMTEg
KzUwLDExIEBAIGxheWVyIGF0ICgwLDApIHNpemUgNzg1eDEzMDEKICAgICAgIFJlbmRlckJsb2Nr
IHtQfSBhdCAoMCw0MzApIHNpemUgNzY5eDE4CiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDM5NngxOAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM5
NjogIlRoaXMgc2VudGVuY2Ugc2hvdWxkIGJlIGluIGEgc2Fucy1zZXJpZiBmb250LCBub3QgY3Vy
c2l2ZS4iCi0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsNDY0KSBzaXplIDc2OXgxNQotICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0NDB4MTUKLSAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0NDA6ICJUaGlzIHNlbnRlbmNlIHNob3VsZCBiZSBpbiBh
IG1vbm9zcGFjZSBmb250LCBub3Qgc2VyaWYuIgotICAgICAgUmVuZGVyQmxvY2sge0hSfSBhdCAo
MCw0OTIpIHNpemUgNzY5eDIgW2JvcmRlcjogKDFweCBpbnNldCAjMDAwMDAwKV0KLSAgICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgwLDUwNykgc2l6ZSA3Njl4MjExCisgICAgICBSZW5kZXJCbG9j
ayB7UH0gYXQgKDAsNDY0KSBzaXplIDc2OXgxOAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSA1NTB4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1
NTA6ICJUaGlzIHNlbnRlbmNlIHNob3VsZCBiZSBpbiBhIG1vbm9zcGFjZSBmb250LCBub3Qgc2Vy
aWYuIgorICAgICAgUmVuZGVyQmxvY2sge0hSfSBhdCAoMCw0OTgpIHNpemUgNzY5eDIgW2JvcmRl
cjogKDFweCBpbnNldCAjMDAwMDAwKV0KKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDUx
Mykgc2l6ZSA3Njl4MjExCiAgICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc2
OXgzMAogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDc2OHgzMAog
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzY4OiAiVGhpcyBzZW50ZW5jZSBp
cyBub3JtYWwgZm9yIHRoZSBmaXJzdCBkaXZpc2lvbiwgd2hpY2ggaXMgdGhlIG5leHQgZml2ZSBz
ZW50ZW5jZXM7IGl0IHNob3VsZCBiZSBhIgpAQCAtNzQsMTggKzc0LDE4IEBAIGxheWVyIGF0ICgw
LDApIHNpemUgNzg1eDEzMDEKICAgICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDE5Nikgc2l6
ZSA3Njl4MTUKICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzNTJ4
MTUKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM1MjogIlRoaXMgc2VudGVu
Y2Ugc2hvdWxkIGJlIGluIGEgbW9ub3NwYWNlIGZvbnQuIgotICAgICAgUmVuZGVyVGFibGUge1RB
QkxFfSBhdCAoMCw3MzEpIHNpemUgNzY5eDU1NCBbYm9yZGVyOiAoMXB4IG91dHNldCAjODA4MDgw
KV0KLSAgICAgICAgUmVuZGVyVGFibGVTZWN0aW9uIHtUQk9EWX0gYXQgKDEsMSkgc2l6ZSA3Njd4
NTUyCisgICAgICBSZW5kZXJUYWJsZSB7VEFCTEV9IGF0ICgwLDczNykgc2l6ZSA3Njl4NTYwIFti
b3JkZXI6ICgxcHggb3V0c2V0ICM4MDgwODApXQorICAgICAgICBSZW5kZXJUYWJsZVNlY3Rpb24g
e1RCT0RZfSBhdCAoMSwxKSBzaXplIDc2N3g1NTgKICAgICAgICAgICBSZW5kZXJUYWJsZVJvdyB7
VFJ9IGF0ICgwLDApIHNpemUgNzY3eDI2CiAgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoMCwwKSBzaXplIDc2N3gyNiBbYmdjb2xvcj0jQzBDMEMwXSBbYm9yZGVyOiAoMXB4IGlu
c2V0ICM4MDgwODApXSBbcj0wIGM9MCBycz0xIGNzPTJdCiAgICAgICAgICAgICAgIFJlbmRlcklu
bGluZSB7U1RST05HfSBhdCAoMCwwKSBzaXplIDE2M3gxOAogICAgICAgICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoNCw0KSBzaXplIDE2M3gxOAogICAgICAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDQsNCkgd2lkdGggMTYzOiAiVEFCTEUgVGVzdGluZyBTZWN0aW9uIgotICAgICAg
ICAgIFJlbmRlclRhYmxlUm93IHtUUn0gYXQgKDAsMjYpIHNpemUgNzY3eDUyNgotICAgICAgICAg
ICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDAsMjc2KSBzaXplIDEyeDI2IFtiZ2NvbG9yPSND
MEMwQzBdIFtib3JkZXI6ICgxcHggaW5zZXQgIzgwODA4MCldIFtyPTEgYz0wIHJzPTEgY3M9MV0K
KyAgICAgICAgICBSZW5kZXJUYWJsZVJvdyB7VFJ9IGF0ICgwLDI2KSBzaXplIDc2N3g1MzIKKyAg
ICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgwLDI3OSkgc2l6ZSAxMngyNiBbYmdj
b2xvcj0jQzBDMEMwXSBbYm9yZGVyOiAoMXB4IGluc2V0ICM4MDgwODApXSBbcj0xIGM9MCBycz0x
IGNzPTFdCiAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNCw0KSBzaXplIDR4
MTgKICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNCw0KSB3aWR0aCA0OiAiICIKLSAgICAg
ICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxMiwyNikgc2l6ZSA3NTV4NTI2IFtib3Jk
ZXI6ICgxcHggaW5zZXQgIzgwODA4MCldIFtyPTEgYz0xIHJzPTEgY3M9MV0KKyAgICAgICAgICAg
IFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxMiwyNikgc2l6ZSA3NTV4NTMyIFtib3JkZXI6ICgx
cHggaW5zZXQgIzgwODA4MCldIFtyPTEgYz0xIHJzPTEgY3M9MV0KICAgICAgICAgICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDQsNCkgc2l6ZSA3NDd4MTk5CiAgICAgICAgICAgICAgICAgUmVu
ZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzQ3eDE4CiAgICAgICAgICAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA2Mzh4MTgKQEAgLTEwOSwxMSArMTA5LDExIEBA
IGxheWVyIGF0ICgwLDApIHNpemUgNzg1eDEzMDEKICAgICAgICAgICAgICAgUmVuZGVyQmxvY2sg
e1B9IGF0ICg0LDIzNCkgc2l6ZSA3NDd4MTgKICAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAzOTZ4MTgKICAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDM5NjogIlRoaXMgc2VudGVuY2Ugc2hvdWxkIGJlIGluIGEgc2Fucy1zZXJp
ZiBmb250LCBub3QgY3Vyc2l2ZS4iCi0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAo
NCwyNjgpIHNpemUgNzQ3eDE1Ci0gICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgNDQweDE1Ci0gICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA0NDA6ICJUaGlzIHNlbnRlbmNlIHNob3VsZCBiZSBpbiBhIG1vbm9zcGFjZSBmb250LCBu
b3Qgc2VyaWYuIgotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFJ9IGF0ICg0LDI5Nikgc2l6
ZSA3NDd4MiBbYm9yZGVyOiAoMXB4IGluc2V0ICMwMDAwMDApXQotICAgICAgICAgICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoNCwzMTEpIHNpemUgNzQ3eDIxMQorICAgICAgICAgICAgICBSZW5k
ZXJCbG9jayB7UH0gYXQgKDQsMjY4KSBzaXplIDc0N3gxOAorICAgICAgICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU1MHgxOAorICAgICAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggNTUwOiAiVGhpcyBzZW50ZW5jZSBzaG91bGQgYmUgaW4gYSBt
b25vc3BhY2UgZm9udCwgbm90IHNlcmlmLiIKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hS
fSBhdCAoNCwzMDIpIHNpemUgNzQ3eDIgW2JvcmRlcjogKDFweCBpbnNldCAjMDAwMDAwKV0KKyAg
ICAgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDQsMzE3KSBzaXplIDc0N3gyMTEKICAg
ICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3NDd4MzAKICAgICAg
ICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDcyOHgzMAogICAg
ICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA3Mjg6ICJUaGlzIHNlbnRl
bmNlIGlzIG5vcm1hbCBmb3IgdGhlIGZpcnN0IGRpdmlzaW9uLCB3aGljaCBpcyB0aGUgbmV4dCBm
aXZlIHNlbnRlbmNlczsgaXQgc2hvdWxkIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2NzczIuMS90MTUwMy1jNTIyLWZvbnQtZmFtaWx5LTAwLWItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczIuMS90MTUwMy1jNTIyLWZvbnQtZmFtaWx5LTAw
LWItZXhwZWN0ZWQudHh0CmluZGV4IDFlMDJiZmIuLmYwM2MwZGEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MyLjEvdDE1MDMtYzUyMi1mb250LWZhbWlseS0wMC1iLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMi4xL3QxNTAzLWM1
MjItZm9udC1mYW1pbHktMDAtYi1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4IEBACiBsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
LWxheWVyIGF0ICgwLDApIHNpemUgODAweDI4NAotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAs
MCkgc2l6ZSA4MDB4Mjg0Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4
MjY4CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgyODcKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgODAweDI4NworICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
Nzg0eDI3MQogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4MTE5CiAg
ICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgxOCBbY29sb3I9IzAwMDA4
MF0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNDJ4MTgKQEAg
LTI1LDEwICsyNSwxMCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHgyODQKICAgICAgIFJlbmRl
ckJsb2NrIHtQfSBhdCAoMCwxMTkpIHNpemUgNzg0eDE4IFtjb2xvcj0jMDAwMDgwXQogICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMTF4MTgKICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCAzMTE6ICJUaGlzIHNlbnRlbmNlIHNob3VsZCBiZSBpbiBhIHNh
bnMtc2VyaWYgZm9udC4iCi0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMTM3KSBzaXplIDc4
NHgxNSBbY29sb3I9IzAwMDA4MF0KLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMzUyeDE1Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzUyOiAiVGhp
cyBzZW50ZW5jZSBzaG91bGQgYmUgaW4gYSBtb25vc3BhY2UgZm9udC4iCi0gICAgICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMCwxNTIpIHNpemUgNzg0eDExNgorICAgICAgUmVuZGVyQmxvY2sge1B9
IGF0ICgwLDEzNykgc2l6ZSA3ODR4MTggW2NvbG9yPSMwMDAwODBdCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQ0MHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDQ0MDogIlRoaXMgc2VudGVuY2Ugc2hvdWxkIGJlIGluIGEgbW9ub3NwYWNlIGZv
bnQuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMTU1KSBzaXplIDc4NHgxMTYKICAg
ICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDE1IFtjb2xvcj0jMDAwMDgw
XQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM1MngxNQogICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzUyOiAiVGhpcyBzZW50ZW5jZSBzaG91
bGQgYmUgaW4gYSBtb25vc3BhY2UgZm9udC4iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC90ZXh0L21vbm9zcGFjZS13aWR0aC1jYWNoZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L21vbm9zcGFjZS13aWR0aC1jYWNoZS1l
eHBlY3RlZC50eHQKaW5kZXggZDA1YTk0Ni4uMTU5MzRhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9tb25vc3BhY2Utd2lkdGgtY2FjaGUtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3RleHQvbW9ub3NwYWNlLXdp
ZHRoLWNhY2hlLWV4cGVjdGVkLnR4dApAQCAtMjAsNyArMjAsNyBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCw1Mikgc2l6ZSA3ODR4MTgK
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzY5eDE4CiAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzY5OiAiVGhlIGJsdWUgbGluZSBhbmQgdGhlIGJs
YWNrIGxpbmUgc2hvdWxkIGJlIHRoZSBzYW1lIGxlbmd0aC4iCi0gICAgICBSZW5kZXJCbG9jayB7
UH0gYXQgKDAsODYpIHNpemUgNzg0eDE1Ci0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQg
KDAsMCkgc2l6ZSAxNTZ4MTYgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMEZGKSBub25lXQotICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE1NngxNQotICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTU2OiAiXHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9
XHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9XHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9XHh7MjUwMH1c
eHsyNTAwfVx4ezI1MDB9IgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDg2KSBzaXplIDc4
NHgxOAorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTkyeDE5IFti
b3JkZXI6ICgxcHggc29saWQgIzAwMDBGRikgbm9uZV0KKyAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAxOTJ4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDE5MjogIlx4ezI1MDB9XHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9XHh7MjUwMH1ceHsy
NTAwfVx4ezI1MDB9XHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9XHh7MjUwMH1ceHsyNTAwfSIKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggN2NmYTNlMS4uNDlmMWM3MyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAKQEAgLTM3NTQsNyArMzc1NCw2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rv
cjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKICAgICB7CiAgICAgICAg
IEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24gPSBtX3N0eWxlLT5mb250RGVzY3JpcHRp
b24oKTsKICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldEtleXdvcmRTaXplKDApOwotICAgICAg
ICBib29sIGZhbWlseUlzRml4ZWQgPSBmb250RGVzY3JpcHRpb24uZ2VuZXJpY0ZhbWlseSgpID09
IEZvbnREZXNjcmlwdGlvbjo6TW9ub3NwYWNlRmFtaWx5OwogICAgICAgICBmbG9hdCBvbGRTaXpl
ID0gMDsKICAgICAgICAgZmxvYXQgc2l6ZSA9IDA7CiAgICAgICAgIApAQCAtMzc2OSw3ICszNzY4
LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFs
dWUgKnZhbHVlKQogICAgICAgICAgICAgaWYgKG1fcGFyZW50Tm9kZSkKICAgICAgICAgICAgICAg
ICBmb250RGVzY3JpcHRpb24uc2V0S2V5d29yZFNpemUobV9wYXJlbnRTdHlsZS0+Zm9udERlc2Ny
aXB0aW9uKCkua2V5d29yZFNpemUoKSk7CiAgICAgICAgIH0gZWxzZSBpZiAoaXNJbml0aWFsKSB7
Ci0gICAgICAgICAgICBzaXplID0gZm9udFNpemVGb3JLZXl3b3JkKENTU1ZhbHVlTWVkaXVtLCBt
X3N0eWxlLT5odG1sSGFja3MoKSwgZmFtaWx5SXNGaXhlZCk7CisgICAgICAgICAgICBzaXplID0g
Zm9udFNpemVGb3JLZXl3b3JkKENTU1ZhbHVlTWVkaXVtLCBtX3N0eWxlLT5odG1sSGFja3MoKSwg
Zm9udERlc2NyaXB0aW9uLnVzZUZpeGVkRGVmYXVsdFNpemUoKSk7CiAgICAgICAgICAgICBmb250
RGVzY3JpcHRpb24uc2V0S2V5d29yZFNpemUoQ1NTVmFsdWVNZWRpdW0gLSBDU1NWYWx1ZVh4U21h
bGwgKyAxKTsKICAgICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkg
ewogICAgICAgICAgICAgLy8gS2V5d29yZHMgYXJlIGJlaW5nIHVzZWQuCkBAIC0zNzgyLDcgKzM3
ODEsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBDU1NW
YWx1ZSAqdmFsdWUpCiAgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVhMYXJnZToKICAgICAg
ICAgICAgICAgICBjYXNlIENTU1ZhbHVlWHhMYXJnZToKICAgICAgICAgICAgICAgICBjYXNlIENT
U1ZhbHVlV2Via2l0WHh4TGFyZ2U6Ci0gICAgICAgICAgICAgICAgICAgIHNpemUgPSBmb250U2l6
ZUZvcktleXdvcmQocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCksIG1fc3R5bGUtPmh0bWxIYWNr
cygpLCBmYW1pbHlJc0ZpeGVkKTsKKyAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IGZvbnRTaXpl
Rm9yS2V5d29yZChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSwgbV9zdHlsZS0+aHRtbEhhY2tz
KCksIGZvbnREZXNjcmlwdGlvbi51c2VGaXhlZERlZmF1bHRTaXplKCkpOwogICAgICAgICAgICAg
ICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0S2V5d29yZFNpemUocHJpbWl0aXZlVmFsdWUtPmdl
dElkZW50KCkgLSBDU1NWYWx1ZVh4U21hbGwgKyAxKTsKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUxhcmdlcjoKQEAgLTQwMjUsMTMgKzQw
MjQsMTIgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NT
VmFsdWUgKnZhbHVlKQogICAgICAgICAgICAgaWYgKG1fc3R5bGUtPnNldEZvbnREZXNjcmlwdGlv
bihmb250RGVzY3JpcHRpb24pKQogICAgICAgICAgICAgICAgIG1fZm9udERpcnR5ID0gdHJ1ZTsK
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChpc0luaXRp
YWwpIHsKKyAgICAgICAgfSBlbHNlIGlmIChpc0luaXRpYWwpIHsKICAgICAgICAgICAgIEZvbnRE
ZXNjcmlwdGlvbiBpbml0aWFsRGVzYyA9IEZvbnREZXNjcmlwdGlvbigpOwogICAgICAgICAgICAg
Rm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbiA9IG1fc3R5bGUtPmZvbnREZXNjcmlwdGlv
bigpOwogICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBhZGp1c3QgdGhlIHNpemUgdG8gYWNjb3Vu
dCBmb3IgdGhlIGdlbmVyaWMgZmFtaWx5IGNoYW5nZSBmcm9tIG1vbm9zcGFjZQogICAgICAgICAg
ICAgLy8gdG8gbm9uLW1vbm9zcGFjZS4KLSAgICAgICAgICAgIGlmIChmb250RGVzY3JpcHRpb24u
a2V5d29yZFNpemUoKSAmJiBmb250RGVzY3JpcHRpb24uZ2VuZXJpY0ZhbWlseSgpID09IEZvbnRE
ZXNjcmlwdGlvbjo6TW9ub3NwYWNlRmFtaWx5KQorICAgICAgICAgICAgaWYgKGZvbnREZXNjcmlw
dGlvbi5rZXl3b3JkU2l6ZSgpICYmIGZvbnREZXNjcmlwdGlvbi51c2VGaXhlZERlZmF1bHRTaXpl
KCkpCiAgICAgICAgICAgICAgICAgc2V0Rm9udFNpemUoZm9udERlc2NyaXB0aW9uLCBmb250U2l6
ZUZvcktleXdvcmQoQ1NTVmFsdWVYeFNtYWxsICsgZm9udERlc2NyaXB0aW9uLmtleXdvcmRTaXpl
KCkgLSAxLCBtX3N0eWxlLT5odG1sSGFja3MoKSwgZmFsc2UpKTsKICAgICAgICAgICAgIGZvbnRE
ZXNjcmlwdGlvbi5zZXRHZW5lcmljRmFtaWx5KGluaXRpYWxEZXNjLmdlbmVyaWNGYW1pbHkoKSk7
CiAgICAgICAgICAgICBpZiAoIWluaXRpYWxEZXNjLmZpcnN0RmFtaWx5KCkuZmFtaWx5SXNFbXB0
eSgpKQpAQCAtNDA0MSw3ICs0MDM5LDggQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVBy
b3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgICAgIAotICAgICAgICBpZiAoIXZhbHVlLT5pc1ZhbHVlTGlzdCgpKSByZXR1
cm47CisgICAgICAgIGlmICghdmFsdWUtPmlzVmFsdWVMaXN0KCkpCisgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24gPSBtX3N0eWxlLT5m
b250RGVzY3JpcHRpb24oKTsKICAgICAgICAgQ1NTVmFsdWVMaXN0ICpsaXN0ID0gc3RhdGljX2Nh
c3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpOwogICAgICAgICBpbnQgbGVuID0gbGlzdC0+bGVuZ3Ro
KCk7CkBAIC00MDQ5LDEyICs0MDQ4LDE0IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQ
cm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKICAgICAgICAgRm9udEZhbWlseSAqY3Vy
ckZhbWlseSA9IDA7CiAgICAgICAgIAogICAgICAgICAvLyBCZWZvcmUgbWFwcGluZyBpbiBhIG5l
dyBmb250LWZhbWlseSBwcm9wZXJ0eSwgd2Ugc2hvdWxkIHJlc2V0IHRoZSBnZW5lcmljIGZhbWls
eS4KLSAgICAgICAgYm9vbCBvbGRGYW1pbHlJc01vbm9zcGFjZSA9IGZvbnREZXNjcmlwdGlvbi5n
ZW5lcmljRmFtaWx5KCkgPT0gRm9udERlc2NyaXB0aW9uOjpNb25vc3BhY2VGYW1pbHk7CisgICAg
ICAgIGJvb2wgb2xkRmFtaWx5VXNlZEZpeGVkRGVmYXVsdFNpemUgPSBmb250RGVzY3JpcHRpb24u
dXNlRml4ZWREZWZhdWx0U2l6ZSgpOwogICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0R2VuZXJp
Y0ZhbWlseShGb250RGVzY3JpcHRpb246Ok5vRmFtaWx5KTsKIAorICAgICAgICBib29sIHNldE5l
d0ZvbnREZXNjcmlwdGlvbiA9IGZhbHNlOwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxl
bjsgaSsrKSB7CiAgICAgICAgICAgICBDU1NWYWx1ZSAqaXRlbSA9IGxpc3QtPml0ZW1XaXRob3V0
Qm91bmRzQ2hlY2soaSk7Ci0gICAgICAgICAgICBpZiAoIWl0ZW0tPmlzUHJpbWl0aXZlVmFsdWUo
KSkgY29udGludWU7CisgICAgICAgICAgICBpZiAoIWl0ZW0tPmlzUHJpbWl0aXZlVmFsdWUoKSkK
KyAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVl
ICp2YWwgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGl0ZW0pOwogICAgICAgICAg
ICAgQXRvbWljU3RyaW5nIGZhY2U7CiAgICAgICAgICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBt
X2NoZWNrZXIubV9kb2N1bWVudC0+c2V0dGluZ3MoKTsKQEAgLTQwODcsMjggKzQwODgsMzIgQEAg
dm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZh
bHVlKQogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfQotICAgIAorCiAgICAgICAgICAgICBpZiAoIWZhY2UuaXNFbXB0eSgpKSB7
CiAgICAgICAgICAgICAgICAgaWYgKCFjdXJyRmFtaWx5KSB7CiAgICAgICAgICAgICAgICAgICAg
IC8vIEZpbGxpbmcgaW4gdGhlIGZpcnN0IGZhbWlseS4KICAgICAgICAgICAgICAgICAgICAgZmly
c3RGYW1pbHkuc2V0RmFtaWx5KGZhY2UpOworICAgICAgICAgICAgICAgICAgICBmaXJzdEZhbWls
eS5hcHBlbmRGYW1pbHkoMCk7IC8vIERpc2Nvbm5lY3QgYW55IGluaGVyaXRlZCBmYW1pbHktZmFs
bGJhY2sgbGlzdC4KICAgICAgICAgICAgICAgICAgICAgY3VyckZhbWlseSA9ICZmaXJzdEZhbWls
eTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPFNoYXJlZEZvbnRGYW1p
bHk+IG5ld0ZhbWlseSA9IFNoYXJlZEZvbnRGYW1pbHk6OmNyZWF0ZSgpOwogICAgICAgICAgICAg
ICAgICAgICBuZXdGYW1pbHktPnNldEZhbWlseShmYWNlKTsKICAgICAgICAgICAgICAgICAgICAg
Y3VyckZhbWlseS0+YXBwZW5kRmFtaWx5KG5ld0ZhbWlseSk7CiAgICAgICAgICAgICAgICAgICAg
IGN1cnJGYW1pbHkgPSBuZXdGYW1pbHkuZ2V0KCk7CiAgICAgICAgICAgICAgICAgfQotICAgIAot
ICAgICAgICAgICAgICAgIGlmIChmb250RGVzY3JpcHRpb24ua2V5d29yZFNpemUoKSAmJiAoZm9u
dERlc2NyaXB0aW9uLmdlbmVyaWNGYW1pbHkoKSA9PSBGb250RGVzY3JpcHRpb246Ok1vbm9zcGFj
ZUZhbWlseSkgIT0gb2xkRmFtaWx5SXNNb25vc3BhY2UpCi0gICAgICAgICAgICAgICAgICAgIHNl
dEZvbnRTaXplKGZvbnREZXNjcmlwdGlvbiwgZm9udFNpemVGb3JLZXl3b3JkKENTU1ZhbHVlWHhT
bWFsbCArIGZvbnREZXNjcmlwdGlvbi5rZXl3b3JkU2l6ZSgpIC0gMSwgbV9zdHlsZS0+aHRtbEhh
Y2tzKCksICFvbGRGYW1pbHlJc01vbm9zcGFjZSkpOwotICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgaWYgKG1fc3R5bGUtPnNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pKQot
ICAgICAgICAgICAgICAgICAgICBtX2ZvbnREaXJ0eSA9IHRydWU7CisgICAgICAgICAgICAgICAg
c2V0TmV3Rm9udERlc2NyaXB0aW9uID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQot
ICAgICAgcmV0dXJuOworCisgICAgICAgIC8vIFdlIGNhbid0IGNhbGwgdXNlRml4ZWREZWZhdWx0
U2l6ZSgpIHVudGlsIGFsbCBuZXcgZm9udCBmYW1pbGllcyBoYXZlIGJlZW4gYWRkZWQKKyAgICAg
ICAgaWYgKHNldE5ld0ZvbnREZXNjcmlwdGlvbikgeworICAgICAgICAgICAgaWYgKGZvbnREZXNj
cmlwdGlvbi5rZXl3b3JkU2l6ZSgpICYmIGZvbnREZXNjcmlwdGlvbi51c2VGaXhlZERlZmF1bHRT
aXplKCkgIT0gb2xkRmFtaWx5VXNlZEZpeGVkRGVmYXVsdFNpemUpCisgICAgICAgICAgICAgICAg
c2V0Rm9udFNpemUoZm9udERlc2NyaXB0aW9uLCBmb250U2l6ZUZvcktleXdvcmQoQ1NTVmFsdWVY
eFNtYWxsICsgZm9udERlc2NyaXB0aW9uLmtleXdvcmRTaXplKCkgLSAxLCBtX3N0eWxlLT5odG1s
SGFja3MoKSwgIW9sZEZhbWlseVVzZWRGaXhlZERlZmF1bHRTaXplKSk7CisKKyAgICAgICAgICAg
IGlmIChtX3N0eWxlLT5zZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKSkKKyAgICAg
ICAgICAgICAgICBtX2ZvbnREaXJ0eSA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dERlY29yYXRpb246IHsKICAgICAgICAg
Ly8gbGlzdCBvZiBpZGVudApAQCAtNTU3Niw4ICs1NTgxLDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVj
dG9yOjpjaGVja0ZvckdlbmVyaWNGYW1pbHlDaGFuZ2UoUmVuZGVyU3R5bGUqIHN0eWxlLCBSZW5k
ZXJTdHkKICAgICAgICAgcmV0dXJuOwogCiAgICAgY29uc3QgRm9udERlc2NyaXB0aW9uJiBwYXJl
bnRGb250ID0gcGFyZW50U3R5bGUtPmZvbnREZXNjcmlwdGlvbigpOwotCi0gICAgaWYgKGNoaWxk
Rm9udC5nZW5lcmljRmFtaWx5KCkgPT0gcGFyZW50Rm9udC5nZW5lcmljRmFtaWx5KCkpCisgICAg
aWYgKGNoaWxkRm9udC51c2VGaXhlZERlZmF1bHRTaXplKCkgPT0gcGFyZW50Rm9udC51c2VGaXhl
ZERlZmF1bHRTaXplKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIEZvciBub3csIGx1bXAg
YWxsIGZhbWlsaWVzIGJ1dCBtb25vc3BhY2UgdG9nZXRoZXIuCkBAIC01NTkwLDE3ICs1NTk0LDE2
IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6Y2hlY2tGb3JHZW5lcmljRmFtaWx5Q2hhbmdlKFJl
bmRlclN0eWxlKiBzdHlsZSwgUmVuZGVyU3R5CiAgICAgLy8gSWYgdGhlIGZvbnQgdXNlcyBhIGtl
eXdvcmQgc2l6ZSwgdGhlbiB3ZSByZWZldGNoIGZyb20gdGhlIHRhYmxlIHJhdGhlciB0aGFuCiAg
ICAgLy8gbXVsdGlwbHlpbmcgYnkgb3VyIHNjYWxlIGZhY3Rvci4KICAgICBmbG9hdCBzaXplOwot
ICAgIGlmIChjaGlsZEZvbnQua2V5d29yZFNpemUoKSkgewotICAgICAgICBzaXplID0gZm9udFNp
emVGb3JLZXl3b3JkKENTU1ZhbHVlWHhTbWFsbCArIGNoaWxkRm9udC5rZXl3b3JkU2l6ZSgpIC0g
MSwgc3R5bGUtPmh0bWxIYWNrcygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNoaWxkRm9udC5nZW5lcmljRmFtaWx5KCkgPT0gRm9udERlc2NyaXB0aW9uOjpNb25vc3BhY2VG
YW1pbHkpOwotICAgIH0gZWxzZSB7CisgICAgaWYgKGNoaWxkRm9udC5rZXl3b3JkU2l6ZSgpKQor
ICAgICAgICBzaXplID0gZm9udFNpemVGb3JLZXl3b3JkKENTU1ZhbHVlWHhTbWFsbCArIGNoaWxk
Rm9udC5rZXl3b3JkU2l6ZSgpIC0gMSwgc3R5bGUtPmh0bWxIYWNrcygpLCBjaGlsZEZvbnQudXNl
Rml4ZWREZWZhdWx0U2l6ZSgpKTsKKyAgICBlbHNlIHsKICAgICAgICAgU2V0dGluZ3MqIHNldHRp
bmdzID0gbV9jaGVja2VyLm1fZG9jdW1lbnQtPnNldHRpbmdzKCk7CiAgICAgICAgIGZsb2F0IGZp
eGVkU2NhbGVGYWN0b3IgPSBzZXR0aW5ncwogICAgICAgICAgICAgPyBzdGF0aWNfY2FzdDxmbG9h
dD4oc2V0dGluZ3MtPmRlZmF1bHRGaXhlZEZvbnRTaXplKCkpIC8gc2V0dGluZ3MtPmRlZmF1bHRG
b250U2l6ZSgpCiAgICAgICAgICAgICA6IDE7Ci0gICAgICAgIHNpemUgPSAocGFyZW50Rm9udC5n
ZW5lcmljRmFtaWx5KCkgPT0gRm9udERlc2NyaXB0aW9uOjpNb25vc3BhY2VGYW1pbHkpID8gCi0g
ICAgICAgICAgICAgICAgY2hpbGRGb250LnNwZWNpZmllZFNpemUoKS9maXhlZFNjYWxlRmFjdG9y
IDoKLSAgICAgICAgICAgICAgICBjaGlsZEZvbnQuc3BlY2lmaWVkU2l6ZSgpKmZpeGVkU2NhbGVG
YWN0b3I7CisgICAgICAgIHNpemUgPSBwYXJlbnRGb250LnVzZUZpeGVkRGVmYXVsdFNpemUoKSA/
CisgICAgICAgICAgICAgICAgY2hpbGRGb250LnNwZWNpZmllZFNpemUoKSAvIGZpeGVkU2NhbGVG
YWN0b3IgOgorICAgICAgICAgICAgICAgIGNoaWxkRm9udC5zcGVjaWZpZWRTaXplKCkgKiBmaXhl
ZFNjYWxlRmFjdG9yOwogICAgIH0KIAogICAgIEZvbnREZXNjcmlwdGlvbiBuZXdGb250RGVzY3Jp
cHRpb24oY2hpbGRGb250KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udERlc2NyaXB0aW9uLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlw
dGlvbi5oCmluZGV4IGM4OTNiOGEuLmU1YzUyYmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250RGVzY3JpcHRpb24uaApAQCAtODAsNiArODAsOCBAQCBwdWJsaWM6CiAgICAgRm9u
dFdlaWdodCBib2xkZXJXZWlnaHQoKSBjb25zdDsKICAgICBHZW5lcmljRmFtaWx5VHlwZSBnZW5l
cmljRmFtaWx5KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8R2VuZXJpY0ZhbWlseVR5cGU+
KG1fZ2VuZXJpY0ZhbWlseSk7IH0KICAgICBib29sIHVzZVByaW50ZXJGb250KCkgY29uc3QgeyBy
ZXR1cm4gbV91c2VQcmludGVyRm9udDsgfQorICAgIC8vIG9ubHkgdXNlIGZpeGVkIGRlZmF1bHQg
c2l6ZSB3aGVuIHRoZXJlIGlzIG9ubHkgb25lIGZvbnQgZmFtaWx5LCBhbmQgdGhhdCBmYW1pbHkg
aXMgIm1vbm9zcGFjZSIKKyAgICBib29sIHVzZUZpeGVkRGVmYXVsdFNpemUoKSBjb25zdCB7IHJl
dHVybiBnZW5lcmljRmFtaWx5KCkgPT0gTW9ub3NwYWNlRmFtaWx5ICYmICFmYW1pbHkoKS5uZXh0
KCkgJiYgZmFtaWx5KCkuZmFtaWx5KCkgPT0gIi13ZWJraXQtbW9ub3NwYWNlIjsgfQogICAgIEZv
bnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxGb250UmVuZGVyaW5nTW9kZT4obV9yZW5kZXJpbmdNb2RlKTsgfQogICAgIHVuc2lnbmVkIGtl
eXdvcmRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9rZXl3b3JkU2l6ZTsgfQ==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34224</attachid>
            <date>2009-08-06 13:28:43 -0700</date>
            <delta_ts>2009-08-06 13:41:53 -0700</delta_ts>
            <desc>Full fix with tests</desc>
            <filename>bug-19161-20090806132840.patch</filename>
            <type>text/plain</type>
            <size>20779</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMmE5NzQxLi4yODBhNWM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMDktMDgt
MDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdyb25nIGZvbnQgc2l6ZSB3aGVuIGNzcyBmb250
LWZhbWlseSBpbmNsdWRlcyBtb25vc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5MTYxCisKKyAgICAgICAgVXBkYXRlIHRlc3QgcmVzdWx0cyBu
b3cgdGhhdCBvbmx5ICJmb250LWZhbWlseTogbW9ub3NwYWNlIiBpcyAxM3B4LgorICAgICAgICBB
bGwgb3RoZXIgY29tYmluYXRpb25zIG9mIGZvbnQtZmFtaWx5IGFyZSAxNnB4IGRlZmF1bHQgc2l6
ZS4KKworICAgICAgICBBZGQgdHdvIHRlc3RzOgorICAgICAgICBmb250LWZhbWlseS1mYWxsYmFj
ay1yZXNldDogY2F0Y2hlcyBhIGJ1ZyBpbiBpbmhlcml0aW5nIGZvbnQtZmFtaWx5IGZhbGxiYWNr
LgorICAgICAgICBjb21wdXRlZC1zdHlsZS1mb250LWZhbWlseS1tb25vc3BhY2U6IHRlc3RzIHRo
aXMgYnVnLCB0aGF0IG9ubHkgImZvbnQtZmFtaWx5OiBtb25vc3BhY2UiIGlzIDEzcHguCisKKyAg
ICAgICAgKiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWZvbnQtZmFt
aWx5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2Nv
bXB1dGVkLXN0eWxlLWZvbnQtZmFtaWx5LW1vbm9zcGFjZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtZm9udC1m
YW1pbHktbW9ub3NwYWNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1
dGVkU3R5bGUvZm9udC1mYW1pbHktZmFsbGJhY2stcmVzZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2ZvbnQtZmFtaWx5LWZhbGxiYWNr
LXJlc2V0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUv
cmVzb3VyY2VzL2NvbXB1dGVkLXN0eWxlLWZvbnQtZmFtaWx5LW1vbm9zcGFjZS5qczogQWRkZWQu
CisgICAgICAgIChmb250U2l6ZUZvckZhbWlsaWVzKToKKyAgICAgICAgKiBmYXN0L2Nzcy9nZXRD
b21wdXRlZFN0eWxlL3Jlc291cmNlcy9mb250LWZhbWlseS1mYWxsYmFjay1yZXNldC5qczogQWRk
ZWQuCisgICAgICAgICogZmFzdC9qcy9tZXRob2QtY2hlY2suaHRtbDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvY3NzMS9mb250X3Byb3BlcnRpZXMvZm9udF9mYW1pbHktZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9jc3MyLjEvdDE1MDMtYzUyMi1mb250LWZhbWlseS0wMC1i
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L21vbm9zcGFj
ZS13aWR0aC1jYWNoZS1leHBlY3RlZC50eHQ6CisKIDIwMDktMDgtMDYgIERyZXcgV2lsc29uICA8
YXR3aWxzb25AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0
ZWQtc3R5bGUtZm9udC1mYW1pbHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Z2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1mb250LWZhbWlseS1leHBlY3RlZC50eHQK
aW5kZXggZTdiNTBkMy4uNjczZDc4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Z2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1mb250LWZhbWlseS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHls
ZS1mb250LWZhbWlseS1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiBGb250IGF0dHJpYnV0
ZXMuIFRoZSBmb250LWZhbWlseSBzaG91bGQgbGlzdCB0aHJlZSBmYW1pbGllczoKIAogZm9udC1m
YW1pbHk6IG1vbm9zcGFjZSwgJ0x1Y2lkYSBHcmFuZGUnLCBzYW5zLXNlcmlmOwotZm9udC1zaXpl
OiAxM3B4OworZm9udC1zaXplOiAxNnB4OwogZm9udC1zdHlsZTogbm9ybWFsOwogZm9udC12YXJp
YW50OiBub3JtYWw7CiBmb250LXdlaWdodDogbm9ybWFsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2NzczEvZm9udF9wcm9wZXJ0aWVzL2ZvbnRfZmFtaWx5LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MxL2ZvbnRfcHJvcGVydGllcy9mb250
X2ZhbWlseS1leHBlY3RlZC50eHQKaW5kZXggN2FhZDJmMi4uYmMwYzIxOSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczEvZm9udF9wcm9wZXJ0aWVzL2ZvbnRfZmFtaWx5
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMS9mb250X3By
b3BlcnRpZXMvZm9udF9mYW1pbHktZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsOCBAQAotbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA3ODV4MTMwMQorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4MTMxMwogICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNzg1eDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4
MTMwMQotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA3ODV4MTMwMQotICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzY5eDEyODUgW2JnY29sb3I9I0NDQ0NDQ10K
K2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDEzMTMKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgNzg1eDEzMTMKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc2
OXgxMjk3IFtiZ2NvbG9yPSNDQ0NDQ0NdCiAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkg
c2l6ZSA3Njl4MTgKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzU1
eDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzU1OiAiVGhlIHN0eWxlIGRl
Y2xhcmF0aW9ucyB3aGljaCBhcHBseSB0byB0aGUgdGV4dCBiZWxvdyBhcmU6IgpAQCAtNTAsMTEg
KzUwLDExIEBAIGxheWVyIGF0ICgwLDApIHNpemUgNzg1eDEzMDEKICAgICAgIFJlbmRlckJsb2Nr
IHtQfSBhdCAoMCw0MzApIHNpemUgNzY5eDE4CiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDM5NngxOAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM5
NjogIlRoaXMgc2VudGVuY2Ugc2hvdWxkIGJlIGluIGEgc2Fucy1zZXJpZiBmb250LCBub3QgY3Vy
c2l2ZS4iCi0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsNDY0KSBzaXplIDc2OXgxNQotICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0NDB4MTUKLSAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0NDA6ICJUaGlzIHNlbnRlbmNlIHNob3VsZCBiZSBpbiBh
IG1vbm9zcGFjZSBmb250LCBub3Qgc2VyaWYuIgotICAgICAgUmVuZGVyQmxvY2sge0hSfSBhdCAo
MCw0OTIpIHNpemUgNzY5eDIgW2JvcmRlcjogKDFweCBpbnNldCAjMDAwMDAwKV0KLSAgICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgwLDUwNykgc2l6ZSA3Njl4MjExCisgICAgICBSZW5kZXJCbG9j
ayB7UH0gYXQgKDAsNDY0KSBzaXplIDc2OXgxOAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSA1NTB4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1
NTA6ICJUaGlzIHNlbnRlbmNlIHNob3VsZCBiZSBpbiBhIG1vbm9zcGFjZSBmb250LCBub3Qgc2Vy
aWYuIgorICAgICAgUmVuZGVyQmxvY2sge0hSfSBhdCAoMCw0OTgpIHNpemUgNzY5eDIgW2JvcmRl
cjogKDFweCBpbnNldCAjMDAwMDAwKV0KKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDUx
Mykgc2l6ZSA3Njl4MjExCiAgICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc2
OXgzMAogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDc2OHgzMAog
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzY4OiAiVGhpcyBzZW50ZW5jZSBp
cyBub3JtYWwgZm9yIHRoZSBmaXJzdCBkaXZpc2lvbiwgd2hpY2ggaXMgdGhlIG5leHQgZml2ZSBz
ZW50ZW5jZXM7IGl0IHNob3VsZCBiZSBhIgpAQCAtNzQsMTggKzc0LDE4IEBAIGxheWVyIGF0ICgw
LDApIHNpemUgNzg1eDEzMDEKICAgICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDE5Nikgc2l6
ZSA3Njl4MTUKICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzNTJ4
MTUKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM1MjogIlRoaXMgc2VudGVu
Y2Ugc2hvdWxkIGJlIGluIGEgbW9ub3NwYWNlIGZvbnQuIgotICAgICAgUmVuZGVyVGFibGUge1RB
QkxFfSBhdCAoMCw3MzEpIHNpemUgNzY5eDU1NCBbYm9yZGVyOiAoMXB4IG91dHNldCAjODA4MDgw
KV0KLSAgICAgICAgUmVuZGVyVGFibGVTZWN0aW9uIHtUQk9EWX0gYXQgKDEsMSkgc2l6ZSA3Njd4
NTUyCisgICAgICBSZW5kZXJUYWJsZSB7VEFCTEV9IGF0ICgwLDczNykgc2l6ZSA3Njl4NTYwIFti
b3JkZXI6ICgxcHggb3V0c2V0ICM4MDgwODApXQorICAgICAgICBSZW5kZXJUYWJsZVNlY3Rpb24g
e1RCT0RZfSBhdCAoMSwxKSBzaXplIDc2N3g1NTgKICAgICAgICAgICBSZW5kZXJUYWJsZVJvdyB7
VFJ9IGF0ICgwLDApIHNpemUgNzY3eDI2CiAgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoMCwwKSBzaXplIDc2N3gyNiBbYmdjb2xvcj0jQzBDMEMwXSBbYm9yZGVyOiAoMXB4IGlu
c2V0ICM4MDgwODApXSBbcj0wIGM9MCBycz0xIGNzPTJdCiAgICAgICAgICAgICAgIFJlbmRlcklu
bGluZSB7U1RST05HfSBhdCAoMCwwKSBzaXplIDE2M3gxOAogICAgICAgICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoNCw0KSBzaXplIDE2M3gxOAogICAgICAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDQsNCkgd2lkdGggMTYzOiAiVEFCTEUgVGVzdGluZyBTZWN0aW9uIgotICAgICAg
ICAgIFJlbmRlclRhYmxlUm93IHtUUn0gYXQgKDAsMjYpIHNpemUgNzY3eDUyNgotICAgICAgICAg
ICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDAsMjc2KSBzaXplIDEyeDI2IFtiZ2NvbG9yPSND
MEMwQzBdIFtib3JkZXI6ICgxcHggaW5zZXQgIzgwODA4MCldIFtyPTEgYz0wIHJzPTEgY3M9MV0K
KyAgICAgICAgICBSZW5kZXJUYWJsZVJvdyB7VFJ9IGF0ICgwLDI2KSBzaXplIDc2N3g1MzIKKyAg
ICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgwLDI3OSkgc2l6ZSAxMngyNiBbYmdj
b2xvcj0jQzBDMEMwXSBbYm9yZGVyOiAoMXB4IGluc2V0ICM4MDgwODApXSBbcj0xIGM9MCBycz0x
IGNzPTFdCiAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNCw0KSBzaXplIDR4
MTgKICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNCw0KSB3aWR0aCA0OiAiICIKLSAgICAg
ICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxMiwyNikgc2l6ZSA3NTV4NTI2IFtib3Jk
ZXI6ICgxcHggaW5zZXQgIzgwODA4MCldIFtyPTEgYz0xIHJzPTEgY3M9MV0KKyAgICAgICAgICAg
IFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxMiwyNikgc2l6ZSA3NTV4NTMyIFtib3JkZXI6ICgx
cHggaW5zZXQgIzgwODA4MCldIFtyPTEgYz0xIHJzPTEgY3M9MV0KICAgICAgICAgICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDQsNCkgc2l6ZSA3NDd4MTk5CiAgICAgICAgICAgICAgICAgUmVu
ZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzQ3eDE4CiAgICAgICAgICAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA2Mzh4MTgKQEAgLTEwOSwxMSArMTA5LDExIEBA
IGxheWVyIGF0ICgwLDApIHNpemUgNzg1eDEzMDEKICAgICAgICAgICAgICAgUmVuZGVyQmxvY2sg
e1B9IGF0ICg0LDIzNCkgc2l6ZSA3NDd4MTgKICAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAzOTZ4MTgKICAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDM5NjogIlRoaXMgc2VudGVuY2Ugc2hvdWxkIGJlIGluIGEgc2Fucy1zZXJp
ZiBmb250LCBub3QgY3Vyc2l2ZS4iCi0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAo
NCwyNjgpIHNpemUgNzQ3eDE1Ci0gICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgNDQweDE1Ci0gICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA0NDA6ICJUaGlzIHNlbnRlbmNlIHNob3VsZCBiZSBpbiBhIG1vbm9zcGFjZSBmb250LCBu
b3Qgc2VyaWYuIgotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFJ9IGF0ICg0LDI5Nikgc2l6
ZSA3NDd4MiBbYm9yZGVyOiAoMXB4IGluc2V0ICMwMDAwMDApXQotICAgICAgICAgICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoNCwzMTEpIHNpemUgNzQ3eDIxMQorICAgICAgICAgICAgICBSZW5k
ZXJCbG9jayB7UH0gYXQgKDQsMjY4KSBzaXplIDc0N3gxOAorICAgICAgICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU1MHgxOAorICAgICAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggNTUwOiAiVGhpcyBzZW50ZW5jZSBzaG91bGQgYmUgaW4gYSBt
b25vc3BhY2UgZm9udCwgbm90IHNlcmlmLiIKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hS
fSBhdCAoNCwzMDIpIHNpemUgNzQ3eDIgW2JvcmRlcjogKDFweCBpbnNldCAjMDAwMDAwKV0KKyAg
ICAgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDQsMzE3KSBzaXplIDc0N3gyMTEKICAg
ICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3NDd4MzAKICAgICAg
ICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDcyOHgzMAogICAg
ICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA3Mjg6ICJUaGlzIHNlbnRl
bmNlIGlzIG5vcm1hbCBmb3IgdGhlIGZpcnN0IGRpdmlzaW9uLCB3aGljaCBpcyB0aGUgbmV4dCBm
aXZlIHNlbnRlbmNlczsgaXQgc2hvdWxkIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2NzczIuMS90MTUwMy1jNTIyLWZvbnQtZmFtaWx5LTAwLWItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczIuMS90MTUwMy1jNTIyLWZvbnQtZmFtaWx5LTAw
LWItZXhwZWN0ZWQudHh0CmluZGV4IDFlMDJiZmIuLmYwM2MwZGEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MyLjEvdDE1MDMtYzUyMi1mb250LWZhbWlseS0wMC1iLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMi4xL3QxNTAzLWM1
MjItZm9udC1mYW1pbHktMDAtYi1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4IEBACiBsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
LWxheWVyIGF0ICgwLDApIHNpemUgODAweDI4NAotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAs
MCkgc2l6ZSA4MDB4Mjg0Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4
MjY4CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgyODcKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgODAweDI4NworICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
Nzg0eDI3MQogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4MTE5CiAg
ICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgxOCBbY29sb3I9IzAwMDA4
MF0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNDJ4MTgKQEAg
LTI1LDEwICsyNSwxMCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHgyODQKICAgICAgIFJlbmRl
ckJsb2NrIHtQfSBhdCAoMCwxMTkpIHNpemUgNzg0eDE4IFtjb2xvcj0jMDAwMDgwXQogICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMTF4MTgKICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCAzMTE6ICJUaGlzIHNlbnRlbmNlIHNob3VsZCBiZSBpbiBhIHNh
bnMtc2VyaWYgZm9udC4iCi0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMTM3KSBzaXplIDc4
NHgxNSBbY29sb3I9IzAwMDA4MF0KLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMzUyeDE1Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzUyOiAiVGhp
cyBzZW50ZW5jZSBzaG91bGQgYmUgaW4gYSBtb25vc3BhY2UgZm9udC4iCi0gICAgICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMCwxNTIpIHNpemUgNzg0eDExNgorICAgICAgUmVuZGVyQmxvY2sge1B9
IGF0ICgwLDEzNykgc2l6ZSA3ODR4MTggW2NvbG9yPSMwMDAwODBdCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQ0MHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDQ0MDogIlRoaXMgc2VudGVuY2Ugc2hvdWxkIGJlIGluIGEgbW9ub3NwYWNlIGZv
bnQuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMTU1KSBzaXplIDc4NHgxMTYKICAg
ICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDE1IFtjb2xvcj0jMDAwMDgw
XQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM1MngxNQogICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzUyOiAiVGhpcyBzZW50ZW5jZSBzaG91
bGQgYmUgaW4gYSBtb25vc3BhY2UgZm9udC4iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC90ZXh0L21vbm9zcGFjZS13aWR0aC1jYWNoZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L21vbm9zcGFjZS13aWR0aC1jYWNoZS1l
eHBlY3RlZC50eHQKaW5kZXggZDA1YTk0Ni4uMTU5MzRhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9tb25vc3BhY2Utd2lkdGgtY2FjaGUtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3RleHQvbW9ub3NwYWNlLXdp
ZHRoLWNhY2hlLWV4cGVjdGVkLnR4dApAQCAtMjAsNyArMjAsNyBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCw1Mikgc2l6ZSA3ODR4MTgK
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzY5eDE4CiAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzY5OiAiVGhlIGJsdWUgbGluZSBhbmQgdGhlIGJs
YWNrIGxpbmUgc2hvdWxkIGJlIHRoZSBzYW1lIGxlbmd0aC4iCi0gICAgICBSZW5kZXJCbG9jayB7
UH0gYXQgKDAsODYpIHNpemUgNzg0eDE1Ci0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQg
KDAsMCkgc2l6ZSAxNTZ4MTYgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMEZGKSBub25lXQotICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE1NngxNQotICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTU2OiAiXHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9
XHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9XHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9XHh7MjUwMH1c
eHsyNTAwfVx4ezI1MDB9IgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDg2KSBzaXplIDc4
NHgxOAorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTkyeDE5IFti
b3JkZXI6ICgxcHggc29saWQgIzAwMDBGRikgbm9uZV0KKyAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAxOTJ4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDE5MjogIlx4ezI1MDB9XHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9XHh7MjUwMH1ceHsy
NTAwfVx4ezI1MDB9XHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9XHh7MjUwMH1ceHsyNTAwfSIKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzll
ZDdkOS4uYzAzODZmOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAwOS0wOC0wNiAgRXJpYyBTZWlkZWwgIDxl
cmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgd3JvbmcgZm9udCBzaXplIHdoZW4gY3NzIGZvbnQtZmFtaWx5IGluY2x1ZGVzIG1v
bm9zcGFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkxNjEKKworICAgICAgICBGaXJlZm94IG9ubHkgdXNlcyBmaXhlZC13aWR0aCBkZWZhdWx0IHNp
emUgZm9yIGV4YWN0bHkgImZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Ii4KKyAgICAgICAgV2ViS2l0
IGhhcyBoaXN0b3JpY2FsbHkgdXNlZCBmaXhlZC13aWR0aCBkZWZhdWx0IHNpemUgYW55IHRpbWUg
YQorICAgICAgICBmb250LWZhbWlseSBpbmNsdWRlcyBtb25vc3BhY2UgaW4gdGhlIGZhbGxiYWNr
IGxpc3QuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjb3JyZWN0cyBXZWJLaXQncyBiZWhhdmlvciB0
byBtYXRjaCBGaXJlZm94LgorICAgICAgICBJIGFsc28gaGFkIHRvIGZpeCBhIGJ1ZyBpbiBXZWJL
aXQncyBmb250LWZhbWlseSBmYWxsYmFjayBiZWhhdmlvciB3aGVyZQorICAgICAgICBjaGlsZCBl
bGVtZW50cyB3b3VsZCBpbmhlcml0IHBhcnRzIG9mIHRoZWlyIHBhcmVudHMgZmFsbGJhY2sgbGlz
dHMuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQt
c3R5bGUtZm9udC1mYW1pbHktbW9ub3NwYWNlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3Nz
L2dldENvbXB1dGVkU3R5bGUvZm9udC1mYW1pbHktZmFsbGJhY2stcmVzZXQuaHRtbAorCisgICAg
ICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNl
bGVjdG9yOjpjaGVja0ZvckdlbmVyaWNGYW1pbHlDaGFuZ2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2Ny
aXB0aW9uOjp1c2VGaXhlZERlZmF1bHRTaXplKToKKwogMjAwOS0wOC0wNiAgRGFyaW4gQWRsZXIg
IDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IE1hYyBMZW9wYXJkIGRlYnVnIGJ1aWxk
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCA3Y2ZhM2UxLi4yMTEwZGRhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtMzc1NCw3ICszNzU0LDYgQEAgdm9pZCBDU1NTdHlsZVNl
bGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAgIHsKICAg
ICAgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbiA9IG1fc3R5bGUtPmZvbnREZXNj
cmlwdGlvbigpOwogICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0S2V5d29yZFNpemUoMCk7Ci0g
ICAgICAgIGJvb2wgZmFtaWx5SXNGaXhlZCA9IGZvbnREZXNjcmlwdGlvbi5nZW5lcmljRmFtaWx5
KCkgPT0gRm9udERlc2NyaXB0aW9uOjpNb25vc3BhY2VGYW1pbHk7CiAgICAgICAgIGZsb2F0IG9s
ZFNpemUgPSAwOwogICAgICAgICBmbG9hdCBzaXplID0gMDsKICAgICAgICAgCkBAIC0zNzY5LDcg
KzM3NjgsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBD
U1NWYWx1ZSAqdmFsdWUpCiAgICAgICAgICAgICBpZiAobV9wYXJlbnROb2RlKQogICAgICAgICAg
ICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRLZXl3b3JkU2l6ZShtX3BhcmVudFN0eWxlLT5mb250
RGVzY3JpcHRpb24oKS5rZXl3b3JkU2l6ZSgpKTsKICAgICAgICAgfSBlbHNlIGlmIChpc0luaXRp
YWwpIHsKLSAgICAgICAgICAgIHNpemUgPSBmb250U2l6ZUZvcktleXdvcmQoQ1NTVmFsdWVNZWRp
dW0sIG1fc3R5bGUtPmh0bWxIYWNrcygpLCBmYW1pbHlJc0ZpeGVkKTsKKyAgICAgICAgICAgIHNp
emUgPSBmb250U2l6ZUZvcktleXdvcmQoQ1NTVmFsdWVNZWRpdW0sIG1fc3R5bGUtPmh0bWxIYWNr
cygpLCBmb250RGVzY3JpcHRpb24udXNlRml4ZWREZWZhdWx0U2l6ZSgpKTsKICAgICAgICAgICAg
IGZvbnREZXNjcmlwdGlvbi5zZXRLZXl3b3JkU2l6ZShDU1NWYWx1ZU1lZGl1bSAtIENTU1ZhbHVl
WHhTbWFsbCArIDEpOwogICAgICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVu
dCgpKSB7CiAgICAgICAgICAgICAvLyBLZXl3b3JkcyBhcmUgYmVpbmcgdXNlZC4KQEAgLTM3ODIs
NyArMzc4MSw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQs
IENTU1ZhbHVlICp2YWx1ZSkKICAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlWExhcmdlOgog
ICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVYeExhcmdlOgogICAgICAgICAgICAgICAgIGNh
c2UgQ1NTVmFsdWVXZWJraXRYeHhMYXJnZToKLSAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IGZv
bnRTaXplRm9yS2V5d29yZChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSwgbV9zdHlsZS0+aHRt
bEhhY2tzKCksIGZhbWlseUlzRml4ZWQpOworICAgICAgICAgICAgICAgICAgICBzaXplID0gZm9u
dFNpemVGb3JLZXl3b3JkKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpLCBtX3N0eWxlLT5odG1s
SGFja3MoKSwgZm9udERlc2NyaXB0aW9uLnVzZUZpeGVkRGVmYXVsdFNpemUoKSk7CiAgICAgICAg
ICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRLZXl3b3JkU2l6ZShwcmltaXRpdmVWYWx1
ZS0+Z2V0SWRlbnQoKSAtIENTU1ZhbHVlWHhTbWFsbCArIDEpOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlTGFyZ2VyOgpAQCAtNDAyNSwx
MyArNDAyNCwxMiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlk
LCBDU1NWYWx1ZSAqdmFsdWUpCiAgICAgICAgICAgICBpZiAobV9zdHlsZS0+c2V0Rm9udERlc2Ny
aXB0aW9uKGZvbnREZXNjcmlwdGlvbikpCiAgICAgICAgICAgICAgICAgbV9mb250RGlydHkgPSB0
cnVlOwogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKGlz
SW5pdGlhbCkgeworICAgICAgICB9IGVsc2UgaWYgKGlzSW5pdGlhbCkgewogICAgICAgICAgICAg
Rm9udERlc2NyaXB0aW9uIGluaXRpYWxEZXNjID0gRm9udERlc2NyaXB0aW9uKCk7CiAgICAgICAg
ICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uID0gbV9zdHlsZS0+Zm9udERlc2Ny
aXB0aW9uKCk7CiAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGFkanVzdCB0aGUgc2l6ZSB0byBh
Y2NvdW50IGZvciB0aGUgZ2VuZXJpYyBmYW1pbHkgY2hhbmdlIGZyb20gbW9ub3NwYWNlCiAgICAg
ICAgICAgICAvLyB0byBub24tbW9ub3NwYWNlLgotICAgICAgICAgICAgaWYgKGZvbnREZXNjcmlw
dGlvbi5rZXl3b3JkU2l6ZSgpICYmIGZvbnREZXNjcmlwdGlvbi5nZW5lcmljRmFtaWx5KCkgPT0g
Rm9udERlc2NyaXB0aW9uOjpNb25vc3BhY2VGYW1pbHkpCisgICAgICAgICAgICBpZiAoZm9udERl
c2NyaXB0aW9uLmtleXdvcmRTaXplKCkgJiYgZm9udERlc2NyaXB0aW9uLnVzZUZpeGVkRGVmYXVs
dFNpemUoKSkKICAgICAgICAgICAgICAgICBzZXRGb250U2l6ZShmb250RGVzY3JpcHRpb24sIGZv
bnRTaXplRm9yS2V5d29yZChDU1NWYWx1ZVh4U21hbGwgKyBmb250RGVzY3JpcHRpb24ua2V5d29y
ZFNpemUoKSAtIDEsIG1fc3R5bGUtPmh0bWxIYWNrcygpLCBmYWxzZSkpOwogICAgICAgICAgICAg
Zm9udERlc2NyaXB0aW9uLnNldEdlbmVyaWNGYW1pbHkoaW5pdGlhbERlc2MuZ2VuZXJpY0ZhbWls
eSgpKTsKICAgICAgICAgICAgIGlmICghaW5pdGlhbERlc2MuZmlyc3RGYW1pbHkoKS5mYW1pbHlJ
c0VtcHR5KCkpCkBAIC00MDQxLDIxICs0MDM5LDI0IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6
YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3Qo
KSkgcmV0dXJuOworICAgICAgICBpZiAoIXZhbHVlLT5pc1ZhbHVlTGlzdCgpKQorICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uID0gbV9z
dHlsZS0+Zm9udERlc2NyaXB0aW9uKCk7Ci0gICAgICAgIENTU1ZhbHVlTGlzdCAqbGlzdCA9IHN0
YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKTsKKyAgICAgICAgQ1NTVmFsdWVMaXN0KiBs
aXN0ID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpOwogICAgICAgICBpbnQgbGVu
ID0gbGlzdC0+bGVuZ3RoKCk7CiAgICAgICAgIEZvbnRGYW1pbHkmIGZpcnN0RmFtaWx5ID0gZm9u
dERlc2NyaXB0aW9uLmZpcnN0RmFtaWx5KCk7Ci0gICAgICAgIEZvbnRGYW1pbHkgKmN1cnJGYW1p
bHkgPSAwOworICAgICAgICBGb250RmFtaWx5KiBjdXJyRmFtaWx5ID0gMDsKICAgICAgICAgCiAg
ICAgICAgIC8vIEJlZm9yZSBtYXBwaW5nIGluIGEgbmV3IGZvbnQtZmFtaWx5IHByb3BlcnR5LCB3
ZSBzaG91bGQgcmVzZXQgdGhlIGdlbmVyaWMgZmFtaWx5LgotICAgICAgICBib29sIG9sZEZhbWls
eUlzTW9ub3NwYWNlID0gZm9udERlc2NyaXB0aW9uLmdlbmVyaWNGYW1pbHkoKSA9PSBGb250RGVz
Y3JpcHRpb246Ok1vbm9zcGFjZUZhbWlseTsKKyAgICAgICAgYm9vbCBvbGRGYW1pbHlVc2VkRml4
ZWREZWZhdWx0U2l6ZSA9IGZvbnREZXNjcmlwdGlvbi51c2VGaXhlZERlZmF1bHRTaXplKCk7CiAg
ICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRHZW5lcmljRmFtaWx5KEZvbnREZXNjcmlwdGlvbjo6
Tm9GYW1pbHkpOwogCisgICAgICAgIGJvb2wgc2V0TmV3Rm9udERlc2NyaXB0aW9uID0gZmFsc2U7
CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKLSAgICAgICAgICAgIENT
U1ZhbHVlICppdGVtID0gbGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjayhpKTsKLSAgICAgICAg
ICAgIGlmICghaXRlbS0+aXNQcmltaXRpdmVWYWx1ZSgpKSBjb250aW51ZTsKLSAgICAgICAgICAg
IENTU1ByaW1pdGl2ZVZhbHVlICp2YWwgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+
KGl0ZW0pOworICAgICAgICAgICAgQ1NTVmFsdWUqIGl0ZW0gPSBsaXN0LT5pdGVtV2l0aG91dEJv
dW5kc0NoZWNrKGkpOworICAgICAgICAgICAgaWYgKCFpdGVtLT5pc1ByaW1pdGl2ZVZhbHVlKCkp
CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1
ZSogdmFsID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihpdGVtKTsKICAgICAgICAg
ICAgIEF0b21pY1N0cmluZyBmYWNlOwogICAgICAgICAgICAgU2V0dGluZ3MqIHNldHRpbmdzID0g
bV9jaGVja2VyLm1fZG9jdW1lbnQtPnNldHRpbmdzKCk7CiAgICAgICAgICAgICBpZiAodmFsLT5w
cmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcpCkBAIC00MDg3
LDI4ICs0MDg4LDMyIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQg
aWQsIENTU1ZhbHVlICp2YWx1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAKKwogICAgICAgICAgICAgaWYgKCFm
YWNlLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIGlmICghY3VyckZhbWlseSkgewogICAg
ICAgICAgICAgICAgICAgICAvLyBGaWxsaW5nIGluIHRoZSBmaXJzdCBmYW1pbHkuCiAgICAgICAg
ICAgICAgICAgICAgIGZpcnN0RmFtaWx5LnNldEZhbWlseShmYWNlKTsKKyAgICAgICAgICAgICAg
ICAgICAgZmlyc3RGYW1pbHkuYXBwZW5kRmFtaWx5KDApOyAvLyBSZW1vdmUgYW55IGluaGVyaXRl
ZCBmYW1pbHktZmFsbGJhY2sgbGlzdC4KICAgICAgICAgICAgICAgICAgICAgY3VyckZhbWlseSA9
ICZmaXJzdEZhbWlseTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZSB7
CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPFNo
YXJlZEZvbnRGYW1pbHk+IG5ld0ZhbWlseSA9IFNoYXJlZEZvbnRGYW1pbHk6OmNyZWF0ZSgpOwog
ICAgICAgICAgICAgICAgICAgICBuZXdGYW1pbHktPnNldEZhbWlseShmYWNlKTsKICAgICAgICAg
ICAgICAgICAgICAgY3VyckZhbWlseS0+YXBwZW5kRmFtaWx5KG5ld0ZhbWlseSk7CiAgICAgICAg
ICAgICAgICAgICAgIGN1cnJGYW1pbHkgPSBuZXdGYW1pbHkuZ2V0KCk7CiAgICAgICAgICAgICAg
ICAgfQotICAgIAotICAgICAgICAgICAgICAgIGlmIChmb250RGVzY3JpcHRpb24ua2V5d29yZFNp
emUoKSAmJiAoZm9udERlc2NyaXB0aW9uLmdlbmVyaWNGYW1pbHkoKSA9PSBGb250RGVzY3JpcHRp
b246Ok1vbm9zcGFjZUZhbWlseSkgIT0gb2xkRmFtaWx5SXNNb25vc3BhY2UpCi0gICAgICAgICAg
ICAgICAgICAgIHNldEZvbnRTaXplKGZvbnREZXNjcmlwdGlvbiwgZm9udFNpemVGb3JLZXl3b3Jk
KENTU1ZhbHVlWHhTbWFsbCArIGZvbnREZXNjcmlwdGlvbi5rZXl3b3JkU2l6ZSgpIC0gMSwgbV9z
dHlsZS0+aHRtbEhhY2tzKCksICFvbGRGYW1pbHlJc01vbm9zcGFjZSkpOwotICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgaWYgKG1fc3R5bGUtPnNldEZvbnREZXNjcmlwdGlvbihmb250RGVz
Y3JpcHRpb24pKQotICAgICAgICAgICAgICAgICAgICBtX2ZvbnREaXJ0eSA9IHRydWU7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgIHJldHVybjsKKworICAgICAgICAvLyBXZSBjYW4n
dCBjYWxsIHVzZUZpeGVkRGVmYXVsdFNpemUoKSB1bnRpbCBhbGwgbmV3IGZvbnQgZmFtaWxpZXMg
aGF2ZSBiZWVuIGFkZGVkCisgICAgICAgIC8vIElmIGN1cnJGYW1pbHkgaXMgbm9uLXplcm8gdGhl
biB3ZSBzZXQgYXQgbGVhc3Qgb25lIGZhbWlseSBvbiB0aGlzIGRlc2NyaXB0aW9uLgorICAgICAg
ICBpZiAoY3VyckZhbWlseSkgeworICAgICAgICAgICAgaWYgKGZvbnREZXNjcmlwdGlvbi5rZXl3
b3JkU2l6ZSgpICYmIGZvbnREZXNjcmlwdGlvbi51c2VGaXhlZERlZmF1bHRTaXplKCkgIT0gb2xk
RmFtaWx5VXNlZEZpeGVkRGVmYXVsdFNpemUpCisgICAgICAgICAgICAgICAgc2V0Rm9udFNpemUo
Zm9udERlc2NyaXB0aW9uLCBmb250U2l6ZUZvcktleXdvcmQoQ1NTVmFsdWVYeFNtYWxsICsgZm9u
dERlc2NyaXB0aW9uLmtleXdvcmRTaXplKCkgLSAxLCBtX3N0eWxlLT5odG1sSGFja3MoKSwgIW9s
ZEZhbWlseVVzZWRGaXhlZERlZmF1bHRTaXplKSk7CisKKyAgICAgICAgICAgIGlmIChtX3N0eWxl
LT5zZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKSkKKyAgICAgICAgICAgICAgICBt
X2ZvbnREaXJ0eSA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBjYXNlIENTU1Byb3BlcnR5VGV4dERlY29yYXRpb246IHsKICAgICAgICAgLy8gbGlzdCBvZiBp
ZGVudApAQCAtNTU3Niw4ICs1NTgxLDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjpjaGVja0Zv
ckdlbmVyaWNGYW1pbHlDaGFuZ2UoUmVuZGVyU3R5bGUqIHN0eWxlLCBSZW5kZXJTdHkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgY29uc3QgRm9udERlc2NyaXB0aW9uJiBwYXJlbnRGb250ID0gcGFy
ZW50U3R5bGUtPmZvbnREZXNjcmlwdGlvbigpOwotCi0gICAgaWYgKGNoaWxkRm9udC5nZW5lcmlj
RmFtaWx5KCkgPT0gcGFyZW50Rm9udC5nZW5lcmljRmFtaWx5KCkpCisgICAgaWYgKGNoaWxkRm9u
dC51c2VGaXhlZERlZmF1bHRTaXplKCkgPT0gcGFyZW50Rm9udC51c2VGaXhlZERlZmF1bHRTaXpl
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIEZvciBub3csIGx1bXAgYWxsIGZhbWlsaWVz
IGJ1dCBtb25vc3BhY2UgdG9nZXRoZXIuCkBAIC01NTkwLDE3ICs1NTk0LDE2IEBAIHZvaWQgQ1NT
U3R5bGVTZWxlY3Rvcjo6Y2hlY2tGb3JHZW5lcmljRmFtaWx5Q2hhbmdlKFJlbmRlclN0eWxlKiBz
dHlsZSwgUmVuZGVyU3R5CiAgICAgLy8gSWYgdGhlIGZvbnQgdXNlcyBhIGtleXdvcmQgc2l6ZSwg
dGhlbiB3ZSByZWZldGNoIGZyb20gdGhlIHRhYmxlIHJhdGhlciB0aGFuCiAgICAgLy8gbXVsdGlw
bHlpbmcgYnkgb3VyIHNjYWxlIGZhY3Rvci4KICAgICBmbG9hdCBzaXplOwotICAgIGlmIChjaGls
ZEZvbnQua2V5d29yZFNpemUoKSkgewotICAgICAgICBzaXplID0gZm9udFNpemVGb3JLZXl3b3Jk
KENTU1ZhbHVlWHhTbWFsbCArIGNoaWxkRm9udC5rZXl3b3JkU2l6ZSgpIC0gMSwgc3R5bGUtPmh0
bWxIYWNrcygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkRm9udC5n
ZW5lcmljRmFtaWx5KCkgPT0gRm9udERlc2NyaXB0aW9uOjpNb25vc3BhY2VGYW1pbHkpOwotICAg
IH0gZWxzZSB7CisgICAgaWYgKGNoaWxkRm9udC5rZXl3b3JkU2l6ZSgpKQorICAgICAgICBzaXpl
ID0gZm9udFNpemVGb3JLZXl3b3JkKENTU1ZhbHVlWHhTbWFsbCArIGNoaWxkRm9udC5rZXl3b3Jk
U2l6ZSgpIC0gMSwgc3R5bGUtPmh0bWxIYWNrcygpLCBjaGlsZEZvbnQudXNlRml4ZWREZWZhdWx0
U2l6ZSgpKTsKKyAgICBlbHNlIHsKICAgICAgICAgU2V0dGluZ3MqIHNldHRpbmdzID0gbV9jaGVj
a2VyLm1fZG9jdW1lbnQtPnNldHRpbmdzKCk7CiAgICAgICAgIGZsb2F0IGZpeGVkU2NhbGVGYWN0
b3IgPSBzZXR0aW5ncwogICAgICAgICAgICAgPyBzdGF0aWNfY2FzdDxmbG9hdD4oc2V0dGluZ3Mt
PmRlZmF1bHRGaXhlZEZvbnRTaXplKCkpIC8gc2V0dGluZ3MtPmRlZmF1bHRGb250U2l6ZSgpCiAg
ICAgICAgICAgICA6IDE7Ci0gICAgICAgIHNpemUgPSAocGFyZW50Rm9udC5nZW5lcmljRmFtaWx5
KCkgPT0gRm9udERlc2NyaXB0aW9uOjpNb25vc3BhY2VGYW1pbHkpID8gCi0gICAgICAgICAgICAg
ICAgY2hpbGRGb250LnNwZWNpZmllZFNpemUoKS9maXhlZFNjYWxlRmFjdG9yIDoKLSAgICAgICAg
ICAgICAgICBjaGlsZEZvbnQuc3BlY2lmaWVkU2l6ZSgpKmZpeGVkU2NhbGVGYWN0b3I7CisgICAg
ICAgIHNpemUgPSBwYXJlbnRGb250LnVzZUZpeGVkRGVmYXVsdFNpemUoKSA/CisgICAgICAgICAg
ICAgICAgY2hpbGRGb250LnNwZWNpZmllZFNpemUoKSAvIGZpeGVkU2NhbGVGYWN0b3IgOgorICAg
ICAgICAgICAgICAgIGNoaWxkRm9udC5zcGVjaWZpZWRTaXplKCkgKiBmaXhlZFNjYWxlRmFjdG9y
OwogICAgIH0KIAogICAgIEZvbnREZXNjcmlwdGlvbiBuZXdGb250RGVzY3JpcHRpb24oY2hpbGRG
b250KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0
aW9uLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCmluZGV4
IGM4OTNiOGEuLmU1YzUyYmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udERlc2NyaXB0aW9uLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVz
Y3JpcHRpb24uaApAQCAtODAsNiArODAsOCBAQCBwdWJsaWM6CiAgICAgRm9udFdlaWdodCBib2xk
ZXJXZWlnaHQoKSBjb25zdDsKICAgICBHZW5lcmljRmFtaWx5VHlwZSBnZW5lcmljRmFtaWx5KCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8R2VuZXJpY0ZhbWlseVR5cGU+KG1fZ2VuZXJpY0Zh
bWlseSk7IH0KICAgICBib29sIHVzZVByaW50ZXJGb250KCkgY29uc3QgeyByZXR1cm4gbV91c2VQ
cmludGVyRm9udDsgfQorICAgIC8vIG9ubHkgdXNlIGZpeGVkIGRlZmF1bHQgc2l6ZSB3aGVuIHRo
ZXJlIGlzIG9ubHkgb25lIGZvbnQgZmFtaWx5LCBhbmQgdGhhdCBmYW1pbHkgaXMgIm1vbm9zcGFj
ZSIKKyAgICBib29sIHVzZUZpeGVkRGVmYXVsdFNpemUoKSBjb25zdCB7IHJldHVybiBnZW5lcmlj
RmFtaWx5KCkgPT0gTW9ub3NwYWNlRmFtaWx5ICYmICFmYW1pbHkoKS5uZXh0KCkgJiYgZmFtaWx5
KCkuZmFtaWx5KCkgPT0gIi13ZWJraXQtbW9ub3NwYWNlIjsgfQogICAgIEZvbnRSZW5kZXJpbmdN
b2RlIHJlbmRlcmluZ01vZGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxGb250UmVuZGVy
aW5nTW9kZT4obV9yZW5kZXJpbmdNb2RlKTsgfQogICAgIHVuc2lnbmVkIGtleXdvcmRTaXplKCkg
Y29uc3QgeyByZXR1cm4gbV9rZXl3b3JkU2l6ZTsgfQ==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34226</attachid>
            <date>2009-08-06 13:42:04 -0700</date>
            <delta_ts>2009-08-06 14:33:11 -0700</delta_ts>
            <desc>Add more info to the ChangeLog for easier review</desc>
            <filename>bug-19161-20090806134202.patch</filename>
            <type>text/plain</type>
            <size>21509</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMmE5NzQxLi4yODBhNWM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMDktMDgt
MDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdyb25nIGZvbnQgc2l6ZSB3aGVuIGNzcyBmb250
LWZhbWlseSBpbmNsdWRlcyBtb25vc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5MTYxCisKKyAgICAgICAgVXBkYXRlIHRlc3QgcmVzdWx0cyBu
b3cgdGhhdCBvbmx5ICJmb250LWZhbWlseTogbW9ub3NwYWNlIiBpcyAxM3B4LgorICAgICAgICBB
bGwgb3RoZXIgY29tYmluYXRpb25zIG9mIGZvbnQtZmFtaWx5IGFyZSAxNnB4IGRlZmF1bHQgc2l6
ZS4KKworICAgICAgICBBZGQgdHdvIHRlc3RzOgorICAgICAgICBmb250LWZhbWlseS1mYWxsYmFj
ay1yZXNldDogY2F0Y2hlcyBhIGJ1ZyBpbiBpbmhlcml0aW5nIGZvbnQtZmFtaWx5IGZhbGxiYWNr
LgorICAgICAgICBjb21wdXRlZC1zdHlsZS1mb250LWZhbWlseS1tb25vc3BhY2U6IHRlc3RzIHRo
aXMgYnVnLCB0aGF0IG9ubHkgImZvbnQtZmFtaWx5OiBtb25vc3BhY2UiIGlzIDEzcHguCisKKyAg
ICAgICAgKiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWZvbnQtZmFt
aWx5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2Nv
bXB1dGVkLXN0eWxlLWZvbnQtZmFtaWx5LW1vbm9zcGFjZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtZm9udC1m
YW1pbHktbW9ub3NwYWNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1
dGVkU3R5bGUvZm9udC1mYW1pbHktZmFsbGJhY2stcmVzZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2ZvbnQtZmFtaWx5LWZhbGxiYWNr
LXJlc2V0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUv
cmVzb3VyY2VzL2NvbXB1dGVkLXN0eWxlLWZvbnQtZmFtaWx5LW1vbm9zcGFjZS5qczogQWRkZWQu
CisgICAgICAgIChmb250U2l6ZUZvckZhbWlsaWVzKToKKyAgICAgICAgKiBmYXN0L2Nzcy9nZXRD
b21wdXRlZFN0eWxlL3Jlc291cmNlcy9mb250LWZhbWlseS1mYWxsYmFjay1yZXNldC5qczogQWRk
ZWQuCisgICAgICAgICogZmFzdC9qcy9tZXRob2QtY2hlY2suaHRtbDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvY3NzMS9mb250X3Byb3BlcnRpZXMvZm9udF9mYW1pbHktZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9jc3MyLjEvdDE1MDMtYzUyMi1mb250LWZhbWlseS0wMC1i
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L21vbm9zcGFj
ZS13aWR0aC1jYWNoZS1leHBlY3RlZC50eHQ6CisKIDIwMDktMDgtMDYgIERyZXcgV2lsc29uICA8
YXR3aWxzb25AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0
ZWQtc3R5bGUtZm9udC1mYW1pbHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Z2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1mb250LWZhbWlseS1leHBlY3RlZC50eHQK
aW5kZXggZTdiNTBkMy4uNjczZDc4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Z2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1mb250LWZhbWlseS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHls
ZS1mb250LWZhbWlseS1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiBGb250IGF0dHJpYnV0
ZXMuIFRoZSBmb250LWZhbWlseSBzaG91bGQgbGlzdCB0aHJlZSBmYW1pbGllczoKIAogZm9udC1m
YW1pbHk6IG1vbm9zcGFjZSwgJ0x1Y2lkYSBHcmFuZGUnLCBzYW5zLXNlcmlmOwotZm9udC1zaXpl
OiAxM3B4OworZm9udC1zaXplOiAxNnB4OwogZm9udC1zdHlsZTogbm9ybWFsOwogZm9udC12YXJp
YW50OiBub3JtYWw7CiBmb250LXdlaWdodDogbm9ybWFsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2NzczEvZm9udF9wcm9wZXJ0aWVzL2ZvbnRfZmFtaWx5LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MxL2ZvbnRfcHJvcGVydGllcy9mb250
X2ZhbWlseS1leHBlY3RlZC50eHQKaW5kZXggN2FhZDJmMi4uYmMwYzIxOSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczEvZm9udF9wcm9wZXJ0aWVzL2ZvbnRfZmFtaWx5
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMS9mb250X3By
b3BlcnRpZXMvZm9udF9mYW1pbHktZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsOCBAQAotbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA3ODV4MTMwMQorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4MTMxMwogICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNzg1eDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4
MTMwMQotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA3ODV4MTMwMQotICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzY5eDEyODUgW2JnY29sb3I9I0NDQ0NDQ10K
K2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDEzMTMKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgNzg1eDEzMTMKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc2
OXgxMjk3IFtiZ2NvbG9yPSNDQ0NDQ0NdCiAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkg
c2l6ZSA3Njl4MTgKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzU1
eDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzU1OiAiVGhlIHN0eWxlIGRl
Y2xhcmF0aW9ucyB3aGljaCBhcHBseSB0byB0aGUgdGV4dCBiZWxvdyBhcmU6IgpAQCAtNTAsMTEg
KzUwLDExIEBAIGxheWVyIGF0ICgwLDApIHNpemUgNzg1eDEzMDEKICAgICAgIFJlbmRlckJsb2Nr
IHtQfSBhdCAoMCw0MzApIHNpemUgNzY5eDE4CiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDM5NngxOAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM5
NjogIlRoaXMgc2VudGVuY2Ugc2hvdWxkIGJlIGluIGEgc2Fucy1zZXJpZiBmb250LCBub3QgY3Vy
c2l2ZS4iCi0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsNDY0KSBzaXplIDc2OXgxNQotICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0NDB4MTUKLSAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0NDA6ICJUaGlzIHNlbnRlbmNlIHNob3VsZCBiZSBpbiBh
IG1vbm9zcGFjZSBmb250LCBub3Qgc2VyaWYuIgotICAgICAgUmVuZGVyQmxvY2sge0hSfSBhdCAo
MCw0OTIpIHNpemUgNzY5eDIgW2JvcmRlcjogKDFweCBpbnNldCAjMDAwMDAwKV0KLSAgICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgwLDUwNykgc2l6ZSA3Njl4MjExCisgICAgICBSZW5kZXJCbG9j
ayB7UH0gYXQgKDAsNDY0KSBzaXplIDc2OXgxOAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSA1NTB4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1
NTA6ICJUaGlzIHNlbnRlbmNlIHNob3VsZCBiZSBpbiBhIG1vbm9zcGFjZSBmb250LCBub3Qgc2Vy
aWYuIgorICAgICAgUmVuZGVyQmxvY2sge0hSfSBhdCAoMCw0OTgpIHNpemUgNzY5eDIgW2JvcmRl
cjogKDFweCBpbnNldCAjMDAwMDAwKV0KKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDUx
Mykgc2l6ZSA3Njl4MjExCiAgICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc2
OXgzMAogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDc2OHgzMAog
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzY4OiAiVGhpcyBzZW50ZW5jZSBp
cyBub3JtYWwgZm9yIHRoZSBmaXJzdCBkaXZpc2lvbiwgd2hpY2ggaXMgdGhlIG5leHQgZml2ZSBz
ZW50ZW5jZXM7IGl0IHNob3VsZCBiZSBhIgpAQCAtNzQsMTggKzc0LDE4IEBAIGxheWVyIGF0ICgw
LDApIHNpemUgNzg1eDEzMDEKICAgICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDE5Nikgc2l6
ZSA3Njl4MTUKICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzNTJ4
MTUKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM1MjogIlRoaXMgc2VudGVu
Y2Ugc2hvdWxkIGJlIGluIGEgbW9ub3NwYWNlIGZvbnQuIgotICAgICAgUmVuZGVyVGFibGUge1RB
QkxFfSBhdCAoMCw3MzEpIHNpemUgNzY5eDU1NCBbYm9yZGVyOiAoMXB4IG91dHNldCAjODA4MDgw
KV0KLSAgICAgICAgUmVuZGVyVGFibGVTZWN0aW9uIHtUQk9EWX0gYXQgKDEsMSkgc2l6ZSA3Njd4
NTUyCisgICAgICBSZW5kZXJUYWJsZSB7VEFCTEV9IGF0ICgwLDczNykgc2l6ZSA3Njl4NTYwIFti
b3JkZXI6ICgxcHggb3V0c2V0ICM4MDgwODApXQorICAgICAgICBSZW5kZXJUYWJsZVNlY3Rpb24g
e1RCT0RZfSBhdCAoMSwxKSBzaXplIDc2N3g1NTgKICAgICAgICAgICBSZW5kZXJUYWJsZVJvdyB7
VFJ9IGF0ICgwLDApIHNpemUgNzY3eDI2CiAgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoMCwwKSBzaXplIDc2N3gyNiBbYmdjb2xvcj0jQzBDMEMwXSBbYm9yZGVyOiAoMXB4IGlu
c2V0ICM4MDgwODApXSBbcj0wIGM9MCBycz0xIGNzPTJdCiAgICAgICAgICAgICAgIFJlbmRlcklu
bGluZSB7U1RST05HfSBhdCAoMCwwKSBzaXplIDE2M3gxOAogICAgICAgICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoNCw0KSBzaXplIDE2M3gxOAogICAgICAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDQsNCkgd2lkdGggMTYzOiAiVEFCTEUgVGVzdGluZyBTZWN0aW9uIgotICAgICAg
ICAgIFJlbmRlclRhYmxlUm93IHtUUn0gYXQgKDAsMjYpIHNpemUgNzY3eDUyNgotICAgICAgICAg
ICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDAsMjc2KSBzaXplIDEyeDI2IFtiZ2NvbG9yPSND
MEMwQzBdIFtib3JkZXI6ICgxcHggaW5zZXQgIzgwODA4MCldIFtyPTEgYz0wIHJzPTEgY3M9MV0K
KyAgICAgICAgICBSZW5kZXJUYWJsZVJvdyB7VFJ9IGF0ICgwLDI2KSBzaXplIDc2N3g1MzIKKyAg
ICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgwLDI3OSkgc2l6ZSAxMngyNiBbYmdj
b2xvcj0jQzBDMEMwXSBbYm9yZGVyOiAoMXB4IGluc2V0ICM4MDgwODApXSBbcj0xIGM9MCBycz0x
IGNzPTFdCiAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNCw0KSBzaXplIDR4
MTgKICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNCw0KSB3aWR0aCA0OiAiICIKLSAgICAg
ICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxMiwyNikgc2l6ZSA3NTV4NTI2IFtib3Jk
ZXI6ICgxcHggaW5zZXQgIzgwODA4MCldIFtyPTEgYz0xIHJzPTEgY3M9MV0KKyAgICAgICAgICAg
IFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxMiwyNikgc2l6ZSA3NTV4NTMyIFtib3JkZXI6ICgx
cHggaW5zZXQgIzgwODA4MCldIFtyPTEgYz0xIHJzPTEgY3M9MV0KICAgICAgICAgICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDQsNCkgc2l6ZSA3NDd4MTk5CiAgICAgICAgICAgICAgICAgUmVu
ZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzQ3eDE4CiAgICAgICAgICAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA2Mzh4MTgKQEAgLTEwOSwxMSArMTA5LDExIEBA
IGxheWVyIGF0ICgwLDApIHNpemUgNzg1eDEzMDEKICAgICAgICAgICAgICAgUmVuZGVyQmxvY2sg
e1B9IGF0ICg0LDIzNCkgc2l6ZSA3NDd4MTgKICAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAzOTZ4MTgKICAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDM5NjogIlRoaXMgc2VudGVuY2Ugc2hvdWxkIGJlIGluIGEgc2Fucy1zZXJp
ZiBmb250LCBub3QgY3Vyc2l2ZS4iCi0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAo
NCwyNjgpIHNpemUgNzQ3eDE1Ci0gICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgNDQweDE1Ci0gICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA0NDA6ICJUaGlzIHNlbnRlbmNlIHNob3VsZCBiZSBpbiBhIG1vbm9zcGFjZSBmb250LCBu
b3Qgc2VyaWYuIgotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFJ9IGF0ICg0LDI5Nikgc2l6
ZSA3NDd4MiBbYm9yZGVyOiAoMXB4IGluc2V0ICMwMDAwMDApXQotICAgICAgICAgICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoNCwzMTEpIHNpemUgNzQ3eDIxMQorICAgICAgICAgICAgICBSZW5k
ZXJCbG9jayB7UH0gYXQgKDQsMjY4KSBzaXplIDc0N3gxOAorICAgICAgICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU1MHgxOAorICAgICAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggNTUwOiAiVGhpcyBzZW50ZW5jZSBzaG91bGQgYmUgaW4gYSBt
b25vc3BhY2UgZm9udCwgbm90IHNlcmlmLiIKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hS
fSBhdCAoNCwzMDIpIHNpemUgNzQ3eDIgW2JvcmRlcjogKDFweCBpbnNldCAjMDAwMDAwKV0KKyAg
ICAgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDQsMzE3KSBzaXplIDc0N3gyMTEKICAg
ICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3NDd4MzAKICAgICAg
ICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDcyOHgzMAogICAg
ICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA3Mjg6ICJUaGlzIHNlbnRl
bmNlIGlzIG5vcm1hbCBmb3IgdGhlIGZpcnN0IGRpdmlzaW9uLCB3aGljaCBpcyB0aGUgbmV4dCBm
aXZlIHNlbnRlbmNlczsgaXQgc2hvdWxkIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2NzczIuMS90MTUwMy1jNTIyLWZvbnQtZmFtaWx5LTAwLWItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczIuMS90MTUwMy1jNTIyLWZvbnQtZmFtaWx5LTAw
LWItZXhwZWN0ZWQudHh0CmluZGV4IDFlMDJiZmIuLmYwM2MwZGEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MyLjEvdDE1MDMtYzUyMi1mb250LWZhbWlseS0wMC1iLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMi4xL3QxNTAzLWM1
MjItZm9udC1mYW1pbHktMDAtYi1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4IEBACiBsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
LWxheWVyIGF0ICgwLDApIHNpemUgODAweDI4NAotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAs
MCkgc2l6ZSA4MDB4Mjg0Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4
MjY4CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgyODcKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgODAweDI4NworICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
Nzg0eDI3MQogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4MTE5CiAg
ICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgxOCBbY29sb3I9IzAwMDA4
MF0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNDJ4MTgKQEAg
LTI1LDEwICsyNSwxMCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHgyODQKICAgICAgIFJlbmRl
ckJsb2NrIHtQfSBhdCAoMCwxMTkpIHNpemUgNzg0eDE4IFtjb2xvcj0jMDAwMDgwXQogICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMTF4MTgKICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCAzMTE6ICJUaGlzIHNlbnRlbmNlIHNob3VsZCBiZSBpbiBhIHNh
bnMtc2VyaWYgZm9udC4iCi0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMTM3KSBzaXplIDc4
NHgxNSBbY29sb3I9IzAwMDA4MF0KLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMzUyeDE1Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzUyOiAiVGhp
cyBzZW50ZW5jZSBzaG91bGQgYmUgaW4gYSBtb25vc3BhY2UgZm9udC4iCi0gICAgICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMCwxNTIpIHNpemUgNzg0eDExNgorICAgICAgUmVuZGVyQmxvY2sge1B9
IGF0ICgwLDEzNykgc2l6ZSA3ODR4MTggW2NvbG9yPSMwMDAwODBdCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQ0MHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDQ0MDogIlRoaXMgc2VudGVuY2Ugc2hvdWxkIGJlIGluIGEgbW9ub3NwYWNlIGZv
bnQuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMTU1KSBzaXplIDc4NHgxMTYKICAg
ICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDE1IFtjb2xvcj0jMDAwMDgw
XQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM1MngxNQogICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzUyOiAiVGhpcyBzZW50ZW5jZSBzaG91
bGQgYmUgaW4gYSBtb25vc3BhY2UgZm9udC4iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC90ZXh0L21vbm9zcGFjZS13aWR0aC1jYWNoZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L21vbm9zcGFjZS13aWR0aC1jYWNoZS1l
eHBlY3RlZC50eHQKaW5kZXggZDA1YTk0Ni4uMTU5MzRhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9tb25vc3BhY2Utd2lkdGgtY2FjaGUtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3RleHQvbW9ub3NwYWNlLXdp
ZHRoLWNhY2hlLWV4cGVjdGVkLnR4dApAQCAtMjAsNyArMjAsNyBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCw1Mikgc2l6ZSA3ODR4MTgK
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzY5eDE4CiAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzY5OiAiVGhlIGJsdWUgbGluZSBhbmQgdGhlIGJs
YWNrIGxpbmUgc2hvdWxkIGJlIHRoZSBzYW1lIGxlbmd0aC4iCi0gICAgICBSZW5kZXJCbG9jayB7
UH0gYXQgKDAsODYpIHNpemUgNzg0eDE1Ci0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQg
KDAsMCkgc2l6ZSAxNTZ4MTYgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMEZGKSBub25lXQotICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE1NngxNQotICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTU2OiAiXHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9
XHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9XHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9XHh7MjUwMH1c
eHsyNTAwfVx4ezI1MDB9IgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDg2KSBzaXplIDc4
NHgxOAorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTkyeDE5IFti
b3JkZXI6ICgxcHggc29saWQgIzAwMDBGRikgbm9uZV0KKyAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAxOTJ4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDE5MjogIlx4ezI1MDB9XHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9XHh7MjUwMH1ceHsy
NTAwfVx4ezI1MDB9XHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9XHh7MjUwMH1ceHsyNTAwfSIKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzll
ZDdkOS4uZjQ3MjdmMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAwOS0wOC0wNiAgRXJpYyBTZWlkZWwgIDxl
cmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgd3JvbmcgZm9udCBzaXplIHdoZW4gY3NzIGZvbnQtZmFtaWx5IGluY2x1ZGVzIG1v
bm9zcGFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkxNjEKKworICAgICAgICBGaXJlZm94IG9ubHkgdXNlcyBmaXhlZC13aWR0aCBkZWZhdWx0IHNp
emUgZm9yIGV4YWN0bHkgImZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Ii4KKyAgICAgICAgV2ViS2l0
IGhhcyBoaXN0b3JpY2FsbHkgdXNlZCBmaXhlZC13aWR0aCBkZWZhdWx0IHNpemUgYW55IHRpbWUg
YQorICAgICAgICBmb250LWZhbWlseSBpbmNsdWRlcyBtb25vc3BhY2UgaW4gdGhlIGZhbGxiYWNr
IGxpc3QuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjb3JyZWN0cyBXZWJLaXQncyBiZWhhdmlvciB0
byBtYXRjaCBGaXJlZm94LgorICAgICAgICBJIGFsc28gaGFkIHRvIGZpeCBhIGJ1ZyBpbiBXZWJL
aXQncyBmb250LWZhbWlseSBmYWxsYmFjayBiZWhhdmlvciB3aGVyZQorICAgICAgICBjaGlsZCBl
bGVtZW50cyB3b3VsZCBpbmhlcml0IHBhcnRzIG9mIHRoZWlyIHBhcmVudHMgZmFsbGJhY2sgbGlz
dHMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBtb3N0bHkganVzdCByZXBsYWNpbmcgYWxsIGNh
c2VzIHdoZXJlIHdlIHVzZWQgdG8gY2hlY2sgZm9yOgorICAgICAgICBmb250RGVzY3JpcHRpb24u
Z2VuZXJpY0ZvbnRGYW1pbHkoKSA9PSBNb25vc3BhY2VGYW1pbHkKKyAgICAgICAgd2l0aDoKKyAg
ICAgICAgZm9udERlc2NyaXB0aW9uLnVzZUZpeGVkRGVmYXVsdFNpemUoKQorCisgICAgICAgIFRl
c3RzOiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWZvbnQtZmFtaWx5
LW1vbm9zcGFjZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxl
L2ZvbnQtZmFtaWx5LWZhbGxiYWNrLXJlc2V0Lmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5
UHJvcGVydHkpOgorICAgICAgICAgICBEZXBsb3kgdXNlRml4ZWREZWZhdWx0U2l6ZSgpLiAgQWxz
byBmaXggdGhlIGJ1ZyB3aGVyZSBjaGlsZAorICAgICAgICAgICBGb250RGVzY3JpcHRpb25zIHdv
dWxkIGNhcnJ5IHBhcnQgb2YgdGhlIHBhcmVudCBmb250LWZhbWlseSBmYWxsYmFjayBsaXN0Lgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6Y2hlY2tGb3JHZW5lcmljRmFtaWx5
Q2hhbmdlKToKKyAgICAgICAgICAgSXQncyBubyBsb25nZXIgYWxyaWdodCB0byBqdXN0IGNoZWNr
IGdlbmVyaWNGb250RmFtaWx5KCksCisgICAgICAgICAgIHdlIGhhdmUgdG8gY2hlY2sgdG8gbWFr
ZSBzdXJlIHRoZSBjaGFuZ2VkIHN0eWxlIGhhcyBhIG1hdGNoaW5nIHVzZUZpeGVkRGVmYXVsdFNp
emUoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6dXNlRml4ZWREZWZhdWx0U2l6ZSk6Cisg
ICAgICAgICAgIE9ubHkgdXNlIHRoZSBmaXhlZCBkZWZhdWx0IHNpemUgaWYgd2UgaGF2ZSBvbmUg
Zm9udCBmYW1pbHkgYW5kIGl0IGlzICJtb25vc3BhY2UiLgorICAgICAgICAgICAiLXdlYmtpdC1t
b25vc3BhY2UiIGlzIHRoZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgQ1NTIGlkZW50
aWZpZXIgIm1vbm9zcGFjZSIuCisKIDIwMDktMDgtMDYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBw
bGUuY29tPgogCiAgICAgICAgIEZpeCBNYWMgTGVvcGFyZCBkZWJ1ZyBidWlsZC4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAKaW5kZXggN2NmYTNlMS4uMjExMGRkYSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAKQEAgLTM3NTQsNyArMzc1NCw2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBw
bHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKICAgICB7CiAgICAgICAgIEZvbnRE
ZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24gPSBtX3N0eWxlLT5mb250RGVzY3JpcHRpb24oKTsK
ICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldEtleXdvcmRTaXplKDApOwotICAgICAgICBib29s
IGZhbWlseUlzRml4ZWQgPSBmb250RGVzY3JpcHRpb24uZ2VuZXJpY0ZhbWlseSgpID09IEZvbnRE
ZXNjcmlwdGlvbjo6TW9ub3NwYWNlRmFtaWx5OwogICAgICAgICBmbG9hdCBvbGRTaXplID0gMDsK
ICAgICAgICAgZmxvYXQgc2l6ZSA9IDA7CiAgICAgICAgIApAQCAtMzc2OSw3ICszNzY4LDcgQEAg
dm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZh
bHVlKQogICAgICAgICAgICAgaWYgKG1fcGFyZW50Tm9kZSkKICAgICAgICAgICAgICAgICBmb250
RGVzY3JpcHRpb24uc2V0S2V5d29yZFNpemUobV9wYXJlbnRTdHlsZS0+Zm9udERlc2NyaXB0aW9u
KCkua2V5d29yZFNpemUoKSk7CiAgICAgICAgIH0gZWxzZSBpZiAoaXNJbml0aWFsKSB7Ci0gICAg
ICAgICAgICBzaXplID0gZm9udFNpemVGb3JLZXl3b3JkKENTU1ZhbHVlTWVkaXVtLCBtX3N0eWxl
LT5odG1sSGFja3MoKSwgZmFtaWx5SXNGaXhlZCk7CisgICAgICAgICAgICBzaXplID0gZm9udFNp
emVGb3JLZXl3b3JkKENTU1ZhbHVlTWVkaXVtLCBtX3N0eWxlLT5odG1sSGFja3MoKSwgZm9udERl
c2NyaXB0aW9uLnVzZUZpeGVkRGVmYXVsdFNpemUoKSk7CiAgICAgICAgICAgICBmb250RGVzY3Jp
cHRpb24uc2V0S2V5d29yZFNpemUoQ1NTVmFsdWVNZWRpdW0gLSBDU1NWYWx1ZVh4U21hbGwgKyAx
KTsKICAgICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgewogICAg
ICAgICAgICAgLy8gS2V5d29yZHMgYXJlIGJlaW5nIHVzZWQuCkBAIC0zNzgyLDcgKzM3ODEsNyBA
QCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSAq
dmFsdWUpCiAgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVhMYXJnZToKICAgICAgICAgICAg
ICAgICBjYXNlIENTU1ZhbHVlWHhMYXJnZToKICAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVl
V2Via2l0WHh4TGFyZ2U6Ci0gICAgICAgICAgICAgICAgICAgIHNpemUgPSBmb250U2l6ZUZvcktl
eXdvcmQocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCksIG1fc3R5bGUtPmh0bWxIYWNrcygpLCBm
YW1pbHlJc0ZpeGVkKTsKKyAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IGZvbnRTaXplRm9yS2V5
d29yZChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSwgbV9zdHlsZS0+aHRtbEhhY2tzKCksIGZv
bnREZXNjcmlwdGlvbi51c2VGaXhlZERlZmF1bHRTaXplKCkpOwogICAgICAgICAgICAgICAgICAg
ICBmb250RGVzY3JpcHRpb24uc2V0S2V5d29yZFNpemUocHJpbWl0aXZlVmFsdWUtPmdldElkZW50
KCkgLSBDU1NWYWx1ZVh4U21hbGwgKyAxKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUxhcmdlcjoKQEAgLTQwMjUsMTMgKzQwMjQsMTIg
QEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUg
KnZhbHVlKQogICAgICAgICAgICAgaWYgKG1fc3R5bGUtPnNldEZvbnREZXNjcmlwdGlvbihmb250
RGVzY3JpcHRpb24pKQogICAgICAgICAgICAgICAgIG1fZm9udERpcnR5ID0gdHJ1ZTsKICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChpc0luaXRpYWwpIHsK
KyAgICAgICAgfSBlbHNlIGlmIChpc0luaXRpYWwpIHsKICAgICAgICAgICAgIEZvbnREZXNjcmlw
dGlvbiBpbml0aWFsRGVzYyA9IEZvbnREZXNjcmlwdGlvbigpOwogICAgICAgICAgICAgRm9udERl
c2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbiA9IG1fc3R5bGUtPmZvbnREZXNjcmlwdGlvbigpOwog
ICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBhZGp1c3QgdGhlIHNpemUgdG8gYWNjb3VudCBmb3Ig
dGhlIGdlbmVyaWMgZmFtaWx5IGNoYW5nZSBmcm9tIG1vbm9zcGFjZQogICAgICAgICAgICAgLy8g
dG8gbm9uLW1vbm9zcGFjZS4KLSAgICAgICAgICAgIGlmIChmb250RGVzY3JpcHRpb24ua2V5d29y
ZFNpemUoKSAmJiBmb250RGVzY3JpcHRpb24uZ2VuZXJpY0ZhbWlseSgpID09IEZvbnREZXNjcmlw
dGlvbjo6TW9ub3NwYWNlRmFtaWx5KQorICAgICAgICAgICAgaWYgKGZvbnREZXNjcmlwdGlvbi5r
ZXl3b3JkU2l6ZSgpICYmIGZvbnREZXNjcmlwdGlvbi51c2VGaXhlZERlZmF1bHRTaXplKCkpCiAg
ICAgICAgICAgICAgICAgc2V0Rm9udFNpemUoZm9udERlc2NyaXB0aW9uLCBmb250U2l6ZUZvcktl
eXdvcmQoQ1NTVmFsdWVYeFNtYWxsICsgZm9udERlc2NyaXB0aW9uLmtleXdvcmRTaXplKCkgLSAx
LCBtX3N0eWxlLT5odG1sSGFja3MoKSwgZmFsc2UpKTsKICAgICAgICAgICAgIGZvbnREZXNjcmlw
dGlvbi5zZXRHZW5lcmljRmFtaWx5KGluaXRpYWxEZXNjLmdlbmVyaWNGYW1pbHkoKSk7CiAgICAg
ICAgICAgICBpZiAoIWluaXRpYWxEZXNjLmZpcnN0RmFtaWx5KCkuZmFtaWx5SXNFbXB0eSgpKQpA
QCAtNDA0MSwyMSArNDAzOSwyNCBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVy
dHkoaW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICAgICAgCi0gICAgICAgIGlmICghdmFsdWUtPmlzVmFsdWVMaXN0KCkpIHJldHVybjsK
KyAgICAgICAgaWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbiA9IG1fc3R5bGUtPmZvbnRE
ZXNjcmlwdGlvbigpOwotICAgICAgICBDU1NWYWx1ZUxpc3QgKmxpc3QgPSBzdGF0aWNfY2FzdDxD
U1NWYWx1ZUxpc3QqPih2YWx1ZSk7CisgICAgICAgIENTU1ZhbHVlTGlzdCogbGlzdCA9IHN0YXRp
Y19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKTsKICAgICAgICAgaW50IGxlbiA9IGxpc3QtPmxl
bmd0aCgpOwogICAgICAgICBGb250RmFtaWx5JiBmaXJzdEZhbWlseSA9IGZvbnREZXNjcmlwdGlv
bi5maXJzdEZhbWlseSgpOwotICAgICAgICBGb250RmFtaWx5ICpjdXJyRmFtaWx5ID0gMDsKKyAg
ICAgICAgRm9udEZhbWlseSogY3VyckZhbWlseSA9IDA7CiAgICAgICAgIAogICAgICAgICAvLyBC
ZWZvcmUgbWFwcGluZyBpbiBhIG5ldyBmb250LWZhbWlseSBwcm9wZXJ0eSwgd2Ugc2hvdWxkIHJl
c2V0IHRoZSBnZW5lcmljIGZhbWlseS4KLSAgICAgICAgYm9vbCBvbGRGYW1pbHlJc01vbm9zcGFj
ZSA9IGZvbnREZXNjcmlwdGlvbi5nZW5lcmljRmFtaWx5KCkgPT0gRm9udERlc2NyaXB0aW9uOjpN
b25vc3BhY2VGYW1pbHk7CisgICAgICAgIGJvb2wgb2xkRmFtaWx5VXNlZEZpeGVkRGVmYXVsdFNp
emUgPSBmb250RGVzY3JpcHRpb24udXNlRml4ZWREZWZhdWx0U2l6ZSgpOwogICAgICAgICBmb250
RGVzY3JpcHRpb24uc2V0R2VuZXJpY0ZhbWlseShGb250RGVzY3JpcHRpb246Ok5vRmFtaWx5KTsK
IAorICAgICAgICBib29sIHNldE5ld0ZvbnREZXNjcmlwdGlvbiA9IGZhbHNlOwogICAgICAgICBm
b3IgKGludCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7Ci0gICAgICAgICAgICBDU1NWYWx1ZSAqaXRl
bSA9IGxpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soaSk7Ci0gICAgICAgICAgICBpZiAoIWl0
ZW0tPmlzUHJpbWl0aXZlVmFsdWUoKSkgY29udGludWU7Ci0gICAgICAgICAgICBDU1NQcmltaXRp
dmVWYWx1ZSAqdmFsID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihpdGVtKTsKKyAg
ICAgICAgICAgIENTU1ZhbHVlKiBpdGVtID0gbGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjayhp
KTsKKyAgICAgICAgICAgIGlmICghaXRlbS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHZhbCA9IHN0
YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlbSk7CiAgICAgICAgICAgICBBdG9taWNT
dHJpbmcgZmFjZTsKICAgICAgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fY2hlY2tlci5t
X2RvY3VtZW50LT5zZXR0aW5ncygpOwogICAgICAgICAgICAgaWYgKHZhbC0+cHJpbWl0aXZlVHlw
ZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HKQpAQCAtNDA4NywyOCArNDA4OCwz
MiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1
ZSAqdmFsdWUpCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9Ci0gICAgCisKICAgICAgICAgICAgIGlmICghZmFjZS5pc0VtcHR5
KCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIWN1cnJGYW1pbHkpIHsKICAgICAgICAgICAgICAg
ICAgICAgLy8gRmlsbGluZyBpbiB0aGUgZmlyc3QgZmFtaWx5LgogICAgICAgICAgICAgICAgICAg
ICBmaXJzdEZhbWlseS5zZXRGYW1pbHkoZmFjZSk7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0
RmFtaWx5LmFwcGVuZEZhbWlseSgwKTsgLy8gUmVtb3ZlIGFueSBpbmhlcml0ZWQgZmFtaWx5LWZh
bGxiYWNrIGxpc3QuCiAgICAgICAgICAgICAgICAgICAgIGN1cnJGYW1pbHkgPSAmZmlyc3RGYW1p
bHk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxTaGFyZWRGb250RmFt
aWx5PiBuZXdGYW1pbHkgPSBTaGFyZWRGb250RmFtaWx5OjpjcmVhdGUoKTsKICAgICAgICAgICAg
ICAgICAgICAgbmV3RmFtaWx5LT5zZXRGYW1pbHkoZmFjZSk7CiAgICAgICAgICAgICAgICAgICAg
IGN1cnJGYW1pbHktPmFwcGVuZEZhbWlseShuZXdGYW1pbHkpOwogICAgICAgICAgICAgICAgICAg
ICBjdXJyRmFtaWx5ID0gbmV3RmFtaWx5LmdldCgpOwogICAgICAgICAgICAgICAgIH0KLSAgICAK
LSAgICAgICAgICAgICAgICBpZiAoZm9udERlc2NyaXB0aW9uLmtleXdvcmRTaXplKCkgJiYgKGZv
bnREZXNjcmlwdGlvbi5nZW5lcmljRmFtaWx5KCkgPT0gRm9udERlc2NyaXB0aW9uOjpNb25vc3Bh
Y2VGYW1pbHkpICE9IG9sZEZhbWlseUlzTW9ub3NwYWNlKQotICAgICAgICAgICAgICAgICAgICBz
ZXRGb250U2l6ZShmb250RGVzY3JpcHRpb24sIGZvbnRTaXplRm9yS2V5d29yZChDU1NWYWx1ZVh4
U21hbGwgKyBmb250RGVzY3JpcHRpb24ua2V5d29yZFNpemUoKSAtIDEsIG1fc3R5bGUtPmh0bWxI
YWNrcygpLCAhb2xkRmFtaWx5SXNNb25vc3BhY2UpKTsKLSAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIGlmIChtX3N0eWxlLT5zZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKSkK
LSAgICAgICAgICAgICAgICAgICAgbV9mb250RGlydHkgPSB0cnVlOwogICAgICAgICAgICAgfQog
ICAgICAgICB9Ci0gICAgICByZXR1cm47CisKKyAgICAgICAgLy8gV2UgY2FuJ3QgY2FsbCB1c2VG
aXhlZERlZmF1bHRTaXplKCkgdW50aWwgYWxsIG5ldyBmb250IGZhbWlsaWVzIGhhdmUgYmVlbiBh
ZGRlZAorICAgICAgICAvLyBJZiBjdXJyRmFtaWx5IGlzIG5vbi16ZXJvIHRoZW4gd2Ugc2V0IGF0
IGxlYXN0IG9uZSBmYW1pbHkgb24gdGhpcyBkZXNjcmlwdGlvbi4KKyAgICAgICAgaWYgKGN1cnJG
YW1pbHkpIHsKKyAgICAgICAgICAgIGlmIChmb250RGVzY3JpcHRpb24ua2V5d29yZFNpemUoKSAm
JiBmb250RGVzY3JpcHRpb24udXNlRml4ZWREZWZhdWx0U2l6ZSgpICE9IG9sZEZhbWlseVVzZWRG
aXhlZERlZmF1bHRTaXplKQorICAgICAgICAgICAgICAgIHNldEZvbnRTaXplKGZvbnREZXNjcmlw
dGlvbiwgZm9udFNpemVGb3JLZXl3b3JkKENTU1ZhbHVlWHhTbWFsbCArIGZvbnREZXNjcmlwdGlv
bi5rZXl3b3JkU2l6ZSgpIC0gMSwgbV9zdHlsZS0+aHRtbEhhY2tzKCksICFvbGRGYW1pbHlVc2Vk
Rml4ZWREZWZhdWx0U2l6ZSkpOworCisgICAgICAgICAgICBpZiAobV9zdHlsZS0+c2V0Rm9udERl
c2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbikpCisgICAgICAgICAgICAgICAgbV9mb250RGlydHkg
PSB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVRleHREZWNvcmF0aW9uOiB7CiAgICAgICAgIC8vIGxpc3Qgb2YgaWRlbnQKQEAgLTU1
NzYsOCArNTU4MSw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6Y2hlY2tGb3JHZW5lcmljRmFt
aWx5Q2hhbmdlKFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVyU3R5CiAgICAgICAgIHJldHVybjsK
IAogICAgIGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgcGFyZW50Rm9udCA9IHBhcmVudFN0eWxlLT5m
b250RGVzY3JpcHRpb24oKTsKLQotICAgIGlmIChjaGlsZEZvbnQuZ2VuZXJpY0ZhbWlseSgpID09
IHBhcmVudEZvbnQuZ2VuZXJpY0ZhbWlseSgpKQorICAgIGlmIChjaGlsZEZvbnQudXNlRml4ZWRE
ZWZhdWx0U2l6ZSgpID09IHBhcmVudEZvbnQudXNlRml4ZWREZWZhdWx0U2l6ZSgpKQogICAgICAg
ICByZXR1cm47CiAKICAgICAvLyBGb3Igbm93LCBsdW1wIGFsbCBmYW1pbGllcyBidXQgbW9ub3Nw
YWNlIHRvZ2V0aGVyLgpAQCAtNTU5MCwxNyArNTU5NCwxNiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0
b3I6OmNoZWNrRm9yR2VuZXJpY0ZhbWlseUNoYW5nZShSZW5kZXJTdHlsZSogc3R5bGUsIFJlbmRl
clN0eQogICAgIC8vIElmIHRoZSBmb250IHVzZXMgYSBrZXl3b3JkIHNpemUsIHRoZW4gd2UgcmVm
ZXRjaCBmcm9tIHRoZSB0YWJsZSByYXRoZXIgdGhhbgogICAgIC8vIG11bHRpcGx5aW5nIGJ5IG91
ciBzY2FsZSBmYWN0b3IuCiAgICAgZmxvYXQgc2l6ZTsKLSAgICBpZiAoY2hpbGRGb250LmtleXdv
cmRTaXplKCkpIHsKLSAgICAgICAgc2l6ZSA9IGZvbnRTaXplRm9yS2V5d29yZChDU1NWYWx1ZVh4
U21hbGwgKyBjaGlsZEZvbnQua2V5d29yZFNpemUoKSAtIDEsIHN0eWxlLT5odG1sSGFja3MoKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZEZvbnQuZ2VuZXJpY0ZhbWls
eSgpID09IEZvbnREZXNjcmlwdGlvbjo6TW9ub3NwYWNlRmFtaWx5KTsKLSAgICB9IGVsc2Ugewor
ICAgIGlmIChjaGlsZEZvbnQua2V5d29yZFNpemUoKSkKKyAgICAgICAgc2l6ZSA9IGZvbnRTaXpl
Rm9yS2V5d29yZChDU1NWYWx1ZVh4U21hbGwgKyBjaGlsZEZvbnQua2V5d29yZFNpemUoKSAtIDEs
IHN0eWxlLT5odG1sSGFja3MoKSwgY2hpbGRGb250LnVzZUZpeGVkRGVmYXVsdFNpemUoKSk7Cisg
ICAgZWxzZSB7CiAgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fY2hlY2tlci5tX2RvY3Vt
ZW50LT5zZXR0aW5ncygpOwogICAgICAgICBmbG9hdCBmaXhlZFNjYWxlRmFjdG9yID0gc2V0dGlu
Z3MKICAgICAgICAgICAgID8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNldHRpbmdzLT5kZWZhdWx0Rml4
ZWRGb250U2l6ZSgpKSAvIHNldHRpbmdzLT5kZWZhdWx0Rm9udFNpemUoKQogICAgICAgICAgICAg
OiAxOwotICAgICAgICBzaXplID0gKHBhcmVudEZvbnQuZ2VuZXJpY0ZhbWlseSgpID09IEZvbnRE
ZXNjcmlwdGlvbjo6TW9ub3NwYWNlRmFtaWx5KSA/IAotICAgICAgICAgICAgICAgIGNoaWxkRm9u
dC5zcGVjaWZpZWRTaXplKCkvZml4ZWRTY2FsZUZhY3RvciA6Ci0gICAgICAgICAgICAgICAgY2hp
bGRGb250LnNwZWNpZmllZFNpemUoKSpmaXhlZFNjYWxlRmFjdG9yOworICAgICAgICBzaXplID0g
cGFyZW50Rm9udC51c2VGaXhlZERlZmF1bHRTaXplKCkgPworICAgICAgICAgICAgICAgIGNoaWxk
Rm9udC5zcGVjaWZpZWRTaXplKCkgLyBmaXhlZFNjYWxlRmFjdG9yIDoKKyAgICAgICAgICAgICAg
ICBjaGlsZEZvbnQuc3BlY2lmaWVkU2l6ZSgpICogZml4ZWRTY2FsZUZhY3RvcjsKICAgICB9CiAK
ICAgICBGb250RGVzY3JpcHRpb24gbmV3Rm9udERlc2NyaXB0aW9uKGNoaWxkRm9udCk7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAppbmRleCBjODkzYjhhLi5l
NWM1MmJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlw
dGlvbi5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgK
QEAgLTgwLDYgKzgwLDggQEAgcHVibGljOgogICAgIEZvbnRXZWlnaHQgYm9sZGVyV2VpZ2h0KCkg
Y29uc3Q7CiAgICAgR2VuZXJpY0ZhbWlseVR5cGUgZ2VuZXJpY0ZhbWlseSgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PEdlbmVyaWNGYW1pbHlUeXBlPihtX2dlbmVyaWNGYW1pbHkpOyB9CiAg
ICAgYm9vbCB1c2VQcmludGVyRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlUHJpbnRlckZvbnQ7
IH0KKyAgICAvLyBvbmx5IHVzZSBmaXhlZCBkZWZhdWx0IHNpemUgd2hlbiB0aGVyZSBpcyBvbmx5
IG9uZSBmb250IGZhbWlseSwgYW5kIHRoYXQgZmFtaWx5IGlzICJtb25vc3BhY2UiCisgICAgYm9v
bCB1c2VGaXhlZERlZmF1bHRTaXplKCkgY29uc3QgeyByZXR1cm4gZ2VuZXJpY0ZhbWlseSgpID09
IE1vbm9zcGFjZUZhbWlseSAmJiAhZmFtaWx5KCkubmV4dCgpICYmIGZhbWlseSgpLmZhbWlseSgp
ID09ICItd2Via2l0LW1vbm9zcGFjZSI7IH0KICAgICBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJp
bmdNb2RlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Rm9udFJlbmRlcmluZ01vZGU+KG1f
cmVuZGVyaW5nTW9kZSk7IH0KICAgICB1bnNpZ25lZCBrZXl3b3JkU2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fa2V5d29yZFNpemU7IH0=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>34229</attachid>
            <date>2009-08-06 14:30:35 -0700</date>
            <delta_ts>2009-08-06 14:30:35 -0700</delta_ts>
            <desc>Visual test showing the extra bug I had to fix (partial font-family fallback inheritance)</desc>
            <filename>broken.html</filename>
            <type>text/html</type>
            <size>248</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">PGRpdiBpZD0ib3V0ZXJEaXYiIHN0eWxlPSJmb250LWZhbWlseTogY291cmllciBuZXcsIGN1cnNp
dmU7Ij4Kc2hvdWxkIGJlIENvdXJpZXIgTmV3CjxkaXYgaWQ9InRpbWVzRGl2IiBzdHlsZT0iZm9u
dC1mYW1pbHk6IGZvbzsiPnNob3VsZCBiZSBUaW1lcyAoZGVmYXVsdCBmb250KTwvZGl2Pgo8ZGl2
IGlkPSJjdXJzaXZlRGl2IiBzdHlsZT0iZm9udC1mYW1pbHk6IGN1cnNpdmU7Ij5zaG91bGQgYmUg
Y3Vyc2l2ZTwvZGl2Pgo8L2Rpdj4=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34230</attachid>
            <date>2009-08-06 14:33:23 -0700</date>
            <delta_ts>2009-08-13 13:27:51 -0700</delta_ts>
            <desc>Oops, now includes missing test files.</desc>
            <filename>bug-19161-20090806143319.patch</filename>
            <type>text/plain</type>
            <size>27360</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMmE5NzQxLi4yODBhNWM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMDktMDgt
MDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdyb25nIGZvbnQgc2l6ZSB3aGVuIGNzcyBmb250
LWZhbWlseSBpbmNsdWRlcyBtb25vc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5MTYxCisKKyAgICAgICAgVXBkYXRlIHRlc3QgcmVzdWx0cyBu
b3cgdGhhdCBvbmx5ICJmb250LWZhbWlseTogbW9ub3NwYWNlIiBpcyAxM3B4LgorICAgICAgICBB
bGwgb3RoZXIgY29tYmluYXRpb25zIG9mIGZvbnQtZmFtaWx5IGFyZSAxNnB4IGRlZmF1bHQgc2l6
ZS4KKworICAgICAgICBBZGQgdHdvIHRlc3RzOgorICAgICAgICBmb250LWZhbWlseS1mYWxsYmFj
ay1yZXNldDogY2F0Y2hlcyBhIGJ1ZyBpbiBpbmhlcml0aW5nIGZvbnQtZmFtaWx5IGZhbGxiYWNr
LgorICAgICAgICBjb21wdXRlZC1zdHlsZS1mb250LWZhbWlseS1tb25vc3BhY2U6IHRlc3RzIHRo
aXMgYnVnLCB0aGF0IG9ubHkgImZvbnQtZmFtaWx5OiBtb25vc3BhY2UiIGlzIDEzcHguCisKKyAg
ICAgICAgKiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWZvbnQtZmFt
aWx5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2Nv
bXB1dGVkLXN0eWxlLWZvbnQtZmFtaWx5LW1vbm9zcGFjZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtZm9udC1m
YW1pbHktbW9ub3NwYWNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1
dGVkU3R5bGUvZm9udC1mYW1pbHktZmFsbGJhY2stcmVzZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2ZvbnQtZmFtaWx5LWZhbGxiYWNr
LXJlc2V0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUv
cmVzb3VyY2VzL2NvbXB1dGVkLXN0eWxlLWZvbnQtZmFtaWx5LW1vbm9zcGFjZS5qczogQWRkZWQu
CisgICAgICAgIChmb250U2l6ZUZvckZhbWlsaWVzKToKKyAgICAgICAgKiBmYXN0L2Nzcy9nZXRD
b21wdXRlZFN0eWxlL3Jlc291cmNlcy9mb250LWZhbWlseS1mYWxsYmFjay1yZXNldC5qczogQWRk
ZWQuCisgICAgICAgICogZmFzdC9qcy9tZXRob2QtY2hlY2suaHRtbDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvY3NzMS9mb250X3Byb3BlcnRpZXMvZm9udF9mYW1pbHktZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9jc3MyLjEvdDE1MDMtYzUyMi1mb250LWZhbWlseS0wMC1i
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L21vbm9zcGFj
ZS13aWR0aC1jYWNoZS1leHBlY3RlZC50eHQ6CisKIDIwMDktMDgtMDYgIERyZXcgV2lsc29uICA8
YXR3aWxzb25AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0
ZWQtc3R5bGUtZm9udC1mYW1pbHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Z2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1mb250LWZhbWlseS1leHBlY3RlZC50eHQK
aW5kZXggZTdiNTBkMy4uNjczZDc4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Z2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1mb250LWZhbWlseS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHls
ZS1mb250LWZhbWlseS1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiBGb250IGF0dHJpYnV0
ZXMuIFRoZSBmb250LWZhbWlseSBzaG91bGQgbGlzdCB0aHJlZSBmYW1pbGllczoKIAogZm9udC1m
YW1pbHk6IG1vbm9zcGFjZSwgJ0x1Y2lkYSBHcmFuZGUnLCBzYW5zLXNlcmlmOwotZm9udC1zaXpl
OiAxM3B4OworZm9udC1zaXplOiAxNnB4OwogZm9udC1zdHlsZTogbm9ybWFsOwogZm9udC12YXJp
YW50OiBub3JtYWw7CiBmb250LXdlaWdodDogbm9ybWFsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1mb250LWZhbWlseS1t
b25vc3BhY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRT
dHlsZS9jb21wdXRlZC1zdHlsZS1mb250LWZhbWlseS1tb25vc3BhY2UtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ZDU3YjYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxl
LWZvbnQtZmFtaWx5LW1vbm9zcGFjZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVz
dCB0aGF0IG9ubHkgZXhhY3RseSAnZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsnIGNhdXNlcyB1c2Ug
b2YgZml4ZWQtd2lkdGggZm9udCBkZWZhdWx0IHNpemUuIEFsbCBvdGhlciBmb250IGZhbWlseSBh
bmQgZm9udCBmYW1pbHkgY29tYmluYXRpb25zIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIGRlZmF1
bHQgc2l6ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZm9udFNpemVG
b3JGYW1pbGllcygnbW9ub3NwYWNlJykgaXMgIjEzcHgiCitQQVNTIGZvbnRTaXplRm9yRmFtaWxp
ZXMoJ21vbm9zcGFjZSwgdGltZXMnKSBpcyAiMTZweCIKK1BBU1MgZm9udFNpemVGb3JGYW1pbGll
cygndGltZXMsIG1vbm9zcGFjZScpIGlzICIxNnB4IgorUEFTUyBmb250U2l6ZUZvckZhbWlsaWVz
KCdmb28nKSBpcyAiMTZweCIKK1BBU1MgZm9udFNpemVGb3JGYW1pbGllcygnZm9vLCBtb25vc3Bh
Y2UnKSBpcyAiMTZweCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0
eWxlL2NvbXB1dGVkLXN0eWxlLWZvbnQtZmFtaWx5LW1vbm9zcGFjZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1mb250LWZhbWlseS1t
b25vc3BhY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTVjOThl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHls
ZS9jb21wdXRlZC1zdHlsZS1mb250LWZhbWlseS1tb25vc3BhY2UuaHRtbApAQCAtMCwwICsxLDEz
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2NvbXB1dGVkLXN0eWxlLWZvbnQtZmFtaWx5LW1vbm9zcGFjZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRD
b21wdXRlZFN0eWxlL2ZvbnQtZmFtaWx5LWZhbGxiYWNrLXJlc2V0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvZm9udC1mYW1pbHktZmFsbGJhY2st
cmVzZXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5
NGQ5NzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRl
ZFN0eWxlL2ZvbnQtZmFtaWx5LWZhbGxiYWNrLXJlc2V0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEyIEBACitTZXR0aW5nIGEgbmV3IGZvbnQtZmFtaWx5IHNob3VsZCByZXNldCB0aGUgZmFsbGJh
Y2sgbGlzdCB0byBlbXB0eSBiZWZvcmUgYWRkaW5nIHRoZSBuZXcgZmFtaWx5LgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShvdXRl
ckRpdiwgbnVsbCkuZm9udEZhbWlseSBpcyAiJ2NvdXJpZXIgbmV3JywgY3Vyc2l2ZSIKK1BBU1Mg
d2luZG93LmdldENvbXB1dGVkU3R5bGUodGltZXNEaXYsIG51bGwpLmZvbnRGYW1pbHkgaXMgImZv
byIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoY3Vyc2l2ZURpdiwgbnVsbCkuZm9udEZh
bWlseSBpcyAiY3Vyc2l2ZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRl
ZFN0eWxlL2ZvbnQtZmFtaWx5LWZhbGxiYWNrLXJlc2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2ZvbnQtZmFtaWx5LWZhbGxiYWNrLXJlc2V0Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTBiY2ViNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvZm9udC1mYW1pbHktZmFs
bGJhY2stcmVzZXQuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZvbnQtZmFtaWx5LWZhbGxiYWNrLXJl
c2V0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvcmVzb3VyY2VzL2NvbXB1dGVkLXN0eWxl
LWZvbnQtZmFtaWx5LW1vbm9zcGFjZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1
dGVkU3R5bGUvcmVzb3VyY2VzL2NvbXB1dGVkLXN0eWxlLWZvbnQtZmFtaWx5LW1vbm9zcGFjZS5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjQ1YjRkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9yZXNvdXJjZXMv
Y29tcHV0ZWQtc3R5bGUtZm9udC1mYW1pbHktbW9ub3NwYWNlLmpzCkBAIC0wLDAgKzEsMjUgQEAK
K2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgb25seSBleGFjdGx5ICdmb250LWZhbWlseTogbW9ub3Nw
YWNlOycgY2F1c2VzIHVzZSBvZiBmaXhlZC13aWR0aCBmb250IGRlZmF1bHQgc2l6ZS4gIEFsbCBv
dGhlciBmb250IGZhbWlseSBhbmQgZm9udCBmYW1pbHkgY29tYmluYXRpb25zIHNob3VsZCB1c2Ug
dGhlIHN0YW5kYXJkIGRlZmF1bHQgc2l6ZS4iKQorCit2YXIgdGVzdFNwYW4gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzcGFuIik7Cit0ZXN0U3Bhbi5pbm5lckhUTUwgPSAidGVzdCI7Citkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlc3RTcGFuKTsKKworZnVuY3Rpb24gZm9udFNpemVGb3JG
YW1pbGllcyhmb250RmFtaWxpZXMpCit7CisgICAgdGVzdFNwYW4uc3R5bGUuZm9udEZhbWlseSA9
IGZvbnRGYW1pbGllczsKKyAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdFNw
YW4sIG51bGwpLmZvbnRTaXplOworfQorCisvLyBPbmx5IHRoZSBleGFjdCBmb250LWZhbWlseSAi
bW9ub3NwYWNlIiBzaG91bGQgcmVzdWx0IGluIHVzaW5nIHRoZSBmaXhlZC13aWR0aCBmb250IGRl
ZmF1bHQgc2l6ZS4KKy8vIFRoaXMgbWF0Y2hlcyBGaXJlRm94IDMueCBiZWhhdmlvci4KK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygiZm9udFNpemVGb3JGYW1pbGllcygnbW9ub3NwYWNlJykiLCAnMTNw
eCcpOworCisvLyBFdmVyeXRoaW5nIGVsc2Ugc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgZm9udCBz
aXplOgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJmb250U2l6ZUZvckZhbWlsaWVzKCdtb25vc3Bh
Y2UsIHRpbWVzJykiLCAnMTZweCcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJmb250U2l6ZUZv
ckZhbWlsaWVzKCd0aW1lcywgbW9ub3NwYWNlJykiLCAnMTZweCcpOworc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJmb250U2l6ZUZvckZhbWlsaWVzKCdmb28nKSIsICcxNnB4Jyk7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImZvbnRTaXplRm9yRmFtaWxpZXMoJ2ZvbywgbW9ub3NwYWNlJykiLCAnMTZw
eCcpOworCitkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRlc3RTcGFuKTsKKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9n
ZXRDb21wdXRlZFN0eWxlL3Jlc291cmNlcy9mb250LWZhbWlseS1mYWxsYmFjay1yZXNldC5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvcmVzb3VyY2VzL2ZvbnQtZmFt
aWx5LWZhbGxiYWNrLXJlc2V0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjdmNTBmOGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21w
dXRlZFN0eWxlL3Jlc291cmNlcy9mb250LWZhbWlseS1mYWxsYmFjay1yZXNldC5qcwpAQCAtMCww
ICsxLDE5IEBACitkZXNjcmlwdGlvbigiU2V0dGluZyBhIG5ldyBmb250LWZhbWlseSBzaG91bGQg
cmVzZXQgdGhlIGZhbGxiYWNrIGxpc3QgdG8gZW1wdHkgYmVmb3JlIGFkZGluZyB0aGUgbmV3IGZh
bWlseS4iKTsKKwordmFyIHdyYXBwZXJEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQod3JhcHBlckRpdikKKword3JhcHBlckRpdi5p
bm5lckhUTUwgPQorJzxkaXYgaWQ9Im91dGVyRGl2IiBzdHlsZT0iZm9udC1mYW1pbHk6IGNvdXJp
ZXIgbmV3LCBjdXJzaXZlOyI+JyArCisnc2hvdWxkIGJlIENvdXJpZXIgTmV3JyArCisnPGRpdiBp
ZD0idGltZXNEaXYiIHN0eWxlPSJmb250LWZhbWlseTogZm9vOyI+c2hvdWxkIGJlIFRpbWVzIChk
ZWZhdWx0IGZvbnQpPC9kaXY+JyArCisnPGRpdiBpZD0iY3Vyc2l2ZURpdiIgc3R5bGU9ImZvbnQt
ZmFtaWx5OiBjdXJzaXZlOyI+c2hvdWxkIGJlIGN1cnNpdmU8L2Rpdj4nICsKKyc8L2Rpdj4nOwor
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG91dGVyRGl2
LCBudWxsKS5mb250RmFtaWx5IiwgIidjb3VyaWVyIG5ldycsIGN1cnNpdmUiKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygid2luZG93LmdldENvbXB1dGVkU3R5bGUodGltZXNEaXYsIG51bGwpLmZv
bnRGYW1pbHkiLCAiZm9vIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGN1cnNpdmVEaXYsIG51bGwpLmZvbnRGYW1pbHkiLCAiY3Vyc2l2ZSIpOworCitk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHdyYXBwZXJEaXYpOworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3Mx
L2ZvbnRfcHJvcGVydGllcy9mb250X2ZhbWlseS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvY3NzMS9mb250X3Byb3BlcnRpZXMvZm9udF9mYW1pbHktZXhwZWN0ZWQudHh0
CmluZGV4IDdhYWQyZjIuLmJjMGMyMTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9jc3MxL2ZvbnRfcHJvcGVydGllcy9mb250X2ZhbWlseS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczEvZm9udF9wcm9wZXJ0aWVzL2ZvbnRfZmFtaWx5
LWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAKLWxheWVyIGF0ICgwLDApIHNpemUgNzg1eDEz
MDEKK2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDEzMTMKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBz
aXplIDc4NXg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgNzg1eDEzMDEKLSAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgNzg1eDEzMDEKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDc2OXgxMjg1IFtiZ2NvbG9yPSNDQ0NDQ0NdCitsYXllciBhdCAoMCwwKSBzaXpl
IDc4NXgxMzEzCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc4NXgxMzEzCisg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3Njl4MTI5NyBbYmdjb2xvcj0jQ0ND
Q0NDXQogICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzY5eDE4CiAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM1NXgxOAogICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDM1NTogIlRoZSBzdHlsZSBkZWNsYXJhdGlvbnMgd2hpY2ggYXBw
bHkgdG8gdGhlIHRleHQgYmVsb3cgYXJlOiIKQEAgLTUwLDExICs1MCwxMSBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDc4NXgxMzAxCiAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsNDMwKSBzaXpl
IDc2OXgxOAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzOTZ4MTgK
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzOTY6ICJUaGlzIHNlbnRlbmNlIHNo
b3VsZCBiZSBpbiBhIHNhbnMtc2VyaWYgZm9udCwgbm90IGN1cnNpdmUuIgotICAgICAgUmVuZGVy
QmxvY2sge1B9IGF0ICgwLDQ2NCkgc2l6ZSA3Njl4MTUKLSAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgNDQweDE1Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggNDQwOiAiVGhpcyBzZW50ZW5jZSBzaG91bGQgYmUgaW4gYSBtb25vc3BhY2UgZm9udCwgbm90
IHNlcmlmLiIKLSAgICAgIFJlbmRlckJsb2NrIHtIUn0gYXQgKDAsNDkyKSBzaXplIDc2OXgyIFti
b3JkZXI6ICgxcHggaW5zZXQgIzAwMDAwMCldCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCw1MDcpIHNpemUgNzY5eDIxMQorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDQ2NCkgc2l6
ZSA3Njl4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTUweDE4
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTUwOiAiVGhpcyBzZW50ZW5jZSBz
aG91bGQgYmUgaW4gYSBtb25vc3BhY2UgZm9udCwgbm90IHNlcmlmLiIKKyAgICAgIFJlbmRlckJs
b2NrIHtIUn0gYXQgKDAsNDk4KSBzaXplIDc2OXgyIFtib3JkZXI6ICgxcHggaW5zZXQgIzAwMDAw
MCldCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1MTMpIHNpemUgNzY5eDIxMQogICAg
ICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3Njl4MzAKICAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3Njh4MzAKICAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDc2ODogIlRoaXMgc2VudGVuY2UgaXMgbm9ybWFsIGZvciB0aGUgZmly
c3QgZGl2aXNpb24sIHdoaWNoIGlzIHRoZSBuZXh0IGZpdmUgc2VudGVuY2VzOyBpdCBzaG91bGQg
YmUgYSIKQEAgLTc0LDE4ICs3NCwxOCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDc4NXgxMzAxCiAg
ICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwxOTYpIHNpemUgNzY5eDE1CiAgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzUyeDE1CiAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCAzNTI6ICJUaGlzIHNlbnRlbmNlIHNob3VsZCBiZSBpbiBhIG1v
bm9zcGFjZSBmb250LiIKLSAgICAgIFJlbmRlclRhYmxlIHtUQUJMRX0gYXQgKDAsNzMxKSBzaXpl
IDc2OXg1NTQgW2JvcmRlcjogKDFweCBvdXRzZXQgIzgwODA4MCldCi0gICAgICAgIFJlbmRlclRh
YmxlU2VjdGlvbiB7VEJPRFl9IGF0ICgxLDEpIHNpemUgNzY3eDU1MgorICAgICAgUmVuZGVyVGFi
bGUge1RBQkxFfSBhdCAoMCw3MzcpIHNpemUgNzY5eDU2MCBbYm9yZGVyOiAoMXB4IG91dHNldCAj
ODA4MDgwKV0KKyAgICAgICAgUmVuZGVyVGFibGVTZWN0aW9uIHtUQk9EWX0gYXQgKDEsMSkgc2l6
ZSA3Njd4NTU4CiAgICAgICAgICAgUmVuZGVyVGFibGVSb3cge1RSfSBhdCAoMCwwKSBzaXplIDc2
N3gyNgogICAgICAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDAsMCkgc2l6ZSA3Njd4
MjYgW2JnY29sb3I9I0MwQzBDMF0gW2JvcmRlcjogKDFweCBpbnNldCAjODA4MDgwKV0gW3I9MCBj
PTAgcnM9MSBjcz0yXQogICAgICAgICAgICAgICBSZW5kZXJJbmxpbmUge1NUUk9OR30gYXQgKDAs
MCkgc2l6ZSAxNjN4MTgKICAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQs
NCkgc2l6ZSAxNjN4MTgKICAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg0LDQpIHdpZHRo
IDE2MzogIlRBQkxFIFRlc3RpbmcgU2VjdGlvbiIKLSAgICAgICAgICBSZW5kZXJUYWJsZVJvdyB7
VFJ9IGF0ICgwLDI2KSBzaXplIDc2N3g1MjYKLSAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7
VER9IGF0ICgwLDI3Nikgc2l6ZSAxMngyNiBbYmdjb2xvcj0jQzBDMEMwXSBbYm9yZGVyOiAoMXB4
IGluc2V0ICM4MDgwODApXSBbcj0xIGM9MCBycz0xIGNzPTFdCisgICAgICAgICAgUmVuZGVyVGFi
bGVSb3cge1RSfSBhdCAoMCwyNikgc2l6ZSA3Njd4NTMyCisgICAgICAgICAgICBSZW5kZXJUYWJs
ZUNlbGwge1REfSBhdCAoMCwyNzkpIHNpemUgMTJ4MjYgW2JnY29sb3I9I0MwQzBDMF0gW2JvcmRl
cjogKDFweCBpbnNldCAjODA4MDgwKV0gW3I9MSBjPTAgcnM9MSBjcz0xXQogICAgICAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQsNCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDQsNCkgd2lkdGggNDogIiAiCi0gICAgICAgICAgICBSZW5kZXJUYWJsZUNl
bGwge1REfSBhdCAoMTIsMjYpIHNpemUgNzU1eDUyNiBbYm9yZGVyOiAoMXB4IGluc2V0ICM4MDgw
ODApXSBbcj0xIGM9MSBycz0xIGNzPTFdCisgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoMTIsMjYpIHNpemUgNzU1eDUzMiBbYm9yZGVyOiAoMXB4IGluc2V0ICM4MDgwODApXSBb
cj0xIGM9MSBycz0xIGNzPTFdCiAgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg0
LDQpIHNpemUgNzQ3eDE5OQogICAgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCww
KSBzaXplIDc0N3gxOAogICAgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgNjM4eDE4CkBAIC0xMDksMTEgKzEwOSwxMSBAQCBsYXllciBhdCAoMCwwKSBzaXpl
IDc4NXgxMzAxCiAgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoNCwyMzQpIHNpemUg
NzQ3eDE4CiAgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
Mzk2eDE4CiAgICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzOTY6ICJU
aGlzIHNlbnRlbmNlIHNob3VsZCBiZSBpbiBhIHNhbnMtc2VyaWYgZm9udCwgbm90IGN1cnNpdmUu
IgotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDQsMjY4KSBzaXplIDc0N3gxNQot
ICAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQ0MHgxNQot
ICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDQwOiAiVGhpcyBzZW50
ZW5jZSBzaG91bGQgYmUgaW4gYSBtb25vc3BhY2UgZm9udCwgbm90IHNlcmlmLiIKLSAgICAgICAg
ICAgICAgUmVuZGVyQmxvY2sge0hSfSBhdCAoNCwyOTYpIHNpemUgNzQ3eDIgW2JvcmRlcjogKDFw
eCBpbnNldCAjMDAwMDAwKV0KLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDQs
MzExKSBzaXplIDc0N3gyMTEKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICg0LDI2
OCkgc2l6ZSA3NDd4MTgKKyAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSA1NTB4MTgKKyAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDU1MDogIlRoaXMgc2VudGVuY2Ugc2hvdWxkIGJlIGluIGEgbW9ub3NwYWNlIGZvbnQsIG5vdCBz
ZXJpZi4iCisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIUn0gYXQgKDQsMzAyKSBzaXplIDc0
N3gyIFtib3JkZXI6ICgxcHggaW5zZXQgIzAwMDAwMCldCisgICAgICAgICAgICAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICg0LDMxNykgc2l6ZSA3NDd4MjExCiAgICAgICAgICAgICAgICAgUmVuZGVy
QmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzQ3eDMwCiAgICAgICAgICAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3Mjh4MzAKICAgICAgICAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggNzI4OiAiVGhpcyBzZW50ZW5jZSBpcyBub3JtYWwgZm9yIHRo
ZSBmaXJzdCBkaXZpc2lvbiwgd2hpY2ggaXMgdGhlIG5leHQgZml2ZSBzZW50ZW5jZXM7IGl0IHNo
b3VsZCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MyLjEvdDE1MDMt
YzUyMi1mb250LWZhbWlseS0wMC1iLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9jc3MyLjEvdDE1MDMtYzUyMi1mb250LWZhbWlseS0wMC1iLWV4cGVjdGVkLnR4dAppbmRl
eCAxZTAyYmZiLi5mMDNjMGRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
Y3NzMi4xL3QxNTAzLWM1MjItZm9udC1mYW1pbHktMDAtYi1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczIuMS90MTUwMy1jNTIyLWZvbnQtZmFtaWx5LTAwLWIt
ZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsOCBAQAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXpl
IDgwMHgyODQKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDI4NAotICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDI2OAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4Mjg3CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgyODcK
KyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHgyNzEKICAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDExOQogICAgICAgICBSZW5kZXJCbG9jayB7
UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTggW2NvbG9yPSMwMDAwODBdCiAgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjQyeDE4CkBAIC0yNSwxMCArMjUsMTAgQEAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4Mjg0CiAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMTE5
KSBzaXplIDc4NHgxOCBbY29sb3I9IzAwMDA4MF0KICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgMzExeDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
MzExOiAiVGhpcyBzZW50ZW5jZSBzaG91bGQgYmUgaW4gYSBzYW5zLXNlcmlmIGZvbnQuIgotICAg
ICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDEzNykgc2l6ZSA3ODR4MTUgW2NvbG9yPSMwMDAwODBd
Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM1MngxNQotICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM1MjogIlRoaXMgc2VudGVuY2Ugc2hvdWxkIGJl
IGluIGEgbW9ub3NwYWNlIGZvbnQuIgotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMTUy
KSBzaXplIDc4NHgxMTYKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwxMzcpIHNpemUgNzg0
eDE4IFtjb2xvcj0jMDAwMDgwXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSA0NDB4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0NDA6ICJUaGlz
IHNlbnRlbmNlIHNob3VsZCBiZSBpbiBhIG1vbm9zcGFjZSBmb250LiIKKyAgICAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICgwLDE1NSkgc2l6ZSA3ODR4MTE2CiAgICAgICAgIFJlbmRlckJsb2NrIHtQ
fSBhdCAoMCwwKSBzaXplIDc4NHgxNSBbY29sb3I9IzAwMDA4MF0KICAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzNTJ4MTUKICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDM1MjogIlRoaXMgc2VudGVuY2Ugc2hvdWxkIGJlIGluIGEgbW9ub3NwYWNl
IGZvbnQuIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9t
b25vc3BhY2Utd2lkdGgtY2FjaGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvdGV4dC9tb25vc3BhY2Utd2lkdGgtY2FjaGUtZXhwZWN0ZWQudHh0CmluZGV4IGQw
NWE5NDYuLjE1OTM0YWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L3RleHQvbW9ub3NwYWNlLXdpZHRoLWNhY2hlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L21vbm9zcGFjZS13aWR0aC1jYWNoZS1leHBlY3RlZC50
eHQKQEAgLTIwLDcgKzIwLDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICBS
ZW5kZXJCbG9jayB7UH0gYXQgKDAsNTIpIHNpemUgNzg0eDE4CiAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM2OXgxOAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDM2OTogIlRoZSBibHVlIGxpbmUgYW5kIHRoZSBibGFjayBsaW5lIHNob3VsZCBiZSB0
aGUgc2FtZSBsZW5ndGguIgotICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDg2KSBzaXplIDc4
NHgxNQotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTU2eDE2IFti
b3JkZXI6ICgxcHggc29saWQgIzAwMDBGRikgbm9uZV0KLSAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAxNTZ4MTUKLSAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDE1NjogIlx4ezI1MDB9XHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9XHh7MjUwMH1ceHsy
NTAwfVx4ezI1MDB9XHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9XHh7MjUwMH1ceHsyNTAwfSIKKyAg
ICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCw4Nikgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVy
SW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE5MngxOSBbYm9yZGVyOiAoMXB4IHNvbGlkICMw
MDAwRkYpIG5vbmVdCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MTkyeDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAxOTI6ICJceHsyNTAw
fVx4ezI1MDB9XHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9XHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9
XHh7MjUwMH1ceHsyNTAwfVx4ezI1MDB9XHh7MjUwMH0iCmRpZmYgLS1naXQgYS9XZWJDb3JlL0No
YW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM5ZWQ3ZDkuLmY0NzI3ZjIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzggQEAKKzIwMDktMDgtMDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdyb25nIGZvbnQg
c2l6ZSB3aGVuIGNzcyBmb250LWZhbWlseSBpbmNsdWRlcyBtb25vc3BhY2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTYxCisKKyAgICAgICAgRmly
ZWZveCBvbmx5IHVzZXMgZml4ZWQtd2lkdGggZGVmYXVsdCBzaXplIGZvciBleGFjdGx5ICJmb250
LWZhbWlseTogbW9ub3NwYWNlOyIuCisgICAgICAgIFdlYktpdCBoYXMgaGlzdG9yaWNhbGx5IHVz
ZWQgZml4ZWQtd2lkdGggZGVmYXVsdCBzaXplIGFueSB0aW1lIGEKKyAgICAgICAgZm9udC1mYW1p
bHkgaW5jbHVkZXMgbW9ub3NwYWNlIGluIHRoZSBmYWxsYmFjayBsaXN0LgorCisgICAgICAgIFRo
aXMgcGF0Y2ggY29ycmVjdHMgV2ViS2l0J3MgYmVoYXZpb3IgdG8gbWF0Y2ggRmlyZWZveC4KKyAg
ICAgICAgSSBhbHNvIGhhZCB0byBmaXggYSBidWcgaW4gV2ViS2l0J3MgZm9udC1mYW1pbHkgZmFs
bGJhY2sgYmVoYXZpb3Igd2hlcmUKKyAgICAgICAgY2hpbGQgZWxlbWVudHMgd291bGQgaW5oZXJp
dCBwYXJ0cyBvZiB0aGVpciBwYXJlbnRzIGZhbGxiYWNrIGxpc3RzLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggaXMgbW9zdGx5IGp1c3QgcmVwbGFjaW5nIGFsbCBjYXNlcyB3aGVyZSB3ZSB1c2VkIHRv
IGNoZWNrIGZvcjoKKyAgICAgICAgZm9udERlc2NyaXB0aW9uLmdlbmVyaWNGb250RmFtaWx5KCkg
PT0gTW9ub3NwYWNlRmFtaWx5CisgICAgICAgIHdpdGg6CisgICAgICAgIGZvbnREZXNjcmlwdGlv
bi51c2VGaXhlZERlZmF1bHRTaXplKCkKKworICAgICAgICBUZXN0czogZmFzdC9jc3MvZ2V0Q29t
cHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1mb250LWZhbWlseS1tb25vc3BhY2UuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9mb250LWZhbWlseS1mYWxsYmFj
ay1yZXNldC5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KToKKyAgICAgICAg
ICAgRGVwbG95IHVzZUZpeGVkRGVmYXVsdFNpemUoKS4gIEFsc28gZml4IHRoZSBidWcgd2hlcmUg
Y2hpbGQKKyAgICAgICAgICAgRm9udERlc2NyaXB0aW9ucyB3b3VsZCBjYXJyeSBwYXJ0IG9mIHRo
ZSBwYXJlbnQgZm9udC1mYW1pbHkgZmFsbGJhY2sgbGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1N0eWxlU2VsZWN0b3I6OmNoZWNrRm9yR2VuZXJpY0ZhbWlseUNoYW5nZSk6CisgICAgICAgICAg
IEl0J3Mgbm8gbG9uZ2VyIGFscmlnaHQgdG8ganVzdCBjaGVjayBnZW5lcmljRm9udEZhbWlseSgp
LAorICAgICAgICAgICB3ZSBoYXZlIHRvIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgY2hhbmdlZCBz
dHlsZSBoYXMgYSBtYXRjaGluZyB1c2VGaXhlZERlZmF1bHRTaXplKCkuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250
RGVzY3JpcHRpb246OnVzZUZpeGVkRGVmYXVsdFNpemUpOgorICAgICAgICAgICBPbmx5IHVzZSB0
aGUgZml4ZWQgZGVmYXVsdCBzaXplIGlmIHdlIGhhdmUgb25lIGZvbnQgZmFtaWx5IGFuZCBpdCBp
cyAibW9ub3NwYWNlIi4KKyAgICAgICAgICAgIi13ZWJraXQtbW9ub3NwYWNlIiBpcyB0aGUgaW50
ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIENTUyBpZGVudGlmaWVyICJtb25vc3BhY2UiLgor
CiAyMDA5LTA4LTA2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aXggTWFjIExlb3BhcmQgZGVidWcgYnVpbGQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4
IDdjZmEzZTEuLjIxMTBkZGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0zNzU0LDcg
KzM3NTQsNiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBD
U1NWYWx1ZSAqdmFsdWUpCiAgICAgewogICAgICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2Ny
aXB0aW9uID0gbV9zdHlsZS0+Zm9udERlc2NyaXB0aW9uKCk7CiAgICAgICAgIGZvbnREZXNjcmlw
dGlvbi5zZXRLZXl3b3JkU2l6ZSgwKTsKLSAgICAgICAgYm9vbCBmYW1pbHlJc0ZpeGVkID0gZm9u
dERlc2NyaXB0aW9uLmdlbmVyaWNGYW1pbHkoKSA9PSBGb250RGVzY3JpcHRpb246Ok1vbm9zcGFj
ZUZhbWlseTsKICAgICAgICAgZmxvYXQgb2xkU2l6ZSA9IDA7CiAgICAgICAgIGZsb2F0IHNpemUg
PSAwOwogICAgICAgICAKQEAgLTM3NjksNyArMzc2OCw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rv
cjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKICAgICAgICAgICAgIGlm
IChtX3BhcmVudE5vZGUpCiAgICAgICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldEtleXdv
cmRTaXplKG1fcGFyZW50U3R5bGUtPmZvbnREZXNjcmlwdGlvbigpLmtleXdvcmRTaXplKCkpOwog
ICAgICAgICB9IGVsc2UgaWYgKGlzSW5pdGlhbCkgewotICAgICAgICAgICAgc2l6ZSA9IGZvbnRT
aXplRm9yS2V5d29yZChDU1NWYWx1ZU1lZGl1bSwgbV9zdHlsZS0+aHRtbEhhY2tzKCksIGZhbWls
eUlzRml4ZWQpOworICAgICAgICAgICAgc2l6ZSA9IGZvbnRTaXplRm9yS2V5d29yZChDU1NWYWx1
ZU1lZGl1bSwgbV9zdHlsZS0+aHRtbEhhY2tzKCksIGZvbnREZXNjcmlwdGlvbi51c2VGaXhlZERl
ZmF1bHRTaXplKCkpOwogICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldEtleXdvcmRTaXpl
KENTU1ZhbHVlTWVkaXVtIC0gQ1NTVmFsdWVYeFNtYWxsICsgMSk7CiAgICAgICAgIH0gZWxzZSBp
ZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKICAgICAgICAgICAgIC8vIEtleXdvcmRz
IGFyZSBiZWluZyB1c2VkLgpAQCAtMzc4Miw3ICszNzgxLDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVj
dG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAgICAgICAgICAg
ICAgIGNhc2UgQ1NTVmFsdWVYTGFyZ2U6CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVh4
TGFyZ2U6CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdFh4eExhcmdlOgotICAg
ICAgICAgICAgICAgICAgICBzaXplID0gZm9udFNpemVGb3JLZXl3b3JkKHByaW1pdGl2ZVZhbHVl
LT5nZXRJZGVudCgpLCBtX3N0eWxlLT5odG1sSGFja3MoKSwgZmFtaWx5SXNGaXhlZCk7CisgICAg
ICAgICAgICAgICAgICAgIHNpemUgPSBmb250U2l6ZUZvcktleXdvcmQocHJpbWl0aXZlVmFsdWUt
PmdldElkZW50KCksIG1fc3R5bGUtPmh0bWxIYWNrcygpLCBmb250RGVzY3JpcHRpb24udXNlRml4
ZWREZWZhdWx0U2l6ZSgpKTsKICAgICAgICAgICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNl
dEtleXdvcmRTaXplKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpIC0gQ1NTVmFsdWVYeFNtYWxs
ICsgMSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2Ug
Q1NTVmFsdWVMYXJnZXI6CkBAIC00MDI1LDEzICs0MDI0LDEyIEBAIHZvaWQgQ1NTU3R5bGVTZWxl
Y3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKICAgICAgICAgICAg
IGlmIChtX3N0eWxlLT5zZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKSkKICAgICAg
ICAgICAgICAgICBtX2ZvbnREaXJ0eSA9IHRydWU7CiAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLSAgICAgICAgZWxzZSBpZiAoaXNJbml0aWFsKSB7CisgICAgICAgIH0gZWxzZSBpZiAo
aXNJbml0aWFsKSB7CiAgICAgICAgICAgICBGb250RGVzY3JpcHRpb24gaW5pdGlhbERlc2MgPSBG
b250RGVzY3JpcHRpb24oKTsKICAgICAgICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3Jp
cHRpb24gPSBtX3N0eWxlLT5mb250RGVzY3JpcHRpb24oKTsKICAgICAgICAgICAgIC8vIFdlIG5l
ZWQgdG8gYWRqdXN0IHRoZSBzaXplIHRvIGFjY291bnQgZm9yIHRoZSBnZW5lcmljIGZhbWlseSBj
aGFuZ2UgZnJvbSBtb25vc3BhY2UKICAgICAgICAgICAgIC8vIHRvIG5vbi1tb25vc3BhY2UuCi0g
ICAgICAgICAgICBpZiAoZm9udERlc2NyaXB0aW9uLmtleXdvcmRTaXplKCkgJiYgZm9udERlc2Ny
aXB0aW9uLmdlbmVyaWNGYW1pbHkoKSA9PSBGb250RGVzY3JpcHRpb246Ok1vbm9zcGFjZUZhbWls
eSkKKyAgICAgICAgICAgIGlmIChmb250RGVzY3JpcHRpb24ua2V5d29yZFNpemUoKSAmJiBmb250
RGVzY3JpcHRpb24udXNlRml4ZWREZWZhdWx0U2l6ZSgpKQogICAgICAgICAgICAgICAgIHNldEZv
bnRTaXplKGZvbnREZXNjcmlwdGlvbiwgZm9udFNpemVGb3JLZXl3b3JkKENTU1ZhbHVlWHhTbWFs
bCArIGZvbnREZXNjcmlwdGlvbi5rZXl3b3JkU2l6ZSgpIC0gMSwgbV9zdHlsZS0+aHRtbEhhY2tz
KCksIGZhbHNlKSk7CiAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0R2VuZXJpY0ZhbWls
eShpbml0aWFsRGVzYy5nZW5lcmljRmFtaWx5KCkpOwogICAgICAgICAgICAgaWYgKCFpbml0aWFs
RGVzYy5maXJzdEZhbWlseSgpLmZhbWlseUlzRW1wdHkoKSkKQEAgLTQwNDEsMjEgKzQwMzksMjQg
QEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUg
KnZhbHVlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAg
ICBpZiAoIXZhbHVlLT5pc1ZhbHVlTGlzdCgpKSByZXR1cm47CisgICAgICAgIGlmICghdmFsdWUt
PmlzVmFsdWVMaXN0KCkpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIEZvbnREZXNjcmlw
dGlvbiBmb250RGVzY3JpcHRpb24gPSBtX3N0eWxlLT5mb250RGVzY3JpcHRpb24oKTsKLSAgICAg
ICAgQ1NTVmFsdWVMaXN0ICpsaXN0ID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUp
OworICAgICAgICBDU1NWYWx1ZUxpc3QqIGxpc3QgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3Qq
Pih2YWx1ZSk7CiAgICAgICAgIGludCBsZW4gPSBsaXN0LT5sZW5ndGgoKTsKICAgICAgICAgRm9u
dEZhbWlseSYgZmlyc3RGYW1pbHkgPSBmb250RGVzY3JpcHRpb24uZmlyc3RGYW1pbHkoKTsKLSAg
ICAgICAgRm9udEZhbWlseSAqY3VyckZhbWlseSA9IDA7CisgICAgICAgIEZvbnRGYW1pbHkqIGN1
cnJGYW1pbHkgPSAwOwogICAgICAgICAKICAgICAgICAgLy8gQmVmb3JlIG1hcHBpbmcgaW4gYSBu
ZXcgZm9udC1mYW1pbHkgcHJvcGVydHksIHdlIHNob3VsZCByZXNldCB0aGUgZ2VuZXJpYyBmYW1p
bHkuCi0gICAgICAgIGJvb2wgb2xkRmFtaWx5SXNNb25vc3BhY2UgPSBmb250RGVzY3JpcHRpb24u
Z2VuZXJpY0ZhbWlseSgpID09IEZvbnREZXNjcmlwdGlvbjo6TW9ub3NwYWNlRmFtaWx5OworICAg
ICAgICBib29sIG9sZEZhbWlseVVzZWRGaXhlZERlZmF1bHRTaXplID0gZm9udERlc2NyaXB0aW9u
LnVzZUZpeGVkRGVmYXVsdFNpemUoKTsKICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldEdlbmVy
aWNGYW1pbHkoRm9udERlc2NyaXB0aW9uOjpOb0ZhbWlseSk7CiAKKyAgICAgICAgYm9vbCBzZXRO
ZXdGb250RGVzY3JpcHRpb24gPSBmYWxzZTsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBs
ZW47IGkrKykgewotICAgICAgICAgICAgQ1NTVmFsdWUgKml0ZW0gPSBsaXN0LT5pdGVtV2l0aG91
dEJvdW5kc0NoZWNrKGkpOwotICAgICAgICAgICAgaWYgKCFpdGVtLT5pc1ByaW1pdGl2ZVZhbHVl
KCkpIGNvbnRpbnVlOwotICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUgKnZhbCA9IHN0YXRp
Y19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlbSk7CisgICAgICAgICAgICBDU1NWYWx1ZSog
aXRlbSA9IGxpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soaSk7CisgICAgICAgICAgICBpZiAo
IWl0ZW0tPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiB2YWwgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZSo+KGl0ZW0pOwogICAgICAgICAgICAgQXRvbWljU3RyaW5nIGZhY2U7CiAgICAgICAg
ICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBtX2NoZWNrZXIubV9kb2N1bWVudC0+c2V0dGluZ3Mo
KTsKICAgICAgICAgICAgIGlmICh2YWwtPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX1NUUklORykKQEAgLTQwODcsMjggKzQwODgsMzIgQEAgdm9pZCBDU1NTdHlsZVNl
bGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQot
ICAgIAorCiAgICAgICAgICAgICBpZiAoIWZhY2UuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAg
ICAgaWYgKCFjdXJyRmFtaWx5KSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIEZpbGxpbmcgaW4g
dGhlIGZpcnN0IGZhbWlseS4KICAgICAgICAgICAgICAgICAgICAgZmlyc3RGYW1pbHkuc2V0RmFt
aWx5KGZhY2UpOworICAgICAgICAgICAgICAgICAgICBmaXJzdEZhbWlseS5hcHBlbmRGYW1pbHko
MCk7IC8vIFJlbW92ZSBhbnkgaW5oZXJpdGVkIGZhbWlseS1mYWxsYmFjayBsaXN0LgogICAgICAg
ICAgICAgICAgICAgICBjdXJyRmFtaWx5ID0gJmZpcnN0RmFtaWx5OwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgICAgICAgICBSZWZQdHI8U2hhcmVkRm9udEZhbWlseT4gbmV3RmFtaWx5ID0gU2hh
cmVkRm9udEZhbWlseTo6Y3JlYXRlKCk7CiAgICAgICAgICAgICAgICAgICAgIG5ld0ZhbWlseS0+
c2V0RmFtaWx5KGZhY2UpOwogICAgICAgICAgICAgICAgICAgICBjdXJyRmFtaWx5LT5hcHBlbmRG
YW1pbHkobmV3RmFtaWx5KTsKICAgICAgICAgICAgICAgICAgICAgY3VyckZhbWlseSA9IG5ld0Zh
bWlseS5nZXQoKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgCi0gICAgICAgICAgICAgICAgaWYg
KGZvbnREZXNjcmlwdGlvbi5rZXl3b3JkU2l6ZSgpICYmIChmb250RGVzY3JpcHRpb24uZ2VuZXJp
Y0ZhbWlseSgpID09IEZvbnREZXNjcmlwdGlvbjo6TW9ub3NwYWNlRmFtaWx5KSAhPSBvbGRGYW1p
bHlJc01vbm9zcGFjZSkKLSAgICAgICAgICAgICAgICAgICAgc2V0Rm9udFNpemUoZm9udERlc2Ny
aXB0aW9uLCBmb250U2l6ZUZvcktleXdvcmQoQ1NTVmFsdWVYeFNtYWxsICsgZm9udERlc2NyaXB0
aW9uLmtleXdvcmRTaXplKCkgLSAxLCBtX3N0eWxlLT5odG1sSGFja3MoKSwgIW9sZEZhbWlseUlz
TW9ub3NwYWNlKSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAobV9zdHlsZS0+
c2V0Rm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbikpCi0gICAgICAgICAgICAgICAgICAg
IG1fZm9udERpcnR5ID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgcmV0
dXJuOworCisgICAgICAgIC8vIFdlIGNhbid0IGNhbGwgdXNlRml4ZWREZWZhdWx0U2l6ZSgpIHVu
dGlsIGFsbCBuZXcgZm9udCBmYW1pbGllcyBoYXZlIGJlZW4gYWRkZWQKKyAgICAgICAgLy8gSWYg
Y3VyckZhbWlseSBpcyBub24temVybyB0aGVuIHdlIHNldCBhdCBsZWFzdCBvbmUgZmFtaWx5IG9u
IHRoaXMgZGVzY3JpcHRpb24uCisgICAgICAgIGlmIChjdXJyRmFtaWx5KSB7CisgICAgICAgICAg
ICBpZiAoZm9udERlc2NyaXB0aW9uLmtleXdvcmRTaXplKCkgJiYgZm9udERlc2NyaXB0aW9uLnVz
ZUZpeGVkRGVmYXVsdFNpemUoKSAhPSBvbGRGYW1pbHlVc2VkRml4ZWREZWZhdWx0U2l6ZSkKKyAg
ICAgICAgICAgICAgICBzZXRGb250U2l6ZShmb250RGVzY3JpcHRpb24sIGZvbnRTaXplRm9yS2V5
d29yZChDU1NWYWx1ZVh4U21hbGwgKyBmb250RGVzY3JpcHRpb24ua2V5d29yZFNpemUoKSAtIDEs
IG1fc3R5bGUtPmh0bWxIYWNrcygpLCAhb2xkRmFtaWx5VXNlZEZpeGVkRGVmYXVsdFNpemUpKTsK
KworICAgICAgICAgICAgaWYgKG1fc3R5bGUtPnNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3Jp
cHRpb24pKQorICAgICAgICAgICAgICAgIG1fZm9udERpcnR5ID0gdHJ1ZTsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0RGVjb3JhdGlv
bjogewogICAgICAgICAvLyBsaXN0IG9mIGlkZW50CkBAIC01NTc2LDggKzU1ODEsNyBAQCB2b2lk
IENTU1N0eWxlU2VsZWN0b3I6OmNoZWNrRm9yR2VuZXJpY0ZhbWlseUNoYW5nZShSZW5kZXJTdHls
ZSogc3R5bGUsIFJlbmRlclN0eQogICAgICAgICByZXR1cm47CiAKICAgICBjb25zdCBGb250RGVz
Y3JpcHRpb24mIHBhcmVudEZvbnQgPSBwYXJlbnRTdHlsZS0+Zm9udERlc2NyaXB0aW9uKCk7Ci0K
LSAgICBpZiAoY2hpbGRGb250LmdlbmVyaWNGYW1pbHkoKSA9PSBwYXJlbnRGb250LmdlbmVyaWNG
YW1pbHkoKSkKKyAgICBpZiAoY2hpbGRGb250LnVzZUZpeGVkRGVmYXVsdFNpemUoKSA9PSBwYXJl
bnRGb250LnVzZUZpeGVkRGVmYXVsdFNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8g
Rm9yIG5vdywgbHVtcCBhbGwgZmFtaWxpZXMgYnV0IG1vbm9zcGFjZSB0b2dldGhlci4KQEAgLTU1
OTAsMTcgKzU1OTQsMTYgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjpjaGVja0ZvckdlbmVyaWNG
YW1pbHlDaGFuZ2UoUmVuZGVyU3R5bGUqIHN0eWxlLCBSZW5kZXJTdHkKICAgICAvLyBJZiB0aGUg
Zm9udCB1c2VzIGEga2V5d29yZCBzaXplLCB0aGVuIHdlIHJlZmV0Y2ggZnJvbSB0aGUgdGFibGUg
cmF0aGVyIHRoYW4KICAgICAvLyBtdWx0aXBseWluZyBieSBvdXIgc2NhbGUgZmFjdG9yLgogICAg
IGZsb2F0IHNpemU7Ci0gICAgaWYgKGNoaWxkRm9udC5rZXl3b3JkU2l6ZSgpKSB7Ci0gICAgICAg
IHNpemUgPSBmb250U2l6ZUZvcktleXdvcmQoQ1NTVmFsdWVYeFNtYWxsICsgY2hpbGRGb250Lmtl
eXdvcmRTaXplKCkgLSAxLCBzdHlsZS0+aHRtbEhhY2tzKCksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2hpbGRGb250LmdlbmVyaWNGYW1pbHkoKSA9PSBGb250RGVzY3JpcHRp
b246Ok1vbm9zcGFjZUZhbWlseSk7Ci0gICAgfSBlbHNlIHsKKyAgICBpZiAoY2hpbGRGb250Lmtl
eXdvcmRTaXplKCkpCisgICAgICAgIHNpemUgPSBmb250U2l6ZUZvcktleXdvcmQoQ1NTVmFsdWVY
eFNtYWxsICsgY2hpbGRGb250LmtleXdvcmRTaXplKCkgLSAxLCBzdHlsZS0+aHRtbEhhY2tzKCks
IGNoaWxkRm9udC51c2VGaXhlZERlZmF1bHRTaXplKCkpOworICAgIGVsc2UgewogICAgICAgICBT
ZXR0aW5ncyogc2V0dGluZ3MgPSBtX2NoZWNrZXIubV9kb2N1bWVudC0+c2V0dGluZ3MoKTsKICAg
ICAgICAgZmxvYXQgZml4ZWRTY2FsZUZhY3RvciA9IHNldHRpbmdzCiAgICAgICAgICAgICA/IHN0
YXRpY19jYXN0PGZsb2F0PihzZXR0aW5ncy0+ZGVmYXVsdEZpeGVkRm9udFNpemUoKSkgLyBzZXR0
aW5ncy0+ZGVmYXVsdEZvbnRTaXplKCkKICAgICAgICAgICAgIDogMTsKLSAgICAgICAgc2l6ZSA9
IChwYXJlbnRGb250LmdlbmVyaWNGYW1pbHkoKSA9PSBGb250RGVzY3JpcHRpb246Ok1vbm9zcGFj
ZUZhbWlseSkgPyAKLSAgICAgICAgICAgICAgICBjaGlsZEZvbnQuc3BlY2lmaWVkU2l6ZSgpL2Zp
eGVkU2NhbGVGYWN0b3IgOgotICAgICAgICAgICAgICAgIGNoaWxkRm9udC5zcGVjaWZpZWRTaXpl
KCkqZml4ZWRTY2FsZUZhY3RvcjsKKyAgICAgICAgc2l6ZSA9IHBhcmVudEZvbnQudXNlRml4ZWRE
ZWZhdWx0U2l6ZSgpID8KKyAgICAgICAgICAgICAgICBjaGlsZEZvbnQuc3BlY2lmaWVkU2l6ZSgp
IC8gZml4ZWRTY2FsZUZhY3RvciA6CisgICAgICAgICAgICAgICAgY2hpbGRGb250LnNwZWNpZmll
ZFNpemUoKSAqIGZpeGVkU2NhbGVGYWN0b3I7CiAgICAgfQogCiAgICAgRm9udERlc2NyaXB0aW9u
IG5ld0ZvbnREZXNjcmlwdGlvbihjaGlsZEZvbnQpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udERlc2NyaXB0aW9uLmgKaW5kZXggYzg5M2I4YS4uZTVjNTJiZiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCkBAIC04MCw2ICs4MCw4IEBAIHB1
YmxpYzoKICAgICBGb250V2VpZ2h0IGJvbGRlcldlaWdodCgpIGNvbnN0OwogICAgIEdlbmVyaWNG
YW1pbHlUeXBlIGdlbmVyaWNGYW1pbHkoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxHZW5l
cmljRmFtaWx5VHlwZT4obV9nZW5lcmljRmFtaWx5KTsgfQogICAgIGJvb2wgdXNlUHJpbnRlckZv
bnQoKSBjb25zdCB7IHJldHVybiBtX3VzZVByaW50ZXJGb250OyB9CisgICAgLy8gb25seSB1c2Ug
Zml4ZWQgZGVmYXVsdCBzaXplIHdoZW4gdGhlcmUgaXMgb25seSBvbmUgZm9udCBmYW1pbHksIGFu
ZCB0aGF0IGZhbWlseSBpcyAibW9ub3NwYWNlIgorICAgIGJvb2wgdXNlRml4ZWREZWZhdWx0U2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIGdlbmVyaWNGYW1pbHkoKSA9PSBNb25vc3BhY2VGYW1pbHkgJiYg
IWZhbWlseSgpLm5leHQoKSAmJiBmYW1pbHkoKS5mYW1pbHkoKSA9PSAiLXdlYmtpdC1tb25vc3Bh
Y2UiOyB9CiAgICAgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PEZvbnRSZW5kZXJpbmdNb2RlPihtX3JlbmRlcmluZ01vZGUpOyB9CiAg
ICAgdW5zaWduZWQga2V5d29yZFNpemUoKSBjb25zdCB7IHJldHVybiBtX2tleXdvcmRTaXplOyB9
</data>
<flag name="review"
          id="18389"
          type_id="1"
          status="+"
          setter="hyatt"
    />
    <flag name="commit-queue"
          id="18894"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>