<?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>140820</bug_id>
          
          <creation_ts>2015-01-23 00:43:28 -0800</creation_ts>
          <short_desc>Hang CSSFontSelector off Document instead of StyleResolver.</short_desc>
          <delta_ts>2015-01-23 10:44:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1063632</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-01-23 00:43:28 -0800</bug_when>
    <thetext>Move the CSSFontSelector from StyleResolver to Document. This is the first step
towards making the CSSFontSelector be able to survive full style recalculations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063638</commentid>
    <comment_count>1</comment_count>
      <attachid>245216</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-01-23 01:02:36 -0800</bug_when>
    <thetext>Created attachment 245216
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063639</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-23 01:05:29 -0800</bug_when>
    <thetext>Attachment 245216 did not pass style-queue:


ERROR: Source/WebCore/dom/Document.cpp:45:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 16 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>1063699</commentid>
    <comment_count>3</comment_count>
      <attachid>245216</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-01-23 09:30:52 -0800</bug_when>
    <thetext>Comment on attachment 245216
Patch

I suspect you could remove StyleResolver.h include from some of these places too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063706</commentid>
    <comment_count>4</comment_count>
      <attachid>245234</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-01-23 09:59:20 -0800</bug_when>
    <thetext>Created attachment 245234
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063722</commentid>
    <comment_count>5</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-01-23 10:44:33 -0800</bug_when>
    <thetext>Committed r179012: &lt;http://trac.webkit.org/changeset/179012&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245216</attachid>
            <date>2015-01-23 01:02:36 -0800</date>
            <delta_ts>2015-01-23 09:59:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140820.diff</filename>
            <type>text/plain</type>
            <size>23029</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4ZTFjMjdmLi4yZmQ0NjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAg
QEAKKzIwMTUtMDEtMjMgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIEhhbmcgQ1NTRm9udFNlbGVjdG9yIG9mZiBEb2N1bWVudCBpbnN0ZWFkIG9mIFN0eWxlUmVz
b2x2ZXIuCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNDA4MjA+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgQ1NTRm9udFNl
bGVjdG9yIGZyb20gU3R5bGVSZXNvbHZlciB0byBEb2N1bWVudC4gVGhpcyBpcyB0aGUgZmlyc3QK
KyAgICAgICAgc3RlcCB0b3dhcmRzIG1ha2luZyB0aGUgQ1NTRm9udFNlbGVjdG9yIGJlIGFibGUg
dG8gc3Vydml2ZSBmdWxsIHN0eWxlIHJlY2FsYy4KKworICAgICAgICBDbGVhcmluZyBhIERvY3Vt
ZW50J3MgU3R5bGVSZXNvbHZlciB3aWxsIHN0aWxsIG51a2UgdGhlIENTU0ZvbnRTZWxlY3RvciwK
KyAgICAgICAgdGhvdWdoIHRoYXQgaXMgZG9uZSBpbiBEb2N1bWVudDo6Y2xlYXJTdHlsZVJlc29s
dmVyKCkgbm93LgorCisgICAgICAgICogY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NGb250U2VsZWN0b3I6OkNTU0ZvbnRTZWxlY3Rvcik6CisgICAgICAgICog
Y3NzL0NTU0ZvbnRTZWxlY3Rvci5oOgorCisgICAgICAgICAgICBNb2Rlcm5pemUgQ1NTRm9udFNl
bGVjdG9yIGNvbnN0cnVjdGlvbiBhIGJpdCBieSBoYXZpbmcgY3JlYXRlKCkgcmV0dXJuCisgICAg
ICAgICAgICBhIFJlZiBhbmQgdGhlIGNvbnN0cnVjdG9yIHRha2UgYSBEb2N1bWVudCYgaW5zdGVh
ZCBvZiBhIERvY3VtZW50Ki4KKyAgICAgICAgICAgIEFsc28gbWFkZSB0aGUgY29uc3RydWN0b3Ig
ZXhwbGljaXQuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6On5TdHlsZVJlc29s
dmVyKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmNsZWFyU3R5bGVSZXNvbHZlcik6CisKKyAgICAgICAgICAgIE51a2UgdGhlIGN1cnJl
bnQgQ1NTRm9udFNlbGVjdG9yIGluIGNsZWFyU3R5bGVSZXNvbHZlcigpIGluc3RlYWQgb2YKKyAg
ICAgICAgICAgIGluIH5TdHlsZVJlc29sdmVyLiBJdCdzIGEgbWlub3IgY2hhbmdlLCBidXQgc2hv
d3MgdGhlIHdheSBmb3J3YXJkLgorICAgICAgICAgICAgQWRkZWQgYSBGSVhNRSBhYm91dCBob3cg
Q1NTRm9udFNlbGVjdG9yIHNob3VsZCBldmVudHVhbGx5IHN1cnZpdmUKKyAgICAgICAgICAgIHRo
aXMgb3BlcmF0aW9uLgorCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Zm9udFNlbGVjdG9y
KToKKyAgICAgICAgKiBjc3MvRm9udExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250
TG9hZGVyOjpsb2FkRm9udCk6CisgICAgICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjpjaGVja0Zv
bnQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6cmVzb2x2ZUZvbnRTdHlsZSk6Cisg
ICAgICAgICogY3NzL1J1bGVTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UnVsZVNldDo6YWRk
Q2hpbGRSdWxlcyk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmZvbnRTZWxlY3Rvcik6IERlbGV0ZWQuCisgICAgICAgICog
Y3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6
U3R5bGVSZXNvbHZlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphcHBlbmRB
dXRob3JTdHlsZVNoZWV0cyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpzdHls
ZUZvckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6ZGVmYXVsdFN0
eWxlRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjp1cGRhdGVG
b250KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpzZXRGb250KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlz
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojp1cGRhdGVGcm9tRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpwYWludEl0ZW1Gb3JlZ3Jv
dW5kKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAo
UmVuZGVyTWVudUxpc3Q6OmZvbnRTZWxlY3Rvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clNlYXJjaEZpZWxkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNlYXJjaEZpZWxkOjpm
b250U2VsZWN0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b1NpemluZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b1NpemluZ1ZhbHVlOjphZGp1c3ROb2RlU2l6ZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9TaXppbmdWYWx1ZTo6cmVzZXQpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTVkdJbmxpbmVUZXh0Ojpjb21wdXRlTmV3U2NhbGVkRm9udEZvclN0eWxlKToKKyAg
ICAgICAgKiBzdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZTo6cmVzb2x2ZUZvckRvY3VtZW50KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVJl
c29sdmVUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpyZXNvbHZlVHJlZSk6CisK
KyAgICAgICAgICAgIE1vdmUgQ1NTRm9udFNlbGVjdG9yIG93bmVyc2hpcCBmcm9tIFN0eWxlUmVz
b2x2ZXIgdG8gRG9jdW1lbnQuCisKIDIwMTUtMDEtMjIgIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gTWVkaWEgY29udHJvbHMgZGlzYXBwZWFyIHdoZW4g
bG9hZGluZyBhIEhMUyBsaXZlIHN0cmVhbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9y
LmNwcAppbmRleCA3YmQ0ZGFkLi5kMjFiOGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udFNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNl
bGVjdG9yLmNwcApAQCAtNTgsMTIgKzU4LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3Rh
dGljIHVuc2lnbmVkIGZvbnRTZWxlY3RvcklkOwogCi1DU1NGb250U2VsZWN0b3I6OkNTU0ZvbnRT
ZWxlY3RvcihEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQor
Q1NTRm9udFNlbGVjdG9yOjpDU1NGb250U2VsZWN0b3IoRG9jdW1lbnQmIGRvY3VtZW50KQorICAg
IDogbV9kb2N1bWVudCgmZG9jdW1lbnQpCiAgICAgLCBtX2JlZ2luTG9hZGluZ1RpbWVyKCp0aGlz
LCAmQ1NTRm9udFNlbGVjdG9yOjpiZWdpbkxvYWRUaW1lckZpcmVkKQogICAgICwgbV91bmlxdWVJ
ZCgrK2ZvbnRTZWxlY3RvcklkKQogICAgICwgbV92ZXJzaW9uKDApCi0gICAgCiB7CiAgICAgLy8g
RklYTUU6IEFuIG9sZCBjb21tZW50IHVzZWQgdG8gc2F5IHRoZXJlIHdhcyBubyBuZWVkIHRvIGhv
bGQgYSByZWZlcmVuY2UgdG8gbV9kb2N1bWVudAogICAgIC8vIGJlY2F1c2UgIndlIGFyZSBndWFy
YW50ZWVkIHRvIGJlIGRlc3Ryb3llZCBiZWZvcmUgdGhlIGRvY3VtZW50Ii4gQnV0IHRoZXJlIGRv
ZXMgbm90CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgKaW5kZXggZDg0ZDExMi4uNzU2
M2FiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuaApAQCAtNDksOSArNDksOSBA
QCBjbGFzcyBTdHlsZVJ1bGVGb250RmFjZTsKIAogY2xhc3MgQ1NTRm9udFNlbGVjdG9yIGZpbmFs
IDogcHVibGljIEZvbnRTZWxlY3RvciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
Q1NTRm9udFNlbGVjdG9yPiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIHN0YXRpYyBS
ZWY8Q1NTRm9udFNlbGVjdG9yPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NGb250U2VsZWN0b3IoZG9jdW1lbnQpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTRm9udFNlbGVjdG9yKGRvY3VtZW50KSk7CiAg
ICAgfQogICAgIHZpcnR1YWwgfkNTU0ZvbnRTZWxlY3RvcigpOwogICAgIApAQCAtODIsNyArODIs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBiZWdpbkxvYWRpbmdGb250U29vbihDYWNoZWRGb250Kik7
CiAKIHByaXZhdGU6Ci0gICAgQ1NTRm9udFNlbGVjdG9yKERvY3VtZW50Kik7CisgICAgZXhwbGlj
aXQgQ1NTRm9udFNlbGVjdG9yKERvY3VtZW50Jik7CiAKICAgICB2b2lkIGRpc3BhdGNoSW52YWxp
ZGF0aW9uQ2FsbGJhY2tzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNwcAppbmRleCBmMDA5
OTI0Li5mNDVmMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuY3BwCkBAIC0yNTIsNyArMjUy
LDcgQEAgdm9pZCBGb250TG9hZGVyOjpsb2FkRm9udChjb25zdCBEaWN0aW9uYXJ5JiBwYXJhbXMp
CiAgICAgbV9udW1Mb2FkaW5nRnJvbUpTICs9IGNhbGxiYWNrLT5mYW1pbHlDb3VudCgpOwogCiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZvbnQuZmFtaWx5Q291bnQoKTsgaSsrKSB7Ci0g
ICAgICAgIENTU1NlZ21lbnRlZEZvbnRGYWNlKiBmYWNlID0gbV9kb2N1bWVudC0+ZW5zdXJlU3R5
bGVSZXNvbHZlcigpLmZvbnRTZWxlY3RvcigpLT5nZXRGb250RmFjZShmb250LmZvbnREZXNjcmlw
dGlvbigpLCBmb250LmZhbWlseUF0KGkpKTsKKyAgICAgICAgQ1NTU2VnbWVudGVkRm9udEZhY2Uq
IGZhY2UgPSBtX2RvY3VtZW50LT5mb250U2VsZWN0b3IoKS5nZXRGb250RmFjZShmb250LmZvbnRE
ZXNjcmlwdGlvbigpLCBmb250LmZhbWlseUF0KGkpKTsKICAgICAgICAgaWYgKCFmYWNlKSB7CiAg
ICAgICAgICAgICBpZiAoY2FsbGJhY2spCiAgICAgICAgICAgICAgICAgY2FsbGJhY2stPm5vdGlm
eUVycm9yKCk7CkBAIC0yNjksNyArMjY5LDcgQEAgYm9vbCBGb250TG9hZGVyOjpjaGVja0ZvbnQo
Y29uc3QgU3RyaW5nJiBmb250U3RyaW5nLCBjb25zdCBTdHJpbmcmKQogICAgIGlmICghcmVzb2x2
ZUZvbnRTdHlsZShmb250U3RyaW5nLCBmb250KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmb250LmZhbWlseUNvdW50KCk7IGkrKykgewotICAg
ICAgICBDU1NTZWdtZW50ZWRGb250RmFjZSogZmFjZSA9IG1fZG9jdW1lbnQtPmVuc3VyZVN0eWxl
UmVzb2x2ZXIoKS5mb250U2VsZWN0b3IoKS0+Z2V0Rm9udEZhY2UoZm9udC5mb250RGVzY3JpcHRp
b24oKSwgZm9udC5mYW1pbHlBdChpKSk7CisgICAgICAgIENTU1NlZ21lbnRlZEZvbnRGYWNlKiBm
YWNlID0gbV9kb2N1bWVudC0+Zm9udFNlbGVjdG9yKCkuZ2V0Rm9udEZhY2UoZm9udC5mb250RGVz
Y3JpcHRpb24oKSwgZm9udC5mYW1pbHlBdChpKSk7CiAgICAgICAgIGlmICghZmFjZSB8fCAhZmFj
ZS0+Y2hlY2tGb250KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMzIw
LDcgKzMyMCw3IEBAIGJvb2wgRm9udExvYWRlcjo6cmVzb2x2ZUZvbnRTdHlsZShjb25zdCBTdHJp
bmcmIGZvbnRTdHJpbmcsIEZvbnRDYXNjYWRlJiBmb250KQogICAgIGFwcGx5UHJvcGVydHlUb0N1
cnJlbnRTdHlsZShzdHlsZVJlc29sdmVyLCBDU1NQcm9wZXJ0eUxpbmVIZWlnaHQsIHBhcnNlZFN0
eWxlKTsKIAogICAgIGZvbnQgPSBzdHlsZS0+Zm9udENhc2NhZGUoKTsKLSAgICBmb250LnVwZGF0
ZShzdHlsZVJlc29sdmVyLmZvbnRTZWxlY3RvcigpKTsKKyAgICBmb250LnVwZGF0ZSgmbV9kb2N1
bWVudC0+Zm9udFNlbGVjdG9yKCkpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVs
ZVNldC5jcHAKaW5kZXggYmU3M2MyMS4uMTI2MTJjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcApA
QCAtMzMwLDcgKzMzMCw3IEBAIHZvaWQgUnVsZVNldDo6YWRkQ2hpbGRSdWxlcyhjb25zdCBWZWN0
b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+PiYgcnVsZXMsIGNvbnN0IE1lCiAgICAgICAgICAgICAg
ICAgYWRkQ2hpbGRSdWxlcyhtZWRpYVJ1bGUuY2hpbGRSdWxlcygpLCBtZWRpdW0sIHJlc29sdmVy
LCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCBhZGRSdWxlRmxhZ3MpOwogICAgICAgICB9IGVs
c2UgaWYgKGlzPFN0eWxlUnVsZUZvbnRGYWNlPigqcnVsZSkgJiYgcmVzb2x2ZXIpIHsKICAgICAg
ICAgICAgIC8vIEFkZCB0aGlzIGZvbnQgZmFjZSB0byBvdXIgc2V0LgotICAgICAgICAgICAgcmVz
b2x2ZXItPmZvbnRTZWxlY3RvcigpLT5hZGRGb250RmFjZVJ1bGUoZG93bmNhc3Q8U3R5bGVSdWxl
Rm9udEZhY2U+KHJ1bGUuZ2V0KCkpKTsKKyAgICAgICAgICAgIHJlc29sdmVyLT5kb2N1bWVudCgp
LmZvbnRTZWxlY3RvcigpLmFkZEZvbnRGYWNlUnVsZShkb3duY2FzdDxTdHlsZVJ1bGVGb250RmFj
ZT4ocnVsZS5nZXQoKSkpOwogICAgICAgICAgICAgcmVzb2x2ZXItPmludmFsaWRhdGVNYXRjaGVk
UHJvcGVydGllc0NhY2hlKCk7CiAgICAgICAgIH0gZWxzZSBpZiAoaXM8U3R5bGVSdWxlS2V5ZnJh
bWVzPigqcnVsZSkgJiYgcmVzb2x2ZXIpCiAgICAgICAgICAgICByZXNvbHZlci0+YWRkS2V5ZnJh
bWVTdHlsZShkb3duY2FzdDxTdHlsZVJ1bGVLZXlmcmFtZXM+KHJ1bGUuZ2V0KCkpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCAwMGRiYjVmLi4yYTg0ZTE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0yNTcsNyArMjU3LDYgQEAgU3R5bGVSZXNv
bHZlcjo6U3R5bGVSZXNvbHZlcihEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgbWF0Y2hBdXRob3JB
bmRVc2VyU3R5bGVzKQogICAgICwgbV9tYXRjaGVkUHJvcGVydGllc0NhY2hlU3dlZXBUaW1lcigq
dGhpcywgJlN0eWxlUmVzb2x2ZXI6OnN3ZWVwTWF0Y2hlZFByb3BlcnRpZXNDYWNoZSkKICAgICAs
IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX21hdGNoQXV0aG9yQW5kVXNlclN0eWxlcyht
YXRjaEF1dGhvckFuZFVzZXJTdHlsZXMpCi0gICAgLCBtX2ZvbnRTZWxlY3RvcihDU1NGb250U2Vs
ZWN0b3I6OmNyZWF0ZSgmbV9kb2N1bWVudCkpCiAjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRB
VElPTikKICAgICAsIG1fdmlld3BvcnRTdHlsZVJlc29sdmVyKFZpZXdwb3J0U3R5bGVSZXNvbHZl
cjo6Y3JlYXRlKCZkb2N1bWVudCkpCiAjZW5kaWYKQEAgLTI5NSw3ICsyOTQsNyBAQCBTdHlsZVJl
c29sdmVyOjpTdHlsZVJlc29sdmVyKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBtYXRjaEF1dGhv
ckFuZFVzZXJTdHlsZXMpCiAgICAgICAgIGNvbnN0IEhhc2hTZXQ8U1ZHRm9udEZhY2VFbGVtZW50
Kj4mIHN2Z0ZvbnRGYWNlRWxlbWVudHMgPSBtX2RvY3VtZW50LnN2Z0V4dGVuc2lvbnMoKS0+c3Zn
Rm9udEZhY2VFbGVtZW50cygpOwogICAgICAgICBIYXNoU2V0PFNWR0ZvbnRGYWNlRWxlbWVudCo+
Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBzdmdGb250RmFjZUVsZW1lbnRzLmVuZCgpOwogICAgICAg
ICBmb3IgKEhhc2hTZXQ8U1ZHRm9udEZhY2VFbGVtZW50Kj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
c3ZnRm9udEZhY2VFbGVtZW50cy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgICAg
ICBmb250U2VsZWN0b3IoKS0+YWRkRm9udEZhY2VSdWxlKCgqaXQpLT5mb250RmFjZVJ1bGUoKSk7
CisgICAgICAgICAgICBtX2RvY3VtZW50LmZvbnRTZWxlY3RvcigpLmFkZEZvbnRGYWNlUnVsZSgo
Kml0KS0+Zm9udEZhY2VSdWxlKCkpOwogICAgIH0KICNlbmRpZgogCkBAIC0zMDYsNyArMzA1LDcg
QEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBlbmRBdXRob3JTdHlsZVNoZWV0cyh1bnNpZ25lZCBm
aXJzdE5ldywgY29uc3QgVmVjdG9yPFJlZlAKIHsKICAgICBtX3J1bGVTZXRzLmFwcGVuZEF1dGhv
clN0eWxlU2hlZXRzKGZpcnN0TmV3LCBzdHlsZVNoZWV0cywgbV9tZWRpdW0uZ2V0KCksIG1faW5z
cGVjdG9yQ1NTT01XcmFwcGVycywgdGhpcyk7CiAgICAgaWYgKGF1dG8gcmVuZGVyVmlldyA9IGRv
Y3VtZW50KCkucmVuZGVyVmlldygpKQotICAgICAgICByZW5kZXJWaWV3LT5zdHlsZSgpLmZvbnRD
YXNjYWRlKCkudXBkYXRlKGZvbnRTZWxlY3RvcigpKTsKKyAgICAgICAgcmVuZGVyVmlldy0+c3R5
bGUoKS5mb250Q2FzY2FkZSgpLnVwZGF0ZSgmZG9jdW1lbnQoKS5mb250U2VsZWN0b3IoKSk7CiAK
ICNpZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQogICAgIHZpZXdwb3J0U3R5bGVSZXNv
bHZlcigpLT5yZXNvbHZlKCk7CkBAIC0zNDQsOCArMzQzLDYgQEAgdm9pZCBTdHlsZVJlc29sdmVy
OjphZGRLZXlmcmFtZVN0eWxlKFBhc3NSZWZQdHI8U3R5bGVSdWxlS2V5ZnJhbWVzPiBydWxlKQog
CiBTdHlsZVJlc29sdmVyOjp+U3R5bGVSZXNvbHZlcigpCiB7Ci0gICAgbV9mb250U2VsZWN0b3It
PmNsZWFyRG9jdW1lbnQoKTsKLQogI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJT04pCiAg
ICAgbV92aWV3cG9ydFN0eWxlUmVzb2x2ZXItPmNsZWFyRG9jdW1lbnQoKTsKICNlbmRpZgpAQCAt
NzQ4LDcgKzc0NSw3IEBAIFJlZjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JF
bGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlclN0eWxlKiBkCiAgICAgICAgIGlmICghc19z
dHlsZU5vdFlldEF2YWlsYWJsZSkgewogICAgICAgICAgICAgc19zdHlsZU5vdFlldEF2YWlsYWJs
ZSA9ICZSZW5kZXJTdHlsZTo6Y3JlYXRlKCkubGVha1JlZigpOwogICAgICAgICAgICAgc19zdHls
ZU5vdFlldEF2YWlsYWJsZS0+c2V0RGlzcGxheShOT05FKTsKLSAgICAgICAgICAgIHNfc3R5bGVO
b3RZZXRBdmFpbGFibGUtPmZvbnRDYXNjYWRlKCkudXBkYXRlKG1fZm9udFNlbGVjdG9yKTsKKyAg
ICAgICAgICAgIHNfc3R5bGVOb3RZZXRBdmFpbGFibGUtPmZvbnRDYXNjYWRlKCkudXBkYXRlKCZk
b2N1bWVudCgpLmZvbnRTZWxlY3RvcigpKTsKICAgICAgICAgfQogICAgICAgICBlbGVtZW50LT5k
b2N1bWVudCgpLnNldEhhc05vZGVzV2l0aFBsYWNlaG9sZGVyU3R5bGUoKTsKICAgICAgICAgcmV0
dXJuICpzX3N0eWxlTm90WWV0QXZhaWxhYmxlOwpAQCAtMTAzMSw3ICsxMDI4LDcgQEAgUmVmPFJl
bmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpkZWZhdWx0U3R5bGVGb3JFbGVtZW50KCkKICAgICAv
LyBNYWtlIHN1cmUgb3VyIGZvbnRzIGFyZSBpbml0aWFsaXplZCBpZiB3ZSBkb24ndCBpbmhlcml0
IHRoZW0gZnJvbSBvdXIgcGFyZW50IHN0eWxlLgogICAgIGlmIChTZXR0aW5ncyogc2V0dGluZ3Mg
PSBkb2N1bWVudFNldHRpbmdzKCkpIHsKICAgICAgICAgaW5pdGlhbGl6ZUZvbnRTdHlsZShzZXR0
aW5ncyk7Ci0gICAgICAgIG1fc3RhdGUuc3R5bGUoKS0+Zm9udENhc2NhZGUoKS51cGRhdGUoZm9u
dFNlbGVjdG9yKCkpOworICAgICAgICBtX3N0YXRlLnN0eWxlKCktPmZvbnRDYXNjYWRlKCkudXBk
YXRlKCZkb2N1bWVudCgpLmZvbnRTZWxlY3RvcigpKTsKICAgICB9IGVsc2UKICAgICAgICAgbV9z
dGF0ZS5zdHlsZSgpLT5mb250Q2FzY2FkZSgpLnVwZGF0ZShudWxscHRyKTsKIApAQCAtMTQ4NCw3
ICsxNDgxLDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjp1cGRhdGVGb250KCkKICAgICBjaGVja0Zv
ckdlbmVyaWNGYW1pbHlDaGFuZ2Uoc3R5bGUsIG1fc3RhdGUucGFyZW50U3R5bGUoKSk7CiAgICAg
Y2hlY2tGb3Jab29tQ2hhbmdlKHN0eWxlLCBtX3N0YXRlLnBhcmVudFN0eWxlKCkpOwogICAgIGNo
ZWNrRm9yT3JpZW50YXRpb25DaGFuZ2Uoc3R5bGUpOwotICAgIHN0eWxlLT5mb250Q2FzY2FkZSgp
LnVwZGF0ZShtX2ZvbnRTZWxlY3Rvcik7CisgICAgc3R5bGUtPmZvbnRDYXNjYWRlKCkudXBkYXRl
KCZkb2N1bWVudCgpLmZvbnRTZWxlY3RvcigpKTsKICAgICBpZiAobV9zdGF0ZS5mb250U2l6ZUhh
c1ZpZXdwb3J0VW5pdHMoKSkKICAgICAgICAgc3R5bGUtPnNldEhhc1ZpZXdwb3J0VW5pdHModHJ1
ZSk7CiAgICAgbV9zdGF0ZS5zZXRGb250RGlydHkoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJl
c29sdmVyLmgKaW5kZXggOWFmMTY1YS4uN2ExMTZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5oCkBAIC01MCw3ICs1MCw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENT
U0N1cnNvckltYWdlVmFsdWU7Ci1jbGFzcyBDU1NGb250U2VsZWN0b3I7CiBjbGFzcyBDU1NGb250
RmFjZTsKIGNsYXNzIENTU0ZvbnRGYWNlUnVsZTsKIGNsYXNzIENTU0ZvbnRWYWx1ZTsKQEAgLTIx
OSw3ICsyMTgsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNTZWxlY3RvckZvckNsYXNzKGNvbnN0
IEF0b21pY1N0cmluZyYpIGNvbnN0OwogICAgIGJvb2wgaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGUo
Y29uc3QgRWxlbWVudCYsIGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0OwogCi0gICAgQ1NTRm9u
dFNlbGVjdG9yKiBmb250U2VsZWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2ZvbnRTZWxlY3Rvci5n
ZXQoKTsgfQogI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJT04pCiAgICAgVmlld3BvcnRT
dHlsZVJlc29sdmVyKiB2aWV3cG9ydFN0eWxlUmVzb2x2ZXIoKSB7IHJldHVybiBtX3ZpZXdwb3J0
U3R5bGVSZXNvbHZlci5nZXQoKTsgfQogI2VuZGlmCkBAIC01MjEsNyArNTE5LDYgQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgbV9tYXRjaEF1dGhvckFuZFVzZXJTdHlsZXM7CiAKLSAgICBSZWZQdHI8
Q1NTRm9udFNlbGVjdG9yPiBtX2ZvbnRTZWxlY3RvcjsKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVf
cHRyPE1lZGlhUXVlcnlSZXN1bHQ+PiBtX3ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3Vs
dHM7CiAKICNpZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggODY1YzE5MS4uZTM5NDZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiQ29tbWVudC5oIgogI2luY2x1ZGUgIkNvbnRlbnRT
ZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkNvb2tpZUphci5oIgorI2luY2x1ZGUgIkNTU0Zv
bnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAi
RE9NTmFtZWRGbG93Q29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgpAQCAtMTk0
MSw5ICsxOTQyLDIyIEBAIHZvaWQgRG9jdW1lbnQ6OmNyZWF0ZVN0eWxlUmVzb2x2ZXIoKQogICAg
IG1fc3R5bGVTaGVldENvbGxlY3Rpb24uY29tYmluZUNTU0ZlYXR1cmVGbGFncygpOwogfQogCitD
U1NGb250U2VsZWN0b3ImIERvY3VtZW50Ojpmb250U2VsZWN0b3IoKQoreworICAgIGlmICghbV9m
b250U2VsZWN0b3IpCisgICAgICAgIG1fZm9udFNlbGVjdG9yID0gQ1NTRm9udFNlbGVjdG9yOjpj
cmVhdGUoKnRoaXMpOworICAgIHJldHVybiAqbV9mb250U2VsZWN0b3I7Cit9CisKIHZvaWQgRG9j
dW1lbnQ6OmNsZWFyU3R5bGVSZXNvbHZlcigpCiB7CiAgICAgbV9zdHlsZVJlc29sdmVyID0gbnVs
bHB0cjsKKworICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBiZXR0ZXIgaWYgdGhlIEZvbnRTZWxl
Y3RvciBjb3VsZCBzdXJ2aXZlIHRoaXMgb3BlcmF0aW9uLgorICAgIGlmIChtX2ZvbnRTZWxlY3Rv
cikgeworICAgICAgICBtX2ZvbnRTZWxlY3Rvci0+Y2xlYXJEb2N1bWVudCgpOworICAgICAgICBt
X2ZvbnRTZWxlY3RvciA9IG51bGxwdHI7CisgICAgfQogfQogCiB2b2lkIERvY3VtZW50OjpjcmVh
dGVSZW5kZXJUcmVlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggZjFiN2QzZi4uZGVjYzYwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTY5LDYgKzY5LDcgQEAgY2xhc3MgQVhPYmplY3RDYWNo
ZTsKIGNsYXNzIEF0dHI7CiBjbGFzcyBBdWRpb1Byb2R1Y2VyOwogY2xhc3MgQ0RBVEFTZWN0aW9u
OworY2xhc3MgQ1NTRm9udFNlbGVjdG9yOwogY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKIGNs
YXNzIENTU1N0eWxlU2hlZXQ7CiBjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0OwpAQCAtNTQ0LDYg
KzU0NSw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICptX3N0eWxlUmVzb2x2ZXI7CiAgICAg
fQogCisgICAgQ1NTRm9udFNlbGVjdG9yJiBmb250U2VsZWN0b3IoKTsKKwogICAgIHZvaWQgbm90
aWZ5UmVtb3ZlUGVuZGluZ1NoZWV0SWZOZWVkZWQoKTsKIAogICAgIGJvb2wgaGF2ZVN0eWxlc2hl
ZXRzTG9hZGVkKCkgY29uc3Q7CkBAIC0xNjkxLDYgKzE2OTQsOCBAQCBwcml2YXRlOgogICAgIERv
Y3VtZW50KiBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0OyAvLyBNYW51YWxseSBtYW5hZ2VkIHdlYWty
ZWYgKGJhY2twb2ludGVyIGZyb20gbV90ZW1wbGF0ZURvY3VtZW50KS4KICNlbmRpZgogCisgICAg
UmVmUHRyPENTU0ZvbnRTZWxlY3Rvcj4gbV9mb250U2VsZWN0b3I7CisKICNpZiBFTkFCTEUoRk9O
VF9MT0FEX0VWRU5UUykKICAgICBSZWZQdHI8Rm9udExvYWRlcj4gbV9mb250bG9hZGVyOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmNwcAppbmRleCA1YzQ1MjEwLi4wOWRiMzE2IDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAK
QEAgLTIwOTMsNyArMjA5MywxMCBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0
Rm9udChjb25zdCBTdHJpbmcmIG5ld0ZvbnQpCiAgICAgLy8gTWFwIHRoZSA8Y2FudmFzPiBmb250
IGludG8gdGhlIHRleHQgc3R5bGUuIElmIHRoZSBmb250IHVzZXMga2V5d29yZHMgbGlrZSBsYXJn
ZXIvc21hbGxlciwgdGhlc2Ugd2lsbCB3b3JrCiAgICAgLy8gcmVsYXRpdmUgdG8gdGhlIGNhbnZh
cy4KICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0
ZSgpOwotICAgIGNhbnZhcygpLT5kb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKwor
ICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGNhbnZhcygpLT5kb2N1bWVudCgpOworICAgIGRvY3Vt
ZW50LnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKwogICAgIGlmIChSZW5kZXJTdHlsZSogY29tcHV0
ZWRTdHlsZSA9IGNhbnZhcygpLT5jb21wdXRlZFN0eWxlKCkpCiAgICAgICAgIG5ld1N0eWxlLT5z
ZXRGb250RGVzY3JpcHRpb24oY29tcHV0ZWRTdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkpOwogICAg
IGVsc2UgewpAQCAtMjEyMyw5ICsyMTI2LDkgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OnNldEZvbnQoY29uc3QgU3RyaW5nJiBuZXdGb250KQogICAgIHN0eWxlUmVzb2x2ZXIuYXBw
bHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKENTU1Byb3BlcnR5TGluZUhlaWdodCwgcGFyc2VkU3R5
bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlMaW5lSGVpZ2h0KS5nZXQoKSk7CiAK
ICAgICBtb2RpZmlhYmxlU3RhdGUoKS5tX2ZvbnQgPSBuZXdTdHlsZS0+Zm9udENhc2NhZGUoKTsK
LSAgICBtb2RpZmlhYmxlU3RhdGUoKS5tX2ZvbnQudXBkYXRlKHN0eWxlUmVzb2x2ZXIuZm9udFNl
bGVjdG9yKCkpOworICAgIG1vZGlmaWFibGVTdGF0ZSgpLm1fZm9udC51cGRhdGUoJmRvY3VtZW50
LmZvbnRTZWxlY3RvcigpKTsKICAgICBtb2RpZmlhYmxlU3RhdGUoKS5tX3JlYWxpemVkRm9udCA9
IHRydWU7Ci0gICAgc3R5bGVSZXNvbHZlci5mb250U2VsZWN0b3IoKS0+cmVnaXN0ZXJGb3JJbnZh
bGlkYXRpb25DYWxsYmFja3MoJm1vZGlmaWFibGVTdGF0ZSgpKTsKKyAgICBkb2N1bWVudC5mb250
U2VsZWN0b3IoKS5yZWdpc3RlckZvckludmFsaWRhdGlvbkNhbGxiYWNrcygmbW9kaWZpYWJsZVN0
YXRlKCkpOwogfQogCiBTdHJpbmcgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjp0ZXh0QWxpZ24o
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4
IDFmNTdiMDguLmMwM2RiYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEJveC5jcHAKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIFJlbmRlckxpc3RCb3g6OnVwZGF0ZUZy
b21FbGVtZW50KCkKICAgICAgICAgICAgICAgICBGb250RGVzY3JpcHRpb24gZCA9IGl0ZW1Gb250
LmZvbnREZXNjcmlwdGlvbigpOwogICAgICAgICAgICAgICAgIGQuc2V0V2VpZ2h0KGQuYm9sZGVy
V2VpZ2h0KCkpOwogICAgICAgICAgICAgICAgIGl0ZW1Gb250ID0gRm9udENhc2NhZGUoZCwgaXRl
bUZvbnQubGV0dGVyU3BhY2luZygpLCBpdGVtRm9udC53b3JkU3BhY2luZygpKTsKLSAgICAgICAg
ICAgICAgICBpdGVtRm9udC51cGRhdGUoZG9jdW1lbnQoKS5lbnN1cmVTdHlsZVJlc29sdmVyKCku
Zm9udFNlbGVjdG9yKCkpOworICAgICAgICAgICAgICAgIGl0ZW1Gb250LnVwZGF0ZSgmZG9jdW1l
bnQoKS5mb250U2VsZWN0b3IoKSk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmICgh
dGV4dC5pc0VtcHR5KCkpIHsKQEAgLTQwOCw3ICs0MDgsNyBAQCB2b2lkIFJlbmRlckxpc3RCb3g6
OnBhaW50SXRlbUZvcmVncm91bmQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBv
aW50JgogICAgICAgICBGb250RGVzY3JpcHRpb24gZCA9IGl0ZW1Gb250LmZvbnREZXNjcmlwdGlv
bigpOwogICAgICAgICBkLnNldFdlaWdodChkLmJvbGRlcldlaWdodCgpKTsKICAgICAgICAgaXRl
bUZvbnQgPSBGb250Q2FzY2FkZShkLCBpdGVtRm9udC5sZXR0ZXJTcGFjaW5nKCksIGl0ZW1Gb250
LndvcmRTcGFjaW5nKCkpOwotICAgICAgICBpdGVtRm9udC51cGRhdGUoZG9jdW1lbnQoKS5lbnN1
cmVTdHlsZVJlc29sdmVyKCkuZm9udFNlbGVjdG9yKCkpOworICAgICAgICBpdGVtRm9udC51cGRh
dGUoJmRvY3VtZW50KCkuZm9udFNlbGVjdG9yKCkpOwogICAgIH0KIAogICAgIC8vIERyYXcgdGhl
IGl0ZW0gdGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAK
aW5kZXggMjJiZjNkMi4uMjBhZjdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuY3BwCkBAIC02NjIsNyArNjYyLDcgQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6
c2V0VGV4dEZyb21JdGVtKHVuc2lnbmVkIGxpc3RJbmRleCkKIAogRm9udFNlbGVjdG9yKiBSZW5k
ZXJNZW51TGlzdDo6Zm9udFNlbGVjdG9yKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZG9jdW1lbnQo
KS5lbnN1cmVTdHlsZVJlc29sdmVyKCkuZm9udFNlbGVjdG9yKCk7CisgICAgcmV0dXJuICZkb2N1
bWVudCgpLmZvbnRTZWxlY3RvcigpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcAppbmRleCAwMDRhMjU5Li4zMDJiOTk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKQEAgLTMzOSw3
ICszMzksNyBAQCB2b2lkIFJlbmRlclNlYXJjaEZpZWxkOjpzZXRUZXh0RnJvbUl0ZW0odW5zaWdu
ZWQgbGlzdEluZGV4KQogCiBGb250U2VsZWN0b3IqIFJlbmRlclNlYXJjaEZpZWxkOjpmb250U2Vs
ZWN0b3IoKSBjb25zdAogewotICAgIHJldHVybiBkb2N1bWVudCgpLmVuc3VyZVN0eWxlUmVzb2x2
ZXIoKS5mb250U2VsZWN0b3IoKTsKKyAgICByZXR1cm4gJmRvY3VtZW50KCkuZm9udFNlbGVjdG9y
KCk7CiB9CiAKIEhvc3RXaW5kb3cqIFJlbmRlclNlYXJjaEZpZWxkOjpob3N0V2luZG93KCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b1NpemluZy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9TaXppbmcuY3BwCmluZGV4IDM4
NjlmMzMuLjIyMGViOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0
QXV0b1NpemluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvU2l6
aW5nLmNwcApAQCAtMTY0LDcgKzE2NCw3IEBAIGJvb2wgVGV4dEF1dG9TaXppbmdWYWx1ZTo6YWRq
dXN0Tm9kZVNpemVzKCkKICAgICAgICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRp
b24gPSBzdHlsZS0+Zm9udERlc2NyaXB0aW9uKCk7CiAgICAgICAgICAgICBmb250RGVzY3JpcHRp
b24uc2V0Q29tcHV0ZWRTaXplKGF2ZXJhZ2VTaXplKTsKICAgICAgICAgICAgIHN0eWxlLT5zZXRG
b250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsKLSAgICAgICAgICAgIHN0eWxlLT5mb250
Q2FzY2FkZSgpLnVwZGF0ZShhdXRvU2l6aW5nTm9kZS0+ZG9jdW1lbnQoKS5lbnN1cmVTdHlsZVJl
c29sdmVyKCkuZm9udFNlbGVjdG9yKCkpOworICAgICAgICAgICAgc3R5bGUtPmZvbnRDYXNjYWRl
KCkudXBkYXRlKCZhdXRvU2l6aW5nTm9kZS0+ZG9jdW1lbnQoKS5mb250U2VsZWN0b3IoKSk7CiAg
ICAgICAgICAgICB0ZXh0LT5wYXJlbnQoKS0+c2V0U3R5bGUoc3R5bGUucmVsZWFzZU5vbk51bGwo
KSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIFJlbmRlckVsZW1lbnQqIHBhcmVudFJlbmRl
cmVyID0gdGV4dC0+cGFyZW50KCk7CkBAIC0xNzYsNyArMTc2LDcgQEAgYm9vbCBUZXh0QXV0b1Np
emluZ1ZhbHVlOjphZGp1c3ROb2RlU2l6ZXMoKQogICAgICAgICAgICAgaWYgKGxpc3RNYXJrZXJS
ZW5kZXJlci0+aXNMaXN0TWFya2VyKCkpIHsKICAgICAgICAgICAgICAgICBSZWZQdHI8UmVuZGVy
U3R5bGU+IHN0eWxlID0gY2xvbmVSZW5kZXJTdHlsZVdpdGhTdGF0ZShsaXN0TWFya2VyUmVuZGVy
ZXItPnN0eWxlKCkpOwogICAgICAgICAgICAgICAgIHN0eWxlLT5zZXRGb250RGVzY3JpcHRpb24o
Zm9udERlc2NyaXB0aW9uKTsKLSAgICAgICAgICAgICAgICBzdHlsZS0+Zm9udENhc2NhZGUoKS51
cGRhdGUoYXV0b1NpemluZ05vZGUtPmRvY3VtZW50KCkuZW5zdXJlU3R5bGVSZXNvbHZlcigpLmZv
bnRTZWxlY3RvcigpKTsKKyAgICAgICAgICAgICAgICBzdHlsZS0+Zm9udENhc2NhZGUoKS51cGRh
dGUoJmF1dG9TaXppbmdOb2RlLT5kb2N1bWVudCgpLmZvbnRTZWxlY3RvcigpKTsKICAgICAgICAg
ICAgICAgICBkb3duY2FzdDxSZW5kZXJMaXN0TWFya2VyPigqbGlzdE1hcmtlclJlbmRlcmVyKS5z
ZXRTdHlsZShzdHlsZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIApAQCAtMTk2LDcgKzE5Niw3IEBAIGJvb2wgVGV4dEF1dG9TaXppbmdWYWx1ZTo6YWRqdXN0
Tm9kZVNpemVzKCkKICAgICAgICAgICAgICAgICBuZXdQYXJlbnRTdHlsZS0+c2V0TGluZUhlaWdo
dChMZW5ndGgobGluZUhlaWdodCwgRml4ZWQpKTsKICAgICAgICAgICAgICAgICBuZXdQYXJlbnRT
dHlsZS0+c2V0U3BlY2lmaWVkTGluZUhlaWdodChsaW5lSGVpZ2h0TGVuZ3RoKTsKICAgICAgICAg
ICAgICAgICBuZXdQYXJlbnRTdHlsZS0+c2V0Rm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlv
bik7Ci0gICAgICAgICAgICAgICAgbmV3UGFyZW50U3R5bGUtPmZvbnRDYXNjYWRlKCkudXBkYXRl
KGF1dG9TaXppbmdOb2RlLT5kb2N1bWVudCgpLmVuc3VyZVN0eWxlUmVzb2x2ZXIoKS5mb250U2Vs
ZWN0b3IoKSk7CisgICAgICAgICAgICAgICAgbmV3UGFyZW50U3R5bGUtPmZvbnRDYXNjYWRlKCku
dXBkYXRlKCZhdXRvU2l6aW5nTm9kZS0+ZG9jdW1lbnQoKS5mb250U2VsZWN0b3IoKSk7CiAgICAg
ICAgICAgICAgICAgcGFyZW50UmVuZGVyZXItPnNldFN0eWxlKG5ld1BhcmVudFN0eWxlLnJlbGVh
c2VOb25OdWxsKCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0yMjAsNyArMjIwLDcg
QEAgdm9pZCBUZXh0QXV0b1NpemluZ1ZhbHVlOjpyZXNldCgpCiAgICAgICAgICAgICBmb250RGVz
Y3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKG9yaWdpbmFsU2l6ZSk7CiAgICAgICAgICAgICBSZWZQ
dHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gY2xvbmVSZW5kZXJTdHlsZVdpdGhTdGF0ZSh0ZXh0LT5z
dHlsZSgpKTsKICAgICAgICAgICAgIHN0eWxlLT5zZXRGb250RGVzY3JpcHRpb24oZm9udERlc2Ny
aXB0aW9uKTsKLSAgICAgICAgICAgIHN0eWxlLT5mb250Q2FzY2FkZSgpLnVwZGF0ZShhdXRvU2l6
aW5nTm9kZS0+ZG9jdW1lbnQoKS5lbnN1cmVTdHlsZVJlc29sdmVyKCkuZm9udFNlbGVjdG9yKCkp
OworICAgICAgICAgICAgc3R5bGUtPmZvbnRDYXNjYWRlKCkudXBkYXRlKCZhdXRvU2l6aW5nTm9k
ZS0+ZG9jdW1lbnQoKS5mb250U2VsZWN0b3IoKSk7CiAgICAgICAgICAgICB0ZXh0LT5wYXJlbnQo
KS0+c2V0U3R5bGUoc3R5bGUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgIH0KICAgICAgICAg
Ly8gUmVzZXQgdGhlIGxpbmUgaGVpZ2h0IG9mIHRoZSBwYXJlbnQuCkBAIC0yMzcsNyArMjM3LDcg
QEAgdm9pZCBUZXh0QXV0b1NpemluZ1ZhbHVlOjpyZXNldCgpCiAgICAgICAgICAgICBSZWZQdHI8
UmVuZGVyU3R5bGU+IG5ld1BhcmVudFN0eWxlID0gY2xvbmVSZW5kZXJTdHlsZVdpdGhTdGF0ZShw
YXJlbnRTdHlsZSk7CiAgICAgICAgICAgICBuZXdQYXJlbnRTdHlsZS0+c2V0TGluZUhlaWdodChv
cmlnaW5hbExpbmVIZWlnaHQpOwogICAgICAgICAgICAgbmV3UGFyZW50U3R5bGUtPnNldEZvbnRE
ZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOwotICAgICAgICAgICAgbmV3UGFyZW50U3R5bGUt
PmZvbnRDYXNjYWRlKCkudXBkYXRlKGF1dG9TaXppbmdOb2RlLT5kb2N1bWVudCgpLmVuc3VyZVN0
eWxlUmVzb2x2ZXIoKS5mb250U2VsZWN0b3IoKSk7CisgICAgICAgICAgICBuZXdQYXJlbnRTdHls
ZS0+Zm9udENhc2NhZGUoKS51cGRhdGUoJmF1dG9TaXppbmdOb2RlLT5kb2N1bWVudCgpLmZvbnRT
ZWxlY3RvcigpKTsKICAgICAgICAgICAgIHBhcmVudFJlbmRlcmVyLT5zZXRTdHlsZShuZXdQYXJl
bnRTdHlsZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuY3BwCmluZGV4
IDk5ZWI3MTEuLjQ3MmJiMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcApAQCAtMjQxLDcgKzI0MSw3IEBAIHZvaWQgUmVu
ZGVyU1ZHSW5saW5lVGV4dDo6Y29tcHV0ZU5ld1NjYWxlZEZvbnRGb3JTdHlsZShjb25zdCBSZW5k
ZXJPYmplY3QmIHJlbmRlCiAgICAgZm9udERlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZShTdHls
ZTo6Y29tcHV0ZWRGb250U2l6ZUZyb21TcGVjaWZpZWRTaXplRm9yU1ZHSW5saW5lVGV4dChmb250
RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCksIGZvbnREZXNjcmlwdGlvbi5pc0Fic29sdXRlU2l6
ZSgpLCBzY2FsaW5nRmFjdG9yLCByZW5kZXJlci5kb2N1bWVudCgpKSk7CiAKICAgICBzY2FsZWRG
b250ID0gRm9udENhc2NhZGUoZm9udERlc2NyaXB0aW9uLCAwLCAwKTsKLSAgICBzY2FsZWRGb250
LnVwZGF0ZShyZW5kZXJlci5kb2N1bWVudCgpLmVuc3VyZVN0eWxlUmVzb2x2ZXIoKS5mb250U2Vs
ZWN0b3IoKSk7CisgICAgc2NhbGVkRm9udC51cGRhdGUoJnJlbmRlcmVyLmRvY3VtZW50KCkuZm9u
dFNlbGVjdG9yKCkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJl
c29sdmVGb3JEb2N1bWVudC5jcHAKaW5kZXggYWY2ODE4OC4uOTczZmViNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcApAQCAtMTE1LDgg
KzExNSw3IEBAIFJlZjxSZW5kZXJTdHlsZT4gcmVzb2x2ZUZvckRvY3VtZW50KGNvbnN0IERvY3Vt
ZW50JiBkb2N1bWVudCkKIAogICAgIGRvY3VtZW50U3R5bGUuZ2V0KCkuc2V0Rm9udERlc2NyaXB0
aW9uKGZvbnREZXNjcmlwdGlvbik7CiAKLSAgICBDU1NGb250U2VsZWN0b3IqIGZvbnRTZWxlY3Rv
ciA9IGRvY3VtZW50LnN0eWxlUmVzb2x2ZXJJZkV4aXN0cygpID8gZG9jdW1lbnQuc3R5bGVSZXNv
bHZlcklmRXhpc3RzKCktPmZvbnRTZWxlY3RvcigpIDogbnVsbHB0cjsKLSAgICBkb2N1bWVudFN0
eWxlLmdldCgpLmZvbnRDYXNjYWRlKCkudXBkYXRlKGZvbnRTZWxlY3Rvcik7CisgICAgZG9jdW1l
bnRTdHlsZS5nZXQoKS5mb250Q2FzY2FkZSgpLnVwZGF0ZSgmY29uc3RfY2FzdDxEb2N1bWVudCY+
KGRvY3VtZW50KS5mb250U2VsZWN0b3IoKSk7CiAKICAgICByZXR1cm4gZG9jdW1lbnRTdHlsZTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAKaW5kZXggMjRjYjVl
OC4uNjQ5Y2ZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZl
VHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAK
QEAgLTk3Niw5ICs5NzYsOCBAQCB2b2lkIHJlc29sdmVUcmVlKERvY3VtZW50JiBkb2N1bWVudCwg
Q2hhbmdlIGNoYW5nZSkKICAgICAgICAgLy8gSW5zZXJ0aW5nIHRoZSBwaWN0b2dyYXBoIGZvbnQg
YXQgdGhlIGVuZCBvZiB0aGUgZm9udCBmYWxsYmFjayBsaXN0IGlzIGRvbmUgYnkgdGhlCiAgICAg
ICAgIC8vIGZvbnQgc2VsZWN0b3IsIHNvIHNldCBhIGZvbnQgc2VsZWN0b3IgaWYgbmVlZGVkLgog
ICAgICAgICBpZiAoU2V0dGluZ3MqIHNldHRpbmdzID0gZG9jdW1lbnQuc2V0dGluZ3MoKSkgewot
ICAgICAgICAgICAgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciA9IGRvY3VtZW50LnN0eWxl
UmVzb2x2ZXJJZkV4aXN0cygpOwotICAgICAgICAgICAgaWYgKHNldHRpbmdzLT5mb250RmFsbGJh
Y2tQcmVmZXJzUGljdG9ncmFwaHMoKSAmJiBzdHlsZVJlc29sdmVyKQotICAgICAgICAgICAgICAg
IGRvY3VtZW50U3R5bGUuZ2V0KCkuZm9udENhc2NhZGUoKS51cGRhdGUoc3R5bGVSZXNvbHZlci0+
Zm9udFNlbGVjdG9yKCkpOworICAgICAgICAgICAgaWYgKHNldHRpbmdzLT5mb250RmFsbGJhY2tQ
cmVmZXJzUGljdG9ncmFwaHMoKSkKKyAgICAgICAgICAgICAgICBkb2N1bWVudFN0eWxlLmdldCgp
LmZvbnRDYXNjYWRlKCkudXBkYXRlKCZkb2N1bWVudC5mb250U2VsZWN0b3IoKSk7CiAgICAgICAg
IH0KIAogICAgICAgICBTdHlsZTo6Q2hhbmdlIGRvY3VtZW50Q2hhbmdlID0gZGV0ZXJtaW5lQ2hh
bmdlKGRvY3VtZW50U3R5bGUuZ2V0KCksIGRvY3VtZW50LnJlbmRlclZpZXcoKS0+c3R5bGUoKSk7
Cg==
</data>
<flag name="review"
          id="270159"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245234</attachid>
            <date>2015-01-23 09:59:20 -0800</date>
            <delta_ts>2015-01-23 09:59:20 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>land-140820.diff</filename>
            <type>text/plain</type>
            <size>23709</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4ZTFjMjdmLi5jYTg0NDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAg
QEAKKzIwMTUtMDEtMjMgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIEhhbmcgQ1NTRm9udFNlbGVjdG9yIG9mZiBEb2N1bWVudCBpbnN0ZWFkIG9mIFN0eWxlUmVz
b2x2ZXIuCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNDA4MjA+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgTW92ZSB0aGUgQ1NTRm9udFNl
bGVjdG9yIGZyb20gU3R5bGVSZXNvbHZlciB0byBEb2N1bWVudC4gVGhpcyBpcyB0aGUgZmlyc3QK
KyAgICAgICAgc3RlcCB0b3dhcmRzIG1ha2luZyB0aGUgQ1NTRm9udFNlbGVjdG9yIGJlIGFibGUg
dG8gc3Vydml2ZSBmdWxsIHN0eWxlIHJlY2FsYy4KKworICAgICAgICBDbGVhcmluZyBhIERvY3Vt
ZW50J3MgU3R5bGVSZXNvbHZlciB3aWxsIHN0aWxsIG51a2UgdGhlIENTU0ZvbnRTZWxlY3RvciwK
KyAgICAgICAgdGhvdWdoIHRoYXQgaXMgZG9uZSBpbiBEb2N1bWVudDo6Y2xlYXJTdHlsZVJlc29s
dmVyKCkgbm93LgorCisgICAgICAgICogY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NGb250U2VsZWN0b3I6OkNTU0ZvbnRTZWxlY3Rvcik6CisgICAgICAgICog
Y3NzL0NTU0ZvbnRTZWxlY3Rvci5oOgorCisgICAgICAgICAgICBNb2Rlcm5pemUgQ1NTRm9udFNl
bGVjdG9yIGNvbnN0cnVjdGlvbiBhIGJpdCBieSBoYXZpbmcgY3JlYXRlKCkgcmV0dXJuCisgICAg
ICAgICAgICBhIFJlZiBhbmQgdGhlIGNvbnN0cnVjdG9yIHRha2UgYSBEb2N1bWVudCYgaW5zdGVh
ZCBvZiBhIERvY3VtZW50Ki4KKyAgICAgICAgICAgIEFsc28gbWFkZSB0aGUgY29uc3RydWN0b3Ig
ZXhwbGljaXQuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6On5TdHlsZVJlc29s
dmVyKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmNsZWFyU3R5bGVSZXNvbHZlcik6CisKKyAgICAgICAgICAgIE51a2UgdGhlIGN1cnJl
bnQgQ1NTRm9udFNlbGVjdG9yIGluIGNsZWFyU3R5bGVSZXNvbHZlcigpIGluc3RlYWQgb2YKKyAg
ICAgICAgICAgIGluIH5TdHlsZVJlc29sdmVyLiBJdCdzIGEgbWlub3IgY2hhbmdlLCBidXQgc2hv
d3MgdGhlIHdheSBmb3J3YXJkLgorICAgICAgICAgICAgQWRkZWQgYSBGSVhNRSBhYm91dCBob3cg
Q1NTRm9udFNlbGVjdG9yIHNob3VsZCBldmVudHVhbGx5IHN1cnZpdmUKKyAgICAgICAgICAgIHRo
aXMgb3BlcmF0aW9uLgorCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Zm9udFNlbGVjdG9y
KToKKyAgICAgICAgKiBjc3MvRm9udExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250
TG9hZGVyOjpsb2FkRm9udCk6CisgICAgICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjpjaGVja0Zv
bnQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6cmVzb2x2ZUZvbnRTdHlsZSk6Cisg
ICAgICAgICogY3NzL1J1bGVTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UnVsZVNldDo6YWRk
Q2hpbGRSdWxlcyk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmZvbnRTZWxlY3Rvcik6IERlbGV0ZWQuCisgICAgICAgICog
Y3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6
U3R5bGVSZXNvbHZlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphcHBlbmRB
dXRob3JTdHlsZVNoZWV0cyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpzdHls
ZUZvckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6ZGVmYXVsdFN0
eWxlRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjp1cGRhdGVG
b250KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpzZXRGb250KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlz
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojp1cGRhdGVGcm9tRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpwYWludEl0ZW1Gb3JlZ3Jv
dW5kKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAo
UmVuZGVyTWVudUxpc3Q6OmZvbnRTZWxlY3Rvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clNlYXJjaEZpZWxkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNlYXJjaEZpZWxkOjpm
b250U2VsZWN0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b1NpemluZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b1NpemluZ1ZhbHVlOjphZGp1c3ROb2RlU2l6ZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9TaXppbmdWYWx1ZTo6cmVzZXQpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTVkdJbmxpbmVUZXh0Ojpjb21wdXRlTmV3U2NhbGVkRm9udEZvclN0eWxlKToKKyAg
ICAgICAgKiBzdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZTo6cmVzb2x2ZUZvckRvY3VtZW50KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVJl
c29sdmVUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpyZXNvbHZlVHJlZSk6CisK
KyAgICAgICAgICAgIE1vdmUgQ1NTRm9udFNlbGVjdG9yIG93bmVyc2hpcCBmcm9tIFN0eWxlUmVz
b2x2ZXIgdG8gRG9jdW1lbnQuCisKIDIwMTUtMDEtMjIgIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gTWVkaWEgY29udHJvbHMgZGlzYXBwZWFyIHdoZW4g
bG9hZGluZyBhIEhMUyBsaXZlIHN0cmVhbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9y
LmNwcAppbmRleCA3YmQ0ZGFkLi5kMjFiOGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udFNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNl
bGVjdG9yLmNwcApAQCAtNTgsMTIgKzU4LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3Rh
dGljIHVuc2lnbmVkIGZvbnRTZWxlY3RvcklkOwogCi1DU1NGb250U2VsZWN0b3I6OkNTU0ZvbnRT
ZWxlY3RvcihEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQor
Q1NTRm9udFNlbGVjdG9yOjpDU1NGb250U2VsZWN0b3IoRG9jdW1lbnQmIGRvY3VtZW50KQorICAg
IDogbV9kb2N1bWVudCgmZG9jdW1lbnQpCiAgICAgLCBtX2JlZ2luTG9hZGluZ1RpbWVyKCp0aGlz
LCAmQ1NTRm9udFNlbGVjdG9yOjpiZWdpbkxvYWRUaW1lckZpcmVkKQogICAgICwgbV91bmlxdWVJ
ZCgrK2ZvbnRTZWxlY3RvcklkKQogICAgICwgbV92ZXJzaW9uKDApCi0gICAgCiB7CiAgICAgLy8g
RklYTUU6IEFuIG9sZCBjb21tZW50IHVzZWQgdG8gc2F5IHRoZXJlIHdhcyBubyBuZWVkIHRvIGhv
bGQgYSByZWZlcmVuY2UgdG8gbV9kb2N1bWVudAogICAgIC8vIGJlY2F1c2UgIndlIGFyZSBndWFy
YW50ZWVkIHRvIGJlIGRlc3Ryb3llZCBiZWZvcmUgdGhlIGRvY3VtZW50Ii4gQnV0IHRoZXJlIGRv
ZXMgbm90CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgKaW5kZXggZDg0ZDExMi4uNzU2
M2FiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuaApAQCAtNDksOSArNDksOSBA
QCBjbGFzcyBTdHlsZVJ1bGVGb250RmFjZTsKIAogY2xhc3MgQ1NTRm9udFNlbGVjdG9yIGZpbmFs
IDogcHVibGljIEZvbnRTZWxlY3RvciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
Q1NTRm9udFNlbGVjdG9yPiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIHN0YXRpYyBS
ZWY8Q1NTRm9udFNlbGVjdG9yPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NGb250U2VsZWN0b3IoZG9jdW1lbnQpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTRm9udFNlbGVjdG9yKGRvY3VtZW50KSk7CiAg
ICAgfQogICAgIHZpcnR1YWwgfkNTU0ZvbnRTZWxlY3RvcigpOwogICAgIApAQCAtODIsNyArODIs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBiZWdpbkxvYWRpbmdGb250U29vbihDYWNoZWRGb250Kik7
CiAKIHByaXZhdGU6Ci0gICAgQ1NTRm9udFNlbGVjdG9yKERvY3VtZW50Kik7CisgICAgZXhwbGlj
aXQgQ1NTRm9udFNlbGVjdG9yKERvY3VtZW50Jik7CiAKICAgICB2b2lkIGRpc3BhdGNoSW52YWxp
ZGF0aW9uQ2FsbGJhY2tzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNwcAppbmRleCBmMDA5
OTI0Li5mNDVmMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuY3BwCkBAIC0yNTIsNyArMjUy
LDcgQEAgdm9pZCBGb250TG9hZGVyOjpsb2FkRm9udChjb25zdCBEaWN0aW9uYXJ5JiBwYXJhbXMp
CiAgICAgbV9udW1Mb2FkaW5nRnJvbUpTICs9IGNhbGxiYWNrLT5mYW1pbHlDb3VudCgpOwogCiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZvbnQuZmFtaWx5Q291bnQoKTsgaSsrKSB7Ci0g
ICAgICAgIENTU1NlZ21lbnRlZEZvbnRGYWNlKiBmYWNlID0gbV9kb2N1bWVudC0+ZW5zdXJlU3R5
bGVSZXNvbHZlcigpLmZvbnRTZWxlY3RvcigpLT5nZXRGb250RmFjZShmb250LmZvbnREZXNjcmlw
dGlvbigpLCBmb250LmZhbWlseUF0KGkpKTsKKyAgICAgICAgQ1NTU2VnbWVudGVkRm9udEZhY2Uq
IGZhY2UgPSBtX2RvY3VtZW50LT5mb250U2VsZWN0b3IoKS5nZXRGb250RmFjZShmb250LmZvbnRE
ZXNjcmlwdGlvbigpLCBmb250LmZhbWlseUF0KGkpKTsKICAgICAgICAgaWYgKCFmYWNlKSB7CiAg
ICAgICAgICAgICBpZiAoY2FsbGJhY2spCiAgICAgICAgICAgICAgICAgY2FsbGJhY2stPm5vdGlm
eUVycm9yKCk7CkBAIC0yNjksNyArMjY5LDcgQEAgYm9vbCBGb250TG9hZGVyOjpjaGVja0ZvbnQo
Y29uc3QgU3RyaW5nJiBmb250U3RyaW5nLCBjb25zdCBTdHJpbmcmKQogICAgIGlmICghcmVzb2x2
ZUZvbnRTdHlsZShmb250U3RyaW5nLCBmb250KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmb250LmZhbWlseUNvdW50KCk7IGkrKykgewotICAg
ICAgICBDU1NTZWdtZW50ZWRGb250RmFjZSogZmFjZSA9IG1fZG9jdW1lbnQtPmVuc3VyZVN0eWxl
UmVzb2x2ZXIoKS5mb250U2VsZWN0b3IoKS0+Z2V0Rm9udEZhY2UoZm9udC5mb250RGVzY3JpcHRp
b24oKSwgZm9udC5mYW1pbHlBdChpKSk7CisgICAgICAgIENTU1NlZ21lbnRlZEZvbnRGYWNlKiBm
YWNlID0gbV9kb2N1bWVudC0+Zm9udFNlbGVjdG9yKCkuZ2V0Rm9udEZhY2UoZm9udC5mb250RGVz
Y3JpcHRpb24oKSwgZm9udC5mYW1pbHlBdChpKSk7CiAgICAgICAgIGlmICghZmFjZSB8fCAhZmFj
ZS0+Y2hlY2tGb250KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMzIw
LDcgKzMyMCw3IEBAIGJvb2wgRm9udExvYWRlcjo6cmVzb2x2ZUZvbnRTdHlsZShjb25zdCBTdHJp
bmcmIGZvbnRTdHJpbmcsIEZvbnRDYXNjYWRlJiBmb250KQogICAgIGFwcGx5UHJvcGVydHlUb0N1
cnJlbnRTdHlsZShzdHlsZVJlc29sdmVyLCBDU1NQcm9wZXJ0eUxpbmVIZWlnaHQsIHBhcnNlZFN0
eWxlKTsKIAogICAgIGZvbnQgPSBzdHlsZS0+Zm9udENhc2NhZGUoKTsKLSAgICBmb250LnVwZGF0
ZShzdHlsZVJlc29sdmVyLmZvbnRTZWxlY3RvcigpKTsKKyAgICBmb250LnVwZGF0ZSgmbV9kb2N1
bWVudC0+Zm9udFNlbGVjdG9yKCkpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVs
ZVNldC5jcHAKaW5kZXggYmU3M2MyMS4uMTI2MTJjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcApA
QCAtMzMwLDcgKzMzMCw3IEBAIHZvaWQgUnVsZVNldDo6YWRkQ2hpbGRSdWxlcyhjb25zdCBWZWN0
b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+PiYgcnVsZXMsIGNvbnN0IE1lCiAgICAgICAgICAgICAg
ICAgYWRkQ2hpbGRSdWxlcyhtZWRpYVJ1bGUuY2hpbGRSdWxlcygpLCBtZWRpdW0sIHJlc29sdmVy
LCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCBhZGRSdWxlRmxhZ3MpOwogICAgICAgICB9IGVs
c2UgaWYgKGlzPFN0eWxlUnVsZUZvbnRGYWNlPigqcnVsZSkgJiYgcmVzb2x2ZXIpIHsKICAgICAg
ICAgICAgIC8vIEFkZCB0aGlzIGZvbnQgZmFjZSB0byBvdXIgc2V0LgotICAgICAgICAgICAgcmVz
b2x2ZXItPmZvbnRTZWxlY3RvcigpLT5hZGRGb250RmFjZVJ1bGUoZG93bmNhc3Q8U3R5bGVSdWxl
Rm9udEZhY2U+KHJ1bGUuZ2V0KCkpKTsKKyAgICAgICAgICAgIHJlc29sdmVyLT5kb2N1bWVudCgp
LmZvbnRTZWxlY3RvcigpLmFkZEZvbnRGYWNlUnVsZShkb3duY2FzdDxTdHlsZVJ1bGVGb250RmFj
ZT4ocnVsZS5nZXQoKSkpOwogICAgICAgICAgICAgcmVzb2x2ZXItPmludmFsaWRhdGVNYXRjaGVk
UHJvcGVydGllc0NhY2hlKCk7CiAgICAgICAgIH0gZWxzZSBpZiAoaXM8U3R5bGVSdWxlS2V5ZnJh
bWVzPigqcnVsZSkgJiYgcmVzb2x2ZXIpCiAgICAgICAgICAgICByZXNvbHZlci0+YWRkS2V5ZnJh
bWVTdHlsZShkb3duY2FzdDxTdHlsZVJ1bGVLZXlmcmFtZXM+KHJ1bGUuZ2V0KCkpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCAwMGRiYjVmLi4yYTg0ZTE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0yNTcsNyArMjU3LDYgQEAgU3R5bGVSZXNv
bHZlcjo6U3R5bGVSZXNvbHZlcihEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgbWF0Y2hBdXRob3JB
bmRVc2VyU3R5bGVzKQogICAgICwgbV9tYXRjaGVkUHJvcGVydGllc0NhY2hlU3dlZXBUaW1lcigq
dGhpcywgJlN0eWxlUmVzb2x2ZXI6OnN3ZWVwTWF0Y2hlZFByb3BlcnRpZXNDYWNoZSkKICAgICAs
IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX21hdGNoQXV0aG9yQW5kVXNlclN0eWxlcyht
YXRjaEF1dGhvckFuZFVzZXJTdHlsZXMpCi0gICAgLCBtX2ZvbnRTZWxlY3RvcihDU1NGb250U2Vs
ZWN0b3I6OmNyZWF0ZSgmbV9kb2N1bWVudCkpCiAjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRB
VElPTikKICAgICAsIG1fdmlld3BvcnRTdHlsZVJlc29sdmVyKFZpZXdwb3J0U3R5bGVSZXNvbHZl
cjo6Y3JlYXRlKCZkb2N1bWVudCkpCiAjZW5kaWYKQEAgLTI5NSw3ICsyOTQsNyBAQCBTdHlsZVJl
c29sdmVyOjpTdHlsZVJlc29sdmVyKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBtYXRjaEF1dGhv
ckFuZFVzZXJTdHlsZXMpCiAgICAgICAgIGNvbnN0IEhhc2hTZXQ8U1ZHRm9udEZhY2VFbGVtZW50
Kj4mIHN2Z0ZvbnRGYWNlRWxlbWVudHMgPSBtX2RvY3VtZW50LnN2Z0V4dGVuc2lvbnMoKS0+c3Zn
Rm9udEZhY2VFbGVtZW50cygpOwogICAgICAgICBIYXNoU2V0PFNWR0ZvbnRGYWNlRWxlbWVudCo+
Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBzdmdGb250RmFjZUVsZW1lbnRzLmVuZCgpOwogICAgICAg
ICBmb3IgKEhhc2hTZXQ8U1ZHRm9udEZhY2VFbGVtZW50Kj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
c3ZnRm9udEZhY2VFbGVtZW50cy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgICAg
ICBmb250U2VsZWN0b3IoKS0+YWRkRm9udEZhY2VSdWxlKCgqaXQpLT5mb250RmFjZVJ1bGUoKSk7
CisgICAgICAgICAgICBtX2RvY3VtZW50LmZvbnRTZWxlY3RvcigpLmFkZEZvbnRGYWNlUnVsZSgo
Kml0KS0+Zm9udEZhY2VSdWxlKCkpOwogICAgIH0KICNlbmRpZgogCkBAIC0zMDYsNyArMzA1LDcg
QEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBlbmRBdXRob3JTdHlsZVNoZWV0cyh1bnNpZ25lZCBm
aXJzdE5ldywgY29uc3QgVmVjdG9yPFJlZlAKIHsKICAgICBtX3J1bGVTZXRzLmFwcGVuZEF1dGhv
clN0eWxlU2hlZXRzKGZpcnN0TmV3LCBzdHlsZVNoZWV0cywgbV9tZWRpdW0uZ2V0KCksIG1faW5z
cGVjdG9yQ1NTT01XcmFwcGVycywgdGhpcyk7CiAgICAgaWYgKGF1dG8gcmVuZGVyVmlldyA9IGRv
Y3VtZW50KCkucmVuZGVyVmlldygpKQotICAgICAgICByZW5kZXJWaWV3LT5zdHlsZSgpLmZvbnRD
YXNjYWRlKCkudXBkYXRlKGZvbnRTZWxlY3RvcigpKTsKKyAgICAgICAgcmVuZGVyVmlldy0+c3R5
bGUoKS5mb250Q2FzY2FkZSgpLnVwZGF0ZSgmZG9jdW1lbnQoKS5mb250U2VsZWN0b3IoKSk7CiAK
ICNpZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQogICAgIHZpZXdwb3J0U3R5bGVSZXNv
bHZlcigpLT5yZXNvbHZlKCk7CkBAIC0zNDQsOCArMzQzLDYgQEAgdm9pZCBTdHlsZVJlc29sdmVy
OjphZGRLZXlmcmFtZVN0eWxlKFBhc3NSZWZQdHI8U3R5bGVSdWxlS2V5ZnJhbWVzPiBydWxlKQog
CiBTdHlsZVJlc29sdmVyOjp+U3R5bGVSZXNvbHZlcigpCiB7Ci0gICAgbV9mb250U2VsZWN0b3It
PmNsZWFyRG9jdW1lbnQoKTsKLQogI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJT04pCiAg
ICAgbV92aWV3cG9ydFN0eWxlUmVzb2x2ZXItPmNsZWFyRG9jdW1lbnQoKTsKICNlbmRpZgpAQCAt
NzQ4LDcgKzc0NSw3IEBAIFJlZjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JF
bGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlclN0eWxlKiBkCiAgICAgICAgIGlmICghc19z
dHlsZU5vdFlldEF2YWlsYWJsZSkgewogICAgICAgICAgICAgc19zdHlsZU5vdFlldEF2YWlsYWJs
ZSA9ICZSZW5kZXJTdHlsZTo6Y3JlYXRlKCkubGVha1JlZigpOwogICAgICAgICAgICAgc19zdHls
ZU5vdFlldEF2YWlsYWJsZS0+c2V0RGlzcGxheShOT05FKTsKLSAgICAgICAgICAgIHNfc3R5bGVO
b3RZZXRBdmFpbGFibGUtPmZvbnRDYXNjYWRlKCkudXBkYXRlKG1fZm9udFNlbGVjdG9yKTsKKyAg
ICAgICAgICAgIHNfc3R5bGVOb3RZZXRBdmFpbGFibGUtPmZvbnRDYXNjYWRlKCkudXBkYXRlKCZk
b2N1bWVudCgpLmZvbnRTZWxlY3RvcigpKTsKICAgICAgICAgfQogICAgICAgICBlbGVtZW50LT5k
b2N1bWVudCgpLnNldEhhc05vZGVzV2l0aFBsYWNlaG9sZGVyU3R5bGUoKTsKICAgICAgICAgcmV0
dXJuICpzX3N0eWxlTm90WWV0QXZhaWxhYmxlOwpAQCAtMTAzMSw3ICsxMDI4LDcgQEAgUmVmPFJl
bmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpkZWZhdWx0U3R5bGVGb3JFbGVtZW50KCkKICAgICAv
LyBNYWtlIHN1cmUgb3VyIGZvbnRzIGFyZSBpbml0aWFsaXplZCBpZiB3ZSBkb24ndCBpbmhlcml0
IHRoZW0gZnJvbSBvdXIgcGFyZW50IHN0eWxlLgogICAgIGlmIChTZXR0aW5ncyogc2V0dGluZ3Mg
PSBkb2N1bWVudFNldHRpbmdzKCkpIHsKICAgICAgICAgaW5pdGlhbGl6ZUZvbnRTdHlsZShzZXR0
aW5ncyk7Ci0gICAgICAgIG1fc3RhdGUuc3R5bGUoKS0+Zm9udENhc2NhZGUoKS51cGRhdGUoZm9u
dFNlbGVjdG9yKCkpOworICAgICAgICBtX3N0YXRlLnN0eWxlKCktPmZvbnRDYXNjYWRlKCkudXBk
YXRlKCZkb2N1bWVudCgpLmZvbnRTZWxlY3RvcigpKTsKICAgICB9IGVsc2UKICAgICAgICAgbV9z
dGF0ZS5zdHlsZSgpLT5mb250Q2FzY2FkZSgpLnVwZGF0ZShudWxscHRyKTsKIApAQCAtMTQ4NCw3
ICsxNDgxLDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjp1cGRhdGVGb250KCkKICAgICBjaGVja0Zv
ckdlbmVyaWNGYW1pbHlDaGFuZ2Uoc3R5bGUsIG1fc3RhdGUucGFyZW50U3R5bGUoKSk7CiAgICAg
Y2hlY2tGb3Jab29tQ2hhbmdlKHN0eWxlLCBtX3N0YXRlLnBhcmVudFN0eWxlKCkpOwogICAgIGNo
ZWNrRm9yT3JpZW50YXRpb25DaGFuZ2Uoc3R5bGUpOwotICAgIHN0eWxlLT5mb250Q2FzY2FkZSgp
LnVwZGF0ZShtX2ZvbnRTZWxlY3Rvcik7CisgICAgc3R5bGUtPmZvbnRDYXNjYWRlKCkudXBkYXRl
KCZkb2N1bWVudCgpLmZvbnRTZWxlY3RvcigpKTsKICAgICBpZiAobV9zdGF0ZS5mb250U2l6ZUhh
c1ZpZXdwb3J0VW5pdHMoKSkKICAgICAgICAgc3R5bGUtPnNldEhhc1ZpZXdwb3J0VW5pdHModHJ1
ZSk7CiAgICAgbV9zdGF0ZS5zZXRGb250RGlydHkoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJl
c29sdmVyLmgKaW5kZXggOWFmMTY1YS4uN2ExMTZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5oCkBAIC01MCw3ICs1MCw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENT
U0N1cnNvckltYWdlVmFsdWU7Ci1jbGFzcyBDU1NGb250U2VsZWN0b3I7CiBjbGFzcyBDU1NGb250
RmFjZTsKIGNsYXNzIENTU0ZvbnRGYWNlUnVsZTsKIGNsYXNzIENTU0ZvbnRWYWx1ZTsKQEAgLTIx
OSw3ICsyMTgsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNTZWxlY3RvckZvckNsYXNzKGNvbnN0
IEF0b21pY1N0cmluZyYpIGNvbnN0OwogICAgIGJvb2wgaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGUo
Y29uc3QgRWxlbWVudCYsIGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0OwogCi0gICAgQ1NTRm9u
dFNlbGVjdG9yKiBmb250U2VsZWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2ZvbnRTZWxlY3Rvci5n
ZXQoKTsgfQogI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJT04pCiAgICAgVmlld3BvcnRT
dHlsZVJlc29sdmVyKiB2aWV3cG9ydFN0eWxlUmVzb2x2ZXIoKSB7IHJldHVybiBtX3ZpZXdwb3J0
U3R5bGVSZXNvbHZlci5nZXQoKTsgfQogI2VuZGlmCkBAIC01MjEsNyArNTE5LDYgQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgbV9tYXRjaEF1dGhvckFuZFVzZXJTdHlsZXM7CiAKLSAgICBSZWZQdHI8
Q1NTRm9udFNlbGVjdG9yPiBtX2ZvbnRTZWxlY3RvcjsKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVf
cHRyPE1lZGlhUXVlcnlSZXN1bHQ+PiBtX3ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3Vs
dHM7CiAKICNpZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggODY1YzE5MS4uNjQ5YTI2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQXR0ci5oIgogI2luY2x1ZGUgIkF1ZGlvUHJvZHVj
ZXIuaCIKICNpbmNsdWRlICJDREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJDU1NGb250U2VsZWN0
b3IuaCIKICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTU3R5
bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIKQEAgLTE5NDEsOSAr
MTk0MiwyMiBAQCB2b2lkIERvY3VtZW50OjpjcmVhdGVTdHlsZVJlc29sdmVyKCkKICAgICBtX3N0
eWxlU2hlZXRDb2xsZWN0aW9uLmNvbWJpbmVDU1NGZWF0dXJlRmxhZ3MoKTsKIH0KIAorQ1NTRm9u
dFNlbGVjdG9yJiBEb2N1bWVudDo6Zm9udFNlbGVjdG9yKCkKK3sKKyAgICBpZiAoIW1fZm9udFNl
bGVjdG9yKQorICAgICAgICBtX2ZvbnRTZWxlY3RvciA9IENTU0ZvbnRTZWxlY3Rvcjo6Y3JlYXRl
KCp0aGlzKTsKKyAgICByZXR1cm4gKm1fZm9udFNlbGVjdG9yOworfQorCiB2b2lkIERvY3VtZW50
OjpjbGVhclN0eWxlUmVzb2x2ZXIoKQogewogICAgIG1fc3R5bGVSZXNvbHZlciA9IG51bGxwdHI7
CisKKyAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgYmV0dGVyIGlmIHRoZSBGb250U2VsZWN0b3Ig
Y291bGQgc3Vydml2ZSB0aGlzIG9wZXJhdGlvbi4KKyAgICBpZiAobV9mb250U2VsZWN0b3IpIHsK
KyAgICAgICAgbV9mb250U2VsZWN0b3ItPmNsZWFyRG9jdW1lbnQoKTsKKyAgICAgICAgbV9mb250
U2VsZWN0b3IgPSBudWxscHRyOworICAgIH0KIH0KIAogdm9pZCBEb2N1bWVudDo6Y3JlYXRlUmVu
ZGVyVHJlZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGYxYjdkM2YuLmRlY2M2MDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC02OSw2ICs2OSw3IEBAIGNsYXNzIEFYT2JqZWN0Q2FjaGU7CiBj
bGFzcyBBdHRyOwogY2xhc3MgQXVkaW9Qcm9kdWNlcjsKIGNsYXNzIENEQVRBU2VjdGlvbjsKK2Ns
YXNzIENTU0ZvbnRTZWxlY3RvcjsKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBD
U1NTdHlsZVNoZWV0OwogY2xhc3MgQ2FjaGVkQ1NTU3R5bGVTaGVldDsKQEAgLTU0NCw2ICs1NDUs
OCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAqbV9zdHlsZVJlc29sdmVyOwogICAgIH0KIAor
ICAgIENTU0ZvbnRTZWxlY3RvciYgZm9udFNlbGVjdG9yKCk7CisKICAgICB2b2lkIG5vdGlmeVJl
bW92ZVBlbmRpbmdTaGVldElmTmVlZGVkKCk7CiAKICAgICBib29sIGhhdmVTdHlsZXNoZWV0c0xv
YWRlZCgpIGNvbnN0OwpAQCAtMTY5MSw2ICsxNjk0LDggQEAgcHJpdmF0ZToKICAgICBEb2N1bWVu
dCogbV90ZW1wbGF0ZURvY3VtZW50SG9zdDsgLy8gTWFudWFsbHkgbWFuYWdlZCB3ZWFrcmVmIChi
YWNrcG9pbnRlciBmcm9tIG1fdGVtcGxhdGVEb2N1bWVudCkuCiAjZW5kaWYKIAorICAgIFJlZlB0
cjxDU1NGb250U2VsZWN0b3I+IG1fZm9udFNlbGVjdG9yOworCiAjaWYgRU5BQkxFKEZPTlRfTE9B
RF9FVkVOVFMpCiAgICAgUmVmUHRyPEZvbnRMb2FkZXI+IG1fZm9udGxvYWRlcjsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5jcHAKaW5kZXggNWM0NTIxMC4uMDlkYjMxNiAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0y
MDkzLDcgKzIwOTMsMTAgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldEZvbnQo
Y29uc3QgU3RyaW5nJiBuZXdGb250KQogICAgIC8vIE1hcCB0aGUgPGNhbnZhcz4gZm9udCBpbnRv
IHRoZSB0ZXh0IHN0eWxlLiBJZiB0aGUgZm9udCB1c2VzIGtleXdvcmRzIGxpa2UgbGFyZ2VyL3Nt
YWxsZXIsIHRoZXNlIHdpbGwgd29yawogICAgIC8vIHJlbGF0aXZlIHRvIHRoZSBjYW52YXMuCiAg
ICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsK
LSAgICBjYW52YXMoKS0+ZG9jdW1lbnQoKS51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisKKyAgICBE
b2N1bWVudCYgZG9jdW1lbnQgPSBjYW52YXMoKS0+ZG9jdW1lbnQoKTsKKyAgICBkb2N1bWVudC51
cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisKICAgICBpZiAoUmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5
bGUgPSBjYW52YXMoKS0+Y29tcHV0ZWRTdHlsZSgpKQogICAgICAgICBuZXdTdHlsZS0+c2V0Rm9u
dERlc2NyaXB0aW9uKGNvbXB1dGVkU3R5bGUtPmZvbnREZXNjcmlwdGlvbigpKTsKICAgICBlbHNl
IHsKQEAgLTIxMjMsOSArMjEyNiw5IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpz
ZXRGb250KGNvbnN0IFN0cmluZyYgbmV3Rm9udCkKICAgICBzdHlsZVJlc29sdmVyLmFwcGx5UHJv
cGVydHlUb0N1cnJlbnRTdHlsZShDU1NQcm9wZXJ0eUxpbmVIZWlnaHQsIHBhcnNlZFN0eWxlLT5n
ZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5TGluZUhlaWdodCkuZ2V0KCkpOwogCiAgICAg
bW9kaWZpYWJsZVN0YXRlKCkubV9mb250ID0gbmV3U3R5bGUtPmZvbnRDYXNjYWRlKCk7Ci0gICAg
bW9kaWZpYWJsZVN0YXRlKCkubV9mb250LnVwZGF0ZShzdHlsZVJlc29sdmVyLmZvbnRTZWxlY3Rv
cigpKTsKKyAgICBtb2RpZmlhYmxlU3RhdGUoKS5tX2ZvbnQudXBkYXRlKCZkb2N1bWVudC5mb250
U2VsZWN0b3IoKSk7CiAgICAgbW9kaWZpYWJsZVN0YXRlKCkubV9yZWFsaXplZEZvbnQgPSB0cnVl
OwotICAgIHN0eWxlUmVzb2x2ZXIuZm9udFNlbGVjdG9yKCktPnJlZ2lzdGVyRm9ySW52YWxpZGF0
aW9uQ2FsbGJhY2tzKCZtb2RpZmlhYmxlU3RhdGUoKSk7CisgICAgZG9jdW1lbnQuZm9udFNlbGVj
dG9yKCkucmVnaXN0ZXJGb3JJbnZhbGlkYXRpb25DYWxsYmFja3MoJm1vZGlmaWFibGVTdGF0ZSgp
KTsKIH0KIAogU3RyaW5nIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6dGV4dEFsaWduKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRleCAxZjU3
YjA4Li5jMDNkYmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
Y3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBSZW5kZXJMaXN0Qm94Ojp1cGRhdGVGcm9tRWxl
bWVudCgpCiAgICAgICAgICAgICAgICAgRm9udERlc2NyaXB0aW9uIGQgPSBpdGVtRm9udC5mb250
RGVzY3JpcHRpb24oKTsKICAgICAgICAgICAgICAgICBkLnNldFdlaWdodChkLmJvbGRlcldlaWdo
dCgpKTsKICAgICAgICAgICAgICAgICBpdGVtRm9udCA9IEZvbnRDYXNjYWRlKGQsIGl0ZW1Gb250
LmxldHRlclNwYWNpbmcoKSwgaXRlbUZvbnQud29yZFNwYWNpbmcoKSk7Ci0gICAgICAgICAgICAg
ICAgaXRlbUZvbnQudXBkYXRlKGRvY3VtZW50KCkuZW5zdXJlU3R5bGVSZXNvbHZlcigpLmZvbnRT
ZWxlY3RvcigpKTsKKyAgICAgICAgICAgICAgICBpdGVtRm9udC51cGRhdGUoJmRvY3VtZW50KCku
Zm9udFNlbGVjdG9yKCkpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoIXRleHQu
aXNFbXB0eSgpKSB7CkBAIC00MDgsNyArNDA4LDcgQEAgdm9pZCBSZW5kZXJMaXN0Qm94OjpwYWlu
dEl0ZW1Gb3JlZ3JvdW5kKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYK
ICAgICAgICAgRm9udERlc2NyaXB0aW9uIGQgPSBpdGVtRm9udC5mb250RGVzY3JpcHRpb24oKTsK
ICAgICAgICAgZC5zZXRXZWlnaHQoZC5ib2xkZXJXZWlnaHQoKSk7CiAgICAgICAgIGl0ZW1Gb250
ID0gRm9udENhc2NhZGUoZCwgaXRlbUZvbnQubGV0dGVyU3BhY2luZygpLCBpdGVtRm9udC53b3Jk
U3BhY2luZygpKTsKLSAgICAgICAgaXRlbUZvbnQudXBkYXRlKGRvY3VtZW50KCkuZW5zdXJlU3R5
bGVSZXNvbHZlcigpLmZvbnRTZWxlY3RvcigpKTsKKyAgICAgICAgaXRlbUZvbnQudXBkYXRlKCZk
b2N1bWVudCgpLmZvbnRTZWxlY3RvcigpKTsKICAgICB9CiAKICAgICAvLyBEcmF3IHRoZSBpdGVt
IHRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlz
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCmluZGV4
IDIyYmYzZDIuLjIwYWY3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcApAQCAtNjYyLDcgKzY2Miw3IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNldFRl
eHRGcm9tSXRlbSh1bnNpZ25lZCBsaXN0SW5kZXgpCiAKIEZvbnRTZWxlY3RvciogUmVuZGVyTWVu
dUxpc3Q6OmZvbnRTZWxlY3RvcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGRvY3VtZW50KCkuZW5z
dXJlU3R5bGVSZXNvbHZlcigpLmZvbnRTZWxlY3RvcigpOworICAgIHJldHVybiAmZG9jdW1lbnQo
KS5mb250U2VsZWN0b3IoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTZWFyY2hGaWVsZC5jcHAKaW5kZXggMDA0YTI1OS4uMzAyYjk5NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCkBAIC0zMzksNyArMzM5
LDcgQEAgdm9pZCBSZW5kZXJTZWFyY2hGaWVsZDo6c2V0VGV4dEZyb21JdGVtKHVuc2lnbmVkIGxp
c3RJbmRleCkKIAogRm9udFNlbGVjdG9yKiBSZW5kZXJTZWFyY2hGaWVsZDo6Zm9udFNlbGVjdG9y
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gZG9jdW1lbnQoKS5lbnN1cmVTdHlsZVJlc29sdmVyKCku
Zm9udFNlbGVjdG9yKCk7CisgICAgcmV0dXJuICZkb2N1bWVudCgpLmZvbnRTZWxlY3RvcigpOwog
fQogCiBIb3N0V2luZG93KiBSZW5kZXJTZWFyY2hGaWVsZDo6aG9zdFdpbmRvdygpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmNwcAppbmRleCA5
NDI4NDlkLi5iODQ3YWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVTYWZhcmkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZVNhZmFyaS5jcHAKQEAgLTQwMSw3ICs0MDEsNyBAQCB2b2lkIFJlbmRlclRoZW1lU2FmYXJp
OjpzZXRGb250RnJvbUNvbnRyb2xTaXplKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIFJl
bgogICAgIHN0eWxlLnNldExpbmVIZWlnaHQoUmVuZGVyU3R5bGU6OmluaXRpYWxMaW5lSGVpZ2h0
KCkpOwogCiAgICAgaWYgKHN0eWxlLnNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24p
KQotICAgICAgICBzdHlsZS5mb250Q2FzY2FkZSgpLnVwZGF0ZShzdHlsZVJlc29sdmVyLmZvbnRT
ZWxlY3RvcigpKTsKKyAgICAgICAgc3R5bGUuZm9udENhc2NhZGUoKS51cGRhdGUoJnN0eWxlUmVz
b2x2ZXIuZm9udFNlbGVjdG9yKCkpOwogfQogCiBOU0NvbnRyb2xTaXplIFJlbmRlclRoZW1lU2Fm
YXJpOjpjb250cm9sU2l6ZUZvclN5c3RlbUZvbnQoUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvU2l6aW5nLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b1NpemluZy5jcHAKaW5kZXggMzg2OWYz
My4uMjIwZWI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRv
U2l6aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9TaXppbmcu
Y3BwCkBAIC0xNjQsNyArMTY0LDcgQEAgYm9vbCBUZXh0QXV0b1NpemluZ1ZhbHVlOjphZGp1c3RO
b2RlU2l6ZXMoKQogICAgICAgICAgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbiA9
IHN0eWxlLT5mb250RGVzY3JpcHRpb24oKTsKICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5z
ZXRDb21wdXRlZFNpemUoYXZlcmFnZVNpemUpOwogICAgICAgICAgICAgc3R5bGUtPnNldEZvbnRE
ZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOwotICAgICAgICAgICAgc3R5bGUtPmZvbnRDYXNj
YWRlKCkudXBkYXRlKGF1dG9TaXppbmdOb2RlLT5kb2N1bWVudCgpLmVuc3VyZVN0eWxlUmVzb2x2
ZXIoKS5mb250U2VsZWN0b3IoKSk7CisgICAgICAgICAgICBzdHlsZS0+Zm9udENhc2NhZGUoKS51
cGRhdGUoJmF1dG9TaXppbmdOb2RlLT5kb2N1bWVudCgpLmZvbnRTZWxlY3RvcigpKTsKICAgICAg
ICAgICAgIHRleHQtPnBhcmVudCgpLT5zZXRTdHlsZShzdHlsZS5yZWxlYXNlTm9uTnVsbCgpKTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgUmVuZGVyRWxlbWVudCogcGFyZW50UmVuZGVyZXIg
PSB0ZXh0LT5wYXJlbnQoKTsKQEAgLTE3Niw3ICsxNzYsNyBAQCBib29sIFRleHRBdXRvU2l6aW5n
VmFsdWU6OmFkanVzdE5vZGVTaXplcygpCiAgICAgICAgICAgICBpZiAobGlzdE1hcmtlclJlbmRl
cmVyLT5pc0xpc3RNYXJrZXIoKSkgewogICAgICAgICAgICAgICAgIFJlZlB0cjxSZW5kZXJTdHls
ZT4gc3R5bGUgPSBjbG9uZVJlbmRlclN0eWxlV2l0aFN0YXRlKGxpc3RNYXJrZXJSZW5kZXJlci0+
c3R5bGUoKSk7CiAgICAgICAgICAgICAgICAgc3R5bGUtPnNldEZvbnREZXNjcmlwdGlvbihmb250
RGVzY3JpcHRpb24pOwotICAgICAgICAgICAgICAgIHN0eWxlLT5mb250Q2FzY2FkZSgpLnVwZGF0
ZShhdXRvU2l6aW5nTm9kZS0+ZG9jdW1lbnQoKS5lbnN1cmVTdHlsZVJlc29sdmVyKCkuZm9udFNl
bGVjdG9yKCkpOworICAgICAgICAgICAgICAgIHN0eWxlLT5mb250Q2FzY2FkZSgpLnVwZGF0ZSgm
YXV0b1NpemluZ05vZGUtPmRvY3VtZW50KCkuZm9udFNlbGVjdG9yKCkpOwogICAgICAgICAgICAg
ICAgIGRvd25jYXN0PFJlbmRlckxpc3RNYXJrZXI+KCpsaXN0TWFya2VyUmVuZGVyZXIpLnNldFN0
eWxlKHN0eWxlLnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
CkBAIC0xOTYsNyArMTk2LDcgQEAgYm9vbCBUZXh0QXV0b1NpemluZ1ZhbHVlOjphZGp1c3ROb2Rl
U2l6ZXMoKQogICAgICAgICAgICAgICAgIG5ld1BhcmVudFN0eWxlLT5zZXRMaW5lSGVpZ2h0KExl
bmd0aChsaW5lSGVpZ2h0LCBGaXhlZCkpOwogICAgICAgICAgICAgICAgIG5ld1BhcmVudFN0eWxl
LT5zZXRTcGVjaWZpZWRMaW5lSGVpZ2h0KGxpbmVIZWlnaHRMZW5ndGgpOwogICAgICAgICAgICAg
ICAgIG5ld1BhcmVudFN0eWxlLT5zZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsK
LSAgICAgICAgICAgICAgICBuZXdQYXJlbnRTdHlsZS0+Zm9udENhc2NhZGUoKS51cGRhdGUoYXV0
b1NpemluZ05vZGUtPmRvY3VtZW50KCkuZW5zdXJlU3R5bGVSZXNvbHZlcigpLmZvbnRTZWxlY3Rv
cigpKTsKKyAgICAgICAgICAgICAgICBuZXdQYXJlbnRTdHlsZS0+Zm9udENhc2NhZGUoKS51cGRh
dGUoJmF1dG9TaXppbmdOb2RlLT5kb2N1bWVudCgpLmZvbnRTZWxlY3RvcigpKTsKICAgICAgICAg
ICAgICAgICBwYXJlbnRSZW5kZXJlci0+c2V0U3R5bGUobmV3UGFyZW50U3R5bGUucmVsZWFzZU5v
bk51bGwoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTIyMCw3ICsyMjAsNyBAQCB2
b2lkIFRleHRBdXRvU2l6aW5nVmFsdWU6OnJlc2V0KCkKICAgICAgICAgICAgIGZvbnREZXNjcmlw
dGlvbi5zZXRDb21wdXRlZFNpemUob3JpZ2luYWxTaXplKTsKICAgICAgICAgICAgIFJlZlB0cjxS
ZW5kZXJTdHlsZT4gc3R5bGUgPSBjbG9uZVJlbmRlclN0eWxlV2l0aFN0YXRlKHRleHQtPnN0eWxl
KCkpOwogICAgICAgICAgICAgc3R5bGUtPnNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRp
b24pOwotICAgICAgICAgICAgc3R5bGUtPmZvbnRDYXNjYWRlKCkudXBkYXRlKGF1dG9TaXppbmdO
b2RlLT5kb2N1bWVudCgpLmVuc3VyZVN0eWxlUmVzb2x2ZXIoKS5mb250U2VsZWN0b3IoKSk7Cisg
ICAgICAgICAgICBzdHlsZS0+Zm9udENhc2NhZGUoKS51cGRhdGUoJmF1dG9TaXppbmdOb2RlLT5k
b2N1bWVudCgpLmZvbnRTZWxlY3RvcigpKTsKICAgICAgICAgICAgIHRleHQtPnBhcmVudCgpLT5z
ZXRTdHlsZShzdHlsZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgfQogICAgICAgICAvLyBS
ZXNldCB0aGUgbGluZSBoZWlnaHQgb2YgdGhlIHBhcmVudC4KQEAgLTIzNyw3ICsyMzcsNyBAQCB2
b2lkIFRleHRBdXRvU2l6aW5nVmFsdWU6OnJlc2V0KCkKICAgICAgICAgICAgIFJlZlB0cjxSZW5k
ZXJTdHlsZT4gbmV3UGFyZW50U3R5bGUgPSBjbG9uZVJlbmRlclN0eWxlV2l0aFN0YXRlKHBhcmVu
dFN0eWxlKTsKICAgICAgICAgICAgIG5ld1BhcmVudFN0eWxlLT5zZXRMaW5lSGVpZ2h0KG9yaWdp
bmFsTGluZUhlaWdodCk7CiAgICAgICAgICAgICBuZXdQYXJlbnRTdHlsZS0+c2V0Rm9udERlc2Ny
aXB0aW9uKGZvbnREZXNjcmlwdGlvbik7Ci0gICAgICAgICAgICBuZXdQYXJlbnRTdHlsZS0+Zm9u
dENhc2NhZGUoKS51cGRhdGUoYXV0b1NpemluZ05vZGUtPmRvY3VtZW50KCkuZW5zdXJlU3R5bGVS
ZXNvbHZlcigpLmZvbnRTZWxlY3RvcigpKTsKKyAgICAgICAgICAgIG5ld1BhcmVudFN0eWxlLT5m
b250Q2FzY2FkZSgpLnVwZGF0ZSgmYXV0b1NpemluZ05vZGUtPmRvY3VtZW50KCkuZm9udFNlbGVj
dG9yKCkpOwogICAgICAgICAgICAgcGFyZW50UmVuZGVyZXItPnNldFN0eWxlKG5ld1BhcmVudFN0
eWxlLnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAKaW5kZXggOTll
YjcxMS4uNDcyYmIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0lubGluZVRleHQuY3BwCkBAIC0yNDEsNyArMjQxLDcgQEAgdm9pZCBSZW5kZXJT
VkdJbmxpbmVUZXh0Ojpjb21wdXRlTmV3U2NhbGVkRm9udEZvclN0eWxlKGNvbnN0IFJlbmRlck9i
amVjdCYgcmVuZGUKICAgICBmb250RGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKFN0eWxlOjpj
b21wdXRlZEZvbnRTaXplRnJvbVNwZWNpZmllZFNpemVGb3JTVkdJbmxpbmVUZXh0KGZvbnREZXNj
cmlwdGlvbi5jb21wdXRlZFNpemUoKSwgZm9udERlc2NyaXB0aW9uLmlzQWJzb2x1dGVTaXplKCks
IHNjYWxpbmdGYWN0b3IsIHJlbmRlcmVyLmRvY3VtZW50KCkpKTsKIAogICAgIHNjYWxlZEZvbnQg
PSBGb250Q2FzY2FkZShmb250RGVzY3JpcHRpb24sIDAsIDApOwotICAgIHNjYWxlZEZvbnQudXBk
YXRlKHJlbmRlcmVyLmRvY3VtZW50KCkuZW5zdXJlU3R5bGVSZXNvbHZlcigpLmZvbnRTZWxlY3Rv
cigpKTsKKyAgICBzY2FsZWRGb250LnVwZGF0ZSgmcmVuZGVyZXIuZG9jdW1lbnQoKS5mb250U2Vs
ZWN0b3IoKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
UmVzb2x2ZUZvckRvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2
ZUZvckRvY3VtZW50LmNwcAppbmRleCBhZjY4MTg4Li45NzNmZWI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCkBAIC0xMTUsOCArMTE1
LDcgQEAgUmVmPFJlbmRlclN0eWxlPiByZXNvbHZlRm9yRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQm
IGRvY3VtZW50KQogCiAgICAgZG9jdW1lbnRTdHlsZS5nZXQoKS5zZXRGb250RGVzY3JpcHRpb24o
Zm9udERlc2NyaXB0aW9uKTsKIAotICAgIENTU0ZvbnRTZWxlY3RvciogZm9udFNlbGVjdG9yID0g
ZG9jdW1lbnQuc3R5bGVSZXNvbHZlcklmRXhpc3RzKCkgPyBkb2N1bWVudC5zdHlsZVJlc29sdmVy
SWZFeGlzdHMoKS0+Zm9udFNlbGVjdG9yKCkgOiBudWxscHRyOwotICAgIGRvY3VtZW50U3R5bGUu
Z2V0KCkuZm9udENhc2NhZGUoKS51cGRhdGUoZm9udFNlbGVjdG9yKTsKKyAgICBkb2N1bWVudFN0
eWxlLmdldCgpLmZvbnRDYXNjYWRlKCkudXBkYXRlKCZjb25zdF9jYXN0PERvY3VtZW50Jj4oZG9j
dW1lbnQpLmZvbnRTZWxlY3RvcigpKTsKIAogICAgIHJldHVybiBkb2N1bWVudFN0eWxlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcAppbmRleCAyNGNiNWU4Li42
NDljZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcApAQCAt
OTc2LDkgKzk3Niw4IEBAIHZvaWQgcmVzb2x2ZVRyZWUoRG9jdW1lbnQmIGRvY3VtZW50LCBDaGFu
Z2UgY2hhbmdlKQogICAgICAgICAvLyBJbnNlcnRpbmcgdGhlIHBpY3RvZ3JhcGggZm9udCBhdCB0
aGUgZW5kIG9mIHRoZSBmb250IGZhbGxiYWNrIGxpc3QgaXMgZG9uZSBieSB0aGUKICAgICAgICAg
Ly8gZm9udCBzZWxlY3Rvciwgc28gc2V0IGEgZm9udCBzZWxlY3RvciBpZiBuZWVkZWQuCiAgICAg
ICAgIGlmIChTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudC5zZXR0aW5ncygpKSB7Ci0gICAg
ICAgICAgICBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyID0gZG9jdW1lbnQuc3R5bGVSZXNv
bHZlcklmRXhpc3RzKCk7Ci0gICAgICAgICAgICBpZiAoc2V0dGluZ3MtPmZvbnRGYWxsYmFja1By
ZWZlcnNQaWN0b2dyYXBocygpICYmIHN0eWxlUmVzb2x2ZXIpCi0gICAgICAgICAgICAgICAgZG9j
dW1lbnRTdHlsZS5nZXQoKS5mb250Q2FzY2FkZSgpLnVwZGF0ZShzdHlsZVJlc29sdmVyLT5mb250
U2VsZWN0b3IoKSk7CisgICAgICAgICAgICBpZiAoc2V0dGluZ3MtPmZvbnRGYWxsYmFja1ByZWZl
cnNQaWN0b2dyYXBocygpKQorICAgICAgICAgICAgICAgIGRvY3VtZW50U3R5bGUuZ2V0KCkuZm9u
dENhc2NhZGUoKS51cGRhdGUoJmRvY3VtZW50LmZvbnRTZWxlY3RvcigpKTsKICAgICAgICAgfQog
CiAgICAgICAgIFN0eWxlOjpDaGFuZ2UgZG9jdW1lbnRDaGFuZ2UgPSBkZXRlcm1pbmVDaGFuZ2Uo
ZG9jdW1lbnRTdHlsZS5nZXQoKSwgZG9jdW1lbnQucmVuZGVyVmlldygpLT5zdHlsZSgpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>