<?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>192133</bug_id>
          
          <creation_ts>2018-11-28 20:44:43 -0800</creation_ts>
          <short_desc>[LFC][Quirk] Move quirk functions to dedicated classes.</short_desc>
          <delta_ts>2018-11-29 07:29:30 -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>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>bfulgham</cc>
    
    <cc>koivisto</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>1482833</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-11-28 20:44:43 -0800</bug_when>
    <thetext>ssia.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482836</commentid>
    <comment_count>1</comment_count>
      <attachid>355972</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-11-28 20:48:35 -0800</bug_when>
    <thetext>Created attachment 355972
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482925</commentid>
    <comment_count>2</comment_count>
      <attachid>355972</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-11-29 06:30:57 -0800</bug_when>
    <thetext>Comment on attachment 355972
Patch

nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482938</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-11-29 07:28:28 -0800</bug_when>
    <thetext>Committed r238667: &lt;https://trac.webkit.org/changeset/238667&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482940</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-29 07:29:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/46341808&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355972</attachid>
            <date>2018-11-28 20:48:35 -0800</date>
            <delta_ts>2018-11-29 06:30:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192133-20181128204832.patch</filename>
            <type>text/plain</type>
            <size>32423</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NjEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWYzN2FjZDYyYzFmZGU5
YWUxMWIxNzdjN2VjNjA0MTJiZDNjNGRlOS4uNDUzOTM3YTk3YzRlNDZhMjY2MTA0NDcwOGJlODNl
YjliMjFiZmM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE4LTExLTI4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bUXVpcmtdIE1vdmUg
cXVpcmsgZnVuY3Rpb25zIHRvIGRlZGljYXRlZCBjbGFzc2VzLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyMTMzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbGF5b3V0L0Zvcm1h
dHRpbmdDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6OmNvbXB1dGVkSGVpZ2h0VmFsdWUpOgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oOgorICAgICAgICAqIGxheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd05v
blJlcGxhY2VkV2lkdGhBbmRNYXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93SGVpZ2h0QW5kTWFyZ2luKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6aW5pdGlhbENvbnRhaW5pbmdCbG9jayk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OmlzU3RyZXRjaGVkVG9Jbml0aWFsQ29udGFpbmlu
Z0Jsb2NrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6c3RyZXRjaEhlaWdo
dFRvSW5pdGlhbENvbnRhaW5pbmdCbG9ja1F1aXJrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6c3RyZXRjaFdpZHRoVG9Jbml0aWFsQ29udGFpbmluZ0Jsb2NrKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRl
LmNwcDoKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFw
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6TWFyZ2luQ29sbGFwc2U6OmlzTWFyZ2luVG9wQ29sbGFwc2VkV2l0aFBhcmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luVG9wKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6aXNRdWlya0NvbnRhaW5lcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6Omhhc01hcmdpblRvcFF1aXJrVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpzaG91bGRJZ25vcmVNYXJnaW5Ub3BJblF1aXJrQ29udGV4dCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OmlzTWFyZ2luVG9wQ29sbGFwc2VkV2l0aFBhcmVudCk6
IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL3RleHQv
VGV4dFV0aWwuaDoKKwogMjAxOC0xMS0yOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtMRkNdW1F1aXJrXSBVc2Ugbm9uLWNvbGxhcHNlZCB2ZXJ0aWNhbCBtYXJn
aW4gdmFsdWVzIHdoZW4gdGhlIGNvbnRhaW5lciBpcyBzdHJldGNoZWQgdG8gdGhlIHNpemUgb2Yg
dGhlIElDQi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNzZkZWQ4ZWY2MzY3ZTQ2MGVkMGI4MzZmMzFiZmE5
YzYxNzI5MzVhMS4uMTVlYTU2Mjk5NDRkOTBmYTFkZDMzZjlkYzViY2RjMDgxY2I4OTdhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKQEAgLTEyNjAsMTEgKzEyNjAsMTMgQEAgaW5zcGVjdG9yL2FnZW50cy93b3Jr
ZXIvV29ya2VyUnVudGltZUFnZW50LmNwcAogCiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3Bw
CiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKK2xheW91dC9Gb3JtYXR0aW5n
Q29udGV4dFF1aXJrcy5jcHAKIGxheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwCiBsYXlvdXQvTGF5
b3V0Rm9ybWF0dGluZ1N0YXRlLmNwcAogbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHAKIGxheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKIGxheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAorbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAogbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5jcHAKIGxheW91dC9ibG9ja2Zvcm1hdHRp
bmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tJ
bnZhbGlkYXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNzg0NTNjOWNjZDliZjg4YzU4MDFhZGY0YWY0ODM0YjA0NjE1
NzkyMC4uNWJjNDhjMzVjYjRlZTBjOTAwZGIyNDFjZGE0NTZkZGNiM2VlYzRkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjk0
OSw4ICs2OTQ5LDggQEAKIAkJMzEyRkY5MzkyMUE2MUM5RjAwRUIxOTlEIC8qIFdlYkdQVVF1ZXVl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVF1ZXVlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMkZGOTNCMjFBNjFDQTAwMEVCMTk5RCAvKiBXZWJH
UFVRdWV1ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVUXVldWUuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTJGRjkzQzIxQTYxQ0ExMDBFQjE5OUQgLyogV2Vi
R1BVUXVldWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BV
UXVldWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMTJGRjkzRDIxQTYxRjA3
MDBFQjE5OUQgLyogSlNXZWJHUFVRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBKU1dlYkdQVVF1ZXVlLmg7IHBhdGggPSBKU1dlYkdQVVF1ZXVlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTMxMkZGOTNFMjFBNjFGMDcwMEVCMTk5RCAvKiBKU1dlYkdQVVF1
ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTV2ViR1BVUXVl
dWUuY3BwOyBwYXRoID0gSlNXZWJHUFVRdWV1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTMxMkZGOTNEMjFBNjFGMDcwMEVCMTk5RCAvKiBKU1dlYkdQVVF1ZXVlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR1BVUXVldWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMzEyRkY5M0UyMUE2MUYwNzAwRUIxOTlEIC8qIEpTV2ViR1BVUXVl
dWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHUFVRdWV1
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMzE3MTU0MUZCMDc5RDEwMDhE
OTFGQyAvKiBDYW52YXNCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENh
bnZhc0Jhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEzMTcxNTcxRkIwOTY5
RTAwOEQ5MUZDIC8qIENhbnZhc0Jhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ2FudmFzQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMx
MzU5MTAwMUU3RERDNjAwMEYzMDYzMCAvKiBSVENJY2VDb25uZWN0aW9uU3RhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDSWNlQ29ubmVjdGlvblN0YXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MjA0LDYgKzkyMDQsNyBAQAogCQk2RjIxOUQ3NjIx
NzhEMzcxMDBCQjAzM0MgLyogTGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBMaW5lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkYyMjJCNzQx
QUI1MkQ2NDAwOTQ2NTFBIC8qIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTZGMjIyQjc1MUFCNTJEOEEwMDk0NjUxQSAvKiBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHTFZl
cnRleEFycmF5T2JqZWN0QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZG
MzFDQ0QwMjFBRjkyMzAwMEFFREJCOSAvKiBGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTZGMzVFRkFGMjE4N0NCRDUwMDQ0RTBGNCAvKiBJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IElubGluZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2RjNFMUY1RjIxMzYxNDE3MDBBNjVBMDggLyogRmxvYXRCb3guY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRmxvYXRCb3guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2RjNFMUY2MTIxMzYxNDE3MDBBNjVBMDggLyogRmxvYXRCb3guaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRmxvYXRCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkyNDIsNiAr
OTI0Myw3IEBACiAJCTZGQjExQjU5MjE3ODNGQ0YwMEUyQTU3NCAvKiBUZXh0VXRpbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0VXRpbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2RkIxMUI1QjIxNzgzRkNGMDBFMkE1NzQgLyogVGV4dFV0aWwuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dFV0aWwuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2RkJCODYwNTIwQjQ2NEI2MDBEQUQ5MzggLyogRm9ybWF0
dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtYXR0aW5nQ29u
dGV4dEdlb21ldHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkZENDc0MEYy
MUFGODlBQjAwNEQ4QzdCIC8qIEJsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQmxvY2tGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAvKiBJbmxpbmVM
aW5lQnJlYWtlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmxp
bmVMaW5lQnJlYWtlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGRTE5ODE1
MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVMaW5lQnJlYWtlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbmxpbmVMaW5lQnJlYWtlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2RkU3Q0ZBMDIxNzdFRUYxMDA1QjE1NzMgLyogSW5saW5lSXRlbS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVJdGVtLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNjE3NSw2ICsxNjE3Nyw3IEBACiAJCQkJMTE1Q0ZBNjkyMDhBRjdE
MDAwMUU2OTkxIC8qIEZvcm1hdHRpbmdDb250ZXh0LmNwcCAqLywKIAkJCQkxMTVDRkE2ODIwOEFG
N0QwMDAxRTY5OTEgLyogRm9ybWF0dGluZ0NvbnRleHQuaCAqLywKIAkJCQk2RkJCODYwNTIwQjQ2
NEI2MDBEQUQ5MzggLyogRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgKi8sCisJCQkJNkYz
MUNDRDAyMUFGOTIzMDAwQUVEQkI5IC8qIEZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcCAqLywK
IAkJCQkxMTVDRkE3NTIwOEFGRTMwMDAxRTY5OTEgLyogRm9ybWF0dGluZ1N0YXRlLmNwcCAqLywK
IAkJCQkxMTVDRkE3NDIwOEFGRTMwMDAxRTY5OTEgLyogRm9ybWF0dGluZ1N0YXRlLmggKi8sCiAJ
CQkJMTE1Rjc4MDUyMDlDQkNCRDAwNzM5QzEzIC8qIEludmFsaWRhdGlvbi5oICovLApAQCAtMTYy
MTksNiArMTYyMjIsNyBAQAogCQkJCTExNUNGQTZEMjA4QUZBQjYwMDFFNjk5MSAvKiBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0LmNwcCAqLywKIAkJCQkxMTVDRkE2QzIwOEFGQUI2MDAxRTY5OTEgLyog
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oICovLAogCQkJCTZGMDgzMERGMjBCNDY5NTEwMDhBOTQ1
QiAvKiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwICovLAorCQkJCTZGRDQ3NDBG
MjFBRjg5QUIwMDREOEM3QiAvKiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcCAqLywK
IAkJCQkxMTVDRkE3OTIwOEI4RDlEMDAxRTY5OTEgLyogQmxvY2tGb3JtYXR0aW5nU3RhdGUuY3Bw
ICovLAogCQkJCTExNUNGQTc4MjA4QjhEOUQwMDFFNjk5MSAvKiBCbG9ja0Zvcm1hdHRpbmdTdGF0
ZS5oICovLAogCQkJCTExMjNBRkRBMjA5QUJCMjAwMDczNkFDQyAvKiBCbG9ja0ludmFsaWRhdGlv
bi5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0Nv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4
IGU3ZWI3ZTk5MzFkZDJhMTg2NWNiZDBkOTI5Y2Q5ZDNjZmI1YWIwMDQuLjRmNjVlNTZlOTE4OWM4
ZGNiZTJmMDRjN2ZjYTRjMzdkYmE0MWMyNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3Jt
YXR0aW5nQ29udGV4dC5oCkBAIC0xMjIsNiArMTIyLDExIEBAIHByb3RlY3RlZDoKICAgICAgICAg
c3RhdGljIFdpZHRoQW5kTWFyZ2luIGZsb2F0aW5nTm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihM
YXlvdXRTdGF0ZSYsIGNvbnN0IEJveCYsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZFdp
ZHRoID0geyB9KTsKICAgICB9OwogCisgICAgY2xhc3MgUXVpcmtzIHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIHN0YXRpYyBMYXlvdXRVbml0IGhlaWdodFZhbHVlT2ZOZWFyZXN0Q29udGFpbmluZ0Js
b2NrV2l0aEZpeGVkSGVpZ2h0KGNvbnN0IExheW91dFN0YXRlJiwgY29uc3QgQm94Jik7CisgICAg
fTsKKwogcHJpdmF0ZToKICAgICB2b2lkIGNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5
KGNvbnN0IEJveCYpIGNvbnN0OwogICAgIHZvaWQgY29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxH
ZW9tZXRyeShjb25zdCBCb3gmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAppbmRleCA4YzM0ZjA1YjNhNmE0MzUwNWFm
ZTI5ZjRmOGU4ZjA5NTlhNGIyOWQ4Li4wYTNhODgzMTRiNjc5ZmIzMGJhYTdjNTUzMmE0MWQwZmIw
ZjBmZmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRl
eHRHZW9tZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250
ZXh0R2VvbWV0cnkuY3BwCkBAIC03MiwzNSArNzIsOCBAQCBzdGQ6Om9wdGlvbmFsPExheW91dFVu
aXQ+IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWRIZWlnaHRWYWx1ZShjb25z
dAogICAgICAgICAvLyBDb250YWluaW5nIGJsb2NrJ3MgaGVpZ2h0IGlzIGFscmVhZHkgY29tcHV0
ZWQgc2luY2Ugd2UgbGF5b3V0IHRoZSBvdXQtb2YtZmxvdyBib3hlcyBhcyB0aGUgbGFzdCBzdGVw
LgogICAgICAgICBjb250YWluaW5nQmxvY2tIZWlnaHRWYWx1ZSA9IGxheW91dFN0YXRlLmRpc3Bs
YXlCb3hGb3JMYXlvdXRCb3goKmxheW91dEJveC5jb250YWluaW5nQmxvY2soKSkuaGVpZ2h0KCk7
CiAgICAgfSBlbHNlIHsKLSAgICAgICAgYXV0byBjb21wdXRlZEhlaWdodFZhbHVlRm9yUXVpcmtz
TW9kZSA9IFsmXSgpIC0+IExheW91dFVuaXQgewotICAgICAgICAgICAgLy8gSW4gcXVpcmtzIG1v
ZGUsIHdlIGdvIGFuZCB0cmF2ZXJzIHRoZSBjb250YWluaW5nIGJsb2NrIGNoYWluIHRvIGZpbmQg
YSBibG9jayBsZXZlbCBib3ggd2l0aCBmaXhlZCBoZWlnaHQgdmFsdWUsIGV2ZW4gaWYgaXQgbWVh
bnMgbGVhdmluZwotICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgZm9ybWF0dGluZyBjb250ZXh0
LiBGSVhNRTogc3VyZWx5IHdlIG5lZWQgdG8gZG8gc29tZSB0cmlja3MgaGVyZSB3aGVuIGJsb2Nr
IGRpcmVjdGlvbiBzdXBwb3J0IGlzIGFkZGVkLgotICAgICAgICAgICAgYXV0byogY29udGFpbmlu
Z0Jsb2NrID0gbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpOwotICAgICAgICAgICAgTGF5b3V0
VW5pdCBib2R5QW5kRG9jdW1lbnRWZXJ0aWNhbE1hcmdpbnNQYWRkaW5nc0FuZEJvcmRlcnM7Ci0g
ICAgICAgICAgICB3aGlsZSAoY29udGFpbmluZ0Jsb2NrKSB7Ci0gICAgICAgICAgICAgICAgYXV0
byBjb250YWluaW5nQmxvY2tIZWlnaHQgPSBjb250YWluaW5nQmxvY2stPnN0eWxlKCkubG9naWNh
bEhlaWdodCgpOwotICAgICAgICAgICAgICAgIGlmIChjb250YWluaW5nQmxvY2tIZWlnaHQuaXNG
aXhlZCgpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGFpbmluZ0Jsb2NrSGVpZ2h0
LnZhbHVlKCkgLSBib2R5QW5kRG9jdW1lbnRWZXJ0aWNhbE1hcmdpbnNQYWRkaW5nc0FuZEJvcmRl
cnM7Ci0KLSAgICAgICAgICAgICAgICAvLyBJZiB0aGUgb25seSBmaXhlZCB2YWx1ZSBib3ggd2Ug
ZmluZCBpcyB0aGUgSUNCLCB0aGVuIGlnbm9yZSB0aGUgYm9keSBhbmQgdGhlIGRvY3VtZW50ICh2
ZXJ0aWNhbCkgbWFyZ2luLCBwYWRkaW5nIGFuZCBib3JkZXIuIFNvIG11Y2ggcXVpcmtpbmVzcy4K
LSAgICAgICAgICAgICAgICAvLyAtYW5kIGl0J3MgdG90YWxseSBpbnNhbmUgYmVjYXVzZSBub3cg
d2UgZnJlZWx5IHRyYXZlbCBhY3Jvc3MgZm9ybWF0dGluZyBjb250ZXh0IGJvdW5kYXJpZXMgYW5k
IGNvbXB1dGVkIG1hcmdpbnMgYXJlIG5vbmV4aXN0ZW50LgotICAgICAgICAgICAgICAgIGlmIChj
b250YWluaW5nQmxvY2stPmlzQm9keUJveCgpIHx8IGNvbnRhaW5pbmdCbG9jay0+aXNEb2N1bWVu
dEJveCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBsYXlvdXRT
dGF0ZS5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KCpjb250YWluaW5nQmxvY2spOwotCi0gICAgICAg
ICAgICAgICAgICAgIGF1dG8gdmVydGljYWxNYXJnaW5zID0gY29tcHV0ZWROb25Db2xsYXBzZWRW
ZXJ0aWNhbE1hcmdpblZhbHVlKGxheW91dFN0YXRlLCAqY29udGFpbmluZ0Jsb2NrKTsKLSAgICAg
ICAgICAgICAgICAgICAgYXV0byB2ZXJ0aWNhbFBhZGRpbmdzID0gZGlzcGxheUJveC5wYWRkaW5n
VG9wKCkudmFsdWVfb3IoMCkgKyBkaXNwbGF5Qm94LnBhZGRpbmdCb3R0b20oKS52YWx1ZV9vcigw
KTsKLSAgICAgICAgICAgICAgICAgICAgYXV0byB2ZXJ0aWNhbEJvcmRlcnMgPSBkaXNwbGF5Qm94
LmJvcmRlclRvcCgpICsgZGlzcGxheUJveC5ib3JkZXJCb3R0b20oKTsKLSAgICAgICAgICAgICAg
ICAgICAgYm9keUFuZERvY3VtZW50VmVydGljYWxNYXJnaW5zUGFkZGluZ3NBbmRCb3JkZXJzICs9
IHZlcnRpY2FsTWFyZ2lucy50b3AgKyB2ZXJ0aWNhbE1hcmdpbnMuYm90dG9tICsgdmVydGljYWxQ
YWRkaW5ncyArIHZlcnRpY2FsQm9yZGVyczsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgICAgICBjb250YWluaW5nQmxvY2sgPSBjb250YWluaW5nQmxvY2stPmNvbnRhaW5pbmdCbG9j
aygpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gSW5pdGlhbCBjb250YWluaW5nIGJs
b2NrIGhhcyB0byBoYXZlIGEgaGVpZ2h0LgotICAgICAgICAgICAgcmV0dXJuIGxheW91dFN0YXRl
LmRpc3BsYXlCb3hGb3JMYXlvdXRCb3gobGF5b3V0Qm94LmluaXRpYWxDb250YWluaW5nQmxvY2so
KSkuY29udGVudEJveCgpLmhlaWdodCgpIC0gYm9keUFuZERvY3VtZW50VmVydGljYWxNYXJnaW5z
UGFkZGluZ3NBbmRCb3JkZXJzOwotICAgICAgICB9OwotCiAgICAgICAgIGlmIChsYXlvdXRTdGF0
ZS5pblF1aXJrc01vZGUoKSkKLSAgICAgICAgICAgIGNvbnRhaW5pbmdCbG9ja0hlaWdodFZhbHVl
ID0gY29tcHV0ZWRIZWlnaHRWYWx1ZUZvclF1aXJrc01vZGUoKTsKKyAgICAgICAgICAgIGNvbnRh
aW5pbmdCbG9ja0hlaWdodFZhbHVlID0gRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6aGVpZ2h0
VmFsdWVPZk5lYXJlc3RDb250YWluaW5nQmxvY2tXaXRoRml4ZWRIZWlnaHQobGF5b3V0U3RhdGUs
IGxheW91dEJveCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgYXV0byBjb250YWluaW5n
QmxvY2tIZWlnaHQgPSBsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCktPnN0eWxlKCkubG9naWNh
bEhlaWdodCgpOwogICAgICAgICAgICAgaWYgKGNvbnRhaW5pbmdCbG9ja0hlaWdodC5pc0ZpeGVk
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRR
dWlya3MuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtz
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mN2NiZWVkNjQ4ZWZiNTRiYzNlNWY2MmJjZDdlNzQ5YTM0MmFkNTk0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250
ZXh0UXVpcmtzLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkZvcm1hdHRpbmdDb250ZXh0LmgiCisKKyNpZiBFTkFCTEUoTEFZ
T1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUgIkxheW91dEJveC5oIgorI2luY2x1
ZGUgIkxheW91dENvbnRhaW5lci5oIgorI2luY2x1ZGUgIkxheW91dEZvcm1hdHRpbmdTdGF0ZS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKworTGF5b3V0VW5p
dCBGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpoZWlnaHRWYWx1ZU9mTmVhcmVzdENvbnRhaW5p
bmdCbG9ja1dpdGhGaXhlZEhlaWdodChjb25zdCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNv
bnN0IEJveCYgbGF5b3V0Qm94KQoreworICAgIC8vIEluIHF1aXJrcyBtb2RlLCB3ZSBnbyBhbmQg
dHJhdmVycyB0aGUgY29udGFpbmluZyBibG9jayBjaGFpbiB0byBmaW5kIGEgYmxvY2sgbGV2ZWwg
Ym94IHdpdGggZml4ZWQgaGVpZ2h0IHZhbHVlLCBldmVuIGlmIGl0IG1lYW5zIGxlYXZpbmcKKyAg
ICAvLyB0aGUgY3VycmVudCBmb3JtYXR0aW5nIGNvbnRleHQuIEZJWE1FOiBzdXJlbHkgd2UgbmVl
ZCB0byBkbyBzb21lIHRyaWNrcyBoZXJlIHdoZW4gYmxvY2sgZGlyZWN0aW9uIHN1cHBvcnQgaXMg
YWRkZWQuCisgICAgYXV0byogY29udGFpbmluZ0Jsb2NrID0gbGF5b3V0Qm94LmNvbnRhaW5pbmdC
bG9jaygpOworICAgIExheW91dFVuaXQgYm9keUFuZERvY3VtZW50VmVydGljYWxNYXJnaW5zUGFk
ZGluZ3NBbmRCb3JkZXJzOworICAgIHdoaWxlIChjb250YWluaW5nQmxvY2spIHsKKyAgICAgICAg
YXV0byBjb250YWluaW5nQmxvY2tIZWlnaHQgPSBjb250YWluaW5nQmxvY2stPnN0eWxlKCkubG9n
aWNhbEhlaWdodCgpOworICAgICAgICBpZiAoY29udGFpbmluZ0Jsb2NrSGVpZ2h0LmlzRml4ZWQo
KSkKKyAgICAgICAgICAgIHJldHVybiBjb250YWluaW5nQmxvY2tIZWlnaHQudmFsdWUoKSAtIGJv
ZHlBbmREb2N1bWVudFZlcnRpY2FsTWFyZ2luc1BhZGRpbmdzQW5kQm9yZGVyczsKKworICAgICAg
ICAvLyBJZiB0aGUgb25seSBmaXhlZCB2YWx1ZSBib3ggd2UgZmluZCBpcyB0aGUgSUNCLCB0aGVu
IGlnbm9yZSB0aGUgYm9keSBhbmQgdGhlIGRvY3VtZW50ICh2ZXJ0aWNhbCkgbWFyZ2luLCBwYWRk
aW5nIGFuZCBib3JkZXIuIFNvIG11Y2ggcXVpcmtpbmVzcy4KKyAgICAgICAgLy8gLWFuZCBpdCdz
IHRvdGFsbHkgaW5zYW5lIGJlY2F1c2Ugbm93IHdlIGZyZWVseSB0cmF2ZWwgYWNyb3NzIGZvcm1h
dHRpbmcgY29udGV4dCBib3VuZGFyaWVzIGFuZCBjb21wdXRlZCBtYXJnaW5zIGFyZSBub25leGlz
dGVudC4KKyAgICAgICAgaWYgKGNvbnRhaW5pbmdCbG9jay0+aXNCb2R5Qm94KCkgfHwgY29udGFp
bmluZ0Jsb2NrLT5pc0RvY3VtZW50Qm94KCkpIHsKKyAgICAgICAgICAgIGF1dG8mIGRpc3BsYXlC
b3ggPSBsYXlvdXRTdGF0ZS5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KCpjb250YWluaW5nQmxvY2sp
OworCisgICAgICAgICAgICBhdXRvIHZlcnRpY2FsTWFyZ2lucyA9IEZvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6Y29tcHV0ZWROb25Db2xsYXBzZWRWZXJ0aWNhbE1hcmdpblZhbHVlKGxheW91
dFN0YXRlLCAqY29udGFpbmluZ0Jsb2NrKTsKKyAgICAgICAgICAgIGF1dG8gdmVydGljYWxQYWRk
aW5ncyA9IGRpc3BsYXlCb3gucGFkZGluZ1RvcCgpLnZhbHVlX29yKDApICsgZGlzcGxheUJveC5w
YWRkaW5nQm90dG9tKCkudmFsdWVfb3IoMCk7CisgICAgICAgICAgICBhdXRvIHZlcnRpY2FsQm9y
ZGVycyA9IGRpc3BsYXlCb3guYm9yZGVyVG9wKCkgKyBkaXNwbGF5Qm94LmJvcmRlckJvdHRvbSgp
OworICAgICAgICAgICAgYm9keUFuZERvY3VtZW50VmVydGljYWxNYXJnaW5zUGFkZGluZ3NBbmRC
b3JkZXJzICs9IHZlcnRpY2FsTWFyZ2lucy50b3AgKyB2ZXJ0aWNhbE1hcmdpbnMuYm90dG9tICsg
dmVydGljYWxQYWRkaW5ncyArIHZlcnRpY2FsQm9yZGVyczsKKyAgICAgICAgfQorCisgICAgICAg
IGNvbnRhaW5pbmdCbG9jayA9IGNvbnRhaW5pbmdCbG9jay0+Y29udGFpbmluZ0Jsb2NrKCk7Cisg
ICAgfQorICAgIC8vIEluaXRpYWwgY29udGFpbmluZyBibG9jayBoYXMgdG8gaGF2ZSBhIGhlaWdo
dC4KKyAgICByZXR1cm4gbGF5b3V0U3RhdGUuZGlzcGxheUJveEZvckxheW91dEJveChsYXlvdXRC
b3guaW5pdGlhbENvbnRhaW5pbmdCbG9jaygpKS5jb250ZW50Qm94KCkuaGVpZ2h0KCkgLSBib2R5
QW5kRG9jdW1lbnRWZXJ0aWNhbE1hcmdpbnNQYWRkaW5nc0FuZEJvcmRlcnM7Cit9CisKK30KK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0
aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9j
a2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IGUyYzNkMGJlMTE4OTBl
Mzk4ZDJhYWQ3NmU0MzI2MDFkZjI5NGRkNTIuLmM5NzljOGI5ZTRhNDVhYzc3YzcxZmE2OWE3NTQ0
Y2UyM2QzZjgwZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC0xMDAsNiArMTAw
LDggQEAgcHJpdmF0ZToKIAogICAgICAgICAgICAgc3RhdGljIExheW91dFVuaXQgY29sbGFwc2Vk
TWFyZ2luVG9wRnJvbUZpcnN0Q2hpbGQoY29uc3QgTGF5b3V0U3RhdGUmLCBjb25zdCBCb3gmKTsK
ICAgICAgICAgICAgIHN0YXRpYyBMYXlvdXRVbml0IG5vbkNvbGxhcHNlZE1hcmdpblRvcChjb25z
dCBMYXlvdXRTdGF0ZSYsIGNvbnN0IEJveCYpOworCisgICAgICAgICAgICBzdGF0aWMgYm9vbCBp
c01hcmdpblRvcENvbGxhcHNlZFdpdGhQYXJlbnQoY29uc3QgTGF5b3V0U3RhdGUmLCBjb25zdCBC
b3gmKTsKICAgICAgICAgfTsKIAogICAgICAgICBzdGF0aWMgSGVpZ2h0QW5kTWFyZ2luIGluRmxv
d05vblJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IExheW91dFN0YXRlJiwgY29uc3QgQm94
Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkSGVpZ2h0ID0geyB9KTsKQEAgLTEwNyw2
ICsxMDksMTQgQEAgcHJpdmF0ZToKICAgICAgICAgc3RhdGljIFdpZHRoQW5kTWFyZ2luIGluRmxv
d1JlcGxhY2VkV2lkdGhBbmRNYXJnaW4oY29uc3QgTGF5b3V0U3RhdGUmLCBjb25zdCBCb3gmLCBz
dGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRXaWR0aCA9IHsgfSk7CiAgICAgICAgIHN0YXRp
YyBQb2ludCBzdGF0aWNQb3NpdGlvbkZvck91dE9mRmxvd1Bvc2l0aW9uZWQoY29uc3QgTGF5b3V0
U3RhdGUmLCBjb25zdCBCb3gmKTsKICAgICB9OworCisgICAgY2xhc3MgUXVpcmtzIHsKKyAgICBw
dWJsaWM6CisgICAgICAgIHN0YXRpYyBib29sIGlzU3RyZXRjaGVkVG9Jbml0aWFsQ29udGFpbmlu
Z0Jsb2NrKGNvbnN0IExheW91dFN0YXRlJiwgY29uc3QgQm94Jik7CisgICAgICAgIHN0YXRpYyBI
ZWlnaHRBbmRNYXJnaW4gc3RyZXRjaGVkSGVpZ2h0KGNvbnN0IExheW91dFN0YXRlJiwgY29uc3Qg
Qm94JiwgSGVpZ2h0QW5kTWFyZ2luKTsKKyAgICAgICAgc3RhdGljIFdpZHRoQW5kTWFyZ2luIHN0
cmV0Y2hlZFdpZHRoKGNvbnN0IExheW91dFN0YXRlJiwgY29uc3QgQm94JiwgV2lkdGhBbmRNYXJn
aW4pOworICAgICAgICBzdGF0aWMgYm9vbCBzaG91bGRJZ25vcmVNYXJnaW5Ub3AoY29uc3QgTGF5
b3V0U3RhdGUmLCBjb25zdCBCb3gmKTsKKyAgICB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0
R2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9j
a0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCmluZGV4IGQ1OTk4MjU0OGU4OTUyOTMxYWYw
ZTA5ZWUyYjU2ZjZkOTUzZjJhYjkuLjAwYjVjOTQ3NmQxN2YyNTgzNGMyZjhmYzVhYjM4ZjJjMWQz
OTFlODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcv
QmxvY2tGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAK
QEAgLTM3LDUxICszNyw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0
IHsKIAotc3RhdGljIGNvbnN0IENvbnRhaW5lciYgaW5pdGlhbENvbnRhaW5pbmdCbG9jayhjb25z
dCBCb3gmIGxheW91dEJveCkKLXsKLSAgICBhdXRvKiBjb250YWluaW5nQmxvY2sgPSBsYXlvdXRC
b3guY29udGFpbmluZ0Jsb2NrKCk7Ci0gICAgd2hpbGUgKGNvbnRhaW5pbmdCbG9jay0+Y29udGFp
bmluZ0Jsb2NrKCkpCi0gICAgICAgIGNvbnRhaW5pbmdCbG9jayA9IGNvbnRhaW5pbmdCbG9jay0+
Y29udGFpbmluZ0Jsb2NrKCk7Ci0gICAgcmV0dXJuICpjb250YWluaW5nQmxvY2s7Ci19Ci0KLXN0
YXRpYyBib29sIGlzU3RyZXRjaGVkVG9Jbml0aWFsQ29udGFpbmluZ0Jsb2NrKGNvbnN0IExheW91
dFN0YXRlJiBsYXlvdXRTdGF0ZSwgY29uc3QgQm94JiBsYXlvdXRCb3gpCi17Ci0gICAgQVNTRVJU
KGxheW91dEJveC5pc0luRmxvdygpKTsKLSAgICAvLyBJbiBxdWlya3MgbW9kZSwgYm9keSBhbmQg
aHRtbCBzdHJldGNoIHRvIHRoZSB2aWV3cG9ydC4KLSAgICBpZiAoIWxheW91dFN0YXRlLmluUXVp
cmtzTW9kZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWxheW91dEJveC5p
c0RvY3VtZW50Qm94KCkgJiYgIWxheW91dEJveC5pc0JvZHlCb3goKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgcmV0dXJuIGxheW91dEJveC5zdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKS5p
c0F1dG8oKTsKLX0KLQotc3RhdGljIEhlaWdodEFuZE1hcmdpbiBzdHJldGNoSGVpZ2h0VG9Jbml0
aWFsQ29udGFpbmluZ0Jsb2NrUXVpcmsoSGVpZ2h0QW5kTWFyZ2luIGhlaWdodEFuZE1hcmdpbiwg
TGF5b3V0VW5pdCBpbml0aWFsQ29udGFpbmluZ0Jsb2NrSGVpZ2h0KQotewotICAgIC8vIFRoaXMg
cXVpcmsgaGFwcGVucyB3aGVuIHRoZSBib2R5IGhlaWdodCBpcyAwIHdoaWNoIG1lYW5zIGl0cyB2
ZXJ0aWNhbCBtYXJnaW5zIGNvbGxhcHNlIHRocm91Z2ggKHRvcCBhbmQgYm90dG9tIG1hcmdpbnMg
YXJlIGFkam9pbmluZykuCi0gICAgLy8gSG93ZXZlciBub3cgdGhhdCB3ZSBzdHJldGNoIHRoZSBi
b2R5IHRoZXkgZG9uJ3QgY29sbGFwc2UgdGhyb3VnaCBhbnltb3JlLCBzbyB3ZSBuZWVkIHRvIHVz
ZSB0aGUgbm9uLWNvbGxhcHNlZCB2YWx1ZXMgaW5zdGVhZC4KLSAgICBBU1NFUlQoaW5pdGlhbENv
bnRhaW5pbmdCbG9ja0hlaWdodCk7Ci0gICAgYXV0byB2ZXJ0aWNhbE1hcmdpbnMgPSBoZWlnaHRB
bmRNYXJnaW4uaGVpZ2h0ID8gaGVpZ2h0QW5kTWFyZ2luLnVzZWRNYXJnaW5WYWx1ZXMoKSA6IGhl
aWdodEFuZE1hcmdpbi5tYXJnaW47Ci0gICAgYXV0byB0b3RhbFZlcnRpY2FsTWFyZ2lucyA9IHZl
cnRpY2FsTWFyZ2lucy50b3AgKyB2ZXJ0aWNhbE1hcmdpbnMuYm90dG9tOwotICAgIC8vIFN0cmV0
Y2ggYnV0IG5ldmVyIG92ZXJzdHJldGNoIHdpdGggdGhlIG1hcmdpbnMuCi0gICAgaWYgKGhlaWdo
dEFuZE1hcmdpbi5oZWlnaHQgKyB0b3RhbFZlcnRpY2FsTWFyZ2lucyA8IGluaXRpYWxDb250YWlu
aW5nQmxvY2tIZWlnaHQpCi0gICAgICAgIGhlaWdodEFuZE1hcmdpbi5oZWlnaHQgPSBpbml0aWFs
Q29udGFpbmluZ0Jsb2NrSGVpZ2h0IC0gdG90YWxWZXJ0aWNhbE1hcmdpbnM7Ci0KLSAgICByZXR1
cm4gaGVpZ2h0QW5kTWFyZ2luOwotfQotCi1zdGF0aWMgV2lkdGhBbmRNYXJnaW4gc3RyZXRjaFdp
ZHRoVG9Jbml0aWFsQ29udGFpbmluZ0Jsb2NrKFdpZHRoQW5kTWFyZ2luIHdpZHRoQW5kTWFyZ2lu
LCBMYXlvdXRVbml0IGluaXRpYWxDb250YWluaW5nQmxvY2tXaWR0aCkKLXsKLSAgICBhdXRvIGhv
cml6b250YWxNYXJnaW5zID0gd2lkdGhBbmRNYXJnaW4ubWFyZ2luLmxlZnQgKyB3aWR0aEFuZE1h
cmdpbi5tYXJnaW4ucmlnaHQ7Ci0gICAgLy8gU3RyZXRjaCBidXQgbmV2ZXIgb3ZlcnN0cmV0Y2gg
d2l0aCB0aGUgbWFyZ2lucy4KLSAgICBpZiAod2lkdGhBbmRNYXJnaW4ud2lkdGggKyBob3Jpem9u
dGFsTWFyZ2lucyA8IGluaXRpYWxDb250YWluaW5nQmxvY2tXaWR0aCkKLSAgICAgICAgd2lkdGhB
bmRNYXJnaW4ud2lkdGggPSBpbml0aWFsQ29udGFpbmluZ0Jsb2NrV2lkdGggLSBob3Jpem9udGFs
TWFyZ2luczsKLQotICAgIHJldHVybiB3aWR0aEFuZE1hcmdpbjsKLX0KLQogSGVpZ2h0QW5kTWFy
Z2luIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dOb25SZXBsYWNlZEhl
aWdodEFuZE1hcmdpbihjb25zdCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IEJveCYg
bGF5b3V0Qm94LCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRIZWlnaHQpCiB7CiAgICAg
QVNTRVJUKGxheW91dEJveC5pc0luRmxvdygpICYmICFsYXlvdXRCb3gucmVwbGFjZWQoKSk7CkBA
IC0yNDAsMTMgKzE5NSwxMiBAQCBXaWR0aEFuZE1hcmdpbiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6aW5GbG93Tm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbgogICAgIH07CiAKICAg
ICBhdXRvIHdpZHRoQW5kTWFyZ2luID0gY29tcHV0ZSgpOwotICAgIGlmICghaXNTdHJldGNoZWRU
b0luaXRpYWxDb250YWluaW5nQmxvY2sobGF5b3V0U3RhdGUsIGxheW91dEJveCkpIHsKKyAgICBp
ZiAoIVF1aXJrczo6aXNTdHJldGNoZWRUb0luaXRpYWxDb250YWluaW5nQmxvY2sobGF5b3V0U3Rh
dGUsIGxheW91dEJveCkpIHsKICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250
ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIltXaWR0aF1bTWFyZ2luXSAtPiBpbmZsb3cgbm9uLXJlcGxh
Y2VkIC0+IHdpZHRoKCIgPDwgd2lkdGhBbmRNYXJnaW4ud2lkdGggPDwgInB4KSBtYXJnaW4oIiA8
PCB3aWR0aEFuZE1hcmdpbi5tYXJnaW4ubGVmdCA8PCAicHgsICIgPDwgd2lkdGhBbmRNYXJnaW4u
bWFyZ2luLnJpZ2h0IDw8ICJweCkgLT4gbGF5b3V0Qm94KCIgPDwgJmxheW91dEJveCA8PCAiKSIp
OwogICAgICAgICByZXR1cm4gd2lkdGhBbmRNYXJnaW47CiAgICAgfQogCi0gICAgYXV0byBpbml0
aWFsQ29udGFpbmluZ0Jsb2NrV2lkdGggPSBsYXlvdXRTdGF0ZS5kaXNwbGF5Qm94Rm9yTGF5b3V0
Qm94KGluaXRpYWxDb250YWluaW5nQmxvY2sobGF5b3V0Qm94KSkuY29udGVudEJveFdpZHRoKCk7
Ci0gICAgd2lkdGhBbmRNYXJnaW4gPSBzdHJldGNoV2lkdGhUb0luaXRpYWxDb250YWluaW5nQmxv
Y2sod2lkdGhBbmRNYXJnaW4sIGluaXRpYWxDb250YWluaW5nQmxvY2tXaWR0aCk7CisgICAgd2lk
dGhBbmRNYXJnaW4gPSBRdWlya3M6OnN0cmV0Y2hlZFdpZHRoKGxheW91dFN0YXRlLCBsYXlvdXRC
b3gsIHdpZHRoQW5kTWFyZ2luKTsKIAogICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29u
dGV4dExheW91dCwgc3RyZWFtIDw8ICJbV2lkdGhdW01hcmdpbl0gLT4gaW5mbG93IG5vbi1yZXBs
YWNlZCAtPiBzdHJlY2hlZCB0byB2aWV3cG9ydC0+IHdpZHRoKCIgPDwgd2lkdGhBbmRNYXJnaW4u
d2lkdGggPDwgInB4KSBtYXJnaW4oIiA8PCB3aWR0aEFuZE1hcmdpbi5tYXJnaW4ubGVmdCA8PCAi
cHgsICIgPDwgd2lkdGhBbmRNYXJnaW4ubWFyZ2luLnJpZ2h0IDw8ICJweCkgLT4gbGF5b3V0Qm94
KCIgPDwgJmxheW91dEJveCA8PCAiKSIpOwogICAgIHJldHVybiB3aWR0aEFuZE1hcmdpbjsKQEAg
LTMxMCwxMSArMjY0LDEwIEBAIEhlaWdodEFuZE1hcmdpbiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6aW5GbG93SGVpZ2h0QW5kTWFyZ2luKGNvbnN0IExhCiAgICAgICAgIGhlaWdo
dEFuZE1hcmdpbiA9IGNvbXBsaWNhdGVkQ2FzZXMobGF5b3V0U3RhdGUsIGxheW91dEJveCwgdXNl
ZEhlaWdodCk7CiAgICAgfQogCi0gICAgaWYgKCFpc1N0cmV0Y2hlZFRvSW5pdGlhbENvbnRhaW5p
bmdCbG9jayhsYXlvdXRTdGF0ZSwgbGF5b3V0Qm94KSkKKyAgICBpZiAoIVF1aXJrczo6aXNTdHJl
dGNoZWRUb0luaXRpYWxDb250YWluaW5nQmxvY2sobGF5b3V0U3RhdGUsIGxheW91dEJveCkpCiAg
ICAgICAgIHJldHVybiBoZWlnaHRBbmRNYXJnaW47CiAKLSAgICBhdXRvIGluaXRpYWxDb250YWlu
aW5nQmxvY2tIZWlnaHQgPSBsYXlvdXRTdGF0ZS5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KGluaXRp
YWxDb250YWluaW5nQmxvY2sobGF5b3V0Qm94KSkuY29udGVudEJveEhlaWdodCgpOwotICAgIGhl
aWdodEFuZE1hcmdpbiA9IHN0cmV0Y2hIZWlnaHRUb0luaXRpYWxDb250YWluaW5nQmxvY2tRdWly
ayhoZWlnaHRBbmRNYXJnaW4sIGluaXRpYWxDb250YWluaW5nQmxvY2tIZWlnaHQpOworICAgIGhl
aWdodEFuZE1hcmdpbiA9IFF1aXJrczo6c3RyZXRjaGVkSGVpZ2h0KGxheW91dFN0YXRlLCBsYXlv
dXRCb3gsIGhlaWdodEFuZE1hcmdpbik7CiAKICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGlu
Z0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiW0hlaWdodF1bTWFyZ2luXSAtPiBpbmZsb3cgbm9u
LXJlcGxhY2VkIC0+IHN0cmVjaGVkIHRvIHZpZXdwb3J0IC0+IGhlaWdodCgiIDw8IGhlaWdodEFu
ZE1hcmdpbi5oZWlnaHQgPDwgInB4KSBtYXJnaW4oIiA8PCBoZWlnaHRBbmRNYXJnaW4ubWFyZ2lu
LnRvcCA8PCAicHgsICIgPDwgaGVpZ2h0QW5kTWFyZ2luLm1hcmdpbi5ib3R0b20gPDwgInB4KSAt
PiBsYXlvdXRCb3goIiA8PCAmbGF5b3V0Qm94IDw8ICIpIik7CiAgICAgcmV0dXJuIGhlaWdodEFu
ZE1hcmdpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRp
bmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ4NDA4YTgxMDI5MmFlMDA3MjEzYjg1YTk0NTYxYTVhZTZhZmU2MTQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9y
bWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCkBAIC0wLDAgKzEsMTA2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkJsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCIK
KworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCisjaW5jbHVkZSAiTGF5
b3V0Qm94LmgiCisjaW5jbHVkZSAiTGF5b3V0Q29udGFpbmVyLmgiCisjaW5jbHVkZSAiTGF5b3V0
Rm9ybWF0dGluZ1N0YXRlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBMYXlv
dXQgeworCitzdGF0aWMgY29uc3QgQ29udGFpbmVyJiBpbml0aWFsQ29udGFpbmluZ0Jsb2NrKGNv
bnN0IEJveCYgbGF5b3V0Qm94KQoreworICAgIGF1dG8qIGNvbnRhaW5pbmdCbG9jayA9IGxheW91
dEJveC5jb250YWluaW5nQmxvY2soKTsKKyAgICB3aGlsZSAoY29udGFpbmluZ0Jsb2NrLT5jb250
YWluaW5nQmxvY2soKSkKKyAgICAgICAgY29udGFpbmluZ0Jsb2NrID0gY29udGFpbmluZ0Jsb2Nr
LT5jb250YWluaW5nQmxvY2soKTsKKyAgICByZXR1cm4gKmNvbnRhaW5pbmdCbG9jazsKK30KKwor
c3RhdGljIGJvb2wgaXNRdWlya0NvbnRhaW5lcihjb25zdCBCb3gmIGxheW91dEJveCkKK3sKKyAg
ICByZXR1cm4gbGF5b3V0Qm94LmlzQm9keUJveCgpIHx8IGxheW91dEJveC5pc0RvY3VtZW50Qm94
KCkgfHwgbGF5b3V0Qm94LmlzVGFibGVDZWxsKCk7Cit9CisKK3N0YXRpYyBib29sIGhhc01hcmdp
blRvcFF1aXJrVmFsdWUoY29uc3QgQm94JiBsYXlvdXRCb3gpCit7CisgICAgcmV0dXJuIGxheW91
dEJveC5zdHlsZSgpLmhhc01hcmdpbkJlZm9yZVF1aXJrKCk7Cit9CisKK2Jvb2wgQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDo6UXVpcmtzOjppc1N0cmV0Y2hlZFRvSW5pdGlhbENvbnRhaW5pbmdCbG9j
ayhjb25zdCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IEJveCYgbGF5b3V0Qm94KQor
eworICAgIEFTU0VSVChsYXlvdXRCb3guaXNJbkZsb3coKSk7CisgICAgLy8gSW4gcXVpcmtzIG1v
ZGUsIGJvZHkgYW5kIGh0bWwgc3RyZXRjaCB0byB0aGUgdmlld3BvcnQuCisgICAgaWYgKCFsYXlv
dXRTdGF0ZS5pblF1aXJrc01vZGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYg
KCFsYXlvdXRCb3guaXNEb2N1bWVudEJveCgpICYmICFsYXlvdXRCb3guaXNCb2R5Qm94KCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBsYXlvdXRCb3guc3R5bGUoKS5sb2dp
Y2FsSGVpZ2h0KCkuaXNBdXRvKCk7Cit9CisKK0hlaWdodEFuZE1hcmdpbiBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0OjpRdWlya3M6OnN0cmV0Y2hlZEhlaWdodChjb25zdCBMYXlvdXRTdGF0ZSYgbGF5
b3V0U3RhdGUsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBIZWlnaHRBbmRNYXJnaW4gaGVpZ2h0QW5k
TWFyZ2luKQoreworICAgIGF1dG8gaW5pdGlhbENvbnRhaW5pbmdCbG9ja0hlaWdodCA9IGxheW91
dFN0YXRlLmRpc3BsYXlCb3hGb3JMYXlvdXRCb3goaW5pdGlhbENvbnRhaW5pbmdCbG9jayhsYXlv
dXRCb3gpKS5jb250ZW50Qm94SGVpZ2h0KCk7CisgICAgLy8gVGhpcyBxdWlyayBoYXBwZW5zIHdo
ZW4gdGhlIGJvZHkgaGVpZ2h0IGlzIDAgd2hpY2ggbWVhbnMgaXRzIHZlcnRpY2FsIG1hcmdpbnMg
Y29sbGFwc2UgdGhyb3VnaCAodG9wIGFuZCBib3R0b20gbWFyZ2lucyBhcmUgYWRqb2luaW5nKS4K
KyAgICAvLyBIb3dldmVyIG5vdyB0aGF0IHdlIHN0cmV0Y2ggdGhlIGJvZHkgdGhleSBkb24ndCBj
b2xsYXBzZSB0aHJvdWdoIGFueW1vcmUsIHNvIHdlIG5lZWQgdG8gdXNlIHRoZSBub24tY29sbGFw
c2VkIHZhbHVlcyBpbnN0ZWFkLgorICAgIEFTU0VSVChpbml0aWFsQ29udGFpbmluZ0Jsb2NrSGVp
Z2h0KTsKKyAgICBhdXRvIHZlcnRpY2FsTWFyZ2lucyA9IGhlaWdodEFuZE1hcmdpbi5oZWlnaHQg
PyBoZWlnaHRBbmRNYXJnaW4udXNlZE1hcmdpblZhbHVlcygpIDogaGVpZ2h0QW5kTWFyZ2luLm1h
cmdpbjsKKyAgICBhdXRvIHRvdGFsVmVydGljYWxNYXJnaW5zID0gdmVydGljYWxNYXJnaW5zLnRv
cCArIHZlcnRpY2FsTWFyZ2lucy5ib3R0b207CisgICAgLy8gU3RyZXRjaCBidXQgbmV2ZXIgb3Zl
cnN0cmV0Y2ggd2l0aCB0aGUgbWFyZ2lucy4KKyAgICBpZiAoaGVpZ2h0QW5kTWFyZ2luLmhlaWdo
dCArIHRvdGFsVmVydGljYWxNYXJnaW5zIDwgaW5pdGlhbENvbnRhaW5pbmdCbG9ja0hlaWdodCkK
KyAgICAgICAgaGVpZ2h0QW5kTWFyZ2luLmhlaWdodCA9IGluaXRpYWxDb250YWluaW5nQmxvY2tI
ZWlnaHQgLSB0b3RhbFZlcnRpY2FsTWFyZ2luczsKKworICAgIHJldHVybiBoZWlnaHRBbmRNYXJn
aW47Cit9CisKK1dpZHRoQW5kTWFyZ2luIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6
c3RyZXRjaGVkV2lkdGgoY29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBjb25zdCBCb3gm
IGxheW91dEJveCwgV2lkdGhBbmRNYXJnaW4gd2lkdGhBbmRNYXJnaW4pCit7CisgICAgYXV0byBp
bml0aWFsQ29udGFpbmluZ0Jsb2NrV2lkdGggPSBsYXlvdXRTdGF0ZS5kaXNwbGF5Qm94Rm9yTGF5
b3V0Qm94KGluaXRpYWxDb250YWluaW5nQmxvY2sobGF5b3V0Qm94KSkuY29udGVudEJveFdpZHRo
KCk7CisgICAgYXV0byBob3Jpem9udGFsTWFyZ2lucyA9IHdpZHRoQW5kTWFyZ2luLm1hcmdpbi5s
ZWZ0ICsgd2lkdGhBbmRNYXJnaW4ubWFyZ2luLnJpZ2h0OworICAgIC8vIFN0cmV0Y2ggYnV0IG5l
dmVyIG92ZXJzdHJldGNoIHdpdGggdGhlIG1hcmdpbnMuCisgICAgaWYgKHdpZHRoQW5kTWFyZ2lu
LndpZHRoICsgaG9yaXpvbnRhbE1hcmdpbnMgPCBpbml0aWFsQ29udGFpbmluZ0Jsb2NrV2lkdGgp
CisgICAgICAgIHdpZHRoQW5kTWFyZ2luLndpZHRoID0gaW5pdGlhbENvbnRhaW5pbmdCbG9ja1dp
ZHRoIC0gaG9yaXpvbnRhbE1hcmdpbnM7CisKKyAgICByZXR1cm4gd2lkdGhBbmRNYXJnaW47Cit9
CisKK2Jvb2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpzaG91bGRJZ25vcmVNYXJn
aW5Ub3AoY29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBjb25zdCBCb3gmIGxheW91dEJv
eCkKK3sKKyAgICBpZiAoIWxheW91dEJveC5wYXJlbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgcmV0dXJuIGxheW91dFN0YXRlLmluUXVpcmtzTW9kZSgpICYmIGlzUXVpcmtDb250
YWluZXIoKmxheW91dEJveC5wYXJlbnQoKSkgJiYgaGFzTWFyZ2luVG9wUXVpcmtWYWx1ZShsYXlv
dXRCb3gpOworfQorCit9Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmNwcApp
bmRleCA4YzMwMDc3N2MzN2Y3ZmIzN2E2Yjg0MzE1MDgyNzk5MzRjZmU3YmVlLi44OGNmNTVjZWI1
NTg0ZDFjNjNjYWRjNTE5NGFlNjQxNTE2NGU2MWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRl
LmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NP
TlRFWFQpCiAKLSNpbmNsdWRlICJGb3JtYXR0aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIkJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJMYXlvdXRCb3guaCIKICNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAppbmRleCAy
N2RkMzVhN2IzODU1MDkzZjgwZjUzZDRmMWEyOGJjY2ViZDI3M2NhLi45ODA5OWI4MjIyM2Q0ODdj
NDFjNTdiMmZlMjFkMmFhNDEyYmI2YTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKQEAg
LTM2LDIzICszNiw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsK
IAotc3RhdGljIGJvb2wgaXNRdWlya0NvbnRhaW5lcihjb25zdCBCb3gmIGxheW91dEJveCkKLXsK
LSAgICByZXR1cm4gbGF5b3V0Qm94LmlzQm9keUJveCgpIHx8IGxheW91dEJveC5pc0RvY3VtZW50
Qm94KCkgfHwgbGF5b3V0Qm94LmlzVGFibGVDZWxsKCk7Ci19Ci0KLXN0YXRpYyBib29sIGhhc01h
cmdpblRvcFF1aXJrVmFsdWUoY29uc3QgQm94JiBsYXlvdXRCb3gpCi17Ci0gICAgcmV0dXJuIGxh
eW91dEJveC5zdHlsZSgpLmhhc01hcmdpbkJlZm9yZVF1aXJrKCk7Ci19Ci0KLXN0YXRpYyBib29s
IHNob3VsZElnbm9yZU1hcmdpblRvcEluUXVpcmtDb250ZXh0KGNvbnN0IExheW91dFN0YXRlJiBs
YXlvdXRTdGF0ZSwgY29uc3QgQm94JiBsYXlvdXRCb3gpCi17Ci0gICAgaWYgKCFsYXlvdXRCb3gu
cGFyZW50KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gbGF5b3V0U3RhdGUu
aW5RdWlya3NNb2RlKCkgJiYgaXNRdWlya0NvbnRhaW5lcigqbGF5b3V0Qm94LnBhcmVudCgpKSAm
JiBoYXNNYXJnaW5Ub3BRdWlya1ZhbHVlKGxheW91dEJveCk7Ci19Ci0KIHN0YXRpYyBMYXlvdXRV
bml0IG1hcmdpblZhbHVlKExheW91dFVuaXQgY3VycmVudE1hcmdpblZhbHVlLCBMYXlvdXRVbml0
IGNhbmRpZGF0ZU1hcmdpblZhbHVlKQogewogICAgIGlmICghY2FuZGlkYXRlTWFyZ2luVmFsdWUp
CkBAIC05OSw3ICs4Miw3IEBAIHN0YXRpYyBib29sIGlzTWFyZ2luQm90dG9tQ29sbGFwc2VkV2l0
aFNpYmxpbmcoY29uc3QgQm94JiBsYXlvdXRCb3gpCiAgICAgcmV0dXJuIGxheW91dEJveC5zdHls
ZSgpLmJvdHRvbSgpLmlzQXV0bygpOwogfQogCi1zdGF0aWMgYm9vbCBpc01hcmdpblRvcENvbGxh
cHNlZFdpdGhQYXJlbnQoY29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBjb25zdCBCb3gm
IGxheW91dEJveCkKK2Jvb2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Ok1hcmdp
bkNvbGxhcHNlOjppc01hcmdpblRvcENvbGxhcHNlZFdpdGhQYXJlbnQoY29uc3QgTGF5b3V0U3Rh
dGUmIGxheW91dFN0YXRlLCBjb25zdCBCb3gmIGxheW91dEJveCkKIHsKICAgICAvLyBUaGUgZmly
c3QgaW5mbG93IGNoaWxkIGNvdWxkIHByb3BhZ2F0ZSBpdHMgdG9wIG1hcmdpbiB0byBwYXJlbnQu
CiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL0NTUzIxL2JveC5odG1sI2NvbGxhcHNpbmct
bWFyZ2lucwpAQCAtMTMyLDcgKzExNSw3IEBAIHN0YXRpYyBib29sIGlzTWFyZ2luVG9wQ29sbGFw
c2VkV2l0aFBhcmVudChjb25zdCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0CiAgICAg
aWYgKHBhcmVudERpc3BsYXlCb3gucGFkZGluZ1RvcCgpLnZhbHVlX29yKDApKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoc2hvdWxkSWdub3JlTWFyZ2luVG9wSW5RdWlya0NvbnRl
eHQobGF5b3V0U3RhdGUsIGxheW91dEJveCkpCisgICAgaWYgKEJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQ6OlF1aXJrczo6c2hvdWxkSWdub3JlTWFyZ2luVG9wKGxheW91dFN0YXRlLCBsYXlvdXRCb3gp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIzMiw3ICsy
MTUsNyBAQCBMYXlvdXRVbml0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpNYXJn
aW5Db2xsYXBzZTo6bWFyZ2luVG9wKGNvbnN0IExheQogICAgICAgICByZXR1cm4gMDsKIAogICAg
IC8vIEZJWE1FOiBGaW5kIG91dCB0aGUgbG9naWMgYmVoaW5kIHRoaXMuCi0gICAgaWYgKHNob3Vs
ZElnbm9yZU1hcmdpblRvcEluUXVpcmtDb250ZXh0KGxheW91dFN0YXRlLCBsYXlvdXRCb3gpKQor
ICAgIGlmIChCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OnNob3VsZElnbm9yZU1hcmdp
blRvcChsYXlvdXRTdGF0ZSwgbGF5b3V0Qm94KSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBp
ZiAoIWlzTWFyZ2luVG9wQ29sbGFwc2VkV2l0aFNpYmxpbmcobGF5b3V0Qm94KSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGJmODBiYzM2MjE0Njk0NWRmY2VkZWE3
NTQ5ZjBmNWI3YmVkYzg0YjYuLjM5ODQxY2VhOTUyNTZhNzBiMmIwNWI3NWViYWVkMjI4ODc5Y2Iy
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lu
bGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogCisjaW5jbHVkZSAi
RmxvYXRpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiRmxvYXRpbmdTdGF0ZS5oIgogI2luY2x1ZGUg
IklubGluZUZvcm1hdHRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIklubGluZUxpbmVCcmVha2VyLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0
L1RleHRVdGlsLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0
L1RleHRVdGlsLmgKaW5kZXggMDhlOTU3NjQxYjRkMWRiMDcyMTFjNGVhM2UzNTJiYjU0ODBkOTQ4
Ny4uODg4ZDVlM2IyMmIwM2Y5YTRiNzg3MzNjOGIyMTk0NzY1NmVlYjgxNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvdGV4dC9UZXh0VXRpbC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL3RleHQvVGV4dFV0aWwu
aApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhU
KQogCiAjaW5jbHVkZSAiSW5saW5lSXRlbS5oIgorI2luY2x1ZGUgIklubGluZVJ1blByb3ZpZGVy
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewo=
</data>
<flag name="review"
          id="373038"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>