<?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>46973</bug_id>
          
          <creation_ts>2010-10-01 03:58:50 -0700</creation_ts>
          <short_desc>Need to swap glyphs for vertical writing</short_desc>
          <delta_ts>2010-10-21 15:40: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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>48061</dependson>
          <blocked>46123</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Takumi Takano">takano</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adele</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>hyatt</cc>
    
    <cc>jamesr</cc>
    
    <cc>mitz</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>288158</commentid>
    <comment_count>0</comment_count>
    <who name="Takumi Takano">takano</who>
    <bug_when>2010-10-01 03:58:50 -0700</bug_when>
    <thetext>In Japanese text, some glyphs (punctuations, parentheses...etc) should be swapped with ones that designed for vertical writing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288167</commentid>
    <comment_count>1</comment_count>
      <attachid>69449</attachid>
    <who name="Takumi Takano">takano</who>
    <bug_when>2010-10-01 04:40:37 -0700</bug_when>
    <thetext>Created attachment 69449
Proposed patch file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288168</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-01 04:41:40 -0700</bug_when>
    <thetext>Attachment 69449 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/ChangeLog:7:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288171</commentid>
    <comment_count>3</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-01 04:53:16 -0700</bug_when>
    <thetext>Attachment 69449 did not build on qt:
Build output: http://queues.webkit.org/results/4220035</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288184</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-01 05:21:41 -0700</bug_when>
    <thetext>Attachment 69449 did not build on gtk:
Build output: http://queues.webkit.org/results/4231041</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288189</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-01 05:29:19 -0700</bug_when>
    <thetext>Attachment 69449 did not build on chromium:
Build output: http://queues.webkit.org/results/4197029</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288294</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-01 09:27:45 -0700</bug_when>
    <thetext>Attachment 69449 did not build on win:
Build output: http://queues.webkit.org/results/4224052</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288306</commentid>
    <comment_count>7</comment_count>
      <attachid>69449</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-10-01 09:56:50 -0700</bug_when>
    <thetext>Comment on attachment 69449
Proposed patch file

you&apos;ll need to fix build and style errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288741</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-02 22:26:53 -0700</bug_when>
    <thetext>Also, this definitely looks like a change that requires a regression test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288810</commentid>
    <comment_count>9</comment_count>
      <attachid>69600</attachid>
    <who name="Takumi Takano">takano</who>
    <bug_when>2010-10-03 22:40:28 -0700</bug_when>
    <thetext>Created attachment 69600
[build test] fixed a style error and non-Mac platform errors

[build test] I&apos;m checking if my changes build on non-Mac platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293299</commentid>
    <comment_count>10</comment_count>
      <attachid>70585</attachid>
    <who name="Takumi Takano">takano</who>
    <bug_when>2010-10-13 00:58:58 -0700</bug_when>
    <thetext>Created attachment 70585
[build test] Supported font fast path. Submitted to test builds on non-Mac platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293529</commentid>
    <comment_count>11</comment_count>
      <attachid>70585</attachid>
    <who name="">mitz</who>
    <bug_when>2010-10-13 11:02:04 -0700</bug_when>
    <thetext>Comment on attachment 70585
[build test] Supported font fast path. Submitted to test builds on non-Mac platforms.

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

&gt; WebCore/platform/graphics/FontCache.cpp:85
&gt; +    bool m_isVerticalLayout;

m_isVerticalLayout is a bad name for this instance variable and for the predicates. Please add an enum { Horizontal, Vertical } FontOrientation and use it.

&gt; WebCore/platform/graphics/TypesettingFeatures.h:33
&gt; +        VerticalLayout = 1 &lt;&lt; 2,

This is a property of the font, so it doesn’t need to be a typesetting feature.

&gt; WebCore/platform/graphics/mac/GlyphPageTreeNodeMac.cpp:63
&gt; +        static const int ligaturesNotAllowedValue = 0;
&gt; +        static CFNumberRef ligaturesNotAllowed = CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &amp;ligaturesNotAllowedValue);
&gt; +        static const void* keys[] = {   kCTFontAttributeName,               kCTLigatureAttributeName,   kCTVerticalFormsAttributeName };
&gt; +        const void* values[] = {        fontData-&gt;platformData().ctFont(),  ligaturesNotAllowed,        kCFBooleanTrue };
&gt; +        RetainPtr&lt;CFDictionaryRef&gt; attributeDictionary(AdoptCF, CFDictionaryCreate(kCFAllocatorDefault, keys, values, sizeof(keys) / sizeof(*keys),
&gt; +                                                                &amp;kCFCopyStringDictionaryKeyCallBacks, &amp;kCFTypeDictionaryValueCallBacks));
&gt; +
&gt; +        RetainPtr&lt;CFStringRef&gt; fontName(AdoptCF, CTFontCopyPostScriptName(fontData-&gt;platformData().ctFont()));

This should just use SimpleFontData::getCFStringAttributes().

&gt; WebCore/platform/graphics/mac/GlyphPageTreeNodeMac.cpp:85
&gt; +            RetainPtr&lt;CFStringRef&gt; runFontName(AdoptCF, CTFontCopyPostScriptName(runFont));
&gt; +            if (CFEqual(fontName.get(), runFontName.get())) {

This is a strange way to compare fonts.

&gt; WebCore/platform/graphics/mac/SimpleFontDataCoreText.cpp:81
&gt; -        static const void* keysWithKerningDisabled[] = { kCTFontAttributeName, kCTKernAttributeName, kCTLigatureAttributeName };
&gt; -        const void* valuesWithKerningDisabled[] = { platformData().ctFont(), kerningAdjustment, allowLigatures
&gt; -            ? ligaturesAllowed : ligaturesNotAllowed };
&gt; +        static const void* keysWithKerningDisabled[] = {    kCTFontAttributeName,
&gt; +                                                            kCTKernAttributeName,
&gt; +                                                            kCTLigatureAttributeName,
&gt; +                                                            kCTVerticalFormsAttributeName };
&gt; +        const void* valuesWithKerningDisabled[] = {         platformData().ctFont(),
&gt; +                                                            kerningAdjustment,
&gt; +                                                            allowLigatures ? ligaturesAllowed : ligaturesNotAllowed,
&gt; +                                                            (typesettingFeatures &amp; VerticalLayout) ? kCFBooleanTrue : kCFBooleanFalse };
&gt;          attributesDictionary.adoptCF(CFDictionaryCreate(0, keysWithKerningDisabled, valuesWithKerningDisabled,
&gt;              sizeof(keysWithKerningDisabled) / sizeof(*keysWithKerningDisabled),
&gt;              &amp;kCFCopyStringDictionaryKeyCallBacks, &amp;kCFTypeDictionaryValueCallBacks));
&gt;      } else {
&gt;          // By omitting the kCTKernAttributeName attribute, we get Core Text&apos;s standard kerning.
&gt; -        static const void* keysWithKerningEnabled[] = { kCTFontAttributeName, kCTLigatureAttributeName };
&gt; -        const void* valuesWithKerningEnabled[] = { platformData().ctFont(), allowLigatures ? ligaturesAllowed : ligaturesNotAllowed };
&gt; +        static const void* keysWithKerningEnabled[] = {     kCTFontAttributeName,
&gt; +                                                            kCTLigatureAttributeName,
&gt; +                                                            kCTVerticalFormsAttributeName };
&gt; +        const void* valuesWithKerningEnabled[] = {          platformData().ctFont(),
&gt; +                                                            allowLigatures ? ligaturesAllowed : ligaturesNotAllowed,
&gt; +                                                            (typesettingFeatures &amp; VerticalLayout) ? kCFBooleanTrue : kCFBooleanFalse };

Instead of making this change, you should change FontPlatformData::ctFont() to return a font with kCTFontOrientationAttribute set to kCTFontVerticalOrientation.

&gt; WebCore/platform/graphics/mac/SimpleFontDataMac.mm:440
&gt;  {
&gt; -    NSFont* font = platformData().font();
&gt; -    float pointSize = platformData().m_size;
&gt; -    CGAffineTransform m = CGAffineTransformMakeScale(pointSize, pointSize);
&gt;      CGSize advance;
&gt; -    if (!wkGetGlyphTransformedAdvances(platformData().cgFont(), font, &amp;m, &amp;glyph, &amp;advance)) {
&gt; -        LOG_ERROR(&quot;Unable to cache glyph widths for %@ %f&quot;, [font displayName], pointSize);
&gt; -        advance.width = 0;
&gt; -    }
&gt; +    CTFontGetAdvancesForGlyphs(m_platformData.ctFont(),
&gt; +                                m_platformData.isVerticalLayout() ? kCTFontVerticalOrientation : kCTFontHorizontalOrientation, &amp;glyph, &amp;advance, 1);

For horizontal orientation, this should keep using wkGetGlyphTransformedAdvances, which takes the font’s rendering mode into account.

&gt; WebCore/rendering/style/RenderStyle.cpp:720
&gt; +void RenderStyle::setWritingMode(WritingMode v)
&gt; +{
&gt; +    inherited_flags.m_writingMode = v;
&gt; +
&gt; +    FontSelector* currentFontSelector = font().fontSelector();
&gt; +    FontDescription desc(fontDescription());
&gt; +    desc.setIsVerticalLayout(!isHorizontalWritingMode());
&gt; +    setFontDescription(desc);
&gt; +    font().update(currentFontSelector);
&gt; +}
&gt; +

This should be done in CSSStyleSelector using the m_fontDirty bit rather than unconditionally updating the font here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294046</commentid>
    <comment_count>12</comment_count>
    <who name="Takumi Takano">takano</who>
    <bug_when>2010-10-14 04:32:35 -0700</bug_when>
    <thetext>Thanks for the review.  I&apos;ll fix them except following one.

&gt; WebCore/platform/graphics/mac/SimpleFontDataCoreText.cpp:81
....
&gt; Instead of making this change, you should change FontPlatformData::ctFont() to return a font with kCTFontOrientationAttribute set to kCTFontVerticalOrientation.
&gt; 

Apparently CTFont&apos;s CTFontGetGlyphsForCharacters() doesn&apos;t retrieve vertical variant glyphs even the font has kCTFontVerticalOrientation attribute, probably because glyph swapping for vertical layout is handled in CoreText&apos;s line layout engine, not at CTFont&apos;s level. I checked the source of CTFontGetGlyphsForCharacters() and confirmed it just directly consults font&apos;s cmap.

Can I leave this part as is?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294085</commentid>
    <comment_count>13</comment_count>
    <who name="Takumi Takano">takano</who>
    <bug_when>2010-10-14 06:42:21 -0700</bug_when>
    <thetext>...and a CTLine created from CTFont+kCTFontOrientationAttribute but without kCTVerticalFormsAttributeName doesn&apos;t do glyph swapping also. As far as I tested, we need to explicitly specify kCTVerticalFormsAttributeName in a CTLine to make glyph swapping to be happened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294559</commentid>
    <comment_count>14</comment_count>
      <attachid>70827</attachid>
    <who name="Takumi Takano">takano</who>
    <bug_when>2010-10-14 20:51:06 -0700</bug_when>
    <thetext>Created attachment 70827
[another build test] Incorporated mitz&apos;s feedback. Submitted to test builds on non-Mac platforms.

Incorporated mitz&apos;s feedback except the one for SimpleFontDataCoreText.cpp.  Apparently making CTFont with kCTFontOrientationAttribute=kCTFontVerticalOrientation doesn&apos;t help to simplify the code. Please see my comments above...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294560</commentid>
    <comment_count>15</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-14 21:04:14 -0700</bug_when>
    <thetext>Attachment 70827 did not build on qt:
Build output: http://queues.webkit.org/results/4391038</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294566</commentid>
    <comment_count>16</comment_count>
      <attachid>70830</attachid>
    <who name="Takumi Takano">takano</who>
    <bug_when>2010-10-14 21:29:38 -0700</bug_when>
    <thetext>Created attachment 70830
[another build test] Fixed build error on non-Mac platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294576</commentid>
    <comment_count>17</comment_count>
      <attachid>70832</attachid>
    <who name="Takumi Takano">takano</who>
    <bug_when>2010-10-14 22:01:57 -0700</bug_when>
    <thetext>Created attachment 70832
[another build test] Fixed build error on non-Mac platforms. Forgot to add review flag...

Forgot to add review flag...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294621</commentid>
    <comment_count>18</comment_count>
      <attachid>70837</attachid>
    <who name="Takumi Takano">takano</who>
    <bug_when>2010-10-15 00:59:29 -0700</bug_when>
    <thetext>Created attachment 70837
[another build test] Fixed another build error on non-Mac platforms...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294843</commentid>
    <comment_count>19</comment_count>
      <attachid>70837</attachid>
    <who name="">mitz</who>
    <bug_when>2010-10-15 11:45:51 -0700</bug_when>
    <thetext>Comment on attachment 70837
[another build test] Fixed another build error on non-Mac platforms...

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

&gt; WebCore/ChangeLog:11
&gt; +        Doesn&apos;t affect any tests yet.

Can you add tests that are affected by this? If not, why not?

&gt; WebCore/ChangeLog:104
&gt; +

Please add function-level comments about the changes.

&gt; WebCore/loader/CachedFont.cpp:120
&gt; +FontPlatformData CachedFont::platformDataFromCustomData(float size, bool bold, bool italic, FontOrientation fontOrientation, FontRenderingMode renderingMode)

Please rename the parameter to “orientation”. There’s no need for “font” in this context.

&gt; WebCore/loader/CachedFont.h:30
&gt; +#include &quot;FontDescription.h&quot;

Please define FontOrientation in its own header so that you don’t have to include FontDescription in this header.

&gt; WebCore/loader/CachedFont.h:66
&gt; +    FontPlatformData platformDataFromCustomData(float size, bool bold, bool italic, FontOrientation fontOrientation = Horizontal, FontRenderingMode = NormalRenderingMode);

Please drop the parameter name “fontOrientation” altogether. WebKit style is not to name parameters in declarations when there is no ambiguity.

&gt; WebCore/platform/graphics/FontCache.cpp:58
&gt; +                             bool isPrinterFont = false, FontRenderingMode renderingMode = NormalRenderingMode, FontOrientation fontOrientation = Horizontal)

Again, please drop “font” from the parameter name.

&gt; WebCore/platform/graphics/FontCache.cpp:85
&gt; +    FontOrientation m_fontOrientation;

And rename this to m_orientation.

&gt; WebCore/platform/graphics/FontDescription.h:100
&gt; +    FontOrientation fontOrientation() const { return m_fontOrientation; }

Rename this accessor to orientation().

&gt; WebCore/platform/graphics/FontDescription.h:120
&gt; +    void setFontOrientation(FontOrientation fontOrientation) { m_fontOrientation = fontOrientation; }

And this one to setOrientation().

&gt; WebCore/platform/graphics/FontDescription.h:129
&gt; +    FontOrientation m_fontOrientation; // Font&apos;s orientation. Horizontal or vertical.

I don’t think the comment is necessary.

&gt; WebCore/platform/graphics/cairo/FontCustomPlatformData.h:25
&gt; +#include &quot;FontDescription.h&quot;

Use a separate header for the FontOrientation enum.

&gt; WebCore/platform/graphics/cairo/FontCustomPlatformData.h:42
&gt; +    FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontOrientation fontOrientation = Horizontal, FontRenderingMode = NormalRenderingMode);

Don’t name the parameter.

&gt; WebCore/platform/graphics/cairo/FontPlatformDataFreeType.h:58
&gt; +    FontPlatformData(float size, bool bold, bool italic, FontOrientation fontOrientation = Horizontal);

Why is this change needed? You should omit the parameter name, if this is needed.

&gt; WebCore/platform/graphics/cg/FontPlatformData.h:27
&gt; +#include &quot;FontDescription.h&quot;

Use a separate header for the FontOrientation enum.

&gt; WebCore/platform/graphics/cg/FontPlatformData.h:53
&gt; +    FontPlatformData(float size, bool bold, bool oblique, FontOrientation fontOrientation = Horizontal);

Why is this change needed? If this is needed, you should omit the parameter name.

&gt; WebCore/platform/graphics/chromium/FontPlatformDataChromiumWin.h:37
&gt; +#include &quot;FontDescription.h&quot;

Use a separate header for the FontOrientation enum.

&gt; WebCore/platform/graphics/chromium/FontPlatformDataChromiumWin.h:61
&gt; +    FontPlatformData(float size, bool bold, bool oblique, FontOrientation fontOrientation = Horizontal);

Why is this change needed? If this is needed, you should omit the parameter name.

&gt; WebCore/platform/graphics/chromium/FontPlatformDataLinux.h:34
&gt; +#include &quot;FontDescription.h&quot;

Use a separate header for the FontOrientation enum.

&gt; WebCore/platform/graphics/chromium/FontPlatformDataLinux.h:77
&gt; +    FontPlatformData(float textSize, bool fakeBold, bool fakeItalic, FontOrientation fontOrientation = Horizontal)

Why is this change needed? If this is needed, you should omit the parameter name.

&gt; WebCore/platform/graphics/cocoa/FontPlatformData.h:27
&gt; +#include &quot;FontDescription.h&quot;

Use a separate header for the FontOrientation enum.

&gt; WebCore/platform/graphics/cocoa/FontPlatformData.h:62
&gt; +    FontPlatformData(float size, bool syntheticBold, bool syntheticOblique, FontOrientation fontOrientation = Horizontal)

I’m not sure it’s a good idea to have a default value for the orientation.

&gt; WebCore/platform/graphics/cocoa/FontPlatformData.h:76
&gt; +    FontPlatformData(NSFont *nsFont, bool syntheticBold = false, bool syntheticOblique = false, FontOrientation fontOrientation = Horizontal);

Please omit the parameter name.

&gt; WebCore/platform/graphics/cocoa/FontPlatformData.h:78
&gt; +    FontPlatformData(CGFontRef cgFont, ATSUFontID fontID, float size, bool syntheticBold, bool syntheticOblique, FontOrientation fontOrientation = Horizontal)

And rename it to “orientation” here.

&gt; WebCore/platform/graphics/cocoa/FontPlatformData.h:100
&gt; +    FontOrientation fontOrientation() const { return m_fontOrientation; }

Please rename this accessor to orientation().

&gt; WebCore/platform/graphics/cocoa/FontPlatformData.h:104
&gt; +    FontOrientation m_fontOrientation;

And this member variable to m_orientation.

&gt; WebCore/platform/graphics/cocoa/FontPlatformDataCocoa.mm:47
&gt; +FontPlatformData::FontPlatformData(NSFont *nsFont, bool syntheticBold, bool syntheticOblique, FontOrientation fontOrientation)

Please rename the parameter to “orientation”.

&gt; WebCore/platform/graphics/gtk/FontPlatformDataPango.h:58
&gt; +    FontPlatformData(float size, bool bold, bool italic, FontOrientation fontOrientation = Horizontal);

Why is this change needed? If this is needed, you should omit the parameter name.

&gt; WebCore/platform/graphics/haiku/FontCustomPlatformData.h:24
&gt; +#include &quot;FontDescription.h&quot;

Use a separate header for the FontOrientation enum.

&gt; WebCore/platform/graphics/haiku/FontCustomPlatformData.h:41
&gt; +        FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontOrientation fontOrientation = Horizontal, FontRenderingMode = NormalRenderingMode);

Omit the parameter name.

&gt; WebCore/platform/graphics/haiku/FontPlatformData.h:48
&gt; +        FontPlatformData(float size, bool bold, bool oblique, FontOrientation fontOrientation = Horizontal);

Why is this change needed? If this is needed, you should omit the parameter name.

&gt; WebCore/platform/graphics/mac/FontCustomPlatformData.cpp:41
&gt; +FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontOrientation fontOrientation, FontRenderingMode)

Rename the parameter to “orientation”.

&gt; WebCore/platform/graphics/mac/FontCustomPlatformData.h:24
&gt; +#include &quot;FontDescription.h&quot;

Use a separate header for the FontOrientation enum.

&gt; WebCore/platform/graphics/mac/FontCustomPlatformData.h:45
&gt; +    FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontOrientation fontOrientation = Horizontal, FontRenderingMode = NormalRenderingMode);

Omit the parameter name.

&gt; WebCore/platform/graphics/mac/GlyphPageTreeNodeMac.cpp:77
&gt; +            RetainPtr&lt;CGFontRef&gt; runCGFont(AdoptCF, CTFontCopyGraphicsFont(runFont, 0));
&gt; +            if (CFEqual(fontData-&gt;platformData().cgFont(), runCGFont.get())) {

Is there a reason to compare CGFonts and not CTFonts here?

&gt; WebCore/platform/graphics/mac/GlyphPageTreeNodeMac.cpp:83
&gt; +                Vector&lt;CGGlyph, 512&gt; glyphs(static_cast&lt;size_t&gt;(glyphCount));
&gt; +                CTRunGetGlyphs(ctRun, CFRangeMake(0, 0), glyphs.data());
&gt; +                Vector&lt;CFIndex, 512&gt; stringIndices(static_cast&lt;size_t&gt;(glyphCount));
&gt; +                CTRunGetStringIndices(ctRun, CFRangeMake(0, 0), stringIndices.data());

This forces copying, but CTRunGetGlyphsPtr() and CTRunGetStringIndicesPtr() don’t. Of course, those aren’t guaranteed to work, so you need try them first, then use the above as a fallback if they fail.

&gt; WebCore/platform/graphics/mac/SimpleFontDataCoreText.cpp:46
&gt; +    unsigned key = (typesettingFeatures + 1) | (platformData().fontOrientation() &lt;&lt; 8);

There’s no need to include the orientation in the key, because it’s constant for a given SimpleFontData instance.

&gt; WebCore/platform/graphics/mac/SimpleFontDataCoreText.cpp:52
&gt; +    bool allowLigatures = (!ignoreDefaultFeatures &amp;&amp; platformData().allowsLigatures()) || (typesettingFeatures &amp; Ligatures);

You can just change platformData().allowsLigatures() to return false for the vertical orientation, and avoid adding the ignoreDefaultFeatures parameter to this method.

&gt; WebCore/platform/graphics/mac/SimpleFontDataCoreText.cpp:70
&gt; +        static const void* keysWithKerningDisabled[] = {    kCTFontAttributeName,
&gt; +                                                            kCTKernAttributeName,
&gt; +                                                            kCTLigatureAttributeName,
&gt; +                                                            kCTVerticalFormsAttributeName };
&gt; +        const void* valuesWithKerningDisabled[] = {         platformData().ctFont(),
&gt; +                                                            kerningAdjustment,
&gt; +                                                            allowLigatures ? ligaturesAllowed : ligaturesNotAllowed,
&gt; +                                                            (platformData().fontOrientation() == Vertical) ? kCFBooleanTrue : kCFBooleanFalse };

WebKit style is to not align things like this. Please just add the key and the value at the end.

&gt; WebCore/platform/graphics/mac/SimpleFontDataMac.mm:421
&gt; +    boundingBox = CTFontGetBoundingRectsForGlyphs(m_platformData.ctFont(),
&gt; +                    m_platformData.fontOrientation() == Vertical ? kCTFontVerticalOrientation : kCTFontHorizontalOrientation, &amp;glyph, NULL, 1);

WebKit style is to use 0, not NULL.

&gt; WebCore/platform/graphics/qt/FontCustomPlatformData.h:25
&gt; +#include &quot;FontDescription.h&quot;

Use a separate header for FontOrientation.

&gt; WebCore/platform/graphics/qt/FontCustomPlatformData.h:41
&gt; +    FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontOrientation fontOrientation = Horizontal, FontRenderingMode = NormalRenderingMode);

Omit the parameter name.

&gt; WebCore/platform/graphics/qt/FontPlatformData.h:66
&gt; +    FontPlatformData(float size, bool bold, bool oblique, FontOrientation fontOrientation = Horizontal);

I don’t think this change is needed. If it is, omit the parameter name.

&gt; WebCore/platform/graphics/skia/FontCustomPlatformData.h:35
&gt; +#include &quot;FontDescription.h&quot;

Use a separate header for FontOrientation.

&gt; WebCore/platform/graphics/skia/FontCustomPlatformData.h:66
&gt; +    FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontOrientation fontOrientation = Horizontal,

Omit the parameter name.

&gt; WebCore/platform/graphics/win/FontCustomPlatformData.h:24
&gt; +#include &quot;FontDescription.h&quot;

Use separate header.

&gt; WebCore/platform/graphics/win/FontCustomPlatformData.h:46
&gt; +    FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontOrientation fontOrientation = Horizontal, FontRenderingMode = NormalRenderingMode);

Omit parameter name.

&gt; WebCore/platform/graphics/win/FontCustomPlatformDataCairo.h:43
&gt; +    FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontOrientation fontOrientation = Horizontal);

Don’t this this is needed. Omit parameter name.

&gt; WebCore/platform/graphics/win/FontPlatformDataCairoWin.h:63
&gt; +    FontPlatformData(float size, bool bold, bool italic, FontOrientation fontOrientation = Horizontal);

Ditto.

&gt; WebCore/platform/graphics/wince/FontPlatformData.h:45
&gt; +        FontPlatformData(float size, bool bold, bool oblique, FontOrientation fontOrientation = Horizontal);

Ditto.

&gt; WebCore/platform/graphics/wx/FontCustomPlatformData.h:24
&gt; +#include &quot;FontDescription.h&quot;

Use different header.

&gt; WebCore/platform/graphics/wx/FontCustomPlatformData.h:41
&gt; +        FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontOrientation fontOrientation = Horizontal, FontRenderingMode = NormalRenderingMode);

Omit parameter name.

&gt; WebCore/platform/graphics/wx/FontPlatformData.h:94
&gt; +    FontPlatformData(float size, bool bold, bool italic, FontOrientation fontOrientation = Horizontal)

Don’t think you need to change this. If you do, omit the parameter name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295447</commentid>
    <comment_count>20</comment_count>
      <attachid>71023</attachid>
    <who name="Takumi Takano">takano</who>
    <bug_when>2010-10-18 05:02:16 -0700</bug_when>
    <thetext>Created attachment 71023
Incorporated additional feedback from mitz.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295450</commentid>
    <comment_count>21</comment_count>
    <who name="Takumi Takano">takano</who>
    <bug_when>2010-10-18 05:10:01 -0700</bug_when>
    <thetext>Thank you very much for your feedback again. I&apos;ve fixed them except following two.

&gt; &gt; WebCore/platform/graphics/cocoa/FontPlatformData.h:62
&gt; &gt; +    FontPlatformData(float size, bool syntheticBold, bool syntheticOblique, FontOrientation fontOrientation = Horizontal)
&gt; 
&gt; I’m not sure it’s a good idea to have a default value for the orientation.
&gt; 

Otherwise CachedFont.cpp:124, FontCache.cpp:241, SimpleFontData.cpp:67 cause compile errors on FontPlatformData creation as now we don&apos;t add &quot;orientation&quot; to non-Mac platform. Or, do you think it is better to add another constructor that takes only a size, a bold flag, and an oblique flag?


&gt; &gt; WebCore/platform/graphics/mac/GlyphPageTreeNodeMac.cpp:77
&gt; &gt; +            RetainPtr&lt;CGFontRef&gt; runCGFont(AdoptCF, CTFontCopyGraphicsFont(runFont, 0));
&gt; &gt; +            if (CFEqual(fontData-&gt;platformData().cgFont(), runCGFont.get())) {
&gt; 
&gt; Is there a reason to compare CGFonts and not CTFonts here?
&gt; 

CFEqual for CTFont considers font&apos;s CTFontDescriptor that contains various attributes on top of the font data itself. I wanted to avoid possible small discrepancies CT&apos;s layout engine might added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295642</commentid>
    <comment_count>22</comment_count>
      <attachid>71023</attachid>
    <who name="">mitz</who>
    <bug_when>2010-10-18 11:27:37 -0700</bug_when>
    <thetext>Comment on attachment 71023
Incorporated additional feedback from mitz.

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

The patch looks good! My comments are all pretty minor.

&gt; WebCore/platform/graphics/cocoa/FontPlatformDataCocoa.mm:175
&gt; +    return (m_orientation == Horizontal) &amp;&amp; (![[m_font coveredCharacterSet] characterIsMember:&apos;a&apos;]);

Please remove the extraneous parentheses.

&gt; WebCore/platform/graphics/mac/GlyphPageTreeNodeMac.cpp:68
&gt; +        static Vector&lt;CGGlyph, 512&gt; *glyphVector = 0;
&gt; +        static Vector&lt;CFIndex, 512&gt; *indexVector = 0;

WebKit style is to put the space on the other side of the star. However, I suggest allocating these on the stack unconditionally instead of using pointers and heap allocation.

&gt; WebCore/platform/graphics/mac/GlyphPageTreeNodeMac.cpp:70
&gt; +        for (CFIndex r = 0; r &lt; runCount &amp;&amp; !done ; r++) {

WebKit style is to write “++r” in for loops. It doesn’t make a difference for a type like CFIndex, but it’s better for some iterator types, so we do this for consistency.

&gt; WebCore/platform/graphics/mac/GlyphPageTreeNodeMac.cpp:79
&gt; +            if (CFEqual(fontData-&gt;platformData().cgFont(), runCGFont.get())) { // Use CGFont here as CFEqual for CTFont counts all attributes for font

Please put the comment on its own line and terminate it with a period!

&gt; WebCore/platform/graphics/mac/SimpleFontDataCoreText.cpp:65
&gt; +            ? ligaturesAllowed : ligaturesNotAllowed, (platformData().orientation() == Vertical) ? kCFBooleanTrue : kCFBooleanFalse };

Parentheses unneeded here.

&gt; WebCore/platform/graphics/mac/SimpleFontDataCoreText.cpp:72
&gt; +        const void* valuesWithKerningEnabled[] = { platformData().ctFont(), allowLigatures ? ligaturesAllowed : ligaturesNotAllowed, (platformData().orientation() == Vertical) ? kCFBooleanTrue : kCFBooleanFalse };

And here.

&gt; LayoutTests/fast/text/international/vertical-text-metrics-test.html:1
&gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; 

Is there any reason to use this legacy doctype for this test? If the test works with the HTML5 doctype or without a doctype, please change.

&gt; LayoutTests/fast/text/international/vertical-text-metrics-test.html:17
&gt; +    if (window.layoutTestController)
&gt; +        layoutTestController.dumpAsText();

It’s good to have this dumps-as-text test for the metrics. Can you also make a pixel test for the glyph variants?

&gt; LayoutTests/fast/text/international/vertical-text-metrics-test.html:23
&gt; +		var elem = pElems[i];
&gt; +		print(&quot;width=&quot; + elem.offsetWidth);

Tabs here will prevent this patch from being landed.

&gt; LayoutTests/fast/text/international/vertical-text-metrics-test.html:49
&gt; +&lt;span id=&quot;horizontal_TB&quot;&gt;abãããã&lt;/span&gt;&lt;br&gt;
&gt; +&lt;span id=&quot;horizontal_BT&quot;&gt;abãããã&lt;/span&gt;&lt;br&gt;
&gt; +&lt;span id=&quot;vertical_RL&quot;&gt;abãããã&lt;/span&gt;&lt;br&gt;
&gt; +&lt;span id=&quot;vertical_LR&quot;&gt;abãããã&lt;/span&gt;&lt;br&gt;

Is this testing only the simple text code path? It would be good to test the complex text code path as well. One way to force things down that path is to use “text-rendering: optimizelegibility”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295991</commentid>
    <comment_count>23</comment_count>
      <attachid>71131</attachid>
    <who name="Takumi Takano">takano</who>
    <bug_when>2010-10-18 22:11:13 -0700</bug_when>
    <thetext>Created attachment 71131
Made some more changes pointed by mitz

Added some more changes pointed by mitz.
One exception is for the comment below;
&gt; &gt; LayoutTests/fast/text/international/vertical-text-metrics-test.html:17
&gt; &gt; +    if (window.layoutTestController)
&gt; &gt; +        layoutTestController.dumpAsText();
&gt; 
&gt; It’s good to have this dumps-as-text test for the metrics. Can you also make a pixel test for the glyph variants?

We cannot get correct pixel images at this time, because laying out the text box for vertical writing mode (e.g., flowing text vertically and stacking text boxes tb-rl) hasn&apos;t been finished yet...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296238</commentid>
    <comment_count>24</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-10-19 09:44:35 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Created an attachment (id=71131) [details]
&gt; Made some more changes pointed by mitz
&gt; 
&gt; Added some more changes pointed by mitz.
&gt; One exception is for the comment below;
&gt; &gt; &gt; LayoutTests/fast/text/international/vertical-text-metrics-test.html:17
&gt; &gt; &gt; +    if (window.layoutTestController)
&gt; &gt; &gt; +        layoutTestController.dumpAsText();
&gt; &gt; 
&gt; &gt; It’s good to have this dumps-as-text test for the metrics. Can you also make a pixel test for the glyph variants?
&gt; 
&gt; We cannot get correct pixel images at this time, because laying out the text box for vertical writing mode (e.g., flowing text vertically and stacking text boxes tb-rl) hasn&apos;t been finished yet…

The images need not be “correct”, they are useful if they can help to detect unintended changes in behavior, which could be regressions. So I think a pixel test would be quite valuable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296365</commentid>
    <comment_count>25</comment_count>
      <attachid>71131</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-19 13:32:27 -0700</bug_when>
    <thetext>Comment on attachment 71131
Made some more changes pointed by mitz

Rejecting patch 71131 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=abarth-cq-sl&apos;, &apos;build-and-test&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--test&apos;, &apos;--quiet&apos;, &apos;--non-interactive&apos;]&quot; exit_code: 2
Last 500 characters of output:
, Tests=304,  1 wallclock secs ( 0.63 cusr +  0.13 csys =  0.76 CPU)
Running build-dumprendertree
Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Users/abarth/git/webkit-queue/LayoutTests
Testing 21599 test cases.
fast/text/international/vertical-text-metrics-test.html -&gt; failed

Exiting early after 1 failures. 15784 tests run.
212.08s total testing time

15783 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
3 test cases (&lt;1%) had stderr output

Full output: http://queues.webkit.org/results/4578001</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296723</commentid>
    <comment_count>26</comment_count>
      <attachid>71269</attachid>
    <who name="Takumi Takano">takano</who>
    <bug_when>2010-10-20 03:23:09 -0700</bug_when>
    <thetext>Created attachment 71269
Added pixel test. Changed tests to explicitly specify a font family.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296726</commentid>
    <comment_count>27</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-20 03:41:22 -0700</bug_when>
    <thetext>Attachment 71269 did not build on qt:
Build output: http://queues.webkit.org/results/4509007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296729</commentid>
    <comment_count>28</comment_count>
      <attachid>71270</attachid>
    <who name="Takumi Takano">takano</who>
    <bug_when>2010-10-20 03:51:52 -0700</bug_when>
    <thetext>Created attachment 71270
Added pixel test. Changed tests to explicitly specify a font family. (Resubmitting for build error...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296732</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-20 04:23:46 -0700</bug_when>
    <thetext>Attachment 71269 did not build on chromium:
Build output: http://queues.webkit.org/results/4564012</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296821</commentid>
    <comment_count>30</comment_count>
      <attachid>71131</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-20 09:06:23 -0700</bug_when>
    <thetext>Comment on attachment 71131
Made some more changes pointed by mitz

Cleared Dan Bernstein&apos;s review+ from obsolete attachment 71131 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296894</commentid>
    <comment_count>31</comment_count>
      <attachid>71270</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-20 11:54:16 -0700</bug_when>
    <thetext>Comment on attachment 71270
Added pixel test. Changed tests to explicitly specify a font family. (Resubmitting for build error...)

Rejecting patch 71270 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;apply-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--quiet&apos;, 71270]&quot; exit_code: 2
Cleaning working directory
Updating working directory
Failed to run &quot;[&apos;WebKitTools/Scripts/update-webkit&apos;]&quot; exit_code: 2

Full output: http://queues.webkit.org/results/4520022</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296900</commentid>
    <comment_count>32</comment_count>
      <attachid>71270</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-20 11:57:29 -0700</bug_when>
    <thetext>Comment on attachment 71270
Added pixel test. Changed tests to explicitly specify a font family. (Resubmitting for build error...)

I think this was a false rejection from a run-away commit-node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297018</commentid>
    <comment_count>33</comment_count>
      <attachid>71270</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-20 14:13:34 -0700</bug_when>
    <thetext>Comment on attachment 71270
Added pixel test. Changed tests to explicitly specify a font family. (Resubmitting for build error...)

Rejecting patch 71270 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;build-and-test&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--test&apos;, &apos;--quiet&apos;, &apos;--non-interactive&apos;]&quot; exit_code: 2
Last 500 characters of output:
l.
Files=14, Tests=304,  1 wallclock secs ( 0.74 cusr +  0.18 csys =  0.92 CPU)
Running build-dumprendertree
Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Projects/CommitQueue/LayoutTests
Testing 21605 test cases.
fast/text/international/vertical-text-glyph-test.html -&gt; failed

Exiting early after 1 failures. 15787 tests run.
239.82s total testing time

15786 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
3 test cases (&lt;1%) had stderr output

Full output: http://queues.webkit.org/results/4613003</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297140</commentid>
    <comment_count>34</comment_count>
      <attachid>71365</attachid>
    <who name="">mitz</who>
    <bug_when>2010-10-20 16:53:35 -0700</bug_when>
    <thetext>Created attachment 71365
Same as attachment 71270, but with results updated after r70172</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297345</commentid>
    <comment_count>35</comment_count>
      <attachid>71365</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-21 03:43:05 -0700</bug_when>
    <thetext>Comment on attachment 71365
Same as attachment 71270, but with results updated after r70172

Clearing flags on attachment: 71365

Committed r70225: &lt;http://trac.webkit.org/changeset/70225&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297346</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-21 03:43:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297512</commentid>
    <comment_count>37</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-10-21 11:05:08 -0700</bug_when>
    <thetext>Committed r70250.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297588</commentid>
    <comment_count>38</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-10-21 13:02:07 -0700</bug_when>
    <thetext>r70250 changed some #if guards from USE(CORE_TEXT) to PLATFORM(MAC):

http://trac.webkit.org/changeset/70225/trunk/WebCore/platform/graphics/SimpleFontData.h

however PLATFORM(MAC) is only set for the Apple Mac port and so this broke the Chromium mac compile.  Was there a specific reason to move away from the USE(CORE_TEXT) macro?  Could these be changed from PLATFORM(MAC) to USE(CG) or something else that&apos;s also true for Chromium mac?  thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297690</commentid>
    <comment_count>39</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-10-21 15:40:09 -0700</bug_when>
    <thetext>(In reply to comment #38)
&gt; r70250 changed some #if guards from USE(CORE_TEXT) to PLATFORM(MAC):
&gt; 
&gt; http://trac.webkit.org/changeset/70225/trunk/WebCore/platform/graphics/SimpleFontData.h
&gt; 
&gt; however PLATFORM(MAC) is only set for the Apple Mac port and so this broke the Chromium mac compile.  Was there a specific reason to move away from the USE(CORE_TEXT) macro?  Could these be changed from PLATFORM(MAC) to USE(CG) or something else that&apos;s also true for Chromium mac?  thanks.

Chromium mac build fix landed in http://trac.webkit.org/changeset/70272.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69449</attachid>
            <date>2010-10-01 04:40:37 -0700</date>
            <delta_ts>2010-10-13 00:58:58 -0700</delta_ts>
            <desc>Proposed patch file</desc>
            <filename>WK46973Patch_101001.txt</filename>
            <type>text/plain</type>
            <size>28363</size>
            <attacher name="Takumi Takano">takano</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODg3NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjIgQEAKKzIwMTAtMTAtMDEgIHRha2FubyB0YWt1bWkgIDx0YWthbm8xQGFzaWEu
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5lZWQgdG8gc3dhcCBnbHlwaHMgZm9yIHZlcnRpY2FsIHdyaXRpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2OTczCisJCQorICAgICAgICBN
YWRlIGNoYW5nZXMgdG8gcGFzcyB0aGUgYmxvY2stZmxvdyBvcmllbnRhdGlvbiBmbGFnIGluIFJl
bmRlclN0eWxlIGRvd24KKyAgICAgICAgdG8gRm9udFBsYXRmb3JtRGF0YSBhbmQgQ29tcGxleFRl
eHRDb250cm9sbGVyLCBhbmQgdWx0aW1hdGVseSB0byBDb3JlVGV4dC4KKworICAgICAgICBEb2Vz
bid0IGFmZmVjdCBhbnkgdGVzdHMgeWV0LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNz
cy9DU1NGb250RmFjZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNv
dXJjZTo6Z2V0Rm9udERhdGEpOgorICAgICAgICAqIGxvYWRlci9DYWNoZWRGb250LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZEZvbnQ6OmVuc3VyZUN1c3RvbUZvbnREYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKToKKyAg
ICAgICAgKiBsb2FkZXIvQ2FjaGVkRm9udC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0ZvbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OnR5cGVzZXR0aW5nRmVhdHVyZXMpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXk6OkZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleSk6
CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXk6Om9wZXJhdG9yPT0p
OgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUhhc2gpOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dENhY2hlOjpnZXRDYWNoZWRGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnREYXRhQ2FjaGVLZXlUcmFpdHM6OmVtcHR5VmFsdWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0
aW9uOjpGb250RGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9u
Ojppc1ZlcnRpY2FsTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6
c2V0SXNWZXJ0aWNhbExheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246
Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpTaW1wbGVGb250RGF0YSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVHlwZXNldHRpbmdGZWF0dXJlcy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6aXNWZXJ0aWNhbExheW91dCk6CisgICAgICAg
IChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRQbGF0Zm9ybURhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQ
bGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBs
YXRmb3JtRGF0YTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURh
dGE6OmRlc2NyaXB0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENh
Y2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRGb250RGF0YUZvckNo
YXJhY3RlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZv
cm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpm
b250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZvbnRDdXN0b21QbGF0
Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpG
b250Q3VzdG9tUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
U2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250
RGF0YTo6Z2V0Q0ZTdHJpbmdBdHRyaWJ1dGVzKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldEJsb2Nr
Rmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisKIDIwMTAt
MTAtMDEgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5leHAu
aW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gNjg4Nzcp
CisrKyBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC0zNjcsNyArMzY3
LDcgQEAgX19aTjdXZWJDb3JlMTZEZXZpY2VNb3Rpb25EYXRhMTJBY2NlbGVyYQogX19aTjdXZWJD
b3JlMTZEZXZpY2VNb3Rpb25EYXRhMTJSb3RhdGlvblJhdGU2Y3JlYXRlRWJkYmRiZAogX19aTjdX
ZWJDb3JlMTZEZXZpY2VNb3Rpb25EYXRhNmNyZWF0ZUVOM1dURjEwUGFzc1JlZlB0cklOUzBfMTJB
Y2NlbGVyYXRpb25FRUVTNF9OUzJfSU5TMF8xMlJvdGF0aW9uUmF0ZUVFRWJkCiBfX1pON1dlYkNv
cmUxNkZvbnRGYWxsYmFja0xpc3QxNXJlbGVhc2VGb250RGF0YUV2Ci1fX1pON1dlYkNvcmUxNkZv
bnRQbGF0Zm9ybURhdGFDMUVQNk5TRm9udGJiCitfX1pON1dlYkNvcmUxNkZvbnRQbGF0Zm9ybURh
dGFDMUVQNk5TRm9udGJiYgogX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhRDFFdgogX19a
TjdXZWJDb3JlMTZMZWdhY3lXZWJBcmNoaXZlMTljcmVhdGVGcm9tU2VsZWN0aW9uRVBOU181RnJh
bWVFCiBfX1pON1dlYkNvcmUxNkxlZ2FjeVdlYkFyY2hpdmUyMXJhd0RhdGFSZXByZXNlbnRhdGlv
bkV2CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCShyZXZpc2lvbiA2ODg3NykKKysr
IFdlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU5
LDcgKzE1OSw3IEBAIFNpbXBsZUZvbnREYXRhKiBDU1NGb250RmFjZVNvdXJjZTo6Z2V0Rm8KICNl
bmRpZgogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBuZXcgRm9udFBs
YXRmb3JtRGF0YSBmcm9tIG91ciBDR0ZvbnRSZWYsIHBvaW50IHNpemUgYW5kIEFUU0ZvbnRSZWYu
Ci0gICAgICAgICAgICAgICAgaWYgKCFtX2ZvbnQtPmVuc3VyZUN1c3RvbUZvbnREYXRhKCkpCisg
ICAgICAgICAgICAgICAgaWYgKCFtX2ZvbnQtPmVuc3VyZUN1c3RvbUZvbnREYXRhKGZvbnREZXNj
cmlwdGlvbi5pc1ZlcnRpY2FsTGF5b3V0KCkpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
MDsKIAogICAgICAgICAgICAgICAgIGZvbnREYXRhLnNldChuZXcgU2ltcGxlRm9udERhdGEobV9m
b250LT5wbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmb250RGVzY3JpcHRpb24uY29tcHV0ZWRQ
aXhlbFNpemUoKSwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RGVzY3JpcHRp
b24ucmVuZGVyaW5nTW9kZSgpKSwgdHJ1ZSwgZmFsc2UpKTsKSW5kZXg6IFdlYkNvcmUvbG9hZGVy
L0NhY2hlZEZvbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0NhY2hlZEZvbnQu
Y3BwCShyZXZpc2lvbiA2ODg3NykKKysrIFdlYkNvcmUvbG9hZGVyL0NhY2hlZEZvbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDIsMTQgKzEwMiwxNCBAQCB2b2lkIENhY2hlZEZvbnQ6OmJlZ2lu
TG9hZElmTmVlZGVkKENhY2hlCiAgICAgfQogfQogCi1ib29sIENhY2hlZEZvbnQ6OmVuc3VyZUN1
c3RvbUZvbnREYXRhKCkKK2Jvb2wgQ2FjaGVkRm9udDo6ZW5zdXJlQ3VzdG9tRm9udERhdGEoYm9v
bCBpc1ZlcnRpY2FsTGF5b3V0KQogewogI2lmZGVmIFNUT1JFX0ZPTlRfQ1VTVE9NX1BMQVRGT1JN
X0RBVEEKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQogICAgIEFTU0VSVCghbV9pc1NWR0ZvbnQpOwog
I2VuZGlmCiAgICAgaWYgKCFtX2ZvbnREYXRhICYmICFlcnJvck9jY3VycmVkKCkgJiYgIWlzTG9h
ZGluZygpICYmIG1fZGF0YSkgewotICAgICAgICBtX2ZvbnREYXRhID0gY3JlYXRlRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YShtX2RhdGEuZ2V0KCkpOworICAgICAgICBtX2ZvbnREYXRhID0gY3JlYXRl
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YShtX2RhdGEuZ2V0KCksIGlzVmVydGljYWxMYXlvdXQpOwog
ICAgICAgICBpZiAoIW1fZm9udERhdGEpCiAgICAgICAgICAgICBzZXRFcnJvck9jY3VycmVkKHRy
dWUpOwogICAgIH0KQEAgLTExNywxNSArMTE3LDE1IEBAIGJvb2wgQ2FjaGVkRm9udDo6ZW5zdXJl
Q3VzdG9tRm9udERhdGEoKQogICAgIHJldHVybiBtX2ZvbnREYXRhOwogfQogCi1Gb250UGxhdGZv
cm1EYXRhIENhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGZsb2F0IHNpemUs
IGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUp
CitGb250UGxhdGZvcm1EYXRhIENhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRh
KGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGJvb2wgaXNWZXJ0aWNhbExheW91
dCwgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSkKIHsKICNpZiBFTkFCTEUoU1ZHX0ZP
TlRTKQogICAgIGlmIChtX2V4dGVybmFsU1ZHRG9jdW1lbnQpCi0gICAgICAgIHJldHVybiBGb250
UGxhdGZvcm1EYXRhKHNpemUsIGJvbGQsIGl0YWxpYyk7CisgICAgICAgIHJldHVybiBGb250UGxh
dGZvcm1EYXRhKHNpemUsIGJvbGQsIGl0YWxpYywgZmFsc2UpOwogI2VuZGlmCiAjaWZkZWYgU1RP
UkVfRk9OVF9DVVNUT01fUExBVEZPUk1fREFUQQogICAgIEFTU0VSVChtX2ZvbnREYXRhKTsKLSAg
ICByZXR1cm4gbV9mb250RGF0YS0+Zm9udFBsYXRmb3JtRGF0YShzdGF0aWNfY2FzdDxpbnQ+KHNp
emUpLCBib2xkLCBpdGFsaWMsIHJlbmRlcmluZ01vZGUpOworICAgIHJldHVybiBtX2ZvbnREYXRh
LT5mb250UGxhdGZvcm1EYXRhKHN0YXRpY19jYXN0PGludD4oc2l6ZSksIGJvbGQsIGl0YWxpYywg
aXNWZXJ0aWNhbExheW91dCwgcmVuZGVyaW5nTW9kZSk7CiAjZWxzZQogICAgIHJldHVybiBGb250
UGxhdGZvcm1EYXRhKCk7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0NhY2hlZEZvbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmgJKHJldmlzaW9uIDY4
ODc3KQorKysgV2ViQ29yZS9sb2FkZXIvQ2FjaGVkRm9udC5oCSh3b3JraW5nIGNvcHkpCkBAIC02
MSw4ICs2MSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYmVnaW5Mb2FkSWZOZWVkZWQoQ2FjaGVk
UmVzb3VyY2VMb2FkZXIqIGRsKTsKIAotICAgIGJvb2wgZW5zdXJlQ3VzdG9tRm9udERhdGEoKTsK
LSAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGZsb2F0IHNp
emUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVu
ZGVyaW5nTW9kZSk7CisgICAgYm9vbCBlbnN1cmVDdXN0b21Gb250RGF0YShib29sIGlzVmVydGlj
YWxMYXlvdXQpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgcGxhdGZvcm1EYXRhRnJvbUN1c3RvbURh
dGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgYm9vbCBpc1ZlcnRpY2FsTGF5
b3V0LCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOwogCiAjaWYgRU5B
QkxFKFNWR19GT05UUykKICAgICBib29sIGlzU1ZHRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1faXNT
VkdGb250OyB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkocmV2aXNpb24gNjg4Nzcp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MTE1LDcgKzExNSwxMCBAQCBwdWJsaWM6CiAgICAgVHlwZXNldHRpbmdGZWF0dXJlcyB0eXBlc2V0
dGluZ0ZlYXR1cmVzKCkgY29uc3QKICAgICB7CiAgICAgICAgIFRleHRSZW5kZXJpbmdNb2RlIHRl
eHRSZW5kZXJpbmdNb2RlID0gbV9mb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKTsK
LSAgICAgICAgcmV0dXJuIHRleHRSZW5kZXJpbmdNb2RlID09IE9wdGltaXplTGVnaWJpbGl0eSB8
fCB0ZXh0UmVuZGVyaW5nTW9kZSA9PSBHZW9tZXRyaWNQcmVjaXNpb24gPyBLZXJuaW5nIHwgTGln
YXR1cmVzIDogMDsKKyAgICAgICAgVHlwZXNldHRpbmdGZWF0dXJlcyBmZWF0dXJlcyA9ICh0ZXh0
UmVuZGVyaW5nTW9kZSA9PSBPcHRpbWl6ZUxlZ2liaWxpdHkgfHwgdGV4dFJlbmRlcmluZ01vZGUg
PT0gR2VvbWV0cmljUHJlY2lzaW9uKSA/IEtlcm5pbmcgfCBMaWdhdHVyZXMgOiAwOworICAgICAg
ICBpZiAobV9mb250RGVzY3JpcHRpb24uaXNWZXJ0aWNhbExheW91dCgpKQorICAgICAgICAgICAg
ZmVhdHVyZXMgfD0gVmVydGljYWxMYXlvdXQ7CisgICAgICAgIHJldHVybiBmZWF0dXJlczsKICAg
ICB9CiAKICAgICBGb250RmFtaWx5JiBmaXJzdEZhbWlseSgpIHsgcmV0dXJuIG1fZm9udERlc2Ny
aXB0aW9uLmZpcnN0RmFtaWx5KCk7IH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYWNoZS5jcHAJKHJldmlzaW9uIDY4ODc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSwxMyArNTUsMTQgQEAgRm9udENh
Y2hlOjpGb250Q2FjaGUoKQogCiBzdHJ1Y3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5IDogRmFz
dEFsbG9jQmFzZSB7CiAgICAgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5KGNvbnN0IEF0b21pY1N0
cmluZyYgZmFtaWx5ID0gQXRvbWljU3RyaW5nKCksIHVuc2lnbmVkIHNpemUgPSAwLCB1bnNpZ25l
ZCB3ZWlnaHQgPSAwLCBib29sIGl0YWxpYyA9IGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBib29sIGlzUHJpbnRlckZvbnQgPSBmYWxzZSwgRm9udFJlbmRlcmluZ01vZGUgcmVu
ZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgaXNQcmludGVyRm9udCA9IGZhbHNlLCBGb250UmVuZGVyaW5nTW9kZSByZW5k
ZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSwgYm9vbCBpc1ZlcnRpY2FsTGF5b3V0ID0g
ZmFsc2UpCiAgICAgICAgIDogbV9zaXplKHNpemUpCiAgICAgICAgICwgbV93ZWlnaHQod2VpZ2h0
KQogICAgICAgICAsIG1fZmFtaWx5KGZhbWlseSkKICAgICAgICAgLCBtX2l0YWxpYyhpdGFsaWMp
CiAgICAgICAgICwgbV9wcmludGVyRm9udChpc1ByaW50ZXJGb250KQogICAgICAgICAsIG1fcmVu
ZGVyaW5nTW9kZShyZW5kZXJpbmdNb2RlKQorICAgICAgICAsIG1faXNWZXJ0aWNhbExheW91dChp
c1ZlcnRpY2FsTGF5b3V0KQogICAgIHsKICAgICB9CiAKQEAgLTcyLDcgKzczLDcgQEAgc3RydWN0
IEZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleSA6IEZhc3RBbAogICAgIHsKICAgICAgICAgcmV0dXJu
IGVxdWFsSWdub3JpbmdDYXNlKG1fZmFtaWx5LCBvdGhlci5tX2ZhbWlseSkgJiYgbV9zaXplID09
IG90aGVyLm1fc2l6ZSAmJiAKICAgICAgICAgICAgICAgIG1fd2VpZ2h0ID09IG90aGVyLm1fd2Vp
Z2h0ICYmIG1faXRhbGljID09IG90aGVyLm1faXRhbGljICYmIG1fcHJpbnRlckZvbnQgPT0gb3Ro
ZXIubV9wcmludGVyRm9udCAmJgotICAgICAgICAgICAgICAgbV9yZW5kZXJpbmdNb2RlID09IG90
aGVyLm1fcmVuZGVyaW5nTW9kZTsKKyAgICAgICAgICAgICAgIG1fcmVuZGVyaW5nTW9kZSA9PSBv
dGhlci5tX3JlbmRlcmluZ01vZGUgJiYgbV9pc1ZlcnRpY2FsTGF5b3V0ID09IG90aGVyLm1faXNW
ZXJ0aWNhbExheW91dDsKICAgICB9CiAKICAgICB1bnNpZ25lZCBtX3NpemU7CkBAIC04MSw2ICs4
Miw3IEBAIHN0cnVjdCBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkgOiBGYXN0QWwKICAgICBib29s
IG1faXRhbGljOwogICAgIGJvb2wgbV9wcmludGVyRm9udDsKICAgICBGb250UmVuZGVyaW5nTW9k
ZSBtX3JlbmRlcmluZ01vZGU7CisgICAgYm9vbCBtX2lzVmVydGljYWxMYXlvdXQ7CiAKIHByaXZh
dGU6CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2hUYWJsZURlbGV0ZWRTaXplKCkgeyByZXR1cm4g
MHhGRkZGRkZGRlU7IH0KQEAgLTkyLDcgKzk0LDcgQEAgaW5saW5lIHVuc2lnbmVkIGNvbXB1dGVI
YXNoKGNvbnN0IEZvbnRQbAogICAgICAgICBDYXNlRm9sZGluZ0hhc2g6Omhhc2goZm9udEtleS5t
X2ZhbWlseSksCiAgICAgICAgIGZvbnRLZXkubV9zaXplLAogICAgICAgICBmb250S2V5Lm1fd2Vp
Z2h0LAotICAgICAgICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5tX2l0YWxpYykgPDwg
MiB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5Lm1fcHJpbnRlckZvbnQpIDw8IDEgfCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5tX3JlbmRlcmluZ01vZGUpCisgICAgICAgIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5Lm1faXNWZXJ0aWNhbExheW91dCkgPDwgMyB8IHN0
YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5Lm1faXRhbGljKSA8PCAyIHwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KGZvbnRLZXkubV9wcmludGVyRm9udCkgPDwgMSB8IHN0YXRpY19jYXN0PHVuc2ln
bmVkPihmb250S2V5Lm1fcmVuZGVyaW5nTW9kZSkKICAgICB9OwogICAgIHJldHVybiBTdHJpbmdJ
bXBsOjpjb21wdXRlSGFzaChyZWludGVycHJldF9jYXN0PFVDaGFyKj4oaGFzaENvZGVzKSwgc2l6
ZW9mKGhhc2hDb2RlcykgLyBzaXplb2YoVUNoYXIpKTsKIH0KQEAgLTE5MSw3ICsxOTMsNyBAQCBG
b250UGxhdGZvcm1EYXRhKiBGb250Q2FjaGU6OmdldENhY2hlZEZvCiAgICAgfQogCiAgICAgRm9u
dFBsYXRmb3JtRGF0YUNhY2hlS2V5IGtleShmYW1pbHlOYW1lLCBmb250RGVzY3JpcHRpb24uY29t
cHV0ZWRQaXhlbFNpemUoKSwgZm9udERlc2NyaXB0aW9uLndlaWdodCgpLCBmb250RGVzY3JpcHRp
b24uaXRhbGljKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RGVzY3Jp
cHRpb24udXNlUHJpbnRlckZvbnQoKSwgZm9udERlc2NyaXB0aW9uLnJlbmRlcmluZ01vZGUoKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24udXNlUHJp
bnRlckZvbnQoKSwgZm9udERlc2NyaXB0aW9uLnJlbmRlcmluZ01vZGUoKSwgZm9udERlc2NyaXB0
aW9uLmlzVmVydGljYWxMYXlvdXQoKSk7CiAgICAgRm9udFBsYXRmb3JtRGF0YSogcmVzdWx0ID0g
MDsKICAgICBib29sIGZvdW5kUmVzdWx0OwogICAgIEZvbnRQbGF0Zm9ybURhdGFDYWNoZTo6aXRl
cmF0b3IgaXQgPSBnRm9udFBsYXRmb3JtRGF0YUNhY2hlLT5maW5kKGtleSk7CkBAIC0yMzYsNyAr
MjM4LDcgQEAgc3RydWN0IEZvbnREYXRhQ2FjaGVLZXlUcmFpdHMgOiBXVEY6OkdlbgogICAgIHN0
YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogICAgIHN0YXRpYyBjb25z
dCBGb250UGxhdGZvcm1EYXRhJiBlbXB0eVZhbHVlKCkKICAgICB7Ci0gICAgICAgIERFRklORV9T
VEFUSUNfTE9DQUwoRm9udFBsYXRmb3JtRGF0YSwga2V5LCAoMC5mLCBmYWxzZSwgZmFsc2UpKTsK
KyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChGb250UGxhdGZvcm1EYXRhLCBrZXksICgwLmYs
IGZhbHNlLCBmYWxzZSwgZmFsc2UpKTsKICAgICAgICAgcmV0dXJuIGtleTsKICAgICB9CiAgICAg
c3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKEZvbnRQbGF0Zm9ybURhdGEmIHNsb3Qp
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgJKHJl
dmlzaW9uIDY4ODc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRp
b24uaAkod29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgICAgICwg
bV9mb250U21vb3RoaW5nKEF1dG9TbW9vdGhpbmcpCiAgICAgICAgICwgbV90ZXh0UmVuZGVyaW5n
KEF1dG9UZXh0UmVuZGVyaW5nKQogICAgICAgICAsIG1faXNTcGVjaWZpZWRGb250KGZhbHNlKQor
ICAgICAgICAsIG1faXNWZXJ0aWNhbExheW91dChmYWxzZSkKICAgICB7CiAgICAgfQogCkBAIC05
NCw2ICs5NSw3IEBAIHB1YmxpYzoKIAogICAgIEZvbnRUcmFpdHNNYXNrIHRyYWl0c01hc2soKSBj
b25zdDsKICAgICBib29sIGlzU3BlY2lmaWVkRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTcGVj
aWZpZWRGb250OyB9CisgICAgYm9vbCBpc1ZlcnRpY2FsTGF5b3V0KCkgY29uc3QgeyByZXR1cm4g
bV9pc1ZlcnRpY2FsTGF5b3V0OyB9CiAKICAgICB2b2lkIHNldEZhbWlseShjb25zdCBGb250RmFt
aWx5JiBmYW1pbHkpIHsgbV9mYW1pbHlMaXN0ID0gZmFtaWx5OyB9CiAgICAgdm9pZCBzZXRDb21w
dXRlZFNpemUoZmxvYXQgcykgeyBtX2NvbXB1dGVkU2l6ZSA9IHM7IH0KQEAgLTExMyw2ICsxMTUs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGb250U21vb3RoaW5nKEZvbnRTbW9vdGhpbmdNb2Rl
IHNtb290aGluZykgeyBtX2ZvbnRTbW9vdGhpbmcgPSBzbW9vdGhpbmc7IH0KICAgICB2b2lkIHNl
dFRleHRSZW5kZXJpbmdNb2RlKFRleHRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZykgeyBtX3RleHRS
ZW5kZXJpbmcgPSByZW5kZXJpbmc7IH0KICAgICB2b2lkIHNldElzU3BlY2lmaWVkRm9udChib29s
IGlzU3BlY2lmaWVkRm9udCkgeyBtX2lzU3BlY2lmaWVkRm9udCA9IGlzU3BlY2lmaWVkRm9udDsg
fQorICAgIHZvaWQgc2V0SXNWZXJ0aWNhbExheW91dChib29sIGlzVmVydGljYWxMYXlvdXQpIHsg
bV9pc1ZlcnRpY2FsTGF5b3V0ID0gaXNWZXJ0aWNhbExheW91dDsgfQogCiBwcml2YXRlOgogICAg
IEZvbnRGYW1pbHkgbV9mYW1pbHlMaXN0OyAvLyBUaGUgbGlzdCBvZiBmb250IGZhbWlsaWVzIHRv
IGJlIHVzZWQuCkBAIC0xMzgsNiArMTQxLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2Zv
bnRTbW9vdGhpbmcgOiAyOyAvLyBGb250U21vb3RoaW5nTW9kZQogICAgIHVuc2lnbmVkIG1fdGV4
dFJlbmRlcmluZyA6IDI7IC8vIFRleHRSZW5kZXJpbmdNb2RlCiAgICAgYm9vbCBtX2lzU3BlY2lm
aWVkRm9udCA6IDE7IC8vIFRydWUgaWYgYSB3ZWIgcGFnZSBzcGVjaWZpZXMgYSBub24tZ2VuZXJp
YyBmb250IGZhbWlseSBhcyB0aGUgZmlyc3QgZm9udCBmYW1pbHkuCisgICAgYm9vbCBtX2lzVmVy
dGljYWxMYXlvdXQgOiAxOyAvLyBUcnVlIGlmIHRoZSB0ZXh0IGlzIGdvaW5nIHRvIGJlIGxhaWQg
b3V0IHZlcnRpY2FsbHkuCiB9OwogCiBpbmxpbmUgYm9vbCBGb250RGVzY3JpcHRpb246Om9wZXJh
dG9yPT0oY29uc3QgRm9udERlc2NyaXB0aW9uJiBvdGhlcikgY29uc3QKQEAgLTE1NSw3ICsxNTks
OCBAQCBpbmxpbmUgYm9vbCBGb250RGVzY3JpcHRpb246Om9wZXJhdG9yPT0oCiAgICAgICAgICYm
IG1fa2V5d29yZFNpemUgPT0gb3RoZXIubV9rZXl3b3JkU2l6ZQogICAgICAgICAmJiBtX2ZvbnRT
bW9vdGhpbmcgPT0gb3RoZXIubV9mb250U21vb3RoaW5nCiAgICAgICAgICYmIG1fdGV4dFJlbmRl
cmluZyA9PSBvdGhlci5tX3RleHRSZW5kZXJpbmcKLSAgICAgICAgJiYgbV9pc1NwZWNpZmllZEZv
bnQgPT0gb3RoZXIubV9pc1NwZWNpZmllZEZvbnQ7CisgICAgICAgICYmIG1faXNTcGVjaWZpZWRG
b250ID09IG90aGVyLm1faXNTcGVjaWZpZWRGb250CisgICAgICAgICYmIG1faXNWZXJ0aWNhbExh
eW91dCA9PSBvdGhlci5tX2lzVmVydGljYWxMYXlvdXQ7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuY3BwCShyZXZpc2lvbiA2ODg3NykK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02NCw3ICs2NCw3IEBAIFNpbXBsZUZvbnREYXRhOjpTaW1wbGVGb250RGF0YShj
b25zdCBGb24KIAogI2lmIEVOQUJMRShTVkdfRk9OVFMpCiBTaW1wbGVGb250RGF0YTo6U2ltcGxl
Rm9udERhdGEoUGFzc093blB0cjxTVkdGb250RGF0YT4gc3ZnRm9udERhdGEsIGludCBzaXplLCBi
b29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljKQotICAgIDogbV9wbGF0Zm9y
bURhdGEoRm9udFBsYXRmb3JtRGF0YShzaXplLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFs
aWMpKQorICAgIDogbV9wbGF0Zm9ybURhdGEoRm9udFBsYXRmb3JtRGF0YShzaXplLCBzeW50aGV0
aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZhbHNlKSkKICAgICAsIG1fdHJlYXRBc0ZpeGVkUGl0
Y2goZmFsc2UpCiAgICAgLCBtX3N2Z0ZvbnREYXRhKHN2Z0ZvbnREYXRhKQogICAgICwgbV9pc0N1
c3RvbUZvbnQodHJ1ZSkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHlwZXNldHRp
bmdGZWF0dXJlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHlw
ZXNldHRpbmdGZWF0dXJlcy5oCShyZXZpc2lvbiA2ODg3NykKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvVHlwZXNldHRpbmdGZWF0dXJlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICsz
MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBlbnVtIFR5cGVzZXR0aW5nRmVhdHVyZSB7
CiAgICAgICAgIEtlcm5pbmcgPSAxIDw8IDAsCiAgICAgICAgIExpZ2F0dXJlcyA9IDEgPDwgMSwK
KyAgICAgICAgVmVydGljYWxMYXlvdXQgPSAxIDw8IDIsCiAgICAgfTsKIAogICAgIHR5cGVkZWYg
dW5zaWduZWQgVHlwZXNldHRpbmdGZWF0dXJlczsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2ODg3NykK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC01OCw5ICs1OCwxMCBAQCBpbmxpbmUgQ1RGb250UmVmIHRvQ1RGb250
UmVmKE5TRm9udCAqbnNGCiAKIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICBwdWJsaWM6Ci0g
ICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wg
c3ludGhldGljT2JsaXF1ZSkKKyAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wg
c3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBib29sIGlzVmVydGljYWxMYXlv
dXQpCiAgICAgICAgIDogbV9zeW50aGV0aWNCb2xkKHN5bnRoZXRpY0JvbGQpCiAgICAgICAgICwg
bV9zeW50aGV0aWNPYmxpcXVlKHN5bnRoZXRpY09ibGlxdWUpCisgICAgICAgICwgbV9pc1ZlcnRp
Y2FsTGF5b3V0KGlzVmVydGljYWxMYXlvdXQpCiAgICAgICAgICwgbV9hdHN1Rm9udElEKDApCiAg
ICAgICAgICwgbV9zaXplKHNpemUpCiAgICAgICAgICwgbV9mb250KDApCkBAIC03MSwxMSArNzIs
MTIgQEAgY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiAgICAgewogICAgIH0KIAotICAgIEZvbnRQ
bGF0Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3ludGhldGljQm9sZCA9IGZhbHNlLCBi
b29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YShOU0Zv
bnQgKm5zRm9udCwgYm9vbCBzeW50aGV0aWNCb2xkID0gZmFsc2UsIGJvb2wgc3ludGhldGljT2Js
aXF1ZSA9IGZhbHNlLCBib29sIGlzVmVydGljYWxMYXlvdXQgPSBmYWxzZSk7CiAgICAgCi0gICAg
Rm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dGb250LCBBVFNVRm9udElEIGZvbnRJRCwgZmxv
YXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUpCisgICAg
Rm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dGb250LCBBVFNVRm9udElEIGZvbnRJRCwgZmxv
YXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIGJvb2wg
aXNWZXJ0aWNhbExheW91dCkKICAgICAgICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9s
ZCkKICAgICAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGljT2JsaXF1ZSkKKyAgICAg
ICAgLCBtX2lzVmVydGljYWxMYXlvdXQoaXNWZXJ0aWNhbExheW91dCkKICAgICAgICAgLCBtX2F0
c3VGb250SUQoZm9udElEKQogICAgICAgICAsIG1fc2l6ZShzaXplKQogICAgICAgICAsIG1fZm9u
dCgwKQpAQCAtOTQsOSArOTYsMTEgQEAgY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiAgICAgZmxv
YXQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQogICAgIGJvb2wgc3ludGhldGljQm9s
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fc3ludGhldGljQm9sZDsgfQogICAgIGJvb2wgc3ludGhldGlj
T2JsaXF1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3ludGhldGljT2JsaXF1ZTsgfQorICAgIGJvb2wg
aXNWZXJ0aWNhbExheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1faXNWZXJ0aWNhbExheW91dDsgfQog
CiAgICAgYm9vbCBtX3N5bnRoZXRpY0JvbGQ7CiAgICAgYm9vbCBtX3N5bnRoZXRpY09ibGlxdWU7
CisgICAgYm9vbCBtX2lzVmVydGljYWxMYXlvdXQ7CiAKICAgICBBVFNVRm9udElEIG1fYXRzdUZv
bnRJRDsKICAgICBmbG9hdCBtX3NpemU7CkBAIC0xMDQsNyArMTA4LDcgQEAgY2xhc3MgRm9udFBs
YXRmb3JtRGF0YSB7CiAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0CiAgICAgewogICAgICAgICBB
U1NFUlQobV9mb250ICE9IDAgfHwgbV9jZ0ZvbnQgPT0gMCk7Ci0gICAgICAgIHVpbnRwdHJfdCBo
YXNoQ29kZXNbMl0gPSB7ICh1aW50cHRyX3QpbV9mb250LCBtX3N5bnRoZXRpY0JvbGQgPDwgMSB8
IG1fc3ludGhldGljT2JsaXF1ZSB9OworICAgICAgICB1aW50cHRyX3QgaGFzaENvZGVzWzJdID0g
eyAodWludHB0cl90KW1fZm9udCwgbV9pc1ZlcnRpY2FsTGF5b3V0IDw8IDIgfCBtX3N5bnRoZXRp
Y0JvbGQgPDwgMSB8IG1fc3ludGhldGljT2JsaXF1ZSB9OwogICAgICAgICByZXR1cm4gU3RyaW5n
SW1wbDo6Y29tcHV0ZUhhc2gocmVpbnRlcnByZXRfY2FzdDxVQ2hhcio+KGhhc2hDb2RlcyksIHNp
emVvZihoYXNoQ29kZXMpIC8gc2l6ZW9mKFVDaGFyKSk7CiAgICAgfQogCkBAIC0xMTMsNyArMTE3
LDcgQEAgY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IEZvbnRQbGF0Zm9ybURhdGEmIG90aGVyKSBjb25zdAogICAgIHsgCiAgICAgICAgIHJldHVybiBt
X2ZvbnQgPT0gb3RoZXIubV9mb250ICYmIG1fc3ludGhldGljQm9sZCA9PSBvdGhlci5tX3N5bnRo
ZXRpY0JvbGQgJiYgbV9zeW50aGV0aWNPYmxpcXVlID09IG90aGVyLm1fc3ludGhldGljT2JsaXF1
ZSAmJiAKLSAgICAgICAgICAgICAgIG1fY2dGb250ID09IG90aGVyLm1fY2dGb250ICYmIG1fc2l6
ZSA9PSBvdGhlci5tX3NpemUgJiYgbV9hdHN1Rm9udElEID09IG90aGVyLm1fYXRzdUZvbnRJRDsK
KyAgICAgICAgICAgICAgIG1fY2dGb250ID09IG90aGVyLm1fY2dGb250ICYmIG1fc2l6ZSA9PSBv
dGhlci5tX3NpemUgJiYgbV9hdHN1Rm9udElEID09IG90aGVyLm1fYXRzdUZvbnRJRCAmJiBtX2lz
VmVydGljYWxMYXlvdXQgPT0gb3RoZXIubV9pc1ZlcnRpY2FsTGF5b3V0OwogICAgIH0KIAogICAg
IE5TRm9udCAqZm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udDsgfQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29j
b2EubW0JKHJldmlzaW9uIDY4ODc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ0LDkgKzQ0LDEw
IEBAIHZvaWQgRm9udFBsYXRmb3JtRGF0YTo6bG9hZEZvbnQoTlNGb250KiAKIH0KICNlbmRpZiAg
Ly8gUExBVEZPUk0oTUFDKQogCi1Gb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKE5T
Rm9udCAqbnNGb250LCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSkK
K0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wg
c3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBib29sIGlzVmVydGljYWxMYXlv
dXQpCiAgICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkKICAgICAsIG1fc3ludGhl
dGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQorICAgICwgbV9pc1ZlcnRpY2FsTGF5b3V0KGlz
VmVydGljYWxMYXlvdXQpCiAgICAgLCBtX2ZvbnQobnNGb250KQogI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgLy8gRklYTUU6IENocm9taXVtOiBUaGUg
Zm9sbG93aW5nIGNvZGUgaXNuJ3QgY29ycmVjdCBmb3IgdGhlIENocm9taXVtIHBvcnQgc2luY2Ug
dGhlIHNhbmRib3ggbWlnaHQKQEAgLTgzLDYgKzg0LDcgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9u
dFBsYXRmb3JtRGF0YShjb25zdAogICAgIG1fY2dGb250ID0gZi5tX2NnRm9udDsKICAgICBtX2F0
c3VGb250SUQgPSBmLm1fYXRzdUZvbnRJRDsKICAgICBtX2lzQ29sb3JCaXRtYXBGb250ID0gZi5t
X2lzQ29sb3JCaXRtYXBGb250OworICAgIG1faXNWZXJ0aWNhbExheW91dCA9IGYubV9pc1ZlcnRp
Y2FsTGF5b3V0OwogI2lmIFVTRShDT1JFX1RFWFQpCiAgICAgbV9DVEZvbnQgPSBmLm1fQ1RGb250
OwogI2VuZGlmCkBAIC0xMTIsNiArMTE0LDcgQEAgY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgRm9u
dFBsYXRmb3JtRGF0YQogICAgICAgICBDRlJlbGVhc2UobV9mb250KTsKICAgICBtX2ZvbnQgPSBm
Lm1fZm9udDsKICAgICBtX2lzQ29sb3JCaXRtYXBGb250ID0gZi5tX2lzQ29sb3JCaXRtYXBGb250
OworICAgIG1faXNWZXJ0aWNhbExheW91dCA9IGYubV9pc1ZlcnRpY2FsTGF5b3V0OwogI2lmIFVT
RShDT1JFX1RFWFQpCiAgICAgbV9DVEZvbnQgPSBmLm1fQ1RGb250OwogI2VuZGlmCkBAIC0xODcs
NyArMTkwLDggQEAgQ1RGb250UmVmIEZvbnRQbGF0Zm9ybURhdGE6OmN0Rm9udCgpIGNvbgogU3Ry
aW5nIEZvbnRQbGF0Zm9ybURhdGE6OmRlc2NyaXB0aW9uKCkgY29uc3QKIHsKICAgICBSZXRhaW5Q
dHI8Q0ZTdHJpbmdSZWY+IGNnRm9udERlc2NyaXB0aW9uKEFkb3B0Q0YsIENGQ29weURlc2NyaXB0
aW9uKGNnRm9udCgpKSk7Ci0gICAgcmV0dXJuIFN0cmluZyhjZ0ZvbnREZXNjcmlwdGlvbi5nZXQo
KSkgKyAiICIgKyBTdHJpbmc6Om51bWJlcihtX3NpemUpICsgKG1fc3ludGhldGljQm9sZCA/ICIg
c3ludGhldGljIGJvbGQiIDogIiIpICsgKG1fc3ludGhldGljT2JsaXF1ZSA/ICIgc3ludGhldGlj
IG9ibGlxdWUiIDogIiIpOworICAgIHJldHVybiBTdHJpbmcoY2dGb250RGVzY3JpcHRpb24uZ2V0
KCkpICsgIiAiICsgU3RyaW5nOjpudW1iZXIobV9zaXplKQorICAgICAgICAgICAgKyAobV9zeW50
aGV0aWNCb2xkID8gIiBzeW50aGV0aWMgYm9sZCIgOiAiIikgKyAobV9zeW50aGV0aWNPYmxpcXVl
ID8gIiBzeW50aGV0aWMgb2JsaXF1ZSIgOiAiIikgKyAobV9pc1ZlcnRpY2FsTGF5b3V0ID8gIiB2
ZXJ0aWNhbCBsYXlvdXQiIDogIiIpOwogfQogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0JKHJldmlzaW9uIDY4ODc3KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0xNDIsNyArMTQyLDggQEAgY29uc3QgU2ltcGxlRm9udERhdGEqIEZvbnRDYWNoZTo6
Z2V0Rm9udAogCiAgICAgRm9udFBsYXRmb3JtRGF0YSBhbHRlcm5hdGVGb250KHN1YnN0aXR1dGVG
b250LCAKICAgICAgICAgIWZvbnQuaXNQbGF0Zm9ybUZvbnQoKSAmJiBpc0FwcEtpdEZvbnRXZWln
aHRCb2xkKHdlaWdodCkgJiYgIWlzQXBwS2l0Rm9udFdlaWdodEJvbGQoc3Vic3RpdHV0ZUZvbnRX
ZWlnaHQpLAotICAgICAgICAhZm9udC5pc1BsYXRmb3JtRm9udCgpICYmICh0cmFpdHMgJiBOU0Zv
bnRJdGFsaWNUcmFpdCkgJiYgIShzdWJzdGl0dXRlRm9udFRyYWl0cyAmIE5TRm9udEl0YWxpY1Ry
YWl0KSk7CisgICAgICAgICFmb250LmlzUGxhdGZvcm1Gb250KCkgJiYgKHRyYWl0cyAmIE5TRm9u
dEl0YWxpY1RyYWl0KSAmJiAhKHN1YnN0aXR1dGVGb250VHJhaXRzICYgTlNGb250SXRhbGljVHJh
aXQpLAorICAgICAgICBwbGF0Zm9ybURhdGEubV9pc1ZlcnRpY2FsTGF5b3V0KTsKICAgICByZXR1
cm4gZ2V0Q2FjaGVkRm9udERhdGEoJmFsdGVybmF0ZUZvbnQpOwogfQogCkBAIC0yMTAsNyArMjEx
LDcgQEAgRm9udFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpjcmVhdGVGb250UAogICAgIGJvb2wg
c3ludGhldGljQm9sZCA9IGlzQXBwS2l0Rm9udFdlaWdodEJvbGQod2VpZ2h0KSAmJiAhaXNBcHBL
aXRGb250V2VpZ2h0Qm9sZChhY3R1YWxXZWlnaHQpOwogICAgIGJvb2wgc3ludGhldGljT2JsaXF1
ZSA9ICh0cmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkgJiYgIShhY3R1YWxUcmFpdHMgJiBOU0Zv
bnRJdGFsaWNUcmFpdCk7CiAKLSAgICByZXR1cm4gbmV3IEZvbnRQbGF0Zm9ybURhdGEocGxhdGZv
cm1Gb250LCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlKTsKKyAgICByZXR1cm4gbmV3
IEZvbnRQbGF0Zm9ybURhdGEocGxhdGZvcm1Gb250LCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNP
YmxpcXVlLCBmb250RGVzY3JpcHRpb24uaXNWZXJ0aWNhbExheW91dCgpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY4ODc3KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDEyICszOCwxMiBAQCBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhOjp+Rm9udEN1c3RvbVBsYXRmCiAgICAgQ0dGb250UmVsZWFzZShtX2NnRm9udCk7CiB9CiAK
LUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0
YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUpCitG
b250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEo
aW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGJvb2wgaXNWZXJ0aWNhbExheW91dCwg
Rm9udFJlbmRlcmluZ01vZGUpCiB7Ci0gICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9jZ0Zv
bnQsIChBVFNVRm9udElEKW1fYXRzRm9udCwgc2l6ZSwgYm9sZCwgaXRhbGljKTsKKyAgICByZXR1
cm4gRm9udFBsYXRmb3JtRGF0YShtX2NnRm9udCwgKEFUU1VGb250SUQpbV9hdHNGb250LCBzaXpl
LCBib2xkLCBpdGFsaWMsIGlzVmVydGljYWxMYXlvdXQpOwogfQogCi1Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhKiBjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciogYnVmZmVy
KQorRm9udEN1c3RvbVBsYXRmb3JtRGF0YSogY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShT
aGFyZWRCdWZmZXIqIGJ1ZmZlciwgYm9vbCBpc1ZlcnRpY2FsTGF5b3V0KQogewogICAgIEFTU0VS
VF9BUkcoYnVmZmVyLCBidWZmZXIpOwogCkBAIC0xMTEsNyArMTExLDcgQEAgRm9udEN1c3RvbVBs
YXRmb3JtRGF0YSogY3JlYXRlRm9udEN1c3RvbQogICAgIH0KICNlbmRpZiAvLyAhZGVmaW5lZChC
VUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKIAotICAg
IHJldHVybiBuZXcgRm9udEN1c3RvbVBsYXRmb3JtRGF0YShjb250YWluZXJSZWYsIGZvbnRSZWYs
IGNnRm9udFJlZi5yZWxlYXNlUmVmKCkpOworICAgIHJldHVybiBuZXcgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YShjb250YWluZXJSZWYsIGZvbnRSZWYsIGNnRm9udFJlZi5yZWxlYXNlUmVmKCksIGlz
VmVydGljYWxMYXlvdXQpOwogfQogCiBib29sIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OnN1cHBv
cnRzRm9ybWF0KGNvbnN0IFN0cmluZyYgZm9ybWF0KQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2aXNp
b24gNjg4NzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDIxICszNiwyMiBAQCBjbGFzcyBGb250
UGxhdGZvcm1EYXRhOwogY2xhc3MgU2hhcmVkQnVmZmVyOwogCiBzdHJ1Y3QgRm9udEN1c3RvbVBs
YXRmb3JtRGF0YSA6IE5vbmNvcHlhYmxlIHsKLSAgICBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKEFU
U0ZvbnRDb250YWluZXJSZWYgY29udGFpbmVyLCBBVFNGb250UmVmIGF0c0ZvbnQsIENHRm9udFJl
ZiBjZ0ZvbnQpCi0gICAgOiBtX2F0c0NvbnRhaW5lcihjb250YWluZXIpLCBtX2F0c0ZvbnQoYXRz
Rm9udCksIG1fY2dGb250KGNnRm9udCkKKyAgICBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKEFUU0Zv
bnRDb250YWluZXJSZWYgY29udGFpbmVyLCBBVFNGb250UmVmIGF0c0ZvbnQsIENHRm9udFJlZiBj
Z0ZvbnQsIGJvb2wgaXNWZXJ0aWNhbExheW91dCkKKyAgICA6IG1fYXRzQ29udGFpbmVyKGNvbnRh
aW5lciksIG1fYXRzRm9udChhdHNGb250KSwgbV9jZ0ZvbnQoY2dGb250KSwgbV9pc1ZlcnRpY2Fs
TGF5b3V0KGlzVmVydGljYWxMYXlvdXQpCiAgICAge30KICAgICB+Rm9udEN1c3RvbVBsYXRmb3Jt
RGF0YSgpOwogCi0gICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXpl
LCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRl
cmluZ01vZGUpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6
ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgYm9vbCBpc1ZlcnRpY2FsTGF5b3V0LCBGb250UmVu
ZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOwogCiAgICAgc3RhdGljIGJvb2wgc3Vw
cG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAKICAgICBBVFNGb250Q29udGFpbmVyUmVmIG1f
YXRzQ29udGFpbmVyOwogICAgIEFUU0ZvbnRSZWYgbV9hdHNGb250OwogICAgIENHRm9udFJlZiBt
X2NnRm9udDsKKyAgICBib29sIG1faXNWZXJ0aWNhbExheW91dDsKIH07CiAKLUZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEqIGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKiBi
dWZmZXIpOworRm9udEN1c3RvbVBsYXRmb3JtRGF0YSogY3JlYXRlRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YShTaGFyZWRCdWZmZXIqIGJ1ZmZlciwgYm9vbCBpc1ZlcnRpY2FsTGF5b3V0KTsKIAogfQog
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUNvcmVU
ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1w
bGVGb250RGF0YUNvcmVUZXh0LmNwcAkocmV2aXNpb24gNjg4NzcpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjAsMTYgKzYwLDI1IEBAIENGRGljdGlvbmFyeVJlZiBTaW1wbGVGb250RGF0YTo6Z2V0
Q0ZTdHIKICAgICBpZiAoISh0eXBlc2V0dGluZ0ZlYXR1cmVzICYgS2VybmluZykpIHsKICAgICAg
ICAgc3RhdGljIGNvbnN0IGZsb2F0IGtlcm5pbmdBZGp1c3RtZW50VmFsdWUgPSAwOwogICAgICAg
ICBzdGF0aWMgQ0ZOdW1iZXJSZWYga2VybmluZ0FkanVzdG1lbnQgPSBDRk51bWJlckNyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJGbG9hdFR5cGUsICZrZXJuaW5nQWRqdXN0bWVu
dFZhbHVlKTsKLSAgICAgICAgc3RhdGljIGNvbnN0IHZvaWQqIGtleXNXaXRoS2VybmluZ0Rpc2Fi
bGVkW10gPSB7IGtDVEZvbnRBdHRyaWJ1dGVOYW1lLCBrQ1RLZXJuQXR0cmlidXRlTmFtZSwga0NU
TGlnYXR1cmVBdHRyaWJ1dGVOYW1lIH07Ci0gICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlc1dpdGhL
ZXJuaW5nRGlzYWJsZWRbXSA9IHsgcGxhdGZvcm1EYXRhKCkuY3RGb250KCksIGtlcm5pbmdBZGp1
c3RtZW50LCBhbGxvd0xpZ2F0dXJlcwotICAgICAgICAgICAgPyBsaWdhdHVyZXNBbGxvd2VkIDog
bGlnYXR1cmVzTm90QWxsb3dlZCB9OworICAgICAgICBzdGF0aWMgY29uc3Qgdm9pZCoga2V5c1dp
dGhLZXJuaW5nRGlzYWJsZWRbXSA9IHsgICAga0NURm9udEF0dHJpYnV0ZU5hbWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQ1RL
ZXJuQXR0cmlidXRlTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGtDVExpZ2F0dXJlQXR0cmlidXRlTmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtDVFZl
cnRpY2FsRm9ybXNBdHRyaWJ1dGVOYW1lIH07CisgICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlc1dp
dGhLZXJuaW5nRGlzYWJsZWRbXSA9IHsgICAgICAgICBwbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGtlcm5pbmdBZGp1c3RtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dMaWdhdHVyZXMgPyBsaWdhdHVyZXNBbGxv
d2VkIDogbGlnYXR1cmVzTm90QWxsb3dlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0eXBlc2V0dGluZ0ZlYXR1cmVzICYgVmVy
dGljYWxMYXlvdXQpID8ga0NGQm9vbGVhblRydWUgOiBrQ0ZCb29sZWFuRmFsc2UgfTsKICAgICAg
ICAgYXR0cmlidXRlc0RpY3Rpb25hcnkuYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoMCwga2V5
c1dpdGhLZXJuaW5nRGlzYWJsZWQsIHZhbHVlc1dpdGhLZXJuaW5nRGlzYWJsZWQsCiAgICAgICAg
ICAgICBzaXplb2Yoa2V5c1dpdGhLZXJuaW5nRGlzYWJsZWQpIC8gc2l6ZW9mKCprZXlzV2l0aEtl
cm5pbmdEaXNhYmxlZCksCiAgICAgICAgICAgICAma0NGQ29weVN0cmluZ0RpY3Rpb25hcnlLZXlD
YWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CiAgICAgfSBlbHNl
IHsKICAgICAgICAgLy8gQnkgb21pdHRpbmcgdGhlIGtDVEtlcm5BdHRyaWJ1dGVOYW1lIGF0dHJp
YnV0ZSwgd2UgZ2V0IENvcmUgVGV4dCdzIHN0YW5kYXJkIGtlcm5pbmcuCi0gICAgICAgIHN0YXRp
YyBjb25zdCB2b2lkKiBrZXlzV2l0aEtlcm5pbmdFbmFibGVkW10gPSB7IGtDVEZvbnRBdHRyaWJ1
dGVOYW1lLCBrQ1RMaWdhdHVyZUF0dHJpYnV0ZU5hbWUgfTsKLSAgICAgICAgY29uc3Qgdm9pZCog
dmFsdWVzV2l0aEtlcm5pbmdFbmFibGVkW10gPSB7IHBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLCBh
bGxvd0xpZ2F0dXJlcyA/IGxpZ2F0dXJlc0FsbG93ZWQgOiBsaWdhdHVyZXNOb3RBbGxvd2VkIH07
CisgICAgICAgIHN0YXRpYyBjb25zdCB2b2lkKiBrZXlzV2l0aEtlcm5pbmdFbmFibGVkW10gPSB7
ICAgICBrQ1RGb250QXR0cmlidXRlTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtDVExpZ2F0dXJlQXR0cmlidXRlTmFtZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGtDVFZlcnRpY2FsRm9ybXNBdHRyaWJ1dGVOYW1lIH07CisgICAgICAgIGNvbnN0IHZvaWQq
IHZhbHVlc1dpdGhLZXJuaW5nRW5hYmxlZFtdID0geyAgICAgICAgICBwbGF0Zm9ybURhdGEoKS5j
dEZvbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFsbG93TGlnYXR1cmVzID8gbGlnYXR1cmVzQWxsb3dlZCA6IGxpZ2F0dXJl
c05vdEFsbG93ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAodHlwZXNldHRpbmdGZWF0dXJlcyAmIFZlcnRpY2FsTGF5b3V0KSA/
IGtDRkJvb2xlYW5UcnVlIDoga0NGQm9vbGVhbkZhbHNlIH07CiAgICAgICAgIGF0dHJpYnV0ZXNE
aWN0aW9uYXJ5LmFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKDAsIGtleXNXaXRoS2VybmluZ0Vu
YWJsZWQsIHZhbHVlc1dpdGhLZXJuaW5nRW5hYmxlZCwKICAgICAgICAgICAgIHNpemVvZihrZXlz
V2l0aEtlcm5pbmdFbmFibGVkKSAvIHNpemVvZigqa2V5c1dpdGhLZXJuaW5nRW5hYmxlZCksCiAg
ICAgICAgICAgICAma0NGQ29weVN0cmluZ0RpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBl
RGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuY3BwCShyZXZpc2lvbiA2ODg3NykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjk0LDYgKzY5NCwxNyBAQCB2
b2lkIFJlbmRlclN0eWxlOjpzZXRCb3hTaGFkb3coU2hhZG93RGF0CiAgICAgcmFyZURhdGEtPm1f
Ym94U2hhZG93LnNldChzaGFkb3dEYXRhKTsKIH0KIAordm9pZCBSZW5kZXJTdHlsZTo6c2V0Qmxv
Y2tGbG93KEVCbG9ja0Zsb3dEaXJlY3Rpb24gdikKK3sKKyAgICBpbmhlcml0ZWRfZmxhZ3MuX2Js
b2NrRmxvdyA9IHY7CisKKyAgICBGb250U2VsZWN0b3IqIGN1cnJlbnRGb250U2VsZWN0b3IgPSBm
b250KCkuZm9udFNlbGVjdG9yKCk7CisgICAgRm9udERlc2NyaXB0aW9uIGRlc2MoZm9udERlc2Ny
aXB0aW9uKCkpOworICAgIGRlc2Muc2V0SXNWZXJ0aWNhbExheW91dCghaXNWZXJ0aWNhbEJsb2Nr
RmxvdygpKTsKKyAgICBzZXRGb250RGVzY3JpcHRpb24oZGVzYyk7CisgICAgZm9udCgpLnVwZGF0
ZShjdXJyZW50Rm9udFNlbGVjdG9yKTsKK30KKwogc3RhdGljIHZvaWQgY29uc3RyYWluQ29ybmVy
UmFkaWlGb3JSZWN0KGNvbnN0IEludFJlY3QmIHIsIEludFNpemUmIHRvcExlZnQsIEludFNpemUm
IHRvcFJpZ2h0LCBJbnRTaXplJiBib3R0b21MZWZ0LCBJbnRTaXplJiBib3R0b21SaWdodCkKIHsK
ICAgICAvLyBDb25zdHJhaW4gY29ybmVyIHJhZGlpIHVzaW5nIENTUzMgcnVsZXM6CkluZGV4OiBX
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHJldmlzaW9uIDY4ODc3KQorKysgV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTEy
NCw3ICsxMTI0LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgb3JpZ2luYWxEaXNwbGF5KCkg
PT0gSU5MSU5FX0JPWCB8fCBvcmlnaW5hbERpc3BsYXkoKSA9PSBJTkxJTkVfVEFCTEU7CiAgICAg
fQogCi0gICAgdm9pZCBzZXRCbG9ja0Zsb3coRUJsb2NrRmxvd0RpcmVjdGlvbiB2KSB7IGluaGVy
aXRlZF9mbGFncy5fYmxvY2tGbG93ID0gdjsgfQorICAgIHZvaWQgc2V0QmxvY2tGbG93KEVCbG9j
a0Zsb3dEaXJlY3Rpb24gdik7CiAKICAgICAvLyBUbyB0ZWxsIGlmIHRoaXMgc3R5bGUgbWF0Y2hl
ZCBhdHRyaWJ1dGUgc2VsZWN0b3JzLiBUaGlzIG1ha2VzIGl0IGltcG9zc2libGUgdG8gc2hhcmUu
CiAgICAgYm9vbCBhZmZlY3RlZEJ5QXR0cmlidXRlU2VsZWN0b3JzKCkgY29uc3QgeyByZXR1cm4g
bV9hZmZlY3RlZEJ5QXR0cmlidXRlU2VsZWN0b3JzOyB9Cg==
</data>
<flag name="review"
          id="59150"
          type_id="1"
          status="-"
          setter="cfleizach"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69600</attachid>
            <date>2010-10-03 22:40:28 -0700</date>
            <delta_ts>2010-10-13 00:58:58 -0700</delta_ts>
            <desc>[build test] fixed a style error and non-Mac platform errors</desc>
            <filename>WK46973Patch_101004.txt</filename>
            <type>text/plain</type>
            <size>51440</size>
            <attacher name="Takumi Takano">takano</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODk5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTEwIEBACisyMDEwLTEwLTAzICB0YWthbm8gdGFrdW1pICA8dGFrYW5vMUBhc2lh
LmFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOZWVkIHRvIHN3YXAgZ2x5cGhzIGZvciB2ZXJ0aWNhbCB3cml0aW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk3MworCisgICAgICAgIE1h
ZGUgY2hhbmdlcyB0byBwYXNzIHRoZSBibG9jay1mbG93IG9yaWVudGF0aW9uIGZsYWcgaW4gUmVu
ZGVyU3R5bGUgZG93bgorICAgICAgICB0byBGb250UGxhdGZvcm1EYXRhIGFuZCBDb21wbGV4VGV4
dENvbnRyb2xsZXIsIGFuZCB1bHRpbWF0ZWx5IHRvIENvcmVUZXh0LgorCisgICAgICAgIERvZXNu
J3QgYWZmZWN0IGFueSB0ZXN0cyB5ZXQuCisKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBj
c3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VT
b3VyY2U6OmdldEZvbnREYXRhKToKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkRm9udC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YSk6
CisgICAgICAgICogbG9hZGVyL0NhY2hlZEZvbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9Gb250Lmg6CisgICAgICAgIChXZWJDb3JlOjpGb250Ojp0eXBlc2V0dGluZ0ZlYXR1cmVz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5OjpGb250UGxhdGZvcm1EYXRhQ2FjaGVL
ZXkpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5OjpvcGVyYXRv
cj09KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVIYXNoKToKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpGb250RGF0YUNhY2hlS2V5VHJhaXRzOjplbXB0eVZhbHVlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNj
cmlwdGlvbjo6Rm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlw
dGlvbjo6aXNWZXJ0aWNhbExheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRp
b246OnNldElzVmVydGljYWxMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0
aW9uOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250
RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6U2ltcGxlRm9udERh
dGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1R5cGVzZXR0aW5nRmVhdHVyZXMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0
Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxh
dGZvcm1EYXRhRnJlZVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
Rm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvRm9udFBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0ZvbnRQbGF0Zm9ybURhdGFDaHJvbWl1bVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhQ2hyb21pdW1XaW4uaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhTGludXguaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6aXNWZXJ0aWNhbExheW91dCk6CisgICAgICAg
IChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRQbGF0Zm9ybURhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQ
bGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBs
YXRmb3JtRGF0YTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURh
dGE6OmRlc2NyaXB0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YVBhbmdvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2d0ay9Gb250UGxhdGZvcm1EYXRhUGFuZ28uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3RrL0ZvbnRQbGF0Zm9ybURhdGFQYW5nby5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udENhY2hlOjpnZXRGb250RGF0YUZvckNoYXJhY3RlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpnZXRDRlN0cmluZ0F0dHJpYnV0ZXMpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRm
b3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0
YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGFRdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRh
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBs
YXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3Jt
RGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFXaW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1E
YXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3Jt
RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1Qcml2YXRlRGF0YTo6Rm9u
dFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3d4L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd3gvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3d4L0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0
QmxvY2tGbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKwog
MjAxMC0xMC0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5leHAuaW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gNjg5OTApCisr
KyBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC0zNjcsNyArMzY3LDcg
QEAgX19aTjdXZWJDb3JlMTZEZXZpY2VNb3Rpb25EYXRhMTJBY2NlbGVyYQogX19aTjdXZWJDb3Jl
MTZEZXZpY2VNb3Rpb25EYXRhMTJSb3RhdGlvblJhdGU2Y3JlYXRlRWJkYmRiZAogX19aTjdXZWJD
b3JlMTZEZXZpY2VNb3Rpb25EYXRhNmNyZWF0ZUVOM1dURjEwUGFzc1JlZlB0cklOUzBfMTJBY2Nl
bGVyYXRpb25FRUVTNF9OUzJfSU5TMF8xMlJvdGF0aW9uUmF0ZUVFRWJkCiBfX1pON1dlYkNvcmUx
NkZvbnRGYWxsYmFja0xpc3QxNXJlbGVhc2VGb250RGF0YUV2Ci1fX1pON1dlYkNvcmUxNkZvbnRQ
bGF0Zm9ybURhdGFDMUVQNk5TRm9udGJiCitfX1pON1dlYkNvcmUxNkZvbnRQbGF0Zm9ybURhdGFD
MUVQNk5TRm9udGJiYgogX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhRDFFdgogX19aTjdX
ZWJDb3JlMTZMZWdhY3lXZWJBcmNoaXZlMTljcmVhdGVGcm9tU2VsZWN0aW9uRVBOU181RnJhbWVF
CiBfX1pON1dlYkNvcmUxNkxlZ2FjeVdlYkFyY2hpdmUyMXJhd0RhdGFSZXByZXNlbnRhdGlvbkV2
CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCShyZXZpc2lvbiA2ODk5MCkKKysrIFdl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYyLDcg
KzE2Miw3IEBAIFNpbXBsZUZvbnREYXRhKiBDU1NGb250RmFjZVNvdXJjZTo6Z2V0Rm8KICAgICAg
ICAgICAgICAgICBpZiAoIW1fZm9udC0+ZW5zdXJlQ3VzdG9tRm9udERhdGEoKSkKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgICAgICAgICBmb250RGF0YS5zZXQobmV3
IFNpbXBsZUZvbnREYXRhKG1fZm9udC0+cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoZm9udERl
c2NyaXB0aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCksIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0
YWxpYywgZm9udERlc2NyaXB0aW9uLnJlbmRlcmluZ01vZGUoKSksIHRydWUsIGZhbHNlKSk7Cisg
ICAgICAgICAgICAgICAgZm9udERhdGEuc2V0KG5ldyBTaW1wbGVGb250RGF0YShtX2ZvbnQtPnBs
YXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6
ZSgpLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZvbnREZXNjcmlwdGlvbi5pc1Zl
cnRpY2FsTGF5b3V0KCksIGZvbnREZXNjcmlwdGlvbi5yZW5kZXJpbmdNb2RlKCkpLCB0cnVlLCBm
YWxzZSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogI2lmIEVOQUJMRShTVkdf
Rk9OVFMpCkluZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmNwcAkocmV2aXNpb24gNjg5OTApCisrKyBXZWJD
b3JlL2xvYWRlci9DYWNoZWRGb250LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDE1ICsxMTcs
MTUgQEAgYm9vbCBDYWNoZWRGb250OjplbnN1cmVDdXN0b21Gb250RGF0YSgpCiAgICAgcmV0dXJu
IG1fZm9udERhdGE7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgQ2FjaGVkRm9udDo6cGxhdGZvcm1E
YXRhRnJvbUN1c3RvbURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9u
dFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgQ2FjaGVkRm9u
dDo6cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29s
IGl0YWxpYywgYm9vbCBpc1ZlcnRpY2FsTGF5b3V0LCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJp
bmdNb2RlKQogewogI2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgaWYgKG1fZXh0ZXJuYWxTVkdE
b2N1bWVudCkKLSAgICAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwgYm9sZCwgaXRh
bGljKTsKKyAgICAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwgYm9sZCwgaXRhbGlj
LCBmYWxzZSk7CiAjZW5kaWYKICNpZmRlZiBTVE9SRV9GT05UX0NVU1RPTV9QTEFURk9STV9EQVRB
CiAgICAgQVNTRVJUKG1fZm9udERhdGEpOwotICAgIHJldHVybiBtX2ZvbnREYXRhLT5mb250UGxh
dGZvcm1EYXRhKHN0YXRpY19jYXN0PGludD4oc2l6ZSksIGJvbGQsIGl0YWxpYywgcmVuZGVyaW5n
TW9kZSk7CisgICAgcmV0dXJuIG1fZm9udERhdGEtPmZvbnRQbGF0Zm9ybURhdGEoc3RhdGljX2Nh
c3Q8aW50PihzaXplKSwgYm9sZCwgaXRhbGljLCBpc1ZlcnRpY2FsTGF5b3V0LCByZW5kZXJpbmdN
b2RlKTsKICNlbHNlCiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoKTsKICNlbmRpZgpJbmRl
eDogV2ViQ29yZS9sb2FkZXIvQ2FjaGVkRm9udC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9h
ZGVyL0NhY2hlZEZvbnQuaAkocmV2aXNpb24gNjg5OTApCisrKyBXZWJDb3JlL2xvYWRlci9DYWNo
ZWRGb250LmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHZv
aWQgYmVnaW5Mb2FkSWZOZWVkZWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGRsKTsKIAogICAgIGJv
b2wgZW5zdXJlQ3VzdG9tRm9udERhdGEoKTsKLSAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3Jt
RGF0YUZyb21DdXN0b21EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZv
bnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3Jt
RGF0YSBwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJv
b2wgaXRhbGljLCBib29sIGlzVmVydGljYWxMYXlvdXQsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9y
bWFsUmVuZGVyaW5nTW9kZSk7CiAKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQogICAgIGJvb2wgaXNT
VkdGb250KCkgY29uc3QgeyByZXR1cm4gbV9pc1NWR0ZvbnQ7IH0KSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udC5oCShyZXZpc2lvbiA2ODk5MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsNyArMTE1LDEwIEBAIHB1YmxpYzoKICAg
ICBUeXBlc2V0dGluZ0ZlYXR1cmVzIHR5cGVzZXR0aW5nRmVhdHVyZXMoKSBjb25zdAogICAgIHsK
ICAgICAgICAgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUgPSBtX2ZvbnREZXNj
cmlwdGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgpOwotICAgICAgICByZXR1cm4gdGV4dFJlbmRlcmlu
Z01vZGUgPT0gT3B0aW1pemVMZWdpYmlsaXR5IHx8IHRleHRSZW5kZXJpbmdNb2RlID09IEdlb21l
dHJpY1ByZWNpc2lvbiA/IEtlcm5pbmcgfCBMaWdhdHVyZXMgOiAwOworICAgICAgICBUeXBlc2V0
dGluZ0ZlYXR1cmVzIGZlYXR1cmVzID0gKHRleHRSZW5kZXJpbmdNb2RlID09IE9wdGltaXplTGVn
aWJpbGl0eSB8fCB0ZXh0UmVuZGVyaW5nTW9kZSA9PSBHZW9tZXRyaWNQcmVjaXNpb24pID8gS2Vy
bmluZyB8IExpZ2F0dXJlcyA6IDA7CisgICAgICAgIGlmIChtX2ZvbnREZXNjcmlwdGlvbi5pc1Zl
cnRpY2FsTGF5b3V0KCkpCisgICAgICAgICAgICBmZWF0dXJlcyB8PSBWZXJ0aWNhbExheW91dDsK
KyAgICAgICAgcmV0dXJuIGZlYXR1cmVzOwogICAgIH0KIAogICAgIEZvbnRGYW1pbHkmIGZpcnN0
RmFtaWx5KCkgeyByZXR1cm4gbV9mb250RGVzY3JpcHRpb24uZmlyc3RGYW1pbHkoKTsgfQpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAkocmV2aXNpb24gNjg5OTAp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTU1LDEzICs1NSwxNCBAQCBGb250Q2FjaGU6OkZvbnRDYWNoZSgpCiAKIHN0cnVjdCBG
b250UGxhdGZvcm1EYXRhQ2FjaGVLZXkgOiBGYXN0QWxsb2NCYXNlIHsKICAgICBGb250UGxhdGZv
cm1EYXRhQ2FjaGVLZXkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHkgPSBBdG9taWNTdHJpbmco
KSwgdW5zaWduZWQgc2l6ZSA9IDAsIHVuc2lnbmVkIHdlaWdodCA9IDAsIGJvb2wgaXRhbGljID0g
ZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNQcmludGVyRm9udCA9
IGZhbHNlLCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5n
TW9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1ByaW50ZXJGb250ID0g
ZmFsc2UsIEZvbnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdN
b2RlLCBib29sIGlzVmVydGljYWxMYXlvdXQgPSBmYWxzZSkKICAgICAgICAgOiBtX3NpemUoc2l6
ZSkKICAgICAgICAgLCBtX3dlaWdodCh3ZWlnaHQpCiAgICAgICAgICwgbV9mYW1pbHkoZmFtaWx5
KQogICAgICAgICAsIG1faXRhbGljKGl0YWxpYykKICAgICAgICAgLCBtX3ByaW50ZXJGb250KGlz
UHJpbnRlckZvbnQpCiAgICAgICAgICwgbV9yZW5kZXJpbmdNb2RlKHJlbmRlcmluZ01vZGUpCisg
ICAgICAgICwgbV9pc1ZlcnRpY2FsTGF5b3V0KGlzVmVydGljYWxMYXlvdXQpCiAgICAgewogICAg
IH0KIApAQCAtNzIsNyArNzMsNyBAQCBzdHJ1Y3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5IDog
RmFzdEFsCiAgICAgewogICAgICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UobV9mYW1pbHks
IG90aGVyLm1fZmFtaWx5KSAmJiBtX3NpemUgPT0gb3RoZXIubV9zaXplICYmIAogICAgICAgICAg
ICAgICAgbV93ZWlnaHQgPT0gb3RoZXIubV93ZWlnaHQgJiYgbV9pdGFsaWMgPT0gb3RoZXIubV9p
dGFsaWMgJiYgbV9wcmludGVyRm9udCA9PSBvdGhlci5tX3ByaW50ZXJGb250ICYmCi0gICAgICAg
ICAgICAgICBtX3JlbmRlcmluZ01vZGUgPT0gb3RoZXIubV9yZW5kZXJpbmdNb2RlOworICAgICAg
ICAgICAgICAgbV9yZW5kZXJpbmdNb2RlID09IG90aGVyLm1fcmVuZGVyaW5nTW9kZSAmJiBtX2lz
VmVydGljYWxMYXlvdXQgPT0gb3RoZXIubV9pc1ZlcnRpY2FsTGF5b3V0OwogICAgIH0KIAogICAg
IHVuc2lnbmVkIG1fc2l6ZTsKQEAgLTgxLDYgKzgyLDcgQEAgc3RydWN0IEZvbnRQbGF0Zm9ybURh
dGFDYWNoZUtleSA6IEZhc3RBbAogICAgIGJvb2wgbV9pdGFsaWM7CiAgICAgYm9vbCBtX3ByaW50
ZXJGb250OwogICAgIEZvbnRSZW5kZXJpbmdNb2RlIG1fcmVuZGVyaW5nTW9kZTsKKyAgICBib29s
IG1faXNWZXJ0aWNhbExheW91dDsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgdW5zaWduZWQgaGFz
aFRhYmxlRGVsZXRlZFNpemUoKSB7IHJldHVybiAweEZGRkZGRkZGVTsgfQpAQCAtOTIsNyArOTQs
NyBAQCBpbmxpbmUgdW5zaWduZWQgY29tcHV0ZUhhc2goY29uc3QgRm9udFBsCiAgICAgICAgIENh
c2VGb2xkaW5nSGFzaDo6aGFzaChmb250S2V5Lm1fZmFtaWx5KSwKICAgICAgICAgZm9udEtleS5t
X3NpemUsCiAgICAgICAgIGZvbnRLZXkubV93ZWlnaHQsCi0gICAgICAgIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihmb250S2V5Lm1faXRhbGljKSA8PCAyIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZv
bnRLZXkubV9wcmludGVyRm9udCkgPDwgMSB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5
Lm1fcmVuZGVyaW5nTW9kZSkKKyAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXku
bV9pc1ZlcnRpY2FsTGF5b3V0KSA8PCAzIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXku
bV9pdGFsaWMpIDw8IDIgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5tX3ByaW50ZXJG
b250KSA8PCAxIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9yZW5kZXJpbmdNb2Rl
KQogICAgIH07CiAgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmNvbXB1dGVIYXNoKHJlaW50ZXJwcmV0
X2Nhc3Q8VUNoYXIqPihoYXNoQ29kZXMpLCBzaXplb2YoaGFzaENvZGVzKSAvIHNpemVvZihVQ2hh
cikpOwogfQpAQCAtMTkxLDcgKzE5Myw3IEBAIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6
Z2V0Q2FjaGVkRm8KICAgICB9CiAKICAgICBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkga2V5KGZh
bWlseU5hbWUsIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpLCBmb250RGVzY3Jp
cHRpb24ud2VpZ2h0KCksIGZvbnREZXNjcmlwdGlvbi5pdGFsaWMoKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi51c2VQcmludGVyRm9udCgpLCBmb250
RGVzY3JpcHRpb24ucmVuZGVyaW5nTW9kZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZvbnREZXNjcmlwdGlvbi51c2VQcmludGVyRm9udCgpLCBmb250RGVzY3JpcHRpb24u
cmVuZGVyaW5nTW9kZSgpLCBmb250RGVzY3JpcHRpb24uaXNWZXJ0aWNhbExheW91dCgpKTsKICAg
ICBGb250UGxhdGZvcm1EYXRhKiByZXN1bHQgPSAwOwogICAgIGJvb2wgZm91bmRSZXN1bHQ7CiAg
ICAgRm9udFBsYXRmb3JtRGF0YUNhY2hlOjppdGVyYXRvciBpdCA9IGdGb250UGxhdGZvcm1EYXRh
Q2FjaGUtPmZpbmQoa2V5KTsKQEAgLTIzNiw3ICsyMzgsNyBAQCBzdHJ1Y3QgRm9udERhdGFDYWNo
ZUtleVRyYWl0cyA6IFdURjo6R2VuCiAgICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVj
dGlvbiA9IHRydWU7CiAgICAgc3RhdGljIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIGVtcHR5VmFs
dWUoKQogICAgIHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChGb250UGxhdGZvcm1EYXRh
LCBrZXksICgwLmYsIGZhbHNlLCBmYWxzZSkpOworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEZvbnRQbGF0Zm9ybURhdGEsIGtleSwgKDAuZiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkpOwogICAg
ICAgICByZXR1cm4ga2V5OwogICAgIH0KICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVk
VmFsdWUoRm9udFBsYXRmb3JtRGF0YSYgc2xvdCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udERlc2NyaXB0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAkocmV2aXNpb24gNjg5OTApCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC02Niw2
ICs2Niw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2ZvbnRTbW9vdGhpbmcoQXV0b1Ntb290aGlu
ZykKICAgICAgICAgLCBtX3RleHRSZW5kZXJpbmcoQXV0b1RleHRSZW5kZXJpbmcpCiAgICAgICAg
ICwgbV9pc1NwZWNpZmllZEZvbnQoZmFsc2UpCisgICAgICAgICwgbV9pc1ZlcnRpY2FsTGF5b3V0
KGZhbHNlKQogICAgIHsKICAgICB9CiAKQEAgLTk0LDYgKzk1LDcgQEAgcHVibGljOgogCiAgICAg
Rm9udFRyYWl0c01hc2sgdHJhaXRzTWFzaygpIGNvbnN0OwogICAgIGJvb2wgaXNTcGVjaWZpZWRG
b250KCkgY29uc3QgeyByZXR1cm4gbV9pc1NwZWNpZmllZEZvbnQ7IH0KKyAgICBib29sIGlzVmVy
dGljYWxMYXlvdXQoKSBjb25zdCB7IHJldHVybiBtX2lzVmVydGljYWxMYXlvdXQ7IH0KIAogICAg
IHZvaWQgc2V0RmFtaWx5KGNvbnN0IEZvbnRGYW1pbHkmIGZhbWlseSkgeyBtX2ZhbWlseUxpc3Qg
PSBmYW1pbHk7IH0KICAgICB2b2lkIHNldENvbXB1dGVkU2l6ZShmbG9hdCBzKSB7IG1fY29tcHV0
ZWRTaXplID0gczsgfQpAQCAtMTEzLDYgKzExNSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZv
bnRTbW9vdGhpbmcoRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nKSB7IG1fZm9udFNtb290aGlu
ZyA9IHNtb290aGluZzsgfQogICAgIHZvaWQgc2V0VGV4dFJlbmRlcmluZ01vZGUoVGV4dFJlbmRl
cmluZ01vZGUgcmVuZGVyaW5nKSB7IG1fdGV4dFJlbmRlcmluZyA9IHJlbmRlcmluZzsgfQogICAg
IHZvaWQgc2V0SXNTcGVjaWZpZWRGb250KGJvb2wgaXNTcGVjaWZpZWRGb250KSB7IG1faXNTcGVj
aWZpZWRGb250ID0gaXNTcGVjaWZpZWRGb250OyB9CisgICAgdm9pZCBzZXRJc1ZlcnRpY2FsTGF5
b3V0KGJvb2wgaXNWZXJ0aWNhbExheW91dCkgeyBtX2lzVmVydGljYWxMYXlvdXQgPSBpc1ZlcnRp
Y2FsTGF5b3V0OyB9CiAKIHByaXZhdGU6CiAgICAgRm9udEZhbWlseSBtX2ZhbWlseUxpc3Q7IC8v
IFRoZSBsaXN0IG9mIGZvbnQgZmFtaWxpZXMgdG8gYmUgdXNlZC4KQEAgLTEzOCw2ICsxNDEsNyBA
QCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fZm9udFNtb290aGluZyA6IDI7IC8vIEZvbnRTbW9v
dGhpbmdNb2RlCiAgICAgdW5zaWduZWQgbV90ZXh0UmVuZGVyaW5nIDogMjsgLy8gVGV4dFJlbmRl
cmluZ01vZGUKICAgICBib29sIG1faXNTcGVjaWZpZWRGb250IDogMTsgLy8gVHJ1ZSBpZiBhIHdl
YiBwYWdlIHNwZWNpZmllcyBhIG5vbi1nZW5lcmljIGZvbnQgZmFtaWx5IGFzIHRoZSBmaXJzdCBm
b250IGZhbWlseS4KKyAgICBib29sIG1faXNWZXJ0aWNhbExheW91dCA6IDE7IC8vIFRydWUgaWYg
dGhlIHRleHQgaXMgZ29pbmcgdG8gYmUgbGFpZCBvdXQgdmVydGljYWxseS4KIH07CiAKIGlubGlu
ZSBib29sIEZvbnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9PShjb25zdCBGb250RGVzY3JpcHRpb24m
IG90aGVyKSBjb25zdApAQCAtMTU1LDcgKzE1OSw4IEBAIGlubGluZSBib29sIEZvbnREZXNjcmlw
dGlvbjo6b3BlcmF0b3I9PSgKICAgICAgICAgJiYgbV9rZXl3b3JkU2l6ZSA9PSBvdGhlci5tX2tl
eXdvcmRTaXplCiAgICAgICAgICYmIG1fZm9udFNtb290aGluZyA9PSBvdGhlci5tX2ZvbnRTbW9v
dGhpbmcKICAgICAgICAgJiYgbV90ZXh0UmVuZGVyaW5nID09IG90aGVyLm1fdGV4dFJlbmRlcmlu
ZwotICAgICAgICAmJiBtX2lzU3BlY2lmaWVkRm9udCA9PSBvdGhlci5tX2lzU3BlY2lmaWVkRm9u
dDsKKyAgICAgICAgJiYgbV9pc1NwZWNpZmllZEZvbnQgPT0gb3RoZXIubV9pc1NwZWNpZmllZEZv
bnQKKyAgICAgICAgJiYgbV9pc1ZlcnRpY2FsTGF5b3V0ID09IG90aGVyLm1faXNWZXJ0aWNhbExh
eW91dDsKIH0KIAogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250
RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVG
b250RGF0YS5jcHAJKHJldmlzaW9uIDY4OTkwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9TaW1wbGVGb250RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgU2lt
cGxlRm9udERhdGE6OlNpbXBsZUZvbnREYXRhKGNvbnN0IEZvbgogCiAjaWYgRU5BQkxFKFNWR19G
T05UUykKIFNpbXBsZUZvbnREYXRhOjpTaW1wbGVGb250RGF0YShQYXNzT3duUHRyPFNWR0ZvbnRE
YXRhPiBzdmdGb250RGF0YSwgaW50IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50
aGV0aWNJdGFsaWMpCi0gICAgOiBtX3BsYXRmb3JtRGF0YShGb250UGxhdGZvcm1EYXRhKHNpemUs
IHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYykpCisgICAgOiBtX3BsYXRmb3JtRGF0YShG
b250UGxhdGZvcm1EYXRhKHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgZmFs
c2UpKQogICAgICwgbV90cmVhdEFzRml4ZWRQaXRjaChmYWxzZSkKICAgICAsIG1fc3ZnRm9udERh
dGEoc3ZnRm9udERhdGEpCiAgICAgLCBtX2lzQ3VzdG9tRm9udCh0cnVlKQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9UeXBlc2V0dGluZ0ZlYXR1cmVzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UeXBlc2V0dGluZ0ZlYXR1cmVzLmgJKHJldmlzaW9u
IDY4OTkwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UeXBlc2V0dGluZ0ZlYXR1cmVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIGVudW0gVHlwZXNldHRpbmdGZWF0dXJlIHsKICAgICAgICAgS2VybmluZyA9IDEgPDwgMCwK
ICAgICAgICAgTGlnYXR1cmVzID0gMSA8PCAxLAorICAgICAgICBWZXJ0aWNhbExheW91dCA9IDEg
PDwgMiwKICAgICB9OwogCiAgICAgdHlwZWRlZiB1bnNpZ25lZCBUeXBlc2V0dGluZ0ZlYXR1cmVz
OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCShyZXZpc2lvbiA2ODk5MCkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRD
dXN0b21QbGF0ZgogICAgIGNhaXJvX2ZvbnRfZmFjZV9kZXN0cm95KG1fZm9udEZhY2UpOwogfQog
Ci1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURh
dGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlKQor
Rm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRh
KGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBib29sLCBGb250UmVuZGVyaW5nTW9k
ZSkKIHsKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShtX2ZvbnRGYWNlLCBzaXplLCBib2xk
LCBpdGFsaWMpOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY4OTkwKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9y
bURhdGEgOiBOb25jb3B5YQogcHVibGljOgogICAgIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEoRlRf
RmFjZSwgU2hhcmVkQnVmZmVyKik7CiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKLSAg
ICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7Cisg
ICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQs
IGJvb2wgaXRhbGljLCBib29sIGlzVmVydGljYWxMYXlvdXQsIEZvbnRSZW5kZXJpbmdNb2RlID0g
Tm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29u
c3QgU3RyaW5nJik7CiAKIHByaXZhdGU6CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCShy
ZXZpc2lvbiA2ODk5MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBs
YXRmb3JtRGF0YUZyZWVUeXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTExLDcgKzExMSw3IEBA
IEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoRmNQYXQKICAgICBtX3NjYWxlZEZv
bnQgPSBhZG9wdFBsYXRmb3JtUmVmKGNhaXJvX3NjYWxlZF9mb250X2NyZWF0ZShmb250RmFjZS5n
ZXQoKSwgJmZvbnRNYXRyaXgsICZjdG0sIG9wdGlvbnMpKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKQor
Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQs
IGJvb2wgaXRhbGljLCBib29sKQogICAgIDogbV9mYWxsYmFja3MoMCkKICAgICAsIG1fc2l6ZShz
aXplKQogICAgICwgbV9zeW50aGV0aWNCb2xkKGJvbGQpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBl
LmgJKHJldmlzaW9uIDY4OTkwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9G
b250UGxhdGZvcm1EYXRhRnJlZVR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUsNyBA
QCBwdWJsaWM6CiAKICAgICBGb250UGxhdGZvcm1EYXRhKEZjUGF0dGVybiosIGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY2Fpcm9fZm9udF9mYWNlX3QqIGZv
bnRGYWNlLCBmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKTsKLSAgICBGb250UGxh
dGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMpOworICAgIEZvbnRQ
bGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgYm9vbCBpc1Zl
cnRpY2FsTGF5b3V0KTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnRQbGF0Zm9ybURh
dGEmKTsKIAogICAgIH5Gb250UGxhdGZvcm1EYXRhKCk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ZvbnRQbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ZvbnRQbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNjg5OTApCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ZvbnRQbGF0Zm9ybURhdGEuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgRm9udFBsYXRm
b3JtRGF0YShIRk9OVCwgZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUsIGJvb2wg
dXNlR0RJKTsKLSAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9v
bCBvYmxpcXVlKTsKKyAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBvYmxpcXVlLCBib29sIGlzVmVydGljYWxMYXlvdXQpOwogCiAgICAgRm9udFBsYXRmb3Jt
RGF0YShIRk9OVCwgQ0dGb250UmVmLCBmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1
ZSwgYm9vbCB1c2VHREkpOwogICAgIH5Gb250UGxhdGZvcm1EYXRhKCk7CkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRQbGF0Zm9ybURhdGFDaHJvbWl1bVdpbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250
UGxhdGZvcm1EYXRhQ2hyb21pdW1XaW4uY3BwCShyZXZpc2lvbiA2ODk5MCkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUNocm9taXVtV2luLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsNyBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250
UGxhdGZvcm1EYXRhKEhGT05UCiB9CiAKIC8vIEZJWE1FOiB0aGlzIGNvbnN0cnVjdG9yIGlzIG5l
ZWRlZCBmb3IgU1ZHIGZvbnRzIGJ1dCBkb2Vzbid0IHNlZW0gdG8gZG8gbXVjaAotRm9udFBsYXRm
b3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2Js
aXF1ZSkKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9v
bCBib2xkLCBib29sIG9ibGlxdWUsIGJvb2wpCiAgICAgOiBtX2ZvbnQoMCkKICAgICAsIG1fc2l6
ZShzaXplKQogICAgICwgbV9zY3JpcHRDYWNoZSgwKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhQ2hyb21pdW1XaW4uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRQbGF0Zm9ybURhdGFD
aHJvbWl1bVdpbi5oCShyZXZpc2lvbiA2ODk5MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUNocm9taXVtV2luLmgJKHdvcmtpbmcgY29weSkK
QEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIEZvbnRQbGF0Zm9ybURhdGEoV1RGOjpIYXNo
VGFibGVEZWxldGVkVmFsdWVUeXBlKTsKICAgICBGb250UGxhdGZvcm1EYXRhKCk7CiAgICAgRm9u
dFBsYXRmb3JtRGF0YShIRk9OVCwgZmxvYXQgc2l6ZSk7Ci0gICAgRm9udFBsYXRmb3JtRGF0YShm
bG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSk7CisgICAgRm9udFBsYXRmb3JtRGF0
YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSwgYm9vbCBpc1ZlcnRpY2FsTGF5
b3V0KTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmKTsKIAog
ICAgIEZvbnRQbGF0Zm9ybURhdGEmIG9wZXJhdG9yPShjb25zdCBGb250UGxhdGZvcm1EYXRhJik7
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRQbGF0Zm9ybURh
dGFMaW51eC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRm9udFBsYXRmb3JtRGF0YUxpbnV4LmgJKHJldmlzaW9uIDY4OTkwKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhTGludXguaAkod29ya2lu
ZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9mYWtlSXRhbGlj
KGZhbHNlKQogICAgICAgICB7IH0KIAotICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgdGV4dFNp
emUsIGJvb2wgZmFrZUJvbGQsIGJvb2wgZmFrZUl0YWxpYykKKyAgICBGb250UGxhdGZvcm1EYXRh
KGZsb2F0IHRleHRTaXplLCBib29sIGZha2VCb2xkLCBib29sIGZha2VJdGFsaWMsIGJvb2wgaXNW
ZXJ0aWNhbExheW91dCkKICAgICAgICAgOiBtX3R5cGVmYWNlKDApCiAgICAgICAgICwgbV90ZXh0
U2l6ZSh0ZXh0U2l6ZSkKICAgICAgICAgLCBtX2Zha2VCb2xkKGZha2VCb2xkKQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhLmgJ
KHJldmlzaW9uIDY4OTkwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250
UGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDkgKzU4LDEwIEBAIGlubGluZSBD
VEZvbnRSZWYgdG9DVEZvbnRSZWYoTlNGb250ICpuc0YKIAogY2xhc3MgRm9udFBsYXRmb3JtRGF0
YSB7CiAgIHB1YmxpYzoKLSAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgc3lu
dGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlKQorICAgIEZvbnRQbGF0Zm9ybURhdGEo
ZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIGJv
b2wgaXNWZXJ0aWNhbExheW91dCkKICAgICAgICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGlj
Qm9sZCkKICAgICAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGljT2JsaXF1ZSkKKyAg
ICAgICAgLCBtX2lzVmVydGljYWxMYXlvdXQoaXNWZXJ0aWNhbExheW91dCkKICAgICAgICAgLCBt
X2F0c3VGb250SUQoMCkKICAgICAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAgICAgLCBtX2ZvbnQo
MCkKQEAgLTcxLDExICs3MiwxMiBAQCBjbGFzcyBGb250UGxhdGZvcm1EYXRhIHsKICAgICB7CiAg
ICAgfQogCi0gICAgRm9udFBsYXRmb3JtRGF0YShOU0ZvbnQgKm5zRm9udCwgYm9vbCBzeW50aGV0
aWNCb2xkID0gZmFsc2UsIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IGZhbHNlKTsKKyAgICBGb250
UGxhdGZvcm1EYXRhKE5TRm9udCAqbnNGb250LCBib29sIHN5bnRoZXRpY0JvbGQgPSBmYWxzZSwg
Ym9vbCBzeW50aGV0aWNPYmxpcXVlID0gZmFsc2UsIGJvb2wgaXNWZXJ0aWNhbExheW91dCA9IGZh
bHNlKTsKICAgICAKLSAgICBGb250UGxhdGZvcm1EYXRhKENHRm9udFJlZiBjZ0ZvbnQsIEFUU1VG
b250SUQgZm9udElELCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhl
dGljT2JsaXF1ZSkKKyAgICBGb250UGxhdGZvcm1EYXRhKENHRm9udFJlZiBjZ0ZvbnQsIEFUU1VG
b250SUQgZm9udElELCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhl
dGljT2JsaXF1ZSwgYm9vbCBpc1ZlcnRpY2FsTGF5b3V0KQogICAgICAgICA6IG1fc3ludGhldGlj
Qm9sZChzeW50aGV0aWNCb2xkKQogICAgICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50aGV0
aWNPYmxpcXVlKQorICAgICAgICAsIG1faXNWZXJ0aWNhbExheW91dChpc1ZlcnRpY2FsTGF5b3V0
KQogICAgICAgICAsIG1fYXRzdUZvbnRJRChmb250SUQpCiAgICAgICAgICwgbV9zaXplKHNpemUp
CiAgICAgICAgICwgbV9mb250KDApCkBAIC05NCw5ICs5NiwxMSBAQCBjbGFzcyBGb250UGxhdGZv
cm1EYXRhIHsKICAgICBmbG9hdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAg
Ym9vbCBzeW50aGV0aWNCb2xkKCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNCb2xkOyB9CiAg
ICAgYm9vbCBzeW50aGV0aWNPYmxpcXVlKCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNPYmxp
cXVlOyB9CisgICAgYm9vbCBpc1ZlcnRpY2FsTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9pc1Zl
cnRpY2FsTGF5b3V0OyB9CiAKICAgICBib29sIG1fc3ludGhldGljQm9sZDsKICAgICBib29sIG1f
c3ludGhldGljT2JsaXF1ZTsKKyAgICBib29sIG1faXNWZXJ0aWNhbExheW91dDsKIAogICAgIEFU
U1VGb250SUQgbV9hdHN1Rm9udElEOwogICAgIGZsb2F0IG1fc2l6ZTsKQEAgLTEwNCw3ICsxMDgs
NyBAQCBjbGFzcyBGb250UGxhdGZvcm1EYXRhIHsKICAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QK
ICAgICB7CiAgICAgICAgIEFTU0VSVChtX2ZvbnQgIT0gMCB8fCBtX2NnRm9udCA9PSAwKTsKLSAg
ICAgICAgdWludHB0cl90IGhhc2hDb2Rlc1syXSA9IHsgKHVpbnRwdHJfdCltX2ZvbnQsIG1fc3lu
dGhldGljQm9sZCA8PCAxIHwgbV9zeW50aGV0aWNPYmxpcXVlIH07CisgICAgICAgIHVpbnRwdHJf
dCBoYXNoQ29kZXNbMl0gPSB7ICh1aW50cHRyX3QpbV9mb250LCBtX2lzVmVydGljYWxMYXlvdXQg
PDwgMiB8IG1fc3ludGhldGljQm9sZCA8PCAxIHwgbV9zeW50aGV0aWNPYmxpcXVlIH07CiAgICAg
ICAgIHJldHVybiBTdHJpbmdJbXBsOjpjb21wdXRlSGFzaChyZWludGVycHJldF9jYXN0PFVDaGFy
Kj4oaGFzaENvZGVzKSwgc2l6ZW9mKGhhc2hDb2RlcykgLyBzaXplb2YoVUNoYXIpKTsKICAgICB9
CiAKQEAgLTExMyw3ICsxMTcsNyBAQCBjbGFzcyBGb250UGxhdGZvcm1EYXRhIHsKICAgICBib29s
IG9wZXJhdG9yPT0oY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgb3RoZXIpIGNvbnN0CiAgICAgeyAK
ICAgICAgICAgcmV0dXJuIG1fZm9udCA9PSBvdGhlci5tX2ZvbnQgJiYgbV9zeW50aGV0aWNCb2xk
ID09IG90aGVyLm1fc3ludGhldGljQm9sZCAmJiBtX3N5bnRoZXRpY09ibGlxdWUgPT0gb3RoZXIu
bV9zeW50aGV0aWNPYmxpcXVlICYmIAotICAgICAgICAgICAgICAgbV9jZ0ZvbnQgPT0gb3RoZXIu
bV9jZ0ZvbnQgJiYgbV9zaXplID09IG90aGVyLm1fc2l6ZSAmJiBtX2F0c3VGb250SUQgPT0gb3Ro
ZXIubV9hdHN1Rm9udElEOworICAgICAgICAgICAgICAgbV9jZ0ZvbnQgPT0gb3RoZXIubV9jZ0Zv
bnQgJiYgbV9zaXplID09IG90aGVyLm1fc2l6ZSAmJiBtX2F0c3VGb250SUQgPT0gb3RoZXIubV9h
dHN1Rm9udElEICYmIG1faXNWZXJ0aWNhbExheW91dCA9PSBvdGhlci5tX2lzVmVydGljYWxMYXlv
dXQ7CiAgICAgfQogCiAgICAgTlNGb250ICpmb250KCkgY29uc3QgeyByZXR1cm4gbV9mb250OyB9
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFD
b2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zv
bnRQbGF0Zm9ybURhdGFDb2NvYS5tbQkocmV2aXNpb24gNjg5OTApCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQkod29ya2luZyBjb3B5
KQpAQCAtNDQsOSArNDQsMTAgQEAgdm9pZCBGb250UGxhdGZvcm1EYXRhOjpsb2FkRm9udChOU0Zv
bnQqIAogfQogI2VuZGlmICAvLyBQTEFURk9STShNQUMpCiAKLUZvbnRQbGF0Zm9ybURhdGE6OkZv
bnRQbGF0Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBz
eW50aGV0aWNPYmxpcXVlKQorRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShOU0Zv
bnQgKm5zRm9udCwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIGJv
b2wgaXNWZXJ0aWNhbExheW91dCkKICAgICA6IG1fc3ludGhldGljQm9sZChzeW50aGV0aWNCb2xk
KQogICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKHN5bnRoZXRpY09ibGlxdWUpCisgICAgLCBtX2lz
VmVydGljYWxMYXlvdXQoaXNWZXJ0aWNhbExheW91dCkKICAgICAsIG1fZm9udChuc0ZvbnQpCiAj
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xF
T1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICAvLyBGSVhN
RTogQ2hyb21pdW06IFRoZSBmb2xsb3dpbmcgY29kZSBpc24ndCBjb3JyZWN0IGZvciB0aGUgQ2hy
b21pdW0gcG9ydCBzaW5jZSB0aGUgc2FuZGJveCBtaWdodApAQCAtODMsNiArODQsNyBAQCBGb250
UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGNvbnN0CiAgICAgbV9jZ0ZvbnQgPSBmLm1f
Y2dGb250OwogICAgIG1fYXRzdUZvbnRJRCA9IGYubV9hdHN1Rm9udElEOwogICAgIG1faXNDb2xv
ckJpdG1hcEZvbnQgPSBmLm1faXNDb2xvckJpdG1hcEZvbnQ7CisgICAgbV9pc1ZlcnRpY2FsTGF5
b3V0ID0gZi5tX2lzVmVydGljYWxMYXlvdXQ7CiAjaWYgVVNFKENPUkVfVEVYVCkKICAgICBtX0NU
Rm9udCA9IGYubV9DVEZvbnQ7CiAjZW5kaWYKQEAgLTExMiw2ICsxMTQsNyBAQCBjb25zdCBGb250
UGxhdGZvcm1EYXRhJiBGb250UGxhdGZvcm1EYXRhCiAgICAgICAgIENGUmVsZWFzZShtX2ZvbnQp
OwogICAgIG1fZm9udCA9IGYubV9mb250OwogICAgIG1faXNDb2xvckJpdG1hcEZvbnQgPSBmLm1f
aXNDb2xvckJpdG1hcEZvbnQ7CisgICAgbV9pc1ZlcnRpY2FsTGF5b3V0ID0gZi5tX2lzVmVydGlj
YWxMYXlvdXQ7CiAjaWYgVVNFKENPUkVfVEVYVCkKICAgICBtX0NURm9udCA9IGYubV9DVEZvbnQ7
CiAjZW5kaWYKQEAgLTE4Nyw3ICsxOTAsOCBAQCBDVEZvbnRSZWYgRm9udFBsYXRmb3JtRGF0YTo6
Y3RGb250KCkgY29uCiBTdHJpbmcgRm9udFBsYXRmb3JtRGF0YTo6ZGVzY3JpcHRpb24oKSBjb25z
dAogewogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gY2dGb250RGVzY3JpcHRpb24oQWRvcHRD
RiwgQ0ZDb3B5RGVzY3JpcHRpb24oY2dGb250KCkpKTsKLSAgICByZXR1cm4gU3RyaW5nKGNnRm9u
dERlc2NyaXB0aW9uLmdldCgpKSArICIgIiArIFN0cmluZzo6bnVtYmVyKG1fc2l6ZSkgKyAobV9z
eW50aGV0aWNCb2xkID8gIiBzeW50aGV0aWMgYm9sZCIgOiAiIikgKyAobV9zeW50aGV0aWNPYmxp
cXVlID8gIiBzeW50aGV0aWMgb2JsaXF1ZSIgOiAiIik7CisgICAgcmV0dXJuIFN0cmluZyhjZ0Zv
bnREZXNjcmlwdGlvbi5nZXQoKSkgKyAiICIgKyBTdHJpbmc6Om51bWJlcihtX3NpemUpCisgICAg
ICAgICAgICArIChtX3N5bnRoZXRpY0JvbGQgPyAiIHN5bnRoZXRpYyBib2xkIiA6ICIiKSArICht
X3N5bnRoZXRpY09ibGlxdWUgPyAiIHN5bnRoZXRpYyBvYmxpcXVlIiA6ICIiKSArIChtX2lzVmVy
dGljYWxMYXlvdXQgPyAiIHZlcnRpY2FsIGxheW91dCIgOiAiIik7CiB9CiAjZW5kaWYKIApJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEN1c3RvbVBsYXRmb3JtRGF0YVBh
bmdvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhUGFuZ28uY3BwCShyZXZpc2lvbiA2ODk5MCkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFQYW5nby5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZv
bnRDdXN0b21QbGF0ZgogewogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMs
IEZvbnRSZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBi
b29sLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YSht
X2ZvbnRGYWNlLCBzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ndGsvRm9udFBsYXRmb3JtRGF0YVBhbmdvLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250UGxhdGZvcm1EYXRhUGFuZ28uY3BwCShy
ZXZpc2lvbiA2ODk5MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRQbGF0
Zm9ybURhdGFQYW5nby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw3ICsxMjcsNyBAQCBGb250
UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGNvbnN0CiAgICAgcGFuZ29fZm9udF9kZXNj
cmlwdGlvbl9mcmVlKGRlc2NyaXB0aW9uKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBs
YXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKQorRm9udFBsYXRm
b3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBib29sKQogICAgIDogbV9jb250ZXh0KDApCiAgICAgLCBtX2ZvbnQoMCkKICAgICAsIG1f
c2l6ZShzaXplKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udFBsYXRm
b3JtRGF0YVBhbmdvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
dGsvRm9udFBsYXRmb3JtRGF0YVBhbmdvLmgJKHJldmlzaW9uIDY4OTkwKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udFBsYXRmb3JtRGF0YVBhbmdvLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogCiAgICAgRm9udFBsYXRmb3JtRGF0YShjb25z
dCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSk7CiAgICAgRm9u
dFBsYXRmb3JtRGF0YShjYWlyb19mb250X2ZhY2VfdCogZm9udEZhY2UsIGZsb2F0IHNpemUsIGJv
b2wgYm9sZCwgYm9vbCBpdGFsaWMpOwotICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwg
Ym9vbCBib2xkLCBib29sIGl0YWxpYyk7CisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXpl
LCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBib29sIGlzVmVydGljYWxMYXlvdXQpOwogICAgIEZv
bnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYpOwogICAgIH5Gb250UGxhdGZv
cm1EYXRhKCk7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24gNjg5OTApCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURh
dGE6On5Gb250Q3VzdG9tUGxhdGYKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wg
aXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBs
YXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0
YWxpYywgYm9vbCwgRm9udFJlbmRlcmluZ01vZGUpCiB7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9y
bURhdGEoc2l6ZSwgYm9sZCwgaXRhbGljKTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCShyZXZp
c2lvbiA2ODk5MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBT
dHJpbmcmKTsKIAotICAgICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50
IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFs
UmVuZGVyaW5nTW9kZSk7CisgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0
YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgYm9vbCBpc1ZlcnRpY2FsTGF5b3V0
LCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOwogICAgIH07CiAKICAg
ICBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKiBjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKFNo
YXJlZEJ1ZmZlciopOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250
UGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9o
YWlrdS9Gb250UGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY4OTkwKQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250UGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgeyB9CiAKICAg
ICAgICAgRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGZhbWlseSk7Ci0gICAgICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwg
Ym9vbCBib2xkLCBib29sIG9ibGlxdWUpOworICAgICAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0
IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlLCBib29sIGlzVmVydGljYWxMYXlvdXQpOwog
ICAgICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmKTsKIAogICAg
ICAgICB+Rm9udFBsYXRmb3JtRGF0YSgpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udENhY2hlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQkocmV2aXNpb24gNjg5OTApCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTE0
Miw3ICsxNDIsOCBAQCBjb25zdCBTaW1wbGVGb250RGF0YSogRm9udENhY2hlOjpnZXRGb250CiAK
ICAgICBGb250UGxhdGZvcm1EYXRhIGFsdGVybmF0ZUZvbnQoc3Vic3RpdHV0ZUZvbnQsIAogICAg
ICAgICAhZm9udC5pc1BsYXRmb3JtRm9udCgpICYmIGlzQXBwS2l0Rm9udFdlaWdodEJvbGQod2Vp
Z2h0KSAmJiAhaXNBcHBLaXRGb250V2VpZ2h0Qm9sZChzdWJzdGl0dXRlRm9udFdlaWdodCksCi0g
ICAgICAgICFmb250LmlzUGxhdGZvcm1Gb250KCkgJiYgKHRyYWl0cyAmIE5TRm9udEl0YWxpY1Ry
YWl0KSAmJiAhKHN1YnN0aXR1dGVGb250VHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQpKTsKKyAg
ICAgICAgIWZvbnQuaXNQbGF0Zm9ybUZvbnQoKSAmJiAodHJhaXRzICYgTlNGb250SXRhbGljVHJh
aXQpICYmICEoc3Vic3RpdHV0ZUZvbnRUcmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCksCisgICAg
ICAgIHBsYXRmb3JtRGF0YS5tX2lzVmVydGljYWxMYXlvdXQpOwogICAgIHJldHVybiBnZXRDYWNo
ZWRGb250RGF0YSgmYWx0ZXJuYXRlRm9udCk7CiB9CiAKQEAgLTIxMCw3ICsyMTEsNyBAQCBGb250
UGxhdGZvcm1EYXRhKiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQCiAgICAgYm9vbCBzeW50aGV0aWNC
b2xkID0gaXNBcHBLaXRGb250V2VpZ2h0Qm9sZCh3ZWlnaHQpICYmICFpc0FwcEtpdEZvbnRXZWln
aHRCb2xkKGFjdHVhbFdlaWdodCk7CiAgICAgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0gKHRyYWl0
cyAmIE5TRm9udEl0YWxpY1RyYWl0KSAmJiAhKGFjdHVhbFRyYWl0cyAmIE5TRm9udEl0YWxpY1Ry
YWl0KTsKIAotICAgIHJldHVybiBuZXcgRm9udFBsYXRmb3JtRGF0YShwbGF0Zm9ybUZvbnQsIHN5
bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUpOworICAgIHJldHVybiBuZXcgRm9udFBsYXRm
b3JtRGF0YShwbGF0Zm9ybUZvbnQsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIGZv
bnREZXNjcmlwdGlvbi5pc1ZlcnRpY2FsTGF5b3V0KCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24gNjg5OTApCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzgsOSArMzgsOSBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1
c3RvbVBsYXRmCiAgICAgQ0dGb250UmVsZWFzZShtX2NnRm9udCk7CiB9CiAKLUZvbnRQbGF0Zm9y
bURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwg
Ym9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1E
YXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJv
b2wgYm9sZCwgYm9vbCBpdGFsaWMsIGJvb2wgaXNWZXJ0aWNhbExheW91dCwgRm9udFJlbmRlcmlu
Z01vZGUpCiB7Ci0gICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9jZ0ZvbnQsIChBVFNVRm9u
dElEKW1fYXRzRm9udCwgc2l6ZSwgYm9sZCwgaXRhbGljKTsKKyAgICByZXR1cm4gRm9udFBsYXRm
b3JtRGF0YShtX2NnRm9udCwgKEFUU1VGb250SUQpbV9hdHNGb250LCBzaXplLCBib2xkLCBpdGFs
aWMsIGlzVmVydGljYWxMYXlvdXQpOwogfQogCiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKiBjcmVh
dGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciogYnVmZmVyKQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuaAkocmV2aXNpb24gNjg5OTApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcg
QEAgc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgOiBOb25jb3B5YQogICAgIHt9CiAgICAg
fkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBs
YXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmlu
Z01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQ
bGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGJvb2wgaXNWZXJ0
aWNhbExheW91dCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKIAog
ICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwogCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0
YUNvcmVUZXh0LmNwcAkocmV2aXNpb24gNjg5OTApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9TaW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAs
MTYgKzYwLDI1IEBAIENGRGljdGlvbmFyeVJlZiBTaW1wbGVGb250RGF0YTo6Z2V0Q0ZTdHIKICAg
ICBpZiAoISh0eXBlc2V0dGluZ0ZlYXR1cmVzICYgS2VybmluZykpIHsKICAgICAgICAgc3RhdGlj
IGNvbnN0IGZsb2F0IGtlcm5pbmdBZGp1c3RtZW50VmFsdWUgPSAwOwogICAgICAgICBzdGF0aWMg
Q0ZOdW1iZXJSZWYga2VybmluZ0FkanVzdG1lbnQgPSBDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBrQ0ZOdW1iZXJGbG9hdFR5cGUsICZrZXJuaW5nQWRqdXN0bWVudFZhbHVlKTsK
LSAgICAgICAgc3RhdGljIGNvbnN0IHZvaWQqIGtleXNXaXRoS2VybmluZ0Rpc2FibGVkW10gPSB7
IGtDVEZvbnRBdHRyaWJ1dGVOYW1lLCBrQ1RLZXJuQXR0cmlidXRlTmFtZSwga0NUTGlnYXR1cmVB
dHRyaWJ1dGVOYW1lIH07Ci0gICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlc1dpdGhLZXJuaW5nRGlz
YWJsZWRbXSA9IHsgcGxhdGZvcm1EYXRhKCkuY3RGb250KCksIGtlcm5pbmdBZGp1c3RtZW50LCBh
bGxvd0xpZ2F0dXJlcwotICAgICAgICAgICAgPyBsaWdhdHVyZXNBbGxvd2VkIDogbGlnYXR1cmVz
Tm90QWxsb3dlZCB9OworICAgICAgICBzdGF0aWMgY29uc3Qgdm9pZCoga2V5c1dpdGhLZXJuaW5n
RGlzYWJsZWRbXSA9IHsgICAga0NURm9udEF0dHJpYnV0ZU5hbWUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQ1RLZXJuQXR0cmli
dXRlTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGtDVExpZ2F0dXJlQXR0cmlidXRlTmFtZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtDVFZlcnRpY2FsRm9y
bXNBdHRyaWJ1dGVOYW1lIH07CisgICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlc1dpdGhLZXJuaW5n
RGlzYWJsZWRbXSA9IHsgICAgICAgICBwbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtlcm5p
bmdBZGp1c3RtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYWxsb3dMaWdhdHVyZXMgPyBsaWdhdHVyZXNBbGxvd2VkIDogbGln
YXR1cmVzTm90QWxsb3dlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICh0eXBlc2V0dGluZ0ZlYXR1cmVzICYgVmVydGljYWxMYXlv
dXQpID8ga0NGQm9vbGVhblRydWUgOiBrQ0ZCb29sZWFuRmFsc2UgfTsKICAgICAgICAgYXR0cmli
dXRlc0RpY3Rpb25hcnkuYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoMCwga2V5c1dpdGhLZXJu
aW5nRGlzYWJsZWQsIHZhbHVlc1dpdGhLZXJuaW5nRGlzYWJsZWQsCiAgICAgICAgICAgICBzaXpl
b2Yoa2V5c1dpdGhLZXJuaW5nRGlzYWJsZWQpIC8gc2l6ZW9mKCprZXlzV2l0aEtlcm5pbmdEaXNh
YmxlZCksCiAgICAgICAgICAgICAma0NGQ29weVN0cmluZ0RpY3Rpb25hcnlLZXlDYWxsQmFja3Ms
ICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgLy8gQnkgb21pdHRpbmcgdGhlIGtDVEtlcm5BdHRyaWJ1dGVOYW1lIGF0dHJpYnV0ZSwgd2Ug
Z2V0IENvcmUgVGV4dCdzIHN0YW5kYXJkIGtlcm5pbmcuCi0gICAgICAgIHN0YXRpYyBjb25zdCB2
b2lkKiBrZXlzV2l0aEtlcm5pbmdFbmFibGVkW10gPSB7IGtDVEZvbnRBdHRyaWJ1dGVOYW1lLCBr
Q1RMaWdhdHVyZUF0dHJpYnV0ZU5hbWUgfTsKLSAgICAgICAgY29uc3Qgdm9pZCogdmFsdWVzV2l0
aEtlcm5pbmdFbmFibGVkW10gPSB7IHBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLCBhbGxvd0xpZ2F0
dXJlcyA/IGxpZ2F0dXJlc0FsbG93ZWQgOiBsaWdhdHVyZXNOb3RBbGxvd2VkIH07CisgICAgICAg
IHN0YXRpYyBjb25zdCB2b2lkKiBrZXlzV2l0aEtlcm5pbmdFbmFibGVkW10gPSB7ICAgICBrQ1RG
b250QXR0cmlidXRlTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGtDVExpZ2F0dXJlQXR0cmlidXRlTmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtDVFZl
cnRpY2FsRm9ybXNBdHRyaWJ1dGVOYW1lIH07CisgICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlc1dp
dGhLZXJuaW5nRW5hYmxlZFtdID0geyAgICAgICAgICBwbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFsbG93TGlnYXR1cmVzID8gbGlnYXR1cmVzQWxsb3dlZCA6IGxpZ2F0dXJlc05vdEFsbG93
ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAodHlwZXNldHRpbmdGZWF0dXJlcyAmIFZlcnRpY2FsTGF5b3V0KSA/IGtDRkJvb2xl
YW5UcnVlIDoga0NGQm9vbGVhbkZhbHNlIH07CiAgICAgICAgIGF0dHJpYnV0ZXNEaWN0aW9uYXJ5
LmFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKDAsIGtleXNXaXRoS2VybmluZ0VuYWJsZWQsIHZh
bHVlc1dpdGhLZXJuaW5nRW5hYmxlZCwKICAgICAgICAgICAgIHNpemVvZihrZXlzV2l0aEtlcm5p
bmdFbmFibGVkKSAvIHNpemVvZigqa2V5c1dpdGhLZXJuaW5nRW5hYmxlZCksCiAgICAgICAgICAg
ICAma0NGQ29weVN0cmluZ0RpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFy
eVZhbHVlQ2FsbEJhY2tzKSk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNjg5OTApCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkod29y
a2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBzdHJ1Y3QgRm9udEN1c3RvbVBsYXRmb3JtRGF0
YSA6IE5vbmNvcHlhCiAgICAgLy8gZm9yIHVzZSB3aXRoIFFGb250RGF0YWJhc2U6OmFkZEFwcGxp
Y2F0aW9uRm9udC9yZW1vdmVBcHBsaWNhdGlvbkZvbnQKICAgICBpbnQgbV9oYW5kbGU7CiAKLSAg
ICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7Cisg
ICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQs
IGJvb2wgaXRhbGljLCBib29sIGlzVmVydGljYWxMYXlvdXQsIEZvbnRSZW5kZXJpbmdNb2RlID0g
Tm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChj
b25zdCBTdHJpbmcmKTsKIH07CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGFRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUXQuY3BwCShyZXZpc2lvbiA2ODk5
MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0
YVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiAgICAgUUZvbnREYXRhYmFzZTo6cmVtb3ZlQXBwbGlj
YXRpb25Gb250KG1faGFuZGxlKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxh
dGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBGb250UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxp
YywgYm9vbCwgRm9udFJlbmRlcmluZ01vZGUpCiB7CiAgICAgUUZvbnQgZm9udDsKICAgICBmb250
LnNldEZhbWlseShRRm9udERhdGFiYXNlOjphcHBsaWNhdGlvbkZvbnRGYW1pbGllcyhtX2hhbmRs
ZSlbMF0pOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UGxhdGZvcm1E
YXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UGxh
dGZvcm1EYXRhLmgJKHJldmlzaW9uIDY4OTkwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9Gb250UGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAg
cHVibGljOgogCiBjbGFzcyBGb250UGxhdGZvcm1EYXRhIDogcHVibGljIEZhc3RBbGxvY0Jhc2Ug
ewogcHVibGljOgotICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBi
b29sIG9ibGlxdWUpOworICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xk
LCBib29sIG9ibGlxdWUsIGJvb2wgaXNWZXJ0aWNhbExheW91dCk7CiAgICAgRm9udFBsYXRmb3Jt
RGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhICYpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlOYW1lLCBpbnQg
d29yZFNwYWNpbmcgPSAwLCBpbnQgbGV0dGVyU3BhY2luZyA9IDApOwogICAgIEZvbnRQbGF0Zm9y
bURhdGEoY29uc3QgUUZvbnQmIGZvbnQpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3F0L0ZvbnRQbGF0Zm9ybURhdGFRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9Gb250UGxhdGZvcm1EYXRhUXQuY3BwCShyZXZpc2lvbiA2ODk5MCkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0YVF0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNFbXRweVZh
bHVlKGNvbnN0IGZsCiAgICAgcmV0dXJuICFib2xkICYmICFvYmxpcXVlICYmIHNpemUgPT0gMC5m
OwogfQogCi1Gb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJv
b2wgYm9sZCwgYm9vbCBvYmxpcXVlKQorRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0
YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSwgYm9vbCkKIHsKICAgICBpZiAo
aXNFbXRweVZhbHVlKHNpemUsIGJvbGQsIG9ibGlxdWUpKQogICAgICAgICBtX2RhdGEgPSAwOwpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24gNjg5OTApCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3NraWEvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTY0LDcgKzY0LDcgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21Q
bGF0ZgogI2VuZGlmCiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0
YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9u
dFJlbmRlcmluZ01vZGUgbW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywg
Ym9vbCwgRm9udFJlbmRlcmluZ01vZGUgbW9kZSkKIHsKICNpZiBPUyhXSU5ET1dTKQogICAgIEFT
U0VSVChtX2ZvbnRSZWZlcmVuY2UpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3NraWEvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2ODk5
MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAgc3RydWN0IEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEgOiBOb25jb3B5YQogCiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsK
IAotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBi
b2xkLCBib29sIGl0YWxpYywKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEo
aW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGJvb2wgaXNWZXJ0aWNhbExheW91dCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9udFJlbmRlcmluZ01vZGUg
PSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0
KGNvbnN0IFN0cmluZyYpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY4OTkwKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0
YTo6fkZvbnRDdXN0b21QbGF0ZgogICAgIH0KIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3Vz
dG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJv
b2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3Jt
RGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBi
b29sIGJvbGQsIGJvb2wgaXRhbGljLCBib29sLCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdN
b2RlKQogewogICAgIEFTU0VSVChtX2ZvbnRSZWZlcmVuY2UpOwogICAgIEFTU0VSVChUMmVtYmVk
TGlicmFyeSgpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY4OTkwKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5n
IGNvcHkpCkBAIC00Miw3ICs0Miw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDog
Tm9uY29weWEKIAogICAgIH5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCk7CiAKLSAgICBGb250UGxh
dGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFs
aWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBs
YXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBib29sIGlzVmVydGljYWxMYXlvdXQsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVu
ZGVyaW5nTW9kZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJp
bmcmKTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBs
YXRmb3JtRGF0YUNhaXJvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCShyZXZpc2lvbiA2ODk5MCkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFD
YWlyby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogICAgY2Fpcm9fZm9udF9mYWNlX2Rlc3Ryb3kobV9m
b250RmFjZSk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6
Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYykKK0ZvbnRQ
bGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQg
c2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgYm9vbCkKIHsKICAgICByZXR1cm4gRm9udFBs
YXRmb3JtRGF0YShtX2ZvbnRGYWNlLCBzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBs
YXRmb3JtRGF0YUNhaXJvLmgJKHJldmlzaW9uIDY4OTkwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM5LDcgKzM5LDcgQEAgc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgOiBOb25jb3B5
YQogICAgIH0KICAgICB+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpOwogCi0gICAgRm9udFBsYXRm
b3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
KTsKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wg
Ym9sZCwgYm9vbCBpdGFsaWMsIGJvb2wgaXNWZXJ0aWNhbExheW91dCk7CiAKICAgICBzdGF0aWMg
Ym9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIApJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2lu
LmgJKHJldmlzaW9uIDY4OTkwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9u
dFBsYXRmb3JtRGF0YUNhaXJvV2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAg
cHVibGljOgogCiAgICAgRm9udFBsYXRmb3JtRGF0YShIRk9OVCwgZmxvYXQgc2l6ZSwgYm9vbCBi
b2xkLCBib29sIG9ibGlxdWUsIGJvb2wgdXNlR0RJKTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNh
aXJvX2ZvbnRfZmFjZV90KiBmb250RmFjZSwgZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0
YWxpYyk7Ci0gICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wg
aXRhbGljKTsKKyAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9v
bCBpdGFsaWMsIGJvb2wgaXNWZXJ0aWNhbExheW91dCk7CiAgICAgRm9udFBsYXRmb3JtRGF0YShj
b25zdCBGb250UGxhdGZvcm1EYXRhJik7CiAgICAgfkZvbnRQbGF0Zm9ybURhdGEoKTsKIApJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YVdpbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3Jt
RGF0YVdpbi5jcHAJKHJldmlzaW9uIDY4OTkwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vRm9udFBsYXRmb3JtRGF0YVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDcgKzcx
LDcgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShIRk9OVAogICAgIFJlbGVh
c2VEQygwLCBoZGMpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZs
b2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlKQorRm9udFBsYXRmb3JtRGF0YTo6Rm9u
dFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSwgYm9vbCkK
ICAgICA6IG1fc2l6ZShzaXplKQogI2lmIFBMQVRGT1JNKENHKQogICAgICwgbV9jZ0ZvbnQoMCkK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24gNjg5OTApCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3Vz
dG9tUGxhdGYKICAgICAgICAgZ19jdXN0b21Gb250Q2FjaGUtPnVucmVnaXN0ZXJGb250KG1fbmFt
ZSk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBs
YXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmlu
Z01vZGUgcmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywg
Ym9vbCwgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSkKIHsKICAgICBGb250RGVzY3Jp
cHRpb24gZm9udERlc2M7CiAgICAgZm9udERlc2Muc2V0Q29tcHV0ZWRTaXplKHNpemUpOwpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY4OTkwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIH5Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhKCk7CiAKLSAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1E
YXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSA9
IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0
Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGJvb2wgaXNWZXJ0aWNh
bExheW91dCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKIAogICAg
ICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIApJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250UGxhdGZvcm1EYXRhLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRQbGF0Zm9ybURh
dGEuY3BwCShyZXZpc2lvbiA2ODk5MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
Y2UvRm9udFBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1NSw3ICszNTUsNyBA
QCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGNvbnN0CiAgICAgbV9wcml2YXRl
ID0gbmV3IEZvbnRQbGF0Zm9ybVByaXZhdGVEYXRhKGZvbnREZXNjcmlwdGlvbiwgZmFtaWx5KTsK
IH0KIAotRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29s
IGJvbGQsIGJvb2wgb2JsaXF1ZSkKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEo
ZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUsIGJvb2wpCiB7CiAgICAgaWYgKCFz
aXplKQogICAgICAgICBtX3ByaXZhdGUgPSAwOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW5jZS9Gb250UGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250UGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY4OTkwKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250UGxhdGZvcm1EYXRhLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHB1
YmxpYzoKIAogICAgICAgICBGb250UGxhdGZvcm1EYXRhKCk6IG1fcHJpdmF0ZSgwKSB7fQotICAg
ICAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVl
KTsKKyAgICAgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wg
b2JsaXF1ZSwgYm9vbCBpc1ZlcnRpY2FsTGF5b3V0KTsKIAogICAgICAgICAvLyBVc2VkIGZvciBk
ZWxldGVkIHZhbHVlcyBpbiB0aGUgZm9udCBjYWNoZSdzIGhhc2ggdGFibGVzLgogICAgICAgICBG
b250UGxhdGZvcm1EYXRhKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkgOiBtX3ByaXZh
dGUoKEZvbnRQbGF0Zm9ybVByaXZhdGVEYXRhKikxKSB7fQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCShy
ZXZpc2lvbiA2ODk5MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgRm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogewogfQogCi1Gb250UGxhdGZvcm1E
YXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJv
b2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0
YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29s
IGJvbGQsIGJvb2wgaXRhbGljLCBib29sLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICByZXR1
cm4gRm9udFBsYXRmb3JtRGF0YShzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmgJKHJldmlzaW9uIDY4OTkwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNv
bnN0IFN0cmluZyYpOwogCi0gICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0
YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUgPSBO
b3JtYWxSZW5kZXJpbmdNb2RlKTsKKyAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZv
cm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBib29sIGlzVmVydGljYWxM
YXlvdXQsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAgICAgfTsK
IAogICAgIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEqIGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURh
dGEoU2hhcmVkQnVmZmVyKik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0Zv
bnRQbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3d4L0ZvbnRQbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNjg5OTApCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3d4L0ZvbnRQbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtOTEs
NyArOTEsNyBAQCBwdWJsaWM6CiAKICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYsIGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgIAotICAgIEZvbnRQbGF0Zm9ybURh
dGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYykKKyAgICBGb250UGxhdGZvcm1E
YXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGJvb2wgaXNWZXJ0aWNhbExh
eW91dCkKICAgICA6IG1fZm9udFN0YXRlKFVOSU5JVElBTElaRUQpCiAgICAgLCBtX2ZvbnQoMCkK
ICAgICAsIG1fc2l6ZShzaXplKQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcAkocmV2aXNpb24gNjg5OTApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcwNyw2ICs3MDcsMTcgQEAgdm9pZCBSZW5k
ZXJTdHlsZTo6c2V0Qm94U2hhZG93KFNoYWRvd0RhdAogICAgIHJhcmVEYXRhLT5tX2JveFNoYWRv
dy5zZXQoc2hhZG93RGF0YSk7CiB9CiAKK3ZvaWQgUmVuZGVyU3R5bGU6OnNldEJsb2NrRmxvdyhF
QmxvY2tGbG93RGlyZWN0aW9uIHYpCit7CisgICAgaW5oZXJpdGVkX2ZsYWdzLl9ibG9ja0Zsb3cg
PSB2OworCisgICAgRm9udFNlbGVjdG9yKiBjdXJyZW50Rm9udFNlbGVjdG9yID0gZm9udCgpLmZv
bnRTZWxlY3RvcigpOworICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjKGZvbnREZXNjcmlwdGlvbigp
KTsKKyAgICBkZXNjLnNldElzVmVydGljYWxMYXlvdXQoIWlzVmVydGljYWxCbG9ja0Zsb3coKSk7
CisgICAgc2V0Rm9udERlc2NyaXB0aW9uKGRlc2MpOworICAgIGZvbnQoKS51cGRhdGUoY3VycmVu
dEZvbnRTZWxlY3Rvcik7Cit9CisKIHN0YXRpYyB2b2lkIGNvbnN0cmFpbkNvcm5lclJhZGlpRm9y
UmVjdChjb25zdCBJbnRSZWN0JiByLCBJbnRTaXplJiB0b3BMZWZ0LCBJbnRTaXplJiB0b3BSaWdo
dCwgSW50U2l6ZSYgYm90dG9tTGVmdCwgSW50U2l6ZSYgYm90dG9tUmlnaHQpCiB7CiAgICAgLy8g
Q29uc3RyYWluIGNvcm5lciByYWRpaSB1c2luZyBDU1MzIHJ1bGVzOgpJbmRleDogV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCShyZXZpc2lvbiA2ODk5MCkKKysrIFdlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExMjQsNyArMTEy
NCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgIG9yaWdpbmFsRGlzcGxheSgpID09IElOTElO
RV9CT1ggfHwgb3JpZ2luYWxEaXNwbGF5KCkgPT0gSU5MSU5FX1RBQkxFOwogICAgIH0KIAotICAg
IHZvaWQgc2V0QmxvY2tGbG93KEVCbG9ja0Zsb3dEaXJlY3Rpb24gdikgeyBpbmhlcml0ZWRfZmxh
Z3MuX2Jsb2NrRmxvdyA9IHY7IH0KKyAgICB2b2lkIHNldEJsb2NrRmxvdyhFQmxvY2tGbG93RGly
ZWN0aW9uIHYpOwogCiAgICAgLy8gVG8gdGVsbCBpZiB0aGlzIHN0eWxlIG1hdGNoZWQgYXR0cmli
dXRlIHNlbGVjdG9ycy4gVGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIHNoYXJlLgogICAgIGJv
b2wgYWZmZWN0ZWRCeUF0dHJpYnV0ZVNlbGVjdG9ycygpIGNvbnN0IHsgcmV0dXJuIG1fYWZmZWN0
ZWRCeUF0dHJpYnV0ZVNlbGVjdG9yczsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70585</attachid>
            <date>2010-10-13 00:58:58 -0700</date>
            <delta_ts>2010-10-14 21:29:38 -0700</delta_ts>
            <desc>[build test] Supported font fast path. Submitted to test builds on non-Mac platforms.</desc>
            <filename>WK46973Patch_101013.txt</filename>
            <type>text/plain</type>
            <size>58817</size>
            <attacher name="Takumi Takano">takano</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTY0MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTE1IEBACisyMDEwLTEwLTEzICB0YWthbm8gdGFrdW1pICA8dGFrYW5vMUBhc2lh
LmFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOZWVkIHRvIHN3YXAgZ2x5cGhzIGZvciB2ZXJ0aWNhbCB3cml0aW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk3MworCisgICAgICAgIE1h
ZGUgY2hhbmdlcyB0byBwYXNzIHRoZSB3cml0aW5nLW1vZGUgb3JpZW50YXRpb24gZmxhZyBpbiBS
ZW5kZXJTdHlsZSBkb3duIHRvIEZvbnRQbGF0Zm9ybURhdGEsCisgICAgICAgIGFuZCB1bHRpbWF0
ZWx5IHRvIENvcmVUZXh0IEFQSXMgaW4gYm90aCBmb250IGNvbXBsZXggcGF0aCBhbmQgZmFzdCBw
YXRoLgorCisgICAgICAgIERvZXNuJ3QgYWZmZWN0IGFueSB0ZXN0cyB5ZXQuCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTb3VyY2U6OmdldEZvbnREYXRhKToKKyAgICAg
ICAgKiBsb2FkZXIvQ2FjaGVkRm9udC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGb250
OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YSk6CisgICAgICAgICogbG9hZGVyL0NhY2hlZEZv
bnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnQ6OmNvZGVQYXRoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250
Lmg6CisgICAgICAgIChXZWJDb3JlOjpGb250Ojp0eXBlc2V0dGluZ0ZlYXR1cmVzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Rm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5OjpGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkpOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5OjpvcGVyYXRvcj09KToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbXB1dGVIYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNo
ZTo6Z2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RGF0
YUNhY2hlS2V5VHJhaXRzOjplbXB0eVZhbHVlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9Gb250RGVzY3JpcHRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6
Rm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6aXNW
ZXJ0aWNhbExheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnNldElz
VmVydGljYWxMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpvcGVy
YXRvcj09KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6U2ltcGxlRm9udERhdGEpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1R5cGVzZXR0aW5nRmVhdHVyZXMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRh
RnJlZVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBs
YXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBsYXRm
b3JtRGF0YUZyZWVUeXBlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvRm9udFBs
YXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRQ
bGF0Zm9ybURhdGFDaHJvbWl1bVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZv
cm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhQ2hyb21pdW1XaW4uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhTGludXguaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udFBsYXRmb3JtRGF0YTo6aXNWZXJ0aWNhbExheW91dCk6CisgICAgICAgIChXZWJDb3Jl
OjpGb250UGxhdGZvcm1EYXRhOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9y
bURhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zv
bnRQbGF0Zm9ybURhdGFDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURh
dGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0
YTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OmRlc2Ny
aXB0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YVBhbmdvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURh
dGE6OmZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9G
b250UGxhdGZvcm1EYXRhUGFuZ28uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3Jt
RGF0YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L0ZvbnRQbGF0Zm9ybURhdGFQYW5nby5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hh
aWt1L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENh
Y2hlOjpnZXRGb250RGF0YUZvckNoYXJhY3RlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENh
Y2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250
Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL21hYy9HbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHbHlwaFBhZ2U6OmZpbGwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9T
aW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnRE
YXRhOjpnZXRDRlN0cmluZ0F0dHJpYnV0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L21hYy9TaW1wbGVGb250RGF0YU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnRE
YXRhOjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZv
bnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9xdC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGFRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0
YUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZv
bnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhQ2Fpcm8uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4v
Rm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL0ZvbnRQbGF0Zm9ybURhdGFXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRm
b3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luY2UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250
Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb250UGxhdGZvcm1Qcml2YXRlRGF0YTo6Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRm
b3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3Jt
RGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9u
dFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRQbGF0
Zm9ybURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0
Zm9ybURhdGEpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0V3JpdGluZ01vZGUpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorCiAyMDEwLTEwLTEyICBSb2xhbmQgU3Rl
aW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhdmlkIEh5YXR0LgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiA2OTYzNCkKKysrIFdlYkNvcmUvV2Vi
Q29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTM3MSw3ICszNzEsNyBAQCBfX1pON1dlYkNv
cmUxNkRldmljZU1vdGlvbkRhdGExMkFjY2VsZXJhCiBfX1pON1dlYkNvcmUxNkRldmljZU1vdGlv
bkRhdGExMlJvdGF0aW9uUmF0ZTZjcmVhdGVFYmRiZGJkCiBfX1pON1dlYkNvcmUxNkRldmljZU1v
dGlvbkRhdGE2Y3JlYXRlRU4zV1RGMTBQYXNzUmVmUHRySU5TMF8xMkFjY2VsZXJhdGlvbkVFRVM0
X05TMl9JTlMwXzEyUm90YXRpb25SYXRlRUVFYmQKIF9fWk43V2ViQ29yZTE2Rm9udEZhbGxiYWNr
TGlzdDE1cmVsZWFzZUZvbnREYXRhRXYKLV9fWk43V2ViQ29yZTE2Rm9udFBsYXRmb3JtRGF0YUMx
RVA2TlNGb250YmIKK19fWk43V2ViQ29yZTE2Rm9udFBsYXRmb3JtRGF0YUMxRVA2TlNGb250YmJi
CiBfX1pON1dlYkNvcmUxNkZvbnRQbGF0Zm9ybURhdGFEMUV2CiBfX1pON1dlYkNvcmUxNkhUTUxJ
bnB1dEVsZW1lbnQxM3NldEF1dG9maWxsZWRFYgogX19aTjdXZWJDb3JlMTZMZWdhY3lXZWJBcmNo
aXZlMTljcmVhdGVGcm9tU2VsZWN0aW9uRVBOU181RnJhbWVFCkluZGV4OiBXZWJDb3JlL2Nzcy9D
U1NGb250RmFjZVNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2VTb3VyY2UuY3BwCShyZXZpc2lvbiA2OTYzNCkKKysrIFdlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
U291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYyLDcgKzE2Miw3IEBAIFNpbXBsZUZvbnRE
YXRhKiBDU1NGb250RmFjZVNvdXJjZTo6Z2V0Rm8KICAgICAgICAgICAgICAgICBpZiAoIW1fZm9u
dC0+ZW5zdXJlQ3VzdG9tRm9udERhdGEoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICAgICAgICAgICAgICBmb250RGF0YS5zZXQobmV3IFNpbXBsZUZvbnREYXRhKG1fZm9u
dC0+cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkUGl4
ZWxTaXplKCksIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udERlc2NyaXB0aW9u
LnJlbmRlcmluZ01vZGUoKSksIHRydWUsIGZhbHNlKSk7CisgICAgICAgICAgICAgICAgZm9udERh
dGEuc2V0KG5ldyBTaW1wbGVGb250RGF0YShtX2ZvbnQtPnBsYXRmb3JtRGF0YUZyb21DdXN0b21E
YXRhKGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpLCBzeW50aGV0aWNCb2xkLCBz
eW50aGV0aWNJdGFsaWMsIGZvbnREZXNjcmlwdGlvbi5pc1ZlcnRpY2FsTGF5b3V0KCksIGZvbnRE
ZXNjcmlwdGlvbi5yZW5kZXJpbmdNb2RlKCkpLCB0cnVlLCBmYWxzZSkpOwogICAgICAgICAgICAg
fQogICAgICAgICB9IGVsc2UgewogI2lmIEVOQUJMRShTVkdfRk9OVFMpCkluZGV4OiBXZWJDb3Jl
L2xvYWRlci9DYWNoZWRGb250LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9DYWNo
ZWRGb250LmNwcAkocmV2aXNpb24gNjk2MzQpCisrKyBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDE1ICsxMTcsMTUgQEAgYm9vbCBDYWNoZWRGb250
OjplbnN1cmVDdXN0b21Gb250RGF0YSgpCiAgICAgcmV0dXJuIG1fZm9udERhdGE7CiB9CiAKLUZv
bnRQbGF0Zm9ybURhdGEgQ2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoZmxv
YXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVy
aW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgQ2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1
c3RvbURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgYm9vbCBpc1ZlcnRp
Y2FsTGF5b3V0LCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKQogewogI2lmIEVOQUJM
RShTVkdfRk9OVFMpCiAgICAgaWYgKG1fZXh0ZXJuYWxTVkdEb2N1bWVudCkKLSAgICAgICAgcmV0
dXJuIEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwgYm9sZCwgaXRhbGljKTsKKyAgICAgICAgcmV0dXJu
IEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwgYm9sZCwgaXRhbGljLCBmYWxzZSk7CiAjZW5kaWYKICNp
ZmRlZiBTVE9SRV9GT05UX0NVU1RPTV9QTEFURk9STV9EQVRBCiAgICAgQVNTRVJUKG1fZm9udERh
dGEpOwotICAgIHJldHVybiBtX2ZvbnREYXRhLT5mb250UGxhdGZvcm1EYXRhKHN0YXRpY19jYXN0
PGludD4oc2l6ZSksIGJvbGQsIGl0YWxpYywgcmVuZGVyaW5nTW9kZSk7CisgICAgcmV0dXJuIG1f
Zm9udERhdGEtPmZvbnRQbGF0Zm9ybURhdGEoc3RhdGljX2Nhc3Q8aW50PihzaXplKSwgYm9sZCwg
aXRhbGljLCBpc1ZlcnRpY2FsTGF5b3V0LCByZW5kZXJpbmdNb2RlKTsKICNlbHNlCiAgICAgcmV0
dXJuIEZvbnRQbGF0Zm9ybURhdGEoKTsKICNlbmRpZgpJbmRleDogV2ViQ29yZS9sb2FkZXIvQ2Fj
aGVkRm9udC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0NhY2hlZEZvbnQuaAkocmV2
aXNpb24gNjk2MzQpCisrKyBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgYmVnaW5Mb2FkSWZOZWVkZWQo
Q2FjaGVkUmVzb3VyY2VMb2FkZXIqIGRsKTsKIAogICAgIGJvb2wgZW5zdXJlQ3VzdG9tRm9udERh
dGEoKTsKLSAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGZs
b2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9y
bWFsUmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBwbGF0Zm9ybURhdGFGcm9t
Q3VzdG9tRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBib29sIGlzVmVy
dGljYWxMYXlvdXQgPSBmYWxzZSwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdN
b2RlKTsKIAogI2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgYm9vbCBpc1NWR0ZvbnQoKSBjb25z
dCB7IHJldHVybiBtX2lzU1ZHRm9udDsgfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQu
Y3BwCShyZXZpc2lvbiA2OTYzNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMzMCw3ICszMzAsNyBAQCBGb250OjpDb2RlUGF0aCBGb250
Ojpjb2RlUGF0aChjb25zdCBUZXh0CiAgICAgICAgICAgICByZXR1cm4gQ29tcGxleDsKICAgICB9
CiAKLSAgICBpZiAodHlwZXNldHRpbmdGZWF0dXJlcygpKQorICAgIGlmICh0eXBlc2V0dGluZ0Zl
YXR1cmVzKCkgJiB+VmVydGljYWxMYXlvdXQpCiAgICAgICAgIHJldHVybiBDb21wbGV4OwogCiAg
ICAgcmV0dXJuIHJlc3VsdDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCShyZXZpc2lv
biA2OTYzNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTUsNyArMTE1LDEwIEBAIHB1YmxpYzoKICAgICBUeXBlc2V0dGluZ0ZlYXR1cmVz
IHR5cGVzZXR0aW5nRmVhdHVyZXMoKSBjb25zdAogICAgIHsKICAgICAgICAgVGV4dFJlbmRlcmlu
Z01vZGUgdGV4dFJlbmRlcmluZ01vZGUgPSBtX2ZvbnREZXNjcmlwdGlvbi50ZXh0UmVuZGVyaW5n
TW9kZSgpOwotICAgICAgICByZXR1cm4gdGV4dFJlbmRlcmluZ01vZGUgPT0gT3B0aW1pemVMZWdp
YmlsaXR5IHx8IHRleHRSZW5kZXJpbmdNb2RlID09IEdlb21ldHJpY1ByZWNpc2lvbiA/IEtlcm5p
bmcgfCBMaWdhdHVyZXMgOiAwOworICAgICAgICBUeXBlc2V0dGluZ0ZlYXR1cmVzIGZlYXR1cmVz
ID0gKHRleHRSZW5kZXJpbmdNb2RlID09IE9wdGltaXplTGVnaWJpbGl0eSB8fCB0ZXh0UmVuZGVy
aW5nTW9kZSA9PSBHZW9tZXRyaWNQcmVjaXNpb24pID8gS2VybmluZyB8IExpZ2F0dXJlcyA6IDA7
CisgICAgICAgIGlmIChtX2ZvbnREZXNjcmlwdGlvbi5pc1ZlcnRpY2FsTGF5b3V0KCkpCisgICAg
ICAgICAgICBmZWF0dXJlcyB8PSBWZXJ0aWNhbExheW91dDsKKyAgICAgICAgcmV0dXJuIGZlYXR1
cmVzOwogICAgIH0KIAogICAgIEZvbnRGYW1pbHkmIGZpcnN0RmFtaWx5KCkgeyByZXR1cm4gbV9m
b250RGVzY3JpcHRpb24uZmlyc3RGYW1pbHkoKTsgfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udENhY2hlLmNwcAkocmV2aXNpb24gNjk2MzQpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDEzICs1NSwxNCBA
QCBGb250Q2FjaGU6OkZvbnRDYWNoZSgpCiAKIHN0cnVjdCBGb250UGxhdGZvcm1EYXRhQ2FjaGVL
ZXkgOiBGYXN0QWxsb2NCYXNlIHsKICAgICBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkoY29uc3Qg
QXRvbWljU3RyaW5nJiBmYW1pbHkgPSBBdG9taWNTdHJpbmcoKSwgdW5zaWduZWQgc2l6ZSA9IDAs
IHVuc2lnbmVkIHdlaWdodCA9IDAsIGJvb2wgaXRhbGljID0gZmFsc2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJvb2wgaXNQcmludGVyRm9udCA9IGZhbHNlLCBGb250UmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBpc1ByaW50ZXJGb250ID0gZmFsc2UsIEZvbnRSZW5kZXJpbmdN
b2RlIHJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlLCBib29sIGlzVmVydGljYWxM
YXlvdXQgPSBmYWxzZSkKICAgICAgICAgOiBtX3NpemUoc2l6ZSkKICAgICAgICAgLCBtX3dlaWdo
dCh3ZWlnaHQpCiAgICAgICAgICwgbV9mYW1pbHkoZmFtaWx5KQogICAgICAgICAsIG1faXRhbGlj
KGl0YWxpYykKICAgICAgICAgLCBtX3ByaW50ZXJGb250KGlzUHJpbnRlckZvbnQpCiAgICAgICAg
ICwgbV9yZW5kZXJpbmdNb2RlKHJlbmRlcmluZ01vZGUpCisgICAgICAgICwgbV9pc1ZlcnRpY2Fs
TGF5b3V0KGlzVmVydGljYWxMYXlvdXQpCiAgICAgewogICAgIH0KIApAQCAtNzIsNyArNzMsNyBA
QCBzdHJ1Y3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5IDogRmFzdEFsCiAgICAgewogICAgICAg
ICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UobV9mYW1pbHksIG90aGVyLm1fZmFtaWx5KSAmJiBt
X3NpemUgPT0gb3RoZXIubV9zaXplICYmIAogICAgICAgICAgICAgICAgbV93ZWlnaHQgPT0gb3Ro
ZXIubV93ZWlnaHQgJiYgbV9pdGFsaWMgPT0gb3RoZXIubV9pdGFsaWMgJiYgbV9wcmludGVyRm9u
dCA9PSBvdGhlci5tX3ByaW50ZXJGb250ICYmCi0gICAgICAgICAgICAgICBtX3JlbmRlcmluZ01v
ZGUgPT0gb3RoZXIubV9yZW5kZXJpbmdNb2RlOworICAgICAgICAgICAgICAgbV9yZW5kZXJpbmdN
b2RlID09IG90aGVyLm1fcmVuZGVyaW5nTW9kZSAmJiBtX2lzVmVydGljYWxMYXlvdXQgPT0gb3Ro
ZXIubV9pc1ZlcnRpY2FsTGF5b3V0OwogICAgIH0KIAogICAgIHVuc2lnbmVkIG1fc2l6ZTsKQEAg
LTgxLDYgKzgyLDcgQEAgc3RydWN0IEZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleSA6IEZhc3RBbAog
ICAgIGJvb2wgbV9pdGFsaWM7CiAgICAgYm9vbCBtX3ByaW50ZXJGb250OwogICAgIEZvbnRSZW5k
ZXJpbmdNb2RlIG1fcmVuZGVyaW5nTW9kZTsKKyAgICBib29sIG1faXNWZXJ0aWNhbExheW91dDsK
IAogcHJpdmF0ZToKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaFRhYmxlRGVsZXRlZFNpemUoKSB7
IHJldHVybiAweEZGRkZGRkZGVTsgfQpAQCAtOTIsNyArOTQsNyBAQCBpbmxpbmUgdW5zaWduZWQg
Y29tcHV0ZUhhc2goY29uc3QgRm9udFBsCiAgICAgICAgIENhc2VGb2xkaW5nSGFzaDo6aGFzaChm
b250S2V5Lm1fZmFtaWx5KSwKICAgICAgICAgZm9udEtleS5tX3NpemUsCiAgICAgICAgIGZvbnRL
ZXkubV93ZWlnaHQsCi0gICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5Lm1faXRh
bGljKSA8PCAyIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9wcmludGVyRm9udCkg
PDwgMSB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5Lm1fcmVuZGVyaW5nTW9kZSkKKyAg
ICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9pc1ZlcnRpY2FsTGF5b3V0KSA8
PCAzIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9pdGFsaWMpIDw8IDIgfCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5tX3ByaW50ZXJGb250KSA8PCAxIHwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9yZW5kZXJpbmdNb2RlKQogICAgIH07CiAgICAgcmV0dXJu
IFN0cmluZ0ltcGw6OmNvbXB1dGVIYXNoKHJlaW50ZXJwcmV0X2Nhc3Q8VUNoYXIqPihoYXNoQ29k
ZXMpLCBzaXplb2YoaGFzaENvZGVzKSAvIHNpemVvZihVQ2hhcikpOwogfQpAQCAtMTkxLDcgKzE5
Myw3IEBAIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm8KICAgICB9CiAK
ICAgICBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkga2V5KGZhbWlseU5hbWUsIGZvbnREZXNjcmlw
dGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpLCBmb250RGVzY3JpcHRpb24ud2VpZ2h0KCksIGZvbnRE
ZXNjcmlwdGlvbi5pdGFsaWMoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv
bnREZXNjcmlwdGlvbi51c2VQcmludGVyRm9udCgpLCBmb250RGVzY3JpcHRpb24ucmVuZGVyaW5n
TW9kZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlv
bi51c2VQcmludGVyRm9udCgpLCBmb250RGVzY3JpcHRpb24ucmVuZGVyaW5nTW9kZSgpLCBmb250
RGVzY3JpcHRpb24uaXNWZXJ0aWNhbExheW91dCgpKTsKICAgICBGb250UGxhdGZvcm1EYXRhKiBy
ZXN1bHQgPSAwOwogICAgIGJvb2wgZm91bmRSZXN1bHQ7CiAgICAgRm9udFBsYXRmb3JtRGF0YUNh
Y2hlOjppdGVyYXRvciBpdCA9IGdGb250UGxhdGZvcm1EYXRhQ2FjaGUtPmZpbmQoa2V5KTsKQEAg
LTIzNiw3ICsyMzgsNyBAQCBzdHJ1Y3QgRm9udERhdGFDYWNoZUtleVRyYWl0cyA6IFdURjo6R2Vu
CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAgICAgc3Rh
dGljIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIGVtcHR5VmFsdWUoKQogICAgIHsKLSAgICAgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChGb250UGxhdGZvcm1EYXRhLCBrZXksICgwLmYsIGZhbHNlLCBm
YWxzZSkpOworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnRQbGF0Zm9ybURhdGEsIGtl
eSwgKDAuZiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkpOwogICAgICAgICByZXR1cm4ga2V5OwogICAg
IH0KICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoRm9udFBsYXRmb3JtRGF0
YSYgc2xvdCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRp
b24uaAkocmV2aXNpb24gNjk2MzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRE
ZXNjcmlwdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2Niw3IEBAIHB1YmxpYzoKICAg
ICAgICAgLCBtX2ZvbnRTbW9vdGhpbmcoQXV0b1Ntb290aGluZykKICAgICAgICAgLCBtX3RleHRS
ZW5kZXJpbmcoQXV0b1RleHRSZW5kZXJpbmcpCiAgICAgICAgICwgbV9pc1NwZWNpZmllZEZvbnQo
ZmFsc2UpCisgICAgICAgICwgbV9pc1ZlcnRpY2FsTGF5b3V0KGZhbHNlKQogICAgIHsKICAgICB9
CiAKQEAgLTk0LDYgKzk1LDcgQEAgcHVibGljOgogCiAgICAgRm9udFRyYWl0c01hc2sgdHJhaXRz
TWFzaygpIGNvbnN0OwogICAgIGJvb2wgaXNTcGVjaWZpZWRGb250KCkgY29uc3QgeyByZXR1cm4g
bV9pc1NwZWNpZmllZEZvbnQ7IH0KKyAgICBib29sIGlzVmVydGljYWxMYXlvdXQoKSBjb25zdCB7
IHJldHVybiBtX2lzVmVydGljYWxMYXlvdXQ7IH0KIAogICAgIHZvaWQgc2V0RmFtaWx5KGNvbnN0
IEZvbnRGYW1pbHkmIGZhbWlseSkgeyBtX2ZhbWlseUxpc3QgPSBmYW1pbHk7IH0KICAgICB2b2lk
IHNldENvbXB1dGVkU2l6ZShmbG9hdCBzKSB7IG1fY29tcHV0ZWRTaXplID0gczsgfQpAQCAtMTEz
LDYgKzExNSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZvbnRTbW9vdGhpbmcoRm9udFNtb290
aGluZ01vZGUgc21vb3RoaW5nKSB7IG1fZm9udFNtb290aGluZyA9IHNtb290aGluZzsgfQogICAg
IHZvaWQgc2V0VGV4dFJlbmRlcmluZ01vZGUoVGV4dFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nKSB7
IG1fdGV4dFJlbmRlcmluZyA9IHJlbmRlcmluZzsgfQogICAgIHZvaWQgc2V0SXNTcGVjaWZpZWRG
b250KGJvb2wgaXNTcGVjaWZpZWRGb250KSB7IG1faXNTcGVjaWZpZWRGb250ID0gaXNTcGVjaWZp
ZWRGb250OyB9CisgICAgdm9pZCBzZXRJc1ZlcnRpY2FsTGF5b3V0KGJvb2wgaXNWZXJ0aWNhbExh
eW91dCkgeyBtX2lzVmVydGljYWxMYXlvdXQgPSBpc1ZlcnRpY2FsTGF5b3V0OyB9CiAKIHByaXZh
dGU6CiAgICAgRm9udEZhbWlseSBtX2ZhbWlseUxpc3Q7IC8vIFRoZSBsaXN0IG9mIGZvbnQgZmFt
aWxpZXMgdG8gYmUgdXNlZC4KQEAgLTEzOCw2ICsxNDEsNyBAQCBwcml2YXRlOgogICAgIHVuc2ln
bmVkIG1fZm9udFNtb290aGluZyA6IDI7IC8vIEZvbnRTbW9vdGhpbmdNb2RlCiAgICAgdW5zaWdu
ZWQgbV90ZXh0UmVuZGVyaW5nIDogMjsgLy8gVGV4dFJlbmRlcmluZ01vZGUKICAgICBib29sIG1f
aXNTcGVjaWZpZWRGb250IDogMTsgLy8gVHJ1ZSBpZiBhIHdlYiBwYWdlIHNwZWNpZmllcyBhIG5v
bi1nZW5lcmljIGZvbnQgZmFtaWx5IGFzIHRoZSBmaXJzdCBmb250IGZhbWlseS4KKyAgICBib29s
IG1faXNWZXJ0aWNhbExheW91dCA6IDE7IC8vIFRydWUgaWYgdGhlIHRleHQgaXMgZ29pbmcgdG8g
YmUgbGFpZCBvdXQgdmVydGljYWxseS4KIH07CiAKIGlubGluZSBib29sIEZvbnREZXNjcmlwdGlv
bjo6b3BlcmF0b3I9PShjb25zdCBGb250RGVzY3JpcHRpb24mIG90aGVyKSBjb25zdApAQCAtMTU1
LDcgKzE1OSw4IEBAIGlubGluZSBib29sIEZvbnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9PSgKICAg
ICAgICAgJiYgbV9rZXl3b3JkU2l6ZSA9PSBvdGhlci5tX2tleXdvcmRTaXplCiAgICAgICAgICYm
IG1fZm9udFNtb290aGluZyA9PSBvdGhlci5tX2ZvbnRTbW9vdGhpbmcKICAgICAgICAgJiYgbV90
ZXh0UmVuZGVyaW5nID09IG90aGVyLm1fdGV4dFJlbmRlcmluZwotICAgICAgICAmJiBtX2lzU3Bl
Y2lmaWVkRm9udCA9PSBvdGhlci5tX2lzU3BlY2lmaWVkRm9udDsKKyAgICAgICAgJiYgbV9pc1Nw
ZWNpZmllZEZvbnQgPT0gb3RoZXIubV9pc1NwZWNpZmllZEZvbnQKKyAgICAgICAgJiYgbV9pc1Zl
cnRpY2FsTGF5b3V0ID09IG90aGVyLm1faXNWZXJ0aWNhbExheW91dDsKIH0KIAogfQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAJKHJldmlzaW9u
IDY5NjM0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgU2ltcGxlRm9udERhdGE6OlNpbXBsZUZv
bnREYXRhKGNvbnN0IEZvbgogCiAjaWYgRU5BQkxFKFNWR19GT05UUykKIFNpbXBsZUZvbnREYXRh
OjpTaW1wbGVGb250RGF0YShQYXNzT3duUHRyPFNWR0ZvbnREYXRhPiBzdmdGb250RGF0YSwgaW50
IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMpCi0gICAgOiBt
X3BsYXRmb3JtRGF0YShGb250UGxhdGZvcm1EYXRhKHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRo
ZXRpY0l0YWxpYykpCisgICAgOiBtX3BsYXRmb3JtRGF0YShGb250UGxhdGZvcm1EYXRhKHNpemUs
IHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgZmFsc2UpKQogICAgICwgbV90cmVhdEFz
Rml4ZWRQaXRjaChmYWxzZSkKICAgICAsIG1fc3ZnRm9udERhdGEoc3ZnRm9udERhdGEpCiAgICAg
LCBtX2lzQ3VzdG9tRm9udCh0cnVlKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9U
eXBlc2V0dGluZ0ZlYXR1cmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9UeXBlc2V0dGluZ0ZlYXR1cmVzLmgJKHJldmlzaW9uIDY5NjM0KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9UeXBlc2V0dGluZ0ZlYXR1cmVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDYgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGVudW0gVHlwZXNldHRpbmdG
ZWF0dXJlIHsKICAgICAgICAgS2VybmluZyA9IDEgPDwgMCwKICAgICAgICAgTGlnYXR1cmVzID0g
MSA8PCAxLAorICAgICAgICBWZXJ0aWNhbExheW91dCA9IDEgPDwgMiwKICAgICB9OwogCiAgICAg
dHlwZWRlZiB1bnNpZ25lZCBUeXBlc2V0dGluZ0ZlYXR1cmVzOwpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuY3BwCShyZXZpc2lvbiA2OTYzNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4
LDcgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogICAgIGNhaXJv
X2ZvbnRfZmFjZV9kZXN0cm95KG1fZm9udEZhY2UpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZv
bnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9s
ZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250
Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQs
IGJvb2wgaXRhbGljLCBib29sLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICByZXR1cm4gRm9u
dFBsYXRmb3JtRGF0YShtX2ZvbnRGYWNlLCBzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5NjM0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4
LDcgKzM4LDcgQEAgc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgOiBOb25jb3B5YQogcHVi
bGljOgogICAgIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEoRlRfRmFjZSwgU2hhcmVkQnVmZmVyKik7
CiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKLSAgICBGb250UGxhdGZvcm1EYXRhIGZv
bnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5k
ZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBm
b250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBib29sIGlz
VmVydGljYWxMYXlvdXQgPSBmYWxzZSwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJp
bmdNb2RlKTsKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsK
IAogcHJpdmF0ZToKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBs
YXRmb3JtRGF0YUZyZWVUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAJKHJldmlzaW9uIDY5NjM0
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJl
ZVR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsNyArMTE1LDcgQEAgRm9udFBsYXRmb3Jt
RGF0YTo6Rm9udFBsYXRmb3JtRGF0YShGY1BhdAogICAgIH0KIH0KIAotRm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKQor
Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQs
IGJvb2wgaXRhbGljLCBib29sKQogICAgIDogbV9mYWxsYmFja3MoMCkKICAgICAsIG1fc2l6ZShz
aXplKQogICAgICwgbV9zeW50aGV0aWNCb2xkKGJvbGQpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBl
LmgJKHJldmlzaW9uIDY5NjM0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9G
b250UGxhdGZvcm1EYXRhRnJlZVR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUsNyBA
QCBwdWJsaWM6CiAKICAgICBGb250UGxhdGZvcm1EYXRhKEZjUGF0dGVybiosIGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY2Fpcm9fZm9udF9mYWNlX3QqIGZv
bnRGYWNlLCBmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKTsKLSAgICBGb250UGxh
dGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMpOworICAgIEZvbnRQ
bGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgYm9vbCBpc1Zl
cnRpY2FsTGF5b3V0ID0gZmFsc2UpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBs
YXRmb3JtRGF0YSYpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0
YSYsIGZsb2F0IHNpemUpOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0Zv
bnRQbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ZvbnRQbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNjk2MzQpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ZvbnRQbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNDks
NyArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgRm9udFBsYXRmb3JtRGF0YShIRk9OVCwg
ZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUsIGJvb2wgdXNlR0RJKTsKLSAgICBG
b250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlKTsKKyAg
ICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlLCBi
b29sIGlzVmVydGljYWxMYXlvdXQgPSBmYWxzZSk7CiAKICAgICBGb250UGxhdGZvcm1EYXRhKEhG
T05ULCBDR0ZvbnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlLCBib29s
IHVzZUdESSk7CiAgICAgfkZvbnRQbGF0Zm9ybURhdGEoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUNocm9taXVtV2luLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRQbGF0Zm9y
bURhdGFDaHJvbWl1bVdpbi5jcHAJKHJldmlzaW9uIDY5NjM0KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhQ2hyb21pdW1XaW4uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Niw3ICs2Niw3IEBAIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9y
bURhdGEoSEZPTlQKIH0KIAogLy8gRklYTUU6IHRoaXMgY29uc3RydWN0b3IgaXMgbmVlZGVkIGZv
ciBTVkcgZm9udHMgYnV0IGRvZXNuJ3Qgc2VlbSB0byBkbyBtdWNoCi1Gb250UGxhdGZvcm1EYXRh
OjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlKQor
Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQs
IGJvb2wgb2JsaXF1ZSwgYm9vbCkKICAgICA6IG1fZm9udCgwKQogICAgICwgbV9zaXplKHNpemUp
CiAgICAgLCBtX3NjcmlwdENhY2hlKDApCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ZvbnRQbGF0Zm9ybURhdGFDaHJvbWl1bVdpbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUNocm9taXVt
V2luLmgJKHJldmlzaW9uIDY5NjM0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Gb250UGxhdGZvcm1EYXRhQ2hyb21pdW1XaW4uaAkod29ya2luZyBjb3B5KQpAQCAtNTcs
NyArNTcsNyBAQCBwdWJsaWM6CiAgICAgRm9udFBsYXRmb3JtRGF0YShXVEY6Okhhc2hUYWJsZURl
bGV0ZWRWYWx1ZVR5cGUpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoKTsKICAgICBGb250UGxhdGZv
cm1EYXRhKEhGT05ULCBmbG9hdCBzaXplKTsKLSAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNp
emUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlKTsKKyAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0
IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlLCBib29sIGlzVmVydGljYWxMYXlvdXQgPSBm
YWxzZSk7CiAgICAgRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJik7CiAK
ICAgICBGb250UGxhdGZvcm1EYXRhJiBvcGVyYXRvcj0oY29uc3QgRm9udFBsYXRmb3JtRGF0YSYp
OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1E
YXRhTGludXguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0ZvbnRQbGF0Zm9ybURhdGFMaW51eC5oCShyZXZpc2lvbiA2OTYzNCkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUxpbnV4LmgJKHdvcmtp
bmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgICAgICAsIG1fZmFrZUl0YWxp
YyhmYWxzZSkKICAgICAgICAgeyB9CiAKLSAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHRleHRT
aXplLCBib29sIGZha2VCb2xkLCBib29sIGZha2VJdGFsaWMpCisgICAgRm9udFBsYXRmb3JtRGF0
YShmbG9hdCB0ZXh0U2l6ZSwgYm9vbCBmYWtlQm9sZCwgYm9vbCBmYWtlSXRhbGljLCBib29sIGlz
VmVydGljYWxMYXlvdXQgPSBmYWxzZSkKICAgICAgICAgOiBtX3R5cGVmYWNlKDApCiAgICAgICAg
ICwgbV90ZXh0U2l6ZSh0ZXh0U2l6ZSkKICAgICAgICAgLCBtX2Zha2VCb2xkKGZha2VCb2xkKQpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZv
cm1EYXRhLmgJKHJldmlzaW9uIDY5NjM0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9Gb250UGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDkgKzU4LDEwIEBA
IGlubGluZSBDVEZvbnRSZWYgdG9DVEZvbnRSZWYoTlNGb250ICpuc0YKIAogY2xhc3MgRm9udFBs
YXRmb3JtRGF0YSB7CiAgIHB1YmxpYzoKLSAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUs
IGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlKQorICAgIEZvbnRQbGF0
Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09i
bGlxdWUsIGJvb2wgaXNWZXJ0aWNhbExheW91dCA9IGZhbHNlKQogICAgICAgICA6IG1fc3ludGhl
dGljQm9sZChzeW50aGV0aWNCb2xkKQogICAgICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50
aGV0aWNPYmxpcXVlKQorICAgICAgICAsIG1faXNWZXJ0aWNhbExheW91dChpc1ZlcnRpY2FsTGF5
b3V0KQogICAgICAgICAsIG1fYXRzdUZvbnRJRCgwKQogICAgICAgICAsIG1fc2l6ZShzaXplKQog
ICAgICAgICAsIG1fZm9udCgwKQpAQCAtNzEsMTEgKzcyLDEyIEBAIGNsYXNzIEZvbnRQbGF0Zm9y
bURhdGEgewogICAgIHsKICAgICB9CiAKLSAgICBGb250UGxhdGZvcm1EYXRhKE5TRm9udCAqbnNG
b250LCBib29sIHN5bnRoZXRpY0JvbGQgPSBmYWxzZSwgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0g
ZmFsc2UpOworICAgIEZvbnRQbGF0Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3ludGhl
dGljQm9sZCA9IGZhbHNlLCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwgYm9vbCBpc1Zl
cnRpY2FsTGF5b3V0ID0gZmFsc2UpOwogICAgIAotICAgIEZvbnRQbGF0Zm9ybURhdGEoQ0dGb250
UmVmIGNnRm9udCwgQVRTVUZvbnRJRCBmb250SUQsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGlj
Qm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlKQorICAgIEZvbnRQbGF0Zm9ybURhdGEoQ0dGb250
UmVmIGNnRm9udCwgQVRTVUZvbnRJRCBmb250SUQsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGlj
Qm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBib29sIGlzVmVydGljYWxMYXlvdXQgPSBmYWxz
ZSkKICAgICAgICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkKICAgICAgICAgLCBt
X3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGljT2JsaXF1ZSkKKyAgICAgICAgLCBtX2lzVmVydGlj
YWxMYXlvdXQoaXNWZXJ0aWNhbExheW91dCkKICAgICAgICAgLCBtX2F0c3VGb250SUQoZm9udElE
KQogICAgICAgICAsIG1fc2l6ZShzaXplKQogICAgICAgICAsIG1fZm9udCgwKQpAQCAtOTQsOSAr
OTYsMTEgQEAgY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiAgICAgZmxvYXQgc2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc2l6ZTsgfQogICAgIGJvb2wgc3ludGhldGljQm9sZCgpIGNvbnN0IHsgcmV0
dXJuIG1fc3ludGhldGljQm9sZDsgfQogICAgIGJvb2wgc3ludGhldGljT2JsaXF1ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc3ludGhldGljT2JsaXF1ZTsgfQorICAgIGJvb2wgaXNWZXJ0aWNhbExheW91
dCgpIGNvbnN0IHsgcmV0dXJuIG1faXNWZXJ0aWNhbExheW91dDsgfQogCiAgICAgYm9vbCBtX3N5
bnRoZXRpY0JvbGQ7CiAgICAgYm9vbCBtX3N5bnRoZXRpY09ibGlxdWU7CisgICAgYm9vbCBtX2lz
VmVydGljYWxMYXlvdXQ7CiAKICAgICBBVFNVRm9udElEIG1fYXRzdUZvbnRJRDsKICAgICBmbG9h
dCBtX3NpemU7CkBAIC0xMDQsNyArMTA4LDcgQEAgY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiAg
ICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV9mb250ICE9
IDAgfHwgbV9jZ0ZvbnQgPT0gMCk7Ci0gICAgICAgIHVpbnRwdHJfdCBoYXNoQ29kZXNbMl0gPSB7
ICh1aW50cHRyX3QpbV9mb250LCBtX3N5bnRoZXRpY0JvbGQgPDwgMSB8IG1fc3ludGhldGljT2Js
aXF1ZSB9OworICAgICAgICB1aW50cHRyX3QgaGFzaENvZGVzWzJdID0geyAodWludHB0cl90KW1f
Zm9udCwgbV9pc1ZlcnRpY2FsTGF5b3V0IDw8IDIgfCBtX3N5bnRoZXRpY0JvbGQgPDwgMSB8IG1f
c3ludGhldGljT2JsaXF1ZSB9OwogICAgICAgICByZXR1cm4gU3RyaW5nSW1wbDo6Y29tcHV0ZUhh
c2gocmVpbnRlcnByZXRfY2FzdDxVQ2hhcio+KGhhc2hDb2RlcyksIHNpemVvZihoYXNoQ29kZXMp
IC8gc2l6ZW9mKFVDaGFyKSk7CiAgICAgfQogCkBAIC0xMTMsNyArMTE3LDcgQEAgY2xhc3MgRm9u
dFBsYXRmb3JtRGF0YSB7CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZvbnRQbGF0Zm9ybURh
dGEmIG90aGVyKSBjb25zdAogICAgIHsgCiAgICAgICAgIHJldHVybiBtX2ZvbnQgPT0gb3RoZXIu
bV9mb250ICYmIG1fc3ludGhldGljQm9sZCA9PSBvdGhlci5tX3N5bnRoZXRpY0JvbGQgJiYgbV9z
eW50aGV0aWNPYmxpcXVlID09IG90aGVyLm1fc3ludGhldGljT2JsaXF1ZSAmJiAKLSAgICAgICAg
ICAgICAgIG1fY2dGb250ID09IG90aGVyLm1fY2dGb250ICYmIG1fc2l6ZSA9PSBvdGhlci5tX3Np
emUgJiYgbV9hdHN1Rm9udElEID09IG90aGVyLm1fYXRzdUZvbnRJRDsKKyAgICAgICAgICAgICAg
IG1fY2dGb250ID09IG90aGVyLm1fY2dGb250ICYmIG1fc2l6ZSA9PSBvdGhlci5tX3NpemUgJiYg
bV9hdHN1Rm9udElEID09IG90aGVyLm1fYXRzdUZvbnRJRCAmJiBtX2lzVmVydGljYWxMYXlvdXQg
PT0gb3RoZXIubV9pc1ZlcnRpY2FsTGF5b3V0OwogICAgIH0KIAogICAgIE5TRm9udCAqZm9udCgp
IGNvbnN0IHsgcmV0dXJuIG1fZm9udDsgfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0JKHJldmlzaW9u
IDY5NjM0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1E
YXRhQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ0LDkgKzQ0LDEwIEBAIHZvaWQgRm9udFBs
YXRmb3JtRGF0YTo6bG9hZEZvbnQoTlNGb250KiAKIH0KICNlbmRpZiAgLy8gUExBVEZPUk0oTUFD
KQogCi1Gb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKE5TRm9udCAqbnNGb250LCBi
b29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSkKK0ZvbnRQbGF0Zm9ybURh
dGE6OkZvbnRQbGF0Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3ludGhldGljQm9sZCwg
Ym9vbCBzeW50aGV0aWNPYmxpcXVlLCBib29sIGlzVmVydGljYWxMYXlvdXQpCiAgICAgOiBtX3N5
bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkKICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50
aGV0aWNPYmxpcXVlKQorICAgICwgbV9pc1ZlcnRpY2FsTGF5b3V0KGlzVmVydGljYWxMYXlvdXQp
CiAgICAgLCBtX2ZvbnQobnNGb250KQogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpCiAgICAgLy8gRklYTUU6IENocm9taXVtOiBUaGUgZm9sbG93aW5nIGNvZGUg
aXNuJ3QgY29ycmVjdCBmb3IgdGhlIENocm9taXVtIHBvcnQgc2luY2UgdGhlIHNhbmRib3ggbWln
aHQKQEAgLTgzLDYgKzg0LDcgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShj
b25zdAogICAgIG1fY2dGb250ID0gZi5tX2NnRm9udDsKICAgICBtX2F0c3VGb250SUQgPSBmLm1f
YXRzdUZvbnRJRDsKICAgICBtX2lzQ29sb3JCaXRtYXBGb250ID0gZi5tX2lzQ29sb3JCaXRtYXBG
b250OworICAgIG1faXNWZXJ0aWNhbExheW91dCA9IGYubV9pc1ZlcnRpY2FsTGF5b3V0OwogI2lm
IFVTRShDT1JFX1RFWFQpCiAgICAgbV9DVEZvbnQgPSBmLm1fQ1RGb250OwogI2VuZGlmCkBAIC0x
MTIsNiArMTE0LDcgQEAgY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgRm9udFBsYXRmb3JtRGF0YQog
ICAgICAgICBDRlJlbGVhc2UobV9mb250KTsKICAgICBtX2ZvbnQgPSBmLm1fZm9udDsKICAgICBt
X2lzQ29sb3JCaXRtYXBGb250ID0gZi5tX2lzQ29sb3JCaXRtYXBGb250OworICAgIG1faXNWZXJ0
aWNhbExheW91dCA9IGYubV9pc1ZlcnRpY2FsTGF5b3V0OwogI2lmIFVTRShDT1JFX1RFWFQpCiAg
ICAgbV9DVEZvbnQgPSBmLm1fQ1RGb250OwogI2VuZGlmCkBAIC0xODcsNyArMTkwLDggQEAgQ1RG
b250UmVmIEZvbnRQbGF0Zm9ybURhdGE6OmN0Rm9udCgpIGNvbgogU3RyaW5nIEZvbnRQbGF0Zm9y
bURhdGE6OmRlc2NyaXB0aW9uKCkgY29uc3QKIHsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+
IGNnRm9udERlc2NyaXB0aW9uKEFkb3B0Q0YsIENGQ29weURlc2NyaXB0aW9uKGNnRm9udCgpKSk7
Ci0gICAgcmV0dXJuIFN0cmluZyhjZ0ZvbnREZXNjcmlwdGlvbi5nZXQoKSkgKyAiICIgKyBTdHJp
bmc6Om51bWJlcihtX3NpemUpICsgKG1fc3ludGhldGljQm9sZCA/ICIgc3ludGhldGljIGJvbGQi
IDogIiIpICsgKG1fc3ludGhldGljT2JsaXF1ZSA/ICIgc3ludGhldGljIG9ibGlxdWUiIDogIiIp
OworICAgIHJldHVybiBTdHJpbmcoY2dGb250RGVzY3JpcHRpb24uZ2V0KCkpICsgIiAiICsgU3Ry
aW5nOjpudW1iZXIobV9zaXplKQorICAgICAgICAgICAgKyAobV9zeW50aGV0aWNCb2xkID8gIiBz
eW50aGV0aWMgYm9sZCIgOiAiIikgKyAobV9zeW50aGV0aWNPYmxpcXVlID8gIiBzeW50aGV0aWMg
b2JsaXF1ZSIgOiAiIikgKyAobV9pc1ZlcnRpY2FsTGF5b3V0ID8gIiB2ZXJ0aWNhbCBsYXlvdXQi
IDogIiIpOwogfQogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFQYW5nby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEN1c3RvbVBsYXRmb3JtRGF0YVBhbmdvLmNwcAkocmV2
aXNpb24gNjk2MzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhUGFuZ28uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBAIEZv
bnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGYKIHsKIH0KIAotRm9udFBsYXRm
b3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXpl
LCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9y
bURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwg
Ym9vbCBib2xkLCBib29sIGl0YWxpYywgYm9vbCwgRm9udFJlbmRlcmluZ01vZGUpCiB7CiAgICAg
cmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9mb250RmFjZSwgc2l6ZSwgYm9sZCwgaXRhbGljKTsK
IH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRQbGF0Zm9ybURhdGFQ
YW5nby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9u
dFBsYXRmb3JtRGF0YVBhbmdvLmNwcAkocmV2aXNpb24gNjk2MzQpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2d0ay9Gb250UGxhdGZvcm1EYXRhUGFuZ28uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjcsNyArMTI3LDcgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShj
b25zdAogICAgIHBhbmdvX2ZvbnRfZGVzY3JpcHRpb25fZnJlZShkZXNjcmlwdGlvbik7CiB9CiAK
LUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xk
LCBib29sIGl0YWxpYykKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQg
c2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgYm9vbCkKICAgICA6IG1fY29udGV4dCgwKQog
ICAgICwgbV9mb250KDApCiAgICAgLCBtX3NpemUoc2l6ZSkKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3RrL0ZvbnRQbGF0Zm9ybURhdGFQYW5nby5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRQbGF0Zm9ybURhdGFQYW5nby5oCShyZXZp
c2lvbiA2OTYzNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRQbGF0Zm9y
bURhdGFQYW5nby5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKIAog
ICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbWlj
U3RyaW5nJiBmYW1pbHkpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY2Fpcm9fZm9udF9mYWNlX3Qq
IGZvbnRGYWNlLCBmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKTsKLSAgICBGb250
UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMpOworICAgIEZv
bnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgYm9vbCBp
c1ZlcnRpY2FsTGF5b3V0ID0gZmFsc2UpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9u
dFBsYXRmb3JtRGF0YSYpOwogICAgIH5Gb250UGxhdGZvcm1EYXRhKCk7CiAKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmNwcAkocmV2aXNpb24gNjk2MzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MSw3ICszMSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGYKIHsK
IH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZv
cm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9k
ZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3Jt
RGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgYm9vbCwgRm9udFJlbmRlcmlu
Z01vZGUpCiB7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwgYm9sZCwgaXRhbGlj
KTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFp
a3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTYzNCkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBz
dGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIAotICAgICAgICBGb250
UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBp
dGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgICAg
IEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBi
b29sIGl0YWxpYywgYm9vbCBpc1ZlcnRpY2FsTGF5b3V0ID0gZmFsc2UsIEZvbnRSZW5kZXJpbmdN
b2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAgICAgfTsKIAogICAgIEZvbnRDdXN0b21QbGF0
Zm9ybURhdGEqIGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKik7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRQbGF0Zm9ybURhdGEuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRQbGF0Zm9y
bURhdGEuaAkocmV2aXNpb24gNjk2MzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hh
aWt1L0ZvbnRQbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICB7IH0KIAogICAgICAgICBGb250UGxhdGZv
cm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5
KTsKLSAgICAgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wg
b2JsaXF1ZSk7CisgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xk
LCBib29sIG9ibGlxdWUsIGJvb2wgaXNWZXJ0aWNhbExheW91dCA9IGZhbHNlKTsKICAgICAgICAg
Rm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJik7CiAKICAgICAgICAgfkZv
bnRQbGF0Zm9ybURhdGEoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDYWNoZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9Gb250Q2FjaGVNYWMubW0JKHJldmlzaW9uIDY5NjM0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNDIsNyArMTQy
LDggQEAgY29uc3QgU2ltcGxlRm9udERhdGEqIEZvbnRDYWNoZTo6Z2V0Rm9udAogCiAgICAgRm9u
dFBsYXRmb3JtRGF0YSBhbHRlcm5hdGVGb250KHN1YnN0aXR1dGVGb250LCAKICAgICAgICAgIWZv
bnQuaXNQbGF0Zm9ybUZvbnQoKSAmJiBpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKHdlaWdodCkgJiYg
IWlzQXBwS2l0Rm9udFdlaWdodEJvbGQoc3Vic3RpdHV0ZUZvbnRXZWlnaHQpLAotICAgICAgICAh
Zm9udC5pc1BsYXRmb3JtRm9udCgpICYmICh0cmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkgJiYg
IShzdWJzdGl0dXRlRm9udFRyYWl0cyAmIE5TRm9udEl0YWxpY1RyYWl0KSk7CisgICAgICAgICFm
b250LmlzUGxhdGZvcm1Gb250KCkgJiYgKHRyYWl0cyAmIE5TRm9udEl0YWxpY1RyYWl0KSAmJiAh
KHN1YnN0aXR1dGVGb250VHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQpLAorICAgICAgICBwbGF0
Zm9ybURhdGEubV9pc1ZlcnRpY2FsTGF5b3V0KTsKICAgICByZXR1cm4gZ2V0Q2FjaGVkRm9udERh
dGEoJmFsdGVybmF0ZUZvbnQpOwogfQogCkBAIC0yMTAsNyArMjExLDcgQEAgRm9udFBsYXRmb3Jt
RGF0YSogRm9udENhY2hlOjpjcmVhdGVGb250UAogICAgIGJvb2wgc3ludGhldGljQm9sZCA9IGlz
QXBwS2l0Rm9udFdlaWdodEJvbGQod2VpZ2h0KSAmJiAhaXNBcHBLaXRGb250V2VpZ2h0Qm9sZChh
Y3R1YWxXZWlnaHQpOwogICAgIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9ICh0cmFpdHMgJiBOU0Zv
bnRJdGFsaWNUcmFpdCkgJiYgIShhY3R1YWxUcmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCk7CiAK
LSAgICByZXR1cm4gbmV3IEZvbnRQbGF0Zm9ybURhdGEocGxhdGZvcm1Gb250LCBzeW50aGV0aWNC
b2xkLCBzeW50aGV0aWNPYmxpcXVlKTsKKyAgICByZXR1cm4gbmV3IEZvbnRQbGF0Zm9ybURhdGEo
cGxhdGZvcm1Gb250LCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3Jp
cHRpb24uaXNWZXJ0aWNhbExheW91dCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0
YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY5NjM0KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM4LDkgKzM4LDkgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0
ZgogICAgIENHRm9udFJlbGVhc2UobV9jZ0ZvbnQpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZv
bnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9s
ZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250
Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQs
IGJvb2wgaXRhbGljLCBib29sIGlzVmVydGljYWxMYXlvdXQsIEZvbnRSZW5kZXJpbmdNb2RlKQog
ewotICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKG1fY2dGb250LCAoQVRTVUZvbnRJRCltX2F0
c0ZvbnQsIHNpemUsIGJvbGQsIGl0YWxpYyk7CisgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEo
bV9jZ0ZvbnQsIChBVFNVRm9udElEKW1fYXRzRm9udCwgc2l6ZSwgYm9sZCwgaXRhbGljLCBpc1Zl
cnRpY2FsTGF5b3V0KTsKIH0KIAogRm9udEN1c3RvbVBsYXRmb3JtRGF0YSogY3JlYXRlRm9udEN1
c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXIqIGJ1ZmZlcikKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJ
KHJldmlzaW9uIDY5NjM0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBAIHN0cnVj
dCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKICAgICB7fQogICAgIH5Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhKCk7CiAKLSAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURh
dGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0g
Tm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1E
YXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBib29sIGlzVmVydGljYWxMYXlv
dXQgPSBmYWxzZSwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKIAog
ICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwogCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR2x5cGhQYWdlVHJlZU5v
ZGVNYWMuY3BwCShyZXZpc2lvbiA2OTYzNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0dseXBoUGFnZVRyZWVOb2RlTWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTUgKzQw
LDY3IEBAIGJvb2wgR2x5cGhQYWdlOjpmaWxsKHVuc2lnbmVkIG9mZnNldCwgdW4KICAgICBib29s
IGhhdmVHbHlwaHMgPSBmYWxzZTsKIAogI2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgotICAgIFZl
Y3RvcjxDR0dseXBoLCA1MTI+IGdseXBocyhidWZmZXJMZW5ndGgpOwotICAgIHdrR2V0R2x5cGhz
Rm9yQ2hhcmFjdGVycyhmb250RGF0YS0+cGxhdGZvcm1EYXRhKCkuY2dGb250KCksIGJ1ZmZlciwg
Z2x5cGhzLmRhdGEoKSwgYnVmZmVyTGVuZ3RoKTsKLQotICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICBpZiAoIWdseXBoc1tpXSkKLSAgICAgICAgICAg
IHNldEdseXBoRGF0YUZvckluZGV4KG9mZnNldCArIGksIDAsIDApOwotICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgIHNldEdseXBoRGF0YUZvckluZGV4KG9mZnNldCArIGksIGdseXBoc1tpXSwg
Zm9udERhdGEpOwotICAgICAgICAgICAgaGF2ZUdseXBocyA9IHRydWU7CisgICAgaWYgKCFmb250
RGF0YS0+cGxhdGZvcm1EYXRhKCkuaXNWZXJ0aWNhbExheW91dCgpKSB7CisgICAgICAgIFZlY3Rv
cjxDR0dseXBoLCA1MTI+IGdseXBocyhidWZmZXJMZW5ndGgpOworICAgICAgICB3a0dldEdseXBo
c0ZvckNoYXJhY3RlcnMoZm9udERhdGEtPnBsYXRmb3JtRGF0YSgpLmNnRm9udCgpLCBidWZmZXIs
IGdseXBocy5kYXRhKCksIGJ1ZmZlckxlbmd0aCk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKCFnbHlwaHNbaV0pCisgICAg
ICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaSwgMCwgMCk7CisgICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChvZmZz
ZXQgKyBpLCBnbHlwaHNbaV0sIGZvbnREYXRhKTsKKyAgICAgICAgICAgICAgICBoYXZlR2x5cGhz
ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAg
IC8vIFdlIGFzayBDb3JlVGV4dCBmb3IgcG9zc2libGUgdmVydGljYWwgdmFyaWFudCBnbHlwaHMK
KyAgICAgICAgc3RhdGljIGNvbnN0IGludCBsaWdhdHVyZXNOb3RBbGxvd2VkVmFsdWUgPSAwOwor
ICAgICAgICBzdGF0aWMgQ0ZOdW1iZXJSZWYgbGlnYXR1cmVzTm90QWxsb3dlZCA9IENGTnVtYmVy
Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlckludFR5cGUsICZsaWdhdHVyZXNO
b3RBbGxvd2VkVmFsdWUpOworICAgICAgICBzdGF0aWMgY29uc3Qgdm9pZCoga2V5c1tdID0geyAg
IGtDVEZvbnRBdHRyaWJ1dGVOYW1lLCAgICAgICAgICAgICAgIGtDVExpZ2F0dXJlQXR0cmlidXRl
TmFtZSwgICBrQ1RWZXJ0aWNhbEZvcm1zQXR0cmlidXRlTmFtZSB9OworICAgICAgICBjb25zdCB2
b2lkKiB2YWx1ZXNbXSA9IHsgICAgICAgIGZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKS5jdEZvbnQo
KSwgIGxpZ2F0dXJlc05vdEFsbG93ZWQsICAgICAgICBrQ0ZCb29sZWFuVHJ1ZSB9OworICAgICAg
ICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBhdHRyaWJ1dGVEaWN0aW9uYXJ5KEFkb3B0Q0Ys
IENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrZXlzLCB2YWx1ZXMsIHNp
emVvZihrZXlzKSAvIHNpemVvZigqa2V5cyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmtDRkNvcHlTdHJpbmdEaWN0aW9u
YXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworCisg
ICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZm9udE5hbWUoQWRvcHRDRiwgQ1RGb250Q29w
eVBvc3RTY3JpcHROYW1lKGZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSkpOworICAg
ICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHN0cmluZyhBZG9wdENGLCBDRlN0cmluZ0NyZWF0
ZVdpdGhDaGFyYWN0ZXJzTm9Db3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlciwgYnVmZmVy
TGVuZ3RoLCBrQ0ZBbGxvY2F0b3JOdWxsKSk7CisgICAgICAgIFJldGFpblB0cjxDRkF0dHJpYnV0
ZWRTdHJpbmdSZWY+IGF0dHJpYnV0ZWRTdHJpbmcoQWRvcHRDRiwgQ0ZBdHRyaWJ1dGVkU3RyaW5n
Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHN0cmluZy5nZXQoKSwgYXR0cmlidXRlRGljdGlv
bmFyeS5nZXQoKSkpOworICAgICAgICBSZXRhaW5QdHI8Q1RMaW5lUmVmPiBsaW5lKEFkb3B0Q0Ys
IENUTGluZUNyZWF0ZVdpdGhBdHRyaWJ1dGVkU3RyaW5nKGF0dHJpYnV0ZWRTdHJpbmcuZ2V0KCkp
KTsKKworICAgICAgICBDRkFycmF5UmVmIHJ1bkFycmF5ID0gQ1RMaW5lR2V0R2x5cGhSdW5zKGxp
bmUuZ2V0KCkpOworICAgICAgICBDRkluZGV4IHJ1bkNvdW50ID0gQ0ZBcnJheUdldENvdW50KHJ1
bkFycmF5KTsKKworICAgICAgICAvLyBJbml0aWFsaXplIGdseXBoIGVudHJpZXMKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyArK2luZGV4KQorICAgICAg
ICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaW5kZXgsIDAsIDApOworCisgICAg
ICAgIGJvb2wgZG9uZSA9IGZhbHNlOworICAgICAgICBmb3IgKENGSW5kZXggciA9IDA7IHIgPCBy
dW5Db3VudCAmJiAhZG9uZSA7IHIrKykgeworICAgICAgICAgICAgLy8gQ1RMaW5lIGNvdWxkIG1h
cCBjaGFyYWN0ZXJzIG92ZXIgbXVsdGlwbGUgZm9udHMgdXNpbmcgaXRzIG93biBmb250IGZhbGxi
YWNrIGxpc3QuCisgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHBpY2sgcnVucyB0aGF0IHVzZSB0
aGUgZXhhY3QgZm9udCB3ZSBuZWVkLCBpLmUuLCBmb250RGF0YS0+cGxhdGZvcm1EYXRhKCkuY3RG
b250KCkuCisgICAgICAgICAgICBDVFJ1blJlZiBjdFJ1biA9IHN0YXRpY19jYXN0PENUUnVuUmVm
PihDRkFycmF5R2V0VmFsdWVBdEluZGV4KHJ1bkFycmF5LCByKSk7CisgICAgICAgICAgICBBU1NF
UlQoQ0ZHZXRUeXBlSUQoY3RSdW4pID09IENUUnVuR2V0VHlwZUlEKCkpOworCisgICAgICAgICAg
ICBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcyA9IENUUnVuR2V0QXR0cmlidXRlcyhjdFJ1bik7
CisgICAgICAgICAgICBDVEZvbnRSZWYgcnVuRm9udCA9IHN0YXRpY19jYXN0PENURm9udFJlZj4o
Q0ZEaWN0aW9uYXJ5R2V0VmFsdWUoYXR0cmlidXRlcywga0NURm9udEF0dHJpYnV0ZU5hbWUpKTsK
KyAgICAgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcnVuRm9udE5hbWUoQWRvcHRDRiwg
Q1RGb250Q29weVBvc3RTY3JpcHROYW1lKHJ1bkZvbnQpKTsKKyAgICAgICAgICAgIGlmIChDRkVx
dWFsKGZvbnROYW1lLmdldCgpLCBydW5Gb250TmFtZS5nZXQoKSkpIHsKKyAgICAgICAgICAgICAg
ICAvLyBUaGlzIHJ1biB1c2VzIHRoZSBmb250IHdlIHdhbnQuIEV4dHJhY3QgZ2x5cGhzLgorICAg
ICAgICAgICAgICAgIENGSW5kZXggZ2x5cGhDb3VudCA9IENUUnVuR2V0R2x5cGhDb3VudChjdFJ1
bik7CisgICAgICAgICAgICAgICAgVmVjdG9yPENHR2x5cGgsIDUxMj4gZ2x5cGhzKHN0YXRpY19j
YXN0PHNpemVfdD4oZ2x5cGhDb3VudCkpOworICAgICAgICAgICAgICAgIENUUnVuR2V0R2x5cGhz
KGN0UnVuLCBDRlJhbmdlTWFrZSgwLCAwKSwgZ2x5cGhzLmRhdGEoKSk7CisgICAgICAgICAgICAg
ICAgVmVjdG9yPENGSW5kZXgsIDUxMj4gc3RyaW5nSW5kaWNlcyhzdGF0aWNfY2FzdDxzaXplX3Q+
KGdseXBoQ291bnQpKTsKKyAgICAgICAgICAgICAgICBDVFJ1bkdldFN0cmluZ0luZGljZXMoY3RS
dW4sIENGUmFuZ2VNYWtlKDAsIDApLCBzdHJpbmdJbmRpY2VzLmRhdGEoKSk7CisKKyAgICAgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZ2x5cGhDb3VudDsgKytpKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChzdHJpbmdJbmRpY2VzW2ldID49IGxlbmd0aCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoZ2x5
cGhzW2ldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChv
ZmZzZXQgKyBzdHJpbmdJbmRpY2VzW2ldLCBnbHlwaHNbaV0sIGZvbnREYXRhKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGhhdmVHbHlwaHMgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogI2Vs
c2UKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhQ29y
ZVRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1Np
bXBsZUZvbnREYXRhQ29yZVRleHQuY3BwCShyZXZpc2lvbiA2OTYzNCkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhQ29yZVRleHQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02MCwxNiArNjAsMjUgQEAgQ0ZEaWN0aW9uYXJ5UmVmIFNpbXBsZUZvbnREYXRhOjpn
ZXRDRlN0cgogICAgIGlmICghKHR5cGVzZXR0aW5nRmVhdHVyZXMgJiBLZXJuaW5nKSkgewogICAg
ICAgICBzdGF0aWMgY29uc3QgZmxvYXQga2VybmluZ0FkanVzdG1lbnRWYWx1ZSA9IDA7CiAgICAg
ICAgIHN0YXRpYyBDRk51bWJlclJlZiBrZXJuaW5nQWRqdXN0bWVudCA9IENGTnVtYmVyQ3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlckZsb2F0VHlwZSwgJmtlcm5pbmdBZGp1c3Rt
ZW50VmFsdWUpOwotICAgICAgICBzdGF0aWMgY29uc3Qgdm9pZCoga2V5c1dpdGhLZXJuaW5nRGlz
YWJsZWRbXSA9IHsga0NURm9udEF0dHJpYnV0ZU5hbWUsIGtDVEtlcm5BdHRyaWJ1dGVOYW1lLCBr
Q1RMaWdhdHVyZUF0dHJpYnV0ZU5hbWUgfTsKLSAgICAgICAgY29uc3Qgdm9pZCogdmFsdWVzV2l0
aEtlcm5pbmdEaXNhYmxlZFtdID0geyBwbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSwga2VybmluZ0Fk
anVzdG1lbnQsIGFsbG93TGlnYXR1cmVzCi0gICAgICAgICAgICA/IGxpZ2F0dXJlc0FsbG93ZWQg
OiBsaWdhdHVyZXNOb3RBbGxvd2VkIH07CisgICAgICAgIHN0YXRpYyBjb25zdCB2b2lkKiBrZXlz
V2l0aEtlcm5pbmdEaXNhYmxlZFtdID0geyAgICBrQ1RGb250QXR0cmlidXRlTmFtZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtD
VEtlcm5BdHRyaWJ1dGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAga0NUTGlnYXR1cmVBdHRyaWJ1dGVOYW1lLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0NU
VmVydGljYWxGb3Jtc0F0dHJpYnV0ZU5hbWUgfTsKKyAgICAgICAgY29uc3Qgdm9pZCogdmFsdWVz
V2l0aEtlcm5pbmdEaXNhYmxlZFtdID0geyAgICAgICAgIHBsYXRmb3JtRGF0YSgpLmN0Rm9udCgp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAga2VybmluZ0FkanVzdG1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd0xpZ2F0dXJlcyA/IGxpZ2F0dXJlc0Fs
bG93ZWQgOiBsaWdhdHVyZXNOb3RBbGxvd2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR5cGVzZXR0aW5nRmVhdHVyZXMgJiBW
ZXJ0aWNhbExheW91dCkgPyBrQ0ZCb29sZWFuVHJ1ZSA6IGtDRkJvb2xlYW5GYWxzZSB9OwogICAg
ICAgICBhdHRyaWJ1dGVzRGljdGlvbmFyeS5hZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZSgwLCBr
ZXlzV2l0aEtlcm5pbmdEaXNhYmxlZCwgdmFsdWVzV2l0aEtlcm5pbmdEaXNhYmxlZCwKICAgICAg
ICAgICAgIHNpemVvZihrZXlzV2l0aEtlcm5pbmdEaXNhYmxlZCkgLyBzaXplb2YoKmtleXNXaXRo
S2VybmluZ0Rpc2FibGVkKSwKICAgICAgICAgICAgICZrQ0ZDb3B5U3RyaW5nRGljdGlvbmFyeUtl
eUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICB9IGVs
c2UgewogICAgICAgICAvLyBCeSBvbWl0dGluZyB0aGUga0NUS2VybkF0dHJpYnV0ZU5hbWUgYXR0
cmlidXRlLCB3ZSBnZXQgQ29yZSBUZXh0J3Mgc3RhbmRhcmQga2VybmluZy4KLSAgICAgICAgc3Rh
dGljIGNvbnN0IHZvaWQqIGtleXNXaXRoS2VybmluZ0VuYWJsZWRbXSA9IHsga0NURm9udEF0dHJp
YnV0ZU5hbWUsIGtDVExpZ2F0dXJlQXR0cmlidXRlTmFtZSB9OwotICAgICAgICBjb25zdCB2b2lk
KiB2YWx1ZXNXaXRoS2VybmluZ0VuYWJsZWRbXSA9IHsgcGxhdGZvcm1EYXRhKCkuY3RGb250KCks
IGFsbG93TGlnYXR1cmVzID8gbGlnYXR1cmVzQWxsb3dlZCA6IGxpZ2F0dXJlc05vdEFsbG93ZWQg
fTsKKyAgICAgICAgc3RhdGljIGNvbnN0IHZvaWQqIGtleXNXaXRoS2VybmluZ0VuYWJsZWRbXSA9
IHsgICAgIGtDVEZvbnRBdHRyaWJ1dGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0NUTGlnYXR1cmVBdHRyaWJ1dGVOYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAga0NUVmVydGljYWxGb3Jtc0F0dHJpYnV0ZU5hbWUgfTsKKyAgICAgICAgY29uc3Qgdm9p
ZCogdmFsdWVzV2l0aEtlcm5pbmdFbmFibGVkW10gPSB7ICAgICAgICAgIHBsYXRmb3JtRGF0YSgp
LmN0Rm9udCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYWxsb3dMaWdhdHVyZXMgPyBsaWdhdHVyZXNBbGxvd2VkIDogbGlnYXR1
cmVzTm90QWxsb3dlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICh0eXBlc2V0dGluZ0ZlYXR1cmVzICYgVmVydGljYWxMYXlvdXQp
ID8ga0NGQm9vbGVhblRydWUgOiBrQ0ZCb29sZWFuRmFsc2UgfTsKICAgICAgICAgYXR0cmlidXRl
c0RpY3Rpb25hcnkuYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoMCwga2V5c1dpdGhLZXJuaW5n
RW5hYmxlZCwgdmFsdWVzV2l0aEtlcm5pbmdFbmFibGVkLAogICAgICAgICAgICAgc2l6ZW9mKGtl
eXNXaXRoS2VybmluZ0VuYWJsZWQpIC8gc2l6ZW9mKCprZXlzV2l0aEtlcm5pbmdFbmFibGVkKSwK
ICAgICAgICAgICAgICZrQ0ZDb3B5U3RyaW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5
cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCShyZXZpc2lvbiA2OTYzNCkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC00MTcsMTEgKzQxNyw5IEBAIEZsb2F0UmVjdCBTaW1wbGVGb250RGF0
YTo6cGxhdGZvcm1Cb3VuZHMKIHsKICAgICBGbG9hdFJlY3QgYm91bmRpbmdCb3g7CiAjaWZuZGVm
IEJVSUxESU5HX09OX1RJR0VSCi0gICAgQ0dSZWN0IGJveDsKLSAgICBDR0ZvbnRHZXRHbHlwaEJC
b3hlcyhwbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgJmdseXBoLCAxLCAmYm94KTsKLSAgICBmbG9h
dCBwb2ludFNpemUgPSBwbGF0Zm9ybURhdGEoKS5tX3NpemU7Ci0gICAgQ0dGbG9hdCBzY2FsZSA9
IHBvaW50U2l6ZSAvIHVuaXRzUGVyRW0oKTsKLSAgICBib3VuZGluZ0JveCA9IENHUmVjdEFwcGx5
QWZmaW5lVHJhbnNmb3JtKGJveCwgQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUoc2NhbGUsIC1z
Y2FsZSkpOworICAgIGJvdW5kaW5nQm94ID0gQ1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBo
cyhtX3BsYXRmb3JtRGF0YS5jdEZvbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgbV9wbGF0Zm9y
bURhdGEuaXNWZXJ0aWNhbExheW91dCgpID8ga0NURm9udFZlcnRpY2FsT3JpZW50YXRpb24gOiBr
Q1RGb250SG9yaXpvbnRhbE9yaWVudGF0aW9uLCAmZ2x5cGgsIE5VTEwsIDEpOworICAgIGJvdW5k
aW5nQm94LnNldFkoLWJvdW5kaW5nQm94LmJvdHRvbSgpKTsKICNlbHNlCiAgICAgLy8gRklYTUU6
IEN1c3RvbSBmb250cyBkb24ndCBoYXZlIE5TRm9udHMsIHNvIHRoaXMgZnVuY3Rpb24gZG9lc24n
dCBjb21wdXRlIGNvcnJlY3QgYm91bmRzIGZvciB0aGVzZSBvbiBUaWdlci4KICAgICBpZiAoIW1f
cGxhdGZvcm1EYXRhLmZvbnQoKSkKQEAgLTQzNywxNCArNDM1LDkgQEAgRmxvYXRSZWN0IFNpbXBs
ZUZvbnREYXRhOjpwbGF0Zm9ybUJvdW5kcwogCiBmbG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZv
cm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAogewotICAgIE5TRm9udCogZm9udCA9
IHBsYXRmb3JtRGF0YSgpLmZvbnQoKTsKLSAgICBmbG9hdCBwb2ludFNpemUgPSBwbGF0Zm9ybURh
dGEoKS5tX3NpemU7Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0gbSA9IENHQWZmaW5lVHJhbnNmb3Jt
TWFrZVNjYWxlKHBvaW50U2l6ZSwgcG9pbnRTaXplKTsKICAgICBDR1NpemUgYWR2YW5jZTsKLSAg
ICBpZiAoIXdrR2V0R2x5cGhUcmFuc2Zvcm1lZEFkdmFuY2VzKHBsYXRmb3JtRGF0YSgpLmNnRm9u
dCgpLCBmb250LCAmbSwgJmdseXBoLCAmYWR2YW5jZSkpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJV
bmFibGUgdG8gY2FjaGUgZ2x5cGggd2lkdGhzIGZvciAlQCAlZiIsIFtmb250IGRpc3BsYXlOYW1l
XSwgcG9pbnRTaXplKTsKLSAgICAgICAgYWR2YW5jZS53aWR0aCA9IDA7Ci0gICAgfQorICAgIENU
Rm9udEdldEFkdmFuY2VzRm9yR2x5cGhzKG1fcGxhdGZvcm1EYXRhLmN0Rm9udCgpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BsYXRmb3JtRGF0YS5pc1ZlcnRpY2FsTGF5b3V0
KCkgPyBrQ1RGb250VmVydGljYWxPcmllbnRhdGlvbiA6IGtDVEZvbnRIb3Jpem9udGFsT3JpZW50
YXRpb24sICZnbHlwaCwgJmFkdmFuY2UsIDEpOwogICAgIHJldHVybiBhZHZhbmNlLndpZHRoICsg
bV9zeW50aGV0aWNCb2xkT2Zmc2V0OwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNjk2
MzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBzdHJ1Y3QgRm9udEN1c3RvbVBs
YXRmb3JtRGF0YSA6IE5vbmNvcHlhCiAgICAgLy8gZm9yIHVzZSB3aXRoIFFGb250RGF0YWJhc2U6
OmFkZEFwcGxpY2F0aW9uRm9udC9yZW1vdmVBcHBsaWNhdGlvbkZvbnQKICAgICBpbnQgbV9oYW5k
bGU7CiAKLSAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJv
b2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5n
TW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBi
b29sIGJvbGQsIGJvb2wgaXRhbGljLCBib29sIGlzVmVydGljYWxMYXlvdXQgPSBmYWxzZSwgRm9u
dFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKIAogICAgIHN0YXRpYyBib29s
IHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwogfTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YVF0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFRdC5j
cHAJKHJldmlzaW9uIDY5NjM0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBA
IEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGYKICAgICBRRm9udERhdGFi
YXNlOjpyZW1vdmVBcHBsaWNhdGlvbkZvbnQobV9oYW5kbGUpOwogfQogCi1Gb250UGxhdGZvcm1E
YXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJv
b2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0
YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29s
IGJvbGQsIGJvb2wgaXRhbGljLCBib29sLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICBRRm9u
dCBmb250OwogICAgIGZvbnQuc2V0RmFtaWx5KFFGb250RGF0YWJhc2U6OmFwcGxpY2F0aW9uRm9u
dEZhbWlsaWVzKG1faGFuZGxlKVswXSk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3F0L0ZvbnRQbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNjk2MzQpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpA
QCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAKIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgOiBwdWJs
aWMgRmFzdEFsbG9jQmFzZSB7CiBwdWJsaWM6Ci0gICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBz
aXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9h
dCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSwgYm9vbCBpc1ZlcnRpY2FsTGF5b3V0ID0g
ZmFsc2UpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSAmKTsK
ICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21p
Y1N0cmluZyYgZmFtaWx5TmFtZSwgaW50IHdvcmRTcGFjaW5nID0gMCwgaW50IGxldHRlclNwYWNp
bmcgPSAwKTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IFFGb250JiBmb250KQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UGxhdGZvcm1EYXRhUXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0YVF0
LmNwcAkocmV2aXNpb24gNjk2MzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0Zv
bnRQbGF0Zm9ybURhdGFRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgc3Rh
dGljIGlubGluZSBib29sIGlzRW10cHlWYWx1ZShjb25zdCBmbAogICAgIHJldHVybiAhYm9sZCAm
JiAhb2JsaXF1ZSAmJiBzaXplID09IDAuZjsKIH0KIAotRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBs
YXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSkKK0ZvbnRQbGF0
Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9i
bGlxdWUsIGJvb2wpCiB7CiAgICAgaWYgKGlzRW10cHlWYWx1ZShzaXplLCBib2xkLCBvYmxpcXVl
KSkKICAgICAgICAgbV9kYXRhID0gMDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9u
IDY5NjM0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBAIEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGYKICNlbmRpZgogfQogCi1Gb250UGxhdGZvcm1E
YXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJv
b2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlIG1vZGUpCitGb250UGxhdGZv
cm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUs
IGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGJvb2wsIEZvbnRSZW5kZXJpbmdNb2RlIG1vZGUpCiB7
CiAjaWYgT1MoV0lORE9XUykKICAgICBBU1NFUlQobV9mb250UmVmZXJlbmNlKTsKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuaAkocmV2aXNpb24gNjk2MzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3NraWEvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2
Miw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKIAogICAgIH5G
b250Q3VzdG9tUGxhdGZvcm1EYXRhKCk7CiAKLSAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0
Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsCisgICAgRm9udFBsYXRm
b3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBib29sIGlzVmVydGljYWxMYXlvdXQgPSBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsK
IAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY5NjM0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5
LDcgKzU5LDcgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogICAg
IH0KIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxh
dGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBi
b29sLCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKQogewogICAgIEFTU0VSVChtX2Zv
bnRSZWZlcmVuY2UpOwogICAgIEFTU0VSVChUMmVtYmVkTGlicmFyeSgpKTsKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhLmgJKHJldmlzaW9uIDY5NjM0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBA
IHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKIAogICAgIH5Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhKCk7CiAKLSAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURh
dGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0g
Tm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1E
YXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBib29sIGlzVmVydGljYWxMYXlv
dXQgPSBmYWxzZSwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKIAog
ICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwogCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGFDYWlyby5jcHAJKHJldmlzaW9uIDY5NjM0KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1
c3RvbVBsYXRmCiAgICBjYWlyb19mb250X2ZhY2VfZGVzdHJveShtX2ZvbnRGYWNlKTsKIH0KIAot
Rm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRh
KGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKQorRm9udFBsYXRmb3JtRGF0YSBGb250
Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQs
IGJvb2wgaXRhbGljLCBib29sKQogewogICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKG1fZm9u
dEZhY2UsIHNpemUsIGJvbGQsIGl0YWxpYyk7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8u
aAkocmV2aXNpb24gNjk2MzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBA
QCBzdHJ1Y3QgRm9udEN1c3RvbVBsYXRmb3JtRGF0YSA6IE5vbmNvcHlhCiAgICAgfQogICAgIH5G
b250Q3VzdG9tUGxhdGZvcm1EYXRhKCk7CiAKLSAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0
Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMpOworICAgIEZvbnRQbGF0
Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxp
YywgYm9vbCBpc1ZlcnRpY2FsTGF5b3V0ID0gZmFsc2UpOwogCiAgICAgc3RhdGljIGJvb2wgc3Vw
cG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5oCShyZXZp
c2lvbiA2OTYzNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9y
bURhdGFDYWlyb1dpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoK
IAogICAgIEZvbnRQbGF0Zm9ybURhdGEoSEZPTlQsIGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9v
bCBvYmxpcXVlLCBib29sIHVzZUdESSk7CiAgICAgRm9udFBsYXRmb3JtRGF0YShjYWlyb19mb250
X2ZhY2VfdCogZm9udEZhY2UsIGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMpOwot
ICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYyk7
CisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBib29sIGlzVmVydGljYWxMYXlvdXQgPSBmYWxzZSk7CiAgICAgRm9udFBsYXRmb3JtRGF0YShj
b25zdCBGb250UGxhdGZvcm1EYXRhJik7CiAgICAgfkZvbnRQbGF0Zm9ybURhdGEoKTsKIApJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YVdpbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3Jt
RGF0YVdpbi5jcHAJKHJldmlzaW9uIDY5NjM0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vRm9udFBsYXRmb3JtRGF0YVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDcgKzcx
LDcgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShIRk9OVAogICAgIFJlbGVh
c2VEQygwLCBoZGMpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZs
b2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlKQorRm9udFBsYXRmb3JtRGF0YTo6Rm9u
dFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSwgYm9vbCkK
ICAgICA6IG1fc2l6ZShzaXplKQogI2lmIFBMQVRGT1JNKENHKQogICAgICwgbV9jZ0ZvbnQoMCkK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24gNjk2MzQpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3Vz
dG9tUGxhdGYKICAgICAgICAgZ19jdXN0b21Gb250Q2FjaGUtPnVucmVnaXN0ZXJGb250KG1fbmFt
ZSk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBs
YXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmlu
Z01vZGUgcmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywg
Ym9vbCwgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSkKIHsKICAgICBGb250RGVzY3Jp
cHRpb24gZm9udERlc2M7CiAgICAgZm9udERlc2Muc2V0Q29tcHV0ZWRTaXplKHNpemUpOwpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5NjM0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIH5Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhKCk7CiAKLSAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1E
YXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSA9
IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0
Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGJvb2wgaXNWZXJ0aWNh
bExheW91dCA9IGZhbHNlLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUp
OwogCiAgICAgICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwog
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRQbGF0Zm9ybURhdGEu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBs
YXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY5NjM0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW5jZS9Gb250UGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU1LDcg
KzM1NSw3IEBAIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoY29uc3QKICAgICBt
X3ByaXZhdGUgPSBuZXcgRm9udFBsYXRmb3JtUHJpdmF0ZURhdGEoZm9udERlc2NyaXB0aW9uLCBm
YW1pbHkpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNp
emUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlKQorRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRm
b3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSwgYm9vbCkKIHsKICAg
ICBpZiAoIXNpemUpCiAgICAgICAgIG1fcHJpdmF0ZSA9IDA7CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRQbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRQbGF0Zm9ybURhdGEuaAkocmV2aXNpb24g
Njk2MzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRQbGF0Zm9ybURh
dGEuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgcHVibGljOgogCiAgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEoKTogbV9wcml2YXRlKDAp
IHt9Ci0gICAgICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29s
IG9ibGlxdWUpOworICAgICAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9s
ZCwgYm9vbCBvYmxpcXVlLCBib29sIGlzVmVydGljYWxMYXlvdXQgPSBmYWxzZSk7CiAKICAgICAg
ICAgLy8gVXNlZCBmb3IgZGVsZXRlZCB2YWx1ZXMgaW4gdGhlIGZvbnQgY2FjaGUncyBoYXNoIHRh
Ymxlcy4KICAgICAgICAgRm9udFBsYXRmb3JtRGF0YShXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1
ZVR5cGUpIDogbV9wcml2YXRlKChGb250UGxhdGZvcm1Qcml2YXRlRGF0YSopMSkge30KSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmNwcAkocmV2aXNpb24gNjk2MzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3d4L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3
ICszMSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGYKIHsKIH0K
IAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1E
YXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSkK
K0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0
YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgYm9vbCwgRm9udFJlbmRlcmluZ01v
ZGUpCiB7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwgYm9sZCwgaXRhbGljKTsK
IH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTYzNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd3gvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Nyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgYm9vbCBz
dXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIAotICAgICAgICBGb250UGxhdGZvcm1EYXRh
IGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRS
ZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgICAgIEZvbnRQbGF0Zm9y
bURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywg
Ym9vbCBpc1ZlcnRpY2FsTGF5b3V0ID0gZmFsc2UsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFs
UmVuZGVyaW5nTW9kZSk7CiAgICAgfTsKIAogICAgIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEqIGNy
ZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKik7CkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRQbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRQbGF0Zm9ybURhdGEuaAkocmV2aXNpb24g
Njk2MzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRQbGF0Zm9ybURhdGEu
aAkod29ya2luZyBjb3B5KQpAQCAtOTEsNyArOTEsNyBAQCBwdWJsaWM6CiAKICAgICBGb250UGxh
dGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21pY1N0cmluZyYpOwog
ICAgIAotICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0
YWxpYykKKyAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBp
dGFsaWMsIGJvb2wgaXNWZXJ0aWNhbExheW91dCA9IGZhbHNlKQogICAgIDogbV9mb250U3RhdGUo
VU5JTklUSUFMSVpFRCkKICAgICAsIG1fZm9udCgwKQogICAgICwgbV9zaXplKHNpemUpCkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCShyZXZpc2lvbiA2OTYzNCkK
KysrIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzA3LDYgKzcwNywxNyBAQCB2b2lkIFJlbmRlclN0eWxlOjpzZXRCb3hTaGFkb3coU2hh
ZG93RGF0CiAgICAgcmFyZURhdGEtPm1fYm94U2hhZG93LnNldChzaGFkb3dEYXRhKTsKIH0KIAor
dm9pZCBSZW5kZXJTdHlsZTo6c2V0V3JpdGluZ01vZGUoV3JpdGluZ01vZGUgdikKK3sKKyAgICBp
bmhlcml0ZWRfZmxhZ3MubV93cml0aW5nTW9kZSA9IHY7CisKKyAgICBGb250U2VsZWN0b3IqIGN1
cnJlbnRGb250U2VsZWN0b3IgPSBmb250KCkuZm9udFNlbGVjdG9yKCk7CisgICAgRm9udERlc2Ny
aXB0aW9uIGRlc2MoZm9udERlc2NyaXB0aW9uKCkpOworICAgIGRlc2Muc2V0SXNWZXJ0aWNhbExh
eW91dCghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSk7CisgICAgc2V0Rm9udERlc2NyaXB0aW9u
KGRlc2MpOworICAgIGZvbnQoKS51cGRhdGUoY3VycmVudEZvbnRTZWxlY3Rvcik7Cit9CisKIHN0
YXRpYyB2b2lkIGNvbnN0cmFpbkNvcm5lclJhZGlpRm9yUmVjdChjb25zdCBJbnRSZWN0JiByLCBJ
bnRTaXplJiB0b3BMZWZ0LCBJbnRTaXplJiB0b3BSaWdodCwgSW50U2l6ZSYgYm90dG9tTGVmdCwg
SW50U2l6ZSYgYm90dG9tUmlnaHQpCiB7CiAgICAgLy8gQ29uc3RyYWluIGNvcm5lciByYWRpaSB1
c2luZyBDU1MzIHJ1bGVzOgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
CShyZXZpc2lvbiA2OTYzNCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMzAsNyArMTEzMCw3IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgICAgIG9yaWdpbmFsRGlzcGxheSgpID09IElOTElORV9CT1ggfHwgb3JpZ2luYWxEaXNwbGF5
KCkgPT0gSU5MSU5FX1RBQkxFOwogICAgIH0KIAotICAgIHZvaWQgc2V0V3JpdGluZ01vZGUoV3Jp
dGluZ01vZGUgdikgeyBpbmhlcml0ZWRfZmxhZ3MubV93cml0aW5nTW9kZSA9IHY7IH0KKyAgICB2
b2lkIHNldFdyaXRpbmdNb2RlKFdyaXRpbmdNb2RlIHYpOwogCiAgICAgLy8gVG8gdGVsbCBpZiB0
aGlzIHN0eWxlIG1hdGNoZWQgYXR0cmlidXRlIHNlbGVjdG9ycy4gVGhpcyBtYWtlcyBpdCBpbXBv
c3NpYmxlIHRvIHNoYXJlLgogICAgIGJvb2wgYWZmZWN0ZWRCeUF0dHJpYnV0ZVNlbGVjdG9ycygp
IGNvbnN0IHsgcmV0dXJuIG1fYWZmZWN0ZWRCeUF0dHJpYnV0ZVNlbGVjdG9yczsgfQo=
</data>
<flag name="review"
          id="60447"
          type_id="1"
          status="-"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70827</attachid>
            <date>2010-10-14 20:51:06 -0700</date>
            <delta_ts>2010-10-14 21:29:38 -0700</delta_ts>
            <desc>[another build test] Incorporated mitz&apos;s feedback. Submitted to test builds on non-Mac platforms.</desc>
            <filename>WK46973Patch_101015.txt</filename>
            <type>text/plain</type>
            <size>57491</size>
            <attacher name="Takumi Takano">takano</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTgzNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTA3IEBACisyMDEwLTEwLTE0ICB0YWthbm8gdGFrdW1pICA8dGFrYW5vMUBhc2lh
LmFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOZWVkIHRvIHN3YXAgZ2x5cGhzIGZvciB2ZXJ0aWNhbCB3cml0aW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk3MworCisgICAgICAgIE1h
ZGUgY2hhbmdlcyB0byBwYXNzIHRoZSB3cml0aW5nLW1vZGUgb3JpZW50YXRpb24gZmxhZyBpbiBS
ZW5kZXJTdHlsZSBkb3duIHRvIEZvbnRQbGF0Zm9ybURhdGEsCisgICAgICAgIGFuZCB1bHRpbWF0
ZWx5IHRvIENvcmVUZXh0IEFQSXMgaW4gYm90aCBmb250IGNvbXBsZXggcGF0aCBhbmQgZmFzdCBw
YXRoLgorCisgICAgICAgIERvZXNuJ3QgYWZmZWN0IGFueSB0ZXN0cyB5ZXQuCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTb3VyY2U6OmdldEZvbnREYXRhKToKKyAgICAg
ICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHls
ZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkRm9udC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9t
RGF0YSk6CisgICAgICAgICogbG9hZGVyL0NhY2hlZEZvbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3Jt
RGF0YUNhY2hlS2V5OjpGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbXB1dGVIYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0Q2FjaGVk
Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2Ny
aXB0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OkZvbnREZXNjcmlw
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OmZvbnRPcmllbnRhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnNldEZvbnRPcmllbnRhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246Om9wZXJhdG9yPT0pOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9y
bURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURh
dGFGcmVlVHlwZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ZvbnRQbGF0Zm9y
bURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZv
cm1EYXRhQ2hyb21pdW1XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRm9udFBsYXRmb3JtRGF0YUNocm9taXVtV2luLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUxpbnV4Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpG
b250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRQbGF0Zm9ybURhdGE6OmZvbnRPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGb250
UGxhdGZvcm1EYXRhOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6
Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0
Zm9ybURhdGFDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZv
bnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6b3Bl
cmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OmRlc2NyaXB0aW9u
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEN1c3RvbVBsYXRmb3JtRGF0
YVBhbmdvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZv
bnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250UGxh
dGZvcm1EYXRhUGFuZ28uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6
Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRQ
bGF0Zm9ybURhdGFQYW5nby5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBs
YXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2hhaWt1L0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRm9udENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpn
ZXRGb250RGF0YUZvckNoYXJhY3RlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpj
cmVhdGVGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9HbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
bHlwaFBhZ2U6OmZpbGwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVG
b250RGF0YUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpn
ZXRDRlN0cmluZ0F0dHJpYnV0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9T
aW1wbGVGb250RGF0YU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpw
bGF0Zm9ybUJvdW5kc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRh
OjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9x
dC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGFRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxh
dGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0
Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhQ2Fpcm8uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBs
YXRmb3JtRGF0YUNhaXJvV2luLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Zv
bnRQbGF0Zm9ybURhdGFXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2Uv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b250UGxhdGZvcm1Qcml2YXRlRGF0YTo6Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0
YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRm
b3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRQbGF0Zm9ybURh
dGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURh
dGEpOgorCiAyMDEwLTEwLTE0ICBKdXN0aW4gU2NodWggIDxqc2NodWhAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgpJbmRleDogV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lv
biA2OTgzMikKKysrIFdlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTM3
Myw3ICszNzMsNyBAQCBfX1pON1dlYkNvcmUxNkRldmljZU1vdGlvbkRhdGExMkFjY2VsZXJhCiBf
X1pON1dlYkNvcmUxNkRldmljZU1vdGlvbkRhdGExMlJvdGF0aW9uUmF0ZTZjcmVhdGVFYmRiZGJk
CiBfX1pON1dlYkNvcmUxNkRldmljZU1vdGlvbkRhdGE2Y3JlYXRlRU4zV1RGMTBQYXNzUmVmUHRy
SU5TMF8xMkFjY2VsZXJhdGlvbkVFRVM0X05TMl9JTlMwXzEyUm90YXRpb25SYXRlRUVFYmQKIF9f
Wk43V2ViQ29yZTE2Rm9udEZhbGxiYWNrTGlzdDE1cmVsZWFzZUZvbnREYXRhRXYKLV9fWk43V2Vi
Q29yZTE2Rm9udFBsYXRmb3JtRGF0YUMxRVA2TlNGb250YmIKK19fWk43V2ViQ29yZTE2Rm9udFBs
YXRmb3JtRGF0YUMxRVA2TlNGb250YmJOU18xNUZvbnRPcmllbnRhdGlvbkUKIF9fWk43V2ViQ29y
ZTE2Rm9udFBsYXRmb3JtRGF0YUQxRXYKIF9fWk43V2ViQ29yZTE2SFRNTElucHV0RWxlbWVudDEz
c2V0QXV0b2ZpbGxlZEViCiBfX1pON1dlYkNvcmUxNkxlZ2FjeVdlYkFyY2hpdmUxOWNyZWF0ZUZy
b21TZWxlY3Rpb25FUE5TXzVGcmFtZUUKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291
cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAJ
KHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjIsNyArMTYyLDcgQEAgU2ltcGxlRm9udERhdGEqIENTU0ZvbnRG
YWNlU291cmNlOjpnZXRGbwogICAgICAgICAgICAgICAgIGlmICghbV9mb250LT5lbnN1cmVDdXN0
b21Gb250RGF0YSgpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKIAotICAgICAgICAg
ICAgICAgIGZvbnREYXRhLnNldChuZXcgU2ltcGxlRm9udERhdGEobV9mb250LT5wbGF0Zm9ybURh
dGFGcm9tQ3VzdG9tRGF0YShmb250RGVzY3JpcHRpb24uY29tcHV0ZWRQaXhlbFNpemUoKSwgc3lu
dGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RGVzY3JpcHRpb24ucmVuZGVyaW5nTW9k
ZSgpKSwgdHJ1ZSwgZmFsc2UpKTsKKyAgICAgICAgICAgICAgICBmb250RGF0YS5zZXQobmV3IFNp
bXBsZUZvbnREYXRhKG1fZm9udC0+cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoZm9udERlc2Ny
aXB0aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCksIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxp
YywgZm9udERlc2NyaXB0aW9uLmZvbnRPcmllbnRhdGlvbigpLCBmb250RGVzY3JpcHRpb24ucmVu
ZGVyaW5nTW9kZSgpKSwgdHJ1ZSwgZmFsc2UpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBl
bHNlIHsKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQpJbmRleDogV2ViQ29yZS9jc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5j
cHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU1NzEsMTAgKzU1NzEsMTQgQEAgdm9pZCBDU1NTdHlsZVNlbGVj
dG9yOjphcHBseVByb3BlcnR5KGludAogI2VuZGlmIAogCiAgICAgLy8gQ1NTIFRleHQgTGF5b3V0
IE1vZHVsZSBMZXZlbCAzOiBWZXJ0aWNhbCB3cml0aW5nIHN1cHBvcnQKLSAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0V3JpdGluZ01vZGU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyaXRp
bmdNb2RlOiB7CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMX0FORF9QUklNSVRJ
VkUod3JpdGluZ01vZGUsIFdyaXRpbmdNb2RlKQorICAgICAgICBGb250RGVzY3JpcHRpb24gZm9u
dERlc2NyaXB0aW9uID0gbV9zdHlsZS0+Zm9udERlc2NyaXB0aW9uKCk7CisgICAgICAgIGZvbnRE
ZXNjcmlwdGlvbi5zZXRGb250T3JpZW50YXRpb24obV9zdHlsZS0+aXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSA/IEhvcml6b250YWwgOiBWZXJ0aWNhbCk7CisgICAgICAgIGlmIChtX3N0eWxlLT5z
ZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKSkKKyAgICAgICAgICAgIG1fZm9udERp
cnR5ID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwotCisgICAgfQogI2lmIEVOQUJMRShTVkcpCiAg
ICAgZGVmYXVsdDoKICAgICAgICAgLy8gVHJ5IHRoZSBTVkcgcHJvcGVydGllcwpJbmRleDogV2Vi
Q29yZS9sb2FkZXIvQ2FjaGVkRm9udC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIv
Q2FjaGVkRm9udC5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9sb2FkZXIvQ2FjaGVk
Rm9udC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNyw3ICsxMTcsNyBAQCBib29sIENhY2hlZEZv
bnQ6OmVuc3VyZUN1c3RvbUZvbnREYXRhKCkKICAgICByZXR1cm4gbV9mb250RGF0YTsKIH0KIAot
Rm9udFBsYXRmb3JtRGF0YSBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShm
bG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSByZW5k
ZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9t
Q3VzdG9tRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50
YXRpb24gZm9udE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKQog
ewogI2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgaWYgKG1fZXh0ZXJuYWxTVkdEb2N1bWVudCkK
QEAgLTEyNSw3ICsxMjUsNyBAQCBGb250UGxhdGZvcm1EYXRhIENhY2hlZEZvbnQ6OnBsYXRmb3Jt
RGF0CiAjZW5kaWYKICNpZmRlZiBTVE9SRV9GT05UX0NVU1RPTV9QTEFURk9STV9EQVRBCiAgICAg
QVNTRVJUKG1fZm9udERhdGEpOwotICAgIHJldHVybiBtX2ZvbnREYXRhLT5mb250UGxhdGZvcm1E
YXRhKHN0YXRpY19jYXN0PGludD4oc2l6ZSksIGJvbGQsIGl0YWxpYywgcmVuZGVyaW5nTW9kZSk7
CisgICAgcmV0dXJuIG1fZm9udERhdGEtPmZvbnRQbGF0Zm9ybURhdGEoc3RhdGljX2Nhc3Q8aW50
PihzaXplKSwgYm9sZCwgaXRhbGljLCBmb250T3JpZW50YXRpb24sIHJlbmRlcmluZ01vZGUpOwog
I2Vsc2UKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YSgpOwogI2VuZGlmCkluZGV4OiBXZWJD
b3JlL2xvYWRlci9DYWNoZWRGb250LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvQ2Fj
aGVkRm9udC5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvbG9hZGVyL0NhY2hlZEZvbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBDYWNoZWRGb250X2gK
IAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCisjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9u
LmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKQEAgLTYyLDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZvaWQgYmVnaW5Mb2FkSWZOZWVk
ZWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGRsKTsKIAogICAgIGJvb2wgZW5zdXJlQ3VzdG9tRm9u
dERhdGEoKTsKLSAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRh
KGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0g
Tm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBwbGF0Zm9ybURhdGFG
cm9tQ3VzdG9tRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3Jp
ZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01vZGUg
PSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKIAogI2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgYm9v
bCBpc1NWR0ZvbnQoKSBjb25zdCB7IHJldHVybiBtX2lzU1ZHRm9udDsgfQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1
LDEzICs1NSwxNCBAQCBGb250Q2FjaGU6OkZvbnRDYWNoZSgpCiAKIHN0cnVjdCBGb250UGxhdGZv
cm1EYXRhQ2FjaGVLZXkgOiBGYXN0QWxsb2NCYXNlIHsKICAgICBGb250UGxhdGZvcm1EYXRhQ2Fj
aGVLZXkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHkgPSBBdG9taWNTdHJpbmcoKSwgdW5zaWdu
ZWQgc2l6ZSA9IDAsIHVuc2lnbmVkIHdlaWdodCA9IDAsIGJvb2wgaXRhbGljID0gZmFsc2UsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNQcmludGVyRm9udCA9IGZhbHNlLCBG
b250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1ByaW50ZXJGb250ID0gZmFsc2UsIEZv
bnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlLCBGb250
T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCkKICAgICAgICAgOiBtX3Np
emUoc2l6ZSkKICAgICAgICAgLCBtX3dlaWdodCh3ZWlnaHQpCiAgICAgICAgICwgbV9mYW1pbHko
ZmFtaWx5KQogICAgICAgICAsIG1faXRhbGljKGl0YWxpYykKICAgICAgICAgLCBtX3ByaW50ZXJG
b250KGlzUHJpbnRlckZvbnQpCiAgICAgICAgICwgbV9yZW5kZXJpbmdNb2RlKHJlbmRlcmluZ01v
ZGUpCisgICAgICAgICwgbV9mb250T3JpZW50YXRpb24oZm9udE9yaWVudGF0aW9uKQogICAgIHsK
ICAgICB9CiAKQEAgLTcyLDcgKzczLDcgQEAgc3RydWN0IEZvbnRQbGF0Zm9ybURhdGFDYWNoZUtl
eSA6IEZhc3RBbAogICAgIHsKICAgICAgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdDYXNlKG1fZmFt
aWx5LCBvdGhlci5tX2ZhbWlseSkgJiYgbV9zaXplID09IG90aGVyLm1fc2l6ZSAmJiAKICAgICAg
ICAgICAgICAgIG1fd2VpZ2h0ID09IG90aGVyLm1fd2VpZ2h0ICYmIG1faXRhbGljID09IG90aGVy
Lm1faXRhbGljICYmIG1fcHJpbnRlckZvbnQgPT0gb3RoZXIubV9wcmludGVyRm9udCAmJgotICAg
ICAgICAgICAgICAgbV9yZW5kZXJpbmdNb2RlID09IG90aGVyLm1fcmVuZGVyaW5nTW9kZTsKKyAg
ICAgICAgICAgICAgIG1fcmVuZGVyaW5nTW9kZSA9PSBvdGhlci5tX3JlbmRlcmluZ01vZGUgJiYg
bV9mb250T3JpZW50YXRpb24gPT0gb3RoZXIubV9mb250T3JpZW50YXRpb247CiAgICAgfQogCiAg
ICAgdW5zaWduZWQgbV9zaXplOwpAQCAtODEsNiArODIsNyBAQCBzdHJ1Y3QgRm9udFBsYXRmb3Jt
RGF0YUNhY2hlS2V5IDogRmFzdEFsCiAgICAgYm9vbCBtX2l0YWxpYzsKICAgICBib29sIG1fcHJp
bnRlckZvbnQ7CiAgICAgRm9udFJlbmRlcmluZ01vZGUgbV9yZW5kZXJpbmdNb2RlOworICAgIEZv
bnRPcmllbnRhdGlvbiBtX2ZvbnRPcmllbnRhdGlvbjsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMg
dW5zaWduZWQgaGFzaFRhYmxlRGVsZXRlZFNpemUoKSB7IHJldHVybiAweEZGRkZGRkZGVTsgfQpA
QCAtOTIsNyArOTQsNyBAQCBpbmxpbmUgdW5zaWduZWQgY29tcHV0ZUhhc2goY29uc3QgRm9udFBs
CiAgICAgICAgIENhc2VGb2xkaW5nSGFzaDo6aGFzaChmb250S2V5Lm1fZmFtaWx5KSwKICAgICAg
ICAgZm9udEtleS5tX3NpemUsCiAgICAgICAgIGZvbnRLZXkubV93ZWlnaHQsCi0gICAgICAgIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5Lm1faXRhbGljKSA8PCAyIHwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KGZvbnRLZXkubV9wcmludGVyRm9udCkgPDwgMSB8IHN0YXRpY19jYXN0PHVuc2ln
bmVkPihmb250S2V5Lm1fcmVuZGVyaW5nTW9kZSkKKyAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KGZvbnRLZXkubV9mb250T3JpZW50YXRpb24pIDw8IDMgfCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oZm9udEtleS5tX2l0YWxpYykgPDwgMiB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5
Lm1fcHJpbnRlckZvbnQpIDw8IDEgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5tX3Jl
bmRlcmluZ01vZGUpCiAgICAgfTsKICAgICByZXR1cm4gU3RyaW5nSW1wbDo6Y29tcHV0ZUhhc2go
cmVpbnRlcnByZXRfY2FzdDxVQ2hhcio+KGhhc2hDb2RlcyksIHNpemVvZihoYXNoQ29kZXMpIC8g
c2l6ZW9mKFVDaGFyKSk7CiB9CkBAIC0xOTEsNyArMTkzLDcgQEAgRm9udFBsYXRmb3JtRGF0YSog
Rm9udENhY2hlOjpnZXRDYWNoZWRGbwogICAgIH0KIAogICAgIEZvbnRQbGF0Zm9ybURhdGFDYWNo
ZUtleSBrZXkoZmFtaWx5TmFtZSwgZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCks
IGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSwgZm9udERlc2NyaXB0aW9uLml0YWxpYygpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnVzZVByaW50ZXJG
b250KCksIGZvbnREZXNjcmlwdGlvbi5yZW5kZXJpbmdNb2RlKCkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnVzZVByaW50ZXJGb250KCksIGZvbnRE
ZXNjcmlwdGlvbi5yZW5kZXJpbmdNb2RlKCksIGZvbnREZXNjcmlwdGlvbi5mb250T3JpZW50YXRp
b24oKSk7CiAgICAgRm9udFBsYXRmb3JtRGF0YSogcmVzdWx0ID0gMDsKICAgICBib29sIGZvdW5k
UmVzdWx0OwogICAgIEZvbnRQbGF0Zm9ybURhdGFDYWNoZTo6aXRlcmF0b3IgaXQgPSBnRm9udFBs
YXRmb3JtRGF0YUNhY2hlLT5maW5kKGtleSk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnREZXNjcmlwdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udERlc2NyaXB0aW9uLmgJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiAr
NDcsOCBAQCBlbnVtIEZvbnRXZWlnaHQgewogICAgIEZvbnRXZWlnaHRCb2xkID0gRm9udFdlaWdo
dDcwMAogfTsKIAorZW51bSBGb250T3JpZW50YXRpb24geyBIb3Jpem9udGFsLCBWZXJ0aWNhbCB9
OworCiBjbGFzcyBGb250RGVzY3JpcHRpb24gewogcHVibGljOgogICAgIGVudW0gR2VuZXJpY0Zh
bWlseVR5cGUgeyBOb0ZhbWlseSwgU3RhbmRhcmRGYW1pbHksIFNlcmlmRmFtaWx5LCBTYW5zU2Vy
aWZGYW1pbHksIApAQCAtNTUsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgRm9udERlc2NyaXB0aW9u
KCkKICAgICAgICAgOiBtX3NwZWNpZmllZFNpemUoMCkKICAgICAgICAgLCBtX2NvbXB1dGVkU2l6
ZSgwKQorICAgICAgICAsIG1fZm9udE9yaWVudGF0aW9uKEhvcml6b250YWwpCiAgICAgICAgICwg
bV9pdGFsaWMoZmFsc2UpCiAgICAgICAgICwgbV9zbWFsbENhcHMoZmFsc2UpCiAgICAgICAgICwg
bV9pc0Fic29sdXRlU2l6ZShmYWxzZSkKQEAgLTk0LDYgKzk3LDcgQEAgcHVibGljOgogCiAgICAg
Rm9udFRyYWl0c01hc2sgdHJhaXRzTWFzaygpIGNvbnN0OwogICAgIGJvb2wgaXNTcGVjaWZpZWRG
b250KCkgY29uc3QgeyByZXR1cm4gbV9pc1NwZWNpZmllZEZvbnQ7IH0KKyAgICBGb250T3JpZW50
YXRpb24gZm9udE9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9mb250T3JpZW50YXRpb247
IH0KIAogICAgIHZvaWQgc2V0RmFtaWx5KGNvbnN0IEZvbnRGYW1pbHkmIGZhbWlseSkgeyBtX2Zh
bWlseUxpc3QgPSBmYW1pbHk7IH0KICAgICB2b2lkIHNldENvbXB1dGVkU2l6ZShmbG9hdCBzKSB7
IG1fY29tcHV0ZWRTaXplID0gczsgfQpAQCAtMTEzLDYgKzExNyw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldEZvbnRTbW9vdGhpbmcoRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nKSB7IG1fZm9u
dFNtb290aGluZyA9IHNtb290aGluZzsgfQogICAgIHZvaWQgc2V0VGV4dFJlbmRlcmluZ01vZGUo
VGV4dFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nKSB7IG1fdGV4dFJlbmRlcmluZyA9IHJlbmRlcmlu
ZzsgfQogICAgIHZvaWQgc2V0SXNTcGVjaWZpZWRGb250KGJvb2wgaXNTcGVjaWZpZWRGb250KSB7
IG1faXNTcGVjaWZpZWRGb250ID0gaXNTcGVjaWZpZWRGb250OyB9CisgICAgdm9pZCBzZXRGb250
T3JpZW50YXRpb24oRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbikgeyBtX2ZvbnRPcmll
bnRhdGlvbiA9IGZvbnRPcmllbnRhdGlvbjsgfQogCiBwcml2YXRlOgogICAgIEZvbnRGYW1pbHkg
bV9mYW1pbHlMaXN0OyAvLyBUaGUgbGlzdCBvZiBmb250IGZhbWlsaWVzIHRvIGJlIHVzZWQuCkBA
IC0xMjEsNiArMTI2LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gcm91bmRpbmcsIG1pbmltdW0gZm9udCBzaXplcywgYW5kIHpvb21pbmcuCiAgICAgZmxvYXQg
bV9jb21wdXRlZFNpemU7ICAgIC8vIENvbXB1dGVkIHNpemUgYWRqdXN0ZWQgZm9yIHRoZSBtaW5p
bXVtIGZvbnQgc2l6ZSBhbmQgdGhlIHpvb20gZmFjdG9yLiAgCiAKKyAgICBGb250T3JpZW50YXRp
b24gbV9mb250T3JpZW50YXRpb247IC8vIEZvbnQncyBvcmllbnRhdGlvbi4gSG9yaXpvbnRhbCBv
ciB2ZXJ0aWNhbC4KKwogICAgIGJvb2wgbV9pdGFsaWMgOiAxOwogICAgIGJvb2wgbV9zbWFsbENh
cHMgOiAxOwogICAgIGJvb2wgbV9pc0Fic29sdXRlU2l6ZSA6IDE7ICAgLy8gV2hldGhlciBvciBu
b3QgQ1NTIHNwZWNpZmllZCBhbiBleHBsaWNpdCBzaXplCkBAIC0xNTUsNyArMTYyLDggQEAgaW5s
aW5lIGJvb2wgRm9udERlc2NyaXB0aW9uOjpvcGVyYXRvcj09KAogICAgICAgICAmJiBtX2tleXdv
cmRTaXplID09IG90aGVyLm1fa2V5d29yZFNpemUKICAgICAgICAgJiYgbV9mb250U21vb3RoaW5n
ID09IG90aGVyLm1fZm9udFNtb290aGluZwogICAgICAgICAmJiBtX3RleHRSZW5kZXJpbmcgPT0g
b3RoZXIubV90ZXh0UmVuZGVyaW5nCi0gICAgICAgICYmIG1faXNTcGVjaWZpZWRGb250ID09IG90
aGVyLm1faXNTcGVjaWZpZWRGb250OworICAgICAgICAmJiBtX2lzU3BlY2lmaWVkRm9udCA9PSBv
dGhlci5tX2lzU3BlY2lmaWVkRm9udAorICAgICAgICAmJiBtX2ZvbnRPcmllbnRhdGlvbiA9PSBv
dGhlci5tX2ZvbnRPcmllbnRhdGlvbjsKIH0KIAogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9TaW1wbGVGb250RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMSw3
ICsxMzEsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFVTRShDT1JFX1RFWFQpCi0gICAgQ0ZE
aWN0aW9uYXJ5UmVmIGdldENGU3RyaW5nQXR0cmlidXRlcyhUeXBlc2V0dGluZ0ZlYXR1cmVzKSBj
b25zdDsKKyAgICBDRkRpY3Rpb25hcnlSZWYgZ2V0Q0ZTdHJpbmdBdHRyaWJ1dGVzKFR5cGVzZXR0
aW5nRmVhdHVyZXMsIGJvb2wgaWdub3JlRGVmYXVsdEZlYXR1cmVzID0gZmFsc2UpIGNvbnN0Owog
I2VuZGlmCiAKICNpZiBVU0UoQVRTVUkpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHJldmlz
aW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCBGb250Q3Vz
dG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiAgICAgY2Fpcm9fZm9udF9mYWNlX2Rl
c3Ryb3kobV9mb250RmFjZSk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxp
YywgRm9udFJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMs
IEZvbnRPcmllbnRhdGlvbiwgRm9udFJlbmRlcmluZ01vZGUpCiB7CiAgICAgcmV0dXJuIEZvbnRQ
bGF0Zm9ybURhdGEobV9mb250RmFjZSwgc2l6ZSwgYm9sZCwgaXRhbGljKTsKIH0KSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3
ICszOCw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKIHB1Ymxp
YzoKICAgICBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKEZUX0ZhY2UsIFNoYXJlZEJ1ZmZlciopOwog
ICAgIH5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCk7Ci0gICAgRm9udFBsYXRmb3JtRGF0YSBmb250
UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVy
aW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9u
dFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVu
dGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0g
Tm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29u
c3QgU3RyaW5nJik7CiAKIHByaXZhdGU6CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCShy
ZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBs
YXRmb3JtRGF0YUZyZWVUeXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDcgKzEzNiw3IEBA
IEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoRmNQYXQKICAgICB9CiB9CiAKLUZv
bnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBi
b29sIGl0YWxpYykKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6
ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uKQogICAgIDogbV9mYWxs
YmFja3MoMCkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9zeW50aGV0aWNCb2xkKGJvbGQp
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGFG
cmVlVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
Rm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmgJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAKICAgICBGb250UGxhdGZvcm1EYXRh
KEZjUGF0dGVybiosIGNvbnN0IEZvbnREZXNjcmlwdGlvbiYpOwogICAgIEZvbnRQbGF0Zm9ybURh
dGEoY2Fpcm9fZm9udF9mYWNlX3QqIGZvbnRGYWNlLCBmbG9hdCBzaXplLCBib29sIGJvbGQsIGJv
b2wgaXRhbGljKTsKLSAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBpdGFsaWMpOworICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xk
LCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250
YWwpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYpOwogICAg
IEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYsIGZsb2F0IHNpemUpOwog
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ZvbnRQbGF0Zm9ybURhdGEuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ZvbnRQbGF0Zm9ybURh
dGEuaAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0Zv
bnRQbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6
CiAgICAgfQogCiAgICAgRm9udFBsYXRmb3JtRGF0YShIRk9OVCwgZmxvYXQgc2l6ZSwgYm9vbCBi
b2xkLCBib29sIG9ibGlxdWUsIGJvb2wgdXNlR0RJKTsKLSAgICBGb250UGxhdGZvcm1EYXRhKGZs
b2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlKTsKKyAgICBGb250UGxhdGZvcm1EYXRh
KGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlLCBGb250T3JpZW50YXRpb24gZm9u
dE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCk7CiAKICAgICBGb250UGxhdGZvcm1EYXRhKEhGT05U
LCBDR0ZvbnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlLCBib29sIHVz
ZUdESSk7CiAgICAgfkZvbnRQbGF0Zm9ybURhdGEoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUNocm9taXVtV2luLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRQbGF0Zm9ybURh
dGFDaHJvbWl1bVdpbi5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhQ2hyb21pdW1XaW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02Niw3ICs2Niw3IEBAIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURh
dGEoSEZPTlQKIH0KIAogLy8gRklYTUU6IHRoaXMgY29uc3RydWN0b3IgaXMgbmVlZGVkIGZvciBT
VkcgZm9udHMgYnV0IGRvZXNuJ3Qgc2VlbSB0byBkbyBtdWNoCi1Gb250UGxhdGZvcm1EYXRhOjpG
b250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlKQorRm9u
dFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJv
b2wgb2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uKQogICAgIDogbV9mb250KDApCiAgICAgLCBtX3Np
emUoc2l6ZSkKICAgICAsIG1fc2NyaXB0Q2FjaGUoMCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUNocm9taXVtV2luLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRh
Q2hyb21pdW1XaW4uaAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0ZvbnRQbGF0Zm9ybURhdGFDaHJvbWl1bVdpbi5oCSh3b3JraW5nIGNvcHkp
CkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBGb250UGxhdGZvcm1EYXRhKFdURjo6SGFz
aFRhYmxlRGVsZXRlZFZhbHVlVHlwZSk7CiAgICAgRm9udFBsYXRmb3JtRGF0YSgpOwogICAgIEZv
bnRQbGF0Zm9ybURhdGEoSEZPTlQsIGZsb2F0IHNpemUpOwotICAgIEZvbnRQbGF0Zm9ybURhdGEo
ZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUpOworICAgIEZvbnRQbGF0Zm9ybURh
dGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBm
b250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsKTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0
IEZvbnRQbGF0Zm9ybURhdGEmKTsKIAogICAgIEZvbnRQbGF0Zm9ybURhdGEmIG9wZXJhdG9yPShj
b25zdCBGb250UGxhdGZvcm1EYXRhJik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ZvbnRQbGF0Zm9ybURhdGFMaW51eC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUxpbnV4LmgJKHJldmlz
aW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxh
dGZvcm1EYXRhTGludXguaAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6
CiAgICAgICAgICwgbV9mYWtlSXRhbGljKGZhbHNlKQogICAgICAgICB7IH0KIAotICAgIEZvbnRQ
bGF0Zm9ybURhdGEoZmxvYXQgdGV4dFNpemUsIGJvb2wgZmFrZUJvbGQsIGJvb2wgZmFrZUl0YWxp
YykKKyAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHRleHRTaXplLCBib29sIGZha2VCb2xkLCBi
b29sIGZha2VJdGFsaWMsIEZvbnRPcmllbnRhdGlvbiBmb250T3JpZW50YXRpb24gPSBIb3Jpem9u
dGFsKQogICAgICAgICA6IG1fdHlwZWZhY2UoMCkKICAgICAgICAgLCBtX3RleHRTaXplKHRleHRT
aXplKQogICAgICAgICAsIG1fZmFrZUJvbGQoZmFrZUJvbGQpCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGEuaAkocmV2aXNpb24g
Njk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURh
dGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2lmbmRlZiBGb250UGxhdGZv
cm1EYXRhX2gKICNkZWZpbmUgRm9udFBsYXRmb3JtRGF0YV9oCiAKKyNpbmNsdWRlICJGb250RGVz
Y3JpcHRpb24uaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKICNpZmRlZiBf
X09CSkNfXwpAQCAtNTgsOSArNTksMTAgQEAgaW5saW5lIENURm9udFJlZiB0b0NURm9udFJlZihO
U0ZvbnQgKm5zRgogCiBjbGFzcyBGb250UGxhdGZvcm1EYXRhIHsKICAgcHVibGljOgotICAgIEZv
bnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRo
ZXRpY09ibGlxdWUpCisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRo
ZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIGZvbnRPcmll
bnRhdGlvbiA9IEhvcml6b250YWwpCiAgICAgICAgIDogbV9zeW50aGV0aWNCb2xkKHN5bnRoZXRp
Y0JvbGQpCiAgICAgICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKHN5bnRoZXRpY09ibGlxdWUpCisg
ICAgICAgICwgbV9mb250T3JpZW50YXRpb24oZm9udE9yaWVudGF0aW9uKQogICAgICAgICAsIG1f
YXRzdUZvbnRJRCgwKQogICAgICAgICAsIG1fc2l6ZShzaXplKQogICAgICAgICAsIG1fZm9udCgw
KQpAQCAtNzEsMTEgKzczLDEyIEBAIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICAgIHsKICAg
ICB9CiAKLSAgICBGb250UGxhdGZvcm1EYXRhKE5TRm9udCAqbnNGb250LCBib29sIHN5bnRoZXRp
Y0JvbGQgPSBmYWxzZSwgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0gZmFsc2UpOworICAgIEZvbnRQ
bGF0Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3ludGhldGljQm9sZCA9IGZhbHNlLCBi
b29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRh
dGlvbiA9IEhvcml6b250YWwpOwogICAgIAotICAgIEZvbnRQbGF0Zm9ybURhdGEoQ0dGb250UmVm
IGNnRm9udCwgQVRTVUZvbnRJRCBmb250SUQsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9s
ZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlKQorICAgIEZvbnRQbGF0Zm9ybURhdGEoQ0dGb250UmVm
IGNnRm9udCwgQVRTVUZvbnRJRCBmb250SUQsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9s
ZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9u
ID0gSG9yaXpvbnRhbCkKICAgICAgICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkK
ICAgICAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGljT2JsaXF1ZSkKKyAgICAgICAg
LCBtX2ZvbnRPcmllbnRhdGlvbihmb250T3JpZW50YXRpb24pCiAgICAgICAgICwgbV9hdHN1Rm9u
dElEKGZvbnRJRCkKICAgICAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAgICAgLCBtX2ZvbnQoMCkK
QEAgLTk0LDkgKzk3LDExIEBAIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICAgIGZsb2F0IHNp
emUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KICAgICBib29sIHN5bnRoZXRpY0JvbGQoKSBj
b25zdCB7IHJldHVybiBtX3N5bnRoZXRpY0JvbGQ7IH0KICAgICBib29sIHN5bnRoZXRpY09ibGlx
dWUoKSBjb25zdCB7IHJldHVybiBtX3N5bnRoZXRpY09ibGlxdWU7IH0KKyAgICBGb250T3JpZW50
YXRpb24gZm9udE9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9mb250T3JpZW50YXRpb247
IH0KIAogICAgIGJvb2wgbV9zeW50aGV0aWNCb2xkOwogICAgIGJvb2wgbV9zeW50aGV0aWNPYmxp
cXVlOworICAgIEZvbnRPcmllbnRhdGlvbiBtX2ZvbnRPcmllbnRhdGlvbjsKIAogICAgIEFUU1VG
b250SUQgbV9hdHN1Rm9udElEOwogICAgIGZsb2F0IG1fc2l6ZTsKQEAgLTEwNCw3ICsxMDksNyBA
QCBjbGFzcyBGb250UGxhdGZvcm1EYXRhIHsKICAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QKICAg
ICB7CiAgICAgICAgIEFTU0VSVChtX2ZvbnQgIT0gMCB8fCBtX2NnRm9udCA9PSAwKTsKLSAgICAg
ICAgdWludHB0cl90IGhhc2hDb2Rlc1syXSA9IHsgKHVpbnRwdHJfdCltX2ZvbnQsIG1fc3ludGhl
dGljQm9sZCA8PCAxIHwgbV9zeW50aGV0aWNPYmxpcXVlIH07CisgICAgICAgIHVpbnRwdHJfdCBo
YXNoQ29kZXNbMl0gPSB7ICh1aW50cHRyX3QpbV9mb250LCBtX2ZvbnRPcmllbnRhdGlvbiA8PCAy
IHwgbV9zeW50aGV0aWNCb2xkIDw8IDEgfCBtX3N5bnRoZXRpY09ibGlxdWUgfTsKICAgICAgICAg
cmV0dXJuIFN0cmluZ0ltcGw6OmNvbXB1dGVIYXNoKHJlaW50ZXJwcmV0X2Nhc3Q8VUNoYXIqPiho
YXNoQ29kZXMpLCBzaXplb2YoaGFzaENvZGVzKSAvIHNpemVvZihVQ2hhcikpOwogICAgIH0KIApA
QCAtMTEzLDcgKzExOCw3IEBAIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICAgIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBvdGhlcikgY29uc3QKICAgICB7IAogICAg
ICAgICByZXR1cm4gbV9mb250ID09IG90aGVyLm1fZm9udCAmJiBtX3N5bnRoZXRpY0JvbGQgPT0g
b3RoZXIubV9zeW50aGV0aWNCb2xkICYmIG1fc3ludGhldGljT2JsaXF1ZSA9PSBvdGhlci5tX3N5
bnRoZXRpY09ibGlxdWUgJiYgCi0gICAgICAgICAgICAgICBtX2NnRm9udCA9PSBvdGhlci5tX2Nn
Rm9udCAmJiBtX3NpemUgPT0gb3RoZXIubV9zaXplICYmIG1fYXRzdUZvbnRJRCA9PSBvdGhlci5t
X2F0c3VGb250SUQ7CisgICAgICAgICAgICAgICBtX2NnRm9udCA9PSBvdGhlci5tX2NnRm9udCAm
JiBtX3NpemUgPT0gb3RoZXIubV9zaXplICYmIG1fYXRzdUZvbnRJRCA9PSBvdGhlci5tX2F0c3VG
b250SUQgJiYgbV9mb250T3JpZW50YXRpb24gPT0gb3RoZXIubV9mb250T3JpZW50YXRpb247CiAg
ICAgfQogCiAgICAgTlNGb250ICpmb250KCkgY29uc3QgeyByZXR1cm4gbV9mb250OyB9CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0
Zm9ybURhdGFDb2NvYS5tbQkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAt
NDQsOSArNDQsMTAgQEAgdm9pZCBGb250UGxhdGZvcm1EYXRhOjpsb2FkRm9udChOU0ZvbnQqIAog
fQogI2VuZGlmICAvLyBQTEFURk9STShNQUMpCiAKLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0
Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0
aWNPYmxpcXVlKQorRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShOU0ZvbnQgKm5z
Rm9udCwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmll
bnRhdGlvbiBmb250T3JpZW50YXRpb24pCiAgICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGlj
Qm9sZCkKICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQorICAgICwg
bV9mb250T3JpZW50YXRpb24oZm9udE9yaWVudGF0aW9uKQogICAgICwgbV9mb250KG5zRm9udCkK
ICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIC8vIEZJ
WE1FOiBDaHJvbWl1bTogVGhlIGZvbGxvd2luZyBjb2RlIGlzbid0IGNvcnJlY3QgZm9yIHRoZSBD
aHJvbWl1bSBwb3J0IHNpbmNlIHRoZSBzYW5kYm94IG1pZ2h0CkBAIC04Myw2ICs4NCw3IEBAIEZv
bnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoY29uc3QKICAgICBtX2NnRm9udCA9IGYu
bV9jZ0ZvbnQ7CiAgICAgbV9hdHN1Rm9udElEID0gZi5tX2F0c3VGb250SUQ7CiAgICAgbV9pc0Nv
bG9yQml0bWFwRm9udCA9IGYubV9pc0NvbG9yQml0bWFwRm9udDsKKyAgICBtX2ZvbnRPcmllbnRh
dGlvbiA9IGYubV9mb250T3JpZW50YXRpb247CiAjaWYgVVNFKENPUkVfVEVYVCkKICAgICBtX0NU
Rm9udCA9IGYubV9DVEZvbnQ7CiAjZW5kaWYKQEAgLTExMiw2ICsxMTQsNyBAQCBjb25zdCBGb250
UGxhdGZvcm1EYXRhJiBGb250UGxhdGZvcm1EYXRhCiAgICAgICAgIENGUmVsZWFzZShtX2ZvbnQp
OwogICAgIG1fZm9udCA9IGYubV9mb250OwogICAgIG1faXNDb2xvckJpdG1hcEZvbnQgPSBmLm1f
aXNDb2xvckJpdG1hcEZvbnQ7CisgICAgbV9mb250T3JpZW50YXRpb24gPSBmLm1fZm9udE9yaWVu
dGF0aW9uOwogI2lmIFVTRShDT1JFX1RFWFQpCiAgICAgbV9DVEZvbnQgPSBmLm1fQ1RGb250Owog
I2VuZGlmCkBAIC0xODcsNyArMTkwLDggQEAgQ1RGb250UmVmIEZvbnRQbGF0Zm9ybURhdGE6OmN0
Rm9udCgpIGNvbgogU3RyaW5nIEZvbnRQbGF0Zm9ybURhdGE6OmRlc2NyaXB0aW9uKCkgY29uc3QK
IHsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNnRm9udERlc2NyaXB0aW9uKEFkb3B0Q0Ys
IENGQ29weURlc2NyaXB0aW9uKGNnRm9udCgpKSk7Ci0gICAgcmV0dXJuIFN0cmluZyhjZ0ZvbnRE
ZXNjcmlwdGlvbi5nZXQoKSkgKyAiICIgKyBTdHJpbmc6Om51bWJlcihtX3NpemUpICsgKG1fc3lu
dGhldGljQm9sZCA/ICIgc3ludGhldGljIGJvbGQiIDogIiIpICsgKG1fc3ludGhldGljT2JsaXF1
ZSA/ICIgc3ludGhldGljIG9ibGlxdWUiIDogIiIpOworICAgIHJldHVybiBTdHJpbmcoY2dGb250
RGVzY3JpcHRpb24uZ2V0KCkpICsgIiAiICsgU3RyaW5nOjpudW1iZXIobV9zaXplKQorICAgICAg
ICAgICAgKyAobV9zeW50aGV0aWNCb2xkID8gIiBzeW50aGV0aWMgYm9sZCIgOiAiIikgKyAobV9z
eW50aGV0aWNPYmxpcXVlID8gIiBzeW50aGV0aWMgb2JsaXF1ZSIgOiAiIikgKyAobV9mb250T3Jp
ZW50YXRpb24gPyAiIHZlcnRpY2FsIG9yaWVudGF0aW9uIiA6ICIiKTsKIH0KICNlbmRpZgogCklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
UGFuZ28uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGFQYW5nby5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEN1c3RvbVBsYXRmb3JtRGF0YVBhbmdvLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+
Rm9udEN1c3RvbVBsYXRmCiB7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxp
YywgRm9udFJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMs
IEZvbnRPcmllbnRhdGlvbiwgRm9udFJlbmRlcmluZ01vZGUpCiB7CiAgICAgcmV0dXJuIEZvbnRQ
bGF0Zm9ybURhdGEobV9mb250RmFjZSwgc2l6ZSwgYm9sZCwgaXRhbGljKTsKIH0KSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRQbGF0Zm9ybURhdGFQYW5nby5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udFBsYXRmb3JtRGF0
YVBhbmdvLmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2d0ay9Gb250UGxhdGZvcm1EYXRhUGFuZ28uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsNyAr
MTI3LDcgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShjb25zdAogICAgIHBh
bmdvX2ZvbnRfZGVzY3JpcHRpb25fZnJlZShkZXNjcmlwdGlvbik7CiB9CiAKLUZvbnRQbGF0Zm9y
bURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxp
YykKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBi
b2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uKQogICAgIDogbV9jb250ZXh0KDApCiAg
ICAgLCBtX2ZvbnQoMCkKICAgICAsIG1fc2l6ZShzaXplKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ndGsvRm9udFBsYXRmb3JtRGF0YVBhbmdvLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udFBsYXRmb3JtRGF0YVBhbmdvLmgJKHJldmlz
aW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udFBsYXRmb3Jt
RGF0YVBhbmdvLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogCiAg
ICAgRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBBdG9taWNT
dHJpbmcmIGZhbWlseSk7CiAgICAgRm9udFBsYXRmb3JtRGF0YShjYWlyb19mb250X2ZhY2VfdCog
Zm9udEZhY2UsIGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMpOwotICAgIEZvbnRQ
bGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYyk7CisgICAgRm9u
dFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3Jp
ZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCk7CiAgICAgRm9udFBsYXRmb3Jt
RGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJik7CiAgICAgfkZvbnRQbGF0Zm9ybURhdGEoKTsK
IApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRD
dXN0b21QbGF0ZgogewogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURh
dGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZv
bnRSZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250
T3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlKQogewogICAgIHJldHVybiBGb250UGxhdGZv
cm1EYXRhKHNpemUsIGJvbGQsIGl0YWxpYyk7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2
aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3Qg
U3RyaW5nJik7CiAKLSAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGlu
dCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1h
bFJlbmRlcmluZ01vZGUpOworICAgICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURh
dGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiBmb250
T3JpZW50YXRpb24gPSBIb3Jpem9udGFsLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRl
cmluZ01vZGUpOwogICAgIH07CiAKICAgICBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKiBjcmVhdGVG
b250Q3VzdG9tUGxhdGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciopOwpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250UGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250UGxhdGZvcm1EYXRhLmgJKHJldmlzaW9u
IDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250UGxhdGZvcm1E
YXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICAgICAgeyB9CiAKICAgICAgICAgRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250
RGVzY3JpcHRpb24mLCBjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSk7Ci0gICAgICAgIEZvbnRQ
bGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUpOworICAgICAg
ICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlLCBG
b250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCk7CiAgICAgICAgIEZv
bnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYpOwogCiAgICAgICAgIH5Gb250
UGxhdGZvcm1EYXRhKCk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250
Q2FjaGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Rm9udENhY2hlTWFjLm1tCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQyLDcgKzE0Miw4
IEBAIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBGb250Q2FjaGU6OmdldEZvbnQKIAogICAgIEZvbnRQ
bGF0Zm9ybURhdGEgYWx0ZXJuYXRlRm9udChzdWJzdGl0dXRlRm9udCwgCiAgICAgICAgICFmb250
LmlzUGxhdGZvcm1Gb250KCkgJiYgaXNBcHBLaXRGb250V2VpZ2h0Qm9sZCh3ZWlnaHQpICYmICFp
c0FwcEtpdEZvbnRXZWlnaHRCb2xkKHN1YnN0aXR1dGVGb250V2VpZ2h0KSwKLSAgICAgICAgIWZv
bnQuaXNQbGF0Zm9ybUZvbnQoKSAmJiAodHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQpICYmICEo
c3Vic3RpdHV0ZUZvbnRUcmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkpOworICAgICAgICAhZm9u
dC5pc1BsYXRmb3JtRm9udCgpICYmICh0cmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkgJiYgIShz
dWJzdGl0dXRlRm9udFRyYWl0cyAmIE5TRm9udEl0YWxpY1RyYWl0KSwKKyAgICAgICAgcGxhdGZv
cm1EYXRhLm1fZm9udE9yaWVudGF0aW9uKTsKICAgICByZXR1cm4gZ2V0Q2FjaGVkRm9udERhdGEo
JmFsdGVybmF0ZUZvbnQpOwogfQogCkBAIC0yMTAsNyArMjExLDcgQEAgRm9udFBsYXRmb3JtRGF0
YSogRm9udENhY2hlOjpjcmVhdGVGb250UAogICAgIGJvb2wgc3ludGhldGljQm9sZCA9IGlzQXBw
S2l0Rm9udFdlaWdodEJvbGQod2VpZ2h0KSAmJiAhaXNBcHBLaXRGb250V2VpZ2h0Qm9sZChhY3R1
YWxXZWlnaHQpOwogICAgIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9ICh0cmFpdHMgJiBOU0ZvbnRJ
dGFsaWNUcmFpdCkgJiYgIShhY3R1YWxUcmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCk7CiAKLSAg
ICByZXR1cm4gbmV3IEZvbnRQbGF0Zm9ybURhdGEocGxhdGZvcm1Gb250LCBzeW50aGV0aWNCb2xk
LCBzeW50aGV0aWNPYmxpcXVlKTsKKyAgICByZXR1cm4gbmV3IEZvbnRQbGF0Zm9ybURhdGEocGxh
dGZvcm1Gb250LCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3JpcHRp
b24uZm9udE9yaWVudGF0aW9uKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzgsOSArMzgsOSBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiAg
ICAgQ0dGb250UmVsZWFzZShtX2NnRm9udCk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBi
b29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0
b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9v
bCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiBmb250T3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdN
b2RlKQogewotICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKG1fY2dGb250LCAoQVRTVUZvbnRJ
RCltX2F0c0ZvbnQsIHNpemUsIGJvbGQsIGl0YWxpYyk7CisgICAgcmV0dXJuIEZvbnRQbGF0Zm9y
bURhdGEobV9jZ0ZvbnQsIChBVFNVRm9udElEKW1fYXRzRm9udCwgc2l6ZSwgYm9sZCwgaXRhbGlj
LCBmb250T3JpZW50YXRpb24pOwogfQogCiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKiBjcmVhdGVG
b250Q3VzdG9tUGxhdGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciogYnVmZmVyKQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuaAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAK
ICNpZm5kZWYgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0
Zm9ybURhdGFfaAogCisjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9u
dFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9DRkJhc2UuaD4KICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNDEsNyArNDIsNyBAQCBzdHJ1Y3QgRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YSA6IE5vbmNvcHlhCiAgICAge30KICAgICB+Rm9udEN1c3RvbVBsYXRmb3Jt
RGF0YSgpOwogCi0gICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXpl
LCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRl
cmluZ01vZGUpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6
ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlv
biA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7
CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIApJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR2x5cGhQYWdlVHJlZU5vZGVNYWMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dseXBoUGFnZVRy
ZWVOb2RlTWFjLmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9HbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE1
ICs0MCw1OSBAQCBib29sIEdseXBoUGFnZTo6ZmlsbCh1bnNpZ25lZCBvZmZzZXQsIHVuCiAgICAg
Ym9vbCBoYXZlR2x5cGhzID0gZmFsc2U7CiAKICNpZm5kZWYgQlVJTERJTkdfT05fVElHRVIKLSAg
ICBWZWN0b3I8Q0dHbHlwaCwgNTEyPiBnbHlwaHMoYnVmZmVyTGVuZ3RoKTsKLSAgICB3a0dldEds
eXBoc0ZvckNoYXJhY3RlcnMoZm9udERhdGEtPnBsYXRmb3JtRGF0YSgpLmNnRm9udCgpLCBidWZm
ZXIsIGdseXBocy5kYXRhKCksIGJ1ZmZlckxlbmd0aCk7Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgaWYgKCFnbHlwaHNbaV0pCi0gICAgICAg
ICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBpLCAwLCAwKTsKLSAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBpLCBnbHlwaHNb
aV0sIGZvbnREYXRhKTsKLSAgICAgICAgICAgIGhhdmVHbHlwaHMgPSB0cnVlOworICAgIGlmIChm
b250RGF0YS0+cGxhdGZvcm1EYXRhKCkuZm9udE9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbCkg
eworICAgICAgICBWZWN0b3I8Q0dHbHlwaCwgNTEyPiBnbHlwaHMoYnVmZmVyTGVuZ3RoKTsKKyAg
ICAgICAgd2tHZXRHbHlwaHNGb3JDaGFyYWN0ZXJzKGZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKS5j
Z0ZvbnQoKSwgYnVmZmVyLCBnbHlwaHMuZGF0YSgpLCBidWZmZXJMZW5ndGgpOworICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICgh
Z2x5cGhzW2ldKQorICAgICAgICAgICAgICAgIHNldEdseXBoRGF0YUZvckluZGV4KG9mZnNldCAr
IGksIDAsIDApOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgc2V0R2x5cGhE
YXRhRm9ySW5kZXgob2Zmc2V0ICsgaSwgZ2x5cGhzW2ldLCBmb250RGF0YSk7CisgICAgICAgICAg
ICAgICAgaGF2ZUdseXBocyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
IGVsc2UgeworICAgICAgICAvLyBXZSBhc2sgQ29yZVRleHQgZm9yIHBvc3NpYmxlIHZlcnRpY2Fs
IHZhcmlhbnQgZ2x5cGhzCisgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc3RyaW5nKEFk
b3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnNOb0NvcHkoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgYnVmZmVyLCBidWZmZXJMZW5ndGgsIGtDRkFsbG9jYXRvck51bGwpKTsKKyAgICAgICAg
UmV0YWluUHRyPENGQXR0cmlidXRlZFN0cmluZ1JlZj4gYXR0cmlidXRlZFN0cmluZyhBZG9wdENG
LCBDRkF0dHJpYnV0ZWRTdHJpbmdDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc3RyaW5nLmdl
dCgpLCBmb250RGF0YS0+Z2V0Q0ZTdHJpbmdBdHRyaWJ1dGVzKDAsIHRydWUpKSk7CisgICAgICAg
IFJldGFpblB0cjxDVExpbmVSZWY+IGxpbmUoQWRvcHRDRiwgQ1RMaW5lQ3JlYXRlV2l0aEF0dHJp
YnV0ZWRTdHJpbmcoYXR0cmlidXRlZFN0cmluZy5nZXQoKSkpOworCisgICAgICAgIENGQXJyYXlS
ZWYgcnVuQXJyYXkgPSBDVExpbmVHZXRHbHlwaFJ1bnMobGluZS5nZXQoKSk7CisgICAgICAgIENG
SW5kZXggcnVuQ291bnQgPSBDRkFycmF5R2V0Q291bnQocnVuQXJyYXkpOworCisgICAgICAgIC8v
IEluaXRpYWxpemUgZ2x5cGggZW50cmllcworICAgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0g
MDsgaW5kZXggPCBsZW5ndGg7ICsraW5kZXgpCisgICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJ
bmRleChvZmZzZXQgKyBpbmRleCwgMCwgMCk7CisKKyAgICAgICAgYm9vbCBkb25lID0gZmFsc2U7
CisgICAgICAgIGZvciAoQ0ZJbmRleCByID0gMDsgciA8IHJ1bkNvdW50ICYmICFkb25lIDsgcisr
KSB7CisgICAgICAgICAgICAvLyBDVExpbmUgY291bGQgbWFwIGNoYXJhY3RlcnMgb3ZlciBtdWx0
aXBsZSBmb250cyB1c2luZyBpdHMgb3duIGZvbnQgZmFsbGJhY2sgbGlzdC4KKyAgICAgICAgICAg
IC8vIFdlIG5lZWQgdG8gcGljayBydW5zIHRoYXQgdXNlIHRoZSBleGFjdCBmb250IHdlIG5lZWQs
IGkuZS4sIGZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKS5jdEZvbnQoKS4KKyAgICAgICAgICAgIENU
UnVuUmVmIGN0UnVuID0gc3RhdGljX2Nhc3Q8Q1RSdW5SZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5k
ZXgocnVuQXJyYXksIHIpKTsKKyAgICAgICAgICAgIEFTU0VSVChDRkdldFR5cGVJRChjdFJ1bikg
PT0gQ1RSdW5HZXRUeXBlSUQoKSk7CisKKyAgICAgICAgICAgIENGRGljdGlvbmFyeVJlZiBhdHRy
aWJ1dGVzID0gQ1RSdW5HZXRBdHRyaWJ1dGVzKGN0UnVuKTsKKyAgICAgICAgICAgIENURm9udFJl
ZiBydW5Gb250ID0gc3RhdGljX2Nhc3Q8Q1RGb250UmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShh
dHRyaWJ1dGVzLCBrQ1RGb250QXR0cmlidXRlTmFtZSkpOworICAgICAgICAgICAgUmV0YWluUHRy
PENHRm9udFJlZj4gcnVuQ0dGb250KEFkb3B0Q0YsIENURm9udENvcHlHcmFwaGljc0ZvbnQocnVu
Rm9udCwgMCkpOworICAgICAgICAgICAgaWYgKENGRXF1YWwoZm9udERhdGEtPnBsYXRmb3JtRGF0
YSgpLmNnRm9udCgpLCBydW5DR0ZvbnQuZ2V0KCkpKSB7CisgICAgICAgICAgICAgICAgLy8gVGhp
cyBydW4gdXNlcyB0aGUgZm9udCB3ZSB3YW50LiBFeHRyYWN0IGdseXBocy4KKyAgICAgICAgICAg
ICAgICBDRkluZGV4IGdseXBoQ291bnQgPSBDVFJ1bkdldEdseXBoQ291bnQoY3RSdW4pOworICAg
ICAgICAgICAgICAgIFZlY3RvcjxDR0dseXBoLCA1MTI+IGdseXBocyhzdGF0aWNfY2FzdDxzaXpl
X3Q+KGdseXBoQ291bnQpKTsKKyAgICAgICAgICAgICAgICBDVFJ1bkdldEdseXBocyhjdFJ1biwg
Q0ZSYW5nZU1ha2UoMCwgMCksIGdseXBocy5kYXRhKCkpOworICAgICAgICAgICAgICAgIFZlY3Rv
cjxDRkluZGV4LCA1MTI+IHN0cmluZ0luZGljZXMoc3RhdGljX2Nhc3Q8c2l6ZV90PihnbHlwaENv
dW50KSk7CisgICAgICAgICAgICAgICAgQ1RSdW5HZXRTdHJpbmdJbmRpY2VzKGN0UnVuLCBDRlJh
bmdlTWFrZSgwLCAwKSwgc3RyaW5nSW5kaWNlcy5kYXRhKCkpOworCisgICAgICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGdseXBoQ291bnQ7ICsraSkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoc3RyaW5nSW5kaWNlc1tpXSA+PSBsZW5ndGgpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGRvbmUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGdseXBoc1tpXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsg
c3RyaW5nSW5kaWNlc1tpXSwgZ2x5cGhzW2ldLCBmb250RGF0YSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBoYXZlR2x5cGhzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KICNlbHNlCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUNvcmVUZXh0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250
RGF0YUNvcmVUZXh0LmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDEsMTUgKzQxLDE1IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotQ0ZEaWN0aW9uYXJ5UmVmIFNpbXBsZUZvbnREYXRhOjpnZXRDRlN0cmluZ0F0dHJpYnV0
ZXMoVHlwZXNldHRpbmdGZWF0dXJlcyB0eXBlc2V0dGluZ0ZlYXR1cmVzKSBjb25zdAorQ0ZEaWN0
aW9uYXJ5UmVmIFNpbXBsZUZvbnREYXRhOjpnZXRDRlN0cmluZ0F0dHJpYnV0ZXMoVHlwZXNldHRp
bmdGZWF0dXJlcyB0eXBlc2V0dGluZ0ZlYXR1cmVzLCBib29sIGlnbm9yZURlZmF1bHRGZWF0dXJl
cykgY29uc3QKIHsKLSAgICB1bnNpZ25lZCBrZXkgPSB0eXBlc2V0dGluZ0ZlYXR1cmVzICsgMTsK
KyAgICB1bnNpZ25lZCBrZXkgPSAodHlwZXNldHRpbmdGZWF0dXJlcyArIDEpIHwgKHBsYXRmb3Jt
RGF0YSgpLmZvbnRPcmllbnRhdGlvbigpIDw8IDgpOwogICAgIHBhaXI8SGFzaE1hcDx1bnNpZ25l
ZCwgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gPjo6aXRlcmF0b3IsIGJvb2w+IGFkZFJlc3Vs
dCA9IG1fQ0ZTdHJpbmdBdHRyaWJ1dGVzLmFkZChrZXksIFJldGFpblB0cjxDRkRpY3Rpb25hcnlS
ZWY+KCkpOwogICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+JiBhdHRyaWJ1dGVzRGljdGlv
bmFyeSA9IGFkZFJlc3VsdC5maXJzdC0+c2Vjb25kOwogICAgIGlmICghYWRkUmVzdWx0LnNlY29u
ZCkKICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXNEaWN0aW9uYXJ5LmdldCgpOwogCi0gICAgYm9v
bCBhbGxvd0xpZ2F0dXJlcyA9IHBsYXRmb3JtRGF0YSgpLmFsbG93c0xpZ2F0dXJlcygpIHx8ICh0
eXBlc2V0dGluZ0ZlYXR1cmVzICYgTGlnYXR1cmVzKTsKKyAgICBib29sIGFsbG93TGlnYXR1cmVz
ID0gKCFpZ25vcmVEZWZhdWx0RmVhdHVyZXMgJiYgcGxhdGZvcm1EYXRhKCkuYWxsb3dzTGlnYXR1
cmVzKCkpIHx8ICh0eXBlc2V0dGluZ0ZlYXR1cmVzICYgTGlnYXR1cmVzKTsKIAogICAgIHN0YXRp
YyBjb25zdCBpbnQgbGlnYXR1cmVzTm90QWxsb3dlZFZhbHVlID0gMDsKICAgICBzdGF0aWMgQ0ZO
dW1iZXJSZWYgbGlnYXR1cmVzTm90QWxsb3dlZCA9IENGTnVtYmVyQ3JlYXRlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIGtDRk51bWJlckludFR5cGUsICZsaWdhdHVyZXNOb3RBbGxvd2VkVmFsdWUpOwpA
QCAtNjAsMTYgKzYwLDI1IEBAIENGRGljdGlvbmFyeVJlZiBTaW1wbGVGb250RGF0YTo6Z2V0Q0ZT
dHIKICAgICBpZiAoISh0eXBlc2V0dGluZ0ZlYXR1cmVzICYgS2VybmluZykpIHsKICAgICAgICAg
c3RhdGljIGNvbnN0IGZsb2F0IGtlcm5pbmdBZGp1c3RtZW50VmFsdWUgPSAwOwogICAgICAgICBz
dGF0aWMgQ0ZOdW1iZXJSZWYga2VybmluZ0FkanVzdG1lbnQgPSBDRk51bWJlckNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJGbG9hdFR5cGUsICZrZXJuaW5nQWRqdXN0bWVudFZh
bHVlKTsKLSAgICAgICAgc3RhdGljIGNvbnN0IHZvaWQqIGtleXNXaXRoS2VybmluZ0Rpc2FibGVk
W10gPSB7IGtDVEZvbnRBdHRyaWJ1dGVOYW1lLCBrQ1RLZXJuQXR0cmlidXRlTmFtZSwga0NUTGln
YXR1cmVBdHRyaWJ1dGVOYW1lIH07Ci0gICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlc1dpdGhLZXJu
aW5nRGlzYWJsZWRbXSA9IHsgcGxhdGZvcm1EYXRhKCkuY3RGb250KCksIGtlcm5pbmdBZGp1c3Rt
ZW50LCBhbGxvd0xpZ2F0dXJlcwotICAgICAgICAgICAgPyBsaWdhdHVyZXNBbGxvd2VkIDogbGln
YXR1cmVzTm90QWxsb3dlZCB9OworICAgICAgICBzdGF0aWMgY29uc3Qgdm9pZCoga2V5c1dpdGhL
ZXJuaW5nRGlzYWJsZWRbXSA9IHsgICAga0NURm9udEF0dHJpYnV0ZU5hbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQ1RLZXJu
QXR0cmlidXRlTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGtDVExpZ2F0dXJlQXR0cmlidXRlTmFtZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtDVFZlcnRp
Y2FsRm9ybXNBdHRyaWJ1dGVOYW1lIH07CisgICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlc1dpdGhL
ZXJuaW5nRGlzYWJsZWRbXSA9IHsgICAgICAgICBwbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGtlcm5pbmdBZGp1c3RtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dMaWdhdHVyZXMgPyBsaWdhdHVyZXNBbGxvd2Vk
IDogbGlnYXR1cmVzTm90QWxsb3dlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwbGF0Zm9ybURhdGEoKS5mb250T3JpZW50YXRp
b24oKSA9PSBWZXJ0aWNhbCkgPyBrQ0ZCb29sZWFuVHJ1ZSA6IGtDRkJvb2xlYW5GYWxzZSB9Owog
ICAgICAgICBhdHRyaWJ1dGVzRGljdGlvbmFyeS5hZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZSgw
LCBrZXlzV2l0aEtlcm5pbmdEaXNhYmxlZCwgdmFsdWVzV2l0aEtlcm5pbmdEaXNhYmxlZCwKICAg
ICAgICAgICAgIHNpemVvZihrZXlzV2l0aEtlcm5pbmdEaXNhYmxlZCkgLyBzaXplb2YoKmtleXNX
aXRoS2VybmluZ0Rpc2FibGVkKSwKICAgICAgICAgICAgICZrQ0ZDb3B5U3RyaW5nRGljdGlvbmFy
eUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICB9
IGVsc2UgewogICAgICAgICAvLyBCeSBvbWl0dGluZyB0aGUga0NUS2VybkF0dHJpYnV0ZU5hbWUg
YXR0cmlidXRlLCB3ZSBnZXQgQ29yZSBUZXh0J3Mgc3RhbmRhcmQga2VybmluZy4KLSAgICAgICAg
c3RhdGljIGNvbnN0IHZvaWQqIGtleXNXaXRoS2VybmluZ0VuYWJsZWRbXSA9IHsga0NURm9udEF0
dHJpYnV0ZU5hbWUsIGtDVExpZ2F0dXJlQXR0cmlidXRlTmFtZSB9OwotICAgICAgICBjb25zdCB2
b2lkKiB2YWx1ZXNXaXRoS2VybmluZ0VuYWJsZWRbXSA9IHsgcGxhdGZvcm1EYXRhKCkuY3RGb250
KCksIGFsbG93TGlnYXR1cmVzID8gbGlnYXR1cmVzQWxsb3dlZCA6IGxpZ2F0dXJlc05vdEFsbG93
ZWQgfTsKKyAgICAgICAgc3RhdGljIGNvbnN0IHZvaWQqIGtleXNXaXRoS2VybmluZ0VuYWJsZWRb
XSA9IHsgICAgIGtDVEZvbnRBdHRyaWJ1dGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0NUTGlnYXR1cmVBdHRyaWJ1dGVO
YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAga0NUVmVydGljYWxGb3Jtc0F0dHJpYnV0ZU5hbWUgfTsKKyAgICAgICAgY29uc3Qg
dm9pZCogdmFsdWVzV2l0aEtlcm5pbmdFbmFibGVkW10gPSB7ICAgICAgICAgIHBsYXRmb3JtRGF0
YSgpLmN0Rm9udCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYWxsb3dMaWdhdHVyZXMgPyBsaWdhdHVyZXNBbGxvd2VkIDogbGln
YXR1cmVzTm90QWxsb3dlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChwbGF0Zm9ybURhdGEoKS5mb250T3JpZW50YXRpb24oKSA9
PSBWZXJ0aWNhbCkgPyBrQ0ZCb29sZWFuVHJ1ZSA6IGtDRkJvb2xlYW5GYWxzZSB9OwogICAgICAg
ICBhdHRyaWJ1dGVzRGljdGlvbmFyeS5hZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZSgwLCBrZXlz
V2l0aEtlcm5pbmdFbmFibGVkLCB2YWx1ZXNXaXRoS2VybmluZ0VuYWJsZWQsCiAgICAgICAgICAg
ICBzaXplb2Yoa2V5c1dpdGhLZXJuaW5nRW5hYmxlZCkgLyBzaXplb2YoKmtleXNXaXRoS2Vybmlu
Z0VuYWJsZWQpLAogICAgICAgICAgICAgJmtDRkNvcHlTdHJpbmdEaWN0aW9uYXJ5S2V5Q2FsbEJh
Y2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0JKHJldmlz
aW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERh
dGFNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQxNywxMSArNDE3LDkgQEAgRmxvYXRSZWN0IFNp
bXBsZUZvbnREYXRhOjpwbGF0Zm9ybUJvdW5kcwogewogICAgIEZsb2F0UmVjdCBib3VuZGluZ0Jv
eDsKICNpZm5kZWYgQlVJTERJTkdfT05fVElHRVIKLSAgICBDR1JlY3QgYm94OwotICAgIENHRm9u
dEdldEdseXBoQkJveGVzKHBsYXRmb3JtRGF0YSgpLmNnRm9udCgpLCAmZ2x5cGgsIDEsICZib3gp
OwotICAgIGZsb2F0IHBvaW50U2l6ZSA9IHBsYXRmb3JtRGF0YSgpLm1fc2l6ZTsKLSAgICBDR0Zs
b2F0IHNjYWxlID0gcG9pbnRTaXplIC8gdW5pdHNQZXJFbSgpOwotICAgIGJvdW5kaW5nQm94ID0g
Q0dSZWN0QXBwbHlBZmZpbmVUcmFuc2Zvcm0oYm94LCBDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2Fs
ZShzY2FsZSwgLXNjYWxlKSk7CisgICAgYm91bmRpbmdCb3ggPSBDVEZvbnRHZXRCb3VuZGluZ1Jl
Y3RzRm9yR2x5cGhzKG1fcGxhdGZvcm1EYXRhLmN0Rm9udCgpLAorICAgICAgICAgICAgICAgICAg
ICBtX3BsYXRmb3JtRGF0YS5mb250T3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbCA/IGtDVEZvbnRW
ZXJ0aWNhbE9yaWVudGF0aW9uIDoga0NURm9udEhvcml6b250YWxPcmllbnRhdGlvbiwgJmdseXBo
LCBOVUxMLCAxKTsKKyAgICBib3VuZGluZ0JveC5zZXRZKC1ib3VuZGluZ0JveC5ib3R0b20oKSk7
CiAjZWxzZQogICAgIC8vIEZJWE1FOiBDdXN0b20gZm9udHMgZG9uJ3QgaGF2ZSBOU0ZvbnRzLCBz
byB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3QgY29tcHV0ZSBjb3JyZWN0IGJvdW5kcyBmb3IgdGhlc2Ug
b24gVGlnZXIuCiAgICAgaWYgKCFtX3BsYXRmb3JtRGF0YS5mb250KCkpCkBAIC00MzcsMTQgKzQz
NSwxOCBAQCBGbG9hdFJlY3QgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtQm91bmRzCiAKIGZsb2F0
IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0
CiB7Ci0gICAgTlNGb250KiBmb250ID0gcGxhdGZvcm1EYXRhKCkuZm9udCgpOwotICAgIGZsb2F0
IHBvaW50U2l6ZSA9IHBsYXRmb3JtRGF0YSgpLm1fc2l6ZTsKLSAgICBDR0FmZmluZVRyYW5zZm9y
bSBtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUocG9pbnRTaXplLCBwb2ludFNpemUpOwog
ICAgIENHU2l6ZSBhZHZhbmNlOwotICAgIGlmICghd2tHZXRHbHlwaFRyYW5zZm9ybWVkQWR2YW5j
ZXMocGxhdGZvcm1EYXRhKCkuY2dGb250KCksIGZvbnQsICZtLCAmZ2x5cGgsICZhZHZhbmNlKSkg
ewotICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjYWNoZSBnbHlwaCB3aWR0aHMgZm9yICVA
ICVmIiwgW2ZvbnQgZGlzcGxheU5hbWVdLCBwb2ludFNpemUpOwotICAgICAgICBhZHZhbmNlLndp
ZHRoID0gMDsKLSAgICB9CisgICAgaWYgKG1fcGxhdGZvcm1EYXRhLmZvbnRPcmllbnRhdGlvbigp
ID09IEhvcml6b250YWwpIHsKKyAgICAgICAgTlNGb250KiBmb250ID0gcGxhdGZvcm1EYXRhKCku
Zm9udCgpOworICAgICAgICBmbG9hdCBwb2ludFNpemUgPSBwbGF0Zm9ybURhdGEoKS5tX3NpemU7
CisgICAgICAgIENHQWZmaW5lVHJhbnNmb3JtIG0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2Fs
ZShwb2ludFNpemUsIHBvaW50U2l6ZSk7CisgICAgICAgIGlmICghd2tHZXRHbHlwaFRyYW5zZm9y
bWVkQWR2YW5jZXMocGxhdGZvcm1EYXRhKCkuY2dGb250KCksIGZvbnQsICZtLCAmZ2x5cGgsICZh
ZHZhbmNlKSkgeworICAgICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gY2FjaGUgZ2x5cGgg
d2lkdGhzIGZvciAlQCAlZiIsIFtmb250IGRpc3BsYXlOYW1lXSwgcG9pbnRTaXplKTsKKyAgICAg
ICAgICAgIGFkdmFuY2Uud2lkdGggPSAwOworICAgICAgICB9CisgICAgfSBlbHNlCisgICAgICAg
IENURm9udEdldEFkdmFuY2VzRm9yR2x5cGhzKG1fcGxhdGZvcm1EYXRhLmN0Rm9udCgpLCBrQ1RG
b250VmVydGljYWxPcmllbnRhdGlvbiwgJmdseXBoLCAmYWR2YW5jZSwgMSk7CisKICAgICByZXR1
cm4gYWR2YW5jZS53aWR0aCArIG1fc3ludGhldGljQm9sZE9mZnNldDsKIH0KIApJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhLmgJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAg
c3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgOiBOb25jb3B5YQogICAgIC8vIGZvciB1c2Ug
d2l0aCBRRm9udERhdGFiYXNlOjphZGRBcHBsaWNhdGlvbkZvbnQvcmVtb3ZlQXBwbGljYXRpb25G
b250CiAgICAgaW50IG1faGFuZGxlOwogCi0gICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZv
cm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9k
ZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRm
b3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9u
IGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFs
UmVuZGVyaW5nTW9kZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBT
dHJpbmcmKTsKIH07CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGFRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUXQuY3BwCShyZXZpc2lvbiA2OTgzMikKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YVF0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojp+Rm9udEN1c3RvbVBsYXRmCiAgICAgUUZvbnREYXRhYmFzZTo6cmVtb3ZlQXBwbGljYXRpb25G
b250KG1faGFuZGxlKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBG
b250UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0
YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9u
dE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICBRRm9udCBmb250OwogICAg
IGZvbnQuc2V0RmFtaWx5KFFGb250RGF0YWJhc2U6OmFwcGxpY2F0aW9uRm9udEZhbWlsaWVzKG1f
aGFuZGxlKVswXSk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRQbGF0
Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0Zv
bnRQbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMs
NyBAQCBwdWJsaWM6CiAKIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgOiBwdWJsaWMgRmFzdEFsbG9j
QmFzZSB7CiBwdWJsaWM6Ci0gICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJv
bGQsIGJvb2wgb2JsaXF1ZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29s
IGJvbGQsIGJvb2wgb2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhv
cml6b250YWwpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSAm
KTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0
b21pY1N0cmluZyYgZmFtaWx5TmFtZSwgaW50IHdvcmRTcGFjaW5nID0gMCwgaW50IGxldHRlclNw
YWNpbmcgPSAwKTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IFFGb250JiBmb250KQpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UGxhdGZvcm1EYXRhUXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0
YVF0LmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L0ZvbnRQbGF0Zm9ybURhdGFRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAg
c3RhdGljIGlubGluZSBib29sIGlzRW10cHlWYWx1ZShjb25zdCBmbAogICAgIHJldHVybiAhYm9s
ZCAmJiAhb2JsaXF1ZSAmJiBzaXplID09IDAuZjsKIH0KIAotRm9udFBsYXRmb3JtRGF0YTo6Rm9u
dFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSkKK0ZvbnRQ
bGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29s
IG9ibGlxdWUsIEZvbnRPcmllbnRhdGlvbikKIHsKICAgICBpZiAoaXNFbXRweVZhbHVlKHNpemUs
IGJvbGQsIG9ibGlxdWUpKQogICAgICAgICBtX2RhdGEgPSAwOwpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcg
QEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogI2VuZGlmCiB9CiAK
LUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0
YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUgbW9k
ZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3Jt
RGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uLCBG
b250UmVuZGVyaW5nTW9kZSBtb2RlKQogewogI2lmIE9TKFdJTkRPV1MpCiAgICAgQVNTRVJUKG1f
Zm9udFJlZmVyZW5jZSk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5ODMyKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAko
d29ya2luZyBjb3B5KQpAQCAtNjIsNyArNjIsNyBAQCBzdHJ1Y3QgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YSA6IE5vbmNvcHlhCiAKICAgICB+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpOwogCi0gICAg
Rm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJv
b2wgaXRhbGljLAorICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6
ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlv
biA9IEhvcml6b250YWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZv
bnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAKICAgICBzdGF0aWMgYm9v
bCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCShy
ZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIEZvbnRD
dXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGYKICAgICB9CiB9CiAKLUZvbnRQbGF0
Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6
ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9k
ZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3Jt
RGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uLCBG
b250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKQogewogICAgIEFTU0VSVChtX2ZvbnRSZWZl
cmVuY2UpOwogICAgIEFTU0VSVChUMmVtYmVkTGlicmFyeSgpKTsKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJ
KHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBAIHN0cnVj
dCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKIAogICAgIH5Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhKCk7CiAKLSAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50
IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFs
UmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGlu
dCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVu
dGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdN
b2RlKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwog
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhQ2Fpcm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojp+Rm9udEN1c3RvbVBsYXRmCiAgICBjYWlyb19mb250X2ZhY2VfZGVzdHJveShtX2ZvbnRGYWNl
KTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxh
dGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKQorRm9udFBsYXRmb3Jt
RGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBi
b29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24pCiB7CiAgICAgcmV0dXJuIEZv
bnRQbGF0Zm9ybURhdGEobV9mb250RmFjZSwgc2l6ZSwgYm9sZCwgaXRhbGljKTsKIH0KSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWly
by5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGFDYWlyby5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zOSw3ICszOSw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9u
Y29weWEKICAgICB9CiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKIAotICAgIEZvbnRQ
bGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0
YWxpYyk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBi
b29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0g
SG9yaXpvbnRhbCk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJp
bmcmKTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3Jt
RGF0YUNhaXJvV2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmgJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmgJKHdvcmtp
bmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogCiAgICAgRm9udFBsYXRmb3JtRGF0
YShIRk9OVCwgZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUsIGJvb2wgdXNlR0RJ
KTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNhaXJvX2ZvbnRfZmFjZV90KiBmb250RmFjZSwgZmxv
YXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYyk7Ci0gICAgRm9udFBsYXRmb3JtRGF0YShm
bG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKTsKKyAgICBGb250UGxhdGZvcm1EYXRh
KGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiBmb250
T3JpZW50YXRpb24gPSBIb3Jpem9udGFsKTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZv
bnRQbGF0Zm9ybURhdGEmKTsKICAgICB+Rm9udFBsYXRmb3JtRGF0YSgpOwogCkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhV2luLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhV2lu
LmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9G
b250UGxhdGZvcm1EYXRhV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEsNyArNzEsNyBAQCBG
b250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKEhGT05UCiAgICAgUmVsZWFzZURDKDAs
IGhkYyk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6
ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUpCitGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZv
cm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlLCBGb250T3JpZW50YXRp
b24pCiAgICAgOiBtX3NpemUoc2l6ZSkKICNpZiBQTEFURk9STShDRykKICAgICAsIG1fY2dGb250
KDApCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
Y2UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9u
dEN1c3RvbVBsYXRmCiAgICAgICAgIGdfY3VzdG9tRm9udENhY2hlLT51bnJlZ2lzdGVyRm9udCht
X25hbWUpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZv
bnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5k
ZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0
Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFs
aWMsIEZvbnRPcmllbnRhdGlvbiwgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSkKIHsK
ICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2M7CiAgICAgZm9udERlc2Muc2V0Q29tcHV0ZWRT
aXplKHNpemUpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5ODMyKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIH5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCk7CiAKLSAgICAgICAgRm9udFBsYXRmb3JtRGF0
YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250
UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgICAgICBGb250UGxhdGZv
cm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMs
IEZvbnRPcmllbnRhdGlvbiBmb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsLCBGb250UmVuZGVy
aW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOwogCiAgICAgICAgIHN0YXRpYyBib29sIHN1
cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbmNlL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY5
ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250UGxhdGZvcm1EYXRh
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU1LDcgKzM1NSw3IEBAIEZvbnRQbGF0Zm9ybURhdGE6
OkZvbnRQbGF0Zm9ybURhdGEoY29uc3QKICAgICBtX3ByaXZhdGUgPSBuZXcgRm9udFBsYXRmb3Jt
UHJpdmF0ZURhdGEoZm9udERlc2NyaXB0aW9uLCBmYW1pbHkpOwogfQogCi1Gb250UGxhdGZvcm1E
YXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVl
KQorRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJv
bGQsIGJvb2wgb2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uKQogewogICAgIGlmICghc2l6ZSkKICAg
ICAgICAgbV9wcml2YXRlID0gMDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
Y2UvRm9udFBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwdWJsaWM6CiAK
ICAgICAgICAgRm9udFBsYXRmb3JtRGF0YSgpOiBtX3ByaXZhdGUoMCkge30KLSAgICAgICAgRm9u
dFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSk7CisgICAg
ICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUs
IEZvbnRPcmllbnRhdGlvbiBmb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsKTsKIAogICAgICAg
ICAvLyBVc2VkIGZvciBkZWxldGVkIHZhbHVlcyBpbiB0aGUgZm9udCBjYWNoZSdzIGhhc2ggdGFi
bGVzLgogICAgICAgICBGb250UGxhdGZvcm1EYXRhKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVl
VHlwZSkgOiBtX3ByaXZhdGUoKEZvbnRQbGF0Zm9ybVByaXZhdGVEYXRhKikxKSB7fQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuY3BwCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd3gvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcg
KzMxLDcgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogewogfQog
Ci1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURh
dGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlKQor
Rm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRh
KGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24sIEZvbnRS
ZW5kZXJpbmdNb2RlKQogewogICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKHNpemUsIGJvbGQs
IGl0YWxpYyk7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3d4L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkod29ya2luZyBj
b3B5KQpAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3Rh
dGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAKLSAgICAgICAgRm9udFBs
YXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgICAgICBG
b250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9v
bCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiBmb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsLCBG
b250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOwogICAgIH07CiAKICAgICBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhKiBjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKFNoYXJl
ZEJ1ZmZlciopOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250UGxhdGZv
cm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250
UGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93eC9Gb250UGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTkxLDcgKzkxLDcg
QEAgcHVibGljOgogCiAgICAgRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24m
LCBjb25zdCBBdG9taWNTdHJpbmcmKTsKICAgICAKLSAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0
IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMpCisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9h
dCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVu
dGF0aW9uID0gSG9yaXpvbnRhbCkKICAgICA6IG1fZm9udFN0YXRlKFVOSU5JVElBTElaRUQpCiAg
ICAgLCBtX2ZvbnQoMCkKICAgICAsIG1fc2l6ZShzaXplKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70830</attachid>
            <date>2010-10-14 21:29:38 -0700</date>
            <delta_ts>2010-10-14 22:01:57 -0700</delta_ts>
            <desc>[another build test] Fixed build error on non-Mac platforms.</desc>
            <filename>WK46973Patch_101015-2.txt</filename>
            <type>text/plain</type>
            <size>59130</size>
            <attacher name="Takumi Takano">takano</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTgzNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTA3IEBACisyMDEwLTEwLTE0ICB0YWthbm8gdGFrdW1pICA8dGFrYW5vMUBhc2lh
LmFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOZWVkIHRvIHN3YXAgZ2x5cGhzIGZvciB2ZXJ0aWNhbCB3cml0aW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk3MworCisgICAgICAgIE1h
ZGUgY2hhbmdlcyB0byBwYXNzIHRoZSB3cml0aW5nLW1vZGUgb3JpZW50YXRpb24gZmxhZyBpbiBS
ZW5kZXJTdHlsZSBkb3duIHRvIEZvbnRQbGF0Zm9ybURhdGEsCisgICAgICAgIGFuZCB1bHRpbWF0
ZWx5IHRvIENvcmVUZXh0IEFQSXMgaW4gYm90aCBmb250IGNvbXBsZXggcGF0aCBhbmQgZmFzdCBw
YXRoLgorCisgICAgICAgIERvZXNuJ3QgYWZmZWN0IGFueSB0ZXN0cyB5ZXQuCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTb3VyY2U6OmdldEZvbnREYXRhKToKKyAgICAg
ICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHls
ZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkRm9udC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9t
RGF0YSk6CisgICAgICAgICogbG9hZGVyL0NhY2hlZEZvbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3Jt
RGF0YUNhY2hlS2V5OjpGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbXB1dGVIYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0Q2FjaGVk
Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2Ny
aXB0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OkZvbnREZXNjcmlw
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OmZvbnRPcmllbnRhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnNldEZvbnRPcmllbnRhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246Om9wZXJhdG9yPT0pOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9y
bURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURh
dGFGcmVlVHlwZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ZvbnRQbGF0Zm9y
bURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZv
cm1EYXRhQ2hyb21pdW1XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRm9udFBsYXRmb3JtRGF0YUNocm9taXVtV2luLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUxpbnV4Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpG
b250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRQbGF0Zm9ybURhdGE6OmZvbnRPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGb250
UGxhdGZvcm1EYXRhOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6
Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0
Zm9ybURhdGFDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZv
bnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6b3Bl
cmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OmRlc2NyaXB0aW9u
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEN1c3RvbVBsYXRmb3JtRGF0
YVBhbmdvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZv
bnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250UGxh
dGZvcm1EYXRhUGFuZ28uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6
Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRQ
bGF0Zm9ybURhdGFQYW5nby5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBs
YXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2hhaWt1L0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRm9udENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpn
ZXRGb250RGF0YUZvckNoYXJhY3RlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpj
cmVhdGVGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9HbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
bHlwaFBhZ2U6OmZpbGwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVG
b250RGF0YUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpn
ZXRDRlN0cmluZ0F0dHJpYnV0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9T
aW1wbGVGb250RGF0YU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpw
bGF0Zm9ybUJvdW5kc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRh
OjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9x
dC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGFRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxh
dGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0
Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhQ2Fpcm8uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBs
YXRmb3JtRGF0YUNhaXJvV2luLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Zv
bnRQbGF0Zm9ybURhdGFXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2Uv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b250UGxhdGZvcm1Qcml2YXRlRGF0YTo6Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0
YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRm
b3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRQbGF0Zm9ybURh
dGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURh
dGEpOgorCiAyMDEwLTEwLTE0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcgYW5kIERhcmluIEFkbGVyLgpJbmRleDogV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29w
eSkKQEAgLTM3Myw3ICszNzMsNyBAQCBfX1pON1dlYkNvcmUxNkRldmljZU1vdGlvbkRhdGExMkFj
Y2VsZXJhCiBfX1pON1dlYkNvcmUxNkRldmljZU1vdGlvbkRhdGExMlJvdGF0aW9uUmF0ZTZjcmVh
dGVFYmRiZGJkCiBfX1pON1dlYkNvcmUxNkRldmljZU1vdGlvbkRhdGE2Y3JlYXRlRU4zV1RGMTBQ
YXNzUmVmUHRySU5TMF8xMkFjY2VsZXJhdGlvbkVFRVM0X05TMl9JTlMwXzEyUm90YXRpb25SYXRl
RUVFYmQKIF9fWk43V2ViQ29yZTE2Rm9udEZhbGxiYWNrTGlzdDE1cmVsZWFzZUZvbnREYXRhRXYK
LV9fWk43V2ViQ29yZTE2Rm9udFBsYXRmb3JtRGF0YUMxRVA2TlNGb250YmIKK19fWk43V2ViQ29y
ZTE2Rm9udFBsYXRmb3JtRGF0YUMxRVA2TlNGb250YmJOU18xNUZvbnRPcmllbnRhdGlvbkUKIF9f
Wk43V2ViQ29yZTE2Rm9udFBsYXRmb3JtRGF0YUQxRXYKIF9fWk43V2ViQ29yZTE2SFRNTElucHV0
RWxlbWVudDEzc2V0QXV0b2ZpbGxlZEViCiBfX1pON1dlYkNvcmUxNkxlZ2FjeVdlYkFyY2hpdmUx
OWNyZWF0ZUZyb21TZWxlY3Rpb25FUE5TXzVGcmFtZUUKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU0Zv
bnRGYWNlU291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNv
dXJjZS5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3Vy
Y2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjIsNyArMTYyLDcgQEAgU2ltcGxlRm9udERhdGEq
IENTU0ZvbnRGYWNlU291cmNlOjpnZXRGbwogICAgICAgICAgICAgICAgIGlmICghbV9mb250LT5l
bnN1cmVDdXN0b21Gb250RGF0YSgpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKIAot
ICAgICAgICAgICAgICAgIGZvbnREYXRhLnNldChuZXcgU2ltcGxlRm9udERhdGEobV9mb250LT5w
bGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmb250RGVzY3JpcHRpb24uY29tcHV0ZWRQaXhlbFNp
emUoKSwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RGVzY3JpcHRpb24ucmVu
ZGVyaW5nTW9kZSgpKSwgdHJ1ZSwgZmFsc2UpKTsKKyAgICAgICAgICAgICAgICBmb250RGF0YS5z
ZXQobmV3IFNpbXBsZUZvbnREYXRhKG1fZm9udC0+cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEo
Zm9udERlc2NyaXB0aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCksIHN5bnRoZXRpY0JvbGQsIHN5bnRo
ZXRpY0l0YWxpYywgZm9udERlc2NyaXB0aW9uLmZvbnRPcmllbnRhdGlvbigpLCBmb250RGVzY3Jp
cHRpb24ucmVuZGVyaW5nTW9kZSgpKSwgdHJ1ZSwgZmFsc2UpKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfSBlbHNlIHsKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQpJbmRleDogV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1NzEsMTAgKzU1NzEsMTQgQEAgdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogI2VuZGlmIAogCiAgICAgLy8gQ1NTIFRl
eHQgTGF5b3V0IE1vZHVsZSBMZXZlbCAzOiBWZXJ0aWNhbCB3cml0aW5nIHN1cHBvcnQKLSAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0V3JpdGluZ01vZGU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdFdyaXRpbmdNb2RlOiB7CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMX0FO
RF9QUklNSVRJVkUod3JpdGluZ01vZGUsIFdyaXRpbmdNb2RlKQorICAgICAgICBGb250RGVzY3Jp
cHRpb24gZm9udERlc2NyaXB0aW9uID0gbV9zdHlsZS0+Zm9udERlc2NyaXB0aW9uKCk7CisgICAg
ICAgIGZvbnREZXNjcmlwdGlvbi5zZXRGb250T3JpZW50YXRpb24obV9zdHlsZS0+aXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWwgOiBWZXJ0aWNhbCk7CisgICAgICAgIGlmICht
X3N0eWxlLT5zZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKSkKKyAgICAgICAgICAg
IG1fZm9udERpcnR5ID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwotCisgICAgfQogI2lmIEVOQUJM
RShTVkcpCiAgICAgZGVmYXVsdDoKICAgICAgICAgLy8gVHJ5IHRoZSBTVkcgcHJvcGVydGllcwpJ
bmRleDogV2ViQ29yZS9sb2FkZXIvQ2FjaGVkRm9udC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9sb2FkZXIvQ2FjaGVkRm9udC5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9sb2Fk
ZXIvQ2FjaGVkRm9udC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNyw3ICsxMTcsNyBAQCBib29s
IENhY2hlZEZvbnQ6OmVuc3VyZUN1c3RvbUZvbnREYXRhKCkKICAgICByZXR1cm4gbV9mb250RGF0
YTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3Vz
dG9tRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBDYWNoZWRGb250OjpwbGF0Zm9y
bURhdGFGcm9tQ3VzdG9tRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBG
b250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJp
bmdNb2RlKQogewogI2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgaWYgKG1fZXh0ZXJuYWxTVkdE
b2N1bWVudCkKQEAgLTEyNSw3ICsxMjUsNyBAQCBGb250UGxhdGZvcm1EYXRhIENhY2hlZEZvbnQ6
OnBsYXRmb3JtRGF0CiAjZW5kaWYKICNpZmRlZiBTVE9SRV9GT05UX0NVU1RPTV9QTEFURk9STV9E
QVRBCiAgICAgQVNTRVJUKG1fZm9udERhdGEpOwotICAgIHJldHVybiBtX2ZvbnREYXRhLT5mb250
UGxhdGZvcm1EYXRhKHN0YXRpY19jYXN0PGludD4oc2l6ZSksIGJvbGQsIGl0YWxpYywgcmVuZGVy
aW5nTW9kZSk7CisgICAgcmV0dXJuIG1fZm9udERhdGEtPmZvbnRQbGF0Zm9ybURhdGEoc3RhdGlj
X2Nhc3Q8aW50PihzaXplKSwgYm9sZCwgaXRhbGljLCBmb250T3JpZW50YXRpb24sIHJlbmRlcmlu
Z01vZGUpOwogI2Vsc2UKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YSgpOwogI2VuZGlmCklu
ZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9s
b2FkZXIvQ2FjaGVkRm9udC5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvbG9hZGVyL0Nh
Y2hlZEZvbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBDYWNo
ZWRGb250X2gKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCisjaW5jbHVkZSAiRm9udERl
c2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKQEAgLTYyLDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZvaWQgYmVnaW5M
b2FkSWZOZWVkZWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGRsKTsKIAogICAgIGJvb2wgZW5zdXJl
Q3VzdG9tRm9udERhdGEoKTsKLSAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YUZyb21D
dXN0b21EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJp
bmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBwbGF0
Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRl
cmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKIAogI2lmIEVOQUJMRShTVkdfRk9OVFMp
CiAgICAgYm9vbCBpc1NWR0ZvbnQoKSBjb25zdCB7IHJldHVybiBtX2lzU1ZHRm9udDsgfQpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAkocmV2aXNpb24gNjk4MzIp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTU1LDEzICs1NSwxNCBAQCBGb250Q2FjaGU6OkZvbnRDYWNoZSgpCiAKIHN0cnVjdCBG
b250UGxhdGZvcm1EYXRhQ2FjaGVLZXkgOiBGYXN0QWxsb2NCYXNlIHsKICAgICBGb250UGxhdGZv
cm1EYXRhQ2FjaGVLZXkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHkgPSBBdG9taWNTdHJpbmco
KSwgdW5zaWduZWQgc2l6ZSA9IDAsIHVuc2lnbmVkIHdlaWdodCA9IDAsIGJvb2wgaXRhbGljID0g
ZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNQcmludGVyRm9udCA9
IGZhbHNlLCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5n
TW9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1ByaW50ZXJGb250ID0g
ZmFsc2UsIEZvbnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdN
b2RlLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCkKICAgICAg
ICAgOiBtX3NpemUoc2l6ZSkKICAgICAgICAgLCBtX3dlaWdodCh3ZWlnaHQpCiAgICAgICAgICwg
bV9mYW1pbHkoZmFtaWx5KQogICAgICAgICAsIG1faXRhbGljKGl0YWxpYykKICAgICAgICAgLCBt
X3ByaW50ZXJGb250KGlzUHJpbnRlckZvbnQpCiAgICAgICAgICwgbV9yZW5kZXJpbmdNb2RlKHJl
bmRlcmluZ01vZGUpCisgICAgICAgICwgbV9mb250T3JpZW50YXRpb24oZm9udE9yaWVudGF0aW9u
KQogICAgIHsKICAgICB9CiAKQEAgLTcyLDcgKzczLDcgQEAgc3RydWN0IEZvbnRQbGF0Zm9ybURh
dGFDYWNoZUtleSA6IEZhc3RBbAogICAgIHsKICAgICAgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdD
YXNlKG1fZmFtaWx5LCBvdGhlci5tX2ZhbWlseSkgJiYgbV9zaXplID09IG90aGVyLm1fc2l6ZSAm
JiAKICAgICAgICAgICAgICAgIG1fd2VpZ2h0ID09IG90aGVyLm1fd2VpZ2h0ICYmIG1faXRhbGlj
ID09IG90aGVyLm1faXRhbGljICYmIG1fcHJpbnRlckZvbnQgPT0gb3RoZXIubV9wcmludGVyRm9u
dCAmJgotICAgICAgICAgICAgICAgbV9yZW5kZXJpbmdNb2RlID09IG90aGVyLm1fcmVuZGVyaW5n
TW9kZTsKKyAgICAgICAgICAgICAgIG1fcmVuZGVyaW5nTW9kZSA9PSBvdGhlci5tX3JlbmRlcmlu
Z01vZGUgJiYgbV9mb250T3JpZW50YXRpb24gPT0gb3RoZXIubV9mb250T3JpZW50YXRpb247CiAg
ICAgfQogCiAgICAgdW5zaWduZWQgbV9zaXplOwpAQCAtODEsNiArODIsNyBAQCBzdHJ1Y3QgRm9u
dFBsYXRmb3JtRGF0YUNhY2hlS2V5IDogRmFzdEFsCiAgICAgYm9vbCBtX2l0YWxpYzsKICAgICBi
b29sIG1fcHJpbnRlckZvbnQ7CiAgICAgRm9udFJlbmRlcmluZ01vZGUgbV9yZW5kZXJpbmdNb2Rl
OworICAgIEZvbnRPcmllbnRhdGlvbiBtX2ZvbnRPcmllbnRhdGlvbjsKIAogcHJpdmF0ZToKICAg
ICBzdGF0aWMgdW5zaWduZWQgaGFzaFRhYmxlRGVsZXRlZFNpemUoKSB7IHJldHVybiAweEZGRkZG
RkZGVTsgfQpAQCAtOTIsNyArOTQsNyBAQCBpbmxpbmUgdW5zaWduZWQgY29tcHV0ZUhhc2goY29u
c3QgRm9udFBsCiAgICAgICAgIENhc2VGb2xkaW5nSGFzaDo6aGFzaChmb250S2V5Lm1fZmFtaWx5
KSwKICAgICAgICAgZm9udEtleS5tX3NpemUsCiAgICAgICAgIGZvbnRLZXkubV93ZWlnaHQsCi0g
ICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5Lm1faXRhbGljKSA8PCAyIHwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9wcmludGVyRm9udCkgPDwgMSB8IHN0YXRpY19j
YXN0PHVuc2lnbmVkPihmb250S2V5Lm1fcmVuZGVyaW5nTW9kZSkKKyAgICAgICAgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9mb250T3JpZW50YXRpb24pIDw8IDMgfCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oZm9udEtleS5tX2l0YWxpYykgPDwgMiB8IHN0YXRpY19jYXN0PHVuc2lnbmVk
Pihmb250S2V5Lm1fcHJpbnRlckZvbnQpIDw8IDEgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9u
dEtleS5tX3JlbmRlcmluZ01vZGUpCiAgICAgfTsKICAgICByZXR1cm4gU3RyaW5nSW1wbDo6Y29t
cHV0ZUhhc2gocmVpbnRlcnByZXRfY2FzdDxVQ2hhcio+KGhhc2hDb2RlcyksIHNpemVvZihoYXNo
Q29kZXMpIC8gc2l6ZW9mKFVDaGFyKSk7CiB9CkBAIC0xOTEsNyArMTkzLDcgQEAgRm9udFBsYXRm
b3JtRGF0YSogRm9udENhY2hlOjpnZXRDYWNoZWRGbwogICAgIH0KIAogICAgIEZvbnRQbGF0Zm9y
bURhdGFDYWNoZUtleSBrZXkoZmFtaWx5TmFtZSwgZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkUGl4
ZWxTaXplKCksIGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSwgZm9udERlc2NyaXB0aW9uLml0YWxp
YygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnVz
ZVByaW50ZXJGb250KCksIGZvbnREZXNjcmlwdGlvbi5yZW5kZXJpbmdNb2RlKCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnVzZVByaW50ZXJGb250
KCksIGZvbnREZXNjcmlwdGlvbi5yZW5kZXJpbmdNb2RlKCksIGZvbnREZXNjcmlwdGlvbi5mb250
T3JpZW50YXRpb24oKSk7CiAgICAgRm9udFBsYXRmb3JtRGF0YSogcmVzdWx0ID0gMDsKICAgICBi
b29sIGZvdW5kUmVzdWx0OwogICAgIEZvbnRQbGF0Zm9ybURhdGFDYWNoZTo6aXRlcmF0b3IgaXQg
PSBnRm9udFBsYXRmb3JtRGF0YUNhY2hlLT5maW5kKGtleSk7CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgJKHJldmlzaW9uIDY5ODMyKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtNDcsNiArNDcsOCBAQCBlbnVtIEZvbnRXZWlnaHQgewogICAgIEZvbnRXZWlnaHRCb2xkID0g
Rm9udFdlaWdodDcwMAogfTsKIAorZW51bSBGb250T3JpZW50YXRpb24geyBIb3Jpem9udGFsLCBW
ZXJ0aWNhbCB9OworCiBjbGFzcyBGb250RGVzY3JpcHRpb24gewogcHVibGljOgogICAgIGVudW0g
R2VuZXJpY0ZhbWlseVR5cGUgeyBOb0ZhbWlseSwgU3RhbmRhcmRGYW1pbHksIFNlcmlmRmFtaWx5
LCBTYW5zU2VyaWZGYW1pbHksIApAQCAtNTUsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgRm9udERl
c2NyaXB0aW9uKCkKICAgICAgICAgOiBtX3NwZWNpZmllZFNpemUoMCkKICAgICAgICAgLCBtX2Nv
bXB1dGVkU2l6ZSgwKQorICAgICAgICAsIG1fZm9udE9yaWVudGF0aW9uKEhvcml6b250YWwpCiAg
ICAgICAgICwgbV9pdGFsaWMoZmFsc2UpCiAgICAgICAgICwgbV9zbWFsbENhcHMoZmFsc2UpCiAg
ICAgICAgICwgbV9pc0Fic29sdXRlU2l6ZShmYWxzZSkKQEAgLTk0LDYgKzk3LDcgQEAgcHVibGlj
OgogCiAgICAgRm9udFRyYWl0c01hc2sgdHJhaXRzTWFzaygpIGNvbnN0OwogICAgIGJvb2wgaXNT
cGVjaWZpZWRGb250KCkgY29uc3QgeyByZXR1cm4gbV9pc1NwZWNpZmllZEZvbnQ7IH0KKyAgICBG
b250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9mb250T3Jp
ZW50YXRpb247IH0KIAogICAgIHZvaWQgc2V0RmFtaWx5KGNvbnN0IEZvbnRGYW1pbHkmIGZhbWls
eSkgeyBtX2ZhbWlseUxpc3QgPSBmYW1pbHk7IH0KICAgICB2b2lkIHNldENvbXB1dGVkU2l6ZShm
bG9hdCBzKSB7IG1fY29tcHV0ZWRTaXplID0gczsgfQpAQCAtMTEzLDYgKzExNyw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEZvbnRTbW9vdGhpbmcoRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5n
KSB7IG1fZm9udFNtb290aGluZyA9IHNtb290aGluZzsgfQogICAgIHZvaWQgc2V0VGV4dFJlbmRl
cmluZ01vZGUoVGV4dFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nKSB7IG1fdGV4dFJlbmRlcmluZyA9
IHJlbmRlcmluZzsgfQogICAgIHZvaWQgc2V0SXNTcGVjaWZpZWRGb250KGJvb2wgaXNTcGVjaWZp
ZWRGb250KSB7IG1faXNTcGVjaWZpZWRGb250ID0gaXNTcGVjaWZpZWRGb250OyB9CisgICAgdm9p
ZCBzZXRGb250T3JpZW50YXRpb24oRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbikgeyBt
X2ZvbnRPcmllbnRhdGlvbiA9IGZvbnRPcmllbnRhdGlvbjsgfQogCiBwcml2YXRlOgogICAgIEZv
bnRGYW1pbHkgbV9mYW1pbHlMaXN0OyAvLyBUaGUgbGlzdCBvZiBmb250IGZhbWlsaWVzIHRvIGJl
IHVzZWQuCkBAIC0xMjEsNiArMTI2LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gcm91bmRpbmcsIG1pbmltdW0gZm9udCBzaXplcywgYW5kIHpvb21pbmcuCiAg
ICAgZmxvYXQgbV9jb21wdXRlZFNpemU7ICAgIC8vIENvbXB1dGVkIHNpemUgYWRqdXN0ZWQgZm9y
IHRoZSBtaW5pbXVtIGZvbnQgc2l6ZSBhbmQgdGhlIHpvb20gZmFjdG9yLiAgCiAKKyAgICBGb250
T3JpZW50YXRpb24gbV9mb250T3JpZW50YXRpb247IC8vIEZvbnQncyBvcmllbnRhdGlvbi4gSG9y
aXpvbnRhbCBvciB2ZXJ0aWNhbC4KKwogICAgIGJvb2wgbV9pdGFsaWMgOiAxOwogICAgIGJvb2wg
bV9zbWFsbENhcHMgOiAxOwogICAgIGJvb2wgbV9pc0Fic29sdXRlU2l6ZSA6IDE7ICAgLy8gV2hl
dGhlciBvciBub3QgQ1NTIHNwZWNpZmllZCBhbiBleHBsaWNpdCBzaXplCkBAIC0xNTUsNyArMTYy
LDggQEAgaW5saW5lIGJvb2wgRm9udERlc2NyaXB0aW9uOjpvcGVyYXRvcj09KAogICAgICAgICAm
JiBtX2tleXdvcmRTaXplID09IG90aGVyLm1fa2V5d29yZFNpemUKICAgICAgICAgJiYgbV9mb250
U21vb3RoaW5nID09IG90aGVyLm1fZm9udFNtb290aGluZwogICAgICAgICAmJiBtX3RleHRSZW5k
ZXJpbmcgPT0gb3RoZXIubV90ZXh0UmVuZGVyaW5nCi0gICAgICAgICYmIG1faXNTcGVjaWZpZWRG
b250ID09IG90aGVyLm1faXNTcGVjaWZpZWRGb250OworICAgICAgICAmJiBtX2lzU3BlY2lmaWVk
Rm9udCA9PSBvdGhlci5tX2lzU3BlY2lmaWVkRm9udAorICAgICAgICAmJiBtX2ZvbnRPcmllbnRh
dGlvbiA9PSBvdGhlci5tX2ZvbnRPcmllbnRhdGlvbjsKIH0KIAogfQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAkocmV2aXNpb24gNjk4MzIpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFVTRShDT1JFX1RFWFQp
Ci0gICAgQ0ZEaWN0aW9uYXJ5UmVmIGdldENGU3RyaW5nQXR0cmlidXRlcyhUeXBlc2V0dGluZ0Zl
YXR1cmVzKSBjb25zdDsKKyAgICBDRkRpY3Rpb25hcnlSZWYgZ2V0Q0ZTdHJpbmdBdHRyaWJ1dGVz
KFR5cGVzZXR0aW5nRmVhdHVyZXMsIGJvb2wgaWdub3JlRGVmYXVsdEZlYXR1cmVzID0gZmFsc2Up
IGNvbnN0OwogI2VuZGlmCiAKICNpZiBVU0UoQVRTVUkpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBA
QCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiAgICAgY2Fpcm9fZm9u
dF9mYWNlX2Rlc3Ryb3kobV9mb250RmFjZSk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBi
b29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0
b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9v
bCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiwgRm9udFJlbmRlcmluZ01vZGUpCiB7CiAgICAgcmV0
dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9mb250RmFjZSwgc2l6ZSwgYm9sZCwgaXRhbGljKTsKIH0K
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMiw2ICsyMiw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogI2Rl
ZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlv
bi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTM4LDcgKzM5LDcgQEAgc3Ry
dWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgOiBOb25jb3B5YQogcHVibGljOgogICAgIEZvbnRD
dXN0b21QbGF0Zm9ybURhdGEoRlRfRmFjZSwgU2hhcmVkQnVmZmVyKik7CiAgICAgfkZvbnRDdXN0
b21QbGF0Zm9ybURhdGEoKTsKLSAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEo
aW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9y
bWFsUmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRh
KGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gZm9udE9y
aWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJp
bmdNb2RlKTsKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsK
IAogcHJpdmF0ZToKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBs
YXRmb3JtRGF0YUZyZWVUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAJKHJldmlzaW9uIDY5ODMy
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJl
ZVR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNyArMTM2LDcgQEAgRm9udFBsYXRmb3Jt
RGF0YTo6Rm9udFBsYXRmb3JtRGF0YShGY1BhdAogICAgIH0KIH0KIAotRm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKQor
Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQs
IGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24pCiAgICAgOiBtX2ZhbGxiYWNrcygwKQogICAg
ICwgbV9zaXplKHNpemUpCiAgICAgLCBtX3N5bnRoZXRpY0JvbGQoYm9sZCkKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1E
YXRhRnJlZVR5cGUuaAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01
NSw3ICs1NSw3IEBAIHB1YmxpYzoKIAogICAgIEZvbnRQbGF0Zm9ybURhdGEoRmNQYXR0ZXJuKiwg
Y29uc3QgRm9udERlc2NyaXB0aW9uJik7CiAgICAgRm9udFBsYXRmb3JtRGF0YShjYWlyb19mb250
X2ZhY2VfdCogZm9udEZhY2UsIGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMpOwot
ICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYyk7
CisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCk7CiAgICAgRm9u
dFBsYXRmb3JtRGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJik7CiAgICAgRm9udFBsYXRmb3Jt
RGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJiwgZmxvYXQgc2l6ZSk7CiAKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvRm9udFBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lv
biA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvRm9udFBsYXRmb3JtRGF0
YS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAg
ICBGb250UGxhdGZvcm1EYXRhKEhGT05ULCBmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2Js
aXF1ZSwgYm9vbCB1c2VHREkpOwotICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9v
bCBib2xkLCBib29sIG9ibGlxdWUpOworICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwg
Ym9vbCBib2xkLCBib29sIG9ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBmb250T3JpZW50YXRpb24g
PSBIb3Jpem9udGFsKTsKIAogICAgIEZvbnRQbGF0Zm9ybURhdGEoSEZPTlQsIENHRm9udFJlZiwg
ZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUsIGJvb2wgdXNlR0RJKTsKICAgICB+
Rm9udFBsYXRmb3JtRGF0YSgpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Gb250UGxhdGZvcm1EYXRhQ2hyb21pdW1XaW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUNocm9taXVtV2lu
LmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0ZvbnRQbGF0Zm9ybURhdGFDaHJvbWl1bVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2
LDcgKzY2LDcgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShIRk9OVAogfQog
CiAvLyBGSVhNRTogdGhpcyBjb25zdHJ1Y3RvciBpcyBuZWVkZWQgZm9yIFNWRyBmb250cyBidXQg
ZG9lc24ndCBzZWVtIHRvIGRvIG11Y2gKLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURh
dGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUpCitGb250UGxhdGZvcm1EYXRh
OjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlLCBG
b250T3JpZW50YXRpb24pCiAgICAgOiBtX2ZvbnQoMCkKICAgICAsIG1fc2l6ZShzaXplKQogICAg
ICwgbV9zY3JpcHRDYWNoZSgwKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Gb250UGxhdGZvcm1EYXRhQ2hyb21pdW1XaW4uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRQbGF0Zm9ybURhdGFDaHJvbWl1bVdpbi5o
CShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Rm9udFBsYXRmb3JtRGF0YUNocm9taXVtV2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3
LDcgQEAgcHVibGljOgogICAgIEZvbnRQbGF0Zm9ybURhdGEoV1RGOjpIYXNoVGFibGVEZWxldGVk
VmFsdWVUeXBlKTsKICAgICBGb250UGxhdGZvcm1EYXRhKCk7CiAgICAgRm9udFBsYXRmb3JtRGF0
YShIRk9OVCwgZmxvYXQgc2l6ZSk7Ci0gICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBi
b29sIGJvbGQsIGJvb2wgb2JsaXF1ZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXpl
LCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlv
biA9IEhvcml6b250YWwpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3Jt
RGF0YSYpOwogCiAgICAgRm9udFBsYXRmb3JtRGF0YSYgb3BlcmF0b3I9KGNvbnN0IEZvbnRQbGF0
Zm9ybURhdGEmKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9u
dFBsYXRmb3JtRGF0YUxpbnV4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhTGludXguaAkocmV2aXNpb24gNjk4MzIpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRQbGF0Zm9ybURhdGFMaW51
eC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBt
X2Zha2VJdGFsaWMoZmFsc2UpCiAgICAgICAgIHsgfQogCi0gICAgRm9udFBsYXRmb3JtRGF0YShm
bG9hdCB0ZXh0U2l6ZSwgYm9vbCBmYWtlQm9sZCwgYm9vbCBmYWtlSXRhbGljKQorICAgIEZvbnRQ
bGF0Zm9ybURhdGEoZmxvYXQgdGV4dFNpemUsIGJvb2wgZmFrZUJvbGQsIGJvb2wgZmFrZUl0YWxp
YywgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwpCiAgICAgICAg
IDogbV90eXBlZmFjZSgwKQogICAgICAgICAsIG1fdGV4dFNpemUodGV4dFNpemUpCiAgICAgICAg
ICwgbV9mYWtlQm9sZChmYWtlQm9sZCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvRm9udFBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBACiAjaWZuZGVmIEZvbnRQbGF0Zm9ybURhdGFfaAogI2Rl
ZmluZSBGb250UGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogI2lmZGVmIF9fT0JKQ19fCkBAIC01
OCw5ICs1OSwxMCBAQCBpbmxpbmUgQ1RGb250UmVmIHRvQ1RGb250UmVmKE5TRm9udCAqbnNGCiAK
IGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICBwdWJsaWM6Ci0gICAgRm9udFBsYXRmb3JtRGF0
YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSkK
KyAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9v
bCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9y
aXpvbnRhbCkKICAgICAgICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkKICAgICAg
ICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGljT2JsaXF1ZSkKKyAgICAgICAgLCBtX2Zv
bnRPcmllbnRhdGlvbihmb250T3JpZW50YXRpb24pCiAgICAgICAgICwgbV9hdHN1Rm9udElEKDAp
CiAgICAgICAgICwgbV9zaXplKHNpemUpCiAgICAgICAgICwgbV9mb250KDApCkBAIC03MSwxMSAr
NzMsMTIgQEAgY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiAgICAgewogICAgIH0KIAotICAgIEZv
bnRQbGF0Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3ludGhldGljQm9sZCA9IGZhbHNl
LCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YShO
U0ZvbnQgKm5zRm9udCwgYm9vbCBzeW50aGV0aWNCb2xkID0gZmFsc2UsIGJvb2wgc3ludGhldGlj
T2JsaXF1ZSA9IGZhbHNlLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpv
bnRhbCk7CiAgICAgCi0gICAgRm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dGb250LCBBVFNV
Rm9udElEIGZvbnRJRCwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRo
ZXRpY09ibGlxdWUpCisgICAgRm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dGb250LCBBVFNV
Rm9udElEIGZvbnRJRCwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRo
ZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBmb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFs
KQogICAgICAgICA6IG1fc3ludGhldGljQm9sZChzeW50aGV0aWNCb2xkKQogICAgICAgICAsIG1f
c3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQorICAgICAgICAsIG1fZm9udE9yaWVu
dGF0aW9uKGZvbnRPcmllbnRhdGlvbikKICAgICAgICAgLCBtX2F0c3VGb250SUQoZm9udElEKQog
ICAgICAgICAsIG1fc2l6ZShzaXplKQogICAgICAgICAsIG1fZm9udCgwKQpAQCAtOTQsOSArOTcs
MTEgQEAgY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiAgICAgZmxvYXQgc2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2l6ZTsgfQogICAgIGJvb2wgc3ludGhldGljQm9sZCgpIGNvbnN0IHsgcmV0dXJu
IG1fc3ludGhldGljQm9sZDsgfQogICAgIGJvb2wgc3ludGhldGljT2JsaXF1ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc3ludGhldGljT2JsaXF1ZTsgfQorICAgIEZvbnRPcmllbnRhdGlvbiBmb250T3Jp
ZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2ZvbnRPcmllbnRhdGlvbjsgfQogCiAgICAgYm9v
bCBtX3N5bnRoZXRpY0JvbGQ7CiAgICAgYm9vbCBtX3N5bnRoZXRpY09ibGlxdWU7CisgICAgRm9u
dE9yaWVudGF0aW9uIG1fZm9udE9yaWVudGF0aW9uOwogCiAgICAgQVRTVUZvbnRJRCBtX2F0c3VG
b250SUQ7CiAgICAgZmxvYXQgbV9zaXplOwpAQCAtMTA0LDcgKzEwOSw3IEBAIGNsYXNzIEZvbnRQ
bGF0Zm9ybURhdGEgewogICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdAogICAgIHsKICAgICAgICAg
QVNTRVJUKG1fZm9udCAhPSAwIHx8IG1fY2dGb250ID09IDApOwotICAgICAgICB1aW50cHRyX3Qg
aGFzaENvZGVzWzJdID0geyAodWludHB0cl90KW1fZm9udCwgbV9zeW50aGV0aWNCb2xkIDw8IDEg
fCBtX3N5bnRoZXRpY09ibGlxdWUgfTsKKyAgICAgICAgdWludHB0cl90IGhhc2hDb2Rlc1syXSA9
IHsgKHVpbnRwdHJfdCltX2ZvbnQsIG1fZm9udE9yaWVudGF0aW9uIDw8IDIgfCBtX3N5bnRoZXRp
Y0JvbGQgPDwgMSB8IG1fc3ludGhldGljT2JsaXF1ZSB9OwogICAgICAgICByZXR1cm4gU3RyaW5n
SW1wbDo6Y29tcHV0ZUhhc2gocmVpbnRlcnByZXRfY2FzdDxVQ2hhcio+KGhhc2hDb2RlcyksIHNp
emVvZihoYXNoQ29kZXMpIC8gc2l6ZW9mKFVDaGFyKSk7CiAgICAgfQogCkBAIC0xMTMsNyArMTE4
LDcgQEAgY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IEZvbnRQbGF0Zm9ybURhdGEmIG90aGVyKSBjb25zdAogICAgIHsgCiAgICAgICAgIHJldHVybiBt
X2ZvbnQgPT0gb3RoZXIubV9mb250ICYmIG1fc3ludGhldGljQm9sZCA9PSBvdGhlci5tX3N5bnRo
ZXRpY0JvbGQgJiYgbV9zeW50aGV0aWNPYmxpcXVlID09IG90aGVyLm1fc3ludGhldGljT2JsaXF1
ZSAmJiAKLSAgICAgICAgICAgICAgIG1fY2dGb250ID09IG90aGVyLm1fY2dGb250ICYmIG1fc2l6
ZSA9PSBvdGhlci5tX3NpemUgJiYgbV9hdHN1Rm9udElEID09IG90aGVyLm1fYXRzdUZvbnRJRDsK
KyAgICAgICAgICAgICAgIG1fY2dGb250ID09IG90aGVyLm1fY2dGb250ICYmIG1fc2l6ZSA9PSBv
dGhlci5tX3NpemUgJiYgbV9hdHN1Rm9udElEID09IG90aGVyLm1fYXRzdUZvbnRJRCAmJiBtX2Zv
bnRPcmllbnRhdGlvbiA9PSBvdGhlci5tX2ZvbnRPcmllbnRhdGlvbjsKICAgICB9CiAKICAgICBO
U0ZvbnQgKmZvbnQoKSBjb25zdCB7IHJldHVybiBtX2ZvbnQ7IH0KSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29h
Lm1tCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
Rm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00NCw5ICs0NCwxMCBA
QCB2b2lkIEZvbnRQbGF0Zm9ybURhdGE6OmxvYWRGb250KE5TRm9udCogCiB9CiAjZW5kaWYgIC8v
IFBMQVRGT1JNKE1BQykKIAotRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShOU0Zv
bnQgKm5zRm9udCwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUpCitG
b250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKE5TRm9udCAqbnNGb250LCBib29sIHN5
bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIGZvbnRP
cmllbnRhdGlvbikKICAgICA6IG1fc3ludGhldGljQm9sZChzeW50aGV0aWNCb2xkKQogICAgICwg
bV9zeW50aGV0aWNPYmxpcXVlKHN5bnRoZXRpY09ibGlxdWUpCisgICAgLCBtX2ZvbnRPcmllbnRh
dGlvbihmb250T3JpZW50YXRpb24pCiAgICAgLCBtX2ZvbnQobnNGb250KQogI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgLy8gRklYTUU6IENocm9taXVt
OiBUaGUgZm9sbG93aW5nIGNvZGUgaXNuJ3QgY29ycmVjdCBmb3IgdGhlIENocm9taXVtIHBvcnQg
c2luY2UgdGhlIHNhbmRib3ggbWlnaHQKQEAgLTgzLDYgKzg0LDcgQEAgRm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YShjb25zdAogICAgIG1fY2dGb250ID0gZi5tX2NnRm9udDsKICAg
ICBtX2F0c3VGb250SUQgPSBmLm1fYXRzdUZvbnRJRDsKICAgICBtX2lzQ29sb3JCaXRtYXBGb250
ID0gZi5tX2lzQ29sb3JCaXRtYXBGb250OworICAgIG1fZm9udE9yaWVudGF0aW9uID0gZi5tX2Zv
bnRPcmllbnRhdGlvbjsKICNpZiBVU0UoQ09SRV9URVhUKQogICAgIG1fQ1RGb250ID0gZi5tX0NU
Rm9udDsKICNlbmRpZgpAQCAtMTEyLDYgKzExNCw3IEBAIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEm
IEZvbnRQbGF0Zm9ybURhdGEKICAgICAgICAgQ0ZSZWxlYXNlKG1fZm9udCk7CiAgICAgbV9mb250
ID0gZi5tX2ZvbnQ7CiAgICAgbV9pc0NvbG9yQml0bWFwRm9udCA9IGYubV9pc0NvbG9yQml0bWFw
Rm9udDsKKyAgICBtX2ZvbnRPcmllbnRhdGlvbiA9IGYubV9mb250T3JpZW50YXRpb247CiAjaWYg
VVNFKENPUkVfVEVYVCkKICAgICBtX0NURm9udCA9IGYubV9DVEZvbnQ7CiAjZW5kaWYKQEAgLTE4
Nyw3ICsxOTAsOCBAQCBDVEZvbnRSZWYgRm9udFBsYXRmb3JtRGF0YTo6Y3RGb250KCkgY29uCiBT
dHJpbmcgRm9udFBsYXRmb3JtRGF0YTo6ZGVzY3JpcHRpb24oKSBjb25zdAogewogICAgIFJldGFp
blB0cjxDRlN0cmluZ1JlZj4gY2dGb250RGVzY3JpcHRpb24oQWRvcHRDRiwgQ0ZDb3B5RGVzY3Jp
cHRpb24oY2dGb250KCkpKTsKLSAgICByZXR1cm4gU3RyaW5nKGNnRm9udERlc2NyaXB0aW9uLmdl
dCgpKSArICIgIiArIFN0cmluZzo6bnVtYmVyKG1fc2l6ZSkgKyAobV9zeW50aGV0aWNCb2xkID8g
IiBzeW50aGV0aWMgYm9sZCIgOiAiIikgKyAobV9zeW50aGV0aWNPYmxpcXVlID8gIiBzeW50aGV0
aWMgb2JsaXF1ZSIgOiAiIik7CisgICAgcmV0dXJuIFN0cmluZyhjZ0ZvbnREZXNjcmlwdGlvbi5n
ZXQoKSkgKyAiICIgKyBTdHJpbmc6Om51bWJlcihtX3NpemUpCisgICAgICAgICAgICArIChtX3N5
bnRoZXRpY0JvbGQgPyAiIHN5bnRoZXRpYyBib2xkIiA6ICIiKSArIChtX3N5bnRoZXRpY09ibGlx
dWUgPyAiIHN5bnRoZXRpYyBvYmxpcXVlIiA6ICIiKSArIChtX2ZvbnRPcmllbnRhdGlvbiA/ICIg
dmVydGljYWwgb3JpZW50YXRpb24iIDogIiIpOwogfQogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFQYW5nby5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YVBhbmdvLmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2d0ay9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUGFuZ28uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw3ICszMCw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxh
dGYKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250
UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVy
aW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBs
YXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0
aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YSht
X2ZvbnRGYWNlLCBzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ndGsvRm9udFBsYXRmb3JtRGF0YVBhbmdvLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250UGxhdGZvcm1EYXRhUGFuZ28uY3BwCShy
ZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRQbGF0
Zm9ybURhdGFQYW5nby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw3ICsxMjcsNyBAQCBGb250
UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGNvbnN0CiAgICAgcGFuZ29fZm9udF9kZXNj
cmlwdGlvbl9mcmVlKGRlc2NyaXB0aW9uKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBs
YXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKQorRm9udFBsYXRm
b3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBGb250T3JpZW50YXRpb24pCiAgICAgOiBtX2NvbnRleHQoMCkKICAgICAsIG1fZm9udCgw
KQogICAgICwgbV9zaXplKHNpemUpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0
ay9Gb250UGxhdGZvcm1EYXRhUGFuZ28uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9Gb250UGxhdGZvcm1EYXRhUGFuZ28uaAkocmV2aXNpb24gNjk4MzIpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250UGxhdGZvcm1EYXRhUGFuZ28uaAko
d29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAKICAgICBGb250UGxhdGZv
cm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5
KTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNhaXJvX2ZvbnRfZmFjZV90KiBmb250RmFjZSwgZmxv
YXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYyk7Ci0gICAgRm9udFBsYXRmb3JtRGF0YShm
bG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKTsKKyAgICBGb250UGxhdGZvcm1EYXRh
KGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiBmb250
T3JpZW50YXRpb24gPSBIb3Jpem9udGFsKTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZv
bnRQbGF0Zm9ybURhdGEmKTsKICAgICB+Rm9udFBsYXRmb3JtRGF0YSgpOwogCkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzEsNyArMzEsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiB7
CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRm
b3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01v
ZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9y
bURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiwg
Rm9udFJlbmRlcmluZ01vZGUpCiB7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwg
Ym9sZCwgaXRhbGljKTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3Uv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTgzMikK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0
YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2luY2x1
ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAg
LTM3LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBib29s
IHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwogCi0gICAgICAgIEZvbnRQbGF0Zm9ybURh
dGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9u
dFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKKyAgICAgICAgRm9udFBsYXRm
b3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRl
cmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKICAgICB9OwogCiAgICAgRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YSogY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXIq
KTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udFBsYXRmb3JtRGF0
YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udFBs
YXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvaGFpa3UvRm9udFBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIHsgfQogCiAgICAgICAgIEZvbnRQ
bGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbWljU3RyaW5nJiBm
YW1pbHkpOwotICAgICAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBvYmxpcXVlKTsKKyAgICAgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29s
IGJvbGQsIGJvb2wgb2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhv
cml6b250YWwpOwogICAgICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnRQbGF0Zm9ybURh
dGEmKTsKIAogICAgICAgICB+Rm9udFBsYXRmb3JtRGF0YSgpOwpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQkocmV2aXNpb24gNjk4MzIpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTE0Miw3ICsxNDIsOCBAQCBjb25zdCBTaW1wbGVGb250RGF0YSogRm9udENhY2hl
OjpnZXRGb250CiAKICAgICBGb250UGxhdGZvcm1EYXRhIGFsdGVybmF0ZUZvbnQoc3Vic3RpdHV0
ZUZvbnQsIAogICAgICAgICAhZm9udC5pc1BsYXRmb3JtRm9udCgpICYmIGlzQXBwS2l0Rm9udFdl
aWdodEJvbGQod2VpZ2h0KSAmJiAhaXNBcHBLaXRGb250V2VpZ2h0Qm9sZChzdWJzdGl0dXRlRm9u
dFdlaWdodCksCi0gICAgICAgICFmb250LmlzUGxhdGZvcm1Gb250KCkgJiYgKHRyYWl0cyAmIE5T
Rm9udEl0YWxpY1RyYWl0KSAmJiAhKHN1YnN0aXR1dGVGb250VHJhaXRzICYgTlNGb250SXRhbGlj
VHJhaXQpKTsKKyAgICAgICAgIWZvbnQuaXNQbGF0Zm9ybUZvbnQoKSAmJiAodHJhaXRzICYgTlNG
b250SXRhbGljVHJhaXQpICYmICEoc3Vic3RpdHV0ZUZvbnRUcmFpdHMgJiBOU0ZvbnRJdGFsaWNU
cmFpdCksCisgICAgICAgIHBsYXRmb3JtRGF0YS5tX2ZvbnRPcmllbnRhdGlvbik7CiAgICAgcmV0
dXJuIGdldENhY2hlZEZvbnREYXRhKCZhbHRlcm5hdGVGb250KTsKIH0KIApAQCAtMjEwLDcgKzIx
MSw3IEBAIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Y3JlYXRlRm9udFAKICAgICBib29s
IHN5bnRoZXRpY0JvbGQgPSBpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKHdlaWdodCkgJiYgIWlzQXBw
S2l0Rm9udFdlaWdodEJvbGQoYWN0dWFsV2VpZ2h0KTsKICAgICBib29sIHN5bnRoZXRpY09ibGlx
dWUgPSAodHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQpICYmICEoYWN0dWFsVHJhaXRzICYgTlNG
b250SXRhbGljVHJhaXQpOwogCi0gICAgcmV0dXJuIG5ldyBGb250UGxhdGZvcm1EYXRhKHBsYXRm
b3JtRm9udCwgc3ludGhldGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSk7CisgICAgcmV0dXJuIG5l
dyBGb250UGxhdGZvcm1EYXRhKHBsYXRmb3JtRm9udCwgc3ludGhldGljQm9sZCwgc3ludGhldGlj
T2JsaXF1ZSwgZm9udERlc2NyaXB0aW9uLmZvbnRPcmllbnRhdGlvbigpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY5ODMyKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDkgKzM4LDkgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0
YTo6fkZvbnRDdXN0b21QbGF0ZgogICAgIENHRm9udFJlbGVhc2UobV9jZ0ZvbnQpOwogfQogCi1G
b250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEo
aW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlKQorRm9u
dFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGlu
dCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVu
dGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKLSAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0
YShtX2NnRm9udCwgKEFUU1VGb250SUQpbV9hdHNGb250LCBzaXplLCBib2xkLCBpdGFsaWMpOwor
ICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKG1fY2dGb250LCAoQVRTVUZvbnRJRCltX2F0c0Zv
bnQsIHNpemUsIGJvbGQsIGl0YWxpYywgZm9udE9yaWVudGF0aW9uKTsKIH0KIAogRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YSogY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXIq
IGJ1ZmZlcikKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAog
I2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnREZXNjcmlw
dGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSA8Q29yZUZv
dW5kYXRpb24vQ0ZCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTQxLDcgKzQy
LDcgQEAgc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgOiBOb25jb3B5YQogICAgIHt9CiAg
ICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9u
dFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRl
cmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIGZv
bnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmll
bnRhdGlvbiBmb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsLCBGb250UmVuZGVyaW5nTW9kZSA9
IE5vcm1hbFJlbmRlcmluZ01vZGUpOwogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQo
Y29uc3QgU3RyaW5nJik7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ds
eXBoUGFnZVRyZWVOb2RlTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9HbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR2x5cGhQYWdlVHJlZU5vZGVNYWMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00MCwxNSArNDAsNTkgQEAgYm9vbCBHbHlwaFBhZ2U6OmZpbGwodW5z
aWduZWQgb2Zmc2V0LCB1bgogICAgIGJvb2wgaGF2ZUdseXBocyA9IGZhbHNlOwogCiAjaWZuZGVm
IEJVSUxESU5HX09OX1RJR0VSCi0gICAgVmVjdG9yPENHR2x5cGgsIDUxMj4gZ2x5cGhzKGJ1ZmZl
ckxlbmd0aCk7Ci0gICAgd2tHZXRHbHlwaHNGb3JDaGFyYWN0ZXJzKGZvbnREYXRhLT5wbGF0Zm9y
bURhdGEoKS5jZ0ZvbnQoKSwgYnVmZmVyLCBnbHlwaHMuZGF0YSgpLCBidWZmZXJMZW5ndGgpOwot
Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgIGlm
ICghZ2x5cGhzW2ldKQotICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsg
aSwgMCwgMCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5k
ZXgob2Zmc2V0ICsgaSwgZ2x5cGhzW2ldLCBmb250RGF0YSk7Ci0gICAgICAgICAgICBoYXZlR2x5
cGhzID0gdHJ1ZTsKKyAgICBpZiAoZm9udERhdGEtPnBsYXRmb3JtRGF0YSgpLmZvbnRPcmllbnRh
dGlvbigpID09IEhvcml6b250YWwpIHsKKyAgICAgICAgVmVjdG9yPENHR2x5cGgsIDUxMj4gZ2x5
cGhzKGJ1ZmZlckxlbmd0aCk7CisgICAgICAgIHdrR2V0R2x5cGhzRm9yQ2hhcmFjdGVycyhmb250
RGF0YS0+cGxhdGZvcm1EYXRhKCkuY2dGb250KCksIGJ1ZmZlciwgZ2x5cGhzLmRhdGEoKSwgYnVm
ZmVyTGVuZ3RoKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytp
KSB7CisgICAgICAgICAgICBpZiAoIWdseXBoc1tpXSkKKyAgICAgICAgICAgICAgICBzZXRHbHlw
aERhdGFGb3JJbmRleChvZmZzZXQgKyBpLCAwLCAwKTsKKyAgICAgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgICAgIHNldEdseXBoRGF0YUZvckluZGV4KG9mZnNldCArIGksIGdseXBoc1tpXSwg
Zm9udERhdGEpOworICAgICAgICAgICAgICAgIGhhdmVHbHlwaHMgPSB0cnVlOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gV2UgYXNrIENvcmVUZXh0
IGZvciBwb3NzaWJsZSB2ZXJ0aWNhbCB2YXJpYW50IGdseXBocworICAgICAgICBSZXRhaW5QdHI8
Q0ZTdHJpbmdSZWY+IHN0cmluZyhBZG9wdENGLCBDRlN0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJz
Tm9Db3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlciwgYnVmZmVyTGVuZ3RoLCBrQ0ZBbGxv
Y2F0b3JOdWxsKSk7CisgICAgICAgIFJldGFpblB0cjxDRkF0dHJpYnV0ZWRTdHJpbmdSZWY+IGF0
dHJpYnV0ZWRTdHJpbmcoQWRvcHRDRiwgQ0ZBdHRyaWJ1dGVkU3RyaW5nQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIHN0cmluZy5nZXQoKSwgZm9udERhdGEtPmdldENGU3RyaW5nQXR0cmlidXRl
cygwLCB0cnVlKSkpOworICAgICAgICBSZXRhaW5QdHI8Q1RMaW5lUmVmPiBsaW5lKEFkb3B0Q0Ys
IENUTGluZUNyZWF0ZVdpdGhBdHRyaWJ1dGVkU3RyaW5nKGF0dHJpYnV0ZWRTdHJpbmcuZ2V0KCkp
KTsKKworICAgICAgICBDRkFycmF5UmVmIHJ1bkFycmF5ID0gQ1RMaW5lR2V0R2x5cGhSdW5zKGxp
bmUuZ2V0KCkpOworICAgICAgICBDRkluZGV4IHJ1bkNvdW50ID0gQ0ZBcnJheUdldENvdW50KHJ1
bkFycmF5KTsKKworICAgICAgICAvLyBJbml0aWFsaXplIGdseXBoIGVudHJpZXMKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyArK2luZGV4KQorICAgICAg
ICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaW5kZXgsIDAsIDApOworCisgICAg
ICAgIGJvb2wgZG9uZSA9IGZhbHNlOworICAgICAgICBmb3IgKENGSW5kZXggciA9IDA7IHIgPCBy
dW5Db3VudCAmJiAhZG9uZSA7IHIrKykgeworICAgICAgICAgICAgLy8gQ1RMaW5lIGNvdWxkIG1h
cCBjaGFyYWN0ZXJzIG92ZXIgbXVsdGlwbGUgZm9udHMgdXNpbmcgaXRzIG93biBmb250IGZhbGxi
YWNrIGxpc3QuCisgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHBpY2sgcnVucyB0aGF0IHVzZSB0
aGUgZXhhY3QgZm9udCB3ZSBuZWVkLCBpLmUuLCBmb250RGF0YS0+cGxhdGZvcm1EYXRhKCkuY3RG
b250KCkuCisgICAgICAgICAgICBDVFJ1blJlZiBjdFJ1biA9IHN0YXRpY19jYXN0PENUUnVuUmVm
PihDRkFycmF5R2V0VmFsdWVBdEluZGV4KHJ1bkFycmF5LCByKSk7CisgICAgICAgICAgICBBU1NF
UlQoQ0ZHZXRUeXBlSUQoY3RSdW4pID09IENUUnVuR2V0VHlwZUlEKCkpOworCisgICAgICAgICAg
ICBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcyA9IENUUnVuR2V0QXR0cmlidXRlcyhjdFJ1bik7
CisgICAgICAgICAgICBDVEZvbnRSZWYgcnVuRm9udCA9IHN0YXRpY19jYXN0PENURm9udFJlZj4o
Q0ZEaWN0aW9uYXJ5R2V0VmFsdWUoYXR0cmlidXRlcywga0NURm9udEF0dHJpYnV0ZU5hbWUpKTsK
KyAgICAgICAgICAgIFJldGFpblB0cjxDR0ZvbnRSZWY+IHJ1bkNHRm9udChBZG9wdENGLCBDVEZv
bnRDb3B5R3JhcGhpY3NGb250KHJ1bkZvbnQsIDApKTsKKyAgICAgICAgICAgIGlmIChDRkVxdWFs
KGZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgcnVuQ0dGb250LmdldCgpKSkgewor
ICAgICAgICAgICAgICAgIC8vIFRoaXMgcnVuIHVzZXMgdGhlIGZvbnQgd2Ugd2FudC4gRXh0cmFj
dCBnbHlwaHMuCisgICAgICAgICAgICAgICAgQ0ZJbmRleCBnbHlwaENvdW50ID0gQ1RSdW5HZXRH
bHlwaENvdW50KGN0UnVuKTsKKyAgICAgICAgICAgICAgICBWZWN0b3I8Q0dHbHlwaCwgNTEyPiBn
bHlwaHMoc3RhdGljX2Nhc3Q8c2l6ZV90PihnbHlwaENvdW50KSk7CisgICAgICAgICAgICAgICAg
Q1RSdW5HZXRHbHlwaHMoY3RSdW4sIENGUmFuZ2VNYWtlKDAsIDApLCBnbHlwaHMuZGF0YSgpKTsK
KyAgICAgICAgICAgICAgICBWZWN0b3I8Q0ZJbmRleCwgNTEyPiBzdHJpbmdJbmRpY2VzKHN0YXRp
Y19jYXN0PHNpemVfdD4oZ2x5cGhDb3VudCkpOworICAgICAgICAgICAgICAgIENUUnVuR2V0U3Ry
aW5nSW5kaWNlcyhjdFJ1biwgQ0ZSYW5nZU1ha2UoMCwgMCksIHN0cmluZ0luZGljZXMuZGF0YSgp
KTsKKworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBnbHlwaENvdW50
OyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZ0luZGljZXNbaV0gPj0gbGVu
Z3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIGlmIChnbHlwaHNbaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEdseXBo
RGF0YUZvckluZGV4KG9mZnNldCArIHN0cmluZ0luZGljZXNbaV0sIGdseXBoc1tpXSwgZm9udERh
dGEpOworICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZUdseXBocyA9IHRydWU7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9CiAjZWxzZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2lt
cGxlRm9udERhdGFDb3JlVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHAJKHJldmlzaW9uIDY5ODMyKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDE1ICs0MSwxNSBAQCB1c2luZyBuYW1lc3BhY2Ugc3Rk
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNGRGljdGlvbmFyeVJlZiBTaW1wbGVGb250RGF0
YTo6Z2V0Q0ZTdHJpbmdBdHRyaWJ1dGVzKFR5cGVzZXR0aW5nRmVhdHVyZXMgdHlwZXNldHRpbmdG
ZWF0dXJlcykgY29uc3QKK0NGRGljdGlvbmFyeVJlZiBTaW1wbGVGb250RGF0YTo6Z2V0Q0ZTdHJp
bmdBdHRyaWJ1dGVzKFR5cGVzZXR0aW5nRmVhdHVyZXMgdHlwZXNldHRpbmdGZWF0dXJlcywgYm9v
bCBpZ25vcmVEZWZhdWx0RmVhdHVyZXMpIGNvbnN0CiB7Ci0gICAgdW5zaWduZWQga2V5ID0gdHlw
ZXNldHRpbmdGZWF0dXJlcyArIDE7CisgICAgdW5zaWduZWQga2V5ID0gKHR5cGVzZXR0aW5nRmVh
dHVyZXMgKyAxKSB8IChwbGF0Zm9ybURhdGEoKS5mb250T3JpZW50YXRpb24oKSA8PCA4KTsKICAg
ICBwYWlyPEhhc2hNYXA8dW5zaWduZWQsIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+ID46Oml0
ZXJhdG9yLCBib29sPiBhZGRSZXN1bHQgPSBtX0NGU3RyaW5nQXR0cmlidXRlcy5hZGQoa2V5LCBS
ZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPigpKTsKICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5
UmVmPiYgYXR0cmlidXRlc0RpY3Rpb25hcnkgPSBhZGRSZXN1bHQuZmlyc3QtPnNlY29uZDsKICAg
ICBpZiAoIWFkZFJlc3VsdC5zZWNvbmQpCiAgICAgICAgIHJldHVybiBhdHRyaWJ1dGVzRGljdGlv
bmFyeS5nZXQoKTsKIAotICAgIGJvb2wgYWxsb3dMaWdhdHVyZXMgPSBwbGF0Zm9ybURhdGEoKS5h
bGxvd3NMaWdhdHVyZXMoKSB8fCAodHlwZXNldHRpbmdGZWF0dXJlcyAmIExpZ2F0dXJlcyk7Cisg
ICAgYm9vbCBhbGxvd0xpZ2F0dXJlcyA9ICghaWdub3JlRGVmYXVsdEZlYXR1cmVzICYmIHBsYXRm
b3JtRGF0YSgpLmFsbG93c0xpZ2F0dXJlcygpKSB8fCAodHlwZXNldHRpbmdGZWF0dXJlcyAmIExp
Z2F0dXJlcyk7CiAKICAgICBzdGF0aWMgY29uc3QgaW50IGxpZ2F0dXJlc05vdEFsbG93ZWRWYWx1
ZSA9IDA7CiAgICAgc3RhdGljIENGTnVtYmVyUmVmIGxpZ2F0dXJlc05vdEFsbG93ZWQgPSBDRk51
bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJJbnRUeXBlLCAmbGlnYXR1
cmVzTm90QWxsb3dlZFZhbHVlKTsKQEAgLTYwLDE2ICs2MCwyNSBAQCBDRkRpY3Rpb25hcnlSZWYg
U2ltcGxlRm9udERhdGE6OmdldENGU3RyCiAgICAgaWYgKCEodHlwZXNldHRpbmdGZWF0dXJlcyAm
IEtlcm5pbmcpKSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBmbG9hdCBrZXJuaW5nQWRqdXN0bWVu
dFZhbHVlID0gMDsKICAgICAgICAgc3RhdGljIENGTnVtYmVyUmVmIGtlcm5pbmdBZGp1c3RtZW50
ID0gQ0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGTnVtYmVyRmxvYXRUeXBl
LCAma2VybmluZ0FkanVzdG1lbnRWYWx1ZSk7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB2b2lkKiBr
ZXlzV2l0aEtlcm5pbmdEaXNhYmxlZFtdID0geyBrQ1RGb250QXR0cmlidXRlTmFtZSwga0NUS2Vy
bkF0dHJpYnV0ZU5hbWUsIGtDVExpZ2F0dXJlQXR0cmlidXRlTmFtZSB9OwotICAgICAgICBjb25z
dCB2b2lkKiB2YWx1ZXNXaXRoS2VybmluZ0Rpc2FibGVkW10gPSB7IHBsYXRmb3JtRGF0YSgpLmN0
Rm9udCgpLCBrZXJuaW5nQWRqdXN0bWVudCwgYWxsb3dMaWdhdHVyZXMKLSAgICAgICAgICAgID8g
bGlnYXR1cmVzQWxsb3dlZCA6IGxpZ2F0dXJlc05vdEFsbG93ZWQgfTsKKyAgICAgICAgc3RhdGlj
IGNvbnN0IHZvaWQqIGtleXNXaXRoS2VybmluZ0Rpc2FibGVkW10gPSB7ICAgIGtDVEZvbnRBdHRy
aWJ1dGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAga0NUS2VybkF0dHJpYnV0ZU5hbWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQ1RMaWdhdHVyZUF0dHJp
YnV0ZU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBrQ1RWZXJ0aWNhbEZvcm1zQXR0cmlidXRlTmFtZSB9OworICAgICAgICBj
b25zdCB2b2lkKiB2YWx1ZXNXaXRoS2VybmluZ0Rpc2FibGVkW10gPSB7ICAgICAgICAgcGxhdGZv
cm1EYXRhKCkuY3RGb250KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBrZXJuaW5nQWRqdXN0bWVudCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93TGlnYXR1
cmVzID8gbGlnYXR1cmVzQWxsb3dlZCA6IGxpZ2F0dXJlc05vdEFsbG93ZWQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGxhdGZv
cm1EYXRhKCkuZm9udE9yaWVudGF0aW9uKCkgPT0gVmVydGljYWwpID8ga0NGQm9vbGVhblRydWUg
OiBrQ0ZCb29sZWFuRmFsc2UgfTsKICAgICAgICAgYXR0cmlidXRlc0RpY3Rpb25hcnkuYWRvcHRD
RihDRkRpY3Rpb25hcnlDcmVhdGUoMCwga2V5c1dpdGhLZXJuaW5nRGlzYWJsZWQsIHZhbHVlc1dp
dGhLZXJuaW5nRGlzYWJsZWQsCiAgICAgICAgICAgICBzaXplb2Yoa2V5c1dpdGhLZXJuaW5nRGlz
YWJsZWQpIC8gc2l6ZW9mKCprZXlzV2l0aEtlcm5pbmdEaXNhYmxlZCksCiAgICAgICAgICAgICAm
a0NGQ29weVN0cmluZ0RpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZh
bHVlQ2FsbEJhY2tzKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQnkgb21pdHRpbmcgdGhl
IGtDVEtlcm5BdHRyaWJ1dGVOYW1lIGF0dHJpYnV0ZSwgd2UgZ2V0IENvcmUgVGV4dCdzIHN0YW5k
YXJkIGtlcm5pbmcuCi0gICAgICAgIHN0YXRpYyBjb25zdCB2b2lkKiBrZXlzV2l0aEtlcm5pbmdF
bmFibGVkW10gPSB7IGtDVEZvbnRBdHRyaWJ1dGVOYW1lLCBrQ1RMaWdhdHVyZUF0dHJpYnV0ZU5h
bWUgfTsKLSAgICAgICAgY29uc3Qgdm9pZCogdmFsdWVzV2l0aEtlcm5pbmdFbmFibGVkW10gPSB7
IHBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLCBhbGxvd0xpZ2F0dXJlcyA/IGxpZ2F0dXJlc0FsbG93
ZWQgOiBsaWdhdHVyZXNOb3RBbGxvd2VkIH07CisgICAgICAgIHN0YXRpYyBjb25zdCB2b2lkKiBr
ZXlzV2l0aEtlcm5pbmdFbmFibGVkW10gPSB7ICAgICBrQ1RGb250QXR0cmlidXRlTmFtZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGtDVExpZ2F0dXJlQXR0cmlidXRlTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtDVFZlcnRpY2FsRm9ybXNBdHRyaWJ1dGVO
YW1lIH07CisgICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlc1dpdGhLZXJuaW5nRW5hYmxlZFtdID0g
eyAgICAgICAgICBwbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93TGlnYXR1cmVzID8g
bGlnYXR1cmVzQWxsb3dlZCA6IGxpZ2F0dXJlc05vdEFsbG93ZWQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGxhdGZvcm1EYXRh
KCkuZm9udE9yaWVudGF0aW9uKCkgPT0gVmVydGljYWwpID8ga0NGQm9vbGVhblRydWUgOiBrQ0ZC
b29sZWFuRmFsc2UgfTsKICAgICAgICAgYXR0cmlidXRlc0RpY3Rpb25hcnkuYWRvcHRDRihDRkRp
Y3Rpb25hcnlDcmVhdGUoMCwga2V5c1dpdGhLZXJuaW5nRW5hYmxlZCwgdmFsdWVzV2l0aEtlcm5p
bmdFbmFibGVkLAogICAgICAgICAgICAgc2l6ZW9mKGtleXNXaXRoS2VybmluZ0VuYWJsZWQpIC8g
c2l6ZW9mKCprZXlzV2l0aEtlcm5pbmdFbmFibGVkKSwKICAgICAgICAgICAgICZrQ0ZDb3B5U3Ry
aW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFj
a3MpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRh
TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBs
ZUZvbnREYXRhTWFjLm1tCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MTcsMTEg
KzQxNyw5IEBAIEZsb2F0UmVjdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Cb3VuZHMKIHsKICAg
ICBGbG9hdFJlY3QgYm91bmRpbmdCb3g7CiAjaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCi0gICAg
Q0dSZWN0IGJveDsKLSAgICBDR0ZvbnRHZXRHbHlwaEJCb3hlcyhwbGF0Zm9ybURhdGEoKS5jZ0Zv
bnQoKSwgJmdseXBoLCAxLCAmYm94KTsKLSAgICBmbG9hdCBwb2ludFNpemUgPSBwbGF0Zm9ybURh
dGEoKS5tX3NpemU7Ci0gICAgQ0dGbG9hdCBzY2FsZSA9IHBvaW50U2l6ZSAvIHVuaXRzUGVyRW0o
KTsKLSAgICBib3VuZGluZ0JveCA9IENHUmVjdEFwcGx5QWZmaW5lVHJhbnNmb3JtKGJveCwgQ0dB
ZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUoc2NhbGUsIC1zY2FsZSkpOworICAgIGJvdW5kaW5nQm94
ID0gQ1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocyhtX3BsYXRmb3JtRGF0YS5jdEZvbnQo
KSwKKyAgICAgICAgICAgICAgICAgICAgbV9wbGF0Zm9ybURhdGEuZm9udE9yaWVudGF0aW9uKCkg
PT0gVmVydGljYWwgPyBrQ1RGb250VmVydGljYWxPcmllbnRhdGlvbiA6IGtDVEZvbnRIb3Jpem9u
dGFsT3JpZW50YXRpb24sICZnbHlwaCwgTlVMTCwgMSk7CisgICAgYm91bmRpbmdCb3guc2V0WSgt
Ym91bmRpbmdCb3guYm90dG9tKCkpOwogI2Vsc2UKICAgICAvLyBGSVhNRTogQ3VzdG9tIGZvbnRz
IGRvbid0IGhhdmUgTlNGb250cywgc28gdGhpcyBmdW5jdGlvbiBkb2Vzbid0IGNvbXB1dGUgY29y
cmVjdCBib3VuZHMgZm9yIHRoZXNlIG9uIFRpZ2VyLgogICAgIGlmICghbV9wbGF0Zm9ybURhdGEu
Zm9udCgpKQpAQCAtNDM3LDE0ICs0MzUsMTggQEAgRmxvYXRSZWN0IFNpbXBsZUZvbnREYXRhOjpw
bGF0Zm9ybUJvdW5kcwogCiBmbG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckds
eXBoKEdseXBoIGdseXBoKSBjb25zdAogewotICAgIE5TRm9udCogZm9udCA9IHBsYXRmb3JtRGF0
YSgpLmZvbnQoKTsKLSAgICBmbG9hdCBwb2ludFNpemUgPSBwbGF0Zm9ybURhdGEoKS5tX3NpemU7
Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0gbSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVNjYWxlKHBv
aW50U2l6ZSwgcG9pbnRTaXplKTsKICAgICBDR1NpemUgYWR2YW5jZTsKLSAgICBpZiAoIXdrR2V0
R2x5cGhUcmFuc2Zvcm1lZEFkdmFuY2VzKHBsYXRmb3JtRGF0YSgpLmNnRm9udCgpLCBmb250LCAm
bSwgJmdseXBoLCAmYWR2YW5jZSkpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gY2Fj
aGUgZ2x5cGggd2lkdGhzIGZvciAlQCAlZiIsIFtmb250IGRpc3BsYXlOYW1lXSwgcG9pbnRTaXpl
KTsKLSAgICAgICAgYWR2YW5jZS53aWR0aCA9IDA7Ci0gICAgfQorICAgIGlmIChtX3BsYXRmb3Jt
RGF0YS5mb250T3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsKSB7CisgICAgICAgIE5TRm9udCog
Zm9udCA9IHBsYXRmb3JtRGF0YSgpLmZvbnQoKTsKKyAgICAgICAgZmxvYXQgcG9pbnRTaXplID0g
cGxhdGZvcm1EYXRhKCkubV9zaXplOworICAgICAgICBDR0FmZmluZVRyYW5zZm9ybSBtID0gQ0dB
ZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUocG9pbnRTaXplLCBwb2ludFNpemUpOworICAgICAgICBp
ZiAoIXdrR2V0R2x5cGhUcmFuc2Zvcm1lZEFkdmFuY2VzKHBsYXRmb3JtRGF0YSgpLmNnRm9udCgp
LCBmb250LCAmbSwgJmdseXBoLCAmYWR2YW5jZSkpIHsKKyAgICAgICAgICAgIExPR19FUlJPUigi
VW5hYmxlIHRvIGNhY2hlIGdseXBoIHdpZHRocyBmb3IgJUAgJWYiLCBbZm9udCBkaXNwbGF5TmFt
ZV0sIHBvaW50U2l6ZSk7CisgICAgICAgICAgICBhZHZhbmNlLndpZHRoID0gMDsKKyAgICAgICAg
fQorICAgIH0gZWxzZQorICAgICAgICBDVEZvbnRHZXRBZHZhbmNlc0ZvckdseXBocyhtX3BsYXRm
b3JtRGF0YS5jdEZvbnQoKSwga0NURm9udFZlcnRpY2FsT3JpZW50YXRpb24sICZnbHlwaCwgJmFk
dmFuY2UsIDEpOworCiAgICAgcmV0dXJuIGFkdmFuY2Uud2lkdGggKyBtX3N5bnRoZXRpY0JvbGRP
ZmZzZXQ7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAog
I2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnREZXNjcmlw
dGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTM3LDcgKzM4LDcgQEAg
c3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgOiBOb25jb3B5YQogICAgIC8vIGZvciB1c2Ug
d2l0aCBRRm9udERhdGFiYXNlOjphZGRBcHBsaWNhdGlvbkZvbnQvcmVtb3ZlQXBwbGljYXRpb25G
b250CiAgICAgaW50IG1faGFuZGxlOwogCi0gICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZv
cm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9k
ZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRm
b3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9u
IGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFs
UmVuZGVyaW5nTW9kZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBT
dHJpbmcmKTsKIH07CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGFRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUXQuY3BwCShyZXZpc2lvbiA2OTgzMikKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YVF0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojp+Rm9udEN1c3RvbVBsYXRmCiAgICAgUUZvbnREYXRhYmFzZTo6cmVtb3ZlQXBwbGljYXRpb25G
b250KG1faGFuZGxlKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBG
b250UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0
YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9u
dE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICBRRm9udCBmb250OwogICAg
IGZvbnQuc2V0RmFtaWx5KFFGb250RGF0YWJhc2U6OmFwcGxpY2F0aW9uRm9udEZhbWlsaWVzKG1f
aGFuZGxlKVswXSk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRQbGF0
Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0Zv
bnRQbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMs
NyBAQCBwdWJsaWM6CiAKIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgOiBwdWJsaWMgRmFzdEFsbG9j
QmFzZSB7CiBwdWJsaWM6Ci0gICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJv
bGQsIGJvb2wgb2JsaXF1ZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29s
IGJvbGQsIGJvb2wgb2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhv
cml6b250YWwpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSAm
KTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0
b21pY1N0cmluZyYgZmFtaWx5TmFtZSwgaW50IHdvcmRTcGFjaW5nID0gMCwgaW50IGxldHRlclNw
YWNpbmcgPSAwKTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IFFGb250JiBmb250KQpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UGxhdGZvcm1EYXRhUXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0
YVF0LmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L0ZvbnRQbGF0Zm9ybURhdGFRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAg
c3RhdGljIGlubGluZSBib29sIGlzRW10cHlWYWx1ZShjb25zdCBmbAogICAgIHJldHVybiAhYm9s
ZCAmJiAhb2JsaXF1ZSAmJiBzaXplID09IDAuZjsKIH0KIAotRm9udFBsYXRmb3JtRGF0YTo6Rm9u
dFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSkKK0ZvbnRQ
bGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29s
IG9ibGlxdWUsIEZvbnRPcmllbnRhdGlvbikKIHsKICAgICBpZiAoaXNFbXRweVZhbHVlKHNpemUs
IGJvbGQsIG9ibGlxdWUpKQogICAgICAgICBtX2RhdGEgPSAwOwpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcg
QEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogI2VuZGlmCiB9CiAK
LUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0
YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUgbW9k
ZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3Jt
RGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uLCBG
b250UmVuZGVyaW5nTW9kZSBtb2RlKQogewogI2lmIE9TKFdJTkRPV1MpCiAgICAgQVNTRVJUKG1f
Zm9udFJlZmVyZW5jZSk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5ODMyKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAko
d29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2lmbmRlZiBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhX2gKICNkZWZpbmUgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAKKyNpbmNsdWRlICJG
b250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC02Miw3
ICs2Myw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKIAogICAg
IH5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCk7CiAKLSAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQ
bGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsCisgICAgRm9udFBs
YXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9udFJlbmRlcmluZ01vZGUgPSBOb3Jt
YWxSZW5kZXJpbmdNb2RlKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0
IFN0cmluZyYpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZv
bnRDdXN0b21QbGF0ZgogICAgIH0KIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxh
dGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJv
bGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlIHJlbmRl
cmluZ01vZGUpCiB7CiAgICAgQVNTRVJUKG1fZm9udFJlZmVyZW5jZSk7CiAgICAgQVNTRVJUKFQy
ZW1iZWRMaWJyYXJ5KCkpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNjk4MzIpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdv
cmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpZm5kZWYgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogCisjaW5jbHVkZSAiRm9u
dERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC00Miw3ICs0
Myw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKIAogICAgIH5G
b250Q3VzdG9tUGxhdGZvcm1EYXRhKCk7CiAKLSAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0
Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdN
b2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxh
dGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRp
b24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3Jt
YWxSZW5kZXJpbmdNb2RlKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0
IFN0cmluZyYpOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5jcHAJKHJldmlzaW9uIDY5
ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YUNhaXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiAgICBjYWlyb19mb250X2ZhY2VfZGVzdHJv
eShtX2ZvbnRGYWNlKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKQor
Rm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRh
KGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24pCiB7CiAg
ICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9mb250RmFjZSwgc2l6ZSwgYm9sZCwgaXRhbGlj
KTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGFDYWlyby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0
Zm9ybURhdGFDYWlyb19oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyb19oCiAK
KyNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCkBAIC0zOSw3ICs0MCw3IEBAIHN0cnVjdCBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKICAgICB9CiAgICAgfkZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEoKTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShp
bnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYyk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBm
b250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3Jp
ZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCk7CiAKICAgICBzdGF0aWMgYm9v
bCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmgJ
KHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBs
YXRmb3JtRGF0YUNhaXJvV2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgcHVi
bGljOgogCiAgICAgRm9udFBsYXRmb3JtRGF0YShIRk9OVCwgZmxvYXQgc2l6ZSwgYm9vbCBib2xk
LCBib29sIG9ibGlxdWUsIGJvb2wgdXNlR0RJKTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNhaXJv
X2ZvbnRfZmFjZV90KiBmb250RmFjZSwgZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxp
Yyk7Ci0gICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljKTsKKyAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBp
dGFsaWMsIEZvbnRPcmllbnRhdGlvbiBmb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsKTsKICAg
ICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmKTsKICAgICB+Rm9udFBs
YXRmb3JtRGF0YSgpOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250
UGxhdGZvcm1EYXRhV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhV2luLmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhV2luLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzEsNyArNzEsNyBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1E
YXRhKEhGT05UCiAgICAgUmVsZWFzZURDKDAsIGhkYyk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGE6
OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUpCitG
b250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBvYmxpcXVlLCBGb250T3JpZW50YXRpb24pCiAgICAgOiBtX3NpemUoc2l6ZSkKICNpZiBQ
TEFURk9STShDRykKICAgICAsIG1fY2dGb250KDApCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbmNlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJ
KHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiAgICAgICAgIGdfY3VzdG9t
Rm9udENhY2hlLT51bnJlZ2lzdGVyRm9udChtX25hbWUpOwogfQogCi1Gb250UGxhdGZvcm1EYXRh
IEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wg
Ym9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUpCitGb250
UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50
IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiwgRm9udFJlbmRl
cmluZ01vZGUgcmVuZGVyaW5nTW9kZSkKIHsKICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2M7
CiAgICAgZm9udERlc2Muc2V0Q29tcHV0ZWRTaXplKHNpemUpOwpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmgJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAK
ICNpZm5kZWYgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0
Zm9ybURhdGFfaAogCisjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9u
dFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDQsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKIAotICAgICAgICBGb250UGxh
dGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFs
aWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgICAgIEZv
bnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29s
IGl0YWxpYywgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZv
bnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAKICAgICAgICAgc3RhdGlj
IGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250UGxhdGZvcm1EYXRhLmNwcAkocmV2
aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRQbGF0
Zm9ybURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTUsNyArMzU1LDcgQEAgRm9udFBsYXRm
b3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShjb25zdAogICAgIG1fcHJpdmF0ZSA9IG5ldyBGb250
UGxhdGZvcm1Qcml2YXRlRGF0YShmb250RGVzY3JpcHRpb24sIGZhbWlseSk7CiB9CiAKLUZvbnRQ
bGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29s
IG9ibGlxdWUpCitGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUs
IGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlLCBGb250T3JpZW50YXRpb24pCiB7CiAgICAgaWYgKCFz
aXplKQogICAgICAgICBtX3ByaXZhdGUgPSAwOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW5jZS9Gb250UGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250UGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5ODMyKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250UGxhdGZvcm1EYXRhLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHB1
YmxpYzoKIAogICAgICAgICBGb250UGxhdGZvcm1EYXRhKCk6IG1fcHJpdmF0ZSgwKSB7fQotICAg
ICAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVl
KTsKKyAgICAgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wg
b2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwpOwog
CiAgICAgICAgIC8vIFVzZWQgZm9yIGRlbGV0ZWQgdmFsdWVzIGluIHRoZSBmb250IGNhY2hlJ3Mg
aGFzaCB0YWJsZXMuCiAgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEoV1RGOjpIYXNoVGFibGVEZWxl
dGVkVmFsdWVUeXBlKSA6IG1fcHJpdmF0ZSgoRm9udFBsYXRmb3JtUHJpdmF0ZURhdGEqKTEpIHt9
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzEsNyArMzEsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRm
CiB7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBs
YXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmlu
Z01vZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0
Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlv
biwgRm9udFJlbmRlcmluZ01vZGUpCiB7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoc2l6
ZSwgYm9sZCwgaXRhbGljKTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd3gvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTgzMikKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZv
bnREZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTM3LDcg
KzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwogCi0gICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9u
dFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRl
cmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKKyAgICAgICAgRm9udFBsYXRmb3JtRGF0
YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250
T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01v
ZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKICAgICB9OwogCiAgICAgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YSogY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXIqKTsKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udFBsYXRmb3JtRGF0YS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udFBsYXRmb3JtRGF0YS5o
CShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udFBs
YXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKIAog
ICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbWlj
U3RyaW5nJik7CiAgICAgCi0gICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJv
bGQsIGJvb2wgaXRhbGljKQorICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBi
b2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhvcml6
b250YWwpCiAgICAgOiBtX2ZvbnRTdGF0ZShVTklOSVRJQUxJWkVEKQogICAgICwgbV9mb250KDAp
CiAgICAgLCBtX3NpemUoc2l6ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70832</attachid>
            <date>2010-10-14 22:01:57 -0700</date>
            <delta_ts>2010-10-15 00:59:29 -0700</delta_ts>
            <desc>[another build test] Fixed build error on non-Mac platforms. Forgot to add review flag...</desc>
            <filename>WK46973Patch_101015-2.txt</filename>
            <type>text/plain</type>
            <size>59130</size>
            <attacher name="Takumi Takano">takano</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTgzNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTA3IEBACisyMDEwLTEwLTE0ICB0YWthbm8gdGFrdW1pICA8dGFrYW5vMUBhc2lh
LmFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOZWVkIHRvIHN3YXAgZ2x5cGhzIGZvciB2ZXJ0aWNhbCB3cml0aW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk3MworCisgICAgICAgIE1h
ZGUgY2hhbmdlcyB0byBwYXNzIHRoZSB3cml0aW5nLW1vZGUgb3JpZW50YXRpb24gZmxhZyBpbiBS
ZW5kZXJTdHlsZSBkb3duIHRvIEZvbnRQbGF0Zm9ybURhdGEsCisgICAgICAgIGFuZCB1bHRpbWF0
ZWx5IHRvIENvcmVUZXh0IEFQSXMgaW4gYm90aCBmb250IGNvbXBsZXggcGF0aCBhbmQgZmFzdCBw
YXRoLgorCisgICAgICAgIERvZXNuJ3QgYWZmZWN0IGFueSB0ZXN0cyB5ZXQuCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTb3VyY2U6OmdldEZvbnREYXRhKToKKyAgICAg
ICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHls
ZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkRm9udC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9t
RGF0YSk6CisgICAgICAgICogbG9hZGVyL0NhY2hlZEZvbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3Jt
RGF0YUNhY2hlS2V5OjpGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbXB1dGVIYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0Q2FjaGVk
Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2Ny
aXB0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OkZvbnREZXNjcmlw
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OmZvbnRPcmllbnRhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnNldEZvbnRPcmllbnRhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246Om9wZXJhdG9yPT0pOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9y
bURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURh
dGFGcmVlVHlwZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ZvbnRQbGF0Zm9y
bURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZv
cm1EYXRhQ2hyb21pdW1XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRm9udFBsYXRmb3JtRGF0YUNocm9taXVtV2luLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUxpbnV4Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpG
b250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRQbGF0Zm9ybURhdGE6OmZvbnRPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGb250
UGxhdGZvcm1EYXRhOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6
Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0
Zm9ybURhdGFDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZv
bnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6b3Bl
cmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OmRlc2NyaXB0aW9u
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEN1c3RvbVBsYXRmb3JtRGF0
YVBhbmdvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZv
bnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250UGxh
dGZvcm1EYXRhUGFuZ28uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6
Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRQ
bGF0Zm9ybURhdGFQYW5nby5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBs
YXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2hhaWt1L0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRm9udENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpn
ZXRGb250RGF0YUZvckNoYXJhY3RlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpj
cmVhdGVGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9HbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
bHlwaFBhZ2U6OmZpbGwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVG
b250RGF0YUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpn
ZXRDRlN0cmluZ0F0dHJpYnV0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9T
aW1wbGVGb250RGF0YU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpw
bGF0Zm9ybUJvdW5kc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRh
OjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9x
dC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGFRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxh
dGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0
Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhQ2Fpcm8uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBs
YXRmb3JtRGF0YUNhaXJvV2luLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Zv
bnRQbGF0Zm9ybURhdGFXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2Uv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b250UGxhdGZvcm1Qcml2YXRlRGF0YTo6Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0
YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRm
b3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRQbGF0Zm9ybURh
dGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURh
dGEpOgorCiAyMDEwLTEwLTE0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcgYW5kIERhcmluIEFkbGVyLgpJbmRleDogV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29w
eSkKQEAgLTM3Myw3ICszNzMsNyBAQCBfX1pON1dlYkNvcmUxNkRldmljZU1vdGlvbkRhdGExMkFj
Y2VsZXJhCiBfX1pON1dlYkNvcmUxNkRldmljZU1vdGlvbkRhdGExMlJvdGF0aW9uUmF0ZTZjcmVh
dGVFYmRiZGJkCiBfX1pON1dlYkNvcmUxNkRldmljZU1vdGlvbkRhdGE2Y3JlYXRlRU4zV1RGMTBQ
YXNzUmVmUHRySU5TMF8xMkFjY2VsZXJhdGlvbkVFRVM0X05TMl9JTlMwXzEyUm90YXRpb25SYXRl
RUVFYmQKIF9fWk43V2ViQ29yZTE2Rm9udEZhbGxiYWNrTGlzdDE1cmVsZWFzZUZvbnREYXRhRXYK
LV9fWk43V2ViQ29yZTE2Rm9udFBsYXRmb3JtRGF0YUMxRVA2TlNGb250YmIKK19fWk43V2ViQ29y
ZTE2Rm9udFBsYXRmb3JtRGF0YUMxRVA2TlNGb250YmJOU18xNUZvbnRPcmllbnRhdGlvbkUKIF9f
Wk43V2ViQ29yZTE2Rm9udFBsYXRmb3JtRGF0YUQxRXYKIF9fWk43V2ViQ29yZTE2SFRNTElucHV0
RWxlbWVudDEzc2V0QXV0b2ZpbGxlZEViCiBfX1pON1dlYkNvcmUxNkxlZ2FjeVdlYkFyY2hpdmUx
OWNyZWF0ZUZyb21TZWxlY3Rpb25FUE5TXzVGcmFtZUUKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU0Zv
bnRGYWNlU291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNv
dXJjZS5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3Vy
Y2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjIsNyArMTYyLDcgQEAgU2ltcGxlRm9udERhdGEq
IENTU0ZvbnRGYWNlU291cmNlOjpnZXRGbwogICAgICAgICAgICAgICAgIGlmICghbV9mb250LT5l
bnN1cmVDdXN0b21Gb250RGF0YSgpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKIAot
ICAgICAgICAgICAgICAgIGZvbnREYXRhLnNldChuZXcgU2ltcGxlRm9udERhdGEobV9mb250LT5w
bGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmb250RGVzY3JpcHRpb24uY29tcHV0ZWRQaXhlbFNp
emUoKSwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RGVzY3JpcHRpb24ucmVu
ZGVyaW5nTW9kZSgpKSwgdHJ1ZSwgZmFsc2UpKTsKKyAgICAgICAgICAgICAgICBmb250RGF0YS5z
ZXQobmV3IFNpbXBsZUZvbnREYXRhKG1fZm9udC0+cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEo
Zm9udERlc2NyaXB0aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCksIHN5bnRoZXRpY0JvbGQsIHN5bnRo
ZXRpY0l0YWxpYywgZm9udERlc2NyaXB0aW9uLmZvbnRPcmllbnRhdGlvbigpLCBmb250RGVzY3Jp
cHRpb24ucmVuZGVyaW5nTW9kZSgpKSwgdHJ1ZSwgZmFsc2UpKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfSBlbHNlIHsKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQpJbmRleDogV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1NzEsMTAgKzU1NzEsMTQgQEAgdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogI2VuZGlmIAogCiAgICAgLy8gQ1NTIFRl
eHQgTGF5b3V0IE1vZHVsZSBMZXZlbCAzOiBWZXJ0aWNhbCB3cml0aW5nIHN1cHBvcnQKLSAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0V3JpdGluZ01vZGU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdFdyaXRpbmdNb2RlOiB7CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMX0FO
RF9QUklNSVRJVkUod3JpdGluZ01vZGUsIFdyaXRpbmdNb2RlKQorICAgICAgICBGb250RGVzY3Jp
cHRpb24gZm9udERlc2NyaXB0aW9uID0gbV9zdHlsZS0+Zm9udERlc2NyaXB0aW9uKCk7CisgICAg
ICAgIGZvbnREZXNjcmlwdGlvbi5zZXRGb250T3JpZW50YXRpb24obV9zdHlsZS0+aXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWwgOiBWZXJ0aWNhbCk7CisgICAgICAgIGlmICht
X3N0eWxlLT5zZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKSkKKyAgICAgICAgICAg
IG1fZm9udERpcnR5ID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwotCisgICAgfQogI2lmIEVOQUJM
RShTVkcpCiAgICAgZGVmYXVsdDoKICAgICAgICAgLy8gVHJ5IHRoZSBTVkcgcHJvcGVydGllcwpJ
bmRleDogV2ViQ29yZS9sb2FkZXIvQ2FjaGVkRm9udC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9sb2FkZXIvQ2FjaGVkRm9udC5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9sb2Fk
ZXIvQ2FjaGVkRm9udC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNyw3ICsxMTcsNyBAQCBib29s
IENhY2hlZEZvbnQ6OmVuc3VyZUN1c3RvbUZvbnREYXRhKCkKICAgICByZXR1cm4gbV9mb250RGF0
YTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3Vz
dG9tRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBDYWNoZWRGb250OjpwbGF0Zm9y
bURhdGFGcm9tQ3VzdG9tRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBG
b250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJp
bmdNb2RlKQogewogI2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgaWYgKG1fZXh0ZXJuYWxTVkdE
b2N1bWVudCkKQEAgLTEyNSw3ICsxMjUsNyBAQCBGb250UGxhdGZvcm1EYXRhIENhY2hlZEZvbnQ6
OnBsYXRmb3JtRGF0CiAjZW5kaWYKICNpZmRlZiBTVE9SRV9GT05UX0NVU1RPTV9QTEFURk9STV9E
QVRBCiAgICAgQVNTRVJUKG1fZm9udERhdGEpOwotICAgIHJldHVybiBtX2ZvbnREYXRhLT5mb250
UGxhdGZvcm1EYXRhKHN0YXRpY19jYXN0PGludD4oc2l6ZSksIGJvbGQsIGl0YWxpYywgcmVuZGVy
aW5nTW9kZSk7CisgICAgcmV0dXJuIG1fZm9udERhdGEtPmZvbnRQbGF0Zm9ybURhdGEoc3RhdGlj
X2Nhc3Q8aW50PihzaXplKSwgYm9sZCwgaXRhbGljLCBmb250T3JpZW50YXRpb24sIHJlbmRlcmlu
Z01vZGUpOwogI2Vsc2UKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YSgpOwogI2VuZGlmCklu
ZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9s
b2FkZXIvQ2FjaGVkRm9udC5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvbG9hZGVyL0Nh
Y2hlZEZvbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBDYWNo
ZWRGb250X2gKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCisjaW5jbHVkZSAiRm9udERl
c2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKQEAgLTYyLDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZvaWQgYmVnaW5M
b2FkSWZOZWVkZWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGRsKTsKIAogICAgIGJvb2wgZW5zdXJl
Q3VzdG9tRm9udERhdGEoKTsKLSAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YUZyb21D
dXN0b21EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJp
bmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBwbGF0
Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRl
cmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKIAogI2lmIEVOQUJMRShTVkdfRk9OVFMp
CiAgICAgYm9vbCBpc1NWR0ZvbnQoKSBjb25zdCB7IHJldHVybiBtX2lzU1ZHRm9udDsgfQpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAkocmV2aXNpb24gNjk4MzIp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTU1LDEzICs1NSwxNCBAQCBGb250Q2FjaGU6OkZvbnRDYWNoZSgpCiAKIHN0cnVjdCBG
b250UGxhdGZvcm1EYXRhQ2FjaGVLZXkgOiBGYXN0QWxsb2NCYXNlIHsKICAgICBGb250UGxhdGZv
cm1EYXRhQ2FjaGVLZXkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHkgPSBBdG9taWNTdHJpbmco
KSwgdW5zaWduZWQgc2l6ZSA9IDAsIHVuc2lnbmVkIHdlaWdodCA9IDAsIGJvb2wgaXRhbGljID0g
ZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNQcmludGVyRm9udCA9
IGZhbHNlLCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5n
TW9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1ByaW50ZXJGb250ID0g
ZmFsc2UsIEZvbnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdN
b2RlLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCkKICAgICAg
ICAgOiBtX3NpemUoc2l6ZSkKICAgICAgICAgLCBtX3dlaWdodCh3ZWlnaHQpCiAgICAgICAgICwg
bV9mYW1pbHkoZmFtaWx5KQogICAgICAgICAsIG1faXRhbGljKGl0YWxpYykKICAgICAgICAgLCBt
X3ByaW50ZXJGb250KGlzUHJpbnRlckZvbnQpCiAgICAgICAgICwgbV9yZW5kZXJpbmdNb2RlKHJl
bmRlcmluZ01vZGUpCisgICAgICAgICwgbV9mb250T3JpZW50YXRpb24oZm9udE9yaWVudGF0aW9u
KQogICAgIHsKICAgICB9CiAKQEAgLTcyLDcgKzczLDcgQEAgc3RydWN0IEZvbnRQbGF0Zm9ybURh
dGFDYWNoZUtleSA6IEZhc3RBbAogICAgIHsKICAgICAgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdD
YXNlKG1fZmFtaWx5LCBvdGhlci5tX2ZhbWlseSkgJiYgbV9zaXplID09IG90aGVyLm1fc2l6ZSAm
JiAKICAgICAgICAgICAgICAgIG1fd2VpZ2h0ID09IG90aGVyLm1fd2VpZ2h0ICYmIG1faXRhbGlj
ID09IG90aGVyLm1faXRhbGljICYmIG1fcHJpbnRlckZvbnQgPT0gb3RoZXIubV9wcmludGVyRm9u
dCAmJgotICAgICAgICAgICAgICAgbV9yZW5kZXJpbmdNb2RlID09IG90aGVyLm1fcmVuZGVyaW5n
TW9kZTsKKyAgICAgICAgICAgICAgIG1fcmVuZGVyaW5nTW9kZSA9PSBvdGhlci5tX3JlbmRlcmlu
Z01vZGUgJiYgbV9mb250T3JpZW50YXRpb24gPT0gb3RoZXIubV9mb250T3JpZW50YXRpb247CiAg
ICAgfQogCiAgICAgdW5zaWduZWQgbV9zaXplOwpAQCAtODEsNiArODIsNyBAQCBzdHJ1Y3QgRm9u
dFBsYXRmb3JtRGF0YUNhY2hlS2V5IDogRmFzdEFsCiAgICAgYm9vbCBtX2l0YWxpYzsKICAgICBi
b29sIG1fcHJpbnRlckZvbnQ7CiAgICAgRm9udFJlbmRlcmluZ01vZGUgbV9yZW5kZXJpbmdNb2Rl
OworICAgIEZvbnRPcmllbnRhdGlvbiBtX2ZvbnRPcmllbnRhdGlvbjsKIAogcHJpdmF0ZToKICAg
ICBzdGF0aWMgdW5zaWduZWQgaGFzaFRhYmxlRGVsZXRlZFNpemUoKSB7IHJldHVybiAweEZGRkZG
RkZGVTsgfQpAQCAtOTIsNyArOTQsNyBAQCBpbmxpbmUgdW5zaWduZWQgY29tcHV0ZUhhc2goY29u
c3QgRm9udFBsCiAgICAgICAgIENhc2VGb2xkaW5nSGFzaDo6aGFzaChmb250S2V5Lm1fZmFtaWx5
KSwKICAgICAgICAgZm9udEtleS5tX3NpemUsCiAgICAgICAgIGZvbnRLZXkubV93ZWlnaHQsCi0g
ICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5Lm1faXRhbGljKSA8PCAyIHwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9wcmludGVyRm9udCkgPDwgMSB8IHN0YXRpY19j
YXN0PHVuc2lnbmVkPihmb250S2V5Lm1fcmVuZGVyaW5nTW9kZSkKKyAgICAgICAgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9mb250T3JpZW50YXRpb24pIDw8IDMgfCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oZm9udEtleS5tX2l0YWxpYykgPDwgMiB8IHN0YXRpY19jYXN0PHVuc2lnbmVk
Pihmb250S2V5Lm1fcHJpbnRlckZvbnQpIDw8IDEgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9u
dEtleS5tX3JlbmRlcmluZ01vZGUpCiAgICAgfTsKICAgICByZXR1cm4gU3RyaW5nSW1wbDo6Y29t
cHV0ZUhhc2gocmVpbnRlcnByZXRfY2FzdDxVQ2hhcio+KGhhc2hDb2RlcyksIHNpemVvZihoYXNo
Q29kZXMpIC8gc2l6ZW9mKFVDaGFyKSk7CiB9CkBAIC0xOTEsNyArMTkzLDcgQEAgRm9udFBsYXRm
b3JtRGF0YSogRm9udENhY2hlOjpnZXRDYWNoZWRGbwogICAgIH0KIAogICAgIEZvbnRQbGF0Zm9y
bURhdGFDYWNoZUtleSBrZXkoZmFtaWx5TmFtZSwgZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkUGl4
ZWxTaXplKCksIGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSwgZm9udERlc2NyaXB0aW9uLml0YWxp
YygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnVz
ZVByaW50ZXJGb250KCksIGZvbnREZXNjcmlwdGlvbi5yZW5kZXJpbmdNb2RlKCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnVzZVByaW50ZXJGb250
KCksIGZvbnREZXNjcmlwdGlvbi5yZW5kZXJpbmdNb2RlKCksIGZvbnREZXNjcmlwdGlvbi5mb250
T3JpZW50YXRpb24oKSk7CiAgICAgRm9udFBsYXRmb3JtRGF0YSogcmVzdWx0ID0gMDsKICAgICBi
b29sIGZvdW5kUmVzdWx0OwogICAgIEZvbnRQbGF0Zm9ybURhdGFDYWNoZTo6aXRlcmF0b3IgaXQg
PSBnRm9udFBsYXRmb3JtRGF0YUNhY2hlLT5maW5kKGtleSk7CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgJKHJldmlzaW9uIDY5ODMyKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtNDcsNiArNDcsOCBAQCBlbnVtIEZvbnRXZWlnaHQgewogICAgIEZvbnRXZWlnaHRCb2xkID0g
Rm9udFdlaWdodDcwMAogfTsKIAorZW51bSBGb250T3JpZW50YXRpb24geyBIb3Jpem9udGFsLCBW
ZXJ0aWNhbCB9OworCiBjbGFzcyBGb250RGVzY3JpcHRpb24gewogcHVibGljOgogICAgIGVudW0g
R2VuZXJpY0ZhbWlseVR5cGUgeyBOb0ZhbWlseSwgU3RhbmRhcmRGYW1pbHksIFNlcmlmRmFtaWx5
LCBTYW5zU2VyaWZGYW1pbHksIApAQCAtNTUsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgRm9udERl
c2NyaXB0aW9uKCkKICAgICAgICAgOiBtX3NwZWNpZmllZFNpemUoMCkKICAgICAgICAgLCBtX2Nv
bXB1dGVkU2l6ZSgwKQorICAgICAgICAsIG1fZm9udE9yaWVudGF0aW9uKEhvcml6b250YWwpCiAg
ICAgICAgICwgbV9pdGFsaWMoZmFsc2UpCiAgICAgICAgICwgbV9zbWFsbENhcHMoZmFsc2UpCiAg
ICAgICAgICwgbV9pc0Fic29sdXRlU2l6ZShmYWxzZSkKQEAgLTk0LDYgKzk3LDcgQEAgcHVibGlj
OgogCiAgICAgRm9udFRyYWl0c01hc2sgdHJhaXRzTWFzaygpIGNvbnN0OwogICAgIGJvb2wgaXNT
cGVjaWZpZWRGb250KCkgY29uc3QgeyByZXR1cm4gbV9pc1NwZWNpZmllZEZvbnQ7IH0KKyAgICBG
b250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9mb250T3Jp
ZW50YXRpb247IH0KIAogICAgIHZvaWQgc2V0RmFtaWx5KGNvbnN0IEZvbnRGYW1pbHkmIGZhbWls
eSkgeyBtX2ZhbWlseUxpc3QgPSBmYW1pbHk7IH0KICAgICB2b2lkIHNldENvbXB1dGVkU2l6ZShm
bG9hdCBzKSB7IG1fY29tcHV0ZWRTaXplID0gczsgfQpAQCAtMTEzLDYgKzExNyw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEZvbnRTbW9vdGhpbmcoRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5n
KSB7IG1fZm9udFNtb290aGluZyA9IHNtb290aGluZzsgfQogICAgIHZvaWQgc2V0VGV4dFJlbmRl
cmluZ01vZGUoVGV4dFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nKSB7IG1fdGV4dFJlbmRlcmluZyA9
IHJlbmRlcmluZzsgfQogICAgIHZvaWQgc2V0SXNTcGVjaWZpZWRGb250KGJvb2wgaXNTcGVjaWZp
ZWRGb250KSB7IG1faXNTcGVjaWZpZWRGb250ID0gaXNTcGVjaWZpZWRGb250OyB9CisgICAgdm9p
ZCBzZXRGb250T3JpZW50YXRpb24oRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbikgeyBt
X2ZvbnRPcmllbnRhdGlvbiA9IGZvbnRPcmllbnRhdGlvbjsgfQogCiBwcml2YXRlOgogICAgIEZv
bnRGYW1pbHkgbV9mYW1pbHlMaXN0OyAvLyBUaGUgbGlzdCBvZiBmb250IGZhbWlsaWVzIHRvIGJl
IHVzZWQuCkBAIC0xMjEsNiArMTI2LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gcm91bmRpbmcsIG1pbmltdW0gZm9udCBzaXplcywgYW5kIHpvb21pbmcuCiAg
ICAgZmxvYXQgbV9jb21wdXRlZFNpemU7ICAgIC8vIENvbXB1dGVkIHNpemUgYWRqdXN0ZWQgZm9y
IHRoZSBtaW5pbXVtIGZvbnQgc2l6ZSBhbmQgdGhlIHpvb20gZmFjdG9yLiAgCiAKKyAgICBGb250
T3JpZW50YXRpb24gbV9mb250T3JpZW50YXRpb247IC8vIEZvbnQncyBvcmllbnRhdGlvbi4gSG9y
aXpvbnRhbCBvciB2ZXJ0aWNhbC4KKwogICAgIGJvb2wgbV9pdGFsaWMgOiAxOwogICAgIGJvb2wg
bV9zbWFsbENhcHMgOiAxOwogICAgIGJvb2wgbV9pc0Fic29sdXRlU2l6ZSA6IDE7ICAgLy8gV2hl
dGhlciBvciBub3QgQ1NTIHNwZWNpZmllZCBhbiBleHBsaWNpdCBzaXplCkBAIC0xNTUsNyArMTYy
LDggQEAgaW5saW5lIGJvb2wgRm9udERlc2NyaXB0aW9uOjpvcGVyYXRvcj09KAogICAgICAgICAm
JiBtX2tleXdvcmRTaXplID09IG90aGVyLm1fa2V5d29yZFNpemUKICAgICAgICAgJiYgbV9mb250
U21vb3RoaW5nID09IG90aGVyLm1fZm9udFNtb290aGluZwogICAgICAgICAmJiBtX3RleHRSZW5k
ZXJpbmcgPT0gb3RoZXIubV90ZXh0UmVuZGVyaW5nCi0gICAgICAgICYmIG1faXNTcGVjaWZpZWRG
b250ID09IG90aGVyLm1faXNTcGVjaWZpZWRGb250OworICAgICAgICAmJiBtX2lzU3BlY2lmaWVk
Rm9udCA9PSBvdGhlci5tX2lzU3BlY2lmaWVkRm9udAorICAgICAgICAmJiBtX2ZvbnRPcmllbnRh
dGlvbiA9PSBvdGhlci5tX2ZvbnRPcmllbnRhdGlvbjsKIH0KIAogfQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAkocmV2aXNpb24gNjk4MzIpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFVTRShDT1JFX1RFWFQp
Ci0gICAgQ0ZEaWN0aW9uYXJ5UmVmIGdldENGU3RyaW5nQXR0cmlidXRlcyhUeXBlc2V0dGluZ0Zl
YXR1cmVzKSBjb25zdDsKKyAgICBDRkRpY3Rpb25hcnlSZWYgZ2V0Q0ZTdHJpbmdBdHRyaWJ1dGVz
KFR5cGVzZXR0aW5nRmVhdHVyZXMsIGJvb2wgaWdub3JlRGVmYXVsdEZlYXR1cmVzID0gZmFsc2Up
IGNvbnN0OwogI2VuZGlmCiAKICNpZiBVU0UoQVRTVUkpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBA
QCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiAgICAgY2Fpcm9fZm9u
dF9mYWNlX2Rlc3Ryb3kobV9mb250RmFjZSk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBi
b29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0
b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9v
bCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiwgRm9udFJlbmRlcmluZ01vZGUpCiB7CiAgICAgcmV0
dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9mb250RmFjZSwgc2l6ZSwgYm9sZCwgaXRhbGljKTsKIH0K
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMiw2ICsyMiw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogI2Rl
ZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlv
bi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTM4LDcgKzM5LDcgQEAgc3Ry
dWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgOiBOb25jb3B5YQogcHVibGljOgogICAgIEZvbnRD
dXN0b21QbGF0Zm9ybURhdGEoRlRfRmFjZSwgU2hhcmVkQnVmZmVyKik7CiAgICAgfkZvbnRDdXN0
b21QbGF0Zm9ybURhdGEoKTsKLSAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEo
aW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9y
bWFsUmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRh
KGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gZm9udE9y
aWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJp
bmdNb2RlKTsKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsK
IAogcHJpdmF0ZToKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBs
YXRmb3JtRGF0YUZyZWVUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAJKHJldmlzaW9uIDY5ODMy
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJl
ZVR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNyArMTM2LDcgQEAgRm9udFBsYXRmb3Jt
RGF0YTo6Rm9udFBsYXRmb3JtRGF0YShGY1BhdAogICAgIH0KIH0KIAotRm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKQor
Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQs
IGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24pCiAgICAgOiBtX2ZhbGxiYWNrcygwKQogICAg
ICwgbV9zaXplKHNpemUpCiAgICAgLCBtX3N5bnRoZXRpY0JvbGQoYm9sZCkKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1E
YXRhRnJlZVR5cGUuaAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01
NSw3ICs1NSw3IEBAIHB1YmxpYzoKIAogICAgIEZvbnRQbGF0Zm9ybURhdGEoRmNQYXR0ZXJuKiwg
Y29uc3QgRm9udERlc2NyaXB0aW9uJik7CiAgICAgRm9udFBsYXRmb3JtRGF0YShjYWlyb19mb250
X2ZhY2VfdCogZm9udEZhY2UsIGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMpOwot
ICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYyk7
CisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCk7CiAgICAgRm9u
dFBsYXRmb3JtRGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJik7CiAgICAgRm9udFBsYXRmb3Jt
RGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJiwgZmxvYXQgc2l6ZSk7CiAKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvRm9udFBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lv
biA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvRm9udFBsYXRmb3JtRGF0
YS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAg
ICBGb250UGxhdGZvcm1EYXRhKEhGT05ULCBmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2Js
aXF1ZSwgYm9vbCB1c2VHREkpOwotICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9v
bCBib2xkLCBib29sIG9ibGlxdWUpOworICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwg
Ym9vbCBib2xkLCBib29sIG9ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBmb250T3JpZW50YXRpb24g
PSBIb3Jpem9udGFsKTsKIAogICAgIEZvbnRQbGF0Zm9ybURhdGEoSEZPTlQsIENHRm9udFJlZiwg
ZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUsIGJvb2wgdXNlR0RJKTsKICAgICB+
Rm9udFBsYXRmb3JtRGF0YSgpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Gb250UGxhdGZvcm1EYXRhQ2hyb21pdW1XaW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUNocm9taXVtV2lu
LmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0ZvbnRQbGF0Zm9ybURhdGFDaHJvbWl1bVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2
LDcgKzY2LDcgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShIRk9OVAogfQog
CiAvLyBGSVhNRTogdGhpcyBjb25zdHJ1Y3RvciBpcyBuZWVkZWQgZm9yIFNWRyBmb250cyBidXQg
ZG9lc24ndCBzZWVtIHRvIGRvIG11Y2gKLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURh
dGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUpCitGb250UGxhdGZvcm1EYXRh
OjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlLCBG
b250T3JpZW50YXRpb24pCiAgICAgOiBtX2ZvbnQoMCkKICAgICAsIG1fc2l6ZShzaXplKQogICAg
ICwgbV9zY3JpcHRDYWNoZSgwKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Gb250UGxhdGZvcm1EYXRhQ2hyb21pdW1XaW4uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRQbGF0Zm9ybURhdGFDaHJvbWl1bVdpbi5o
CShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Rm9udFBsYXRmb3JtRGF0YUNocm9taXVtV2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3
LDcgQEAgcHVibGljOgogICAgIEZvbnRQbGF0Zm9ybURhdGEoV1RGOjpIYXNoVGFibGVEZWxldGVk
VmFsdWVUeXBlKTsKICAgICBGb250UGxhdGZvcm1EYXRhKCk7CiAgICAgRm9udFBsYXRmb3JtRGF0
YShIRk9OVCwgZmxvYXQgc2l6ZSk7Ci0gICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBi
b29sIGJvbGQsIGJvb2wgb2JsaXF1ZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXpl
LCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlv
biA9IEhvcml6b250YWwpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3Jt
RGF0YSYpOwogCiAgICAgRm9udFBsYXRmb3JtRGF0YSYgb3BlcmF0b3I9KGNvbnN0IEZvbnRQbGF0
Zm9ybURhdGEmKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9u
dFBsYXRmb3JtRGF0YUxpbnV4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhTGludXguaAkocmV2aXNpb24gNjk4MzIpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRQbGF0Zm9ybURhdGFMaW51
eC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBt
X2Zha2VJdGFsaWMoZmFsc2UpCiAgICAgICAgIHsgfQogCi0gICAgRm9udFBsYXRmb3JtRGF0YShm
bG9hdCB0ZXh0U2l6ZSwgYm9vbCBmYWtlQm9sZCwgYm9vbCBmYWtlSXRhbGljKQorICAgIEZvbnRQ
bGF0Zm9ybURhdGEoZmxvYXQgdGV4dFNpemUsIGJvb2wgZmFrZUJvbGQsIGJvb2wgZmFrZUl0YWxp
YywgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwpCiAgICAgICAg
IDogbV90eXBlZmFjZSgwKQogICAgICAgICAsIG1fdGV4dFNpemUodGV4dFNpemUpCiAgICAgICAg
ICwgbV9mYWtlQm9sZChmYWtlQm9sZCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvRm9udFBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBACiAjaWZuZGVmIEZvbnRQbGF0Zm9ybURhdGFfaAogI2Rl
ZmluZSBGb250UGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogI2lmZGVmIF9fT0JKQ19fCkBAIC01
OCw5ICs1OSwxMCBAQCBpbmxpbmUgQ1RGb250UmVmIHRvQ1RGb250UmVmKE5TRm9udCAqbnNGCiAK
IGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICBwdWJsaWM6Ci0gICAgRm9udFBsYXRmb3JtRGF0
YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSkK
KyAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9v
bCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9y
aXpvbnRhbCkKICAgICAgICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkKICAgICAg
ICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGljT2JsaXF1ZSkKKyAgICAgICAgLCBtX2Zv
bnRPcmllbnRhdGlvbihmb250T3JpZW50YXRpb24pCiAgICAgICAgICwgbV9hdHN1Rm9udElEKDAp
CiAgICAgICAgICwgbV9zaXplKHNpemUpCiAgICAgICAgICwgbV9mb250KDApCkBAIC03MSwxMSAr
NzMsMTIgQEAgY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiAgICAgewogICAgIH0KIAotICAgIEZv
bnRQbGF0Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3ludGhldGljQm9sZCA9IGZhbHNl
LCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YShO
U0ZvbnQgKm5zRm9udCwgYm9vbCBzeW50aGV0aWNCb2xkID0gZmFsc2UsIGJvb2wgc3ludGhldGlj
T2JsaXF1ZSA9IGZhbHNlLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpv
bnRhbCk7CiAgICAgCi0gICAgRm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dGb250LCBBVFNV
Rm9udElEIGZvbnRJRCwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRo
ZXRpY09ibGlxdWUpCisgICAgRm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dGb250LCBBVFNV
Rm9udElEIGZvbnRJRCwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRo
ZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBmb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFs
KQogICAgICAgICA6IG1fc3ludGhldGljQm9sZChzeW50aGV0aWNCb2xkKQogICAgICAgICAsIG1f
c3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQorICAgICAgICAsIG1fZm9udE9yaWVu
dGF0aW9uKGZvbnRPcmllbnRhdGlvbikKICAgICAgICAgLCBtX2F0c3VGb250SUQoZm9udElEKQog
ICAgICAgICAsIG1fc2l6ZShzaXplKQogICAgICAgICAsIG1fZm9udCgwKQpAQCAtOTQsOSArOTcs
MTEgQEAgY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiAgICAgZmxvYXQgc2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2l6ZTsgfQogICAgIGJvb2wgc3ludGhldGljQm9sZCgpIGNvbnN0IHsgcmV0dXJu
IG1fc3ludGhldGljQm9sZDsgfQogICAgIGJvb2wgc3ludGhldGljT2JsaXF1ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc3ludGhldGljT2JsaXF1ZTsgfQorICAgIEZvbnRPcmllbnRhdGlvbiBmb250T3Jp
ZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2ZvbnRPcmllbnRhdGlvbjsgfQogCiAgICAgYm9v
bCBtX3N5bnRoZXRpY0JvbGQ7CiAgICAgYm9vbCBtX3N5bnRoZXRpY09ibGlxdWU7CisgICAgRm9u
dE9yaWVudGF0aW9uIG1fZm9udE9yaWVudGF0aW9uOwogCiAgICAgQVRTVUZvbnRJRCBtX2F0c3VG
b250SUQ7CiAgICAgZmxvYXQgbV9zaXplOwpAQCAtMTA0LDcgKzEwOSw3IEBAIGNsYXNzIEZvbnRQ
bGF0Zm9ybURhdGEgewogICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdAogICAgIHsKICAgICAgICAg
QVNTRVJUKG1fZm9udCAhPSAwIHx8IG1fY2dGb250ID09IDApOwotICAgICAgICB1aW50cHRyX3Qg
aGFzaENvZGVzWzJdID0geyAodWludHB0cl90KW1fZm9udCwgbV9zeW50aGV0aWNCb2xkIDw8IDEg
fCBtX3N5bnRoZXRpY09ibGlxdWUgfTsKKyAgICAgICAgdWludHB0cl90IGhhc2hDb2Rlc1syXSA9
IHsgKHVpbnRwdHJfdCltX2ZvbnQsIG1fZm9udE9yaWVudGF0aW9uIDw8IDIgfCBtX3N5bnRoZXRp
Y0JvbGQgPDwgMSB8IG1fc3ludGhldGljT2JsaXF1ZSB9OwogICAgICAgICByZXR1cm4gU3RyaW5n
SW1wbDo6Y29tcHV0ZUhhc2gocmVpbnRlcnByZXRfY2FzdDxVQ2hhcio+KGhhc2hDb2RlcyksIHNp
emVvZihoYXNoQ29kZXMpIC8gc2l6ZW9mKFVDaGFyKSk7CiAgICAgfQogCkBAIC0xMTMsNyArMTE4
LDcgQEAgY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IEZvbnRQbGF0Zm9ybURhdGEmIG90aGVyKSBjb25zdAogICAgIHsgCiAgICAgICAgIHJldHVybiBt
X2ZvbnQgPT0gb3RoZXIubV9mb250ICYmIG1fc3ludGhldGljQm9sZCA9PSBvdGhlci5tX3N5bnRo
ZXRpY0JvbGQgJiYgbV9zeW50aGV0aWNPYmxpcXVlID09IG90aGVyLm1fc3ludGhldGljT2JsaXF1
ZSAmJiAKLSAgICAgICAgICAgICAgIG1fY2dGb250ID09IG90aGVyLm1fY2dGb250ICYmIG1fc2l6
ZSA9PSBvdGhlci5tX3NpemUgJiYgbV9hdHN1Rm9udElEID09IG90aGVyLm1fYXRzdUZvbnRJRDsK
KyAgICAgICAgICAgICAgIG1fY2dGb250ID09IG90aGVyLm1fY2dGb250ICYmIG1fc2l6ZSA9PSBv
dGhlci5tX3NpemUgJiYgbV9hdHN1Rm9udElEID09IG90aGVyLm1fYXRzdUZvbnRJRCAmJiBtX2Zv
bnRPcmllbnRhdGlvbiA9PSBvdGhlci5tX2ZvbnRPcmllbnRhdGlvbjsKICAgICB9CiAKICAgICBO
U0ZvbnQgKmZvbnQoKSBjb25zdCB7IHJldHVybiBtX2ZvbnQ7IH0KSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29h
Lm1tCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
Rm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00NCw5ICs0NCwxMCBA
QCB2b2lkIEZvbnRQbGF0Zm9ybURhdGE6OmxvYWRGb250KE5TRm9udCogCiB9CiAjZW5kaWYgIC8v
IFBMQVRGT1JNKE1BQykKIAotRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShOU0Zv
bnQgKm5zRm9udCwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUpCitG
b250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKE5TRm9udCAqbnNGb250LCBib29sIHN5
bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIGZvbnRP
cmllbnRhdGlvbikKICAgICA6IG1fc3ludGhldGljQm9sZChzeW50aGV0aWNCb2xkKQogICAgICwg
bV9zeW50aGV0aWNPYmxpcXVlKHN5bnRoZXRpY09ibGlxdWUpCisgICAgLCBtX2ZvbnRPcmllbnRh
dGlvbihmb250T3JpZW50YXRpb24pCiAgICAgLCBtX2ZvbnQobnNGb250KQogI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgLy8gRklYTUU6IENocm9taXVt
OiBUaGUgZm9sbG93aW5nIGNvZGUgaXNuJ3QgY29ycmVjdCBmb3IgdGhlIENocm9taXVtIHBvcnQg
c2luY2UgdGhlIHNhbmRib3ggbWlnaHQKQEAgLTgzLDYgKzg0LDcgQEAgRm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YShjb25zdAogICAgIG1fY2dGb250ID0gZi5tX2NnRm9udDsKICAg
ICBtX2F0c3VGb250SUQgPSBmLm1fYXRzdUZvbnRJRDsKICAgICBtX2lzQ29sb3JCaXRtYXBGb250
ID0gZi5tX2lzQ29sb3JCaXRtYXBGb250OworICAgIG1fZm9udE9yaWVudGF0aW9uID0gZi5tX2Zv
bnRPcmllbnRhdGlvbjsKICNpZiBVU0UoQ09SRV9URVhUKQogICAgIG1fQ1RGb250ID0gZi5tX0NU
Rm9udDsKICNlbmRpZgpAQCAtMTEyLDYgKzExNCw3IEBAIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEm
IEZvbnRQbGF0Zm9ybURhdGEKICAgICAgICAgQ0ZSZWxlYXNlKG1fZm9udCk7CiAgICAgbV9mb250
ID0gZi5tX2ZvbnQ7CiAgICAgbV9pc0NvbG9yQml0bWFwRm9udCA9IGYubV9pc0NvbG9yQml0bWFw
Rm9udDsKKyAgICBtX2ZvbnRPcmllbnRhdGlvbiA9IGYubV9mb250T3JpZW50YXRpb247CiAjaWYg
VVNFKENPUkVfVEVYVCkKICAgICBtX0NURm9udCA9IGYubV9DVEZvbnQ7CiAjZW5kaWYKQEAgLTE4
Nyw3ICsxOTAsOCBAQCBDVEZvbnRSZWYgRm9udFBsYXRmb3JtRGF0YTo6Y3RGb250KCkgY29uCiBT
dHJpbmcgRm9udFBsYXRmb3JtRGF0YTo6ZGVzY3JpcHRpb24oKSBjb25zdAogewogICAgIFJldGFp
blB0cjxDRlN0cmluZ1JlZj4gY2dGb250RGVzY3JpcHRpb24oQWRvcHRDRiwgQ0ZDb3B5RGVzY3Jp
cHRpb24oY2dGb250KCkpKTsKLSAgICByZXR1cm4gU3RyaW5nKGNnRm9udERlc2NyaXB0aW9uLmdl
dCgpKSArICIgIiArIFN0cmluZzo6bnVtYmVyKG1fc2l6ZSkgKyAobV9zeW50aGV0aWNCb2xkID8g
IiBzeW50aGV0aWMgYm9sZCIgOiAiIikgKyAobV9zeW50aGV0aWNPYmxpcXVlID8gIiBzeW50aGV0
aWMgb2JsaXF1ZSIgOiAiIik7CisgICAgcmV0dXJuIFN0cmluZyhjZ0ZvbnREZXNjcmlwdGlvbi5n
ZXQoKSkgKyAiICIgKyBTdHJpbmc6Om51bWJlcihtX3NpemUpCisgICAgICAgICAgICArIChtX3N5
bnRoZXRpY0JvbGQgPyAiIHN5bnRoZXRpYyBib2xkIiA6ICIiKSArIChtX3N5bnRoZXRpY09ibGlx
dWUgPyAiIHN5bnRoZXRpYyBvYmxpcXVlIiA6ICIiKSArIChtX2ZvbnRPcmllbnRhdGlvbiA/ICIg
dmVydGljYWwgb3JpZW50YXRpb24iIDogIiIpOwogfQogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFQYW5nby5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YVBhbmdvLmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2d0ay9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUGFuZ28uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw3ICszMCw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxh
dGYKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250
UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVy
aW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBs
YXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0
aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YSht
X2ZvbnRGYWNlLCBzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ndGsvRm9udFBsYXRmb3JtRGF0YVBhbmdvLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250UGxhdGZvcm1EYXRhUGFuZ28uY3BwCShy
ZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRQbGF0
Zm9ybURhdGFQYW5nby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw3ICsxMjcsNyBAQCBGb250
UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGNvbnN0CiAgICAgcGFuZ29fZm9udF9kZXNj
cmlwdGlvbl9mcmVlKGRlc2NyaXB0aW9uKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBs
YXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKQorRm9udFBsYXRm
b3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBGb250T3JpZW50YXRpb24pCiAgICAgOiBtX2NvbnRleHQoMCkKICAgICAsIG1fZm9udCgw
KQogICAgICwgbV9zaXplKHNpemUpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0
ay9Gb250UGxhdGZvcm1EYXRhUGFuZ28uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9Gb250UGxhdGZvcm1EYXRhUGFuZ28uaAkocmV2aXNpb24gNjk4MzIpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250UGxhdGZvcm1EYXRhUGFuZ28uaAko
d29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAKICAgICBGb250UGxhdGZv
cm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5
KTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNhaXJvX2ZvbnRfZmFjZV90KiBmb250RmFjZSwgZmxv
YXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYyk7Ci0gICAgRm9udFBsYXRmb3JtRGF0YShm
bG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKTsKKyAgICBGb250UGxhdGZvcm1EYXRh
KGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiBmb250
T3JpZW50YXRpb24gPSBIb3Jpem9udGFsKTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZv
bnRQbGF0Zm9ybURhdGEmKTsKICAgICB+Rm9udFBsYXRmb3JtRGF0YSgpOwogCkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzEsNyArMzEsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiB7
CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRm
b3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01v
ZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9y
bURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiwg
Rm9udFJlbmRlcmluZ01vZGUpCiB7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwg
Ym9sZCwgaXRhbGljKTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3Uv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTgzMikK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0
YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2luY2x1
ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAg
LTM3LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBib29s
IHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwogCi0gICAgICAgIEZvbnRQbGF0Zm9ybURh
dGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9u
dFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKKyAgICAgICAgRm9udFBsYXRm
b3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRl
cmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKICAgICB9OwogCiAgICAgRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YSogY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXIq
KTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udFBsYXRmb3JtRGF0
YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udFBs
YXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvaGFpa3UvRm9udFBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIHsgfQogCiAgICAgICAgIEZvbnRQ
bGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbWljU3RyaW5nJiBm
YW1pbHkpOwotICAgICAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBvYmxpcXVlKTsKKyAgICAgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29s
IGJvbGQsIGJvb2wgb2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhv
cml6b250YWwpOwogICAgICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnRQbGF0Zm9ybURh
dGEmKTsKIAogICAgICAgICB+Rm9udFBsYXRmb3JtRGF0YSgpOwpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQkocmV2aXNpb24gNjk4MzIpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTE0Miw3ICsxNDIsOCBAQCBjb25zdCBTaW1wbGVGb250RGF0YSogRm9udENhY2hl
OjpnZXRGb250CiAKICAgICBGb250UGxhdGZvcm1EYXRhIGFsdGVybmF0ZUZvbnQoc3Vic3RpdHV0
ZUZvbnQsIAogICAgICAgICAhZm9udC5pc1BsYXRmb3JtRm9udCgpICYmIGlzQXBwS2l0Rm9udFdl
aWdodEJvbGQod2VpZ2h0KSAmJiAhaXNBcHBLaXRGb250V2VpZ2h0Qm9sZChzdWJzdGl0dXRlRm9u
dFdlaWdodCksCi0gICAgICAgICFmb250LmlzUGxhdGZvcm1Gb250KCkgJiYgKHRyYWl0cyAmIE5T
Rm9udEl0YWxpY1RyYWl0KSAmJiAhKHN1YnN0aXR1dGVGb250VHJhaXRzICYgTlNGb250SXRhbGlj
VHJhaXQpKTsKKyAgICAgICAgIWZvbnQuaXNQbGF0Zm9ybUZvbnQoKSAmJiAodHJhaXRzICYgTlNG
b250SXRhbGljVHJhaXQpICYmICEoc3Vic3RpdHV0ZUZvbnRUcmFpdHMgJiBOU0ZvbnRJdGFsaWNU
cmFpdCksCisgICAgICAgIHBsYXRmb3JtRGF0YS5tX2ZvbnRPcmllbnRhdGlvbik7CiAgICAgcmV0
dXJuIGdldENhY2hlZEZvbnREYXRhKCZhbHRlcm5hdGVGb250KTsKIH0KIApAQCAtMjEwLDcgKzIx
MSw3IEBAIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Y3JlYXRlRm9udFAKICAgICBib29s
IHN5bnRoZXRpY0JvbGQgPSBpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKHdlaWdodCkgJiYgIWlzQXBw
S2l0Rm9udFdlaWdodEJvbGQoYWN0dWFsV2VpZ2h0KTsKICAgICBib29sIHN5bnRoZXRpY09ibGlx
dWUgPSAodHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQpICYmICEoYWN0dWFsVHJhaXRzICYgTlNG
b250SXRhbGljVHJhaXQpOwogCi0gICAgcmV0dXJuIG5ldyBGb250UGxhdGZvcm1EYXRhKHBsYXRm
b3JtRm9udCwgc3ludGhldGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSk7CisgICAgcmV0dXJuIG5l
dyBGb250UGxhdGZvcm1EYXRhKHBsYXRmb3JtRm9udCwgc3ludGhldGljQm9sZCwgc3ludGhldGlj
T2JsaXF1ZSwgZm9udERlc2NyaXB0aW9uLmZvbnRPcmllbnRhdGlvbigpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY5ODMyKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDkgKzM4LDkgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0
YTo6fkZvbnRDdXN0b21QbGF0ZgogICAgIENHRm9udFJlbGVhc2UobV9jZ0ZvbnQpOwogfQogCi1G
b250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEo
aW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlKQorRm9u
dFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGlu
dCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVu
dGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKLSAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0
YShtX2NnRm9udCwgKEFUU1VGb250SUQpbV9hdHNGb250LCBzaXplLCBib2xkLCBpdGFsaWMpOwor
ICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKG1fY2dGb250LCAoQVRTVUZvbnRJRCltX2F0c0Zv
bnQsIHNpemUsIGJvbGQsIGl0YWxpYywgZm9udE9yaWVudGF0aW9uKTsKIH0KIAogRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YSogY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXIq
IGJ1ZmZlcikKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAog
I2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnREZXNjcmlw
dGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSA8Q29yZUZv
dW5kYXRpb24vQ0ZCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTQxLDcgKzQy
LDcgQEAgc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgOiBOb25jb3B5YQogICAgIHt9CiAg
ICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9u
dFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRl
cmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIGZv
bnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmll
bnRhdGlvbiBmb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsLCBGb250UmVuZGVyaW5nTW9kZSA9
IE5vcm1hbFJlbmRlcmluZ01vZGUpOwogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQo
Y29uc3QgU3RyaW5nJik7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ds
eXBoUGFnZVRyZWVOb2RlTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9HbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR2x5cGhQYWdlVHJlZU5vZGVNYWMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00MCwxNSArNDAsNTkgQEAgYm9vbCBHbHlwaFBhZ2U6OmZpbGwodW5z
aWduZWQgb2Zmc2V0LCB1bgogICAgIGJvb2wgaGF2ZUdseXBocyA9IGZhbHNlOwogCiAjaWZuZGVm
IEJVSUxESU5HX09OX1RJR0VSCi0gICAgVmVjdG9yPENHR2x5cGgsIDUxMj4gZ2x5cGhzKGJ1ZmZl
ckxlbmd0aCk7Ci0gICAgd2tHZXRHbHlwaHNGb3JDaGFyYWN0ZXJzKGZvbnREYXRhLT5wbGF0Zm9y
bURhdGEoKS5jZ0ZvbnQoKSwgYnVmZmVyLCBnbHlwaHMuZGF0YSgpLCBidWZmZXJMZW5ndGgpOwot
Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgIGlm
ICghZ2x5cGhzW2ldKQotICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsg
aSwgMCwgMCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5k
ZXgob2Zmc2V0ICsgaSwgZ2x5cGhzW2ldLCBmb250RGF0YSk7Ci0gICAgICAgICAgICBoYXZlR2x5
cGhzID0gdHJ1ZTsKKyAgICBpZiAoZm9udERhdGEtPnBsYXRmb3JtRGF0YSgpLmZvbnRPcmllbnRh
dGlvbigpID09IEhvcml6b250YWwpIHsKKyAgICAgICAgVmVjdG9yPENHR2x5cGgsIDUxMj4gZ2x5
cGhzKGJ1ZmZlckxlbmd0aCk7CisgICAgICAgIHdrR2V0R2x5cGhzRm9yQ2hhcmFjdGVycyhmb250
RGF0YS0+cGxhdGZvcm1EYXRhKCkuY2dGb250KCksIGJ1ZmZlciwgZ2x5cGhzLmRhdGEoKSwgYnVm
ZmVyTGVuZ3RoKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytp
KSB7CisgICAgICAgICAgICBpZiAoIWdseXBoc1tpXSkKKyAgICAgICAgICAgICAgICBzZXRHbHlw
aERhdGFGb3JJbmRleChvZmZzZXQgKyBpLCAwLCAwKTsKKyAgICAgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgICAgIHNldEdseXBoRGF0YUZvckluZGV4KG9mZnNldCArIGksIGdseXBoc1tpXSwg
Zm9udERhdGEpOworICAgICAgICAgICAgICAgIGhhdmVHbHlwaHMgPSB0cnVlOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gV2UgYXNrIENvcmVUZXh0
IGZvciBwb3NzaWJsZSB2ZXJ0aWNhbCB2YXJpYW50IGdseXBocworICAgICAgICBSZXRhaW5QdHI8
Q0ZTdHJpbmdSZWY+IHN0cmluZyhBZG9wdENGLCBDRlN0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJz
Tm9Db3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlciwgYnVmZmVyTGVuZ3RoLCBrQ0ZBbGxv
Y2F0b3JOdWxsKSk7CisgICAgICAgIFJldGFpblB0cjxDRkF0dHJpYnV0ZWRTdHJpbmdSZWY+IGF0
dHJpYnV0ZWRTdHJpbmcoQWRvcHRDRiwgQ0ZBdHRyaWJ1dGVkU3RyaW5nQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIHN0cmluZy5nZXQoKSwgZm9udERhdGEtPmdldENGU3RyaW5nQXR0cmlidXRl
cygwLCB0cnVlKSkpOworICAgICAgICBSZXRhaW5QdHI8Q1RMaW5lUmVmPiBsaW5lKEFkb3B0Q0Ys
IENUTGluZUNyZWF0ZVdpdGhBdHRyaWJ1dGVkU3RyaW5nKGF0dHJpYnV0ZWRTdHJpbmcuZ2V0KCkp
KTsKKworICAgICAgICBDRkFycmF5UmVmIHJ1bkFycmF5ID0gQ1RMaW5lR2V0R2x5cGhSdW5zKGxp
bmUuZ2V0KCkpOworICAgICAgICBDRkluZGV4IHJ1bkNvdW50ID0gQ0ZBcnJheUdldENvdW50KHJ1
bkFycmF5KTsKKworICAgICAgICAvLyBJbml0aWFsaXplIGdseXBoIGVudHJpZXMKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyArK2luZGV4KQorICAgICAg
ICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaW5kZXgsIDAsIDApOworCisgICAg
ICAgIGJvb2wgZG9uZSA9IGZhbHNlOworICAgICAgICBmb3IgKENGSW5kZXggciA9IDA7IHIgPCBy
dW5Db3VudCAmJiAhZG9uZSA7IHIrKykgeworICAgICAgICAgICAgLy8gQ1RMaW5lIGNvdWxkIG1h
cCBjaGFyYWN0ZXJzIG92ZXIgbXVsdGlwbGUgZm9udHMgdXNpbmcgaXRzIG93biBmb250IGZhbGxi
YWNrIGxpc3QuCisgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHBpY2sgcnVucyB0aGF0IHVzZSB0
aGUgZXhhY3QgZm9udCB3ZSBuZWVkLCBpLmUuLCBmb250RGF0YS0+cGxhdGZvcm1EYXRhKCkuY3RG
b250KCkuCisgICAgICAgICAgICBDVFJ1blJlZiBjdFJ1biA9IHN0YXRpY19jYXN0PENUUnVuUmVm
PihDRkFycmF5R2V0VmFsdWVBdEluZGV4KHJ1bkFycmF5LCByKSk7CisgICAgICAgICAgICBBU1NF
UlQoQ0ZHZXRUeXBlSUQoY3RSdW4pID09IENUUnVuR2V0VHlwZUlEKCkpOworCisgICAgICAgICAg
ICBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcyA9IENUUnVuR2V0QXR0cmlidXRlcyhjdFJ1bik7
CisgICAgICAgICAgICBDVEZvbnRSZWYgcnVuRm9udCA9IHN0YXRpY19jYXN0PENURm9udFJlZj4o
Q0ZEaWN0aW9uYXJ5R2V0VmFsdWUoYXR0cmlidXRlcywga0NURm9udEF0dHJpYnV0ZU5hbWUpKTsK
KyAgICAgICAgICAgIFJldGFpblB0cjxDR0ZvbnRSZWY+IHJ1bkNHRm9udChBZG9wdENGLCBDVEZv
bnRDb3B5R3JhcGhpY3NGb250KHJ1bkZvbnQsIDApKTsKKyAgICAgICAgICAgIGlmIChDRkVxdWFs
KGZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgcnVuQ0dGb250LmdldCgpKSkgewor
ICAgICAgICAgICAgICAgIC8vIFRoaXMgcnVuIHVzZXMgdGhlIGZvbnQgd2Ugd2FudC4gRXh0cmFj
dCBnbHlwaHMuCisgICAgICAgICAgICAgICAgQ0ZJbmRleCBnbHlwaENvdW50ID0gQ1RSdW5HZXRH
bHlwaENvdW50KGN0UnVuKTsKKyAgICAgICAgICAgICAgICBWZWN0b3I8Q0dHbHlwaCwgNTEyPiBn
bHlwaHMoc3RhdGljX2Nhc3Q8c2l6ZV90PihnbHlwaENvdW50KSk7CisgICAgICAgICAgICAgICAg
Q1RSdW5HZXRHbHlwaHMoY3RSdW4sIENGUmFuZ2VNYWtlKDAsIDApLCBnbHlwaHMuZGF0YSgpKTsK
KyAgICAgICAgICAgICAgICBWZWN0b3I8Q0ZJbmRleCwgNTEyPiBzdHJpbmdJbmRpY2VzKHN0YXRp
Y19jYXN0PHNpemVfdD4oZ2x5cGhDb3VudCkpOworICAgICAgICAgICAgICAgIENUUnVuR2V0U3Ry
aW5nSW5kaWNlcyhjdFJ1biwgQ0ZSYW5nZU1ha2UoMCwgMCksIHN0cmluZ0luZGljZXMuZGF0YSgp
KTsKKworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBnbHlwaENvdW50
OyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZ0luZGljZXNbaV0gPj0gbGVu
Z3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIGlmIChnbHlwaHNbaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEdseXBo
RGF0YUZvckluZGV4KG9mZnNldCArIHN0cmluZ0luZGljZXNbaV0sIGdseXBoc1tpXSwgZm9udERh
dGEpOworICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZUdseXBocyA9IHRydWU7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9CiAjZWxzZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2lt
cGxlRm9udERhdGFDb3JlVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHAJKHJldmlzaW9uIDY5ODMyKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDE1ICs0MSwxNSBAQCB1c2luZyBuYW1lc3BhY2Ugc3Rk
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNGRGljdGlvbmFyeVJlZiBTaW1wbGVGb250RGF0
YTo6Z2V0Q0ZTdHJpbmdBdHRyaWJ1dGVzKFR5cGVzZXR0aW5nRmVhdHVyZXMgdHlwZXNldHRpbmdG
ZWF0dXJlcykgY29uc3QKK0NGRGljdGlvbmFyeVJlZiBTaW1wbGVGb250RGF0YTo6Z2V0Q0ZTdHJp
bmdBdHRyaWJ1dGVzKFR5cGVzZXR0aW5nRmVhdHVyZXMgdHlwZXNldHRpbmdGZWF0dXJlcywgYm9v
bCBpZ25vcmVEZWZhdWx0RmVhdHVyZXMpIGNvbnN0CiB7Ci0gICAgdW5zaWduZWQga2V5ID0gdHlw
ZXNldHRpbmdGZWF0dXJlcyArIDE7CisgICAgdW5zaWduZWQga2V5ID0gKHR5cGVzZXR0aW5nRmVh
dHVyZXMgKyAxKSB8IChwbGF0Zm9ybURhdGEoKS5mb250T3JpZW50YXRpb24oKSA8PCA4KTsKICAg
ICBwYWlyPEhhc2hNYXA8dW5zaWduZWQsIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+ID46Oml0
ZXJhdG9yLCBib29sPiBhZGRSZXN1bHQgPSBtX0NGU3RyaW5nQXR0cmlidXRlcy5hZGQoa2V5LCBS
ZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPigpKTsKICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5
UmVmPiYgYXR0cmlidXRlc0RpY3Rpb25hcnkgPSBhZGRSZXN1bHQuZmlyc3QtPnNlY29uZDsKICAg
ICBpZiAoIWFkZFJlc3VsdC5zZWNvbmQpCiAgICAgICAgIHJldHVybiBhdHRyaWJ1dGVzRGljdGlv
bmFyeS5nZXQoKTsKIAotICAgIGJvb2wgYWxsb3dMaWdhdHVyZXMgPSBwbGF0Zm9ybURhdGEoKS5h
bGxvd3NMaWdhdHVyZXMoKSB8fCAodHlwZXNldHRpbmdGZWF0dXJlcyAmIExpZ2F0dXJlcyk7Cisg
ICAgYm9vbCBhbGxvd0xpZ2F0dXJlcyA9ICghaWdub3JlRGVmYXVsdEZlYXR1cmVzICYmIHBsYXRm
b3JtRGF0YSgpLmFsbG93c0xpZ2F0dXJlcygpKSB8fCAodHlwZXNldHRpbmdGZWF0dXJlcyAmIExp
Z2F0dXJlcyk7CiAKICAgICBzdGF0aWMgY29uc3QgaW50IGxpZ2F0dXJlc05vdEFsbG93ZWRWYWx1
ZSA9IDA7CiAgICAgc3RhdGljIENGTnVtYmVyUmVmIGxpZ2F0dXJlc05vdEFsbG93ZWQgPSBDRk51
bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJJbnRUeXBlLCAmbGlnYXR1
cmVzTm90QWxsb3dlZFZhbHVlKTsKQEAgLTYwLDE2ICs2MCwyNSBAQCBDRkRpY3Rpb25hcnlSZWYg
U2ltcGxlRm9udERhdGE6OmdldENGU3RyCiAgICAgaWYgKCEodHlwZXNldHRpbmdGZWF0dXJlcyAm
IEtlcm5pbmcpKSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBmbG9hdCBrZXJuaW5nQWRqdXN0bWVu
dFZhbHVlID0gMDsKICAgICAgICAgc3RhdGljIENGTnVtYmVyUmVmIGtlcm5pbmdBZGp1c3RtZW50
ID0gQ0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGTnVtYmVyRmxvYXRUeXBl
LCAma2VybmluZ0FkanVzdG1lbnRWYWx1ZSk7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB2b2lkKiBr
ZXlzV2l0aEtlcm5pbmdEaXNhYmxlZFtdID0geyBrQ1RGb250QXR0cmlidXRlTmFtZSwga0NUS2Vy
bkF0dHJpYnV0ZU5hbWUsIGtDVExpZ2F0dXJlQXR0cmlidXRlTmFtZSB9OwotICAgICAgICBjb25z
dCB2b2lkKiB2YWx1ZXNXaXRoS2VybmluZ0Rpc2FibGVkW10gPSB7IHBsYXRmb3JtRGF0YSgpLmN0
Rm9udCgpLCBrZXJuaW5nQWRqdXN0bWVudCwgYWxsb3dMaWdhdHVyZXMKLSAgICAgICAgICAgID8g
bGlnYXR1cmVzQWxsb3dlZCA6IGxpZ2F0dXJlc05vdEFsbG93ZWQgfTsKKyAgICAgICAgc3RhdGlj
IGNvbnN0IHZvaWQqIGtleXNXaXRoS2VybmluZ0Rpc2FibGVkW10gPSB7ICAgIGtDVEZvbnRBdHRy
aWJ1dGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAga0NUS2VybkF0dHJpYnV0ZU5hbWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQ1RMaWdhdHVyZUF0dHJp
YnV0ZU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBrQ1RWZXJ0aWNhbEZvcm1zQXR0cmlidXRlTmFtZSB9OworICAgICAgICBj
b25zdCB2b2lkKiB2YWx1ZXNXaXRoS2VybmluZ0Rpc2FibGVkW10gPSB7ICAgICAgICAgcGxhdGZv
cm1EYXRhKCkuY3RGb250KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBrZXJuaW5nQWRqdXN0bWVudCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93TGlnYXR1
cmVzID8gbGlnYXR1cmVzQWxsb3dlZCA6IGxpZ2F0dXJlc05vdEFsbG93ZWQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGxhdGZv
cm1EYXRhKCkuZm9udE9yaWVudGF0aW9uKCkgPT0gVmVydGljYWwpID8ga0NGQm9vbGVhblRydWUg
OiBrQ0ZCb29sZWFuRmFsc2UgfTsKICAgICAgICAgYXR0cmlidXRlc0RpY3Rpb25hcnkuYWRvcHRD
RihDRkRpY3Rpb25hcnlDcmVhdGUoMCwga2V5c1dpdGhLZXJuaW5nRGlzYWJsZWQsIHZhbHVlc1dp
dGhLZXJuaW5nRGlzYWJsZWQsCiAgICAgICAgICAgICBzaXplb2Yoa2V5c1dpdGhLZXJuaW5nRGlz
YWJsZWQpIC8gc2l6ZW9mKCprZXlzV2l0aEtlcm5pbmdEaXNhYmxlZCksCiAgICAgICAgICAgICAm
a0NGQ29weVN0cmluZ0RpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZh
bHVlQ2FsbEJhY2tzKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQnkgb21pdHRpbmcgdGhl
IGtDVEtlcm5BdHRyaWJ1dGVOYW1lIGF0dHJpYnV0ZSwgd2UgZ2V0IENvcmUgVGV4dCdzIHN0YW5k
YXJkIGtlcm5pbmcuCi0gICAgICAgIHN0YXRpYyBjb25zdCB2b2lkKiBrZXlzV2l0aEtlcm5pbmdF
bmFibGVkW10gPSB7IGtDVEZvbnRBdHRyaWJ1dGVOYW1lLCBrQ1RMaWdhdHVyZUF0dHJpYnV0ZU5h
bWUgfTsKLSAgICAgICAgY29uc3Qgdm9pZCogdmFsdWVzV2l0aEtlcm5pbmdFbmFibGVkW10gPSB7
IHBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLCBhbGxvd0xpZ2F0dXJlcyA/IGxpZ2F0dXJlc0FsbG93
ZWQgOiBsaWdhdHVyZXNOb3RBbGxvd2VkIH07CisgICAgICAgIHN0YXRpYyBjb25zdCB2b2lkKiBr
ZXlzV2l0aEtlcm5pbmdFbmFibGVkW10gPSB7ICAgICBrQ1RGb250QXR0cmlidXRlTmFtZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGtDVExpZ2F0dXJlQXR0cmlidXRlTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtDVFZlcnRpY2FsRm9ybXNBdHRyaWJ1dGVO
YW1lIH07CisgICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlc1dpdGhLZXJuaW5nRW5hYmxlZFtdID0g
eyAgICAgICAgICBwbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93TGlnYXR1cmVzID8g
bGlnYXR1cmVzQWxsb3dlZCA6IGxpZ2F0dXJlc05vdEFsbG93ZWQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGxhdGZvcm1EYXRh
KCkuZm9udE9yaWVudGF0aW9uKCkgPT0gVmVydGljYWwpID8ga0NGQm9vbGVhblRydWUgOiBrQ0ZC
b29sZWFuRmFsc2UgfTsKICAgICAgICAgYXR0cmlidXRlc0RpY3Rpb25hcnkuYWRvcHRDRihDRkRp
Y3Rpb25hcnlDcmVhdGUoMCwga2V5c1dpdGhLZXJuaW5nRW5hYmxlZCwgdmFsdWVzV2l0aEtlcm5p
bmdFbmFibGVkLAogICAgICAgICAgICAgc2l6ZW9mKGtleXNXaXRoS2VybmluZ0VuYWJsZWQpIC8g
c2l6ZW9mKCprZXlzV2l0aEtlcm5pbmdFbmFibGVkKSwKICAgICAgICAgICAgICZrQ0ZDb3B5U3Ry
aW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFj
a3MpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRh
TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBs
ZUZvbnREYXRhTWFjLm1tCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MTcsMTEg
KzQxNyw5IEBAIEZsb2F0UmVjdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Cb3VuZHMKIHsKICAg
ICBGbG9hdFJlY3QgYm91bmRpbmdCb3g7CiAjaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCi0gICAg
Q0dSZWN0IGJveDsKLSAgICBDR0ZvbnRHZXRHbHlwaEJCb3hlcyhwbGF0Zm9ybURhdGEoKS5jZ0Zv
bnQoKSwgJmdseXBoLCAxLCAmYm94KTsKLSAgICBmbG9hdCBwb2ludFNpemUgPSBwbGF0Zm9ybURh
dGEoKS5tX3NpemU7Ci0gICAgQ0dGbG9hdCBzY2FsZSA9IHBvaW50U2l6ZSAvIHVuaXRzUGVyRW0o
KTsKLSAgICBib3VuZGluZ0JveCA9IENHUmVjdEFwcGx5QWZmaW5lVHJhbnNmb3JtKGJveCwgQ0dB
ZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUoc2NhbGUsIC1zY2FsZSkpOworICAgIGJvdW5kaW5nQm94
ID0gQ1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocyhtX3BsYXRmb3JtRGF0YS5jdEZvbnQo
KSwKKyAgICAgICAgICAgICAgICAgICAgbV9wbGF0Zm9ybURhdGEuZm9udE9yaWVudGF0aW9uKCkg
PT0gVmVydGljYWwgPyBrQ1RGb250VmVydGljYWxPcmllbnRhdGlvbiA6IGtDVEZvbnRIb3Jpem9u
dGFsT3JpZW50YXRpb24sICZnbHlwaCwgTlVMTCwgMSk7CisgICAgYm91bmRpbmdCb3guc2V0WSgt
Ym91bmRpbmdCb3guYm90dG9tKCkpOwogI2Vsc2UKICAgICAvLyBGSVhNRTogQ3VzdG9tIGZvbnRz
IGRvbid0IGhhdmUgTlNGb250cywgc28gdGhpcyBmdW5jdGlvbiBkb2Vzbid0IGNvbXB1dGUgY29y
cmVjdCBib3VuZHMgZm9yIHRoZXNlIG9uIFRpZ2VyLgogICAgIGlmICghbV9wbGF0Zm9ybURhdGEu
Zm9udCgpKQpAQCAtNDM3LDE0ICs0MzUsMTggQEAgRmxvYXRSZWN0IFNpbXBsZUZvbnREYXRhOjpw
bGF0Zm9ybUJvdW5kcwogCiBmbG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckds
eXBoKEdseXBoIGdseXBoKSBjb25zdAogewotICAgIE5TRm9udCogZm9udCA9IHBsYXRmb3JtRGF0
YSgpLmZvbnQoKTsKLSAgICBmbG9hdCBwb2ludFNpemUgPSBwbGF0Zm9ybURhdGEoKS5tX3NpemU7
Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0gbSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVNjYWxlKHBv
aW50U2l6ZSwgcG9pbnRTaXplKTsKICAgICBDR1NpemUgYWR2YW5jZTsKLSAgICBpZiAoIXdrR2V0
R2x5cGhUcmFuc2Zvcm1lZEFkdmFuY2VzKHBsYXRmb3JtRGF0YSgpLmNnRm9udCgpLCBmb250LCAm
bSwgJmdseXBoLCAmYWR2YW5jZSkpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gY2Fj
aGUgZ2x5cGggd2lkdGhzIGZvciAlQCAlZiIsIFtmb250IGRpc3BsYXlOYW1lXSwgcG9pbnRTaXpl
KTsKLSAgICAgICAgYWR2YW5jZS53aWR0aCA9IDA7Ci0gICAgfQorICAgIGlmIChtX3BsYXRmb3Jt
RGF0YS5mb250T3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsKSB7CisgICAgICAgIE5TRm9udCog
Zm9udCA9IHBsYXRmb3JtRGF0YSgpLmZvbnQoKTsKKyAgICAgICAgZmxvYXQgcG9pbnRTaXplID0g
cGxhdGZvcm1EYXRhKCkubV9zaXplOworICAgICAgICBDR0FmZmluZVRyYW5zZm9ybSBtID0gQ0dB
ZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUocG9pbnRTaXplLCBwb2ludFNpemUpOworICAgICAgICBp
ZiAoIXdrR2V0R2x5cGhUcmFuc2Zvcm1lZEFkdmFuY2VzKHBsYXRmb3JtRGF0YSgpLmNnRm9udCgp
LCBmb250LCAmbSwgJmdseXBoLCAmYWR2YW5jZSkpIHsKKyAgICAgICAgICAgIExPR19FUlJPUigi
VW5hYmxlIHRvIGNhY2hlIGdseXBoIHdpZHRocyBmb3IgJUAgJWYiLCBbZm9udCBkaXNwbGF5TmFt
ZV0sIHBvaW50U2l6ZSk7CisgICAgICAgICAgICBhZHZhbmNlLndpZHRoID0gMDsKKyAgICAgICAg
fQorICAgIH0gZWxzZQorICAgICAgICBDVEZvbnRHZXRBZHZhbmNlc0ZvckdseXBocyhtX3BsYXRm
b3JtRGF0YS5jdEZvbnQoKSwga0NURm9udFZlcnRpY2FsT3JpZW50YXRpb24sICZnbHlwaCwgJmFk
dmFuY2UsIDEpOworCiAgICAgcmV0dXJuIGFkdmFuY2Uud2lkdGggKyBtX3N5bnRoZXRpY0JvbGRP
ZmZzZXQ7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAog
I2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnREZXNjcmlw
dGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTM3LDcgKzM4LDcgQEAg
c3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgOiBOb25jb3B5YQogICAgIC8vIGZvciB1c2Ug
d2l0aCBRRm9udERhdGFiYXNlOjphZGRBcHBsaWNhdGlvbkZvbnQvcmVtb3ZlQXBwbGljYXRpb25G
b250CiAgICAgaW50IG1faGFuZGxlOwogCi0gICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZv
cm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9k
ZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRm
b3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9u
IGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFs
UmVuZGVyaW5nTW9kZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBT
dHJpbmcmKTsKIH07CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGFRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUXQuY3BwCShyZXZpc2lvbiA2OTgzMikKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YVF0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojp+Rm9udEN1c3RvbVBsYXRmCiAgICAgUUZvbnREYXRhYmFzZTo6cmVtb3ZlQXBwbGljYXRpb25G
b250KG1faGFuZGxlKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBG
b250UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0
YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9u
dE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICBRRm9udCBmb250OwogICAg
IGZvbnQuc2V0RmFtaWx5KFFGb250RGF0YWJhc2U6OmFwcGxpY2F0aW9uRm9udEZhbWlsaWVzKG1f
aGFuZGxlKVswXSk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRQbGF0
Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0Zv
bnRQbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMs
NyBAQCBwdWJsaWM6CiAKIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgOiBwdWJsaWMgRmFzdEFsbG9j
QmFzZSB7CiBwdWJsaWM6Ci0gICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJv
bGQsIGJvb2wgb2JsaXF1ZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29s
IGJvbGQsIGJvb2wgb2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhv
cml6b250YWwpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSAm
KTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0
b21pY1N0cmluZyYgZmFtaWx5TmFtZSwgaW50IHdvcmRTcGFjaW5nID0gMCwgaW50IGxldHRlclNw
YWNpbmcgPSAwKTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IFFGb250JiBmb250KQpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UGxhdGZvcm1EYXRhUXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0
YVF0LmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L0ZvbnRQbGF0Zm9ybURhdGFRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAg
c3RhdGljIGlubGluZSBib29sIGlzRW10cHlWYWx1ZShjb25zdCBmbAogICAgIHJldHVybiAhYm9s
ZCAmJiAhb2JsaXF1ZSAmJiBzaXplID09IDAuZjsKIH0KIAotRm9udFBsYXRmb3JtRGF0YTo6Rm9u
dFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSkKK0ZvbnRQ
bGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29s
IG9ibGlxdWUsIEZvbnRPcmllbnRhdGlvbikKIHsKICAgICBpZiAoaXNFbXRweVZhbHVlKHNpemUs
IGJvbGQsIG9ibGlxdWUpKQogICAgICAgICBtX2RhdGEgPSAwOwpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcg
QEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogI2VuZGlmCiB9CiAK
LUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0
YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUgbW9k
ZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3Jt
RGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uLCBG
b250UmVuZGVyaW5nTW9kZSBtb2RlKQogewogI2lmIE9TKFdJTkRPV1MpCiAgICAgQVNTRVJUKG1f
Zm9udFJlZmVyZW5jZSk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5ODMyKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAko
d29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2lmbmRlZiBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhX2gKICNkZWZpbmUgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAKKyNpbmNsdWRlICJG
b250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC02Miw3
ICs2Myw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKIAogICAg
IH5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCk7CiAKLSAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQ
bGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsCisgICAgRm9udFBs
YXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9udFJlbmRlcmluZ01vZGUgPSBOb3Jt
YWxSZW5kZXJpbmdNb2RlKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0
IFN0cmluZyYpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZv
bnRDdXN0b21QbGF0ZgogICAgIH0KIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxh
dGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJv
bGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlIHJlbmRl
cmluZ01vZGUpCiB7CiAgICAgQVNTRVJUKG1fZm9udFJlZmVyZW5jZSk7CiAgICAgQVNTRVJUKFQy
ZW1iZWRMaWJyYXJ5KCkpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNjk4MzIpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdv
cmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpZm5kZWYgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogCisjaW5jbHVkZSAiRm9u
dERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC00Miw3ICs0
Myw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKIAogICAgIH5G
b250Q3VzdG9tUGxhdGZvcm1EYXRhKCk7CiAKLSAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0
Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdN
b2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxh
dGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRp
b24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3Jt
YWxSZW5kZXJpbmdNb2RlKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0
IFN0cmluZyYpOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5jcHAJKHJldmlzaW9uIDY5
ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YUNhaXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiAgICBjYWlyb19mb250X2ZhY2VfZGVzdHJv
eShtX2ZvbnRGYWNlKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKQor
Rm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRh
KGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24pCiB7CiAg
ICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9mb250RmFjZSwgc2l6ZSwgYm9sZCwgaXRhbGlj
KTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGFDYWlyby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0
Zm9ybURhdGFDYWlyb19oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyb19oCiAK
KyNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCkBAIC0zOSw3ICs0MCw3IEBAIHN0cnVjdCBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKICAgICB9CiAgICAgfkZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEoKTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShp
bnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYyk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBm
b250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3Jp
ZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCk7CiAKICAgICBzdGF0aWMgYm9v
bCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmgJ
KHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBs
YXRmb3JtRGF0YUNhaXJvV2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgcHVi
bGljOgogCiAgICAgRm9udFBsYXRmb3JtRGF0YShIRk9OVCwgZmxvYXQgc2l6ZSwgYm9vbCBib2xk
LCBib29sIG9ibGlxdWUsIGJvb2wgdXNlR0RJKTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNhaXJv
X2ZvbnRfZmFjZV90KiBmb250RmFjZSwgZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxp
Yyk7Ci0gICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljKTsKKyAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBp
dGFsaWMsIEZvbnRPcmllbnRhdGlvbiBmb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsKTsKICAg
ICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmKTsKICAgICB+Rm9udFBs
YXRmb3JtRGF0YSgpOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250
UGxhdGZvcm1EYXRhV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhV2luLmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhV2luLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzEsNyArNzEsNyBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1E
YXRhKEhGT05UCiAgICAgUmVsZWFzZURDKDAsIGhkYyk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGE6
OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUpCitG
b250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBvYmxpcXVlLCBGb250T3JpZW50YXRpb24pCiAgICAgOiBtX3NpemUoc2l6ZSkKICNpZiBQ
TEFURk9STShDRykKICAgICAsIG1fY2dGb250KDApCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbmNlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJ
KHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiAgICAgICAgIGdfY3VzdG9t
Rm9udENhY2hlLT51bnJlZ2lzdGVyRm9udChtX25hbWUpOwogfQogCi1Gb250UGxhdGZvcm1EYXRh
IEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wg
Ym9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUpCitGb250
UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50
IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiwgRm9udFJlbmRl
cmluZ01vZGUgcmVuZGVyaW5nTW9kZSkKIHsKICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2M7
CiAgICAgZm9udERlc2Muc2V0Q29tcHV0ZWRTaXplKHNpemUpOwpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmgJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAK
ICNpZm5kZWYgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0
Zm9ybURhdGFfaAogCisjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9u
dFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDQsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKIAotICAgICAgICBGb250UGxh
dGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFs
aWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgICAgIEZv
bnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29s
IGl0YWxpYywgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZv
bnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAKICAgICAgICAgc3RhdGlj
IGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250UGxhdGZvcm1EYXRhLmNwcAkocmV2
aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRQbGF0
Zm9ybURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTUsNyArMzU1LDcgQEAgRm9udFBsYXRm
b3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShjb25zdAogICAgIG1fcHJpdmF0ZSA9IG5ldyBGb250
UGxhdGZvcm1Qcml2YXRlRGF0YShmb250RGVzY3JpcHRpb24sIGZhbWlseSk7CiB9CiAKLUZvbnRQ
bGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29s
IG9ibGlxdWUpCitGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUs
IGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlLCBGb250T3JpZW50YXRpb24pCiB7CiAgICAgaWYgKCFz
aXplKQogICAgICAgICBtX3ByaXZhdGUgPSAwOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW5jZS9Gb250UGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250UGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5ODMyKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250UGxhdGZvcm1EYXRhLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHB1
YmxpYzoKIAogICAgICAgICBGb250UGxhdGZvcm1EYXRhKCk6IG1fcHJpdmF0ZSgwKSB7fQotICAg
ICAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVl
KTsKKyAgICAgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wg
b2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwpOwog
CiAgICAgICAgIC8vIFVzZWQgZm9yIGRlbGV0ZWQgdmFsdWVzIGluIHRoZSBmb250IGNhY2hlJ3Mg
aGFzaCB0YWJsZXMuCiAgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEoV1RGOjpIYXNoVGFibGVEZWxl
dGVkVmFsdWVUeXBlKSA6IG1fcHJpdmF0ZSgoRm9udFBsYXRmb3JtUHJpdmF0ZURhdGEqKTEpIHt9
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzEsNyArMzEsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRm
CiB7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBs
YXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmlu
Z01vZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0
Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlv
biwgRm9udFJlbmRlcmluZ01vZGUpCiB7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoc2l6
ZSwgYm9sZCwgaXRhbGljKTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd3gvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTgzMikKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZv
bnREZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTM3LDcg
KzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwogCi0gICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9u
dFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRl
cmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKKyAgICAgICAgRm9udFBsYXRmb3JtRGF0
YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250
T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01v
ZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKICAgICB9OwogCiAgICAgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YSogY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXIqKTsKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udFBsYXRmb3JtRGF0YS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udFBsYXRmb3JtRGF0YS5o
CShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udFBs
YXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKIAog
ICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbWlj
U3RyaW5nJik7CiAgICAgCi0gICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJv
bGQsIGJvb2wgaXRhbGljKQorICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBi
b2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhvcml6
b250YWwpCiAgICAgOiBtX2ZvbnRTdGF0ZShVTklOSVRJQUxJWkVEKQogICAgICwgbV9mb250KDAp
CiAgICAgLCBtX3NpemUoc2l6ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70837</attachid>
            <date>2010-10-15 00:59:29 -0700</date>
            <delta_ts>2010-10-18 05:02:16 -0700</delta_ts>
            <desc>[another build test] Fixed another build error on non-Mac platforms...</desc>
            <filename>WK46973Patch_101015-3.txt</filename>
            <type>text/plain</type>
            <size>59850</size>
            <attacher name="Takumi Takano">takano</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTg0MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTA3IEBACisyMDEwLTEwLTE1ICB0YWthbm8gdGFrdW1pICA8dGFrYW5vMUBhc2lh
LmFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOZWVkIHRvIHN3YXAgZ2x5cGhzIGZvciB2ZXJ0aWNhbCB3cml0aW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk3MworCisgICAgICAgIE1h
ZGUgY2hhbmdlcyB0byBwYXNzIHRoZSB3cml0aW5nLW1vZGUgb3JpZW50YXRpb24gZmxhZyBpbiBS
ZW5kZXJTdHlsZSBkb3duIHRvIEZvbnRQbGF0Zm9ybURhdGEsCisgICAgICAgIGFuZCB1bHRpbWF0
ZWx5IHRvIENvcmVUZXh0IEFQSXMgaW4gYm90aCBmb250IGNvbXBsZXggcGF0aCBhbmQgZmFzdCBw
YXRoLgorCisgICAgICAgIERvZXNuJ3QgYWZmZWN0IGFueSB0ZXN0cyB5ZXQuCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTb3VyY2U6OmdldEZvbnREYXRhKToKKyAgICAg
ICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHls
ZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkRm9udC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9t
RGF0YSk6CisgICAgICAgICogbG9hZGVyL0NhY2hlZEZvbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3Jt
RGF0YUNhY2hlS2V5OjpGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbXB1dGVIYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0Q2FjaGVk
Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2Ny
aXB0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OkZvbnREZXNjcmlw
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OmZvbnRPcmllbnRhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnNldEZvbnRPcmllbnRhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246Om9wZXJhdG9yPT0pOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9y
bURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURh
dGFGcmVlVHlwZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ZvbnRQbGF0Zm9y
bURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZv
cm1EYXRhQ2hyb21pdW1XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRm9udFBsYXRmb3JtRGF0YUNocm9taXVtV2luLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUxpbnV4Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpG
b250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRQbGF0Zm9ybURhdGE6OmZvbnRPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGb250
UGxhdGZvcm1EYXRhOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6
Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0
Zm9ybURhdGFDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZv
bnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6b3Bl
cmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OmRlc2NyaXB0aW9u
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEN1c3RvbVBsYXRmb3JtRGF0
YVBhbmdvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZv
bnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250UGxh
dGZvcm1EYXRhUGFuZ28uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6
Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRQ
bGF0Zm9ybURhdGFQYW5nby5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBs
YXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2hhaWt1L0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRm9udENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpn
ZXRGb250RGF0YUZvckNoYXJhY3RlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpj
cmVhdGVGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9HbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
bHlwaFBhZ2U6OmZpbGwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVG
b250RGF0YUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpn
ZXRDRlN0cmluZ0F0dHJpYnV0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9T
aW1wbGVGb250RGF0YU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpw
bGF0Zm9ybUJvdW5kc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRh
OjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9x
dC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGFRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxh
dGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0
Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhQ2Fpcm8uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBs
YXRmb3JtRGF0YUNhaXJvV2luLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Zv
bnRQbGF0Zm9ybURhdGFXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2Uv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b250UGxhdGZvcm1Qcml2YXRlRGF0YTo6Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0
YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRm
b3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRQbGF0Zm9ybURh
dGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURh
dGEpOgorCiAyMDEwLTEwLTE0ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFkZWxlIFBldGVyc29uLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiA2OTgzMikKKysr
IFdlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTM3Myw3ICszNzMsNyBA
QCBfX1pON1dlYkNvcmUxNkRldmljZU1vdGlvbkRhdGExMkFjY2VsZXJhCiBfX1pON1dlYkNvcmUx
NkRldmljZU1vdGlvbkRhdGExMlJvdGF0aW9uUmF0ZTZjcmVhdGVFYmRiZGJkCiBfX1pON1dlYkNv
cmUxNkRldmljZU1vdGlvbkRhdGE2Y3JlYXRlRU4zV1RGMTBQYXNzUmVmUHRySU5TMF8xMkFjY2Vs
ZXJhdGlvbkVFRVM0X05TMl9JTlMwXzEyUm90YXRpb25SYXRlRUVFYmQKIF9fWk43V2ViQ29yZTE2
Rm9udEZhbGxiYWNrTGlzdDE1cmVsZWFzZUZvbnREYXRhRXYKLV9fWk43V2ViQ29yZTE2Rm9udFBs
YXRmb3JtRGF0YUMxRVA2TlNGb250YmIKK19fWk43V2ViQ29yZTE2Rm9udFBsYXRmb3JtRGF0YUMx
RVA2TlNGb250YmJOU18xNUZvbnRPcmllbnRhdGlvbkUKIF9fWk43V2ViQ29yZTE2Rm9udFBsYXRm
b3JtRGF0YUQxRXYKIF9fWk43V2ViQ29yZTE2SFRNTElucHV0RWxlbWVudDEzc2V0QXV0b2ZpbGxl
ZEViCiBfX1pON1dlYkNvcmUxNkxlZ2FjeVdlYkFyY2hpdmUxOWNyZWF0ZUZyb21TZWxlY3Rpb25F
UE5TXzVGcmFtZUUKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAJKHJldmlzaW9uIDY5
ODMyKQorKysgV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNjIsNyArMTYyLDcgQEAgU2ltcGxlRm9udERhdGEqIENTU0ZvbnRGYWNlU291cmNlOjpn
ZXRGbwogICAgICAgICAgICAgICAgIGlmICghbV9mb250LT5lbnN1cmVDdXN0b21Gb250RGF0YSgp
KQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKIAotICAgICAgICAgICAgICAgIGZvbnRE
YXRhLnNldChuZXcgU2ltcGxlRm9udERhdGEobV9mb250LT5wbGF0Zm9ybURhdGFGcm9tQ3VzdG9t
RGF0YShmb250RGVzY3JpcHRpb24uY29tcHV0ZWRQaXhlbFNpemUoKSwgc3ludGhldGljQm9sZCwg
c3ludGhldGljSXRhbGljLCBmb250RGVzY3JpcHRpb24ucmVuZGVyaW5nTW9kZSgpKSwgdHJ1ZSwg
ZmFsc2UpKTsKKyAgICAgICAgICAgICAgICBmb250RGF0YS5zZXQobmV3IFNpbXBsZUZvbnREYXRh
KG1fZm9udC0+cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoZm9udERlc2NyaXB0aW9uLmNvbXB1
dGVkUGl4ZWxTaXplKCksIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udERlc2Ny
aXB0aW9uLmZvbnRPcmllbnRhdGlvbigpLCBmb250RGVzY3JpcHRpb24ucmVuZGVyaW5nTW9kZSgp
KSwgdHJ1ZSwgZmFsc2UpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICNpZiBF
TkFCTEUoU1ZHX0ZPTlRTKQpJbmRleDogV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9u
IDY5ODMyKQorKysgV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTU1NzEsMTAgKzU1NzEsMTQgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVBy
b3BlcnR5KGludAogI2VuZGlmIAogCiAgICAgLy8gQ1NTIFRleHQgTGF5b3V0IE1vZHVsZSBMZXZl
bCAzOiBWZXJ0aWNhbCB3cml0aW5nIHN1cHBvcnQKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
V3JpdGluZ01vZGU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyaXRpbmdNb2RlOiB7CiAg
ICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMX0FORF9QUklNSVRJVkUod3JpdGluZ01v
ZGUsIFdyaXRpbmdNb2RlKQorICAgICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9u
ID0gbV9zdHlsZS0+Zm9udERlc2NyaXB0aW9uKCk7CisgICAgICAgIGZvbnREZXNjcmlwdGlvbi5z
ZXRGb250T3JpZW50YXRpb24obV9zdHlsZS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhv
cml6b250YWwgOiBWZXJ0aWNhbCk7CisgICAgICAgIGlmIChtX3N0eWxlLT5zZXRGb250RGVzY3Jp
cHRpb24oZm9udERlc2NyaXB0aW9uKSkKKyAgICAgICAgICAgIG1fZm9udERpcnR5ID0gdHJ1ZTsK
ICAgICAgICAgcmV0dXJuOwotCisgICAgfQogI2lmIEVOQUJMRShTVkcpCiAgICAgZGVmYXVsdDoK
ICAgICAgICAgLy8gVHJ5IHRoZSBTVkcgcHJvcGVydGllcwpJbmRleDogV2ViQ29yZS9sb2FkZXIv
Q2FjaGVkRm9udC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvQ2FjaGVkRm9udC5j
cHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9sb2FkZXIvQ2FjaGVkRm9udC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTExNyw3ICsxMTcsNyBAQCBib29sIENhY2hlZEZvbnQ6OmVuc3VyZUN1
c3RvbUZvbnREYXRhKCkKICAgICByZXR1cm4gbV9mb250RGF0YTsKIH0KIAotRm9udFBsYXRmb3Jt
RGF0YSBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmbG9hdCBzaXplLCBi
b29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKQor
Rm9udFBsYXRmb3JtRGF0YSBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShm
bG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gZm9udE9y
aWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKQogewogI2lmIEVOQUJM
RShTVkdfRk9OVFMpCiAgICAgaWYgKG1fZXh0ZXJuYWxTVkdEb2N1bWVudCkKQEAgLTEyNSw3ICsx
MjUsNyBAQCBGb250UGxhdGZvcm1EYXRhIENhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0CiAjZW5kaWYK
ICNpZmRlZiBTVE9SRV9GT05UX0NVU1RPTV9QTEFURk9STV9EQVRBCiAgICAgQVNTRVJUKG1fZm9u
dERhdGEpOwotICAgIHJldHVybiBtX2ZvbnREYXRhLT5mb250UGxhdGZvcm1EYXRhKHN0YXRpY19j
YXN0PGludD4oc2l6ZSksIGJvbGQsIGl0YWxpYywgcmVuZGVyaW5nTW9kZSk7CisgICAgcmV0dXJu
IG1fZm9udERhdGEtPmZvbnRQbGF0Zm9ybURhdGEoc3RhdGljX2Nhc3Q8aW50PihzaXplKSwgYm9s
ZCwgaXRhbGljLCBmb250T3JpZW50YXRpb24sIHJlbmRlcmluZ01vZGUpOwogI2Vsc2UKICAgICBy
ZXR1cm4gRm9udFBsYXRmb3JtRGF0YSgpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL2xvYWRlci9D
YWNoZWRGb250LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvQ2FjaGVkRm9udC5oCShy
ZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvbG9hZGVyL0NhY2hlZEZvbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBDYWNoZWRGb250X2gKIAogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlLmgiCisjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVk
ZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTYy
LDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZvaWQgYmVnaW5Mb2FkSWZOZWVkZWQoQ2FjaGVkUmVz
b3VyY2VMb2FkZXIqIGRsKTsKIAogICAgIGJvb2wgZW5zdXJlQ3VzdG9tRm9udERhdGEoKTsKLSAg
ICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGZsb2F0IHNpemUs
IGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVy
aW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0
YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gZm9u
dE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5k
ZXJpbmdNb2RlKTsKIAogI2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgYm9vbCBpc1NWR0ZvbnQo
KSBjb25zdCB7IHJldHVybiBtX2lzU1ZHRm9udDsgfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udENhY2hlLmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDEzICs1NSwxNCBA
QCBGb250Q2FjaGU6OkZvbnRDYWNoZSgpCiAKIHN0cnVjdCBGb250UGxhdGZvcm1EYXRhQ2FjaGVL
ZXkgOiBGYXN0QWxsb2NCYXNlIHsKICAgICBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkoY29uc3Qg
QXRvbWljU3RyaW5nJiBmYW1pbHkgPSBBdG9taWNTdHJpbmcoKSwgdW5zaWduZWQgc2l6ZSA9IDAs
IHVuc2lnbmVkIHdlaWdodCA9IDAsIGJvb2wgaXRhbGljID0gZmFsc2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJvb2wgaXNQcmludGVyRm9udCA9IGZhbHNlLCBGb250UmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBpc1ByaW50ZXJGb250ID0gZmFsc2UsIEZvbnRSZW5kZXJpbmdN
b2RlIHJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlLCBGb250T3JpZW50YXRpb24g
Zm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCkKICAgICAgICAgOiBtX3NpemUoc2l6ZSkKICAg
ICAgICAgLCBtX3dlaWdodCh3ZWlnaHQpCiAgICAgICAgICwgbV9mYW1pbHkoZmFtaWx5KQogICAg
ICAgICAsIG1faXRhbGljKGl0YWxpYykKICAgICAgICAgLCBtX3ByaW50ZXJGb250KGlzUHJpbnRl
ckZvbnQpCiAgICAgICAgICwgbV9yZW5kZXJpbmdNb2RlKHJlbmRlcmluZ01vZGUpCisgICAgICAg
ICwgbV9mb250T3JpZW50YXRpb24oZm9udE9yaWVudGF0aW9uKQogICAgIHsKICAgICB9CiAKQEAg
LTcyLDcgKzczLDcgQEAgc3RydWN0IEZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleSA6IEZhc3RBbAog
ICAgIHsKICAgICAgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdDYXNlKG1fZmFtaWx5LCBvdGhlci5t
X2ZhbWlseSkgJiYgbV9zaXplID09IG90aGVyLm1fc2l6ZSAmJiAKICAgICAgICAgICAgICAgIG1f
d2VpZ2h0ID09IG90aGVyLm1fd2VpZ2h0ICYmIG1faXRhbGljID09IG90aGVyLm1faXRhbGljICYm
IG1fcHJpbnRlckZvbnQgPT0gb3RoZXIubV9wcmludGVyRm9udCAmJgotICAgICAgICAgICAgICAg
bV9yZW5kZXJpbmdNb2RlID09IG90aGVyLm1fcmVuZGVyaW5nTW9kZTsKKyAgICAgICAgICAgICAg
IG1fcmVuZGVyaW5nTW9kZSA9PSBvdGhlci5tX3JlbmRlcmluZ01vZGUgJiYgbV9mb250T3JpZW50
YXRpb24gPT0gb3RoZXIubV9mb250T3JpZW50YXRpb247CiAgICAgfQogCiAgICAgdW5zaWduZWQg
bV9zaXplOwpAQCAtODEsNiArODIsNyBAQCBzdHJ1Y3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5
IDogRmFzdEFsCiAgICAgYm9vbCBtX2l0YWxpYzsKICAgICBib29sIG1fcHJpbnRlckZvbnQ7CiAg
ICAgRm9udFJlbmRlcmluZ01vZGUgbV9yZW5kZXJpbmdNb2RlOworICAgIEZvbnRPcmllbnRhdGlv
biBtX2ZvbnRPcmllbnRhdGlvbjsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgdW5zaWduZWQgaGFz
aFRhYmxlRGVsZXRlZFNpemUoKSB7IHJldHVybiAweEZGRkZGRkZGVTsgfQpAQCAtOTIsNyArOTQs
NyBAQCBpbmxpbmUgdW5zaWduZWQgY29tcHV0ZUhhc2goY29uc3QgRm9udFBsCiAgICAgICAgIENh
c2VGb2xkaW5nSGFzaDo6aGFzaChmb250S2V5Lm1fZmFtaWx5KSwKICAgICAgICAgZm9udEtleS5t
X3NpemUsCiAgICAgICAgIGZvbnRLZXkubV93ZWlnaHQsCi0gICAgICAgIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihmb250S2V5Lm1faXRhbGljKSA8PCAyIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZv
bnRLZXkubV9wcmludGVyRm9udCkgPDwgMSB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5
Lm1fcmVuZGVyaW5nTW9kZSkKKyAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXku
bV9mb250T3JpZW50YXRpb24pIDw8IDMgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5t
X2l0YWxpYykgPDwgMiB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5Lm1fcHJpbnRlckZv
bnQpIDw8IDEgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5tX3JlbmRlcmluZ01vZGUp
CiAgICAgfTsKICAgICByZXR1cm4gU3RyaW5nSW1wbDo6Y29tcHV0ZUhhc2gocmVpbnRlcnByZXRf
Y2FzdDxVQ2hhcio+KGhhc2hDb2RlcyksIHNpemVvZihoYXNoQ29kZXMpIC8gc2l6ZW9mKFVDaGFy
KSk7CiB9CkBAIC0xOTEsNyArMTkzLDcgQEAgRm9udFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpn
ZXRDYWNoZWRGbwogICAgIH0KIAogICAgIEZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleSBrZXkoZmFt
aWx5TmFtZSwgZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCksIGZvbnREZXNjcmlw
dGlvbi53ZWlnaHQoKSwgZm9udERlc2NyaXB0aW9uLml0YWxpYygpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnVzZVByaW50ZXJGb250KCksIGZvbnRE
ZXNjcmlwdGlvbi5yZW5kZXJpbmdNb2RlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZm9udERlc2NyaXB0aW9uLnVzZVByaW50ZXJGb250KCksIGZvbnREZXNjcmlwdGlvbi5y
ZW5kZXJpbmdNb2RlKCksIGZvbnREZXNjcmlwdGlvbi5mb250T3JpZW50YXRpb24oKSk7CiAgICAg
Rm9udFBsYXRmb3JtRGF0YSogcmVzdWx0ID0gMDsKICAgICBib29sIGZvdW5kUmVzdWx0OwogICAg
IEZvbnRQbGF0Zm9ybURhdGFDYWNoZTo6aXRlcmF0b3IgaXQgPSBnRm9udFBsYXRmb3JtRGF0YUNh
Y2hlLT5maW5kKGtleSk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNj
cmlwdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERl
c2NyaXB0aW9uLmgJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250RGVzY3JpcHRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsOCBAQCBlbnVt
IEZvbnRXZWlnaHQgewogICAgIEZvbnRXZWlnaHRCb2xkID0gRm9udFdlaWdodDcwMAogfTsKIAor
ZW51bSBGb250T3JpZW50YXRpb24geyBIb3Jpem9udGFsLCBWZXJ0aWNhbCB9OworCiBjbGFzcyBG
b250RGVzY3JpcHRpb24gewogcHVibGljOgogICAgIGVudW0gR2VuZXJpY0ZhbWlseVR5cGUgeyBO
b0ZhbWlseSwgU3RhbmRhcmRGYW1pbHksIFNlcmlmRmFtaWx5LCBTYW5zU2VyaWZGYW1pbHksIApA
QCAtNTUsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgRm9udERlc2NyaXB0aW9uKCkKICAgICAgICAg
OiBtX3NwZWNpZmllZFNpemUoMCkKICAgICAgICAgLCBtX2NvbXB1dGVkU2l6ZSgwKQorICAgICAg
ICAsIG1fZm9udE9yaWVudGF0aW9uKEhvcml6b250YWwpCiAgICAgICAgICwgbV9pdGFsaWMoZmFs
c2UpCiAgICAgICAgICwgbV9zbWFsbENhcHMoZmFsc2UpCiAgICAgICAgICwgbV9pc0Fic29sdXRl
U2l6ZShmYWxzZSkKQEAgLTk0LDYgKzk3LDcgQEAgcHVibGljOgogCiAgICAgRm9udFRyYWl0c01h
c2sgdHJhaXRzTWFzaygpIGNvbnN0OwogICAgIGJvb2wgaXNTcGVjaWZpZWRGb250KCkgY29uc3Qg
eyByZXR1cm4gbV9pc1NwZWNpZmllZEZvbnQ7IH0KKyAgICBGb250T3JpZW50YXRpb24gZm9udE9y
aWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9mb250T3JpZW50YXRpb247IH0KIAogICAgIHZv
aWQgc2V0RmFtaWx5KGNvbnN0IEZvbnRGYW1pbHkmIGZhbWlseSkgeyBtX2ZhbWlseUxpc3QgPSBm
YW1pbHk7IH0KICAgICB2b2lkIHNldENvbXB1dGVkU2l6ZShmbG9hdCBzKSB7IG1fY29tcHV0ZWRT
aXplID0gczsgfQpAQCAtMTEzLDYgKzExNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZvbnRT
bW9vdGhpbmcoRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nKSB7IG1fZm9udFNtb290aGluZyA9
IHNtb290aGluZzsgfQogICAgIHZvaWQgc2V0VGV4dFJlbmRlcmluZ01vZGUoVGV4dFJlbmRlcmlu
Z01vZGUgcmVuZGVyaW5nKSB7IG1fdGV4dFJlbmRlcmluZyA9IHJlbmRlcmluZzsgfQogICAgIHZv
aWQgc2V0SXNTcGVjaWZpZWRGb250KGJvb2wgaXNTcGVjaWZpZWRGb250KSB7IG1faXNTcGVjaWZp
ZWRGb250ID0gaXNTcGVjaWZpZWRGb250OyB9CisgICAgdm9pZCBzZXRGb250T3JpZW50YXRpb24o
Rm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbikgeyBtX2ZvbnRPcmllbnRhdGlvbiA9IGZv
bnRPcmllbnRhdGlvbjsgfQogCiBwcml2YXRlOgogICAgIEZvbnRGYW1pbHkgbV9mYW1pbHlMaXN0
OyAvLyBUaGUgbGlzdCBvZiBmb250IGZhbWlsaWVzIHRvIGJlIHVzZWQuCkBAIC0xMjEsNiArMTI2
LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcm91bmRpbmcs
IG1pbmltdW0gZm9udCBzaXplcywgYW5kIHpvb21pbmcuCiAgICAgZmxvYXQgbV9jb21wdXRlZFNp
emU7ICAgIC8vIENvbXB1dGVkIHNpemUgYWRqdXN0ZWQgZm9yIHRoZSBtaW5pbXVtIGZvbnQgc2l6
ZSBhbmQgdGhlIHpvb20gZmFjdG9yLiAgCiAKKyAgICBGb250T3JpZW50YXRpb24gbV9mb250T3Jp
ZW50YXRpb247IC8vIEZvbnQncyBvcmllbnRhdGlvbi4gSG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4K
KwogICAgIGJvb2wgbV9pdGFsaWMgOiAxOwogICAgIGJvb2wgbV9zbWFsbENhcHMgOiAxOwogICAg
IGJvb2wgbV9pc0Fic29sdXRlU2l6ZSA6IDE7ICAgLy8gV2hldGhlciBvciBub3QgQ1NTIHNwZWNp
ZmllZCBhbiBleHBsaWNpdCBzaXplCkBAIC0xNTUsNyArMTYyLDggQEAgaW5saW5lIGJvb2wgRm9u
dERlc2NyaXB0aW9uOjpvcGVyYXRvcj09KAogICAgICAgICAmJiBtX2tleXdvcmRTaXplID09IG90
aGVyLm1fa2V5d29yZFNpemUKICAgICAgICAgJiYgbV9mb250U21vb3RoaW5nID09IG90aGVyLm1f
Zm9udFNtb290aGluZwogICAgICAgICAmJiBtX3RleHRSZW5kZXJpbmcgPT0gb3RoZXIubV90ZXh0
UmVuZGVyaW5nCi0gICAgICAgICYmIG1faXNTcGVjaWZpZWRGb250ID09IG90aGVyLm1faXNTcGVj
aWZpZWRGb250OworICAgICAgICAmJiBtX2lzU3BlY2lmaWVkRm9udCA9PSBvdGhlci5tX2lzU3Bl
Y2lmaWVkRm9udAorICAgICAgICAmJiBtX2ZvbnRPcmllbnRhdGlvbiA9PSBvdGhlci5tX2ZvbnRP
cmllbnRhdGlvbjsKIH0KIAogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1w
bGVGb250RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2lt
cGxlRm9udERhdGEuaAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NpbXBsZUZvbnREYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMSw3ICsxMzEsNyBAQCBw
dWJsaWM6CiAjZW5kaWYKIAogI2lmIFVTRShDT1JFX1RFWFQpCi0gICAgQ0ZEaWN0aW9uYXJ5UmVm
IGdldENGU3RyaW5nQXR0cmlidXRlcyhUeXBlc2V0dGluZ0ZlYXR1cmVzKSBjb25zdDsKKyAgICBD
RkRpY3Rpb25hcnlSZWYgZ2V0Q0ZTdHJpbmdBdHRyaWJ1dGVzKFR5cGVzZXR0aW5nRmVhdHVyZXMs
IGJvb2wgaWdub3JlRGVmYXVsdEZlYXR1cmVzID0gZmFsc2UpIGNvbnN0OwogI2VuZGlmCiAKICNp
ZiBVU0UoQVRTVUkpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRD
dXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY5ODMyKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhOjp+Rm9udEN1c3RvbVBsYXRmCiAgICAgY2Fpcm9fZm9udF9mYWNlX2Rlc3Ryb3kobV9mb250
RmFjZSk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9u
dFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRl
cmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQ
bGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRh
dGlvbiwgRm9udFJlbmRlcmluZ01vZGUpCiB7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEo
bV9mb250RmFjZSwgc2l6ZSwgYm9sZCwgaXRhbGljKTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5o
CShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAj
aWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRS
ZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KQEAgLTM4LDcgKzM5LDcgQEAgc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9y
bURhdGEgOiBOb25jb3B5YQogcHVibGljOgogICAgIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEoRlRf
RmFjZSwgU2hhcmVkQnVmZmVyKik7CiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKLSAg
ICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7Cisg
ICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQs
IGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRh
bCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKICAgICBzdGF0aWMg
Ym9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIAogcHJpdmF0ZToKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0
Zm9ybURhdGFGcmVlVHlwZS5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzYsNyArMTM2LDcgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0
YShGY1BhdAogICAgIH0KIH0KIAotRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShm
bG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKQorRm9udFBsYXRmb3JtRGF0YTo6Rm9u
dFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3Jp
ZW50YXRpb24pCiAgICAgOiBtX2ZhbGxiYWNrcygwKQogICAgICwgbV9zaXplKHNpemUpCiAgICAg
LCBtX3N5bnRoZXRpY0JvbGQoYm9sZCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuaAkocmV2aXNp
b24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9y
bURhdGFGcmVlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoK
IAogICAgIEZvbnRQbGF0Zm9ybURhdGEoRmNQYXR0ZXJuKiwgY29uc3QgRm9udERlc2NyaXB0aW9u
Jik7CiAgICAgRm9udFBsYXRmb3JtRGF0YShjYWlyb19mb250X2ZhY2VfdCogZm9udEZhY2UsIGZs
b2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMpOwotICAgIEZvbnRQbGF0Zm9ybURhdGEo
ZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYyk7CisgICAgRm9udFBsYXRmb3JtRGF0
YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gZm9u
dE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCk7CiAgICAgRm9udFBsYXRmb3JtRGF0YShjb25zdCBG
b250UGxhdGZvcm1EYXRhJik7CiAgICAgRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250UGxhdGZv
cm1EYXRhJiwgZmxvYXQgc2l6ZSk7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvRm9udFBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvRm9udFBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNCw2ICsyNCw3IEBACiAjaWZuZGVmIEZvbnRQbGF0Zm9ybURhdGFfaAogI2RlZmluZSBGb250
UGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUg
IlJlZkNvdW50ZWRHRElIYW5kbGUuaCIKICNpbmNsdWRlICJTdHJpbmdJbXBsLmgiCiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTQ5LDcgKzUwLDcgQEAgcHVibGljOgogICAgIH0KIAogICAg
IEZvbnRQbGF0Zm9ybURhdGEoSEZPTlQsIGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxp
cXVlLCBib29sIHVzZUdESSk7Ci0gICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29s
IGJvbGQsIGJvb2wgb2JsaXF1ZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBi
b29sIGJvbGQsIGJvb2wgb2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9
IEhvcml6b250YWwpOwogCiAgICAgRm9udFBsYXRmb3JtRGF0YShIRk9OVCwgQ0dGb250UmVmLCBm
bG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSwgYm9vbCB1c2VHREkpOwogICAgIH5G
b250UGxhdGZvcm1EYXRhKCk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0ZvbnRQbGF0Zm9ybURhdGFDaHJvbWl1bVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhQ2hyb21pdW1XaW4u
Y3BwCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRm9udFBsYXRmb3JtRGF0YUNocm9taXVtV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYs
NyArNjYsNyBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKEhGT05UCiB9CiAK
IC8vIEZJWE1FOiB0aGlzIGNvbnN0cnVjdG9yIGlzIG5lZWRlZCBmb3IgU1ZHIGZvbnRzIGJ1dCBk
b2Vzbid0IHNlZW0gdG8gZG8gbXVjaAotRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0
YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSkKK0ZvbnRQbGF0Zm9ybURhdGE6
OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUsIEZv
bnRPcmllbnRhdGlvbikKICAgICA6IG1fZm9udCgwKQogICAgICwgbV9zaXplKHNpemUpCiAgICAg
LCBtX3NjcmlwdENhY2hlKDApCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0ZvbnRQbGF0Zm9ybURhdGFDaHJvbWl1bVdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUNocm9taXVtV2luLmgJ
KHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9G
b250UGxhdGZvcm1EYXRhQ2hyb21pdW1XaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQs
NyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKKyNpbmNsdWRlICJGb250RGVzY3JpcHRpb24u
aCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTU3LDcgKzU4LDcgQEAgcHVibGljOgog
ICAgIEZvbnRQbGF0Zm9ybURhdGEoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKTsKICAg
ICBGb250UGxhdGZvcm1EYXRhKCk7CiAgICAgRm9udFBsYXRmb3JtRGF0YShIRk9OVCwgZmxvYXQg
c2l6ZSk7Ci0gICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wg
b2JsaXF1ZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJv
b2wgb2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwp
OwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYpOwogCiAgICAg
Rm9udFBsYXRmb3JtRGF0YSYgb3BlcmF0b3I9KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmKTsKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUxp
bnV4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9G
b250UGxhdGZvcm1EYXRhTGludXguaAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRQbGF0Zm9ybURhdGFMaW51eC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIEZvbnRQbGF0Zm9ybURhdGFMaW51eF9oCiAj
ZGVmaW5lIEZvbnRQbGF0Zm9ybURhdGFMaW51eF9oCiAKKyNpbmNsdWRlICJGb250RGVzY3JpcHRp
b24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTczLDcgKzc0LDcgQEAgcHVibGljOgog
ICAgICAgICAsIG1fZmFrZUl0YWxpYyhmYWxzZSkKICAgICAgICAgeyB9CiAKLSAgICBGb250UGxh
dGZvcm1EYXRhKGZsb2F0IHRleHRTaXplLCBib29sIGZha2VCb2xkLCBib29sIGZha2VJdGFsaWMp
CisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCB0ZXh0U2l6ZSwgYm9vbCBmYWtlQm9sZCwgYm9v
bCBmYWtlSXRhbGljLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRh
bCkKICAgICAgICAgOiBtX3R5cGVmYWNlKDApCiAgICAgICAgICwgbV90ZXh0U2l6ZSh0ZXh0U2l6
ZSkKICAgICAgICAgLCBtX2Zha2VCb2xkKGZha2VCb2xkKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5
ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRh
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKICNpZm5kZWYgRm9udFBsYXRmb3Jt
RGF0YV9oCiAjZGVmaW5lIEZvbnRQbGF0Zm9ybURhdGFfaAogCisjaW5jbHVkZSAiRm9udERlc2Ny
aXB0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogCiAjaWZkZWYgX19P
QkpDX18KQEAgLTU4LDkgKzU5LDEwIEBAIGlubGluZSBDVEZvbnRSZWYgdG9DVEZvbnRSZWYoTlNG
b250ICpuc0YKIAogY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiAgIHB1YmxpYzoKLSAgICBGb250
UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0
aWNPYmxpcXVlKQorICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0
aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBmb250T3JpZW50
YXRpb24gPSBIb3Jpem9udGFsKQogICAgICAgICA6IG1fc3ludGhldGljQm9sZChzeW50aGV0aWNC
b2xkKQogICAgICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQorICAg
ICAgICAsIG1fZm9udE9yaWVudGF0aW9uKGZvbnRPcmllbnRhdGlvbikKICAgICAgICAgLCBtX2F0
c3VGb250SUQoMCkKICAgICAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAgICAgLCBtX2ZvbnQoMCkK
QEAgLTcxLDExICs3MywxMiBAQCBjbGFzcyBGb250UGxhdGZvcm1EYXRhIHsKICAgICB7CiAgICAg
fQogCi0gICAgRm9udFBsYXRmb3JtRGF0YShOU0ZvbnQgKm5zRm9udCwgYm9vbCBzeW50aGV0aWNC
b2xkID0gZmFsc2UsIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IGZhbHNlKTsKKyAgICBGb250UGxh
dGZvcm1EYXRhKE5TRm9udCAqbnNGb250LCBib29sIHN5bnRoZXRpY0JvbGQgPSBmYWxzZSwgYm9v
bCBzeW50aGV0aWNPYmxpcXVlID0gZmFsc2UsIEZvbnRPcmllbnRhdGlvbiBmb250T3JpZW50YXRp
b24gPSBIb3Jpem9udGFsKTsKICAgICAKLSAgICBGb250UGxhdGZvcm1EYXRhKENHRm9udFJlZiBj
Z0ZvbnQsIEFUU1VGb250SUQgZm9udElELCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQs
IGJvb2wgc3ludGhldGljT2JsaXF1ZSkKKyAgICBGb250UGxhdGZvcm1EYXRhKENHRm9udFJlZiBj
Z0ZvbnQsIEFUU1VGb250SUQgZm9udElELCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQs
IGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9
IEhvcml6b250YWwpCiAgICAgICAgIDogbV9zeW50aGV0aWNCb2xkKHN5bnRoZXRpY0JvbGQpCiAg
ICAgICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKHN5bnRoZXRpY09ibGlxdWUpCisgICAgICAgICwg
bV9mb250T3JpZW50YXRpb24oZm9udE9yaWVudGF0aW9uKQogICAgICAgICAsIG1fYXRzdUZvbnRJ
RChmb250SUQpCiAgICAgICAgICwgbV9zaXplKHNpemUpCiAgICAgICAgICwgbV9mb250KDApCkBA
IC05NCw5ICs5NywxMSBAQCBjbGFzcyBGb250UGxhdGZvcm1EYXRhIHsKICAgICBmbG9hdCBzaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgYm9vbCBzeW50aGV0aWNCb2xkKCkgY29u
c3QgeyByZXR1cm4gbV9zeW50aGV0aWNCb2xkOyB9CiAgICAgYm9vbCBzeW50aGV0aWNPYmxpcXVl
KCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNPYmxpcXVlOyB9CisgICAgRm9udE9yaWVudGF0
aW9uIGZvbnRPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZm9udE9yaWVudGF0aW9uOyB9
CiAKICAgICBib29sIG1fc3ludGhldGljQm9sZDsKICAgICBib29sIG1fc3ludGhldGljT2JsaXF1
ZTsKKyAgICBGb250T3JpZW50YXRpb24gbV9mb250T3JpZW50YXRpb247CiAKICAgICBBVFNVRm9u
dElEIG1fYXRzdUZvbnRJRDsKICAgICBmbG9hdCBtX3NpemU7CkBAIC0xMDQsNyArMTA5LDcgQEAg
Y2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0CiAgICAg
ewogICAgICAgICBBU1NFUlQobV9mb250ICE9IDAgfHwgbV9jZ0ZvbnQgPT0gMCk7Ci0gICAgICAg
IHVpbnRwdHJfdCBoYXNoQ29kZXNbMl0gPSB7ICh1aW50cHRyX3QpbV9mb250LCBtX3N5bnRoZXRp
Y0JvbGQgPDwgMSB8IG1fc3ludGhldGljT2JsaXF1ZSB9OworICAgICAgICB1aW50cHRyX3QgaGFz
aENvZGVzWzJdID0geyAodWludHB0cl90KW1fZm9udCwgbV9mb250T3JpZW50YXRpb24gPDwgMiB8
IG1fc3ludGhldGljQm9sZCA8PCAxIHwgbV9zeW50aGV0aWNPYmxpcXVlIH07CiAgICAgICAgIHJl
dHVybiBTdHJpbmdJbXBsOjpjb21wdXRlSGFzaChyZWludGVycHJldF9jYXN0PFVDaGFyKj4oaGFz
aENvZGVzKSwgc2l6ZW9mKGhhc2hDb2RlcykgLyBzaXplb2YoVUNoYXIpKTsKICAgICB9CiAKQEAg
LTExMyw3ICsxMTgsNyBAQCBjbGFzcyBGb250UGxhdGZvcm1EYXRhIHsKICAgICBib29sIG9wZXJh
dG9yPT0oY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgb3RoZXIpIGNvbnN0CiAgICAgeyAKICAgICAg
ICAgcmV0dXJuIG1fZm9udCA9PSBvdGhlci5tX2ZvbnQgJiYgbV9zeW50aGV0aWNCb2xkID09IG90
aGVyLm1fc3ludGhldGljQm9sZCAmJiBtX3N5bnRoZXRpY09ibGlxdWUgPT0gb3RoZXIubV9zeW50
aGV0aWNPYmxpcXVlICYmIAotICAgICAgICAgICAgICAgbV9jZ0ZvbnQgPT0gb3RoZXIubV9jZ0Zv
bnQgJiYgbV9zaXplID09IG90aGVyLm1fc2l6ZSAmJiBtX2F0c3VGb250SUQgPT0gb3RoZXIubV9h
dHN1Rm9udElEOworICAgICAgICAgICAgICAgbV9jZ0ZvbnQgPT0gb3RoZXIubV9jZ0ZvbnQgJiYg
bV9zaXplID09IG90aGVyLm1fc2l6ZSAmJiBtX2F0c3VGb250SUQgPT0gb3RoZXIubV9hdHN1Rm9u
dElEICYmIG1fZm9udE9yaWVudGF0aW9uID09IG90aGVyLm1fZm9udE9yaWVudGF0aW9uOwogICAg
IH0KIAogICAgIE5TRm9udCAqZm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udDsgfQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZv
cm1EYXRhQ29jb2EubW0JKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ0
LDkgKzQ0LDEwIEBAIHZvaWQgRm9udFBsYXRmb3JtRGF0YTo6bG9hZEZvbnQoTlNGb250KiAKIH0K
ICNlbmRpZiAgLy8gUExBVEZPUk0oTUFDKQogCi1Gb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZv
cm1EYXRhKE5TRm9udCAqbnNGb250LCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGlj
T2JsaXF1ZSkKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoTlNGb250ICpuc0Zv
bnQsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50
YXRpb24gZm9udE9yaWVudGF0aW9uKQogICAgIDogbV9zeW50aGV0aWNCb2xkKHN5bnRoZXRpY0Jv
bGQpCiAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGljT2JsaXF1ZSkKKyAgICAsIG1f
Zm9udE9yaWVudGF0aW9uKGZvbnRPcmllbnRhdGlvbikKICAgICAsIG1fZm9udChuc0ZvbnQpCiAj
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xF
T1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICAvLyBGSVhN
RTogQ2hyb21pdW06IFRoZSBmb2xsb3dpbmcgY29kZSBpc24ndCBjb3JyZWN0IGZvciB0aGUgQ2hy
b21pdW0gcG9ydCBzaW5jZSB0aGUgc2FuZGJveCBtaWdodApAQCAtODMsNiArODQsNyBAQCBGb250
UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGNvbnN0CiAgICAgbV9jZ0ZvbnQgPSBmLm1f
Y2dGb250OwogICAgIG1fYXRzdUZvbnRJRCA9IGYubV9hdHN1Rm9udElEOwogICAgIG1faXNDb2xv
ckJpdG1hcEZvbnQgPSBmLm1faXNDb2xvckJpdG1hcEZvbnQ7CisgICAgbV9mb250T3JpZW50YXRp
b24gPSBmLm1fZm9udE9yaWVudGF0aW9uOwogI2lmIFVTRShDT1JFX1RFWFQpCiAgICAgbV9DVEZv
bnQgPSBmLm1fQ1RGb250OwogI2VuZGlmCkBAIC0xMTIsNiArMTE0LDcgQEAgY29uc3QgRm9udFBs
YXRmb3JtRGF0YSYgRm9udFBsYXRmb3JtRGF0YQogICAgICAgICBDRlJlbGVhc2UobV9mb250KTsK
ICAgICBtX2ZvbnQgPSBmLm1fZm9udDsKICAgICBtX2lzQ29sb3JCaXRtYXBGb250ID0gZi5tX2lz
Q29sb3JCaXRtYXBGb250OworICAgIG1fZm9udE9yaWVudGF0aW9uID0gZi5tX2ZvbnRPcmllbnRh
dGlvbjsKICNpZiBVU0UoQ09SRV9URVhUKQogICAgIG1fQ1RGb250ID0gZi5tX0NURm9udDsKICNl
bmRpZgpAQCAtMTg3LDcgKzE5MCw4IEBAIENURm9udFJlZiBGb250UGxhdGZvcm1EYXRhOjpjdEZv
bnQoKSBjb24KIFN0cmluZyBGb250UGxhdGZvcm1EYXRhOjpkZXNjcmlwdGlvbigpIGNvbnN0CiB7
CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBjZ0ZvbnREZXNjcmlwdGlvbihBZG9wdENGLCBD
RkNvcHlEZXNjcmlwdGlvbihjZ0ZvbnQoKSkpOwotICAgIHJldHVybiBTdHJpbmcoY2dGb250RGVz
Y3JpcHRpb24uZ2V0KCkpICsgIiAiICsgU3RyaW5nOjpudW1iZXIobV9zaXplKSArIChtX3N5bnRo
ZXRpY0JvbGQgPyAiIHN5bnRoZXRpYyBib2xkIiA6ICIiKSArIChtX3N5bnRoZXRpY09ibGlxdWUg
PyAiIHN5bnRoZXRpYyBvYmxpcXVlIiA6ICIiKTsKKyAgICByZXR1cm4gU3RyaW5nKGNnRm9udERl
c2NyaXB0aW9uLmdldCgpKSArICIgIiArIFN0cmluZzo6bnVtYmVyKG1fc2l6ZSkKKyAgICAgICAg
ICAgICsgKG1fc3ludGhldGljQm9sZCA/ICIgc3ludGhldGljIGJvbGQiIDogIiIpICsgKG1fc3lu
dGhldGljT2JsaXF1ZSA/ICIgc3ludGhldGljIG9ibGlxdWUiIDogIiIpICsgKG1fZm9udE9yaWVu
dGF0aW9uID8gIiB2ZXJ0aWNhbCBvcmllbnRhdGlvbiIgOiAiIik7CiB9CiAjZW5kaWYKIApJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEN1c3RvbVBsYXRmb3JtRGF0YVBh
bmdvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhUGFuZ28uY3BwCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFQYW5nby5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZv
bnRDdXN0b21QbGF0ZgogewogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMs
IEZvbnRSZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBG
b250T3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlKQogewogICAgIHJldHVybiBGb250UGxh
dGZvcm1EYXRhKG1fZm9udEZhY2UsIHNpemUsIGJvbGQsIGl0YWxpYyk7CiB9CkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250UGxhdGZvcm1EYXRhUGFuZ28uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRQbGF0Zm9ybURhdGFQ
YW5nby5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
dGsvRm9udFBsYXRmb3JtRGF0YVBhbmdvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI3LDcgKzEy
Nyw3IEBAIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoY29uc3QKICAgICBwYW5n
b19mb250X2Rlc2NyaXB0aW9uX2ZyZWUoZGVzY3JpcHRpb24pOwogfQogCi1Gb250UGxhdGZvcm1E
YXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMp
CitGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9s
ZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbikKICAgICA6IG1fY29udGV4dCgwKQogICAg
ICwgbV9mb250KDApCiAgICAgLCBtX3NpemUoc2l6ZSkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3RrL0ZvbnRQbGF0Zm9ybURhdGFQYW5nby5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRQbGF0Zm9ybURhdGFQYW5nby5oCShyZXZpc2lv
biA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRQbGF0Zm9ybURh
dGFQYW5nby5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKIAogICAg
IEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbWljU3Ry
aW5nJiBmYW1pbHkpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY2Fpcm9fZm9udF9mYWNlX3QqIGZv
bnRGYWNlLCBmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKTsKLSAgICBGb250UGxh
dGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMpOworICAgIEZvbnRQ
bGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVu
dGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwpOwogICAgIEZvbnRQbGF0Zm9ybURh
dGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYpOwogICAgIH5Gb250UGxhdGZvcm1EYXRhKCk7CiAK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3Vz
dG9tUGxhdGYKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250
UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6
Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9y
aWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICByZXR1cm4gRm9udFBsYXRmb3Jt
RGF0YShzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlz
aW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpZm5kZWYg
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFf
aAogCisjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmlu
Z01vZGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5
YWJsZS5oPgpAQCAtMzcsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAg
c3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAKLSAgICAgICAgRm9u
dFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wg
aXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgICAg
ICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiBmb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFs
LCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOwogICAgIH07CiAKICAg
ICBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKiBjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKFNo
YXJlZEJ1ZmZlciopOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250
UGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9o
YWlrdS9Gb250UGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250UGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgeyB9CiAKICAg
ICAgICAgRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGZhbWlseSk7Ci0gICAgICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwg
Ym9vbCBib2xkLCBib29sIG9ibGlxdWUpOworICAgICAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0
IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVu
dGF0aW9uID0gSG9yaXpvbnRhbCk7CiAgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9u
dFBsYXRmb3JtRGF0YSYpOwogCiAgICAgICAgIH5Gb250UGxhdGZvcm1EYXRhKCk7CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCShyZXZpc2lv
biA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMTQyLDcgKzE0Miw4IEBAIGNvbnN0IFNpbXBsZUZvbnREYXRh
KiBGb250Q2FjaGU6OmdldEZvbnQKIAogICAgIEZvbnRQbGF0Zm9ybURhdGEgYWx0ZXJuYXRlRm9u
dChzdWJzdGl0dXRlRm9udCwgCiAgICAgICAgICFmb250LmlzUGxhdGZvcm1Gb250KCkgJiYgaXNB
cHBLaXRGb250V2VpZ2h0Qm9sZCh3ZWlnaHQpICYmICFpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKHN1
YnN0aXR1dGVGb250V2VpZ2h0KSwKLSAgICAgICAgIWZvbnQuaXNQbGF0Zm9ybUZvbnQoKSAmJiAo
dHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQpICYmICEoc3Vic3RpdHV0ZUZvbnRUcmFpdHMgJiBO
U0ZvbnRJdGFsaWNUcmFpdCkpOworICAgICAgICAhZm9udC5pc1BsYXRmb3JtRm9udCgpICYmICh0
cmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkgJiYgIShzdWJzdGl0dXRlRm9udFRyYWl0cyAmIE5T
Rm9udEl0YWxpY1RyYWl0KSwKKyAgICAgICAgcGxhdGZvcm1EYXRhLm1fZm9udE9yaWVudGF0aW9u
KTsKICAgICByZXR1cm4gZ2V0Q2FjaGVkRm9udERhdGEoJmFsdGVybmF0ZUZvbnQpOwogfQogCkBA
IC0yMTAsNyArMjExLDcgQEAgRm9udFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpjcmVhdGVGb250
UAogICAgIGJvb2wgc3ludGhldGljQm9sZCA9IGlzQXBwS2l0Rm9udFdlaWdodEJvbGQod2VpZ2h0
KSAmJiAhaXNBcHBLaXRGb250V2VpZ2h0Qm9sZChhY3R1YWxXZWlnaHQpOwogICAgIGJvb2wgc3lu
dGhldGljT2JsaXF1ZSA9ICh0cmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkgJiYgIShhY3R1YWxU
cmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCk7CiAKLSAgICByZXR1cm4gbmV3IEZvbnRQbGF0Zm9y
bURhdGEocGxhdGZvcm1Gb250LCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlKTsKKyAg
ICByZXR1cm4gbmV3IEZvbnRQbGF0Zm9ybURhdGEocGxhdGZvcm1Gb250LCBzeW50aGV0aWNCb2xk
LCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3JpcHRpb24uZm9udE9yaWVudGF0aW9uKCkpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNp
b24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsOSArMzgsOSBAQCBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiAgICAgQ0dGb250UmVsZWFzZShtX2NnRm9u
dCk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBs
YXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmlu
Z01vZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0
Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlv
biBmb250T3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlKQogewotICAgIHJldHVybiBGb250
UGxhdGZvcm1EYXRhKG1fY2dGb250LCAoQVRTVUZvbnRJRCltX2F0c0ZvbnQsIHNpemUsIGJvbGQs
IGl0YWxpYyk7CisgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9jZ0ZvbnQsIChBVFNVRm9u
dElEKW1fYXRzRm9udCwgc2l6ZSwgYm9sZCwgaXRhbGljLCBmb250T3JpZW50YXRpb24pOwogfQog
CiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKiBjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKFNo
YXJlZEJ1ZmZlciogYnVmZmVyKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNjk4MzIpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpZm5kZWYgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogCisjaW5jbHVkZSAi
Rm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNs
dWRlIDxDb3JlRm91bmRhdGlvbi9DRkJhc2UuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpA
QCAtNDEsNyArNDIsNyBAQCBzdHJ1Y3QgRm9udEN1c3RvbVBsYXRmb3JtRGF0YSA6IE5vbmNvcHlh
CiAgICAge30KICAgICB+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpOwogCi0gICAgRm9udFBsYXRm
b3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgIEZvbnRQbGF0
Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxp
YywgRm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5k
ZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBw
b3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvR2x5cGhQYWdlVHJlZU5vZGVNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dseXBoUGFnZVRyZWVOb2RlTWFjLmNwcAkocmV2aXNpb24g
Njk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HbHlwaFBhZ2VUcmVlTm9k
ZU1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE1ICs0MCw1OSBAQCBib29sIEdseXBoUGFn
ZTo6ZmlsbCh1bnNpZ25lZCBvZmZzZXQsIHVuCiAgICAgYm9vbCBoYXZlR2x5cGhzID0gZmFsc2U7
CiAKICNpZm5kZWYgQlVJTERJTkdfT05fVElHRVIKLSAgICBWZWN0b3I8Q0dHbHlwaCwgNTEyPiBn
bHlwaHMoYnVmZmVyTGVuZ3RoKTsKLSAgICB3a0dldEdseXBoc0ZvckNoYXJhY3RlcnMoZm9udERh
dGEtPnBsYXRmb3JtRGF0YSgpLmNnRm9udCgpLCBidWZmZXIsIGdseXBocy5kYXRhKCksIGJ1ZmZl
ckxlbmd0aCk7Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsK
LSAgICAgICAgaWYgKCFnbHlwaHNbaV0pCi0gICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRl
eChvZmZzZXQgKyBpLCAwLCAwKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBzZXRHbHlw
aERhdGFGb3JJbmRleChvZmZzZXQgKyBpLCBnbHlwaHNbaV0sIGZvbnREYXRhKTsKLSAgICAgICAg
ICAgIGhhdmVHbHlwaHMgPSB0cnVlOworICAgIGlmIChmb250RGF0YS0+cGxhdGZvcm1EYXRhKCku
Zm9udE9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbCkgeworICAgICAgICBWZWN0b3I8Q0dHbHlw
aCwgNTEyPiBnbHlwaHMoYnVmZmVyTGVuZ3RoKTsKKyAgICAgICAgd2tHZXRHbHlwaHNGb3JDaGFy
YWN0ZXJzKGZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgYnVmZmVyLCBnbHlwaHMu
ZGF0YSgpLCBidWZmZXJMZW5ndGgpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICghZ2x5cGhzW2ldKQorICAgICAgICAgICAg
ICAgIHNldEdseXBoRGF0YUZvckluZGV4KG9mZnNldCArIGksIDAsIDApOworICAgICAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaSwg
Z2x5cGhzW2ldLCBmb250RGF0YSk7CisgICAgICAgICAgICAgICAgaGF2ZUdseXBocyA9IHRydWU7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICAvLyBXZSBh
c2sgQ29yZVRleHQgZm9yIHBvc3NpYmxlIHZlcnRpY2FsIHZhcmlhbnQgZ2x5cGhzCisgICAgICAg
IFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc3RyaW5nKEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0
aENoYXJhY3RlcnNOb0NvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVyLCBidWZmZXJMZW5n
dGgsIGtDRkFsbG9jYXRvck51bGwpKTsKKyAgICAgICAgUmV0YWluUHRyPENGQXR0cmlidXRlZFN0
cmluZ1JlZj4gYXR0cmlidXRlZFN0cmluZyhBZG9wdENGLCBDRkF0dHJpYnV0ZWRTdHJpbmdDcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc3RyaW5nLmdldCgpLCBmb250RGF0YS0+Z2V0Q0ZTdHJp
bmdBdHRyaWJ1dGVzKDAsIHRydWUpKSk7CisgICAgICAgIFJldGFpblB0cjxDVExpbmVSZWY+IGxp
bmUoQWRvcHRDRiwgQ1RMaW5lQ3JlYXRlV2l0aEF0dHJpYnV0ZWRTdHJpbmcoYXR0cmlidXRlZFN0
cmluZy5nZXQoKSkpOworCisgICAgICAgIENGQXJyYXlSZWYgcnVuQXJyYXkgPSBDVExpbmVHZXRH
bHlwaFJ1bnMobGluZS5nZXQoKSk7CisgICAgICAgIENGSW5kZXggcnVuQ291bnQgPSBDRkFycmF5
R2V0Q291bnQocnVuQXJyYXkpOworCisgICAgICAgIC8vIEluaXRpYWxpemUgZ2x5cGggZW50cmll
cworICAgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7ICsraW5k
ZXgpCisgICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBpbmRleCwgMCwg
MCk7CisKKyAgICAgICAgYm9vbCBkb25lID0gZmFsc2U7CisgICAgICAgIGZvciAoQ0ZJbmRleCBy
ID0gMDsgciA8IHJ1bkNvdW50ICYmICFkb25lIDsgcisrKSB7CisgICAgICAgICAgICAvLyBDVExp
bmUgY291bGQgbWFwIGNoYXJhY3RlcnMgb3ZlciBtdWx0aXBsZSBmb250cyB1c2luZyBpdHMgb3du
IGZvbnQgZmFsbGJhY2sgbGlzdC4KKyAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gcGljayBydW5z
IHRoYXQgdXNlIHRoZSBleGFjdCBmb250IHdlIG5lZWQsIGkuZS4sIGZvbnREYXRhLT5wbGF0Zm9y
bURhdGEoKS5jdEZvbnQoKS4KKyAgICAgICAgICAgIENUUnVuUmVmIGN0UnVuID0gc3RhdGljX2Nh
c3Q8Q1RSdW5SZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgocnVuQXJyYXksIHIpKTsKKyAgICAg
ICAgICAgIEFTU0VSVChDRkdldFR5cGVJRChjdFJ1bikgPT0gQ1RSdW5HZXRUeXBlSUQoKSk7CisK
KyAgICAgICAgICAgIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzID0gQ1RSdW5HZXRBdHRyaWJ1
dGVzKGN0UnVuKTsKKyAgICAgICAgICAgIENURm9udFJlZiBydW5Gb250ID0gc3RhdGljX2Nhc3Q8
Q1RGb250UmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShhdHRyaWJ1dGVzLCBrQ1RGb250QXR0cmli
dXRlTmFtZSkpOworICAgICAgICAgICAgUmV0YWluUHRyPENHRm9udFJlZj4gcnVuQ0dGb250KEFk
b3B0Q0YsIENURm9udENvcHlHcmFwaGljc0ZvbnQocnVuRm9udCwgMCkpOworICAgICAgICAgICAg
aWYgKENGRXF1YWwoZm9udERhdGEtPnBsYXRmb3JtRGF0YSgpLmNnRm9udCgpLCBydW5DR0ZvbnQu
Z2V0KCkpKSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBydW4gdXNlcyB0aGUgZm9udCB3ZSB3
YW50LiBFeHRyYWN0IGdseXBocy4KKyAgICAgICAgICAgICAgICBDRkluZGV4IGdseXBoQ291bnQg
PSBDVFJ1bkdldEdseXBoQ291bnQoY3RSdW4pOworICAgICAgICAgICAgICAgIFZlY3RvcjxDR0ds
eXBoLCA1MTI+IGdseXBocyhzdGF0aWNfY2FzdDxzaXplX3Q+KGdseXBoQ291bnQpKTsKKyAgICAg
ICAgICAgICAgICBDVFJ1bkdldEdseXBocyhjdFJ1biwgQ0ZSYW5nZU1ha2UoMCwgMCksIGdseXBo
cy5kYXRhKCkpOworICAgICAgICAgICAgICAgIFZlY3RvcjxDRkluZGV4LCA1MTI+IHN0cmluZ0lu
ZGljZXMoc3RhdGljX2Nhc3Q8c2l6ZV90PihnbHlwaENvdW50KSk7CisgICAgICAgICAgICAgICAg
Q1RSdW5HZXRTdHJpbmdJbmRpY2VzKGN0UnVuLCBDRlJhbmdlTWFrZSgwLCAwKSwgc3RyaW5nSW5k
aWNlcy5kYXRhKCkpOworCisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGdseXBoQ291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5nSW5kaWNl
c1tpXSA+PSBsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUgPSB0cnVlOwor
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGdseXBoc1tpXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgc3RyaW5nSW5kaWNlc1tpXSwgZ2x5cGhz
W2ldLCBmb250RGF0YSk7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXZlR2x5cGhzID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgIH0KICNlbHNlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9TaW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcAkocmV2aXNp
b24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0
YUNvcmVUZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsMTUgKzQxLDE1IEBAIHVzaW5nIG5h
bWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ0ZEaWN0aW9uYXJ5UmVmIFNp
bXBsZUZvbnREYXRhOjpnZXRDRlN0cmluZ0F0dHJpYnV0ZXMoVHlwZXNldHRpbmdGZWF0dXJlcyB0
eXBlc2V0dGluZ0ZlYXR1cmVzKSBjb25zdAorQ0ZEaWN0aW9uYXJ5UmVmIFNpbXBsZUZvbnREYXRh
OjpnZXRDRlN0cmluZ0F0dHJpYnV0ZXMoVHlwZXNldHRpbmdGZWF0dXJlcyB0eXBlc2V0dGluZ0Zl
YXR1cmVzLCBib29sIGlnbm9yZURlZmF1bHRGZWF0dXJlcykgY29uc3QKIHsKLSAgICB1bnNpZ25l
ZCBrZXkgPSB0eXBlc2V0dGluZ0ZlYXR1cmVzICsgMTsKKyAgICB1bnNpZ25lZCBrZXkgPSAodHlw
ZXNldHRpbmdGZWF0dXJlcyArIDEpIHwgKHBsYXRmb3JtRGF0YSgpLmZvbnRPcmllbnRhdGlvbigp
IDw8IDgpOwogICAgIHBhaXI8SGFzaE1hcDx1bnNpZ25lZCwgUmV0YWluUHRyPENGRGljdGlvbmFy
eVJlZj4gPjo6aXRlcmF0b3IsIGJvb2w+IGFkZFJlc3VsdCA9IG1fQ0ZTdHJpbmdBdHRyaWJ1dGVz
LmFkZChrZXksIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+KCkpOwogICAgIFJldGFpblB0cjxD
RkRpY3Rpb25hcnlSZWY+JiBhdHRyaWJ1dGVzRGljdGlvbmFyeSA9IGFkZFJlc3VsdC5maXJzdC0+
c2Vjb25kOwogICAgIGlmICghYWRkUmVzdWx0LnNlY29uZCkKICAgICAgICAgcmV0dXJuIGF0dHJp
YnV0ZXNEaWN0aW9uYXJ5LmdldCgpOwogCi0gICAgYm9vbCBhbGxvd0xpZ2F0dXJlcyA9IHBsYXRm
b3JtRGF0YSgpLmFsbG93c0xpZ2F0dXJlcygpIHx8ICh0eXBlc2V0dGluZ0ZlYXR1cmVzICYgTGln
YXR1cmVzKTsKKyAgICBib29sIGFsbG93TGlnYXR1cmVzID0gKCFpZ25vcmVEZWZhdWx0RmVhdHVy
ZXMgJiYgcGxhdGZvcm1EYXRhKCkuYWxsb3dzTGlnYXR1cmVzKCkpIHx8ICh0eXBlc2V0dGluZ0Zl
YXR1cmVzICYgTGlnYXR1cmVzKTsKIAogICAgIHN0YXRpYyBjb25zdCBpbnQgbGlnYXR1cmVzTm90
QWxsb3dlZFZhbHVlID0gMDsKICAgICBzdGF0aWMgQ0ZOdW1iZXJSZWYgbGlnYXR1cmVzTm90QWxs
b3dlZCA9IENGTnVtYmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlckludFR5
cGUsICZsaWdhdHVyZXNOb3RBbGxvd2VkVmFsdWUpOwpAQCAtNjAsMTYgKzYwLDI1IEBAIENGRGlj
dGlvbmFyeVJlZiBTaW1wbGVGb250RGF0YTo6Z2V0Q0ZTdHIKICAgICBpZiAoISh0eXBlc2V0dGlu
Z0ZlYXR1cmVzICYgS2VybmluZykpIHsKICAgICAgICAgc3RhdGljIGNvbnN0IGZsb2F0IGtlcm5p
bmdBZGp1c3RtZW50VmFsdWUgPSAwOwogICAgICAgICBzdGF0aWMgQ0ZOdW1iZXJSZWYga2Vybmlu
Z0FkanVzdG1lbnQgPSBDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1i
ZXJGbG9hdFR5cGUsICZrZXJuaW5nQWRqdXN0bWVudFZhbHVlKTsKLSAgICAgICAgc3RhdGljIGNv
bnN0IHZvaWQqIGtleXNXaXRoS2VybmluZ0Rpc2FibGVkW10gPSB7IGtDVEZvbnRBdHRyaWJ1dGVO
YW1lLCBrQ1RLZXJuQXR0cmlidXRlTmFtZSwga0NUTGlnYXR1cmVBdHRyaWJ1dGVOYW1lIH07Ci0g
ICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlc1dpdGhLZXJuaW5nRGlzYWJsZWRbXSA9IHsgcGxhdGZv
cm1EYXRhKCkuY3RGb250KCksIGtlcm5pbmdBZGp1c3RtZW50LCBhbGxvd0xpZ2F0dXJlcwotICAg
ICAgICAgICAgPyBsaWdhdHVyZXNBbGxvd2VkIDogbGlnYXR1cmVzTm90QWxsb3dlZCB9OworICAg
ICAgICBzdGF0aWMgY29uc3Qgdm9pZCoga2V5c1dpdGhLZXJuaW5nRGlzYWJsZWRbXSA9IHsgICAg
a0NURm9udEF0dHJpYnV0ZU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBrQ1RLZXJuQXR0cmlidXRlTmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtDVExp
Z2F0dXJlQXR0cmlidXRlTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGtDVFZlcnRpY2FsRm9ybXNBdHRyaWJ1dGVOYW1lIH07
CisgICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlc1dpdGhLZXJuaW5nRGlzYWJsZWRbXSA9IHsgICAg
ICAgICBwbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtlcm5pbmdBZGp1c3RtZW50LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YWxsb3dMaWdhdHVyZXMgPyBsaWdhdHVyZXNBbGxvd2VkIDogbGlnYXR1cmVzTm90QWxsb3dlZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChwbGF0Zm9ybURhdGEoKS5mb250T3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbCkgPyBrQ0ZC
b29sZWFuVHJ1ZSA6IGtDRkJvb2xlYW5GYWxzZSB9OwogICAgICAgICBhdHRyaWJ1dGVzRGljdGlv
bmFyeS5hZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZSgwLCBrZXlzV2l0aEtlcm5pbmdEaXNhYmxl
ZCwgdmFsdWVzV2l0aEtlcm5pbmdEaXNhYmxlZCwKICAgICAgICAgICAgIHNpemVvZihrZXlzV2l0
aEtlcm5pbmdEaXNhYmxlZCkgLyBzaXplb2YoKmtleXNXaXRoS2VybmluZ0Rpc2FibGVkKSwKICAg
ICAgICAgICAgICZrQ0ZDb3B5U3RyaW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVE
aWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBCeSBv
bWl0dGluZyB0aGUga0NUS2VybkF0dHJpYnV0ZU5hbWUgYXR0cmlidXRlLCB3ZSBnZXQgQ29yZSBU
ZXh0J3Mgc3RhbmRhcmQga2VybmluZy4KLSAgICAgICAgc3RhdGljIGNvbnN0IHZvaWQqIGtleXNX
aXRoS2VybmluZ0VuYWJsZWRbXSA9IHsga0NURm9udEF0dHJpYnV0ZU5hbWUsIGtDVExpZ2F0dXJl
QXR0cmlidXRlTmFtZSB9OwotICAgICAgICBjb25zdCB2b2lkKiB2YWx1ZXNXaXRoS2VybmluZ0Vu
YWJsZWRbXSA9IHsgcGxhdGZvcm1EYXRhKCkuY3RGb250KCksIGFsbG93TGlnYXR1cmVzID8gbGln
YXR1cmVzQWxsb3dlZCA6IGxpZ2F0dXJlc05vdEFsbG93ZWQgfTsKKyAgICAgICAgc3RhdGljIGNv
bnN0IHZvaWQqIGtleXNXaXRoS2VybmluZ0VuYWJsZWRbXSA9IHsgICAgIGtDVEZvbnRBdHRyaWJ1
dGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAga0NUTGlnYXR1cmVBdHRyaWJ1dGVOYW1lLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0NUVmVydGljYWxGb3Jt
c0F0dHJpYnV0ZU5hbWUgfTsKKyAgICAgICAgY29uc3Qgdm9pZCogdmFsdWVzV2l0aEtlcm5pbmdF
bmFibGVkW10gPSB7ICAgICAgICAgIHBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dM
aWdhdHVyZXMgPyBsaWdhdHVyZXNBbGxvd2VkIDogbGlnYXR1cmVzTm90QWxsb3dlZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChw
bGF0Zm9ybURhdGEoKS5mb250T3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbCkgPyBrQ0ZCb29sZWFu
VHJ1ZSA6IGtDRkJvb2xlYW5GYWxzZSB9OwogICAgICAgICBhdHRyaWJ1dGVzRGljdGlvbmFyeS5h
ZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZSgwLCBrZXlzV2l0aEtlcm5pbmdFbmFibGVkLCB2YWx1
ZXNXaXRoS2VybmluZ0VuYWJsZWQsCiAgICAgICAgICAgICBzaXplb2Yoa2V5c1dpdGhLZXJuaW5n
RW5hYmxlZCkgLyBzaXplb2YoKmtleXNXaXRoS2VybmluZ0VuYWJsZWQpLAogICAgICAgICAgICAg
JmtDRkNvcHlTdHJpbmdEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlW
YWx1ZUNhbGxCYWNrcykpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2lt
cGxlRm9udERhdGFNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0JKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0JKHdvcmtpbmcgY29weSkK
QEAgLTQxNywxMSArNDE3LDkgQEAgRmxvYXRSZWN0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUJv
dW5kcwogewogICAgIEZsb2F0UmVjdCBib3VuZGluZ0JveDsKICNpZm5kZWYgQlVJTERJTkdfT05f
VElHRVIKLSAgICBDR1JlY3QgYm94OwotICAgIENHRm9udEdldEdseXBoQkJveGVzKHBsYXRmb3Jt
RGF0YSgpLmNnRm9udCgpLCAmZ2x5cGgsIDEsICZib3gpOwotICAgIGZsb2F0IHBvaW50U2l6ZSA9
IHBsYXRmb3JtRGF0YSgpLm1fc2l6ZTsKLSAgICBDR0Zsb2F0IHNjYWxlID0gcG9pbnRTaXplIC8g
dW5pdHNQZXJFbSgpOwotICAgIGJvdW5kaW5nQm94ID0gQ0dSZWN0QXBwbHlBZmZpbmVUcmFuc2Zv
cm0oYm94LCBDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZShzY2FsZSwgLXNjYWxlKSk7CisgICAg
Ym91bmRpbmdCb3ggPSBDVEZvbnRHZXRCb3VuZGluZ1JlY3RzRm9yR2x5cGhzKG1fcGxhdGZvcm1E
YXRhLmN0Rm9udCgpLAorICAgICAgICAgICAgICAgICAgICBtX3BsYXRmb3JtRGF0YS5mb250T3Jp
ZW50YXRpb24oKSA9PSBWZXJ0aWNhbCA/IGtDVEZvbnRWZXJ0aWNhbE9yaWVudGF0aW9uIDoga0NU
Rm9udEhvcml6b250YWxPcmllbnRhdGlvbiwgJmdseXBoLCBOVUxMLCAxKTsKKyAgICBib3VuZGlu
Z0JveC5zZXRZKC1ib3VuZGluZ0JveC5ib3R0b20oKSk7CiAjZWxzZQogICAgIC8vIEZJWE1FOiBD
dXN0b20gZm9udHMgZG9uJ3QgaGF2ZSBOU0ZvbnRzLCBzbyB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3Qg
Y29tcHV0ZSBjb3JyZWN0IGJvdW5kcyBmb3IgdGhlc2Ugb24gVGlnZXIuCiAgICAgaWYgKCFtX3Bs
YXRmb3JtRGF0YS5mb250KCkpCkBAIC00MzcsMTQgKzQzNSwxOCBAQCBGbG9hdFJlY3QgU2ltcGxl
Rm9udERhdGE6OnBsYXRmb3JtQm91bmRzCiAKIGZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9y
bVdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiB7Ci0gICAgTlNGb250KiBmb250ID0g
cGxhdGZvcm1EYXRhKCkuZm9udCgpOwotICAgIGZsb2F0IHBvaW50U2l6ZSA9IHBsYXRmb3JtRGF0
YSgpLm1fc2l6ZTsKLSAgICBDR0FmZmluZVRyYW5zZm9ybSBtID0gQ0dBZmZpbmVUcmFuc2Zvcm1N
YWtlU2NhbGUocG9pbnRTaXplLCBwb2ludFNpemUpOwogICAgIENHU2l6ZSBhZHZhbmNlOwotICAg
IGlmICghd2tHZXRHbHlwaFRyYW5zZm9ybWVkQWR2YW5jZXMocGxhdGZvcm1EYXRhKCkuY2dGb250
KCksIGZvbnQsICZtLCAmZ2x5cGgsICZhZHZhbmNlKSkgewotICAgICAgICBMT0dfRVJST1IoIlVu
YWJsZSB0byBjYWNoZSBnbHlwaCB3aWR0aHMgZm9yICVAICVmIiwgW2ZvbnQgZGlzcGxheU5hbWVd
LCBwb2ludFNpemUpOwotICAgICAgICBhZHZhbmNlLndpZHRoID0gMDsKLSAgICB9CisgICAgaWYg
KG1fcGxhdGZvcm1EYXRhLmZvbnRPcmllbnRhdGlvbigpID09IEhvcml6b250YWwpIHsKKyAgICAg
ICAgTlNGb250KiBmb250ID0gcGxhdGZvcm1EYXRhKCkuZm9udCgpOworICAgICAgICBmbG9hdCBw
b2ludFNpemUgPSBwbGF0Zm9ybURhdGEoKS5tX3NpemU7CisgICAgICAgIENHQWZmaW5lVHJhbnNm
b3JtIG0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZShwb2ludFNpemUsIHBvaW50U2l6ZSk7
CisgICAgICAgIGlmICghd2tHZXRHbHlwaFRyYW5zZm9ybWVkQWR2YW5jZXMocGxhdGZvcm1EYXRh
KCkuY2dGb250KCksIGZvbnQsICZtLCAmZ2x5cGgsICZhZHZhbmNlKSkgeworICAgICAgICAgICAg
TE9HX0VSUk9SKCJVbmFibGUgdG8gY2FjaGUgZ2x5cGggd2lkdGhzIGZvciAlQCAlZiIsIFtmb250
IGRpc3BsYXlOYW1lXSwgcG9pbnRTaXplKTsKKyAgICAgICAgICAgIGFkdmFuY2Uud2lkdGggPSAw
OworICAgICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIENURm9udEdldEFkdmFuY2VzRm9yR2x5
cGhzKG1fcGxhdGZvcm1EYXRhLmN0Rm9udCgpLCBrQ1RGb250VmVydGljYWxPcmllbnRhdGlvbiwg
JmdseXBoLCAmYWR2YW5jZSwgMSk7CisKICAgICByZXR1cm4gYWR2YW5jZS53aWR0aCArIG1fc3lu
dGhldGljQm9sZE9mZnNldDsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5ODMyKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNpZm5kZWYgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogCisjaW5jbHVkZSAi
Rm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtMzcs
NyArMzgsNyBAQCBzdHJ1Y3QgRm9udEN1c3RvbVBsYXRmb3JtRGF0YSA6IE5vbmNvcHlhCiAgICAg
Ly8gZm9yIHVzZSB3aXRoIFFGb250RGF0YWJhc2U6OmFkZEFwcGxpY2F0aW9uRm9udC9yZW1vdmVB
cHBsaWNhdGlvbkZvbnQKICAgICBpbnQgbV9oYW5kbGU7CiAKLSAgICBGb250UGxhdGZvcm1EYXRh
IGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRS
ZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0
YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250
T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01v
ZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9y
bWF0KGNvbnN0IFN0cmluZyYpOwogfTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFRdC5jcHAJKHJldmlzaW9u
IDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGYKICAgICBRRm9udERhdGFiYXNlOjpyZW1vdmVB
cHBsaWNhdGlvbkZvbnQobV9oYW5kbGUpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0
b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9v
bCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wg
aXRhbGljLCBGb250T3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlKQogewogICAgIFFGb250
IGZvbnQ7CiAgICAgZm9udC5zZXRGYW1pbHkoUUZvbnREYXRhYmFzZTo6YXBwbGljYXRpb25Gb250
RmFtaWxpZXMobV9oYW5kbGUpWzBdKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvRm9udFBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNCw4ICsyNCw4IEBACiAjaWZuZGVmIEZvbnRQbGF0Zm9ybURhdGFfaAogI2RlZmluZSBGb250
UGxhdGZvcm1EYXRhX2gKIAotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSAiRm9u
dERlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDxRRm9u
dD4KICNpbmNsdWRlIDxRSGFzaD4KIApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAKIGNsYXNz
IEZvbnRQbGF0Zm9ybURhdGEgOiBwdWJsaWMgRmFzdEFsbG9jQmFzZSB7CiBwdWJsaWM6Ci0gICAg
Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSk7Cisg
ICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSwg
Rm9udE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwpOwogICAgIEZvbnRQ
bGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSAmKTsKICAgICBGb250UGxhdGZvcm1E
YXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFt
ZSwgaW50IHdvcmRTcGFjaW5nID0gMCwgaW50IGxldHRlclNwYWNpbmcgPSAwKTsKICAgICBGb250
UGxhdGZvcm1EYXRhKGNvbnN0IFFGb250JiBmb250KQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9Gb250UGxhdGZvcm1EYXRhUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0YVF0LmNwcAkocmV2aXNpb24gNjk4
MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGFRdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgc3RhdGljIGlubGluZSBib29sIGlz
RW10cHlWYWx1ZShjb25zdCBmbAogICAgIHJldHVybiAhYm9sZCAmJiAhb2JsaXF1ZSAmJiBzaXpl
ID09IDAuZjsKIH0KIAotRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBz
aXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSkKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0
Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUsIEZvbnRPcmllbnRh
dGlvbikKIHsKICAgICBpZiAoaXNFbXRweVZhbHVlKHNpemUsIGJvbGQsIG9ibGlxdWUpKQogICAg
ICAgICBtX2RhdGEgPSAwOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24gNjk4MzIp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udEN1c3RvbVBsYXRmb3JtRGF0
YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogI2VuZGlmCiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xk
LCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUgbW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEg
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBi
b2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSBtb2Rl
KQogewogI2lmIE9TKFdJTkRPV1MpCiAgICAgQVNTRVJUKG1fZm9udFJlZmVyZW5jZSk7CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsNyBAQAogI2lmbmRlZiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKICNkZWZpbmUgRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAKKyNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKICNp
bmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC02Miw3ICs2Myw3IEBAIHN0cnVjdCBGb250
Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKIAogICAgIH5Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhKCk7CiAKLSAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUs
IGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsCisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZv
cm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24g
Zm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKIAog
ICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5LDcg
KzU5LDcgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogICAgIH0K
IH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZv
cm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9k
ZSByZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250
T3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUpCiB7CiAgICAgQVNT
RVJUKG1fZm9udFJlZmVyZW5jZSk7CiAgICAgQVNTRVJUKFQyZW1iZWRMaWJyYXJ5KCkpOwpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYg
KzIxLDcgQEAKICNpZm5kZWYgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRD
dXN0b21QbGF0Zm9ybURhdGFfaAogCisjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5j
bHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC00Miw3ICs0Myw3IEBAIHN0cnVjdCBGb250Q3Vz
dG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKIAogICAgIH5Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
KCk7CiAKLSAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJv
b2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5n
TW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBi
b29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0g
SG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKIAog
ICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwogCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGFDYWlyby5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1
c3RvbVBsYXRmCiAgICBjYWlyb19mb250X2ZhY2VfZGVzdHJveShtX2ZvbnRGYWNlKTsKIH0KIAot
Rm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRh
KGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKQorRm9udFBsYXRmb3JtRGF0YSBGb250
Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQs
IGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24pCiB7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9y
bURhdGEobV9mb250RmFjZSwgc2l6ZSwgYm9sZCwgaXRhbGljKTsKIH0KSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGFDYWlyby5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
Miw2ICsyMiw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyb19oCiAjZGVm
aW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyb19oCiAKKyNpbmNsdWRlICJGb250RGVzY3Jp
cHRpb24uaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5
YWJsZS5oPgogCkBAIC0zOSw3ICs0MCw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
IDogTm9uY29weWEKICAgICB9CiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKIAotICAg
IEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBi
b29sIGl0YWxpYyk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBz
aXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0
aW9uID0gSG9yaXpvbnRhbCk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25z
dCBTdHJpbmcmKTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBs
YXRmb3JtRGF0YUNhaXJvV2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmgJKHJldmlzaW9uIDY5ODMyKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogCiAgICAgRm9udFBsYXRm
b3JtRGF0YShIRk9OVCwgZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUsIGJvb2wg
dXNlR0RJKTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNhaXJvX2ZvbnRfZmFjZV90KiBmb250RmFj
ZSwgZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYyk7Ci0gICAgRm9udFBsYXRmb3Jt
RGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKTsKKyAgICBGb250UGxhdGZv
cm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlv
biBmb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsKTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNv
bnN0IEZvbnRQbGF0Zm9ybURhdGEmKTsKICAgICB+Rm9udFBsYXRmb3JtRGF0YSgpOwogCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhV2luLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1E
YXRhV2luLmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9Gb250UGxhdGZvcm1EYXRhV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEsNyArNzEs
NyBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKEhGT05UCiAgICAgUmVsZWFz
ZURDKDAsIGhkYyk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxv
YXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUpCitGb250UGxhdGZvcm1EYXRhOjpGb250
UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlLCBGb250T3Jp
ZW50YXRpb24pCiAgICAgOiBtX3NpemUoc2l6ZSkKICNpZiBQTEFURk9STShDRykKICAgICAsIG1f
Y2dGb250KDApCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY5ODMyKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojp+Rm9udEN1c3RvbVBsYXRmCiAgICAgICAgIGdfY3VzdG9tRm9udENhY2hlLT51bnJlZ2lzdGVy
Rm9udChtX25hbWUpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURh
dGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZv
bnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0
b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9v
bCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiwgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9k
ZSkKIHsKICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2M7CiAgICAgZm9udERlc2Muc2V0Q29t
cHV0ZWRTaXplKHNpemUpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5ODMyKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpZm5kZWYgRm9udEN1c3RvbVBs
YXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogCisjaW5jbHVk
ZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpA
QCAtNDQsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgfkZvbnRDdXN0
b21QbGF0Zm9ybURhdGEoKTsKIAotICAgICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9y
bURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2Rl
ID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBs
YXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0
aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9y
bWFsUmVuZGVyaW5nTW9kZSk7CiAKICAgICAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQo
Y29uc3QgU3RyaW5nJik7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2Uv
Rm9udFBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW5jZS9Gb250UGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24gNjk4MzIpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNTUsNyArMzU1LDcgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3Jt
RGF0YShjb25zdAogICAgIG1fcHJpdmF0ZSA9IG5ldyBGb250UGxhdGZvcm1Qcml2YXRlRGF0YShm
b250RGVzY3JpcHRpb24sIGZhbWlseSk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0
Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUpCitGb250UGxhdGZv
cm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxp
cXVlLCBGb250T3JpZW50YXRpb24pCiB7CiAgICAgaWYgKCFzaXplKQogICAgICAgICBtX3ByaXZh
dGUgPSAwOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250UGxhdGZv
cm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9G
b250UGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW5jZS9Gb250UGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcg
KzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHB1YmxpYzoKIAogICAgICAgICBGb250
UGxhdGZvcm1EYXRhKCk6IG1fcHJpdmF0ZSgwKSB7fQotICAgICAgICBGb250UGxhdGZvcm1EYXRh
KGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlKTsKKyAgICAgICAgRm9udFBsYXRm
b3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSwgRm9udE9yaWVudGF0
aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwpOwogCiAgICAgICAgIC8vIFVzZWQgZm9y
IGRlbGV0ZWQgdmFsdWVzIGluIHRoZSBmb250IGNhY2hlJ3MgaGFzaCB0YWJsZXMuCiAgICAgICAg
IEZvbnRQbGF0Zm9ybURhdGEoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKSA6IG1fcHJp
dmF0ZSgoRm9udFBsYXRmb3JtUHJpdmF0ZURhdGEqKTEpIHt9CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJ
KHJldmlzaW9uIDY5ODMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQCBGb250
Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiB7CiB9CiAKLUZvbnRQbGF0Zm9y
bURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwg
Ym9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1E
YXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJv
b2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiwgRm9udFJlbmRlcmluZ01vZGUp
CiB7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwgYm9sZCwgaXRhbGljKTsKIH0K
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1c3RvbVBsYXRmb3JtRGF0
YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTgzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd3gvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2
ICsyMSw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogI2RlZmluZSBGb250
Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgogI2lu
Y2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTM3LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmlu
ZyYpOwogCi0gICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6
ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5k
ZXJpbmdNb2RlKTsKKyAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGlu
dCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVu
dGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdN
b2RlKTsKICAgICB9OwogCiAgICAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YSogY3JlYXRlRm9udEN1
c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXIqKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd3gvRm9udFBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd3gvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA2OTgzMikKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udFBsYXRmb3JtRGF0YS5oCSh3b3JraW5n
IGNvcHkpCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKIAogICAgIEZvbnRQbGF0Zm9ybURhdGEo
Y29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgCi0gICAg
Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKQorICAg
IEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9u
dE9yaWVudGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwpCiAgICAgOiBtX2ZvbnRT
dGF0ZShVTklOSVRJQUxJWkVEKQogICAgICwgbV9mb250KDApCiAgICAgLCBtX3NpemUoc2l6ZSkK
</data>
<flag name="review"
          id="60751"
          type_id="1"
          status="-"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71023</attachid>
            <date>2010-10-18 05:02:16 -0700</date>
            <delta_ts>2010-10-18 22:11:13 -0700</delta_ts>
            <desc>Incorporated additional feedback from mitz.</desc>
            <filename>WK46973Patch_101018.txt</filename>
            <type>text/plain</type>
            <size>56079</size>
            <attacher name="Takumi Takano">takano</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTk1MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODggQEAKKzIwMTAtMTAtMTggIHRha2FubyB0YWt1bWkgIDx0YWthbm8xQGFzaWEu
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5lZWQgdG8gc3dhcCBnbHlwaHMgZm9yIHZlcnRpY2FsIHdyaXRpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2OTczCisKKyAgICAgICAgTWFk
ZSBjaGFuZ2VzIHRvIHBhc3MgdGhlIHdyaXRpbmctbW9kZSBvcmllbnRhdGlvbiBmbGFnIGluIFJl
bmRlclN0eWxlIGRvd24gdG8gRm9udFBsYXRmb3JtRGF0YSwKKyAgICAgICAgYW5kIHVsdGltYXRl
bHkgdG8gQ29yZVRleHQgQVBJcyBpbiBib3RoIGZvbnQgY29tcGxleCBwYXRoIGFuZCBmYXN0IHBh
dGguCisKKyAgICAgICAgVGVzdDogZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4
dC1tZXRyaWNzLXRlc3QuaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRlZCBwbGF0Zm9ybS9ncmFw
aGljcy9Gb250T3JpZW50YXRpb24uaC4KKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTb3VyY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTb3VyY2U6OmdldEZvbnREYXRhKTog
QWRkZWQgZm9udCBvcmllbnRhdGlvbiBwYXJhbWV0ZXIgdG8gU2ltcGxlRm9udERhdGEuCisgICAg
ICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6IFNldCBhcHByb3ByaWF0ZSBmb250IG9yaWVudGF0
aW9uIHRvIHRoZSBmb250IGRlc2NyaXB0aW9uCisgICAgICAgIHdoZW4gd3JpdGluZy1tb2RlIGlz
IGJlaW5nIHNwZWNpZmllZC4KKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkRm9udC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YSk6IE1h
ZGUgdG8gcGFzcyBmb250IG9yaWVudGF0aW9uIHRvIEZvbnRQbGF0Zm9ybURhdGEuCisgICAgICAg
ICogbG9hZGVyL0NhY2hlZEZvbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250
Q2FjaGUuY3BwOiBBZGRlZCBmb250IG9yaWVudGF0aW9uIHRvIEZvbnRQbGF0Zm9ybURhdGFDYWNo
ZUtleQorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5OjpGb250UGxh
dGZvcm1EYXRhQ2FjaGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YUNh
Y2hlS2V5OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVIYXNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmg6IEFkZGVkIGZvbnQg
b3JpZW50YXRpb24gc3VwcG9ydCB0byBGb250RGVzY3JpcHRpb24gY2xhc3MKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6Rm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnREZXNjcmlwdGlvbjo6b3JpZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dERlc2NyaXB0aW9uOjpzZXRPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVz
Y3JpcHRpb246Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRP
cmllbnRhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDogQ2hhbmdlZCB0byBwYXNzIGZvbnQgb3JpZW50YXRp
b24gdG8gZm9udFBsYXRmb3JtRGF0YSgpCisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxh
dGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6IENoYW5nZWQgdG8gcGFzcyBmb250IG9y
aWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGEuaDogQWRkZWQgZm9udCBvcmllbnRhdGlvbiBzdXBw
b3J0IHRvIEZvbnRQbGF0Zm9ybURhdGEgY2xhc3MKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0
Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRm
b3JtRGF0YTo6b3JpZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0
YTo6aGFzaCk6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpvcGVyYXRvcj09
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29j
b2EubW06IEFkZGVkIGZvbnQgb3JpZW50YXRpb24gc3VwcG9ydAorICAgICAgICAoV2ViQ29yZTo6
Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpG
b250UGxhdGZvcm1EYXRhOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRm
b3JtRGF0YTo6YWxsb3dzTGlnYXR1cmVzKTogRG9uJ3QgYWxsb3cgbGlnYXR1cmVzIHdoZW4gdGhl
IGZvbnQgaXMgdmVydGljYWwgb3JpZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpGb250UGxh
dGZvcm1EYXRhOjpkZXNjcmlwdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFQYW5nby5jcHA6IENoYW5nZWQgdG8gcGFzcyBmb250IG9y
aWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6IENoYW5nZWQgdG8gcGFz
cyBmb250IG9yaWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAoV2ViQ29y
ZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOiBDaGFuZ2Vk
IHRvIHBhc3MgZm9udCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tOiBBZGRlZCBmb250IG9yaWVu
dGF0aW9uIHBhcmFtZXRlciB3aGVuIGNyZWF0aW5nIEZvbnRQbGF0Zm9ybURhdGEgb2JqZWN0Lgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRGb250RGF0YUZvckNoYXJhY3RlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6
IEFkZGVkIGZvbnQgb3JpZW50YXRpb24gcGFyYW1ldGVyIHdoZW4gY3JlYXRpbmcgRm9udFBsYXRm
b3JtRGF0YSBvYmplY3QuCisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5oOiBDaGFuZ2VkIHRvIHBhc3MgZm9udCBvcmllbnRhdGlvbiBw
YXJhbWV0ZXIgdG8gZm9udFBsYXRmb3JtRGF0YSgpCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0dseXBoUGFnZVRyZWVOb2RlTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdseXBo
UGFnZTo6ZmlsbCk6IENoYW5nZWQgdG8gdXNlIENvcmVUZXh0IHRvIGV4dHJhY3QgZ2x5cGhzIHdo
ZW4gdGhlIGN1cnJlbnQgZm9udCBpcyB2ZXJ0aWNhbCBvcmllbnRhdGlvbi4KKyAgICAgICAgQ29y
ZVRleHQgYXV0b21hdGljYWxseSBzd2FwcyBnbHlwaHMgd2l0aCB2ZXJ0aWNhbCB2YXJpYW50cyB3
aGVuIHRoZSBmb250IG9yaWVudGF0aW9uIGlzIHZlcnRpY2FsLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcDogQWRkZWQgdmVydGljYWwg
Zm9ybSBhdHRyaWJ1dGUgdG8gdGhlIGF0dHJpYnV0ZSBkaWN0aW9uYXJ5IGZvciBhIENUTGluZS4K
KyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpnZXRDRlN0cmluZ0F0dHJpYnV0ZXMp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBo
KTogQ2hhbmdlZCB0byB1c2UgQ29yZVRleHQgKGZyb20gQ0cpIHRvIHN1cHBvcnQgdmVydGljYWwg
bWV0cmljcy4KKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRo
Rm9yR2x5cGgpOiBNYWRlIHRvIHVzZSBDb3JlVGV4dCwgaW5zdGVhZCBvZiB3a0dldEdseXBoVHJh
bnNmb3JtZWRBZHZhbmNlcywKKyAgICAgICAgdG8gZ2V0IHZlcnRpY2FsIG1ldHJpY3Mgd2hlbiB0
aGUgZm9udCBvcmllbnRhdGlvbiBpcyB2ZXJ0aWNhbC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9xdC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6IENoYW5nZWQgdG8gcGFzcyBmb250IG9y
aWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFRdC5jcHA6IENoYW5nZWQgdG8gcGFzcyBmb250
IG9yaWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAoV2ViQ29yZTo6Rm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDogQ2hhbmdlZCB0byBw
YXNzIGZvbnQgb3JpZW50YXRpb24gdG8gZm9udFBsYXRmb3JtRGF0YSgpCisgICAgICAgIChXZWJD
b3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDogQ2hhbmdl
ZCB0byBwYXNzIGZvbnQgb3JpZW50YXRpb24gdG8gZm9udFBsYXRmb3JtRGF0YSgpCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOiBDaGFu
Z2VkIHRvIHBhc3MgZm9udCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6
IENoYW5nZWQgdG8gcGFzcyBmb250IG9yaWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fp
cm8uY3BwOiBDaGFuZ2VkIHRvIHBhc3MgZm9udCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1E
YXRhKCkKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0
Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhQ2Fpcm8uaDogQ2hhbmdlZCB0byBwYXNzIGZvbnQgb3JpZW50YXRpb24gdG8gZm9u
dFBsYXRmb3JtRGF0YSgpCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5jcHA6IENoYW5nZWQgdG8gcGFzcyBmb250IG9yaWVudGF0aW9uIHRv
IGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3Jt
RGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
Y2UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOiBDaGFuZ2VkIHRvIHBhc3MgZm9udCBvcmllbnRh
dGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDogQ2hhbmdlZCB0byBwYXNzIGZvbnQgb3JpZW50
YXRpb24gdG8gZm9udFBsYXRmb3JtRGF0YSgpCisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6IENoYW5nZWQgdG8gcGFzcyBmb250IG9y
aWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorCiAyMDEwLTEwLTE4ICBQYXZlbCBGZWxk
bWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE5vdCByZXZpZXdlZC4gQnVp
bGQgZml4LgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiA2OTk0OCkKKysrIFdlYkNvcmUvV2ViQ29yZS5l
eHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTM4Miw3ICszODIsNyBAQCBfX1pON1dlYkNvcmUxNkRl
dmljZU1vdGlvbkRhdGExMkFjY2VsZXJhCiBfX1pON1dlYkNvcmUxNkRldmljZU1vdGlvbkRhdGEx
MlJvdGF0aW9uUmF0ZTZjcmVhdGVFYmRiZGJkCiBfX1pON1dlYkNvcmUxNkRldmljZU1vdGlvbkRh
dGE2Y3JlYXRlRU4zV1RGMTBQYXNzUmVmUHRySU5TMF8xMkFjY2VsZXJhdGlvbkVFRVM0X05TMl9J
TlMwXzEyUm90YXRpb25SYXRlRUVFYmQKIF9fWk43V2ViQ29yZTE2Rm9udEZhbGxiYWNrTGlzdDE1
cmVsZWFzZUZvbnREYXRhRXYKLV9fWk43V2ViQ29yZTE2Rm9udFBsYXRmb3JtRGF0YUMxRVA2TlNG
b250YmIKK19fWk43V2ViQ29yZTE2Rm9udFBsYXRmb3JtRGF0YUMxRVA2TlNGb250YmJOU18xNUZv
bnRPcmllbnRhdGlvbkUKIF9fWk43V2ViQ29yZTE2Rm9udFBsYXRmb3JtRGF0YUQxRXYKIF9fWk43
V2ViQ29yZTE2SFRNTElucHV0RWxlbWVudDEzc2V0QXV0b2ZpbGxlZEViCiBfX1pON1dlYkNvcmUx
NkxlZ2FjeVdlYkFyY2hpdmUxOWNyZWF0ZUZyb21TZWxlY3Rpb25FUE5TXzVGcmFtZUUKSW5kZXg6
IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA2OTk0
OCkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC01NTE0LDYgKzU1MTQsNyBAQAogCQlGNUMwNDFFNzBGRkNBOTZEMDA4MzlENEEg
LyogSlNIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFFMjBGRkNBOTZEMDA4MzlENEEgLyogSlNIVE1MRGF0YUxp
c3RFbGVtZW50LmggKi87IH07CiAJCUY1RDNBNTdDMTA2QjgzQjMwMDU0NTI5NyAvKiBEYXRlQ29t
cG9uZW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNUQzQTU3QTEwNkI4M0IzMDA1NDUyOTcgLyogRGF0ZUNvbXBvbmVudHMuY3BwICovOyB9Owog
CQlGNUQzQTU3RDEwNkI4M0IzMDA1NDUyOTcgLyogRGF0ZUNvbXBvbmVudHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1RDNBNTdCMTA2QjgzQjMwMDU0
NTI5NyAvKiBEYXRlQ29tcG9uZW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCUY3QTAzNEM0MTI2QkY2QkUwMDdEQzE5RSAvKiBGb250T3JpZW50
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY3
QTAzNEMzMTI2QkY2QkUwMDdEQzE5RSAvKiBGb250T3JpZW50YXRpb24uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGOTE2QzQ4RDBEQjUxMEY4MDA3
NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjkxNkM0OEIwREI1MTBGODAwNzZDRDgz
IC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCAqLzsgfTsKIAkJRjkxNkM0OEUw
REI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOTE2QzQ4QzBEQjUxMEY4
MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCAqLzsgfTsKIAkJRjk4
RkZGNDQxMUEyNjc2MjAwRjU0OEU4IC8qIENTU09NVXRpbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjk4RkZGNDIxMUEyNjc2MjAwRjU0OEU4IC8q
IENTU09NVXRpbHMuY3BwICovOyB9OwpAQCAtMTE1NTMsNiArMTE1NTQsNyBAQAogCQlGNUMyODY5
NTAyODQ2RENEMDE4NjM1Q0EgLyogQ29jb2EuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBD
b2NvYS5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db2NvYS5m
cmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJCUY1RDNBNTdBMTA2Qjgz
QjMwMDU0NTI5NyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBEYXRlQ29tcG9uZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1RDNBNTdCMTA2QjgzQjMwMDU0NTI5NyAvKiBEYXRlQ29tcG9uZW50cy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRlQ29tcG9uZW50cy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGN0EwMzRDMzEyNkJGNkJFMDA3REMxOUUgLyogRm9udE9yaWVu
dGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRPcmllbnRhdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGODIxNjI5OTAyOUY0RkI1MDEwMDAx
MzEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IHBhdGggPSBKYXZhU2Ny
aXB0Q29yZS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CUY5MTZDNDhCMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNYTUxIdHRwUmVx
dWVzdFByb2dyZXNzRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGOTE2
QzQ4QzBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjQ2OCw2ICsxNjQ3MCw3
IEBACiAJCQkJQjJDM0RBNTgwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRGYW1pbHkuY3BwICovLAog
CQkJCUIyQzNEQTU5MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250RmFtaWx5LmggKi8sCiAJCQkJNzI2
MjZFMDEwRUYwMjJGRTAwQTA3RTIwIC8qIEZvbnRGYXN0UGF0aC5jcHAgKi8sCisJCQkJRjdBMDM0
QzMxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRhdGlvbi5oICovLAogCQkJCTM3QUNDRTQx
MERBMjk4MEYwMDg5RTYwMiAvKiBGb250UmVuZGVyaW5nTW9kZS5oICovLAogCQkJCUIyQzNEQTVB
MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250U2VsZWN0b3IuaCAqLywKIAkJCQkzNzIwMjE5ODEwNjIx
M0M2MDBGMjVDNEIgLyogRm9udFNtb290aGluZ01vZGUuaCAqLywKQEAgLTIxMDgzLDYgKzIxMDg2
LDcgQEAKIAkJCQk5N0RENEQ4NzBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNEZBM0I5MEIxMjVDRDEyMjAwMzAwQkFEIC8qIEluc3BlY3RvclN0YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzI4QzMxNDEyNjhFNDM5MDA0MUU4OUIgLyogTWFya3Vw
QWNjdW11bGF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUY3QTAzNEM0MTI2QkY2QkUwMDdEQzE5
RSAvKiBGb250T3JpZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjExNDIsNiArMjExNDYs
NyBAQAogCQkJaXNhID0gUEJYUHJvamVjdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAx
NDlDMjg0MzA4OTAyQjExMDA4QTlFRkMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQ
QlhQcm9qZWN0ICJXZWJDb3JlIiAqLzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2Rl
IDIuNCI7CisJCQlkZXZlbG9wbWVudFJlZ2lvbiA9IEVuZ2xpc2g7CiAJCQloYXNTY2FubmVkRm9y
RW5jb2RpbmdzID0gMTsKIAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNoLApJbmRleDog
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcAkocmV2aXNpb24gNjk5NDgpCisrKyBXZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Miw3ICsxNjIsNyBA
QCBTaW1wbGVGb250RGF0YSogQ1NTRm9udEZhY2VTb3VyY2U6OmdldEZvCiAgICAgICAgICAgICAg
ICAgaWYgKCFtX2ZvbnQtPmVuc3VyZUN1c3RvbUZvbnREYXRhKCkpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiAwOwogCi0gICAgICAgICAgICAgICAgZm9udERhdGEuc2V0KG5ldyBTaW1wbGVG
b250RGF0YShtX2ZvbnQtPnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGZvbnREZXNjcmlwdGlv
bi5jb21wdXRlZFBpeGVsU2l6ZSgpLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZv
bnREZXNjcmlwdGlvbi5yZW5kZXJpbmdNb2RlKCkpLCB0cnVlLCBmYWxzZSkpOworICAgICAgICAg
ICAgICAgIGZvbnREYXRhLnNldChuZXcgU2ltcGxlRm9udERhdGEobV9mb250LT5wbGF0Zm9ybURh
dGFGcm9tQ3VzdG9tRGF0YShmb250RGVzY3JpcHRpb24uY29tcHV0ZWRQaXhlbFNpemUoKSwgc3lu
dGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RGVzY3JpcHRpb24ub3JpZW50YXRpb24o
KSwgZm9udERlc2NyaXB0aW9uLnJlbmRlcmluZ01vZGUoKSksIHRydWUsIGZhbHNlKSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAjaWYgRU5BQkxFKFNWR19GT05UUykKSW5kZXg6
IFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
Y3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiA2OTk0OCkKKysrIFdlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NTcxLDEwICs1NTcxLDE0
IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICNlbmRpZiAKIAog
ICAgIC8vIENTUyBUZXh0IExheW91dCBNb2R1bGUgTGV2ZWwgMzogVmVydGljYWwgd3JpdGluZyBz
dXBwb3J0Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyaXRpbmdNb2RlOgorICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRXcml0aW5nTW9kZTogewogICAgICAgICBIQU5ETEVfSU5IRVJJVF9B
TkRfSU5JVElBTF9BTkRfUFJJTUlUSVZFKHdyaXRpbmdNb2RlLCBXcml0aW5nTW9kZSkKKyAgICAg
ICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbiA9IG1fc3R5bGUtPmZvbnREZXNjcmlw
dGlvbigpOworICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0T3JpZW50YXRpb24obV9zdHlsZS0+
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWwgOiBWZXJ0aWNhbCk7CisgICAg
ICAgIGlmIChtX3N0eWxlLT5zZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKSkKKyAg
ICAgICAgICAgIG1fZm9udERpcnR5ID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwotCisgICAgfQog
I2lmIEVOQUJMRShTVkcpCiAgICAgZGVmYXVsdDoKICAgICAgICAgLy8gVHJ5IHRoZSBTVkcgcHJv
cGVydGllcwpJbmRleDogV2ViQ29yZS9sb2FkZXIvQ2FjaGVkRm9udC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9sb2FkZXIvQ2FjaGVkRm9udC5jcHAJKHJldmlzaW9uIDY5OTQ4KQorKysgV2Vi
Q29yZS9sb2FkZXIvQ2FjaGVkRm9udC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNyw3ICsxMTcs
NyBAQCBib29sIENhY2hlZEZvbnQ6OmVuc3VyZUN1c3RvbUZvbnREYXRhKCkKICAgICByZXR1cm4g
bV9mb250RGF0YTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBDYWNoZWRGb250OjpwbGF0Zm9ybURh
dGFGcm9tQ3VzdG9tRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250
UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBDYWNoZWRGb250
OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wg
aXRhbGljLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlIHJl
bmRlcmluZ01vZGUpCiB7CiAjaWYgRU5BQkxFKFNWR19GT05UUykKICAgICBpZiAobV9leHRlcm5h
bFNWR0RvY3VtZW50KQpAQCAtMTI1LDcgKzEyNSw3IEBAIEZvbnRQbGF0Zm9ybURhdGEgQ2FjaGVk
Rm9udDo6cGxhdGZvcm1EYXQKICNlbmRpZgogI2lmZGVmIFNUT1JFX0ZPTlRfQ1VTVE9NX1BMQVRG
T1JNX0RBVEEKICAgICBBU1NFUlQobV9mb250RGF0YSk7Ci0gICAgcmV0dXJuIG1fZm9udERhdGEt
PmZvbnRQbGF0Zm9ybURhdGEoc3RhdGljX2Nhc3Q8aW50PihzaXplKSwgYm9sZCwgaXRhbGljLCBy
ZW5kZXJpbmdNb2RlKTsKKyAgICByZXR1cm4gbV9mb250RGF0YS0+Zm9udFBsYXRmb3JtRGF0YShz
dGF0aWNfY2FzdDxpbnQ+KHNpemUpLCBib2xkLCBpdGFsaWMsIG9yaWVudGF0aW9uLCByZW5kZXJp
bmdNb2RlKTsKICNlbHNlCiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoKTsKICNlbmRpZgpJ
bmRleDogV2ViQ29yZS9sb2FkZXIvQ2FjaGVkRm9udC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
bG9hZGVyL0NhY2hlZEZvbnQuaAkocmV2aXNpb24gNjk5NDgpCisrKyBXZWJDb3JlL2xvYWRlci9D
YWNoZWRGb250LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgQ2Fj
aGVkRm9udF9oCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgorI2luY2x1ZGUgIkZvbnRP
cmllbnRhdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCkBAIC02Miw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGJlZ2lu
TG9hZElmTmVlZGVkKENhY2hlZFJlc291cmNlTG9hZGVyKiBkbCk7CiAKICAgICBib29sIGVuc3Vy
ZUN1c3RvbUZvbnREYXRhKCk7Ci0gICAgRm9udFBsYXRmb3JtRGF0YSBwbGF0Zm9ybURhdGFGcm9t
Q3VzdG9tRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVy
aW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgcGxh
dGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxp
YywgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3Jt
YWxSZW5kZXJpbmdNb2RlKTsKIAogI2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgYm9vbCBpc1NW
R0ZvbnQoKSBjb25zdCB7IHJldHVybiBtX2lzU1ZHRm9udDsgfQpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAkocmV2aXNpb24gNjk5NDgpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDEzICs1
NSwxNCBAQCBGb250Q2FjaGU6OkZvbnRDYWNoZSgpCiAKIHN0cnVjdCBGb250UGxhdGZvcm1EYXRh
Q2FjaGVLZXkgOiBGYXN0QWxsb2NCYXNlIHsKICAgICBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXko
Y29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHkgPSBBdG9taWNTdHJpbmcoKSwgdW5zaWduZWQgc2l6
ZSA9IDAsIHVuc2lnbmVkIHdlaWdodCA9IDAsIGJvb2wgaXRhbGljID0gZmFsc2UsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNQcmludGVyRm9udCA9IGZhbHNlLCBGb250UmVu
ZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1ByaW50ZXJGb250ID0gZmFsc2UsIEZvbnRSZW5k
ZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlLCBGb250T3JpZW50
YXRpb24gb3JpZW50YXRpb24gPSBIb3Jpem9udGFsKQogICAgICAgICA6IG1fc2l6ZShzaXplKQog
ICAgICAgICAsIG1fd2VpZ2h0KHdlaWdodCkKICAgICAgICAgLCBtX2ZhbWlseShmYW1pbHkpCiAg
ICAgICAgICwgbV9pdGFsaWMoaXRhbGljKQogICAgICAgICAsIG1fcHJpbnRlckZvbnQoaXNQcmlu
dGVyRm9udCkKICAgICAgICAgLCBtX3JlbmRlcmluZ01vZGUocmVuZGVyaW5nTW9kZSkKKyAgICAg
ICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQogICAgIHsKICAgICB9CiAKQEAgLTcyLDcg
KzczLDcgQEAgc3RydWN0IEZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleSA6IEZhc3RBbAogICAgIHsK
ICAgICAgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdDYXNlKG1fZmFtaWx5LCBvdGhlci5tX2ZhbWls
eSkgJiYgbV9zaXplID09IG90aGVyLm1fc2l6ZSAmJiAKICAgICAgICAgICAgICAgIG1fd2VpZ2h0
ID09IG90aGVyLm1fd2VpZ2h0ICYmIG1faXRhbGljID09IG90aGVyLm1faXRhbGljICYmIG1fcHJp
bnRlckZvbnQgPT0gb3RoZXIubV9wcmludGVyRm9udCAmJgotICAgICAgICAgICAgICAgbV9yZW5k
ZXJpbmdNb2RlID09IG90aGVyLm1fcmVuZGVyaW5nTW9kZTsKKyAgICAgICAgICAgICAgIG1fcmVu
ZGVyaW5nTW9kZSA9PSBvdGhlci5tX3JlbmRlcmluZ01vZGUgJiYgbV9vcmllbnRhdGlvbiA9PSBv
dGhlci5tX29yaWVudGF0aW9uOwogICAgIH0KIAogICAgIHVuc2lnbmVkIG1fc2l6ZTsKQEAgLTgx
LDYgKzgyLDcgQEAgc3RydWN0IEZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleSA6IEZhc3RBbAogICAg
IGJvb2wgbV9pdGFsaWM7CiAgICAgYm9vbCBtX3ByaW50ZXJGb250OwogICAgIEZvbnRSZW5kZXJp
bmdNb2RlIG1fcmVuZGVyaW5nTW9kZTsKKyAgICBGb250T3JpZW50YXRpb24gbV9vcmllbnRhdGlv
bjsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaFRhYmxlRGVsZXRlZFNpemUo
KSB7IHJldHVybiAweEZGRkZGRkZGVTsgfQpAQCAtOTIsNyArOTQsNyBAQCBpbmxpbmUgdW5zaWdu
ZWQgY29tcHV0ZUhhc2goY29uc3QgRm9udFBsCiAgICAgICAgIENhc2VGb2xkaW5nSGFzaDo6aGFz
aChmb250S2V5Lm1fZmFtaWx5KSwKICAgICAgICAgZm9udEtleS5tX3NpemUsCiAgICAgICAgIGZv
bnRLZXkubV93ZWlnaHQsCi0gICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5Lm1f
aXRhbGljKSA8PCAyIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9wcmludGVyRm9u
dCkgPDwgMSB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5Lm1fcmVuZGVyaW5nTW9kZSkK
KyAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9vcmllbnRhdGlvbikgPDwg
MyB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5Lm1faXRhbGljKSA8PCAyIHwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9wcmludGVyRm9udCkgPDwgMSB8IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihmb250S2V5Lm1fcmVuZGVyaW5nTW9kZSkKICAgICB9OwogICAgIHJldHVybiBT
dHJpbmdJbXBsOjpjb21wdXRlSGFzaChyZWludGVycHJldF9jYXN0PFVDaGFyKj4oaGFzaENvZGVz
KSwgc2l6ZW9mKGhhc2hDb2RlcykgLyBzaXplb2YoVUNoYXIpKTsKIH0KQEAgLTE5MSw3ICsxOTMs
NyBAQCBGb250UGxhdGZvcm1EYXRhKiBGb250Q2FjaGU6OmdldENhY2hlZEZvCiAgICAgfQogCiAg
ICAgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5IGtleShmYW1pbHlOYW1lLCBmb250RGVzY3JpcHRp
b24uY29tcHV0ZWRQaXhlbFNpemUoKSwgZm9udERlc2NyaXB0aW9uLndlaWdodCgpLCBmb250RGVz
Y3JpcHRpb24uaXRhbGljKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250
RGVzY3JpcHRpb24udXNlUHJpbnRlckZvbnQoKSwgZm9udERlc2NyaXB0aW9uLnJlbmRlcmluZ01v
ZGUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24u
dXNlUHJpbnRlckZvbnQoKSwgZm9udERlc2NyaXB0aW9uLnJlbmRlcmluZ01vZGUoKSwgZm9udERl
c2NyaXB0aW9uLm9yaWVudGF0aW9uKCkpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEqIHJlc3VsdCA9
IDA7CiAgICAgYm9vbCBmb3VuZFJlc3VsdDsKICAgICBGb250UGxhdGZvcm1EYXRhQ2FjaGU6Oml0
ZXJhdG9yIGl0ID0gZ0ZvbnRQbGF0Zm9ybURhdGFDYWNoZS0+ZmluZChrZXkpOwpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCShyZXZpc2lvbiA2OTk0
OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNkZWZpbmUgRm9udERlc2NyaXB0aW9uX2gKIAog
I2luY2x1ZGUgIkZvbnRGYW1pbHkuaCIKKyNpbmNsdWRlICJGb250T3JpZW50YXRpb24uaCIKICNp
bmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgIkZvbnRTbW9vdGhpbmdNb2Rl
LmgiCiAjaW5jbHVkZSAiRm9udFRyYWl0c01hc2suaCIKQEAgLTU1LDYgKzU2LDcgQEAgcHVibGlj
OgogICAgIEZvbnREZXNjcmlwdGlvbigpCiAgICAgICAgIDogbV9zcGVjaWZpZWRTaXplKDApCiAg
ICAgICAgICwgbV9jb21wdXRlZFNpemUoMCkKKyAgICAgICAgLCBtX29yaWVudGF0aW9uKEhvcml6
b250YWwpCiAgICAgICAgICwgbV9pdGFsaWMoZmFsc2UpCiAgICAgICAgICwgbV9zbWFsbENhcHMo
ZmFsc2UpCiAgICAgICAgICwgbV9pc0Fic29sdXRlU2l6ZShmYWxzZSkKQEAgLTk0LDYgKzk2LDcg
QEAgcHVibGljOgogCiAgICAgRm9udFRyYWl0c01hc2sgdHJhaXRzTWFzaygpIGNvbnN0OwogICAg
IGJvb2wgaXNTcGVjaWZpZWRGb250KCkgY29uc3QgeyByZXR1cm4gbV9pc1NwZWNpZmllZEZvbnQ7
IH0KKyAgICBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX29y
aWVudGF0aW9uOyB9CiAKICAgICB2b2lkIHNldEZhbWlseShjb25zdCBGb250RmFtaWx5JiBmYW1p
bHkpIHsgbV9mYW1pbHlMaXN0ID0gZmFtaWx5OyB9CiAgICAgdm9pZCBzZXRDb21wdXRlZFNpemUo
ZmxvYXQgcykgeyBtX2NvbXB1dGVkU2l6ZSA9IHM7IH0KQEAgLTExMyw2ICsxMTYsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRGb250U21vb3RoaW5nKEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGlu
ZykgeyBtX2ZvbnRTbW9vdGhpbmcgPSBzbW9vdGhpbmc7IH0KICAgICB2b2lkIHNldFRleHRSZW5k
ZXJpbmdNb2RlKFRleHRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZykgeyBtX3RleHRSZW5kZXJpbmcg
PSByZW5kZXJpbmc7IH0KICAgICB2b2lkIHNldElzU3BlY2lmaWVkRm9udChib29sIGlzU3BlY2lm
aWVkRm9udCkgeyBtX2lzU3BlY2lmaWVkRm9udCA9IGlzU3BlY2lmaWVkRm9udDsgfQorICAgIHZv
aWQgc2V0T3JpZW50YXRpb24oRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKSB7IG1fb3JpZW50
YXRpb24gPSBvcmllbnRhdGlvbjsgfQogCiBwcml2YXRlOgogICAgIEZvbnRGYW1pbHkgbV9mYW1p
bHlMaXN0OyAvLyBUaGUgbGlzdCBvZiBmb250IGZhbWlsaWVzIHRvIGJlIHVzZWQuCkBAIC0xMjEs
NiArMTI1LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcm91
bmRpbmcsIG1pbmltdW0gZm9udCBzaXplcywgYW5kIHpvb21pbmcuCiAgICAgZmxvYXQgbV9jb21w
dXRlZFNpemU7ICAgIC8vIENvbXB1dGVkIHNpemUgYWRqdXN0ZWQgZm9yIHRoZSBtaW5pbXVtIGZv
bnQgc2l6ZSBhbmQgdGhlIHpvb20gZmFjdG9yLiAgCiAKKyAgICBGb250T3JpZW50YXRpb24gbV9v
cmllbnRhdGlvbjsKKwogICAgIGJvb2wgbV9pdGFsaWMgOiAxOwogICAgIGJvb2wgbV9zbWFsbENh
cHMgOiAxOwogICAgIGJvb2wgbV9pc0Fic29sdXRlU2l6ZSA6IDE7ICAgLy8gV2hldGhlciBvciBu
b3QgQ1NTIHNwZWNpZmllZCBhbiBleHBsaWNpdCBzaXplCkBAIC0xNTUsNyArMTYxLDggQEAgaW5s
aW5lIGJvb2wgRm9udERlc2NyaXB0aW9uOjpvcGVyYXRvcj09KAogICAgICAgICAmJiBtX2tleXdv
cmRTaXplID09IG90aGVyLm1fa2V5d29yZFNpemUKICAgICAgICAgJiYgbV9mb250U21vb3RoaW5n
ID09IG90aGVyLm1fZm9udFNtb290aGluZwogICAgICAgICAmJiBtX3RleHRSZW5kZXJpbmcgPT0g
b3RoZXIubV90ZXh0UmVuZGVyaW5nCi0gICAgICAgICYmIG1faXNTcGVjaWZpZWRGb250ID09IG90
aGVyLm1faXNTcGVjaWZpZWRGb250OworICAgICAgICAmJiBtX2lzU3BlY2lmaWVkRm9udCA9PSBv
dGhlci5tX2lzU3BlY2lmaWVkRm9udAorICAgICAgICAmJiBtX29yaWVudGF0aW9uID09IG90aGVy
Lm1fb3JpZW50YXRpb247CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udE9yaWVudGF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250T3JpZW50YXRpb24uaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udE9yaWVudGF0aW9uLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIEZvbnRPcmllbnRhdGlvbl9oCisjZGVmaW5lIEZvbnRPcmllbnRhdGlv
bl9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBGb250T3JpZW50YXRpb24geyBIb3Jp
em9udGFsLCBWZXJ0aWNhbCB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBGb250T3JpZW50YXRpb25faApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCShyZXZpc2lvbiA2
OTk0OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgRm9udEN1c3RvbVBs
YXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogICAgIGNhaXJvX2ZvbnRfZmFjZV9kZXN0cm95
KG1fZm9udEZhY2UpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURh
dGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZv
bnRSZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250
T3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlKQogewogICAgIHJldHVybiBGb250UGxhdGZv
cm1EYXRhKG1fZm9udEZhY2UsIHNpemUsIGJvbGQsIGl0YWxpYyk7CiB9CkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuaAkocmV2aXNpb24gNjk5NDgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIs
NyBAQAogI2lmbmRlZiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKICNkZWZpbmUgRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YV9oCiAKKyNpbmNsdWRlICJGb250T3JpZW50YXRpb24uaCIKICNpbmNsdWRl
ICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC0zOCw3ICszOSw3IEBAIHN0cnVjdCBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhIDogTm9uY29weWEKIHB1YmxpYzoKICAgICBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhKEZUX0ZhY2UsIFNoYXJlZEJ1ZmZlciopOwogICAgIH5Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
KCk7Ci0gICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29s
IGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01v
ZGUpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9v
bCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJl
bmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKICAgICBzdGF0aWMgYm9vbCBzdXBw
b3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIAogcHJpdmF0ZToKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lv
biA2OTk0OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3Jt
RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBACiAjaWZuZGVmIEZvbnRQbGF0
Zm9ybURhdGFfaAogI2RlZmluZSBGb250UGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnRP
cmllbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogI2lmZGVm
IF9fT0JKQ19fCkBAIC01OCw5ICs1OSwxMCBAQCBpbmxpbmUgQ1RGb250UmVmIHRvQ1RGb250UmVm
KE5TRm9udCAqbnNGCiAKIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICBwdWJsaWM6Ci0gICAg
Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3lu
dGhldGljT2JsaXF1ZSkKKyAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgc3lu
dGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3JpZW50
YXRpb24gPSBIb3Jpem9udGFsKQogICAgICAgICA6IG1fc3ludGhldGljQm9sZChzeW50aGV0aWNC
b2xkKQogICAgICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQorICAg
ICAgICAsIG1fb3JpZW50YXRpb24ob3JpZW50YXRpb24pCiAgICAgICAgICwgbV9hdHN1Rm9udElE
KDApCiAgICAgICAgICwgbV9zaXplKHNpemUpCiAgICAgICAgICwgbV9mb250KDApCkBAIC03MSwx
MSArNzMsMTIgQEAgY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiAgICAgewogICAgIH0KIAotICAg
IEZvbnRQbGF0Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3ludGhldGljQm9sZCA9IGZh
bHNlLCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSk7CisgICAgRm9udFBsYXRmb3JtRGF0
YShOU0ZvbnQgKm5zRm9udCwgYm9vbCBzeW50aGV0aWNCb2xkID0gZmFsc2UsIGJvb2wgc3ludGhl
dGljT2JsaXF1ZSA9IGZhbHNlLCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsKTsKICAgICAK
LSAgICBGb250UGxhdGZvcm1EYXRhKENHRm9udFJlZiBjZ0ZvbnQsIEFUU1VGb250SUQgZm9udElE
LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSkK
KyAgICBGb250UGxhdGZvcm1EYXRhKENHRm9udFJlZiBjZ0ZvbnQsIEFUU1VGb250SUQgZm9udElE
LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwg
Rm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQogICAgICAgICA6IG1fc3ludGhldGljQm9sZChz
eW50aGV0aWNCb2xkKQogICAgICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxp
cXVlKQorICAgICAgICAsIG1fb3JpZW50YXRpb24ob3JpZW50YXRpb24pCiAgICAgICAgICwgbV9h
dHN1Rm9udElEKGZvbnRJRCkKICAgICAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAgICAgLCBtX2Zv
bnQoMCkKQEAgLTk0LDkgKzk3LDExIEBAIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICAgIGZs
b2F0IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KICAgICBib29sIHN5bnRoZXRpY0Jv
bGQoKSBjb25zdCB7IHJldHVybiBtX3N5bnRoZXRpY0JvbGQ7IH0KICAgICBib29sIHN5bnRoZXRp
Y09ibGlxdWUoKSBjb25zdCB7IHJldHVybiBtX3N5bnRoZXRpY09ibGlxdWU7IH0KKyAgICBGb250
T3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX29yaWVudGF0aW9uOyB9
CiAKICAgICBib29sIG1fc3ludGhldGljQm9sZDsKICAgICBib29sIG1fc3ludGhldGljT2JsaXF1
ZTsKKyAgICBGb250T3JpZW50YXRpb24gbV9vcmllbnRhdGlvbjsKIAogICAgIEFUU1VGb250SUQg
bV9hdHN1Rm9udElEOwogICAgIGZsb2F0IG1fc2l6ZTsKQEAgLTEwNCw3ICsxMDksNyBAQCBjbGFz
cyBGb250UGxhdGZvcm1EYXRhIHsKICAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QKICAgICB7CiAg
ICAgICAgIEFTU0VSVChtX2ZvbnQgIT0gMCB8fCBtX2NnRm9udCA9PSAwKTsKLSAgICAgICAgdWlu
dHB0cl90IGhhc2hDb2Rlc1syXSA9IHsgKHVpbnRwdHJfdCltX2ZvbnQsIG1fc3ludGhldGljQm9s
ZCA8PCAxIHwgbV9zeW50aGV0aWNPYmxpcXVlIH07CisgICAgICAgIHVpbnRwdHJfdCBoYXNoQ29k
ZXNbMl0gPSB7ICh1aW50cHRyX3QpbV9mb250LCBtX29yaWVudGF0aW9uIDw8IDIgfCBtX3N5bnRo
ZXRpY0JvbGQgPDwgMSB8IG1fc3ludGhldGljT2JsaXF1ZSB9OwogICAgICAgICByZXR1cm4gU3Ry
aW5nSW1wbDo6Y29tcHV0ZUhhc2gocmVpbnRlcnByZXRfY2FzdDxVQ2hhcio+KGhhc2hDb2Rlcyks
IHNpemVvZihoYXNoQ29kZXMpIC8gc2l6ZW9mKFVDaGFyKSk7CiAgICAgfQogCkBAIC0xMTMsNyAr
MTE4LDcgQEAgY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiAgICAgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IEZvbnRQbGF0Zm9ybURhdGEmIG90aGVyKSBjb25zdAogICAgIHsgCiAgICAgICAgIHJldHVy
biBtX2ZvbnQgPT0gb3RoZXIubV9mb250ICYmIG1fc3ludGhldGljQm9sZCA9PSBvdGhlci5tX3N5
bnRoZXRpY0JvbGQgJiYgbV9zeW50aGV0aWNPYmxpcXVlID09IG90aGVyLm1fc3ludGhldGljT2Js
aXF1ZSAmJiAKLSAgICAgICAgICAgICAgIG1fY2dGb250ID09IG90aGVyLm1fY2dGb250ICYmIG1f
c2l6ZSA9PSBvdGhlci5tX3NpemUgJiYgbV9hdHN1Rm9udElEID09IG90aGVyLm1fYXRzdUZvbnRJ
RDsKKyAgICAgICAgICAgICAgIG1fY2dGb250ID09IG90aGVyLm1fY2dGb250ICYmIG1fc2l6ZSA9
PSBvdGhlci5tX3NpemUgJiYgbV9hdHN1Rm9udElEID09IG90aGVyLm1fYXRzdUZvbnRJRCAmJiBt
X29yaWVudGF0aW9uID09IG90aGVyLm1fb3JpZW50YXRpb247CiAgICAgfQogCiAgICAgTlNGb250
ICpmb250KCkgY29uc3QgeyByZXR1cm4gbV9mb250OyB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQko
cmV2aXNpb24gNjk5NDgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQ
bGF0Zm9ybURhdGFDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDQsOSArNDQsMTAgQEAgdm9p
ZCBGb250UGxhdGZvcm1EYXRhOjpsb2FkRm9udChOU0ZvbnQqIAogfQogI2VuZGlmICAvLyBQTEFU
Rk9STShNQUMpCiAKLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoTlNGb250ICpu
c0ZvbnQsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlKQorRm9udFBs
YXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShOU0ZvbnQgKm5zRm9udCwgYm9vbCBzeW50aGV0
aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlv
bikKICAgICA6IG1fc3ludGhldGljQm9sZChzeW50aGV0aWNCb2xkKQogICAgICwgbV9zeW50aGV0
aWNPYmxpcXVlKHN5bnRoZXRpY09ibGlxdWUpCisgICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0
aW9uKQogICAgICwgbV9mb250KG5zRm9udCkKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdF
UikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKQogICAgIC8vIEZJWE1FOiBDaHJvbWl1bTogVGhlIGZvbGxvd2luZyBj
b2RlIGlzbid0IGNvcnJlY3QgZm9yIHRoZSBDaHJvbWl1bSBwb3J0IHNpbmNlIHRoZSBzYW5kYm94
IG1pZ2h0CkBAIC04Myw2ICs4NCw3IEBAIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURh
dGEoY29uc3QKICAgICBtX2NnRm9udCA9IGYubV9jZ0ZvbnQ7CiAgICAgbV9hdHN1Rm9udElEID0g
Zi5tX2F0c3VGb250SUQ7CiAgICAgbV9pc0NvbG9yQml0bWFwRm9udCA9IGYubV9pc0NvbG9yQml0
bWFwRm9udDsKKyAgICBtX29yaWVudGF0aW9uID0gZi5tX29yaWVudGF0aW9uOwogI2lmIFVTRShD
T1JFX1RFWFQpCiAgICAgbV9DVEZvbnQgPSBmLm1fQ1RGb250OwogI2VuZGlmCkBAIC0xMTIsNiAr
MTE0LDcgQEAgY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgRm9udFBsYXRmb3JtRGF0YQogICAgICAg
ICBDRlJlbGVhc2UobV9mb250KTsKICAgICBtX2ZvbnQgPSBmLm1fZm9udDsKICAgICBtX2lzQ29s
b3JCaXRtYXBGb250ID0gZi5tX2lzQ29sb3JCaXRtYXBGb250OworICAgIG1fb3JpZW50YXRpb24g
PSBmLm1fb3JpZW50YXRpb247CiAjaWYgVVNFKENPUkVfVEVYVCkKICAgICBtX0NURm9udCA9IGYu
bV9DVEZvbnQ7CiAjZW5kaWYKQEAgLTE2OSw3ICsxNzIsNyBAQCBib29sIEZvbnRQbGF0Zm9ybURh
dGE6OnJvdW5kc0dseXBoQWR2YW5jCiAKIGJvb2wgRm9udFBsYXRmb3JtRGF0YTo6YWxsb3dzTGln
YXR1cmVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gIVtbbV9mb250IGNvdmVyZWRDaGFyYWN0ZXJT
ZXRdIGNoYXJhY3RlcklzTWVtYmVyOidhJ107CisgICAgcmV0dXJuIChtX29yaWVudGF0aW9uID09
IEhvcml6b250YWwpICYmICghW1ttX2ZvbnQgY292ZXJlZENoYXJhY3RlclNldF0gY2hhcmFjdGVy
SXNNZW1iZXI6J2EnXSk7CiB9CiAKICNpZiBVU0UoQ09SRV9URVhUKQpAQCAtMTg3LDcgKzE5MCw4
IEBAIENURm9udFJlZiBGb250UGxhdGZvcm1EYXRhOjpjdEZvbnQoKSBjb24KIFN0cmluZyBGb250
UGxhdGZvcm1EYXRhOjpkZXNjcmlwdGlvbigpIGNvbnN0CiB7CiAgICAgUmV0YWluUHRyPENGU3Ry
aW5nUmVmPiBjZ0ZvbnREZXNjcmlwdGlvbihBZG9wdENGLCBDRkNvcHlEZXNjcmlwdGlvbihjZ0Zv
bnQoKSkpOwotICAgIHJldHVybiBTdHJpbmcoY2dGb250RGVzY3JpcHRpb24uZ2V0KCkpICsgIiAi
ICsgU3RyaW5nOjpudW1iZXIobV9zaXplKSArIChtX3N5bnRoZXRpY0JvbGQgPyAiIHN5bnRoZXRp
YyBib2xkIiA6ICIiKSArIChtX3N5bnRoZXRpY09ibGlxdWUgPyAiIHN5bnRoZXRpYyBvYmxpcXVl
IiA6ICIiKTsKKyAgICByZXR1cm4gU3RyaW5nKGNnRm9udERlc2NyaXB0aW9uLmdldCgpKSArICIg
IiArIFN0cmluZzo6bnVtYmVyKG1fc2l6ZSkKKyAgICAgICAgICAgICsgKG1fc3ludGhldGljQm9s
ZCA/ICIgc3ludGhldGljIGJvbGQiIDogIiIpICsgKG1fc3ludGhldGljT2JsaXF1ZSA/ICIgc3lu
dGhldGljIG9ibGlxdWUiIDogIiIpICsgKG1fb3JpZW50YXRpb24gPyAiIHZlcnRpY2FsIG9yaWVu
dGF0aW9uIiA6ICIiKTsKIH0KICNlbmRpZgogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2d0ay9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUGFuZ28uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFQYW5nby5j
cHAJKHJldmlzaW9uIDY5OTQ4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YVBhbmdvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAs
NyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiB7CiB9CiAKLUZv
bnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShp
bnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUpCitGb250
UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50
IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiwgRm9udFJlbmRl
cmluZ01vZGUpCiB7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9mb250RmFjZSwgc2l6
ZSwgYm9sZCwgaXRhbGljKTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFp
a3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24g
Njk5NDgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGYKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJv
bGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xk
LCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAg
ICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5OTQ4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIx
LDYgKzIxLDcgQEAKICNpZm5kZWYgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZv
bnRDdXN0b21QbGF0Zm9ybURhdGFfaAogCisjaW5jbHVkZSAiRm9udE9yaWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtMzcsNyArMzgsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3Ry
aW5nJik7CiAKLSAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBz
aXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJl
bmRlcmluZ01vZGUpOworICAgICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEo
aW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6
b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAgICAgfTsK
IAogICAgIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEqIGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURh
dGEoU2hhcmVkQnVmZmVyKik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q2FjaGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvRm9udENhY2hlTWFjLm1tCShyZXZpc2lvbiA2OTk0OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQyLDcgKzE0
Miw4IEBAIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBGb250Q2FjaGU6OmdldEZvbnQKIAogICAgIEZv
bnRQbGF0Zm9ybURhdGEgYWx0ZXJuYXRlRm9udChzdWJzdGl0dXRlRm9udCwgCiAgICAgICAgICFm
b250LmlzUGxhdGZvcm1Gb250KCkgJiYgaXNBcHBLaXRGb250V2VpZ2h0Qm9sZCh3ZWlnaHQpICYm
ICFpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKHN1YnN0aXR1dGVGb250V2VpZ2h0KSwKLSAgICAgICAg
IWZvbnQuaXNQbGF0Zm9ybUZvbnQoKSAmJiAodHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQpICYm
ICEoc3Vic3RpdHV0ZUZvbnRUcmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkpOworICAgICAgICAh
Zm9udC5pc1BsYXRmb3JtRm9udCgpICYmICh0cmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkgJiYg
IShzdWJzdGl0dXRlRm9udFRyYWl0cyAmIE5TRm9udEl0YWxpY1RyYWl0KSwKKyAgICAgICAgcGxh
dGZvcm1EYXRhLm1fb3JpZW50YXRpb24pOwogICAgIHJldHVybiBnZXRDYWNoZWRGb250RGF0YSgm
YWx0ZXJuYXRlRm9udCk7CiB9CiAKQEAgLTIxMCw3ICsyMTEsNyBAQCBGb250UGxhdGZvcm1EYXRh
KiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQCiAgICAgYm9vbCBzeW50aGV0aWNCb2xkID0gaXNBcHBL
aXRGb250V2VpZ2h0Qm9sZCh3ZWlnaHQpICYmICFpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKGFjdHVh
bFdlaWdodCk7CiAgICAgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0gKHRyYWl0cyAmIE5TRm9udEl0
YWxpY1RyYWl0KSAmJiAhKGFjdHVhbFRyYWl0cyAmIE5TRm9udEl0YWxpY1RyYWl0KTsKIAotICAg
IHJldHVybiBuZXcgRm9udFBsYXRmb3JtRGF0YShwbGF0Zm9ybUZvbnQsIHN5bnRoZXRpY0JvbGQs
IHN5bnRoZXRpY09ibGlxdWUpOworICAgIHJldHVybiBuZXcgRm9udFBsYXRmb3JtRGF0YShwbGF0
Zm9ybUZvbnQsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIGZvbnREZXNjcmlwdGlv
bi5vcmllbnRhdGlvbigpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5jcHAJKHJldmlzaW9uIDY5OTQ4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDkg
KzM4LDkgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogICAgIENH
Rm9udFJlbGVhc2UobV9jZ0ZvbnQpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBp
dGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxh
dGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlKQogewot
ICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKG1fY2dGb250LCAoQVRTVUZvbnRJRCltX2F0c0Zv
bnQsIHNpemUsIGJvbGQsIGl0YWxpYyk7CisgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9j
Z0ZvbnQsIChBVFNVRm9udElEKW1fYXRzRm9udCwgc2l6ZSwgYm9sZCwgaXRhbGljLCBvcmllbnRh
dGlvbik7CiB9CiAKIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEqIGNyZWF0ZUZvbnRDdXN0b21QbGF0
Zm9ybURhdGEoU2hhcmVkQnVmZmVyKiBidWZmZXIpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCShyZXZpc2lv
biA2OTk0OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2lmbmRlZiBGb250
Q3VzdG9tUGxhdGZvcm1EYXRhX2gKICNkZWZpbmUgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAK
KyNpbmNsdWRlICJGb250T3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9k
ZS5oIgogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NGQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CkBAIC00MSw3ICs0Miw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
IDogTm9uY29weWEKICAgICB7fQogICAgIH5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCk7CiAKLSAg
ICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7Cisg
ICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQs
IGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsLCBGb250UmVuZGVyaW5n
TW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOwogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNG
b3JtYXQoY29uc3QgU3RyaW5nJik7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0dseXBoUGFnZVRyZWVOb2RlTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9HbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHAJKHJldmlzaW9uIDY5OTQ4
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR2x5cGhQYWdlVHJlZU5vZGVNYWMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxNSArNDAsNzMgQEAgYm9vbCBHbHlwaFBhZ2U6OmZp
bGwodW5zaWduZWQgb2Zmc2V0LCB1bgogICAgIGJvb2wgaGF2ZUdseXBocyA9IGZhbHNlOwogCiAj
aWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCi0gICAgVmVjdG9yPENHR2x5cGgsIDUxMj4gZ2x5cGhz
KGJ1ZmZlckxlbmd0aCk7Ci0gICAgd2tHZXRHbHlwaHNGb3JDaGFyYWN0ZXJzKGZvbnREYXRhLT5w
bGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgYnVmZmVyLCBnbHlwaHMuZGF0YSgpLCBidWZmZXJMZW5n
dGgpOwotCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAg
ICAgIGlmICghZ2x5cGhzW2ldKQotICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zm
c2V0ICsgaSwgMCwgMCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgc2V0R2x5cGhEYXRh
Rm9ySW5kZXgob2Zmc2V0ICsgaSwgZ2x5cGhzW2ldLCBmb250RGF0YSk7Ci0gICAgICAgICAgICBo
YXZlR2x5cGhzID0gdHJ1ZTsKKyAgICBpZiAoZm9udERhdGEtPnBsYXRmb3JtRGF0YSgpLm9yaWVu
dGF0aW9uKCkgPT0gSG9yaXpvbnRhbCkgeworICAgICAgICBWZWN0b3I8Q0dHbHlwaCwgNTEyPiBn
bHlwaHMoYnVmZmVyTGVuZ3RoKTsKKyAgICAgICAgd2tHZXRHbHlwaHNGb3JDaGFyYWN0ZXJzKGZv
bnREYXRhLT5wbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgYnVmZmVyLCBnbHlwaHMuZGF0YSgpLCBi
dWZmZXJMZW5ndGgpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyAr
K2kpIHsKKyAgICAgICAgICAgIGlmICghZ2x5cGhzW2ldKQorICAgICAgICAgICAgICAgIHNldEds
eXBoRGF0YUZvckluZGV4KG9mZnNldCArIGksIDAsIDApOworICAgICAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaSwgZ2x5cGhzW2ld
LCBmb250RGF0YSk7CisgICAgICAgICAgICAgICAgaGF2ZUdseXBocyA9IHRydWU7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICAvLyBXZSBhc2sgQ29yZVRl
eHQgZm9yIHBvc3NpYmxlIHZlcnRpY2FsIHZhcmlhbnQgZ2x5cGhzCisgICAgICAgIFJldGFpblB0
cjxDRlN0cmluZ1JlZj4gc3RyaW5nKEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3Rl
cnNOb0NvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVyLCBidWZmZXJMZW5ndGgsIGtDRkFs
bG9jYXRvck51bGwpKTsKKyAgICAgICAgUmV0YWluUHRyPENGQXR0cmlidXRlZFN0cmluZ1JlZj4g
YXR0cmlidXRlZFN0cmluZyhBZG9wdENGLCBDRkF0dHJpYnV0ZWRTdHJpbmdDcmVhdGUoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgc3RyaW5nLmdldCgpLCBmb250RGF0YS0+Z2V0Q0ZTdHJpbmdBdHRyaWJ1
dGVzKDApKSk7CisgICAgICAgIFJldGFpblB0cjxDVExpbmVSZWY+IGxpbmUoQWRvcHRDRiwgQ1RM
aW5lQ3JlYXRlV2l0aEF0dHJpYnV0ZWRTdHJpbmcoYXR0cmlidXRlZFN0cmluZy5nZXQoKSkpOwor
CisgICAgICAgIENGQXJyYXlSZWYgcnVuQXJyYXkgPSBDVExpbmVHZXRHbHlwaFJ1bnMobGluZS5n
ZXQoKSk7CisgICAgICAgIENGSW5kZXggcnVuQ291bnQgPSBDRkFycmF5R2V0Q291bnQocnVuQXJy
YXkpOworCisgICAgICAgIC8vIEluaXRpYWxpemUgZ2x5cGggZW50cmllcworICAgICAgICBmb3Ig
KHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7ICsraW5kZXgpCisgICAgICAgICAg
ICBzZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBpbmRleCwgMCwgMCk7CisKKyAgICAgICAg
c3RhdGljIFZlY3RvcjxDR0dseXBoLCA1MTI+ICpnbHlwaFZlY3RvciA9IDA7CisgICAgICAgIHN0
YXRpYyBWZWN0b3I8Q0ZJbmRleCwgNTEyPiAqaW5kZXhWZWN0b3IgPSAwOworICAgICAgICBib29s
IGRvbmUgPSBmYWxzZTsKKyAgICAgICAgZm9yIChDRkluZGV4IHIgPSAwOyByIDwgcnVuQ291bnQg
JiYgIWRvbmUgOyByKyspIHsKKyAgICAgICAgICAgIC8vIENUTGluZSBjb3VsZCBtYXAgY2hhcmFj
dGVycyBvdmVyIG11bHRpcGxlIGZvbnRzIHVzaW5nIGl0cyBvd24gZm9udCBmYWxsYmFjayBsaXN0
LgorICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBwaWNrIHJ1bnMgdGhhdCB1c2UgdGhlIGV4YWN0
IGZvbnQgd2UgbmVlZCwgaS5lLiwgZm9udERhdGEtPnBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLgor
ICAgICAgICAgICAgQ1RSdW5SZWYgY3RSdW4gPSBzdGF0aWNfY2FzdDxDVFJ1blJlZj4oQ0ZBcnJh
eUdldFZhbHVlQXRJbmRleChydW5BcnJheSwgcikpOworICAgICAgICAgICAgQVNTRVJUKENGR2V0
VHlwZUlEKGN0UnVuKSA9PSBDVFJ1bkdldFR5cGVJRCgpKTsKKworICAgICAgICAgICAgQ0ZEaWN0
aW9uYXJ5UmVmIGF0dHJpYnV0ZXMgPSBDVFJ1bkdldEF0dHJpYnV0ZXMoY3RSdW4pOworICAgICAg
ICAgICAgQ1RGb250UmVmIHJ1bkZvbnQgPSBzdGF0aWNfY2FzdDxDVEZvbnRSZWY+KENGRGljdGlv
bmFyeUdldFZhbHVlKGF0dHJpYnV0ZXMsIGtDVEZvbnRBdHRyaWJ1dGVOYW1lKSk7CisgICAgICAg
ICAgICBSZXRhaW5QdHI8Q0dGb250UmVmPiBydW5DR0ZvbnQoQWRvcHRDRiwgQ1RGb250Q29weUdy
YXBoaWNzRm9udChydW5Gb250LCAwKSk7CisgICAgICAgICAgICBpZiAoQ0ZFcXVhbChmb250RGF0
YS0+cGxhdGZvcm1EYXRhKCkuY2dGb250KCksIHJ1bkNHRm9udC5nZXQoKSkpIHsgLy8gVXNlIENH
Rm9udCBoZXJlIGFzIENGRXF1YWwgZm9yIENURm9udCBjb3VudHMgYWxsIGF0dHJpYnV0ZXMgZm9y
IGZvbnQKKyAgICAgICAgICAgICAgICAvLyBUaGlzIHJ1biB1c2VzIHRoZSBmb250IHdlIHdhbnQu
IEV4dHJhY3QgZ2x5cGhzLgorICAgICAgICAgICAgICAgIENGSW5kZXggZ2x5cGhDb3VudCA9IENU
UnVuR2V0R2x5cGhDb3VudChjdFJ1bik7CisgICAgICAgICAgICAgICAgY29uc3QgQ0dHbHlwaCog
Z2x5cGhzID0gQ1RSdW5HZXRHbHlwaHNQdHIoY3RSdW4pOworICAgICAgICAgICAgICAgIGlmICgh
Z2x5cGhzKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghZ2x5cGhWZWN0b3IpCisgICAgICAg
ICAgICAgICAgICAgICAgICBnbHlwaFZlY3RvciA9IG5ldyBWZWN0b3I8Q0dHbHlwaCwgNTEyPjsK
KyAgICAgICAgICAgICAgICAgICAgZ2x5cGhWZWN0b3ItPnJlc2l6ZShnbHlwaENvdW50KTsKKyAg
ICAgICAgICAgICAgICAgICAgQ1RSdW5HZXRHbHlwaHMoY3RSdW4sIENGUmFuZ2VNYWtlKDAsIDAp
LCBnbHlwaFZlY3Rvci0+ZGF0YSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZ2x5cGhzID0gZ2x5
cGhWZWN0b3ItPmRhdGEoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29u
c3QgQ0ZJbmRleCogc3RyaW5nSW5kaWNlcyA9IENUUnVuR2V0U3RyaW5nSW5kaWNlc1B0cihjdFJ1
bik7CisgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmdJbmRpY2VzKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghaW5kZXhWZWN0b3IpCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleFZl
Y3RvciA9IG5ldyBWZWN0b3I8Q0ZJbmRleCwgNTEyPjsKKyAgICAgICAgICAgICAgICAgICAgaW5k
ZXhWZWN0b3ItPnJlc2l6ZShnbHlwaENvdW50KTsKKyAgICAgICAgICAgICAgICAgICAgQ1RSdW5H
ZXRTdHJpbmdJbmRpY2VzKGN0UnVuLCBDRlJhbmdlTWFrZSgwLCAwKSwgaW5kZXhWZWN0b3ItPmRh
dGEoKSk7CisgICAgICAgICAgICAgICAgICAgIHN0cmluZ0luZGljZXMgPSBpbmRleFZlY3Rvci0+
ZGF0YSgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBnbHlwaENvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KHN0cmluZ0luZGljZXNbaV0gPj0gbGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBk
b25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChnbHlwaHNbaV0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHNldEdseXBoRGF0YUZvckluZGV4KG9mZnNldCArIHN0cmluZ0luZGlj
ZXNbaV0sIGdseXBoc1tpXSwgZm9udERhdGEpOworICAgICAgICAgICAgICAgICAgICAgICAgaGF2
ZUdseXBocyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAjZWxzZQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4
dC5jcHAJKHJldmlzaW9uIDY5OTQ4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
U2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDE2ICs2MCwx
NiBAQCBDRkRpY3Rpb25hcnlSZWYgU2ltcGxlRm9udERhdGE6OmdldENGU3RyCiAgICAgaWYgKCEo
dHlwZXNldHRpbmdGZWF0dXJlcyAmIEtlcm5pbmcpKSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBm
bG9hdCBrZXJuaW5nQWRqdXN0bWVudFZhbHVlID0gMDsKICAgICAgICAgc3RhdGljIENGTnVtYmVy
UmVmIGtlcm5pbmdBZGp1c3RtZW50ID0gQ0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVs
dCwga0NGTnVtYmVyRmxvYXRUeXBlLCAma2VybmluZ0FkanVzdG1lbnRWYWx1ZSk7Ci0gICAgICAg
IHN0YXRpYyBjb25zdCB2b2lkKiBrZXlzV2l0aEtlcm5pbmdEaXNhYmxlZFtdID0geyBrQ1RGb250
QXR0cmlidXRlTmFtZSwga0NUS2VybkF0dHJpYnV0ZU5hbWUsIGtDVExpZ2F0dXJlQXR0cmlidXRl
TmFtZSB9OworICAgICAgICBzdGF0aWMgY29uc3Qgdm9pZCoga2V5c1dpdGhLZXJuaW5nRGlzYWJs
ZWRbXSA9IHsga0NURm9udEF0dHJpYnV0ZU5hbWUsIGtDVEtlcm5BdHRyaWJ1dGVOYW1lLCBrQ1RM
aWdhdHVyZUF0dHJpYnV0ZU5hbWUsIGtDVFZlcnRpY2FsRm9ybXNBdHRyaWJ1dGVOYW1lIH07CiAg
ICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlc1dpdGhLZXJuaW5nRGlzYWJsZWRbXSA9IHsgcGxhdGZv
cm1EYXRhKCkuY3RGb250KCksIGtlcm5pbmdBZGp1c3RtZW50LCBhbGxvd0xpZ2F0dXJlcwotICAg
ICAgICAgICAgPyBsaWdhdHVyZXNBbGxvd2VkIDogbGlnYXR1cmVzTm90QWxsb3dlZCB9OworICAg
ICAgICAgICAgPyBsaWdhdHVyZXNBbGxvd2VkIDogbGlnYXR1cmVzTm90QWxsb3dlZCwgKHBsYXRm
b3JtRGF0YSgpLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWwpID8ga0NGQm9vbGVhblRydWUgOiBr
Q0ZCb29sZWFuRmFsc2UgfTsKICAgICAgICAgYXR0cmlidXRlc0RpY3Rpb25hcnkuYWRvcHRDRihD
RkRpY3Rpb25hcnlDcmVhdGUoMCwga2V5c1dpdGhLZXJuaW5nRGlzYWJsZWQsIHZhbHVlc1dpdGhL
ZXJuaW5nRGlzYWJsZWQsCiAgICAgICAgICAgICBzaXplb2Yoa2V5c1dpdGhLZXJuaW5nRGlzYWJs
ZWQpIC8gc2l6ZW9mKCprZXlzV2l0aEtlcm5pbmdEaXNhYmxlZCksCiAgICAgICAgICAgICAma0NG
Q29weVN0cmluZ0RpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVl
Q2FsbEJhY2tzKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQnkgb21pdHRpbmcgdGhlIGtD
VEtlcm5BdHRyaWJ1dGVOYW1lIGF0dHJpYnV0ZSwgd2UgZ2V0IENvcmUgVGV4dCdzIHN0YW5kYXJk
IGtlcm5pbmcuCi0gICAgICAgIHN0YXRpYyBjb25zdCB2b2lkKiBrZXlzV2l0aEtlcm5pbmdFbmFi
bGVkW10gPSB7IGtDVEZvbnRBdHRyaWJ1dGVOYW1lLCBrQ1RMaWdhdHVyZUF0dHJpYnV0ZU5hbWUg
fTsKLSAgICAgICAgY29uc3Qgdm9pZCogdmFsdWVzV2l0aEtlcm5pbmdFbmFibGVkW10gPSB7IHBs
YXRmb3JtRGF0YSgpLmN0Rm9udCgpLCBhbGxvd0xpZ2F0dXJlcyA/IGxpZ2F0dXJlc0FsbG93ZWQg
OiBsaWdhdHVyZXNOb3RBbGxvd2VkIH07CisgICAgICAgIHN0YXRpYyBjb25zdCB2b2lkKiBrZXlz
V2l0aEtlcm5pbmdFbmFibGVkW10gPSB7IGtDVEZvbnRBdHRyaWJ1dGVOYW1lLCBrQ1RMaWdhdHVy
ZUF0dHJpYnV0ZU5hbWUsIGtDVFZlcnRpY2FsRm9ybXNBdHRyaWJ1dGVOYW1lIH07CisgICAgICAg
IGNvbnN0IHZvaWQqIHZhbHVlc1dpdGhLZXJuaW5nRW5hYmxlZFtdID0geyBwbGF0Zm9ybURhdGEo
KS5jdEZvbnQoKSwgYWxsb3dMaWdhdHVyZXMgPyBsaWdhdHVyZXNBbGxvd2VkIDogbGlnYXR1cmVz
Tm90QWxsb3dlZCwgKHBsYXRmb3JtRGF0YSgpLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWwpID8g
a0NGQm9vbGVhblRydWUgOiBrQ0ZCb29sZWFuRmFsc2UgfTsKICAgICAgICAgYXR0cmlidXRlc0Rp
Y3Rpb25hcnkuYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoMCwga2V5c1dpdGhLZXJuaW5nRW5h
YmxlZCwgdmFsdWVzV2l0aEtlcm5pbmdFbmFibGVkLAogICAgICAgICAgICAgc2l6ZW9mKGtleXNX
aXRoS2VybmluZ0VuYWJsZWQpIC8gc2l6ZW9mKCprZXlzV2l0aEtlcm5pbmdFbmFibGVkKSwKICAg
ICAgICAgICAgICZrQ0ZDb3B5U3RyaW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVE
aWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCShyZXZpc2lvbiA2OTk0OCkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MTcsMTEgKzQxNyw5IEBAIEZsb2F0UmVjdCBTaW1wbGVGb250RGF0YTo6
cGxhdGZvcm1Cb3VuZHMKIHsKICAgICBGbG9hdFJlY3QgYm91bmRpbmdCb3g7CiAjaWZuZGVmIEJV
SUxESU5HX09OX1RJR0VSCi0gICAgQ0dSZWN0IGJveDsKLSAgICBDR0ZvbnRHZXRHbHlwaEJCb3hl
cyhwbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgJmdseXBoLCAxLCAmYm94KTsKLSAgICBmbG9hdCBw
b2ludFNpemUgPSBwbGF0Zm9ybURhdGEoKS5tX3NpemU7Ci0gICAgQ0dGbG9hdCBzY2FsZSA9IHBv
aW50U2l6ZSAvIHVuaXRzUGVyRW0oKTsKLSAgICBib3VuZGluZ0JveCA9IENHUmVjdEFwcGx5QWZm
aW5lVHJhbnNmb3JtKGJveCwgQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUoc2NhbGUsIC1zY2Fs
ZSkpOworICAgIGJvdW5kaW5nQm94ID0gQ1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocyht
X3BsYXRmb3JtRGF0YS5jdEZvbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgbV9wbGF0Zm9ybURh
dGEub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbCA/IGtDVEZvbnRWZXJ0aWNhbE9yaWVudGF0aW9u
IDoga0NURm9udEhvcml6b250YWxPcmllbnRhdGlvbiwgJmdseXBoLCAwLCAxKTsKKyAgICBib3Vu
ZGluZ0JveC5zZXRZKC1ib3VuZGluZ0JveC5ib3R0b20oKSk7CiAjZWxzZQogICAgIC8vIEZJWE1F
OiBDdXN0b20gZm9udHMgZG9uJ3QgaGF2ZSBOU0ZvbnRzLCBzbyB0aGlzIGZ1bmN0aW9uIGRvZXNu
J3QgY29tcHV0ZSBjb3JyZWN0IGJvdW5kcyBmb3IgdGhlc2Ugb24gVGlnZXIuCiAgICAgaWYgKCFt
X3BsYXRmb3JtRGF0YS5mb250KCkpCkBAIC00MzcsMTQgKzQzNSwxOCBAQCBGbG9hdFJlY3QgU2lt
cGxlRm9udERhdGE6OnBsYXRmb3JtQm91bmRzCiAKIGZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0
Zm9ybVdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiB7Ci0gICAgTlNGb250KiBmb250
ID0gcGxhdGZvcm1EYXRhKCkuZm9udCgpOwotICAgIGZsb2F0IHBvaW50U2l6ZSA9IHBsYXRmb3Jt
RGF0YSgpLm1fc2l6ZTsKLSAgICBDR0FmZmluZVRyYW5zZm9ybSBtID0gQ0dBZmZpbmVUcmFuc2Zv
cm1NYWtlU2NhbGUocG9pbnRTaXplLCBwb2ludFNpemUpOwogICAgIENHU2l6ZSBhZHZhbmNlOwot
ICAgIGlmICghd2tHZXRHbHlwaFRyYW5zZm9ybWVkQWR2YW5jZXMocGxhdGZvcm1EYXRhKCkuY2dG
b250KCksIGZvbnQsICZtLCAmZ2x5cGgsICZhZHZhbmNlKSkgewotICAgICAgICBMT0dfRVJST1Io
IlVuYWJsZSB0byBjYWNoZSBnbHlwaCB3aWR0aHMgZm9yICVAICVmIiwgW2ZvbnQgZGlzcGxheU5h
bWVdLCBwb2ludFNpemUpOwotICAgICAgICBhZHZhbmNlLndpZHRoID0gMDsKLSAgICB9CisgICAg
aWYgKG1fcGxhdGZvcm1EYXRhLm9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbCkgeworICAgICAg
ICBOU0ZvbnQqIGZvbnQgPSBwbGF0Zm9ybURhdGEoKS5mb250KCk7CisgICAgICAgIGZsb2F0IHBv
aW50U2l6ZSA9IHBsYXRmb3JtRGF0YSgpLm1fc2l6ZTsKKyAgICAgICAgQ0dBZmZpbmVUcmFuc2Zv
cm0gbSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVNjYWxlKHBvaW50U2l6ZSwgcG9pbnRTaXplKTsK
KyAgICAgICAgaWYgKCF3a0dldEdseXBoVHJhbnNmb3JtZWRBZHZhbmNlcyhwbGF0Zm9ybURhdGEo
KS5jZ0ZvbnQoKSwgZm9udCwgJm0sICZnbHlwaCwgJmFkdmFuY2UpKSB7CisgICAgICAgICAgICBM
T0dfRVJST1IoIlVuYWJsZSB0byBjYWNoZSBnbHlwaCB3aWR0aHMgZm9yICVAICVmIiwgW2ZvbnQg
ZGlzcGxheU5hbWVdLCBwb2ludFNpemUpOworICAgICAgICAgICAgYWR2YW5jZS53aWR0aCA9IDA7
CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgQ1RGb250R2V0QWR2YW5jZXNGb3JHbHlw
aHMobV9wbGF0Zm9ybURhdGEuY3RGb250KCksIGtDVEZvbnRWZXJ0aWNhbE9yaWVudGF0aW9uLCAm
Z2x5cGgsICZhZHZhbmNlLCAxKTsKKwogICAgIHJldHVybiBhZHZhbmNlLndpZHRoICsgbV9zeW50
aGV0aWNCb2xkT2Zmc2V0OwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNjk5NDgpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAko
d29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsNyBAQAogI2lmbmRlZiBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhX2gKICNkZWZpbmUgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAKKyNpbmNsdWRlICJG
b250T3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC0zNyw3
ICszOCw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKICAgICAv
LyBmb3IgdXNlIHdpdGggUUZvbnREYXRhYmFzZTo6YWRkQXBwbGljYXRpb25Gb250L3JlbW92ZUFw
cGxpY2F0aW9uRm9udAogICAgIGludCBtX2hhbmRsZTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEg
Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJl
bmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKKyAgICBGb250UGxhdGZvcm1EYXRh
IGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRP
cmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVy
aW5nTW9kZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcm
KTsKIH07CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGFRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUXQuY3BwCShyZXZpc2lvbiA2OTk0OCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YVF0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9u
dEN1c3RvbVBsYXRmCiAgICAgUUZvbnREYXRhYmFzZTo6cmVtb3ZlQXBwbGljYXRpb25Gb250KG1f
aGFuZGxlKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpm
b250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVu
ZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9u
dFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVu
dGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICBRRm9udCBmb250OwogICAgIGZvbnQu
c2V0RmFtaWx5KFFGb250RGF0YWJhc2U6OmFwcGxpY2F0aW9uRm9udEZhbWlsaWVzKG1faGFuZGxl
KVswXSk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCShyZXZpc2lvbiA2OTk0OCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9u
dEN1c3RvbVBsYXRmCiAjZW5kaWYKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxh
dGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBGb250UmVuZGVyaW5nTW9kZSBtb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wg
aXRhbGljLCBGb250T3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlIG1vZGUpCiB7CiAjaWYg
T1MoV0lORE9XUykKICAgICBBU1NFUlQobV9mb250UmVmZXJlbmNlKTsKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuaAkocmV2aXNpb24gNjk5NDgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBA
CiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxh
dGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnRPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgIkZv
bnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KQEAgLTYyLDcgKzYzLDcgQEAgc3RydWN0IEZvbnRDdXN0b21QbGF0
Zm9ybURhdGEgOiBOb25jb3B5YQogCiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKIAot
ICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xk
LCBib29sIGl0YWxpYywKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50
IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250
YWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbnRSZW5kZXJpbmdN
b2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zv
cm1hdChjb25zdCBTdHJpbmcmKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCShyZXZpc2lvbiA2OTk0
OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGE6On5Gb250Q3VzdG9tUGxhdGYKICAgICB9CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xk
LCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0
Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6
ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2RlKQogewogICAgIEFTU0VSVChtX2ZvbnRSZWZlcmVuY2UpOwogICAg
IEFTU0VSVChUMmVtYmVkTGlicmFyeSgpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5
OTQ4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaWZuZGVmIEZvbnRDdXN0
b21QbGF0Zm9ybURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2lu
Y2x1ZGUgIkZvbnRPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpA
QCAtNDIsNyArNDMsNyBAQCBzdHJ1Y3QgRm9udEN1c3RvbVBsYXRmb3JtRGF0YSA6IE5vbmNvcHlh
CiAKICAgICB+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpOwogCi0gICAgRm9udFBsYXRmb3JtRGF0
YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250
UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgIEZvbnRQbGF0Zm9ybURh
dGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9u
dE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5k
ZXJpbmdNb2RlKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmlu
ZyYpOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhQ2Fpcm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5jcHAJKHJldmlzaW9uIDY5OTQ4KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNh
aXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiAgICBjYWlyb19mb250X2ZhY2VfZGVzdHJveShtX2Zv
bnRGYWNlKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpm
b250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKQorRm9udFBs
YXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBz
aXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24pCiB7CiAgICAgcmV0
dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9mb250RmFjZSwgc2l6ZSwgYm9sZCwgaXRhbGljKTsKIH0K
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGFDYWlyby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5oCShyZXZpc2lvbiA2OTk0OCkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURh
dGFDYWlyb19oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyb19oCiAKKyNpbmNs
dWRlICJGb250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCkBAIC0zOSw3ICs0MCw3IEBAIHN0cnVjdCBGb250Q3Vz
dG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKICAgICB9CiAgICAgfkZvbnRDdXN0b21QbGF0Zm9y
bURhdGEoKTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6
ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYyk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxh
dGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRp
b24gPSBIb3Jpem9udGFsKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0
IFN0cmluZyYpOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRD
dXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luY2UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY5OTQ4KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhOjp+Rm9udEN1c3RvbVBsYXRmCiAgICAgICAgIGdfY3VzdG9tRm9udENhY2hlLT51bnJlZ2lz
dGVyRm9udChtX25hbWUpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMs
IEZvbnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRD
dXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiwgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5n
TW9kZSkKIHsKICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2M7CiAgICAgZm9udERlc2Muc2V0
Q29tcHV0ZWRTaXplKHNpemUpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5j
ZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDY5OTQ4
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpZm5kZWYgRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogCisjaW5j
bHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgpAQCAtNDQsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgfkZvbnRD
dXN0b21QbGF0Zm9ybURhdGEoKTsKIAotICAgICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0
Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdN
b2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9u
dFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVu
dGF0aW9uIGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0g
Tm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAKICAgICAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3Jt
YXQoY29uc3QgU3RyaW5nJik7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24gNjk5NDgp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURh
dGE6On5Gb250Q3VzdG9tUGxhdGYKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wg
aXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBs
YXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0
YWxpYywgRm9udE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICByZXR1cm4g
Rm9udFBsYXRmb3JtRGF0YShzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJ
KHJldmlzaW9uIDY5OTQ4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpZm5k
ZWYgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURh
dGFfaAogCisjaW5jbHVkZSAiRm9udE9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRl
cmluZ01vZGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgpAQCAtMzcsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAg
ICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAKLSAgICAgICAg
Rm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJv
b2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAg
ICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9s
ZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJp
bmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAgICAgfTsKIAogICAgIEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEqIGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKik7
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA2OTk1MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEwLTEwLTE4ICB0YWthbm8gdGFrdW1pICA8
dGFrYW5vMUBhc2lhLmFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBOZWVkIHRvIHN3YXAgZ2x5cGhzIGZvciB2ZXJ0aWNhbCB3cml0aW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk3Mwor
CisgICAgICAgICogZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1tZXRyaWNz
LXRlc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9pbnRl
cm5hdGlvbmFsL3ZlcnRpY2FsLXRleHQtbWV0cmljcy10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisKIDIwMTAtMTAtMTggIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgc2tpcCBhbm90aGVyIG1hdGhtbCBmbGFreSB0ZXN0LCBjaGVj
ayBidWc6CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC92ZXJ0aWNh
bC10ZXh0LW1ldHJpY3MtdGVzdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
dGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRleHQtbWV0cmljcy10ZXN0Lmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC92ZXJ0aWNhbC10
ZXh0LW1ldHJpY3MtdGVzdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VO
IiAKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PXV0Zi04Ij4KKzx0aXRsZT5WZXJ0aWNhbCB0ZXh0IG1ldHJpY3MgdGVzdDwvdGl0bGU+
Cis8c2NyaXB0PgorZnVuY3Rpb24gcHJpbnQobWVzc2FnZSkKK3sKKyAgICB2YXIgcGFyYWdyYXBo
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICBwYXJhZ3JhcGguYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSkpOworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQocGFyYWdyYXBoKTsKK30KK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworCXZhciBwRWxlbXMgPSBkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3BhbiIpOworCWZvciAoIGkgPSAwIDsgaSA8IHBF
bGVtcy5sZW5ndGggOyArK2kgKQorCXsKKwkJdmFyIGVsZW0gPSBwRWxlbXNbaV07CisJCXByaW50
KCJ3aWR0aD0iICsgZWxlbS5vZmZzZXRXaWR0aCk7CisJfQorfQorPC9zY3JpcHQ+Cis8c3R5bGU+
Citib2R5IHsgCisJZm9udC1zaXplOiBsYXJnZTsKK30KKyNob3Jpem9udGFsX1RCIHsKKwktd2Vi
a2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10YjsKK30KKyNob3Jpem9udGFsX0JUIHsKKwkt
d2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC1idDsKK30KKyN2ZXJ0aWNhbF9STCB7CisJ
LXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOworfQorI3ZlcnRpY2FsX0xSIHsKKwkt
d2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPHNwYW4gaWQ9Imhvcml6b250YWxfVEIiPmFi44GC44CM
44CN44CCPC9zcGFuPjxicj4KKzxzcGFuIGlkPSJob3Jpem9udGFsX0JUIj5hYuOBguOAjOOAjeOA
gjwvc3Bhbj48YnI+Cis8c3BhbiBpZD0idmVydGljYWxfUkwiPmFi44GC44CM44CN44CCPC9zcGFu
Pjxicj4KKzxzcGFuIGlkPSJ2ZXJ0aWNhbF9MUiI+YWLjgYLjgIzjgI3jgII8L3NwYW4+PGJyPgor
PGJyPgorPGhyPgorPHA+PG9sIGlkPWNvbnNvbGU+PC9vbD48L3A+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwv
dmVydGljYWwtdGV4dC1tZXRyaWNzLXRlc3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC92ZXJ0aWNhbC10
ZXh0LW1ldHJpY3MtdGVzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1tZXRy
aWNzLXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACithYuOB
guOAjOOAjeOAggorYWLjgYLjgIzjgI3jgIIKK2Fi44GC44CM44CN44CCCithYuOBguOAjOOAjeOA
ggorCit3aWR0aD04OQord2lkdGg9ODkKK3dpZHRoPTEyNAord2lkdGg9MTI0CisK
</data>
<flag name="review"
          id="60976"
          type_id="1"
          status="-"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71131</attachid>
            <date>2010-10-18 22:11:13 -0700</date>
            <delta_ts>2010-10-20 09:06:23 -0700</delta_ts>
            <desc>Made some more changes pointed by mitz</desc>
            <filename>WK46973Patch_101019.txt</filename>
            <type>text/plain</type>
            <size>56670</size>
            <attacher name="Takumi Takano">takano</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDAyNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODggQEAKKzIwMTAtMTAtMTggIHRha2FubyB0YWt1bWkgIDx0YWthbm8xQGFzaWEu
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5lZWQgdG8gc3dhcCBnbHlwaHMgZm9yIHZlcnRpY2FsIHdyaXRpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2OTczCisKKyAgICAgICAgTWFk
ZSBjaGFuZ2VzIHRvIHBhc3MgdGhlIHdyaXRpbmctbW9kZSBvcmllbnRhdGlvbiBmbGFnIGluIFJl
bmRlclN0eWxlIGRvd24gdG8gRm9udFBsYXRmb3JtRGF0YSwKKyAgICAgICAgYW5kIHVsdGltYXRl
bHkgdG8gQ29yZVRleHQgQVBJcyBpbiBib3RoIGZvbnQgY29tcGxleCBwYXRoIGFuZCBmYXN0IHBh
dGguCisKKyAgICAgICAgVGVzdDogZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4
dC1tZXRyaWNzLXRlc3QuaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRlZCBwbGF0Zm9ybS9ncmFw
aGljcy9Gb250T3JpZW50YXRpb24uaC4KKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTb3VyY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTb3VyY2U6OmdldEZvbnREYXRhKTog
QWRkZWQgZm9udCBvcmllbnRhdGlvbiBwYXJhbWV0ZXIgdG8gU2ltcGxlRm9udERhdGEuCisgICAg
ICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6IFNldCBhcHByb3ByaWF0ZSBmb250IG9yaWVudGF0
aW9uIHRvIHRoZSBmb250IGRlc2NyaXB0aW9uCisgICAgICAgIHdoZW4gd3JpdGluZy1tb2RlIGlz
IGJlaW5nIHNwZWNpZmllZC4KKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkRm9udC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YSk6IE1h
ZGUgdG8gcGFzcyBmb250IG9yaWVudGF0aW9uIHRvIEZvbnRQbGF0Zm9ybURhdGEuCisgICAgICAg
ICogbG9hZGVyL0NhY2hlZEZvbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250
Q2FjaGUuY3BwOiBBZGRlZCBmb250IG9yaWVudGF0aW9uIHRvIEZvbnRQbGF0Zm9ybURhdGFDYWNo
ZUtleQorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5OjpGb250UGxh
dGZvcm1EYXRhQ2FjaGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YUNh
Y2hlS2V5OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVIYXNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmg6IEFkZGVkIGZvbnQg
b3JpZW50YXRpb24gc3VwcG9ydCB0byBGb250RGVzY3JpcHRpb24gY2xhc3MKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6Rm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnREZXNjcmlwdGlvbjo6b3JpZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dERlc2NyaXB0aW9uOjpzZXRPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVz
Y3JpcHRpb246Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRP
cmllbnRhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDogQ2hhbmdlZCB0byBwYXNzIGZvbnQgb3JpZW50YXRp
b24gdG8gZm9udFBsYXRmb3JtRGF0YSgpCisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxh
dGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6IENoYW5nZWQgdG8gcGFzcyBmb250IG9y
aWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGEuaDogQWRkZWQgZm9udCBvcmllbnRhdGlvbiBzdXBw
b3J0IHRvIEZvbnRQbGF0Zm9ybURhdGEgY2xhc3MKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0
Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRm
b3JtRGF0YTo6b3JpZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0
YTo6aGFzaCk6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpvcGVyYXRvcj09
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29j
b2EubW06IEFkZGVkIGZvbnQgb3JpZW50YXRpb24gc3VwcG9ydAorICAgICAgICAoV2ViQ29yZTo6
Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpG
b250UGxhdGZvcm1EYXRhOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRm
b3JtRGF0YTo6YWxsb3dzTGlnYXR1cmVzKTogRG9uJ3QgYWxsb3cgbGlnYXR1cmVzIHdoZW4gdGhl
IGZvbnQgaXMgdmVydGljYWwgb3JpZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpGb250UGxh
dGZvcm1EYXRhOjpkZXNjcmlwdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFQYW5nby5jcHA6IENoYW5nZWQgdG8gcGFzcyBmb250IG9y
aWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6IENoYW5nZWQgdG8gcGFz
cyBmb250IG9yaWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAoV2ViQ29y
ZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOiBDaGFuZ2Vk
IHRvIHBhc3MgZm9udCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tOiBBZGRlZCBmb250IG9yaWVu
dGF0aW9uIHBhcmFtZXRlciB3aGVuIGNyZWF0aW5nIEZvbnRQbGF0Zm9ybURhdGEgb2JqZWN0Lgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRGb250RGF0YUZvckNoYXJhY3RlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6
IEFkZGVkIGZvbnQgb3JpZW50YXRpb24gcGFyYW1ldGVyIHdoZW4gY3JlYXRpbmcgRm9udFBsYXRm
b3JtRGF0YSBvYmplY3QuCisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5oOiBDaGFuZ2VkIHRvIHBhc3MgZm9udCBvcmllbnRhdGlvbiBw
YXJhbWV0ZXIgdG8gZm9udFBsYXRmb3JtRGF0YSgpCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0dseXBoUGFnZVRyZWVOb2RlTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdseXBo
UGFnZTo6ZmlsbCk6IENoYW5nZWQgdG8gdXNlIENvcmVUZXh0IHRvIGV4dHJhY3QgZ2x5cGhzIHdo
ZW4gdGhlIGN1cnJlbnQgZm9udCBpcyB2ZXJ0aWNhbCBvcmllbnRhdGlvbi4KKyAgICAgICAgQ29y
ZVRleHQgYXV0b21hdGljYWxseSBzd2FwcyBnbHlwaHMgd2l0aCB2ZXJ0aWNhbCB2YXJpYW50cyB3
aGVuIHRoZSBmb250IG9yaWVudGF0aW9uIGlzIHZlcnRpY2FsLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcDogQWRkZWQgdmVydGljYWwg
Zm9ybSBhdHRyaWJ1dGUgdG8gdGhlIGF0dHJpYnV0ZSBkaWN0aW9uYXJ5IGZvciBhIENUTGluZS4K
KyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpnZXRDRlN0cmluZ0F0dHJpYnV0ZXMp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBo
KTogQ2hhbmdlZCB0byB1c2UgQ29yZVRleHQgKGZyb20gQ0cpIHRvIHN1cHBvcnQgdmVydGljYWwg
bWV0cmljcy4KKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRo
Rm9yR2x5cGgpOiBNYWRlIHRvIHVzZSBDb3JlVGV4dCwgaW5zdGVhZCBvZiB3a0dldEdseXBoVHJh
bnNmb3JtZWRBZHZhbmNlcywKKyAgICAgICAgdG8gZ2V0IHZlcnRpY2FsIG1ldHJpY3Mgd2hlbiB0
aGUgZm9udCBvcmllbnRhdGlvbiBpcyB2ZXJ0aWNhbC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9xdC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6IENoYW5nZWQgdG8gcGFzcyBmb250IG9y
aWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFRdC5jcHA6IENoYW5nZWQgdG8gcGFzcyBmb250
IG9yaWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAoV2ViQ29yZTo6Rm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDogQ2hhbmdlZCB0byBw
YXNzIGZvbnQgb3JpZW50YXRpb24gdG8gZm9udFBsYXRmb3JtRGF0YSgpCisgICAgICAgIChXZWJD
b3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDogQ2hhbmdl
ZCB0byBwYXNzIGZvbnQgb3JpZW50YXRpb24gdG8gZm9udFBsYXRmb3JtRGF0YSgpCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOiBDaGFu
Z2VkIHRvIHBhc3MgZm9udCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6
IENoYW5nZWQgdG8gcGFzcyBmb250IG9yaWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fp
cm8uY3BwOiBDaGFuZ2VkIHRvIHBhc3MgZm9udCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1E
YXRhKCkKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0
Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhQ2Fpcm8uaDogQ2hhbmdlZCB0byBwYXNzIGZvbnQgb3JpZW50YXRpb24gdG8gZm9u
dFBsYXRmb3JtRGF0YSgpCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5jcHA6IENoYW5nZWQgdG8gcGFzcyBmb250IG9yaWVudGF0aW9uIHRv
IGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3Jt
RGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
Y2UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOiBDaGFuZ2VkIHRvIHBhc3MgZm9udCBvcmllbnRh
dGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDogQ2hhbmdlZCB0byBwYXNzIGZvbnQgb3JpZW50
YXRpb24gdG8gZm9udFBsYXRmb3JtRGF0YSgpCisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6IENoYW5nZWQgdG8gcGFzcyBmb250IG9y
aWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorCiAyMDEwLTEwLTE4ICBPbGl2ZXIgSHVu
dCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4K
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgkocmV2aXNpb24gNzAwMjQpCisrKyBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3
b3JraW5nIGNvcHkpCkBAIC0zODIsNyArMzgyLDcgQEAgX19aTjdXZWJDb3JlMTZEZXZpY2VNb3Rp
b25EYXRhMTJBY2NlbGVyYQogX19aTjdXZWJDb3JlMTZEZXZpY2VNb3Rpb25EYXRhMTJSb3RhdGlv
blJhdGU2Y3JlYXRlRWJkYmRiZAogX19aTjdXZWJDb3JlMTZEZXZpY2VNb3Rpb25EYXRhNmNyZWF0
ZUVOM1dURjEwUGFzc1JlZlB0cklOUzBfMTJBY2NlbGVyYXRpb25FRUVTNF9OUzJfSU5TMF8xMlJv
dGF0aW9uUmF0ZUVFRWJkCiBfX1pON1dlYkNvcmUxNkZvbnRGYWxsYmFja0xpc3QxNXJlbGVhc2VG
b250RGF0YUV2Ci1fX1pON1dlYkNvcmUxNkZvbnRQbGF0Zm9ybURhdGFDMUVQNk5TRm9udGJiCitf
X1pON1dlYkNvcmUxNkZvbnRQbGF0Zm9ybURhdGFDMUVQNk5TRm9udGJiTlNfMTVGb250T3JpZW50
YXRpb25FCiBfX1pON1dlYkNvcmUxNkZvbnRQbGF0Zm9ybURhdGFEMUV2CiBfX1pON1dlYkNvcmUx
NkhUTUxJbnB1dEVsZW1lbnQxM3NldEF1dG9maWxsZWRFYgogX19aTjdXZWJDb3JlMTZMZWdhY3lX
ZWJBcmNoaXZlMTljcmVhdGVGcm9tU2VsZWN0aW9uRVBOU181RnJhbWVFCkluZGV4OiBXZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNzAwMjQpCisrKyBX
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpA
QCAtNTUxNCw2ICs1NTE0LDcgQEAKIAkJRjVDMDQxRTcwRkZDQTk2RDAwODM5RDRBIC8qIEpTSFRN
TERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjVDMDQxRTIwRkZDQTk2RDAwODM5RDRBIC8qIEpTSFRNTERhdGFMaXN0RWxlbWVu
dC5oICovOyB9OwogCQlGNUQzQTU3QzEwNkI4M0IzMDA1NDUyOTcgLyogRGF0ZUNvbXBvbmVudHMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVEM0E1
N0ExMDZCODNCMzAwNTQ1Mjk3IC8qIERhdGVDb21wb25lbnRzLmNwcCAqLzsgfTsKIAkJRjVEM0E1
N0QxMDZCODNCMzAwNTQ1Mjk3IC8qIERhdGVDb21wb25lbnRzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUQzQTU3QjEwNkI4M0IzMDA1NDUyOTcgLyog
RGF0ZUNvbXBvbmVudHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQlGN0EwMzRDNDEyNkJGNkJFMDA3REMxOUUgLyogRm9udE9yaWVudGF0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGN0EwMzRDMzEy
NkJGNkJFMDA3REMxOUUgLyogRm9udE9yaWVudGF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjkxNkM0OEQwREI1MTBGODAwNzZDRDgzIC8q
IEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5MTZDNDhCMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgKi87IH07CiAJCUY5MTZDNDhFMERCNTEwRjgw
MDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjkxNkM0OEMwREI1MTBGODAwNzZDRDgz
IC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi87IH07CiAJCUY5OEZGRjQ0MTFB
MjY3NjIwMEY1NDhFOCAvKiBDU1NPTVV0aWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5OEZGRjQyMTFBMjY3NjIwMEY1NDhFOCAvKiBDU1NPTVV0
aWxzLmNwcCAqLzsgfTsKQEAgLTExNTUzLDYgKzExNTU0LDcgQEAKIAkJRjVDMjg2OTUwMjg0NkRD
RDAxODYzNUNBIC8qIENvY29hLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ29jb2EuZnJh
bWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29jb2EuZnJhbWV3b3Jr
OyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQlGNUQzQTU3QTEwNkI4M0IzMDA1NDUy
OTcgLyogRGF0ZUNvbXBvbmVudHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRGF0ZUNvbXBvbmVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NUQzQTU3QjEwNkI4M0IzMDA1NDUyOTcgLyogRGF0ZUNvbXBvbmVudHMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0ZUNvbXBvbmVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjdBMDM0QzMxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRhdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250T3JpZW50YXRpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjgyMTYyOTkwMjlGNEZCNTAxMDAwMTMxIC8qIEph
dmFTY3JpcHRDb3JlLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBwYXRoID0gSmF2YVNjcmlwdENvcmUu
ZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlGOTE2QzQ4
QjBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjkxNkM0OEMwREI1
MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY0NjgsNiArMTY0NzAsNyBAQAogCQkJ
CUIyQzNEQTU4MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250RmFtaWx5LmNwcCAqLywKIAkJCQlCMkMz
REE1OTBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udEZhbWlseS5oICovLAogCQkJCTcyNjI2RTAxMEVG
MDIyRkUwMEEwN0UyMCAvKiBGb250RmFzdFBhdGguY3BwICovLAorCQkJCUY3QTAzNEMzMTI2QkY2
QkUwMDdEQzE5RSAvKiBGb250T3JpZW50YXRpb24uaCAqLywKIAkJCQkzN0FDQ0U0MTBEQTI5ODBG
MDA4OUU2MDIgLyogRm9udFJlbmRlcmluZ01vZGUuaCAqLywKIAkJCQlCMkMzREE1QTBEMDA2Q0Q2
MDBFRjZGMjYgLyogRm9udFNlbGVjdG9yLmggKi8sCiAJCQkJMzcyMDIxOTgxMDYyMTNDNjAwRjI1
QzRCIC8qIEZvbnRTbW9vdGhpbmdNb2RlLmggKi8sCkBAIC0yMTA4Miw2ICsyMTA4NSw3IEBACiAJ
CQkJOTdERDREODcwRkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTRGQTNCOTBCMTI1Q0QxMjIwMDMwMEJBRCAvKiBJbnNwZWN0b3JTdGF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTcyOEMzMTQxMjY4RTQzOTAwNDFFODlCIC8qIE1hcmt1cEFjY3VtdWxh
dG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQlGN0EwMzRDNDEyNkJGNkJFMDA3REMxOUUgLyogRm9u
dE9yaWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIxMTQxLDYgKzIxMTQ1LDcgQEAKIAkJ
CWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4NDMw
ODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVj
dCAiV2ViQ29yZSIgKi87CiAJCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjQiOwor
CQkJZGV2ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOwogCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5n
cyA9IDE7CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJRW5nbGlzaCwKSW5kZXg6IFdlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NG
b250RmFjZVNvdXJjZS5jcHAJKHJldmlzaW9uIDcwMDI0KQorKysgV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2VTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjIsNyArMTYyLDcgQEAgU2ltcGxl
Rm9udERhdGEqIENTU0ZvbnRGYWNlU291cmNlOjpnZXRGbwogICAgICAgICAgICAgICAgIGlmICgh
bV9mb250LT5lbnN1cmVDdXN0b21Gb250RGF0YSgpKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gMDsKIAotICAgICAgICAgICAgICAgIGZvbnREYXRhLnNldChuZXcgU2ltcGxlRm9udERhdGEo
bV9mb250LT5wbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmb250RGVzY3JpcHRpb24uY29tcHV0
ZWRQaXhlbFNpemUoKSwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RGVzY3Jp
cHRpb24ucmVuZGVyaW5nTW9kZSgpKSwgdHJ1ZSwgZmFsc2UpKTsKKyAgICAgICAgICAgICAgICBm
b250RGF0YS5zZXQobmV3IFNpbXBsZUZvbnREYXRhKG1fZm9udC0+cGxhdGZvcm1EYXRhRnJvbUN1
c3RvbURhdGEoZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCksIHN5bnRoZXRpY0Jv
bGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udERlc2NyaXB0aW9uLm9yaWVudGF0aW9uKCksIGZvbnRE
ZXNjcmlwdGlvbi5yZW5kZXJpbmdNb2RlKCkpLCB0cnVlLCBmYWxzZSkpOwogICAgICAgICAgICAg
fQogICAgICAgICB9IGVsc2UgewogI2lmIEVOQUJMRShTVkdfRk9OVFMpCkluZGV4OiBXZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gNzAwMjQpCisrKyBXZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU3MSwxMCArNTU3MSwxNCBAQCB2b2lk
IENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAjZW5kaWYgCiAKICAgICAvLyBD
U1MgVGV4dCBMYXlvdXQgTW9kdWxlIExldmVsIDM6IFZlcnRpY2FsIHdyaXRpbmcgc3VwcG9ydAot
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRXcml0aW5nTW9kZToKKyAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0V3JpdGluZ01vZGU6IHsKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJ
QUxfQU5EX1BSSU1JVElWRSh3cml0aW5nTW9kZSwgV3JpdGluZ01vZGUpCisgICAgICAgIEZvbnRE
ZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24gPSBtX3N0eWxlLT5mb250RGVzY3JpcHRpb24oKTsK
KyAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldE9yaWVudGF0aW9uKG1fc3R5bGUtPmlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsIDogVmVydGljYWwpOworICAgICAgICBpZiAo
bV9zdHlsZS0+c2V0Rm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbikpCisgICAgICAgICAg
ICBtX2ZvbnREaXJ0eSA9IHRydWU7CiAgICAgICAgIHJldHVybjsKLQorICAgIH0KICNpZiBFTkFC
TEUoU1ZHKQogICAgIGRlZmF1bHQ6CiAgICAgICAgIC8vIFRyeSB0aGUgU1ZHIHByb3BlcnRpZXMK
SW5kZXg6IFdlYkNvcmUvbG9hZGVyL0NhY2hlZEZvbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvbG9hZGVyL0NhY2hlZEZvbnQuY3BwCShyZXZpc2lvbiA3MDAyNCkKKysrIFdlYkNvcmUvbG9h
ZGVyL0NhY2hlZEZvbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNyArMTE3LDcgQEAgYm9v
bCBDYWNoZWRGb250OjplbnN1cmVDdXN0b21Gb250RGF0YSgpCiAgICAgcmV0dXJuIG1fZm9udERh
dGE7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgQ2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1
c3RvbURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmlu
Z01vZGUgcmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgQ2FjaGVkRm9udDo6cGxhdGZv
cm1EYXRhRnJvbUN1c3RvbURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywg
Rm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdN
b2RlKQogewogI2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgaWYgKG1fZXh0ZXJuYWxTVkdEb2N1
bWVudCkKQEAgLTEyNSw3ICsxMjUsNyBAQCBGb250UGxhdGZvcm1EYXRhIENhY2hlZEZvbnQ6OnBs
YXRmb3JtRGF0CiAjZW5kaWYKICNpZmRlZiBTVE9SRV9GT05UX0NVU1RPTV9QTEFURk9STV9EQVRB
CiAgICAgQVNTRVJUKG1fZm9udERhdGEpOwotICAgIHJldHVybiBtX2ZvbnREYXRhLT5mb250UGxh
dGZvcm1EYXRhKHN0YXRpY19jYXN0PGludD4oc2l6ZSksIGJvbGQsIGl0YWxpYywgcmVuZGVyaW5n
TW9kZSk7CisgICAgcmV0dXJuIG1fZm9udERhdGEtPmZvbnRQbGF0Zm9ybURhdGEoc3RhdGljX2Nh
c3Q8aW50PihzaXplKSwgYm9sZCwgaXRhbGljLCBvcmllbnRhdGlvbiwgcmVuZGVyaW5nTW9kZSk7
CiAjZWxzZQogICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKCk7CiAjZW5kaWYKSW5kZXg6IFdl
YkNvcmUvbG9hZGVyL0NhY2hlZEZvbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9D
YWNoZWRGb250LmgJKHJldmlzaW9uIDcwMDI0KQorKysgV2ViQ29yZS9sb2FkZXIvQ2FjaGVkRm9u
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIENhY2hlZEZvbnRf
aAogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKKyNpbmNsdWRlICJGb250T3JpZW50YXRp
b24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIApAQCAtNjIsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBiZWdpbkxvYWRJZk5l
ZWRlZChDYWNoZWRSZXNvdXJjZUxvYWRlciogZGwpOwogCiAgICAgYm9vbCBlbnN1cmVDdXN0b21G
b250RGF0YSgpOwotICAgIEZvbnRQbGF0Zm9ybURhdGEgcGxhdGZvcm1EYXRhRnJvbUN1c3RvbURh
dGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUg
PSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0
YUZyb21DdXN0b21EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRP
cmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVy
aW5nTW9kZSk7CiAKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQogICAgIGJvb2wgaXNTVkdGb250KCkg
Y29uc3QgeyByZXR1cm4gbV9pc1NWR0ZvbnQ7IH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udENhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHAJKHJldmlzaW9uIDcwMDI0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSwxMyArNTUsMTQgQEAg
Rm9udENhY2hlOjpGb250Q2FjaGUoKQogCiBzdHJ1Y3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5
IDogRmFzdEFsbG9jQmFzZSB7CiAgICAgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5KGNvbnN0IEF0
b21pY1N0cmluZyYgZmFtaWx5ID0gQXRvbWljU3RyaW5nKCksIHVuc2lnbmVkIHNpemUgPSAwLCB1
bnNpZ25lZCB3ZWlnaHQgPSAwLCBib29sIGl0YWxpYyA9IGZhbHNlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBib29sIGlzUHJpbnRlckZvbnQgPSBmYWxzZSwgRm9udFJlbmRlcmluZ01v
ZGUgcmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJvb2wgaXNQcmludGVyRm9udCA9IGZhbHNlLCBGb250UmVuZGVyaW5nTW9k
ZSByZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSwgRm9udE9yaWVudGF0aW9uIG9y
aWVudGF0aW9uID0gSG9yaXpvbnRhbCkKICAgICAgICAgOiBtX3NpemUoc2l6ZSkKICAgICAgICAg
LCBtX3dlaWdodCh3ZWlnaHQpCiAgICAgICAgICwgbV9mYW1pbHkoZmFtaWx5KQogICAgICAgICAs
IG1faXRhbGljKGl0YWxpYykKICAgICAgICAgLCBtX3ByaW50ZXJGb250KGlzUHJpbnRlckZvbnQp
CiAgICAgICAgICwgbV9yZW5kZXJpbmdNb2RlKHJlbmRlcmluZ01vZGUpCisgICAgICAgICwgbV9v
cmllbnRhdGlvbihvcmllbnRhdGlvbikKICAgICB7CiAgICAgfQogCkBAIC03Miw3ICs3Myw3IEBA
IHN0cnVjdCBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkgOiBGYXN0QWwKICAgICB7CiAgICAgICAg
IHJldHVybiBlcXVhbElnbm9yaW5nQ2FzZShtX2ZhbWlseSwgb3RoZXIubV9mYW1pbHkpICYmIG1f
c2l6ZSA9PSBvdGhlci5tX3NpemUgJiYgCiAgICAgICAgICAgICAgICBtX3dlaWdodCA9PSBvdGhl
ci5tX3dlaWdodCAmJiBtX2l0YWxpYyA9PSBvdGhlci5tX2l0YWxpYyAmJiBtX3ByaW50ZXJGb250
ID09IG90aGVyLm1fcHJpbnRlckZvbnQgJiYKLSAgICAgICAgICAgICAgIG1fcmVuZGVyaW5nTW9k
ZSA9PSBvdGhlci5tX3JlbmRlcmluZ01vZGU7CisgICAgICAgICAgICAgICBtX3JlbmRlcmluZ01v
ZGUgPT0gb3RoZXIubV9yZW5kZXJpbmdNb2RlICYmIG1fb3JpZW50YXRpb24gPT0gb3RoZXIubV9v
cmllbnRhdGlvbjsKICAgICB9CiAKICAgICB1bnNpZ25lZCBtX3NpemU7CkBAIC04MSw2ICs4Miw3
IEBAIHN0cnVjdCBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkgOiBGYXN0QWwKICAgICBib29sIG1f
aXRhbGljOwogICAgIGJvb2wgbV9wcmludGVyRm9udDsKICAgICBGb250UmVuZGVyaW5nTW9kZSBt
X3JlbmRlcmluZ01vZGU7CisgICAgRm9udE9yaWVudGF0aW9uIG1fb3JpZW50YXRpb247CiAKIHBy
aXZhdGU6CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2hUYWJsZURlbGV0ZWRTaXplKCkgeyByZXR1
cm4gMHhGRkZGRkZGRlU7IH0KQEAgLTkyLDcgKzk0LDcgQEAgaW5saW5lIHVuc2lnbmVkIGNvbXB1
dGVIYXNoKGNvbnN0IEZvbnRQbAogICAgICAgICBDYXNlRm9sZGluZ0hhc2g6Omhhc2goZm9udEtl
eS5tX2ZhbWlseSksCiAgICAgICAgIGZvbnRLZXkubV9zaXplLAogICAgICAgICBmb250S2V5Lm1f
d2VpZ2h0LAotICAgICAgICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5tX2l0YWxpYykg
PDwgMiB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5Lm1fcHJpbnRlckZvbnQpIDw8IDEg
fCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5tX3JlbmRlcmluZ01vZGUpCisgICAgICAg
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihmb250S2V5Lm1fb3JpZW50YXRpb24pIDw8IDMgfCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5tX2l0YWxpYykgPDwgMiB8IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihmb250S2V5Lm1fcHJpbnRlckZvbnQpIDw8IDEgfCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oZm9udEtleS5tX3JlbmRlcmluZ01vZGUpCiAgICAgfTsKICAgICByZXR1cm4gU3RyaW5nSW1w
bDo6Y29tcHV0ZUhhc2gocmVpbnRlcnByZXRfY2FzdDxVQ2hhcio+KGhhc2hDb2RlcyksIHNpemVv
ZihoYXNoQ29kZXMpIC8gc2l6ZW9mKFVDaGFyKSk7CiB9CkBAIC0xOTEsNyArMTkzLDcgQEAgRm9u
dFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpnZXRDYWNoZWRGbwogICAgIH0KIAogICAgIEZvbnRQ
bGF0Zm9ybURhdGFDYWNoZUtleSBrZXkoZmFtaWx5TmFtZSwgZm9udERlc2NyaXB0aW9uLmNvbXB1
dGVkUGl4ZWxTaXplKCksIGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSwgZm9udERlc2NyaXB0aW9u
Lml0YWxpYygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udERlc2NyaXB0
aW9uLnVzZVByaW50ZXJGb250KCksIGZvbnREZXNjcmlwdGlvbi5yZW5kZXJpbmdNb2RlKCkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnVzZVByaW50
ZXJGb250KCksIGZvbnREZXNjcmlwdGlvbi5yZW5kZXJpbmdNb2RlKCksIGZvbnREZXNjcmlwdGlv
bi5vcmllbnRhdGlvbigpKTsKICAgICBGb250UGxhdGZvcm1EYXRhKiByZXN1bHQgPSAwOwogICAg
IGJvb2wgZm91bmRSZXN1bHQ7CiAgICAgRm9udFBsYXRmb3JtRGF0YUNhY2hlOjppdGVyYXRvciBp
dCA9IGdGb250UGxhdGZvcm1EYXRhQ2FjaGUtPmZpbmQoa2V5KTsKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAkocmV2aXNpb24gNzAwMjQpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNiw2ICsyNiw3IEBACiAjZGVmaW5lIEZvbnREZXNjcmlwdGlvbl9oCiAKICNpbmNsdWRl
ICJGb250RmFtaWx5LmgiCisjaW5jbHVkZSAiRm9udE9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAi
Rm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlICJGb250U21vb3RoaW5nTW9kZS5oIgogI2lu
Y2x1ZGUgIkZvbnRUcmFpdHNNYXNrLmgiCkBAIC01NSw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICBG
b250RGVzY3JpcHRpb24oKQogICAgICAgICA6IG1fc3BlY2lmaWVkU2l6ZSgwKQogICAgICAgICAs
IG1fY29tcHV0ZWRTaXplKDApCisgICAgICAgICwgbV9vcmllbnRhdGlvbihIb3Jpem9udGFsKQog
ICAgICAgICAsIG1faXRhbGljKGZhbHNlKQogICAgICAgICAsIG1fc21hbGxDYXBzKGZhbHNlKQog
ICAgICAgICAsIG1faXNBYnNvbHV0ZVNpemUoZmFsc2UpCkBAIC05NCw2ICs5Niw3IEBAIHB1Ymxp
YzoKIAogICAgIEZvbnRUcmFpdHNNYXNrIHRyYWl0c01hc2soKSBjb25zdDsKICAgICBib29sIGlz
U3BlY2lmaWVkRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTcGVjaWZpZWRGb250OyB9CisgICAg
Rm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRhdGlv
bjsgfQogCiAgICAgdm9pZCBzZXRGYW1pbHkoY29uc3QgRm9udEZhbWlseSYgZmFtaWx5KSB7IG1f
ZmFtaWx5TGlzdCA9IGZhbWlseTsgfQogICAgIHZvaWQgc2V0Q29tcHV0ZWRTaXplKGZsb2F0IHMp
IHsgbV9jb21wdXRlZFNpemUgPSBzOyB9CkBAIC0xMTMsNiArMTE2LDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0Rm9udFNtb290aGluZyhGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmcpIHsgbV9m
b250U21vb3RoaW5nID0gc21vb3RoaW5nOyB9CiAgICAgdm9pZCBzZXRUZXh0UmVuZGVyaW5nTW9k
ZShUZXh0UmVuZGVyaW5nTW9kZSByZW5kZXJpbmcpIHsgbV90ZXh0UmVuZGVyaW5nID0gcmVuZGVy
aW5nOyB9CiAgICAgdm9pZCBzZXRJc1NwZWNpZmllZEZvbnQoYm9vbCBpc1NwZWNpZmllZEZvbnQp
IHsgbV9pc1NwZWNpZmllZEZvbnQgPSBpc1NwZWNpZmllZEZvbnQ7IH0KKyAgICB2b2lkIHNldE9y
aWVudGF0aW9uKEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgeyBtX29yaWVudGF0aW9uID0g
b3JpZW50YXRpb247IH0KIAogcHJpdmF0ZToKICAgICBGb250RmFtaWx5IG1fZmFtaWx5TGlzdDsg
Ly8gVGhlIGxpc3Qgb2YgZm9udCBmYW1pbGllcyB0byBiZSB1c2VkLgpAQCAtMTIxLDYgKzEyNSw4
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdW5kaW5nLCBt
aW5pbXVtIGZvbnQgc2l6ZXMsIGFuZCB6b29taW5nLgogICAgIGZsb2F0IG1fY29tcHV0ZWRTaXpl
OyAgICAvLyBDb21wdXRlZCBzaXplIGFkanVzdGVkIGZvciB0aGUgbWluaW11bSBmb250IHNpemUg
YW5kIHRoZSB6b29tIGZhY3Rvci4gIAogCisgICAgRm9udE9yaWVudGF0aW9uIG1fb3JpZW50YXRp
b247CisKICAgICBib29sIG1faXRhbGljIDogMTsKICAgICBib29sIG1fc21hbGxDYXBzIDogMTsK
ICAgICBib29sIG1faXNBYnNvbHV0ZVNpemUgOiAxOyAgIC8vIFdoZXRoZXIgb3Igbm90IENTUyBz
cGVjaWZpZWQgYW4gZXhwbGljaXQgc2l6ZQpAQCAtMTU1LDcgKzE2MSw4IEBAIGlubGluZSBib29s
IEZvbnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9PSgKICAgICAgICAgJiYgbV9rZXl3b3JkU2l6ZSA9
PSBvdGhlci5tX2tleXdvcmRTaXplCiAgICAgICAgICYmIG1fZm9udFNtb290aGluZyA9PSBvdGhl
ci5tX2ZvbnRTbW9vdGhpbmcKICAgICAgICAgJiYgbV90ZXh0UmVuZGVyaW5nID09IG90aGVyLm1f
dGV4dFJlbmRlcmluZwotICAgICAgICAmJiBtX2lzU3BlY2lmaWVkRm9udCA9PSBvdGhlci5tX2lz
U3BlY2lmaWVkRm9udDsKKyAgICAgICAgJiYgbV9pc1NwZWNpZmllZEZvbnQgPT0gb3RoZXIubV9p
c1NwZWNpZmllZEZvbnQKKyAgICAgICAgJiYgbV9vcmllbnRhdGlvbiA9PSBvdGhlci5tX29yaWVu
dGF0aW9uOwogfQogCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRPcmll
bnRhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udE9y
aWVudGF0aW9uLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRPcmllbnRhdGlvbi5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBGb250T3JpZW50YXRpb25faAorI2RlZmluZSBGb250T3JpZW50YXRpb25faAorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gRm9udE9yaWVudGF0aW9uIHsgSG9yaXpvbnRhbCwg
VmVydGljYWwgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRm9udE9y
aWVudGF0aW9uX2gKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24gNzAwMjQpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURh
dGE6On5Gb250Q3VzdG9tUGxhdGYKICAgICBjYWlyb19mb250X2ZhY2VfZGVzdHJveShtX2ZvbnRG
YWNlKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250
UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVy
aW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBs
YXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0
aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YSht
X2ZvbnRGYWNlLCBzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJ
KHJldmlzaW9uIDcwMDI0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNp
Zm5kZWYgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGFfaAogCisjaW5jbHVkZSAiRm9udE9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJl
bmRlcmluZ01vZGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgpAQCAtMzgsNyArMzksNyBAQCBzdHJ1Y3QgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YSA6IE5vbmNvcHlhCiBwdWJsaWM6CiAgICAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YShGVF9G
YWNlLCBTaGFyZWRCdWZmZXIqKTsKICAgICB+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpOwotICAg
IEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBi
b29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKKyAg
ICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdN
b2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3Jt
YXQoY29uc3QgU3RyaW5nJik7CiAKIHByaXZhdGU6CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNzAwMjQp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGEuaAko
d29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2lmbmRlZiBGb250UGxhdGZvcm1EYXRh
X2gKICNkZWZpbmUgRm9udFBsYXRmb3JtRGF0YV9oCiAKKyNpbmNsdWRlICJGb250T3JpZW50YXRp
b24uaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKICNpZmRlZiBfX09CSkNf
XwpAQCAtNTgsOSArNTksMTAgQEAgaW5saW5lIENURm9udFJlZiB0b0NURm9udFJlZihOU0ZvbnQg
Km5zRgogCiBjbGFzcyBGb250UGxhdGZvcm1EYXRhIHsKICAgcHVibGljOgotICAgIEZvbnRQbGF0
Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09i
bGlxdWUpCisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0Jv
bGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uID0g
SG9yaXpvbnRhbCkKICAgICAgICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkKICAg
ICAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGljT2JsaXF1ZSkKKyAgICAgICAgLCBt
X29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQogICAgICAgICAsIG1fYXRzdUZvbnRJRCgwKQogICAg
ICAgICAsIG1fc2l6ZShzaXplKQogICAgICAgICAsIG1fZm9udCgwKQpAQCAtNzEsMTEgKzczLDEy
IEBAIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICAgIHsKICAgICB9CiAKLSAgICBGb250UGxh
dGZvcm1EYXRhKE5TRm9udCAqbnNGb250LCBib29sIHN5bnRoZXRpY0JvbGQgPSBmYWxzZSwgYm9v
bCBzeW50aGV0aWNPYmxpcXVlID0gZmFsc2UpOworICAgIEZvbnRQbGF0Zm9ybURhdGEoTlNGb250
ICpuc0ZvbnQsIGJvb2wgc3ludGhldGljQm9sZCA9IGZhbHNlLCBib29sIHN5bnRoZXRpY09ibGlx
dWUgPSBmYWxzZSwgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCk7CiAgICAgCi0gICAgRm9u
dFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dGb250LCBBVFNVRm9udElEIGZvbnRJRCwgZmxvYXQg
c2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUpCisgICAgRm9u
dFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dGb250LCBBVFNVRm9udElEIGZvbnRJRCwgZmxvYXQg
c2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmll
bnRhdGlvbiBvcmllbnRhdGlvbikKICAgICAgICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGlj
Qm9sZCkKICAgICAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGljT2JsaXF1ZSkKKyAg
ICAgICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQogICAgICAgICAsIG1fYXRzdUZvbnRJ
RChmb250SUQpCiAgICAgICAgICwgbV9zaXplKHNpemUpCiAgICAgICAgICwgbV9mb250KDApCkBA
IC05NCw5ICs5NywxMSBAQCBjbGFzcyBGb250UGxhdGZvcm1EYXRhIHsKICAgICBmbG9hdCBzaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgYm9vbCBzeW50aGV0aWNCb2xkKCkgY29u
c3QgeyByZXR1cm4gbV9zeW50aGV0aWNCb2xkOyB9CiAgICAgYm9vbCBzeW50aGV0aWNPYmxpcXVl
KCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNPYmxpcXVlOyB9CisgICAgRm9udE9yaWVudGF0
aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRhdGlvbjsgfQogCiAgICAg
Ym9vbCBtX3N5bnRoZXRpY0JvbGQ7CiAgICAgYm9vbCBtX3N5bnRoZXRpY09ibGlxdWU7CisgICAg
Rm9udE9yaWVudGF0aW9uIG1fb3JpZW50YXRpb247CiAKICAgICBBVFNVRm9udElEIG1fYXRzdUZv
bnRJRDsKICAgICBmbG9hdCBtX3NpemU7CkBAIC0xMDQsNyArMTA5LDcgQEAgY2xhc3MgRm9udFBs
YXRmb3JtRGF0YSB7CiAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0CiAgICAgewogICAgICAgICBB
U1NFUlQobV9mb250ICE9IDAgfHwgbV9jZ0ZvbnQgPT0gMCk7Ci0gICAgICAgIHVpbnRwdHJfdCBo
YXNoQ29kZXNbMl0gPSB7ICh1aW50cHRyX3QpbV9mb250LCBtX3N5bnRoZXRpY0JvbGQgPDwgMSB8
IG1fc3ludGhldGljT2JsaXF1ZSB9OworICAgICAgICB1aW50cHRyX3QgaGFzaENvZGVzWzJdID0g
eyAodWludHB0cl90KW1fZm9udCwgbV9vcmllbnRhdGlvbiA8PCAyIHwgbV9zeW50aGV0aWNCb2xk
IDw8IDEgfCBtX3N5bnRoZXRpY09ibGlxdWUgfTsKICAgICAgICAgcmV0dXJuIFN0cmluZ0ltcGw6
OmNvbXB1dGVIYXNoKHJlaW50ZXJwcmV0X2Nhc3Q8VUNoYXIqPihoYXNoQ29kZXMpLCBzaXplb2Yo
aGFzaENvZGVzKSAvIHNpemVvZihVQ2hhcikpOwogICAgIH0KIApAQCAtMTEzLDcgKzExOCw3IEBA
IGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGb250
UGxhdGZvcm1EYXRhJiBvdGhlcikgY29uc3QKICAgICB7IAogICAgICAgICByZXR1cm4gbV9mb250
ID09IG90aGVyLm1fZm9udCAmJiBtX3N5bnRoZXRpY0JvbGQgPT0gb3RoZXIubV9zeW50aGV0aWNC
b2xkICYmIG1fc3ludGhldGljT2JsaXF1ZSA9PSBvdGhlci5tX3N5bnRoZXRpY09ibGlxdWUgJiYg
Ci0gICAgICAgICAgICAgICBtX2NnRm9udCA9PSBvdGhlci5tX2NnRm9udCAmJiBtX3NpemUgPT0g
b3RoZXIubV9zaXplICYmIG1fYXRzdUZvbnRJRCA9PSBvdGhlci5tX2F0c3VGb250SUQ7CisgICAg
ICAgICAgICAgICBtX2NnRm9udCA9PSBvdGhlci5tX2NnRm9udCAmJiBtX3NpemUgPT0gb3RoZXIu
bV9zaXplICYmIG1fYXRzdUZvbnRJRCA9PSBvdGhlci5tX2F0c3VGb250SUQgJiYgbV9vcmllbnRh
dGlvbiA9PSBvdGhlci5tX29yaWVudGF0aW9uOwogICAgIH0KIAogICAgIE5TRm9udCAqZm9udCgp
IGNvbnN0IHsgcmV0dXJuIG1fZm9udDsgfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0JKHJldmlzaW9u
IDcwMDI0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1E
YXRhQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ0LDkgKzQ0LDEwIEBAIHZvaWQgRm9udFBs
YXRmb3JtRGF0YTo6bG9hZEZvbnQoTlNGb250KiAKIH0KICNlbmRpZiAgLy8gUExBVEZPUk0oTUFD
KQogCi1Gb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKE5TRm9udCAqbnNGb250LCBi
b29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSkKK0ZvbnRQbGF0Zm9ybURh
dGE6OkZvbnRQbGF0Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3ludGhldGljQm9sZCwg
Ym9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24pCiAgICAg
OiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkKICAgICAsIG1fc3ludGhldGljT2JsaXF1
ZShzeW50aGV0aWNPYmxpcXVlKQorICAgICwgbV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKICAg
ICAsIG1fZm9udChuc0ZvbnQpCiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkKICAgICAvLyBGSVhNRTogQ2hyb21pdW06IFRoZSBmb2xsb3dpbmcgY29kZSBpc24n
dCBjb3JyZWN0IGZvciB0aGUgQ2hyb21pdW0gcG9ydCBzaW5jZSB0aGUgc2FuZGJveCBtaWdodApA
QCAtODMsNiArODQsNyBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGNvbnN0
CiAgICAgbV9jZ0ZvbnQgPSBmLm1fY2dGb250OwogICAgIG1fYXRzdUZvbnRJRCA9IGYubV9hdHN1
Rm9udElEOwogICAgIG1faXNDb2xvckJpdG1hcEZvbnQgPSBmLm1faXNDb2xvckJpdG1hcEZvbnQ7
CisgICAgbV9vcmllbnRhdGlvbiA9IGYubV9vcmllbnRhdGlvbjsKICNpZiBVU0UoQ09SRV9URVhU
KQogICAgIG1fQ1RGb250ID0gZi5tX0NURm9udDsKICNlbmRpZgpAQCAtMTEyLDYgKzExNCw3IEBA
IGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIEZvbnRQbGF0Zm9ybURhdGEKICAgICAgICAgQ0ZSZWxl
YXNlKG1fZm9udCk7CiAgICAgbV9mb250ID0gZi5tX2ZvbnQ7CiAgICAgbV9pc0NvbG9yQml0bWFw
Rm9udCA9IGYubV9pc0NvbG9yQml0bWFwRm9udDsKKyAgICBtX29yaWVudGF0aW9uID0gZi5tX29y
aWVudGF0aW9uOwogI2lmIFVTRShDT1JFX1RFWFQpCiAgICAgbV9DVEZvbnQgPSBmLm1fQ1RGb250
OwogI2VuZGlmCkBAIC0xNjksNyArMTcyLDcgQEAgYm9vbCBGb250UGxhdGZvcm1EYXRhOjpyb3Vu
ZHNHbHlwaEFkdmFuYwogCiBib29sIEZvbnRQbGF0Zm9ybURhdGE6OmFsbG93c0xpZ2F0dXJlcygp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuICFbW21fZm9udCBjb3ZlcmVkQ2hhcmFjdGVyU2V0XSBjaGFy
YWN0ZXJJc01lbWJlcjonYSddOworICAgIHJldHVybiBtX29yaWVudGF0aW9uID09IEhvcml6b250
YWwgJiYgIVtbbV9mb250IGNvdmVyZWRDaGFyYWN0ZXJTZXRdIGNoYXJhY3RlcklzTWVtYmVyOidh
J107CiB9CiAKICNpZiBVU0UoQ09SRV9URVhUKQpAQCAtMTg3LDcgKzE5MCw4IEBAIENURm9udFJl
ZiBGb250UGxhdGZvcm1EYXRhOjpjdEZvbnQoKSBjb24KIFN0cmluZyBGb250UGxhdGZvcm1EYXRh
OjpkZXNjcmlwdGlvbigpIGNvbnN0CiB7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBjZ0Zv
bnREZXNjcmlwdGlvbihBZG9wdENGLCBDRkNvcHlEZXNjcmlwdGlvbihjZ0ZvbnQoKSkpOwotICAg
IHJldHVybiBTdHJpbmcoY2dGb250RGVzY3JpcHRpb24uZ2V0KCkpICsgIiAiICsgU3RyaW5nOjpu
dW1iZXIobV9zaXplKSArIChtX3N5bnRoZXRpY0JvbGQgPyAiIHN5bnRoZXRpYyBib2xkIiA6ICIi
KSArIChtX3N5bnRoZXRpY09ibGlxdWUgPyAiIHN5bnRoZXRpYyBvYmxpcXVlIiA6ICIiKTsKKyAg
ICByZXR1cm4gU3RyaW5nKGNnRm9udERlc2NyaXB0aW9uLmdldCgpKSArICIgIiArIFN0cmluZzo6
bnVtYmVyKG1fc2l6ZSkKKyAgICAgICAgICAgICsgKG1fc3ludGhldGljQm9sZCA/ICIgc3ludGhl
dGljIGJvbGQiIDogIiIpICsgKG1fc3ludGhldGljT2JsaXF1ZSA/ICIgc3ludGhldGljIG9ibGlx
dWUiIDogIiIpICsgKG1fb3JpZW50YXRpb24gPyAiIHZlcnRpY2FsIG9yaWVudGF0aW9uIiA6ICIi
KTsKIH0KICNlbmRpZgogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhUGFuZ28uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3RrL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFQYW5nby5jcHAJKHJldmlzaW9u
IDcwMDI0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YVBhbmdvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCBGb250Q3Vz
dG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiB7CiB9CiAKLUZvbnRQbGF0Zm9ybURh
dGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9v
bCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRh
IEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wg
Ym9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiwgRm9udFJlbmRlcmluZ01vZGUpCiB7
CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9mb250RmFjZSwgc2l6ZSwgYm9sZCwgaXRh
bGljKTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24gNzAwMjQpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6
On5Gb250Q3VzdG9tUGxhdGYKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxh
dGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBGb250UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxp
YywgRm9udE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICByZXR1cm4gRm9u
dFBsYXRmb3JtRGF0YShzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmgJKHJldmlzaW9uIDcwMDI0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAK
ICNpZm5kZWYgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0
Zm9ybURhdGFfaAogCisjaW5jbHVkZSAiRm9udE9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRm9u
dFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgpAQCAtMzcsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAKLSAg
ICAgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJv
bGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUp
OworICAgICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJv
b2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRS
ZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAgICAgfTsKIAogICAgIEZvbnRD
dXN0b21QbGF0Zm9ybURhdGEqIGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVm
ZmVyKik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hl
TWFjLm1tCShyZXZpc2lvbiA3MDAyNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDYWNoZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQyLDcgKzE0Miw4IEBAIGNvbnN0
IFNpbXBsZUZvbnREYXRhKiBGb250Q2FjaGU6OmdldEZvbnQKIAogICAgIEZvbnRQbGF0Zm9ybURh
dGEgYWx0ZXJuYXRlRm9udChzdWJzdGl0dXRlRm9udCwgCiAgICAgICAgICFmb250LmlzUGxhdGZv
cm1Gb250KCkgJiYgaXNBcHBLaXRGb250V2VpZ2h0Qm9sZCh3ZWlnaHQpICYmICFpc0FwcEtpdEZv
bnRXZWlnaHRCb2xkKHN1YnN0aXR1dGVGb250V2VpZ2h0KSwKLSAgICAgICAgIWZvbnQuaXNQbGF0
Zm9ybUZvbnQoKSAmJiAodHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQpICYmICEoc3Vic3RpdHV0
ZUZvbnRUcmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkpOworICAgICAgICAhZm9udC5pc1BsYXRm
b3JtRm9udCgpICYmICh0cmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkgJiYgIShzdWJzdGl0dXRl
Rm9udFRyYWl0cyAmIE5TRm9udEl0YWxpY1RyYWl0KSwKKyAgICAgICAgcGxhdGZvcm1EYXRhLm1f
b3JpZW50YXRpb24pOwogICAgIHJldHVybiBnZXRDYWNoZWRGb250RGF0YSgmYWx0ZXJuYXRlRm9u
dCk7CiB9CiAKQEAgLTIxMCw3ICsyMTEsNyBAQCBGb250UGxhdGZvcm1EYXRhKiBGb250Q2FjaGU6
OmNyZWF0ZUZvbnRQCiAgICAgYm9vbCBzeW50aGV0aWNCb2xkID0gaXNBcHBLaXRGb250V2VpZ2h0
Qm9sZCh3ZWlnaHQpICYmICFpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKGFjdHVhbFdlaWdodCk7CiAg
ICAgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0gKHRyYWl0cyAmIE5TRm9udEl0YWxpY1RyYWl0KSAm
JiAhKGFjdHVhbFRyYWl0cyAmIE5TRm9udEl0YWxpY1RyYWl0KTsKIAotICAgIHJldHVybiBuZXcg
Rm9udFBsYXRmb3JtRGF0YShwbGF0Zm9ybUZvbnQsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09i
bGlxdWUpOworICAgIHJldHVybiBuZXcgRm9udFBsYXRmb3JtRGF0YShwbGF0Zm9ybUZvbnQsIHN5
bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIGZvbnREZXNjcmlwdGlvbi5vcmllbnRhdGlv
bigpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJ
KHJldmlzaW9uIDcwMDI0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDkgKzM4LDkgQEAgRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogICAgIENHRm9udFJlbGVhc2Uo
bV9jZ0ZvbnQpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6
OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRS
ZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpm
b250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3Jp
ZW50YXRpb24gb3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlKQogewotICAgIHJldHVybiBG
b250UGxhdGZvcm1EYXRhKG1fY2dGb250LCAoQVRTVUZvbnRJRCltX2F0c0ZvbnQsIHNpemUsIGJv
bGQsIGl0YWxpYyk7CisgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9jZ0ZvbnQsIChBVFNV
Rm9udElEKW1fYXRzRm9udCwgc2l6ZSwgYm9sZCwgaXRhbGljLCBvcmllbnRhdGlvbik7CiB9CiAK
IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEqIGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hh
cmVkQnVmZmVyKiBidWZmZXIpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA3MDAyNCkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAko
d29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2lmbmRlZiBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhX2gKICNkZWZpbmUgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAKKyNpbmNsdWRlICJG
b250T3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1
ZGUgPENvcmVGb3VuZGF0aW9uL0NGQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBA
IC00MSw3ICs0Miw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEK
ICAgICB7fQogICAgIH5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCk7CiAKLSAgICBGb250UGxhdGZv
cm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMs
IEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBsYXRm
b3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1h
bFJlbmRlcmluZ01vZGUpOwogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3Qg
U3RyaW5nJik7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dseXBoUGFn
ZVRyZWVOb2RlTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9HbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHAJKHJldmlzaW9uIDcwMDI0KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR2x5cGhQYWdlVHJlZU5vZGVNYWMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00MCwxNSArNDAsNzAgQEAgYm9vbCBHbHlwaFBhZ2U6OmZpbGwodW5zaWduZWQg
b2Zmc2V0LCB1bgogICAgIGJvb2wgaGF2ZUdseXBocyA9IGZhbHNlOwogCiAjaWZuZGVmIEJVSUxE
SU5HX09OX1RJR0VSCi0gICAgVmVjdG9yPENHR2x5cGgsIDUxMj4gZ2x5cGhzKGJ1ZmZlckxlbmd0
aCk7Ci0gICAgd2tHZXRHbHlwaHNGb3JDaGFyYWN0ZXJzKGZvbnREYXRhLT5wbGF0Zm9ybURhdGEo
KS5jZ0ZvbnQoKSwgYnVmZmVyLCBnbHlwaHMuZGF0YSgpLCBidWZmZXJMZW5ndGgpOwotCi0gICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgIGlmICghZ2x5
cGhzW2ldKQotICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaSwgMCwg
MCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zm
c2V0ICsgaSwgZ2x5cGhzW2ldLCBmb250RGF0YSk7Ci0gICAgICAgICAgICBoYXZlR2x5cGhzID0g
dHJ1ZTsKKyAgICBpZiAoZm9udERhdGEtPnBsYXRmb3JtRGF0YSgpLm9yaWVudGF0aW9uKCkgPT0g
SG9yaXpvbnRhbCkgeworICAgICAgICBWZWN0b3I8Q0dHbHlwaCwgNTEyPiBnbHlwaHMoYnVmZmVy
TGVuZ3RoKTsKKyAgICAgICAgd2tHZXRHbHlwaHNGb3JDaGFyYWN0ZXJzKGZvbnREYXRhLT5wbGF0
Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgYnVmZmVyLCBnbHlwaHMuZGF0YSgpLCBidWZmZXJMZW5ndGgp
OworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgICAgIGlmICghZ2x5cGhzW2ldKQorICAgICAgICAgICAgICAgIHNldEdseXBoRGF0YUZvcklu
ZGV4KG9mZnNldCArIGksIDAsIDApOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAg
ICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaSwgZ2x5cGhzW2ldLCBmb250RGF0YSk7
CisgICAgICAgICAgICAgICAgaGF2ZUdseXBocyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICAvLyBXZSBhc2sgQ29yZVRleHQgZm9yIHBvc3Np
YmxlIHZlcnRpY2FsIHZhcmlhbnQgZ2x5cGhzCisgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gc3RyaW5nKEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnNOb0NvcHkoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVyLCBidWZmZXJMZW5ndGgsIGtDRkFsbG9jYXRvck51bGwp
KTsKKyAgICAgICAgUmV0YWluUHRyPENGQXR0cmlidXRlZFN0cmluZ1JlZj4gYXR0cmlidXRlZFN0
cmluZyhBZG9wdENGLCBDRkF0dHJpYnV0ZWRTdHJpbmdDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgc3RyaW5nLmdldCgpLCBmb250RGF0YS0+Z2V0Q0ZTdHJpbmdBdHRyaWJ1dGVzKDApKSk7Cisg
ICAgICAgIFJldGFpblB0cjxDVExpbmVSZWY+IGxpbmUoQWRvcHRDRiwgQ1RMaW5lQ3JlYXRlV2l0
aEF0dHJpYnV0ZWRTdHJpbmcoYXR0cmlidXRlZFN0cmluZy5nZXQoKSkpOworCisgICAgICAgIENG
QXJyYXlSZWYgcnVuQXJyYXkgPSBDVExpbmVHZXRHbHlwaFJ1bnMobGluZS5nZXQoKSk7CisgICAg
ICAgIENGSW5kZXggcnVuQ291bnQgPSBDRkFycmF5R2V0Q291bnQocnVuQXJyYXkpOworCisgICAg
ICAgIC8vIEluaXRpYWxpemUgZ2x5cGggZW50cmllcworICAgICAgICBmb3IgKHVuc2lnbmVkIGlu
ZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7ICsraW5kZXgpCisgICAgICAgICAgICBzZXRHbHlwaERh
dGFGb3JJbmRleChvZmZzZXQgKyBpbmRleCwgMCwgMCk7CisKKyAgICAgICAgVmVjdG9yPENHR2x5
cGgsIDUxMj4gZ2x5cGhWZWN0b3I7CisgICAgICAgIFZlY3RvcjxDRkluZGV4LCA1MTI+IGluZGV4
VmVjdG9yOworICAgICAgICBib29sIGRvbmUgPSBmYWxzZTsKKyAgICAgICAgZm9yIChDRkluZGV4
IHIgPSAwOyByIDwgcnVuQ291bnQgJiYgIWRvbmUgOyArK3IpIHsKKyAgICAgICAgICAgIC8vIENU
TGluZSBjb3VsZCBtYXAgY2hhcmFjdGVycyBvdmVyIG11bHRpcGxlIGZvbnRzIHVzaW5nIGl0cyBv
d24gZm9udCBmYWxsYmFjayBsaXN0LgorICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBwaWNrIHJ1
bnMgdGhhdCB1c2UgdGhlIGV4YWN0IGZvbnQgd2UgbmVlZCwgaS5lLiwgZm9udERhdGEtPnBsYXRm
b3JtRGF0YSgpLmN0Rm9udCgpLgorICAgICAgICAgICAgQ1RSdW5SZWYgY3RSdW4gPSBzdGF0aWNf
Y2FzdDxDVFJ1blJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChydW5BcnJheSwgcikpOworICAg
ICAgICAgICAgQVNTRVJUKENGR2V0VHlwZUlEKGN0UnVuKSA9PSBDVFJ1bkdldFR5cGVJRCgpKTsK
KworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMgPSBDVFJ1bkdldEF0dHJp
YnV0ZXMoY3RSdW4pOworICAgICAgICAgICAgQ1RGb250UmVmIHJ1bkZvbnQgPSBzdGF0aWNfY2Fz
dDxDVEZvbnRSZWY+KENGRGljdGlvbmFyeUdldFZhbHVlKGF0dHJpYnV0ZXMsIGtDVEZvbnRBdHRy
aWJ1dGVOYW1lKSk7CisgICAgICAgICAgICBSZXRhaW5QdHI8Q0dGb250UmVmPiBydW5DR0ZvbnQo
QWRvcHRDRiwgQ1RGb250Q29weUdyYXBoaWNzRm9udChydW5Gb250LCAwKSk7CisgICAgICAgICAg
ICAvLyBVc2UgQ0dGb250IGhlcmUgYXMgQ0ZFcXVhbCBmb3IgQ1RGb250IGNvdW50cyBhbGwgYXR0
cmlidXRlcyBmb3IgZm9udC4KKyAgICAgICAgICAgIGlmIChDRkVxdWFsKGZvbnREYXRhLT5wbGF0
Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgcnVuQ0dGb250LmdldCgpKSkgeworICAgICAgICAgICAgICAg
IC8vIFRoaXMgcnVuIHVzZXMgdGhlIGZvbnQgd2Ugd2FudC4gRXh0cmFjdCBnbHlwaHMuCisgICAg
ICAgICAgICAgICAgQ0ZJbmRleCBnbHlwaENvdW50ID0gQ1RSdW5HZXRHbHlwaENvdW50KGN0UnVu
KTsKKyAgICAgICAgICAgICAgICBjb25zdCBDR0dseXBoKiBnbHlwaHMgPSBDVFJ1bkdldEdseXBo
c1B0cihjdFJ1bik7CisgICAgICAgICAgICAgICAgaWYgKCFnbHlwaHMpIHsKKyAgICAgICAgICAg
ICAgICAgICAgZ2x5cGhWZWN0b3IucmVzaXplKGdseXBoQ291bnQpOworICAgICAgICAgICAgICAg
ICAgICBDVFJ1bkdldEdseXBocyhjdFJ1biwgQ0ZSYW5nZU1ha2UoMCwgMCksIGdseXBoVmVjdG9y
LmRhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgIGdseXBocyA9IGdseXBoVmVjdG9yLmRhdGEo
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29uc3QgQ0ZJbmRleCogc3Ry
aW5nSW5kaWNlcyA9IENUUnVuR2V0U3RyaW5nSW5kaWNlc1B0cihjdFJ1bik7CisgICAgICAgICAg
ICAgICAgaWYgKCFzdHJpbmdJbmRpY2VzKSB7CisgICAgICAgICAgICAgICAgICAgIGluZGV4VmVj
dG9yLnJlc2l6ZShnbHlwaENvdW50KTsKKyAgICAgICAgICAgICAgICAgICAgQ1RSdW5HZXRTdHJp
bmdJbmRpY2VzKGN0UnVuLCBDRlJhbmdlTWFrZSgwLCAwKSwgaW5kZXhWZWN0b3IuZGF0YSgpKTsK
KyAgICAgICAgICAgICAgICAgICAgc3RyaW5nSW5kaWNlcyA9IGluZGV4VmVjdG9yLmRhdGEoKTsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgZ2x5cGhDb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJpbmdJ
bmRpY2VzW2ldID49IGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRy
dWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICBpZiAoZ2x5cGhzW2ldKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBzdHJpbmdJbmRpY2VzW2ldLCBn
bHlwaHNbaV0sIGZvbnREYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVHbHlwaHMg
PSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgfQogI2Vsc2UKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhQ29yZVRleHQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhQ29yZVRleHQuY3BwCShy
ZXZpc2lvbiA3MDAyNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZv
bnREYXRhQ29yZVRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCwxNiArNjAsMTYgQEAgQ0ZE
aWN0aW9uYXJ5UmVmIFNpbXBsZUZvbnREYXRhOjpnZXRDRlN0cgogICAgIGlmICghKHR5cGVzZXR0
aW5nRmVhdHVyZXMgJiBLZXJuaW5nKSkgewogICAgICAgICBzdGF0aWMgY29uc3QgZmxvYXQga2Vy
bmluZ0FkanVzdG1lbnRWYWx1ZSA9IDA7CiAgICAgICAgIHN0YXRpYyBDRk51bWJlclJlZiBrZXJu
aW5nQWRqdXN0bWVudCA9IENGTnVtYmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51
bWJlckZsb2F0VHlwZSwgJmtlcm5pbmdBZGp1c3RtZW50VmFsdWUpOwotICAgICAgICBzdGF0aWMg
Y29uc3Qgdm9pZCoga2V5c1dpdGhLZXJuaW5nRGlzYWJsZWRbXSA9IHsga0NURm9udEF0dHJpYnV0
ZU5hbWUsIGtDVEtlcm5BdHRyaWJ1dGVOYW1lLCBrQ1RMaWdhdHVyZUF0dHJpYnV0ZU5hbWUgfTsK
KyAgICAgICAgc3RhdGljIGNvbnN0IHZvaWQqIGtleXNXaXRoS2VybmluZ0Rpc2FibGVkW10gPSB7
IGtDVEZvbnRBdHRyaWJ1dGVOYW1lLCBrQ1RLZXJuQXR0cmlidXRlTmFtZSwga0NUTGlnYXR1cmVB
dHRyaWJ1dGVOYW1lLCBrQ1RWZXJ0aWNhbEZvcm1zQXR0cmlidXRlTmFtZSB9OwogICAgICAgICBj
b25zdCB2b2lkKiB2YWx1ZXNXaXRoS2VybmluZ0Rpc2FibGVkW10gPSB7IHBsYXRmb3JtRGF0YSgp
LmN0Rm9udCgpLCBrZXJuaW5nQWRqdXN0bWVudCwgYWxsb3dMaWdhdHVyZXMKLSAgICAgICAgICAg
ID8gbGlnYXR1cmVzQWxsb3dlZCA6IGxpZ2F0dXJlc05vdEFsbG93ZWQgfTsKKyAgICAgICAgICAg
ID8gbGlnYXR1cmVzQWxsb3dlZCA6IGxpZ2F0dXJlc05vdEFsbG93ZWQsIHBsYXRmb3JtRGF0YSgp
Lm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWwgPyBrQ0ZCb29sZWFuVHJ1ZSA6IGtDRkJvb2xlYW5G
YWxzZSB9OwogICAgICAgICBhdHRyaWJ1dGVzRGljdGlvbmFyeS5hZG9wdENGKENGRGljdGlvbmFy
eUNyZWF0ZSgwLCBrZXlzV2l0aEtlcm5pbmdEaXNhYmxlZCwgdmFsdWVzV2l0aEtlcm5pbmdEaXNh
YmxlZCwKICAgICAgICAgICAgIHNpemVvZihrZXlzV2l0aEtlcm5pbmdEaXNhYmxlZCkgLyBzaXpl
b2YoKmtleXNXaXRoS2VybmluZ0Rpc2FibGVkKSwKICAgICAgICAgICAgICZrQ0ZDb3B5U3RyaW5n
RGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3Mp
KTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBCeSBvbWl0dGluZyB0aGUga0NUS2VybkF0dHJp
YnV0ZU5hbWUgYXR0cmlidXRlLCB3ZSBnZXQgQ29yZSBUZXh0J3Mgc3RhbmRhcmQga2VybmluZy4K
LSAgICAgICAgc3RhdGljIGNvbnN0IHZvaWQqIGtleXNXaXRoS2VybmluZ0VuYWJsZWRbXSA9IHsg
a0NURm9udEF0dHJpYnV0ZU5hbWUsIGtDVExpZ2F0dXJlQXR0cmlidXRlTmFtZSB9OwotICAgICAg
ICBjb25zdCB2b2lkKiB2YWx1ZXNXaXRoS2VybmluZ0VuYWJsZWRbXSA9IHsgcGxhdGZvcm1EYXRh
KCkuY3RGb250KCksIGFsbG93TGlnYXR1cmVzID8gbGlnYXR1cmVzQWxsb3dlZCA6IGxpZ2F0dXJl
c05vdEFsbG93ZWQgfTsKKyAgICAgICAgc3RhdGljIGNvbnN0IHZvaWQqIGtleXNXaXRoS2Vybmlu
Z0VuYWJsZWRbXSA9IHsga0NURm9udEF0dHJpYnV0ZU5hbWUsIGtDVExpZ2F0dXJlQXR0cmlidXRl
TmFtZSwga0NUVmVydGljYWxGb3Jtc0F0dHJpYnV0ZU5hbWUgfTsKKyAgICAgICAgY29uc3Qgdm9p
ZCogdmFsdWVzV2l0aEtlcm5pbmdFbmFibGVkW10gPSB7IHBsYXRmb3JtRGF0YSgpLmN0Rm9udCgp
LCBhbGxvd0xpZ2F0dXJlcyA/IGxpZ2F0dXJlc0FsbG93ZWQgOiBsaWdhdHVyZXNOb3RBbGxvd2Vk
LCBwbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsID8ga0NGQm9vbGVhblRy
dWUgOiBrQ0ZCb29sZWFuRmFsc2UgfTsKICAgICAgICAgYXR0cmlidXRlc0RpY3Rpb25hcnkuYWRv
cHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoMCwga2V5c1dpdGhLZXJuaW5nRW5hYmxlZCwgdmFsdWVz
V2l0aEtlcm5pbmdFbmFibGVkLAogICAgICAgICAgICAgc2l6ZW9mKGtleXNXaXRoS2VybmluZ0Vu
YWJsZWQpIC8gc2l6ZW9mKCprZXlzV2l0aEtlcm5pbmdFbmFibGVkKSwKICAgICAgICAgICAgICZr
Q0ZDb3B5U3RyaW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFs
dWVDYWxsQmFja3MpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBs
ZUZvbnREYXRhTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCShyZXZpc2lvbiA3MDAyNCkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC00MTcsMTEgKzQxNyw5IEBAIEZsb2F0UmVjdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Cb3Vu
ZHMKIHsKICAgICBGbG9hdFJlY3QgYm91bmRpbmdCb3g7CiAjaWZuZGVmIEJVSUxESU5HX09OX1RJ
R0VSCi0gICAgQ0dSZWN0IGJveDsKLSAgICBDR0ZvbnRHZXRHbHlwaEJCb3hlcyhwbGF0Zm9ybURh
dGEoKS5jZ0ZvbnQoKSwgJmdseXBoLCAxLCAmYm94KTsKLSAgICBmbG9hdCBwb2ludFNpemUgPSBw
bGF0Zm9ybURhdGEoKS5tX3NpemU7Ci0gICAgQ0dGbG9hdCBzY2FsZSA9IHBvaW50U2l6ZSAvIHVu
aXRzUGVyRW0oKTsKLSAgICBib3VuZGluZ0JveCA9IENHUmVjdEFwcGx5QWZmaW5lVHJhbnNmb3Jt
KGJveCwgQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUoc2NhbGUsIC1zY2FsZSkpOworICAgIGJv
dW5kaW5nQm94ID0gQ1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocyhtX3BsYXRmb3JtRGF0
YS5jdEZvbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgbV9wbGF0Zm9ybURhdGEub3JpZW50YXRp
b24oKSA9PSBWZXJ0aWNhbCA/IGtDVEZvbnRWZXJ0aWNhbE9yaWVudGF0aW9uIDoga0NURm9udEhv
cml6b250YWxPcmllbnRhdGlvbiwgJmdseXBoLCAwLCAxKTsKKyAgICBib3VuZGluZ0JveC5zZXRZ
KC1ib3VuZGluZ0JveC5ib3R0b20oKSk7CiAjZWxzZQogICAgIC8vIEZJWE1FOiBDdXN0b20gZm9u
dHMgZG9uJ3QgaGF2ZSBOU0ZvbnRzLCBzbyB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3QgY29tcHV0ZSBj
b3JyZWN0IGJvdW5kcyBmb3IgdGhlc2Ugb24gVGlnZXIuCiAgICAgaWYgKCFtX3BsYXRmb3JtRGF0
YS5mb250KCkpCkBAIC00MzcsMTQgKzQzNSwxOCBAQCBGbG9hdFJlY3QgU2ltcGxlRm9udERhdGE6
OnBsYXRmb3JtQm91bmRzCiAKIGZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9y
R2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiB7Ci0gICAgTlNGb250KiBmb250ID0gcGxhdGZvcm1E
YXRhKCkuZm9udCgpOwotICAgIGZsb2F0IHBvaW50U2l6ZSA9IHBsYXRmb3JtRGF0YSgpLm1fc2l6
ZTsKLSAgICBDR0FmZmluZVRyYW5zZm9ybSBtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUo
cG9pbnRTaXplLCBwb2ludFNpemUpOwogICAgIENHU2l6ZSBhZHZhbmNlOwotICAgIGlmICghd2tH
ZXRHbHlwaFRyYW5zZm9ybWVkQWR2YW5jZXMocGxhdGZvcm1EYXRhKCkuY2dGb250KCksIGZvbnQs
ICZtLCAmZ2x5cGgsICZhZHZhbmNlKSkgewotICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBj
YWNoZSBnbHlwaCB3aWR0aHMgZm9yICVAICVmIiwgW2ZvbnQgZGlzcGxheU5hbWVdLCBwb2ludFNp
emUpOwotICAgICAgICBhZHZhbmNlLndpZHRoID0gMDsKLSAgICB9CisgICAgaWYgKG1fcGxhdGZv
cm1EYXRhLm9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbCkgeworICAgICAgICBOU0ZvbnQqIGZv
bnQgPSBwbGF0Zm9ybURhdGEoKS5mb250KCk7CisgICAgICAgIGZsb2F0IHBvaW50U2l6ZSA9IHBs
YXRmb3JtRGF0YSgpLm1fc2l6ZTsKKyAgICAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gbSA9IENHQWZm
aW5lVHJhbnNmb3JtTWFrZVNjYWxlKHBvaW50U2l6ZSwgcG9pbnRTaXplKTsKKyAgICAgICAgaWYg
KCF3a0dldEdseXBoVHJhbnNmb3JtZWRBZHZhbmNlcyhwbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwg
Zm9udCwgJm0sICZnbHlwaCwgJmFkdmFuY2UpKSB7CisgICAgICAgICAgICBMT0dfRVJST1IoIlVu
YWJsZSB0byBjYWNoZSBnbHlwaCB3aWR0aHMgZm9yICVAICVmIiwgW2ZvbnQgZGlzcGxheU5hbWVd
LCBwb2ludFNpemUpOworICAgICAgICAgICAgYWR2YW5jZS53aWR0aCA9IDA7CisgICAgICAgIH0K
KyAgICB9IGVsc2UKKyAgICAgICAgQ1RGb250R2V0QWR2YW5jZXNGb3JHbHlwaHMobV9wbGF0Zm9y
bURhdGEuY3RGb250KCksIGtDVEZvbnRWZXJ0aWNhbE9yaWVudGF0aW9uLCAmZ2x5cGgsICZhZHZh
bmNlLCAxKTsKKwogICAgIHJldHVybiBhZHZhbmNlLndpZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zm
c2V0OwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNzAwMjQpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5
KQpAQCAtMjIsNiArMjIsNyBAQAogI2lmbmRlZiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKICNk
ZWZpbmUgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAKKyNpbmNsdWRlICJGb250T3JpZW50YXRp
b24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC0zNyw3ICszOCw3IEBAIHN0
cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKICAgICAvLyBmb3IgdXNlIHdp
dGggUUZvbnREYXRhYmFzZTo6YWRkQXBwbGljYXRpb25Gb250L3JlbW92ZUFwcGxpY2F0aW9uRm9u
dAogICAgIGludCBtX2hhbmRsZTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3Jt
RGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUg
PSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9y
bURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9
IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAK
ICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIH07CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFRdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhUXQuY3BwCShyZXZpc2lvbiA3MDAyNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YVF0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzQsNyArMzQsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRm
CiAgICAgUUZvbnREYXRhYmFzZTo6cmVtb3ZlQXBwbGljYXRpb25Gb250KG1faGFuZGxlKTsKIH0K
IAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1E
YXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSkK
K0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0
YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uLCBGb250
UmVuZGVyaW5nTW9kZSkKIHsKICAgICBRRm9udCBmb250OwogICAgIGZvbnQuc2V0RmFtaWx5KFFG
b250RGF0YWJhc2U6OmFwcGxpY2F0aW9uRm9udEZhbWlsaWVzKG1faGFuZGxlKVswXSk7CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuY3BwCShyZXZpc2lvbiA3MDAyNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjQsNyArNjQsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRm
CiAjZW5kaWYKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpm
b250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVu
ZGVyaW5nTW9kZSBtb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250
T3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlIG1vZGUpCiB7CiAjaWYgT1MoV0lORE9XUykK
ICAgICBBU1NFUlQobV9mb250UmVmZXJlbmNlKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2aXNp
b24gNzAwMjQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaWZuZGVmIEZv
bnRDdXN0b21QbGF0Zm9ybURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gK
IAorI2luY2x1ZGUgIkZvbnRPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdN
b2RlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KQEAgLTYyLDcgKzYzLDcgQEAgc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgOiBO
b25jb3B5YQogCiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKIAotICAgIEZvbnRQbGF0
Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxp
YywKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wg
Ym9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFs
UmVuZGVyaW5nTW9kZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBT
dHJpbmcmKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCShyZXZpc2lvbiA3MDAyNCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250
Q3VzdG9tUGxhdGYKICAgICB9CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxp
YywgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xk
LCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJp
bmdNb2RlKQogewogICAgIEFTU0VSVChtX2ZvbnRSZWZlcmVuY2UpOwogICAgIEFTU0VSVChUMmVt
YmVkTGlicmFyeSgpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRD
dXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDcwMDI0KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURh
dGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnRP
cmllbnRhdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNDIsNyArNDMs
NyBAQCBzdHJ1Y3QgRm9udEN1c3RvbVBsYXRmb3JtRGF0YSA6IE5vbmNvcHlhCiAKICAgICB+Rm9u
dEN1c3RvbVBsYXRmb3JtRGF0YSgpOwogCi0gICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZv
cm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9k
ZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRm
b3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9u
ID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsK
IAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwogCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fp
cm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRD
dXN0b21QbGF0Zm9ybURhdGFDYWlyby5jcHAJKHJldmlzaW9uIDcwMDI0KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9u
dEN1c3RvbVBsYXRmCiAgICBjYWlyb19mb250X2ZhY2VfZGVzdHJveShtX2ZvbnRGYWNlKTsKIH0K
IAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1E
YXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKQorRm9udFBsYXRmb3JtRGF0YSBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJv
bGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24pCiB7CiAgICAgcmV0dXJuIEZvbnRQbGF0
Zm9ybURhdGEobV9mb250RmFjZSwgc2l6ZSwgYm9sZCwgaXRhbGljKTsKIH0KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGFDYWlyby5oCShyZXZpc2lvbiA3MDAyNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yMiw2ICsyMiw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyb19oCiAj
ZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyb19oCiAKKyNpbmNsdWRlICJGb250RGVz
Y3JpcHRpb24uaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgogCkBAIC0zOSw3ICs0MCw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhIDogTm9uY29weWEKICAgICB9CiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKIAot
ICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xk
LCBib29sIGl0YWxpYyk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGlu
dCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9u
dGFsKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwog
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2Uv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDcwMDI0KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1
c3RvbVBsYXRmCiAgICAgICAgIGdfY3VzdG9tRm9udENhY2hlLT51bnJlZ2lzdGVyRm9udChtX25h
bWUpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQ
bGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJp
bmdNb2RlIHJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMs
IEZvbnRPcmllbnRhdGlvbiwgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSkKIHsKICAg
ICBGb250RGVzY3JpcHRpb24gZm9udERlc2M7CiAgICAgZm9udERlc2Muc2V0Q29tcHV0ZWRTaXpl
KHNpemUpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDcwMDI0KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtp
bmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpZm5kZWYgRm9udEN1c3RvbVBsYXRmb3JtRGF0
YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogCisjaW5jbHVkZSAiRm9udERl
c2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDQsNyAr
NDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgfkZvbnRDdXN0b21QbGF0Zm9y
bURhdGEoKTsKIAotICAgICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50
IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFs
UmVuZGVyaW5nTW9kZSk7CisgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0
YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uIGZvbnRP
cmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVy
aW5nTW9kZSk7CiAKICAgICAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3Ry
aW5nJik7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24gNzAwMjQpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3Vz
dG9tUGxhdGYKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250
UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6
Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9y
aWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICByZXR1cm4gRm9udFBsYXRmb3Jt
RGF0YShzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDcw
MDI0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpZm5kZWYgRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogCisjaW5j
bHVkZSAiRm9udE9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpA
QCAtMzcsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGljIGJv
b2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAKLSAgICAgICAgRm9udFBsYXRmb3Jt
RGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBG
b250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgICAgICBGb250UGxh
dGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFs
aWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9y
bWFsUmVuZGVyaW5nTW9kZSk7CiAgICAgfTsKIAogICAgIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEq
IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKik7CkluZGV4OiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA3MDAyNCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDEwLTEwLTE4ICB0YWthbm8gdGFrdW1pICA8dGFrYW5vMUBhc2lh
LmFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOZWVkIHRvIHN3YXAgZ2x5cGhzIGZvciB2ZXJ0aWNhbCB3cml0aW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk3MworCisgICAgICAgICog
ZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1tZXRyaWNzLXRlc3QuaHRtbDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3Zl
cnRpY2FsLXRleHQtbWV0cmljcy10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMTAt
MTggIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBTYW0gV2VpbmlnLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwv
dmVydGljYWwtdGV4dC1tZXRyaWNzLXRlc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC92ZXJ0aWNhbC10ZXh0LW1ldHJpY3MtdGVzdC5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVy
dGljYWwtdGV4dC1tZXRyaWNzLXRlc3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iY29u
dGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgorPHRpdGxlPlZl
cnRpY2FsIHRleHQgbWV0cmljcyB0ZXN0PC90aXRsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBwcmlu
dChtZXNzYWdlKQoreworICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJsaSIpOworICAgIHBhcmFncmFwaC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZShtZXNzYWdlKSk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBl
bmRDaGlsZChwYXJhZ3JhcGgpOworfQorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworCisgICAgdmFyIHBFbGVtcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCJzcGFuIik7CisgICAgZm9yICggaSA9IDAgOyBpIDwgcEVsZW1zLmxlbmd0aCA7ICsraSAp
CisgICAgeworICAgICAgICB2YXIgZWxlbSA9IHBFbGVtc1tpXTsKKyAgICAgICAgcHJpbnQoIndp
ZHRoPSIgKyBlbGVtLm9mZnNldFdpZHRoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzxzdHlsZT4K
K2JvZHkgeworICAgIGZvbnQtc2l6ZTogbGFyZ2U7Cit9CisjaG9yaXpvbnRhbF9UQiB7CisgICAg
LXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwtdGI7Cit9CisjaG9yaXpvbnRhbF9CVCB7
CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwtYnQ7Cit9CisjdmVydGljYWxf
UkwgeworICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsKK30KKyN2ZXJ0aWNh
bF9MUiB7CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyOworfQorI2hvcml6
b250YWxfVEJfY29tcGxleCB7CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwt
dGI7CisgICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTsKK30KKyNob3Jpem9u
dGFsX0JUX2NvbXBsZXggeworICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLWJ0
OworICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZWxlZ2liaWxpdHk7Cit9CisjdmVydGljYWxf
UkxfY29tcGxleCB7CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOworICAg
IHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZWxlZ2liaWxpdHk7Cit9CisjdmVydGljYWxfTFJfY29t
cGxleCB7CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyOworICAgIHRleHQt
cmVuZGVyaW5nOiBvcHRpbWl6ZWxlZ2liaWxpdHk7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJ0ZXN0KCkiPgorPHA+U2ltcGxlIHRleHQgcGF0aDwvcD4KKzxzcGFuIGlkPSJo
b3Jpem9udGFsX1RCIj5hYuOBguOAjOOAjeOAgjwvc3Bhbj48YnI+Cis8c3BhbiBpZD0iaG9yaXpv
bnRhbF9CVCI+YWLjgYLjgIzjgI3jgII8L3NwYW4+PGJyPgorPHNwYW4gaWQ9InZlcnRpY2FsX1JM
Ij5hYuOBguOAjOOAjeOAgjwvc3Bhbj48YnI+Cis8c3BhbiBpZD0idmVydGljYWxfTFIiPmFi44GC
44CM44CN44CCPC9zcGFuPjxicj4KKzxicj4KKzxocj4KKzxwPkNvbXBsZXggdGV4dCBwYXRoPC9w
PgorPHNwYW4gaWQ9Imhvcml6b250YWxfVEJfY29tcGxleCI+YWLjgYLjgIzjgI3jgIIx4oOdPC9z
cGFuPjxicj4KKzxzcGFuIGlkPSJob3Jpem9udGFsX0JUX2NvbXBsZXgiPmFi44GC44CM44CN44CC
MeKDnTwvc3Bhbj48YnI+Cis8c3BhbiBpZD0idmVydGljYWxfUkxfY29tcGxleCI+YWLjgYLjgIzj
gI3jgIIx4oOdPC9zcGFuPjxicj4KKzxzcGFuIGlkPSJ2ZXJ0aWNhbF9MUl9jb21wbGV4Ij5hYuOB
guOAjOOAjeOAgjHig508L3NwYW4+PGJyPgorPGJyPgorPGhyPgorPHA+PG9sIGlkPWNvbnNvbGU+
PC9vbD48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1tZXRyaWNzLXRlc3QtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Rl
eHQvaW50ZXJuYXRpb25hbC92ZXJ0aWNhbC10ZXh0LW1ldHJpY3MtdGVzdC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2ludGVy
bmF0aW9uYWwvdmVydGljYWwtdGV4dC1tZXRyaWNzLXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDIzIEBACitTaW1wbGUgdGV4dCBwYXRoCisKK2Fi44GC44CM44CN44CC
CithYuOBguOAjOOAjeOAggorYWLjgYLjgIzjgI3jgIIKK2Fi44GC44CM44CN44CCCisKK0NvbXBs
ZXggdGV4dCBwYXRoCisKK2Fi44GC44CM44CN44CCMeKDnQorYWLjgYLjgIzjgI3jgIIx4oOdCith
YuOBguOAjOOAjeOAgjHig50KK2Fi44GC44CM44CN44CCMeKDnQorCit3aWR0aD04OQord2lkdGg9
ODkKK3dpZHRoPTEyNAord2lkdGg9MTI0Cit3aWR0aD05OAord2lkdGg9OTgKK3dpZHRoPTE0OQor
d2lkdGg9MTQ5CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71269</attachid>
            <date>2010-10-20 03:23:09 -0700</date>
            <delta_ts>2010-10-20 03:51:52 -0700</delta_ts>
            <desc>Added pixel test. Changed tests to explicitly specify a font family.</desc>
            <filename>WK46973Patch_101020.txt</filename>
            <type>text/plain</type>
            <size>89711</size>
            <attacher name="Takumi Takano">takano</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsOTAgQEAKKzIwMTAtMTAtMjAgIHRha2FubyB0YWt1bWkgIDx0YWthbm8xQGFzaWEu
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5lZWQgdG8gc3dhcCBnbHlwaHMgZm9yIHZlcnRpY2FsIHdyaXRpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2OTczCisKKyAgICAgICAgTWFk
ZSBjaGFuZ2VzIHRvIHBhc3MgdGhlIHdyaXRpbmctbW9kZSBvcmllbnRhdGlvbiBmbGFnIGluIFJl
bmRlclN0eWxlIGRvd24gdG8gRm9udFBsYXRmb3JtRGF0YSwKKyAgICAgICAgYW5kIHVsdGltYXRl
bHkgdG8gQ29yZVRleHQgQVBJcyBpbiBib3RoIGZvbnQgY29tcGxleCBwYXRoIGFuZCBmYXN0IHBh
dGguCisKKyAgICAgICAgVGVzdHM6IGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRl
eHQtZ2x5cGgtdGVzdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3RleHQvaW50ZXJuYXRpb25h
bC92ZXJ0aWNhbC10ZXh0LW1ldHJpY3MtdGVzdC5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmV4
cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVk
IHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRPcmllbnRhdGlvbi5oLgorICAgICAgICAqIGNzcy9DU1NG
b250RmFjZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNvdXJjZTo6
Z2V0Rm9udERhdGEpOiBBZGRlZCBmb250IG9yaWVudGF0aW9uIHBhcmFtZXRlciB0byBTaW1wbGVG
b250RGF0YS4KKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KTogU2V0IGFwcHJvcHJpYXRl
IGZvbnQgb3JpZW50YXRpb24gdG8gdGhlIGZvbnQgZGVzY3JpcHRpb24KKyAgICAgICAgd2hlbiB3
cml0aW5nLW1vZGUgaXMgYmVpbmcgc3BlY2lmaWVkLgorICAgICAgICAqIGxvYWRlci9DYWNoZWRG
b250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21D
dXN0b21EYXRhKTogTWFkZSB0byBwYXNzIGZvbnQgb3JpZW50YXRpb24gdG8gRm9udFBsYXRmb3Jt
RGF0YS4KKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkRm9udC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHA6IEFkZGVkIGZvbnQgb3JpZW50YXRpb24gdG8gRm9udFBs
YXRmb3JtRGF0YUNhY2hlS2V5CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhQ2Fj
aGVLZXk6OkZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpGb250
UGxhdGZvcm1EYXRhQ2FjaGVLZXk6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6Y29t
cHV0ZUhhc2gpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRDYWNoZWRGb250UGxh
dGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24u
aDogQWRkZWQgZm9udCBvcmllbnRhdGlvbiBzdXBwb3J0IHRvIEZvbnREZXNjcmlwdGlvbiBjbGFz
cworICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpGb250RGVzY3JpcHRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpvcmllbnRhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnNldE9yaWVudGF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udE9yaWVudGF0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6IENoYW5nZWQgdG8gcGFzcyBmb250IG9yaWVu
dGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3Rv
bVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOiBDaGFuZ2VkIHRvIHBhc3MgZm9u
dCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhLmg6IEFkZGVkIGZvbnQgb3JpZW50YXRpb24g
c3VwcG9ydCB0byBGb250UGxhdGZvcm1EYXRhIGNsYXNzCisgICAgICAgIChXZWJDb3JlOjpGb250
UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQ
bGF0Zm9ybURhdGE6Om9yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9y
bURhdGE6Omhhc2gpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6b3BlcmF0
b3I9PSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0
YUNvY29hLm1tOiBBZGRlZCBmb250IG9yaWVudGF0aW9uIHN1cHBvcnQKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udFBsYXRmb3JtRGF0YTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQ
bGF0Zm9ybURhdGE6OmFsbG93c0xpZ2F0dXJlcyk6IERvbid0IGFsbG93IGxpZ2F0dXJlcyB3aGVu
IHRoZSBmb250IGlzIHZlcnRpY2FsIG9yaWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dFBsYXRmb3JtRGF0YTo6ZGVzY3JpcHRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2d0ay9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUGFuZ28uY3BwOiBDaGFuZ2VkIHRvIHBhc3MgZm9u
dCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOiBDaGFuZ2VkIHRv
IHBhc3MgZm9udCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDogQ2hh
bmdlZCB0byBwYXNzIGZvbnQgb3JpZW50YXRpb24gdG8gZm9udFBsYXRmb3JtRGF0YSgpCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbTogQWRkZWQgZm9udCBv
cmllbnRhdGlvbiBwYXJhbWV0ZXIgd2hlbiBjcmVhdGluZyBGb250UGxhdGZvcm1EYXRhIG9iamVj
dC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0Rm9udERhdGFGb3JDaGFyYWN0ZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwOiBBZGRlZCBmb250IG9yaWVudGF0aW9uIHBhcmFtZXRlciB3aGVuIGNyZWF0aW5nIEZvbnRQ
bGF0Zm9ybURhdGEgb2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3Jt
RGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDogQ2hhbmdlZCB0byBwYXNzIGZvbnQgb3JpZW50YXRp
b24gcGFyYW1ldGVyIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9HbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
bHlwaFBhZ2U6OmZpbGwpOiBDaGFuZ2VkIHRvIHVzZSBDb3JlVGV4dCB0byBleHRyYWN0IGdseXBo
cyB3aGVuIHRoZSBjdXJyZW50IGZvbnQgaXMgdmVydGljYWwgb3JpZW50YXRpb24uCisgICAgICAg
IENvcmVUZXh0IGF1dG9tYXRpY2FsbHkgc3dhcHMgZ2x5cGhzIHdpdGggdmVydGljYWwgdmFyaWFu
dHMgd2hlbiB0aGUgZm9udCBvcmllbnRhdGlvbiBpcyB2ZXJ0aWNhbC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHA6IEFkZGVkIHZlcnRp
Y2FsIGZvcm0gYXR0cmlidXRlIHRvIHRoZSBhdHRyaWJ1dGUgZGljdGlvbmFyeSBmb3IgYSBDVExp
bmUuCisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6Z2V0Q0ZTdHJpbmdBdHRyaWJ1
dGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Cb3VuZHNGb3JH
bHlwaCk6IENoYW5nZWQgdG8gdXNlIENvcmVUZXh0IChmcm9tIENHKSB0byBzdXBwb3J0IHZlcnRp
Y2FsIG1ldHJpY3MuCisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1X
aWR0aEZvckdseXBoKTogTWFkZSB0byB1c2UgQ29yZVRleHQsIGluc3RlYWQgb2Ygd2tHZXRHbHlw
aFRyYW5zZm9ybWVkQWR2YW5jZXMsCisgICAgICAgIHRvIGdldCB2ZXJ0aWNhbCBtZXRyaWNzIHdo
ZW4gdGhlIGZvbnQgb3JpZW50YXRpb24gaXMgdmVydGljYWwuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOiBDaGFuZ2VkIHRvIHBhc3MgZm9u
dCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9xdC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUXQuY3BwOiBDaGFuZ2VkIHRvIHBhc3Mg
Zm9udCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6IENoYW5nZWQg
dG8gcGFzcyBmb250IG9yaWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAo
V2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6IENo
YW5nZWQgdG8gcGFzcyBmb250IG9yaWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDog
Q2hhbmdlZCB0byBwYXNzIGZvbnQgb3JpZW50YXRpb24gdG8gZm9udFBsYXRmb3JtRGF0YSgpCisg
ICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRh
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0
YS5oOiBDaGFuZ2VkIHRvIHBhc3MgZm9udCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRh
KCkKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0
YUNhaXJvLmNwcDogQ2hhbmdlZCB0byBwYXNzIGZvbnQgb3JpZW50YXRpb24gdG8gZm9udFBsYXRm
b3JtRGF0YSgpCisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250
UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YUNhaXJvLmg6IENoYW5nZWQgdG8gcGFzcyBmb250IG9yaWVudGF0aW9uIHRv
IGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOiBDaGFuZ2VkIHRvIHBhc3MgZm9udCBvcmllbnRhdGlv
biB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0
Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3dpbmNlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDogQ2hhbmdlZCB0byBwYXNzIGZvbnQgb3Jp
ZW50YXRpb24gdG8gZm9udFBsYXRmb3JtRGF0YSgpCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd3gvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6IENoYW5nZWQgdG8gcGFzcyBmb250IG9y
aWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvd3gvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOiBDaGFuZ2VkIHRvIHBhc3MgZm9u
dCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKwogMjAxMC0xMC0yMCAgRGlyayBT
Y2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMg
S2xpbmcuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMzgzLDcgKzM4Myw3IEBAIF9fWk43V2ViQ29yZTE2RGV2
aWNlTW90aW9uRGF0YTEyQWNjZWxlcmEKIF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTEy
Um90YXRpb25SYXRlNmNyZWF0ZUViZGJkYmQKIF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0
YTZjcmVhdGVFTjNXVEYxMFBhc3NSZWZQdHJJTlMwXzEyQWNjZWxlcmF0aW9uRUVFUzRfTlMyX0lO
UzBfMTJSb3RhdGlvblJhdGVFRUViZAogX19aTjdXZWJDb3JlMTZGb250RmFsbGJhY2tMaXN0MTVy
ZWxlYXNlRm9udERhdGFFdgotX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhQzFFUDZOU0Zv
bnRiYgorX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhQzFFUDZOU0ZvbnRiYk5TXzE1Rm9u
dE9yaWVudGF0aW9uRQogX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhRDFFdgogX19aTjdX
ZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MTNzZXRBdXRvZmlsbGVkRWIKIF9fWk43V2ViQ29yZTE2
TGVnYWN5V2ViQXJjaGl2ZTE5Y3JlYXRlRnJvbVNlbGVjdGlvbkVQTlNfNUZyYW1lRQpJbmRleDog
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDcwMTQy
KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTU1MTUsNiArNTUxNSw3IEBACiAJCUY1QzA0MUU3MEZGQ0E5NkQwMDgzOUQ0QSAv
KiBKU0hUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1QzA0MUUyMEZGQ0E5NkQwMDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlz
dEVsZW1lbnQuaCAqLzsgfTsKIAkJRjVEM0E1N0MxMDZCODNCMzAwNTQ1Mjk3IC8qIERhdGVDb21w
b25lbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1RDNBNTdBMTA2QjgzQjMwMDU0NTI5NyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgKi87IH07CiAJ
CUY1RDNBNTdEMTA2QjgzQjMwMDU0NTI5NyAvKiBEYXRlQ29tcG9uZW50cy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVEM0E1N0IxMDZCODNCMzAwNTQ1
Mjk3IC8qIERhdGVDb21wb25lbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJRjdBMDM0QzQxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjdB
MDM0QzMxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRhdGlvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY5MTZDNDhEMERCNTEwRjgwMDc2
Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOTE2QzQ4QjBEQjUxMEY4MDA3NkNEODMg
LyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwICovOyB9OwogCQlGOTE2QzQ4RTBE
QjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5MTZDNDhDMERCNTEwRjgw
MDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oICovOyB9OwogCQlGOThG
RkY0NDExQTI2NzYyMDBGNTQ4RTggLyogQ1NTT01VdGlscy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOThGRkY0MjExQTI2NzYyMDBGNTQ4RTggLyog
Q1NTT01VdGlscy5jcHAgKi87IH07CkBAIC0xMTU1NSw2ICsxMTU1Niw3IEBACiAJCUY1QzI4Njk1
MDI4NDZEQ0QwMTg2MzVDQSAvKiBDb2NvYS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENv
Y29hLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvY29hLmZy
YW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJRjVEM0E1N0ExMDZCODNC
MzAwNTQ1Mjk3IC8qIERhdGVDb21wb25lbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERhdGVDb21wb25lbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjVEM0E1N0IxMDZCODNCMzAwNTQ1Mjk3IC8qIERhdGVDb21wb25lbnRzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVDb21wb25lbnRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY3QTAzNEMzMTI2QkY2QkUwMDdEQzE5RSAvKiBGb250T3JpZW50
YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udE9yaWVudGF0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY4MjE2Mjk5MDI5RjRGQjUwMTAwMDEz
MSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgcGF0aCA9IEphdmFTY3Jp
cHRDb3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJ
RjkxNkM0OEIwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY5MTZD
NDhDMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NDc4LDYgKzE2NDgwLDcg
QEAKIAkJCQlCMkMzREE1ODBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udEZhbWlseS5jcHAgKi8sCiAJ
CQkJQjJDM0RBNTkwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRGYW1pbHkuaCAqLywKIAkJCQk3MjYy
NkUwMTBFRjAyMkZFMDBBMDdFMjAgLyogRm9udEZhc3RQYXRoLmNwcCAqLywKKwkJCQlGN0EwMzRD
MzEyNkJGNkJFMDA3REMxOUUgLyogRm9udE9yaWVudGF0aW9uLmggKi8sCiAJCQkJMzdBQ0NFNDEw
REEyOTgwRjAwODlFNjAyIC8qIEZvbnRSZW5kZXJpbmdNb2RlLmggKi8sCiAJCQkJQjJDM0RBNUEw
RDAwNkNENjAwRUY2RjI2IC8qIEZvbnRTZWxlY3Rvci5oICovLAogCQkJCTM3MjAyMTk4MTA2MjEz
QzYwMEYyNUM0QiAvKiBGb250U21vb3RoaW5nTW9kZS5oICovLApAQCAtMjEwODksNiArMjEwOTIs
NyBAQAogCQkJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0RkEzQjkwQjEyNUNEMTIyMDAzMDBCQUQgLyogSW5zcGVjdG9yU3RhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3MjhDMzE0MTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBB
Y2N1bXVsYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjdBMDM0QzQxMjZCRjZCRTAwN0RDMTlF
IC8qIEZvbnRPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgxQ0RGQjgxMjZFQ0ZE
QjAwRDIxNUNBIC8qIERlcHJlY2F0ZWRTVkdBbmltYXRlZFByb3BlcnR5LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwODFDREZCOTEyNkVDRkRCMDBEMjE1Q0EgLyogRGVwcmVjYXRlZFNWR0FuaW1hdGVk
UHJvcGVydHlUcmFpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MUNERkJBMTI2RUNGREIwMEQy
MTVDQSAvKiBEZXByZWNhdGVkU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oIGluIEhlYWRlcnMgKi8sCklu
ZGV4OiBXZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYyLDcgKzE2
Miw3IEBAIFNpbXBsZUZvbnREYXRhKiBDU1NGb250RmFjZVNvdXJjZTo6Z2V0Rm8KICAgICAgICAg
ICAgICAgICBpZiAoIW1fZm9udC0+ZW5zdXJlQ3VzdG9tRm9udERhdGEoKSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgICAgICAgICBmb250RGF0YS5zZXQobmV3IFNp
bXBsZUZvbnREYXRhKG1fZm9udC0+cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoZm9udERlc2Ny
aXB0aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCksIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxp
YywgZm9udERlc2NyaXB0aW9uLnJlbmRlcmluZ01vZGUoKSksIHRydWUsIGZhbHNlKSk7CisgICAg
ICAgICAgICAgICAgZm9udERhdGEuc2V0KG5ldyBTaW1wbGVGb250RGF0YShtX2ZvbnQtPnBsYXRm
b3JtRGF0YUZyb21DdXN0b21EYXRhKGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgp
LCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZvbnREZXNjcmlwdGlvbi5vcmllbnRh
dGlvbigpLCBmb250RGVzY3JpcHRpb24ucmVuZGVyaW5nTW9kZSgpKSwgdHJ1ZSwgZmFsc2UpKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQpJ
bmRleDogV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2NzYsMTAgKzU2
NzYsMTQgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogI2VuZGlm
IAogCiAgICAgLy8gQ1NTIFRleHQgTGF5b3V0IE1vZHVsZSBMZXZlbCAzOiBWZXJ0aWNhbCB3cml0
aW5nIHN1cHBvcnQKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0V3JpdGluZ01vZGU6CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyaXRpbmdNb2RlOiB7CiAgICAgICAgIEhBTkRMRV9JTkhF
UklUX0FORF9JTklUSUFMX0FORF9QUklNSVRJVkUod3JpdGluZ01vZGUsIFdyaXRpbmdNb2RlKQor
ICAgICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uID0gbV9zdHlsZS0+Zm9udERl
c2NyaXB0aW9uKCk7CisgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRPcmllbnRhdGlvbihtX3N0
eWxlLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbCA6IFZlcnRpY2FsKTsK
KyAgICAgICAgaWYgKG1fc3R5bGUtPnNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24p
KQorICAgICAgICAgICAgbV9mb250RGlydHkgPSB0cnVlOwogICAgICAgICByZXR1cm47Ci0KKyAg
ICB9CiAjaWYgRU5BQkxFKFNWRykKICAgICBkZWZhdWx0OgogICAgICAgICAvLyBUcnkgdGhlIFNW
RyBwcm9wZXJ0aWVzCkluZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmNwcAkocmV2aXNpb24gNzAxNDIpCisr
KyBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDcg
KzExNyw3IEBAIGJvb2wgQ2FjaGVkRm9udDo6ZW5zdXJlQ3VzdG9tRm9udERhdGEoKQogICAgIHJl
dHVybiBtX2ZvbnREYXRhOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIENhY2hlZEZvbnQ6OnBsYXRm
b3JtRGF0YUZyb21DdXN0b21EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMs
IEZvbnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhIENhY2hl
ZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgRm9udFJlbmRlcmluZ01v
ZGUgcmVuZGVyaW5nTW9kZSkKIHsKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQogICAgIGlmIChtX2V4
dGVybmFsU1ZHRG9jdW1lbnQpCkBAIC0xMjUsNyArMTI1LDcgQEAgRm9udFBsYXRmb3JtRGF0YSBD
YWNoZWRGb250OjpwbGF0Zm9ybURhdAogI2VuZGlmCiAjaWZkZWYgU1RPUkVfRk9OVF9DVVNUT01f
UExBVEZPUk1fREFUQQogICAgIEFTU0VSVChtX2ZvbnREYXRhKTsKLSAgICByZXR1cm4gbV9mb250
RGF0YS0+Zm9udFBsYXRmb3JtRGF0YShzdGF0aWNfY2FzdDxpbnQ+KHNpemUpLCBib2xkLCBpdGFs
aWMsIHJlbmRlcmluZ01vZGUpOworICAgIHJldHVybiBtX2ZvbnREYXRhLT5mb250UGxhdGZvcm1E
YXRhKHN0YXRpY19jYXN0PGludD4oc2l6ZSksIGJvbGQsIGl0YWxpYywgb3JpZW50YXRpb24sIHJl
bmRlcmluZ01vZGUpOwogI2Vsc2UKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YSgpOwogI2Vu
ZGlmCkluZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9sb2FkZXIvQ2FjaGVkRm9udC5oCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvbG9h
ZGVyL0NhY2hlZEZvbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmlu
ZSBDYWNoZWRGb250X2gKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCisjaW5jbHVkZSAi
Rm9udE9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTYyLDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZvaWQg
YmVnaW5Mb2FkSWZOZWVkZWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGRsKTsKIAogICAgIGJvb2wg
ZW5zdXJlQ3VzdG9tRm9udERhdGEoKTsKLSAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0
YUZyb21DdXN0b21EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRS
ZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0
YSBwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wg
aXRhbGljLCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsLCBGb250UmVuZGVyaW5nTW9kZSA9
IE5vcm1hbFJlbmRlcmluZ01vZGUpOwogCiAjaWYgRU5BQkxFKFNWR19GT05UUykKICAgICBib29s
IGlzU1ZHRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTVkdGb250OyB9CkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUs
MTMgKzU1LDE0IEBAIEZvbnRDYWNoZTo6Rm9udENhY2hlKCkKIAogc3RydWN0IEZvbnRQbGF0Zm9y
bURhdGFDYWNoZUtleSA6IEZhc3RBbGxvY0Jhc2UgewogICAgIEZvbnRQbGF0Zm9ybURhdGFDYWNo
ZUtleShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSA9IEF0b21pY1N0cmluZygpLCB1bnNpZ25l
ZCBzaXplID0gMCwgdW5zaWduZWQgd2VpZ2h0ID0gMCwgYm9vbCBpdGFsaWMgPSBmYWxzZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1ByaW50ZXJGb250ID0gZmFsc2UsIEZv
bnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzUHJpbnRlckZvbnQgPSBmYWxzZSwgRm9u
dFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUsIEZvbnRP
cmllbnRhdGlvbiBvcmllbnRhdGlvbiA9IEhvcml6b250YWwpCiAgICAgICAgIDogbV9zaXplKHNp
emUpCiAgICAgICAgICwgbV93ZWlnaHQod2VpZ2h0KQogICAgICAgICAsIG1fZmFtaWx5KGZhbWls
eSkKICAgICAgICAgLCBtX2l0YWxpYyhpdGFsaWMpCiAgICAgICAgICwgbV9wcmludGVyRm9udChp
c1ByaW50ZXJGb250KQogICAgICAgICAsIG1fcmVuZGVyaW5nTW9kZShyZW5kZXJpbmdNb2RlKQor
ICAgICAgICAsIG1fb3JpZW50YXRpb24ob3JpZW50YXRpb24pCiAgICAgewogICAgIH0KIApAQCAt
NzIsNyArNzMsNyBAQCBzdHJ1Y3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5IDogRmFzdEFsCiAg
ICAgewogICAgICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UobV9mYW1pbHksIG90aGVyLm1f
ZmFtaWx5KSAmJiBtX3NpemUgPT0gb3RoZXIubV9zaXplICYmIAogICAgICAgICAgICAgICAgbV93
ZWlnaHQgPT0gb3RoZXIubV93ZWlnaHQgJiYgbV9pdGFsaWMgPT0gb3RoZXIubV9pdGFsaWMgJiYg
bV9wcmludGVyRm9udCA9PSBvdGhlci5tX3ByaW50ZXJGb250ICYmCi0gICAgICAgICAgICAgICBt
X3JlbmRlcmluZ01vZGUgPT0gb3RoZXIubV9yZW5kZXJpbmdNb2RlOworICAgICAgICAgICAgICAg
bV9yZW5kZXJpbmdNb2RlID09IG90aGVyLm1fcmVuZGVyaW5nTW9kZSAmJiBtX29yaWVudGF0aW9u
ID09IG90aGVyLm1fb3JpZW50YXRpb247CiAgICAgfQogCiAgICAgdW5zaWduZWQgbV9zaXplOwpA
QCAtODEsNiArODIsNyBAQCBzdHJ1Y3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5IDogRmFzdEFs
CiAgICAgYm9vbCBtX2l0YWxpYzsKICAgICBib29sIG1fcHJpbnRlckZvbnQ7CiAgICAgRm9udFJl
bmRlcmluZ01vZGUgbV9yZW5kZXJpbmdNb2RlOworICAgIEZvbnRPcmllbnRhdGlvbiBtX29yaWVu
dGF0aW9uOwogCiBwcml2YXRlOgogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoVGFibGVEZWxldGVk
U2l6ZSgpIHsgcmV0dXJuIDB4RkZGRkZGRkZVOyB9CkBAIC05Miw3ICs5NCw3IEBAIGlubGluZSB1
bnNpZ25lZCBjb21wdXRlSGFzaChjb25zdCBGb250UGwKICAgICAgICAgQ2FzZUZvbGRpbmdIYXNo
OjpoYXNoKGZvbnRLZXkubV9mYW1pbHkpLAogICAgICAgICBmb250S2V5Lm1fc2l6ZSwKICAgICAg
ICAgZm9udEtleS5tX3dlaWdodCwKLSAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRL
ZXkubV9pdGFsaWMpIDw8IDIgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5tX3ByaW50
ZXJGb250KSA8PCAxIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9yZW5kZXJpbmdN
b2RlKQorICAgICAgICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5tX29yaWVudGF0aW9u
KSA8PCAzIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9pdGFsaWMpIDw8IDIgfCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5tX3ByaW50ZXJGb250KSA8PCAxIHwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9yZW5kZXJpbmdNb2RlKQogICAgIH07CiAgICAgcmV0
dXJuIFN0cmluZ0ltcGw6OmNvbXB1dGVIYXNoKHJlaW50ZXJwcmV0X2Nhc3Q8VUNoYXIqPihoYXNo
Q29kZXMpLCBzaXplb2YoaGFzaENvZGVzKSAvIHNpemVvZihVQ2hhcikpOwogfQpAQCAtMTkxLDcg
KzE5Myw3IEBAIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm8KICAgICB9
CiAKICAgICBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkga2V5KGZhbWlseU5hbWUsIGZvbnREZXNj
cmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpLCBmb250RGVzY3JpcHRpb24ud2VpZ2h0KCksIGZv
bnREZXNjcmlwdGlvbi5pdGFsaWMoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZvbnREZXNjcmlwdGlvbi51c2VQcmludGVyRm9udCgpLCBmb250RGVzY3JpcHRpb24ucmVuZGVy
aW5nTW9kZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnREZXNjcmlw
dGlvbi51c2VQcmludGVyRm9udCgpLCBmb250RGVzY3JpcHRpb24ucmVuZGVyaW5nTW9kZSgpLCBm
b250RGVzY3JpcHRpb24ub3JpZW50YXRpb24oKSk7CiAgICAgRm9udFBsYXRmb3JtRGF0YSogcmVz
dWx0ID0gMDsKICAgICBib29sIGZvdW5kUmVzdWx0OwogICAgIEZvbnRQbGF0Zm9ybURhdGFDYWNo
ZTo6aXRlcmF0b3IgaXQgPSBnRm9udFBsYXRmb3JtRGF0YUNhY2hlLT5maW5kKGtleSk7CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgJKHJldmlzaW9u
IDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAko
d29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2RlZmluZSBGb250RGVzY3JpcHRpb25f
aAogCiAjaW5jbHVkZSAiRm9udEZhbWlseS5oIgorI2luY2x1ZGUgIkZvbnRPcmllbnRhdGlvbi5o
IgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSAiRm9udFNtb290aGlu
Z01vZGUuaCIKICNpbmNsdWRlICJGb250VHJhaXRzTWFzay5oIgpAQCAtNTUsNiArNTYsNyBAQCBw
dWJsaWM6CiAgICAgRm9udERlc2NyaXB0aW9uKCkKICAgICAgICAgOiBtX3NwZWNpZmllZFNpemUo
MCkKICAgICAgICAgLCBtX2NvbXB1dGVkU2l6ZSgwKQorICAgICAgICAsIG1fb3JpZW50YXRpb24o
SG9yaXpvbnRhbCkKICAgICAgICAgLCBtX2l0YWxpYyhmYWxzZSkKICAgICAgICAgLCBtX3NtYWxs
Q2FwcyhmYWxzZSkKICAgICAgICAgLCBtX2lzQWJzb2x1dGVTaXplKGZhbHNlKQpAQCAtOTQsNiAr
OTYsNyBAQCBwdWJsaWM6CiAKICAgICBGb250VHJhaXRzTWFzayB0cmFpdHNNYXNrKCkgY29uc3Q7
CiAgICAgYm9vbCBpc1NwZWNpZmllZEZvbnQoKSBjb25zdCB7IHJldHVybiBtX2lzU3BlY2lmaWVk
Rm9udDsgfQorICAgIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fb3JpZW50YXRpb247IH0KIAogICAgIHZvaWQgc2V0RmFtaWx5KGNvbnN0IEZvbnRGYW1pbHkm
IGZhbWlseSkgeyBtX2ZhbWlseUxpc3QgPSBmYW1pbHk7IH0KICAgICB2b2lkIHNldENvbXB1dGVk
U2l6ZShmbG9hdCBzKSB7IG1fY29tcHV0ZWRTaXplID0gczsgfQpAQCAtMTEzLDYgKzExNiw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldEZvbnRTbW9vdGhpbmcoRm9udFNtb290aGluZ01vZGUgc21v
b3RoaW5nKSB7IG1fZm9udFNtb290aGluZyA9IHNtb290aGluZzsgfQogICAgIHZvaWQgc2V0VGV4
dFJlbmRlcmluZ01vZGUoVGV4dFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nKSB7IG1fdGV4dFJlbmRl
cmluZyA9IHJlbmRlcmluZzsgfQogICAgIHZvaWQgc2V0SXNTcGVjaWZpZWRGb250KGJvb2wgaXNT
cGVjaWZpZWRGb250KSB7IG1faXNTcGVjaWZpZWRGb250ID0gaXNTcGVjaWZpZWRGb250OyB9Cisg
ICAgdm9pZCBzZXRPcmllbnRhdGlvbihGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24pIHsgbV9v
cmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9CiAKIHByaXZhdGU6CiAgICAgRm9udEZhbWlseSBt
X2ZhbWlseUxpc3Q7IC8vIFRoZSBsaXN0IG9mIGZvbnQgZmFtaWxpZXMgdG8gYmUgdXNlZC4KQEAg
LTEyMSw2ICsxMjUsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyByb3VuZGluZywgbWluaW11bSBmb250IHNpemVzLCBhbmQgem9vbWluZy4KICAgICBmbG9hdCBt
X2NvbXB1dGVkU2l6ZTsgICAgLy8gQ29tcHV0ZWQgc2l6ZSBhZGp1c3RlZCBmb3IgdGhlIG1pbmlt
dW0gZm9udCBzaXplIGFuZCB0aGUgem9vbSBmYWN0b3IuICAKIAorICAgIEZvbnRPcmllbnRhdGlv
biBtX29yaWVudGF0aW9uOworCiAgICAgYm9vbCBtX2l0YWxpYyA6IDE7CiAgICAgYm9vbCBtX3Nt
YWxsQ2FwcyA6IDE7CiAgICAgYm9vbCBtX2lzQWJzb2x1dGVTaXplIDogMTsgICAvLyBXaGV0aGVy
IG9yIG5vdCBDU1Mgc3BlY2lmaWVkIGFuIGV4cGxpY2l0IHNpemUKQEAgLTE1NSw3ICsxNjEsOCBA
QCBpbmxpbmUgYm9vbCBGb250RGVzY3JpcHRpb246Om9wZXJhdG9yPT0oCiAgICAgICAgICYmIG1f
a2V5d29yZFNpemUgPT0gb3RoZXIubV9rZXl3b3JkU2l6ZQogICAgICAgICAmJiBtX2ZvbnRTbW9v
dGhpbmcgPT0gb3RoZXIubV9mb250U21vb3RoaW5nCiAgICAgICAgICYmIG1fdGV4dFJlbmRlcmlu
ZyA9PSBvdGhlci5tX3RleHRSZW5kZXJpbmcKLSAgICAgICAgJiYgbV9pc1NwZWNpZmllZEZvbnQg
PT0gb3RoZXIubV9pc1NwZWNpZmllZEZvbnQ7CisgICAgICAgICYmIG1faXNTcGVjaWZpZWRGb250
ID09IG90aGVyLm1faXNTcGVjaWZpZWRGb250CisgICAgICAgICYmIG1fb3JpZW50YXRpb24gPT0g
b3RoZXIubV9vcmllbnRhdGlvbjsKIH0KIAogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250T3JpZW50YXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRPcmllbnRhdGlvbi5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250T3JpZW50YXRpb24uaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgRm9udE9yaWVudGF0aW9uX2gKKyNkZWZpbmUgRm9udE9yaWVu
dGF0aW9uX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIEZvbnRPcmllbnRhdGlvbiB7
IEhvcml6b250YWwsIFZlcnRpY2FsIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEZvbnRPcmllbnRhdGlvbl9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1NpbXBsZUZvbnREYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9TaW1wbGVGb250RGF0YS5oCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsOSArMzcsNyBA
QAogdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQVRTVVN0eWxlKiBBVFNVU3R5bGU7CiAjZW5kaWYKIAot
I2lmIFVTRShDT1JFX1RFWFQpCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2VuZGlmCiAK
ICNpZiAoUExBVEZPUk0oV0lOKSAmJiAhT1MoV0lOQ0UpKSBcCiAgICAgfHwgKE9TKFdJTkRPV1Mp
ICYmIFBMQVRGT1JNKFdYKSkKQEAgLTEzMCw5ICsxMjgsNyBAQCBwdWJsaWM6CiAgICAgTlNGb250
KiBnZXROU0ZvbnQoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtRGF0YS5uc0ZvbnQoKTsgfQog
I2VuZGlmCiAKLSNpZiBVU0UoQ09SRV9URVhUKQogICAgIENGRGljdGlvbmFyeVJlZiBnZXRDRlN0
cmluZ0F0dHJpYnV0ZXMoVHlwZXNldHRpbmdGZWF0dXJlcykgY29uc3Q7Ci0jZW5kaWYKIAogI2lm
IFVTRShBVFNVSSkKICAgICB2b2lkIGNoZWNrU2hhcGVzQXJhYmljKCkgY29uc3Q7CkBAIC0yMzQs
OSArMjMwLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICNlbmRpZgogCi0jaWYgVVNFKENPUkVfVEVY
VCkKICAgICBtdXRhYmxlIEhhc2hNYXA8dW5zaWduZWQsIFJldGFpblB0cjxDRkRpY3Rpb25hcnlS
ZWY+ID4gbV9DRlN0cmluZ0F0dHJpYnV0ZXM7Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikg
fHwgKE9TKFdJTkRPV1MpICYmIFBMQVRGT1JNKFdYKSkKICAgICBib29sIG1faXNTeXN0ZW1Gb250
OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRD
dXN0b21QbGF0ZgogICAgIGNhaXJvX2ZvbnRfZmFjZV9kZXN0cm95KG1fZm9udEZhY2UpOwogfQog
Ci1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURh
dGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlKQor
Rm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRh
KGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24sIEZvbnRS
ZW5kZXJpbmdNb2RlKQogewogICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKG1fZm9udEZhY2Us
IHNpemUsIGJvbGQsIGl0YWxpYyk7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2aXNpb24g
NzAxNDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsNyBAQAogI2lmbmRlZiBGb250
Q3VzdG9tUGxhdGZvcm1EYXRhX2gKICNkZWZpbmUgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAK
KyNpbmNsdWRlICJGb250T3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9k
ZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CkBAIC0zOCw3ICszOSw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9u
Y29weWEKIHB1YmxpYzoKICAgICBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKEZUX0ZhY2UsIFNoYXJl
ZEJ1ZmZlciopOwogICAgIH5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCk7Ci0gICAgRm9udFBsYXRm
b3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgIEZvbnRQbGF0
Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxp
YywgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3Jt
YWxSZW5kZXJpbmdNb2RlKTsKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBT
dHJpbmcmKTsKIAogcHJpdmF0ZToKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvRm9udFBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNCw2ICsyNCw3IEBACiAjaWZuZGVmIEZvbnRQbGF0Zm9ybURhdGFfaAogI2RlZmlu
ZSBGb250UGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnRPcmllbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogI2lmZGVmIF9fT0JKQ19fCkBAIC01OCw5
ICs1OSwxMCBAQCBpbmxpbmUgQ1RGb250UmVmIHRvQ1RGb250UmVmKE5TRm9udCAqbnNGCiAKIGNs
YXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICBwdWJsaWM6Ci0gICAgRm9udFBsYXRmb3JtRGF0YShm
bG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSkKKyAg
ICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBz
eW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBIb3Jpem9udGFs
KQogICAgICAgICA6IG1fc3ludGhldGljQm9sZChzeW50aGV0aWNCb2xkKQogICAgICAgICAsIG1f
c3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQorICAgICAgICAsIG1fb3JpZW50YXRp
b24ob3JpZW50YXRpb24pCiAgICAgICAgICwgbV9hdHN1Rm9udElEKDApCiAgICAgICAgICwgbV9z
aXplKHNpemUpCiAgICAgICAgICwgbV9mb250KDApCkBAIC03MSwxMSArNzMsMTIgQEAgY2xhc3Mg
Rm9udFBsYXRmb3JtRGF0YSB7CiAgICAgewogICAgIH0KIAotICAgIEZvbnRQbGF0Zm9ybURhdGEo
TlNGb250ICpuc0ZvbnQsIGJvb2wgc3ludGhldGljQm9sZCA9IGZhbHNlLCBib29sIHN5bnRoZXRp
Y09ibGlxdWUgPSBmYWxzZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YShOU0ZvbnQgKm5zRm9udCwg
Ym9vbCBzeW50aGV0aWNCb2xkID0gZmFsc2UsIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IGZhbHNl
LCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsKTsKICAgICAKLSAgICBGb250UGxhdGZvcm1E
YXRhKENHRm9udFJlZiBjZ0ZvbnQsIEFUU1VGb250SUQgZm9udElELCBmbG9hdCBzaXplLCBib29s
IHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSkKKyAgICBGb250UGxhdGZvcm1E
YXRhKENHRm9udFJlZiBjZ0ZvbnQsIEFUU1VGb250SUQgZm9udElELCBmbG9hdCBzaXplLCBib29s
IHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9y
aWVudGF0aW9uKQogICAgICAgICA6IG1fc3ludGhldGljQm9sZChzeW50aGV0aWNCb2xkKQogICAg
ICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQorICAgICAgICAsIG1f
b3JpZW50YXRpb24ob3JpZW50YXRpb24pCiAgICAgICAgICwgbV9hdHN1Rm9udElEKGZvbnRJRCkK
ICAgICAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAgICAgLCBtX2ZvbnQoMCkKQEAgLTk0LDkgKzk3
LDExIEBAIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICAgIGZsb2F0IHNpemUoKSBjb25zdCB7
IHJldHVybiBtX3NpemU7IH0KICAgICBib29sIHN5bnRoZXRpY0JvbGQoKSBjb25zdCB7IHJldHVy
biBtX3N5bnRoZXRpY0JvbGQ7IH0KICAgICBib29sIHN5bnRoZXRpY09ibGlxdWUoKSBjb25zdCB7
IHJldHVybiBtX3N5bnRoZXRpY09ibGlxdWU7IH0KKyAgICBGb250T3JpZW50YXRpb24gb3JpZW50
YXRpb24oKSBjb25zdCB7IHJldHVybiBtX29yaWVudGF0aW9uOyB9CiAKICAgICBib29sIG1fc3lu
dGhldGljQm9sZDsKICAgICBib29sIG1fc3ludGhldGljT2JsaXF1ZTsKKyAgICBGb250T3JpZW50
YXRpb24gbV9vcmllbnRhdGlvbjsKIAogICAgIEFUU1VGb250SUQgbV9hdHN1Rm9udElEOwogICAg
IGZsb2F0IG1fc2l6ZTsKQEAgLTEwNCw3ICsxMDksNyBAQCBjbGFzcyBGb250UGxhdGZvcm1EYXRh
IHsKICAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX2Zv
bnQgIT0gMCB8fCBtX2NnRm9udCA9PSAwKTsKLSAgICAgICAgdWludHB0cl90IGhhc2hDb2Rlc1sy
XSA9IHsgKHVpbnRwdHJfdCltX2ZvbnQsIG1fc3ludGhldGljQm9sZCA8PCAxIHwgbV9zeW50aGV0
aWNPYmxpcXVlIH07CisgICAgICAgIHVpbnRwdHJfdCBoYXNoQ29kZXNbMl0gPSB7ICh1aW50cHRy
X3QpbV9mb250LCBtX29yaWVudGF0aW9uIDw8IDIgfCBtX3N5bnRoZXRpY0JvbGQgPDwgMSB8IG1f
c3ludGhldGljT2JsaXF1ZSB9OwogICAgICAgICByZXR1cm4gU3RyaW5nSW1wbDo6Y29tcHV0ZUhh
c2gocmVpbnRlcnByZXRfY2FzdDxVQ2hhcio+KGhhc2hDb2RlcyksIHNpemVvZihoYXNoQ29kZXMp
IC8gc2l6ZW9mKFVDaGFyKSk7CiAgICAgfQogCkBAIC0xMTMsNyArMTE4LDcgQEAgY2xhc3MgRm9u
dFBsYXRmb3JtRGF0YSB7CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZvbnRQbGF0Zm9ybURh
dGEmIG90aGVyKSBjb25zdAogICAgIHsgCiAgICAgICAgIHJldHVybiBtX2ZvbnQgPT0gb3RoZXIu
bV9mb250ICYmIG1fc3ludGhldGljQm9sZCA9PSBvdGhlci5tX3N5bnRoZXRpY0JvbGQgJiYgbV9z
eW50aGV0aWNPYmxpcXVlID09IG90aGVyLm1fc3ludGhldGljT2JsaXF1ZSAmJiAKLSAgICAgICAg
ICAgICAgIG1fY2dGb250ID09IG90aGVyLm1fY2dGb250ICYmIG1fc2l6ZSA9PSBvdGhlci5tX3Np
emUgJiYgbV9hdHN1Rm9udElEID09IG90aGVyLm1fYXRzdUZvbnRJRDsKKyAgICAgICAgICAgICAg
IG1fY2dGb250ID09IG90aGVyLm1fY2dGb250ICYmIG1fc2l6ZSA9PSBvdGhlci5tX3NpemUgJiYg
bV9hdHN1Rm9udElEID09IG90aGVyLm1fYXRzdUZvbnRJRCAmJiBtX29yaWVudGF0aW9uID09IG90
aGVyLm1fb3JpZW50YXRpb247CiAgICAgfQogCiAgICAgTlNGb250ICpmb250KCkgY29uc3QgeyBy
ZXR1cm4gbV9mb250OyB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zv
bnRQbGF0Zm9ybURhdGFDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQkocmV2aXNpb24gNzAxNDIpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5t
bQkod29ya2luZyBjb3B5KQpAQCAtNDQsOSArNDQsMTAgQEAgdm9pZCBGb250UGxhdGZvcm1EYXRh
Ojpsb2FkRm9udChOU0ZvbnQqIAogfQogI2VuZGlmICAvLyBQTEFURk9STShNQUMpCiAKLUZvbnRQ
bGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3ludGhl
dGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlKQorRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBs
YXRmb3JtRGF0YShOU0ZvbnQgKm5zRm9udCwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRo
ZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKICAgICA6IG1fc3ludGhl
dGljQm9sZChzeW50aGV0aWNCb2xkKQogICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKHN5bnRoZXRp
Y09ibGlxdWUpCisgICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQogICAgICwgbV9mb250
KG5zRm9udCkKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQog
ICAgIC8vIEZJWE1FOiBDaHJvbWl1bTogVGhlIGZvbGxvd2luZyBjb2RlIGlzbid0IGNvcnJlY3Qg
Zm9yIHRoZSBDaHJvbWl1bSBwb3J0IHNpbmNlIHRoZSBzYW5kYm94IG1pZ2h0CkBAIC04Myw2ICs4
NCw3IEBAIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoY29uc3QKICAgICBtX2Nn
Rm9udCA9IGYubV9jZ0ZvbnQ7CiAgICAgbV9hdHN1Rm9udElEID0gZi5tX2F0c3VGb250SUQ7CiAg
ICAgbV9pc0NvbG9yQml0bWFwRm9udCA9IGYubV9pc0NvbG9yQml0bWFwRm9udDsKKyAgICBtX29y
aWVudGF0aW9uID0gZi5tX29yaWVudGF0aW9uOwogI2lmIFVTRShDT1JFX1RFWFQpCiAgICAgbV9D
VEZvbnQgPSBmLm1fQ1RGb250OwogI2VuZGlmCkBAIC0xMTIsNiArMTE0LDcgQEAgY29uc3QgRm9u
dFBsYXRmb3JtRGF0YSYgRm9udFBsYXRmb3JtRGF0YQogICAgICAgICBDRlJlbGVhc2UobV9mb250
KTsKICAgICBtX2ZvbnQgPSBmLm1fZm9udDsKICAgICBtX2lzQ29sb3JCaXRtYXBGb250ID0gZi5t
X2lzQ29sb3JCaXRtYXBGb250OworICAgIG1fb3JpZW50YXRpb24gPSBmLm1fb3JpZW50YXRpb247
CiAjaWYgVVNFKENPUkVfVEVYVCkKICAgICBtX0NURm9udCA9IGYubV9DVEZvbnQ7CiAjZW5kaWYK
QEAgLTE2OSw3ICsxNzIsNyBAQCBib29sIEZvbnRQbGF0Zm9ybURhdGE6OnJvdW5kc0dseXBoQWR2
YW5jCiAKIGJvb2wgRm9udFBsYXRmb3JtRGF0YTo6YWxsb3dzTGlnYXR1cmVzKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gIVtbbV9mb250IGNvdmVyZWRDaGFyYWN0ZXJTZXRdIGNoYXJhY3RlcklzTWVt
YmVyOidhJ107CisgICAgcmV0dXJuIG1fb3JpZW50YXRpb24gPT0gSG9yaXpvbnRhbCAmJiAhW1tt
X2ZvbnQgY292ZXJlZENoYXJhY3RlclNldF0gY2hhcmFjdGVySXNNZW1iZXI6J2EnXTsKIH0KIAog
I2lmIFVTRShDT1JFX1RFWFQpCkBAIC0xODcsNyArMTkwLDggQEAgQ1RGb250UmVmIEZvbnRQbGF0
Zm9ybURhdGE6OmN0Rm9udCgpIGNvbgogU3RyaW5nIEZvbnRQbGF0Zm9ybURhdGE6OmRlc2NyaXB0
aW9uKCkgY29uc3QKIHsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNnRm9udERlc2NyaXB0
aW9uKEFkb3B0Q0YsIENGQ29weURlc2NyaXB0aW9uKGNnRm9udCgpKSk7Ci0gICAgcmV0dXJuIFN0
cmluZyhjZ0ZvbnREZXNjcmlwdGlvbi5nZXQoKSkgKyAiICIgKyBTdHJpbmc6Om51bWJlcihtX3Np
emUpICsgKG1fc3ludGhldGljQm9sZCA/ICIgc3ludGhldGljIGJvbGQiIDogIiIpICsgKG1fc3lu
dGhldGljT2JsaXF1ZSA/ICIgc3ludGhldGljIG9ibGlxdWUiIDogIiIpOworICAgIHJldHVybiBT
dHJpbmcoY2dGb250RGVzY3JpcHRpb24uZ2V0KCkpICsgIiAiICsgU3RyaW5nOjpudW1iZXIobV9z
aXplKQorICAgICAgICAgICAgKyAobV9zeW50aGV0aWNCb2xkID8gIiBzeW50aGV0aWMgYm9sZCIg
OiAiIikgKyAobV9zeW50aGV0aWNPYmxpcXVlID8gIiBzeW50aGV0aWMgb2JsaXF1ZSIgOiAiIikg
KyAobV9vcmllbnRhdGlvbiA/ICIgdmVydGljYWwgb3JpZW50YXRpb24iIDogIiIpOwogfQogI2Vu
ZGlmCiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGFQYW5nby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ndGsvRm9udEN1c3RvbVBsYXRmb3JtRGF0YVBhbmdvLmNwcAkocmV2aXNpb24gNzAxNDIpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUGFu
Z28uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBAIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGE6On5Gb250Q3VzdG9tUGxhdGYKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3Vz
dG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJv
b2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29s
IGl0YWxpYywgRm9udE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICByZXR1
cm4gRm9udFBsYXRmb3JtRGF0YShtX2ZvbnRGYWNlLCBzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDcgKzMxLDcgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0
b21QbGF0ZgogewogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6
OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRS
ZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpm
b250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3Jp
ZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlKQogewogICAgIHJldHVybiBGb250UGxhdGZvcm1E
YXRhKHNpemUsIGJvbGQsIGl0YWxpYyk7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2aXNp
b24gNzAxNDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2lmbmRlZiBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKICNkZWZpbmUgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9o
CiAKKyNpbmNsdWRlICJGb250T3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5n
TW9kZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CkBAIC0zNyw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBz
dGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIAotICAgICAgICBGb250
UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBp
dGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgICAg
IEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBi
b29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01v
ZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKICAgICB9OwogCiAgICAgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YSogY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXIqKTsKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0JKHJl
dmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hl
TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNDIsNyArMTQyLDggQEAgY29uc3QgU2ltcGxlRm9u
dERhdGEqIEZvbnRDYWNoZTo6Z2V0Rm9udAogCiAgICAgRm9udFBsYXRmb3JtRGF0YSBhbHRlcm5h
dGVGb250KHN1YnN0aXR1dGVGb250LCAKICAgICAgICAgIWZvbnQuaXNQbGF0Zm9ybUZvbnQoKSAm
JiBpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKHdlaWdodCkgJiYgIWlzQXBwS2l0Rm9udFdlaWdodEJv
bGQoc3Vic3RpdHV0ZUZvbnRXZWlnaHQpLAotICAgICAgICAhZm9udC5pc1BsYXRmb3JtRm9udCgp
ICYmICh0cmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkgJiYgIShzdWJzdGl0dXRlRm9udFRyYWl0
cyAmIE5TRm9udEl0YWxpY1RyYWl0KSk7CisgICAgICAgICFmb250LmlzUGxhdGZvcm1Gb250KCkg
JiYgKHRyYWl0cyAmIE5TRm9udEl0YWxpY1RyYWl0KSAmJiAhKHN1YnN0aXR1dGVGb250VHJhaXRz
ICYgTlNGb250SXRhbGljVHJhaXQpLAorICAgICAgICBwbGF0Zm9ybURhdGEubV9vcmllbnRhdGlv
bik7CiAgICAgcmV0dXJuIGdldENhY2hlZEZvbnREYXRhKCZhbHRlcm5hdGVGb250KTsKIH0KIApA
QCAtMjEwLDcgKzIxMSw3IEBAIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Y3JlYXRlRm9u
dFAKICAgICBib29sIHN5bnRoZXRpY0JvbGQgPSBpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKHdlaWdo
dCkgJiYgIWlzQXBwS2l0Rm9udFdlaWdodEJvbGQoYWN0dWFsV2VpZ2h0KTsKICAgICBib29sIHN5
bnRoZXRpY09ibGlxdWUgPSAodHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQpICYmICEoYWN0dWFs
VHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQpOwogCi0gICAgcmV0dXJuIG5ldyBGb250UGxhdGZv
cm1EYXRhKHBsYXRmb3JtRm9udCwgc3ludGhldGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSk7Cisg
ICAgcmV0dXJuIG5ldyBGb250UGxhdGZvcm1EYXRhKHBsYXRmb3JtRm9udCwgc3ludGhldGljQm9s
ZCwgc3ludGhldGljT2JsaXF1ZSwgZm9udERlc2NyaXB0aW9uLm9yaWVudGF0aW9uKCkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24g
NzAxNDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsOSArMzgsOSBAQCBGb250Q3VzdG9tUGxh
dGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiAgICAgQ0dGb250UmVsZWFzZShtX2NnRm9udCk7
CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRm
b3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01v
ZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9y
bURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiBv
cmllbnRhdGlvbiwgRm9udFJlbmRlcmluZ01vZGUpCiB7Ci0gICAgcmV0dXJuIEZvbnRQbGF0Zm9y
bURhdGEobV9jZ0ZvbnQsIChBVFNVRm9udElEKW1fYXRzRm9udCwgc2l6ZSwgYm9sZCwgaXRhbGlj
KTsKKyAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShtX2NnRm9udCwgKEFUU1VGb250SUQpbV9h
dHNGb250LCBzaXplLCBib2xkLCBpdGFsaWMsIG9yaWVudGF0aW9uKTsKIH0KIAogRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YSogY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXIq
IGJ1ZmZlcikKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAog
I2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnRPcmllbnRh
dGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSA8Q29yZUZv
dW5kYXRpb24vQ0ZCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTQxLDcgKzQy
LDcgQEAgc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgOiBOb25jb3B5YQogICAgIHt9CiAg
ICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9u
dFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRl
cmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIGZv
bnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmll
bnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5n
TW9kZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsK
IApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR2x5cGhQYWdlVHJlZU5vZGVN
YWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dseXBo
UGFnZVRyZWVOb2RlTWFjLmNwcAkocmV2aXNpb24gNzAxNDIpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9HbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQwLDE1ICs0MCw3MCBAQCBib29sIEdseXBoUGFnZTo6ZmlsbCh1bnNpZ25lZCBvZmZzZXQsIHVu
CiAgICAgYm9vbCBoYXZlR2x5cGhzID0gZmFsc2U7CiAKICNpZm5kZWYgQlVJTERJTkdfT05fVElH
RVIKLSAgICBWZWN0b3I8Q0dHbHlwaCwgNTEyPiBnbHlwaHMoYnVmZmVyTGVuZ3RoKTsKLSAgICB3
a0dldEdseXBoc0ZvckNoYXJhY3RlcnMoZm9udERhdGEtPnBsYXRmb3JtRGF0YSgpLmNnRm9udCgp
LCBidWZmZXIsIGdseXBocy5kYXRhKCksIGJ1ZmZlckxlbmd0aCk7Ci0KLSAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgaWYgKCFnbHlwaHNbaV0pCi0g
ICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBpLCAwLCAwKTsKLSAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBpLCBn
bHlwaHNbaV0sIGZvbnREYXRhKTsKLSAgICAgICAgICAgIGhhdmVHbHlwaHMgPSB0cnVlOworICAg
IGlmIChmb250RGF0YS0+cGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFs
KSB7CisgICAgICAgIFZlY3RvcjxDR0dseXBoLCA1MTI+IGdseXBocyhidWZmZXJMZW5ndGgpOwor
ICAgICAgICB3a0dldEdseXBoc0ZvckNoYXJhY3RlcnMoZm9udERhdGEtPnBsYXRmb3JtRGF0YSgp
LmNnRm9udCgpLCBidWZmZXIsIGdseXBocy5kYXRhKCksIGJ1ZmZlckxlbmd0aCk7CisgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYg
KCFnbHlwaHNbaV0pCisgICAgICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0
ICsgaSwgMCwgMCk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzZXRHbHlw
aERhdGFGb3JJbmRleChvZmZzZXQgKyBpLCBnbHlwaHNbaV0sIGZvbnREYXRhKTsKKyAgICAgICAg
ICAgICAgICBoYXZlR2x5cGhzID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0gZWxzZSB7CisgICAgICAgIC8vIFdlIGFzayBDb3JlVGV4dCBmb3IgcG9zc2libGUgdmVydGlj
YWwgdmFyaWFudCBnbHlwaHMKKyAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzdHJpbmco
QWRvcHRDRiwgQ0ZTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVyc05vQ29weShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBidWZmZXIsIGJ1ZmZlckxlbmd0aCwga0NGQWxsb2NhdG9yTnVsbCkpOworICAgICAg
ICBSZXRhaW5QdHI8Q0ZBdHRyaWJ1dGVkU3RyaW5nUmVmPiBhdHRyaWJ1dGVkU3RyaW5nKEFkb3B0
Q0YsIENGQXR0cmlidXRlZFN0cmluZ0NyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBzdHJpbmcu
Z2V0KCksIGZvbnREYXRhLT5nZXRDRlN0cmluZ0F0dHJpYnV0ZXMoMCkpKTsKKyAgICAgICAgUmV0
YWluUHRyPENUTGluZVJlZj4gbGluZShBZG9wdENGLCBDVExpbmVDcmVhdGVXaXRoQXR0cmlidXRl
ZFN0cmluZyhhdHRyaWJ1dGVkU3RyaW5nLmdldCgpKSk7CisKKyAgICAgICAgQ0ZBcnJheVJlZiBy
dW5BcnJheSA9IENUTGluZUdldEdseXBoUnVucyhsaW5lLmdldCgpKTsKKyAgICAgICAgQ0ZJbmRl
eCBydW5Db3VudCA9IENGQXJyYXlHZXRDb3VudChydW5BcnJheSk7CisKKyAgICAgICAgLy8gSW5p
dGlhbGl6ZSBnbHlwaCBlbnRyaWVzCisgICAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBp
bmRleCA8IGxlbmd0aDsgKytpbmRleCkKKyAgICAgICAgICAgIHNldEdseXBoRGF0YUZvckluZGV4
KG9mZnNldCArIGluZGV4LCAwLCAwKTsKKworICAgICAgICBWZWN0b3I8Q0dHbHlwaCwgNTEyPiBn
bHlwaFZlY3RvcjsKKyAgICAgICAgVmVjdG9yPENGSW5kZXgsIDUxMj4gaW5kZXhWZWN0b3I7Cisg
ICAgICAgIGJvb2wgZG9uZSA9IGZhbHNlOworICAgICAgICBmb3IgKENGSW5kZXggciA9IDA7IHIg
PCBydW5Db3VudCAmJiAhZG9uZSA7ICsrcikgeworICAgICAgICAgICAgLy8gQ1RMaW5lIGNvdWxk
IG1hcCBjaGFyYWN0ZXJzIG92ZXIgbXVsdGlwbGUgZm9udHMgdXNpbmcgaXRzIG93biBmb250IGZh
bGxiYWNrIGxpc3QuCisgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHBpY2sgcnVucyB0aGF0IHVz
ZSB0aGUgZXhhY3QgZm9udCB3ZSBuZWVkLCBpLmUuLCBmb250RGF0YS0+cGxhdGZvcm1EYXRhKCku
Y3RGb250KCkuCisgICAgICAgICAgICBDVFJ1blJlZiBjdFJ1biA9IHN0YXRpY19jYXN0PENUUnVu
UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KHJ1bkFycmF5LCByKSk7CisgICAgICAgICAgICBB
U1NFUlQoQ0ZHZXRUeXBlSUQoY3RSdW4pID09IENUUnVuR2V0VHlwZUlEKCkpOworCisgICAgICAg
ICAgICBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcyA9IENUUnVuR2V0QXR0cmlidXRlcyhjdFJ1
bik7CisgICAgICAgICAgICBDVEZvbnRSZWYgcnVuRm9udCA9IHN0YXRpY19jYXN0PENURm9udFJl
Zj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoYXR0cmlidXRlcywga0NURm9udEF0dHJpYnV0ZU5hbWUp
KTsKKyAgICAgICAgICAgIFJldGFpblB0cjxDR0ZvbnRSZWY+IHJ1bkNHRm9udChBZG9wdENGLCBD
VEZvbnRDb3B5R3JhcGhpY3NGb250KHJ1bkZvbnQsIDApKTsKKyAgICAgICAgICAgIC8vIFVzZSBD
R0ZvbnQgaGVyZSBhcyBDRkVxdWFsIGZvciBDVEZvbnQgY291bnRzIGFsbCBhdHRyaWJ1dGVzIGZv
ciBmb250LgorICAgICAgICAgICAgaWYgKENGRXF1YWwoZm9udERhdGEtPnBsYXRmb3JtRGF0YSgp
LmNnRm9udCgpLCBydW5DR0ZvbnQuZ2V0KCkpKSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBy
dW4gdXNlcyB0aGUgZm9udCB3ZSB3YW50LiBFeHRyYWN0IGdseXBocy4KKyAgICAgICAgICAgICAg
ICBDRkluZGV4IGdseXBoQ291bnQgPSBDVFJ1bkdldEdseXBoQ291bnQoY3RSdW4pOworICAgICAg
ICAgICAgICAgIGNvbnN0IENHR2x5cGgqIGdseXBocyA9IENUUnVuR2V0R2x5cGhzUHRyKGN0UnVu
KTsKKyAgICAgICAgICAgICAgICBpZiAoIWdseXBocykgeworICAgICAgICAgICAgICAgICAgICBn
bHlwaFZlY3Rvci5yZXNpemUoZ2x5cGhDb3VudCk7CisgICAgICAgICAgICAgICAgICAgIENUUnVu
R2V0R2x5cGhzKGN0UnVuLCBDRlJhbmdlTWFrZSgwLCAwKSwgZ2x5cGhWZWN0b3IuZGF0YSgpKTsK
KyAgICAgICAgICAgICAgICAgICAgZ2x5cGhzID0gZ2x5cGhWZWN0b3IuZGF0YSgpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb25zdCBDRkluZGV4KiBzdHJpbmdJbmRpY2Vz
ID0gQ1RSdW5HZXRTdHJpbmdJbmRpY2VzUHRyKGN0UnVuKTsKKyAgICAgICAgICAgICAgICBpZiAo
IXN0cmluZ0luZGljZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXhWZWN0b3IucmVzaXpl
KGdseXBoQ291bnQpOworICAgICAgICAgICAgICAgICAgICBDVFJ1bkdldFN0cmluZ0luZGljZXMo
Y3RSdW4sIENGUmFuZ2VNYWtlKDAsIDApLCBpbmRleFZlY3Rvci5kYXRhKCkpOworICAgICAgICAg
ICAgICAgICAgICBzdHJpbmdJbmRpY2VzID0gaW5kZXhWZWN0b3IuZGF0YSgpOworICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGdseXBo
Q291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5nSW5kaWNlc1tpXSA+
PSBzdGF0aWNfY2FzdDxDRkluZGV4PihsZW5ndGgpKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChnbHlwaHNbaV0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHNldEdseXBoRGF0YUZvckluZGV4KG9mZnNldCArIHN0cmluZ0lu
ZGljZXNbaV0sIGdseXBoc1tpXSwgZm9udERhdGEpOworICAgICAgICAgICAgICAgICAgICAgICAg
aGF2ZUdseXBocyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAjZWxzZQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3Jl
VGV4dC5jcHAJKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDggKzMw
LDYgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiU2ltcGxlRm9udERhdGEuaCIKIAot
I2lmIFVTRShDT1JFX1RFWFQpCi0KICNpbXBvcnQgIkZvbnQuaCIKICNpbXBvcnQgIkZvbnRDYWNo
ZS5oIgogI2ltcG9ydCAiRm9udERlc2NyaXB0aW9uLmgiCkBAIC02MCwxNiArNTgsMTYgQEAgQ0ZE
aWN0aW9uYXJ5UmVmIFNpbXBsZUZvbnREYXRhOjpnZXRDRlN0cgogICAgIGlmICghKHR5cGVzZXR0
aW5nRmVhdHVyZXMgJiBLZXJuaW5nKSkgewogICAgICAgICBzdGF0aWMgY29uc3QgZmxvYXQga2Vy
bmluZ0FkanVzdG1lbnRWYWx1ZSA9IDA7CiAgICAgICAgIHN0YXRpYyBDRk51bWJlclJlZiBrZXJu
aW5nQWRqdXN0bWVudCA9IENGTnVtYmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51
bWJlckZsb2F0VHlwZSwgJmtlcm5pbmdBZGp1c3RtZW50VmFsdWUpOwotICAgICAgICBzdGF0aWMg
Y29uc3Qgdm9pZCoga2V5c1dpdGhLZXJuaW5nRGlzYWJsZWRbXSA9IHsga0NURm9udEF0dHJpYnV0
ZU5hbWUsIGtDVEtlcm5BdHRyaWJ1dGVOYW1lLCBrQ1RMaWdhdHVyZUF0dHJpYnV0ZU5hbWUgfTsK
KyAgICAgICAgc3RhdGljIGNvbnN0IHZvaWQqIGtleXNXaXRoS2VybmluZ0Rpc2FibGVkW10gPSB7
IGtDVEZvbnRBdHRyaWJ1dGVOYW1lLCBrQ1RLZXJuQXR0cmlidXRlTmFtZSwga0NUTGlnYXR1cmVB
dHRyaWJ1dGVOYW1lLCBrQ1RWZXJ0aWNhbEZvcm1zQXR0cmlidXRlTmFtZSB9OwogICAgICAgICBj
b25zdCB2b2lkKiB2YWx1ZXNXaXRoS2VybmluZ0Rpc2FibGVkW10gPSB7IHBsYXRmb3JtRGF0YSgp
LmN0Rm9udCgpLCBrZXJuaW5nQWRqdXN0bWVudCwgYWxsb3dMaWdhdHVyZXMKLSAgICAgICAgICAg
ID8gbGlnYXR1cmVzQWxsb3dlZCA6IGxpZ2F0dXJlc05vdEFsbG93ZWQgfTsKKyAgICAgICAgICAg
ID8gbGlnYXR1cmVzQWxsb3dlZCA6IGxpZ2F0dXJlc05vdEFsbG93ZWQsIHBsYXRmb3JtRGF0YSgp
Lm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWwgPyBrQ0ZCb29sZWFuVHJ1ZSA6IGtDRkJvb2xlYW5G
YWxzZSB9OwogICAgICAgICBhdHRyaWJ1dGVzRGljdGlvbmFyeS5hZG9wdENGKENGRGljdGlvbmFy
eUNyZWF0ZSgwLCBrZXlzV2l0aEtlcm5pbmdEaXNhYmxlZCwgdmFsdWVzV2l0aEtlcm5pbmdEaXNh
YmxlZCwKICAgICAgICAgICAgIHNpemVvZihrZXlzV2l0aEtlcm5pbmdEaXNhYmxlZCkgLyBzaXpl
b2YoKmtleXNXaXRoS2VybmluZ0Rpc2FibGVkKSwKICAgICAgICAgICAgICZrQ0ZDb3B5U3RyaW5n
RGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3Mp
KTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBCeSBvbWl0dGluZyB0aGUga0NUS2VybkF0dHJp
YnV0ZU5hbWUgYXR0cmlidXRlLCB3ZSBnZXQgQ29yZSBUZXh0J3Mgc3RhbmRhcmQga2VybmluZy4K
LSAgICAgICAgc3RhdGljIGNvbnN0IHZvaWQqIGtleXNXaXRoS2VybmluZ0VuYWJsZWRbXSA9IHsg
a0NURm9udEF0dHJpYnV0ZU5hbWUsIGtDVExpZ2F0dXJlQXR0cmlidXRlTmFtZSB9OwotICAgICAg
ICBjb25zdCB2b2lkKiB2YWx1ZXNXaXRoS2VybmluZ0VuYWJsZWRbXSA9IHsgcGxhdGZvcm1EYXRh
KCkuY3RGb250KCksIGFsbG93TGlnYXR1cmVzID8gbGlnYXR1cmVzQWxsb3dlZCA6IGxpZ2F0dXJl
c05vdEFsbG93ZWQgfTsKKyAgICAgICAgc3RhdGljIGNvbnN0IHZvaWQqIGtleXNXaXRoS2Vybmlu
Z0VuYWJsZWRbXSA9IHsga0NURm9udEF0dHJpYnV0ZU5hbWUsIGtDVExpZ2F0dXJlQXR0cmlidXRl
TmFtZSwga0NUVmVydGljYWxGb3Jtc0F0dHJpYnV0ZU5hbWUgfTsKKyAgICAgICAgY29uc3Qgdm9p
ZCogdmFsdWVzV2l0aEtlcm5pbmdFbmFibGVkW10gPSB7IHBsYXRmb3JtRGF0YSgpLmN0Rm9udCgp
LCBhbGxvd0xpZ2F0dXJlcyA/IGxpZ2F0dXJlc0FsbG93ZWQgOiBsaWdhdHVyZXNOb3RBbGxvd2Vk
LCBwbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsID8ga0NGQm9vbGVhblRy
dWUgOiBrQ0ZCb29sZWFuRmFsc2UgfTsKICAgICAgICAgYXR0cmlidXRlc0RpY3Rpb25hcnkuYWRv
cHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoMCwga2V5c1dpdGhLZXJuaW5nRW5hYmxlZCwgdmFsdWVz
V2l0aEtlcm5pbmdFbmFibGVkLAogICAgICAgICAgICAgc2l6ZW9mKGtleXNXaXRoS2VybmluZ0Vu
YWJsZWQpIC8gc2l6ZW9mKCprZXlzV2l0aEtlcm5pbmdFbmFibGVkKSwKICAgICAgICAgICAgICZr
Q0ZDb3B5U3RyaW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFs
dWVDYWxsQmFja3MpKTsKQEAgLTc5LDUgKzc3LDMgQEAgQ0ZEaWN0aW9uYXJ5UmVmIFNpbXBsZUZv
bnREYXRhOjpnZXRDRlN0cgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERh
dGFNYWMubW0JKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvU2ltcGxlRm9udERhdGFNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQxNywxMSArNDE3LDkg
QEAgRmxvYXRSZWN0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUJvdW5kcwogewogICAgIEZsb2F0
UmVjdCBib3VuZGluZ0JveDsKICNpZm5kZWYgQlVJTERJTkdfT05fVElHRVIKLSAgICBDR1JlY3Qg
Ym94OwotICAgIENHRm9udEdldEdseXBoQkJveGVzKHBsYXRmb3JtRGF0YSgpLmNnRm9udCgpLCAm
Z2x5cGgsIDEsICZib3gpOwotICAgIGZsb2F0IHBvaW50U2l6ZSA9IHBsYXRmb3JtRGF0YSgpLm1f
c2l6ZTsKLSAgICBDR0Zsb2F0IHNjYWxlID0gcG9pbnRTaXplIC8gdW5pdHNQZXJFbSgpOwotICAg
IGJvdW5kaW5nQm94ID0gQ0dSZWN0QXBwbHlBZmZpbmVUcmFuc2Zvcm0oYm94LCBDR0FmZmluZVRy
YW5zZm9ybU1ha2VTY2FsZShzY2FsZSwgLXNjYWxlKSk7CisgICAgYm91bmRpbmdCb3ggPSBDVEZv
bnRHZXRCb3VuZGluZ1JlY3RzRm9yR2x5cGhzKG1fcGxhdGZvcm1EYXRhLmN0Rm9udCgpLAorICAg
ICAgICAgICAgICAgICAgICBtX3BsYXRmb3JtRGF0YS5vcmllbnRhdGlvbigpID09IFZlcnRpY2Fs
ID8ga0NURm9udFZlcnRpY2FsT3JpZW50YXRpb24gOiBrQ1RGb250SG9yaXpvbnRhbE9yaWVudGF0
aW9uLCAmZ2x5cGgsIDAsIDEpOworICAgIGJvdW5kaW5nQm94LnNldFkoLWJvdW5kaW5nQm94LmJv
dHRvbSgpKTsKICNlbHNlCiAgICAgLy8gRklYTUU6IEN1c3RvbSBmb250cyBkb24ndCBoYXZlIE5T
Rm9udHMsIHNvIHRoaXMgZnVuY3Rpb24gZG9lc24ndCBjb21wdXRlIGNvcnJlY3QgYm91bmRzIGZv
ciB0aGVzZSBvbiBUaWdlci4KICAgICBpZiAoIW1fcGxhdGZvcm1EYXRhLmZvbnQoKSkKQEAgLTQz
NywxNCArNDM1LDE4IEBAIEZsb2F0UmVjdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Cb3VuZHMK
IAogZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbHlwaChHbHlwaCBnbHlw
aCkgY29uc3QKIHsKLSAgICBOU0ZvbnQqIGZvbnQgPSBwbGF0Zm9ybURhdGEoKS5mb250KCk7Ci0g
ICAgZmxvYXQgcG9pbnRTaXplID0gcGxhdGZvcm1EYXRhKCkubV9zaXplOwotICAgIENHQWZmaW5l
VHJhbnNmb3JtIG0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZShwb2ludFNpemUsIHBvaW50
U2l6ZSk7CiAgICAgQ0dTaXplIGFkdmFuY2U7Ci0gICAgaWYgKCF3a0dldEdseXBoVHJhbnNmb3Jt
ZWRBZHZhbmNlcyhwbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgZm9udCwgJm0sICZnbHlwaCwgJmFk
dmFuY2UpKSB7Ci0gICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGNhY2hlIGdseXBoIHdpZHRo
cyBmb3IgJUAgJWYiLCBbZm9udCBkaXNwbGF5TmFtZV0sIHBvaW50U2l6ZSk7Ci0gICAgICAgIGFk
dmFuY2Uud2lkdGggPSAwOwotICAgIH0KKyAgICBpZiAobV9wbGF0Zm9ybURhdGEub3JpZW50YXRp
b24oKSA9PSBIb3Jpem9udGFsKSB7CisgICAgICAgIE5TRm9udCogZm9udCA9IHBsYXRmb3JtRGF0
YSgpLmZvbnQoKTsKKyAgICAgICAgZmxvYXQgcG9pbnRTaXplID0gcGxhdGZvcm1EYXRhKCkubV9z
aXplOworICAgICAgICBDR0FmZmluZVRyYW5zZm9ybSBtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtl
U2NhbGUocG9pbnRTaXplLCBwb2ludFNpemUpOworICAgICAgICBpZiAoIXdrR2V0R2x5cGhUcmFu
c2Zvcm1lZEFkdmFuY2VzKHBsYXRmb3JtRGF0YSgpLmNnRm9udCgpLCBmb250LCAmbSwgJmdseXBo
LCAmYWR2YW5jZSkpIHsKKyAgICAgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGNhY2hlIGds
eXBoIHdpZHRocyBmb3IgJUAgJWYiLCBbZm9udCBkaXNwbGF5TmFtZV0sIHBvaW50U2l6ZSk7Cisg
ICAgICAgICAgICBhZHZhbmNlLndpZHRoID0gMDsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAg
ICAgICBDVEZvbnRHZXRBZHZhbmNlc0ZvckdseXBocyhtX3BsYXRmb3JtRGF0YS5jdEZvbnQoKSwg
a0NURm9udFZlcnRpY2FsT3JpZW50YXRpb24sICZnbHlwaCwgJmFkdmFuY2UsIDEpOworCiAgICAg
cmV0dXJuIGFkdmFuY2Uud2lkdGggKyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQ7CiB9CiAKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5oCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3
IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnRPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUg
IkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTM3LDcgKzM4LDcgQEAgc3RydWN0IEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEgOiBOb25jb3B5YQogICAgIC8vIGZvciB1c2Ugd2l0aCBRRm9udERhdGFiYXNl
OjphZGRBcHBsaWNhdGlvbkZvbnQvcmVtb3ZlQXBwbGljYXRpb25Gb250CiAgICAgaW50IG1faGFu
ZGxlOwogCi0gICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBi
b29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmlu
Z01vZGUpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwg
Ym9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9u
dFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKIAogICAgIHN0YXRpYyBib29s
IHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwogfTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YVF0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFRdC5j
cHAJKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBA
IEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGYKICAgICBRRm9udERhdGFi
YXNlOjpyZW1vdmVBcHBsaWNhdGlvbkZvbnQobV9oYW5kbGUpOwogfQogCi1Gb250UGxhdGZvcm1E
YXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJv
b2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0
YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29s
IGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlKQog
ewogICAgIFFGb250IGZvbnQ7CiAgICAgZm9udC5zZXRGYW1pbHkoUUZvbnREYXRhYmFzZTo6YXBw
bGljYXRpb25Gb250RmFtaWxpZXMobV9oYW5kbGUpWzBdKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAJKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBA
IEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGYKICNlbmRpZgogfQogCi1G
b250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEo
aW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlIG1vZGUp
CitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURh
dGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiwgRm9u
dFJlbmRlcmluZ01vZGUgbW9kZSkKIHsKICNpZiBPUyhXSU5ET1dTKQogICAgIEFTU0VSVChtX2Zv
bnRSZWZlcmVuY2UpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRD
dXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3NraWEvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiA3MDE0MikKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpZm5kZWYgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogCisjaW5jbHVkZSAiRm9u
dE9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNjIsNyAr
NjMsNyBAQCBzdHJ1Y3QgRm9udEN1c3RvbVBsYXRmb3JtRGF0YSA6IE5vbmNvcHlhCiAKICAgICB+
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpOwogCi0gICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxh
dGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLAorICAgIEZvbnRQbGF0
Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxp
YywgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsK
IAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5
LDcgKzU5LDcgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogICAg
IH0KIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxh
dGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBG
b250T3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUpCiB7CiAgICAg
QVNTRVJUKG1fZm9udFJlZmVyZW5jZSk7CiAgICAgQVNTRVJUKFQyZW1iZWRMaWJyYXJ5KCkpOwpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0
YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNzAxNDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIx
LDYgKzIxLDcgQEAKICNpZm5kZWYgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZv
bnRDdXN0b21QbGF0Zm9ybURhdGFfaAogCisjaW5jbHVkZSAiRm9udE9yaWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC00Miw3ICs0Myw3IEBAIHN0cnVjdCBGb250
Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKIAogICAgIH5Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhKCk7CiAKLSAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUs
IGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVy
aW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXpl
LCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsLCBG
b250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOwogCiAgICAgc3RhdGljIGJv
b2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0
YUNhaXJvLmNwcAkocmV2aXNpb24gNzAxNDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw3ICszMiw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGYKICAg
IGNhaXJvX2ZvbnRfZmFjZV9kZXN0cm95KG1fZm9udEZhY2UpOwogfQogCi1Gb250UGxhdGZvcm1E
YXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJv
b2wgYm9sZCwgYm9vbCBpdGFsaWMpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMs
IEZvbnRPcmllbnRhdGlvbikKIHsKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShtX2ZvbnRG
YWNlLCBzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmgJ
KHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1
c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAK
ICNpZm5kZWYgRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvX2gKICNkZWZpbmUgRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YUNhaXJvX2gKIAorI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKQEAg
LTM5LDcgKzQwLDcgQEAgc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgOiBOb25jb3B5YQog
ICAgIH0KICAgICB+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpOwogCi0gICAgRm9udFBsYXRmb3Jt
RGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKTsK
KyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9s
ZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwpOwogCiAgICAgc3Rh
dGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmNwcAkocmV2aXNpb24gNzAxNDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbmNlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3
ICs0NSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGYKICAgICAg
ICAgZ19jdXN0b21Gb250Q2FjaGUtPnVucmVnaXN0ZXJGb250KG1fbmFtZSk7CiB9CiAKLUZvbnRQ
bGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQg
c2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5n
TW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRm
b3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9u
LCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKQogewogICAgIEZvbnREZXNjcmlwdGlv
biBmb250RGVzYzsKICAgICBmb250RGVzYy5zZXRDb21wdXRlZFNpemUoc2l6ZSk7CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNzAxNDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbmNlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjEs
NiArMjEsNyBAQAogI2lmbmRlZiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKICNkZWZpbmUgRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAKKyNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKICNp
bmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgi
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC00NCw3ICs0NSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgICAgICB+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpOwogCi0gICAg
ICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xk
LCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsK
KyAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29s
IGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gZm9udE9yaWVudGF0aW9uID0gSG9y
aXpvbnRhbCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKIAogICAg
ICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIApJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuY3BwCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd3gvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcg
KzMxLDcgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogewogfQog
Ci1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURh
dGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlKQor
Rm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRh
KGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24sIEZvbnRS
ZW5kZXJpbmdNb2RlKQogewogICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKHNpemUsIGJvbGQs
IGl0YWxpYyk7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3d4L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNzAxNDIpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkod29ya2luZyBj
b3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2lmbmRlZiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gK
ICNkZWZpbmUgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAKKyNpbmNsdWRlICJGb250T3JpZW50
YXRpb24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC0zNyw3ICszOCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1h
dChjb25zdCBTdHJpbmcmKTsKIAotICAgICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9y
bURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2Rl
ID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBs
YXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0
aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2Rl
KTsKICAgICB9OwogCiAgICAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YSogY3JlYXRlRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXIqKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDcwMTQyKQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMTAtMjAgIHRha2FubyB0YWt1bWkgIDx0YWthbm8xQGFzaWEuYXBwbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgdG8gc3dh
cCBnbHlwaHMgZm9yIHZlcnRpY2FsIHdyaXRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2OTczCisKKyAgICAgICAgKiBmYXN0L3RleHQvaW50ZXJu
YXRpb25hbC92ZXJ0aWNhbC10ZXh0LWdseXBoLXRlc3QuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1tZXRyaWNzLXRlc3QuaHRtbDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3Zl
cnRpY2FsLXRleHQtZ2x5cGgtdGVzdC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRleHQtZ2x5
cGgtdGVzdC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0
L3RleHQvaW50ZXJuYXRpb25hbC92ZXJ0aWNhbC10ZXh0LWdseXBoLXRlc3QtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwv
dmVydGljYWwtdGV4dC1tZXRyaWNzLXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMC0x
MC0xOSAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50
ZXJuYXRpb25hbC92ZXJ0aWNhbC10ZXh0LWdseXBoLXRlc3QuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC92ZXJ0aWNhbC10ZXh0LWdseXBoLXRl
c3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlv
bmFsL3ZlcnRpY2FsLXRleHQtZ2x5cGgtdGVzdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2
PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+Cis8dGl0
bGU+VmVydGljYWwgdGV4dCBtZXRyaWNzIHRlc3Q8L3RpdGxlPgorPHN0eWxlPgorYm9keSB7Cisg
ICAgZm9udC1mYW1pbHk6ICJIaXJhTWluUHJvLVczIjsKKyAgICBmb250LXNpemU6IGxhcmdlOwor
fQorI2hvcml6b250YWxfVEIgeworICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9udGFs
LXRiOworfQorI2hvcml6b250YWxfQlQgeworICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jp
em9udGFsLWJ0OworfQorI3ZlcnRpY2FsX1JMIHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTog
dmVydGljYWwtcmw7Cit9CisjdmVydGljYWxfTFIgeworICAgIC13ZWJraXQtd3JpdGluZy1tb2Rl
OiB2ZXJ0aWNhbC1scjsKK30KKyNob3Jpem9udGFsX1RCX2NvbXBsZXggeworICAgIC13ZWJraXQt
d3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXRiOworICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6
ZWxlZ2liaWxpdHk7Cit9CisjaG9yaXpvbnRhbF9CVF9jb21wbGV4IHsKKyAgICAtd2Via2l0LXdy
aXRpbmctbW9kZTogaG9yaXpvbnRhbC1idDsKKyAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVs
ZWdpYmlsaXR5OworfQorI3ZlcnRpY2FsX1JMX2NvbXBsZXggeworICAgIC13ZWJraXQtd3JpdGlu
Zy1tb2RlOiB2ZXJ0aWNhbC1ybDsKKyAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmls
aXR5OworfQorI3ZlcnRpY2FsX0xSX2NvbXBsZXggeworICAgIC13ZWJraXQtd3JpdGluZy1tb2Rl
OiB2ZXJ0aWNhbC1scjsKKyAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5Owor
fQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxwPlNpbXBsZSB0
ZXh0IHBhdGg8L3A+Cis8c3BhbiBpZD0idmVydGljYWxfUkwiPmFi44GC44CM44CN44CCPC9zcGFu
Pjxicj4KKzxicj4KKzxocj4KKzxwPkNvbXBsZXggdGV4dCBwYXRoPC9wPgorPHNwYW4gaWQ9InZl
cnRpY2FsX1JMX2NvbXBsZXgiPmFi44GC44CM44CN44CCMeKDnTwvc3Bhbj48YnI+Cis8YnI+Cis8
aHI+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50ZXJu
YXRpb25hbC92ZXJ0aWNhbC10ZXh0LW1ldHJpY3MtdGVzdC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRleHQtbWV0cmljcy10
ZXN0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50ZXJuYXRp
b25hbC92ZXJ0aWNhbC10ZXh0LW1ldHJpY3MtdGVzdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDc4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVx
dWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+Cis8
dGl0bGU+VmVydGljYWwgdGV4dCBtZXRyaWNzIHRlc3Q8L3RpdGxlPgorPHNjcmlwdD4KK2Z1bmN0
aW9uIHByaW50KG1lc3NhZ2UpCit7CisgICAgdmFyIHBhcmFncmFwaCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImxpIik7CisgICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZSIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7Cit9CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICB2YXIgcEVsZW1zID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoInNwYW4iKTsKKyAgICBmb3IgKCBpID0gMCA7IGkgPCBwRWxlbXMubGVuZ3Ro
IDsgKytpICkKKyAgICB7CisgICAgICAgIHZhciBlbGVtID0gcEVsZW1zW2ldOworICAgICAgICBw
cmludCgid2lkdGg9IiArIGVsZW0ub2Zmc2V0V2lkdGgpOworICAgIH0KK30KKzwvc2NyaXB0Pgor
PHN0eWxlPgorYm9keSB7CisgICAgZm9udC1mYW1pbHk6ICJIaXJhTWluUHJvLVczIjsKKyAgICBm
b250LXNpemU6IGxhcmdlOworfQorI2hvcml6b250YWxfVEIgeworICAgIC13ZWJraXQtd3JpdGlu
Zy1tb2RlOiBob3Jpem9udGFsLXRiOworfQorI2hvcml6b250YWxfQlQgeworICAgIC13ZWJraXQt
d3JpdGluZy1tb2RlOiBob3Jpem9udGFsLWJ0OworfQorI3ZlcnRpY2FsX1JMIHsKKyAgICAtd2Vi
a2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7Cit9CisjdmVydGljYWxfTFIgeworICAgIC13
ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsKK30KKyNob3Jpem9udGFsX1RCX2NvbXBs
ZXggeworICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXRiOworICAgIHRleHQt
cmVuZGVyaW5nOiBvcHRpbWl6ZWxlZ2liaWxpdHk7Cit9CisjaG9yaXpvbnRhbF9CVF9jb21wbGV4
IHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC1idDsKKyAgICB0ZXh0LXJl
bmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5OworfQorI3ZlcnRpY2FsX1JMX2NvbXBsZXggewor
ICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsKKyAgICB0ZXh0LXJlbmRlcmlu
Zzogb3B0aW1pemVsZWdpYmlsaXR5OworfQorI3ZlcnRpY2FsX0xSX2NvbXBsZXggeworICAgIC13
ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsKKyAgICB0ZXh0LXJlbmRlcmluZzogb3B0
aW1pemVsZWdpYmlsaXR5OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVz
dCgpIj4KKzxwPlNpbXBsZSB0ZXh0IHBhdGg8L3A+Cis8c3BhbiBpZD0iaG9yaXpvbnRhbF9UQiI+
YWLjgYLjgIzjgI3jgII8L3NwYW4+PGJyPgorPHNwYW4gaWQ9Imhvcml6b250YWxfQlQiPmFi44GC
44CM44CN44CCPC9zcGFuPjxicj4KKzxzcGFuIGlkPSJ2ZXJ0aWNhbF9STCI+YWLjgYLjgIzjgI3j
gII8L3NwYW4+PGJyPgorPHNwYW4gaWQ9InZlcnRpY2FsX0xSIj5hYuOBguOAjOOAjeOAgjwvc3Bh
bj48YnI+Cis8YnI+Cis8aHI+Cis8cD5Db21wbGV4IHRleHQgcGF0aDwvcD4KKzxzcGFuIGlkPSJo
b3Jpem9udGFsX1RCX2NvbXBsZXgiPmFi44GC44CM44CN44CCMeKDnTwvc3Bhbj48YnI+Cis8c3Bh
biBpZD0iaG9yaXpvbnRhbF9CVF9jb21wbGV4Ij5hYuOBguOAjOOAjeOAgjHig508L3NwYW4+PGJy
PgorPHNwYW4gaWQ9InZlcnRpY2FsX1JMX2NvbXBsZXgiPmFi44GC44CM44CN44CCMeKDnTwvc3Bh
bj48YnI+Cis8c3BhbiBpZD0idmVydGljYWxfTFJfY29tcGxleCI+YWLjgYLjgIzjgI3jgIIx4oOd
PC9zcGFuPjxicj4KKzxicj4KKzxocj4KKzxwPjxvbCBpZD1jb25zb2xlPjwvb2w+PC9wPgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9p
bnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRleHQtZ2x5cGgtdGVzdC1leHBlY3RlZC5jaGVja3N1bQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2ludGVybmF0
aW9uYWwvdmVydGljYWwtdGV4dC1nbHlwaC10ZXN0LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFs
L3ZlcnRpY2FsLXRleHQtZ2x5cGgtdGVzdC1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSBAQAorODNhNTdhY2VkZWI5NzllOTM5NTljZjU5ZmU1OWNkZmMKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90
ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1nbHlwaC10ZXN0LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2ludGVybmF0
aW9uYWwvdmVydGljYWwtdGV4dC1nbHlwaC10ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC92ZXJ0
aWNhbC10ZXh0LWdseXBoLXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDI2IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDE6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBm
aW5kIHZhcmlhYmxlOiB0ZXN0CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDQ0Mgor
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NDQyCisgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsMTgpIHNpemUgNzg0eDQxNQorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0
ICgwLDApIHNpemUgNzg0eDI3CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw0KSBz
aXplIDEzOXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDQpIHdpZHRoIDEzOTogIlNpbXBs
ZSB0ZXh0IHBhdGgiCisgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCw0NSkgc2l6
ZSA3ODR4MTI5CisgICAgICAgIFJlbmRlckJsb2NrIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEyMng5
NQorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw5OSkgc2l6ZSA5NXgxOQorICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsOTkpIHdpZHRoIDk1OiAiYWJceHszMDQyfVx4ezMwMEN9
XHh7MzAwRH1ceHszMDAyfSIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMTIyLDc5KSBzaXpl
IDB4MTkKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMCwxMDYpIHNpemUgMHgxOQorICAgICAg
UmVuZGVyQmxvY2sge0hSfSBhdCAoMCwxODMpIHNpemUgNzg0eDIgW2JvcmRlcjogKDFweCBpbnNl
dCAjMDAwMDAwKV0KKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwyMDMpIHNpemUgNzg0eDI3
CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw0KSBzaXplIDE1N3gxOQorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDQpIHdpZHRoIDE1NzogIkNvbXBsZXggdGV4dCBwYXRoIgorICAg
ICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMjQ4KSBzaXplIDc4NHgxNTYKKyAgICAg
ICAgUmVuZGVyQmxvY2sge1NQQU59IGF0ICgwLDApIHNpemUgMTQ5eDEyMgorICAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxMjYpIHNpemUgMTIyeDE5CisgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwxMjYpIHdpZHRoIDEyMjogImFiXHh7MzA0Mn1ceHszMDBDfVx4ezMwMER9XHh7
MzAwMn0xXHh7MjBERH0iCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDE0OSwxMDYpIHNpemUg
MHgxOQorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDEzMykgc2l6ZSAweDE5CisgICAgICBS
ZW5kZXJCbG9jayB7SFJ9IGF0ICgwLDQxMykgc2l6ZSA3ODR4MiBbYm9yZGVyOiAoMXB4IGluc2V0
ICMwMDAwMDApXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9pbnRl
cm5hdGlvbmFsL3ZlcnRpY2FsLXRleHQtbWV0cmljcy10ZXN0LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwv
dmVydGljYWwtdGV4dC1tZXRyaWNzLXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2Fs
LXRleHQtbWV0cmljcy10ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwy
MyBAQAorU2ltcGxlIHRleHQgcGF0aAorCithYuOBguOAjOOAjeOAggorYWLjgYLjgIzjgI3jgIIK
K2Fi44GC44CM44CN44CCCithYuOBguOAjOOAjeOAggorCitDb21wbGV4IHRleHQgcGF0aAorCith
YuOBguOAjOOAjeOAgjHig50KK2Fi44GC44CM44CN44CCMeKDnQorYWLjgYLjgIzjgI3jgIIx4oOd
CithYuOBguOAjOOAjeOAgjHig50KKword2lkdGg9OTMKK3dpZHRoPTkzCit3aWR0aD0xMjIKK3dp
ZHRoPTEyMgord2lkdGg9MTAzCit3aWR0aD0xMDMKK3dpZHRoPTE0OQord2lkdGg9MTQ5CisKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC92ZXJ0
aWNhbC10ZXh0LWdseXBoLXRlc3QtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3Bs
YXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNh
dGlvbi9vY3RldC1zdHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC92ZXJ0aWNhbC10ZXh0LWdseXBoLXRlc3Qt
ZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNh
dGlvbi9vY3RldC1zdHJlYW0KCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBWUFB
QUNhZG9Kd0FBQUM3bWxEUTFCSlEwTWdVSEp2Wm1sc1pRQUFlQUdGClZNOXJFMEVVL2padXFkQWlD
RnByRHJKNGtDSkpXYXRvUmRRMi9SRmlhd3piSDdaRmtHUXpTZFp1TnV2dUpyV2xpT1RpMFNyZVJl
MmgKQi8rQUhucndaQzlLaFZwRktONnJLR0toRnkzeHpXNU10cVhxd001Kzg5NDM3MzF2ZHQ4QURY
TFNOUFdBQk9RTngxS2lFV2xzZkVKcQovSWdBanFJSlFUUWxWZHZzVGlRR1FZTnorWHZuMkhvUGdW
dFd3M3Y3ZDdKM3JaclN0cG9IaFAxQTRFZWEyU3F3N3hkeENsa1NBb2c4CjM2RXB4M1FJMytQWTh1
eVBPVTU1ZU1HMUR5czl4RmtpZkVBMUxjNS9UYmhUelNYVFFJTklPSlQxY1ZJK25OZUxsTmNkQjJs
dVpzYkkKRUwxUGtLYTd6TzZyWXFHY1R2WU9rTDJkOUg1T3M5NCt3aUhDQ3htdFAwYTRqWjcxak5V
LzRtSGhwT2JFaGowY0dEWDArR0FWdHhxcAorRFhDRkY4UVRTZWlWSEhaTGczeG1LNzlWdkpLZ25D
UU9NcGtZWUJ6V2toUDEweHUrTHFIQlgwbTF4T3Y0bmRXVWVGNWp4Tm4zdFRkCjcwWGFBcTh3RGgw
TUdneWFEVWhRRUVVRVlaaXdVRUNHUEJveE5MSnlQeU9yQmh1VGV6SjFKR3E3ZEdKRXNVRjdOdHc5
dDFHazNUeisKS0NKeGxFTzFDSkw4UWY0cXI4bFA1WG41eTF5dzJGYjNsSzJibXJyeTREdkY1Wm01
R2g3WDA4ampjMDFlZkpYVWRwTlhSNWFzZVhxOAptdXdhUCt4WGx6SG1naldQeEhPdysvRXRYNVhN
bHltTUZNWGpWZlBxUzRSMVdqRTMzNTlzZnpzOTRpN1BMclhXYzYySml6ZFdtNWRuCi9XcEkrKzZx
dkpQbVZmbFBYdlh4L0dmTnhHUGlLVEVtZG9ybklZbVh4Uzd4a3RoTHF3dmlZRzNIQ0oyVmhpblNi
Wkg2Sk5WZ1lKcTgKOVM5ZFAxdDR2VVovRFBWUmxCbk0wbFNKOTMvQ0ttUTBuYmtPYi9xUDI4ZjhG
K1QzaXVlZktBSXZiT0RJbWJwdFUzSHZFS0ZscFc1egpyZ0lYdjlGOThMWnVhNk4rT1B3RVdEeXJG
cTFTTlo4Z3ZBRWNkb2Q2SHVncG1OT1dsczA1VW9jc241TzY2Y3BpVXN4UTIwTlNVdGNsCjEyVkxG
ck9aVldMcGR0aVoweDF1SEtFNVF2ZkVwMHBsay9xdjhSR3cvYkJTK2Ztc1V0bCtUaHJXZ1pmNmI4
QzgvVVhBZUl1SkFBQWcKQUVsRVFWUjRBZTNkZWJndDA1MC80SFhOUTR3eEN6R0cwR1lhTWQxSU5Q
SWdhVU0zTVlRWWdnNUJJdHFVbUlXV3hrUGljYlVZUW9TWQo1MWx3RFFsaW5nbE56UE1zcHZQYjMw
clgvcDE3bldHZGUwcTVkZXV0NTdsMzcxMTcxVnExM25YK3FNK3VXbFVqZWpwTHNoQWdRSUFBCkFR
SUVDQkFnUUtBR2dZbHFhRU1UQkFnUUlFQ0FBQUVDQkFnUUtBUUVFSDhJQkFnUUlFQ0FBQUVDQkFq
VUppQ0ExRWF0SVFJRUNCQWcKUUlBQUFRSUVCQkIvQXdRSUVDQkFnQUFCQWdRSTFDWWdnTlJHclNF
Q0JBZ1FJRUNBQUFFQ0JBUVFmd01FQ0JBZ1FJQUFBUUlFQ05RbQpJSURVUnEwaEFnUUlFQ0JBZ0FB
QkFnUUVFSDhEQkFnUUlFQ0FBQUVDQkFqVUppQ0ExRWF0SVFJRUNCQWdRSUFBQVFJRUJCQi9Bd1FJ
CkVDQkFnQUFCQWdRSTFDWWdnTlJHclNFQ0JBZ1FJRUNBQUFFQ0JBUVFmd01FQ0JBZ1FJQUFBUUlF
Q05RbUlJRFVScTBoQWdRSUVDQkEKZ0FBQkFnUUVFSDhEQkFnUUlFQ0FBQUVDQkFqVUppQ0ExRWF0
SVFJRUNCQWdRSUFBQVFJRUJCQi9Bd1FJRUNCQWdBQUJBZ1FJMUNZZwpnTlJHclNFQ0JBZ1FJRUNB
QUFFQ0JBUVFmd01FQ0JBZ1FJQUFBUUlFQ05RbUlJRFVScTBoQWdRSUVDQkFnQUFCQWdRRUVIOERC
QWdRCklFQ0FBQUVDQkFqVUppQ0ExRWF0SVFJRUNCQWdRSUFBQVFJRUJCQi9Bd1FJRUNCQWdBQUJB
Z1FJMUNZZ2dOUkdyU0VDQkFnUUlFQ0EKQUFFQ0JDYkpKYmp2dnZ2U29ZY2VtcWFhYXFvMHlTU1Rw
QTgvL0RETk1jY2NhZFpaWjAzLzhSLy9VVlR6eWl1dnBIMzMzVGR0czgwMgphZW1sbDg2dHVwSnlq
ei8rZURybW1HTlM3T2VHRzI2WXR0OSsrMHJxYlhzbG8wZVBUaWVlZUdKNjhza24wLzc3NzU5V1hY
WFZ0cFBvClB3RUNCQWdRSUVDQXdEQUVzZ0xJUGZmY2s5WmRkOTEwMFVVWHBjVVhYN3hvN3RGSEgw
MXJycmxtR2pseVpMZjUyMjY3TFIxMzNIRnAKaGhsbXFEMkF6RC8vL0dtbm5YWktDeXl3UUZwdHRk
VzYrMVRGbTlkZWV5MjkrKzY3YWM0NTU2eWl1bjdycUt1ZGZuZWc4OFhZKzdEeQp5aXNYNjlaYmI3
MzAvdnZ2RDdTcDd3Z1FJRUNBQUFFQ0JBZ01LcEIxQ1ZhYzFWaG5uWFc2NFNOcVhYREJCZE12Zi9u
TE5QbmtrM2NiCmlVQnkwMDAzcFgzMjJhZTdyczQzTTgwMFU5SGNGRk5NVVdtelAvclJqOUxWVjE5
ZGFaMTlWVlpYTzMyMVhhN3JheCttbjM3NjR1dkoKSnB1c0xPYVZBQUVDQkFnUUlFQ0F3RGdKWkFX
UWUrKzlOMDAzM1hTZmFtQ2xsVlpLY2VhaFhFYU1HSkcrOXJXdnBTbW5uTEpjVmV0cgp0QjlMWENK
VzFmTFNTeStsODg4L1AwMDY2YVJWVmRsblBYVzEwMmZqLzdleXYzMG9YU2VhS092UFphQW1mRWVB
QUFFQ0JBZ1FJTkJ5Cmdhd2o5Uzk5NlV2RnBWWHJyNzkrV25iWlpidGtzOHd5Uy9ySlQzNVNmSDd3
d1FlTE9SaTMzSEpMK3Q3M3ZwZDIyV1dYWWo3R1hudnQKVmN3Zk9PeXd3NHB5Tjl4d1E3cmtra3VL
eTdjT09lU1E5TjU3NzZXampqb3F4UnlPKysrL3Y5aHVzODAySzhwZWR0bGw2WWdqamtqUApQLzk4
dXZqaWk5TUZGMXhRekQxNStPR0hpKytqemk5KzhZdkYrOTcvbFFmTTVicTMzMzQ3SFhqZ2dVVXdp
ck1qY1RuVjVwdHZYcHpGCktjdjA5UnFYbVVXNXQ5NTZxd2doZi8zclg5TXFxNnpTdmNScnNIb3Z2
L3p5ZE5KSko2VVBQdmdnelRqampPbW5QLzFwQ3JQOTl0c3YKUGZYVVV5bjJKYzR1UmJnWnFKMng5
MjFjWEs2NTVwcmk3RlMwLyt5eno2WTc3cmdqSFhUUVFXbXBwWllxcWgrc3IxRW9YTTg1NTV6aQpV
cndYWDN3eGZmTEpKMm52dmZjdVRNYmVSNThKRUNCQWdBQUJBZ1FJOUNuUWs3RmNlZVdWUFJOUFBI
RlA1MEM1WjhjZGQreDU1cGxuCit0eXFjNERlMDJta3B6Tlp2ZnY5cmJmZVdxenJYTnJURS9YRTh0
aGpqL1YwenBMMEhIdnNzVDAvKzluUGV0NTQ0NDFpZlh6dS9NcmUKODhnamp4U2Y0NzlZRjNWdXRO
RkdQVkYvdVd5MTFWWTluY3ZBZXY3Kzk3K1hxNHA2b3V5UlJ4N1pYZmY2NjYvM0xMVFFRajNISDM5
OApkOTJGRjE3WTB6bHowOU9aNzlCZDE5K2JUaWdxMnYvZDczNDNScEhjZXErNjZxcWV6cVZMUFoy
SitkM3RmLy83My9lc3NNSUtQUysvCi9ISjNYWC90ZEF1TTlXWW9MdWVlZTI1UEp6ejBkRUpjdDVa
ZGQ5MjFaOTU1NSsxK2pqZjk3Y09OTjk1WUdNUTJKNTk4Y3RlOEU1NTYKT2pjbDZQZnZZWXpLZlNC
QWdBQUJBZ1FJRUNEUUVjaTZwbWFOTmRaSW5RUHBZb0wzcjMvOTYrS3lxODdCYU9vY2hJOFJhdUpY
L2xoNgp6OEdJWDl4amliTU9VVThzY2RuV2trc3VtV0srUVV4dW5uYmFhWXYxTWRFOWZsVy8vZmJi
aTgveFg5eGxLNVpsbGxrbWRRNllpL2Z4Clgyd2J2OXJIR1lhQmxvTVBQcmk0Skd1NzdiYnJGb3Qy
T29FcTdibm5udDExUTMyVFcrODN2L25ONHU1aG5RUDM0cXpEUng5OWxEb0IKS01WWmpMN08zdVR1
eDFCYzRzNWd5eTIzWEZwNzdiVzcxWC8xcTE5TlR6enhST3FFdis2NndkNDg5OXh6eGRtdGNpN0lw
cHR1V294cgpKMlFPdHFudkNSQWdRSUFBQVFJRUNCUUNXUUVrU243OTYxOVBNUmNrRHZnalZNUmxV
M0ZIck03WmpDNWxlZWxUN3prWTVib1ZWMXl4Cld5N2V4QUh3Rjc3d2hTSllsRjlNTTgwMHhkdTRF
MU81bE51WDRhVmN2OWhpaTZXWWt4Q1hmQTIwbkhIR0dla3JYL2xLaXN1MmV2K2IKZWVhWjAzQU9u
SWRTYjF5TzFqbmprYmJjY3N2aVVyQWYvL2pIcVp6WVBkQytEL1RkVUZ6aU1xOC8vZWxQaFZkWlp6
bEduVE5JNWFwQgpYNy96bmUrTVVTYnVkaGJMMkVGMGpFSStFQ0JBZ0FBQkFnUUlFT2dsa0RVSHBD
d2ZadzNpSUhxVFRUWXBuZ254aTEvOEl2M2J2LzFiCitzdGYvbElXS1Y3TGcrUGVLM3VmRlluMVVW
ZDVBRnVXaTNXeGRNN01sS3U2cjdQUFBudjNmYnlKOEJFSDhVOC8vZlFZNjN0L2lEa2EKZi92YjM0
cGJBa2Q0NnIxRUtJZ0FOQzdMVU91TmZZM2d0c1FTUzZRSEhuaWdzQnVYZHZ2YUp0Y2x3bGVjdllv
K2gvdmRkOTlkVkRlVQp5ZlY5dFJXVmZQenh4MzN0bW5VRUNCQWdRSUFBQVFJRVBpV1FGVUJpd3ZU
Y2M4L2QzVGh1dlJzVHlPTmhoSEVyM3JoN1VweFIrQ3lYCnVIUnA3Q1dlUzFGZTRqWDJkL0U1RHZ6
algxeXVGQThuckdvWmwzcmpVcWM0QzlLWmoxRk1Cbzg3aUZXeDVMZ2NjTUFCcVRNSHByanMKcTN5
T3l3a25uSkJPTysyMElnam03a2Rmd1RKM1crVUlFQ0JBZ0FBQkFnUUloRURXSlZqeFpQTytscGhM
RVdjcjRxNUtuL1V5ZGh0eApaNnFZVnhLWGN2VzN4RlBiWTk3SW5YZmUyVitSUWRmM2RkQTkxSHJq
ak1uUlJ4K2RycmppaW1JZVROd2w3SjEzM2htajdiN2FHYU5BClB4OEdjd21qQ0lseFo3RXlmRVJW
OGRUNldNcXpUdkYrWFBjaHRyVVFJRUNBQUFFQ0JBZ1F5QkhJQ2lBUFBmUlF1dXV1dXo1Vlg5eFMK
Tnk2RFduamhoWXZ2eWt0eHl0ZFlXYjR2WDh0SzR2UFk2OHBmODhkZUg5dkVVOWg3THpHSk95WkRi
NzMxMXQzVjVYYmxhM3dSaytYagpsck9kTzNCMXk4V2J1UDF2ekkwWWJDa3ZIWXRiNmZaZWN1dU5T
ZlhiYnJ0dGl0c1J4N3lMVWFOR3BSZGVlS0hZcjk3MTlkZE83eko5CnZSL01KUzVCZS9QTk44ZDRO
a3FFeGtzdnZmUlQxZlczRDZWbitWcHVXSDR1WDh2MVhna1FJRUNBQUFFQ0JBajBKNUFWUU9KWDlK
aUEKSE0rMWlFbkxjZkIrM25ubnBkTlBQejJkY3NvcHhkUFE0NkMydkh0VmhKVUlFN0V1RHY1amlU
a0g1WUZxMUJkekllSlpFbkY1VjdtVQpaY3Z0eS9YeGVzODk5eFNYRU1VQmZUeHpwSFA3M3VMWkpI
UE9PV2UzV0xsOXRCV1hoOFd5L2ZiYnB5MjIyS0tZdTNMMjJXZW5WMTk5Ck5WMS8vZlZwanozMktK
NDUwdDI0bnpkUmZ6eGhQWjZqRVdjTnltZVE1TlFiODFNaWZFUlFLK2RQekRISEhNVnpST0lTcUhp
T1NWakUKMGw4Ny9leFdkL1ZnTHZIRStuaDJTK2Myd3VtMjIyNHJuczBTenlPSm13ckVFdU5RTG4z
dFEzaVhaNURpTlQ3SDBudHMreHF2c2s2dgpCQWdRSUVDQUFBRUNCSG9Mak9nY1NINTZ4bmZ2RXAz
M1o1MTFWakY1T1I3RUYvOWlEa1E4bkhEampUZE9zODAyVzFFNnpwTEVnWDI1CnpEWFhYQ24rM1h6
enplV3E0c0YvcTYrK2V2cnRiMy9iUGZDT0wyTitSaHpjWDNmZGRkMnljVEM4empyckZBKytpKytq
M1RqNGp3bnYKOFZUMnVMMXQ1L2tlM2ZMeGZkd3F1RnpLN2N2UFVYZnNYNXdOaUlQdmtTTkhwdkt1
VzJXWi9sNmpiekZmSXNxdnRkWmF4V1R5c3V4QQo5WjU1NXBuZE8wU0YwN2UvL2UwMGV2VG80b0dM
NWZZeE1UM21oc1F5VUR0bCtmSTFIZ2lZNHhMbDR4S3dDSTl4eDdENTVwdXZ1SlZ1CkJJbk84MUpT
WEU0V0FhMjhyZS9ZK3hBQktVSk91Y1R0azVkZmZ2bGlYM3VQOXp6enpGTThYTElzNTVVQUFRSUVD
QkFnUUlCQVh3SloKQWFTdkRldGExL3RBdS9kelFPcHFmM3h0aDh2NE9qTDJpd0FCQWdRSUVDQkFZ
Q0NCckV1d0JxcmdzLzZ1bkJkU1hsTDFXYmZYbFBxNQpOR1drN0NjQkFnUUlFQ0JBZ0VCdmdmRTZn
RHp6ekRQRnBVT3h3ekYvSTI3M2EwbUppNzhDQWdRSUVDQkFnQUNCcGdxTTE1ZGd4Y01ECm4zdnV1
YTV0ekY5WVlJRUZ1cC9iK29aTFcwZGV2d2tRSUVDQUFBRUN6UmNZcndOSTgzbjFnQUFCQWdRSUVD
QkFnQUNCM2dMajlTVlkKdlhmVWV3SUVDQkFnUUlBQUFRSUVtaThnZ0RSL0RQV0FBQUVDQkFnUUlF
Q0FRR01FQkpER0RKVWRKVUNBQUFFQ0JBZ1FJTkI4QVFHaworV09vQndRSUVDQkFnQUFCQWdRYUl5
Q0FOR2FvN0NnQkFnUUlFQ0JBZ0FDQjVnc0lJTTBmUXowZ1FJQUFBUUlFQ0JBZzBCZ0JBYVF4ClEy
VkhDUkFnUUlBQUFRSUVDRFJmUUFCcC9oanFBUUVDQkFnUUlFQ0FBSUhHQ0FnZ2pSa3FPMHFBQUFF
Q0JBZ1FJRUNnK1FJQ1NQUEgKVUE4SUVDQkFnQUFCQWdRSU5FWkFBR25NVU5sUkFnUUlFQ0JBZ0FB
QkFzMFhFRUNhUDRaNlFJQUFBUUlFQ0JBZ1FLQXhBZ0pJWTRiSwpqaElnUUlBQUFRSUVDQkJvdm9B
QTB2d3gxQU1DQkFnUUlFQ0FBQUVDalJFUVFCb3pWSGFVQUFFQ0JBZ1FJRUNBUVBNRkJKRG1qNkVl
CkVDQkFnQUFCQWdRSUVHaU1nQURTbUtHeW93UUlFQ0JBZ0FBQkFnU2FMeUNBTkg4TTlZQUFBUUlF
Q0JBZ1FJQkFZd1FFa01ZTWxSMGwKUUlBQUFRSUVDQkFnMEh3QkFhVDVZNmdIQkFnUUlFQ0FBQUVD
QkJvaklJQTBacWpzS0FFQ0JBZ1FJRUNBQUlIbUN3Z2d6UjlEUFNCQQpnQUFCQWdRSUVDRFFHQUVC
cERGRFpVY0pFQ0JBZ0FBQkFnUUlORjlBQUduK0dPb0JBUUlFQ0JBZ1FJQUFnY1lJQ0NDTkdTbzdT
b0FBCkFRSUVDQkFnUUtENUFnSkk4OGRRRHdnUUlFQ0FBQUVDQkFnMFJrQUFhY3hRMlZFQ0JBZ1FJ
RUNBQUFFQ3pSY1FRSm8vaG5wQWdBQUIKQWdRSUVDQkFvREVDQWtoamhzcU9FaUJBZ0FBQkFnUUlF
R2krZ0FEUy9ESFVBd0lFQ0JBZ1FJQUFBUUtORVJCQUdqTlVkcFFBQVFJRQpDQkFnUUlCQTh3VUVr
T2FQb1I0UUlFQ0FBQUVDQkFnUWFJeUFBTktZb2JLakJBZ1FJRUNBQUFFQ0JKb3ZJSUEwZnd6MWdB
QUJBZ1FJCkVDQkFnRUJqQkFTUXhneVZIU1ZBZ0FBQkFnUUlFQ0RRZkFFQnBQbGpxQWNFQ0JBZ1FJ
QUFBUUlFR2lNZ2dEUm1xT3dvQVFJRUNCQWcKUUlBQWdlWUxDQ0ROSDBNOUlFQ0FBQUVDQkFnUUlO
QVlBUUdrTVVObFJ3a1FJRUNBQUFFQ0JBZzBYMEFBYWY0WTZnRUJBZ1FJRUNCQQpnQUNCeGdnSUlJ
MFpLanRLZ0FBQkFnUUlFQ0JBb1BrQ0Franp4MUFQQ0JBZ1FJQUFBUUlFQ0RSR1FBQnB6RkRaVVFJ
RUNCQWdRSUFBCkFRTE5GeEJBbWorR2VrQ0FBQUVDQkFnUUlFQ2dNUUlDU0dPR3lvNFNJRUNBQUFF
Q0JBZ1FhTDZBQU5MOE1kUURBZ1FJRUNCQWdBQUIKQW8wUkVFQWFNMVIybEFBQkFnUUlFQ0JBZ0VE
ekJRU1E1bytoSGhBZ1FJQUFBUUlFQ0JCb2pJQUEwcGloc3FNRUNCQWdRSUFBQVFJRQptaThnZ0RS
L0RQV0FBQUVDQkFnUUlFQ0FRR01FQkpER0RKVWRKVUNBQUFFQ0JBZ1FJTkI4QVFHaytXT29Cd1FJ
RUNCQWdBQUJBZ1FhCkl5Q0FOR2FvN0NnQkFnUUlFQ0JBZ0FDQjVnc0lJTTBmUXowZ1FJQUFBUUlF
Q0JBZzBCZ0JBYVF4UTJWSENSQWdRSUFBQVFJRUNEUmYKUUFCcC9oanFBUUVDQkFnUUlFQ0FBSUhH
Q0FnZ2pSa3FPMHFBQUFFQ0JBZ1FJRUNnK1FJQ1NQUEhVQThJRUNCQWdBQUJBZ1FJTkVaQQpBR25N
VU5sUkFnUUlFQ0JBZ0FBQkFzMFhFRUNhUDRaNlFJQUFBUUlFQ0JBZ1FLQXhBZ0pJWTRiS2poSWdR
SUFBQVFJRUNCQm92b0FBCjB2d3gxQU1DQkFnUUlFQ0FBQUVDalJFUVFCb3pWSGFVQUFFQ0JBZ1FJ
RUNBUVBNRkJKRG1qNkVlRUNCQWdBQUJBZ1FJRUdpTWdBRFMKbUtHeW93UUlFQ0JBZ0FBQkFnU2FM
eUNBTkg4TTlZQUFBUUlFQ0JBZ1FJQkFZd1FFa01ZTWxSMGxRSUFBQVFJRUNCQWcwSHdCQWFUNQpZ
NmdIQkFnUUlFQ0FBQUVDQkJvaklJQTBacWpzS0FFQ0JBZ1FJRUNBQUlIbUN3Z2d6UjlEUFNCQWdB
QUJBZ1FJRUNEUUdBRUJwREZEClpVY0pFQ0JBZ0FBQkFnUUlORjlBQUduK0dPb0JBUUlFQ0JBZ1FJ
QUFnY1lJQ0NDTkdTbzdTb0FBQVFJRUNCQWdRS0Q1QWdKSTg4ZFEKRHdnUUlFQ0FBQUVDQkFnMFJr
QUFhY3hRMlZFQ0JBZ1FJRUNBQUFFQ3pSY1FRSm8vaG5wQWdBQUJBZ1FJRUNCQW9ERUNBa2hqaHNx
TwpFaUJBZ0FBQkFnUUlFR2krZ0FEUy9ESFVBd0lFQ0JBZ1FJQUFBUUtORVJCQUdqTlVkcFFBQVFJ
RUNCQWdRSUJBOHdVRWtPYVBvUjRRCklFQ0FBQUVDQkFnUWFJeUFBTktZb2JLakJBZ1FJRUNBQUFF
Q0JKb3ZJSUEwZnd6MWdBQUJBZ1FJRUNCQWdFQmpCQVNReGd5VkhTVkEKZ0FBQkFnUUlFQ0RRZkFF
QnBQbGpxQWNFQ0JBZ1FJQUFBUUlFR2lNZ2dEUm1xT3dvQVFJRUNCQWdRSUFBZ2VZTENDRE5IME05
SUVDQQpBQUVDQkFnUUlOQVlBUUdrTVVObFJ3a1FJRUNBQUFFQ0JBZzBYMEFBYWY0WTZnRUJBZ1FJ
RUNCQWdBQ0J4Z2dJSUkwWktqdEtnQUFCCkFnUUlFQ0JBb1BrQ0Franp4MUFQQ0JBZ1FJQUFBUUlF
Q0RSR1FBQnB6RkRaVVFJRUNCQWdRSUFBQVFMTkZ4QkFtaitHZWtDQUFBRUMKQkFnUUlFQ2dNUUlD
U0dPR3lvNFNJRUNBQUFFQ0JBZ1FhTDZBQU5MOE1kUURBZ1FJRUNCQWdBQUJBbzBSRUVBYU0xUjJs
QUFCQWdRSQpFQ0JBZ0VEekJRU1E1bytoSGhBZ1FJQUFBUUlFQ0JCb2pJQUEwcGloc3FNRUNCQWdR
SUFBQVFJRW1pOGdnRFIvRFBXQUFBRUNCQWdRCklFQ0FRR01FQkpER0RKVWRKVUNBQUFFQ0JBZ1FJ
TkI4QVFHaytXT29Cd1FJRUNCQWdBQUJBZ1FhSXlDQU5HYW83Q2dCQWdRSUVDQkEKZ0FDQjVnc0lJ
TTBmUXowZ1FJQUFBUUlFQ0JBZzBCZ0JBYVF4UTJWSENSQWdRSUFBQVFJRUNEUmZRQUJwL2hqcUFR
RUNCQWdRSUVDQQpBSUhHQ0FnZ2pSa3FPMHFBQUFFQ0JBZ1FJRUNnK1FJQ1NQUEhVQThJRUNCQWdB
QUJBZ1FJTkVaQUFHbk1VTmxSQWdRSUVDQkFnQUFCCkFzMFhFRUNhUDRaNlFJQUFBUUlFQ0JBZ1FL
QXhBZ0pJWTRiS2poSWdRSUFBQVFJRUNCQm92b0FBMHZ3eDFBTUNCQWdRSUVDQUFBRUMKalJFUVFC
b3pWSGFVQUFFQ0JBZ1FJRUNBUVBNRkJKRG1qNkVlRUNCQWdBQUJBZ1FJRUdpTWdBRFNtS0d5b3dR
SUVDQkFnQUFCQWdTYQpMeUNBTkg4TTlZQUFBUUlFQ0JBZ1FJQkFZd1FFa01ZTWxSMGxRSUFBQVFJ
RUNCQWcwSHdCQWFUNVk2Z0hCQWdRSUVDQUFBRUNCQm9qCklJQTBacWpzS0FFQ0JBZ1FJRUNBQUlI
bUN3Z2d6UjlEUFNCQWdBQUJBZ1FJRUNEUUdBRUJwREZEWlVjSkVDQkFnQUFCQWdRSU5GOWcKeUFI
a280OCtTcDk4OGtsbFBiLzk5dHNycTB0RkJBZ1FJRUNBQUFFQ0JBaU0zd0tUREdYM2R0OTk5L1Ny
WC8wcXpUampqR21ISFhaSQplKys5ZDdINXhSZGZuQ2FiYkxLMC9QTExwOGNlZXl4Tk1rbGV0ZSsr
KzI0NjZxaWowcGxubnBsR2pScVZwcGhpaXJUSkpwdWtTU2VkCmRDaTdOZXl5NTU5L2ZwcC8vdm5U
WW9zdE51eTZobHJCaXkrK21IN3ptOStrZU4xZ2d3M1NTaXV0Tk5RcWxDZEFnQUFCQWdRSUVDRFEK
R0lHOHBORHB6cE5QUHBtT09lYVl0UHJxcXhjQjVNZ2pqMHlycnJwcVdtV1ZWZEtKSjU2WTRpRCto
Qk5PU0dlY2NVYTY5dHByc3dGbQptMjIyb3V5bW0yNmFacDU1NXZUd3d3K25ndzgrT0h2N0tncmVm
ZmZkYWNvcHAveGNBc2doaHh5Uzl0aGpqelRUVERPbFBmZmNNODA3Cjc3eHBqam5tcUtKYjZpQkFn
QUFCQWdRSUVDQXczZ2xrQjVBSUZZY2ZmbmphZWVlZGkwNUVVTmh2di8yS0FITDY2YWVuczg4K085
MXkKeXkzRldaRHBwcHN1cmJmZWVtbk9PZWNzem9ZODk5eHphZlRvMGVtaGh4NUt1KzIyV3hveFlr
U0tTN25lZlBQTk5ORkUvN2dLYk9xcApweTdPZkt5NTVwcEYvWC8rODUvVEFRY2NrQlpaWkpHaTNm
Rk9yb0lkaWpOQWNkWm45dGxuTDJyNy92ZS9ueTY0NElMaTdGSUYxYXVDCkFBRUNCQWdRSUVDQXdI
Z25rQjFBWnBsbGxqVHJyTE4yTzdEUVFndWxMMy81eThYbnFhYWFLbTJ4eFJicDhjY2ZUeEVremoz
MzNHNjUKOHMxM3YvdmQ5TVFUVDZUenpqdXZDQ0d4L3NJTEwweXZ2LzU2ZXVDQkI0cEFFZ2ZrbDE1
NmFkcDExMTNUU3krOVZJU1liYmJacHF4aQpnbnNOdDNmZWVTZTk5ZFpiYVpwcHBrbm5uSE5PMm56
enpTZTRmdW9RQVFJRUNCQWdRSUFBZ1ZJZ080REVtWW00UkdqdHRkZnVucldJCkVQTHl5eThYbHc5
RmhSRkFEajMwMExMdVQ3M0c1VVc5NTNmRVdaSTRNL0tIUC93aHhXVDBoUmRlT0MyeHhCSnA2NjIz
VGdzdXVPQ24KdHY4c1Y5eDg4ODNwdmZmZUc3Q0prU05IcHVtbm4zN0FNa1A5TXM0SWhkbmJiNytk
MWxoampUVFBQUE1NdFFybENSQWdRSUFBQVFJRQpDRFJHSUR1QVJIQlllZVdWMDdycnJwdmliRWJN
M1lpekY1ZGRkbG1hZSs2NTA5TlBQNTF1dU9HRzR2S3FnWHIvd2dzdkZBZjZNZWNpCmxxZ3ovc1da
ait1dXU2NlloUDdhYTYrbCsrKy9QeTI2NktJRFZWWFpkM0hnZjlOTk42VkhIMzEwd0RwWFdHR0ZB
YjhmbHk4amxNVTgKRUFzQkFnUUlFQ0JBZ0FDQk5naU02T2tzT1IyOTVKSkwwanJyck5OdjBianox
Yjc3N2x1RWtGTk9PYVdZLzlHN2NEUVRkUngyMkdIcAp4aHR2N1AxVjhUN3VCQldYSS8zZ0J6OUk5
OXh6VDlwcHA1M1NYbnZ0VmN3cGljdS9MQVFJRUNCQWdBQUJBZ1FJTkY4Zyt3eElQUHNqCjdrNFZs
MkJOUFBIRXhaeU5qei8rT0gzNDRZZkY1L25tbTYrNGk5WCsrKytmNXBwcnJyVFVVa3NWSVNUbU9i
enl5aXZwd1FjZlRNOC8KLzN5ZmQ4aUt1UjkvL09NZjA2dXZ2bHJVRlpQWG83MjRNOVN4eHg1YlRG
NlB0dXUrTEt2NXc2c0hCQWdRSUVDQUFBRUNCTVl2Z2V3egpJQkVlNGl4SGhJTEJscmdzNjRnampp
Z3VvNHJuVzhUbFd2R01rSi8vL09kcHlTV1hIR1B6dU92VDBVY2ZYZFM3L3ZycnA0MDMzamp0CnM4
OCt4UVQzYmJmZHRpaDcwVVVYcFIxMzNESGRlZWVkV2UyUDBZQVBCQWdRSUVDQUFBRUNCQWlNTndM
WkFXUmM5empPa3NRWms3NlcKdUZRcm5oc1N6eENKWjR4TVB2bmt4VzE5NHlHSE1TZWo5M1p4Tzk1
Ly8vZC9MMEpNWDNWWlI0QUFBUUlFQ0JBZ1FJREErQytRZlFuVwp1SGFsZDRqb1hjZDk5OTFYUElE
dmtVY2VLWjZGTWNNTU14UjN4SW9nRXM4VUdYdTd1T1h2dmZmZTI3dUtmdDkvOE1FSHhhVDRmZ3Y4
CjN4ZlJaanpWM1VLQUFBRUNCQWdRSUVDQVFEMENuM2tBNmE4YmNkWWpKclZQTysyMFJaR1lhSDdh
YWFjVnp4Q0pXL0dPdmNUbFYvR2cKdnB3bExoZUx1U2dETFZFbUxnczc4TUFEQnlybU93SUVDQkFn
UUlBQUFRSUVLaFQ0M0FKSW5OR0l1MTdGMllwVFR6MjF1TFFxSnF6UApNY2NjbitwZUJKT1lTeEsz
QU01WjRyYkFVZWRBU3p6WlBXNzdheUZBZ0FBQkFnUUlFQ0JBb0Q2QmllcHJhc3lXTnRwb28zVDY2
YWNYClQxY2ZOV3BVdXY3NjY0dUo1bGRlZWVVWUJlTUJnVEVuNUtpamprb3JycmppR04vNVFJQUFB
UUlFQ0JBZ1FJQkFzd1ErdHpNZ1Uwd3gKUmZGY2tQZmZmejh0dDl4eWhkcEJCeDJVM25ycnJlSjlu
UEU0L1BERDAxVlhYWlZPUHZua3RNRUdHelJMMXQ0U0lFQ0FBQUVDQkFnUQpJUEFwZ2M4dGdNU2VM
TGJZWW1Qc1VOem05NzMzM2l2bWdzVFQwTC94alcray8vcXYveHIwNmVwalZKTDVJU2E1VHpiWlpK
bWxGU05BCmdBQUJBZ1FJRUNCQW9BcUJ6L3cydkZYc3BEb0lFQ0JBZ0FBQkFnUUlFSmd3QkQ2M09T
QVRCcDllRUNCQWdBQUJBZ1FJRUNBd0ZBRUIKWkNoYXloSWdRSUFBQVFJRUNCQWdNQ3dCQVdSWWZE
WW1RSUFBQVFJRUNCQWdRR0FvQWdMSVVMU1VKVUNBQUFFQ0JBZ1FJRUJnV0FJQwp5TEQ0YkV5QUFB
RUNCQWdRSUVDQXdGQUVCSkNoYUNsTGdBQUJBZ1FJRUNCQWdNQ3dCQVNRWWZIWm1BQUJBZ1FJRUNC
QWdBQ0JvUWdJCklFUFJVcFlBQVFJRUNCQWdRSUFBZ1dFSkNDREQ0ck14QVFJRUNCQWdRSUFBQVFK
REVSQkFocUtsTEFFQ0JBZ1FJRUNBQUFFQ3d4SVEKUUliRloyTUNCQWdRSUVDQUFBRUNCSVlpSUlB
TVJVdFpBZ1FJRUNCQWdBQUJBZ1NHSlNDQURJdlB4Z1FJRUNCQWdBQUJBZ1FJREVWQQpBQm1LbHJJ
RUNCQWdRSUFBQVFJRUNBeExRQUFaRnArTkNSQWdRSUFBQVFJRUNCQVlpb0FBTWhRdFpRa1FJRUNB
QUFFQ0JBZ1FHSmFBCkFESXNQaHNUSUVDQUFBRUNCQWdRSURBVUFRRmtLRnJLRWlCQWdBQUJBZ1FJ
RUNBd0xBRUJaRmg4TmlaQWdBQUJBZ1FJRUNCQVlDZ0MKQXNoUXRKUWxRSUFBQVFJRUNCQWdRR0JZ
QWdMSXNQaHNUSUFBQVFJRUNCQWdRSURBVUFRbUdhendDU2VjTUZnUjN4TWdRSUFBQVFJRQpDQkFn
UUNCdHVPR0dhWVlaWmhoUVl0QUFFbHRIUlJZQ0JBZ1FJRUNBQUFFQ0JBZ01WMkJFVDJjWmJpVzJK
MENBQUFFQ0JBZ1FJRUNBClFJNkFPU0E1U3NvUUlFQ0FBQUVDQkFnUUlGQ0pnQUJTQ2FOS0NCQWdR
SUFBQVFJRUNCRElFUkJBY3BTVUlVQ0FBQUVDQkFnUUlFQ2cKRWdFQnBCSkdsUkFnUUlBQUFRSUVD
QkFna0NNZ2dPUW9LVU9BQUFFQ0JBZ1FJRUNBUUNVQ0FrZ2xqQ29oUUlBQUFRSUVDQkFnUUNCSApR
QURKVVZLR0FBRUNCQWdRSUVDQUFJRktCQVNRU2hoVlFvQUFBUUlFQ0JBZ1FJQkFqb0FBa3FPa0RB
RUNCQWdRSUVDQUFBRUNsUWdJCklKVXdxb1FBQVFJRUNCQWdRSUFBZ1J3QkFTUkhTUmtDQkFnUUlF
Q0FBQUVDQkNvUkVFQXFZVlFKQVFJRUNCQWdRSUFBQVFJNUFnSkkKanBJeUJBZ1FJRUNBQUFFQ0JB
aFVJaUNBVk1Lb0VnSUVDQkFnUUlBQUFRSUVjZ1FFa0J3bFpRZ1FJRUNBQUFFQ0JBZ1FxRVJBQUtt
RQpVU1VFQ0JBZ1FJQUFBUUlFQ09RSUNDQTVTc29RSUVDQUFBRUNCQWdRSUZDSmdBQlNDYU5LQ0JB
Z1FJQUFBUUlFQ0JESUVSQkFjcFNVCklVQ0FBQUVDQkFnUUlFQ2dFZ0VCcEJKR2xSQWdRSUFBQVFJ
RUNCQWdrQ01nZ09Rb0tVT0FBQUVDQkFnUUlFQ0FRQ1VDQWtnbGpDb2gKUUlBQUFRSUVDQkFnUUNC
SFFBREpVVktHQUFFQ0JBZ1FJRUNBQUlGS0JDWVphaTAzM25oak92bmtrOU4wMDAxWC9Idnp6VGZU
bDc3MApwYlQ4OHN1bnlTYWJMQzI3N0xKRHJiS1c4bzgvL25nNjVwaGowbjMzM1pjMjNIRER0UDMy
MjlmU3JrYitJVEI2OU9oMDRva25waWVmCmZETHR2Ly8rYWRWVlYwVkRnQUFCQWdRSUVDRFFRb0Vo
QlpDZGQ5NDUzWEhISGVtU1N5NUowMDgvZmNIMThRNmwxVlFBQUNBQVNVUkIKVk1jZnA5MTMzejN0
dHR0dXhVSDkrQnBBNXA5Ly9yVFRUanVsQlJaWUlLMjIybXFmeTFDLzl0cHI2ZDEzMzAxenpqbm5a
OXArWGUwTQoxSW14OTJIbGxWZE9zVzY5OWRaTDc3Ly8va0NiK280QUFRSUVDQkFnUUdBQ0ZzaStC
T3ZVVTA5TjU1OS9mcnJ5eWl1NzRTTmNKcDU0CjR2VGYvLzNmYWJQTk5odnZtV2FhYWFaaUg2ZVlZ
b3JQWlY5LzlLTWZwYXV2dnZvemI3dXVkZ2JxU0YvN1VJYldPRk5tSVVDQUFBRUMKQkFnUWFLZEFW
Z0I1N0xISGlyTWIyMnl6VFpwNjZxbjdsUHJoRDMvWTUvcnhhZVdJRVNPSzNabGtraUdkK0tta0N5
Kzk5RklSNENhZApkTkpLNnV1dmtycmE2YS85V04vZlBwVCtFMDJVOVdjM1VCTytJMENBQUFFQ0JB
Z1FhS2hBMXBGNC9Hci8zbnZ2cFEwMjJLRGZiaTY5CjlOTEZKVGE5QzhUOGtFTVBQVFROUFBQTUtR
NCtZeDdHTjcvNXpmU2Q3M3luS0Jiek1mYmFhNjlpWHNCaGh4MVdyTHZoaGh1S1M3elcKWEhQTmRN
Z2hoeFR0SG5YVVVjVzI5OTkvZjlwbGwxMjZaMXN1dSt5eWRNUVJSNlRubjM4K1hYenh4ZW1DQ3k1
SUgzNzRZWHI0NFllTAp1cUxPTDM3eGk3MTNxWGhmSGdpWFg3ejk5dHZwd0FNUFRGTk9PV1dLc3lO
eG1kVG1tMitlRmx4d3dhTEk1WmRmbms0NjZhVDB3UWNmCnBCbG5uREg5OUtjL1RiUE1Na3ZhYjcv
OTBsTlBQVlZzcysrKys2WkZGbG1rckhLTTEwY2ZmYlNvNzYyMzNpcEN5Ri8vK3RlMHlpcXIKZEM4
RnE2cjlDRGV4My8yMU04Wk9kVDZNaTk4MTExeVRicnJwcHFML3p6NzdiSEZKM2tFSEhaU1dXbXFw
b3ZyQitocUZ3ditjYzg1SgpGMTEwVVhyeHhSZlRKNTk4a3ZiZWUrL0NwS2pFZndRSUVDQkFnQUFC
QWhPdVFFL0dzdTIyMi9aMEJIbzZCN1lacGY5UnBITzlmOC9jCmM4L2RjOXBwcDNXM2VmbmxsM3M2
Qi9VOW5RUDM3cnBiYjcyMXFMdHp5VTVQNS9LdVluM25qRXRQSnd6MEhIdnNzVDAvKzluUGV0NTQK
NDQxaWZYenUvSHJlODhnamozUzNqM1d4Ynh0dHRGRlA1OEMrdTM2cnJiWXEydnI3My8vZVhSZjFS
Tmtqanp5eXUrNzExMS92V1dpaApoWHFPUC83NDdyb0xMN3l3cHpObnBDZjZVQzVYWFhWVlQrZlNv
WjdPV2FCeVZjL3ZmLy83bmhWV1dLRW4ralhZMGdsUFJkdS8rOTN2CnhpaGFkZnY5dFROR283MCtE
TVh2M0hQUDdlbUVoNTVPMk92V3NPdXV1L2JNTysrODNjL3hwcjk5Nk56QW9EQ0liVG8zTXVncHg2
WVQKM25xbW1tcXFubWVlZVdhTWVud2dRSUFBQVFJRUNCQ1k4QVN5cm9XNTg4NDcweGUrOElYaVgy
NFU2d1NINHE1WW0yNjZhWGVUT0JzUgpaekRpRi9PSEhucW9XQjluRW1LSnN3NXJyTEZHOFQ0bWpD
KzU1SklwNWhIRXBPVnBwNTIyV0wvdXV1c1d2NWJmZnZ2dHhlZjRiOVpaClp5M2VMN1BNTXFseklO
eGRIOXZHci9GeDVtS2c1ZUNERDA1eFNkWjIyMjNYTFJidHhOeVdQZmZjczdzdXp0ekUyWnpPZ1hQ
eHEvOUgKSDMyVU9rR2xPSXZRMTFtVzdvYUR2UG04MngrS1g1eXhXbTY1NWRMYWE2L2Q3ZFZYdi9y
VjlNUVRUNlJPdU91dUcrek5jODg5bDc3Mwp2ZThWZng5Uk52NUdZdnc3WVhTd1RYMVBnQUFCQWdR
SUVDRFFjSUdzQUJLWFg4VUJZbHlDbEx1Y2RkWlp4YTE1eHk0L2N1VElGQWZ2CmwxNTZhZkZWZVRu
VWlpdXVPRWJST0xDTjBCUEJvbHltbVdhYTRtM2NUYWxjeXUzTDhGS3VYMnl4eFZMTU5iamxsbHZL
VlgyK25uSEcKR2VrclgvbEtjZGxXWExwVi9vdkx4c1krSUk3dzFEbmprYmJjY3N2aWtxMGYvL2pI
WTB6STc3T0JRVlorM3UwUHhTOHVNL3ZUbi81VQp1SmJkS3VmVGRNNW1sS3NHZlMwdndTc0x6akRE
RE1YYnp0bWdjcFZYQWdRSUVDQkFnQUNCQ1ZRZ2F3N0l3Z3N2bkdMK1JjeDNpTnZZCkRyYTgrdXFy
NllVWFh1aWVuZWhkZnZiWlp5OCtsdk0weXUvR3ZqTlZuSUVvRDB6TE1yRXVsczZKcUhKVjk3V3N0
MXdSNFNQdXV2VDAKMDArWHF6NzFHbk12L3ZhM3Y2V1l2M0x2dmZlTzhYMkVqUWhBdlplb004Nm9M
TEhFRXVtQkJ4NG9ubWZSKy91aHZ2KzgyKys5djdsKwpNVzYvL3ZXdkM1c1luN3Z2dnJ1b1ppaVQ2
L3RxS3lxSld6cGJDQkFnUUlBQUFRSUVKbXlCckFDeTZLS0xGcE9HNDR6QVFBRWtMcTBwCmI3VWFi
SEhXWk93bHpuN0VNbmE0R0x2Y1VEK1g5ZmJlTHA0M1VWN2kxWHQ5K1Q0Q1JmeUx5NURpNFlRNVMx
eHFGR2RCT3ZNaGlzblkKSzYyMFVzNW1mWmI1dk52dnZWTTVmZ2NjY0VEcXpKVXBManRiZlBIRmk4
MVBPT0dFMUpublUxeXkxcnUrZ2Q2WFoxMEdLdU03QWdRSQpFQ0JBZ0FDQkNWTWc2eEtzSFhiWW9a
aUg4Y3RmL3JKZmhiajdWTnlCS1Y3alRsRnhVTi9YMllmT1JPT2lqdjd1R05WdkE0TjhFWGRrCjZy
M0VuYUFpQU1XbFhQMHRuWW5QeGJ5Um1PT1NzOFFaaTZPUFBqcGRjY1VWeFh5Vm1NZnd6anZ2NUd4
YTNQbHA3SUtmUmZ2amVuQS8KbUY5WXh2akg4MTdLOEJIOWVlV1ZWNHB1bFdlbjRzTzQ3a05Sa2Y4
SUVDQkFnQUFCQWdRbWFJR3NBRExiYkxNVmx4dmRkZGRkeFVUcwp2a1RpbHJSeGJYODVZVHllT243
dHRkZCthbkp5M0NxM2MzZXMxTGxyVlZGTmVkbE4rVnJXSFovSFhsZitTai8yK3RnbWJ1bmFlNGxi
CnpNWUQ3N2JlZXV2dTZuSzc4alcrNk55UnFaaFVIZzlZN0wzRXZKZVk4MUF1Y2F2WXp0M0FpdHNH
eDd5SFVhTkdGWmVaeGZZNVMzbUoKMmRqemFLcHV2NzkyQnR2SHdmemlVclc0clhJNTV5UHFpMHZo
eXJrOHZldnZieDlLOS9LMTNLYjhYTDZXNjcwU0lFQ0FBQUVDQkFoTQplQUpaQVNTNkhYTWk0bkti
dUd2VEZsdHNVVnlHRXdlbDhVeUllQWhoM0FtcTk4TUlmL0tUbjZTMTFscXJPR2d2RDdwalF2aVpa
NTVaClhMSVR6OXlJQTlnNzdyaWpVSTI1Qk9VQmFQemFIbk1zNGhrUk1lK2tYTXF5RVlUS01GSitk
ODg5OXhUN0ZFSGh3UWNmVEhFWHJ1T08KT3k3Tk9lZWNaWkV4Mm9vek5iRnN2LzMyUlg5aVl2blpa
NStkWXY3SzlkZGZuL2JZWTQraXoxRW16dVJFK0lobmxKVHpGK2FZWTQ3aQpPUjVoRXM4YjZldHlz
OWkyWEdJLzRrbnM4UnlOT0d0UXpvR3B1djMrMmluM283L1h3ZnppbVNqTExydHM2dHhHT04xMjIy
MHA3b2dWCnowUDUrdGUvWGxRWjQxVXVmZTFEakV0NXBpbGU0M01zdmY4RytoclhzazZ2QkFnUUlF
Q0FBQUVDRTRiQWlNNEI0S2RuZEEvUXR3Z2QKY1JBZFlTRG1NTVFsVHQvNjFyZlNYSFBOMWVkVzhS
Qy9PTENjZlBMSmk0bkw2NisvZnZmaGdESHgrK2FiYis1dUZ3ZTVxNisrZXZydApiMzg3eGdGOXpN
K0lnL2JycnJ1dVd6WU9jdGRaWjUxaWJrcDhIdy8zaTRQNnYvemxMMm02NmFZckhualllYjVIdDN4
ODMzbVdSL2R6CnVYMjVJdXFPNEJHLzhzZEI5Y2lSSTFONTE2MElUZVVkbXVKczBMZS8vZTAwZXZU
b1ltSit1WDFNVEkrNUlRTXRjZXZobUM4UjlVWTQKaTIzS3BjcjJCMnFuYks5OGpRY0M1dmhGK2Jn
RUxjWXpndVI4ODgxWDNFbzNna1RudVNvcExpZUxZRnJlMW5mc2ZZaUFGaUduWE9JMgp5OHN2djN4
eE8rWndMNWQ1NXBrbnhVTW9MUVFJRUNCQWdBQUJBaE9td0pBRHlQakcwUHNBdXZkelFNYTMvUnhm
OTRmZitEb3k5b3NBCkFRSUVDQkFnTUdFS1pGK0NOYjUydjd3VXE3eWthbnpkei9GMXYvaU5yeU5q
dndnUUlFQ0FBQUVDRTZaQW93TkkzRkVyTGdtS0plWnYKdlBUU1N4UG1LSDFHdmVMM0djR3FsZ0FC
QWdRSUVDQkFvRitCUmwrQ0ZYTkk0dGtqNVJMekVnWjZUa2xaenVzL0JQajVTeUJBZ0FBQgpBZ1FJ
RUtoYm9ORUJwRzRzN1JFZ1FJQUFBUUlFQ0JBZ01EeUJSbCtDTmJ5dTI1b0FBUUlFQ0JBZ1FJQUFn
Ym9GQkpDNnhiVkhnQUFCCkFnUUlFQ0JBb01VQ0FraUxCMS9YQ1JBZ1FJQUFBUUlFQ05RdElJRFVM
YTQ5QWdRSUVDQkFnQUFCQWkwV0VFQmFQUGk2VG9BQUFRSUUKQ0JBZ1FLQnVBUUdrYm5IdEVTQkFn
QUFCQWdRSUVHaXhnQURTNHNIWGRRSUVDQkFnUUlBQUFRSjFDd2dnZFl0cmp3QUJBZ1FJRUNCQQpn
RUNMQlFTUUZnKytyaE1nUUlBQUFRSUVDQkNvVzBBQXFWdGNld1FJRUNCQWdBQUJBZ1JhTENDQXRI
andkWjBBQVFJRUNCQWdRSUJBCjNRSUNTTjNpMmlOQWdBQUJBZ1FJRUNEUVlnRUJwTVdEcitzRUNC
QWdRSUFBQVFJRTZoWVFRT29XMXg0QkFnUUlFQ0JBZ0FDQkZnc0kKSUMwZWZGMG5RSUFBQVFJRUNC
QWdVTGVBQUZLM3VQWUlFQ0JBZ0FBQkFnUUl0RmhBQUdueDRPczZBUUlFQ0JBZ1FJQUFnYm9GQkpD
Ngp4YlZIZ0FBQkFnUUlFQ0JBb01VQ0FraUxCMS9YQ1JBZ1FJQUFBUUlFQ05RdElJRFVMYTQ5QWdR
SUVDQkFnQUFCQWkwV0VFQmFQUGk2ClRvQUFBUUlFQ0JBZ1FLQnVBUUdrYm5IdEVTQkFnQUFCQWdR
SUVHaXhnQURTNHNIWGRRSUVDQkFnUUlBQUFRSjFDd2dnZFl0cmp3QUIKQWdRSUVDQkFnRUNMQlFT
UUZnKytyaE1nUUlBQUFRSUVDQkNvVzBBQXFWdGNld1FJRUNCQWdBQUJBZ1JhTENDQXRIandkWjBB
QVFJRQpDQkFnUUlCQTNRSUNTTjNpMmlOQWdBQUJBZ1FJRUNEUVlnRUJwTVdEcitzRUNCQWdRSUFB
QVFJRTZoWVFRT29XMXg0QkFnUUlFQ0JBCmdBQ0JGZ3NJSUMwZWZGMG5RSUFBQVFJRUNCQWdVTGVB
QUZLM3VQWUlFQ0JBZ0FBQkFnUUl0RmhBQUdueDRPczZBUUlFQ0JBZ1FJQUEKZ2JvRkJKQzZ4YlZI
Z0FBQkFnUUlFQ0JBb01VQ0FraUxCMS9YQ1JBZ1FJQUFBUUlFQ05RdElJRFVMYTQ5QWdRSUVDQkFn
QUFCQWkwVwpFRUJhUFBpNlRvQUFBUUlFQ0JBZ1FLQnVBUUdrYm5IdEVTQkFnQUFCQWdRSUVHaXhn
QURTNHNIWGRRSUVDQkFnUUlBQUFRSjFDd2dnCmRZdHJqd0FCQWdRSUVDQkFnRUNMQlFTUUZnKyty
aE1nUUlBQUFRSUVDQkNvVzBBQXFWdGNld1FJRUNCQWdBQUJBZ1JhTENDQXRIancKZFowQUFRSUVD
QkFnUUlCQTNRSUNTTjNpMmlOQWdBQUJBZ1FJRUNEUVlnRUJwTVdEcitzRUNCQWdRSUFBQVFJRTZo
WVFRT29XMXg0QgpBZ1FJRUNCQWdBQ0JGZ3NJSUMwZWZGMG5RSUFBQVFJRUNCQWdVTGVBQUZLM3VQ
WUlFQ0JBZ0FBQkFnUUl0RmhBQUdueDRPczZBUUlFCkNCQWdRSUFBZ2JvRkJKQzZ4YlZIZ0FBQkFn
UUlFQ0JBb01VQ0FraUxCMS9YQ1JBZ1FJQUFBUUlFQ05RdElJRFVMYTQ5QWdRSUVDQkEKZ0FBQkFp
MFdFRUJhUFBpNlRvQUFBUUlFQ0JBZ1FLQnVBUUdrYm5IdEVTQkFnQUFCQWdRSUVHaXhnQURTNHNI
WGRRSUVDQkFnUUlBQQpBUUoxQ3dnZ2RZdHJqd0FCQWdRSUVDQkFnRUNMQlFTUUZnKytyaE1nUUlB
QUFRSUVDQkNvVzBBQXFWdGNld1FJRUNCQWdBQUJBZ1JhCkxDQ0F0SGp3ZFowQUFRSUVDQkFnUUlC
QTNRSUNTTjNpMmlOQWdBQUJBZ1FJRUNEUVlnRUJwTVdEcitzRUNCQWdRSUFBQVFJRTZoWVEKUU9v
VzF4NEJBZ1FJRUNCQWdBQ0JGZ3NJSUMwZWZGMG5RSUFBQVFJRUNCQWdVTGVBQUZLM3VQWUlFQ0JB
Z0FBQkFnUUl0RmhBQUdueAo0T3M2QVFJRUNCQWdRSUFBZ2JvRkJKQzZ4YlZIZ0FBQkFnUUlFQ0JB
b01VQ0FraUxCMS9YQ1JBZ1FJQUFBUUlFQ05RdElJRFVMYTQ5CkFnUUlFQ0JBZ0FBQkFpMFdFRUJh
UFBpNlRvQUFBUUlFQ0JBZ1FLQnVBUUdrYm5IdEVTQkFnQUFCQWdRSUVHaXhnQURTNHNIWGRRSUUK
Q0JBZ1FJQUFBUUoxQ3dnZ2RZdHJqd0FCQWdRSUVDQkFnRUNMQlFTUUZnKytyaE1nUUlBQUFRSUVD
QkNvVzBBQXFWdGNld1FJRUNCQQpnQUFCQWdSYUxDQ0F0SGp3ZFowQUFRSUVDQkFnUUlCQTNRSUNT
TjNpMmlOQWdBQUJBZ1FJRUNEUVlnRUJwTVdEcitzRUNCQWdRSUFBCkFRSUU2aFlRUU9vVzF4NEJB
Z1FJRUNCQWdBQ0JGZ3NJSUMwZWZGMG5RSUFBQVFJRUNCQWdVTGVBQUZLM3VQWUlFQ0JBZ0FBQkFn
UUkKdEZoQUFHbng0T3M2QVFJRUNCQWdRSUFBZ2JvRkJKQzZ4YlZIZ0FBQkFnUUlFQ0JBb01VQ0Fr
aUxCMS9YQ1JBZ1FJQUFBUUlFQ05RdApJSURVTGE0OUFnUUlFQ0JBZ0FBQkFpMFdFRUJhUFBpNlRv
QUFBUUlFQ0JBZ1FLQnVBUUdrYm5IdEVTQkFnQUFCQWdRSUVHaXhnQURTCjRzSFhkUUlFQ0JBZ1FJ
QUFBUUoxQ3dnZ2RZdHJqd0FCQWdRSUVDQkFnRUNMQlFTUUZnKytyaE1nUUlBQUFRSUVDQkNvVzBB
QXFWdGMKZXdRSUVDQkFnQUFCQWdSYUxDQ0F0SGp3ZFowQUFRSUVDQkFnUUlCQTNRSUNTTjNpMmlO
QWdBQUJBZ1FJRUNEUVlnRUJwTVdEcitzRQpDQkFnUUlBQUFRSUU2aFlRUU9vVzF4NEJBZ1FJRUNC
QWdBQ0JGZ3NJSUMwZWZGMG5RSUFBQVFJRUNCQWdVTGVBQUZLM3VQWUlFQ0JBCmdBQUJBZ1FJdEZo
QUFHbng0T3M2QVFJRUNCQWdRSUFBZ2JvRkJKQzZ4YlZIZ0FBQkFnUUlFQ0JBb01VQ0FraUxCMS9Y
Q1JBZ1FJQUEKQVFJRUNOUXRJSURVTGE0OUFnUUlFQ0JBZ0FBQkFpMFdFRUJhUFBpNlRvQUFBUUlF
Q0JBZ1FLQnVBUUdrYm5IdEVTQkFnQUFCQWdRSQpFR2l4Z0FEUzRzSFhkUUlFQ0JBZ1FJQUFBUUox
Q3dnZ2RZdHJqd0FCQWdRSUVDQkFnRUNMQlFTUUZnKytyaE1nUUlBQUFRSUVDQkNvClcwQUFxVnRj
ZXdRSUVDQkFnQUFCQWdSYUxDQ0F0SGp3ZFowQUFRSUVDQkFnUUlCQTNRSUNTTjNpMmlOQWdBQUJB
Z1FJRUNEUVlnRUIKcE1XRHIrc0VDQkFnUUlBQUFRSUU2aFlRUU9vVzF4NEJBZ1FJRUNCQWdBQ0JG
Z3NJSUMwZWZGMG5RSUFBQVFJRUNCQWdVTGVBQUZLMwp1UFlJRUNCQWdBQUJBZ1FJdEZoQUFHbng0
T3M2QVFJRUNCQWdRSUFBZ2JvRkJKQzZ4YlZIZ0FBQkFnUUlFQ0JBb01VQ0FraUxCMS9YCkNSQWdR
SUFBQVFJRUNOUXRJSURVTGE0OUFnUUlFQ0JBZ0FBQkFpMFdFRUJhUFBpNlRvQUFBUUlFQ0JBZ1FL
QnVBUUdrYm5IdEVTQkEKZ0FBQkFnUUlFR2l4Z0FEUzRzSFhkUUlFQ0JBZ1FJQUFBUUoxQ3dnZ2RZ
dHJqd0FCQWdRSUVDQkFnRUNMQlFTUUZnKytyaE1nUUlBQQpBUUlFQ0JDb1cwQUFxVnRjZXdRSUVD
QkFnQUFCQWdSYUxDQ0F0SGp3ZFowQUFRSUVDQkFnUUlCQTNRSUNTTjNpMmlOQWdBQUJBZ1FJCkVD
RFFZZ0VCcE1XRHIrc0VDQkFnUUlBQUFRSUU2aFlRUU9vVzF4NEJBZ1FJRUNCQWdBQ0JGZ3NJSUMw
ZWZGMG5RSUFBQVFJRUNCQWcKVUxlQUFGSzN1UFlJRUNCQWdBQUJBZ1FJdEZoQUFHbng0T3M2QVFJ
RUNCQWdRSUFBZ2JvRkJKQzZ4YlZIZ0FBQkFnUUlFQ0JBb01VQwpBa2lMQjEvWENSQWdRSUFBQVFJ
RUNOUXRJSURVTGE0OUFnUUlFQ0JBZ0FBQkFpMFdFRUJhUFBpNlRvQUFBUUlFQ0JBZ1FLQnVBUUdr
CmJuSHRFU0JBZ0FBQkFnUUlFR2l4Z0FEUzRzSFhkUUlFQ0JBZ1FJQUFBUUoxQ3dnZ2RZdHJqd0FC
QWdRSUVDQkFnRUNMQlFTUUZnKysKcmhNZ1FJQUFBUUlFQ0JDb1cwQUFxVnRjZXdRSUVDQkFnQUFC
QWdSYUxDQ0F0SGp3ZFowQUFRSUVDQkFnUUlCQTNRSUNTTjNpMmlOQQpnQUFCQWdRSUVDRFFZZ0VC
cE1XRHIrc0VDQkFnUUlBQUFRSUU2aFlRUU9vVzF4NEJBZ1FJRUNCQWdBQ0JGZ3NJSUMwZWZGMG5R
SUFBCkFRSUVDQkFnVUxlQUFGSzN1UFlJRUNCQWdBQUJBZ1FJdEZoQUFHbng0T3M2QVFJRUNCQWdR
SUFBZ2JvRkJKQzZ4YlZIZ0FBQkFnUUkKRUNCQW9NVUNrd3kxN3g5OTlGR2FhS0tKaW45RDNiYS84
cmZmZm50YWR0bGwrL3ZhK25FUWVPNjU1OUpkZDkxVi9JdngrdWQvL3VlMAp6RExMcEdtbm5YWWNh
ck1KQVFJRUNCQWdRSUFBZ1dvRVJ2UjBsdHlxZHQ5OTkvU3JYLzBxelRqampHbUhIWFpJZSsrOWQ3
SHB4UmRmCm5DYWJiTEwwTC8veUwrbU5OOTVJanozMldKcGtrcnhzOCs2Nzc2YWpqam9xblhubW1X
blVxRkZwaWltbVNKdHNza21hZE5KSmMzZHIKMk9YT1AvLzhOUC84ODZmRkZsdHMySFVOdFlJWFgz
d3gvZVkzdjBueHVzRUdHNlNWVmxwcHFGV01VZjdCQng5TXh4OS9mSnB1dXVuUwpjc3N0Vi95TEFC
Smg1TzY3NzA1MzNubG5NVzZMTExMSUdOdjVRSUFBQVFJRUNCQWdRS0FPZ2V3QTh1U1RUNmFGRjE0
NHJiNzY2a1VBCnVmenl5OU41NTUyWFZsbGxsZlN2Ly9xdktRN2l6enJyckxUYWFxc1ZBZUxhYTYv
TjN2L1pacHN0eFMvMjc3enpUcHA1NXBuVHJydnUKbWc0KytPRHM3WWRiY1AvOTkwOHJyTEJDV25Q
Tk5ZZGIxWkMzMzJXWFhkSWVlK3lSWnBwcHByVG5ubnVtM1hiYkxjMHh4eHpkZWlJZgpqaGd4b3Z0
NW9EZjc3cnR2aXZJLy8vblArdzF3NzcvL2ZoSDQ1cHh6enJUNTVwc1BWSjN2Q0JBZ1FJQUFBUUlF
Q0ZRdWtIZWFvdE5zCkJJckREejg4N2J6enpzVk9QUHp3dzJtLy9mWXJBc2pwcDUrZXpqNzc3S0xN
Umh0dGxKWmZmdm5pRi9qMTFsc3Z4WUZ1bkEySmdERjYKOU9qMDBFTVBGUWZaY1ZBZGwzTzkrZWFi
M2N1NXBwNTY2dUxBdVF3Q2YvN3puOU1CQnh5UTR0ZjZhSHRDVytMc1Q1enhtWDMyMll1dQpmZi83
MzA4WFhIQkJjWFlwVmx4Ly9mWHA1WmRmTHM2TUROYjNrMDQ2S1UwKytlUnBxYVdXNmpkOFJCM1Iz
bi8rNTMrbWE2NjVwbmo5CnhTOStNVmpWdmlkQWdBQUJBZ1FJRUNCUW1VQjJBSmxsbGxuU3JMUE8y
bTE0b1lVV1NsLys4cGVMejFOTk5WWGFZb3N0MHR0dnY1MGkKbUV3Ly9mVHAzSFBQN1pZdDMzejN1
OTlOVHp6eFJISG1KSDdwaitYQ0N5OU1yNy8rZW5yZ2dRZUtRQklINVpkZWVtbHhGdVNsbDE1SwpF
V0syMldhYnNvb0o2alhjNHF6UFcyKzlsYWFaWnBwMHpqbm5mT3FzUkFTdlYxOTlkY0M1RzJINnlD
T1BwRGk3MFh1TUJzTDZ4amUrCmtXNjQ0WVprL3MxQVNyNGpRSUFBQVFJRUNCQ29XaUE3Z01SWmli
aEVhTzIxMSs2ZXNZZ1FFci9ReCtWRHNYenl5U2ZGV1pEdHR0dXUKMy8yY2Q5NTV4L2lGUGdKR25C
bjV3eC8rVUJ3TXgyVmVTeXl4Uk5wNjY2M1RnZ3N1Mkc4OVZYOXg4ODAzcC9mZWUyL0Fha2VPSEZt
RQpxd0VMRGZITENHS0hIbnBvRWQ3V1dHT05OTTg4ODR4UlE1d0Zpbis1UysvTHR3YmJKaTdaaXN2
ZDRxekp4Qk5QUEZoeDN4TWdRSUFBCkFRSUVDQkFZdGtCMkFJbEo0U3V2dkhKYWQ5MTFVNXpKaUhr
YmNlYmlzc3N1UzNQUFBYZDYrdW1uMC8vOHovK2ttTk1RWjBMaUxFaC8KeXdzdnZGQWM3RTg1NVpS
RmthZzMvc1daait1dXU2NllRL0xhYTYrbCsrKy9QeTI2NktMOVZWUForamp3dittbW05S2pqejQ2
WUoweApUNlRxSlFMWklZY2MwbSsxMy9yV3Q5SVBmdkNERkplbjliVTgvdmpqNlgvLzkzK0x5OTdp
YkVxY3FjcGQ0dEs0eFJkZnZBZzRLNjY0Cll1NW15aEVnUUlBQUFRSUVDQkFZWjRIc0FITEpKWmNV
azgyanBRZ0tZeTl4TUh2c3NjZW1yMzN0YTJuTExiZE1wNXh5U2pIL28zZTUKbUNBZDljVGNob01P
T3FqM1Y4WDc1NTkvdmdnekgzendRWW9ENjUxMjJpbnR0ZGRleGNIMVVBNnNQMVh4SUN0aW4rUGYr
TGJFbkk0dwpXR3V0dGZyZHRRZ2ZjWWxhQkpseFdlSk9XYmZlZW1zU1FNWkZ6ellFQ0JBZ1FJQUFB
UUpERmNnT0lIRjVWZHlaS2k3QmlzdDFZZ0w1Cnh4OS9uRDc4OE1QaTgzenp6VmZjd1NwMklPNk1O
ZGRjY3hXWDlzUWs5SmpyOE1vcnI2UzRSV3lFakw3dWtCVnpQLzc0eHo4Vzh4MmkKL3RndTJvekx1
eUxZeE9UMWFML095N0tHaWxsMStad3pMakhuWnF1dHRocm5wdi9wbi80cG5YcnFxZU84dlEwSkVD
QkFnQUFCQWdRSQpERVVnTzRERUwrWHhLM2s1MzJPZ1J1STJzUEhndXlPT09LSzR2Q2VlY1JHWGJN
WGRzZUs3SlpkY2Nvek40ODVQUng5OWRGSDNacHR0CmxqYmVlT08weno3N0ZML3NSNXZ4NzZLTExp
cHVBUnpQc2NqWmh6RWFtSUEvUkFETXZVMXZYd3k1ejJ2cGExdnJDQkFnUUlBQUFRSUUKQ0F4VllL
TGNEU0pBRE9YQVA4NlV4SzFlNDR4SEhDUS8rK3l6eGQydnhnNGZjYW5XY2NjZFYxeldGU0Vud2tx
RWpLdXZ2anJGYlduTApKZWFleEoyaTRrR0lsdjh2RUpQT3czWmNsNmVlZXFxNDdHMWN0N2NkQVFJ
RUNCQWdRSUFBZ2FFSVpKOEJHVXFsWTVmdDd3NUw5OTEzClgvRVF2cmlGYkR5ZllvWVpaaWp1aUhY
TU1jY1V6eFVaZTd1NDdlKzk5OTQ3ZHZWOWZvNTVKREV4ZnJBbDJvd251emQxV1dhWlpkSWQKZDl3
eHhzTUxoOUlYdCtFZGlwYXlCQWdRSUVDQUFBRUN3eFdvSllEMHQ1UHg5UFIxMWxtbis0eUxtR2gr
Mm1tbkZjOFFpVnZ4anIzRQptWkhlWjBYRy9yNzM1emp6RWs4NEgyaUpNbkZaMklFSEhqaFFzZkg2
dXdnZ2NWbGJuQ0VhbHlYbTNjUnRnQzBFQ0JBZ1FJQUFBUUlFCjZoRDRYQU5Jbk5HSVc4ZkcyWXFZ
Q0IwSDBqRmh2YTluV1VRd2ljdXpjZyswNDliQWcwMnVqc253Y2R2ZkppL1RUanR0Y2F2aXVOd3QK
SGk0NGxPV0tLNjVJU3krOWRMKzMrQjFLWGNvU0lFQ0FBQUVDQkFnUXlCSEluZ09TVTlsUXkyeTAw
VWJwOU5OUEw1N2VQV3JVcU9MMgp2RHZ1dUdPNjhzb3J4NmdxSGhLNHd3NDdwS09PT3NydFlzZVEr
Y2VIdUEzdm1XZWVtZDU4ODgwK3Z1MTdWVHpENWJ6enppdHVtZHgzCkNXc0pFQ0JBZ0FBQkFnUUlW
Qy93dVo0QmlYa2Y4VnlROTk5L1A4VUU5RmppK1NCdnZmVlc4VDdPZUJ4KytPSHBxcXV1U2llZmZI
TGEKWUlNTml2WCsrN1JBWEc0V1QxV1BKOGdQOWt5UGVPamlTU2VkVk56VytOTTFXVU9BQUFFQ0JB
Z1FJRURnc3hNWTBYazRZTTluVi8yNAoxUngzZFRybm5ITlNQQTA5Z2trOGlHODR0NXJ0YnkvaWdZ
ZzMzSEJEMm5mZmZmc3IwcWoxOGR5VW1NRC84c3N2RjJFdG5pSWZUN0NQCkplNUVGcFArdzNYV1dX
ZE5QL3poRHo4VDAwYUIyVmtDQkFnUUlFQ0FBSUhhQmNiTEFGSzd3Z1RXWU56OUsrYTIzSC8vL1VY
d2lPNUYKRUltSERvNGNPYko0U09RRTFtWGRJVUNBQUFFQ0JBZ1FhSWlBQU5LUWdiS2JCQWdRSUVD
QUFBRUNCQ1lFZ2M5MUV2cUVBS2dQQkFnUQpJRUNBQUFFQ0JBamtDd2dnK1ZaS0VpQkFnQUFCQWdR
SUVDQXdUQUVCWkppQU5pZEFnQUFCQWdRSUVDQkFJRjlBQU1tM1VwSUFBUUlFCkNCQWdRSUFBZ1dF
S0NDRERCTFE1QVFJRUNCQWdRSUFBQVFMNUFnSkl2cFdTQkFnUUlFQ0FBQUVDQkFnTVUwQUFHU2Fn
elFrUUlFQ0EKQUFFQ0JBZ1F5QmNRUVBLdGxDUkFnQUFCQWdRSUVDQkFZSmdDQXNnd0FXMU9nQUFC
QWdRSUVDQkFnRUMrZ0FDU2I2VWtBUUlFQ0JBZwpRSUFBQVFMREZCQkFoZ2xvY3dJRUNCQWdRSUFB
QVFJRThnVUVrSHdySlFrUUlFQ0FBQUVDQkFnUUdLYUFBREpNUUpzVElFQ0FBQUVDCkJBZ1FJSkF2
SUlEa1d5bEpnQUFCQWdRSUVDQkFnTUF3QlFTUVlRTGFuQUFCQWdRSUVDQkFnQUNCZkFFQkpOOUtT
UUlFQ0JBZ1FJQUEKQVFJRWhpa2dnQXdUME9ZRUNCQWdRSUFBQVFJRUNPUUxDQ0Q1VmtvU0lFQ0FB
QUVDQkFnUUlEQk1BUUZrbUlBMkowQ0FBQUVDQkFnUQpJRUFnWDBBQXliZFNrZ0FCQWdRSUVDQkFn
QUNCWVFwTU10ajJKNXh3d21CRmZFK0FBQUVDQkFnUUlFQ0FBSUcwNFlZYnBobG1tR0ZBCmlVRURT
R3dkRlZrSUVDQkFnQUFCQWdRSUVDQXdYSUVSUFoxbHVKWFluZ0FCQWdRSUVDQkFnQUFCQWprQzVv
RGtLQ2xEZ0FBQkFnUUkKRUNCQWdFQWxBZ0pJSll3cUlVQ0FBQUVDQkFnUUlFQWdSMEFBeVZGU2hn
QUJBZ1FJRUNCQWdBQ0JTZ1FFa0VvWVZVS0FBQUVDQkFnUQpJRUNBUUk2QUFKS2pwQXdCQWdRSUVD
QkFnQUFCQXBVSUNDQ1ZNS3FFQUFFQ0JBZ1FJRUNBQUlFY0FRRWtSMGtaQWdRSUVDQkFnQUFCCkFn
UXFFUkJBS21GVUNRRUNCQWdRSUVDQUFBRUNPUUlDU0k2U01nUUlFQ0JBZ0FBQkFnUUlWQ0lnTjBT
eDV3QUFDMmhKUkVGVWdGVEMKcUJJQ0JBZ1FJRUNBQUFFQ0JISUVCSkFjSldVSUVDQkFnQUFCQWdR
SUVLaEVRQUNwaEZFbEJBZ1FJRUNBQUFFQ0JBamtDQWdnT1VySwpFQ0JBZ0FBQkFnUUlFQ0JRaVlB
QVVnbWpTZ2dRSUVDQUFBRUNCQWdReUJFUVFIS1VsQ0ZBZ0FBQkFnUUlFQ0JBb0JJQkFhUVNScFVR
CklFQ0FBQUVDQkFnUUlKQWpJSURrS0NsRGdBQUJBZ1FJRUNCQWdFQWxBZ0pJSll3cUlVQ0FBQUVD
QkFnUUlFQWdSMEFBeVZGU2hnQUIKQWdRSUVDQkFnQUNCU2dRRWtFb1lWVUtBQUFFQ0JBZ1FJRUNB
UUk2QUFKS2pwQXdCQWdRSUVDQkFnQUFCQXBVSUNDQ1ZNS3FFQUFFQwpCQWdRSUVDQUFJRWNBUUVr
UjBrWkFnUUlFQ0JBZ0FBQkFnUXFFUkJBS21GVUNRRUNCQWdRSUVDQUFBRUNPUUlDU0k2U01nUUlF
Q0JBCmdBQUJBZ1FJVkNJZ2dGVENxQklDQkFnUUlFQ0FBQUVDQkhJRUJKQWNKV1VJRUNCQWdBQUJB
Z1FJRUtoRVFBQ3BoRkVsQkFnUUlFQ0EKQUFFQ0JBamtDQWdnT1VyS0VDQkFnQUFCQWdRSUVDQlFp
WUFBVWdtalNnZ1FJRUNBQUFFQ0JBZ1F5QkVRUUhLVWxDRkFnQUFCQWdRSQpFQ0JBb0JJQkFhUVNS
cFVRSUVDQUFBRUNCQWdRSUpBaklJRGtLQ2xEZ0FBQkFnUUlFQ0JBZ0VBbEFnSklKWXdxSVVDQUFB
RUNCQWdRCklFQWdSMEFBeVZGU2hnQUJBZ1FJRUNCQWdBQ0JTZ1FFa0VvWVZVS0FBQUVDQkFnUUlF
Q0FRSTZBQUpLanBBd0JBZ1FJRUNCQWdBQUIKQXBVSUNDQ1ZNS3FFQUFFQ0JBZ1FJRUNBQUlFY0FR
RWtSMGtaQWdRSUVDQkFnQUFCQWdRcUVSQkFLbUZVQ1FFQ0JBZ1FJRUNBQUFFQwpPUUlDU0k2U01n
UUlFQ0JBZ0FBQkFnUUlWQ0lnZ0ZUQ3FCSUNCQWdRSUVDQUFBRUNCSElFQkpBY0pXVUlFQ0JBZ0FB
QkFnUUlFS2hFClFBQ3BoRkVsQkFnUUlFQ0FBQUVDQkFqa0NBZ2dPVXJLRUNCQWdBQUJBZ1FJRUNC
UWlZQUFVZ21qU2dnUUlFQ0FBQUVDQkFnUXlCRVEKUUhLVWxDRkFnQUFCQWdRSUVDQkFvQklCQWFR
U1JwVVFJRUNBQUFFQ0JBZ1FJSkFqSUlEa0tDbERnQUFCQWdRSUVDQkFnRUFsQWdKSQpKWXdxSVVD
QUFBRUNCQWdRSUVBZ1IwQUF5VkZTaGdBQkFnUUlFQ0JBZ0FDQlNnUUVrRW9ZVlVLQUFBRUNCQWdR
SUVDQVFJNkFBSktqCnBBd0JBZ1FJRUNCQWdBQUJBcFVJQ0NDVk1LcUVBQUVDQkFnUUlFQ0FBSUVj
QVFFa1Iwa1pBZ1FJRUNCQWdBQUJBZ1FxRVJCQUttRlUKQ1FFQ0JBZ1FJRUNBQUFFQ09RSUNTSTZT
TWdRSUVDQkFnQUFCQWdRSVZDSWdnRlRDcUJJQ0JBZ1FJRUNBQUFFQ0JISUVCSkFjSldVSQpFQ0JB
Z0FBQkFnUUlFS2hFUUFDcGhGRWxCQWdRSUVDQUFBRUNCQWprQ0FnZ09VcktFQ0JBZ0FBQkFnUUlF
Q0JRaVlBQVVnbWpTZ2dRCklFQ0FBQUVDQkFnUXlCRVFRSEtVbENGQWdBQUJBZ1FJRUNCQW9CSUJB
YVFTUnBVUUlFQ0FBQUVDQkFnUUlKQWpJSURrS0NsRGdBQUIKQWdRSUVDQkFnRUFsQWdKSUpZd3FJ
VUNBQUFFQ0JBZ1FJRUFnUjBBQXlWRlNoZ0FCQWdRSUVDQkFnQUNCU2dRRWtFb1lWVUtBQUFFQwpC
QWdRSUVDQVFJNkFBSktqcEF3QkFnUUlFQ0JBZ0FBQkFwVUlDQ0NWTUtxRUFBRUNCQWdRSUVDQUFJ
RWNBUUVrUjBrWkFnUUlFQ0JBCmdBQUJBZ1FxRVJCQUttRlVDUUVDQkFnUUlFQ0FBQUVDT1FJQ1NJ
NlNNZ1FJRUNCQWdBQUJBZ1FJVkNJZ2dGVENxQklDQkFnUUlFQ0EKQUFFQ0JISUVCSkFjSldVSUVD
QkFnQUFCQWdRSUVLaEVRQUNwaEZFbEJBZ1FJRUNBQUFFQ0JBamtDQWdnT1VyS0VDQkFnQUFCQWdR
SQpFQ0JRaVlBQVVnbWpTZ2dRSUVDQUFBRUNCQWdReUJFUVFIS1VsQ0ZBZ0FBQkFnUUlFQ0JBb0JJ
QkFhUVNScFVRSUVDQUFBRUNCQWdRCklKQWpJSURrS0NsRGdBQUJBZ1FJRUNCQWdFQWxBZ0pJSll3
cUlVQ0FBQUVDQkFnUUlFQWdSMEFBeVZGU2hnQUJBZ1FJRUNCQWdBQ0IKU2dRRWtFb1lWVUtBQUFF
Q0JBZ1FJRUNBUUk2QUFKS2pwQXdCQWdRSUVDQkFnQUFCQXBVSUNDQ1ZNS3FFQUFFQ0JBZ1FJRUNB
QUlFYwpBUUVrUjBrWkFnUUlFQ0JBZ0FBQkFnUXFFUkJBS21GVUNRRUNCQWdRSUVDQUFBRUNPUUlD
U0k2U01nUUlFQ0JBZ0FBQkFnUUlWQ0lnCmdGVENxQklDQkFnUUlFQ0FBQUVDQkhJRUJKQWNKV1VJ
RUNCQWdBQUJBZ1FJRUtoRVFBQ3BoRkVsQkFnUUlFQ0FBQUVDQkFqa0NBZ2cKT1VyS0VDQkFnQUFC
QWdRSUVDQlFpWUFBVWdtalNnZ1FJRUNBQUFFQ0JBZ1F5QkVRUUhLVWxDRkFnQUFCQWdRSUVDQkFv
QklCQWFRUwpScFVRSUVDQUFBRUNCQWdRSUpBaklJRGtLQ2xEZ0FBQkFnUUlFQ0JBZ0VBbEFnSklK
WXdxSVVDQUFBRUNCQWdRSUVBZ1IwQUF5VkZTCmhnQUJBZ1FJRUNCQWdBQ0JTZ1FFa0VvWVZVS0FB
QUVDQkFnUUlFQ0FRSTZBQUpLanBBd0JBZ1FJRUNCQWdBQUJBcFVJQ0NDVk1LcUUKQUFFQ0JBZ1FJ
RUNBQUlFY0FRRWtSMGtaQWdRSUVDQkFnQUFCQWdRcUVSQkFLbUZVQ1FFQ0JBZ1FJRUNBQUFFQ09R
SUNTSTZTTWdRSQpFQ0JBZ0FBQkFnUUlWQ0lnZ0ZUQ3FCSUNCQWdRSUVDQUFBRUNCSElFQkpBY0pX
VUlFQ0JBZ0FBQkFnUUlFS2hFUUFDcGhGRWxCQWdRCklFQ0FBQUVDQkFqa0NBZ2dPVXJLRUNCQWdB
QUJBZ1FJRUNCUWlZQUFVZ21qU2dnUUlFQ0FBQUVDQkFnUXlCRVFRSEtVbENGQWdBQUIKQWdRSUVD
QkFvQklCQWFRU1JwVVFJRUNBQUFFQ0JBZ1FJSkFqSUlEa0tDbERnQUFCQWdRSUVDQkFnRUFsQWdK
SUpZd3FJVUNBQUFFQwpCQWdRSUVBZ1IwQUF5VkZTaGdBQkFnUUlFQ0JBZ0FDQlNnUUVrRW9ZVlVL
QUFBRUNCQWdRSUVDQVFJNkFBSktqcEF3QkFnUUlFQ0JBCmdBQUJBcFVJQ0NDVk1LcUVBQUVDQkFn
UUlFQ0FBSUVjQVFFa1Iwa1pBZ1FJRUNCQWdBQUJBZ1FxRVJCQUttRlVDUUVDQkFnUUlFQ0EKQUFF
Q09RSUNTSTZTTWdRSUVDQkFnQUFCQWdRSVZDSWdnRlRDcUJJQ0JBZ1FJRUNBQUFFQ0JISUVCSkFj
SldVSUVDQkFnQUFCQWdRSQpFS2hFUUFDcGhGRWxCQWdRSUVDQUFBRUNCQWprQ0FnZ09VcktFQ0JB
Z0FBQkFnUUlFQ0JRaVlBQVVnbWpTZ2dRSUVDQUFBRUNCQWdRCnlCRVFRSEtVbENGQWdBQUJBZ1FJ
RUNCQW9CSUJBYVFTUnBVUUlFQ0FBQUVDQkFnUUlKQWpJSURrS0NsRGdBQUJBZ1FJRUNCQWdFQWwK
QWdKSUpZd3FJVUNBQUFFQ0JBZ1FJRUFnUjBBQXlWRlNoZ0FCQWdRSUVDQkFnQUNCU2dRRWtFb1lW
VUtBQUFFQ0JBZ1FJRUNBUUk2QQpBSktqcEF3QkFnUUlFQ0JBZ0FBQkFwVUlDQ0NWTUtxRUFBRUNC
QWdRSUVDQUFJRWNBUUVrUjBrWkFnUUlFQ0JBZ0FBQkFnUXFFUkJBCkttRlVDUUVDQkFnUUlFQ0FB
QUVDT1FJQ1NJNlNNZ1FJRUNCQWdBQUJBZ1FJVkNJZ2dGVENxQklDQkFnUUlFQ0FBQUVDQkhJRUJK
QWMKSldVSUVDQkFnQUFCQWdRSUVLaEVRQUNwaEZFbEJBZ1FJRUNBQUFFQ0JBamtDQWdnT1VyS0VD
QkFnQUFCQWdRSUVDQlFpWUFBVWdtagpTZ2dRSUVDQUFBRUNCQWdReUJFUVFIS1VsQ0ZBZ0FBQkFn
UUlFQ0JBb0JJQkFhUVNScFVRSUVDQUFBRUNCQWdRSUpBaklJRGtLQ2xECmdBQUJBZ1FJRUNCQWdF
QWxBZ0pJSll3cUlVQ0FBQUVDQkFnUUlFQWdSMEFBeVZGU2hnQUJBZ1FJRUNCQWdBQ0JTZ1FFa0Vv
WVZVS0EKQUFFQ0JBZ1FJRUNBUUk2QUFKS2pwQXdCQWdRSUVDQkFnQUFCQXBVSUNDQ1ZNS3FFQUFF
Q0JBZ1FJRUNBQUlFY0FRRWtSMGtaQWdRSQpFQ0JBZ0FBQkFnUXFFUkJBS21GVUNRRUNCQWdRSUVD
QUFBRUNPUUlDU0k2U01nUUlFQ0JBZ0FBQkFnUUlWQ0lnZ0ZUQ3FCSUNCQWdRCklFQ0FBQUVDQkhJ
RUJKQWNKV1VJRUNCQWdBQUJBZ1FJRUtoRVFBQ3BoRkVsQkFnUUlFQ0FBQUVDQkFqa0NBZ2dPVXJL
RUNCQWdBQUIKQWdRSUVDQlFpWUFBVWdtalNnZ1FJRUNBQUFFQ0JBZ1F5QkVRUUhLVWxDRkFnQUFC
QWdRSUVDQkFvQklCQWFRU1JwVVFJRUNBQUFFQwpCQWdRSUpBaklJRGtLQ2xEZ0FBQkFnUUlFQ0JB
Z0VBbEFnSklKWXdxSVVDQUFBRUNCQWdRSUVBZ1IwQUF5VkZTaGdBQkFnUUlFQ0JBCmdBQ0JTZ1FF
a0VvWVZVS0FBQUVDQkFnUUlFQ0FRSTZBQUpLanBBd0JBZ1FJRUNCQWdBQUJBcFVJQ0NDVk1LcUVB
QUVDQkFnUUlFQ0EKQUlFY2dmOEhrS1BxMDA1RGhZQUFBQUFBU1VWT1JLNUNZSUk9Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71270</attachid>
            <date>2010-10-20 03:51:52 -0700</date>
            <delta_ts>2010-10-20 16:53:35 -0700</delta_ts>
            <desc>Added pixel test. Changed tests to explicitly specify a font family. (Resubmitting for build error...)</desc>
            <filename>WK46973Patch_101020-2.txt</filename>
            <type>text/plain</type>
            <size>89562</size>
            <attacher name="Takumi Takano">takano</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsOTAgQEAKKzIwMTAtMTAtMjAgIHRha2FubyB0YWt1bWkgIDx0YWthbm8xQGFzaWEu
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5lZWQgdG8gc3dhcCBnbHlwaHMgZm9yIHZlcnRpY2FsIHdyaXRpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2OTczCisKKyAgICAgICAgTWFk
ZSBjaGFuZ2VzIHRvIHBhc3MgdGhlIHdyaXRpbmctbW9kZSBvcmllbnRhdGlvbiBmbGFnIGluIFJl
bmRlclN0eWxlIGRvd24gdG8gRm9udFBsYXRmb3JtRGF0YSwKKyAgICAgICAgYW5kIHVsdGltYXRl
bHkgdG8gQ29yZVRleHQgQVBJcyBpbiBib3RoIGZvbnQgY29tcGxleCBwYXRoIGFuZCBmYXN0IHBh
dGguCisKKyAgICAgICAgVGVzdHM6IGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRl
eHQtZ2x5cGgtdGVzdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3RleHQvaW50ZXJuYXRpb25h
bC92ZXJ0aWNhbC10ZXh0LW1ldHJpY3MtdGVzdC5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmV4
cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVk
IHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRPcmllbnRhdGlvbi5oLgorICAgICAgICAqIGNzcy9DU1NG
b250RmFjZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNvdXJjZTo6
Z2V0Rm9udERhdGEpOiBBZGRlZCBmb250IG9yaWVudGF0aW9uIHBhcmFtZXRlciB0byBTaW1wbGVG
b250RGF0YS4KKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KTogU2V0IGFwcHJvcHJpYXRl
IGZvbnQgb3JpZW50YXRpb24gdG8gdGhlIGZvbnQgZGVzY3JpcHRpb24KKyAgICAgICAgd2hlbiB3
cml0aW5nLW1vZGUgaXMgYmVpbmcgc3BlY2lmaWVkLgorICAgICAgICAqIGxvYWRlci9DYWNoZWRG
b250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21D
dXN0b21EYXRhKTogTWFkZSB0byBwYXNzIGZvbnQgb3JpZW50YXRpb24gdG8gRm9udFBsYXRmb3Jt
RGF0YS4KKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkRm9udC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHA6IEFkZGVkIGZvbnQgb3JpZW50YXRpb24gdG8gRm9udFBs
YXRmb3JtRGF0YUNhY2hlS2V5CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhQ2Fj
aGVLZXk6OkZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpGb250
UGxhdGZvcm1EYXRhQ2FjaGVLZXk6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6Y29t
cHV0ZUhhc2gpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRDYWNoZWRGb250UGxh
dGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24u
aDogQWRkZWQgZm9udCBvcmllbnRhdGlvbiBzdXBwb3J0IHRvIEZvbnREZXNjcmlwdGlvbiBjbGFz
cworICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpGb250RGVzY3JpcHRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpvcmllbnRhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnNldE9yaWVudGF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udE9yaWVudGF0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6IENoYW5nZWQgdG8gcGFzcyBmb250IG9yaWVu
dGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3Rv
bVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOiBDaGFuZ2VkIHRvIHBhc3MgZm9u
dCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhLmg6IEFkZGVkIGZvbnQgb3JpZW50YXRpb24g
c3VwcG9ydCB0byBGb250UGxhdGZvcm1EYXRhIGNsYXNzCisgICAgICAgIChXZWJDb3JlOjpGb250
UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQ
bGF0Zm9ybURhdGE6Om9yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9y
bURhdGE6Omhhc2gpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6b3BlcmF0
b3I9PSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0
YUNvY29hLm1tOiBBZGRlZCBmb250IG9yaWVudGF0aW9uIHN1cHBvcnQKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udFBsYXRmb3JtRGF0YTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQ
bGF0Zm9ybURhdGE6OmFsbG93c0xpZ2F0dXJlcyk6IERvbid0IGFsbG93IGxpZ2F0dXJlcyB3aGVu
IHRoZSBmb250IGlzIHZlcnRpY2FsIG9yaWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dFBsYXRmb3JtRGF0YTo6ZGVzY3JpcHRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2d0ay9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUGFuZ28uY3BwOiBDaGFuZ2VkIHRvIHBhc3MgZm9u
dCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOiBDaGFuZ2VkIHRv
IHBhc3MgZm9udCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDogQ2hh
bmdlZCB0byBwYXNzIGZvbnQgb3JpZW50YXRpb24gdG8gZm9udFBsYXRmb3JtRGF0YSgpCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbTogQWRkZWQgZm9udCBv
cmllbnRhdGlvbiBwYXJhbWV0ZXIgd2hlbiBjcmVhdGluZyBGb250UGxhdGZvcm1EYXRhIG9iamVj
dC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0Rm9udERhdGFGb3JDaGFyYWN0ZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwOiBBZGRlZCBmb250IG9yaWVudGF0aW9uIHBhcmFtZXRlciB3aGVuIGNyZWF0aW5nIEZvbnRQ
bGF0Zm9ybURhdGEgb2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3Jt
RGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDogQ2hhbmdlZCB0byBwYXNzIGZvbnQgb3JpZW50YXRp
b24gcGFyYW1ldGVyIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9HbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
bHlwaFBhZ2U6OmZpbGwpOiBDaGFuZ2VkIHRvIHVzZSBDb3JlVGV4dCB0byBleHRyYWN0IGdseXBo
cyB3aGVuIHRoZSBjdXJyZW50IGZvbnQgaXMgdmVydGljYWwgb3JpZW50YXRpb24uCisgICAgICAg
IENvcmVUZXh0IGF1dG9tYXRpY2FsbHkgc3dhcHMgZ2x5cGhzIHdpdGggdmVydGljYWwgdmFyaWFu
dHMgd2hlbiB0aGUgZm9udCBvcmllbnRhdGlvbiBpcyB2ZXJ0aWNhbC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHA6IEFkZGVkIHZlcnRp
Y2FsIGZvcm0gYXR0cmlidXRlIHRvIHRoZSBhdHRyaWJ1dGUgZGljdGlvbmFyeSBmb3IgYSBDVExp
bmUuCisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6Z2V0Q0ZTdHJpbmdBdHRyaWJ1
dGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Cb3VuZHNGb3JH
bHlwaCk6IENoYW5nZWQgdG8gdXNlIENvcmVUZXh0IChmcm9tIENHKSB0byBzdXBwb3J0IHZlcnRp
Y2FsIG1ldHJpY3MuCisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1X
aWR0aEZvckdseXBoKTogTWFkZSB0byB1c2UgQ29yZVRleHQsIGluc3RlYWQgb2Ygd2tHZXRHbHlw
aFRyYW5zZm9ybWVkQWR2YW5jZXMsCisgICAgICAgIHRvIGdldCB2ZXJ0aWNhbCBtZXRyaWNzIHdo
ZW4gdGhlIGZvbnQgb3JpZW50YXRpb24gaXMgdmVydGljYWwuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOiBDaGFuZ2VkIHRvIHBhc3MgZm9u
dCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9xdC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUXQuY3BwOiBDaGFuZ2VkIHRvIHBhc3Mg
Zm9udCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6IENoYW5nZWQg
dG8gcGFzcyBmb250IG9yaWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAo
V2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6IENo
YW5nZWQgdG8gcGFzcyBmb250IG9yaWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDog
Q2hhbmdlZCB0byBwYXNzIGZvbnQgb3JpZW50YXRpb24gdG8gZm9udFBsYXRmb3JtRGF0YSgpCisg
ICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRh
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0
YS5oOiBDaGFuZ2VkIHRvIHBhc3MgZm9udCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRh
KCkKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0
YUNhaXJvLmNwcDogQ2hhbmdlZCB0byBwYXNzIGZvbnQgb3JpZW50YXRpb24gdG8gZm9udFBsYXRm
b3JtRGF0YSgpCisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250
UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YUNhaXJvLmg6IENoYW5nZWQgdG8gcGFzcyBmb250IG9yaWVudGF0aW9uIHRv
IGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOiBDaGFuZ2VkIHRvIHBhc3MgZm9udCBvcmllbnRhdGlv
biB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0
Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3dpbmNlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDogQ2hhbmdlZCB0byBwYXNzIGZvbnQgb3Jp
ZW50YXRpb24gdG8gZm9udFBsYXRmb3JtRGF0YSgpCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd3gvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6IENoYW5nZWQgdG8gcGFzcyBmb250IG9y
aWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvd3gvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOiBDaGFuZ2VkIHRvIHBhc3MgZm9u
dCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKwogMjAxMC0xMC0yMCAgRGlyayBT
Y2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMg
S2xpbmcuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMzgzLDcgKzM4Myw3IEBAIF9fWk43V2ViQ29yZTE2RGV2
aWNlTW90aW9uRGF0YTEyQWNjZWxlcmEKIF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTEy
Um90YXRpb25SYXRlNmNyZWF0ZUViZGJkYmQKIF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0
YTZjcmVhdGVFTjNXVEYxMFBhc3NSZWZQdHJJTlMwXzEyQWNjZWxlcmF0aW9uRUVFUzRfTlMyX0lO
UzBfMTJSb3RhdGlvblJhdGVFRUViZAogX19aTjdXZWJDb3JlMTZGb250RmFsbGJhY2tMaXN0MTVy
ZWxlYXNlRm9udERhdGFFdgotX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhQzFFUDZOU0Zv
bnRiYgorX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhQzFFUDZOU0ZvbnRiYk5TXzE1Rm9u
dE9yaWVudGF0aW9uRQogX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhRDFFdgogX19aTjdX
ZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MTNzZXRBdXRvZmlsbGVkRWIKIF9fWk43V2ViQ29yZTE2
TGVnYWN5V2ViQXJjaGl2ZTE5Y3JlYXRlRnJvbVNlbGVjdGlvbkVQTlNfNUZyYW1lRQpJbmRleDog
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDcwMTQy
KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTU1MTUsNiArNTUxNSw3IEBACiAJCUY1QzA0MUU3MEZGQ0E5NkQwMDgzOUQ0QSAv
KiBKU0hUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1QzA0MUUyMEZGQ0E5NkQwMDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlz
dEVsZW1lbnQuaCAqLzsgfTsKIAkJRjVEM0E1N0MxMDZCODNCMzAwNTQ1Mjk3IC8qIERhdGVDb21w
b25lbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1RDNBNTdBMTA2QjgzQjMwMDU0NTI5NyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgKi87IH07CiAJ
CUY1RDNBNTdEMTA2QjgzQjMwMDU0NTI5NyAvKiBEYXRlQ29tcG9uZW50cy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVEM0E1N0IxMDZCODNCMzAwNTQ1
Mjk3IC8qIERhdGVDb21wb25lbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJRjdBMDM0QzQxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjdB
MDM0QzMxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRhdGlvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY5MTZDNDhEMERCNTEwRjgwMDc2
Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOTE2QzQ4QjBEQjUxMEY4MDA3NkNEODMg
LyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwICovOyB9OwogCQlGOTE2QzQ4RTBE
QjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5MTZDNDhDMERCNTEwRjgw
MDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oICovOyB9OwogCQlGOThG
RkY0NDExQTI2NzYyMDBGNTQ4RTggLyogQ1NTT01VdGlscy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOThGRkY0MjExQTI2NzYyMDBGNTQ4RTggLyog
Q1NTT01VdGlscy5jcHAgKi87IH07CkBAIC0xMTU1NSw2ICsxMTU1Niw3IEBACiAJCUY1QzI4Njk1
MDI4NDZEQ0QwMTg2MzVDQSAvKiBDb2NvYS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENv
Y29hLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvY29hLmZy
YW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJRjVEM0E1N0ExMDZCODNC
MzAwNTQ1Mjk3IC8qIERhdGVDb21wb25lbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERhdGVDb21wb25lbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjVEM0E1N0IxMDZCODNCMzAwNTQ1Mjk3IC8qIERhdGVDb21wb25lbnRzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVDb21wb25lbnRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY3QTAzNEMzMTI2QkY2QkUwMDdEQzE5RSAvKiBGb250T3JpZW50
YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udE9yaWVudGF0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY4MjE2Mjk5MDI5RjRGQjUwMTAwMDEz
MSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgcGF0aCA9IEphdmFTY3Jp
cHRDb3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJ
RjkxNkM0OEIwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY5MTZD
NDhDMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NDc4LDYgKzE2NDgwLDcg
QEAKIAkJCQlCMkMzREE1ODBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udEZhbWlseS5jcHAgKi8sCiAJ
CQkJQjJDM0RBNTkwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRGYW1pbHkuaCAqLywKIAkJCQk3MjYy
NkUwMTBFRjAyMkZFMDBBMDdFMjAgLyogRm9udEZhc3RQYXRoLmNwcCAqLywKKwkJCQlGN0EwMzRD
MzEyNkJGNkJFMDA3REMxOUUgLyogRm9udE9yaWVudGF0aW9uLmggKi8sCiAJCQkJMzdBQ0NFNDEw
REEyOTgwRjAwODlFNjAyIC8qIEZvbnRSZW5kZXJpbmdNb2RlLmggKi8sCiAJCQkJQjJDM0RBNUEw
RDAwNkNENjAwRUY2RjI2IC8qIEZvbnRTZWxlY3Rvci5oICovLAogCQkJCTM3MjAyMTk4MTA2MjEz
QzYwMEYyNUM0QiAvKiBGb250U21vb3RoaW5nTW9kZS5oICovLApAQCAtMjEwODksNiArMjEwOTIs
NyBAQAogCQkJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0RkEzQjkwQjEyNUNEMTIyMDAzMDBCQUQgLyogSW5zcGVjdG9yU3RhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3MjhDMzE0MTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBB
Y2N1bXVsYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjdBMDM0QzQxMjZCRjZCRTAwN0RDMTlF
IC8qIEZvbnRPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgxQ0RGQjgxMjZFQ0ZE
QjAwRDIxNUNBIC8qIERlcHJlY2F0ZWRTVkdBbmltYXRlZFByb3BlcnR5LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwODFDREZCOTEyNkVDRkRCMDBEMjE1Q0EgLyogRGVwcmVjYXRlZFNWR0FuaW1hdGVk
UHJvcGVydHlUcmFpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MUNERkJBMTI2RUNGREIwMEQy
MTVDQSAvKiBEZXByZWNhdGVkU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oIGluIEhlYWRlcnMgKi8sCklu
ZGV4OiBXZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYyLDcgKzE2
Miw3IEBAIFNpbXBsZUZvbnREYXRhKiBDU1NGb250RmFjZVNvdXJjZTo6Z2V0Rm8KICAgICAgICAg
ICAgICAgICBpZiAoIW1fZm9udC0+ZW5zdXJlQ3VzdG9tRm9udERhdGEoKSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgICAgICAgICBmb250RGF0YS5zZXQobmV3IFNp
bXBsZUZvbnREYXRhKG1fZm9udC0+cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoZm9udERlc2Ny
aXB0aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCksIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxp
YywgZm9udERlc2NyaXB0aW9uLnJlbmRlcmluZ01vZGUoKSksIHRydWUsIGZhbHNlKSk7CisgICAg
ICAgICAgICAgICAgZm9udERhdGEuc2V0KG5ldyBTaW1wbGVGb250RGF0YShtX2ZvbnQtPnBsYXRm
b3JtRGF0YUZyb21DdXN0b21EYXRhKGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgp
LCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZvbnREZXNjcmlwdGlvbi5vcmllbnRh
dGlvbigpLCBmb250RGVzY3JpcHRpb24ucmVuZGVyaW5nTW9kZSgpKSwgdHJ1ZSwgZmFsc2UpKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQpJ
bmRleDogV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2NzYsMTAgKzU2
NzYsMTQgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogI2VuZGlm
IAogCiAgICAgLy8gQ1NTIFRleHQgTGF5b3V0IE1vZHVsZSBMZXZlbCAzOiBWZXJ0aWNhbCB3cml0
aW5nIHN1cHBvcnQKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0V3JpdGluZ01vZGU6CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyaXRpbmdNb2RlOiB7CiAgICAgICAgIEhBTkRMRV9JTkhF
UklUX0FORF9JTklUSUFMX0FORF9QUklNSVRJVkUod3JpdGluZ01vZGUsIFdyaXRpbmdNb2RlKQor
ICAgICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uID0gbV9zdHlsZS0+Zm9udERl
c2NyaXB0aW9uKCk7CisgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRPcmllbnRhdGlvbihtX3N0
eWxlLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbCA6IFZlcnRpY2FsKTsK
KyAgICAgICAgaWYgKG1fc3R5bGUtPnNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24p
KQorICAgICAgICAgICAgbV9mb250RGlydHkgPSB0cnVlOwogICAgICAgICByZXR1cm47Ci0KKyAg
ICB9CiAjaWYgRU5BQkxFKFNWRykKICAgICBkZWZhdWx0OgogICAgICAgICAvLyBUcnkgdGhlIFNW
RyBwcm9wZXJ0aWVzCkluZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmNwcAkocmV2aXNpb24gNzAxNDIpCisr
KyBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDcg
KzExNyw3IEBAIGJvb2wgQ2FjaGVkRm9udDo6ZW5zdXJlQ3VzdG9tRm9udERhdGEoKQogICAgIHJl
dHVybiBtX2ZvbnREYXRhOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIENhY2hlZEZvbnQ6OnBsYXRm
b3JtRGF0YUZyb21DdXN0b21EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMs
IEZvbnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhIENhY2hl
ZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgRm9udFJlbmRlcmluZ01v
ZGUgcmVuZGVyaW5nTW9kZSkKIHsKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQogICAgIGlmIChtX2V4
dGVybmFsU1ZHRG9jdW1lbnQpCkBAIC0xMjUsNyArMTI1LDcgQEAgRm9udFBsYXRmb3JtRGF0YSBD
YWNoZWRGb250OjpwbGF0Zm9ybURhdAogI2VuZGlmCiAjaWZkZWYgU1RPUkVfRk9OVF9DVVNUT01f
UExBVEZPUk1fREFUQQogICAgIEFTU0VSVChtX2ZvbnREYXRhKTsKLSAgICByZXR1cm4gbV9mb250
RGF0YS0+Zm9udFBsYXRmb3JtRGF0YShzdGF0aWNfY2FzdDxpbnQ+KHNpemUpLCBib2xkLCBpdGFs
aWMsIHJlbmRlcmluZ01vZGUpOworICAgIHJldHVybiBtX2ZvbnREYXRhLT5mb250UGxhdGZvcm1E
YXRhKHN0YXRpY19jYXN0PGludD4oc2l6ZSksIGJvbGQsIGl0YWxpYywgb3JpZW50YXRpb24sIHJl
bmRlcmluZ01vZGUpOwogI2Vsc2UKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YSgpOwogI2Vu
ZGlmCkluZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9sb2FkZXIvQ2FjaGVkRm9udC5oCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvbG9h
ZGVyL0NhY2hlZEZvbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmlu
ZSBDYWNoZWRGb250X2gKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCisjaW5jbHVkZSAi
Rm9udE9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTYyLDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZvaWQg
YmVnaW5Mb2FkSWZOZWVkZWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGRsKTsKIAogICAgIGJvb2wg
ZW5zdXJlQ3VzdG9tRm9udERhdGEoKTsKLSAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0
YUZyb21DdXN0b21EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRS
ZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0
YSBwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wg
aXRhbGljLCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsLCBGb250UmVuZGVyaW5nTW9kZSA9
IE5vcm1hbFJlbmRlcmluZ01vZGUpOwogCiAjaWYgRU5BQkxFKFNWR19GT05UUykKICAgICBib29s
IGlzU1ZHRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTVkdGb250OyB9CkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUs
MTMgKzU1LDE0IEBAIEZvbnRDYWNoZTo6Rm9udENhY2hlKCkKIAogc3RydWN0IEZvbnRQbGF0Zm9y
bURhdGFDYWNoZUtleSA6IEZhc3RBbGxvY0Jhc2UgewogICAgIEZvbnRQbGF0Zm9ybURhdGFDYWNo
ZUtleShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSA9IEF0b21pY1N0cmluZygpLCB1bnNpZ25l
ZCBzaXplID0gMCwgdW5zaWduZWQgd2VpZ2h0ID0gMCwgYm9vbCBpdGFsaWMgPSBmYWxzZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1ByaW50ZXJGb250ID0gZmFsc2UsIEZv
bnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzUHJpbnRlckZvbnQgPSBmYWxzZSwgRm9u
dFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUsIEZvbnRP
cmllbnRhdGlvbiBvcmllbnRhdGlvbiA9IEhvcml6b250YWwpCiAgICAgICAgIDogbV9zaXplKHNp
emUpCiAgICAgICAgICwgbV93ZWlnaHQod2VpZ2h0KQogICAgICAgICAsIG1fZmFtaWx5KGZhbWls
eSkKICAgICAgICAgLCBtX2l0YWxpYyhpdGFsaWMpCiAgICAgICAgICwgbV9wcmludGVyRm9udChp
c1ByaW50ZXJGb250KQogICAgICAgICAsIG1fcmVuZGVyaW5nTW9kZShyZW5kZXJpbmdNb2RlKQor
ICAgICAgICAsIG1fb3JpZW50YXRpb24ob3JpZW50YXRpb24pCiAgICAgewogICAgIH0KIApAQCAt
NzIsNyArNzMsNyBAQCBzdHJ1Y3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5IDogRmFzdEFsCiAg
ICAgewogICAgICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UobV9mYW1pbHksIG90aGVyLm1f
ZmFtaWx5KSAmJiBtX3NpemUgPT0gb3RoZXIubV9zaXplICYmIAogICAgICAgICAgICAgICAgbV93
ZWlnaHQgPT0gb3RoZXIubV93ZWlnaHQgJiYgbV9pdGFsaWMgPT0gb3RoZXIubV9pdGFsaWMgJiYg
bV9wcmludGVyRm9udCA9PSBvdGhlci5tX3ByaW50ZXJGb250ICYmCi0gICAgICAgICAgICAgICBt
X3JlbmRlcmluZ01vZGUgPT0gb3RoZXIubV9yZW5kZXJpbmdNb2RlOworICAgICAgICAgICAgICAg
bV9yZW5kZXJpbmdNb2RlID09IG90aGVyLm1fcmVuZGVyaW5nTW9kZSAmJiBtX29yaWVudGF0aW9u
ID09IG90aGVyLm1fb3JpZW50YXRpb247CiAgICAgfQogCiAgICAgdW5zaWduZWQgbV9zaXplOwpA
QCAtODEsNiArODIsNyBAQCBzdHJ1Y3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5IDogRmFzdEFs
CiAgICAgYm9vbCBtX2l0YWxpYzsKICAgICBib29sIG1fcHJpbnRlckZvbnQ7CiAgICAgRm9udFJl
bmRlcmluZ01vZGUgbV9yZW5kZXJpbmdNb2RlOworICAgIEZvbnRPcmllbnRhdGlvbiBtX29yaWVu
dGF0aW9uOwogCiBwcml2YXRlOgogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoVGFibGVEZWxldGVk
U2l6ZSgpIHsgcmV0dXJuIDB4RkZGRkZGRkZVOyB9CkBAIC05Miw3ICs5NCw3IEBAIGlubGluZSB1
bnNpZ25lZCBjb21wdXRlSGFzaChjb25zdCBGb250UGwKICAgICAgICAgQ2FzZUZvbGRpbmdIYXNo
OjpoYXNoKGZvbnRLZXkubV9mYW1pbHkpLAogICAgICAgICBmb250S2V5Lm1fc2l6ZSwKICAgICAg
ICAgZm9udEtleS5tX3dlaWdodCwKLSAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRL
ZXkubV9pdGFsaWMpIDw8IDIgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5tX3ByaW50
ZXJGb250KSA8PCAxIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9yZW5kZXJpbmdN
b2RlKQorICAgICAgICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5tX29yaWVudGF0aW9u
KSA8PCAzIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9pdGFsaWMpIDw8IDIgfCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5tX3ByaW50ZXJGb250KSA8PCAxIHwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9yZW5kZXJpbmdNb2RlKQogICAgIH07CiAgICAgcmV0
dXJuIFN0cmluZ0ltcGw6OmNvbXB1dGVIYXNoKHJlaW50ZXJwcmV0X2Nhc3Q8VUNoYXIqPihoYXNo
Q29kZXMpLCBzaXplb2YoaGFzaENvZGVzKSAvIHNpemVvZihVQ2hhcikpOwogfQpAQCAtMTkxLDcg
KzE5Myw3IEBAIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm8KICAgICB9
CiAKICAgICBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkga2V5KGZhbWlseU5hbWUsIGZvbnREZXNj
cmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpLCBmb250RGVzY3JpcHRpb24ud2VpZ2h0KCksIGZv
bnREZXNjcmlwdGlvbi5pdGFsaWMoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZvbnREZXNjcmlwdGlvbi51c2VQcmludGVyRm9udCgpLCBmb250RGVzY3JpcHRpb24ucmVuZGVy
aW5nTW9kZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnREZXNjcmlw
dGlvbi51c2VQcmludGVyRm9udCgpLCBmb250RGVzY3JpcHRpb24ucmVuZGVyaW5nTW9kZSgpLCBm
b250RGVzY3JpcHRpb24ub3JpZW50YXRpb24oKSk7CiAgICAgRm9udFBsYXRmb3JtRGF0YSogcmVz
dWx0ID0gMDsKICAgICBib29sIGZvdW5kUmVzdWx0OwogICAgIEZvbnRQbGF0Zm9ybURhdGFDYWNo
ZTo6aXRlcmF0b3IgaXQgPSBnRm9udFBsYXRmb3JtRGF0YUNhY2hlLT5maW5kKGtleSk7CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgJKHJldmlzaW9u
IDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAko
d29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2RlZmluZSBGb250RGVzY3JpcHRpb25f
aAogCiAjaW5jbHVkZSAiRm9udEZhbWlseS5oIgorI2luY2x1ZGUgIkZvbnRPcmllbnRhdGlvbi5o
IgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSAiRm9udFNtb290aGlu
Z01vZGUuaCIKICNpbmNsdWRlICJGb250VHJhaXRzTWFzay5oIgpAQCAtNTUsNiArNTYsNyBAQCBw
dWJsaWM6CiAgICAgRm9udERlc2NyaXB0aW9uKCkKICAgICAgICAgOiBtX3NwZWNpZmllZFNpemUo
MCkKICAgICAgICAgLCBtX2NvbXB1dGVkU2l6ZSgwKQorICAgICAgICAsIG1fb3JpZW50YXRpb24o
SG9yaXpvbnRhbCkKICAgICAgICAgLCBtX2l0YWxpYyhmYWxzZSkKICAgICAgICAgLCBtX3NtYWxs
Q2FwcyhmYWxzZSkKICAgICAgICAgLCBtX2lzQWJzb2x1dGVTaXplKGZhbHNlKQpAQCAtOTQsNiAr
OTYsNyBAQCBwdWJsaWM6CiAKICAgICBGb250VHJhaXRzTWFzayB0cmFpdHNNYXNrKCkgY29uc3Q7
CiAgICAgYm9vbCBpc1NwZWNpZmllZEZvbnQoKSBjb25zdCB7IHJldHVybiBtX2lzU3BlY2lmaWVk
Rm9udDsgfQorICAgIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fb3JpZW50YXRpb247IH0KIAogICAgIHZvaWQgc2V0RmFtaWx5KGNvbnN0IEZvbnRGYW1pbHkm
IGZhbWlseSkgeyBtX2ZhbWlseUxpc3QgPSBmYW1pbHk7IH0KICAgICB2b2lkIHNldENvbXB1dGVk
U2l6ZShmbG9hdCBzKSB7IG1fY29tcHV0ZWRTaXplID0gczsgfQpAQCAtMTEzLDYgKzExNiw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldEZvbnRTbW9vdGhpbmcoRm9udFNtb290aGluZ01vZGUgc21v
b3RoaW5nKSB7IG1fZm9udFNtb290aGluZyA9IHNtb290aGluZzsgfQogICAgIHZvaWQgc2V0VGV4
dFJlbmRlcmluZ01vZGUoVGV4dFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nKSB7IG1fdGV4dFJlbmRl
cmluZyA9IHJlbmRlcmluZzsgfQogICAgIHZvaWQgc2V0SXNTcGVjaWZpZWRGb250KGJvb2wgaXNT
cGVjaWZpZWRGb250KSB7IG1faXNTcGVjaWZpZWRGb250ID0gaXNTcGVjaWZpZWRGb250OyB9Cisg
ICAgdm9pZCBzZXRPcmllbnRhdGlvbihGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24pIHsgbV9v
cmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9CiAKIHByaXZhdGU6CiAgICAgRm9udEZhbWlseSBt
X2ZhbWlseUxpc3Q7IC8vIFRoZSBsaXN0IG9mIGZvbnQgZmFtaWxpZXMgdG8gYmUgdXNlZC4KQEAg
LTEyMSw2ICsxMjUsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyByb3VuZGluZywgbWluaW11bSBmb250IHNpemVzLCBhbmQgem9vbWluZy4KICAgICBmbG9hdCBt
X2NvbXB1dGVkU2l6ZTsgICAgLy8gQ29tcHV0ZWQgc2l6ZSBhZGp1c3RlZCBmb3IgdGhlIG1pbmlt
dW0gZm9udCBzaXplIGFuZCB0aGUgem9vbSBmYWN0b3IuICAKIAorICAgIEZvbnRPcmllbnRhdGlv
biBtX29yaWVudGF0aW9uOworCiAgICAgYm9vbCBtX2l0YWxpYyA6IDE7CiAgICAgYm9vbCBtX3Nt
YWxsQ2FwcyA6IDE7CiAgICAgYm9vbCBtX2lzQWJzb2x1dGVTaXplIDogMTsgICAvLyBXaGV0aGVy
IG9yIG5vdCBDU1Mgc3BlY2lmaWVkIGFuIGV4cGxpY2l0IHNpemUKQEAgLTE1NSw3ICsxNjEsOCBA
QCBpbmxpbmUgYm9vbCBGb250RGVzY3JpcHRpb246Om9wZXJhdG9yPT0oCiAgICAgICAgICYmIG1f
a2V5d29yZFNpemUgPT0gb3RoZXIubV9rZXl3b3JkU2l6ZQogICAgICAgICAmJiBtX2ZvbnRTbW9v
dGhpbmcgPT0gb3RoZXIubV9mb250U21vb3RoaW5nCiAgICAgICAgICYmIG1fdGV4dFJlbmRlcmlu
ZyA9PSBvdGhlci5tX3RleHRSZW5kZXJpbmcKLSAgICAgICAgJiYgbV9pc1NwZWNpZmllZEZvbnQg
PT0gb3RoZXIubV9pc1NwZWNpZmllZEZvbnQ7CisgICAgICAgICYmIG1faXNTcGVjaWZpZWRGb250
ID09IG90aGVyLm1faXNTcGVjaWZpZWRGb250CisgICAgICAgICYmIG1fb3JpZW50YXRpb24gPT0g
b3RoZXIubV9vcmllbnRhdGlvbjsKIH0KIAogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250T3JpZW50YXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRPcmllbnRhdGlvbi5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250T3JpZW50YXRpb24uaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgRm9udE9yaWVudGF0aW9uX2gKKyNkZWZpbmUgRm9udE9yaWVu
dGF0aW9uX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIEZvbnRPcmllbnRhdGlvbiB7
IEhvcml6b250YWwsIFZlcnRpY2FsIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEZvbnRPcmllbnRhdGlvbl9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1NpbXBsZUZvbnREYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9TaW1wbGVGb250RGF0YS5oCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBA
QAogdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQVRTVVN0eWxlKiBBVFNVU3R5bGU7CiAjZW5kaWYKIAot
I2lmIFVTRShDT1JFX1RFWFQpCisjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KICNlbmRpZgogCkBAIC0xMzAsNyArMTMwLDcgQEAgcHVibGljOgogICAgIE5TRm9u
dCogZ2V0TlNGb250KCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybURhdGEubnNGb250KCk7IH0K
ICNlbmRpZgogCi0jaWYgVVNFKENPUkVfVEVYVCkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgQ0ZE
aWN0aW9uYXJ5UmVmIGdldENGU3RyaW5nQXR0cmlidXRlcyhUeXBlc2V0dGluZ0ZlYXR1cmVzKSBj
b25zdDsKICNlbmRpZgogCkBAIC0yMzQsNyArMjM0LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICNl
bmRpZgogCi0jaWYgVVNFKENPUkVfVEVYVCkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgbXV0YWJs
ZSBIYXNoTWFwPHVuc2lnbmVkLCBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiA+IG1fQ0ZTdHJp
bmdBdHRyaWJ1dGVzOwogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNp
b24gNzAxNDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIEZvbnRDdXN0
b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGYKICAgICBjYWlyb19mb250X2ZhY2VfZGVz
dHJveShtX2ZvbnRGYWNlKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBGb250UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywg
Rm9udE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICByZXR1cm4gRm9udFBs
YXRmb3JtRGF0YShtX2ZvbnRGYWNlLCBzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmgJKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYg
KzIyLDcgQEAKICNpZm5kZWYgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRD
dXN0b21QbGF0Zm9ybURhdGFfaAogCisjaW5jbHVkZSAiRm9udE9yaWVudGF0aW9uLmgiCiAjaW5j
bHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtMzgsNyArMzksNyBAQCBzdHJ1Y3QgRm9udEN1
c3RvbVBsYXRmb3JtRGF0YSA6IE5vbmNvcHlhCiBwdWJsaWM6CiAgICAgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YShGVF9GYWNlLCBTaGFyZWRCdWZmZXIqKTsKICAgICB+Rm9udEN1c3RvbVBsYXRmb3Jt
RGF0YSgpOwotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwg
Ym9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJp
bmdNb2RlKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUs
IGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZv
bnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAgICAgc3RhdGljIGJvb2wg
c3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAKIHByaXZhdGU6CkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGEuaAkocmV2
aXNpb24gNzAxNDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0
Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2lmbmRlZiBGb250
UGxhdGZvcm1EYXRhX2gKICNkZWZpbmUgRm9udFBsYXRmb3JtRGF0YV9oCiAKKyNpbmNsdWRlICJG
b250T3JpZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKICNp
ZmRlZiBfX09CSkNfXwpAQCAtNTgsOSArNTksMTAgQEAgaW5saW5lIENURm9udFJlZiB0b0NURm9u
dFJlZihOU0ZvbnQgKm5zRgogCiBjbGFzcyBGb250UGxhdGZvcm1EYXRhIHsKICAgcHVibGljOgot
ICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29s
IHN5bnRoZXRpY09ibGlxdWUpCisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29s
IHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9y
aWVudGF0aW9uID0gSG9yaXpvbnRhbCkKICAgICAgICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhl
dGljQm9sZCkKICAgICAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGljT2JsaXF1ZSkK
KyAgICAgICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQogICAgICAgICAsIG1fYXRzdUZv
bnRJRCgwKQogICAgICAgICAsIG1fc2l6ZShzaXplKQogICAgICAgICAsIG1fZm9udCgwKQpAQCAt
NzEsMTEgKzczLDEyIEBAIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICAgIHsKICAgICB9CiAK
LSAgICBGb250UGxhdGZvcm1EYXRhKE5TRm9udCAqbnNGb250LCBib29sIHN5bnRoZXRpY0JvbGQg
PSBmYWxzZSwgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0gZmFsc2UpOworICAgIEZvbnRQbGF0Zm9y
bURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3ludGhldGljQm9sZCA9IGZhbHNlLCBib29sIHN5
bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCk7CiAg
ICAgCi0gICAgRm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dGb250LCBBVFNVRm9udElEIGZv
bnRJRCwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlx
dWUpCisgICAgRm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dGb250LCBBVFNVRm9udElEIGZv
bnRJRCwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlx
dWUsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKICAgICAgICAgOiBtX3N5bnRoZXRpY0Jv
bGQoc3ludGhldGljQm9sZCkKICAgICAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGlj
T2JsaXF1ZSkKKyAgICAgICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQogICAgICAgICAs
IG1fYXRzdUZvbnRJRChmb250SUQpCiAgICAgICAgICwgbV9zaXplKHNpemUpCiAgICAgICAgICwg
bV9mb250KDApCkBAIC05NCw5ICs5NywxMSBAQCBjbGFzcyBGb250UGxhdGZvcm1EYXRhIHsKICAg
ICBmbG9hdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgYm9vbCBzeW50aGV0
aWNCb2xkKCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNCb2xkOyB9CiAgICAgYm9vbCBzeW50
aGV0aWNPYmxpcXVlKCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNPYmxpcXVlOyB9CisgICAg
Rm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRhdGlv
bjsgfQogCiAgICAgYm9vbCBtX3N5bnRoZXRpY0JvbGQ7CiAgICAgYm9vbCBtX3N5bnRoZXRpY09i
bGlxdWU7CisgICAgRm9udE9yaWVudGF0aW9uIG1fb3JpZW50YXRpb247CiAKICAgICBBVFNVRm9u
dElEIG1fYXRzdUZvbnRJRDsKICAgICBmbG9hdCBtX3NpemU7CkBAIC0xMDQsNyArMTA5LDcgQEAg
Y2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0CiAgICAg
ewogICAgICAgICBBU1NFUlQobV9mb250ICE9IDAgfHwgbV9jZ0ZvbnQgPT0gMCk7Ci0gICAgICAg
IHVpbnRwdHJfdCBoYXNoQ29kZXNbMl0gPSB7ICh1aW50cHRyX3QpbV9mb250LCBtX3N5bnRoZXRp
Y0JvbGQgPDwgMSB8IG1fc3ludGhldGljT2JsaXF1ZSB9OworICAgICAgICB1aW50cHRyX3QgaGFz
aENvZGVzWzJdID0geyAodWludHB0cl90KW1fZm9udCwgbV9vcmllbnRhdGlvbiA8PCAyIHwgbV9z
eW50aGV0aWNCb2xkIDw8IDEgfCBtX3N5bnRoZXRpY09ibGlxdWUgfTsKICAgICAgICAgcmV0dXJu
IFN0cmluZ0ltcGw6OmNvbXB1dGVIYXNoKHJlaW50ZXJwcmV0X2Nhc3Q8VUNoYXIqPihoYXNoQ29k
ZXMpLCBzaXplb2YoaGFzaENvZGVzKSAvIHNpemVvZihVQ2hhcikpOwogICAgIH0KIApAQCAtMTEz
LDcgKzExOCw3IEBAIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICAgIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBvdGhlcikgY29uc3QKICAgICB7IAogICAgICAgICBy
ZXR1cm4gbV9mb250ID09IG90aGVyLm1fZm9udCAmJiBtX3N5bnRoZXRpY0JvbGQgPT0gb3RoZXIu
bV9zeW50aGV0aWNCb2xkICYmIG1fc3ludGhldGljT2JsaXF1ZSA9PSBvdGhlci5tX3N5bnRoZXRp
Y09ibGlxdWUgJiYgCi0gICAgICAgICAgICAgICBtX2NnRm9udCA9PSBvdGhlci5tX2NnRm9udCAm
JiBtX3NpemUgPT0gb3RoZXIubV9zaXplICYmIG1fYXRzdUZvbnRJRCA9PSBvdGhlci5tX2F0c3VG
b250SUQ7CisgICAgICAgICAgICAgICBtX2NnRm9udCA9PSBvdGhlci5tX2NnRm9udCAmJiBtX3Np
emUgPT0gb3RoZXIubV9zaXplICYmIG1fYXRzdUZvbnRJRCA9PSBvdGhlci5tX2F0c3VGb250SUQg
JiYgbV9vcmllbnRhdGlvbiA9PSBvdGhlci5tX29yaWVudGF0aW9uOwogICAgIH0KIAogICAgIE5T
Rm9udCAqZm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udDsgfQpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2Eu
bW0JKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9G
b250UGxhdGZvcm1EYXRhQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ0LDkgKzQ0LDEwIEBA
IHZvaWQgRm9udFBsYXRmb3JtRGF0YTo6bG9hZEZvbnQoTlNGb250KiAKIH0KICNlbmRpZiAgLy8g
UExBVEZPUk0oTUFDKQogCi1Gb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKE5TRm9u
dCAqbnNGb250LCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSkKK0Zv
bnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3lu
dGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3JpZW50
YXRpb24pCiAgICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkKICAgICAsIG1fc3lu
dGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQorICAgICwgbV9vcmllbnRhdGlvbihvcmll
bnRhdGlvbikKICAgICAsIG1fZm9udChuc0ZvbnQpCiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
VElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICAvLyBGSVhNRTogQ2hyb21pdW06IFRoZSBmb2xsb3dp
bmcgY29kZSBpc24ndCBjb3JyZWN0IGZvciB0aGUgQ2hyb21pdW0gcG9ydCBzaW5jZSB0aGUgc2Fu
ZGJveCBtaWdodApAQCAtODMsNiArODQsNyBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZv
cm1EYXRhKGNvbnN0CiAgICAgbV9jZ0ZvbnQgPSBmLm1fY2dGb250OwogICAgIG1fYXRzdUZvbnRJ
RCA9IGYubV9hdHN1Rm9udElEOwogICAgIG1faXNDb2xvckJpdG1hcEZvbnQgPSBmLm1faXNDb2xv
ckJpdG1hcEZvbnQ7CisgICAgbV9vcmllbnRhdGlvbiA9IGYubV9vcmllbnRhdGlvbjsKICNpZiBV
U0UoQ09SRV9URVhUKQogICAgIG1fQ1RGb250ID0gZi5tX0NURm9udDsKICNlbmRpZgpAQCAtMTEy
LDYgKzExNCw3IEBAIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIEZvbnRQbGF0Zm9ybURhdGEKICAg
ICAgICAgQ0ZSZWxlYXNlKG1fZm9udCk7CiAgICAgbV9mb250ID0gZi5tX2ZvbnQ7CiAgICAgbV9p
c0NvbG9yQml0bWFwRm9udCA9IGYubV9pc0NvbG9yQml0bWFwRm9udDsKKyAgICBtX29yaWVudGF0
aW9uID0gZi5tX29yaWVudGF0aW9uOwogI2lmIFVTRShDT1JFX1RFWFQpCiAgICAgbV9DVEZvbnQg
PSBmLm1fQ1RGb250OwogI2VuZGlmCkBAIC0xNjksNyArMTcyLDcgQEAgYm9vbCBGb250UGxhdGZv
cm1EYXRhOjpyb3VuZHNHbHlwaEFkdmFuYwogCiBib29sIEZvbnRQbGF0Zm9ybURhdGE6OmFsbG93
c0xpZ2F0dXJlcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFbW21fZm9udCBjb3ZlcmVkQ2hhcmFj
dGVyU2V0XSBjaGFyYWN0ZXJJc01lbWJlcjonYSddOworICAgIHJldHVybiBtX29yaWVudGF0aW9u
ID09IEhvcml6b250YWwgJiYgIVtbbV9mb250IGNvdmVyZWRDaGFyYWN0ZXJTZXRdIGNoYXJhY3Rl
cklzTWVtYmVyOidhJ107CiB9CiAKICNpZiBVU0UoQ09SRV9URVhUKQpAQCAtMTg3LDcgKzE5MCw4
IEBAIENURm9udFJlZiBGb250UGxhdGZvcm1EYXRhOjpjdEZvbnQoKSBjb24KIFN0cmluZyBGb250
UGxhdGZvcm1EYXRhOjpkZXNjcmlwdGlvbigpIGNvbnN0CiB7CiAgICAgUmV0YWluUHRyPENGU3Ry
aW5nUmVmPiBjZ0ZvbnREZXNjcmlwdGlvbihBZG9wdENGLCBDRkNvcHlEZXNjcmlwdGlvbihjZ0Zv
bnQoKSkpOwotICAgIHJldHVybiBTdHJpbmcoY2dGb250RGVzY3JpcHRpb24uZ2V0KCkpICsgIiAi
ICsgU3RyaW5nOjpudW1iZXIobV9zaXplKSArIChtX3N5bnRoZXRpY0JvbGQgPyAiIHN5bnRoZXRp
YyBib2xkIiA6ICIiKSArIChtX3N5bnRoZXRpY09ibGlxdWUgPyAiIHN5bnRoZXRpYyBvYmxpcXVl
IiA6ICIiKTsKKyAgICByZXR1cm4gU3RyaW5nKGNnRm9udERlc2NyaXB0aW9uLmdldCgpKSArICIg
IiArIFN0cmluZzo6bnVtYmVyKG1fc2l6ZSkKKyAgICAgICAgICAgICsgKG1fc3ludGhldGljQm9s
ZCA/ICIgc3ludGhldGljIGJvbGQiIDogIiIpICsgKG1fc3ludGhldGljT2JsaXF1ZSA/ICIgc3lu
dGhldGljIG9ibGlxdWUiIDogIiIpICsgKG1fb3JpZW50YXRpb24gPyAiIHZlcnRpY2FsIG9yaWVu
dGF0aW9uIiA6ICIiKTsKIH0KICNlbmRpZgogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2d0ay9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUGFuZ28uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFQYW5nby5j
cHAJKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YVBhbmdvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAs
NyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiB7CiB9CiAKLUZv
bnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShp
bnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUpCitGb250
UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50
IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiwgRm9udFJlbmRl
cmluZ01vZGUpCiB7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9mb250RmFjZSwgc2l6
ZSwgYm9sZCwgaXRhbGljKTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFp
a3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24g
NzAxNDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGYKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJv
bGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xk
LCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAg
ICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIx
LDYgKzIxLDcgQEAKICNpZm5kZWYgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZv
bnRDdXN0b21QbGF0Zm9ybURhdGFfaAogCisjaW5jbHVkZSAiRm9udE9yaWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtMzcsNyArMzgsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3Ry
aW5nJik7CiAKLSAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBz
aXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJl
bmRlcmluZ01vZGUpOworICAgICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEo
aW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6
b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAgICAgfTsK
IAogICAgIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEqIGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURh
dGEoU2hhcmVkQnVmZmVyKik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q2FjaGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvRm9udENhY2hlTWFjLm1tCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQyLDcgKzE0
Miw4IEBAIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBGb250Q2FjaGU6OmdldEZvbnQKIAogICAgIEZv
bnRQbGF0Zm9ybURhdGEgYWx0ZXJuYXRlRm9udChzdWJzdGl0dXRlRm9udCwgCiAgICAgICAgICFm
b250LmlzUGxhdGZvcm1Gb250KCkgJiYgaXNBcHBLaXRGb250V2VpZ2h0Qm9sZCh3ZWlnaHQpICYm
ICFpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKHN1YnN0aXR1dGVGb250V2VpZ2h0KSwKLSAgICAgICAg
IWZvbnQuaXNQbGF0Zm9ybUZvbnQoKSAmJiAodHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQpICYm
ICEoc3Vic3RpdHV0ZUZvbnRUcmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkpOworICAgICAgICAh
Zm9udC5pc1BsYXRmb3JtRm9udCgpICYmICh0cmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkgJiYg
IShzdWJzdGl0dXRlRm9udFRyYWl0cyAmIE5TRm9udEl0YWxpY1RyYWl0KSwKKyAgICAgICAgcGxh
dGZvcm1EYXRhLm1fb3JpZW50YXRpb24pOwogICAgIHJldHVybiBnZXRDYWNoZWRGb250RGF0YSgm
YWx0ZXJuYXRlRm9udCk7CiB9CiAKQEAgLTIxMCw3ICsyMTEsNyBAQCBGb250UGxhdGZvcm1EYXRh
KiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQCiAgICAgYm9vbCBzeW50aGV0aWNCb2xkID0gaXNBcHBL
aXRGb250V2VpZ2h0Qm9sZCh3ZWlnaHQpICYmICFpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKGFjdHVh
bFdlaWdodCk7CiAgICAgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0gKHRyYWl0cyAmIE5TRm9udEl0
YWxpY1RyYWl0KSAmJiAhKGFjdHVhbFRyYWl0cyAmIE5TRm9udEl0YWxpY1RyYWl0KTsKIAotICAg
IHJldHVybiBuZXcgRm9udFBsYXRmb3JtRGF0YShwbGF0Zm9ybUZvbnQsIHN5bnRoZXRpY0JvbGQs
IHN5bnRoZXRpY09ibGlxdWUpOworICAgIHJldHVybiBuZXcgRm9udFBsYXRmb3JtRGF0YShwbGF0
Zm9ybUZvbnQsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIGZvbnREZXNjcmlwdGlv
bi5vcmllbnRhdGlvbigpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5jcHAJKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDkg
KzM4LDkgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogICAgIENH
Rm9udFJlbGVhc2UobV9jZ0ZvbnQpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBp
dGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxh
dGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlKQogewot
ICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKG1fY2dGb250LCAoQVRTVUZvbnRJRCltX2F0c0Zv
bnQsIHNpemUsIGJvbGQsIGl0YWxpYyk7CisgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9j
Z0ZvbnQsIChBVFNVRm9udElEKW1fYXRzRm9udCwgc2l6ZSwgYm9sZCwgaXRhbGljLCBvcmllbnRh
dGlvbik7CiB9CiAKIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEqIGNyZWF0ZUZvbnRDdXN0b21QbGF0
Zm9ybURhdGEoU2hhcmVkQnVmZmVyKiBidWZmZXIpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCShyZXZpc2lv
biA3MDE0MikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2lmbmRlZiBGb250
Q3VzdG9tUGxhdGZvcm1EYXRhX2gKICNkZWZpbmUgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAK
KyNpbmNsdWRlICJGb250T3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9k
ZS5oIgogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NGQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CkBAIC00MSw3ICs0Miw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
IDogTm9uY29weWEKICAgICB7fQogICAgIH5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCk7CiAKLSAg
ICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7Cisg
ICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQs
IGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsLCBGb250UmVuZGVyaW5n
TW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOwogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNG
b3JtYXQoY29uc3QgU3RyaW5nJik7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0dseXBoUGFnZVRyZWVOb2RlTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9HbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHAJKHJldmlzaW9uIDcwMTQy
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR2x5cGhQYWdlVHJlZU5vZGVNYWMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxNSArNDAsNzAgQEAgYm9vbCBHbHlwaFBhZ2U6OmZp
bGwodW5zaWduZWQgb2Zmc2V0LCB1bgogICAgIGJvb2wgaGF2ZUdseXBocyA9IGZhbHNlOwogCiAj
aWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCi0gICAgVmVjdG9yPENHR2x5cGgsIDUxMj4gZ2x5cGhz
KGJ1ZmZlckxlbmd0aCk7Ci0gICAgd2tHZXRHbHlwaHNGb3JDaGFyYWN0ZXJzKGZvbnREYXRhLT5w
bGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgYnVmZmVyLCBnbHlwaHMuZGF0YSgpLCBidWZmZXJMZW5n
dGgpOwotCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAg
ICAgIGlmICghZ2x5cGhzW2ldKQotICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zm
c2V0ICsgaSwgMCwgMCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgc2V0R2x5cGhEYXRh
Rm9ySW5kZXgob2Zmc2V0ICsgaSwgZ2x5cGhzW2ldLCBmb250RGF0YSk7Ci0gICAgICAgICAgICBo
YXZlR2x5cGhzID0gdHJ1ZTsKKyAgICBpZiAoZm9udERhdGEtPnBsYXRmb3JtRGF0YSgpLm9yaWVu
dGF0aW9uKCkgPT0gSG9yaXpvbnRhbCkgeworICAgICAgICBWZWN0b3I8Q0dHbHlwaCwgNTEyPiBn
bHlwaHMoYnVmZmVyTGVuZ3RoKTsKKyAgICAgICAgd2tHZXRHbHlwaHNGb3JDaGFyYWN0ZXJzKGZv
bnREYXRhLT5wbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgYnVmZmVyLCBnbHlwaHMuZGF0YSgpLCBi
dWZmZXJMZW5ndGgpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyAr
K2kpIHsKKyAgICAgICAgICAgIGlmICghZ2x5cGhzW2ldKQorICAgICAgICAgICAgICAgIHNldEds
eXBoRGF0YUZvckluZGV4KG9mZnNldCArIGksIDAsIDApOworICAgICAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaSwgZ2x5cGhzW2ld
LCBmb250RGF0YSk7CisgICAgICAgICAgICAgICAgaGF2ZUdseXBocyA9IHRydWU7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICAvLyBXZSBhc2sgQ29yZVRl
eHQgZm9yIHBvc3NpYmxlIHZlcnRpY2FsIHZhcmlhbnQgZ2x5cGhzCisgICAgICAgIFJldGFpblB0
cjxDRlN0cmluZ1JlZj4gc3RyaW5nKEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3Rl
cnNOb0NvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVyLCBidWZmZXJMZW5ndGgsIGtDRkFs
bG9jYXRvck51bGwpKTsKKyAgICAgICAgUmV0YWluUHRyPENGQXR0cmlidXRlZFN0cmluZ1JlZj4g
YXR0cmlidXRlZFN0cmluZyhBZG9wdENGLCBDRkF0dHJpYnV0ZWRTdHJpbmdDcmVhdGUoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgc3RyaW5nLmdldCgpLCBmb250RGF0YS0+Z2V0Q0ZTdHJpbmdBdHRyaWJ1
dGVzKDApKSk7CisgICAgICAgIFJldGFpblB0cjxDVExpbmVSZWY+IGxpbmUoQWRvcHRDRiwgQ1RM
aW5lQ3JlYXRlV2l0aEF0dHJpYnV0ZWRTdHJpbmcoYXR0cmlidXRlZFN0cmluZy5nZXQoKSkpOwor
CisgICAgICAgIENGQXJyYXlSZWYgcnVuQXJyYXkgPSBDVExpbmVHZXRHbHlwaFJ1bnMobGluZS5n
ZXQoKSk7CisgICAgICAgIENGSW5kZXggcnVuQ291bnQgPSBDRkFycmF5R2V0Q291bnQocnVuQXJy
YXkpOworCisgICAgICAgIC8vIEluaXRpYWxpemUgZ2x5cGggZW50cmllcworICAgICAgICBmb3Ig
KHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7ICsraW5kZXgpCisgICAgICAgICAg
ICBzZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBpbmRleCwgMCwgMCk7CisKKyAgICAgICAg
VmVjdG9yPENHR2x5cGgsIDUxMj4gZ2x5cGhWZWN0b3I7CisgICAgICAgIFZlY3RvcjxDRkluZGV4
LCA1MTI+IGluZGV4VmVjdG9yOworICAgICAgICBib29sIGRvbmUgPSBmYWxzZTsKKyAgICAgICAg
Zm9yIChDRkluZGV4IHIgPSAwOyByIDwgcnVuQ291bnQgJiYgIWRvbmUgOyArK3IpIHsKKyAgICAg
ICAgICAgIC8vIENUTGluZSBjb3VsZCBtYXAgY2hhcmFjdGVycyBvdmVyIG11bHRpcGxlIGZvbnRz
IHVzaW5nIGl0cyBvd24gZm9udCBmYWxsYmFjayBsaXN0LgorICAgICAgICAgICAgLy8gV2UgbmVl
ZCB0byBwaWNrIHJ1bnMgdGhhdCB1c2UgdGhlIGV4YWN0IGZvbnQgd2UgbmVlZCwgaS5lLiwgZm9u
dERhdGEtPnBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLgorICAgICAgICAgICAgQ1RSdW5SZWYgY3RS
dW4gPSBzdGF0aWNfY2FzdDxDVFJ1blJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChydW5BcnJh
eSwgcikpOworICAgICAgICAgICAgQVNTRVJUKENGR2V0VHlwZUlEKGN0UnVuKSA9PSBDVFJ1bkdl
dFR5cGVJRCgpKTsKKworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMgPSBD
VFJ1bkdldEF0dHJpYnV0ZXMoY3RSdW4pOworICAgICAgICAgICAgQ1RGb250UmVmIHJ1bkZvbnQg
PSBzdGF0aWNfY2FzdDxDVEZvbnRSZWY+KENGRGljdGlvbmFyeUdldFZhbHVlKGF0dHJpYnV0ZXMs
IGtDVEZvbnRBdHRyaWJ1dGVOYW1lKSk7CisgICAgICAgICAgICBSZXRhaW5QdHI8Q0dGb250UmVm
PiBydW5DR0ZvbnQoQWRvcHRDRiwgQ1RGb250Q29weUdyYXBoaWNzRm9udChydW5Gb250LCAwKSk7
CisgICAgICAgICAgICAvLyBVc2UgQ0dGb250IGhlcmUgYXMgQ0ZFcXVhbCBmb3IgQ1RGb250IGNv
dW50cyBhbGwgYXR0cmlidXRlcyBmb3IgZm9udC4KKyAgICAgICAgICAgIGlmIChDRkVxdWFsKGZv
bnREYXRhLT5wbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgcnVuQ0dGb250LmdldCgpKSkgeworICAg
ICAgICAgICAgICAgIC8vIFRoaXMgcnVuIHVzZXMgdGhlIGZvbnQgd2Ugd2FudC4gRXh0cmFjdCBn
bHlwaHMuCisgICAgICAgICAgICAgICAgQ0ZJbmRleCBnbHlwaENvdW50ID0gQ1RSdW5HZXRHbHlw
aENvdW50KGN0UnVuKTsKKyAgICAgICAgICAgICAgICBjb25zdCBDR0dseXBoKiBnbHlwaHMgPSBD
VFJ1bkdldEdseXBoc1B0cihjdFJ1bik7CisgICAgICAgICAgICAgICAgaWYgKCFnbHlwaHMpIHsK
KyAgICAgICAgICAgICAgICAgICAgZ2x5cGhWZWN0b3IucmVzaXplKGdseXBoQ291bnQpOworICAg
ICAgICAgICAgICAgICAgICBDVFJ1bkdldEdseXBocyhjdFJ1biwgQ0ZSYW5nZU1ha2UoMCwgMCks
IGdseXBoVmVjdG9yLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgIGdseXBocyA9IGdseXBo
VmVjdG9yLmRhdGEoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29uc3Qg
Q0ZJbmRleCogc3RyaW5nSW5kaWNlcyA9IENUUnVuR2V0U3RyaW5nSW5kaWNlc1B0cihjdFJ1bik7
CisgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmdJbmRpY2VzKSB7CisgICAgICAgICAgICAgICAg
ICAgIGluZGV4VmVjdG9yLnJlc2l6ZShnbHlwaENvdW50KTsKKyAgICAgICAgICAgICAgICAgICAg
Q1RSdW5HZXRTdHJpbmdJbmRpY2VzKGN0UnVuLCBDRlJhbmdlTWFrZSgwLCAwKSwgaW5kZXhWZWN0
b3IuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nSW5kaWNlcyA9IGluZGV4VmVj
dG9yLmRhdGEoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmb3IgKENG
SW5kZXggaSA9IDA7IGkgPCBnbHlwaENvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKHN0cmluZ0luZGljZXNbaV0gPj0gc3RhdGljX2Nhc3Q8Q0ZJbmRleD4obGVuZ3RoKSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBp
ZiAoZ2x5cGhzW2ldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJ
bmRleChvZmZzZXQgKyBzdHJpbmdJbmRpY2VzW2ldLCBnbHlwaHNbaV0sIGZvbnREYXRhKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGhhdmVHbHlwaHMgPSB0cnVlOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQogI2Vsc2UKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnRE
YXRhQ29yZVRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL1NpbXBsZUZvbnREYXRhQ29yZVRleHQuY3BwCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhQ29yZVRleHQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw4ICszMCw2IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQg
IlNpbXBsZUZvbnREYXRhLmgiCiAKLSNpZiBVU0UoQ09SRV9URVhUKQotCiAjaW1wb3J0ICJGb250
LmgiCiAjaW1wb3J0ICJGb250Q2FjaGUuaCIKICNpbXBvcnQgIkZvbnREZXNjcmlwdGlvbi5oIgpA
QCAtNjAsMTYgKzU4LDE2IEBAIENGRGljdGlvbmFyeVJlZiBTaW1wbGVGb250RGF0YTo6Z2V0Q0ZT
dHIKICAgICBpZiAoISh0eXBlc2V0dGluZ0ZlYXR1cmVzICYgS2VybmluZykpIHsKICAgICAgICAg
c3RhdGljIGNvbnN0IGZsb2F0IGtlcm5pbmdBZGp1c3RtZW50VmFsdWUgPSAwOwogICAgICAgICBz
dGF0aWMgQ0ZOdW1iZXJSZWYga2VybmluZ0FkanVzdG1lbnQgPSBDRk51bWJlckNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJGbG9hdFR5cGUsICZrZXJuaW5nQWRqdXN0bWVudFZh
bHVlKTsKLSAgICAgICAgc3RhdGljIGNvbnN0IHZvaWQqIGtleXNXaXRoS2VybmluZ0Rpc2FibGVk
W10gPSB7IGtDVEZvbnRBdHRyaWJ1dGVOYW1lLCBrQ1RLZXJuQXR0cmlidXRlTmFtZSwga0NUTGln
YXR1cmVBdHRyaWJ1dGVOYW1lIH07CisgICAgICAgIHN0YXRpYyBjb25zdCB2b2lkKiBrZXlzV2l0
aEtlcm5pbmdEaXNhYmxlZFtdID0geyBrQ1RGb250QXR0cmlidXRlTmFtZSwga0NUS2VybkF0dHJp
YnV0ZU5hbWUsIGtDVExpZ2F0dXJlQXR0cmlidXRlTmFtZSwga0NUVmVydGljYWxGb3Jtc0F0dHJp
YnV0ZU5hbWUgfTsKICAgICAgICAgY29uc3Qgdm9pZCogdmFsdWVzV2l0aEtlcm5pbmdEaXNhYmxl
ZFtdID0geyBwbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSwga2VybmluZ0FkanVzdG1lbnQsIGFsbG93
TGlnYXR1cmVzCi0gICAgICAgICAgICA/IGxpZ2F0dXJlc0FsbG93ZWQgOiBsaWdhdHVyZXNOb3RB
bGxvd2VkIH07CisgICAgICAgICAgICA/IGxpZ2F0dXJlc0FsbG93ZWQgOiBsaWdhdHVyZXNOb3RB
bGxvd2VkLCBwbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsID8ga0NGQm9v
bGVhblRydWUgOiBrQ0ZCb29sZWFuRmFsc2UgfTsKICAgICAgICAgYXR0cmlidXRlc0RpY3Rpb25h
cnkuYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoMCwga2V5c1dpdGhLZXJuaW5nRGlzYWJsZWQs
IHZhbHVlc1dpdGhLZXJuaW5nRGlzYWJsZWQsCiAgICAgICAgICAgICBzaXplb2Yoa2V5c1dpdGhL
ZXJuaW5nRGlzYWJsZWQpIC8gc2l6ZW9mKCprZXlzV2l0aEtlcm5pbmdEaXNhYmxlZCksCiAgICAg
ICAgICAgICAma0NGQ29weVN0cmluZ0RpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGlj
dGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQnkgb21p
dHRpbmcgdGhlIGtDVEtlcm5BdHRyaWJ1dGVOYW1lIGF0dHJpYnV0ZSwgd2UgZ2V0IENvcmUgVGV4
dCdzIHN0YW5kYXJkIGtlcm5pbmcuCi0gICAgICAgIHN0YXRpYyBjb25zdCB2b2lkKiBrZXlzV2l0
aEtlcm5pbmdFbmFibGVkW10gPSB7IGtDVEZvbnRBdHRyaWJ1dGVOYW1lLCBrQ1RMaWdhdHVyZUF0
dHJpYnV0ZU5hbWUgfTsKLSAgICAgICAgY29uc3Qgdm9pZCogdmFsdWVzV2l0aEtlcm5pbmdFbmFi
bGVkW10gPSB7IHBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLCBhbGxvd0xpZ2F0dXJlcyA/IGxpZ2F0
dXJlc0FsbG93ZWQgOiBsaWdhdHVyZXNOb3RBbGxvd2VkIH07CisgICAgICAgIHN0YXRpYyBjb25z
dCB2b2lkKiBrZXlzV2l0aEtlcm5pbmdFbmFibGVkW10gPSB7IGtDVEZvbnRBdHRyaWJ1dGVOYW1l
LCBrQ1RMaWdhdHVyZUF0dHJpYnV0ZU5hbWUsIGtDVFZlcnRpY2FsRm9ybXNBdHRyaWJ1dGVOYW1l
IH07CisgICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlc1dpdGhLZXJuaW5nRW5hYmxlZFtdID0geyBw
bGF0Zm9ybURhdGEoKS5jdEZvbnQoKSwgYWxsb3dMaWdhdHVyZXMgPyBsaWdhdHVyZXNBbGxvd2Vk
IDogbGlnYXR1cmVzTm90QWxsb3dlZCwgcGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBW
ZXJ0aWNhbCA/IGtDRkJvb2xlYW5UcnVlIDoga0NGQm9vbGVhbkZhbHNlIH07CiAgICAgICAgIGF0
dHJpYnV0ZXNEaWN0aW9uYXJ5LmFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKDAsIGtleXNXaXRo
S2VybmluZ0VuYWJsZWQsIHZhbHVlc1dpdGhLZXJuaW5nRW5hYmxlZCwKICAgICAgICAgICAgIHNp
emVvZihrZXlzV2l0aEtlcm5pbmdFbmFibGVkKSAvIHNpemVvZigqa2V5c1dpdGhLZXJuaW5nRW5h
YmxlZCksCiAgICAgICAgICAgICAma0NGQ29weVN0cmluZ0RpY3Rpb25hcnlLZXlDYWxsQmFja3Ms
ICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CkBAIC03OSw1ICs3NywzIEBAIENG
RGljdGlvbmFyeVJlZiBTaW1wbGVGb250RGF0YTo6Z2V0Q0ZTdHIKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L1NpbXBsZUZvbnREYXRhTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC00MTcsMTEgKzQxNyw5IEBAIEZsb2F0UmVjdCBTaW1wbGVGb250RGF0YTo6cGxhdGZv
cm1Cb3VuZHMKIHsKICAgICBGbG9hdFJlY3QgYm91bmRpbmdCb3g7CiAjaWZuZGVmIEJVSUxESU5H
X09OX1RJR0VSCi0gICAgQ0dSZWN0IGJveDsKLSAgICBDR0ZvbnRHZXRHbHlwaEJCb3hlcyhwbGF0
Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgJmdseXBoLCAxLCAmYm94KTsKLSAgICBmbG9hdCBwb2ludFNp
emUgPSBwbGF0Zm9ybURhdGEoKS5tX3NpemU7Ci0gICAgQ0dGbG9hdCBzY2FsZSA9IHBvaW50U2l6
ZSAvIHVuaXRzUGVyRW0oKTsKLSAgICBib3VuZGluZ0JveCA9IENHUmVjdEFwcGx5QWZmaW5lVHJh
bnNmb3JtKGJveCwgQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUoc2NhbGUsIC1zY2FsZSkpOwor
ICAgIGJvdW5kaW5nQm94ID0gQ1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocyhtX3BsYXRm
b3JtRGF0YS5jdEZvbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgbV9wbGF0Zm9ybURhdGEub3Jp
ZW50YXRpb24oKSA9PSBWZXJ0aWNhbCA/IGtDVEZvbnRWZXJ0aWNhbE9yaWVudGF0aW9uIDoga0NU
Rm9udEhvcml6b250YWxPcmllbnRhdGlvbiwgJmdseXBoLCAwLCAxKTsKKyAgICBib3VuZGluZ0Jv
eC5zZXRZKC1ib3VuZGluZ0JveC5ib3R0b20oKSk7CiAjZWxzZQogICAgIC8vIEZJWE1FOiBDdXN0
b20gZm9udHMgZG9uJ3QgaGF2ZSBOU0ZvbnRzLCBzbyB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3QgY29t
cHV0ZSBjb3JyZWN0IGJvdW5kcyBmb3IgdGhlc2Ugb24gVGlnZXIuCiAgICAgaWYgKCFtX3BsYXRm
b3JtRGF0YS5mb250KCkpCkBAIC00MzcsMTQgKzQzNSwxOCBAQCBGbG9hdFJlY3QgU2ltcGxlRm9u
dERhdGE6OnBsYXRmb3JtQm91bmRzCiAKIGZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdp
ZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiB7Ci0gICAgTlNGb250KiBmb250ID0gcGxh
dGZvcm1EYXRhKCkuZm9udCgpOwotICAgIGZsb2F0IHBvaW50U2l6ZSA9IHBsYXRmb3JtRGF0YSgp
Lm1fc2l6ZTsKLSAgICBDR0FmZmluZVRyYW5zZm9ybSBtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtl
U2NhbGUocG9pbnRTaXplLCBwb2ludFNpemUpOwogICAgIENHU2l6ZSBhZHZhbmNlOwotICAgIGlm
ICghd2tHZXRHbHlwaFRyYW5zZm9ybWVkQWR2YW5jZXMocGxhdGZvcm1EYXRhKCkuY2dGb250KCks
IGZvbnQsICZtLCAmZ2x5cGgsICZhZHZhbmNlKSkgewotICAgICAgICBMT0dfRVJST1IoIlVuYWJs
ZSB0byBjYWNoZSBnbHlwaCB3aWR0aHMgZm9yICVAICVmIiwgW2ZvbnQgZGlzcGxheU5hbWVdLCBw
b2ludFNpemUpOwotICAgICAgICBhZHZhbmNlLndpZHRoID0gMDsKLSAgICB9CisgICAgaWYgKG1f
cGxhdGZvcm1EYXRhLm9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbCkgeworICAgICAgICBOU0Zv
bnQqIGZvbnQgPSBwbGF0Zm9ybURhdGEoKS5mb250KCk7CisgICAgICAgIGZsb2F0IHBvaW50U2l6
ZSA9IHBsYXRmb3JtRGF0YSgpLm1fc2l6ZTsKKyAgICAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gbSA9
IENHQWZmaW5lVHJhbnNmb3JtTWFrZVNjYWxlKHBvaW50U2l6ZSwgcG9pbnRTaXplKTsKKyAgICAg
ICAgaWYgKCF3a0dldEdseXBoVHJhbnNmb3JtZWRBZHZhbmNlcyhwbGF0Zm9ybURhdGEoKS5jZ0Zv
bnQoKSwgZm9udCwgJm0sICZnbHlwaCwgJmFkdmFuY2UpKSB7CisgICAgICAgICAgICBMT0dfRVJS
T1IoIlVuYWJsZSB0byBjYWNoZSBnbHlwaCB3aWR0aHMgZm9yICVAICVmIiwgW2ZvbnQgZGlzcGxh
eU5hbWVdLCBwb2ludFNpemUpOworICAgICAgICAgICAgYWR2YW5jZS53aWR0aCA9IDA7CisgICAg
ICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgQ1RGb250R2V0QWR2YW5jZXNGb3JHbHlwaHMobV9w
bGF0Zm9ybURhdGEuY3RGb250KCksIGtDVEZvbnRWZXJ0aWNhbE9yaWVudGF0aW9uLCAmZ2x5cGgs
ICZhZHZhbmNlLCAxKTsKKwogICAgIHJldHVybiBhZHZhbmNlLndpZHRoICsgbV9zeW50aGV0aWNC
b2xkT2Zmc2V0OwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRD
dXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNzAxNDIpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjIsNiArMjIsNyBAQAogI2lmbmRlZiBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
X2gKICNkZWZpbmUgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAKKyNpbmNsdWRlICJGb250T3Jp
ZW50YXRpb24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC0zNyw3ICszOCw3
IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKICAgICAvLyBmb3Ig
dXNlIHdpdGggUUZvbnREYXRhYmFzZTo6YWRkQXBwbGljYXRpb25Gb250L3JlbW92ZUFwcGxpY2F0
aW9uRm9udAogICAgIGludCBtX2hhbmRsZTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBs
YXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmlu
Z01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQ
bGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRh
dGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9k
ZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIH07
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGFRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhUXQuY3BwCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YVF0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzQsNyArMzQsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3Rv
bVBsYXRmCiAgICAgUUZvbnREYXRhYmFzZTo6cmVtb3ZlQXBwbGljYXRpb25Gb250KG1faGFuZGxl
KTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxh
dGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5n
TW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRm
b3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9u
LCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICBRRm9udCBmb250OwogICAgIGZvbnQuc2V0RmFt
aWx5KFFGb250RGF0YWJhc2U6OmFwcGxpY2F0aW9uRm9udEZhbWlsaWVzKG1faGFuZGxlKVswXSk7
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjQsNyArNjQsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3Rv
bVBsYXRmCiAjZW5kaWYKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBG
b250UmVuZGVyaW5nTW9kZSBtb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBGb250T3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlIG1vZGUpCiB7CiAjaWYgT1MoV0lO
RE9XUykKICAgICBBU1NFUlQobV9mb250UmVmZXJlbmNlKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAko
cmV2aXNpb24gNzAxNDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaWZu
ZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhX2gKIAorI2luY2x1ZGUgIkZvbnRPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5k
ZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KQEAgLTYyLDcgKzYzLDcgQEAgc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURh
dGEgOiBOb25jb3B5YQogCiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKIAotICAgIEZv
bnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29s
IGl0YWxpYywKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUs
IGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbnRSZW5kZXJpbmdNb2RlID0g
Tm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChj
b25zdCBTdHJpbmcmKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRD
dXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCShyZXZpc2lvbiA3MDE0MikKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6
On5Gb250Q3VzdG9tUGxhdGYKICAgICB9CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29s
IGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURh
dGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9v
bCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSBy
ZW5kZXJpbmdNb2RlKQogewogICAgIEFTU0VSVChtX2ZvbnRSZWZlcmVuY2UpOwogICAgIEFTU0VS
VChUMmVtYmVkTGlicmFyeSgpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDcwMTQyKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0
Zm9ybURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUg
IkZvbnRPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNDIs
NyArNDMsNyBAQCBzdHJ1Y3QgRm9udEN1c3RvbVBsYXRmb3JtRGF0YSA6IE5vbmNvcHlhCiAKICAg
ICB+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpOwogCi0gICAgRm9udFBsYXRmb3JtRGF0YSBmb250
UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVy
aW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9u
dFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVu
dGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdN
b2RlKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwog
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhQ2Fpcm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5jcHAJKHJldmlzaW9uIDcwMTQyKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojp+Rm9udEN1c3RvbVBsYXRmCiAgICBjYWlyb19mb250X2ZhY2VfZGVzdHJveShtX2ZvbnRGYWNl
KTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxh
dGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKQorRm9udFBsYXRmb3Jt
RGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBi
b29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24pCiB7CiAgICAgcmV0dXJuIEZv
bnRQbGF0Zm9ybURhdGEobV9mb250RmFjZSwgc2l6ZSwgYm9sZCwgaXRhbGljKTsKIH0KSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWly
by5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGFDYWlyby5oCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWly
b19oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyb19oCiAKKyNpbmNsdWRlICJG
b250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgogCkBAIC0zOSw3ICs0MCw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxh
dGZvcm1EYXRhIDogTm9uY29weWEKICAgICB9CiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEo
KTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9v
bCBib2xkLCBib29sIGl0YWxpYyk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1E
YXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gPSBI
b3Jpem9udGFsKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmlu
ZyYpOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luY2UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDcwMTQyKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+
Rm9udEN1c3RvbVBsYXRmCiAgICAgICAgIGdfY3VzdG9tRm9udENhY2hlLT51bnJlZ2lzdGVyRm9u
dChtX25hbWUpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6
OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRS
ZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBp
dGFsaWMsIEZvbnRPcmllbnRhdGlvbiwgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSkK
IHsKICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2M7CiAgICAgZm9udERlc2Muc2V0Q29tcHV0
ZWRTaXplKHNpemUpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDcwMTQyKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpZm5kZWYgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogCisjaW5jbHVkZSAi
Rm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAt
NDQsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgfkZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEoKTsKIAotICAgICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURh
dGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0g
Tm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRm
b3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9u
IGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFs
UmVuZGVyaW5nTW9kZSk7CiAKICAgICAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29u
c3QgU3RyaW5nJik7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24gNzAxNDIpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5G
b250Q3VzdG9tUGxhdGYKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBGb250UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywg
Rm9udE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICByZXR1cm4gRm9udFBs
YXRmb3JtRGF0YShzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlz
aW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpZm5kZWYgRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAog
CisjaW5jbHVkZSAiRm9udE9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01v
ZGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgpAQCAtMzcsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3Rh
dGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAKLSAgICAgICAgRm9udFBs
YXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgICAgICBG
b250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9v
bCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2Rl
ID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAgICAgfTsKIAogICAgIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGEqIGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKik7CkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiA3MDE0MikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEwLTEwLTIwICB0YWthbm8gdGFrdW1pICA8dGFrYW5v
MUBhc2lhLmFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBOZWVkIHRvIHN3YXAgZ2x5cGhzIGZvciB2ZXJ0aWNhbCB3cml0aW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk3MworCisgICAg
ICAgICogZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1nbHlwaC10ZXN0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRl
eHQtbWV0cmljcy10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0
L3RleHQvaW50ZXJuYXRpb25hbC92ZXJ0aWNhbC10ZXh0LWdseXBoLXRlc3QtZXhwZWN0ZWQuY2hl
Y2tzdW06IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3RleHQvaW50ZXJuYXRp
b25hbC92ZXJ0aWNhbC10ZXh0LWdseXBoLXRlc3QtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1n
bHlwaC10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zh
c3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRleHQtbWV0cmljcy10ZXN0LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisKIDIwMTAtMTAtMTkgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1nbHlwaC10ZXN0
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwv
dmVydGljYWwtdGV4dC1nbHlwaC10ZXN0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC92ZXJ0aWNhbC10ZXh0LWdseXBoLXRlc3QuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9dXRmLTgiPgorPHRpdGxlPlZlcnRpY2FsIHRleHQgbWV0cmljcyB0ZXN0PC90aXRs
ZT4KKzxzdHlsZT4KK2JvZHkgeworICAgIGZvbnQtZmFtaWx5OiAiSGlyYU1pblByby1XMyI7Cisg
ICAgZm9udC1zaXplOiBsYXJnZTsKK30KKyNob3Jpem9udGFsX1RCIHsKKyAgICAtd2Via2l0LXdy
aXRpbmctbW9kZTogaG9yaXpvbnRhbC10YjsKK30KKyNob3Jpem9udGFsX0JUIHsKKyAgICAtd2Vi
a2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC1idDsKK30KKyN2ZXJ0aWNhbF9STCB7CisgICAg
LXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOworfQorI3ZlcnRpY2FsX0xSIHsKKyAg
ICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7Cit9CisjaG9yaXpvbnRhbF9UQl9j
b21wbGV4IHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10YjsKKyAgICB0
ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5OworfQorI2hvcml6b250YWxfQlRfY29t
cGxleCB7CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwtYnQ7CisgICAgdGV4
dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTsKK30KKyN2ZXJ0aWNhbF9STF9jb21wbGV4
IHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7CisgICAgdGV4dC1yZW5k
ZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTsKK30KKyN2ZXJ0aWNhbF9MUl9jb21wbGV4IHsKKyAg
ICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7CisgICAgdGV4dC1yZW5kZXJpbmc6
IG9wdGltaXplbGVnaWJpbGl0eTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InRlc3QoKSI+Cis8cD5TaW1wbGUgdGV4dCBwYXRoPC9wPgorPHNwYW4gaWQ9InZlcnRpY2FsX1JM
Ij5hYuOBguOAjOOAjeOAgjwvc3Bhbj48YnI+Cis8YnI+Cis8aHI+Cis8cD5Db21wbGV4IHRleHQg
cGF0aDwvcD4KKzxzcGFuIGlkPSJ2ZXJ0aWNhbF9STF9jb21wbGV4Ij5hYuOBguOAjOOAjeOAgjHi
g508L3NwYW4+PGJyPgorPGJyPgorPGhyPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1tZXRyaWNzLXRlc3Qu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC92
ZXJ0aWNhbC10ZXh0LW1ldHJpY3MtdGVzdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1tZXRyaWNzLXRlc3QuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0
bWw7IGNoYXJzZXQ9dXRmLTgiPgorPHRpdGxlPlZlcnRpY2FsIHRleHQgbWV0cmljcyB0ZXN0PC90
aXRsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBwcmludChtZXNzYWdlKQoreworICAgIHZhciBwYXJh
Z3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOworICAgIHBhcmFncmFwaC5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOworfQorZnVu
Y3Rpb24gdGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgdmFyIHBFbGVt
cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzcGFuIik7CisgICAgZm9yICggaSA9
IDAgOyBpIDwgcEVsZW1zLmxlbmd0aCA7ICsraSApCisgICAgeworICAgICAgICB2YXIgZWxlbSA9
IHBFbGVtc1tpXTsKKyAgICAgICAgcHJpbnQoIndpZHRoPSIgKyBlbGVtLm9mZnNldFdpZHRoKTsK
KyAgICB9Cit9Cis8L3NjcmlwdD4KKzxzdHlsZT4KK2JvZHkgeworICAgIGZvbnQtZmFtaWx5OiAi
SGlyYU1pblByby1XMyI7CisgICAgZm9udC1zaXplOiBsYXJnZTsKK30KKyNob3Jpem9udGFsX1RC
IHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10YjsKK30KKyNob3Jpem9u
dGFsX0JUIHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC1idDsKK30KKyN2
ZXJ0aWNhbF9STCB7CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOworfQor
I3ZlcnRpY2FsX0xSIHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7Cit9
CisjaG9yaXpvbnRhbF9UQl9jb21wbGV4IHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogaG9y
aXpvbnRhbC10YjsKKyAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5OworfQor
I2hvcml6b250YWxfQlRfY29tcGxleCB7CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6
b250YWwtYnQ7CisgICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTsKK30KKyN2
ZXJ0aWNhbF9STF9jb21wbGV4IHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwt
cmw7CisgICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTsKK30KKyN2ZXJ0aWNh
bF9MUl9jb21wbGV4IHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7Cisg
ICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTsKK30KKzwvc3R5bGU+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8cD5TaW1wbGUgdGV4dCBwYXRoPC9wPgorPHNw
YW4gaWQ9Imhvcml6b250YWxfVEIiPmFi44GC44CM44CN44CCPC9zcGFuPjxicj4KKzxzcGFuIGlk
PSJob3Jpem9udGFsX0JUIj5hYuOBguOAjOOAjeOAgjwvc3Bhbj48YnI+Cis8c3BhbiBpZD0idmVy
dGljYWxfUkwiPmFi44GC44CM44CN44CCPC9zcGFuPjxicj4KKzxzcGFuIGlkPSJ2ZXJ0aWNhbF9M
UiI+YWLjgYLjgIzjgI3jgII8L3NwYW4+PGJyPgorPGJyPgorPGhyPgorPHA+Q29tcGxleCB0ZXh0
IHBhdGg8L3A+Cis8c3BhbiBpZD0iaG9yaXpvbnRhbF9UQl9jb21wbGV4Ij5hYuOBguOAjOOAjeOA
gjHig508L3NwYW4+PGJyPgorPHNwYW4gaWQ9Imhvcml6b250YWxfQlRfY29tcGxleCI+YWLjgYLj
gIzjgI3jgIIx4oOdPC9zcGFuPjxicj4KKzxzcGFuIGlkPSJ2ZXJ0aWNhbF9STF9jb21wbGV4Ij5h
YuOBguOAjOOAjeOAgjHig508L3NwYW4+PGJyPgorPHNwYW4gaWQ9InZlcnRpY2FsX0xSX2NvbXBs
ZXgiPmFi44GC44CM44CN44CCMeKDnTwvc3Bhbj48YnI+Cis8YnI+Cis8aHI+Cis8cD48b2wgaWQ9
Y29uc29sZT48L29sPjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC92ZXJ0aWNhbC10ZXh0LWdseXBoLXRl
c3QtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRleHQtZ2x5cGgtdGVzdC1leHBl
Y3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L3RleHQvaW50ZXJuYXRpb25hbC92ZXJ0aWNhbC10ZXh0LWdseXBoLXRlc3QtZXhwZWN0ZWQu
Y2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKzgzYTU3YWNlZGViOTc5ZTkzOTU5
Y2Y1OWZlNTljZGZjClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRleHQtZ2x5
cGgtdGVzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRleHQtZ2x5cGgtdGVzdC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90
ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1nbHlwaC10ZXN0LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQxOiBS
ZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogdGVzdAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg0NDIKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
ODAweDQ0MgorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE4KSBzaXplIDc4NHg0MTUKKyAg
ICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgyNworICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsNCkgc2l6ZSAxMzl4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCw0KSB3aWR0aCAxMzk6ICJTaW1wbGUgdGV4dCBwYXRoIgorICAgICAgUmVuZGVyQmxvY2sgKGFu
b255bW91cykgYXQgKDAsNDUpIHNpemUgNzg0eDEyOQorICAgICAgICBSZW5kZXJCbG9jayB7U1BB
Tn0gYXQgKDAsMCkgc2l6ZSAxMjJ4OTUKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsOTkpIHNpemUgOTV4MTkKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDk5KSB3aWR0aCA5
NTogImFiXHh7MzA0Mn1ceHszMDBDfVx4ezMwMER9XHh7MzAwMn0iCisgICAgICAgIFJlbmRlckJS
IHtCUn0gYXQgKDEyMiw3OSkgc2l6ZSAweDE5CisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDAs
MTA2KSBzaXplIDB4MTkKKyAgICAgIFJlbmRlckJsb2NrIHtIUn0gYXQgKDAsMTgzKSBzaXplIDc4
NHgyIFtib3JkZXI6ICgxcHggaW5zZXQgIzAwMDAwMCldCisgICAgICBSZW5kZXJCbG9jayB7UH0g
YXQgKDAsMjAzKSBzaXplIDc4NHgyNworICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
NCkgc2l6ZSAxNTd4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw0KSB3aWR0aCAxNTc6ICJD
b21wbGV4IHRleHQgcGF0aCIKKyAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDI0
OCkgc2l6ZSA3ODR4MTU2CisgICAgICAgIFJlbmRlckJsb2NrIHtTUEFOfSBhdCAoMCwwKSBzaXpl
IDE0OXgxMjIKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMTI2KSBzaXplIDEy
MngxOQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTI2KSB3aWR0aCAxMjI6ICJhYlx4ezMw
NDJ9XHh7MzAwQ31ceHszMDBEfVx4ezMwMDJ9MVx4ezIwRER9IgorICAgICAgICBSZW5kZXJCUiB7
QlJ9IGF0ICgxNDksMTA2KSBzaXplIDB4MTkKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMCwx
MzMpIHNpemUgMHgxOQorICAgICAgUmVuZGVyQmxvY2sge0hSfSBhdCAoMCw0MTMpIHNpemUgNzg0
eDIgW2JvcmRlcjogKDFweCBpbnNldCAjMDAwMDAwKV0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC92ZXJ0aWNhbC10ZXh0LW1ldHJpY3MtdGVz
dC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRleHQtbWV0cmljcy10ZXN0LWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3RleHQv
aW50ZXJuYXRpb25hbC92ZXJ0aWNhbC10ZXh0LW1ldHJpY3MtdGVzdC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMjMgQEAKK1NpbXBsZSB0ZXh0IHBhdGgKKworYWLjgYLjgIzj
gI3jgIIKK2Fi44GC44CM44CN44CCCithYuOBguOAjOOAjeOAggorYWLjgYLjgIzjgI3jgIIKKwor
Q29tcGxleCB0ZXh0IHBhdGgKKworYWLjgYLjgIzjgI3jgIIx4oOdCithYuOBguOAjOOAjeOAgjHi
g50KK2Fi44GC44CM44CN44CCMeKDnQorYWLjgYLjgIzjgI3jgIIx4oOdCisKK3dpZHRoPTkzCit3
aWR0aD05Mword2lkdGg9MTIyCit3aWR0aD0xMjIKK3dpZHRoPTEwMword2lkdGg9MTAzCit3aWR0
aD0xNDkKK3dpZHRoPTE0OQorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90
ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1nbHlwaC10ZXN0LWV4cGVjdGVkLnBuZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpz
dm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVy
dGljYWwtdGV4dC1nbHlwaC10ZXN0LWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46
bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKaVZCT1J3MEtHZ29BQUFB
TlNVaEVVZ0FBQXlBQUFBSllDQVlBQUFDYWRvSndBQUFDN21sRFExQkpRME1nVUhKdlptbHNaUUFB
ZUFHRgpWTTlyRTBFVS9qWnVxZEFpQ0ZwckRySjRrQ0pKV2F0b1JkUTIvUkZpYXd6Ykg3WkZrR1F6
U2RadU51dnVKcldsaU9UaTBTcmVSZTJoCkIvK0FIbnJ3WkM5S2hWcEZLTjZyS0dLaEZ5M3h6VzVN
dHFYcXdNNSs4OTQzNzMxdmR0OEFEWExTTlBXQUJPUU54MUtpRVdsc2ZFSnEKL0lnQWpxSUpRVFFs
VmR2c1RpUUdRWU56K1h2bjJIb1BnVnRXdzN2N2Q3SjNyWnJTdHBvSGhQMUE0RWVhMlNxdzd4ZHhD
bGtTQW9nOAozNkVweDNRSTMrUFk4dXlQT1U1NWVNRzFEeXM5eEZraWZFQTFMYzUvVGJoVHpTWFRR
SU5JT0pUMWNWSStuTmVMbE5jZEIybHVac2JJCkVMMVBrS2E3ek82cllxR2NUdllPa0wyZDlINU9z
OTQrd2lIQ0N4bXRQMGE0alo3MWpOVS80bUhocE9iRWhqMGNHRFgwK0dBVnR4cXAKK0RYQ0ZGOFFU
U2VpVkhIWkxnM3htSzc5VnZKS2duQ1FPTXBrWVlCeldraFAxMHh1K0xxSEJYMG0xeE92NG5kV1Vl
RjVqeE5uM3RUZAo3MFhhQXE4d0RoME1HZ3lhRFVoUUVFVUVZWml3VUVDR1BCb3hOTEp5UHlPckJo
dVRlekoxSkdxN2RHSkVzVUY3TnR3OXQxR2szVHorCktDSnhsRU8xQ0pMOFFmNHFyOGxQNVhuNXkx
eXcyRmIzbEsyYm1ycnk0RHZGNVptNUdoN1gwOGpqYzAxZWZKWFVkcE5YUjVhc2VYcTgKbXV3YVAr
eFhsekhtZ2pXUHhIT3crL0V0WDVYTWx5bU1GTVhqVmZQcVM0UjFXakUzMzU5c2Z6czk0aTdQTHJY
V2M2MkppemRXbTVkbgovV3BJKys2cXZKUG1WZmxQWHZYeC9HZk54R1BpS1RFbWRvcm5JWW1YeFM3
eGt0aExxd3ZpWUczSENKMlZoaW5TYlpINkpOVmdZSnE4CjlTOWRQMXQ0dlVaL0RQVlJsQm5NMGxT
SjkzL0NLbVEwbmJrT2IvcVAyOGY4RitUM2l1ZWZLQUl2Yk9ESW1icHRVM0h2RUtGbHBXNXoKcmdJ
WHY5Rjk4TFp1YTZOK09Qd0VXRHlyRnExU05aOGd2QUVjZG9kNkh1Z3BtTk9XbHMwNVVvY3NuNU82
NmNwaVVzeFEyME5TVXRjbAoxMlZMRnJPWlZXTHBkdGlaMHgxdUhLRTVRdmZFcDBwbGsvcXY4Ukd3
L2JCUytmbXNVdGwrVGhyV2daZjZiOEM4L1VYQWVJdUpBQUFnCkFFbEVRVlI0QWUzZGViZ3QwNTAv
NEhYTlE0d3hDekdHMEdZYU1kMUlOUElnYVVNM01ZUVlnZzVCSXRxVW1JV1d4a1BpY2JVWVFvU1kK
NTFsd0RRbGluZ2xOelBNc3B2UGIzMHJYL3AxN25XR2RlMHE1ZGV1dDU3bDM3MTE3MVZxMTNuWCtx
TSt1V2xVamVqcExzaEFnUUlBQQpBUUlFQ0JBZ1FLQUdnWWxxYUVNVEJBZ1FJRUNBQUFFQ0JBZ1FL
QVFFRUg4SUJBZ1FJRUNBQUFFQ0JBalVKaUNBMUVhdElRSUVDQkFnClFJQUFBUUlFQkJCL0F3UUlF
Q0JBZ0FBQkFnUUkxQ1lnZ05SR3JTRUNCQWdRSUVDQUFBRUNCQVFRZndNRUNCQWdRSUFBQVFJRUNO
UW0KSUlEVVJxMGhBZ1FJRUNCQWdBQUJBZ1FFRUg4REJBZ1FJRUNBQUFFQ0JBalVKaUNBMUVhdElR
SUVDQkFnUUlBQUFRSUVCQkIvQXdRSQpFQ0JBZ0FBQkFnUUkxQ1lnZ05SR3JTRUNCQWdRSUVDQUFB
RUNCQVFRZndNRUNCQWdRSUFBQVFJRUNOUW1JSURVUnEwaEFnUUlFQ0JBCmdBQUJBZ1FFRUg4REJB
Z1FJRUNBQUFFQ0JBalVKaUNBMUVhdElRSUVDQkFnUUlBQUFRSUVCQkIvQXdRSUVDQkFnQUFCQWdR
STFDWWcKZ05SR3JTRUNCQWdRSUVDQUFBRUNCQVFRZndNRUNCQWdRSUFBQVFJRUNOUW1JSURVUnEw
aEFnUUlFQ0JBZ0FBQkFnUUVFSDhEQkFnUQpJRUNBQUFFQ0JBalVKaUNBMUVhdElRSUVDQkFnUUlB
QUFRSUVCQkIvQXdRSUVDQkFnQUFCQWdRSTFDWWdnTlJHclNFQ0JBZ1FJRUNBCkFBRUNCQ2JKSmJq
dnZ2dlNvWWNlbXFhYWFxbzB5U1NUcEE4Ly9ERE5NY2NjYWRaWlowMy84Ui8vVVZUenlpdXZwSDMz
M1RkdHM4MDIKYWVtbGw4NnR1cEp5anovK2VEcm1tR05TN09lR0cyNll0dDkrKzBycWJYc2xvMGVQ
VGllZWVHSjY4c2tuMC83Nzc1OVdYWFhWdHBQbwpQd0VDQkFnUUlFQ0F3REFFc2dMSVBmZmNrOVpk
ZDkxMDBVVVhwY1VYWDd4bzd0RkhIMDFycnJsbUdqbHlaTGY1MjI2N0xSMTMzSEZwCmhobG1xRDJB
ekQvLy9HbW5uWFpLQ3l5d1FGcHR0ZFc2KzFURm05ZGVleTI5Kys2N2FjNDU1NnlpdW43cnFLdWRm
bmVnODhYWSs3RHkKeWlzWDY5WmJiNzMwL3Z2dkQ3U3A3d2dRSUVDQUFBRUNCQWdNS3BCMUNWYWMx
VmhublhXNjRTTnFYWERCQmRNdmYvbkxOUG5razNjYgppVUJ5MDAwM3BYMzIyYWU3cnM0M004MDBV
OUhjRkZOTVVXbXpQL3JSajlMVlYxOWRhWjE5VlZaWE8zMjFYYTdyYXgrbW4zNzY0dXZKCkpwdXNM
T2FWQUFFQ0JBZ1FJRUNBd0RnSlpBV1FlKys5TjAwMzNYU2ZhbUNsbFZaS2NlYWhYRWFNR0pHKzly
V3ZwU21ubkxKY1ZldHIKdEI5TFhDSlcxZkxTU3krbDg4OC9QMDA2NmFSVlZkbG5QWFcxMDJmai83
ZXl2MzBvWFNlYUtPdlBaYUFtZkVlQUFBRUNCQWdRSU5CeQpnYXdqOVM5OTZVdkZwVlhycjc5K1du
YlpaYnRrczh3eVMvckpUMzVTZkg3d3dRZUxPUmkzM0hKTCt0NzN2cGQyMldXWFlqN0dYbnZ0ClZj
d2ZPT3l3dzRweU45eHdRN3Jra2t1S3k3Y09PZVNROU41Nzc2V2pqam9xeFJ5TysrKy92OWh1czgw
Mks4cGVkdGxsNllnampralAKUC85OHV2amlpOU1GRjF4UXpEMTUrT0dIaSsranppOSs4WXZGKzk3
L2xRZk01YnEzMzM0N0hYamdnVVV3aXJNamNUblY1cHR2WHB6RgpLY3YwOVJxWG1VVzV0OTU2cXdn
aGYvM3JYOU1xcTZ6U3ZjUnJzSG92di96eWROSkpKNlVQUHZnZ3pUampqT21uUC8xcENyUDk5dHN2
ClBmWFVVeW4ySmM0dVJiZ1pxSjJ4OTIxY1hLNjU1cHJpN0ZTMC8reXp6Nlk3N3JnakhYVFFRV21w
cFpZcXFoK3NyMUVvWE04NTU1emkKVXJ3WFgzd3hmZkxKSjJudnZmY3VUTWJlUjU4SkVDQkFnQUFC
QWdRSTlDblFrN0ZjZWVXVlBSTlBQSEZQNTBDNVo4Y2RkK3g1NXBsbgordHlxYzREZTAybWtwek5a
dmZ2OXJiZmVXcXpyWE5yVEUvWEU4dGhqai9WMHpwTDBISHZzc1QwLys5blBldDU0NDQxaWZYenUv
TXJlCjg4Z2pqeFNmNDc5WUYzVnV0TkZHUFZGL3VXeTExVlk5bmN2QWV2Nys5NytYcTRwNm91eVJS
eDdaWGZmNjY2LzNMTFRRUWozSEgzOTgKZDkyRkYxN1kwemx6MDlPWjc5QmQxOStiVGlncTJ2L2Q3
MzQzUnBIY2VxKzY2cXFlenFWTFBaMkorZDN0Zi8vNzMvZXNzTUlLUFMrLwovSEozWFgvdGRBdU05
V1lvTHVlZWUyNVBKenowZEVKY3Q1WmRkOTIxWjk1NTUrMStqamY5N2NPTk45NVlHTVEySjU5OGN0
ZThFNTU2Ck9qY2w2UGZ2WVl6S2ZTQkFnQUFCQWdRSUVDRFFFY2k2cG1hTk5kWkluUVBwWW9MM3Iz
Lzk2K0t5cTg3QmFPb2NoSThSYXVKWC9saDYKejhHSVg5eGppYk1PVVU4c2Nkbldra3N1bVdLK1FV
eHVubmJhYVl2MU1kRTlmbFcvL2ZiYmk4L3hYOXhsSzVabGxsa21kUTZZaS9meApYMndidjlySEdZ
YUJsb01QUHJpNEpHdTc3YmJyRm90Mk9vRXE3Ym5ubnQxMVEzMlRXKzgzdi9uTjR1NWhuUVAzNHF6
RFJ4OTlsRG9CCktNVlpqTDdPM3VUdXgxQmM0czVneXkyM1hGcDc3Ylc3MVgvMXExOU5Uenp4Uk9x
RXYrNjZ3ZDQ4OTl4enhkbXRjaTdJcHB0dVdveHIKSjJRT3RxbnZDUkFnUUlBQUFRSUVDQlFDV1FF
a1NuNzk2MTlQTVJja0R2Z2pWTVJsVTNGSHJNN1pqQzVsZWVsVDd6a1k1Ym9WVjF5eApXeTdleEFI
d0Y3N3doU0pZbEY5TU04MDB4ZHU0RTFPNWxOdVg0YVZjdjloaWk2V1lreENYZkEyMG5ISEdHZWty
WC9sS2lzdTJlditiCmVlYVowM0FPbklkU2IxeU8xam5qa2JiY2NzdmlVckFmLy9qSHFaellQZEMr
RC9UZFVGemlNcTgvL2VsUGhWZFpaemxHblROSTVhcEIKWDcvem5lK01VU2J1ZGhiTDJFRjBqRUkr
RUNCQWdBQUJBZ1FJRU9nbGtEVUhwQ3dmWnczaUlIcVRUVFlwbmdueGkxLzhJdjNidi8xYgorc3Rm
L2xJV0tWN0xnK1BlSzN1ZkZZbjFVVmQ1QUZ1V2kzV3hkTTdNbEt1NnI3UFBQbnYzZmJ5SjhCRUg4
VTgvL2ZRWTYzdC9pRGthCmYvdmIzNHBiQWtkNDZyMUVLSWdBTkM3TFVPdU5mWTNndHNRU1M2UUhI
bmlnc0J1WGR2dmFKdGNsd2xlY3ZZbytoL3ZkZDk5ZFZEZVUKeWZWOXRSV1ZmUHp4eDMzdG1uVUVD
QkFnUUlBQUFRSUVQaVdRRlVCaXd2VGNjOC9kM1RodXZSc1R5T05oaEhFcjNyaDdVcHhSK0N5WAp1
SFJwN0NXZVMxRmU0algyZC9FNUR2empYMXl1RkE4bnJHb1psM3JqVXFjNEM5S1pqMUZNQm84N2lG
V3g1TGdjY01BQnFUTUhwcmpzCnEzeU95d2tubkpCT08rMjBJZ2ptN2tkZndUSjNXK1VJRUNCQWdB
QUJBZ1FJaEVEV0pWanhaUE8rbHBoTEVXY3I0cTVLbi9VeWRodHgKWjZxWVZ4S1hjdlczeEZQYlk5
N0luWGZlMlYrUlFkZjNkZEE5MUhyampNblJSeCtkcnJqaWltSWVUTndsN0oxMzNobWo3YjdhR2FO
QQpQeDhHY3dtakNJbHhaN0V5ZkVSVjhkVDZXTXF6VHZGK1hQY2h0clVRSUVDQUFBRUNCQWdReUJI
SUNpQVBQZlJRdXV1dXV6NVZYOXhTCk55NkRXbmpoaFl2dnlrdHh5dGRZV2I0dlg4dEs0dlBZNjhw
Zjg4ZGVIOXZFVTloN0x6R0pPeVpEYjczMTF0M1Y1WGJsYTN3UmsrWGoKbHJPZE8zQjF5OFdidVAx
dnpJMFliQ2t2SFl0YjZmWmVjdXVOU2ZYYmJydHRpdHNSeDd5TFVhTkdwUmRlZUtIWXI5NzE5ZGRP
N3pKOQp2Ui9NSlM1QmUvUE5OOGQ0TmtxRXhrc3Z2ZlJUMWZXM0Q2Vm4rVnB1V0g0dVg4djFYZ2tR
SUVDQUFBRUNCQWowSjVBVlFPSlg5SmlBCkhNKzFpRW5MY2ZCKzNubm5wZE5QUHoyZGNzb3B4ZFBR
NDZDMnZIdFZoSlVJRTdFdUR2NWppVGtINVlGcTFCZHpJZUpaRW5GNVY3bVUKWmN2dHkvWHhlczg5
OXhTWEVNVUJmVHh6cEhQNzN1TFpKSFBPT1dlM1dMbDl0QldYaDhXeS9mYmJweTIyMktLWXUzTDIy
V2VuVjE5OQpOVjEvL2ZWcGp6MzJLSjQ1MHQyNG56ZFJmenhoUFo2akVXY055bWVRNU5RYjgxTWlm
RVJRSytkUHpESEhITVZ6Uk9JU3FIaU9TVmpFCjBsODcvZXhXZC9WZ0x2SEUrbmgyUytjMnd1bTIy
MjRybnMwU3p5T0ptd3JFRXVOUUxuM3RRM2lYWjVEaU5UN0gwbnRzK3hxdnNrNnYKQkFnUUlFQ0FB
QUVDQkhvTGpPZ2NTSDU2eG5mdkVwMzNaNTExVmpGNU9SN0VGLzlpRGtROG5IRGpqVGRPczgwMlcx
RTZ6cExFZ1gyNQp6RFhYWENuKzNYenp6ZVdxNHNGL3E2KytldnJ0YjMvYlBmQ09MMk4rUmh6Y1gz
ZmRkZDJ5Y1RDOHpqcnJGQSsraSsrajNUajRqd252CjhWVDJ1TDF0NS9rZTNmTHhmZHdxdUZ6Szdj
dlBVWGZzWDV3TmlJUHZrU05IcHZLdVcyV1ovbDZqYnpGZklzcXZ0ZFpheFdUeXN1eEEKOVo1NTVw
bmRPMFNGMDdlLy9lMDBldlRvNG9HTDVmWXhNVDNtaHNReVVEdGwrZkkxSGdpWTR4TGw0eEt3Q0k5
eHg3RDU1cHV2dUpWdQpCSW5PODFKU1hFNFdBYTI4cmUvWSt4QUJLVUpPdWNUdGs1ZGZmdmxpWDN1
UDl6enp6Rk04WExJczU1VUFBUUlFQ0JBZ1FJQkFYd0paCkFhU3ZEZXRhMS90QXUvZHpRT3BxZjN4
dGg4djRPakwyaXdBQkFnUUlFQ0JBWUNDQnJFdXdCcXJncy82dW5CZFNYbEwxV2JmWGxQcTUKTkdX
azdDY0JBZ1FJRUNCQWdFQnZnZkU2Z0R6enpEUEZwVU94d3pGL0kyNzNhMG1KaTc4Q0FnUUlFQ0JB
Z0FDQnBncU0xNWRneGNNRApuM3Z1dWE1dHpGOVlZSUVGdXAvYitvWkxXMGRldndrUUlFQ0FBQUVD
elJjWXJ3Tkk4M24xZ0FBQkFnUUlFQ0JBZ0FDQjNnTGo5U1ZZCnZYZlVld0lFQ0JBZ1FJQUFBUUlF
bWk4Z2dEUi9EUFdBQUFFQ0JBZ1FJRUNBUUdNRUJKREdESlVkSlVDQUFBRUNCQWdRSU5COEFRR2sK
K1dPb0J3UUlFQ0JBZ0FBQkFnUWFJeUNBTkdhbzdDZ0JBZ1FJRUNCQWdBQ0I1Z3NJSU0wZlF6MGdR
SUFBQVFJRUNCQWcwQmdCQWFReApRMlZIQ1JBZ1FJQUFBUUlFQ0RSZlFBQnAvaGpxQVFFQ0JBZ1FJ
RUNBQUlIR0NBZ2dqUmtxTzBxQUFBRUNCQWdRSUVDZytRSUNTUFBIClVBOElFQ0JBZ0FBQkFnUUlO
RVpBQUduTVVObFJBZ1FJRUNCQWdBQUJBczBYRUVDYVA0WjZRSUFBQVFJRUNCQWdRS0F4QWdKSVk0
YksKamhJZ1FJQUFBUUlFQ0JCb3ZvQUEwdnd4MUFNQ0JBZ1FJRUNBQUFFQ2pSRVFRQm96VkhhVUFB
RUNCQWdRSUVDQVFQTUZCSkRtajZFZQpFQ0JBZ0FBQkFnUUlFR2lNZ0FEU21LR3lvd1FJRUNCQWdB
QUJBZ1NhTHlDQU5IOE05WUFBQVFJRUNCQWdRSUJBWXdRRWtNWU1sUjBsClFJQUFBUUlFQ0JBZzBI
d0JBYVQ1WTZnSEJBZ1FJRUNBQUFFQ0JCb2pJSUEwWnFqc0tBRUNCQWdRSUVDQUFJSG1Dd2dnelI5
RFBTQkEKZ0FBQkFnUUlFQ0RRR0FFQnBERkRaVWNKRUNCQWdBQUJBZ1FJTkY5QUFHbitHT29CQVFJ
RUNCQWdRSUFBZ2NZSUNDQ05HU283U29BQQpBUUlFQ0JBZ1FLRDVBZ0pJODhkUUR3Z1FJRUNBQUFF
Q0JBZzBSa0FBYWN4UTJWRUNCQWdRSUVDQUFBRUN6UmNRUUpvL2hucEFnQUFCCkFnUUlFQ0JBb0RF
Q0FraGpoc3FPRWlCQWdBQUJBZ1FJRUdpK2dBRFMvREhVQXdJRUNCQWdRSUFBQVFLTkVSQkFHak5V
ZHBRQUFRSUUKQ0JBZ1FJQkE4d1VFa09hUG9SNFFJRUNBQUFFQ0JBZ1FhSXlBQU5LWW9iS2pCQWdR
SUVDQUFBRUNCSm92SUlBMGZ3ejFnQUFCQWdRSQpFQ0JBZ0VCakJBU1F4Z3lWSFNWQWdBQUJBZ1FJ
RUNEUWZBRUJwUGxqcUFjRUNCQWdRSUFBQVFJRUdpTWdnRFJtcU93b0FRSUVDQkFnClFJQUFnZVlM
Q0NETkgwTTlJRUNBQUFFQ0JBZ1FJTkFZQVFHa01VTmxSd2tRSUVDQUFBRUNCQWcwWDBBQWFmNFk2
Z0VCQWdRSUVDQkEKZ0FDQnhnZ0lJSTBaS2p0S2dBQUJBZ1FJRUNCQW9Qa0NBa2p6eDFBUENCQWdR
SUFBQVFJRUNEUkdRQUJwekZEWlVRSUVDQkFnUUlBQQpBUUxORnhCQW1qK0dla0NBQUFFQ0JBZ1FJ
RUNnTVFJQ1NHT0d5bzRTSUVDQUFBRUNCQWdRYUw2QUFOTDhNZFFEQWdRSUVDQkFnQUFCCkFvMFJF
RUFhTTFSMmxBQUJBZ1FJRUNCQWdFRHpCUVNRNW8raEhoQWdRSUFBQVFJRUNCQm9qSUFBMHBpaHNx
TUVDQkFnUUlBQUFRSUUKbWk4Z2dEUi9EUFdBQUFFQ0JBZ1FJRUNBUUdNRUJKREdESlVkSlVDQUFB
RUNCQWdRSU5COEFRR2srV09vQndRSUVDQkFnQUFCQWdRYQpJeUNBTkdhbzdDZ0JBZ1FJRUNCQWdB
Q0I1Z3NJSU0wZlF6MGdRSUFBQVFJRUNCQWcwQmdCQWFReFEyVkhDUkFnUUlBQUFRSUVDRFJmClFB
QnAvaGpxQVFFQ0JBZ1FJRUNBQUlIR0NBZ2dqUmtxTzBxQUFBRUNCQWdRSUVDZytRSUNTUFBIVUE4
SUVDQkFnQUFCQWdRSU5FWkEKQUduTVVObFJBZ1FJRUNCQWdBQUJBczBYRUVDYVA0WjZRSUFBQVFJ
RUNCQWdRS0F4QWdKSVk0YktqaElnUUlBQUFRSUVDQkJvdm9BQQowdnd4MUFNQ0JBZ1FJRUNBQUFF
Q2pSRVFRQm96VkhhVUFBRUNCQWdRSUVDQVFQTUZCSkRtajZFZUVDQkFnQUFCQWdRSUVHaU1nQURT
Cm1LR3lvd1FJRUNCQWdBQUJBZ1NhTHlDQU5IOE05WUFBQVFJRUNCQWdRSUJBWXdRRWtNWU1sUjBs
UUlBQUFRSUVDQkFnMEh3QkFhVDUKWTZnSEJBZ1FJRUNBQUFFQ0JCb2pJSUEwWnFqc0tBRUNCQWdR
SUVDQUFJSG1Dd2dnelI5RFBTQkFnQUFCQWdRSUVDRFFHQUVCcERGRApaVWNKRUNCQWdBQUJBZ1FJ
TkY5QUFHbitHT29CQVFJRUNCQWdRSUFBZ2NZSUNDQ05HU283U29BQUFRSUVDQkFnUUtENUFnSkk4
OGRRCkR3Z1FJRUNBQUFFQ0JBZzBSa0FBYWN4UTJWRUNCQWdRSUVDQUFBRUN6UmNRUUpvL2hucEFn
QUFCQWdRSUVDQkFvREVDQWtoamhzcU8KRWlCQWdBQUJBZ1FJRUdpK2dBRFMvREhVQXdJRUNCQWdR
SUFBQVFLTkVSQkFHak5VZHBRQUFRSUVDQkFnUUlCQTh3VUVrT2FQb1I0UQpJRUNBQUFFQ0JBZ1Fh
SXlBQU5LWW9iS2pCQWdRSUVDQUFBRUNCSm92SUlBMGZ3ejFnQUFCQWdRSUVDQkFnRUJqQkFTUXhn
eVZIU1ZBCmdBQUJBZ1FJRUNEUWZBRUJwUGxqcUFjRUNCQWdRSUFBQVFJRUdpTWdnRFJtcU93b0FR
SUVDQkFnUUlBQWdlWUxDQ0ROSDBNOUlFQ0EKQUFFQ0JBZ1FJTkFZQVFHa01VTmxSd2tRSUVDQUFB
RUNCQWcwWDBBQWFmNFk2Z0VCQWdRSUVDQkFnQUNCeGdnSUlJMFpLanRLZ0FBQgpBZ1FJRUNCQW9Q
a0NBa2p6eDFBUENCQWdRSUFBQVFJRUNEUkdRQUJwekZEWlVRSUVDQkFnUUlBQUFRTE5GeEJBbWor
R2VrQ0FBQUVDCkJBZ1FJRUNnTVFJQ1NHT0d5bzRTSUVDQUFBRUNCQWdRYUw2QUFOTDhNZFFEQWdR
SUVDQkFnQUFCQW8wUkVFQWFNMVIybEFBQkFnUUkKRUNCQWdFRHpCUVNRNW8raEhoQWdRSUFBQVFJ
RUNCQm9qSUFBMHBpaHNxTUVDQkFnUUlBQUFRSUVtaThnZ0RSL0RQV0FBQUVDQkFnUQpJRUNBUUdN
RUJKREdESlVkSlVDQUFBRUNCQWdRSU5COEFRR2srV09vQndRSUVDQkFnQUFCQWdRYUl5Q0FOR2Fv
N0NnQkFnUUlFQ0JBCmdBQ0I1Z3NJSU0wZlF6MGdRSUFBQVFJRUNCQWcwQmdCQWFReFEyVkhDUkFn
UUlBQUFRSUVDRFJmUUFCcC9oanFBUUVDQkFnUUlFQ0EKQUlIR0NBZ2dqUmtxTzBxQUFBRUNCQWdR
SUVDZytRSUNTUFBIVUE4SUVDQkFnQUFCQWdRSU5FWkFBR25NVU5sUkFnUUlFQ0JBZ0FBQgpBczBY
RUVDYVA0WjZRSUFBQVFJRUNCQWdRS0F4QWdKSVk0YktqaElnUUlBQUFRSUVDQkJvdm9BQTB2d3gx
QU1DQkFnUUlFQ0FBQUVDCmpSRVFRQm96VkhhVUFBRUNCQWdRSUVDQVFQTUZCSkRtajZFZUVDQkFn
QUFCQWdRSUVHaU1nQURTbUtHeW93UUlFQ0JBZ0FBQkFnU2EKTHlDQU5IOE05WUFBQVFJRUNCQWdR
SUJBWXdRRWtNWU1sUjBsUUlBQUFRSUVDQkFnMEh3QkFhVDVZNmdIQkFnUUlFQ0FBQUVDQkJvagpJ
SUEwWnFqc0tBRUNCQWdRSUVDQUFJSG1Dd2dnelI5RFBTQkFnQUFCQWdRSUVDRFFHQUVCcERGRFpV
Y0pFQ0JBZ0FBQkFnUUlORjlnCnlBSGtvNDgrU3A5ODhrbGxQYi85OXRzcnEwdEZCQWdRSUVDQUFB
RUNCQWlNM3dLVERHWDNkdDk5OS9TclgvMHF6VGpqakdtSEhYWkkKZSsrOWQ3SDV4UmRmbkNhYmJM
SzAvUExMcDhjZWV5eE5Na2xldGUrKysyNDY2cWlqMHBsbm5wbEdqUnFWcHBoaWlyVEpKcHVrU1Nl
ZApkQ2k3TmV5eTU1OS9mcHAvL3ZuVFlvc3ROdXk2aGxyQml5KyttSDd6bTkra2VOMWdndzNTU2l1
dE5OUXFsQ2RBZ0FBQkFnUUlFQ0RRCkdJRzhwTkRwenBOUFBwbU9PZWFZdFBycXF4Y0I1TWdqajB5
cnJycHFXbVdWVmRLSko1Nlk0aUQraEJOT1NHZWNjVWE2OXRwcnN3Rm0KbTIyMm91eW1tMjZhWnA1
NTV2VHd3dytuZ3c4K09IdjdLZ3JlZmZmZGFjb3BwL3hjQXNnaGh4eVM5dGhqanpUVFRET2xQZmZj
TTgwNwo3N3hwampubXFLSmI2aUJBZ0FBQkFnUUlFQ0F3M2dsa0I1QUlGWWNmZm5qYWVlZWRpMDVF
VU5odnYvMktBSEw2NmFlbnM4OCtPOTF5Cnl5M0ZXWkRwcHBzdXJiZmVlbW5PT2Vjc3pvWTg5OXh6
YWZUbzBlbWhoeDVLdSsyMld4b3hZa1NLUzduZWZQUE5OTkZFLzdnS2JPcXAKcHk3T2ZLeTU1cHBG
L1gvKzg1L1RBUWNja0JaWlpKR2kzZkZPcm9JZGlqTkFjZFpuOXRsbkwycjcvdmUvbnk2NDRJTGk3
RklGMWF1QwpBQUVDQkFnUUlFQ0F3SGdua0IxQVpwbGxsalRyckxOMk83RFFRZ3VsTDMvNXk4WG5x
YWFhS20yeHhSYnA4Y2NmVHhFa3pqMzMzRzY1CjhzMTN2L3ZkOU1RVFQ2VHp6anV2Q0NHeC9zSUxM
MHl2di81NmV1Q0JCNHBBRWdma2wxNTZhZHAxMTEzVFN5KzlWSVNZYmJiWnBxeGkKZ25zTnQzZmVl
U2U5OWRaYmFacHBwa25ubkhOTzJuenp6U2U0ZnVvUUFRSUVDQkFnUUlBQWdWSWdPNERFbVltNFJH
anR0ZGZ1bnJXSQpFUEx5eXk4WGx3OUZoUkZBRGozMDBMTHVUNzNHNVVXOTUzZkVXWkk0TS9LSFAv
d2h4V1QwaFJkZU9DMnh4QkpwNjYyM1Rnc3V1T0NuCnR2OHNWOXg4ODgzcHZmZmVHN0NKa1NOSHB1
bW5uMzdBTWtQOU1zNEloZG5iYjcrZDFsaGpqVFRQUFBNTXRRcmxDUkFnUUlBQUFRSUUKQ0RSR0lE
dUFSSEJZZWVXVjA3cnJycHZpYkViTTNZaXpGNWRkZGxtYWUrNjUwOU5QUDUxdXVPR0c0dktxZ1hy
L3dnc3ZGQWY2TWVjaQpscWd6L3NXWmordXV1NjZZaFA3YWE2K2wrKysvUHkyNjZLSURWVlhaZDNI
Z2Y5Tk5ONlZISDMxMHdEcFhXR0dGQWI4Zmx5OGpsTVU4CkVBc0JBZ1FJRUNCQWdBQ0JOZ2lNNk9r
c09SMjk1SkpMMGpycnJOTnYwYmp6MWI3NzdsdUVrRk5PT2FXWS85RzdjRFFUZFJ4MjJHSHAKeGh0
djdQMVY4VDd1QkJXWEkvM2dCejlJOTl4elQ5cHBwNTNTWG52dFZjd3BpY3UvTEFRSUVDQkFnQUFC
QWdRSU5GOGcrd3hJUFBzago3azRWbDJCTlBQSEV4WnlOanovK09IMzQ0WWZGNS9ubW02KzRpOVgr
KysrZjVwcHJyclRVVWtzVklTVG1PYnp5eWl2cHdRY2ZUTTgvCi8zeWZkOGlLdVI5Ly9PTWYwNnV2
dmxyVUZaUFhvNzI0TTlTeHh4NWJURjZQdHV1K0xLdjV3NnNIQkFnUUlFQ0FBQUVDQk1Zdmdld3oK
SUJFZTRpeEhoSUxCbHJnczY0Z2pqaWd1bzRyblc4VGxXdkdNa0ovLy9PZHB5U1dYSEdQenVPdlQw
VWNmWGRTNy92cnJwNDAzM2pqdApzODgreFFUM2JiZmR0aWg3MFVVWHBSMTMzREhkZWVlZFdlMlAw
WUFQQkFnUUlFQ0FBQUVDQkFpTU53TFpBV1JjOXpqT2tzUVprNzZXCnVGUXJuaHNTenhDSlo0eE1Q
dm5reFcxOTR5R0hNU2VqOTNaeE85NS8vL2QvTDBKTVgzVlpSNEFBQVFJRUNCQWdRSURBK0MrUWZR
blcKdUhhbGQ0am9YY2Q5OTkxWFBJRHZrVWNlS1o2Rk1jTU1NeFIzeElvZ0VzOFVHWHU3dU9YdnZm
ZmUyN3VLZnQ5LzhNRUh4YVQ0Zmd2OAozeGZSWmp6VjNVS0FBQUVDQkFnUUlFQ0FRRDBDbjNrQTZh
OGJjZFlqSnJWUE8rMjBSWkdZYUg3YWFhY1Z6eENKVy9HT3ZjVGxWL0dnCnZwd2xMaGVMdVNnRExW
RW1MZ3M3OE1BREJ5cm1Pd0lFQ0JBZ1FJQUFBUUlFS2hUNDNBSkluTkdJdTE3RjJZcFRUejIxdUxR
cUpxelAKTWNjY24rcGVCSk9ZU3hLM0FNNVo0cmJBVWVkQVN6elpQVzc3YXlGQWdBQUJBZ1FJRUNC
QW9ENkJpZXByYXN5V050cG9vM1Q2NmFjWApUMWNmTldwVXV2NzY2NHVKNWxkZWVlVVlCZU1CZ1RF
bjVLaWpqa29ycnJqaUdOLzVRSUFBQVFJRUNCQWdRSUJBc3dRK3R6TWdVMHd4ClJmRmNrUGZmZno4
dHQ5eHloZHBCQngyVTNucnJyZUo5blBFNC9QREQwMVZYWFpWT1B2bmt0TUVHR3pSTDF0NFNJRUNB
QUFFQ0JBZ1EKSVBBcGdjOHRnTVNlTExiWVltUHNVTnptOTczMzNpdm1nc1RUMEwveGpXK2svL3F2
L3hyMDZlcGpWSkw1SVNhNVR6YlpaSm1sRlNOQQpnQUFCQWdRSUVDQkFvQXFCei93MnZGWHNwRG9J
RUNCQWdBQUJBZ1FJRUpnd0JENjNPU0FUQnA5ZUVDQkFnQUFCQWdRSUVDQXdGQUVCClpDaGF5aEln
UUlBQUFRSUVDQkFnTUN3QkFXUllmRFltUUlBQUFRSUVDQkFnUUdBb0FnTElVTFNVSlVDQUFBRUNC
QWdRSUVCZ1dBSUMKeUxENGJFeUFBQUVDQkFnUUlFQ0F3RkFFQkpDaGFDbExnQUFCQWdRSUVDQkFn
TUN3QkFTUVlmSFptQUFCQWdRSUVDQkFnQUNCb1FnSQpJRVBSVXBZQUFRSUVDQkFnUUlBQWdXRUpD
Q0RENHJNeEFRSUVDQkFnUUlBQUFRSkRFUkJBaHFLbExBRUNCQWdRSUVDQUFBRUN3eElRClFJYkZa
Mk1DQkFnUUlFQ0FBQUVDQklZaUlJQU1SVXRaQWdRSUVDQkFnQUFCQWdTR0pTQ0FESXZQeGdRSUVD
QkFnQUFCQWdRSURFVkEKQUJtS2xySUVDQkFnUUlBQUFRSUVDQXhMUUFBWkZwK05DUkFnUUlBQUFR
SUVDQkFZaW9BQU1oUXRaUWtRSUVDQUFBRUNCQWdRR0phQQpBRElzUGhzVElFQ0FBQUVDQkFnUUlE
QVVBUUZrS0ZyS0VpQkFnQUFCQWdRSUVDQXdMQUVCWkZoOE5pWkFnQUFCQWdRSUVDQkFZQ2dDCkFz
aFF0SlFsUUlBQUFRSUVDQkFnUUdCWUFnTElzUGhzVElBQUFRSUVDQkFnUUlEQVVBUW1HYXp3Q1Nl
Y01GZ1IzeE1nUUlBQUFRSUUKQ0JBZ1FDQnR1T0dHYVlZWlpoaFFZdEFBRWx0SFJSWUNCQWdRSUVD
QUFBRUNCQWdNVjJCRVQyY1piaVcySjBDQUFBRUNCQWdRSUVDQQpRSTZBT1NBNVNzb1FJRUNBQUFF
Q0JBZ1FJRkNKZ0FCU0NhTktDQkFnUUlBQUFRSUVDQkRJRVJCQWNwU1VJVUNBQUFFQ0JBZ1FJRUNn
CkVnRUJwQkpHbFJBZ1FJQUFBUUlFQ0JBZ2tDTWdnT1FvS1VPQUFBRUNCQWdRSUVDQVFDVUNBa2ds
akNvaFFJQUFBUUlFQ0JBZ1FDQkgKUUFESlVWS0dBQUVDQkFnUUlFQ0FBSUZLQkFTUVNoaFZRb0FB
QVFJRUNCQWdRSUJBam9BQWtxT2tEQUVDQkFnUUlFQ0FBQUVDbFFnSQpJSlV3cW9RQUFRSUVDQkFn
UUlBQWdSd0JBU1JIU1JrQ0JBZ1FJRUNBQUFFQ0JDb1JFRUFxWVZRSkFRSUVDQkFnUUlBQUFRSTVB
Z0pJCmpwSXlCQWdRSUVDQUFBRUNCQWhVSWlDQVZNS29FZ0lFQ0JBZ1FJQUFBUUlFY2dRRWtCd2xa
UWdRSUVDQUFBRUNCQWdRcUVSQUFLbUUKVVNVRUNCQWdRSUFBQVFJRUNPUUlDQ0E1U3NvUUlFQ0FB
QUVDQkFnUUlGQ0pnQUJTQ2FOS0NCQWdRSUFBQVFJRUNCRElFUkJBY3BTVQpJVUNBQUFFQ0JBZ1FJ
RUNnRWdFQnBCSkdsUkFnUUlBQUFRSUVDQkFna0NNZ2dPUW9LVU9BQUFFQ0JBZ1FJRUNBUUNVQ0Fr
Z2xqQ29oClFJQUFBUUlFQ0JBZ1FDQkhRQURKVVZLR0FBRUNCQWdRSUVDQUFJRktCQ1laYWkwMzNu
aGpPdm5razlOMDAwMVgvSHZ6elRmVGw3NzAKcGJUODhzdW55U2FiTEMyNzdMSkRyYktXOG84Ly9u
ZzY1cGhqMG4zMzNaYzIzSEREdFAzMjI5ZlNya2IrSVRCNjlPaDA0b2tucGllZgpmREx0di8vK2Fk
VlZWMFZEZ0FBQkFnUUlFQ0RRUW9FaEJaQ2RkOTQ1M1hISEhlbVNTeTVKMDA4L2ZjSDE4UTZsMVZR
QUFDQUFTVVJCClZNY2ZwOTEzM3ozdHR0dHV4VUg5K0JwQTVwOS8vclRUVGp1bEJSWllJSzIyMm1x
ZnkxQy85dHByNmQxMzMwMXp6am5uWjlwK1hlME0KMUlteDkySGxsVmRPc1c2OTlkWkw3Ny8vL2tD
YitvNEFBUUlFQ0JBZ1FHQUNGc2krQk92VVUwOU41NTkvZnJyeXlpdTc0U05jSnA1NAo0dlRmLy8z
ZmFiUE5OaHZ2bVdhYWFhWmlINmVZWW9yUFpWOS85S01mcGF1dnZ2b3piN3V1ZGdicVNGLzdVSWJX
T0ZObUlVQ0FBQUVDCkJBZ1FhS2RBVmdCNTdMSEhpck1iMjJ5elRacDY2cW43bFByaEQzL1k1L3J4
YWVXSUVTT0szWmxra2lHZCtLbWtDeSs5OUZJUjRDYWQKZE5KSzZ1dXZrcnJhNmEvOVdOL2ZQcFQr
RTAyVTlXYzNVQk8rSTBDQUFBRUNCQWdRYUtoQTFwRjQvR3IvM252dnBRMDIyS0RmYmk2OQo5TkxG
SlRhOUM4VDhrRU1QUFRUTlBQUE1LUTQrWXg3R043LzV6ZlNkNzN5bktCYnpNZmJhYTY5aVhzQmho
eDFXckx2aGhodUtTN3pXClhIUE5kTWdoaHhUdEhuWFVVY1cyOTk5L2Y5cGxsMTI2WjFzdXUreXlk
TVFSUjZUbm4zOCtYWHp4eGVtQ0N5NUlIMzc0WVhyNDRZZUwKdXFMT0wzN3hpNzEzcVhoZkhnaVhY
N3o5OXR2cHdBTVBURk5PT1dXS3N5TnhtZFRtbTIrZUZseHd3YUxJNVpkZm5rNDY2YVQwd1FjZgpw
QmxubkRIOTlLYy9UYlBNTWt2YWI3LzkwbE5QUFZWc3MrKysrNlpGRmxta3JIS00xMGNmZmJTbzc2
MjMzaXBDeUYvLyt0ZTB5aXFyCmRDOEZxNnI5Q0RleDMvMjFNOFpPZFQ2TWk5ODExMXlUYnJycHBx
TC96ejc3YkhGSjNrRUhIWlNXV21xcG92ckIraHFGd3YrY2M4NUoKRjExMFVYcnh4UmZUSjU5OGt2
YmVlKy9DcEtqRWZ3UUlFQ0JBZ0FBQkFoT3VRRS9Hc3UyMjIvWjBCSG82QjdZWnBmOVJwSE85Zjgv
YwpjOC9kYzlwcHAzVzNlZm5sbDNzNkIvVTluUVAzN3JwYmI3MjFxTHR6eVU1UDUvS3VZbjNuakV0
UEp3ejBISHZzc1QwLys5blBldDU0CjQ0MWlmWHp1L0hyZTg4Z2pqM1MzajNXeGJ4dHR0RkZQNThD
K3UzNnJyYllxMnZyNzMvL2VYUmYxUk5ramp6eXl1KzcxMTEvdldXaWgKaFhxT1AvNzQ3cm9MTDd5
d3B6Tm5wQ2Y2VUM1WFhYVlZUK2ZTb1o3T1dhQnlWYy92Zi8vN25oVldXS0VuK2pYWTBnbFBSZHUv
Kzkzdgp4aWhhZGZ2OXRUTkdvNzArRE1YdjNIUFA3ZW1FaDU1TzJPdldzT3V1dS9iTU8rKzgzYy94
cHI5OTZOekFvRENJYlRvM011Z3B4NllUCjNucW1tbXFxbm1lZWVXYU1lbndnUUlBQUFRSUVDQkNZ
OEFTeXJvVzU4ODQ3MHhlKzhJWGlYMjRVNndTSDRxNVltMjY2YVhlVE9Cc1IKWnpEaUYvT0hIbnFv
V0I5bkVtS0pzdzVyckxGRzhUNG1qQys1NUpJcDVoSEVwT1ZwcDUyMldML3V1dXNXdjViZmZ2dnR4
ZWY0YjlaWgpaeTNlTDdQTU1xbHpJTnhkSDl2R3IvRng1bUtnNWVDREQwNXhTZFoyMjIzWExSYnR4
TnlXUGZmY3M3c3V6dHpFMlp6T2dYUHhxLzlICkgzMlVPa0dsT0l2UTExbVc3b2FEdlBtODJ4K0tY
NXl4V202NTVkTGFhNi9kN2RWWHYvclY5TVFUVDZST3VPdXVHK3pOYzg4OWw3NzMKdmU4VmZ4OVJO
djVHWXZ3N1lYU3dUWDFQZ0FBQkFnUUlFQ0RRY0lHc0FCS1hYOFVCWWx5Q2xMdWNkZFpaeGExNXh5
NC9jdVRJRkFmdgpsMTU2YWZGVmVUblVpaXV1T0ViUk9MQ04wQlBCb2x5bW1XYWE0bTNjVGFsY3l1
M0w4Rkt1WDJ5eHhWTE1OYmpsbGx2S1ZYMitubkhHCkdla3JYL2xLY2RsV1hMcFYvb3ZMeHNZK0lJ
N3cxRG5qa2JiY2NzdmlrcTBmLy9qSFkwekk3N09CUVZaKzN1MFB4Uzh1TS92VG4vNVUKdUpiZEt1
ZlRkTTVtbEtzR2ZTMHZ3U3NMempERERNWGJ6dG1nY3BWWEFnUUlFQ0JBZ0FDQkNWUWdhdzdJd2dz
dm5HTCtSY3gzaU52WQpEcmE4K3VxcjZZVVhYdWllbmVoZGZ2YlpaeTgrbHZNMHl1L0d2ak5WbklF
b0QwekxNckV1bHM2SnFISlY5N1dzdDF3UjRTUHV1dlQwCjAwK1hxejcxR25Ndi92YTN2NldZdjNM
dnZmZU84WDJFalFoQXZaZW9NODZvTExIRUV1bUJCeDRvbm1mUisvdWh2dis4MisrOXY3bCsKTVc2
Ly92V3ZDNXNZbjd2dnZydW9aaWlUNi90cUt5cUpXenBiQ0JBZ1FJQUFBUUlFSm15QnJBQ3k2S0tM
RnBPRzQ0ekFRQUVrTHEwcApiN1VhYkhIV1pPd2x6bjdFTW5hNEdMdmNVRCtYOWZiZUxwNDNVVjdp
MVh0OStUNENSZnlMeTVEaTRZUTVTMXhxRkdkQk92TWhpc25ZCks2MjBVczVtZlpiNXZOdnZ2Vk01
ZmdjY2NFRHF6SlVwTGp0YmZQSEZpODFQT09HRTFKbm5VMXl5MXJ1K2dkNlhaMTBHS3VNN0FnUUkK
RUNCQWdBQ0JDVk1nNnhLc0hYYllvWmlIOGN0Zi9ySmZoYmo3Vk55QktWN2pUbEZ4VU4vWDJZZk9S
T09panY3dUdOVnZBNE44RVhkawo2cjNFbmFBaUFNV2xYUDB0blluUHhieVJtT09TczhRWmk2T1BQ
anBkY2NVVnhYeVZtTWZ3emp2djVHeGEzUGxwN0lLZlJmdmplbkEvCm1GOVl4dmpIODE3SzhCSDll
ZVdWVjRwdWxXZW40c080N2tOUmtmOElFQ0JBZ0FBQkFnUW1hSUdzQURMYmJMTVZseHZkZGRkZHhV
VHMKdmtUaWxyUnhiWDg1WVR5ZU9uN3R0ZGQrYW5KeTNDcTNjM2VzMUxsclZWRk5lZGxOK1ZyV0ha
L0hYbGYrU2ovMit0Z21idW5hZTRsYgp6TVlENzdiZWV1dnU2bks3OGpXKzZOeVJxWmhVSGc5WTdM
M0V2SmVZODFBdWNhdll6dDNBaXRzR3g3eUhVYU5HRlplWnhmWTVTM21KCjJkanphS3B1djc5MkJ0
dkh3ZnppVXJXNHJYSTU1eVBxaTB2aHlyazh2ZXZ2Yng5SzkvSzEzS2I4WEw2VzY3MFNJRUNBQUFF
Q0JBaE0KZUFKWkFTUzZIWE1pNG5LYnVHdlRGbHRzVVZ5R0V3ZWw4VXlJZUFoaDNBbXE5OE1JZi9L
VG42UzExbHFyT0dndkQ3cGpRdmlaWjU1WgpYTElUejl5SUE5Zzc3cmlqVUkyNUJPVUJhUHphSG5N
czRoa1JNZStrWE1xeUVZVEtNRkorZDg4OTl4VDdGRUhod1FjZlRIRVhydU9PCk95N05PZWVjWlpF
eDJvb3pOYkZzdi8zMlJYOWlZdm5aWjUrZFl2N0s5ZGRmbi9iWVk0K2l6MUVtenVSRStJaG5sSlR6
RithWVk0N2kKT1I1aEVzOGI2ZXR5czlpMlhHSS80a25zOFJ5Tk9HdFF6b0dwdXYzKzJpbjNvNy9Y
d2Z6aW1TakxMcnRzNnR4R09OMTIyMjBwN29nVgp6MFA1K3RlL1hsUVo0MVV1ZmUxRGpFdDVwaWxl
NDNNc3ZmOEcraHJYc2s2dkJBZ1FJRUNBQUFFQ0U0YkFpTTRCNEtkbmRBL1F0d2dkCmNSQWRZU0Rt
TU1RbFR0LzYxcmZTWEhQTjFlZFc4UkMvT0xDY2ZQTEppNG5MNjYrL2Z2ZmhnREh4KythYmIrNXVG
d2U1cTYrK2V2cnQKYjM4N3hnRjl6TStJZy9icnJydXVXellPY3RkWlo1MWlia3A4SHcvM2k0UDZ2
L3psTDJtNjZhWXJIbmpZZWI1SHQzeDgzM21XUi9kegp1WDI1SXVxTzRCRy84c2RCOWNpUkkxTjUx
NjBJVGVVZG11SnMwTGUvL2UwMGV2VG9ZbUordVgxTVRJKzVJUU10Y2V2aG1DOFI5VVk0CmkyM0tw
Y3IyQjJxbmJLOThqUWNDNXZoRitiZ0VMY1l6Z3VSODg4MVgzRW8zZ2tUbnVTb3BMaWVMWUZyZTFu
ZnNmWWlBRmlHblhPSTIKeThzdnYzeHhPK1p3TDVkNTVwa254VU1vTFFRSUVDQkFnQUFCQWhPbXdK
QUR5UGpHMFBzQXV2ZHpRTWEzL1J4Zjk0ZmYrRG95OW9zQQpBUUlFQ0JBZ01HRUtaRitDTmI1MnY3
d1VxN3lrYW56ZHovRjF2L2lOcnlOanZ3Z1FJRUNBQUFFQ0U2WkFvd05JM0ZFckxnbUtKZVp2CnZQ
VFNTeFBtS0gxR3ZlTDNHY0dxbGdBQkFnUUlFQ0JBb0YrQlJsK0NGWE5JNHRrajVSTHpFZ1o2VGts
Wnp1cy9CUGo1U3lCQWdBQUIKQWdRSUVLaGJvTkVCcEc0czdSRWdRSUFBQVFJRUNCQWdNRHlCUmwr
Q05ieXUyNW9BQVFJRUNCQWdRSUFBZ2JvRkJKQzZ4YlZIZ0FBQgpBZ1FJRUNCQW9NVUNBa2lMQjEv
WENSQWdRSUFBQVFJRUNOUXRJSURVTGE0OUFnUUlFQ0JBZ0FBQkFpMFdFRUJhUFBpNlRvQUFBUUlF
CkNCQWdRS0J1QVFHa2JuSHRFU0JBZ0FBQkFnUUlFR2l4Z0FEUzRzSFhkUUlFQ0JBZ1FJQUFBUUox
Q3dnZ2RZdHJqd0FCQWdRSUVDQkEKZ0VDTEJRU1FGZysrcmhNZ1FJQUFBUUlFQ0JDb1cwQUFxVnRj
ZXdRSUVDQkFnQUFCQWdSYUxDQ0F0SGp3ZFowQUFRSUVDQkFnUUlCQQozUUlDU04zaTJpTkFnQUFC
QWdRSUVDRFFZZ0VCcE1XRHIrc0VDQkFnUUlBQUFRSUU2aFlRUU9vVzF4NEJBZ1FJRUNCQWdBQ0JG
Z3NJCklDMGVmRjBuUUlBQUFRSUVDQkFnVUxlQUFGSzN1UFlJRUNCQWdBQUJBZ1FJdEZoQUFHbng0
T3M2QVFJRUNCQWdRSUFBZ2JvRkJKQzYKeGJWSGdBQUJBZ1FJRUNCQW9NVUNBa2lMQjEvWENSQWdR
SUFBQVFJRUNOUXRJSURVTGE0OUFnUUlFQ0JBZ0FBQkFpMFdFRUJhUFBpNgpUb0FBQVFJRUNCQWdR
S0J1QVFHa2JuSHRFU0JBZ0FBQkFnUUlFR2l4Z0FEUzRzSFhkUUlFQ0JBZ1FJQUFBUUoxQ3dnZ2RZ
dHJqd0FCCkFnUUlFQ0JBZ0VDTEJRU1FGZysrcmhNZ1FJQUFBUUlFQ0JDb1cwQUFxVnRjZXdRSUVD
QkFnQUFCQWdSYUxDQ0F0SGp3ZFowQUFRSUUKQ0JBZ1FJQkEzUUlDU04zaTJpTkFnQUFCQWdRSUVD
RFFZZ0VCcE1XRHIrc0VDQkFnUUlBQUFRSUU2aFlRUU9vVzF4NEJBZ1FJRUNCQQpnQUNCRmdzSUlD
MGVmRjBuUUlBQUFRSUVDQkFnVUxlQUFGSzN1UFlJRUNCQWdBQUJBZ1FJdEZoQUFHbng0T3M2QVFJ
RUNCQWdRSUFBCmdib0ZCSkM2eGJWSGdBQUJBZ1FJRUNCQW9NVUNBa2lMQjEvWENSQWdRSUFBQVFJ
RUNOUXRJSURVTGE0OUFnUUlFQ0JBZ0FBQkFpMFcKRUVCYVBQaTZUb0FBQVFJRUNCQWdRS0J1QVFH
a2JuSHRFU0JBZ0FBQkFnUUlFR2l4Z0FEUzRzSFhkUUlFQ0JBZ1FJQUFBUUoxQ3dnZwpkWXRyandB
QkFnUUlFQ0JBZ0VDTEJRU1FGZysrcmhNZ1FJQUFBUUlFQ0JDb1cwQUFxVnRjZXdRSUVDQkFnQUFC
QWdSYUxDQ0F0SGp3CmRaMEFBUUlFQ0JBZ1FJQkEzUUlDU04zaTJpTkFnQUFCQWdRSUVDRFFZZ0VC
cE1XRHIrc0VDQkFnUUlBQUFRSUU2aFlRUU9vVzF4NEIKQWdRSUVDQkFnQUNCRmdzSUlDMGVmRjBu
UUlBQUFRSUVDQkFnVUxlQUFGSzN1UFlJRUNCQWdBQUJBZ1FJdEZoQUFHbng0T3M2QVFJRQpDQkFn
UUlBQWdib0ZCSkM2eGJWSGdBQUJBZ1FJRUNCQW9NVUNBa2lMQjEvWENSQWdRSUFBQVFJRUNOUXRJ
SURVTGE0OUFnUUlFQ0JBCmdBQUJBaTBXRUVCYVBQaTZUb0FBQVFJRUNCQWdRS0J1QVFHa2JuSHRF
U0JBZ0FBQkFnUUlFR2l4Z0FEUzRzSFhkUUlFQ0JBZ1FJQUEKQVFKMUN3Z2dkWXRyandBQkFnUUlF
Q0JBZ0VDTEJRU1FGZysrcmhNZ1FJQUFBUUlFQ0JDb1cwQUFxVnRjZXdRSUVDQkFnQUFCQWdSYQpM
Q0NBdEhqd2RaMEFBUUlFQ0JBZ1FJQkEzUUlDU04zaTJpTkFnQUFCQWdRSUVDRFFZZ0VCcE1XRHIr
c0VDQkFnUUlBQUFRSUU2aFlRClFPb1cxeDRCQWdRSUVDQkFnQUNCRmdzSUlDMGVmRjBuUUlBQUFR
SUVDQkFnVUxlQUFGSzN1UFlJRUNCQWdBQUJBZ1FJdEZoQUFHbngKNE9zNkFRSUVDQkFnUUlBQWdi
b0ZCSkM2eGJWSGdBQUJBZ1FJRUNCQW9NVUNBa2lMQjEvWENSQWdRSUFBQVFJRUNOUXRJSURVTGE0
OQpBZ1FJRUNCQWdBQUJBaTBXRUVCYVBQaTZUb0FBQVFJRUNCQWdRS0J1QVFHa2JuSHRFU0JBZ0FB
QkFnUUlFR2l4Z0FEUzRzSFhkUUlFCkNCQWdRSUFBQVFKMUN3Z2dkWXRyandBQkFnUUlFQ0JBZ0VD
TEJRU1FGZysrcmhNZ1FJQUFBUUlFQ0JDb1cwQUFxVnRjZXdRSUVDQkEKZ0FBQkFnUmFMQ0NBdEhq
d2RaMEFBUUlFQ0JBZ1FJQkEzUUlDU04zaTJpTkFnQUFCQWdRSUVDRFFZZ0VCcE1XRHIrc0VDQkFn
UUlBQQpBUUlFNmhZUVFPb1cxeDRCQWdRSUVDQkFnQUNCRmdzSUlDMGVmRjBuUUlBQUFRSUVDQkFn
VUxlQUFGSzN1UFlJRUNCQWdBQUJBZ1FJCnRGaEFBR254NE9zNkFRSUVDQkFnUUlBQWdib0ZCSkM2
eGJWSGdBQUJBZ1FJRUNCQW9NVUNBa2lMQjEvWENSQWdRSUFBQVFJRUNOUXQKSUlEVUxhNDlBZ1FJ
RUNCQWdBQUJBaTBXRUVCYVBQaTZUb0FBQVFJRUNCQWdRS0J1QVFHa2JuSHRFU0JBZ0FBQkFnUUlF
R2l4Z0FEUwo0c0hYZFFJRUNCQWdRSUFBQVFKMUN3Z2dkWXRyandBQkFnUUlFQ0JBZ0VDTEJRU1FG
ZysrcmhNZ1FJQUFBUUlFQ0JDb1cwQUFxVnRjCmV3UUlFQ0JBZ0FBQkFnUmFMQ0NBdEhqd2RaMEFB
UUlFQ0JBZ1FJQkEzUUlDU04zaTJpTkFnQUFCQWdRSUVDRFFZZ0VCcE1XRHIrc0UKQ0JBZ1FJQUFB
UUlFNmhZUVFPb1cxeDRCQWdRSUVDQkFnQUNCRmdzSUlDMGVmRjBuUUlBQUFRSUVDQkFnVUxlQUFG
SzN1UFlJRUNCQQpnQUFCQWdRSXRGaEFBR254NE9zNkFRSUVDQkFnUUlBQWdib0ZCSkM2eGJWSGdB
QUJBZ1FJRUNCQW9NVUNBa2lMQjEvWENSQWdRSUFBCkFRSUVDTlF0SUlEVUxhNDlBZ1FJRUNCQWdB
QUJBaTBXRUVCYVBQaTZUb0FBQVFJRUNCQWdRS0J1QVFHa2JuSHRFU0JBZ0FBQkFnUUkKRUdpeGdB
RFM0c0hYZFFJRUNCQWdRSUFBQVFKMUN3Z2dkWXRyandBQkFnUUlFQ0JBZ0VDTEJRU1FGZysrcmhN
Z1FJQUFBUUlFQ0JDbwpXMEFBcVZ0Y2V3UUlFQ0JBZ0FBQkFnUmFMQ0NBdEhqd2RaMEFBUUlFQ0JB
Z1FJQkEzUUlDU04zaTJpTkFnQUFCQWdRSUVDRFFZZ0VCCnBNV0RyK3NFQ0JBZ1FJQUFBUUlFNmhZ
UVFPb1cxeDRCQWdRSUVDQkFnQUNCRmdzSUlDMGVmRjBuUUlBQUFRSUVDQkFnVUxlQUFGSzMKdVBZ
SUVDQkFnQUFCQWdRSXRGaEFBR254NE9zNkFRSUVDQkFnUUlBQWdib0ZCSkM2eGJWSGdBQUJBZ1FJ
RUNCQW9NVUNBa2lMQjEvWApDUkFnUUlBQUFRSUVDTlF0SUlEVUxhNDlBZ1FJRUNCQWdBQUJBaTBX
RUVCYVBQaTZUb0FBQVFJRUNCQWdRS0J1QVFHa2JuSHRFU0JBCmdBQUJBZ1FJRUdpeGdBRFM0c0hY
ZFFJRUNCQWdRSUFBQVFKMUN3Z2dkWXRyandBQkFnUUlFQ0JBZ0VDTEJRU1FGZysrcmhNZ1FJQUEK
QVFJRUNCQ29XMEFBcVZ0Y2V3UUlFQ0JBZ0FBQkFnUmFMQ0NBdEhqd2RaMEFBUUlFQ0JBZ1FJQkEz
UUlDU04zaTJpTkFnQUFCQWdRSQpFQ0RRWWdFQnBNV0RyK3NFQ0JBZ1FJQUFBUUlFNmhZUVFPb1cx
eDRCQWdRSUVDQkFnQUNCRmdzSUlDMGVmRjBuUUlBQUFRSUVDQkFnClVMZUFBRkszdVBZSUVDQkFn
QUFCQWdRSXRGaEFBR254NE9zNkFRSUVDQkFnUUlBQWdib0ZCSkM2eGJWSGdBQUJBZ1FJRUNCQW9N
VUMKQWtpTEIxL1hDUkFnUUlBQUFRSUVDTlF0SUlEVUxhNDlBZ1FJRUNCQWdBQUJBaTBXRUVCYVBQ
aTZUb0FBQVFJRUNCQWdRS0J1QVFHawpibkh0RVNCQWdBQUJBZ1FJRUdpeGdBRFM0c0hYZFFJRUNC
QWdRSUFBQVFKMUN3Z2dkWXRyandBQkFnUUlFQ0JBZ0VDTEJRU1FGZysrCnJoTWdRSUFBQVFJRUNC
Q29XMEFBcVZ0Y2V3UUlFQ0JBZ0FBQkFnUmFMQ0NBdEhqd2RaMEFBUUlFQ0JBZ1FJQkEzUUlDU04z
aTJpTkEKZ0FBQkFnUUlFQ0RRWWdFQnBNV0RyK3NFQ0JBZ1FJQUFBUUlFNmhZUVFPb1cxeDRCQWdR
SUVDQkFnQUNCRmdzSUlDMGVmRjBuUUlBQQpBUUlFQ0JBZ1VMZUFBRkszdVBZSUVDQkFnQUFCQWdR
SXRGaEFBR254NE9zNkFRSUVDQkFnUUlBQWdib0ZCSkM2eGJWSGdBQUJBZ1FJCkVDQkFvTVVDa3d5
MTd4OTk5RkdhYUtLSmluOUQzYmEvOHJmZmZudGFkdGxsKy92YStuRVFlTzY1NTlKZGQ5MVYvSXZ4
K3VkLy91ZTAKekRMTHBHbW5uWFljYXJNSkFRSUVDQkFnUUlBQWdXb0VSdlIwbHR5cWR0OTk5L1Ny
WC8wcXpUampqR21ISFhaSWUrKzlkN0hweFJkZgpuQ2FiYkxMMEwvL3lMK21OTjk1SWp6MzJXSnBr
a3J4czgrNjc3NmFqampvcW5Ybm1tV25VcUZGcGlpbW1TSnRzc2ttYWROSkpjM2RyCjJPWE9QLy84
TlAvODg2ZkZGbHRzMkhVTnRZSVhYM3d4L2VZM3Ywbnh1c0VHRzZTVlZscHBxRldNVWY3QkJ4OU14
eDkvZkpwdXV1blMKY3NzdFYveUxBQkpoNU82NzcwNTMzbmxuTVc2TExMTElHTnY1UUlBQUFRSUVD
QkFnUUtBT2dld0E4dVNUVDZhRkYxNDRyYjc2NmtVQQp1Znp5eTlONTU1MlhWbGxsbGZTdi8vcXZL
UTdpenpycnJMVGFhcXNWQWVMYWE2L04zdi9aWnBzdHhTLzI3N3p6VHBwNTVwblRycnZ1Cm1nNCsr
T0RzN1lkYmNQLzk5MDhyckxCQ1duUE5OWWRiMVpDMzMyV1hYZEllZSt5UlpwcHBwclRubm51bTNY
YmJMYzB4eHh6ZGVpSWYKamhneG92dDVvRGY3N3J0dml2SS8vL25QK3cxdzc3Ly9maEg0NXB4enpy
VDU1cHNQVkozdkNCQWdRSUFBQVFJRUNGUXVrSGVhb3ROcwpCSXJERHo4ODdienp6c1ZPUFB6d3cy
bS8vZllyQXNqcHA1K2V6ajc3N0tMTVJodHRsSlpmZnZuaUYvajExbHN2eFlGdW5BMkpnREY2CjlP
ajAwRU1QRlFmWmNWQWRsM085K2VhYjNjdTVwcDU2NnVMQXVRd0NmLzd6bjlNQkJ4eVE0dGY2YUh0
Q1crTHNUNXp4bVgzMjJZdXUKZmYvNzMwOFhYSEJCY1hZcFZseC8vZlhwNVpkZkxzNk1ETmIzazA0
NktVMCsrZVJwcWFXVzZqZDhSQjNSM24vKzUzK21hNjY1cG5qOQp4UzkrTVZqVnZpZEFnQUFCQWdR
SUVDQlFtVUIyQUpsbGxsblNyTFBPMm0xNG9ZVVdTbC8rOHBlTHoxTk5OVlhhWW9zdDB0dHZ2NTBp
Cm1Fdy8vZlRwM0hQUDdaWXQzM3ozdTk5TlR6enhSSEhtSkg3cGorWENDeTlNcjcvK2VucmdnUWVL
UUJJSDVaZGVlbWx4RnVTbGwxNUsKRVdLMjJXYWJzb29KNmpYYzRxelBXMis5bGFhWlpwcDB6am5u
Zk9xc1JBU3ZWMTk5ZGNDNUcySDZ5Q09QcERpNzBYdU1Cc0w2eGplKwprVzY0NFlaay9zMUFTcjRq
UUlBQUFRSUVDQkNvV2lBN2dNUlppYmhFYU8yMTErNmVzWWdRRXIvUXgrVkRzWHp5eVNmRldaRHR0
dHV1CjMvMmNkOTU1eC9pRlBnSkduQm41d3gvK1VCd014MlZlU3l5eFJOcDY2NjNUZ2dzdTJHODlW
WDl4ODgwM3AvZmVlMi9BYWtlT0hGbUUKcXdFTERmSExDR0tISG5wb0VkN1dXR09OTk04ODg0eFJR
NXdGaW4rNVMrL0x0d2JiSmk3WmlzdmQ0cXpKeEJOUFBGaHgzeE1nUUlBQQpBUUlFQ0JBWXRrQjJB
SWxKNFN1dnZISmFkOTExVTV6SmlIa2JjZWJpc3NzdVMzUFBQWGQ2K3VtbjAvLzh6LytrbU5NUVow
TGlMRWgvCnl3c3Z2RkFjN0U4NTVaUkZrYWczL3NXWmordXV1NjZZUS9MYWE2K2wrKysvUHkyNjZL
TDlWVlBaK2pqd3YrbW1tOUtqano0NllKMHgKVDZUcUpRTFpJWWNjMG0rMTMvcld0OUlQZnZDREZK
ZW45YlU4L3ZqajZYLy85MytMeTk3aWJFcWNxY3BkNHRLNHhSZGZ2QWc0SzY2NApZdTVteWhFZ1FJ
QUFBUUlFQ0JBWVo0SHNBSExKSlpjVWs4MmpwUWdLWXk5eE1IdnNzY2VtcjMzdGEybkxMYmRNcDV4
eVNqSC9vM2U1Cm1DQWQ5Y1RjaG9NT09xajNWOFg3NTU5L3ZnZ3pIM3p3UVlvRDY1MTIyaW50dGRk
ZXhjSDFVQTZzUDFYeElDdGluK1BmK0xiRW5JNHcKV0d1dHRmcmR0UWdmY1lsYUJKbHhXZUpPV2Jm
ZWVtc1NRTVpGenpZRUNCQWdRSUFBQVFKREZjZ09JSEY1VmR5WktpN0Jpc3QxWWdMNQp4eDkvbkQ3
ODhNUGk4M3p6elZmY3dTcDJJTzZNTmRkY2N4V1g5c1FrOUpqcjhNb3JyNlM0Uld5RWpMN3VrQlZ6
UC83NHh6OFc4eDJpCi90Z3Uyb3pMdXlMWXhPVDFhTC9PeTdLR2lsbDErWnd6TGpIblpxdXR0aHJu
cHYvcG4vNHBuWHJxcWVPOHZRMEpFQ0JBZ0FBQkFnUUkKREVVZ080REVMK1h4SzNrNTMyT2dSdUky
c1BIZ3V5T09PS0s0dkNlZWNSR1hiTVhkc2VLN0paZGNjb3pONDg1UFJ4OTlkRkgzWnB0dApsamJl
ZU9PMHp6NzdGTC9zUjV2eDc2S0xMaXB1QVJ6UHNjalpoekVhbUlBL1JBRE12VTF2WHd5NXoydnBh
MXZyQ0JBZ1FJQUFBUUlFCkNBeFZZS0xjRFNKQURPWEFQODZVeEsxZTQ0eEhIQ1EvKyt5enhkMnZ4
ZzRmY2FuV2NjY2RWMXpXRlNFbndrcUVqS3V2dmpyRmJXbkwKSmVhZXhKMmk0a0dJbHY4dkVKUE93
M1pjbDZlZWVxcTQ3RzFjdDdjZEFRSUVDQkFnUUlBQWdhRUlaSjhCR1VxbFk1ZnQ3dzVMOTkxMwpY
L0VRdnJpRmJEeWZZb1laWmlqdWlIWE1NY2NVenhVWmU3dTQ3ZSs5OTk0N2R2VjlmbzU1SkRFeGZy
QWwyb3dudXpkMVdXYVpaZElkCmQ5d3h4c01MaDlJWHQrRWRpcGF5QkFnUUlFQ0FBQUVDd3hXb0pZ
RDB0NVB4OVBSMTFsbW4rNHlMbUdoKzJtbW5GYzhRaVZ2eGpyM0UKbVpIZVowWEcvcjczNXpqekVr
ODRIMmlKTW5GWjJJRUhIamhRc2ZINnV3Z2djVmxibkNFYWx5WG0zY1J0Z0MwRUNCQWdRSUFBQVFJ
RQo2aEQ0WEFOSW5OR0lXOGZHMllxWUNCMEgwakZodmE5bldVUXdpY3V6Y2crMDQ5YkFnMDJ1anNu
d2NkdmZKaS9UVGp0dGNhdml1Tnd0CkhpNDRsT1dLSzY1SVN5KzlkTCszK0IxS1hjb1NJRUNBQUFF
Q0JBZ1F5QkhJbmdPU1U5bFF5MnkwMFVicDlOTlBMNTdlUFdyVXFPTDIKdkR2dXVHTzY4c29yeDZn
cUhoSzR3dzQ3cEtPT09zcnRZc2VRK2NlSHVBM3ZtV2VlbWQ1ODg4MCt2dTE3VlR6RDVienp6aXR1
bWR4MwpDV3NKRUNCQWdBQUJBZ1FJVkMvd3VaNEJpWGtmOFZ5UTk5OS9QOFVFOUZqaStTQnZ2ZlZX
OFQ3T2VCeCsrT0hwcXF1dVNpZWZmSExhCllJTU5pdlgrKzdSQVhHNFdUMVdQSjhnUDlreVBlT2pp
U1NlZFZOelcrTk0xV1VPQUFBRUNCQWdRSUVEZ3N4TVkwWGs0WU05blYvMjQKMVJ4M2RUcm5uSE5T
UEEwOWdrazhpRzg0dDVydGJ5L2lnWWczM0hCRDJuZmZmZnNyMHFqMThkeVVtTUQvOHNzdkYyRXRu
aUlmVDdDUApKZTVFRnBQK3czWFdXV2ROUC96aER6OFQwMGFCMlZrQ0JBZ1FJRUNBQUlIYUJjYkxB
Rks3d2dUV1lOejlLK2EyM0gvLy9VWHdpTzVGCkVJbUhEbzRjT2JKNFNPUUUxbVhkSVVDQUFBRUNC
QWdRYUlpQUFOS1FnYktiQkFnUUlFQ0FBQUVDQkNZRWdjOTFFdnFFQUtnUEJBZ1EKSUVDQUFBRUNC
QWprQ3dnZytWWktFaUJBZ0FBQkFnUUlFQ0F3VEFFQlpKaUFOaWRBZ0FBQkFnUUlFQ0JBSUY5QUFN
bTNVcElBQVFJRQpDQkFnUUlBQWdXRUtDQ0REQkxRNUFRSUVDQkFnUUlBQUFRTDVBZ0pJdnBXU0JB
Z1FJRUNBQUFFQ0JBZ01VMEFBR1NhZ3pRa1FJRUNBCkFBRUNCQWdReUJjUVFQS3RsQ1JBZ0FBQkFn
UUlFQ0JBWUpnQ0FzZ3dBVzFPZ0FBQkFnUUlFQ0JBZ0VDK2dBQ1NiNlVrQVFJRUNCQWcKUUlBQUFR
TERGQkJBaGdsb2N3SUVDQkFnUUlBQUFRSUU4Z1VFa0h3ckpRa1FJRUNBQUFFQ0JBZ1FHS2FBQURK
TVFKc1RJRUNBQUFFQwpCQWdRSUpBdklJRGtXeWxKZ0FBQkFnUUlFQ0JBZ01Bd0JRU1FZUUxhbkFB
QkFnUUlFQ0JBZ0FDQmZBRUJKTjlLU1FJRUNCQWdRSUFBCkFRSUVoaWtnZ0F3VDBPWUVDQkFnUUlB
QUFRSUVDT1FMQ0NENVZrb1NJRUNBQUFFQ0JBZ1FJREJNQVFGa21JQTJKMENBQUFFQ0JBZ1EKSUVB
Z1gwQUF5YmRTa2dBQkFnUUlFQ0JBZ0FDQllRcE1NdGoySjV4d3dtQkZmRStBQUFFQ0JBZ1FJRUNB
QUlHMDRZWWJwaGxtbUdGQQppVUVEU0d3ZEZWa0lFQ0JBZ0FBQkFnUUlFQ0F3WElFUlBaMWx1SlhZ
bmdBQkFnUUlFQ0JBZ0FBQkFqa0M1b0RrS0NsRGdBQUJBZ1FJCkVDQkFnRUFsQWdKSUpZd3FJVUNB
QUFFQ0JBZ1FJRUFnUjBBQXlWRlNoZ0FCQWdRSUVDQkFnQUNCU2dRRWtFb1lWVUtBQUFFQ0JBZ1EK
SUVDQVFJNkFBSktqcEF3QkFnUUlFQ0JBZ0FBQkFwVUlDQ0NWTUtxRUFBRUNCQWdRSUVDQUFJRWNB
UUVrUjBrWkFnUUlFQ0JBZ0FBQgpBZ1FxRVJCQUttRlVDUUVDQkFnUUlFQ0FBQUVDT1FJQ1NJNlNN
Z1FJRUNCQWdBQUJBZ1FJVkNJZ04wU3g1d0FBQzJoSlJFRlVnRlRDCnFCSUNCQWdRSUVDQUFBRUNC
SElFQkpBY0pXVUlFQ0JBZ0FBQkFnUUlFS2hFUUFDcGhGRWxCQWdRSUVDQUFBRUNCQWprQ0FnZ09V
cksKRUNCQWdBQUJBZ1FJRUNCUWlZQUFVZ21qU2dnUUlFQ0FBQUVDQkFnUXlCRVFRSEtVbENGQWdB
QUJBZ1FJRUNCQW9CSUJBYVFTUnBVUQpJRUNBQUFFQ0JBZ1FJSkFqSUlEa0tDbERnQUFCQWdRSUVD
QkFnRUFsQWdKSUpZd3FJVUNBQUFFQ0JBZ1FJRUFnUjBBQXlWRlNoZ0FCCkFnUUlFQ0JBZ0FDQlNn
UUVrRW9ZVlVLQUFBRUNCQWdRSUVDQVFJNkFBSktqcEF3QkFnUUlFQ0JBZ0FBQkFwVUlDQ0NWTUtx
RUFBRUMKQkFnUUlFQ0FBSUVjQVFFa1Iwa1pBZ1FJRUNCQWdBQUJBZ1FxRVJCQUttRlVDUUVDQkFn
UUlFQ0FBQUVDT1FJQ1NJNlNNZ1FJRUNCQQpnQUFCQWdRSVZDSWdnRlRDcUJJQ0JBZ1FJRUNBQUFF
Q0JISUVCSkFjSldVSUVDQkFnQUFCQWdRSUVLaEVRQUNwaEZFbEJBZ1FJRUNBCkFBRUNCQWprQ0Fn
Z09VcktFQ0JBZ0FBQkFnUUlFQ0JRaVlBQVVnbWpTZ2dRSUVDQUFBRUNCQWdReUJFUVFIS1VsQ0ZB
Z0FBQkFnUUkKRUNCQW9CSUJBYVFTUnBVUUlFQ0FBQUVDQkFnUUlKQWpJSURrS0NsRGdBQUJBZ1FJ
RUNCQWdFQWxBZ0pJSll3cUlVQ0FBQUVDQkFnUQpJRUFnUjBBQXlWRlNoZ0FCQWdRSUVDQkFnQUNC
U2dRRWtFb1lWVUtBQUFFQ0JBZ1FJRUNBUUk2QUFKS2pwQXdCQWdRSUVDQkFnQUFCCkFwVUlDQ0NW
TUtxRUFBRUNCQWdRSUVDQUFJRWNBUUVrUjBrWkFnUUlFQ0JBZ0FBQkFnUXFFUkJBS21GVUNRRUNC
QWdRSUVDQUFBRUMKT1FJQ1NJNlNNZ1FJRUNCQWdBQUJBZ1FJVkNJZ2dGVENxQklDQkFnUUlFQ0FB
QUVDQkhJRUJKQWNKV1VJRUNCQWdBQUJBZ1FJRUtoRQpRQUNwaEZFbEJBZ1FJRUNBQUFFQ0JBamtD
QWdnT1VyS0VDQkFnQUFCQWdRSUVDQlFpWUFBVWdtalNnZ1FJRUNBQUFFQ0JBZ1F5QkVRClFIS1Vs
Q0ZBZ0FBQkFnUUlFQ0JBb0JJQkFhUVNScFVRSUVDQUFBRUNCQWdRSUpBaklJRGtLQ2xEZ0FBQkFn
UUlFQ0JBZ0VBbEFnSkkKSll3cUlVQ0FBQUVDQkFnUUlFQWdSMEFBeVZGU2hnQUJBZ1FJRUNCQWdB
Q0JTZ1FFa0VvWVZVS0FBQUVDQkFnUUlFQ0FRSTZBQUpLagpwQXdCQWdRSUVDQkFnQUFCQXBVSUND
Q1ZNS3FFQUFFQ0JBZ1FJRUNBQUlFY0FRRWtSMGtaQWdRSUVDQkFnQUFCQWdRcUVSQkFLbUZVCkNR
RUNCQWdRSUVDQUFBRUNPUUlDU0k2U01nUUlFQ0JBZ0FBQkFnUUlWQ0lnZ0ZUQ3FCSUNCQWdRSUVD
QUFBRUNCSElFQkpBY0pXVUkKRUNCQWdBQUJBZ1FJRUtoRVFBQ3BoRkVsQkFnUUlFQ0FBQUVDQkFq
a0NBZ2dPVXJLRUNCQWdBQUJBZ1FJRUNCUWlZQUFVZ21qU2dnUQpJRUNBQUFFQ0JBZ1F5QkVRUUhL
VWxDRkFnQUFCQWdRSUVDQkFvQklCQWFRU1JwVVFJRUNBQUFFQ0JBZ1FJSkFqSUlEa0tDbERnQUFC
CkFnUUlFQ0JBZ0VBbEFnSklKWXdxSVVDQUFBRUNCQWdRSUVBZ1IwQUF5VkZTaGdBQkFnUUlFQ0JB
Z0FDQlNnUUVrRW9ZVlVLQUFBRUMKQkFnUUlFQ0FRSTZBQUpLanBBd0JBZ1FJRUNCQWdBQUJBcFVJ
Q0NDVk1LcUVBQUVDQkFnUUlFQ0FBSUVjQVFFa1Iwa1pBZ1FJRUNCQQpnQUFCQWdRcUVSQkFLbUZV
Q1FFQ0JBZ1FJRUNBQUFFQ09RSUNTSTZTTWdRSUVDQkFnQUFCQWdRSVZDSWdnRlRDcUJJQ0JBZ1FJ
RUNBCkFBRUNCSElFQkpBY0pXVUlFQ0JBZ0FBQkFnUUlFS2hFUUFDcGhGRWxCQWdRSUVDQUFBRUNC
QWprQ0FnZ09VcktFQ0JBZ0FBQkFnUUkKRUNCUWlZQUFVZ21qU2dnUUlFQ0FBQUVDQkFnUXlCRVFR
SEtVbENGQWdBQUJBZ1FJRUNCQW9CSUJBYVFTUnBVUUlFQ0FBQUVDQkFnUQpJSkFqSUlEa0tDbERn
QUFCQWdRSUVDQkFnRUFsQWdKSUpZd3FJVUNBQUFFQ0JBZ1FJRUFnUjBBQXlWRlNoZ0FCQWdRSUVD
QkFnQUNCClNnUUVrRW9ZVlVLQUFBRUNCQWdRSUVDQVFJNkFBSktqcEF3QkFnUUlFQ0JBZ0FBQkFw
VUlDQ0NWTUtxRUFBRUNCQWdRSUVDQUFJRWMKQVFFa1Iwa1pBZ1FJRUNCQWdBQUJBZ1FxRVJCQUtt
RlVDUUVDQkFnUUlFQ0FBQUVDT1FJQ1NJNlNNZ1FJRUNCQWdBQUJBZ1FJVkNJZwpnRlRDcUJJQ0JB
Z1FJRUNBQUFFQ0JISUVCSkFjSldVSUVDQkFnQUFCQWdRSUVLaEVRQUNwaEZFbEJBZ1FJRUNBQUFF
Q0JBamtDQWdnCk9VcktFQ0JBZ0FBQkFnUUlFQ0JRaVlBQVVnbWpTZ2dRSUVDQUFBRUNCQWdReUJF
UVFIS1VsQ0ZBZ0FBQkFnUUlFQ0JBb0JJQkFhUVMKUnBVUUlFQ0FBQUVDQkFnUUlKQWpJSURrS0Ns
RGdBQUJBZ1FJRUNCQWdFQWxBZ0pJSll3cUlVQ0FBQUVDQkFnUUlFQWdSMEFBeVZGUwpoZ0FCQWdR
SUVDQkFnQUNCU2dRRWtFb1lWVUtBQUFFQ0JBZ1FJRUNBUUk2QUFKS2pwQXdCQWdRSUVDQkFnQUFC
QXBVSUNDQ1ZNS3FFCkFBRUNCQWdRSUVDQUFJRWNBUUVrUjBrWkFnUUlFQ0JBZ0FBQkFnUXFFUkJB
S21GVUNRRUNCQWdRSUVDQUFBRUNPUUlDU0k2U01nUUkKRUNCQWdBQUJBZ1FJVkNJZ2dGVENxQklD
QkFnUUlFQ0FBQUVDQkhJRUJKQWNKV1VJRUNCQWdBQUJBZ1FJRUtoRVFBQ3BoRkVsQkFnUQpJRUNB
QUFFQ0JBamtDQWdnT1VyS0VDQkFnQUFCQWdRSUVDQlFpWUFBVWdtalNnZ1FJRUNBQUFFQ0JBZ1F5
QkVRUUhLVWxDRkFnQUFCCkFnUUlFQ0JBb0JJQkFhUVNScFVRSUVDQUFBRUNCQWdRSUpBaklJRGtL
Q2xEZ0FBQkFnUUlFQ0JBZ0VBbEFnSklKWXdxSVVDQUFBRUMKQkFnUUlFQWdSMEFBeVZGU2hnQUJB
Z1FJRUNCQWdBQ0JTZ1FFa0VvWVZVS0FBQUVDQkFnUUlFQ0FRSTZBQUpLanBBd0JBZ1FJRUNCQQpn
QUFCQXBVSUNDQ1ZNS3FFQUFFQ0JBZ1FJRUNBQUlFY0FRRWtSMGtaQWdRSUVDQkFnQUFCQWdRcUVS
QkFLbUZVQ1FFQ0JBZ1FJRUNBCkFBRUNPUUlDU0k2U01nUUlFQ0JBZ0FBQkFnUUlWQ0lnZ0ZUQ3FC
SUNCQWdRSUVDQUFBRUNCSElFQkpBY0pXVUlFQ0JBZ0FBQkFnUUkKRUtoRVFBQ3BoRkVsQkFnUUlF
Q0FBQUVDQkFqa0NBZ2dPVXJLRUNCQWdBQUJBZ1FJRUNCUWlZQUFVZ21qU2dnUUlFQ0FBQUVDQkFn
UQp5QkVRUUhLVWxDRkFnQUFCQWdRSUVDQkFvQklCQWFRU1JwVVFJRUNBQUFFQ0JBZ1FJSkFqSUlE
a0tDbERnQUFCQWdRSUVDQkFnRUFsCkFnSklKWXdxSVVDQUFBRUNCQWdRSUVBZ1IwQUF5VkZTaGdB
QkFnUUlFQ0JBZ0FDQlNnUUVrRW9ZVlVLQUFBRUNCQWdRSUVDQVFJNkEKQUpLanBBd0JBZ1FJRUNC
QWdBQUJBcFVJQ0NDVk1LcUVBQUVDQkFnUUlFQ0FBSUVjQVFFa1Iwa1pBZ1FJRUNCQWdBQUJBZ1Fx
RVJCQQpLbUZVQ1FFQ0JBZ1FJRUNBQUFFQ09RSUNTSTZTTWdRSUVDQkFnQUFCQWdRSVZDSWdnRlRD
cUJJQ0JBZ1FJRUNBQUFFQ0JISUVCSkFjCkpXVUlFQ0JBZ0FBQkFnUUlFS2hFUUFDcGhGRWxCQWdR
SUVDQUFBRUNCQWprQ0FnZ09VcktFQ0JBZ0FBQkFnUUlFQ0JRaVlBQVVnbWoKU2dnUUlFQ0FBQUVD
QkFnUXlCRVFRSEtVbENGQWdBQUJBZ1FJRUNCQW9CSUJBYVFTUnBVUUlFQ0FBQUVDQkFnUUlKQWpJ
SURrS0NsRApnQUFCQWdRSUVDQkFnRUFsQWdKSUpZd3FJVUNBQUFFQ0JBZ1FJRUFnUjBBQXlWRlNo
Z0FCQWdRSUVDQkFnQUNCU2dRRWtFb1lWVUtBCkFBRUNCQWdRSUVDQVFJNkFBSktqcEF3QkFnUUlF
Q0JBZ0FBQkFwVUlDQ0NWTUtxRUFBRUNCQWdRSUVDQUFJRWNBUUVrUjBrWkFnUUkKRUNCQWdBQUJB
Z1FxRVJCQUttRlVDUUVDQkFnUUlFQ0FBQUVDT1FJQ1NJNlNNZ1FJRUNCQWdBQUJBZ1FJVkNJZ2dG
VENxQklDQkFnUQpJRUNBQUFFQ0JISUVCSkFjSldVSUVDQkFnQUFCQWdRSUVLaEVRQUNwaEZFbEJB
Z1FJRUNBQUFFQ0JBamtDQWdnT1VyS0VDQkFnQUFCCkFnUUlFQ0JRaVlBQVVnbWpTZ2dRSUVDQUFB
RUNCQWdReUJFUVFIS1VsQ0ZBZ0FBQkFnUUlFQ0JBb0JJQkFhUVNScFVRSUVDQUFBRUMKQkFnUUlK
QWpJSURrS0NsRGdBQUJBZ1FJRUNCQWdFQWxBZ0pJSll3cUlVQ0FBQUVDQkFnUUlFQWdSMEFBeVZG
U2hnQUJBZ1FJRUNCQQpnQUNCU2dRRWtFb1lWVUtBQUFFQ0JBZ1FJRUNBUUk2QUFKS2pwQXdCQWdR
SUVDQkFnQUFCQXBVSUNDQ1ZNS3FFQUFFQ0JBZ1FJRUNBCkFJRWNnZjhIa0tQcTAwNURoWUFBQUFB
QVNVVk9SSzVDWUlJPQoK
</data>
<flag name="review"
          id="61292"
          type_id="1"
          status="+"
          setter="mitz"
    />
    <flag name="commit-queue"
          id="61327"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71365</attachid>
            <date>2010-10-20 16:53:35 -0700</date>
            <delta_ts>2010-10-21 03:43:04 -0700</delta_ts>
            <desc>Same as attachment 71270, but with results updated after r70172</desc>
            <filename>WK46973Patch_101020-3.diff</filename>
            <type>text/plain</type>
            <size>89548</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsOTAgQEAKKzIwMTAtMTAtMjAgIHRha2FubyB0YWt1bWkgIDx0YWthbm8xQGFzaWEu
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5lZWQgdG8gc3dhcCBnbHlwaHMgZm9yIHZlcnRpY2FsIHdyaXRpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2OTczCisKKyAgICAgICAgTWFk
ZSBjaGFuZ2VzIHRvIHBhc3MgdGhlIHdyaXRpbmctbW9kZSBvcmllbnRhdGlvbiBmbGFnIGluIFJl
bmRlclN0eWxlIGRvd24gdG8gRm9udFBsYXRmb3JtRGF0YSwKKyAgICAgICAgYW5kIHVsdGltYXRl
bHkgdG8gQ29yZVRleHQgQVBJcyBpbiBib3RoIGZvbnQgY29tcGxleCBwYXRoIGFuZCBmYXN0IHBh
dGguCisKKyAgICAgICAgVGVzdHM6IGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRl
eHQtZ2x5cGgtdGVzdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3RleHQvaW50ZXJuYXRpb25h
bC92ZXJ0aWNhbC10ZXh0LW1ldHJpY3MtdGVzdC5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmV4
cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVk
IHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRPcmllbnRhdGlvbi5oLgorICAgICAgICAqIGNzcy9DU1NG
b250RmFjZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNvdXJjZTo6
Z2V0Rm9udERhdGEpOiBBZGRlZCBmb250IG9yaWVudGF0aW9uIHBhcmFtZXRlciB0byBTaW1wbGVG
b250RGF0YS4KKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KTogU2V0IGFwcHJvcHJpYXRl
IGZvbnQgb3JpZW50YXRpb24gdG8gdGhlIGZvbnQgZGVzY3JpcHRpb24KKyAgICAgICAgd2hlbiB3
cml0aW5nLW1vZGUgaXMgYmVpbmcgc3BlY2lmaWVkLgorICAgICAgICAqIGxvYWRlci9DYWNoZWRG
b250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21D
dXN0b21EYXRhKTogTWFkZSB0byBwYXNzIGZvbnQgb3JpZW50YXRpb24gdG8gRm9udFBsYXRmb3Jt
RGF0YS4KKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkRm9udC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHA6IEFkZGVkIGZvbnQgb3JpZW50YXRpb24gdG8gRm9udFBs
YXRmb3JtRGF0YUNhY2hlS2V5CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhQ2Fj
aGVLZXk6OkZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpGb250
UGxhdGZvcm1EYXRhQ2FjaGVLZXk6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6Y29t
cHV0ZUhhc2gpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRDYWNoZWRGb250UGxh
dGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24u
aDogQWRkZWQgZm9udCBvcmllbnRhdGlvbiBzdXBwb3J0IHRvIEZvbnREZXNjcmlwdGlvbiBjbGFz
cworICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpGb250RGVzY3JpcHRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpvcmllbnRhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnNldE9yaWVudGF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udE9yaWVudGF0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6IENoYW5nZWQgdG8gcGFzcyBmb250IG9yaWVu
dGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3Rv
bVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOiBDaGFuZ2VkIHRvIHBhc3MgZm9u
dCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhLmg6IEFkZGVkIGZvbnQgb3JpZW50YXRpb24g
c3VwcG9ydCB0byBGb250UGxhdGZvcm1EYXRhIGNsYXNzCisgICAgICAgIChXZWJDb3JlOjpGb250
UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQ
bGF0Zm9ybURhdGE6Om9yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9y
bURhdGE6Omhhc2gpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6b3BlcmF0
b3I9PSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0
YUNvY29hLm1tOiBBZGRlZCBmb250IG9yaWVudGF0aW9uIHN1cHBvcnQKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udFBsYXRmb3JtRGF0YTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQ
bGF0Zm9ybURhdGE6OmFsbG93c0xpZ2F0dXJlcyk6IERvbid0IGFsbG93IGxpZ2F0dXJlcyB3aGVu
IHRoZSBmb250IGlzIHZlcnRpY2FsIG9yaWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dFBsYXRmb3JtRGF0YTo6ZGVzY3JpcHRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2d0ay9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUGFuZ28uY3BwOiBDaGFuZ2VkIHRvIHBhc3MgZm9u
dCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOiBDaGFuZ2VkIHRv
IHBhc3MgZm9udCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDogQ2hh
bmdlZCB0byBwYXNzIGZvbnQgb3JpZW50YXRpb24gdG8gZm9udFBsYXRmb3JtRGF0YSgpCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbTogQWRkZWQgZm9udCBv
cmllbnRhdGlvbiBwYXJhbWV0ZXIgd2hlbiBjcmVhdGluZyBGb250UGxhdGZvcm1EYXRhIG9iamVj
dC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0Rm9udERhdGFGb3JDaGFyYWN0ZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwOiBBZGRlZCBmb250IG9yaWVudGF0aW9uIHBhcmFtZXRlciB3aGVuIGNyZWF0aW5nIEZvbnRQ
bGF0Zm9ybURhdGEgb2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3Jt
RGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDogQ2hhbmdlZCB0byBwYXNzIGZvbnQgb3JpZW50YXRp
b24gcGFyYW1ldGVyIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9HbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
bHlwaFBhZ2U6OmZpbGwpOiBDaGFuZ2VkIHRvIHVzZSBDb3JlVGV4dCB0byBleHRyYWN0IGdseXBo
cyB3aGVuIHRoZSBjdXJyZW50IGZvbnQgaXMgdmVydGljYWwgb3JpZW50YXRpb24uCisgICAgICAg
IENvcmVUZXh0IGF1dG9tYXRpY2FsbHkgc3dhcHMgZ2x5cGhzIHdpdGggdmVydGljYWwgdmFyaWFu
dHMgd2hlbiB0aGUgZm9udCBvcmllbnRhdGlvbiBpcyB2ZXJ0aWNhbC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHA6IEFkZGVkIHZlcnRp
Y2FsIGZvcm0gYXR0cmlidXRlIHRvIHRoZSBhdHRyaWJ1dGUgZGljdGlvbmFyeSBmb3IgYSBDVExp
bmUuCisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6Z2V0Q0ZTdHJpbmdBdHRyaWJ1
dGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Cb3VuZHNGb3JH
bHlwaCk6IENoYW5nZWQgdG8gdXNlIENvcmVUZXh0IChmcm9tIENHKSB0byBzdXBwb3J0IHZlcnRp
Y2FsIG1ldHJpY3MuCisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1X
aWR0aEZvckdseXBoKTogTWFkZSB0byB1c2UgQ29yZVRleHQsIGluc3RlYWQgb2Ygd2tHZXRHbHlw
aFRyYW5zZm9ybWVkQWR2YW5jZXMsCisgICAgICAgIHRvIGdldCB2ZXJ0aWNhbCBtZXRyaWNzIHdo
ZW4gdGhlIGZvbnQgb3JpZW50YXRpb24gaXMgdmVydGljYWwuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOiBDaGFuZ2VkIHRvIHBhc3MgZm9u
dCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9xdC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUXQuY3BwOiBDaGFuZ2VkIHRvIHBhc3Mg
Zm9udCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6IENoYW5nZWQg
dG8gcGFzcyBmb250IG9yaWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAo
V2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6IENo
YW5nZWQgdG8gcGFzcyBmb250IG9yaWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDog
Q2hhbmdlZCB0byBwYXNzIGZvbnQgb3JpZW50YXRpb24gdG8gZm9udFBsYXRmb3JtRGF0YSgpCisg
ICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRh
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0
YS5oOiBDaGFuZ2VkIHRvIHBhc3MgZm9udCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRh
KCkKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0
YUNhaXJvLmNwcDogQ2hhbmdlZCB0byBwYXNzIGZvbnQgb3JpZW50YXRpb24gdG8gZm9udFBsYXRm
b3JtRGF0YSgpCisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250
UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YUNhaXJvLmg6IENoYW5nZWQgdG8gcGFzcyBmb250IG9yaWVudGF0aW9uIHRv
IGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOiBDaGFuZ2VkIHRvIHBhc3MgZm9udCBvcmllbnRhdGlv
biB0byBmb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0
Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3dpbmNlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDogQ2hhbmdlZCB0byBwYXNzIGZvbnQgb3Jp
ZW50YXRpb24gdG8gZm9udFBsYXRmb3JtRGF0YSgpCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd3gvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6IENoYW5nZWQgdG8gcGFzcyBmb250IG9y
aWVudGF0aW9uIHRvIGZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvd3gvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOiBDaGFuZ2VkIHRvIHBhc3MgZm9u
dCBvcmllbnRhdGlvbiB0byBmb250UGxhdGZvcm1EYXRhKCkKKwogMjAxMC0xMC0yMCAgRGlyayBT
Y2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMg
S2xpbmcuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMzgzLDcgKzM4Myw3IEBAIF9fWk43V2ViQ29yZTE2RGV2
aWNlTW90aW9uRGF0YTEyQWNjZWxlcmEKIF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTEy
Um90YXRpb25SYXRlNmNyZWF0ZUViZGJkYmQKIF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0
YTZjcmVhdGVFTjNXVEYxMFBhc3NSZWZQdHJJTlMwXzEyQWNjZWxlcmF0aW9uRUVFUzRfTlMyX0lO
UzBfMTJSb3RhdGlvblJhdGVFRUViZAogX19aTjdXZWJDb3JlMTZGb250RmFsbGJhY2tMaXN0MTVy
ZWxlYXNlRm9udERhdGFFdgotX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhQzFFUDZOU0Zv
bnRiYgorX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhQzFFUDZOU0ZvbnRiYk5TXzE1Rm9u
dE9yaWVudGF0aW9uRQogX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhRDFFdgogX19aTjdX
ZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MTNzZXRBdXRvZmlsbGVkRWIKIF9fWk43V2ViQ29yZTE2
TGVnYWN5V2ViQXJjaGl2ZTE5Y3JlYXRlRnJvbVNlbGVjdGlvbkVQTlNfNUZyYW1lRQpJbmRleDog
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDcwMTQy
KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTU1MTUsNiArNTUxNSw3IEBACiAJCUY1QzA0MUU3MEZGQ0E5NkQwMDgzOUQ0QSAv
KiBKU0hUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1QzA0MUUyMEZGQ0E5NkQwMDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlz
dEVsZW1lbnQuaCAqLzsgfTsKIAkJRjVEM0E1N0MxMDZCODNCMzAwNTQ1Mjk3IC8qIERhdGVDb21w
b25lbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1RDNBNTdBMTA2QjgzQjMwMDU0NTI5NyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgKi87IH07CiAJ
CUY1RDNBNTdEMTA2QjgzQjMwMDU0NTI5NyAvKiBEYXRlQ29tcG9uZW50cy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVEM0E1N0IxMDZCODNCMzAwNTQ1
Mjk3IC8qIERhdGVDb21wb25lbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJRjdBMDM0QzQxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjdB
MDM0QzMxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRhdGlvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY5MTZDNDhEMERCNTEwRjgwMDc2
Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOTE2QzQ4QjBEQjUxMEY4MDA3NkNEODMg
LyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwICovOyB9OwogCQlGOTE2QzQ4RTBE
QjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5MTZDNDhDMERCNTEwRjgw
MDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oICovOyB9OwogCQlGOThG
RkY0NDExQTI2NzYyMDBGNTQ4RTggLyogQ1NTT01VdGlscy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOThGRkY0MjExQTI2NzYyMDBGNTQ4RTggLyog
Q1NTT01VdGlscy5jcHAgKi87IH07CkBAIC0xMTU1NSw2ICsxMTU1Niw3IEBACiAJCUY1QzI4Njk1
MDI4NDZEQ0QwMTg2MzVDQSAvKiBDb2NvYS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENv
Y29hLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvY29hLmZy
YW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJRjVEM0E1N0ExMDZCODNC
MzAwNTQ1Mjk3IC8qIERhdGVDb21wb25lbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERhdGVDb21wb25lbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjVEM0E1N0IxMDZCODNCMzAwNTQ1Mjk3IC8qIERhdGVDb21wb25lbnRzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVDb21wb25lbnRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY3QTAzNEMzMTI2QkY2QkUwMDdEQzE5RSAvKiBGb250T3JpZW50
YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udE9yaWVudGF0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY4MjE2Mjk5MDI5RjRGQjUwMTAwMDEz
MSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgcGF0aCA9IEphdmFTY3Jp
cHRDb3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJ
RjkxNkM0OEIwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY5MTZD
NDhDMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NDc4LDYgKzE2NDgwLDcg
QEAKIAkJCQlCMkMzREE1ODBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udEZhbWlseS5jcHAgKi8sCiAJ
CQkJQjJDM0RBNTkwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRGYW1pbHkuaCAqLywKIAkJCQk3MjYy
NkUwMTBFRjAyMkZFMDBBMDdFMjAgLyogRm9udEZhc3RQYXRoLmNwcCAqLywKKwkJCQlGN0EwMzRD
MzEyNkJGNkJFMDA3REMxOUUgLyogRm9udE9yaWVudGF0aW9uLmggKi8sCiAJCQkJMzdBQ0NFNDEw
REEyOTgwRjAwODlFNjAyIC8qIEZvbnRSZW5kZXJpbmdNb2RlLmggKi8sCiAJCQkJQjJDM0RBNUEw
RDAwNkNENjAwRUY2RjI2IC8qIEZvbnRTZWxlY3Rvci5oICovLAogCQkJCTM3MjAyMTk4MTA2MjEz
QzYwMEYyNUM0QiAvKiBGb250U21vb3RoaW5nTW9kZS5oICovLApAQCAtMjEwODksNiArMjEwOTIs
NyBAQAogCQkJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0RkEzQjkwQjEyNUNEMTIyMDAzMDBCQUQgLyogSW5zcGVjdG9yU3RhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3MjhDMzE0MTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBB
Y2N1bXVsYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjdBMDM0QzQxMjZCRjZCRTAwN0RDMTlF
IC8qIEZvbnRPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgxQ0RGQjgxMjZFQ0ZE
QjAwRDIxNUNBIC8qIERlcHJlY2F0ZWRTVkdBbmltYXRlZFByb3BlcnR5LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwODFDREZCOTEyNkVDRkRCMDBEMjE1Q0EgLyogRGVwcmVjYXRlZFNWR0FuaW1hdGVk
UHJvcGVydHlUcmFpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MUNERkJBMTI2RUNGREIwMEQy
MTVDQSAvKiBEZXByZWNhdGVkU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oIGluIEhlYWRlcnMgKi8sCklu
ZGV4OiBXZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYyLDcgKzE2
Miw3IEBAIFNpbXBsZUZvbnREYXRhKiBDU1NGb250RmFjZVNvdXJjZTo6Z2V0Rm8KICAgICAgICAg
ICAgICAgICBpZiAoIW1fZm9udC0+ZW5zdXJlQ3VzdG9tRm9udERhdGEoKSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgICAgICAgICBmb250RGF0YS5zZXQobmV3IFNp
bXBsZUZvbnREYXRhKG1fZm9udC0+cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoZm9udERlc2Ny
aXB0aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCksIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxp
YywgZm9udERlc2NyaXB0aW9uLnJlbmRlcmluZ01vZGUoKSksIHRydWUsIGZhbHNlKSk7CisgICAg
ICAgICAgICAgICAgZm9udERhdGEuc2V0KG5ldyBTaW1wbGVGb250RGF0YShtX2ZvbnQtPnBsYXRm
b3JtRGF0YUZyb21DdXN0b21EYXRhKGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgp
LCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZvbnREZXNjcmlwdGlvbi5vcmllbnRh
dGlvbigpLCBmb250RGVzY3JpcHRpb24ucmVuZGVyaW5nTW9kZSgpKSwgdHJ1ZSwgZmFsc2UpKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQpJ
bmRleDogV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2NzYsMTAgKzU2
NzYsMTQgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogI2VuZGlm
IAogCiAgICAgLy8gQ1NTIFRleHQgTGF5b3V0IE1vZHVsZSBMZXZlbCAzOiBWZXJ0aWNhbCB3cml0
aW5nIHN1cHBvcnQKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0V3JpdGluZ01vZGU6CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyaXRpbmdNb2RlOiB7CiAgICAgICAgIEhBTkRMRV9JTkhF
UklUX0FORF9JTklUSUFMX0FORF9QUklNSVRJVkUod3JpdGluZ01vZGUsIFdyaXRpbmdNb2RlKQor
ICAgICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uID0gbV9zdHlsZS0+Zm9udERl
c2NyaXB0aW9uKCk7CisgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRPcmllbnRhdGlvbihtX3N0
eWxlLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbCA6IFZlcnRpY2FsKTsK
KyAgICAgICAgaWYgKG1fc3R5bGUtPnNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24p
KQorICAgICAgICAgICAgbV9mb250RGlydHkgPSB0cnVlOwogICAgICAgICByZXR1cm47Ci0KKyAg
ICB9CiAjaWYgRU5BQkxFKFNWRykKICAgICBkZWZhdWx0OgogICAgICAgICAvLyBUcnkgdGhlIFNW
RyBwcm9wZXJ0aWVzCkluZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmNwcAkocmV2aXNpb24gNzAxNDIpCisr
KyBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDcg
KzExNyw3IEBAIGJvb2wgQ2FjaGVkRm9udDo6ZW5zdXJlQ3VzdG9tRm9udERhdGEoKQogICAgIHJl
dHVybiBtX2ZvbnREYXRhOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIENhY2hlZEZvbnQ6OnBsYXRm
b3JtRGF0YUZyb21DdXN0b21EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMs
IEZvbnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhIENhY2hl
ZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgRm9udFJlbmRlcmluZ01v
ZGUgcmVuZGVyaW5nTW9kZSkKIHsKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQogICAgIGlmIChtX2V4
dGVybmFsU1ZHRG9jdW1lbnQpCkBAIC0xMjUsNyArMTI1LDcgQEAgRm9udFBsYXRmb3JtRGF0YSBD
YWNoZWRGb250OjpwbGF0Zm9ybURhdAogI2VuZGlmCiAjaWZkZWYgU1RPUkVfRk9OVF9DVVNUT01f
UExBVEZPUk1fREFUQQogICAgIEFTU0VSVChtX2ZvbnREYXRhKTsKLSAgICByZXR1cm4gbV9mb250
RGF0YS0+Zm9udFBsYXRmb3JtRGF0YShzdGF0aWNfY2FzdDxpbnQ+KHNpemUpLCBib2xkLCBpdGFs
aWMsIHJlbmRlcmluZ01vZGUpOworICAgIHJldHVybiBtX2ZvbnREYXRhLT5mb250UGxhdGZvcm1E
YXRhKHN0YXRpY19jYXN0PGludD4oc2l6ZSksIGJvbGQsIGl0YWxpYywgb3JpZW50YXRpb24sIHJl
bmRlcmluZ01vZGUpOwogI2Vsc2UKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YSgpOwogI2Vu
ZGlmCkluZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9sb2FkZXIvQ2FjaGVkRm9udC5oCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvbG9h
ZGVyL0NhY2hlZEZvbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmlu
ZSBDYWNoZWRGb250X2gKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCisjaW5jbHVkZSAi
Rm9udE9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTYyLDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZvaWQg
YmVnaW5Mb2FkSWZOZWVkZWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGRsKTsKIAogICAgIGJvb2wg
ZW5zdXJlQ3VzdG9tRm9udERhdGEoKTsKLSAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0
YUZyb21DdXN0b21EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRS
ZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgRm9udFBsYXRmb3JtRGF0
YSBwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wg
aXRhbGljLCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsLCBGb250UmVuZGVyaW5nTW9kZSA9
IE5vcm1hbFJlbmRlcmluZ01vZGUpOwogCiAjaWYgRU5BQkxFKFNWR19GT05UUykKICAgICBib29s
IGlzU1ZHRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTVkdGb250OyB9CkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUs
MTMgKzU1LDE0IEBAIEZvbnRDYWNoZTo6Rm9udENhY2hlKCkKIAogc3RydWN0IEZvbnRQbGF0Zm9y
bURhdGFDYWNoZUtleSA6IEZhc3RBbGxvY0Jhc2UgewogICAgIEZvbnRQbGF0Zm9ybURhdGFDYWNo
ZUtleShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSA9IEF0b21pY1N0cmluZygpLCB1bnNpZ25l
ZCBzaXplID0gMCwgdW5zaWduZWQgd2VpZ2h0ID0gMCwgYm9vbCBpdGFsaWMgPSBmYWxzZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1ByaW50ZXJGb250ID0gZmFsc2UsIEZv
bnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzUHJpbnRlckZvbnQgPSBmYWxzZSwgRm9u
dFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUsIEZvbnRP
cmllbnRhdGlvbiBvcmllbnRhdGlvbiA9IEhvcml6b250YWwpCiAgICAgICAgIDogbV9zaXplKHNp
emUpCiAgICAgICAgICwgbV93ZWlnaHQod2VpZ2h0KQogICAgICAgICAsIG1fZmFtaWx5KGZhbWls
eSkKICAgICAgICAgLCBtX2l0YWxpYyhpdGFsaWMpCiAgICAgICAgICwgbV9wcmludGVyRm9udChp
c1ByaW50ZXJGb250KQogICAgICAgICAsIG1fcmVuZGVyaW5nTW9kZShyZW5kZXJpbmdNb2RlKQor
ICAgICAgICAsIG1fb3JpZW50YXRpb24ob3JpZW50YXRpb24pCiAgICAgewogICAgIH0KIApAQCAt
NzIsNyArNzMsNyBAQCBzdHJ1Y3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5IDogRmFzdEFsCiAg
ICAgewogICAgICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UobV9mYW1pbHksIG90aGVyLm1f
ZmFtaWx5KSAmJiBtX3NpemUgPT0gb3RoZXIubV9zaXplICYmIAogICAgICAgICAgICAgICAgbV93
ZWlnaHQgPT0gb3RoZXIubV93ZWlnaHQgJiYgbV9pdGFsaWMgPT0gb3RoZXIubV9pdGFsaWMgJiYg
bV9wcmludGVyRm9udCA9PSBvdGhlci5tX3ByaW50ZXJGb250ICYmCi0gICAgICAgICAgICAgICBt
X3JlbmRlcmluZ01vZGUgPT0gb3RoZXIubV9yZW5kZXJpbmdNb2RlOworICAgICAgICAgICAgICAg
bV9yZW5kZXJpbmdNb2RlID09IG90aGVyLm1fcmVuZGVyaW5nTW9kZSAmJiBtX29yaWVudGF0aW9u
ID09IG90aGVyLm1fb3JpZW50YXRpb247CiAgICAgfQogCiAgICAgdW5zaWduZWQgbV9zaXplOwpA
QCAtODEsNiArODIsNyBAQCBzdHJ1Y3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5IDogRmFzdEFs
CiAgICAgYm9vbCBtX2l0YWxpYzsKICAgICBib29sIG1fcHJpbnRlckZvbnQ7CiAgICAgRm9udFJl
bmRlcmluZ01vZGUgbV9yZW5kZXJpbmdNb2RlOworICAgIEZvbnRPcmllbnRhdGlvbiBtX29yaWVu
dGF0aW9uOwogCiBwcml2YXRlOgogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoVGFibGVEZWxldGVk
U2l6ZSgpIHsgcmV0dXJuIDB4RkZGRkZGRkZVOyB9CkBAIC05Miw3ICs5NCw3IEBAIGlubGluZSB1
bnNpZ25lZCBjb21wdXRlSGFzaChjb25zdCBGb250UGwKICAgICAgICAgQ2FzZUZvbGRpbmdIYXNo
OjpoYXNoKGZvbnRLZXkubV9mYW1pbHkpLAogICAgICAgICBmb250S2V5Lm1fc2l6ZSwKICAgICAg
ICAgZm9udEtleS5tX3dlaWdodCwKLSAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRL
ZXkubV9pdGFsaWMpIDw8IDIgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5tX3ByaW50
ZXJGb250KSA8PCAxIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9yZW5kZXJpbmdN
b2RlKQorICAgICAgICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5tX29yaWVudGF0aW9u
KSA8PCAzIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9pdGFsaWMpIDw8IDIgfCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oZm9udEtleS5tX3ByaW50ZXJGb250KSA8PCAxIHwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGZvbnRLZXkubV9yZW5kZXJpbmdNb2RlKQogICAgIH07CiAgICAgcmV0
dXJuIFN0cmluZ0ltcGw6OmNvbXB1dGVIYXNoKHJlaW50ZXJwcmV0X2Nhc3Q8VUNoYXIqPihoYXNo
Q29kZXMpLCBzaXplb2YoaGFzaENvZGVzKSAvIHNpemVvZihVQ2hhcikpOwogfQpAQCAtMTkxLDcg
KzE5Myw3IEBAIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm8KICAgICB9
CiAKICAgICBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkga2V5KGZhbWlseU5hbWUsIGZvbnREZXNj
cmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpLCBmb250RGVzY3JpcHRpb24ud2VpZ2h0KCksIGZv
bnREZXNjcmlwdGlvbi5pdGFsaWMoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZvbnREZXNjcmlwdGlvbi51c2VQcmludGVyRm9udCgpLCBmb250RGVzY3JpcHRpb24ucmVuZGVy
aW5nTW9kZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnREZXNjcmlw
dGlvbi51c2VQcmludGVyRm9udCgpLCBmb250RGVzY3JpcHRpb24ucmVuZGVyaW5nTW9kZSgpLCBm
b250RGVzY3JpcHRpb24ub3JpZW50YXRpb24oKSk7CiAgICAgRm9udFBsYXRmb3JtRGF0YSogcmVz
dWx0ID0gMDsKICAgICBib29sIGZvdW5kUmVzdWx0OwogICAgIEZvbnRQbGF0Zm9ybURhdGFDYWNo
ZTo6aXRlcmF0b3IgaXQgPSBnRm9udFBsYXRmb3JtRGF0YUNhY2hlLT5maW5kKGtleSk7CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgJKHJldmlzaW9u
IDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAko
d29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2RlZmluZSBGb250RGVzY3JpcHRpb25f
aAogCiAjaW5jbHVkZSAiRm9udEZhbWlseS5oIgorI2luY2x1ZGUgIkZvbnRPcmllbnRhdGlvbi5o
IgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSAiRm9udFNtb290aGlu
Z01vZGUuaCIKICNpbmNsdWRlICJGb250VHJhaXRzTWFzay5oIgpAQCAtNTUsNiArNTYsNyBAQCBw
dWJsaWM6CiAgICAgRm9udERlc2NyaXB0aW9uKCkKICAgICAgICAgOiBtX3NwZWNpZmllZFNpemUo
MCkKICAgICAgICAgLCBtX2NvbXB1dGVkU2l6ZSgwKQorICAgICAgICAsIG1fb3JpZW50YXRpb24o
SG9yaXpvbnRhbCkKICAgICAgICAgLCBtX2l0YWxpYyhmYWxzZSkKICAgICAgICAgLCBtX3NtYWxs
Q2FwcyhmYWxzZSkKICAgICAgICAgLCBtX2lzQWJzb2x1dGVTaXplKGZhbHNlKQpAQCAtOTQsNiAr
OTYsNyBAQCBwdWJsaWM6CiAKICAgICBGb250VHJhaXRzTWFzayB0cmFpdHNNYXNrKCkgY29uc3Q7
CiAgICAgYm9vbCBpc1NwZWNpZmllZEZvbnQoKSBjb25zdCB7IHJldHVybiBtX2lzU3BlY2lmaWVk
Rm9udDsgfQorICAgIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fb3JpZW50YXRpb247IH0KIAogICAgIHZvaWQgc2V0RmFtaWx5KGNvbnN0IEZvbnRGYW1pbHkm
IGZhbWlseSkgeyBtX2ZhbWlseUxpc3QgPSBmYW1pbHk7IH0KICAgICB2b2lkIHNldENvbXB1dGVk
U2l6ZShmbG9hdCBzKSB7IG1fY29tcHV0ZWRTaXplID0gczsgfQpAQCAtMTEzLDYgKzExNiw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldEZvbnRTbW9vdGhpbmcoRm9udFNtb290aGluZ01vZGUgc21v
b3RoaW5nKSB7IG1fZm9udFNtb290aGluZyA9IHNtb290aGluZzsgfQogICAgIHZvaWQgc2V0VGV4
dFJlbmRlcmluZ01vZGUoVGV4dFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nKSB7IG1fdGV4dFJlbmRl
cmluZyA9IHJlbmRlcmluZzsgfQogICAgIHZvaWQgc2V0SXNTcGVjaWZpZWRGb250KGJvb2wgaXNT
cGVjaWZpZWRGb250KSB7IG1faXNTcGVjaWZpZWRGb250ID0gaXNTcGVjaWZpZWRGb250OyB9Cisg
ICAgdm9pZCBzZXRPcmllbnRhdGlvbihGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24pIHsgbV9v
cmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9CiAKIHByaXZhdGU6CiAgICAgRm9udEZhbWlseSBt
X2ZhbWlseUxpc3Q7IC8vIFRoZSBsaXN0IG9mIGZvbnQgZmFtaWxpZXMgdG8gYmUgdXNlZC4KQEAg
LTEyMSw2ICsxMjUsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyByb3VuZGluZywgbWluaW11bSBmb250IHNpemVzLCBhbmQgem9vbWluZy4KICAgICBmbG9hdCBt
X2NvbXB1dGVkU2l6ZTsgICAgLy8gQ29tcHV0ZWQgc2l6ZSBhZGp1c3RlZCBmb3IgdGhlIG1pbmlt
dW0gZm9udCBzaXplIGFuZCB0aGUgem9vbSBmYWN0b3IuICAKIAorICAgIEZvbnRPcmllbnRhdGlv
biBtX29yaWVudGF0aW9uOworCiAgICAgYm9vbCBtX2l0YWxpYyA6IDE7CiAgICAgYm9vbCBtX3Nt
YWxsQ2FwcyA6IDE7CiAgICAgYm9vbCBtX2lzQWJzb2x1dGVTaXplIDogMTsgICAvLyBXaGV0aGVy
IG9yIG5vdCBDU1Mgc3BlY2lmaWVkIGFuIGV4cGxpY2l0IHNpemUKQEAgLTE1NSw3ICsxNjEsOCBA
QCBpbmxpbmUgYm9vbCBGb250RGVzY3JpcHRpb246Om9wZXJhdG9yPT0oCiAgICAgICAgICYmIG1f
a2V5d29yZFNpemUgPT0gb3RoZXIubV9rZXl3b3JkU2l6ZQogICAgICAgICAmJiBtX2ZvbnRTbW9v
dGhpbmcgPT0gb3RoZXIubV9mb250U21vb3RoaW5nCiAgICAgICAgICYmIG1fdGV4dFJlbmRlcmlu
ZyA9PSBvdGhlci5tX3RleHRSZW5kZXJpbmcKLSAgICAgICAgJiYgbV9pc1NwZWNpZmllZEZvbnQg
PT0gb3RoZXIubV9pc1NwZWNpZmllZEZvbnQ7CisgICAgICAgICYmIG1faXNTcGVjaWZpZWRGb250
ID09IG90aGVyLm1faXNTcGVjaWZpZWRGb250CisgICAgICAgICYmIG1fb3JpZW50YXRpb24gPT0g
b3RoZXIubV9vcmllbnRhdGlvbjsKIH0KIAogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250T3JpZW50YXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRPcmllbnRhdGlvbi5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250T3JpZW50YXRpb24uaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgRm9udE9yaWVudGF0aW9uX2gKKyNkZWZpbmUgRm9udE9yaWVu
dGF0aW9uX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIEZvbnRPcmllbnRhdGlvbiB7
IEhvcml6b250YWwsIFZlcnRpY2FsIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEZvbnRPcmllbnRhdGlvbl9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1NpbXBsZUZvbnREYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9TaW1wbGVGb250RGF0YS5oCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBA
QAogdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQVRTVVN0eWxlKiBBVFNVU3R5bGU7CiAjZW5kaWYKIAot
I2lmIFVTRShDT1JFX1RFWFQpCisjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KICNlbmRpZgogCkBAIC0xMzAsNyArMTMwLDcgQEAgcHVibGljOgogICAgIE5TRm9u
dCogZ2V0TlNGb250KCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybURhdGEubnNGb250KCk7IH0K
ICNlbmRpZgogCi0jaWYgVVNFKENPUkVfVEVYVCkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgQ0ZE
aWN0aW9uYXJ5UmVmIGdldENGU3RyaW5nQXR0cmlidXRlcyhUeXBlc2V0dGluZ0ZlYXR1cmVzKSBj
b25zdDsKICNlbmRpZgogCkBAIC0yMzQsNyArMjM0LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICNl
bmRpZgogCi0jaWYgVVNFKENPUkVfVEVYVCkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgbXV0YWJs
ZSBIYXNoTWFwPHVuc2lnbmVkLCBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiA+IG1fQ0ZTdHJp
bmdBdHRyaWJ1dGVzOwogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNp
b24gNzAxNDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIEZvbnRDdXN0
b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGYKICAgICBjYWlyb19mb250X2ZhY2VfZGVz
dHJveShtX2ZvbnRGYWNlKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBGb250UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywg
Rm9udE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICByZXR1cm4gRm9udFBs
YXRmb3JtRGF0YShtX2ZvbnRGYWNlLCBzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmgJKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYg
KzIyLDcgQEAKICNpZm5kZWYgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRD
dXN0b21QbGF0Zm9ybURhdGFfaAogCisjaW5jbHVkZSAiRm9udE9yaWVudGF0aW9uLmgiCiAjaW5j
bHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtMzgsNyArMzksNyBAQCBzdHJ1Y3QgRm9udEN1
c3RvbVBsYXRmb3JtRGF0YSA6IE5vbmNvcHlhCiBwdWJsaWM6CiAgICAgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YShGVF9GYWNlLCBTaGFyZWRCdWZmZXIqKTsKICAgICB+Rm9udEN1c3RvbVBsYXRmb3Jt
RGF0YSgpOwotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwg
Ym9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJp
bmdNb2RlKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUs
IGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZv
bnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAgICAgc3RhdGljIGJvb2wg
c3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAKIHByaXZhdGU6CkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGEuaAkocmV2
aXNpb24gNzAxNDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0
Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2lmbmRlZiBGb250
UGxhdGZvcm1EYXRhX2gKICNkZWZpbmUgRm9udFBsYXRmb3JtRGF0YV9oCiAKKyNpbmNsdWRlICJG
b250T3JpZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKICNp
ZmRlZiBfX09CSkNfXwpAQCAtNTgsOSArNTksMTAgQEAgaW5saW5lIENURm9udFJlZiB0b0NURm9u
dFJlZihOU0ZvbnQgKm5zRgogCiBjbGFzcyBGb250UGxhdGZvcm1EYXRhIHsKICAgcHVibGljOgot
ICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29s
IHN5bnRoZXRpY09ibGlxdWUpCisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29s
IHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9y
aWVudGF0aW9uID0gSG9yaXpvbnRhbCkKICAgICAgICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhl
dGljQm9sZCkKICAgICAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGljT2JsaXF1ZSkK
KyAgICAgICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQogICAgICAgICAsIG1fYXRzdUZv
bnRJRCgwKQogICAgICAgICAsIG1fc2l6ZShzaXplKQogICAgICAgICAsIG1fZm9udCgwKQpAQCAt
NzEsMTEgKzczLDEyIEBAIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICAgIHsKICAgICB9CiAK
LSAgICBGb250UGxhdGZvcm1EYXRhKE5TRm9udCAqbnNGb250LCBib29sIHN5bnRoZXRpY0JvbGQg
PSBmYWxzZSwgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0gZmFsc2UpOworICAgIEZvbnRQbGF0Zm9y
bURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3ludGhldGljQm9sZCA9IGZhbHNlLCBib29sIHN5
bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCk7CiAg
ICAgCi0gICAgRm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dGb250LCBBVFNVRm9udElEIGZv
bnRJRCwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlx
dWUpCisgICAgRm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dGb250LCBBVFNVRm9udElEIGZv
bnRJRCwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlx
dWUsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKICAgICAgICAgOiBtX3N5bnRoZXRpY0Jv
bGQoc3ludGhldGljQm9sZCkKICAgICAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGlj
T2JsaXF1ZSkKKyAgICAgICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQogICAgICAgICAs
IG1fYXRzdUZvbnRJRChmb250SUQpCiAgICAgICAgICwgbV9zaXplKHNpemUpCiAgICAgICAgICwg
bV9mb250KDApCkBAIC05NCw5ICs5NywxMSBAQCBjbGFzcyBGb250UGxhdGZvcm1EYXRhIHsKICAg
ICBmbG9hdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgYm9vbCBzeW50aGV0
aWNCb2xkKCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNCb2xkOyB9CiAgICAgYm9vbCBzeW50
aGV0aWNPYmxpcXVlKCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNPYmxpcXVlOyB9CisgICAg
Rm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRhdGlv
bjsgfQogCiAgICAgYm9vbCBtX3N5bnRoZXRpY0JvbGQ7CiAgICAgYm9vbCBtX3N5bnRoZXRpY09i
bGlxdWU7CisgICAgRm9udE9yaWVudGF0aW9uIG1fb3JpZW50YXRpb247CiAKICAgICBBVFNVRm9u
dElEIG1fYXRzdUZvbnRJRDsKICAgICBmbG9hdCBtX3NpemU7CkBAIC0xMDQsNyArMTA5LDcgQEAg
Y2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0CiAgICAg
ewogICAgICAgICBBU1NFUlQobV9mb250ICE9IDAgfHwgbV9jZ0ZvbnQgPT0gMCk7Ci0gICAgICAg
IHVpbnRwdHJfdCBoYXNoQ29kZXNbMl0gPSB7ICh1aW50cHRyX3QpbV9mb250LCBtX3N5bnRoZXRp
Y0JvbGQgPDwgMSB8IG1fc3ludGhldGljT2JsaXF1ZSB9OworICAgICAgICB1aW50cHRyX3QgaGFz
aENvZGVzWzJdID0geyAodWludHB0cl90KW1fZm9udCwgbV9vcmllbnRhdGlvbiA8PCAyIHwgbV9z
eW50aGV0aWNCb2xkIDw8IDEgfCBtX3N5bnRoZXRpY09ibGlxdWUgfTsKICAgICAgICAgcmV0dXJu
IFN0cmluZ0ltcGw6OmNvbXB1dGVIYXNoKHJlaW50ZXJwcmV0X2Nhc3Q8VUNoYXIqPihoYXNoQ29k
ZXMpLCBzaXplb2YoaGFzaENvZGVzKSAvIHNpemVvZihVQ2hhcikpOwogICAgIH0KIApAQCAtMTEz
LDcgKzExOCw3IEBAIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICAgIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBvdGhlcikgY29uc3QKICAgICB7IAogICAgICAgICBy
ZXR1cm4gbV9mb250ID09IG90aGVyLm1fZm9udCAmJiBtX3N5bnRoZXRpY0JvbGQgPT0gb3RoZXIu
bV9zeW50aGV0aWNCb2xkICYmIG1fc3ludGhldGljT2JsaXF1ZSA9PSBvdGhlci5tX3N5bnRoZXRp
Y09ibGlxdWUgJiYgCi0gICAgICAgICAgICAgICBtX2NnRm9udCA9PSBvdGhlci5tX2NnRm9udCAm
JiBtX3NpemUgPT0gb3RoZXIubV9zaXplICYmIG1fYXRzdUZvbnRJRCA9PSBvdGhlci5tX2F0c3VG
b250SUQ7CisgICAgICAgICAgICAgICBtX2NnRm9udCA9PSBvdGhlci5tX2NnRm9udCAmJiBtX3Np
emUgPT0gb3RoZXIubV9zaXplICYmIG1fYXRzdUZvbnRJRCA9PSBvdGhlci5tX2F0c3VGb250SUQg
JiYgbV9vcmllbnRhdGlvbiA9PSBvdGhlci5tX29yaWVudGF0aW9uOwogICAgIH0KIAogICAgIE5T
Rm9udCAqZm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udDsgfQpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2Eu
bW0JKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9G
b250UGxhdGZvcm1EYXRhQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ0LDkgKzQ0LDEwIEBA
IHZvaWQgRm9udFBsYXRmb3JtRGF0YTo6bG9hZEZvbnQoTlNGb250KiAKIH0KICNlbmRpZiAgLy8g
UExBVEZPUk0oTUFDKQogCi1Gb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKE5TRm9u
dCAqbnNGb250LCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSkKK0Zv
bnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoTlNGb250ICpuc0ZvbnQsIGJvb2wgc3lu
dGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3JpZW50
YXRpb24pCiAgICAgOiBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkKICAgICAsIG1fc3lu
dGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQorICAgICwgbV9vcmllbnRhdGlvbihvcmll
bnRhdGlvbikKICAgICAsIG1fZm9udChuc0ZvbnQpCiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
VElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICAvLyBGSVhNRTogQ2hyb21pdW06IFRoZSBmb2xsb3dp
bmcgY29kZSBpc24ndCBjb3JyZWN0IGZvciB0aGUgQ2hyb21pdW0gcG9ydCBzaW5jZSB0aGUgc2Fu
ZGJveCBtaWdodApAQCAtODMsNiArODQsNyBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZv
cm1EYXRhKGNvbnN0CiAgICAgbV9jZ0ZvbnQgPSBmLm1fY2dGb250OwogICAgIG1fYXRzdUZvbnRJ
RCA9IGYubV9hdHN1Rm9udElEOwogICAgIG1faXNDb2xvckJpdG1hcEZvbnQgPSBmLm1faXNDb2xv
ckJpdG1hcEZvbnQ7CisgICAgbV9vcmllbnRhdGlvbiA9IGYubV9vcmllbnRhdGlvbjsKICNpZiBV
U0UoQ09SRV9URVhUKQogICAgIG1fQ1RGb250ID0gZi5tX0NURm9udDsKICNlbmRpZgpAQCAtMTEy
LDYgKzExNCw3IEBAIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIEZvbnRQbGF0Zm9ybURhdGEKICAg
ICAgICAgQ0ZSZWxlYXNlKG1fZm9udCk7CiAgICAgbV9mb250ID0gZi5tX2ZvbnQ7CiAgICAgbV9p
c0NvbG9yQml0bWFwRm9udCA9IGYubV9pc0NvbG9yQml0bWFwRm9udDsKKyAgICBtX29yaWVudGF0
aW9uID0gZi5tX29yaWVudGF0aW9uOwogI2lmIFVTRShDT1JFX1RFWFQpCiAgICAgbV9DVEZvbnQg
PSBmLm1fQ1RGb250OwogI2VuZGlmCkBAIC0xNjksNyArMTcyLDcgQEAgYm9vbCBGb250UGxhdGZv
cm1EYXRhOjpyb3VuZHNHbHlwaEFkdmFuYwogCiBib29sIEZvbnRQbGF0Zm9ybURhdGE6OmFsbG93
c0xpZ2F0dXJlcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFbW21fZm9udCBjb3ZlcmVkQ2hhcmFj
dGVyU2V0XSBjaGFyYWN0ZXJJc01lbWJlcjonYSddOworICAgIHJldHVybiBtX29yaWVudGF0aW9u
ID09IEhvcml6b250YWwgJiYgIVtbbV9mb250IGNvdmVyZWRDaGFyYWN0ZXJTZXRdIGNoYXJhY3Rl
cklzTWVtYmVyOidhJ107CiB9CiAKICNpZiBVU0UoQ09SRV9URVhUKQpAQCAtMTg3LDcgKzE5MCw4
IEBAIENURm9udFJlZiBGb250UGxhdGZvcm1EYXRhOjpjdEZvbnQoKSBjb24KIFN0cmluZyBGb250
UGxhdGZvcm1EYXRhOjpkZXNjcmlwdGlvbigpIGNvbnN0CiB7CiAgICAgUmV0YWluUHRyPENGU3Ry
aW5nUmVmPiBjZ0ZvbnREZXNjcmlwdGlvbihBZG9wdENGLCBDRkNvcHlEZXNjcmlwdGlvbihjZ0Zv
bnQoKSkpOwotICAgIHJldHVybiBTdHJpbmcoY2dGb250RGVzY3JpcHRpb24uZ2V0KCkpICsgIiAi
ICsgU3RyaW5nOjpudW1iZXIobV9zaXplKSArIChtX3N5bnRoZXRpY0JvbGQgPyAiIHN5bnRoZXRp
YyBib2xkIiA6ICIiKSArIChtX3N5bnRoZXRpY09ibGlxdWUgPyAiIHN5bnRoZXRpYyBvYmxpcXVl
IiA6ICIiKTsKKyAgICByZXR1cm4gU3RyaW5nKGNnRm9udERlc2NyaXB0aW9uLmdldCgpKSArICIg
IiArIFN0cmluZzo6bnVtYmVyKG1fc2l6ZSkKKyAgICAgICAgICAgICsgKG1fc3ludGhldGljQm9s
ZCA/ICIgc3ludGhldGljIGJvbGQiIDogIiIpICsgKG1fc3ludGhldGljT2JsaXF1ZSA/ICIgc3lu
dGhldGljIG9ibGlxdWUiIDogIiIpICsgKG1fb3JpZW50YXRpb24gPyAiIHZlcnRpY2FsIG9yaWVu
dGF0aW9uIiA6ICIiKTsKIH0KICNlbmRpZgogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2d0ay9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhUGFuZ28uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFQYW5nby5j
cHAJKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YVBhbmdvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAs
NyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmCiB7CiB9CiAKLUZv
bnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShp
bnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUpCitGb250
UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50
IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiwgRm9udFJlbmRl
cmluZ01vZGUpCiB7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9mb250RmFjZSwgc2l6
ZSwgYm9sZCwgaXRhbGljKTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFp
a3UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24g
NzAxNDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGYKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJv
bGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xk
LCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAg
ICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9oYWlrdS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIx
LDYgKzIxLDcgQEAKICNpZm5kZWYgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZv
bnRDdXN0b21QbGF0Zm9ybURhdGFfaAogCisjaW5jbHVkZSAiRm9udE9yaWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtMzcsNyArMzgsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3Ry
aW5nJik7CiAKLSAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBz
aXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJl
bmRlcmluZ01vZGUpOworICAgICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEo
aW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6
b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAgICAgfTsK
IAogICAgIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEqIGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURh
dGEoU2hhcmVkQnVmZmVyKik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q2FjaGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvRm9udENhY2hlTWFjLm1tCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQyLDcgKzE0
Miw4IEBAIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBGb250Q2FjaGU6OmdldEZvbnQKIAogICAgIEZv
bnRQbGF0Zm9ybURhdGEgYWx0ZXJuYXRlRm9udChzdWJzdGl0dXRlRm9udCwgCiAgICAgICAgICFm
b250LmlzUGxhdGZvcm1Gb250KCkgJiYgaXNBcHBLaXRGb250V2VpZ2h0Qm9sZCh3ZWlnaHQpICYm
ICFpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKHN1YnN0aXR1dGVGb250V2VpZ2h0KSwKLSAgICAgICAg
IWZvbnQuaXNQbGF0Zm9ybUZvbnQoKSAmJiAodHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQpICYm
ICEoc3Vic3RpdHV0ZUZvbnRUcmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkpOworICAgICAgICAh
Zm9udC5pc1BsYXRmb3JtRm9udCgpICYmICh0cmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkgJiYg
IShzdWJzdGl0dXRlRm9udFRyYWl0cyAmIE5TRm9udEl0YWxpY1RyYWl0KSwKKyAgICAgICAgcGxh
dGZvcm1EYXRhLm1fb3JpZW50YXRpb24pOwogICAgIHJldHVybiBnZXRDYWNoZWRGb250RGF0YSgm
YWx0ZXJuYXRlRm9udCk7CiB9CiAKQEAgLTIxMCw3ICsyMTEsNyBAQCBGb250UGxhdGZvcm1EYXRh
KiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQCiAgICAgYm9vbCBzeW50aGV0aWNCb2xkID0gaXNBcHBL
aXRGb250V2VpZ2h0Qm9sZCh3ZWlnaHQpICYmICFpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKGFjdHVh
bFdlaWdodCk7CiAgICAgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0gKHRyYWl0cyAmIE5TRm9udEl0
YWxpY1RyYWl0KSAmJiAhKGFjdHVhbFRyYWl0cyAmIE5TRm9udEl0YWxpY1RyYWl0KTsKIAotICAg
IHJldHVybiBuZXcgRm9udFBsYXRmb3JtRGF0YShwbGF0Zm9ybUZvbnQsIHN5bnRoZXRpY0JvbGQs
IHN5bnRoZXRpY09ibGlxdWUpOworICAgIHJldHVybiBuZXcgRm9udFBsYXRmb3JtRGF0YShwbGF0
Zm9ybUZvbnQsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIGZvbnREZXNjcmlwdGlv
bi5vcmllbnRhdGlvbigpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5jcHAJKHJldmlzaW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDkg
KzM4LDkgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogICAgIENH
Rm9udFJlbGVhc2UobV9jZ0ZvbnQpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBp
dGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxh
dGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlKQogewot
ICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKG1fY2dGb250LCAoQVRTVUZvbnRJRCltX2F0c0Zv
bnQsIHNpemUsIGJvbGQsIGl0YWxpYyk7CisgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9j
Z0ZvbnQsIChBVFNVRm9udElEKW1fYXRzRm9udCwgc2l6ZSwgYm9sZCwgaXRhbGljLCBvcmllbnRh
dGlvbik7CiB9CiAKIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEqIGNyZWF0ZUZvbnRDdXN0b21QbGF0
Zm9ybURhdGEoU2hhcmVkQnVmZmVyKiBidWZmZXIpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCShyZXZpc2lv
biA3MDE0MikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2lmbmRlZiBGb250
Q3VzdG9tUGxhdGZvcm1EYXRhX2gKICNkZWZpbmUgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAK
KyNpbmNsdWRlICJGb250T3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9k
ZS5oIgogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NGQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CkBAIC00MSw3ICs0Miw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
IDogTm9uY29weWEKICAgICB7fQogICAgIH5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCk7CiAKLSAg
ICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7Cisg
ICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQs
IGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsLCBGb250UmVuZGVyaW5n
TW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOwogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNG
b3JtYXQoY29uc3QgU3RyaW5nJik7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0dseXBoUGFnZVRyZWVOb2RlTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9HbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHAJKHJldmlzaW9uIDcwMTQy
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR2x5cGhQYWdlVHJlZU5vZGVNYWMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxNSArNDAsNzAgQEAgYm9vbCBHbHlwaFBhZ2U6OmZp
bGwodW5zaWduZWQgb2Zmc2V0LCB1bgogICAgIGJvb2wgaGF2ZUdseXBocyA9IGZhbHNlOwogCiAj
aWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCi0gICAgVmVjdG9yPENHR2x5cGgsIDUxMj4gZ2x5cGhz
KGJ1ZmZlckxlbmd0aCk7Ci0gICAgd2tHZXRHbHlwaHNGb3JDaGFyYWN0ZXJzKGZvbnREYXRhLT5w
bGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgYnVmZmVyLCBnbHlwaHMuZGF0YSgpLCBidWZmZXJMZW5n
dGgpOwotCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAg
ICAgIGlmICghZ2x5cGhzW2ldKQotICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zm
c2V0ICsgaSwgMCwgMCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgc2V0R2x5cGhEYXRh
Rm9ySW5kZXgob2Zmc2V0ICsgaSwgZ2x5cGhzW2ldLCBmb250RGF0YSk7Ci0gICAgICAgICAgICBo
YXZlR2x5cGhzID0gdHJ1ZTsKKyAgICBpZiAoZm9udERhdGEtPnBsYXRmb3JtRGF0YSgpLm9yaWVu
dGF0aW9uKCkgPT0gSG9yaXpvbnRhbCkgeworICAgICAgICBWZWN0b3I8Q0dHbHlwaCwgNTEyPiBn
bHlwaHMoYnVmZmVyTGVuZ3RoKTsKKyAgICAgICAgd2tHZXRHbHlwaHNGb3JDaGFyYWN0ZXJzKGZv
bnREYXRhLT5wbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgYnVmZmVyLCBnbHlwaHMuZGF0YSgpLCBi
dWZmZXJMZW5ndGgpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyAr
K2kpIHsKKyAgICAgICAgICAgIGlmICghZ2x5cGhzW2ldKQorICAgICAgICAgICAgICAgIHNldEds
eXBoRGF0YUZvckluZGV4KG9mZnNldCArIGksIDAsIDApOworICAgICAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaSwgZ2x5cGhzW2ld
LCBmb250RGF0YSk7CisgICAgICAgICAgICAgICAgaGF2ZUdseXBocyA9IHRydWU7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICAvLyBXZSBhc2sgQ29yZVRl
eHQgZm9yIHBvc3NpYmxlIHZlcnRpY2FsIHZhcmlhbnQgZ2x5cGhzCisgICAgICAgIFJldGFpblB0
cjxDRlN0cmluZ1JlZj4gc3RyaW5nKEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3Rl
cnNOb0NvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVyLCBidWZmZXJMZW5ndGgsIGtDRkFs
bG9jYXRvck51bGwpKTsKKyAgICAgICAgUmV0YWluUHRyPENGQXR0cmlidXRlZFN0cmluZ1JlZj4g
YXR0cmlidXRlZFN0cmluZyhBZG9wdENGLCBDRkF0dHJpYnV0ZWRTdHJpbmdDcmVhdGUoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgc3RyaW5nLmdldCgpLCBmb250RGF0YS0+Z2V0Q0ZTdHJpbmdBdHRyaWJ1
dGVzKDApKSk7CisgICAgICAgIFJldGFpblB0cjxDVExpbmVSZWY+IGxpbmUoQWRvcHRDRiwgQ1RM
aW5lQ3JlYXRlV2l0aEF0dHJpYnV0ZWRTdHJpbmcoYXR0cmlidXRlZFN0cmluZy5nZXQoKSkpOwor
CisgICAgICAgIENGQXJyYXlSZWYgcnVuQXJyYXkgPSBDVExpbmVHZXRHbHlwaFJ1bnMobGluZS5n
ZXQoKSk7CisgICAgICAgIENGSW5kZXggcnVuQ291bnQgPSBDRkFycmF5R2V0Q291bnQocnVuQXJy
YXkpOworCisgICAgICAgIC8vIEluaXRpYWxpemUgZ2x5cGggZW50cmllcworICAgICAgICBmb3Ig
KHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7ICsraW5kZXgpCisgICAgICAgICAg
ICBzZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBpbmRleCwgMCwgMCk7CisKKyAgICAgICAg
VmVjdG9yPENHR2x5cGgsIDUxMj4gZ2x5cGhWZWN0b3I7CisgICAgICAgIFZlY3RvcjxDRkluZGV4
LCA1MTI+IGluZGV4VmVjdG9yOworICAgICAgICBib29sIGRvbmUgPSBmYWxzZTsKKyAgICAgICAg
Zm9yIChDRkluZGV4IHIgPSAwOyByIDwgcnVuQ291bnQgJiYgIWRvbmUgOyArK3IpIHsKKyAgICAg
ICAgICAgIC8vIENUTGluZSBjb3VsZCBtYXAgY2hhcmFjdGVycyBvdmVyIG11bHRpcGxlIGZvbnRz
IHVzaW5nIGl0cyBvd24gZm9udCBmYWxsYmFjayBsaXN0LgorICAgICAgICAgICAgLy8gV2UgbmVl
ZCB0byBwaWNrIHJ1bnMgdGhhdCB1c2UgdGhlIGV4YWN0IGZvbnQgd2UgbmVlZCwgaS5lLiwgZm9u
dERhdGEtPnBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLgorICAgICAgICAgICAgQ1RSdW5SZWYgY3RS
dW4gPSBzdGF0aWNfY2FzdDxDVFJ1blJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChydW5BcnJh
eSwgcikpOworICAgICAgICAgICAgQVNTRVJUKENGR2V0VHlwZUlEKGN0UnVuKSA9PSBDVFJ1bkdl
dFR5cGVJRCgpKTsKKworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMgPSBD
VFJ1bkdldEF0dHJpYnV0ZXMoY3RSdW4pOworICAgICAgICAgICAgQ1RGb250UmVmIHJ1bkZvbnQg
PSBzdGF0aWNfY2FzdDxDVEZvbnRSZWY+KENGRGljdGlvbmFyeUdldFZhbHVlKGF0dHJpYnV0ZXMs
IGtDVEZvbnRBdHRyaWJ1dGVOYW1lKSk7CisgICAgICAgICAgICBSZXRhaW5QdHI8Q0dGb250UmVm
PiBydW5DR0ZvbnQoQWRvcHRDRiwgQ1RGb250Q29weUdyYXBoaWNzRm9udChydW5Gb250LCAwKSk7
CisgICAgICAgICAgICAvLyBVc2UgQ0dGb250IGhlcmUgYXMgQ0ZFcXVhbCBmb3IgQ1RGb250IGNv
dW50cyBhbGwgYXR0cmlidXRlcyBmb3IgZm9udC4KKyAgICAgICAgICAgIGlmIChDRkVxdWFsKGZv
bnREYXRhLT5wbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgcnVuQ0dGb250LmdldCgpKSkgeworICAg
ICAgICAgICAgICAgIC8vIFRoaXMgcnVuIHVzZXMgdGhlIGZvbnQgd2Ugd2FudC4gRXh0cmFjdCBn
bHlwaHMuCisgICAgICAgICAgICAgICAgQ0ZJbmRleCBnbHlwaENvdW50ID0gQ1RSdW5HZXRHbHlw
aENvdW50KGN0UnVuKTsKKyAgICAgICAgICAgICAgICBjb25zdCBDR0dseXBoKiBnbHlwaHMgPSBD
VFJ1bkdldEdseXBoc1B0cihjdFJ1bik7CisgICAgICAgICAgICAgICAgaWYgKCFnbHlwaHMpIHsK
KyAgICAgICAgICAgICAgICAgICAgZ2x5cGhWZWN0b3IucmVzaXplKGdseXBoQ291bnQpOworICAg
ICAgICAgICAgICAgICAgICBDVFJ1bkdldEdseXBocyhjdFJ1biwgQ0ZSYW5nZU1ha2UoMCwgMCks
IGdseXBoVmVjdG9yLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgIGdseXBocyA9IGdseXBo
VmVjdG9yLmRhdGEoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29uc3Qg
Q0ZJbmRleCogc3RyaW5nSW5kaWNlcyA9IENUUnVuR2V0U3RyaW5nSW5kaWNlc1B0cihjdFJ1bik7
CisgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmdJbmRpY2VzKSB7CisgICAgICAgICAgICAgICAg
ICAgIGluZGV4VmVjdG9yLnJlc2l6ZShnbHlwaENvdW50KTsKKyAgICAgICAgICAgICAgICAgICAg
Q1RSdW5HZXRTdHJpbmdJbmRpY2VzKGN0UnVuLCBDRlJhbmdlTWFrZSgwLCAwKSwgaW5kZXhWZWN0
b3IuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nSW5kaWNlcyA9IGluZGV4VmVj
dG9yLmRhdGEoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmb3IgKENG
SW5kZXggaSA9IDA7IGkgPCBnbHlwaENvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKHN0cmluZ0luZGljZXNbaV0gPj0gc3RhdGljX2Nhc3Q8Q0ZJbmRleD4obGVuZ3RoKSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBp
ZiAoZ2x5cGhzW2ldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJ
bmRleChvZmZzZXQgKyBzdHJpbmdJbmRpY2VzW2ldLCBnbHlwaHNbaV0sIGZvbnREYXRhKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGhhdmVHbHlwaHMgPSB0cnVlOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQogI2Vsc2UKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnRE
YXRhQ29yZVRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL1NpbXBsZUZvbnREYXRhQ29yZVRleHQuY3BwCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhQ29yZVRleHQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw4ICszMCw2IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQg
IlNpbXBsZUZvbnREYXRhLmgiCiAKLSNpZiBVU0UoQ09SRV9URVhUKQotCiAjaW1wb3J0ICJGb250
LmgiCiAjaW1wb3J0ICJGb250Q2FjaGUuaCIKICNpbXBvcnQgIkZvbnREZXNjcmlwdGlvbi5oIgpA
QCAtNjAsMTYgKzU4LDE2IEBAIENGRGljdGlvbmFyeVJlZiBTaW1wbGVGb250RGF0YTo6Z2V0Q0ZT
dHIKICAgICBpZiAoISh0eXBlc2V0dGluZ0ZlYXR1cmVzICYgS2VybmluZykpIHsKICAgICAgICAg
c3RhdGljIGNvbnN0IGZsb2F0IGtlcm5pbmdBZGp1c3RtZW50VmFsdWUgPSAwOwogICAgICAgICBz
dGF0aWMgQ0ZOdW1iZXJSZWYga2VybmluZ0FkanVzdG1lbnQgPSBDRk51bWJlckNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJGbG9hdFR5cGUsICZrZXJuaW5nQWRqdXN0bWVudFZh
bHVlKTsKLSAgICAgICAgc3RhdGljIGNvbnN0IHZvaWQqIGtleXNXaXRoS2VybmluZ0Rpc2FibGVk
W10gPSB7IGtDVEZvbnRBdHRyaWJ1dGVOYW1lLCBrQ1RLZXJuQXR0cmlidXRlTmFtZSwga0NUTGln
YXR1cmVBdHRyaWJ1dGVOYW1lIH07CisgICAgICAgIHN0YXRpYyBjb25zdCB2b2lkKiBrZXlzV2l0
aEtlcm5pbmdEaXNhYmxlZFtdID0geyBrQ1RGb250QXR0cmlidXRlTmFtZSwga0NUS2VybkF0dHJp
YnV0ZU5hbWUsIGtDVExpZ2F0dXJlQXR0cmlidXRlTmFtZSwga0NUVmVydGljYWxGb3Jtc0F0dHJp
YnV0ZU5hbWUgfTsKICAgICAgICAgY29uc3Qgdm9pZCogdmFsdWVzV2l0aEtlcm5pbmdEaXNhYmxl
ZFtdID0geyBwbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSwga2VybmluZ0FkanVzdG1lbnQsIGFsbG93
TGlnYXR1cmVzCi0gICAgICAgICAgICA/IGxpZ2F0dXJlc0FsbG93ZWQgOiBsaWdhdHVyZXNOb3RB
bGxvd2VkIH07CisgICAgICAgICAgICA/IGxpZ2F0dXJlc0FsbG93ZWQgOiBsaWdhdHVyZXNOb3RB
bGxvd2VkLCBwbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsID8ga0NGQm9v
bGVhblRydWUgOiBrQ0ZCb29sZWFuRmFsc2UgfTsKICAgICAgICAgYXR0cmlidXRlc0RpY3Rpb25h
cnkuYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoMCwga2V5c1dpdGhLZXJuaW5nRGlzYWJsZWQs
IHZhbHVlc1dpdGhLZXJuaW5nRGlzYWJsZWQsCiAgICAgICAgICAgICBzaXplb2Yoa2V5c1dpdGhL
ZXJuaW5nRGlzYWJsZWQpIC8gc2l6ZW9mKCprZXlzV2l0aEtlcm5pbmdEaXNhYmxlZCksCiAgICAg
ICAgICAgICAma0NGQ29weVN0cmluZ0RpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGlj
dGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQnkgb21p
dHRpbmcgdGhlIGtDVEtlcm5BdHRyaWJ1dGVOYW1lIGF0dHJpYnV0ZSwgd2UgZ2V0IENvcmUgVGV4
dCdzIHN0YW5kYXJkIGtlcm5pbmcuCi0gICAgICAgIHN0YXRpYyBjb25zdCB2b2lkKiBrZXlzV2l0
aEtlcm5pbmdFbmFibGVkW10gPSB7IGtDVEZvbnRBdHRyaWJ1dGVOYW1lLCBrQ1RMaWdhdHVyZUF0
dHJpYnV0ZU5hbWUgfTsKLSAgICAgICAgY29uc3Qgdm9pZCogdmFsdWVzV2l0aEtlcm5pbmdFbmFi
bGVkW10gPSB7IHBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLCBhbGxvd0xpZ2F0dXJlcyA/IGxpZ2F0
dXJlc0FsbG93ZWQgOiBsaWdhdHVyZXNOb3RBbGxvd2VkIH07CisgICAgICAgIHN0YXRpYyBjb25z
dCB2b2lkKiBrZXlzV2l0aEtlcm5pbmdFbmFibGVkW10gPSB7IGtDVEZvbnRBdHRyaWJ1dGVOYW1l
LCBrQ1RMaWdhdHVyZUF0dHJpYnV0ZU5hbWUsIGtDVFZlcnRpY2FsRm9ybXNBdHRyaWJ1dGVOYW1l
IH07CisgICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlc1dpdGhLZXJuaW5nRW5hYmxlZFtdID0geyBw
bGF0Zm9ybURhdGEoKS5jdEZvbnQoKSwgYWxsb3dMaWdhdHVyZXMgPyBsaWdhdHVyZXNBbGxvd2Vk
IDogbGlnYXR1cmVzTm90QWxsb3dlZCwgcGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBW
ZXJ0aWNhbCA/IGtDRkJvb2xlYW5UcnVlIDoga0NGQm9vbGVhbkZhbHNlIH07CiAgICAgICAgIGF0
dHJpYnV0ZXNEaWN0aW9uYXJ5LmFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKDAsIGtleXNXaXRo
S2VybmluZ0VuYWJsZWQsIHZhbHVlc1dpdGhLZXJuaW5nRW5hYmxlZCwKICAgICAgICAgICAgIHNp
emVvZihrZXlzV2l0aEtlcm5pbmdFbmFibGVkKSAvIHNpemVvZigqa2V5c1dpdGhLZXJuaW5nRW5h
YmxlZCksCiAgICAgICAgICAgICAma0NGQ29weVN0cmluZ0RpY3Rpb25hcnlLZXlDYWxsQmFja3Ms
ICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CkBAIC03OSw1ICs3NywzIEBAIENG
RGljdGlvbmFyeVJlZiBTaW1wbGVGb250RGF0YTo6Z2V0Q0ZTdHIKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L1NpbXBsZUZvbnREYXRhTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC00MTcsMTEgKzQxNyw5IEBAIEZsb2F0UmVjdCBTaW1wbGVGb250RGF0YTo6cGxhdGZv
cm1Cb3VuZHMKIHsKICAgICBGbG9hdFJlY3QgYm91bmRpbmdCb3g7CiAjaWZuZGVmIEJVSUxESU5H
X09OX1RJR0VSCi0gICAgQ0dSZWN0IGJveDsKLSAgICBDR0ZvbnRHZXRHbHlwaEJCb3hlcyhwbGF0
Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgJmdseXBoLCAxLCAmYm94KTsKLSAgICBmbG9hdCBwb2ludFNp
emUgPSBwbGF0Zm9ybURhdGEoKS5tX3NpemU7Ci0gICAgQ0dGbG9hdCBzY2FsZSA9IHBvaW50U2l6
ZSAvIHVuaXRzUGVyRW0oKTsKLSAgICBib3VuZGluZ0JveCA9IENHUmVjdEFwcGx5QWZmaW5lVHJh
bnNmb3JtKGJveCwgQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUoc2NhbGUsIC1zY2FsZSkpOwor
ICAgIGJvdW5kaW5nQm94ID0gQ1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocyhtX3BsYXRm
b3JtRGF0YS5jdEZvbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgbV9wbGF0Zm9ybURhdGEub3Jp
ZW50YXRpb24oKSA9PSBWZXJ0aWNhbCA/IGtDVEZvbnRWZXJ0aWNhbE9yaWVudGF0aW9uIDoga0NU
Rm9udEhvcml6b250YWxPcmllbnRhdGlvbiwgJmdseXBoLCAwLCAxKTsKKyAgICBib3VuZGluZ0Jv
eC5zZXRZKC1ib3VuZGluZ0JveC5ib3R0b20oKSk7CiAjZWxzZQogICAgIC8vIEZJWE1FOiBDdXN0
b20gZm9udHMgZG9uJ3QgaGF2ZSBOU0ZvbnRzLCBzbyB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3QgY29t
cHV0ZSBjb3JyZWN0IGJvdW5kcyBmb3IgdGhlc2Ugb24gVGlnZXIuCiAgICAgaWYgKCFtX3BsYXRm
b3JtRGF0YS5mb250KCkpCkBAIC00MzcsMTQgKzQzNSwxOCBAQCBGbG9hdFJlY3QgU2ltcGxlRm9u
dERhdGE6OnBsYXRmb3JtQm91bmRzCiAKIGZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdp
ZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiB7Ci0gICAgTlNGb250KiBmb250ID0gcGxh
dGZvcm1EYXRhKCkuZm9udCgpOwotICAgIGZsb2F0IHBvaW50U2l6ZSA9IHBsYXRmb3JtRGF0YSgp
Lm1fc2l6ZTsKLSAgICBDR0FmZmluZVRyYW5zZm9ybSBtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtl
U2NhbGUocG9pbnRTaXplLCBwb2ludFNpemUpOwogICAgIENHU2l6ZSBhZHZhbmNlOwotICAgIGlm
ICghd2tHZXRHbHlwaFRyYW5zZm9ybWVkQWR2YW5jZXMocGxhdGZvcm1EYXRhKCkuY2dGb250KCks
IGZvbnQsICZtLCAmZ2x5cGgsICZhZHZhbmNlKSkgewotICAgICAgICBMT0dfRVJST1IoIlVuYWJs
ZSB0byBjYWNoZSBnbHlwaCB3aWR0aHMgZm9yICVAICVmIiwgW2ZvbnQgZGlzcGxheU5hbWVdLCBw
b2ludFNpemUpOwotICAgICAgICBhZHZhbmNlLndpZHRoID0gMDsKLSAgICB9CisgICAgaWYgKG1f
cGxhdGZvcm1EYXRhLm9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbCkgeworICAgICAgICBOU0Zv
bnQqIGZvbnQgPSBwbGF0Zm9ybURhdGEoKS5mb250KCk7CisgICAgICAgIGZsb2F0IHBvaW50U2l6
ZSA9IHBsYXRmb3JtRGF0YSgpLm1fc2l6ZTsKKyAgICAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gbSA9
IENHQWZmaW5lVHJhbnNmb3JtTWFrZVNjYWxlKHBvaW50U2l6ZSwgcG9pbnRTaXplKTsKKyAgICAg
ICAgaWYgKCF3a0dldEdseXBoVHJhbnNmb3JtZWRBZHZhbmNlcyhwbGF0Zm9ybURhdGEoKS5jZ0Zv
bnQoKSwgZm9udCwgJm0sICZnbHlwaCwgJmFkdmFuY2UpKSB7CisgICAgICAgICAgICBMT0dfRVJS
T1IoIlVuYWJsZSB0byBjYWNoZSBnbHlwaCB3aWR0aHMgZm9yICVAICVmIiwgW2ZvbnQgZGlzcGxh
eU5hbWVdLCBwb2ludFNpemUpOworICAgICAgICAgICAgYWR2YW5jZS53aWR0aCA9IDA7CisgICAg
ICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgQ1RGb250R2V0QWR2YW5jZXNGb3JHbHlwaHMobV9w
bGF0Zm9ybURhdGEuY3RGb250KCksIGtDVEZvbnRWZXJ0aWNhbE9yaWVudGF0aW9uLCAmZ2x5cGgs
ICZhZHZhbmNlLCAxKTsKKwogICAgIHJldHVybiBhZHZhbmNlLndpZHRoICsgbV9zeW50aGV0aWNC
b2xkT2Zmc2V0OwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRD
dXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNzAxNDIpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjIsNiArMjIsNyBAQAogI2lmbmRlZiBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
X2gKICNkZWZpbmUgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAKKyNpbmNsdWRlICJGb250T3Jp
ZW50YXRpb24uaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC0zNyw3ICszOCw3
IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKICAgICAvLyBmb3Ig
dXNlIHdpdGggUUZvbnREYXRhYmFzZTo6YWRkQXBwbGljYXRpb25Gb250L3JlbW92ZUFwcGxpY2F0
aW9uRm9udAogICAgIGludCBtX2hhbmRsZTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBs
YXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udFJlbmRlcmlu
Z01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQ
bGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRh
dGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5nTW9k
ZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIH07
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGFRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhUXQuY3BwCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvRm9udEN1c3RvbVBsYXRmb3JtRGF0YVF0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzQsNyArMzQsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3Rv
bVBsYXRmCiAgICAgUUZvbnREYXRhYmFzZTo6cmVtb3ZlQXBwbGljYXRpb25Gb250KG1faGFuZGxl
KTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxh
dGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVyaW5n
TW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRm
b3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9u
LCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICBRRm9udCBmb250OwogICAgIGZvbnQuc2V0RmFt
aWx5KFFGb250RGF0YWJhc2U6OmFwcGxpY2F0aW9uRm9udEZhbWlsaWVzKG1faGFuZGxlKVswXSk7
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjQsNyArNjQsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3Rv
bVBsYXRmCiAjZW5kaWYKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBG
b250UmVuZGVyaW5nTW9kZSBtb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBGb250T3JpZW50YXRpb24sIEZvbnRSZW5kZXJpbmdNb2RlIG1vZGUpCiB7CiAjaWYgT1MoV0lO
RE9XUykKICAgICBBU1NFUlQobV9mb250UmVmZXJlbmNlKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAko
cmV2aXNpb24gNzAxNDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaWZu
ZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhX2gKIAorI2luY2x1ZGUgIkZvbnRPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5k
ZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KQEAgLTYyLDcgKzYzLDcgQEAgc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURh
dGEgOiBOb25jb3B5YQogCiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKIAotICAgIEZv
bnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29s
IGl0YWxpYywKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUs
IGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbnRSZW5kZXJpbmdNb2RlID0g
Tm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChj
b25zdCBTdHJpbmcmKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRD
dXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCShyZXZpc2lvbiA3MDE0MikKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6
On5Gb250Q3VzdG9tUGxhdGYKICAgICB9CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29s
IGl0YWxpYywgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURh
dGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9v
bCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSBy
ZW5kZXJpbmdNb2RlKQogewogICAgIEFTU0VSVChtX2ZvbnRSZWZlcmVuY2UpOwogICAgIEFTU0VS
VChUMmVtYmVkTGlicmFyeSgpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDcwMTQyKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0
Zm9ybURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUg
IkZvbnRPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNDIs
NyArNDMsNyBAQCBzdHJ1Y3QgRm9udEN1c3RvbVBsYXRmb3JtRGF0YSA6IE5vbmNvcHlhCiAKICAg
ICB+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpOwogCi0gICAgRm9udFBsYXRmb3JtRGF0YSBmb250
UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250UmVuZGVy
aW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9u
dFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVu
dGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdN
b2RlKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwog
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhQ2Fpcm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5jcHAJKHJldmlzaW9uIDcwMTQyKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojp+Rm9udEN1c3RvbVBsYXRmCiAgICBjYWlyb19mb250X2ZhY2VfZGVzdHJveShtX2ZvbnRGYWNl
KTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxh
dGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKQorRm9udFBsYXRmb3Jt
RGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBi
b29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24pCiB7CiAgICAgcmV0dXJuIEZv
bnRQbGF0Zm9ybURhdGEobV9mb250RmFjZSwgc2l6ZSwgYm9sZCwgaXRhbGljKTsKIH0KSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWly
by5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGFDYWlyby5oCShyZXZpc2lvbiA3MDE0MikKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWly
b19oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyb19oCiAKKyNpbmNsdWRlICJG
b250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgogCkBAIC0zOSw3ICs0MCw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxh
dGZvcm1EYXRhIDogTm9uY29weWEKICAgICB9CiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEo
KTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9v
bCBib2xkLCBib29sIGl0YWxpYyk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1E
YXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24gPSBI
b3Jpem9udGFsKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmlu
ZyYpOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luY2UvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDcwMTQyKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+
Rm9udEN1c3RvbVBsYXRmCiAgICAgICAgIGdfY3VzdG9tRm9udENhY2hlLT51bnJlZ2lzdGVyRm9u
dChtX25hbWUpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6
OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRS
ZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBp
dGFsaWMsIEZvbnRPcmllbnRhdGlvbiwgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSkK
IHsKICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2M7CiAgICAgZm9udERlc2Muc2V0Q29tcHV0
ZWRTaXplKHNpemUpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlzaW9uIDcwMTQyKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpZm5kZWYgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogCisjaW5jbHVkZSAi
Rm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAt
NDQsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgfkZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEoKTsKIAotICAgICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURh
dGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRSZW5kZXJpbmdNb2RlID0g
Tm9ybWFsUmVuZGVyaW5nTW9kZSk7CisgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRm
b3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9u
IGZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFs
UmVuZGVyaW5nTW9kZSk7CiAKICAgICAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29u
c3QgU3RyaW5nJik7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24gNzAxNDIpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5G
b250Q3VzdG9tUGxhdGYKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBGb250UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywg
Rm9udE9yaWVudGF0aW9uLCBGb250UmVuZGVyaW5nTW9kZSkKIHsKICAgICByZXR1cm4gRm9udFBs
YXRmb3JtRGF0YShzaXplLCBib2xkLCBpdGFsaWMpOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgJKHJldmlz
aW9uIDcwMTQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpZm5kZWYgRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAog
CisjaW5jbHVkZSAiRm9udE9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01v
ZGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgpAQCAtMzcsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3Rh
dGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAKLSAgICAgICAgRm9udFBs
YXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBGb250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOworICAgICAgICBG
b250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9v
bCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRSZW5kZXJpbmdNb2Rl
ID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7CiAgICAgfTsKIAogICAgIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGEqIGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKik7CkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiA3MDE0MikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEwLTEwLTIwICB0YWthbm8gdGFrdW1pICA8dGFrYW5v
MUBhc2lhLmFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBOZWVkIHRvIHN3YXAgZ2x5cGhzIGZvciB2ZXJ0aWNhbCB3cml0aW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk3MworCisgICAg
ICAgICogZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1nbHlwaC10ZXN0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRl
eHQtbWV0cmljcy10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0
L3RleHQvaW50ZXJuYXRpb25hbC92ZXJ0aWNhbC10ZXh0LWdseXBoLXRlc3QtZXhwZWN0ZWQuY2hl
Y2tzdW06IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3RleHQvaW50ZXJuYXRp
b25hbC92ZXJ0aWNhbC10ZXh0LWdseXBoLXRlc3QtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1n
bHlwaC10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zh
c3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRleHQtbWV0cmljcy10ZXN0LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisKIDIwMTAtMTAtMTkgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1nbHlwaC10ZXN0
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwv
dmVydGljYWwtdGV4dC1nbHlwaC10ZXN0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC92ZXJ0aWNhbC10ZXh0LWdseXBoLXRlc3QuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9dXRmLTgiPgorPHRpdGxlPlZlcnRpY2FsIHRleHQgbWV0cmljcyB0ZXN0PC90aXRs
ZT4KKzxzdHlsZT4KK2JvZHkgeworICAgIGZvbnQtZmFtaWx5OiAiSGlyYU1pblByby1XMyI7Cisg
ICAgZm9udC1zaXplOiBsYXJnZTsKK30KKyNob3Jpem9udGFsX1RCIHsKKyAgICAtd2Via2l0LXdy
aXRpbmctbW9kZTogaG9yaXpvbnRhbC10YjsKK30KKyNob3Jpem9udGFsX0JUIHsKKyAgICAtd2Vi
a2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC1idDsKK30KKyN2ZXJ0aWNhbF9STCB7CisgICAg
LXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOworfQorI3ZlcnRpY2FsX0xSIHsKKyAg
ICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7Cit9CisjaG9yaXpvbnRhbF9UQl9j
b21wbGV4IHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10YjsKKyAgICB0
ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5OworfQorI2hvcml6b250YWxfQlRfY29t
cGxleCB7CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwtYnQ7CisgICAgdGV4
dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTsKK30KKyN2ZXJ0aWNhbF9STF9jb21wbGV4
IHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7CisgICAgdGV4dC1yZW5k
ZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTsKK30KKyN2ZXJ0aWNhbF9MUl9jb21wbGV4IHsKKyAg
ICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7CisgICAgdGV4dC1yZW5kZXJpbmc6
IG9wdGltaXplbGVnaWJpbGl0eTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InRlc3QoKSI+Cis8cD5TaW1wbGUgdGV4dCBwYXRoPC9wPgorPHNwYW4gaWQ9InZlcnRpY2FsX1JM
Ij5hYuOBguOAjOOAjeOAgjwvc3Bhbj48YnI+Cis8YnI+Cis8aHI+Cis8cD5Db21wbGV4IHRleHQg
cGF0aDwvcD4KKzxzcGFuIGlkPSJ2ZXJ0aWNhbF9STF9jb21wbGV4Ij5hYuOBguOAjOOAjeOAgjHi
g508L3NwYW4+PGJyPgorPGJyPgorPGhyPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1tZXRyaWNzLXRlc3Qu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC92
ZXJ0aWNhbC10ZXh0LW1ldHJpY3MtdGVzdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1tZXRyaWNzLXRlc3QuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0
bWw7IGNoYXJzZXQ9dXRmLTgiPgorPHRpdGxlPlZlcnRpY2FsIHRleHQgbWV0cmljcyB0ZXN0PC90
aXRsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBwcmludChtZXNzYWdlKQoreworICAgIHZhciBwYXJh
Z3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOworICAgIHBhcmFncmFwaC5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOworfQorZnVu
Y3Rpb24gdGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgdmFyIHBFbGVt
cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzcGFuIik7CisgICAgZm9yICggaSA9
IDAgOyBpIDwgcEVsZW1zLmxlbmd0aCA7ICsraSApCisgICAgeworICAgICAgICB2YXIgZWxlbSA9
IHBFbGVtc1tpXTsKKyAgICAgICAgcHJpbnQoIndpZHRoPSIgKyBlbGVtLm9mZnNldFdpZHRoKTsK
KyAgICB9Cit9Cis8L3NjcmlwdD4KKzxzdHlsZT4KK2JvZHkgeworICAgIGZvbnQtZmFtaWx5OiAi
SGlyYU1pblByby1XMyI7CisgICAgZm9udC1zaXplOiBsYXJnZTsKK30KKyNob3Jpem9udGFsX1RC
IHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10YjsKK30KKyNob3Jpem9u
dGFsX0JUIHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC1idDsKK30KKyN2
ZXJ0aWNhbF9STCB7CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOworfQor
I3ZlcnRpY2FsX0xSIHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7Cit9
CisjaG9yaXpvbnRhbF9UQl9jb21wbGV4IHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogaG9y
aXpvbnRhbC10YjsKKyAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5OworfQor
I2hvcml6b250YWxfQlRfY29tcGxleCB7CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6
b250YWwtYnQ7CisgICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTsKK30KKyN2
ZXJ0aWNhbF9STF9jb21wbGV4IHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwt
cmw7CisgICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTsKK30KKyN2ZXJ0aWNh
bF9MUl9jb21wbGV4IHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7Cisg
ICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTsKK30KKzwvc3R5bGU+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8cD5TaW1wbGUgdGV4dCBwYXRoPC9wPgorPHNw
YW4gaWQ9Imhvcml6b250YWxfVEIiPmFi44GC44CM44CN44CCPC9zcGFuPjxicj4KKzxzcGFuIGlk
PSJob3Jpem9udGFsX0JUIj5hYuOBguOAjOOAjeOAgjwvc3Bhbj48YnI+Cis8c3BhbiBpZD0idmVy
dGljYWxfUkwiPmFi44GC44CM44CN44CCPC9zcGFuPjxicj4KKzxzcGFuIGlkPSJ2ZXJ0aWNhbF9M
UiI+YWLjgYLjgIzjgI3jgII8L3NwYW4+PGJyPgorPGJyPgorPGhyPgorPHA+Q29tcGxleCB0ZXh0
IHBhdGg8L3A+Cis8c3BhbiBpZD0iaG9yaXpvbnRhbF9UQl9jb21wbGV4Ij5hYuOBguOAjOOAjeOA
gjHig508L3NwYW4+PGJyPgorPHNwYW4gaWQ9Imhvcml6b250YWxfQlRfY29tcGxleCI+YWLjgYLj
gIzjgI3jgIIx4oOdPC9zcGFuPjxicj4KKzxzcGFuIGlkPSJ2ZXJ0aWNhbF9STF9jb21wbGV4Ij5h
YuOBguOAjOOAjeOAgjHig508L3NwYW4+PGJyPgorPHNwYW4gaWQ9InZlcnRpY2FsX0xSX2NvbXBs
ZXgiPmFi44GC44CM44CN44CCMeKDnTwvc3Bhbj48YnI+Cis8YnI+Cis8aHI+Cis8cD48b2wgaWQ9
Y29uc29sZT48L29sPjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC92ZXJ0aWNhbC10ZXh0LWdseXBoLXRl
c3QtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRleHQtZ2x5cGgtdGVzdC1leHBl
Y3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L3RleHQvaW50ZXJuYXRpb25hbC92ZXJ0aWNhbC10ZXh0LWdseXBoLXRlc3QtZXhwZWN0ZWQu
Y2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKzgzYTU3YWNlZGViOTc5ZTkzOTU5
Y2Y1OWZlNTljZGZjClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRleHQtZ2x5
cGgtdGVzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRleHQtZ2x5cGgtdGVzdC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90
ZXh0L2ludGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1nbHlwaC10ZXN0LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQxOiBS
ZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogdGVzdAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg0NDIKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
ODAweDQ0MgorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE4KSBzaXplIDc4NHg0MTUKKyAg
ICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgyNworICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsNCkgc2l6ZSAxMzl4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCw0KSB3aWR0aCAxMzk6ICJTaW1wbGUgdGV4dCBwYXRoIgorICAgICAgUmVuZGVyQmxvY2sgKGFu
b255bW91cykgYXQgKDAsNDUpIHNpemUgNzg0eDEyOQorICAgICAgICBSZW5kZXJCbG9jayB7U1BB
Tn0gYXQgKDAsMCkgc2l6ZSAyN3g5NQorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
NCwwKSBzaXplIDk1eDE5CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNCwwKSB3aWR0aCA5NTog
ImFiXHh7MzA0Mn1ceHszMDBDfVx4ezMwMER9XHh7MzAwMn0iCisgICAgICAgIFJlbmRlckJSIHtC
Un0gYXQgKDI3LDc5KSBzaXplIDB4MTkKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMCwxMDYp
IHNpemUgMHgxOQorICAgICAgUmVuZGVyQmxvY2sge0hSfSBhdCAoMCwxODMpIHNpemUgNzg0eDIg
W2JvcmRlcjogKDFweCBpbnNldCAjMDAwMDAwKV0KKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAo
MCwyMDMpIHNpemUgNzg0eDI3CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw0KSBz
aXplIDE1N3gxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDQpIHdpZHRoIDE1NzogIkNvbXBs
ZXggdGV4dCBwYXRoIgorICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMjQ4KSBz
aXplIDc4NHgxNTYKKyAgICAgICAgUmVuZGVyQmxvY2sge1NQQU59IGF0ICgwLDApIHNpemUgMjd4
MTIyCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg0LDApIHNpemUgMTIyeDE5Cisg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNCwwKSB3aWR0aCAxMjI6ICJhYlx4ezMwNDJ9XHh7MzAw
Q31ceHszMDBEfVx4ezMwMDJ9MVx4ezIwRER9IgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgy
NywxMDYpIHNpemUgMHgxOQorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDEzMykgc2l6ZSAw
eDE5CisgICAgICBSZW5kZXJCbG9jayB7SFJ9IGF0ICgwLDQxMykgc2l6ZSA3ODR4MiBbYm9yZGVy
OiAoMXB4IGluc2V0ICMwMDAwMDApXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRleHQtbWV0cmljcy10ZXN0LWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2lu
dGVybmF0aW9uYWwvdmVydGljYWwtdGV4dC1tZXRyaWNzLXRlc3QtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9pbnRlcm5hdGlv
bmFsL3ZlcnRpY2FsLXRleHQtbWV0cmljcy10ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwyMyBAQAorU2ltcGxlIHRleHQgcGF0aAorCithYuOBguOAjOOAjeOAggorYWLj
gYLjgIzjgI3jgIIKK2Fi44GC44CM44CN44CCCithYuOBguOAjOOAjeOAggorCitDb21wbGV4IHRl
eHQgcGF0aAorCithYuOBguOAjOOAjeOAgjHig50KK2Fi44GC44CM44CN44CCMeKDnQorYWLjgYLj
gIzjgI3jgIIx4oOdCithYuOBguOAjOOAjeOAgjHig50KKword2lkdGg9OTMKK3dpZHRoPTkzCit3
aWR0aD0yNword2lkdGg9MjcKK3dpZHRoPTEwMword2lkdGg9MTAzCit3aWR0aD0yNword2lkdGg9
MjcKKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9pbnRlcm5hdGlv
bmFsL3ZlcnRpY2FsLXRleHQtZ2x5cGgtdGVzdC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5u
b3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9
IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3ZlcnRpY2FsLXRleHQtZ2x5
cGgtdGVzdC1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICAr
IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFB
QUpZQ0FZQUFBQ2Fkb0p3QUFBQzdtbERRMUJKUTBNZ1VISnZabWxzWlFBQWVBR0YKVk05ckUwRVUv
alp1cWRBaUNGcHJEcko0a0NKSldhdG9SZFEyL1JGaWF3emJIN1pGa0dRelNkWnVOdXZ1SnJXbGlP
VGkwU3JlUmUyaApCLytBSG5yd1pDOUtoVnBGS042cktHS2hGeTN4elc1TXRxWHF3TTUrODk0Mzcz
MXZkdDhBRFhMU05QV0FCT1FOeDFLaUVXbHNmRUpxCi9JZ0FqcUlKUVRRbFZkdnNUaVFHUVlOeitY
dm4ySG9QZ1Z0V3czdjdkN0ozclpyU3Rwb0hoUDFBNEVlYTJTcXc3eGR4Q2xrU0FvZzgKMzZFcHgz
UUkzK1BZOHV5UE9VNTVlTUcxRHlzOXhGa2lmRUExTGM1L1RiaFR6U1hUUUlOSU9KVDFjVkkrbk5l
TGxOY2RCMmx1WnNiSQpFTDFQa0thN3pPNnJZcUdjVHZZT2tMMmQ5SDVPczk0K3dpSENDeG10UDBh
NGpaNzFqTlUvNG1IaHBPYkVoajBjR0RYMCtHQVZ0eHFwCitEWENGRjhRVFNlaVZISFpMZzN4bUs3
OVZ2SktnbkNRT01wa1lZQnpXa2hQMTB4dStMcUhCWDBtMXhPdjRuZFdVZUY1anhObjN0VGQKNzBY
YUFxOHdEaDBNR2d5YURVaFFFRVVFWVppd1VFQ0dQQm94TkxKeVB5T3JCaHVUZXpKMUpHcTdkR0pF
c1VGN050dzl0MUdrM1R6KwpLQ0p4bEVPMUNKTDhRZjRxcjhsUDVYbjV5MXl3MkZiM2xLMmJtcnJ5
NER2RjVabTVHaDdYMDhqamMwMWVmSlhVZHBOWFI1YXNlWHE4Cm11d2FQK3hYbHpIbWdqV1B4SE93
Ky9FdFg1WE1seW1NRk1YalZmUHFTNFIxV2pFMzM1OXNmenM5NGk3UExyWFdjNjJKaXpkV201ZG4K
L1dwSSsrNnF2SlBtVmZsUFh2WHgvR2ZOeEdQaUtURW1kb3JuSVltWHhTN3hrdGhMcXd2aVlHM0hD
SjJWaGluU2JaSDZKTlZnWUpxOAo5UzlkUDF0NHZVWi9EUFZSbEJuTTBsU0o5My9DS21RMG5ia09i
L3FQMjhmOEYrVDNpdWVmS0FJdmJPREltYnB0VTNIdkVLRmxwVzV6CnJnSVh2OUY5OExadWE2TitP
UHdFV0R5ckZxMVNOWjhndkFFY2RvZDZIdWdwbU5PV2xzMDVVb2NzbjVPNjZjcGlVc3hRMjBOU1V0
Y2wKMTJWTEZyT1pWV0xwZHRpWjB4MXVIS0U1UXZmRXAwcGxrL3F2OFJHdy9iQlMrZm1zVXRsK1Ro
cldnWmY2YjhDOC9VWEFlSXVKQUFBZwpBRWxFUVZSNEFlM2RlYmd0MDUwLzRIWE5RNHd4Q3pHRzBH
WWFNZDFJTlBJZ2FVTTNNWVFZZ2c1Qkl0cVVtSVdXeGtQaWNiVVlRb1NZCjUxbHdEUWxpbmdsTnpQ
TXNwdlBiMzByWC9wMTduV0dkZTBxNWRldXQ1N2wzNzExNzFWcTEzblgrcU0rdVdsVWplanBMc2hB
Z1FJQUEKQVFJRUNCQWdRS0FHZ1lscWFFTVRCQWdRSUVDQUFBRUNCQWdRS0FRRUVIOElCQWdRSUVD
QUFBRUNCQWpVSmlDQTFFYXRJUUlFQ0JBZwpRSUFBQVFJRUJCQi9Bd1FJRUNCQWdBQUJBZ1FJMUNZ
Z2dOUkdyU0VDQkFnUUlFQ0FBQUVDQkFRUWZ3TUVDQkFnUUlBQUFRSUVDTlFtCklJRFVScTBoQWdR
SUVDQkFnQUFCQWdRRUVIOERCQWdRSUVDQUFBRUNCQWpVSmlDQTFFYXRJUUlFQ0JBZ1FJQUFBUUlF
QkJCL0F3UUkKRUNCQWdBQUJBZ1FJMUNZZ2dOUkdyU0VDQkFnUUlFQ0FBQUVDQkFRUWZ3TUVDQkFn
UUlBQUFRSUVDTlFtSUlEVVJxMGhBZ1FJRUNCQQpnQUFCQWdRRUVIOERCQWdRSUVDQUFBRUNCQWpV
SmlDQTFFYXRJUUlFQ0JBZ1FJQUFBUUlFQkJCL0F3UUlFQ0JBZ0FBQkFnUUkxQ1lnCmdOUkdyU0VD
QkFnUUlFQ0FBQUVDQkFRUWZ3TUVDQkFnUUlBQUFRSUVDTlFtSUlEVVJxMGhBZ1FJRUNCQWdBQUJB
Z1FFRUg4REJBZ1EKSUVDQUFBRUNCQWpVSmlDQTFFYXRJUUlFQ0JBZ1FJQUFBUUlFQkJCL0F3UUlF
Q0JBZ0FBQkFnUUkxQ1lnZ05SR3JTRUNCQWdRSUVDQQpBQUVDQkNiSkpianZ2dnZTb1ljZW1xYWFh
cW8weVNTVHBBOC8vREROTWNjY2FkWlpaMDMvOFIvL1VWVHp5aXV2cEgzMzNUZHRzODAyCmFlbWxs
ODZ0dXBKeWp6LytlRHJtbUdOUzdPZUdHMjZZdHQ5KyswcnFiWHNsbzBlUFRpZWVlR0o2OHNrbjAv
Nzc3NTlXWFhYVnRwUG8KUHdFQ0JBZ1FJRUNBd0RBRXNnTElQZmZjazlaZGQ5MTAwVVVYcGNVWFg3
eG83dEZISDAxcnJybG1Hamx5WkxmNTIyNjdMUjEzM0hGcApoaGxtcUQyQXpELy8vR21ublhaS0N5
eXdRRnB0dGRXNisxVEZtOWRlZXkyOSsrNjdhYzQ1NTZ5aXVuN3JxS3VkZm5lZzg4WFkrN0R5Cnlp
c1g2OVpiYjczMC92dnZEN1NwN3dnUUlFQ0FBQUVDQkFnTUtwQjFDVmFjMVZobm5YVzY0U05xWFhE
QkJkTXZmL25MTlBua2szY2IKaVVCeTAwMDNwWDMyMmFlN3JzNDNNODAwVTlIY0ZGTk1VV216UC9y
Umo5TFZWMTlkYVoxOVZWWlhPMzIxWGE3cmF4K21uMzc2NHV2SgpKcHVzTE9hVkFBRUNCQWdRSUVD
QXdEZ0paQVdRZSsrOU4wMDMzWFNmYW1DbGxWWktjZWFoWEVhTUdKRys5cld2cFNtbm5MSmNWZXRy
CnRCOUxYQ0pXMWZMU1N5K2w4ODgvUDAwNjZhUlZWZGxuUFhXMTAyZmovN2V5djMwb1hTZWFLT3ZQ
WmFBbWZFZUFBQUVDQkFnUUlOQnkKZ2F3ajlTOTk2VXZGcFZYcnI3OStXbmJaWmJ0a3M4d3lTL3JK
VDM1U2ZIN3d3UWVMT1JpMzNISkwrdDczdnBkMjJXV1hZajdHWG52dApWY3dmT095d3c0cHlOOXh3
UTdya2trdUt5N2NPT2VTUTlONTc3NldqampvcXhSeU8rKysvdjlodXM4MDJLOHBlZHRsbDZZZ2pq
a2pQClAvOTh1dmppaTlNRkYxeFF6RDE1K09HSGkrK2p6aTkrOFl2Ris5Ny9sUWZNNWJxMzMzNDdI
WGpnZ1VVd2lyTWpjVG5WNXB0dlhwekYKS2N2MDlScVhtVVc1dDk1NnF3Z2hmLzNyWDlNcXE2elN2
Y1Jyc0hvdnYvenlkTkpKSjZVUFB2Z2d6VGpqak9tblAvMXBDclA5OXRzdgpQZlhVVXluMkpjNHVS
YmdacUoyeDkyMWNYSzY1NXByaTdGUzAvK3l6ejZZNzdyZ2pIWFRRUVdtcHBaWXFxaCtzcjFFb1hN
ODU1NXppClVyd1hYM3d4ZmZMSkoybnZ2ZmN1VE1iZVI1OEpFQ0JBZ0FBQkFnUUk5Q25RazdGY2Vl
V1ZQUk5QUEhGUDUwQzVaOGNkZCt4NTVwbG4KK3R5cWM0RGUwMm1rcHpOWnZmdjlyYmZlV3F6clhO
clRFL1hFOHRoamovVjB6cEwwSEh2c3NUMC8rOW5QZXQ1NDQ0MWlmWHp1L01yZQo4OGdqanhTZjQ3
OVlGM1Z1dE5GR1BWRi91V3kxMVZZOW5jdkFldjcrOTcrWHE0cDZvdXlSUng3WlhmZjY2Ni8zTExU
UVFqM0hIMzk4CmQ5MkZGMTdZMHpsejA5T1o3OUJkMTkrYlRpZ3Eydi9kNzM0M1JwSGNlcSs2NnFx
ZXpxVkxQWjJKK2QzdGYvLzczL2Vzc01JS1BTKy8KL0hKM1hYL3RkQXVNOVdZb0x1ZWVlMjVQSnp6
MGRFSmN0NVpkZDkyMVo5NTU1KzErampmOTdjT05OOTVZR01RMko1OThjdGU4RTU1NgpPamNsNlBm
dllZektmU0JBZ0FBQkFnUUlFQ0RRRWNpNnBtYU5OZFpJblFQcFlvTDNyMy85NitLeXE4N0JhT29j
aEk4UmF1SlgvbGg2Cno4R0lYOXhqaWJNT1VVOHNjZG5Xa2tzdW1XSytRVXh1bm5iYWFZdjFNZEU5
ZmxXLy9mYmJpOC94WDl4bEs1WmxsbGttZFE2WWkvZngKWDJ3YnY5ckhHWWFCbG9NUFByaTRKR3U3
N2JickZvdDJPb0VxN2Jubm50MTFRMzJUVys4M3Yvbk40dTVoblFQMzRxekRSeDk5bERvQgpLTVZa
akw3TzN1VHV4MUJjNHM1Z3l5MjNYRnA3N2JXNzFYLzFxMTlOVHp6eFJPcUV2KzY2d2Q0ODk5eHp4
ZG10Y2k3SXBwdHVXb3hyCkoyUU90cW52Q1JBZ1FJQUFBUUlFQ0JRQ1dRRWtTbjc5NjE5UE1SY2tE
dmdqVk1SbFUzRkhyTTdaakM1bGVlbFQ3emtZNWJvVlYxeXgKV3k3ZXhBSHdGNzd3aFNKWWxGOU1N
ODAweGR1NEUxTzVsTnVYNGFWY3Y5aGlpNldZa3hDWGZBMjBuSEhHR2VrclgvbEtpc3UyZXYrYgpl
ZWFaMDNBT25JZFNiMXlPMWpuamtiYmNjc3ZpVXJBZi8vakhxWnpZUGRDK0QvVGRVRnppTXE4Ly9l
bFBoVmRaWnpsR25UTkk1YXBCClg3L3puZStNVVNidWRoYkwyRUYwakVJK0VDQkFnQUFCQWdRSUVP
Z2xrRFVIcEN3Zlp3M2lJSHFUVFRZcG5nbnhpMS84SXYzYnYvMWIKK3N0Zi9sSVdLVjdMZytQZUsz
dWZGWW4xVVZkNUFGdVdpM1d4ZE03TWxLdTZyN1BQUG52M2ZieUo4QkVIOFU4Ly9mUVk2M3QvaURr
YQpmL3ZiMzRwYkFrZDQ2cjFFS0lnQU5DN0xVT3VOZlkzZ3RzUVNTNlFISG5pZ3NCdVhkdnZhSnRj
bHdsZWN2WW8raC92ZGQ5OWRWRGVVCnlmVjl0UldWZlB6eHgzM3RtblVFQ0JBZ1FJQUFBUUlFUGlX
UUZVQml3dlRjYzgvZDNUaHV2UnNUeU9OaGhIRXIzcmg3VXB4UitDeVgKdUhScDdDV2VTMUZlNGpY
MmQvRTVEdnpqWDF5dUZBOG5yR29abDNyalVxYzRDOUtaajFGTUJvODdpRld4NUxnY2NNQUJxVE1I
cHJqcwpxM3lPeXdrbm5KQk9PKzIwSWdqbTdrZGZ3VEozVytVSUVDQkFnQUFCQWdRSWhFRFdKVmp4
WlBPK2xwaExFV2NyNHE1S24vVXlkaHR4Clo2cVlWeEtYY3ZXM3hGUGJZOTdJblhmZTJWK1JRZGYz
ZGRBOTFIcmpqTW5SUngrZHJyamlpbUllVE53bDdKMTMzaG1qN2I3YUdhTkEKUHg4R2N3bWpDSWx4
WjdFeWZFUlY4ZFQ2V01xelR2RitYUGNodHJVUUlFQ0FBQUVDQkFnUXlCSElDaUFQUGZSUXV1dXV1
ejVWWDl4UwpOeTZEV25qaGhZdnZ5a3R4eXRkWVdiNHZYOHRLNHZQWTY4cGY4OGRlSDl2RVU5aDdM
ekdKT3laRGI3MzExdDNWNVhibGEzd1JrK1hqCmxyT2RPM0IxeThXYnVQMXZ6STBZYkNrdkhZdGI2
ZlplY3V1TlNmWGJicnR0aXRzUng3eUxVYU5HcFJkZWVLSFlyOTcxOWRkTzd6SjkKdlIvTUpTNUJl
L1BOTjhkNE5rcUV4a3N2dmZSVDFmVzNENlZuK1ZwdVdINHVYOHYxWGdrUUlFQ0FBQUVDQkFqMEo1
QVZRT0pYOUppQQpITSsxaUVuTGNmQiszbm5ucGROUFB6MmRjc29weGRQUTQ2QzJ2SHRWaEpVSUU3
RXVEdjVqaVRrSDVZRnExQmR6SWVKWkVuRjVWN21VClpjdnR5L1h4ZXM4OTl4U1hFTVVCZlR4enBI
UDczdUxaSkhQT09XZTNXTGw5dEJXWGg4V3kvZmJicHkyMjJLS1l1M0wyMldlblYxOTkKTlYxLy9m
VnBqejMyS0o0NTB0MjRuemRSZnp4aFBaNmpFV2NOeW1lUTVOUWI4MU1pZkVSUUsrZFB6REhISE1W
elJPSVNxSGlPU1ZqRQowbDg3L2V4V2QvVmdMdkhFK25oMlMrYzJ3dW0yMjI0cm5zMFN6eU9KbXdy
RUV1TlFMbjN0UTNpWFo1RGlOVDdIMG50cyt4cXZzazZ2CkJBZ1FJRUNBQUFFQ0JIb0xqT2djU0g1
NnhuZnZFcDMzWjUxMVZqRjVPUjdFRi85aURrUThuSERqalRkT3M4MDJXMUU2enBMRWdYMjUKekRY
WFhDbiszWHp6emVXcTRzRi9xNisrZXZydGIzL2JQZkNPTDJOK1JoemNYM2ZkZGQyeWNUQzh6anJy
RkErK2krK2ozVGo0andudgo4VlQydUwxdDUva2UzZkx4ZmR3cXVGeks3Y3ZQVVhmc1g1d05pSVB2
a1NOSHB2S3VXMldaL2w2amJ6RmZJc3F2dGRaYXhXVHlzdXhBCjlaNTU1cG5kTzBTRjA3ZS8vZTAw
ZXZUbzRvR0w1Zll4TVQzbWhzUXlVRHRsK2ZJMUhnaVk0eExsNHhLd0NJOXh4N0Q1NXB1dnVKVnUK
QkluTzgxSlNYRTRXQWEyOHJlL1kreEFCS1VKT3VjVHRrNWRmZnZsaVgzdVA5enp6ekZNOFhMSXM1
NVVBQVFJRUNCQWdRSUJBWHdKWgpBYVN2RGV0YTEvdEF1L2R6UU9wcWYzeHRoOHY0T2pMMml3QUJB
Z1FJRUNCQVlDQ0JyRXV3QnFyZ3MvNnVuQmRTWGxMMVdiZlhsUHE1Ck5HV2s3Q2NCQWdRSUVDQkFn
RUJ2Z2ZFNmdEenp6RFBGcFVPeHd6Ri9JMjczYTBtSmk3OENBZ1FJRUNCQWdBQ0JwZ3FNMTVkZ3hj
TUQKbjN2dXVhNXR6RjlZWUlFRnVwL2Irb1pMVzBkZXZ3a1FJRUNBQUFFQ3pSY1lyd05JODNuMWdB
QUJBZ1FJRUNCQWdBQ0IzZ0xqOVNWWQp2WGZVZXdJRUNCQWdRSUFBQVFJRW1pOGdnRFIvRFBXQUFB
RUNCQWdRSUVDQVFHTUVCSkRHREpVZEpVQ0FBQUVDQkFnUUlOQjhBUUdrCitXT29Cd1FJRUNCQWdB
QUJBZ1FhSXlDQU5HYW83Q2dCQWdRSUVDQkFnQUNCNWdzSUlNMGZRejBnUUlBQUFRSUVDQkFnMEJn
QkFhUXgKUTJWSENSQWdRSUFBQVFJRUNEUmZRQUJwL2hqcUFRRUNCQWdRSUVDQUFJSEdDQWdnalJr
cU8wcUFBQUVDQkFnUUlFQ2crUUlDU1BQSApVQThJRUNCQWdBQUJBZ1FJTkVaQUFHbk1VTmxSQWdR
SUVDQkFnQUFCQXMwWEVFQ2FQNFo2UUlBQUFRSUVDQkFnUUtBeEFnSklZNGJLCmpoSWdRSUFBQVFJ
RUNCQm92b0FBMHZ3eDFBTUNCQWdRSUVDQUFBRUNqUkVRUUJvelZIYVVBQUVDQkFnUUlFQ0FRUE1G
QkpEbWo2RWUKRUNCQWdBQUJBZ1FJRUdpTWdBRFNtS0d5b3dRSUVDQkFnQUFCQWdTYUx5Q0FOSDhN
OVlBQUFRSUVDQkFnUUlCQVl3UUVrTVlNbFIwbApRSUFBQVFJRUNCQWcwSHdCQWFUNVk2Z0hCQWdR
SUVDQUFBRUNCQm9qSUlBMFpxanNLQUVDQkFnUUlFQ0FBSUhtQ3dnZ3pSOURQU0JBCmdBQUJBZ1FJ
RUNEUUdBRUJwREZEWlVjSkVDQkFnQUFCQWdRSU5GOUFBR24rR09vQkFRSUVDQkFnUUlBQWdjWUlD
Q0NOR1NvN1NvQUEKQVFJRUNCQWdRS0Q1QWdKSTg4ZFFEd2dRSUVDQUFBRUNCQWcwUmtBQWFjeFEy
VkVDQkFnUUlFQ0FBQUVDelJjUVFKby9obnBBZ0FBQgpBZ1FJRUNCQW9ERUNBa2hqaHNxT0VpQkFn
QUFCQWdRSUVHaStnQURTL0RIVUF3SUVDQkFnUUlBQUFRS05FUkJBR2pOVWRwUUFBUUlFCkNCQWdR
SUJBOHdVRWtPYVBvUjRRSUVDQUFBRUNCQWdRYUl5QUFOS1lvYktqQkFnUUlFQ0FBQUVDQkpvdklJ
QTBmd3oxZ0FBQkFnUUkKRUNCQWdFQmpCQVNReGd5VkhTVkFnQUFCQWdRSUVDRFFmQUVCcFBsanFB
Y0VDQkFnUUlBQUFRSUVHaU1nZ0RSbXFPd29BUUlFQ0JBZwpRSUFBZ2VZTENDRE5IME05SUVDQUFB
RUNCQWdRSU5BWUFRR2tNVU5sUndrUUlFQ0FBQUVDQkFnMFgwQUFhZjRZNmdFQkFnUUlFQ0JBCmdB
Q0J4Z2dJSUkwWktqdEtnQUFCQWdRSUVDQkFvUGtDQWtqengxQVBDQkFnUUlBQUFRSUVDRFJHUUFC
cHpGRFpVUUlFQ0JBZ1FJQUEKQVFMTkZ4QkFtaitHZWtDQUFBRUNCQWdRSUVDZ01RSUNTR09HeW80
U0lFQ0FBQUVDQkFnUWFMNkFBTkw4TWRRREFnUUlFQ0JBZ0FBQgpBbzBSRUVBYU0xUjJsQUFCQWdR
SUVDQkFnRUR6QlFTUTVvK2hIaEFnUUlBQUFRSUVDQkJvaklBQTBwaWhzcU1FQ0JBZ1FJQUFBUUlF
Cm1pOGdnRFIvRFBXQUFBRUNCQWdRSUVDQVFHTUVCSkRHREpVZEpVQ0FBQUVDQkFnUUlOQjhBUUdr
K1dPb0J3UUlFQ0JBZ0FBQkFnUWEKSXlDQU5HYW83Q2dCQWdRSUVDQkFnQUNCNWdzSUlNMGZRejBn
UUlBQUFRSUVDQkFnMEJnQkFhUXhRMlZIQ1JBZ1FJQUFBUUlFQ0RSZgpRQUJwL2hqcUFRRUNCQWdR
SUVDQUFJSEdDQWdnalJrcU8wcUFBQUVDQkFnUUlFQ2crUUlDU1BQSFVBOElFQ0JBZ0FBQkFnUUlO
RVpBCkFHbk1VTmxSQWdRSUVDQkFnQUFCQXMwWEVFQ2FQNFo2UUlBQUFRSUVDQkFnUUtBeEFnSklZ
NGJLamhJZ1FJQUFBUUlFQ0JCb3ZvQUEKMHZ3eDFBTUNCQWdRSUVDQUFBRUNqUkVRUUJvelZIYVVB
QUVDQkFnUUlFQ0FRUE1GQkpEbWo2RWVFQ0JBZ0FBQkFnUUlFR2lNZ0FEUwptS0d5b3dRSUVDQkFn
QUFCQWdTYUx5Q0FOSDhNOVlBQUFRSUVDQkFnUUlCQVl3UUVrTVlNbFIwbFFJQUFBUUlFQ0JBZzBI
d0JBYVQ1Clk2Z0hCQWdRSUVDQUFBRUNCQm9qSUlBMFpxanNLQUVDQkFnUUlFQ0FBSUhtQ3dnZ3pS
OURQU0JBZ0FBQkFnUUlFQ0RRR0FFQnBERkQKWlVjSkVDQkFnQUFCQWdRSU5GOUFBR24rR09vQkFR
SUVDQkFnUUlBQWdjWUlDQ0NOR1NvN1NvQUFBUUlFQ0JBZ1FLRDVBZ0pJODhkUQpEd2dRSUVDQUFB
RUNCQWcwUmtBQWFjeFEyVkVDQkFnUUlFQ0FBQUVDelJjUVFKby9obnBBZ0FBQkFnUUlFQ0JBb0RF
Q0FraGpoc3FPCkVpQkFnQUFCQWdRSUVHaStnQURTL0RIVUF3SUVDQkFnUUlBQUFRS05FUkJBR2pO
VWRwUUFBUUlFQ0JBZ1FJQkE4d1VFa09hUG9SNFEKSUVDQUFBRUNCQWdRYUl5QUFOS1lvYktqQkFn
UUlFQ0FBQUVDQkpvdklJQTBmd3oxZ0FBQkFnUUlFQ0JBZ0VCakJBU1F4Z3lWSFNWQQpnQUFCQWdR
SUVDRFFmQUVCcFBsanFBY0VDQkFnUUlBQUFRSUVHaU1nZ0RSbXFPd29BUUlFQ0JBZ1FJQUFnZVlM
Q0NETkgwTTlJRUNBCkFBRUNCQWdRSU5BWUFRR2tNVU5sUndrUUlFQ0FBQUVDQkFnMFgwQUFhZjRZ
NmdFQkFnUUlFQ0JBZ0FDQnhnZ0lJSTBaS2p0S2dBQUIKQWdRSUVDQkFvUGtDQWtqengxQVBDQkFn
UUlBQUFRSUVDRFJHUUFCcHpGRFpVUUlFQ0JBZ1FJQUFBUUxORnhCQW1qK0dla0NBQUFFQwpCQWdR
SUVDZ01RSUNTR09HeW80U0lFQ0FBQUVDQkFnUWFMNkFBTkw4TWRRREFnUUlFQ0JBZ0FBQkFvMFJF
RUFhTTFSMmxBQUJBZ1FJCkVDQkFnRUR6QlFTUTVvK2hIaEFnUUlBQUFRSUVDQkJvaklBQTBwaWhz
cU1FQ0JBZ1FJQUFBUUlFbWk4Z2dEUi9EUFdBQUFFQ0JBZ1EKSUVDQVFHTUVCSkRHREpVZEpVQ0FB
QUVDQkFnUUlOQjhBUUdrK1dPb0J3UUlFQ0JBZ0FBQkFnUWFJeUNBTkdhbzdDZ0JBZ1FJRUNCQQpn
QUNCNWdzSUlNMGZRejBnUUlBQUFRSUVDQkFnMEJnQkFhUXhRMlZIQ1JBZ1FJQUFBUUlFQ0RSZlFB
QnAvaGpxQVFFQ0JBZ1FJRUNBCkFJSEdDQWdnalJrcU8wcUFBQUVDQkFnUUlFQ2crUUlDU1BQSFVB
OElFQ0JBZ0FBQkFnUUlORVpBQUduTVVObFJBZ1FJRUNCQWdBQUIKQXMwWEVFQ2FQNFo2UUlBQUFR
SUVDQkFnUUtBeEFnSklZNGJLamhJZ1FJQUFBUUlFQ0JCb3ZvQUEwdnd4MUFNQ0JBZ1FJRUNBQUFF
QwpqUkVRUUJvelZIYVVBQUVDQkFnUUlFQ0FRUE1GQkpEbWo2RWVFQ0JBZ0FBQkFnUUlFR2lNZ0FE
U21LR3lvd1FJRUNCQWdBQUJBZ1NhCkx5Q0FOSDhNOVlBQUFRSUVDQkFnUUlCQVl3UUVrTVlNbFIw
bFFJQUFBUUlFQ0JBZzBId0JBYVQ1WTZnSEJBZ1FJRUNBQUFFQ0JCb2oKSUlBMFpxanNLQUVDQkFn
UUlFQ0FBSUhtQ3dnZ3pSOURQU0JBZ0FBQkFnUUlFQ0RRR0FFQnBERkRaVWNKRUNCQWdBQUJBZ1FJ
TkY5Zwp5QUhrbzQ4K1NwOTg4a2xsUGIvOTl0c3JxMHRGQkFnUUlFQ0FBQUVDQkFpTTN3S1RER1gz
ZHQ5OTkvU3JYLzBxelRqampHbUhIWFpJCmUrKzlkN0g1eFJkZm5DYWJiTEswL1BMTHA4Y2VleXhO
TWtsZXRlKysrMjQ2NnFpajBwbG5ucGxHalJxVnBwaGlpclRKSnB1a1NTZWQKZENpN05leXk1NTkv
ZnBwLy92blRZb3N0TnV5NmhsckJpeSsrbUg3em05K2tlTjFnZ3czU1NpdXROTlFxbENkQWdBQUJB
Z1FJRUNEUQpHSUc4cE5EcHpwTlBQcG1PT2VhWXRQcnFxeGNCNU1namoweXJycnBxV21XVlZkS0pK
NTZZNGlEK2hCTk9TR2VjY1VhNjl0cHJzd0ZtCm0yMjJvdXltbTI2YVpwNTU1dlR3d3crbmd3OCtP
SHY3S2dyZWZmZmRhY29wcC94Y0FzZ2hoeHlTOXRoamp6VFRURE9sUGZmY004MDcKNzd4cGpqbm1x
S0piNmlCQWdBQUJBZ1FJRUNBdzNnbGtCNUFJRlljZmZuamFlZWVkaTA1RVVOaHZ2LzJLQUhMNjZh
ZW5zODgrTzkxeQp5eTNGV1pEcHBwc3VyYmZlZW1uT09lY3N6b1k4OTl4emFmVG8wZW1oaHg1S3Ur
MjJXeG94WWtTS1M3bmVmUFBOTk5GRS83Z0tiT3FwCnB5N09mS3k1NXBwRi9YLys4NS9UQVFjY2tC
WlpaSkdpM2ZGT3JvSWRpak5BY2Rabjl0bG5MMnI3L3ZlL255NjQ0SUxpN0ZJRjFhdUMKQUFFQ0JB
Z1FJRUNBd0hnbmtCMUFacGxsbGpUcnJMTjJPN0RRUWd1bEwzLzV5OFhucWFhYUttMnh4UmJwOGNj
ZlR4RWt6ajMzM0c2NQo4czEzdi92ZDlNUVRUNlR6emp1dkNDR3gvc0lMTDB5dnYvNTZldUNCQjRw
QUVnZmtsMTU2YWRwMTExM1RTeSs5VklTWWJiYlpwcXhpCmduc050M2ZlZVNlOTlkWmJhWnBwcGtu
bm5ITk8ybnp6elNlNGZ1b1FBUUlFQ0JBZ1FJQUFnVklnTzRERW1ZbTRSR2p0dGRmdW5yV0kKRVBM
eXl5OFhsdzlGaFJGQURqMzAwTEx1VDczRzVVVzk1M2ZFV1pJNE0vS0hQL3doeFdUMGhSZGVPQzJ4
eEJKcDY2MjNUZ3N1dU9Dbgp0djhzVjl4ODg4M3B2ZmZlRzdDSmtTTkhwdW1ubjM3QU1rUDlNczRJ
aGRuYmI3K2QxbGhqalRUUFBQTU10UXJsQ1JBZ1FJQUFBUUlFCkNEUkdJRHVBUkhCWWVlV1YwN3Jy
cnB2aWJFYk0zWWl6RjVkZGRsbWFlKzY1MDlOUFA1MXV1T0dHNHZLcWdYci93Z3N2RkFmNk1lY2kK
bHFnei9zV1pqK3V1dTY2WWhQN2FhNitsKysrL1B5MjY2S0lEVlZYWmQzSGdmOU5OTjZWSEgzMTB3
RHBYV0dHRkFiOGZseThqbE1VOApFQXNCQWdRSUVDQkFnQUNCTmdpTTZPa3NPUjI5NUpKTDBqcnJy
Tk52MGJqejFiNzc3bHVFa0ZOT09hV1kvOUc3Y0RRVGRSeDIyR0hwCnhodHY3UDFWOFQ3dUJCV1hJ
LzNnQno5STk5eHpUOXBwcDUzU1hudnRWY3dwaWN1L0xBUUlFQ0JBZ0FBQkFnUUlORjhnK3d4SVBQ
c2oKN2s0VmwyQk5QUEhFeFp5Tmp6LytPSDM0NFlmRjUvbm1tNis0aTlYKysrK2Y1cHBycnJUVVVr
c1ZJU1RtT2J6eXlpdnB3UWNmVE04LwovM3lmZDhpS3VSOS8vT01mMDZ1dnZsclVGWlBYbzcyNE05
U3h4eDViVEY2UHR1dStMS3Y1dzZzSEJBZ1FJRUNBQUFFQ0JNWXZnZXd6CklCRWU0aXhIaElMQmxy
Z3M2NGdqamlndW80cm5XOFRsV3ZHTWtKLy8vT2RweVNXWEhHUHp1T3ZUMFVjZlhkUzcvdnJycDQw
MzNqanQKczg4K3hRVDNiYmZkdGloNzBVVVhwUjEzM0RIZGVlZWRXZTJQMFlBUEJBZ1FJRUNBQUFF
Q0JBaU1Od0xaQVdSYzl6ak9rc1Faazc2Vwp1RlFybmhzU3p4Q0paNHhNUHZua3hXMTk0eUdITVNl
ajkzWnhPOTUvLy9kL0wwSk1YM1ZaUjRBQUFRSUVDQkFnUUlEQStDK1FmUW5XCnVIYWxkNGpvWGNk
OTk5MVhQSUR2a1VjZUtaNkZNY01NTXhSM3hJb2dFczhVR1h1N3VPWHZ2ZmZlMjd1S2Z0OS84TUVI
eGFUNGZndjgKM3hmUlpqelYzVUtBQUFFQ0JBZ1FJRUNBUUQwQ24za0E2YThiY2RZakpyVlBPKzIw
UlpHWWFIN2FhYWNWenhDSlcvR092Y1RsVi9HZwp2cHdsTGhlTHVTZ0RMVkVtTGdzNzhNQURCeXJt
T3dJRUNCQWdRSUFBQVFJRUtoVDQzQUpJbk5HSXUxN0YyWXBUVHoyMXVMUXFKcXpQCk1jY2NuK3Bl
QkpPWVN4SzNBTTVaNHJiQVVlZEFTenpaUFc3N2F5RkFnQUFCQWdRSUVDQkFvRDZCaWVwcmFzeVdO
dHBvbzNUNjZhY1gKVDFjZk5XcFV1djc2NjR1SjVsZGVlZVVZQmVNQmdURW41S2lqamtvcnJyamlH
Ti81UUlBQUFRSUVDQkFnUUlCQXN3USt0ek1nVTB3eApSZkZja1BmZmZ6OHR0OXh5aGRwQkJ4MlUz
bnJycmVKOW5QRTQvUEREMDFWWFhaVk9Qdm5rdE1FR0d6UkwxdDRTSUVDQUFBRUNCQWdRCklQQXBn
Yzh0Z01TZUxMYllZbVBzVU56bTk3MzMzaXZtZ3NUVDBML3hqVytrLy9xdi94cjA2ZXBqVkpMNUlT
YTVUemJaWkptbEZTTkEKZ0FBQkFnUUlFQ0JBb0FxQnovdzJ2RlhzcERvSUVDQkFnQUFCQWdRSUVK
Z3dCRDYzT1NBVEJwOWVFQ0JBZ0FBQkFnUUlFQ0F3RkFFQgpaQ2hheWhJZ1FJQUFBUUlFQ0JBZ01D
d0JBV1JZZkRZbVFJQUFBUUlFQ0JBZ1FHQW9BZ0xJVUxTVUpVQ0FBQUVDQkFnUUlFQmdXQUlDCnlM
RDRiRXlBQUFFQ0JBZ1FJRUNBd0ZBRUJKQ2hhQ2xMZ0FBQkFnUUlFQ0JBZ01Dd0JBU1FZZkhabUFB
QkFnUUlFQ0JBZ0FDQm9RZ0kKSUVQUlVwWUFBUUlFQ0JBZ1FJQUFnV0VKQ0NERDRyTXhBUUlFQ0JB
Z1FJQUFBUUpERVJCQWhxS2xMQUVDQkFnUUlFQ0FBQUVDd3hJUQpRSWJGWjJNQ0JBZ1FJRUNBQUFF
Q0JJWWlJSUFNUlV0WkFnUUlFQ0JBZ0FBQkFnU0dKU0NBREl2UHhnUUlFQ0JBZ0FBQkFnUUlERVZB
CkFCbUtscklFQ0JBZ1FJQUFBUUlFQ0F4TFFBQVpGcCtOQ1JBZ1FJQUFBUUlFQ0JBWWlvQUFNaFF0
WlFrUUlFQ0FBQUVDQkFnUUdKYUEKQURJc1Boc1RJRUNBQUFFQ0JBZ1FJREFVQVFGa0tGcktFaUJB
Z0FBQkFnUUlFQ0F3TEFFQlpGaDhOaVpBZ0FBQkFnUUlFQ0JBWUNnQwpBc2hRdEpRbFFJQUFBUUlF
Q0JBZ1FHQllBZ0xJc1Boc1RJQUFBUUlFQ0JBZ1FJREFVQVFtR2F6d0NTZWNNRmdSM3hNZ1FJQUFB
UUlFCkNCQWdRQ0J0dU9HR2FZWVpaaGhRWXRBQUVsdEhSUllDQkFnUUlFQ0FBQUVDQkFnTVYyQkVU
MmNaYmlXMkowQ0FBQUVDQkFnUUlFQ0EKUUk2QU9TQTVTc29RSUVDQUFBRUNCQWdRSUZDSmdBQlND
YU5LQ0JBZ1FJQUFBUUlFQ0JESUVSQkFjcFNVSVVDQUFBRUNCQWdRSUVDZwpFZ0VCcEJKR2xSQWdR
SUFBQVFJRUNCQWdrQ01nZ09Rb0tVT0FBQUVDQkFnUUlFQ0FRQ1VDQWtnbGpDb2hRSUFBQVFJRUNC
QWdRQ0JIClFBREpVVktHQUFFQ0JBZ1FJRUNBQUlGS0JBU1FTaGhWUW9BQUFRSUVDQkFnUUlCQWpv
QUFrcU9rREFFQ0JBZ1FJRUNBQUFFQ2xRZ0kKSUpVd3FvUUFBUUlFQ0JBZ1FJQUFnUndCQVNSSFNS
a0NCQWdRSUVDQUFBRUNCQ29SRUVBcVlWUUpBUUlFQ0JBZ1FJQUFBUUk1QWdKSQpqcEl5QkFnUUlF
Q0FBQUVDQkFoVUlpQ0FWTUtvRWdJRUNCQWdRSUFBQVFJRWNnUUVrQndsWlFnUUlFQ0FBQUVDQkFn
UXFFUkFBS21FClVTVUVDQkFnUUlBQUFRSUVDT1FJQ0NBNVNzb1FJRUNBQUFFQ0JBZ1FJRkNKZ0FC
U0NhTktDQkFnUUlBQUFRSUVDQkRJRVJCQWNwU1UKSVVDQUFBRUNCQWdRSUVDZ0VnRUJwQkpHbFJB
Z1FJQUFBUUlFQ0JBZ2tDTWdnT1FvS1VPQUFBRUNCQWdRSUVDQVFDVUNBa2dsakNvaApRSUFBQVFJ
RUNCQWdRQ0JIUUFESlVWS0dBQUVDQkFnUUlFQ0FBSUZLQkNZWmFpMDMzbmhqT3Zua2s5TjAwMDFY
L0h2enpUZlRsNzcwCnBiVDg4c3VueVNhYkxDMjc3TEpEcmJLVzhvOC8vbmc2NXBoajBuMzMzWmMy
M0hERHRQMzIyOWZTcmtiK0lUQjY5T2gwNG9rbnBpZWYKZkRMdHYvLythZFZWVjBWRGdBQUJBZ1FJ
RUNEUVFvRWhCWkNkZDk0NTNYSEhIZW1TU3k1SjAwOC9mY0gxOFE2bDFWUUFBQ0FBU1VSQgpWTWNm
cDkxMzN6M3R0dHR1eFVIOStCcEE1cDkvL3JUVFRqdWxCUlpZSUsyMjJtcWZ5MUMvOXRwcjZkMTMz
MDF6empublo5cCtYZTBNCjFJbXg5MkhsbFZkT3NXNjk5ZFpMNzcvLy9rQ2IrbzRBQVFJRUNCQWdR
R0FDRnNpK0JPdlVVMDlONTU5L2Zycnl5aXU3NFNOY0pwNTQKNHZUZi8vM2ZhYlBOTmh2dm1XYWFh
YVppSDZlWVlvclBaVjkvOUtNZnBhdXZ2dm96Yjd1dWRnYnFTRi83VUliV09GTm1JVUNBQUFFQwpC
QWdRYUtkQVZnQjU3TEhIaXJNYjIyeXpUWnA2NnFuN2xQcmhEMy9ZNS9yeGFlV0lFU09LM1psa2tp
R2QrS21rQ3krOTlGSVI0Q2FkCmROSks2dXV2a3JyYTZhLzlXTi9mUHBUK0UwMlU5V2MzVUJPK0kw
Q0FBQUVDQkFnUWFLaEExcEY0L0dyLzNudnZwUTAyMktEZmJpNjkKOU5MRkpUYTlDOFQ4a0VNUFBU
VE5QUFBNS1E0K1l4N0dONy81emZTZDczeW5LQmJ6TWZiYWE2OWlYc0JoaHgxV3JMdmhoaHVLUzd6
VwpYSFBOZE1naGh4VHRIblhVVWNXMjk5OS9mOXBsbDEyNloxc3V1K3l5ZE1RUlI2VG5uMzgrWFh6
eHhlbUNDeTVJSDM3NFlYcjQ0WWVMCnVxTE9MMzd4aTcxM3FYaGZIZ2lYWDd6OTl0dnB3QU1QVEZO
T09XV0tzeU54bWRUbW0yK2VGbHh3d2FMSTVaZGZuazQ2NmFUMHdRY2YKcEJsbm5ESDk5S2MvVGJQ
TU1rdmFiNy85MGxOUFBWVnNzKysrKzZaRkZsbWtySEtNMTBjZmZiU283NjIzM2lwQ3lGLy8rdGUw
eWlxcgpkQzhGcTZyOUNEZXgzLzIxTThaT2RUNk1pOTgxMTF5VGJycnBwcUwveno3N2JIRkoza0VI
SFpTV1dtcXBvdnJCK2hxRnd2K2NjODVKCkYxMTBVWHJ4eFJmVEo1OThrdmJlZSsvQ3BLakVmd1FJ
RUNCQWdBQUJBaE91UUUvR3N1MjIyL1owQkhvNkI3WVpwZjlScEhPOWY4L2MKYzgvZGM5cHBwM1cz
ZWZubGwzczZCL1U5blFQMzdycGJiNzIxcUx0enlVNVA1L0t1WW4zbmpFdFBKd3owSEh2c3NUMC8r
OW5QZXQ1NAo0NDFpZlh6dS9IcmU4OGdqajNTM2ozV3hieHR0dEZGUDU4Qyt1MzZycmJZcTJ2cjcz
Ly9lWFJmMVJOa2pqenl5dSs3MTExL3ZXV2loCmhYcU9QLzc0N3JvTEw3eXdwek5ucENmNlVDNVhY
WFZWVCtmU29aN09XYUJ5VmMvdmYvLzduaFZXV0tFbitqWFkwZ2xQUmR1Lys5M3YKeGloYWRmdjl0
VE5HbzcwK0RNWHYzSFBQN2VtRWg1NU8yT3ZXc091dXUvYk1PKys4M2MveHByOTk2TnpBb0RDSWJU
bzNNdWdweDZZVAozbnFtbW1xcW5tZWVlV2FNZW53Z1FJQUFBUUlFQ0JDWThBU3lyb1c1ODg0NzB4
ZSs4SVhpWDI0VTZ3U0g0cTVZbTI2NmFYZVRPQnNSClp6RGlGL09ISG5xb1dCOW5FbUtKc3c1cnJM
Rkc4VDRtakMrNTVKSXA1aEhFcE9WcHA1MjJXTC91dXVzV3Y1YmZmdnZ0eGVmNGI5WloKWnkzZUw3
UE1NcWx6SU54ZEg5dkdyL0Z4NW1LZzVlQ0REMDV4U2RaMjIyM1hMUmJ0eE55V1BmZmNzN3N1enR6
RTJaek9nWFB4cS85SApIMzJVT2tHbE9JdlExMW1XN29hRHZQbTgyeCtLWDV5eFdtNjU1ZExhYTYv
ZDdkVlh2L3JWOU1RVFQ2Uk91T3V1Ryt6TmM4ODlsNzczCnZlOFZmeDlSTnY1R1l2dzdZWFN3VFgx
UGdBQUJBZ1FJRUNEUWNJR3NBQktYWDhVQllseUNsTHVjZGRaWnhhMTV4eTQvY3VUSUZBZnYKbDE1
NmFmRlZlVG5VaWl1dU9FYlJPTENOMEJQQm9seW1tV2FhNG0zY1RhbGN5dTNMOEZLdVgyeXh4VkxN
TmJqbGxsdktWWDIrbm5IRwpHZWtyWC9sS2NkbFdYTHBWL292THhzWStJSTd3MURuamtiYmNjc3Zp
a3EwZi8vakhZMHpJNzdPQlFWWiszdTBQeFM4dU0vdlRuLzVVCnVKYmRLdWZUZE01bWxLc0dmUzB2
d1NzTHpqRERETVhienRtZ2NwVlhBZ1FJRUNCQWdBQ0JDVlFnYXc3SXdnc3ZuR0wrUmN4M2lOdlkK
RHJhOCt1cXI2WVVYWHVpZW5laGRmdmJaWnk4K2x2TTB5dS9HdmpOVm5JRW9EMHpMTXJFdWxzNkpx
SEpWOTdXc3Qxd1I0U1B1dXZUMAowMCtYcXo3MUduTXYvdmEzdjZXWXYzTHZ2ZmVPOFgyRWpRaEF2
WmVvTTg2b0xMSEVFdW1CQng0b25tZlIrL3VodnYrODIrKzl2N2wrCk1XNi8vdld2QzVzWW43dnZ2
cnVvWmlpVDYvdHFLeXFKV3pwYkNCQWdRSUFBQVFJRUpteUJyQUN5NktLTEZwT0c0NHpBUUFFa0xx
MHAKYjdVYWJISFdaT3dsem43RU1uYTRHTHZjVUQrWDlmYmVMcDQzVVY3aTFYdDkrVDRDUmZ5THk1
RGk0WVE1UzF4cUZHZEJPdk1oaXNuWQpLNjIwVXM1bWZaYjV2TnZ2dlZNNWZnY2NjRURxekpVcExq
dGJmUEhGaTgxUE9PR0UxSm5uVTF5eTFydStnZDZYWjEwR0t1TTdBZ1FJCkVDQkFnQUNCQ1ZNZzZ4
S3NIWGJZb1ppSDhjdGYvckpmaGJqN1ZOeUJLVjdqVGxGeFVOL1gyWWZPUk9PaWp2N3VHTlZ2QTRO
OEVYZGsKNnIzRW5hQWlBTVdsWFAwdG5ZblB4YnlSbU9PU3M4UVppNk9QUGpwZGNjVVZ4WHlWbU1m
d3pqdnY1R3hhM1BscDdJS2ZSZnZqZW5BLwptRjlZeHZqSDgxN0s4Qkg5ZWVXVlY0cHVsV2VuNHNP
NDdrTlJrZjhJRUNCQWdBQUJBZ1FtYUlHc0FETGJiTE1WbHh2ZGRkZGR4VVRzCnZrVGlsclJ4Ylg4
NVlUeWVPbjd0dGRkK2FuSnkzQ3EzYzNlczFMbHJWVkZOZWRsTitWcldIWi9IWGxmK1NqLzIrdGdt
YnVuYWU0bGIKek1ZRDc3YmVldXZ1Nm5LNzhqVys2TnlScVpoVUhnOVk3TDNFdkplWTgxQXVjYXZZ
enQzQWl0c0d4N3lIVWFOR0ZaZVp4Zlk1UzNtSgoyZGp6YUtwdXY3OTJCdHZId2Z6aVVyVzRyWEk1
NXlQcWkwdmh5cms4dmV2dmJ4OUs5L0sxM0tiOFhMNlc2NzBTSUVDQUFBRUNCQWhNCmVBSlpBU1M2
SFhNaTRuS2J1R3ZURmx0c1VWeUdFd2VsOFV5SWVBaGgzQW1xOThNSWYvS1RuNlMxMWxxck9HZ3ZE
N3BqUXZpWlo1NVoKWExJVHo5eUlBOWc3N3JpalVJMjVCT1VCYVB6YUhuTXM0aGtSTWUra1hNcXlF
WVRLTUZKK2Q4ODk5eFQ3RkVIaHdRY2ZUSEVYcnVPTwpPeTdOT2VlY1paRXgyb296TmJGc3YvMzJS
WDlpWXZuWlo1K2RZdjdLOWRkZm4vYllZNCtpejFFbXp1UkUrSWhubEpUekYrYVlZNDdpCk9SNWhF
czhiNmV0eXM5aTJYR0kvNGtuczhSeU5PR3RRem9HcHV2MysyaW4zbzcvWHdmemltU2pMTHJ0czZ0
eEdPTjEyMjIwcDdvZ1YKejBQNSt0ZS9YbFFaNDFVdWZlMURqRXQ1cGlsZTQzTXN2ZjhHK2hyWHNr
NnZCQWdRSUVDQUFBRUNFNGJBaU00QjRLZG5kQS9RdHdnZApjUkFkWVNEbU1NUWxUdC82MXJmU1hI
UE4xZWRXOFJDL09MQ2NmUExKaTRuTDY2Ky9mdmZoZ0RIeCsrYWJiKzV1RndlNXE2KytldnJ0CmIz
ODd4Z0Y5ek0rSWcvYnJycnV1V3pZT2N0ZFpaNTFpYmtwOEh3LzNpNFA2di96bEwybTY2YVlySG5q
WWViNUh0M3g4MzNtV1IvZHoKdVgyNUl1cU80QkcvOHNkQjljaVJJMU41MTYwSVRlVWRtdUpzMExl
Ly9lMDBldlRvWW1KK3VYMU1USSs1SVFNdGNldmhtQzhSOVVZNAppMjNLcGNyMkIycW5iSzk4alFj
QzV2aEYrYmdFTGNZemd1Ujg4ODFYM0VvM2drVG51U29wTGllTFlGcmUxbmZzZllpQUZpR25YT0ky
Cnk4c3Z2M3h4Tytad0w1ZDU1cGtueFVNb0xRUUlFQ0JBZ0FBQkFoT213SkFEeVBqRzBQc0F1dmR6
UU1hMy9SeGY5NGZmK0RveTlvc0EKQVFJRUNCQWdNR0VLWkYrQ05iNTJ2N3dVcTd5a2FuemR6L0Yx
di9pTnJ5Tmp2d2dRSUVDQUFBRUNFNlpBb3dOSTNGRXJMZ21LSmVadgp2UFRTU3hQbUtIMUd2ZUwz
R2NHcWxnQUJBZ1FJRUNCQW9GK0JSbCtDRlhOSTR0a2o1Ukx6RWdaNlRrbFp6dXMvQlBqNVN5QkFn
QUFCCkFnUUlFS2hib05FQnBHNHM3UkVnUUlBQUFRSUVDQkFnTUR5QlJsK0NOYnl1MjVvQUFRSUVD
QkFnUUlBQWdib0ZCSkM2eGJWSGdBQUIKQWdRSUVDQkFvTVVDQWtpTEIxL1hDUkFnUUlBQUFRSUVD
TlF0SUlEVUxhNDlBZ1FJRUNCQWdBQUJBaTBXRUVCYVBQaTZUb0FBQVFJRQpDQkFnUUtCdUFRR2ti
bkh0RVNCQWdBQUJBZ1FJRUdpeGdBRFM0c0hYZFFJRUNCQWdRSUFBQVFKMUN3Z2dkWXRyandBQkFn
UUlFQ0JBCmdFQ0xCUVNRRmcrK3JoTWdRSUFBQVFJRUNCQ29XMEFBcVZ0Y2V3UUlFQ0JBZ0FBQkFn
UmFMQ0NBdEhqd2RaMEFBUUlFQ0JBZ1FJQkEKM1FJQ1NOM2kyaU5BZ0FBQkFnUUlFQ0RRWWdFQnBN
V0RyK3NFQ0JBZ1FJQUFBUUlFNmhZUVFPb1cxeDRCQWdRSUVDQkFnQUNCRmdzSQpJQzBlZkYwblFJ
QUFBUUlFQ0JBZ1VMZUFBRkszdVBZSUVDQkFnQUFCQWdRSXRGaEFBR254NE9zNkFRSUVDQkFnUUlB
QWdib0ZCSkM2CnhiVkhnQUFCQWdRSUVDQkFvTVVDQWtpTEIxL1hDUkFnUUlBQUFRSUVDTlF0SUlE
VUxhNDlBZ1FJRUNCQWdBQUJBaTBXRUVCYVBQaTYKVG9BQUFRSUVDQkFnUUtCdUFRR2tibkh0RVNC
QWdBQUJBZ1FJRUdpeGdBRFM0c0hYZFFJRUNCQWdRSUFBQVFKMUN3Z2dkWXRyandBQgpBZ1FJRUNC
QWdFQ0xCUVNRRmcrK3JoTWdRSUFBQVFJRUNCQ29XMEFBcVZ0Y2V3UUlFQ0JBZ0FBQkFnUmFMQ0NB
dEhqd2RaMEFBUUlFCkNCQWdRSUJBM1FJQ1NOM2kyaU5BZ0FBQkFnUUlFQ0RRWWdFQnBNV0RyK3NF
Q0JBZ1FJQUFBUUlFNmhZUVFPb1cxeDRCQWdRSUVDQkEKZ0FDQkZnc0lJQzBlZkYwblFJQUFBUUlF
Q0JBZ1VMZUFBRkszdVBZSUVDQkFnQUFCQWdRSXRGaEFBR254NE9zNkFRSUVDQkFnUUlBQQpnYm9G
QkpDNnhiVkhnQUFCQWdRSUVDQkFvTVVDQWtpTEIxL1hDUkFnUUlBQUFRSUVDTlF0SUlEVUxhNDlB
Z1FJRUNCQWdBQUJBaTBXCkVFQmFQUGk2VG9BQUFRSUVDQkFnUUtCdUFRR2tibkh0RVNCQWdBQUJB
Z1FJRUdpeGdBRFM0c0hYZFFJRUNCQWdRSUFBQVFKMUN3Z2cKZFl0cmp3QUJBZ1FJRUNCQWdFQ0xC
UVNRRmcrK3JoTWdRSUFBQVFJRUNCQ29XMEFBcVZ0Y2V3UUlFQ0JBZ0FBQkFnUmFMQ0NBdEhqdwpk
WjBBQVFJRUNCQWdRSUJBM1FJQ1NOM2kyaU5BZ0FBQkFnUUlFQ0RRWWdFQnBNV0RyK3NFQ0JBZ1FJ
QUFBUUlFNmhZUVFPb1cxeDRCCkFnUUlFQ0JBZ0FDQkZnc0lJQzBlZkYwblFJQUFBUUlFQ0JBZ1VM
ZUFBRkszdVBZSUVDQkFnQUFCQWdRSXRGaEFBR254NE9zNkFRSUUKQ0JBZ1FJQUFnYm9GQkpDNnhi
VkhnQUFCQWdRSUVDQkFvTVVDQWtpTEIxL1hDUkFnUUlBQUFRSUVDTlF0SUlEVUxhNDlBZ1FJRUNC
QQpnQUFCQWkwV0VFQmFQUGk2VG9BQUFRSUVDQkFnUUtCdUFRR2tibkh0RVNCQWdBQUJBZ1FJRUdp
eGdBRFM0c0hYZFFJRUNCQWdRSUFBCkFRSjFDd2dnZFl0cmp3QUJBZ1FJRUNCQWdFQ0xCUVNRRmcr
K3JoTWdRSUFBQVFJRUNCQ29XMEFBcVZ0Y2V3UUlFQ0JBZ0FBQkFnUmEKTENDQXRIandkWjBBQVFJ
RUNCQWdRSUJBM1FJQ1NOM2kyaU5BZ0FBQkFnUUlFQ0RRWWdFQnBNV0RyK3NFQ0JBZ1FJQUFBUUlF
NmhZUQpRT29XMXg0QkFnUUlFQ0JBZ0FDQkZnc0lJQzBlZkYwblFJQUFBUUlFQ0JBZ1VMZUFBRksz
dVBZSUVDQkFnQUFCQWdRSXRGaEFBR254CjRPczZBUUlFQ0JBZ1FJQUFnYm9GQkpDNnhiVkhnQUFC
QWdRSUVDQkFvTVVDQWtpTEIxL1hDUkFnUUlBQUFRSUVDTlF0SUlEVUxhNDkKQWdRSUVDQkFnQUFC
QWkwV0VFQmFQUGk2VG9BQUFRSUVDQkFnUUtCdUFRR2tibkh0RVNCQWdBQUJBZ1FJRUdpeGdBRFM0
c0hYZFFJRQpDQkFnUUlBQUFRSjFDd2dnZFl0cmp3QUJBZ1FJRUNCQWdFQ0xCUVNRRmcrK3JoTWdR
SUFBQVFJRUNCQ29XMEFBcVZ0Y2V3UUlFQ0JBCmdBQUJBZ1JhTENDQXRIandkWjBBQVFJRUNCQWdR
SUJBM1FJQ1NOM2kyaU5BZ0FBQkFnUUlFQ0RRWWdFQnBNV0RyK3NFQ0JBZ1FJQUEKQVFJRTZoWVFR
T29XMXg0QkFnUUlFQ0JBZ0FDQkZnc0lJQzBlZkYwblFJQUFBUUlFQ0JBZ1VMZUFBRkszdVBZSUVD
QkFnQUFCQWdRSQp0RmhBQUdueDRPczZBUUlFQ0JBZ1FJQUFnYm9GQkpDNnhiVkhnQUFCQWdRSUVD
QkFvTVVDQWtpTEIxL1hDUkFnUUlBQUFRSUVDTlF0CklJRFVMYTQ5QWdRSUVDQkFnQUFCQWkwV0VF
QmFQUGk2VG9BQUFRSUVDQkFnUUtCdUFRR2tibkh0RVNCQWdBQUJBZ1FJRUdpeGdBRFMKNHNIWGRR
SUVDQkFnUUlBQUFRSjFDd2dnZFl0cmp3QUJBZ1FJRUNCQWdFQ0xCUVNRRmcrK3JoTWdRSUFBQVFJ
RUNCQ29XMEFBcVZ0Ywpld1FJRUNCQWdBQUJBZ1JhTENDQXRIandkWjBBQVFJRUNCQWdRSUJBM1FJ
Q1NOM2kyaU5BZ0FBQkFnUUlFQ0RRWWdFQnBNV0RyK3NFCkNCQWdRSUFBQVFJRTZoWVFRT29XMXg0
QkFnUUlFQ0JBZ0FDQkZnc0lJQzBlZkYwblFJQUFBUUlFQ0JBZ1VMZUFBRkszdVBZSUVDQkEKZ0FB
QkFnUUl0RmhBQUdueDRPczZBUUlFQ0JBZ1FJQUFnYm9GQkpDNnhiVkhnQUFCQWdRSUVDQkFvTVVD
QWtpTEIxL1hDUkFnUUlBQQpBUUlFQ05RdElJRFVMYTQ5QWdRSUVDQkFnQUFCQWkwV0VFQmFQUGk2
VG9BQUFRSUVDQkFnUUtCdUFRR2tibkh0RVNCQWdBQUJBZ1FJCkVHaXhnQURTNHNIWGRRSUVDQkFn
UUlBQUFRSjFDd2dnZFl0cmp3QUJBZ1FJRUNCQWdFQ0xCUVNRRmcrK3JoTWdRSUFBQVFJRUNCQ28K
VzBBQXFWdGNld1FJRUNCQWdBQUJBZ1JhTENDQXRIandkWjBBQVFJRUNCQWdRSUJBM1FJQ1NOM2ky
aU5BZ0FBQkFnUUlFQ0RRWWdFQgpwTVdEcitzRUNCQWdRSUFBQVFJRTZoWVFRT29XMXg0QkFnUUlF
Q0JBZ0FDQkZnc0lJQzBlZkYwblFJQUFBUUlFQ0JBZ1VMZUFBRkszCnVQWUlFQ0JBZ0FBQkFnUUl0
RmhBQUdueDRPczZBUUlFQ0JBZ1FJQUFnYm9GQkpDNnhiVkhnQUFCQWdRSUVDQkFvTVVDQWtpTEIx
L1gKQ1JBZ1FJQUFBUUlFQ05RdElJRFVMYTQ5QWdRSUVDQkFnQUFCQWkwV0VFQmFQUGk2VG9BQUFR
SUVDQkFnUUtCdUFRR2tibkh0RVNCQQpnQUFCQWdRSUVHaXhnQURTNHNIWGRRSUVDQkFnUUlBQUFR
SjFDd2dnZFl0cmp3QUJBZ1FJRUNCQWdFQ0xCUVNRRmcrK3JoTWdRSUFBCkFRSUVDQkNvVzBBQXFW
dGNld1FJRUNCQWdBQUJBZ1JhTENDQXRIandkWjBBQVFJRUNCQWdRSUJBM1FJQ1NOM2kyaU5BZ0FB
QkFnUUkKRUNEUVlnRUJwTVdEcitzRUNCQWdRSUFBQVFJRTZoWVFRT29XMXg0QkFnUUlFQ0JBZ0FD
QkZnc0lJQzBlZkYwblFJQUFBUUlFQ0JBZwpVTGVBQUZLM3VQWUlFQ0JBZ0FBQkFnUUl0RmhBQUdu
eDRPczZBUUlFQ0JBZ1FJQUFnYm9GQkpDNnhiVkhnQUFCQWdRSUVDQkFvTVVDCkFraUxCMS9YQ1JB
Z1FJQUFBUUlFQ05RdElJRFVMYTQ5QWdRSUVDQkFnQUFCQWkwV0VFQmFQUGk2VG9BQUFRSUVDQkFn
UUtCdUFRR2sKYm5IdEVTQkFnQUFCQWdRSUVHaXhnQURTNHNIWGRRSUVDQkFnUUlBQUFRSjFDd2dn
ZFl0cmp3QUJBZ1FJRUNCQWdFQ0xCUVNRRmcrKwpyaE1nUUlBQUFRSUVDQkNvVzBBQXFWdGNld1FJ
RUNCQWdBQUJBZ1JhTENDQXRIandkWjBBQVFJRUNCQWdRSUJBM1FJQ1NOM2kyaU5BCmdBQUJBZ1FJ
RUNEUVlnRUJwTVdEcitzRUNCQWdRSUFBQVFJRTZoWVFRT29XMXg0QkFnUUlFQ0JBZ0FDQkZnc0lJ
QzBlZkYwblFJQUEKQVFJRUNCQWdVTGVBQUZLM3VQWUlFQ0JBZ0FBQkFnUUl0RmhBQUdueDRPczZB
UUlFQ0JBZ1FJQUFnYm9GQkpDNnhiVkhnQUFCQWdRSQpFQ0JBb01VQ2t3eTE3eDk5OUZHYWFLS0pp
bjlEM2JhLzhyZmZmbnRhZHRsbCsvdmErbkVRZU82NTU5SmRkOTFWL0l2eCt1ZC8vdWUwCnpETExw
R21ublhZY2FyTUpBUUlFQ0JBZ1FJQUFnV29FUnZSMGx0eXFkdDk5OS9TclgvMHF6VGpqakdtSEhY
WkllKys5ZDdIcHhSZGYKbkNhYmJMTDBMLy95TCttTk45NUlqejMyV0pwa2tyeHM4KzY3NzZhampq
b3FuWG5tbVduVXFGRnBpaW1tU0p0c3NrbWFkTkpKYzNkcgoyT1hPUC8vOE5QLzg4NmZGRmx0czJI
VU50WUlYWDN3eC9lWTN2MG54dXNFR0c2U1ZWbHBwcUZXTVVmN0JCeDlNeHg5L2ZKcHV1dW5TCmNz
c3RWL3lMQUJKaDVPNjc3MDUzM25sbk1XNkxMTExJR052NVFJQUFBUUlFQ0JBZ1FLQU9nZXdBOHVT
VFQ2YUZGMTQ0cmI3NjZrVUEKdWZ6eXk5TjU1NTJYVmxsbGxmU3YvL3F2S1E3aXp6cnJyTFRhYXFz
VkFlTGFhNi9OM3YvWlpwc3R4Uy8yNzd6elRwcDU1cG5UcnJ2dQptZzQrK09EczdZZGJjUC85OTA4
cnJMQkNXblBOTllkYjFaQzMzMldYWGRJZWUreVJacHBwcHJUbm5udW0zWGJiTGMweHh4emRlaUlm
CmpoZ3hvdnQ1b0RmNzdydHZpdkkvLy9uUCt3MXc3Ny8vZmhINDVweHp6clQ1NXBzUFZKM3ZDQkFn
UUlBQUFRSUVDRlF1a0hlYW90TnMKQklyRER6ODg3Ynp6enNWT1BQend3Mm0vL2ZZckFzanBwNStl
emo3NzdLTE1SaHR0bEpaZmZ2bmlGL2oxMWxzdnhZRnVuQTJKZ0RGNgo5T2owMEVNUEZRZlpjVkFk
bDNPOStlYWIzY3U1cHA1NjZ1TEF1UXdDZi83em45TUJCeHlRNHRmNmFIdENXK0xzVDV6eG1YMzIy
WXV1CmZmLzczMDhYWEhCQmNYWXBWbHgvL2ZYcDVaZGZMczZNRE5iM2swNDZLVTArK2VScHFhV1c2
amQ4UkIzUjNuLys1MyttYTY2NXBuajkKeFM5K01WalZ2aWRBZ0FBQkFnUUlFQ0JRbVVCMkFKbGxs
bG5TckxQTzJtMTRvWVVXU2wvKzhwZUx6MU5OTlZYYVlvc3QwdHR2djUwaQptRXcvL2ZUcDNIUFA3
Wll0MzN6M3U5OU5Uenp4UkhIbUpIN3BqK1hDQ3k5TXI3LytlbnJnZ1FlS1FCSUg1WmRlZW1seEZ1
U2xsMTVLCkVXSzIyV2Fic29vSjZqWGM0cXpQVzIrOWxhYVpacHAwempubmZPcXNSQVN2VjE5OWRj
QzVHMkg2eUNPUHBEaTcwWHVNQnNMNnhqZSsKa1c2NDRZWmsvczFBU3I0alFJQUFBUUlFQ0JDb1dp
QTdnTVJaaWJoRWFPMjExKzZlc1lnUUVyL1F4K1ZEc1h6eXlTZkZXWkR0dHR1dQozLzJjZDk1NXgv
aUZQZ0pHbkJuNXd4LytVQndNeDJWZVN5eXhSTnA2NjYzVGdnc3UyRzg5Vlg5eDg4MDNwL2ZlZTIv
QWFrZU9IRm1FCnF3RUxEZkhMQ0dLSEhucG9FZDdXV0dPTk5NODg4NHhSUTV3RmluKzVTKy9MdHdi
YkppN1ppc3ZkNHF6SnhCTlBQRmh4M3hNZ1FJQUEKQVFJRUNCQVl0a0IyQUlsSjRTdXZ2SEphZDkx
MVU1ekppSGtiY2ViaXNzc3VTM1BQUFhkNit1bW4wLy84ei8ra21OTVFaMExpTEVoLwp5d3N2dkZB
YzdFODU1WlJGa2FnMy9zV1pqK3V1dTY2WVEvTGFhNitsKysrL1B5MjY2S0w5VlZQWitqand2K21t
bTlLamp6NDZZSjB4ClQ2VHFKUUxaSVljYzBtKzEzL3JXdDlJUGZ2Q0RGSmVuOWJVOC92amo2WC8v
OTMrTHk5N2liRXFjcWNwZDR0SzR4UmRmdkFnNEs2NjQKWXU1bXloRWdRSUFBQVFJRUNCQVlaNEhz
QUhMSkpaY1VrODJqcFFnS1l5OXhNSHZzc2NlbXIzM3RhMm5MTGJkTXA1eHlTakgvbzNlNQptQ0Fk
OWNUY2hvTU9PcWozVjhYNzU1OS92Z2d6SDN6d1FZb0Q2NTEyMmludHRkZGV4Y0gxVUE2c1AxWHhJ
Q3RpbitQZitMYkVuSTR3CldHdXR0ZnJkdFFnZmNZbGFCSmx4V2VKT1diZmVlbXNTUU1aRnp6WUVD
QkFnUUlBQUFRSkRGY2dPSUhGNVZkeVpLaTdCaXN0MVlnTDUKeHg5L25ENzg4TVBpODN6enpWZmN3
U3AySU82TU5kZGNjeFdYOXNRazlKanI4TW9ycjZTNFJXeUVqTDd1a0JWelAvNzR4ejhXOHgyaQov
dGd1Mm96THV5TFl4T1QxYUwvT3k3S0dpbGwxK1p3ekxqSG5acXV0dGhybnB2L3BuLzRwblhycXFl
Tzh2UTBKRUNCQWdBQUJBZ1FJCkRFVWdPNERFTCtYeEszazUzMk9nUnVJMnNQSGd1eU9PT0tLNHZD
ZWVjUkdYYk1YZHNlSzdKWmRjY296TjQ4NVBSeDk5ZEZIM1pwdHQKbGpiZWVPTzB6ejc3Rkwvc1I1
dng3NktMTGlwdUFSelBzY2paaHpFYW1JQS9SQURNdlUxdlh3eTV6MnZwYTF2ckNCQWdRSUFBQVFJ
RQpDQXhWWUtMY0RTSkFET1hBUDg2VXhLMWU0NHhISENRLysreXp4ZDJ2eGc0ZmNhbldjY2NkVjF6
V0ZTRW53a3FFakt1dnZqckZiV25MCkplYWV4SjJpNGtHSWx2OHZFSlBPdzNaY2w2ZWVlcXE0N0cx
Y3Q3Y2RBUUlFQ0JBZ1FJQUFnYUVJWko4QkdVcWxZNWZ0N3c1TDk5MTMKWC9FUXZyaUZiRHlmWW9Z
WlppanVpSFhNTWNjVXp4VVplN3U0N2UrOTk5NDdkdlY5Zm81NUpERXhmckFsMm93bnV6ZDFXV2Fa
WmRJZApkOXd4eHNNTGg5SVh0K0VkaXBheUJBZ1FJRUNBQUFFQ3d4V29KWUQwdDVQeDlQUjExbG1u
KzR5TG1HaCsybW1uRmM4UWlWdnhqcjNFCm1aSGVaMFhHL3I3MzV6anpFazg0SDJpSk1uRloySUVI
SGpoUXNmSDZ1d2dnY1ZsYm5DRWFseVhtM2NSdGdDMEVDQkFnUUlBQUFRSUUKNmhENFhBTkluTkdJ
VzhmRzJZcVlDQjBIMGpGaHZhOW5XVVF3aWN1emNnKzA0OWJBZzAydWpzbndjZHZmSmkvVFRqdHRj
YXZpdU53dApIaTQ0bE9XS0s2NUlTeSs5ZEwrMytCMUtYY29TSUVDQUFBRUNCQWdReUJISW5nT1NV
OWxReTJ5MDBVYnA5Tk5QTDU3ZVBXclVxT0wyCnZEdnV1R082OHNvcng2Z3FIaEs0d3c0N3BLT09P
c3J0WXNlUStjZUh1QTN2bVdlZW1kNTg4ODArdnUxN1ZUekQ1Ynp6eml0dW1keDMKQ1dzSkVDQkFn
QUFCQWdRSVZDL3d1WjRCaVhrZjhWeVE5OTkvUDhVRTlGamkrU0J2dmZWVzhUN09lQngrK09IcHFx
dXVTaWVmZkhMYQpZSU1OaXZYKys3UkFYRzRXVDFXUEo4Z1A5a3lQZU9qaVNTZWRWTnpXK05NMVdV
T0FBQUVDQkFnUUlFRGdzeE1ZMFhrNFlNOW5WLzI0CjFSeDNkVHJubkhOU1BBMDlna2s4aUc4NHQ1
cnRieS9pZ1lnMzNIQkQybmZmZmZzcjBxajE4ZHlVbU1ELzhzc3ZGMkV0bmlJZlQ3Q1AKSmU1RUZw
UCt3M1hXV1dkTlAvemhEejhUMDBhQjJWa0NCQWdRSUVDQUFJSGFCY2JMQUZLN3dnVFdZTno5Syth
MjNILy8vVVh3aU81RgpFSW1IRG80Y09iSjRTT1FFMW1YZElVQ0FBQUVDQkFnUWFJaUFBTktRZ2JL
YkJBZ1FJRUNBQUFFQ0JDWUVnYzkxRXZxRUFLZ1BCQWdRCklFQ0FBQUVDQkFqa0N3Z2crVlpLRWlC
QWdBQUJBZ1FJRUNBd1RBRUJaSmlBTmlkQWdBQUJBZ1FJRUNCQUlGOUFBTW0zVXBJQUFRSUUKQ0JB
Z1FJQUFnV0VLQ0NEREJMUTVBUUlFQ0JBZ1FJQUFBUUw1QWdKSXZwV1NCQWdRSUVDQUFBRUNCQWdN
VTBBQUdTYWd6UWtRSUVDQQpBQUVDQkFnUXlCY1FRUEt0bENSQWdBQUJBZ1FJRUNCQVlKZ0NBc2d3
QVcxT2dBQUJBZ1FJRUNCQWdFQytnQUNTYjZVa0FRSUVDQkFnClFJQUFBUUxERkJCQWhnbG9jd0lF
Q0JBZ1FJQUFBUUlFOGdVRWtId3JKUWtRSUVDQUFBRUNCQWdRR0thQUFESk1RSnNUSUVDQUFBRUMK
QkFnUUlKQXZJSURrV3lsSmdBQUJBZ1FJRUNCQWdNQXdCUVNRWVFMYW5BQUJBZ1FJRUNCQWdBQ0Jm
QUVCSk45S1NRSUVDQkFnUUlBQQpBUUlFaGlrZ2dBd1QwT1lFQ0JBZ1FJQUFBUUlFQ09RTENDRDVW
a29TSUVDQUFBRUNCQWdRSURCTUFRRmttSUEySjBDQUFBRUNCQWdRCklFQWdYMEFBeWJkU2tnQUJB
Z1FJRUNCQWdBQ0JZUXBNTXRqMko1eHd3bUJGZkUrQUFBRUNCQWdRSUVDQUFJRzA0WVlicGhsbW1H
RkEKaVVFRFNHd2RGVmtJRUNCQWdBQUJBZ1FJRUNBd1hJRVJQWjFsdUpYWW5nQUJBZ1FJRUNCQWdB
QUJBamtDNW9Ea0tDbERnQUFCQWdRSQpFQ0JBZ0VBbEFnSklKWXdxSVVDQUFBRUNCQWdRSUVBZ1Iw
QUF5VkZTaGdBQkFnUUlFQ0JBZ0FDQlNnUUVrRW9ZVlVLQUFBRUNCQWdRCklFQ0FRSTZBQUpLanBB
d0JBZ1FJRUNCQWdBQUJBcFVJQ0NDVk1LcUVBQUVDQkFnUUlFQ0FBSUVjQVFFa1Iwa1pBZ1FJRUNC
QWdBQUIKQWdRcUVSQkFLbUZVQ1FFQ0JBZ1FJRUNBQUFFQ09RSUNTSTZTTWdRSUVDQkFnQUFCQWdR
SVZDSWdOMFN4NXdBQUMyaEpSRUZVZ0ZUQwpxQklDQkFnUUlFQ0FBQUVDQkhJRUJKQWNKV1VJRUNC
QWdBQUJBZ1FJRUtoRVFBQ3BoRkVsQkFnUUlFQ0FBQUVDQkFqa0NBZ2dPVXJLCkVDQkFnQUFCQWdR
SUVDQlFpWUFBVWdtalNnZ1FJRUNBQUFFQ0JBZ1F5QkVRUUhLVWxDRkFnQUFCQWdRSUVDQkFvQklC
QWFRU1JwVVEKSUVDQUFBRUNCQWdRSUpBaklJRGtLQ2xEZ0FBQkFnUUlFQ0JBZ0VBbEFnSklKWXdx
SVVDQUFBRUNCQWdRSUVBZ1IwQUF5VkZTaGdBQgpBZ1FJRUNCQWdBQ0JTZ1FFa0VvWVZVS0FBQUVD
QkFnUUlFQ0FRSTZBQUpLanBBd0JBZ1FJRUNCQWdBQUJBcFVJQ0NDVk1LcUVBQUVDCkJBZ1FJRUNB
QUlFY0FRRWtSMGtaQWdRSUVDQkFnQUFCQWdRcUVSQkFLbUZVQ1FFQ0JBZ1FJRUNBQUFFQ09RSUNT
STZTTWdRSUVDQkEKZ0FBQkFnUUlWQ0lnZ0ZUQ3FCSUNCQWdRSUVDQUFBRUNCSElFQkpBY0pXVUlF
Q0JBZ0FBQkFnUUlFS2hFUUFDcGhGRWxCQWdRSUVDQQpBQUVDQkFqa0NBZ2dPVXJLRUNCQWdBQUJB
Z1FJRUNCUWlZQUFVZ21qU2dnUUlFQ0FBQUVDQkFnUXlCRVFRSEtVbENGQWdBQUJBZ1FJCkVDQkFv
QklCQWFRU1JwVVFJRUNBQUFFQ0JBZ1FJSkFqSUlEa0tDbERnQUFCQWdRSUVDQkFnRUFsQWdKSUpZ
d3FJVUNBQUFFQ0JBZ1EKSUVBZ1IwQUF5VkZTaGdBQkFnUUlFQ0JBZ0FDQlNnUUVrRW9ZVlVLQUFB
RUNCQWdRSUVDQVFJNkFBSktqcEF3QkFnUUlFQ0JBZ0FBQgpBcFVJQ0NDVk1LcUVBQUVDQkFnUUlF
Q0FBSUVjQVFFa1Iwa1pBZ1FJRUNCQWdBQUJBZ1FxRVJCQUttRlVDUUVDQkFnUUlFQ0FBQUVDCk9R
SUNTSTZTTWdRSUVDQkFnQUFCQWdRSVZDSWdnRlRDcUJJQ0JBZ1FJRUNBQUFFQ0JISUVCSkFjSldV
SUVDQkFnQUFCQWdRSUVLaEUKUUFDcGhGRWxCQWdRSUVDQUFBRUNCQWprQ0FnZ09VcktFQ0JBZ0FB
QkFnUUlFQ0JRaVlBQVVnbWpTZ2dRSUVDQUFBRUNCQWdReUJFUQpRSEtVbENGQWdBQUJBZ1FJRUNC
QW9CSUJBYVFTUnBVUUlFQ0FBQUVDQkFnUUlKQWpJSURrS0NsRGdBQUJBZ1FJRUNCQWdFQWxBZ0pJ
CkpZd3FJVUNBQUFFQ0JBZ1FJRUFnUjBBQXlWRlNoZ0FCQWdRSUVDQkFnQUNCU2dRRWtFb1lWVUtB
QUFFQ0JBZ1FJRUNBUUk2QUFKS2oKcEF3QkFnUUlFQ0JBZ0FBQkFwVUlDQ0NWTUtxRUFBRUNCQWdR
SUVDQUFJRWNBUUVrUjBrWkFnUUlFQ0JBZ0FBQkFnUXFFUkJBS21GVQpDUUVDQkFnUUlFQ0FBQUVD
T1FJQ1NJNlNNZ1FJRUNCQWdBQUJBZ1FJVkNJZ2dGVENxQklDQkFnUUlFQ0FBQUVDQkhJRUJKQWNK
V1VJCkVDQkFnQUFCQWdRSUVLaEVRQUNwaEZFbEJBZ1FJRUNBQUFFQ0JBamtDQWdnT1VyS0VDQkFn
QUFCQWdRSUVDQlFpWUFBVWdtalNnZ1EKSUVDQUFBRUNCQWdReUJFUVFIS1VsQ0ZBZ0FBQkFnUUlF
Q0JBb0JJQkFhUVNScFVRSUVDQUFBRUNCQWdRSUpBaklJRGtLQ2xEZ0FBQgpBZ1FJRUNCQWdFQWxB
Z0pJSll3cUlVQ0FBQUVDQkFnUUlFQWdSMEFBeVZGU2hnQUJBZ1FJRUNCQWdBQ0JTZ1FFa0VvWVZV
S0FBQUVDCkJBZ1FJRUNBUUk2QUFKS2pwQXdCQWdRSUVDQkFnQUFCQXBVSUNDQ1ZNS3FFQUFFQ0JB
Z1FJRUNBQUlFY0FRRWtSMGtaQWdRSUVDQkEKZ0FBQkFnUXFFUkJBS21GVUNRRUNCQWdRSUVDQUFB
RUNPUUlDU0k2U01nUUlFQ0JBZ0FBQkFnUUlWQ0lnZ0ZUQ3FCSUNCQWdRSUVDQQpBQUVDQkhJRUJK
QWNKV1VJRUNCQWdBQUJBZ1FJRUtoRVFBQ3BoRkVsQkFnUUlFQ0FBQUVDQkFqa0NBZ2dPVXJLRUNC
QWdBQUJBZ1FJCkVDQlFpWUFBVWdtalNnZ1FJRUNBQUFFQ0JBZ1F5QkVRUUhLVWxDRkFnQUFCQWdR
SUVDQkFvQklCQWFRU1JwVVFJRUNBQUFFQ0JBZ1EKSUpBaklJRGtLQ2xEZ0FBQkFnUUlFQ0JBZ0VB
bEFnSklKWXdxSVVDQUFBRUNCQWdRSUVBZ1IwQUF5VkZTaGdBQkFnUUlFQ0JBZ0FDQgpTZ1FFa0Vv
WVZVS0FBQUVDQkFnUUlFQ0FRSTZBQUpLanBBd0JBZ1FJRUNCQWdBQUJBcFVJQ0NDVk1LcUVBQUVD
QkFnUUlFQ0FBSUVjCkFRRWtSMGtaQWdRSUVDQkFnQUFCQWdRcUVSQkFLbUZVQ1FFQ0JBZ1FJRUNB
QUFFQ09RSUNTSTZTTWdRSUVDQkFnQUFCQWdRSVZDSWcKZ0ZUQ3FCSUNCQWdRSUVDQUFBRUNCSElF
QkpBY0pXVUlFQ0JBZ0FBQkFnUUlFS2hFUUFDcGhGRWxCQWdRSUVDQUFBRUNCQWprQ0FnZwpPVXJL
RUNCQWdBQUJBZ1FJRUNCUWlZQUFVZ21qU2dnUUlFQ0FBQUVDQkFnUXlCRVFRSEtVbENGQWdBQUJB
Z1FJRUNCQW9CSUJBYVFTClJwVVFJRUNBQUFFQ0JBZ1FJSkFqSUlEa0tDbERnQUFCQWdRSUVDQkFn
RUFsQWdKSUpZd3FJVUNBQUFFQ0JBZ1FJRUFnUjBBQXlWRlMKaGdBQkFnUUlFQ0JBZ0FDQlNnUUVr
RW9ZVlVLQUFBRUNCQWdRSUVDQVFJNkFBSktqcEF3QkFnUUlFQ0JBZ0FBQkFwVUlDQ0NWTUtxRQpB
QUVDQkFnUUlFQ0FBSUVjQVFFa1Iwa1pBZ1FJRUNCQWdBQUJBZ1FxRVJCQUttRlVDUUVDQkFnUUlF
Q0FBQUVDT1FJQ1NJNlNNZ1FJCkVDQkFnQUFCQWdRSVZDSWdnRlRDcUJJQ0JBZ1FJRUNBQUFFQ0JI
SUVCSkFjSldVSUVDQkFnQUFCQWdRSUVLaEVRQUNwaEZFbEJBZ1EKSUVDQUFBRUNCQWprQ0FnZ09V
cktFQ0JBZ0FBQkFnUUlFQ0JRaVlBQVVnbWpTZ2dRSUVDQUFBRUNCQWdReUJFUVFIS1VsQ0ZBZ0FB
QgpBZ1FJRUNCQW9CSUJBYVFTUnBVUUlFQ0FBQUVDQkFnUUlKQWpJSURrS0NsRGdBQUJBZ1FJRUNC
QWdFQWxBZ0pJSll3cUlVQ0FBQUVDCkJBZ1FJRUFnUjBBQXlWRlNoZ0FCQWdRSUVDQkFnQUNCU2dR
RWtFb1lWVUtBQUFFQ0JBZ1FJRUNBUUk2QUFKS2pwQXdCQWdRSUVDQkEKZ0FBQkFwVUlDQ0NWTUtx
RUFBRUNCQWdRSUVDQUFJRWNBUUVrUjBrWkFnUUlFQ0JBZ0FBQkFnUXFFUkJBS21GVUNRRUNCQWdR
SUVDQQpBQUVDT1FJQ1NJNlNNZ1FJRUNCQWdBQUJBZ1FJVkNJZ2dGVENxQklDQkFnUUlFQ0FBQUVD
QkhJRUJKQWNKV1VJRUNCQWdBQUJBZ1FJCkVLaEVRQUNwaEZFbEJBZ1FJRUNBQUFFQ0JBamtDQWdn
T1VyS0VDQkFnQUFCQWdRSUVDQlFpWUFBVWdtalNnZ1FJRUNBQUFFQ0JBZ1EKeUJFUVFIS1VsQ0ZB
Z0FBQkFnUUlFQ0JBb0JJQkFhUVNScFVRSUVDQUFBRUNCQWdRSUpBaklJRGtLQ2xEZ0FBQkFnUUlF
Q0JBZ0VBbApBZ0pJSll3cUlVQ0FBQUVDQkFnUUlFQWdSMEFBeVZGU2hnQUJBZ1FJRUNCQWdBQ0JT
Z1FFa0VvWVZVS0FBQUVDQkFnUUlFQ0FRSTZBCkFKS2pwQXdCQWdRSUVDQkFnQUFCQXBVSUNDQ1ZN
S3FFQUFFQ0JBZ1FJRUNBQUlFY0FRRWtSMGtaQWdRSUVDQkFnQUFCQWdRcUVSQkEKS21GVUNRRUNC
QWdRSUVDQUFBRUNPUUlDU0k2U01nUUlFQ0JBZ0FBQkFnUUlWQ0lnZ0ZUQ3FCSUNCQWdRSUVDQUFB
RUNCSElFQkpBYwpKV1VJRUNCQWdBQUJBZ1FJRUtoRVFBQ3BoRkVsQkFnUUlFQ0FBQUVDQkFqa0NB
Z2dPVXJLRUNCQWdBQUJBZ1FJRUNCUWlZQUFVZ21qClNnZ1FJRUNBQUFFQ0JBZ1F5QkVRUUhLVWxD
RkFnQUFCQWdRSUVDQkFvQklCQWFRU1JwVVFJRUNBQUFFQ0JBZ1FJSkFqSUlEa0tDbEQKZ0FBQkFn
UUlFQ0JBZ0VBbEFnSklKWXdxSVVDQUFBRUNCQWdRSUVBZ1IwQUF5VkZTaGdBQkFnUUlFQ0JBZ0FD
QlNnUUVrRW9ZVlVLQQpBQUVDQkFnUUlFQ0FRSTZBQUpLanBBd0JBZ1FJRUNCQWdBQUJBcFVJQ0ND
Vk1LcUVBQUVDQkFnUUlFQ0FBSUVjQVFFa1Iwa1pBZ1FJCkVDQkFnQUFCQWdRcUVSQkFLbUZVQ1FF
Q0JBZ1FJRUNBQUFFQ09RSUNTSTZTTWdRSUVDQkFnQUFCQWdRSVZDSWdnRlRDcUJJQ0JBZ1EKSUVD
QUFBRUNCSElFQkpBY0pXVUlFQ0JBZ0FBQkFnUUlFS2hFUUFDcGhGRWxCQWdRSUVDQUFBRUNCQWpr
Q0FnZ09VcktFQ0JBZ0FBQgpBZ1FJRUNCUWlZQUFVZ21qU2dnUUlFQ0FBQUVDQkFnUXlCRVFRSEtV
bENGQWdBQUJBZ1FJRUNCQW9CSUJBYVFTUnBVUUlFQ0FBQUVDCkJBZ1FJSkFqSUlEa0tDbERnQUFC
QWdRSUVDQkFnRUFsQWdKSUpZd3FJVUNBQUFFQ0JBZ1FJRUFnUjBBQXlWRlNoZ0FCQWdRSUVDQkEK
Z0FDQlNnUUVrRW9ZVlVLQUFBRUNCQWdRSUVDQVFJNkFBSktqcEF3QkFnUUlFQ0JBZ0FBQkFwVUlD
Q0NWTUtxRUFBRUNCQWdRSUVDQQpBSUVjZ2Y4SGtLUHEwMDVEaFlBQUFBQUFTVVZPUks1Q1lJST0K
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>