<?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>185811</bug_id>
          
          <creation_ts>2018-05-20 22:01:24 -0700</creation_ts>
          <short_desc>[LFC] Add FormattingContext::validateGeometryConstraintsAfterLayout</short_desc>
          <delta_ts>2018-05-21 18:44:43 -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>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</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>1425574</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-05-20 22:01:24 -0700</bug_when>
    <thetext>to verify layout correctness</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425575</commentid>
    <comment_count>1</comment_count>
      <attachid>340824</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-05-20 22:07:06 -0700</bug_when>
    <thetext>Created attachment 340824
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425994</commentid>
    <comment_count>2</comment_count>
      <attachid>340824</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-21 18:42:05 -0700</bug_when>
    <thetext>Comment on attachment 340824
Patch

Clearing flags on attachment: 340824

Committed r232042: &lt;https://trac.webkit.org/changeset/232042&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425995</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-21 18:42:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425997</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-21 18:44:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/40438033&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>340824</attachid>
            <date>2018-05-20 22:07:06 -0700</date>
            <delta_ts>2018-05-21 18:42:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185811-20180520220705.patch</filename>
            <type>text/plain</type>
            <size>19728</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxOTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJmOTM0NTA5NmQ3MWRl
MDU5YzYwZGUwYWIxODI3Yzg3YTU4ZTdkZi4uZDM4N2E3ZTBhMmI4ZGMyMjgyYThhNjAxOGM5ZTcy
NjExMGIzZGVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE4LTA1LTIwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gQWRkIEZvcm1hdHRp
bmdDb250ZXh0Ojp2YWxpZGF0ZUdlb21ldHJ5Q29uc3RyYWludHNBZnRlckxheW91dAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1ODExCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxzbyBpbXBsZW1lbnQg
TGF5b3V0RGVzY2VuZGFudEl0ZXJhdG9yIGFuZCBmaXggTGF5b3V0SXRlcmF0b3IuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbGF5b3V0
L0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0
dGluZ0NvbnRleHQ6OnZhbGlkYXRlR2VvbWV0cnlDb25zdHJhaW50c0FmdGVyTGF5b3V0IGNvbnN0
KToKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBsYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXQgY29uc3QpOgor
ICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dERlc2NlbmRhbnRJdGVyYXRvci5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0RGVzY2VuZGFudEl0ZXJhdG9y
PFQ+OjpMYXlvdXREZXNjZW5kYW50SXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpMYXlvdXREZXNjZW5kYW50SXRlcmF0b3I8VD46Om9wZXJhdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6TGF5b3V0RGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPjo6TGF5b3V0RGVz
Y2VuZGFudEl0ZXJhdG9yQWRhcHRlcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91
dERlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8VD46OmJlZ2luKToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6TGF5b3V0RGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPjo6ZW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0RGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPjo6
YXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpkZXNjZW5kYW50c09mVHlwZSk6CisgICAg
ICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6TGF5b3V0Qm94VHJhdmVyc2FsOjpmaXJzdENoaWxkKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGF5b3V0Qm94VHJhdmVyc2FsOjpuZXh0QW5jZXN0b3JTaWJsaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Qm94VHJhdmVyc2FsOjpuZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Qm94VHJhdmVyc2FsOjpuZXh0U2tpcHBpbmdD
aGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRyYXZlcnNhbDo6Zmlyc3RDaGls
ZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRyYXZlcnNhbDo6bmV4dFNpYmxpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUcmF2ZXJzYWw6OnByZXZpb3VzU2libGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRyYXZlcnNhbDo6ZmluZEFuY2VzdG9yT2ZUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VHJhdmVyc2FsOjpmaXJzdFdpdGhpbik6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRyYXZlcnNhbDo6bmV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkxheW91dEl0ZXJhdG9yPFQ+Ojp0cmF2ZXJzZVByZXZpb3VzU2libGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dEl0ZXJhdG9yPFQ+Ojp0cmF2ZXJzZUFuY2Vz
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VHJhdmVyc2FsOjpuZXh0QW5jZXN0b3JT
aWJsaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VHJhdmVyc2FsOjpu
ZXh0V2l0aGluKTogRGVsZXRlZC4KKwogMjAxOC0wNS0xOCAgWmFsYW4gQnVqdGFzICA8emFsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIEltcGxlbWVudCBoZWlnaHQgY29tcHV0YXRpb24g
Zm9yIG5vbi1yZXBsYWNlZCBmbG9hdGluZyBlbGVtZW50cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiNTEwNGQxZDRhNzFjMzg5
M2MzNWU5ZDYwZDUzNzk3YTgzNDFmY2IwLi44NTE0YzNmYjg2ZDYwOWNmODFiMjQ1NWZmYWQ3MTNm
ZTE0ZWQxMDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC01Nzc2LDYgKzU3NzYsNyBAQAogCQkxMTk5RkE1MjIwOEUzOEQzMDAy
MzU4Q0MgLyogTGF5b3V0SW5saW5lQm94LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheW91dElu
bGluZUJveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExOTlGQTU5MjA4RTND
N0YwMDIzNThDQyAvKiBEaXNwbGF5Qm94LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlCb3guaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTE5OUZBNUEyMDhFM0M3RjAwMjM1OENDIC8q
IERpc3BsYXlCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheUJveC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTExQjA0MkZCMjBCMEUyMTQwMDgyOEE2QiAvKiBMYXlv
dXREZXNjZW5kYW50SXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TGF5b3V0RGVzY2VuZGFudEl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTExQzVGMTE2MjAwM0U3NzUwMDAxQUU2MCAvKiBSZW5kZXJUcmVlQnVpbGRlcklubGluZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRlcklu
bGluZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExQzVGMTE4MjAwM0U3NzYw
MDAxQUU2MCAvKiBSZW5kZXJUcmVlQnVpbGRlcklubGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRlcklubGluZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxMUM1RjExRDIwMDNGNjlFMDAwMUFFNjAgLyogUmVuZGVyVHJlZUJ1aWxk
ZXJCbG9ja0Zsb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVHJl
ZUJ1aWxkZXJCbG9ja0Zsb3cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1Njk3
LDYgKzE1Njk4LDcgQEAKIAkJCQkxMTEwMEZDOTIwOTI3Q0JDMDA4MUFBNkMgLyogTGF5b3V0Q2hp
bGRJdGVyYXRvci5oICovLAogCQkJCTExOTlGQTQ1MjA4RTM1QTMwMDIzNThDQyAvKiBMYXlvdXRD
b250YWluZXIuY3BwICovLAogCQkJCTExOTlGQTQ0MjA4RTM1QTMwMDIzNThDQyAvKiBMYXlvdXRD
b250YWluZXIuaCAqLywKKwkJCQkxMUIwNDJGQjIwQjBFMjE0MDA4MjhBNkIgLyogTGF5b3V0RGVz
Y2VuZGFudEl0ZXJhdG9yLmggKi8sCiAJCQkJMTE5OUZBNTIyMDhFMzhEMzAwMjM1OENDIC8qIExh
eW91dElubGluZUJveC5jcHAgKi8sCiAJCQkJMTE5OUZBNTEyMDhFMzhEMzAwMjM1OENDIC8qIExh
eW91dElubGluZUJveC5oICovLAogCQkJCTExOTlGQTRFMjA4RTM4OTkwMDIzNThDQyAvKiBMYXlv
dXRJbmxpbmVDb250YWluZXIuY3BwICovLApAQCAtMjY5MzEsOCArMjY5MzMsNiBAQAogCQkJaXNh
ID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OwogCQkJZmlsZXMgPSAoCi0JCQkJMjlBODEyNDkwRkJCOUNBOTAwNTEwMjkzIC8qIFdlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQUE0NzhBN0Yx
NkNENzBDMzAwN0QxQkI0IC8qIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3Q0QwRTJCODFGODBBNDgyMDAxNkE0Q0UgLyogQWJvcnRDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0QwRTJCRjFGODBBNTZFMDAxNkE0Q0UgLyogQWJv
cnRTaWduYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2Qjk1MTk1MjA3RDYzMzQwMEE3RDJERCAv
KiBBYnN0cmFjdERPTVdpbmRvdy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDcyNSw3ICszMDcyNSw5
IEBACiAJCQkJRkQ3RjI5OTIxM0Q0QzBDQjAwQUQ5NTM1IC8qIFdhdmVTaGFwZXJEU1BLZXJuZWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEN0YyOTk0MTNENEMwQ0IwMEFEOTUzNSAvKiBXYXZlU2hh
cGVyTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ3RjI5OTcxM0Q0QzBDQjAwQUQ5NTM1IC8q
IFdhdmVTaGFwZXJQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTI5QTgxMjQ5MEZCQjlD
QTkwMDUxMDI5MyAvKiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUFBQTcyOEY3MTZEMUQ4QkMwMEQzQkJDNiAvKiBXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlcklPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUE0NzhBN0YxNkNENzBDMzAw
N0QxQkI0IC8qIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggaW4gSGVhZGVycyAq
LywKIAkJCQkyRDNFRjQ0ODE5MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0aW9uRGlzYWJsaW5nQ0FM
YXllckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTAyNUVEMzFGOTlGMENFMDA0QTI1
MEMgLyogV2ViQW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTMyNDQ1MTIwMTA5REE1
MDBBRTdGQjIgLyogV2ViQW5pbWF0aW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGIxOTdlYTU2MzE4
ZTRhZTQ1MGJiYjQwM2M0MjYyMDA1NGFkNWNiNGIuLmZlMDdlODA3Y2QxOWJjYWU2YjJlZTE5MjM5
ZWZjNTRmOGZjNzc3MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0
aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250
ZXh0LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkxheW91dEJveC5oIgogI2luY2x1
ZGUgIkxheW91dENvbnRhaW5lci5oIgogI2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIKKyNpbmNs
dWRlICJMYXlvdXREZXNjZW5kYW50SXRlcmF0b3IuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NDIsNiArNDQzLDM5IEBAIExh
eW91dFVuaXQgRm9ybWF0dGluZ0NvbnRleHQ6OnNocmlua1RvRml0V2lkdGgoTGF5b3V0Q29udGV4
dCYsIGNvbnN0IEJveCYpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKKyNpZm5kZWYgTkRFQlVH
Cit2b2lkIEZvcm1hdHRpbmdDb250ZXh0Ojp2YWxpZGF0ZUdlb21ldHJ5Q29uc3RyYWludHNBZnRl
ckxheW91dChjb25zdCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0KSBjb25zdAoreworICAg
IGlmICghaXM8Q29udGFpbmVyPihyb290KCkpKQorICAgICAgICByZXR1cm47CisgICAgYXV0byYg
Zm9ybWF0dGluZ0NvbnRleHRSb290ID0gZG93bmNhc3Q8Q29udGFpbmVyPihyb290KCkpOworICAg
IC8vIEZJWE1FOiBhZGQgYSBkZXNjZW5kYW50c09mVHlwZTw+IGZsYXZvciB0aGF0IHN0b3BzIGF0
IG5lc3RlZCBmb3JtYXR0aW5nIGNvbnRleHRzCisgICAgZm9yIChhdXRvJiBsYXlvdXRCb3ggOiBk
ZXNjZW5kYW50c09mVHlwZTxCb3g+KGZvcm1hdHRpbmdDb250ZXh0Um9vdCkpIHsKKyAgICAgICAg
aWYgKCZsYXlvdXRCb3guZm9ybWF0dGluZ0NvbnRleHRSb290KCkgIT0gJmZvcm1hdHRpbmdDb250
ZXh0Um9vdCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBhdXRvKiBjb250YWluaW5n
QmxvY2sgPSBsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7CisgICAgICAgIEFTU0VSVChjb250
YWluaW5nQmxvY2spOworICAgICAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja1NpemUgPSBsYXlvdXRD
b250ZXh0LmRpc3BsYXlCb3hGb3JMYXlvdXRCb3goKmNvbnRhaW5pbmdCbG9jayktPnNpemUoKTsK
KyAgICAgICAgYXV0byogZGlzcGxheUJveCA9IGxheW91dENvbnRleHQuZGlzcGxheUJveEZvckxh
eW91dEJveChsYXlvdXRCb3gpOworICAgICAgICBBU1NFUlQoZGlzcGxheUJveCk7CisKKyAgICAg
ICAgLy8gMTAuMy4zIEJsb2NrLWxldmVsLCBub24tcmVwbGFjZWQgZWxlbWVudHMgaW4gbm9ybWFs
IGZsb3cKKyAgICAgICAgLy8gMTAuMy43IEFic29sdXRlbHkgcG9zaXRpb25lZCwgbm9uLXJlcGxh
Y2VkIGVsZW1lbnRzCisgICAgICAgIGlmICgobGF5b3V0Qm94LmlzQmxvY2tMZXZlbEJveCgpIHx8
IGxheW91dEJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgJiYgIWxheW91dEJveC5yZXBsYWNl
ZCgpKSB7CisgICAgICAgICAgICAvLyBtYXJnaW4tbGVmdCArIGJvcmRlci1sZWZ0LXdpZHRoICsg
cGFkZGluZy1sZWZ0ICsgd2lkdGggKyBwYWRkaW5nLXJpZ2h0ICsgYm9yZGVyLXJpZ2h0LXdpZHRo
ICsgbWFyZ2luLXJpZ2h0ID0gd2lkdGggb2YgY29udGFpbmluZyBibG9jaworICAgICAgICAgICAg
QVNTRVJUKGRpc3BsYXlCb3gtPm1hcmdpbkxlZnQoKSArIGRpc3BsYXlCb3gtPmJvcmRlckxlZnQo
KSArIGRpc3BsYXlCb3gtPnBhZGRpbmdMZWZ0KCkgKyBkaXNwbGF5Qm94LT53aWR0aCgpCisgICAg
ICAgICAgICAgICAgKyBkaXNwbGF5Qm94LT5wYWRkaW5nUmlnaHQoKSArIGRpc3BsYXlCb3gtPmJv
cmRlclJpZ2h0KCkgKyBkaXNwbGF5Qm94LT5tYXJnaW5SaWdodCgpID09IGNvbnRhaW5pbmdCbG9j
a1NpemUud2lkdGgoKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyAxMC42LjQgQWJzb2x1dGVs
eSBwb3NpdGlvbmVkLCBub24tcmVwbGFjZWQgZWxlbWVudHMKKyAgICAgICAgaWYgKGxheW91dEJv
eC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiAhbGF5b3V0Qm94LnJlcGxhY2VkKCkpIHsKKyAg
ICAgICAgICAgIC8vIHRvcCArIG1hcmdpbi10b3AgKyBib3JkZXItdG9wLXdpZHRoICsgcGFkZGlu
Zy10b3AgKyBoZWlnaHQgKyBwYWRkaW5nLWJvdHRvbSArIGJvcmRlci1ib3R0b20td2lkdGggKyBt
YXJnaW4tYm90dG9tICsgYm90dG9tID0gaGVpZ2h0IG9mIGNvbnRhaW5pbmcgYmxvY2sKKyAgICAg
ICAgICAgIEFTU0VSVChkaXNwbGF5Qm94LT50b3AoKSArIGRpc3BsYXlCb3gtPm1hcmdpblRvcCgp
ICsgZGlzcGxheUJveC0+Ym9yZGVyVG9wKCkgKyBkaXNwbGF5Qm94LT5wYWRkaW5nVG9wKCkKKyAg
ICAgICAgICAgICAgICArIGRpc3BsYXlCb3gtPnBhZGRpbmdCb3R0b20oKSArIGRpc3BsYXlCb3gt
PmJvcmRlckJvdHRvbSgpICsgZGlzcGxheUJveC0+bWFyZ2luQm90dG9tKCkgPT0gY29udGFpbmlu
Z0Jsb2NrU2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisjZW5kaWYKIH0KIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCBl
ZTBlZDU1NGI2Yjg0ZjEzOGZjOTA0YzQ3ZmQ2Njk1OWViNzEzN2NhLi40ZjkwYmU4NDJjZGJhMjcx
ZmMwZjE1ZmZjNDE0NDgxODEwMjcwYzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0
dGluZ0NvbnRleHQuaApAQCAtOTAsNiArOTAsMTAgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgY29t
cHV0ZVJlcGxhY2VkSGVpZ2h0KExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpC
b3gmKSBjb25zdDsKICAgICB2b2lkIGNvbXB1dGVSZXBsYWNlZFdpZHRoKExheW91dENvbnRleHQm
LCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25zdDsKIAorI2lmbmRlZiBOREVCVUcKKyAg
ICB2aXJ0dWFsIHZvaWQgdmFsaWRhdGVHZW9tZXRyeUNvbnN0cmFpbnRzQWZ0ZXJMYXlvdXQoY29u
c3QgTGF5b3V0Q29udGV4dCYpIGNvbnN0OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdm9pZCBj
b21wdXRlT3V0T2ZGbG93Tm9uUmVwbGFjZWRIZWlnaHQoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJv
eCYsIERpc3BsYXk6OkJveCYpIGNvbnN0OwogICAgIHZvaWQgY29tcHV0ZU91dE9mRmxvd05vblJl
cGxhY2VkV2lkdGgoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIERpc3BsYXk6OkJveCYpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9C
bG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggYzVkZDE0NDRlODJhYjgw
N2MzNTUzNDM3MjlkOWY2YTg5NGFmOTUzNC4uY2QwNDhmYmIzYWIwZjlmNzIzYTBmYzZjZTVlYWIz
ZTAwNDQ1OTQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0
dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0xMTIsNiAr
MTEyLDkgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXQoTGF5b3V0Q29udGV4
dCYgbGF5b3V0Q29udGV4dCwgRm9ybWF0dGluZ1N0YXQKICAgICBwbGFjZUluRmxvd1Bvc2l0aW9u
ZWRDaGlsZHJlbihmb3JtYXR0aW5nUm9vdCk7CiAgICAgLy8gQW5kIHRha2UgY2FyZSBvZiBvdXQt
b2YtZmxvdyBib3hlcyBhcyB0aGUgZmluYWwgc3RlcC4KICAgICBsYXlvdXRPdXRPZkZsb3dEZXNj
ZW5kYW50cyhsYXlvdXRDb250ZXh0KTsKKyNpZm5kZWYgTkRFQlVHCisgICAgdmFsaWRhdGVHZW9t
ZXRyeUNvbnN0cmFpbnRzQWZ0ZXJMYXlvdXQobGF5b3V0Q29udGV4dCk7CisjZW5kaWYKIH0KIAog
c3RkOjp1bmlxdWVfcHRyPEZvcm1hdHRpbmdTdGF0ZT4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
Y3JlYXRlRm9ybWF0dGluZ1N0YXRlKFJlZjxGbG9hdGluZ1N0YXRlPiYmIGZsb2F0aW5nU3RhdGUp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlv
dXREZXNjZW5kYW50SXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVl
L0xheW91dERlc2NlbmRhbnRJdGVyYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1ZWJjZWM3NzAxMmIyZGI0
OTE2YWQ4OTI3MzQ4NGI0NzE4OGNhMDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXREZXNjZW5kYW50SXRlcmF0b3IuaApAQCAtMCwwICsx
LDExMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTGF5b3V0SXRl
cmF0b3IuaCIKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKwordGVtcGxhdGUgPHR5cGVuYW1l
IFQ+CitjbGFzcyBMYXlvdXREZXNjZW5kYW50SXRlcmF0b3IgOiBwdWJsaWMgTGF5b3V0SXRlcmF0
b3I8VD4geworcHVibGljOgorICAgIExheW91dERlc2NlbmRhbnRJdGVyYXRvcihjb25zdCBDb250
YWluZXImIHJvb3QpOworICAgIExheW91dERlc2NlbmRhbnRJdGVyYXRvcihjb25zdCBDb250YWlu
ZXImIHJvb3QsIGNvbnN0IFQqIGN1cnJlbnQpOworICAgIExheW91dERlc2NlbmRhbnRJdGVyYXRv
ciYgb3BlcmF0b3IrKygpOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBMYXlv
dXREZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyIHsKK3B1YmxpYzoKKyAgICBMYXlvdXREZXNjZW5k
YW50SXRlcmF0b3JBZGFwdGVyKGNvbnN0IENvbnRhaW5lciYgcm9vdCk7CisgICAgTGF5b3V0RGVz
Y2VuZGFudEl0ZXJhdG9yPFQ+IGJlZ2luKCk7CisgICAgTGF5b3V0RGVzY2VuZGFudEl0ZXJhdG9y
PFQ+IGVuZCgpOworICAgIExheW91dERlc2NlbmRhbnRJdGVyYXRvcjxUPiBhdChjb25zdCBUJik7
CisKK3ByaXZhdGU6CisgICAgY29uc3QgQ29udGFpbmVyJiBtX3Jvb3Q7Cit9OworCit0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4gTGF5b3V0RGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPiBkZXNjZW5k
YW50c09mVHlwZShjb25zdCBCb3gmKTsKKworLy8gTGF5b3V0RGVzY2VuZGFudEl0ZXJhdG9yCisK
K3RlbXBsYXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIExheW91dERlc2NlbmRhbnRJdGVyYXRvcjxU
Pjo6TGF5b3V0RGVzY2VuZGFudEl0ZXJhdG9yKGNvbnN0IENvbnRhaW5lciYgcm9vdCkKKyAgICA6
IExheW91dEl0ZXJhdG9yPFQ+KCZyb290KQoreworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4K
K2lubGluZSBMYXlvdXREZXNjZW5kYW50SXRlcmF0b3I8VD46OkxheW91dERlc2NlbmRhbnRJdGVy
YXRvcihjb25zdCBDb250YWluZXImIHJvb3QsIGNvbnN0IFQqIGN1cnJlbnQpCisgICAgOiBMYXlv
dXRJdGVyYXRvcjxUPigmcm9vdCwgY3VycmVudCkKK3sKK30KKwordGVtcGxhdGUgPHR5cGVuYW1l
IFQ+CitpbmxpbmUgTGF5b3V0RGVzY2VuZGFudEl0ZXJhdG9yPFQ+JiBMYXlvdXREZXNjZW5kYW50
SXRlcmF0b3I8VD46Om9wZXJhdG9yKysoKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxMYXlv
dXREZXNjZW5kYW50SXRlcmF0b3I8VD4mPihMYXlvdXRJdGVyYXRvcjxUPjo6dHJhdmVyc2VOZXh0
KCkpOworfQorCisvLyBMYXlvdXREZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyCisKK3RlbXBsYXRl
IDx0eXBlbmFtZSBUPgoraW5saW5lIExheW91dERlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8VD46
OkxheW91dERlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXIoY29uc3QgQ29udGFpbmVyJiByb290KQor
ICAgIDogbV9yb290KHJvb3QpCit7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgoraW5saW5l
IExheW91dERlc2NlbmRhbnRJdGVyYXRvcjxUPiBMYXlvdXREZXNjZW5kYW50SXRlcmF0b3JBZGFw
dGVyPFQ+OjpiZWdpbigpCit7CisgICAgcmV0dXJuIExheW91dERlc2NlbmRhbnRJdGVyYXRvcjxU
PihtX3Jvb3QsIFRyYXZlcnNhbDo6Zmlyc3RXaXRoaW48VD4obV9yb290KSk7Cit9CisKK3RlbXBs
YXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIExheW91dERlc2NlbmRhbnRJdGVyYXRvcjxUPiBMYXlv
dXREZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyPFQ+OjplbmQoKQoreworICAgIHJldHVybiBMYXlv
dXREZXNjZW5kYW50SXRlcmF0b3I8VD4obV9yb290KTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1l
IFQ+CitpbmxpbmUgTGF5b3V0RGVzY2VuZGFudEl0ZXJhdG9yPFQ+IExheW91dERlc2NlbmRhbnRJ
dGVyYXRvckFkYXB0ZXI8VD46OmF0KGNvbnN0IFQmIGN1cnJlbnQpCit7CisgICAgcmV0dXJuIExh
eW91dERlc2NlbmRhbnRJdGVyYXRvcjxUPihtX3Jvb3QsICZjdXJyZW50KTsKK30KKworLy8gU3Rh
bmRhbG9uZSBmdW5jdGlvbnMKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitpbmxpbmUgTGF5b3V0
RGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPiBkZXNjZW5kYW50c09mVHlwZShjb25zdCBDb250
YWluZXImIHJvb3QpCit7CisgICAgcmV0dXJuIExheW91dERlc2NlbmRhbnRJdGVyYXRvckFkYXB0
ZXI8VD4ocm9vdCk7Cit9CisKK30KK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9sYXlvdXR0cmVlL0xheW91dEl0ZXJhdG9yLmgKaW5kZXggODA4OTRiODI3Yzc0ZTczOWVi
Mjc1Mzg2ZDJjMWI2NGZlZTg5YWMyMi4uZWJiY2I2MzU5OWFjM2FkMGVhOTJhMGNiYTk0ZjhlN2Qw
Mzg5NTU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0SXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlv
dXRJdGVyYXRvci5oCkBAIC01NiwxMyArNTYsNjQgQEAgcHJpdmF0ZToKIHRlbXBsYXRlIDx0eXBl
bmFtZSBULCB0eXBlbmFtZSBVPgogaW5saW5lIGJvb2wgaXNMYXlvdXRCb3hPZlR5cGUoY29uc3Qg
VSYgbGF5b3V0Qm94KSB7IHJldHVybiBUeXBlQ2FzdFRyYWl0czxjb25zdCBULCBjb25zdCBVPjo6
aXNPZlR5cGUobGF5b3V0Qm94KTsgfQogCituYW1lc3BhY2UgTGF5b3V0Qm94VHJhdmVyc2FsIHsK
KwordGVtcGxhdGUgPHR5cGVuYW1lIFU+CitpbmxpbmUgY29uc3QgQm94KiBmaXJzdENoaWxkKFUm
IG9iamVjdCkKK3sKKyAgICByZXR1cm4gb2JqZWN0LmZpcnN0Q2hpbGQoKTsKK30KKworaW5saW5l
IGNvbnN0IEJveCogZmlyc3RDaGlsZChjb25zdCBCb3gmKQoreworICAgIHJldHVybiBudWxscHRy
OworfQorCitpbmxpbmUgY29uc3QgQm94KiBuZXh0QW5jZXN0b3JTaWJsaW5nKGNvbnN0IEJveCYg
Y3VycmVudCwgY29uc3QgQ29udGFpbmVyKiBzdGF5V2l0aGluKQoreworICAgIGZvciAoYXV0byog
YW5jZXN0b3IgPSBjdXJyZW50LnBhcmVudCgpOyBhbmNlc3RvcjsgYW5jZXN0b3IgPSBhbmNlc3Rv
ci0+cGFyZW50KCkpIHsKKyAgICAgICAgaWYgKGFuY2VzdG9yID09IHN0YXlXaXRoaW4pCisgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgaWYgKGF1dG8qIHNpYmxpbmcgPSBhbmNl
c3Rvci0+bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBzaWJsaW5nOworICAgIH0K
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFU+CitpbmxpbmUg
Y29uc3QgQm94KiBuZXh0KGNvbnN0IFUmIGN1cnJlbnQsIGNvbnN0IENvbnRhaW5lciogc3RheVdp
dGhpbikKK3sKKyAgICBpZiAoYXV0byogY2hpbGQgPSBmaXJzdENoaWxkKGN1cnJlbnQpKQorICAg
ICAgICByZXR1cm4gY2hpbGQ7CisKKyAgICBpZiAoJmN1cnJlbnQgPT0gc3RheVdpdGhpbikKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoYXV0byogc2libGluZyA9IGN1cnJlbnQu
bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgcmV0dXJuIHNpYmxpbmc7CisKKyAgICByZXR1cm4gbmV4
dEFuY2VzdG9yU2libGluZyhjdXJyZW50LCBzdGF5V2l0aGluKTsKK30KKworaW5saW5lIGNvbnN0
IEJveCogbmV4dFNraXBwaW5nQ2hpbGRyZW4oQm94JiBjdXJyZW50LCBjb25zdCBDb250YWluZXIq
IHN0YXlXaXRoaW4pCit7CisgICAgaWYgKCZjdXJyZW50ID09IHN0YXlXaXRoaW4pCisgICAgICAg
IHJldHVybiBudWxscHRyOworCisgICAgaWYgKGF1dG8qIHNpYmxpbmcgPSBjdXJyZW50Lm5leHRT
aWJsaW5nKCkpCisgICAgICAgIHJldHVybiBzaWJsaW5nOworCisgICAgcmV0dXJuIG5leHRBbmNl
c3RvclNpYmxpbmcoY3VycmVudCwgc3RheVdpdGhpbik7Cit9CisKK30KIC8vIFRyYXZlcnNhbCBo
ZWxwZXJzCiBuYW1lc3BhY2UgVHJhdmVyc2FsIHsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIFU+CiBpbmxpbmUgY29uc3QgVCogZmlyc3RDaGlsZChVJiBjdXJyZW50KQogewotICAg
IGF1dG8qIG9iamVjdCA9IGN1cnJlbnQuZmlyc3RDaGlsZCgpOworICAgIGF1dG8qIG9iamVjdCA9
IExheW91dEJveFRyYXZlcnNhbDo6Zmlyc3RDaGlsZChjdXJyZW50KTsKICAgICB3aGlsZSAob2Jq
ZWN0ICYmICFpc0xheW91dEJveE9mVHlwZTxUPigqb2JqZWN0KSkKICAgICAgICAgb2JqZWN0ID0g
b2JqZWN0LT5uZXh0U2libGluZygpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBUKj4o
b2JqZWN0KTsKQEAgLTc3LDggKzEyOCw4IEBAIGlubGluZSBjb25zdCBUKiBsYXN0Q2hpbGQoVSYg
Y3VycmVudCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgVCo+KG9iamVjdCk7CiB9CiAK
LXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotaW5saW5lIGNvbnN0IFQqIG5leHRT
aWJsaW5nKFUmIGN1cnJlbnQpCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGluZSBjb25zdCBU
KiBuZXh0U2libGluZyhjb25zdCBUJiBjdXJyZW50KQogewogICAgIGF1dG8qIG9iamVjdCA9IGN1
cnJlbnQubmV4dFNpYmxpbmcoKTsKICAgICB3aGlsZSAob2JqZWN0ICYmICFpc0xheW91dEJveE9m
VHlwZTxUPigqb2JqZWN0KSkKQEAgLTg3LDcgKzEzOCw3IEBAIGlubGluZSBjb25zdCBUKiBuZXh0
U2libGluZyhVJiBjdXJyZW50KQogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
VT4KLWlubGluZSBjb25zdCBUKiBwcmV2aW91c1NpYmxpbmcoVSYgY3VycmVudCkKK2lubGluZSBj
b25zdCBUKiBwcmV2aW91c1NpYmxpbmcoY29uc3QgVCYgY3VycmVudCkKIHsKICAgICBhdXRvKiBv
YmplY3QgPSBjdXJyZW50LnByZXZpb3VzU2libGluZygpOwogICAgIHdoaWxlIChvYmplY3QgJiYg
IWlzTGF5b3V0Qm94T2ZUeXBlPFQ+KCpvYmplY3QpKQpAQCAtOTUsOCArMTQ2LDggQEAgaW5saW5l
IGNvbnN0IFQqIHByZXZpb3VzU2libGluZyhVJiBjdXJyZW50KQogICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxjb25zdCBUKj4ob2JqZWN0KTsKIH0KIAotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1pbmxp
bmUgY29uc3QgVCogZmluZEFuY2VzdG9yT2ZUeXBlKGNvbnN0IEJveCYgY3VycmVudCkKK3RlbXBs
YXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgoraW5saW5lIGNvbnN0IFQqIGZpbmRBbmNlc3Rv
ck9mVHlwZShjb25zdCBUJiBjdXJyZW50KQogewogICAgIGZvciAoYXV0byogYW5jZXN0b3IgPSBj
dXJyZW50LnBhcmVudCgpOyBhbmNlc3RvcjsgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50KCkp
IHsKICAgICAgICAgaWYgKGlzTGF5b3V0Qm94T2ZUeXBlPFQ+KCphbmNlc3RvcikpCkBAIC0xMDYs
NDcgKzE1NywyMCBAQCBpbmxpbmUgY29uc3QgVCogZmluZEFuY2VzdG9yT2ZUeXBlKGNvbnN0IEJv
eCYgY3VycmVudCkKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci1pbmxp
bmUgY29uc3QgVCogbmV4dEFuY2VzdG9yU2libGluZyhVJiBjdXJyZW50LCBjb25zdCBDb250YWlu
ZXIqIHN0YXlXaXRoaW4pCi17Ci0gICAgZm9yIChhdXRvKiBhbmNlc3RvciA9IGN1cnJlbnQucGFy
ZW50KCk7IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnQoKSkgewotICAgICAg
ICBpZiAoYW5jZXN0b3IgPT0gc3RheVdpdGhpbikKLSAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgICAgICBpZiAoYXV0byogc2libGluZyA9IGFuY2VzdG9yLT5uZXh0U2libGluZygpKQot
ICAgICAgICAgICAgcmV0dXJuIHNpYmxpbmc7Ci0gICAgfQotICAgIHJldHVybiBudWxscHRyOwot
fQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KLWlubGluZSBjb25zdCBUKiBu
ZXh0V2l0aGluKFUmIGN1cnJlbnQsIGNvbnN0IENvbnRhaW5lciogc3RheVdpdGhpbikKLXsKLSAg
ICBpZiAoYXV0byogY2hpbGQgPSBmaXJzdENoaWxkKGN1cnJlbnQpKQotICAgICAgICByZXR1cm4g
Y2hpbGQ7Ci0KLSAgICBpZiAoJmN1cnJlbnQgPT0gc3RheVdpdGhpbikKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0KLSAgICBpZiAoYXV0byogc2libGluZyA9IGN1cnJlbnQubmV4dFNpYmxpbmco
KSkKLSAgICAgICAgcmV0dXJuIHNpYmxpbmc7Ci0KLSAgICByZXR1cm4gbmV4dEFuY2VzdG9yU2li
bGluZyhjdXJyZW50LCBzdGF5V2l0aGluKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIFU+Ci1pbmxpbmUgY29uc3QgVCogZmlyc3RXaXRoaW4oVSYgY3VycmVudCkKK2lubGlu
ZSBjb25zdCBUKiBmaXJzdFdpdGhpbihjb25zdCBVJiBzdGF5V2l0aGluKQogewotICAgIGF1dG8q
IGRlc2NlbmRhbnQgPSBjdXJyZW50LmZpc3RDaGlsZCgpOworICAgIGF1dG8qIGRlc2NlbmRhbnQg
PSBMYXlvdXRCb3hUcmF2ZXJzYWw6OmZpcnN0Q2hpbGQoc3RheVdpdGhpbik7CiAgICAgd2hpbGUg
KGRlc2NlbmRhbnQgJiYgIWlzTGF5b3V0Qm94T2ZUeXBlPFQ+KCpkZXNjZW5kYW50KSkKLSAgICAg
ICAgZGVzY2VuZGFudCA9IG5leHRXaXRoaW4oKmRlc2NlbmRhbnQsICZjdXJyZW50KTsKKyAgICAg
ICAgZGVzY2VuZGFudCA9IExheW91dEJveFRyYXZlcnNhbDo6bmV4dCgqZGVzY2VuZGFudCwgJnN0
YXlXaXRoaW4pOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBUKj4oZGVzY2VuZGFudCk7
CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotaW5saW5lIGNvbnN0IFQq
IG5leHQoVSYgY3VycmVudCwgY29uc3QgUmVuZGVyT2JqZWN0KiBzdGF5V2l0aGluKQoraW5saW5l
IGNvbnN0IFQqIG5leHQoY29uc3QgVSYgY3VycmVudCwgY29uc3QgQ29udGFpbmVyKiBzdGF5V2l0
aGluKQogewotICAgIGF1dG8qIGRlc2NlbmRhbnQgPSBuZXh0V2l0aGluKGN1cnJlbnQsIHN0YXlX
aXRoaW4pOworICAgIGF1dG8qIGRlc2NlbmRhbnQgPSBMYXlvdXRCb3hUcmF2ZXJzYWw6Om5leHQo
Y3VycmVudCwgc3RheVdpdGhpbik7CiAgICAgd2hpbGUgKGRlc2NlbmRhbnQgJiYgIWlzTGF5b3V0
Qm94T2ZUeXBlPFQ+KCpkZXNjZW5kYW50KSkKLSAgICAgICAgZGVzY2VuZGFudCA9IG5leHRXaXRo
aW4oKmRlc2NlbmRhbnQsIHN0YXlXaXRoaW4pOworICAgICAgICBkZXNjZW5kYW50ID0gTGF5b3V0
Qm94VHJhdmVyc2FsOjpuZXh0KCpkZXNjZW5kYW50LCBzdGF5V2l0aGluKTsKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Y29uc3QgVCo+KGRlc2NlbmRhbnQpOwogfQogCkBAIC0xODgsMTcgKzIxMiwx
NiBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGlubGluZSBMYXlvdXRJdGVyYXRvcjxUPiYgTGF5
b3V0SXRlcmF0b3I8VD46OnRyYXZlcnNlUHJldmlvdXNTaWJsaW5nKCkKIHsKICAgICBBU1NFUlQo
bV9jdXJyZW50KTsKLSAgICBtX2N1cnJlbnQgPSBUcmF2ZXJzYWw6OnByZXZpb3VzU2libGluZzxU
PihtX2N1cnJlbnQpOworICAgIG1fY3VycmVudCA9IFRyYXZlcnNhbDo6cHJldmlvdXNTaWJsaW5n
PFQ+KCptX2N1cnJlbnQpOwogICAgIHJldHVybiAqdGhpczsKIH0KIAotCiB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KIGlubGluZSBMYXlvdXRJdGVyYXRvcjxUPiYgTGF5b3V0SXRlcmF0b3I8VD46OnRy
YXZlcnNlQW5jZXN0b3IoKQogewogICAgIEFTU0VSVChtX2N1cnJlbnQpOwogICAgIEFTU0VSVCht
X2N1cnJlbnQgIT0gbV9yb290KTsKLSAgICBtX2N1cnJlbnQgPSBUcmF2ZXJzYWw6OmZpbmRBbmNl
c3Rvck9mVHlwZTxjb25zdCBUPigqbV9jdXJyZW50KTsKKyAgICBtX2N1cnJlbnQgPSBUcmF2ZXJz
YWw6OmZpbmRBbmNlc3Rvck9mVHlwZTxUPigqbV9jdXJyZW50KTsKICAgICByZXR1cm4gKnRoaXM7
CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>