<?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>270356</bug_id>
          
          <creation_ts>2024-03-01 09:37:35 -0800</creation_ts>
          <short_desc>AX: AccessibilityText is not updated when static text descendant changes</short_desc>
          <delta_ts>2024-03-05 08:46:39 -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>Accessibility</component>
          <version>Other</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="Tyler Wilcock">tyler_w</reporter>
          <assigned_to name="Tyler Wilcock">tyler_w</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2018033</commentid>
    <comment_count>0</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-03-01 09:37:35 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2018034</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-03-01 09:37:48 -0800</bug_when>
    <thetext>&lt;rdar://problem/123904875&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2018035</commentid>
    <comment_count>2</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-03-01 09:37:55 -0800</bug_when>
    <thetext>rdar://123741292</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2018038</commentid>
    <comment_count>3</comment_count>
      <attachid>470115</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-03-01 10:09:03 -0800</bug_when>
    <thetext>Created attachment 470115
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2018052</commentid>
    <comment_count>4</comment_count>
      <attachid>470119</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-03-01 10:51:04 -0800</bug_when>
    <thetext>Created attachment 470119
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2018085</commentid>
    <comment_count>5</comment_count>
      <attachid>470122</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-03-01 12:44:00 -0800</bug_when>
    <thetext>Created attachment 470122
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2018146</commentid>
    <comment_count>6</comment_count>
      <attachid>470129</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-03-01 16:46:16 -0800</bug_when>
    <thetext>Created attachment 470129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2018774</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-03-05 08:46:36 -0800</bug_when>
    <thetext>Committed 275693@main (c0414c435ce6): &lt;https://commits.webkit.org/275693@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 470129.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470115</attachid>
            <date>2024-03-01 10:09:03 -0800</date>
            <delta_ts>2024-03-01 10:51:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-270356-20240301100902.patch</filename>
            <type>text/plain</type>
            <size>23715</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSA1ODZmNTdiNjExMGM0ZDAxZGI2OTY2MTc0Mzk1YTZhZmQ2NjZmYzJiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogRnJpLCAxIE1hciAyMDI0IDA5OjQ4OjI3IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gQVg6IEFj
Y2Vzc2liaWxpdHlUZXh0IGlzIG5vdCB1cGRhdGVkIHdoZW4gc3RhdGljIHRleHQKIGRlc2NlbmRh
bnQgY2hhbmdlcyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjcwMzU2
CiByZGFyOi8vMTIzNzQxMjkyCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFkZCBhIG5l
dyBUZXh0VW5kZXJFbGVtZW50Q2hhbmdlZCBub3RpZmljYXRpb24gdG8gcmVwcmVzZW50IHRoaXMK
c2NlbmFyaW8gc28gd2UgY2FuIG1ha2UgcHJlY2lzZSB1cGRhdGVzIHRvIHRoZSBpc29sYXRlZCB0
cmVlLgoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC1leHBlY3RlZC50
eHQ6IEFkZGVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0Lmh0bWw6
IEFkZGVkLgoqIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMt
dGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYQ29yZU9iamVjdC5oOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIu
Y3BwOgooV2ViQ29yZTo6b3BlcmF0b3I8PCk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcDoKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZVRleHRD
aGFuZ2VkKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZSk6Ciog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CiogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CihXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dmlzaWJsZVRleHQgY29uc3QpOgoqIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpkZXBlbmRzT25UZXh0VW5kZXJFbGVtZW50IGNvbnN0KToKKiBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKiBTb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHA6
CihXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZVByb3BlcnRpZXMpOgooV2ViQ29y
ZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZURlcGVuZGVudFByb3BlcnRpZXMpOgoqIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmg6CihXZWJD
b3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZVByb3BlcnR5KToKLS0tCiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYQ29yZU9iamVjdC5oICAgfCAgMSArCiBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcCAgICAgfCAgOSArKysKIC4uLi9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICB8IDMzICsrKysrKy0tCiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCAgfCAgMSArCiAuLi4vYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgfCA0NiArLS0tLS0tLS0tLQogLi4uL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgICAgIHwgNDEgKysrKysrKysrKwog
Li4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oICAgICAgIHwgIDEgKwogLi4u
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAgICAgICAgICAgIHwgMTggKysrKy0KIC4u
Li9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCAgICAgICAgICAgICB8ICAyICstCiAuLi4v
YWNjZXNzaWJpbGl0eS9keW5hbWljLXRleHQtZXhwZWN0ZWQudHh0ICAgfCAzNiArKysrKysrKysK
IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0Lmh0bWwgICB8IDc3ICsrKysr
KysrKysrKysrKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC1leHBlY3RlZC50
eHQgICB8IDIyICsrKysrKwogMTIgZmlsZXMgY2hhbmdlZCwgMjMzIGluc2VydGlvbnMoKyksIDU0
IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvZHluYW1pYy10ZXh0LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9keW5hbWljLXRleHQtZXhwZWN0
ZWQudHh0CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWENvcmVP
YmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhDb3JlT2JqZWN0LmgKaW5k
ZXggYTJkOTNiODljY2I5Li5mMjAyNDM5NmQ1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhDb3JlT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWENvcmVPYmplY3QuaApAQCAtMTcxOSw2ICsxNzE5LDcgQEAgV1RGOjpUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXkp
OwogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IEFj
Y2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSYpOwogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFdURjo6VGV4dFN0cmVhbSYsIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24pOwogV1RGOjpU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IEFYQ29yZU9iamVj
dCYpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEFjY2Vz
c2liaWxpdHlUZXh0KTsKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJl
YW0mLCBBY2Nlc3NpYmlsaXR5VGV4dFNvdXJjZSk7CiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoV1RGOjpUZXh0U3RyZWFtJiwgQVhSZWxhdGlvblR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCmluZGV4IDUyZDk5M2NlNGY4My4uNDhiNmFkMWM4MmFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcApAQCAtNDEyLDYg
KzQxMiwxMiBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHN0cmVhbSwgY29u
c3QgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhJiBjcgogICAgIHJldHVybiBzdHJlYW07CiB9
CiAKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgc3RyZWFtLCBBY2Nlc3NpYmls
aXR5VGV4dCB0ZXh0KQoreworICAgIHN0cmVhbSA8PCB0ZXh0LnRleHRTb3VyY2UgPDwgIjogIiA8
PCB0ZXh0LnRleHQ7CisgICAgcmV0dXJuIHN0cmVhbTsKK30KKwogVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiBzdHJlYW0sIEFjY2Vzc2liaWxpdHlUZXh0U291cmNlIHNvdXJjZSkK
IHsKICAgICBzd2l0Y2ggKHNvdXJjZSkgewpAQCAtNzc0LDYgKzc4MCw5IEBAIFRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgc3RyZWFtLCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNh
dGlvbiBub3RpZmljCiAgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhU
ZXh0Q29tcG9zaXRpb25DaGFuZ2VkOgogICAgICAgICBzdHJlYW0gPDwgIkFYVGV4dENvbXBvc2l0
aW9uQ2hhbmdlZCI7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhO
b3RpZmljYXRpb246OkFYVGV4dFVuZGVyRWxlbWVudENoYW5nZWQ6CisgICAgICAgIHN0cmVhbSA8
PCAiQVhUZXh0VW5kZXJFbGVtZW50Q2hhbmdlZCI7CisgICAgICAgIGJyZWFrOwogI2lmIEVOQUJM
RShBWF9USFJFQURfVEVYVF9BUElTKQogICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmlj
YXRpb246OkFYVGV4dFJ1bnNDaGFuZ2VkOgogICAgICAgICBzdHJlYW0gPDwgIkFYVGV4dFJ1bnND
aGFuZ2VkIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCmluZGV4IDliZGEzMjhlYTE4YS4uZmViMDY0YjEyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTExOTksMTcgKzExOTksMzUg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVUZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBvYmplY3QpCiAKICAgICBSZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4gcHJvdGVjdGVkT2Jq
ZWN0KCpvYmplY3QpOwogCisgICAgYm9vbCBpc1RleHQgPSBvYmplY3QtPmlzU3RhdGljVGV4dCgp
OwogICAgIC8vIElmIHRoaXMgZWxlbWVudCBzdXBwb3J0cyBBUklBIGxpdmUgcmVnaW9ucywgb3Ig
aXMgcGFydCBvZiBhIHJlZ2lvbiB3aXRoIGFuIEFSSUEgZWRpdGFibGUgcm9sZSwKICAgICAvLyB0
aGVuIG5vdGlmeSB0aGUgQVQgb2YgY2hhbmdlcy4KICAgICBib29sIG5vdGlmaWVkTm9uTmF0aXZl
VGV4dENvbnRyb2wgPSBmYWxzZTsKLSAgICBmb3IgKFJlZlB0ciBwYXJlbnQgPSBvYmplY3Q7IHBh
cmVudDsgcGFyZW50ID0gcGFyZW50LT5wYXJlbnRPYmplY3QoKSkgewotICAgICAgICBpZiAocGFy
ZW50LT5zdXBwb3J0c0xpdmVSZWdpb24oKSkKLSAgICAgICAgICAgIHBvc3RMaXZlUmVnaW9uQ2hh
bmdlTm90aWZpY2F0aW9uKHBhcmVudC5nZXQoKSk7CisgICAgZm9yIChSZWZQdHIgYW5jZXN0b3Ig
PSBvYmplY3Q7IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnRPYmplY3QoKSkg
eworICAgICAgICBpZiAoYW5jZXN0b3ItPnN1cHBvcnRzTGl2ZVJlZ2lvbigpKQorICAgICAgICAg
ICAgcG9zdExpdmVSZWdpb25DaGFuZ2VOb3RpZmljYXRpb24oYW5jZXN0b3IuZ2V0KCkpOwogCi0g
ICAgICAgIGlmICghbm90aWZpZWROb25OYXRpdmVUZXh0Q29udHJvbCAmJiBwYXJlbnQtPmlzTm9u
TmF0aXZlVGV4dENvbnRyb2woKSkgewotICAgICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihwYXJl
bnQuZ2V0KCksIHBhcmVudC0+cHJvdGVjdGVkRG9jdW1lbnQoKS5nZXQoKSwgQVhWYWx1ZUNoYW5n
ZWQpOworICAgICAgICBpZiAoIW5vdGlmaWVkTm9uTmF0aXZlVGV4dENvbnRyb2wgJiYgYW5jZXN0
b3ItPmlzTm9uTmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICAgICAgcG9zdE5vdGlmaWNh
dGlvbihhbmNlc3Rvci5nZXQoKSwgYW5jZXN0b3ItPnByb3RlY3RlZERvY3VtZW50KCkuZ2V0KCks
IEFYVmFsdWVDaGFuZ2VkKTsKICAgICAgICAgICAgIG5vdGlmaWVkTm9uTmF0aXZlVGV4dENvbnRy
b2wgPSB0cnVlOwogICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzVGV4dCkgeworICAgICAgICAg
ICAgYm9vbCBkZXBlbmRzT25UZXh0VW5kZXJFbGVtZW50ID0gYW5jZXN0b3ItPmRlcGVuZHNPblRl
eHRVbmRlckVsZW1lbnQoKTsKKyAgICAgICAgICAgIGF1dG8gcm9sZSA9IGFuY2VzdG9yLT5yb2xl
VmFsdWUoKTsKKyAgICAgICAgICAgIGRlcGVuZHNPblRleHRVbmRlckVsZW1lbnQgfD0gcm9sZSA9
PSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEl0ZW0gfHwgcm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6TGFiZWw7CisKKyAgICAgICAgICAgIC8vIElmIHRoZSBzdGFydGluZyBvYmplY3QgaXMgYSBz
dGF0aWMgdGV4dCwgaXRzIHVuZGVybHlpbmcgdGV4dCBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAg
IGlmIChkZXBlbmRzT25UZXh0VW5kZXJFbGVtZW50KSB7CisgICAgICAgICAgICAgICAgLy8gSW5m
b3JtIHRoaXMgYW5jZXN0b3IgaXRzIHRleHRVbmRlckVsZW1lbnQtZGVwZW5kZW50IGRhdGEgaXMg
bm93IG91dC1vZi1kYXRlLgorICAgICAgICAgICAgICAgIHBvc3ROb3RpZmljYXRpb24oYW5jZXN0
b3IuZ2V0KCksIG51bGxwdHIsIEFYVGV4dFVuZGVyRWxlbWVudENoYW5nZWQpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAvLyBBbnkgb2JqZWN0cyB0aGlzIGFuY2VzdG9yIGxhYmVsZWQg
bm93IGFsc28gbmVlZCBuZXcgQWNjZXNzaWJpbGl0eVRleHQuCisgICAgICAgICAgICBhdXRvIGxh
YmVsZWRPYmplY3RzID0gYW5jZXN0b3ItPmxhYmVsRm9yT2JqZWN0cygpOworICAgICAgICAgICAg
Zm9yIChjb25zdCBhdXRvJiBsYWJlbGVkT2JqZWN0IDogbGFiZWxlZE9iamVjdHMpCisgICAgICAg
ICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihjaGVja2VkRG93bmNhc3Q8QWNjZXNzaWJpbGl0eU9i
amVjdD4obGFiZWxlZE9iamVjdC5nZXQoKSksIG51bGxwdHIsIEFYVGV4dENoYW5nZWQpOworICAg
ICAgICB9CiAgICAgfQogCiAgICAgcG9zdE5vdGlmaWNhdGlvbihvYmplY3QsIG9iamVjdC0+cHJv
dGVjdGVkRG9jdW1lbnQoKS5nZXQoKSwgQVhUZXh0Q2hhbmdlZCk7CkBAIC00NDAzLDYgKzQ0MjEs
MTEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoY29uc3QgVmVjdG9y
PHN0ZDo6cGFpcjxSZWZQdHI8QWNjZXNzaWJpbGkKICAgICAgICAgY2FzZSBBWFRleHRDb21wb3Np
dGlvbkNoYW5nZWQ6CiAgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0
aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1lOjpUZXh0SW5wdXRNYXJrZWRU
ZXh0TWFya2VyUmFuZ2UgfSk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRVbmRlckVsZW1lbnRDaGFuZ2VkOgorICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRl
KG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyB7IEFYUHJvcGVydHlOYW1lOjpBY2Nl
c3NpYmlsaXR5VGV4dCwgQVhQcm9wZXJ0eU5hbWU6OlRpdGxlIH0gfSk7CisgICAgICAgICAgICBp
ZiAobm90aWZpY2F0aW9uLmZpcnN0LT5pc0FjY2Vzc2liaWxpdHlMYWJlbEluc3RhbmNlKCkpCisg
ICAgICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+
b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6U3RyaW5nVmFsdWUgfSk7CisgICAgICAgICAg
ICBicmVhazsKICNpZiBFTkFCTEUoQVhfVEhSRUFEX1RFWFRfQVBJUykKICAgICAgICAgY2FzZSBB
WFRleHRSdW5zQ2hhbmdlZDoKICAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3Rp
ZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OlRleHRSdW5zIH0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCA4
MGU4ZDVkNDhjYTAuLjQ1NGY1YTRhODY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTQzMCw2ICs0MzAsNyBAQCBwdWJsaWM6CiAgICAgICAg
IEFYU29ydERpcmVjdGlvbkNoYW5nZWQsCiAgICAgICAgIEFYVGV4dENoYW5nZWQsCiAgICAgICAg
IEFYVGV4dENvbXBvc2l0aW9uQ2hhbmdlZCwKKyAgICAgICAgQVhUZXh0VW5kZXJFbGVtZW50Q2hh
bmdlZCwKICNpZiBFTkFCTEUoQVhfVEhSRUFEX1RFWFRfQVBJUykKICAgICAgICAgQVhUZXh0UnVu
c0NoYW5nZWQsCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggOWZjYmY4ZDM5MTUyLi4zY2Fl
ODY5ZGI0YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC0xODg4LDcgKzE4ODgsNyBAQCB2b2lkIEFj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphbHRlcm5hdGl2ZVRleHQoVmVjdG9yPEFjY2Vzc2liaWxp
dHlUZXh0PiYgdGV4dE9yZAogCiB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp2aXNpYmxl
VGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+JiB0ZXh0T3JkZXIpIGNvbnN0CiB7Ci0gICAg
Tm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBXZWFrUHRyIG5vZGUgPSB0aGlzLT5ub2Rl
KCk7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm47CiAKQEAgLTE5MDEsNDkgKzE5MDEs
NyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp2aXNpYmxlVGV4dChWZWN0b3I8QWNj
ZXNzaWJpbGl0eVRleHQ+JiB0ZXh0T3JkZXIpCiAgICAgaWYgKCFpc0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QoKSAmJiBub2RlLT5oYXNUYWdOYW1lKHNlbGVjdFRhZykpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGJvb2wgdXNlVGV4dFVuZGVyRWxlbWVudCA9IGZhbHNlOwotCi0gICAgc3dpdGNo
IChyb2xlVmFsdWUoKSkgewotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlBvcFVwQnV0dG9u
OgotICAgICAgICAvLyBOYXRpdmUgcG9wdXAgYnV0dG9ucyBzaG91bGQgbm90IHVzZSB0aGVpciBi
dXR0b24gY2hpbGRyZW4ncyB0ZXh0IGFzIGEgdGl0bGUuIFRoYXQgdmFsdWUgaXMgcmV0cmlldmVk
IHRocm91Z2ggc3RyaW5nVmFsdWUoKS4KLSAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoc2Vs
ZWN0VGFnKSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBGQUxMVEhST1VHSDsKLSAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTdW1tYXJ5OgotICAgICAgICAvLyBUaGUgdGV4dCBub2Rl
IGZvciBhIDxzdW1tYXJ5PiBlbGVtZW50IHNob3VsZCBiZSBpbmNsdWRlZCBpbiBpdHMgdmlzaWJs
ZSB0ZXh0LCB1bmxlc3MgYSB0aXRsZSBhdHRyaWJ1dGUgaXMgcHJlc2VudC4KLSAgICAgICAgaWYg
KCFoYXNBdHRyaWJ1dGUodGl0bGVBdHRyKSkKLSAgICAgICAgICAgIHVzZVRleHRVbmRlckVsZW1l
bnQgPSB0cnVlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpC
dXR0b246Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VG9nZ2xlQnV0dG9uOgotICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNoZWNrYm94OgotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6Okxpc3RCb3hPcHRpb246Ci0gICAgLy8gTWFjT1MgZG9lcyBub3QgZXhwZWN0IG5hdGl2ZSA8
bGk+IGVsZW1lbnRzIHRvIGV4cG9zZSBsYWJlbCBpbmZvcm1hdGlvbiwgaXQgb25seSBleHBlY3Rz
IGxlYWYgbm9kZSBlbGVtZW50cyB0byBkbyB0aGF0LgotI2lmICFQTEFURk9STShDT0NPQSkKLSAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0SXRlbToKLSNlbmRpZgotICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6Ok1lbnVCdXR0b246Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TWVudUl0ZW06Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUl0ZW1DaGVja2JveDoK
LSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51SXRlbVJhZGlvOgotICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OlJhZGlvQnV0dG9uOgotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OlN3aXRjaDoKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWI6Ci0gICAgICAgIHVzZVRl
eHRVbmRlckVsZW1lbnQgPSB0cnVlOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAg
ICAgICBicmVhazsKLSAgICB9Ci0KLSAgICAvLyBJZiBpdCdzIGZvY3VzYWJsZSBidXQgaXQncyBu
b3QgY29udGVudCBlZGl0YWJsZSBvciBhIGtub3duIGNvbnRyb2wgdHlwZSwgdGhlbiBpdCB3aWxs
IGFwcGVhciB0bwotICAgIC8vIHRoZSB1c2VyIGFzIGEgc2luZ2xlIGF0b21pYyBvYmplY3QsIHNv
IHdlIHNob3VsZCB1c2UgaXRzIHRleHQgYXMgdGhlIGRlZmF1bHQgdGl0bGUuCi0gICAgaWYgKGlz
SGVhZGluZygpIHx8IGlzTGluaygpKQotICAgICAgICB1c2VUZXh0VW5kZXJFbGVtZW50ID0gdHJ1
ZTsKLQotICAgIGlmIChpc091dHB1dCgpKQotICAgICAgICB1c2VUZXh0VW5kZXJFbGVtZW50ID0g
dHJ1ZTsKLQotICAgIGlmICh1c2VUZXh0VW5kZXJFbGVtZW50KSB7CisgICAgaWYgKGRlcGVuZHNP
blRleHRVbmRlckVsZW1lbnQoKSkgewogICAgICAgICBBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxl
bWVudE1vZGUgbW9kZTsKIAogICAgICAgICAvLyBIZWFkaW5ncyBvZnRlbiBpbmNsdWRlIGxpbmtz
IGFzIGRpcmVjdCBjaGlsZHJlbi4gVGhvc2UgbGlua3MgbmVlZCB0byBiZSBpbmNsdWRlZCBpbiB0
ZXh0IHVuZGVyIGVsZW1lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCA1MmNmMDJkN2NlMDguLjY0NzI2MTNiN2M5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwCkBAIC0xOTI0LDYgKzE5MjQsNDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpoYXNDb250ZW50RWRpdGFibGVBdHRyaWJ1dGVTZXQoKSBjb25zdAogICAgIHJldHVybiBj
b250ZW50RWRpdGFibGVBdHRyaWJ1dGVJc0VuYWJsZWQoZWxlbWVudCgpKTsKIH0KIAorYm9vbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpkZXBlbmRzT25UZXh0VW5kZXJFbGVtZW50KCkgY29uc3QKK3sK
KyAgICBzd2l0Y2ggKHJvbGVWYWx1ZSgpKSB7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
UG9wVXBCdXR0b246CisgICAgICAgIC8vIE5hdGl2ZSBwb3B1cCBidXR0b25zIHNob3VsZCBub3Qg
dXNlIHRoZWlyIGRlc2NlbmRhbnQncyB0ZXh0IGFzIGEgdGl0bGUuIFRoYXQgdmFsdWUgaXMgcmV0
cmlldmVkIHRocm91Z2ggc3RyaW5nVmFsdWUoKS4KKyAgICAgICAgaWYgKGhhc1RhZ05hbWUoc2Vs
ZWN0VGFnKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBGQUxMVEhST1VHSDsKKyAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTdW1tYXJ5OgorICAgICAgICAvLyBUaGUgdGV4dCBub2Rl
IGZvciBhIDxzdW1tYXJ5PiBlbGVtZW50IHNob3VsZCBiZSBpbmNsdWRlZCBpbiBpdHMgdmlzaWJs
ZSB0ZXh0LCB1bmxlc3MgYSB0aXRsZSBhdHRyaWJ1dGUgaXMgcHJlc2VudC4KKyAgICAgICAgaWYg
KCFoYXNBdHRyaWJ1dGUodGl0bGVBdHRyKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpCdXR0b246CisgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VG9nZ2xlQnV0dG9uOgorICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkNoZWNrYm94OgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RCb3hPcHRp
b246CisjaWYgIVBMQVRGT1JNKENPQ09BKQorICAgIC8vIE1hY09TIGRvZXMgbm90IGV4cGVjdCBu
YXRpdmUgPGxpPiBlbGVtZW50cyB0byBleHBvc2UgbGFiZWwgaW5mb3JtYXRpb24sIGl0IG9ubHkg
ZXhwZWN0cyBsZWFmIG5vZGUgZWxlbWVudHMgdG8gZG8gdGhhdC4KKyAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpMaXN0SXRlbToKKyNlbmRpZgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
Ok1lbnVCdXR0b246CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUl0ZW06CisgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUl0ZW1DaGVja2JveDoKKyAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpNZW51SXRlbVJhZGlvOgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OlJhZGlvQnV0dG9uOgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN3aXRjaDoKKyAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWI6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIC8vIElmIGl0J3MgZm9jdXNhYmxl
IGJ1dCBpdCdzIG5vdCBjb250ZW50IGVkaXRhYmxlIG9yIGEga25vd24gY29udHJvbCB0eXBlLCB0
aGVuIGl0IHdpbGwgYXBwZWFyIHRvCisgICAgLy8gdGhlIHVzZXIgYXMgYSBzaW5nbGUgYXRvbWlj
IG9iamVjdCwgc28gd2Ugc2hvdWxkIHVzZSBpdHMgdGV4dCBhcyB0aGUgZGVmYXVsdCB0aXRsZS4K
KyAgICBpZiAoaXNIZWFkaW5nKCkgfHwgaXNMaW5rKCkpCisgICAgICAgIHJldHVybiB0cnVlOwor
CisgICAgcmV0dXJuIGlzT3V0cHV0KCk7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6
c3VwcG9ydHNSZWFkT25seSgpIGNvbnN0CiB7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9
IHJvbGVWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuaAppbmRleCA4MzA0OTQzODVhNjguLjlkNDk0NTNkODllMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
QEAgLTM4Nyw2ICszODcsNyBAQCBwdWJsaWM6CiAgICAgLy8gTWV0aG9kcyBmb3IgZGV0ZXJtaW5p
bmcgYWNjZXNzaWJpbGl0eSB0ZXh0LgogICAgIGJvb2wgaXNBUklBU3RhdGljVGV4dCgpIGNvbnN0
IHsgcmV0dXJuIGFyaWFSb2xlQXR0cmlidXRlKCkgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlN0YXRp
Y1RleHQ7IH0KICAgICBTdHJpbmcgc3RyaW5nVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB7IH07IH0KKyAgICBib29sIGRlcGVuZHNPblRleHRVbmRlckVsZW1lbnQoKSBjb25zdDsKICAg
ICBTdHJpbmcgdGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1v
ZGUgPSBBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1vZGUoKSkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4geyB9OyB9CiAgICAgU3RyaW5nIHRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB7IH07IH0KICAgICB1bnNpZ25lZCB0ZXh0TGVuZ3RoKCkgY29uc3QgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
VHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkVHJlZS5jcHAKaW5kZXggZDNlOGY2ZWZjNzE3Li5lZjIzMTM3ODExMjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRU
cmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkVHJlZS5jcHAKQEAgLTY0NCw2ICs2NDQsOSBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVl
Ojp1cGRhdGVOb2RlUHJvcGVydGllcyhBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBjb25zdCBBWFBy
b3BlcgogICAgICAgICBjYXNlIEFYUHJvcGVydHlOYW1lOjpSZW1vdGVGcmFtZVBsYXRmb3JtRWxl
bWVudDoKICAgICAgICAgICAgIHByb3BlcnR5TWFwLnNldChBWFByb3BlcnR5TmFtZTo6UmVtb3Rl
RnJhbWVQbGF0Zm9ybUVsZW1lbnQsIGF4T2JqZWN0LnJlbW90ZUZyYW1lUGxhdGZvcm1FbGVtZW50
KCkpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhQcm9wZXJ0eU5hbWU6OlN0
cmluZ1ZhbHVlOgorICAgICAgICAgICAgcHJvcGVydHlNYXAuc2V0KEFYUHJvcGVydHlOYW1lOjpT
dHJpbmdWYWx1ZSwgYXhPYmplY3Quc3RyaW5nVmFsdWUoKS5pc29sYXRlZENvcHkoKSk7CisgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWFByb3BlcnR5TmFtZTo6SGFzUmVtb3RlRnJh
bWVDaGlsZDoKICAgICAgICAgICAgIHByb3BlcnR5TWFwLnNldChBWFByb3BlcnR5TmFtZTo6SGFz
UmVtb3RlRnJhbWVDaGlsZCwgYXhPYmplY3QuaGFzUmVtb3RlRnJhbWVDaGlsZCgpKTsKICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtNzAzLDYgKzcwNiw5IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVw
ZGF0ZU5vZGVQcm9wZXJ0aWVzKEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIGNvbnN0IEFYUHJvcGVy
CiAgICAgICAgICAgICBwcm9wZXJ0eU1hcC5zZXQoQVhQcm9wZXJ0eU5hbWU6OlRleHRSdW5zLCBk
eW5hbWljRG93bmNhc3Q8QWNjZXNzaWJpbGl0eU9iamVjdD4oYXhPYmplY3QpLT50ZXh0UnVucygp
KTsKICAgICAgICAgICAgIGJyZWFrOwogI2VuZGlmCisgICAgICAgIGNhc2UgQVhQcm9wZXJ0eU5h
bWU6OlRpdGxlOgorICAgICAgICAgICAgcHJvcGVydHlNYXAuc2V0KEFYUHJvcGVydHlOYW1lOjpU
aXRsZSwgYXhPYmplY3QudGl0bGUoKS5pc29sYXRlZENvcHkoKSk7CisgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBBWFByb3BlcnR5TmFtZTo6VVJMOgogICAgICAgICAgICAgcHJvcGVy
dHlNYXAuc2V0KEFYUHJvcGVydHlOYW1lOjpVUkwsIGF4T2JqZWN0LnVybCgpLmlzb2xhdGVkQ29w
eSgpKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNzM4LDkgKzc0NCwxMyBAQCB2b2lkIEFYSXNv
bGF0ZWRUcmVlOjp1cGRhdGVEZXBlbmRlbnRQcm9wZXJ0aWVzKEFjY2Vzc2liaWxpdHlPYmplY3Qm
IGF4T2JqZWN0KQogCiAgICAgYXV0byB1cGRhdGVMYWJlbGVkT2JqZWN0cyA9IFt0aGlzXSAoY29u
c3QgQWNjZXNzaWJpbGl0eU9iamVjdCYgbGFiZWwpIHsKICAgICAgICAgYXV0byBsYWJlbGVkT2Jq
ZWN0cyA9IGxhYmVsLmxhYmVsRm9yT2JqZWN0cygpOwotICAgICAgICBmb3IgKGF1dG8mIGxhYmVs
ZWRPYmplY3QgOiBsYWJlbGVkT2JqZWN0cykgewotICAgICAgICAgICAgaWYgKFJlZlB0ciBheE9i
amVjdCA9IGR5bmFtaWNEb3duY2FzdDxBY2Nlc3NpYmlsaXR5T2JqZWN0PihsYWJlbGVkT2JqZWN0
LmdldCgpKSkKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBsYWJlbGVkT2JqZWN0IDogbGFiZWxl
ZE9iamVjdHMpIHsKKyAgICAgICAgICAgIGlmIChSZWZQdHIgYXhPYmplY3QgPSBjaGVja2VkRG93
bmNhc3Q8QWNjZXNzaWJpbGl0eU9iamVjdD4obGFiZWxlZE9iamVjdC5nZXQoKSkpIHsKKyAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogRm9yIHBlcmZvcm1hbmNlLCB0aGlzIHNob3VsZCBiZToKKyAg
ICAgICAgICAgICAgICAvLyBxdWV1ZU5vZGVVcGRhdGUoYXhPYmplY3QtPm9iamVjdElEKCksIE5v
ZGVVcGRhdGVPcHRpb25zOjpub2RlVXBkYXRlKCkpCisgICAgICAgICAgICAgICAgLy8gQnV0IHRo
YXQgY2F1c2VzIGEgdGVzdCBmYWlsdXJlLgogICAgICAgICAgICAgICAgIHVwZGF0ZU5vZGUoKmF4
T2JqZWN0KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH07CiAgICAgdXBkYXRlTGFi
ZWxlZE9iamVjdHMoYXhPYmplY3QpOwpAQCAtNzU4LDggKzc2OCw4IEBAIHZvaWQgQVhJc29sYXRl
ZFRyZWU6OnVwZGF0ZURlcGVuZGVudFByb3BlcnRpZXMoQWNjZXNzaWJpbGl0eU9iamVjdCYgYXhP
YmplY3QpCiAgICAgICAgICAgICAvLyBPbmx5IGB1cGRhdGVDaGlsZHJlbmAgaWYgdGhlIHRhYmxl
IGlzIHVuaWdub3JlZCwgYmVjYXVzZSBvdGhlcndpc2UgYHVwZGF0ZUNoaWxkcmVuYCB3aWxsIGFz
Y2VuZCBhbmQgdXBkYXRlIHRoZSBuZXh0IGhpZ2hlc3QgdW5pZ25vcmVkIGFuY2VzdG9yLCB3aGlj
aCBkb2Vzbid0IGFjY29tcGxpc2ggb3VyIGdvYWwgb2YgdXBkYXRpbmcgdGFibGUgY29sdW1ucy4K
ICAgICAgICAgICAgIGlmIChhbmNlc3Rvci0+YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpKQogICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgLy8gVXNlIGB1cGRhdGVDaGlsZHJlbmAg
cmF0aGVyIHRoYW4gYHVwZGF0ZU5vZGVQcm9wZXJ0eWAgYmVjYXVzZSBgdXBkYXRlQ2hpbGRyZW5g
IHdpbGwgZW5zdXJlIHRoZSBjb2x1bW5zICh3aGljaCBhcmUgY2hpbGRyZW4pIHdpbGwgaGF2ZSBh
c3NvY2lhdGVkIGlzb2xhdGVkIG9iamVjdHMgY3JlYXRlZC4KLSAgICAgICAgICAgIHVwZGF0ZUNo
aWxkcmVuKCphbmNlc3RvciwgUmVzb2x2ZU5vZGVDaGFuZ2VzOjpObyk7CisgICAgICAgICAgICAv
LyBVc2UgYE5vZGVVcGRhdGVPcHRpb25zOjpjaGlsZHJlblVwZGF0ZSgpYCByYXRoZXIgdGhhbiBg
dXBkYXRlTm9kZVByb3BlcnR5YCBiZWNhdXNlIGBjaGlsZHJlblVwZGF0ZSgpYCB3aWxsIGVuc3Vy
ZSB0aGUgY29sdW1ucyAod2hpY2ggYXJlIGNoaWxkcmVuKSB3aWxsIGhhdmUgYXNzb2NpYXRlZCBp
c29sYXRlZCBvYmplY3RzIGNyZWF0ZWQuCisgICAgICAgICAgICBxdWV1ZU5vZGVVcGRhdGUoYW5j
ZXN0b3ItPm9iamVjdElEKCksIE5vZGVVcGRhdGVPcHRpb25zOjpjaGlsZHJlblVwZGF0ZSgpKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCmluZGV4
IDlhZWY3YjFjZGMwMS4uNjc1NzJlY2YzNDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKQEAgLTM0
MSw3ICszNDEsNyBAQCBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBSZXNvbHZlTm9kZUNoYW5nZXMg
OiBib29sIHsgTm8sIFllcyB9OwogICAgIHZvaWQgdXBkYXRlQ2hpbGRyZW4oQWNjZXNzaWJpbGl0
eU9iamVjdCYsIFJlc29sdmVOb2RlQ2hhbmdlcyA9IFJlc29sdmVOb2RlQ2hhbmdlczo6WWVzKTsK
ICAgICB2b2lkIHVwZGF0ZUNoaWxkcmVuRm9yT2JqZWN0cyhjb25zdCBMaXN0SGFzaFNldDxSZWZQ
dHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+Jik7Ci0gICAgdm9pZCB1cGRhdGVOb2RlUHJvcGVydHko
QVhDb3JlT2JqZWN0JiBvYmplY3QsIEFYUHJvcGVydHlOYW1lIHByb3BlcnR5KSB7IHVwZGF0ZU5v
ZGVQcm9wZXJ0aWVzKG9iamVjdCwgeyBwcm9wZXJ0eSB9KTsgfTsKKyAgICB2b2lkIHVwZGF0ZU5v
ZGVQcm9wZXJ0eShBWENvcmVPYmplY3QmIG9iamVjdCwgQVhQcm9wZXJ0eU5hbWUgcHJvcGVydHkp
IHsgdXBkYXRlTm9kZVByb3BlcnRpZXMob2JqZWN0LCB7IHByb3BlcnR5IH0pOyB9CiAgICAgdm9p
ZCB1cGRhdGVOb2RlUHJvcGVydGllcyhBWENvcmVPYmplY3QmLCBjb25zdCBBWFByb3BlcnR5TmFt
ZVNldCYpOwogICAgIHZvaWQgdXBkYXRlRGVwZW5kZW50UHJvcGVydGllcyhBY2Nlc3NpYmlsaXR5
T2JqZWN0Jik7CiAgICAgdm9pZCB1cGRhdGVQcm9wZXJ0aWVzRm9yU2VsZkFuZERlc2NlbmRhbnRz
KEFjY2Vzc2liaWxpdHlPYmplY3QmLCBjb25zdCBBWFByb3BlcnR5TmFtZVNldCYpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9keW5hbWljLXRleHQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9keW5hbWljLXRleHQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYzE5ZTBmNjAzNDM4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9keW5hbWljLXRleHQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzYgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHdlIHVwZGF0ZSB0
aGUgYWNjZXNzaWJpbGl0eSB0cmVlIHdoZW4gc3RhdGljIHRleHQgY2hhbmdlcy4KKworUEFTUzog
d2ViYXJlYS5jaGlsZEF0SW5kZXgoMCkucm9sZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCd0ZXh0
JykgPT09IHRydWUKK0FYVmFsdWU6IEluaXRpYWwgc3RhdGljIHRleHQKKworI2J1dHRvbiB0ZXh0
IGFsdGVybmF0aXZlczoKKwlBWFRpdGxlOiBJbml0aWFsIGJ1dHRvbiB0ZXh0CisJQVhEZXNjcmlw
dGlvbjoKKwlBWEhlbHA6CisKK1BBU1M6IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2li
bGVFbGVtZW50QnlJZCgnbGFiZWwnKS5zdHJpbmdWYWx1ZS5pbmNsdWRlcygnSW5pdGlhbCBsYWJl
bCB0ZXh0JykgPT09IHRydWUKKyNjaGVja2JveCB0ZXh0IGFsdGVybmF0aXZlczoKKwlBWFRpdGxl
OiBJbml0aWFsIGxhYmVsIHRleHQKKwlBWERlc2NyaXB0aW9uOgorCUFYSGVscDoKKworUEFTUzog
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCd0ZXh0YXJlYScp
LnN0cmluZ1ZhbHVlLmluY2x1ZGVzKCdJbml0aWFsIHRleHRhcmVhIHRleHQnKSA9PT0gdHJ1ZQor
CisjYnV0dG9uIHRleHQgYWx0ZXJuYXRpdmVzOgorCUFYVGl0bGU6IENoYW5nZWQgYnV0dG9uIHRl
eHQKKwlBWERlc2NyaXB0aW9uOgorCUFYSGVscDoKKworUEFTUzogd2ViYXJlYS5jaGlsZEF0SW5k
ZXgoMCkuc3RyaW5nVmFsdWUuaW5jbHVkZXMoJ0NoYW5nZWQgc3RhdGljIHRleHQnKSA9PT0gdHJ1
ZQorUEFTUzogYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCds
YWJlbCcpLnN0cmluZ1ZhbHVlLmluY2x1ZGVzKCdDaGFuZ2VkIGxhYmVsIHRleHQnKSA9PT0gdHJ1
ZQorI2NoZWNrYm94IHRleHQgYWx0ZXJuYXRpdmVzOgorCUFYVGl0bGU6IENoYW5nZWQgbGFiZWwg
dGV4dAorCUFYRGVzY3JpcHRpb246CisJQVhIZWxwOgorCitQQVNTOiBhY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ3RleHRhcmVhJykuc3RyaW5nVmFsdWUuaW5j
bHVkZXMoJ0NoYW5nZWQgdGV4dGFyZWEgdGV4dCcpID09PSB0cnVlCisKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorQ2hhbmdlZCBzdGF0aWMgdGV4dENo
YW5nZWQgYnV0dG9uIHRleHQgQ2hhbmdlZCBsYWJlbCB0ZXh0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9keW5hbWljLXRleHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjA0ZDdjN2QwYjA0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0Lmh0bWwKQEAgLTAsMCArMSw3NyBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorSW5pdGlhbCBzdGF0aWMgdGV4dAorPGJ1dHRvbiBpZD0iYnV0dG9uIj5Jbml0
aWFsIGJ1dHRvbiB0ZXh0PC9idXR0b24+Cis8bGFiZWwgaWQ9ImxhYmVsIiBmb3I9ImNoZWNrYm94
Ij5Jbml0aWFsIGxhYmVsIHRleHQ8L2xhYmVsPgorPGlucHV0IGlkPSJjaGVja2JveCIgdHlwZT0i
Y2hlY2tib3giIG5hbWU9ImNoZWNrYm94IiAvPgorPHRleHRhcmVhIGlkPSJ0ZXh0YXJlYSI+SW5p
dGlhbCB0ZXh0YXJlYSB0ZXh0PC90ZXh0YXJlYT4KKyAgICAKKzxzY3JpcHQ+Cit2YXIgb3V0cHV0
ID0gIlRoaXMgdGVzdCBlbnN1cmVzIHdlIHVwZGF0ZSB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlIHdo
ZW4gc3RhdGljIHRleHQgY2hhbmdlcy5cblxuIjsKKworZnVuY3Rpb24gdGV4dEFsdGVybmF0aXZl
cyhpZCkgeworICAgIGxldCByZXN1bHQgPSAnJzsKKyAgICByZXN1bHQgKz0gYCMke2lkfSB0ZXh0
IGFsdGVybmF0aXZlczpcbmAKKyAgICByZXN1bHQgKz0gYCR7cGxhdGZvcm1UZXh0QWx0ZXJuYXRp
dmVzKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZChpZCkpfVxu
XG5gOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2lmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIpIHsKKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgY29uc3Qg
aXNJT1MgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5wbGF0Zm9ybU5hbWUgPT09ICJpb3MiOwor
CisgICAgdmFyIHdlYmFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5j
aGlsZEF0SW5kZXgoMCk7CisgICAgaWYgKCFpc0lPUykgeworICAgICAgICAvLyBTdGF0aWMgdGV4
dCBzdHJpbmdWYWx1ZS4KKyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgid2ViYXJlYS5jaGlsZEF0
SW5kZXgoMCkucm9sZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCd0ZXh0JykiLCAidHJ1ZSIpOwor
ICAgICAgICBvdXRwdXQgKz0gYCR7d2ViYXJlYS5jaGlsZEF0SW5kZXgoMCkuc3RyaW5nVmFsdWV9
XG5cbmA7CisgICAgfQorCisgICAgb3V0cHV0ICs9IHRleHRBbHRlcm5hdGl2ZXMoImJ1dHRvbiIp
OworCisgICAgaWYgKCFpc0lPUykKKyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgiYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdsYWJlbCcpLnN0cmluZ1ZhbHVl
LmluY2x1ZGVzKCdJbml0aWFsIGxhYmVsIHRleHQnKSIsICJ0cnVlIik7CisKKyAgICAvLyBMYWJl
bGxlZCBjb250cm9sIHRpdGxlLgorICAgIG91dHB1dCArPSB0ZXh0QWx0ZXJuYXRpdmVzKCJjaGVj
a2JveCIpOworCisgICAgLy8gVGV4dGFyZWEgc3RyaW5nVmFsdWUuCisgICAgb3V0cHV0ICs9IGV4
cGVjdCgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCd0ZXh0
YXJlYScpLnN0cmluZ1ZhbHVlLmluY2x1ZGVzKCdJbml0aWFsIHRleHRhcmVhIHRleHQnKSIsICJ0
cnVlIik7CisgICAgb3V0cHV0ICs9ICJcbiI7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiYnV0dG9uIikuZmlyc3RDaGlsZC5ub2RlVmFsdWUgPSAiQ2hhbmdlZCBidXR0b24gdGV4dCI7
CisgICAgc2V0VGltZW91dChhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgbGV0IG5ld1BsYXRm
b3JtVGV4dDsKKyAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7CisgICAgICAgICAgICBuZXdQ
bGF0Zm9ybVRleHQgPSB0ZXh0QWx0ZXJuYXRpdmVzKCJidXR0b24iKTsKKyAgICAgICAgICAgIHJl
dHVybiBuZXdQbGF0Zm9ybVRleHQuaW5jbHVkZXMoIkNoYW5nZWQgYnV0dG9uIHRleHQiKTsKKyAg
ICAgICAgfSk7CisgICAgICAgIG91dHB1dCArPSBuZXdQbGF0Zm9ybVRleHQ7CisKKworICAgICAg
ICBpZiAoIWlzSU9TKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgiYm9keSIpWzBdLmZpcnN0Q2hpbGQubm9kZVZhbHVlID0gIkNoYW5nZWQgc3RhdGljIHRleHQi
OworICAgICAgICAgICAgb3V0cHV0ICs9IGF3YWl0IGV4cGVjdEFzeW5jKCJ3ZWJhcmVhLmNoaWxk
QXRJbmRleCgwKS5zdHJpbmdWYWx1ZS5pbmNsdWRlcygnQ2hhbmdlZCBzdGF0aWMgdGV4dCcpIiwg
InRydWUiKTsKKyAgICAgICAgfQorCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJs
YWJlbCIpLmZpcnN0Q2hpbGQubm9kZVZhbHVlID0gIkNoYW5nZWQgbGFiZWwgdGV4dCI7CisgICAg
ICAgIGlmICghaXNJT1MpCisgICAgICAgICAgICBvdXRwdXQgKz0gYXdhaXQgZXhwZWN0QXN5bmMo
ImFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgnbGFiZWwnKS5z
dHJpbmdWYWx1ZS5pbmNsdWRlcygnQ2hhbmdlZCBsYWJlbCB0ZXh0JykiLCAidHJ1ZSIpOworICAg
ICAgICBvdXRwdXQgKz0gdGV4dEFsdGVybmF0aXZlcygiY2hlY2tib3giKTsKKworICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGFyZWEiKS5maXJzdENoaWxkLm5vZGVWYWx1ZSA9
ICJDaGFuZ2VkIHRleHRhcmVhIHRleHQiOworICAgICAgICBvdXRwdXQgKz0gYXdhaXQgZXhwZWN0
QXN5bmMoImFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgndGV4
dGFyZWEnKS5zdHJpbmdWYWx1ZS5pbmNsdWRlcygnQ2hhbmdlZCB0ZXh0YXJlYSB0ZXh0JykiLCAi
dHJ1ZSIpOworCisgICAgICAgIGRlYnVnKG91dHB1dCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworICAgIH0sIDApOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9keW5h
bWljLXRleHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMC4uZmI1NTU3ZDM4YzZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL2FjY2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDIyIEBACitUaGlzIHRlc3QgZW5zdXJlcyB3ZSB1cGRhdGUgdGhlIGFjY2Vzc2liaWxpdHkgdHJl
ZSB3aGVuIHN0YXRpYyB0ZXh0IGNoYW5nZXMuCisKKyNidXR0b24gdGV4dCBhbHRlcm5hdGl2ZXM6
CisJQVhMYWJlbDogSW5pdGlhbCBidXR0b24gdGV4dAorCisjY2hlY2tib3ggdGV4dCBhbHRlcm5h
dGl2ZXM6CisJQVhMYWJlbDogSW5pdGlhbCBsYWJlbCB0ZXh0CisKK1BBU1M6IGFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgndGV4dGFyZWEnKS5zdHJpbmdWYWx1
ZS5pbmNsdWRlcygnSW5pdGlhbCB0ZXh0YXJlYSB0ZXh0JykgPT09IHRydWUKKworI2J1dHRvbiB0
ZXh0IGFsdGVybmF0aXZlczoKKwlBWExhYmVsOiBDaGFuZ2VkIGJ1dHRvbiB0ZXh0CisKKyNjaGVj
a2JveCB0ZXh0IGFsdGVybmF0aXZlczoKKwlBWExhYmVsOiBDaGFuZ2VkIGxhYmVsIHRleHQKKwor
UEFTUzogYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCd0ZXh0
YXJlYScpLnN0cmluZ1ZhbHVlLmluY2x1ZGVzKCdDaGFuZ2VkIHRleHRhcmVhIHRleHQnKSA9PT0g
dHJ1ZQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
K0luaXRpYWwgc3RhdGljIHRleHQgQ2hhbmdlZCBidXR0b24gdGV4dCBDaGFuZ2VkIGxhYmVsIHRl
eHQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470119</attachid>
            <date>2024-03-01 10:51:04 -0800</date>
            <delta_ts>2024-03-01 12:53:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-270356-20240301105103.patch</filename>
            <type>text/plain</type>
            <size>23582</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSBlMTRhOWQ1MDRmYmIxYWVhNTRlMmVhYmFhYWMxMjgyOTI5YzEzY2Q4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogRnJpLCAxIE1hciAyMDI0IDA5OjQ4OjI3IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gQVg6IEFj
Y2Vzc2liaWxpdHlUZXh0IGlzIG5vdCB1cGRhdGVkIHdoZW4gc3RhdGljIHRleHQKIGRlc2NlbmRh
bnQgY2hhbmdlcyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjcwMzU2
CiByZGFyOi8vMTIzNzQxMjkyCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFkZCBhIG5l
dyBUZXh0VW5kZXJFbGVtZW50Q2hhbmdlZCBub3RpZmljYXRpb24gdG8gcmVwcmVzZW50IHRoaXMK
c2NlbmFyaW8gc28gd2UgY2FuIG1ha2UgcHJlY2lzZSB1cGRhdGVzIHRvIHRoZSBpc29sYXRlZCB0
cmVlLgoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC1leHBlY3RlZC50
eHQ6IEFkZGVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0Lmh0bWw6
IEFkZGVkLgoqIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMt
dGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYQ29yZU9iamVjdC5oOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIu
Y3BwOgooV2ViQ29yZTo6b3BlcmF0b3I8PCk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcDoKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZVRleHRD
aGFuZ2VkKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZSk6Ciog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CiogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CihXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dmlzaWJsZVRleHQgY29uc3QpOgoqIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpkZXBlbmRzT25UZXh0VW5kZXJFbGVtZW50IGNvbnN0KToKKiBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKiBTb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHA6
CihXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZVByb3BlcnRpZXMpOgooV2ViQ29y
ZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZURlcGVuZGVudFByb3BlcnRpZXMpOgoqIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmg6CihXZWJD
b3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZVByb3BlcnR5KToKLS0tCiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYQ29yZU9iamVjdC5oICAgfCAgMSArCiBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcCAgICAgfCAgOSArKysKIC4uLi9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICB8IDMzICsrKysrKy0tCiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCAgfCAgMSArCiAuLi4vYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgfCA0NiArLS0tLS0tLS0tLQogLi4uL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgICAgIHwgNDEgKysrKysrKysrKwog
Li4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oICAgICAgIHwgIDEgKwogLi4u
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAgICAgICAgICAgIHwgMTYgKystLQogLi4u
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oICAgICAgICAgICAgIHwgIDIgKy0KIC4uLi9h
Y2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC1leHBlY3RlZC50eHQgICB8IDM2ICsrKysrKysrKwog
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9keW5hbWljLXRleHQuaHRtbCAgIHwgNzcgKysrKysr
KysrKysrKysrKysrKwogLi4uL2FjY2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0LWV4cGVjdGVkLnR4
dCAgIHwgMjIgKysrKysrCiAxMiBmaWxlcyBjaGFuZ2VkLCAyMzAgaW5zZXJ0aW9ucygrKSwgNTUg
ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9keW5hbWljLXRleHQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9keW5hbWljLXRleHQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC1leHBlY3Rl
ZC50eHQKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYQ29yZU9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWENvcmVPYmplY3QuaAppbmRl
eCBhMmQ5M2I4OWNjYjkuLmYyMDI0Mzk2ZDUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWENvcmVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYQ29yZU9iamVjdC5oCkBAIC0xNzE5LDYgKzE3MTksNyBAQCBXVEY6OlRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQWNjZXNzaWJpbGl0eVNlYXJjaEtleSk7
CiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgQWNj
ZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhJik7CiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
V1RGOjpUZXh0U3RyZWFtJiwgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbik7CiBXVEY6OlRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgQVhDb3JlT2JqZWN0
Jik7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQWNjZXNz
aWJpbGl0eVRleHQpOwogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVh
bSYsIEFjY2Vzc2liaWxpdHlUZXh0U291cmNlKTsKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChXVEY6OlRleHRTdHJlYW0mLCBBWFJlbGF0aW9uVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKaW5kZXggNTJkOTkzY2U0ZjgzLi40OGI2YWQxYzgyYWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCkBAIC00MTIsNiAr
NDEyLDEyIEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgc3RyZWFtLCBjb25z
dCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEmIGNyCiAgICAgcmV0dXJuIHN0cmVhbTsKIH0K
IAorVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiBzdHJlYW0sIEFjY2Vzc2liaWxp
dHlUZXh0IHRleHQpCit7CisgICAgc3RyZWFtIDw8IHRleHQudGV4dFNvdXJjZSA8PCAiOiAiIDw8
IHRleHQudGV4dDsKKyAgICByZXR1cm4gc3RyZWFtOworfQorCiBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHN0cmVhbSwgQWNjZXNzaWJpbGl0eVRleHRTb3VyY2Ugc291cmNlKQog
ewogICAgIHN3aXRjaCAoc291cmNlKSB7CkBAIC03NzQsNiArNzgwLDkgQEAgVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiBzdHJlYW0sIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0
aW9uIG5vdGlmaWMKICAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWFRl
eHRDb21wb3NpdGlvbkNoYW5nZWQ6CiAgICAgICAgIHN0cmVhbSA8PCAiQVhUZXh0Q29tcG9zaXRp
b25DaGFuZ2VkIjsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWE5v
dGlmaWNhdGlvbjo6QVhUZXh0VW5kZXJFbGVtZW50Q2hhbmdlZDoKKyAgICAgICAgc3RyZWFtIDw8
ICJBWFRleHRVbmRlckVsZW1lbnRDaGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxF
KEFYX1RIUkVBRF9URVhUX0FQSVMpCiAgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNh
dGlvbjo6QVhUZXh0UnVuc0NoYW5nZWQ6CiAgICAgICAgIHN0cmVhbSA8PCAiQVhUZXh0UnVuc0No
YW5nZWQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKaW5kZXggOWJkYTMyOGVhMThhLi5mZWIwNjRiMTI1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMTE5OSwxNyArMTE5OSwzNSBA
QCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVRleHRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iamVjdCkKIAogICAgIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcm90ZWN0ZWRPYmpl
Y3QoKm9iamVjdCk7CiAKKyAgICBib29sIGlzVGV4dCA9IG9iamVjdC0+aXNTdGF0aWNUZXh0KCk7
CiAgICAgLy8gSWYgdGhpcyBlbGVtZW50IHN1cHBvcnRzIEFSSUEgbGl2ZSByZWdpb25zLCBvciBp
cyBwYXJ0IG9mIGEgcmVnaW9uIHdpdGggYW4gQVJJQSBlZGl0YWJsZSByb2xlLAogICAgIC8vIHRo
ZW4gbm90aWZ5IHRoZSBBVCBvZiBjaGFuZ2VzLgogICAgIGJvb2wgbm90aWZpZWROb25OYXRpdmVU
ZXh0Q29udHJvbCA9IGZhbHNlOwotICAgIGZvciAoUmVmUHRyIHBhcmVudCA9IG9iamVjdDsgcGFy
ZW50OyBwYXJlbnQgPSBwYXJlbnQtPnBhcmVudE9iamVjdCgpKSB7Ci0gICAgICAgIGlmIChwYXJl
bnQtPnN1cHBvcnRzTGl2ZVJlZ2lvbigpKQotICAgICAgICAgICAgcG9zdExpdmVSZWdpb25DaGFu
Z2VOb3RpZmljYXRpb24ocGFyZW50LmdldCgpKTsKKyAgICBmb3IgKFJlZlB0ciBhbmNlc3RvciA9
IG9iamVjdDsgYW5jZXN0b3I7IGFuY2VzdG9yID0gYW5jZXN0b3ItPnBhcmVudE9iamVjdCgpKSB7
CisgICAgICAgIGlmIChhbmNlc3Rvci0+c3VwcG9ydHNMaXZlUmVnaW9uKCkpCisgICAgICAgICAg
ICBwb3N0TGl2ZVJlZ2lvbkNoYW5nZU5vdGlmaWNhdGlvbihhbmNlc3Rvci5nZXQoKSk7CiAKLSAg
ICAgICAgaWYgKCFub3RpZmllZE5vbk5hdGl2ZVRleHRDb250cm9sICYmIHBhcmVudC0+aXNOb25O
YXRpdmVUZXh0Q29udHJvbCgpKSB7Ci0gICAgICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKHBhcmVu
dC5nZXQoKSwgcGFyZW50LT5wcm90ZWN0ZWREb2N1bWVudCgpLmdldCgpLCBBWFZhbHVlQ2hhbmdl
ZCk7CisgICAgICAgIGlmICghbm90aWZpZWROb25OYXRpdmVUZXh0Q29udHJvbCAmJiBhbmNlc3Rv
ci0+aXNOb25OYXRpdmVUZXh0Q29udHJvbCgpKSB7CisgICAgICAgICAgICBwb3N0Tm90aWZpY2F0
aW9uKGFuY2VzdG9yLmdldCgpLCBhbmNlc3Rvci0+cHJvdGVjdGVkRG9jdW1lbnQoKS5nZXQoKSwg
QVhWYWx1ZUNoYW5nZWQpOwogICAgICAgICAgICAgbm90aWZpZWROb25OYXRpdmVUZXh0Q29udHJv
bCA9IHRydWU7CiAgICAgICAgIH0KKworICAgICAgICBpZiAoaXNUZXh0KSB7CisgICAgICAgICAg
ICBib29sIGRlcGVuZHNPblRleHRVbmRlckVsZW1lbnQgPSBhbmNlc3Rvci0+ZGVwZW5kc09uVGV4
dFVuZGVyRWxlbWVudCgpOworICAgICAgICAgICAgYXV0byByb2xlID0gYW5jZXN0b3ItPnJvbGVW
YWx1ZSgpOworICAgICAgICAgICAgZGVwZW5kc09uVGV4dFVuZGVyRWxlbWVudCB8PSByb2xlID09
IEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0SXRlbSB8fCByb2xlID09IEFjY2Vzc2liaWxpdHlSb2xl
OjpMYWJlbDsKKworICAgICAgICAgICAgLy8gSWYgdGhlIHN0YXJ0aW5nIG9iamVjdCBpcyBhIHN0
YXRpYyB0ZXh0LCBpdHMgdW5kZXJseWluZyB0ZXh0IGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAg
aWYgKGRlcGVuZHNPblRleHRVbmRlckVsZW1lbnQpIHsKKyAgICAgICAgICAgICAgICAvLyBJbmZv
cm0gdGhpcyBhbmNlc3RvciBpdHMgdGV4dFVuZGVyRWxlbWVudC1kZXBlbmRlbnQgZGF0YSBpcyBu
b3cgb3V0LW9mLWRhdGUuCisgICAgICAgICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihhbmNlc3Rv
ci5nZXQoKSwgbnVsbHB0ciwgQVhUZXh0VW5kZXJFbGVtZW50Q2hhbmdlZCk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIC8vIEFueSBvYmplY3RzIHRoaXMgYW5jZXN0b3IgbGFiZWxlZCBu
b3cgYWxzbyBuZWVkIG5ldyBBY2Nlc3NpYmlsaXR5VGV4dC4KKyAgICAgICAgICAgIGF1dG8gbGFi
ZWxlZE9iamVjdHMgPSBhbmNlc3Rvci0+bGFiZWxGb3JPYmplY3RzKCk7CisgICAgICAgICAgICBm
b3IgKGNvbnN0IGF1dG8mIGxhYmVsZWRPYmplY3QgOiBsYWJlbGVkT2JqZWN0cykKKyAgICAgICAg
ICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKGNoZWNrZWREb3duY2FzdDxBY2Nlc3NpYmlsaXR5T2Jq
ZWN0PihsYWJlbGVkT2JqZWN0LmdldCgpKSwgbnVsbHB0ciwgQVhUZXh0Q2hhbmdlZCk7CisgICAg
ICAgIH0KICAgICB9CiAKICAgICBwb3N0Tm90aWZpY2F0aW9uKG9iamVjdCwgb2JqZWN0LT5wcm90
ZWN0ZWREb2N1bWVudCgpLmdldCgpLCBBWFRleHRDaGFuZ2VkKTsKQEAgLTQ0MDMsNiArNDQyMSwx
MSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZShjb25zdCBWZWN0b3I8
c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaQogICAgICAgICBjYXNlIEFYVGV4dENvbXBvc2l0
aW9uQ2hhbmdlZDoKICAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRp
b24uZmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OlRleHRJbnB1dE1hcmtlZFRl
eHRNYXJrZXJSYW5nZSB9KTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4
dFVuZGVyRWxlbWVudENoYW5nZWQ6CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUo
bm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IHsgQVhQcm9wZXJ0eU5hbWU6OkFjY2Vz
c2liaWxpdHlUZXh0LCBBWFByb3BlcnR5TmFtZTo6VGl0bGUgfSB9KTsKKyAgICAgICAgICAgIGlm
IChub3RpZmljYXRpb24uZmlyc3QtPmlzQWNjZXNzaWJpbGl0eUxhYmVsSW5zdGFuY2UoKSkKKyAg
ICAgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5v
YmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1lOjpTdHJpbmdWYWx1ZSB9KTsKKyAgICAgICAgICAg
IGJyZWFrOwogI2lmIEVOQUJMRShBWF9USFJFQURfVEVYVF9BUElTKQogICAgICAgICBjYXNlIEFY
VGV4dFJ1bnNDaGFuZ2VkOgogICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlm
aWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6VGV4dFJ1bnMgfSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IDgw
ZThkNWQ0OGNhMC4uNDU0ZjVhNGE4NjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtNDMwLDYgKzQzMCw3IEBAIHB1YmxpYzoKICAgICAgICAg
QVhTb3J0RGlyZWN0aW9uQ2hhbmdlZCwKICAgICAgICAgQVhUZXh0Q2hhbmdlZCwKICAgICAgICAg
QVhUZXh0Q29tcG9zaXRpb25DaGFuZ2VkLAorICAgICAgICBBWFRleHRVbmRlckVsZW1lbnRDaGFu
Z2VkLAogI2lmIEVOQUJMRShBWF9USFJFQURfVEVYVF9BUElTKQogICAgICAgICBBWFRleHRSdW5z
Q2hhbmdlZCwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCA5ZmNiZjhkMzkxNTIuLjNjYWU4
NjlkYjRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTE4ODgsNyArMTg4OCw3IEBAIHZvaWQgQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFsdGVybmF0aXZlVGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0
eVRleHQ+JiB0ZXh0T3JkCiAKIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnZpc2libGVU
ZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mIHRleHRPcmRlcikgY29uc3QKIHsKLSAgICBO
b2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOworICAgIFdlYWtQdHIgbm9kZSA9IHRoaXMtPm5vZGUo
KTsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTkwMSw0OSArMTkwMSw3
IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnZpc2libGVUZXh0KFZlY3RvcjxBY2Nl
c3NpYmlsaXR5VGV4dD4mIHRleHRPcmRlcikKICAgICBpZiAoIWlzQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdCgpICYmIG5vZGUtPmhhc1RhZ05hbWUoc2VsZWN0VGFnKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgYm9vbCB1c2VUZXh0VW5kZXJFbGVtZW50ID0gZmFsc2U7Ci0KLSAgICBzd2l0Y2gg
KHJvbGVWYWx1ZSgpKSB7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UG9wVXBCdXR0b246
Ci0gICAgICAgIC8vIE5hdGl2ZSBwb3B1cCBidXR0b25zIHNob3VsZCBub3QgdXNlIHRoZWlyIGJ1
dHRvbiBjaGlsZHJlbidzIHRleHQgYXMgYSB0aXRsZS4gVGhhdCB2YWx1ZSBpcyByZXRyaWV2ZWQg
dGhyb3VnaCBzdHJpbmdWYWx1ZSgpLgotICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShzZWxl
Y3RUYWcpKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIEZBTExUSFJPVUdIOwotICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN1bW1hcnk6Ci0gICAgICAgIC8vIFRoZSB0ZXh0IG5vZGUg
Zm9yIGEgPHN1bW1hcnk+IGVsZW1lbnQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIGl0cyB2aXNpYmxl
IHRleHQsIHVubGVzcyBhIHRpdGxlIGF0dHJpYnV0ZSBpcyBwcmVzZW50LgotICAgICAgICBpZiAo
IWhhc0F0dHJpYnV0ZSh0aXRsZUF0dHIpKQotICAgICAgICAgICAgdXNlVGV4dFVuZGVyRWxlbWVu
dCA9IHRydWU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJ1
dHRvbjoKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUb2dnbGVCdXR0b246Ci0gICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2hlY2tib3g6Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6TGlzdEJveE9wdGlvbjoKLSAgICAvLyBNYWNPUyBkb2VzIG5vdCBleHBlY3QgbmF0aXZlIDxs
aT4gZWxlbWVudHMgdG8gZXhwb3NlIGxhYmVsIGluZm9ybWF0aW9uLCBpdCBvbmx5IGV4cGVjdHMg
bGVhZiBub2RlIGVsZW1lbnRzIHRvIGRvIHRoYXQuCi0jaWYgIVBMQVRGT1JNKENPQ09BKQotICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RJdGVtOgotI2VuZGlmCi0gICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6TWVudUJ1dHRvbjoKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpN
ZW51SXRlbToKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51SXRlbUNoZWNrYm94Ogot
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtUmFkaW86Ci0gICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6UmFkaW9CdXR0b246Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
U3dpdGNoOgotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYjoKLSAgICAgICAgdXNlVGV4
dFVuZGVyRWxlbWVudCA9IHRydWU7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAg
ICAgIGJyZWFrOwotICAgIH0KLQotICAgIC8vIElmIGl0J3MgZm9jdXNhYmxlIGJ1dCBpdCdzIG5v
dCBjb250ZW50IGVkaXRhYmxlIG9yIGEga25vd24gY29udHJvbCB0eXBlLCB0aGVuIGl0IHdpbGwg
YXBwZWFyIHRvCi0gICAgLy8gdGhlIHVzZXIgYXMgYSBzaW5nbGUgYXRvbWljIG9iamVjdCwgc28g
d2Ugc2hvdWxkIHVzZSBpdHMgdGV4dCBhcyB0aGUgZGVmYXVsdCB0aXRsZS4KLSAgICBpZiAoaXNI
ZWFkaW5nKCkgfHwgaXNMaW5rKCkpCi0gICAgICAgIHVzZVRleHRVbmRlckVsZW1lbnQgPSB0cnVl
OwotCi0gICAgaWYgKGlzT3V0cHV0KCkpCi0gICAgICAgIHVzZVRleHRVbmRlckVsZW1lbnQgPSB0
cnVlOwotCi0gICAgaWYgKHVzZVRleHRVbmRlckVsZW1lbnQpIHsKKyAgICBpZiAoZGVwZW5kc09u
VGV4dFVuZGVyRWxlbWVudCgpKSB7CiAgICAgICAgIEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVt
ZW50TW9kZSBtb2RlOwogCiAgICAgICAgIC8vIEhlYWRpbmdzIG9mdGVuIGluY2x1ZGUgbGlua3Mg
YXMgZGlyZWN0IGNoaWxkcmVuLiBUaG9zZSBsaW5rcyBuZWVkIHRvIGJlIGluY2x1ZGVkIGluIHRl
eHQgdW5kZXIgZWxlbWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDUyY2YwMmQ3Y2UwOC4uNjQ3MjYxM2I3Yzkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHAKQEAgLTE5MjQsNiArMTkyNCw0NyBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmpl
Y3Q6Omhhc0NvbnRlbnRFZGl0YWJsZUF0dHJpYnV0ZVNldCgpIGNvbnN0CiAgICAgcmV0dXJuIGNv
bnRlbnRFZGl0YWJsZUF0dHJpYnV0ZUlzRW5hYmxlZChlbGVtZW50KCkpOwogfQogCitib29sIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmRlcGVuZHNPblRleHRVbmRlckVsZW1lbnQoKSBjb25zdAorewor
ICAgIHN3aXRjaCAocm9sZVZhbHVlKCkpIHsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQ
b3BVcEJ1dHRvbjoKKyAgICAgICAgLy8gTmF0aXZlIHBvcHVwIGJ1dHRvbnMgc2hvdWxkIG5vdCB1
c2UgdGhlaXIgZGVzY2VuZGFudCdzIHRleHQgYXMgYSB0aXRsZS4gVGhhdCB2YWx1ZSBpcyByZXRy
aWV2ZWQgdGhyb3VnaCBzdHJpbmdWYWx1ZSgpLgorICAgICAgICBpZiAoaGFzVGFnTmFtZShzZWxl
Y3RUYWcpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIEZBTExUSFJPVUdIOworICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN1bW1hcnk6CisgICAgICAgIC8vIFRoZSB0ZXh0IG5vZGUg
Zm9yIGEgPHN1bW1hcnk+IGVsZW1lbnQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIGl0cyB2aXNpYmxl
IHRleHQsIHVubGVzcyBhIHRpdGxlIGF0dHJpYnV0ZSBpcyBwcmVzZW50LgorICAgICAgICBpZiAo
IWhhc0F0dHJpYnV0ZSh0aXRsZUF0dHIpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJ1dHRvbjoKKyAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpUb2dnbGVCdXR0b246CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6Q2hlY2tib3g6CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEJveE9wdGlv
bjoKKyNpZiAhUExBVEZPUk0oQ09DT0EpCisgICAgLy8gTWFjT1MgZG9lcyBub3QgZXhwZWN0IG5h
dGl2ZSA8bGk+IGVsZW1lbnRzIHRvIGV4cG9zZSBsYWJlbCBpbmZvcm1hdGlvbiwgaXQgb25seSBl
eHBlY3RzIGxlYWYgbm9kZSBlbGVtZW50cyB0byBkbyB0aGF0LgorICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6Okxpc3RJdGVtOgorI2VuZGlmCisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TWVudUJ1dHRvbjoKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51SXRlbToKKyAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51SXRlbUNoZWNrYm94OgorICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6Ok1lbnVJdGVtUmFkaW86CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
UmFkaW9CdXR0b246CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3dpdGNoOgorICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYjoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgLy8gSWYgaXQncyBmb2N1c2FibGUg
YnV0IGl0J3Mgbm90IGNvbnRlbnQgZWRpdGFibGUgb3IgYSBrbm93biBjb250cm9sIHR5cGUsIHRo
ZW4gaXQgd2lsbCBhcHBlYXIgdG8KKyAgICAvLyB0aGUgdXNlciBhcyBhIHNpbmdsZSBhdG9taWMg
b2JqZWN0LCBzbyB3ZSBzaG91bGQgdXNlIGl0cyB0ZXh0IGFzIHRoZSBkZWZhdWx0IHRpdGxlLgor
ICAgIGlmIChpc0hlYWRpbmcoKSB8fCBpc0xpbmsoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisK
KyAgICByZXR1cm4gaXNPdXRwdXQoKTsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpz
dXBwb3J0c1JlYWRPbmx5KCkgY29uc3QKIHsKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlID0g
cm9sZVZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oCmluZGV4IDgzMDQ5NDM4NWE2OC4uOWQ0OTQ1M2Q4OWUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApA
QCAtMzg3LDYgKzM4Nyw3IEBAIHB1YmxpYzoKICAgICAvLyBNZXRob2RzIGZvciBkZXRlcm1pbmlu
ZyBhY2Nlc3NpYmlsaXR5IHRleHQuCiAgICAgYm9vbCBpc0FSSUFTdGF0aWNUZXh0KCkgY29uc3Qg
eyByZXR1cm4gYXJpYVJvbGVBdHRyaWJ1dGUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3RhdGlj
VGV4dDsgfQogICAgIFN0cmluZyBzdHJpbmdWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHsgfTsgfQorICAgIGJvb2wgZGVwZW5kc09uVGV4dFVuZGVyRWxlbWVudCgpIGNvbnN0OwogICAg
IFN0cmluZyB0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9k
ZSA9IEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZSgpKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB7IH07IH0KICAgICBTdHJpbmcgdGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHsgfTsgfQogICAgIHVuc2lnbmVkIHRleHRMZW5ndGgoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRU
cmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRUcmVlLmNwcAppbmRleCBkM2U4ZjZlZmM3MTcuLmRmZGU3YWNiNGQ5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRy
ZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRUcmVlLmNwcApAQCAtNjQ0LDYgKzY0NCw5IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6
OnVwZGF0ZU5vZGVQcm9wZXJ0aWVzKEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIGNvbnN0IEFYUHJv
cGVyCiAgICAgICAgIGNhc2UgQVhQcm9wZXJ0eU5hbWU6OlJlbW90ZUZyYW1lUGxhdGZvcm1FbGVt
ZW50OgogICAgICAgICAgICAgcHJvcGVydHlNYXAuc2V0KEFYUHJvcGVydHlOYW1lOjpSZW1vdGVG
cmFtZVBsYXRmb3JtRWxlbWVudCwgYXhPYmplY3QucmVtb3RlRnJhbWVQbGF0Zm9ybUVsZW1lbnQo
KSk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFByb3BlcnR5TmFtZTo6U3Ry
aW5nVmFsdWU6CisgICAgICAgICAgICBwcm9wZXJ0eU1hcC5zZXQoQVhQcm9wZXJ0eU5hbWU6OlN0
cmluZ1ZhbHVlLCBheE9iamVjdC5zdHJpbmdWYWx1ZSgpLmlzb2xhdGVkQ29weSgpKTsKKyAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYUHJvcGVydHlOYW1lOjpIYXNSZW1vdGVGcmFt
ZUNoaWxkOgogICAgICAgICAgICAgcHJvcGVydHlNYXAuc2V0KEFYUHJvcGVydHlOYW1lOjpIYXNS
ZW1vdGVGcmFtZUNoaWxkLCBheE9iamVjdC5oYXNSZW1vdGVGcmFtZUNoaWxkKCkpOwogICAgICAg
ICAgICAgYnJlYWs7CkBAIC03MDMsNiArNzA2LDkgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBk
YXRlTm9kZVByb3BlcnRpZXMoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgY29uc3QgQVhQcm9wZXIK
ICAgICAgICAgICAgIHByb3BlcnR5TWFwLnNldChBWFByb3BlcnR5TmFtZTo6VGV4dFJ1bnMsIGR5
bmFtaWNEb3duY2FzdDxBY2Nlc3NpYmlsaXR5T2JqZWN0PihheE9iamVjdCktPnRleHRSdW5zKCkp
OwogICAgICAgICAgICAgYnJlYWs7CiAjZW5kaWYKKyAgICAgICAgY2FzZSBBWFByb3BlcnR5TmFt
ZTo6VGl0bGU6CisgICAgICAgICAgICBwcm9wZXJ0eU1hcC5zZXQoQVhQcm9wZXJ0eU5hbWU6OlRp
dGxlLCBheE9iamVjdC50aXRsZSgpLmlzb2xhdGVkQ29weSgpKTsKKyAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIEFYUHJvcGVydHlOYW1lOjpVUkw6CiAgICAgICAgICAgICBwcm9wZXJ0
eU1hcC5zZXQoQVhQcm9wZXJ0eU5hbWU6OlVSTCwgYXhPYmplY3QudXJsKCkuaXNvbGF0ZWRDb3B5
KCkpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC03MzgsOSArNzQ0LDkgQEAgdm9pZCBBWElzb2xh
dGVkVHJlZTo6dXBkYXRlRGVwZW5kZW50UHJvcGVydGllcyhBY2Nlc3NpYmlsaXR5T2JqZWN0JiBh
eE9iamVjdCkKIAogICAgIGF1dG8gdXBkYXRlTGFiZWxlZE9iamVjdHMgPSBbdGhpc10gKGNvbnN0
IEFjY2Vzc2liaWxpdHlPYmplY3QmIGxhYmVsKSB7CiAgICAgICAgIGF1dG8gbGFiZWxlZE9iamVj
dHMgPSBsYWJlbC5sYWJlbEZvck9iamVjdHMoKTsKLSAgICAgICAgZm9yIChhdXRvJiBsYWJlbGVk
T2JqZWN0IDogbGFiZWxlZE9iamVjdHMpIHsKLSAgICAgICAgICAgIGlmIChSZWZQdHIgYXhPYmpl
Y3QgPSBkeW5hbWljRG93bmNhc3Q8QWNjZXNzaWJpbGl0eU9iamVjdD4obGFiZWxlZE9iamVjdC5n
ZXQoKSkpCi0gICAgICAgICAgICAgICAgdXBkYXRlTm9kZSgqYXhPYmplY3QpOworICAgICAgICBm
b3IgKGNvbnN0IGF1dG8mIGxhYmVsZWRPYmplY3QgOiBsYWJlbGVkT2JqZWN0cykgeworICAgICAg
ICAgICAgaWYgKFJlZlB0ciBheE9iamVjdCA9IGNoZWNrZWREb3duY2FzdDxBY2Nlc3NpYmlsaXR5
T2JqZWN0PihsYWJlbGVkT2JqZWN0LmdldCgpKSkKKyAgICAgICAgICAgICAgICBxdWV1ZU5vZGVV
cGRhdGUoYXhPYmplY3QtPm9iamVjdElEKCksIE5vZGVVcGRhdGVPcHRpb25zOjpub2RlVXBkYXRl
KCkpOwogICAgICAgICB9CiAgICAgfTsKICAgICB1cGRhdGVMYWJlbGVkT2JqZWN0cyhheE9iamVj
dCk7CkBAIC03NTgsOCArNzY0LDggQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlRGVwZW5k
ZW50UHJvcGVydGllcyhBY2Nlc3NpYmlsaXR5T2JqZWN0JiBheE9iamVjdCkKICAgICAgICAgICAg
IC8vIE9ubHkgYHVwZGF0ZUNoaWxkcmVuYCBpZiB0aGUgdGFibGUgaXMgdW5pZ25vcmVkLCBiZWNh
dXNlIG90aGVyd2lzZSBgdXBkYXRlQ2hpbGRyZW5gIHdpbGwgYXNjZW5kIGFuZCB1cGRhdGUgdGhl
IG5leHQgaGlnaGVzdCB1bmlnbm9yZWQgYW5jZXN0b3IsIHdoaWNoIGRvZXNuJ3QgYWNjb21wbGlz
aCBvdXIgZ29hbCBvZiB1cGRhdGluZyB0YWJsZSBjb2x1bW5zLgogICAgICAgICAgICAgaWYgKGFu
Y2VzdG9yLT5hY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAvLyBVc2UgYHVwZGF0ZUNoaWxkcmVuYCByYXRoZXIgdGhhbiBgdXBkYXRl
Tm9kZVByb3BlcnR5YCBiZWNhdXNlIGB1cGRhdGVDaGlsZHJlbmAgd2lsbCBlbnN1cmUgdGhlIGNv
bHVtbnMgKHdoaWNoIGFyZSBjaGlsZHJlbikgd2lsbCBoYXZlIGFzc29jaWF0ZWQgaXNvbGF0ZWQg
b2JqZWN0cyBjcmVhdGVkLgotICAgICAgICAgICAgdXBkYXRlQ2hpbGRyZW4oKmFuY2VzdG9yLCBS
ZXNvbHZlTm9kZUNoYW5nZXM6Ok5vKTsKKyAgICAgICAgICAgIC8vIFVzZSBgTm9kZVVwZGF0ZU9w
dGlvbnM6OmNoaWxkcmVuVXBkYXRlKClgIHJhdGhlciB0aGFuIGB1cGRhdGVOb2RlUHJvcGVydHlg
IGJlY2F1c2UgYGNoaWxkcmVuVXBkYXRlKClgIHdpbGwgZW5zdXJlIHRoZSBjb2x1bW5zICh3aGlj
aCBhcmUgY2hpbGRyZW4pIHdpbGwgaGF2ZSBhc3NvY2lhdGVkIGlzb2xhdGVkIG9iamVjdHMgY3Jl
YXRlZC4KKyAgICAgICAgICAgIHF1ZXVlTm9kZVVwZGF0ZShhbmNlc3Rvci0+b2JqZWN0SUQoKSwg
Tm9kZVVwZGF0ZU9wdGlvbnM6OmNoaWxkcmVuVXBkYXRlKCkpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXggOWFlZjdiMWNkYzAxLi42NzU3
MmVjZjM0M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMzQxLDcgKzM0MSw3IEBAIHB1Ymxp
YzoKICAgICBlbnVtIGNsYXNzIFJlc29sdmVOb2RlQ2hhbmdlcyA6IGJvb2wgeyBObywgWWVzIH07
CiAgICAgdm9pZCB1cGRhdGVDaGlsZHJlbihBY2Nlc3NpYmlsaXR5T2JqZWN0JiwgUmVzb2x2ZU5v
ZGVDaGFuZ2VzID0gUmVzb2x2ZU5vZGVDaGFuZ2VzOjpZZXMpOwogICAgIHZvaWQgdXBkYXRlQ2hp
bGRyZW5Gb3JPYmplY3RzKGNvbnN0IExpc3RIYXNoU2V0PFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2Jq
ZWN0Pj4mKTsKLSAgICB2b2lkIHVwZGF0ZU5vZGVQcm9wZXJ0eShBWENvcmVPYmplY3QmIG9iamVj
dCwgQVhQcm9wZXJ0eU5hbWUgcHJvcGVydHkpIHsgdXBkYXRlTm9kZVByb3BlcnRpZXMob2JqZWN0
LCB7IHByb3BlcnR5IH0pOyB9OworICAgIHZvaWQgdXBkYXRlTm9kZVByb3BlcnR5KEFYQ29yZU9i
amVjdCYgb2JqZWN0LCBBWFByb3BlcnR5TmFtZSBwcm9wZXJ0eSkgeyB1cGRhdGVOb2RlUHJvcGVy
dGllcyhvYmplY3QsIHsgcHJvcGVydHkgfSk7IH0KICAgICB2b2lkIHVwZGF0ZU5vZGVQcm9wZXJ0
aWVzKEFYQ29yZU9iamVjdCYsIGNvbnN0IEFYUHJvcGVydHlOYW1lU2V0Jik7CiAgICAgdm9pZCB1
cGRhdGVEZXBlbmRlbnRQcm9wZXJ0aWVzKEFjY2Vzc2liaWxpdHlPYmplY3QmKTsKICAgICB2b2lk
IHVwZGF0ZVByb3BlcnRpZXNGb3JTZWxmQW5kRGVzY2VuZGFudHMoQWNjZXNzaWJpbGl0eU9iamVj
dCYsIGNvbnN0IEFYUHJvcGVydHlOYW1lU2V0Jik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2R5bmFtaWMtdGV4dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi5jMTllMGY2MDM0MzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzNiBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgd2UgdXBkYXRlIHRoZSBhY2Nlc3NpYmlsaXR5IHRy
ZWUgd2hlbiBzdGF0aWMgdGV4dCBjaGFuZ2VzLgorCitQQVNTOiB3ZWJhcmVhLmNoaWxkQXRJbmRl
eCgwKS5yb2xlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ3RleHQnKSA9PT0gdHJ1ZQorQVhWYWx1
ZTogSW5pdGlhbCBzdGF0aWMgdGV4dAorCisjYnV0dG9uIHRleHQgYWx0ZXJuYXRpdmVzOgorCUFY
VGl0bGU6IEluaXRpYWwgYnV0dG9uIHRleHQKKwlBWERlc2NyaXB0aW9uOgorCUFYSGVscDoKKwor
UEFTUzogYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdsYWJl
bCcpLnN0cmluZ1ZhbHVlLmluY2x1ZGVzKCdJbml0aWFsIGxhYmVsIHRleHQnKSA9PT0gdHJ1ZQor
I2NoZWNrYm94IHRleHQgYWx0ZXJuYXRpdmVzOgorCUFYVGl0bGU6IEluaXRpYWwgbGFiZWwgdGV4
dAorCUFYRGVzY3JpcHRpb246CisJQVhIZWxwOgorCitQQVNTOiBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ3RleHRhcmVhJykuc3RyaW5nVmFsdWUuaW5jbHVk
ZXMoJ0luaXRpYWwgdGV4dGFyZWEgdGV4dCcpID09PSB0cnVlCisKKyNidXR0b24gdGV4dCBhbHRl
cm5hdGl2ZXM6CisJQVhUaXRsZTogQ2hhbmdlZCBidXR0b24gdGV4dAorCUFYRGVzY3JpcHRpb246
CisJQVhIZWxwOgorCitQQVNTOiB3ZWJhcmVhLmNoaWxkQXRJbmRleCgwKS5zdHJpbmdWYWx1ZS5p
bmNsdWRlcygnQ2hhbmdlZCBzdGF0aWMgdGV4dCcpID09PSB0cnVlCitQQVNTOiBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2xhYmVsJykuc3RyaW5nVmFsdWUu
aW5jbHVkZXMoJ0NoYW5nZWQgbGFiZWwgdGV4dCcpID09PSB0cnVlCisjY2hlY2tib3ggdGV4dCBh
bHRlcm5hdGl2ZXM6CisJQVhUaXRsZTogQ2hhbmdlZCBsYWJlbCB0ZXh0CisJQVhEZXNjcmlwdGlv
bjoKKwlBWEhlbHA6CisKK1BBU1M6IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVF
bGVtZW50QnlJZCgndGV4dGFyZWEnKS5zdHJpbmdWYWx1ZS5pbmNsdWRlcygnQ2hhbmdlZCB0ZXh0
YXJlYSB0ZXh0JykgPT09IHRydWUKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCitDaGFuZ2VkIHN0YXRpYyB0ZXh0Q2hhbmdlZCBidXR0b24gdGV4dCBD
aGFuZ2VkIGxhYmVsIHRleHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
ZHluYW1pYy10ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMDRkN2M3ZDBi
MDQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9keW5hbWlj
LXRleHQuaHRtbApAQCAtMCwwICsxLDc3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CitJbml0aWFs
IHN0YXRpYyB0ZXh0Cis8YnV0dG9uIGlkPSJidXR0b24iPkluaXRpYWwgYnV0dG9uIHRleHQ8L2J1
dHRvbj4KKzxsYWJlbCBpZD0ibGFiZWwiIGZvcj0iY2hlY2tib3giPkluaXRpYWwgbGFiZWwgdGV4
dDwvbGFiZWw+Cis8aW5wdXQgaWQ9ImNoZWNrYm94IiB0eXBlPSJjaGVja2JveCIgbmFtZT0iY2hl
Y2tib3giIC8+Cis8dGV4dGFyZWEgaWQ9InRleHRhcmVhIj5Jbml0aWFsIHRleHRhcmVhIHRleHQ8
L3RleHRhcmVhPgorICAgIAorPHNjcmlwdD4KK3ZhciBvdXRwdXQgPSAiVGhpcyB0ZXN0IGVuc3Vy
ZXMgd2UgdXBkYXRlIHRoZSBhY2Nlc3NpYmlsaXR5IHRyZWUgd2hlbiBzdGF0aWMgdGV4dCBjaGFu
Z2VzLlxuXG4iOworCitmdW5jdGlvbiB0ZXh0QWx0ZXJuYXRpdmVzKGlkKSB7CisgICAgbGV0IHJl
c3VsdCA9ICcnOworICAgIHJlc3VsdCArPSBgIyR7aWR9IHRleHQgYWx0ZXJuYXRpdmVzOlxuYAor
ICAgIHJlc3VsdCArPSBgJHtwbGF0Zm9ybVRleHRBbHRlcm5hdGl2ZXMoYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKGlkKSl9XG5cbmA7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KKworaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICBjb25zdCBpc0lPUyA9IGFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLnBsYXRmb3JtTmFtZSA9PT0gImlvcyI7CisKKyAgICB2YXIgd2ViYXJlYSA9
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKKyAg
ICBpZiAoIWlzSU9TKSB7CisgICAgICAgIC8vIFN0YXRpYyB0ZXh0IHN0cmluZ1ZhbHVlLgorICAg
ICAgICBvdXRwdXQgKz0gZXhwZWN0KCJ3ZWJhcmVhLmNoaWxkQXRJbmRleCgwKS5yb2xlLnRvTG93
ZXJDYXNlKCkuaW5jbHVkZXMoJ3RleHQnKSIsICJ0cnVlIik7CisgICAgICAgIG91dHB1dCArPSBg
JHt3ZWJhcmVhLmNoaWxkQXRJbmRleCgwKS5zdHJpbmdWYWx1ZX1cblxuYDsKKyAgICB9CisKKyAg
ICBvdXRwdXQgKz0gdGV4dEFsdGVybmF0aXZlcygiYnV0dG9uIik7CisKKyAgICBpZiAoIWlzSU9T
KQorICAgICAgICBvdXRwdXQgKz0gZXhwZWN0KCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nl
c3NpYmxlRWxlbWVudEJ5SWQoJ2xhYmVsJykuc3RyaW5nVmFsdWUuaW5jbHVkZXMoJ0luaXRpYWwg
bGFiZWwgdGV4dCcpIiwgInRydWUiKTsKKworICAgIC8vIExhYmVsbGVkIGNvbnRyb2wgdGl0bGUu
CisgICAgb3V0cHV0ICs9IHRleHRBbHRlcm5hdGl2ZXMoImNoZWNrYm94Iik7CisKKyAgICAvLyBU
ZXh0YXJlYSBzdHJpbmdWYWx1ZS4KKyAgICBvdXRwdXQgKz0gZXhwZWN0KCJhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ3RleHRhcmVhJykuc3RyaW5nVmFsdWUu
aW5jbHVkZXMoJ0luaXRpYWwgdGV4dGFyZWEgdGV4dCcpIiwgInRydWUiKTsKKyAgICBvdXRwdXQg
Kz0gIlxuIjsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJidXR0b24iKS5maXJzdENo
aWxkLm5vZGVWYWx1ZSA9ICJDaGFuZ2VkIGJ1dHRvbiB0ZXh0IjsKKyAgICBzZXRUaW1lb3V0KGFz
eW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBsZXQgbmV3UGxhdGZvcm1UZXh0OworICAgICAgICBh
d2FpdCB3YWl0Rm9yKCgpID0+IHsKKyAgICAgICAgICAgIG5ld1BsYXRmb3JtVGV4dCA9IHRleHRB
bHRlcm5hdGl2ZXMoImJ1dHRvbiIpOworICAgICAgICAgICAgcmV0dXJuIG5ld1BsYXRmb3JtVGV4
dC5pbmNsdWRlcygiQ2hhbmdlZCBidXR0b24gdGV4dCIpOworICAgICAgICB9KTsKKyAgICAgICAg
b3V0cHV0ICs9IG5ld1BsYXRmb3JtVGV4dDsKKworCisgICAgICAgIGlmICghaXNJT1MpIHsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0uZmlyc3RD
aGlsZC5ub2RlVmFsdWUgPSAiQ2hhbmdlZCBzdGF0aWMgdGV4dCI7CisgICAgICAgICAgICBvdXRw
dXQgKz0gYXdhaXQgZXhwZWN0QXN5bmMoIndlYmFyZWEuY2hpbGRBdEluZGV4KDApLnN0cmluZ1Zh
bHVlLmluY2x1ZGVzKCdDaGFuZ2VkIHN0YXRpYyB0ZXh0JykiLCAidHJ1ZSIpOworICAgICAgICB9
CisKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxhYmVsIikuZmlyc3RDaGlsZC5u
b2RlVmFsdWUgPSAiQ2hhbmdlZCBsYWJlbCB0ZXh0IjsKKyAgICAgICAgaWYgKCFpc0lPUykKKyAg
ICAgICAgICAgIG91dHB1dCArPSBhd2FpdCBleHBlY3RBc3luYygiYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdsYWJlbCcpLnN0cmluZ1ZhbHVlLmluY2x1ZGVz
KCdDaGFuZ2VkIGxhYmVsIHRleHQnKSIsICJ0cnVlIik7CisgICAgICAgIG91dHB1dCArPSB0ZXh0
QWx0ZXJuYXRpdmVzKCJjaGVja2JveCIpOworCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0ZXh0YXJlYSIpLmZpcnN0Q2hpbGQubm9kZVZhbHVlID0gIkNoYW5nZWQgdGV4dGFyZWEg
dGV4dCI7CisgICAgICAgIG91dHB1dCArPSBhd2FpdCBleHBlY3RBc3luYygiYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCd0ZXh0YXJlYScpLnN0cmluZ1ZhbHVl
LmluY2x1ZGVzKCdDaGFuZ2VkIHRleHRhcmVhIHRleHQnKSIsICJ0cnVlIik7CisKKyAgICAgICAg
ZGVidWcob3V0cHV0KTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgMCk7Cit9Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mYjU1NTdkMzhjNmEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0
eS9keW5hbWljLXRleHQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK1RoaXMgdGVzdCBl
bnN1cmVzIHdlIHVwZGF0ZSB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlIHdoZW4gc3RhdGljIHRleHQg
Y2hhbmdlcy4KKworI2J1dHRvbiB0ZXh0IGFsdGVybmF0aXZlczoKKwlBWExhYmVsOiBJbml0aWFs
IGJ1dHRvbiB0ZXh0CisKKyNjaGVja2JveCB0ZXh0IGFsdGVybmF0aXZlczoKKwlBWExhYmVsOiBJ
bml0aWFsIGxhYmVsIHRleHQKKworUEFTUzogYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCd0ZXh0YXJlYScpLnN0cmluZ1ZhbHVlLmluY2x1ZGVzKCdJbml0aWFs
IHRleHRhcmVhIHRleHQnKSA9PT0gdHJ1ZQorCisjYnV0dG9uIHRleHQgYWx0ZXJuYXRpdmVzOgor
CUFYTGFiZWw6IENoYW5nZWQgYnV0dG9uIHRleHQKKworI2NoZWNrYm94IHRleHQgYWx0ZXJuYXRp
dmVzOgorCUFYTGFiZWw6IENoYW5nZWQgbGFiZWwgdGV4dAorCitQQVNTOiBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ3RleHRhcmVhJykuc3RyaW5nVmFsdWUu
aW5jbHVkZXMoJ0NoYW5nZWQgdGV4dGFyZWEgdGV4dCcpID09PSB0cnVlCisKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorSW5pdGlhbCBzdGF0aWMgdGV4
dCBDaGFuZ2VkIGJ1dHRvbiB0ZXh0IENoYW5nZWQgbGFiZWwgdGV4dAo=
</data>
<flag name="commit-queue"
          id="496446"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470122</attachid>
            <date>2024-03-01 12:44:00 -0800</date>
            <delta_ts>2024-03-01 16:46:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-270356-20240301124359.patch</filename>
            <type>text/plain</type>
            <size>25131</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSAxNmRkYjI5OTUxYmVlZmUyYzMwOTYxNDUxZGNjMDdkZTM5OTU4MjIwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogRnJpLCAxIE1hciAyMDI0IDA5OjQ4OjI3IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gQVg6IEFj
Y2Vzc2liaWxpdHlUZXh0IGlzIG5vdCB1cGRhdGVkIHdoZW4gc3RhdGljIHRleHQKIGRlc2NlbmRh
bnQgY2hhbmdlcyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjcwMzU2
CiByZGFyOi8vMTIzNzQxMjkyCgpSZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KCkFkZCBhIG5l
dyBUZXh0VW5kZXJFbGVtZW50Q2hhbmdlZCBub3RpZmljYXRpb24gdG8gcmVwcmVzZW50IHRoaXMK
c2NlbmFyaW8gc28gd2UgY2FuIG1ha2UgcHJlY2lzZSB1cGRhdGVzIHRvIHRoZSBpc29sYXRlZCB0
cmVlLgoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC1leHBlY3RlZC50
eHQ6IEFkZGVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0Lmh0bWw6
IEFkZGVkLgoqIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMt
dGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYQ29yZU9iamVjdC5oOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIu
Y3BwOgooV2ViQ29yZTo6b3BlcmF0b3I8PCk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcDoKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZVRleHRD
aGFuZ2VkKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZSk6Ciog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CiogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CihXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dmlzaWJsZVRleHQgY29uc3QpOgoqIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpkZXBlbmRzT25UZXh0VW5kZXJFbGVtZW50IGNvbnN0KToKKiBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKiBTb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHA6
CihXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZVByb3BlcnRpZXMpOgooV2ViQ29y
ZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZURlcGVuZGVudFByb3BlcnRpZXMpOgoqIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmg6CihXZWJD
b3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZVByb3BlcnR5KToKLS0tCiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYQ29yZU9iamVjdC5oICAgfCAgMSArCiBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcCAgICAgfCAgOSArKysKIC4uLi9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICB8IDMzICsrKysrKy0tCiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCAgfCAgMSArCiAuLi4vYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgfCA0NiArLS0tLS0tLS0tLQogLi4uL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgICAgIHwgNDEgKysrKysrKysrKwog
Li4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oICAgICAgIHwgIDEgKwogLi4u
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAgICAgICAgICAgIHwgMTYgKystLQogLi4u
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oICAgICAgICAgICAgIHwgIDIgKy0KIC4uLi9h
Y2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC1leHBlY3RlZC50eHQgICB8IDM2ICsrKysrKysrKwog
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9keW5hbWljLXRleHQuaHRtbCAgIHwgNzcgKysrKysr
KysrKysrKysrKysrKwogLi4uL2FjY2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0LWV4cGVjdGVkLnR4
dCAgIHwgMjkgKysrKysrKwogLi4uL2FjY2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0LWV4cGVjdGVk
LnR4dCAgIHwgMjIgKysrKysrCiAxMyBmaWxlcyBjaGFuZ2VkLCAyNTkgaW5zZXJ0aW9ucygrKSwg
NTUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9keW5hbWljLXRleHQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9keW5hbWljLXRleHQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9keW5hbWljLXRleHQtZXhw
ZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2Fj
Y2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0LWV4cGVjdGVkLnR4dAoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhDb3JlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYQ29yZU9iamVjdC5oCmluZGV4IGEyZDkzYjg5Y2NiOS4uZjIwMjQzOTZk
NTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYQ29yZU9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhDb3JlT2JqZWN0LmgKQEAg
LTE3MTksNiArMTcxOSw3IEBAIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRT
dHJlYW0mLCBBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5KTsKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEm
KTsKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBBY2Nlc3Np
YmlsaXR5T2JqZWN0SW5jbHVzaW9uKTsKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6
OlRleHRTdHJlYW0mLCBjb25zdCBBWENvcmVPYmplY3QmKTsKK1dURjo6VGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBBY2Nlc3NpYmlsaXR5VGV4dCk7CiBXVEY6OlRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQWNjZXNzaWJpbGl0eVRleHRTb3Vy
Y2UpOwogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEFYUmVs
YXRpb25UeXBlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WExvZ2dlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcApp
bmRleCA1MmQ5OTNjZTRmODMuLjQ4YjZhZDFjODJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWExvZ2dlci5jcHAKQEAgLTQxMiw2ICs0MTIsMTIgQEAgVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiBzdHJlYW0sIGNvbnN0IEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0
ZXJpYSYgY3IKICAgICByZXR1cm4gc3RyZWFtOwogfQogCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHN0cmVhbSwgQWNjZXNzaWJpbGl0eVRleHQgdGV4dCkKK3sKKyAgICBzdHJl
YW0gPDwgdGV4dC50ZXh0U291cmNlIDw8ICI6ICIgPDwgdGV4dC50ZXh0OworICAgIHJldHVybiBz
dHJlYW07Cit9CisKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgc3RyZWFtLCBB
Y2Nlc3NpYmlsaXR5VGV4dFNvdXJjZSBzb3VyY2UpCiB7CiAgICAgc3dpdGNoIChzb3VyY2UpIHsK
QEAgLTc3NCw2ICs3ODAsOSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHN0
cmVhbSwgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24gbm90aWZpYwogICAgIGNhc2UgQVhP
YmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYVGV4dENvbXBvc2l0aW9uQ2hhbmdlZDoKICAg
ICAgICAgc3RyZWFtIDw8ICJBWFRleHRDb21wb3NpdGlvbkNoYW5nZWQiOwogICAgICAgICBicmVh
azsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWFRleHRVbmRlckVs
ZW1lbnRDaGFuZ2VkOgorICAgICAgICBzdHJlYW0gPDwgIkFYVGV4dFVuZGVyRWxlbWVudENoYW5n
ZWQiOworICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoQVhfVEhSRUFEX1RFWFRfQVBJUykKICAg
ICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWFRleHRSdW5zQ2hhbmdlZDoK
ICAgICAgICAgc3RyZWFtIDw8ICJBWFRleHRSdW5zQ2hhbmdlZCI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCA5YmRhMzI4ZWExOGEuLmZl
YjA2NGIxMjU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwCkBAIC0xMTk5LDE3ICsxMTk5LDM1IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFu
ZGxlVGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQogCiAgICAgUmVmPEFj
Y2Vzc2liaWxpdHlPYmplY3Q+IHByb3RlY3RlZE9iamVjdCgqb2JqZWN0KTsKIAorICAgIGJvb2wg
aXNUZXh0ID0gb2JqZWN0LT5pc1N0YXRpY1RleHQoKTsKICAgICAvLyBJZiB0aGlzIGVsZW1lbnQg
c3VwcG9ydHMgQVJJQSBsaXZlIHJlZ2lvbnMsIG9yIGlzIHBhcnQgb2YgYSByZWdpb24gd2l0aCBh
biBBUklBIGVkaXRhYmxlIHJvbGUsCiAgICAgLy8gdGhlbiBub3RpZnkgdGhlIEFUIG9mIGNoYW5n
ZXMuCiAgICAgYm9vbCBub3RpZmllZE5vbk5hdGl2ZVRleHRDb250cm9sID0gZmFsc2U7Ci0gICAg
Zm9yIChSZWZQdHIgcGFyZW50ID0gb2JqZWN0OyBwYXJlbnQ7IHBhcmVudCA9IHBhcmVudC0+cGFy
ZW50T2JqZWN0KCkpIHsKLSAgICAgICAgaWYgKHBhcmVudC0+c3VwcG9ydHNMaXZlUmVnaW9uKCkp
Ci0gICAgICAgICAgICBwb3N0TGl2ZVJlZ2lvbkNoYW5nZU5vdGlmaWNhdGlvbihwYXJlbnQuZ2V0
KCkpOworICAgIGZvciAoUmVmUHRyIGFuY2VzdG9yID0gb2JqZWN0OyBhbmNlc3RvcjsgYW5jZXN0
b3IgPSBhbmNlc3Rvci0+cGFyZW50T2JqZWN0KCkpIHsKKyAgICAgICAgaWYgKGFuY2VzdG9yLT5z
dXBwb3J0c0xpdmVSZWdpb24oKSkKKyAgICAgICAgICAgIHBvc3RMaXZlUmVnaW9uQ2hhbmdlTm90
aWZpY2F0aW9uKGFuY2VzdG9yLmdldCgpKTsKIAotICAgICAgICBpZiAoIW5vdGlmaWVkTm9uTmF0
aXZlVGV4dENvbnRyb2wgJiYgcGFyZW50LT5pc05vbk5hdGl2ZVRleHRDb250cm9sKCkpIHsKLSAg
ICAgICAgICAgIHBvc3ROb3RpZmljYXRpb24ocGFyZW50LmdldCgpLCBwYXJlbnQtPnByb3RlY3Rl
ZERvY3VtZW50KCkuZ2V0KCksIEFYVmFsdWVDaGFuZ2VkKTsKKyAgICAgICAgaWYgKCFub3RpZmll
ZE5vbk5hdGl2ZVRleHRDb250cm9sICYmIGFuY2VzdG9yLT5pc05vbk5hdGl2ZVRleHRDb250cm9s
KCkpIHsKKyAgICAgICAgICAgIHBvc3ROb3RpZmljYXRpb24oYW5jZXN0b3IuZ2V0KCksIGFuY2Vz
dG9yLT5wcm90ZWN0ZWREb2N1bWVudCgpLmdldCgpLCBBWFZhbHVlQ2hhbmdlZCk7CiAgICAgICAg
ICAgICBub3RpZmllZE5vbk5hdGl2ZVRleHRDb250cm9sID0gdHJ1ZTsKICAgICAgICAgfQorCisg
ICAgICAgIGlmIChpc1RleHQpIHsKKyAgICAgICAgICAgIGJvb2wgZGVwZW5kc09uVGV4dFVuZGVy
RWxlbWVudCA9IGFuY2VzdG9yLT5kZXBlbmRzT25UZXh0VW5kZXJFbGVtZW50KCk7CisgICAgICAg
ICAgICBhdXRvIHJvbGUgPSBhbmNlc3Rvci0+cm9sZVZhbHVlKCk7CisgICAgICAgICAgICBkZXBl
bmRzT25UZXh0VW5kZXJFbGVtZW50IHw9IHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RJ
dGVtIHx8IHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkxhYmVsOworCisgICAgICAgICAgICAv
LyBJZiB0aGUgc3RhcnRpbmcgb2JqZWN0IGlzIGEgc3RhdGljIHRleHQsIGl0cyB1bmRlcmx5aW5n
IHRleHQgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBpZiAoZGVwZW5kc09uVGV4dFVuZGVyRWxl
bWVudCkgeworICAgICAgICAgICAgICAgIC8vIEluZm9ybSB0aGlzIGFuY2VzdG9yIGl0cyB0ZXh0
VW5kZXJFbGVtZW50LWRlcGVuZGVudCBkYXRhIGlzIG5vdyBvdXQtb2YtZGF0ZS4KKyAgICAgICAg
ICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKGFuY2VzdG9yLmdldCgpLCBudWxscHRyLCBBWFRleHRV
bmRlckVsZW1lbnRDaGFuZ2VkKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQW55
IG9iamVjdHMgdGhpcyBhbmNlc3RvciBsYWJlbGVkIG5vdyBhbHNvIG5lZWQgbmV3IEFjY2Vzc2li
aWxpdHlUZXh0LgorICAgICAgICAgICAgYXV0byBsYWJlbGVkT2JqZWN0cyA9IGFuY2VzdG9yLT5s
YWJlbEZvck9iamVjdHMoKTsKKyAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgbGFiZWxlZE9i
amVjdCA6IGxhYmVsZWRPYmplY3RzKQorICAgICAgICAgICAgICAgIHBvc3ROb3RpZmljYXRpb24o
Y2hlY2tlZERvd25jYXN0PEFjY2Vzc2liaWxpdHlPYmplY3Q+KGxhYmVsZWRPYmplY3QuZ2V0KCkp
LCBudWxscHRyLCBBWFRleHRDaGFuZ2VkKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHBvc3RO
b3RpZmljYXRpb24ob2JqZWN0LCBvYmplY3QtPnByb3RlY3RlZERvY3VtZW50KCkuZ2V0KCksIEFY
VGV4dENoYW5nZWQpOwpAQCAtNDQwMyw2ICs0NDIxLDExIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFjY2Vzc2li
aWxpCiAgICAgICAgIGNhc2UgQVhUZXh0Q29tcG9zaXRpb25DaGFuZ2VkOgogICAgICAgICAgICAg
dHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBB
WFByb3BlcnR5TmFtZTo6VGV4dElucHV0TWFya2VkVGV4dE1hcmtlclJhbmdlIH0pOwogICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0VW5kZXJFbGVtZW50Q2hhbmdlZDoKKyAg
ICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRpb24uZmlyc3QtPm9iamVj
dElEKCksIHsgeyBBWFByb3BlcnR5TmFtZTo6QWNjZXNzaWJpbGl0eVRleHQsIEFYUHJvcGVydHlO
YW1lOjpUaXRsZSB9IH0pOworICAgICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbi5maXJzdC0+aXNB
Y2Nlc3NpYmlsaXR5TGFiZWxJbnN0YW5jZSgpKQorICAgICAgICAgICAgICAgIHRyZWUtPnF1ZXVl
Tm9kZVVwZGF0ZShub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5h
bWU6OlN0cmluZ1ZhbHVlIH0pOworICAgICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKEFYX1RI
UkVBRF9URVhUX0FQSVMpCiAgICAgICAgIGNhc2UgQVhUZXh0UnVuc0NoYW5nZWQ6CiAgICAgICAg
ICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgp
LCB7IEFYUHJvcGVydHlOYW1lOjpUZXh0UnVucyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggODBlOGQ1ZDQ4Y2EwLi40NTRmNWE0YTg2NWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC00
MzAsNiArNDMwLDcgQEAgcHVibGljOgogICAgICAgICBBWFNvcnREaXJlY3Rpb25DaGFuZ2VkLAog
ICAgICAgICBBWFRleHRDaGFuZ2VkLAogICAgICAgICBBWFRleHRDb21wb3NpdGlvbkNoYW5nZWQs
CisgICAgICAgIEFYVGV4dFVuZGVyRWxlbWVudENoYW5nZWQsCiAjaWYgRU5BQkxFKEFYX1RIUkVB
RF9URVhUX0FQSVMpCiAgICAgICAgIEFYVGV4dFJ1bnNDaGFuZ2VkLAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwCmluZGV4IDlmY2JmOGQzOTE1Mi4uM2NhZTg2OWRiNGIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cApAQCAtMTg4OCw3ICsxODg4LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWx0
ZXJuYXRpdmVUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mIHRleHRPcmQKIAogdm9pZCBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dmlzaWJsZVRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlU
ZXh0PiYgdGV4dE9yZGVyKSBjb25zdAogewotICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7
CisgICAgV2Vha1B0ciBub2RlID0gdGhpcy0+bm9kZSgpOwogICAgIGlmICghbm9kZSkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC0xOTAxLDQ5ICsxOTAxLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6dmlzaWJsZVRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYgdGV4dE9yZGVy
KQogICAgIGlmICghaXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkgJiYgbm9kZS0+aGFzVGFn
TmFtZShzZWxlY3RUYWcpKQogICAgICAgICByZXR1cm47CiAKLSAgICBib29sIHVzZVRleHRVbmRl
ckVsZW1lbnQgPSBmYWxzZTsKLQotICAgIHN3aXRjaCAocm9sZVZhbHVlKCkpIHsKLSAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpQb3BVcEJ1dHRvbjoKLSAgICAgICAgLy8gTmF0aXZlIHBvcHVw
IGJ1dHRvbnMgc2hvdWxkIG5vdCB1c2UgdGhlaXIgYnV0dG9uIGNoaWxkcmVuJ3MgdGV4dCBhcyBh
IHRpdGxlLiBUaGF0IHZhbHVlIGlzIHJldHJpZXZlZCB0aHJvdWdoIHN0cmluZ1ZhbHVlKCkuCi0g
ICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHNlbGVjdFRhZykpCi0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgRkFMTFRIUk9VR0g7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3Vt
bWFyeToKLSAgICAgICAgLy8gVGhlIHRleHQgbm9kZSBmb3IgYSA8c3VtbWFyeT4gZWxlbWVudCBz
aG91bGQgYmUgaW5jbHVkZWQgaW4gaXRzIHZpc2libGUgdGV4dCwgdW5sZXNzIGEgdGl0bGUgYXR0
cmlidXRlIGlzIHByZXNlbnQuCi0gICAgICAgIGlmICghaGFzQXR0cmlidXRlKHRpdGxlQXR0cikp
Ci0gICAgICAgICAgICB1c2VUZXh0VW5kZXJFbGVtZW50ID0gdHJ1ZTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QnV0dG9uOgotICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlRvZ2dsZUJ1dHRvbjoKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDaGVj
a2JveDoKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0Qm94T3B0aW9uOgotICAgIC8v
IE1hY09TIGRvZXMgbm90IGV4cGVjdCBuYXRpdmUgPGxpPiBlbGVtZW50cyB0byBleHBvc2UgbGFi
ZWwgaW5mb3JtYXRpb24sIGl0IG9ubHkgZXhwZWN0cyBsZWFmIG5vZGUgZWxlbWVudHMgdG8gZG8g
dGhhdC4KLSNpZiAhUExBVEZPUk0oQ09DT0EpCi0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TGlzdEl0ZW06Ci0jZW5kaWYKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51QnV0dG9u
OgotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtOgotICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6Ok1lbnVJdGVtQ2hlY2tib3g6Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6TWVudUl0ZW1SYWRpbzoKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSYWRpb0J1dHRv
bjoKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTd2l0Y2g6Ci0gICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6VGFiOgotICAgICAgICB1c2VUZXh0VW5kZXJFbGVtZW50ID0gdHJ1ZTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAg
Ly8gSWYgaXQncyBmb2N1c2FibGUgYnV0IGl0J3Mgbm90IGNvbnRlbnQgZWRpdGFibGUgb3IgYSBr
bm93biBjb250cm9sIHR5cGUsIHRoZW4gaXQgd2lsbCBhcHBlYXIgdG8KLSAgICAvLyB0aGUgdXNl
ciBhcyBhIHNpbmdsZSBhdG9taWMgb2JqZWN0LCBzbyB3ZSBzaG91bGQgdXNlIGl0cyB0ZXh0IGFz
IHRoZSBkZWZhdWx0IHRpdGxlLgotICAgIGlmIChpc0hlYWRpbmcoKSB8fCBpc0xpbmsoKSkKLSAg
ICAgICAgdXNlVGV4dFVuZGVyRWxlbWVudCA9IHRydWU7Ci0KLSAgICBpZiAoaXNPdXRwdXQoKSkK
LSAgICAgICAgdXNlVGV4dFVuZGVyRWxlbWVudCA9IHRydWU7Ci0KLSAgICBpZiAodXNlVGV4dFVu
ZGVyRWxlbWVudCkgeworICAgIGlmIChkZXBlbmRzT25UZXh0VW5kZXJFbGVtZW50KCkpIHsKICAg
ICAgICAgQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2RlIG1vZGU7CiAKICAgICAgICAg
Ly8gSGVhZGluZ3Mgb2Z0ZW4gaW5jbHVkZSBsaW5rcyBhcyBkaXJlY3QgY2hpbGRyZW4uIFRob3Nl
IGxpbmtzIG5lZWQgdG8gYmUgaW5jbHVkZWQgaW4gdGV4dCB1bmRlciBlbGVtZW50LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAK
aW5kZXggNTJjZjAyZDdjZTA4Li42NDcyNjEzYjdjOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMTkyNCw2ICsx
OTI0LDQ3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aGFzQ29udGVudEVkaXRhYmxlQXR0
cmlidXRlU2V0KCkgY29uc3QKICAgICByZXR1cm4gY29udGVudEVkaXRhYmxlQXR0cmlidXRlSXNF
bmFibGVkKGVsZW1lbnQoKSk7CiB9CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6ZGVwZW5k
c09uVGV4dFVuZGVyRWxlbWVudCgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChyb2xlVmFsdWUoKSkg
eworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlBvcFVwQnV0dG9uOgorICAgICAgICAvLyBO
YXRpdmUgcG9wdXAgYnV0dG9ucyBzaG91bGQgbm90IHVzZSB0aGVpciBkZXNjZW5kYW50J3MgdGV4
dCBhcyBhIHRpdGxlLiBUaGF0IHZhbHVlIGlzIHJldHJpZXZlZCB0aHJvdWdoIHN0cmluZ1ZhbHVl
KCkuCisgICAgICAgIGlmIChoYXNUYWdOYW1lKHNlbGVjdFRhZykpCisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgRkFMTFRIUk9VR0g7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3Vt
bWFyeToKKyAgICAgICAgLy8gVGhlIHRleHQgbm9kZSBmb3IgYSA8c3VtbWFyeT4gZWxlbWVudCBz
aG91bGQgYmUgaW5jbHVkZWQgaW4gaXRzIHZpc2libGUgdGV4dCwgdW5sZXNzIGEgdGl0bGUgYXR0
cmlidXRlIGlzIHByZXNlbnQuCisgICAgICAgIGlmICghaGFzQXR0cmlidXRlKHRpdGxlQXR0cikp
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6QnV0dG9uOgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRvZ2ds
ZUJ1dHRvbjoKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDaGVja2JveDoKKyAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0Qm94T3B0aW9uOgorI2lmICFQTEFURk9STShDT0NPQSkK
KyAgICAvLyBNYWNPUyBkb2VzIG5vdCBleHBlY3QgbmF0aXZlIDxsaT4gZWxlbWVudHMgdG8gZXhw
b3NlIGxhYmVsIGluZm9ybWF0aW9uLCBpdCBvbmx5IGV4cGVjdHMgbGVhZiBub2RlIGVsZW1lbnRz
IHRvIGRvIHRoYXQuCisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEl0ZW06CisjZW5k
aWYKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51QnV0dG9uOgorICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtOgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1l
bnVJdGVtQ2hlY2tib3g6CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUl0ZW1SYWRp
bzoKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSYWRpb0J1dHRvbjoKKyAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpTd2l0Y2g6CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFi
OgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAg
ICB9CisKKyAgICAvLyBJZiBpdCdzIGZvY3VzYWJsZSBidXQgaXQncyBub3QgY29udGVudCBlZGl0
YWJsZSBvciBhIGtub3duIGNvbnRyb2wgdHlwZSwgdGhlbiBpdCB3aWxsIGFwcGVhciB0bworICAg
IC8vIHRoZSB1c2VyIGFzIGEgc2luZ2xlIGF0b21pYyBvYmplY3QsIHNvIHdlIHNob3VsZCB1c2Ug
aXRzIHRleHQgYXMgdGhlIGRlZmF1bHQgdGl0bGUuCisgICAgaWYgKGlzSGVhZGluZygpIHx8IGlz
TGluaygpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBpc091dHB1dCgpOwor
fQorCiBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzUmVhZE9ubHkoKSBjb25zdAog
ewogICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUgPSByb2xlVmFsdWUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggODMw
NDk0Mzg1YTY4Li45ZDQ5NDUzZDg5ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC0zODcsNiArMzg3LDcgQEAgcHVibGlj
OgogICAgIC8vIE1ldGhvZHMgZm9yIGRldGVybWluaW5nIGFjY2Vzc2liaWxpdHkgdGV4dC4KICAg
ICBib29sIGlzQVJJQVN0YXRpY1RleHQoKSBjb25zdCB7IHJldHVybiBhcmlhUm9sZUF0dHJpYnV0
ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdGF0aWNUZXh0OyB9CiAgICAgU3RyaW5nIHN0cmlu
Z1ZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9CisgICAgYm9vbCBkZXBlbmRz
T25UZXh0VW5kZXJFbGVtZW50KCkgY29uc3Q7CiAgICAgU3RyaW5nIHRleHRVbmRlckVsZW1lbnQo
QWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2RlID0gQWNjZXNzaWJpbGl0eVRleHRVbmRl
ckVsZW1lbnRNb2RlKCkpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHsgfTsgfQogICAgIFN0cmlu
ZyB0ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9CiAgICAgdW5zaWduZWQgdGV4
dExlbmd0aCgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCmluZGV4IGQzZThm
NmVmYzcxNy4uZGZkZTdhY2I0ZDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCkBAIC02NDQs
NiArNjQ0LDkgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZVByb3BlcnRpZXMoQVhD
b3JlT2JqZWN0JiBheE9iamVjdCwgY29uc3QgQVhQcm9wZXIKICAgICAgICAgY2FzZSBBWFByb3Bl
cnR5TmFtZTo6UmVtb3RlRnJhbWVQbGF0Zm9ybUVsZW1lbnQ6CiAgICAgICAgICAgICBwcm9wZXJ0
eU1hcC5zZXQoQVhQcm9wZXJ0eU5hbWU6OlJlbW90ZUZyYW1lUGxhdGZvcm1FbGVtZW50LCBheE9i
amVjdC5yZW1vdGVGcmFtZVBsYXRmb3JtRWxlbWVudCgpKTsKICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEFYUHJvcGVydHlOYW1lOjpTdHJpbmdWYWx1ZToKKyAgICAgICAgICAgIHBy
b3BlcnR5TWFwLnNldChBWFByb3BlcnR5TmFtZTo6U3RyaW5nVmFsdWUsIGF4T2JqZWN0LnN0cmlu
Z1ZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgQVhQcm9wZXJ0eU5hbWU6Okhhc1JlbW90ZUZyYW1lQ2hpbGQ6CiAgICAgICAgICAgICBwcm9w
ZXJ0eU1hcC5zZXQoQVhQcm9wZXJ0eU5hbWU6Okhhc1JlbW90ZUZyYW1lQ2hpbGQsIGF4T2JqZWN0
Lmhhc1JlbW90ZUZyYW1lQ2hpbGQoKSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTcwMyw2ICs3
MDYsOSBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlUHJvcGVydGllcyhBWENvcmVP
YmplY3QmIGF4T2JqZWN0LCBjb25zdCBBWFByb3BlcgogICAgICAgICAgICAgcHJvcGVydHlNYXAu
c2V0KEFYUHJvcGVydHlOYW1lOjpUZXh0UnVucywgZHluYW1pY0Rvd25jYXN0PEFjY2Vzc2liaWxp
dHlPYmplY3Q+KGF4T2JqZWN0KS0+dGV4dFJ1bnMoKSk7CiAgICAgICAgICAgICBicmVhazsKICNl
bmRpZgorICAgICAgICBjYXNlIEFYUHJvcGVydHlOYW1lOjpUaXRsZToKKyAgICAgICAgICAgIHBy
b3BlcnR5TWFwLnNldChBWFByb3BlcnR5TmFtZTo6VGl0bGUsIGF4T2JqZWN0LnRpdGxlKCkuaXNv
bGF0ZWRDb3B5KCkpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhQcm9wZXJ0
eU5hbWU6OlVSTDoKICAgICAgICAgICAgIHByb3BlcnR5TWFwLnNldChBWFByb3BlcnR5TmFtZTo6
VVJMLCBheE9iamVjdC51cmwoKS5pc29sYXRlZENvcHkoKSk7CiAgICAgICAgICAgICBicmVhazsK
QEAgLTczOCw5ICs3NDQsOSBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVEZXBlbmRlbnRQ
cm9wZXJ0aWVzKEFjY2Vzc2liaWxpdHlPYmplY3QmIGF4T2JqZWN0KQogCiAgICAgYXV0byB1cGRh
dGVMYWJlbGVkT2JqZWN0cyA9IFt0aGlzXSAoY29uc3QgQWNjZXNzaWJpbGl0eU9iamVjdCYgbGFi
ZWwpIHsKICAgICAgICAgYXV0byBsYWJlbGVkT2JqZWN0cyA9IGxhYmVsLmxhYmVsRm9yT2JqZWN0
cygpOwotICAgICAgICBmb3IgKGF1dG8mIGxhYmVsZWRPYmplY3QgOiBsYWJlbGVkT2JqZWN0cykg
ewotICAgICAgICAgICAgaWYgKFJlZlB0ciBheE9iamVjdCA9IGR5bmFtaWNEb3duY2FzdDxBY2Nl
c3NpYmlsaXR5T2JqZWN0PihsYWJlbGVkT2JqZWN0LmdldCgpKSkKLSAgICAgICAgICAgICAgICB1
cGRhdGVOb2RlKCpheE9iamVjdCk7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgbGFiZWxlZE9i
amVjdCA6IGxhYmVsZWRPYmplY3RzKSB7CisgICAgICAgICAgICBpZiAoUmVmUHRyIGF4T2JqZWN0
ID0gY2hlY2tlZERvd25jYXN0PEFjY2Vzc2liaWxpdHlPYmplY3Q+KGxhYmVsZWRPYmplY3QuZ2V0
KCkpKQorICAgICAgICAgICAgICAgIHF1ZXVlTm9kZVVwZGF0ZShheE9iamVjdC0+b2JqZWN0SUQo
KSwgTm9kZVVwZGF0ZU9wdGlvbnM6Om5vZGVVcGRhdGUoKSk7CiAgICAgICAgIH0KICAgICB9Owog
ICAgIHVwZGF0ZUxhYmVsZWRPYmplY3RzKGF4T2JqZWN0KTsKQEAgLTc1OCw4ICs3NjQsOCBAQCB2
b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVEZXBlbmRlbnRQcm9wZXJ0aWVzKEFjY2Vzc2liaWxp
dHlPYmplY3QmIGF4T2JqZWN0KQogICAgICAgICAgICAgLy8gT25seSBgdXBkYXRlQ2hpbGRyZW5g
IGlmIHRoZSB0YWJsZSBpcyB1bmlnbm9yZWQsIGJlY2F1c2Ugb3RoZXJ3aXNlIGB1cGRhdGVDaGls
ZHJlbmAgd2lsbCBhc2NlbmQgYW5kIHVwZGF0ZSB0aGUgbmV4dCBoaWdoZXN0IHVuaWdub3JlZCBh
bmNlc3Rvciwgd2hpY2ggZG9lc24ndCBhY2NvbXBsaXNoIG91ciBnb2FsIG9mIHVwZGF0aW5nIHRh
YmxlIGNvbHVtbnMuCiAgICAgICAgICAgICBpZiAoYW5jZXN0b3ItPmFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQoKSkKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIC8vIFVzZSBgdXBk
YXRlQ2hpbGRyZW5gIHJhdGhlciB0aGFuIGB1cGRhdGVOb2RlUHJvcGVydHlgIGJlY2F1c2UgYHVw
ZGF0ZUNoaWxkcmVuYCB3aWxsIGVuc3VyZSB0aGUgY29sdW1ucyAod2hpY2ggYXJlIGNoaWxkcmVu
KSB3aWxsIGhhdmUgYXNzb2NpYXRlZCBpc29sYXRlZCBvYmplY3RzIGNyZWF0ZWQuCi0gICAgICAg
ICAgICB1cGRhdGVDaGlsZHJlbigqYW5jZXN0b3IsIFJlc29sdmVOb2RlQ2hhbmdlczo6Tm8pOwor
ICAgICAgICAgICAgLy8gVXNlIGBOb2RlVXBkYXRlT3B0aW9uczo6Y2hpbGRyZW5VcGRhdGUoKWAg
cmF0aGVyIHRoYW4gYHVwZGF0ZU5vZGVQcm9wZXJ0eWAgYmVjYXVzZSBgY2hpbGRyZW5VcGRhdGUo
KWAgd2lsbCBlbnN1cmUgdGhlIGNvbHVtbnMgKHdoaWNoIGFyZSBjaGlsZHJlbikgd2lsbCBoYXZl
IGFzc29jaWF0ZWQgaXNvbGF0ZWQgb2JqZWN0cyBjcmVhdGVkLgorICAgICAgICAgICAgcXVldWVO
b2RlVXBkYXRlKGFuY2VzdG9yLT5vYmplY3RJRCgpLCBOb2RlVXBkYXRlT3B0aW9uczo6Y2hpbGRy
ZW5VcGRhdGUoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJl
ZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuaAppbmRleCA5YWVmN2IxY2RjMDEuLjY3NTcyZWNmMzQzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
VHJlZS5oCkBAIC0zNDEsNyArMzQxLDcgQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgUmVzb2x2
ZU5vZGVDaGFuZ2VzIDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICB2b2lkIHVwZGF0ZUNoaWxkcmVu
KEFjY2Vzc2liaWxpdHlPYmplY3QmLCBSZXNvbHZlTm9kZUNoYW5nZXMgPSBSZXNvbHZlTm9kZUNo
YW5nZXM6Olllcyk7CiAgICAgdm9pZCB1cGRhdGVDaGlsZHJlbkZvck9iamVjdHMoY29uc3QgTGlz
dEhhc2hTZXQ8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiYpOwotICAgIHZvaWQgdXBkYXRl
Tm9kZVByb3BlcnR5KEFYQ29yZU9iamVjdCYgb2JqZWN0LCBBWFByb3BlcnR5TmFtZSBwcm9wZXJ0
eSkgeyB1cGRhdGVOb2RlUHJvcGVydGllcyhvYmplY3QsIHsgcHJvcGVydHkgfSk7IH07CisgICAg
dm9pZCB1cGRhdGVOb2RlUHJvcGVydHkoQVhDb3JlT2JqZWN0JiBvYmplY3QsIEFYUHJvcGVydHlO
YW1lIHByb3BlcnR5KSB7IHVwZGF0ZU5vZGVQcm9wZXJ0aWVzKG9iamVjdCwgeyBwcm9wZXJ0eSB9
KTsgfQogICAgIHZvaWQgdXBkYXRlTm9kZVByb3BlcnRpZXMoQVhDb3JlT2JqZWN0JiwgY29uc3Qg
QVhQcm9wZXJ0eU5hbWVTZXQmKTsKICAgICB2b2lkIHVwZGF0ZURlcGVuZGVudFByb3BlcnRpZXMo
QWNjZXNzaWJpbGl0eU9iamVjdCYpOwogICAgIHZvaWQgdXBkYXRlUHJvcGVydGllc0ZvclNlbGZB
bmREZXNjZW5kYW50cyhBY2Nlc3NpYmlsaXR5T2JqZWN0JiwgY29uc3QgQVhQcm9wZXJ0eU5hbWVT
ZXQmKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmMxOWUw
ZjYwMzQzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZHlu
YW1pYy10ZXh0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACitUaGlzIHRlc3QgZW5zdXJl
cyB3ZSB1cGRhdGUgdGhlIGFjY2Vzc2liaWxpdHkgdHJlZSB3aGVuIHN0YXRpYyB0ZXh0IGNoYW5n
ZXMuCisKK1BBU1M6IHdlYmFyZWEuY2hpbGRBdEluZGV4KDApLnJvbGUudG9Mb3dlckNhc2UoKS5p
bmNsdWRlcygndGV4dCcpID09PSB0cnVlCitBWFZhbHVlOiBJbml0aWFsIHN0YXRpYyB0ZXh0CisK
KyNidXR0b24gdGV4dCBhbHRlcm5hdGl2ZXM6CisJQVhUaXRsZTogSW5pdGlhbCBidXR0b24gdGV4
dAorCUFYRGVzY3JpcHRpb246CisJQVhIZWxwOgorCitQQVNTOiBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2xhYmVsJykuc3RyaW5nVmFsdWUuaW5jbHVkZXMo
J0luaXRpYWwgbGFiZWwgdGV4dCcpID09PSB0cnVlCisjY2hlY2tib3ggdGV4dCBhbHRlcm5hdGl2
ZXM6CisJQVhUaXRsZTogSW5pdGlhbCBsYWJlbCB0ZXh0CisJQVhEZXNjcmlwdGlvbjoKKwlBWEhl
bHA6CisKK1BBU1M6IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgndGV4dGFyZWEnKS5zdHJpbmdWYWx1ZS5pbmNsdWRlcygnSW5pdGlhbCB0ZXh0YXJlYSB0ZXh0
JykgPT09IHRydWUKKworI2J1dHRvbiB0ZXh0IGFsdGVybmF0aXZlczoKKwlBWFRpdGxlOiBDaGFu
Z2VkIGJ1dHRvbiB0ZXh0CisJQVhEZXNjcmlwdGlvbjoKKwlBWEhlbHA6CisKK1BBU1M6IHdlYmFy
ZWEuY2hpbGRBdEluZGV4KDApLnN0cmluZ1ZhbHVlLmluY2x1ZGVzKCdDaGFuZ2VkIHN0YXRpYyB0
ZXh0JykgPT09IHRydWUKK1BBU1M6IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVF
bGVtZW50QnlJZCgnbGFiZWwnKS5zdHJpbmdWYWx1ZS5pbmNsdWRlcygnQ2hhbmdlZCBsYWJlbCB0
ZXh0JykgPT09IHRydWUKKyNjaGVja2JveCB0ZXh0IGFsdGVybmF0aXZlczoKKwlBWFRpdGxlOiBD
aGFuZ2VkIGxhYmVsIHRleHQKKwlBWERlc2NyaXB0aW9uOgorCUFYSGVscDoKKworUEFTUzogYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCd0ZXh0YXJlYScpLnN0
cmluZ1ZhbHVlLmluY2x1ZGVzKCdDaGFuZ2VkIHRleHRhcmVhIHRleHQnKSA9PT0gdHJ1ZQorCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK0NoYW5nZWQg
c3RhdGljIHRleHRDaGFuZ2VkIGJ1dHRvbiB0ZXh0IENoYW5nZWQgbGFiZWwgdGV4dApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9keW5hbWljLXRleHQuaHRtbCBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wZTEzZWNkMjk0ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC5odG1sCkBAIC0wLDAgKzEsNzcg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KK0luaXRpYWwgc3RhdGljIHRleHQKKzxidXR0b24gaWQ9
ImJ1dHRvbiI+SW5pdGlhbCBidXR0b24gdGV4dDwvYnV0dG9uPgorPGxhYmVsIGlkPSJsYWJlbCIg
Zm9yPSJjaGVja2JveCI+SW5pdGlhbCBsYWJlbCB0ZXh0PC9sYWJlbD4KKzxpbnB1dCBpZD0iY2hl
Y2tib3giIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJjaGVja2JveCIgLz4KKzx0ZXh0YXJlYSBpZD0i
dGV4dGFyZWEiPkluaXRpYWwgdGV4dGFyZWEgdGV4dDwvdGV4dGFyZWE+CisgICAgCis8c2NyaXB0
PgordmFyIG91dHB1dCA9ICJUaGlzIHRlc3QgZW5zdXJlcyB3ZSB1cGRhdGUgdGhlIGFjY2Vzc2li
aWxpdHkgdHJlZSB3aGVuIHN0YXRpYyB0ZXh0IGNoYW5nZXMuXG5cbiI7CisKK2Z1bmN0aW9uIHRl
eHRBbHRlcm5hdGl2ZXMoaWQpIHsKKyAgICBsZXQgcmVzdWx0ID0gJyc7CisgICAgcmVzdWx0ICs9
IGAjJHtpZH0gdGV4dCBhbHRlcm5hdGl2ZXM6XG5gCisgICAgcmVzdWx0ICs9IGAke3BsYXRmb3Jt
VGV4dEFsdGVybmF0aXZlcyhhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoaWQpKX1cblxuYDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitpZiAod2luZG93LmFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OworICAgIGNvbnN0IGlzSU9TID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucGxhdGZvcm1OYW1l
ID09PSAiaW9zIjsKKworICAgIHZhciB3ZWJhcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
cm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgIGlmIChhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5wbGF0Zm9ybU5hbWUgPT09ICJtYWMiKSB7CisgICAgICAgIC8vIFN0YXRpYyB0ZXh0IHN0
cmluZ1ZhbHVlLgorICAgICAgICBvdXRwdXQgKz0gZXhwZWN0KCJ3ZWJhcmVhLmNoaWxkQXRJbmRl
eCgwKS5yb2xlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ3RleHQnKSIsICJ0cnVlIik7CisgICAg
ICAgIG91dHB1dCArPSBgJHt3ZWJhcmVhLmNoaWxkQXRJbmRleCgwKS5zdHJpbmdWYWx1ZX1cblxu
YDsKKyAgICB9CisKKyAgICBvdXRwdXQgKz0gdGV4dEFsdGVybmF0aXZlcygiYnV0dG9uIik7CisK
KyAgICBpZiAoIWlzSU9TKQorICAgICAgICBvdXRwdXQgKz0gZXhwZWN0KCJhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2xhYmVsJykuc3RyaW5nVmFsdWUuaW5j
bHVkZXMoJ0luaXRpYWwgbGFiZWwgdGV4dCcpIiwgInRydWUiKTsKKworICAgIC8vIExhYmVsbGVk
IGNvbnRyb2wgdGl0bGUuCisgICAgb3V0cHV0ICs9IHRleHRBbHRlcm5hdGl2ZXMoImNoZWNrYm94
Iik7CisKKyAgICAvLyBUZXh0YXJlYSBzdHJpbmdWYWx1ZS4KKyAgICBvdXRwdXQgKz0gZXhwZWN0
KCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ3RleHRhcmVh
Jykuc3RyaW5nVmFsdWUuaW5jbHVkZXMoJ0luaXRpYWwgdGV4dGFyZWEgdGV4dCcpIiwgInRydWUi
KTsKKyAgICBvdXRwdXQgKz0gIlxuIjsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJi
dXR0b24iKS5maXJzdENoaWxkLm5vZGVWYWx1ZSA9ICJDaGFuZ2VkIGJ1dHRvbiB0ZXh0IjsKKyAg
ICBzZXRUaW1lb3V0KGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBsZXQgbmV3UGxhdGZvcm1U
ZXh0OworICAgICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsKKyAgICAgICAgICAgIG5ld1BsYXRm
b3JtVGV4dCA9IHRleHRBbHRlcm5hdGl2ZXMoImJ1dHRvbiIpOworICAgICAgICAgICAgcmV0dXJu
IG5ld1BsYXRmb3JtVGV4dC5pbmNsdWRlcygiQ2hhbmdlZCBidXR0b24gdGV4dCIpOworICAgICAg
ICB9KTsKKyAgICAgICAgb3V0cHV0ICs9IG5ld1BsYXRmb3JtVGV4dDsKKworCisgICAgICAgIGlm
ICghaXNJT1MpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJi
b2R5IilbMF0uZmlyc3RDaGlsZC5ub2RlVmFsdWUgPSAiQ2hhbmdlZCBzdGF0aWMgdGV4dCI7Cisg
ICAgICAgICAgICBvdXRwdXQgKz0gYXdhaXQgZXhwZWN0QXN5bmMoIndlYmFyZWEuY2hpbGRBdElu
ZGV4KDApLnN0cmluZ1ZhbHVlLmluY2x1ZGVzKCdDaGFuZ2VkIHN0YXRpYyB0ZXh0JykiLCAidHJ1
ZSIpOworICAgICAgICB9CisKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxhYmVs
IikuZmlyc3RDaGlsZC5ub2RlVmFsdWUgPSAiQ2hhbmdlZCBsYWJlbCB0ZXh0IjsKKyAgICAgICAg
aWYgKCFpc0lPUykKKyAgICAgICAgICAgIG91dHB1dCArPSBhd2FpdCBleHBlY3RBc3luYygiYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdsYWJlbCcpLnN0cmlu
Z1ZhbHVlLmluY2x1ZGVzKCdDaGFuZ2VkIGxhYmVsIHRleHQnKSIsICJ0cnVlIik7CisgICAgICAg
IG91dHB1dCArPSB0ZXh0QWx0ZXJuYXRpdmVzKCJjaGVja2JveCIpOworCisgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0YXJlYSIpLmZpcnN0Q2hpbGQubm9kZVZhbHVlID0gIkNo
YW5nZWQgdGV4dGFyZWEgdGV4dCI7CisgICAgICAgIG91dHB1dCArPSBhd2FpdCBleHBlY3RBc3lu
YygiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCd0ZXh0YXJl
YScpLnN0cmluZ1ZhbHVlLmluY2x1ZGVzKCdDaGFuZ2VkIHRleHRhcmVhIHRleHQnKSIsICJ0cnVl
Iik7CisKKyAgICAgICAgZGVidWcob3V0cHV0KTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgfSwgMCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvZHluYW1p
Yy10ZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLmNmMjI5NzE5ZDRlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2dsaWIvYWNjZXNzaWJpbGl0eS9keW5hbWljLXRleHQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjkgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHdlIHVwZGF0ZSB0aGUgYWNjZXNzaWJpbGl0eSB0cmVl
IHdoZW4gc3RhdGljIHRleHQgY2hhbmdlcy4KKworI2J1dHRvbiB0ZXh0IGFsdGVybmF0aXZlczoK
KwlBWFRpdGxlOiBJbml0aWFsIGJ1dHRvbiB0ZXh0CisJQVhEZXNjcmlwdGlvbjoKKworUEFTUzog
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdsYWJlbCcpLnN0
cmluZ1ZhbHVlLmluY2x1ZGVzKCdJbml0aWFsIGxhYmVsIHRleHQnKSA9PT0gdHJ1ZQorI2NoZWNr
Ym94IHRleHQgYWx0ZXJuYXRpdmVzOgorCUFYVGl0bGU6IEluaXRpYWwgbGFiZWwgdGV4dAorCUFY
RGVzY3JpcHRpb246CisKK1BBU1M6IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVF
bGVtZW50QnlJZCgndGV4dGFyZWEnKS5zdHJpbmdWYWx1ZS5pbmNsdWRlcygnSW5pdGlhbCB0ZXh0
YXJlYSB0ZXh0JykgPT09IHRydWUKKworI2J1dHRvbiB0ZXh0IGFsdGVybmF0aXZlczoKKwlBWFRp
dGxlOiBDaGFuZ2VkIGJ1dHRvbiB0ZXh0CisJQVhEZXNjcmlwdGlvbjoKKworUEFTUzogd2ViYXJl
YS5jaGlsZEF0SW5kZXgoMCkuc3RyaW5nVmFsdWUuaW5jbHVkZXMoJ0NoYW5nZWQgc3RhdGljIHRl
eHQnKSA9PT0gdHJ1ZQorUEFTUzogYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVs
ZW1lbnRCeUlkKCdsYWJlbCcpLnN0cmluZ1ZhbHVlLmluY2x1ZGVzKCdDaGFuZ2VkIGxhYmVsIHRl
eHQnKSA9PT0gdHJ1ZQorI2NoZWNrYm94IHRleHQgYWx0ZXJuYXRpdmVzOgorCUFYVGl0bGU6IENo
YW5nZWQgbGFiZWwgdGV4dAorCUFYRGVzY3JpcHRpb246CisKK1BBU1M6IGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgndGV4dGFyZWEnKS5zdHJpbmdWYWx1ZS5p
bmNsdWRlcygnQ2hhbmdlZCB0ZXh0YXJlYSB0ZXh0JykgPT09IHRydWUKKworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitDaGFuZ2VkIHN0YXRpYyB0ZXh0
Q2hhbmdlZCBidXR0b24gdGV4dCBDaGFuZ2VkIGxhYmVsIHRleHQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9keW5hbWljLXRleHQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZmI1
NTU3ZDM4YzZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2Fj
Y2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIyIEBACitU
aGlzIHRlc3QgZW5zdXJlcyB3ZSB1cGRhdGUgdGhlIGFjY2Vzc2liaWxpdHkgdHJlZSB3aGVuIHN0
YXRpYyB0ZXh0IGNoYW5nZXMuCisKKyNidXR0b24gdGV4dCBhbHRlcm5hdGl2ZXM6CisJQVhMYWJl
bDogSW5pdGlhbCBidXR0b24gdGV4dAorCisjY2hlY2tib3ggdGV4dCBhbHRlcm5hdGl2ZXM6CisJ
QVhMYWJlbDogSW5pdGlhbCBsYWJlbCB0ZXh0CisKK1BBU1M6IGFjY2Vzc2liaWxpdHlDb250cm9s
bGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgndGV4dGFyZWEnKS5zdHJpbmdWYWx1ZS5pbmNsdWRl
cygnSW5pdGlhbCB0ZXh0YXJlYSB0ZXh0JykgPT09IHRydWUKKworI2J1dHRvbiB0ZXh0IGFsdGVy
bmF0aXZlczoKKwlBWExhYmVsOiBDaGFuZ2VkIGJ1dHRvbiB0ZXh0CisKKyNjaGVja2JveCB0ZXh0
IGFsdGVybmF0aXZlczoKKwlBWExhYmVsOiBDaGFuZ2VkIGxhYmVsIHRleHQKKworUEFTUzogYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCd0ZXh0YXJlYScpLnN0
cmluZ1ZhbHVlLmluY2x1ZGVzKCdDaGFuZ2VkIHRleHRhcmVhIHRleHQnKSA9PT0gdHJ1ZQorCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK0luaXRpYWwg
c3RhdGljIHRleHQgQ2hhbmdlZCBidXR0b24gdGV4dCBDaGFuZ2VkIGxhYmVsIHRleHQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470129</attachid>
            <date>2024-03-01 16:46:16 -0800</date>
            <delta_ts>2024-03-05 08:46:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-270356-20240301164615.patch</filename>
            <type>text/plain</type>
            <size>25947</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSA0NzU1N2VhZDQ2NmM4MTZkNWEwMDBmYjAzNjIwODFlZjFiYmEzZWQ5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogRnJpLCAxIE1hciAyMDI0IDA5OjQ4OjI3IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gQVg6IEFj
Y2Vzc2liaWxpdHlUZXh0IGlzIG5vdCB1cGRhdGVkIHdoZW4gc3RhdGljIHRleHQKIGRlc2NlbmRh
bnQgY2hhbmdlcyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjcwMzU2
CiByZGFyOi8vMTIzNzQxMjkyCgpSZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KCkFkZCBhIG5l
dyBUZXh0VW5kZXJFbGVtZW50Q2hhbmdlZCBub3RpZmljYXRpb24gdG8gcmVwcmVzZW50IHRoaXMK
c2NlbmFyaW8gc28gd2UgY2FuIG1ha2UgcHJlY2lzZSB1cGRhdGVzIHRvIHRoZSBpc29sYXRlZCB0
cmVlLgoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC1leHBlY3RlZC50
eHQ6IEFkZGVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0Lmh0bWw6
IEFkZGVkLgoqIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMt
dGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0
RXhwZWN0YXRpb25zOiBFbmFibGUgbmV3IHRlc3QuCgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhDb3JlT2JqZWN0Lmg6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExv
Z2dlci5jcHA6CihXZWJDb3JlOjpvcGVyYXRvcjw8KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxl
VGV4dENoYW5nZWQpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVl
KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKiBTb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp2aXNpYmxlVGV4dCBjb25zdCk6CiogU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmRlcGVuZHNPblRleHRVbmRlckVsZW1lbnQgY29uc3Qp
OgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgoq
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVl
LmNwcDoKKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlUHJvcGVydGllcyk6CihX
ZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlRGVwZW5kZW50UHJvcGVydGllcyk6CiogU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaDoK
KFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlUHJvcGVydHkpOgotLS0KIFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhDb3JlT2JqZWN0LmggICB8ICAxICsKIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwICAgICB8ICA5ICsrKwogLi4uL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgIHwgMzMgKysrKysrLS0KIFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oICB8ICAxICsKIC4uLi9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCB8IDQ2ICstLS0tLS0tLS0tCiAu
Li4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCAgICAgfCA0MSArKysrKysr
KysrCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggICAgICAgfCAgMSAr
CiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCAgICAgICAgICAgfCAxNiArKy0t
CiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggICAgICAgICAgICAgfCAgMiArLQog
Li4uL2FjY2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0LWV4cGVjdGVkLnR4dCAgIHwgMzYgKysrKysr
KysrCiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC5odG1sICAgfCA3NyAr
KysrKysrKysrKysrKysrKysrCiAuLi4vYWNjZXNzaWJpbGl0eS9keW5hbWljLXRleHQtZXhwZWN0
ZWQudHh0ICAgfCAyOSArKysrKysrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVj
dGF0aW9ucyAgICAgfCAgMSArCiAuLi4vYWNjZXNzaWJpbGl0eS9keW5hbWljLXRleHQtZXhwZWN0
ZWQudHh0ICAgfCAyMiArKysrKysKIDE0IGZpbGVzIGNoYW5nZWQsIDI2MCBpbnNlcnRpb25zKCsp
LCA1NSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2R5bmFtaWMtdGV4dC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC1l
eHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
YWNjZXNzaWJpbGl0eS9keW5hbWljLXRleHQtZXhwZWN0ZWQudHh0CgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWENvcmVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhDb3JlT2JqZWN0LmgKaW5kZXggYTJkOTNiODljY2I5Li5mMjAyNDM5
NmQ1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhDb3JlT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWENvcmVPYmplY3QuaApA
QCAtMTcxOSw2ICsxNzE5LDcgQEAgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4
dFN0cmVhbSYsIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXkpOwogV1RGOjpUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJp
YSYpOwogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEFjY2Vz
c2liaWxpdHlPYmplY3RJbmNsdXNpb24pOwogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdU
Rjo6VGV4dFN0cmVhbSYsIGNvbnN0IEFYQ29yZU9iamVjdCYpOworV1RGOjpUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEFjY2Vzc2liaWxpdHlUZXh0KTsKIFdURjo6VGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBBY2Nlc3NpYmlsaXR5VGV4dFNv
dXJjZSk7CiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQVhS
ZWxhdGlvblR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYTG9nZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3Bw
CmluZGV4IDUyZDk5M2NlNGY4My4uNDhiNmFkMWM4MmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYTG9nZ2VyLmNwcApAQCAtNDEyLDYgKzQxMiwxMiBAQCBUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHN0cmVhbSwgY29uc3QgQWNjZXNzaWJpbGl0eVNlYXJjaENy
aXRlcmlhJiBjcgogICAgIHJldHVybiBzdHJlYW07CiB9CiAKK1RleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYgc3RyZWFtLCBBY2Nlc3NpYmlsaXR5VGV4dCB0ZXh0KQoreworICAgIHN0
cmVhbSA8PCB0ZXh0LnRleHRTb3VyY2UgPDwgIjogIiA8PCB0ZXh0LnRleHQ7CisgICAgcmV0dXJu
IHN0cmVhbTsKK30KKwogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiBzdHJlYW0s
IEFjY2Vzc2liaWxpdHlUZXh0U291cmNlIHNvdXJjZSkKIHsKICAgICBzd2l0Y2ggKHNvdXJjZSkg
ewpAQCAtNzc0LDYgKzc4MCw5IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
c3RyZWFtLCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbiBub3RpZmljCiAgICAgY2FzZSBB
WE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhUZXh0Q29tcG9zaXRpb25DaGFuZ2VkOgog
ICAgICAgICBzdHJlYW0gPDwgIkFYVGV4dENvbXBvc2l0aW9uQ2hhbmdlZCI7CiAgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYVGV4dFVuZGVy
RWxlbWVudENoYW5nZWQ6CisgICAgICAgIHN0cmVhbSA8PCAiQVhUZXh0VW5kZXJFbGVtZW50Q2hh
bmdlZCI7CisgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShBWF9USFJFQURfVEVYVF9BUElTKQog
ICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYVGV4dFJ1bnNDaGFuZ2Vk
OgogICAgICAgICBzdHJlYW0gPDwgIkFYVGV4dFJ1bnNDaGFuZ2VkIjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDliZGEzMjhlYTE4YS4u
ZmViMDY0YjEyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKQEAgLTExOTksMTcgKzExOTksMzUgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpo
YW5kbGVUZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCiAKICAgICBSZWY8
QWNjZXNzaWJpbGl0eU9iamVjdD4gcHJvdGVjdGVkT2JqZWN0KCpvYmplY3QpOwogCisgICAgYm9v
bCBpc1RleHQgPSBvYmplY3QtPmlzU3RhdGljVGV4dCgpOwogICAgIC8vIElmIHRoaXMgZWxlbWVu
dCBzdXBwb3J0cyBBUklBIGxpdmUgcmVnaW9ucywgb3IgaXMgcGFydCBvZiBhIHJlZ2lvbiB3aXRo
IGFuIEFSSUEgZWRpdGFibGUgcm9sZSwKICAgICAvLyB0aGVuIG5vdGlmeSB0aGUgQVQgb2YgY2hh
bmdlcy4KICAgICBib29sIG5vdGlmaWVkTm9uTmF0aXZlVGV4dENvbnRyb2wgPSBmYWxzZTsKLSAg
ICBmb3IgKFJlZlB0ciBwYXJlbnQgPSBvYmplY3Q7IHBhcmVudDsgcGFyZW50ID0gcGFyZW50LT5w
YXJlbnRPYmplY3QoKSkgewotICAgICAgICBpZiAocGFyZW50LT5zdXBwb3J0c0xpdmVSZWdpb24o
KSkKLSAgICAgICAgICAgIHBvc3RMaXZlUmVnaW9uQ2hhbmdlTm90aWZpY2F0aW9uKHBhcmVudC5n
ZXQoKSk7CisgICAgZm9yIChSZWZQdHIgYW5jZXN0b3IgPSBvYmplY3Q7IGFuY2VzdG9yOyBhbmNl
c3RvciA9IGFuY2VzdG9yLT5wYXJlbnRPYmplY3QoKSkgeworICAgICAgICBpZiAoYW5jZXN0b3It
PnN1cHBvcnRzTGl2ZVJlZ2lvbigpKQorICAgICAgICAgICAgcG9zdExpdmVSZWdpb25DaGFuZ2VO
b3RpZmljYXRpb24oYW5jZXN0b3IuZ2V0KCkpOwogCi0gICAgICAgIGlmICghbm90aWZpZWROb25O
YXRpdmVUZXh0Q29udHJvbCAmJiBwYXJlbnQtPmlzTm9uTmF0aXZlVGV4dENvbnRyb2woKSkgewot
ICAgICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihwYXJlbnQuZ2V0KCksIHBhcmVudC0+cHJvdGVj
dGVkRG9jdW1lbnQoKS5nZXQoKSwgQVhWYWx1ZUNoYW5nZWQpOworICAgICAgICBpZiAoIW5vdGlm
aWVkTm9uTmF0aXZlVGV4dENvbnRyb2wgJiYgYW5jZXN0b3ItPmlzTm9uTmF0aXZlVGV4dENvbnRy
b2woKSkgeworICAgICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihhbmNlc3Rvci5nZXQoKSwgYW5j
ZXN0b3ItPnByb3RlY3RlZERvY3VtZW50KCkuZ2V0KCksIEFYVmFsdWVDaGFuZ2VkKTsKICAgICAg
ICAgICAgIG5vdGlmaWVkTm9uTmF0aXZlVGV4dENvbnRyb2wgPSB0cnVlOwogICAgICAgICB9CisK
KyAgICAgICAgaWYgKGlzVGV4dCkgeworICAgICAgICAgICAgYm9vbCBkZXBlbmRzT25UZXh0VW5k
ZXJFbGVtZW50ID0gYW5jZXN0b3ItPmRlcGVuZHNPblRleHRVbmRlckVsZW1lbnQoKTsKKyAgICAg
ICAgICAgIGF1dG8gcm9sZSA9IGFuY2VzdG9yLT5yb2xlVmFsdWUoKTsKKyAgICAgICAgICAgIGRl
cGVuZHNPblRleHRVbmRlckVsZW1lbnQgfD0gcm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlz
dEl0ZW0gfHwgcm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFiZWw7CisKKyAgICAgICAgICAg
IC8vIElmIHRoZSBzdGFydGluZyBvYmplY3QgaXMgYSBzdGF0aWMgdGV4dCwgaXRzIHVuZGVybHlp
bmcgdGV4dCBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIGlmIChkZXBlbmRzT25UZXh0VW5kZXJF
bGVtZW50KSB7CisgICAgICAgICAgICAgICAgLy8gSW5mb3JtIHRoaXMgYW5jZXN0b3IgaXRzIHRl
eHRVbmRlckVsZW1lbnQtZGVwZW5kZW50IGRhdGEgaXMgbm93IG91dC1vZi1kYXRlLgorICAgICAg
ICAgICAgICAgIHBvc3ROb3RpZmljYXRpb24oYW5jZXN0b3IuZ2V0KCksIG51bGxwdHIsIEFYVGV4
dFVuZGVyRWxlbWVudENoYW5nZWQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBB
bnkgb2JqZWN0cyB0aGlzIGFuY2VzdG9yIGxhYmVsZWQgbm93IGFsc28gbmVlZCBuZXcgQWNjZXNz
aWJpbGl0eVRleHQuCisgICAgICAgICAgICBhdXRvIGxhYmVsZWRPYmplY3RzID0gYW5jZXN0b3It
PmxhYmVsRm9yT2JqZWN0cygpOworICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBsYWJlbGVk
T2JqZWN0IDogbGFiZWxlZE9iamVjdHMpCisgICAgICAgICAgICAgICAgcG9zdE5vdGlmaWNhdGlv
bihjaGVja2VkRG93bmNhc3Q8QWNjZXNzaWJpbGl0eU9iamVjdD4obGFiZWxlZE9iamVjdC5nZXQo
KSksIG51bGxwdHIsIEFYVGV4dENoYW5nZWQpOworICAgICAgICB9CiAgICAgfQogCiAgICAgcG9z
dE5vdGlmaWNhdGlvbihvYmplY3QsIG9iamVjdC0+cHJvdGVjdGVkRG9jdW1lbnQoKS5nZXQoKSwg
QVhUZXh0Q2hhbmdlZCk7CkBAIC00NDAzLDYgKzQ0MjEsMTEgQEAgdm9pZCBBWE9iamVjdENhY2hl
Ojp1cGRhdGVJc29sYXRlZFRyZWUoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QWNjZXNz
aWJpbGkKICAgICAgICAgY2FzZSBBWFRleHRDb21wb3NpdGlvbkNoYW5nZWQ6CiAgICAgICAgICAg
ICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7
IEFYUHJvcGVydHlOYW1lOjpUZXh0SW5wdXRNYXJrZWRUZXh0TWFya2VyUmFuZ2UgfSk7CiAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRVbmRlckVsZW1lbnRDaGFuZ2VkOgor
ICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2Jq
ZWN0SUQoKSwgeyB7IEFYUHJvcGVydHlOYW1lOjpBY2Nlc3NpYmlsaXR5VGV4dCwgQVhQcm9wZXJ0
eU5hbWU6OlRpdGxlIH0gfSk7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uLmZpcnN0LT5p
c0FjY2Vzc2liaWxpdHlMYWJlbEluc3RhbmNlKCkpCisgICAgICAgICAgICAgICAgdHJlZS0+cXVl
dWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5
TmFtZTo6U3RyaW5nVmFsdWUgfSk7CisgICAgICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoQVhf
VEhSRUFEX1RFWFRfQVBJUykKICAgICAgICAgY2FzZSBBWFRleHRSdW5zQ2hhbmdlZDoKICAgICAg
ICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElE
KCksIHsgQVhQcm9wZXJ0eU5hbWU6OlRleHRSdW5zIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCA4MGU4ZDVkNDhjYTAuLjQ1NGY1YTRhODY1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAg
LTQzMCw2ICs0MzAsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFYU29ydERpcmVjdGlvbkNoYW5nZWQs
CiAgICAgICAgIEFYVGV4dENoYW5nZWQsCiAgICAgICAgIEFYVGV4dENvbXBvc2l0aW9uQ2hhbmdl
ZCwKKyAgICAgICAgQVhUZXh0VW5kZXJFbGVtZW50Q2hhbmdlZCwKICNpZiBFTkFCTEUoQVhfVEhS
RUFEX1RFWFRfQVBJUykKICAgICAgICAgQVhUZXh0UnVuc0NoYW5nZWQsCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHAKaW5kZXggOWZjYmY4ZDM5MTUyLi4zY2FlODY5ZGI0YjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
Y3BwCkBAIC0xODg4LDcgKzE4ODgsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojph
bHRlcm5hdGl2ZVRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYgdGV4dE9yZAogCiB2b2lk
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp2aXNpYmxlVGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0
eVRleHQ+JiB0ZXh0T3JkZXIpIGNvbnN0CiB7Ci0gICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUo
KTsKKyAgICBXZWFrUHRyIG5vZGUgPSB0aGlzLT5ub2RlKCk7CiAgICAgaWYgKCFub2RlKQogICAg
ICAgICByZXR1cm47CiAKQEAgLTE5MDEsNDkgKzE5MDEsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0Ojp2aXNpYmxlVGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+JiB0ZXh0T3Jk
ZXIpCiAgICAgaWYgKCFpc0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoKSAmJiBub2RlLT5oYXNU
YWdOYW1lKHNlbGVjdFRhZykpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgdXNlVGV4dFVu
ZGVyRWxlbWVudCA9IGZhbHNlOwotCi0gICAgc3dpdGNoIChyb2xlVmFsdWUoKSkgewotICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlBvcFVwQnV0dG9uOgotICAgICAgICAvLyBOYXRpdmUgcG9w
dXAgYnV0dG9ucyBzaG91bGQgbm90IHVzZSB0aGVpciBidXR0b24gY2hpbGRyZW4ncyB0ZXh0IGFz
IGEgdGl0bGUuIFRoYXQgdmFsdWUgaXMgcmV0cmlldmVkIHRocm91Z2ggc3RyaW5nVmFsdWUoKS4K
LSAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoc2VsZWN0VGFnKSkKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBGQUxMVEhST1VHSDsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpT
dW1tYXJ5OgotICAgICAgICAvLyBUaGUgdGV4dCBub2RlIGZvciBhIDxzdW1tYXJ5PiBlbGVtZW50
IHNob3VsZCBiZSBpbmNsdWRlZCBpbiBpdHMgdmlzaWJsZSB0ZXh0LCB1bmxlc3MgYSB0aXRsZSBh
dHRyaWJ1dGUgaXMgcHJlc2VudC4KLSAgICAgICAgaWYgKCFoYXNBdHRyaWJ1dGUodGl0bGVBdHRy
KSkKLSAgICAgICAgICAgIHVzZVRleHRVbmRlckVsZW1lbnQgPSB0cnVlOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpCdXR0b246Ci0gICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6VG9nZ2xlQnV0dG9uOgotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNo
ZWNrYm94OgotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RCb3hPcHRpb246Ci0gICAg
Ly8gTWFjT1MgZG9lcyBub3QgZXhwZWN0IG5hdGl2ZSA8bGk+IGVsZW1lbnRzIHRvIGV4cG9zZSBs
YWJlbCBpbmZvcm1hdGlvbiwgaXQgb25seSBleHBlY3RzIGxlYWYgbm9kZSBlbGVtZW50cyB0byBk
byB0aGF0LgotI2lmICFQTEFURk9STShDT0NPQSkKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpMaXN0SXRlbToKLSNlbmRpZgotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVCdXR0
b246Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUl0ZW06Ci0gICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6TWVudUl0ZW1DaGVja2JveDoKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpNZW51SXRlbVJhZGlvOgotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJhZGlvQnV0
dG9uOgotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN3aXRjaDoKLSAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpUYWI6Ci0gICAgICAgIHVzZVRleHRVbmRlckVsZW1lbnQgPSB0cnVlOwot
ICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAg
ICAvLyBJZiBpdCdzIGZvY3VzYWJsZSBidXQgaXQncyBub3QgY29udGVudCBlZGl0YWJsZSBvciBh
IGtub3duIGNvbnRyb2wgdHlwZSwgdGhlbiBpdCB3aWxsIGFwcGVhciB0bwotICAgIC8vIHRoZSB1
c2VyIGFzIGEgc2luZ2xlIGF0b21pYyBvYmplY3QsIHNvIHdlIHNob3VsZCB1c2UgaXRzIHRleHQg
YXMgdGhlIGRlZmF1bHQgdGl0bGUuCi0gICAgaWYgKGlzSGVhZGluZygpIHx8IGlzTGluaygpKQot
ICAgICAgICB1c2VUZXh0VW5kZXJFbGVtZW50ID0gdHJ1ZTsKLQotICAgIGlmIChpc091dHB1dCgp
KQotICAgICAgICB1c2VUZXh0VW5kZXJFbGVtZW50ID0gdHJ1ZTsKLQotICAgIGlmICh1c2VUZXh0
VW5kZXJFbGVtZW50KSB7CisgICAgaWYgKGRlcGVuZHNPblRleHRVbmRlckVsZW1lbnQoKSkgewog
ICAgICAgICBBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1vZGUgbW9kZTsKIAogICAgICAg
ICAvLyBIZWFkaW5ncyBvZnRlbiBpbmNsdWRlIGxpbmtzIGFzIGRpcmVjdCBjaGlsZHJlbi4gVGhv
c2UgbGlua3MgbmVlZCB0byBiZSBpbmNsdWRlZCBpbiB0ZXh0IHVuZGVyIGVsZW1lbnQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cAppbmRleCA1MmNmMDJkN2NlMDguLjY0NzI2MTNiN2M5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0xOTI0LDYg
KzE5MjQsNDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpoYXNDb250ZW50RWRpdGFibGVB
dHRyaWJ1dGVTZXQoKSBjb25zdAogICAgIHJldHVybiBjb250ZW50RWRpdGFibGVBdHRyaWJ1dGVJ
c0VuYWJsZWQoZWxlbWVudCgpKTsKIH0KIAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpkZXBl
bmRzT25UZXh0VW5kZXJFbGVtZW50KCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKHJvbGVWYWx1ZSgp
KSB7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UG9wVXBCdXR0b246CisgICAgICAgIC8v
IE5hdGl2ZSBwb3B1cCBidXR0b25zIHNob3VsZCBub3QgdXNlIHRoZWlyIGRlc2NlbmRhbnQncyB0
ZXh0IGFzIGEgdGl0bGUuIFRoYXQgdmFsdWUgaXMgcmV0cmlldmVkIHRocm91Z2ggc3RyaW5nVmFs
dWUoKS4KKyAgICAgICAgaWYgKGhhc1RhZ05hbWUoc2VsZWN0VGFnKSkKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBGQUxMVEhST1VHSDsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpT
dW1tYXJ5OgorICAgICAgICAvLyBUaGUgdGV4dCBub2RlIGZvciBhIDxzdW1tYXJ5PiBlbGVtZW50
IHNob3VsZCBiZSBpbmNsdWRlZCBpbiBpdHMgdmlzaWJsZSB0ZXh0LCB1bmxlc3MgYSB0aXRsZSBh
dHRyaWJ1dGUgaXMgcHJlc2VudC4KKyAgICAgICAgaWYgKCFoYXNBdHRyaWJ1dGUodGl0bGVBdHRy
KSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpCdXR0b246CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VG9n
Z2xlQnV0dG9uOgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNoZWNrYm94OgorICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RCb3hPcHRpb246CisjaWYgIVBMQVRGT1JNKENPQ09B
KQorICAgIC8vIE1hY09TIGRvZXMgbm90IGV4cGVjdCBuYXRpdmUgPGxpPiBlbGVtZW50cyB0byBl
eHBvc2UgbGFiZWwgaW5mb3JtYXRpb24sIGl0IG9ubHkgZXhwZWN0cyBsZWFmIG5vZGUgZWxlbWVu
dHMgdG8gZG8gdGhhdC4KKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0SXRlbToKKyNl
bmRpZgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVCdXR0b246CisgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6TWVudUl0ZW06CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TWVudUl0ZW1DaGVja2JveDoKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51SXRlbVJh
ZGlvOgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJhZGlvQnV0dG9uOgorICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OlN3aXRjaDoKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpU
YWI6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKworICAgIC8vIElmIGl0J3MgZm9jdXNhYmxlIGJ1dCBpdCdzIG5vdCBjb250ZW50IGVk
aXRhYmxlIG9yIGEga25vd24gY29udHJvbCB0eXBlLCB0aGVuIGl0IHdpbGwgYXBwZWFyIHRvCisg
ICAgLy8gdGhlIHVzZXIgYXMgYSBzaW5nbGUgYXRvbWljIG9iamVjdCwgc28gd2Ugc2hvdWxkIHVz
ZSBpdHMgdGV4dCBhcyB0aGUgZGVmYXVsdCB0aXRsZS4KKyAgICBpZiAoaXNIZWFkaW5nKCkgfHwg
aXNMaW5rKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGlzT3V0cHV0KCk7
Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNSZWFkT25seSgpIGNvbnN0
CiB7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IHJvbGVWYWx1ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCA4
MzA0OTQzODVhNjguLjlkNDk0NTNkODllMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTM4Nyw2ICszODcsNyBAQCBwdWJs
aWM6CiAgICAgLy8gTWV0aG9kcyBmb3IgZGV0ZXJtaW5pbmcgYWNjZXNzaWJpbGl0eSB0ZXh0Lgog
ICAgIGJvb2wgaXNBUklBU3RhdGljVGV4dCgpIGNvbnN0IHsgcmV0dXJuIGFyaWFSb2xlQXR0cmli
dXRlKCkgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlN0YXRpY1RleHQ7IH0KICAgICBTdHJpbmcgc3Ry
aW5nVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB7IH07IH0KKyAgICBib29sIGRlcGVu
ZHNPblRleHRVbmRlckVsZW1lbnQoKSBjb25zdDsKICAgICBTdHJpbmcgdGV4dFVuZGVyRWxlbWVu
dChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1vZGUgPSBBY2Nlc3NpYmlsaXR5VGV4dFVu
ZGVyRWxlbWVudE1vZGUoKSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9CiAgICAgU3Ry
aW5nIHRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB7IH07IH0KICAgICB1bnNpZ25lZCB0
ZXh0TGVuZ3RoKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKaW5kZXggZDNl
OGY2ZWZjNzE3Li5kZmRlN2FjYjRkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKQEAgLTY0
NCw2ICs2NDQsOSBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlUHJvcGVydGllcyhB
WENvcmVPYmplY3QmIGF4T2JqZWN0LCBjb25zdCBBWFByb3BlcgogICAgICAgICBjYXNlIEFYUHJv
cGVydHlOYW1lOjpSZW1vdGVGcmFtZVBsYXRmb3JtRWxlbWVudDoKICAgICAgICAgICAgIHByb3Bl
cnR5TWFwLnNldChBWFByb3BlcnR5TmFtZTo6UmVtb3RlRnJhbWVQbGF0Zm9ybUVsZW1lbnQsIGF4
T2JqZWN0LnJlbW90ZUZyYW1lUGxhdGZvcm1FbGVtZW50KCkpOwogICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhQcm9wZXJ0eU5hbWU6OlN0cmluZ1ZhbHVlOgorICAgICAgICAgICAg
cHJvcGVydHlNYXAuc2V0KEFYUHJvcGVydHlOYW1lOjpTdHJpbmdWYWx1ZSwgYXhPYmplY3Quc3Ry
aW5nVmFsdWUoKS5pc29sYXRlZENvcHkoKSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBBWFByb3BlcnR5TmFtZTo6SGFzUmVtb3RlRnJhbWVDaGlsZDoKICAgICAgICAgICAgIHBy
b3BlcnR5TWFwLnNldChBWFByb3BlcnR5TmFtZTo6SGFzUmVtb3RlRnJhbWVDaGlsZCwgYXhPYmpl
Y3QuaGFzUmVtb3RlRnJhbWVDaGlsZCgpKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNzAzLDYg
KzcwNiw5IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQcm9wZXJ0aWVzKEFYQ29y
ZU9iamVjdCYgYXhPYmplY3QsIGNvbnN0IEFYUHJvcGVyCiAgICAgICAgICAgICBwcm9wZXJ0eU1h
cC5zZXQoQVhQcm9wZXJ0eU5hbWU6OlRleHRSdW5zLCBkeW5hbWljRG93bmNhc3Q8QWNjZXNzaWJp
bGl0eU9iamVjdD4oYXhPYmplY3QpLT50ZXh0UnVucygpKTsKICAgICAgICAgICAgIGJyZWFrOwog
I2VuZGlmCisgICAgICAgIGNhc2UgQVhQcm9wZXJ0eU5hbWU6OlRpdGxlOgorICAgICAgICAgICAg
cHJvcGVydHlNYXAuc2V0KEFYUHJvcGVydHlOYW1lOjpUaXRsZSwgYXhPYmplY3QudGl0bGUoKS5p
c29sYXRlZENvcHkoKSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWFByb3Bl
cnR5TmFtZTo6VVJMOgogICAgICAgICAgICAgcHJvcGVydHlNYXAuc2V0KEFYUHJvcGVydHlOYW1l
OjpVUkwsIGF4T2JqZWN0LnVybCgpLmlzb2xhdGVkQ29weSgpKTsKICAgICAgICAgICAgIGJyZWFr
OwpAQCAtNzM4LDkgKzc0NCw5IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZURlcGVuZGVu
dFByb3BlcnRpZXMoQWNjZXNzaWJpbGl0eU9iamVjdCYgYXhPYmplY3QpCiAKICAgICBhdXRvIHVw
ZGF0ZUxhYmVsZWRPYmplY3RzID0gW3RoaXNdIChjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0JiBs
YWJlbCkgewogICAgICAgICBhdXRvIGxhYmVsZWRPYmplY3RzID0gbGFiZWwubGFiZWxGb3JPYmpl
Y3RzKCk7Ci0gICAgICAgIGZvciAoYXV0byYgbGFiZWxlZE9iamVjdCA6IGxhYmVsZWRPYmplY3Rz
KSB7Ci0gICAgICAgICAgICBpZiAoUmVmUHRyIGF4T2JqZWN0ID0gZHluYW1pY0Rvd25jYXN0PEFj
Y2Vzc2liaWxpdHlPYmplY3Q+KGxhYmVsZWRPYmplY3QuZ2V0KCkpKQotICAgICAgICAgICAgICAg
IHVwZGF0ZU5vZGUoKmF4T2JqZWN0KTsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBsYWJlbGVk
T2JqZWN0IDogbGFiZWxlZE9iamVjdHMpIHsKKyAgICAgICAgICAgIGlmIChSZWZQdHIgYXhPYmpl
Y3QgPSBjaGVja2VkRG93bmNhc3Q8QWNjZXNzaWJpbGl0eU9iamVjdD4obGFiZWxlZE9iamVjdC5n
ZXQoKSkpCisgICAgICAgICAgICAgICAgcXVldWVOb2RlVXBkYXRlKGF4T2JqZWN0LT5vYmplY3RJ
RCgpLCBOb2RlVXBkYXRlT3B0aW9uczo6bm9kZVVwZGF0ZSgpKTsKICAgICAgICAgfQogICAgIH07
CiAgICAgdXBkYXRlTGFiZWxlZE9iamVjdHMoYXhPYmplY3QpOwpAQCAtNzU4LDggKzc2NCw4IEBA
IHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZURlcGVuZGVudFByb3BlcnRpZXMoQWNjZXNzaWJp
bGl0eU9iamVjdCYgYXhPYmplY3QpCiAgICAgICAgICAgICAvLyBPbmx5IGB1cGRhdGVDaGlsZHJl
bmAgaWYgdGhlIHRhYmxlIGlzIHVuaWdub3JlZCwgYmVjYXVzZSBvdGhlcndpc2UgYHVwZGF0ZUNo
aWxkcmVuYCB3aWxsIGFzY2VuZCBhbmQgdXBkYXRlIHRoZSBuZXh0IGhpZ2hlc3QgdW5pZ25vcmVk
IGFuY2VzdG9yLCB3aGljaCBkb2Vzbid0IGFjY29tcGxpc2ggb3VyIGdvYWwgb2YgdXBkYXRpbmcg
dGFibGUgY29sdW1ucy4KICAgICAgICAgICAgIGlmIChhbmNlc3Rvci0+YWNjZXNzaWJpbGl0eUlz
SWdub3JlZCgpKQogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgLy8gVXNlIGB1
cGRhdGVDaGlsZHJlbmAgcmF0aGVyIHRoYW4gYHVwZGF0ZU5vZGVQcm9wZXJ0eWAgYmVjYXVzZSBg
dXBkYXRlQ2hpbGRyZW5gIHdpbGwgZW5zdXJlIHRoZSBjb2x1bW5zICh3aGljaCBhcmUgY2hpbGRy
ZW4pIHdpbGwgaGF2ZSBhc3NvY2lhdGVkIGlzb2xhdGVkIG9iamVjdHMgY3JlYXRlZC4KLSAgICAg
ICAgICAgIHVwZGF0ZUNoaWxkcmVuKCphbmNlc3RvciwgUmVzb2x2ZU5vZGVDaGFuZ2VzOjpObyk7
CisgICAgICAgICAgICAvLyBVc2UgYE5vZGVVcGRhdGVPcHRpb25zOjpjaGlsZHJlblVwZGF0ZSgp
YCByYXRoZXIgdGhhbiBgdXBkYXRlTm9kZVByb3BlcnR5YCBiZWNhdXNlIGBjaGlsZHJlblVwZGF0
ZSgpYCB3aWxsIGVuc3VyZSB0aGUgY29sdW1ucyAod2hpY2ggYXJlIGNoaWxkcmVuKSB3aWxsIGhh
dmUgYXNzb2NpYXRlZCBpc29sYXRlZCBvYmplY3RzIGNyZWF0ZWQuCisgICAgICAgICAgICBxdWV1
ZU5vZGVVcGRhdGUoYW5jZXN0b3ItPm9iamVjdElEKCksIE5vZGVVcGRhdGVPcHRpb25zOjpjaGls
ZHJlblVwZGF0ZSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRU
cmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkVHJlZS5oCmluZGV4IDlhZWY3YjFjZGMwMS4uNjc1NzJlY2YzNDNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRUcmVlLmgKQEAgLTM0MSw3ICszNDEsNyBAQCBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBSZXNv
bHZlTm9kZUNoYW5nZXMgOiBib29sIHsgTm8sIFllcyB9OwogICAgIHZvaWQgdXBkYXRlQ2hpbGRy
ZW4oQWNjZXNzaWJpbGl0eU9iamVjdCYsIFJlc29sdmVOb2RlQ2hhbmdlcyA9IFJlc29sdmVOb2Rl
Q2hhbmdlczo6WWVzKTsKICAgICB2b2lkIHVwZGF0ZUNoaWxkcmVuRm9yT2JqZWN0cyhjb25zdCBM
aXN0SGFzaFNldDxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+Jik7Ci0gICAgdm9pZCB1cGRh
dGVOb2RlUHJvcGVydHkoQVhDb3JlT2JqZWN0JiBvYmplY3QsIEFYUHJvcGVydHlOYW1lIHByb3Bl
cnR5KSB7IHVwZGF0ZU5vZGVQcm9wZXJ0aWVzKG9iamVjdCwgeyBwcm9wZXJ0eSB9KTsgfTsKKyAg
ICB2b2lkIHVwZGF0ZU5vZGVQcm9wZXJ0eShBWENvcmVPYmplY3QmIG9iamVjdCwgQVhQcm9wZXJ0
eU5hbWUgcHJvcGVydHkpIHsgdXBkYXRlTm9kZVByb3BlcnRpZXMob2JqZWN0LCB7IHByb3BlcnR5
IH0pOyB9CiAgICAgdm9pZCB1cGRhdGVOb2RlUHJvcGVydGllcyhBWENvcmVPYmplY3QmLCBjb25z
dCBBWFByb3BlcnR5TmFtZVNldCYpOwogICAgIHZvaWQgdXBkYXRlRGVwZW5kZW50UHJvcGVydGll
cyhBY2Nlc3NpYmlsaXR5T2JqZWN0Jik7CiAgICAgdm9pZCB1cGRhdGVQcm9wZXJ0aWVzRm9yU2Vs
ZkFuZERlc2NlbmRhbnRzKEFjY2Vzc2liaWxpdHlPYmplY3QmLCBjb25zdCBBWFByb3BlcnR5TmFt
ZVNldCYpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9keW5hbWljLXRl
eHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9keW5hbWljLXRleHQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYzE5
ZTBmNjAzNDM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9k
eW5hbWljLXRleHQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzYgQEAKK1RoaXMgdGVzdCBlbnN1
cmVzIHdlIHVwZGF0ZSB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlIHdoZW4gc3RhdGljIHRleHQgY2hh
bmdlcy4KKworUEFTUzogd2ViYXJlYS5jaGlsZEF0SW5kZXgoMCkucm9sZS50b0xvd2VyQ2FzZSgp
LmluY2x1ZGVzKCd0ZXh0JykgPT09IHRydWUKK0FYVmFsdWU6IEluaXRpYWwgc3RhdGljIHRleHQK
KworI2J1dHRvbiB0ZXh0IGFsdGVybmF0aXZlczoKKwlBWFRpdGxlOiBJbml0aWFsIGJ1dHRvbiB0
ZXh0CisJQVhEZXNjcmlwdGlvbjoKKwlBWEhlbHA6CisKK1BBU1M6IGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgnbGFiZWwnKS5zdHJpbmdWYWx1ZS5pbmNsdWRl
cygnSW5pdGlhbCBsYWJlbCB0ZXh0JykgPT09IHRydWUKKyNjaGVja2JveCB0ZXh0IGFsdGVybmF0
aXZlczoKKwlBWFRpdGxlOiBJbml0aWFsIGxhYmVsIHRleHQKKwlBWERlc2NyaXB0aW9uOgorCUFY
SGVscDoKKworUEFTUzogYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRC
eUlkKCd0ZXh0YXJlYScpLnN0cmluZ1ZhbHVlLmluY2x1ZGVzKCdJbml0aWFsIHRleHRhcmVhIHRl
eHQnKSA9PT0gdHJ1ZQorCisjYnV0dG9uIHRleHQgYWx0ZXJuYXRpdmVzOgorCUFYVGl0bGU6IENo
YW5nZWQgYnV0dG9uIHRleHQKKwlBWERlc2NyaXB0aW9uOgorCUFYSGVscDoKKworUEFTUzogd2Vi
YXJlYS5jaGlsZEF0SW5kZXgoMCkuc3RyaW5nVmFsdWUuaW5jbHVkZXMoJ0NoYW5nZWQgc3RhdGlj
IHRleHQnKSA9PT0gdHJ1ZQorUEFTUzogYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJs
ZUVsZW1lbnRCeUlkKCdsYWJlbCcpLnN0cmluZ1ZhbHVlLmluY2x1ZGVzKCdDaGFuZ2VkIGxhYmVs
IHRleHQnKSA9PT0gdHJ1ZQorI2NoZWNrYm94IHRleHQgYWx0ZXJuYXRpdmVzOgorCUFYVGl0bGU6
IENoYW5nZWQgbGFiZWwgdGV4dAorCUFYRGVzY3JpcHRpb246CisJQVhIZWxwOgorCitQQVNTOiBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ3RleHRhcmVhJyku
c3RyaW5nVmFsdWUuaW5jbHVkZXMoJ0NoYW5nZWQgdGV4dGFyZWEgdGV4dCcpID09PSB0cnVlCisK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorQ2hhbmdl
ZCBzdGF0aWMgdGV4dENoYW5nZWQgYnV0dG9uIHRleHQgQ2hhbmdlZCBsYWJlbCB0ZXh0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC5odG1sIGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9keW5hbWljLXRleHQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjBlMTNlY2QyOTRmYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0Lmh0bWwKQEAgLTAsMCArMSw3
NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorSW5pdGlhbCBzdGF0aWMgdGV4dAorPGJ1dHRvbiBp
ZD0iYnV0dG9uIj5Jbml0aWFsIGJ1dHRvbiB0ZXh0PC9idXR0b24+Cis8bGFiZWwgaWQ9ImxhYmVs
IiBmb3I9ImNoZWNrYm94Ij5Jbml0aWFsIGxhYmVsIHRleHQ8L2xhYmVsPgorPGlucHV0IGlkPSJj
aGVja2JveCIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImNoZWNrYm94IiAvPgorPHRleHRhcmVhIGlk
PSJ0ZXh0YXJlYSI+SW5pdGlhbCB0ZXh0YXJlYSB0ZXh0PC90ZXh0YXJlYT4KKyAgICAKKzxzY3Jp
cHQ+Cit2YXIgb3V0cHV0ID0gIlRoaXMgdGVzdCBlbnN1cmVzIHdlIHVwZGF0ZSB0aGUgYWNjZXNz
aWJpbGl0eSB0cmVlIHdoZW4gc3RhdGljIHRleHQgY2hhbmdlcy5cblxuIjsKKworZnVuY3Rpb24g
dGV4dEFsdGVybmF0aXZlcyhpZCkgeworICAgIGxldCByZXN1bHQgPSAnJzsKKyAgICByZXN1bHQg
Kz0gYCMke2lkfSB0ZXh0IGFsdGVybmF0aXZlczpcbmAKKyAgICByZXN1bHQgKz0gYCR7cGxhdGZv
cm1UZXh0QWx0ZXJuYXRpdmVzKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVt
ZW50QnlJZChpZCkpfVxuXG5gOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2lmICh3aW5kb3cu
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CisgICAgY29uc3QgaXNJT1MgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5wbGF0Zm9ybU5h
bWUgPT09ICJpb3MiOworCisgICAgdmFyIHdlYmFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAgaWYgKGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyLnBsYXRmb3JtTmFtZSA9PT0gIm1hYyIpIHsKKyAgICAgICAgLy8gU3RhdGljIHRleHQg
c3RyaW5nVmFsdWUuCisgICAgICAgIG91dHB1dCArPSBleHBlY3QoIndlYmFyZWEuY2hpbGRBdElu
ZGV4KDApLnJvbGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygndGV4dCcpIiwgInRydWUiKTsKKyAg
ICAgICAgb3V0cHV0ICs9IGAke3dlYmFyZWEuY2hpbGRBdEluZGV4KDApLnN0cmluZ1ZhbHVlfVxu
XG5gOworICAgIH0KKworICAgIG91dHB1dCArPSB0ZXh0QWx0ZXJuYXRpdmVzKCJidXR0b24iKTsK
KworICAgIGlmICghaXNJT1MpCisgICAgICAgIG91dHB1dCArPSBleHBlY3QoImFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgnbGFiZWwnKS5zdHJpbmdWYWx1ZS5p
bmNsdWRlcygnSW5pdGlhbCBsYWJlbCB0ZXh0JykiLCAidHJ1ZSIpOworCisgICAgLy8gTGFiZWxs
ZWQgY29udHJvbCB0aXRsZS4KKyAgICBvdXRwdXQgKz0gdGV4dEFsdGVybmF0aXZlcygiY2hlY2ti
b3giKTsKKworICAgIC8vIFRleHRhcmVhIHN0cmluZ1ZhbHVlLgorICAgIG91dHB1dCArPSBleHBl
Y3QoImFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgndGV4dGFy
ZWEnKS5zdHJpbmdWYWx1ZS5pbmNsdWRlcygnSW5pdGlhbCB0ZXh0YXJlYSB0ZXh0JykiLCAidHJ1
ZSIpOworICAgIG91dHB1dCArPSAiXG4iOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImJ1dHRvbiIpLmZpcnN0Q2hpbGQubm9kZVZhbHVlID0gIkNoYW5nZWQgYnV0dG9uIHRleHQiOwor
ICAgIHNldFRpbWVvdXQoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGxldCBuZXdQbGF0Zm9y
bVRleHQ7CisgICAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geworICAgICAgICAgICAgbmV3UGxh
dGZvcm1UZXh0ID0gdGV4dEFsdGVybmF0aXZlcygiYnV0dG9uIik7CisgICAgICAgICAgICByZXR1
cm4gbmV3UGxhdGZvcm1UZXh0LmluY2x1ZGVzKCJDaGFuZ2VkIGJ1dHRvbiB0ZXh0Iik7CisgICAg
ICAgIH0pOworICAgICAgICBvdXRwdXQgKz0gbmV3UGxhdGZvcm1UZXh0OworCisKKyAgICAgICAg
aWYgKCFpc0lPUykgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
ImJvZHkiKVswXS5maXJzdENoaWxkLm5vZGVWYWx1ZSA9ICJDaGFuZ2VkIHN0YXRpYyB0ZXh0IjsK
KyAgICAgICAgICAgIG91dHB1dCArPSBhd2FpdCBleHBlY3RBc3luYygid2ViYXJlYS5jaGlsZEF0
SW5kZXgoMCkuc3RyaW5nVmFsdWUuaW5jbHVkZXMoJ0NoYW5nZWQgc3RhdGljIHRleHQnKSIsICJ0
cnVlIik7CisgICAgICAgIH0KKworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGFi
ZWwiKS5maXJzdENoaWxkLm5vZGVWYWx1ZSA9ICJDaGFuZ2VkIGxhYmVsIHRleHQiOworICAgICAg
ICBpZiAoIWlzSU9TKQorICAgICAgICAgICAgb3V0cHV0ICs9IGF3YWl0IGV4cGVjdEFzeW5jKCJh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2xhYmVsJykuc3Ry
aW5nVmFsdWUuaW5jbHVkZXMoJ0NoYW5nZWQgbGFiZWwgdGV4dCcpIiwgInRydWUiKTsKKyAgICAg
ICAgb3V0cHV0ICs9IHRleHRBbHRlcm5hdGl2ZXMoImNoZWNrYm94Iik7CisKKyAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRhcmVhIikuZmlyc3RDaGlsZC5ub2RlVmFsdWUgPSAi
Q2hhbmdlZCB0ZXh0YXJlYSB0ZXh0IjsKKyAgICAgICAgb3V0cHV0ICs9IGF3YWl0IGV4cGVjdEFz
eW5jKCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ3RleHRh
cmVhJykuc3RyaW5nVmFsdWUuaW5jbHVkZXMoJ0NoYW5nZWQgdGV4dGFyZWEgdGV4dCcpIiwgInRy
dWUiKTsKKworICAgICAgICBkZWJ1ZyhvdXRwdXQpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICB9LCAwKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9keW5h
bWljLXRleHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMC4uY2YyMjk3MTlkNGU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyOSBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgd2UgdXBkYXRlIHRoZSBhY2Nlc3NpYmlsaXR5IHRy
ZWUgd2hlbiBzdGF0aWMgdGV4dCBjaGFuZ2VzLgorCisjYnV0dG9uIHRleHQgYWx0ZXJuYXRpdmVz
OgorCUFYVGl0bGU6IEluaXRpYWwgYnV0dG9uIHRleHQKKwlBWERlc2NyaXB0aW9uOgorCitQQVNT
OiBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2xhYmVsJyku
c3RyaW5nVmFsdWUuaW5jbHVkZXMoJ0luaXRpYWwgbGFiZWwgdGV4dCcpID09PSB0cnVlCisjY2hl
Y2tib3ggdGV4dCBhbHRlcm5hdGl2ZXM6CisJQVhUaXRsZTogSW5pdGlhbCBsYWJlbCB0ZXh0CisJ
QVhEZXNjcmlwdGlvbjoKKworUEFTUzogYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJs
ZUVsZW1lbnRCeUlkKCd0ZXh0YXJlYScpLnN0cmluZ1ZhbHVlLmluY2x1ZGVzKCdJbml0aWFsIHRl
eHRhcmVhIHRleHQnKSA9PT0gdHJ1ZQorCisjYnV0dG9uIHRleHQgYWx0ZXJuYXRpdmVzOgorCUFY
VGl0bGU6IENoYW5nZWQgYnV0dG9uIHRleHQKKwlBWERlc2NyaXB0aW9uOgorCitQQVNTOiB3ZWJh
cmVhLmNoaWxkQXRJbmRleCgwKS5zdHJpbmdWYWx1ZS5pbmNsdWRlcygnQ2hhbmdlZCBzdGF0aWMg
dGV4dCcpID09PSB0cnVlCitQQVNTOiBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoJ2xhYmVsJykuc3RyaW5nVmFsdWUuaW5jbHVkZXMoJ0NoYW5nZWQgbGFiZWwg
dGV4dCcpID09PSB0cnVlCisjY2hlY2tib3ggdGV4dCBhbHRlcm5hdGl2ZXM6CisJQVhUaXRsZTog
Q2hhbmdlZCBsYWJlbCB0ZXh0CisJQVhEZXNjcmlwdGlvbjoKKworUEFTUzogYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCd0ZXh0YXJlYScpLnN0cmluZ1ZhbHVl
LmluY2x1ZGVzKCdDaGFuZ2VkIHRleHRhcmVhIHRleHQnKSA9PT0gdHJ1ZQorCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK0NoYW5nZWQgc3RhdGljIHRl
eHRDaGFuZ2VkIGJ1dHRvbiB0ZXh0IENoYW5nZWQgbGFiZWwgdGV4dApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmNjc4YmY1M2RlMzcuLmY0ZTc2ZmRjNmYy
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIyMDks
NiArMjIwOSw3IEBAIGFjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy9lbGVtZW50LXJvbGVz
Lmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy9vYmplY3Qtb3Jk
ZXJpbmcuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzL3RhYmxl
Lmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvZGlzcGxheS1mbGV4LXNoYWRvdy1kb20tYWNj
bmFtZS5odG1sIFsgUGFzcyBdCithY2Nlc3NpYmlsaXR5L2R5bmFtaWMtdGV4dC5odG1sIFsgUGFz
cyBdCiBhY2Nlc3NpYmlsaXR5L2R5bmFtaWNhbGx5LWlnbm9yZWQtY2FudmFzLmh0bWwgWyBQYXNz
IF0KIGFjY2Vzc2liaWxpdHkvZWRpdGFibGUtd2VicGFnZS1mb2N1c2VkLXVpLWVsZW1lbnQuaHRt
bCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9lbGVtZW50LWhhc3BvcHVwLmh0bWwgWyBQYXNzIF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2R5bmFt
aWMtdGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJp
bGl0eS9keW5hbWljLXRleHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMC4uZmI1NTU3ZDM4YzZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvZHluYW1pYy10ZXh0LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDIyIEBACitUaGlzIHRlc3QgZW5zdXJlcyB3ZSB1cGRhdGUgdGhlIGFjY2Vzc2li
aWxpdHkgdHJlZSB3aGVuIHN0YXRpYyB0ZXh0IGNoYW5nZXMuCisKKyNidXR0b24gdGV4dCBhbHRl
cm5hdGl2ZXM6CisJQVhMYWJlbDogSW5pdGlhbCBidXR0b24gdGV4dAorCisjY2hlY2tib3ggdGV4
dCBhbHRlcm5hdGl2ZXM6CisJQVhMYWJlbDogSW5pdGlhbCBsYWJlbCB0ZXh0CisKK1BBU1M6IGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgndGV4dGFyZWEnKS5z
dHJpbmdWYWx1ZS5pbmNsdWRlcygnSW5pdGlhbCB0ZXh0YXJlYSB0ZXh0JykgPT09IHRydWUKKwor
I2J1dHRvbiB0ZXh0IGFsdGVybmF0aXZlczoKKwlBWExhYmVsOiBDaGFuZ2VkIGJ1dHRvbiB0ZXh0
CisKKyNjaGVja2JveCB0ZXh0IGFsdGVybmF0aXZlczoKKwlBWExhYmVsOiBDaGFuZ2VkIGxhYmVs
IHRleHQKKworUEFTUzogYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRC
eUlkKCd0ZXh0YXJlYScpLnN0cmluZ1ZhbHVlLmluY2x1ZGVzKCdDaGFuZ2VkIHRleHRhcmVhIHRl
eHQnKSA9PT0gdHJ1ZQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKK0luaXRpYWwgc3RhdGljIHRleHQgQ2hhbmdlZCBidXR0b24gdGV4dCBDaGFuZ2Vk
IGxhYmVsIHRleHQK
</data>

          </attachment>
      

    </bug>

</bugzilla>