<?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>63618</bug_id>
          
          <creation_ts>2011-06-29 03:15:29 -0700</creation_ts>
          <short_desc>Parsing CSS3 font-feature-settings property</short_desc>
          <delta_ts>2011-08-09 08:11:09 -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>Text</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>
          
          <blocked>63796</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenichi Ishibashi">bashi</reporter>
          <assigned_to name="Kenichi Ishibashi">bashi</assigned_to>
          <cc>clagnut+webkitbugzilla</cc>
    
    <cc>darin</cc>
    
    <cc>hamaji</cc>
    
    <cc>hyatt</cc>
    
    <cc>phiw2</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>yuzo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>429504</commentid>
    <comment_count>0</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-06-29 03:15:29 -0700</bug_when>
    <thetext>I&apos;d like to add CSS3 font feature properties support.

http://www.w3.org/TR/css3-fonts/#font-rend-props

For ports which can handle OpenType features, starting with the font-feature-settings property (http://www.w3.org/TR/css3-fonts/#propdef-font-feature-settings) would be good because other properties can be treated as sort of shorthands.  This bug entry is for adding parsing feature of the font-feature-settings as a first step.

I&apos;ll create a master-bug for adding CSS3 font feature properties support once we decide to move forward on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429506</commentid>
    <comment_count>1</comment_count>
      <attachid>99063</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-06-29 03:23:38 -0700</bug_when>
    <thetext>Created attachment 99063
WIP Patch V0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429508</commentid>
    <comment_count>2</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-06-29 03:24:36 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=99063) [details]
&gt; WIP Patch V0

Notes for this WIP patch:
- Should I enclose the code in ENABLE(...) macro, like http://www.webkit.org/b/61726 ?
- Build files are not updated yet except for GYP. I&apos;ll update them once I can move foward with this.
- ChangeLog is also not prepared yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431826</commentid>
    <comment_count>3</comment_count>
      <attachid>99603</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-07-03 23:57:24 -0700</bug_when>
    <thetext>Created attachment 99603
Patch V1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432684</commentid>
    <comment_count>4</comment_count>
      <attachid>99603</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-07-06 01:07:25 -0700</bug_when>
    <thetext>Comment on attachment 99603
Patch V1

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

&gt; LayoutTests/ChangeLog:12
&gt; +        * css3/script-tests/TEMPLATE.html: Added.

Script test in separete js file is obsolete. Please put it inside HTML.

&gt; Source/WebCore/css/CSSParser.cpp:6021
&gt; +    while (value) {

Is it possible to rewrite this with for statement? If it&apos;s possible, it&apos;s desirable
because this loops is for list traversal.

This loop looks too complicated anyway...
I guess we can make this clear by extracting a per-item function.
What do you think?

&gt; Source/WebCore/css/CSSParser.cpp:6026
&gt; +        if (value-&gt;string.length != 4)

having a named constant would be preferable.

&gt; Source/WebCore/css/CSSParser.cpp:6051
&gt; +        settings-&gt;append(parsedValue.release());

You don&apos;t need release(). PassRefPtr does its job for you.

&gt; Source/WebCore/css/CSSParser.cpp:6054
&gt; +    if (settings &amp;&amp; settings-&gt;length()) {

Can setting be null?

&gt; Source/WebCore/css/CSSStyleSelector.cpp:5317
&gt; +            fontDescription.setFeatureSettings(0);

How about to define FontDescription::makeNormal() ? 
Then we can write something like
m_style-&gt;setFontDescription(m_style-&gt;fontDescription().makeNormal())

&gt; Source/WebCore/css/FontFeatureValue.cpp:55
&gt; +    String result = &quot;&apos;&quot; + m_tag + &quot;&apos;&quot;;

How about to try StringBuilder? It would be more effective in this case.

&gt; Source/WebCore/platform/graphics/FontDescription.h:78
&gt; +        , m_featureSettings(0)

We don&apos;t need this. RefPtr automatically gets zero-cleared.

&gt; Source/WebCore/platform/graphics/FontDescription.h:160
&gt; +    RefPtr&lt;FontFeatureSettings&gt; m_featureSettings; // The list of OpenType font feature settings.

I think we don&apos;t need this comment. The class name is clear enough.

&gt; Source/WebCore/platform/graphics/FontDescription.h:200
&gt; +        &amp;&amp; m_featureSettings.get() == other.m_featureSettings.get();

It looks you are comparing pointers. Is this intentional?

&gt; Source/WebCore/platform/graphics/FontFeatureSettings.h:30
&gt; +#include &lt;wtf/RefPtr.h&gt;

PassRefPtr.h?

&gt; Source/WebCore/platform/graphics/FontFeatureSettings.h:39
&gt; +    FontFeature(const FontFeature&amp; other);

Do we need the explicit copy constructor?

&gt; Source/WebCore/platform/graphics/FontFeatureSettings.h:40
&gt; +    FontFeature&amp; operator=(const FontFeature&amp;);

...and an assignment operator?

&gt; Source/WebCore/platform/graphics/FontFeatureSettings.h:56
&gt; +    void appendFeature(const FontFeature&amp; feature) { m_list.append(feature); }

append() looks enough. (we have at() anyway.)

&gt; Source/WebCore/platform/graphics/FontFeatureSettings.h:59
&gt; +    const FontFeature&amp; at(size_t index) const { return m_list[index]; }

let&apos;s use m_list.at() for similarity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433282</commentid>
    <comment_count>5</comment_count>
      <attachid>99941</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-07-06 23:34:04 -0700</bug_when>
    <thetext>Created attachment 99941
Patch V2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433284</commentid>
    <comment_count>6</comment_count>
      <attachid>99603</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-07-06 23:36:57 -0700</bug_when>
    <thetext>Comment on attachment 99603
Patch V1

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

Hi Morita-san,

Thank you very much for detailed review! I&apos;ve addressed most of your comments but not all (please see the comment below).

&gt;&gt; LayoutTests/ChangeLog:12
&gt;&gt; +        * css3/script-tests/TEMPLATE.html: Added.
&gt; 
&gt; Script test in separete js file is obsolete. Please put it inside HTML.

Done.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:6021
&gt;&gt; +    while (value) {
&gt; 
&gt; Is it possible to rewrite this with for statement? If it&apos;s possible, it&apos;s desirable
&gt; because this loops is for list traversal.
&gt; 
&gt; This loop looks too complicated anyway...
&gt; I guess we can make this clear by extracting a per-item function.
&gt; What do you think?

Thank you for suggestion, but I didn&apos;t rewrite with for statement.  At the end of each iteration, we need to check whether the current cssValue is NULL (end of the list) or comma so we cannot simply advance value by value = m_valueList-&gt;next().

Extracted the code in the loop as parseFontFeatureTag().

&gt;&gt; Source/WebCore/css/CSSParser.cpp:6026
&gt;&gt; +        if (value-&gt;string.length != 4)
&gt; 
&gt; having a named constant would be preferable.

Done.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:6051
&gt;&gt; +        settings-&gt;append(parsedValue.release());
&gt; 
&gt; You don&apos;t need release(). PassRefPtr does its job for you.

I followed the way that CSSParser::parseFontWeight() does.  Do we really need not call release()?

&gt;&gt; Source/WebCore/css/CSSParser.cpp:6054
&gt;&gt; +    if (settings &amp;&amp; settings-&gt;length()) {
&gt; 
&gt; Can setting be null?

Removed checking null.

&gt;&gt; Source/WebCore/css/CSSStyleSelector.cpp:5317
&gt;&gt; +            fontDescription.setFeatureSettings(0);
&gt; 
&gt; How about to define FontDescription::makeNormal() ? 
&gt; Then we can write something like
&gt; m_style-&gt;setFontDescription(m_style-&gt;fontDescription().makeNormal())

Added as makeNoFeatureSettings() because makeNormal() looks too generic when I glance at other methods in FontDescription.

BTW, IMHO, the method looks not to be in harmony with other methods in FontDescription.  Should we still do this?

&gt;&gt; Source/WebCore/css/FontFeatureValue.cpp:55
&gt;&gt; +    String result = &quot;&apos;&quot; + m_tag + &quot;&apos;&quot;;
&gt; 
&gt; How about to try StringBuilder? It would be more effective in this case.

Done.

&gt;&gt; Source/WebCore/platform/graphics/FontDescription.h:78
&gt;&gt; +        , m_featureSettings(0)
&gt; 
&gt; We don&apos;t need this. RefPtr automatically gets zero-cleared.

Removed.

&gt;&gt; Source/WebCore/platform/graphics/FontDescription.h:160
&gt;&gt; +    RefPtr&lt;FontFeatureSettings&gt; m_featureSettings; // The list of OpenType font feature settings.
&gt; 
&gt; I think we don&apos;t need this comment. The class name is clear enough.

Removed the comment.

&gt;&gt; Source/WebCore/platform/graphics/FontDescription.h:200
&gt;&gt; +        &amp;&amp; m_featureSettings.get() == other.m_featureSettings.get();
&gt; 
&gt; It looks you are comparing pointers. Is this intentional?

Changed to compare RefPtr itself.

&gt;&gt; Source/WebCore/platform/graphics/FontFeatureSettings.h:30
&gt;&gt; +#include &lt;wtf/RefPtr.h&gt;
&gt; 
&gt; PassRefPtr.h?

Added.

&gt;&gt; Source/WebCore/platform/graphics/FontFeatureSettings.h:39
&gt;&gt; +    FontFeature(const FontFeature&amp; other);
&gt; 
&gt; Do we need the explicit copy constructor?

Removed.

&gt;&gt; Source/WebCore/platform/graphics/FontFeatureSettings.h:40
&gt;&gt; +    FontFeature&amp; operator=(const FontFeature&amp;);
&gt; 
&gt; ...and an assignment operator?

Removed.

&gt;&gt; Source/WebCore/platform/graphics/FontFeatureSettings.h:56
&gt;&gt; +    void appendFeature(const FontFeature&amp; feature) { m_list.append(feature); }
&gt; 
&gt; append() looks enough. (we have at() anyway.)

Done.

&gt;&gt; Source/WebCore/platform/graphics/FontFeatureSettings.h:59
&gt;&gt; +    const FontFeature&amp; at(size_t index) const { return m_list[index]; }
&gt; 
&gt; let&apos;s use m_list.at() for similarity.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436932</commentid>
    <comment_count>7</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-07-13 22:30:19 -0700</bug_when>
    <thetext>(Cc&apos;ed people who I can see their name as reviewers on similar patches of this.)

I&apos;d appreciate if someone who has a vast experience on CSS area could take a look at the latest patch.

I&apos;d also like to ask I should enclose these change by ENABLE macros.

Regards,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440209</commentid>
    <comment_count>8</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-07-20 19:45:53 -0700</bug_when>
    <thetext>Could someone take a look?

Thanks in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445062</commentid>
    <comment_count>9</comment_count>
      <attachid>102606</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-01 18:14:28 -0700</bug_when>
    <thetext>Created attachment 102606
Patch V3(Rebased)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445068</commentid>
    <comment_count>10</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-01 18:21:52 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Created an attachment (id=102606) [details]
&gt; Patch V3(Rebased)

Just rebased to ToT.  Again, could someone review this patch?  Any feedback would be highly appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445102</commentid>
    <comment_count>11</comment_count>
      <attachid>102606</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-08-01 21:47:24 -0700</bug_when>
    <thetext>Comment on attachment 102606
Patch V3(Rebased)

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

I won&apos;t set r+ because I&apos;m not familiar with CSS code.  Some minor comments follow.

&gt; Source/WebCore/css/FontFeatureValue.cpp:17
&gt; + * You should have received a copy of the GNU Library General Public License
&gt; + * along with this library; see the file COPYING.LIB.  If not, write to
&gt; + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
&gt; + * Boston, MA 02110-1301, USA.

Why FontFeatueValue.{cpp,h} have LGPL copyright headers unlike FontFeatureSettings.h?

&gt; Source/WebCore/platform/graphics/FontFeatureSettings.h:44
&gt; +    int value() const { return m_value; }
&gt; +private:

Insert a blank line before &quot;private:&quot;.

&gt; Source/WebCore/platform/graphics/FontFeatureSettings.h:59
&gt; +    const FontFeature&amp; at(size_t index) const { return m_list.at(index); }
&gt; +private:

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445108</commentid>
    <comment_count>12</comment_count>
      <attachid>102615</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-01 22:53:46 -0700</bug_when>
    <thetext>Created attachment 102615
Patch V4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445109</commentid>
    <comment_count>13</comment_count>
      <attachid>102606</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-01 22:55:16 -0700</bug_when>
    <thetext>Comment on attachment 102606
Patch V3(Rebased)

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

Hi Kent-san,

Thank you so much taking a look! Revised the patch.

&gt;&gt; Source/WebCore/css/FontFeatureValue.cpp:17
&gt;&gt; + * Boston, MA 02110-1301, USA.
&gt; 
&gt; Why FontFeatueValue.{cpp,h} have LGPL copyright headers unlike FontFeatureSettings.h?

Oops, I referred to FontValue.{cpp,h} for copyright headers here..  Revised to have the same copyright headers as FontFeatureSettings.h has.

&gt;&gt; Source/WebCore/platform/graphics/FontFeatureSettings.h:44
&gt;&gt; +private:
&gt; 
&gt; Insert a blank line before &quot;private:&quot;.

Done.

&gt;&gt; Source/WebCore/platform/graphics/FontFeatureSettings.h:59
&gt;&gt; +private:
&gt; 
&gt; ditto.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445188</commentid>
    <comment_count>14</comment_count>
      <attachid>102615</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2011-08-02 04:57:19 -0700</bug_when>
    <thetext>Comment on attachment 102615
Patch V4

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

Putting r- as you may think some of my comments are useful.

&gt; LayoutTests/css3/font-feature-settings-parsing.html:13
&gt; +function parseResultOf(value) {

I&apos;d prefer to use &lt;style&gt; or style attribute for testcases of newly added CSS properties.

&gt; LayoutTests/css3/font-feature-settings-parsing.html:19
&gt; +var validInputsAndExpectedResults = [

How about using examples in http://www.w3.org/TR/2011/WD-css3-fonts-20110324/#propdef-font-feature-settings as testcases?

&gt; LayoutTests/css3/font-feature-settings-parsing.html:59
&gt; +&lt;/html&gt;

I want to see a test to check if font-feature-settings is inherited.

Also, I think font-feature-settings can be written in @font-face, right? If so, please add a testcase for it.

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1704
&gt; +        case CSSPropertyWebkitFontFeatureSettings:

Hmm... I think we should implement this and a testcase. Note that TextLineThrough, TextOverline, and TextUnderline are actually not implemented. (I guess computed value for WebkitTextEmphasis must be implemented, too).

If you want to do this in another patch, you may need to do

1. put this case in another place and add a FIXME comment
2. write a failing testcase

&gt; Source/WebCore/css/CSSStyleSelector.cpp:5156
&gt; +            if (m_style-&gt;setFontDescription(m_style-&gt;fontDescription().makeNormalFeatureSettings()))

CSSStyleSelector::setFontDescription automatically updates m_fontDirty?

&gt; Source/WebCore/css/CSSStyleSelector.cpp:5176
&gt; +        if (m_style-&gt;setFontDescription(fontDescription))

Use CSSStyleSelector::setFontDescription?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445258</commentid>
    <comment_count>15</comment_count>
      <attachid>102648</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-02 07:43:37 -0700</bug_when>
    <thetext>Created attachment 102648
Patch V5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445260</commentid>
    <comment_count>16</comment_count>
      <attachid>102615</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-02 07:45:31 -0700</bug_when>
    <thetext>Comment on attachment 102615
Patch V4

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

Hamaji-san,

Thank you so much for review.  I&apos;ve revised the patch.

&gt;&gt; LayoutTests/css3/font-feature-settings-parsing.html:13
&gt;&gt; +function parseResultOf(value) {
&gt; 
&gt; I&apos;d prefer to use &lt;style&gt; or style attribute for testcases of newly added CSS properties.

Done.

&gt;&gt; LayoutTests/css3/font-feature-settings-parsing.html:19
&gt;&gt; +var validInputsAndExpectedResults = [
&gt; 
&gt; How about using examples in http://www.w3.org/TR/2011/WD-css3-fonts-20110324/#propdef-font-feature-settings as testcases?

Used the examples for valid inputs.

&gt;&gt; LayoutTests/css3/font-feature-settings-parsing.html:59
&gt;&gt; +&lt;/html&gt;
&gt; 
&gt; I want to see a test to check if font-feature-settings is inherited.
&gt; 
&gt; Also, I think font-feature-settings can be written in @font-face, right? If so, please add a testcase for it.

Added a test case for inherited.

&gt;&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1704
&gt;&gt; +        case CSSPropertyWebkitFontFeatureSettings:
&gt; 
&gt; Hmm... I think we should implement this and a testcase. Note that TextLineThrough, TextOverline, and TextUnderline are actually not implemented. (I guess computed value for WebkitTextEmphasis must be implemented, too).
&gt; 
&gt; If you want to do this in another patch, you may need to do
&gt; 
&gt; 1. put this case in another place and add a FIXME comment
&gt; 2. write a failing testcase

Thank you for pointing this out.  I didn&apos;t recognize that I need to implement this.  Implemented.

&gt;&gt; Source/WebCore/css/CSSStyleSelector.cpp:5156
&gt;&gt; +            if (m_style-&gt;setFontDescription(m_style-&gt;fontDescription().makeNormalFeatureSettings()))
&gt; 
&gt; CSSStyleSelector::setFontDescription automatically updates m_fontDirty?

Done.

&gt;&gt; Source/WebCore/css/CSSStyleSelector.cpp:5176
&gt;&gt; +        if (m_style-&gt;setFontDescription(fontDescription))
&gt; 
&gt; Use CSSStyleSelector::setFontDescription?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445667</commentid>
    <comment_count>17</comment_count>
      <attachid>102648</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2011-08-02 18:51:46 -0700</bug_when>
    <thetext>Comment on attachment 102648
Patch V5

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

Drive-by comments.

&gt; LayoutTests/css3/font-feature-settings-parsing.html:5
&gt; +&lt;style&gt;

I&apos;d recommend adding following tests:

two normal&apos;s: normal, normal
normal and feature tag: normal, &quot;dlig&quot; 1
value greater than 1:  &quot;swsh&quot; 2
value with fraction: &quot;swsh&quot; 1.5
valid tag with negative value: &quot;swsh&quot; -1
tag starts with valid name but with extra characters at the end: dliga
same tag name with different values: dlig 1, dlig 0
mixture of valid tags and invalid tags: aaaaa on, dlig on, PKRN -1
valid tag name contains unusual letters: &quot;@ #}&quot;
combination of cases: dlig, DLIG, DLig

&gt; LayoutTests/css3/font-feature-settings-parsing.html:6
&gt; +#valid1 {

I&apos;d recommend using more descriptive test names, for example:

valid1_normal
valid2_value_1
valid3_value_on
valid4_value_missing
...

&gt; Source/WebCore/ChangeLog:6
&gt; +        Introduces CSS3 font-feature-settings property as -webkit-font-feature-settings.  This change only contains parsing and part.  Parsed information are stored in FontDescription class.

s/parsing and part/parsing part/ ?

&gt; Source/WebCore/css/CSSParser.cpp:6329
&gt; +        if (value-&gt;unit == CSSPrimitiveValue::CSS_NUMBER &amp;&amp; value-&gt;fValue &gt;= 0.)

What should we do if value-&gt;fValue &lt; 0?
- Should we use the default value, i.e., 1?
- Should we drop the tag-value pair?
- Or should we drop the whole property?

&gt; Source/WebCore/css/CSSParser.cpp:6330
&gt; +            featureValue = primitiveValueCache()-&gt;createValue(value-&gt;fValue, static_cast&lt;CSSPrimitiveValue::UnitTypes&gt;(value-&gt;unit));

The spec says the value must be an integer (if not on or off).
- Is it OK to store it as float?
- Should we check if it is actually an integer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445686</commentid>
    <comment_count>18</comment_count>
      <attachid>102648</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2011-08-02 19:17:17 -0700</bug_when>
    <thetext>Comment on attachment 102648
Patch V5

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

Another drive-by.

&gt; Source/WebCore/css/CSSParser.cpp:6332
&gt; +            featureValue = primitiveValueCache()-&gt;createIdentifierValue(value-&gt;id);

Is it important to keep the information that the value is given as on/off, rather than as 1/0?
If not, always storing the value as integer would save later processing.

&gt; Source/WebCore/css/CSSParser.cpp:6353
&gt; +    CSSParserValue* value = m_valueList-&gt;current();

nit: Rewriting as follows will save a few lines and one if-depth.

for (CSSParserValue* value = m_valueList-&gt;current(); value; value = m_valueList-&gt;next()) {
  ...
  if (!value)
    break;
  if (...)
    return false;
}

&gt; Source/WebCore/css/FontFeatureValue.cpp:45
&gt; +    if (m_value-&gt;primitiveType() == CSSPrimitiveValue::CSS_IDENT) {

You can save processing here if you store 1/0 for on/off as I mentioned above.

&gt; Source/WebCore/platform/graphics/FontFeatureSettings.h:47
&gt; +    int m_value;

const int?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445769</commentid>
    <comment_count>19</comment_count>
      <attachid>102755</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-03 02:09:18 -0700</bug_when>
    <thetext>Created attachment 102755
Patch V6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445770</commentid>
    <comment_count>20</comment_count>
      <attachid>102648</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-03 02:18:29 -0700</bug_when>
    <thetext>Comment on attachment 102648
Patch V5

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

Yuzo-san,

Thank you for your detailed review! Revised the patch.

&gt;&gt; LayoutTests/css3/font-feature-settings-parsing.html:5
&gt;&gt; +&lt;style&gt;
&gt; 
&gt; I&apos;d recommend adding following tests:
&gt; 
&gt; two normal&apos;s: normal, normal
&gt; normal and feature tag: normal, &quot;dlig&quot; 1
&gt; value greater than 1:  &quot;swsh&quot; 2
&gt; value with fraction: &quot;swsh&quot; 1.5
&gt; valid tag with negative value: &quot;swsh&quot; -1
&gt; tag starts with valid name but with extra characters at the end: dliga
&gt; same tag name with different values: dlig 1, dlig 0
&gt; mixture of valid tags and invalid tags: aaaaa on, dlig on, PKRN -1
&gt; valid tag name contains unusual letters: &quot;@ #}&quot;
&gt; combination of cases: dlig, DLIG, DLig

Modified the tests following the suggestion.

&gt;&gt; LayoutTests/css3/font-feature-settings-parsing.html:6
&gt;&gt; +#valid1 {
&gt; 
&gt; I&apos;d recommend using more descriptive test names, for example:
&gt; 
&gt; valid1_normal
&gt; valid2_value_1
&gt; valid3_value_on
&gt; valid4_value_missing
&gt; ...

Ditto.

&gt;&gt; Source/WebCore/ChangeLog:6
&gt;&gt; +        Introduces CSS3 font-feature-settings property as -webkit-font-feature-settings.  This change only contains parsing and part.  Parsed information are stored in FontDescription class.
&gt; 
&gt; s/parsing and part/parsing part/ ?

Oops, thank you for pointing out. Done.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:6329
&gt;&gt; +        if (value-&gt;unit == CSSPrimitiveValue::CSS_NUMBER &amp;&amp; value-&gt;fValue &gt;= 0.)
&gt; 
&gt; What should we do if value-&gt;fValue &lt; 0?
&gt; - Should we use the default value, i.e., 1?
&gt; - Should we drop the tag-value pair?
&gt; - Or should we drop the whole property?

I took the last option because it seems that other properties which accepts comma separated values drop whole value if an error occurs during parsing phase.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:6330
&gt;&gt; +            featureValue = primitiveValueCache()-&gt;createValue(value-&gt;fValue, static_cast&lt;CSSPrimitiveValue::UnitTypes&gt;(value-&gt;unit));
&gt; 
&gt; The spec says the value must be an integer (if not on or off).
&gt; - Is it OK to store it as float?
&gt; - Should we check if it is actually an integer?

Added integer check.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:6332
&gt;&gt; +            featureValue = primitiveValueCache()-&gt;createIdentifierValue(value-&gt;id);
&gt; 
&gt; Is it important to keep the information that the value is given as on/off, rather than as 1/0?
&gt; If not, always storing the value as integer would save later processing.

Modified to hold the value as integer instead of string.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:6353
&gt;&gt; +    CSSParserValue* value = m_valueList-&gt;current();
&gt; 
&gt; nit: Rewriting as follows will save a few lines and one if-depth.
&gt; 
&gt; for (CSSParserValue* value = m_valueList-&gt;current(); value; value = m_valueList-&gt;next()) {
&gt;   ...
&gt;   if (!value)
&gt;     break;
&gt;   if (...)
&gt;     return false;
&gt; }

Done.

&gt;&gt; Source/WebCore/css/FontFeatureValue.cpp:45
&gt;&gt; +    if (m_value-&gt;primitiveType() == CSSPrimitiveValue::CSS_IDENT) {
&gt; 
&gt; You can save processing here if you store 1/0 for on/off as I mentioned above.

Done.

&gt;&gt; Source/WebCore/platform/graphics/FontFeatureSettings.h:47
&gt;&gt; +    int m_value;
&gt; 
&gt; const int?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445771</commentid>
    <comment_count>21</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-03 02:22:07 -0700</bug_when>
    <thetext>Hamaji-san,

(In reply to comment #14)
&gt; Also, I think font-feature-settings can be written in @font-face, right? If so, please add a testcase for it.

(I forgot to reply this comment.)
Since I don&apos;t implement rendering part, I cannot add a testcase for @font-face.  I left a note on ChangeLog and I&apos;ll add a test for it after implementing rendering part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446346</commentid>
    <comment_count>22</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2011-08-03 23:25:20 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Hamaji-san,
&gt; 
&gt; (In reply to comment #14)
&gt; &gt; Also, I think font-feature-settings can be written in @font-face, right? If so, please add a testcase for it.
&gt; 
&gt; (I forgot to reply this comment.)
&gt; Since I don&apos;t implement rendering part, I cannot add a testcase for @font-face.  I left a note on ChangeLog and I&apos;ll add a test for it after implementing rendering part.

Cannot we test the parsing of font-feature-settings?

http://plexode.com/eval3/#ht=%3Cstyle%3E%0A%40font-face%20%7B%0A%20%20font-size%3A%2014px%3B%0A%7D%0A%3C%2Fstyle%3E%0A&amp;ohh=1&amp;ohj=1&amp;jt=document.styleSheets%5B2%5D.cssRules%5B0%5D.style.fontSize&amp;ojh=1&amp;ojj=1&amp;ms=100&amp;oth=0&amp;otj=0&amp;cex=1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446349</commentid>
    <comment_count>23</comment_count>
      <attachid>102755</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2011-08-03 23:56:28 -0700</bug_when>
    <thetext>Comment on attachment 102755
Patch V6

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

Otherwise, looks good to me.

&gt; Source/WebCore/css/FontFeatureValue.h:36
&gt; +    static PassRefPtr&lt;FontFeatureValue&gt; create(const String&amp; tag)

Why don&apos;t you take both tag and value here? In this way we&apos;ll never forget initializing m_value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446373</commentid>
    <comment_count>24</comment_count>
      <attachid>102879</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-04 00:55:23 -0700</bug_when>
    <thetext>Created attachment 102879
Patch V7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446374</commentid>
    <comment_count>25</comment_count>
      <attachid>102879</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2011-08-04 00:59:48 -0700</bug_when>
    <thetext>Comment on attachment 102879
Patch V7

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

&gt; Source/WebCore/css/CSSParser.cpp:6329
&gt; +    RefPtr&lt;FontFeatureValue&gt; parsedValue = FontFeatureValue::create(value-&gt;string, 1);

Cannot we create this object after the following if-clause? I think we can eliminate setValue from FontFeatureValue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446375</commentid>
    <comment_count>26</comment_count>
      <attachid>102755</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-04 01:01:29 -0700</bug_when>
    <thetext>Comment on attachment 102755
Patch V6

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

Hamaji-san,

Thank you for took another look and suggestion for testing with @font-face.  I&apos;ve added a few tests(for @font-face and duplicate &quot;normal&quot; value).

&gt;&gt; Source/WebCore/css/FontFeatureValue.h:36
&gt;&gt; +    static PassRefPtr&lt;FontFeatureValue&gt; create(const String&amp; tag)
&gt; 
&gt; Why don&apos;t you take both tag and value here? In this way we&apos;ll never forget initializing m_value.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446376</commentid>
    <comment_count>27</comment_count>
      <attachid>102879</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-04 01:05:11 -0700</bug_when>
    <thetext>Comment on attachment 102879
Patch V7

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

&gt;&gt; Source/WebCore/css/CSSParser.cpp:6329
&gt;&gt; +    RefPtr&lt;FontFeatureValue&gt; parsedValue = FontFeatureValue::create(value-&gt;string, 1);
&gt; 
&gt; Cannot we create this object after the following if-clause? I think we can eliminate setValue from FontFeatureValue.

I was tempted not to create a temporary variable.  Will fix.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446385</commentid>
    <comment_count>28</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-04 01:29:45 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; I was tempted not to create a temporary variable.  Will fix.  Thanks!

I&apos;ll land the revised patch after https://bugs.webkit.org/show_bug.cgi?id=10874 is landed because it will conflict with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446945</commentid>
    <comment_count>29</comment_count>
      <attachid>103013</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-04 18:12:44 -0700</bug_when>
    <thetext>Created attachment 103013
Patch V8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446946</commentid>
    <comment_count>30</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-04 18:14:42 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; Created an attachment (id=103013) [details]
&gt; Patch V8

Rebased to ToT and addressed Hamaji-san&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446949</commentid>
    <comment_count>31</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2011-08-04 18:19:55 -0700</bug_when>
    <thetext>Thank you for addressing my drive-by comments. I have no more comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447090</commentid>
    <comment_count>32</comment_count>
      <attachid>103013</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-05 00:35:09 -0700</bug_when>
    <thetext>Comment on attachment 103013
Patch V8

Clearing flags on attachment: 103013

Committed r92457: &lt;http://trac.webkit.org/changeset/92457&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447091</commentid>
    <comment_count>33</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-05 00:35:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448591</commentid>
    <comment_count>34</comment_count>
    <who name="Richard Rutter">clagnut+webkitbugzilla</who>
    <bug_when>2011-08-09 07:56:36 -0700</bug_when>
    <thetext>Excuse my ignorance, but should this fix be working in the current nightlies? It doesn&apos;t seem to be at the moment (nightly build at time of writing being r92670).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448598</commentid>
    <comment_count>35</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-09 08:11:09 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; Excuse my ignorance, but should this fix be working in the current nightlies? It doesn&apos;t seem to be at the moment (nightly build at time of writing being r92670).

No. As I noted in ChangeLog, this patch contains only CSS parsing part so you wouldn&apos;t see any effect of the property for now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99063</attachid>
            <date>2011-06-29 03:23:38 -0700</date>
            <delta_ts>2011-07-03 23:57:17 -0700</delta_ts>
            <desc>WIP Patch V0</desc>
            <filename>bug-63618-20110629192335.patch</filename>
            <type>text/plain</type>
            <size>26506</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODk5OTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMv
Zm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
Y3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcGFyc2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmU2NTBmM2UyM2VlMGM0NTQxMzE0ODg2MWJiYTU1M2QyMDQ4ZGY2MQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmctZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKK1Rlc3QgcGFyc2luZyBvZiB0aGUgQ1NTMyBmb250
LWZlYXR1cmUtc2V0dGluZ3MgcHJvcGVydHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCistIFRlc3RzIHZhbGlkIGlucHV0cworUEFTUyBwYXJzZVJlc3VsdE9mKCJub3JtYWwiKSBp
cyAibm9ybWFsIgorUEFTUyBwYXJzZVJlc3VsdE9mKCInYWFhYSciKSBpcyAiJ2FhYWEnIgorUEFT
UyBwYXJzZVJlc3VsdE9mKCInYWFhYScgMSIpIGlzICInYWFhYScgMSIKK1BBU1MgcGFyc2VSZXN1
bHRPZigiXCJhYWFhXCIgMCIpIGlzICInYWFhYScgMCIKK1BBU1MgcGFyc2VSZXN1bHRPZigiJ2Fh
YWEnIG9uIikgaXMgIidhYWFhJyBvbiIKK1BBU1MgcGFyc2VSZXN1bHRPZigiXCJhYWFhXCIgb2Zm
IikgaXMgIidhYWFhJyBvZmYiCitQQVNTIHBhcnNlUmVzdWx0T2YoImFhYWEsICdiYmJiJywgY2Nj
YyIpIGlzICInYWFhYScsICdiYmJiJywgJ2NjY2MnIgorUEFTUyBwYXJzZVJlc3VsdE9mKCInYWFh
YScgb24sIGJiYmIgMSwgY2NjYyBvZmYiKSBpcyAiJ2FhYWEnIG9uLCAnYmJiYicgMSwgJ2NjY2Mn
IG9mZiIKK1BBU1MgcGFyc2VSZXN1bHRPZigiYWFhYSwgYmJiYiAwLCBcImNjY2NcIiIpIGlzICIn
YWFhYScsICdiYmJiJyAwLCAnY2NjYyciCistIFRlc3RzIGludmFsaWQgaW5wdXRzLiAgUmVzdWx0
cyBzaG91bGQgYmUgZW1wdHkgc3RyaW5ncy4KK1BBU1MgcGFyc2VSZXN1bHRPZigiMSIpIGlzICIi
CitQQVNTIHBhcnNlUmVzdWx0T2YoIm9mZiIpIGlzICIiCitQQVNTIHBhcnNlUmVzdWx0T2YoImFh
YWFhIikgaXMgIiIKK1BBU1MgcGFyc2VSZXN1bHRPZigiXCJhYWFhYVwiIikgaXMgIiIKK1BBU1Mg
cGFyc2VSZXN1bHRPZigiYWFhYSAtMSIpIGlzICIiCitQQVNTIHBhcnNlUmVzdWx0T2YoImFhYWEg
XCJiYmJiXCIiKSBpcyAiIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJhYWFhIGJiYmIiKSBpcyAiIgor
UEFTUyBwYXJzZVJlc3VsdE9mKCJhYWFhLCBvbiIpIGlzICIiCitQQVNTIHBhcnNlUmVzdWx0T2Yo
IlwiYWFhYVwiIDEsIFwiYmJiYlwiLCAwIikgaXMgIiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1wYXJzaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2Zv
bnQtZmVhdHVyZS1zZXR0aW5ncy1wYXJzaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRmYjEzZTYzNDRm
ZTE4OGFjMzdhNTVjZmYyNjQ1YmQyODY5ODIzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmcuaHRtbApAQCAtMCwwICsxLDEz
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcGFyc2luZy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvc2NyaXB0
LXRlc3RzL1RFTVBMQVRFLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL3NjcmlwdC10ZXN0cy9URU1Q
TEFURS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwNzcyMjgyYjM2NzQ4YTE4MjAzMzg1ZjFhMmVlNGVkNjkx
ZDFiODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3NjcmlwdC10ZXN0cy9U
RU1QTEFURS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3Jp
cHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0iWU9VUl9KU19GSUxFX0hFUkUiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL3NjcmlwdC10
ZXN0cy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcGFyc2luZy5qcyBiL0xheW91dFRlc3RzL2NzczMv
c2NyaXB0LXRlc3RzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1wYXJzaW5nLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMyZTUxNjVkMTYwMjFjOTY0ZTk3ZTM4NzA5ZGY5MmM3YjAyNTQxMmIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jc3MzL3NjcmlwdC10ZXN0cy9mb250LWZlYXR1cmUtc2V0dGluZ3Mt
cGFyc2luZy5qcwpAQCAtMCwwICsxLDQyIEBACitkZXNjcmlwdGlvbignVGVzdCBwYXJzaW5nIG9m
IHRoZSBDU1MzIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBwcm9wZXJ0eS4nKTsKKworZnVuY3Rpb24g
cGFyc2VSZXN1bHRPZih2YWx1ZSkgeworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CisgICAgZWxlbWVudC5zdHlsZVsnLXdlYmtpdC1mb250LWZlYXR1cmUt
c2V0dGluZ3MnXSA9IHZhbHVlOworICAgIHJldHVybiBlbGVtZW50LnN0eWxlWyctd2Via2l0LWZv
bnQtZmVhdHVyZS1zZXR0aW5ncyddOworfQorCit2YXIgdmFsaWRJbnB1dHNBbmRFeHBlY3RlZFJl
c3VsdHMgPSBbCisgICAgLy8gSW5wdXQsIEV4cGVjdGVkCisgICAgWydub3JtYWwnLCAibm9ybWFs
Il0sCisgICAgWyInYWFhYSciLCAiJ2FhYWEnIl0sCisgICAgWyInYWFhYScgMSIsICInYWFhYScg
MSJdLAorICAgIFsnXFwiYWFhYVxcIiAwJywgIidhYWFhJyAwIl0sCisgICAgWyInYWFhYScgb24i
LCAiJ2FhYWEnIG9uIl0sCisgICAgWydcXCJhYWFhXFwiIG9mZicsICInYWFhYScgb2ZmIl0sCisg
ICAgWyJhYWFhLCAnYmJiYicsIGNjY2MiLCAiJ2FhYWEnLCAnYmJiYicsICdjY2NjJyJdLAorICAg
IFsiJ2FhYWEnIG9uLCBiYmJiIDEsIGNjY2Mgb2ZmIiwgIidhYWFhJyBvbiwgJ2JiYmInIDEsICdj
Y2NjJyBvZmYiXSwKKyAgICBbJ2FhYWEsIGJiYmIgMCwgXFwiY2NjY1xcIicsICInYWFhYScsICdi
YmJiJyAwLCAnY2NjYyciXSwKK107CisKK2RlYnVnKCctIFRlc3RzIHZhbGlkIGlucHV0cycpOwor
Zm9yICh2YXIgaSA9IDA7IGkgPCB2YWxpZElucHV0c0FuZEV4cGVjdGVkUmVzdWx0cy5sZW5ndGg7
ICsraSkKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BhcnNlUmVzdWx0T2YoIicgKyB2YWxp
ZElucHV0c0FuZEV4cGVjdGVkUmVzdWx0c1tpXVswXSArICciKScsIHZhbGlkSW5wdXRzQW5kRXhw
ZWN0ZWRSZXN1bHRzW2ldWzFdKTsKKwordmFyIGludmFsaWRJbnB1dHMgPSBbCisgICAgJzEnLAor
ICAgICdvZmYnLAorICAgICdhYWFhYScsCisgICAgJ1xcImFhYWFhXFwiJywKKyAgICAnYWFhYSAt
MScsCisgICAgJ2FhYWEgXFwiYmJiYlxcIicsCisgICAgJ2FhYWEgYmJiYicsCisgICAgJ2FhYWEs
IG9uJywKKyAgICAnXFwiYWFhYVxcIiAxLCBcXCJiYmJiXFwiLCAwJywKK107CisKK2RlYnVnKCct
IFRlc3RzIGludmFsaWQgaW5wdXRzLiAgUmVzdWx0cyBzaG91bGQgYmUgZW1wdHkgc3RyaW5ncy4n
KTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgaW52YWxpZElucHV0cy5sZW5ndGg7ICsraSkKKyAgICBz
aG91bGRCZSgncGFyc2VSZXN1bHRPZigiJyArIGludmFsaWRJbnB1dHNbaV0gKyAnIiknLCAnIiIn
KTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXgg
YTBlYWI5NzNjOTJhNGQ3OWM2MjRhM2NhZjg4YWY2ZDlmMDRlYzNlZC4uMzZlODNkN2M4OGMxYWYx
ZjEzZGNmNmE5ZDc1ZjcwYmVlZTM0ZjA3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtODIxLDYgKzgy
MSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3QuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbWlseS5oJywKKyAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRNZXRyaWNzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRPcmllbnRhdGlvbi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9Gb250UmVuZGVyaW5nTW9kZS5oJywKQEAgLTIzNjcsNiArMjM2OCw4IEBACiAgICAgICAg
ICAgICAnY3NzL0Rhc2hib2FyZFJlZ2lvbi5oJywKICAgICAgICAgICAgICdjc3MvRm9udEZhbWls
eVZhbHVlLmNwcCcsCiAgICAgICAgICAgICAnY3NzL0ZvbnRGYW1pbHlWYWx1ZS5oJywKKyAgICAg
ICAgICAgICdjc3MvRm9udEZlYXR1cmVWYWx1ZS5jcHAnLAorICAgICAgICAgICAgJ2Nzcy9Gb250
RmVhdHVyZVZhbHVlLmgnLAogICAgICAgICAgICAgJ2Nzcy9Gb250VmFsdWUuY3BwJywKICAgICAg
ICAgICAgICdjc3MvRm9udFZhbHVlLmgnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYUZlYXR1cmVO
YW1lcy5jcHAnLApAQCAtMzk1Niw2ICszOTU5LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9Gb250RmFsbGJhY2tMaXN0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udEZhbWlseS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRG
ZWF0dXJlU2V0dGluZ3MuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250
RmFzdFBhdGguY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZv
cm1EYXRhLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3Jt
RGF0YS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHAKaW5kZXggNjJmNGVhNjEyNTZhYWY4ZGM4ZmYyYThjNjNjYzM0N2M1NTZlYzI2
NC4uNzYxNmIyMjU5OGRkYzYwMjllNDRhMDg2YWI2NGQyMjNhMWRmOGQ3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTE2
ODEsNiArMTY4MSw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShpbnQgcHJvcGVyCiAgICAgICAgICAgICBicmVh
azsKIAogICAgICAgICAvKiBVbmltcGxlbWVudGVkIENTUyAzIHByb3BlcnRpZXMgKGluY2x1ZGlu
ZyBDU1MzIHNob3J0aGFuZCBwcm9wZXJ0aWVzKSAqLworICAgICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0Rm9udEZlYXR1cmVTZXR0aW5nczoKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dFRleHRFbXBoYXNpczoKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRMaW5lVGhyb3VnaDoK
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRMaW5lVGhyb3VnaENvbG9yOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcAppbmRleCBmZjQzYTJkY2VmODY5MDlkMDM3NzAwNzQwOWFiMmQxMDRiNmU0
OWVhLi4wNzkwZmI2MDZkNGZkNTZlZTg2NWFmNmM3MTZhZTQ5MGRlNGRjMzI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcApAQCAtNjAsNiArNjAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiRm9udEZhbWlseVZhbHVl
LmgiCisjaW5jbHVkZSAiRm9udEZlYXR1cmVWYWx1ZS5oIgogI2luY2x1ZGUgIkZvbnRWYWx1ZS5o
IgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIYXNoVG9vbHMuaCIK
QEAgLTIwNzIsNiArMjA3MywxMiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJv
cElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIHBh
cnNlTGluZUJveENvbnRhaW4oaW1wb3J0YW50KTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEZvbnRGZWF0dXJlU2V0dGluZ3M6CisgICAgICAgIGlmIChpZCA9PSBD
U1NWYWx1ZU5vcm1hbCkKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIHBhcnNlRm9udEZlYXR1cmVTZXR0aW5ncyhpbXBv
cnRhbnQpOworICAgICAgICBicmVhazsKIAogI2lmIEVOQUJMRShTVkcpCiAgICAgZGVmYXVsdDoK
QEAgLTYwMDAsNiArNjAwNyw1NyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VMaW5lQm94Q29udGFp
bihib29sIGltcG9ydGFudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBDU1NQYXJzZXI6
OnBhcnNlRm9udEZlYXR1cmVTZXR0aW5ncyhib29sIGltcG9ydGFudCkKK3sKKyAgICBDU1NQYXJz
ZXJWYWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworICAgIGlmIChtX3ZhbHVl
TGlzdC0+c2l6ZSgpID09IDEgJiYgdmFsdWUtPmlkID09IENTU1ZhbHVlTm9ybWFsKSB7CisgICAg
ICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbm9ybWFsVmFsdWUgPSBwcmltaXRpdmVWYWx1
ZUNhY2hlKCktPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vcm1hbCk7CisgICAgICAg
IG1fdmFsdWVMaXN0LT5uZXh0KCk7CisgICAgICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5V2Vi
a2l0Rm9udEZlYXR1cmVTZXR0aW5ncywgbm9ybWFsVmFsdWUucmVsZWFzZSgpLCBpbXBvcnRhbnQp
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0
PiBzZXR0aW5ncyA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBhcmF0ZWQoKTsKKyAgICB3
aGlsZSAodmFsdWUpIHsKKyAgICAgICAgLy8vIEZlYXR1cmUgdGFnIG5hbWUgY29tZXMgZmlyc3QK
KyAgICAgICAgaWYgKHZhbHVlLT51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5H
ICYmIHZhbHVlLT51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIC8vIEFzc3VtZXMgdGFnIG5hbWUgY29uc2lzdHMg
b2YgNC1sZXR0ZXIgY2hhcmFjdGVycworICAgICAgICBpZiAodmFsdWUtPnN0cmluZy5sZW5ndGgg
IT0gNCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgUmVmUHRyPEZvbnRGZWF0
dXJlVmFsdWU+IHBhcnNlZFZhbHVlID0gRm9udEZlYXR1cmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5z
dHJpbmcpOworICAgICAgICB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5uZXh0KCk7CisKKyAgICAgICAg
Ly8gRmVhdHVyZSB0YWcgdmFsdWVzIG1pZ2h0IGZvbGxvdworICAgICAgICBpZiAodmFsdWUpIHsK
KyAgICAgICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gZmVhdHVyZVZhbHVlOworICAg
ICAgICAgICAgaWYgKHZhbHVlLT51bml0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVS
ICYmIHZhbHVlLT5mVmFsdWUgPj0gMC4pCisgICAgICAgICAgICAgICAgZmVhdHVyZVZhbHVlID0g
cHJpbWl0aXZlVmFsdWVDYWNoZSgpLT5jcmVhdGVWYWx1ZSh2YWx1ZS0+ZlZhbHVlLCBzdGF0aWNf
Y2FzdDxDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzPih2YWx1ZS0+dW5pdCkpOworICAgICAg
ICAgICAgZWxzZSBpZiAodmFsdWUtPmlkID09IENTU1ZhbHVlT24gfHwgdmFsdWUtPmlkID09IENT
U1ZhbHVlT2ZmKQorICAgICAgICAgICAgICAgIGZlYXR1cmVWYWx1ZSA9IHByaW1pdGl2ZVZhbHVl
Q2FjaGUoKS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKHZhbHVlLT5pZCk7CisKKyAgICAgICAgICAg
IGlmIChmZWF0dXJlVmFsdWUpIHsKKyAgICAgICAgICAgICAgICBwYXJzZWRWYWx1ZS0+c2V0VmFs
dWUoZmVhdHVyZVZhbHVlLnJlbGVhc2UoKSk7CisgICAgICAgICAgICAgICAgdmFsdWUgPSBtX3Zh
bHVlTGlzdC0+bmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYg
KHZhbHVlKSB7CisgICAgICAgICAgICBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUGFyc2VyVmFsdWU6
Ok9wZXJhdG9yICYmIHZhbHVlLT5pVmFsdWUgPT0gJywnKQorICAgICAgICAgICAgICAgIHZhbHVl
ID0gbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgc2V0dGluZ3MtPmFwcGVuZChwYXJz
ZWRWYWx1ZS5yZWxlYXNlKCkpOworICAgIH0KKworICAgIGlmIChzZXR0aW5ncyAmJiBzZXR0aW5n
cy0+bGVuZ3RoKCkpIHsKKyAgICAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRGb250
RmVhdHVyZVNldHRpbmdzLCBzZXR0aW5ncy5yZWxlYXNlKCksIGltcG9ydGFudCk7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRpYyBpbmxp
bmUgaW50IHl5ZXJyb3IoY29uc3QgY2hhciopIHsgcmV0dXJuIDE7IH0KIAogI2RlZmluZSBFTkRf
VE9LRU4gMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IGM2ZjA3OGE5YjlmYmQ3MGQ1NWY5ZWNm
NjY2NGI1ZjkzY2ViNzIzZWIuLjcyYzBlNDMwMjQwZjgxOGM1OWNhNDY0MzllNmRiOTE2NTAwN2Jk
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTE4MSw2ICsxODEsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICAgICAgYm9vbCBwYXJzZUxpbmVCb3hDb250YWluKGJvb2wgaW1wb3J0
YW50KTsKIAorICAgICAgICBib29sIHBhcnNlRm9udEZlYXR1cmVTZXR0aW5ncyhib29sIGltcG9y
dGFudCk7CisKICAgICAgICAgaW50IHl5cGFyc2UoKTsKIAogICAgICAgICBDU1NQYXJzZXJTZWxl
Y3RvciogY3JlYXRlRmxvYXRpbmdTZWxlY3RvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVy
dHlOYW1lcy5pbgppbmRleCA3NzQ3ZDQ5YWZlZDE1NDZhMGRlNTY5ZjllYjA5NTI1YzI5NmU0MWQ4
Li5lMWRkZjUwZDZiNjRjNjg0MTg5YmIzYzIyZWYxODQ3MTRhMDExNzNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtMjAsNiArMjAsNyBAQCBmb250LXN0eWxlCiBm
b250LXZhcmlhbnQKIGZvbnQtd2VpZ2h0CiB0ZXh0LXJlbmRlcmluZworLXdlYmtpdC1mb250LWZl
YXR1cmUtc2V0dGluZ3MKIC13ZWJraXQtZm9udC1zbW9vdGhpbmcKIC13ZWJraXQtdGV4dC1vcmll
bnRhdGlvbgogLWVwdWItdGV4dC1vcmllbnRhdGlvbiA9IC13ZWJraXQtdGV4dC1vcmllbnRhdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IGUwZTU2Y2UzMzJh
NzM4ZmEyZGFiMzhmYjI1MjZiOWI1OTllYmJmNDkuLmM3YmY2MDFlZDRkODc5NmI2MTUzODEyNzEw
MGNiYTQ3NmQwZWY4OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNl
bGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAK
QEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJDb3VudGVyLmgiCiAjaW5jbHVkZSAiRm9jdXND
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRm9udEZhbWlseVZhbHVlLmgiCisjaW5jbHVkZSAiRm9u
dEZlYXR1cmVWYWx1ZS5oIgogI2luY2x1ZGUgIkZvbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKQEAgLTM0MzksNyArMzQ0MCw3IEBAIHZv
aWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlEZWNsYXJhdGlvbnMoYm9vbCBpc0ltcG9ydGFudCwg
aW50IHN0YXJ0SW5kZXgsIGludCBlCiAKICAgICAgICAgICAgICAgICBpZiAoYXBwbHlGaXJzdCkg
ewogICAgICAgICAgICAgICAgICAgICBDT01QSUxFX0FTU0VSVChmaXJzdENTU1Byb3BlcnR5ID09
IENTU1Byb3BlcnR5Q29sb3IsIENTU19jb2xvcl9pc19maXJzdF9wcm9wZXJ0eSk7Ci0gICAgICAg
ICAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKENTU1Byb3BlcnR5Wm9vbSA9PSBDU1NQcm9wZXJ0
eUNvbG9yICsgMTQsIENTU196b29tX2lzX2VuZF9vZl9maXJzdF9wcm9wX3JhbmdlKTsKKyAgICAg
ICAgICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoQ1NTUHJvcGVydHlab29tID09IENTU1Byb3Bl
cnR5Q29sb3IgKyAxNSwgQ1NTX3pvb21faXNfZW5kX29mX2ZpcnN0X3Byb3BfcmFuZ2UpOwogICAg
ICAgICAgICAgICAgICAgICBDT01QSUxFX0FTU0VSVChDU1NQcm9wZXJ0eUxpbmVIZWlnaHQgPT0g
Q1NTUHJvcGVydHlab29tICsgMSwgQ1NTX2xpbmVfaGVpZ2h0X2lzX2FmdGVyX3pvb20pOwogCiAg
ICAgICAgICAgICAgICAgICAgIC8vIGdpdmUgc3BlY2lhbCBwcmlvcml0eSB0byBmb250LXh4eCwg
Y29sb3IgcHJvcGVydGllcywgZXRjCkBAIC01MzA5LDYgKzUzMTAsMzYgQEAgdm9pZCBDU1NTdHls
ZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCisgICAgLy8gQ1NTIEZvbnRzIE1vZHVsZSBMZXZlbCAzCisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRGZWF0dXJlU2V0dGluZ3M6IHsKKyAgICAgICAgaWYg
KHByaW1pdGl2ZVZhbHVlICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVl
Tm9ybWFsKSB7CisgICAgICAgICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uID0g
bV9zdHlsZS0+Zm9udERlc2NyaXB0aW9uKCk7CisgICAgICAgICAgICBmb250RGVzY3JpcHRpb24u
c2V0RmVhdHVyZVNldHRpbmdzKDApOworICAgICAgICAgICAgaWYgKG1fc3R5bGUtPnNldEZvbnRE
ZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pKQorICAgICAgICAgICAgICAgIG1fZm9udERpcnR5
ID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgh
dmFsdWUtPmlzVmFsdWVMaXN0KCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgRm9u
dERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbiA9IG1fc3R5bGUtPmZvbnREZXNjcmlwdGlvbigp
OworICAgICAgICBDU1NWYWx1ZUxpc3QqIGxpc3QgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3Qq
Pih2YWx1ZSk7CisgICAgICAgIFJlZlB0cjxGb250RmVhdHVyZVNldHRpbmdzPiBzZXR0aW5ncyA9
IEZvbnRGZWF0dXJlU2V0dGluZ3M6OmNyZWF0ZSgpOworICAgICAgICBpbnQgbGVuID0gbGlzdC0+
bGVuZ3RoKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKyAgICAg
ICAgICAgIENTU1ZhbHVlKiBpdGVtID0gbGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjayhpKTsK
KyAgICAgICAgICAgIGlmICghaXRlbS0+aXNGb250RmVhdHVyZVZhbHVlKCkpCisgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICBGb250RmVhdHVyZVZhbHVlKiBmZWF0dXJlID0g
c3RhdGljX2Nhc3Q8Rm9udEZlYXR1cmVWYWx1ZSo+KGl0ZW0pOworICAgICAgICAgICAgc2V0dGlu
Z3MtPmFwcGVuZEZlYXR1cmUoRm9udEZlYXR1cmUoZmVhdHVyZS0+dGFnKCksIGZlYXR1cmUtPnZh
bHVlKCkpKTsKKyAgICAgICAgfQorICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0RmVhdHVyZVNl
dHRpbmdzKHNldHRpbmdzLnJlbGVhc2UoKSk7CisgICAgICAgIGlmIChtX3N0eWxlLT5zZXRGb250
RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKSkKKyAgICAgICAgICAgIG1fZm9udERpcnR5ID0g
dHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIC8vIFRoZXNlIHByb3BlcnRpZXMg
YXJlIGltcGxlbWVudGVkIGluIHRoZSBDU1NTdHlsZUFwcGx5UHJvcGVydHkgbG9va3VwIHRhYmxl
LgogICAgIGNhc2UgQ1NTUHJvcGVydHlDb2xvcjoKICAgICBjYXNlIENTU1Byb3BlcnR5RGlyZWN0
aW9uOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAppbmRleCBkZTQ2ZmY5ZWExMTdlMTM0NzA2MjYwNDgyYzQy
MTg0OGU0YWU3YTA5Li5hZmE5MWM5ZTQ4OGI2ZGY4ODllMTJlMWE5ZmM0YWRhZTQ3MmVjOTlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWUuaApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIGlzQm9yZGVySW1hZ2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCBib29sIGlzQ3Vyc29ySW1hZ2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzRm9udEZhbWlseVZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNGb250RmVhdHVyZVZhbHVlKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNGb250VmFsdWUoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlVmFsdWUoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpp
bmRleCA5Yzk5YTAwNGFkOTY1OTY0ODY0ZGEyMjYxOWQyNWEzYjQ0NzYwMTZjLi4xYmZlMjUxODRk
OGEwZTI1Njg2MTFjZmY2NDViZTA4YmMxOGY2MTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbgpAQCAtODA1LDYgKzgwNSwxMCBAQCBnbHlwaHMKIGlubGluZS1ib3gKIHJl
cGxhY2VkCiAKKy8vIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzCitvbgorb2ZmCisKIC8v
IGltYWdlLXJlbmRlcmluZwogLy9hdXRvCiAvL29wdGltaXplU3BlZWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9Gb250RmVhdHVyZVZhbHVlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMGQ2MTAwMzRmNDk3NGFlOTRlMTI0
NzgzMGRkNjg5Njk4NTQ5OWExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0ZvbnRGZWF0dXJlVmFsdWUuY3BwCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkZvbnRGZWF0dXJlVmFsdWUuaCIKKworI2luY2x1ZGUgIkNTU1BhcnNl
ci5oIgorI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWVL
ZXl3b3Jkcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ZvbnRGZWF0dXJlVmFsdWU6OkZv
bnRGZWF0dXJlVmFsdWUoY29uc3QgU3RyaW5nJiB0YWcpCisgICAgOiBtX3RhZyh0YWcpCit7Cit9
CisKK2ludCBGb250RmVhdHVyZVZhbHVlOjp2YWx1ZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3Zh
bHVlKQorICAgICAgICByZXR1cm4gMTsKKyAgICBpZiAobV92YWx1ZS0+cHJpbWl0aXZlVHlwZSgp
ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQpIHsKKyAgICAgICAgc3dpdGNoIChtX3Zh
bHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVPbjoKKyAgICAgICAgICAg
IHJldHVybiAxOworICAgICAgICBjYXNlIENTU1ZhbHVlT2ZmOgorICAgICAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQor
ICAgIH0KKyAgICBpZiAobV92YWx1ZS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfTlVNQkVSKQorICAgICAgICByZXR1cm4gbV92YWx1ZS0+Z2V0SW50VmFsdWUoKTsK
KyAgICByZXR1cm4gMDsKK30KKworU3RyaW5nIEZvbnRGZWF0dXJlVmFsdWU6OmNzc1RleHQoKSBj
b25zdAoreworICAgIFN0cmluZyByZXN1bHQgPSAiJyIgKyBtX3RhZyArICInIjsKKyAgICBpZiAo
bV92YWx1ZSkKKyAgICAgICAgcmVzdWx0ICs9ICIgIiArIG1fdmFsdWUtPmNzc1RleHQoKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Rm9udEZlYXR1cmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iNzRjNGEwM2RkYTRiYjRkNGYyOTMzZDE0NTY3NTdlMDhjNDFmMTI0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaApA
QCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgRm9udEZlYXR1cmVWYWx1ZV9oCisjZGVmaW5lIEZv
bnRGZWF0dXJlVmFsdWVfaAorCisjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZv
bnRGZWF0dXJlVmFsdWUgOiBwdWJsaWMgQ1NTVmFsdWUgeworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEZvbnRGZWF0dXJlVmFsdWU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHRhZykKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRm9udEZlYXR1cmVWYWx1ZSh0YWcpKTsK
KyAgICB9CisKKyAgICBjb25zdCBTdHJpbmcmIHRhZygpIGNvbnN0IHsgcmV0dXJuIG1fdGFnOyB9
CisgICAgaW50IHZhbHVlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRWYWx1ZShQYXNzUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiB2YWx1ZSkgeyBtX3ZhbHVlID0gdmFsdWU7IH0KKyAgICB2aXJ0dWFs
IFN0cmluZyBjc3NUZXh0KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgRm9udEZlYXR1cmVWYWx1
ZShjb25zdCBTdHJpbmcmIHRhZyk7CisgICAgdmlydHVhbCBib29sIGlzRm9udEZlYXR1cmVWYWx1
ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKworICAgIFN0cmluZyBtX3RhZzsKKyAgICBSZWZQ
dHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fdmFsdWU7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRE
ZXNjcmlwdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2Ny
aXB0aW9uLmgKaW5kZXggOTA4ZWJhMjBjOTQyNzE0OWVjZTBlZDI4ZTFkNjUwN2QxMTAzNGFiMC4u
YzAwZTkyMzllMzdjMzY2NDI4ZTI4NzVmNWM4MmNlMzFmNWNiM2JhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNkZWZpbmUgRm9udERlc2NyaXB0aW9uX2gKIAogI2luY2x1ZGUgIkZvbnRGYW1p
bHkuaCIKKyNpbmNsdWRlICJGb250RmVhdHVyZVNldHRpbmdzLmgiCiAjaW5jbHVkZSAiRm9udE9y
aWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlICJG
b250U21vb3RoaW5nTW9kZS5oIgpAQCAtMzUsNiArMzYsOCBAQAogI2luY2x1ZGUgIlRleHRSZW5k
ZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIEZvbnRXZWlnaHQgewpA
QCAtNzIsNiArNzUsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9vcmllbnRhdGlvbihIb3Jpem9u
dGFsKQogICAgICAgICAsIG1fdGV4dE9yaWVudGF0aW9uKFRleHRPcmllbnRhdGlvblZlcnRpY2Fs
UmlnaHQpCiAgICAgICAgICwgbV93aWR0aFZhcmlhbnQoUmVndWxhcldpZHRoKQorICAgICAgICAs
IG1fZmVhdHVyZVNldHRpbmdzKDApCiAgICAgICAgICwgbV9pdGFsaWMoRm9udEl0YWxpY09mZikK
ICAgICAgICAgLCBtX3NtYWxsQ2FwcyhGb250U21hbGxDYXBzT2ZmKQogICAgICAgICAsIG1faXNB
YnNvbHV0ZVNpemUoZmFsc2UpCkBAIC0xMTQsNiArMTE4LDcgQEAgcHVibGljOgogICAgIEZvbnRP
cmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZW50YXRpb247IH0K
ICAgICBUZXh0T3JpZW50YXRpb24gdGV4dE9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90
ZXh0T3JpZW50YXRpb247IH0KICAgICBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCgpIGNv
bnN0IHsgcmV0dXJuIG1fd2lkdGhWYXJpYW50OyB9CisgICAgRm9udEZlYXR1cmVTZXR0aW5ncyog
ZmVhdHVyZVNldHRpbmdzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlU2V0dGluZ3MuZ2V0KCk7
IH0KIAogICAgIHZvaWQgc2V0RmFtaWx5KGNvbnN0IEZvbnRGYW1pbHkmIGZhbWlseSkgeyBtX2Zh
bWlseUxpc3QgPSBmYW1pbHk7IH0KICAgICB2b2lkIHNldENvbXB1dGVkU2l6ZShmbG9hdCBzKSB7
IEFTU0VSVChpc2Zpbml0ZShzKSk7IG1fY29tcHV0ZWRTaXplID0gczsgfQpAQCAtMTM4LDYgKzE0
Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE9yaWVudGF0aW9uKEZvbnRPcmllbnRhdGlvbiBv
cmllbnRhdGlvbikgeyBtX29yaWVudGF0aW9uID0gb3JpZW50YXRpb247IH0KICAgICB2b2lkIHNl
dFRleHRPcmllbnRhdGlvbihUZXh0T3JpZW50YXRpb24gdGV4dE9yaWVudGF0aW9uKSB7IG1fdGV4
dE9yaWVudGF0aW9uID0gdGV4dE9yaWVudGF0aW9uOyB9CiAgICAgdm9pZCBzZXRXaWR0aFZhcmlh
bnQoRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQpIHsgbV93aWR0aFZhcmlhbnQgPSB3aWR0
aFZhcmlhbnQ7IH0KKyAgICB2b2lkIHNldEZlYXR1cmVTZXR0aW5ncyhQYXNzUmVmUHRyPEZvbnRG
ZWF0dXJlU2V0dGluZ3M+IHNldHRpbmdzKSB7IG1fZmVhdHVyZVNldHRpbmdzID0gc2V0dGluZ3M7
IH0KIAogcHJpdmF0ZToKICAgICBGb250RmFtaWx5IG1fZmFtaWx5TGlzdDsgLy8gVGhlIGxpc3Qg
b2YgZm9udCBmYW1pbGllcyB0byBiZSB1c2VkLgpAQCAtMTUxLDYgKzE1Nyw4IEBAIHByaXZhdGU6
CiAKICAgICBGb250V2lkdGhWYXJpYW50IG1fd2lkdGhWYXJpYW50OwogCisgICAgUmVmUHRyPEZv
bnRGZWF0dXJlU2V0dGluZ3M+IG1fZmVhdHVyZVNldHRpbmdzOyAvLyBUaGUgbGlzdCBvZiBPcGVu
VHlwZSBmb250IGZlYXR1cmUgc2V0dGluZ3MuCisKICAgICB1bnNpZ25lZCBtX2l0YWxpYyA6IDE7
IC8vIEZvbnRJdGFsaWMKICAgICB1bnNpZ25lZCBtX3NtYWxsQ2FwcyA6IDE7IC8vIEZvbnRTbWFs
bENhcHMKICAgICBib29sIG1faXNBYnNvbHV0ZVNpemUgOiAxOyAgIC8vIFdoZXRoZXIgb3Igbm90
IENTUyBzcGVjaWZpZWQgYW4gZXhwbGljaXQgc2l6ZQpAQCAtMTg4LDcgKzE5Niw4IEBAIGlubGlu
ZSBib29sIEZvbnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9PShjb25zdCBGb250RGVzY3JpcHRpb24m
IG90aGVyKSBjb25zdAogICAgICAgICAmJiBtX2lzU3BlY2lmaWVkRm9udCA9PSBvdGhlci5tX2lz
U3BlY2lmaWVkRm9udAogICAgICAgICAmJiBtX29yaWVudGF0aW9uID09IG90aGVyLm1fb3JpZW50
YXRpb24KICAgICAgICAgJiYgbV90ZXh0T3JpZW50YXRpb24gPT0gb3RoZXIubV90ZXh0T3JpZW50
YXRpb24KLSAgICAgICAgJiYgbV93aWR0aFZhcmlhbnQgPT0gb3RoZXIubV93aWR0aFZhcmlhbnQ7
CisgICAgICAgICYmIG1fd2lkdGhWYXJpYW50ID09IG90aGVyLm1fd2lkdGhWYXJpYW50CisgICAg
ICAgICYmIG1fZmVhdHVyZVNldHRpbmdzLmdldCgpID09IG90aGVyLm1fZmVhdHVyZVNldHRpbmdz
LmdldCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwZjZlMmRiOGEzOGFh
YTAwMzY5YWMyZjJmMTAyMWIyNTEzZmUzMmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmNwcApAQCAtMCwwICsx
LDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGb250RmVh
dHVyZVNldHRpbmdzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRm9udEZlYXR1cmU6OkZv
bnRGZWF0dXJlKGNvbnN0IEF0b21pY1N0cmluZyYgdGFnLCBpbnQgdmFsdWUpCisgICAgOiBtX3Rh
Zyh0YWcpCisgICAgLCBtX3ZhbHVlKHZhbHVlKQoreworfQorCitGb250RmVhdHVyZTo6Rm9udEZl
YXR1cmUoY29uc3QgRm9udEZlYXR1cmUmIG90aGVyKQorICAgIDogbV90YWcob3RoZXIubV90YWcp
CisgICAgLCBtX3ZhbHVlKG90aGVyLm1fdmFsdWUpCit7Cit9CisKK0ZvbnRGZWF0dXJlJiBGb250
RmVhdHVyZTo6b3BlcmF0b3I9KGNvbnN0IEZvbnRGZWF0dXJlJiBvdGhlcikKK3sKKyAgICBtX3Rh
ZyA9IG90aGVyLm1fdGFnOworICAgIG1fdmFsdWUgPSBvdGhlci5tX3ZhbHVlOworICAgIHJldHVy
biAqdGhpczsKK30KKworYm9vbCBGb250RmVhdHVyZTo6b3BlcmF0b3I9PShjb25zdCBGb250RmVh
dHVyZSYgb3RoZXIpCit7CisgICAgcmV0dXJuIG1fdGFnID09IG90aGVyLm1fdGFnICYmIG1fdmFs
dWUgPT0gb3RoZXIubV92YWx1ZTsKK30KKworRm9udEZlYXR1cmVTZXR0aW5nczo6Rm9udEZlYXR1
cmVTZXR0aW5ncygpCit7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjVmNTUyZTM3
YThmN2NhNGQ0Y2MwOGM3MzQ4ZGI2ZTcyNDRkOWY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5oCkBAIC0wLDAg
KzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBGb250RmVhdHVyZVNldHRpbmdzX2gKKyNkZWZp
bmUgRm9udEZlYXR1cmVTZXR0aW5nc19oCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRm9udEZlYXR1cmUgeworcHVibGljOgorICAgIEZvbnRGZWF0dXJlKGNvbnN0IEF0b21pY1N0
cmluZyYgdGFnLCBpbnQgdmFsdWUpOworICAgIEZvbnRGZWF0dXJlKGNvbnN0IEZvbnRGZWF0dXJl
JiBvdGhlcik7CisgICAgRm9udEZlYXR1cmUmIG9wZXJhdG9yPShjb25zdCBGb250RmVhdHVyZSYp
OworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGb250RmVhdHVyZSYpOworCisgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiB0YWcoKSBjb25zdCB7IHJldHVybiBtX3RhZzsgfQorICAgIGludCB2YWx1
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KK3ByaXZhdGU6CisgICAgQXRvbWljU3RyaW5n
IG1fdGFnOworICAgIGludCBtX3ZhbHVlOworfTsKKworY2xhc3MgRm9udEZlYXR1cmVTZXR0aW5n
cyA6IHB1YmxpYyBSZWZDb3VudGVkPEZvbnRGZWF0dXJlU2V0dGluZ3M+IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxGb250RmVhdHVyZVNldHRpbmdzPiBjcmVhdGUoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGb250RmVhdHVyZVNldHRpbmdzKCkpOworICAg
IH0KKyAgICB2b2lkIGFwcGVuZEZlYXR1cmUoY29uc3QgRm9udEZlYXR1cmUmIGZlYXR1cmUpIHsg
bV9saXN0LmFwcGVuZChmZWF0dXJlKTsgfQorICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1
cm4gbV9saXN0LnNpemUoKTsgfQorICAgIGNvbnN0IEZvbnRGZWF0dXJlJiBvcGVyYXRvcltdKGlu
dCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9saXN0W2luZGV4XTsgfQorICAgIGNvbnN0IEZvbnRG
ZWF0dXJlJiBhdChzaXplX3QgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdFtpbmRleF07IH0K
K3ByaXZhdGU6CisgICAgRm9udEZlYXR1cmVTZXR0aW5ncygpOworICAgIFZlY3RvcjxGb250RmVh
dHVyZT4gbV9saXN0OworfTsKKworfQorCisjZW5kaWYgLy8gRm9udEZlYXR1cmVTZXR0aW5nc19o
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99603</attachid>
            <date>2011-07-03 23:57:24 -0700</date>
            <delta_ts>2011-07-06 23:36:57 -0700</delta_ts>
            <desc>Patch V1</desc>
            <filename>bug-63618-20110704155723.patch</filename>
            <type>text/plain</type>
            <size>40875</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAzNTIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0OTk0ZTA1OGQ4MDgwODg2NmQ4ZWM4
NmE1NmZjOGU2Y2NjNWUxMTE5Li45NWNkOGQ2M2NmMTA5Y2E1OWVmMGE1NTZhNzNhODRhNzkxZmY2
MzZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDctMDMgIEtlbmljaGkgSXNoaWJhc2hp
ICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFBhcnNpbmcgQ1NTMyBmb250LWZlYXR1
cmUtc2V0dGluZ3MgcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYzNjE4CisKKyAgICAgICAgQWRkIHBhcnNpbmcgdGVzdCBjYXNlIGZvciAt
d2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyBwcm9wZXJ0eS4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzczMvZm9udC1mZWF0dXJlLXNldHRp
bmdzLXBhcnNpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZvbnQtZmVh
dHVyZS1zZXR0aW5ncy1wYXJzaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvc2NyaXB0
LXRlc3RzL1RFTVBMQVRFLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvc2NyaXB0LXRlc3Rz
L2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1wYXJzaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKHBhcnNl
UmVzdWx0T2YpOgorCiAyMDExLTA3LTAzICBEb21pbmljIENvb25leSAgPGRvbWluaWNjQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBUaGUgdmFsdWUgcHJvcGVydHkgb2YgYW4gaW5kZXRlcm1pbmF0
ZSBwcm9ncmVzcyBlbGVtZW50IHNob3VsZCBiZSB6ZXJvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1wYXJzaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZlNjUwZjNlMjNlZTBjNDU0MTMxNDg4NjFiYmE1NTNkMjA0OGRmNjEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1wYXJz
aW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACitUZXN0IHBhcnNpbmcgb2YgdGhlIENT
UzMgZm9udC1mZWF0dXJlLXNldHRpbmdzIHByb3BlcnR5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworLSBUZXN0cyB2YWxpZCBpbnB1dHMKK1BBU1MgcGFyc2VSZXN1bHRPZigibm9y
bWFsIikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigiJ2FhYWEnIikgaXMgIidhYWFh
JyIKK1BBU1MgcGFyc2VSZXN1bHRPZigiJ2FhYWEnIDEiKSBpcyAiJ2FhYWEnIDEiCitQQVNTIHBh
cnNlUmVzdWx0T2YoIlwiYWFhYVwiIDAiKSBpcyAiJ2FhYWEnIDAiCitQQVNTIHBhcnNlUmVzdWx0
T2YoIidhYWFhJyBvbiIpIGlzICInYWFhYScgb24iCitQQVNTIHBhcnNlUmVzdWx0T2YoIlwiYWFh
YVwiIG9mZiIpIGlzICInYWFhYScgb2ZmIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJhYWFhLCAnYmJi
YicsIGNjY2MiKSBpcyAiJ2FhYWEnLCAnYmJiYicsICdjY2NjJyIKK1BBU1MgcGFyc2VSZXN1bHRP
ZigiJ2FhYWEnIG9uLCBiYmJiIDEsIGNjY2Mgb2ZmIikgaXMgIidhYWFhJyBvbiwgJ2JiYmInIDEs
ICdjY2NjJyBvZmYiCitQQVNTIHBhcnNlUmVzdWx0T2YoImFhYWEsIGJiYmIgMCwgXCJjY2NjXCIi
KSBpcyAiJ2FhYWEnLCAnYmJiYicgMCwgJ2NjY2MnIgorLSBUZXN0cyBpbnZhbGlkIGlucHV0cy4g
IFJlc3VsdHMgc2hvdWxkIGJlIGVtcHR5IHN0cmluZ3MuCitQQVNTIHBhcnNlUmVzdWx0T2YoIjEi
KSBpcyAiIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJvZmYiKSBpcyAiIgorUEFTUyBwYXJzZVJlc3Vs
dE9mKCJhYWFhYSIpIGlzICIiCitQQVNTIHBhcnNlUmVzdWx0T2YoIlwiYWFhYWFcIiIpIGlzICIi
CitQQVNTIHBhcnNlUmVzdWx0T2YoImFhYWEgLTEiKSBpcyAiIgorUEFTUyBwYXJzZVJlc3VsdE9m
KCJhYWFhIFwiYmJiYlwiIikgaXMgIiIKK1BBU1MgcGFyc2VSZXN1bHRPZigiYWFhYSBiYmJiIikg
aXMgIiIKK1BBU1MgcGFyc2VSZXN1bHRPZigiYWFhYSwgb24iKSBpcyAiIgorUEFTUyBwYXJzZVJl
c3VsdE9mKCJcImFhYWFcIiAxLCBcImJiYmJcIiwgMCIpIGlzICIiCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcGFyc2luZy5odG1sIGIvTGF5b3V0VGVzdHMv
Y3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcGFyc2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0ZmIx
M2U2MzQ0ZmUxODhhYzM3YTU1Y2ZmMjY0NWJkMjg2OTgyMzEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1wYXJzaW5nLmh0bWwKQEAgLTAs
MCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmcuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JpcHQtdGVz
dHMvVEVNUExBVEUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDc3MjI4MmIzNjc0OGExODIwMzM4NWYxYTJl
ZTRlZDY5MWQxYjg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JpcHQt
dGVzdHMvVEVNUExBVEUuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9IllPVVJfSlNfRklMRV9IRVJFIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9z
Y3JpcHQtdGVzdHMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmcuanMgYi9MYXlvdXRUZXN0
cy9jc3MzL3NjcmlwdC10ZXN0cy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcGFyc2luZy5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zMmU1MTY1ZDE2MDIxYzk2NGU5N2UzODcwOWRmOTJjN2IwMjU0MTJiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JpcHQtdGVzdHMvZm9udC1mZWF0dXJlLXNl
dHRpbmdzLXBhcnNpbmcuanMKQEAgLTAsMCArMSw0MiBAQAorZGVzY3JpcHRpb24oJ1Rlc3QgcGFy
c2luZyBvZiB0aGUgQ1NTMyBmb250LWZlYXR1cmUtc2V0dGluZ3MgcHJvcGVydHkuJyk7CisKK2Z1
bmN0aW9uIHBhcnNlUmVzdWx0T2YodmFsdWUpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGVsZW1lbnQuc3R5bGVbJy13ZWJraXQtZm9udC1m
ZWF0dXJlLXNldHRpbmdzJ10gPSB2YWx1ZTsKKyAgICByZXR1cm4gZWxlbWVudC5zdHlsZVsnLXdl
YmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3MnXTsKK30KKwordmFyIHZhbGlkSW5wdXRzQW5kRXhw
ZWN0ZWRSZXN1bHRzID0gWworICAgIC8vIElucHV0LCBFeHBlY3RlZAorICAgIFsnbm9ybWFsJywg
Im5vcm1hbCJdLAorICAgIFsiJ2FhYWEnIiwgIidhYWFhJyJdLAorICAgIFsiJ2FhYWEnIDEiLCAi
J2FhYWEnIDEiXSwKKyAgICBbJ1xcImFhYWFcXCIgMCcsICInYWFhYScgMCJdLAorICAgIFsiJ2Fh
YWEnIG9uIiwgIidhYWFhJyBvbiJdLAorICAgIFsnXFwiYWFhYVxcIiBvZmYnLCAiJ2FhYWEnIG9m
ZiJdLAorICAgIFsiYWFhYSwgJ2JiYmInLCBjY2NjIiwgIidhYWFhJywgJ2JiYmInLCAnY2NjYyci
XSwKKyAgICBbIidhYWFhJyBvbiwgYmJiYiAxLCBjY2NjIG9mZiIsICInYWFhYScgb24sICdiYmJi
JyAxLCAnY2NjYycgb2ZmIl0sCisgICAgWydhYWFhLCBiYmJiIDAsIFxcImNjY2NcXCInLCAiJ2Fh
YWEnLCAnYmJiYicgMCwgJ2NjY2MnIl0sCitdOworCitkZWJ1ZygnLSBUZXN0cyB2YWxpZCBpbnB1
dHMnKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgdmFsaWRJbnB1dHNBbmRFeHBlY3RlZFJlc3VsdHMu
bGVuZ3RoOyArK2kpCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYXJzZVJlc3VsdE9mKCIn
ICsgdmFsaWRJbnB1dHNBbmRFeHBlY3RlZFJlc3VsdHNbaV1bMF0gKyAnIiknLCB2YWxpZElucHV0
c0FuZEV4cGVjdGVkUmVzdWx0c1tpXVsxXSk7CisKK3ZhciBpbnZhbGlkSW5wdXRzID0gWworICAg
ICcxJywKKyAgICAnb2ZmJywKKyAgICAnYWFhYWEnLAorICAgICdcXCJhYWFhYVxcIicsCisgICAg
J2FhYWEgLTEnLAorICAgICdhYWFhIFxcImJiYmJcXCInLAorICAgICdhYWFhIGJiYmInLAorICAg
ICdhYWFhLCBvbicsCisgICAgJ1xcImFhYWFcXCIgMSwgXFwiYmJiYlxcIiwgMCcsCitdOworCitk
ZWJ1ZygnLSBUZXN0cyBpbnZhbGlkIGlucHV0cy4gIFJlc3VsdHMgc2hvdWxkIGJlIGVtcHR5IHN0
cmluZ3MuJyk7Citmb3IgKHZhciBpID0gMDsgaSA8IGludmFsaWRJbnB1dHMubGVuZ3RoOyArK2kp
CisgICAgc2hvdWxkQmUoJ3BhcnNlUmVzdWx0T2YoIicgKyBpbnZhbGlkSW5wdXRzW2ldICsgJyIp
JywgJyIiJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCAxMDc4MzVkZDcwYmNmMDA5OGFiMzA5NTI2YjllY2M0ZDFiOTIzMzBmLi5kMmJj
ODAxZGUxNjdiNDYyYjVjNGVhNGEzMGQ5MGMzZmQ2NzVhOGQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dApAQCAtNDcwLDYgKzQ3MCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBjc3MvQ1NTVW5p
Y29kZVJhbmdlVmFsdWUuY3BwCiAgICAgY3NzL0NTU1ZhbHVlTGlzdC5jcHAKICAgICBjc3MvRm9u
dEZhbWlseVZhbHVlLmNwcAorICAgIGNzcy9Gb250RmVhdHVyZVZhbHVlLmNwcAogICAgIGNzcy9G
b250VmFsdWUuY3BwCiAgICAgY3NzL01lZGlhRmVhdHVyZU5hbWVzLmNwcAogICAgIGNzcy9NZWRp
YUxpc3QuY3BwCkBAIC0xMDY2LDYgKzEwNjcsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbGxiYWNrTGlzdC5jcHAKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9Gb250RmFtaWx5LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5j
cHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0dseXBoUGFnZVRyZWVOb2RlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGVmYWQxYThkYzAxNTgzNWMwYjkwNDgzY2Q0MmRlNWQ2OWQ2Njk5NTMu
LjgwNzc1NDBhY2U1Zjk4ZmNmZmEwNDdhNmU5MmJhZmNmMjRiMzE3YjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw2MSBAQAorMjAxMS0wNy0wMyAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUGFyc2luZyBDU1MzIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBw
cm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjM2MTgKKworICAgICAgICBJbnRyb2R1Y2VzIENTUzMgZm9udC1mZWF0dXJlLXNldHRpbmdzIHBy
b3BlcnR5IGFzIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzLiAgVGhpcyBjaGFuZ2Ugb25s
eSBjb250YWlucyBwYXJzaW5nIGFuZCBwYXJ0LiAgUGFyc2VkIGluZm9ybWF0aW9uIGFyZSBzdG9y
ZWQgaW4gRm9udERlc2NyaXB0aW9uIGNsYXNzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBh
cnNpbmcuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIEZvbnRGZWF0dXJl
VmFsdWUue2gsY3BwfSBhbmQgRm9udEZlYXR1cmVTZXR0aW5ncy57aCxjcHB9LgorICAgICAgICAq
IEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRGl0
dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKTogQWRkZWQgQ1NTUHJvcGVydHlXZWJraXRGb250RmVh
dHVyZVNldHRpbmdzIGFzIGEgc2hvcnRoYW5kIHByb3BlcnR5LgorICAgICAgICAqIGNzcy9DU1NQ
YXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKTogQWRk
ZWQgcGFyc2luZyBjb2RlIGZvciAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncy4KKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGb250RmVhdHVyZVNldHRpbmdzKTogQWRkZWQu
CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOiBBZGRlZCBwYXJzZUZvbnRGZWF0dXJlU2V0dGlu
Z3MoKS4KKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlOYW1lcy5pbjogQWRkZWQgLXdlYmtpdC1m
b250LWZlYXR1cmUtc2V0dGluZ3MuCisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlEZWNsYXJhdGlvbnMp
OiBNb2RpZmllZCBhIGNvbXBpbGUgYXNzZXJ0IHRvIGZvbGxvdyBhZGRpbmcgLXdlYmtpdC1mb250
LWZlYXR1cmUtc2V0dGluZ3MuCisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjph
cHBseVByb3BlcnR5KTogQWRkZWQgYSBjYXNlIGNsYXVzZSBmb3IgQ1NTUHJvcGVydHlXZWJraXRG
b250RmVhdHVyZVNldHRpbmdzLgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVmFsdWU6OmlzRm9udEZlYXR1cmVWYWx1ZSk6IEFkZGVkLgorICAgICAgICAq
IGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOiBBZGRlZCAnb24nIGFuZCAnb2ZmJyBrZXl3b3Jkcy4K
KyAgICAgICAgKiBjc3MvRm9udEZlYXR1cmVWYWx1ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udEZlYXR1cmVWYWx1ZTo6Rm9udEZlYXR1cmVWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpGb250RmVhdHVyZVZhbHVlOjp2YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmVh
dHVyZVZhbHVlOjpjc3NUZXh0KToKKyAgICAgICAgKiBjc3MvRm9udEZlYXR1cmVWYWx1ZS5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlVmFsdWU6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGb250RmVhdHVyZVZhbHVlOjp0YWcpOgorICAgICAgICAoV2ViQ29yZTo6
Rm9udEZlYXR1cmVWYWx1ZTo6c2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1
cmVWYWx1ZTo6aXNGb250RmVhdHVyZVZhbHVlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9Gb250RGVzY3JpcHRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6
Rm9udERlc2NyaXB0aW9uKTogQWRkZWQgbV9mZWF0dXJlU2V0dGluZ3MgbWVtYmVyIHZhcmlhYmxl
LgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpmZWF0dXJlU2V0dGluZ3MpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6c2V0RmVhdHVyZVNldHRp
bmdzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246Om9wZXJhdG9y
PT0pOiBNb2RpZmllZCB0byB0YWtlIGludG8gYWNjb3VudCBtX2ZlYXR1cmVTZXR0aW5ncworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlOjpGb250RmVhdHVyZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGb250RmVhdHVyZTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRG
ZWF0dXJlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlU2V0dGlu
Z3M6OkZvbnRGZWF0dXJlU2V0dGluZ3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRGZWF0dXJlU2V0dGluZ3MuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVy
ZTo6dGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlOjp2YWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpGb250RmVhdHVyZVNldHRpbmdzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udEZlYXR1cmVTZXR0aW5nczo6YXBwZW5kRmVhdHVyZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGb250RmVhdHVyZVNldHRpbmdzOjpzaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0
dXJlU2V0dGluZ3M6Om9wZXJhdG9yW10pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVT
ZXR0aW5nczo6YXQpOgorCiAyMDExLTA3LTAzICBEb21pbmljIENvb25leSAgPGRvbWluaWNjQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBUaGUgdmFsdWUgcHJvcGVydHkgb2YgYW4gaW5kZXRlcm1p
bmF0ZSBwcm9ncmVzcyBlbGVtZW50IHNob3VsZCBiZSB6ZXJvCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQppbmRleCAwYWM1YTVhN2MwYWYwMDEwNjFkZjNhODZhYTFmNWVhZDU2ZjdiMjc0Li45
NTE2OWZhNTEzYTY1ZWZkNTFkNzc5MTA5NDcxNzJhYWI2MzYxMjExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KQEAgLTEwMTEsNiArMTAxMSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvY3NzL0Rhc2hib2FyZFJlZ2lvbi5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9jc3MvRm9udEZhbWlseVZhbHVlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYW1p
bHlWYWx1ZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZlYXR1cmVWYWx1ZS5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVlLmggXAogCVNvdXJjZS9XZWJDb3Jl
L2Nzcy9Gb250VmFsdWUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udFZhbHVlLmggXAog
CVNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5jcHAgXApAQCAtMjQ5MSw2ICsy
NDkzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250RmFtaWx5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udEZhbWlseS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
RmFzdFBhdGguY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVh
dHVyZVNldHRpbmdzLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dEZlYXR1cmVTZXR0aW5ncy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRNZXRyaWNzLmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRPcmllbnRhdGlvbi5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCBkODE3YTBhY2E4YzMzZTZmM2ExNDM1M2UyYjU3MjgzMjlkODhi
NGNiLi4wNmY4ZTc4NDQwMjM4NjFlODJkZDE1ZWRhYjY4NjViNTc1YTBkNWRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC04MjAsNiArODIwLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9Gb250RGVzY3JpcHRpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dEZhbGxiYWNrTGlzdC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFt
aWx5LmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGlu
Z3MuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udE1ldHJpY3MuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udE9yaWVudGF0aW9uLmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRSZW5kZXJpbmdNb2RlLmgnLApAQCAtMjM2Niw2
ICsyMzY3LDggQEAKICAgICAgICAgICAgICdjc3MvRGFzaGJvYXJkUmVnaW9uLmgnLAogICAgICAg
ICAgICAgJ2Nzcy9Gb250RmFtaWx5VmFsdWUuY3BwJywKICAgICAgICAgICAgICdjc3MvRm9udEZh
bWlseVZhbHVlLmgnLAorICAgICAgICAgICAgJ2Nzcy9Gb250RmVhdHVyZVZhbHVlLmNwcCcsCisg
ICAgICAgICAgICAnY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaCcsCiAgICAgICAgICAgICAnY3NzL0Zv
bnRWYWx1ZS5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9Gb250VmFsdWUuaCcsCiAgICAgICAgICAg
ICAnY3NzL01lZGlhRmVhdHVyZU5hbWVzLmNwcCcsCkBAIC0zOTQ4LDYgKzM5NTEsNyBAQAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3QuY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcCcsCisgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBkNzhhMTNjZTM4
OWUzZTZmM2E5ZTcyNWUzNjkyZDhhMjJmNWI5Njg4Li4zY2U4YjkzNGNjOWQ2NTZlYjM2ZGJjOTQ2
OWI0NzNlOTkzZjk1MTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNDI3LDYgKzQyNyw3IEBAIFNPVVJD
RVMgKz0gXAogICAgIGNzcy9DU1NVbmljb2RlUmFuZ2VWYWx1ZS5jcHAgXAogICAgIGNzcy9DU1NW
YWx1ZUxpc3QuY3BwIFwKICAgICBjc3MvRm9udEZhbWlseVZhbHVlLmNwcCBcCisgICAgY3NzL0Zv
bnRGZWF0dXJlVmFsdWUuY3BwIFwKICAgICBjc3MvRm9udFZhbHVlLmNwcCBcCiAgICAgY3NzL01l
ZGlhRmVhdHVyZU5hbWVzLmNwcCBcCiAgICAgY3NzL01lZGlhTGlzdC5jcHAgXApAQCAtOTc2LDYg
Kzk3Nyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlw
dGlvbi5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3QuY3BwIFwK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcCBcCisgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwIFwKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9Db250ZXh0U2hhZG93LmNwcCBcCkBAIC0xNDE1LDYgKzE0MTcsNyBA
QCBIRUFERVJTICs9IFwKICAgICBjc3MvQ1NTVW5pY29kZVJhbmdlVmFsdWUuaCBcCiAgICAgY3Nz
L0NTU1ZhbHVlTGlzdC5oIFwKICAgICBjc3MvRm9udEZhbWlseVZhbHVlLmggXAorICAgIGNzcy9G
b250RmVhdHVyZVZhbHVlLmggXAogICAgIGNzcy9Gb250VmFsdWUuaCBcCiAgICAgY3NzL01lZGlh
RmVhdHVyZU5hbWVzLmggXAogICAgIGNzcy9NZWRpYUxpc3QuaCBcCkBAIC0xOTcxLDYgKzE5NzQs
NyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RGF0YS5oIFwKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udEZhbWlseS5oIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNl
dHRpbmdzLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRNZXRyaWNzLmggXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnQuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVk
SW1hZ2UuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IGY1OGJhNTdkZmMzODk3NjUwNGE4N2FjNzQ3OGVjMDY0MGQyMGE0YTIuLjI2ZDZlNjEw
MWQzZGIzM2U4YmE2OWQ1ZjM3NjhlZjdhZGE1Y2I1OGEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNzQyOSw2ICsyNzQyOSwxNCBAQAogCQkJ
CQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZv
cm1cZ3JhcGhpY3NcRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGb250
RmVhdHVyZVNldHRpbmdzLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGb250RmFzdFBhdGguY3BwIgogCQkJ
CQk+CiAJCQkJPC9GaWxlPgpAQCAtMzI3ODIsNiArMzI3OTAsMTQgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXEZvbnRGZWF0dXJlVmFsdWUu
Y3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxj
c3NcRm9udEZlYXR1cmVWYWx1ZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxjc3NcRm9udFZhbHVlLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggNmJjNWMxYzVlNzlmOTgwOGE0ZTg3Njk3YTE2YWE2NGQ3MjMwOWU2NC4uMDYyMzJmMWZkYzc4
MjRhZTUyMTg0Y2QwOGE0NDViODg0ZTAwMjc0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIzMyw2ICsxMjMzLDEwIEBACiAJ
CTQ5RkZCRjQwMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlGRkJGM0UxMUM5M0VFMzAwNkE3MTE4
IC8qIFdlYkdMTGF5ZXIubW0gKi87IH07CiAJCTRBMERBMkZFMTI5QjI0MTkwMEFCNjFFMSAvKiBG
b3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEEwREEyRkMxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1Bc3NvY2lhdGVk
RWxlbWVudC5jcHAgKi87IH07CiAJCTRBMERBMkZGMTI5QjI0MTkwMEFCNjFFMSAvKiBGb3JtQXNz
b2NpYXRlZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRBMERBMkZEMTI5QjI0MTkwMEFCNjFFMSAvKiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0QTZF
OUZDMzEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTZFOUZDMTEzQzE3RDFEMDA0NkE3
RjggLyogRm9udEZlYXR1cmVWYWx1ZS5jcHAgKi87IH07CisJCTRBNkU5RkM0MTNDMTdEMUQwMDQ2
QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0QTZFOUZDMjEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVW
YWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTRBNkU5RkM3MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNkU5RkM1MTNDMTdE
NTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdzLmNwcCAqLzsgfTsKKwkJNEE2RTlGQzgx
M0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNkU5RkM2MTNDMTdENTcwMDQ2QTdGOCAv
KiBGb250RmVhdHVyZVNldHRpbmdzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNEE4Qzk2RUIwQkU2OTAzMjAwNEVFRkYwIC8qIEZyYW1lU2VsZWN0
aW9uTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NEE4Qzk2RUEwQkU2OTAzMjAwNEVFRkYwIC8qIEZyYW1lU2VsZWN0aW9uTWFjLm1tICovOyB9Owog
CQk0QUNCQzBCRTEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBQ0JDMEJDMTI3MTNDQkQwMDk0RjlC
MiAvKiBDbGFzc0xpc3QuY3BwICovOyB9OwogCQk0QUNCQzBCRjEyNzEzQ0JEMDA5NEY5QjIgLyog
Q2xhc3NMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0QUNCQzBCRDEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmggKi87IH07CkBAIC03NzUy
LDYgKzc3NTYsMTAgQEAKIAkJNDlGRkJGM0UxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJHTExheWVyLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QTBEQTJGQzEyOUIyNDE5MDBBQjYxRTEg
LyogRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEZvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTRBMERBMkZEMTI5QjI0MTkwMEFCNjFFMSAvKiBGb3JtQXNzb2NpYXRlZEVsZW1l
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9ybUFzc29jaWF0ZWRFbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNkU5RkMxMTNDMTdEMUQwMDQ2
QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEZvbnRGZWF0dXJlVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0QTZFOUZDMjEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250RmVhdHVyZVZhbHVlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNkU5RkM1MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVh
dHVyZVNldHRpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZv
bnRGZWF0dXJlU2V0dGluZ3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTZF
OUZDNjEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgZmls
ZUVuY29kaW5nID0gNDsgcGF0aCA9IEZvbnRGZWF0dXJlU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNEE4Qzk2RUEwQkU2OTAzMjAwNEVFRkYwIC8qIEZyYW1lU2VsZWN0
aW9uTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEZyYW1l
U2VsZWN0aW9uTWFjLm1tOyBwYXRoID0gbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0QUNCQzBCQzEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NM
aXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENsYXNzTGlzdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBQ0JDMEJEMTI3MTNDQkQwMDk0RjlC
MiAvKiBDbGFzc0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xhc3NM
aXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODAwNyw2ICsxODAxNSw4IEBA
CiAJCQkJQjJDM0RBNTgwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRGYW1pbHkuY3BwICovLAogCQkJ
CUIyQzNEQTU5MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250RmFtaWx5LmggKi8sCiAJCQkJNzI2MjZF
MDEwRUYwMjJGRTAwQTA3RTIwIC8qIEZvbnRGYXN0UGF0aC5jcHAgKi8sCisJCQkJNEE2RTlGQzUx
M0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwICovLAorCQkJCTRBNkU5
RkM2MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdzLmggKi8sCiAJCQkJMDg0
NTY4MDcxMkI5MERBNjAwOTYwQTlGIC8qIEZvbnRNZXRyaWNzLmggKi8sCiAJCQkJRjdBMDM0QzMx
MjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRhdGlvbi5oICovLAogCQkJCTg0QjYyNjg0MTMz
MTM4RjkwMDk1QTQ4OSAvKiBGb250UGxhdGZvcm1EYXRhLmNwcCAqLywKQEAgLTE5MjA4LDYgKzE5
MjE4LDggQEAKIAkJCQlBODBFNkNDOTBBMTk4OUNBMDA3RkI4QzUgLyogRm9udEZhbWlseVZhbHVl
LmggKi8sCiAJCQkJQTgwRTZDQzcwQTE5ODlDQTAwN0ZCOEM1IC8qIEZvbnRWYWx1ZS5jcHAgKi8s
CiAJCQkJQTgwRTZDQzMwQTE5ODlDQTAwN0ZCOEM1IC8qIEZvbnRWYWx1ZS5oICovLAorCQkJCTRB
NkU5RkMxMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmNwcCAqLywKKwkJCQk0
QTZFOUZDMjEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5oICovLAogCQkJCUNE
NEUwQUZBMTFGN0JDMjcwMDlEMzgxMSAvKiBmdWxsc2NyZWVuLmNzcyAqLywKIAkJCQlDREJEOTNC
QTEzMzNCRDRCMDAyNTcwRTMgLyogZnVsbHNjcmVlblF1aWNrVGltZS5jc3MgKi8sCiAJCQkJOTND
QTRDOTkwOURGOTNGQTAwREY4Njc3IC8qIGh0bWwuY3NzICovLApAQCAtMjMwODgsNiArMjMxMDAs
OCBAQAogCQkJCTA4NjM5NTE2MTNCNUZFNTcwMEJCMzQ0RCAvKiBTVkdBbmltYXRlZFBhdGguaCBp
biBIZWFkZXJzICovLAogCQkJCTQzMUEyRjlDMTNCNkYyQjAwMDc3OTFFNCAvKiBTVkdBbmltYXRl
ZE51bWJlck9wdGlvbmFsTnVtYmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUFCQjc4NzEzQjkw
NEJDMDBGMTk3RTMgLyogTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVLmggaW4gSGVhZGVycyAqLywK
KwkJCQk0QTZFOUZDNDEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNEE2RTlGQzgxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0
dGluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjU4NTUsNiArMjU4NjksOCBAQAogCQkJCTQzMUEz
MDIxMTNCODlEQ0MwMDc3OTFFNCAvKiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDMxQTMwODgxM0I4Rjk3ODAwNzc5MUU0IC8qIFNWR0FuaW1h
dGVkQm9vbGVhbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0M0Y2RkQ5NjEzQkNEMEIxMDAyMjQw
NTIgLyogU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRBNkU5RkMz
MTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTRBNkU5RkM3MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcAppbmRleCA2MmY0ZWE2MTI1NmFhZjhkYzhmZjJhOGM2M2NjMzQ3YzU1
NmVjMjY0Li43NjE2YjIyNTk4ZGRjNjAyOWU0NGEwODZhYjY0ZDIyM2ExZGY4ZDdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApA
QCAtMTY4MSw2ICsxNjgxLDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKGludCBwcm9wZXIKICAgICAgICAgICAg
IGJyZWFrOwogCiAgICAgICAgIC8qIFVuaW1wbGVtZW50ZWQgQ1NTIDMgcHJvcGVydGllcyAoaW5j
bHVkaW5nIENTUzMgc2hvcnRoYW5kIHByb3BlcnRpZXMpICovCisgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRGb250RmVhdHVyZVNldHRpbmdzOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0VGV4dEVtcGhhc2lzOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dExpbmVUaHJv
dWdoOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dExpbmVUaHJvdWdoQ29sb3I6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGZmNDNhMmRjZWY4NjkwOWQwMzc3MDA3NDA5YWIyZDEw
NGI2ZTQ5ZWEuLjA3OTBmYjYwNmQ0ZmQ1NmVlODY1YWY2YzcxNmFlNDkwZGU0ZGMzMjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC02MCw2ICs2MCw3IEBACiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJGb250RmFtaWx5
VmFsdWUuaCIKKyNpbmNsdWRlICJGb250RmVhdHVyZVZhbHVlLmgiCiAjaW5jbHVkZSAiRm9udFZh
bHVlLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhhc2hUb29s
cy5oIgpAQCAtMjA3Miw2ICsyMDczLDEyIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGlu
dCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXR1
cm4gcGFyc2VMaW5lQm94Q29udGFpbihpbXBvcnRhbnQpOwogICAgICAgICBicmVhazsKKyAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1cmVTZXR0aW5nczoKKyAgICAgICAgaWYgKGlk
ID09IENTU1ZhbHVlTm9ybWFsKQorICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gcGFyc2VGb250RmVhdHVyZVNldHRpbmdz
KGltcG9ydGFudCk7CisgICAgICAgIGJyZWFrOwogCiAjaWYgRU5BQkxFKFNWRykKICAgICBkZWZh
dWx0OgpAQCAtNjAwMCw2ICs2MDA3LDU3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUxpbmVCb3hD
b250YWluKGJvb2wgaW1wb3J0YW50KQogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIENTU1Bh
cnNlcjo6cGFyc2VGb250RmVhdHVyZVNldHRpbmdzKGJvb2wgaW1wb3J0YW50KQoreworICAgIENT
U1BhcnNlclZhbHVlKiB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7CisgICAgaWYgKG1f
dmFsdWVMaXN0LT5zaXplKCkgPT0gMSAmJiB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVOb3JtYWwpIHsK
KyAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBub3JtYWxWYWx1ZSA9IHByaW1pdGl2
ZVZhbHVlQ2FjaGUoKS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9ybWFsKTsKKyAg
ICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVy
dHlXZWJraXRGb250RmVhdHVyZVNldHRpbmdzLCBub3JtYWxWYWx1ZS5yZWxlYXNlKCksIGltcG9y
dGFudCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIFJlZlB0cjxDU1NWYWx1
ZUxpc3Q+IHNldHRpbmdzID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNlcGFyYXRlZCgpOwor
ICAgIHdoaWxlICh2YWx1ZSkgeworICAgICAgICAvLy8gRmVhdHVyZSB0YWcgbmFtZSBjb21lcyBm
aXJzdAorICAgICAgICBpZiAodmFsdWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19T
VFJJTkcgJiYgdmFsdWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVCkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgLy8gQXNzdW1lcyB0YWcgbmFtZSBjb25z
aXN0cyBvZiA0LWxldHRlciBjaGFyYWN0ZXJzCisgICAgICAgIGlmICh2YWx1ZS0+c3RyaW5nLmxl
bmd0aCAhPSA0KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBSZWZQdHI8Rm9u
dEZlYXR1cmVWYWx1ZT4gcGFyc2VkVmFsdWUgPSBGb250RmVhdHVyZVZhbHVlOjpjcmVhdGUodmFs
dWUtPnN0cmluZyk7CisgICAgICAgIHZhbHVlID0gbV92YWx1ZUxpc3QtPm5leHQoKTsKKworICAg
ICAgICAvLyBGZWF0dXJlIHRhZyB2YWx1ZXMgbWlnaHQgZm9sbG93CisgICAgICAgIGlmICh2YWx1
ZSkgeworICAgICAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBmZWF0dXJlVmFsdWU7
CisgICAgICAgICAgICBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19O
VU1CRVIgJiYgdmFsdWUtPmZWYWx1ZSA+PSAwLikKKyAgICAgICAgICAgICAgICBmZWF0dXJlVmFs
dWUgPSBwcmltaXRpdmVWYWx1ZUNhY2hlKCktPmNyZWF0ZVZhbHVlKHZhbHVlLT5mVmFsdWUsIHN0
YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM+KHZhbHVlLT51bml0KSk7Cisg
ICAgICAgICAgICBlbHNlIGlmICh2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVPbiB8fCB2YWx1ZS0+aWQg
PT0gQ1NTVmFsdWVPZmYpCisgICAgICAgICAgICAgICAgZmVhdHVyZVZhbHVlID0gcHJpbWl0aXZl
VmFsdWVDYWNoZSgpLT5jcmVhdGVJZGVudGlmaWVyVmFsdWUodmFsdWUtPmlkKTsKKworICAgICAg
ICAgICAgaWYgKGZlYXR1cmVWYWx1ZSkgeworICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlLT5z
ZXRWYWx1ZShmZWF0dXJlVmFsdWUucmVsZWFzZSgpKTsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9
IG1fdmFsdWVMaXN0LT5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAg
ICBpZiAodmFsdWUpIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQYXJzZXJW
YWx1ZTo6T3BlcmF0b3IgJiYgdmFsdWUtPmlWYWx1ZSA9PSAnLCcpCisgICAgICAgICAgICAgICAg
dmFsdWUgPSBtX3ZhbHVlTGlzdC0+bmV4dCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBzZXR0aW5ncy0+YXBwZW5k
KHBhcnNlZFZhbHVlLnJlbGVhc2UoKSk7CisgICAgfQorCisgICAgaWYgKHNldHRpbmdzICYmIHNl
dHRpbmdzLT5sZW5ndGgoKSkgeworICAgICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtp
dEZvbnRGZWF0dXJlU2V0dGluZ3MsIHNldHRpbmdzLnJlbGVhc2UoKSwgaW1wb3J0YW50KTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogc3RhdGlj
IGlubGluZSBpbnQgeXllcnJvcihjb25zdCBjaGFyKikgeyByZXR1cm4gMTsgfQogCiAjZGVmaW5l
IEVORF9UT0tFTiAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggYzZmMDc4YTliOWZiZDcwZDU1
ZjllY2Y2NjY0YjVmOTNjZWI3MjNlYi4uNzJjMGU0MzAyNDBmODE4YzU5Y2E0NjQzOWU2ZGI5MTY1
MDA3YmRhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMTgxLDYgKzE4MSw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBib29sIHBhcnNlTGluZUJveENvbnRhaW4oYm9vbCBp
bXBvcnRhbnQpOwogCisgICAgICAgIGJvb2wgcGFyc2VGb250RmVhdHVyZVNldHRpbmdzKGJvb2wg
aW1wb3J0YW50KTsKKwogICAgICAgICBpbnQgeXlwYXJzZSgpOwogCiAgICAgICAgIENTU1BhcnNl
clNlbGVjdG9yKiBjcmVhdGVGbG9hdGluZ1NlbGVjdG9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cm9wZXJ0eU5hbWVzLmluCmluZGV4IDc3NDdkNDlhZmVkMTU0NmEwZGU1NjlmOWViMDk1MjVjMjk2
ZTQxZDguLmUxZGRmNTBkNmI2NGM2ODQxODliYjNjMjJlZjE4NDcxNGEwMTE3M2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC0yMCw2ICsyMCw3IEBAIGZvbnQtc3R5
bGUKIGZvbnQtdmFyaWFudAogZm9udC13ZWlnaHQKIHRleHQtcmVuZGVyaW5nCistd2Via2l0LWZv
bnQtZmVhdHVyZS1zZXR0aW5ncwogLXdlYmtpdC1mb250LXNtb290aGluZwogLXdlYmtpdC10ZXh0
LW9yaWVudGF0aW9uCiAtZXB1Yi10ZXh0LW9yaWVudGF0aW9uID0gLXdlYmtpdC10ZXh0LW9yaWVu
dGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggMWMxZTkz
MTBlOGY2MDQxODJiMmU4ZWM1YzM4NjVkM2JjZTI2N2Y2YS4uNTI4NWZmOWEwZmYyOTI1ZjYyY2U0
Y2ExZTg3NGYyNmViOWViN2U4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIkNvdW50ZXIuaCIKICNpbmNsdWRlICJG
b2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGb250RmFtaWx5VmFsdWUuaCIKKyNpbmNsdWRl
ICJGb250RmVhdHVyZVZhbHVlLmgiCiAjaW5jbHVkZSAiRm9udFZhbHVlLmgiCiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgpAQCAtMzQzOSw3ICszNDQwLDcg
QEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseURlY2xhcmF0aW9ucyhib29sIGlzSW1wb3J0
YW50LCBpbnQgc3RhcnRJbmRleCwgaW50IGUKIAogICAgICAgICAgICAgICAgIGlmIChhcHBseUZp
cnN0KSB7CiAgICAgICAgICAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKGZpcnN0Q1NTUHJvcGVy
dHkgPT0gQ1NTUHJvcGVydHlDb2xvciwgQ1NTX2NvbG9yX2lzX2ZpcnN0X3Byb3BlcnR5KTsKLSAg
ICAgICAgICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoQ1NTUHJvcGVydHlab29tID09IENTU1By
b3BlcnR5Q29sb3IgKyAxNCwgQ1NTX3pvb21faXNfZW5kX29mX2ZpcnN0X3Byb3BfcmFuZ2UpOwor
ICAgICAgICAgICAgICAgICAgICBDT01QSUxFX0FTU0VSVChDU1NQcm9wZXJ0eVpvb20gPT0gQ1NT
UHJvcGVydHlDb2xvciArIDE1LCBDU1Nfem9vbV9pc19lbmRfb2ZfZmlyc3RfcHJvcF9yYW5nZSk7
CiAgICAgICAgICAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKENTU1Byb3BlcnR5TGluZUhlaWdo
dCA9PSBDU1NQcm9wZXJ0eVpvb20gKyAxLCBDU1NfbGluZV9oZWlnaHRfaXNfYWZ0ZXJfem9vbSk7
CiAKICAgICAgICAgICAgICAgICAgICAgLy8gZ2l2ZSBzcGVjaWFsIHByaW9yaXR5IHRvIGZvbnQt
eHh4LCBjb2xvciBwcm9wZXJ0aWVzLCBldGMKQEAgLTUzMDksNiArNTMxMCwzNiBAQCB2b2lkIENT
U1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICAvLyBDU1MgRm9udHMgTW9kdWxlIExldmVsIDMK
KyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1cmVTZXR0aW5nczogeworICAgICAg
ICBpZiAocHJpbWl0aXZlVmFsdWUgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NT
VmFsdWVOb3JtYWwpIHsKKyAgICAgICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRp
b24gPSBtX3N0eWxlLT5mb250RGVzY3JpcHRpb24oKTsKKyAgICAgICAgICAgIGZvbnREZXNjcmlw
dGlvbi5zZXRGZWF0dXJlU2V0dGluZ3MoMCk7CisgICAgICAgICAgICBpZiAobV9zdHlsZS0+c2V0
Rm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbikpCisgICAgICAgICAgICAgICAgbV9mb250
RGlydHkgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uID0gbV9zdHlsZS0+Zm9udERlc2NyaXB0
aW9uKCk7CisgICAgICAgIENTU1ZhbHVlTGlzdCogbGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVl
TGlzdCo+KHZhbHVlKTsKKyAgICAgICAgUmVmUHRyPEZvbnRGZWF0dXJlU2V0dGluZ3M+IHNldHRp
bmdzID0gRm9udEZlYXR1cmVTZXR0aW5nczo6Y3JlYXRlKCk7CisgICAgICAgIGludCBsZW4gPSBs
aXN0LT5sZW5ndGgoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47ICsraSkgewor
ICAgICAgICAgICAgQ1NTVmFsdWUqIGl0ZW0gPSBsaXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNr
KGkpOworICAgICAgICAgICAgaWYgKCFpdGVtLT5pc0ZvbnRGZWF0dXJlVmFsdWUoKSkKKyAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIEZvbnRGZWF0dXJlVmFsdWUqIGZlYXR1
cmUgPSBzdGF0aWNfY2FzdDxGb250RmVhdHVyZVZhbHVlKj4oaXRlbSk7CisgICAgICAgICAgICBz
ZXR0aW5ncy0+YXBwZW5kRmVhdHVyZShGb250RmVhdHVyZShmZWF0dXJlLT50YWcoKSwgZmVhdHVy
ZS0+dmFsdWUoKSkpOworICAgICAgICB9CisgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRGZWF0
dXJlU2V0dGluZ3Moc2V0dGluZ3MucmVsZWFzZSgpKTsKKyAgICAgICAgaWYgKG1fc3R5bGUtPnNl
dEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pKQorICAgICAgICAgICAgbV9mb250RGly
dHkgPSB0cnVlOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgLy8gVGhlc2UgcHJvcGVy
dGllcyBhcmUgaW1wbGVtZW50ZWQgaW4gdGhlIENTU1N0eWxlQXBwbHlQcm9wZXJ0eSBsb29rdXAg
dGFibGUuCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbG9yOgogICAgIGNhc2UgQ1NTUHJvcGVydHlE
aXJlY3Rpb246CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCmluZGV4IGRlNDZmZjllYTExN2UxMzQ3MDYyNjA0
ODJjNDIxODQ4ZTRhZTdhMDkuLmFmYTkxYzllNDg4YjZkZjg4OWUxMmUxYTlmYzRhZGFlNDcyZWM5
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgaXNCb3JkZXJJbWFnZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNDdXJzb3JJbWFnZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNGb250RmFtaWx5VmFsdWUoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0ZvbnRGZWF0dXJlVmFsdWUoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ZvbnRWYWx1ZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSW1hZ2VHZW5lcmF0b3JWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSW1hZ2VWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRz
LmluCmluZGV4IDljOTlhMDA0YWQ5NjU5NjQ4NjRkYTIyNjE5ZDI1YTNiNDQ3NjAxNmMuLjFiZmUy
NTE4NGQ4YTBlMjU2ODYxMWNmZjY0NWJlMDhiYzE4ZjYxM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZUtleXdvcmRzLmluCkBAIC04MDUsNiArODA1LDEwIEBAIGdseXBocwogaW5saW5lLWJv
eAogcmVwbGFjZWQKIAorLy8gLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3MKK29uCitvZmYK
KwogLy8gaW1hZ2UtcmVuZGVyaW5nCiAvL2F1dG8KIC8vb3B0aW1pemVTcGVlZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwZDYxMDAzNGY0OTc0YWU5
NGUxMjQ3ODMwZGQ2ODk2OTg1NDk5YTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRm9udEZlYXR1cmVWYWx1ZS5jcHAKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiRm9udEZlYXR1cmVWYWx1ZS5oIgorCisjaW5jbHVkZSAiQ1NT
UGFyc2VyLmgiCisjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJDU1NW
YWx1ZUtleXdvcmRzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRm9udEZlYXR1cmVWYWx1
ZTo6Rm9udEZlYXR1cmVWYWx1ZShjb25zdCBTdHJpbmcmIHRhZykKKyAgICA6IG1fdGFnKHRhZykK
K3sKK30KKworaW50IEZvbnRGZWF0dXJlVmFsdWU6OnZhbHVlKCkgY29uc3QKK3sKKyAgICBpZiAo
IW1fdmFsdWUpCisgICAgICAgIHJldHVybiAxOworICAgIGlmIChtX3ZhbHVlLT5wcmltaXRpdmVU
eXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVCkgeworICAgICAgICBzd2l0Y2gg
KG1fdmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZU9uOgorICAgICAg
ICAgICAgcmV0dXJuIDE7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVPZmY6CisgICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAg
ICB9CisgICAgfQorICAgIGlmIChtX3ZhbHVlLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19OVU1CRVIpCisgICAgICAgIHJldHVybiBtX3ZhbHVlLT5nZXRJbnRWYWx1
ZSgpOworICAgIHJldHVybiAwOworfQorCitTdHJpbmcgRm9udEZlYXR1cmVWYWx1ZTo6Y3NzVGV4
dCgpIGNvbnN0Cit7CisgICAgU3RyaW5nIHJlc3VsdCA9ICInIiArIG1fdGFnICsgIiciOworICAg
IGlmIChtX3ZhbHVlKQorICAgICAgICByZXN1bHQgKz0gIiAiICsgbV92YWx1ZS0+Y3NzVGV4dCgp
OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Gb250RmVhdHVyZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZlYXR1cmVW
YWx1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI3NGM0YTAzZGRhNGJiNGQ0ZjI5MzNkMTQ1Njc1N2UwOGM0MWYx
MjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZlYXR1cmVWYWx1
ZS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBGb250RmVhdHVyZVZhbHVlX2gKKyNkZWZp
bmUgRm9udEZlYXR1cmVWYWx1ZV9oCisKKyNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRm9udEZlYXR1cmVWYWx1ZSA6IHB1YmxpYyBDU1NWYWx1ZSB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8Rm9udEZlYXR1cmVWYWx1ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdGFn
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGb250RmVhdHVyZVZhbHVlKHRh
ZykpOworICAgIH0KKworICAgIGNvbnN0IFN0cmluZyYgdGFnKCkgY29uc3QgeyByZXR1cm4gbV90
YWc7IH0KKyAgICBpbnQgdmFsdWUoKSBjb25zdDsKKyAgICB2b2lkIHNldFZhbHVlKFBhc3NSZWZQ
dHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHZhbHVlKSB7IG1fdmFsdWUgPSB2YWx1ZTsgfQorICAgIHZp
cnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBGb250RmVhdHVy
ZVZhbHVlKGNvbnN0IFN0cmluZyYgdGFnKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNGb250RmVhdHVy
ZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgU3RyaW5nIG1fdGFnOworICAg
IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV92YWx1ZTsKK307CisKK30gLy8gbmFtZXNwYWNl
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udERlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
RGVzY3JpcHRpb24uaAppbmRleCA5MDhlYmEyMGM5NDI3MTQ5ZWNlMGVkMjhlMWQ2NTA3ZDExMDM0
YWIwLi5jMDBlOTIzOWUzN2MzNjY0MjhlMjg3NWY1YzgyY2UzMWY1Y2IzYmE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaApAQCAt
MjYsNiArMjYsNyBAQAogI2RlZmluZSBGb250RGVzY3JpcHRpb25faAogCiAjaW5jbHVkZSAiRm9u
dEZhbWlseS5oIgorI2luY2x1ZGUgIkZvbnRGZWF0dXJlU2V0dGluZ3MuaCIKICNpbmNsdWRlICJG
b250T3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1
ZGUgIkZvbnRTbW9vdGhpbmdNb2RlLmgiCkBAIC0zNSw2ICszNiw4IEBACiAjaW5jbHVkZSAiVGV4
dFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gRm9udFdlaWdo
dCB7CkBAIC03Miw2ICs3NSw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX29yaWVudGF0aW9uKEhv
cml6b250YWwpCiAgICAgICAgICwgbV90ZXh0T3JpZW50YXRpb24oVGV4dE9yaWVudGF0aW9uVmVy
dGljYWxSaWdodCkKICAgICAgICAgLCBtX3dpZHRoVmFyaWFudChSZWd1bGFyV2lkdGgpCisgICAg
ICAgICwgbV9mZWF0dXJlU2V0dGluZ3MoMCkKICAgICAgICAgLCBtX2l0YWxpYyhGb250SXRhbGlj
T2ZmKQogICAgICAgICAsIG1fc21hbGxDYXBzKEZvbnRTbWFsbENhcHNPZmYpCiAgICAgICAgICwg
bV9pc0Fic29sdXRlU2l6ZShmYWxzZSkKQEAgLTExNCw2ICsxMTgsNyBAQCBwdWJsaWM6CiAgICAg
Rm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRhdGlv
bjsgfQogICAgIFRleHRPcmllbnRhdGlvbiB0ZXh0T3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVy
biBtX3RleHRPcmllbnRhdGlvbjsgfQogICAgIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50
KCkgY29uc3QgeyByZXR1cm4gbV93aWR0aFZhcmlhbnQ7IH0KKyAgICBGb250RmVhdHVyZVNldHRp
bmdzKiBmZWF0dXJlU2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBtX2ZlYXR1cmVTZXR0aW5ncy5n
ZXQoKTsgfQogCiAgICAgdm9pZCBzZXRGYW1pbHkoY29uc3QgRm9udEZhbWlseSYgZmFtaWx5KSB7
IG1fZmFtaWx5TGlzdCA9IGZhbWlseTsgfQogICAgIHZvaWQgc2V0Q29tcHV0ZWRTaXplKGZsb2F0
IHMpIHsgQVNTRVJUKGlzZmluaXRlKHMpKTsgbV9jb21wdXRlZFNpemUgPSBzOyB9CkBAIC0xMzgs
NiArMTQzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T3JpZW50YXRpb24oRm9udE9yaWVudGF0
aW9uIG9yaWVudGF0aW9uKSB7IG1fb3JpZW50YXRpb24gPSBvcmllbnRhdGlvbjsgfQogICAgIHZv
aWQgc2V0VGV4dE9yaWVudGF0aW9uKFRleHRPcmllbnRhdGlvbiB0ZXh0T3JpZW50YXRpb24pIHsg
bV90ZXh0T3JpZW50YXRpb24gPSB0ZXh0T3JpZW50YXRpb247IH0KICAgICB2b2lkIHNldFdpZHRo
VmFyaWFudChGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCkgeyBtX3dpZHRoVmFyaWFudCA9
IHdpZHRoVmFyaWFudDsgfQorICAgIHZvaWQgc2V0RmVhdHVyZVNldHRpbmdzKFBhc3NSZWZQdHI8
Rm9udEZlYXR1cmVTZXR0aW5ncz4gc2V0dGluZ3MpIHsgbV9mZWF0dXJlU2V0dGluZ3MgPSBzZXR0
aW5nczsgfQogCiBwcml2YXRlOgogICAgIEZvbnRGYW1pbHkgbV9mYW1pbHlMaXN0OyAvLyBUaGUg
bGlzdCBvZiBmb250IGZhbWlsaWVzIHRvIGJlIHVzZWQuCkBAIC0xNTEsNiArMTU3LDggQEAgcHJp
dmF0ZToKIAogICAgIEZvbnRXaWR0aFZhcmlhbnQgbV93aWR0aFZhcmlhbnQ7CiAKKyAgICBSZWZQ
dHI8Rm9udEZlYXR1cmVTZXR0aW5ncz4gbV9mZWF0dXJlU2V0dGluZ3M7IC8vIFRoZSBsaXN0IG9m
IE9wZW5UeXBlIGZvbnQgZmVhdHVyZSBzZXR0aW5ncy4KKwogICAgIHVuc2lnbmVkIG1faXRhbGlj
IDogMTsgLy8gRm9udEl0YWxpYwogICAgIHVuc2lnbmVkIG1fc21hbGxDYXBzIDogMTsgLy8gRm9u
dFNtYWxsQ2FwcwogICAgIGJvb2wgbV9pc0Fic29sdXRlU2l6ZSA6IDE7ICAgLy8gV2hldGhlciBv
ciBub3QgQ1NTIHNwZWNpZmllZCBhbiBleHBsaWNpdCBzaXplCkBAIC0xODgsNyArMTk2LDggQEAg
aW5saW5lIGJvb2wgRm9udERlc2NyaXB0aW9uOjpvcGVyYXRvcj09KGNvbnN0IEZvbnREZXNjcmlw
dGlvbiYgb3RoZXIpIGNvbnN0CiAgICAgICAgICYmIG1faXNTcGVjaWZpZWRGb250ID09IG90aGVy
Lm1faXNTcGVjaWZpZWRGb250CiAgICAgICAgICYmIG1fb3JpZW50YXRpb24gPT0gb3RoZXIubV9v
cmllbnRhdGlvbgogICAgICAgICAmJiBtX3RleHRPcmllbnRhdGlvbiA9PSBvdGhlci5tX3RleHRP
cmllbnRhdGlvbgotICAgICAgICAmJiBtX3dpZHRoVmFyaWFudCA9PSBvdGhlci5tX3dpZHRoVmFy
aWFudDsKKyAgICAgICAgJiYgbV93aWR0aFZhcmlhbnQgPT0gb3RoZXIubV93aWR0aFZhcmlhbnQK
KyAgICAgICAgJiYgbV9mZWF0dXJlU2V0dGluZ3MuZ2V0KCkgPT0gb3RoZXIubV9mZWF0dXJlU2V0
dGluZ3MuZ2V0KCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDBmNmUyZGI4
YTM4YWFhMDAzNjlhYzJmMmYxMDIxYjI1MTNmZTMyYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwCkBAIC0w
LDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZv
bnRGZWF0dXJlU2V0dGluZ3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGb250RmVhdHVy
ZTo6Rm9udEZlYXR1cmUoY29uc3QgQXRvbWljU3RyaW5nJiB0YWcsIGludCB2YWx1ZSkKKyAgICA6
IG1fdGFnKHRhZykKKyAgICAsIG1fdmFsdWUodmFsdWUpCit7Cit9CisKK0ZvbnRGZWF0dXJlOjpG
b250RmVhdHVyZShjb25zdCBGb250RmVhdHVyZSYgb3RoZXIpCisgICAgOiBtX3RhZyhvdGhlci5t
X3RhZykKKyAgICAsIG1fdmFsdWUob3RoZXIubV92YWx1ZSkKK3sKK30KKworRm9udEZlYXR1cmUm
IEZvbnRGZWF0dXJlOjpvcGVyYXRvcj0oY29uc3QgRm9udEZlYXR1cmUmIG90aGVyKQoreworICAg
IG1fdGFnID0gb3RoZXIubV90YWc7CisgICAgbV92YWx1ZSA9IG90aGVyLm1fdmFsdWU7CisgICAg
cmV0dXJuICp0aGlzOworfQorCitib29sIEZvbnRGZWF0dXJlOjpvcGVyYXRvcj09KGNvbnN0IEZv
bnRGZWF0dXJlJiBvdGhlcikKK3sKKyAgICByZXR1cm4gbV90YWcgPT0gb3RoZXIubV90YWcgJiYg
bV92YWx1ZSA9PSBvdGhlci5tX3ZhbHVlOworfQorCitGb250RmVhdHVyZVNldHRpbmdzOjpGb250
RmVhdHVyZVNldHRpbmdzKCkKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViNWY1
NTJlMzdhOGY3Y2E0ZDRjYzA4YzczNDhkYjZlNzI0NGQ5ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmgKQEAg
LTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEZvbnRGZWF0dXJlU2V0dGluZ3NfaAor
I2RlZmluZSBGb250RmVhdHVyZVNldHRpbmdzX2gKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBGb250RmVhdHVyZSB7CitwdWJsaWM6CisgICAgRm9udEZlYXR1cmUoY29uc3QgQXRv
bWljU3RyaW5nJiB0YWcsIGludCB2YWx1ZSk7CisgICAgRm9udEZlYXR1cmUoY29uc3QgRm9udEZl
YXR1cmUmIG90aGVyKTsKKyAgICBGb250RmVhdHVyZSYgb3BlcmF0b3I9KGNvbnN0IEZvbnRGZWF0
dXJlJik7CisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZvbnRGZWF0dXJlJik7CisKKyAgICBj
b25zdCBBdG9taWNTdHJpbmcmIHRhZygpIGNvbnN0IHsgcmV0dXJuIG1fdGFnOyB9CisgICAgaW50
IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQorcHJpdmF0ZToKKyAgICBBdG9taWNT
dHJpbmcgbV90YWc7CisgICAgaW50IG1fdmFsdWU7Cit9OworCitjbGFzcyBGb250RmVhdHVyZVNl
dHRpbmdzIDogcHVibGljIFJlZkNvdW50ZWQ8Rm9udEZlYXR1cmVTZXR0aW5ncz4geworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZvbnRGZWF0dXJlU2V0dGluZ3M+IGNyZWF0ZSgpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvbnRGZWF0dXJlU2V0dGluZ3MoKSk7
CisgICAgfQorICAgIHZvaWQgYXBwZW5kRmVhdHVyZShjb25zdCBGb250RmVhdHVyZSYgZmVhdHVy
ZSkgeyBtX2xpc3QuYXBwZW5kKGZlYXR1cmUpOyB9CisgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7
IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9CisgICAgY29uc3QgRm9udEZlYXR1cmUmIG9wZXJhdG9y
W10oaW50IGluZGV4KSBjb25zdCB7IHJldHVybiBtX2xpc3RbaW5kZXhdOyB9CisgICAgY29uc3Qg
Rm9udEZlYXR1cmUmIGF0KHNpemVfdCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9saXN0W2luZGV4
XTsgfQorcHJpdmF0ZToKKyAgICBGb250RmVhdHVyZVNldHRpbmdzKCk7CisgICAgVmVjdG9yPEZv
bnRGZWF0dXJlPiBtX2xpc3Q7Cit9OworCit9CisKKyNlbmRpZiAvLyBGb250RmVhdHVyZVNldHRp
bmdzX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99941</attachid>
            <date>2011-07-06 23:34:04 -0700</date>
            <delta_ts>2011-08-01 18:14:22 -0700</delta_ts>
            <desc>Patch V2</desc>
            <filename>bug-63618-20110707153402.patch</filename>
            <type>text/plain</type>
            <size>40289</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA1MjcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNjI4MzIwNDlmZGQzMmNlNGFlYzA3
NWVkM2E1YjYxNWMxZWE2NjAxLi41YTVmZGY4MTQ1MzI3MWQyNDIwMzcxZDEzOTRmZjIwODU5ZWFl
OTQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDctMDYgIEtlbmljaGkgSXNoaWJhc2hp
ICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFBhcnNpbmcgQ1NTMyBmb250LWZlYXR1
cmUtc2V0dGluZ3MgcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYzNjE4CisKKyAgICAgICAgQWRkIHBhcnNpbmcgdGVzdCBjYXNlIGZvciAt
d2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyBwcm9wZXJ0eS4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzczMvZm9udC1mZWF0dXJlLXNldHRp
bmdzLXBhcnNpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZvbnQtZmVh
dHVyZS1zZXR0aW5ncy1wYXJzaW5nLmh0bWw6IEFkZGVkLgorCiAyMDExLTA3LTA2ICBKb2hubnkg
RGluZyAgPGpuZEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYzODU3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2Zv
bnQtZmVhdHVyZS1zZXR0aW5ncy1wYXJzaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Nz
czMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQzNDNhNzM5ODY3MTM4MWM0YTkzM2NiMzM2NDQ3Mjk3M2QyOGRjZDMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1wYXJzaW5nLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMyIEBACitUZXN0IHBhcnNpbmcgb2YgdGhlIENTUzMgZm9udC1m
ZWF0dXJlLXNldHRpbmdzIHByb3BlcnR5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworLSBUZXN0cyB2YWxpZCBpbnB1dHMKK1BBU1MgcGFyc2VSZXN1bHRPZigibm9ybWFsIikgaXMg
Im5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigiJ2FhYWEnIikgaXMgIidhYWFhJyIKK1BBU1Mg
cGFyc2VSZXN1bHRPZigiJ2FhYWEnIDEiKSBpcyAiJ2FhYWEnIDEiCitQQVNTIHBhcnNlUmVzdWx0
T2YoIlwiYWFhYVwiIDAiKSBpcyAiJ2FhYWEnIDAiCitQQVNTIHBhcnNlUmVzdWx0T2YoIidhYWFh
JyBvbiIpIGlzICInYWFhYScgb24iCitQQVNTIHBhcnNlUmVzdWx0T2YoIlwiYWFhYVwiIG9mZiIp
IGlzICInYWFhYScgb2ZmIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJhYWFhLCAnYmJiYicsIGNjY2Mi
KSBpcyAiJ2FhYWEnLCAnYmJiYicsICdjY2NjJyIKK1BBU1MgcGFyc2VSZXN1bHRPZigiJ2FhYWEn
IG9uLCBiYmJiIDEsIGNjY2Mgb2ZmIikgaXMgIidhYWFhJyBvbiwgJ2JiYmInIDEsICdjY2NjJyBv
ZmYiCitQQVNTIHBhcnNlUmVzdWx0T2YoImFhYWEsIGJiYmIgMCwgXCJjY2NjXCIiKSBpcyAiJ2Fh
YWEnLCAnYmJiYicgMCwgJ2NjY2MnIgorLSBUZXN0cyBpbnZhbGlkIGlucHV0cy4gIFJlc3VsdHMg
c2hvdWxkIGJlIGVtcHR5IHN0cmluZ3MuCitQQVNTIHBhcnNlUmVzdWx0T2YoIjEiKSBpcyAiIgor
UEFTUyBwYXJzZVJlc3VsdE9mKCJvZmYiKSBpcyAiIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJhYWFh
YSIpIGlzICIiCitQQVNTIHBhcnNlUmVzdWx0T2YoIlwiYWFhYWFcIiIpIGlzICIiCitQQVNTIHBh
cnNlUmVzdWx0T2YoImFhYWEgLTEiKSBpcyAiIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJhYWFhIFwi
YmJiYlwiIikgaXMgIiIKK1BBU1MgcGFyc2VSZXN1bHRPZigiYWFhYSBiYmJiIikgaXMgIiIKK1BB
U1MgcGFyc2VSZXN1bHRPZigiYWFhYSwgb24iKSBpcyAiIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJc
ImFhYWFcIiAxLCBcImJiYmJcIiwgMCIpIGlzICIiCitQQVNTIHBhcnNlUmVzdWx0T2YoIiwiKSBp
cyAiIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJhYWFhLCIpIGlzICIiCitQQVNTIHBhcnNlUmVzdWx0
T2YoIiwgYWFhYSIpIGlzICIiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9mb250LWZlYXR1cmUt
c2V0dGluZ3MtcGFyc2luZy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9mb250LWZlYXR1cmUtc2V0
dGluZ3MtcGFyc2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllOTI2NzllNTIzZDU3MTcxYTE3NzZjYTY2
MDBkMmM4NDZjNTM5MTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZvbnQt
ZmVhdHVyZS1zZXR0aW5ncy1wYXJzaW5nLmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBw
YXJzaW5nIG9mIHRoZSBDU1MzIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBwcm9wZXJ0eS4nKTsKKwor
ZnVuY3Rpb24gcGFyc2VSZXN1bHRPZih2YWx1ZSkgeworICAgIHZhciBlbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZWxlbWVudC5zdHlsZVsnLXdlYmtpdC1mb250
LWZlYXR1cmUtc2V0dGluZ3MnXSA9IHZhbHVlOworICAgIHJldHVybiBlbGVtZW50LnN0eWxlWyct
d2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyddOworfQorCit2YXIgdmFsaWRJbnB1dHNBbmRF
eHBlY3RlZFJlc3VsdHMgPSBbCisgICAgLy8gSW5wdXQsIEV4cGVjdGVkCisgICAgWydub3JtYWwn
LCAibm9ybWFsIl0sCisgICAgWyInYWFhYSciLCAiJ2FhYWEnIl0sCisgICAgWyInYWFhYScgMSIs
ICInYWFhYScgMSJdLAorICAgIFsnXFwiYWFhYVxcIiAwJywgIidhYWFhJyAwIl0sCisgICAgWyIn
YWFhYScgb24iLCAiJ2FhYWEnIG9uIl0sCisgICAgWydcXCJhYWFhXFwiIG9mZicsICInYWFhYScg
b2ZmIl0sCisgICAgWyJhYWFhLCAnYmJiYicsIGNjY2MiLCAiJ2FhYWEnLCAnYmJiYicsICdjY2Nj
JyJdLAorICAgIFsiJ2FhYWEnIG9uLCBiYmJiIDEsIGNjY2Mgb2ZmIiwgIidhYWFhJyBvbiwgJ2Ji
YmInIDEsICdjY2NjJyBvZmYiXSwKKyAgICBbJ2FhYWEsIGJiYmIgMCwgXFwiY2NjY1xcIicsICIn
YWFhYScsICdiYmJiJyAwLCAnY2NjYyciXSwKK107CisKK2RlYnVnKCctIFRlc3RzIHZhbGlkIGlu
cHV0cycpOworZm9yICh2YXIgaSA9IDA7IGkgPCB2YWxpZElucHV0c0FuZEV4cGVjdGVkUmVzdWx0
cy5sZW5ndGg7ICsraSkKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BhcnNlUmVzdWx0T2Yo
IicgKyB2YWxpZElucHV0c0FuZEV4cGVjdGVkUmVzdWx0c1tpXVswXSArICciKScsIHZhbGlkSW5w
dXRzQW5kRXhwZWN0ZWRSZXN1bHRzW2ldWzFdKTsKKwordmFyIGludmFsaWRJbnB1dHMgPSBbCisg
ICAgJzEnLAorICAgICdvZmYnLAorICAgICdhYWFhYScsCisgICAgJ1xcImFhYWFhXFwiJywKKyAg
ICAnYWFhYSAtMScsCisgICAgJ2FhYWEgXFwiYmJiYlxcIicsCisgICAgJ2FhYWEgYmJiYicsCisg
ICAgJ2FhYWEsIG9uJywKKyAgICAnXFwiYWFhYVxcIiAxLCBcXCJiYmJiXFwiLCAwJywKKyAgICAn
LCcsCisgICAgJ2FhYWEsJywKKyAgICAnLCBhYWFhJywKK107CisKK2RlYnVnKCctIFRlc3RzIGlu
dmFsaWQgaW5wdXRzLiAgUmVzdWx0cyBzaG91bGQgYmUgZW1wdHkgc3RyaW5ncy4nKTsKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgaW52YWxpZElucHV0cy5sZW5ndGg7ICsraSkKKyAgICBzaG91bGRCZSgn
cGFyc2VSZXN1bHRPZigiJyArIGludmFsaWRJbnB1dHNbaV0gKyAnIiknLCAnIiInKTsKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxMDc4MzVkZDcwYmNmMDA5OGFiMzA5NTI2Yjll
Y2M0ZDFiOTIzMzBmLi5kMmJjODAxZGUxNjdiNDYyYjVjNGVhNGEzMGQ5MGMzZmQ2NzVhOGQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDcwLDYgKzQ3MCw3IEBAIFNFVChXZWJDb3JlX1NPVVJD
RVMKICAgICBjc3MvQ1NTVW5pY29kZVJhbmdlVmFsdWUuY3BwCiAgICAgY3NzL0NTU1ZhbHVlTGlz
dC5jcHAKICAgICBjc3MvRm9udEZhbWlseVZhbHVlLmNwcAorICAgIGNzcy9Gb250RmVhdHVyZVZh
bHVlLmNwcAogICAgIGNzcy9Gb250VmFsdWUuY3BwCiAgICAgY3NzL01lZGlhRmVhdHVyZU5hbWVz
LmNwcAogICAgIGNzcy9NZWRpYUxpc3QuY3BwCkBAIC0xMDY2LDYgKzEwNjcsNyBAQCBTRVQoV2Vi
Q29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbGxiYWNrTGlzdC5jcHAK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRGYXN0UGF0aC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNl
dHRpbmdzLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmNwcAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmNwcAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0dyYWRpZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU1NWU2OGExYjMwZTg2NWU0ZWQxZGVl
MGRkZjMyODQ3YWUwNzFkNDAuLjhmNDk2MjdkNGVkODFhMzE0NjdhMGFlNjRlMmIwMjgzNGRmZjY2
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NCBAQAorMjAxMS0wNy0wNiAgS2VuaWNoaSBJc2hp
YmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUGFyc2luZyBDU1MzIGZvbnQt
ZmVhdHVyZS1zZXR0aW5ncyBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjM2MTgKKworICAgICAgICBJbnRyb2R1Y2VzIENTUzMgZm9udC1m
ZWF0dXJlLXNldHRpbmdzIHByb3BlcnR5IGFzIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdz
LiAgVGhpcyBjaGFuZ2Ugb25seSBjb250YWlucyBwYXJzaW5nIGFuZCBwYXJ0LiAgUGFyc2VkIGlu
Zm9ybWF0aW9uIGFyZSBzdG9yZWQgaW4gRm9udERlc2NyaXB0aW9uIGNsYXNzLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGNzczMvZm9udC1m
ZWF0dXJlLXNldHRpbmdzLXBhcnNpbmcuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
IEFkZGVkIEZvbnRGZWF0dXJlVmFsdWUue2gsY3BwfSBhbmQgRm9udEZlYXR1cmVTZXR0aW5ncy57
aCxjcHB9LgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAq
IFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgorICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIGNzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKTogQWRkZWQgQ1NTUHJv
cGVydHlXZWJraXRGb250RmVhdHVyZVNldHRpbmdzIGFzIGEgc2hvcnRoYW5kIHByb3BlcnR5Lgor
ICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
OjpwYXJzZVZhbHVlKTogQWRkZWQgcGFyc2luZyBjb2RlIGZvciAtd2Via2l0LWZvbnQtZmVhdHVy
ZS1zZXR0aW5ncy4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGb250RmVhdHVy
ZVRhZyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUZvbnRGZWF0
dXJlU2V0dGluZ3MpOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6IEFkZGVkIHBh
cnNlRm9udEZlYXR1cmVTZXR0aW5ncygpLgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eU5hbWVz
LmluOiBBZGRlZCAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncy4KKyAgICAgICAgKiBjc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9y
OjphcHBseURlY2xhcmF0aW9ucyk6IE1vZGlmaWVkIGEgY29tcGlsZSBhc3NlcnQgdG8gZm9sbG93
IGFkZGluZyAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncy4KKyAgICAgICAgKFdlYkNvcmU6
OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOiBBZGRlZCBhIGNhc2UgY2xhdXNlIGZv
ciBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRGZWF0dXJlU2V0dGluZ3MuCisgICAgICAgICogY3NzL0NT
U1ZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNGb250RmVhdHVyZVZhbHVl
KTogQWRkZWQuCisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46IEFkZGVkICdvbicg
YW5kICdvZmYnIGtleXdvcmRzLgorICAgICAgICAqIGNzcy9Gb250RmVhdHVyZVZhbHVlLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVyZVZhbHVlOjpGb250RmVhdHVyZVZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlVmFsdWU6OnZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlVmFsdWU6OmNzc1RleHQpOgorICAgICAgICAqIGNzcy9G
b250RmVhdHVyZVZhbHVlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVW
YWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlVmFsdWU6OnRhZyk6
CisgICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVyZVZhbHVlOjpzZXRWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpGb250RmVhdHVyZVZhbHVlOjppc0ZvbnRGZWF0dXJlVmFsdWUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb250RGVzY3JpcHRpb246Om1ha2VOb3JtYWxGZWF0dXJlU2V0dGluZ3MpOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaDoKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6Rm9udERlc2NyaXB0aW9uKTogQWRkZWQgbV9mZWF0
dXJlU2V0dGluZ3MgbWVtYmVyIHZhcmlhYmxlLgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2Ny
aXB0aW9uOjpmZWF0dXJlU2V0dGluZ3MpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRE
ZXNjcmlwdGlvbjo6c2V0RmVhdHVyZVNldHRpbmdzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpGb250RGVzY3JpcHRpb246Om9wZXJhdG9yPT0pOiBNb2RpZmllZCB0byB0YWtlIGludG8gYWNj
b3VudCBtX2ZlYXR1cmVTZXR0aW5ncworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRG
ZWF0dXJlU2V0dGluZ3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJl
OjpGb250RmVhdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVyZTo6b3BlcmF0b3I9
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlOjpvcGVyYXRvcj09KToKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnRGZWF0dXJlU2V0dGluZ3M6OkZvbnRGZWF0dXJlU2V0dGluZ3MpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVyZTo6dGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRGZWF0dXJlOjp2YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVyZVNldHRpbmdz
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVTZXR0aW5nczo6YXBwZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlU2V0dGluZ3M6OnNpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVTZXR0aW5nczo6b3BlcmF0b3JbXSk6CisgICAgICAgIChX
ZWJDb3JlOjpGb250RmVhdHVyZVNldHRpbmdzOjphdCk6CisKIDIwMTEtMDctMDYgIEVtaWwgQSBF
a2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2Vp
ZGVsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMGFjNWE1YTdjMGFmMDAxMDYx
ZGYzYTg2YWExZjVlYWQ1NmY3YjI3NC4uOTUxNjlmYTUxM2E2NWVmZDUxZDc3OTEwOTQ3MTcyYWFi
NjM2MTIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xMDExLDYgKzEwMTEs
OCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9EYXNoYm9hcmRS
ZWdpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYW1pbHlWYWx1ZS5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFtaWx5VmFsdWUuaCBcCisJU291cmNlL1dlYkNvcmUvY3Nz
L0ZvbnRGZWF0dXJlVmFsdWUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZlYXR1cmVW
YWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udFZhbHVlLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvY3NzL0ZvbnRWYWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJl
TmFtZXMuY3BwIFwKQEAgLTI0OTEsNiArMjQ5Myw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbWlseS5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYW1pbHkuaCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcCBcCisJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgXAorCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuaCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250TWV0cmljcy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250T3JpZW50YXRpb24uaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOWRhODE1MWEzNDc5
ODU0ZDkxNTYxNGIxMTJiODBhOGQzNDgwZjY0MC4uY2Y1YjMwM2ZhOTA1ZDlhYjE0ODVjZjhlMDE2
OTZhMGZmOTI1MDVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtODIwLDYgKzgyMCw3IEBACiAgICAg
ICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3QuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbWlseS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRNZXRyaWNzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRPcmllbnRhdGlvbi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250UmVu
ZGVyaW5nTW9kZS5oJywKQEAgLTIzNjYsNiArMjM2Nyw4IEBACiAgICAgICAgICAgICAnY3NzL0Rh
c2hib2FyZFJlZ2lvbi5oJywKICAgICAgICAgICAgICdjc3MvRm9udEZhbWlseVZhbHVlLmNwcCcs
CiAgICAgICAgICAgICAnY3NzL0ZvbnRGYW1pbHlWYWx1ZS5oJywKKyAgICAgICAgICAgICdjc3Mv
Rm9udEZlYXR1cmVWYWx1ZS5jcHAnLAorICAgICAgICAgICAgJ2Nzcy9Gb250RmVhdHVyZVZhbHVl
LmgnLAogICAgICAgICAgICAgJ2Nzcy9Gb250VmFsdWUuY3BwJywKICAgICAgICAgICAgICdjc3Mv
Rm9udFZhbHVlLmgnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5jcHAnLApA
QCAtMzk0OCw2ICszOTUxLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250
RGVzY3JpcHRpb24uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFs
bGJhY2tMaXN0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbWls
eS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGlu
Z3MuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3Bw
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KaW5kZXggNDU1MDRiMTNkN2M3OTRmZjYxMTNmYjlkNGRhM2JjNDUxOWFjMDVjZi4u
NzM2ZDkzYzFjZGQzZDk5NDJlMzMxNjMwYTM3ZTdlYmMzODgzMjEzMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8K
QEAgLTQyNyw2ICs0MjcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBjc3MvQ1NTVW5pY29kZVJhbmdl
VmFsdWUuY3BwIFwKICAgICBjc3MvQ1NTVmFsdWVMaXN0LmNwcCBcCiAgICAgY3NzL0ZvbnRGYW1p
bHlWYWx1ZS5jcHAgXAorICAgIGNzcy9Gb250RmVhdHVyZVZhbHVlLmNwcCBcCiAgICAgY3NzL0Zv
bnRWYWx1ZS5jcHAgXAogICAgIGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5jcHAgXAogICAgIGNzcy9N
ZWRpYUxpc3QuY3BwIFwKQEAgLTk3Niw2ICs5NzcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9Gb250RmFsbGJhY2tMaXN0LmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbWls
eS5jcHAgXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwIFwK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgXAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmNw
cCBcCkBAIC0xNDE0LDYgKzE0MTYsNyBAQCBIRUFERVJTICs9IFwKICAgICBjc3MvQ1NTVW5pY29k
ZVJhbmdlVmFsdWUuaCBcCiAgICAgY3NzL0NTU1ZhbHVlTGlzdC5oIFwKICAgICBjc3MvRm9udEZh
bWlseVZhbHVlLmggXAorICAgIGNzcy9Gb250RmVhdHVyZVZhbHVlLmggXAogICAgIGNzcy9Gb250
VmFsdWUuaCBcCiAgICAgY3NzL01lZGlhRmVhdHVyZU5hbWVzLmggXAogICAgIGNzcy9NZWRpYUxp
c3QuaCBcCkBAIC0xOTY5LDYgKzE5NzIsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9Gb250RGF0YS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRp
b24uaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbWlseS5oIFwKKyAgICBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRNZXRyaWNzLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaCBcCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDEzYjA3NTlmMzA4YjlmYjhlOGY5MzlkMDNi
ZDc4NzhlNzgyY2MyZTAuLjg3ZTJiNzJhOWVjMDY3ODQ3NWNlNmU0ZWVjOWNkMjIyY2ViNDY3ZjEg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0y
NzQyOSw2ICsyNzQyOSwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRm9udEZlYXR1cmVTZXR0aW5ncy5j
cHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwbGF0Zm9ybVxncmFwaGljc1xGb250RmVhdHVyZVNldHRpbmdzLmgiCisJCQkJCT4KKwkJCQk8
L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xGb250RmFzdFBhdGguY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpAQCAtMzI3ODIsNiArMzI3
OTAsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cY3NzXEZvbnRGZWF0dXJlVmFsdWUuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcRm9udEZlYXR1cmVWYWx1ZS5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcRm9udFZhbHVlLmNw
cCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmJjNWMxYzVlNzlmOTgwOGE0ZTg3Njk3YTE2YWE2
NGQ3MjMwOWU2NC4uMDYyMzJmMWZkYzc4MjRhZTUyMTg0Y2QwOGE0NDViODg0ZTAwMjc0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTIzMyw2ICsxMjMzLDEwIEBACiAJCTQ5RkZCRjQwMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJH
TExheWVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDlGRkJGM0UxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gKi87IH07CiAJCTRBMERB
MkZFMTI5QjI0MTkwMEFCNjFFMSAvKiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEEwREEyRkMxMjlCMjQxOTAw
QUI2MUUxIC8qIEZvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAgKi87IH07CiAJCTRBMERBMkZGMTI5
QjI0MTkwMEFCNjFFMSAvKiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBMERBMkZEMTI5QjI0MTkwMEFCNjFFMSAv
KiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk0QTZFOUZDMzEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1
cmVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0QTZFOUZDMTEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5jcHAgKi87IH07
CisJCTRBNkU5RkM0MTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTZFOUZDMjEzQzE3RDFE
MDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTRBNkU5RkM3MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250
RmVhdHVyZVNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDRBNkU5RkM1MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdz
LmNwcCAqLzsgfTsKKwkJNEE2RTlGQzgxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0
dGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRB
NkU5RkM2MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEE4Qzk2RUIwQkU2OTAz
MjAwNEVFRkYwIC8qIEZyYW1lU2VsZWN0aW9uTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE4Qzk2RUEwQkU2OTAzMjAwNEVFRkYwIC8qIEZyYW1l
U2VsZWN0aW9uTWFjLm1tICovOyB9OwogCQk0QUNCQzBCRTEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xh
c3NMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDRBQ0JDMEJDMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuY3BwICovOyB9OwogCQk0QUNC
QzBCRjEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QUNCQzBCRDEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xh
c3NMaXN0LmggKi87IH07CkBAIC03NzUyLDYgKzc3NTYsMTAgQEAKIAkJNDlGRkJGM0UxMUM5M0VF
MzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJHTExheWVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
QTBEQTJGQzEyOUIyNDE5MDBBQjYxRTEgLyogRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Bc3NvY2lhdGVkRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBMERBMkZEMTI5QjI0MTkwMEFCNjFF
MSAvKiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRm9ybUFzc29jaWF0ZWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTRBNkU5RkMxMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvbnRGZWF0dXJlVmFsdWUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTZFOUZDMjEzQzE3RDFEMDA0NkE3RjggLyog
Rm9udEZlYXR1cmVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250
RmVhdHVyZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNkU5RkM1MTND
MTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0QTZFOUZDNjEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1
cmVTZXR0aW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgZmlsZUVuY29kaW5nID0gNDsgcGF0aCA9IEZvbnRGZWF0dXJl
U2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEE4Qzk2RUEwQkU2OTAz
MjAwNEVFRkYwIC8qIEZyYW1lU2VsZWN0aW9uTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbmFtZSA9IEZyYW1lU2VsZWN0aW9uTWFjLm1tOyBwYXRoID0gbWFjL0ZyYW1l
U2VsZWN0aW9uTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QUNCQzBCQzEy
NzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENsYXNzTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTRBQ0JDMEJEMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ2xhc3NMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xODAwNyw2ICsxODAxNSw4IEBACiAJCQkJQjJDM0RBNTgwRDAwNkNENjAwRUY2RjI2IC8q
IEZvbnRGYW1pbHkuY3BwICovLAogCQkJCUIyQzNEQTU5MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250
RmFtaWx5LmggKi8sCiAJCQkJNzI2MjZFMDEwRUYwMjJGRTAwQTA3RTIwIC8qIEZvbnRGYXN0UGF0
aC5jcHAgKi8sCisJCQkJNEE2RTlGQzUxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0
dGluZ3MuY3BwICovLAorCQkJCTRBNkU5RkM2MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVy
ZVNldHRpbmdzLmggKi8sCiAJCQkJMDg0NTY4MDcxMkI5MERBNjAwOTYwQTlGIC8qIEZvbnRNZXRy
aWNzLmggKi8sCiAJCQkJRjdBMDM0QzMxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRhdGlv
bi5oICovLAogCQkJCTg0QjYyNjg0MTMzMTM4RjkwMDk1QTQ4OSAvKiBGb250UGxhdGZvcm1EYXRh
LmNwcCAqLywKQEAgLTE5MjA4LDYgKzE5MjE4LDggQEAKIAkJCQlBODBFNkNDOTBBMTk4OUNBMDA3
RkI4QzUgLyogRm9udEZhbWlseVZhbHVlLmggKi8sCiAJCQkJQTgwRTZDQzcwQTE5ODlDQTAwN0ZC
OEM1IC8qIEZvbnRWYWx1ZS5jcHAgKi8sCiAJCQkJQTgwRTZDQzMwQTE5ODlDQTAwN0ZCOEM1IC8q
IEZvbnRWYWx1ZS5oICovLAorCQkJCTRBNkU5RkMxMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVh
dHVyZVZhbHVlLmNwcCAqLywKKwkJCQk0QTZFOUZDMjEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZl
YXR1cmVWYWx1ZS5oICovLAogCQkJCUNENEUwQUZBMTFGN0JDMjcwMDlEMzgxMSAvKiBmdWxsc2Ny
ZWVuLmNzcyAqLywKIAkJCQlDREJEOTNCQTEzMzNCRDRCMDAyNTcwRTMgLyogZnVsbHNjcmVlblF1
aWNrVGltZS5jc3MgKi8sCiAJCQkJOTNDQTRDOTkwOURGOTNGQTAwREY4Njc3IC8qIGh0bWwuY3Nz
ICovLApAQCAtMjMwODgsNiArMjMxMDAsOCBAQAogCQkJCTA4NjM5NTE2MTNCNUZFNTcwMEJCMzQ0
RCAvKiBTVkdBbmltYXRlZFBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCTQzMUEyRjlDMTNCNkYy
QjAwMDc3OTFFNCAvKiBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNUFCQjc4NzEzQjkwNEJDMDBGMTk3RTMgLyogTGluZUJyZWFrSXRlcmF0b3JQ
b29sSUNVLmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTZFOUZDNDEzQzE3RDFEMDA0NkE3RjggLyog
Rm9udEZlYXR1cmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEE2RTlGQzgxM0MxN0Q1NzAw
NDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjU4NTUs
NiArMjU4NjksOCBAQAogCQkJCTQzMUEzMDIxMTNCODlEQ0MwMDc3OTFFNCAvKiBTVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDMxQTMwODgxM0I4
Rjk3ODAwNzc5MUU0IC8qIFNWR0FuaW1hdGVkQm9vbGVhbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk0M0Y2RkQ5NjEzQkNEMEIxMDAyMjQwNTIgLyogU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTRBNkU5RkMzMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZh
bHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRBNkU5RkM3MTNDMTdENTcwMDQ2QTdGOCAvKiBG
b250RmVhdHVyZVNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBkNDIwYWFhZjUy
NDkyYjYyOTU3OTc2MTc5NTBkMDg4MzNhNjBiZGNjLi5lMTc3YTMzMTZiMGJiMTAzMTczYjc4YjMw
N2NiMWZjMzk5NzY3ZjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTY4MSw2ICsxNjgxLDcgQEAgUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVl
KGludCBwcm9wZXIKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIC8qIFVuaW1wbGVtZW50
ZWQgQ1NTIDMgcHJvcGVydGllcyAoaW5jbHVkaW5nIENTUzMgc2hvcnRoYW5kIHByb3BlcnRpZXMp
ICovCisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGb250RmVhdHVyZVNldHRpbmdzOgog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzOgogICAgICAgICBjYXNl
IENTU1Byb3BlcnR5VGV4dExpbmVUaHJvdWdoOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5VGV4
dExpbmVUaHJvdWdoQ29sb3I6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGZmNDNhMmRj
ZWY4NjkwOWQwMzc3MDA3NDA5YWIyZDEwNGI2ZTQ5ZWEuLjEzNGY1YzBlODI1NTYwMmJmMGZmMzk1
YzhjNWRkYjNmMzNkMThmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC02MCw2ICs2
MCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24u
aCIKICNpbmNsdWRlICJGb250RmFtaWx5VmFsdWUuaCIKKyNpbmNsdWRlICJGb250RmVhdHVyZVZh
bHVlLmgiCiAjaW5jbHVkZSAiRm9udFZhbHVlLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9t
cy5oIgogI2luY2x1ZGUgIkhhc2hUb29scy5oIgpAQCAtMjA3Miw2ICsyMDczLDEyIEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VMaW5lQm94Q29udGFpbihpbXBvcnRhbnQp
OwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1cmVT
ZXR0aW5nczoKKyAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFsKQorICAgICAgICAgICAg
dmFsaWRQcmltaXRpdmUgPSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4g
cGFyc2VGb250RmVhdHVyZVNldHRpbmdzKGltcG9ydGFudCk7CisgICAgICAgIGJyZWFrOwogCiAj
aWYgRU5BQkxFKFNWRykKICAgICBkZWZhdWx0OgpAQCAtNjAwMCw2ICs2MDA3LDY4IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZUxpbmVCb3hDb250YWluKGJvb2wgaW1wb3J0YW50KQogICAgIHJldHVy
biB0cnVlOwogfQogCitib29sIENTU1BhcnNlcjo6cGFyc2VGb250RmVhdHVyZVRhZyhDU1NWYWx1
ZUxpc3QqIHNldHRpbmdzKQoreworICAgIC8vIEZlYXR1cmUgdGFnIG5hbWUgY29uc2lzdHMgb2Yg
NC1sZXR0ZXIgY2hhcmFjdGVycy4KKyAgICBzdGF0aWMgY29uc3QgaW50IHRhZ05hbWVMZW5ndGgg
PSA0OworCisgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQo
KTsKKyAgICAvLyBGZWF0dXJlIHRhZyBuYW1lIGNvbWVzIGZpcnN0CisgICAgaWYgKHZhbHVlLT51
bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HICYmIHZhbHVlLT51bml0ICE9IENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAodmFsdWUtPnN0cmluZy5sZW5ndGggIT0gdGFnTmFtZUxlbmd0aCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIFJlZlB0cjxGb250RmVhdHVyZVZhbHVlPiBwYXJzZWRWYWx1ZSA9IEZvbnRG
ZWF0dXJlVmFsdWU6OmNyZWF0ZSh2YWx1ZS0+c3RyaW5nKTsKKyAgICB2YWx1ZSA9IG1fdmFsdWVM
aXN0LT5uZXh0KCk7CisKKyAgICAvLyBGZWF0dXJlIHRhZyB2YWx1ZXMgbWlnaHQgZm9sbG93Cisg
ICAgaWYgKHZhbHVlKSB7CisgICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gZmVhdHVy
ZVZhbHVlOworICAgICAgICBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19OVU1CRVIgJiYgdmFsdWUtPmZWYWx1ZSA+PSAwLikKKyAgICAgICAgICAgIGZlYXR1cmVWYWx1
ZSA9IHByaW1pdGl2ZVZhbHVlQ2FjaGUoKS0+Y3JlYXRlVmFsdWUodmFsdWUtPmZWYWx1ZSwgc3Rh
dGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcz4odmFsdWUtPnVuaXQpKTsKKyAg
ICAgICAgZWxzZSBpZiAodmFsdWUtPmlkID09IENTU1ZhbHVlT24gfHwgdmFsdWUtPmlkID09IENT
U1ZhbHVlT2ZmKQorICAgICAgICAgICAgZmVhdHVyZVZhbHVlID0gcHJpbWl0aXZlVmFsdWVDYWNo
ZSgpLT5jcmVhdGVJZGVudGlmaWVyVmFsdWUodmFsdWUtPmlkKTsKKyAgICAgICAgCisgICAgICAg
IGlmIChmZWF0dXJlVmFsdWUpIHsKKyAgICAgICAgICAgIHBhcnNlZFZhbHVlLT5zZXRWYWx1ZShm
ZWF0dXJlVmFsdWUucmVsZWFzZSgpKTsKKyAgICAgICAgICAgIHZhbHVlID0gbV92YWx1ZUxpc3Qt
Pm5leHQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBzZXR0aW5ncy0+YXBwZW5kKHBhcnNlZFZh
bHVlLnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ1NTUGFyc2VyOjpw
YXJzZUZvbnRGZWF0dXJlU2V0dGluZ3MoYm9vbCBpbXBvcnRhbnQpCit7CisgICAgaWYgKG1fdmFs
dWVMaXN0LT5zaXplKCkgPT0gMSAmJiBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpLT5pZCA9PSBDU1NW
YWx1ZU5vcm1hbCkgeworICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG5vcm1hbFZh
bHVlID0gcHJpbWl0aXZlVmFsdWVDYWNoZSgpLT5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFs
dWVOb3JtYWwpOworICAgICAgICBtX3ZhbHVlTGlzdC0+bmV4dCgpOworICAgICAgICBhZGRQcm9w
ZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdEZvbnRGZWF0dXJlU2V0dGluZ3MsIG5vcm1hbFZhbHVlLnJl
bGVhc2UoKSwgaW1wb3J0YW50KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAg
UmVmUHRyPENTU1ZhbHVlTGlzdD4gc2V0dGluZ3MgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1h
U2VwYXJhdGVkKCk7CisgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1
cnJlbnQoKTsKKyAgICB3aGlsZSAodmFsdWUpIHsKKyAgICAgICAgaWYgKCFwYXJzZUZvbnRGZWF0
dXJlVGFnKHNldHRpbmdzLmdldCgpKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworCisgICAgICAgIGlmICh2YWx1ZSkg
eworICAgICAgICAgICAgLy8gSWYgdGhlIGxpc3QgaXNuJ3QgcGFyc2VkIGZ1bGx5LCB0aGUgY3Vy
cmVudCB2YWx1ZSBzaG91bGQgYmUgY29tbWEuCisgICAgICAgICAgICBpZiAoIXZhbHVlLT51bml0
ID09IENTU1BhcnNlclZhbHVlOjpPcGVyYXRvciB8fCB2YWx1ZS0+aVZhbHVlICE9ICcsJykKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB2YWx1ZSA9IG1fdmFsdWVM
aXN0LT5uZXh0KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoc2V0dGluZ3MtPmxlbmd0
aCgpKSB7CisgICAgICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1cmVT
ZXR0aW5ncywgc2V0dGluZ3MucmVsZWFzZSgpLCBpbXBvcnRhbnQpOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgaW5saW5lIGludCB5
eWVycm9yKGNvbnN0IGNoYXIqKSB7IHJldHVybiAxOyB9CiAKICNkZWZpbmUgRU5EX1RPS0VOIDAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCBjNmYwNzhhOWI5ZmJkNzBkNTVmOWVjZjY2NjRiNWY5
M2NlYjcyM2ViLi5jMDQ2OThiZGJiMDNjY2UwNzIyNDFjNzUzMThlODE3ZjJiZTc1NmNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5oCkBAIC0xODEsNiArMTgxLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgICAgIGJvb2wgcGFyc2VMaW5lQm94Q29udGFpbihib29sIGltcG9ydGFudCk7CiAK
KyAgICAgICAgYm9vbCBwYXJzZUZvbnRGZWF0dXJlVGFnKENTU1ZhbHVlTGlzdCopOworICAgICAg
ICBib29sIHBhcnNlRm9udEZlYXR1cmVTZXR0aW5ncyhib29sIGltcG9ydGFudCk7CisKICAgICAg
ICAgaW50IHl5cGFyc2UoKTsKIAogICAgICAgICBDU1NQYXJzZXJTZWxlY3RvciogY3JlYXRlRmxv
YXRpbmdTZWxlY3RvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnR5TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRl
eCA3NzQ3ZDQ5YWZlZDE1NDZhMGRlNTY5ZjllYjA5NTI1YzI5NmU0MWQ4Li5lMWRkZjUwZDZiNjRj
Njg0MTg5YmIzYzIyZWYxODQ3MTRhMDExNzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJvcGVydHlOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVy
dHlOYW1lcy5pbgpAQCAtMjAsNiArMjAsNyBAQCBmb250LXN0eWxlCiBmb250LXZhcmlhbnQKIGZv
bnQtd2VpZ2h0CiB0ZXh0LXJlbmRlcmluZworLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3MK
IC13ZWJraXQtZm9udC1zbW9vdGhpbmcKIC13ZWJraXQtdGV4dC1vcmllbnRhdGlvbgogLWVwdWIt
dGV4dC1vcmllbnRhdGlvbiA9IC13ZWJraXQtdGV4dC1vcmllbnRhdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDFjMWU5MzEwZThmNjA0MTgyYjJlOGVjNWMz
ODY1ZDNiY2UyNjdmNmEuLmE5NWRjZTk0MTU1ZjcxNGYyNjE1ZDE1OWJkZGJiMWYzZWY5MTQ0NzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTU2LDYgKzU2LDcg
QEAKICNpbmNsdWRlICJDb3VudGVyLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiRm9udEZhbWlseVZhbHVlLmgiCisjaW5jbHVkZSAiRm9udEZlYXR1cmVWYWx1ZS5o
IgogI2luY2x1ZGUgIkZvbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVTZWxlY3Rpb24uaCIKQEAgLTM0MzksNyArMzQ0MCw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxl
Y3Rvcjo6YXBwbHlEZWNsYXJhdGlvbnMoYm9vbCBpc0ltcG9ydGFudCwgaW50IHN0YXJ0SW5kZXgs
IGludCBlCiAKICAgICAgICAgICAgICAgICBpZiAoYXBwbHlGaXJzdCkgewogICAgICAgICAgICAg
ICAgICAgICBDT01QSUxFX0FTU0VSVChmaXJzdENTU1Byb3BlcnR5ID09IENTU1Byb3BlcnR5Q29s
b3IsIENTU19jb2xvcl9pc19maXJzdF9wcm9wZXJ0eSk7Ci0gICAgICAgICAgICAgICAgICAgIENP
TVBJTEVfQVNTRVJUKENTU1Byb3BlcnR5Wm9vbSA9PSBDU1NQcm9wZXJ0eUNvbG9yICsgMTQsIENT
U196b29tX2lzX2VuZF9vZl9maXJzdF9wcm9wX3JhbmdlKTsKKyAgICAgICAgICAgICAgICAgICAg
Q09NUElMRV9BU1NFUlQoQ1NTUHJvcGVydHlab29tID09IENTU1Byb3BlcnR5Q29sb3IgKyAxNSwg
Q1NTX3pvb21faXNfZW5kX29mX2ZpcnN0X3Byb3BfcmFuZ2UpOwogICAgICAgICAgICAgICAgICAg
ICBDT01QSUxFX0FTU0VSVChDU1NQcm9wZXJ0eUxpbmVIZWlnaHQgPT0gQ1NTUHJvcGVydHlab29t
ICsgMSwgQ1NTX2xpbmVfaGVpZ2h0X2lzX2FmdGVyX3pvb20pOwogCiAgICAgICAgICAgICAgICAg
ICAgIC8vIGdpdmUgc3BlY2lhbCBwcmlvcml0eSB0byBmb250LXh4eCwgY29sb3IgcHJvcGVydGll
cywgZXRjCkBAIC01MzA5LDYgKzUzMTAsMzQgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBs
eVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAgICAgICByZXR1cm47CiAgICAg
fQogCisgICAgLy8gQ1NTIEZvbnRzIE1vZHVsZSBMZXZlbCAzCisgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdEZvbnRGZWF0dXJlU2V0dGluZ3M6IHsKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVl
ICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9ybWFsKSB7CisgICAg
ICAgICAgICBpZiAobV9zdHlsZS0+c2V0Rm9udERlc2NyaXB0aW9uKG1fc3R5bGUtPmZvbnREZXNj
cmlwdGlvbigpLm1ha2VOb3JtYWxGZWF0dXJlU2V0dGluZ3MoKSkpCisgICAgICAgICAgICAgICAg
bV9mb250RGlydHkgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uID0gbV9zdHlsZS0+Zm9udERl
c2NyaXB0aW9uKCk7CisgICAgICAgIENTU1ZhbHVlTGlzdCogbGlzdCA9IHN0YXRpY19jYXN0PENT
U1ZhbHVlTGlzdCo+KHZhbHVlKTsKKyAgICAgICAgUmVmUHRyPEZvbnRGZWF0dXJlU2V0dGluZ3M+
IHNldHRpbmdzID0gRm9udEZlYXR1cmVTZXR0aW5nczo6Y3JlYXRlKCk7CisgICAgICAgIGludCBs
ZW4gPSBsaXN0LT5sZW5ndGgoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47ICsr
aSkgeworICAgICAgICAgICAgQ1NTVmFsdWUqIGl0ZW0gPSBsaXN0LT5pdGVtV2l0aG91dEJvdW5k
c0NoZWNrKGkpOworICAgICAgICAgICAgaWYgKCFpdGVtLT5pc0ZvbnRGZWF0dXJlVmFsdWUoKSkK
KyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIEZvbnRGZWF0dXJlVmFsdWUq
IGZlYXR1cmUgPSBzdGF0aWNfY2FzdDxGb250RmVhdHVyZVZhbHVlKj4oaXRlbSk7CisgICAgICAg
ICAgICBzZXR0aW5ncy0+YXBwZW5kKEZvbnRGZWF0dXJlKGZlYXR1cmUtPnRhZygpLCBmZWF0dXJl
LT52YWx1ZSgpKSk7CisgICAgICAgIH0KKyAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldEZlYXR1
cmVTZXR0aW5ncyhzZXR0aW5ncy5yZWxlYXNlKCkpOworICAgICAgICBpZiAobV9zdHlsZS0+c2V0
Rm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbikpCisgICAgICAgICAgICBtX2ZvbnREaXJ0
eSA9IHRydWU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICAvLyBUaGVzZSBwcm9wZXJ0
aWVzIGFyZSBpbXBsZW1lbnRlZCBpbiB0aGUgQ1NTU3R5bGVBcHBseVByb3BlcnR5IGxvb2t1cCB0
YWJsZS4KICAgICBjYXNlIENTU1Byb3BlcnR5Q29sb3I6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eURp
cmVjdGlvbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKaW5kZXggZGU0NmZmOWVhMTE3ZTEzNDcwNjI2MDQ4
MmM0MjE4NDhlNGFlN2EwOS4uYWZhOTFjOWU0ODhiNmRmODg5ZTEyZTFhOWZjNGFkYWU0NzJlYzk5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBpc0JvcmRlckltYWdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBpc0N1cnNvckltYWdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ZvbnRGYW1pbHlWYWx1ZSgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzRm9udEZlYXR1cmVWYWx1ZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRm9udFZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUdlbmVyYXRvclZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZVZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4KaW5kZXggOWM5OWEwMDRhZDk2NTk2NDg2NGRhMjI2MTlkMjVhM2I0NDc2MDE2Yy4uMWJmZTI1
MTg0ZDhhMGUyNTY4NjExY2ZmNjQ1YmUwOGJjMThmNjEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW4KQEAgLTgwNSw2ICs4MDUsMTAgQEAgZ2x5cGhzCiBpbmxpbmUtYm94
CiByZXBsYWNlZAogCisvLyAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncworb24KK29mZgor
CiAvLyBpbWFnZS1yZW5kZXJpbmcKIC8vYXV0bwogLy9vcHRpbWl6ZVNwZWVkCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZlYXR1cmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRm9udEZlYXR1cmVWYWx1ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzEzMDY2MmUyZDkyNWVkOTdi
M2RhYWZhYTVkZDcyMTk4MDViOTdkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Gb250RmVhdHVyZVZhbHVlLmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJGb250RmVhdHVyZVZhbHVlLmgiCisKKyNpbmNsdWRlICJDU1NQ
YXJzZXIuaCIKKyNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1ZGUgIkNTU1Zh
bHVlS2V5d29yZHMuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworRm9udEZlYXR1cmVWYWx1ZTo6Rm9udEZlYXR1cmVWYWx1ZShj
b25zdCBTdHJpbmcmIHRhZykKKyAgICA6IG1fdGFnKHRhZykKK3sKK30KKworaW50IEZvbnRGZWF0
dXJlVmFsdWU6OnZhbHVlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fdmFsdWUpCisgICAgICAgIHJl
dHVybiAxOworICAgIGlmIChtX3ZhbHVlLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19JREVOVCkgeworICAgICAgICBzd2l0Y2ggKG1fdmFsdWUtPmdldElkZW50KCkp
IHsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZU9uOgorICAgICAgICAgICAgcmV0dXJuIDE7CisgICAg
ICAgIGNhc2UgQ1NTVmFsdWVPZmY6CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIGlmICht
X3ZhbHVlLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIp
CisgICAgICAgIHJldHVybiBtX3ZhbHVlLT5nZXRJbnRWYWx1ZSgpOworICAgIHJldHVybiAwOwor
fQorCitTdHJpbmcgRm9udEZlYXR1cmVWYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0Cit7CisgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKCInIik7CisgICAgYnVpbGRl
ci5hcHBlbmQobV90YWcpOworICAgIGJ1aWxkZXIuYXBwZW5kKCInIik7CisgICAgaWYgKG1fdmFs
dWUpIHsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQobV92YWx1ZS0+Y3NzVGV4dCgpKTsKKyAgICB9CisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGZWF0dXJl
VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjc0YzRhMDNkZGE0YmI0ZDRmMjkzM2QxNDU2NzU3ZTA4YzQxZjEyNAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVlLmgKQEAgLTAsMCArMSw1
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaWZuZGVmIEZvbnRGZWF0dXJlVmFsdWVfaAorI2RlZmluZSBGb250RmVhdHVyZVZh
bHVlX2gKKworI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGb250RmVhdHVyZVZh
bHVlIDogcHVibGljIENTU1ZhbHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxG
b250RmVhdHVyZVZhbHVlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB0YWcpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEZvbnRGZWF0dXJlVmFsdWUodGFnKSk7CisgICAgfQorCisg
ICAgY29uc3QgU3RyaW5nJiB0YWcoKSBjb25zdCB7IHJldHVybiBtX3RhZzsgfQorICAgIGludCB2
YWx1ZSgpIGNvbnN0OworICAgIHZvaWQgc2V0VmFsdWUoUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVW
YWx1ZT4gdmFsdWUpIHsgbV92YWx1ZSA9IHZhbHVlOyB9CisgICAgdmlydHVhbCBTdHJpbmcgY3Nz
VGV4dCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIEZvbnRGZWF0dXJlVmFsdWUoY29uc3QgU3Ry
aW5nJiB0YWcpOworICAgIHZpcnR1YWwgYm9vbCBpc0ZvbnRGZWF0dXJlVmFsdWUoKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CisKKyAgICBTdHJpbmcgbV90YWc7CisgICAgUmVmUHRyPENTU1ByaW1p
dGl2ZVZhbHVlPiBtX3ZhbHVlOworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNw
cAppbmRleCA1OGRkZjgxOTJhNDIyZGExZWI5NTE5ZWY1N2Q5NmNmNzM2ZWFiZjIwLi40NmQxMDhm
ZTFhNmE3NjRjNjMyYjQwNDYwMGIxMWFmODdkZTY2OGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAKQEAgLTk4LDQgKzk4
LDExIEBAIEZvbnRUcmFpdHNNYXNrIEZvbnREZXNjcmlwdGlvbjo6dHJhaXRzTWFzaygpIGNvbnN0
CiAgICAgCiB9CiAKK0ZvbnREZXNjcmlwdGlvbiBGb250RGVzY3JpcHRpb246Om1ha2VOb3JtYWxG
ZWF0dXJlU2V0dGluZ3MoKSBjb25zdAoreworICAgIEZvbnREZXNjcmlwdGlvbiBub3JtYWxEZXNj
cmlwdGlvbigqdGhpcyk7CisgICAgbm9ybWFsRGVzY3JpcHRpb24uc2V0RmVhdHVyZVNldHRpbmdz
KDApOworICAgIHJldHVybiBub3JtYWxEZXNjcmlwdGlvbjsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dERlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVz
Y3JpcHRpb24uaAppbmRleCA5MDhlYmEyMGM5NDI3MTQ5ZWNlMGVkMjhlMWQ2NTA3ZDExMDM0YWIw
Li5hMTRmMDI2YTc1N2JlZjdiZTk0YjExZDRkMmQyNDczNDI3NzUxZGE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaApAQCAtMjYs
NiArMjYsNyBAQAogI2RlZmluZSBGb250RGVzY3JpcHRpb25faAogCiAjaW5jbHVkZSAiRm9udEZh
bWlseS5oIgorI2luY2x1ZGUgIkZvbnRGZWF0dXJlU2V0dGluZ3MuaCIKICNpbmNsdWRlICJGb250
T3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUg
IkZvbnRTbW9vdGhpbmdNb2RlLmgiCkBAIC0zNSw2ICszNiw4IEBACiAjaW5jbHVkZSAiVGV4dFJl
bmRlcmluZ01vZGUuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gRm9udFdlaWdodCB7
CkBAIC0xMTQsNiArMTE3LDggQEAgcHVibGljOgogICAgIEZvbnRPcmllbnRhdGlvbiBvcmllbnRh
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZW50YXRpb247IH0KICAgICBUZXh0T3JpZW50YXRp
b24gdGV4dE9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0T3JpZW50YXRpb247IH0K
ICAgICBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lk
dGhWYXJpYW50OyB9CisgICAgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZVNldHRpbmdzKCkg
Y29uc3QgeyByZXR1cm4gbV9mZWF0dXJlU2V0dGluZ3MuZ2V0KCk7IH0KKyAgICBGb250RGVzY3Jp
cHRpb24gbWFrZU5vcm1hbEZlYXR1cmVTZXR0aW5ncygpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRG
YW1pbHkoY29uc3QgRm9udEZhbWlseSYgZmFtaWx5KSB7IG1fZmFtaWx5TGlzdCA9IGZhbWlseTsg
fQogICAgIHZvaWQgc2V0Q29tcHV0ZWRTaXplKGZsb2F0IHMpIHsgQVNTRVJUKGlzZmluaXRlKHMp
KTsgbV9jb21wdXRlZFNpemUgPSBzOyB9CkBAIC0xMzgsNiArMTQzLDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0T3JpZW50YXRpb24oRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKSB7IG1fb3Jp
ZW50YXRpb24gPSBvcmllbnRhdGlvbjsgfQogICAgIHZvaWQgc2V0VGV4dE9yaWVudGF0aW9uKFRl
eHRPcmllbnRhdGlvbiB0ZXh0T3JpZW50YXRpb24pIHsgbV90ZXh0T3JpZW50YXRpb24gPSB0ZXh0
T3JpZW50YXRpb247IH0KICAgICB2b2lkIHNldFdpZHRoVmFyaWFudChGb250V2lkdGhWYXJpYW50
IHdpZHRoVmFyaWFudCkgeyBtX3dpZHRoVmFyaWFudCA9IHdpZHRoVmFyaWFudDsgfQorICAgIHZv
aWQgc2V0RmVhdHVyZVNldHRpbmdzKFBhc3NSZWZQdHI8Rm9udEZlYXR1cmVTZXR0aW5ncz4gc2V0
dGluZ3MpIHsgbV9mZWF0dXJlU2V0dGluZ3MgPSBzZXR0aW5nczsgfQogCiBwcml2YXRlOgogICAg
IEZvbnRGYW1pbHkgbV9mYW1pbHlMaXN0OyAvLyBUaGUgbGlzdCBvZiBmb250IGZhbWlsaWVzIHRv
IGJlIHVzZWQuCkBAIC0xNTEsNiArMTU3LDggQEAgcHJpdmF0ZToKIAogICAgIEZvbnRXaWR0aFZh
cmlhbnQgbV93aWR0aFZhcmlhbnQ7CiAKKyAgICBSZWZQdHI8Rm9udEZlYXR1cmVTZXR0aW5ncz4g
bV9mZWF0dXJlU2V0dGluZ3M7CisKICAgICB1bnNpZ25lZCBtX2l0YWxpYyA6IDE7IC8vIEZvbnRJ
dGFsaWMKICAgICB1bnNpZ25lZCBtX3NtYWxsQ2FwcyA6IDE7IC8vIEZvbnRTbWFsbENhcHMKICAg
ICBib29sIG1faXNBYnNvbHV0ZVNpemUgOiAxOyAgIC8vIFdoZXRoZXIgb3Igbm90IENTUyBzcGVj
aWZpZWQgYW4gZXhwbGljaXQgc2l6ZQpAQCAtMTg4LDcgKzE5Niw4IEBAIGlubGluZSBib29sIEZv
bnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9PShjb25zdCBGb250RGVzY3JpcHRpb24mIG90aGVyKSBj
b25zdAogICAgICAgICAmJiBtX2lzU3BlY2lmaWVkRm9udCA9PSBvdGhlci5tX2lzU3BlY2lmaWVk
Rm9udAogICAgICAgICAmJiBtX29yaWVudGF0aW9uID09IG90aGVyLm1fb3JpZW50YXRpb24KICAg
ICAgICAgJiYgbV90ZXh0T3JpZW50YXRpb24gPT0gb3RoZXIubV90ZXh0T3JpZW50YXRpb24KLSAg
ICAgICAgJiYgbV93aWR0aFZhcmlhbnQgPT0gb3RoZXIubV93aWR0aFZhcmlhbnQ7CisgICAgICAg
ICYmIG1fd2lkdGhWYXJpYW50ID09IG90aGVyLm1fd2lkdGhWYXJpYW50CisgICAgICAgICYmIG1f
ZmVhdHVyZVNldHRpbmdzID09IG90aGVyLm1fZmVhdHVyZVNldHRpbmdzOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRp
bmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0
dGluZ3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3MTMzMjJmNGM4MmViZjNjYzc1ZTgxMGNlZDM4ZGNmOTE1
MzA5M2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250RmVhdHVyZVNldHRpbmdzLmNwcApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZvbnRGZWF0dXJlU2V0dGluZ3MuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitGb250RmVhdHVyZTo6Rm9udEZlYXR1cmUoY29uc3QgQXRvbWlj
U3RyaW5nJiB0YWcsIGludCB2YWx1ZSkKKyAgICA6IG1fdGFnKHRhZykKKyAgICAsIG1fdmFsdWUo
dmFsdWUpCit7Cit9CisKK2Jvb2wgRm9udEZlYXR1cmU6Om9wZXJhdG9yPT0oY29uc3QgRm9udEZl
YXR1cmUmIG90aGVyKQoreworICAgIHJldHVybiBtX3RhZyA9PSBvdGhlci5tX3RhZyAmJiBtX3Zh
bHVlID09IG90aGVyLm1fdmFsdWU7Cit9CisKK0ZvbnRGZWF0dXJlU2V0dGluZ3M6OkZvbnRGZWF0
dXJlU2V0dGluZ3MoKQoreworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTRkMDExMWY0
YWRkOTM0YWRlZDMxM2MxMTFhMDQxMTM3MjgwOGIyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuaApAQCAtMCww
ICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGb250RmVhdHVyZVNldHRpbmdzX2gKKyNkZWZp
bmUgRm9udEZlYXR1cmVTZXR0aW5nc19oCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGb250RmVhdHVyZSB7CitwdWJsaWM6Cisg
ICAgRm9udEZlYXR1cmUoY29uc3QgQXRvbWljU3RyaW5nJiB0YWcsIGludCB2YWx1ZSk7CisgICAg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IEZvbnRGZWF0dXJlJik7CisKKyAgICBjb25zdCBBdG9taWNT
dHJpbmcmIHRhZygpIGNvbnN0IHsgcmV0dXJuIG1fdGFnOyB9CisgICAgaW50IHZhbHVlKCkgY29u
c3QgeyByZXR1cm4gbV92YWx1ZTsgfQorcHJpdmF0ZToKKyAgICBBdG9taWNTdHJpbmcgbV90YWc7
CisgICAgaW50IG1fdmFsdWU7Cit9OworCitjbGFzcyBGb250RmVhdHVyZVNldHRpbmdzIDogcHVi
bGljIFJlZkNvdW50ZWQ8Rm9udEZlYXR1cmVTZXR0aW5ncz4geworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEZvbnRGZWF0dXJlU2V0dGluZ3M+IGNyZWF0ZSgpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEZvbnRGZWF0dXJlU2V0dGluZ3MoKSk7CisgICAgfQorICAg
IHZvaWQgYXBwZW5kKGNvbnN0IEZvbnRGZWF0dXJlJiBmZWF0dXJlKSB7IG1fbGlzdC5hcHBlbmQo
ZmVhdHVyZSk7IH0KKyAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5zaXpl
KCk7IH0KKyAgICBjb25zdCBGb250RmVhdHVyZSYgb3BlcmF0b3JbXShpbnQgaW5kZXgpIGNvbnN0
IHsgcmV0dXJuIG1fbGlzdFtpbmRleF07IH0KKyAgICBjb25zdCBGb250RmVhdHVyZSYgYXQoc2l6
ZV90IGluZGV4KSBjb25zdCB7IHJldHVybiBtX2xpc3QuYXQoaW5kZXgpOyB9Citwcml2YXRlOgor
ICAgIEZvbnRGZWF0dXJlU2V0dGluZ3MoKTsKKyAgICBWZWN0b3I8Rm9udEZlYXR1cmU+IG1fbGlz
dDsKK307CisKK30KKworI2VuZGlmIC8vIEZvbnRGZWF0dXJlU2V0dGluZ3NfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102606</attachid>
            <date>2011-08-01 18:14:28 -0700</date>
            <delta_ts>2011-08-01 22:55:16 -0700</delta_ts>
            <desc>Patch V3(Rebased)</desc>
            <filename>bug-63618-20110802101427.patch</filename>
            <type>text/plain</type>
            <size>40495</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIxNTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkODc3YzQ4NzM5MjQ3OTk4YjAxMGI0
M2UyOTJlN2Y0NDQ1M2FlYmFkLi45MTQxYjUzNWI5OWQ1ZTBkNDc0ZjYwYjg0ZDgwNDY1MWUxOTQ2
ZTdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgtMDEgIEtlbmljaGkgSXNoaWJhc2hp
ICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFBhcnNpbmcgQ1NTMyBmb250LWZlYXR1
cmUtc2V0dGluZ3MgcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYzNjE4CisKKyAgICAgICAgQWRkIHBhcnNpbmcgdGVzdCBjYXNlIGZvciAt
d2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyBwcm9wZXJ0eS4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzczMvZm9udC1mZWF0dXJlLXNldHRp
bmdzLXBhcnNpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZvbnQtZmVh
dHVyZS1zZXR0aW5ncy1wYXJzaW5nLmh0bWw6IEFkZGVkLgorCiAyMDExLTA4LTAxICBDaHJpcyBS
b2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CiAKICAgICAgICAgT25lIG1vcmUgdGVzdF9leHBl
Y3RhdGlvbnMudHh0IGZpeCBmb3Igd2luZG93cyB3ZWIgYXVkaW8KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcGFyc2luZy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDM0M2E3Mzk4NjcxMzgxYzRhOTMzY2IzMzY0NDcyOTczZDI4ZGNkMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdz
LXBhcnNpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzIgQEAKK1Rlc3QgcGFyc2luZyBvZiB0
aGUgQ1NTMyBmb250LWZlYXR1cmUtc2V0dGluZ3MgcHJvcGVydHkuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCistIFRlc3RzIHZhbGlkIGlucHV0cworUEFTUyBwYXJzZVJlc3VsdE9m
KCJub3JtYWwiKSBpcyAibm9ybWFsIgorUEFTUyBwYXJzZVJlc3VsdE9mKCInYWFhYSciKSBpcyAi
J2FhYWEnIgorUEFTUyBwYXJzZVJlc3VsdE9mKCInYWFhYScgMSIpIGlzICInYWFhYScgMSIKK1BB
U1MgcGFyc2VSZXN1bHRPZigiXCJhYWFhXCIgMCIpIGlzICInYWFhYScgMCIKK1BBU1MgcGFyc2VS
ZXN1bHRPZigiJ2FhYWEnIG9uIikgaXMgIidhYWFhJyBvbiIKK1BBU1MgcGFyc2VSZXN1bHRPZigi
XCJhYWFhXCIgb2ZmIikgaXMgIidhYWFhJyBvZmYiCitQQVNTIHBhcnNlUmVzdWx0T2YoImFhYWEs
ICdiYmJiJywgY2NjYyIpIGlzICInYWFhYScsICdiYmJiJywgJ2NjY2MnIgorUEFTUyBwYXJzZVJl
c3VsdE9mKCInYWFhYScgb24sIGJiYmIgMSwgY2NjYyBvZmYiKSBpcyAiJ2FhYWEnIG9uLCAnYmJi
YicgMSwgJ2NjY2MnIG9mZiIKK1BBU1MgcGFyc2VSZXN1bHRPZigiYWFhYSwgYmJiYiAwLCBcImNj
Y2NcIiIpIGlzICInYWFhYScsICdiYmJiJyAwLCAnY2NjYyciCistIFRlc3RzIGludmFsaWQgaW5w
dXRzLiAgUmVzdWx0cyBzaG91bGQgYmUgZW1wdHkgc3RyaW5ncy4KK1BBU1MgcGFyc2VSZXN1bHRP
ZigiMSIpIGlzICIiCitQQVNTIHBhcnNlUmVzdWx0T2YoIm9mZiIpIGlzICIiCitQQVNTIHBhcnNl
UmVzdWx0T2YoImFhYWFhIikgaXMgIiIKK1BBU1MgcGFyc2VSZXN1bHRPZigiXCJhYWFhYVwiIikg
aXMgIiIKK1BBU1MgcGFyc2VSZXN1bHRPZigiYWFhYSAtMSIpIGlzICIiCitQQVNTIHBhcnNlUmVz
dWx0T2YoImFhYWEgXCJiYmJiXCIiKSBpcyAiIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJhYWFhIGJi
YmIiKSBpcyAiIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJhYWFhLCBvbiIpIGlzICIiCitQQVNTIHBh
cnNlUmVzdWx0T2YoIlwiYWFhYVwiIDEsIFwiYmJiYlwiLCAwIikgaXMgIiIKK1BBU1MgcGFyc2VS
ZXN1bHRPZigiLCIpIGlzICIiCitQQVNTIHBhcnNlUmVzdWx0T2YoImFhYWEsIikgaXMgIiIKK1BB
U1MgcGFyc2VSZXN1bHRPZigiLCBhYWFhIikgaXMgIiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1wYXJzaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2Zv
bnQtZmVhdHVyZS1zZXR0aW5ncy1wYXJzaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU5MjY3OWU1MjNk
NTcxNzFhMTc3NmNhNjYwMGQyYzg0NmM1MzkxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmcuaHRtbApAQCAtMCwwICsxLDU5
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCdUZXN0IHBhcnNpbmcgb2YgdGhlIENTUzMgZm9udC1mZWF0dXJlLXNldHRpbmdzIHBy
b3BlcnR5LicpOworCitmdW5jdGlvbiBwYXJzZVJlc3VsdE9mKHZhbHVlKSB7CisgICAgdmFyIGVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBlbGVtZW50LnN0eWxl
Wyctd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyddID0gdmFsdWU7CisgICAgcmV0dXJuIGVs
ZW1lbnQuc3R5bGVbJy13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzJ107Cit9CisKK3ZhciB2
YWxpZElucHV0c0FuZEV4cGVjdGVkUmVzdWx0cyA9IFsKKyAgICAvLyBJbnB1dCwgRXhwZWN0ZWQK
KyAgICBbJ25vcm1hbCcsICJub3JtYWwiXSwKKyAgICBbIidhYWFhJyIsICInYWFhYSciXSwKKyAg
ICBbIidhYWFhJyAxIiwgIidhYWFhJyAxIl0sCisgICAgWydcXCJhYWFhXFwiIDAnLCAiJ2FhYWEn
IDAiXSwKKyAgICBbIidhYWFhJyBvbiIsICInYWFhYScgb24iXSwKKyAgICBbJ1xcImFhYWFcXCIg
b2ZmJywgIidhYWFhJyBvZmYiXSwKKyAgICBbImFhYWEsICdiYmJiJywgY2NjYyIsICInYWFhYScs
ICdiYmJiJywgJ2NjY2MnIl0sCisgICAgWyInYWFhYScgb24sIGJiYmIgMSwgY2NjYyBvZmYiLCAi
J2FhYWEnIG9uLCAnYmJiYicgMSwgJ2NjY2MnIG9mZiJdLAorICAgIFsnYWFhYSwgYmJiYiAwLCBc
XCJjY2NjXFwiJywgIidhYWFhJywgJ2JiYmInIDAsICdjY2NjJyJdLAorXTsKKworZGVidWcoJy0g
VGVzdHMgdmFsaWQgaW5wdXRzJyk7Citmb3IgKHZhciBpID0gMDsgaSA8IHZhbGlkSW5wdXRzQW5k
RXhwZWN0ZWRSZXN1bHRzLmxlbmd0aDsgKytpKQorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
cGFyc2VSZXN1bHRPZigiJyArIHZhbGlkSW5wdXRzQW5kRXhwZWN0ZWRSZXN1bHRzW2ldWzBdICsg
JyIpJywgdmFsaWRJbnB1dHNBbmRFeHBlY3RlZFJlc3VsdHNbaV1bMV0pOworCit2YXIgaW52YWxp
ZElucHV0cyA9IFsKKyAgICAnMScsCisgICAgJ29mZicsCisgICAgJ2FhYWFhJywKKyAgICAnXFwi
YWFhYWFcXCInLAorICAgICdhYWFhIC0xJywKKyAgICAnYWFhYSBcXCJiYmJiXFwiJywKKyAgICAn
YWFhYSBiYmJiJywKKyAgICAnYWFhYSwgb24nLAorICAgICdcXCJhYWFhXFwiIDEsIFxcImJiYmJc
XCIsIDAnLAorICAgICcsJywKKyAgICAnYWFhYSwnLAorICAgICcsIGFhYWEnLAorXTsKKworZGVi
dWcoJy0gVGVzdHMgaW52YWxpZCBpbnB1dHMuICBSZXN1bHRzIHNob3VsZCBiZSBlbXB0eSBzdHJp
bmdzLicpOworZm9yICh2YXIgaSA9IDA7IGkgPCBpbnZhbGlkSW5wdXRzLmxlbmd0aDsgKytpKQor
ICAgIHNob3VsZEJlKCdwYXJzZVJlc3VsdE9mKCInICsgaW52YWxpZElucHV0c1tpXSArICciKScs
ICciIicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDUzYmVkYjRiOTQ2ODk3
NGQ1NTA1MzJmZWY5ZDcxYTE0MzllYjM4MjYuLjM5NmEyMTYyNGUyMTA0NmZjMjRiMWU1NmJlZGY3
ODllYWIzMTc0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00NjUsNiArNDY1LDcgQEAgU0VU
KFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9DU1NVbmljb2RlUmFuZ2VWYWx1ZS5jcHAKICAgICBj
c3MvQ1NTVmFsdWVMaXN0LmNwcAogICAgIGNzcy9Gb250RmFtaWx5VmFsdWUuY3BwCisgICAgY3Nz
L0ZvbnRGZWF0dXJlVmFsdWUuY3BwCiAgICAgY3NzL0ZvbnRWYWx1ZS5jcHAKICAgICBjc3MvTWVk
aWFGZWF0dXJlTmFtZXMuY3BwCiAgICAgY3NzL01lZGlhTGlzdC5jcHAKQEAgLTEwNjAsNiArMTA2
MSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFs
bGJhY2tMaXN0LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYW1pbHkuY3BwCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVk
SW1hZ2UuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdiNDJiM2Rl
YjhkODA2MWM3ZTU2ZGYyODY1MzExZWNlZTllZjI3Ny4uMGE1MjI2MTFmNjI5ZWE5ZmY1ZWYyMjk5
MjIxZmZlZTE3MmI3NzAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDExLTA4LTAx
ICBLZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KKworICAgICAgICBQYXJz
aW5nIENTUzMgZm9udC1mZWF0dXJlLXNldHRpbmdzIHByb3BlcnR5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzYxOAorCisgICAgICAgIEludHJvZHVj
ZXMgQ1NTMyBmb250LWZlYXR1cmUtc2V0dGluZ3MgcHJvcGVydHkgYXMgLXdlYmtpdC1mb250LWZl
YXR1cmUtc2V0dGluZ3MuICBUaGlzIGNoYW5nZSBvbmx5IGNvbnRhaW5zIHBhcnNpbmcgYW5kIHBh
cnQuICBQYXJzZWQgaW5mb3JtYXRpb24gYXJlIHN0b3JlZCBpbiBGb250RGVzY3JpcHRpb24gY2xh
c3MuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dDogY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcGFyc2luZy5odG1sCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDogQWRkZWQgRm9udEZlYXR1cmVWYWx1ZS57aCxjcHB9IGFuZCBGb250RmVh
dHVyZVNldHRpbmdzLntoLGNwcH0uCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogRGl0
dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnBy
bzogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IERpdHRv
LgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogRGl0dG8uCisg
ICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUp
OiBBZGRlZCBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRGZWF0dXJlU2V0dGluZ3MgYXMgYSBzaG9ydGhh
bmQgcHJvcGVydHkuCisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOiBBZGRlZCBwYXJzaW5nIGNvZGUgZm9yIC13ZWJr
aXQtZm9udC1mZWF0dXJlLXNldHRpbmdzLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpw
YXJzZUZvbnRGZWF0dXJlVGFnKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6
OnBhcnNlRm9udEZlYXR1cmVTZXR0aW5ncyk6IEFkZGVkLgorICAgICAgICAqIGNzcy9DU1NQYXJz
ZXIuaDogQWRkZWQgcGFyc2VGb250RmVhdHVyZVNldHRpbmdzKCkuCisgICAgICAgICogY3NzL0NT
U1Byb3BlcnR5TmFtZXMuaW46IEFkZGVkIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzLgor
ICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1N0eWxlU2VsZWN0b3I6OmFwcGx5RGVjbGFyYXRpb25zKTogTW9kaWZpZWQgYSBjb21waWxlIGFz
c2VydCB0byBmb2xsb3cgYWRkaW5nIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzLgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6IEFkZGVkIGEg
Y2FzZSBjbGF1c2UgZm9yIENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1cmVTZXR0aW5ncy4KKyAg
ICAgICAgKiBjc3MvQ1NTVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc0Zv
bnRGZWF0dXJlVmFsdWUpOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
bjogQWRkZWQgJ29uJyBhbmQgJ29mZicga2V5d29yZHMuCisgICAgICAgICogY3NzL0ZvbnRGZWF0
dXJlVmFsdWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlVmFsdWU6
OkZvbnRGZWF0dXJlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVWYWx1ZTo6
dmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVWYWx1ZTo6Y3NzVGV4dCk6Cisg
ICAgICAgICogY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpGb250RmVhdHVyZVZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1
cmVWYWx1ZTo6dGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlVmFsdWU6OnNldFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlVmFsdWU6OmlzRm9udEZlYXR1cmVW
YWx1ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6bWFrZU5vcm1hbEZlYXR1cmVTZXR0
aW5ncyk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpGb250RGVzY3JpcHRpb24p
OiBBZGRlZCBtX2ZlYXR1cmVTZXR0aW5ncyBtZW1iZXIgdmFyaWFibGUuCisgICAgICAgIChXZWJD
b3JlOjpGb250RGVzY3JpcHRpb246OmZlYXR1cmVTZXR0aW5ncyk6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpzZXRGZWF0dXJlU2V0dGluZ3MpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9PSk6IE1vZGlmaWVkIHRv
IHRha2UgaW50byBhY2NvdW50IG1fZmVhdHVyZVNldHRpbmdzCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udEZlYXR1cmU6OkZvbnRGZWF0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0
dXJlOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmU6Om9wZXJhdG9y
PT0pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVTZXR0aW5nczo6Rm9udEZlYXR1cmVT
ZXR0aW5ncyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5n
cy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlOjp0YWcpOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9udEZlYXR1cmU6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRG
ZWF0dXJlU2V0dGluZ3M6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVyZVNl
dHRpbmdzOjphcHBlbmQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVTZXR0aW5nczo6
c2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVyZVNldHRpbmdzOjpvcGVyYXRvcltd
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlU2V0dGluZ3M6OmF0KToKKwogMjAxMS0w
OC0wMSAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHI5MjAyMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGIz
ODhhMzY5OWRiNjZhNmNmNGRkZjk5MGE5YjMzYmQ2NTQ0YzZmZTIuLjRhYTc0NjI4MjUzNzk3MWY4
MjI3MjJmNjFmMmFmZjJhMTAzMTUzZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtMTAxMSw2ICsxMDExLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9jc3MvRGFzaGJvYXJkUmVnaW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFtaWx5
VmFsdWUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhbWlseVZhbHVlLmggXAorCVNv
dXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVlLmNwcCBcCisJU291cmNlL1dlYkNvcmUv
Y3NzL0ZvbnRGZWF0dXJlVmFsdWUuaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRWYWx1ZS5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250VmFsdWUuaCBcCiAJU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhRmVhdHVyZU5hbWVzLmNwcCBcCkBAIC0yNDkyLDYgKzI0OTQsOCBAQCB3ZWJjb3Jl
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYW1p
bHkuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdz
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udE1ldHJpY3MuaCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udE9yaWVudGF0aW9uLmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDU0YzlhMzRkM2I1YjJhYzExNTM3MDBkYzgyNTE0MGU2YWY3MjliMDIuLjg4NzBmNzdmYjA3
NjJhZTk5YjA4NjBhMTg0NDRlZTExYTIyNmZiYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTczNyw2
ICs3MzcsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlv
bi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFsbGJhY2tMaXN0Lmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYW1pbHkuaCcsCisgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250TWV0cmljcy5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9Gb250T3JpZW50YXRpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFJlbmRlcmluZ01vZGUuaCcsCkBAIC0yMzgyLDYgKzIzODMsOCBAQAogICAg
ICAgICAgICAgJ2Nzcy9EYXNoYm9hcmRSZWdpb24uaCcsCiAgICAgICAgICAgICAnY3NzL0ZvbnRG
YW1pbHlWYWx1ZS5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9Gb250RmFtaWx5VmFsdWUuaCcsCisg
ICAgICAgICAgICAnY3NzL0ZvbnRGZWF0dXJlVmFsdWUuY3BwJywKKyAgICAgICAgICAgICdjc3Mv
Rm9udEZlYXR1cmVWYWx1ZS5oJywKICAgICAgICAgICAgICdjc3MvRm9udFZhbHVlLmNwcCcsCiAg
ICAgICAgICAgICAnY3NzL0ZvbnRWYWx1ZS5oJywKICAgICAgICAgICAgICdjc3MvTWVkaWFGZWF0
dXJlTmFtZXMuY3BwJywKQEAgLTMzMzcsNiArMzM0MCw3IEBACiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvRm9udEZhbGxiYWNrTGlzdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRGYW1pbHkuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9G
b250RmVhdHVyZVNldHRpbmdzLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udEZhc3RQYXRoLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBs
YXRmb3JtRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0
Zm9ybURhdGEuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDdhM2JlZjE2ZjU3NmQ2M2JiNDI0NTg3MDVi
ZjM2MWI4NmM0YzdhMWYuLmEwMzRlZGYxMDVlZTg5ZTJmY2Y5YmUzY2IxZTIzM2IyYzAwYWFmZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCkBAIC00MjgsNiArNDI4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgY3Nz
L0NTU1VuaWNvZGVSYW5nZVZhbHVlLmNwcCBcCiAgICAgY3NzL0NTU1ZhbHVlTGlzdC5jcHAgXAog
ICAgIGNzcy9Gb250RmFtaWx5VmFsdWUuY3BwIFwKKyAgICBjc3MvRm9udEZlYXR1cmVWYWx1ZS5j
cHAgXAogICAgIGNzcy9Gb250VmFsdWUuY3BwIFwKICAgICBjc3MvTWVkaWFGZWF0dXJlTmFtZXMu
Y3BwIFwKICAgICBjc3MvTWVkaWFMaXN0LmNwcCBcCkBAIC05NzcsNiArOTc4LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcCBcCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbGxiYWNrTGlzdC5jcHAgXAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRGYW1pbHkuY3BwIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVy
ZVNldHRpbmdzLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIFwK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0Zsb2F0UG9pbnQzRC5jcHAgXApAQCAtMTQyMyw2ICsxNDI1LDcgQEAgSEVBREVSUyArPSBcCiAg
ICAgY3NzL0NTU1VuaWNvZGVSYW5nZVZhbHVlLmggXAogICAgIGNzcy9DU1NWYWx1ZUxpc3QuaCBc
CiAgICAgY3NzL0ZvbnRGYW1pbHlWYWx1ZS5oIFwKKyAgICBjc3MvRm9udEZlYXR1cmVWYWx1ZS5o
IFwKICAgICBjc3MvRm9udFZhbHVlLmggXAogICAgIGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5oIFwK
ICAgICBjc3MvTWVkaWFMaXN0LmggXApAQCAtMTk3Nyw2ICsxOTgwLDcgQEAgSEVBREVSUyArPSBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERhdGEuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udERlc2NyaXB0aW9uLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYW1pbHku
aCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5oIFwKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250TWV0cmljcy5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9G
b250LmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmggXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA5MWYyZmE1MmUz
MTgxZTdmMTRhMWZjMzllYWUzMjcyNDEwYTNlZmU0Li43NjljNTZjZjA0YmE4YmU0N2IxN2FkOTBj
M2Y4ZmYwY2RhNWQwMzMwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagpAQCAtMjc1ODUsNiArMjc1ODUsMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4K
IAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZvbnRG
ZWF0dXJlU2V0dGluZ3MuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRm9udEZlYXR1cmVTZXR0aW5ncy5o
IgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cGxhdGZvcm1cZ3JhcGhpY3NcRm9udEZhc3RQYXRoLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4K
QEAgLTMyOTUwLDYgKzMyOTU4LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xGb250RmVhdHVyZVZhbHVlLmNwcCIKKwkJCQk+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXEZvbnRGZWF0dXJlVmFs
dWUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
Y3NzXEZvbnRWYWx1ZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY4MjE5NTk0NWExYjhm
ZjExYTkxMTEyMzZiZGMxZmUzZmMxZTBmMmIuLmQxYTUxOTQ5N2ViMjA3ZTk0NjgzYzZhZTU0OTUz
MmY2ZTJhOGE5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTEyNjksNiArMTI2OSwxMCBAQAogCQk0OUZGQkY0MDExQzkzRUUz
MDA2QTcxMTggLyogV2ViR0xMYXllci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ5RkZCRjNFMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLm1t
ICovOyB9OwogCQk0QTBEQTJGRTEyOUIyNDE5MDBBQjYxRTEgLyogRm9ybUFzc29jaWF0ZWRFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRB
MERBMkZDMTI5QjI0MTkwMEFCNjFFMSAvKiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwICovOyB9
OwogCQk0QTBEQTJGRjEyOUIyNDE5MDBBQjYxRTEgLyogRm9ybUFzc29jaWF0ZWRFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTBEQTJGRDEy
OUIyNDE5MDBBQjYxRTEgLyogRm9ybUFzc29jaWF0ZWRFbGVtZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNEE2RTlGQzMxM0MxN0QxRDAwNDZB
N0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEE2RTlGQzExM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJl
VmFsdWUuY3BwICovOyB9OworCQk0QTZFOUZDNDEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1
cmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NEE2RTlGQzIxM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0QTZFOUZDNzEzQzE3RDU3
MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTZFOUZDNTEzQzE3RDU3MDA0NkE3RjggLyogRm9u
dEZlYXR1cmVTZXR0aW5ncy5jcHAgKi87IH07CisJCTRBNkU5RkM4MTNDMTdENTcwMDQ2QTdGOCAv
KiBGb250RmVhdHVyZVNldHRpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0QTZFOUZDNjEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0
aW5ncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTRBOEM5NkVCMEJFNjkwMzIwMDRFRUZGMCAvKiBGcmFtZVNlbGVjdGlvbk1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBOEM5NkVBMEJFNjkwMzIw
MDRFRUZGMCAvKiBGcmFtZVNlbGVjdGlvbk1hYy5tbSAqLzsgfTsKIAkJNEFDQkMwQkUxMjcxM0NC
RDAwOTRGOUIyIC8qIENsYXNzTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0QUNCQzBCQzEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmNw
cCAqLzsgfTsKIAkJNEFDQkMwQkYxMjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlzdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEFDQkMwQkQxMjcxM0NC
RDAwOTRGOUIyIC8qIENsYXNzTGlzdC5oICovOyB9OwpAQCAtNzg0Niw2ICs3ODUwLDEwIEBACiAJ
CTQ5RkZCRjNFMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViR0xMYXllci5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNEEwREEyRkMxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1Bc3NvY2lhdGVk
RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtQXNz
b2NpYXRlZEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QTBEQTJG
RDEyOUIyNDE5MDBBQjYxRTEgLyogRm9ybUFzc29jaWF0ZWRFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1Bc3NvY2lhdGVkRWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0QTZFOUZDMTEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1
cmVWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb250RmVh
dHVyZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE2RTlGQzIxM0Mx
N0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRm9udEZlYXR1cmVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0QTZFOUZDNTEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb250RmVhdHVyZVNldHRpbmdz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE2RTlGQzYxM0MxN0Q1NzAwNDZB
N0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGZpbGVFbmNvZGluZyA9IDQ7IHBh
dGggPSBGb250RmVhdHVyZVNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTRBOEM5NkVBMEJFNjkwMzIwMDRFRUZGMCAvKiBGcmFtZVNlbGVjdGlvbk1hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBGcmFtZVNlbGVjdGlvbk1hYy5tbTsg
cGF0aCA9IG1hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNEFDQkMwQkMxMjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlzdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbGFzc0xpc3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0QUNCQzBCRDEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsYXNzTGlzdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTgxNDIsNiArMTgxNTAsOCBAQAogCQkJCUIyQzNEQTU4MEQw
MDZDRDYwMEVGNkYyNiAvKiBGb250RmFtaWx5LmNwcCAqLywKIAkJCQlCMkMzREE1OTBEMDA2Q0Q2
MDBFRjZGMjYgLyogRm9udEZhbWlseS5oICovLAogCQkJCTcyNjI2RTAxMEVGMDIyRkUwMEEwN0Uy
MCAvKiBGb250RmFzdFBhdGguY3BwICovLAorCQkJCTRBNkU5RkM1MTNDMTdENTcwMDQ2QTdGOCAv
KiBGb250RmVhdHVyZVNldHRpbmdzLmNwcCAqLywKKwkJCQk0QTZFOUZDNjEzQzE3RDU3MDA0NkE3
RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5oICovLAogCQkJCTA4NDU2ODA3MTJCOTBEQTYwMDk2
MEE5RiAvKiBGb250TWV0cmljcy5oICovLAogCQkJCUY3QTAzNEMzMTI2QkY2QkUwMDdEQzE5RSAv
KiBGb250T3JpZW50YXRpb24uaCAqLywKIAkJCQk4NEI2MjY4NDEzMzEzOEY5MDA5NUE0ODkgLyog
Rm9udFBsYXRmb3JtRGF0YS5jcHAgKi8sCkBAIC0xOTM1NCw2ICsxOTM2NCw4IEBACiAJCQkJQTgw
RTZDQzkwQTE5ODlDQTAwN0ZCOEM1IC8qIEZvbnRGYW1pbHlWYWx1ZS5oICovLAogCQkJCUE4MEU2
Q0M3MEExOTg5Q0EwMDdGQjhDNSAvKiBGb250VmFsdWUuY3BwICovLAogCQkJCUE4MEU2Q0MzMEEx
OTg5Q0EwMDdGQjhDNSAvKiBGb250VmFsdWUuaCAqLywKKwkJCQk0QTZFOUZDMTEzQzE3RDFEMDA0
NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5jcHAgKi8sCisJCQkJNEE2RTlGQzIxM0MxN0QxRDAw
NDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuaCAqLywKIAkJCQlDRDRFMEFGQTExRjdCQzI3MDA5
RDM4MTEgLyogZnVsbHNjcmVlbi5jc3MgKi8sCiAJCQkJQ0RCRDkzQkExMzMzQkQ0QjAwMjU3MEUz
IC8qIGZ1bGxzY3JlZW5RdWlja1RpbWUuY3NzICovLAogCQkJCTkzQ0E0Qzk5MDlERjkzRkEwMERG
ODY3NyAvKiBodG1sLmNzcyAqLywKQEAgLTIxMzcxLDYgKzIxMzgzLDggQEAKIAkJCQlCMkMzREE2
ODBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udEZhbGxiYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjJDM0RBNkEwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRGYW1pbHkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4MEU2Q0YzMEExOTg5Q0EwMDdGQjhDNSAvKiBGb250RmFtaWx5VmFsdWUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTRBNkU5RkM0MTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZh
bHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTZFOUZDODEzQzE3RDU3MDA0NkE3RjggLyogRm9u
dEZlYXR1cmVTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg0NTY4MDgxMkI5MERBNjAw
OTYwQTlGIC8qIEZvbnRNZXRyaWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGN0EwMzRDNDEyNkJG
NkJFMDA3REMxOUUgLyogRm9udE9yaWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTMy
MEQ2QjEyMkEyNEU5MDAyRDE0NDAgLyogRm9udFBsYXRmb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNDMxMSw2ICsyNDMyNSw4IEBACiAJCQkJQjJDM0RBNjkwRDAwNkNENjAwRUY2RjI2IC8q
IEZvbnRGYW1pbHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRUMwQTE5ODlDQTAwN0ZC
OEM1IC8qIEZvbnRGYW1pbHlWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MjYyNkUwMjBF
RjAyMkZFMDBBMDdFMjAgLyogRm9udEZhc3RQYXRoLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRB
NkU5RkMzMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTRBNkU5RkM3MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgwMEQwMEE1QzEwMDMwMDc0RCAvKiBGb250
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODRCNjI2ODUxMzMxMzhGOTAwOTVBNDg5IC8qIEZv
bnRQbGF0Zm9ybURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjUzMjBENkMxMjJBMjRFOTAw
MkQxNDQwIC8qIEZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRl
eCA1ZTcxMGQ3NGNkNWM0OGJmMjgxNTFlNDhmNTc4MDYyMTc2ZGNhZTU3Li44Zjg2NGUxZGIzOTA1
OWQxNDgzZDIxNzFhZmQ5ODQyOTJkNjFhNDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTcwMSw2ICsxNzAxLDcgQEAg
UGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9w
ZXJ0eUNTU1ZhbHVlKGludCBwcm9wZXIKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIC8q
IFVuaW1wbGVtZW50ZWQgQ1NTIDMgcHJvcGVydGllcyAoaW5jbHVkaW5nIENTUzMgc2hvcnRoYW5k
IHByb3BlcnRpZXMpICovCisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGb250RmVhdHVy
ZVNldHRpbmdzOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzOgog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dExpbmVUaHJvdWdoOgogICAgICAgICBjYXNlIENT
U1Byb3BlcnR5VGV4dExpbmVUaHJvdWdoQ29sb3I6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmlu
ZGV4IDVkOGZkZTRiNTc4ZDUzZjFhMDk4YTBkZjliYTZiZGI5ZWViODc0NmUuLjJhY2FiYWI3OTFl
YTcwOTAzYmQ2ZTdjNGU1N2FiNTk4OWIxODc2MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
CkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGbG9h
dENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJGb250RmFtaWx5VmFsdWUuaCIKKyNpbmNsdWRlICJG
b250RmVhdHVyZVZhbHVlLmgiCiAjaW5jbHVkZSAiRm9udFZhbHVlLmgiCiAjaW5jbHVkZSAiSFRN
TFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhhc2hUb29scy5oIgpAQCAtMjA4NCw2ICsyMDg1
LDEyIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0
YW50KQogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VMaW5lQm94Q29udGFp
bihpbXBvcnRhbnQpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
Rm9udEZlYXR1cmVTZXR0aW5nczoKKyAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFsKQor
ICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICByZXR1cm4gcGFyc2VGb250RmVhdHVyZVNldHRpbmdzKGltcG9ydGFudCk7CisgICAgICAg
IGJyZWFrOwogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRXcmFwU2hhcGU6CkBAIC02MzAyLDYgKzYzMDksNjggQEAgYm9vbCBDU1NQYXJzZXI6
OnBhcnNlTGluZUJveENvbnRhaW4oYm9vbCBpbXBvcnRhbnQpCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKK2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZUZvbnRGZWF0dXJlVGFnKENTU1ZhbHVlTGlzdCogc2V0
dGluZ3MpCit7CisgICAgLy8gRmVhdHVyZSB0YWcgbmFtZSBjb25zaXN0cyBvZiA0LWxldHRlciBj
aGFyYWN0ZXJzLgorICAgIHN0YXRpYyBjb25zdCBpbnQgdGFnTmFtZUxlbmd0aCA9IDQ7CisKKyAg
ICBDU1NQYXJzZXJWYWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworICAgIC8v
IEZlYXR1cmUgdGFnIG5hbWUgY29tZXMgZmlyc3QKKyAgICBpZiAodmFsdWUtPnVuaXQgIT0gQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcgJiYgdmFsdWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19JREVOVCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICh2YWx1ZS0+
c3RyaW5nLmxlbmd0aCAhPSB0YWdOYW1lTGVuZ3RoKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgUmVmUHRyPEZvbnRGZWF0dXJlVmFsdWU+IHBhcnNlZFZhbHVlID0gRm9udEZlYXR1cmVWYWx1
ZTo6Y3JlYXRlKHZhbHVlLT5zdHJpbmcpOworICAgIHZhbHVlID0gbV92YWx1ZUxpc3QtPm5leHQo
KTsKKworICAgIC8vIEZlYXR1cmUgdGFnIHZhbHVlcyBtaWdodCBmb2xsb3cKKyAgICBpZiAodmFs
dWUpIHsKKyAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBmZWF0dXJlVmFsdWU7Cisg
ICAgICAgIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiAm
JiB2YWx1ZS0+ZlZhbHVlID49IDAuKQorICAgICAgICAgICAgZmVhdHVyZVZhbHVlID0gcHJpbWl0
aXZlVmFsdWVDYWNoZSgpLT5jcmVhdGVWYWx1ZSh2YWx1ZS0+ZlZhbHVlLCBzdGF0aWNfY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzPih2YWx1ZS0+dW5pdCkpOworICAgICAgICBlbHNl
IGlmICh2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVPbiB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVPZmYp
CisgICAgICAgICAgICBmZWF0dXJlVmFsdWUgPSBwcmltaXRpdmVWYWx1ZUNhY2hlKCktPmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZSh2YWx1ZS0+aWQpOworCisgICAgICAgIGlmIChmZWF0dXJlVmFsdWUp
IHsKKyAgICAgICAgICAgIHBhcnNlZFZhbHVlLT5zZXRWYWx1ZShmZWF0dXJlVmFsdWUucmVsZWFz
ZSgpKTsKKyAgICAgICAgICAgIHZhbHVlID0gbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAg
fQorICAgIH0KKyAgICBzZXR0aW5ncy0+YXBwZW5kKHBhcnNlZFZhbHVlLnJlbGVhc2UoKSk7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZUZvbnRGZWF0dXJlU2V0
dGluZ3MoYm9vbCBpbXBvcnRhbnQpCit7CisgICAgaWYgKG1fdmFsdWVMaXN0LT5zaXplKCkgPT0g
MSAmJiBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpLT5pZCA9PSBDU1NWYWx1ZU5vcm1hbCkgeworICAg
ICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG5vcm1hbFZhbHVlID0gcHJpbWl0aXZlVmFs
dWVDYWNoZSgpLT5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb3JtYWwpOworICAgICAg
ICBtX3ZhbHVlTGlzdC0+bmV4dCgpOworICAgICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eVdl
YmtpdEZvbnRGZWF0dXJlU2V0dGluZ3MsIG5vcm1hbFZhbHVlLnJlbGVhc2UoKSwgaW1wb3J0YW50
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgUmVmUHRyPENTU1ZhbHVlTGlz
dD4gc2V0dGluZ3MgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CisgICAg
Q1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKKyAgICB3aGls
ZSAodmFsdWUpIHsKKyAgICAgICAgaWYgKCFwYXJzZUZvbnRGZWF0dXJlVGFnKHNldHRpbmdzLmdl
dCgpKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgdmFsdWUgPSBtX3ZhbHVl
TGlzdC0+Y3VycmVudCgpOworCisgICAgICAgIGlmICh2YWx1ZSkgeworICAgICAgICAgICAgLy8g
SWYgdGhlIGxpc3QgaXNuJ3QgcGFyc2VkIGZ1bGx5LCB0aGUgY3VycmVudCB2YWx1ZSBzaG91bGQg
YmUgY29tbWEuCisgICAgICAgICAgICBpZiAoIXZhbHVlLT51bml0ID09IENTU1BhcnNlclZhbHVl
OjpPcGVyYXRvciB8fCB2YWx1ZS0+aVZhbHVlICE9ICcsJykKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5uZXh0KCk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBpZiAoc2V0dGluZ3MtPmxlbmd0aCgpKSB7CisgICAgICAgIGFk
ZFByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1cmVTZXR0aW5ncywgc2V0dGluZ3Mu
cmVsZWFzZSgpLCBpbXBvcnRhbnQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAg
cmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgaW5saW5lIGludCB5eWVycm9yKGNvbnN0IGNoYXIq
KSB7IHJldHVybiAxOyB9CiAKICNkZWZpbmUgRU5EX1RPS0VOIDAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
aAppbmRleCBiZDFjNzQ2ODdjNjE5MGY1NGY4NDY5YWUzNTM2NjFjMTJlM2VhNDQ3Li4xMDlkZTA1
Yjk3YzEyMjU5M2UwMDBmZjYyM2IwOWZkODVmMTkwN2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5o
CkBAIC0xOTcsNiArMTk3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGJvb2wg
cGFyc2VMaW5lQm94Q29udGFpbihib29sIGltcG9ydGFudCk7CiAKKyAgICAgICAgYm9vbCBwYXJz
ZUZvbnRGZWF0dXJlVGFnKENTU1ZhbHVlTGlzdCopOworICAgICAgICBib29sIHBhcnNlRm9udEZl
YXR1cmVTZXR0aW5ncyhib29sIGltcG9ydGFudCk7CisKICAgICAgICAgaW50IHl5cGFyc2UoKTsK
IAogICAgICAgICBDU1NQYXJzZXJTZWxlY3RvciogY3JlYXRlRmxvYXRpbmdTZWxlY3RvcigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCA5YzIwZjdmY2YyNTFjMTJk
OGIwNzVkMGIxZTUxZTU4Mzk2OGU3N2QxLi40NjU2ZTZjNjNiZTA0NTY5Y2JmOTExZTU4Njk4ODI0
ZDVhNDZmYzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1l
cy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtMjAs
NiArMjAsNyBAQCBmb250LXN0eWxlCiBmb250LXZhcmlhbnQKIGZvbnQtd2VpZ2h0CiB0ZXh0LXJl
bmRlcmluZworLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3MKIC13ZWJraXQtZm9udC1zbW9v
dGhpbmcKIC13ZWJraXQtdGV4dC1vcmllbnRhdGlvbgogLWVwdWItdGV4dC1vcmllbnRhdGlvbiA9
IC13ZWJraXQtdGV4dC1vcmllbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCmluZGV4IDY2MTM0YjlhODMxMGIzY2ZjMDQ1OWRlNWUwODU4NjQ2NmIzMDIxODIuLjc1
OTBkMzYyZTVmZmNjMzdlOWE1NzBiOGY2Mjc2ZWU4MDI3ZTY5ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJDb3Vu
dGVyLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRm9udEZhbWls
eVZhbHVlLmgiCisjaW5jbHVkZSAiRm9udEZlYXR1cmVWYWx1ZS5oIgogI2luY2x1ZGUgIkZvbnRW
YWx1ZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIK
QEAgLTM0NzksNyArMzQ4MCw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlEZWNsYXJh
dGlvbnMoYm9vbCBpc0ltcG9ydGFudCwgaW50IHN0YXJ0SW5kZXgsIGludCBlCiAKICAgICAgICAg
ICAgICAgICBpZiAoYXBwbHlGaXJzdCkgewogICAgICAgICAgICAgICAgICAgICBDT01QSUxFX0FT
U0VSVChmaXJzdENTU1Byb3BlcnR5ID09IENTU1Byb3BlcnR5Q29sb3IsIENTU19jb2xvcl9pc19m
aXJzdF9wcm9wZXJ0eSk7Ci0gICAgICAgICAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKENTU1By
b3BlcnR5Wm9vbSA9PSBDU1NQcm9wZXJ0eUNvbG9yICsgMTQsIENTU196b29tX2lzX2VuZF9vZl9m
aXJzdF9wcm9wX3JhbmdlKTsKKyAgICAgICAgICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoQ1NT
UHJvcGVydHlab29tID09IENTU1Byb3BlcnR5Q29sb3IgKyAxNSwgQ1NTX3pvb21faXNfZW5kX29m
X2ZpcnN0X3Byb3BfcmFuZ2UpOwogICAgICAgICAgICAgICAgICAgICBDT01QSUxFX0FTU0VSVChD
U1NQcm9wZXJ0eUxpbmVIZWlnaHQgPT0gQ1NTUHJvcGVydHlab29tICsgMSwgQ1NTX2xpbmVfaGVp
Z2h0X2lzX2FmdGVyX3pvb20pOwogCiAgICAgICAgICAgICAgICAgICAgIC8vIGdpdmUgc3BlY2lh
bCBwcmlvcml0eSB0byBmb250LXh4eCwgY29sb3IgcHJvcGVydGllcywgZXRjCkBAIC01MTQ5LDYg
KzUxNTAsMzQgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwg
Q1NTVmFsdWUgKnZhbHVlKQogICAgICAgICByZXR1cm47CiAjZW5kaWYKIAorICAgIC8vIENTUyBG
b250cyBNb2R1bGUgTGV2ZWwgMworICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGb250RmVhdHVy
ZVNldHRpbmdzOiB7CisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSAmJiBwcmltaXRpdmVWYWx1
ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vcm1hbCkgeworICAgICAgICAgICAgaWYgKG1fc3R5
bGUtPnNldEZvbnREZXNjcmlwdGlvbihtX3N0eWxlLT5mb250RGVzY3JpcHRpb24oKS5tYWtlTm9y
bWFsRmVhdHVyZVNldHRpbmdzKCkpKQorICAgICAgICAgICAgICAgIG1fZm9udERpcnR5ID0gdHJ1
ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghdmFsdWUt
PmlzVmFsdWVMaXN0KCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgRm9udERlc2Ny
aXB0aW9uIGZvbnREZXNjcmlwdGlvbiA9IG1fc3R5bGUtPmZvbnREZXNjcmlwdGlvbigpOworICAg
ICAgICBDU1NWYWx1ZUxpc3QqIGxpc3QgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih2YWx1
ZSk7CisgICAgICAgIFJlZlB0cjxGb250RmVhdHVyZVNldHRpbmdzPiBzZXR0aW5ncyA9IEZvbnRG
ZWF0dXJlU2V0dGluZ3M6OmNyZWF0ZSgpOworICAgICAgICBpbnQgbGVuID0gbGlzdC0+bGVuZ3Ro
KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgICAg
IENTU1ZhbHVlKiBpdGVtID0gbGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjayhpKTsKKyAgICAg
ICAgICAgIGlmICghaXRlbS0+aXNGb250RmVhdHVyZVZhbHVlKCkpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICBGb250RmVhdHVyZVZhbHVlKiBmZWF0dXJlID0gc3RhdGlj
X2Nhc3Q8Rm9udEZlYXR1cmVWYWx1ZSo+KGl0ZW0pOworICAgICAgICAgICAgc2V0dGluZ3MtPmFw
cGVuZChGb250RmVhdHVyZShmZWF0dXJlLT50YWcoKSwgZmVhdHVyZS0+dmFsdWUoKSkpOworICAg
ICAgICB9CisgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRGZWF0dXJlU2V0dGluZ3Moc2V0dGlu
Z3MucmVsZWFzZSgpKTsKKyAgICAgICAgaWYgKG1fc3R5bGUtPnNldEZvbnREZXNjcmlwdGlvbihm
b250RGVzY3JpcHRpb24pKQorICAgICAgICAgICAgbV9mb250RGlydHkgPSB0cnVlOworICAgICAg
ICByZXR1cm47CisgICAgfQorCiAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBhcmUgaW1wbGVtZW50
ZWQgaW4gdGhlIENTU1N0eWxlQXBwbHlQcm9wZXJ0eSBsb29rdXAgdGFibGUuCiAgICAgY2FzZSBD
U1NQcm9wZXJ0eUNvbG9yOgogICAgIGNhc2UgQ1NTUHJvcGVydHlEaXJlY3Rpb246CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZS5oCmluZGV4IDEwYWMzNWMzYTI3ODY1YTVjNGFlODU1YTA1MWEwODBhZGI5ZjlmNGMu
LmM1MzVkYTI1ZTExNDk2ZjAwZWEzN2U2YjEyNGQzMWIzZjAzMjM3MjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZS5oCkBAIC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNGbGV4
VmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAgICAgdmlydHVhbCBib29s
IGlzRm9udEZhbWlseVZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNGb250RmVhdHVyZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNGb250VmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCAwNTM1YjViNTkyZWQ4
MTc0ODE0MGI0NzkyZDlhNmIzMDJjNjgyOTJjLi4wNmE2YWEyMzY1NGVhZjgwNTFlNDNiMmY3MmJl
MDI2ZjkyN2YzMjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3
b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAt
ODA2LDYgKzgwNiwxMCBAQCBnbHlwaHMKIGlubGluZS1ib3gKIHJlcGxhY2VkCiAKKy8vIC13ZWJr
aXQtZm9udC1mZWF0dXJlLXNldHRpbmdzCitvbgorb2ZmCisKIC8vIGltYWdlLXJlbmRlcmluZwog
Ly9hdXRvCiAvL29wdGltaXplU3BlZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9G
b250RmVhdHVyZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jMTMwNjYyZTJkOTI1ZWQ5N2IzZGFhZmFhNWRkNzIxOTgwNWI5N2Q3
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUu
Y3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZv
bnRGZWF0dXJlVmFsdWUuaCIKKworI2luY2x1ZGUgIkNTU1BhcnNlci5oIgorI2luY2x1ZGUgIkNT
U1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitG
b250RmVhdHVyZVZhbHVlOjpGb250RmVhdHVyZVZhbHVlKGNvbnN0IFN0cmluZyYgdGFnKQorICAg
IDogbV90YWcodGFnKQoreworfQorCitpbnQgRm9udEZlYXR1cmVWYWx1ZTo6dmFsdWUoKSBjb25z
dAoreworICAgIGlmICghbV92YWx1ZSkKKyAgICAgICAgcmV0dXJuIDE7CisgICAgaWYgKG1fdmFs
dWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UKSB7Cisg
ICAgICAgIHN3aXRjaCAobV92YWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICBjYXNlIENTU1Zh
bHVlT246CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZU9mZjoK
KyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKG1fdmFsdWUtPnByaW1pdGl2ZVR5cGUo
KSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikKKyAgICAgICAgcmV0dXJuIG1fdmFs
dWUtPmdldEludFZhbHVlKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1N0cmluZyBGb250RmVhdHVy
ZVZhbHVlOjpjc3NUZXh0KCkgY29uc3QKK3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Cisg
ICAgYnVpbGRlci5hcHBlbmQoIiciKTsKKyAgICBidWlsZGVyLmFwcGVuZChtX3RhZyk7CisgICAg
YnVpbGRlci5hcHBlbmQoIiciKTsKKyAgICBpZiAobV92YWx1ZSkgeworICAgICAgICBidWlsZGVy
LmFwcGVuZCgiICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChtX3ZhbHVlLT5jc3NUZXh0KCkp
OworICAgIH0KKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZlYXR1cmVWYWx1ZS5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzRjNGEwM2RkYTRiYjRkNGYy
OTMzZDE0NTY3NTdlMDhjNDFmMTI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0ZvbnRGZWF0dXJlVmFsdWUuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgRm9udEZl
YXR1cmVWYWx1ZV9oCisjZGVmaW5lIEZvbnRGZWF0dXJlVmFsdWVfaAorCisjaW5jbHVkZSAiQ1NT
UHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIEZvbnRGZWF0dXJlVmFsdWUgOiBwdWJsaWMgQ1NTVmFsdWUg
eworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZvbnRGZWF0dXJlVmFsdWU+IGNyZWF0
ZShjb25zdCBTdHJpbmcmIHRhZykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
Rm9udEZlYXR1cmVWYWx1ZSh0YWcpKTsKKyAgICB9CisKKyAgICBjb25zdCBTdHJpbmcmIHRhZygp
IGNvbnN0IHsgcmV0dXJuIG1fdGFnOyB9CisgICAgaW50IHZhbHVlKCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRWYWx1ZShQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB2YWx1ZSkgeyBtX3ZhbHVl
ID0gdmFsdWU7IH0KKyAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3Q7CisKK3ByaXZh
dGU6CisgICAgRm9udEZlYXR1cmVWYWx1ZShjb25zdCBTdHJpbmcmIHRhZyk7CisgICAgdmlydHVh
bCBib29sIGlzRm9udEZlYXR1cmVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKworICAg
IFN0cmluZyBtX3RhZzsKKyAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fdmFsdWU7Cit9
OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwCmluZGV4IDU4ZGRmODE5MmE0MjJk
YTFlYjk1MTllZjU3ZDk2Y2Y3MzZlYWJmMjAuLjQ2ZDEwOGZlMWE2YTc2NGM2MzJiNDA0NjAwYjEx
YWY4N2RlNjY4ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnREZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udERlc2NyaXB0aW9uLmNwcApAQCAtOTgsNCArOTgsMTEgQEAgRm9udFRyYWl0c01hc2sg
Rm9udERlc2NyaXB0aW9uOjp0cmFpdHNNYXNrKCkgY29uc3QKICAgICAKIH0KIAorRm9udERlc2Ny
aXB0aW9uIEZvbnREZXNjcmlwdGlvbjo6bWFrZU5vcm1hbEZlYXR1cmVTZXR0aW5ncygpIGNvbnN0
Cit7CisgICAgRm9udERlc2NyaXB0aW9uIG5vcm1hbERlc2NyaXB0aW9uKCp0aGlzKTsKKyAgICBu
b3JtYWxEZXNjcmlwdGlvbi5zZXRGZWF0dXJlU2V0dGluZ3MoMCk7CisgICAgcmV0dXJuIG5vcm1h
bERlc2NyaXB0aW9uOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCmluZGV4IDVkNTMz
ODhkZGNiMjU4M2UxZmU5NjQyMDg2ZTUwZThkYTI0MmFjOWIuLjcyYzcyYmQzMTMyYmQ5OTkwZGNj
MjIxY2ZiZjg1YTI0ODcyZTBhNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjZGVmaW5lIEZv
bnREZXNjcmlwdGlvbl9oCiAKICNpbmNsdWRlICJGb250RmFtaWx5LmgiCisjaW5jbHVkZSAiRm9u
dEZlYXR1cmVTZXR0aW5ncy5oIgogI2luY2x1ZGUgIkZvbnRPcmllbnRhdGlvbi5oIgogI2luY2x1
ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSAiRm9udFNtb290aGluZ01vZGUuaCIK
QEAgLTM1LDYgKzM2LDggQEAKICNpbmNsdWRlICJUZXh0UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1
ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogZW51bSBGb250V2VpZ2h0IHsKQEAgLTExNCw2ICsxMTcsOCBAQCBw
dWJsaWM6CiAgICAgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9vcmllbnRhdGlvbjsgfQogICAgIFRleHRPcmllbnRhdGlvbiB0ZXh0T3JpZW50YXRpb24oKSBj
b25zdCB7IHJldHVybiBtX3RleHRPcmllbnRhdGlvbjsgfQogICAgIEZvbnRXaWR0aFZhcmlhbnQg
d2lkdGhWYXJpYW50KCkgY29uc3QgeyByZXR1cm4gbV93aWR0aFZhcmlhbnQ7IH0KKyAgICBGb250
RmVhdHVyZVNldHRpbmdzKiBmZWF0dXJlU2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBtX2ZlYXR1
cmVTZXR0aW5ncy5nZXQoKTsgfQorICAgIEZvbnREZXNjcmlwdGlvbiBtYWtlTm9ybWFsRmVhdHVy
ZVNldHRpbmdzKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldEZhbWlseShjb25zdCBGb250RmFtaWx5
JiBmYW1pbHkpIHsgbV9mYW1pbHlMaXN0ID0gZmFtaWx5OyB9CiAgICAgdm9pZCBzZXRDb21wdXRl
ZFNpemUoZmxvYXQgcykgeyBBU1NFUlQoaXNmaW5pdGUocykpOyBtX2NvbXB1dGVkU2l6ZSA9IHM7
IH0KQEAgLTEzOCw2ICsxNDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPcmllbnRhdGlvbihG
b250T3JpZW50YXRpb24gb3JpZW50YXRpb24pIHsgbV9vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9u
OyB9CiAgICAgdm9pZCBzZXRUZXh0T3JpZW50YXRpb24oVGV4dE9yaWVudGF0aW9uIHRleHRPcmll
bnRhdGlvbikgeyBtX3RleHRPcmllbnRhdGlvbiA9IHRleHRPcmllbnRhdGlvbjsgfQogICAgIHZv
aWQgc2V0V2lkdGhWYXJpYW50KEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50KSB7IG1fd2lk
dGhWYXJpYW50ID0gd2lkdGhWYXJpYW50OyB9CisgICAgdm9pZCBzZXRGZWF0dXJlU2V0dGluZ3Mo
UGFzc1JlZlB0cjxGb250RmVhdHVyZVNldHRpbmdzPiBzZXR0aW5ncykgeyBtX2ZlYXR1cmVTZXR0
aW5ncyA9IHNldHRpbmdzOyB9CiAKIHByaXZhdGU6CiAgICAgRm9udEZhbWlseSBtX2ZhbWlseUxp
c3Q7IC8vIFRoZSBsaXN0IG9mIGZvbnQgZmFtaWxpZXMgdG8gYmUgdXNlZC4KQEAgLTE1MSw2ICsx
NTcsOCBAQCBwcml2YXRlOgogCiAgICAgRm9udFdpZHRoVmFyaWFudCBtX3dpZHRoVmFyaWFudDsK
IAorICAgIFJlZlB0cjxGb250RmVhdHVyZVNldHRpbmdzPiBtX2ZlYXR1cmVTZXR0aW5nczsKKwog
ICAgIHVuc2lnbmVkIG1faXRhbGljIDogMTsgLy8gRm9udEl0YWxpYwogICAgIHVuc2lnbmVkIG1f
c21hbGxDYXBzIDogMTsgLy8gRm9udFNtYWxsQ2FwcwogICAgIGJvb2wgbV9pc0Fic29sdXRlU2l6
ZSA6IDE7ICAgLy8gV2hldGhlciBvciBub3QgQ1NTIHNwZWNpZmllZCBhbiBleHBsaWNpdCBzaXpl
CkBAIC0xODgsNyArMTk2LDggQEAgaW5saW5lIGJvb2wgRm9udERlc2NyaXB0aW9uOjpvcGVyYXRv
cj09KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgb3RoZXIpIGNvbnN0CiAgICAgICAgICYmIG1faXNT
cGVjaWZpZWRGb250ID09IG90aGVyLm1faXNTcGVjaWZpZWRGb250CiAgICAgICAgICYmIG1fb3Jp
ZW50YXRpb24gPT0gb3RoZXIubV9vcmllbnRhdGlvbgogICAgICAgICAmJiBtX3RleHRPcmllbnRh
dGlvbiA9PSBvdGhlci5tX3RleHRPcmllbnRhdGlvbgotICAgICAgICAmJiBtX3dpZHRoVmFyaWFu
dCA9PSBvdGhlci5tX3dpZHRoVmFyaWFudDsKKyAgICAgICAgJiYgbV93aWR0aFZhcmlhbnQgPT0g
b3RoZXIubV93aWR0aFZhcmlhbnQKKyAgICAgICAgJiYgbV9mZWF0dXJlU2V0dGluZ3MgPT0gb3Ro
ZXIubV9mZWF0dXJlU2V0dGluZ3M7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzcxMzMyMmY0YzgyZWJmM2NjNzVlODEwY2VkMzhkY2Y5MTUzMDkzZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3Mu
Y3BwCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRm9udEZlYXR1cmVTZXR0aW5ncy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0Zv
bnRGZWF0dXJlOjpGb250RmVhdHVyZShjb25zdCBBdG9taWNTdHJpbmcmIHRhZywgaW50IHZhbHVl
KQorICAgIDogbV90YWcodGFnKQorICAgICwgbV92YWx1ZSh2YWx1ZSkKK3sKK30KKworYm9vbCBG
b250RmVhdHVyZTo6b3BlcmF0b3I9PShjb25zdCBGb250RmVhdHVyZSYgb3RoZXIpCit7CisgICAg
cmV0dXJuIG1fdGFnID09IG90aGVyLm1fdGFnICYmIG1fdmFsdWUgPT0gb3RoZXIubV92YWx1ZTsK
K30KKworRm9udEZlYXR1cmVTZXR0aW5nczo6Rm9udEZlYXR1cmVTZXR0aW5ncygpCit7Cit9CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0
dXJlU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0
dXJlU2V0dGluZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NGQwMTExZjRhZGQ5MzRhZGVkMzEzYzExMWEwNDEx
MzcyODA4YjIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIEZvbnRGZWF0dXJlU2V0dGluZ3NfaAorI2RlZmluZSBGb250RmVhdHVyZVNldHRpbmdz
X2gKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIEZvbnRGZWF0dXJlIHsKK3B1YmxpYzoKKyAgICBGb250RmVhdHVyZShjb25zdCBB
dG9taWNTdHJpbmcmIHRhZywgaW50IHZhbHVlKTsKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
Rm9udEZlYXR1cmUmKTsKKworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdGFnKCkgY29uc3QgeyBy
ZXR1cm4gbV90YWc7IH0KKyAgICBpbnQgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9
Citwcml2YXRlOgorICAgIEF0b21pY1N0cmluZyBtX3RhZzsKKyAgICBpbnQgbV92YWx1ZTsKK307
CisKK2NsYXNzIEZvbnRGZWF0dXJlU2V0dGluZ3MgOiBwdWJsaWMgUmVmQ291bnRlZDxGb250RmVh
dHVyZVNldHRpbmdzPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Rm9udEZlYXR1
cmVTZXR0aW5ncz4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
Rm9udEZlYXR1cmVTZXR0aW5ncygpKTsKKyAgICB9CisgICAgdm9pZCBhcHBlbmQoY29uc3QgRm9u
dEZlYXR1cmUmIGZlYXR1cmUpIHsgbV9saXN0LmFwcGVuZChmZWF0dXJlKTsgfQorICAgIHNpemVf
dCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQorICAgIGNvbnN0IEZvbnRG
ZWF0dXJlJiBvcGVyYXRvcltdKGludCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9saXN0W2luZGV4
XTsgfQorICAgIGNvbnN0IEZvbnRGZWF0dXJlJiBhdChzaXplX3QgaW5kZXgpIGNvbnN0IHsgcmV0
dXJuIG1fbGlzdC5hdChpbmRleCk7IH0KK3ByaXZhdGU6CisgICAgRm9udEZlYXR1cmVTZXR0aW5n
cygpOworICAgIFZlY3RvcjxGb250RmVhdHVyZT4gbV9saXN0OworfTsKKworfQorCisjZW5kaWYg
Ly8gRm9udEZlYXR1cmVTZXR0aW5nc19oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102615</attachid>
            <date>2011-08-01 22:53:46 -0700</date>
            <delta_ts>2011-08-02 07:45:31 -0700</delta_ts>
            <desc>Patch V4</desc>
            <filename>bug-63618-20110802145344.patch</filename>
            <type>text/plain</type>
            <size>41541</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIxNTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkODc3YzQ4NzM5MjQ3OTk4YjAxMGI0
M2UyOTJlN2Y0NDQ1M2FlYmFkLi45MTQxYjUzNWI5OWQ1ZTBkNDc0ZjYwYjg0ZDgwNDY1MWUxOTQ2
ZTdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgtMDEgIEtlbmljaGkgSXNoaWJhc2hp
ICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFBhcnNpbmcgQ1NTMyBmb250LWZlYXR1
cmUtc2V0dGluZ3MgcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYzNjE4CisKKyAgICAgICAgQWRkIHBhcnNpbmcgdGVzdCBjYXNlIGZvciAt
d2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyBwcm9wZXJ0eS4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzczMvZm9udC1mZWF0dXJlLXNldHRp
bmdzLXBhcnNpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZvbnQtZmVh
dHVyZS1zZXR0aW5ncy1wYXJzaW5nLmh0bWw6IEFkZGVkLgorCiAyMDExLTA4LTAxICBDaHJpcyBS
b2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CiAKICAgICAgICAgT25lIG1vcmUgdGVzdF9leHBl
Y3RhdGlvbnMudHh0IGZpeCBmb3Igd2luZG93cyB3ZWIgYXVkaW8KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcGFyc2luZy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDM0M2E3Mzk4NjcxMzgxYzRhOTMzY2IzMzY0NDcyOTczZDI4ZGNkMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdz
LXBhcnNpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzIgQEAKK1Rlc3QgcGFyc2luZyBvZiB0
aGUgQ1NTMyBmb250LWZlYXR1cmUtc2V0dGluZ3MgcHJvcGVydHkuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCistIFRlc3RzIHZhbGlkIGlucHV0cworUEFTUyBwYXJzZVJlc3VsdE9m
KCJub3JtYWwiKSBpcyAibm9ybWFsIgorUEFTUyBwYXJzZVJlc3VsdE9mKCInYWFhYSciKSBpcyAi
J2FhYWEnIgorUEFTUyBwYXJzZVJlc3VsdE9mKCInYWFhYScgMSIpIGlzICInYWFhYScgMSIKK1BB
U1MgcGFyc2VSZXN1bHRPZigiXCJhYWFhXCIgMCIpIGlzICInYWFhYScgMCIKK1BBU1MgcGFyc2VS
ZXN1bHRPZigiJ2FhYWEnIG9uIikgaXMgIidhYWFhJyBvbiIKK1BBU1MgcGFyc2VSZXN1bHRPZigi
XCJhYWFhXCIgb2ZmIikgaXMgIidhYWFhJyBvZmYiCitQQVNTIHBhcnNlUmVzdWx0T2YoImFhYWEs
ICdiYmJiJywgY2NjYyIpIGlzICInYWFhYScsICdiYmJiJywgJ2NjY2MnIgorUEFTUyBwYXJzZVJl
c3VsdE9mKCInYWFhYScgb24sIGJiYmIgMSwgY2NjYyBvZmYiKSBpcyAiJ2FhYWEnIG9uLCAnYmJi
YicgMSwgJ2NjY2MnIG9mZiIKK1BBU1MgcGFyc2VSZXN1bHRPZigiYWFhYSwgYmJiYiAwLCBcImNj
Y2NcIiIpIGlzICInYWFhYScsICdiYmJiJyAwLCAnY2NjYyciCistIFRlc3RzIGludmFsaWQgaW5w
dXRzLiAgUmVzdWx0cyBzaG91bGQgYmUgZW1wdHkgc3RyaW5ncy4KK1BBU1MgcGFyc2VSZXN1bHRP
ZigiMSIpIGlzICIiCitQQVNTIHBhcnNlUmVzdWx0T2YoIm9mZiIpIGlzICIiCitQQVNTIHBhcnNl
UmVzdWx0T2YoImFhYWFhIikgaXMgIiIKK1BBU1MgcGFyc2VSZXN1bHRPZigiXCJhYWFhYVwiIikg
aXMgIiIKK1BBU1MgcGFyc2VSZXN1bHRPZigiYWFhYSAtMSIpIGlzICIiCitQQVNTIHBhcnNlUmVz
dWx0T2YoImFhYWEgXCJiYmJiXCIiKSBpcyAiIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJhYWFhIGJi
YmIiKSBpcyAiIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJhYWFhLCBvbiIpIGlzICIiCitQQVNTIHBh
cnNlUmVzdWx0T2YoIlwiYWFhYVwiIDEsIFwiYmJiYlwiLCAwIikgaXMgIiIKK1BBU1MgcGFyc2VS
ZXN1bHRPZigiLCIpIGlzICIiCitQQVNTIHBhcnNlUmVzdWx0T2YoImFhYWEsIikgaXMgIiIKK1BB
U1MgcGFyc2VSZXN1bHRPZigiLCBhYWFhIikgaXMgIiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1wYXJzaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2Zv
bnQtZmVhdHVyZS1zZXR0aW5ncy1wYXJzaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU5MjY3OWU1MjNk
NTcxNzFhMTc3NmNhNjYwMGQyYzg0NmM1MzkxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmcuaHRtbApAQCAtMCwwICsxLDU5
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCdUZXN0IHBhcnNpbmcgb2YgdGhlIENTUzMgZm9udC1mZWF0dXJlLXNldHRpbmdzIHBy
b3BlcnR5LicpOworCitmdW5jdGlvbiBwYXJzZVJlc3VsdE9mKHZhbHVlKSB7CisgICAgdmFyIGVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBlbGVtZW50LnN0eWxl
Wyctd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyddID0gdmFsdWU7CisgICAgcmV0dXJuIGVs
ZW1lbnQuc3R5bGVbJy13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzJ107Cit9CisKK3ZhciB2
YWxpZElucHV0c0FuZEV4cGVjdGVkUmVzdWx0cyA9IFsKKyAgICAvLyBJbnB1dCwgRXhwZWN0ZWQK
KyAgICBbJ25vcm1hbCcsICJub3JtYWwiXSwKKyAgICBbIidhYWFhJyIsICInYWFhYSciXSwKKyAg
ICBbIidhYWFhJyAxIiwgIidhYWFhJyAxIl0sCisgICAgWydcXCJhYWFhXFwiIDAnLCAiJ2FhYWEn
IDAiXSwKKyAgICBbIidhYWFhJyBvbiIsICInYWFhYScgb24iXSwKKyAgICBbJ1xcImFhYWFcXCIg
b2ZmJywgIidhYWFhJyBvZmYiXSwKKyAgICBbImFhYWEsICdiYmJiJywgY2NjYyIsICInYWFhYScs
ICdiYmJiJywgJ2NjY2MnIl0sCisgICAgWyInYWFhYScgb24sIGJiYmIgMSwgY2NjYyBvZmYiLCAi
J2FhYWEnIG9uLCAnYmJiYicgMSwgJ2NjY2MnIG9mZiJdLAorICAgIFsnYWFhYSwgYmJiYiAwLCBc
XCJjY2NjXFwiJywgIidhYWFhJywgJ2JiYmInIDAsICdjY2NjJyJdLAorXTsKKworZGVidWcoJy0g
VGVzdHMgdmFsaWQgaW5wdXRzJyk7Citmb3IgKHZhciBpID0gMDsgaSA8IHZhbGlkSW5wdXRzQW5k
RXhwZWN0ZWRSZXN1bHRzLmxlbmd0aDsgKytpKQorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
cGFyc2VSZXN1bHRPZigiJyArIHZhbGlkSW5wdXRzQW5kRXhwZWN0ZWRSZXN1bHRzW2ldWzBdICsg
JyIpJywgdmFsaWRJbnB1dHNBbmRFeHBlY3RlZFJlc3VsdHNbaV1bMV0pOworCit2YXIgaW52YWxp
ZElucHV0cyA9IFsKKyAgICAnMScsCisgICAgJ29mZicsCisgICAgJ2FhYWFhJywKKyAgICAnXFwi
YWFhYWFcXCInLAorICAgICdhYWFhIC0xJywKKyAgICAnYWFhYSBcXCJiYmJiXFwiJywKKyAgICAn
YWFhYSBiYmJiJywKKyAgICAnYWFhYSwgb24nLAorICAgICdcXCJhYWFhXFwiIDEsIFxcImJiYmJc
XCIsIDAnLAorICAgICcsJywKKyAgICAnYWFhYSwnLAorICAgICcsIGFhYWEnLAorXTsKKworZGVi
dWcoJy0gVGVzdHMgaW52YWxpZCBpbnB1dHMuICBSZXN1bHRzIHNob3VsZCBiZSBlbXB0eSBzdHJp
bmdzLicpOworZm9yICh2YXIgaSA9IDA7IGkgPCBpbnZhbGlkSW5wdXRzLmxlbmd0aDsgKytpKQor
ICAgIHNob3VsZEJlKCdwYXJzZVJlc3VsdE9mKCInICsgaW52YWxpZElucHV0c1tpXSArICciKScs
ICciIicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDUzYmVkYjRiOTQ2ODk3
NGQ1NTA1MzJmZWY5ZDcxYTE0MzllYjM4MjYuLjM5NmEyMTYyNGUyMTA0NmZjMjRiMWU1NmJlZGY3
ODllYWIzMTc0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00NjUsNiArNDY1LDcgQEAgU0VU
KFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9DU1NVbmljb2RlUmFuZ2VWYWx1ZS5jcHAKICAgICBj
c3MvQ1NTVmFsdWVMaXN0LmNwcAogICAgIGNzcy9Gb250RmFtaWx5VmFsdWUuY3BwCisgICAgY3Nz
L0ZvbnRGZWF0dXJlVmFsdWUuY3BwCiAgICAgY3NzL0ZvbnRWYWx1ZS5jcHAKICAgICBjc3MvTWVk
aWFGZWF0dXJlTmFtZXMuY3BwCiAgICAgY3NzL01lZGlhTGlzdC5jcHAKQEAgLTEwNjAsNiArMTA2
MSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFs
bGJhY2tMaXN0LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYW1pbHkuY3BwCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVk
SW1hZ2UuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdiNDJiM2Rl
YjhkODA2MWM3ZTU2ZGYyODY1MzExZWNlZTllZjI3Ny4uMGE1MjI2MTFmNjI5ZWE5ZmY1ZWYyMjk5
MjIxZmZlZTE3MmI3NzAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDExLTA4LTAx
ICBLZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KKworICAgICAgICBQYXJz
aW5nIENTUzMgZm9udC1mZWF0dXJlLXNldHRpbmdzIHByb3BlcnR5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzYxOAorCisgICAgICAgIEludHJvZHVj
ZXMgQ1NTMyBmb250LWZlYXR1cmUtc2V0dGluZ3MgcHJvcGVydHkgYXMgLXdlYmtpdC1mb250LWZl
YXR1cmUtc2V0dGluZ3MuICBUaGlzIGNoYW5nZSBvbmx5IGNvbnRhaW5zIHBhcnNpbmcgYW5kIHBh
cnQuICBQYXJzZWQgaW5mb3JtYXRpb24gYXJlIHN0b3JlZCBpbiBGb250RGVzY3JpcHRpb24gY2xh
c3MuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dDogY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcGFyc2luZy5odG1sCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDogQWRkZWQgRm9udEZlYXR1cmVWYWx1ZS57aCxjcHB9IGFuZCBGb250RmVh
dHVyZVNldHRpbmdzLntoLGNwcH0uCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogRGl0
dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnBy
bzogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IERpdHRv
LgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogRGl0dG8uCisg
ICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUp
OiBBZGRlZCBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRGZWF0dXJlU2V0dGluZ3MgYXMgYSBzaG9ydGhh
bmQgcHJvcGVydHkuCisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOiBBZGRlZCBwYXJzaW5nIGNvZGUgZm9yIC13ZWJr
aXQtZm9udC1mZWF0dXJlLXNldHRpbmdzLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpw
YXJzZUZvbnRGZWF0dXJlVGFnKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6
OnBhcnNlRm9udEZlYXR1cmVTZXR0aW5ncyk6IEFkZGVkLgorICAgICAgICAqIGNzcy9DU1NQYXJz
ZXIuaDogQWRkZWQgcGFyc2VGb250RmVhdHVyZVNldHRpbmdzKCkuCisgICAgICAgICogY3NzL0NT
U1Byb3BlcnR5TmFtZXMuaW46IEFkZGVkIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzLgor
ICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1N0eWxlU2VsZWN0b3I6OmFwcGx5RGVjbGFyYXRpb25zKTogTW9kaWZpZWQgYSBjb21waWxlIGFz
c2VydCB0byBmb2xsb3cgYWRkaW5nIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzLgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6IEFkZGVkIGEg
Y2FzZSBjbGF1c2UgZm9yIENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1cmVTZXR0aW5ncy4KKyAg
ICAgICAgKiBjc3MvQ1NTVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc0Zv
bnRGZWF0dXJlVmFsdWUpOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
bjogQWRkZWQgJ29uJyBhbmQgJ29mZicga2V5d29yZHMuCisgICAgICAgICogY3NzL0ZvbnRGZWF0
dXJlVmFsdWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlVmFsdWU6
OkZvbnRGZWF0dXJlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVWYWx1ZTo6
dmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVWYWx1ZTo6Y3NzVGV4dCk6Cisg
ICAgICAgICogY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpGb250RmVhdHVyZVZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1
cmVWYWx1ZTo6dGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlVmFsdWU6OnNldFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlVmFsdWU6OmlzRm9udEZlYXR1cmVW
YWx1ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6bWFrZU5vcm1hbEZlYXR1cmVTZXR0
aW5ncyk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpGb250RGVzY3JpcHRpb24p
OiBBZGRlZCBtX2ZlYXR1cmVTZXR0aW5ncyBtZW1iZXIgdmFyaWFibGUuCisgICAgICAgIChXZWJD
b3JlOjpGb250RGVzY3JpcHRpb246OmZlYXR1cmVTZXR0aW5ncyk6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpzZXRGZWF0dXJlU2V0dGluZ3MpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9PSk6IE1vZGlmaWVkIHRv
IHRha2UgaW50byBhY2NvdW50IG1fZmVhdHVyZVNldHRpbmdzCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udEZlYXR1cmU6OkZvbnRGZWF0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0
dXJlOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmU6Om9wZXJhdG9y
PT0pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVTZXR0aW5nczo6Rm9udEZlYXR1cmVT
ZXR0aW5ncyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5n
cy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlOjp0YWcpOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9udEZlYXR1cmU6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRG
ZWF0dXJlU2V0dGluZ3M6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVyZVNl
dHRpbmdzOjphcHBlbmQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVTZXR0aW5nczo6
c2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVyZVNldHRpbmdzOjpvcGVyYXRvcltd
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlU2V0dGluZ3M6OmF0KToKKwogMjAxMS0w
OC0wMSAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHI5MjAyMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGIz
ODhhMzY5OWRiNjZhNmNmNGRkZjk5MGE5YjMzYmQ2NTQ0YzZmZTIuLjRhYTc0NjI4MjUzNzk3MWY4
MjI3MjJmNjFmMmFmZjJhMTAzMTUzZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtMTAxMSw2ICsxMDExLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9jc3MvRGFzaGJvYXJkUmVnaW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFtaWx5
VmFsdWUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhbWlseVZhbHVlLmggXAorCVNv
dXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVlLmNwcCBcCisJU291cmNlL1dlYkNvcmUv
Y3NzL0ZvbnRGZWF0dXJlVmFsdWUuaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRWYWx1ZS5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250VmFsdWUuaCBcCiAJU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhRmVhdHVyZU5hbWVzLmNwcCBcCkBAIC0yNDkyLDYgKzI0OTQsOCBAQCB3ZWJjb3Jl
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYW1p
bHkuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdz
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udE1ldHJpY3MuaCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udE9yaWVudGF0aW9uLmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDU0YzlhMzRkM2I1YjJhYzExNTM3MDBkYzgyNTE0MGU2YWY3MjliMDIuLjg4NzBmNzdmYjA3
NjJhZTk5YjA4NjBhMTg0NDRlZTExYTIyNmZiYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTczNyw2
ICs3MzcsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlv
bi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFsbGJhY2tMaXN0Lmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYW1pbHkuaCcsCisgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250TWV0cmljcy5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9Gb250T3JpZW50YXRpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFJlbmRlcmluZ01vZGUuaCcsCkBAIC0yMzgyLDYgKzIzODMsOCBAQAogICAg
ICAgICAgICAgJ2Nzcy9EYXNoYm9hcmRSZWdpb24uaCcsCiAgICAgICAgICAgICAnY3NzL0ZvbnRG
YW1pbHlWYWx1ZS5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9Gb250RmFtaWx5VmFsdWUuaCcsCisg
ICAgICAgICAgICAnY3NzL0ZvbnRGZWF0dXJlVmFsdWUuY3BwJywKKyAgICAgICAgICAgICdjc3Mv
Rm9udEZlYXR1cmVWYWx1ZS5oJywKICAgICAgICAgICAgICdjc3MvRm9udFZhbHVlLmNwcCcsCiAg
ICAgICAgICAgICAnY3NzL0ZvbnRWYWx1ZS5oJywKICAgICAgICAgICAgICdjc3MvTWVkaWFGZWF0
dXJlTmFtZXMuY3BwJywKQEAgLTMzMzcsNiArMzM0MCw3IEBACiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvRm9udEZhbGxiYWNrTGlzdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRGYW1pbHkuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9G
b250RmVhdHVyZVNldHRpbmdzLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udEZhc3RQYXRoLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBs
YXRmb3JtRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0
Zm9ybURhdGEuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDdhM2JlZjE2ZjU3NmQ2M2JiNDI0NTg3MDVi
ZjM2MWI4NmM0YzdhMWYuLmEwMzRlZGYxMDVlZTg5ZTJmY2Y5YmUzY2IxZTIzM2IyYzAwYWFmZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCkBAIC00MjgsNiArNDI4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgY3Nz
L0NTU1VuaWNvZGVSYW5nZVZhbHVlLmNwcCBcCiAgICAgY3NzL0NTU1ZhbHVlTGlzdC5jcHAgXAog
ICAgIGNzcy9Gb250RmFtaWx5VmFsdWUuY3BwIFwKKyAgICBjc3MvRm9udEZlYXR1cmVWYWx1ZS5j
cHAgXAogICAgIGNzcy9Gb250VmFsdWUuY3BwIFwKICAgICBjc3MvTWVkaWFGZWF0dXJlTmFtZXMu
Y3BwIFwKICAgICBjc3MvTWVkaWFMaXN0LmNwcCBcCkBAIC05NzcsNiArOTc4LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcCBcCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbGxiYWNrTGlzdC5jcHAgXAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRGYW1pbHkuY3BwIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVy
ZVNldHRpbmdzLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIFwK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0Zsb2F0UG9pbnQzRC5jcHAgXApAQCAtMTQyMyw2ICsxNDI1LDcgQEAgSEVBREVSUyArPSBcCiAg
ICAgY3NzL0NTU1VuaWNvZGVSYW5nZVZhbHVlLmggXAogICAgIGNzcy9DU1NWYWx1ZUxpc3QuaCBc
CiAgICAgY3NzL0ZvbnRGYW1pbHlWYWx1ZS5oIFwKKyAgICBjc3MvRm9udEZlYXR1cmVWYWx1ZS5o
IFwKICAgICBjc3MvRm9udFZhbHVlLmggXAogICAgIGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5oIFwK
ICAgICBjc3MvTWVkaWFMaXN0LmggXApAQCAtMTk3Nyw2ICsxOTgwLDcgQEAgSEVBREVSUyArPSBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERhdGEuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udERlc2NyaXB0aW9uLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYW1pbHku
aCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5oIFwKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250TWV0cmljcy5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9G
b250LmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmggXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA5MWYyZmE1MmUz
MTgxZTdmMTRhMWZjMzllYWUzMjcyNDEwYTNlZmU0Li43NjljNTZjZjA0YmE4YmU0N2IxN2FkOTBj
M2Y4ZmYwY2RhNWQwMzMwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagpAQCAtMjc1ODUsNiArMjc1ODUsMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4K
IAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZvbnRG
ZWF0dXJlU2V0dGluZ3MuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRm9udEZlYXR1cmVTZXR0aW5ncy5o
IgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cGxhdGZvcm1cZ3JhcGhpY3NcRm9udEZhc3RQYXRoLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4K
QEAgLTMyOTUwLDYgKzMyOTU4LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xGb250RmVhdHVyZVZhbHVlLmNwcCIKKwkJCQk+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXEZvbnRGZWF0dXJlVmFs
dWUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
Y3NzXEZvbnRWYWx1ZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY4MjE5NTk0NWExYjhm
ZjExYTkxMTEyMzZiZGMxZmUzZmMxZTBmMmIuLmQxYTUxOTQ5N2ViMjA3ZTk0NjgzYzZhZTU0OTUz
MmY2ZTJhOGE5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTEyNjksNiArMTI2OSwxMCBAQAogCQk0OUZGQkY0MDExQzkzRUUz
MDA2QTcxMTggLyogV2ViR0xMYXllci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ5RkZCRjNFMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLm1t
ICovOyB9OwogCQk0QTBEQTJGRTEyOUIyNDE5MDBBQjYxRTEgLyogRm9ybUFzc29jaWF0ZWRFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRB
MERBMkZDMTI5QjI0MTkwMEFCNjFFMSAvKiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwICovOyB9
OwogCQk0QTBEQTJGRjEyOUIyNDE5MDBBQjYxRTEgLyogRm9ybUFzc29jaWF0ZWRFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTBEQTJGRDEy
OUIyNDE5MDBBQjYxRTEgLyogRm9ybUFzc29jaWF0ZWRFbGVtZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNEE2RTlGQzMxM0MxN0QxRDAwNDZB
N0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEE2RTlGQzExM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJl
VmFsdWUuY3BwICovOyB9OworCQk0QTZFOUZDNDEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1
cmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NEE2RTlGQzIxM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0QTZFOUZDNzEzQzE3RDU3
MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTZFOUZDNTEzQzE3RDU3MDA0NkE3RjggLyogRm9u
dEZlYXR1cmVTZXR0aW5ncy5jcHAgKi87IH07CisJCTRBNkU5RkM4MTNDMTdENTcwMDQ2QTdGOCAv
KiBGb250RmVhdHVyZVNldHRpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0QTZFOUZDNjEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0
aW5ncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTRBOEM5NkVCMEJFNjkwMzIwMDRFRUZGMCAvKiBGcmFtZVNlbGVjdGlvbk1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBOEM5NkVBMEJFNjkwMzIw
MDRFRUZGMCAvKiBGcmFtZVNlbGVjdGlvbk1hYy5tbSAqLzsgfTsKIAkJNEFDQkMwQkUxMjcxM0NC
RDAwOTRGOUIyIC8qIENsYXNzTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0QUNCQzBCQzEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmNw
cCAqLzsgfTsKIAkJNEFDQkMwQkYxMjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlzdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEFDQkMwQkQxMjcxM0NC
RDAwOTRGOUIyIC8qIENsYXNzTGlzdC5oICovOyB9OwpAQCAtNzg0Niw2ICs3ODUwLDEwIEBACiAJ
CTQ5RkZCRjNFMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViR0xMYXllci5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNEEwREEyRkMxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1Bc3NvY2lhdGVk
RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtQXNz
b2NpYXRlZEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QTBEQTJG
RDEyOUIyNDE5MDBBQjYxRTEgLyogRm9ybUFzc29jaWF0ZWRFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1Bc3NvY2lhdGVkRWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0QTZFOUZDMTEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1
cmVWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb250RmVh
dHVyZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE2RTlGQzIxM0Mx
N0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRm9udEZlYXR1cmVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0QTZFOUZDNTEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb250RmVhdHVyZVNldHRpbmdz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE2RTlGQzYxM0MxN0Q1NzAwNDZB
N0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGZpbGVFbmNvZGluZyA9IDQ7IHBh
dGggPSBGb250RmVhdHVyZVNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTRBOEM5NkVBMEJFNjkwMzIwMDRFRUZGMCAvKiBGcmFtZVNlbGVjdGlvbk1hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBGcmFtZVNlbGVjdGlvbk1hYy5tbTsg
cGF0aCA9IG1hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNEFDQkMwQkMxMjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlzdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbGFzc0xpc3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0QUNCQzBCRDEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsYXNzTGlzdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTgxNDIsNiArMTgxNTAsOCBAQAogCQkJCUIyQzNEQTU4MEQw
MDZDRDYwMEVGNkYyNiAvKiBGb250RmFtaWx5LmNwcCAqLywKIAkJCQlCMkMzREE1OTBEMDA2Q0Q2
MDBFRjZGMjYgLyogRm9udEZhbWlseS5oICovLAogCQkJCTcyNjI2RTAxMEVGMDIyRkUwMEEwN0Uy
MCAvKiBGb250RmFzdFBhdGguY3BwICovLAorCQkJCTRBNkU5RkM1MTNDMTdENTcwMDQ2QTdGOCAv
KiBGb250RmVhdHVyZVNldHRpbmdzLmNwcCAqLywKKwkJCQk0QTZFOUZDNjEzQzE3RDU3MDA0NkE3
RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5oICovLAogCQkJCTA4NDU2ODA3MTJCOTBEQTYwMDk2
MEE5RiAvKiBGb250TWV0cmljcy5oICovLAogCQkJCUY3QTAzNEMzMTI2QkY2QkUwMDdEQzE5RSAv
KiBGb250T3JpZW50YXRpb24uaCAqLywKIAkJCQk4NEI2MjY4NDEzMzEzOEY5MDA5NUE0ODkgLyog
Rm9udFBsYXRmb3JtRGF0YS5jcHAgKi8sCkBAIC0xOTM1NCw2ICsxOTM2NCw4IEBACiAJCQkJQTgw
RTZDQzkwQTE5ODlDQTAwN0ZCOEM1IC8qIEZvbnRGYW1pbHlWYWx1ZS5oICovLAogCQkJCUE4MEU2
Q0M3MEExOTg5Q0EwMDdGQjhDNSAvKiBGb250VmFsdWUuY3BwICovLAogCQkJCUE4MEU2Q0MzMEEx
OTg5Q0EwMDdGQjhDNSAvKiBGb250VmFsdWUuaCAqLywKKwkJCQk0QTZFOUZDMTEzQzE3RDFEMDA0
NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5jcHAgKi8sCisJCQkJNEE2RTlGQzIxM0MxN0QxRDAw
NDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuaCAqLywKIAkJCQlDRDRFMEFGQTExRjdCQzI3MDA5
RDM4MTEgLyogZnVsbHNjcmVlbi5jc3MgKi8sCiAJCQkJQ0RCRDkzQkExMzMzQkQ0QjAwMjU3MEUz
IC8qIGZ1bGxzY3JlZW5RdWlja1RpbWUuY3NzICovLAogCQkJCTkzQ0E0Qzk5MDlERjkzRkEwMERG
ODY3NyAvKiBodG1sLmNzcyAqLywKQEAgLTIxMzcxLDYgKzIxMzgzLDggQEAKIAkJCQlCMkMzREE2
ODBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udEZhbGxiYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjJDM0RBNkEwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRGYW1pbHkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4MEU2Q0YzMEExOTg5Q0EwMDdGQjhDNSAvKiBGb250RmFtaWx5VmFsdWUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTRBNkU5RkM0MTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZh
bHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTZFOUZDODEzQzE3RDU3MDA0NkE3RjggLyogRm9u
dEZlYXR1cmVTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg0NTY4MDgxMkI5MERBNjAw
OTYwQTlGIC8qIEZvbnRNZXRyaWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGN0EwMzRDNDEyNkJG
NkJFMDA3REMxOUUgLyogRm9udE9yaWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTMy
MEQ2QjEyMkEyNEU5MDAyRDE0NDAgLyogRm9udFBsYXRmb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNDMxMSw2ICsyNDMyNSw4IEBACiAJCQkJQjJDM0RBNjkwRDAwNkNENjAwRUY2RjI2IC8q
IEZvbnRGYW1pbHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRUMwQTE5ODlDQTAwN0ZC
OEM1IC8qIEZvbnRGYW1pbHlWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MjYyNkUwMjBF
RjAyMkZFMDBBMDdFMjAgLyogRm9udEZhc3RQYXRoLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRB
NkU5RkMzMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTRBNkU5RkM3MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgwMEQwMEE1QzEwMDMwMDc0RCAvKiBGb250
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODRCNjI2ODUxMzMxMzhGOTAwOTVBNDg5IC8qIEZv
bnRQbGF0Zm9ybURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjUzMjBENkMxMjJBMjRFOTAw
MkQxNDQwIC8qIEZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRl
eCA1ZTcxMGQ3NGNkNWM0OGJmMjgxNTFlNDhmNTc4MDYyMTc2ZGNhZTU3Li44Zjg2NGUxZGIzOTA1
OWQxNDgzZDIxNzFhZmQ5ODQyOTJkNjFhNDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTcwMSw2ICsxNzAxLDcgQEAg
UGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9w
ZXJ0eUNTU1ZhbHVlKGludCBwcm9wZXIKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIC8q
IFVuaW1wbGVtZW50ZWQgQ1NTIDMgcHJvcGVydGllcyAoaW5jbHVkaW5nIENTUzMgc2hvcnRoYW5k
IHByb3BlcnRpZXMpICovCisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGb250RmVhdHVy
ZVNldHRpbmdzOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzOgog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dExpbmVUaHJvdWdoOgogICAgICAgICBjYXNlIENT
U1Byb3BlcnR5VGV4dExpbmVUaHJvdWdoQ29sb3I6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmlu
ZGV4IDVkOGZkZTRiNTc4ZDUzZjFhMDk4YTBkZjliYTZiZGI5ZWViODc0NmUuLjJhY2FiYWI3OTFl
YTcwOTAzYmQ2ZTdjNGU1N2FiNTk4OWIxODc2MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
CkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGbG9h
dENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJGb250RmFtaWx5VmFsdWUuaCIKKyNpbmNsdWRlICJG
b250RmVhdHVyZVZhbHVlLmgiCiAjaW5jbHVkZSAiRm9udFZhbHVlLmgiCiAjaW5jbHVkZSAiSFRN
TFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhhc2hUb29scy5oIgpAQCAtMjA4NCw2ICsyMDg1
LDEyIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0
YW50KQogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VMaW5lQm94Q29udGFp
bihpbXBvcnRhbnQpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
Rm9udEZlYXR1cmVTZXR0aW5nczoKKyAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFsKQor
ICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICByZXR1cm4gcGFyc2VGb250RmVhdHVyZVNldHRpbmdzKGltcG9ydGFudCk7CisgICAgICAg
IGJyZWFrOwogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRXcmFwU2hhcGU6CkBAIC02MzAyLDYgKzYzMDksNjggQEAgYm9vbCBDU1NQYXJzZXI6
OnBhcnNlTGluZUJveENvbnRhaW4oYm9vbCBpbXBvcnRhbnQpCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKK2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZUZvbnRGZWF0dXJlVGFnKENTU1ZhbHVlTGlzdCogc2V0
dGluZ3MpCit7CisgICAgLy8gRmVhdHVyZSB0YWcgbmFtZSBjb25zaXN0cyBvZiA0LWxldHRlciBj
aGFyYWN0ZXJzLgorICAgIHN0YXRpYyBjb25zdCBpbnQgdGFnTmFtZUxlbmd0aCA9IDQ7CisKKyAg
ICBDU1NQYXJzZXJWYWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworICAgIC8v
IEZlYXR1cmUgdGFnIG5hbWUgY29tZXMgZmlyc3QKKyAgICBpZiAodmFsdWUtPnVuaXQgIT0gQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcgJiYgdmFsdWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19JREVOVCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICh2YWx1ZS0+
c3RyaW5nLmxlbmd0aCAhPSB0YWdOYW1lTGVuZ3RoKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgUmVmUHRyPEZvbnRGZWF0dXJlVmFsdWU+IHBhcnNlZFZhbHVlID0gRm9udEZlYXR1cmVWYWx1
ZTo6Y3JlYXRlKHZhbHVlLT5zdHJpbmcpOworICAgIHZhbHVlID0gbV92YWx1ZUxpc3QtPm5leHQo
KTsKKworICAgIC8vIEZlYXR1cmUgdGFnIHZhbHVlcyBtaWdodCBmb2xsb3cKKyAgICBpZiAodmFs
dWUpIHsKKyAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBmZWF0dXJlVmFsdWU7Cisg
ICAgICAgIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiAm
JiB2YWx1ZS0+ZlZhbHVlID49IDAuKQorICAgICAgICAgICAgZmVhdHVyZVZhbHVlID0gcHJpbWl0
aXZlVmFsdWVDYWNoZSgpLT5jcmVhdGVWYWx1ZSh2YWx1ZS0+ZlZhbHVlLCBzdGF0aWNfY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzPih2YWx1ZS0+dW5pdCkpOworICAgICAgICBlbHNl
IGlmICh2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVPbiB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVPZmYp
CisgICAgICAgICAgICBmZWF0dXJlVmFsdWUgPSBwcmltaXRpdmVWYWx1ZUNhY2hlKCktPmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZSh2YWx1ZS0+aWQpOworCisgICAgICAgIGlmIChmZWF0dXJlVmFsdWUp
IHsKKyAgICAgICAgICAgIHBhcnNlZFZhbHVlLT5zZXRWYWx1ZShmZWF0dXJlVmFsdWUucmVsZWFz
ZSgpKTsKKyAgICAgICAgICAgIHZhbHVlID0gbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAg
fQorICAgIH0KKyAgICBzZXR0aW5ncy0+YXBwZW5kKHBhcnNlZFZhbHVlLnJlbGVhc2UoKSk7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZUZvbnRGZWF0dXJlU2V0
dGluZ3MoYm9vbCBpbXBvcnRhbnQpCit7CisgICAgaWYgKG1fdmFsdWVMaXN0LT5zaXplKCkgPT0g
MSAmJiBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpLT5pZCA9PSBDU1NWYWx1ZU5vcm1hbCkgeworICAg
ICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG5vcm1hbFZhbHVlID0gcHJpbWl0aXZlVmFs
dWVDYWNoZSgpLT5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb3JtYWwpOworICAgICAg
ICBtX3ZhbHVlTGlzdC0+bmV4dCgpOworICAgICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eVdl
YmtpdEZvbnRGZWF0dXJlU2V0dGluZ3MsIG5vcm1hbFZhbHVlLnJlbGVhc2UoKSwgaW1wb3J0YW50
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgUmVmUHRyPENTU1ZhbHVlTGlz
dD4gc2V0dGluZ3MgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CisgICAg
Q1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKKyAgICB3aGls
ZSAodmFsdWUpIHsKKyAgICAgICAgaWYgKCFwYXJzZUZvbnRGZWF0dXJlVGFnKHNldHRpbmdzLmdl
dCgpKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgdmFsdWUgPSBtX3ZhbHVl
TGlzdC0+Y3VycmVudCgpOworCisgICAgICAgIGlmICh2YWx1ZSkgeworICAgICAgICAgICAgLy8g
SWYgdGhlIGxpc3QgaXNuJ3QgcGFyc2VkIGZ1bGx5LCB0aGUgY3VycmVudCB2YWx1ZSBzaG91bGQg
YmUgY29tbWEuCisgICAgICAgICAgICBpZiAoIXZhbHVlLT51bml0ID09IENTU1BhcnNlclZhbHVl
OjpPcGVyYXRvciB8fCB2YWx1ZS0+aVZhbHVlICE9ICcsJykKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5uZXh0KCk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBpZiAoc2V0dGluZ3MtPmxlbmd0aCgpKSB7CisgICAgICAgIGFk
ZFByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1cmVTZXR0aW5ncywgc2V0dGluZ3Mu
cmVsZWFzZSgpLCBpbXBvcnRhbnQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAg
cmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgaW5saW5lIGludCB5eWVycm9yKGNvbnN0IGNoYXIq
KSB7IHJldHVybiAxOyB9CiAKICNkZWZpbmUgRU5EX1RPS0VOIDAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
aAppbmRleCBiZDFjNzQ2ODdjNjE5MGY1NGY4NDY5YWUzNTM2NjFjMTJlM2VhNDQ3Li4xMDlkZTA1
Yjk3YzEyMjU5M2UwMDBmZjYyM2IwOWZkODVmMTkwN2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5o
CkBAIC0xOTcsNiArMTk3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGJvb2wg
cGFyc2VMaW5lQm94Q29udGFpbihib29sIGltcG9ydGFudCk7CiAKKyAgICAgICAgYm9vbCBwYXJz
ZUZvbnRGZWF0dXJlVGFnKENTU1ZhbHVlTGlzdCopOworICAgICAgICBib29sIHBhcnNlRm9udEZl
YXR1cmVTZXR0aW5ncyhib29sIGltcG9ydGFudCk7CisKICAgICAgICAgaW50IHl5cGFyc2UoKTsK
IAogICAgICAgICBDU1NQYXJzZXJTZWxlY3RvciogY3JlYXRlRmxvYXRpbmdTZWxlY3RvcigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCA5YzIwZjdmY2YyNTFjMTJk
OGIwNzVkMGIxZTUxZTU4Mzk2OGU3N2QxLi40NjU2ZTZjNjNiZTA0NTY5Y2JmOTExZTU4Njk4ODI0
ZDVhNDZmYzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1l
cy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtMjAs
NiArMjAsNyBAQCBmb250LXN0eWxlCiBmb250LXZhcmlhbnQKIGZvbnQtd2VpZ2h0CiB0ZXh0LXJl
bmRlcmluZworLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3MKIC13ZWJraXQtZm9udC1zbW9v
dGhpbmcKIC13ZWJraXQtdGV4dC1vcmllbnRhdGlvbgogLWVwdWItdGV4dC1vcmllbnRhdGlvbiA9
IC13ZWJraXQtdGV4dC1vcmllbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCmluZGV4IDY2MTM0YjlhODMxMGIzY2ZjMDQ1OWRlNWUwODU4NjQ2NmIzMDIxODIuLjc1
OTBkMzYyZTVmZmNjMzdlOWE1NzBiOGY2Mjc2ZWU4MDI3ZTY5ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJDb3Vu
dGVyLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRm9udEZhbWls
eVZhbHVlLmgiCisjaW5jbHVkZSAiRm9udEZlYXR1cmVWYWx1ZS5oIgogI2luY2x1ZGUgIkZvbnRW
YWx1ZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIK
QEAgLTM0NzksNyArMzQ4MCw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlEZWNsYXJh
dGlvbnMoYm9vbCBpc0ltcG9ydGFudCwgaW50IHN0YXJ0SW5kZXgsIGludCBlCiAKICAgICAgICAg
ICAgICAgICBpZiAoYXBwbHlGaXJzdCkgewogICAgICAgICAgICAgICAgICAgICBDT01QSUxFX0FT
U0VSVChmaXJzdENTU1Byb3BlcnR5ID09IENTU1Byb3BlcnR5Q29sb3IsIENTU19jb2xvcl9pc19m
aXJzdF9wcm9wZXJ0eSk7Ci0gICAgICAgICAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKENTU1By
b3BlcnR5Wm9vbSA9PSBDU1NQcm9wZXJ0eUNvbG9yICsgMTQsIENTU196b29tX2lzX2VuZF9vZl9m
aXJzdF9wcm9wX3JhbmdlKTsKKyAgICAgICAgICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoQ1NT
UHJvcGVydHlab29tID09IENTU1Byb3BlcnR5Q29sb3IgKyAxNSwgQ1NTX3pvb21faXNfZW5kX29m
X2ZpcnN0X3Byb3BfcmFuZ2UpOwogICAgICAgICAgICAgICAgICAgICBDT01QSUxFX0FTU0VSVChD
U1NQcm9wZXJ0eUxpbmVIZWlnaHQgPT0gQ1NTUHJvcGVydHlab29tICsgMSwgQ1NTX2xpbmVfaGVp
Z2h0X2lzX2FmdGVyX3pvb20pOwogCiAgICAgICAgICAgICAgICAgICAgIC8vIGdpdmUgc3BlY2lh
bCBwcmlvcml0eSB0byBmb250LXh4eCwgY29sb3IgcHJvcGVydGllcywgZXRjCkBAIC01MTQ5LDYg
KzUxNTAsMzQgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwg
Q1NTVmFsdWUgKnZhbHVlKQogICAgICAgICByZXR1cm47CiAjZW5kaWYKIAorICAgIC8vIENTUyBG
b250cyBNb2R1bGUgTGV2ZWwgMworICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGb250RmVhdHVy
ZVNldHRpbmdzOiB7CisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSAmJiBwcmltaXRpdmVWYWx1
ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vcm1hbCkgeworICAgICAgICAgICAgaWYgKG1fc3R5
bGUtPnNldEZvbnREZXNjcmlwdGlvbihtX3N0eWxlLT5mb250RGVzY3JpcHRpb24oKS5tYWtlTm9y
bWFsRmVhdHVyZVNldHRpbmdzKCkpKQorICAgICAgICAgICAgICAgIG1fZm9udERpcnR5ID0gdHJ1
ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghdmFsdWUt
PmlzVmFsdWVMaXN0KCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgRm9udERlc2Ny
aXB0aW9uIGZvbnREZXNjcmlwdGlvbiA9IG1fc3R5bGUtPmZvbnREZXNjcmlwdGlvbigpOworICAg
ICAgICBDU1NWYWx1ZUxpc3QqIGxpc3QgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih2YWx1
ZSk7CisgICAgICAgIFJlZlB0cjxGb250RmVhdHVyZVNldHRpbmdzPiBzZXR0aW5ncyA9IEZvbnRG
ZWF0dXJlU2V0dGluZ3M6OmNyZWF0ZSgpOworICAgICAgICBpbnQgbGVuID0gbGlzdC0+bGVuZ3Ro
KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgICAg
IENTU1ZhbHVlKiBpdGVtID0gbGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjayhpKTsKKyAgICAg
ICAgICAgIGlmICghaXRlbS0+aXNGb250RmVhdHVyZVZhbHVlKCkpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICBGb250RmVhdHVyZVZhbHVlKiBmZWF0dXJlID0gc3RhdGlj
X2Nhc3Q8Rm9udEZlYXR1cmVWYWx1ZSo+KGl0ZW0pOworICAgICAgICAgICAgc2V0dGluZ3MtPmFw
cGVuZChGb250RmVhdHVyZShmZWF0dXJlLT50YWcoKSwgZmVhdHVyZS0+dmFsdWUoKSkpOworICAg
ICAgICB9CisgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRGZWF0dXJlU2V0dGluZ3Moc2V0dGlu
Z3MucmVsZWFzZSgpKTsKKyAgICAgICAgaWYgKG1fc3R5bGUtPnNldEZvbnREZXNjcmlwdGlvbihm
b250RGVzY3JpcHRpb24pKQorICAgICAgICAgICAgbV9mb250RGlydHkgPSB0cnVlOworICAgICAg
ICByZXR1cm47CisgICAgfQorCiAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBhcmUgaW1wbGVtZW50
ZWQgaW4gdGhlIENTU1N0eWxlQXBwbHlQcm9wZXJ0eSBsb29rdXAgdGFibGUuCiAgICAgY2FzZSBD
U1NQcm9wZXJ0eUNvbG9yOgogICAgIGNhc2UgQ1NTUHJvcGVydHlEaXJlY3Rpb246CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZS5oCmluZGV4IDEwYWMzNWMzYTI3ODY1YTVjNGFlODU1YTA1MWEwODBhZGI5ZjlmNGMu
LmM1MzVkYTI1ZTExNDk2ZjAwZWEzN2U2YjEyNGQzMWIzZjAzMjM3MjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZS5oCkBAIC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNGbGV4
VmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAgICAgdmlydHVhbCBib29s
IGlzRm9udEZhbWlseVZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNGb250RmVhdHVyZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNGb250VmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCAwNTM1YjViNTkyZWQ4
MTc0ODE0MGI0NzkyZDlhNmIzMDJjNjgyOTJjLi4wNmE2YWEyMzY1NGVhZjgwNTFlNDNiMmY3MmJl
MDI2ZjkyN2YzMjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3
b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAt
ODA2LDYgKzgwNiwxMCBAQCBnbHlwaHMKIGlubGluZS1ib3gKIHJlcGxhY2VkCiAKKy8vIC13ZWJr
aXQtZm9udC1mZWF0dXJlLXNldHRpbmdzCitvbgorb2ZmCisKIC8vIGltYWdlLXJlbmRlcmluZwog
Ly9hdXRvCiAvL29wdGltaXplU3BlZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9G
b250RmVhdHVyZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iYzM2YzdjNjQ0YTNmNTkxYmEzMzcyODM0OWUzZGM4YWU5NDlhNGY0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUu
Y3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRm9udEZlYXR1cmVWYWx1ZS5oIgorCisjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCisjaW5j
bHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgi
CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0ZvbnRGZWF0dXJlVmFsdWU6OkZvbnRGZWF0dXJlVmFsdWUoY29uc3QgU3RyaW5nJiB0
YWcpCisgICAgOiBtX3RhZyh0YWcpCit7Cit9CisKK2ludCBGb250RmVhdHVyZVZhbHVlOjp2YWx1
ZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3ZhbHVlKQorICAgICAgICByZXR1cm4gMTsKKyAgICBp
ZiAobV92YWx1ZS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURF
TlQpIHsKKyAgICAgICAgc3dpdGNoIChtX3ZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgIGNh
c2UgQ1NTVmFsdWVPbjoKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBjYXNlIENTU1Zh
bHVlT2ZmOgorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAobV92YWx1ZS0+cHJpbWl0
aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKQorICAgICAgICByZXR1
cm4gbV92YWx1ZS0+Z2V0SW50VmFsdWUoKTsKKyAgICByZXR1cm4gMDsKK30KKworU3RyaW5nIEZv
bnRGZWF0dXJlVmFsdWU6OmNzc1RleHQoKSBjb25zdAoreworICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZCgiJyIpOworICAgIGJ1aWxkZXIuYXBwZW5kKG1fdGFn
KTsKKyAgICBidWlsZGVyLmFwcGVuZCgiJyIpOworICAgIGlmIChtX3ZhbHVlKSB7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCIgIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1fdmFsdWUtPmNz
c1RleHQoKSk7CisgICAgfQorICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRm9udEZlYXR1cmVWYWx1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwYjZlNTJmMTc4
OTdlNjhlZWRjMzM2NzFiZDI1ZDQwZWE3Y2JiNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRm9udEZlYXR1cmVWYWx1ZS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIEZvbnRGZWF0dXJlVmFsdWVfaAorI2RlZmluZSBGb250RmVhdHVyZVZhbHVlX2gK
KworI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGb250RmVhdHVyZVZhbHVlIDog
cHVibGljIENTU1ZhbHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxGb250RmVh
dHVyZVZhbHVlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB0YWcpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEZvbnRGZWF0dXJlVmFsdWUodGFnKSk7CisgICAgfQorCisgICAgY29u
c3QgU3RyaW5nJiB0YWcoKSBjb25zdCB7IHJldHVybiBtX3RhZzsgfQorICAgIGludCB2YWx1ZSgp
IGNvbnN0OworICAgIHZvaWQgc2V0VmFsdWUoUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4g
dmFsdWUpIHsgbV92YWx1ZSA9IHZhbHVlOyB9CisgICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgp
IGNvbnN0OworCitwcml2YXRlOgorICAgIEZvbnRGZWF0dXJlVmFsdWUoY29uc3QgU3RyaW5nJiB0
YWcpOworICAgIHZpcnR1YWwgYm9vbCBpc0ZvbnRGZWF0dXJlVmFsdWUoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CisKKyAgICBTdHJpbmcgbV90YWc7CisgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZh
bHVlPiBtX3ZhbHVlOworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcAppbmRl
eCA1OGRkZjgxOTJhNDIyZGExZWI5NTE5ZWY1N2Q5NmNmNzM2ZWFiZjIwLi40NmQxMDhmZTFhNmE3
NjRjNjMyYjQwNDYwMGIxMWFmODdkZTY2OGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAKQEAgLTk4LDQgKzk4LDExIEBA
IEZvbnRUcmFpdHNNYXNrIEZvbnREZXNjcmlwdGlvbjo6dHJhaXRzTWFzaygpIGNvbnN0CiAgICAg
CiB9CiAKK0ZvbnREZXNjcmlwdGlvbiBGb250RGVzY3JpcHRpb246Om1ha2VOb3JtYWxGZWF0dXJl
U2V0dGluZ3MoKSBjb25zdAoreworICAgIEZvbnREZXNjcmlwdGlvbiBub3JtYWxEZXNjcmlwdGlv
bigqdGhpcyk7CisgICAgbm9ybWFsRGVzY3JpcHRpb24uc2V0RmVhdHVyZVNldHRpbmdzKDApOwor
ICAgIHJldHVybiBub3JtYWxEZXNjcmlwdGlvbjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2Ny
aXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRp
b24uaAppbmRleCA1ZDUzMzg4ZGRjYjI1ODNlMWZlOTY0MjA4NmU1MGU4ZGEyNDJhYzliLi43MmM3
MmJkMzEzMmJkOTk5MGRjYzIyMWNmYmY4NWEyNDg3MmUwYTU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaApAQCAtMjYsNiArMjYs
NyBAQAogI2RlZmluZSBGb250RGVzY3JpcHRpb25faAogCiAjaW5jbHVkZSAiRm9udEZhbWlseS5o
IgorI2luY2x1ZGUgIkZvbnRGZWF0dXJlU2V0dGluZ3MuaCIKICNpbmNsdWRlICJGb250T3JpZW50
YXRpb24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgIkZvbnRT
bW9vdGhpbmdNb2RlLmgiCkBAIC0zNSw2ICszNiw4IEBACiAjaW5jbHVkZSAiVGV4dFJlbmRlcmlu
Z01vZGUuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gRm9udFdlaWdodCB7CkBAIC0x
MTQsNiArMTE3LDggQEAgcHVibGljOgogICAgIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fb3JpZW50YXRpb247IH0KICAgICBUZXh0T3JpZW50YXRpb24gdGV4
dE9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0T3JpZW50YXRpb247IH0KICAgICBG
b250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGhWYXJp
YW50OyB9CisgICAgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZVNldHRpbmdzKCkgY29uc3Qg
eyByZXR1cm4gbV9mZWF0dXJlU2V0dGluZ3MuZ2V0KCk7IH0KKyAgICBGb250RGVzY3JpcHRpb24g
bWFrZU5vcm1hbEZlYXR1cmVTZXR0aW5ncygpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRGYW1pbHko
Y29uc3QgRm9udEZhbWlseSYgZmFtaWx5KSB7IG1fZmFtaWx5TGlzdCA9IGZhbWlseTsgfQogICAg
IHZvaWQgc2V0Q29tcHV0ZWRTaXplKGZsb2F0IHMpIHsgQVNTRVJUKGlzZmluaXRlKHMpKTsgbV9j
b21wdXRlZFNpemUgPSBzOyB9CkBAIC0xMzgsNiArMTQzLDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0T3JpZW50YXRpb24oRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKSB7IG1fb3JpZW50YXRp
b24gPSBvcmllbnRhdGlvbjsgfQogICAgIHZvaWQgc2V0VGV4dE9yaWVudGF0aW9uKFRleHRPcmll
bnRhdGlvbiB0ZXh0T3JpZW50YXRpb24pIHsgbV90ZXh0T3JpZW50YXRpb24gPSB0ZXh0T3JpZW50
YXRpb247IH0KICAgICB2b2lkIHNldFdpZHRoVmFyaWFudChGb250V2lkdGhWYXJpYW50IHdpZHRo
VmFyaWFudCkgeyBtX3dpZHRoVmFyaWFudCA9IHdpZHRoVmFyaWFudDsgfQorICAgIHZvaWQgc2V0
RmVhdHVyZVNldHRpbmdzKFBhc3NSZWZQdHI8Rm9udEZlYXR1cmVTZXR0aW5ncz4gc2V0dGluZ3Mp
IHsgbV9mZWF0dXJlU2V0dGluZ3MgPSBzZXR0aW5nczsgfQogCiBwcml2YXRlOgogICAgIEZvbnRG
YW1pbHkgbV9mYW1pbHlMaXN0OyAvLyBUaGUgbGlzdCBvZiBmb250IGZhbWlsaWVzIHRvIGJlIHVz
ZWQuCkBAIC0xNTEsNiArMTU3LDggQEAgcHJpdmF0ZToKIAogICAgIEZvbnRXaWR0aFZhcmlhbnQg
bV93aWR0aFZhcmlhbnQ7CiAKKyAgICBSZWZQdHI8Rm9udEZlYXR1cmVTZXR0aW5ncz4gbV9mZWF0
dXJlU2V0dGluZ3M7CisKICAgICB1bnNpZ25lZCBtX2l0YWxpYyA6IDE7IC8vIEZvbnRJdGFsaWMK
ICAgICB1bnNpZ25lZCBtX3NtYWxsQ2FwcyA6IDE7IC8vIEZvbnRTbWFsbENhcHMKICAgICBib29s
IG1faXNBYnNvbHV0ZVNpemUgOiAxOyAgIC8vIFdoZXRoZXIgb3Igbm90IENTUyBzcGVjaWZpZWQg
YW4gZXhwbGljaXQgc2l6ZQpAQCAtMTg4LDcgKzE5Niw4IEBAIGlubGluZSBib29sIEZvbnREZXNj
cmlwdGlvbjo6b3BlcmF0b3I9PShjb25zdCBGb250RGVzY3JpcHRpb24mIG90aGVyKSBjb25zdAog
ICAgICAgICAmJiBtX2lzU3BlY2lmaWVkRm9udCA9PSBvdGhlci5tX2lzU3BlY2lmaWVkRm9udAog
ICAgICAgICAmJiBtX29yaWVudGF0aW9uID09IG90aGVyLm1fb3JpZW50YXRpb24KICAgICAgICAg
JiYgbV90ZXh0T3JpZW50YXRpb24gPT0gb3RoZXIubV90ZXh0T3JpZW50YXRpb24KLSAgICAgICAg
JiYgbV93aWR0aFZhcmlhbnQgPT0gb3RoZXIubV93aWR0aFZhcmlhbnQ7CisgICAgICAgICYmIG1f
d2lkdGhWYXJpYW50ID09IG90aGVyLm1fd2lkdGhWYXJpYW50CisgICAgICAgICYmIG1fZmVhdHVy
ZVNldHRpbmdzID09IG90aGVyLm1fZmVhdHVyZVNldHRpbmdzOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3Mu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM3MTMzMjJmNGM4MmViZjNjYzc1ZTgxMGNlZDM4ZGNmOTE1MzA5M2UK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
RmVhdHVyZVNldHRpbmdzLmNwcApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkZvbnRGZWF0dXJlU2V0dGluZ3MuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitGb250RmVhdHVyZTo6Rm9udEZlYXR1cmUoY29uc3QgQXRvbWljU3RyaW5n
JiB0YWcsIGludCB2YWx1ZSkKKyAgICA6IG1fdGFnKHRhZykKKyAgICAsIG1fdmFsdWUodmFsdWUp
Cit7Cit9CisKK2Jvb2wgRm9udEZlYXR1cmU6Om9wZXJhdG9yPT0oY29uc3QgRm9udEZlYXR1cmUm
IG90aGVyKQoreworICAgIHJldHVybiBtX3RhZyA9PSBvdGhlci5tX3RhZyAmJiBtX3ZhbHVlID09
IG90aGVyLm1fdmFsdWU7Cit9CisKK0ZvbnRGZWF0dXJlU2V0dGluZ3M6OkZvbnRGZWF0dXJlU2V0
dGluZ3MoKQoreworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODAzNjNiOTU4ZjdhMWE2
ZTllM2MxYWY5ZGJiZWY3MTNiMTAxNWYxYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuaApAQCAtMCwwICsxLDY4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBGb250RmVhdHVyZVNldHRpbmdzX2gKKyNkZWZpbmUgRm9u
dEZlYXR1cmVTZXR0aW5nc19oCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGb250RmVhdHVyZSB7CitwdWJsaWM6CisgICAgRm9u
dEZlYXR1cmUoY29uc3QgQXRvbWljU3RyaW5nJiB0YWcsIGludCB2YWx1ZSk7CisgICAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IEZvbnRGZWF0dXJlJik7CisKKyAgICBjb25zdCBBdG9taWNTdHJpbmcm
IHRhZygpIGNvbnN0IHsgcmV0dXJuIG1fdGFnOyB9CisgICAgaW50IHZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gbV92YWx1ZTsgfQorCitwcml2YXRlOgorICAgIEF0b21pY1N0cmluZyBtX3RhZzsKKyAg
ICBpbnQgbV92YWx1ZTsKK307CisKK2NsYXNzIEZvbnRGZWF0dXJlU2V0dGluZ3MgOiBwdWJsaWMg
UmVmQ291bnRlZDxGb250RmVhdHVyZVNldHRpbmdzPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8Rm9udEZlYXR1cmVTZXR0aW5ncz4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgRm9udEZlYXR1cmVTZXR0aW5ncygpKTsKKyAgICB9CisgICAgdm9p
ZCBhcHBlbmQoY29uc3QgRm9udEZlYXR1cmUmIGZlYXR1cmUpIHsgbV9saXN0LmFwcGVuZChmZWF0
dXJlKTsgfQorICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsg
fQorICAgIGNvbnN0IEZvbnRGZWF0dXJlJiBvcGVyYXRvcltdKGludCBpbmRleCkgY29uc3QgeyBy
ZXR1cm4gbV9saXN0W2luZGV4XTsgfQorICAgIGNvbnN0IEZvbnRGZWF0dXJlJiBhdChzaXplX3Qg
aW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5hdChpbmRleCk7IH0KKworcHJpdmF0ZToKKyAg
ICBGb250RmVhdHVyZVNldHRpbmdzKCk7CisgICAgVmVjdG9yPEZvbnRGZWF0dXJlPiBtX2xpc3Q7
Cit9OworCit9CisKKyNlbmRpZiAvLyBGb250RmVhdHVyZVNldHRpbmdzX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102648</attachid>
            <date>2011-08-02 07:43:37 -0700</date>
            <delta_ts>2011-08-03 02:18:29 -0700</delta_ts>
            <desc>Patch V5</desc>
            <filename>bug-63618-20110802234335.patch</filename>
            <type>text/plain</type>
            <size>44905</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIxNTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkODc3YzQ4NzM5MjQ3OTk4YjAxMGI0
M2UyOTJlN2Y0NDQ1M2FlYmFkLi42NmU2ZjA2OTI0ZTMxYTRlODg2MTE1ZDE0Y2RiYWFlYzliMGI2
NzEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgtMDIgIEtlbmljaGkgSXNoaWJhc2hp
ICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFBhcnNpbmcgQ1NTMyBmb250LWZlYXR1
cmUtc2V0dGluZ3MgcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYzNjE4CisKKyAgICAgICAgQWRkIHBhcnNpbmcgdGVzdCBjYXNlIGZvciAt
d2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyBwcm9wZXJ0eS4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzczMvZm9udC1mZWF0dXJlLXNldHRp
bmdzLXBhcnNpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZvbnQtZmVh
dHVyZS1zZXR0aW5ncy1wYXJzaW5nLmh0bWw6IEFkZGVkLgorCiAyMDExLTA4LTAxICBDaHJpcyBS
b2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CiAKICAgICAgICAgT25lIG1vcmUgdGVzdF9leHBl
Y3RhdGlvbnMudHh0IGZpeCBmb3Igd2luZG93cyB3ZWIgYXVkaW8KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcGFyc2luZy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmZmZmZmN2UzODRkMTRkMTgzMjAzYTkxNTQxYjQ2ZjBhMGNjY2RmMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdz
LXBhcnNpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzUgQEAKK1Rlc3QgcGFyc2luZyBvZiB0
aGUgQ1NTMyBmb250LWZlYXR1cmUtc2V0dGluZ3MgcHJvcGVydHkuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCistIFRlc3RzIHZhbGlkIGlucHV0cy4KK1BBU1MgcGFyc2VSZXN1bHRP
ZigidmFsaWQxIikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigidmFsaWQyIikgaXMg
IidkbGlnJyAxIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJ2YWxpZDMiKSBpcyAiJ3NtY3AnIDEiCitQ
QVNTIHBhcnNlUmVzdWx0T2YoInZhbGlkNCIpIGlzICInYzJzYycgMSIKK1BBU1MgcGFyc2VSZXN1
bHRPZigidmFsaWQ1IikgaXMgIidsaWdhJyAwIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJ2YWxpZDYi
KSBpcyAiJ3RudW0nIDEsICdoaXN0JyAxIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJ2YWxpZDciKSBp
cyAiJ1BLUk4nIDEiCitQQVNTIHBhcnNlUmVzdWx0T2YoInZhbGlkOCIpIGlzICInZGxpZycgMSIK
K1BBU1MgcGFyc2VSZXN1bHRPZigidmFsaWQ5IikgaXMgIidkbGlnJyAxLCAnc21jcCcgMSwgJ2xp
Z2EnIDAiCistIFRlc3RzIGludmFsaWQgaW5wdXRzLiAgUmVzdWx0cyBzaG91bGQgYmUgIm5vcm1h
bCIuCitQQVNTIHBhcnNlUmVzdWx0T2YoImludmFsaWQxIikgaXMgIm5vcm1hbCIKK1BBU1MgcGFy
c2VSZXN1bHRPZigiaW52YWxpZDIiKSBpcyAibm9ybWFsIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJp
bnZhbGlkMyIpIGlzICJub3JtYWwiCitQQVNTIHBhcnNlUmVzdWx0T2YoImludmFsaWQ0IikgaXMg
Im5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigiaW52YWxpZDUiKSBpcyAibm9ybWFsIgorUEFT
UyBwYXJzZVJlc3VsdE9mKCJpbnZhbGlkNiIpIGlzICJub3JtYWwiCitQQVNTIHBhcnNlUmVzdWx0
T2YoImludmFsaWQ3IikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigiaW52YWxpZDgi
KSBpcyAibm9ybWFsIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJpbnZhbGlkOSIpIGlzICJub3JtYWwi
CitQQVNTIHBhcnNlUmVzdWx0T2YoImludmFsaWQxMCIpIGlzICJub3JtYWwiCitQQVNTIHBhcnNl
UmVzdWx0T2YoImludmFsaWQxMSIpIGlzICJub3JtYWwiCitQQVNTIHBhcnNlUmVzdWx0T2YoImlu
dmFsaWQxMiIpIGlzICJub3JtYWwiCistIFRlc3RzIGluaGVyaXQuCitQQVNTIHBhcnNlUmVzdWx0
T2YoIm91dGVyIikgaXMgIidkbGlnJyAxIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJpbm5lciIpIGlz
ICInZGxpZycgMSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5n
cy1wYXJzaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1w
YXJzaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBiYzU3MTc4Yjc4OTIwOGM0ODEzMmVlNmIxZDRkYzBj
MzVmZjJkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZm9udC1mZWF0dXJl
LXNldHRpbmdzLXBhcnNpbmcuaHRtbApAQCAtMCwwICsxLDE2MiBAQAorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyN2YWxpZDEgeworICAgIC13ZWJraXQtZm9udC1m
ZWF0dXJlLXNldHRpbmdzOiBub3JtYWw7Cit9CisKKyN2YWxpZDIgeworICAgIC13ZWJraXQtZm9u
dC1mZWF0dXJlLXNldHRpbmdzOiAiZGxpZyIgMTsKK30KKworI3ZhbGlkMyB7CisgICAgLXdlYmtp
dC1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICJzbWNwIiBvbjsKK30KKworI3ZhbGlkNCB7CisgICAg
LXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICJjMnNjIjsKK30KKworI3ZhbGlkNSB7Cisg
ICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICJsaWdhIiBvZmY7Cit9CisKKyN2YWxp
ZDYgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiAidG51bSIsICdoaXN0JzsK
K30KKworI3ZhbGlkNyB7CisgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICdQS1JO
JzsKK30KKworI3ZhbGlkOCB7CisgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IGRs
aWc7Cit9CisKKyN2YWxpZDkgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiAi
ZGxpZyIgMSwgJ3NtY3AnIG9uLCBsaWdhIG9mZjsKK30KKworI2ludmFsaWQxIHsKKyAgICAtd2Vi
a2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogMTsKK30KKworI2ludmFsaWQyIHsKKyAgICAtd2Vi
a2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogb2ZmOworfQorCisjaW52YWxpZDMgeworICAgIC13
ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiBhYWFhYTsKK30KKworI2ludmFsaWQ0IHsKKyAg
ICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogImFhYWFhIjsKK30KKworI2ludmFsaWQ1
IHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogYWFhYSAtMTsKK30KKworI2lu
dmFsaWQ2IHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogYWFhYSAiYmJiYiI7
Cit9CisKKyNpbnZhbGlkNyB7CisgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IGFh
YWEgYmJiYjsKK30KKworI2ludmFsaWQ4IHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0
aW5nczogYWFhYSwgb247Cit9CisKKyNpbnZhbGlkOSB7CisgICAgLXdlYmtpdC1mb250LWZlYXR1
cmUtc2V0dGluZ3M6ICJhYWFhIiAxLCAiYmJiYiIsIDA7Cit9CisKKyNpbnZhbGlkMTAgeworICAg
IC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiAsOworfQorCisjaW52YWxpZDExIHsKKyAg
ICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogYWFhYSw7Cit9CisKKyNpbnZhbGlkMTIg
eworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiAsYWFhYTsKK30KKzwvc3R5bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InZhbGlkMSI+PC9kaXY+Cis8ZGl2IGlkPSJ2YWxp
ZDIiPjwvZGl2PgorPGRpdiBpZD0idmFsaWQzIj48L2Rpdj4KKzxkaXYgaWQ9InZhbGlkNCI+PC9k
aXY+Cis8ZGl2IGlkPSJ2YWxpZDUiPjwvZGl2PgorPGRpdiBpZD0idmFsaWQ2Ij48L2Rpdj4KKzxk
aXYgaWQ9InZhbGlkNyI+PC9kaXY+Cis8ZGl2IGlkPSJ2YWxpZDgiPjwvZGl2PgorPGRpdiBpZD0i
dmFsaWQ5Ij48L2Rpdj4KKworPGRpdiBpZD0iaW52YWxpZDEiPjwvZGl2PgorPGRpdiBpZD0iaW52
YWxpZDIiPjwvZGl2PgorPGRpdiBpZD0iaW52YWxpZDMiPjwvZGl2PgorPGRpdiBpZD0iaW52YWxp
ZDQiPjwvZGl2PgorPGRpdiBpZD0iaW52YWxpZDUiPjwvZGl2PgorPGRpdiBpZD0iaW52YWxpZDYi
PjwvZGl2PgorPGRpdiBpZD0iaW52YWxpZDciPjwvZGl2PgorPGRpdiBpZD0iaW52YWxpZDgiPjwv
ZGl2PgorPGRpdiBpZD0iaW52YWxpZDkiPjwvZGl2PgorPGRpdiBpZD0iaW52YWxpZDEwIj48L2Rp
dj4KKzxkaXYgaWQ9ImludmFsaWQxMSI+PC9kaXY+Cis8ZGl2IGlkPSJpbnZhbGlkMTIiPjwvZGl2
PgorCis8ZGl2IGlkPSJvdXRlciIgc3R5bGU9Ii13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdz
OiBkbGlnOyI+CisgIDxkaXYgaWQ9ImlubmVyIj48L2Rpdj4KKzwvZGl2PgorCis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCdUZXN0IHBhcnNpbmcgb2YgdGhlIENTUzMgZm9udC1mZWF0dXJlLXNldHRpbmdzIHBy
b3BlcnR5LicpOworCitmdW5jdGlvbiBwYXJzZVJlc3VsdE9mKGlkKSB7CisgICAgdmFyIGVsZW1l
bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgcmV0dXJuIHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGVsZW1lbnQpWyctd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyddOwor
fQorCitkZWJ1ZygnLSBUZXN0cyB2YWxpZCBpbnB1dHMuJyk7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3BhcnNlUmVzdWx0T2YoInZhbGlkMSIpJywgIm5vcm1hbCIpOworc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCdwYXJzZVJlc3VsdE9mKCJ2YWxpZDIiKScsICInZGxpZycgMSIpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdwYXJzZVJlc3VsdE9mKCJ2YWxpZDMiKScsICInc21jcCcgMSIpOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCdwYXJzZVJlc3VsdE9mKCJ2YWxpZDQiKScsICInYzJzYycgMSIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYXJzZVJlc3VsdE9mKCJ2YWxpZDUiKScsICInbGln
YScgMCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYXJzZVJlc3VsdE9mKCJ2YWxpZDYiKScs
ICIndG51bScgMSwgJ2hpc3QnIDEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygncGFyc2VSZXN1
bHRPZigidmFsaWQ3IiknLCAiJ1BLUk4nIDEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygncGFy
c2VSZXN1bHRPZigidmFsaWQ4IiknLCAiJ2RsaWcnIDEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygncGFyc2VSZXN1bHRPZigidmFsaWQ5IiknLCAiJ2RsaWcnIDEsICdzbWNwJyAxLCAnbGlnYScg
MCIpOworCitkZWJ1ZygnLSBUZXN0cyBpbnZhbGlkIGlucHV0cy4gIFJlc3VsdHMgc2hvdWxkIGJl
ICJub3JtYWwiLicpOworc2hvdWxkQmUoJ3BhcnNlUmVzdWx0T2YoImludmFsaWQxIiknLCAnIm5v
cm1hbCInKTsKK3Nob3VsZEJlKCdwYXJzZVJlc3VsdE9mKCJpbnZhbGlkMiIpJywgJyJub3JtYWwi
Jyk7CitzaG91bGRCZSgncGFyc2VSZXN1bHRPZigiaW52YWxpZDMiKScsICcibm9ybWFsIicpOwor
c2hvdWxkQmUoJ3BhcnNlUmVzdWx0T2YoImludmFsaWQ0IiknLCAnIm5vcm1hbCInKTsKK3Nob3Vs
ZEJlKCdwYXJzZVJlc3VsdE9mKCJpbnZhbGlkNSIpJywgJyJub3JtYWwiJyk7CitzaG91bGRCZSgn
cGFyc2VSZXN1bHRPZigiaW52YWxpZDYiKScsICcibm9ybWFsIicpOworc2hvdWxkQmUoJ3BhcnNl
UmVzdWx0T2YoImludmFsaWQ3IiknLCAnIm5vcm1hbCInKTsKK3Nob3VsZEJlKCdwYXJzZVJlc3Vs
dE9mKCJpbnZhbGlkOCIpJywgJyJub3JtYWwiJyk7CitzaG91bGRCZSgncGFyc2VSZXN1bHRPZigi
aW52YWxpZDkiKScsICcibm9ybWFsIicpOworc2hvdWxkQmUoJ3BhcnNlUmVzdWx0T2YoImludmFs
aWQxMCIpJywgJyJub3JtYWwiJyk7CitzaG91bGRCZSgncGFyc2VSZXN1bHRPZigiaW52YWxpZDEx
IiknLCAnIm5vcm1hbCInKTsKK3Nob3VsZEJlKCdwYXJzZVJlc3VsdE9mKCJpbnZhbGlkMTIiKScs
ICcibm9ybWFsIicpOworCitkZWJ1ZygnLSBUZXN0cyBpbmhlcml0LicpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdwYXJzZVJlc3VsdE9mKCJvdXRlciIpJywgIidkbGlnJyAxIik7CitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ3BhcnNlUmVzdWx0T2YoImlubmVyIiknLCAiJ2RsaWcnIDEiKTsKKwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA1M2JlZGI0Yjk0Njg5NzRkNTUwNTMyZmVm
OWQ3MWExNDM5ZWIzODI2Li4zOTZhMjE2MjRlMjEwNDZmYzI0YjFlNTZiZWRmNzg5ZWFiMzE3NDZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDY1LDYgKzQ2NSw3IEBAIFNFVChXZWJDb3JlX1NP
VVJDRVMKICAgICBjc3MvQ1NTVW5pY29kZVJhbmdlVmFsdWUuY3BwCiAgICAgY3NzL0NTU1ZhbHVl
TGlzdC5jcHAKICAgICBjc3MvRm9udEZhbWlseVZhbHVlLmNwcAorICAgIGNzcy9Gb250RmVhdHVy
ZVZhbHVlLmNwcAogICAgIGNzcy9Gb250VmFsdWUuY3BwCiAgICAgY3NzL01lZGlhRmVhdHVyZU5h
bWVzLmNwcAogICAgIGNzcy9NZWRpYUxpc3QuY3BwCkBAIC0xMDYwLDYgKzEwNjEsNyBAQCBTRVQo
V2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbGxiYWNrTGlzdC5j
cHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVy
ZVNldHRpbmdzLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmNwcAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmNwcAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL0dyYWRpZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ3YjQyYjNkZWI4ZDgwNjFjN2U1
NmRmMjg2NTMxMWVjZWU5ZWYyNzcuLjIxZGZhOWRhZTQ5NDdlNDg2MTA0YmFlZGVkOGY4YTZiODU2
ZTU0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NCBAQAorMjAxMS0wOC0wMiAgS2VuaWNoaSBJ
c2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUGFyc2luZyBDU1MzIGZv
bnQtZmVhdHVyZS1zZXR0aW5ncyBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM2MTgKKworICAgICAgICBJbnRyb2R1Y2VzIENTUzMgZm9u
dC1mZWF0dXJlLXNldHRpbmdzIHByb3BlcnR5IGFzIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRp
bmdzLiAgVGhpcyBjaGFuZ2Ugb25seSBjb250YWlucyBwYXJzaW5nIGFuZCBwYXJ0LiAgUGFyc2Vk
IGluZm9ybWF0aW9uIGFyZSBzdG9yZWQgaW4gRm9udERlc2NyaXB0aW9uIGNsYXNzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGNzczMvZm9u
dC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmcuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6IEFkZGVkIEZvbnRGZWF0dXJlVmFsdWUue2gsY3BwfSBhbmQgRm9udEZlYXR1cmVTZXR0aW5n
cy57aCxjcHB9LgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgor
ICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIGNz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKTogQWRkZWQgQ1NT
UHJvcGVydHlXZWJraXRGb250RmVhdHVyZVNldHRpbmdzLgorICAgICAgICAqIGNzcy9DU1NQYXJz
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKTogQWRkZWQg
cGFyc2luZyBjb2RlIGZvciAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncy4KKyAgICAgICAg
KFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGb250RmVhdHVyZVRhZyk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUZvbnRGZWF0dXJlU2V0dGluZ3MpOiBBZGRlZC4K
KyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6IEFkZGVkIHBhcnNlRm9udEZlYXR1cmVTZXR0aW5n
cygpLgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eU5hbWVzLmluOiBBZGRlZCAtd2Via2l0LWZv
bnQtZmVhdHVyZS1zZXR0aW5ncy4KKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseURlY2xhcmF0aW9ucyk6
IE1vZGlmaWVkIGEgY29tcGlsZSBhc3NlcnQgdG8gZm9sbG93IGFkZGluZyAtd2Via2l0LWZvbnQt
ZmVhdHVyZS1zZXR0aW5ncy4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFw
cGx5UHJvcGVydHkpOiBBZGRlZCBhIGNhc2UgY2xhdXNlIGZvciBDU1NQcm9wZXJ0eVdlYmtpdEZv
bnRGZWF0dXJlU2V0dGluZ3MuCisgICAgICAgICogY3NzL0NTU1ZhbHVlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NWYWx1ZTo6aXNGb250RmVhdHVyZVZhbHVlKTogQWRkZWQuCisgICAgICAgICog
Y3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46IEFkZGVkICdvbicgYW5kICdvZmYnIGtleXdvcmRzLgor
ICAgICAgICAqIGNzcy9Gb250RmVhdHVyZVZhbHVlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpGb250RmVhdHVyZVZhbHVlOjpGb250RmVhdHVyZVZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRGZWF0dXJlVmFsdWU6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0
dXJlVmFsdWU6OmNzc1RleHQpOgorICAgICAgICAqIGNzcy9Gb250RmVhdHVyZVZhbHVlLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVWYWx1ZTo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlVmFsdWU6OnRhZyk6CisgICAgICAgIChXZWJDb3JlOjpG
b250RmVhdHVyZVZhbHVlOjpzZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVy
ZVZhbHVlOjppc0ZvbnRGZWF0dXJlVmFsdWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0ZvbnREZXNjcmlwdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246
Om1ha2VOb3JtYWxGZWF0dXJlU2V0dGluZ3MpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9Gb250RGVzY3JpcHRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlw
dGlvbjo6Rm9udERlc2NyaXB0aW9uKTogQWRkZWQgbV9mZWF0dXJlU2V0dGluZ3MgbWVtYmVyIHZh
cmlhYmxlLgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpmZWF0dXJlU2V0dGlu
Z3MpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6c2V0RmVhdHVy
ZVNldHRpbmdzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246Om9w
ZXJhdG9yPT0pOiBNb2RpZmllZCB0byB0YWtlIGludG8gYWNjb3VudCBtX2ZlYXR1cmVTZXR0aW5n
cworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlOjpGb250RmVhdHVyZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGb250RmVhdHVyZTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRGZWF0dXJlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJl
U2V0dGluZ3M6OkZvbnRGZWF0dXJlU2V0dGluZ3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGb250
RmVhdHVyZTo6dGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlOjp2YWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVyZVNldHRpbmdzOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udEZlYXR1cmVTZXR0aW5nczo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRGZWF0dXJlU2V0dGluZ3M6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1
cmVTZXR0aW5nczo6b3BlcmF0b3JbXSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVyZVNl
dHRpbmdzOjphdCk6CisKIDIwMTEtMDgtMDEgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByOTIwMjIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQppbmRleCBiMzg4YTM2OTlkYjY2YTZjZjRkZGY5OTBhOWIzM2JkNjU0NGM2
ZmUyLi40YWE3NDYyODI1Mzc5NzFmODIyNzIyZjYxZjJhZmYyYTEwMzE1M2U0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTEwMTEsNiArMTAxMSw4IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0Rhc2hib2FyZFJlZ2lvbi5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9jc3MvRm9udEZhbWlseVZhbHVlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0Zv
bnRGYW1pbHlWYWx1ZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZlYXR1cmVWYWx1ZS5j
cHAgXAorCVNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVlLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2Nzcy9Gb250VmFsdWUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udFZhbHVl
LmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5jcHAgXApAQCAtMjQ5
Miw2ICsyNDk0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udEZhbWlseS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250RmFzdFBhdGguY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250RmVhdHVyZVNldHRpbmdzLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udEZlYXR1cmVTZXR0aW5ncy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRNZXRy
aWNzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRPcmllbnRhdGlv
bi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA1NGM5YTM0ZDNiNWIyYWMxMTUzNzAwZGM4MjUxNDBl
NmFmNzI5YjAyLi44ODcwZjc3ZmIwNzYyYWU5OWIwODYwYTE4NDQ0ZWUxMWEyMjZmYmI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC03MzcsNiArNzM3LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9Gb250RGVzY3JpcHRpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udEZhbGxiYWNrTGlzdC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9G
b250RmFtaWx5LmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJl
U2V0dGluZ3MuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udE1ldHJpY3Mu
aCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udE9yaWVudGF0aW9uLmgnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRSZW5kZXJpbmdNb2RlLmgnLApAQCAt
MjM4Miw2ICsyMzgzLDggQEAKICAgICAgICAgICAgICdjc3MvRGFzaGJvYXJkUmVnaW9uLmgnLAog
ICAgICAgICAgICAgJ2Nzcy9Gb250RmFtaWx5VmFsdWUuY3BwJywKICAgICAgICAgICAgICdjc3Mv
Rm9udEZhbWlseVZhbHVlLmgnLAorICAgICAgICAgICAgJ2Nzcy9Gb250RmVhdHVyZVZhbHVlLmNw
cCcsCisgICAgICAgICAgICAnY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaCcsCiAgICAgICAgICAgICAn
Y3NzL0ZvbnRWYWx1ZS5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9Gb250VmFsdWUuaCcsCiAgICAg
ICAgICAgICAnY3NzL01lZGlhRmVhdHVyZU5hbWVzLmNwcCcsCkBAIC0zMzM3LDYgKzMzNDAsNyBA
QAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3QuY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcCcsCisgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA3YTNi
ZWYxNmY1NzZkNjNiYjQyNDU4NzA1YmYzNjFiODZjNGM3YTFmLi5hMDM0ZWRmMTA1ZWU4OWUyZmNm
OWJlM2NiMWUyMzNiMmMwMGFhZmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNDI4LDYgKzQyOCw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIGNzcy9DU1NVbmljb2RlUmFuZ2VWYWx1ZS5jcHAgXAogICAgIGNz
cy9DU1NWYWx1ZUxpc3QuY3BwIFwKICAgICBjc3MvRm9udEZhbWlseVZhbHVlLmNwcCBcCisgICAg
Y3NzL0ZvbnRGZWF0dXJlVmFsdWUuY3BwIFwKICAgICBjc3MvRm9udFZhbHVlLmNwcCBcCiAgICAg
Y3NzL01lZGlhRmVhdHVyZU5hbWVzLmNwcCBcCiAgICAgY3NzL01lZGlhTGlzdC5jcHAgXApAQCAt
OTc3LDYgKzk3OCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRE
ZXNjcmlwdGlvbi5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3Qu
Y3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcCBcCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0JpdG1hcEltYWdlLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwIFwK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50M0QuY3BwIFwKQEAgLTE0MjMsNiArMTQy
NSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGNzcy9DU1NVbmljb2RlUmFuZ2VWYWx1ZS5oIFwKICAg
ICBjc3MvQ1NTVmFsdWVMaXN0LmggXAogICAgIGNzcy9Gb250RmFtaWx5VmFsdWUuaCBcCisgICAg
Y3NzL0ZvbnRGZWF0dXJlVmFsdWUuaCBcCiAgICAgY3NzL0ZvbnRWYWx1ZS5oIFwKICAgICBjc3Mv
TWVkaWFGZWF0dXJlTmFtZXMuaCBcCiAgICAgY3NzL01lZGlhTGlzdC5oIFwKQEAgLTE5NzcsNiAr
MTk4MCw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREYXRhLmgg
XAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oIFwKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250RmFtaWx5LmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0
dXJlU2V0dGluZ3MuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udE1ldHJpY3MuaCBcCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HZW5l
cmF0ZWRJbWFnZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggOTFmMmZhNTJlMzE4MWU3ZjE0YTFmYzM5ZWFlMzI3MjQxMGEzZWZlNC4uNzY5
YzU2Y2YwNGJhOGJlNDdiMTdhZDkwYzNmOGZmMGNkYTVkMDMzMCAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI3NTg1LDYgKzI3NTg1LDE0IEBA
CiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxw
bGF0Zm9ybVxncmFwaGljc1xGb250RmVhdHVyZVNldHRpbmdzLmNwcCIKKwkJCQkJPgorCQkJCTwv
RmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNz
XEZvbnRGZWF0dXJlU2V0dGluZ3MuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQog
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZvbnRGYXN0UGF0aC5jcHAi
CiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBAIC0zMjk1MCw2ICszMjk1OCwxNCBAQAogCQkJCT4KIAkJ
CTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcRm9udEZlYXR1cmVW
YWx1ZS5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGNzc1xGb250RmVhdHVyZVZhbHVlLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xGb250VmFsdWUuY3BwIgogCQkJCT4KIAkJCTwvRmls
ZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA2ODIxOTU5NDVhMWI4ZmYxMWE5MTExMjM2YmRjMWZlM2ZjMWUwZjJiLi5kMWE1MTk0
OTdlYjIwN2U5NDY4M2M2YWU1NDk1MzJmNmUyYThhOTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjY5LDYgKzEyNjksMTAg
QEAKIAkJNDlGRkJGNDAxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUZGQkYzRTExQzkzRUUzMDA2
QTcxMTggLyogV2ViR0xMYXllci5tbSAqLzsgfTsKIAkJNEEwREEyRkUxMjlCMjQxOTAwQUI2MUUx
IC8qIEZvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0QTBEQTJGQzEyOUIyNDE5MDBBQjYxRTEgLyogRm9ybUFzc29j
aWF0ZWRFbGVtZW50LmNwcCAqLzsgfTsKIAkJNEEwREEyRkYxMjlCMjQxOTAwQUI2MUUxIC8qIEZv
cm1Bc3NvY2lhdGVkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNEEwREEyRkQxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1Bc3NvY2lhdGVkRWxl
bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTRBNkU5RkMzMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNkU5RkMxMTNDMTdEMUQw
MDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmNwcCAqLzsgfTsKKwkJNEE2RTlGQzQxM0MxN0Qx
RDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNkU5RkMyMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVh
dHVyZVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJNEE2RTlGQzcxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2RTlGQzUx
M0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwICovOyB9OworCQk0QTZF
OUZDODEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2RTlGQzYxM0MxN0Q1NzAwNDZB
N0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0QThDOTZFQjBCRTY5MDMyMDA0RUVGRjAgLyogRnJhbWVT
ZWxlY3Rpb25NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0QThDOTZFQTBCRTY5MDMyMDA0RUVGRjAgLyogRnJhbWVTZWxlY3Rpb25NYWMubW0gKi87
IH07CiAJCTRBQ0JDMEJFMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEFDQkMwQkMxMjcxM0NCRDAw
OTRGOUIyIC8qIENsYXNzTGlzdC5jcHAgKi87IH07CiAJCTRBQ0JDMEJGMTI3MTNDQkQwMDk0RjlC
MiAvKiBDbGFzc0xpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRBQ0JDMEJEMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuaCAqLzsgfTsKQEAg
LTc4NDYsNiArNzg1MCwxMCBAQAogCQk0OUZGQkYzRTExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xM
YXllci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkdMTGF5
ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBMERBMkZDMTI5QjI0MTkwMEFC
NjFFMSAvKiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNEEwREEyRkQxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1Bc3NvY2lhdGVk
RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtQXNzb2NpYXRl
ZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE2RTlGQzExM0MxN0Qx
RDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRm9udEZlYXR1cmVWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTRBNkU5RkMyMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRGZWF0dXJlVmFsdWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE2RTlGQzUxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZv
bnRGZWF0dXJlU2V0dGluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRm9udEZlYXR1cmVTZXR0aW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTRBNkU5RkM2MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBmaWxlRW5jb2RpbmcgPSA0OyBwYXRoID0gRm9udEZlYXR1cmVTZXR0aW5ncy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0QThDOTZFQTBCRTY5MDMyMDA0RUVGRjAgLyogRnJhbWVT
ZWxlY3Rpb25NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0g
RnJhbWVTZWxlY3Rpb25NYWMubW07IHBhdGggPSBtYWMvRnJhbWVTZWxlY3Rpb25NYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBQ0JDMEJDMTI3MTNDQkQwMDk0RjlCMiAvKiBD
bGFzc0xpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xhc3NM
aXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEFDQkMwQkQxMjcxM0NCRDAw
OTRGOUIyIC8qIENsYXNzTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
bGFzc0xpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTQyLDYgKzE4MTUw
LDggQEAKIAkJCQlCMkMzREE1ODBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udEZhbWlseS5jcHAgKi8s
CiAJCQkJQjJDM0RBNTkwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRGYW1pbHkuaCAqLywKIAkJCQk3
MjYyNkUwMTBFRjAyMkZFMDBBMDdFMjAgLyogRm9udEZhc3RQYXRoLmNwcCAqLywKKwkJCQk0QTZF
OUZDNTEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgKi8sCisJCQkJ
NEE2RTlGQzYxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuaCAqLywKIAkJ
CQkwODQ1NjgwNzEyQjkwREE2MDA5NjBBOUYgLyogRm9udE1ldHJpY3MuaCAqLywKIAkJCQlGN0Ew
MzRDMzEyNkJGNkJFMDA3REMxOUUgLyogRm9udE9yaWVudGF0aW9uLmggKi8sCiAJCQkJODRCNjI2
ODQxMzMxMzhGOTAwOTVBNDg5IC8qIEZvbnRQbGF0Zm9ybURhdGEuY3BwICovLApAQCAtMTkzNTQs
NiArMTkzNjQsOCBAQAogCQkJCUE4MEU2Q0M5MEExOTg5Q0EwMDdGQjhDNSAvKiBGb250RmFtaWx5
VmFsdWUuaCAqLywKIAkJCQlBODBFNkNDNzBBMTk4OUNBMDA3RkI4QzUgLyogRm9udFZhbHVlLmNw
cCAqLywKIAkJCQlBODBFNkNDMzBBMTk4OUNBMDA3RkI4QzUgLyogRm9udFZhbHVlLmggKi8sCisJ
CQkJNEE2RTlGQzExM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuY3BwICovLAor
CQkJCTRBNkU5RkMyMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmggKi8sCiAJ
CQkJQ0Q0RTBBRkExMUY3QkMyNzAwOUQzODExIC8qIGZ1bGxzY3JlZW4uY3NzICovLAogCQkJCUNE
QkQ5M0JBMTMzM0JENEIwMDI1NzBFMyAvKiBmdWxsc2NyZWVuUXVpY2tUaW1lLmNzcyAqLywKIAkJ
CQk5M0NBNEM5OTA5REY5M0ZBMDBERjg2NzcgLyogaHRtbC5jc3MgKi8sCkBAIC0yMTM3MSw2ICsy
MTM4Myw4IEBACiAJCQkJQjJDM0RBNjgwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRGYWxsYmFja0xp
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTZBMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250
RmFtaWx5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNGMzBBMTk4OUNBMDA3RkI4QzUgLyog
Rm9udEZhbWlseVZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTZFOUZDNDEzQzE3RDFEMDA0
NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEE2RTlGQzgx
M0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA4NDU2ODA4MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmljcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRjdBMDM0QzQxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRhdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjUzMjBENkIxMjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQbGF0Zm9y
bURhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjQzMTEsNiArMjQzMjUsOCBAQAogCQkJCUIyQzNE
QTY5MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250RmFtaWx5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4MEU2Q0VDMEExOTg5Q0EwMDdGQjhDNSAvKiBGb250RmFtaWx5VmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNzI2MjZFMDIwRUYwMjJGRTAwQTA3RTIwIC8qIEZvbnRGYXN0UGF0aC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk0QTZFOUZDMzEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1
cmVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0QTZFOUZDNzEzQzE3RDU3MDA0NkE3Rjgg
LyogRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkFGRkM4MDBE
MDBBNUMxMDAzMDA3NEQgLyogRm9udE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg0QjYyNjg1
MTMzMTM4RjkwMDk1QTQ4OSAvKiBGb250UGxhdGZvcm1EYXRhLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUI1MzIwRDZDMTIyQTI0RTkwMDJEMTQ0MCAvKiBGb250UGxhdGZvcm1EYXRhQ29jb2EubW0g
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggNWU3MTBkNzRjZDVjNDhiZjI4MTUxZTQ4ZjU3ODA2MjE3
NmRjYWU1Ny4uMWY3NjExMDdiZDEzZjM4MTVkZTg4NzIwNWUwMDAyNzRjNDc3MzljYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
QEAgLTQyLDYgKzQyLDggQEAKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGb250RmVh
dHVyZVNldHRpbmdzLmgiCisjaW5jbHVkZSAiRm9udEZlYXR1cmVWYWx1ZS5oIgogI2luY2x1ZGUg
IlJlY3QuaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5o
IgpAQCAtMTE0MSw2ICsxMTQzLDE5IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShpbnQgcHJvcGVyCiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJl
dHVybiBwcmltaXRpdmVWYWx1ZUNhY2hlLT5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVO
b3JtYWwpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1cmVTZXR0aW5n
czogeworICAgICAgICAgICAgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZVNldHRp
bmdzID0gc3R5bGUtPmZvbnREZXNjcmlwdGlvbigpLmZlYXR1cmVTZXR0aW5ncygpOworICAgICAg
ICAgICAgaWYgKCFmZWF0dXJlU2V0dGluZ3MgfHwgIWZlYXR1cmVTZXR0aW5ncy0+c2l6ZSgpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZUNhY2hlLT5jcmVhdGVJZGVudGlm
aWVyVmFsdWUoQ1NTVmFsdWVOb3JtYWwpOworICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlTGlz
dD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBhcmF0ZWQoKTsKKyAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmZWF0dXJlU2V0dGluZ3MtPnNpemUoKTsgKytp
KSB7CisgICAgICAgICAgICAgICAgY29uc3QgRm9udEZlYXR1cmUmIGZlYXR1cmUgPSBmZWF0dXJl
U2V0dGluZ3MtPmF0KGkpOworICAgICAgICAgICAgICAgIFJlZlB0cjxGb250RmVhdHVyZVZhbHVl
PiBmZWF0dXJlVmFsdWUgPSBGb250RmVhdHVyZVZhbHVlOjpjcmVhdGUoZmVhdHVyZS50YWcoKSk7
CisgICAgICAgICAgICAgICAgZmVhdHVyZVZhbHVlLT5zZXRWYWx1ZShwcmltaXRpdmVWYWx1ZUNh
Y2hlLT5jcmVhdGVWYWx1ZShmZWF0dXJlLnZhbHVlKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
TlVNQkVSKSk7CisgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGZlYXR1cmVWYWx1ZS5yZWxl
YXNlKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgp
OworICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlIZWlnaHQ6CiAgICAgICAgICAg
ICBpZiAocmVuZGVyZXIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVs
VmFsdWUoc2l6aW5nQm94KHJlbmRlcmVyKS5oZWlnaHQoKSwgc3R5bGUuZ2V0KCksIHByaW1pdGl2
ZVZhbHVlQ2FjaGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA1ZDhmZGU0YjU3OGQ1
M2YxYTA5OGEwZGY5YmE2YmRiOWVlYjg3NDZlLi4yYWNhYmFiNzkxZWE3MDkwM2JkNmU3YzRlNTdh
YjU5ODliMTg3NjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNjEsNiArNjEsNyBA
QAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAj
aW5jbHVkZSAiRm9udEZhbWlseVZhbHVlLmgiCisjaW5jbHVkZSAiRm9udEZlYXR1cmVWYWx1ZS5o
IgogI2luY2x1ZGUgIkZvbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIK
ICNpbmNsdWRlICJIYXNoVG9vbHMuaCIKQEAgLTIwODQsNiArMjA4NSwxMiBAQCBib29sIENTU1Bh
cnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgcmV0dXJuIHBhcnNlTGluZUJveENvbnRhaW4oaW1wb3J0YW50KTsKICAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRGZWF0dXJlU2V0dGlu
Z3M6CisgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCkKKyAgICAgICAgICAgIHZhbGlk
UHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIHBhcnNl
Rm9udEZlYXR1cmVTZXR0aW5ncyhpbXBvcnRhbnQpOworICAgICAgICBicmVhazsKIAogI2lmIEVO
QUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0V3JhcFNoYXBl
OgpAQCAtNjMwMiw2ICs2MzA5LDY4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUxpbmVCb3hDb250
YWluKGJvb2wgaW1wb3J0YW50KQogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIENTU1BhcnNl
cjo6cGFyc2VGb250RmVhdHVyZVRhZyhDU1NWYWx1ZUxpc3QqIHNldHRpbmdzKQoreworICAgIC8v
IEZlYXR1cmUgdGFnIG5hbWUgY29uc2lzdHMgb2YgNC1sZXR0ZXIgY2hhcmFjdGVycy4KKyAgICBz
dGF0aWMgY29uc3QgaW50IHRhZ05hbWVMZW5ndGggPSA0OworCisgICAgQ1NTUGFyc2VyVmFsdWUq
IHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKKyAgICAvLyBGZWF0dXJlIHRhZyBuYW1l
IGNvbWVzIGZpcnN0CisgICAgaWYgKHZhbHVlLT51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfU1RSSU5HICYmIHZhbHVlLT51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAodmFsdWUtPnN0cmluZy5sZW5ndGggIT0g
dGFnTmFtZUxlbmd0aCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIFJlZlB0cjxGb250RmVh
dHVyZVZhbHVlPiBwYXJzZWRWYWx1ZSA9IEZvbnRGZWF0dXJlVmFsdWU6OmNyZWF0ZSh2YWx1ZS0+
c3RyaW5nKTsKKyAgICB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5uZXh0KCk7CisKKyAgICAvLyBGZWF0
dXJlIHRhZyB2YWx1ZXMgbWlnaHQgZm9sbG93CisgICAgaWYgKHZhbHVlKSB7CisgICAgICAgIFJl
ZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gZmVhdHVyZVZhbHVlOworICAgICAgICBpZiAodmFsdWUt
PnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIgJiYgdmFsdWUtPmZWYWx1ZSA+
PSAwLikKKyAgICAgICAgICAgIGZlYXR1cmVWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlQ2FjaGUoKS0+
Y3JlYXRlVmFsdWUodmFsdWUtPmZWYWx1ZSwgc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU6
OlVuaXRUeXBlcz4odmFsdWUtPnVuaXQpKTsKKyAgICAgICAgZWxzZSBpZiAodmFsdWUtPmlkID09
IENTU1ZhbHVlT24gfHwgdmFsdWUtPmlkID09IENTU1ZhbHVlT2ZmKQorICAgICAgICAgICAgZmVh
dHVyZVZhbHVlID0gcHJpbWl0aXZlVmFsdWVDYWNoZSgpLT5jcmVhdGVJZGVudGlmaWVyVmFsdWUo
dmFsdWUtPmlkKTsKKworICAgICAgICBpZiAoZmVhdHVyZVZhbHVlKSB7CisgICAgICAgICAgICBw
YXJzZWRWYWx1ZS0+c2V0VmFsdWUoZmVhdHVyZVZhbHVlLnJlbGVhc2UoKSk7CisgICAgICAgICAg
ICB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5uZXh0KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgc2V0
dGluZ3MtPmFwcGVuZChwYXJzZWRWYWx1ZS5yZWxlYXNlKCkpOworICAgIHJldHVybiB0cnVlOwor
fQorCitib29sIENTU1BhcnNlcjo6cGFyc2VGb250RmVhdHVyZVNldHRpbmdzKGJvb2wgaW1wb3J0
YW50KQoreworICAgIGlmIChtX3ZhbHVlTGlzdC0+c2l6ZSgpID09IDEgJiYgbV92YWx1ZUxpc3Qt
PmN1cnJlbnQoKS0+aWQgPT0gQ1NTVmFsdWVOb3JtYWwpIHsKKyAgICAgICAgUmVmUHRyPENTU1By
aW1pdGl2ZVZhbHVlPiBub3JtYWxWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlQ2FjaGUoKS0+Y3JlYXRl
SWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9ybWFsKTsKKyAgICAgICAgbV92YWx1ZUxpc3QtPm5l
eHQoKTsKKyAgICAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRGb250RmVhdHVyZVNl
dHRpbmdzLCBub3JtYWxWYWx1ZS5yZWxlYXNlKCksIGltcG9ydGFudCk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKworICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IHNldHRpbmdzID0gQ1NT
VmFsdWVMaXN0OjpjcmVhdGVDb21tYVNlcGFyYXRlZCgpOworICAgIENTU1BhcnNlclZhbHVlKiB2
YWx1ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7CisgICAgd2hpbGUgKHZhbHVlKSB7CisgICAg
ICAgIGlmICghcGFyc2VGb250RmVhdHVyZVRhZyhzZXR0aW5ncy5nZXQoKSkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsK
KworICAgICAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgICAgIC8vIElmIHRoZSBsaXN0IGlzbid0
IHBhcnNlZCBmdWxseSwgdGhlIGN1cnJlbnQgdmFsdWUgc2hvdWxkIGJlIGNvbW1hLgorICAgICAg
ICAgICAgaWYgKCF2YWx1ZS0+dW5pdCA9PSBDU1NQYXJzZXJWYWx1ZTo6T3BlcmF0b3IgfHwgdmFs
dWUtPmlWYWx1ZSAhPSAnLCcpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgdmFsdWUgPSBtX3ZhbHVlTGlzdC0+bmV4dCgpOworICAgICAgICB9CisgICAgfQorCisg
ICAgaWYgKHNldHRpbmdzLT5sZW5ndGgoKSkgeworICAgICAgICBhZGRQcm9wZXJ0eShDU1NQcm9w
ZXJ0eVdlYmtpdEZvbnRGZWF0dXJlU2V0dGluZ3MsIHNldHRpbmdzLnJlbGVhc2UoKSwgaW1wb3J0
YW50KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30K
Kwogc3RhdGljIGlubGluZSBpbnQgeXllcnJvcihjb25zdCBjaGFyKikgeyByZXR1cm4gMTsgfQog
CiAjZGVmaW5lIEVORF9UT0tFTiAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggYmQxYzc0Njg3
YzYxOTBmNTRmODQ2OWFlMzUzNjYxYzEyZTNlYTQ0Ny4uMTA5ZGUwNWI5N2MxMjI1OTNlMDAwZmY2
MjNiMDlmZDg1ZjE5MDdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMTk3LDYgKzE5Nyw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBib29sIHBhcnNlTGluZUJveENvbnRh
aW4oYm9vbCBpbXBvcnRhbnQpOwogCisgICAgICAgIGJvb2wgcGFyc2VGb250RmVhdHVyZVRhZyhD
U1NWYWx1ZUxpc3QqKTsKKyAgICAgICAgYm9vbCBwYXJzZUZvbnRGZWF0dXJlU2V0dGluZ3MoYm9v
bCBpbXBvcnRhbnQpOworCiAgICAgICAgIGludCB5eXBhcnNlKCk7CiAKICAgICAgICAgQ1NTUGFy
c2VyU2VsZWN0b3IqIGNyZWF0ZUZsb2F0aW5nU2VsZWN0b3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggOWMyMGY3ZmNmMjUxYzEyZDhiMDc1ZDBiMWU1MWU1ODM5
NjhlNzdkMS4uNDY1NmU2YzYzYmUwNDU2OWNiZjkxMWU1ODY5ODgyNGQ1YTQ2ZmMwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KQEAgLTIwLDYgKzIwLDcgQEAgZm9udC1z
dHlsZQogZm9udC12YXJpYW50CiBmb250LXdlaWdodAogdGV4dC1yZW5kZXJpbmcKKy13ZWJraXQt
Zm9udC1mZWF0dXJlLXNldHRpbmdzCiAtd2Via2l0LWZvbnQtc21vb3RoaW5nCiAtd2Via2l0LXRl
eHQtb3JpZW50YXRpb24KIC1lcHViLXRleHQtb3JpZW50YXRpb24gPSAtd2Via2l0LXRleHQtb3Jp
ZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCA2NjEz
NGI5YTgzMTBiM2NmYzA0NTlkZTVlMDg1ODY0NjZiMzAyMTgyLi5lZDdiYzU4YjY2ZjQ5ODdiOTM3
MWNlNjM1MWNjZTQ4YWQwYWFjNzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAiQ291bnRlci5oIgogI2luY2x1ZGUg
IkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZvbnRGYW1pbHlWYWx1ZS5oIgorI2luY2x1
ZGUgIkZvbnRGZWF0dXJlVmFsdWUuaCIKICNpbmNsdWRlICJGb250VmFsdWUuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCkBAIC0zNDc5LDcgKzM0ODAs
NyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5RGVjbGFyYXRpb25zKGJvb2wgaXNJbXBv
cnRhbnQsIGludCBzdGFydEluZGV4LCBpbnQgZQogCiAgICAgICAgICAgICAgICAgaWYgKGFwcGx5
Rmlyc3QpIHsKICAgICAgICAgICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoZmlyc3RDU1NQcm9w
ZXJ0eSA9PSBDU1NQcm9wZXJ0eUNvbG9yLCBDU1NfY29sb3JfaXNfZmlyc3RfcHJvcGVydHkpOwot
ICAgICAgICAgICAgICAgICAgICBDT01QSUxFX0FTU0VSVChDU1NQcm9wZXJ0eVpvb20gPT0gQ1NT
UHJvcGVydHlDb2xvciArIDE0LCBDU1Nfem9vbV9pc19lbmRfb2ZfZmlyc3RfcHJvcF9yYW5nZSk7
CisgICAgICAgICAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKENTU1Byb3BlcnR5Wm9vbSA9PSBD
U1NQcm9wZXJ0eUNvbG9yICsgMTUsIENTU196b29tX2lzX2VuZF9vZl9maXJzdF9wcm9wX3Jhbmdl
KTsKICAgICAgICAgICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoQ1NTUHJvcGVydHlMaW5lSGVp
Z2h0ID09IENTU1Byb3BlcnR5Wm9vbSArIDEsIENTU19saW5lX2hlaWdodF9pc19hZnRlcl96b29t
KTsKIAogICAgICAgICAgICAgICAgICAgICAvLyBnaXZlIHNwZWNpYWwgcHJpb3JpdHkgdG8gZm9u
dC14eHgsIGNvbG9yIHByb3BlcnRpZXMsIGV0YwpAQCAtNTE0OSw2ICs1MTUwLDMyIEBAIHZvaWQg
Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1ZSkK
ICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAKKyAgICAvLyBDU1MgRm9udHMgTW9kdWxlIExldmVs
IDMKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1cmVTZXR0aW5nczogeworICAg
ICAgICBpZiAocHJpbWl0aXZlVmFsdWUgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0g
Q1NTVmFsdWVOb3JtYWwpIHsKKyAgICAgICAgICAgIHNldEZvbnREZXNjcmlwdGlvbihtX3N0eWxl
LT5mb250RGVzY3JpcHRpb24oKS5tYWtlTm9ybWFsRmVhdHVyZVNldHRpbmdzKCkpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCF2YWx1ZS0+aXNWYWx1ZUxp
c3QoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBGb250RGVzY3JpcHRpb24gZm9u
dERlc2NyaXB0aW9uID0gbV9zdHlsZS0+Zm9udERlc2NyaXB0aW9uKCk7CisgICAgICAgIENTU1Zh
bHVlTGlzdCogbGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKTsKKyAgICAg
ICAgUmVmUHRyPEZvbnRGZWF0dXJlU2V0dGluZ3M+IHNldHRpbmdzID0gRm9udEZlYXR1cmVTZXR0
aW5nczo6Y3JlYXRlKCk7CisgICAgICAgIGludCBsZW4gPSBsaXN0LT5sZW5ndGgoKTsKKyAgICAg
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47ICsraSkgeworICAgICAgICAgICAgQ1NTVmFsdWUq
IGl0ZW0gPSBsaXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKGkpOworICAgICAgICAgICAgaWYg
KCFpdGVtLT5pc0ZvbnRGZWF0dXJlVmFsdWUoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgICAgIEZvbnRGZWF0dXJlVmFsdWUqIGZlYXR1cmUgPSBzdGF0aWNfY2FzdDxGb250
RmVhdHVyZVZhbHVlKj4oaXRlbSk7CisgICAgICAgICAgICBzZXR0aW5ncy0+YXBwZW5kKEZvbnRG
ZWF0dXJlKGZlYXR1cmUtPnRhZygpLCBmZWF0dXJlLT52YWx1ZSgpKSk7CisgICAgICAgIH0KKyAg
ICAgICAgZm9udERlc2NyaXB0aW9uLnNldEZlYXR1cmVTZXR0aW5ncyhzZXR0aW5ncy5yZWxlYXNl
KCkpOworICAgICAgICBzZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKwogICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgYXJlIGltcGxlbWVu
dGVkIGluIHRoZSBDU1NTdHlsZUFwcGx5UHJvcGVydHkgbG9va3VwIHRhYmxlLgogICAgIGNhc2Ug
Q1NTUHJvcGVydHlDb2xvcjoKICAgICBjYXNlIENTU1Byb3BlcnR5RGlyZWN0aW9uOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWUuaAppbmRleCAxMGFjMzVjM2EyNzg2NWE1YzRhZTg1NWEwNTFhMDgwYWRiOWY5ZjRj
Li5jNTM1ZGEyNWUxMTQ5NmYwMGVhMzdlNmIxMjRkMzFiM2YwMzIzNzI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWUuaApAQCAtNTgsNiArNTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzRmxl
eFZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogICAgIHZpcnR1YWwgYm9v
bCBpc0ZvbnRGYW1pbHlWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCBib29sIGlzRm9udEZlYXR1cmVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCBib29sIGlzRm9udFZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNJbWFnZUdlbmVyYXRvclZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggMDUzNWI1YjU5MmVk
ODE3NDgxNDBiNDc5MmQ5YTZiMzAyYzY4MjkyYy4uMDZhNmFhMjM2NTRlYWY4MDUxZTQzYjJmNzJi
ZTAyNmY5MjdmMzI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAg
LTgwNiw2ICs4MDYsMTAgQEAgZ2x5cGhzCiBpbmxpbmUtYm94CiByZXBsYWNlZAogCisvLyAtd2Vi
a2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncworb24KK29mZgorCiAvLyBpbWFnZS1yZW5kZXJpbmcK
IC8vYXV0bwogLy9vcHRpbWl6ZVNwZWVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Rm9udEZlYXR1cmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZlYXR1cmVWYWx1
ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmMzNmM3YzY0NGEzZjU5MWJhMzM3MjgzNDllM2RjOGFlOTQ5YTRm
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVl
LmNwcApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkZvbnRGZWF0dXJlVmFsdWUuaCIKKworI2luY2x1ZGUgIkNTU1BhcnNlci5oIgorI2lu
Y2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5o
IgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitGb250RmVhdHVyZVZhbHVlOjpGb250RmVhdHVyZVZhbHVlKGNvbnN0IFN0cmluZyYg
dGFnKQorICAgIDogbV90YWcodGFnKQoreworfQorCitpbnQgRm9udEZlYXR1cmVWYWx1ZTo6dmFs
dWUoKSBjb25zdAoreworICAgIGlmICghbV92YWx1ZSkKKyAgICAgICAgcmV0dXJuIDE7CisgICAg
aWYgKG1fdmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lE
RU5UKSB7CisgICAgICAgIHN3aXRjaCAobV92YWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICBj
YXNlIENTU1ZhbHVlT246CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgY2FzZSBDU1NW
YWx1ZU9mZjoKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKG1fdmFsdWUtPnByaW1p
dGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikKKyAgICAgICAgcmV0
dXJuIG1fdmFsdWUtPmdldEludFZhbHVlKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1N0cmluZyBG
b250RmVhdHVyZVZhbHVlOjpjc3NUZXh0KCkgY29uc3QKK3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoIiciKTsKKyAgICBidWlsZGVyLmFwcGVuZChtX3Rh
Zyk7CisgICAgYnVpbGRlci5hcHBlbmQoIiciKTsKKyAgICBpZiAobV92YWx1ZSkgeworICAgICAg
ICBidWlsZGVyLmFwcGVuZCgiICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChtX3ZhbHVlLT5j
c3NUZXh0KCkpOworICAgIH0KKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworfQorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZlYXR1cmVWYWx1ZS5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMGI2ZTUyZjE3
ODk3ZTY4ZWVkYzMzNjcxYmQyNWQ0MGVhN2NiYjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaApAQCAtMCwwICsxLDU2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBGb250RmVhdHVyZVZhbHVlX2gKKyNkZWZpbmUgRm9udEZlYXR1cmVWYWx1ZV9o
CisKKyNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
aW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRm9udEZlYXR1cmVWYWx1ZSA6
IHB1YmxpYyBDU1NWYWx1ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Rm9udEZl
YXR1cmVWYWx1ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdGFnKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBGb250RmVhdHVyZVZhbHVlKHRhZykpOworICAgIH0KKworICAgIGNv
bnN0IFN0cmluZyYgdGFnKCkgY29uc3QgeyByZXR1cm4gbV90YWc7IH0KKyAgICBpbnQgdmFsdWUo
KSBjb25zdDsKKyAgICB2b2lkIHNldFZhbHVlKFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IHZhbHVlKSB7IG1fdmFsdWUgPSB2YWx1ZTsgfQorICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQo
KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBGb250RmVhdHVyZVZhbHVlKGNvbnN0IFN0cmluZyYg
dGFnKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNGb250RmVhdHVyZVZhbHVlKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQorCisgICAgU3RyaW5nIG1fdGFnOworICAgIFJlZlB0cjxDU1NQcmltaXRpdmVW
YWx1ZT4gbV92YWx1ZTsKK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAKaW5k
ZXggNThkZGY4MTkyYTQyMmRhMWViOTUxOWVmNTdkOTZjZjczNmVhYmYyMC4uNDZkMTA4ZmUxYTZh
NzY0YzYzMmI0MDQ2MDBiMTFhZjg3ZGU2NjhmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwCkBAIC05OCw0ICs5OCwxMSBA
QCBGb250VHJhaXRzTWFzayBGb250RGVzY3JpcHRpb246OnRyYWl0c01hc2soKSBjb25zdAogICAg
IAogfQogCitGb250RGVzY3JpcHRpb24gRm9udERlc2NyaXB0aW9uOjptYWtlTm9ybWFsRmVhdHVy
ZVNldHRpbmdzKCkgY29uc3QKK3sKKyAgICBGb250RGVzY3JpcHRpb24gbm9ybWFsRGVzY3JpcHRp
b24oKnRoaXMpOworICAgIG5vcm1hbERlc2NyaXB0aW9uLnNldEZlYXR1cmVTZXR0aW5ncygwKTsK
KyAgICByZXR1cm4gbm9ybWFsRGVzY3JpcHRpb247Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNj
cmlwdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0
aW9uLmgKaW5kZXggNWQ1MzM4OGRkY2IyNTgzZTFmZTk2NDIwODZlNTBlOGRhMjQyYWM5Yi4uNzJj
NzJiZDMxMzJiZDk5OTBkY2MyMjFjZmJmODVhMjQ4NzJlMGE1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgKQEAgLTI2LDYgKzI2
LDcgQEAKICNkZWZpbmUgRm9udERlc2NyaXB0aW9uX2gKIAogI2luY2x1ZGUgIkZvbnRGYW1pbHku
aCIKKyNpbmNsdWRlICJGb250RmVhdHVyZVNldHRpbmdzLmgiCiAjaW5jbHVkZSAiRm9udE9yaWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlICJGb250
U21vb3RoaW5nTW9kZS5oIgpAQCAtMzUsNiArMzYsOCBAQAogI2luY2x1ZGUgIlRleHRSZW5kZXJp
bmdNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIEZvbnRXZWlnaHQgewpAQCAt
MTE0LDYgKzExNyw4IEBAIHB1YmxpYzoKICAgICBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24o
KSBjb25zdCB7IHJldHVybiBtX29yaWVudGF0aW9uOyB9CiAgICAgVGV4dE9yaWVudGF0aW9uIHRl
eHRPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dE9yaWVudGF0aW9uOyB9CiAgICAg
Rm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoVmFy
aWFudDsgfQorICAgIEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZlYXR1cmVTZXR0aW5ncygpIGNvbnN0
IHsgcmV0dXJuIG1fZmVhdHVyZVNldHRpbmdzLmdldCgpOyB9CisgICAgRm9udERlc2NyaXB0aW9u
IG1ha2VOb3JtYWxGZWF0dXJlU2V0dGluZ3MoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0RmFtaWx5
KGNvbnN0IEZvbnRGYW1pbHkmIGZhbWlseSkgeyBtX2ZhbWlseUxpc3QgPSBmYW1pbHk7IH0KICAg
ICB2b2lkIHNldENvbXB1dGVkU2l6ZShmbG9hdCBzKSB7IEFTU0VSVChpc2Zpbml0ZShzKSk7IG1f
Y29tcHV0ZWRTaXplID0gczsgfQpAQCAtMTM4LDYgKzE0Myw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldE9yaWVudGF0aW9uKEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgeyBtX29yaWVudGF0
aW9uID0gb3JpZW50YXRpb247IH0KICAgICB2b2lkIHNldFRleHRPcmllbnRhdGlvbihUZXh0T3Jp
ZW50YXRpb24gdGV4dE9yaWVudGF0aW9uKSB7IG1fdGV4dE9yaWVudGF0aW9uID0gdGV4dE9yaWVu
dGF0aW9uOyB9CiAgICAgdm9pZCBzZXRXaWR0aFZhcmlhbnQoRm9udFdpZHRoVmFyaWFudCB3aWR0
aFZhcmlhbnQpIHsgbV93aWR0aFZhcmlhbnQgPSB3aWR0aFZhcmlhbnQ7IH0KKyAgICB2b2lkIHNl
dEZlYXR1cmVTZXR0aW5ncyhQYXNzUmVmUHRyPEZvbnRGZWF0dXJlU2V0dGluZ3M+IHNldHRpbmdz
KSB7IG1fZmVhdHVyZVNldHRpbmdzID0gc2V0dGluZ3M7IH0KIAogcHJpdmF0ZToKICAgICBGb250
RmFtaWx5IG1fZmFtaWx5TGlzdDsgLy8gVGhlIGxpc3Qgb2YgZm9udCBmYW1pbGllcyB0byBiZSB1
c2VkLgpAQCAtMTUxLDYgKzE1Nyw4IEBAIHByaXZhdGU6CiAKICAgICBGb250V2lkdGhWYXJpYW50
IG1fd2lkdGhWYXJpYW50OwogCisgICAgUmVmUHRyPEZvbnRGZWF0dXJlU2V0dGluZ3M+IG1fZmVh
dHVyZVNldHRpbmdzOworCiAgICAgdW5zaWduZWQgbV9pdGFsaWMgOiAxOyAvLyBGb250SXRhbGlj
CiAgICAgdW5zaWduZWQgbV9zbWFsbENhcHMgOiAxOyAvLyBGb250U21hbGxDYXBzCiAgICAgYm9v
bCBtX2lzQWJzb2x1dGVTaXplIDogMTsgICAvLyBXaGV0aGVyIG9yIG5vdCBDU1Mgc3BlY2lmaWVk
IGFuIGV4cGxpY2l0IHNpemUKQEAgLTE4OCw3ICsxOTYsOCBAQCBpbmxpbmUgYm9vbCBGb250RGVz
Y3JpcHRpb246Om9wZXJhdG9yPT0oY29uc3QgRm9udERlc2NyaXB0aW9uJiBvdGhlcikgY29uc3QK
ICAgICAgICAgJiYgbV9pc1NwZWNpZmllZEZvbnQgPT0gb3RoZXIubV9pc1NwZWNpZmllZEZvbnQK
ICAgICAgICAgJiYgbV9vcmllbnRhdGlvbiA9PSBvdGhlci5tX29yaWVudGF0aW9uCiAgICAgICAg
ICYmIG1fdGV4dE9yaWVudGF0aW9uID09IG90aGVyLm1fdGV4dE9yaWVudGF0aW9uCi0gICAgICAg
ICYmIG1fd2lkdGhWYXJpYW50ID09IG90aGVyLm1fd2lkdGhWYXJpYW50OworICAgICAgICAmJiBt
X3dpZHRoVmFyaWFudCA9PSBvdGhlci5tX3dpZHRoVmFyaWFudAorICAgICAgICAmJiBtX2ZlYXR1
cmVTZXR0aW5ncyA9PSBvdGhlci5tX2ZlYXR1cmVTZXR0aW5nczsKIH0KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdz
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zNzEzMzIyZjRjODJlYmYzY2M3NWU4MTBjZWQzOGRjZjkxNTMwOTNl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dEZlYXR1cmVTZXR0aW5ncy5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJGb250RmVhdHVyZVNldHRpbmdzLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworRm9udEZlYXR1cmU6OkZvbnRGZWF0dXJlKGNvbnN0IEF0b21pY1N0cmlu
ZyYgdGFnLCBpbnQgdmFsdWUpCisgICAgOiBtX3RhZyh0YWcpCisgICAgLCBtX3ZhbHVlKHZhbHVl
KQoreworfQorCitib29sIEZvbnRGZWF0dXJlOjpvcGVyYXRvcj09KGNvbnN0IEZvbnRGZWF0dXJl
JiBvdGhlcikKK3sKKyAgICByZXR1cm4gbV90YWcgPT0gb3RoZXIubV90YWcgJiYgbV92YWx1ZSA9
PSBvdGhlci5tX3ZhbHVlOworfQorCitGb250RmVhdHVyZVNldHRpbmdzOjpGb250RmVhdHVyZVNl
dHRpbmdzKCkKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwMzYzYjk1OGY3YTFh
NmU5ZTNjMWFmOWRiYmVmNzEzYjEwMTVmMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmgKQEAgLTAsMCArMSw2
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgRm9udEZlYXR1cmVTZXR0aW5nc19oCisjZGVmaW5lIEZv
bnRGZWF0dXJlU2V0dGluZ3NfaAorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRm9udEZlYXR1cmUgeworcHVibGljOgorICAgIEZv
bnRGZWF0dXJlKGNvbnN0IEF0b21pY1N0cmluZyYgdGFnLCBpbnQgdmFsdWUpOworICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBGb250RmVhdHVyZSYpOworCisgICAgY29uc3QgQXRvbWljU3RyaW5n
JiB0YWcoKSBjb25zdCB7IHJldHVybiBtX3RhZzsgfQorICAgIGludCB2YWx1ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdmFsdWU7IH0KKworcHJpdmF0ZToKKyAgICBBdG9taWNTdHJpbmcgbV90YWc7Cisg
ICAgaW50IG1fdmFsdWU7Cit9OworCitjbGFzcyBGb250RmVhdHVyZVNldHRpbmdzIDogcHVibGlj
IFJlZkNvdW50ZWQ8Rm9udEZlYXR1cmVTZXR0aW5ncz4geworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEZvbnRGZWF0dXJlU2V0dGluZ3M+IGNyZWF0ZSgpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEZvbnRGZWF0dXJlU2V0dGluZ3MoKSk7CisgICAgfQorICAgIHZv
aWQgYXBwZW5kKGNvbnN0IEZvbnRGZWF0dXJlJiBmZWF0dXJlKSB7IG1fbGlzdC5hcHBlbmQoZmVh
dHVyZSk7IH0KKyAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7
IH0KKyAgICBjb25zdCBGb250RmVhdHVyZSYgb3BlcmF0b3JbXShpbnQgaW5kZXgpIGNvbnN0IHsg
cmV0dXJuIG1fbGlzdFtpbmRleF07IH0KKyAgICBjb25zdCBGb250RmVhdHVyZSYgYXQoc2l6ZV90
IGluZGV4KSBjb25zdCB7IHJldHVybiBtX2xpc3QuYXQoaW5kZXgpOyB9CisKK3ByaXZhdGU6Cisg
ICAgRm9udEZlYXR1cmVTZXR0aW5ncygpOworICAgIFZlY3RvcjxGb250RmVhdHVyZT4gbV9saXN0
OworfTsKKworfQorCisjZW5kaWYgLy8gRm9udEZlYXR1cmVTZXR0aW5nc19oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102755</attachid>
            <date>2011-08-03 02:09:18 -0700</date>
            <delta_ts>2011-08-04 01:01:29 -0700</delta_ts>
            <desc>Patch V6</desc>
            <filename>bug-63618-20110803180917.patch</filename>
            <type>text/plain</type>
            <size>46574</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIyNDUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3ZDAyNTBjMDY2Y2QzOWM3MzY3ODY2
MzQwOTVkOGM2MWVkNjc1ZTFiLi45YzdlNjlkYTVjYzk5Y2U5NDZhY2RiNDAyMWM1ZGU2NDNhOTY2
OTU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDgtMDIgIEtlbmljaGkgSXNoaWJhc2hp
ICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFBhcnNpbmcgQ1NTMyBmb250LWZlYXR1
cmUtc2V0dGluZ3MgcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYzNjE4CisKKyAgICAgICAgQWRkIHBhcnNpbmcgdGVzdCBjYXNlIGZvciAt
d2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyBwcm9wZXJ0eS4KKyAgICAgICAgV2UgY2Fubm90
IGFkZCB0ZXN0cyBmb3IgQGZvbnQtZmFjZSBmb3Igbm93IGJlY2F1c2Ugd2UgZG9uJ3QgaW1wbGVt
ZW50IHJlbmRlcmluZyBwYXJ0IHlldC4gV2Ugc2hvdWxkIGFkZCB0ZXN0cyBmb3IgQGZvbnQtZmFj
ZSBhZnRlciB3ZSBpbXBsZW1lbnQgcmVuZGVyaW5nIHBhcnQuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5n
cy1wYXJzaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9mb250LWZlYXR1
cmUtc2V0dGluZ3MtcGFyc2luZy5odG1sOiBBZGRlZC4KKwogMjAxMS0wOC0wMiAgWmhlbnlhbyBN
byAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHRlc3QgZXhwZWN0YXRp
b25zIHVwZGF0ZSwgZ2FyZGVuZXIgc3R1ZmYuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1wYXJzaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFlYTBkNzc0OGQzNDRhMmVhM2FiNjNhZmQ0NjJlYTcyZmQwMGVhNjgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1wYXJzaW5nLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDQwIEBACitUZXN0IHBhcnNpbmcgb2YgdGhlIENTUzMgZm9u
dC1mZWF0dXJlLXNldHRpbmdzIHByb3BlcnR5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworLSBUZXN0cyB2YWxpZCBpbnB1dHMuCitQQVNTIHBhcnNlUmVzdWx0T2YoInZhbGlkX25v
cm1hbCIpIGlzICJub3JtYWwiCitQQVNTIHBhcnNlUmVzdWx0T2YoInZhbGlkX3ZhbHVlXzEiKSBp
cyAiJ2RsaWcnIDEiCitQQVNTIHBhcnNlUmVzdWx0T2YoInZhbGlkX3ZhbHVlXzIiKSBpcyAiJ3N3
c2gnIDIiCitQQVNTIHBhcnNlUmVzdWx0T2YoInZhbGlkX3ZhbHVlX29uIikgaXMgIidzbWNwJyAx
IgorUEFTUyBwYXJzZVJlc3VsdE9mKCJ2YWxpZF92YWx1ZV9vZmYiKSBpcyAiJ2xpZ2EnIDAiCitQ
QVNTIHBhcnNlUmVzdWx0T2YoInZhbGlkX3ZhbHVlX29taXQiKSBpcyAiJ2Myc2MnIDEiCitQQVNT
IHBhcnNlUmVzdWx0T2YoInZhbGlkX3ZhbHVlbGlzdCIpIGlzICIndG51bScgMSwgJ2hpc3QnIDEi
CitQQVNTIHBhcnNlUmVzdWx0T2YoInZhbGlkX3NpbmdsZXF1b3RlIikgaXMgIidQS1JOJyAxIgor
UEFTUyBwYXJzZVJlc3VsdE9mKCJ2YWxpZF9pZGVudCIpIGlzICInZGxpZycgMSIKK1BBU1MgcGFy
c2VSZXN1bHRPZigidmFsaWRfdW51c3VhbF90YWciKSBpcyAiJyFAIyQnIDEiCitQQVNTIHBhcnNl
UmVzdWx0T2YoInZhbGlkX3RhZ19zcGFjZSIpIGlzICInYSBiYycgMSIKK1BBU1MgcGFyc2VSZXN1
bHRPZigidmFsaWRfY2FzZXMiKSBpcyAiJ2RsaWcnIDEsICdETElHJyAxLCAnRExpZycgMSIKK1BB
U1MgcGFyc2VSZXN1bHRPZigidmFsaWRfY29tcG9zaXRlIikgaXMgIidkbGlnJyAxLCAnc21jcCcg
MSwgJ2xpZ2EnIDAiCistIFRlc3RzIGludmFsaWQgaW5wdXRzLiAgUmVzdWx0cyBzaG91bGQgYmUg
Im5vcm1hbCIuCitQQVNTIHBhcnNlUmVzdWx0T2YoImludmFsaWRfMSIpIGlzICJub3JtYWwiCitQ
QVNTIHBhcnNlUmVzdWx0T2YoImludmFsaWRfb2ZmIikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VS
ZXN1bHRPZigiaW52YWxpZF9sb25nZXJfaWRlbnQiKSBpcyAibm9ybWFsIgorUEFTUyBwYXJzZVJl
c3VsdE9mKCJpbnZhbGlkX2xvbmdlcl9xdW90ZSIpIGlzICJub3JtYWwiCitQQVNTIHBhcnNlUmVz
dWx0T2YoImludmFsaWRfbmVnYXRpdmUiKSBpcyAibm9ybWFsIgorUEFTUyBwYXJzZVJlc3VsdE9m
KCJpbnZhbGlkX2Zsb2F0IikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigiaW52YWxp
ZF9taXNzaW5nX2NvbW1hIikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigiaW52YWxp
ZF9taXNzaW5nX2NvbW1hX2lkZW50IikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigi
aW52YWxpZF9jb21tYSIpIGlzICJub3JtYWwiCitQQVNTIHBhcnNlUmVzdWx0T2YoImludmFsaWRf
ZW5kaW5nX2NvbW1hIikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigiaW52YWxpZF9i
ZWdpbm5pbmdfY29tbWEiKSBpcyAibm9ybWFsIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJpbnZhbGlk
X29uIikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigiaW52YWxpZF8wIikgaXMgIm5v
cm1hbCIKKy0gVGVzdHMgaW5oZXJpdC4KK1BBU1MgcGFyc2VSZXN1bHRPZigib3V0ZXIiKSBpcyAi
J2RsaWcnIDEiCitQQVNTIHBhcnNlUmVzdWx0T2YoImlubmVyIikgaXMgIidkbGlnJyAxIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmcuaHRtbCBi
L0xheW91dFRlc3RzL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmcuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jOTMwYWU4OGFjYjVlZDBjZTkzNzA3NDA2NzhhMzc1MTdlMDUwYTU3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcGFyc2lu
Zy5odG1sCkBAIC0wLDAgKzEsMTk3IEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHN0eWxlPgorI3ZhbGlkX25vcm1hbCB7CisgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0
dGluZ3M6IG5vcm1hbDsKK30KKworI3ZhbGlkX3ZhbHVlXzEgeworICAgIC13ZWJraXQtZm9udC1m
ZWF0dXJlLXNldHRpbmdzOiAiZGxpZyIgMTsKK30KKworI3ZhbGlkX3ZhbHVlXzIgeworICAgIC13
ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiAic3dzaCIgMjsKK30KKworI3ZhbGlkX3ZhbHVl
X29uIHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogInNtY3AiIG9uOworfQor
CisjdmFsaWRfdmFsdWVfb2ZmIHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczog
ImxpZ2EiIG9mZjsKK30KKworI3ZhbGlkX3ZhbHVlX29taXQgeworICAgIC13ZWJraXQtZm9udC1m
ZWF0dXJlLXNldHRpbmdzOiAiYzJzYyI7Cit9CisKKyN2YWxpZF92YWx1ZWxpc3QgeworICAgIC13
ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiAidG51bSIsICdoaXN0JzsKK30KKworI3ZhbGlk
X3NpbmdsZXF1b3RlIHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ1BLUk4n
OworfQorCisjdmFsaWRfaWRlbnQgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdz
OiBkbGlnOworfQorCisjdmFsaWRfdW51c3VhbF90YWcgeworICAgIC13ZWJraXQtZm9udC1mZWF0
dXJlLXNldHRpbmdzOiAiIUAjJCI7Cit9CisKKyN2YWxpZF9jYXNlcyB7CisgICAgLXdlYmtpdC1m
b250LWZlYXR1cmUtc2V0dGluZ3M6IGRsaWcsIERMSUcsIERMaWc7Cit9CisKKyN2YWxpZF90YWdf
c3BhY2UgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiAiYSBiYyI7Cit9CisK
KyN2YWxpZF9jb21wb3NpdGUgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiAi
ZGxpZyIgMSwgJ3NtY3AnIG9uLCBsaWdhIG9mZjsKK30KKworI2ludmFsaWRfMSB7CisgICAgLXdl
YmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IDE7Cit9CisKKyNpbnZhbGlkX29mZiB7CisgICAg
LXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IG9mZjsKK30KKworI2ludmFsaWRfbG9uZ2Vy
X2lkZW50IHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogYWFhYWE7Cit9CisK
KyNpbnZhbGlkX2xvbmdlcl9xdW90ZSB7CisgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGlu
Z3M6ICJhYWFhYSI7Cit9CisKKyNpbnZhbGlkX25lZ2F0aXZlIHsKKyAgICAtd2Via2l0LWZvbnQt
ZmVhdHVyZS1zZXR0aW5nczogYWFhYSAtMTsKK30KKworI2ludmFsaWRfZmxvYXQgeworICAgIC13
ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiBhYWFhIDEuNTsKK30KKworI2ludmFsaWRfbWlz
c2luZ19jb21tYSB7CisgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IGFhYWEgImJi
YmIiOworfQorCisjaW52YWxpZF9taXNzaW5nX2NvbW1hX2lkZW50IHsKKyAgICAtd2Via2l0LWZv
bnQtZmVhdHVyZS1zZXR0aW5nczogYWFhYSBiYmJiOworfQorCisjaW52YWxpZF9jb21tYSB7Cisg
ICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICw7Cit9CisKKyNpbnZhbGlkX2VuZGlu
Z19jb21tYSB7CisgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IGFhYWEsOworfQor
CisjaW52YWxpZF9iZWdpbm5pbmdfY29tbWEgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNl
dHRpbmdzOiAsYWFhYTsKK30KKworI2ludmFsaWRfb24geworICAgIC13ZWJraXQtZm9udC1mZWF0
dXJlLXNldHRpbmdzOiBhYWFhLCBvbjsKK30KKworI2ludmFsaWRfMCB7CisgICAgLXdlYmtpdC1m
b250LWZlYXR1cmUtc2V0dGluZ3M6ICJhYWFhIiAxLCAiYmJiYiIsIDA7Cit9CisKKyNpbnZhbGlk
X2NvbXBvc2l0ZSB7CisgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IGFhYWFhIG9u
LCBkbGlnIG9uLCBQS1JOIC0xOworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2
IGlkPSJ2YWxpZF9ub3JtYWwiPjwvZGl2PgorPGRpdiBpZD0idmFsaWRfdmFsdWVfMSI+PC9kaXY+
Cis8ZGl2IGlkPSJ2YWxpZF92YWx1ZV8yIj48L2Rpdj4KKzxkaXYgaWQ9InZhbGlkX3ZhbHVlX29u
Ij48L2Rpdj4KKzxkaXYgaWQ9InZhbGlkX3ZhbHVlX29mZiI+PC9kaXY+Cis8ZGl2IGlkPSJ2YWxp
ZF92YWx1ZV9vbWl0Ij48L2Rpdj4KKzxkaXYgaWQ9InZhbGlkX3ZhbHVlbGlzdCI+PC9kaXY+Cis8
ZGl2IGlkPSJ2YWxpZF9zaW5nbGVxdW90ZSI+PC9kaXY+Cis8ZGl2IGlkPSJ2YWxpZF9pZGVudCI+
PC9kaXY+Cis8ZGl2IGlkPSJ2YWxpZF91bnVzdWFsX3RhZyI+PC9kaXY+Cis8ZGl2IGlkPSJ2YWxp
ZF90YWdfc3BhY2UiPjwvZGl2PgorPGRpdiBpZD0idmFsaWRfY2FzZXMiPjwvZGl2PgorPGRpdiBp
ZD0idmFsaWRfY29tcG9zaXRlIj48L2Rpdj4KKworPGRpdiBpZD0iaW52YWxpZF8xIj48L2Rpdj4K
KzxkaXYgaWQ9ImludmFsaWRfb2ZmIj48L2Rpdj4KKzxkaXYgaWQ9ImludmFsaWRfbG9uZ2VyX2lk
ZW50Ij48L2Rpdj4KKzxkaXYgaWQ9ImludmFsaWRfbG9uZ2VyX3F1b3RlIj48L2Rpdj4KKzxkaXYg
aWQ9ImludmFsaWRfbmVnYXRpdmUiPjwvZGl2PgorPGRpdiBpZD0iaW52YWxpZF9mbG9hdCI+PC9k
aXY+Cis8ZGl2IGlkPSJpbnZhbGlkX21pc3NpbmdfY29tbWEiPjwvZGl2PgorPGRpdiBpZD0iaW52
YWxpZF9taXNzaW5nX2NvbW1hX2lkZW50Ij48L2Rpdj4KKzxkaXYgaWQ9ImludmFsaWRfY29tbWEi
PjwvZGl2PgorPGRpdiBpZD0iaW52YWxpZF9lbmRpbmdfY29tbWEiPjwvZGl2PgorPGRpdiBpZD0i
aW52YWxpZF9iZWdpbm5pbmdfY29tbWEiPjwvZGl2PgorPGRpdiBpZD0iaW52YWxpZF9vbiI+PC9k
aXY+Cis8ZGl2IGlkPSJpbnZhbGlkXzAiPjwvZGl2PgorCis8ZGl2IGlkPSJvdXRlciIgc3R5bGU9
Ii13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiBkbGlnOyI+CisgIDxkaXYgaWQ9ImlubmVy
Ij48L2Rpdj4KKzwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHBhcnNpbmcgb2YgdGhl
IENTUzMgZm9udC1mZWF0dXJlLXNldHRpbmdzIHByb3BlcnR5LicpOworCitmdW5jdGlvbiBwYXJz
ZVJlc3VsdE9mKGlkKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChpZCk7CisgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpWyctd2Vi
a2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyddOworfQorCitkZWJ1ZygnLSBUZXN0cyB2YWxpZCBp
bnB1dHMuJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BhcnNlUmVzdWx0T2YoInZhbGlkX25v
cm1hbCIpJywgIm5vcm1hbCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYXJzZVJlc3VsdE9m
KCJ2YWxpZF92YWx1ZV8xIiknLCAiJ2RsaWcnIDEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygn
cGFyc2VSZXN1bHRPZigidmFsaWRfdmFsdWVfMiIpJywgIidzd3NoJyAyIik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3BhcnNlUmVzdWx0T2YoInZhbGlkX3ZhbHVlX29uIiknLCAiJ3NtY3AnIDEi
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygncGFyc2VSZXN1bHRPZigidmFsaWRfdmFsdWVfb2Zm
IiknLCAiJ2xpZ2EnIDAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygncGFyc2VSZXN1bHRPZigi
dmFsaWRfdmFsdWVfb21pdCIpJywgIidjMnNjJyAxIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
J3BhcnNlUmVzdWx0T2YoInZhbGlkX3ZhbHVlbGlzdCIpJywgIid0bnVtJyAxLCAnaGlzdCcgMSIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYXJzZVJlc3VsdE9mKCJ2YWxpZF9zaW5nbGVxdW90
ZSIpJywgIidQS1JOJyAxIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BhcnNlUmVzdWx0T2Yo
InZhbGlkX2lkZW50IiknLCAiJ2RsaWcnIDEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygncGFy
c2VSZXN1bHRPZigidmFsaWRfdW51c3VhbF90YWciKScsICInIUAjJCcgMSIpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdwYXJzZVJlc3VsdE9mKCJ2YWxpZF90YWdfc3BhY2UiKScsICInYSBiYycg
MSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYXJzZVJlc3VsdE9mKCJ2YWxpZF9jYXNlcyIp
JywgIidkbGlnJyAxLCAnRExJRycgMSwgJ0RMaWcnIDEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygncGFyc2VSZXN1bHRPZigidmFsaWRfY29tcG9zaXRlIiknLCAiJ2RsaWcnIDEsICdzbWNwJyAx
LCAnbGlnYScgMCIpOworCitkZWJ1ZygnLSBUZXN0cyBpbnZhbGlkIGlucHV0cy4gIFJlc3VsdHMg
c2hvdWxkIGJlICJub3JtYWwiLicpOworc2hvdWxkQmUoJ3BhcnNlUmVzdWx0T2YoImludmFsaWRf
MSIpJywgJyJub3JtYWwiJyk7CitzaG91bGRCZSgncGFyc2VSZXN1bHRPZigiaW52YWxpZF9vZmYi
KScsICcibm9ybWFsIicpOworc2hvdWxkQmUoJ3BhcnNlUmVzdWx0T2YoImludmFsaWRfbG9uZ2Vy
X2lkZW50IiknLCAnIm5vcm1hbCInKTsKK3Nob3VsZEJlKCdwYXJzZVJlc3VsdE9mKCJpbnZhbGlk
X2xvbmdlcl9xdW90ZSIpJywgJyJub3JtYWwiJyk7CitzaG91bGRCZSgncGFyc2VSZXN1bHRPZigi
aW52YWxpZF9uZWdhdGl2ZSIpJywgJyJub3JtYWwiJyk7CitzaG91bGRCZSgncGFyc2VSZXN1bHRP
ZigiaW52YWxpZF9mbG9hdCIpJywgJyJub3JtYWwiJyk7CitzaG91bGRCZSgncGFyc2VSZXN1bHRP
ZigiaW52YWxpZF9taXNzaW5nX2NvbW1hIiknLCAnIm5vcm1hbCInKTsKK3Nob3VsZEJlKCdwYXJz
ZVJlc3VsdE9mKCJpbnZhbGlkX21pc3NpbmdfY29tbWFfaWRlbnQiKScsICcibm9ybWFsIicpOwor
c2hvdWxkQmUoJ3BhcnNlUmVzdWx0T2YoImludmFsaWRfY29tbWEiKScsICcibm9ybWFsIicpOwor
c2hvdWxkQmUoJ3BhcnNlUmVzdWx0T2YoImludmFsaWRfZW5kaW5nX2NvbW1hIiknLCAnIm5vcm1h
bCInKTsKK3Nob3VsZEJlKCdwYXJzZVJlc3VsdE9mKCJpbnZhbGlkX2JlZ2lubmluZ19jb21tYSIp
JywgJyJub3JtYWwiJyk7CitzaG91bGRCZSgncGFyc2VSZXN1bHRPZigiaW52YWxpZF9vbiIpJywg
JyJub3JtYWwiJyk7CitzaG91bGRCZSgncGFyc2VSZXN1bHRPZigiaW52YWxpZF8wIiknLCAnIm5v
cm1hbCInKTsKKworZGVidWcoJy0gVGVzdHMgaW5oZXJpdC4nKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygncGFyc2VSZXN1bHRPZigib3V0ZXIiKScsICInZGxpZycgMSIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdwYXJzZVJlc3VsdE9mKCJpbm5lciIpJywgIidkbGlnJyAxIik7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTNiZWRiNGI5NDY4OTc0ZDU1MDUzMmZlZjlkNzFh
MTQzOWViMzgyNi4uMzk2YTIxNjI0ZTIxMDQ2ZmMyNGIxZTU2YmVkZjc4OWVhYjMxNzQ2YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ2NSw2ICs0NjUsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgY3NzL0NTU1VuaWNvZGVSYW5nZVZhbHVlLmNwcAogICAgIGNzcy9DU1NWYWx1ZUxpc3Qu
Y3BwCiAgICAgY3NzL0ZvbnRGYW1pbHlWYWx1ZS5jcHAKKyAgICBjc3MvRm9udEZlYXR1cmVWYWx1
ZS5jcHAKICAgICBjc3MvRm9udFZhbHVlLmNwcAogICAgIGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5j
cHAKICAgICBjc3MvTWVkaWFMaXN0LmNwcApAQCAtMTA2MCw2ICsxMDYxLDcgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3QuY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbWlseS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9Gb250RmFzdFBhdGguY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0
aW5ncy5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5jcHAKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2VUcmVlTm9kZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFkaWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhMjhiYmZjYTFhMzQzZjc2ZmM4OTUyZWNk
M2RlODA0ZTg3NTBkOTk0Li4yZWQ3MjQ3ZDg2ZTRlOWE5NGIxNjUzZDc2NDE1MjY5ZTNkNDQ3ZWQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTEtMDgtMDIgIEtlbmljaGkgSXNoaWJh
c2hpICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFBhcnNpbmcgQ1NTMyBmb250LWZl
YXR1cmUtc2V0dGluZ3MgcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYzNjE4CisKKyAgICAgICAgSW50cm9kdWNlcyBDU1MzIGZvbnQtZmVh
dHVyZS1zZXR0aW5ncyBwcm9wZXJ0eSBhcyAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncy4g
IFRoaXMgY2hhbmdlIG9ubHkgY29udGFpbnMgcGFyc2luZyBwYXJ0LiAgUGFyc2VkIGluZm9ybWF0
aW9uIGFyZSBzdG9yZWQgaW4gRm9udERlc2NyaXB0aW9uIGNsYXNzLgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGNzczMvZm9udC1mZWF0dXJl
LXNldHRpbmdzLXBhcnNpbmcuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVk
IEZvbnRGZWF0dXJlVmFsdWUue2gsY3BwfSBhbmQgRm9udEZlYXR1cmVTZXR0aW5ncy57aCxjcHB9
LgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIGNzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKTogQWRkZWQgQ1NTUHJvcGVydHlX
ZWJraXRGb250RmVhdHVyZVNldHRpbmdzLgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKTogQWRkZWQgcGFyc2luZyBj
b2RlIGZvciAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncy4KKyAgICAgICAgKFdlYkNvcmU6
OkNTU1BhcnNlcjo6cGFyc2VGb250RmVhdHVyZVRhZyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUGFyc2VyOjpwYXJzZUZvbnRGZWF0dXJlU2V0dGluZ3MpOiBBZGRlZC4KKyAgICAgICAg
KiBjc3MvQ1NTUGFyc2VyLmg6IEFkZGVkIHBhcnNlRm9udEZlYXR1cmVTZXR0aW5ncygpLgorICAg
ICAgICAqIGNzcy9DU1NQcm9wZXJ0eU5hbWVzLmluOiBBZGRlZCAtd2Via2l0LWZvbnQtZmVhdHVy
ZS1zZXR0aW5ncy4KKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseURlY2xhcmF0aW9ucyk6IE1vZGlmaWVk
IGEgY29tcGlsZSBhc3NlcnQgdG8gZm9sbG93IGFkZGluZyAtd2Via2l0LWZvbnQtZmVhdHVyZS1z
ZXR0aW5ncy4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVy
dHkpOiBBZGRlZCBhIGNhc2UgY2xhdXNlIGZvciBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRGZWF0dXJl
U2V0dGluZ3MuCisgICAgICAgICogY3NzL0NTU1ZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpD
U1NWYWx1ZTo6aXNGb250RmVhdHVyZVZhbHVlKTogQWRkZWQuCisgICAgICAgICogY3NzL0NTU1Zh
bHVlS2V5d29yZHMuaW46IEFkZGVkICdvbicgYW5kICdvZmYnIGtleXdvcmRzLgorICAgICAgICAq
IGNzcy9Gb250RmVhdHVyZVZhbHVlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGb250
RmVhdHVyZVZhbHVlOjpGb250RmVhdHVyZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRG
ZWF0dXJlVmFsdWU6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlVmFsdWU6
OmNzc1RleHQpOgorICAgICAgICAqIGNzcy9Gb250RmVhdHVyZVZhbHVlLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVWYWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRGZWF0dXJlVmFsdWU6OnRhZyk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVy
ZVZhbHVlOjpzZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVyZVZhbHVlOjpp
c0ZvbnRGZWF0dXJlVmFsdWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNj
cmlwdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246Om1ha2VOb3Jt
YWxGZWF0dXJlU2V0dGluZ3MpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9G
b250RGVzY3JpcHRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6Rm9u
dERlc2NyaXB0aW9uKTogQWRkZWQgbV9mZWF0dXJlU2V0dGluZ3MgbWVtYmVyIHZhcmlhYmxlLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpmZWF0dXJlU2V0dGluZ3MpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6c2V0RmVhdHVyZVNldHRpbmdz
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246Om9wZXJhdG9yPT0p
OiBNb2RpZmllZCB0byB0YWtlIGludG8gYWNjb3VudCBtX2ZlYXR1cmVTZXR0aW5ncworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlOjpGb250RmVhdHVyZSk6CisgICAgICAgIChXZWJD
b3JlOjpGb250RmVhdHVyZTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0
dXJlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlU2V0dGluZ3M6
OkZvbnRGZWF0dXJlU2V0dGluZ3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRG
ZWF0dXJlU2V0dGluZ3MuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVyZTo6
dGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlOjp2YWx1ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGb250RmVhdHVyZVNldHRpbmdzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
Rm9udEZlYXR1cmVTZXR0aW5nczo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0
dXJlU2V0dGluZ3M6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVTZXR0aW5n
czo6b3BlcmF0b3JbXSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVyZVNldHRpbmdzOjph
dCk6CisKIDIwMTEtMDgtMDIgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbY2hyb21pdW1dIERlY291cGxlIGxheWVyIHZpc2liaWxpdHkgY2FsY3VsYXRp
b25zIGZyb20gcmVuZGVyIHN1cmZhY2VzIC8gY29tcHV0ZWQgZHJhdyB0cmFuc2Zvcm1zCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBiMzg4YTM2OTlkYjY2YTZjZjRkZGY5OTBhOWIz
M2JkNjU0NGM2ZmUyLi40YWE3NDYyODI1Mzc5NzFmODIyNzIyZjYxZjJhZmYyYTEwMzE1M2U0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTEwMTEsNiArMTAxMSw4IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0Rhc2hib2FyZFJlZ2lvbi5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhbWlseVZhbHVlLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvY3NzL0ZvbnRGYW1pbHlWYWx1ZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZlYXR1
cmVWYWx1ZS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVlLmggXAog
CVNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250VmFsdWUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3Mv
Rm9udFZhbHVlLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5jcHAg
XApAQCAtMjQ5Miw2ICsyNDk0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbWlseS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRNZXRyaWNzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRP
cmllbnRhdGlvbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBiMTQwYWQ4ODgwYWJjZjliNTg0OWE2
ZGE3NDVjZGZkNDBmNDRiMjNiLi4wZTJiYWVlOWE3YTM5ZWU2ODQ3ZGNlOTQ5ZWFiNjAxNGE0MDlh
ZDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC03MzYsNiArNzM2LDcgQEAKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvRm9udEZhbGxiYWNrTGlzdC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9Gb250RmFtaWx5LmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRGZWF0dXJlU2V0dGluZ3MuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dE1ldHJpY3MuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udE9yaWVudGF0
aW9uLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRSZW5kZXJpbmdNb2Rl
LmgnLApAQCAtMjM3OSw2ICsyMzgwLDggQEAKICAgICAgICAgICAgICdjc3MvRGFzaGJvYXJkUmVn
aW9uLmgnLAogICAgICAgICAgICAgJ2Nzcy9Gb250RmFtaWx5VmFsdWUuY3BwJywKICAgICAgICAg
ICAgICdjc3MvRm9udEZhbWlseVZhbHVlLmgnLAorICAgICAgICAgICAgJ2Nzcy9Gb250RmVhdHVy
ZVZhbHVlLmNwcCcsCisgICAgICAgICAgICAnY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaCcsCiAgICAg
ICAgICAgICAnY3NzL0ZvbnRWYWx1ZS5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9Gb250VmFsdWUu
aCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhRmVhdHVyZU5hbWVzLmNwcCcsCkBAIC0zMzM0LDYg
KzMzMzcsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlv
bi5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3Qu
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcCcsCisg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpp
bmRleCA3YTNiZWYxNmY1NzZkNjNiYjQyNDU4NzA1YmYzNjFiODZjNGM3YTFmLi5hMDM0ZWRmMTA1
ZWU4OWUyZmNmOWJlM2NiMWUyMzNiMmMwMGFhZmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNDI4LDYg
KzQyOCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGNzcy9DU1NVbmljb2RlUmFuZ2VWYWx1ZS5jcHAg
XAogICAgIGNzcy9DU1NWYWx1ZUxpc3QuY3BwIFwKICAgICBjc3MvRm9udEZhbWlseVZhbHVlLmNw
cCBcCisgICAgY3NzL0ZvbnRGZWF0dXJlVmFsdWUuY3BwIFwKICAgICBjc3MvRm9udFZhbHVlLmNw
cCBcCiAgICAgY3NzL01lZGlhRmVhdHVyZU5hbWVzLmNwcCBcCiAgICAgY3NzL01lZGlhTGlzdC5j
cHAgXApAQCAtOTc3LDYgKzk3OCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxs
YmFja0xpc3QuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcCBcCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgXAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29s
b3IuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50M0QuY3BwIFwKQEAgLTE0
MjMsNiArMTQyNSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGNzcy9DU1NVbmljb2RlUmFuZ2VWYWx1
ZS5oIFwKICAgICBjc3MvQ1NTVmFsdWVMaXN0LmggXAogICAgIGNzcy9Gb250RmFtaWx5VmFsdWUu
aCBcCisgICAgY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaCBcCiAgICAgY3NzL0ZvbnRWYWx1ZS5oIFwK
ICAgICBjc3MvTWVkaWFGZWF0dXJlTmFtZXMuaCBcCiAgICAgY3NzL01lZGlhTGlzdC5oIFwKQEAg
LTE5NzcsNiArMTk4MCw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnREYXRhLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oIFwKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRGZWF0dXJlU2V0dGluZ3MuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udE1ldHJp
Y3MuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oIFwKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9HZW5lcmF0ZWRJbWFnZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggOTFmMmZhNTJlMzE4MWU3ZjE0YTFmYzM5ZWFlMzI3MjQxMGEz
ZWZlNC4uNzY5YzU2Y2YwNGJhOGJlNDdiMTdhZDkwYzNmOGZmMGNkYTVkMDMzMCAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI3NTg1LDYgKzI3
NTg1LDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGb250RmVhdHVyZVNldHRpbmdzLmNwcCIKKwkJCQkJ
PgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3Jt
XGdyYXBoaWNzXEZvbnRGZWF0dXJlU2V0dGluZ3MuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJ
CQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZvbnRGYXN0
UGF0aC5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBAIC0zMjk1MCw2ICszMjk1OCwxNCBAQAog
CQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcRm9u
dEZlYXR1cmVWYWx1ZS5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGNzc1xGb250RmVhdHVyZVZhbHVlLmgiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xGb250VmFsdWUuY3BwIgogCQkJCT4K
IAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA2ODIxOTU5NDVhMWI4ZmYxMWE5MTExMjM2YmRjMWZlM2ZjMWUwZjJi
Li5kMWE1MTk0OTdlYjIwN2U5NDY4M2M2YWU1NDk1MzJmNmUyYThhOTI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjY5LDYg
KzEyNjksMTAgQEAKIAkJNDlGRkJGNDAxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUZGQkYzRTEx
QzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5tbSAqLzsgfTsKIAkJNEEwREEyRkUxMjlCMjQx
OTAwQUI2MUUxIC8qIEZvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTBEQTJGQzEyOUIyNDE5MDBBQjYxRTEgLyog
Rm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcCAqLzsgfTsKIAkJNEEwREEyRkYxMjlCMjQxOTAwQUI2
MUUxIC8qIEZvcm1Bc3NvY2lhdGVkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNEEwREEyRkQxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1Bc3Nv
Y2lhdGVkRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTRBNkU5RkMzMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNkU5RkMx
MTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmNwcCAqLzsgfTsKKwkJNEE2RTlG
QzQxM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNkU5RkMyMTNDMTdEMUQwMDQ2QTdGOCAv
KiBGb250RmVhdHVyZVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNEE2RTlGQzcxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0
dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NEE2RTlGQzUxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwICovOyB9
OworCQk0QTZFOUZDODEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2RTlGQzYxM0Mx
N0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0QThDOTZFQjBCRTY5MDMyMDA0RUVGRjAg
LyogRnJhbWVTZWxlY3Rpb25NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0QThDOTZFQTBCRTY5MDMyMDA0RUVGRjAgLyogRnJhbWVTZWxlY3Rpb25N
YWMubW0gKi87IH07CiAJCTRBQ0JDMEJFMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEFDQkMwQkMx
MjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlzdC5jcHAgKi87IH07CiAJCTRBQ0JDMEJGMTI3MTND
QkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDRBQ0JDMEJEMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuaCAq
LzsgfTsKQEAgLTc4NDYsNiArNzg1MCwxMCBAQAogCQk0OUZGQkYzRTExQzkzRUUzMDA2QTcxMTgg
LyogV2ViR0xMYXllci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdlYkdMTGF5ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBMERBMkZDMTI5
QjI0MTkwMEFCNjFFMSAvKiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEEwREEyRkQxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1B
c3NvY2lhdGVkRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE2RTlG
QzExM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udEZlYXR1cmVWYWx1ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTRBNkU5RkMyMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVy
ZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRGZWF0dXJlVmFs
dWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE2RTlGQzUxM0MxN0Q1NzAwNDZB
N0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRm9udEZlYXR1cmVTZXR0aW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTRBNkU5RkM2MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBmaWxlRW5jb2RpbmcgPSA0OyBwYXRoID0gRm9udEZlYXR1cmVTZXR0aW5ncy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QThDOTZFQTBCRTY5MDMyMDA0RUVGRjAg
LyogRnJhbWVTZWxlY3Rpb25NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gRnJhbWVTZWxlY3Rpb25NYWMubW07IHBhdGggPSBtYWMvRnJhbWVTZWxlY3Rpb25N
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBQ0JDMEJDMTI3MTNDQkQwMDk0
RjlCMiAvKiBDbGFzc0xpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ2xhc3NMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEFDQkMwQkQx
MjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDbGFzc0xpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTQy
LDYgKzE4MTUwLDggQEAKIAkJCQlCMkMzREE1ODBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udEZhbWls
eS5jcHAgKi8sCiAJCQkJQjJDM0RBNTkwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRGYW1pbHkuaCAq
LywKIAkJCQk3MjYyNkUwMTBFRjAyMkZFMDBBMDdFMjAgLyogRm9udEZhc3RQYXRoLmNwcCAqLywK
KwkJCQk0QTZFOUZDNTEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAg
Ki8sCisJCQkJNEE2RTlGQzYxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3Mu
aCAqLywKIAkJCQkwODQ1NjgwNzEyQjkwREE2MDA5NjBBOUYgLyogRm9udE1ldHJpY3MuaCAqLywK
IAkJCQlGN0EwMzRDMzEyNkJGNkJFMDA3REMxOUUgLyogRm9udE9yaWVudGF0aW9uLmggKi8sCiAJ
CQkJODRCNjI2ODQxMzMxMzhGOTAwOTVBNDg5IC8qIEZvbnRQbGF0Zm9ybURhdGEuY3BwICovLApA
QCAtMTkzNTQsNiArMTkzNjQsOCBAQAogCQkJCUE4MEU2Q0M5MEExOTg5Q0EwMDdGQjhDNSAvKiBG
b250RmFtaWx5VmFsdWUuaCAqLywKIAkJCQlBODBFNkNDNzBBMTk4OUNBMDA3RkI4QzUgLyogRm9u
dFZhbHVlLmNwcCAqLywKIAkJCQlBODBFNkNDMzBBMTk4OUNBMDA3RkI4QzUgLyogRm9udFZhbHVl
LmggKi8sCisJCQkJNEE2RTlGQzExM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUu
Y3BwICovLAorCQkJCTRBNkU5RkMyMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVl
LmggKi8sCiAJCQkJQ0Q0RTBBRkExMUY3QkMyNzAwOUQzODExIC8qIGZ1bGxzY3JlZW4uY3NzICov
LAogCQkJCUNEQkQ5M0JBMTMzM0JENEIwMDI1NzBFMyAvKiBmdWxsc2NyZWVuUXVpY2tUaW1lLmNz
cyAqLywKIAkJCQk5M0NBNEM5OTA5REY5M0ZBMDBERjg2NzcgLyogaHRtbC5jc3MgKi8sCkBAIC0y
MTM3MSw2ICsyMTM4Myw4IEBACiAJCQkJQjJDM0RBNjgwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRG
YWxsYmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTZBMEQwMDZDRDYwMEVGNkYy
NiAvKiBGb250RmFtaWx5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNGMzBBMTk4OUNBMDA3
RkI4QzUgLyogRm9udEZhbWlseVZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTZFOUZDNDEz
QzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NEE2RTlGQzgxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA4NDU2ODA4MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmljcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRjdBMDM0QzQxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjUzMjBENkIxMjJBMjRFOTAwMkQxNDQwIC8qIEZv
bnRQbGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjQzMTEsNiArMjQzMjUsOCBAQAog
CQkJCUIyQzNEQTY5MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250RmFtaWx5LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4MEU2Q0VDMEExOTg5Q0EwMDdGQjhDNSAvKiBGb250RmFtaWx5VmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNzI2MjZFMDIwRUYwMjJGRTAwQTA3RTIwIC8qIEZvbnRGYXN0
UGF0aC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0QTZFOUZDMzEzQzE3RDFEMDA0NkE3RjggLyog
Rm9udEZlYXR1cmVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0QTZFOUZDNzEzQzE3RDU3
MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
MkFGRkM4MDBEMDBBNUMxMDAzMDA3NEQgLyogRm9udE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTg0QjYyNjg1MTMzMTM4RjkwMDk1QTQ4OSAvKiBGb250UGxhdGZvcm1EYXRhLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUI1MzIwRDZDMTIyQTI0RTkwMDJEMTQ0MCAvKiBGb250UGxhdGZvcm1EYXRh
Q29jb2EubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggNWU3MTBkNzRjZDVjNDhiZjI4MTUxZTQ4
ZjU3ODA2MjE3NmRjYWU1Ny4uNDc3MTFlNmIyNDkzYzdmYzlkMDcyZTJhNjQ2YjkxZTBkYTdiOTlm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKQEAgLTQyLDYgKzQyLDggQEAKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRl
ICJGb250RmVhdHVyZVNldHRpbmdzLmgiCisjaW5jbHVkZSAiRm9udEZlYXR1cmVWYWx1ZS5oIgog
I2luY2x1ZGUgIlJlY3QuaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5k
ZXJMYXllci5oIgpAQCAtMTE0MSw2ICsxMTQzLDE5IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShpbnQgcHJvcGVy
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZUNhY2hlLT5jcmVhdGVJZGVudGlmaWVyVmFsdWUo
Q1NTVmFsdWVOb3JtYWwpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1
cmVTZXR0aW5nczogeworICAgICAgICAgICAgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVh
dHVyZVNldHRpbmdzID0gc3R5bGUtPmZvbnREZXNjcmlwdGlvbigpLmZlYXR1cmVTZXR0aW5ncygp
OworICAgICAgICAgICAgaWYgKCFmZWF0dXJlU2V0dGluZ3MgfHwgIWZlYXR1cmVTZXR0aW5ncy0+
c2l6ZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZUNhY2hlLT5jcmVh
dGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb3JtYWwpOworICAgICAgICAgICAgUmVmUHRyPENT
U1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBhcmF0ZWQoKTsK
KyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmZWF0dXJlU2V0dGluZ3MtPnNp
emUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgY29uc3QgRm9udEZlYXR1cmUmIGZlYXR1cmUg
PSBmZWF0dXJlU2V0dGluZ3MtPmF0KGkpOworICAgICAgICAgICAgICAgIFJlZlB0cjxGb250RmVh
dHVyZVZhbHVlPiBmZWF0dXJlVmFsdWUgPSBGb250RmVhdHVyZVZhbHVlOjpjcmVhdGUoZmVhdHVy
ZS50YWcoKSk7CisgICAgICAgICAgICAgICAgZmVhdHVyZVZhbHVlLT5zZXRWYWx1ZShmZWF0dXJl
LnZhbHVlKCkpOworICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChmZWF0dXJlVmFsdWUucmVs
ZWFzZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBsaXN0LnJlbGVhc2Uo
KTsKKyAgICAgICAgfQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5SGVpZ2h0OgogICAgICAgICAg
ICAgaWYgKHJlbmRlcmVyKQogICAgICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhl
bFZhbHVlKHNpemluZ0JveChyZW5kZXJlcikuaGVpZ2h0KCksIHN0eWxlLmdldCgpLCBwcmltaXRp
dmVWYWx1ZUNhY2hlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggNWQ4ZmRlNGI1Nzhk
NTNmMWEwOThhMGRmOWJhNmJkYjllZWI4NzQ2ZS4uYjI3NGQ2N2M0OGQwMjhhYmNhM2RhZjk5MDM0
MjFmZTg0YjgwYTEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTYxLDYgKzYxLDcg
QEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgog
I2luY2x1ZGUgIkZvbnRGYW1pbHlWYWx1ZS5oIgorI2luY2x1ZGUgIkZvbnRGZWF0dXJlVmFsdWUu
aCIKICNpbmNsdWRlICJGb250VmFsdWUuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgi
CiAjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCkBAIC0yMDg0LDYgKzIwODUsMTIgQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIHJldHVybiBwYXJzZUxpbmVCb3hDb250YWluKGltcG9ydGFudCk7CiAg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGb250RmVhdHVyZVNldHRp
bmdzOgorICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwpCisgICAgICAgICAgICB2YWxp
ZFByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBwYXJz
ZUZvbnRGZWF0dXJlU2V0dGluZ3MoaW1wb3J0YW50KTsKKyAgICAgICAgYnJlYWs7CiAKICNpZiBF
TkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyYXBTaGFw
ZToKQEAgLTYzMDIsNiArNjMwOSw2OCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VMaW5lQm94Q29u
dGFpbihib29sIGltcG9ydGFudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBDU1NQYXJz
ZXI6OnBhcnNlRm9udEZlYXR1cmVUYWcoQ1NTVmFsdWVMaXN0KiBzZXR0aW5ncykKK3sKKyAgICAv
LyBGZWF0dXJlIHRhZyBuYW1lIGNvbnNpc3RzIG9mIDQtbGV0dGVyIGNoYXJhY3RlcnMuCisgICAg
c3RhdGljIGNvbnN0IGludCB0YWdOYW1lTGVuZ3RoID0gNDsKKworICAgIENTU1BhcnNlclZhbHVl
KiB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7CisgICAgLy8gRmVhdHVyZSB0YWcgbmFt
ZSBjb21lcyBmaXJzdAorICAgIGlmICh2YWx1ZS0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX1NUUklORyAmJiB2YWx1ZS0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5U
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKHZhbHVlLT5zdHJpbmcubGVuZ3RoICE9
IHRhZ05hbWVMZW5ndGgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBmb3IgKGludCBpID0g
MDsgaSA8IHRhZ05hbWVMZW5ndGg7ICsraSkgeworICAgICAgICAvLyBMaW1pdHMgdGhlIHJhbmdl
IG9mIGNoYXJhY3RlcnMgdG8gMHgyMC0weDdFLCBmb2xsb3dpbmcgdGhlIHRhZyBuYW1lIHJ1bGVz
IGRlZmllbmQgaW4gdGhlIE9wZW5UeXBlIHNwZWNpZmljYXRpb24uCisgICAgICAgIFVDaGFyIGNo
YXJhY3RlciA9IHZhbHVlLT5zdHJpbmcuY2hhcmFjdGVyc1tpXTsKKyAgICAgICAgaWYgKGNoYXJh
Y3RlciA8IDB4MjAgfHwgY2hhcmFjdGVyID4gMHg3RSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisgICAgUmVmUHRyPEZvbnRGZWF0dXJlVmFsdWU+IHBhcnNlZFZhbHVlID0gRm9u
dEZlYXR1cmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5zdHJpbmcpOworCisgICAgLy8gRmVhdHVyZSB0
YWcgdmFsdWVzIGNvdWxkIGZvbGxvdzogPGludGVnZXI+IHwgb24gfCBvZmYKKyAgICBpbnQgZmVh
dHVyZVRhZ1ZhbHVlID0gMTsKKyAgICB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5uZXh0KCk7CisgICAg
aWYgKHZhbHVlKSB7CisgICAgICAgIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX05VTUJFUiAmJiB2YWx1ZS0+aXNJbnQgJiYgdmFsdWUtPmZWYWx1ZSA+PSAwKSB7Cisg
ICAgICAgICAgICBmZWF0dXJlVGFnVmFsdWUgPSB2YWx1ZS0+ZlZhbHVlOworICAgICAgICAgICAg
bV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS0+aWQgPT0gQ1NT
VmFsdWVPbiB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVPZmYpIHsKKyAgICAgICAgICAgIGZlYXR1
cmVUYWdWYWx1ZSA9IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZU9uID8gMSA6IDA7CisgICAgICAgICAg
ICBtX3ZhbHVlTGlzdC0+bmV4dCgpOworICAgICAgICB9CisgICAgfQorICAgIHBhcnNlZFZhbHVl
LT5zZXRWYWx1ZShmZWF0dXJlVGFnVmFsdWUpOworICAgIHNldHRpbmdzLT5hcHBlbmQocGFyc2Vk
VmFsdWUucmVsZWFzZSgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDU1NQYXJzZXI6
OnBhcnNlRm9udEZlYXR1cmVTZXR0aW5ncyhib29sIGltcG9ydGFudCkKK3sKKyAgICBpZiAobV92
YWx1ZUxpc3QtPnNpemUoKSA9PSAxICYmIG1fdmFsdWVMaXN0LT5jdXJyZW50KCktPmlkID09IENT
U1ZhbHVlTm9ybWFsKSB7CisgICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbm9ybWFs
VmFsdWUgPSBwcmltaXRpdmVWYWx1ZUNhY2hlKCktPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NW
YWx1ZU5vcm1hbCk7CisgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CisgICAgICAgIGFkZFBy
b3BlcnR5KENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1cmVTZXR0aW5ncywgbm9ybWFsVmFsdWUu
cmVsZWFzZSgpLCBpbXBvcnRhbnQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBzZXR0aW5ncyA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29t
bWFTZXBhcmF0ZWQoKTsKKyAgICBmb3IgKENTU1BhcnNlclZhbHVlKiB2YWx1ZSA9IG1fdmFsdWVM
aXN0LT5jdXJyZW50KCk7IHZhbHVlOyB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5uZXh0KCkpIHsKKyAg
ICAgICAgaWYgKCFwYXJzZUZvbnRGZWF0dXJlVGFnKHNldHRpbmdzLmdldCgpKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBJZiB0aGUgbGlzdCBpc24ndCBwYXJzZWQg
ZnVsbHksIHRoZSBjdXJyZW50IHZhbHVlIHNob3VsZCBiZSBjb21tYS4KKyAgICAgICAgdmFsdWUg
PSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworICAgICAgICBpZiAodmFsdWUgJiYgISh2YWx1ZS0+
dW5pdCA9PSBDU1NQYXJzZXJWYWx1ZTo6T3BlcmF0b3IgJiYgdmFsdWUtPmlWYWx1ZSA9PSAnLCcp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAoc2V0dGluZ3MtPmxl
bmd0aCgpKSB7CisgICAgICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1
cmVTZXR0aW5ncywgc2V0dGluZ3MucmVsZWFzZSgpLCBpbXBvcnRhbnQpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgaW5saW5lIGlu
dCB5eWVycm9yKGNvbnN0IGNoYXIqKSB7IHJldHVybiAxOyB9CiAKICNkZWZpbmUgRU5EX1RPS0VO
IDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCBiZDFjNzQ2ODdjNjE5MGY1NGY4NDY5YWUzNTM2
NjFjMTJlM2VhNDQ3Li4xMDlkZTA1Yjk3YzEyMjU5M2UwMDBmZjYyM2IwOWZkODVmMTkwN2QzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0xOTcsNiArMTk3LDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIGJvb2wgcGFyc2VMaW5lQm94Q29udGFpbihib29sIGltcG9ydGFudCk7
CiAKKyAgICAgICAgYm9vbCBwYXJzZUZvbnRGZWF0dXJlVGFnKENTU1ZhbHVlTGlzdCopOworICAg
ICAgICBib29sIHBhcnNlRm9udEZlYXR1cmVTZXR0aW5ncyhib29sIGltcG9ydGFudCk7CisKICAg
ICAgICAgaW50IHl5cGFyc2UoKTsKIAogICAgICAgICBDU1NQYXJzZXJTZWxlY3RvciogY3JlYXRl
RmxvYXRpbmdTZWxlY3RvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnR5TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpp
bmRleCA5YzIwZjdmY2YyNTFjMTJkOGIwNzVkMGIxZTUxZTU4Mzk2OGU3N2QxLi40NjU2ZTZjNjNi
ZTA0NTY5Y2JmOTExZTU4Njk4ODI0ZDVhNDZmYzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJv
cGVydHlOYW1lcy5pbgpAQCAtMjAsNiArMjAsNyBAQCBmb250LXN0eWxlCiBmb250LXZhcmlhbnQK
IGZvbnQtd2VpZ2h0CiB0ZXh0LXJlbmRlcmluZworLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGlu
Z3MKIC13ZWJraXQtZm9udC1zbW9vdGhpbmcKIC13ZWJraXQtdGV4dC1vcmllbnRhdGlvbgogLWVw
dWItdGV4dC1vcmllbnRhdGlvbiA9IC13ZWJraXQtdGV4dC1vcmllbnRhdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDkyNGQ2MWMwNzk2ZWVhMjUwMTkyNjBl
MTVkMGI5NjFkYjJlYjVjOWUuLmI3YzY4ZWI4ZjU2ODhjZTY5YmYyMmVmNGY1MzZmNWQzNmYxZGQz
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTU2LDYgKzU2
LDcgQEAKICNpbmNsdWRlICJDb3VudGVyLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiRm9udEZhbWlseVZhbHVlLmgiCisjaW5jbHVkZSAiRm9udEZlYXR1cmVWYWx1
ZS5oIgogI2luY2x1ZGUgIkZvbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVk
ZSAiRnJhbWVTZWxlY3Rpb24uaCIKQEAgLTM0NzksNyArMzQ4MCw3IEBAIHZvaWQgQ1NTU3R5bGVT
ZWxlY3Rvcjo6YXBwbHlEZWNsYXJhdGlvbnMoYm9vbCBpc0ltcG9ydGFudCwgaW50IHN0YXJ0SW5k
ZXgsIGludCBlCiAKICAgICAgICAgICAgICAgICBpZiAoYXBwbHlGaXJzdCkgewogICAgICAgICAg
ICAgICAgICAgICBDT01QSUxFX0FTU0VSVChmaXJzdENTU1Byb3BlcnR5ID09IENTU1Byb3BlcnR5
Q29sb3IsIENTU19jb2xvcl9pc19maXJzdF9wcm9wZXJ0eSk7Ci0gICAgICAgICAgICAgICAgICAg
IENPTVBJTEVfQVNTRVJUKENTU1Byb3BlcnR5Wm9vbSA9PSBDU1NQcm9wZXJ0eUNvbG9yICsgMTQs
IENTU196b29tX2lzX2VuZF9vZl9maXJzdF9wcm9wX3JhbmdlKTsKKyAgICAgICAgICAgICAgICAg
ICAgQ09NUElMRV9BU1NFUlQoQ1NTUHJvcGVydHlab29tID09IENTU1Byb3BlcnR5Q29sb3IgKyAx
NSwgQ1NTX3pvb21faXNfZW5kX29mX2ZpcnN0X3Byb3BfcmFuZ2UpOwogICAgICAgICAgICAgICAg
ICAgICBDT01QSUxFX0FTU0VSVChDU1NQcm9wZXJ0eUxpbmVIZWlnaHQgPT0gQ1NTUHJvcGVydHla
b29tICsgMSwgQ1NTX2xpbmVfaGVpZ2h0X2lzX2FmdGVyX3pvb20pOwogCiAgICAgICAgICAgICAg
ICAgICAgIC8vIGdpdmUgc3BlY2lhbCBwcmlvcml0eSB0byBmb250LXh4eCwgY29sb3IgcHJvcGVy
dGllcywgZXRjCkBAIC01MDg4LDYgKzUwODksMzIgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjph
cHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAgICAgICByZXR1cm47CiAj
ZW5kaWYKIAorICAgIC8vIENTUyBGb250cyBNb2R1bGUgTGV2ZWwgMworICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRGb250RmVhdHVyZVNldHRpbmdzOiB7CisgICAgICAgIGlmIChwcmltaXRpdmVW
YWx1ZSAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vcm1hbCkgewor
ICAgICAgICAgICAgc2V0Rm9udERlc2NyaXB0aW9uKG1fc3R5bGUtPmZvbnREZXNjcmlwdGlvbigp
Lm1ha2VOb3JtYWxGZWF0dXJlU2V0dGluZ3MoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoIXZhbHVlLT5pc1ZhbHVlTGlzdCgpKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24gPSBtX3N0
eWxlLT5mb250RGVzY3JpcHRpb24oKTsKKyAgICAgICAgQ1NTVmFsdWVMaXN0KiBsaXN0ID0gc3Rh
dGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpOworICAgICAgICBSZWZQdHI8Rm9udEZlYXR1
cmVTZXR0aW5ncz4gc2V0dGluZ3MgPSBGb250RmVhdHVyZVNldHRpbmdzOjpjcmVhdGUoKTsKKyAg
ICAgICAgaW50IGxlbiA9IGxpc3QtPmxlbmd0aCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsg
aSA8IGxlbjsgKytpKSB7CisgICAgICAgICAgICBDU1NWYWx1ZSogaXRlbSA9IGxpc3QtPml0ZW1X
aXRob3V0Qm91bmRzQ2hlY2soaSk7CisgICAgICAgICAgICBpZiAoIWl0ZW0tPmlzRm9udEZlYXR1
cmVWYWx1ZSgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgRm9udEZl
YXR1cmVWYWx1ZSogZmVhdHVyZSA9IHN0YXRpY19jYXN0PEZvbnRGZWF0dXJlVmFsdWUqPihpdGVt
KTsKKyAgICAgICAgICAgIHNldHRpbmdzLT5hcHBlbmQoRm9udEZlYXR1cmUoZmVhdHVyZS0+dGFn
KCksIGZlYXR1cmUtPnZhbHVlKCkpKTsKKyAgICAgICAgfQorICAgICAgICBmb250RGVzY3JpcHRp
b24uc2V0RmVhdHVyZVNldHRpbmdzKHNldHRpbmdzLnJlbGVhc2UoKSk7CisgICAgICAgIHNldEZv
bnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBhcmUgaW1wbGVtZW50ZWQgaW4gdGhlIENTU1N0eWxl
QXBwbHlQcm9wZXJ0eSBsb29rdXAgdGFibGUuCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbG9yOgog
ICAgIGNhc2UgQ1NTUHJvcGVydHlEaXJlY3Rpb246CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCmluZGV4IDEw
YWMzNWMzYTI3ODY1YTVjNGFlODU1YTA1MWEwODBhZGI5ZjlmNGMuLmM1MzVkYTI1ZTExNDk2ZjAw
ZWEzN2U2YjEyNGQzMWIzZjAzMjM3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCkBAIC01OCw2ICs1
OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNGbGV4VmFsdWUoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogI2VuZGlmCiAgICAgdmlydHVhbCBib29sIGlzRm9udEZhbWlseVZhbHVl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNGb250RmVhdHVy
ZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNGb250
VmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdl
R2VuZXJhdG9yVmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBpc0ltYWdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCAwNTM1YjViNTkyZWQ4MTc0ODE0MGI0NzkyZDlhNmIz
MDJjNjgyOTJjLi4wNmE2YWEyMzY1NGVhZjgwNTFlNDNiMmY3MmJlMDI2ZjkyN2YzMjk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtODA2LDYgKzgwNiwxMCBAQCBn
bHlwaHMKIGlubGluZS1ib3gKIHJlcGxhY2VkCiAKKy8vIC13ZWJraXQtZm9udC1mZWF0dXJlLXNl
dHRpbmdzCitvbgorb2ZmCisKIC8vIGltYWdlLXJlbmRlcmluZwogLy9hdXRvCiAvL29wdGltaXpl
U3BlZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVlLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
ZWEyZTBlMTFjYjlmZmQ0YTUwMjAwZjM5M2ZhM2YwMjNlMzBiNjdmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUuY3BwCkBAIC0wLDAgKzEsNTAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
Q09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRm9udEZlYXR1cmVW
YWx1ZS5oIgorCisjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3
b3Jkcy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitGb250RmVhdHVyZVZhbHVlOjpGb250RmVhdHVyZVZhbHVlKGNvbnN0IFN0
cmluZyYgdGFnKQorICAgIDogbV90YWcodGFnKQoreworfQorCitTdHJpbmcgRm9udEZlYXR1cmVW
YWx1ZTo6Y3NzVGV4dCgpIGNvbnN0Cit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAg
IGJ1aWxkZXIuYXBwZW5kKCInIik7CisgICAgYnVpbGRlci5hcHBlbmQobV90YWcpOworICAgIGJ1
aWxkZXIuYXBwZW5kKCInICIpOworICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZzo6bnVtYmVyKG1f
dmFsdWUpKTsKKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZlYXR1cmVWYWx1ZS5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MWM2OTA2Yjc4NmI1MTk1ODBi
MGZmMTNkZmI4ZjE3ODk2YWJhYWQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0ZvbnRGZWF0dXJlVmFsdWUuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBGb250RmVhdHVyZVZhbHVlX2gKKyNkZWZpbmUgRm9udEZlYXR1cmVWYWx1ZV9oCisKKyNpbmNs
dWRlICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgRm9udEZlYXR1cmVWYWx1ZSA6IHB1YmxpYyBDU1NWYWx1ZSB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Rm9udEZlYXR1cmVWYWx1ZT4gY3JlYXRl
KGNvbnN0IFN0cmluZyYgdGFnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBG
b250RmVhdHVyZVZhbHVlKHRhZykpOworICAgIH0KKworICAgIGNvbnN0IFN0cmluZyYgdGFnKCkg
Y29uc3QgeyByZXR1cm4gbV90YWc7IH0KKyAgICBpbnQgdmFsdWUoKSBjb25zdCB7IHJldHVybiBt
X3ZhbHVlOyB9CisgICAgdm9pZCBzZXRWYWx1ZShpbnQgdmFsdWUpIHsgbV92YWx1ZSA9IHZhbHVl
OyB9CisgICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0OworCitwcml2YXRlOgorICAg
IEZvbnRGZWF0dXJlVmFsdWUoY29uc3QgU3RyaW5nJiB0YWcpOworICAgIHZpcnR1YWwgYm9vbCBp
c0ZvbnRGZWF0dXJlVmFsdWUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBTdHJpbmcg
bV90YWc7CisgICAgaW50IG1fdmFsdWU7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlw
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRp
b24uY3BwCmluZGV4IDU4ZGRmODE5MmE0MjJkYTFlYjk1MTllZjU3ZDk2Y2Y3MzZlYWJmMjAuLjQ2
ZDEwOGZlMWE2YTc2NGM2MzJiNDA0NjAwYjExYWY4N2RlNjY4ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcApAQCAtOTgs
NCArOTgsMTEgQEAgRm9udFRyYWl0c01hc2sgRm9udERlc2NyaXB0aW9uOjp0cmFpdHNNYXNrKCkg
Y29uc3QKICAgICAKIH0KIAorRm9udERlc2NyaXB0aW9uIEZvbnREZXNjcmlwdGlvbjo6bWFrZU5v
cm1hbEZlYXR1cmVTZXR0aW5ncygpIGNvbnN0Cit7CisgICAgRm9udERlc2NyaXB0aW9uIG5vcm1h
bERlc2NyaXB0aW9uKCp0aGlzKTsKKyAgICBub3JtYWxEZXNjcmlwdGlvbi5zZXRGZWF0dXJlU2V0
dGluZ3MoMCk7CisgICAgcmV0dXJuIG5vcm1hbERlc2NyaXB0aW9uOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250RGVzY3JpcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnREZXNjcmlwdGlvbi5oCmluZGV4IDVkNTMzODhkZGNiMjU4M2UxZmU5NjQyMDg2ZTUwZThkYTI0
MmFjOWIuLjcyYzcyYmQzMTMyYmQ5OTkwZGNjMjIxY2ZiZjg1YTI0ODcyZTBhNTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjZGVmaW5lIEZvbnREZXNjcmlwdGlvbl9oCiAKICNpbmNsdWRlICJG
b250RmFtaWx5LmgiCisjaW5jbHVkZSAiRm9udEZlYXR1cmVTZXR0aW5ncy5oIgogI2luY2x1ZGUg
IkZvbnRPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5j
bHVkZSAiRm9udFNtb290aGluZ01vZGUuaCIKQEAgLTM1LDYgKzM2LDggQEAKICNpbmNsdWRlICJU
ZXh0UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogZW51bSBGb250V2Vp
Z2h0IHsKQEAgLTExNCw2ICsxMTcsOCBAQCBwdWJsaWM6CiAgICAgRm9udE9yaWVudGF0aW9uIG9y
aWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRhdGlvbjsgfQogICAgIFRleHRPcmll
bnRhdGlvbiB0ZXh0T3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX3RleHRPcmllbnRhdGlv
bjsgfQogICAgIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50KCkgY29uc3QgeyByZXR1cm4g
bV93aWR0aFZhcmlhbnQ7IH0KKyAgICBGb250RmVhdHVyZVNldHRpbmdzKiBmZWF0dXJlU2V0dGlu
Z3MoKSBjb25zdCB7IHJldHVybiBtX2ZlYXR1cmVTZXR0aW5ncy5nZXQoKTsgfQorICAgIEZvbnRE
ZXNjcmlwdGlvbiBtYWtlTm9ybWFsRmVhdHVyZVNldHRpbmdzKCkgY29uc3Q7CiAKICAgICB2b2lk
IHNldEZhbWlseShjb25zdCBGb250RmFtaWx5JiBmYW1pbHkpIHsgbV9mYW1pbHlMaXN0ID0gZmFt
aWx5OyB9CiAgICAgdm9pZCBzZXRDb21wdXRlZFNpemUoZmxvYXQgcykgeyBBU1NFUlQoaXNmaW5p
dGUocykpOyBtX2NvbXB1dGVkU2l6ZSA9IHM7IH0KQEAgLTEzOCw2ICsxNDMsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRPcmllbnRhdGlvbihGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24pIHsg
bV9vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9CiAgICAgdm9pZCBzZXRUZXh0T3JpZW50YXRp
b24oVGV4dE9yaWVudGF0aW9uIHRleHRPcmllbnRhdGlvbikgeyBtX3RleHRPcmllbnRhdGlvbiA9
IHRleHRPcmllbnRhdGlvbjsgfQogICAgIHZvaWQgc2V0V2lkdGhWYXJpYW50KEZvbnRXaWR0aFZh
cmlhbnQgd2lkdGhWYXJpYW50KSB7IG1fd2lkdGhWYXJpYW50ID0gd2lkdGhWYXJpYW50OyB9Cisg
ICAgdm9pZCBzZXRGZWF0dXJlU2V0dGluZ3MoUGFzc1JlZlB0cjxGb250RmVhdHVyZVNldHRpbmdz
PiBzZXR0aW5ncykgeyBtX2ZlYXR1cmVTZXR0aW5ncyA9IHNldHRpbmdzOyB9CiAKIHByaXZhdGU6
CiAgICAgRm9udEZhbWlseSBtX2ZhbWlseUxpc3Q7IC8vIFRoZSBsaXN0IG9mIGZvbnQgZmFtaWxp
ZXMgdG8gYmUgdXNlZC4KQEAgLTE1MSw2ICsxNTcsOCBAQCBwcml2YXRlOgogCiAgICAgRm9udFdp
ZHRoVmFyaWFudCBtX3dpZHRoVmFyaWFudDsKIAorICAgIFJlZlB0cjxGb250RmVhdHVyZVNldHRp
bmdzPiBtX2ZlYXR1cmVTZXR0aW5nczsKKwogICAgIHVuc2lnbmVkIG1faXRhbGljIDogMTsgLy8g
Rm9udEl0YWxpYwogICAgIHVuc2lnbmVkIG1fc21hbGxDYXBzIDogMTsgLy8gRm9udFNtYWxsQ2Fw
cwogICAgIGJvb2wgbV9pc0Fic29sdXRlU2l6ZSA6IDE7ICAgLy8gV2hldGhlciBvciBub3QgQ1NT
IHNwZWNpZmllZCBhbiBleHBsaWNpdCBzaXplCkBAIC0xODgsNyArMTk2LDggQEAgaW5saW5lIGJv
b2wgRm9udERlc2NyaXB0aW9uOjpvcGVyYXRvcj09KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgb3Ro
ZXIpIGNvbnN0CiAgICAgICAgICYmIG1faXNTcGVjaWZpZWRGb250ID09IG90aGVyLm1faXNTcGVj
aWZpZWRGb250CiAgICAgICAgICYmIG1fb3JpZW50YXRpb24gPT0gb3RoZXIubV9vcmllbnRhdGlv
bgogICAgICAgICAmJiBtX3RleHRPcmllbnRhdGlvbiA9PSBvdGhlci5tX3RleHRPcmllbnRhdGlv
bgotICAgICAgICAmJiBtX3dpZHRoVmFyaWFudCA9PSBvdGhlci5tX3dpZHRoVmFyaWFudDsKKyAg
ICAgICAgJiYgbV93aWR0aFZhcmlhbnQgPT0gb3RoZXIubV93aWR0aFZhcmlhbnQKKyAgICAgICAg
JiYgbV9mZWF0dXJlU2V0dGluZ3MgPT0gb3RoZXIubV9mZWF0dXJlU2V0dGluZ3M7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJl
U2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1
cmVTZXR0aW5ncy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzcxMzMyMmY0YzgyZWJmM2NjNzVlODEwY2VkMzhk
Y2Y5MTUzMDkzZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRm9udEZlYXR1cmVTZXR0aW5ncy5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ZvbnRGZWF0dXJlOjpGb250RmVhdHVyZShjb25zdCBB
dG9taWNTdHJpbmcmIHRhZywgaW50IHZhbHVlKQorICAgIDogbV90YWcodGFnKQorICAgICwgbV92
YWx1ZSh2YWx1ZSkKK3sKK30KKworYm9vbCBGb250RmVhdHVyZTo6b3BlcmF0b3I9PShjb25zdCBG
b250RmVhdHVyZSYgb3RoZXIpCit7CisgICAgcmV0dXJuIG1fdGFnID09IG90aGVyLm1fdGFnICYm
IG1fdmFsdWUgPT0gb3RoZXIubV92YWx1ZTsKK30KKworRm9udEZlYXR1cmVTZXR0aW5nczo6Rm9u
dEZlYXR1cmVTZXR0aW5ncygpCit7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYmQ5
YjMzOWU2NTEwNTgxYWE5YTQ2Yjg4ZmZjMDEyYzNhOGQ3ZjBiCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5oCkBA
IC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZvbnRGZWF0dXJlU2V0dGluZ3NfaAor
I2RlZmluZSBGb250RmVhdHVyZVNldHRpbmdzX2gKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmlu
Zy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZvbnRGZWF0dXJlIHsKK3B1Ymxp
YzoKKyAgICBGb250RmVhdHVyZShjb25zdCBBdG9taWNTdHJpbmcmIHRhZywgaW50IHZhbHVlKTsK
KyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRm9udEZlYXR1cmUmKTsKKworICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgdGFnKCkgY29uc3QgeyByZXR1cm4gbV90YWc7IH0KKyAgICBpbnQgdmFsdWUo
KSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CisKK3ByaXZhdGU6CisgICAgQXRvbWljU3RyaW5n
IG1fdGFnOworICAgIGNvbnN0IGludCBtX3ZhbHVlOworfTsKKworY2xhc3MgRm9udEZlYXR1cmVT
ZXR0aW5ncyA6IHB1YmxpYyBSZWZDb3VudGVkPEZvbnRGZWF0dXJlU2V0dGluZ3M+IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxGb250RmVhdHVyZVNldHRpbmdzPiBjcmVhdGUoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGb250RmVhdHVyZVNldHRpbmdzKCkp
OworICAgIH0KKyAgICB2b2lkIGFwcGVuZChjb25zdCBGb250RmVhdHVyZSYgZmVhdHVyZSkgeyBt
X2xpc3QuYXBwZW5kKGZlYXR1cmUpOyB9CisgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVy
biBtX2xpc3Quc2l6ZSgpOyB9CisgICAgY29uc3QgRm9udEZlYXR1cmUmIG9wZXJhdG9yW10oaW50
IGluZGV4KSBjb25zdCB7IHJldHVybiBtX2xpc3RbaW5kZXhdOyB9CisgICAgY29uc3QgRm9udEZl
YXR1cmUmIGF0KHNpemVfdCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9saXN0LmF0KGluZGV4KTsg
fQorCitwcml2YXRlOgorICAgIEZvbnRGZWF0dXJlU2V0dGluZ3MoKTsKKyAgICBWZWN0b3I8Rm9u
dEZlYXR1cmU+IG1fbGlzdDsKK307CisKK30KKworI2VuZGlmIC8vIEZvbnRGZWF0dXJlU2V0dGlu
Z3NfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102879</attachid>
            <date>2011-08-04 00:55:23 -0700</date>
            <delta_ts>2011-08-04 18:12:36 -0700</delta_ts>
            <desc>Patch V7</desc>
            <filename>bug-63618-20110804165521.patch</filename>
            <type>text/plain</type>
            <size>47355</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIzNTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1Njc1NmNlY2U5YmQyMTA2YjdjYWE5
NmZmMDk5YmVhOTIzOTc0NDNlLi4wOGM1YjBmOTJkMzQ4YjM4MGQ1NDk0NThhNTNkMzFhODNjOTE4
ZGMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgtMDIgIEtlbmljaGkgSXNoaWJhc2hp
ICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFBhcnNpbmcgQ1NTMyBmb250LWZlYXR1
cmUtc2V0dGluZ3MgcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYzNjE4CisKKyAgICAgICAgQWRkIHBhcnNpbmcgdGVzdCBjYXNlIGZvciAt
d2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyBwcm9wZXJ0eS4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzczMvZm9udC1mZWF0dXJlLXNldHRp
bmdzLXBhcnNpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZvbnQtZmVh
dHVyZS1zZXR0aW5ncy1wYXJzaW5nLmh0bWw6IEFkZGVkLgorCiAyMDExLTA4LTAzICBLZW50YXJv
IEhhcmEgIDxoYXJha2VuQGdvb2dsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IEV2ZW50U2Vu
ZGVyLnNjYWxlUGFnZUJ5KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZm9udC1mZWF0
dXJlLXNldHRpbmdzLXBhcnNpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9mb250
LWZlYXR1cmUtc2V0dGluZ3MtcGFyc2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzBjNGMw
N2QwODdiMWI0NDdhMzY1NDViZDczMmYyZTg1ZjJiYmQwZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmctZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNDUgQEAKK1Rlc3QgcGFyc2luZyBvZiB0aGUgQ1NTMyBmb250LWZlYXR1cmUt
c2V0dGluZ3MgcHJvcGVydHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCistIFRl
c3RzIHZhbGlkIGlucHV0cy4KK1BBU1MgcGFyc2VSZXN1bHRPZigidmFsaWRfbm9ybWFsIikgaXMg
Im5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigidmFsaWRfdmFsdWVfMSIpIGlzICInZGxpZycg
MSIKK1BBU1MgcGFyc2VSZXN1bHRPZigidmFsaWRfdmFsdWVfMiIpIGlzICInc3dzaCcgMiIKK1BB
U1MgcGFyc2VSZXN1bHRPZigidmFsaWRfdmFsdWVfb24iKSBpcyAiJ3NtY3AnIDEiCitQQVNTIHBh
cnNlUmVzdWx0T2YoInZhbGlkX3ZhbHVlX29mZiIpIGlzICInbGlnYScgMCIKK1BBU1MgcGFyc2VS
ZXN1bHRPZigidmFsaWRfdmFsdWVfb21pdCIpIGlzICInYzJzYycgMSIKK1BBU1MgcGFyc2VSZXN1
bHRPZigidmFsaWRfdmFsdWVsaXN0IikgaXMgIid0bnVtJyAxLCAnaGlzdCcgMSIKK1BBU1MgcGFy
c2VSZXN1bHRPZigidmFsaWRfc2luZ2xlcXVvdGUiKSBpcyAiJ1BLUk4nIDEiCitQQVNTIHBhcnNl
UmVzdWx0T2YoInZhbGlkX2lkZW50IikgaXMgIidkbGlnJyAxIgorUEFTUyBwYXJzZVJlc3VsdE9m
KCJ2YWxpZF91bnVzdWFsX3RhZyIpIGlzICInIUAjJCcgMSIKK1BBU1MgcGFyc2VSZXN1bHRPZigi
dmFsaWRfdGFnX3NwYWNlIikgaXMgIidhIGJjJyAxIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJ2YWxp
ZF9jYXNlcyIpIGlzICInZGxpZycgMSwgJ0RMSUcnIDEsICdETGlnJyAxIgorUEFTUyBwYXJzZVJl
c3VsdE9mKCJ2YWxpZF9jb21wb3NpdGUiKSBpcyAiJ2RsaWcnIDEsICdzbWNwJyAxLCAnbGlnYScg
MCIKKy0gVGVzdHMgaW52YWxpZCBpbnB1dHMuICBSZXN1bHRzIHNob3VsZCBiZSAibm9ybWFsIi4K
K1BBU1MgcGFyc2VSZXN1bHRPZigiaW52YWxpZF8xIikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VS
ZXN1bHRPZigiaW52YWxpZF9vZmYiKSBpcyAibm9ybWFsIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJp
bnZhbGlkX25vcm1hbF9kdXBsaWNhdGUiKSBpcyAibm9ybWFsIgorUEFTUyBwYXJzZVJlc3VsdE9m
KCJpbnZhbGlkX25vcm1hbF9saXN0IikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigi
aW52YWxpZF9sb25nZXJfaWRlbnQiKSBpcyAibm9ybWFsIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJp
bnZhbGlkX2xvbmdlcl9xdW90ZSIpIGlzICJub3JtYWwiCitQQVNTIHBhcnNlUmVzdWx0T2YoImlu
dmFsaWRfbmVnYXRpdmUiKSBpcyAibm9ybWFsIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJpbnZhbGlk
X2Zsb2F0IikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigiaW52YWxpZF9taXNzaW5n
X2NvbW1hIikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigiaW52YWxpZF9taXNzaW5n
X2NvbW1hX2lkZW50IikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigiaW52YWxpZF9j
b21tYSIpIGlzICJub3JtYWwiCitQQVNTIHBhcnNlUmVzdWx0T2YoImludmFsaWRfZW5kaW5nX2Nv
bW1hIikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigiaW52YWxpZF9iZWdpbm5pbmdf
Y29tbWEiKSBpcyAibm9ybWFsIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJpbnZhbGlkX29uIikgaXMg
Im5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigiaW52YWxpZF8wIikgaXMgIm5vcm1hbCIKKy0g
VGVzdHMgaW5oZXJpdC4KK1BBU1MgcGFyc2VSZXN1bHRPZigib3V0ZXIiKSBpcyAiJ2RsaWcnIDEi
CitQQVNTIHBhcnNlUmVzdWx0T2YoImlubmVyIikgaXMgIidkbGlnJyAxIgorLSBUZXN0cyBAZm9u
dC1mYWNlLgorUEFTUyBmb250RmFjZVJ1bGVWYWxpZCBpcyAiJ2xpZ2EnIDEiCitQQVNTIGZvbnRG
YWNlUnVsZUludmFsaWQgaXMgIiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZvbnQtZmVhdHVy
ZS1zZXR0aW5ncy1wYXJzaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZvbnQtZmVhdHVyZS1z
ZXR0aW5ncy1wYXJzaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTNiMzdlZDJhNzdlNTIwNDhjMjFjNmZk
MThiOTIxOWZmNjhmNTQ1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZm9u
dC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmcuaHRtbApAQCAtMCwwICsxLDIyMyBAQAorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyN2YWxpZF9ub3JtYWwgeworICAg
IC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiBub3JtYWw7Cit9CisKKyN2YWxpZF92YWx1
ZV8xIHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogImRsaWciIDE7Cit9CisK
KyN2YWxpZF92YWx1ZV8yIHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogInN3
c2giIDI7Cit9CisKKyN2YWxpZF92YWx1ZV9vbiB7CisgICAgLXdlYmtpdC1mb250LWZlYXR1cmUt
c2V0dGluZ3M6ICJzbWNwIiBvbjsKK30KKworI3ZhbGlkX3ZhbHVlX29mZiB7CisgICAgLXdlYmtp
dC1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICJsaWdhIiBvZmY7Cit9CisKKyN2YWxpZF92YWx1ZV9v
bWl0IHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogImMyc2MiOworfQorCisj
dmFsaWRfdmFsdWVsaXN0IHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogInRu
dW0iLCAnaGlzdCc7Cit9CisKKyN2YWxpZF9zaW5nbGVxdW90ZSB7CisgICAgLXdlYmtpdC1mb250
LWZlYXR1cmUtc2V0dGluZ3M6ICdQS1JOJzsKK30KKworI3ZhbGlkX2lkZW50IHsKKyAgICAtd2Vi
a2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogZGxpZzsKK30KKworI3ZhbGlkX3VudXN1YWxfdGFn
IHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogIiFAIyQiOworfQorCisjdmFs
aWRfY2FzZXMgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiBkbGlnLCBETElH
LCBETGlnOworfQorCisjdmFsaWRfdGFnX3NwYWNlIHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVy
ZS1zZXR0aW5nczogImEgYmMiOworfQorCisjdmFsaWRfY29tcG9zaXRlIHsKKyAgICAtd2Via2l0
LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogImRsaWciIDEsICdzbWNwJyBvbiwgbGlnYSBvZmY7Cit9
CisKKyNpbnZhbGlkXzEgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiAxOwor
fQorCisjaW52YWxpZF9vZmYgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiBv
ZmY7Cit9CisKKyNpbnZhbGlkX25vcm1hbF9kdXBsaWNhdGUgeworICAgIC13ZWJraXQtZm9udC1m
ZWF0dXJlLXNldHRpbmdzOiBub3JtYWwsIG5vcm1hbDsKK30KKworI2ludmFsaWRfbm9ybWFsX2xp
c3QgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiBub3JtYWwsIGFhYWE7Cit9
CisKKyNpbnZhbGlkX2xvbmdlcl9pZGVudCB7CisgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0
dGluZ3M6IGFhYWFhOworfQorCisjaW52YWxpZF9sb25nZXJfcXVvdGUgeworICAgIC13ZWJraXQt
Zm9udC1mZWF0dXJlLXNldHRpbmdzOiAiYWFhYWEiOworfQorCisjaW52YWxpZF9uZWdhdGl2ZSB7
CisgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IGFhYWEgLTE7Cit9CisKKyNpbnZh
bGlkX2Zsb2F0IHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogYWFhYSAxLjU7
Cit9CisKKyNpbnZhbGlkX21pc3NpbmdfY29tbWEgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJl
LXNldHRpbmdzOiBhYWFhICJiYmJiIjsKK30KKworI2ludmFsaWRfbWlzc2luZ19jb21tYV9pZGVu
dCB7CisgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IGFhYWEgYmJiYjsKK30KKwor
I2ludmFsaWRfY29tbWEgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiAsOwor
fQorCisjaW52YWxpZF9lbmRpbmdfY29tbWEgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNl
dHRpbmdzOiBhYWFhLDsKK30KKworI2ludmFsaWRfYmVnaW5uaW5nX2NvbW1hIHsKKyAgICAtd2Vi
a2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogLGFhYWE7Cit9CisKKyNpbnZhbGlkX29uIHsKKyAg
ICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogYWFhYSwgb247Cit9CisKKyNpbnZhbGlk
XzAgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiAiYWFhYSIgMSwgImJiYmIi
LCAwOworfQorCisjaW52YWxpZF9jb21wb3NpdGUgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJl
LXNldHRpbmdzOiBhYWFhYSBvbiwgZGxpZyBvbiwgUEtSTiAtMTsKK30KKzwvc3R5bGU+Cis8c3R5
bGU+CitAZm9udC1mYWNlIHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xp
Z2EnOworfQorCitAZm9udC1mYWNlIHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5n
czogYWFhYWE7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJ2YWxpZF9u
b3JtYWwiPjwvZGl2PgorPGRpdiBpZD0idmFsaWRfdmFsdWVfMSI+PC9kaXY+Cis8ZGl2IGlkPSJ2
YWxpZF92YWx1ZV8yIj48L2Rpdj4KKzxkaXYgaWQ9InZhbGlkX3ZhbHVlX29uIj48L2Rpdj4KKzxk
aXYgaWQ9InZhbGlkX3ZhbHVlX29mZiI+PC9kaXY+Cis8ZGl2IGlkPSJ2YWxpZF92YWx1ZV9vbWl0
Ij48L2Rpdj4KKzxkaXYgaWQ9InZhbGlkX3ZhbHVlbGlzdCI+PC9kaXY+Cis8ZGl2IGlkPSJ2YWxp
ZF9zaW5nbGVxdW90ZSI+PC9kaXY+Cis8ZGl2IGlkPSJ2YWxpZF9pZGVudCI+PC9kaXY+Cis8ZGl2
IGlkPSJ2YWxpZF91bnVzdWFsX3RhZyI+PC9kaXY+Cis8ZGl2IGlkPSJ2YWxpZF90YWdfc3BhY2Ui
PjwvZGl2PgorPGRpdiBpZD0idmFsaWRfY2FzZXMiPjwvZGl2PgorPGRpdiBpZD0idmFsaWRfY29t
cG9zaXRlIj48L2Rpdj4KKworPGRpdiBpZD0iaW52YWxpZF8xIj48L2Rpdj4KKzxkaXYgaWQ9Imlu
dmFsaWRfb2ZmIj48L2Rpdj4KKzxkaXYgaWQ9ImludmFsaWRfbm9ybWFsX2R1cGxpY2F0ZSI+PC9k
aXY+Cis8ZGl2IGlkPSJpbnZhbGlkX25vcm1hbF9saXN0Ij48L2Rpdj4KKzxkaXYgaWQ9ImludmFs
aWRfbG9uZ2VyX2lkZW50Ij48L2Rpdj4KKzxkaXYgaWQ9ImludmFsaWRfbG9uZ2VyX3F1b3RlIj48
L2Rpdj4KKzxkaXYgaWQ9ImludmFsaWRfbmVnYXRpdmUiPjwvZGl2PgorPGRpdiBpZD0iaW52YWxp
ZF9mbG9hdCI+PC9kaXY+Cis8ZGl2IGlkPSJpbnZhbGlkX21pc3NpbmdfY29tbWEiPjwvZGl2Pgor
PGRpdiBpZD0iaW52YWxpZF9taXNzaW5nX2NvbW1hX2lkZW50Ij48L2Rpdj4KKzxkaXYgaWQ9Imlu
dmFsaWRfY29tbWEiPjwvZGl2PgorPGRpdiBpZD0iaW52YWxpZF9lbmRpbmdfY29tbWEiPjwvZGl2
PgorPGRpdiBpZD0iaW52YWxpZF9iZWdpbm5pbmdfY29tbWEiPjwvZGl2PgorPGRpdiBpZD0iaW52
YWxpZF9vbiI+PC9kaXY+Cis8ZGl2IGlkPSJpbnZhbGlkXzAiPjwvZGl2PgorCis8ZGl2IGlkPSJv
dXRlciIgc3R5bGU9Ii13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiBkbGlnOyI+CisgIDxk
aXYgaWQ9ImlubmVyIj48L2Rpdj4KKzwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHBh
cnNpbmcgb2YgdGhlIENTUzMgZm9udC1mZWF0dXJlLXNldHRpbmdzIHByb3BlcnR5LicpOworCitm
dW5jdGlvbiBwYXJzZVJlc3VsdE9mKGlkKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChpZCk7CisgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVs
ZW1lbnQpWyctd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyddOworfQorCitkZWJ1ZygnLSBU
ZXN0cyB2YWxpZCBpbnB1dHMuJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BhcnNlUmVzdWx0
T2YoInZhbGlkX25vcm1hbCIpJywgIm5vcm1hbCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdw
YXJzZVJlc3VsdE9mKCJ2YWxpZF92YWx1ZV8xIiknLCAiJ2RsaWcnIDEiKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygncGFyc2VSZXN1bHRPZigidmFsaWRfdmFsdWVfMiIpJywgIidzd3NoJyAyIik7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BhcnNlUmVzdWx0T2YoInZhbGlkX3ZhbHVlX29uIikn
LCAiJ3NtY3AnIDEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygncGFyc2VSZXN1bHRPZigidmFs
aWRfdmFsdWVfb2ZmIiknLCAiJ2xpZ2EnIDAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygncGFy
c2VSZXN1bHRPZigidmFsaWRfdmFsdWVfb21pdCIpJywgIidjMnNjJyAxIik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3BhcnNlUmVzdWx0T2YoInZhbGlkX3ZhbHVlbGlzdCIpJywgIid0bnVtJyAx
LCAnaGlzdCcgMSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYXJzZVJlc3VsdE9mKCJ2YWxp
ZF9zaW5nbGVxdW90ZSIpJywgIidQS1JOJyAxIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Bh
cnNlUmVzdWx0T2YoInZhbGlkX2lkZW50IiknLCAiJ2RsaWcnIDEiKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygncGFyc2VSZXN1bHRPZigidmFsaWRfdW51c3VhbF90YWciKScsICInIUAjJCcgMSIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYXJzZVJlc3VsdE9mKCJ2YWxpZF90YWdfc3BhY2Ui
KScsICInYSBiYycgMSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYXJzZVJlc3VsdE9mKCJ2
YWxpZF9jYXNlcyIpJywgIidkbGlnJyAxLCAnRExJRycgMSwgJ0RMaWcnIDEiKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygncGFyc2VSZXN1bHRPZigidmFsaWRfY29tcG9zaXRlIiknLCAiJ2RsaWcn
IDEsICdzbWNwJyAxLCAnbGlnYScgMCIpOworCitkZWJ1ZygnLSBUZXN0cyBpbnZhbGlkIGlucHV0
cy4gIFJlc3VsdHMgc2hvdWxkIGJlICJub3JtYWwiLicpOworc2hvdWxkQmUoJ3BhcnNlUmVzdWx0
T2YoImludmFsaWRfMSIpJywgJyJub3JtYWwiJyk7CitzaG91bGRCZSgncGFyc2VSZXN1bHRPZigi
aW52YWxpZF9vZmYiKScsICcibm9ybWFsIicpOworc2hvdWxkQmUoJ3BhcnNlUmVzdWx0T2YoImlu
dmFsaWRfbm9ybWFsX2R1cGxpY2F0ZSIpJywgJyJub3JtYWwiJyk7CitzaG91bGRCZSgncGFyc2VS
ZXN1bHRPZigiaW52YWxpZF9ub3JtYWxfbGlzdCIpJywgJyJub3JtYWwiJyk7CitzaG91bGRCZSgn
cGFyc2VSZXN1bHRPZigiaW52YWxpZF9sb25nZXJfaWRlbnQiKScsICcibm9ybWFsIicpOworc2hv
dWxkQmUoJ3BhcnNlUmVzdWx0T2YoImludmFsaWRfbG9uZ2VyX3F1b3RlIiknLCAnIm5vcm1hbCIn
KTsKK3Nob3VsZEJlKCdwYXJzZVJlc3VsdE9mKCJpbnZhbGlkX25lZ2F0aXZlIiknLCAnIm5vcm1h
bCInKTsKK3Nob3VsZEJlKCdwYXJzZVJlc3VsdE9mKCJpbnZhbGlkX2Zsb2F0IiknLCAnIm5vcm1h
bCInKTsKK3Nob3VsZEJlKCdwYXJzZVJlc3VsdE9mKCJpbnZhbGlkX21pc3NpbmdfY29tbWEiKScs
ICcibm9ybWFsIicpOworc2hvdWxkQmUoJ3BhcnNlUmVzdWx0T2YoImludmFsaWRfbWlzc2luZ19j
b21tYV9pZGVudCIpJywgJyJub3JtYWwiJyk7CitzaG91bGRCZSgncGFyc2VSZXN1bHRPZigiaW52
YWxpZF9jb21tYSIpJywgJyJub3JtYWwiJyk7CitzaG91bGRCZSgncGFyc2VSZXN1bHRPZigiaW52
YWxpZF9lbmRpbmdfY29tbWEiKScsICcibm9ybWFsIicpOworc2hvdWxkQmUoJ3BhcnNlUmVzdWx0
T2YoImludmFsaWRfYmVnaW5uaW5nX2NvbW1hIiknLCAnIm5vcm1hbCInKTsKK3Nob3VsZEJlKCdw
YXJzZVJlc3VsdE9mKCJpbnZhbGlkX29uIiknLCAnIm5vcm1hbCInKTsKK3Nob3VsZEJlKCdwYXJz
ZVJlc3VsdE9mKCJpbnZhbGlkXzAiKScsICcibm9ybWFsIicpOworCitkZWJ1ZygnLSBUZXN0cyBp
bmhlcml0LicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYXJzZVJlc3VsdE9mKCJvdXRlciIp
JywgIidkbGlnJyAxIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BhcnNlUmVzdWx0T2YoImlu
bmVyIiknLCAiJ2RsaWcnIDEiKTsKKworZGVidWcoJy0gVGVzdHMgQGZvbnQtZmFjZS4nKTsKK3Zh
ciBmb250RmFjZVJ1bGVWYWxpZCA9IGRvY3VtZW50LnN0eWxlU2hlZXRzWzJdLmNzc1J1bGVzWzBd
LnN0eWxlWyctd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyddOwordmFyIGZvbnRGYWNlUnVs
ZUludmFsaWQgPSBkb2N1bWVudC5zdHlsZVNoZWV0c1syXS5jc3NSdWxlc1sxXS5zdHlsZVsnLXdl
YmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3MnXTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZm9u
dEZhY2VSdWxlVmFsaWQnLCAiJ2xpZ2EnIDEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZm9u
dEZhY2VSdWxlSW52YWxpZCcsICIiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCBjZWFmMjMwNTA5YjgwODk2MmZmZWFkM2QyY2I5NGRlN2Q3Y2JhNTYwLi45OTM1NTQ0NjQ1MmRh
N2MxOTU4ZWJhNDllZWVkNmI5YzZkMWM0N2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDY1
LDYgKzQ2NSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBjc3MvQ1NTVW5pY29kZVJhbmdl
VmFsdWUuY3BwCiAgICAgY3NzL0NTU1ZhbHVlTGlzdC5jcHAKICAgICBjc3MvRm9udEZhbWlseVZh
bHVlLmNwcAorICAgIGNzcy9Gb250RmVhdHVyZVZhbHVlLmNwcAogICAgIGNzcy9Gb250VmFsdWUu
Y3BwCiAgICAgY3NzL01lZGlhRmVhdHVyZU5hbWVzLmNwcAogICAgIGNzcy9NZWRpYUxpc3QuY3Bw
CkBAIC0xMDYxLDYgKzEwNjIsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udEZhbGxiYWNrTGlzdC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250
RmFtaWx5LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmNwcAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0dlbmVyYXRlZEltYWdlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFn
ZVRyZWVOb2RlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGJiMTZjZmNiNWI0OTI2ODJkZTM2YzVlY2Y1MmMwNmE0MzQ3YTRjOTYuLjU3Nzc5MjA4
NDhhZmIwMjhjMWFjNjZkZmJkNmVjOTZmNDBiYWY0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2
NCBAQAorMjAxMS0wOC0wMiAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUGFyc2luZyBDU1MzIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBwcm9wZXJ0eQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM2MTgKKwor
ICAgICAgICBJbnRyb2R1Y2VzIENTUzMgZm9udC1mZWF0dXJlLXNldHRpbmdzIHByb3BlcnR5IGFz
IC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzLiAgVGhpcyBjaGFuZ2Ugb25seSBjb250YWlu
cyBwYXJzaW5nIHBhcnQuICBQYXJzZWQgaW5mb3JtYXRpb24gYXJlIHN0b3JlZCBpbiBGb250RGVz
Y3JpcHRpb24gY2xhc3MuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGVzdDogY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcGFyc2luZy5odG1sCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgRm9udEZlYXR1cmVWYWx1ZS57aCxjcHB9
IGFuZCBGb250RmVhdHVyZVNldHRpbmdzLntoLGNwcH0uCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAg
KiBXZWJDb3JlLnBybzogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2o6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajogRGl0dG8uCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3Bl
cnR5Q1NTVmFsdWUpOiBBZGRlZCBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRGZWF0dXJlU2V0dGluZ3Mu
CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnBhcnNlVmFsdWUpOiBBZGRlZCBwYXJzaW5nIGNvZGUgZm9yIC13ZWJraXQtZm9udC1mZWF0
dXJlLXNldHRpbmdzLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUZvbnRGZWF0
dXJlVGFnKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlRm9udEZl
YXR1cmVTZXR0aW5ncyk6IEFkZGVkLgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuaDogQWRkZWQg
cGFyc2VGb250RmVhdHVyZVNldHRpbmdzKCkuCisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFt
ZXMuaW46IEFkZGVkIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzLgorICAgICAgICAqIGNz
cy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0
b3I6OmFwcGx5RGVjbGFyYXRpb25zKTogTW9kaWZpZWQgYSBjb21waWxlIGFzc2VydCB0byBmb2xs
b3cgYWRkaW5nIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzLgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6IEFkZGVkIGEgY2FzZSBjbGF1c2Ug
Zm9yIENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1cmVTZXR0aW5ncy4KKyAgICAgICAgKiBjc3Mv
Q1NTVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc0ZvbnRGZWF0dXJlVmFs
dWUpOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjogQWRkZWQgJ29u
JyBhbmQgJ29mZicga2V5d29yZHMuCisgICAgICAgICogY3NzL0ZvbnRGZWF0dXJlVmFsdWUuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlVmFsdWU6OkZvbnRGZWF0dXJl
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVWYWx1ZTo6dmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVWYWx1ZTo6Y3NzVGV4dCk6CisgICAgICAgICogY3Nz
L0ZvbnRGZWF0dXJlVmFsdWUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVy
ZVZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVWYWx1ZTo6dGFn
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlVmFsdWU6OnNldFZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlVmFsdWU6OmlzRm9udEZlYXR1cmVWYWx1ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6bWFrZU5vcm1hbEZlYXR1cmVTZXR0aW5ncyk6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpGb250RGVzY3JpcHRpb24pOiBBZGRlZCBtX2Zl
YXR1cmVTZXR0aW5ncyBtZW1iZXIgdmFyaWFibGUuCisgICAgICAgIChXZWJDb3JlOjpGb250RGVz
Y3JpcHRpb246OmZlYXR1cmVTZXR0aW5ncyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dERlc2NyaXB0aW9uOjpzZXRGZWF0dXJlU2V0dGluZ3MpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkZvbnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9PSk6IE1vZGlmaWVkIHRvIHRha2UgaW50byBh
Y2NvdW50IG1fZmVhdHVyZVNldHRpbmdzCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dEZlYXR1cmVTZXR0aW5ncy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1
cmU6OkZvbnRGZWF0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlOjpvcGVyYXRv
cj0pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmU6Om9wZXJhdG9yPT0pOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVTZXR0aW5nczo6Rm9udEZlYXR1cmVTZXR0aW5ncyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlOjp0YWcpOgorICAgICAgICAoV2ViQ29yZTo6
Rm9udEZlYXR1cmU6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlU2V0dGlu
Z3M6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVyZVNldHRpbmdzOjphcHBl
bmQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVTZXR0aW5nczo6c2l6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGb250RmVhdHVyZVNldHRpbmdzOjpvcGVyYXRvcltdKToKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnRGZWF0dXJlU2V0dGluZ3M6OmF0KToKKwogMjAxMS0wOC0wMyAgTHVrZSBN
YWNwaGVyc29uICAgPG1hY3BoZXJzb25AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENsZWFuIHVw
IHZhbHVlIGNsYW1waW5nIGluIENTU1N0eWxlU2VsZWN0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQppbmRleCA2NzdmOGYwNWNjNmNiNjcwZmRkMTY2MzFmY2YxMGNiMzZjMWE0MTFkLi5h
MjQ4ZjczOTI0ZTllNDU2MGY4ZDFjMjMxZjViNDQ1YTIxYzEyZDlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KQEAgLTEwMTYsNiArMTAxNiw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvY3NzL0Rhc2hib2FyZFJlZ2lvbi5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9jc3MvRm9udEZhbWlseVZhbHVlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYW1p
bHlWYWx1ZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZlYXR1cmVWYWx1ZS5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVlLmggXAogCVNvdXJjZS9XZWJDb3Jl
L2Nzcy9Gb250VmFsdWUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udFZhbHVlLmggXAog
CVNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5jcHAgXApAQCAtMjUwMyw2ICsy
NTA1LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250RmFtaWx5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udEZhbWlseS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
RmFzdFBhdGguY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVh
dHVyZVNldHRpbmdzLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dEZlYXR1cmVTZXR0aW5ncy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRNZXRyaWNzLmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRPcmllbnRhdGlvbi5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCAwODM2MWI2NGU0NmNjNjJkMTMzZDFkYzliODgyZmFiZmQ4Mjg4
OWRkLi4wMTNhNjlmYTBjMzY1ZGNiMWI1ZDJmZjllYmQ4MWFmNjQ3ZTc5ZjRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC03MzYsNiArNzM2LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9Gb250RGVzY3JpcHRpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dEZhbGxiYWNrTGlzdC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFt
aWx5LmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGlu
Z3MuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udE1ldHJpY3MuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udE9yaWVudGF0aW9uLmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRSZW5kZXJpbmdNb2RlLmgnLApAQCAtMjM4NCw2
ICsyMzg1LDggQEAKICAgICAgICAgICAgICdjc3MvRGFzaGJvYXJkUmVnaW9uLmgnLAogICAgICAg
ICAgICAgJ2Nzcy9Gb250RmFtaWx5VmFsdWUuY3BwJywKICAgICAgICAgICAgICdjc3MvRm9udEZh
bWlseVZhbHVlLmgnLAorICAgICAgICAgICAgJ2Nzcy9Gb250RmVhdHVyZVZhbHVlLmNwcCcsCisg
ICAgICAgICAgICAnY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaCcsCiAgICAgICAgICAgICAnY3NzL0Zv
bnRWYWx1ZS5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9Gb250VmFsdWUuaCcsCiAgICAgICAgICAg
ICAnY3NzL01lZGlhRmVhdHVyZU5hbWVzLmNwcCcsCkBAIC0zMzQ0LDYgKzMzNDcsNyBAQAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3QuY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcCcsCisgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBhOGUzYjJiOTY4
YzQ1NDI1MjMxZTYxZGMxNDY4OWU1OWQ2ZDA3N2VlLi4xOTFmOWQ2NjMwZDEwMmJjYWFjMzE3MjI2
NzM2MDczM2Y2NzM5NzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNDI4LDYgKzQyOCw3IEBAIFNPVVJD
RVMgKz0gXAogICAgIGNzcy9DU1NVbmljb2RlUmFuZ2VWYWx1ZS5jcHAgXAogICAgIGNzcy9DU1NW
YWx1ZUxpc3QuY3BwIFwKICAgICBjc3MvRm9udEZhbWlseVZhbHVlLmNwcCBcCisgICAgY3NzL0Zv
bnRGZWF0dXJlVmFsdWUuY3BwIFwKICAgICBjc3MvRm9udFZhbHVlLmNwcCBcCiAgICAgY3NzL01l
ZGlhRmVhdHVyZU5hbWVzLmNwcCBcCiAgICAgY3NzL01lZGlhTGlzdC5jcHAgXApAQCAtOTc4LDYg
Kzk3OSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlw
dGlvbi5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3QuY3BwIFwK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcCBcCisgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwIFwKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50M0QuY3BwIFwKQEAgLTE0MjQsNiArMTQyNiw3IEBA
IEhFQURFUlMgKz0gXAogICAgIGNzcy9DU1NVbmljb2RlUmFuZ2VWYWx1ZS5oIFwKICAgICBjc3Mv
Q1NTVmFsdWVMaXN0LmggXAogICAgIGNzcy9Gb250RmFtaWx5VmFsdWUuaCBcCisgICAgY3NzL0Zv
bnRGZWF0dXJlVmFsdWUuaCBcCiAgICAgY3NzL0ZvbnRWYWx1ZS5oIFwKICAgICBjc3MvTWVkaWFG
ZWF0dXJlTmFtZXMuaCBcCiAgICAgY3NzL01lZGlhTGlzdC5oIFwKQEAgLTE5NzksNiArMTk4Miw3
IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREYXRhLmggXAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oIFwKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9Gb250RmFtaWx5LmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0
dGluZ3MuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udE1ldHJpY3MuaCBcCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJ
bWFnZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
aW5kZXggZDljMDM4Yzk4MTBkZTExNzBlMjUyY2FmMjUxMmM1OTgzMzVkYjc1Yy4uNjNhYzQzNTI3
MGQ5NDAwNzBmNDBhZjhkM2M0ZmI0ZDk4NThlMTY0MSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI3NzEzLDYgKzI3NzEzLDE0IEBACiAJCQkJ
CT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9y
bVxncmFwaGljc1xGb250RmVhdHVyZVNldHRpbmdzLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4K
KwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZvbnRG
ZWF0dXJlU2V0dGluZ3MuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZvbnRGYXN0UGF0aC5jcHAiCiAJCQkJ
CT4KIAkJCQk8L0ZpbGU+CkBAIC0zMzA3OCw2ICszMzA4NiwxNCBAQAogCQkJCT4KIAkJCTwvRmls
ZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcRm9udEZlYXR1cmVWYWx1ZS5j
cHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNz
c1xGb250RmVhdHVyZVZhbHVlLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGNzc1xGb250VmFsdWUuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA3ZmFiODZhYmY1Y2U4ODM0OWQxMDRjODhkYzI5YjUxMmVmNTRkNGY1Li44MzU1ZDZmZGJhZGM2
ZTc3NDdkYjBmZjU2MDVhNWY2YWE3MmEwMGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjc4LDYgKzEyNzgsMTAgQEAKIAkJ
NDlGRkJGNDAxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUZGQkYzRTExQzkzRUUzMDA2QTcxMTgg
LyogV2ViR0xMYXllci5tbSAqLzsgfTsKIAkJNEEwREEyRkUxMjlCMjQxOTAwQUI2MUUxIC8qIEZv
cm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0QTBEQTJGQzEyOUIyNDE5MDBBQjYxRTEgLyogRm9ybUFzc29jaWF0ZWRF
bGVtZW50LmNwcCAqLzsgfTsKIAkJNEEwREEyRkYxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1Bc3Nv
Y2lhdGVkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEEwREEyRkQxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1Bc3NvY2lhdGVkRWxlbWVudC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTRBNkU5
RkMzMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNkU5RkMxMTNDMTdEMUQwMDQ2QTdG
OCAvKiBGb250RmVhdHVyZVZhbHVlLmNwcCAqLzsgfTsKKwkJNEE2RTlGQzQxM0MxN0QxRDAwNDZB
N0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDRBNkU5RkMyMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZh
bHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
NEE2RTlGQzcxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2RTlGQzUxM0MxN0Q1
NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwICovOyB9OworCQk0QTZFOUZDODEz
QzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2RTlGQzYxM0MxN0Q1NzAwNDZBN0Y4IC8q
IEZvbnRGZWF0dXJlU2V0dGluZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk0QThDOTZFQjBCRTY5MDMyMDA0RUVGRjAgLyogRnJhbWVTZWxlY3Rp
b25NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
QThDOTZFQTBCRTY5MDMyMDA0RUVGRjAgLyogRnJhbWVTZWxlY3Rpb25NYWMubW0gKi87IH07CiAJ
CTRBQ0JDMEJFMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEFDQkMwQkMxMjcxM0NCRDAwOTRGOUIy
IC8qIENsYXNzTGlzdC5jcHAgKi87IH07CiAJCTRBQ0JDMEJGMTI3MTNDQkQwMDk0RjlCMiAvKiBD
bGFzc0xpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDRBQ0JDMEJEMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuaCAqLzsgfTsKQEAgLTc4Njgs
NiArNzg3MiwxMCBAQAogCQk0OUZGQkYzRTExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkdMTGF5ZXIubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBMERBMkZDMTI5QjI0MTkwMEFCNjFFMSAv
KiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNEEwREEyRkQxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1Bc3NvY2lhdGVkRWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtQXNzb2NpYXRlZEVsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE2RTlGQzExM0MxN0QxRDAwNDZB
N0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRm9udEZlYXR1cmVWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTRBNkU5RkMyMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRGZWF0dXJlVmFsdWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE2RTlGQzUxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0
dXJlU2V0dGluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9u
dEZlYXR1cmVTZXR0aW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNkU5
RkM2MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBmaWxl
RW5jb2RpbmcgPSA0OyBwYXRoID0gRm9udEZlYXR1cmVTZXR0aW5ncy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0QThDOTZFQTBCRTY5MDMyMDA0RUVGRjAgLyogRnJhbWVTZWxlY3Rp
b25NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gRnJhbWVT
ZWxlY3Rpb25NYWMubW07IHBhdGggPSBtYWMvRnJhbWVTZWxlY3Rpb25NYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBQ0JDMEJDMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xp
c3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xhc3NMaXN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEFDQkMwQkQxMjcxM0NCRDAwOTRGOUIy
IC8qIENsYXNzTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGFzc0xp
c3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTg1LDYgKzE4MTkzLDggQEAK
IAkJCQlCMkMzREE1ODBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udEZhbWlseS5jcHAgKi8sCiAJCQkJ
QjJDM0RBNTkwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRGYW1pbHkuaCAqLywKIAkJCQk3MjYyNkUw
MTBFRjAyMkZFMDBBMDdFMjAgLyogRm9udEZhc3RQYXRoLmNwcCAqLywKKwkJCQk0QTZFOUZDNTEz
QzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgKi8sCisJCQkJNEE2RTlG
QzYxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuaCAqLywKIAkJCQkwODQ1
NjgwNzEyQjkwREE2MDA5NjBBOUYgLyogRm9udE1ldHJpY3MuaCAqLywKIAkJCQlGN0EwMzRDMzEy
NkJGNkJFMDA3REMxOUUgLyogRm9udE9yaWVudGF0aW9uLmggKi8sCiAJCQkJODRCNjI2ODQxMzMx
MzhGOTAwOTVBNDg5IC8qIEZvbnRQbGF0Zm9ybURhdGEuY3BwICovLApAQCAtMTkzOTgsNiArMTk0
MDgsOCBAQAogCQkJCUE4MEU2Q0M5MEExOTg5Q0EwMDdGQjhDNSAvKiBGb250RmFtaWx5VmFsdWUu
aCAqLywKIAkJCQlBODBFNkNDNzBBMTk4OUNBMDA3RkI4QzUgLyogRm9udFZhbHVlLmNwcCAqLywK
IAkJCQlBODBFNkNDMzBBMTk4OUNBMDA3RkI4QzUgLyogRm9udFZhbHVlLmggKi8sCisJCQkJNEE2
RTlGQzExM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuY3BwICovLAorCQkJCTRB
NkU5RkMyMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmggKi8sCiAJCQkJQ0Q0
RTBBRkExMUY3QkMyNzAwOUQzODExIC8qIGZ1bGxzY3JlZW4uY3NzICovLAogCQkJCUNEQkQ5M0JB
MTMzM0JENEIwMDI1NzBFMyAvKiBmdWxsc2NyZWVuUXVpY2tUaW1lLmNzcyAqLywKIAkJCQk5M0NB
NEM5OTA5REY5M0ZBMDBERjg2NzcgLyogaHRtbC5jc3MgKi8sCkBAIC0yMTQxNiw2ICsyMTQyOCw4
IEBACiAJCQkJQjJDM0RBNjgwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRGYWxsYmFja0xpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyQzNEQTZBMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250RmFtaWx5
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNGMzBBMTk4OUNBMDA3RkI4QzUgLyogRm9udEZh
bWlseVZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTZFOUZDNDEzQzE3RDFEMDA0NkE3Rjgg
LyogRm9udEZlYXR1cmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEE2RTlGQzgxM0MxN0Q1
NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
NDU2ODA4MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmljcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjdBMDM0QzQxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjUzMjBENkIxMjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQbGF0Zm9ybURhdGEu
aCBpbiBIZWFkZXJzICovLApAQCAtMjQzNjIsNiArMjQzNzYsOCBAQAogCQkJCUIyQzNEQTY5MEQw
MDZDRDYwMEVGNkYyNiAvKiBGb250RmFtaWx5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2
Q0VDMEExOTg5Q0EwMDdGQjhDNSAvKiBGb250RmFtaWx5VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNzI2MjZFMDIwRUYwMjJGRTAwQTA3RTIwIC8qIEZvbnRGYXN0UGF0aC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk0QTZFOUZDMzEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0QTZFOUZDNzEzQzE3RDU3MDA0NkE3RjggLyogRm9u
dEZlYXR1cmVTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkFGRkM4MDBEMDBBNUMx
MDAzMDA3NEQgLyogRm9udE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg0QjYyNjg1MTMzMTM4
RjkwMDk1QTQ4OSAvKiBGb250UGxhdGZvcm1EYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI1
MzIwRDZDMTIyQTI0RTkwMDJEMTQ0MCAvKiBGb250UGxhdGZvcm1EYXRhQ29jb2EubW0gaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHAKaW5kZXggNWU3MTBkNzRjZDVjNDhiZjI4MTUxZTQ4ZjU3ODA2MjE3NmRjYWU1
Ny4uNjQ2OWY1YTE2MTNkODc3NmY4MjUzM2VhYzlhMDdkMGJiZWZiMmM0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTQy
LDYgKzQyLDggQEAKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGb250RmVhdHVyZVNl
dHRpbmdzLmgiCisjaW5jbHVkZSAiRm9udEZlYXR1cmVWYWx1ZS5oIgogI2luY2x1ZGUgIlJlY3Qu
aCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgpAQCAt
MTE0MSw2ICsxMTQzLDE4IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShpbnQgcHJvcGVyCiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybiBw
cmltaXRpdmVWYWx1ZUNhY2hlLT5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb3JtYWwp
OworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1cmVTZXR0aW5nczogewor
ICAgICAgICAgICAgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZVNldHRpbmdzID0g
c3R5bGUtPmZvbnREZXNjcmlwdGlvbigpLmZlYXR1cmVTZXR0aW5ncygpOworICAgICAgICAgICAg
aWYgKCFmZWF0dXJlU2V0dGluZ3MgfHwgIWZlYXR1cmVTZXR0aW5ncy0+c2l6ZSgpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZUNhY2hlLT5jcmVhdGVJZGVudGlmaWVyVmFs
dWUoQ1NTVmFsdWVOb3JtYWwpOworICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlz
dCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBhcmF0ZWQoKTsKKyAgICAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBmZWF0dXJlU2V0dGluZ3MtPnNpemUoKTsgKytpKSB7Cisg
ICAgICAgICAgICAgICAgY29uc3QgRm9udEZlYXR1cmUmIGZlYXR1cmUgPSBmZWF0dXJlU2V0dGlu
Z3MtPmF0KGkpOworICAgICAgICAgICAgICAgIFJlZlB0cjxGb250RmVhdHVyZVZhbHVlPiBmZWF0
dXJlVmFsdWUgPSBGb250RmVhdHVyZVZhbHVlOjpjcmVhdGUoZmVhdHVyZS50YWcoKSwgZmVhdHVy
ZS52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoZmVhdHVyZVZhbHVlLnJl
bGVhc2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbGlzdC5yZWxlYXNl
KCk7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUhlaWdodDoKICAgICAgICAg
ICAgIGlmIChyZW5kZXJlcikKICAgICAgICAgICAgICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4
ZWxWYWx1ZShzaXppbmdCb3gocmVuZGVyZXIpLmhlaWdodCgpLCBzdHlsZS5nZXQoKSwgcHJpbWl0
aXZlVmFsdWVDYWNoZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDVkOGZkZTRiNTc4
ZDUzZjFhMDk4YTBkZjliYTZiZGI5ZWViODc0NmUuLmUzNzZkODY3NDY0NjJhOGUzN2I1YTdhNzNh
YTA4NzY5ZWRhYzU0YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC02MSw2ICs2MSw3
IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIK
ICNpbmNsdWRlICJGb250RmFtaWx5VmFsdWUuaCIKKyNpbmNsdWRlICJGb250RmVhdHVyZVZhbHVl
LmgiCiAjaW5jbHVkZSAiRm9udFZhbHVlLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5o
IgogI2luY2x1ZGUgIkhhc2hUb29scy5oIgpAQCAtMjA4NCw2ICsyMDg1LDEyIEBAIGJvb2wgQ1NT
UGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICBl
bHNlCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VMaW5lQm94Q29udGFpbihpbXBvcnRhbnQpOwog
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1cmVTZXR0
aW5nczoKKyAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFsKQorICAgICAgICAgICAgdmFs
aWRQcmltaXRpdmUgPSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gcGFy
c2VGb250RmVhdHVyZVNldHRpbmdzKGltcG9ydGFudCk7CisgICAgICAgIGJyZWFrOwogCiAjaWYg
RU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRXcmFwU2hh
cGU6CkBAIC02MzAyLDYgKzYzMDksNjYgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlTGluZUJveENv
bnRhaW4oYm9vbCBpbXBvcnRhbnQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgQ1NTUGFy
c2VyOjpwYXJzZUZvbnRGZWF0dXJlVGFnKENTU1ZhbHVlTGlzdCogc2V0dGluZ3MpCit7CisgICAg
Ly8gRmVhdHVyZSB0YWcgbmFtZSBjb25zaXN0cyBvZiA0LWxldHRlciBjaGFyYWN0ZXJzLgorICAg
IHN0YXRpYyBjb25zdCBpbnQgdGFnTmFtZUxlbmd0aCA9IDQ7CisKKyAgICBDU1NQYXJzZXJWYWx1
ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworICAgIC8vIEZlYXR1cmUgdGFnIG5h
bWUgY29tZXMgZmlyc3QKKyAgICBpZiAodmFsdWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19TVFJJTkcgJiYgdmFsdWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVO
VCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICh2YWx1ZS0+c3RyaW5nLmxlbmd0aCAh
PSB0YWdOYW1lTGVuZ3RoKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCB0YWdOYW1lTGVuZ3RoOyArK2kpIHsKKyAgICAgICAgLy8gTGltaXRzIHRoZSByYW5n
ZSBvZiBjaGFyYWN0ZXJzIHRvIDB4MjAtMHg3RSwgZm9sbG93aW5nIHRoZSB0YWcgbmFtZSBydWxl
cyBkZWZpZW5kIGluIHRoZSBPcGVuVHlwZSBzcGVjaWZpY2F0aW9uLgorICAgICAgICBVQ2hhciBj
aGFyYWN0ZXIgPSB2YWx1ZS0+c3RyaW5nLmNoYXJhY3RlcnNbaV07CisgICAgICAgIGlmIChjaGFy
YWN0ZXIgPCAweDIwIHx8IGNoYXJhY3RlciA+IDB4N0UpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorICAgIFJlZlB0cjxGb250RmVhdHVyZVZhbHVlPiBwYXJzZWRWYWx1ZSA9IEZv
bnRGZWF0dXJlVmFsdWU6OmNyZWF0ZSh2YWx1ZS0+c3RyaW5nLCAxKTsKKworICAgIC8vIEZlYXR1
cmUgdGFnIHZhbHVlcyBjb3VsZCBmb2xsb3c6IDxpbnRlZ2VyPiB8IG9uIHwgb2ZmCisgICAgdmFs
dWUgPSBtX3ZhbHVlTGlzdC0+bmV4dCgpOworICAgIGlmICh2YWx1ZSkgeworICAgICAgICBpZiAo
dmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIgJiYgdmFsdWUtPmlz
SW50ICYmIHZhbHVlLT5mVmFsdWUgPj0gMCkgeworICAgICAgICAgICAgcGFyc2VkVmFsdWUtPnNl
dFZhbHVlKHZhbHVlLT5mVmFsdWUpOworICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsK
KyAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVPbiB8fCB2YWx1ZS0+aWQg
PT0gQ1NTVmFsdWVPZmYpIHsKKyAgICAgICAgICAgIHBhcnNlZFZhbHVlLT5zZXRWYWx1ZSh2YWx1
ZS0+aWQgPT0gQ1NTVmFsdWVPbik7CisgICAgICAgICAgICBtX3ZhbHVlTGlzdC0+bmV4dCgpOwor
ICAgICAgICB9CisgICAgfQorICAgIHNldHRpbmdzLT5hcHBlbmQocGFyc2VkVmFsdWUucmVsZWFz
ZSgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDU1NQYXJzZXI6OnBhcnNlRm9udEZl
YXR1cmVTZXR0aW5ncyhib29sIGltcG9ydGFudCkKK3sKKyAgICBpZiAobV92YWx1ZUxpc3QtPnNp
emUoKSA9PSAxICYmIG1fdmFsdWVMaXN0LT5jdXJyZW50KCktPmlkID09IENTU1ZhbHVlTm9ybWFs
KSB7CisgICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbm9ybWFsVmFsdWUgPSBwcmlt
aXRpdmVWYWx1ZUNhY2hlKCktPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vcm1hbCk7
CisgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CisgICAgICAgIGFkZFByb3BlcnR5KENTU1By
b3BlcnR5V2Via2l0Rm9udEZlYXR1cmVTZXR0aW5ncywgbm9ybWFsVmFsdWUucmVsZWFzZSgpLCBp
bXBvcnRhbnQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBSZWZQdHI8Q1NT
VmFsdWVMaXN0PiBzZXR0aW5ncyA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBhcmF0ZWQo
KTsKKyAgICBmb3IgKENTU1BhcnNlclZhbHVlKiB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50
KCk7IHZhbHVlOyB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5uZXh0KCkpIHsKKyAgICAgICAgaWYgKCFw
YXJzZUZvbnRGZWF0dXJlVGFnKHNldHRpbmdzLmdldCgpKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgICAgICAvLyBJZiB0aGUgbGlzdCBpc24ndCBwYXJzZWQgZnVsbHksIHRoZSBj
dXJyZW50IHZhbHVlIHNob3VsZCBiZSBjb21tYS4KKyAgICAgICAgdmFsdWUgPSBtX3ZhbHVlTGlz
dC0+Y3VycmVudCgpOworICAgICAgICBpZiAodmFsdWUgJiYgISh2YWx1ZS0+dW5pdCA9PSBDU1NQ
YXJzZXJWYWx1ZTo6T3BlcmF0b3IgJiYgdmFsdWUtPmlWYWx1ZSA9PSAnLCcpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAoc2V0dGluZ3MtPmxlbmd0aCgpKSB7Cisg
ICAgICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1cmVTZXR0aW5ncywg
c2V0dGluZ3MucmVsZWFzZSgpLCBpbXBvcnRhbnQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgaW5saW5lIGludCB5eWVycm9yKGNv
bnN0IGNoYXIqKSB7IHJldHVybiAxOyB9CiAKICNkZWZpbmUgRU5EX1RPS0VOIDAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuaAppbmRleCBiZDFjNzQ2ODdjNjE5MGY1NGY4NDY5YWUzNTM2NjFjMTJlM2VhNDQ3
Li4xMDlkZTA1Yjk3YzEyMjU5M2UwMDBmZjYyM2IwOWZkODVmMTkwN2QzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oCkBAIC0xOTcsNiArMTk3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIGJvb2wgcGFyc2VMaW5lQm94Q29udGFpbihib29sIGltcG9ydGFudCk7CiAKKyAgICAgICAg
Ym9vbCBwYXJzZUZvbnRGZWF0dXJlVGFnKENTU1ZhbHVlTGlzdCopOworICAgICAgICBib29sIHBh
cnNlRm9udEZlYXR1cmVTZXR0aW5ncyhib29sIGltcG9ydGFudCk7CisKICAgICAgICAgaW50IHl5
cGFyc2UoKTsKIAogICAgICAgICBDU1NQYXJzZXJTZWxlY3RvciogY3JlYXRlRmxvYXRpbmdTZWxl
Y3RvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCA5YzIwZjdm
Y2YyNTFjMTJkOGIwNzVkMGIxZTUxZTU4Mzk2OGU3N2QxLi40NjU2ZTZjNjNiZTA0NTY5Y2JmOTEx
ZTU4Njk4ODI0ZDVhNDZmYzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJv
cGVydHlOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5p
bgpAQCAtMjAsNiArMjAsNyBAQCBmb250LXN0eWxlCiBmb250LXZhcmlhbnQKIGZvbnQtd2VpZ2h0
CiB0ZXh0LXJlbmRlcmluZworLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3MKIC13ZWJraXQt
Zm9udC1zbW9vdGhpbmcKIC13ZWJraXQtdGV4dC1vcmllbnRhdGlvbgogLWVwdWItdGV4dC1vcmll
bnRhdGlvbiA9IC13ZWJraXQtdGV4dC1vcmllbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlU2VsZWN0b3IuY3BwCmluZGV4IGRhMDY2ZjkzMDc5MDUzNmE2NWNhYmI2NTg5ZjVkYjJkODNh
YzY0ZjQuLjRjNDI1YWE0ODlhMzI3ZWZhNjJkMGJiZGRmYTEwM2Q3OWNiZWQ1M2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNs
dWRlICJDb3VudGVyLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
Rm9udEZhbWlseVZhbHVlLmgiCisjaW5jbHVkZSAiRm9udEZlYXR1cmVWYWx1ZS5oIgogI2luY2x1
ZGUgIkZvbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxl
Y3Rpb24uaCIKQEAgLTM0NzksNyArMzQ4MCw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBw
bHlEZWNsYXJhdGlvbnMoYm9vbCBpc0ltcG9ydGFudCwgaW50IHN0YXJ0SW5kZXgsIGludCBlCiAK
ICAgICAgICAgICAgICAgICBpZiAoYXBwbHlGaXJzdCkgewogICAgICAgICAgICAgICAgICAgICBD
T01QSUxFX0FTU0VSVChmaXJzdENTU1Byb3BlcnR5ID09IENTU1Byb3BlcnR5Q29sb3IsIENTU19j
b2xvcl9pc19maXJzdF9wcm9wZXJ0eSk7Ci0gICAgICAgICAgICAgICAgICAgIENPTVBJTEVfQVNT
RVJUKENTU1Byb3BlcnR5Wm9vbSA9PSBDU1NQcm9wZXJ0eUNvbG9yICsgMTQsIENTU196b29tX2lz
X2VuZF9vZl9maXJzdF9wcm9wX3JhbmdlKTsKKyAgICAgICAgICAgICAgICAgICAgQ09NUElMRV9B
U1NFUlQoQ1NTUHJvcGVydHlab29tID09IENTU1Byb3BlcnR5Q29sb3IgKyAxNSwgQ1NTX3pvb21f
aXNfZW5kX29mX2ZpcnN0X3Byb3BfcmFuZ2UpOwogICAgICAgICAgICAgICAgICAgICBDT01QSUxF
X0FTU0VSVChDU1NQcm9wZXJ0eUxpbmVIZWlnaHQgPT0gQ1NTUHJvcGVydHlab29tICsgMSwgQ1NT
X2xpbmVfaGVpZ2h0X2lzX2FmdGVyX3pvb20pOwogCiAgICAgICAgICAgICAgICAgICAgIC8vIGdp
dmUgc3BlY2lhbCBwcmlvcml0eSB0byBmb250LXh4eCwgY29sb3IgcHJvcGVydGllcywgZXRjCkBA
IC01MDgwLDYgKzUwODEsMzIgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5
KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAgICAgICByZXR1cm47CiAjZW5kaWYKIAorICAg
IC8vIENTUyBGb250cyBNb2R1bGUgTGV2ZWwgMworICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRG
b250RmVhdHVyZVNldHRpbmdzOiB7CisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSAmJiBwcmlt
aXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vcm1hbCkgeworICAgICAgICAgICAg
c2V0Rm9udERlc2NyaXB0aW9uKG1fc3R5bGUtPmZvbnREZXNjcmlwdGlvbigpLm1ha2VOb3JtYWxG
ZWF0dXJlU2V0dGluZ3MoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoIXZhbHVlLT5pc1ZhbHVlTGlzdCgpKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24gPSBtX3N0eWxlLT5mb250RGVz
Y3JpcHRpb24oKTsKKyAgICAgICAgQ1NTVmFsdWVMaXN0KiBsaXN0ID0gc3RhdGljX2Nhc3Q8Q1NT
VmFsdWVMaXN0Kj4odmFsdWUpOworICAgICAgICBSZWZQdHI8Rm9udEZlYXR1cmVTZXR0aW5ncz4g
c2V0dGluZ3MgPSBGb250RmVhdHVyZVNldHRpbmdzOjpjcmVhdGUoKTsKKyAgICAgICAgaW50IGxl
biA9IGxpc3QtPmxlbmd0aCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgKytp
KSB7CisgICAgICAgICAgICBDU1NWYWx1ZSogaXRlbSA9IGxpc3QtPml0ZW1XaXRob3V0Qm91bmRz
Q2hlY2soaSk7CisgICAgICAgICAgICBpZiAoIWl0ZW0tPmlzRm9udEZlYXR1cmVWYWx1ZSgpKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgRm9udEZlYXR1cmVWYWx1ZSog
ZmVhdHVyZSA9IHN0YXRpY19jYXN0PEZvbnRGZWF0dXJlVmFsdWUqPihpdGVtKTsKKyAgICAgICAg
ICAgIHNldHRpbmdzLT5hcHBlbmQoRm9udEZlYXR1cmUoZmVhdHVyZS0+dGFnKCksIGZlYXR1cmUt
PnZhbHVlKCkpKTsKKyAgICAgICAgfQorICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0RmVhdHVy
ZVNldHRpbmdzKHNldHRpbmdzLnJlbGVhc2UoKSk7CisgICAgICAgIHNldEZvbnREZXNjcmlwdGlv
bihmb250RGVzY3JpcHRpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgLy8gVGhl
c2UgcHJvcGVydGllcyBhcmUgaW1wbGVtZW50ZWQgaW4gdGhlIENTU1N0eWxlQXBwbHlQcm9wZXJ0
eSBsb29rdXAgdGFibGUuCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbG9yOgogICAgIGNhc2UgQ1NT
UHJvcGVydHlEaXJlY3Rpb246CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCmluZGV4IDEwYWMzNWMzYTI3ODY1
YTVjNGFlODU1YTA1MWEwODBhZGI5ZjlmNGMuLmM1MzVkYTI1ZTExNDk2ZjAwZWEzN2U2YjEyNGQz
MWIzZjAzMjM3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCkBAIC01OCw2ICs1OCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgaXNGbGV4VmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogI2VuZGlmCiAgICAgdmlydHVhbCBib29sIGlzRm9udEZhbWlseVZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNGb250RmVhdHVyZVZhbHVlKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNGb250VmFsdWUoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlR2VuZXJhdG9yVmFs
dWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlVmFs
dWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3
b3Jkcy5pbgppbmRleCAwNTM1YjViNTkyZWQ4MTc0ODE0MGI0NzkyZDlhNmIzMDJjNjgyOTJjLi4w
NmE2YWEyMzY1NGVhZjgwNTFlNDNiMmY3MmJlMDI2ZjkyN2YzMjk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtODA2LDYgKzgwNiwxMCBAQCBnbHlwaHMKIGlubGlu
ZS1ib3gKIHJlcGxhY2VkCiAKKy8vIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzCitvbgor
b2ZmCisKIC8vIGltYWdlLXJlbmRlcmluZwogLy9hdXRvCiAvL29wdGltaXplU3BlZWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTY4NGJmOWYwODY3
ZGQyMWUxOGZlODE1YjhlMTk5OTljNTZhNmJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRm9udEZlYXR1cmVWYWx1ZS5oIgorCisj
aW5jbHVkZSAiQ1NTUGFyc2VyLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitGb250RmVhdHVyZVZhbHVlOjpGb250RmVhdHVyZVZhbHVlKGNvbnN0IFN0cmluZyYgdGFnLCBp
bnQgdmFsdWUpCisgICAgOiBtX3RhZyh0YWcpCisgICAgLCBtX3ZhbHVlKHZhbHVlKQoreworfQor
CitTdHJpbmcgRm9udEZlYXR1cmVWYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0Cit7CisgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKCInIik7CisgICAgYnVpbGRlci5h
cHBlbmQobV90YWcpOworICAgIGJ1aWxkZXIuYXBwZW5kKCInICIpOworICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZzo6bnVtYmVyKG1fdmFsdWUpKTsKKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZlYXR1cmVW
YWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kODk4YzBjMTAwYmViMTU5MDhkMzRmOGZlODgxNjM4ZDgzZWZlYjYxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaApAQCAtMCwwICsxLDU2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBGb250RmVhdHVyZVZhbHVlX2gKKyNkZWZpbmUgRm9udEZl
YXR1cmVWYWx1ZV9oCisKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRm9udEZlYXR1cmVWYWx1
ZSA6IHB1YmxpYyBDU1NWYWx1ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Rm9u
dEZlYXR1cmVWYWx1ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdGFnLCBpbnQgdmFsdWUpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvbnRGZWF0dXJlVmFsdWUodGFnLCB2YWx1
ZSkpOworICAgIH0KKworICAgIGNvbnN0IFN0cmluZyYgdGFnKCkgY29uc3QgeyByZXR1cm4gbV90
YWc7IH0KKyAgICBpbnQgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CisgICAgdm9p
ZCBzZXRWYWx1ZShpbnQgdmFsdWUpIHsgbV92YWx1ZSA9IHZhbHVlOyB9CisgICAgdmlydHVhbCBT
dHJpbmcgY3NzVGV4dCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIEZvbnRGZWF0dXJlVmFsdWUo
Y29uc3QgU3RyaW5nJiwgaW50KTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNGb250RmVhdHVyZVZhbHVl
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgU3RyaW5nIG1fdGFnOworICAgIGludCBt
X3ZhbHVlOworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcAppbmRleCA1OGRk
ZjgxOTJhNDIyZGExZWI5NTE5ZWY1N2Q5NmNmNzM2ZWFiZjIwLi40NmQxMDhmZTFhNmE3NjRjNjMy
YjQwNDYwMGIxMWFmODdkZTY2OGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAKQEAgLTk4LDQgKzk4LDExIEBAIEZvbnRU
cmFpdHNNYXNrIEZvbnREZXNjcmlwdGlvbjo6dHJhaXRzTWFzaygpIGNvbnN0CiAgICAgCiB9CiAK
K0ZvbnREZXNjcmlwdGlvbiBGb250RGVzY3JpcHRpb246Om1ha2VOb3JtYWxGZWF0dXJlU2V0dGlu
Z3MoKSBjb25zdAoreworICAgIEZvbnREZXNjcmlwdGlvbiBub3JtYWxEZXNjcmlwdGlvbigqdGhp
cyk7CisgICAgbm9ybWFsRGVzY3JpcHRpb24uc2V0RmVhdHVyZVNldHRpbmdzKDApOworICAgIHJl
dHVybiBub3JtYWxEZXNjcmlwdGlvbjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaApp
bmRleCA1ZDUzMzg4ZGRjYjI1ODNlMWZlOTY0MjA4NmU1MGU4ZGEyNDJhYzliLi43MmM3MmJkMzEz
MmJkOTk5MGRjYzIyMWNmYmY4NWEyNDg3MmUwYTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaApAQCAtMjYsNiArMjYsNyBAQAog
I2RlZmluZSBGb250RGVzY3JpcHRpb25faAogCiAjaW5jbHVkZSAiRm9udEZhbWlseS5oIgorI2lu
Y2x1ZGUgIkZvbnRGZWF0dXJlU2V0dGluZ3MuaCIKICNpbmNsdWRlICJGb250T3JpZW50YXRpb24u
aCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgIkZvbnRTbW9vdGhp
bmdNb2RlLmgiCkBAIC0zNSw2ICszNiw4IEBACiAjaW5jbHVkZSAiVGV4dFJlbmRlcmluZ01vZGUu
aCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gRm9udFdlaWdodCB7CkBAIC0xMTQsNiAr
MTE3LDggQEAgcHVibGljOgogICAgIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fb3JpZW50YXRpb247IH0KICAgICBUZXh0T3JpZW50YXRpb24gdGV4dE9yaWVu
dGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0T3JpZW50YXRpb247IH0KICAgICBGb250V2lk
dGhWYXJpYW50IHdpZHRoVmFyaWFudCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGhWYXJpYW50OyB9
CisgICAgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZVNldHRpbmdzKCkgY29uc3QgeyByZXR1
cm4gbV9mZWF0dXJlU2V0dGluZ3MuZ2V0KCk7IH0KKyAgICBGb250RGVzY3JpcHRpb24gbWFrZU5v
cm1hbEZlYXR1cmVTZXR0aW5ncygpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRGYW1pbHkoY29uc3Qg
Rm9udEZhbWlseSYgZmFtaWx5KSB7IG1fZmFtaWx5TGlzdCA9IGZhbWlseTsgfQogICAgIHZvaWQg
c2V0Q29tcHV0ZWRTaXplKGZsb2F0IHMpIHsgQVNTRVJUKGlzZmluaXRlKHMpKTsgbV9jb21wdXRl
ZFNpemUgPSBzOyB9CkBAIC0xMzgsNiArMTQzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T3Jp
ZW50YXRpb24oRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKSB7IG1fb3JpZW50YXRpb24gPSBv
cmllbnRhdGlvbjsgfQogICAgIHZvaWQgc2V0VGV4dE9yaWVudGF0aW9uKFRleHRPcmllbnRhdGlv
biB0ZXh0T3JpZW50YXRpb24pIHsgbV90ZXh0T3JpZW50YXRpb24gPSB0ZXh0T3JpZW50YXRpb247
IH0KICAgICB2b2lkIHNldFdpZHRoVmFyaWFudChGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFu
dCkgeyBtX3dpZHRoVmFyaWFudCA9IHdpZHRoVmFyaWFudDsgfQorICAgIHZvaWQgc2V0RmVhdHVy
ZVNldHRpbmdzKFBhc3NSZWZQdHI8Rm9udEZlYXR1cmVTZXR0aW5ncz4gc2V0dGluZ3MpIHsgbV9m
ZWF0dXJlU2V0dGluZ3MgPSBzZXR0aW5nczsgfQogCiBwcml2YXRlOgogICAgIEZvbnRGYW1pbHkg
bV9mYW1pbHlMaXN0OyAvLyBUaGUgbGlzdCBvZiBmb250IGZhbWlsaWVzIHRvIGJlIHVzZWQuCkBA
IC0xNTEsNiArMTU3LDggQEAgcHJpdmF0ZToKIAogICAgIEZvbnRXaWR0aFZhcmlhbnQgbV93aWR0
aFZhcmlhbnQ7CiAKKyAgICBSZWZQdHI8Rm9udEZlYXR1cmVTZXR0aW5ncz4gbV9mZWF0dXJlU2V0
dGluZ3M7CisKICAgICB1bnNpZ25lZCBtX2l0YWxpYyA6IDE7IC8vIEZvbnRJdGFsaWMKICAgICB1
bnNpZ25lZCBtX3NtYWxsQ2FwcyA6IDE7IC8vIEZvbnRTbWFsbENhcHMKICAgICBib29sIG1faXNB
YnNvbHV0ZVNpemUgOiAxOyAgIC8vIFdoZXRoZXIgb3Igbm90IENTUyBzcGVjaWZpZWQgYW4gZXhw
bGljaXQgc2l6ZQpAQCAtMTg4LDcgKzE5Niw4IEBAIGlubGluZSBib29sIEZvbnREZXNjcmlwdGlv
bjo6b3BlcmF0b3I9PShjb25zdCBGb250RGVzY3JpcHRpb24mIG90aGVyKSBjb25zdAogICAgICAg
ICAmJiBtX2lzU3BlY2lmaWVkRm9udCA9PSBvdGhlci5tX2lzU3BlY2lmaWVkRm9udAogICAgICAg
ICAmJiBtX29yaWVudGF0aW9uID09IG90aGVyLm1fb3JpZW50YXRpb24KICAgICAgICAgJiYgbV90
ZXh0T3JpZW50YXRpb24gPT0gb3RoZXIubV90ZXh0T3JpZW50YXRpb24KLSAgICAgICAgJiYgbV93
aWR0aFZhcmlhbnQgPT0gb3RoZXIubV93aWR0aFZhcmlhbnQ7CisgICAgICAgICYmIG1fd2lkdGhW
YXJpYW50ID09IG90aGVyLm1fd2lkdGhWYXJpYW50CisgICAgICAgICYmIG1fZmVhdHVyZVNldHRp
bmdzID09IG90aGVyLm1fZmVhdHVyZVNldHRpbmdzOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM3MTMzMjJmNGM4MmViZjNjYzc1ZTgxMGNlZDM4ZGNmOTE1MzA5M2UKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVy
ZVNldHRpbmdzLmNwcApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkZvbnRGZWF0dXJlU2V0dGluZ3MuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitGb250RmVhdHVyZTo6Rm9udEZlYXR1cmUoY29uc3QgQXRvbWljU3RyaW5nJiB0YWcs
IGludCB2YWx1ZSkKKyAgICA6IG1fdGFnKHRhZykKKyAgICAsIG1fdmFsdWUodmFsdWUpCit7Cit9
CisKK2Jvb2wgRm9udEZlYXR1cmU6Om9wZXJhdG9yPT0oY29uc3QgRm9udEZlYXR1cmUmIG90aGVy
KQoreworICAgIHJldHVybiBtX3RhZyA9PSBvdGhlci5tX3RhZyAmJiBtX3ZhbHVlID09IG90aGVy
Lm1fdmFsdWU7Cit9CisKK0ZvbnRGZWF0dXJlU2V0dGluZ3M6OkZvbnRGZWF0dXJlU2V0dGluZ3Mo
KQoreworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250RmVhdHVyZVNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250RmVhdHVyZVNldHRpbmdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJkOWIzMzllNjUxMDU4MWFhOWE0
NmI4OGZmYzAxMmMzYThkN2YwYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuaApAQCAtMCwwICsxLDY4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBGb250RmVhdHVyZVNldHRpbmdzX2gKKyNkZWZpbmUgRm9udEZlYXR1
cmVTZXR0aW5nc19oCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBGb250RmVhdHVyZSB7CitwdWJsaWM6CisgICAgRm9udEZlYXR1
cmUoY29uc3QgQXRvbWljU3RyaW5nJiB0YWcsIGludCB2YWx1ZSk7CisgICAgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IEZvbnRGZWF0dXJlJik7CisKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIHRhZygp
IGNvbnN0IHsgcmV0dXJuIG1fdGFnOyB9CisgICAgaW50IHZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV92YWx1ZTsgfQorCitwcml2YXRlOgorICAgIEF0b21pY1N0cmluZyBtX3RhZzsKKyAgICBjb25z
dCBpbnQgbV92YWx1ZTsKK307CisKK2NsYXNzIEZvbnRGZWF0dXJlU2V0dGluZ3MgOiBwdWJsaWMg
UmVmQ291bnRlZDxGb250RmVhdHVyZVNldHRpbmdzPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8Rm9udEZlYXR1cmVTZXR0aW5ncz4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgRm9udEZlYXR1cmVTZXR0aW5ncygpKTsKKyAgICB9CisgICAgdm9p
ZCBhcHBlbmQoY29uc3QgRm9udEZlYXR1cmUmIGZlYXR1cmUpIHsgbV9saXN0LmFwcGVuZChmZWF0
dXJlKTsgfQorICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsg
fQorICAgIGNvbnN0IEZvbnRGZWF0dXJlJiBvcGVyYXRvcltdKGludCBpbmRleCkgY29uc3QgeyBy
ZXR1cm4gbV9saXN0W2luZGV4XTsgfQorICAgIGNvbnN0IEZvbnRGZWF0dXJlJiBhdChzaXplX3Qg
aW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5hdChpbmRleCk7IH0KKworcHJpdmF0ZToKKyAg
ICBGb250RmVhdHVyZVNldHRpbmdzKCk7CisgICAgVmVjdG9yPEZvbnRGZWF0dXJlPiBtX2xpc3Q7
Cit9OworCit9CisKKyNlbmRpZiAvLyBGb250RmVhdHVyZVNldHRpbmdzX2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103013</attachid>
            <date>2011-08-04 18:12:44 -0700</date>
            <delta_ts>2011-08-05 00:35:08 -0700</delta_ts>
            <desc>Patch V8</desc>
            <filename>bug-63618-20110805101242.patch</filename>
            <type>text/plain</type>
            <size>47198</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI0MjkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYzFlMmJmYTY3OWUwYjc2MjBiMTJj
YzE5ODQ5OWQ3YmE5OWM1NTc5Li43MjllZGEzNmNkMjkxOGFjNDFmNWE4NjVkYzMzOGRjNmUwYzMw
Yjc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgtMDQgIEtlbmljaGkgSXNoaWJhc2hp
ICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFBhcnNpbmcgQ1NTMyBmb250LWZlYXR1
cmUtc2V0dGluZ3MgcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYzNjE4CisKKyAgICAgICAgQWRkIHBhcnNpbmcgdGVzdCBjYXNlIGZvciAt
d2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyBwcm9wZXJ0eS4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzczMvZm9udC1mZWF0dXJlLXNldHRp
bmdzLXBhcnNpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZvbnQtZmVh
dHVyZS1zZXR0aW5ncy1wYXJzaW5nLmh0bWw6IEFkZGVkLgorCiAyMDExLTA4LTA0ICBLZW50IFRh
bXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBNb3ZlIDxpbnB1dCB0eXBlPXdl
ZWs+IHRlc3RzIHRvIGZhc3QvZm9ybXMvd2Vlay8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcGFyc2luZy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzBjNGMwN2QwODdiMWI0NDdhMzY1NDViZDczMmYyZTg1ZjJiYmQwZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmct
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDUgQEAKK1Rlc3QgcGFyc2luZyBvZiB0aGUgQ1NTMyBm
b250LWZlYXR1cmUtc2V0dGluZ3MgcHJvcGVydHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCistIFRlc3RzIHZhbGlkIGlucHV0cy4KK1BBU1MgcGFyc2VSZXN1bHRPZigidmFsaWRf
bm9ybWFsIikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigidmFsaWRfdmFsdWVfMSIp
IGlzICInZGxpZycgMSIKK1BBU1MgcGFyc2VSZXN1bHRPZigidmFsaWRfdmFsdWVfMiIpIGlzICIn
c3dzaCcgMiIKK1BBU1MgcGFyc2VSZXN1bHRPZigidmFsaWRfdmFsdWVfb24iKSBpcyAiJ3NtY3An
IDEiCitQQVNTIHBhcnNlUmVzdWx0T2YoInZhbGlkX3ZhbHVlX29mZiIpIGlzICInbGlnYScgMCIK
K1BBU1MgcGFyc2VSZXN1bHRPZigidmFsaWRfdmFsdWVfb21pdCIpIGlzICInYzJzYycgMSIKK1BB
U1MgcGFyc2VSZXN1bHRPZigidmFsaWRfdmFsdWVsaXN0IikgaXMgIid0bnVtJyAxLCAnaGlzdCcg
MSIKK1BBU1MgcGFyc2VSZXN1bHRPZigidmFsaWRfc2luZ2xlcXVvdGUiKSBpcyAiJ1BLUk4nIDEi
CitQQVNTIHBhcnNlUmVzdWx0T2YoInZhbGlkX2lkZW50IikgaXMgIidkbGlnJyAxIgorUEFTUyBw
YXJzZVJlc3VsdE9mKCJ2YWxpZF91bnVzdWFsX3RhZyIpIGlzICInIUAjJCcgMSIKK1BBU1MgcGFy
c2VSZXN1bHRPZigidmFsaWRfdGFnX3NwYWNlIikgaXMgIidhIGJjJyAxIgorUEFTUyBwYXJzZVJl
c3VsdE9mKCJ2YWxpZF9jYXNlcyIpIGlzICInZGxpZycgMSwgJ0RMSUcnIDEsICdETGlnJyAxIgor
UEFTUyBwYXJzZVJlc3VsdE9mKCJ2YWxpZF9jb21wb3NpdGUiKSBpcyAiJ2RsaWcnIDEsICdzbWNw
JyAxLCAnbGlnYScgMCIKKy0gVGVzdHMgaW52YWxpZCBpbnB1dHMuICBSZXN1bHRzIHNob3VsZCBi
ZSAibm9ybWFsIi4KK1BBU1MgcGFyc2VSZXN1bHRPZigiaW52YWxpZF8xIikgaXMgIm5vcm1hbCIK
K1BBU1MgcGFyc2VSZXN1bHRPZigiaW52YWxpZF9vZmYiKSBpcyAibm9ybWFsIgorUEFTUyBwYXJz
ZVJlc3VsdE9mKCJpbnZhbGlkX25vcm1hbF9kdXBsaWNhdGUiKSBpcyAibm9ybWFsIgorUEFTUyBw
YXJzZVJlc3VsdE9mKCJpbnZhbGlkX25vcm1hbF9saXN0IikgaXMgIm5vcm1hbCIKK1BBU1MgcGFy
c2VSZXN1bHRPZigiaW52YWxpZF9sb25nZXJfaWRlbnQiKSBpcyAibm9ybWFsIgorUEFTUyBwYXJz
ZVJlc3VsdE9mKCJpbnZhbGlkX2xvbmdlcl9xdW90ZSIpIGlzICJub3JtYWwiCitQQVNTIHBhcnNl
UmVzdWx0T2YoImludmFsaWRfbmVnYXRpdmUiKSBpcyAibm9ybWFsIgorUEFTUyBwYXJzZVJlc3Vs
dE9mKCJpbnZhbGlkX2Zsb2F0IikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigiaW52
YWxpZF9taXNzaW5nX2NvbW1hIikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigiaW52
YWxpZF9taXNzaW5nX2NvbW1hX2lkZW50IikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRP
ZigiaW52YWxpZF9jb21tYSIpIGlzICJub3JtYWwiCitQQVNTIHBhcnNlUmVzdWx0T2YoImludmFs
aWRfZW5kaW5nX2NvbW1hIikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigiaW52YWxp
ZF9iZWdpbm5pbmdfY29tbWEiKSBpcyAibm9ybWFsIgorUEFTUyBwYXJzZVJlc3VsdE9mKCJpbnZh
bGlkX29uIikgaXMgIm5vcm1hbCIKK1BBU1MgcGFyc2VSZXN1bHRPZigiaW52YWxpZF8wIikgaXMg
Im5vcm1hbCIKKy0gVGVzdHMgaW5oZXJpdC4KK1BBU1MgcGFyc2VSZXN1bHRPZigib3V0ZXIiKSBp
cyAiJ2RsaWcnIDEiCitQQVNTIHBhcnNlUmVzdWx0T2YoImlubmVyIikgaXMgIidkbGlnJyAxIgor
LSBUZXN0cyBAZm9udC1mYWNlLgorUEFTUyBmb250RmFjZVJ1bGVWYWxpZCBpcyAiJ2xpZ2EnIDEi
CitQQVNTIGZvbnRGYWNlUnVsZUludmFsaWQgaXMgIiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1wYXJzaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2Zv
bnQtZmVhdHVyZS1zZXR0aW5ncy1wYXJzaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTNiMzdlZDJhNzdl
NTIwNDhjMjFjNmZkMThiOTIxOWZmNjhmNTQ1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXBhcnNpbmcuaHRtbApAQCAtMCwwICsxLDIy
MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyN2YWxpZF9u
b3JtYWwgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiBub3JtYWw7Cit9CisK
KyN2YWxpZF92YWx1ZV8xIHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogImRs
aWciIDE7Cit9CisKKyN2YWxpZF92YWx1ZV8yIHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1z
ZXR0aW5nczogInN3c2giIDI7Cit9CisKKyN2YWxpZF92YWx1ZV9vbiB7CisgICAgLXdlYmtpdC1m
b250LWZlYXR1cmUtc2V0dGluZ3M6ICJzbWNwIiBvbjsKK30KKworI3ZhbGlkX3ZhbHVlX29mZiB7
CisgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICJsaWdhIiBvZmY7Cit9CisKKyN2
YWxpZF92YWx1ZV9vbWl0IHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogImMy
c2MiOworfQorCisjdmFsaWRfdmFsdWVsaXN0IHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1z
ZXR0aW5nczogInRudW0iLCAnaGlzdCc7Cit9CisKKyN2YWxpZF9zaW5nbGVxdW90ZSB7CisgICAg
LXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICdQS1JOJzsKK30KKworI3ZhbGlkX2lkZW50
IHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogZGxpZzsKK30KKworI3ZhbGlk
X3VudXN1YWxfdGFnIHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogIiFAIyQi
OworfQorCisjdmFsaWRfY2FzZXMgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdz
OiBkbGlnLCBETElHLCBETGlnOworfQorCisjdmFsaWRfdGFnX3NwYWNlIHsKKyAgICAtd2Via2l0
LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogImEgYmMiOworfQorCisjdmFsaWRfY29tcG9zaXRlIHsK
KyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogImRsaWciIDEsICdzbWNwJyBvbiwg
bGlnYSBvZmY7Cit9CisKKyNpbnZhbGlkXzEgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNl
dHRpbmdzOiAxOworfQorCisjaW52YWxpZF9vZmYgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJl
LXNldHRpbmdzOiBvZmY7Cit9CisKKyNpbnZhbGlkX25vcm1hbF9kdXBsaWNhdGUgeworICAgIC13
ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiBub3JtYWwsIG5vcm1hbDsKK30KKworI2ludmFs
aWRfbm9ybWFsX2xpc3QgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiBub3Jt
YWwsIGFhYWE7Cit9CisKKyNpbnZhbGlkX2xvbmdlcl9pZGVudCB7CisgICAgLXdlYmtpdC1mb250
LWZlYXR1cmUtc2V0dGluZ3M6IGFhYWFhOworfQorCisjaW52YWxpZF9sb25nZXJfcXVvdGUgewor
ICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiAiYWFhYWEiOworfQorCisjaW52YWxp
ZF9uZWdhdGl2ZSB7CisgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IGFhYWEgLTE7
Cit9CisKKyNpbnZhbGlkX2Zsb2F0IHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5n
czogYWFhYSAxLjU7Cit9CisKKyNpbnZhbGlkX21pc3NpbmdfY29tbWEgeworICAgIC13ZWJraXQt
Zm9udC1mZWF0dXJlLXNldHRpbmdzOiBhYWFhICJiYmJiIjsKK30KKworI2ludmFsaWRfbWlzc2lu
Z19jb21tYV9pZGVudCB7CisgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IGFhYWEg
YmJiYjsKK30KKworI2ludmFsaWRfY29tbWEgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNl
dHRpbmdzOiAsOworfQorCisjaW52YWxpZF9lbmRpbmdfY29tbWEgeworICAgIC13ZWJraXQtZm9u
dC1mZWF0dXJlLXNldHRpbmdzOiBhYWFhLDsKK30KKworI2ludmFsaWRfYmVnaW5uaW5nX2NvbW1h
IHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogLGFhYWE7Cit9CisKKyNpbnZh
bGlkX29uIHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogYWFhYSwgb247Cit9
CisKKyNpbnZhbGlkXzAgeworICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiAiYWFh
YSIgMSwgImJiYmIiLCAwOworfQorCisjaW52YWxpZF9jb21wb3NpdGUgeworICAgIC13ZWJraXQt
Zm9udC1mZWF0dXJlLXNldHRpbmdzOiBhYWFhYSBvbiwgZGxpZyBvbiwgUEtSTiAtMTsKK30KKzwv
c3R5bGU+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1z
ZXR0aW5nczogJ2xpZ2EnOworfQorCitAZm9udC1mYWNlIHsKKyAgICAtd2Via2l0LWZvbnQtZmVh
dHVyZS1zZXR0aW5nczogYWFhYWE7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2
IGlkPSJ2YWxpZF9ub3JtYWwiPjwvZGl2PgorPGRpdiBpZD0idmFsaWRfdmFsdWVfMSI+PC9kaXY+
Cis8ZGl2IGlkPSJ2YWxpZF92YWx1ZV8yIj48L2Rpdj4KKzxkaXYgaWQ9InZhbGlkX3ZhbHVlX29u
Ij48L2Rpdj4KKzxkaXYgaWQ9InZhbGlkX3ZhbHVlX29mZiI+PC9kaXY+Cis8ZGl2IGlkPSJ2YWxp
ZF92YWx1ZV9vbWl0Ij48L2Rpdj4KKzxkaXYgaWQ9InZhbGlkX3ZhbHVlbGlzdCI+PC9kaXY+Cis8
ZGl2IGlkPSJ2YWxpZF9zaW5nbGVxdW90ZSI+PC9kaXY+Cis8ZGl2IGlkPSJ2YWxpZF9pZGVudCI+
PC9kaXY+Cis8ZGl2IGlkPSJ2YWxpZF91bnVzdWFsX3RhZyI+PC9kaXY+Cis8ZGl2IGlkPSJ2YWxp
ZF90YWdfc3BhY2UiPjwvZGl2PgorPGRpdiBpZD0idmFsaWRfY2FzZXMiPjwvZGl2PgorPGRpdiBp
ZD0idmFsaWRfY29tcG9zaXRlIj48L2Rpdj4KKworPGRpdiBpZD0iaW52YWxpZF8xIj48L2Rpdj4K
KzxkaXYgaWQ9ImludmFsaWRfb2ZmIj48L2Rpdj4KKzxkaXYgaWQ9ImludmFsaWRfbm9ybWFsX2R1
cGxpY2F0ZSI+PC9kaXY+Cis8ZGl2IGlkPSJpbnZhbGlkX25vcm1hbF9saXN0Ij48L2Rpdj4KKzxk
aXYgaWQ9ImludmFsaWRfbG9uZ2VyX2lkZW50Ij48L2Rpdj4KKzxkaXYgaWQ9ImludmFsaWRfbG9u
Z2VyX3F1b3RlIj48L2Rpdj4KKzxkaXYgaWQ9ImludmFsaWRfbmVnYXRpdmUiPjwvZGl2PgorPGRp
diBpZD0iaW52YWxpZF9mbG9hdCI+PC9kaXY+Cis8ZGl2IGlkPSJpbnZhbGlkX21pc3NpbmdfY29t
bWEiPjwvZGl2PgorPGRpdiBpZD0iaW52YWxpZF9taXNzaW5nX2NvbW1hX2lkZW50Ij48L2Rpdj4K
KzxkaXYgaWQ9ImludmFsaWRfY29tbWEiPjwvZGl2PgorPGRpdiBpZD0iaW52YWxpZF9lbmRpbmdf
Y29tbWEiPjwvZGl2PgorPGRpdiBpZD0iaW52YWxpZF9iZWdpbm5pbmdfY29tbWEiPjwvZGl2Pgor
PGRpdiBpZD0iaW52YWxpZF9vbiI+PC9kaXY+Cis8ZGl2IGlkPSJpbnZhbGlkXzAiPjwvZGl2Pgor
Cis8ZGl2IGlkPSJvdXRlciIgc3R5bGU9Ii13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiBk
bGlnOyI+CisgIDxkaXYgaWQ9ImlubmVyIj48L2Rpdj4KKzwvZGl2PgorCis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCdUZXN0IHBhcnNpbmcgb2YgdGhlIENTUzMgZm9udC1mZWF0dXJlLXNldHRpbmdzIHByb3Bl
cnR5LicpOworCitmdW5jdGlvbiBwYXJzZVJlc3VsdE9mKGlkKSB7CisgICAgdmFyIGVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGVsZW1lbnQpWyctd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyddOworfQor
CitkZWJ1ZygnLSBUZXN0cyB2YWxpZCBpbnB1dHMuJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
J3BhcnNlUmVzdWx0T2YoInZhbGlkX25vcm1hbCIpJywgIm5vcm1hbCIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdwYXJzZVJlc3VsdE9mKCJ2YWxpZF92YWx1ZV8xIiknLCAiJ2RsaWcnIDEiKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygncGFyc2VSZXN1bHRPZigidmFsaWRfdmFsdWVfMiIpJywg
Iidzd3NoJyAyIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BhcnNlUmVzdWx0T2YoInZhbGlk
X3ZhbHVlX29uIiknLCAiJ3NtY3AnIDEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygncGFyc2VS
ZXN1bHRPZigidmFsaWRfdmFsdWVfb2ZmIiknLCAiJ2xpZ2EnIDAiKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygncGFyc2VSZXN1bHRPZigidmFsaWRfdmFsdWVfb21pdCIpJywgIidjMnNjJyAxIik7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BhcnNlUmVzdWx0T2YoInZhbGlkX3ZhbHVlbGlzdCIp
JywgIid0bnVtJyAxLCAnaGlzdCcgMSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYXJzZVJl
c3VsdE9mKCJ2YWxpZF9zaW5nbGVxdW90ZSIpJywgIidQS1JOJyAxIik7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3BhcnNlUmVzdWx0T2YoInZhbGlkX2lkZW50IiknLCAiJ2RsaWcnIDEiKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygncGFyc2VSZXN1bHRPZigidmFsaWRfdW51c3VhbF90YWciKScs
ICInIUAjJCcgMSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYXJzZVJlc3VsdE9mKCJ2YWxp
ZF90YWdfc3BhY2UiKScsICInYSBiYycgMSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYXJz
ZVJlc3VsdE9mKCJ2YWxpZF9jYXNlcyIpJywgIidkbGlnJyAxLCAnRExJRycgMSwgJ0RMaWcnIDEi
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygncGFyc2VSZXN1bHRPZigidmFsaWRfY29tcG9zaXRl
IiknLCAiJ2RsaWcnIDEsICdzbWNwJyAxLCAnbGlnYScgMCIpOworCitkZWJ1ZygnLSBUZXN0cyBp
bnZhbGlkIGlucHV0cy4gIFJlc3VsdHMgc2hvdWxkIGJlICJub3JtYWwiLicpOworc2hvdWxkQmUo
J3BhcnNlUmVzdWx0T2YoImludmFsaWRfMSIpJywgJyJub3JtYWwiJyk7CitzaG91bGRCZSgncGFy
c2VSZXN1bHRPZigiaW52YWxpZF9vZmYiKScsICcibm9ybWFsIicpOworc2hvdWxkQmUoJ3BhcnNl
UmVzdWx0T2YoImludmFsaWRfbm9ybWFsX2R1cGxpY2F0ZSIpJywgJyJub3JtYWwiJyk7CitzaG91
bGRCZSgncGFyc2VSZXN1bHRPZigiaW52YWxpZF9ub3JtYWxfbGlzdCIpJywgJyJub3JtYWwiJyk7
CitzaG91bGRCZSgncGFyc2VSZXN1bHRPZigiaW52YWxpZF9sb25nZXJfaWRlbnQiKScsICcibm9y
bWFsIicpOworc2hvdWxkQmUoJ3BhcnNlUmVzdWx0T2YoImludmFsaWRfbG9uZ2VyX3F1b3RlIikn
LCAnIm5vcm1hbCInKTsKK3Nob3VsZEJlKCdwYXJzZVJlc3VsdE9mKCJpbnZhbGlkX25lZ2F0aXZl
IiknLCAnIm5vcm1hbCInKTsKK3Nob3VsZEJlKCdwYXJzZVJlc3VsdE9mKCJpbnZhbGlkX2Zsb2F0
IiknLCAnIm5vcm1hbCInKTsKK3Nob3VsZEJlKCdwYXJzZVJlc3VsdE9mKCJpbnZhbGlkX21pc3Np
bmdfY29tbWEiKScsICcibm9ybWFsIicpOworc2hvdWxkQmUoJ3BhcnNlUmVzdWx0T2YoImludmFs
aWRfbWlzc2luZ19jb21tYV9pZGVudCIpJywgJyJub3JtYWwiJyk7CitzaG91bGRCZSgncGFyc2VS
ZXN1bHRPZigiaW52YWxpZF9jb21tYSIpJywgJyJub3JtYWwiJyk7CitzaG91bGRCZSgncGFyc2VS
ZXN1bHRPZigiaW52YWxpZF9lbmRpbmdfY29tbWEiKScsICcibm9ybWFsIicpOworc2hvdWxkQmUo
J3BhcnNlUmVzdWx0T2YoImludmFsaWRfYmVnaW5uaW5nX2NvbW1hIiknLCAnIm5vcm1hbCInKTsK
K3Nob3VsZEJlKCdwYXJzZVJlc3VsdE9mKCJpbnZhbGlkX29uIiknLCAnIm5vcm1hbCInKTsKK3No
b3VsZEJlKCdwYXJzZVJlc3VsdE9mKCJpbnZhbGlkXzAiKScsICcibm9ybWFsIicpOworCitkZWJ1
ZygnLSBUZXN0cyBpbmhlcml0LicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYXJzZVJlc3Vs
dE9mKCJvdXRlciIpJywgIidkbGlnJyAxIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BhcnNl
UmVzdWx0T2YoImlubmVyIiknLCAiJ2RsaWcnIDEiKTsKKworZGVidWcoJy0gVGVzdHMgQGZvbnQt
ZmFjZS4nKTsKK3ZhciBmb250RmFjZVJ1bGVWYWxpZCA9IGRvY3VtZW50LnN0eWxlU2hlZXRzWzJd
LmNzc1J1bGVzWzBdLnN0eWxlWyctd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyddOwordmFy
IGZvbnRGYWNlUnVsZUludmFsaWQgPSBkb2N1bWVudC5zdHlsZVNoZWV0c1syXS5jc3NSdWxlc1sx
XS5zdHlsZVsnLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3MnXTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygnZm9udEZhY2VSdWxlVmFsaWQnLCAiJ2xpZ2EnIDEiKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygnZm9udEZhY2VSdWxlSW52YWxpZCcsICIiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCBkOTg5ZGRhMGI0MmJmMGQwNDRkMzdlMTNlYjE2NDU5MzQxMWVkZWQ0Li41
OTY0NmU2MjllNDUzODlmZjJlZDUzYmExNGExNzNjNzcwMjMyYWE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtNDY1LDYgKzQ2NSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBjc3MvQ1NT
VW5pY29kZVJhbmdlVmFsdWUuY3BwCiAgICAgY3NzL0NTU1ZhbHVlTGlzdC5jcHAKICAgICBjc3Mv
Rm9udEZhbWlseVZhbHVlLmNwcAorICAgIGNzcy9Gb250RmVhdHVyZVZhbHVlLmNwcAogICAgIGNz
cy9Gb250VmFsdWUuY3BwCiAgICAgY3NzL01lZGlhRmVhdHVyZU5hbWVzLmNwcAogICAgIGNzcy9N
ZWRpYUxpc3QuY3BwCkBAIC0xMDYxLDYgKzEwNjIsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbGxiYWNrTGlzdC5jcHAKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9Gb250RmFtaWx5LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0
aC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmNwcAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0dseXBoUGFnZVRyZWVOb2RlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDk4NTA1YjQ0Yjg0NDVkNzZjYWQyY2I0MzA2YmQ3NTFmZGI4NzVj
MTcuLmI3ODUwNDc3YzMwNWQxNGY5OWQxODg3MWQwNjk5Zjg0NDY3YjE2OWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsNSArMSw2NSBAQAogMjAxMS0wOC0wNCAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBj
aHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUGFyc2luZyBDU1MzIGZvbnQtZmVhdHVyZS1zZXR0aW5n
cyBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjM2MTgKKworICAgICAgICBJbnRyb2R1Y2VzIENTUzMgZm9udC1mZWF0dXJlLXNldHRpbmdz
IHByb3BlcnR5IGFzIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzLiAgVGhpcyBjaGFuZ2Ug
b25seSBjb250YWlucyBwYXJzaW5nIHBhcnQuICBQYXJzZWQgaW5mb3JtYXRpb24gYXJlIHN0b3Jl
ZCBpbiBGb250RGVzY3JpcHRpb24gY2xhc3MuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdDogY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcGFy
c2luZy5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgRm9udEZlYXR1cmVW
YWx1ZS57aCxjcHB9IGFuZCBGb250RmVhdHVyZVNldHRpbmdzLntoLGNwcH0uCisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0
by4KKyAgICAgICAgKiBXZWJDb3JlLnBybzogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajogRGl0dG8uCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b246OmdldFByb3BlcnR5Q1NTVmFsdWUpOiBBZGRlZCBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRGZWF0
dXJlU2V0dGluZ3MuCisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOiBBZGRlZCBwYXJzaW5nIGNvZGUgZm9yIC13ZWJr
aXQtZm9udC1mZWF0dXJlLXNldHRpbmdzLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpw
YXJzZUZvbnRGZWF0dXJlVGFnKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6
OnBhcnNlRm9udEZlYXR1cmVTZXR0aW5ncyk6IEFkZGVkLgorICAgICAgICAqIGNzcy9DU1NQYXJz
ZXIuaDogQWRkZWQgcGFyc2VGb250RmVhdHVyZVNldHRpbmdzKCkuCisgICAgICAgICogY3NzL0NT
U1Byb3BlcnR5TmFtZXMuaW46IEFkZGVkIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzLgor
ICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1N0eWxlU2VsZWN0b3I6OmFwcGx5RGVjbGFyYXRpb25zKTogTW9kaWZpZWQgYSBjb21waWxlIGFz
c2VydCB0byBmb2xsb3cgYWRkaW5nIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzLgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6IEFkZGVkIGEg
Y2FzZSBjbGF1c2UgZm9yIENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1cmVTZXR0aW5ncy4KKyAg
ICAgICAgKiBjc3MvQ1NTVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc0Zv
bnRGZWF0dXJlVmFsdWUpOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
bjogQWRkZWQgJ29uJyBhbmQgJ29mZicga2V5d29yZHMuCisgICAgICAgICogY3NzL0ZvbnRGZWF0
dXJlVmFsdWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlVmFsdWU6
OkZvbnRGZWF0dXJlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVWYWx1ZTo6
dmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVWYWx1ZTo6Y3NzVGV4dCk6Cisg
ICAgICAgICogY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpGb250RmVhdHVyZVZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1
cmVWYWx1ZTo6dGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlVmFsdWU6OmlzRm9u
dEZlYXR1cmVWYWx1ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6bWFrZU5vcm1hbEZl
YXR1cmVTZXR0aW5ncyk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRE
ZXNjcmlwdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpGb250RGVz
Y3JpcHRpb24pOiBBZGRlZCBtX2ZlYXR1cmVTZXR0aW5ncyBtZW1iZXIgdmFyaWFibGUuCisgICAg
ICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OmZlYXR1cmVTZXR0aW5ncyk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpzZXRGZWF0dXJlU2V0dGluZ3MpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9PSk6IE1v
ZGlmaWVkIHRvIHRha2UgaW50byBhY2NvdW50IG1fZmVhdHVyZVNldHRpbmdzCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Rm9udEZlYXR1cmU6OkZvbnRGZWF0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRGZWF0dXJlOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmU6
Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVTZXR0aW5nczo6Rm9u
dEZlYXR1cmVTZXR0aW5ncyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1
cmVTZXR0aW5ncy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlOjp0YWcp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmU6OnZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRGZWF0dXJlU2V0dGluZ3M6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250
RmVhdHVyZVNldHRpbmdzOjphcHBlbmQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVT
ZXR0aW5nczo6c2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmVhdHVyZVNldHRpbmdzOjpv
cGVyYXRvcltdKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGZWF0dXJlU2V0dGluZ3M6OmF0KToK
KworMjAxMS0wOC0wNCAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CisK
ICAgICAgICAgW0Nocm9taXVtXSBSZWR1Y2UgbWVtb3J5IGNvbnN1bXB0aW9uIG9mIEhhcmZidXp6
RmFjZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2
ODgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggOTVjOWY5YWY2MmNkYjI0ZTA5
ZDc1ZjRhZjJmMzRkNTE2MmZhNmI3My4uNjYzNzkzNGI4ZjdlNDNiMTg1ZmM1YTY1ZTMxNDE0Yzgz
YTBjYmY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xMDE2LDYgKzEwMTYs
OCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9EYXNoYm9hcmRS
ZWdpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYW1pbHlWYWx1ZS5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFtaWx5VmFsdWUuaCBcCisJU291cmNlL1dlYkNvcmUvY3Nz
L0ZvbnRGZWF0dXJlVmFsdWUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZlYXR1cmVW
YWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udFZhbHVlLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvY3NzL0ZvbnRWYWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJl
TmFtZXMuY3BwIFwKQEAgLTI1MDMsNiArMjUwNSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbWlseS5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYW1pbHkuaCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcCBcCisJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgXAorCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuaCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250TWV0cmljcy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250T3JpZW50YXRpb24uaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNDIyMjIxMWIzMjY3
NzdlNTZhM2Y1ZTE1ZWRjZTAxODY5N2YwZTBiZC4uNTU1NDJkMzVmYTM0ODBhMWZhZThmYzdlYzUw
YWM5ZTY4MDdkZjZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNzM2LDYgKzczNiw3IEBACiAgICAg
ICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3QuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbWlseS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRNZXRyaWNzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRPcmllbnRhdGlvbi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250UmVu
ZGVyaW5nTW9kZS5oJywKQEAgLTIzODQsNiArMjM4NSw4IEBACiAgICAgICAgICAgICAnY3NzL0Rh
c2hib2FyZFJlZ2lvbi5oJywKICAgICAgICAgICAgICdjc3MvRm9udEZhbWlseVZhbHVlLmNwcCcs
CiAgICAgICAgICAgICAnY3NzL0ZvbnRGYW1pbHlWYWx1ZS5oJywKKyAgICAgICAgICAgICdjc3Mv
Rm9udEZlYXR1cmVWYWx1ZS5jcHAnLAorICAgICAgICAgICAgJ2Nzcy9Gb250RmVhdHVyZVZhbHVl
LmgnLAogICAgICAgICAgICAgJ2Nzcy9Gb250VmFsdWUuY3BwJywKICAgICAgICAgICAgICdjc3Mv
Rm9udFZhbHVlLmgnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5jcHAnLApA
QCAtMzM0Niw2ICszMzQ5LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250
RGVzY3JpcHRpb24uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFs
bGJhY2tMaXN0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbWls
eS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGlu
Z3MuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3Bw
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KaW5kZXggYWRmNDMxZjQyNDNkMGY3NjVhZjVmZmU4ODM5Yzg4YjIxZjk0MGZhOS4u
YTkzMzNkYzVmMDE4Yjc5MjM4NzNiZDFkMWQ4MWM0ZTgzOGZhMjdkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8K
QEAgLTQyOCw2ICs0MjgsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBjc3MvQ1NTVW5pY29kZVJhbmdl
VmFsdWUuY3BwIFwKICAgICBjc3MvQ1NTVmFsdWVMaXN0LmNwcCBcCiAgICAgY3NzL0ZvbnRGYW1p
bHlWYWx1ZS5jcHAgXAorICAgIGNzcy9Gb250RmVhdHVyZVZhbHVlLmNwcCBcCiAgICAgY3NzL0Zv
bnRWYWx1ZS5jcHAgXAogICAgIGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5jcHAgXAogICAgIGNzcy9N
ZWRpYUxpc3QuY3BwIFwKQEAgLTk3OSw2ICs5ODAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9Gb250RmFsbGJhY2tMaXN0LmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbWls
eS5jcHAgXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwIFwK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgXAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmNw
cCBcCkBAIC0xNDI1LDYgKzE0MjcsNyBAQCBIRUFERVJTICs9IFwKICAgICBjc3MvQ1NTVW5pY29k
ZVJhbmdlVmFsdWUuaCBcCiAgICAgY3NzL0NTU1ZhbHVlTGlzdC5oIFwKICAgICBjc3MvRm9udEZh
bWlseVZhbHVlLmggXAorICAgIGNzcy9Gb250RmVhdHVyZVZhbHVlLmggXAogICAgIGNzcy9Gb250
VmFsdWUuaCBcCiAgICAgY3NzL01lZGlhRmVhdHVyZU5hbWVzLmggXAogICAgIGNzcy9NZWRpYUxp
c3QuaCBcCkBAIC0xOTgwLDYgKzE5ODMsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9Gb250RGF0YS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRp
b24uaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbWlseS5oIFwKKyAgICBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRNZXRyaWNzLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaCBcCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGExNDgxYmFjNDU2NWE5ZTAyOTBlYmQyMWZl
NDJkYjZmN2QyYTAyMWQuLmM0ZjYwODI4N2FlMTYyMTFkNGFjMjg1YTgyYmJjYTFkN2FiOWExZmUg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0y
NzcyMSw2ICsyNzcyMSwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRm9udEZlYXR1cmVTZXR0aW5ncy5j
cHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwbGF0Zm9ybVxncmFwaGljc1xGb250RmVhdHVyZVNldHRpbmdzLmgiCisJCQkJCT4KKwkJCQk8
L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xGb250RmFzdFBhdGguY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpAQCAtMzMwNTQsNiArMzMw
NjIsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cY3NzXEZvbnRGZWF0dXJlVmFsdWUuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcRm9udEZlYXR1cmVWYWx1ZS5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcRm9udFZhbHVlLmNw
cCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjQwZmQ4NWEyYzY3OWRjYzBiM2UwYjc5NTQzMWUz
N2VmMTI5MzM0OS4uMzhiODlhYzc4N2EyMzk2NjMwYzg3MTFiNWNmYzkwMWI3M2NlMjhkNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTI3OCw2ICsxMjc4LDEwIEBACiAJCTQ5RkZCRjQwMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJH
TExheWVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDlGRkJGM0UxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gKi87IH07CiAJCTRBMERB
MkZFMTI5QjI0MTkwMEFCNjFFMSAvKiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEEwREEyRkMxMjlCMjQxOTAw
QUI2MUUxIC8qIEZvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAgKi87IH07CiAJCTRBMERBMkZGMTI5
QjI0MTkwMEFCNjFFMSAvKiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBMERBMkZEMTI5QjI0MTkwMEFCNjFFMSAv
KiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk0QTZFOUZDMzEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1
cmVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0QTZFOUZDMTEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5jcHAgKi87IH07
CisJCTRBNkU5RkM0MTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTZFOUZDMjEzQzE3RDFE
MDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTRBNkU5RkM3MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250
RmVhdHVyZVNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDRBNkU5RkM1MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdz
LmNwcCAqLzsgfTsKKwkJNEE2RTlGQzgxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0
dGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRB
NkU5RkM2MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEE4Qzk2RUIwQkU2OTAz
MjAwNEVFRkYwIC8qIEZyYW1lU2VsZWN0aW9uTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE4Qzk2RUEwQkU2OTAzMjAwNEVFRkYwIC8qIEZyYW1l
U2VsZWN0aW9uTWFjLm1tICovOyB9OwogCQk0QUNCQzBCRTEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xh
c3NMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDRBQ0JDMEJDMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuY3BwICovOyB9OwogCQk0QUNC
QzBCRjEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QUNCQzBCRDEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xh
c3NMaXN0LmggKi87IH07CkBAIC03ODcwLDYgKzc4NzQsMTAgQEAKIAkJNDlGRkJGM0UxMUM5M0VF
MzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJHTExheWVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
QTBEQTJGQzEyOUIyNDE5MDBBQjYxRTEgLyogRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Bc3NvY2lhdGVkRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBMERBMkZEMTI5QjI0MTkwMEFCNjFF
MSAvKiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRm9ybUFzc29jaWF0ZWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTRBNkU5RkMxMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvbnRGZWF0dXJlVmFsdWUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTZFOUZDMjEzQzE3RDFEMDA0NkE3RjggLyog
Rm9udEZlYXR1cmVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250
RmVhdHVyZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNkU5RkM1MTND
MTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0QTZFOUZDNjEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1
cmVTZXR0aW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgZmlsZUVuY29kaW5nID0gNDsgcGF0aCA9IEZvbnRGZWF0dXJl
U2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEE4Qzk2RUEwQkU2OTAz
MjAwNEVFRkYwIC8qIEZyYW1lU2VsZWN0aW9uTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbmFtZSA9IEZyYW1lU2VsZWN0aW9uTWFjLm1tOyBwYXRoID0gbWFjL0ZyYW1l
U2VsZWN0aW9uTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QUNCQzBCQzEy
NzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENsYXNzTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTRBQ0JDMEJEMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ2xhc3NMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xODE5Miw2ICsxODIwMCw4IEBACiAJCQkJQjJDM0RBNTgwRDAwNkNENjAwRUY2RjI2IC8q
IEZvbnRGYW1pbHkuY3BwICovLAogCQkJCUIyQzNEQTU5MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250
RmFtaWx5LmggKi8sCiAJCQkJNzI2MjZFMDEwRUYwMjJGRTAwQTA3RTIwIC8qIEZvbnRGYXN0UGF0
aC5jcHAgKi8sCisJCQkJNEE2RTlGQzUxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0
dGluZ3MuY3BwICovLAorCQkJCTRBNkU5RkM2MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVy
ZVNldHRpbmdzLmggKi8sCiAJCQkJMDg0NTY4MDcxMkI5MERBNjAwOTYwQTlGIC8qIEZvbnRNZXRy
aWNzLmggKi8sCiAJCQkJRjdBMDM0QzMxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRhdGlv
bi5oICovLAogCQkJCTg0QjYyNjg0MTMzMTM4RjkwMDk1QTQ4OSAvKiBGb250UGxhdGZvcm1EYXRh
LmNwcCAqLywKQEAgLTE5NDA3LDYgKzE5NDE3LDggQEAKIAkJCQlBODBFNkNDOTBBMTk4OUNBMDA3
RkI4QzUgLyogRm9udEZhbWlseVZhbHVlLmggKi8sCiAJCQkJQTgwRTZDQzcwQTE5ODlDQTAwN0ZC
OEM1IC8qIEZvbnRWYWx1ZS5jcHAgKi8sCiAJCQkJQTgwRTZDQzMwQTE5ODlDQTAwN0ZCOEM1IC8q
IEZvbnRWYWx1ZS5oICovLAorCQkJCTRBNkU5RkMxMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVh
dHVyZVZhbHVlLmNwcCAqLywKKwkJCQk0QTZFOUZDMjEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZl
YXR1cmVWYWx1ZS5oICovLAogCQkJCUNENEUwQUZBMTFGN0JDMjcwMDlEMzgxMSAvKiBmdWxsc2Ny
ZWVuLmNzcyAqLywKIAkJCQlDREJEOTNCQTEzMzNCRDRCMDAyNTcwRTMgLyogZnVsbHNjcmVlblF1
aWNrVGltZS5jc3MgKi8sCiAJCQkJOTNDQTRDOTkwOURGOTNGQTAwREY4Njc3IC8qIGh0bWwuY3Nz
ICovLApAQCAtMjE0MjMsNiArMjE0MzUsOCBAQAogCQkJCUIyQzNEQTY4MEQwMDZDRDYwMEVGNkYy
NiAvKiBGb250RmFsbGJhY2tMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE2QTBEMDA2
Q0Q2MDBFRjZGMjYgLyogRm9udEZhbWlseS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRjMw
QTE5ODlDQTAwN0ZCOEM1IC8qIEZvbnRGYW1pbHlWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NEE2RTlGQzQxM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTRBNkU5RkM4MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODQ1NjgwODEyQjkwREE2MDA5NjBBOUYgLyogRm9udE1l
dHJpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJCUY3QTAzNEM0MTI2QkY2QkUwMDdEQzE5RSAvKiBG
b250T3JpZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUI1MzIwRDZCMTIyQTI0RTkwMDJE
MTQ0MCAvKiBGb250UGxhdGZvcm1EYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTI0MzY5LDYgKzI0
MzgzLDggQEAKIAkJCQlCMkMzREE2OTBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udEZhbWlseS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNFQzBBMTk4OUNBMDA3RkI4QzUgLyogRm9udEZhbWls
eVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcyNjI2RTAyMEVGMDIyRkUwMEEwN0UyMCAv
KiBGb250RmFzdFBhdGguY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNEE2RTlGQzMxM0MxN0QxRDAw
NDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNEE2RTlG
QzcxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQjJBRkZDODAwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRNYWMubW0gaW4gU291cmNl
cyAqLywKIAkJCQk4NEI2MjY4NTEzMzEzOEY5MDA5NUE0ODkgLyogRm9udFBsYXRmb3JtRGF0YS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCNTMyMEQ2QzEyMkEyNEU5MDAyRDE0NDAgLyogRm9udFBs
YXRmb3JtRGF0YUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDVlNzEwZDc0Y2Q1YzQ4
YmYyODE1MWU0OGY1NzgwNjIxNzZkY2FlNTcuLjY0NjlmNWExNjEzZDg3NzZmODI1MzNlYWM5YTA3
ZDBiYmVmYjJjNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCkBAIC00Miw2ICs0Miw4IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWVM
aXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CisjaW5jbHVkZSAiRm9udEZlYXR1cmVTZXR0aW5ncy5oIgorI2luY2x1ZGUgIkZvbnRGZWF0dXJl
VmFsdWUuaCIKICNpbmNsdWRlICJSZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAjaW5j
bHVkZSAiUmVuZGVyTGF5ZXIuaCIKQEAgLTExNDEsNiArMTE0MywxOCBAQCBQYXNzUmVmUHRyPENT
U1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUo
aW50IHByb3BlcgogICAgICAgICAgICAgfQogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgICAgICByZXR1cm4gcHJpbWl0aXZlVmFsdWVDYWNoZS0+Y3JlYXRlSWRlbnRp
ZmllclZhbHVlKENTU1ZhbHVlTm9ybWFsKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dEZvbnRGZWF0dXJlU2V0dGluZ3M6IHsKKyAgICAgICAgICAgIGNvbnN0IEZvbnRGZWF0dXJlU2V0
dGluZ3MqIGZlYXR1cmVTZXR0aW5ncyA9IHN0eWxlLT5mb250RGVzY3JpcHRpb24oKS5mZWF0dXJl
U2V0dGluZ3MoKTsKKyAgICAgICAgICAgIGlmICghZmVhdHVyZVNldHRpbmdzIHx8ICFmZWF0dXJl
U2V0dGluZ3MtPnNpemUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJpbWl0aXZlVmFsdWVD
YWNoZS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9ybWFsKTsKKyAgICAgICAgICAg
IFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2Vw
YXJhdGVkKCk7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmVhdHVyZVNl
dHRpbmdzLT5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGNvbnN0IEZvbnRGZWF0dXJl
JiBmZWF0dXJlID0gZmVhdHVyZVNldHRpbmdzLT5hdChpKTsKKyAgICAgICAgICAgICAgICBSZWZQ
dHI8Rm9udEZlYXR1cmVWYWx1ZT4gZmVhdHVyZVZhbHVlID0gRm9udEZlYXR1cmVWYWx1ZTo6Y3Jl
YXRlKGZlYXR1cmUudGFnKCksIGZlYXR1cmUudmFsdWUoKSk7CisgICAgICAgICAgICAgICAgbGlz
dC0+YXBwZW5kKGZlYXR1cmVWYWx1ZS5yZWxlYXNlKCkpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOworICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlIZWlnaHQ6CiAgICAgICAgICAgICBpZiAocmVuZGVyZXIpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWUoc2l6aW5nQm94KHJlbmRlcmVyKS5oZWln
aHQoKSwgc3R5bGUuZ2V0KCksIHByaW1pdGl2ZVZhbHVlQ2FjaGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAppbmRleCA1ZDhmZGU0YjU3OGQ1M2YxYTA5OGEwZGY5YmE2YmRiOWVlYjg3NDZlLi5j
NGZhOTExY2ExMWI3ZjcxMzJkN2RkZGIzMzMwY2QxM2ZmZDY4NWE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcApAQCAtNjEsNiArNjEsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiRm9udEZhbWlseVZhbHVlLmgiCisj
aW5jbHVkZSAiRm9udEZlYXR1cmVWYWx1ZS5oIgogI2luY2x1ZGUgIkZvbnRWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIYXNoVG9vbHMuaCIKQEAgLTIw
ODQsNiArMjA4NSwxMiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBi
b29sIGltcG9ydGFudCkKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIHBhcnNlTGlu
ZUJveENvbnRhaW4oaW1wb3J0YW50KTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdEZvbnRGZWF0dXJlU2V0dGluZ3M6CisgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1
ZU5vcm1hbCkKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgcmV0dXJuIHBhcnNlRm9udEZlYXR1cmVTZXR0aW5ncyhpbXBvcnRhbnQp
OworICAgICAgICBicmVhazsKIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0V3JhcFNoYXBlOgpAQCAtNjMwMiw2ICs2MzA5LDY3IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZUxpbmVCb3hDb250YWluKGJvb2wgaW1wb3J0YW50KQogICAgIHJldHVy
biB0cnVlOwogfQogCitib29sIENTU1BhcnNlcjo6cGFyc2VGb250RmVhdHVyZVRhZyhDU1NWYWx1
ZUxpc3QqIHNldHRpbmdzKQoreworICAgIC8vIEZlYXR1cmUgdGFnIG5hbWUgY29uc2lzdHMgb2Yg
NC1sZXR0ZXIgY2hhcmFjdGVycy4KKyAgICBzdGF0aWMgY29uc3QgaW50IHRhZ05hbWVMZW5ndGgg
PSA0OworCisgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQo
KTsKKyAgICAvLyBGZWF0dXJlIHRhZyBuYW1lIGNvbWVzIGZpcnN0CisgICAgaWYgKHZhbHVlLT51
bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HICYmIHZhbHVlLT51bml0ICE9IENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAodmFsdWUtPnN0cmluZy5sZW5ndGggIT0gdGFnTmFtZUxlbmd0aCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFnTmFtZUxlbmd0aDsgKytpKSB7Cisg
ICAgICAgIC8vIExpbWl0cyB0aGUgcmFuZ2Ugb2YgY2hhcmFjdGVycyB0byAweDIwLTB4N0UsIGZv
bGxvd2luZyB0aGUgdGFnIG5hbWUgcnVsZXMgZGVmaWVuZCBpbiB0aGUgT3BlblR5cGUgc3BlY2lm
aWNhdGlvbi4KKyAgICAgICAgVUNoYXIgY2hhcmFjdGVyID0gdmFsdWUtPnN0cmluZy5jaGFyYWN0
ZXJzW2ldOworICAgICAgICBpZiAoY2hhcmFjdGVyIDwgMHgyMCB8fCBjaGFyYWN0ZXIgPiAweDdF
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIFN0cmluZyB0YWcgPSB2
YWx1ZS0+c3RyaW5nOworICAgIGludCB0YWdWYWx1ZSA9IDE7CisgICAgLy8gRmVhdHVyZSB0YWcg
dmFsdWVzIGNvdWxkIGZvbGxvdzogPGludGVnZXI+IHwgb24gfCBvZmYKKyAgICB2YWx1ZSA9IG1f
dmFsdWVMaXN0LT5uZXh0KCk7CisgICAgaWYgKHZhbHVlKSB7CisgICAgICAgIGlmICh2YWx1ZS0+
dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiAmJiB2YWx1ZS0+aXNJbnQgJiYg
dmFsdWUtPmZWYWx1ZSA+PSAwKSB7CisgICAgICAgICAgICB0YWdWYWx1ZSA9IHZhbHVlLT5mVmFs
dWU7CisgICAgICAgICAgICBtX3ZhbHVlTGlzdC0+bmV4dCgpOworICAgICAgICB9IGVsc2UgaWYg
KHZhbHVlLT5pZCA9PSBDU1NWYWx1ZU9uIHx8IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZU9mZikgewor
ICAgICAgICAgICAgdGFnVmFsdWUgPSB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVPbjsKKyAgICAgICAg
ICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgc2V0dGluZ3Mt
PmFwcGVuZChGb250RmVhdHVyZVZhbHVlOjpjcmVhdGUodGFnLCB0YWdWYWx1ZSkpOworICAgIHJl
dHVybiB0cnVlOworfQorCitib29sIENTU1BhcnNlcjo6cGFyc2VGb250RmVhdHVyZVNldHRpbmdz
KGJvb2wgaW1wb3J0YW50KQoreworICAgIGlmIChtX3ZhbHVlTGlzdC0+c2l6ZSgpID09IDEgJiYg
bV92YWx1ZUxpc3QtPmN1cnJlbnQoKS0+aWQgPT0gQ1NTVmFsdWVOb3JtYWwpIHsKKyAgICAgICAg
UmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBub3JtYWxWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlQ2Fj
aGUoKS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9ybWFsKTsKKyAgICAgICAgbV92
YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRG
b250RmVhdHVyZVNldHRpbmdzLCBub3JtYWxWYWx1ZS5yZWxlYXNlKCksIGltcG9ydGFudCk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IHNl
dHRpbmdzID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNlcGFyYXRlZCgpOworICAgIGZvciAo
Q1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsgdmFsdWU7IHZh
bHVlID0gbV92YWx1ZUxpc3QtPm5leHQoKSkgeworICAgICAgICBpZiAoIXBhcnNlRm9udEZlYXR1
cmVUYWcoc2V0dGluZ3MuZ2V0KCkpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
ICAgIC8vIElmIHRoZSBsaXN0IGlzbid0IHBhcnNlZCBmdWxseSwgdGhlIGN1cnJlbnQgdmFsdWUg
c2hvdWxkIGJlIGNvbW1hLgorICAgICAgICB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7
CisgICAgICAgIGlmICh2YWx1ZSAmJiAhKHZhbHVlLT51bml0ID09IENTU1BhcnNlclZhbHVlOjpP
cGVyYXRvciAmJiB2YWx1ZS0+aVZhbHVlID09ICcsJykpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorICAgIGlmIChzZXR0aW5ncy0+bGVuZ3RoKCkpIHsKKyAgICAgICAgYWRkUHJv
cGVydHkoQ1NTUHJvcGVydHlXZWJraXRGb250RmVhdHVyZVNldHRpbmdzLCBzZXR0aW5ncy5yZWxl
YXNlKCksIGltcG9ydGFudCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKIHN0YXRpYyBpbmxpbmUgaW50IHl5ZXJyb3IoY29uc3QgY2hhciopIHsg
cmV0dXJuIDE7IH0KIAogI2RlZmluZSBFTkRfVE9LRU4gMApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmlu
ZGV4IGJkMWM3NDY4N2M2MTkwZjU0Zjg0NjlhZTM1MzY2MWMxMmUzZWE0NDcuLjEwOWRlMDViOTdj
MTIyNTkzZTAwMGZmNjIzYjA5ZmQ4NWYxOTA3ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAg
LTE5Nyw2ICsxOTcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgYm9vbCBwYXJz
ZUxpbmVCb3hDb250YWluKGJvb2wgaW1wb3J0YW50KTsKIAorICAgICAgICBib29sIHBhcnNlRm9u
dEZlYXR1cmVUYWcoQ1NTVmFsdWVMaXN0Kik7CisgICAgICAgIGJvb2wgcGFyc2VGb250RmVhdHVy
ZVNldHRpbmdzKGJvb2wgaW1wb3J0YW50KTsKKwogICAgICAgICBpbnQgeXlwYXJzZSgpOwogCiAg
ICAgICAgIENTU1BhcnNlclNlbGVjdG9yKiBjcmVhdGVGbG9hdGluZ1NlbGVjdG9yKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IGQyZDFlMDA4ZDdmMDIwOGRlZGRk
OGUxNzU5OTBhYTU5NmM1ZTg0ZmIuLjViZDMxNzczZTE0NGRjYjM2NDE0YjA0ZmJmNDgyYWE1YTYz
NzM2OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC0yMCw2ICsy
MCw3IEBAIGZvbnQtc3R5bGUKIGZvbnQtdmFyaWFudAogZm9udC13ZWlnaHQKIHRleHQtcmVuZGVy
aW5nCistd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncwogLXdlYmtpdC1mb250LXNtb290aGlu
ZwogLXdlYmtpdC1sb2NhbGUKIC13ZWJraXQtdGV4dC1vcmllbnRhdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDI0ODI5NjY5YWQzOWEzNWVmMDI2NjUxOTM3
MjFiNjk3MmRlNjZmNjcuLjQzYzFiNDUwODVlMzMwNjJmNjQyNTk5MmE2Yzk4ZDA1YmVjMDM0NmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTU2LDYgKzU2LDcg
QEAKICNpbmNsdWRlICJDb3VudGVyLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiRm9udEZhbWlseVZhbHVlLmgiCisjaW5jbHVkZSAiRm9udEZlYXR1cmVWYWx1ZS5o
IgogI2luY2x1ZGUgIkZvbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVTZWxlY3Rpb24uaCIKQEAgLTM0ODEsNyArMzQ4Miw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxl
Y3Rvcjo6YXBwbHlEZWNsYXJhdGlvbnMoYm9vbCBpc0ltcG9ydGFudCwgaW50IHN0YXJ0SW5kZXgs
IGludCBlCiAKICAgICAgICAgICAgICAgICBpZiAoYXBwbHlGaXJzdCkgewogICAgICAgICAgICAg
ICAgICAgICBDT01QSUxFX0FTU0VSVChmaXJzdENTU1Byb3BlcnR5ID09IENTU1Byb3BlcnR5Q29s
b3IsIENTU19jb2xvcl9pc19maXJzdF9wcm9wZXJ0eSk7Ci0gICAgICAgICAgICAgICAgICAgIENP
TVBJTEVfQVNTRVJUKENTU1Byb3BlcnR5Wm9vbSA9PSBDU1NQcm9wZXJ0eUNvbG9yICsgMTUsIENT
U196b29tX2lzX2VuZF9vZl9maXJzdF9wcm9wX3JhbmdlKTsKKyAgICAgICAgICAgICAgICAgICAg
Q09NUElMRV9BU1NFUlQoQ1NTUHJvcGVydHlab29tID09IENTU1Byb3BlcnR5Q29sb3IgKyAxNiwg
Q1NTX3pvb21faXNfZW5kX29mX2ZpcnN0X3Byb3BfcmFuZ2UpOwogICAgICAgICAgICAgICAgICAg
ICBDT01QSUxFX0FTU0VSVChDU1NQcm9wZXJ0eUxpbmVIZWlnaHQgPT0gQ1NTUHJvcGVydHlab29t
ICsgMSwgQ1NTX2xpbmVfaGVpZ2h0X2lzX2FmdGVyX3pvb20pOwogCiAgICAgICAgICAgICAgICAg
ICAgIC8vIGdpdmUgc3BlY2lhbCBwcmlvcml0eSB0byBmb250LXh4eCwgY29sb3IgcHJvcGVydGll
cywgZXRjCkBAIC01MDgxLDYgKzUwODIsMzIgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBs
eVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAgICAgICByZXR1cm47CiAjZW5k
aWYKIAorICAgIC8vIENTUyBGb250cyBNb2R1bGUgTGV2ZWwgMworICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRGb250RmVhdHVyZVNldHRpbmdzOiB7CisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1
ZSAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vcm1hbCkgeworICAg
ICAgICAgICAgc2V0Rm9udERlc2NyaXB0aW9uKG1fc3R5bGUtPmZvbnREZXNjcmlwdGlvbigpLm1h
a2VOb3JtYWxGZWF0dXJlU2V0dGluZ3MoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBpZiAoIXZhbHVlLT5pc1ZhbHVlTGlzdCgpKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24gPSBtX3N0eWxl
LT5mb250RGVzY3JpcHRpb24oKTsKKyAgICAgICAgQ1NTVmFsdWVMaXN0KiBsaXN0ID0gc3RhdGlj
X2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpOworICAgICAgICBSZWZQdHI8Rm9udEZlYXR1cmVT
ZXR0aW5ncz4gc2V0dGluZ3MgPSBGb250RmVhdHVyZVNldHRpbmdzOjpjcmVhdGUoKTsKKyAgICAg
ICAgaW50IGxlbiA9IGxpc3QtPmxlbmd0aCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8
IGxlbjsgKytpKSB7CisgICAgICAgICAgICBDU1NWYWx1ZSogaXRlbSA9IGxpc3QtPml0ZW1XaXRo
b3V0Qm91bmRzQ2hlY2soaSk7CisgICAgICAgICAgICBpZiAoIWl0ZW0tPmlzRm9udEZlYXR1cmVW
YWx1ZSgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgRm9udEZlYXR1
cmVWYWx1ZSogZmVhdHVyZSA9IHN0YXRpY19jYXN0PEZvbnRGZWF0dXJlVmFsdWUqPihpdGVtKTsK
KyAgICAgICAgICAgIHNldHRpbmdzLT5hcHBlbmQoRm9udEZlYXR1cmUoZmVhdHVyZS0+dGFnKCks
IGZlYXR1cmUtPnZhbHVlKCkpKTsKKyAgICAgICAgfQorICAgICAgICBmb250RGVzY3JpcHRpb24u
c2V0RmVhdHVyZVNldHRpbmdzKHNldHRpbmdzLnJlbGVhc2UoKSk7CisgICAgICAgIHNldEZvbnRE
ZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAg
ICAgLy8gVGhlc2UgcHJvcGVydGllcyBhcmUgaW1wbGVtZW50ZWQgaW4gdGhlIENTU1N0eWxlQXBw
bHlQcm9wZXJ0eSBsb29rdXAgdGFibGUuCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbG9yOgogICAg
IGNhc2UgQ1NTUHJvcGVydHlEaXJlY3Rpb246CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCmluZGV4IDEwYWMz
NWMzYTI3ODY1YTVjNGFlODU1YTA1MWEwODBhZGI5ZjlmNGMuLmM1MzVkYTI1ZTExNDk2ZjAwZWEz
N2U2YjEyNGQzMWIzZjAzMjM3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCkBAIC01OCw2ICs1OCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNGbGV4VmFsdWUoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogI2VuZGlmCiAgICAgdmlydHVhbCBib29sIGlzRm9udEZhbWlseVZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNGb250RmVhdHVyZVZh
bHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNGb250VmFs
dWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlR2Vu
ZXJhdG9yVmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c0ltYWdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbgppbmRleCAwNTM1YjViNTkyZWQ4MTc0ODE0MGI0NzkyZDlhNmIzMDJj
NjgyOTJjLi4wNmE2YWEyMzY1NGVhZjgwNTFlNDNiMmY3MmJlMDI2ZjkyN2YzMjk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtODA2LDYgKzgwNiwxMCBAQCBnbHlw
aHMKIGlubGluZS1ib3gKIHJlcGxhY2VkCiAKKy8vIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRp
bmdzCitvbgorb2ZmCisKIC8vIGltYWdlLXJlbmRlcmluZwogLy9hdXRvCiAvL29wdGltaXplU3Bl
ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTY4
NGJmOWYwODY3ZGQyMWUxOGZlODE1YjhlMTk5OTljNTZhNmJhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUuY3BwCkBAIC0wLDAgKzEsNTEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRm9udEZlYXR1cmVWYWx1
ZS5oIgorCisjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jk
cy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitGb250RmVhdHVyZVZhbHVlOjpGb250RmVhdHVyZVZhbHVlKGNvbnN0IFN0cmlu
ZyYgdGFnLCBpbnQgdmFsdWUpCisgICAgOiBtX3RhZyh0YWcpCisgICAgLCBtX3ZhbHVlKHZhbHVl
KQoreworfQorCitTdHJpbmcgRm9udEZlYXR1cmVWYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0Cit7Cisg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKCInIik7CisgICAg
YnVpbGRlci5hcHBlbmQobV90YWcpOworICAgIGJ1aWxkZXIuYXBwZW5kKCInICIpOworICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZzo6bnVtYmVyKG1fdmFsdWUpKTsKKyAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9u
dEZlYXR1cmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41NWY0MTI3ZmU5OTc4YWJlMDNlMTllNWUzMzk4N2Q2OTdhOWVjMTBlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaApAQCAt
MCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGb250RmVhdHVyZVZhbHVlX2gKKyNkZWZp
bmUgRm9udEZlYXR1cmVWYWx1ZV9oCisKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRm9udEZl
YXR1cmVWYWx1ZSA6IHB1YmxpYyBDU1NWYWx1ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8Rm9udEZlYXR1cmVWYWx1ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdGFnLCBpbnQgdmFs
dWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvbnRGZWF0dXJlVmFsdWUo
dGFnLCB2YWx1ZSkpOworICAgIH0KKworICAgIGNvbnN0IFN0cmluZyYgdGFnKCkgY29uc3QgeyBy
ZXR1cm4gbV90YWc7IH0KKyAgICBpbnQgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9
CisgICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIEZv
bnRGZWF0dXJlVmFsdWUoY29uc3QgU3RyaW5nJiwgaW50KTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNG
b250RmVhdHVyZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgU3RyaW5nIG1f
dGFnOworICAgIGNvbnN0IGludCBtX3ZhbHVlOworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVz
Y3JpcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2Ny
aXB0aW9uLmNwcAppbmRleCA1OGRkZjgxOTJhNDIyZGExZWI5NTE5ZWY1N2Q5NmNmNzM2ZWFiZjIw
Li40NmQxMDhmZTFhNmE3NjRjNjMyYjQwNDYwMGIxMWFmODdkZTY2OGY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAKQEAg
LTk4LDQgKzk4LDExIEBAIEZvbnRUcmFpdHNNYXNrIEZvbnREZXNjcmlwdGlvbjo6dHJhaXRzTWFz
aygpIGNvbnN0CiAgICAgCiB9CiAKK0ZvbnREZXNjcmlwdGlvbiBGb250RGVzY3JpcHRpb246Om1h
a2VOb3JtYWxGZWF0dXJlU2V0dGluZ3MoKSBjb25zdAoreworICAgIEZvbnREZXNjcmlwdGlvbiBu
b3JtYWxEZXNjcmlwdGlvbigqdGhpcyk7CisgICAgbm9ybWFsRGVzY3JpcHRpb24uc2V0RmVhdHVy
ZVNldHRpbmdzKDApOworICAgIHJldHVybiBub3JtYWxEZXNjcmlwdGlvbjsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udERlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250RGVzY3JpcHRpb24uaAppbmRleCBkZDNjZjNhOWIwOGEwYzI4Mjc3MGU4MTU5NGRjMzhm
NTA5NWQ5ZDQ1Li4yOTgxNzZjNjljYzJlMjllZTUzMmRlMjg1YmUxNzcxNzFlYjRiMmMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24u
aApAQCAtMjYsNiArMjYsNyBAQAogI2RlZmluZSBGb250RGVzY3JpcHRpb25faAogCiAjaW5jbHVk
ZSAiRm9udEZhbWlseS5oIgorI2luY2x1ZGUgIkZvbnRGZWF0dXJlU2V0dGluZ3MuaCIKICNpbmNs
dWRlICJGb250T3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgog
I2luY2x1ZGUgIkZvbnRTbW9vdGhpbmdNb2RlLmgiCkBAIC0zNSw2ICszNiw4IEBACiAjaW5jbHVk
ZSAiVGV4dFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCisj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gRm9u
dFdlaWdodCB7CkBAIC0xMTYsNiArMTE5LDggQEAgcHVibGljOgogICAgIEZvbnRPcmllbnRhdGlv
biBvcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZW50YXRpb247IH0KICAgICBUZXh0
T3JpZW50YXRpb24gdGV4dE9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0T3JpZW50
YXRpb247IH0KICAgICBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCgpIGNvbnN0IHsgcmV0
dXJuIG1fd2lkdGhWYXJpYW50OyB9CisgICAgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZVNl
dHRpbmdzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlU2V0dGluZ3MuZ2V0KCk7IH0KKyAgICBG
b250RGVzY3JpcHRpb24gbWFrZU5vcm1hbEZlYXR1cmVTZXR0aW5ncygpIGNvbnN0OwogCiAgICAg
dm9pZCBzZXRGYW1pbHkoY29uc3QgRm9udEZhbWlseSYgZmFtaWx5KSB7IG1fZmFtaWx5TGlzdCA9
IGZhbWlseTsgfQogICAgIHZvaWQgc2V0Q29tcHV0ZWRTaXplKGZsb2F0IHMpIHsgQVNTRVJUKGlz
ZmluaXRlKHMpKTsgbV9jb21wdXRlZFNpemUgPSBzOyB9CkBAIC0xNDEsNiArMTQ2LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0VGV4dE9yaWVudGF0aW9uKFRleHRPcmllbnRhdGlvbiB0ZXh0T3Jp
ZW50YXRpb24pIHsgbV90ZXh0T3JpZW50YXRpb24gPSB0ZXh0T3JpZW50YXRpb247IH0KICAgICB2
b2lkIHNldFdpZHRoVmFyaWFudChGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCkgeyBtX3dp
ZHRoVmFyaWFudCA9IHdpZHRoVmFyaWFudDsgfQogICAgIHZvaWQgc2V0U2NyaXB0KFVTY3JpcHRD
b2RlIHMpIHsgbV9zY3JpcHQgPSBzOyB9CisgICAgdm9pZCBzZXRGZWF0dXJlU2V0dGluZ3MoUGFz
c1JlZlB0cjxGb250RmVhdHVyZVNldHRpbmdzPiBzZXR0aW5ncykgeyBtX2ZlYXR1cmVTZXR0aW5n
cyA9IHNldHRpbmdzOyB9CiAKIHByaXZhdGU6CiAgICAgRm9udEZhbWlseSBtX2ZhbWlseUxpc3Q7
IC8vIFRoZSBsaXN0IG9mIGZvbnQgZmFtaWxpZXMgdG8gYmUgdXNlZC4KQEAgLTE1NCw2ICsxNjAs
OCBAQCBwcml2YXRlOgogCiAgICAgRm9udFdpZHRoVmFyaWFudCBtX3dpZHRoVmFyaWFudDsKIAor
ICAgIFJlZlB0cjxGb250RmVhdHVyZVNldHRpbmdzPiBtX2ZlYXR1cmVTZXR0aW5nczsKKwogICAg
IHVuc2lnbmVkIG1faXRhbGljIDogMTsgLy8gRm9udEl0YWxpYwogICAgIHVuc2lnbmVkIG1fc21h
bGxDYXBzIDogMTsgLy8gRm9udFNtYWxsQ2FwcwogICAgIGJvb2wgbV9pc0Fic29sdXRlU2l6ZSA6
IDE7ICAgLy8gV2hldGhlciBvciBub3QgQ1NTIHNwZWNpZmllZCBhbiBleHBsaWNpdCBzaXplCkBA
IC0xOTMsNyArMjAxLDggQEAgaW5saW5lIGJvb2wgRm9udERlc2NyaXB0aW9uOjpvcGVyYXRvcj09
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgb3RoZXIpIGNvbnN0CiAgICAgICAgICYmIG1fb3JpZW50
YXRpb24gPT0gb3RoZXIubV9vcmllbnRhdGlvbgogICAgICAgICAmJiBtX3RleHRPcmllbnRhdGlv
biA9PSBvdGhlci5tX3RleHRPcmllbnRhdGlvbgogICAgICAgICAmJiBtX3dpZHRoVmFyaWFudCA9
PSBvdGhlci5tX3dpZHRoVmFyaWFudAotICAgICAgICAmJiBtX3NjcmlwdCA9PSBvdGhlci5tX3Nj
cmlwdDsKKyAgICAgICAgJiYgbV9zY3JpcHQgPT0gb3RoZXIubV9zY3JpcHQKKyAgICAgICAgJiYg
bV9mZWF0dXJlU2V0dGluZ3MgPT0gb3RoZXIubV9mZWF0dXJlU2V0dGluZ3M7CiB9CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0
dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVT
ZXR0aW5ncy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzcxMzMyMmY0YzgyZWJmM2NjNzVlODEwY2VkMzhkY2Y5
MTUzMDkzZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRm9udEZlYXR1cmVTZXR0aW5ncy5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0ZvbnRGZWF0dXJlOjpGb250RmVhdHVyZShjb25zdCBBdG9t
aWNTdHJpbmcmIHRhZywgaW50IHZhbHVlKQorICAgIDogbV90YWcodGFnKQorICAgICwgbV92YWx1
ZSh2YWx1ZSkKK3sKK30KKworYm9vbCBGb250RmVhdHVyZTo6b3BlcmF0b3I9PShjb25zdCBGb250
RmVhdHVyZSYgb3RoZXIpCit7CisgICAgcmV0dXJuIG1fdGFnID09IG90aGVyLm1fdGFnICYmIG1f
dmFsdWUgPT0gb3RoZXIubV92YWx1ZTsKK30KKworRm9udEZlYXR1cmVTZXR0aW5nczo6Rm9udEZl
YXR1cmVTZXR0aW5ncygpCit7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYmQ5YjMz
OWU2NTEwNTgxYWE5YTQ2Yjg4ZmZjMDEyYzNhOGQ3ZjBiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5oCkBAIC0w
LDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZvbnRGZWF0dXJlU2V0dGluZ3NfaAorI2Rl
ZmluZSBGb250RmVhdHVyZVNldHRpbmdzX2gKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZvbnRGZWF0dXJlIHsKK3B1YmxpYzoK
KyAgICBGb250RmVhdHVyZShjb25zdCBBdG9taWNTdHJpbmcmIHRhZywgaW50IHZhbHVlKTsKKyAg
ICBib29sIG9wZXJhdG9yPT0oY29uc3QgRm9udEZlYXR1cmUmKTsKKworICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgdGFnKCkgY29uc3QgeyByZXR1cm4gbV90YWc7IH0KKyAgICBpbnQgdmFsdWUoKSBj
b25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CisKK3ByaXZhdGU6CisgICAgQXRvbWljU3RyaW5nIG1f
dGFnOworICAgIGNvbnN0IGludCBtX3ZhbHVlOworfTsKKworY2xhc3MgRm9udEZlYXR1cmVTZXR0
aW5ncyA6IHB1YmxpYyBSZWZDb3VudGVkPEZvbnRGZWF0dXJlU2V0dGluZ3M+IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxGb250RmVhdHVyZVNldHRpbmdzPiBjcmVhdGUoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGb250RmVhdHVyZVNldHRpbmdzKCkpOwor
ICAgIH0KKyAgICB2b2lkIGFwcGVuZChjb25zdCBGb250RmVhdHVyZSYgZmVhdHVyZSkgeyBtX2xp
c3QuYXBwZW5kKGZlYXR1cmUpOyB9CisgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBt
X2xpc3Quc2l6ZSgpOyB9CisgICAgY29uc3QgRm9udEZlYXR1cmUmIG9wZXJhdG9yW10oaW50IGlu
ZGV4KSBjb25zdCB7IHJldHVybiBtX2xpc3RbaW5kZXhdOyB9CisgICAgY29uc3QgRm9udEZlYXR1
cmUmIGF0KHNpemVfdCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9saXN0LmF0KGluZGV4KTsgfQor
Citwcml2YXRlOgorICAgIEZvbnRGZWF0dXJlU2V0dGluZ3MoKTsKKyAgICBWZWN0b3I8Rm9udEZl
YXR1cmU+IG1fbGlzdDsKK307CisKK30KKworI2VuZGlmIC8vIEZvbnRGZWF0dXJlU2V0dGluZ3Nf
aAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>