<?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>185963</bug_id>
          
          <creation_ts>2018-05-24 15:54:01 -0700</creation_ts>
          <short_desc>Reduce copying of FontCascadeDescription objects by moving them around</short_desc>
          <delta_ts>2018-05-24 17:26:23 -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>CSS</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>koivisto</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1427084</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-05-24 15:54:01 -0700</bug_when>
    <thetext>Reduce copying of FontCascadeDescription objects by moving them around when possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427087</commentid>
    <comment_count>1</comment_count>
      <attachid>341230</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-05-24 15:56:04 -0700</bug_when>
    <thetext>Created attachment 341230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427113</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-05-24 17:09:08 -0700</bug_when>
    <thetext>This is great, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427121</commentid>
    <comment_count>3</comment_count>
      <attachid>341230</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-24 17:25:29 -0700</bug_when>
    <thetext>Comment on attachment 341230
Patch

Clearing flags on attachment: 341230

Committed r232175: &lt;https://trac.webkit.org/changeset/232175&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427122</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-24 17:25:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427123</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-24 17:26:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/40540743&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341230</attachid>
            <date>2018-05-24 15:56:04 -0700</date>
            <delta_ts>2018-05-24 17:25:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185963-20180524155603.patch</filename>
            <type>text/plain</type>
            <size>55530</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJiNDNkNjZhYzhkODhi
N2M4YWU2Mzc4NGNlMjc0NzBiMjkzMzE4MC4uMTNkYjFhMWZkOGJlNjIwYmY0YzNhOTliOTE4ODBm
ZGRmOTc2MjYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDE4LTA1LTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVkdWNlIGNvcHlpbmcgb2Yg
Rm9udENhc2NhZGVEZXNjcmlwdGlvbiBvYmplY3RzIGJ5IG1vdmluZyB0aGVtIGFyb3VuZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1OTYzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVkdWNlIGNvcHlp
bmcgb2YgRm9udENhc2NhZGVEZXNjcmlwdGlvbiBvYmplY3RzIGJ5IG1vdmluZyB0aGVtIGFyb3Vu
ZCB3aGVuIHBvc3NpYmxlLgorCisgICAgICAgICogY3NzL1N0eWxlQnVpbGRlckN1c3RvbS5oOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVlV2Via2l0TG9j
YWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlJbml0aWFs
Rm9udEZhbWlseSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5
SW5oZXJpdEZvbnRGYW1pbHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyQ3VzdG9t
OjphcHBseVZhbHVlRm9udEZhbWlseSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJD
dXN0b206OmFwcGx5SW5oZXJpdEZvbnRWYXJpYW50TGlnYXR1cmVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlJbml0aWFsRm9udFZhcmlhbnRMaWdhdHVyZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVlRm9udFZh
cmlhbnRMaWdhdHVyZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyQ3VzdG9tOjph
cHBseUluaGVyaXRGb250VmFyaWFudE51bWVyaWMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVC
dWlsZGVyQ3VzdG9tOjphcHBseUluaXRpYWxGb250VmFyaWFudE51bWVyaWMpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVlRm9udFZhcmlhbnROdW1lcmlj
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlJbmhlcml0Rm9u
dFZhcmlhbnRFYXN0QXNpYW4pOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyQ3VzdG9t
OjphcHBseUluaXRpYWxGb250VmFyaWFudEVhc3RBc2lhbik6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVGb250VmFyaWFudEVhc3RBc2lhbik6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5SW5pdGlhbEZvbnRTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlJbmhlcml0Rm9udFNp
emUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseUluaXRpYWxG
b250U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseUlu
aGVyaXRGb250U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyQ3VzdG9tOjph
cHBseVZhbHVlRm9udFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQnVpbGRlckN1c3Rv
bTo6YXBwbHlWYWx1ZUZvbnRTaXplKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjaGVja0Zvck9yaWVudGF0aW9uQ2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNoZWNrRm9yVGV4dFNpemVBZGp1c3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y2hlY2tGb3Jab29tQ2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNoZWNrRm9yR2VuZXJpY0ZhbWlseUNoYW5nZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjppbml0aWFsaXplRm9udFN0eWxlKToKKyAg
ICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNv
bHZlcjo6U3RhdGU6OnNldEZvbnREZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJlc29sdmVyOjpzZXRGb250RGVzY3JpcHRpb24pOgorICAgICAgICAqIGNzcy9tYWtlcHJvcC5w
bDoKKyAgICAgICAgKGdlbmVyYXRlSW5pdGlhbFZhbHVlU2V0dGVyKToKKyAgICAgICAgKGdlbmVy
YXRlSW5oZXJpdFZhbHVlU2V0dGVyKToKKyAgICAgICAgKGdlbmVyYXRlVmFsdWVTZXR0ZXIpOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldEZvbnQpOgorICAgICAg
ICAqIHBhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9uRmFz
dFNjcm9sbGFibGVSZWdpb25PdmVybGF5OjpkcmF3UmVjdCk6CisgICAgICAgICogcGFnZS9saW51
eC9SZXNvdXJjZVVzYWdlT3ZlcmxheUxpbnV4LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q2FzY2FkZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6Rm9u
dENhc2NhZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHA6
CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJXaW46OmRyYXdUZXh0QXRQb2ludCBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6ZHJhd1RleHQpOgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHJh
Z0xhYmVsRm9udCk6CisgICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZSk6
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnBhaW50KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c3R5bGVE
aWRDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJDb21iaW5lVGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb21iaW5lVGV4dDo6Y29tYmluZVRleHRJZk5lZWRlZCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpnZXRSZXBsYWNlbWVudFRleHRHZW9tZXRy
eSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Ym9sZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnBh
aW50SXRlbUZvcmVncm91bmQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0SXRlbTo6Y29tcHV0ZU1hcmtlclN0eWxl
IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFkanVzdFN0eWxlKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c2V0
Rm9udEZyb21Db250cm9sU2l6ZSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRBdXRv
U2l6aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvU2l6aW5nVmFsdWU6OmFkanVz
dFRleHROb2RlU2l6ZXMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9TaXppbmdWYWx1ZTo6
cmVzZXQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0Rm9udERlc2NyaXB0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRGb250U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTdHlsZTo6c2V0Rm9udFZhcmlhdGlvblNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjpzZXRGb250V2VpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjpzZXRGb250U3RyZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0
Rm9udEl0YWxpYyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNWR0lubGluZVRleHQ6OmNvbXB1dGVOZXdTY2FsZWRGb250Rm9yU3R5
bGUpOgorICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckZpcnN0
TGV0dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0eWxlRm9yRmlyc3RMZXR0ZXIpOgorICAg
ICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpyZXNvbHZlRm9yRG9jdW1lbnQpOgorCiAyMDE4LTA1LTI0ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPUyBXSzJdIExheW91dCBUZXN0IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3VwZGF0ZS1hZnRlci1uYXZpZ2F0aW9uLWZldGNoLWV2ZW50Lmh0dHBzLmh0bWwgaXMgYSBm
bGFreSBmYWlsdXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggNzQ5NTNiZTlhZmM1
MmJiMWY1YjRkMmQ0MTZiNmEzZWFlNGNlZTgyZC4uYTRjZjgzYmI3MjVhNWY5Njk3YjQzNzg0MDM3
YjBkN2Q1YTI0MjEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE4LTA1LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVkdWNlIGNvcHlpbmcgb2YgRm9udENhc2NhZGVEZXNjcmlwdGlvbiBvYmplY3RzIGJ5IG1v
dmluZyB0aGVtIGFyb3VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg1OTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVkdWNlIGNvcHlpbmcgb2YgRm9udENhc2NhZGVEZXNjcmlwdGlvbiBvYmplY3Rz
IGJ5IG1vdmluZyB0aGVtIGFyb3VuZCB3aGVuIHBvc3NpYmxlLgorCisgICAgICAgICogRnVsbHNj
cmVlblZpZGVvQ29udHJvbGxlci5jcHA6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9s
bGVyOjpkcmF3KToKKwogMjAxOC0wNS0xNSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gRXhwb3NlIFdlYiBBbmltYXRpb25zIENT
UyBpbnRlZ3JhdGlvbiBhcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlQnVpbGRlckN1c3RvbS5oCmluZGV4IGE3NGY5MzE1ODAwYzA5MjdmMWYxZjRjNmNiNDg0
ODlhMjllMWEwOTAuLmY4ZGQwZjAwYTgwZGI5Y2IyNWExZDNhNmM5NTVlNGJlNGM5YzBiNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDdXN0b20uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKQEAgLTc4Miw3ICs3ODIsNyBA
QCBpbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVXZWJraXRMb2NhbGUo
U3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbAogICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0TG9j
YWxlKG51bGxBdG9tKCkpOwogICAgIGVsc2UKICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldExv
Y2FsZShwcmltaXRpdmVWYWx1ZS5zdHJpbmdWYWx1ZSgpKTsKLSAgICBzdHlsZVJlc29sdmVyLnNl
dEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOworICAgIHN0eWxlUmVzb2x2ZXIuc2V0
Rm9udERlc2NyaXB0aW9uKFdURk1vdmUoZm9udERlc2NyaXB0aW9uKSk7CiB9CiAKIGlubGluZSB2
b2lkIFN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlWYWx1ZVdyaXRpbmdNb2RlKFN0eWxlUmVzb2x2
ZXImIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlJiB2YWx1ZSkKQEAgLTkxNCw3ICs5MTQsNyBAQCBp
bmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5SW5pdGlhbEZvbnRGYW1pbHkoU3R5
bGVSZXNvbHZlciYgc3R5bGVSZXNvbAogICAgIGlmICghaW5pdGlhbERlc2MuZmlyc3RGYW1pbHko
KS5pc0VtcHR5KCkpCiAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRGYW1pbGllcyhpbml0aWFs
RGVzYy5mYW1pbGllcygpKTsKIAotICAgIHN0eWxlUmVzb2x2ZXIuc2V0Rm9udERlc2NyaXB0aW9u
KGZvbnREZXNjcmlwdGlvbik7CisgICAgc3R5bGVSZXNvbHZlci5zZXRGb250RGVzY3JpcHRpb24o
V1RGTW92ZShmb250RGVzY3JpcHRpb24pKTsKIH0KIAogaW5saW5lIHZvaWQgU3R5bGVCdWlsZGVy
Q3VzdG9tOjphcHBseUluaGVyaXRGb250RmFtaWx5KFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2
ZXIpCkBAIC05MjQsNyArOTI0LDcgQEAgaW5saW5lIHZvaWQgU3R5bGVCdWlsZGVyQ3VzdG9tOjph
cHBseUluaGVyaXRGb250RmFtaWx5KFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2wKIAogICAgIGZv
bnREZXNjcmlwdGlvbi5zZXRGYW1pbGllcyhwYXJlbnRGb250RGVzY3JpcHRpb24uZmFtaWxpZXMo
KSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldElzU3BlY2lmaWVkRm9udChwYXJlbnRGb250RGVz
Y3JpcHRpb24uaXNTcGVjaWZpZWRGb250KCkpOwotICAgIHN0eWxlUmVzb2x2ZXIuc2V0Rm9udERl
c2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7CisgICAgc3R5bGVSZXNvbHZlci5zZXRGb250RGVz
Y3JpcHRpb24oV1RGTW92ZShmb250RGVzY3JpcHRpb24pKTsKIH0KIAogaW5saW5lIHZvaWQgU3R5
bGVCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVlRm9udEZhbWlseShTdHlsZVJlc29sdmVyJiBzdHls
ZVJlc29sdmVyLCBDU1NWYWx1ZSYgdmFsdWUpCkBAIC0xMDAxLDcgKzEwMDEsNyBAQCBpbmxpbmUg
dm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVGb250RmFtaWx5KFN0eWxlUmVzb2x2
ZXImIHN0eWxlUmVzb2x2ZQogICAgICAgICAgICAgc3R5bGVSZXNvbHZlci5zZXRGb250U2l6ZShm
b250RGVzY3JpcHRpb24sIFN0eWxlOjpmb250U2l6ZUZvcktleXdvcmQoc2l6ZUlkZW50aWZpZXIs
ICFvbGRGYW1pbHlVc2VkRml4ZWREZWZhdWx0U2l6ZSwgc3R5bGVSZXNvbHZlci5kb2N1bWVudCgp
KSk7CiAgICAgfQogCi0gICAgc3R5bGVSZXNvbHZlci5zZXRGb250RGVzY3JpcHRpb24oZm9udERl
c2NyaXB0aW9uKTsKKyAgICBzdHlsZVJlc29sdmVyLnNldEZvbnREZXNjcmlwdGlvbihXVEZNb3Zl
KGZvbnREZXNjcmlwdGlvbikpOwogfQogCiBpbmxpbmUgYm9vbCBTdHlsZUJ1aWxkZXJDdXN0b206
OmlzVmFsaWREaXNwbGF5VmFsdWUoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwgRURpc3Bs
YXkgZGlzcGxheSkKQEAgLTE0NjgsNyArMTQ2OCw3IEBAIGlubGluZSB2b2lkIFN0eWxlQnVpbGRl
ckN1c3RvbTo6YXBwbHlJbmhlcml0Rm9udFZhcmlhbnRMaWdhdHVyZXMoU3R5bGVSZXNvbHZlciYK
ICAgICBmb250RGVzY3JpcHRpb24uc2V0VmFyaWFudERpc2NyZXRpb25hcnlMaWdhdHVyZXMoc3R5
bGVSZXNvbHZlci5wYXJlbnRGb250RGVzY3JpcHRpb24oKS52YXJpYW50RGlzY3JldGlvbmFyeUxp
Z2F0dXJlcygpKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0VmFyaWFudEhpc3RvcmljYWxMaWdh
dHVyZXMoc3R5bGVSZXNvbHZlci5wYXJlbnRGb250RGVzY3JpcHRpb24oKS52YXJpYW50SGlzdG9y
aWNhbExpZ2F0dXJlcygpKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0VmFyaWFudENvbnRleHR1
YWxBbHRlcm5hdGVzKHN0eWxlUmVzb2x2ZXIucGFyZW50Rm9udERlc2NyaXB0aW9uKCkudmFyaWFu
dENvbnRleHR1YWxBbHRlcm5hdGVzKCkpOwotICAgIHN0eWxlUmVzb2x2ZXIuc2V0Rm9udERlc2Ny
aXB0aW9uKGZvbnREZXNjcmlwdGlvbik7CisgICAgc3R5bGVSZXNvbHZlci5zZXRGb250RGVzY3Jp
cHRpb24oV1RGTW92ZShmb250RGVzY3JpcHRpb24pKTsKIH0KIAogaW5saW5lIHZvaWQgU3R5bGVC
dWlsZGVyQ3VzdG9tOjphcHBseUluaXRpYWxGb250VmFyaWFudExpZ2F0dXJlcyhTdHlsZVJlc29s
dmVyJiBzdHlsZVJlc29sdmVyKQpAQCAtMTQ3OCw3ICsxNDc4LDcgQEAgaW5saW5lIHZvaWQgU3R5
bGVCdWlsZGVyQ3VzdG9tOjphcHBseUluaXRpYWxGb250VmFyaWFudExpZ2F0dXJlcyhTdHlsZVJl
c29sdmVyJgogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRWYXJpYW50RGlzY3JldGlvbmFyeUxpZ2F0
dXJlcyhGb250VmFyaWFudExpZ2F0dXJlczo6Tm9ybWFsKTsKICAgICBmb250RGVzY3JpcHRpb24u
c2V0VmFyaWFudEhpc3RvcmljYWxMaWdhdHVyZXMoRm9udFZhcmlhbnRMaWdhdHVyZXM6Ok5vcm1h
bCk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldFZhcmlhbnRDb250ZXh0dWFsQWx0ZXJuYXRlcyhG
b250VmFyaWFudExpZ2F0dXJlczo6Tm9ybWFsKTsKLSAgICBzdHlsZVJlc29sdmVyLnNldEZvbnRE
ZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOworICAgIHN0eWxlUmVzb2x2ZXIuc2V0Rm9udERl
c2NyaXB0aW9uKFdURk1vdmUoZm9udERlc2NyaXB0aW9uKSk7CiB9CiAKIGlubGluZSB2b2lkIFN0
eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlWYWx1ZUZvbnRWYXJpYW50TGlnYXR1cmVzKFN0eWxlUmVz
b2x2ZXImIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlJiB2YWx1ZSkKQEAgLTE0ODksNyArMTQ4OSw3
IEBAIGlubGluZSB2b2lkIFN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlWYWx1ZUZvbnRWYXJpYW50
TGlnYXR1cmVzKFN0eWxlUmVzb2x2ZXImIHN0CiAgICAgZm9udERlc2NyaXB0aW9uLnNldFZhcmlh
bnREaXNjcmV0aW9uYXJ5TGlnYXR1cmVzKHZhcmlhbnRMaWdhdHVyZXMuZGlzY3JldGlvbmFyeUxp
Z2F0dXJlcyk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldFZhcmlhbnRIaXN0b3JpY2FsTGlnYXR1
cmVzKHZhcmlhbnRMaWdhdHVyZXMuaGlzdG9yaWNhbExpZ2F0dXJlcyk7CiAgICAgZm9udERlc2Ny
aXB0aW9uLnNldFZhcmlhbnRDb250ZXh0dWFsQWx0ZXJuYXRlcyh2YXJpYW50TGlnYXR1cmVzLmNv
bnRleHR1YWxBbHRlcm5hdGVzKTsKLSAgICBzdHlsZVJlc29sdmVyLnNldEZvbnREZXNjcmlwdGlv
bihmb250RGVzY3JpcHRpb24pOworICAgIHN0eWxlUmVzb2x2ZXIuc2V0Rm9udERlc2NyaXB0aW9u
KFdURk1vdmUoZm9udERlc2NyaXB0aW9uKSk7CiB9CiAKIGlubGluZSB2b2lkIFN0eWxlQnVpbGRl
ckN1c3RvbTo6YXBwbHlJbmhlcml0Rm9udFZhcmlhbnROdW1lcmljKFN0eWxlUmVzb2x2ZXImIHN0
eWxlUmVzb2x2ZXIpCkBAIC0xNTAwLDcgKzE1MDAsNyBAQCBpbmxpbmUgdm9pZCBTdHlsZUJ1aWxk
ZXJDdXN0b206OmFwcGx5SW5oZXJpdEZvbnRWYXJpYW50TnVtZXJpYyhTdHlsZVJlc29sdmVyJiBz
dAogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRWYXJpYW50TnVtZXJpY0ZyYWN0aW9uKHN0eWxlUmVz
b2x2ZXIucGFyZW50Rm9udERlc2NyaXB0aW9uKCkudmFyaWFudE51bWVyaWNGcmFjdGlvbigpKTsK
ICAgICBmb250RGVzY3JpcHRpb24uc2V0VmFyaWFudE51bWVyaWNPcmRpbmFsKHN0eWxlUmVzb2x2
ZXIucGFyZW50Rm9udERlc2NyaXB0aW9uKCkudmFyaWFudE51bWVyaWNPcmRpbmFsKCkpOwogICAg
IGZvbnREZXNjcmlwdGlvbi5zZXRWYXJpYW50TnVtZXJpY1NsYXNoZWRaZXJvKHN0eWxlUmVzb2x2
ZXIucGFyZW50Rm9udERlc2NyaXB0aW9uKCkudmFyaWFudE51bWVyaWNTbGFzaGVkWmVybygpKTsK
LSAgICBzdHlsZVJlc29sdmVyLnNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOwor
ICAgIHN0eWxlUmVzb2x2ZXIuc2V0Rm9udERlc2NyaXB0aW9uKFdURk1vdmUoZm9udERlc2NyaXB0
aW9uKSk7CiB9CiAKIGlubGluZSB2b2lkIFN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlJbml0aWFs
Rm9udFZhcmlhbnROdW1lcmljKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIpCkBAIC0xNTEx
LDcgKzE1MTEsNyBAQCBpbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5SW5pdGlh
bEZvbnRWYXJpYW50TnVtZXJpYyhTdHlsZVJlc29sdmVyJiBzdAogICAgIGZvbnREZXNjcmlwdGlv
bi5zZXRWYXJpYW50TnVtZXJpY0ZyYWN0aW9uKEZvbnRWYXJpYW50TnVtZXJpY0ZyYWN0aW9uOjpO
b3JtYWwpOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRWYXJpYW50TnVtZXJpY09yZGluYWwoRm9u
dFZhcmlhbnROdW1lcmljT3JkaW5hbDo6Tm9ybWFsKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0
VmFyaWFudE51bWVyaWNTbGFzaGVkWmVybyhGb250VmFyaWFudE51bWVyaWNTbGFzaGVkWmVybzo6
Tm9ybWFsKTsKLSAgICBzdHlsZVJlc29sdmVyLnNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3Jp
cHRpb24pOworICAgIHN0eWxlUmVzb2x2ZXIuc2V0Rm9udERlc2NyaXB0aW9uKFdURk1vdmUoZm9u
dERlc2NyaXB0aW9uKSk7CiB9CiAKIGlubGluZSB2b2lkIFN0eWxlQnVpbGRlckN1c3RvbTo6YXBw
bHlWYWx1ZUZvbnRWYXJpYW50TnVtZXJpYyhTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBD
U1NWYWx1ZSYgdmFsdWUpCkBAIC0xNTIzLDcgKzE1MjMsNyBAQCBpbmxpbmUgdm9pZCBTdHlsZUJ1
aWxkZXJDdXN0b206OmFwcGx5VmFsdWVGb250VmFyaWFudE51bWVyaWMoU3R5bGVSZXNvbHZlciYg
c3R5bAogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRWYXJpYW50TnVtZXJpY0ZyYWN0aW9uKHZhcmlh
bnROdW1lcmljLmZyYWN0aW9uKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0VmFyaWFudE51bWVy
aWNPcmRpbmFsKHZhcmlhbnROdW1lcmljLm9yZGluYWwpOwogICAgIGZvbnREZXNjcmlwdGlvbi5z
ZXRWYXJpYW50TnVtZXJpY1NsYXNoZWRaZXJvKHZhcmlhbnROdW1lcmljLnNsYXNoZWRaZXJvKTsK
LSAgICBzdHlsZVJlc29sdmVyLnNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOwor
ICAgIHN0eWxlUmVzb2x2ZXIuc2V0Rm9udERlc2NyaXB0aW9uKFdURk1vdmUoZm9udERlc2NyaXB0
aW9uKSk7CiB9CiAKIGlubGluZSB2b2lkIFN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlJbmhlcml0
Rm9udFZhcmlhbnRFYXN0QXNpYW4oU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlcikKQEAgLTE1
MzIsNyArMTUzMiw3IEBAIGlubGluZSB2b2lkIFN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlJbmhl
cml0Rm9udFZhcmlhbnRFYXN0QXNpYW4oU3R5bGVSZXNvbHZlciYKICAgICBmb250RGVzY3JpcHRp
b24uc2V0VmFyaWFudEVhc3RBc2lhblZhcmlhbnQoc3R5bGVSZXNvbHZlci5wYXJlbnRGb250RGVz
Y3JpcHRpb24oKS52YXJpYW50RWFzdEFzaWFuVmFyaWFudCgpKTsKICAgICBmb250RGVzY3JpcHRp
b24uc2V0VmFyaWFudEVhc3RBc2lhbldpZHRoKHN0eWxlUmVzb2x2ZXIucGFyZW50Rm9udERlc2Ny
aXB0aW9uKCkudmFyaWFudEVhc3RBc2lhbldpZHRoKCkpOwogICAgIGZvbnREZXNjcmlwdGlvbi5z
ZXRWYXJpYW50RWFzdEFzaWFuUnVieShzdHlsZVJlc29sdmVyLnBhcmVudEZvbnREZXNjcmlwdGlv
bigpLnZhcmlhbnRFYXN0QXNpYW5SdWJ5KCkpOwotICAgIHN0eWxlUmVzb2x2ZXIuc2V0Rm9udERl
c2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7CisgICAgc3R5bGVSZXNvbHZlci5zZXRGb250RGVz
Y3JpcHRpb24oV1RGTW92ZShmb250RGVzY3JpcHRpb24pKTsKIH0KIAogaW5saW5lIHZvaWQgU3R5
bGVCdWlsZGVyQ3VzdG9tOjphcHBseUluaXRpYWxGb250VmFyaWFudEVhc3RBc2lhbihTdHlsZVJl
c29sdmVyJiBzdHlsZVJlc29sdmVyKQpAQCAtMTU0MSw3ICsxNTQxLDcgQEAgaW5saW5lIHZvaWQg
U3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseUluaXRpYWxGb250VmFyaWFudEVhc3RBc2lhbihTdHls
ZVJlc29sdmVyJgogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRWYXJpYW50RWFzdEFzaWFuVmFyaWFu
dChGb250VmFyaWFudEVhc3RBc2lhblZhcmlhbnQ6Ok5vcm1hbCk7CiAgICAgZm9udERlc2NyaXB0
aW9uLnNldFZhcmlhbnRFYXN0QXNpYW5XaWR0aChGb250VmFyaWFudEVhc3RBc2lhbldpZHRoOjpO
b3JtYWwpOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRWYXJpYW50RWFzdEFzaWFuUnVieShGb250
VmFyaWFudEVhc3RBc2lhblJ1Ynk6Ok5vcm1hbCk7Ci0gICAgc3R5bGVSZXNvbHZlci5zZXRGb250
RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsKKyAgICBzdHlsZVJlc29sdmVyLnNldEZvbnRE
ZXNjcmlwdGlvbihXVEZNb3ZlKGZvbnREZXNjcmlwdGlvbikpOwogfQogCiBpbmxpbmUgdm9pZCBT
dHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVGb250VmFyaWFudEVhc3RBc2lhbihTdHlsZVJl
c29sdmVyJiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSYgdmFsdWUpCkBAIC0xNTUxLDcgKzE1NTEs
NyBAQCBpbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVGb250VmFyaWFu
dEVhc3RBc2lhbihTdHlsZVJlc29sdmVyJiBzdAogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRWYXJp
YW50RWFzdEFzaWFuVmFyaWFudCh2YXJpYW50RWFzdEFzaWFuLnZhcmlhbnQpOwogICAgIGZvbnRE
ZXNjcmlwdGlvbi5zZXRWYXJpYW50RWFzdEFzaWFuV2lkdGgodmFyaWFudEVhc3RBc2lhbi53aWR0
aCk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldFZhcmlhbnRFYXN0QXNpYW5SdWJ5KHZhcmlhbnRF
YXN0QXNpYW4ucnVieSk7Ci0gICAgc3R5bGVSZXNvbHZlci5zZXRGb250RGVzY3JpcHRpb24oZm9u
dERlc2NyaXB0aW9uKTsKKyAgICBzdHlsZVJlc29sdmVyLnNldEZvbnREZXNjcmlwdGlvbihXVEZN
b3ZlKGZvbnREZXNjcmlwdGlvbikpOwogfQogCiBpbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0
b206OmFwcGx5SW5pdGlhbEZvbnRTaXplKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIpCkBA
IC0xNTY0LDcgKzE1NjQsNyBAQCBpbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5
SW5pdGlhbEZvbnRTaXplKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZQogCiAgICAgZm9udERl
c2NyaXB0aW9uLnNldEtleXdvcmRTaXplRnJvbUlkZW50aWZpZXIoQ1NTVmFsdWVNZWRpdW0pOwog
ICAgIHN0eWxlUmVzb2x2ZXIuc2V0Rm9udFNpemUoZm9udERlc2NyaXB0aW9uLCBzaXplKTsKLSAg
ICBzdHlsZVJlc29sdmVyLnNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOworICAg
IHN0eWxlUmVzb2x2ZXIuc2V0Rm9udERlc2NyaXB0aW9uKFdURk1vdmUoZm9udERlc2NyaXB0aW9u
KSk7CiB9CiAKIGlubGluZSB2b2lkIFN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlJbmhlcml0Rm9u
dFNpemUoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlcikKQEAgLTE1NzgsNyArMTU3OCw3IEBA
IGlubGluZSB2b2lkIFN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlJbmhlcml0Rm9udFNpemUoU3R5
bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlCiAgICAgYXV0byBmb250RGVzY3JpcHRpb24gPSBzdHls
ZVJlc29sdmVyLnN0eWxlKCktPmZvbnREZXNjcmlwdGlvbigpOwogICAgIGZvbnREZXNjcmlwdGlv
bi5zZXRLZXl3b3JkU2l6ZShwYXJlbnRGb250RGVzY3JpcHRpb24ua2V5d29yZFNpemUoKSk7CiAg
ICAgc3R5bGVSZXNvbHZlci5zZXRGb250U2l6ZShmb250RGVzY3JpcHRpb24sIHNpemUpOwotICAg
IHN0eWxlUmVzb2x2ZXIuc2V0Rm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7CisgICAg
c3R5bGVSZXNvbHZlci5zZXRGb250RGVzY3JpcHRpb24oV1RGTW92ZShmb250RGVzY3JpcHRpb24p
KTsKIH0KIAogLy8gV2hlbiB0aGUgQ1NTIGtleXdvcmQgImxhcmdlciIgaXMgdXNlZCwgdGhpcyBm
dW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gbWF0Y2ggd2l0aGluIHRoZSBrZXl3b3JkCkBAIC0xNjIw
LDcgKzE2MjAsNyBAQCBpbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5SW5pdGlh
bEZvbnRTdHlsZShTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdgogICAgIGF1dG8gZm9udERlc2Ny
aXB0aW9uID0gc3R5bGVSZXNvbHZlci5mb250RGVzY3JpcHRpb24oKTsKICAgICBmb250RGVzY3Jp
cHRpb24uc2V0SXRhbGljKEZvbnRDYXNjYWRlRGVzY3JpcHRpb246OmluaXRpYWxJdGFsaWMoKSk7
CiAgICAgZm9udERlc2NyaXB0aW9uLnNldEZvbnRTdHlsZUF4aXMoRm9udENhc2NhZGVEZXNjcmlw
dGlvbjo6aW5pdGlhbEZvbnRTdHlsZUF4aXMoKSk7Ci0gICAgc3R5bGVSZXNvbHZlci5zZXRGb250
RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsKKyAgICBzdHlsZVJlc29sdmVyLnNldEZvbnRE
ZXNjcmlwdGlvbihXVEZNb3ZlKGZvbnREZXNjcmlwdGlvbikpOwogfQogCiBpbmxpbmUgdm9pZCBT
dHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5SW5oZXJpdEZvbnRTdHlsZShTdHlsZVJlc29sdmVyJiBz
dHlsZVJlc29sdmVyKQpAQCAtMTYyOCw3ICsxNjI4LDcgQEAgaW5saW5lIHZvaWQgU3R5bGVCdWls
ZGVyQ3VzdG9tOjphcHBseUluaGVyaXRGb250U3R5bGUoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNv
bHYKICAgICBhdXRvIGZvbnREZXNjcmlwdGlvbiA9IHN0eWxlUmVzb2x2ZXIuZm9udERlc2NyaXB0
aW9uKCk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldEl0YWxpYyhzdHlsZVJlc29sdmVyLnBhcmVu
dEZvbnREZXNjcmlwdGlvbigpLml0YWxpYygpKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0Rm9u
dFN0eWxlQXhpcyhzdHlsZVJlc29sdmVyLnBhcmVudEZvbnREZXNjcmlwdGlvbigpLmZvbnRTdHls
ZUF4aXMoKSk7Ci0gICAgc3R5bGVSZXNvbHZlci5zZXRGb250RGVzY3JpcHRpb24oZm9udERlc2Ny
aXB0aW9uKTsKKyAgICBzdHlsZVJlc29sdmVyLnNldEZvbnREZXNjcmlwdGlvbihXVEZNb3ZlKGZv
bnREZXNjcmlwdGlvbikpOwogfQogCiBpbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFw
cGx5VmFsdWVGb250U3R5bGUoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUm
IHZhbHVlKQpAQCAtMTYzNyw3ICsxNjM3LDcgQEAgaW5saW5lIHZvaWQgU3R5bGVCdWlsZGVyQ3Vz
dG9tOjphcHBseVZhbHVlRm9udFN0eWxlKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIKICAg
ICBhdXRvIGZvbnREZXNjcmlwdGlvbiA9IHN0eWxlUmVzb2x2ZXIuZm9udERlc2NyaXB0aW9uKCk7
CiAgICAgZm9udERlc2NyaXB0aW9uLnNldEl0YWxpYyhTdHlsZUJ1aWxkZXJDb252ZXJ0ZXI6OmNv
bnZlcnRGb250U3R5bGVGcm9tVmFsdWUoZm9udFN0eWxlVmFsdWUpKTsKICAgICBmb250RGVzY3Jp
cHRpb24uc2V0Rm9udFN0eWxlQXhpcyhmb250U3R5bGVWYWx1ZS5mb250U3R5bGVWYWx1ZS0+dmFs
dWVJRCgpID09IENTU1ZhbHVlSXRhbGljID8gRm9udFN0eWxlQXhpczo6aXRhbCA6IEZvbnRTdHls
ZUF4aXM6OnNsbnQpOwotICAgIHN0eWxlUmVzb2x2ZXIuc2V0Rm9udERlc2NyaXB0aW9uKGZvbnRE
ZXNjcmlwdGlvbik7CisgICAgc3R5bGVSZXNvbHZlci5zZXRGb250RGVzY3JpcHRpb24oV1RGTW92
ZShmb250RGVzY3JpcHRpb24pKTsKIH0KIAogaW5saW5lIHZvaWQgU3R5bGVCdWlsZGVyQ3VzdG9t
OjphcHBseVZhbHVlRm9udFNpemUoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwgQ1NTVmFs
dWUmIHZhbHVlKQpAQCAtMTcwMSw3ICsxNzAxLDcgQEAgaW5saW5lIHZvaWQgU3R5bGVCdWlsZGVy
Q3VzdG9tOjphcHBseVZhbHVlRm9udFNpemUoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgc3R5bGVSZXNvbHZlci5zZXRGb250U2l6ZShmb250RGVz
Y3JpcHRpb24sIHN0ZDo6bWluKG1heGltdW1BbGxvd2VkRm9udFNpemUsIHNpemUpKTsKLSAgICBz
dHlsZVJlc29sdmVyLnNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOworICAgIHN0
eWxlUmVzb2x2ZXIuc2V0Rm9udERlc2NyaXB0aW9uKFdURk1vdmUoZm9udERlc2NyaXB0aW9uKSk7
CiB9CiAKIGlubGluZSB2b2lkIFN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlJbml0aWFsR3JpZFRl
bXBsYXRlQXJlYXMoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcAppbmRleCBmNTY3NDE2MzgxYzYwNmFmMjVmMTY0ZWQ1YWNhZTFhZTRh
Mzg1ZTcwLi5iMDM4YWU3YTU5MTYwZGJmN2EyMWU2ZmM4N2M2ODFhM2JiMzJhMmYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xMDg5LDcgKzEwODksNyBAQCBzdGF0aWMg
dm9pZCBjaGVja0Zvck9yaWVudGF0aW9uQ2hhbmdlKFJlbmRlclN0eWxlKiBzdHlsZSkKICAgICBh
dXRvIG5ld0ZvbnREZXNjcmlwdGlvbiA9IGZvbnREZXNjcmlwdGlvbjsKICAgICBuZXdGb250RGVz
Y3JpcHRpb24uc2V0Tm9uQ0pLR2x5cGhPcmllbnRhdGlvbihnbHlwaE9yaWVudGF0aW9uKTsKICAg
ICBuZXdGb250RGVzY3JpcHRpb24uc2V0T3JpZW50YXRpb24oZm9udE9yaWVudGF0aW9uKTsKLSAg
ICBzdHlsZS0+c2V0Rm9udERlc2NyaXB0aW9uKG5ld0ZvbnREZXNjcmlwdGlvbik7CisgICAgc3R5
bGUtPnNldEZvbnREZXNjcmlwdGlvbihXVEZNb3ZlKG5ld0ZvbnREZXNjcmlwdGlvbikpOwogfQog
CiB2b2lkIFN0eWxlUmVzb2x2ZXI6OnVwZGF0ZUZvbnQoKQpAQCAtMTczNiw3ICsxNzM2LDcgQEAg
dm9pZCBTdHlsZVJlc29sdmVyOjpjaGVja0ZvclRleHRTaXplQWRqdXN0KFJlbmRlclN0eWxlKiBz
dHlsZSkKICAgICAgICAgbmV3Rm9udERlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZShuZXdGb250
RGVzY3JpcHRpb24uc3BlY2lmaWVkU2l6ZSgpICogc3R5bGUtPnRleHRTaXplQWRqdXN0KCkubXVs
dGlwbGllcigpKTsKICAgICBlbHNlCiAgICAgICAgIG5ld0ZvbnREZXNjcmlwdGlvbi5zZXRDb21w
dXRlZFNpemUobmV3Rm9udERlc2NyaXB0aW9uLnNwZWNpZmllZFNpemUoKSk7Ci0gICAgc3R5bGUt
PnNldEZvbnREZXNjcmlwdGlvbihuZXdGb250RGVzY3JpcHRpb24pOworICAgIHN0eWxlLT5zZXRG
b250RGVzY3JpcHRpb24oV1RGTW92ZShuZXdGb250RGVzY3JpcHRpb24pKTsKIH0KICNlbmRpZgog
CkBAIC0xNzUxLDcgKzE3NTEsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmNoZWNrRm9yWm9vbUNo
YW5nZShSZW5kZXJTdHlsZSogc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBwYQogICAgIGNvbnN0
IGF1dG8mIGNoaWxkRm9udCA9IHN0eWxlLT5mb250RGVzY3JpcHRpb24oKTsKICAgICBhdXRvIG5l
d0ZvbnREZXNjcmlwdGlvbiA9IGNoaWxkRm9udDsKICAgICBzZXRGb250U2l6ZShuZXdGb250RGVz
Y3JpcHRpb24sIGNoaWxkRm9udC5zcGVjaWZpZWRTaXplKCkpOwotICAgIHN0eWxlLT5zZXRGb250
RGVzY3JpcHRpb24obmV3Rm9udERlc2NyaXB0aW9uKTsKKyAgICBzdHlsZS0+c2V0Rm9udERlc2Ny
aXB0aW9uKFdURk1vdmUobmV3Rm9udERlc2NyaXB0aW9uKSk7CiB9CiAKIHZvaWQgU3R5bGVSZXNv
bHZlcjo6Y2hlY2tGb3JHZW5lcmljRmFtaWx5Q2hhbmdlKFJlbmRlclN0eWxlKiBzdHlsZSwgY29u
c3QgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlKQpAQCAtMTc4Miw3ICsxNzgyLDcgQEAgdm9pZCBT
dHlsZVJlc29sdmVyOjpjaGVja0ZvckdlbmVyaWNGYW1pbHlDaGFuZ2UoUmVuZGVyU3R5bGUqIHN0
eWxlLCBjb25zdCBSZW5kZXIKIAogICAgIGF1dG8gbmV3Rm9udERlc2NyaXB0aW9uID0gY2hpbGRG
b250OwogICAgIHNldEZvbnRTaXplKG5ld0ZvbnREZXNjcmlwdGlvbiwgc2l6ZSk7Ci0gICAgc3R5
bGUtPnNldEZvbnREZXNjcmlwdGlvbihuZXdGb250RGVzY3JpcHRpb24pOworICAgIHN0eWxlLT5z
ZXRGb250RGVzY3JpcHRpb24oV1RGTW92ZShuZXdGb250RGVzY3JpcHRpb24pKTsKIH0KIAogdm9p
ZCBTdHlsZVJlc29sdmVyOjppbml0aWFsaXplRm9udFN0eWxlKCkKQEAgLTE3OTMsNyArMTc5Myw3
IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6aW5pdGlhbGl6ZUZvbnRTdHlsZSgpCiAgICAgZm9udERl
c2NyaXB0aW9uLnNldEtleXdvcmRTaXplRnJvbUlkZW50aWZpZXIoQ1NTVmFsdWVNZWRpdW0pOwog
ICAgIHNldEZvbnRTaXplKGZvbnREZXNjcmlwdGlvbiwgU3R5bGU6OmZvbnRTaXplRm9yS2V5d29y
ZChDU1NWYWx1ZU1lZGl1bSwgZmFsc2UsIGRvY3VtZW50KCkpKTsKICAgICBmb250RGVzY3JpcHRp
b24uc2V0U2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoc2V0dGluZ3MoKS5zaG91bGRBbGxv
d1VzZXJJbnN0YWxsZWRGb250cygpID8gQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6OlllcyA6IEFs
bG93VXNlckluc3RhbGxlZEZvbnRzOjpObyk7Ci0gICAgc2V0Rm9udERlc2NyaXB0aW9uKGZvbnRE
ZXNjcmlwdGlvbik7CisgICAgc2V0Rm9udERlc2NyaXB0aW9uKFdURk1vdmUoZm9udERlc2NyaXB0
aW9uKSk7CiB9CiAKIHZvaWQgU3R5bGVSZXNvbHZlcjo6c2V0Rm9udFNpemUoRm9udENhc2NhZGVE
ZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBmbG9hdCBzaXplKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJlc29sdmVyLmgKaW5kZXggNmQ2NmE2MjViYTQ0MGRjMDliYWM2M2E4MGU0MTA5ZTEzMjVmZjcz
Yi4uYmM5MTJkYmFlYzhkZmM4ZjgyM2E2OWI3MTAyMTdjMjI4NDY5YWY2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5oCkBAIC0zNzcsNyArMzc3LDcgQEAgcHVibGljOgogCiAgICAgICAg
IGNvbnN0IEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbigpIHsgcmV0dXJu
IG1fc3R5bGUtPmZvbnREZXNjcmlwdGlvbigpOyB9CiAgICAgICAgIGNvbnN0IEZvbnRDYXNjYWRl
RGVzY3JpcHRpb24mIHBhcmVudEZvbnREZXNjcmlwdGlvbigpIHsgcmV0dXJuIG1fcGFyZW50U3R5
bGUtPmZvbnREZXNjcmlwdGlvbigpOyB9Ci0gICAgICAgIHZvaWQgc2V0Rm9udERlc2NyaXB0aW9u
KGNvbnN0IEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgeyBtX2ZvbnRE
aXJ0eSB8PSBtX3N0eWxlLT5zZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsgfQor
ICAgICAgICB2b2lkIHNldEZvbnREZXNjcmlwdGlvbihGb250Q2FzY2FkZURlc2NyaXB0aW9uJiYg
Zm9udERlc2NyaXB0aW9uKSB7IG1fZm9udERpcnR5IHw9IG1fc3R5bGUtPnNldEZvbnREZXNjcmlw
dGlvbihXVEZNb3ZlKGZvbnREZXNjcmlwdGlvbikpOyB9CiAgICAgICAgIHZvaWQgc2V0Wm9vbShm
bG9hdCBmKSB7IG1fZm9udERpcnR5IHw9IG1fc3R5bGUtPnNldFpvb20oZik7IH0KICAgICAgICAg
dm9pZCBzZXRFZmZlY3RpdmVab29tKGZsb2F0IGYpIHsgbV9mb250RGlydHkgfD0gbV9zdHlsZS0+
c2V0RWZmZWN0aXZlWm9vbShmKTsgfQogICAgICAgICB2b2lkIHNldFdyaXRpbmdNb2RlKFdyaXRp
bmdNb2RlIHdyaXRpbmdNb2RlKSB7IG1fZm9udERpcnR5IHw9IG1fc3R5bGUtPnNldFdyaXRpbmdN
b2RlKHdyaXRpbmdNb2RlKTsgfQpAQCAtNDQ4LDcgKzQ0OCw3IEBAIHB1YmxpYzoKICAgICBJbnNw
ZWN0b3JDU1NPTVdyYXBwZXJzJiBpbnNwZWN0b3JDU1NPTVdyYXBwZXJzKCkgeyByZXR1cm4gbV9p
bnNwZWN0b3JDU1NPTVdyYXBwZXJzOyB9CiAgICAgY29uc3QgRm9udENhc2NhZGVEZXNjcmlwdGlv
biYgZm9udERlc2NyaXB0aW9uKCkgeyByZXR1cm4gbV9zdGF0ZS5mb250RGVzY3JpcHRpb24oKTsg
fQogICAgIGNvbnN0IEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mIHBhcmVudEZvbnREZXNjcmlwdGlv
bigpIHsgcmV0dXJuIG1fc3RhdGUucGFyZW50Rm9udERlc2NyaXB0aW9uKCk7IH0KLSAgICB2b2lk
IHNldEZvbnREZXNjcmlwdGlvbihjb25zdCBGb250Q2FzY2FkZURlc2NyaXB0aW9uJiBmb250RGVz
Y3JpcHRpb24pIHsgbV9zdGF0ZS5zZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsg
fQorICAgIHZvaWQgc2V0Rm9udERlc2NyaXB0aW9uKEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mJiBm
b250RGVzY3JpcHRpb24pIHsgbV9zdGF0ZS5zZXRGb250RGVzY3JpcHRpb24oV1RGTW92ZShmb250
RGVzY3JpcHRpb24pKTsgfQogICAgIHZvaWQgc2V0Wm9vbShmbG9hdCBmKSB7IG1fc3RhdGUuc2V0
Wm9vbShmKTsgfQogICAgIHZvaWQgc2V0RWZmZWN0aXZlWm9vbShmbG9hdCBmKSB7IG1fc3RhdGUu
c2V0RWZmZWN0aXZlWm9vbShmKTsgfQogICAgIHZvaWQgc2V0V3JpdGluZ01vZGUoV3JpdGluZ01v
ZGUgd3JpdGluZ01vZGUpIHsgbV9zdGF0ZS5zZXRXcml0aW5nTW9kZSh3cml0aW5nTW9kZSk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9tYWtlcHJvcC5wbAppbmRleCBhOGI0NmIwZTMzODZhNTA4NDg2ODAyODVhYmZmMjky
MjNlZmNkODgzLi4zZTM2YjE5ODc0NTNkYjI5ODE4MDkxMTkzNTYyMjNiNzQwMzkzNGY5IDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL21ha2Vwcm9wLnBsCkBAIC04NTMsNyArODUzLDcgQEAgc3ViIGdlbmVyYXRlSW5pdGlh
bFZhbHVlU2V0dGVyIHsKICAgfSBlbHNpZiAoZXhpc3RzICRwcm9wZXJ0aWVzV2l0aFN0eWxlQnVp
bGRlck9wdGlvbnN7JG5hbWV9eyJmb250LXByb3BlcnR5In0pIHsKICAgICAkc2V0dGVyQ29udGVu
dCAuPSAkaW5kZW50IC4gIiAgICBhdXRvIGZvbnREZXNjcmlwdGlvbiA9IHN0eWxlUmVzb2x2ZXIu
Zm9udERlc2NyaXB0aW9uKCk7XG4iOwogICAgICRzZXR0ZXJDb250ZW50IC49ICRpbmRlbnQgLiAi
ICAgIGZvbnREZXNjcmlwdGlvbi4iIC4gJHNldHRlciAuICIoRm9udENhc2NhZGVEZXNjcmlwdGlv
bjo6IiAuICRpbml0aWFsIC4gIigpKTtcbiI7Ci0gICAgJHNldHRlckNvbnRlbnQgLj0gJGluZGVu
dCAuICIgICAgc3R5bGVSZXNvbHZlci5zZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9u
KTtcbiI7CisgICAgJHNldHRlckNvbnRlbnQgLj0gJGluZGVudCAuICIgICAgc3R5bGVSZXNvbHZl
ci5zZXRGb250RGVzY3JpcHRpb24oV1RGTW92ZShmb250RGVzY3JpcHRpb24pKTtcbiI7CiAgIH0g
ZWxzaWYgKGV4aXN0cyAkcHJvcGVydGllc1dpdGhTdHlsZUJ1aWxkZXJPcHRpb25zeyRuYW1lfXsi
ZmlsbC1sYXllci1wcm9wZXJ0eSJ9KSB7CiAgICAgJHNldHRlckNvbnRlbnQgLj0gZ2VuZXJhdGVG
aWxsTGF5ZXJQcm9wZXJ0eUluaXRpYWxWYWx1ZVNldHRlcigkbmFtZSwgJGluZGVudCAuICIgICAg
Iik7CiAgIH0gZWxzZSB7CkBAIC04OTcsNyArODk3LDcgQEAgc3ViIGdlbmVyYXRlSW5oZXJpdFZh
bHVlU2V0dGVyIHsKICAgfSBlbHNpZiAoZXhpc3RzICRwcm9wZXJ0aWVzV2l0aFN0eWxlQnVpbGRl
ck9wdGlvbnN7JG5hbWV9eyJmb250LXByb3BlcnR5In0pIHsKICAgICAkc2V0dGVyQ29udGVudCAu
PSAkaW5kZW50IC4gIiAgICBhdXRvIGZvbnREZXNjcmlwdGlvbiA9IHN0eWxlUmVzb2x2ZXIuZm9u
dERlc2NyaXB0aW9uKCk7XG4iOwogICAgICRzZXR0ZXJDb250ZW50IC49ICRpbmRlbnQgLiAiICAg
IGZvbnREZXNjcmlwdGlvbi4iIC4gJHNldHRlciAuICIoc3R5bGVSZXNvbHZlci5wYXJlbnRGb250
RGVzY3JpcHRpb24oKS4iIC4gJGdldHRlciAuICIoKSk7XG4iOwotICAgICRzZXR0ZXJDb250ZW50
IC49ICRpbmRlbnQgLiAiICAgIHN0eWxlUmVzb2x2ZXIuc2V0Rm9udERlc2NyaXB0aW9uKGZvbnRE
ZXNjcmlwdGlvbik7XG4iOworICAgICRzZXR0ZXJDb250ZW50IC49ICRpbmRlbnQgLiAiICAgIHN0
eWxlUmVzb2x2ZXIuc2V0Rm9udERlc2NyaXB0aW9uKFdURk1vdmUoZm9udERlc2NyaXB0aW9uKSk7
XG4iOwogICAgICRkaWRDYWxsU2V0VmFsdWUgPSAxOwogICB9IGVsc2lmIChleGlzdHMgJHByb3Bl
cnRpZXNXaXRoU3R5bGVCdWlsZGVyT3B0aW9uc3skbmFtZX17ImZpbGwtbGF5ZXItcHJvcGVydHki
fSkgewogICAgICRzZXR0ZXJDb250ZW50IC49IGdlbmVyYXRlRmlsbExheWVyUHJvcGVydHlJbmhl
cml0VmFsdWVTZXR0ZXIoJG5hbWUsICRpbmRlbnQgLiAiICAgICIpOwpAQCAtOTUxLDcgKzk1MSw3
IEBAIHN1YiBnZW5lcmF0ZVZhbHVlU2V0dGVyIHsKICAgfSBlbHNpZiAoZXhpc3RzICRwcm9wZXJ0
aWVzV2l0aFN0eWxlQnVpbGRlck9wdGlvbnN7JG5hbWV9eyJmb250LXByb3BlcnR5In0pIHsKICAg
ICAkc2V0dGVyQ29udGVudCAuPSAkaW5kZW50IC4gIiAgICBhdXRvIGZvbnREZXNjcmlwdGlvbiA9
IHN0eWxlUmVzb2x2ZXIuZm9udERlc2NyaXB0aW9uKCk7XG4iOwogICAgICRzZXR0ZXJDb250ZW50
IC49ICRpbmRlbnQgLiAiICAgIGZvbnREZXNjcmlwdGlvbi4iIC4gJHNldHRlciAuICIoIiAuICRj
b252ZXJ0ZWRWYWx1ZSAuICIpO1xuIjsKLSAgICAkc2V0dGVyQ29udGVudCAuPSAkaW5kZW50IC4g
IiAgICBzdHlsZVJlc29sdmVyLnNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pO1xu
IjsKKyAgICAkc2V0dGVyQ29udGVudCAuPSAkaW5kZW50IC4gIiAgICBzdHlsZVJlc29sdmVyLnNl
dEZvbnREZXNjcmlwdGlvbihXVEZNb3ZlKGZvbnREZXNjcmlwdGlvbikpO1xuIjsKICAgICAkZGlk
Q2FsbFNldFZhbHVlID0gMTsKICAgfSBlbHNpZiAoZXhpc3RzICRwcm9wZXJ0aWVzV2l0aFN0eWxl
QnVpbGRlck9wdGlvbnN7JG5hbWV9eyJmaWxsLWxheWVyLXByb3BlcnR5In0pIHsKICAgICAkc2V0
dGVyQ29udGVudCAuPSBnZW5lcmF0ZUZpbGxMYXllclByb3BlcnR5VmFsdWVTZXR0ZXIoJG5hbWUs
ICRpbmRlbnQgLiAiICAgICIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKaW5kZXggNzc2MzVhNmIyODk2MTdjYjlh
YzRlYTZkNmFiODA4MWE0MGUyMjE3Mi4uZTlhZTYzYzQ5ODBkNTM5MjUyMjJmNDE5NTk0ODJlOTgx
NDVkNzdlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0xNTAsMTQgKzE1MCwxNCBAQCB2b2lkIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0Rm9udChjb25zdCBTdHJpbmcmIG5ld0ZvbnQpCiAgICAg
ZG9jdW1lbnQudXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogCiAgICAgaWYgKGF1dG8qIGNvbXB1dGVk
U3R5bGUgPSBjYW52YXMoKS5jb21wdXRlZFN0eWxlKCkpCi0gICAgICAgIG5ld1N0eWxlLT5zZXRG
b250RGVzY3JpcHRpb24oY29tcHV0ZWRTdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkpOworICAgICAg
ICBuZXdTdHlsZS0+c2V0Rm9udERlc2NyaXB0aW9uKEZvbnRDYXNjYWRlRGVzY3JpcHRpb24geyBj
b21wdXRlZFN0eWxlLT5mb250RGVzY3JpcHRpb24oKSB9KTsKICAgICBlbHNlIHsKICAgICAgICAg
Rm9udENhc2NhZGVEZXNjcmlwdGlvbiBkZWZhdWx0Rm9udERlc2NyaXB0aW9uOwogICAgICAgICBk
ZWZhdWx0Rm9udERlc2NyaXB0aW9uLnNldE9uZUZhbWlseShEZWZhdWx0Rm9udEZhbWlseSk7CiAg
ICAgICAgIGRlZmF1bHRGb250RGVzY3JpcHRpb24uc2V0U3BlY2lmaWVkU2l6ZShEZWZhdWx0Rm9u
dFNpemUpOwogICAgICAgICBkZWZhdWx0Rm9udERlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZShE
ZWZhdWx0Rm9udFNpemUpOwogCi0gICAgICAgIG5ld1N0eWxlLT5zZXRGb250RGVzY3JpcHRpb24o
ZGVmYXVsdEZvbnREZXNjcmlwdGlvbik7CisgICAgICAgIG5ld1N0eWxlLT5zZXRGb250RGVzY3Jp
cHRpb24oV1RGTW92ZShkZWZhdWx0Rm9udERlc2NyaXB0aW9uKSk7CiAgICAgfQogCiAgICAgbmV3
U3R5bGUtPmZvbnRDYXNjYWRlKCkudXBkYXRlKCZkb2N1bWVudC5mb250U2VsZWN0b3IoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCmluZGV4IDAyNTU0NjNiNjc1
YmNlMjU3MWM2Nzg2MzdhZDc2YjBiNzJjMGQ5MDIuLmE5NzlmNjU3NjIyZDFiNTUwMWE5NmI1NjFj
YmVmNDkxY2Y0NDU2YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdl
T3ZlcmxheXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMu
Y3BwCkBAIC0xODksNyArMTg5LDcgQEAgdm9pZCBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbk92ZXJs
YXk6OmRyYXdSZWN0KFBhZ2VPdmVybGF5JiBwYWdlT3ZlcmxheSwgR3JhcGhpY3MKICAgICBmb250
RGVzY3JpcHRpb24uc2V0U3BlY2lmaWVkU2l6ZSgxMik7CiAgICAgZm9udERlc2NyaXB0aW9uLnNl
dENvbXB1dGVkU2l6ZSgxMik7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldFdlaWdodChGb250U2Vs
ZWN0aW9uVmFsdWUoNTAwKSk7Ci0gICAgRm9udENhc2NhZGUgZm9udChmb250RGVzY3JpcHRpb24s
IDAsIDApOworICAgIEZvbnRDYXNjYWRlIGZvbnQoV1RGTW92ZShmb250RGVzY3JpcHRpb24pLCAw
LCAwKTsKICAgICBmb250LnVwZGF0ZShudWxscHRyKTsKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2xpbnV4L1Jlc291cmNlVXNhZ2VP
dmVybGF5TGludXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9saW51eC9SZXNvdXJjZVVzYWdl
T3ZlcmxheUxpbnV4LmNwcAppbmRleCA5NjQzZDljMDVlZGI1ZDRhYjFlYjdlOWUzMjkzNTJkZDA2
OTAwNWE3Li40YzUyZDk4OGE5ZTNjMzgyNzdmODA3Yzk2ZDIzZDg0Nzg3YzQ4YmEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2xpbnV4L1Jlc291cmNlVXNhZ2VPdmVybGF5TGludXgu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlM
aW51eC5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogICAgICAgICBGb250Q2FzY2FkZURl
c2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbjsKICAgICAgICAgUmVuZGVyVGhlbWU6OnNpbmdsZXRv
bigpLnN5c3RlbUZvbnQoQ1NTVmFsdWVNZXNzYWdlQm94LCBmb250RGVzY3JpcHRpb24pOwogICAg
ICAgICBmb250RGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKGdGb250U2l6ZSk7Ci0gICAgICAg
IG1fdGV4dEZvbnQgPSBGb250Q2FzY2FkZShmb250RGVzY3JpcHRpb24sIDAsIDApOworICAgICAg
ICBtX3RleHRGb250ID0gRm9udENhc2NhZGUoV1RGTW92ZShmb250RGVzY3JpcHRpb24pLCAwLCAw
KTsKICAgICAgICAgbV90ZXh0Rm9udC51cGRhdGUobnVsbHB0cik7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKaW5kZXggODQ3
ODYxZjZiY2I3ZmYxYzU5MjBkODNhMTYzMGU4NWMxNmU4ZWQ3Yi4uYmZiY2I4MzdkMWM3YTMxNGM1
ZmE0MWVmNGQ3MDA3ZWMyNTNhOTk1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcApAQCAtNzcsMTEgKzc3LDExIEBAIEZvbnRDYXNjYWRl
OjpGb250Q2FzY2FkZSgpCiB7CiB9CiAKLUZvbnRDYXNjYWRlOjpGb250Q2FzY2FkZShjb25zdCBG
b250Q2FzY2FkZURlc2NyaXB0aW9uJiBmZCwgZmxvYXQgbGV0dGVyU3BhY2luZywgZmxvYXQgd29y
ZFNwYWNpbmcpCi0gICAgOiBtX2ZvbnREZXNjcmlwdGlvbihmZCkKK0ZvbnRDYXNjYWRlOjpGb250
Q2FzY2FkZShGb250Q2FzY2FkZURlc2NyaXB0aW9uJiYgZmQsIGZsb2F0IGxldHRlclNwYWNpbmcs
IGZsb2F0IHdvcmRTcGFjaW5nKQorICAgIDogbV9mb250RGVzY3JpcHRpb24oV1RGTW92ZShmZCkp
CiAgICAgLCBtX2xldHRlclNwYWNpbmcobGV0dGVyU3BhY2luZykKICAgICAsIG1fd29yZFNwYWNp
bmcod29yZFNwYWNpbmcpCi0gICAgLCBtX3VzZUJhY2tzbGFzaEFzWWVuU3ltYm9sKHVzZUJhY2tz
bGFzaEFzWWVuU2lnbkZvckZhbWlseShmZC5maXJzdEZhbWlseSgpKSkKKyAgICAsIG1fdXNlQmFj
a3NsYXNoQXNZZW5TeW1ib2wodXNlQmFja3NsYXNoQXNZZW5TaWduRm9yRmFtaWx5KG1fZm9udERl
c2NyaXB0aW9uLmZpcnN0RmFtaWx5KCkpKQogICAgICwgbV9lbmFibGVLZXJuaW5nKGNvbXB1dGVF
bmFibGVLZXJuaW5nKCkpCiAgICAgLCBtX3JlcXVpcmVzU2hhcGluZyhjb21wdXRlUmVxdWlyZXNT
aGFwaW5nKCkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FzY2FkZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
c2NhZGUuaAppbmRleCBlMWUxYjUyMjI1NTZiYTk2YmNiNGMyNDcyMGM0OTFlNjdkMjQ4YWEwLi4z
NTI5YTk1Njk3ODE2NTJlNzk0ODMxZTgyMzFhODJiZmNkNDU1YjdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgKQEAgLTEwMSw3ICsxMDEsNyBA
QCBwdWJsaWM6CiBjbGFzcyBGb250Q2FzY2FkZSB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgRm9udENhc2NhZGUoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBGb250Q2FzY2FkZShjb25zdCBG
b250Q2FzY2FkZURlc2NyaXB0aW9uJiwgZmxvYXQgbGV0dGVyU3BhY2luZyA9IDAsIGZsb2F0IHdv
cmRTcGFjaW5nID0gMCk7CisgICAgV0VCQ09SRV9FWFBPUlQgRm9udENhc2NhZGUoRm9udENhc2Nh
ZGVEZXNjcmlwdGlvbiYmLCBmbG9hdCBsZXR0ZXJTcGFjaW5nID0gMCwgZmxvYXQgd29yZFNwYWNp
bmcgPSAwKTsKICAgICAvLyBUaGlzIGNvbnN0cnVjdG9yIGlzIG9ubHkgdXNlZCBpZiB0aGUgcGxh
dGZvcm0gd2FudHMgdG8gc3RhcnQgd2l0aCBhIG5hdGl2ZSBmb250LgogICAgIFdFQkNPUkVfRVhQ
T1JUIEZvbnRDYXNjYWRlKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmLCBGb250U21vb3RoaW5nTW9k
ZSA9IEF1dG9TbW9vdGhpbmcpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCmluZGV4IGMw
MDBiNDNjNzQwYTViNjk5ZjhlZjdlNDJjOTJkMTQyODIxODU5OWYuLjk3MDBiYjc2M2I1NjI0ZGQ4
YzY3N2FmMmUwZGEwZTlkYTJmZWNmNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCkBA
IC05NjMsNyArOTYzLDcgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJXaW46OmRyYXdUZXh0QXRQb2lu
dChDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dGbG9hdCB4LCBDR0Zsb2EKIAogICAgIGRlc2Muc2V0
Q29tcHV0ZWRTaXplKHNjYWxlLndpZHRoICogZm9udFNpemUpOwogCi0gICAgRm9udENhc2NhZGUg
Zm9udCA9IEZvbnRDYXNjYWRlKGRlc2MsIDAsIDApOworICAgIEZvbnRDYXNjYWRlIGZvbnQgPSBG
b250Q2FzY2FkZShXVEZNb3ZlKGRlc2MpLCAwLCAwKTsKICAgICBmb250LnVwZGF0ZShudWxscHRy
KTsKIAogICAgIEdyYXBoaWNzQ29udGV4dCBjZyhjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5k
ZXggNDBhYWU5OWM0MjViNDY0ZGU1NGY5ZWRiOTIwMjZkYjAwYTk3YzU4NC4uZWExNTNjOTNhZDk3
Mjk5YWRhZWE1OTEyY2FmMzE5MjAxMzM5MzUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTMzNiwx
NyArMzM2LDE3IEBAIHZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmRyYXdUZXh0KEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCkKIAogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRTcGVjaWZpZWRT
aXplKG1fYmFzZUZvbnRTaXplKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXpl
KG1fYmFzZUZvbnRTaXplKTsKLSAgICBGb250Q2FzY2FkZSB0aW1lRm9udCB7IGZvbnREZXNjcmlw
dGlvbiwgMCwgMCB9OworICAgIEZvbnRDYXNjYWRlIHRpbWVGb250IHsgRm9udENhc2NhZGVEZXNj
cmlwdGlvbiB7IGZvbnREZXNjcmlwdGlvbiB9LCAwLCAwIH07CiAgICAgdGltZUZvbnQudXBkYXRl
KG51bGxwdHIpOwogCiAgICAgZm9udERlc2NyaXB0aW9uLnNldFNwZWNpZmllZFNpemUobV9iaXBC
b3BGb250U2l6ZSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZShtX2JpcEJv
cEZvbnRTaXplKTsKLSAgICBGb250Q2FzY2FkZSBiaXBCb3BGb250IHsgZm9udERlc2NyaXB0aW9u
LCAwLCAwIH07CisgICAgRm9udENhc2NhZGUgYmlwQm9wRm9udCB7IEZvbnRDYXNjYWRlRGVzY3Jp
cHRpb24geyBmb250RGVzY3JpcHRpb24gfSwgMCwgMCB9OwogICAgIGJpcEJvcEZvbnQudXBkYXRl
KG51bGxwdHIpOwogCiAgICAgZm9udERlc2NyaXB0aW9uLnNldFNwZWNpZmllZFNpemUobV9zdGF0
c0ZvbnRTaXplKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKG1fc3RhdHNG
b250U2l6ZSk7Ci0gICAgRm9udENhc2NhZGUgc3RhdHNGb250IHsgZm9udERlc2NyaXB0aW9uLCAw
LCAwIH07CisgICAgRm9udENhc2NhZGUgc3RhdHNGb250IHsgV1RGTW92ZShmb250RGVzY3JpcHRp
b24pLCAwLCAwIH07CiAgICAgc3RhdHNGb250LnVwZGF0ZShudWxscHRyKTsKIAogICAgIEludFNp
emUgc2l6ZSA9IHRoaXMtPnNpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9EcmFnSW1hZ2VXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0Ry
YWdJbWFnZVdpbi5jcHAKaW5kZXggZjk5NzFlNmU1ZGVjZWMwZTU5MDNhMmY1NDY0MTVjYzhkMDQy
ZDJkMi4uMWRmYTUwYjUzMmRkOGI1YWY2NjY3NWY4NDQ5ZmU1NDE5MTE3NGVmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdJbWFnZVdpbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdJbWFnZVdpbi5jcHAKQEAgLTExNiw3ICsxMTYs
NyBAQCBzdGF0aWMgRm9udENhc2NhZGUgZHJhZ0xhYmVsRm9udChpbnQgc2l6ZSwgYm9vbCBib2xk
LCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbgogICAgIGRlc2NyaXB0aW9uLnNldFNwZWNpZmll
ZFNpemUoKGZsb2F0KXNpemUpOwogICAgIGRlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZSgoZmxv
YXQpc2l6ZSk7CiAgICAgZGVzY3JpcHRpb24uc2V0UmVuZGVyaW5nTW9kZShyZW5kZXJpbmdNb2Rl
KTsKLSAgICByZXN1bHQgPSBGb250Q2FzY2FkZShkZXNjcmlwdGlvbiwgMCwgMCk7CisgICAgcmVz
dWx0ID0gRm9udENhc2NhZGUoV1RGTW92ZShkZXNjcmlwdGlvbiksIDAsIDApOwogICAgIHJlc3Vs
dC51cGRhdGUoMCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKaW5kZXggNTg0MzNjNTBkZjVhY2NiMTgyNjJlNjk0
YWNiNjgwZWU0NjliZjEyZi4uZjI5NDA2YTk3ZmE0MTMyZWIxMzAzNDYxYjQ4ZWY0N2UzNGIwNjll
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKQEAg
LTMyMiw3ICszMjIsNyBAQCB2b2lkIFBvcHVwTWVudVdpbjo6Y2FsY3VsYXRlUG9zaXRpb25BbmRT
aXplKGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdikKICAgICBtX2ZvbnQgPSBjbGllbnQo
KS0+bWVudVN0eWxlKCkuZm9udCgpOwogICAgIGF1dG8gZCA9IG1fZm9udC5mb250RGVzY3JpcHRp
b24oKTsKICAgICBkLnNldENvbXB1dGVkU2l6ZShkLmNvbXB1dGVkU2l6ZSgpICogbV9zY2FsZUZh
Y3Rvcik7Ci0gICAgbV9mb250ID0gRm9udENhc2NhZGUoZCwgbV9mb250LmxldHRlclNwYWNpbmco
KSwgbV9mb250LndvcmRTcGFjaW5nKCkpOworICAgIG1fZm9udCA9IEZvbnRDYXNjYWRlKFdURk1v
dmUoZCksIG1fZm9udC5sZXR0ZXJTcGFjaW5nKCksIG1fZm9udC53b3JkU3BhY2luZygpKTsKICAg
ICBtX2ZvbnQudXBkYXRlKG1fcG9wdXBDbGllbnQtPmZvbnRTZWxlY3RvcigpKTsKIAogICAgIC8v
IEZpcnN0LCBkZXRlcm1pbmUgdGhlIHBvcHVwJ3MgaGVpZ2h0CkBAIC0zNDUsNyArMzQ1LDcgQEAg
dm9pZCBQb3B1cE1lbnVXaW46OmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZShjb25zdCBJbnRSZWN0
JiByLCBGcmFtZVZpZXcqIHYpCiAgICAgICAgIGlmIChjbGllbnQoKS0+aXRlbUlzTGFiZWwoaSkp
IHsKICAgICAgICAgICAgIGF1dG8gZCA9IGl0ZW1Gb250LmZvbnREZXNjcmlwdGlvbigpOwogICAg
ICAgICAgICAgZC5zZXRXZWlnaHQoZC5ib2xkZXJXZWlnaHQoKSk7Ci0gICAgICAgICAgICBpdGVt
Rm9udCA9IEZvbnRDYXNjYWRlKGQsIGl0ZW1Gb250LmxldHRlclNwYWNpbmcoKSwgaXRlbUZvbnQu
d29yZFNwYWNpbmcoKSk7CisgICAgICAgICAgICBpdGVtRm9udCA9IEZvbnRDYXNjYWRlKFdURk1v
dmUoZCksIGl0ZW1Gb250LmxldHRlclNwYWNpbmcoKSwgaXRlbUZvbnQud29yZFNwYWNpbmcoKSk7
CiAgICAgICAgICAgICBpdGVtRm9udC51cGRhdGUobV9wb3B1cENsaWVudC0+Zm9udFNlbGVjdG9y
KCkpOwogICAgICAgICB9CiAKQEAgLTY1MCw3ICs2NTAsNyBAQCB2b2lkIFBvcHVwTWVudVdpbjo6
cGFpbnQoY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCwgSERDIGhkYykKICAgICAgICAgaWYgKGNs
aWVudCgpLT5pdGVtSXNMYWJlbChpbmRleCkpIHsKICAgICAgICAgICAgIGF1dG8gZCA9IGl0ZW1G
b250LmZvbnREZXNjcmlwdGlvbigpOwogICAgICAgICAgICAgZC5zZXRXZWlnaHQoZC5ib2xkZXJX
ZWlnaHQoKSk7Ci0gICAgICAgICAgICBpdGVtRm9udCA9IEZvbnRDYXNjYWRlKGQsIGl0ZW1Gb250
LmxldHRlclNwYWNpbmcoKSwgaXRlbUZvbnQud29yZFNwYWNpbmcoKSk7CisgICAgICAgICAgICBp
dGVtRm9udCA9IEZvbnRDYXNjYWRlKFdURk1vdmUoZCksIGl0ZW1Gb250LmxldHRlclNwYWNpbmco
KSwgaXRlbUZvbnQud29yZFNwYWNpbmcoKSk7CiAgICAgICAgICAgICBpdGVtRm9udC51cGRhdGUo
bV9wb3B1cENsaWVudC0+Zm9udFNlbGVjdG9yKCkpOwogICAgICAgICB9CiAgICAgICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCAxOTIzNzNkNWVjNjQ1OTZjMGFh
NjZlMjk2NzAxZDQ2ZWE5ZTMzN2I4Li5kMzQzMTkxNTRiZTQzZDJkMGJmNTU1YzUzOGM5M2JiYjEz
N2EzZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMzkyLDcg
KzM5Miw3IEBAIHZvaWQgUmVuZGVyQm94OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2Ug
ZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlCiAgICAgICAgICAgICAvLyBQcm9wYWdh
dGUgdGhlIGJvZHkgZm9udCBiYWNrIHVwIHRvIHRoZSBSZW5kZXJWaWV3IGFuZCB1c2UgaXQgYXMK
ICAgICAgICAgICAgIC8vIHRoZSBiYXNpcyBvZiB0aGUgZ3JpZC4KICAgICAgICAgICAgIGlmIChu
ZXdTdHlsZS5mb250RGVzY3JpcHRpb24oKSAhPSB2aWV3KCkuc3R5bGUoKS5mb250RGVzY3JpcHRp
b24oKSkgewotICAgICAgICAgICAgICAgIHZpZXcoKS5tdXRhYmxlU3R5bGUoKS5zZXRGb250RGVz
Y3JpcHRpb24obmV3U3R5bGUuZm9udERlc2NyaXB0aW9uKCkpOworICAgICAgICAgICAgICAgIHZp
ZXcoKS5tdXRhYmxlU3R5bGUoKS5zZXRGb250RGVzY3JpcHRpb24oRm9udENhc2NhZGVEZXNjcmlw
dGlvbiB7IG5ld1N0eWxlLmZvbnREZXNjcmlwdGlvbigpIH0pOwogICAgICAgICAgICAgICAgIHZp
ZXcoKS5tdXRhYmxlU3R5bGUoKS5mb250Q2FzY2FkZSgpLnVwZGF0ZSgmZG9jdW1lbnQoKS5mb250
U2VsZWN0b3IoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb21iaW5lVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQ29tYmluZVRleHQuY3BwCmluZGV4IDljZjRmYjhlZGMyYTI1ODcz
N2Q0MzAwNjE3ZjhlOWIzNjIxODZlMmQuLmQ2MTYzMjk0YTc5NjdmNjYxNGQ2N2NiNzFhYTg1MDY3
MDVjNjU0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb21i
aW5lVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbWJpbmVU
ZXh0LmNwcApAQCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQgUmVuZGVyQ29tYmluZVRleHQ6OmNvbWJp
bmVUZXh0SWZOZWVkZWQoKQogCiAgICAgZGVzY3JpcHRpb24uc2V0T3JpZW50YXRpb24oSG9yaXpv
bnRhbCk7IC8vIFdlIGFyZSBnb2luZyB0byBkcmF3IGNvbWJpbmVkIHRleHQgaG9yaXpvbnRhbGx5
LgogCi0gICAgRm9udENhc2NhZGUgaG9yaXpvbnRhbEZvbnQoZGVzY3JpcHRpb24sIHN0eWxlKCku
Zm9udENhc2NhZGUoKS5sZXR0ZXJTcGFjaW5nKCksIHN0eWxlKCkuZm9udENhc2NhZGUoKS53b3Jk
U3BhY2luZygpKTsKKyAgICBGb250Q2FzY2FkZSBob3Jpem9udGFsRm9udChGb250Q2FzY2FkZURl
c2NyaXB0aW9uIHsgZGVzY3JpcHRpb24gfSwgc3R5bGUoKS5mb250Q2FzY2FkZSgpLmxldHRlclNw
YWNpbmcoKSwgc3R5bGUoKS5mb250Q2FzY2FkZSgpLndvcmRTcGFjaW5nKCkpOwogICAgIGhvcml6
b250YWxGb250LnVwZGF0ZShmb250U2VsZWN0b3IpOwogICAgIAogICAgIEdseXBoT3ZlcmZsb3cg
Z2x5cGhPdmVyZmxvdzsKQEAgLTEzNywxNCArMTM3LDE0IEBAIHZvaWQgUmVuZGVyQ29tYmluZVRl
eHQ6OmNvbWJpbmVUZXh0SWZOZWVkZWQoKQogICAgIG1faXNDb21iaW5lZCA9IGNvbWJpbmVkVGV4
dFdpZHRoIDw9IGVtV2lkdGg7CiAgICAgCiAgICAgaWYgKG1faXNDb21iaW5lZCkKLSAgICAgICAg
c2hvdWxkVXBkYXRlRm9udCA9IG1fY29tYmluZUZvbnRTdHlsZS0+c2V0Rm9udERlc2NyaXB0aW9u
KGRlc2NyaXB0aW9uKTsgLy8gTmVlZCB0byBjaGFuZ2UgZm9udCBvcmllbnRhdGlvbiB0byBob3Jp
em9udGFsLgorICAgICAgICBzaG91bGRVcGRhdGVGb250ID0gbV9jb21iaW5lRm9udFN0eWxlLT5z
ZXRGb250RGVzY3JpcHRpb24oV1RGTW92ZShkZXNjcmlwdGlvbikpOyAvLyBOZWVkIHRvIGNoYW5n
ZSBmb250IG9yaWVudGF0aW9uIHRvIGhvcml6b250YWwuCiAgICAgZWxzZSB7CiAgICAgICAgIC8v
IE5lZWQgdG8gdHJ5IGNvbXByZXNzZWQgZ2x5cGhzLgogICAgICAgICBzdGF0aWMgY29uc3QgRm9u
dFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnRzW10gPSB7IEhhbGZXaWR0aCwgVGhpcmRXaWR0aCwg
UXVhcnRlcldpZHRoIH07CiAgICAgICAgIGZvciAoYXV0byB3aWR0aFZhcmlhbnQgOiB3aWR0aFZh
cmlhbnRzKSB7CiAgICAgICAgICAgICBkZXNjcmlwdGlvbi5zZXRXaWR0aFZhcmlhbnQod2lkdGhW
YXJpYW50KTsgLy8gV2hlbiBtb2RpZnlpbmcgdGhpcywgbWFrZSBzdXJlIHRvIGtlZXAgaXQgaW4g
c3luYyB3aXRoIEZvbnRQbGF0Zm9ybURhdGE6OmlzRm9yVGV4dENvbWJpbmUoKSEKIAotICAgICAg
ICAgICAgRm9udENhc2NhZGUgY29tcHJlc3NlZEZvbnQoZGVzY3JpcHRpb24sIHN0eWxlKCkuZm9u
dENhc2NhZGUoKS5sZXR0ZXJTcGFjaW5nKCksIHN0eWxlKCkuZm9udENhc2NhZGUoKS53b3JkU3Bh
Y2luZygpKTsKKyAgICAgICAgICAgIEZvbnRDYXNjYWRlIGNvbXByZXNzZWRGb250KEZvbnRDYXNj
YWRlRGVzY3JpcHRpb24geyBkZXNjcmlwdGlvbiB9LCBzdHlsZSgpLmZvbnRDYXNjYWRlKCkubGV0
dGVyU3BhY2luZygpLCBzdHlsZSgpLmZvbnRDYXNjYWRlKCkud29yZFNwYWNpbmcoKSk7CiAgICAg
ICAgICAgICBjb21wcmVzc2VkRm9udC51cGRhdGUoZm9udFNlbGVjdG9yKTsKICAgICAgICAgICAg
IAogICAgICAgICAgICAgZ2x5cGhPdmVyZmxvdy5sZWZ0ID0gZ2x5cGhPdmVyZmxvdy50b3AgPSBn
bHlwaE92ZXJmbG93LnJpZ2h0ID0gZ2x5cGhPdmVyZmxvdy5ib3R0b20gPSAwOwpAQCAtMTU0LDcg
KzE1NCw3IEBAIHZvaWQgUmVuZGVyQ29tYmluZVRleHQ6OmNvbWJpbmVUZXh0SWZOZWVkZWQoKQog
ICAgICAgICAgICAgICAgIG1faXNDb21iaW5lZCA9IHRydWU7CiAKICAgICAgICAgICAgICAgICAv
LyBSZXBsYWNlIG15IGZvbnQgd2l0aCB0aGUgbmV3IG9uZS4KLSAgICAgICAgICAgICAgICBzaG91
bGRVcGRhdGVGb250ID0gbV9jb21iaW5lRm9udFN0eWxlLT5zZXRGb250RGVzY3JpcHRpb24oZGVz
Y3JpcHRpb24pOworICAgICAgICAgICAgICAgIHNob3VsZFVwZGF0ZUZvbnQgPSBtX2NvbWJpbmVG
b250U3R5bGUtPnNldEZvbnREZXNjcmlwdGlvbihXVEZNb3ZlKGRlc2NyaXB0aW9uKSk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTE3Miw5
ICsxNzIsOSBAQCB2b2lkIFJlbmRlckNvbWJpbmVUZXh0Ojpjb21iaW5lVGV4dElmTmVlZGVkKCkK
ICAgICAgICAgZG8gewogICAgICAgICAgICAgZmxvYXQgY29tcHV0ZWRTaXplID0gb3JpZ2luYWxT
aXplICogc2NhbGVGYWN0b3I7CiAgICAgICAgICAgICBiZXN0Rml0RGVzY3JpcHRpb24uc2V0Q29t
cHV0ZWRTaXplKGNvbXB1dGVkU2l6ZSk7Ci0gICAgICAgICAgICBzaG91bGRVcGRhdGVGb250ID0g
bV9jb21iaW5lRm9udFN0eWxlLT5zZXRGb250RGVzY3JpcHRpb24oYmVzdEZpdERlc2NyaXB0aW9u
KTsKKyAgICAgICAgICAgIHNob3VsZFVwZGF0ZUZvbnQgPSBtX2NvbWJpbmVGb250U3R5bGUtPnNl
dEZvbnREZXNjcmlwdGlvbihGb250Q2FzY2FkZURlc2NyaXB0aW9uIHsgYmVzdEZpdERlc2NyaXB0
aW9uIH0pOwogICAgICAgICAKLSAgICAgICAgICAgIEZvbnRDYXNjYWRlIGNvbXByZXNzZWRGb250
KGJlc3RGaXREZXNjcmlwdGlvbiwgc3R5bGUoKS5mb250Q2FzY2FkZSgpLmxldHRlclNwYWNpbmco
KSwgc3R5bGUoKS5mb250Q2FzY2FkZSgpLndvcmRTcGFjaW5nKCkpOworICAgICAgICAgICAgRm9u
dENhc2NhZGUgY29tcHJlc3NlZEZvbnQoV1RGTW92ZShiZXN0Rml0RGVzY3JpcHRpb24pLCBzdHls
ZSgpLmZvbnRDYXNjYWRlKCkubGV0dGVyU3BhY2luZygpLCBzdHlsZSgpLmZvbnRDYXNjYWRlKCku
d29yZFNwYWNpbmcoKSk7CiAgICAgICAgICAgICBjb21wcmVzc2VkRm9udC51cGRhdGUoZm9udFNl
bGVjdG9yKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgZ2x5cGhPdmVyZmxvdy5sZWZ0ID0g
Z2x5cGhPdmVyZmxvdy50b3AgPSBnbHlwaE92ZXJmbG93LnJpZ2h0ID0gZ2x5cGhPdmVyZmxvdy5i
b3R0b20gPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVt
YmVkZGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRl
ZE9iamVjdC5jcHAKaW5kZXggY2QxY2I5OTc3MDE1NmNiYjMwZTRmNTYyMWEzNWRiNzQ1OTdhOGIz
MS4uYjk4MjUwNGE3NjI3ZDQ5ODk1MGYwODFmMzJmZjc3ZWRjMmRjNmVkNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCkBAIC0zNzgs
NyArMzc4LDcgQEAgdm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6Z2V0UmVwbGFjZW1lbnRUZXh0
R2VvbWV0cnkoY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWwKICAgICBmb250RGVzY3JpcHRpb24u
c2V0V2VpZ2h0KGJvbGRXZWlnaHRWYWx1ZSgpKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0UmVu
ZGVyaW5nTW9kZShzZXR0aW5ncygpLmZvbnRSZW5kZXJpbmdNb2RlKCkpOwogICAgIGZvbnREZXNj
cmlwdGlvbi5zZXRDb21wdXRlZFNpemUoMTIpOwotICAgIGZvbnQgPSBGb250Q2FzY2FkZShmb250
RGVzY3JpcHRpb24sIDAsIDApOworICAgIGZvbnQgPSBGb250Q2FzY2FkZShXVEZNb3ZlKGZvbnRE
ZXNjcmlwdGlvbiksIDAsIDApOwogICAgIGZvbnQudXBkYXRlKDApOwogCiAgICAgcnVuID0gVGV4
dFJ1bihtX3VuYXZhaWxhYmxlUGx1Z2luUmVwbGFjZW1lbnRUZXh0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRleCA5NGY3ZDUyZjdkZjE2NjNjMTAxZGIx
YzM4NDMyNjQ1MzdjN2U2ZDI1Li4xMDEwNjRjNmVlNTRjMjhkYmI2ZGMxN2IyNmEwZGY2MTE2MjBk
NTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCkBAIC0x
MjAsNyArMTIwLDcgQEAgc3RhdGljIEZvbnRDYXNjYWRlIGJvbGRlcihEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KQogewogICAgIGF1dG8gZGVzY3JpcHRpb24gPSBm
b250LmZvbnREZXNjcmlwdGlvbigpOwogICAgIGRlc2NyaXB0aW9uLnNldFdlaWdodChkZXNjcmlw
dGlvbi5ib2xkZXJXZWlnaHQoKSk7Ci0gICAgYXV0byByZXN1bHQgPSBGb250Q2FzY2FkZSB7IGRl
c2NyaXB0aW9uLCBmb250LmxldHRlclNwYWNpbmcoKSwgZm9udC53b3JkU3BhY2luZygpIH07Cisg
ICAgYXV0byByZXN1bHQgPSBGb250Q2FzY2FkZSB7IFdURk1vdmUoZGVzY3JpcHRpb24pLCBmb250
LmxldHRlclNwYWNpbmcoKSwgZm9udC53b3JkU3BhY2luZygpIH07CiAgICAgcmVzdWx0LnVwZGF0
ZSgmZG9jdW1lbnQuZm9udFNlbGVjdG9yKCkpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC00
NDEsNyArNDQxLDcgQEAgdm9pZCBSZW5kZXJMaXN0Qm94OjpwYWludEl0ZW1Gb3JlZ3JvdW5kKFBh
aW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYKICAgICBpZiAoaXM8SFRNTE9w
dEdyb3VwRWxlbWVudD4oKmxpc3RJdGVtRWxlbWVudCkpIHsKICAgICAgICAgYXV0byBkZXNjcmlw
dGlvbiA9IGl0ZW1Gb250LmZvbnREZXNjcmlwdGlvbigpOwogICAgICAgICBkZXNjcmlwdGlvbi5z
ZXRXZWlnaHQoZGVzY3JpcHRpb24uYm9sZGVyV2VpZ2h0KCkpOwotICAgICAgICBpdGVtRm9udCA9
IEZvbnRDYXNjYWRlKGRlc2NyaXB0aW9uLCBpdGVtRm9udC5sZXR0ZXJTcGFjaW5nKCksIGl0ZW1G
b250LndvcmRTcGFjaW5nKCkpOworICAgICAgICBpdGVtRm9udCA9IEZvbnRDYXNjYWRlKFdURk1v
dmUoZGVzY3JpcHRpb24pLCBpdGVtRm9udC5sZXR0ZXJTcGFjaW5nKCksIGl0ZW1Gb250LndvcmRT
cGFjaW5nKCkpOwogICAgICAgICBpdGVtRm9udC51cGRhdGUoJmRvY3VtZW50KCkuZm9udFNlbGVj
dG9yKCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRl
bS5jcHAKaW5kZXggYzczOGE5YmU0NjhiNmQ3NjVlMTNlYTAyZjg2MjRlNGEwOTIwMmZlZi4uNGJl
MjMzMDZhNzA5NTI3NDA0ZTg1OWYxNDc4ODhlY2VhZjJmNWQyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwCkBAIC02OSw3ICs2OSw3IEBAIFJlbmRlclN0
eWxlIFJlbmRlckxpc3RJdGVtOjpjb21wdXRlTWFya2VyU3R5bGUoKSBjb25zdAogICAgIFJlbmRl
clN0eWxlIHBhcmVudFN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lKHN0eWxlKCkpOwogICAgIGF1
dG8gZm9udERlc2NyaXB0aW9uID0gc3R5bGUoKS5mb250RGVzY3JpcHRpb24oKTsKICAgICBmb250
RGVzY3JpcHRpb24uc2V0VmFyaWFudE51bWVyaWNTcGFjaW5nKEZvbnRWYXJpYW50TnVtZXJpY1Nw
YWNpbmc6OlRhYnVsYXJOdW1iZXJzKTsKLSAgICBwYXJlbnRTdHlsZS5zZXRGb250RGVzY3JpcHRp
b24oZm9udERlc2NyaXB0aW9uKTsKKyAgICBwYXJlbnRTdHlsZS5zZXRGb250RGVzY3JpcHRpb24o
V1RGTW92ZShmb250RGVzY3JpcHRpb24pKTsKICAgICBwYXJlbnRTdHlsZS5mb250Q2FzY2FkZSgp
LnVwZGF0ZSgmZG9jdW1lbnQoKS5mb250U2VsZWN0b3IoKSk7CiAgICAgaWYgKGF1dG8gbWFya2Vy
U3R5bGUgPSBnZXRDYWNoZWRQc2V1ZG9TdHlsZShNQVJLRVIsICZwYXJlbnRTdHlsZSkpCiAgICAg
ICAgIHJldHVybiBSZW5kZXJTdHlsZTo6Y2xvbmUoKm1hcmtlclN0eWxlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4IDQyNGQyZDVhNThlNDllZWQyZjQ0NjY0
MjY5MjNjOWQ0NmYyZmE5ZjcuLmFmNTM5ZjJiNTE0MGFkNmY0MDA4MWQ2NjYyMDUwOGE1MDA4Mzky
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAtMTc2LDcg
KzE3Niw3IEBAIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdFN0eWxlKFN0eWxlUmVzb2x2ZXImIHN0
eWxlUmVzb2x2ZXIsIFJlbmRlclN0eWxlJiBzdHlsZSwKICAgICAgICAgaWYgKGF1dG8gdGhlbWVG
b250ID0gVGhlbWU6OnNpbmdsZXRvbigpLmNvbnRyb2xGb250KHBhcnQsIHN0eWxlLmZvbnRDYXNj
YWRlKCksIHN0eWxlLmVmZmVjdGl2ZVpvb20oKSkpIHsKICAgICAgICAgICAgIC8vIElmIG92ZXJy
aWRpbmcgdGhlIHNwZWNpZmllZCBmb250IHdpdGggdGhlIHRoZW1lIGZvbnQsIGFsc28gb3ZlcnJp
ZGUgdGhlIGxpbmUgaGVpZ2h0IHdpdGggdGhlIHN0YW5kYXJkIGxpbmUgaGVpZ2h0LgogICAgICAg
ICAgICAgc3R5bGUuc2V0TGluZUhlaWdodChSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVIZWlnaHQo
KSk7Ci0gICAgICAgICAgICBpZiAoc3R5bGUuc2V0Rm9udERlc2NyaXB0aW9uKHRoZW1lRm9udC52
YWx1ZSgpKSkKKyAgICAgICAgICAgIGlmIChzdHlsZS5zZXRGb250RGVzY3JpcHRpb24oV1RGTW92
ZSh0aGVtZUZvbnQudmFsdWUoKSkpKQogICAgICAgICAgICAgICAgIHN0eWxlLmZvbnRDYXNjYWRl
KCkudXBkYXRlKG51bGxwdHIpOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCA5Y2Y2MDgyOTZiOTczM2ZjMDVkMTk3MDc0ZjNlZjc3
YmU0OWMyNGY5Li4zM2IyMmI5MjhmNWM3MTJlZGYyY2RiMGM1Mzk4ODk4MjRmMGVmNThhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC03OTEsNyArNzkx
LDcgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0Rm9udEZyb21Db250cm9sU2l6ZShTdHlsZVJl
c29sdmVyJiwgUmVuZGVyU3R5bGUmIHN0eWxlLAogICAgIC8vIFJlc2V0IGxpbmUgaGVpZ2h0CiAg
ICAgc3R5bGUuc2V0TGluZUhlaWdodChSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVIZWlnaHQoKSk7
CiAKLSAgICBpZiAoc3R5bGUuc2V0Rm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbikpCisg
ICAgaWYgKHN0eWxlLnNldEZvbnREZXNjcmlwdGlvbihXVEZNb3ZlKGZvbnREZXNjcmlwdGlvbikp
KQogICAgICAgICBzdHlsZS5mb250Q2FzY2FkZSgpLnVwZGF0ZSgwKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvU2l6aW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b1NpemluZy5jcHAKaW5kZXggYjdhOTA3OWQxNThlY2Q0
YzlkNmE4MzA1NTdjYTkzODExNGY5NmE3My4uM2JhMTMwZDQ1NTlkNzI5MmQ4OTFmNTUzY2YxNDgw
Zjg2NmJiMmJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRv
U2l6aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9TaXppbmcu
Y3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgYXV0byBUZXh0QXV0b1NpemluZ1ZhbHVlOjphZGp1c3RU
ZXh0Tm9kZVNpemVzKCkgLT4gU3RpbGxIYXNOb2RlcwogICAgICAgICBhdXRvIHN0eWxlID0gY2xv
bmVSZW5kZXJTdHlsZVdpdGhTdGF0ZShyZW5kZXJlci5zdHlsZSgpKTsKICAgICAgICAgYXV0byBm
b250RGVzY3JpcHRpb24gPSBzdHlsZS5mb250RGVzY3JpcHRpb24oKTsKICAgICAgICAgZm9udERl
c2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZShhdmVyYWdlU2l6ZSk7Ci0gICAgICAgIHN0eWxlLnNl
dEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOworICAgICAgICBzdHlsZS5zZXRGb250
RGVzY3JpcHRpb24oRm9udENhc2NhZGVEZXNjcmlwdGlvbiB7IGZvbnREZXNjcmlwdGlvbiB9KTsK
ICAgICAgICAgc3R5bGUuZm9udENhc2NhZGUoKS51cGRhdGUoJm5vZGUtPmRvY3VtZW50KCkuZm9u
dFNlbGVjdG9yKCkpOwogICAgICAgICBwYXJlbnRSZW5kZXJlci0+c2V0U3R5bGUoV1RGTW92ZShz
dHlsZSkpOwogCkBAIC0xMzMsNyArMTMzLDcgQEAgYXV0byBUZXh0QXV0b1NpemluZ1ZhbHVlOjph
ZGp1c3RUZXh0Tm9kZVNpemVzKCkgLT4gU3RpbGxIYXNOb2RlcwogICAgICAgICBpZiAoaXM8UmVu
ZGVyTGlzdE1hcmtlcj4oKnBhcmVudFJlbmRlcmVyLT5maXJzdENoaWxkKCkpKSB7CiAgICAgICAg
ICAgICBhdXRvJiBsaXN0TWFya2VyUmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJMaXN0TWFya2Vy
PigqcGFyZW50UmVuZGVyZXItPmZpcnN0Q2hpbGQoKSk7CiAgICAgICAgICAgICBhdXRvIHN0eWxl
ID0gY2xvbmVSZW5kZXJTdHlsZVdpdGhTdGF0ZShsaXN0TWFya2VyUmVuZGVyZXIuc3R5bGUoKSk7
Ci0gICAgICAgICAgICBzdHlsZS5zZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsK
KyAgICAgICAgICAgIHN0eWxlLnNldEZvbnREZXNjcmlwdGlvbihGb250Q2FzY2FkZURlc2NyaXB0
aW9uIHsgZm9udERlc2NyaXB0aW9uIH0pOwogICAgICAgICAgICAgc3R5bGUuZm9udENhc2NhZGUo
KS51cGRhdGUoJm5vZGUtPmRvY3VtZW50KCkuZm9udFNlbGVjdG9yKCkpOwogICAgICAgICAgICAg
bGlzdE1hcmtlclJlbmRlcmVyLnNldFN0eWxlKFdURk1vdmUoc3R5bGUpKTsKICAgICAgICAgfQpA
QCAtMTU2LDcgKzE1Niw3IEBAIGF1dG8gVGV4dEF1dG9TaXppbmdWYWx1ZTo6YWRqdXN0VGV4dE5v
ZGVTaXplcygpIC0+IFN0aWxsSGFzTm9kZXMKICAgICAgICAgYXV0byBuZXdQYXJlbnRTdHlsZSA9
IGNsb25lUmVuZGVyU3R5bGVXaXRoU3RhdGUocGFyZW50U3R5bGUpOwogICAgICAgICBuZXdQYXJl
bnRTdHlsZS5zZXRMaW5lSGVpZ2h0KExlbmd0aChsaW5lSGVpZ2h0LCBGaXhlZCkpOwogICAgICAg
ICBuZXdQYXJlbnRTdHlsZS5zZXRTcGVjaWZpZWRMaW5lSGVpZ2h0KExlbmd0aCB7IGxpbmVIZWln
aHRMZW5ndGggfSk7Ci0gICAgICAgIG5ld1BhcmVudFN0eWxlLnNldEZvbnREZXNjcmlwdGlvbihm
b250RGVzY3JpcHRpb24pOworICAgICAgICBuZXdQYXJlbnRTdHlsZS5zZXRGb250RGVzY3JpcHRp
b24oV1RGTW92ZShmb250RGVzY3JpcHRpb24pKTsKICAgICAgICAgbmV3UGFyZW50U3R5bGUuZm9u
dENhc2NhZGUoKS51cGRhdGUoJm5vZGUtPmRvY3VtZW50KCkuZm9udFNlbGVjdG9yKCkpOwogICAg
ICAgICBwYXJlbnRSZW5kZXJlci0+c2V0U3R5bGUoV1RGTW92ZShuZXdQYXJlbnRTdHlsZSkpOwog
CkBAIC0xOTgsNyArMTk4LDcgQEAgdm9pZCBUZXh0QXV0b1NpemluZ1ZhbHVlOjpyZXNldCgpCiAg
ICAgICAgIGlmIChmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCkgIT0gb3JpZ2luYWxTaXpl
KSB7CiAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKG9yaWdpbmFs
U2l6ZSk7CiAgICAgICAgICAgICBhdXRvIHN0eWxlID0gY2xvbmVSZW5kZXJTdHlsZVdpdGhTdGF0
ZShyZW5kZXJlci0+c3R5bGUoKSk7Ci0gICAgICAgICAgICBzdHlsZS5zZXRGb250RGVzY3JpcHRp
b24oZm9udERlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIHN0eWxlLnNldEZvbnREZXNjcmlwdGlv
bihGb250Q2FzY2FkZURlc2NyaXB0aW9uIHsgZm9udERlc2NyaXB0aW9uIH0pOwogICAgICAgICAg
ICAgc3R5bGUuZm9udENhc2NhZGUoKS51cGRhdGUoJm5vZGUtPmRvY3VtZW50KCkuZm9udFNlbGVj
dG9yKCkpOwogICAgICAgICAgICAgcGFyZW50UmVuZGVyZXItPnNldFN0eWxlKFdURk1vdmUoc3R5
bGUpKTsKICAgICAgICAgfQpAQCAtMjE0LDcgKzIxNCw3IEBAIHZvaWQgVGV4dEF1dG9TaXppbmdW
YWx1ZTo6cmVzZXQoKQogCiAgICAgICAgIGF1dG8gbmV3UGFyZW50U3R5bGUgPSBjbG9uZVJlbmRl
clN0eWxlV2l0aFN0YXRlKHBhcmVudFN0eWxlKTsKICAgICAgICAgbmV3UGFyZW50U3R5bGUuc2V0
TGluZUhlaWdodChMZW5ndGggeyBvcmlnaW5hbExpbmVIZWlnaHQgfSk7Ci0gICAgICAgIG5ld1Bh
cmVudFN0eWxlLnNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOworICAgICAgICBu
ZXdQYXJlbnRTdHlsZS5zZXRGb250RGVzY3JpcHRpb24oV1RGTW92ZShmb250RGVzY3JpcHRpb24p
KTsKICAgICAgICAgbmV3UGFyZW50U3R5bGUuZm9udENhc2NhZGUoKS51cGRhdGUoJm5vZGUtPmRv
Y3VtZW50KCkuZm9udFNlbGVjdG9yKCkpOwogICAgICAgICBwYXJlbnRSZW5kZXJlci0+c2V0U3R5
bGUoV1RGTW92ZShuZXdQYXJlbnRTdHlsZSkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDRjZmVhODQzYWNiZmQ1MjQ3ODFi
YTU3MzRmYTFiMWQ0ZjdmZWMyN2IuLjAwZDJkODE0MDI0ZTA4MzU5MzM1ZjU5MzZhODY0NDk5MTUy
ZTk1ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcApAQCAtMTU0OCwxMiArMTU0OCwxMiBAQCBmbG9hdCBSZW5kZXJTdHlsZTo6bGV0dGVyU3Bh
Y2luZygpIGNvbnN0CiAgICAgcmV0dXJuIG1faW5oZXJpdGVkRGF0YS0+Zm9udENhc2NhZGUubGV0
dGVyU3BhY2luZygpOwogfQogCi1ib29sIFJlbmRlclN0eWxlOjpzZXRGb250RGVzY3JpcHRpb24o
Y29uc3QgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pCitib29sIFJlbmRlclN0
eWxlOjpzZXRGb250RGVzY3JpcHRpb24oRm9udENhc2NhZGVEZXNjcmlwdGlvbiYmIGRlc2NyaXB0
aW9uKQogewogICAgIGlmIChtX2luaGVyaXRlZERhdGEtPmZvbnRDYXNjYWRlLmZvbnREZXNjcmlw
dGlvbigpID09IGRlc2NyaXB0aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgYXV0byYg
Y2FzY2FkZSA9IG1faW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS5mb250Q2FzY2FkZTsKLSAgICBjYXNj
YWRlID0geyBkZXNjcmlwdGlvbiwgY2FzY2FkZS5sZXR0ZXJTcGFjaW5nKCksIGNhc2NhZGUud29y
ZFNwYWNpbmcoKSB9OworICAgIGNhc2NhZGUgPSB7IFdURk1vdmUoZGVzY3JpcHRpb24pLCBjYXNj
YWRlLmxldHRlclNwYWNpbmcoKSwgY2FzY2FkZS53b3JkU3BhY2luZygpIH07CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKQEAgLTE2NDIsNyArMTY0Miw3IEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldEZv
bnRTaXplKGZsb2F0IHNpemUpCiAgICAgZGVzY3JpcHRpb24uc2V0U3BlY2lmaWVkU2l6ZShzaXpl
KTsKICAgICBkZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUoc2l6ZSk7CiAKLSAgICBzZXRGb250
RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOworICAgIHNldEZvbnREZXNjcmlwdGlvbihXVEZNb3Zl
KGRlc2NyaXB0aW9uKSk7CiAgICAgZm9udENhc2NhZGUoKS51cGRhdGUoY3VycmVudEZvbnRTZWxl
Y3Rvcik7CiB9CiAKQEAgLTE2NTMsNyArMTY1Myw3IEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldEZv
bnRWYXJpYXRpb25TZXR0aW5ncyhGb250VmFyaWF0aW9uU2V0dGluZ3Mgc2V0dGluZ3MpCiAgICAg
YXV0byBkZXNjcmlwdGlvbiA9IGZvbnREZXNjcmlwdGlvbigpOwogICAgIGRlc2NyaXB0aW9uLnNl
dFZhcmlhdGlvblNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKIAotICAgIHNldEZvbnREZXNj
cmlwdGlvbihkZXNjcmlwdGlvbik7CisgICAgc2V0Rm9udERlc2NyaXB0aW9uKFdURk1vdmUoZGVz
Y3JpcHRpb24pKTsKICAgICBmb250Q2FzY2FkZSgpLnVwZGF0ZShjdXJyZW50Rm9udFNlbGVjdG9y
KTsKIH0KICNlbmRpZgpAQCAtMTY2NCw3ICsxNjY0LDcgQEAgdm9pZCBSZW5kZXJTdHlsZTo6c2V0
Rm9udFdlaWdodChGb250U2VsZWN0aW9uVmFsdWUgdmFsdWUpCiAgICAgYXV0byBkZXNjcmlwdGlv
biA9IGZvbnREZXNjcmlwdGlvbigpOwogICAgIGRlc2NyaXB0aW9uLnNldFdlaWdodCh2YWx1ZSk7
CiAKLSAgICBzZXRGb250RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOworICAgIHNldEZvbnREZXNj
cmlwdGlvbihXVEZNb3ZlKGRlc2NyaXB0aW9uKSk7CiAgICAgZm9udENhc2NhZGUoKS51cGRhdGUo
Y3VycmVudEZvbnRTZWxlY3Rvcik7CiB9CiAKQEAgLTE2NzQsNyArMTY3NCw3IEBAIHZvaWQgUmVu
ZGVyU3R5bGU6OnNldEZvbnRTdHJldGNoKEZvbnRTZWxlY3Rpb25WYWx1ZSB2YWx1ZSkKICAgICBh
dXRvIGRlc2NyaXB0aW9uID0gZm9udERlc2NyaXB0aW9uKCk7CiAgICAgZGVzY3JpcHRpb24uc2V0
U3RyZXRjaCh2YWx1ZSk7CiAKLSAgICBzZXRGb250RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOwor
ICAgIHNldEZvbnREZXNjcmlwdGlvbihXVEZNb3ZlKGRlc2NyaXB0aW9uKSk7CiAgICAgZm9udENh
c2NhZGUoKS51cGRhdGUoY3VycmVudEZvbnRTZWxlY3Rvcik7CiB9CiAKQEAgLTE2ODQsNyArMTY4
NCw3IEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldEZvbnRJdGFsaWMoRm9udFNlbGVjdGlvblZhbHVl
IHZhbHVlKQogICAgIGF1dG8gZGVzY3JpcHRpb24gPSBmb250RGVzY3JpcHRpb24oKTsKICAgICBk
ZXNjcmlwdGlvbi5zZXRJdGFsaWModmFsdWUpOwogCi0gICAgc2V0Rm9udERlc2NyaXB0aW9uKGRl
c2NyaXB0aW9uKTsKKyAgICBzZXRGb250RGVzY3JpcHRpb24oV1RGTW92ZShkZXNjcmlwdGlvbikp
OwogICAgIGZvbnRDYXNjYWRlKCkudXBkYXRlKGN1cnJlbnRGb250U2VsZWN0b3IpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDY2YThm
MDcxM2FkMTRlYzE4MTA2ZTY5ZDdhMjE2ZTk4ODRhZDFmMGEuLmI0NzFjNDg0N2I5ZTc3NGMzM2Rj
NTMyYTU0NTQ5ZWEyZGI0MjNlYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCkBAIC04OTksNyArODk5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
Q2xlYXIoQ2xlYXIgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLmNsZWFyID0gc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KHYpOyB9CiAgICAgdm9pZCBzZXRUYWJsZUxheW91dChUYWJsZUxheW91dFR5cGUg
dikgeyBtX25vbkluaGVyaXRlZEZsYWdzLnRhYmxlTGF5b3V0ID0gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KHYpOyB9CiAKLSAgICBib29sIHNldEZvbnREZXNjcmlwdGlvbihjb25zdCBGb250Q2FzY2Fk
ZURlc2NyaXB0aW9uJik7CisgICAgYm9vbCBzZXRGb250RGVzY3JpcHRpb24oRm9udENhc2NhZGVE
ZXNjcmlwdGlvbiYmKTsKIAogICAgIC8vIE9ubHkgdXNlZCBmb3IgYmxlbmRpbmcgZm9udCBzaXpl
cyB3aGVuIGFuaW1hdGluZywgZm9yIE1hdGhNTCBhbm9ueW1vdXMgYmxvY2tzLCBhbmQgZm9yIHRl
eHQgYXV0b3NpemluZy4KICAgICB2b2lkIHNldEZvbnRTaXplKGZsb2F0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuY3BwCmluZGV4
IGE5YTE2Njk5MDhjOGRkN2RjZWU1YmFlN2NiNjMwYzEwOWIzOGU2ZWIuLmZkOGY1Y2M5ZGQyNjBl
YzczMjU0ZWM4MWUxNmI2NDUzMGI5ZWUzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcApAQCAtMjQ3LDcgKzI0Nyw3IEBA
IHZvaWQgUmVuZGVyU1ZHSW5saW5lVGV4dDo6Y29tcHV0ZU5ld1NjYWxlZEZvbnRGb3JTdHlsZShj
b25zdCBSZW5kZXJPYmplY3QmIHJlbmRlCiAgICAgaWYgKGZvbnREZXNjcmlwdGlvbi5vcmllbnRh
dGlvbigpICE9IEZvbnRPcmllbnRhdGlvbjo6SG9yaXpvbnRhbCkKICAgICAgICAgZm9udERlc2Ny
aXB0aW9uLnNldE9yaWVudGF0aW9uKEZvbnRPcmllbnRhdGlvbjo6SG9yaXpvbnRhbCk7CiAKLSAg
ICBzY2FsZWRGb250ID0gRm9udENhc2NhZGUoZm9udERlc2NyaXB0aW9uLCAwLCAwKTsKKyAgICBz
Y2FsZWRGb250ID0gRm9udENhc2NhZGUoV1RGTW92ZShmb250RGVzY3JpcHRpb24pLCAwLCAwKTsK
ICAgICBzY2FsZWRGb250LnVwZGF0ZSgmcmVuZGVyZXIuZG9jdW1lbnQoKS5mb250U2VsZWN0b3Io
KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9S
ZW5kZXJUcmVlQnVpbGRlckZpcnN0TGV0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckZpcnN0TGV0dGVyLmNwcAppbmRleCA2NDNkZGEz
ZjMxMjgzYzg0ZGU4NTI3MTY0MDA1ODNjYzk2N2I0YTJhLi5hN2VhZmE4ZDIxOTQ0MDExN2Y4NDEz
ODZhMzgyOTQzZDUwZmIyNzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
dXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJGaXJzdExldHRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyRmlyc3RMZXR0ZXIuY3Bw
CkBAIC02Niw3ICs2Niw3IEBAIHN0YXRpYyBSZW5kZXJTdHlsZSBzdHlsZUZvckZpcnN0TGV0dGVy
KGNvbnN0IFJlbmRlckJsb2NrJiBmaXJzdExldHRlckJsb2NrLCBjb25zCiAgICAgICAgIGZsb2F0
IHN0YXJ0aW5nRm9udFNpemUgPSAoKGZpcnN0TGV0dGVyU3R5bGUuaW5pdGlhbExldHRlckhlaWdo
dCgpIC0gMSkgKiBsaW5lSGVpZ2h0ICsgcGFyYWdyYXBoLT5zdHlsZSgpLmZvbnRNZXRyaWNzKCku
Y2FwSGVpZ2h0KCkpIC8gY2FwUmF0aW87CiAgICAgICAgIG5ld0ZvbnREZXNjcmlwdGlvbi5zZXRT
cGVjaWZpZWRTaXplKHN0YXJ0aW5nRm9udFNpemUpOwogICAgICAgICBuZXdGb250RGVzY3JpcHRp
b24uc2V0Q29tcHV0ZWRTaXplKHN0YXJ0aW5nRm9udFNpemUpOwotICAgICAgICBmaXJzdExldHRl
clN0eWxlLnNldEZvbnREZXNjcmlwdGlvbihuZXdGb250RGVzY3JpcHRpb24pOworICAgICAgICBm
aXJzdExldHRlclN0eWxlLnNldEZvbnREZXNjcmlwdGlvbihXVEZNb3ZlKG5ld0ZvbnREZXNjcmlw
dGlvbikpOwogICAgICAgICBmaXJzdExldHRlclN0eWxlLmZvbnRDYXNjYWRlKCkudXBkYXRlKGZp
cnN0TGV0dGVyU3R5bGUuZm9udENhc2NhZGUoKS5mb250U2VsZWN0b3IoKSk7CiAKICAgICAgICAg
aW50IGRlc2lyZWRDYXBIZWlnaHQgPSAoZmlyc3RMZXR0ZXJTdHlsZS5pbml0aWFsTGV0dGVySGVp
Z2h0KCkgLSAxKSAqIGxpbmVIZWlnaHQgKyBwYXJhZ3JhcGgtPnN0eWxlKCkuZm9udE1ldHJpY3Mo
KS5jYXBIZWlnaHQoKTsKQEAgLTc1LDcgKzc1LDcgQEAgc3RhdGljIFJlbmRlclN0eWxlIHN0eWxl
Rm9yRmlyc3RMZXR0ZXIoY29uc3QgUmVuZGVyQmxvY2smIGZpcnN0TGV0dGVyQmxvY2ssIGNvbnMK
ICAgICAgICAgICAgIGF1dG8gbmV3Rm9udERlc2NyaXB0aW9uID0gZmlyc3RMZXR0ZXJTdHlsZS5m
b250RGVzY3JpcHRpb24oKTsKICAgICAgICAgICAgIG5ld0ZvbnREZXNjcmlwdGlvbi5zZXRTcGVj
aWZpZWRTaXplKG5ld0ZvbnREZXNjcmlwdGlvbi5zcGVjaWZpZWRTaXplKCkgLSAxKTsKICAgICAg
ICAgICAgIG5ld0ZvbnREZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUobmV3Rm9udERlc2NyaXB0
aW9uLmNvbXB1dGVkU2l6ZSgpIC0xKTsKLSAgICAgICAgICAgIGZpcnN0TGV0dGVyU3R5bGUuc2V0
Rm9udERlc2NyaXB0aW9uKG5ld0ZvbnREZXNjcmlwdGlvbik7CisgICAgICAgICAgICBmaXJzdExl
dHRlclN0eWxlLnNldEZvbnREZXNjcmlwdGlvbihXVEZNb3ZlKG5ld0ZvbnREZXNjcmlwdGlvbikp
OwogICAgICAgICAgICAgZmlyc3RMZXR0ZXJTdHlsZS5mb250Q2FzY2FkZSgpLnVwZGF0ZShmaXJz
dExldHRlclN0eWxlLmZvbnRDYXNjYWRlKCkuZm9udFNlbGVjdG9yKCkpOwogICAgICAgICAgICAg
YWN0dWFsQ2FwSGVpZ2h0ID0gZmlyc3RMZXR0ZXJTdHlsZS5mb250TWV0cmljcygpLmNhcEhlaWdo
dCgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJl
c29sdmVGb3JEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVG
b3JEb2N1bWVudC5jcHAKaW5kZXggM2E5ZGIxODIxMTE1NDIyZTk4ODBmMmQyZmY0YWY3YzBlNThi
MjJlNS4uZGFmYzlhNjAxZDQ4ZTNlNjlhZWY2NTdjOWEwODU1ZjBkOWM4ZGM0OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcApAQCAtMTIz
LDcgKzEyMyw3IEBAIFJlbmRlclN0eWxlIHJlc29sdmVGb3JEb2N1bWVudChjb25zdCBEb2N1bWVu
dCYgZG9jdW1lbnQpCiAgICAgZm9udERlc2NyaXB0aW9uLnNldE9yaWVudGF0aW9uKGZvbnRPcmll
bnRhdGlvbik7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldE5vbkNKS0dseXBoT3JpZW50YXRpb24o
Z2x5cGhPcmllbnRhdGlvbik7CiAKLSAgICBkb2N1bWVudFN0eWxlLnNldEZvbnREZXNjcmlwdGlv
bihmb250RGVzY3JpcHRpb24pOworICAgIGRvY3VtZW50U3R5bGUuc2V0Rm9udERlc2NyaXB0aW9u
KFdURk1vdmUoZm9udERlc2NyaXB0aW9uKSk7CiAKICAgICBkb2N1bWVudFN0eWxlLmZvbnRDYXNj
YWRlKCkudXBkYXRlKCZjb25zdF9jYXN0PERvY3VtZW50Jj4oZG9jdW1lbnQpLmZvbnRTZWxlY3Rv
cigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vRnVsbHNjcmVlblZp
ZGVvQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9GdWxsc2NyZWVuVmlk
ZW9Db250cm9sbGVyLmNwcAppbmRleCAzMThmMWE2OTZiY2M4NmQ4MjhkMDY3YTg1ZWJiYzRhNWRk
MDcwZGQwLi5mODFjZmVmYmJmOGQwMmZjMGJmM2JlNjNlOGYzNTE2NWJmMzRiYjNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVy
LmNwcApAQCAtNTIwLDcgKzUyMCw3IEBAIHZvaWQgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6
ZHJhdygpCiAgICAgZGVzYy5zZXRPbmVGYW1pbHkobWV0cmljcy5sZlNtQ2FwdGlvbkZvbnQubGZG
YWNlTmFtZSk7CiAKICAgICBkZXNjLnNldENvbXB1dGVkU2l6ZSh0ZXh0U2l6ZSk7Ci0gICAgRm9u
dENhc2NhZGUgZm9udCA9IEZvbnRDYXNjYWRlKGRlc2MsIDAsIDApOworICAgIEZvbnRDYXNjYWRl
IGZvbnQgPSBGb250Q2FzY2FkZShXVEZNb3ZlKGRlc2MpLCAwLCAwKTsKICAgICBmb250LnVwZGF0
ZSgwKTsKIAogICAgIFN0cmluZyBzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGZiZWU2ZDUwOGY1YmM3NzBkOGRhZWMxNjlmYmRmOWEwMzE2OTFl
ODcuLmEyZmM3Nzg5MDlhNTQ5NjExY2RjZjNiNjdkYjNkOTBhZDlmNjU5OTMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxOC0wNS0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJl
ZHVjZSBjb3B5aW5nIG9mIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24gb2JqZWN0cyBieSBtb3Zpbmcg
dGhlbSBhcm91bmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4NTk2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlZHVjZSBjb3B5aW5nIG9mIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24gb2JqZWN0cyBieSBt
b3ZpbmcgdGhlbSBhcm91bmQgd2hlbiBwb3NzaWJsZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVF9GKToKKwogMjAxOC0wNS0yNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVyOiBpbXBsZW1lbnQgbWF4
aW1pemUsIG1pbmltaXplIGFuZCBmdWxsc2NyZWVuIHdpbmRvdyBjb21tYW5kcwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbXBsZXhUZXh0Q29udHJvbGxl
ci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29tcGxleFRleHRDb250
cm9sbGVyLmNwcAppbmRleCA4YWY4MTU4NGUxOWYxOThkNTk3YjRhZjExMjVhOTQzMWJiNDUyOTE0
Li43NTk1ZmUyMGU1M2MwNDI2YmYzNjY0YTczMDkzMTliNzkzMWEyYmE2IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29tcGxleFRleHRDb250cm9sbGVyLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29tcGxleFRleHRDb250
cm9sbGVyLmNwcApAQCAtNDksNyArNDksNyBAQCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVy
VGVzdCwgSW5pdGlhbEFkdmFuY2VXaXRoTGVmdFJ1bkluUlRMKQogICAgIEZvbnRDYXNjYWRlRGVz
Y3JpcHRpb24gZGVzY3JpcHRpb247CiAgICAgZGVzY3JpcHRpb24uc2V0T25lRmFtaWx5KCJUaW1l
cyIpOwogICAgIGRlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZSg4MCk7Ci0gICAgRm9udENhc2Nh
ZGUgZm9udChkZXNjcmlwdGlvbik7CisgICAgRm9udENhc2NhZGUgZm9udChXVEZNb3ZlKGRlc2Ny
aXB0aW9uKSk7CiAgICAgZm9udC51cGRhdGUoKTsKICAgICBhdXRvIHNwYWNlV2lkdGggPSBmb250
LnByaW1hcnlGb250KCkuc3BhY2VXaWR0aCgpOwogCkBAIC05Niw3ICs5Niw3IEBAIFRFU1RfRihD
b21wbGV4VGV4dENvbnRyb2xsZXJUZXN0LCBJbml0aWFsQWR2YW5jZUluUlRMKQogICAgIEZvbnRD
YXNjYWRlRGVzY3JpcHRpb24gZGVzY3JpcHRpb247CiAgICAgZGVzY3JpcHRpb24uc2V0T25lRmFt
aWx5KCJUaW1lcyIpOwogICAgIGRlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZSg4MCk7Ci0gICAg
Rm9udENhc2NhZGUgZm9udChkZXNjcmlwdGlvbik7CisgICAgRm9udENhc2NhZGUgZm9udChXVEZN
b3ZlKGRlc2NyaXB0aW9uKSk7CiAgICAgZm9udC51cGRhdGUoKTsKIAogICAgIFZlY3RvcjxGbG9h
dFNpemU+IGFkdmFuY2VzID0geyBGbG9hdFNpemUoKSwgRmxvYXRTaXplKDIxLjY0MDYyNSwgMC4w
KSwgRmxvYXRTaXplKDQyLjMwNDY4NzUsIDAuMCksIEZsb2F0U2l6ZSg1NS44OTg0Mzc1LCAwLjAp
LCBGbG9hdFNpemUoMjIuMzQzNzUsIDAuMCkgfTsKQEAgLTE0MCw3ICsxNDAsNyBAQCBURVNUX0Yo
Q29tcGxleFRleHRDb250cm9sbGVyVGVzdCwgSW5pdGlhbEFkdmFuY2VXaXRoTGVmdFJ1bkluTFRS
KQogICAgIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24gZGVzY3JpcHRpb247CiAgICAgZGVzY3JpcHRp
b24uc2V0T25lRmFtaWx5KCJMdWNpZGFHcmFuZGUiKTsKICAgICBkZXNjcmlwdGlvbi5zZXRDb21w
dXRlZFNpemUoODApOwotICAgIEZvbnRDYXNjYWRlIGZvbnQoZGVzY3JpcHRpb24pOworICAgIEZv
bnRDYXNjYWRlIGZvbnQoV1RGTW92ZShkZXNjcmlwdGlvbikpOwogICAgIGZvbnQudXBkYXRlKCk7
CiAgICAgYXV0byBzcGFjZVdpZHRoID0gZm9udC5wcmltYXJ5Rm9udCgpLnNwYWNlV2lkdGgoKTsK
IApAQCAtMTgzLDcgKzE4Myw3IEBAIFRFU1RfRihDb21wbGV4VGV4dENvbnRyb2xsZXJUZXN0LCBJ
bml0aWFsQWR2YW5jZUluTFRSKQogICAgIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24gZGVzY3JpcHRp
b247CiAgICAgZGVzY3JpcHRpb24uc2V0T25lRmFtaWx5KCJMdWNpZGFHcmFuZGUiKTsKICAgICBk
ZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUoODApOwotICAgIEZvbnRDYXNjYWRlIGZvbnQoZGVz
Y3JpcHRpb24pOworICAgIEZvbnRDYXNjYWRlIGZvbnQoV1RGTW92ZShkZXNjcmlwdGlvbikpOwog
ICAgIGZvbnQudXBkYXRlKCk7CiAKICAgICBWZWN0b3I8RmxvYXRTaXplPiBhZHZhbmNlcyA9IHsg
RmxvYXRTaXplKDc2LjM0NzY1NiwgMC4wMDAwMDApLCBGbG9hdFNpemUoMC4wMDAwMDAsIDAuMDAw
MDAwKSB9OwpAQCAtMjIwLDcgKzIyMCw3IEBAIFRFU1RfRihDb21wbGV4VGV4dENvbnRyb2xsZXJU
ZXN0LCBJbml0aWFsQWR2YW5jZUluUlRMTm9PcmlnaW5zKQogICAgIEZvbnRDYXNjYWRlRGVzY3Jp
cHRpb24gZGVzY3JpcHRpb247CiAgICAgZGVzY3JpcHRpb24uc2V0T25lRmFtaWx5KCJUaW1lcyIp
OwogICAgIGRlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZSg0OCk7Ci0gICAgRm9udENhc2NhZGUg
Zm9udChkZXNjcmlwdGlvbik7CisgICAgRm9udENhc2NhZGUgZm9udChXVEZNb3ZlKGRlc2NyaXB0
aW9uKSk7CiAgICAgZm9udC51cGRhdGUoKTsKIAogICAgIEZsb2F0U2l6ZSBpbml0aWFsQWR2YW5j
ZSA9IEZsb2F0U2l6ZSg0LjMzOTk2MzgzMzYzNDcyLCAxMi4zNjg4OTY5MjU4NTkpOwpAQCAtMjY2
LDcgKzI2Niw3IEBAIFRFU1RfRihDb21wbGV4VGV4dENvbnRyb2xsZXJUZXN0LCBMZWFkaW5nRXhw
YW5zaW9uKQogICAgIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24gZGVzY3JpcHRpb247CiAgICAgZGVz
Y3JpcHRpb24uc2V0T25lRmFtaWx5KCJUaW1lcyIpOwogICAgIGRlc2NyaXB0aW9uLnNldENvbXB1
dGVkU2l6ZSg0OCk7Ci0gICAgRm9udENhc2NhZGUgZm9udChkZXNjcmlwdGlvbik7CisgICAgRm9u
dENhc2NhZGUgZm9udChXVEZNb3ZlKGRlc2NyaXB0aW9uKSk7CiAgICAgZm9udC51cGRhdGUoKTsK
IAogICAgIFVDaGFyIGNoYXJhY3RlcnNbXSA9IHsgJ2EnIH07CkBAIC0yOTYsNyArMjk2LDcgQEAg
VEVTVF9GKENvbXBsZXhUZXh0Q29udHJvbGxlclRlc3QsIFZlcnRpY2FsQWR2YW5jZXMpCiAgICAg
Rm9udENhc2NhZGVEZXNjcmlwdGlvbiBkZXNjcmlwdGlvbjsKICAgICBkZXNjcmlwdGlvbi5zZXRP
bmVGYW1pbHkoIlRpbWVzIik7CiAgICAgZGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKDQ4KTsK
LSAgICBGb250Q2FzY2FkZSBmb250KGRlc2NyaXB0aW9uKTsKKyAgICBGb250Q2FzY2FkZSBmb250
KFdURk1vdmUoZGVzY3JpcHRpb24pKTsKICAgICBmb250LnVwZGF0ZSgpOwogCiAgICAgVUNoYXIg
Y2hhcmFjdGVyc1tdID0geyAnYScsICdiJywgJ2MnLCAnZCcgfTsKQEAgLTM0MCw3ICszNDAsNyBA
QCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVyVGVzdCwgVG90YWxXaWR0aFdpdGhKdXN0aWZp
Y2F0aW9uKQogICAgIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24gZGVzY3JpcHRpb247CiAgICAgZGVz
Y3JpcHRpb24uc2V0T25lRmFtaWx5KCJUaW1lcyIpOwogICAgIGRlc2NyaXB0aW9uLnNldENvbXB1
dGVkU2l6ZSg4MCk7Ci0gICAgRm9udENhc2NhZGUgZm9udChkZXNjcmlwdGlvbik7CisgICAgRm9u
dENhc2NhZGUgZm9udChXVEZNb3ZlKGRlc2NyaXB0aW9uKSk7CiAgICAgZm9udC51cGRhdGUoKTsK
IAogICAgIFZlY3RvcjxGbG9hdFNpemU+IGFkdmFuY2VzID0geyBGbG9hdFNpemUoMSwgMCksIEZs
b2F0U2l6ZSgyLCAwKSwgRmxvYXRTaXplKDQsIDApLCBGbG9hdFNpemUoOCwgMCksIEZsb2F0U2l6
ZSgxNiwgMCkgfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>