<?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>88866</bug_id>
          
          <creation_ts>2012-06-12 06:21:13 -0700</creation_ts>
          <short_desc>ASSERT_NOT_REACHED in StylePropertySet::fontValue when accessing font style property through JS after setting style font size.</short_desc>
          <delta_ts>2013-01-10 05:48:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Brüning">michael.bruning</reporter>
          <assigned_to name="Alexis Menard (darktears)">menard</assigned_to>
          <cc>apavlov</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>hausmann</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>michael.bruning</cc>
    
    <cc>net147</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>646878</commentid>
    <comment_count>0</comment_count>
      <attachid>147071</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-06-12 06:21:13 -0700</bug_when>
    <thetext>Created attachment 147071
Test case html file that triggers the assert.

Noticed with a Qt 5 WK2 trunk debug build (r119588).

To trigger, load the attached test.html file in a debug build (I used MiniBrowser).

ASSERTS with the following stack trace: 
/home/mibrunin/swork/webkit/Source/WebCore/css/StylePropertySet.cpp(285) : WTF::String WebCore::StylePropertySet::fontValue() const
1   0x7f97978f055f [...]/libQtWebKit.so.5(_ZNK7WebCore16StylePropertySet9fontValueEv+0x305) [0x7f97978f055f]
2   0x7f97978efb21 [...]/libQtWebKit.so.5(_ZNK7WebCore16StylePropertySet16getPropertyValueENS_13CSSPropertyIDE+0x3e7) [0x7f97978efb21]
3   0x7f979789eeb1 [...]/libQtWebKit.so.5(_ZN7WebCore30PropertySetCSSStyleDeclaration24getPropertyValueInternalENS_13CSSPropertyIDE+0x2d) [0x7f979789eeb1]
4   0x7f97976d822b [...]/libQtWebKit.so.5(+0x23d322b) [0x7f97976d822b]
5   0x7f97976d8512 [...]/libQtWebKit.so.5(+0x23d3512) [0x7f97976d8512]
6   0x7f97976d85ac [...]/libQtWebKit.so.5(+0x23d35ac) [0x7f97976d85ac]
7   0x7f9797579800 [...]/libQtWebKit.so.5(_ZNK3JSC12PropertySlot8getValueEPNS_9ExecStateENS_12PropertyNameE+0x76) [0x7f9797579800]
8   0x7f9797735927 [...]/libQtWebKit.so.5(_ZNK3JSC7JSValue3getEPNS_9ExecStateENS_12PropertyNameERNS_12PropertySlotE+0xd3) [0x7f9797735927]
9   0x7f9797735851 [...]/libQtWebKit.so.5(_ZNK3JSC7JSValue3getEPNS_9ExecStateENS_12PropertyNameE+0x4f) [0x7f9797735851]
10  0x7f9798c28646 [...]/libQtWebKit.so.5(cti_op_get_by_val+0x435) [0x7f9798c28646]
11  0x7f9798c22a0c [...]/libQtWebKit.so.5(+0x391da0c) [0x7f9798c22a0c]

I debugged this a bit and found out that after setting the font size through JS, the font size property is set, but not all the other longhand font properties that are expected to be present at least implicitly (e.g. CSSPropertyFontStyle) are not set and therefore, the assert is reached.

Alexander, if you can provide me with some guidance on where to look into fixing this, I&apos;ll be happy to do so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646974</commentid>
    <comment_count>1</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-06-12 08:45:11 -0700</bug_when>
    <thetext>OK, some pre-history. Originally, the &quot;font&quot; property was a first-class CSS property, not a shorthand (which broke a few things across WebKit, including the Web Inspector). I fixed this to the extent of relying on the valid longhand property values found in the style. Originally the asserting code was seemingly found in the CSSComputedStyleDeclaration class but was since then moved into StylePropertySet by koivisto@iki.fi (:anttik). He knows best how things work in the CSS land, since he&apos;s its primary maintainer, and is in the process of refactoring the entire thing.

Antti, can you advise on possible behavior impact introduced by moving the asserting code (String StylePropertySet::fontValue() const) from CSSStyleDeclaration into StylePropertySet? It relied on &quot;inital&quot; font longhand values being always present in the computed style, but no longer seems to be the case...

Alexis, I&apos;ve added you just in case you may know something about the underlying matter, since you changed the CSSParser font parsing code around 2 months ago (http://trac.webkit.org/changeset/114895).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801020</commentid>
    <comment_count>2</comment_count>
    <who name="Jonathan Liu">net147</who>
    <bug_when>2013-01-05 18:00:49 -0800</bug_when>
    <thetext>I can also reproduce this running the Qt 5 fancybrowser example in debug build and clicking Tools -&gt; Remove GIF images. Affects Qt 5.0.0 release and Qt 5 stable branch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801237</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-01-07 05:07:33 -0800</bug_when>
    <thetext>I have just been moving code. I don&apos;t think I have done any intentional behavior changes here. Alexis knows this stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801247</commentid>
    <comment_count>4</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-01-07 05:41:09 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; I have just been moving code. I don&apos;t think I have done any intentional behavior changes here. Alexis knows this stuff.

From what I can see with a quick debug, when setting directly the font-size the rest of the other font properties are not set to a value which is fine as all the longhands (part of a shorthand) are behaving the same (for example, setting background-position only will not set other background properties to &quot;initial&quot;). Now the problem lies in the code reconstructing the font shorthand which assume that the font related properties were set using the font shorthand (which then will set the unspecified longhands to &quot;initial&quot; like any other shorthand) but as shown by the test case it&apos;s not always the case. I don&apos;t think Antti has anything to do with the problem, the bug has been there for a while I believe. I&apos;ll give a shot on a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801423</commentid>
    <comment_count>5</comment_count>
      <attachid>181528</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-01-07 10:46:04 -0800</bug_when>
    <thetext>Created attachment 181528
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801430</commentid>
    <comment_count>6</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-01-07 10:51:24 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=181528) [details]
&gt; Patch

Let&apos;s see EWS.

Unless I miss something I think this ASSERT is not accurate. The history shows that the original writer is Alexander, maybe he can explain a bit more the part where an &quot;invalid shorthand is constructed&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801509</commentid>
    <comment_count>7</comment_count>
      <attachid>181540</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-01-07 11:56:44 -0800</bug_when>
    <thetext>Created attachment 181540
Attempt to fix the test in cross-platform way</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803219</commentid>
    <comment_count>8</comment_count>
      <attachid>181540</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-01-09 04:19:26 -0800</bug_when>
    <thetext>Comment on attachment 181540
Attempt to fix the test in cross-platform way

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

&gt; Source/WebCore/ChangeLog:15
&gt; +        other shorthands in of WebKit. When reconstructing the shorthand other

stray &quot;of&quot;

&gt; Source/WebCore/ChangeLog:18
&gt; +        shortest shorthand possible) or if the value is set or not (if set then

..but not shorter than it is allowed to be :) (see below)

&gt; Source/WebCore/ChangeLog:22
&gt; +        construct a valid value at it takes care of adding &apos; &apos; or &apos;/&apos; when

at -&gt; as

&gt; Source/WebCore/css/StylePropertySet.cpp:262
&gt; +    return;

You definitely can drop it :)

&gt; LayoutTests/fast/css/font-shorthand-from-longhands-expected.txt:6
&gt; +PASS style.font is &apos;20px&apos;

According to http://www.w3.org/TR/CSS2/fonts.html#font-shorthand, &quot;20px&quot; is not a valid value for &quot;font&quot; (if a non-keyword value is used, the &lt;&apos;font-size&apos;&gt; and &lt;&apos;font-family&apos;&gt; components are mandatory.) Thus,
style.font should be &quot;20px foobar&quot;, not bare &quot;20px&quot;.

&gt; LayoutTests/fast/css/font-shorthand-from-longhands-expected.txt:37
&gt; +PASS style.font is &apos;bold 40px&apos;

This doesn&apos;t seem a valid value, either

&gt; LayoutTests/fast/css/font-shorthand-from-longhands.html:10
&gt; +    font-family: &quot;foobar&quot;;

It would be nice to test the case when there&apos;s no explicit &quot;font-family&quot; value for the checked element.

&gt; LayoutTests/fast/css/font-shorthand-from-longhands.html:17
&gt; +description(&quot;Test the parsing and the computed style values of the transitions properties.&quot;)

doesn&apos;t look like &quot;transitions properties&quot; :)

&gt; LayoutTests/fast/css/font-shorthand-from-longhands.html:24
&gt; +e = document.getElementById(&apos;test&apos;);

Use &quot;var&quot; declarations for all variables - this is the common &quot;right&quot; way

&gt; LayoutTests/fast/css/font-shorthand-from-longhands.html:28
&gt; +// This function check the return value of style.font and verify WebKit can parse it.

checks
verifies

&gt; LayoutTests/fast/css/font-shorthand-from-longhands.html:33
&gt; +    return (e.style.getPropertyValue(&apos;font&apos;) == before);

My impression is that all JS code uses &apos;===&apos; whenever an identity check is implied (at least the Web Inspector)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803379</commentid>
    <comment_count>9</comment_count>
      <attachid>181933</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-01-09 09:15:00 -0800</bug_when>
    <thetext>Created attachment 181933
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803385</commentid>
    <comment_count>10</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-01-09 09:19:36 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 181540 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181540&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:15
&gt; &gt; +        other shorthands in of WebKit. When reconstructing the shorthand other
&gt; 
&gt; stray &quot;of&quot;
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:18
&gt; &gt; +        shortest shorthand possible) or if the value is set or not (if set then
&gt; 
&gt; ..but not shorter than it is allowed to be :) (see below)
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:22
&gt; &gt; +        construct a valid value at it takes care of adding &apos; &apos; or &apos;/&apos; when
&gt; 
&gt; at -&gt; as
&gt; 
&gt; &gt; Source/WebCore/css/StylePropertySet.cpp:262
&gt; &gt; +    return;
&gt; 
&gt; You definitely can drop it :)
&gt; 
&gt; &gt; LayoutTests/fast/css/font-shorthand-from-longhands-expected.txt:6
&gt; &gt; +PASS style.font is &apos;20px&apos;
&gt; 
&gt; According to http://www.w3.org/TR/CSS2/fonts.html#font-shorthand, &quot;20px&quot; is not a valid value for &quot;font&quot; (if a non-keyword value is used, the &lt;&apos;font-size&apos;&gt; and &lt;&apos;font-family&apos;&gt; components are mandatory.) Thus,
&gt; style.font should be &quot;20px foobar&quot;, not bare &quot;20px&quot;.
&gt; 

Oops sorry for overlooking that part. So in fact what I did in the new patch is that if the font-family is not specified on the style then we can&apos;t construct the shorthand. From StylePropertySet I can&apos;t dig &quot;foobar&quot; as the font-family value because it&apos;s later on that it gets resolved (and you get it in the computed style). So it&apos;s better to return nothing than a broken value as I can&apos;t build a valid font shorthand.

&gt; &gt; LayoutTests/fast/css/font-shorthand-from-longhands-expected.txt:37
&gt; &gt; +PASS style.font is &apos;bold 40px&apos;
&gt; 
&gt; This doesn&apos;t seem a valid value, either
&gt; 
&gt; &gt; LayoutTests/fast/css/font-shorthand-from-longhands.html:10
&gt; &gt; +    font-family: &quot;foobar&quot;;
&gt; 
&gt; It would be nice to test the case when there&apos;s no explicit &quot;font-family&quot; value for the checked element.

Well I tried to do that but in fact the resolved font-family is different from port to port, platform to platform so there is no easy way to test it without landing specific port expected output.

&gt; 
&gt; &gt; LayoutTests/fast/css/font-shorthand-from-longhands.html:17
&gt; &gt; +description(&quot;Test the parsing and the computed style values of the transitions properties.&quot;)
&gt; 
&gt; doesn&apos;t look like &quot;transitions properties&quot; :)

:(

&gt; 
&gt; &gt; LayoutTests/fast/css/font-shorthand-from-longhands.html:24
&gt; &gt; +e = document.getElementById(&apos;test&apos;);
&gt; 
&gt; Use &quot;var&quot; declarations for all variables - this is the common &quot;right&quot; way
&gt; 
&gt; &gt; LayoutTests/fast/css/font-shorthand-from-longhands.html:28
&gt; &gt; +// This function check the return value of style.font and verify WebKit can parse it.
&gt; 
&gt; checks
&gt; verifies
&gt; 
&gt; &gt; LayoutTests/fast/css/font-shorthand-from-longhands.html:33
&gt; &gt; +    return (e.style.getPropertyValue(&apos;font&apos;) == before);
&gt; 
&gt; My impression is that all JS code uses &apos;===&apos; whenever an identity check is implied (at least the Web Inspector)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804176</commentid>
    <comment_count>11</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-01-10 01:51:29 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #8)
&gt; &gt; (From update of attachment 181540 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181540&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/fast/css/font-shorthand-from-longhands-expected.txt:6
&gt; &gt; &gt; +PASS style.font is &apos;20px&apos;
&gt; &gt; 
&gt; &gt; According to http://www.w3.org/TR/CSS2/fonts.html#font-shorthand, &quot;20px&quot; is not a valid value for &quot;font&quot; (if a non-keyword value is used, the &lt;&apos;font-size&apos;&gt; and &lt;&apos;font-family&apos;&gt; components are mandatory.) Thus,
&gt; &gt; style.font should be &quot;20px foobar&quot;, not bare &quot;20px&quot;.
&gt; &gt; 
&gt; 
&gt; Oops sorry for overlooking that part. So in fact what I did in the new patch is that if the font-family is not specified on the style then we can&apos;t construct the shorthand. From StylePropertySet I can&apos;t dig &quot;foobar&quot; as the font-family value because it&apos;s later on that it gets resolved (and you get it in the computed style). So it&apos;s better to return nothing than a broken value as I can&apos;t build a valid font shorthand.

Right, that&apos;s why I used to return empty values in some cases.

&gt; &gt; &gt; LayoutTests/fast/css/font-shorthand-from-longhands.html:10
&gt; &gt; &gt; +    font-family: &quot;foobar&quot;;
&gt; &gt; 
&gt; &gt; It would be nice to test the case when there&apos;s no explicit &quot;font-family&quot; value for the checked element.
&gt; 
&gt; Well I tried to do that but in fact the resolved font-family is different from port to port, platform to platform so there is no easy way to test it without landing specific port expected output.

What I meant was having an explicit font-family inherited from an ancestor element (e.g. BODY). Will that work or is it the same as the case you described above?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804282</commentid>
    <comment_count>12</comment_count>
      <attachid>181933</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-01-10 05:33:05 -0800</bug_when>
    <thetext>Comment on attachment 181933
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804294</commentid>
    <comment_count>13</comment_count>
      <attachid>181933</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 05:48:02 -0800</bug_when>
    <thetext>Comment on attachment 181933
Patch

Clearing flags on attachment: 181933

Committed r139313: &lt;http://trac.webkit.org/changeset/139313&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804295</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 05:48:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>147071</attachid>
            <date>2012-06-12 06:21:13 -0700</date>
            <delta_ts>2012-06-12 06:21:13 -0700</delta_ts>
            <desc>Test case html file that triggers the assert.</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>466</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">PGh0bWw+CiAgICA8aGVhZD4KICAgIDxzY3JpcHQ+CiAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsK
ICAgICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSB7IAogICAgICAgICAgICAgICAgZm9udFNpemU6
ICcxM3B4JywKICAgICAgICAgICAgfTsKICAgICAgICAgICAgdmFyIHRlc3REaXYgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOwogICAgICAgICAgICB0ZXN0RGl2LnN0eWxlWydmb250
U2l6ZSddID0gcHJvcGVydGllc1snZm9udFNpemUnXTsKICAgICAgICAgICAgdmFyIHZhbHVlID0g
dGVzdERpdi5zdHlsZVsnZm9udCddOwogICAgICAgIH0KICAgIDwvc2NyaXB0PgogICAgPC9oZWFk
PgogICAgPGJvZHkgb25sb2FkPSJ0ZXN0KCk7Ij4KICAgICAgICA8ZGl2IGlkPSJ0ZXN0Ij48YSBo
cmVmPSIjIiBvbmNsaWNrPSJ0ZXN0KCk7Ij5DbGljayBoZXJlPC9hPjwvZGl2PgogICAgPC9ib2R5
Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181528</attachid>
            <date>2013-01-07 10:46:04 -0800</date>
            <delta_ts>2013-01-07 11:56:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88866-20130107154306.patch</filename>
            <type>text/plain</type>
            <size>13088</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4OTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFlMWE4MTZjN2UwNzEy
YzAxYWI5M2I5MDM0YjQ3NDgwNGExOTUzMS4uY2FmNTEyMjllMzM1OGEwZmQ4YzQ4NmViYjU4NWJh
MzBiYTdiZGUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAxLTA3ICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEIGluIFN0eWxlUHJvcGVydHlTZXQ6OmZvbnRWYWx1ZSB3aGVuIGFjY2Vzc2luZyBmb250IHN0
eWxlIHByb3BlcnR5IHRocm91Z2ggSlMgYWZ0ZXIgc2V0dGluZyBzdHlsZSBmb250IHNpemUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODg2NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0eWxlUHJvcGVy
dHlTZXQ6OmZvbnRWYWx1ZSBhbHdheXMgYXNzdW1lZCB0aGF0IGl0IHdhcyBjYWxsZWQgdXNpbmcK
KyAgICAgICAgc3R5bGUuZm9udCBhZnRlciBhIHN1YnNlcXVlbnQgY2FsbCB3aGljaCBzZXQgdGhl
IHNob3J0aGFuZCBmb250LiBUaGUKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEIGFzc3VtZWQg
dGhhdCBhbGwgbG9uZ2hhbmRzIG9mIHRoZSBmb250IHNob3J0aGFuZCBub3QKKyAgICAgICAgc2V0
IGJ5IHRoZSBzaG9ydGhhbmQgaXRzZWxmIHdlcmUgc2V0IHRvIGluaXRpYWwuIFdoaWxlIGl0J3Mg
dHJ1ZSB3aGVuCisgICAgICAgIHdlIHNldCB0aGUgZm9udCBzaG9ydGhhbmQgKGkuZSBhbGwgbG9u
Z2hhbmRzIGFyZSBzZXQgdG8gaW1wbGljaXQgaW5pdGlhbCkKKyAgICAgICAgaXQgaXMgbm90IHRy
dWUgd2hlbiB5b3Ugc2V0IHRoZSBsb25naGFuZHMgaW5kaXZpZHVhbGx5LiBGb3IgZXhhbXBsZSBz
ZXR0aW5nCisgICAgICAgIGZvbnQtc2l6ZSB3aWxsIG5vdCBzZXQgb3RoZXIgZm9udCBwcm9wZXJ0
aWVzIHRvIGluaXRpYWwuIEl0IGlzIHRoZSBiZWhhdmlvciBvZiBhbGwKKyAgICAgICAgb3RoZXIg
c2hvcnRoYW5kcyBpbiBvZiBXZWJLaXQuIFdoZW4gcmVjb25zdHJ1Y3RpbmcgdGhlIHNob3J0aGFu
ZCBvdGhlcgorICAgICAgICBwcm9wZXJ0aWVzIHRlc3RzIHdoZXRoZXIgdGhlIHZhbHVlIG9mIGVh
Y2ggbG9uZ2hhbmRzIGlzIGluaXRpYWwgb3Igbm90CisgICAgICAgIChpZiBub3QgdGhlbiB3ZSBv
bWl0IHRoZSB2YWx1ZSwgYXMgd2Ugc2hvdWxkIGFsd2F5cyBjb25zdHJ1Y3QgdGhlCisgICAgICAg
IHNob3J0ZXN0IHNob3J0aGFuZCBwb3NzaWJsZSkgb3IgaWYgdGhlIHZhbHVlIGlzIHNldCBvciBu
b3QgKGlmIHNldCB0aGVuCisgICAgICAgIHdlIGluY2x1ZGUgaXQgaW4gdGhlIHNob3J0aGFuZCBp
ZiBub3QgdGhlbiB3ZSBvbWl0IGl0KS4gVGhlIGNvbW1lbnQKKyAgICAgICAgcmVtb3ZlZCB3YXMg
YWxzbyB0YWxraW5nIGFib3V0IGludmFsaWQgZm9udCBwcm9wZXJ0eSBwb3RlbnRpYWxseSBidWls
dAorICAgICAgICBieSBmb250VmFsdWUoKS4gU28gZmFyIGFwcGVuZEZvbnRMb25naGFuZFZhbHVl
SWZFeHBsaWNpdCB3aWxsIGFsd2F5cworICAgICAgICBjb25zdHJ1Y3QgYSB2YWxpZCB2YWx1ZSBh
dCBpdCB0YWtlcyBjYXJlIG9mIGFkZGluZyAnICcgb3IgJy8nIHdoZW4KKyAgICAgICAgbmVlZGVk
LCBzbyB0aGUgcmV0dXJuIHZhbHVlIGlzIHBhcnNhYmxlIGFuZCBjb3JyZWN0LgorCisgICAgICAg
IFRlc3Q6IGZhc3QvY3NzL2ZvbnQtc2hvcnRoYW5kLWZyb20tbG9uZ2hhbmRzLmh0bWwKKworICAg
ICAgICAqIGNzcy9TdHlsZVByb3BlcnR5U2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UHJvcGVydHlTZXQ6OmFwcGVuZEZvbnRMb25naGFuZFZhbHVlSWZFeHBsaWNpdCk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0Ojpmb250VmFsdWUpOgorICAgICAgICAqIGNzcy9T
dHlsZVByb3BlcnR5U2V0Lmg6CisKIDIwMTMtMDEtMDcgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIENhbm5vdCBjb21waWxlIHdpdGggRU5BQkxFX1NIQURPV19E
T009MCBhbmQgRU5BQkxFX1NUWUxFX1NDT1BFRD0xCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9w
ZXJ0eVNldC5jcHAKaW5kZXggNDI4MDc4OTE4ZGE4YjgyOTE1NTFiMTQzNDA3MjdkYWI0ZWFmZWI3
OS4uNWYxY2E4YTZlMTQ4ZTQ5YzlhN2E1YWI5ZjE2Y2MwNDRmYjEyMjU3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcApAQCAtMjI1LDE1ICsyMjUsMTUgQEAgU3RyaW5n
IFN0eWxlUHJvcGVydHlTZXQ6OmJvcmRlclNwYWNpbmdWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5
U2hvcnRoYW5kJiBzaG9ydGgKICAgICByZXR1cm4gaG9yaXpvbnRhbFZhbHVlQ1NTVGV4dCArICcg
JyArIHZlcnRpY2FsVmFsdWVDU1NUZXh0OwogfQogCi1ib29sIFN0eWxlUHJvcGVydHlTZXQ6OmFw
cGVuZEZvbnRMb25naGFuZFZhbHVlSWZFeHBsaWNpdChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQs
IFN0cmluZ0J1aWxkZXImIHJlc3VsdCwgU3RyaW5nJiBjb21tb25WYWx1ZSkgY29uc3QKK3ZvaWQg
U3R5bGVQcm9wZXJ0eVNldDo6YXBwZW5kRm9udExvbmdoYW5kVmFsdWVJZkV4cGxpY2l0KENTU1By
b3BlcnR5SUQgcHJvcGVydHlJRCwgU3RyaW5nQnVpbGRlciYgcmVzdWx0LCBTdHJpbmcmIGNvbW1v
blZhbHVlKSBjb25zdAogewogICAgIGludCBmb3VuZFByb3BlcnR5SW5kZXggPSBmaW5kUHJvcGVy
dHlJbmRleChwcm9wZXJ0eUlEKTsKICAgICBpZiAoZm91bmRQcm9wZXJ0eUluZGV4ID09IC0xKQot
ICAgICAgICByZXR1cm4gZmFsc2U7IC8vIEFsbCBsb25naGFuZHMgbXVzdCBoYXZlIGF0IGxlYXN0
IGltcGxpY2l0IHZhbHVlcyBpZiAiZm9udCIgaXMgc3BlY2lmaWVkLgorICAgICAgICByZXR1cm47
IC8vIEFsbCBsb25naGFuZHMgbXVzdCBoYXZlIGF0IGxlYXN0IGltcGxpY2l0IHZhbHVlcyBpZiAi
Zm9udCIgaXMgc3BlY2lmaWVkLgogCiAgICAgaWYgKHByb3BlcnR5QXQoZm91bmRQcm9wZXJ0eUlu
ZGV4KS5pc0ltcGxpY2l0KCkpIHsKICAgICAgICAgY29tbW9uVmFsdWUgPSBTdHJpbmcoKTsKLSAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBjaGFyIHBy
ZWZpeCA9ICdcMCc7CkBAIC0yNTksNyArMjU5LDcgQEAgYm9vbCBTdHlsZVByb3BlcnR5U2V0Ojph
cHBlbmRGb250TG9uZ2hhbmRWYWx1ZUlmRXhwbGljaXQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUkK
ICAgICBpZiAoIWNvbW1vblZhbHVlLmlzTnVsbCgpICYmIGNvbW1vblZhbHVlICE9IHZhbHVlKQog
ICAgICAgICBjb21tb25WYWx1ZSA9IFN0cmluZygpOwogCi0gICAgcmV0dXJuIHRydWU7CisgICAg
cmV0dXJuOwogfQogCiBTdHJpbmcgU3R5bGVQcm9wZXJ0eVNldDo6Zm9udFZhbHVlKCkgY29uc3QK
QEAgLTI3NCwyMSArMjc0LDE0IEBAIFN0cmluZyBTdHlsZVByb3BlcnR5U2V0Ojpmb250VmFsdWUo
KSBjb25zdAogCiAgICAgU3RyaW5nIGNvbW1vblZhbHVlID0gZm9udFNpemVQcm9wZXJ0eS52YWx1
ZSgpLT5jc3NUZXh0KCk7CiAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7Ci0gICAgYm9vbCBzdWNj
ZXNzID0gdHJ1ZTsKLSAgICBzdWNjZXNzICY9IGFwcGVuZEZvbnRMb25naGFuZFZhbHVlSWZFeHBs
aWNpdChDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgcmVzdWx0LCBjb21tb25WYWx1ZSk7Ci0gICAgc3Vj
Y2VzcyAmPSBhcHBlbmRGb250TG9uZ2hhbmRWYWx1ZUlmRXhwbGljaXQoQ1NTUHJvcGVydHlGb250
VmFyaWFudCwgcmVzdWx0LCBjb21tb25WYWx1ZSk7Ci0gICAgc3VjY2VzcyAmPSBhcHBlbmRGb250
TG9uZ2hhbmRWYWx1ZUlmRXhwbGljaXQoQ1NTUHJvcGVydHlGb250V2VpZ2h0LCByZXN1bHQsIGNv
bW1vblZhbHVlKTsKKyAgICBhcHBlbmRGb250TG9uZ2hhbmRWYWx1ZUlmRXhwbGljaXQoQ1NTUHJv
cGVydHlGb250U3R5bGUsIHJlc3VsdCwgY29tbW9uVmFsdWUpOworICAgIGFwcGVuZEZvbnRMb25n
aGFuZFZhbHVlSWZFeHBsaWNpdChDU1NQcm9wZXJ0eUZvbnRWYXJpYW50LCByZXN1bHQsIGNvbW1v
blZhbHVlKTsKKyAgICBhcHBlbmRGb250TG9uZ2hhbmRWYWx1ZUlmRXhwbGljaXQoQ1NTUHJvcGVy
dHlGb250V2VpZ2h0LCByZXN1bHQsIGNvbW1vblZhbHVlKTsKICAgICBpZiAoIXJlc3VsdC5pc0Vt
cHR5KCkpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAnKTsKICAgICByZXN1bHQuYXBwZW5kKGZv
bnRTaXplUHJvcGVydHkudmFsdWUoKS0+Y3NzVGV4dCgpKTsKLSAgICBzdWNjZXNzICY9IGFwcGVu
ZEZvbnRMb25naGFuZFZhbHVlSWZFeHBsaWNpdChDU1NQcm9wZXJ0eUxpbmVIZWlnaHQsIHJlc3Vs
dCwgY29tbW9uVmFsdWUpOwotICAgIHN1Y2Nlc3MgJj0gYXBwZW5kRm9udExvbmdoYW5kVmFsdWVJ
ZkV4cGxpY2l0KENTU1Byb3BlcnR5Rm9udEZhbWlseSwgcmVzdWx0LCBjb21tb25WYWx1ZSk7Ci0g
ICAgaWYgKCFzdWNjZXNzKSB7Ci0gICAgICAgIC8vIEFuIGludmFsaWQgImZvbnQiIHZhbHVlIGhh
cyBiZWVuIGJ1aWx0IChzaG91bGQgbmV2ZXIgaGFwcGVuLCBhcyBhdCBsZWFzdCBpbXBsaWNpdCB2
YWx1ZXMKLSAgICAgICAgLy8gZm9yIG1hbmRhdG9yeSBsb25naGFuZHMgYXJlIGFsd2F5cyBmb3Vu
ZCBpbiB0aGUgc3R5bGUpLCByZXBvcnQgZW1wdHkgdmFsdWUgaW5zdGVhZC4KLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotICAgIH0K
KyAgICBhcHBlbmRGb250TG9uZ2hhbmRWYWx1ZUlmRXhwbGljaXQoQ1NTUHJvcGVydHlMaW5lSGVp
Z2h0LCByZXN1bHQsIGNvbW1vblZhbHVlKTsKKyAgICBhcHBlbmRGb250TG9uZ2hhbmRWYWx1ZUlm
RXhwbGljaXQoQ1NTUHJvcGVydHlGb250RmFtaWx5LCByZXN1bHQsIGNvbW1vblZhbHVlKTsKICAg
ICBpZiAoaXNJbml0aWFsT3JJbmhlcml0KGNvbW1vblZhbHVlKSkKICAgICAgICAgcmV0dXJuIGNv
bW1vblZhbHVlOwogICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVQcm9wZXJ0eVNldC5oCmluZGV4IDQ1NmY3ZWYyZTQ4ZTYxNmUwZGFmMWYyMzg1NjIyMDQ2
NWY5MzE0MjYuLjQwZWFiMWQxMzcwNjcyODc0YmY3MWQwMmE3ZGU3NGRhN2VlMjE5Y2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuaApAQCAtMTk3LDcgKzE5Nyw3IEBAIHByaXZh
dGU6CiAgICAgU3RyaW5nIGdldDRWYWx1ZXMoY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYp
IGNvbnN0OwogICAgIFN0cmluZyBib3JkZXJTcGFjaW5nVmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0
eVNob3J0aGFuZCYpIGNvbnN0OwogICAgIFN0cmluZyBmb250VmFsdWUoKSBjb25zdDsKLSAgICBi
b29sIGFwcGVuZEZvbnRMb25naGFuZFZhbHVlSWZFeHBsaWNpdChDU1NQcm9wZXJ0eUlELCBTdHJp
bmdCdWlsZGVyJiByZXN1bHQsIFN0cmluZyYgdmFsdWUpIGNvbnN0OworICAgIHZvaWQgYXBwZW5k
Rm9udExvbmdoYW5kVmFsdWVJZkV4cGxpY2l0KENTU1Byb3BlcnR5SUQsIFN0cmluZ0J1aWxkZXIm
IHJlc3VsdCwgU3RyaW5nJiB2YWx1ZSkgY29uc3Q7CiAKICAgICBib29sIHJlbW92ZVNob3J0aGFu
ZFByb3BlcnR5KENTU1Byb3BlcnR5SUQpOwogICAgIGJvb2wgcHJvcGVydHlNYXRjaGVzKGNvbnN0
IFByb3BlcnR5UmVmZXJlbmNlJikgY29uc3Q7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTI0ZmY4YTRhY2I3YTE2YTMxYTJm
NDI2OWM4NmJlM2EwMzBhYjU0OS4uNDA0YzdhNTUzN2FmMDk0ZTY2NmU4ZGQwYWZhZjNmZTdhZTNl
NzRhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAxLTA3ICBBbGV4aXMgTWVuYXJkICA8
YWxleGlzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEIGluIFN0eWxl
UHJvcGVydHlTZXQ6OmZvbnRWYWx1ZSB3aGVuIGFjY2Vzc2luZyBmb250IHN0eWxlIHByb3BlcnR5
IHRocm91Z2ggSlMgYWZ0ZXIgc2V0dGluZyBzdHlsZSBmb250IHNpemUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODg2NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyB0byBjb3ZlciB0aGUg
YnVnLgorCisgICAgICAgICogZmFzdC9jc3MvZm9udC1zaG9ydGhhbmQtZnJvbS1sb25naGFuZHMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9mb250LXNob3J0aGFuZC1m
cm9tLWxvbmdoYW5kcy5odG1sOiBBZGRlZC4KKwogMjAxMy0wMS0wNyAgQWxsYW4gU2FuZGZlbGQg
SmVuc2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KIAogICAgICAgICBVbnNraXAgbm93IHBh
c3NpbmcgcnVieSB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnQt
c2hvcnRoYW5kLWZyb20tbG9uZ2hhbmRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2ZvbnQtc2hvcnRoYW5kLWZyb20tbG9uZ2hhbmRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jZDExZGY0MTQzZWIyNDUwOTFiOTEyYmEyMTdhZjMwZWRkOGZlN2M4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udC1zaG9ydGhhbmQtZnJvbS1sb25naGFuZHMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDggQEAKK1Rlc3QgdGhlIHBhcnNpbmcgYW5kIHRoZSBj
b21wdXRlZCBzdHlsZSB2YWx1ZXMgb2YgdGhlIHRyYW5zaXRpb25zIHByb3BlcnRpZXMuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN0eWxlLmZvbnQgaXMgJzIwcHgnCitQ
QVNTIGNvbXB1dGVkU3R5bGUuZm9udCBpcyAnbm9ybWFsIG5vcm1hbCBub3JtYWwgMjBweC9ub3Jt
YWwgVGltZXMnCitQQVNTIGNvbXB1dGVkU3R5bGUuZm9udFNpemUgaXMgJzIwcHgnCitQQVNTIGNo
ZWNrRm9udFN0eWxlVmFsdWUoKSBpcyB0cnVlCitQQVNTIHN0eWxlLmZvbnQgaXMgJzIwcHggc2Fu
cy1zZXJpZicKK1BBU1MgY29tcHV0ZWRTdHlsZS5mb250IGlzICdub3JtYWwgbm9ybWFsIG5vcm1h
bCAyMHB4L25vcm1hbCBzYW5zLXNlcmlmJworUEFTUyBjb21wdXRlZFN0eWxlLmZvbnRGYW1pbHkg
aXMgJ3NhbnMtc2VyaWYnCitQQVNTIGNoZWNrRm9udFN0eWxlVmFsdWUoKSBpcyB0cnVlCitQQVNT
IHN0eWxlLmZvbnQgaXMgJzIwcHggc2Fucy1zZXJpZicKK1BBU1MgY29tcHV0ZWRTdHlsZS5mb250
IGlzICdub3JtYWwgbm9ybWFsIG5vcm1hbCAyMHB4L25vcm1hbCBzYW5zLXNlcmlmJworUEFTUyBj
b21wdXRlZFN0eWxlLmZvbnRGYW1pbHkgaXMgJ3NhbnMtc2VyaWYnCitQQVNTIGNoZWNrRm9udFN0
eWxlVmFsdWUoKSBpcyB0cnVlCitQQVNTIHN0eWxlLmZvbnQgaXMgJ2l0YWxpYyAyMHB4IHNhbnMt
c2VyaWYnCitQQVNTIGNvbXB1dGVkU3R5bGUuZm9udCBpcyAnaXRhbGljIG5vcm1hbCBub3JtYWwg
MjBweC9ub3JtYWwgc2Fucy1zZXJpZicKK1BBU1MgY29tcHV0ZWRTdHlsZS5mb250U3R5bGUgaXMg
J2l0YWxpYycKK1BBU1MgY2hlY2tGb250U3R5bGVWYWx1ZSgpIGlzIHRydWUKK1BBU1Mgc3R5bGUu
Zm9udCBpcyAnaXRhbGljIHNtYWxsLWNhcHMgMjBweCBzYW5zLXNlcmlmJworUEFTUyBjb21wdXRl
ZFN0eWxlLmZvbnQgaXMgJ2l0YWxpYyBzbWFsbC1jYXBzIG5vcm1hbCAyMHB4L25vcm1hbCBzYW5z
LXNlcmlmJworUEFTUyBjb21wdXRlZFN0eWxlLmZvbnRWYXJpYW50IGlzICdzbWFsbC1jYXBzJwor
UEFTUyBjaGVja0ZvbnRTdHlsZVZhbHVlKCkgaXMgdHJ1ZQorUEFTUyBzdHlsZS5mb250IGlzICdp
dGFsaWMgc21hbGwtY2FwcyBib2xkIDIwcHggc2Fucy1zZXJpZicKK1BBU1MgY29tcHV0ZWRTdHls
ZS5mb250IGlzICdpdGFsaWMgc21hbGwtY2FwcyBib2xkIDIwcHgvbm9ybWFsIHNhbnMtc2VyaWYn
CitQQVNTIGNvbXB1dGVkU3R5bGUuZm9udFdlaWdodCBpcyAnYm9sZCcKK1BBU1MgY2hlY2tGb250
U3R5bGVWYWx1ZSgpIGlzIHRydWUKK1BBU1Mgc3R5bGUuZm9udCBpcyAnaXRhbGljIHNtYWxsLWNh
cHMgYm9sZCAyMHB4LzQwcHggc2Fucy1zZXJpZicKK1BBU1MgY29tcHV0ZWRTdHlsZS5mb250IGlz
ICdpdGFsaWMgc21hbGwtY2FwcyBib2xkIDIwcHgvNDBweCBzYW5zLXNlcmlmJworUEFTUyBjb21w
dXRlZFN0eWxlLmxpbmVIZWlnaHQgaXMgJzQwcHgnCitQQVNTIGNoZWNrRm9udFN0eWxlVmFsdWUo
KSBpcyB0cnVlCitQQVNTIHN0eWxlLmZvbnQgaXMgJycKK1BBU1MgY29tcHV0ZWRTdHlsZS5mb250
IGlzICdub3JtYWwgbm9ybWFsIG5vcm1hbCAxNnB4L25vcm1hbCBUaW1lcycKK1BBU1MgY2hlY2tG
b250U3R5bGVWYWx1ZSgpIGlzIHRydWUKK1BBU1Mgc3R5bGUuZm9udCBpcyAnJworUEFTUyBjb21w
dXRlZFN0eWxlLmZvbnQgaXMgJ25vcm1hbCBub3JtYWwgYm9sZCAxNnB4L25vcm1hbCBUaW1lcycK
K1BBU1MgY29tcHV0ZWRTdHlsZS5mb250V2VpZ2h0IGlzICdib2xkJworUEFTUyBjaGVja0ZvbnRT
dHlsZVZhbHVlKCkgaXMgdHJ1ZQorUEFTUyBzdHlsZS5mb250IGlzICdib2xkIDQwcHgnCitQQVNT
IGNvbXB1dGVkU3R5bGUuZm9udCBpcyAnbm9ybWFsIG5vcm1hbCBib2xkIDQwcHgvbm9ybWFsIFRp
bWVzJworUEFTUyBjb21wdXRlZFN0eWxlLmZvbnRTaXplIGlzICc0MHB4JworUEFTUyBjaGVja0Zv
bnRTdHlsZVZhbHVlKCkgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnQt
c2hvcnRoYW5kLWZyb20tbG9uZ2hhbmRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250
LXNob3J0aGFuZC1mcm9tLWxvbmdoYW5kcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmNTdkNjk4Y2VmZjdl
NWQ4NjJjYTYwZGRmMTZiOGI2ZWUxYmNmNzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9mb250LXNob3J0aGFuZC1mcm9tLWxvbmdoYW5kcy5odG1sCkBAIC0wLDAgKzEs
OTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgdGhlIHBhcnNpbmcgYW5kIHRoZSBjb21wdXRlZCBz
dHlsZSB2YWx1ZXMgb2YgdGhlIHRyYW5zaXRpb25zIHByb3BlcnRpZXMuIikKKwordmFyIHRlc3RD
b250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQodGVzdENvbnRhaW5lcik7CisKK3Rlc3RDb250YWluZXIuaW5uZXJIVE1MID0g
JzxkaXYgaWQ9InRlc3QiPmhlbGxvPC9kaXY+JzsKKworZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0Jyk7CitzdHlsZSA9IGUuc3R5bGU7Citjb21wdXRlZFN0eWxlID0gd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoZSwgbnVsbCk7CisKKy8vIFRoaXMgZnVuY3Rpb24gY2hlY2sgdGhlIHJl
dHVybiB2YWx1ZSBvZiBzdHlsZS5mb250IGFuZCB2ZXJpZnkgV2ViS2l0IGNhbiBwYXJzZSBpdC4K
K2Z1bmN0aW9uIGNoZWNrRm9udFN0eWxlVmFsdWUoKSB7CisgICAgdmFyIGJlZm9yZSA9IGUuc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udCcpOworICAgIGUuc3R5bGUuZm9udCA9ICdub25lJzsK
KyAgICBlLnN0eWxlLmZvbnQgPSBiZWZvcmU7CisgICAgcmV0dXJuIChlLnN0eWxlLmdldFByb3Bl
cnR5VmFsdWUoJ2ZvbnQnKSA9PSBiZWZvcmUpOworfQorCitzdHlsZS5mb250U2l6ZSA9ICIyMHB4
IjsKK3Nob3VsZEJlKCJzdHlsZS5mb250IiwgIicyMHB4JyIpOworc2hvdWxkQmUoImNvbXB1dGVk
U3R5bGUuZm9udCIsICInbm9ybWFsIG5vcm1hbCBub3JtYWwgMjBweC9ub3JtYWwgVGltZXMnIik7
CitzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS5mb250U2l6ZSIsICInMjBweCciKTsKK3Nob3VsZEJl
KCJjaGVja0ZvbnRTdHlsZVZhbHVlKCkiLCAidHJ1ZSIpOworCitzdHlsZS5mb250RmFtaWx5ID0g
InNhbnMtc2VyaWYiOworc2hvdWxkQmUoInN0eWxlLmZvbnQiLCAiJzIwcHggc2Fucy1zZXJpZici
KTsKK3Nob3VsZEJlKCJjb21wdXRlZFN0eWxlLmZvbnQiLCAiJ25vcm1hbCBub3JtYWwgbm9ybWFs
IDIwcHgvbm9ybWFsIHNhbnMtc2VyaWYnIik7CitzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS5mb250
RmFtaWx5IiwgIidzYW5zLXNlcmlmJyIpOworc2hvdWxkQmUoImNoZWNrRm9udFN0eWxlVmFsdWUo
KSIsICJ0cnVlIik7CisKK3N0eWxlLmZvbnRGYW1pbHkgPSAic2Fucy1zZXJpZiI7CitzaG91bGRC
ZSgic3R5bGUuZm9udCIsICInMjBweCBzYW5zLXNlcmlmJyIpOworc2hvdWxkQmUoImNvbXB1dGVk
U3R5bGUuZm9udCIsICInbm9ybWFsIG5vcm1hbCBub3JtYWwgMjBweC9ub3JtYWwgc2Fucy1zZXJp
ZiciKTsKK3Nob3VsZEJlKCJjb21wdXRlZFN0eWxlLmZvbnRGYW1pbHkiLCAiJ3NhbnMtc2VyaWYn
Iik7CitzaG91bGRCZSgiY2hlY2tGb250U3R5bGVWYWx1ZSgpIiwgInRydWUiKTsKKworc3R5bGUu
Zm9udFN0eWxlID0gIml0YWxpYyI7CitzaG91bGRCZSgic3R5bGUuZm9udCIsICInaXRhbGljIDIw
cHggc2Fucy1zZXJpZiciKTsKK3Nob3VsZEJlKCJjb21wdXRlZFN0eWxlLmZvbnQiLCAiJ2l0YWxp
YyBub3JtYWwgbm9ybWFsIDIwcHgvbm9ybWFsIHNhbnMtc2VyaWYnIik7CitzaG91bGRCZSgiY29t
cHV0ZWRTdHlsZS5mb250U3R5bGUiLCAiJ2l0YWxpYyciKTsKK3Nob3VsZEJlKCJjaGVja0ZvbnRT
dHlsZVZhbHVlKCkiLCAidHJ1ZSIpOworCitzdHlsZS5mb250VmFyaWFudCA9ICJzbWFsbC1jYXBz
IjsKK3Nob3VsZEJlKCJzdHlsZS5mb250IiwgIidpdGFsaWMgc21hbGwtY2FwcyAyMHB4IHNhbnMt
c2VyaWYnIik7CitzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS5mb250IiwgIidpdGFsaWMgc21hbGwt
Y2FwcyBub3JtYWwgMjBweC9ub3JtYWwgc2Fucy1zZXJpZiciKTsKK3Nob3VsZEJlKCJjb21wdXRl
ZFN0eWxlLmZvbnRWYXJpYW50IiwgIidzbWFsbC1jYXBzJyIpOworc2hvdWxkQmUoImNoZWNrRm9u
dFN0eWxlVmFsdWUoKSIsICJ0cnVlIik7CisKK3N0eWxlLmZvbnRXZWlnaHQgPSAiYm9sZCI7Citz
aG91bGRCZSgic3R5bGUuZm9udCIsICInaXRhbGljIHNtYWxsLWNhcHMgYm9sZCAyMHB4IHNhbnMt
c2VyaWYnIik7CitzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS5mb250IiwgIidpdGFsaWMgc21hbGwt
Y2FwcyBib2xkIDIwcHgvbm9ybWFsIHNhbnMtc2VyaWYnIik7CitzaG91bGRCZSgiY29tcHV0ZWRT
dHlsZS5mb250V2VpZ2h0IiwgIidib2xkJyIpOworc2hvdWxkQmUoImNoZWNrRm9udFN0eWxlVmFs
dWUoKSIsICJ0cnVlIik7CisKK3N0eWxlLmxpbmVIZWlnaHQgPSAiNDBweCI7CitzaG91bGRCZSgi
c3R5bGUuZm9udCIsICInaXRhbGljIHNtYWxsLWNhcHMgYm9sZCAyMHB4LzQwcHggc2Fucy1zZXJp
ZiciKTsKK3Nob3VsZEJlKCJjb21wdXRlZFN0eWxlLmZvbnQiLCAiJ2l0YWxpYyBzbWFsbC1jYXBz
IGJvbGQgMjBweC80MHB4IHNhbnMtc2VyaWYnIik7CitzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS5s
aW5lSGVpZ2h0IiwgIic0MHB4JyIpOworc2hvdWxkQmUoImNoZWNrRm9udFN0eWxlVmFsdWUoKSIs
ICJ0cnVlIik7CisKK3N0eWxlLmZvbnQgPSAiIjsKK3Nob3VsZEJlKCJzdHlsZS5mb250IiwgIicn
Iik7CitzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS5mb250IiwgIidub3JtYWwgbm9ybWFsIG5vcm1h
bCAxNnB4L25vcm1hbCBUaW1lcyciKTsKK3Nob3VsZEJlKCJjaGVja0ZvbnRTdHlsZVZhbHVlKCki
LCAidHJ1ZSIpOworCitzdHlsZS5mb250V2VpZ2h0ID0gImJvbGQiOworLy8gSXQgaXMgbm9ybWFs
IHRvIHJldHVybiBudWxsIGFzIHRoZSBmb250LXNpemUgaXMgbWFuZGF0b3J5IHRvIGJ1aWxkIHRo
ZSBzaG9ydGhhbmQuCitzaG91bGRCZSgic3R5bGUuZm9udCIsICInJyIpOworc2hvdWxkQmUoImNv
bXB1dGVkU3R5bGUuZm9udCIsICInbm9ybWFsIG5vcm1hbCBib2xkIDE2cHgvbm9ybWFsIFRpbWVz
JyIpOworc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUuZm9udFdlaWdodCIsICInYm9sZCciKTsKK3No
b3VsZEJlKCJjaGVja0ZvbnRTdHlsZVZhbHVlKCkiLCAidHJ1ZSIpOworCitzdHlsZS5mb250U2l6
ZSA9ICI0MHB4IjsKK3N0eWxlLmZvbnRXZWlnaHQgPSAiYm9sZCI7CitzaG91bGRCZSgic3R5bGUu
Zm9udCIsICInYm9sZCA0MHB4JyIpOworc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUuZm9udCIsICIn
bm9ybWFsIG5vcm1hbCBib2xkIDQwcHgvbm9ybWFsIFRpbWVzJyIpOworc2hvdWxkQmUoImNvbXB1
dGVkU3R5bGUuZm9udFNpemUiLCAiJzQwcHgnIik7CitzaG91bGRCZSgiY2hlY2tGb250U3R5bGVW
YWx1ZSgpIiwgInRydWUiKTsKKworZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXN0Q29udGFp
bmVyKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181540</attachid>
            <date>2013-01-07 11:56:44 -0800</date>
            <delta_ts>2013-01-09 09:14:53 -0800</delta_ts>
            <desc>Attempt to fix the test in cross-platform way</desc>
            <filename>bug-88866-20130107165347.patch</filename>
            <type>text/plain</type>
            <size>12767</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4OTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFlMWE4MTZjN2UwNzEy
YzAxYWI5M2I5MDM0YjQ3NDgwNGExOTUzMS4uY2FmNTEyMjllMzM1OGEwZmQ4YzQ4NmViYjU4NWJh
MzBiYTdiZGUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAxLTA3ICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEIGluIFN0eWxlUHJvcGVydHlTZXQ6OmZvbnRWYWx1ZSB3aGVuIGFjY2Vzc2luZyBmb250IHN0
eWxlIHByb3BlcnR5IHRocm91Z2ggSlMgYWZ0ZXIgc2V0dGluZyBzdHlsZSBmb250IHNpemUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODg2NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0eWxlUHJvcGVy
dHlTZXQ6OmZvbnRWYWx1ZSBhbHdheXMgYXNzdW1lZCB0aGF0IGl0IHdhcyBjYWxsZWQgdXNpbmcK
KyAgICAgICAgc3R5bGUuZm9udCBhZnRlciBhIHN1YnNlcXVlbnQgY2FsbCB3aGljaCBzZXQgdGhl
IHNob3J0aGFuZCBmb250LiBUaGUKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEIGFzc3VtZWQg
dGhhdCBhbGwgbG9uZ2hhbmRzIG9mIHRoZSBmb250IHNob3J0aGFuZCBub3QKKyAgICAgICAgc2V0
IGJ5IHRoZSBzaG9ydGhhbmQgaXRzZWxmIHdlcmUgc2V0IHRvIGluaXRpYWwuIFdoaWxlIGl0J3Mg
dHJ1ZSB3aGVuCisgICAgICAgIHdlIHNldCB0aGUgZm9udCBzaG9ydGhhbmQgKGkuZSBhbGwgbG9u
Z2hhbmRzIGFyZSBzZXQgdG8gaW1wbGljaXQgaW5pdGlhbCkKKyAgICAgICAgaXQgaXMgbm90IHRy
dWUgd2hlbiB5b3Ugc2V0IHRoZSBsb25naGFuZHMgaW5kaXZpZHVhbGx5LiBGb3IgZXhhbXBsZSBz
ZXR0aW5nCisgICAgICAgIGZvbnQtc2l6ZSB3aWxsIG5vdCBzZXQgb3RoZXIgZm9udCBwcm9wZXJ0
aWVzIHRvIGluaXRpYWwuIEl0IGlzIHRoZSBiZWhhdmlvciBvZiBhbGwKKyAgICAgICAgb3RoZXIg
c2hvcnRoYW5kcyBpbiBvZiBXZWJLaXQuIFdoZW4gcmVjb25zdHJ1Y3RpbmcgdGhlIHNob3J0aGFu
ZCBvdGhlcgorICAgICAgICBwcm9wZXJ0aWVzIHRlc3RzIHdoZXRoZXIgdGhlIHZhbHVlIG9mIGVh
Y2ggbG9uZ2hhbmRzIGlzIGluaXRpYWwgb3Igbm90CisgICAgICAgIChpZiBub3QgdGhlbiB3ZSBv
bWl0IHRoZSB2YWx1ZSwgYXMgd2Ugc2hvdWxkIGFsd2F5cyBjb25zdHJ1Y3QgdGhlCisgICAgICAg
IHNob3J0ZXN0IHNob3J0aGFuZCBwb3NzaWJsZSkgb3IgaWYgdGhlIHZhbHVlIGlzIHNldCBvciBu
b3QgKGlmIHNldCB0aGVuCisgICAgICAgIHdlIGluY2x1ZGUgaXQgaW4gdGhlIHNob3J0aGFuZCBp
ZiBub3QgdGhlbiB3ZSBvbWl0IGl0KS4gVGhlIGNvbW1lbnQKKyAgICAgICAgcmVtb3ZlZCB3YXMg
YWxzbyB0YWxraW5nIGFib3V0IGludmFsaWQgZm9udCBwcm9wZXJ0eSBwb3RlbnRpYWxseSBidWls
dAorICAgICAgICBieSBmb250VmFsdWUoKS4gU28gZmFyIGFwcGVuZEZvbnRMb25naGFuZFZhbHVl
SWZFeHBsaWNpdCB3aWxsIGFsd2F5cworICAgICAgICBjb25zdHJ1Y3QgYSB2YWxpZCB2YWx1ZSBh
dCBpdCB0YWtlcyBjYXJlIG9mIGFkZGluZyAnICcgb3IgJy8nIHdoZW4KKyAgICAgICAgbmVlZGVk
LCBzbyB0aGUgcmV0dXJuIHZhbHVlIGlzIHBhcnNhYmxlIGFuZCBjb3JyZWN0LgorCisgICAgICAg
IFRlc3Q6IGZhc3QvY3NzL2ZvbnQtc2hvcnRoYW5kLWZyb20tbG9uZ2hhbmRzLmh0bWwKKworICAg
ICAgICAqIGNzcy9TdHlsZVByb3BlcnR5U2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UHJvcGVydHlTZXQ6OmFwcGVuZEZvbnRMb25naGFuZFZhbHVlSWZFeHBsaWNpdCk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0Ojpmb250VmFsdWUpOgorICAgICAgICAqIGNzcy9T
dHlsZVByb3BlcnR5U2V0Lmg6CisKIDIwMTMtMDEtMDcgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIENhbm5vdCBjb21waWxlIHdpdGggRU5BQkxFX1NIQURPV19E
T009MCBhbmQgRU5BQkxFX1NUWUxFX1NDT1BFRD0xCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9w
ZXJ0eVNldC5jcHAKaW5kZXggNDI4MDc4OTE4ZGE4YjgyOTE1NTFiMTQzNDA3MjdkYWI0ZWFmZWI3
OS4uNWYxY2E4YTZlMTQ4ZTQ5YzlhN2E1YWI5ZjE2Y2MwNDRmYjEyMjU3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcApAQCAtMjI1LDE1ICsyMjUsMTUgQEAgU3RyaW5n
IFN0eWxlUHJvcGVydHlTZXQ6OmJvcmRlclNwYWNpbmdWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5
U2hvcnRoYW5kJiBzaG9ydGgKICAgICByZXR1cm4gaG9yaXpvbnRhbFZhbHVlQ1NTVGV4dCArICcg
JyArIHZlcnRpY2FsVmFsdWVDU1NUZXh0OwogfQogCi1ib29sIFN0eWxlUHJvcGVydHlTZXQ6OmFw
cGVuZEZvbnRMb25naGFuZFZhbHVlSWZFeHBsaWNpdChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQs
IFN0cmluZ0J1aWxkZXImIHJlc3VsdCwgU3RyaW5nJiBjb21tb25WYWx1ZSkgY29uc3QKK3ZvaWQg
U3R5bGVQcm9wZXJ0eVNldDo6YXBwZW5kRm9udExvbmdoYW5kVmFsdWVJZkV4cGxpY2l0KENTU1By
b3BlcnR5SUQgcHJvcGVydHlJRCwgU3RyaW5nQnVpbGRlciYgcmVzdWx0LCBTdHJpbmcmIGNvbW1v
blZhbHVlKSBjb25zdAogewogICAgIGludCBmb3VuZFByb3BlcnR5SW5kZXggPSBmaW5kUHJvcGVy
dHlJbmRleChwcm9wZXJ0eUlEKTsKICAgICBpZiAoZm91bmRQcm9wZXJ0eUluZGV4ID09IC0xKQot
ICAgICAgICByZXR1cm4gZmFsc2U7IC8vIEFsbCBsb25naGFuZHMgbXVzdCBoYXZlIGF0IGxlYXN0
IGltcGxpY2l0IHZhbHVlcyBpZiAiZm9udCIgaXMgc3BlY2lmaWVkLgorICAgICAgICByZXR1cm47
IC8vIEFsbCBsb25naGFuZHMgbXVzdCBoYXZlIGF0IGxlYXN0IGltcGxpY2l0IHZhbHVlcyBpZiAi
Zm9udCIgaXMgc3BlY2lmaWVkLgogCiAgICAgaWYgKHByb3BlcnR5QXQoZm91bmRQcm9wZXJ0eUlu
ZGV4KS5pc0ltcGxpY2l0KCkpIHsKICAgICAgICAgY29tbW9uVmFsdWUgPSBTdHJpbmcoKTsKLSAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBjaGFyIHBy
ZWZpeCA9ICdcMCc7CkBAIC0yNTksNyArMjU5LDcgQEAgYm9vbCBTdHlsZVByb3BlcnR5U2V0Ojph
cHBlbmRGb250TG9uZ2hhbmRWYWx1ZUlmRXhwbGljaXQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUkK
ICAgICBpZiAoIWNvbW1vblZhbHVlLmlzTnVsbCgpICYmIGNvbW1vblZhbHVlICE9IHZhbHVlKQog
ICAgICAgICBjb21tb25WYWx1ZSA9IFN0cmluZygpOwogCi0gICAgcmV0dXJuIHRydWU7CisgICAg
cmV0dXJuOwogfQogCiBTdHJpbmcgU3R5bGVQcm9wZXJ0eVNldDo6Zm9udFZhbHVlKCkgY29uc3QK
QEAgLTI3NCwyMSArMjc0LDE0IEBAIFN0cmluZyBTdHlsZVByb3BlcnR5U2V0Ojpmb250VmFsdWUo
KSBjb25zdAogCiAgICAgU3RyaW5nIGNvbW1vblZhbHVlID0gZm9udFNpemVQcm9wZXJ0eS52YWx1
ZSgpLT5jc3NUZXh0KCk7CiAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7Ci0gICAgYm9vbCBzdWNj
ZXNzID0gdHJ1ZTsKLSAgICBzdWNjZXNzICY9IGFwcGVuZEZvbnRMb25naGFuZFZhbHVlSWZFeHBs
aWNpdChDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgcmVzdWx0LCBjb21tb25WYWx1ZSk7Ci0gICAgc3Vj
Y2VzcyAmPSBhcHBlbmRGb250TG9uZ2hhbmRWYWx1ZUlmRXhwbGljaXQoQ1NTUHJvcGVydHlGb250
VmFyaWFudCwgcmVzdWx0LCBjb21tb25WYWx1ZSk7Ci0gICAgc3VjY2VzcyAmPSBhcHBlbmRGb250
TG9uZ2hhbmRWYWx1ZUlmRXhwbGljaXQoQ1NTUHJvcGVydHlGb250V2VpZ2h0LCByZXN1bHQsIGNv
bW1vblZhbHVlKTsKKyAgICBhcHBlbmRGb250TG9uZ2hhbmRWYWx1ZUlmRXhwbGljaXQoQ1NTUHJv
cGVydHlGb250U3R5bGUsIHJlc3VsdCwgY29tbW9uVmFsdWUpOworICAgIGFwcGVuZEZvbnRMb25n
aGFuZFZhbHVlSWZFeHBsaWNpdChDU1NQcm9wZXJ0eUZvbnRWYXJpYW50LCByZXN1bHQsIGNvbW1v
blZhbHVlKTsKKyAgICBhcHBlbmRGb250TG9uZ2hhbmRWYWx1ZUlmRXhwbGljaXQoQ1NTUHJvcGVy
dHlGb250V2VpZ2h0LCByZXN1bHQsIGNvbW1vblZhbHVlKTsKICAgICBpZiAoIXJlc3VsdC5pc0Vt
cHR5KCkpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAnKTsKICAgICByZXN1bHQuYXBwZW5kKGZv
bnRTaXplUHJvcGVydHkudmFsdWUoKS0+Y3NzVGV4dCgpKTsKLSAgICBzdWNjZXNzICY9IGFwcGVu
ZEZvbnRMb25naGFuZFZhbHVlSWZFeHBsaWNpdChDU1NQcm9wZXJ0eUxpbmVIZWlnaHQsIHJlc3Vs
dCwgY29tbW9uVmFsdWUpOwotICAgIHN1Y2Nlc3MgJj0gYXBwZW5kRm9udExvbmdoYW5kVmFsdWVJ
ZkV4cGxpY2l0KENTU1Byb3BlcnR5Rm9udEZhbWlseSwgcmVzdWx0LCBjb21tb25WYWx1ZSk7Ci0g
ICAgaWYgKCFzdWNjZXNzKSB7Ci0gICAgICAgIC8vIEFuIGludmFsaWQgImZvbnQiIHZhbHVlIGhh
cyBiZWVuIGJ1aWx0IChzaG91bGQgbmV2ZXIgaGFwcGVuLCBhcyBhdCBsZWFzdCBpbXBsaWNpdCB2
YWx1ZXMKLSAgICAgICAgLy8gZm9yIG1hbmRhdG9yeSBsb25naGFuZHMgYXJlIGFsd2F5cyBmb3Vu
ZCBpbiB0aGUgc3R5bGUpLCByZXBvcnQgZW1wdHkgdmFsdWUgaW5zdGVhZC4KLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotICAgIH0K
KyAgICBhcHBlbmRGb250TG9uZ2hhbmRWYWx1ZUlmRXhwbGljaXQoQ1NTUHJvcGVydHlMaW5lSGVp
Z2h0LCByZXN1bHQsIGNvbW1vblZhbHVlKTsKKyAgICBhcHBlbmRGb250TG9uZ2hhbmRWYWx1ZUlm
RXhwbGljaXQoQ1NTUHJvcGVydHlGb250RmFtaWx5LCByZXN1bHQsIGNvbW1vblZhbHVlKTsKICAg
ICBpZiAoaXNJbml0aWFsT3JJbmhlcml0KGNvbW1vblZhbHVlKSkKICAgICAgICAgcmV0dXJuIGNv
bW1vblZhbHVlOwogICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVQcm9wZXJ0eVNldC5oCmluZGV4IDQ1NmY3ZWYyZTQ4ZTYxNmUwZGFmMWYyMzg1NjIyMDQ2
NWY5MzE0MjYuLjQwZWFiMWQxMzcwNjcyODc0YmY3MWQwMmE3ZGU3NGRhN2VlMjE5Y2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuaApAQCAtMTk3LDcgKzE5Nyw3IEBAIHByaXZh
dGU6CiAgICAgU3RyaW5nIGdldDRWYWx1ZXMoY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYp
IGNvbnN0OwogICAgIFN0cmluZyBib3JkZXJTcGFjaW5nVmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0
eVNob3J0aGFuZCYpIGNvbnN0OwogICAgIFN0cmluZyBmb250VmFsdWUoKSBjb25zdDsKLSAgICBi
b29sIGFwcGVuZEZvbnRMb25naGFuZFZhbHVlSWZFeHBsaWNpdChDU1NQcm9wZXJ0eUlELCBTdHJp
bmdCdWlsZGVyJiByZXN1bHQsIFN0cmluZyYgdmFsdWUpIGNvbnN0OworICAgIHZvaWQgYXBwZW5k
Rm9udExvbmdoYW5kVmFsdWVJZkV4cGxpY2l0KENTU1Byb3BlcnR5SUQsIFN0cmluZ0J1aWxkZXIm
IHJlc3VsdCwgU3RyaW5nJiB2YWx1ZSkgY29uc3Q7CiAKICAgICBib29sIHJlbW92ZVNob3J0aGFu
ZFByb3BlcnR5KENTU1Byb3BlcnR5SUQpOwogICAgIGJvb2wgcHJvcGVydHlNYXRjaGVzKGNvbnN0
IFByb3BlcnR5UmVmZXJlbmNlJikgY29uc3Q7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTI0ZmY4YTRhY2I3YTE2YTMxYTJm
NDI2OWM4NmJlM2EwMzBhYjU0OS4uNDA0YzdhNTUzN2FmMDk0ZTY2NmU4ZGQwYWZhZjNmZTdhZTNl
NzRhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAxLTA3ICBBbGV4aXMgTWVuYXJkICA8
YWxleGlzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEIGluIFN0eWxl
UHJvcGVydHlTZXQ6OmZvbnRWYWx1ZSB3aGVuIGFjY2Vzc2luZyBmb250IHN0eWxlIHByb3BlcnR5
IHRocm91Z2ggSlMgYWZ0ZXIgc2V0dGluZyBzdHlsZSBmb250IHNpemUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODg2NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyB0byBjb3ZlciB0aGUg
YnVnLgorCisgICAgICAgICogZmFzdC9jc3MvZm9udC1zaG9ydGhhbmQtZnJvbS1sb25naGFuZHMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9mb250LXNob3J0aGFuZC1m
cm9tLWxvbmdoYW5kcy5odG1sOiBBZGRlZC4KKwogMjAxMy0wMS0wNyAgQWxsYW4gU2FuZGZlbGQg
SmVuc2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KIAogICAgICAgICBVbnNraXAgbm93IHBh
c3NpbmcgcnVieSB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnQt
c2hvcnRoYW5kLWZyb20tbG9uZ2hhbmRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2ZvbnQtc2hvcnRoYW5kLWZyb20tbG9uZ2hhbmRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zZjgxNTdhMjRkZTg5MWU5NTM2ZjUzNDBjNzY3ZTc5OGJhMDVjY2RlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udC1zaG9ydGhhbmQtZnJvbS1sb25naGFuZHMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDQgQEAKK1Rlc3QgdGhlIHBhcnNpbmcgYW5kIHRoZSBj
b21wdXRlZCBzdHlsZSB2YWx1ZXMgb2YgdGhlIHRyYW5zaXRpb25zIHByb3BlcnRpZXMuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN0eWxlLmZvbnQgaXMgJzIwcHgnCitQ
QVNTIGNvbXB1dGVkU3R5bGUuZm9udCBpcyAnbm9ybWFsIG5vcm1hbCBub3JtYWwgMjBweC9ub3Jt
YWwgZm9vYmFyJworUEFTUyBjb21wdXRlZFN0eWxlLmZvbnRTaXplIGlzICcyMHB4JworUEFTUyBj
aGVja0ZvbnRTdHlsZVZhbHVlKCkgaXMgdHJ1ZQorUEFTUyBzdHlsZS5mb250IGlzICcyMHB4IHNh
bnMtc2VyaWYnCitQQVNTIGNvbXB1dGVkU3R5bGUuZm9udCBpcyAnbm9ybWFsIG5vcm1hbCBub3Jt
YWwgMjBweC9ub3JtYWwgc2Fucy1zZXJpZicKK1BBU1MgY29tcHV0ZWRTdHlsZS5mb250RmFtaWx5
IGlzICdzYW5zLXNlcmlmJworUEFTUyBjaGVja0ZvbnRTdHlsZVZhbHVlKCkgaXMgdHJ1ZQorUEFT
UyBzdHlsZS5mb250IGlzICdpdGFsaWMgMjBweCBzYW5zLXNlcmlmJworUEFTUyBjb21wdXRlZFN0
eWxlLmZvbnQgaXMgJ2l0YWxpYyBub3JtYWwgbm9ybWFsIDIwcHgvbm9ybWFsIHNhbnMtc2VyaWYn
CitQQVNTIGNvbXB1dGVkU3R5bGUuZm9udFN0eWxlIGlzICdpdGFsaWMnCitQQVNTIGNoZWNrRm9u
dFN0eWxlVmFsdWUoKSBpcyB0cnVlCitQQVNTIHN0eWxlLmZvbnQgaXMgJ2l0YWxpYyBzbWFsbC1j
YXBzIDIwcHggc2Fucy1zZXJpZicKK1BBU1MgY29tcHV0ZWRTdHlsZS5mb250IGlzICdpdGFsaWMg
c21hbGwtY2FwcyBub3JtYWwgMjBweC9ub3JtYWwgc2Fucy1zZXJpZicKK1BBU1MgY29tcHV0ZWRT
dHlsZS5mb250VmFyaWFudCBpcyAnc21hbGwtY2FwcycKK1BBU1MgY2hlY2tGb250U3R5bGVWYWx1
ZSgpIGlzIHRydWUKK1BBU1Mgc3R5bGUuZm9udCBpcyAnaXRhbGljIHNtYWxsLWNhcHMgYm9sZCAy
MHB4IHNhbnMtc2VyaWYnCitQQVNTIGNvbXB1dGVkU3R5bGUuZm9udCBpcyAnaXRhbGljIHNtYWxs
LWNhcHMgYm9sZCAyMHB4L25vcm1hbCBzYW5zLXNlcmlmJworUEFTUyBjb21wdXRlZFN0eWxlLmZv
bnRXZWlnaHQgaXMgJ2JvbGQnCitQQVNTIGNoZWNrRm9udFN0eWxlVmFsdWUoKSBpcyB0cnVlCitQ
QVNTIHN0eWxlLmZvbnQgaXMgJ2l0YWxpYyBzbWFsbC1jYXBzIGJvbGQgMjBweC80MHB4IHNhbnMt
c2VyaWYnCitQQVNTIGNvbXB1dGVkU3R5bGUuZm9udCBpcyAnaXRhbGljIHNtYWxsLWNhcHMgYm9s
ZCAyMHB4LzQwcHggc2Fucy1zZXJpZicKK1BBU1MgY29tcHV0ZWRTdHlsZS5saW5lSGVpZ2h0IGlz
ICc0MHB4JworUEFTUyBjaGVja0ZvbnRTdHlsZVZhbHVlKCkgaXMgdHJ1ZQorUEFTUyBzdHlsZS5m
b250IGlzICcnCitQQVNTIGNvbXB1dGVkU3R5bGUuZm9udCBpcyAnbm9ybWFsIG5vcm1hbCBub3Jt
YWwgMTZweC9ub3JtYWwgZm9vYmFyJworUEFTUyBjaGVja0ZvbnRTdHlsZVZhbHVlKCkgaXMgdHJ1
ZQorUEFTUyBzdHlsZS5mb250IGlzICcnCitQQVNTIGNvbXB1dGVkU3R5bGUuZm9udCBpcyAnbm9y
bWFsIG5vcm1hbCBib2xkIDE2cHgvbm9ybWFsIGZvb2JhcicKK1BBU1MgY29tcHV0ZWRTdHlsZS5m
b250V2VpZ2h0IGlzICdib2xkJworUEFTUyBjaGVja0ZvbnRTdHlsZVZhbHVlKCkgaXMgdHJ1ZQor
UEFTUyBzdHlsZS5mb250IGlzICdib2xkIDQwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZm9udCBp
cyAnbm9ybWFsIG5vcm1hbCBib2xkIDQwcHgvbm9ybWFsIGZvb2JhcicKK1BBU1MgY29tcHV0ZWRT
dHlsZS5mb250U2l6ZSBpcyAnNDBweCcKK1BBU1MgY2hlY2tGb250U3R5bGVWYWx1ZSgpIGlzIHRy
dWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250LXNob3J0aGFuZC1mcm9tLWxvbmdo
YW5kcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udC1zaG9ydGhhbmQtZnJvbS1sb25n
aGFuZHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDI1OGZiYzIwYjcwYTRkYzY1YTU5ZTNhZjUwODdlNTAx
M2FlZjYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udC1zaG9y
dGhhbmQtZnJvbS1sb25naGFuZHMuaHRtbApAQCAtMCwwICsxLDk1IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWls
eTogImZvb2JhciI7CisgICAgc3JjOiBsb2NhbCgiZm9vYmFyIik7Cit9CitkaXYgeworICAgIGZv
bnQtZmFtaWx5OiAiZm9vYmFyIjsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCJUZXN0IHRoZSBwYXJzaW5nIGFuZCB0aGUgY29tcHV0ZWQgc3R5bGUg
dmFsdWVzIG9mIHRoZSB0cmFuc2l0aW9ucyBwcm9wZXJ0aWVzLiIpCisKK3ZhciB0ZXN0Q29udGFp
bmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Citkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKHRlc3RDb250YWluZXIpOworCit0ZXN0Q29udGFpbmVyLmlubmVySFRNTCA9ICc8ZGl2
IGlkPSJ0ZXN0Ij5oZWxsbzwvZGl2Pic7CisKK2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdCcpOworc3R5bGUgPSBlLnN0eWxlOworY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGUsIG51bGwpOworCisvLyBUaGlzIGZ1bmN0aW9uIGNoZWNrIHRoZSByZXR1cm4g
dmFsdWUgb2Ygc3R5bGUuZm9udCBhbmQgdmVyaWZ5IFdlYktpdCBjYW4gcGFyc2UgaXQuCitmdW5j
dGlvbiBjaGVja0ZvbnRTdHlsZVZhbHVlKCkgeworICAgIHZhciBiZWZvcmUgPSBlLnN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoJ2ZvbnQnKTsKKyAgICBlLnN0eWxlLmZvbnQgPSAnbm9uZSc7CisgICAg
ZS5zdHlsZS5mb250ID0gYmVmb3JlOworICAgIHJldHVybiAoZS5zdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCdmb250JykgPT0gYmVmb3JlKTsKK30KKworc3R5bGUuZm9udFNpemUgPSAiMjBweCI7Citz
aG91bGRCZSgic3R5bGUuZm9udCIsICInMjBweCciKTsKK3Nob3VsZEJlKCJjb21wdXRlZFN0eWxl
LmZvbnQiLCAiJ25vcm1hbCBub3JtYWwgbm9ybWFsIDIwcHgvbm9ybWFsIGZvb2JhciciKTsKK3No
b3VsZEJlKCJjb21wdXRlZFN0eWxlLmZvbnRTaXplIiwgIicyMHB4JyIpOworc2hvdWxkQmUoImNo
ZWNrRm9udFN0eWxlVmFsdWUoKSIsICJ0cnVlIik7CisKK3N0eWxlLmZvbnRGYW1pbHkgPSAic2Fu
cy1zZXJpZiI7CitzaG91bGRCZSgic3R5bGUuZm9udCIsICInMjBweCBzYW5zLXNlcmlmJyIpOwor
c2hvdWxkQmUoImNvbXB1dGVkU3R5bGUuZm9udCIsICInbm9ybWFsIG5vcm1hbCBub3JtYWwgMjBw
eC9ub3JtYWwgc2Fucy1zZXJpZiciKTsKK3Nob3VsZEJlKCJjb21wdXRlZFN0eWxlLmZvbnRGYW1p
bHkiLCAiJ3NhbnMtc2VyaWYnIik7CitzaG91bGRCZSgiY2hlY2tGb250U3R5bGVWYWx1ZSgpIiwg
InRydWUiKTsKKworc3R5bGUuZm9udFN0eWxlID0gIml0YWxpYyI7CitzaG91bGRCZSgic3R5bGUu
Zm9udCIsICInaXRhbGljIDIwcHggc2Fucy1zZXJpZiciKTsKK3Nob3VsZEJlKCJjb21wdXRlZFN0
eWxlLmZvbnQiLCAiJ2l0YWxpYyBub3JtYWwgbm9ybWFsIDIwcHgvbm9ybWFsIHNhbnMtc2VyaWYn
Iik7CitzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS5mb250U3R5bGUiLCAiJ2l0YWxpYyciKTsKK3No
b3VsZEJlKCJjaGVja0ZvbnRTdHlsZVZhbHVlKCkiLCAidHJ1ZSIpOworCitzdHlsZS5mb250VmFy
aWFudCA9ICJzbWFsbC1jYXBzIjsKK3Nob3VsZEJlKCJzdHlsZS5mb250IiwgIidpdGFsaWMgc21h
bGwtY2FwcyAyMHB4IHNhbnMtc2VyaWYnIik7CitzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS5mb250
IiwgIidpdGFsaWMgc21hbGwtY2FwcyBub3JtYWwgMjBweC9ub3JtYWwgc2Fucy1zZXJpZiciKTsK
K3Nob3VsZEJlKCJjb21wdXRlZFN0eWxlLmZvbnRWYXJpYW50IiwgIidzbWFsbC1jYXBzJyIpOwor
c2hvdWxkQmUoImNoZWNrRm9udFN0eWxlVmFsdWUoKSIsICJ0cnVlIik7CisKK3N0eWxlLmZvbnRX
ZWlnaHQgPSAiYm9sZCI7CitzaG91bGRCZSgic3R5bGUuZm9udCIsICInaXRhbGljIHNtYWxsLWNh
cHMgYm9sZCAyMHB4IHNhbnMtc2VyaWYnIik7CitzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS5mb250
IiwgIidpdGFsaWMgc21hbGwtY2FwcyBib2xkIDIwcHgvbm9ybWFsIHNhbnMtc2VyaWYnIik7Citz
aG91bGRCZSgiY29tcHV0ZWRTdHlsZS5mb250V2VpZ2h0IiwgIidib2xkJyIpOworc2hvdWxkQmUo
ImNoZWNrRm9udFN0eWxlVmFsdWUoKSIsICJ0cnVlIik7CisKK3N0eWxlLmxpbmVIZWlnaHQgPSAi
NDBweCI7CitzaG91bGRCZSgic3R5bGUuZm9udCIsICInaXRhbGljIHNtYWxsLWNhcHMgYm9sZCAy
MHB4LzQwcHggc2Fucy1zZXJpZiciKTsKK3Nob3VsZEJlKCJjb21wdXRlZFN0eWxlLmZvbnQiLCAi
J2l0YWxpYyBzbWFsbC1jYXBzIGJvbGQgMjBweC80MHB4IHNhbnMtc2VyaWYnIik7CitzaG91bGRC
ZSgiY29tcHV0ZWRTdHlsZS5saW5lSGVpZ2h0IiwgIic0MHB4JyIpOworc2hvdWxkQmUoImNoZWNr
Rm9udFN0eWxlVmFsdWUoKSIsICJ0cnVlIik7CisKK3N0eWxlLmZvbnQgPSAiIjsKK3Nob3VsZEJl
KCJzdHlsZS5mb250IiwgIicnIik7CitzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS5mb250IiwgIidu
b3JtYWwgbm9ybWFsIG5vcm1hbCAxNnB4L25vcm1hbCBmb29iYXInIik7CitzaG91bGRCZSgiY2hl
Y2tGb250U3R5bGVWYWx1ZSgpIiwgInRydWUiKTsKKworc3R5bGUuZm9udFdlaWdodCA9ICJib2xk
IjsKKy8vIEl0IGlzIG5vcm1hbCB0byByZXR1cm4gbnVsbCBhcyB0aGUgZm9udC1zaXplIGlzIG1h
bmRhdG9yeSB0byBidWlsZCB0aGUgc2hvcnRoYW5kLgorc2hvdWxkQmUoInN0eWxlLmZvbnQiLCAi
JyciKTsKK3Nob3VsZEJlKCJjb21wdXRlZFN0eWxlLmZvbnQiLCAiJ25vcm1hbCBub3JtYWwgYm9s
ZCAxNnB4L25vcm1hbCBmb29iYXInIik7CitzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS5mb250V2Vp
Z2h0IiwgIidib2xkJyIpOworc2hvdWxkQmUoImNoZWNrRm9udFN0eWxlVmFsdWUoKSIsICJ0cnVl
Iik7CisKK3N0eWxlLmZvbnRTaXplID0gIjQwcHgiOworc3R5bGUuZm9udFdlaWdodCA9ICJib2xk
IjsKK3Nob3VsZEJlKCJzdHlsZS5mb250IiwgIidib2xkIDQwcHgnIik7CitzaG91bGRCZSgiY29t
cHV0ZWRTdHlsZS5mb250IiwgIidub3JtYWwgbm9ybWFsIGJvbGQgNDBweC9ub3JtYWwgZm9vYmFy
JyIpOworc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUuZm9udFNpemUiLCAiJzQwcHgnIik7CitzaG91
bGRCZSgiY2hlY2tGb250U3R5bGVWYWx1ZSgpIiwgInRydWUiKTsKKworZG9jdW1lbnQuYm9keS5y
ZW1vdmVDaGlsZCh0ZXN0Q29udGFpbmVyKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181933</attachid>
            <date>2013-01-09 09:15:00 -0800</date>
            <delta_ts>2013-01-10 05:48:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88866-20130109141202.patch</filename>
            <type>text/plain</type>
            <size>13738</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzdiZmNiNjFiYWEzZTFl
ZGQyYmRlOWE3YTcxMDg3YjFjMjE1NDNkMy4uMzFjZWY1M2Q2YjBlOWExYzVlYmVlNDQ5NDlkNTQ5
MzJiODg2ZjM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAxLTA5ICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEIGluIFN0eWxlUHJvcGVydHlTZXQ6OmZvbnRWYWx1ZSB3aGVuIGFjY2Vzc2luZyBmb250IHN0
eWxlIHByb3BlcnR5IHRocm91Z2ggSlMgYWZ0ZXIgc2V0dGluZyBzdHlsZSBmb250IHNpemUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODg2NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0eWxlUHJvcGVy
dHlTZXQ6OmZvbnRWYWx1ZSBhbHdheXMgYXNzdW1lZCB0aGF0IGl0IHdhcyBjYWxsZWQgdXNpbmcK
KyAgICAgICAgc3R5bGUuZm9udCBhZnRlciBhIHN1YnNlcXVlbnQgY2FsbCB3aGljaCBzZXQgdGhl
IHNob3J0aGFuZCBmb250LiBUaGUKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEIGFzc3VtZWQg
dGhhdCBhbGwgbG9uZ2hhbmRzIG9mIHRoZSBmb250IHNob3J0aGFuZCBub3QKKyAgICAgICAgc2V0
IGJ5IHRoZSBzaG9ydGhhbmQgaXRzZWxmIHdlcmUgc2V0IHRvIGluaXRpYWwuIFdoaWxlIGl0J3Mg
dHJ1ZSB3aGVuCisgICAgICAgIHdlIHNldCB0aGUgZm9udCBzaG9ydGhhbmQgKGkuZSBhbGwgbG9u
Z2hhbmRzIGFyZSBzZXQgdG8gaW1wbGljaXQgaW5pdGlhbCkKKyAgICAgICAgaXQgaXMgbm90IHRy
dWUgd2hlbiB5b3Ugc2V0IHRoZSBsb25naGFuZHMgaW5kaXZpZHVhbGx5LiBGb3IgZXhhbXBsZSBz
ZXR0aW5nCisgICAgICAgIGZvbnQtc2l6ZSB3aWxsIG5vdCBzZXQgb3RoZXIgZm9udCBwcm9wZXJ0
aWVzIHRvIGluaXRpYWwuIEl0IGlzIHRoZSBiZWhhdmlvciBvZiBhbGwKKyAgICAgICAgb3RoZXIg
c2hvcnRoYW5kcyBpbiBXZWJLaXQuIFdoZW4gcmVjb25zdHJ1Y3RpbmcgdGhlIHNob3J0aGFuZCBv
dGhlcgorICAgICAgICBwcm9wZXJ0aWVzIHRlc3RzIHdoZXRoZXIgdGhlIHZhbHVlIG9mIGVhY2gg
bG9uZ2hhbmRzIGlzIGluaXRpYWwgb3Igbm90CisgICAgICAgIChpZiBub3QgdGhlbiB3ZSBvbWl0
IHRoZSB2YWx1ZSwgYXMgd2Ugc2hvdWxkIGFsd2F5cyBjb25zdHJ1Y3QgdGhlCisgICAgICAgIHNo
b3J0ZXN0IHNob3J0aGFuZCBwb3NzaWJsZSkgb3IgaWYgdGhlIHZhbHVlIGlzIHNldCBvciBub3Qg
KGlmIHNldCB0aGVuCisgICAgICAgIHdlIGluY2x1ZGUgaXQgaW4gdGhlIHNob3J0aGFuZCBpZiBu
b3QgdGhlbiB3ZSBvbWl0IGl0KS4gVGhlIGNvbW1lbnQKKyAgICAgICAgcmVtb3ZlZCB3YXMgYWxz
byB0YWxraW5nIGFib3V0IGludmFsaWQgZm9udCBwcm9wZXJ0eSBwb3RlbnRpYWxseSBidWlsdAor
ICAgICAgICBieSBmb250VmFsdWUoKS4gU28gZmFyIGFwcGVuZEZvbnRMb25naGFuZFZhbHVlSWZF
eHBsaWNpdCB3aWxsIGFsd2F5cworICAgICAgICBjb25zdHJ1Y3QgYSB2YWxpZCB2YWx1ZSBhcyBp
dCB0YWtlcyBjYXJlIG9mIGFkZGluZyAnICcgb3IgJy8nIHdoZW4KKyAgICAgICAgbmVlZGVkLCBz
byB0aGUgcmV0dXJuIHZhbHVlIGlzIHBhcnNhYmxlIGFuZCBjb3JyZWN0LgorCisgICAgICAgIFRl
c3Q6IGZhc3QvY3NzL2ZvbnQtc2hvcnRoYW5kLWZyb20tbG9uZ2hhbmRzLmh0bWwKKworICAgICAg
ICAqIGNzcy9TdHlsZVByb3BlcnR5U2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJv
cGVydHlTZXQ6OmFwcGVuZEZvbnRMb25naGFuZFZhbHVlSWZFeHBsaWNpdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0Ojpmb250VmFsdWUpOgorICAgICAgICAqIGNzcy9TdHls
ZVByb3BlcnR5U2V0Lmg6CisKIDIwMTMtMDEtMDkgIEFybmF1ZCBSZW5ldmllciAgPGEucmVuZXZp
ZXJAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBjYW5ub3QgdW5k
b2NrIGluc3BlY3RvciB3aGVuIHdpbmRvdyBzaXplIGlzIHRvbyBzbWFsbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCmluZGV4IDQyODA3ODkxOGRhOGI4MjkxNTUxYjE0MzQw
NzI3ZGFiNGVhZmViNzkuLjlmMDdhZmRjYmZjYTdmZjBkMjFlOGVjYTM1N2VlZDMzODMyNGJkNGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKQEAgLTIyNSwxNSArMjI1
LDE1IEBAIFN0cmluZyBTdHlsZVByb3BlcnR5U2V0Ojpib3JkZXJTcGFjaW5nVmFsdWUoY29uc3Qg
U3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgc2hvcnRoCiAgICAgcmV0dXJuIGhvcml6b250YWxWYWx1
ZUNTU1RleHQgKyAnICcgKyB2ZXJ0aWNhbFZhbHVlQ1NTVGV4dDsKIH0KIAotYm9vbCBTdHlsZVBy
b3BlcnR5U2V0OjphcHBlbmRGb250TG9uZ2hhbmRWYWx1ZUlmRXhwbGljaXQoQ1NTUHJvcGVydHlJ
RCBwcm9wZXJ0eUlELCBTdHJpbmdCdWlsZGVyJiByZXN1bHQsIFN0cmluZyYgY29tbW9uVmFsdWUp
IGNvbnN0Cit2b2lkIFN0eWxlUHJvcGVydHlTZXQ6OmFwcGVuZEZvbnRMb25naGFuZFZhbHVlSWZF
eHBsaWNpdChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIFN0cmluZ0J1aWxkZXImIHJlc3VsdCwg
U3RyaW5nJiBjb21tb25WYWx1ZSkgY29uc3QKIHsKICAgICBpbnQgZm91bmRQcm9wZXJ0eUluZGV4
ID0gZmluZFByb3BlcnR5SW5kZXgocHJvcGVydHlJRCk7CiAgICAgaWYgKGZvdW5kUHJvcGVydHlJ
bmRleCA9PSAtMSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBBbGwgbG9uZ2hhbmRzIG11c3Qg
aGF2ZSBhdCBsZWFzdCBpbXBsaWNpdCB2YWx1ZXMgaWYgImZvbnQiIGlzIHNwZWNpZmllZC4KKyAg
ICAgICAgcmV0dXJuOyAvLyBBbGwgbG9uZ2hhbmRzIG11c3QgaGF2ZSBhdCBsZWFzdCBpbXBsaWNp
dCB2YWx1ZXMgaWYgImZvbnQiIGlzIHNwZWNpZmllZC4KIAogICAgIGlmIChwcm9wZXJ0eUF0KGZv
dW5kUHJvcGVydHlJbmRleCkuaXNJbXBsaWNpdCgpKSB7CiAgICAgICAgIGNvbW1vblZhbHVlID0g
U3RyaW5nKCk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgY2hhciBwcmVmaXggPSAnXDAnOwpAQCAtMjU4LDM3ICsyNTgsMzIgQEAgYm9vbCBTdHls
ZVByb3BlcnR5U2V0OjphcHBlbmRGb250TG9uZ2hhbmRWYWx1ZUlmRXhwbGljaXQoQ1NTUHJvcGVy
dHlJRCBwcm9wZXJ0eUkKICAgICByZXN1bHQuYXBwZW5kKHZhbHVlKTsKICAgICBpZiAoIWNvbW1v
blZhbHVlLmlzTnVsbCgpICYmIGNvbW1vblZhbHVlICE9IHZhbHVlKQogICAgICAgICBjb21tb25W
YWx1ZSA9IFN0cmluZygpOwotCi0gICAgcmV0dXJuIHRydWU7CiB9CiAKIFN0cmluZyBTdHlsZVBy
b3BlcnR5U2V0Ojpmb250VmFsdWUoKSBjb25zdAogewotICAgIGludCBmb3VuZFByb3BlcnR5SW5k
ZXggPSBmaW5kUHJvcGVydHlJbmRleChDU1NQcm9wZXJ0eUZvbnRTaXplKTsKLSAgICBpZiAoZm91
bmRQcm9wZXJ0eUluZGV4ID09IC0xKQorICAgIGludCBmb250U2l6ZVByb3BlcnR5SW5kZXggPSBm
aW5kUHJvcGVydHlJbmRleChDU1NQcm9wZXJ0eUZvbnRTaXplKTsKKyAgICBpbnQgZm9udEZhbWls
eVByb3BlcnR5SW5kZXggPSBmaW5kUHJvcGVydHlJbmRleChDU1NQcm9wZXJ0eUZvbnRGYW1pbHkp
OworICAgIGlmIChmb250U2l6ZVByb3BlcnR5SW5kZXggPT0gLTEgfHwgZm9udEZhbWlseVByb3Bl
cnR5SW5kZXggPT0gLTEpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogCi0gICAgUHJv
cGVydHlSZWZlcmVuY2UgZm9udFNpemVQcm9wZXJ0eSA9IHByb3BlcnR5QXQoZm91bmRQcm9wZXJ0
eUluZGV4KTsKLSAgICBpZiAoZm9udFNpemVQcm9wZXJ0eS5pc0ltcGxpY2l0KCkpCisgICAgUHJv
cGVydHlSZWZlcmVuY2UgZm9udFNpemVQcm9wZXJ0eSA9IHByb3BlcnR5QXQoZm9udFNpemVQcm9w
ZXJ0eUluZGV4KTsKKyAgICBQcm9wZXJ0eVJlZmVyZW5jZSBmb250RmFtaWx5UHJvcGVydHkgPSBw
cm9wZXJ0eUF0KGZvbnRGYW1pbHlQcm9wZXJ0eUluZGV4KTsKKyAgICBpZiAoZm9udFNpemVQcm9w
ZXJ0eS5pc0ltcGxpY2l0KCkgfHwgZm9udEZhbWlseVByb3BlcnR5LmlzSW1wbGljaXQoKSkKICAg
ICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKICAgICBTdHJpbmcgY29tbW9uVmFsdWUgPSBm
b250U2l6ZVByb3BlcnR5LnZhbHVlKCktPmNzc1RleHQoKTsKICAgICBTdHJpbmdCdWlsZGVyIHJl
c3VsdDsKLSAgICBib29sIHN1Y2Nlc3MgPSB0cnVlOwotICAgIHN1Y2Nlc3MgJj0gYXBwZW5kRm9u
dExvbmdoYW5kVmFsdWVJZkV4cGxpY2l0KENTU1Byb3BlcnR5Rm9udFN0eWxlLCByZXN1bHQsIGNv
bW1vblZhbHVlKTsKLSAgICBzdWNjZXNzICY9IGFwcGVuZEZvbnRMb25naGFuZFZhbHVlSWZFeHBs
aWNpdChDU1NQcm9wZXJ0eUZvbnRWYXJpYW50LCByZXN1bHQsIGNvbW1vblZhbHVlKTsKLSAgICBz
dWNjZXNzICY9IGFwcGVuZEZvbnRMb25naGFuZFZhbHVlSWZFeHBsaWNpdChDU1NQcm9wZXJ0eUZv
bnRXZWlnaHQsIHJlc3VsdCwgY29tbW9uVmFsdWUpOworICAgIGFwcGVuZEZvbnRMb25naGFuZFZh
bHVlSWZFeHBsaWNpdChDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgcmVzdWx0LCBjb21tb25WYWx1ZSk7
CisgICAgYXBwZW5kRm9udExvbmdoYW5kVmFsdWVJZkV4cGxpY2l0KENTU1Byb3BlcnR5Rm9udFZh
cmlhbnQsIHJlc3VsdCwgY29tbW9uVmFsdWUpOworICAgIGFwcGVuZEZvbnRMb25naGFuZFZhbHVl
SWZFeHBsaWNpdChDU1NQcm9wZXJ0eUZvbnRXZWlnaHQsIHJlc3VsdCwgY29tbW9uVmFsdWUpOwog
ICAgIGlmICghcmVzdWx0LmlzRW1wdHkoKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOwog
ICAgIHJlc3VsdC5hcHBlbmQoZm9udFNpemVQcm9wZXJ0eS52YWx1ZSgpLT5jc3NUZXh0KCkpOwot
ICAgIHN1Y2Nlc3MgJj0gYXBwZW5kRm9udExvbmdoYW5kVmFsdWVJZkV4cGxpY2l0KENTU1Byb3Bl
cnR5TGluZUhlaWdodCwgcmVzdWx0LCBjb21tb25WYWx1ZSk7Ci0gICAgc3VjY2VzcyAmPSBhcHBl
bmRGb250TG9uZ2hhbmRWYWx1ZUlmRXhwbGljaXQoQ1NTUHJvcGVydHlGb250RmFtaWx5LCByZXN1
bHQsIGNvbW1vblZhbHVlKTsKLSAgICBpZiAoIXN1Y2Nlc3MpIHsKLSAgICAgICAgLy8gQW4gaW52
YWxpZCAiZm9udCIgdmFsdWUgaGFzIGJlZW4gYnVpbHQgKHNob3VsZCBuZXZlciBoYXBwZW4sIGFz
IGF0IGxlYXN0IGltcGxpY2l0IHZhbHVlcwotICAgICAgICAvLyBmb3IgbWFuZGF0b3J5IGxvbmdo
YW5kcyBhcmUgYWx3YXlzIGZvdW5kIGluIHRoZSBzdHlsZSksIHJlcG9ydCBlbXB0eSB2YWx1ZSBp
bnN0ZWFkLgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIGVt
cHR5U3RyaW5nKCk7Ci0gICAgfQorICAgIGFwcGVuZEZvbnRMb25naGFuZFZhbHVlSWZFeHBsaWNp
dChDU1NQcm9wZXJ0eUxpbmVIZWlnaHQsIHJlc3VsdCwgY29tbW9uVmFsdWUpOworICAgIGlmICgh
cmVzdWx0LmlzRW1wdHkoKSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOworICAgIHJlc3Vs
dC5hcHBlbmQoZm9udEZhbWlseVByb3BlcnR5LnZhbHVlKCktPmNzc1RleHQoKSk7CiAgICAgaWYg
KGlzSW5pdGlhbE9ySW5oZXJpdChjb21tb25WYWx1ZSkpCiAgICAgICAgIHJldHVybiBjb21tb25W
YWx1ZTsKICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UHJvcGVydHlTZXQuaAppbmRleCA0NTZmN2VmMmU0OGU2MTZlMGRhZjFmMjM4NTYyMjA0NjVmOTMx
NDI2Li40MGVhYjFkMTM3MDY3Mjg3NGJmNzFkMDJhN2RlNzRkYTdlZTIxOWNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgKQEAgLTE5Nyw3ICsxOTcsNyBAQCBwcml2YXRlOgog
ICAgIFN0cmluZyBnZXQ0VmFsdWVzKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmKSBjb25z
dDsKICAgICBTdHJpbmcgYm9yZGVyU3BhY2luZ1ZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9y
dGhhbmQmKSBjb25zdDsKICAgICBTdHJpbmcgZm9udFZhbHVlKCkgY29uc3Q7Ci0gICAgYm9vbCBh
cHBlbmRGb250TG9uZ2hhbmRWYWx1ZUlmRXhwbGljaXQoQ1NTUHJvcGVydHlJRCwgU3RyaW5nQnVp
bGRlciYgcmVzdWx0LCBTdHJpbmcmIHZhbHVlKSBjb25zdDsKKyAgICB2b2lkIGFwcGVuZEZvbnRM
b25naGFuZFZhbHVlSWZFeHBsaWNpdChDU1NQcm9wZXJ0eUlELCBTdHJpbmdCdWlsZGVyJiByZXN1
bHQsIFN0cmluZyYgdmFsdWUpIGNvbnN0OwogCiAgICAgYm9vbCByZW1vdmVTaG9ydGhhbmRQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUlEKTsKICAgICBib29sIHByb3BlcnR5TWF0Y2hlcyhjb25zdCBQcm9w
ZXJ0eVJlZmVyZW5jZSYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYwOTkwYmQ0NDNkZWIwMzBhZTViYmZhNzcy
M2NmNDY1MDVjOTQwZTkuLjM2ODhlZTg3ZDc5MDdkYTdmY2M4N2VkODQ0YTZkZmUzMzA5ZjZiNDcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wMS0wOSAgQWxleGlzIE1lbmFyZCAgPGFsZXhp
c0B3ZWJraXQub3JnPgorCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCBpbiBTdHlsZVByb3Bl
cnR5U2V0Ojpmb250VmFsdWUgd2hlbiBhY2Nlc3NpbmcgZm9udCBzdHlsZSBwcm9wZXJ0eSB0aHJv
dWdoIEpTIGFmdGVyIHNldHRpbmcgc3R5bGUgZm9udCBzaXplLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg4NjYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgdG8gY292ZXIgdGhlIGJ1Zy4K
KworICAgICAgICAqIGZhc3QvY3NzL2ZvbnQtc2hvcnRoYW5kLWZyb20tbG9uZ2hhbmRzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZm9udC1zaG9ydGhhbmQtZnJvbS1s
b25naGFuZHMuaHRtbDogQWRkZWQuCisKIDIwMTMtMDEtMDkgIE1pa2hhaWwgUG96ZG55YWtvdiAg
PG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBFRkwg
Z2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udC1zaG9ydGhh
bmQtZnJvbS1sb25naGFuZHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9u
dC1zaG9ydGhhbmQtZnJvbS1sb25naGFuZHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1MWFi
NTdiYTNjNmIzMTdlOTZiN2RjZGI1ZTgzYjcxMGM0YTY0YjkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250LXNob3J0aGFuZC1mcm9tLWxvbmdoYW5kcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0NSBAQAorVGVzdCB0aGUgcmV0dXJuIHZhbHVlcyBmb3IgdGhlIGZv
bnQgcHJvcGVydGllcyBvbiB0aGUgc3R5bGUgb2JqZWN0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBzdHlsZS5mb250IGlzICcnCitQQVNTIGNvbXB1dGVkU3R5bGUuZm9u
dCBpcyAnbm9ybWFsIG5vcm1hbCBub3JtYWwgMjBweC9ub3JtYWwgZm9vYmFyJworUEFTUyBjb21w
dXRlZFN0eWxlLmZvbnRTaXplIGlzICcyMHB4JworUEFTUyBjaGVja0ZvbnRTdHlsZVZhbHVlKCkg
aXMgdHJ1ZQorUEFTUyBzdHlsZS5mb250IGlzICcyMHB4IHNhbnMtc2VyaWYnCitQQVNTIGNvbXB1
dGVkU3R5bGUuZm9udCBpcyAnbm9ybWFsIG5vcm1hbCBub3JtYWwgMjBweC9ub3JtYWwgc2Fucy1z
ZXJpZicKK1BBU1MgY29tcHV0ZWRTdHlsZS5mb250RmFtaWx5IGlzICdzYW5zLXNlcmlmJworUEFT
UyBjaGVja0ZvbnRTdHlsZVZhbHVlKCkgaXMgdHJ1ZQorUEFTUyBzdHlsZS5mb250IGlzICdpdGFs
aWMgMjBweCBzYW5zLXNlcmlmJworUEFTUyBjb21wdXRlZFN0eWxlLmZvbnQgaXMgJ2l0YWxpYyBu
b3JtYWwgbm9ybWFsIDIwcHgvbm9ybWFsIHNhbnMtc2VyaWYnCitQQVNTIGNvbXB1dGVkU3R5bGUu
Zm9udFN0eWxlIGlzICdpdGFsaWMnCitQQVNTIGNoZWNrRm9udFN0eWxlVmFsdWUoKSBpcyB0cnVl
CitQQVNTIHN0eWxlLmZvbnQgaXMgJ2l0YWxpYyBzbWFsbC1jYXBzIDIwcHggc2Fucy1zZXJpZicK
K1BBU1MgY29tcHV0ZWRTdHlsZS5mb250IGlzICdpdGFsaWMgc21hbGwtY2FwcyBub3JtYWwgMjBw
eC9ub3JtYWwgc2Fucy1zZXJpZicKK1BBU1MgY29tcHV0ZWRTdHlsZS5mb250VmFyaWFudCBpcyAn
c21hbGwtY2FwcycKK1BBU1MgY2hlY2tGb250U3R5bGVWYWx1ZSgpIGlzIHRydWUKK1BBU1Mgc3R5
bGUuZm9udCBpcyAnaXRhbGljIHNtYWxsLWNhcHMgYm9sZCAyMHB4IHNhbnMtc2VyaWYnCitQQVNT
IGNvbXB1dGVkU3R5bGUuZm9udCBpcyAnaXRhbGljIHNtYWxsLWNhcHMgYm9sZCAyMHB4L25vcm1h
bCBzYW5zLXNlcmlmJworUEFTUyBjb21wdXRlZFN0eWxlLmZvbnRXZWlnaHQgaXMgJ2JvbGQnCitQ
QVNTIGNoZWNrRm9udFN0eWxlVmFsdWUoKSBpcyB0cnVlCitQQVNTIHN0eWxlLmZvbnQgaXMgJ2l0
YWxpYyBzbWFsbC1jYXBzIGJvbGQgMjBweC80MHB4IHNhbnMtc2VyaWYnCitQQVNTIGNvbXB1dGVk
U3R5bGUuZm9udCBpcyAnaXRhbGljIHNtYWxsLWNhcHMgYm9sZCAyMHB4LzQwcHggc2Fucy1zZXJp
ZicKK1BBU1MgY29tcHV0ZWRTdHlsZS5saW5lSGVpZ2h0IGlzICc0MHB4JworUEFTUyBjaGVja0Zv
bnRTdHlsZVZhbHVlKCkgaXMgdHJ1ZQorUEFTUyBzdHlsZS5mb250IGlzICcnCitQQVNTIGNvbXB1
dGVkU3R5bGUuZm9udCBpcyAnbm9ybWFsIG5vcm1hbCBub3JtYWwgMTZweC9ub3JtYWwgZm9vYmFy
JworUEFTUyBjaGVja0ZvbnRTdHlsZVZhbHVlKCkgaXMgdHJ1ZQorUEFTUyBzdHlsZS5mb250IGlz
ICcnCitQQVNTIGNvbXB1dGVkU3R5bGUuZm9udCBpcyAnbm9ybWFsIG5vcm1hbCBib2xkIDE2cHgv
bm9ybWFsIGZvb2JhcicKK1BBU1MgY29tcHV0ZWRTdHlsZS5mb250V2VpZ2h0IGlzICdib2xkJwor
UEFTUyBjaGVja0ZvbnRTdHlsZVZhbHVlKCkgaXMgdHJ1ZQorUEFTUyBzdHlsZS5mb250IGlzICdi
b2xkIDQwcHggc2Fucy1zZXJpZicKK1BBU1MgY29tcHV0ZWRTdHlsZS5mb250IGlzICdub3JtYWwg
bm9ybWFsIGJvbGQgNDBweC9ub3JtYWwgc2Fucy1zZXJpZicKK1BBU1MgY29tcHV0ZWRTdHlsZS5m
b250U2l6ZSBpcyAnNDBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5mb250RmFtaWx5IGlzICdzYW5z
LXNlcmlmJworUEFTUyBjaGVja0ZvbnRTdHlsZVZhbHVlKCkgaXMgdHJ1ZQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2ZvbnQtc2hvcnRoYW5kLWZyb20tbG9uZ2hhbmRzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9mb250LXNob3J0aGFuZC1mcm9tLWxvbmdoYW5kcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjI4YzZmNTE3NDlmNDI1NTljMGE3YWMxNzE2MGY3M2FiNGU5YzY0ZjMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250LXNob3J0aGFuZC1mcm9tLWxvbmdo
YW5kcy5odG1sCkBAIC0wLDAgKzEsOTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiAiZm9vYmFyIjsKKyAg
ICBzcmM6IGxvY2FsKCJmb29iYXIiKTsKK30KK2RpdiB7CisgICAgZm9udC1mYW1pbHk6ICJmb29i
YXIiOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRlc3QgdGhlIHJldHVybiB2YWx1ZXMgZm9yIHRoZSBmb250IHByb3BlcnRpZXMgb24gdGhlIHN0
eWxlIG9iamVjdC4iKQorCit2YXIgdGVzdENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0Q29udGFpbmVyKTsKKwor
dGVzdENvbnRhaW5lci5pbm5lckhUTUwgPSAnPGRpdiBpZD0idGVzdCI+aGVsbG88L2Rpdj4nOwor
Cit2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7Cit2YXIgc3R5bGUgPSBl
LnN0eWxlOwordmFyIGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlLCBu
dWxsKTsKKworLy8gVGhpcyBmdW5jdGlvbiBjaGVja3MgdGhlIHJldHVybiB2YWx1ZSBvZiBzdHls
ZS5mb250IGFuZCB2ZXJpZmllcyBXZWJLaXQgY2FuIHBhcnNlIGl0LgorZnVuY3Rpb24gY2hlY2tG
b250U3R5bGVWYWx1ZSgpIHsKKyAgICB2YXIgYmVmb3JlID0gZS5zdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCdmb250Jyk7CisgICAgZS5zdHlsZS5mb250ID0gJyc7CisgICAgZS5zdHlsZS5mb250ID0g
YmVmb3JlOworICAgIHJldHVybiAoZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdmb250JykgPT09
IGJlZm9yZSk7Cit9CisKK3N0eWxlLmZvbnRTaXplID0gIjIwcHgiOworLy8gV2UgbmVlZCBhdCBs
ZWFzdCB0aGUgZm9udC1mYW1pbHkgdG8gYnVpbGQgdGhlIHNob3J0aGFuZC4KK3Nob3VsZEJlKCJz
dHlsZS5mb250IiwgIicnIik7CitzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS5mb250IiwgIidub3Jt
YWwgbm9ybWFsIG5vcm1hbCAyMHB4L25vcm1hbCBmb29iYXInIik7CitzaG91bGRCZSgiY29tcHV0
ZWRTdHlsZS5mb250U2l6ZSIsICInMjBweCciKTsKK3Nob3VsZEJlKCJjaGVja0ZvbnRTdHlsZVZh
bHVlKCkiLCAidHJ1ZSIpOworCitzdHlsZS5mb250U2l6ZSA9ICIyMHB4IjsKK3N0eWxlLmZvbnRG
YW1pbHkgPSAic2Fucy1zZXJpZiI7CitzaG91bGRCZSgic3R5bGUuZm9udCIsICInMjBweCBzYW5z
LXNlcmlmJyIpOworc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUuZm9udCIsICInbm9ybWFsIG5vcm1h
bCBub3JtYWwgMjBweC9ub3JtYWwgc2Fucy1zZXJpZiciKTsKK3Nob3VsZEJlKCJjb21wdXRlZFN0
eWxlLmZvbnRGYW1pbHkiLCAiJ3NhbnMtc2VyaWYnIik7CitzaG91bGRCZSgiY2hlY2tGb250U3R5
bGVWYWx1ZSgpIiwgInRydWUiKTsKKworc3R5bGUuZm9udFN0eWxlID0gIml0YWxpYyI7CitzaG91
bGRCZSgic3R5bGUuZm9udCIsICInaXRhbGljIDIwcHggc2Fucy1zZXJpZiciKTsKK3Nob3VsZEJl
KCJjb21wdXRlZFN0eWxlLmZvbnQiLCAiJ2l0YWxpYyBub3JtYWwgbm9ybWFsIDIwcHgvbm9ybWFs
IHNhbnMtc2VyaWYnIik7CitzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS5mb250U3R5bGUiLCAiJ2l0
YWxpYyciKTsKK3Nob3VsZEJlKCJjaGVja0ZvbnRTdHlsZVZhbHVlKCkiLCAidHJ1ZSIpOworCitz
dHlsZS5mb250VmFyaWFudCA9ICJzbWFsbC1jYXBzIjsKK3Nob3VsZEJlKCJzdHlsZS5mb250Iiwg
IidpdGFsaWMgc21hbGwtY2FwcyAyMHB4IHNhbnMtc2VyaWYnIik7CitzaG91bGRCZSgiY29tcHV0
ZWRTdHlsZS5mb250IiwgIidpdGFsaWMgc21hbGwtY2FwcyBub3JtYWwgMjBweC9ub3JtYWwgc2Fu
cy1zZXJpZiciKTsKK3Nob3VsZEJlKCJjb21wdXRlZFN0eWxlLmZvbnRWYXJpYW50IiwgIidzbWFs
bC1jYXBzJyIpOworc2hvdWxkQmUoImNoZWNrRm9udFN0eWxlVmFsdWUoKSIsICJ0cnVlIik7CisK
K3N0eWxlLmZvbnRXZWlnaHQgPSAiYm9sZCI7CitzaG91bGRCZSgic3R5bGUuZm9udCIsICInaXRh
bGljIHNtYWxsLWNhcHMgYm9sZCAyMHB4IHNhbnMtc2VyaWYnIik7CitzaG91bGRCZSgiY29tcHV0
ZWRTdHlsZS5mb250IiwgIidpdGFsaWMgc21hbGwtY2FwcyBib2xkIDIwcHgvbm9ybWFsIHNhbnMt
c2VyaWYnIik7CitzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS5mb250V2VpZ2h0IiwgIidib2xkJyIp
Oworc2hvdWxkQmUoImNoZWNrRm9udFN0eWxlVmFsdWUoKSIsICJ0cnVlIik7CisKK3N0eWxlLmxp
bmVIZWlnaHQgPSAiNDBweCI7CitzaG91bGRCZSgic3R5bGUuZm9udCIsICInaXRhbGljIHNtYWxs
LWNhcHMgYm9sZCAyMHB4LzQwcHggc2Fucy1zZXJpZiciKTsKK3Nob3VsZEJlKCJjb21wdXRlZFN0
eWxlLmZvbnQiLCAiJ2l0YWxpYyBzbWFsbC1jYXBzIGJvbGQgMjBweC80MHB4IHNhbnMtc2VyaWYn
Iik7CitzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS5saW5lSGVpZ2h0IiwgIic0MHB4JyIpOworc2hv
dWxkQmUoImNoZWNrRm9udFN0eWxlVmFsdWUoKSIsICJ0cnVlIik7CisKK3N0eWxlLmZvbnQgPSAi
IjsKK3Nob3VsZEJlKCJzdHlsZS5mb250IiwgIicnIik7CitzaG91bGRCZSgiY29tcHV0ZWRTdHls
ZS5mb250IiwgIidub3JtYWwgbm9ybWFsIG5vcm1hbCAxNnB4L25vcm1hbCBmb29iYXInIik7Citz
aG91bGRCZSgiY2hlY2tGb250U3R5bGVWYWx1ZSgpIiwgInRydWUiKTsKKworc3R5bGUuZm9udFdl
aWdodCA9ICJib2xkIjsKKy8vIEl0IGlzIG5vcm1hbCB0byByZXR1cm4gbnVsbCBhcyB0aGUgZm9u
dC1zaXplIGlzIG1hbmRhdG9yeSB0byBidWlsZCB0aGUgc2hvcnRoYW5kLgorc2hvdWxkQmUoInN0
eWxlLmZvbnQiLCAiJyciKTsKK3Nob3VsZEJlKCJjb21wdXRlZFN0eWxlLmZvbnQiLCAiJ25vcm1h
bCBub3JtYWwgYm9sZCAxNnB4L25vcm1hbCBmb29iYXInIik7CitzaG91bGRCZSgiY29tcHV0ZWRT
dHlsZS5mb250V2VpZ2h0IiwgIidib2xkJyIpOworc2hvdWxkQmUoImNoZWNrRm9udFN0eWxlVmFs
dWUoKSIsICJ0cnVlIik7CisKK3N0eWxlLmZvbnRTaXplID0gIjQwcHgiOworc3R5bGUuZm9udEZh
bWlseSA9ICJzYW5zLXNlcmlmIjsKK3N0eWxlLmZvbnRXZWlnaHQgPSAiYm9sZCI7CitzaG91bGRC
ZSgic3R5bGUuZm9udCIsICInYm9sZCA0MHB4IHNhbnMtc2VyaWYnIik7CitzaG91bGRCZSgiY29t
cHV0ZWRTdHlsZS5mb250IiwgIidub3JtYWwgbm9ybWFsIGJvbGQgNDBweC9ub3JtYWwgc2Fucy1z
ZXJpZiciKTsKK3Nob3VsZEJlKCJjb21wdXRlZFN0eWxlLmZvbnRTaXplIiwgIic0MHB4JyIpOwor
c2hvdWxkQmUoImNvbXB1dGVkU3R5bGUuZm9udEZhbWlseSIsICInc2Fucy1zZXJpZiciKTsKK3No
b3VsZEJlKCJjaGVja0ZvbnRTdHlsZVZhbHVlKCkiLCAidHJ1ZSIpOworCitkb2N1bWVudC5ib2R5
LnJlbW92ZUNoaWxkKHRlc3RDb250YWluZXIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>