<?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>217553</bug_id>
          
          <creation_ts>2020-10-09 20:40:35 -0700</creation_ts>
          <short_desc>[LFC][Display] Remove the WK1-only display painter</short_desc>
          <delta_ts>2020-10-09 21:13:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1696477</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-10-09 20:40:35 -0700</bug_when>
    <thetext>This is replaced by Simon&apos;s display painter now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696478</commentid>
    <comment_count>1</comment_count>
      <attachid>411003</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-10-09 20:42:38 -0700</bug_when>
    <thetext>Created attachment 411003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696482</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-09 21:12:40 -0700</bug_when>
    <thetext>Committed r268307: &lt;https://trac.webkit.org/changeset/268307&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411003.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696483</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-09 21:13:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/70164845&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411003</attachid>
            <date>2020-10-09 20:42:38 -0700</date>
            <delta_ts>2020-10-09 21:12:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217553-20201009204237.patch</filename>
            <type>text/plain</type>
            <size>25266</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWFmN2Y2ZjgxZmY1Mzlh
N2QzZTFkOGJiMzVhOTNiOGI2ZDFhNzQxZi4uY2RiYWRjY2I0YTM0YzVjMTgyOTZlZmY1ODI5ODZk
YTQyMTgwODJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTEwLTA5ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bRGlzcGxheV0gUmVt
b3ZlIHRoZSBXSzEtb25seSBkaXNwbGF5IHBhaW50ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgcmVwbGFjZWQgYnkgL1dlYkNvZGUvZGlz
cGxheS9jc3MvRGlzcGxheUNTU1BhaW50ZXIuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogbGF5b3V0L0xheW91dENvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250ZXh0OjpwYWludCk6IERlbGV0ZWQuCisgICAg
ICAgICogbGF5b3V0L0xheW91dENvbnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQvZGlzcGxheXRy
ZWUvRGlzcGxheVBhaW50ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGxheW91dC9kaXNwbGF5
dHJlZS9EaXNwbGF5UGFpbnRlci5oOiBSZW1vdmVkLgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cGFpbnRDb250ZW50cyk6CisKIDIw
MjAtMTAtMDkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbR1BVIFByb2Nlc3NdIERlbGV0ZSBEaXNwbGF5TGlzdDo6RHJhd0dseXBoczo6bV9ibG9j
a0xvY2F0aW9uIGJlY2F1c2UgaXQncyBhbHdheXMgMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBm
ZjY2YTQzODU1NjYzMTBlYWI0MjJhNzU1MzRjMGQwZDBiYWY3NjM5Li5mZDllYmE2NGQxNDJlYmE0
NTU4ZGJmMWIwMjI5NDQwMGYwZWMyNmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTA1LDcg
KzEwNSw2IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIk
e1dFQkNPUkVfRElSfS9sYXlvdXQiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2xheW91dC9ibG9ja2Zv
cm1hdHRpbmciCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvdGFi
bGV3cmFwcGVyIgotICAgICIke1dFQkNPUkVfRElSfS9sYXlvdXQvZGlzcGxheXRyZWUiCiAgICAg
IiR7V0VCQ09SRV9ESVJ9L2xheW91dC9mbGV4Zm9ybWF0dGluZyIKICAgICAiJHtXRUJDT1JFX0RJ
Un0vbGF5b3V0L2Zsb2F0cyIKICAgICAiJHtXRUJDT1JFX0RJUn0vbGF5b3V0L2lubGluZWZvcm1h
dHRpbmciCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGU2N2U3Yzc0NzMxM2I4N2RhZjQwMDRiMzY4YTkwZThk
YTFkNTIwNmQuLmJiMmNhZjBlZDg5NDk0Yzg1YTFmNGViNjNlMDJiYjQ2NTA2ZTM4YWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CkBAIC0xNDU0LDcgKzE0NTQsNiBAQCBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Js
b2NrTWFyZ2luQ29sbGFwc2UuY3BwCiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL1ByZWNvbXB1dGVk
QmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvdGFibGV3cmFw
cGVyL1RhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCiBsYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL3RhYmxld3JhcHBlci9UYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
UXVpcmtzLmNwcAotbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlQYWludGVyLmNwcAogbGF5b3V0
L2ZsZXhmb3JtYXR0aW5nL0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5jcHAKIGxheW91dC9mbGV4Zm9y
bWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKIGxheW91dC9mbGV4Zm9y
bWF0dGluZy9GbGV4Rm9ybWF0dGluZ1N0YXRlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdkNjFlMDViMzU3NzMwNGMxODNj
NTAzZjgzMWVjODk0MTAxMDAwMjEuLjVjMmM4YjNmNTMxOTJmOWRjZmI3ZmIwNTVmMjZkOGQ3NjQ0
ZjQ5YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTIwNTUsNyArMjA1NSw2IEBACiAJCTZGMzYwRTUwMjM5OTk0MjEwMDE1MTJB
NyAvKiBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkYzNjBFNEUyMzk5OTQyMDAwMTUxMkE3IC8qIElubGluZVNv
ZnRMaW5lQnJlYWtJdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNkY0MERBODIyNTEzMDMzQTAwRUMwNEI3IC8qIElubGluZVJlY3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGNDBEQTgxMjUxMzAz
M0EwMEVDMDRCNyAvKiBJbmxpbmVSZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkY2MzgzRjYyNDI3QUY0QTAwREFCQTUzIC8qIExheW91dElu
aXRpYWxDb250YWluaW5nQmxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZGNjM4M0Y0MjQyN0FGNDkwMERBQkE1MyAvKiBMYXlvdXRJbml0aWFsQ29u
dGFpbmluZ0Jsb2NrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJNkY3Nzg2ODgyMzQ5MUFEODAwNEQ5NjM2IC8qIERpc3BsYXlQYWludGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2Rjc3ODY4NzIzNDkx
QUQ3MDA0RDk2MzYgLyogRGlzcGxheVBhaW50ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjdDQTNDNjIwOEMyOTU3MDAyRjI5QUIgLyogTGF5
b3V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDZGN0NBM0M0MjA4QzI5NTYwMDJGMjlBQiAvKiBMYXlvdXRTdGF0ZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGN0NBM0NBMjA4QzJCMkUwMDJG
MjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY3Q0EzQzgyMDhDMkIyRTAwMkYyOUFCIC8qIElubGlu
ZUZvcm1hdHRpbmdDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNkY5MTQyMTEyNTE1MjEzODAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9t
ZXRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY5
MTQyMEYyNTE1MjEzNzAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05NjAxLDggKzk2MDAsNiBA
QAogCQk2RjY5QTc5OTI0RDZGQUI4MDBFNkI4NUQgLyogSW5saW5lTGluZUJveC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbmxpbmVMaW5lQm94LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkY3MERFREQyNTExMjZGMzAwRjBGQzc4IC8qIEZsZXhGb3JtYXR0aW5nQ29udGV4dEdl
b21ldHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsZXhGb3JtYXR0aW5nQ29udGV4dEdlb21l
dHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY3MzkxOEMyMTA2Q0VERDAw
NkFGMjYyIC8qIExheW91dFVuaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFVuaXRzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZGNzc4Njg1MjM0OTFBQzYwMDREOTYzNiAvKiBE
aXNwbGF5UGFpbnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5UGFpbnRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZGNzc4Njg3MjM0OTFBRDcwMDREOTYzNiAv
KiBEaXNwbGF5UGFpbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNw
bGF5UGFpbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjdCOENFQzIzNjI2
RTY2MDBDOUZGMTUgLyogSW5saW5lSXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmxpbmVJ
dGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY3Q0EzQzQyMDhDMjk1NjAw
MkYyOUFCIC8qIExheW91dFN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFN0YXRlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGN0NBM0M1MjA4QzI5NTYwMDJGMjlBQiAvKiBM
YXlvdXRTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRTdGF0ZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzU0Myw3ICsxNzU0MCw2IEBACiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTExNUNGQTk5MjA4QkMwOUEwMDFFNjk5MSAv
KiBibG9ja2Zvcm1hdHRpbmcgKi8sCi0JCQkJMTE5OUZBNTgyMDhFM0M0QzAwMjM1OENDIC8qIGRp
c3BsYXl0cmVlICovLAogCQkJCTZGQjdEMkQ1MjUwRkQ3QjUwMDAyMDdBQSAvKiBmbGV4Zm9ybWF0
dGluZyAqLywKIAkJCQk2RkNGQzA1NTIxMkRBQ0MyMDA3Njk1RDIgLyogZmxvYXRzICovLAogCQkJ
CTExNUNGQTlBMjA4QkMxNDAwMDFFNjk5MSAvKiBpbmxpbmVmb3JtYXR0aW5nICovLApAQCAtMTc2
NDQsMTUgKzE3NjQwLDYgQEAKIAkJCXBhdGggPSBpbmxpbmVmb3JtYXR0aW5nOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJMTE5OUZBNTgyMDhFM0M0QzAwMjM1OENDIC8qIGRp
c3BsYXl0cmVlICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJ
CQk2Rjc3ODY4NTIzNDkxQUM2MDA0RDk2MzYgLyogRGlzcGxheVBhaW50ZXIuY3BwICovLAotCQkJ
CTZGNzc4Njg3MjM0OTFBRDcwMDREOTYzNiAvKiBEaXNwbGF5UGFpbnRlci5oICovLAotCQkJKTsK
LQkJCXBhdGggPSBkaXNwbGF5dHJlZTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07
CiAJCTEyMjFFMDU4MUMwMkI0MDkwMDZBMUEwMCAvKiBBbmltYXRpb24gKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMzEyMzYsNyArMzEyMjMsNiBAQAogCQkJ
CTBGRTVGQkQ1MUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdEl0ZW1zLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkU1RkJENzFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RSZWNvcmRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNUZCRDkxQzNERDUxRTAwMDdBMkNBIC8qIERpc3Bs
YXlMaXN0UmVwbGF5ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTZGNzc4Njg4MjM0OTFBRDgwMDRE
OTYzNiAvKiBEaXNwbGF5UGFpbnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlBRjJENjkxNDQz
NUQwNTAwMTZBNzg0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkQyOUVDQzYxOTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQyOUVDQ0ExOTJGMUYxRDAwOTg0Qjc4IC8qIERpc3Bs
YXlSZWZyZXNoTW9uaXRvcklPUy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
TGF5b3V0Q29udGV4dC5jcHAKaW5kZXggZjFmZjA4ZDhiZjA5NjBmZmNhMDkyNTkzNDg4ZTY0NmI4
ZTQ0ZmJhMC4uNTNlNzBlNTljNTViYzI0YTFkMDE0Mjg3MDUyYTIzNmY3YTA4OTRjMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcApAQCAtMzAsNyArMzAsNiBAQAogCiAj
aW5jbHVkZSAiQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkJsb2NrRm9ybWF0
dGluZ1N0YXRlLmgiCi0jaW5jbHVkZSAiRGlzcGxheVBhaW50ZXIuaCIKICNpbmNsdWRlICJGbGV4
Rm9ybWF0dGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJGbGV4Rm9ybWF0dGluZ1N0YXRlLmgiCiAj
aW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCIKQEAgLTE0NCwxMSArMTQzLDYgQEAg
c3RkOjp1bmlxdWVfcHRyPEZvcm1hdHRpbmdDb250ZXh0PiBMYXlvdXRDb250ZXh0OjpjcmVhdGVG
b3JtYXR0aW5nQ29udGV4dChjb25zdAogICAgIENSQVNIKCk7CiB9CiAKLXZvaWQgTGF5b3V0Q29u
dGV4dDo6cGFpbnQoY29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKLXsKLSAgICBEaXNwbGF5OjpQ
YWludGVyOjpwYWludChsYXlvdXRTdGF0ZSwgY29udGV4dCwgZGlydHlSZWN0KTsKLX0KLQogfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaAppbmRleCA3ZWE4YzNiOTBkODIz
MmRkOGFmYTMyYWYzYmY3ODYxYTEwY2I4OGQ4Li45YWVjMmM0ZGQ1NjgyMDVhMTc5N2ExZTJkYTFm
MjQ1MDYxZWIxYzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29u
dGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmgKQEAgLTU5
LDggKzU5LDYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxGb3JtYXR0
aW5nQ29udGV4dD4gY3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyQm94JiBm
b3JtYXR0aW5nQ29udGV4dFJvb3QsIExheW91dFN0YXRlJik7CiAKLSAgICAvLyBGSVhNRTogVGhp
cyBpcyB0ZW1wb3JhcnkuIAotICAgIHN0YXRpYyB2b2lkIHBhaW50KGNvbnN0IExheW91dFN0YXRl
JiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0KTsKICNpZm5kZWYg
TkRFQlVHCiAgICAgLy8gRm9yIHRlc3RpbmcgcHVycG9zZXMgb25seQogICAgIHN0YXRpYyB2b2lk
IHZlcmlmeUFuZE91dHB1dE1pc21hdGNoaW5nTGF5b3V0VHJlZShjb25zdCBMYXlvdXRTdGF0ZSYs
IGNvbnN0IFJlbmRlclZpZXcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9k
aXNwbGF5dHJlZS9EaXNwbGF5UGFpbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlz
cGxheXRyZWUvRGlzcGxheVBhaW50ZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBiMTQxNDkwZThiNzg0Y2Q0NmMyMGNlY2E5OTQ3ZjU0ZDExOGRlM2ZkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9k
aXNwbGF5dHJlZS9EaXNwbGF5UGFpbnRlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzMDEgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEaXNwbGF5
UGFpbnRlci5oIgotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0KLSNp
bmNsdWRlICJDYWNoZWRJbWFnZS5oIgotI2luY2x1ZGUgIkNvbG9yLmgiCi0jaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCi0jaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCi0jaW5j
bHVkZSAiSW5saW5lVGV4dEl0ZW0uaCIKLSNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAi
TGF5b3V0Qm94R2VvbWV0cnkuaCIKLSNpbmNsdWRlICJMYXlvdXRDb250YWluZXJCb3guaCIKLSNp
bmNsdWRlICJMYXlvdXRJbml0aWFsQ29udGFpbmluZ0Jsb2NrLmgiCi0jaW5jbHVkZSAiTGF5b3V0
U3RhdGUuaCIKLSNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgotI2luY2x1ZGUgIlRleHRSdW4uaCIK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotbmFtZXNwYWNlIERpc3BsYXkgewotCi0vLyBGSVhNRTog
TW92ZSB0byBkaXNwbGF5IGJveC4KLXN0YXRpYyB2b2lkIHBhaW50Qm94RGVjb3JhdGlvbihHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IExheW91dDo6Qm94R2VvbWV0cnkmIGFic29sdXRl
Qm94R2VvbWV0cnksIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgYm9vbCBuZWVkc01hcmdpblBh
aW50aW5nKQotewotICAgIGF1dG8gZGVjb3JhdGlvbkJveFRvcExlZnQgPSBuZWVkc01hcmdpblBh
aW50aW5nID8gYWJzb2x1dGVCb3hHZW9tZXRyeS5sb2dpY2FsUmVjdFdpdGhNYXJnaW4oKS50b3BM
ZWZ0KCkgOiBhYnNvbHV0ZUJveEdlb21ldHJ5LmxvZ2ljYWxUb3BMZWZ0KCk7Ci0gICAgYXV0byBk
ZWNvcmF0aW9uQm94U2l6ZSA9IG5lZWRzTWFyZ2luUGFpbnRpbmcgPyBhYnNvbHV0ZUJveEdlb21l
dHJ5LmxvZ2ljYWxSZWN0V2l0aE1hcmdpbigpLnNpemUoKSA6IExheW91dFNpemUoYWJzb2x1dGVC
b3hHZW9tZXRyeS5ib3JkZXJCb3hXaWR0aCgpLCBhYnNvbHV0ZUJveEdlb21ldHJ5LmJvcmRlckJv
eEhlaWdodCgpKTsKLSAgICAvLyBCYWNrZ3JvdW5kIGNvbG9yCi0gICAgaWYgKHN0eWxlLmhhc0Jh
Y2tncm91bmQoKSkgewotICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHsgZGVjb3JhdGlvbkJveFRv
cExlZnQsIGRlY29yYXRpb25Cb3hTaXplIH0sIHN0eWxlLmJhY2tncm91bmRDb2xvcigpKTsKLSAg
ICAgICAgaWYgKHN0eWxlLmhhc0JhY2tncm91bmRJbWFnZSgpKSB7Ci0gICAgICAgICAgICBhdXRv
JiBiYWNrZ3JvdW5kTGF5ZXIgPSBzdHlsZS5iYWNrZ3JvdW5kTGF5ZXJzKCk7Ci0gICAgICAgICAg
ICBpZiAoYmFja2dyb3VuZExheWVyLmltYWdlKCkgJiYgYmFja2dyb3VuZExheWVyLmltYWdlKCkt
PmNhY2hlZEltYWdlKCkgJiYgYmFja2dyb3VuZExheWVyLmltYWdlKCktPmNhY2hlZEltYWdlKCkt
PmltYWdlKCkpCi0gICAgICAgICAgICAgICAgY29udGV4dC5kcmF3SW1hZ2UoKmJhY2tncm91bmRM
YXllci5pbWFnZSgpLT5jYWNoZWRJbWFnZSgpLT5pbWFnZSgpLCB7IGRlY29yYXRpb25Cb3hUb3BM
ZWZ0LCBiYWNrZ3JvdW5kTGF5ZXIuaW1hZ2UoKS0+Y2FjaGVkSW1hZ2UoKS0+aW1hZ2UoKS0+c2l6
ZSgpIH0pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gQm9yZGVyCi0gICAgaWYgKHN0eWxl
Lmhhc1Zpc2libGVCb3JkZXIoKSkgewotCi0gICAgICAgIGF1dG8gZHJhd0JvcmRlclNpZGUgPSBb
Jl0oYXV0byBzdGFydCwgYXV0byBlbmQsIGNvbnN0IGF1dG8mIGJvcmRlclN0eWxlKSB7Ci0gICAg
ICAgICAgICBpZiAoIWJvcmRlclN0eWxlLndpZHRoKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgICAgaWYgKGJvcmRlclN0eWxlLnN0eWxlKCkgPT0gQm9yZGVyU3R5bGU6Ok5v
bmUgfHwgYm9yZGVyU3R5bGUuc3R5bGUoKSA9PSBCb3JkZXJTdHlsZTo6SGlkZGVuKQotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IoYm9y
ZGVyU3R5bGUuY29sb3IoKSk7Ci0gICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVRoaWNrbmVz
cyhib3JkZXJTdHlsZS53aWR0aCgpKTsKLSAgICAgICAgICAgIGNvbnRleHQuZHJhd0xpbmUoc3Rh
cnQsIGVuZCk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IoQ29s
b3I6OnRyYW5zcGFyZW50QmxhY2spOwotCi0gICAgICAgIGF1dG8gZGVjb3JhdGlvbkJveFdpZHRo
ID0gZGVjb3JhdGlvbkJveFNpemUud2lkdGgoKTsKLSAgICAgICAgYXV0byBkZWNvcmF0aW9uQm94
SGVpZ2h0ID0gZGVjb3JhdGlvbkJveFNpemUuaGVpZ2h0KCk7Ci0KLSAgICAgICAgLy8gVG9wCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGF1dG8gYm9yZGVyV2lkdGggPSBzdHlsZS5ib3JkZXJUb3Ao
KS53aWR0aCgpOwotICAgICAgICAgICAgYXV0byBzdGFydCA9IExheW91dFBvaW50IHsgZGVjb3Jh
dGlvbkJveFRvcExlZnQgfTsKLSAgICAgICAgICAgIGF1dG8gZW5kID0gTGF5b3V0UG9pbnQgeyBz
dGFydC54KCkgKyBkZWNvcmF0aW9uQm94V2lkdGgsIHN0YXJ0LnkoKSArIGJvcmRlcldpZHRoIH07
Ci0gICAgICAgICAgICBkcmF3Qm9yZGVyU2lkZShzdGFydCwgZW5kLCBzdHlsZS5ib3JkZXJUb3Ao
KSk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBSaWdodAotICAgICAgICB7Ci0gICAgICAgICAg
ICBhdXRvIGJvcmRlcldpZHRoID0gc3R5bGUuYm9yZGVyUmlnaHQoKS53aWR0aCgpOwotICAgICAg
ICAgICAgYXV0byBzdGFydCA9IExheW91dFBvaW50IHsgZGVjb3JhdGlvbkJveFRvcExlZnQueCgp
ICsgZGVjb3JhdGlvbkJveFdpZHRoIC0gYm9yZGVyV2lkdGgsIGRlY29yYXRpb25Cb3hUb3BMZWZ0
LnkoKSB9OwotICAgICAgICAgICAgYXV0byBlbmQgPSBMYXlvdXRQb2ludCB7IHN0YXJ0LngoKSAr
IGJvcmRlcldpZHRoLCBkZWNvcmF0aW9uQm94VG9wTGVmdC55KCkgKyBkZWNvcmF0aW9uQm94SGVp
Z2h0IH07Ci0gICAgICAgICAgICBkcmF3Qm9yZGVyU2lkZShzdGFydCwgZW5kLCBzdHlsZS5ib3Jk
ZXJSaWdodCgpKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEJvdHRvbQotICAgICAgICB7Ci0g
ICAgICAgICAgICBhdXRvIGJvcmRlcldpZHRoID0gc3R5bGUuYm9yZGVyQm90dG9tKCkud2lkdGgo
KTsKLSAgICAgICAgICAgIGF1dG8gc3RhcnQgPSBMYXlvdXRQb2ludCB7IGRlY29yYXRpb25Cb3hU
b3BMZWZ0LngoKSwgZGVjb3JhdGlvbkJveFRvcExlZnQueSgpICsgZGVjb3JhdGlvbkJveEhlaWdo
dCAtIGJvcmRlcldpZHRoIH07Ci0gICAgICAgICAgICBhdXRvIGVuZCA9IExheW91dFBvaW50IHsg
c3RhcnQueCgpICsgZGVjb3JhdGlvbkJveFdpZHRoLCBzdGFydC55KCkgKyBib3JkZXJXaWR0aCB9
OwotICAgICAgICAgICAgZHJhd0JvcmRlclNpZGUoc3RhcnQsIGVuZCwgc3R5bGUuYm9yZGVyQm90
dG9tKCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gTGVmdAotICAgICAgICB7Ci0gICAgICAg
ICAgICBhdXRvIGJvcmRlcldpZHRoID0gc3R5bGUuYm9yZGVyTGVmdCgpLndpZHRoKCk7Ci0gICAg
ICAgICAgICBhdXRvIHN0YXJ0ID0gZGVjb3JhdGlvbkJveFRvcExlZnQ7Ci0gICAgICAgICAgICBh
dXRvIGVuZCA9IExheW91dFBvaW50IHsgc3RhcnQueCgpICsgYm9yZGVyV2lkdGgsIGRlY29yYXRp
b25Cb3hUb3BMZWZ0LnkoKSArIGRlY29yYXRpb25Cb3hIZWlnaHQgfTsKLSAgICAgICAgICAgIGRy
YXdCb3JkZXJTaWRlKHN0YXJ0LCBlbmQsIHN0eWxlLmJvcmRlckxlZnQoKSk7Ci0gICAgICAgIH0K
LSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIHBhaW50SW5saW5lQ29udGVudChHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIExheW91dFBvaW50IGFic29sdXRlT2Zmc2V0LCBjb25zdCBMYXlvdXQ6Oklu
bGluZUZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKQotewotICAgIGZvciAoYXV0byYg
cnVuIDogZm9ybWF0dGluZ1N0YXRlLmxpbmVSdW5zKCkpIHsKLSAgICAgICAgYXV0byYgcnVuUmVj
dCA9IHJ1bi5sb2dpY2FsUmVjdCgpOwotICAgICAgICBpZiAoYXV0byYgdGV4dENvbnRlbnQgPSBy
dW4udGV4dCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiBzdHlsZSA9IHJ1bi5sYXlvdXRCb3goKS5z
dHlsZSgpOwotICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihzdHlsZS5jb2xvcigp
KTsKLSAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKHN0eWxlLmNvbG9yKCkpOwotCi0g
ICAgICAgICAgICBhdXRvIGFic29sdXRlTGVmdCA9IGFic29sdXRlT2Zmc2V0LngoKSArIHJ1blJl
Y3QubGVmdCgpOwotICAgICAgICAgICAgLy8gRklYTUU6IEFkZCBub24tYmFzZWxpbmUgYWxpZ24g
cGFpbnRpbmcKLSAgICAgICAgICAgIGF1dG8gYmFzZWxpbmUgPSBhYnNvbHV0ZU9mZnNldC55KCkg
KyBydW5SZWN0LnRvcCgpICsgc3R5bGUuZm9udE1ldHJpY3MoKS5hc2NlbnQoKTsKLSAgICAgICAg
ICAgIGF1dG8gZXhwYW5zaW9uID0gcnVuLmV4cGFuc2lvbigpOwotICAgICAgICAgICAgLy8gRklY
TUU6IFRoZSBmaW5hbCBwYWludGVyIHNob3VsZCBoYXZlIGFjY2VzcyB0byB0aGUgY3VycmVudCBs
aW5lIHRvIG9mZnNldCB0aGUgcnVucy4KLSAgICAgICAgICAgIGF1dG8gdGV4dFJ1biA9IFRleHRS
dW4geyB0ZXh0Q29udGVudC0+Y29udGVudCgpLCBydW5SZWN0LmxlZnQoKSwgZXhwYW5zaW9uLmhv
cml6b250YWxFeHBhbnNpb24sIGV4cGFuc2lvbi5iZWhhdmlvciB9OwotICAgICAgICAgICAgdGV4
dFJ1bi5zZXRUYWJTaXplKCFzdHlsZS5jb2xsYXBzZVdoaXRlU3BhY2UoKSwgc3R5bGUudGFiU2l6
ZSgpKTsKLSAgICAgICAgICAgIGNvbnRleHQuZHJhd1RleHQoc3R5bGUuZm9udENhc2NhZGUoKSwg
dGV4dFJ1biwgeyBhYnNvbHV0ZUxlZnQsIGJhc2VsaW5lIH0pOwotICAgICAgICB9Ci0gICAgfQot
fQotCi1MYXlvdXQ6OkJveEdlb21ldHJ5IFBhaW50ZXI6OmFic29sdXRlQm94R2VvbWV0cnkoY29u
c3QgTGF5b3V0OjpMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IExheW91dDo6Qm94JiBs
YXlvdXRCb3hUb1BhaW50KQotewotICAgIC8vIFNob3VsZCBuZXZlciByZWFsbHkgaGFwcGVuIGJ1
dCB0YWJsZSBjb2RlIGlzIHdheSB0b28gaW5jb21wbGV0ZS4KLSAgICBpZiAoIWxheW91dFN0YXRl
Lmhhc0JveEdlb21ldHJ5KGxheW91dEJveFRvUGFpbnQpKQotICAgICAgICByZXR1cm4geyB9Owot
ICAgIGlmIChpczxMYXlvdXQ6OkluaXRpYWxDb250YWluaW5nQmxvY2s+KGxheW91dEJveFRvUGFp
bnQpKQotICAgICAgICByZXR1cm4gbGF5b3V0U3RhdGUuZ2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94
VG9QYWludCk7Ci0KLSAgICBhdXRvIHBhaW50Q29udGFpbmVyID0gWyZdIChjb25zdCBhdXRvJiBs
YXlvdXRCb3gpIHsKLSAgICAgICAgaWYgKGxheW91dEJveC5pc1RhYmxlQ2VsbCgpKSB7Ci0gICAg
ICAgICAgICAvLyBUaGUgdGFibGUgY2VsbCdzIGNvbnRhaW5pbmcgYmxvY2sgaXMgdGhlIHRhYmxl
IGJveCAoc2tpcHBpbmcgYm90aCB0aGUgcm93IGFuZCB0aGUgc2VjdGlvbiksIGJ1dCBpdCdzIHBv
c2l0aW9uZWQgcmVsYXRpdmUgdG8gdGhlIHRhYmxlIHNlY3Rpb24uCi0gICAgICAgICAgICAvLyBM
ZXQncyBza2lwIHRoZSByb3cgYW5kIGdvIHJpZ2h0IHRvIHRoZSBzZWN0aW9uIGJveC4KLSAgICAg
ICAgICAgIHJldHVybiAmbGF5b3V0Qm94LnBhcmVudCgpLnBhcmVudCgpOwotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiAmbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpOwotICAgIH07Ci0gICAg
YXV0byBhYnNvbHV0ZUJveCA9IExheW91dDo6Qm94R2VvbWV0cnkgeyBsYXlvdXRTdGF0ZS5nZW9t
ZXRyeUZvckJveChsYXlvdXRCb3hUb1BhaW50KSB9OwotICAgIGZvciAoYXV0byogY29udGFpbmVy
ID0gcGFpbnRDb250YWluZXIobGF5b3V0Qm94VG9QYWludCk7ICFpczxMYXlvdXQ6OkluaXRpYWxD
b250YWluaW5nQmxvY2s+KGNvbnRhaW5lcik7IGNvbnRhaW5lciA9IHBhaW50Q29udGFpbmVyKCpj
b250YWluZXIpKQotICAgICAgICBhYnNvbHV0ZUJveC5tb3ZlQnkobGF5b3V0U3RhdGUuZ2VvbWV0
cnlGb3JCb3goKmNvbnRhaW5lcikubG9naWNhbFRvcExlZnQoKSk7Ci0gICAgcmV0dXJuIGFic29s
dXRlQm94OwotfQotCi1zdGF0aWMgYm9vbCBpc1BhaW50Um9vdENhbmRpZGF0ZShjb25zdCBMYXlv
dXQ6OkJveCYgbGF5b3V0Qm94KQotewotICAgIHJldHVybiBsYXlvdXRCb3guaXNQb3NpdGlvbmVk
KCk7Ci19Ci0KLXVzaW5nIExheW91dEJveExpc3QgPSBWZWN0b3I8Y29uc3QgTGF5b3V0OjpCb3gq
PjsKLQotZW51bSBQYWludFBoYXNlIHsgRGVjb3JhdGlvbiwgQ29udGVudCB9Owotc3RhdGljIHZv
aWQgcGFpbnRTdWJ0cmVlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgTGF5b3V0OjpM
YXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IExheW91dDo6Qm94JiBwYWludFJvb3RCb3gs
IGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCwgUGFpbnRQaGFzZSBwYWludFBoYXNlKQotewotICAg
IGF1dG8gcGFpbnQgPSBbJl0gKGF1dG8mIGxheW91dEJveCkgewotICAgICAgICBpZiAobGF5b3V0
Qm94LnN0eWxlKCkudmlzaWJpbGl0eSgpICE9IFZpc2liaWxpdHk6OlZpc2libGUpCi0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIGlmICghbGF5b3V0U3RhdGUuaGFzQm94R2VvbWV0cnkobGF5
b3V0Qm94KSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgYXV0byBhYnNvbHV0ZUJveEdl
b21ldHJ5ID0gUGFpbnRlcjo6YWJzb2x1dGVCb3hHZW9tZXRyeShsYXlvdXRTdGF0ZSwgbGF5b3V0
Qm94KTsKLSAgICAgICAgaWYgKCFkaXJ0eVJlY3QuaW50ZXJzZWN0cyhzbmFwcGVkSW50UmVjdChh
YnNvbHV0ZUJveEdlb21ldHJ5LmxvZ2ljYWxSZWN0KCkpKSkKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICBpZiAocGFpbnRQaGFzZSA9PSBQYWludFBoYXNlOjpEZWNvcmF0aW9uKSB7Ci0g
ICAgICAgICAgICBpZiAobGF5b3V0Qm94LmlzQW5vbnltb3VzKCkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICAgICAgcGFpbnRCb3hEZWNvcmF0aW9uKGNvbnRleHQsIGFic29sdXRl
Qm94R2VvbWV0cnksIGxheW91dEJveC5zdHlsZSgpLCBsYXlvdXRCb3guaXNCb2R5Qm94KCkpOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIC8vIE9ubHkgaW5saW5lIGNv
bnRlbnQgZm9yIG5vdy4KLSAgICAgICAgaWYgKGxheW91dEJveC5lc3RhYmxpc2hlc0lubGluZUZv
cm1hdHRpbmdDb250ZXh0KCkpIHsKLSAgICAgICAgICAgIGF1dG8mIGNvbnRhaW5lckJveCA9IGRv
d25jYXN0PExheW91dDo6Q29udGFpbmVyQm94PihsYXlvdXRCb3gpOwotICAgICAgICAgICAgcGFp
bnRJbmxpbmVDb250ZW50KGNvbnRleHQsIGFic29sdXRlQm94R2VvbWV0cnkubG9naWNhbFRvcExl
ZnQoKSwgbGF5b3V0U3RhdGUuZXN0YWJsaXNoZWRJbmxpbmVGb3JtYXR0aW5nU3RhdGUoY29udGFp
bmVyQm94KSk7Ci0gICAgICAgIH0KLSAgICB9OwotCi0gICAgcGFpbnQocGFpbnRSb290Qm94KTsK
LSAgICBpZiAoIWlzPExheW91dDo6Q29udGFpbmVyQm94PihwYWludFJvb3RCb3gpIHx8ICFkb3du
Y2FzdDxMYXlvdXQ6OkNvbnRhaW5lckJveD4ocGFpbnRSb290Qm94KS5oYXNDaGlsZCgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBMYXlvdXRCb3hMaXN0IGxheW91dEJveExpc3Q7Ci0gICAgbGF5
b3V0Qm94TGlzdC5hcHBlbmQoZG93bmNhc3Q8TGF5b3V0OjpDb250YWluZXJCb3g+KHBhaW50Um9v
dEJveCkuZmlyc3RDaGlsZCgpKTsKLSAgICB3aGlsZSAoIWxheW91dEJveExpc3QuaXNFbXB0eSgp
KSB7Ci0gICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAgICBhdXRvJiBsYXlvdXRCb3gg
PSAqbGF5b3V0Qm94TGlzdC5sYXN0KCk7Ci0gICAgICAgICAgICBpZiAoaXNQYWludFJvb3RDYW5k
aWRhdGUobGF5b3V0Qm94KSkKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIHBh
aW50KGxheW91dEJveCk7Ci0gICAgICAgICAgICBpZiAoIWlzPExheW91dDo6Q29udGFpbmVyQm94
PihsYXlvdXRCb3gpIHx8ICFkb3duY2FzdDxMYXlvdXQ6OkNvbnRhaW5lckJveD4obGF5b3V0Qm94
KS5oYXNDaGlsZCgpKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgbGF5b3V0
Qm94TGlzdC5hcHBlbmQoZG93bmNhc3Q8TGF5b3V0OjpDb250YWluZXJCb3g+KGxheW91dEJveCku
Zmlyc3RDaGlsZCgpKTsKLSAgICAgICAgfQotICAgICAgICB3aGlsZSAoIWxheW91dEJveExpc3Qu
aXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBhdXRvJiBsYXlvdXRCb3ggPSAqbGF5b3V0Qm94TGlz
dC50YWtlTGFzdCgpOwotICAgICAgICAgICAgLy8gU3RheSB3aXRoaW4uCi0gICAgICAgICAgICBp
ZiAoJmxheW91dEJveCA9PSAmcGFpbnRSb290Qm94KQotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIGlmIChhdXRvKiBuZXh0U2libGluZyA9IGxheW91dEJveC5uZXh0U2libGlu
ZygpKSB7Ci0gICAgICAgICAgICAgICAgbGF5b3V0Qm94TGlzdC5hcHBlbmQobmV4dFNpYmxpbmcp
OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
fQotfQotCi1zdGF0aWMgTGF5b3V0UmVjdCBjb2xsZWN0UGFpbnRSb290c0FuZENvbnRlbnRSZWN0
KGNvbnN0IExheW91dDo6TGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBjb25zdCBMYXlvdXQ6OkJv
eCYgcm9vdExheW91dEJveCwgTGF5b3V0Qm94TGlzdCYgcG9zaXRpdmVaT3JkZXJMaXN0LCBMYXlv
dXRCb3hMaXN0JiBuZWdhdGl2ZVpPcmRlckxpc3QpCi17Ci0gICAgYXV0byBhcHBlbmRQYWludFJv
b3QgPSBbJl0gKGNvbnN0IGF1dG8mIGxheW91dEJveCkgewotICAgICAgICBpZiAobGF5b3V0Qm94
LnN0eWxlKCkudXNlZFpJbmRleCgpIDwgMCkgewotICAgICAgICAgICAgbmVnYXRpdmVaT3JkZXJM
aXN0LmFwcGVuZCgmbGF5b3V0Qm94KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
ICAgICAgICBwb3NpdGl2ZVpPcmRlckxpc3QuYXBwZW5kKCZsYXlvdXRCb3gpOwotICAgIH07Ci0K
LSAgICBhdXRvIGNvbnRlbnRSZWN0ID0gTGF5b3V0UmVjdCB7IGxheW91dFN0YXRlLmdlb21ldHJ5
Rm9yQm94KHJvb3RMYXlvdXRCb3gpLmxvZ2ljYWxSZWN0KCkgfTsKLQotICAgIC8vIEluaXRpYWwg
QkZDIGlzIGFsd2F5cyBhIHBhaW50IHJvb3QuCi0gICAgYXBwZW5kUGFpbnRSb290KHJvb3RMYXlv
dXRCb3gpOwotICAgIExheW91dEJveExpc3QgbGF5b3V0Qm94TGlzdDsKLSAgICBsYXlvdXRCb3hM
aXN0LmFwcGVuZCgmcm9vdExheW91dEJveCk7Ci0gICAgd2hpbGUgKCFsYXlvdXRCb3hMaXN0Lmlz
RW1wdHkoKSkgewotICAgICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICAgICAgYXV0byYgbGF5
b3V0Qm94ID0gKmxheW91dEJveExpc3QubGFzdCgpOwotICAgICAgICAgICAgaWYgKGxheW91dEJv
eC5zdHlsZSgpLnZpc2liaWxpdHkoKSAhPSBWaXNpYmlsaXR5OjpWaXNpYmxlKQotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgaWYgKGlzUGFpbnRSb290Q2FuZGlkYXRlKGxheW91
dEJveCkpCi0gICAgICAgICAgICAgICAgYXBwZW5kUGFpbnRSb290KGxheW91dEJveCk7Ci0gICAg
ICAgICAgICBpZiAobGF5b3V0U3RhdGUuaGFzQm94R2VvbWV0cnkobGF5b3V0Qm94KSkKLSAgICAg
ICAgICAgICAgICBjb250ZW50UmVjdC51bml0ZUlmTm9uWmVybyhQYWludGVyOjphYnNvbHV0ZUJv
eEdlb21ldHJ5KGxheW91dFN0YXRlLCBsYXlvdXRCb3gpLmxvZ2ljYWxSZWN0KCkpOwotICAgICAg
ICAgICAgaWYgKCFpczxMYXlvdXQ6OkNvbnRhaW5lckJveD4obGF5b3V0Qm94KSB8fCAhZG93bmNh
c3Q8TGF5b3V0OjpDb250YWluZXJCb3g+KGxheW91dEJveCkuaGFzQ2hpbGQoKSkKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGxheW91dEJveExpc3QuYXBwZW5kKGRvd25jYXN0
PExheW91dDo6Q29udGFpbmVyQm94PihsYXlvdXRCb3gpLmZpcnN0Q2hpbGQoKSk7Ci0gICAgICAg
IH0KLSAgICAgICAgd2hpbGUgKCFsYXlvdXRCb3hMaXN0LmlzRW1wdHkoKSkgewotICAgICAgICAg
ICAgYXV0byYgbGF5b3V0Qm94ID0gKmxheW91dEJveExpc3QudGFrZUxhc3QoKTsKLSAgICAgICAg
ICAgIGlmIChhdXRvKiBuZXh0U2libGluZyA9IGxheW91dEJveC5uZXh0U2libGluZygpKSB7Ci0g
ICAgICAgICAgICAgICAgbGF5b3V0Qm94TGlzdC5hcHBlbmQobmV4dFNpYmxpbmcpOwotICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAg
YXV0byBjb21wYXJlWkluZGV4ID0gW10gKGNvbnN0IExheW91dDo6Qm94KiBhLCBjb25zdCBMYXlv
dXQ6OkJveCogYikgewotICAgICAgICByZXR1cm4gYS0+c3R5bGUoKS51c2VkWkluZGV4KCkgPCBi
LT5zdHlsZSgpLnVzZWRaSW5kZXgoKTsKLSAgICB9OwotCi0gICAgc3RkOjpzdGFibGVfc29ydChw
b3NpdGl2ZVpPcmRlckxpc3QuYmVnaW4oKSwgcG9zaXRpdmVaT3JkZXJMaXN0LmVuZCgpLCBjb21w
YXJlWkluZGV4KTsKLSAgICBzdGQ6OnN0YWJsZV9zb3J0KG5lZ2F0aXZlWk9yZGVyTGlzdC5iZWdp
bigpLCBuZWdhdGl2ZVpPcmRlckxpc3QuZW5kKCksIGNvbXBhcmVaSW5kZXgpOwotICAgIHJldHVy
biBjb250ZW50UmVjdDsKLX0KLQotdm9pZCBQYWludGVyOjpwYWludChjb25zdCBMYXlvdXQ6Okxh
eW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJ
bnRSZWN0JiBkaXJ0eVJlY3QpCi17Ci0gICAgYXV0byYgcm9vdExheW91dEJveCA9IGxheW91dFN0
YXRlLnJvb3QoKTsKLSAgICBpZiAoIXJvb3RMYXlvdXRCb3guZmlyc3RDaGlsZCgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBWZWN0b3I8Y29uc3QgTGF5b3V0OjpCb3gqPiBuZWdhdGl2ZVpPcmRl
ckxpc3Q7Ci0gICAgVmVjdG9yPGNvbnN0IExheW91dDo6Qm94Kj4gcG9zaXRpdmVaT3JkZXJMaXN0
OwotICAgIGF1dG8gY29udGVudFJlY3QgPSBjb2xsZWN0UGFpbnRSb290c0FuZENvbnRlbnRSZWN0
KGxheW91dFN0YXRlLCByb290TGF5b3V0Qm94LCBwb3NpdGl2ZVpPcmRlckxpc3QsIG5lZ2F0aXZl
Wk9yZGVyTGlzdCk7Ci0KLSAgICAvLyBGaWxsIHRoZSBlbnRpcmUgY29udGVudCBhcmVhLgotICAg
IGNvbnRleHQuZmlsbFJlY3QoY29udGVudFJlY3QsIENvbG9yOjp3aGl0ZSk7Ci0KLSAgICBmb3Ig
KGF1dG8mIHBhaW50Um9vdEJveCA6IG5lZ2F0aXZlWk9yZGVyTGlzdCkgewotICAgICAgICBwYWlu
dFN1YnRyZWUoY29udGV4dCwgbGF5b3V0U3RhdGUsICpwYWludFJvb3RCb3gsIGRpcnR5UmVjdCwg
UGFpbnRQaGFzZTo6RGVjb3JhdGlvbik7Ci0gICAgICAgIHBhaW50U3VidHJlZShjb250ZXh0LCBs
YXlvdXRTdGF0ZSwgKnBhaW50Um9vdEJveCwgZGlydHlSZWN0LCBQYWludFBoYXNlOjpDb250ZW50
KTsKLSAgICB9Ci0KLSAgICBmb3IgKGF1dG8mIHBhaW50Um9vdEJveCA6IHBvc2l0aXZlWk9yZGVy
TGlzdCkgewotICAgICAgICBwYWludFN1YnRyZWUoY29udGV4dCwgbGF5b3V0U3RhdGUsICpwYWlu
dFJvb3RCb3gsIGRpcnR5UmVjdCwgUGFpbnRQaGFzZTo6RGVjb3JhdGlvbik7Ci0gICAgICAgIHBh
aW50U3VidHJlZShjb250ZXh0LCBsYXlvdXRTdGF0ZSwgKnBhaW50Um9vdEJveCwgZGlydHlSZWN0
LCBQYWludFBoYXNlOjpDb250ZW50KTsKLSAgICB9Ci19Ci0KLXZvaWQgUGFpbnRlcjo6cGFpbnRJ
bmxpbmVGbG93KGNvbnN0IExheW91dDo6TGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQpCi17Ci0gICAgYXV0byYgbGF5b3V0Um9vdCA9IGxheW91dFN0YXRl
LnJvb3QoKTsKLQotICAgIEFTU0VSVChsYXlvdXRSb290LmVzdGFibGlzaGVzSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQoKSk7Ci0KLSAgICBwYWludElubGluZUNvbnRlbnQoY29udGV4dCwgeyB9LCBs
YXlvdXRTdGF0ZS5lc3RhYmxpc2hlZElubGluZUZvcm1hdHRpbmdTdGF0ZShsYXlvdXRSb290KSk7
Ci19Ci0KLX0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
ZGlzcGxheXRyZWUvRGlzcGxheVBhaW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNw
bGF5dHJlZS9EaXNwbGF5UGFpbnRlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
ZmRiNjIxY2ViZjlkYzhlZDhlNDY1N2UxMjQ2OTE0ZTRlZGQ3NDRiLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNw
bGF5dHJlZS9EaXNwbGF5UGFpbnRlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5H
X0NPTlRFWFQpCi0KLSNpbmNsdWRlICJMYXlvdXRCb3guaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBHcmFwaGljc0NvbnRleHQ7Ci1jbGFzcyBJbnRSZWN0OwotCi1uYW1lc3BhY2Ug
TGF5b3V0IHsKLWNsYXNzIEJveEdlb21ldHJ5OwotY2xhc3MgTGF5b3V0U3RhdGU7Ci19Ci0KLW5h
bWVzcGFjZSBEaXNwbGF5IHsKLQotY2xhc3MgUGFpbnRlciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGlj
IHZvaWQgcGFpbnQoY29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0ZSYsIEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCk7Ci0gICAgc3RhdGljIHZvaWQgcGFpbnRJbmxpbmVG
bG93KGNvbnN0IExheW91dDo6TGF5b3V0U3RhdGUmLCBHcmFwaGljc0NvbnRleHQmKTsKLQotICAg
IC8vIEZJWE1FOiBNb3ZlIHRvIGRpc3BsYXkgYm94LgotICAgIHN0YXRpYyBMYXlvdXQ6OkJveEdl
b21ldHJ5IGFic29sdXRlQm94R2VvbWV0cnkoY29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0ZSYsIGNv
bnN0IExheW91dDo6Qm94Jik7Ci19OwotCi19Ci19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAppbmRleCAxODk4ZDRlMWY3MzI5Y2MyZjlmYTZjNzcxYzRjZWRkMDc3NmE0OWJkLi5l
MWE4NDA4OTg1N2QzOWEzM2U1MGEwN2IwNGEyNjM3NDUwZWQ2YjlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCkBAIC00Mjg2LDE3ICs0Mjg2LDYgQEAgdm9pZCBGcmFtZVZpZXc6OnBhaW50
Q29udGVudHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJl
Y3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElO
R19DT05URVhUKQotICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLmxheW91dEZvcm1hdHRpbmdDb250ZXh0RW5hYmxlZCgpKSB7Ci0gICAgICAgIC8vIEludGVn
cmF0ZSBwYWludCB0aW1pbmcgd2l0aCBMRkMgbGF0ZXIgb24uCi0gICAgICAgIGlmIChjb250ZXh0
LmRldGVjdGluZ0NvbnRlbnRmdWxQYWludCgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICBpZiAoYXV0byogbGF5b3V0U3RhdGUgPSBsYXlvdXRDb250ZXh0KCkubGF5b3V0Rm9ybWF0dGlu
Z1N0YXRlKCkpCi0gICAgICAgICAgICBMYXlvdXQ6OkxheW91dENvbnRleHQ6OnBhaW50KCpsYXlv
dXRTdGF0ZSwgY29udGV4dCwgZGlydHlSZWN0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNl
bmRpZgotCiAgICAgaWYgKCFsYXlvdXRDb250ZXh0KCkuaW5QYWludGFibGVTdGF0ZSgpKQogICAg
ICAgICByZXR1cm47CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>