<?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>219294</bug_id>
          
          <creation_ts>2020-11-25 22:50:04 -0800</creation_ts>
          <short_desc>[WinCairo] Enable GPU process</short_desc>
          <delta_ts>2020-11-26 18:20:19 -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>WebKit2</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>
          
          <blocked>206697</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1710111</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-11-25 22:50:04 -0800</bug_when>
    <thetext>[WinCairo] Enable GPU process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710112</commentid>
    <comment_count>1</comment_count>
      <attachid>414882</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-11-25 22:53:04 -0800</bug_when>
    <thetext>Created attachment 414882
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710179</commentid>
    <comment_count>2</comment_count>
      <attachid>414909</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-11-26 12:37:02 -0800</bug_when>
    <thetext>Created attachment 414909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710195</commentid>
    <comment_count>3</comment_count>
      <attachid>414909</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-11-26 18:19:06 -0800</bug_when>
    <thetext>Comment on attachment 414909
Patch

Clearing flags on attachment: 414909

Committed r270175: &lt;https://trac.webkit.org/changeset/270175&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710196</commentid>
    <comment_count>4</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-11-26 18:19:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710197</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-26 18:20:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/71755785&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414882</attachid>
            <date>2020-11-25 22:53:04 -0800</date>
            <delta_ts>2020-11-26 12:36:57 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>a.diff</filename>
            <type>text/plain</type>
            <size>23913</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXggNWMwYmVhYTQ4NjY0Li5mOTAxM2Q4ZDg5YzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtSGF2ZS5oCkBAIC01OTksNyArNTk5LDcgQEAKICNkZWZpbmUgSEFWRV9VSUNPTlRF
WFRNRU5VX0xPQ0FUSU9OIDEKICNlbmRpZgogCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApIHx8IChQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDApCisjaWYg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAw
MDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxNDAwMDApIHx8IFBMQVRGT1JNKFdJTikKICNkZWZpbmUgSEFWRV9TWVNURU1f
RkVBVFVSRV9GTEFHUyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcAppbmRleCBmMGFlZGExYjY0MGMuLmQ3
YjVhMjM5OWMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udFBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgRm9udFBsYXRmb3JtRGF0
YSBGb250UGxhdGZvcm1EYXRhOjpjbG9uZVdpdGhTaXplKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEm
IHNvdXJjZSwKIH0KICNlbmRpZgogCi0jaWYgIVVTRShDT1JFX1RFWFQpCisjaWYgIVVTRShDT1JF
X1RFWFQpICYmICFQTEFURk9STShXSU4pCiAKIFN0cmluZyBGb250UGxhdGZvcm1EYXRhOjpmYW1p
bHlOYW1lKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ2Fpcm9XaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAKaW5kZXgg
NzExMzkxODI4ODllLi5jMzQ2ZWUzYzU4Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ2Fpcm9XaW4uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ2Fpcm9X
aW4uY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
Rm9udFBsYXRmb3JtRGF0YS5oIgogCisjaW5jbHVkZSAiSFduZERDLmgiCiAjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+CkBAIC0xMDgsNCArMTA5LDE0IEBAIFN0cmluZyBGb250UGxhdGZvcm1EYXRhOjpk
ZXNjcmlwdGlvbigpIGNvbnN0CiB9CiAjZW5kaWYKIAorU3RyaW5nIEZvbnRQbGF0Zm9ybURhdGE6
OmZhbWlseU5hbWUoKSBjb25zdAoreworICAgIEhXbmREQyBoZGMoMCk7CisgICAgSEdESU9CSiBv
bGRGb250ID0gU2VsZWN0T2JqZWN0KGhkYywgbV9mb250LT5nZXQoKSk7CisgICAgd2NoYXJfdCBm
YWNlTmFtZVtMRl9GQUNFU0laRV07CisgICAgR2V0VGV4dEZhY2UoaGRjLCBMRl9GQUNFU0laRSwg
ZmFjZU5hbWUpOworICAgIFNlbGVjdE9iamVjdChoZGMsIG9sZEZvbnQpOworICAgIHJldHVybiBm
YWNlTmFtZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL3dpbi9SZW1vdGVNZWRpYVBsYXllclByb3h5V2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS93aW4vUmVtb3RlTWVkaWFQbGF5ZXJQcm94eVdpbi5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wNzE5MzE1OGY1NDcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvd2luL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHlXaW4uY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAy
MCBTb255IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5LmgiCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
Kwordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCwgYm9vbCwgZmxvYXQgdmlk
ZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0
aW5nQ29udGV4dElEPiYmIGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRp
YVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclJlbmRlcmlu
Z01vZGVDaGFuZ2VkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCisjaWYgRU5BQkxF
KFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpl
bnRlckZ1bGxzY3JlZW4oQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW4oQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisjZW5kaWYKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2luL0dQVVByb2Nlc3NNYWluV2luLmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93aW4vR1BVUHJvY2Vzc01haW5XaW4uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzRlMThmZmMzMWYyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dpbi9HUFVQcm9jZXNzTWFp
bldpbi5jcHAKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBTb255
IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJHUFVQcm9jZXNzTWFpbi5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisj
aW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzc01haW4uaCIKKyNpbmNsdWRlICJHUFVQcm9jZXNzLmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgUmVmUHRyPEdQVVByb2Nlc3M+IGdsb2Jh
bEdQVVByb2Nlc3M7CisKK2NsYXNzIEdQVVByb2Nlc3NNYWluUGxheVN0YXRpb24gZmluYWw6IHB1
YmxpYyBBdXhpbGlhcnlQcm9jZXNzTWFpbkJhc2UgeworcHVibGljOgorICAgIGJvb2wgcGxhdGZv
cm1Jbml0aWFsaXplKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KK307CisKK3RlbXBsYXRlPD4KK3ZvaWQgaW5pdGlhbGl6ZUF1eGlsaWFyeVByb2Nlc3M8R1BV
UHJvY2Vzcz4oQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEdQVVByb2Nlc3M+IGdwdVByb2Nl
c3MoV1RGTW92ZShwYXJhbWV0ZXJzKSk7CisgICAgZ2xvYmFsR1BVUHJvY2VzcyA9ICZncHVQcm9j
ZXNzLmdldCgpOworfQorCitpbnQgR1BVUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2
KQoreworICAgIHJldHVybiBBdXhpbGlhcnlQcm9jZXNzTWFpbjxHUFVQcm9jZXNzLCBHUFVQcm9j
ZXNzTWFpblBsYXlTdGF0aW9uPihhcmdjLCBhcmd2KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2luL0dQVVByb2Nlc3NXaW4uY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dpbi9HUFVQcm9jZXNzV2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAuLmU3Y2JlZGYzNjBmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93aW4vR1BVUHJvY2Vzc1dpbi5jcHAKQEAgLTAsMCArMSw0OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBTb255IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQg
SW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHUFVQcm9jZXNzLmgiCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJHUFVQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIEdQVVByb2Nlc3M6OmluaXRp
YWxpemVQcm9jZXNzKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMmKQoreworfQorCit2b2lkIEdQVVByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25z
dCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKK3sKK30KKwordm9p
ZCBHUFVQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYp
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZSBiL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggNzVhNTA2ZDZhOTVjLi45NTg0MDFl
ZTg2MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtOSw2ICs5LDExIEBAIGluY2x1ZGUo
SGVhZGVycy5jbWFrZSkKIGFkZF9kZWZpbml0aW9ucygtREJVSUxESU5HX1dFQktJVCkKIAogbGlz
dChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKKyAgICBHUFVQcm9jZXNzL21lZGlhL3dpbi9SZW1vdGVN
ZWRpYVBsYXllclByb3h5V2luLmNwcAorCisgICAgR1BVUHJvY2Vzcy93aW4vR1BVUHJvY2Vzc01h
aW5XaW4uY3BwCisgICAgR1BVUHJvY2Vzcy93aW4vR1BVUHJvY2Vzc1dpbi5jcHAKKwogICAgIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cAogCiAgICAgTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKQEAg
LTMzLDcgKzM4LDkgQEAgbGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBTaGFyZWQvd2lu
L05hdGl2ZVdlYk1vdXNlRXZlbnRXaW4uY3BwCiAgICAgU2hhcmVkL3dpbi9OYXRpdmVXZWJUb3Vj
aEV2ZW50V2luLmNwcAogICAgIFNoYXJlZC93aW4vTmF0aXZlV2ViV2hlZWxFdmVudFdpbi5jcHAK
KyAgICBTaGFyZWQvd2luL1dlYkNvcmVBcmd1bWVudENvZGVyc1dpbi5jcHAKICAgICBTaGFyZWQv
d2luL1dlYkV2ZW50RmFjdG9yeS5jcHAKKyAgICBTaGFyZWQvd2luL1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlc1dpbi5jcHAKIAogICAgIFVJUHJvY2Vzcy9CYWNraW5nU3RvcmUuY3BwCiAgICAg
VUlQcm9jZXNzL0RlZmF1bHRVbmRvQ29udHJvbGxlci5jcHAKQEAgLTY1LDYgKzcyLDggQEAgbGlz
dChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBVSVByb2Nlc3Mvd2luL1dlYlByb2Nlc3NQb29s
V2luLmNwcAogICAgIFVJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKIAorICAgIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL3dpbi9WaWRlb0xheWVyUmVtb3RlV2luLmNwcAorCiAgICAgV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS93aW4vSW5qZWN0ZWRCdW5kbGVXaW4uY3BwCiAKICAgICBXZWJQcm9jZXNz
L0luc3BlY3Rvci93aW4vV2ViSW5zcGVjdG9yVUlXaW4uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCmluZGV4IDc1MzcxYzQyNzBj
NC4uZDA5ZDQzOTM5MzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaApAQCAtMzUsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdT
KQorI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCiBib29sIGlzRmVhdHVyZUZsYWdFbmFi
bGVkKGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ3VybC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwCmluZGV4IGQ4MTdhNzhk
NGY5Zi4uNTdiNjM5NTMyZGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJs
L1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ3VybC5jcHAKQEAgLTMwLDggKzMwLDYgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL0NlcnRpZmljYXRlSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Vy
bFByb3h5U2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpY3Rpb25hcnlQb3B1cEluZm8u
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL0ZvbnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0ZvbnRBdHRy
aWJ1dGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVx
dWVzdC5oPgpAQCAtMjEzLDE3ICsyMTEsNiBAQCBPcHRpb25hbDxDdXJsUHJveHlTZXR0aW5ncz4g
QXJndW1lbnRDb2RlcjxDdXJsUHJveHlTZXR0aW5ncz46OmRlY29kZShEZWNvZGVyJiBkZQogICAg
IHJldHVybiBDdXJsUHJveHlTZXR0aW5ncyB7IFdURk1vdmUodXJsKSwgV1RGTW92ZShpZ25vcmVI
b3N0cykgfTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPEZvbnRBdHRyaWJ1dGVzPjo6ZW5jb2Rl
UGxhdGZvcm1EYXRhKEVuY29kZXImLCBjb25zdCBGb250QXR0cmlidXRlcyYpCi17Ci0gICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KLU9wdGlvbmFsPEZvbnRBdHRyaWJ1dGVzPiBBcmd1bWVu
dENvZGVyPEZvbnRBdHRyaWJ1dGVzPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImLCBGb250
QXR0cmlidXRlcyYpCi17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKLX0KLQogdm9pZCBBcmd1bWVudENvZGVyPERpY3Rpb25hcnlQb3B1cEluZm8+
OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYsIGNvbnN0IERpY3Rpb25hcnlQb3B1cEluZm8m
KQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjM1LDE3ICsyMjIsNiBAQCBib29s
IEFyZ3VtZW50Q29kZXI8RGljdGlvbmFyeVBvcHVwSW5mbz46OmRlY29kZVBsYXRmb3JtRGF0YShE
ZWNvZGVyJiwgRGljdGlvbmFyeQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBBcmd1bWVu
dENvZGVyPFJlZjxGb250Pj46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgUmVm
PEZvbnQ+JikKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotT3B0aW9uYWw8Rm9u
dFBsYXRmb3JtRGF0YT4gQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURh
dGEoRGVjb2RlciYpCi17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKLX0KLQogI2lmIEVOQUJMRShWSURFTykKIHZvaWQgQXJndW1lbnRDb2RlcjxT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiB2YWx1ZSkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dpbi9XZWJDb3JlQXJndW1lbnRD
b2RlcnNXaW4uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvd2luL1dlYkNvcmVBcmd1bWVudENv
ZGVyc1dpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45ZTgx
MTViMjhkNGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93aW4vV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzV2luLmNwcApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBTb255IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVzLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9Gb250Q2FjaGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZvbnREZXNjcmlwdGlvbi5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRm9udC5oPgorI2luY2x1ZGUgPHd0Zi93aW4vR0RJT2JqZWN0Lmg+
CisKK25hbWVzcGFjZSBJUEMgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwordm9pZCBB
cmd1bWVudENvZGVyPEZvbnRBdHRyaWJ1dGVzPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXIm
LCBjb25zdCBGb250QXR0cmlidXRlcyYpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9
CisKK09wdGlvbmFsPEZvbnRBdHRyaWJ1dGVzPiBBcmd1bWVudENvZGVyPEZvbnRBdHRyaWJ1dGVz
Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImLCBGb250QXR0cmlidXRlcyYpCit7CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKwordm9p
ZCBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBSZWY8Rm9udD4mIGZvbnQpCit7CisgICAgY29uc3QgYXV0byYgcGxhdGZv
cm1EYXRhID0gZm9udC0+cGxhdGZvcm1EYXRhKCk7CisgICAgZW5jb2RlciA8PCBwbGF0Zm9ybURh
dGEub3JpZW50YXRpb24oKTsKKyAgICBlbmNvZGVyIDw8IHBsYXRmb3JtRGF0YS53aWR0aFZhcmlh
bnQoKTsKKyAgICBlbmNvZGVyIDw8IHBsYXRmb3JtRGF0YS50ZXh0UmVuZGVyaW5nTW9kZSgpOwor
ICAgIGVuY29kZXIgPDwgcGxhdGZvcm1EYXRhLnNpemUoKTsKKyAgICBlbmNvZGVyIDw8IHBsYXRm
b3JtRGF0YS5zeW50aGV0aWNCb2xkKCk7CisgICAgZW5jb2RlciA8PCBwbGF0Zm9ybURhdGEuc3lu
dGhldGljT2JsaXF1ZSgpOworICAgIGVuY29kZXIgPDwgcGxhdGZvcm1EYXRhLmZhbWlseU5hbWUo
KTsKK30KKworT3B0aW9uYWw8Rm9udFBsYXRmb3JtRGF0YT4gQXJndW1lbnRDb2RlcjxSZWY8Rm9u
dD4+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25h
bDxGb250T3JpZW50YXRpb24+IG9yaWVudGF0aW9uOworICAgIGRlY29kZXIgPj4gb3JpZW50YXRp
b247CisgICAgaWYgKCFvcmllbnRhdGlvbi5oYXNWYWx1ZSgpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Rm9udFdpZHRoVmFyaWFudD4gd2lkdGhWYXJpYW50
OworICAgIGRlY29kZXIgPj4gd2lkdGhWYXJpYW50OworICAgIGlmICghd2lkdGhWYXJpYW50Lmhh
c1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxU
ZXh0UmVuZGVyaW5nTW9kZT4gdGV4dFJlbmRlcmluZ01vZGU7CisgICAgZGVjb2RlciA+PiB0ZXh0
UmVuZGVyaW5nTW9kZTsKKyAgICBpZiAoIXRleHRSZW5kZXJpbmdNb2RlLmhhc1ZhbHVlKCkpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxmbG9hdD4gc2l6ZTsK
KyAgICBkZWNvZGVyID4+IHNpemU7CisgICAgaWYgKCFzaXplLmhhc1ZhbHVlKCkpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxib29sPiBzeW50aGV0aWNCb2xk
OworICAgIGRlY29kZXIgPj4gc3ludGhldGljQm9sZDsKKyAgICBpZiAoIXN5bnRoZXRpY0JvbGQu
aGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFs
PGJvb2w+IHN5bnRoZXRpY09ibGlxdWU7CisgICAgZGVjb2RlciA+PiBzeW50aGV0aWNPYmxpcXVl
OworICAgIGlmICghc3ludGhldGljT2JsaXF1ZS5oYXNWYWx1ZSgpKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBmYW1pbHlOYW1lOworICAgIGRl
Y29kZXIgPj4gZmFtaWx5TmFtZTsKKyAgICBpZiAoIWZhbWlseU5hbWUuaGFzVmFsdWUoKSkKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworI2lmIDEgLy8gRklYTUU6IFN1cHBvcnQgY3Vz
dG9tIGZvbnRzLgorICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjcmlwdGlvbjsKKyAgICBkZXNjcmlw
dGlvbi5zZXRPcmllbnRhdGlvbigqb3JpZW50YXRpb24pOworICAgIGRlc2NyaXB0aW9uLnNldFdp
ZHRoVmFyaWFudCgqd2lkdGhWYXJpYW50KTsKKyAgICBkZXNjcmlwdGlvbi5zZXRUZXh0UmVuZGVy
aW5nTW9kZSgqdGV4dFJlbmRlcmluZ01vZGUpOworICAgIGRlc2NyaXB0aW9uLnNldENvbXB1dGVk
U2l6ZSgqc2l6ZSk7CisgICAgUmVmUHRyPEZvbnQ+IGZvbnQgPSBGb250Q2FjaGU6OnNpbmdsZXRv
bigpLmZvbnRGb3JGYW1pbHkoZGVzY3JpcHRpb24sICpmYW1pbHlOYW1lKTsKKyAgICBpZiAoIWZv
bnQpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgTE9HRk9OVCBsb2dG
b250OworICAgIEdldE9iamVjdChmb250LT5wbGF0Zm9ybURhdGEoKS5oZm9udCgpLCBzaXplb2Yg
bG9nRm9udCwgJmxvZ0ZvbnQpOworICAgIGF1dG8gZ2RpRm9udCA9IGFkb3B0R0RJT2JqZWN0KENy
ZWF0ZUZvbnRJbmRpcmVjdCgmbG9nRm9udCkpOworI2VuZGlmCisgICAgCisgICAgcmV0dXJuIEZv
bnRQbGF0Zm9ybURhdGEoV1RGTW92ZShnZGlGb250KSwgKnNpemUsICpzeW50aGV0aWNCb2xkLCAq
c3ludGhldGljT2JsaXF1ZSwgZmFsc2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dpbi9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXNXaW4uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvd2luL1dlYlByZWZlcmVuY2VzRGVmYXVs
dFZhbHVlc1dpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4y
NzEzZTkzNDFjMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93aW4v
V2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzV2luLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgor
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgor
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgor
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaCIKKworI2lmIEhB
VkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCisKKyNpbmNsdWRlIDx3dGYvV2luZG93c0V4dHJhcy5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworYm9vbCBpc0ZlYXR1cmVGbGFnRW5hYmxlZChjb25zdCBTdHJpbmcmIGZlYXR1cmVOYW1lKQor
eworICAgIERXT1JEIGRhdGE7CisgICAgRFdPUkQgZGF0YVNpemUgPSBzaXplb2YoZGF0YSk7Cisg
ICAgRFdPUkQga2V5VHlwZTsKKyAgICBIUkVTVUxUIGhyID0gZ2V0UmVnaXN0cnlWYWx1ZShIS0VZ
X0NVUlJFTlRfVVNFUiwgTCJTb2Z0d2FyZVxcV2ViS2l0IiwgZmVhdHVyZU5hbWUud2lkZUNoYXJh
Y3RlcnMoKS5kYXRhKCksICZrZXlUeXBlLCAmZGF0YSwgJmRhdGFTaXplKTsKKyAgICBpZiAoaHIg
IT0gRVJST1JfU1VDQ0VTUykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChrZXlUeXBl
ICE9IFJFR19EV09SRCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChkYXRhU2l6ZSAh
PSBzaXplb2YoZGF0YSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZGF0YTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkuY3BwCmluZGV4IGU1MmNhNDA3MzVlOS4uYzA3YjIzZmIyYjBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC0xNTgsNyArMTU4
LDcgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnN1Ym1pdERpc3BsYXlMaXN0
KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGkKICAgICAgICAgbV9pZGVudGlmaWVyc09mSGFu
ZGxlc0F2YWlsYWJsZUZvcldyaXRpbmcuYWRkKGhhbmRsZS5pZGVudGlmaWVyKTsKIAogICAgICAg
ICBhdXRvKiBzaGFyZWRIYW5kbGUgPSBtX3NoYXJlZERpc3BsYXlMaXN0SGFuZGxlcy5nZXQoaGFu
ZGxlLmlkZW50aWZpZXIpOwotICAgICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NBR0Uoc2hh
cmVkSGFuZGxlLCAiJXMgZmFpbGVkIHRvIGZpbmQgc2hhcmVkIGRpc3BsYXkgbGlzdCIsIF9fUFJF
VFRZX0ZVTkNUSU9OX18pOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NBR0Uoc2hh
cmVkSGFuZGxlLCAiJXMgZmFpbGVkIHRvIGZpbmQgc2hhcmVkIGRpc3BsYXkgbGlzdCIsIFdURl9Q
UkVUVFlfRlVOQ1RJT04pOwogCiAgICAgICAgIGJvb2wgdW5yZWFkQ291bnRXYXNFbXB0eSA9IHNo
YXJlZEhhbmRsZS0+YWR2YW5jZShoYW5kbGUuY2FwYWNpdHkpID09IGhhbmRsZS5jYXBhY2l0eTsK
ICAgICAgICAgaWYgKGlzRmlyc3RIYW5kbGUgJiYgdW5yZWFkQ291bnRXYXNFbXB0eSkKQEAgLTIy
OCw3ICsyMjgsNyBAQCBEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlckhhbmRsZSBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OmNyZWF0ZUl0ZW1CdWZmZXIoc2l6ZQogICAgIHdoaWxlICghbV9pZGVu
dGlmaWVyc09mUmV1c2FibGVIYW5kbGVzLmlzRW1wdHkoKSkgewogICAgICAgICBhdXRvIGlkZW50
aWZpZXIgPSBtX2lkZW50aWZpZXJzT2ZSZXVzYWJsZUhhbmRsZXMuZmlyc3QoKTsKICAgICAgICAg
YXV0byogcmV1c2FibGVIYW5kbGUgPSBtX3NoYXJlZERpc3BsYXlMaXN0SGFuZGxlcy5nZXQoaWRl
bnRpZmllcik7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfTUVTU0FHRShyZXVzYWJsZUhh
bmRsZSwgIiVzIGZhaWxlZCB0byBmaW5kIHNoYXJlZCBkaXNwbGF5IGxpc3QiLCBfX1BSRVRUWV9G
VU5DVElPTl9fKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKHJldXNhYmxl
SGFuZGxlLCAiJXMgZmFpbGVkIHRvIGZpbmQgc2hhcmVkIGRpc3BsYXkgbGlzdCIsIFdURl9QUkVU
VFlfRlVOQ1RJT04pOwogCiAgICAgICAgIGlmIChtX2lkZW50aWZpZXJzT2ZIYW5kbGVzQXZhaWxh
YmxlRm9yV3JpdGluZy5jb250YWlucyhpZGVudGlmaWVyKSAmJiByZXVzYWJsZUhhbmRsZS0+YXZh
aWxhYmxlQ2FwYWNpdHkoKSA+PSBjYXBhY2l0eSkgewogICAgICAgICAgICAgbV9pZGVudGlmaWVy
c09mSGFuZGxlc0F2YWlsYWJsZUZvcldyaXRpbmcucmVtb3ZlKGlkZW50aWZpZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS93aW4vVmlkZW9MYXllclJl
bW90ZVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL3dpbi9WaWRl
b0xheWVyUmVtb3RlV2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLjZkMWYwMGZlZTcwMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvd2luL1ZpZGVvTGF5ZXJSZW1vdGVXaW4uY3BwCkBAIC0wLDAgKzEsNDQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5t
ZW50IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlZpZGVvTGF5ZXJSZW1vdGUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitQbGF0Zm9ybUxheWVyQ29udGFpbmVyIGNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUoTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlKiBtZWRpYVBsYXllclByaXZhdGVSZW1vdGUsIExheWVySG9zdGlu
Z0NvbnRleHRJRCBjb250ZXh0SWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9P
cHRpb25zV2luLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNXaW4uY21ha2UKaW5kZXggYjVj
OGE0ZTljNmRkLi41NDkwNmMzN2VkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25z
V2luLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV2luLmNtYWtlCkBAIC0zMyw2ICsz
Myw3IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9GVExfSklUIFBV
QkxJQyBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfRlVMTFND
UkVFTl9BUEkgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX0dBTUVQQUQgUFVCTElDIE9GRikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9HRU9MT0NBVElPTiBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9S
VF9WQUxVRShFTkFCTEVfR1BVX1BST0NFU1MgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVG
QVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFIFBVQkxJQyBPTikKIFdFQktJ
VF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dP
UktFUlMgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X0lOUFVUX1RZUEVfQ09MT1IgUFVCTElDIE9GRikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414909</attachid>
            <date>2020-11-26 12:37:02 -0800</date>
            <delta_ts>2020-11-26 18:19:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219294-20201127053701.patch</filename>
            <type>text/plain</type>
            <size>30121</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRlMDRkZDFmYTgzMWE5ZGJmOGM0NGU0
OTg4ZWNhMmVlNTFjYTcwY2MuLjMzYzViYzdhMjkyZmVhYWY0NmQzMDhmZDIzZDdmOWNiZDJlM2Rm
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMTEtMjYgIEZ1amlpIEhpcm9ub3JpICA8SGly
b25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW1dpbkNhaXJvXSBFbmFibGUgR1BVIHBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
OTI5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d3RmL1BsYXRmb3JtSGF2ZS5oOiBUdXJuZWQgSEFWRV9TWVNURU1fRkVBVFVSRV9GTEFHUyBvbiBm
b3IgV2luZG93cy4KKwogMjAyMC0xMS0yMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KIAogICAgICAgICBBZGQgYW4gRXhwZXJpbWVudGFsIEZlYXR1cmVzIGZvciB3aGVl
bCBldmVudCBnZXN0dXJlcyBiZWNvbWluZyBub24tYmxvY2tpbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMjNh
YjZiNGU2YzQ0MWMwNjNlYzUzODRjNmY5MDk0N2JkMWE0NjlkLi4wYTBlMjllZWE0YTk1NzkxZGY0
MWZlZGVkNGM3MDFjODQwMjQ1YTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAt
MTEtMjYgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAg
ICAgW1dpbkNhaXJvXSBFbmFibGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTI5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3Jt
RGF0YS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURh
dGFDYWlyb1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpmYW1p
bHlOYW1lIGNvbnN0KTogQWRkZWQuCisKIDIwMjAtMTEtMjIgIEFudHRpIEtvaXZpc3RvICA8YW50
dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9uXSBDb252ZXJ0IHNvbWUg
cmVtYWluaW5nIElubGluZUJveCBhY2Nlc3MgdG8gdXNlIGlubGluZSBpdGVyYXRvcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCBlOTc3NjliZWI0MGFmYzVmOGRjYzQ3Y2IxNDFmOGM1ODA1MDMzMTRjLi5iMzM5ZDJmNWVi
ODYwOGJkOGE2OTljZjQ3ODk1ZjU2OTE2YzhlMzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBA
CisyMDIwLTExLTI2ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgor
CisgICAgICAgIFtXaW5DYWlyb10gRW5hYmxlIEdQVSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyOTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBzdHViIGZ1bmN0aW9ucyB0byBi
dWlsZCBHUFUgcHJvY2Vzcy4KKworICAgICAgICBJbnZva2UgdGhlIGZvbGxvd2luZyBjb21tYW5k
IHRvIGVuYWJsZSBHUFUgcHJvY2VzczoKKyAgICAgICAgPiByZWcgYWRkIEhLRVlfQ1VSUkVOVF9V
U0VSXFNvZnR3YXJlXFdlYktpdCAvdiBncHVfcHJvY2Vzc19jYW52YXNfcmVuZGVyaW5nIC90IFJF
R19EV09SRCAvZCAxIC9mCisKKyAgICAgICAgSW52b2tlIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0
byBkaXNhYmxlIEdQVSBwcm9jZXNzOgorICAgICAgICA+IHJlZyBkZWxldGUgSEtFWV9DVVJSRU5U
X1VTRVJcU29mdHdhcmVcV2ViS2l0IC92IGdwdV9wcm9jZXNzX2NhbnZhc19yZW5kZXJpbmcgL2YK
KworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvd2luL1JlbW90ZU1lZGlhUGxheWVyUHJveHlX
aW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
cHJlcGFyZUZvclBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6bWVkaWFQbGF5ZXJGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFu
Z2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6ZW50ZXJGdWxs
c2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6ZXhpdEZ1
bGxzY3JlZW4pOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2luL0dQVVByb2Nlc3NNYWluV2luLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVBdXhpbGlhcnlQcm9jZXNzPEdQ
VVByb2Nlc3M+KToKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc01haW4pOgorICAgICAgICAq
IEdQVVByb2Nlc3Mvd2luL0dQVVByb2Nlc3NXaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6R1BVUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpHUFVQ
cm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9j
ZXNzOjppbml0aWFsaXplU2FuZGJveCk6CisgICAgICAgICogUGxhdGZvcm1XaW4uY21ha2U6Cisg
ICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oOgorICAgICAgICAq
IFNoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEZvbnRBdHRyaWJ1dGVzPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGb250QXR0cmlidXRlcz46OmRlY29k
ZVBsYXRmb3JtRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVm
PEZvbnQ+Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURhdGEpOiBEZWxldGVkLgorICAg
ICAgICAqIFNoYXJlZC93aW4vV2ViQ29yZUFyZ3VtZW50Q29kZXJzV2luLmNwcDogQWRkZWQuCisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Rm9udEF0dHJpYnV0ZXM+OjplbmNvZGVQbGF0Zm9y
bURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZvbnRBdHRyaWJ1dGVzPjo6ZGVj
b2RlUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+
OjplbmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlZjxG
b250Pj46OmRlY29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgICogU2hhcmVkL3dpbi9XZWJQcmVm
ZXJlbmNlc0RlZmF1bHRWYWx1ZXNXaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6aXNG
ZWF0dXJlRmxhZ0VuYWJsZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6c3VibWl0RGlzcGxheUxpc3QpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZUl0ZW1CdWZmZXIpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL3dpbi9WaWRlb0xheWVyUmVtb3RlV2luLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUpOgorCiAyMDIwLTEx
LTIxICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVu
dCBhdWRpbyBjYXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUhhdmUuaAppbmRleCA1YzBiZWFhNDg2NjQzNjM0NTY3ODYwNzFlYTQ4ZTA2NWQ5ZWI5MzNkLi5m
OTAxM2Q4ZDg5YzZjYjlmODJmMmViYTc3N2ExMDNjOTAwYTI0Zjk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhh
dmUuaApAQCAtNTk5LDcgKzU5OSw3IEBACiAjZGVmaW5lIEhBVkVfVUlDT05URVhUTUVOVV9MT0NB
VElPTiAxCiAjZW5kaWYKIAotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19J
UEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwKQorI2lmIChQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKSB8fCAoUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTQwMDAwKSB8fCBQTEFURk9STShXSU4pCiAjZGVmaW5lIEhBVkVfU1lTVEVNX0ZFQVRVUkVfRkxB
R1MgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKaW5kZXggZjBhZWRhMWI2NDBjNGU1NTUzZTBiZDUwNmE5
ZGM5MzZmZWFkNTRmYy4uZDdiNWEyMzk5YzJkOTE1NzA5NDBiMjhhZWMyZDc1NzJiMDQ1NDVkMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3Jt
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRm
b3JtRGF0YS5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgRm9udFBsYXRmb3JtRGF0YSBGb250UGxhdGZv
cm1EYXRhOjpjbG9uZVdpdGhTaXplKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHNvdXJjZSwKIH0K
ICNlbmRpZgogCi0jaWYgIVVTRShDT1JFX1RFWFQpCisjaWYgIVVTRShDT1JFX1RFWFQpICYmICFQ
TEFURk9STShXSU4pCiAKIFN0cmluZyBGb250UGxhdGZvcm1EYXRhOjpmYW1pbHlOYW1lKCkgY29u
c3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9G
b250UGxhdGZvcm1EYXRhQ2Fpcm9XaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAKaW5kZXggNzExMzkxODI4ODll
NTE4ODAxNjVmNTlhMjM4Yzg4ZGFlM2YwZGMzNC4uMWFkZjEyMDU5YTg5ODhiMzBlMzRkNTU2NjI2
NDJmMjdhZjYxMjk0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAKQEAgLTUs
NiArNSw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwOCwgMjAxNiBBcHBsZSBJbmMuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIw
MTAsIDIwMTEgQnJlbnQgRnVsZ2hhbQorICogQ29weXJpZ2h0IChDKSAyMDIwIFNvbnkgSW50ZXJh
Y3RpdmUgRW50ZXJ0YWlubWVudCBJbmMuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI2LDYgKzI3
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgi
CiAKKyNpbmNsdWRlICJIV25kREMuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTEwOCw0
ICsxMTAsMTYgQEAgU3RyaW5nIEZvbnRQbGF0Zm9ybURhdGE6OmRlc2NyaXB0aW9uKCkgY29uc3QK
IH0KICNlbmRpZgogCitTdHJpbmcgRm9udFBsYXRmb3JtRGF0YTo6ZmFtaWx5TmFtZSgpIGNvbnN0
Cit7CisgICAgSFduZERDIGhkYygwKTsKKyAgICBTYXZlREMoaGRjKTsKKyAgICBjYWlyb193aW4z
Ml9zY2FsZWRfZm9udF9zZWxlY3RfZm9udChzY2FsZWRGb250KCksIGhkYyk7CisgICAgd2NoYXJf
dCBmYWNlTmFtZVtMRl9GQUNFU0laRV07CisgICAgR2V0VGV4dEZhY2UoaGRjLCBMRl9GQUNFU0la
RSwgZmFjZU5hbWUpOworICAgIGNhaXJvX3dpbjMyX3NjYWxlZF9mb250X2RvbmVfZm9udChzY2Fs
ZWRGb250KCkpOworICAgIFJlc3RvcmVEQyhoZGMsIC0xKTsKKyAgICByZXR1cm4gZmFjZU5hbWU7
Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS93aW4v
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvd2luL1JlbW90ZU1lZGlhUGxheWVyUHJveHlXaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkOGZm
M2VmM2Q4MTY0OTBhZWQyYjIzZTg3MDk2ODkxMjU0YzU1YzMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvd2luL1JlbW90ZU1lZGlhUGxheWVyUHJveHlX
aW4uY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMCBTb255IElu
dGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVN
ZWRpYVBsYXllclByb3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRl
ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRl
ZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJl
bG9hZCwgYm9vbCwgYm9vbCwgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlubGluZUxheWVySG9z
dGluZ0NvbnRleHRJZCk+JiYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJs
ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXll
clByb3h5OjptZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2VkKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQordm9p
ZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjplbnRlckZ1bGxzY3JlZW4oQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW4oQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2luL0dQVVByb2Nlc3NNYWluV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
aW4vR1BVUHJvY2Vzc01haW5XaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0ZTE4ZmZjMzFmMjA1NDdhNmQ3
ODM2OTY4MjA5NmEyZTNkYTBlZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2luL0dQVVByb2Nlc3NNYWluV2luLmNwcApAQCAtMCwwICsxLDYwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdQVVByb2Nlc3NNYWluLmgiCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJBdXhpbGlhcnlQcm9jZXNzTWFpbi5o
IgorI2luY2x1ZGUgIkdQVVByb2Nlc3MuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRp
YyBSZWZQdHI8R1BVUHJvY2Vzcz4gZ2xvYmFsR1BVUHJvY2VzczsKKworY2xhc3MgR1BVUHJvY2Vz
c01haW5QbGF5U3RhdGlvbiBmaW5hbDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3NNYWluQmFzZSB7
CitwdWJsaWM6CisgICAgYm9vbCBwbGF0Zm9ybUluaXRpYWxpemUoKSBvdmVycmlkZQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKwordGVtcGxhdGU8Pgordm9pZCBpbml0
aWFsaXplQXV4aWxpYXJ5UHJvY2VzczxHUFVQcm9jZXNzPihBdXhpbGlhcnlQcm9jZXNzSW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8R1BVUHJvY2Vzcz4gZ3B1UHJvY2VzcyhXVEZNb3ZlKHBhcmFtZXRlcnMpKTsKKyAgICBn
bG9iYWxHUFVQcm9jZXNzID0gJmdwdVByb2Nlc3MuZ2V0KCk7Cit9CisKK2ludCBHUFVQcm9jZXNz
TWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgcmV0dXJuIEF1eGlsaWFyeVByb2Nl
c3NNYWluPEdQVVByb2Nlc3MsIEdQVVByb2Nlc3NNYWluUGxheVN0YXRpb24+KGFyZ2MsIGFyZ3Yp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93aW4vR1BVUHJvY2Vz
c1dpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2luL0dQVVByb2Nlc3NXaW4uY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmU3Y2JlZGYzNjBmMzZhNDkyYjZjN2QyYmE0MmI3MGFlOWIzOWU0Y2EKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2luL0dQVVByb2Nlc3NX
aW4uY3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgU29ueSBJ
bnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiR1BVUHJvY2Vzcy5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsK
Kwordm9pZCBHUFVQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBBdXhpbGlhcnlQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKK3sKK30KKwordm9pZCBHUFVQcm9jZXNzOjpp
bml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9u
UGFyYW1ldGVycyYpCit7Cit9CisKK3ZvaWQgR1BVUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3go
Y29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNhbmRib3hJ
bml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtlCmlu
ZGV4IDc1YTUwNmQ2YTk1YzliMDJhZmFkZjQ3ZWRkMjU5YjcyNWI4YTJmNmQuLjk1ODQwMWVlODYx
OWMzYjg5ZDI4MWQzZDhhMzE2ZmY0OTliZDBmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm1XaW4uY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQpA
QCAtOSw2ICs5LDExIEBAIGluY2x1ZGUoSGVhZGVycy5jbWFrZSkKIGFkZF9kZWZpbml0aW9ucygt
REJVSUxESU5HX1dFQktJVCkKIAogbGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKKyAgICBHUFVQ
cm9jZXNzL21lZGlhL3dpbi9SZW1vdGVNZWRpYVBsYXllclByb3h5V2luLmNwcAorCisgICAgR1BV
UHJvY2Vzcy93aW4vR1BVUHJvY2Vzc01haW5XaW4uY3BwCisgICAgR1BVUHJvY2Vzcy93aW4vR1BV
UHJvY2Vzc1dpbi5jcHAKKwogICAgIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAogCiAgICAgTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlTWFuYWdlci5jcHAKQEAgLTMzLDcgKzM4LDkgQEAgbGlzdChBUFBFTkQgV2ViS2l0
X1NPVVJDRVMKICAgICBTaGFyZWQvd2luL05hdGl2ZVdlYk1vdXNlRXZlbnRXaW4uY3BwCiAgICAg
U2hhcmVkL3dpbi9OYXRpdmVXZWJUb3VjaEV2ZW50V2luLmNwcAogICAgIFNoYXJlZC93aW4vTmF0
aXZlV2ViV2hlZWxFdmVudFdpbi5jcHAKKyAgICBTaGFyZWQvd2luL1dlYkNvcmVBcmd1bWVudENv
ZGVyc1dpbi5jcHAKICAgICBTaGFyZWQvd2luL1dlYkV2ZW50RmFjdG9yeS5jcHAKKyAgICBTaGFy
ZWQvd2luL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlc1dpbi5jcHAKIAogICAgIFVJUHJvY2Vz
cy9CYWNraW5nU3RvcmUuY3BwCiAgICAgVUlQcm9jZXNzL0RlZmF1bHRVbmRvQ29udHJvbGxlci5j
cHAKQEAgLTY1LDYgKzcyLDggQEAgbGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBVSVBy
b2Nlc3Mvd2luL1dlYlByb2Nlc3NQb29sV2luLmNwcAogICAgIFVJUHJvY2Vzcy93aW4vV2ViVmll
dy5jcHAKIAorICAgIFdlYlByb2Nlc3MvR1BVL21lZGlhL3dpbi9WaWRlb0xheWVyUmVtb3RlV2lu
LmNwcAorCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS93aW4vSW5qZWN0ZWRCdW5kbGVX
aW4uY3BwCiAKICAgICBXZWJQcm9jZXNzL0luc3BlY3Rvci93aW4vV2ViSW5zcGVjdG9yVUlXaW4u
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZh
bHVlcy5oCmluZGV4IDc1MzcxYzQyNzBjNDE1ZDgwNWY5NjFjMDk5M2VkOWY3ZDQ1YmNlNzEuLmQw
OWQ0MzkzOTM3MDA0ZDNlMTBiOWI5NjZmOGUzMDZiMGFmODk1OGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCkBAIC0zNSw3ICsz
NSw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEhB
VkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCisjaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykK
IGJvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnND
dXJsLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
Q3VybC5jcHAKaW5kZXggZDgxN2E3OGQ0ZjlmNzZhYjdkZTdjNTE4NGZiM2FkNzM1NGZmZjBmOS4u
NTdiNjM5NTMyZGExMWE3ZDFlNWU2OGZjNGMxMzM2NGEzODJjOGNiNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3Bw
CkBAIC0zMCw4ICszMCw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DZXJ0aWZpY2F0ZUluZm8uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0N1cmxQcm94eVNldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9EaWN0aW9uYXJ5UG9wdXBJbmZvLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9Gb250Lmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9Gb250QXR0cmlidXRlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvdGVj
dGlvblNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KQEAgLTIxMywxNyArMjExLDYgQEAgT3B0aW9u
YWw8Q3VybFByb3h5U2V0dGluZ3M+IEFyZ3VtZW50Q29kZXI8Q3VybFByb3h5U2V0dGluZ3M+Ojpk
ZWNvZGUoRGVjb2RlciYgZGUKICAgICByZXR1cm4gQ3VybFByb3h5U2V0dGluZ3MgeyBXVEZNb3Zl
KHVybCksIFdURk1vdmUoaWdub3JlSG9zdHMpIH07CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxG
b250QXR0cmlidXRlcz46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgRm9udEF0
dHJpYnV0ZXMmKQotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi1PcHRpb25hbDxG
b250QXR0cmlidXRlcz4gQXJndW1lbnRDb2RlcjxGb250QXR0cmlidXRlcz46OmRlY29kZVBsYXRm
b3JtRGF0YShEZWNvZGVyJiwgRm9udEF0dHJpYnV0ZXMmKQotewotICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci19Ci0KIHZvaWQgQXJndW1lbnRDb2Rl
cjxEaWN0aW9uYXJ5UG9wdXBJbmZvPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImLCBjb25z
dCBEaWN0aW9uYXJ5UG9wdXBJbmZvJikKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAg
LTIzNSwxNyArMjIyLDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPERpY3Rpb25hcnlQb3B1cEluZm8+
OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIERpY3Rpb25hcnkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjplbmNvZGVQbGF0Zm9ybURh
dGEoRW5jb2RlciYsIGNvbnN0IFJlZjxGb250PiYpCi17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci19Ci0KLU9wdGlvbmFsPEZvbnRQbGF0Zm9ybURhdGE+IEFyZ3VtZW50Q29kZXI8UmVmPEZv
bnQ+Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImKQotewotICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci19Ci0KICNpZiBFTkFCTEUoVklERU8p
CiB2b2lkIEFyZ3VtZW50Q29kZXI8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZW5j
b2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVWYWx1ZSYgdmFsdWUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC93aW4vV2ViQ29yZUFyZ3VtZW50Q29kZXJzV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L3dpbi9XZWJDb3JlQXJndW1lbnRDb2RlcnNXaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1ZDAxNjY1ZDk5
NTA3YjhjZWViNTJjZmZlNmQ0NmMxYjY0NzUwM2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC93aW4vV2ViQ29yZUFyZ3VtZW50Q29kZXJzV2luLmNwcApAQCAtMCwwICsx
LDExNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBTb255IEludGVyYWN0aXZlIEVudGVy
dGFpbm1lbnQgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL0ZvbnQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Gb250
Q2FjaGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZvbnREZXNjcmlwdGlvbi5oPgorI2luY2x1ZGUg
PHd0Zi93aW4vR0RJT2JqZWN0Lmg+CisKK25hbWVzcGFjZSBJUEMgeworCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKwordm9pZCBBcmd1bWVudENvZGVyPEZvbnRBdHRyaWJ1dGVzPjo6ZW5jb2Rl
UGxhdGZvcm1EYXRhKEVuY29kZXImLCBjb25zdCBGb250QXR0cmlidXRlcyYpCit7CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK09wdGlvbmFsPEZvbnRBdHRyaWJ1dGVzPiBBcmd1bWVu
dENvZGVyPEZvbnRBdHRyaWJ1dGVzPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImLCBGb250
QXR0cmlidXRlcyYpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKK30KKwordm9pZCBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29kZVBs
YXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWY8Rm9udD4mIGZvbnQpCit7Cisg
ICAgY29uc3QgYXV0byYgcGxhdGZvcm1EYXRhID0gZm9udC0+cGxhdGZvcm1EYXRhKCk7CisgICAg
ZW5jb2RlciA8PCBwbGF0Zm9ybURhdGEub3JpZW50YXRpb24oKTsKKyAgICBlbmNvZGVyIDw8IHBs
YXRmb3JtRGF0YS53aWR0aFZhcmlhbnQoKTsKKyAgICBlbmNvZGVyIDw8IHBsYXRmb3JtRGF0YS50
ZXh0UmVuZGVyaW5nTW9kZSgpOworICAgIGVuY29kZXIgPDwgcGxhdGZvcm1EYXRhLnNpemUoKTsK
KyAgICBlbmNvZGVyIDw8IHBsYXRmb3JtRGF0YS5zeW50aGV0aWNCb2xkKCk7CisgICAgZW5jb2Rl
ciA8PCBwbGF0Zm9ybURhdGEuc3ludGhldGljT2JsaXF1ZSgpOworICAgIGVuY29kZXIgPDwgcGxh
dGZvcm1EYXRhLmZhbWlseU5hbWUoKTsKK30KKworT3B0aW9uYWw8Rm9udFBsYXRmb3JtRGF0YT4g
QXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICBPcHRpb25hbDxGb250T3JpZW50YXRpb24+IG9yaWVudGF0aW9uOworICAg
IGRlY29kZXIgPj4gb3JpZW50YXRpb247CisgICAgaWYgKCFvcmllbnRhdGlvbi5oYXNWYWx1ZSgp
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Rm9udFdpZHRo
VmFyaWFudD4gd2lkdGhWYXJpYW50OworICAgIGRlY29kZXIgPj4gd2lkdGhWYXJpYW50OworICAg
IGlmICghd2lkdGhWYXJpYW50Lmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICBPcHRpb25hbDxUZXh0UmVuZGVyaW5nTW9kZT4gdGV4dFJlbmRlcmluZ01vZGU7
CisgICAgZGVjb2RlciA+PiB0ZXh0UmVuZGVyaW5nTW9kZTsKKyAgICBpZiAoIXRleHRSZW5kZXJp
bmdNb2RlLmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBP
cHRpb25hbDxmbG9hdD4gc2l6ZTsKKyAgICBkZWNvZGVyID4+IHNpemU7CisgICAgaWYgKCFzaXpl
Lmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25h
bDxib29sPiBzeW50aGV0aWNCb2xkOworICAgIGRlY29kZXIgPj4gc3ludGhldGljQm9sZDsKKyAg
ICBpZiAoIXN5bnRoZXRpY0JvbGQuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIE9wdGlvbmFsPGJvb2w+IHN5bnRoZXRpY09ibGlxdWU7CisgICAgZGVjb2Rl
ciA+PiBzeW50aGV0aWNPYmxpcXVlOworICAgIGlmICghc3ludGhldGljT2JsaXF1ZS5oYXNWYWx1
ZSgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5n
PiBmYW1pbHlOYW1lOworICAgIGRlY29kZXIgPj4gZmFtaWx5TmFtZTsKKyAgICBpZiAoIWZhbWls
eU5hbWUuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIEZv
bnREZXNjcmlwdGlvbiBkZXNjcmlwdGlvbjsKKyAgICBkZXNjcmlwdGlvbi5zZXRPcmllbnRhdGlv
bigqb3JpZW50YXRpb24pOworICAgIGRlc2NyaXB0aW9uLnNldFdpZHRoVmFyaWFudCgqd2lkdGhW
YXJpYW50KTsKKyAgICBkZXNjcmlwdGlvbi5zZXRUZXh0UmVuZGVyaW5nTW9kZSgqdGV4dFJlbmRl
cmluZ01vZGUpOworICAgIGRlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZSgqc2l6ZSk7CisgICAg
UmVmUHRyPEZvbnQ+IGZvbnQgPSBGb250Q2FjaGU6OnNpbmdsZXRvbigpLmZvbnRGb3JGYW1pbHko
ZGVzY3JpcHRpb24sICpmYW1pbHlOYW1lKTsKKyAgICBpZiAoIWZvbnQpCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgTE9HRk9OVCBsb2dGb250OworICAgIEdldE9iamVj
dChmb250LT5wbGF0Zm9ybURhdGEoKS5oZm9udCgpLCBzaXplb2YgbG9nRm9udCwgJmxvZ0ZvbnQp
OworICAgIGF1dG8gZ2RpRm9udCA9IGFkb3B0R0RJT2JqZWN0KENyZWF0ZUZvbnRJbmRpcmVjdCgm
bG9nRm9udCkpOworICAgIGlmICghZ2RpRm9udCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKyAgICAKKyAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShXVEZNb3ZlKGdkaUZvbnQpLCAq
c2l6ZSwgKnN5bnRoZXRpY0JvbGQsICpzeW50aGV0aWNPYmxpcXVlLCBmYWxzZSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvd2luL1dl
YlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlc1dpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93
aW4vV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzV2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmQ0ZDhh
OTlhN2JiOGQzMjA0NGVkMmQ3NWZmM2RiMTdjMTYyOTU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvd2luL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlc1dpbi5jcHAK
QEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBTb255IEludGVyYWN0
aXZlIEVudGVydGFpbm1lbnQgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmgiCisKKyNpZiBIQVZFKFNZU1RF
TV9GRUFUVVJFX0ZMQUdTKQorCisjaW5jbHVkZSA8d3RmL1dpbmRvd3NFeHRyYXMuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wg
aXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0dXJlTmFtZSkKK3sKKyAgICBE
V09SRCBkYXRhOworICAgIERXT1JEIGRhdGFTaXplID0gc2l6ZW9mIGRhdGE7CisgICAgRFdPUkQg
a2V5VHlwZTsKKyAgICBIUkVTVUxUIGhyID0gZ2V0UmVnaXN0cnlWYWx1ZShIS0VZX0NVUlJFTlRf
VVNFUiwgTCJTb2Z0d2FyZVxcV2ViS2l0IiwgZmVhdHVyZU5hbWUud2lkZUNoYXJhY3RlcnMoKS5k
YXRhKCksICZrZXlUeXBlLCAmZGF0YSwgJmRhdGFTaXplKTsKKyAgICBpZiAoaHIgIT0gRVJST1Jf
U1VDQ0VTUykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChrZXlUeXBlICE9IFJFR19E
V09SRCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChkYXRhU2l6ZSAhPSBzaXplb2Yg
ZGF0YSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBkYXRhOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5jcHAKaW5kZXggZTUyY2E0MDczNWU5NzllMzg3ZDgzZDE0ZDI3YzQ5NjYxNzhlY2Zj
Ny4uYzA3YjIzZmIyYjBlNThlMGUxZGZmNWExNGVlMGE4NWQ5YTViNjQ1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpzdWJtaXREaXNwbGF5TGlzdChjb25zdCBEaXNw
bGF5TGlzdDo6RGlzcGxheUxpCiAgICAgICAgIG1faWRlbnRpZmllcnNPZkhhbmRsZXNBdmFpbGFi
bGVGb3JXcml0aW5nLmFkZChoYW5kbGUuaWRlbnRpZmllcik7CiAKICAgICAgICAgYXV0byogc2hh
cmVkSGFuZGxlID0gbV9zaGFyZWREaXNwbGF5TGlzdEhhbmRsZXMuZ2V0KGhhbmRsZS5pZGVudGlm
aWVyKTsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKHNoYXJlZEhhbmRsZSwg
IiVzIGZhaWxlZCB0byBmaW5kIHNoYXJlZCBkaXNwbGF5IGxpc3QiLCBfX1BSRVRUWV9GVU5DVElP
Tl9fKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKHNoYXJlZEhhbmRsZSwg
IiVzIGZhaWxlZCB0byBmaW5kIHNoYXJlZCBkaXNwbGF5IGxpc3QiLCBXVEZfUFJFVFRZX0ZVTkNU
SU9OKTsKIAogICAgICAgICBib29sIHVucmVhZENvdW50V2FzRW1wdHkgPSBzaGFyZWRIYW5kbGUt
PmFkdmFuY2UoaGFuZGxlLmNhcGFjaXR5KSA9PSBoYW5kbGUuY2FwYWNpdHk7CiAgICAgICAgIGlm
IChpc0ZpcnN0SGFuZGxlICYmIHVucmVhZENvdW50V2FzRW1wdHkpCkBAIC0yMjgsNyArMjI4LDcg
QEAgRGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJIYW5kbGUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpjcmVhdGVJdGVtQnVmZmVyKHNpemUKICAgICB3aGlsZSAoIW1faWRlbnRpZmllcnNPZlJl
dXNhYmxlSGFuZGxlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgYXV0byBpZGVudGlmaWVyID0gbV9p
ZGVudGlmaWVyc09mUmV1c2FibGVIYW5kbGVzLmZpcnN0KCk7CiAgICAgICAgIGF1dG8qIHJldXNh
YmxlSGFuZGxlID0gbV9zaGFyZWREaXNwbGF5TGlzdEhhbmRsZXMuZ2V0KGlkZW50aWZpZXIpOwot
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NBR0UocmV1c2FibGVIYW5kbGUsICIlcyBm
YWlsZWQgdG8gZmluZCBzaGFyZWQgZGlzcGxheSBsaXN0IiwgX19QUkVUVFlfRlVOQ1RJT05fXyk7
CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfTUVTU0FHRShyZXVzYWJsZUhhbmRsZSwgIiVz
IGZhaWxlZCB0byBmaW5kIHNoYXJlZCBkaXNwbGF5IGxpc3QiLCBXVEZfUFJFVFRZX0ZVTkNUSU9O
KTsKIAogICAgICAgICBpZiAobV9pZGVudGlmaWVyc09mSGFuZGxlc0F2YWlsYWJsZUZvcldyaXRp
bmcuY29udGFpbnMoaWRlbnRpZmllcikgJiYgcmV1c2FibGVIYW5kbGUtPmF2YWlsYWJsZUNhcGFj
aXR5KCkgPj0gY2FwYWNpdHkpIHsKICAgICAgICAgICAgIG1faWRlbnRpZmllcnNPZkhhbmRsZXNB
dmFpbGFibGVGb3JXcml0aW5nLnJlbW92ZShpZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvd2luL1ZpZGVvTGF5ZXJSZW1vdGVXaW4uY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS93aW4vVmlkZW9MYXllclJlbW90
ZVdpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjcyNGUxN2MzNTg0ZDcxNWE3MDY1ZjIzZTI1MDM3YzkyYjA3
ZDdkNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvd2luL1ZpZGVvTGF5ZXJSZW1vdGVXaW4uY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlZpZGVvTGF5ZXJSZW1vdGUu
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1w
bGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVy
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQbGF0Zm9ybUxheWVyQ29udGFpbmVyIGNyZWF0
ZVZpZGVvTGF5ZXJSZW1vdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKiBtZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUsIExheWVySG9zdGluZ0NvbnRleHRJRCBjb250ZXh0SWQpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV2luLmNtYWtlIGIvU291cmNlL2NtYWtlL09w
dGlvbnNXaW4uY21ha2UKaW5kZXggYjVjOGE0ZTljNmRkNTMwNDViZGJlZThmNGJhOGQxOTdhYTUw
MGRjNy4uNjMxZGE3MGYzZjMyNGZhYzYwZTExNDJiNzk5YTZlNzgxMmEyMjVlOSAxMDA2NDQKLS0t
IGEvU291cmNlL2NtYWtlL09wdGlvbnNXaW4uY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlv
bnNXaW4uY21ha2UKQEAgLTc2LDYgKzc2LDcgQEAgaWYgKCR7V1RGX1BMQVRGT1JNX1dJTl9DQUlS
T30pCiAgICAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0FQUExJQ0FU
SU9OX01BTklGRVNUIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKICAg
ICBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX1BBSU5USU5HX0FQ
SSBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCiAgICAgV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19UWVBFRF9PTSBQUklWQVRFICR7RU5B
QkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCisgICAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX0dQVV9QUk9DRVNTIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFM
X0ZFQVRVUkVTfSkKICAgICBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVf
TEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9G
RUFUVVJFU30pCiAgICAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1JF
TU9URV9JTlNQRUNUT1IgUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQog
ICAgIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9SRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MgUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQpkaWZm
IC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDFjZGZlYTUxNzhhOWY4NTRmYTQ0
MmEwZWQxMzRkZGFiZmU0YTFkMDYuLmMxYWU5NjdlZDcwY2YyZjYxZmYwOGIzNTYzN2ZjNDI0OTkz
OWU4MmIgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAyMC0xMS0yNiAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNv
bT4KKworICAgICAgICBbV2luQ2Fpcm9dIEVuYWJsZSBHUFUgcHJvY2VzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5Mjk0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9u
c1dpbi5jbWFrZTogVHVybmVkIEVOQUJMRV9HUFVfUFJPQ0VTUyBvbiBmb3IgV2luQ2Fpcm8uCisK
IDIwMjAtMTEtMjAgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAg
ICAgICBSZW1vdmUgcXVvdGEgbW9kdWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>