<?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>156929</bug_id>
          
          <creation_ts>2016-04-22 13:54:34 -0700</creation_ts>
          <short_desc>[Cocoa] Guarantee FontPlatformData&apos;s m_cgFont is never nullptr</short_desc>
          <delta_ts>2016-04-25 20:53:08 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1186413</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-04-22 13:54:34 -0700</bug_when>
    <thetext>[Cocoa] Guarantee FontPlatformData&apos;s m_cgFont is never nullptr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186414</commentid>
    <comment_count>1</comment_count>
      <attachid>277097</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-04-22 13:54:59 -0700</bug_when>
    <thetext>Created attachment 277097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186417</commentid>
    <comment_count>2</comment_count>
      <attachid>277098</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-04-22 14:00:21 -0700</bug_when>
    <thetext>Created attachment 277098
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186419</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-22 14:05:48 -0700</bug_when>
    <thetext>Attachment 277098 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 8 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>1186517</commentid>
    <comment_count>4</comment_count>
      <attachid>277118</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-04-22 17:07:43 -0700</bug_when>
    <thetext>Created attachment 277118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186526</commentid>
    <comment_count>5</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-04-22 17:39:19 -0700</bug_when>
    <thetext>I should delete FontPlatformData::setFont()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186541</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-22 18:20:54 -0700</bug_when>
    <thetext>Does not build?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186544</commentid>
    <comment_count>7</comment_count>
      <attachid>277126</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-04-22 18:33:17 -0700</bug_when>
    <thetext>Created attachment 277126
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186681</commentid>
    <comment_count>8</comment_count>
      <attachid>277126</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-23 16:52:48 -0700</bug_when>
    <thetext>Comment on attachment 277126
Patch

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

r=me if you fix the Windows build

&gt; Source/WebCore/platform/graphics/FontPlatformData.cpp:60
&gt;      m_cgFont = cgFont;

Could we construct this instead of initializing it?

&gt; Source/WebCore/platform/graphics/FontPlatformData.h:-221
&gt; -#if USE(CG)
&gt; -    void setFallbackCGFont();
&gt; -#endif

Broke the Windows build, which is still trying to call this function.

&gt; Source/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.mm:265
&gt; -            ASSERT(CFGetTypeID(runCTFont) == CTFontGetTypeID());
&gt; +            ASSERT(runCTFont &amp;&amp; CFGetTypeID(runCTFont) == CTFontGetTypeID());

If you want to add an assertion about this not being null, then it should be a separate assertion; we don’t use &amp;&amp;.

But also, CFGetTypeID is already a function that crashes when passed null; I don’t think we really need any change here.

&gt; Source/WebCore/platform/graphics/mac/FontCustomPlatformData.cpp:44
&gt; +    ASSERT(font);

Is this really guaranteed?

&gt; Source/WebCore/platform/mac/DragImageMac.mm:336
&gt; +    if (drawURLString &amp;&amp; urlFont) {

Doesn’t seem like we need this.

&gt; Source/WebCore/platform/mac/DragImageMac.mm:343
&gt; +    if (labelFont) {

Doesn’t seem like we need this.

&gt; Source/WebKit/mac/Misc/WebStringTruncator.mm:65
&gt; +    if (!menuFont.get())
&gt; +        return nil;

I don’t think we need this. No chance of getting nil for the menu font. Probably don’t need the assertion either, since fontFromNSFont asserts.

&gt; Source/WebKit/mac/Misc/WebStringTruncator.mm:73
&gt; +    if (!font)
&gt; +        return nil;

Returning @&quot;&quot; or returning the string without doing truncation would be better than returning nil.

&gt; Source/WebKit/mac/Misc/WebStringTruncator.mm:81
&gt; +    if (!font)
&gt; +        return nil;

Returning @&quot;&quot; or returning the string without doing truncation would be better than returning nil.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187168</commentid>
    <comment_count>9</comment_count>
      <attachid>277304</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-04-25 19:05:59 -0700</bug_when>
    <thetext>Created attachment 277304
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187221</commentid>
    <comment_count>10</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-04-25 20:53:08 -0700</bug_when>
    <thetext>Committed r200070: &lt;http://trac.webkit.org/changeset/200070&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277097</attachid>
            <date>2016-04-22 13:54:59 -0700</date>
            <delta_ts>2016-04-22 14:00:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156929-20160422135523.patch</filename>
            <type>text/plain</type>
            <size>9269</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5ODI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZlMDQ4YTdkYWZkZmZi
MzAzNjg0MzY4MWI1ODUxNWI0MGUzNmIwOS4uMTUzMTE0Y2ZhOWFlYWM0NGNjMDMzMzM2MjI1Mjc5
NzVjODcxYTQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE2LTA0LTIyICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBH
dWFyYW50ZWUgRm9udFBsYXRmb3JtRGF0YSdzIG1fY2dGb250IGlzIG5ldmVyIG51bGxwdHIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjkyOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cyAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0
Q29udHJvbGxlckNvcmVUZXh0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250
cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5zRm9yQ2hhcmFjdGVycyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OmZvbnRGcm9tTlNGb250KToKKyAgICAgICAgKFdlYkNvcmU6OndpZHRoV2l0aEZvbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6ZHJhd0F0UG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJh
Z0ltYWdlRm9yTGluayk6CisKIDIwMTYtMDQtMjEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3Vo
YWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKDE5ODc4Mik6IEltYWdlU291
cmNlOjpzdWJzYW1wbGluZ0xldmVsRm9yU2NhbGUoKSBkb2VzIG5vdCBjYWNoZSB0aGUgTWF4aW11
bVN1YnNhbXBsaW5nTGV2ZWwgZm9yIHRoaXMgSW1hZ2VTb3VyY2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRl
eCA3NTA5NzFkNjk4OGFjM2Y5MzcxODllZmQ3MjdiZmI4NDNkY2QzYjk5Li42YzczMjUzNDBjYTU5
MGYzMTMzMTMyY2FmODhhN2EyMzBjMDE0ZDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTYtMDQtMjIgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNv
bT4KKworICAgICAgICBbQ29jb2FdIEd1YXJhbnRlZSBGb250UGxhdGZvcm1EYXRhJ3MgbV9jZ0Zv
bnQgaXMgbmV2ZXIgbnVsbHB0cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU2OTI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBNaXNjL1dlYktpdE5TU3RyaW5nRXh0cmFzLm1tOgorICAgICAgICAoLVtO
U1N0cmluZyBfd2ViX2RyYXdBdFBvaW50OmZvbnQ6dGV4dENvbG9yOmFsbG93aW5nRm9udFNtb290
aGluZzpdKToKKyAgICAgICAgKiBNaXNjL1dlYlN0cmluZ1RydW5jYXRvci5tbToKKyAgICAgICAg
KCtbV2ViU3RyaW5nVHJ1bmNhdG9yIGNlbnRlclRydW5jYXRlU3RyaW5nOnRvV2lkdGg6XSk6Cisg
ICAgICAgICgrW1dlYlN0cmluZ1RydW5jYXRvciBjZW50ZXJUcnVuY2F0ZVN0cmluZzp0b1dpZHRo
OndpdGhGb250Ol0pOgorICAgICAgICAoK1tXZWJTdHJpbmdUcnVuY2F0b3IgcmlnaHRUcnVuY2F0
ZVN0cmluZzp0b1dpZHRoOndpdGhGb250Ol0pOgorICAgICAgICAoK1tXZWJTdHJpbmdUcnVuY2F0
b3Igd2lkdGhPZlN0cmluZzpmb250Ol0pOgorCiAyMDE2LTA0LTIxICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBbVXNlUG9pbnRlcnNFdmVuRm9yTm9uTnVs
bGFibGVPYmplY3RBcmd1bWVudHNdIGZyb20gUmFuZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRy
b2xsZXJDb3JlVGV4dC5tbQppbmRleCBiYTE5NDk0MDdkZDQ0ZmU0ZTA0ZDkzNDI4NWM0NDk3NjZh
NmFjOWVmLi44YTliZWZkMTFiOTVlMTcwZGFiZjkyNGYwZjJhOTUyZGRkYzY5MTFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250
cm9sbGVyQ29yZVRleHQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCkBAIC0yNjIsNyArMjYyLDcgQEAg
dm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OmNvbGxlY3RDb21wbGV4VGV4dFJ1bnNGb3JDaGFy
YWN0ZXJzKGNvbnN0IFVDaGFyKiBjcCwKICAgICAgICAgaWYgKGlzU3lzdGVtRmFsbGJhY2spIHsK
ICAgICAgICAgICAgIENGRGljdGlvbmFyeVJlZiBydW5BdHRyaWJ1dGVzID0gQ1RSdW5HZXRBdHRy
aWJ1dGVzKGN0UnVuKTsKICAgICAgICAgICAgIENURm9udFJlZiBydW5DVEZvbnQgPSBzdGF0aWNf
Y2FzdDxDVEZvbnRSZWY+KENGRGljdGlvbmFyeUdldFZhbHVlKHJ1bkF0dHJpYnV0ZXMsIGtDVEZv
bnRBdHRyaWJ1dGVOYW1lKSk7Ci0gICAgICAgICAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQocnVuQ1RG
b250KSA9PSBDVEZvbnRHZXRUeXBlSUQoKSk7CisgICAgICAgICAgICBBU1NFUlQocnVuQ1RGb250
ICYmIENGR2V0VHlwZUlEKHJ1bkNURm9udCkgPT0gQ1RGb250R2V0VHlwZUlEKCkpOwogICAgICAg
ICAgICAgUmV0YWluUHRyPENGVHlwZVJlZj4gcnVuRm9udEVxdWFsaXR5T2JqZWN0ID0gRm9udFBs
YXRmb3JtRGF0YTo6b2JqZWN0Rm9yRXF1YWxpdHlDaGVjayhydW5DVEZvbnQpOwogICAgICAgICAg
ICAgaWYgKCFzYWZlQ0ZFcXVhbChydW5Gb250RXF1YWxpdHlPYmplY3QuZ2V0KCksIGZvbnQtPnBs
YXRmb3JtRGF0YSgpLm9iamVjdEZvckVxdWFsaXR5Q2hlY2soKS5nZXQoKSkpIHsKICAgICAgICAg
ICAgICAgICAvLyBCZWdpbiB0cnlpbmcgdG8gc2VlIGlmIHJ1bkZvbnQgbWF0Y2hlcyBhbnkgb2Yg
dGhlIGZvbnRzIGluIHRoZSBmYWxsYmFjayBsaXN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwCmluZGV4IGRjMzlhZjQ1YjJmYmFjZDlmNDQ3MmE2ZDExNGU0ZjcxYmJjMzA4MjQuLjEwZWJl
MDNjMGVlNTIzMGY3ZDY1ZDRkZDQ2OTg1NDE5M2M2N2FiNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAgRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYKICAg
ICBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCA9IGZvbnREZXNjcmlwdGlvbi53aWR0aFZh
cmlhbnQoKTsKICAgICBSZXRhaW5QdHI8Q1RGb250UmVmPiBmb250ID0gYWRvcHRDRihDVEZvbnRD
cmVhdGVXaXRoRm9udERlc2NyaXB0b3IobV9mb250RGVzY3JpcHRvci5nZXQoKSwgc2l6ZSwgbnVs
bHB0cikpOwogICAgIGZvbnQgPSBwcmVwYXJlUGxhdGZvcm1Gb250KGZvbnQuZ2V0KCksIGZvbnRE
ZXNjcmlwdGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgpLCAmZm9udEZhY2VGZWF0dXJlcywgJmZvbnRG
YWNlVmFyaWFudFNldHRpbmdzLCBmb250RGVzY3JpcHRpb24uZmVhdHVyZVNldHRpbmdzKCksIGZv
bnREZXNjcmlwdGlvbi52YXJpYW50U2V0dGluZ3MoKSk7CisgICAgQVNTRVJUKGZvbnQpOwogICAg
IHJldHVybiBGb250UGxhdGZvcm1EYXRhKGZvbnQuZ2V0KCksIHNpemUsIGJvbGQsIGl0YWxpYywg
b3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdN
b2RlKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJh
Z0ltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5t
bQppbmRleCA5MWM5MmU5MTJjYzIxODkyZjY1OWU2N2E5NTk1NzFmYmRkMDAyN2I4Li42MjY0NTA3
MDRhNDg5MmIxM2JlZWRkYzZkMmUwNGZmZmNhYzk2MWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTE2Niw2ICsxNjYsNyBAQCBjb25zdCBmbG9h
dCBEcmFnTGlua1VybEZvbnRTaXplID0gMTA7CiAgICAgCiBzdGF0aWMgRm9udENhc2NhZGUmIGZv
bnRGcm9tTlNGb250KE5TRm9udCAqZm9udCkKIHsKKyAgICBBU1NFUlQoZm9udCk7CiAgICAgc3Rh
dGljIE5TRm9udCAqY3VycmVudEZvbnQ7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnRD
YXNjYWRlPiBjdXJyZW50UmVuZGVyZXI7CiAgICAgCkBAIC0xOTIsNiArMTkzLDkgQEAgc3RhdGlj
IGJvb2wgY2FuVXNlRmFzdFJlbmRlcmVyKGNvbnN0IFVuaUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQg
bGVuZ3RoKQogICAgIAogc3RhdGljIGZsb2F0IHdpZHRoV2l0aEZvbnQoTlNTdHJpbmcgKnN0cmlu
ZywgTlNGb250ICpmb250KQogeworICAgIGlmICghZm9udCkKKyAgICAgICAgcmV0dXJuIDA7CisK
ICAgICB1bnNpZ25lZCBsZW5ndGggPSBbc3RyaW5nIGxlbmd0aF07CiAgICAgVmVjdG9yPFVuaUNo
YXIsIDIwNDg+IGJ1ZmZlcihsZW5ndGgpOwogICAgIApAQCAtMjA4LDYgKzIxMiw5IEBAIHN0YXRp
YyBmbG9hdCB3aWR0aFdpdGhGb250KE5TU3RyaW5nICpzdHJpbmcsIE5TRm9udCAqZm9udCkKICAg
ICAKIHN0YXRpYyB2b2lkIGRyYXdBdFBvaW50KE5TU3RyaW5nICpzdHJpbmcsIE5TUG9pbnQgcG9p
bnQsIE5TRm9udCAqZm9udCwgTlNDb2xvciAqdGV4dENvbG9yKQogeworICAgIGlmICghZm9udCkK
KyAgICAgICAgcmV0dXJuOworCiAgICAgdW5zaWduZWQgbGVuZ3RoID0gW3N0cmluZyBsZW5ndGhd
OwogICAgIFZlY3RvcjxVbmlDaGFyLCAyMDQ4PiBidWZmZXIobGVuZ3RoKTsKICAgICAKQEAgLTIy
OCw3ICsyMzUsNyBAQCBzdGF0aWMgdm9pZCBkcmF3QXRQb2ludChOU1N0cmluZyAqc3RyaW5nLCBO
U1BvaW50IHBvaW50LCBOU0ZvbnQgKmZvbnQsIE5TQ29sb3IgKgogICAgICAgICBCT09MIGZsaXBw
ZWQgPSBbbnNDb250ZXh0IGlzRmxpcHBlZF07CiAgICAgICAgIGlmICghZmxpcHBlZCkKICAgICAg
ICAgICAgIENHQ29udGV4dFNjYWxlQ1RNKGNnQ29udGV4dCwgMSwgLTEpOwotICAgICAgICAgICAg
CisKICAgICAgICAgRm9udENhc2NhZGUgd2ViQ29yZUZvbnQoRm9udFBsYXRmb3JtRGF0YSh0b0NU
Rm9udChmb250KSwgW2ZvbnQgcG9pbnRTaXplXSksIEFudGlhbGlhc2VkKTsKICAgICAgICAgVGV4
dFJ1biBydW4oU3RyaW5nVmlldyhidWZmZXIuZGF0YSgpLCBsZW5ndGgpKTsKIApAQCAtMzIyLDE2
ICszMjksMTggQEAgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoVVJMJiB1cmws
IGNvbnN0IFN0cmluZyYgdGl0bGUsIEZvbnRSZW5kZXJpbmcKIAogICAgIE5TQ29sb3IgKnRvcENv
bG9yID0gW05TQ29sb3IgY29sb3JXaXRoRGV2aWNlV2hpdGU6MC4wZiBhbHBoYTowLjc1Zl07CiAg
ICAgTlNDb2xvciAqYm90dG9tQ29sb3IgPSBbTlNDb2xvciBjb2xvcldpdGhEZXZpY2VXaGl0ZTox
LjBmIGFscGhhOjAuNWZdOwotICAgIGlmIChkcmF3VVJMU3RyaW5nKSB7CisgICAgaWYgKGRyYXdV
UkxTdHJpbmcgJiYgdXJsRm9udCkgewogICAgICAgICBpZiAoY2xpcFVSTFN0cmluZykKICAgICAg
ICAgICAgIHVybFN0cmluZyA9IFN0cmluZ1RydW5jYXRvcjo6Y2VudGVyVHJ1bmNhdGUodXJsU3Ry
aW5nLCBpbWFnZVNpemUud2lkdGggLSAoRHJhZ0xhYmVsQm9yZGVyWCAqIDIpLCBmb250RnJvbU5T
Rm9udCh1cmxGb250KSk7CiAKICAgICAgICBkcmF3RG91YmxlZEF0UG9pbnQodXJsU3RyaW5nLCBO
U01ha2VQb2ludChEcmFnTGFiZWxCb3JkZXJYLCBEcmFnTGFiZWxCb3JkZXJZIC0gW3VybEZvbnQg
ZGVzY2VuZGVyXSksIHRvcENvbG9yLCBib3R0b21Db2xvciwgdXJsRm9udCk7CiAgICAgfQogCi0g
ICAgaWYgKGNsaXBMYWJlbFN0cmluZykKLSAgICAgICAgbGFiZWwgPSBTdHJpbmdUcnVuY2F0b3I6
OnJpZ2h0VHJ1bmNhdGUobGFiZWwsIGltYWdlU2l6ZS53aWR0aCAtIChEcmFnTGFiZWxCb3JkZXJY
ICogMiksIGZvbnRGcm9tTlNGb250KGxhYmVsRm9udCkpOwotICAgIGRyYXdEb3VibGVkQXRQb2lu
dChsYWJlbCwgTlNNYWtlUG9pbnQoRHJhZ0xhYmVsQm9yZGVyWCwgaW1hZ2VTaXplLmhlaWdodCAt
IExhYmVsQm9yZGVyWU9mZnNldCAtIFtsYWJlbEZvbnQgcG9pbnRTaXplXSksIHRvcENvbG9yLCBi
b3R0b21Db2xvciwgbGFiZWxGb250KTsKKyAgICBpZiAobGFiZWxGb250KSB7CisgICAgICAgIGlm
IChjbGlwTGFiZWxTdHJpbmcpCisgICAgICAgICAgICBsYWJlbCA9IFN0cmluZ1RydW5jYXRvcjo6
cmlnaHRUcnVuY2F0ZShsYWJlbCwgaW1hZ2VTaXplLndpZHRoIC0gKERyYWdMYWJlbEJvcmRlclgg
KiAyKSwgZm9udEZyb21OU0ZvbnQobGFiZWxGb250KSk7CisgICAgICAgIGRyYXdEb3VibGVkQXRQ
b2ludChsYWJlbCwgTlNNYWtlUG9pbnQoRHJhZ0xhYmVsQm9yZGVyWCwgaW1hZ2VTaXplLmhlaWdo
dCAtIExhYmVsQm9yZGVyWU9mZnNldCAtIFtsYWJlbEZvbnQgcG9pbnRTaXplXSksIHRvcENvbG9y
LCBib3R0b21Db2xvciwgbGFiZWxGb250KTsKKyAgICB9CiAKICAgICBbZHJhZ0ltYWdlIHVubG9j
a0ZvY3VzXTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJLaXROU1N0
cmluZ0V4dHJhcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViS2l0TlNTdHJpbmdFeHRy
YXMubW0KaW5kZXggNjJkMmZiMTMxZGY3MDI4NTM4ODM5NWNjMDFiNWYzMTMwN2FjOWM4Ni4uYjlh
ODRlNjY0MjBiZDZjZjUxYzI4NGYyMjk3NzEyYTE3MGU4NjBhNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9NaXNjL1dlYktpdE5TU3RyaW5nRXh0cmFzLm1tCkBAIC03MSw2ICs3MSw5IEBAIC0g
KHZvaWQpX3dlYl9kcmF3QXRQb2ludDooTlNQb2ludClwb2ludCBmb250OihOU0ZvbnQgKilmb250
IHRleHRDb2xvcjooTlNDb2xvciAqCiAKIC0gKHZvaWQpX3dlYl9kcmF3QXRQb2ludDooTlNQb2lu
dClwb2ludCBmb250OihOU0ZvbnQgKilmb250IHRleHRDb2xvcjooTlNDb2xvciAqKXRleHRDb2xv
ciBhbGxvd2luZ0ZvbnRTbW9vdGhpbmc6KEJPT0wpZm9udFNtb290aGluZ0lzQWxsb3dlZAogewor
ICAgIGlmICghZm9udCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgdW5zaWduZWQgbGVuZ3RoID0g
W3NlbGYgbGVuZ3RoXTsKICAgICBWZWN0b3I8VW5pQ2hhciwgMjA0OD4gYnVmZmVyKGxlbmd0aCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViU3RyaW5nVHJ1bmNhdG9y
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJTdHJpbmdUcnVuY2F0b3IubW0KaW5kZXgg
YzZhYjE1NDA3YWMwNzRmODFkMGE5ZTE5MmIzMTcyMGU1MWQ4YjI1OS4uZWE3YWI0M2EzMmY1MzY5
NjNmN2YzNjVhMmRlOTk5NjdkMzM4OGFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
TWlzYy9XZWJTdHJpbmdUcnVuY2F0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9X
ZWJTdHJpbmdUcnVuY2F0b3IubW0KQEAgLTU5LDIxICs1OSwzNCBAQCArICh2b2lkKWluaXRpYWxp
emUKICsgKE5TU3RyaW5nICopY2VudGVyVHJ1bmNhdGVTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5n
IHRvV2lkdGg6KGZsb2F0KW1heFdpZHRoCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJl
dGFpblB0cjxOU0ZvbnQ+PiBtZW51Rm9udCA9IFtOU0ZvbnQgbWVudUZvbnRPZlNpemU6MF07CisK
KyAgICBpZiAoIW1lbnVGb250LmdldCgpKQorICAgICAgICByZXR1cm4gbmlsOworCiAgICAgcmV0
dXJuIFdlYkNvcmU6OlN0cmluZ1RydW5jYXRvcjo6Y2VudGVyVHJ1bmNhdGUoc3RyaW5nLCBtYXhX
aWR0aCwgZm9udEZyb21OU0ZvbnQobWVudUZvbnQuZ2V0KCkuZ2V0KCkpKTsKIH0KIAogKyAoTlNT
dHJpbmcgKiljZW50ZXJUcnVuY2F0ZVN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgdG9XaWR0aDoo
ZmxvYXQpbWF4V2lkdGggd2l0aEZvbnQ6KE5TRm9udCAqKWZvbnQKIHsKKyAgICBpZiAoIWZvbnQp
CisgICAgICAgIHJldHVybiBuaWw7CisKICAgICByZXR1cm4gV2ViQ29yZTo6U3RyaW5nVHJ1bmNh
dG9yOjpjZW50ZXJUcnVuY2F0ZShzdHJpbmcsIG1heFdpZHRoLCBmb250RnJvbU5TRm9udChmb250
KSk7CiB9CiAKICsgKE5TU3RyaW5nICopcmlnaHRUcnVuY2F0ZVN0cmluZzooTlNTdHJpbmcgKilz
dHJpbmcgdG9XaWR0aDooZmxvYXQpbWF4V2lkdGggd2l0aEZvbnQ6KE5TRm9udCAqKWZvbnQKIHsK
KyAgICBpZiAoIWZvbnQpCisgICAgICAgIHJldHVybiBuaWw7CisKICAgICByZXR1cm4gV2ViQ29y
ZTo6U3RyaW5nVHJ1bmNhdG9yOjpyaWdodFRydW5jYXRlKHN0cmluZywgbWF4V2lkdGgsIGZvbnRG
cm9tTlNGb250KGZvbnQpKTsKIH0KIAogKyAoZmxvYXQpd2lkdGhPZlN0cmluZzooTlNTdHJpbmcg
KilzdHJpbmcgZm9udDooTlNGb250ICopZm9udAogeworICAgIGlmICghZm9udCkKKyAgICAgICAg
cmV0dXJuIDA7CisKICAgICByZXR1cm4gV2ViQ29yZTo6U3RyaW5nVHJ1bmNhdG9yOjp3aWR0aChz
dHJpbmcsIGZvbnRGcm9tTlNGb250KGZvbnQpKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277098</attachid>
            <date>2016-04-22 14:00:21 -0700</date>
            <delta_ts>2016-04-22 17:07:41 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-156929-20160422140045.patch</filename>
            <type>text/plain</type>
            <size>13582</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5OTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNjZWE3MDIxYjEyMDIx
ODMzZGE5YWQyZTQ0NzY3YzMzMTQ3ZTBiMS4uOTYwYjYzZGYwODllMGYzNzdkYjAzZGU0NWNmOTFm
MTFjZjRjYmUzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE2LTA0LTIyICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBH
dWFyYW50ZWUgRm9udFBsYXRmb3JtRGF0YSdzIG1fY2dGb250IGlzIG5ldmVyIG51bGxwdHIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjkyOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cyAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0
Q29udHJvbGxlckNvcmVUZXh0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250
cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5zRm9yQ2hhcmFjdGVycyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OmZvbnRGcm9tTlNGb250KToKKyAgICAgICAgKFdlYkNvcmU6OndpZHRoV2l0aEZvbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6ZHJhd0F0UG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJh
Z0ltYWdlRm9yTGluayk6CisKIDIwMTYtMDQtMjIgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBh
cHBsZS5jb20+CiAKICAgICAgICAgQW5jaG9yIGVsZW1lbnQgJ3BpbmcnIHByb3BlcnR5IHNob3Vs
ZCBvbmx5IGFwcGx5IHRvIGh0dHAvaHR0cHMgZGVzdGluYXRpb25zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5k
ZXggMzMyMTVjYWZkYzE3NzMxZWUxNzQzMGZlM2M5ZmFhZWZlNThiYTNjNC4uZTA0MmQ5ZGMzM2Jh
N2E3ODdkMWM0ZmIwYjE3NjJhOTQwOTg3MTA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDE2LTA0LTIyICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5j
b20+CisKKyAgICAgICAgW0NvY29hXSBHdWFyYW50ZWUgRm9udFBsYXRmb3JtRGF0YSdzIG1fY2dG
b250IGlzIG5ldmVyIG51bGxwdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NjkyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJhcy5tbToKKyAgICAgICAgKC1b
TlNTdHJpbmcgX3dlYl9kcmF3QXRQb2ludDpmb250OnRleHRDb2xvcjphbGxvd2luZ0ZvbnRTbW9v
dGhpbmc6XSk6CisgICAgICAgICogTWlzYy9XZWJTdHJpbmdUcnVuY2F0b3IubW06CisgICAgICAg
ICgrW1dlYlN0cmluZ1RydW5jYXRvciBjZW50ZXJUcnVuY2F0ZVN0cmluZzp0b1dpZHRoOl0pOgor
ICAgICAgICAoK1tXZWJTdHJpbmdUcnVuY2F0b3IgY2VudGVyVHJ1bmNhdGVTdHJpbmc6dG9XaWR0
aDp3aXRoRm9udDpdKToKKyAgICAgICAgKCtbV2ViU3RyaW5nVHJ1bmNhdG9yIHJpZ2h0VHJ1bmNh
dGVTdHJpbmc6dG9XaWR0aDp3aXRoRm9udDpdKToKKyAgICAgICAgKCtbV2ViU3RyaW5nVHJ1bmNh
dG9yIHdpZHRoT2ZTdHJpbmc6Zm9udDpdKToKKwogMjAxNi0wNC0yMSAgVGltIEhvcnRvbiAgPHRp
bW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhlIGlPUyBidWlsZDogV0FL
VmlldyBtYXkgbm90IHJlc3BvbmQgdG8gZHJhd0xheWVyOmluQ29udGV4dDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKaW5k
ZXggNzY1ZmVkMTViYzc0Y2YyODcxZGRkYjg4YTdhY2E2ZDczNTU3MjIwNi4uZWFiMWNjZmRkZjdm
M2I1MzkzNjU4MGFiNWI1YjNhMGE2ZjkxZDkyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKQEAgLTU4LDggKzU4LDcg
QEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dGb250LCBm
bG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0IKICAgICA6IEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwg
c3ludGhldGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSwgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFu
dCwgdGV4dFJlbmRlcmluZ01vZGUpCiB7CiAgICAgbV9jZ0ZvbnQgPSBjZ0ZvbnQ7Ci0gICAgaWYg
KCFtX2NnRm9udCkKLSAgICAgICAgc2V0RmFsbGJhY2tDR0ZvbnQoKTsKKyAgICBBU1NFUlQobV9j
Z0ZvbnQpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAppbmRleCA0ZTNkYzQ0YzE2YWVhOWEzOTY4OTcwYjRj
ZWM3YmE4ZWMxNmI4N2I1Li5jYzAzMzJmNjNhZmFkNDZjMWEzOGY4NjBjMGM4NzI0ZmM0YzRhNTc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZv
cm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRm
b3JtRGF0YS5oCkBAIC0yMTYsOSArMjE2LDYgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShXSU4p
CiAgICAgdm9pZCBwbGF0Zm9ybURhdGFJbml0KEhGT05ULCBmbG9hdCBzaXplLCBIREMsIFdDSEFS
KiBmYWNlTmFtZSk7CiAjZW5kaWYKLSNpZiBVU0UoQ0cpCi0gICAgdm9pZCBzZXRGYWxsYmFja0NH
Rm9udCgpOwotI2VuZGlmCiAKIHB1YmxpYzoKICAgICBib29sIG1fc3ludGhldGljQm9sZCB7IGZh
bHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KaW5kZXggMjg1MjA2MDhmZmUzOTIz
NmFiNWYzOGRkM2ZhNTM4OTJjYzI5NTA0My4uM2E4NzA0MmI4MzBlYzE2NzViZTViYjEzMTkxZjEw
ZjlkZjBlNGU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQpAQCAtNTgsNzcgKzU4
LDYgQEAgRm9udFBsYXRmb3JtRGF0YTo6fkZvbnRQbGF0Zm9ybURhdGEoKQogewogfQogCi0jaWYg
VVNFKEFQUEtJVCkKLQotc3RhdGljIE5TU3RyaW5nICp3ZWJGYWxsYmFja0ZvbnRGYW1pbHkodm9p
ZCkKLXsKLSAgICBzdGF0aWMgTlNTdHJpbmcgKndlYkZhbGxiYWNrRm9udEZhbWlseSA9IFtbW05T
Rm9udCBzeXN0ZW1Gb250T2ZTaXplOjE2LjBmXSBmYW1pbHlOYW1lXSByZXRhaW5dOwotICAgIHJl
dHVybiB3ZWJGYWxsYmFja0ZvbnRGYW1pbHk7Ci19Ci0KLXZvaWQgRm9udFBsYXRmb3JtRGF0YTo6
c2V0RmFsbGJhY2tDR0ZvbnQoKQotewotICAgIGlmIChjZ0ZvbnQoKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgLy8gQWNrISBTb21ldGhpbmcgdmVyeSBiYWQgaGFwcGVuZWQsIGxpa2UgYSBjb3Jy
dXB0IGZvbnQuCi0gICAgLy8gVHJ5IGxvb2tpbmcgZm9yIGFuIGFsdGVybmF0ZSAnYmFzZScgZm9u
dCBmb3IgdGhpcyByZW5kZXJlci4KLQotICAgIC8vIFNwZWNpYWwgY2FzZSBoYWNrIHRvIHVzZSAi
VGltZXMgTmV3IFJvbWFuIiBpbiBwbGFjZSBvZiAiVGltZXMiLgotICAgIC8vICJUaW1lcyBSTyIg
aXMgYSBjb21tb24gZm9udCB3aG9zZSBmYW1pbHkgbmFtZSBpcyAiVGltZXMiLgotICAgIC8vIEl0
IG92ZXJyaWRlcyB0aGUgbm9ybWFsICJUaW1lcyIgZmFtaWx5IGZvbnQuCi0gICAgLy8gSXQgYWxz
byBhcHBlYXJzIHRvIGhhdmUgYSBjb3JydXB0IHJlZ3VsYXIgdmFyaWFudC4KLSAgICBOU1N0cmlu
ZyAqZmFsbGJhY2tGb250RmFtaWx5OwotICAgIGlmIChbW25zRm9udCgpIGZhbWlseU5hbWVdIGlz
RXF1YWw6QCJUaW1lcyJdKQotICAgICAgICBmYWxsYmFja0ZvbnRGYW1pbHkgPSBAIlRpbWVzIE5l
dyBSb21hbiI7Ci0gICAgZWxzZQotICAgICAgICBmYWxsYmFja0ZvbnRGYW1pbHkgPSB3ZWJGYWxs
YmFja0ZvbnRGYW1pbHkoKTsKLQotICAgIC8vIFRyeSBzZXR0aW5nIHVwIHRoZSBhbHRlcm5hdGUg
Zm9udC4KLSAgICAvLyBUaGlzIGlzIGEgbGFzdCBkaXRjaCBlZmZvcnQgdG8gdXNlIGEgc3Vic3Rp
dHV0ZSBmb250IHdoZW4gc29tZXRoaW5nIGhhcyBnb25lIHdyb25nLgotI2lmICFFUlJPUl9ESVNB
QkxFRAotICAgIFJldGFpblB0cjxOU0ZvbnQ+IGluaXRpYWxGb250ID0gbnNGb250KCk7Ci0jZW5k
aWYKLSAgICBpZiAoZm9udCgpKQotICAgICAgICBzZXROU0ZvbnQoW1tOU0ZvbnRNYW5hZ2VyIHNo
YXJlZEZvbnRNYW5hZ2VyXSBjb252ZXJ0Rm9udDpuc0ZvbnQoKSB0b0ZhbWlseTpmYWxsYmFja0Zv
bnRGYW1pbHldKTsKLSAgICBlbHNlCi0gICAgICAgIHNldE5TRm9udChbTlNGb250IGZvbnRXaXRo
TmFtZTpmYWxsYmFja0ZvbnRGYW1pbHkgc2l6ZTpzaXplKCldKTsKLQotICAgIGlmIChjZ0ZvbnQo
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKFtmYWxsYmFja0ZvbnRGYW1pbHkgaXNFcXVh
bDpAIlRpbWVzIE5ldyBSb21hbiJdKSB7Ci0gICAgICAgIC8vIE9LLCBjb3VsZG4ndCBzZXR1cCBU
aW1lcyBOZXcgUm9tYW4gYXMgYW4gYWx0ZXJuYXRlIHRvIFRpbWVzLCBmYWxsYmFjawotICAgICAg
ICAvLyBvbiB0aGUgc3lzdGVtIGZvbnQuIElmIHRoaXMgZmFpbHMgd2UgaGF2ZSBubyBhbHRlcm5h
dGl2ZSBsZWZ0LgotICAgICAgICBzZXROU0ZvbnQoW1tOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZvbnRN
YW5hZ2VyXSBjb252ZXJ0Rm9udDpuc0ZvbnQoKSB0b0ZhbWlseTp3ZWJGYWxsYmFja0ZvbnRGYW1p
bHkoKV0pOwotICAgICAgICBpZiAoY2dGb250KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgLy8gV2UgdHJpZWQsIFRpbWVzLCBUaW1lcyBOZXcgUm9tYW4sIGFuZCB0aGUgc3lzdGVt
IGZvbnQuIE5vIGpveS4gV2UgaGF2ZSB0byBnaXZlIHVwLgotICAgICAgICBMT0dfRVJST1IoInVu
YWJsZSB0byBpbml0aWFsaXplIHdpdGggZm9udCAlQCIsIGluaXRpYWxGb250LmdldCgpKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICAvLyBXZSB0cmllZCB0aGUgcmVxdWVzdGVkIGZvbnQgYW5kIHRo
ZSBzeXN0ZW0gZm9udC4gTm8gam95LiBXZSBoYXZlIHRvIGdpdmUgdXAuCi0gICAgICAgIExPR19F
UlJPUigidW5hYmxlIHRvIGluaXRpYWxpemUgd2l0aCBmb250ICVAIiwgaW5pdGlhbEZvbnQuZ2V0
KCkpOwotICAgIH0KLQotICAgIC8vIFJlcG9ydCB0aGUgcHJvYmxlbS4KLSAgICBMT0dfRVJST1Io
IkNvcnJ1cHQgZm9udCBkZXRlY3RlZCwgdXNpbmcgJUAgaW4gcGxhY2Ugb2YgJUAuIiwgW25zRm9u
dCgpIGZhbWlseU5hbWVdLCBbaW5pdGlhbEZvbnQuZ2V0KCkgZmFtaWx5TmFtZV0pOwotCi0gICAg
Ly8gSWYgYWxsIGVsc2UgZmFpbHMsIHRyeSB0byBzZXQgdXAgdXNpbmcgdGhlIHN5c3RlbSBmb250
LgotICAgIC8vIFRoaXMgaXMgcHJvYmFibHkgYmVjYXVzZSBUaW1lcyBhbmQgVGltZXMgTmV3IFJv
bWFuIGFyZSBib3RoIHVuYXZhaWxhYmxlLgotICAgIEFTU0VSVCghY2dGb250KCkpOwotICAgIHNl
dE5TRm9udChbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W25zRm9udCgpIHBvaW50U2l6ZV1dKTsK
LSAgICBMT0dfRVJST1IoImZhaWxlZCB0byBzZXQgdXAgZm9udCwgdXNpbmcgc3lzdGVtIGZvbnQg
JXMiLCBmb250KCkpOwotfQotCi0jZWxzZQotCi12b2lkIEZvbnRQbGF0Zm9ybURhdGE6OnNldEZh
bGxiYWNrQ0dGb250KCkKLXsKLX0KLQotI2VuZGlmCi0KIHZvaWQgRm9udFBsYXRmb3JtRGF0YTo6
cGxhdGZvcm1EYXRhSW5pdChjb25zdCBGb250UGxhdGZvcm1EYXRhJiBmKQogewogICAgIG1fZm9u
dCA9IGYubV9mb250OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCmlu
ZGV4IGJhMTk0OTQwN2RkNDRmZTRlMDRkOTM0Mjg1YzQ0OTc2NmE2YWM5ZWYuLjhhOWJlZmQxMWI5
NWUxNzBkYWJmOTI0ZjBmMmE5NTJkZGRjNjkxMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250
cm9sbGVyQ29yZVRleHQubW0KQEAgLTI2Miw3ICsyNjIsNyBAQCB2b2lkIENvbXBsZXhUZXh0Q29u
dHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMoY29uc3QgVUNoYXIq
IGNwLAogICAgICAgICBpZiAoaXNTeXN0ZW1GYWxsYmFjaykgewogICAgICAgICAgICAgQ0ZEaWN0
aW9uYXJ5UmVmIHJ1bkF0dHJpYnV0ZXMgPSBDVFJ1bkdldEF0dHJpYnV0ZXMoY3RSdW4pOwogICAg
ICAgICAgICAgQ1RGb250UmVmIHJ1bkNURm9udCA9IHN0YXRpY19jYXN0PENURm9udFJlZj4oQ0ZE
aWN0aW9uYXJ5R2V0VmFsdWUocnVuQXR0cmlidXRlcywga0NURm9udEF0dHJpYnV0ZU5hbWUpKTsK
LSAgICAgICAgICAgIEFTU0VSVChDRkdldFR5cGVJRChydW5DVEZvbnQpID09IENURm9udEdldFR5
cGVJRCgpKTsKKyAgICAgICAgICAgIEFTU0VSVChydW5DVEZvbnQgJiYgQ0ZHZXRUeXBlSUQocnVu
Q1RGb250KSA9PSBDVEZvbnRHZXRUeXBlSUQoKSk7CiAgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZU
eXBlUmVmPiBydW5Gb250RXF1YWxpdHlPYmplY3QgPSBGb250UGxhdGZvcm1EYXRhOjpvYmplY3RG
b3JFcXVhbGl0eUNoZWNrKHJ1bkNURm9udCk7CiAgICAgICAgICAgICBpZiAoIXNhZmVDRkVxdWFs
KHJ1bkZvbnRFcXVhbGl0eU9iamVjdC5nZXQoKSwgZm9udC0+cGxhdGZvcm1EYXRhKCkub2JqZWN0
Rm9yRXF1YWxpdHlDaGVjaygpLmdldCgpKSkgewogICAgICAgICAgICAgICAgIC8vIEJlZ2luIHRy
eWluZyB0byBzZWUgaWYgcnVuRm9udCBtYXRjaGVzIGFueSBvZiB0aGUgZm9udHMgaW4gdGhlIGZh
bGxiYWNrIGxpc3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKaW5kZXggZGMzOWFmNDVi
MmZiYWNkOWY0NDcyYTZkMTE0ZTRmNzFiYmMzMDgyNC4uMTBlYmUwM2MwZWU1MjMwZjdkNjVkNGRk
NDY5ODU0MTkzYzY3YWI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcApAQCAtNDEs
NiArNDEsNyBAQCBGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQ
bGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJgogICAgIEZvbnRXaWR0aFZhcmlhbnQg
d2lkdGhWYXJpYW50ID0gZm9udERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpOwogICAgIFJldGFp
blB0cjxDVEZvbnRSZWY+IGZvbnQgPSBhZG9wdENGKENURm9udENyZWF0ZVdpdGhGb250RGVzY3Jp
cHRvcihtX2ZvbnREZXNjcmlwdG9yLmdldCgpLCBzaXplLCBudWxscHRyKSk7CiAgICAgZm9udCA9
IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5k
ZXJpbmdNb2RlKCksICZmb250RmFjZUZlYXR1cmVzLCAmZm9udEZhY2VWYXJpYW50U2V0dGluZ3Ms
IGZvbnREZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGluZ3MoKSwgZm9udERlc2NyaXB0aW9uLnZhcmlh
bnRTZXR0aW5ncygpKTsKKyAgICBBU1NFUlQoZm9udCk7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9y
bURhdGEoZm9udC5nZXQoKSwgc2l6ZSwgYm9sZCwgaXRhbGljLCBvcmllbnRhdGlvbiwgd2lkdGhW
YXJpYW50LCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCmluZGV4IDkxYzkyZTkxMmNj
MjE4OTJmNjU5ZTY3YTk1OTU3MWZiZGQwMDI3YjguLjYyNjQ1MDcwNGE0ODkyYjEzYmVlZGRjNmQy
ZTA0ZmZmY2FjOTYxZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9E
cmFnSW1hZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFn
ZU1hYy5tbQpAQCAtMTY2LDYgKzE2Niw3IEBAIGNvbnN0IGZsb2F0IERyYWdMaW5rVXJsRm9udFNp
emUgPSAxMDsKICAgICAKIHN0YXRpYyBGb250Q2FzY2FkZSYgZm9udEZyb21OU0ZvbnQoTlNGb250
ICpmb250KQogeworICAgIEFTU0VSVChmb250KTsKICAgICBzdGF0aWMgTlNGb250ICpjdXJyZW50
Rm9udDsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udENhc2NhZGU+IGN1cnJlbnRSZW5k
ZXJlcjsKICAgICAKQEAgLTE5Miw2ICsxOTMsOSBAQCBzdGF0aWMgYm9vbCBjYW5Vc2VGYXN0UmVu
ZGVyZXIoY29uc3QgVW5pQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgCiBzdGF0
aWMgZmxvYXQgd2lkdGhXaXRoRm9udChOU1N0cmluZyAqc3RyaW5nLCBOU0ZvbnQgKmZvbnQpCiB7
CisgICAgaWYgKCFmb250KQorICAgICAgICByZXR1cm4gMDsKKwogICAgIHVuc2lnbmVkIGxlbmd0
aCA9IFtzdHJpbmcgbGVuZ3RoXTsKICAgICBWZWN0b3I8VW5pQ2hhciwgMjA0OD4gYnVmZmVyKGxl
bmd0aCk7CiAgICAgCkBAIC0yMDgsNiArMjEyLDkgQEAgc3RhdGljIGZsb2F0IHdpZHRoV2l0aEZv
bnQoTlNTdHJpbmcgKnN0cmluZywgTlNGb250ICpmb250KQogICAgIAogc3RhdGljIHZvaWQgZHJh
d0F0UG9pbnQoTlNTdHJpbmcgKnN0cmluZywgTlNQb2ludCBwb2ludCwgTlNGb250ICpmb250LCBO
U0NvbG9yICp0ZXh0Q29sb3IpCiB7CisgICAgaWYgKCFmb250KQorICAgICAgICByZXR1cm47CisK
ICAgICB1bnNpZ25lZCBsZW5ndGggPSBbc3RyaW5nIGxlbmd0aF07CiAgICAgVmVjdG9yPFVuaUNo
YXIsIDIwNDg+IGJ1ZmZlcihsZW5ndGgpOwogICAgIApAQCAtMjI4LDcgKzIzNSw3IEBAIHN0YXRp
YyB2b2lkIGRyYXdBdFBvaW50KE5TU3RyaW5nICpzdHJpbmcsIE5TUG9pbnQgcG9pbnQsIE5TRm9u
dCAqZm9udCwgTlNDb2xvciAqCiAgICAgICAgIEJPT0wgZmxpcHBlZCA9IFtuc0NvbnRleHQgaXNG
bGlwcGVkXTsKICAgICAgICAgaWYgKCFmbGlwcGVkKQogICAgICAgICAgICAgQ0dDb250ZXh0U2Nh
bGVDVE0oY2dDb250ZXh0LCAxLCAtMSk7Ci0gICAgICAgICAgICAKKwogICAgICAgICBGb250Q2Fz
Y2FkZSB3ZWJDb3JlRm9udChGb250UGxhdGZvcm1EYXRhKHRvQ1RGb250KGZvbnQpLCBbZm9udCBw
b2ludFNpemVdKSwgQW50aWFsaWFzZWQpOwogICAgICAgICBUZXh0UnVuIHJ1bihTdHJpbmdWaWV3
KGJ1ZmZlci5kYXRhKCksIGxlbmd0aCkpOwogCkBAIC0zMjIsMTYgKzMyOSwxOCBAQCBEcmFnSW1h
Z2VSZWYgY3JlYXRlRHJhZ0ltYWdlRm9yTGluayhVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRs
ZSwgRm9udFJlbmRlcmluZwogCiAgICAgTlNDb2xvciAqdG9wQ29sb3IgPSBbTlNDb2xvciBjb2xv
cldpdGhEZXZpY2VXaGl0ZTowLjBmIGFscGhhOjAuNzVmXTsKICAgICBOU0NvbG9yICpib3R0b21D
b2xvciA9IFtOU0NvbG9yIGNvbG9yV2l0aERldmljZVdoaXRlOjEuMGYgYWxwaGE6MC41Zl07Ci0g
ICAgaWYgKGRyYXdVUkxTdHJpbmcpIHsKKyAgICBpZiAoZHJhd1VSTFN0cmluZyAmJiB1cmxGb250
KSB7CiAgICAgICAgIGlmIChjbGlwVVJMU3RyaW5nKQogICAgICAgICAgICAgdXJsU3RyaW5nID0g
U3RyaW5nVHJ1bmNhdG9yOjpjZW50ZXJUcnVuY2F0ZSh1cmxTdHJpbmcsIGltYWdlU2l6ZS53aWR0
aCAtIChEcmFnTGFiZWxCb3JkZXJYICogMiksIGZvbnRGcm9tTlNGb250KHVybEZvbnQpKTsKIAog
ICAgICAgIGRyYXdEb3VibGVkQXRQb2ludCh1cmxTdHJpbmcsIE5TTWFrZVBvaW50KERyYWdMYWJl
bEJvcmRlclgsIERyYWdMYWJlbEJvcmRlclkgLSBbdXJsRm9udCBkZXNjZW5kZXJdKSwgdG9wQ29s
b3IsIGJvdHRvbUNvbG9yLCB1cmxGb250KTsKICAgICB9CiAKLSAgICBpZiAoY2xpcExhYmVsU3Ry
aW5nKQotICAgICAgICBsYWJlbCA9IFN0cmluZ1RydW5jYXRvcjo6cmlnaHRUcnVuY2F0ZShsYWJl
bCwgaW1hZ2VTaXplLndpZHRoIC0gKERyYWdMYWJlbEJvcmRlclggKiAyKSwgZm9udEZyb21OU0Zv
bnQobGFiZWxGb250KSk7Ci0gICAgZHJhd0RvdWJsZWRBdFBvaW50KGxhYmVsLCBOU01ha2VQb2lu
dChEcmFnTGFiZWxCb3JkZXJYLCBpbWFnZVNpemUuaGVpZ2h0IC0gTGFiZWxCb3JkZXJZT2Zmc2V0
IC0gW2xhYmVsRm9udCBwb2ludFNpemVdKSwgdG9wQ29sb3IsIGJvdHRvbUNvbG9yLCBsYWJlbEZv
bnQpOworICAgIGlmIChsYWJlbEZvbnQpIHsKKyAgICAgICAgaWYgKGNsaXBMYWJlbFN0cmluZykK
KyAgICAgICAgICAgIGxhYmVsID0gU3RyaW5nVHJ1bmNhdG9yOjpyaWdodFRydW5jYXRlKGxhYmVs
LCBpbWFnZVNpemUud2lkdGggLSAoRHJhZ0xhYmVsQm9yZGVyWCAqIDIpLCBmb250RnJvbU5TRm9u
dChsYWJlbEZvbnQpKTsKKyAgICAgICAgZHJhd0RvdWJsZWRBdFBvaW50KGxhYmVsLCBOU01ha2VQ
b2ludChEcmFnTGFiZWxCb3JkZXJYLCBpbWFnZVNpemUuaGVpZ2h0IC0gTGFiZWxCb3JkZXJZT2Zm
c2V0IC0gW2xhYmVsRm9udCBwb2ludFNpemVdKSwgdG9wQ29sb3IsIGJvdHRvbUNvbG9yLCBsYWJl
bEZvbnQpOworICAgIH0KIAogICAgIFtkcmFnSW1hZ2UgdW5sb2NrRm9jdXNdOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYktpdE5TU3RyaW5nRXh0cmFzLm1tIGIvU291
cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJhcy5tbQppbmRleCA2MmQyZmIx
MzFkZjcwMjg1Mzg4Mzk1Y2MwMWI1ZjMxMzA3YWM5Yzg2Li5iOWE4NGU2NjQyMGJkNmNmNTFjMjg0
ZjIyOTc3MTJhMTcwZTg2MGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dl
YktpdE5TU3RyaW5nRXh0cmFzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViS2l0
TlNTdHJpbmdFeHRyYXMubW0KQEAgLTcxLDYgKzcxLDkgQEAgLSAodm9pZClfd2ViX2RyYXdBdFBv
aW50OihOU1BvaW50KXBvaW50IGZvbnQ6KE5TRm9udCAqKWZvbnQgdGV4dENvbG9yOihOU0NvbG9y
ICoKIAogLSAodm9pZClfd2ViX2RyYXdBdFBvaW50OihOU1BvaW50KXBvaW50IGZvbnQ6KE5TRm9u
dCAqKWZvbnQgdGV4dENvbG9yOihOU0NvbG9yICopdGV4dENvbG9yIGFsbG93aW5nRm9udFNtb290
aGluZzooQk9PTClmb250U21vb3RoaW5nSXNBbGxvd2VkCiB7CisgICAgaWYgKCFmb250KQorICAg
ICAgICByZXR1cm47CisKICAgICB1bnNpZ25lZCBsZW5ndGggPSBbc2VsZiBsZW5ndGhdOwogICAg
IFZlY3RvcjxVbmlDaGFyLCAyMDQ4PiBidWZmZXIobGVuZ3RoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJTdHJpbmdUcnVuY2F0b3IubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9NaXNjL1dlYlN0cmluZ1RydW5jYXRvci5tbQppbmRleCBjNmFiMTU0MDdhYzA3NGY4MWQw
YTllMTkyYjMxNzIwZTUxZDhiMjU5Li5lYTdhYjQzYTMyZjUzNjk2M2Y3ZjM2NWEyZGU5OTk2N2Qz
Mzg4YWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYlN0cmluZ1RydW5j
YXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYlN0cmluZ1RydW5jYXRvci5t
bQpAQCAtNTksMjEgKzU5LDM0IEBAICsgKHZvaWQpaW5pdGlhbGl6ZQogKyAoTlNTdHJpbmcgKilj
ZW50ZXJUcnVuY2F0ZVN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgdG9XaWR0aDooZmxvYXQpbWF4
V2lkdGgKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPE5TRm9udD4+IG1l
bnVGb250ID0gW05TRm9udCBtZW51Rm9udE9mU2l6ZTowXTsKKworICAgIGlmICghbWVudUZvbnQu
Z2V0KCkpCisgICAgICAgIHJldHVybiBuaWw7CisKICAgICByZXR1cm4gV2ViQ29yZTo6U3RyaW5n
VHJ1bmNhdG9yOjpjZW50ZXJUcnVuY2F0ZShzdHJpbmcsIG1heFdpZHRoLCBmb250RnJvbU5TRm9u
dChtZW51Rm9udC5nZXQoKS5nZXQoKSkpOwogfQogCiArIChOU1N0cmluZyAqKWNlbnRlclRydW5j
YXRlU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyB0b1dpZHRoOihmbG9hdCltYXhXaWR0aCB3aXRo
Rm9udDooTlNGb250ICopZm9udAogeworICAgIGlmICghZm9udCkKKyAgICAgICAgcmV0dXJuIG5p
bDsKKwogICAgIHJldHVybiBXZWJDb3JlOjpTdHJpbmdUcnVuY2F0b3I6OmNlbnRlclRydW5jYXRl
KHN0cmluZywgbWF4V2lkdGgsIGZvbnRGcm9tTlNGb250KGZvbnQpKTsKIH0KIAogKyAoTlNTdHJp
bmcgKilyaWdodFRydW5jYXRlU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyB0b1dpZHRoOihmbG9h
dCltYXhXaWR0aCB3aXRoRm9udDooTlNGb250ICopZm9udAogeworICAgIGlmICghZm9udCkKKyAg
ICAgICAgcmV0dXJuIG5pbDsKKwogICAgIHJldHVybiBXZWJDb3JlOjpTdHJpbmdUcnVuY2F0b3I6
OnJpZ2h0VHJ1bmNhdGUoc3RyaW5nLCBtYXhXaWR0aCwgZm9udEZyb21OU0ZvbnQoZm9udCkpOwog
fQogCiArIChmbG9hdCl3aWR0aE9mU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyBmb250OihOU0Zv
bnQgKilmb250CiB7CisgICAgaWYgKCFmb250KQorICAgICAgICByZXR1cm4gMDsKKwogICAgIHJl
dHVybiBXZWJDb3JlOjpTdHJpbmdUcnVuY2F0b3I6OndpZHRoKHN0cmluZywgZm9udEZyb21OU0Zv
bnQoZm9udCkpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277118</attachid>
            <date>2016-04-22 17:07:43 -0700</date>
            <delta_ts>2016-04-22 18:33:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156929-20160422170807.patch</filename>
            <type>text/plain</type>
            <size>18291</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5OTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNjZWE3MDIxYjEyMDIx
ODMzZGE5YWQyZTQ0NzY3YzMzMTQ3ZTBiMS4uNjA4YjczOWUwOWE2NmJjYWE2M2Q3MDAwMjVkNGRh
NTU2ZDdhNmU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA0LTIyICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBH
dWFyYW50ZWUgRm9udFBsYXRmb3JtRGF0YSdzIG1fY2dGb250IGlzIG5ldmVyIG51bGxwdHIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjkyOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFmdGVyIHNvbWUg
aW52ZXN0aWdhdGlvbiwgaXQgdHVybnMgb3V0IHRoYXQgdGhlcmUgaXMgbm8gcGxhY2Ugd2hlcmUg
aXQgaXMgbWVhbmluZ2Z1bAorICAgICAgICB0byBwYXNzIHVzIGEgbnVsbCBDb3JlVGV4dCBmb250
LiBUaGVyZWZvcmUsIHRoZSBDb3JlR3JhcGhpY3MgZm9udCBpcyBhbHNvIG5ldmVyIG51bGwuCisK
KyAgICAgICAgV2Ugc2hvdWxkIHNpbXBseSBjaGVjayBmb3IgdGhlc2UgbnVsbCB2YWx1ZXMgYXQg
dGhlIGluZ2VzdGlvbiBzaXRlIGluIG9yZGVyIHRvCisgICAgICAgIG1ha2UgdGhlIGd1YXJhbnRl
ZSBpbnRlcm5hbGx5IG9mIGhhdmluZyBub24tbnVsbCB2YWx1ZXMuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOiBCZWNhdXNlIHRoZSBwb2ludGVyIGlz
IG5ldmVyIG51bGwsIHdlCisgICAgICAgIGNhbiBkZWxldGUgdGhlIGNvZGUgd2hpY2ggaGFuZGxl
cyB0aGF0IGNhc2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0
YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFD
b2NvYS5tbTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjp3ZWJGYWxsYmFja0ZvbnRGYW1pbHkp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6c2V0RmFsbGJh
Y2tDR0ZvbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21w
bGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhU
ZXh0Q29udHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMpOiBBc2tp
bmcgdGhlCisgICAgICAgIENUUnVuIGZvciBpdHMga0NURm9udEF0dHJpYnV0ZU5hbWUgd2lsbCBh
bHdheXMgcmV0dXJuIG5vbi1udWxsLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOiBPbmNlIHdlIGhhdmUgYSBmb250IGRlc2Ny
aXB0b3IsCisgICAgICAgIENURm9udENyZWF0ZVdpdGhGb250RGVzY3JpcHRvcigpIHdpbGwgYWx3
YXlzIHJldHVybiBub24tbnVsbC4gV2UgY2hlY2sgaWYgdGhlIGZvbnQKKyAgICAgICAgZGVzY3Jp
cHRvciBpcyBudWxsIGVsc2V3aGVyZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdl
TWFjLm1tOiBUaGUgZm9udHMgaW4gdGhpcyBmaWxlIGFyZSBnb3R0ZW4gYnkgYXNraW5nIGZvciB0
aGUKKyAgICAgICAgc3lzdGVtIGZvbnQsIHdoaWNoIHdpbGwgYWx3YXlzIHJldHVybiBub24tbnVs
bC4KKyAgICAgICAgKFdlYkNvcmU6OmZvbnRGcm9tTlNGb250KToKKyAgICAgICAgKFdlYkNvcmU6
OndpZHRoV2l0aEZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0F0UG9pbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRm9yTGluayk6CisKIDIwMTYtMDQtMjIgIEJyZW50
IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQW5jaG9yIGVsZW1lbnQg
J3BpbmcnIHByb3BlcnR5IHNob3VsZCBvbmx5IGFwcGx5IHRvIGh0dHAvaHR0cHMgZGVzdGluYXRp
b25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMzMyMTVjYWZkYzE3NzMxZWUxNzQzMGZlM2M5ZmFhZWZl
NThiYTNjNC4uYTcxYjk1ZTE1Mzc1MWZmNGYwOGQ3MTVlNjQ5NWEzMDEyMDU1NGJlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE2LTA0LTIyICBNeWxlcyBDLiBNYXhmaWVs
ZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBHdWFyYW50ZWUgRm9u
dFBsYXRmb3JtRGF0YSdzIG1fY2dGb250IGlzIG5ldmVyIG51bGxwdHIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjkyOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTWlzYy9XZWJLaXROU1N0cmluZ0V4
dHJhcy5tbToKKyAgICAgICAgKC1bTlNTdHJpbmcgX3dlYl9kcmF3QXRQb2ludDpmb250OnRleHRD
b2xvcjphbGxvd2luZ0ZvbnRTbW9vdGhpbmc6XSk6IERyYXdpbmcKKyAgICAgICAgYSBzdHJpbmcg
d2l0aCBhIG51bGwgZm9udCBzaG91bGRuJ3QgZG8gYW55dGhpbmcuCisgICAgICAgICogTWlzYy9X
ZWJTdHJpbmdUcnVuY2F0b3IubW06IFdlIGNhbid0IHRydW5jYXRlIGEgc3RyaW5nIGlmIHdlIGRv
bid0IGhhdmUgYSBmb250CisgICAgICAgIHRvIHVzZS4KKyAgICAgICAgKCtbV2ViU3RyaW5nVHJ1
bmNhdG9yIGNlbnRlclRydW5jYXRlU3RyaW5nOnRvV2lkdGg6XSk6CisgICAgICAgICgrW1dlYlN0
cmluZ1RydW5jYXRvciBjZW50ZXJUcnVuY2F0ZVN0cmluZzp0b1dpZHRoOndpdGhGb250Ol0pOgor
ICAgICAgICAoK1tXZWJTdHJpbmdUcnVuY2F0b3IgcmlnaHRUcnVuY2F0ZVN0cmluZzp0b1dpZHRo
OndpdGhGb250Ol0pOgorICAgICAgICAoK1tXZWJTdHJpbmdUcnVuY2F0b3Igd2lkdGhPZlN0cmlu
Zzpmb250Ol0pOgorCiAyMDE2LTA0LTIxICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUgaU9TIGJ1aWxkOiBXQUtWaWV3IG1heSBub3QgcmVz
cG9uZCB0byBkcmF3TGF5ZXI6aW5Db250ZXh0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcAppbmRleCA3NjVmZWQxNWJjNzRj
ZjI4NzFkZGRiODhhN2FjYTZkNzM1NTcyMjA2Li5lYWIxY2NmZGRmN2YzYjUzOTM2NTgwYWI1YjVi
M2EwYTZmOTFkOTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250UGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcApAQCAtNTgsOCArNTgsNyBAQCBGb250UGxhdGZvcm1E
YXRhOjpGb250UGxhdGZvcm1EYXRhKENHRm9udFJlZiBjZ0ZvbnQsIGZsb2F0IHNpemUsIGJvb2wg
c3ludGhldGljQgogICAgIDogRm9udFBsYXRmb3JtRGF0YShzaXplLCBzeW50aGV0aWNCb2xkLCBz
eW50aGV0aWNPYmxpcXVlLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJpYW50LCB0ZXh0UmVuZGVyaW5n
TW9kZSkKIHsKICAgICBtX2NnRm9udCA9IGNnRm9udDsKLSAgICBpZiAoIW1fY2dGb250KQotICAg
ICAgICBzZXRGYWxsYmFja0NHRm9udCgpOworICAgIEFTU0VSVChtX2NnRm9udCk7CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBs
YXRmb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRm
b3JtRGF0YS5oCmluZGV4IDRlM2RjNDRjMTZhZWE5YTM5Njg5NzBiNGNlYzdiYThlYzE2Yjg3YjUu
LmNjMDMzMmY2M2FmYWQ0NmMxYTM4Zjg2MGMwYzg3MjRmYzRjNGE1NzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKQEAgLTIx
Niw5ICsyMTYsNiBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2b2lkIHBsYXRm
b3JtRGF0YUluaXQoSEZPTlQsIGZsb2F0IHNpemUsIEhEQywgV0NIQVIqIGZhY2VOYW1lKTsKICNl
bmRpZgotI2lmIFVTRShDRykKLSAgICB2b2lkIHNldEZhbGxiYWNrQ0dGb250KCk7Ci0jZW5kaWYK
IAogcHVibGljOgogICAgIGJvb2wgbV9zeW50aGV0aWNCb2xkIHsgZmFsc2UgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURh
dGFDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQ
bGF0Zm9ybURhdGFDb2NvYS5tbQppbmRleCAyODUyMDYwOGZmZTM5MjM2YWI1ZjM4ZGQzZmE1Mzg5
MmNjMjk1MDQzLi4zYTg3MDQyYjgzMGVjMTY3NWJlNWJiMTMxOTFmMTBmOWRmMGU0ZTUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZv
cm1EYXRhQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCkBAIC01OCw3NyArNTgsNiBAQCBGb250UGxhdGZv
cm1EYXRhOjp+Rm9udFBsYXRmb3JtRGF0YSgpCiB7CiB9CiAKLSNpZiBVU0UoQVBQS0lUKQotCi1z
dGF0aWMgTlNTdHJpbmcgKndlYkZhbGxiYWNrRm9udEZhbWlseSh2b2lkKQotewotICAgIHN0YXRp
YyBOU1N0cmluZyAqd2ViRmFsbGJhY2tGb250RmFtaWx5ID0gW1tbTlNGb250IHN5c3RlbUZvbnRP
ZlNpemU6MTYuMGZdIGZhbWlseU5hbWVdIHJldGFpbl07Ci0gICAgcmV0dXJuIHdlYkZhbGxiYWNr
Rm9udEZhbWlseTsKLX0KLQotdm9pZCBGb250UGxhdGZvcm1EYXRhOjpzZXRGYWxsYmFja0NHRm9u
dCgpCi17Ci0gICAgaWYgKGNnRm9udCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBBY2sh
IFNvbWV0aGluZyB2ZXJ5IGJhZCBoYXBwZW5lZCwgbGlrZSBhIGNvcnJ1cHQgZm9udC4KLSAgICAv
LyBUcnkgbG9va2luZyBmb3IgYW4gYWx0ZXJuYXRlICdiYXNlJyBmb250IGZvciB0aGlzIHJlbmRl
cmVyLgotCi0gICAgLy8gU3BlY2lhbCBjYXNlIGhhY2sgdG8gdXNlICJUaW1lcyBOZXcgUm9tYW4i
IGluIHBsYWNlIG9mICJUaW1lcyIuCi0gICAgLy8gIlRpbWVzIFJPIiBpcyBhIGNvbW1vbiBmb250
IHdob3NlIGZhbWlseSBuYW1lIGlzICJUaW1lcyIuCi0gICAgLy8gSXQgb3ZlcnJpZGVzIHRoZSBu
b3JtYWwgIlRpbWVzIiBmYW1pbHkgZm9udC4KLSAgICAvLyBJdCBhbHNvIGFwcGVhcnMgdG8gaGF2
ZSBhIGNvcnJ1cHQgcmVndWxhciB2YXJpYW50LgotICAgIE5TU3RyaW5nICpmYWxsYmFja0ZvbnRG
YW1pbHk7Ci0gICAgaWYgKFtbbnNGb250KCkgZmFtaWx5TmFtZV0gaXNFcXVhbDpAIlRpbWVzIl0p
Ci0gICAgICAgIGZhbGxiYWNrRm9udEZhbWlseSA9IEAiVGltZXMgTmV3IFJvbWFuIjsKLSAgICBl
bHNlCi0gICAgICAgIGZhbGxiYWNrRm9udEZhbWlseSA9IHdlYkZhbGxiYWNrRm9udEZhbWlseSgp
OwotCi0gICAgLy8gVHJ5IHNldHRpbmcgdXAgdGhlIGFsdGVybmF0ZSBmb250LgotICAgIC8vIFRo
aXMgaXMgYSBsYXN0IGRpdGNoIGVmZm9ydCB0byB1c2UgYSBzdWJzdGl0dXRlIGZvbnQgd2hlbiBz
b21ldGhpbmcgaGFzIGdvbmUgd3JvbmcuCi0jaWYgIUVSUk9SX0RJU0FCTEVECi0gICAgUmV0YWlu
UHRyPE5TRm9udD4gaW5pdGlhbEZvbnQgPSBuc0ZvbnQoKTsKLSNlbmRpZgotICAgIGlmIChmb250
KCkpCi0gICAgICAgIHNldE5TRm9udChbW05TRm9udE1hbmFnZXIgc2hhcmVkRm9udE1hbmFnZXJd
IGNvbnZlcnRGb250Om5zRm9udCgpIHRvRmFtaWx5OmZhbGxiYWNrRm9udEZhbWlseV0pOwotICAg
IGVsc2UKLSAgICAgICAgc2V0TlNGb250KFtOU0ZvbnQgZm9udFdpdGhOYW1lOmZhbGxiYWNrRm9u
dEZhbWlseSBzaXplOnNpemUoKV0pOwotCi0gICAgaWYgKGNnRm9udCgpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBpZiAoW2ZhbGxiYWNrRm9udEZhbWlseSBpc0VxdWFsOkAiVGltZXMgTmV3IFJv
bWFuIl0pIHsKLSAgICAgICAgLy8gT0ssIGNvdWxkbid0IHNldHVwIFRpbWVzIE5ldyBSb21hbiBh
cyBhbiBhbHRlcm5hdGUgdG8gVGltZXMsIGZhbGxiYWNrCi0gICAgICAgIC8vIG9uIHRoZSBzeXN0
ZW0gZm9udC4gSWYgdGhpcyBmYWlscyB3ZSBoYXZlIG5vIGFsdGVybmF0aXZlIGxlZnQuCi0gICAg
ICAgIHNldE5TRm9udChbW05TRm9udE1hbmFnZXIgc2hhcmVkRm9udE1hbmFnZXJdIGNvbnZlcnRG
b250Om5zRm9udCgpIHRvRmFtaWx5OndlYkZhbGxiYWNrRm9udEZhbWlseSgpXSk7Ci0gICAgICAg
IGlmIChjZ0ZvbnQoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAvLyBXZSB0cmll
ZCwgVGltZXMsIFRpbWVzIE5ldyBSb21hbiwgYW5kIHRoZSBzeXN0ZW0gZm9udC4gTm8gam95LiBX
ZSBoYXZlIHRvIGdpdmUgdXAuCi0gICAgICAgIExPR19FUlJPUigidW5hYmxlIHRvIGluaXRpYWxp
emUgd2l0aCBmb250ICVAIiwgaW5pdGlhbEZvbnQuZ2V0KCkpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIC8vIFdlIHRyaWVkIHRoZSByZXF1ZXN0ZWQgZm9udCBhbmQgdGhlIHN5c3RlbSBmb250LiBO
byBqb3kuIFdlIGhhdmUgdG8gZ2l2ZSB1cC4KLSAgICAgICAgTE9HX0VSUk9SKCJ1bmFibGUgdG8g
aW5pdGlhbGl6ZSB3aXRoIGZvbnQgJUAiLCBpbml0aWFsRm9udC5nZXQoKSk7Ci0gICAgfQotCi0g
ICAgLy8gUmVwb3J0IHRoZSBwcm9ibGVtLgotICAgIExPR19FUlJPUigiQ29ycnVwdCBmb250IGRl
dGVjdGVkLCB1c2luZyAlQCBpbiBwbGFjZSBvZiAlQC4iLCBbbnNGb250KCkgZmFtaWx5TmFtZV0s
IFtpbml0aWFsRm9udC5nZXQoKSBmYW1pbHlOYW1lXSk7Ci0KLSAgICAvLyBJZiBhbGwgZWxzZSBm
YWlscywgdHJ5IHRvIHNldCB1cCB1c2luZyB0aGUgc3lzdGVtIGZvbnQuCi0gICAgLy8gVGhpcyBp
cyBwcm9iYWJseSBiZWNhdXNlIFRpbWVzIGFuZCBUaW1lcyBOZXcgUm9tYW4gYXJlIGJvdGggdW5h
dmFpbGFibGUuCi0gICAgQVNTRVJUKCFjZ0ZvbnQoKSk7Ci0gICAgc2V0TlNGb250KFtOU0ZvbnQg
c3lzdGVtRm9udE9mU2l6ZTpbbnNGb250KCkgcG9pbnRTaXplXV0pOwotICAgIExPR19FUlJPUigi
ZmFpbGVkIHRvIHNldCB1cCBmb250LCB1c2luZyBzeXN0ZW0gZm9udCAlcyIsIGZvbnQoKSk7Ci19
Ci0KLSNlbHNlCi0KLXZvaWQgRm9udFBsYXRmb3JtRGF0YTo6c2V0RmFsbGJhY2tDR0ZvbnQoKQot
ewotfQotCi0jZW5kaWYKLQogdm9pZCBGb250UGxhdGZvcm1EYXRhOjpwbGF0Zm9ybURhdGFJbml0
KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIGYpCiB7CiAgICAgbV9mb250ID0gZi5tX2ZvbnQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRl
eHRDb250cm9sbGVyQ29yZVRleHQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0KaW5kZXggYmExOTQ5NDA3ZGQ0
NGZlNGUwNGQ5MzQyODVjNDQ5NzY2YTZhYzllZi4uOGE5YmVmZDExYjk1ZTE3MGRhYmY5MjRmMGYy
YTk1MmRkZGM2OTExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5t
bQpAQCAtMjYyLDcgKzI2Miw3IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjpjb2xsZWN0
Q29tcGxleFRleHRSdW5zRm9yQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY3AsCiAgICAgICAgIGlm
IChpc1N5c3RlbUZhbGxiYWNrKSB7CiAgICAgICAgICAgICBDRkRpY3Rpb25hcnlSZWYgcnVuQXR0
cmlidXRlcyA9IENUUnVuR2V0QXR0cmlidXRlcyhjdFJ1bik7CiAgICAgICAgICAgICBDVEZvbnRS
ZWYgcnVuQ1RGb250ID0gc3RhdGljX2Nhc3Q8Q1RGb250UmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1
ZShydW5BdHRyaWJ1dGVzLCBrQ1RGb250QXR0cmlidXRlTmFtZSkpOwotICAgICAgICAgICAgQVNT
RVJUKENGR2V0VHlwZUlEKHJ1bkNURm9udCkgPT0gQ1RGb250R2V0VHlwZUlEKCkpOworICAgICAg
ICAgICAgQVNTRVJUKHJ1bkNURm9udCAmJiBDRkdldFR5cGVJRChydW5DVEZvbnQpID09IENURm9u
dEdldFR5cGVJRCgpKTsKICAgICAgICAgICAgIFJldGFpblB0cjxDRlR5cGVSZWY+IHJ1bkZvbnRF
cXVhbGl0eU9iamVjdCA9IEZvbnRQbGF0Zm9ybURhdGE6Om9iamVjdEZvckVxdWFsaXR5Q2hlY2so
cnVuQ1RGb250KTsKICAgICAgICAgICAgIGlmICghc2FmZUNGRXF1YWwocnVuRm9udEVxdWFsaXR5
T2JqZWN0LmdldCgpLCBmb250LT5wbGF0Zm9ybURhdGEoKS5vYmplY3RGb3JFcXVhbGl0eUNoZWNr
KCkuZ2V0KCkpKSB7CiAgICAgICAgICAgICAgICAgLy8gQmVnaW4gdHJ5aW5nIHRvIHNlZSBpZiBy
dW5Gb250IG1hdGNoZXMgYW55IG9mIHRoZSBmb250cyBpbiB0aGUgZmFsbGJhY2sgbGlzdC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAppbmRleCBkYzM5YWY0NWIyZmJhY2Q5ZjQ0NzJhNmQx
MTRlNGY3MWJiYzMwODI0Li4xMGViZTAzYzBlZTUyMzBmN2Q2NWQ0ZGQ0Njk4NTQxOTNjNjdhYjU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCkBAIC00MSw2ICs0MSw3IEBAIEZvbnRQ
bGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShjb25z
dCBGb250RGVzY3JpcHRpb24mCiAgICAgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQgPSBm
b250RGVzY3JpcHRpb24ud2lkdGhWYXJpYW50KCk7CiAgICAgUmV0YWluUHRyPENURm9udFJlZj4g
Zm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlV2l0aEZvbnREZXNjcmlwdG9yKG1fZm9udERlc2Ny
aXB0b3IuZ2V0KCksIHNpemUsIG51bGxwdHIpKTsKICAgICBmb250ID0gcHJlcGFyZVBsYXRmb3Jt
Rm9udChmb250LmdldCgpLCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSwgJmZv
bnRGYWNlRmVhdHVyZXMsICZmb250RmFjZVZhcmlhbnRTZXR0aW5ncywgZm9udERlc2NyaXB0aW9u
LmZlYXR1cmVTZXR0aW5ncygpLCBmb250RGVzY3JpcHRpb24udmFyaWFudFNldHRpbmdzKCkpOwor
ICAgIEFTU0VSVChmb250KTsKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShmb250LmdldCgp
LCBzaXplLCBib2xkLCBpdGFsaWMsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQsIGZvbnREZXNj
cmlwdGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KaW5kZXggOTFjOTJlOTEyY2MyMTg5MmY2NTllNjdhOTU5
NTcxZmJkZDAwMjdiOC4uNzY5N2M3YjQzNWM3YTZhYzJiYjcxZTJlYjQzNTg0ZmJkYTg5Y2JjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCkBAIC0xNjYs
NiArMTY2LDcgQEAgY29uc3QgZmxvYXQgRHJhZ0xpbmtVcmxGb250U2l6ZSA9IDEwOwogICAgIAog
c3RhdGljIEZvbnRDYXNjYWRlJiBmb250RnJvbU5TRm9udChOU0ZvbnQgKmZvbnQpCiB7CisgICAg
QVNTRVJUKGZvbnQpOwogICAgIHN0YXRpYyBOU0ZvbnQgKmN1cnJlbnRGb250OwogICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxGb250Q2FzY2FkZT4gY3VycmVudFJlbmRlcmVyOwogICAgIApAQCAt
MTkyLDYgKzE5Myw5IEBAIHN0YXRpYyBib29sIGNhblVzZUZhc3RSZW5kZXJlcihjb25zdCBVbmlD
aGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkKICAgICAKIHN0YXRpYyBmbG9hdCB3aWR0aFdp
dGhGb250KE5TU3RyaW5nICpzdHJpbmcsIE5TRm9udCAqZm9udCkKIHsKKyAgICBpZiAoIWZvbnQp
CisgICAgICAgIHJldHVybiAwOworCiAgICAgdW5zaWduZWQgbGVuZ3RoID0gW3N0cmluZyBsZW5n
dGhdOwogICAgIFZlY3RvcjxVbmlDaGFyLCAyMDQ4PiBidWZmZXIobGVuZ3RoKTsKICAgICAKQEAg
LTIwOCw2ICsyMTIsOSBAQCBzdGF0aWMgZmxvYXQgd2lkdGhXaXRoRm9udChOU1N0cmluZyAqc3Ry
aW5nLCBOU0ZvbnQgKmZvbnQpCiAgICAgCiBzdGF0aWMgdm9pZCBkcmF3QXRQb2ludChOU1N0cmlu
ZyAqc3RyaW5nLCBOU1BvaW50IHBvaW50LCBOU0ZvbnQgKmZvbnQsIE5TQ29sb3IgKnRleHRDb2xv
cikKIHsKKyAgICBpZiAoIWZvbnQpCisgICAgICAgIHJldHVybjsKKwogICAgIHVuc2lnbmVkIGxl
bmd0aCA9IFtzdHJpbmcgbGVuZ3RoXTsKICAgICBWZWN0b3I8VW5pQ2hhciwgMjA0OD4gYnVmZmVy
KGxlbmd0aCk7CiAgICAgCkBAIC0yMjgsNyArMjM1LDcgQEAgc3RhdGljIHZvaWQgZHJhd0F0UG9p
bnQoTlNTdHJpbmcgKnN0cmluZywgTlNQb2ludCBwb2ludCwgTlNGb250ICpmb250LCBOU0NvbG9y
ICoKICAgICAgICAgQk9PTCBmbGlwcGVkID0gW25zQ29udGV4dCBpc0ZsaXBwZWRdOwogICAgICAg
ICBpZiAoIWZsaXBwZWQpCiAgICAgICAgICAgICBDR0NvbnRleHRTY2FsZUNUTShjZ0NvbnRleHQs
IDEsIC0xKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgIEZvbnRDYXNjYWRlIHdlYkNvcmVGb250
KEZvbnRQbGF0Zm9ybURhdGEodG9DVEZvbnQoZm9udCksIFtmb250IHBvaW50U2l6ZV0pLCBBbnRp
YWxpYXNlZCk7CiAgICAgICAgIFRleHRSdW4gcnVuKFN0cmluZ1ZpZXcoYnVmZmVyLmRhdGEoKSwg
bGVuZ3RoKSk7CiAKQEAgLTI4MSw2ICsyODgsMTAgQEAgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJ
bWFnZUZvckxpbmsoVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUsIEZvbnRSZW5kZXJpbmcK
ICAgICBOU0ZvbnQgKmxhYmVsRm9udCA9IFtbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdl
cl0gY29udmVydEZvbnQ6W05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOkRyYWdMaW5rTGFiZWxGb250
c2l6ZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdG9IYXZlVHJhaXQ6TlNCb2xkRm9udE1hc2tdOwogICAgIE5TRm9udCAqdXJsRm9u
dCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpEcmFnTGlua1VybEZvbnRTaXplXTsKKworICAg
IEFTU0VSVChsYWJlbEZvbnQpOworICAgIEFTU0VSVCh1cmxGb250KTsKKwogICAgIE5TU2l6ZSBs
YWJlbFNpemU7CiAgICAgbGFiZWxTaXplLndpZHRoID0gd2lkdGhXaXRoRm9udChsYWJlbCwgbGFi
ZWxGb250KTsKICAgICBsYWJlbFNpemUuaGVpZ2h0ID0gW2xhYmVsRm9udCBhc2NlbmRlcl0gLSBb
bGFiZWxGb250IGRlc2NlbmRlcl07CkBAIC0zMjIsMTYgKzMzMywxOCBAQCBEcmFnSW1hZ2VSZWYg
Y3JlYXRlRHJhZ0ltYWdlRm9yTGluayhVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgRm9u
dFJlbmRlcmluZwogCiAgICAgTlNDb2xvciAqdG9wQ29sb3IgPSBbTlNDb2xvciBjb2xvcldpdGhE
ZXZpY2VXaGl0ZTowLjBmIGFscGhhOjAuNzVmXTsKICAgICBOU0NvbG9yICpib3R0b21Db2xvciA9
IFtOU0NvbG9yIGNvbG9yV2l0aERldmljZVdoaXRlOjEuMGYgYWxwaGE6MC41Zl07Ci0gICAgaWYg
KGRyYXdVUkxTdHJpbmcpIHsKKyAgICBpZiAoZHJhd1VSTFN0cmluZyAmJiB1cmxGb250KSB7CiAg
ICAgICAgIGlmIChjbGlwVVJMU3RyaW5nKQogICAgICAgICAgICAgdXJsU3RyaW5nID0gU3RyaW5n
VHJ1bmNhdG9yOjpjZW50ZXJUcnVuY2F0ZSh1cmxTdHJpbmcsIGltYWdlU2l6ZS53aWR0aCAtIChE
cmFnTGFiZWxCb3JkZXJYICogMiksIGZvbnRGcm9tTlNGb250KHVybEZvbnQpKTsKIAogICAgICAg
IGRyYXdEb3VibGVkQXRQb2ludCh1cmxTdHJpbmcsIE5TTWFrZVBvaW50KERyYWdMYWJlbEJvcmRl
clgsIERyYWdMYWJlbEJvcmRlclkgLSBbdXJsRm9udCBkZXNjZW5kZXJdKSwgdG9wQ29sb3IsIGJv
dHRvbUNvbG9yLCB1cmxGb250KTsKICAgICB9CiAKLSAgICBpZiAoY2xpcExhYmVsU3RyaW5nKQot
ICAgICAgICBsYWJlbCA9IFN0cmluZ1RydW5jYXRvcjo6cmlnaHRUcnVuY2F0ZShsYWJlbCwgaW1h
Z2VTaXplLndpZHRoIC0gKERyYWdMYWJlbEJvcmRlclggKiAyKSwgZm9udEZyb21OU0ZvbnQobGFi
ZWxGb250KSk7Ci0gICAgZHJhd0RvdWJsZWRBdFBvaW50KGxhYmVsLCBOU01ha2VQb2ludChEcmFn
TGFiZWxCb3JkZXJYLCBpbWFnZVNpemUuaGVpZ2h0IC0gTGFiZWxCb3JkZXJZT2Zmc2V0IC0gW2xh
YmVsRm9udCBwb2ludFNpemVdKSwgdG9wQ29sb3IsIGJvdHRvbUNvbG9yLCBsYWJlbEZvbnQpOwor
ICAgIGlmIChsYWJlbEZvbnQpIHsKKyAgICAgICAgaWYgKGNsaXBMYWJlbFN0cmluZykKKyAgICAg
ICAgICAgIGxhYmVsID0gU3RyaW5nVHJ1bmNhdG9yOjpyaWdodFRydW5jYXRlKGxhYmVsLCBpbWFn
ZVNpemUud2lkdGggLSAoRHJhZ0xhYmVsQm9yZGVyWCAqIDIpLCBmb250RnJvbU5TRm9udChsYWJl
bEZvbnQpKTsKKyAgICAgICAgZHJhd0RvdWJsZWRBdFBvaW50KGxhYmVsLCBOU01ha2VQb2ludChE
cmFnTGFiZWxCb3JkZXJYLCBpbWFnZVNpemUuaGVpZ2h0IC0gTGFiZWxCb3JkZXJZT2Zmc2V0IC0g
W2xhYmVsRm9udCBwb2ludFNpemVdKSwgdG9wQ29sb3IsIGJvdHRvbUNvbG9yLCBsYWJlbEZvbnQp
OworICAgIH0KIAogICAgIFtkcmFnSW1hZ2UgdW5sb2NrRm9jdXNdOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYktpdE5TU3RyaW5nRXh0cmFzLm1tIGIvU291cmNlL1dl
YktpdC9tYWMvTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJhcy5tbQppbmRleCA2MmQyZmIxMzFkZjcw
Mjg1Mzg4Mzk1Y2MwMWI1ZjMxMzA3YWM5Yzg2Li5iOWE4NGU2NjQyMGJkNmNmNTFjMjg0ZjIyOTc3
MTJhMTcwZTg2MGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYktpdE5T
U3RyaW5nRXh0cmFzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViS2l0TlNTdHJp
bmdFeHRyYXMubW0KQEAgLTcxLDYgKzcxLDkgQEAgLSAodm9pZClfd2ViX2RyYXdBdFBvaW50OihO
U1BvaW50KXBvaW50IGZvbnQ6KE5TRm9udCAqKWZvbnQgdGV4dENvbG9yOihOU0NvbG9yICoKIAog
LSAodm9pZClfd2ViX2RyYXdBdFBvaW50OihOU1BvaW50KXBvaW50IGZvbnQ6KE5TRm9udCAqKWZv
bnQgdGV4dENvbG9yOihOU0NvbG9yICopdGV4dENvbG9yIGFsbG93aW5nRm9udFNtb290aGluZzoo
Qk9PTClmb250U21vb3RoaW5nSXNBbGxvd2VkCiB7CisgICAgaWYgKCFmb250KQorICAgICAgICBy
ZXR1cm47CisKICAgICB1bnNpZ25lZCBsZW5ndGggPSBbc2VsZiBsZW5ndGhdOwogICAgIFZlY3Rv
cjxVbmlDaGFyLCAyMDQ4PiBidWZmZXIobGVuZ3RoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvTWlzYy9XZWJTdHJpbmdUcnVuY2F0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9N
aXNjL1dlYlN0cmluZ1RydW5jYXRvci5tbQppbmRleCBjNmFiMTU0MDdhYzA3NGY4MWQwYTllMTky
YjMxNzIwZTUxZDhiMjU5Li41OTYzYzUzOTgwOWUzNWRiY2U1MTlhMDk4MjlkYzczOWMyYTFiNmY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYlN0cmluZ1RydW5jYXRvci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYlN0cmluZ1RydW5jYXRvci5tbQpAQCAt
NTksMjEgKzU5LDM1IEBAICsgKHZvaWQpaW5pdGlhbGl6ZQogKyAoTlNTdHJpbmcgKiljZW50ZXJU
cnVuY2F0ZVN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgdG9XaWR0aDooZmxvYXQpbWF4V2lkdGgK
IHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPE5TRm9udD4+IG1lbnVGb250
ID0gW05TRm9udCBtZW51Rm9udE9mU2l6ZTowXTsKKworICAgIEFTU0VSVChtZW51Rm9udC5nZXQo
KSk7CisgICAgaWYgKCFtZW51Rm9udC5nZXQoKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKwogICAg
IHJldHVybiBXZWJDb3JlOjpTdHJpbmdUcnVuY2F0b3I6OmNlbnRlclRydW5jYXRlKHN0cmluZywg
bWF4V2lkdGgsIGZvbnRGcm9tTlNGb250KG1lbnVGb250LmdldCgpLmdldCgpKSk7CiB9CiAKICsg
KE5TU3RyaW5nICopY2VudGVyVHJ1bmNhdGVTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHRvV2lk
dGg6KGZsb2F0KW1heFdpZHRoIHdpdGhGb250OihOU0ZvbnQgKilmb250CiB7CisgICAgaWYgKCFm
b250KQorICAgICAgICByZXR1cm4gbmlsOworCiAgICAgcmV0dXJuIFdlYkNvcmU6OlN0cmluZ1Ry
dW5jYXRvcjo6Y2VudGVyVHJ1bmNhdGUoc3RyaW5nLCBtYXhXaWR0aCwgZm9udEZyb21OU0ZvbnQo
Zm9udCkpOwogfQogCiArIChOU1N0cmluZyAqKXJpZ2h0VHJ1bmNhdGVTdHJpbmc6KE5TU3RyaW5n
ICopc3RyaW5nIHRvV2lkdGg6KGZsb2F0KW1heFdpZHRoIHdpdGhGb250OihOU0ZvbnQgKilmb250
CiB7CisgICAgaWYgKCFmb250KQorICAgICAgICByZXR1cm4gbmlsOworCiAgICAgcmV0dXJuIFdl
YkNvcmU6OlN0cmluZ1RydW5jYXRvcjo6cmlnaHRUcnVuY2F0ZShzdHJpbmcsIG1heFdpZHRoLCBm
b250RnJvbU5TRm9udChmb250KSk7CiB9CiAKICsgKGZsb2F0KXdpZHRoT2ZTdHJpbmc6KE5TU3Ry
aW5nICopc3RyaW5nIGZvbnQ6KE5TRm9udCAqKWZvbnQKIHsKKyAgICBpZiAoIWZvbnQpCisgICAg
ICAgIHJldHVybiAwOworCiAgICAgcmV0dXJuIFdlYkNvcmU6OlN0cmluZ1RydW5jYXRvcjo6d2lk
dGgoc3RyaW5nLCBmb250RnJvbU5TRm9udChmb250KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiZDA3NDJiMmRjMjE3MzFjYzYxZjQy
YjYwN2U5NzFlNjVhNDZlYjIxLi5kYmMxZjQxNWE0OWM0NjFmNDBiNDFkYzgxZDBjNzY3M2FhODA1
YTdhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTYtMDQtMjIgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxk
QGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEd1YXJhbnRlZSBGb250UGxhdGZvcm1EYXRh
J3MgbV9jZ0ZvbnQgaXMgbmV2ZXIgbnVsbHB0cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2OTI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TdHJpbmdUcnVu
Y2F0b3IubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNi0wNC0yMiAg
UnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgZXhw
ZWN0ZWQgcmVzdWx0IGZvciBXS1ByZWZlcmVuY2VzR2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2Fj
aGVFbmFibGVkIGFmdGVyIHIxOTk4NTQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1N0cmluZ1RydW5jYXRvci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL1N0cmluZ1RydW5jYXRvci5tbQppbmRleCA0YzBiNjgyYzY4OTJkOTViOGQwNjE0YThlNWVh
OTRlZjlhMWYyMTE5Li4yYTVhZDk2NGQ0MzQ3NmZkNzU0YzI0ODhlOWVmYmQ0N2UyOTE3Yzg3IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TdHJpbmdUcnVuY2F0b3Iu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU3RyaW5nVHJ1bmNhdG9yLm1t
CkBAIC0zMywxNSArMzMsMTggQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogVEVTVChXZWJL
aXQxLCBTdHJpbmdUcnVuY2F0b3IpCiB7CiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAg
IEVYUEVDVF9FUShbV2ViU3RyaW5nVHJ1bmNhdG9yIGNlbnRlclRydW5jYXRlU3RyaW5nOkAiYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiIHRvV2lkdGg6MTAwIHdpdGhGb250Om5pbF0sIG5pbCk7
CiAgICAgICAgIEVYUEVDVF9TVFJFUShbW1dlYlN0cmluZ1RydW5jYXRvciBjZW50ZXJUcnVuY2F0
ZVN0cmluZzpAImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiB0b1dpZHRoOjEwMCB3aXRoRm9u
dDpbTlNGb250IGZvbnRXaXRoTmFtZTpAIkhlbHZldGljYSIgc2l6ZToxMl1dIFVURjhTdHJpbmdd
LCAiYWJjZGVmZ+KApnR1dnd4eXoiKTsKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID4gMTAxMDAwCiAgICAgICAgIEVYUEVDVF9TVFJFUShbW1dlYlN0cmluZ1RydW5jYXRvciBj
ZW50ZXJUcnVuY2F0ZVN0cmluZzpAImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiB0b1dpZHRo
OjEwMF0gVVRGOFN0cmluZ10sICJhYmNkZWbigKZ1dnd4eXoiKTsKICNlbHNlCiAgICAgICAgIEVY
UEVDVF9TVFJFUShbW1dlYlN0cmluZ1RydW5jYXRvciBjZW50ZXJUcnVuY2F0ZVN0cmluZzpAImFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiB0b1dpZHRoOjEwMF0gVVRGOFN0cmluZ10sICJhYmNk
ZWbigKZ2d3h5eiIpOwogI2VuZGlmCisgICAgICAgIEVYUEVDVF9FUShbV2ViU3RyaW5nVHJ1bmNh
dG9yIHJpZ2h0VHJ1bmNhdGVTdHJpbmc6QCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIgdG9X
aWR0aDoxMDAgd2l0aEZvbnQ6bmlsXSwgbmlsKTsKICAgICAgICAgRVhQRUNUX1NUUkVRKFtbV2Vi
U3RyaW5nVHJ1bmNhdG9yIHJpZ2h0VHJ1bmNhdGVTdHJpbmc6QCJhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiIgdG9XaWR0aDoxMDAgd2l0aEZvbnQ6W05TRm9udCBmb250V2l0aE5hbWU6QCJIZWx2
ZXRpY2EiIHNpemU6MTJdXSBVVEY4U3RyaW5nXSwgImFiY2RlZmdoaWprbG1ub+KApiIpOwogICAg
ICAgICBFWFBFQ1RfU1RSRVEoW1tXZWJTdHJpbmdUcnVuY2F0b3IgY2VudGVyVHJ1bmNhdGVTdHJp
bmc6QCLEgWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiIHRvV2lkdGg6MTAwIHdpdGhGb250OltO
U0ZvbnQgZm9udFdpdGhOYW1lOkAiSGVsdmV0aWNhIiBzaXplOjEyXV0gVVRGOFN0cmluZ10sICLE
gWJjZGVmZ+KApnR1dnd4eXoiKTsKICAgICAgICAgRVhQRUNUX1NUUkVRKFtbV2ViU3RyaW5nVHJ1
bmNhdG9yIHJpZ2h0VHJ1bmNhdGVTdHJpbmc6QCLEgWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi
IHRvV2lkdGg6MTAwIHdpdGhGb250OltOU0ZvbnQgZm9udFdpdGhOYW1lOkAiSGVsdmV0aWNhIiBz
aXplOjEyXV0gVVRGOFN0cmluZ10sICLEgWJjZGVmZ2hpamtsbW5v4oCmIik7CisgICAgICAgIEVY
UEVDVF9FUShbV2ViU3RyaW5nVHJ1bmNhdG9yIHdpZHRoT2ZTdHJpbmc6QCJhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiIgZm9udDpuaWxdLCAwKTsKICAgICAgICAgRVhQRUNUX0VRKFtXZWJTdHJp
bmdUcnVuY2F0b3Igd2lkdGhPZlN0cmluZzpAImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiBm
b250OltOU0ZvbnQgZm9udFdpdGhOYW1lOkAiSGVsdmV0aWNhIiBzaXplOjEyXV0sIDE1Mi43MzYz
MjgxMjUpOwogICAgICAgICBFWFBFQ1RfRVEoW1dlYlN0cmluZ1RydW5jYXRvciB3aWR0aE9mU3Ry
aW5nOkAixIFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiBmb250OltOU0ZvbnQgZm9udFdpdGhO
YW1lOkAiSGVsdmV0aWNhIiBzaXplOjEyXV0sIDE1Mi43MzYzMjgxMjUpOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277126</attachid>
            <date>2016-04-22 18:33:17 -0700</date>
            <delta_ts>2016-04-23 16:52:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156929-20160422183340.patch</filename>
            <type>text/plain</type>
            <size>19759</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5OTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNjZWE3MDIxYjEyMDIx
ODMzZGE5YWQyZTQ0NzY3YzMzMTQ3ZTBiMS4uNjA4YjczOWUwOWE2NmJjYWE2M2Q3MDAwMjVkNGRh
NTU2ZDdhNmU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA0LTIyICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBH
dWFyYW50ZWUgRm9udFBsYXRmb3JtRGF0YSdzIG1fY2dGb250IGlzIG5ldmVyIG51bGxwdHIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjkyOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFmdGVyIHNvbWUg
aW52ZXN0aWdhdGlvbiwgaXQgdHVybnMgb3V0IHRoYXQgdGhlcmUgaXMgbm8gcGxhY2Ugd2hlcmUg
aXQgaXMgbWVhbmluZ2Z1bAorICAgICAgICB0byBwYXNzIHVzIGEgbnVsbCBDb3JlVGV4dCBmb250
LiBUaGVyZWZvcmUsIHRoZSBDb3JlR3JhcGhpY3MgZm9udCBpcyBhbHNvIG5ldmVyIG51bGwuCisK
KyAgICAgICAgV2Ugc2hvdWxkIHNpbXBseSBjaGVjayBmb3IgdGhlc2UgbnVsbCB2YWx1ZXMgYXQg
dGhlIGluZ2VzdGlvbiBzaXRlIGluIG9yZGVyIHRvCisgICAgICAgIG1ha2UgdGhlIGd1YXJhbnRl
ZSBpbnRlcm5hbGx5IG9mIGhhdmluZyBub24tbnVsbCB2YWx1ZXMuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOiBCZWNhdXNlIHRoZSBwb2ludGVyIGlz
IG5ldmVyIG51bGwsIHdlCisgICAgICAgIGNhbiBkZWxldGUgdGhlIGNvZGUgd2hpY2ggaGFuZGxl
cyB0aGF0IGNhc2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0
YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFD
b2NvYS5tbTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjp3ZWJGYWxsYmFja0ZvbnRGYW1pbHkp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6c2V0RmFsbGJh
Y2tDR0ZvbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21w
bGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhU
ZXh0Q29udHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMpOiBBc2tp
bmcgdGhlCisgICAgICAgIENUUnVuIGZvciBpdHMga0NURm9udEF0dHJpYnV0ZU5hbWUgd2lsbCBh
bHdheXMgcmV0dXJuIG5vbi1udWxsLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOiBPbmNlIHdlIGhhdmUgYSBmb250IGRlc2Ny
aXB0b3IsCisgICAgICAgIENURm9udENyZWF0ZVdpdGhGb250RGVzY3JpcHRvcigpIHdpbGwgYWx3
YXlzIHJldHVybiBub24tbnVsbC4gV2UgY2hlY2sgaWYgdGhlIGZvbnQKKyAgICAgICAgZGVzY3Jp
cHRvciBpcyBudWxsIGVsc2V3aGVyZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdl
TWFjLm1tOiBUaGUgZm9udHMgaW4gdGhpcyBmaWxlIGFyZSBnb3R0ZW4gYnkgYXNraW5nIGZvciB0
aGUKKyAgICAgICAgc3lzdGVtIGZvbnQsIHdoaWNoIHdpbGwgYWx3YXlzIHJldHVybiBub24tbnVs
bC4KKyAgICAgICAgKFdlYkNvcmU6OmZvbnRGcm9tTlNGb250KToKKyAgICAgICAgKFdlYkNvcmU6
OndpZHRoV2l0aEZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0F0UG9pbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRm9yTGluayk6CisKIDIwMTYtMDQtMjIgIEJyZW50
IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQW5jaG9yIGVsZW1lbnQg
J3BpbmcnIHByb3BlcnR5IHNob3VsZCBvbmx5IGFwcGx5IHRvIGh0dHAvaHR0cHMgZGVzdGluYXRp
b25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMzMyMTVjYWZkYzE3NzMxZWUxNzQzMGZlM2M5ZmFhZWZl
NThiYTNjNC4uYTcxYjk1ZTE1Mzc1MWZmNGYwOGQ3MTVlNjQ5NWEzMDEyMDU1NGJlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE2LTA0LTIyICBNeWxlcyBDLiBNYXhmaWVs
ZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBHdWFyYW50ZWUgRm9u
dFBsYXRmb3JtRGF0YSdzIG1fY2dGb250IGlzIG5ldmVyIG51bGxwdHIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjkyOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTWlzYy9XZWJLaXROU1N0cmluZ0V4
dHJhcy5tbToKKyAgICAgICAgKC1bTlNTdHJpbmcgX3dlYl9kcmF3QXRQb2ludDpmb250OnRleHRD
b2xvcjphbGxvd2luZ0ZvbnRTbW9vdGhpbmc6XSk6IERyYXdpbmcKKyAgICAgICAgYSBzdHJpbmcg
d2l0aCBhIG51bGwgZm9udCBzaG91bGRuJ3QgZG8gYW55dGhpbmcuCisgICAgICAgICogTWlzYy9X
ZWJTdHJpbmdUcnVuY2F0b3IubW06IFdlIGNhbid0IHRydW5jYXRlIGEgc3RyaW5nIGlmIHdlIGRv
bid0IGhhdmUgYSBmb250CisgICAgICAgIHRvIHVzZS4KKyAgICAgICAgKCtbV2ViU3RyaW5nVHJ1
bmNhdG9yIGNlbnRlclRydW5jYXRlU3RyaW5nOnRvV2lkdGg6XSk6CisgICAgICAgICgrW1dlYlN0
cmluZ1RydW5jYXRvciBjZW50ZXJUcnVuY2F0ZVN0cmluZzp0b1dpZHRoOndpdGhGb250Ol0pOgor
ICAgICAgICAoK1tXZWJTdHJpbmdUcnVuY2F0b3IgcmlnaHRUcnVuY2F0ZVN0cmluZzp0b1dpZHRo
OndpdGhGb250Ol0pOgorICAgICAgICAoK1tXZWJTdHJpbmdUcnVuY2F0b3Igd2lkdGhPZlN0cmlu
Zzpmb250Ol0pOgorCiAyMDE2LTA0LTIxICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUgaU9TIGJ1aWxkOiBXQUtWaWV3IG1heSBub3QgcmVz
cG9uZCB0byBkcmF3TGF5ZXI6aW5Db250ZXh0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcAppbmRleCA3NjVmZWQxNWJjNzRj
ZjI4NzFkZGRiODhhN2FjYTZkNzM1NTcyMjA2Li5lYWIxY2NmZGRmN2YzYjUzOTM2NTgwYWI1YjVi
M2EwYTZmOTFkOTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250UGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcApAQCAtNTgsOCArNTgsNyBAQCBGb250UGxhdGZvcm1E
YXRhOjpGb250UGxhdGZvcm1EYXRhKENHRm9udFJlZiBjZ0ZvbnQsIGZsb2F0IHNpemUsIGJvb2wg
c3ludGhldGljQgogICAgIDogRm9udFBsYXRmb3JtRGF0YShzaXplLCBzeW50aGV0aWNCb2xkLCBz
eW50aGV0aWNPYmxpcXVlLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJpYW50LCB0ZXh0UmVuZGVyaW5n
TW9kZSkKIHsKICAgICBtX2NnRm9udCA9IGNnRm9udDsKLSAgICBpZiAoIW1fY2dGb250KQotICAg
ICAgICBzZXRGYWxsYmFja0NHRm9udCgpOworICAgIEFTU0VSVChtX2NnRm9udCk7CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBs
YXRmb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRm
b3JtRGF0YS5oCmluZGV4IDRlM2RjNDRjMTZhZWE5YTM5Njg5NzBiNGNlYzdiYThlYzE2Yjg3YjUu
LmI5NWI0OWQxMjc1MTg1YTM3MTgxYTlmMDFkMmFiMDY5ZTFlZTdiNjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKQEAgLTEw
OSw3ICsxMDksNiBAQCBwdWJsaWM6CiAjZWxpZiBQTEFURk9STShDT0NPQSkKICAgICBDVEZvbnRS
ZWYgZm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udC5nZXQoKTsgfQogICAgIFdFQkNPUkVfRVhQ
T1JUIENURm9udFJlZiByZWdpc3RlcmVkRm9udCgpIGNvbnN0OyAvLyBSZXR1cm5zIG51bGxwdHIg
aWZmIHRoZSBmb250IGlzIG5vdCByZWdpc3RlcmVkLCBzdWNoIGFzIHdlYiBmb250cyAob3RoZXJ3
aXNlIHJldHVybnMgZm9udCgpKS4KLSAgICB2b2lkIHNldEZvbnQoQ1RGb250UmVmKTsKIAogICAg
IENURm9udFJlZiBjdEZvbnQoKSBjb25zdDsKICAgICBzdGF0aWMgUmV0YWluUHRyPENGVHlwZVJl
Zj4gb2JqZWN0Rm9yRXF1YWxpdHlDaGVjayhDVEZvbnRSZWYpOwpAQCAtMTIwLDcgKzExOSw2IEBA
IHB1YmxpYzoKICNpZiBVU0UoQVBQS0lUKQogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyB3aGVu
IGFsbCBOU0ZvbnQgdXNhZ2UgaXMgcmVtb3ZlZC4KICAgICBOU0ZvbnQgKm5zRm9udCgpIGNvbnN0
IHsgcmV0dXJuIChOU0ZvbnQgKiltX2ZvbnQuZ2V0KCk7IH0KLSAgICB2b2lkIHNldE5TRm9udChO
U0ZvbnQgKmZvbnQpIHsgc2V0Rm9udChyZWludGVycHJldF9jYXN0PENURm9udFJlZj4oZm9udCkp
OyB9CiAjZW5kaWYKICNlbmRpZgogCkBAIC0yMTYsOSArMjE0LDYgQEAgcHJpdmF0ZToKICNpZiBQ
TEFURk9STShXSU4pCiAgICAgdm9pZCBwbGF0Zm9ybURhdGFJbml0KEhGT05ULCBmbG9hdCBzaXpl
LCBIREMsIFdDSEFSKiBmYWNlTmFtZSk7CiAjZW5kaWYKLSNpZiBVU0UoQ0cpCi0gICAgdm9pZCBz
ZXRGYWxsYmFja0NHRm9udCgpOwotI2VuZGlmCiAKIHB1YmxpYzoKICAgICBib29sIG1fc3ludGhl
dGljQm9sZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KaW5kZXggMjg1
MjA2MDhmZmUzOTIzNmFiNWYzOGRkM2ZhNTM4OTJjYzI5NTA0My4uODViZWI1N2E3ZDQzNGUyNDIw
ZTc4OGE1ZjlkOTc2Y2M0NTYxZTdjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQpA
QCAtNTgsNzcgKzU4LDYgQEAgRm9udFBsYXRmb3JtRGF0YTo6fkZvbnRQbGF0Zm9ybURhdGEoKQog
ewogfQogCi0jaWYgVVNFKEFQUEtJVCkKLQotc3RhdGljIE5TU3RyaW5nICp3ZWJGYWxsYmFja0Zv
bnRGYW1pbHkodm9pZCkKLXsKLSAgICBzdGF0aWMgTlNTdHJpbmcgKndlYkZhbGxiYWNrRm9udEZh
bWlseSA9IFtbW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOjE2LjBmXSBmYW1pbHlOYW1lXSByZXRh
aW5dOwotICAgIHJldHVybiB3ZWJGYWxsYmFja0ZvbnRGYW1pbHk7Ci19Ci0KLXZvaWQgRm9udFBs
YXRmb3JtRGF0YTo6c2V0RmFsbGJhY2tDR0ZvbnQoKQotewotICAgIGlmIChjZ0ZvbnQoKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgLy8gQWNrISBTb21ldGhpbmcgdmVyeSBiYWQgaGFwcGVuZWQs
IGxpa2UgYSBjb3JydXB0IGZvbnQuCi0gICAgLy8gVHJ5IGxvb2tpbmcgZm9yIGFuIGFsdGVybmF0
ZSAnYmFzZScgZm9udCBmb3IgdGhpcyByZW5kZXJlci4KLQotICAgIC8vIFNwZWNpYWwgY2FzZSBo
YWNrIHRvIHVzZSAiVGltZXMgTmV3IFJvbWFuIiBpbiBwbGFjZSBvZiAiVGltZXMiLgotICAgIC8v
ICJUaW1lcyBSTyIgaXMgYSBjb21tb24gZm9udCB3aG9zZSBmYW1pbHkgbmFtZSBpcyAiVGltZXMi
LgotICAgIC8vIEl0IG92ZXJyaWRlcyB0aGUgbm9ybWFsICJUaW1lcyIgZmFtaWx5IGZvbnQuCi0g
ICAgLy8gSXQgYWxzbyBhcHBlYXJzIHRvIGhhdmUgYSBjb3JydXB0IHJlZ3VsYXIgdmFyaWFudC4K
LSAgICBOU1N0cmluZyAqZmFsbGJhY2tGb250RmFtaWx5OwotICAgIGlmIChbW25zRm9udCgpIGZh
bWlseU5hbWVdIGlzRXF1YWw6QCJUaW1lcyJdKQotICAgICAgICBmYWxsYmFja0ZvbnRGYW1pbHkg
PSBAIlRpbWVzIE5ldyBSb21hbiI7Ci0gICAgZWxzZQotICAgICAgICBmYWxsYmFja0ZvbnRGYW1p
bHkgPSB3ZWJGYWxsYmFja0ZvbnRGYW1pbHkoKTsKLQotICAgIC8vIFRyeSBzZXR0aW5nIHVwIHRo
ZSBhbHRlcm5hdGUgZm9udC4KLSAgICAvLyBUaGlzIGlzIGEgbGFzdCBkaXRjaCBlZmZvcnQgdG8g
dXNlIGEgc3Vic3RpdHV0ZSBmb250IHdoZW4gc29tZXRoaW5nIGhhcyBnb25lIHdyb25nLgotI2lm
ICFFUlJPUl9ESVNBQkxFRAotICAgIFJldGFpblB0cjxOU0ZvbnQ+IGluaXRpYWxGb250ID0gbnNG
b250KCk7Ci0jZW5kaWYKLSAgICBpZiAoZm9udCgpKQotICAgICAgICBzZXROU0ZvbnQoW1tOU0Zv
bnRNYW5hZ2VyIHNoYXJlZEZvbnRNYW5hZ2VyXSBjb252ZXJ0Rm9udDpuc0ZvbnQoKSB0b0ZhbWls
eTpmYWxsYmFja0ZvbnRGYW1pbHldKTsKLSAgICBlbHNlCi0gICAgICAgIHNldE5TRm9udChbTlNG
b250IGZvbnRXaXRoTmFtZTpmYWxsYmFja0ZvbnRGYW1pbHkgc2l6ZTpzaXplKCldKTsKLQotICAg
IGlmIChjZ0ZvbnQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKFtmYWxsYmFja0ZvbnRG
YW1pbHkgaXNFcXVhbDpAIlRpbWVzIE5ldyBSb21hbiJdKSB7Ci0gICAgICAgIC8vIE9LLCBjb3Vs
ZG4ndCBzZXR1cCBUaW1lcyBOZXcgUm9tYW4gYXMgYW4gYWx0ZXJuYXRlIHRvIFRpbWVzLCBmYWxs
YmFjawotICAgICAgICAvLyBvbiB0aGUgc3lzdGVtIGZvbnQuIElmIHRoaXMgZmFpbHMgd2UgaGF2
ZSBubyBhbHRlcm5hdGl2ZSBsZWZ0LgotICAgICAgICBzZXROU0ZvbnQoW1tOU0ZvbnRNYW5hZ2Vy
IHNoYXJlZEZvbnRNYW5hZ2VyXSBjb252ZXJ0Rm9udDpuc0ZvbnQoKSB0b0ZhbWlseTp3ZWJGYWxs
YmFja0ZvbnRGYW1pbHkoKV0pOwotICAgICAgICBpZiAoY2dGb250KCkpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgLy8gV2UgdHJpZWQsIFRpbWVzLCBUaW1lcyBOZXcgUm9tYW4sIGFu
ZCB0aGUgc3lzdGVtIGZvbnQuIE5vIGpveS4gV2UgaGF2ZSB0byBnaXZlIHVwLgotICAgICAgICBM
T0dfRVJST1IoInVuYWJsZSB0byBpbml0aWFsaXplIHdpdGggZm9udCAlQCIsIGluaXRpYWxGb250
LmdldCgpKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBXZSB0cmllZCB0aGUgcmVxdWVzdGVk
IGZvbnQgYW5kIHRoZSBzeXN0ZW0gZm9udC4gTm8gam95LiBXZSBoYXZlIHRvIGdpdmUgdXAuCi0g
ICAgICAgIExPR19FUlJPUigidW5hYmxlIHRvIGluaXRpYWxpemUgd2l0aCBmb250ICVAIiwgaW5p
dGlhbEZvbnQuZ2V0KCkpOwotICAgIH0KLQotICAgIC8vIFJlcG9ydCB0aGUgcHJvYmxlbS4KLSAg
ICBMT0dfRVJST1IoIkNvcnJ1cHQgZm9udCBkZXRlY3RlZCwgdXNpbmcgJUAgaW4gcGxhY2Ugb2Yg
JUAuIiwgW25zRm9udCgpIGZhbWlseU5hbWVdLCBbaW5pdGlhbEZvbnQuZ2V0KCkgZmFtaWx5TmFt
ZV0pOwotCi0gICAgLy8gSWYgYWxsIGVsc2UgZmFpbHMsIHRyeSB0byBzZXQgdXAgdXNpbmcgdGhl
IHN5c3RlbSBmb250LgotICAgIC8vIFRoaXMgaXMgcHJvYmFibHkgYmVjYXVzZSBUaW1lcyBhbmQg
VGltZXMgTmV3IFJvbWFuIGFyZSBib3RoIHVuYXZhaWxhYmxlLgotICAgIEFTU0VSVCghY2dGb250
KCkpOwotICAgIHNldE5TRm9udChbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W25zRm9udCgpIHBv
aW50U2l6ZV1dKTsKLSAgICBMT0dfRVJST1IoImZhaWxlZCB0byBzZXQgdXAgZm9udCwgdXNpbmcg
c3lzdGVtIGZvbnQgJXMiLCBmb250KCkpOwotfQotCi0jZWxzZQotCi12b2lkIEZvbnRQbGF0Zm9y
bURhdGE6OnNldEZhbGxiYWNrQ0dGb250KCkKLXsKLX0KLQotI2VuZGlmCi0KIHZvaWQgRm9udFBs
YXRmb3JtRGF0YTo6cGxhdGZvcm1EYXRhSW5pdChjb25zdCBGb250UGxhdGZvcm1EYXRhJiBmKQog
ewogICAgIG1fZm9udCA9IGYubV9mb250OwpAQCAtMTc5LDI4ICsxMDgsNiBAQCBDVEZvbnRSZWYg
Rm9udFBsYXRmb3JtRGF0YTo6cmVnaXN0ZXJlZEZvbnQoKSBjb25zdAogICAgIHJldHVybiBudWxs
cHRyOwogfQogCi12b2lkIEZvbnRQbGF0Zm9ybURhdGE6OnNldEZvbnQoQ1RGb250UmVmIGZvbnQp
Ci17Ci0gICAgQVNTRVJUX0FSRyhmb250LCBmb250KTsKLQotICAgIGlmIChtX2ZvbnQgPT0gZm9u
dCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9mb250ID0gZm9udDsKLSAgICBtX3NpemUgPSBD
VEZvbnRHZXRTaXplKGZvbnQpOwotICAgIG1fY2dGb250ID0gYWRvcHRDRihDVEZvbnRDb3B5R3Jh
cGhpY3NGb250KGZvbnQsIG51bGxwdHIpKTsKLQotICAgIENURm9udFN5bWJvbGljVHJhaXRzIHRy
YWl0cyA9IENURm9udEdldFN5bWJvbGljVHJhaXRzKG1fZm9udC5nZXQoKSk7Ci0gICAgbV9pc0Nv
bG9yQml0bWFwRm9udCA9IHRyYWl0cyAmIGtDVEZvbnRUcmFpdENvbG9yR2x5cGhzOwotICAgIG1f
aXNTeXN0ZW1Gb250ID0gQ1RGb250RGVzY3JpcHRvcklzU3lzdGVtVUlGb250KGFkb3B0Q0YoQ1RG
b250Q29weUZvbnREZXNjcmlwdG9yKG1fZm9udC5nZXQoKSkpLmdldCgpKTsKLQotI2lmIFBMQVRG
T1JNKElPUykKLSAgICBtX2lzRW1vamkgPSBDVEZvbnRJc0FwcGxlQ29sb3JFbW9qaShtX2ZvbnQu
Z2V0KCkpOwotI2VuZGlmCi0gICAgCi0gICAgbV9jdEZvbnQgPSBudWxscHRyOwotfQotCiBpbmxp
bmUgaW50IG1hcEZvbnRXaWR0aFZhcmlhbnRUb0NURmVhdHVyZVNlbGVjdG9yKEZvbnRXaWR0aFZh
cmlhbnQgdmFyaWFudCkKIHsKICAgICBzd2l0Y2godmFyaWFudCkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNv
cmVUZXh0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhU
ZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCmluZGV4IGJhMTk0OTQwN2RkNDRmZTRlMDRkOTM0Mjg1
YzQ0OTc2NmE2YWM5ZWYuLjhhOWJlZmQxMWI5NWUxNzBkYWJmOTI0ZjBmMmE5NTJkZGRjNjkxMWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4
VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0KQEAgLTI2Miw3ICsy
NjIsNyBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVu
c0ZvckNoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNwLAogICAgICAgICBpZiAoaXNTeXN0ZW1GYWxs
YmFjaykgewogICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5UmVmIHJ1bkF0dHJpYnV0ZXMgPSBDVFJ1
bkdldEF0dHJpYnV0ZXMoY3RSdW4pOwogICAgICAgICAgICAgQ1RGb250UmVmIHJ1bkNURm9udCA9
IHN0YXRpY19jYXN0PENURm9udFJlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUocnVuQXR0cmlidXRl
cywga0NURm9udEF0dHJpYnV0ZU5hbWUpKTsKLSAgICAgICAgICAgIEFTU0VSVChDRkdldFR5cGVJ
RChydW5DVEZvbnQpID09IENURm9udEdldFR5cGVJRCgpKTsKKyAgICAgICAgICAgIEFTU0VSVChy
dW5DVEZvbnQgJiYgQ0ZHZXRUeXBlSUQocnVuQ1RGb250KSA9PSBDVEZvbnRHZXRUeXBlSUQoKSk7
CiAgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZUeXBlUmVmPiBydW5Gb250RXF1YWxpdHlPYmplY3Qg
PSBGb250UGxhdGZvcm1EYXRhOjpvYmplY3RGb3JFcXVhbGl0eUNoZWNrKHJ1bkNURm9udCk7CiAg
ICAgICAgICAgICBpZiAoIXNhZmVDRkVxdWFsKHJ1bkZvbnRFcXVhbGl0eU9iamVjdC5nZXQoKSwg
Zm9udC0+cGxhdGZvcm1EYXRhKCkub2JqZWN0Rm9yRXF1YWxpdHlDaGVjaygpLmdldCgpKSkgewog
ICAgICAgICAgICAgICAgIC8vIEJlZ2luIHRyeWluZyB0byBzZWUgaWYgcnVuRm9udCBtYXRjaGVz
IGFueSBvZiB0aGUgZm9udHMgaW4gdGhlIGZhbGxiYWNrIGxpc3QuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5jcHAKaW5kZXggZGMzOWFmNDViMmZiYWNkOWY0NDcyYTZkMTE0ZTRmNzFiYmMzMDgy
NC4uMTBlYmUwM2MwZWU1MjMwZjdkNjVkNGRkNDY5ODU0MTkzYzY3YWI1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhLmNwcApAQCAtNDEsNiArNDEsNyBAQCBGb250UGxhdGZvcm1EYXRhIEZv
bnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0
aW9uJgogICAgIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50ID0gZm9udERlc2NyaXB0aW9u
LndpZHRoVmFyaWFudCgpOwogICAgIFJldGFpblB0cjxDVEZvbnRSZWY+IGZvbnQgPSBhZG9wdENG
KENURm9udENyZWF0ZVdpdGhGb250RGVzY3JpcHRvcihtX2ZvbnREZXNjcmlwdG9yLmdldCgpLCBz
aXplLCBudWxscHRyKSk7CiAgICAgZm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9udC5nZXQo
KSwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksICZmb250RmFjZUZlYXR1cmVz
LCAmZm9udEZhY2VWYXJpYW50U2V0dGluZ3MsIGZvbnREZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGlu
Z3MoKSwgZm9udERlc2NyaXB0aW9uLnZhcmlhbnRTZXR0aW5ncygpKTsKKyAgICBBU1NFUlQoZm9u
dCk7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoZm9udC5nZXQoKSwgc2l6ZSwgYm9sZCwg
aXRhbGljLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJpYW50LCBmb250RGVzY3JpcHRpb24udGV4dFJl
bmRlcmluZ01vZGUoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9EcmFnSW1hZ2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0lt
YWdlTWFjLm1tCmluZGV4IDkxYzkyZTkxMmNjMjE4OTJmNjU5ZTY3YTk1OTU3MWZiZGQwMDI3Yjgu
Ljc2OTdjN2I0MzVjN2E2YWMyYmI3MWUyZWI0MzU4NGZiZGE4OWNiYzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQpAQCAtMTY2LDYgKzE2Niw3IEBAIGNv
bnN0IGZsb2F0IERyYWdMaW5rVXJsRm9udFNpemUgPSAxMDsKICAgICAKIHN0YXRpYyBGb250Q2Fz
Y2FkZSYgZm9udEZyb21OU0ZvbnQoTlNGb250ICpmb250KQogeworICAgIEFTU0VSVChmb250KTsK
ICAgICBzdGF0aWMgTlNGb250ICpjdXJyZW50Rm9udDsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Rm9udENhc2NhZGU+IGN1cnJlbnRSZW5kZXJlcjsKICAgICAKQEAgLTE5Miw2ICsxOTMsOSBA
QCBzdGF0aWMgYm9vbCBjYW5Vc2VGYXN0UmVuZGVyZXIoY29uc3QgVW5pQ2hhciogYnVmZmVyLCB1
bnNpZ25lZCBsZW5ndGgpCiAgICAgCiBzdGF0aWMgZmxvYXQgd2lkdGhXaXRoRm9udChOU1N0cmlu
ZyAqc3RyaW5nLCBOU0ZvbnQgKmZvbnQpCiB7CisgICAgaWYgKCFmb250KQorICAgICAgICByZXR1
cm4gMDsKKwogICAgIHVuc2lnbmVkIGxlbmd0aCA9IFtzdHJpbmcgbGVuZ3RoXTsKICAgICBWZWN0
b3I8VW5pQ2hhciwgMjA0OD4gYnVmZmVyKGxlbmd0aCk7CiAgICAgCkBAIC0yMDgsNiArMjEyLDkg
QEAgc3RhdGljIGZsb2F0IHdpZHRoV2l0aEZvbnQoTlNTdHJpbmcgKnN0cmluZywgTlNGb250ICpm
b250KQogICAgIAogc3RhdGljIHZvaWQgZHJhd0F0UG9pbnQoTlNTdHJpbmcgKnN0cmluZywgTlNQ
b2ludCBwb2ludCwgTlNGb250ICpmb250LCBOU0NvbG9yICp0ZXh0Q29sb3IpCiB7CisgICAgaWYg
KCFmb250KQorICAgICAgICByZXR1cm47CisKICAgICB1bnNpZ25lZCBsZW5ndGggPSBbc3RyaW5n
IGxlbmd0aF07CiAgICAgVmVjdG9yPFVuaUNoYXIsIDIwNDg+IGJ1ZmZlcihsZW5ndGgpOwogICAg
IApAQCAtMjI4LDcgKzIzNSw3IEBAIHN0YXRpYyB2b2lkIGRyYXdBdFBvaW50KE5TU3RyaW5nICpz
dHJpbmcsIE5TUG9pbnQgcG9pbnQsIE5TRm9udCAqZm9udCwgTlNDb2xvciAqCiAgICAgICAgIEJP
T0wgZmxpcHBlZCA9IFtuc0NvbnRleHQgaXNGbGlwcGVkXTsKICAgICAgICAgaWYgKCFmbGlwcGVk
KQogICAgICAgICAgICAgQ0dDb250ZXh0U2NhbGVDVE0oY2dDb250ZXh0LCAxLCAtMSk7Ci0gICAg
ICAgICAgICAKKwogICAgICAgICBGb250Q2FzY2FkZSB3ZWJDb3JlRm9udChGb250UGxhdGZvcm1E
YXRhKHRvQ1RGb250KGZvbnQpLCBbZm9udCBwb2ludFNpemVdKSwgQW50aWFsaWFzZWQpOwogICAg
ICAgICBUZXh0UnVuIHJ1bihTdHJpbmdWaWV3KGJ1ZmZlci5kYXRhKCksIGxlbmd0aCkpOwogCkBA
IC0yODEsNiArMjg4LDEwIEBAIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKFVS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBGb250UmVuZGVyaW5nCiAgICAgTlNGb250ICps
YWJlbEZvbnQgPSBbW05TRm9udE1hbmFnZXIgc2hhcmVkRm9udE1hbmFnZXJdIGNvbnZlcnRGb250
OltOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpEcmFnTGlua0xhYmVsRm9udHNpemVdCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvSGF2
ZVRyYWl0Ok5TQm9sZEZvbnRNYXNrXTsKICAgICBOU0ZvbnQgKnVybEZvbnQgPSBbTlNGb250IHN5
c3RlbUZvbnRPZlNpemU6RHJhZ0xpbmtVcmxGb250U2l6ZV07CisKKyAgICBBU1NFUlQobGFiZWxG
b250KTsKKyAgICBBU1NFUlQodXJsRm9udCk7CisKICAgICBOU1NpemUgbGFiZWxTaXplOwogICAg
IGxhYmVsU2l6ZS53aWR0aCA9IHdpZHRoV2l0aEZvbnQobGFiZWwsIGxhYmVsRm9udCk7CiAgICAg
bGFiZWxTaXplLmhlaWdodCA9IFtsYWJlbEZvbnQgYXNjZW5kZXJdIC0gW2xhYmVsRm9udCBkZXNj
ZW5kZXJdOwpAQCAtMzIyLDE2ICszMzMsMTggQEAgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFn
ZUZvckxpbmsoVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUsIEZvbnRSZW5kZXJpbmcKIAog
ICAgIE5TQ29sb3IgKnRvcENvbG9yID0gW05TQ29sb3IgY29sb3JXaXRoRGV2aWNlV2hpdGU6MC4w
ZiBhbHBoYTowLjc1Zl07CiAgICAgTlNDb2xvciAqYm90dG9tQ29sb3IgPSBbTlNDb2xvciBjb2xv
cldpdGhEZXZpY2VXaGl0ZToxLjBmIGFscGhhOjAuNWZdOwotICAgIGlmIChkcmF3VVJMU3RyaW5n
KSB7CisgICAgaWYgKGRyYXdVUkxTdHJpbmcgJiYgdXJsRm9udCkgewogICAgICAgICBpZiAoY2xp
cFVSTFN0cmluZykKICAgICAgICAgICAgIHVybFN0cmluZyA9IFN0cmluZ1RydW5jYXRvcjo6Y2Vu
dGVyVHJ1bmNhdGUodXJsU3RyaW5nLCBpbWFnZVNpemUud2lkdGggLSAoRHJhZ0xhYmVsQm9yZGVy
WCAqIDIpLCBmb250RnJvbU5TRm9udCh1cmxGb250KSk7CiAKICAgICAgICBkcmF3RG91YmxlZEF0
UG9pbnQodXJsU3RyaW5nLCBOU01ha2VQb2ludChEcmFnTGFiZWxCb3JkZXJYLCBEcmFnTGFiZWxC
b3JkZXJZIC0gW3VybEZvbnQgZGVzY2VuZGVyXSksIHRvcENvbG9yLCBib3R0b21Db2xvciwgdXJs
Rm9udCk7CiAgICAgfQogCi0gICAgaWYgKGNsaXBMYWJlbFN0cmluZykKLSAgICAgICAgbGFiZWwg
PSBTdHJpbmdUcnVuY2F0b3I6OnJpZ2h0VHJ1bmNhdGUobGFiZWwsIGltYWdlU2l6ZS53aWR0aCAt
IChEcmFnTGFiZWxCb3JkZXJYICogMiksIGZvbnRGcm9tTlNGb250KGxhYmVsRm9udCkpOwotICAg
IGRyYXdEb3VibGVkQXRQb2ludChsYWJlbCwgTlNNYWtlUG9pbnQoRHJhZ0xhYmVsQm9yZGVyWCwg
aW1hZ2VTaXplLmhlaWdodCAtIExhYmVsQm9yZGVyWU9mZnNldCAtIFtsYWJlbEZvbnQgcG9pbnRT
aXplXSksIHRvcENvbG9yLCBib3R0b21Db2xvciwgbGFiZWxGb250KTsKKyAgICBpZiAobGFiZWxG
b250KSB7CisgICAgICAgIGlmIChjbGlwTGFiZWxTdHJpbmcpCisgICAgICAgICAgICBsYWJlbCA9
IFN0cmluZ1RydW5jYXRvcjo6cmlnaHRUcnVuY2F0ZShsYWJlbCwgaW1hZ2VTaXplLndpZHRoIC0g
KERyYWdMYWJlbEJvcmRlclggKiAyKSwgZm9udEZyb21OU0ZvbnQobGFiZWxGb250KSk7CisgICAg
ICAgIGRyYXdEb3VibGVkQXRQb2ludChsYWJlbCwgTlNNYWtlUG9pbnQoRHJhZ0xhYmVsQm9yZGVy
WCwgaW1hZ2VTaXplLmhlaWdodCAtIExhYmVsQm9yZGVyWU9mZnNldCAtIFtsYWJlbEZvbnQgcG9p
bnRTaXplXSksIHRvcENvbG9yLCBib3R0b21Db2xvciwgbGFiZWxGb250KTsKKyAgICB9CiAKICAg
ICBbZHJhZ0ltYWdlIHVubG9ja0ZvY3VzXTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJhcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2Mv
V2ViS2l0TlNTdHJpbmdFeHRyYXMubW0KaW5kZXggNjJkMmZiMTMxZGY3MDI4NTM4ODM5NWNjMDFi
NWYzMTMwN2FjOWM4Ni4uYjlhODRlNjY0MjBiZDZjZjUxYzI4NGYyMjk3NzEyYTE3MGU4NjBhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJhcy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYktpdE5TU3RyaW5nRXh0cmFzLm1tCkBA
IC03MSw2ICs3MSw5IEBAIC0gKHZvaWQpX3dlYl9kcmF3QXRQb2ludDooTlNQb2ludClwb2ludCBm
b250OihOU0ZvbnQgKilmb250IHRleHRDb2xvcjooTlNDb2xvciAqCiAKIC0gKHZvaWQpX3dlYl9k
cmF3QXRQb2ludDooTlNQb2ludClwb2ludCBmb250OihOU0ZvbnQgKilmb250IHRleHRDb2xvcjoo
TlNDb2xvciAqKXRleHRDb2xvciBhbGxvd2luZ0ZvbnRTbW9vdGhpbmc6KEJPT0wpZm9udFNtb290
aGluZ0lzQWxsb3dlZAogeworICAgIGlmICghZm9udCkKKyAgICAgICAgcmV0dXJuOworCiAgICAg
dW5zaWduZWQgbGVuZ3RoID0gW3NlbGYgbGVuZ3RoXTsKICAgICBWZWN0b3I8VW5pQ2hhciwgMjA0
OD4gYnVmZmVyKGxlbmd0aCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2Mv
V2ViU3RyaW5nVHJ1bmNhdG9yLm1tIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJTdHJpbmdU
cnVuY2F0b3IubW0KaW5kZXggYzZhYjE1NDA3YWMwNzRmODFkMGE5ZTE5MmIzMTcyMGU1MWQ4YjI1
OS4uNTk2M2M1Mzk4MDllMzVkYmNlNTE5YTA5ODI5ZGM3MzljMmExYjZmNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJTdHJpbmdUcnVuY2F0b3IubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvTWlzYy9XZWJTdHJpbmdUcnVuY2F0b3IubW0KQEAgLTU5LDIxICs1OSwzNSBA
QCArICh2b2lkKWluaXRpYWxpemUKICsgKE5TU3RyaW5nICopY2VudGVyVHJ1bmNhdGVTdHJpbmc6
KE5TU3RyaW5nICopc3RyaW5nIHRvV2lkdGg6KGZsb2F0KW1heFdpZHRoCiB7CiAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxOU0ZvbnQ+PiBtZW51Rm9udCA9IFtOU0ZvbnQgbWVu
dUZvbnRPZlNpemU6MF07CisKKyAgICBBU1NFUlQobWVudUZvbnQuZ2V0KCkpOworICAgIGlmICgh
bWVudUZvbnQuZ2V0KCkpCisgICAgICAgIHJldHVybiBuaWw7CisKICAgICByZXR1cm4gV2ViQ29y
ZTo6U3RyaW5nVHJ1bmNhdG9yOjpjZW50ZXJUcnVuY2F0ZShzdHJpbmcsIG1heFdpZHRoLCBmb250
RnJvbU5TRm9udChtZW51Rm9udC5nZXQoKS5nZXQoKSkpOwogfQogCiArIChOU1N0cmluZyAqKWNl
bnRlclRydW5jYXRlU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyB0b1dpZHRoOihmbG9hdCltYXhX
aWR0aCB3aXRoRm9udDooTlNGb250ICopZm9udAogeworICAgIGlmICghZm9udCkKKyAgICAgICAg
cmV0dXJuIG5pbDsKKwogICAgIHJldHVybiBXZWJDb3JlOjpTdHJpbmdUcnVuY2F0b3I6OmNlbnRl
clRydW5jYXRlKHN0cmluZywgbWF4V2lkdGgsIGZvbnRGcm9tTlNGb250KGZvbnQpKTsKIH0KIAog
KyAoTlNTdHJpbmcgKilyaWdodFRydW5jYXRlU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyB0b1dp
ZHRoOihmbG9hdCltYXhXaWR0aCB3aXRoRm9udDooTlNGb250ICopZm9udAogeworICAgIGlmICgh
Zm9udCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKwogICAgIHJldHVybiBXZWJDb3JlOjpTdHJpbmdU
cnVuY2F0b3I6OnJpZ2h0VHJ1bmNhdGUoc3RyaW5nLCBtYXhXaWR0aCwgZm9udEZyb21OU0ZvbnQo
Zm9udCkpOwogfQogCiArIChmbG9hdCl3aWR0aE9mU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyBm
b250OihOU0ZvbnQgKilmb250CiB7CisgICAgaWYgKCFmb250KQorICAgICAgICByZXR1cm4gMDsK
KwogICAgIHJldHVybiBXZWJDb3JlOjpTdHJpbmdUcnVuY2F0b3I6OndpZHRoKHN0cmluZywgZm9u
dEZyb21OU0ZvbnQoZm9udCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggYmQwNzQyYjJkYzIxNzMxY2M2MWY0MmI2MDdlOTcxZTY1YTQ2
ZWIyMS4uZGJjMWY0MTVhNDljNDYxZjQwYjQxZGM4MWQwYzc2NzNhYTgwNWE3YSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDE2LTA0LTIyICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisK
KyAgICAgICAgW0NvY29hXSBHdWFyYW50ZWUgRm9udFBsYXRmb3JtRGF0YSdzIG1fY2dGb250IGlz
IG5ldmVyIG51bGxwdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NjkyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU3RyaW5nVHJ1bmNhdG9yLm1tOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTYtMDQtMjIgIFJ5YW4gSGFkZGFkICA8
cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGV4cGVjdGVkIHJlc3VsdCBm
b3IgV0tQcmVmZXJlbmNlc0dldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCBhZnRl
ciByMTk5ODU0CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TdHJp
bmdUcnVuY2F0b3IubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TdHJpbmdUcnVu
Y2F0b3IubW0KaW5kZXggNGMwYjY4MmM2ODkyZDk1YjhkMDYxNGE4ZTVlYTk0ZWY5YTFmMjExOS4u
MzU0ZDFkZGZhOWNhMzg2YTUzZjdmOTg2YjYwZmRmYmViMjA2ZGJhMSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU3RyaW5nVHJ1bmNhdG9yLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1N0cmluZ1RydW5jYXRvci5tbQpAQCAtMzMsMTUgKzMz
LDE4IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIFRFU1QoV2ViS2l0MSwgU3RyaW5nVHJ1
bmNhdG9yKQogewogICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICBFWFBFQ1RfRVEobmls
LCBbV2ViU3RyaW5nVHJ1bmNhdG9yIGNlbnRlclRydW5jYXRlU3RyaW5nOkAiYWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXoiIHRvV2lkdGg6MTAwIHdpdGhGb250Om5pbF0pOwogICAgICAgICBFWFBF
Q1RfU1RSRVEoW1tXZWJTdHJpbmdUcnVuY2F0b3IgY2VudGVyVHJ1bmNhdGVTdHJpbmc6QCJhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIgdG9XaWR0aDoxMDAgd2l0aEZvbnQ6W05TRm9udCBmb250
V2l0aE5hbWU6QCJIZWx2ZXRpY2EiIHNpemU6MTJdXSBVVEY4U3RyaW5nXSwgImFiY2RlZmfigKZ0
dXZ3eHl6Iik7CiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+IDEwMTAwMAog
ICAgICAgICBFWFBFQ1RfU1RSRVEoW1tXZWJTdHJpbmdUcnVuY2F0b3IgY2VudGVyVHJ1bmNhdGVT
dHJpbmc6QCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIgdG9XaWR0aDoxMDBdIFVURjhTdHJp
bmddLCAiYWJjZGVm4oCmdXZ3eHl6Iik7CiAjZWxzZQogICAgICAgICBFWFBFQ1RfU1RSRVEoW1tX
ZWJTdHJpbmdUcnVuY2F0b3IgY2VudGVyVHJ1bmNhdGVTdHJpbmc6QCJhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiIgdG9XaWR0aDoxMDBdIFVURjhTdHJpbmddLCAiYWJjZGVm4oCmdnd4eXoiKTsK
ICNlbmRpZgorICAgICAgICBFWFBFQ1RfRVEobmlsLCBbV2ViU3RyaW5nVHJ1bmNhdG9yIHJpZ2h0
VHJ1bmNhdGVTdHJpbmc6QCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIgdG9XaWR0aDoxMDAg
d2l0aEZvbnQ6bmlsXSk7CiAgICAgICAgIEVYUEVDVF9TVFJFUShbW1dlYlN0cmluZ1RydW5jYXRv
ciByaWdodFRydW5jYXRlU3RyaW5nOkAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiIHRvV2lk
dGg6MTAwIHdpdGhGb250OltOU0ZvbnQgZm9udFdpdGhOYW1lOkAiSGVsdmV0aWNhIiBzaXplOjEy
XV0gVVRGOFN0cmluZ10sICJhYmNkZWZnaGlqa2xtbm/igKYiKTsKICAgICAgICAgRVhQRUNUX1NU
UkVRKFtbV2ViU3RyaW5nVHJ1bmNhdG9yIGNlbnRlclRydW5jYXRlU3RyaW5nOkAixIFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6IiB0b1dpZHRoOjEwMCB3aXRoRm9udDpbTlNGb250IGZvbnRXaXRo
TmFtZTpAIkhlbHZldGljYSIgc2l6ZToxMl1dIFVURjhTdHJpbmddLCAixIFiY2RlZmfigKZ0dXZ3
eHl6Iik7CiAgICAgICAgIEVYUEVDVF9TVFJFUShbW1dlYlN0cmluZ1RydW5jYXRvciByaWdodFRy
dW5jYXRlU3RyaW5nOkAixIFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiB0b1dpZHRoOjEwMCB3
aXRoRm9udDpbTlNGb250IGZvbnRXaXRoTmFtZTpAIkhlbHZldGljYSIgc2l6ZToxMl1dIFVURjhT
dHJpbmddLCAixIFiY2RlZmdoaWprbG1ub+KApiIpOworICAgICAgICBFWFBFQ1RfRVEoW1dlYlN0
cmluZ1RydW5jYXRvciB3aWR0aE9mU3RyaW5nOkAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi
IGZvbnQ6bmlsXSwgMCk7CiAgICAgICAgIEVYUEVDVF9FUShbV2ViU3RyaW5nVHJ1bmNhdG9yIHdp
ZHRoT2ZTdHJpbmc6QCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIgZm9udDpbTlNGb250IGZv
bnRXaXRoTmFtZTpAIkhlbHZldGljYSIgc2l6ZToxMl1dLCAxNTIuNzM2MzI4MTI1KTsKICAgICAg
ICAgRVhQRUNUX0VRKFtXZWJTdHJpbmdUcnVuY2F0b3Igd2lkdGhPZlN0cmluZzpAIsSBYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiIgZm9udDpbTlNGb250IGZvbnRXaXRoTmFtZTpAIkhlbHZldGlj
YSIgc2l6ZToxMl1dLCAxNTIuNzM2MzI4MTI1KTsKICAgICB9Cg==
</data>
<flag name="review"
          id="301381"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277304</attachid>
            <date>2016-04-25 19:05:59 -0700</date>
            <delta_ts>2016-04-25 19:05:59 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-156929-20160425190626.patch</filename>
            <type>text/plain</type>
            <size>20237</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjYyNDNiNmYzMTE1M2Ix
ZjZkNGE5ZTZkZmNiYTc2MjYzNThiNzU0Yi4uMzllODFkMzZkYzQ1Y2ViZjJiZGZhYWRlZTJiZjc2
MjMwYmYwNTJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA0LTI1ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBH
dWFyYW50ZWUgRm9udFBsYXRmb3JtRGF0YSdzIG1fY2dGb250IGlzIG5ldmVyIG51bGxwdHIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjkyOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEFmdGVyIHNvbWUgaW52
ZXN0aWdhdGlvbiwgaXQgdHVybnMgb3V0IHRoYXQgdGhlcmUgaXMgbm8gcGxhY2Ugd2hlcmUgaXQg
aXMgbWVhbmluZ2Z1bAorICAgICAgICB0byBwYXNzIHVzIGEgbnVsbCBDb3JlVGV4dCBmb250LiBU
aGVyZWZvcmUsIHRoZSBDb3JlR3JhcGhpY3MgZm9udCBpcyBhbHNvIG5ldmVyIG51bGwuCisKKyAg
ICAgICAgV2Ugc2hvdWxkIHNpbXBseSBjaGVjayBmb3IgdGhlc2UgbnVsbCB2YWx1ZXMgYXQgdGhl
IGluZ2VzdGlvbiBzaXRlIGluIG9yZGVyIHRvCisgICAgICAgIG1ha2UgdGhlIGd1YXJhbnRlZSBp
bnRlcm5hbGx5IG9mIGhhdmluZyBub24tbnVsbCB2YWx1ZXMuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQ
bGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOiBCZWNhdXNlIHRoZSBwb2ludGVyIGlzIG5l
dmVyIG51bGwsIHdlCisgICAgICAgIGNhbiBkZWxldGUgdGhlIGNvZGUgd2hpY2ggaGFuZGxlcyB0
aGF0IGNhc2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2Nv
YS5tbTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjp3ZWJGYWxsYmFja0ZvbnRGYW1pbHkpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6c2V0RmFsbGJhY2tD
R0ZvbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4
VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0
Q29udHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMpOiBBc2tpbmcg
dGhlCisgICAgICAgIENUUnVuIGZvciBpdHMga0NURm9udEF0dHJpYnV0ZU5hbWUgd2lsbCBhbHdh
eXMgcmV0dXJuIG5vbi1udWxsLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0
Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOiBPbmNlIHdlIGhhdmUgYSBmb250IGRlc2NyaXB0
b3IsCisgICAgICAgIENURm9udENyZWF0ZVdpdGhGb250RGVzY3JpcHRvcigpIHdpbGwgYWx3YXlz
IHJldHVybiBub24tbnVsbC4gV2UgY2hlY2sgaWYgdGhlIGZvbnQKKyAgICAgICAgZGVzY3JpcHRv
ciBpcyBudWxsIGVsc2V3aGVyZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFj
Lm1tOiBUaGUgZm9udHMgaW4gdGhpcyBmaWxlIGFyZSBnb3R0ZW4gYnkgYXNraW5nIGZvciB0aGUK
KyAgICAgICAgc3lzdGVtIGZvbnQsIHdoaWNoIHdpbGwgYWx3YXlzIHJldHVybiBub24tbnVsbC4K
KyAgICAgICAgKFdlYkNvcmU6OmZvbnRGcm9tTlNGb250KToKKyAgICAgICAgKFdlYkNvcmU6Ondp
ZHRoV2l0aEZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0F0UG9pbnQpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRm9yTGluayk6CisKIDIwMTYtMDQtMjUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCB1bmRlciBNZW1vcnlDYWNo
ZTo6cmVtb3ZlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA2MjBhOGQ4NWEyN2E2ODUxODAyMDMxMjAx
M2Y5MTM0MDM4OWVjNjBhLi5kZTIyM2E4ZTM2NDQ4Y2QzNmVkZjJkNTI5ZTkyNjI0ZTcwZjlmZDdi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTYtMDQtMjUgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEd1YXJh
bnRlZSBGb250UGxhdGZvcm1EYXRhJ3MgbV9jZ0ZvbnQgaXMgbmV2ZXIgbnVsbHB0cgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2OTI5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBNaXNjL1dlYktpdE5TU3Ry
aW5nRXh0cmFzLm1tOgorICAgICAgICAoLVtOU1N0cmluZyBfd2ViX2RyYXdBdFBvaW50OmZvbnQ6
dGV4dENvbG9yOmFsbG93aW5nRm9udFNtb290aGluZzpdKTogRHJhd2luZworICAgICAgICBhIHN0
cmluZyB3aXRoIGEgbnVsbCBmb250IHNob3VsZG4ndCBkbyBhbnl0aGluZy4KKyAgICAgICAgKiBN
aXNjL1dlYlN0cmluZ1RydW5jYXRvci5tbTogV2UgY2FuJ3QgdHJ1bmNhdGUgYSBzdHJpbmcgaWYg
d2UgZG9uJ3QgaGF2ZSBhIGZvbnQKKyAgICAgICAgdG8gdXNlLgorICAgICAgICAoK1tXZWJTdHJp
bmdUcnVuY2F0b3IgY2VudGVyVHJ1bmNhdGVTdHJpbmc6dG9XaWR0aDpdKToKKyAgICAgICAgKCtb
V2ViU3RyaW5nVHJ1bmNhdG9yIGNlbnRlclRydW5jYXRlU3RyaW5nOnRvV2lkdGg6d2l0aEZvbnQ6
XSk6CisgICAgICAgICgrW1dlYlN0cmluZ1RydW5jYXRvciByaWdodFRydW5jYXRlU3RyaW5nOnRv
V2lkdGg6d2l0aEZvbnQ6XSk6CisgICAgICAgICgrW1dlYlN0cmluZ1RydW5jYXRvciB3aWR0aE9m
U3RyaW5nOmZvbnQ6XSk6CisKIDIwMTYtMDQtMjUgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYkVkaXRvckNsaWVudCBzaG91bGQgcHJvcGVybHkgd3JpdGUgdG8g
bV9yYW5nZUZvckNhbmRpZGF0ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKaW5kZXggNzY1ZmVkMTViYzc0Y2YyODcxZGRk
Yjg4YTdhY2E2ZDczNTU3MjIwNi4uZWFiMWNjZmRkZjdmM2I1MzkzNjU4MGFiNWI1YjNhMGE2Zjkx
ZDkyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBs
YXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dFBsYXRmb3JtRGF0YS5jcHAKQEAgLTU4LDggKzU4LDcgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9u
dFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dGb250LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRp
Y0IKICAgICA6IEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwgc3ludGhldGljQm9sZCwgc3ludGhldGlj
T2JsaXF1ZSwgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCwgdGV4dFJlbmRlcmluZ01vZGUpCiB7
CiAgICAgbV9jZ0ZvbnQgPSBjZ0ZvbnQ7Ci0gICAgaWYgKCFtX2NnRm9udCkKLSAgICAgICAgc2V0
RmFsbGJhY2tDR0ZvbnQoKTsKKyAgICBBU1NFUlQobV9jZ0ZvbnQpOwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURh
dGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEu
aAppbmRleCA0ZTNkYzQ0YzE2YWVhOWEzOTY4OTcwYjRjZWM3YmE4ZWMxNmI4N2I1Li5iOTViNDlk
MTI3NTE4NWEzNzE4MWE5ZjAxZDJhYjA2OWUxZWU3YjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCkBAIC0xMDksNyArMTA5
LDYgQEAgcHVibGljOgogI2VsaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgQ1RGb250UmVmIGZvbnQo
KSBjb25zdCB7IHJldHVybiBtX2ZvbnQuZ2V0KCk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBDVEZv
bnRSZWYgcmVnaXN0ZXJlZEZvbnQoKSBjb25zdDsgLy8gUmV0dXJucyBudWxscHRyIGlmZiB0aGUg
Zm9udCBpcyBub3QgcmVnaXN0ZXJlZCwgc3VjaCBhcyB3ZWIgZm9udHMgKG90aGVyd2lzZSByZXR1
cm5zIGZvbnQoKSkuCi0gICAgdm9pZCBzZXRGb250KENURm9udFJlZik7CiAKICAgICBDVEZvbnRS
ZWYgY3RGb250KCkgY29uc3Q7CiAgICAgc3RhdGljIFJldGFpblB0cjxDRlR5cGVSZWY+IG9iamVj
dEZvckVxdWFsaXR5Q2hlY2soQ1RGb250UmVmKTsKQEAgLTEyMCw3ICsxMTksNiBAQCBwdWJsaWM6
CiAjaWYgVVNFKEFQUEtJVCkKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgd2hlbiBhbGwgTlNG
b250IHVzYWdlIGlzIHJlbW92ZWQuCiAgICAgTlNGb250ICpuc0ZvbnQoKSBjb25zdCB7IHJldHVy
biAoTlNGb250ICopbV9mb250LmdldCgpOyB9Ci0gICAgdm9pZCBzZXROU0ZvbnQoTlNGb250ICpm
b250KSB7IHNldEZvbnQocmVpbnRlcnByZXRfY2FzdDxDVEZvbnRSZWY+KGZvbnQpKTsgfQogI2Vu
ZGlmCiAjZW5kaWYKIApAQCAtMjE2LDkgKzIxNCw2IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0o
V0lOKQogICAgIHZvaWQgcGxhdGZvcm1EYXRhSW5pdChIRk9OVCwgZmxvYXQgc2l6ZSwgSERDLCBX
Q0hBUiogZmFjZU5hbWUpOwogI2VuZGlmCi0jaWYgVVNFKENHKQotICAgIHZvaWQgc2V0RmFsbGJh
Y2tDR0ZvbnQoKTsKLSNlbmRpZgogCiBwdWJsaWM6CiAgICAgYm9vbCBtX3N5bnRoZXRpY0JvbGQg
eyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCmluZGV4IDI4NTIwNjA4ZmZl
MzkyMzZhYjVmMzhkZDNmYTUzODkyY2MyOTUwNDMuLjg1YmViNTdhN2Q0MzRlMjQyMGU3ODhhNWY5
ZDk3NmNjNDU2MWU3YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KQEAgLTU4LDc3
ICs1OCw2IEBAIEZvbnRQbGF0Zm9ybURhdGE6On5Gb250UGxhdGZvcm1EYXRhKCkKIHsKIH0KIAot
I2lmIFVTRShBUFBLSVQpCi0KLXN0YXRpYyBOU1N0cmluZyAqd2ViRmFsbGJhY2tGb250RmFtaWx5
KHZvaWQpCi17Ci0gICAgc3RhdGljIE5TU3RyaW5nICp3ZWJGYWxsYmFja0ZvbnRGYW1pbHkgPSBb
W1tOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZToxNi4wZl0gZmFtaWx5TmFtZV0gcmV0YWluXTsKLSAg
ICByZXR1cm4gd2ViRmFsbGJhY2tGb250RmFtaWx5OwotfQotCi12b2lkIEZvbnRQbGF0Zm9ybURh
dGE6OnNldEZhbGxiYWNrQ0dGb250KCkKLXsKLSAgICBpZiAoY2dGb250KCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIC8vIEFjayEgU29tZXRoaW5nIHZlcnkgYmFkIGhhcHBlbmVkLCBsaWtlIGEg
Y29ycnVwdCBmb250LgotICAgIC8vIFRyeSBsb29raW5nIGZvciBhbiBhbHRlcm5hdGUgJ2Jhc2Un
IGZvbnQgZm9yIHRoaXMgcmVuZGVyZXIuCi0KLSAgICAvLyBTcGVjaWFsIGNhc2UgaGFjayB0byB1
c2UgIlRpbWVzIE5ldyBSb21hbiIgaW4gcGxhY2Ugb2YgIlRpbWVzIi4KLSAgICAvLyAiVGltZXMg
Uk8iIGlzIGEgY29tbW9uIGZvbnQgd2hvc2UgZmFtaWx5IG5hbWUgaXMgIlRpbWVzIi4KLSAgICAv
LyBJdCBvdmVycmlkZXMgdGhlIG5vcm1hbCAiVGltZXMiIGZhbWlseSBmb250LgotICAgIC8vIEl0
IGFsc28gYXBwZWFycyB0byBoYXZlIGEgY29ycnVwdCByZWd1bGFyIHZhcmlhbnQuCi0gICAgTlNT
dHJpbmcgKmZhbGxiYWNrRm9udEZhbWlseTsKLSAgICBpZiAoW1tuc0ZvbnQoKSBmYW1pbHlOYW1l
XSBpc0VxdWFsOkAiVGltZXMiXSkKLSAgICAgICAgZmFsbGJhY2tGb250RmFtaWx5ID0gQCJUaW1l
cyBOZXcgUm9tYW4iOwotICAgIGVsc2UKLSAgICAgICAgZmFsbGJhY2tGb250RmFtaWx5ID0gd2Vi
RmFsbGJhY2tGb250RmFtaWx5KCk7Ci0KLSAgICAvLyBUcnkgc2V0dGluZyB1cCB0aGUgYWx0ZXJu
YXRlIGZvbnQuCi0gICAgLy8gVGhpcyBpcyBhIGxhc3QgZGl0Y2ggZWZmb3J0IHRvIHVzZSBhIHN1
YnN0aXR1dGUgZm9udCB3aGVuIHNvbWV0aGluZyBoYXMgZ29uZSB3cm9uZy4KLSNpZiAhRVJST1Jf
RElTQUJMRUQKLSAgICBSZXRhaW5QdHI8TlNGb250PiBpbml0aWFsRm9udCA9IG5zRm9udCgpOwot
I2VuZGlmCi0gICAgaWYgKGZvbnQoKSkKLSAgICAgICAgc2V0TlNGb250KFtbTlNGb250TWFuYWdl
ciBzaGFyZWRGb250TWFuYWdlcl0gY29udmVydEZvbnQ6bnNGb250KCkgdG9GYW1pbHk6ZmFsbGJh
Y2tGb250RmFtaWx5XSk7Ci0gICAgZWxzZQotICAgICAgICBzZXROU0ZvbnQoW05TRm9udCBmb250
V2l0aE5hbWU6ZmFsbGJhY2tGb250RmFtaWx5IHNpemU6c2l6ZSgpXSk7Ci0KLSAgICBpZiAoY2dG
b250KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChbZmFsbGJhY2tGb250RmFtaWx5IGlz
RXF1YWw6QCJUaW1lcyBOZXcgUm9tYW4iXSkgewotICAgICAgICAvLyBPSywgY291bGRuJ3Qgc2V0
dXAgVGltZXMgTmV3IFJvbWFuIGFzIGFuIGFsdGVybmF0ZSB0byBUaW1lcywgZmFsbGJhY2sKLSAg
ICAgICAgLy8gb24gdGhlIHN5c3RlbSBmb250LiBJZiB0aGlzIGZhaWxzIHdlIGhhdmUgbm8gYWx0
ZXJuYXRpdmUgbGVmdC4KLSAgICAgICAgc2V0TlNGb250KFtbTlNGb250TWFuYWdlciBzaGFyZWRG
b250TWFuYWdlcl0gY29udmVydEZvbnQ6bnNGb250KCkgdG9GYW1pbHk6d2ViRmFsbGJhY2tGb250
RmFtaWx5KCldKTsKLSAgICAgICAgaWYgKGNnRm9udCgpKQotICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgIC8vIFdlIHRyaWVkLCBUaW1lcywgVGltZXMgTmV3IFJvbWFuLCBhbmQgdGhlIHN5
c3RlbSBmb250LiBObyBqb3kuIFdlIGhhdmUgdG8gZ2l2ZSB1cC4KLSAgICAgICAgTE9HX0VSUk9S
KCJ1bmFibGUgdG8gaW5pdGlhbGl6ZSB3aXRoIGZvbnQgJUAiLCBpbml0aWFsRm9udC5nZXQoKSk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gV2UgdHJpZWQgdGhlIHJlcXVlc3RlZCBmb250IGFu
ZCB0aGUgc3lzdGVtIGZvbnQuIE5vIGpveS4gV2UgaGF2ZSB0byBnaXZlIHVwLgotICAgICAgICBM
T0dfRVJST1IoInVuYWJsZSB0byBpbml0aWFsaXplIHdpdGggZm9udCAlQCIsIGluaXRpYWxGb250
LmdldCgpKTsKLSAgICB9Ci0KLSAgICAvLyBSZXBvcnQgdGhlIHByb2JsZW0uCi0gICAgTE9HX0VS
Uk9SKCJDb3JydXB0IGZvbnQgZGV0ZWN0ZWQsIHVzaW5nICVAIGluIHBsYWNlIG9mICVALiIsIFtu
c0ZvbnQoKSBmYW1pbHlOYW1lXSwgW2luaXRpYWxGb250LmdldCgpIGZhbWlseU5hbWVdKTsKLQot
ICAgIC8vIElmIGFsbCBlbHNlIGZhaWxzLCB0cnkgdG8gc2V0IHVwIHVzaW5nIHRoZSBzeXN0ZW0g
Zm9udC4KLSAgICAvLyBUaGlzIGlzIHByb2JhYmx5IGJlY2F1c2UgVGltZXMgYW5kIFRpbWVzIE5l
dyBSb21hbiBhcmUgYm90aCB1bmF2YWlsYWJsZS4KLSAgICBBU1NFUlQoIWNnRm9udCgpKTsKLSAg
ICBzZXROU0ZvbnQoW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltuc0ZvbnQoKSBwb2ludFNpemVd
XSk7Ci0gICAgTE9HX0VSUk9SKCJmYWlsZWQgdG8gc2V0IHVwIGZvbnQsIHVzaW5nIHN5c3RlbSBm
b250ICVzIiwgZm9udCgpKTsKLX0KLQotI2Vsc2UKLQotdm9pZCBGb250UGxhdGZvcm1EYXRhOjpz
ZXRGYWxsYmFja0NHRm9udCgpCi17Ci19Ci0KLSNlbmRpZgotCiB2b2lkIEZvbnRQbGF0Zm9ybURh
dGE6OnBsYXRmb3JtRGF0YUluaXQoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgZikKIHsKICAgICBt
X2ZvbnQgPSBmLm1fZm9udDsKQEAgLTE3OSwyOCArMTA4LDYgQEAgQ1RGb250UmVmIEZvbnRQbGF0
Zm9ybURhdGE6OnJlZ2lzdGVyZWRGb250KCkgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IAotdm9pZCBGb250UGxhdGZvcm1EYXRhOjpzZXRGb250KENURm9udFJlZiBmb250KQotewotICAg
IEFTU0VSVF9BUkcoZm9udCwgZm9udCk7Ci0KLSAgICBpZiAobV9mb250ID09IGZvbnQpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIG1fZm9udCA9IGZvbnQ7Ci0gICAgbV9zaXplID0gQ1RGb250R2V0
U2l6ZShmb250KTsKLSAgICBtX2NnRm9udCA9IGFkb3B0Q0YoQ1RGb250Q29weUdyYXBoaWNzRm9u
dChmb250LCBudWxscHRyKSk7Ci0KLSAgICBDVEZvbnRTeW1ib2xpY1RyYWl0cyB0cmFpdHMgPSBD
VEZvbnRHZXRTeW1ib2xpY1RyYWl0cyhtX2ZvbnQuZ2V0KCkpOwotICAgIG1faXNDb2xvckJpdG1h
cEZvbnQgPSB0cmFpdHMgJiBrQ1RGb250VHJhaXRDb2xvckdseXBoczsKLSAgICBtX2lzU3lzdGVt
Rm9udCA9IENURm9udERlc2NyaXB0b3JJc1N5c3RlbVVJRm9udChhZG9wdENGKENURm9udENvcHlG
b250RGVzY3JpcHRvcihtX2ZvbnQuZ2V0KCkpKS5nZXQoKSk7Ci0KLSNpZiBQTEFURk9STShJT1Mp
Ci0gICAgbV9pc0Vtb2ppID0gQ1RGb250SXNBcHBsZUNvbG9yRW1vamkobV9mb250LmdldCgpKTsK
LSNlbmRpZgotICAgIAotICAgIG1fY3RGb250ID0gbnVsbHB0cjsKLX0KLQogaW5saW5lIGludCBt
YXBGb250V2lkdGhWYXJpYW50VG9DVEZlYXR1cmVTZWxlY3RvcihGb250V2lkdGhWYXJpYW50IHZh
cmlhbnQpCiB7CiAgICAgc3dpdGNoKHZhcmlhbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRy
b2xsZXJDb3JlVGV4dC5tbQppbmRleCBiYTE5NDk0MDdkZDQ0ZmU0ZTA0ZDkzNDI4NWM0NDk3NjZh
NmFjOWVmLi44YTliZWZkMTFiOTVlMTcwZGFiZjkyNGYwZjJhOTUyZGRkYzY5MTFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250
cm9sbGVyQ29yZVRleHQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCkBAIC0yNjIsNyArMjYyLDcgQEAg
dm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OmNvbGxlY3RDb21wbGV4VGV4dFJ1bnNGb3JDaGFy
YWN0ZXJzKGNvbnN0IFVDaGFyKiBjcCwKICAgICAgICAgaWYgKGlzU3lzdGVtRmFsbGJhY2spIHsK
ICAgICAgICAgICAgIENGRGljdGlvbmFyeVJlZiBydW5BdHRyaWJ1dGVzID0gQ1RSdW5HZXRBdHRy
aWJ1dGVzKGN0UnVuKTsKICAgICAgICAgICAgIENURm9udFJlZiBydW5DVEZvbnQgPSBzdGF0aWNf
Y2FzdDxDVEZvbnRSZWY+KENGRGljdGlvbmFyeUdldFZhbHVlKHJ1bkF0dHJpYnV0ZXMsIGtDVEZv
bnRBdHRyaWJ1dGVOYW1lKSk7Ci0gICAgICAgICAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQocnVuQ1RG
b250KSA9PSBDVEZvbnRHZXRUeXBlSUQoKSk7CisgICAgICAgICAgICBBU1NFUlQocnVuQ1RGb250
ICYmIENGR2V0VHlwZUlEKHJ1bkNURm9udCkgPT0gQ1RGb250R2V0VHlwZUlEKCkpOwogICAgICAg
ICAgICAgUmV0YWluUHRyPENGVHlwZVJlZj4gcnVuRm9udEVxdWFsaXR5T2JqZWN0ID0gRm9udFBs
YXRmb3JtRGF0YTo6b2JqZWN0Rm9yRXF1YWxpdHlDaGVjayhydW5DVEZvbnQpOwogICAgICAgICAg
ICAgaWYgKCFzYWZlQ0ZFcXVhbChydW5Gb250RXF1YWxpdHlPYmplY3QuZ2V0KCksIGZvbnQtPnBs
YXRmb3JtRGF0YSgpLm9iamVjdEZvckVxdWFsaXR5Q2hlY2soKS5nZXQoKSkpIHsKICAgICAgICAg
ICAgICAgICAvLyBCZWdpbiB0cnlpbmcgdG8gc2VlIGlmIHJ1bkZvbnQgbWF0Y2hlcyBhbnkgb2Yg
dGhlIGZvbnRzIGluIHRoZSBmYWxsYmFjayBsaXN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwCmluZGV4IGRjMzlhZjQ1YjJmYmFjZDlmNDQ3MmE2ZDExNGU0ZjcxYmJjMzA4MjQuLjEwZWJl
MDNjMGVlNTIzMGY3ZDY1ZDRkZDQ2OTg1NDE5M2M2N2FiNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAgRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYKICAg
ICBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCA9IGZvbnREZXNjcmlwdGlvbi53aWR0aFZh
cmlhbnQoKTsKICAgICBSZXRhaW5QdHI8Q1RGb250UmVmPiBmb250ID0gYWRvcHRDRihDVEZvbnRD
cmVhdGVXaXRoRm9udERlc2NyaXB0b3IobV9mb250RGVzY3JpcHRvci5nZXQoKSwgc2l6ZSwgbnVs
bHB0cikpOwogICAgIGZvbnQgPSBwcmVwYXJlUGxhdGZvcm1Gb250KGZvbnQuZ2V0KCksIGZvbnRE
ZXNjcmlwdGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgpLCAmZm9udEZhY2VGZWF0dXJlcywgJmZvbnRG
YWNlVmFyaWFudFNldHRpbmdzLCBmb250RGVzY3JpcHRpb24uZmVhdHVyZVNldHRpbmdzKCksIGZv
bnREZXNjcmlwdGlvbi52YXJpYW50U2V0dGluZ3MoKSk7CisgICAgQVNTRVJUKGZvbnQpOwogICAg
IHJldHVybiBGb250UGxhdGZvcm1EYXRhKGZvbnQuZ2V0KCksIHNpemUsIGJvbGQsIGl0YWxpYywg
b3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdN
b2RlKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vRm9udFBsYXRmb3JtRGF0YUNHV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ0dXaW4uY3BwCmluZGV4IDkxOTY4NmNhNDg3
MjFmYmMxYzM0NGUxNTJhODdmN2RjMTJhYzhlMGMuLjA3MDZlODAzOTU1OGVkM2IyZWVkYzQ5ODQx
MmZkMTRjZjE1YTUyN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ0dXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ0dXaW4uY3BwCkBAIC0xNTcsOCAr
MTU3LDQgQEAgYm9vbCBGb250UGxhdGZvcm1EYXRhOjpwbGF0Zm9ybUlzRXF1YWwoY29uc3QgRm9u
dFBsYXRmb3JtRGF0YSYgb3RoZXIpIGNvbnN0CiAgICAgICAgICYmIG1fdXNlR0RJID09IG90aGVy
Lm1fdXNlR0RJOwogfQogCi12b2lkIEZvbnRQbGF0Zm9ybURhdGE6OnNldEZhbGxiYWNrQ0dGb250
KCkKLXsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Ry
YWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMu
bW0KaW5kZXggOTFjOTJlOTEyY2MyMTg5MmY2NTllNjdhOTU5NTcxZmJkZDAwMjdiOC4uNzY5N2M3
YjQzNWM3YTZhYzJiYjcxZTJlYjQzNTg0ZmJkYTg5Y2JjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCkBAIC0xNjYsNiArMTY2LDcgQEAgY29uc3QgZmxv
YXQgRHJhZ0xpbmtVcmxGb250U2l6ZSA9IDEwOwogICAgIAogc3RhdGljIEZvbnRDYXNjYWRlJiBm
b250RnJvbU5TRm9udChOU0ZvbnQgKmZvbnQpCiB7CisgICAgQVNTRVJUKGZvbnQpOwogICAgIHN0
YXRpYyBOU0ZvbnQgKmN1cnJlbnRGb250OwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGb250
Q2FzY2FkZT4gY3VycmVudFJlbmRlcmVyOwogICAgIApAQCAtMTkyLDYgKzE5Myw5IEBAIHN0YXRp
YyBib29sIGNhblVzZUZhc3RSZW5kZXJlcihjb25zdCBVbmlDaGFyKiBidWZmZXIsIHVuc2lnbmVk
IGxlbmd0aCkKICAgICAKIHN0YXRpYyBmbG9hdCB3aWR0aFdpdGhGb250KE5TU3RyaW5nICpzdHJp
bmcsIE5TRm9udCAqZm9udCkKIHsKKyAgICBpZiAoIWZvbnQpCisgICAgICAgIHJldHVybiAwOwor
CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gW3N0cmluZyBsZW5ndGhdOwogICAgIFZlY3RvcjxVbmlD
aGFyLCAyMDQ4PiBidWZmZXIobGVuZ3RoKTsKICAgICAKQEAgLTIwOCw2ICsyMTIsOSBAQCBzdGF0
aWMgZmxvYXQgd2lkdGhXaXRoRm9udChOU1N0cmluZyAqc3RyaW5nLCBOU0ZvbnQgKmZvbnQpCiAg
ICAgCiBzdGF0aWMgdm9pZCBkcmF3QXRQb2ludChOU1N0cmluZyAqc3RyaW5nLCBOU1BvaW50IHBv
aW50LCBOU0ZvbnQgKmZvbnQsIE5TQ29sb3IgKnRleHRDb2xvcikKIHsKKyAgICBpZiAoIWZvbnQp
CisgICAgICAgIHJldHVybjsKKwogICAgIHVuc2lnbmVkIGxlbmd0aCA9IFtzdHJpbmcgbGVuZ3Ro
XTsKICAgICBWZWN0b3I8VW5pQ2hhciwgMjA0OD4gYnVmZmVyKGxlbmd0aCk7CiAgICAgCkBAIC0y
MjgsNyArMjM1LDcgQEAgc3RhdGljIHZvaWQgZHJhd0F0UG9pbnQoTlNTdHJpbmcgKnN0cmluZywg
TlNQb2ludCBwb2ludCwgTlNGb250ICpmb250LCBOU0NvbG9yICoKICAgICAgICAgQk9PTCBmbGlw
cGVkID0gW25zQ29udGV4dCBpc0ZsaXBwZWRdOwogICAgICAgICBpZiAoIWZsaXBwZWQpCiAgICAg
ICAgICAgICBDR0NvbnRleHRTY2FsZUNUTShjZ0NvbnRleHQsIDEsIC0xKTsKLSAgICAgICAgICAg
IAorCiAgICAgICAgIEZvbnRDYXNjYWRlIHdlYkNvcmVGb250KEZvbnRQbGF0Zm9ybURhdGEodG9D
VEZvbnQoZm9udCksIFtmb250IHBvaW50U2l6ZV0pLCBBbnRpYWxpYXNlZCk7CiAgICAgICAgIFRl
eHRSdW4gcnVuKFN0cmluZ1ZpZXcoYnVmZmVyLmRhdGEoKSwgbGVuZ3RoKSk7CiAKQEAgLTI4MSw2
ICsyODgsMTAgQEAgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoVVJMJiB1cmws
IGNvbnN0IFN0cmluZyYgdGl0bGUsIEZvbnRSZW5kZXJpbmcKICAgICBOU0ZvbnQgKmxhYmVsRm9u
dCA9IFtbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl0gY29udmVydEZvbnQ6W05TRm9u
dCBzeXN0ZW1Gb250T2ZTaXplOkRyYWdMaW5rTGFiZWxGb250c2l6ZV0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9IYXZlVHJhaXQ6
TlNCb2xkRm9udE1hc2tdOwogICAgIE5TRm9udCAqdXJsRm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9u
dE9mU2l6ZTpEcmFnTGlua1VybEZvbnRTaXplXTsKKworICAgIEFTU0VSVChsYWJlbEZvbnQpOwor
ICAgIEFTU0VSVCh1cmxGb250KTsKKwogICAgIE5TU2l6ZSBsYWJlbFNpemU7CiAgICAgbGFiZWxT
aXplLndpZHRoID0gd2lkdGhXaXRoRm9udChsYWJlbCwgbGFiZWxGb250KTsKICAgICBsYWJlbFNp
emUuaGVpZ2h0ID0gW2xhYmVsRm9udCBhc2NlbmRlcl0gLSBbbGFiZWxGb250IGRlc2NlbmRlcl07
CkBAIC0zMjIsMTYgKzMzMywxOCBAQCBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRm9yTGlu
ayhVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgRm9udFJlbmRlcmluZwogCiAgICAgTlND
b2xvciAqdG9wQ29sb3IgPSBbTlNDb2xvciBjb2xvcldpdGhEZXZpY2VXaGl0ZTowLjBmIGFscGhh
OjAuNzVmXTsKICAgICBOU0NvbG9yICpib3R0b21Db2xvciA9IFtOU0NvbG9yIGNvbG9yV2l0aERl
dmljZVdoaXRlOjEuMGYgYWxwaGE6MC41Zl07Ci0gICAgaWYgKGRyYXdVUkxTdHJpbmcpIHsKKyAg
ICBpZiAoZHJhd1VSTFN0cmluZyAmJiB1cmxGb250KSB7CiAgICAgICAgIGlmIChjbGlwVVJMU3Ry
aW5nKQogICAgICAgICAgICAgdXJsU3RyaW5nID0gU3RyaW5nVHJ1bmNhdG9yOjpjZW50ZXJUcnVu
Y2F0ZSh1cmxTdHJpbmcsIGltYWdlU2l6ZS53aWR0aCAtIChEcmFnTGFiZWxCb3JkZXJYICogMiks
IGZvbnRGcm9tTlNGb250KHVybEZvbnQpKTsKIAogICAgICAgIGRyYXdEb3VibGVkQXRQb2ludCh1
cmxTdHJpbmcsIE5TTWFrZVBvaW50KERyYWdMYWJlbEJvcmRlclgsIERyYWdMYWJlbEJvcmRlclkg
LSBbdXJsRm9udCBkZXNjZW5kZXJdKSwgdG9wQ29sb3IsIGJvdHRvbUNvbG9yLCB1cmxGb250KTsK
ICAgICB9CiAKLSAgICBpZiAoY2xpcExhYmVsU3RyaW5nKQotICAgICAgICBsYWJlbCA9IFN0cmlu
Z1RydW5jYXRvcjo6cmlnaHRUcnVuY2F0ZShsYWJlbCwgaW1hZ2VTaXplLndpZHRoIC0gKERyYWdM
YWJlbEJvcmRlclggKiAyKSwgZm9udEZyb21OU0ZvbnQobGFiZWxGb250KSk7Ci0gICAgZHJhd0Rv
dWJsZWRBdFBvaW50KGxhYmVsLCBOU01ha2VQb2ludChEcmFnTGFiZWxCb3JkZXJYLCBpbWFnZVNp
emUuaGVpZ2h0IC0gTGFiZWxCb3JkZXJZT2Zmc2V0IC0gW2xhYmVsRm9udCBwb2ludFNpemVdKSwg
dG9wQ29sb3IsIGJvdHRvbUNvbG9yLCBsYWJlbEZvbnQpOworICAgIGlmIChsYWJlbEZvbnQpIHsK
KyAgICAgICAgaWYgKGNsaXBMYWJlbFN0cmluZykKKyAgICAgICAgICAgIGxhYmVsID0gU3RyaW5n
VHJ1bmNhdG9yOjpyaWdodFRydW5jYXRlKGxhYmVsLCBpbWFnZVNpemUud2lkdGggLSAoRHJhZ0xh
YmVsQm9yZGVyWCAqIDIpLCBmb250RnJvbU5TRm9udChsYWJlbEZvbnQpKTsKKyAgICAgICAgZHJh
d0RvdWJsZWRBdFBvaW50KGxhYmVsLCBOU01ha2VQb2ludChEcmFnTGFiZWxCb3JkZXJYLCBpbWFn
ZVNpemUuaGVpZ2h0IC0gTGFiZWxCb3JkZXJZT2Zmc2V0IC0gW2xhYmVsRm9udCBwb2ludFNpemVd
KSwgdG9wQ29sb3IsIGJvdHRvbUNvbG9yLCBsYWJlbEZvbnQpOworICAgIH0KIAogICAgIFtkcmFn
SW1hZ2UgdW5sb2NrRm9jdXNdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNj
L1dlYktpdE5TU3RyaW5nRXh0cmFzLm1tIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJLaXRO
U1N0cmluZ0V4dHJhcy5tbQppbmRleCA2MmQyZmIxMzFkZjcwMjg1Mzg4Mzk1Y2MwMWI1ZjMxMzA3
YWM5Yzg2Li5iOWE4NGU2NjQyMGJkNmNmNTFjMjg0ZjIyOTc3MTJhMTcwZTg2MGE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYktpdE5TU3RyaW5nRXh0cmFzLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViS2l0TlNTdHJpbmdFeHRyYXMubW0KQEAgLTcxLDYg
KzcxLDkgQEAgLSAodm9pZClfd2ViX2RyYXdBdFBvaW50OihOU1BvaW50KXBvaW50IGZvbnQ6KE5T
Rm9udCAqKWZvbnQgdGV4dENvbG9yOihOU0NvbG9yICoKIAogLSAodm9pZClfd2ViX2RyYXdBdFBv
aW50OihOU1BvaW50KXBvaW50IGZvbnQ6KE5TRm9udCAqKWZvbnQgdGV4dENvbG9yOihOU0NvbG9y
ICopdGV4dENvbG9yIGFsbG93aW5nRm9udFNtb290aGluZzooQk9PTClmb250U21vb3RoaW5nSXNB
bGxvd2VkCiB7CisgICAgaWYgKCFmb250KQorICAgICAgICByZXR1cm47CisKICAgICB1bnNpZ25l
ZCBsZW5ndGggPSBbc2VsZiBsZW5ndGhdOwogICAgIFZlY3RvcjxVbmlDaGFyLCAyMDQ4PiBidWZm
ZXIobGVuZ3RoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJTdHJp
bmdUcnVuY2F0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYlN0cmluZ1RydW5jYXRv
ci5tbQppbmRleCBjNmFiMTU0MDdhYzA3NGY4MWQwYTllMTkyYjMxNzIwZTUxZDhiMjU5Li41OTYz
YzUzOTgwOWUzNWRiY2U1MTlhMDk4MjlkYzczOWMyYTFiNmY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9NaXNjL1dlYlN0cmluZ1RydW5jYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9NaXNjL1dlYlN0cmluZ1RydW5jYXRvci5tbQpAQCAtNTksMjEgKzU5LDM1IEBAICsgKHZv
aWQpaW5pdGlhbGl6ZQogKyAoTlNTdHJpbmcgKiljZW50ZXJUcnVuY2F0ZVN0cmluZzooTlNTdHJp
bmcgKilzdHJpbmcgdG9XaWR0aDooZmxvYXQpbWF4V2lkdGgKIHsKICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8UmV0YWluUHRyPE5TRm9udD4+IG1lbnVGb250ID0gW05TRm9udCBtZW51Rm9udE9m
U2l6ZTowXTsKKworICAgIEFTU0VSVChtZW51Rm9udC5nZXQoKSk7CisgICAgaWYgKCFtZW51Rm9u
dC5nZXQoKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKwogICAgIHJldHVybiBXZWJDb3JlOjpTdHJp
bmdUcnVuY2F0b3I6OmNlbnRlclRydW5jYXRlKHN0cmluZywgbWF4V2lkdGgsIGZvbnRGcm9tTlNG
b250KG1lbnVGb250LmdldCgpLmdldCgpKSk7CiB9CiAKICsgKE5TU3RyaW5nICopY2VudGVyVHJ1
bmNhdGVTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHRvV2lkdGg6KGZsb2F0KW1heFdpZHRoIHdp
dGhGb250OihOU0ZvbnQgKilmb250CiB7CisgICAgaWYgKCFmb250KQorICAgICAgICByZXR1cm4g
bmlsOworCiAgICAgcmV0dXJuIFdlYkNvcmU6OlN0cmluZ1RydW5jYXRvcjo6Y2VudGVyVHJ1bmNh
dGUoc3RyaW5nLCBtYXhXaWR0aCwgZm9udEZyb21OU0ZvbnQoZm9udCkpOwogfQogCiArIChOU1N0
cmluZyAqKXJpZ2h0VHJ1bmNhdGVTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHRvV2lkdGg6KGZs
b2F0KW1heFdpZHRoIHdpdGhGb250OihOU0ZvbnQgKilmb250CiB7CisgICAgaWYgKCFmb250KQor
ICAgICAgICByZXR1cm4gbmlsOworCiAgICAgcmV0dXJuIFdlYkNvcmU6OlN0cmluZ1RydW5jYXRv
cjo6cmlnaHRUcnVuY2F0ZShzdHJpbmcsIG1heFdpZHRoLCBmb250RnJvbU5TRm9udChmb250KSk7
CiB9CiAKICsgKGZsb2F0KXdpZHRoT2ZTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIGZvbnQ6KE5T
Rm9udCAqKWZvbnQKIHsKKyAgICBpZiAoIWZvbnQpCisgICAgICAgIHJldHVybiAwOworCiAgICAg
cmV0dXJuIFdlYkNvcmU6OlN0cmluZ1RydW5jYXRvcjo6d2lkdGgoc3RyaW5nLCBmb250RnJvbU5T
Rm9udChmb250KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCAzZjA3NjZkMTdmMzMyMmVhYjgwMDg0Y2VkNGM1OWVjZTZlMTYzY2Y3Li5h
NjdiN2RjYTdiMTJjYTA1MTE3NTgxYTY2NDYzNjgyYzYwZWZiZTU0IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTYt
MDQtMjUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAg
ICBbQ29jb2FdIEd1YXJhbnRlZSBGb250UGxhdGZvcm1EYXRhJ3MgbV9jZ0ZvbnQgaXMgbmV2ZXIg
bnVsbHB0cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU2OTI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TdHJpbmdUcnVuY2F0b3IubW06CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNi0wNC0yNSAgQ2FpdGxpbiBQb3R0ZXIgIDxjYWl0cEBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtUb29sc10gd2hpdGVsaXN0IGFsbC11cHBlcmNhc2UgSlNU
b2tlblR5cGUgZW51bSBpbiBKYXZhU2NyaXB0Q29yZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvU3RyaW5nVHJ1bmNhdG9yLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvU3RyaW5nVHJ1bmNhdG9yLm1tCmluZGV4IDRjMGI2ODJjNjg5MmQ5NWI4ZDA2
MTRhOGU1ZWE5NGVmOWExZjIxMTkuLjM1NGQxZGRmYTljYTM4NmE1M2Y3Zjk4NmI2MGZkZmJlYjIw
NmRiYTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1N0cmluZ1Ry
dW5jYXRvci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TdHJpbmdUcnVu
Y2F0b3IubW0KQEAgLTMzLDE1ICszMywxOCBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiBU
RVNUKFdlYktpdDEsIFN0cmluZ1RydW5jYXRvcikKIHsKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsK
KyAgICAgICAgRVhQRUNUX0VRKG5pbCwgW1dlYlN0cmluZ1RydW5jYXRvciBjZW50ZXJUcnVuY2F0
ZVN0cmluZzpAImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiB0b1dpZHRoOjEwMCB3aXRoRm9u
dDpuaWxdKTsKICAgICAgICAgRVhQRUNUX1NUUkVRKFtbV2ViU3RyaW5nVHJ1bmNhdG9yIGNlbnRl
clRydW5jYXRlU3RyaW5nOkAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiIHRvV2lkdGg6MTAw
IHdpdGhGb250OltOU0ZvbnQgZm9udFdpdGhOYW1lOkAiSGVsdmV0aWNhIiBzaXplOjEyXV0gVVRG
OFN0cmluZ10sICJhYmNkZWZn4oCmdHV2d3h5eiIpOwogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPiAxMDEwMDAKICAgICAgICAgRVhQRUNUX1NUUkVRKFtbV2ViU3RyaW5nVHJ1
bmNhdG9yIGNlbnRlclRydW5jYXRlU3RyaW5nOkAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi
IHRvV2lkdGg6MTAwXSBVVEY4U3RyaW5nXSwgImFiY2RlZuKApnV2d3h5eiIpOwogI2Vsc2UKICAg
ICAgICAgRVhQRUNUX1NUUkVRKFtbV2ViU3RyaW5nVHJ1bmNhdG9yIGNlbnRlclRydW5jYXRlU3Ry
aW5nOkAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiIHRvV2lkdGg6MTAwXSBVVEY4U3RyaW5n
XSwgImFiY2RlZuKApnZ3eHl6Iik7CiAjZW5kaWYKKyAgICAgICAgRVhQRUNUX0VRKG5pbCwgW1dl
YlN0cmluZ1RydW5jYXRvciByaWdodFRydW5jYXRlU3RyaW5nOkAiYWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXoiIHRvV2lkdGg6MTAwIHdpdGhGb250Om5pbF0pOwogICAgICAgICBFWFBFQ1RfU1RS
RVEoW1tXZWJTdHJpbmdUcnVuY2F0b3IgcmlnaHRUcnVuY2F0ZVN0cmluZzpAImFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6IiB0b1dpZHRoOjEwMCB3aXRoRm9udDpbTlNGb250IGZvbnRXaXRoTmFt
ZTpAIkhlbHZldGljYSIgc2l6ZToxMl1dIFVURjhTdHJpbmddLCAiYWJjZGVmZ2hpamtsbW5v4oCm
Iik7CiAgICAgICAgIEVYUEVDVF9TVFJFUShbW1dlYlN0cmluZ1RydW5jYXRvciBjZW50ZXJUcnVu
Y2F0ZVN0cmluZzpAIsSBYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIgdG9XaWR0aDoxMDAgd2l0
aEZvbnQ6W05TRm9udCBmb250V2l0aE5hbWU6QCJIZWx2ZXRpY2EiIHNpemU6MTJdXSBVVEY4U3Ry
aW5nXSwgIsSBYmNkZWZn4oCmdHV2d3h5eiIpOwogICAgICAgICBFWFBFQ1RfU1RSRVEoW1tXZWJT
dHJpbmdUcnVuY2F0b3IgcmlnaHRUcnVuY2F0ZVN0cmluZzpAIsSBYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiIgdG9XaWR0aDoxMDAgd2l0aEZvbnQ6W05TRm9udCBmb250V2l0aE5hbWU6QCJIZWx2
ZXRpY2EiIHNpemU6MTJdXSBVVEY4U3RyaW5nXSwgIsSBYmNkZWZnaGlqa2xtbm/igKYiKTsKKyAg
ICAgICAgRVhQRUNUX0VRKFtXZWJTdHJpbmdUcnVuY2F0b3Igd2lkdGhPZlN0cmluZzpAImFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiBmb250Om5pbF0sIDApOwogICAgICAgICBFWFBFQ1RfRVEo
W1dlYlN0cmluZ1RydW5jYXRvciB3aWR0aE9mU3RyaW5nOkAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXoiIGZvbnQ6W05TRm9udCBmb250V2l0aE5hbWU6QCJIZWx2ZXRpY2EiIHNpemU6MTJdXSwg
MTUyLjczNjMyODEyNSk7CiAgICAgICAgIEVYUEVDVF9FUShbV2ViU3RyaW5nVHJ1bmNhdG9yIHdp
ZHRoT2ZTdHJpbmc6QCLEgWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiIGZvbnQ6W05TRm9udCBm
b250V2l0aE5hbWU6QCJIZWx2ZXRpY2EiIHNpemU6MTJdXSwgMTUyLjczNjMyODEyNSk7CiAgICAg
fQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>