<?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>285132</bug_id>
          
          <creation_ts>2024-12-24 09:34:56 -0800</creation_ts>
          <short_desc>[Cleanup] Rename RenderObject::isReplacedOrInlineBlock to isReplacedOrAtomicInline</short_desc>
          <delta_ts>2024-12-25 05:12:14 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2083804</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-12-24 09:34:56 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2083805</commentid>
    <comment_count>1</comment_count>
      <attachid>473656</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-12-24 10:04:57 -0800</bug_when>
    <thetext>Created attachment 473656
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2083880</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-12-25 05:12:00 -0800</bug_when>
    <thetext>Committed 288287@main (ef2f9a1f717b): &lt;https://commits.webkit.org/288287@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 473656.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2083881</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-12-25 05:12:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/142024957&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>473656</attachid>
            <date>2024-12-24 10:04:57 -0800</date>
            <delta_ts>2024-12-25 05:12:01 -0800</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-285132-20241224100456.patch</filename>
            <type>text/plain</type>
            <size>57089</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAyYzRkODczYjY3OTcwMWFmNGRlNDY3ZWJlZWQ3MzIxZWNkZDNkM2NkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMjQgRGVjIDIwMjQgMDk6MzI6MzkgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gUmVuYW1lIFJlbmRlck9iamVjdDo6aXNSZXBsYWNlZE9ySW5saW5lQmxvY2sgdG8KIGlzUmVw
bGFjZWRPckF0b21pY0lubGluZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mjg1MTMyCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgYml0IGlzIHNldCBv
biBSZW5kZXJPYmplY3Qgd2hlbgoxLiBpdCBpcyBhIFJlbmRlclJlcGxhY2VkIChyZXBsYWNlZCBl
bGVtZW50KSAtaW5jbHVkaW5nIHNvbWUgZmFrZSByZXBsYWNlZCByZW5kZXJlcnMgbGlrZSBSZW5k
ZXJMaXN0TWFya2VyCjIuIGl0IGlzIGRlcml2ZWQgZnJvbSBSZW5kZXJCbG9jayAoZS5nLiBSZW5k
ZXJHcmlkLCBSZW5kZXJUYWJsZSwgUmVuZGVyRmxleGlibGVCb3ggZXRjKSBhbmQgaGFzIGlubGlu
ZSBkaXNwbGF5IHZhbHVlIChlLmcuIGlubGluZS1mbGV4LCBpbmxpbmUtYmxvY2sgZXRjKQoKaHR0
cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1kaXNwbGF5LTMvI2F0b21pYy1pbmxpbmUKIgphdG9taWMg
aW5saW5lCkFuIGlubGluZS1sZXZlbCBib3ggdGhhdCBpcyByZXBsYWNlZCAoc3VjaCBhcyBhbiBp
bWFnZSkgb3IgdGhhdCBlc3RhYmxpc2hlcyBhIG5ldyBmb3JtYXR0aW5nIGNvbnRleHQgKHN1Y2gg
YXMgYW4gaW5saW5lLWJsb2NrIG9yIGlubGluZS10YWJsZSkgYW5kIGNhbm5vdCBzcGxpdCBhY3Jv
c3MgbGluZXMgKGFzIGlubGluZSBib3hlcyBhbmQgcnVieSBjb250YWluZXJzIGNhbikuCiIKCnNv
IGVzc2VudGlhbGx5IHRoaXMgZmxhZyBpbmRpY2F0ZXMgYW4gZWl0aGVyIGJsb2NrIG9yIGlubGlu
ZSBsZXZlbCByZXBsYWNlZCBib3ggb3IgYW5kIGlubGluZSBsZXZlbCBlbGVtZW50IHdoaWNoIGlz
IG5vdCBhbiBpbmxpbmUgYm94LgooVGhlcmUgYXJlIG1hbnkgY2FzZXMgd2hlcmUgd2Ugc2VlbSB0
byBtaXN1c2UgdGhpcyBBUEksIGJ1dCB0aGlzIHJlbmFtZSBjaGFuZ2UgaXMgbm90IG1lYW50IHRv
IGZpeCB0aG9zZSkKCkluIHRoaXMgcGF0Y2ggaXNJbmxpbmVCbG9ja09ySW5saW5lVGFibGUgaXMg
YWxzbyByZW5hbWVkIHRvIGlzTm9uUmVwbGFjZWRBdG9taWNJbmxpbmUgYXMKdGhpcyBmdW5jdGlv
biByZXR1cm5zICdmYWxzZScgZm9yIGFsbCB0eXBlIG9mIHJlbmRlcmVycyBleGNlcHQgb25lcyBk
ZXJpdmVkIGZyb20gUmVuZGVyQmxvY2sgd2l0aCB0aGUgaW5saW5lIGJpdCBzZXQgdG8gdHJ1ZSAo
UmVuZGVyUmVwbGFjZWQgcmVuZGVyZXJzIGFyZSBkZXJpdmVkIGZyb20gUmVuZGVyQm94IHdoaWNo
IGlzIG5vdCBhIFJlbmRlckJsb2NrKS4KKFNlZSBSZW5kZXJCbG9jaydzIGlzSW5saW5lQmxvY2tP
cklubGluZVRhYmxlIHsgcmV0dXJuIGlzSW5saW5lKCkgJiYgaXNSZXBsYWNlZE9ySW5saW5lQmxv
Y2soKTsgfSkKCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcDoKKFdlYkNvcmU6Om5leHRDb250aW51YXRpb24pOgoqIFNvdXJjZS9XZWJD
b3JlL2Nzcy9Db21wdXRlZFN0eWxlRXh0cmFjdG9yLmNwcDoKKFdlYkNvcmU6OmlzTm9uUmVwbGFj
ZWRJbmxpbmUpOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcDoKKFdlYkNvcmU6Ok5vZGU6
OmFic29sdXRlQm91bmRpbmdSZWN0KToKKiBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3Bw
OgooV2ViQ29yZTo6ZW5kc09mTm9kZUFyZVZpc3VhbGx5RGlzdGluY3RQb3NpdGlvbnMpOgoqIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcDoKKFdlYkNvcmU6OlZpc2li
bGVQb3NpdGlvbjo6bGVmdFZpc3VhbGx5RGlzdGluY3RDYW5kaWRhdGUgY29uc3QpOgooV2ViQ29y
ZTo6VmlzaWJsZVBvc2l0aW9uOjpyaWdodFZpc3VhbGx5RGlzdGluY3RDYW5kaWRhdGUgY29uc3Qp
OgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdy
YXRpb25JbmxpbmVDb250ZW50UGFpbnRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlv
bjo6SW5saW5lQ29udGVudFBhaW50ZXI6OnBhaW50RGlzcGxheUJveCk6CiogU291cmNlL1dlYkNv
cmUvcGFnZS9JbnRlcmFjdGlvblJlZ2lvbi5jcHA6CihXZWJDb3JlOjppbnRlcmFjdGlvblJlZ2lv
bkZvclJlbmRlcmVkUmVnaW9uKToKKiBTb3VyY2UvV2ViQ29yZS9wYWdlL1RleHRJbmRpY2F0b3Iu
Y3BwOgooV2ViQ29yZTo6aGFzTm9uSW5saW5lT3JSZXBsYWNlZEVsZW1lbnRzKToKKiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL2lvcy9GcmFtZUlPUy5tbToKKFdlYkNvcmU6OkxvY2FsRnJhbWU6OnJlbmRl
clJlY3RGb3JQb2ludCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NhcmV0UmVj
dENvbXB1dGF0aW9uLmNwcDoKKFdlYkNvcmU6OmNvbXB1dGVDYXJldFJlY3RGb3JCb3gpOgoqIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVJdGVyYXRvci5oOgooV2ViQ29yZTo6
aXNJdGVyYXRvclRhcmdldCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcDoKKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpyZW1vdmVQb3NpdGlvbmVkT2JqZWN0c0lmTmVl
ZGVkKToKKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpzdHlsZVdpbGxDaGFuZ2UpOgooV2ViQ29yZTo6
UmVuZGVyQmxvY2s6OnBhaW50Q2hpbGQpOgooV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmlzU2VsZWN0
aW9uUm9vdCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJCbG9jazo6cG9zaXRpb25Gb3JQb2ludCk6
CihXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGluZUhlaWdodCBjb25zdCk6CihXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CihXZWJDb3JlOjpmaW5kRmlyc3RMZXR0
ZXJCbG9jayk6CihXZWJDb3JlOjpSZW5kZXJCbG9jazo6Z2V0Rmlyc3RMZXR0ZXIpOgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpyZWJ1
aWxkRmxvYXRpbmdPYmplY3RTZXRGcm9tSW50cnVkaW5nRmxvYXRzKToKKFdlYkNvcmU6OlJlbmRl
ckJsb2NrRmxvdzo6c2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQpOgooV2ViQ29yZTo6UmVuZGVy
QmxvY2tGbG93Ojpwb3NpdGlvbkZvclBvaW50V2l0aElubGluZUNoaWxkcmVuKToKKFdlYkNvcmU6
OklubGluZU1pbk1heEl0ZXJhdG9yOjpuZXh0KToKKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6
Y29tcHV0ZUlubGluZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMgY29uc3QpOgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyQm94OjpvZmZzZXRG
cm9tQ29udGFpbmVyIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZUxvZ2ljYWxX
aWR0aEluRnJhZ21lbnQgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyQm94OjpzaXplc0xvZ2ljYWxX
aWR0aFRvRml0Q29udGVudCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVMb2dp
Y2FsSGVpZ2h0IGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckJveDo6c2hvdWxkVHJlYXRDaGlsZEFz
UmVwbGFjZWRJblRhYmxlQ2VsbHMgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRl
UG9zaXRpb25lZExvZ2ljYWxXaWR0aCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1
dGVQb3NpdGlvbmVkTG9naWNhbEhlaWdodCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJCb3g6OmF2
b2lkc0Zsb2F0cyBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJCb3g6OmlzVW5zcGxpdHRhYmxlRm9y
UGFnaW5hdGlvbiBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJCb3g6OmxpbmVIZWlnaHQgY29uc3Qp
OgooV2ViQ29yZTo6UmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94Lmg6CihXZWJDb3JlOjpSZW5kZXJCb3g6OnNob3Vs
ZENvbXB1dGVTaXplQXNSZXBsYWNlZCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveE1vZGVsT2JqZWN0Lmg6CihXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6
Y2FuSGF2ZUJveEluZm9JbkZyYWdtZW50IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoKKFdlYkNvcmU6OlJlbmRlckRlcHJl
Y2F0ZWRGbGV4aWJsZUJveDo6YXBwbHlMaW5lQ2xhbXApOgooV2ViQ29yZTo6UmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94OjpjbGVhckxpbmVDbGFtcCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuY3BwOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6Z2V0TGVhZGlu
Z0Nvcm5lciBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpnZXRUcmFpbGluZ0Nvcm5l
ciBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjphYnNvbHV0ZUFuY2hvclJlY3QgY29u
c3QpOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6Y3JlYXRlc05ld0Zvcm1hdHRpbmdDb250ZXh0
IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcDoKKFdl
YkNvcmU6OlJlbmRlcklGcmFtZTo6aXNBdG9taWNJbmxpbmUgY29uc3QpOiBUaGlzIGlzIG9kZCBh
bmQgaWZyYW1lIHNob3VsZCBub3Qgb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbi4KKFdlYkNvcmU6OlJl
bmRlcklGcmFtZTo6aXNJbmxpbmVCbG9ja09ySW5saW5lVGFibGUgY29uc3QpOiBEZWxldGVkLgoq
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuaDoKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHA6CihXZWJDb3JlOjpSZW5kZXJMaXN0TWFy
a2VyOjpSZW5kZXJMaXN0TWFya2VyKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcDoKKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29udGFpbmluZ0Jsb2NrRm9yUG9z
aXRpb25UeXBlKToKKFdlYkNvcmU6Om91dHB1dFJlbmRlclRyZWVMZWdlbmQpOgooV2ViQ29yZTo6
UmVuZGVyT2JqZWN0OjpvdXRwdXRSZW5kZXJPYmplY3QgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVy
T2JqZWN0OjpjYXJldE1heE9mZnNldCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc0F0b21pY0lubGluZSBj
b25zdCk6CihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Omhhc0ludHJpbnNpY0FzcGVjdFJhdGlvIGNv
bnN0KToKKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNSZXBsYWNlZE9yQXRvbWljSW5saW5lIGNv
bnN0KToKKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2V0UmVwbGFjZWRPckF0b21pY0lubGluZSk6
CihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzSW5saW5lQmxvY2tPcklubGluZVRhYmxlIGNvbnN0
KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNSZXBsYWNlZE9ySW5saW5lQmxv
Y2sgY29uc3QpOiBEZWxldGVkLgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzZXRSZXBsYWNlZE9y
SW5saW5lQmxvY2spOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3RJbmxpbmVzLmg6CihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzQXRvbWljSW5saW5lTGV2
ZWxCb3ggY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5j
cHA6CihXZWJDb3JlOjptX2ludHJpbnNpY1NpemUpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJSZXBsaWNhLmNwcDoKKFdlYkNvcmU6OlJlbmRlclJlcGxpY2E6OlJlbmRlclJlcGxp
Y2EpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0JyZWFraW5nQ29udGV4dC5oOgoo
V2ViQ29yZTo6QnJlYWtpbmdDb250ZXh0Ojppbml0aWFsaXplRm9yQ3VycmVudE9iamVjdCk6CihX
ZWJDb3JlOjpCcmVha2luZ0NvbnRleHQ6OmNhbkJyZWFrQXRUaGlzUG9zaXRpb24pOgooV2ViQ29y
ZTo6QnJlYWtpbmdDb250ZXh0Ojpjb21taXRBbmRVcGRhdGVMaW5lQnJlYWtJZk5lZWRlZCk6Ciog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcDoK
KFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpjcmVhdGVBbm9ueW1vdXNXcmFwcGVyc0Zvcklu
bGluZUNvbnRlbnQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlQnVpbGRlckJsb2NrLmNwcDoKKFdlYkNvcmU6OmZpbmRQYXJlbnRBbmRCZWZvcmVDaGlsZEZv
ck5vblNpYmxpbmcpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlQnVpbGRlcklubGluZS5jcHA6CihXZWJDb3JlOjpuZXh0Q29udGludWF0aW9uKToKLS0tCiAu
Li4vQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgICAgICAgICAgICAgfCAgMiArLQogU291
cmNlL1dlYkNvcmUvY3NzL0NvbXB1dGVkU3R5bGVFeHRyYWN0b3IuY3BwIHwgIDIgKy0KIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAgICAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAgICAgfCAgNCArKy0tCiAuLi4vTGF5
b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50UGFpbnRlci5jcHAgfCAgMiArLQogU291cmNlL1dl
YkNvcmUvcGFnZS9JbnRlcmFjdGlvblJlZ2lvbi5jcHAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvVGV4dEluZGljYXRvci5jcHAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL2lvcy9GcmFtZUlPUy5tbSAgICAgICAgICAgfCAgNCArKy0tCiAuLi4vcmVuZGVyaW5n
L0NhcmV0UmVjdENvbXB1dGF0aW9uLmNwcCAgICAgICAgfCAgMiArLQogLi4uL1dlYkNvcmUvcmVu
ZGVyaW5nL0xlZ2FjeUlubGluZUl0ZXJhdG9yLmggIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAgICAgICB8IDIxICsrKysrKysrKy0tLS0tLS0tLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmggICAgICAgIHwgIDIgKy0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwICB8IDEyICsrKysrLS0tLS0K
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwICAgICAgICB8IDIyICsrKysr
KysrKy0tLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCAgICAg
ICAgICB8ICAyICstCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
aCAgfCAgMiArLQogLi4uL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3Bw
IHwgIDQgKystLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwICAg
IHwgMTQgKysrKysrLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1l
LmNwcCAgICAgfCAgMyArKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUu
aCAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtl
ci5jcHAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAg
ICAgIHwgMTAgKysrKy0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmggICAgICAgfCAxMCArKysrLS0tLS0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3RJbmxpbmVzLmggICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVw
bGFjZWQuY3BwICAgfCAgNiArKy0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
cGxpY2EuY3BwICAgIHwgIDQgKystLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvQnJlYWtp
bmdDb250ZXh0LmggIHwgMTIgKysrKystLS0tLQogLi4uL3JlbmRlcmluZy91cGRhdGluZy9SZW5k
ZXJUcmVlQnVpbGRlci5jcHAgIHwgIDIgKy0KIC4uLi91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRl
ckJsb2NrLmNwcCAgICAgICB8ICAyICstCiAuLi4vdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJJ
bmxpbmUuY3BwICAgICAgfCAgMiArLQogMzEgZmlsZXMgY2hhbmdlZCwgODIgaW5zZXJ0aW9ucygr
KSwgODIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMmNjYmZjOTU4ZDNj
Li4zODE2MDg1NzQzNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtNDQzLDcgKzQ0Myw3IEBA
IEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Om5leHRTaWJs
aW5nKCkgY29uc3QKIAogc3RhdGljIFJlbmRlckJveE1vZGVsT2JqZWN0KiBuZXh0Q29udGludWF0
aW9uKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7Ci0gICAgaWYgKCFyZW5kZXJlci5pc1JlcGxh
Y2VkT3JJbmxpbmVCbG9jaygpKSB7CisgICAgaWYgKCFyZW5kZXJlci5pc1JlcGxhY2VkT3JBdG9t
aWNJbmxpbmUoKSkgewogICAgICAgICBpZiAoYXV0byogcmVuZGVySW5saW5lID0gZHluYW1pY0Rv
d25jYXN0PFJlbmRlcklubGluZT4ocmVuZGVyZXIpKQogICAgICAgICAgICAgcmV0dXJuIHJlbmRl
cklubGluZS0+Y29udGludWF0aW9uKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NvbXB1dGVkU3R5bGVFeHRyYWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0Nv
bXB1dGVkU3R5bGVFeHRyYWN0b3IuY3BwCmluZGV4IDg2NDhhZjliMDViOS4uNjUzNmE2MGEyODI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NvbXB1dGVkU3R5bGVFeHRyYWN0b3IuY3BwCkBA
IC0yNjg4LDcgKzI2ODgsNyBAQCBzdGF0aWMgQ1NTVmFsdWVJRCBjb252ZXJ0VG9Db2x1bW5CcmVh
ayhCcmVha0luc2lkZSB2YWx1ZSkKIAogc3RhdGljIGlubGluZSBib29sIGlzTm9uUmVwbGFjZWRJ
bmxpbmUoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKIHsKLSAgICByZXR1cm4gcmVuZGVyZXIuaXNJ
bmxpbmUoKSAmJiAhcmVuZGVyZXIuaXNSZXBsYWNlZE9ySW5saW5lQmxvY2soKTsKKyAgICByZXR1
cm4gcmVuZGVyZXIuaXNJbmxpbmUoKSAmJiAhcmVuZGVyZXIuaXNSZXBsYWNlZE9yQXRvbWljSW5s
aW5lKCk7CiB9CiAKIHN0YXRpYyBib29sIHJlbmRlcmVyQ2FuSGF2ZVRyaW1tZWRNYXJnaW4oY29u
c3QgUmVuZGVyQm94JiByZW5kZXJlciwgTWFyZ2luVHJpbVR5cGUgbWFyZ2luVHJpbVR5cGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5jcHAKaW5kZXggOGEzNDI2NDI4MWVkLi4zMjc0MGViZDJmODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5jcHAKQEAgLTk0MSw5ICs5NDEsOSBAQCBMYXlvdXRSZWN0IE5vZGU6OmFic29sdXRlQm91bmRp
bmdSZWN0KGJvb2wqIGlzUmVwbGFjZWQpCiAgICAgfQogICAgIFJlbmRlck9iamVjdCogcmVuZGVy
ZXIgPSBoaXRSZW5kZXJlcjsKICAgICB3aGlsZSAocmVuZGVyZXIgJiYgIXJlbmRlcmVyLT5pc0Jv
ZHkoKSAmJiAhcmVuZGVyZXItPmlzRG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKSkgewotICAgICAg
ICBpZiAocmVuZGVyZXItPmlzUmVuZGVyQmxvY2soKSB8fCByZW5kZXJlci0+aXNJbmxpbmVCbG9j
a09ySW5saW5lVGFibGUoKSB8fCByZW5kZXJlci0+aXNSZXBsYWNlZE9ySW5saW5lQmxvY2soKSkg
eworICAgICAgICBpZiAocmVuZGVyZXItPmlzUmVuZGVyQmxvY2soKSB8fCByZW5kZXJlci0+aXNO
b25SZXBsYWNlZEF0b21pY0lubGluZSgpIHx8IHJlbmRlcmVyLT5pc1JlcGxhY2VkT3JBdG9taWNJ
bmxpbmUoKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IElzIHRoaXMgcmVhbGx5IHdoYXQgY2Fs
bGVycyB3YW50IGZvciB0aGUgImlzUmVwbGFjZWQiIGZsYWc/Ci0gICAgICAgICAgICAqaXNSZXBs
YWNlZCA9IHJlbmRlcmVyLT5pc1JlcGxhY2VkT3JJbmxpbmVCbG9jaygpOworICAgICAgICAgICAg
KmlzUmVwbGFjZWQgPSByZW5kZXJlci0+aXNSZXBsYWNlZE9yQXRvbWljSW5saW5lKCk7CiAgICAg
ICAgICAgICByZXR1cm4gcmVuZGVyZXItPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KCk7CiAgICAg
ICAgIH0KICAgICAgICAgcmVuZGVyZXIgPSByZW5kZXJlci0+cGFyZW50KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bv
c2l0aW9uLmNwcAppbmRleCA4Nzk3Mzk1ZmM1MGIuLjY3Mjc5MWFkZjY1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UG9zaXRpb24uY3BwCkBAIC02MjYsNyArNjI2LDcgQEAgc3RhdGljIGJvb2wgZW5kc09mTm9kZUFy
ZVZpc3VhbGx5RGlzdGluY3RQb3NpdGlvbnMoTm9kZSogbm9kZSkKICAgICBpZiAoaXM8SFRNTFRh
YmxlRWxlbWVudD4oKm5vZGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgaWYg
KCFub2RlLT5yZW5kZXJlcigpLT5pc1JlcGxhY2VkT3JJbmxpbmVCbG9jaygpIHx8ICFjYW5IYXZl
Q2hpbGRyZW5Gb3JFZGl0aW5nKCpub2RlKSB8fCAhZG93bmNhc3Q8UmVuZGVyQm94Pigqbm9kZS0+
cmVuZGVyZXIoKSkuaGVpZ2h0KCkpCisgICAgaWYgKCFub2RlLT5yZW5kZXJlcigpLT5pc1JlcGxh
Y2VkT3JBdG9taWNJbmxpbmUoKSB8fCAhY2FuSGF2ZUNoaWxkcmVuRm9yRWRpdGluZygqbm9kZSkg
fHwgIWRvd25jYXN0PFJlbmRlckJveD4oKm5vZGUtPnJlbmRlcmVyKCkpLmhlaWdodCgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBUaGVyZSBpcyBhIFZpc2libGVQb3NpdGlvbiBp
bnNpZGUgYW4gZW1wdHkgaW5saW5lLWJsb2NrIGNvbnRhaW5lci4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcAppbmRleCA1MjdlY2Q0ZWRkYzMuLmNhZGE1YTNlNjVl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcApAQCAtMTM1
LDcgKzEzNSw3IEBAIFBvc2l0aW9uIFZpc2libGVQb3NpdGlvbjo6bGVmdFZpc3VhbGx5RGlzdGlu
Y3RDYW5kaWRhdGUoKSBjb25zdAogICAgICAgICBDaGVja2VkUHRyIHJlbmRlcmVyID0gJmJveC0+
cmVuZGVyZXIoKTsKIAogICAgICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICAgICAgaWYgKChy
ZW5kZXJlci0+aXNSZXBsYWNlZE9ySW5saW5lQmxvY2soKSB8fCByZW5kZXJlci0+aXNCUigpKSAm
JiBvZmZzZXQgPT0gYm94LT5yaWdodG1vc3RDYXJldE9mZnNldCgpKQorICAgICAgICAgICAgaWYg
KChyZW5kZXJlci0+aXNSZXBsYWNlZE9yQXRvbWljSW5saW5lKCkgfHwgcmVuZGVyZXItPmlzQlIo
KSkgJiYgb2Zmc2V0ID09IGJveC0+cmlnaHRtb3N0Q2FyZXRPZmZzZXQoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94LT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBwcmV2aW91c1Zpc3Vh
bGx5RGlzdGluY3RDYW5kaWRhdGUobV9kZWVwUG9zaXRpb24pIDogbmV4dFZpc3VhbGx5RGlzdGlu
Y3RDYW5kaWRhdGUobV9kZWVwUG9zaXRpb24pOwogCiAgICAgICAgICAgICBpZiAoIXJlbmRlcmVy
LT5ub2RlKCkpIHsKQEAgLTMwMCw3ICszMDAsNyBAQCBQb3NpdGlvbiBWaXNpYmxlUG9zaXRpb246
OnJpZ2h0VmlzdWFsbHlEaXN0aW5jdENhbmRpZGF0ZSgpIGNvbnN0CiAgICAgICAgIENoZWNrZWRQ
dHIgcmVuZGVyZXIgPSAmYm94LT5yZW5kZXJlcigpOwogCiAgICAgICAgIHdoaWxlICh0cnVlKSB7
Ci0gICAgICAgICAgICBpZiAoKHJlbmRlcmVyLT5pc1JlcGxhY2VkT3JJbmxpbmVCbG9jaygpIHx8
IHJlbmRlcmVyLT5pc0JSKCkpICYmIG9mZnNldCA9PSBib3gtPmxlZnRtb3N0Q2FyZXRPZmZzZXQo
KSkKKyAgICAgICAgICAgIGlmICgocmVuZGVyZXItPmlzUmVwbGFjZWRPckF0b21pY0lubGluZSgp
IHx8IHJlbmRlcmVyLT5pc0JSKCkpICYmIG9mZnNldCA9PSBib3gtPmxlZnRtb3N0Q2FyZXRPZmZz
ZXQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gYm94LT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9u
KCkgPyBuZXh0VmlzdWFsbHlEaXN0aW5jdENhbmRpZGF0ZShtX2RlZXBQb3NpdGlvbikgOiBwcmV2
aW91c1Zpc3VhbGx5RGlzdGluY3RDYW5kaWRhdGUobV9kZWVwUG9zaXRpb24pOwogCiAgICAgICAg
ICAgICBpZiAoIXJlbmRlcmVyLT5ub2RlKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50
UGFpbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xh
eW91dEludGVncmF0aW9uSW5saW5lQ29udGVudFBhaW50ZXIuY3BwCmluZGV4IGUzN2Q4ZGZlZGIz
Mi4uYjIyMjAwYzRkOGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudFBhaW50ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdy
YXRpb25JbmxpbmVDb250ZW50UGFpbnRlci5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBJbmxp
bmVDb250ZW50UGFpbnRlcjo6cGFpbnREaXNwbGF5Qm94KGNvbnN0IElubGluZURpc3BsYXk6OkJv
eCYgYm94KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGF1dG8qIHJlbmRlcmVy
ID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckJveD4oYm94LmxheW91dEJveCgpLnJlbmRlcmVyRm9y
SW50ZWdyYXRpb24oKSk7IHJlbmRlcmVyICYmIHJlbmRlcmVyLT5pc1JlcGxhY2VkT3JJbmxpbmVC
bG9jaygpKSB7CisgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gZHluYW1pY0Rvd25jYXN0PFJlbmRl
ckJveD4oYm94LmxheW91dEJveCgpLnJlbmRlcmVyRm9ySW50ZWdyYXRpb24oKSk7IHJlbmRlcmVy
ICYmIHJlbmRlcmVyLT5pc1JlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSkgewogICAgICAgICBpZiAo
bV9wYWludEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KCpyZW5kZXJlcikpIHsKICAgICAgICAg
ICAgIC8vIEZJWE1FOiBQYWludGluZyBzaG91bGQgbm90IHJlcXVpcmUgYSBub24tY29uc3QgcmVu
ZGVyZXIuCiAgICAgICAgICAgICBjb25zdF9jYXN0PFJlbmRlckJveCo+KHJlbmRlcmVyKS0+cGFp
bnRBc0lubGluZUJsb2NrKG1fcGFpbnRJbmZvLCBmbGlwcGVkQ29udGVudE9mZnNldElmTmVlZGVk
KCpyZW5kZXJlcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcmFjdGlv
blJlZ2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyYWN0aW9uUmVnaW9uLmNwcApp
bmRleCAwZWNhNGY4NDljOWQuLjBiZThjODhkMWFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9JbnRlcmFjdGlvblJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9J
bnRlcmFjdGlvblJlZ2lvbi5jcHAKQEAgLTQyOCw3ICs0MjgsNyBAQCBzdGQ6Om9wdGlvbmFsPElu
dGVyYWN0aW9uUmVnaW9uPiBpbnRlcmFjdGlvblJlZ2lvbkZvclJlbmRlcmVkUmVnaW9uKFJlbmRl
ck9iamVjdAogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAotICAgIGJvb2wg
aXNJbmxpbmVOb25CbG9jayA9IHJlbmRlcmVyLmlzSW5saW5lKCkgJiYgIXJlbmRlcmVyLmlzUmVw
bGFjZWRPcklubGluZUJsb2NrKCk7CisgICAgYm9vbCBpc0lubGluZU5vbkJsb2NrID0gcmVuZGVy
ZXIuaXNJbmxpbmUoKSAmJiAhcmVuZGVyZXIuaXNSZXBsYWNlZE9yQXRvbWljSW5saW5lKCk7CiAg
ICAgYm9vbCBpc1Bob3RvID0gZmFsc2U7CiAKICAgICBmbG9hdCBtaW5pbXVtQ29udGVudEhpbnRB
cmVhID0gMjAwICogMjAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9UZXh0SW5k
aWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5jcHAKaW5kZXgg
M2E4NjRiZmRjMWYwLi4wNTdmNDNjZDZlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvVGV4dEluZGljYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9UZXh0SW5kaWNh
dG9yLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIHN0YXRpYyBib29sIGhhc05vbklubGluZU9yUmVw
bGFjZWRFbGVtZW50cyhjb25zdCBTaW1wbGVSYW5nZSYgcmFuZ2UpCiB7CiAgICAgZm9yIChhdXRv
JiBub2RlIDogaW50ZXJzZWN0aW5nTm9kZXMocmFuZ2UpKSB7CiAgICAgICAgIGF1dG8gcmVuZGVy
ZXIgPSBub2RlLnJlbmRlcmVyKCk7Ci0gICAgICAgIGlmIChyZW5kZXJlciAmJiAoIXJlbmRlcmVy
LT5pc0lubGluZSgpIHx8IHJlbmRlcmVyLT5pc1JlcGxhY2VkT3JJbmxpbmVCbG9jaygpKSkKKyAg
ICAgICAgaWYgKHJlbmRlcmVyICYmICghcmVuZGVyZXItPmlzSW5saW5lKCkgfHwgcmVuZGVyZXIt
PmlzUmVwbGFjZWRPckF0b21pY0lubGluZSgpKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2lvcy9GcmFtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCmlu
ZGV4IDBhZmEwYmMwNTI3NS4uZjY3Nzg0YjJhODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2lvcy9GcmFtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9GcmFt
ZUlPUy5tbQpAQCAtMjA4LDggKzIwOCw4IEBAIENHUmVjdCBMb2NhbEZyYW1lOjpyZW5kZXJSZWN0
Rm9yUG9pbnQoQ0dQb2ludCBwb2ludCwgYm9vbCogaXNSZXBsYWNlZCwgZmxvYXQqIGZvCiAgICAg
ICAgICAgICBwcmludGYoIiVzICVmICVmICVmICVmXG4iLCBub2RlTmFtZSwgcmVjdC5vcmlnaW4u
eCwgcmVjdC5vcmlnaW4ueSwgcmVjdC5zaXplLndpZHRoLCByZWN0LnNpemUuaGVpZ2h0KTsKICAg
ICAgICAgfQogI2VuZGlmCi0gICAgICAgIGlmIChyZW5kZXJlci0+aXNSZW5kZXJCbG9jaygpIHx8
IHJlbmRlcmVyLT5pc0lubGluZUJsb2NrT3JJbmxpbmVUYWJsZSgpIHx8IHJlbmRlcmVyLT5pc1Jl
cGxhY2VkT3JJbmxpbmVCbG9jaygpKSB7Ci0gICAgICAgICAgICAqaXNSZXBsYWNlZCA9IHJlbmRl
cmVyLT5pc1JlcGxhY2VkT3JJbmxpbmVCbG9jaygpOworICAgICAgICBpZiAocmVuZGVyZXItPmlz
UmVuZGVyQmxvY2soKSB8fCByZW5kZXJlci0+aXNOb25SZXBsYWNlZEF0b21pY0lubGluZSgpIHx8
IHJlbmRlcmVyLT5pc1JlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSkgeworICAgICAgICAgICAgKmlz
UmVwbGFjZWQgPSByZW5kZXJlci0+aXNSZXBsYWNlZE9yQXRvbWljSW5saW5lKCk7CiAjaWYgQ0hF
Q0tfRk9OVF9TSVpFCiAgICAgICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogdGV4dFJlbmRlcmVy
ID0gaGl0UmVuZGVyZXI7IHRleHRSZW5kZXJlcjsgdGV4dFJlbmRlcmVyID0gdGV4dFJlbmRlcmVy
LT50cmF2ZXJzZU5leHQoaGl0UmVuZGVyZXIpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHRleHRS
ZW5kZXJlci0+aXNUZXh0KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9DYXJldFJlY3RDb21wdXRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2Fy
ZXRSZWN0Q29tcHV0YXRpb24uY3BwCmluZGV4IGU2MmJhYTgzOGRkZS4uZTQ4ZGNiMjQ4MWZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2FyZXRSZWN0Q29tcHV0YXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5j
cHAKQEAgLTI3OSw3ICsyNzksNyBAQCBzdGF0aWMgTGF5b3V0UmVjdCBjb21wdXRlQ2FyZXRSZWN0
Rm9yQm94KGNvbnN0IFJlbmRlckJveCYgcmVuZGVyZXIsIGNvbnN0IElubGluZQogICAgIC8vCiAg
ICAgLy8gRklYTUU6IGlnbm9yaW5nIDpmaXJzdC1saW5lLCBtaXNzaW5nIGdvb2QgcmVhc29uIHRv
IHRha2UgY2FyZSBvZgogICAgIGF1dG8gZm9udEhlaWdodCA9IHJlbmRlcmVyLnN0eWxlKCkubWV0
cmljc09mUHJpbWFyeUZvbnQoKS5oZWlnaHQoKTsKLSAgICBpZiAoZm9udEhlaWdodCA+IHJlY3Qu
aGVpZ2h0KCkgfHwgKCFyZW5kZXJlci5pc1JlcGxhY2VkT3JJbmxpbmVCbG9jaygpICYmICFyZW5k
ZXJlci5pc1JlbmRlclRhYmxlKCkpKQorICAgIGlmIChmb250SGVpZ2h0ID4gcmVjdC5oZWlnaHQo
KSB8fCAoIXJlbmRlcmVyLmlzUmVwbGFjZWRPckF0b21pY0lubGluZSgpICYmICFyZW5kZXJlci5p
c1JlbmRlclRhYmxlKCkpKQogICAgICAgICByZWN0LnNldEhlaWdodChmb250SGVpZ2h0KTsKIAog
ICAgIC8vIE1vdmUgdG8gbG9jYWwgY29vcmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvTGVnYWN5SW5saW5lSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9MZWdhY3lJbmxpbmVJdGVyYXRvci5oCmluZGV4IGZiNjYyODBhNjUwYi4uMzkyNjgwMmU0Nzdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lSXRlcmF0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lSXRlcmF0b3Iu
aApAQCAtMTg1LDcgKzE4NSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBub3RpZnlPYnNlcnZlcldp
bGxFeGl0T2JqZWN0KE9ic2VydmVyKiBvYnNlcnZlciwgUmVuZGVyT2JqZWN0CiBzdGF0aWMgaW5s
aW5lIGJvb2wgaXNJdGVyYXRvclRhcmdldChSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKICAgICBB
U1NFUlQob2JqZWN0KTsgLy8gVGhlIGl0ZXJhdG9yIHdpbGwgb2YgY291cnNlIHJldHVybiAwLCBi
dXQgaXRzIG5vdCBhbiBleHBlY3RlZCBhcmd1bWVudCB0byB0aGlzIGZ1bmN0aW9uLgotICAgIHJl
dHVybiBvYmplY3QtPmlzUmVuZGVyVGV4dE9yTGluZUJyZWFrKCkgfHwgb2JqZWN0LT5pc0Zsb2F0
aW5nKCkgfHwgb2JqZWN0LT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSB8fCBvYmplY3QtPmlzUmVw
bGFjZWRPcklubGluZUJsb2NrKCk7CisgICAgcmV0dXJuIG9iamVjdC0+aXNSZW5kZXJUZXh0T3JM
aW5lQnJlYWsoKSB8fCBvYmplY3QtPmlzRmxvYXRpbmcoKSB8fCBvYmplY3QtPmlzT3V0T2ZGbG93
UG9zaXRpb25lZCgpIHx8IG9iamVjdC0+aXNSZXBsYWNlZE9yQXRvbWljSW5saW5lKCk7CiB9CiAK
IHRlbXBsYXRlIDxjbGFzcyBPYnNlcnZlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCmluZGV4IDA0NWExNjkzOWQ3Ny4uOWRhNTYyNzU5OGVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTMwOSw4ICszMDksOCBAQCB2b2lkIFJl
bmRlckJsb2NrOjpyZW1vdmVQb3NpdGlvbmVkT2JqZWN0c0lmTmVlZGVkKGNvbnN0IFJlbmRlclN0
eWxlJiBvbGRTdHlsZSwgYwogICAgICAgICAvLyBUaGV5IHdpbGwgYmUgaW5zZXJ0ZWQgaW50byBv
dXIgcG9zaXRpb25lZCBvYmplY3RzIGxpc3QgZHVyaW5nIGxheW91dC4KICAgICAgICAgYXV0byog
Y29udGFpbmluZ0Jsb2NrID0gcGFyZW50KCk7CiAgICAgICAgIHdoaWxlIChjb250YWluaW5nQmxv
Y2sgJiYgIWlzPFJlbmRlclZpZXc+KCpjb250YWluaW5nQmxvY2spCi0gICAgICAgICAgICAmJiAo
Y29udGFpbmluZ0Jsb2NrLT5zdHlsZSgpLnBvc2l0aW9uKCkgPT0gUG9zaXRpb25UeXBlOjpTdGF0
aWMgfHwgKGNvbnRhaW5pbmdCbG9jay0+aXNJbmxpbmUoKSAmJiAhY29udGFpbmluZ0Jsb2NrLT5p
c1JlcGxhY2VkT3JJbmxpbmVCbG9jaygpKSkpIHsKLSAgICAgICAgICAgIGlmIChjb250YWluaW5n
QmxvY2stPnN0eWxlKCkucG9zaXRpb24oKSA9PSBQb3NpdGlvblR5cGU6OlJlbGF0aXZlICYmIGNv
bnRhaW5pbmdCbG9jay0+aXNJbmxpbmUoKSAmJiAhY29udGFpbmluZ0Jsb2NrLT5pc1JlcGxhY2Vk
T3JJbmxpbmVCbG9jaygpKSB7CisgICAgICAgICAgICAmJiAoY29udGFpbmluZ0Jsb2NrLT5zdHls
ZSgpLnBvc2l0aW9uKCkgPT0gUG9zaXRpb25UeXBlOjpTdGF0aWMgfHwgKGNvbnRhaW5pbmdCbG9j
ay0+aXNJbmxpbmUoKSAmJiAhY29udGFpbmluZ0Jsb2NrLT5pc1JlcGxhY2VkT3JBdG9taWNJbmxp
bmUoKSkpKSB7CisgICAgICAgICAgICBpZiAoY29udGFpbmluZ0Jsb2NrLT5zdHlsZSgpLnBvc2l0
aW9uKCkgPT0gUG9zaXRpb25UeXBlOjpSZWxhdGl2ZSAmJiBjb250YWluaW5nQmxvY2stPmlzSW5s
aW5lKCkgJiYgIWNvbnRhaW5pbmdCbG9jay0+aXNSZXBsYWNlZE9yQXRvbWljSW5saW5lKCkpIHsK
ICAgICAgICAgICAgICAgICBjb250YWluaW5nQmxvY2sgPSBjb250YWluaW5nQmxvY2stPmNvbnRh
aW5pbmdCbG9jaygpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAt
MzI0LDggKzMyNCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnJlbW92ZVBvc2l0aW9uZWRPYmplY3Rz
SWZOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIG9sZFN0eWxlLCBjCiB2b2lkIFJlbmRlckJsb2Nr
OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxl
JiBuZXdTdHlsZSkKIHsKICAgICBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUgPSBoYXNJbml0
aWFsaXplZFN0eWxlKCkgPyAmc3R5bGUoKSA6IG51bGxwdHI7Ci0gICAgLy8gRklYTUU6IFNob3Vs
ZCBjaGFuZ2UgdGhlIGV4cHJlc3Npb24gYmVsb3cgdG8gbmV3U3R5bGUuZGlzcGxheSgpID09IERp
c3BsYXlUeXBlOjpJbmxpbmVCbG9jay4KLSAgICBzZXRSZXBsYWNlZE9ySW5saW5lQmxvY2sobmV3
U3R5bGUuaXNEaXNwbGF5SW5saW5lVHlwZSgpKTsKKyAgICBzZXRSZXBsYWNlZE9yQXRvbWljSW5s
aW5lKG5ld1N0eWxlLmlzRGlzcGxheUlubGluZVR5cGUoKSk7CiAgICAgaWYgKG9sZFN0eWxlKSB7
CiAgICAgICAgIHJlbW92ZVBvc2l0aW9uZWRPYmplY3RzSWZOZWVkZWQoKm9sZFN0eWxlLCBuZXdT
dHlsZSk7CiAgICAgICAgIGlmIChpc0xlZ2VuZCgpICYmICFvbGRTdHlsZS0+aXNGbG9hdGluZygp
ICYmIG5ld1N0eWxlLmlzRmxvYXRpbmcoKSkKQEAgLTEwOTQsNyArMTA5Myw3IEBAIGJvb2wgUmVu
ZGVyQmxvY2s6OnBhaW50Q2hpbGQoUmVuZGVyQm94JiBjaGlsZCwgUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IExheW91CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAo
IWNoaWxkLmlzRmxvYXRpbmcoKSAmJiBjaGlsZC5pc1JlcGxhY2VkT3JJbmxpbmVCbG9jaygpICYm
IHVzZVByaW50UmVjdCAmJiBjaGlsZC5oZWlnaHQoKSA8PSB2aWV3KCkucHJpbnRSZWN0KCkuaGVp
Z2h0KCkpIHsKKyAgICBpZiAoIWNoaWxkLmlzRmxvYXRpbmcoKSAmJiBjaGlsZC5pc1JlcGxhY2Vk
T3JBdG9taWNJbmxpbmUoKSAmJiB1c2VQcmludFJlY3QgJiYgY2hpbGQuaGVpZ2h0KCkgPD0gdmll
dygpLnByaW50UmVjdCgpLmhlaWdodCgpKSB7CiAgICAgICAgIC8vIFBhZ2luYXRlIGJsb2NrLWxl
dmVsIHJlcGxhY2VkIGVsZW1lbnRzLgogICAgICAgICBpZiAoYWJzb2x1dGVDaGlsZFkgKyBjaGls
ZC5oZWlnaHQoKSA+IHZpZXcoKS5wcmludFJlY3QoKS5tYXhZKCkpIHsKICAgICAgICAgICAgIGlm
IChhYnNvbHV0ZUNoaWxkWSA8IHZpZXcoKS50cnVuY2F0ZWRBdCgpKQpAQCAtMTM5Myw3ICsxMzky
LDcgQEAgYm9vbCBSZW5kZXJCbG9jazo6aXNTZWxlY3Rpb25Sb290KCkgY29uc3QKIAogICAgIGlm
IChpc0JvZHkoKSB8fCBpc0RvY3VtZW50RWxlbWVudFJlbmRlcmVyKCkgfHwgaGFzTm9uVmlzaWJs
ZU92ZXJmbG93KCkKICAgICAgICAgfHwgaXNQb3NpdGlvbmVkKCkgfHwgaXNGbG9hdGluZygpCi0g
ICAgICAgIHx8IGlzUmVuZGVyVGFibGVDZWxsKCkgfHwgaXNJbmxpbmVCbG9ja09ySW5saW5lVGFi
bGUoKQorICAgICAgICB8fCBpc1JlbmRlclRhYmxlQ2VsbCgpIHx8IGlzTm9uUmVwbGFjZWRBdG9t
aWNJbmxpbmUoKQogICAgICAgICB8fCBpc1RyYW5zZm9ybWVkKCkgfHwgaGFzUmVmbGVjdGlvbigp
IHx8IGhhc01hc2soKSB8fCBpc1dyaXRpbmdNb2RlUm9vdCgpCiAgICAgICAgIHx8IGlzUmVuZGVy
RnJhZ21lbnRlZEZsb3coKSB8fCBzdHlsZSgpLmNvbHVtblNwYW4oKSA9PSBDb2x1bW5TcGFuOjpB
bGwKICAgICAgICAgfHwgaXNGbGV4SXRlbUluY2x1ZGluZ0RlcHJlY2F0ZWQoKSB8fCBpc0dyaWRJ
dGVtKCkpCkBAIC0yMTU0LDcgKzIxNTMsNyBAQCBWaXNpYmxlUG9zaXRpb24gUmVuZGVyQmxvY2s6
OnBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBIaXRUZXN0UwogICAg
IGlmIChpc1JlbmRlclRhYmxlKCkpCiAgICAgICAgIHJldHVybiBSZW5kZXJCb3g6OnBvc2l0aW9u
Rm9yUG9pbnQocG9pbnQsIHNvdXJjZSwgZnJhZ21lbnQpOwogCi0gICAgaWYgKGlzUmVwbGFjZWRP
cklubGluZUJsb2NrKCkpIHsKKyAgICBpZiAoaXNSZXBsYWNlZE9yQXRvbWljSW5saW5lKCkpIHsK
ICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2VlbXMgd3Jvbmcgd2hlbiB0aGUgb2JqZWN0J3Mgd3Jp
dGluZy1tb2RlIGRvZXNuJ3QgbWF0Y2ggdGhlIGxpbmUncyB3cml0aW5nLW1vZGUuCiAgICAgICAg
IExheW91dFVuaXQgcG9pbnRMb2dpY2FsTGVmdCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkg
PyBwb2ludC54KCkgOiBwb2ludC55KCk7CiAgICAgICAgIExheW91dFVuaXQgcG9pbnRMb2dpY2Fs
VG9wID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHBvaW50LnkoKSA6IHBvaW50LngoKTsK
QEAgLTI0MjksNyArMjQyOCw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OmxpbmVIZWlnaHQo
Ym9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwKICAgICAvLyB0aGUg
YmFzZSBjbGFzcy4gIElmIHdlJ3JlIGJlaW5nIHF1ZXJpZWQgYXMgdGhvdWdoIHdlJ3JlIHRoZSBy
b290IGxpbmUKICAgICAvLyBib3gsIHRoZW4gdGhlIGZhY3QgdGhhdCB3ZSdyZSBhbiBpbmxpbmUt
YmxvY2sgaXMgaXJyZWxldmFudCwgYW5kIHdlIGJlaGF2ZQogICAgIC8vIGp1c3QgbGlrZSBhIGJs
b2NrLgotICAgIGlmIChpc1JlcGxhY2VkT3JJbmxpbmVCbG9jaygpICYmIGxpbmVQb3NpdGlvbk1v
ZGUgPT0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKQorICAgIGlmIChpc1JlcGxhY2VkT3JBdG9t
aWNJbmxpbmUoKSAmJiBsaW5lUG9zaXRpb25Nb2RlID09IFBvc2l0aW9uT25Db250YWluaW5nTGlu
ZSkKICAgICAgICAgcmV0dXJuIFJlbmRlckJveDo6bGluZUhlaWdodChmaXJzdExpbmUsIGRpcmVj
dGlvbiwgbGluZVBvc2l0aW9uTW9kZSk7CiAKICAgICBhdXRvJiBsaW5lU3R5bGUgPSBmaXJzdExp
bmUgPyBmaXJzdExpbmVTdHlsZSgpIDogc3R5bGUoKTsKQEAgLTI0NDIsNyArMjQ0MSw3IEBAIExh
eW91dFVuaXQgUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lIGJhc2Vs
aW5lVHlwZSwgYm9vbCBmaXJzdExpCiAgICAgLy8gdGhlIGJhc2UgY2xhc3MuICBJZiB3ZSdyZSBi
ZWluZyBxdWVyaWVkIGFzIHRob3VnaCB3ZSdyZSB0aGUgcm9vdCBsaW5lCiAgICAgLy8gYm94LCB0
aGVuIHRoZSBmYWN0IHRoYXQgd2UncmUgYW4gaW5saW5lLWJsb2NrIGlzIGlycmVsZXZhbnQsIGFu
ZCB3ZSBiZWhhdmUKICAgICAvLyBqdXN0IGxpa2UgYSBibG9jay4KLSAgICBpZiAoaXNSZXBsYWNl
ZE9ySW5saW5lQmxvY2soKSAmJiBsaW5lUG9zaXRpb25Nb2RlID09IFBvc2l0aW9uT25Db250YWlu
aW5nTGluZSkgeworICAgIGlmIChpc1JlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSAmJiBsaW5lUG9z
aXRpb25Nb2RlID09IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgewogICAgICAgICAvLyBGb3Ig
ImxlYWYiIHRoZW1lIG9iamVjdHMsIGxldCB0aGUgdGhlbWUgZGVjaWRlIHdoYXQgdGhlIGJhc2Vs
aW5lIHBvc2l0aW9uIGlzLgogICAgICAgICAvLyBGSVhNRTogTWlnaHQgYmUgYmV0dGVyIHRvIGhh
dmUgYSBjdXN0b20gQ1NTIHByb3BlcnR5IGluc3RlYWQsIHNvIHRoYXQgaWYgdGhlIHRoZW1lCiAg
ICAgICAgIC8vIGlzIHR1cm5lZCBvZmYsIGNoZWNrYm94ZXMvcmFkaW9zIHdpbGwgc3RpbGwgaGF2
ZSBkZWNlbnQgYmFzZWxpbmVzLgpAQCAtMjU5Miw3ICsyNTkxLDcgQEAgc3RhdGljIGlubGluZSBS
ZW5kZXJCbG9jayogZmluZEZpcnN0TGV0dGVyQmxvY2soUmVuZGVyQmxvY2sqIHN0YXJ0KQogICAg
ICAgICAgICAgcmV0dXJuIGZpcnN0TGV0dGVyQmxvY2s7CiAKICAgICAgICAgUmVuZGVyRWxlbWVu
dCogcGFyZW50QmxvY2sgPSBmaXJzdExldHRlckJsb2NrLT5wYXJlbnQoKTsKLSAgICAgICAgaWYg
KGZpcnN0TGV0dGVyQmxvY2stPmlzUmVwbGFjZWRPcklubGluZUJsb2NrKCkgfHwgIXBhcmVudEJs
b2NrIHx8IHBhcmVudEJsb2NrLT5maXJzdENoaWxkKCkgIT0gZmlyc3RMZXR0ZXJCbG9jaworICAg
ICAgICBpZiAoZmlyc3RMZXR0ZXJCbG9jay0+aXNSZXBsYWNlZE9yQXRvbWljSW5saW5lKCkgfHwg
IXBhcmVudEJsb2NrIHx8IHBhcmVudEJsb2NrLT5maXJzdENoaWxkKCkgIT0gZmlyc3RMZXR0ZXJC
bG9jawogICAgICAgICAgICAgfHwgIWlzUmVuZGVyQmxvY2tGbG93T3JSZW5kZXJCdXR0b24oKnBh
cmVudEJsb2NrKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBmaXJzdExl
dHRlckJsb2NrID0gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KHBhcmVudEJsb2NrKTsKQEAgLTI2Mzcs
NyArMjYzNiw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmdldEZpcnN0TGV0dGVyKFJlbmRlck9iamVj
dComIGZpcnN0TGV0dGVyLCBSZW5kZXJFbGVtZW50KiYgZmlyCiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBmaXJzdExldHRlciA9IGN1cnJlbnQubmV4
dFNpYmxpbmcoKTsKLSAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50LmlzUmVwbGFjZWRPcklubGlu
ZUJsb2NrKCkgfHwgaXM8UmVuZGVyQnV0dG9uPihjdXJyZW50KSB8fCBpczxSZW5kZXJNZW51TGlz
dD4oY3VycmVudCkpCisgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudC5pc1JlcGxhY2VkT3JBdG9t
aWNJbmxpbmUoKSB8fCBpczxSZW5kZXJCdXR0b24+KGN1cnJlbnQpIHx8IGlzPFJlbmRlck1lbnVM
aXN0PihjdXJyZW50KSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBlbHNlIGlmIChjdXJy
ZW50LmlzRmxleGlibGVCb3hJbmNsdWRpbmdEZXByZWNhdGVkKCkgfHwgY3VycmVudC5pc1JlbmRl
ckdyaWQoKSkKICAgICAgICAgICAgIGZpcnN0TGV0dGVyID0gY3VycmVudC5uZXh0U2libGluZygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAppbmRleCBhYzA5ODc3NTIzZDUu
LmMzM2M1NTFhYmYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKQEAg
LTM2Miw3ICszNjIsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBhZGp1c3RCb3JkZXJCb3hS
ZWN0Rm9yUGFpbnRpbmcoTGF5b3V0UmVjdCYpIG92ZXJyaWRlOwogICAgIExheW91dFJlY3QgcGFp
bnRSZWN0VG9DbGlwT3V0RnJvbUJvcmRlcihjb25zdCBMYXlvdXRSZWN0Jikgb3ZlcnJpZGU7Ci0g
ICAgYm9vbCBpc0lubGluZUJsb2NrT3JJbmxpbmVUYWJsZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IGlzSW5saW5lKCkgJiYgaXNSZXBsYWNlZE9ySW5saW5lQmxvY2soKTsgfQorICAgIGJvb2wgaXNO
b25SZXBsYWNlZEF0b21pY0lubGluZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGlzSW5saW5lKCkg
JiYgaXNSZXBsYWNlZE9yQXRvbWljSW5saW5lKCk7IH0KICAgICAKICAgICB2b2lkIGJvdW5kaW5n
UmVjdHMoVmVjdG9yPExheW91dFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVk
T2Zmc2V0KSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZs
b2F0UXVhZD4mLCBib29sKiB3YXNGaXhlZCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IGUxZTBjMzk5MjI3Ni4uMTdi
NTYwNWMwZjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcApAQCAtMjE5LDcgKzIxOSw3IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpyZWJ1aWxkRmxv
YXRpbmdPYmplY3RTZXRGcm9tSW50cnVkaW5nRmxvYXRzKCkKICAgICAgICAgfQogICAgIH0KIAot
ICAgIC8vIElubGluZSBibG9ja3MgYXJlIGNvdmVyZWQgYnkgdGhlIGlzUmVwbGFjZWRPcklubGlu
ZUJsb2NrKCkgY2hlY2sgaW4gdGhlIGF2b2lkRmxvYXRzIG1ldGhvZC4KKyAgICAvLyBJbmxpbmUg
YmxvY2tzIGFyZSBjb3ZlcmVkIGJ5IHRoZSBpc1JlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSBjaGVj
ayBpbiB0aGUgYXZvaWRGbG9hdHMgbWV0aG9kLgogICAgIGlmIChhdm9pZHNGbG9hdHMoKSB8fCBp
c0RvY3VtZW50RWxlbWVudFJlbmRlcmVyKCkgfHwgaXNSZW5kZXJWaWV3KCkgfHwgaXNGbG9hdGlu
Z09yT3V0T2ZGbG93UG9zaXRpb25lZCgpIHx8IGlzUmVuZGVyVGFibGVDZWxsKCkpIHsKICAgICAg
ICAgaWYgKG1fZmxvYXRpbmdPYmplY3RzKQogICAgICAgICAgICAgbV9mbG9hdGluZ09iamVjdHMt
PmNsZWFyKCk7CkBAIC04NjcsNyArODY3LDcgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OnNpbXBs
aWZpZWROb3JtYWxGbG93TGF5b3V0KCkKICAgICBib29sIHNob3VsZFVwZGF0ZU92ZXJmbG93ID0g
ZmFsc2U7CiAgICAgZm9yIChJbmxpbmVXYWxrZXIgd2Fsa2VyKCp0aGlzKTsgIXdhbGtlci5hdEVu
ZCgpOyB3YWxrZXIuYWR2YW5jZSgpKSB7CiAgICAgICAgIFJlbmRlck9iamVjdCYgcmVuZGVyZXIg
PSAqd2Fsa2VyLmN1cnJlbnQoKTsKLSAgICAgICAgaWYgKCFyZW5kZXJlci5pc091dE9mRmxvd1Bv
c2l0aW9uZWQoKSAmJiAocmVuZGVyZXIuaXNSZXBsYWNlZE9ySW5saW5lQmxvY2soKSB8fCByZW5k
ZXJlci5pc0Zsb2F0aW5nKCkpKSB7CisgICAgICAgIGlmICghcmVuZGVyZXIuaXNPdXRPZkZsb3dQ
b3NpdGlvbmVkKCkgJiYgKHJlbmRlcmVyLmlzUmVwbGFjZWRPckF0b21pY0lubGluZSgpIHx8IHJl
bmRlcmVyLmlzRmxvYXRpbmcoKSkpIHsKICAgICAgICAgICAgIFJlbmRlckJveCYgYm94ID0gZG93
bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcik7CiAgICAgICAgICAgICBib3gubGF5b3V0SWZOZWVk
ZWQoKTsKICAgICAgICAgICAgIHNob3VsZFVwZGF0ZU92ZXJmbG93ID0gdHJ1ZTsKQEAgLTM2NTQs
NyArMzY1NCw3IEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJCbG9ja0Zsb3c6OnBvc2l0aW9uRm9y
UG9pbnRXaXRoSW5saW5lQ2hpbGRyZW4oY29uc3QgTGF5b3V0CiAgICAgICAgIGF1dG8gcG9pbnQg
PSBMYXlvdXRQb2ludCB7IHBvaW50SW5Mb2dpY2FsQ29udGVudHMueCgpLCBjb250ZW50U3RhcnRJ
bkJsb2NrRGlyZWN0aW9uKCpjbG9zZXN0Qm94LT5saW5lQm94KCkpIH07CiAgICAgICAgIGlmICgh
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAgICAgIHBvaW50ID0gcG9pbnQudHJh
bnNwb3NlZFBvaW50KCk7Ci0gICAgICAgIGlmIChjbG9zZXN0Qm94LT5yZW5kZXJlcigpLmlzUmVw
bGFjZWRPcklubGluZUJsb2NrKCkpCisgICAgICAgIGlmIChjbG9zZXN0Qm94LT5yZW5kZXJlcigp
LmlzUmVwbGFjZWRPckF0b21pY0lubGluZSgpKQogICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9u
Rm9yUG9pbnRSZXNwZWN0aW5nRWRpdGluZ0JvdW5kYXJpZXMoKnRoaXMsIGNvbnN0X2Nhc3Q8UmVu
ZGVyQm94Jj4oZG93bmNhc3Q8UmVuZGVyQm94PihjbG9zZXN0Qm94LT5yZW5kZXJlcigpKSksIHBv
aW50LCBzb3VyY2UpOwogICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxSZW5kZXJPYmplY3QmPihj
bG9zZXN0Qm94LT5yZW5kZXJlcigpKS5wb3NpdGlvbkZvclBvaW50KHBvaW50LCBzb3VyY2UsIG51
bGxwdHIpOwogICAgIH0KQEAgLTQzODAsNyArNDM4MCw3IEBAIFJlbmRlck9iamVjdCogSW5saW5l
TWluTWF4SXRlcmF0b3I6Om5leHQoKQogICAgIGJvb2wgb2xkRW5kT2ZJbmxpbmUgPSBlbmRPZklu
bGluZTsKICAgICBlbmRPZklubGluZSA9IGZhbHNlOwogICAgIGRvIHsKLSAgICAgICAgaWYgKCFv
bGRFbmRPZklubGluZSAmJiAoY3VycmVudCAmJiAhY3VycmVudC0+aXNGbG9hdGluZygpICYmICFj
dXJyZW50LT5pc1JlcGxhY2VkT3JJbmxpbmVCbG9jaygpICYmICFjdXJyZW50LT5pc091dE9mRmxv
d1Bvc2l0aW9uZWQoKSkpCisgICAgICAgIGlmICghb2xkRW5kT2ZJbmxpbmUgJiYgKGN1cnJlbnQg
JiYgIWN1cnJlbnQtPmlzRmxvYXRpbmcoKSAmJiAhY3VycmVudC0+aXNSZXBsYWNlZE9yQXRvbWlj
SW5saW5lKCkgJiYgIWN1cnJlbnQtPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKSkKICAgICAgICAg
ICAgIHJlc3VsdCA9IGN1cnJlbnQtPmZpcnN0Q2hpbGRTbG93KCk7CiAgICAgICAgIGVsc2UgaWYg
KGluaXRpYWwpIHsKICAgICAgICAgICAgIHJlc3VsdCA9IHBhcmVudC5maXJzdENoaWxkKCk7CkBA
IC00NDExLDcgKzQ0MTEsNyBAQCBSZW5kZXJPYmplY3QqIElubGluZU1pbk1heEl0ZXJhdG9yOjpu
ZXh0KCkKICAgICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICBicmVhazsKIAotICAgICAg
ICBpZiAoIXJlc3VsdC0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgKHJlc3VsdC0+aXNSZW5k
ZXJUZXh0T3JMaW5lQnJlYWsoKSB8fCByZXN1bHQtPmlzRmxvYXRpbmcoKSB8fCByZXN1bHQtPmlz
UmVwbGFjZWRPcklubGluZUJsb2NrKCkgfHwgcmVzdWx0LT5pc1JlbmRlcklubGluZSgpKSkKKyAg
ICAgICAgaWYgKCFyZXN1bHQtPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmIChyZXN1bHQtPmlz
UmVuZGVyVGV4dE9yTGluZUJyZWFrKCkgfHwgcmVzdWx0LT5pc0Zsb2F0aW5nKCkgfHwgcmVzdWx0
LT5pc1JlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSB8fCByZXN1bHQtPmlzUmVuZGVySW5saW5lKCkp
KQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY3VycmVudCA9IHJlc3VsdDsKQEAgLTQ1
NzAsNyArNDU3MCw3IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93Ojpjb21wdXRlSW5saW5lUHJlZmVy
cmVkTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsCiAgICAgYm9vbCBhZGRlZFN0
YXJ0UHVuY3R1YXRpb25IYW5nID0gZmFsc2U7CiAgICAgCiAgICAgd2hpbGUgKFJlbmRlck9iamVj
dCogY2hpbGQgPSBjaGlsZEl0ZXJhdG9yLm5leHQoKSkgewotICAgICAgICBib29sIGF1dG9XcmFw
ID0gY2hpbGQtPmlzUmVwbGFjZWRPcklubGluZUJsb2NrKCkgPyBjaGlsZC0+cGFyZW50KCktPnN0
eWxlKCkuYXV0b1dyYXAoKSA6IGNoaWxkLT5zdHlsZSgpLmF1dG9XcmFwKCk7CisgICAgICAgIGJv
b2wgYXV0b1dyYXAgPSBjaGlsZC0+aXNSZXBsYWNlZE9yQXRvbWljSW5saW5lKCkgPyBjaGlsZC0+
cGFyZW50KCktPnN0eWxlKCkuYXV0b1dyYXAoKSA6IGNoaWxkLT5zdHlsZSgpLmF1dG9XcmFwKCk7
CiAKICAgICAgICAgLy8gSW50ZXJsaW5lYXIgYW5ub3RhdGlvbnMgZG9uJ3QgcGFydGljaXBhdGUg
aW4gaW5saW5lIGxheW91dCwgYnV0IHRoZXkgcHV0IGEgbWluaW11bSB3aWR0aCByZXF1aXJlbWVu
dCBvbiB0aGUgYXNzb2NpYXRlZCBydWJ5IGJhc2UuCiAgICAgICAgIGF1dG8gaXNJbnRlcmxpbmVh
clR5cGVBbm5vdGF0aW9uID0gaXM8UmVuZGVyQmxvY2s+KCpjaGlsZCkgJiYgY2hpbGQtPnN0eWxl
KCkuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpSdWJ5QW5ub3RhdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCAzN2RiYzZlOWE0OWEuLmE2OWFiM2ZlZDE5NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTI0NDQsNyArMjQ0NCw3
IEBAIExheW91dFNpemUgUmVuZGVyQm94OjpvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlckVsZW1l
bnQmIGNvbnRhaW5lciwgY29uc3QgTGF5b3V0CiAgICAgaWYgKGlzSW5GbG93UG9zaXRpb25lZCgp
KQogICAgICAgICBvZmZzZXQgKz0gb2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKIAotICAgIGlm
ICghaXNJbmxpbmUoKSB8fCBpc1JlcGxhY2VkT3JJbmxpbmVCbG9jaygpKQorICAgIGlmICghaXNJ
bmxpbmUoKSB8fCBpc1JlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSkKICAgICAgICAgb2Zmc2V0ICs9
IHRvcExlZnRMb2NhdGlvbk9mZnNldCgpOwogCiAgICAgaWYgKGF1dG8qIGJveENvbnRhaW5lciA9
IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJCb3g+KGNvbnRhaW5lcikpCkBAIC0yNjg0LDcgKzI2ODQs
NyBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZUxvZ2ljYWxXaWR0aEluRnJhZ21lbnQoTG9naWNh
bEV4dGVudENvbXB1dGVkVmFsdWVzJiBjb21wdQogICAgIExheW91dFVuaXQgY29udGFpbmVyTG9n
aWNhbFdpZHRoID0gc3RkOjptYXg8TGF5b3V0VW5pdD4oMCwgY29udGFpbmluZ0Jsb2NrTG9naWNh
bFdpZHRoRm9yQ29udGVudEluRnJhZ21lbnQoZnJhZ21lbnQpKTsKICAgICBib29sIGhhc1BlcnBl
bmRpY3VsYXJDb250YWluaW5nQmxvY2sgPSBjYi5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpICE9
IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7CiAKLSAgICBpZiAoaXNJbmxpbmUoKSAmJiAhaXNJ
bmxpbmVCbG9ja09ySW5saW5lVGFibGUoKSkgeworICAgIGlmIChpc0lubGluZSgpICYmICFpc05v
blJlcGxhY2VkQXRvbWljSW5saW5lKCkpIHsKICAgICAgICAgLy8ganVzdCBjYWxjdWxhdGUgbWFy
Z2lucwogICAgICAgICBjb21wdXRlZFZhbHVlcy5tX21hcmdpbnMubV9zdGFydCA9IG1pbmltdW1W
YWx1ZUZvckxlbmd0aChzdHlsZVRvVXNlLm1hcmdpblN0YXJ0KCksIGNvbnRhaW5lckxvZ2ljYWxX
aWR0aCk7CiAgICAgICAgIGNvbXB1dGVkVmFsdWVzLm1fbWFyZ2lucy5tX2VuZCA9IG1pbmltdW1W
YWx1ZUZvckxlbmd0aChzdHlsZVRvVXNlLm1hcmdpbkVuZCgpLCBjb250YWluZXJMb2dpY2FsV2lk
dGgpOwpAQCAtMjkwMiw3ICsyOTAyLDcgQEAgYm9vbCBSZW5kZXJCb3g6OnNpemVzTG9naWNhbFdp
ZHRoVG9GaXRDb250ZW50KFNpemVUeXBlIHdpZHRoVHlwZSkgY29uc3QKIHsKICAgICAvLyBNYXJx
dWVlcyBpbiBXaW5JRSBhcmUgbGlrZSBhIG1peHR1cmUgb2YgYmxvY2tzIGFuZCBpbmxpbmUtYmxv
Y2tzLiAgVGhleSBzaXplIGFzIHRob3VnaCB0aGV5J3JlIGJsb2NrcywKICAgICAvLyBidXQgdGhl
eSBhbGxvdyB0ZXh0IHRvIHNpdCBvbiB0aGUgc2FtZSBsaW5lIGFzIHRoZSBtYXJxdWVlLgotICAg
IGlmIChpc0Zsb2F0aW5nKCkgfHwgKGlzSW5saW5lQmxvY2tPcklubGluZVRhYmxlKCkgJiYgIWlz
SFRNTE1hcnF1ZWUoKSkpCisgICAgaWYgKGlzRmxvYXRpbmcoKSB8fCAoaXNOb25SZXBsYWNlZEF0
b21pY0lubGluZSgpICYmICFpc0hUTUxNYXJxdWVlKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
IAogICAgIGlmIChpc0dyaWRJdGVtKCkpIHsKQEAgLTMxNjQsNyArMzE2NCw3IEBAIFJlbmRlckJv
eDo6TG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzIFJlbmRlckJveDo6Y29tcHV0ZUxvZ2ljYWxI
ZWlnaHQoTGF5b3V0VW5pCiAgICAgY29tcHV0ZWRWYWx1ZXMubV9wb3NpdGlvbiA9IGxvZ2ljYWxU
b3A7CiAKICAgICAvLyBDZWxsIGhlaWdodCBpcyBtYW5hZ2VkIGJ5IHRoZSB0YWJsZSBhbmQgaW5s
aW5lIG5vbi1yZXBsYWNlZCBlbGVtZW50cyBkbyBub3Qgc3VwcG9ydCBhIGhlaWdodCBwcm9wZXJ0
eS4KLSAgICBpZiAoaXNSZW5kZXJUYWJsZUNlbGwoKSB8fCAoaXNJbmxpbmUoKSAmJiAhaXNSZXBs
YWNlZE9ySW5saW5lQmxvY2soKSkpCisgICAgaWYgKGlzUmVuZGVyVGFibGVDZWxsKCkgfHwgKGlz
SW5saW5lKCkgJiYgIWlzUmVwbGFjZWRPckF0b21pY0lubGluZSgpKSkKICAgICAgICAgcmV0dXJu
IGNvbXB1dGVkVmFsdWVzOwogCiAgICAgTGVuZ3RoIGg7CkBAIC0zNDIzLDcgKzM0MjMsNyBAQCBi
b29sIFJlbmRlckJveDo6c2tpcENvbnRhaW5pbmdCbG9ja0ZvclBlcmNlbnRIZWlnaHRDYWxjdWxh
dGlvbihjb25zdCBSZW5kZXJCb3gmCiAKIGJvb2wgUmVuZGVyQm94OjpzaG91bGRUcmVhdENoaWxk
QXNSZXBsYWNlZEluVGFibGVDZWxscygpIGNvbnN0CiB7Ci0gICAgaWYgKGlzUmVwbGFjZWRPcklu
bGluZUJsb2NrKCkpCisgICAgaWYgKGlzUmVwbGFjZWRPckF0b21pY0lubGluZSgpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICByZXR1cm4gZWxlbWVudCgpICYmIChlbGVtZW50KCktPmlzRm9y
bUNvbnRyb2xFbGVtZW50KCkgfHwgaXM8SFRNTEltYWdlRWxlbWVudD4oZWxlbWVudCgpKSk7CiB9
CkBAIC00MDE3LDcgKzQwMTcsNyBAQCBzdGF0aWMgdm9pZCBjb21wdXRlSW5saW5lU3RhdGljRGlz
dGFuY2UoTGVuZ3RoJiBsb2dpY2FsTGVmdCwgTGVuZ3RoJiBsb2dpY2FsUmlnaAogCiB2b2lkIFJl
bmRlckJveDo6Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsV2lkdGgoTG9naWNhbEV4dGVudENvbXB1
dGVkVmFsdWVzJiBjb21wdXRlZFZhbHVlcywgUmVuZGVyRnJhZ21lbnRDb250YWluZXIqIGZyYWdt
ZW50KSBjb25zdAogewotICAgIGlmIChpc1JlcGxhY2VkT3JJbmxpbmVCbG9jaygpKSB7CisgICAg
aWYgKGlzUmVwbGFjZWRPckF0b21pY0lubGluZSgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBQb3Np
dGlvbmVkIHJlcGxhY2VkIGVsZW1lbnRzIGluc2lkZSBhIGZsb3cgdGhyZWFkIGFyZSBub3Qgd29y
a2luZyBwcm9wZXJseQogICAgICAgICAvLyB3aXRoIHZhcmlhYmxlIHdpZHRoIGZyYWdtZW50cyAo
c2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTg5NiApLgogICAg
ICAgICBjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxXaWR0aFJlcGxhY2VkKGNvbXB1dGVkVmFsdWVz
KTsKQEAgLTQ0NzYsNyArNDQ3Niw3IEBAIHN0YXRpYyB2b2lkIGNvbXB1dGVCbG9ja1N0YXRpY0Rp
c3RhbmNlKExlbmd0aCYgbG9naWNhbFRvcCwgTGVuZ3RoJiBsb2dpY2FsQm90dG9tCiAKIHZvaWQg
UmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxIZWlnaHQoTG9naWNhbEV4dGVudENv
bXB1dGVkVmFsdWVzJiBjb21wdXRlZFZhbHVlcykgY29uc3QKIHsKLSAgICBpZiAoaXNSZXBsYWNl
ZE9ySW5saW5lQmxvY2soKSkgeworICAgIGlmIChpc1JlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSkg
ewogICAgICAgICBjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxIZWlnaHRSZXBsYWNlZChjb21wdXRl
ZFZhbHVlcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC01MTk3LDcgKzUxOTcsNyBAQCBi
b29sIFJlbmRlckJveDo6ZXN0YWJsaXNoZXNJbmRlcGVuZGVudEZvcm1hdHRpbmdDb250ZXh0KCkg
Y29uc3QKIAogYm9vbCBSZW5kZXJCb3g6OmF2b2lkc0Zsb2F0cygpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIGlzUmVwbGFjZWRPcklubGluZUJsb2NrKCkgfHwgaXNMZWdlbmQoKSB8fCBpc0ZpZWxkc2V0
KCkgfHwgY3JlYXRlc05ld0Zvcm1hdHRpbmdDb250ZXh0KCkgfHwgKGVsZW1lbnQoKSAmJiBlbGVt
ZW50KCktPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpOworICAgIHJldHVybiBpc1JlcGxhY2VkT3JB
dG9taWNJbmxpbmUoKSB8fCBpc0xlZ2VuZCgpIHx8IGlzRmllbGRzZXQoKSB8fCBjcmVhdGVzTmV3
Rm9ybWF0dGluZ0NvbnRleHQoKSB8fCAoZWxlbWVudCgpICYmIGVsZW1lbnQoKS0+aXNGb3JtQ29u
dHJvbEVsZW1lbnQoKSk7CiB9CiAKIHZvaWQgUmVuZGVyQm94OjphZGRWaXN1YWxFZmZlY3RPdmVy
ZmxvdygpCkBAIC01NDE4LDcgKzU0MTgsNyBAQCBib29sIFJlbmRlckJveDo6aGFzVW5zcGxpdHRh
YmxlU2Nyb2xsaW5nT3ZlcmZsb3coKSBjb25zdAogCiBib29sIFJlbmRlckJveDo6aXNVbnNwbGl0
dGFibGVGb3JQYWdpbmF0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gaXNSZXBsYWNlZE9ySW5s
aW5lQmxvY2soKQorICAgIHJldHVybiBpc1JlcGxhY2VkT3JBdG9taWNJbmxpbmUoKQogICAgICAg
ICB8fCBoYXNVbnNwbGl0dGFibGVTY3JvbGxpbmdPdmVyZmxvdygpCiAgICAgICAgIHx8IChwYXJl
bnQoKSAmJiBpc1dyaXRpbmdNb2RlUm9vdCgpKQogICAgICAgICB8fCAoaXNGbG9hdGluZygpICYm
IHN0eWxlKCkucHNldWRvRWxlbWVudFR5cGUoKSA9PSBQc2V1ZG9JZDo6Rmlyc3RMZXR0ZXIgJiYg
c3R5bGUoKS5pbml0aWFsTGV0dGVyRHJvcCgpID4gMCkKQEAgLTU0MjcsMTQgKzU0MjcsMTQgQEAg
Ym9vbCBSZW5kZXJCb3g6OmlzVW5zcGxpdHRhYmxlRm9yUGFnaW5hdGlvbigpIGNvbnN0CiAKIExh
eW91dFVuaXQgUmVuZGVyQm94OjpsaW5lSGVpZ2h0KGJvb2wgLypmaXJzdExpbmUqLywgTGluZURp
cmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIC8qbGluZVBvc2l0aW9uTW9k
ZSovKSBjb25zdAogewotICAgIGlmIChpc1JlcGxhY2VkT3JJbmxpbmVCbG9jaygpKQorICAgIGlm
IChpc1JlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSkKICAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9
PSBIb3Jpem9udGFsTGluZSA/IG1fbWFyZ2luQm94LnRvcCgpICsgaGVpZ2h0KCkgKyBtX21hcmdp
bkJveC5ib3R0b20oKSA6IG1fbWFyZ2luQm94LnJpZ2h0KCkgKyB3aWR0aCgpICsgbV9tYXJnaW5C
b3gubGVmdCgpOwogICAgIHJldHVybiAwOwogfQogCiBMYXlvdXRVbml0IFJlbmRlckJveDo6YmFz
ZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUgYmFzZWxpbmVUeXBlLCBib29sIC8qZmlyc3RMaW5l
Ki8sIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSAvKmxpbmVQ
b3NpdGlvbk1vZGUqLykgY29uc3QKIHsKLSAgICBpZiAoaXNSZXBsYWNlZE9ySW5saW5lQmxvY2so
KSkgeworICAgIGlmIChpc1JlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSkgewogICAgICAgICBhdXRv
IHJlc3VsdCA9IHJvdW5kVG9JbnQoZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gbV9tYXJn
aW5Cb3gudG9wKCkgKyBoZWlnaHQoKSArIG1fbWFyZ2luQm94LmJvdHRvbSgpIDogbV9tYXJnaW5C
b3gucmlnaHQoKSArIHdpZHRoKCkgKyBtX21hcmdpbkJveC5sZWZ0KCkpOwogICAgICAgICBpZiAo
YmFzZWxpbmVUeXBlID09IEFscGhhYmV0aWNCYXNlbGluZSkKICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggNGE4MmViY2YwYjUy
Li43MmNkNmJiNjVmZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTY4
MCw3ICs2ODAsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+
IGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsQ29udGVudEhlaWdodFVzaW5nKExlbmd0aCBsb2dpY2Fs
SGVpZ2h0TGVuZ3RoLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGludHJpbnNpY0NvbnRlbnRI
ZWlnaHQsIExheW91dFVuaXQgYm9yZGVyQW5kUGFkZGluZykgY29uc3Q7CiAgICAgCi0gICAgdmly
dHVhbCBib29sIHNob3VsZENvbXB1dGVTaXplQXNSZXBsYWNlZCgpIGNvbnN0IHsgcmV0dXJuIGlz
UmVwbGFjZWRPcklubGluZUJsb2NrKCkgJiYgIWlzSW5saW5lQmxvY2tPcklubGluZVRhYmxlKCk7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ29tcHV0ZVNpemVBc1JlcGxhY2VkKCkgY29uc3Qg
eyByZXR1cm4gaXNSZXBsYWNlZE9yQXRvbWljSW5saW5lKCkgJiYgIWlzTm9uUmVwbGFjZWRBdG9t
aWNJbmxpbmUoKTsgfQogCiAgICAgTGF5b3V0UmVjdCBsb2NhbE91dGxpbmVCb3VuZHNSZXBhaW50
UmVjdCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5oCmluZGV4IDIyYjExMDBkNDk0Yi4uMWVhY2JhZDFjNjYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaApAQCAtMTk2LDcg
KzE5Niw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0U2VsZWN0aW9uU3RhdGUoSGlnaGxpZ2h0
U3RhdGUpIG92ZXJyaWRlOwogCi0gICAgYm9vbCBjYW5IYXZlQm94SW5mb0luRnJhZ21lbnQoKSBj
b25zdCB7IHJldHVybiAhaXNGbG9hdGluZygpICYmICFpc1JlcGxhY2VkT3JJbmxpbmVCbG9jaygp
ICYmICFpc0lubGluZSgpICYmICFpc1JlbmRlclRhYmxlQ2VsbCgpICYmIGlzUmVuZGVyQmxvY2so
KSAmJiAhaXNSZW5kZXJTVkdCbG9jaygpOyB9CisgICAgYm9vbCBjYW5IYXZlQm94SW5mb0luRnJh
Z21lbnQoKSBjb25zdCB7IHJldHVybiAhaXNGbG9hdGluZygpICYmICFpc1JlcGxhY2VkT3JBdG9t
aWNJbmxpbmUoKSAmJiAhaXNJbmxpbmUoKSAmJiAhaXNSZW5kZXJUYWJsZUNlbGwoKSAmJiBpc1Jl
bmRlckJsb2NrKCkgJiYgIWlzUmVuZGVyU1ZHQmxvY2soKTsgfQogCiAgICAgdm9pZCBjb250ZW50
Q2hhbmdlZChDb250ZW50Q2hhbmdlVHlwZSk7CiAgICAgYm9vbCBoYXNBY2NlbGVyYXRlZENvbXBv
c2l0aW5nKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCmluZGV4IDc2MDUxZDZhZTFhNy4uMDM4ZjEx
Y2MwMzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApAQCAtOTg1LDcgKzk4NSw3IEBAIFJlbmRlckRlcHJl
Y2F0ZWRGbGV4aWJsZUJveDo6Q2xhbXBlZENvbnRlbnQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxl
Qm94OjphcHBseUxpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIGNo
aWxkLT5jbGVhck92ZXJyaWRpbmdDb250ZW50U2l6ZSgpOwotICAgICAgICAgICAgaWYgKHJlbGF5
b3V0Q2hpbGRyZW4gfHwgKGNoaWxkLT5pc1JlcGxhY2VkT3JJbmxpbmVCbG9jaygpICYmIChjaGls
ZC0+c3R5bGUoKS53aWR0aCgpLmlzUGVyY2VudE9yQ2FsY3VsYXRlZCgpIHx8IGNoaWxkLT5zdHls
ZSgpLmhlaWdodCgpLmlzUGVyY2VudE9yQ2FsY3VsYXRlZCgpKSkKKyAgICAgICAgICAgIGlmIChy
ZWxheW91dENoaWxkcmVuIHx8IChjaGlsZC0+aXNSZXBsYWNlZE9yQXRvbWljSW5saW5lKCkgJiYg
KGNoaWxkLT5zdHlsZSgpLndpZHRoKCkuaXNQZXJjZW50T3JDYWxjdWxhdGVkKCkgfHwgY2hpbGQt
PnN0eWxlKCkuaGVpZ2h0KCkuaXNQZXJjZW50T3JDYWxjdWxhdGVkKCkpKQogICAgICAgICAgICAg
ICAgIHx8IChjaGlsZC0+c3R5bGUoKS5oZWlnaHQoKS5pc0F1dG8oKSAmJiBpczxSZW5kZXJCbG9j
a0Zsb3c+KCpjaGlsZCkpKSB7CiAgICAgICAgICAgICAgICAgY2hpbGQtPnNldENoaWxkTmVlZHNM
YXlvdXQoTWFya09ubHlUaGlzKTsKIApAQCAtMTA1OSw3ICsxMDU5LDcgQEAgdm9pZCBSZW5kZXJE
ZXByZWNhdGVkRmxleGlibGVCb3g6OmNsZWFyTGluZUNsYW1wKCkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCiAgICAgICAgIGNoaWxkLT5jbGVhck92ZXJyaWRpbmdDb250ZW50U2l6ZSgpOwotICAg
ICAgICBpZiAoKGNoaWxkLT5pc1JlcGxhY2VkT3JJbmxpbmVCbG9jaygpICYmIChjaGlsZC0+c3R5
bGUoKS53aWR0aCgpLmlzUGVyY2VudE9yQ2FsY3VsYXRlZCgpIHx8IGNoaWxkLT5zdHlsZSgpLmhl
aWdodCgpLmlzUGVyY2VudE9yQ2FsY3VsYXRlZCgpKSkKKyAgICAgICAgaWYgKChjaGlsZC0+aXNS
ZXBsYWNlZE9yQXRvbWljSW5saW5lKCkgJiYgKGNoaWxkLT5zdHlsZSgpLndpZHRoKCkuaXNQZXJj
ZW50T3JDYWxjdWxhdGVkKCkgfHwgY2hpbGQtPnN0eWxlKCkuaGVpZ2h0KCkuaXNQZXJjZW50T3JD
YWxjdWxhdGVkKCkpKQogICAgICAgICAgICAgfHwgKGNoaWxkLT5zdHlsZSgpLmhlaWdodCgpLmlz
QXV0bygpICYmIGlzPFJlbmRlckJsb2NrRmxvdz4oKmNoaWxkKSkpIHsKICAgICAgICAgICAgIGNo
aWxkLT5zZXRDaGlsZE5lZWRzTGF5b3V0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmNwcAppbmRleCBmY2QxM2MyOWEyMzUuLjcwNmM4NmFhNTBlZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtMTg5MSw3ICsxODkx
LDcgQEAgYm9vbCBSZW5kZXJFbGVtZW50OjpnZXRMZWFkaW5nQ29ybmVyKEZsb2F0UG9pbnQmIHBv
aW50LCBib29sJiBpbnNpZGVGaXhlZCkgY29uc3QKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCi0gICAgaWYgKCFpc0lubGluZSgpIHx8IGlzUmVwbGFjZWRPcklubGluZUJsb2NrKCkpIHsK
KyAgICBpZiAoIWlzSW5saW5lKCkgfHwgaXNSZXBsYWNlZE9yQXRvbWljSW5saW5lKCkpIHsKICAg
ICAgICAgcG9pbnQgPSBsb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBVc2VUcmFuc2Zvcm1z
LCAmaW5zaWRlRml4ZWQpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0xOTE3LDE0
ICsxOTE3LDE0IEBAIGJvb2wgUmVuZGVyRWxlbWVudDo6Z2V0TGVhZGluZ0Nvcm5lcihGbG9hdFBv
aW50JiBwb2ludCwgYm9vbCYgaW5zaWRlRml4ZWQpIGNvbnN0CiAgICAgICAgIH0KICAgICAgICAg
QVNTRVJUKG8pOwogCi0gICAgICAgIGlmICghby0+aXNJbmxpbmUoKSB8fCBvLT5pc1JlcGxhY2Vk
T3JJbmxpbmVCbG9jaygpKSB7CisgICAgICAgIGlmICghby0+aXNJbmxpbmUoKSB8fCBvLT5pc1Jl
cGxhY2VkT3JBdG9taWNJbmxpbmUoKSkgewogICAgICAgICAgICAgcG9pbnQgPSBvLT5sb2NhbFRv
QWJzb2x1dGUoRmxvYXRQb2ludCgpLCBVc2VUcmFuc2Zvcm1zLCAmaW5zaWRlRml4ZWQpOwogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocC0+bm9kZSgp
ICYmIHAtPm5vZGUoKSA9PSBlbGVtZW50KCkgJiYgaXM8UmVuZGVyVGV4dD4oKm8pICYmICFJbmxp
bmVJdGVyYXRvcjo6Zmlyc3RUZXh0Qm94Rm9yKGRvd25jYXN0PFJlbmRlclRleHQ+KCpvKSkpIHsK
ICAgICAgICAgICAgIC8vIGRvIG5vdGhpbmcgLSBza2lwIHVucmVuZGVyZWQgd2hpdGVzcGFjZSB0
aGF0IGlzIGEgY2hpbGQgb3IgbmV4dCBzaWJsaW5nIG9mIHRoZSBhbmNob3IKLSAgICAgICAgfSBl
bHNlIGlmIChpczxSZW5kZXJUZXh0PigqbykgfHwgby0+aXNSZXBsYWNlZE9ySW5saW5lQmxvY2so
KSkgeworICAgICAgICB9IGVsc2UgaWYgKGlzPFJlbmRlclRleHQ+KCpvKSB8fCBvLT5pc1JlcGxh
Y2VkT3JBdG9taWNJbmxpbmUoKSkgewogICAgICAgICAgICAgcG9pbnQgPSBGbG9hdFBvaW50KCk7
CiAgICAgICAgICAgICBpZiAoQ2hlY2tlZFB0ciB0ZXh0UmVuZGVyZXIgPSBkeW5hbWljRG93bmNh
c3Q8UmVuZGVyVGV4dD4oKm8pKSB7CiAgICAgICAgICAgICAgICAgaWYgKGF1dG8gcnVuID0gSW5s
aW5lSXRlcmF0b3I6OmZpcnN0VGV4dEJveEZvcigqdGV4dFJlbmRlcmVyKSkKQEAgLTE5NTIsNyAr
MTk1Miw3IEBAIGJvb2wgUmVuZGVyRWxlbWVudDo6Z2V0VHJhaWxpbmdDb3JuZXIoRmxvYXRQb2lu
dCYgcG9pbnQsIGJvb2wmIGluc2lkZUZpeGVkKSBjb25zCiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KIAotICAgIGlmICghaXNJbmxpbmUoKSB8fCBpc1JlcGxhY2VkT3JJbmxpbmVCbG9jaygp
KSB7CisgICAgaWYgKCFpc0lubGluZSgpIHx8IGlzUmVwbGFjZWRPckF0b21pY0lubGluZSgpKSB7
CiAgICAgICAgIHBvaW50ID0gbG9jYWxUb0Fic29sdXRlKExheW91dFBvaW50KGRvd25jYXN0PFJl
bmRlckJveD4oKnRoaXMpLnNpemUoKSksIFVzZVRyYW5zZm9ybXMsICZpbnNpZGVGaXhlZCk7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTE5NzUsNyArMTk3NSw3IEBAIGJvb2wgUmVu
ZGVyRWxlbWVudDo6Z2V0VHJhaWxpbmdDb3JuZXIoRmxvYXRQb2ludCYgcG9pbnQsIGJvb2wmIGlu
c2lkZUZpeGVkKSBjb25zCiAgICAgICAgICAgICBvID0gcHJldjsKICAgICAgICAgfQogICAgICAg
ICBBU1NFUlQobyk7Ci0gICAgICAgIGlmIChpczxSZW5kZXJUZXh0PigqbykgfHwgby0+aXNSZXBs
YWNlZE9ySW5saW5lQmxvY2soKSkgeworICAgICAgICBpZiAoaXM8UmVuZGVyVGV4dD4oKm8pIHx8
IG8tPmlzUmVwbGFjZWRPckF0b21pY0lubGluZSgpKSB7CiAgICAgICAgICAgICBwb2ludCA9IEZs
b2F0UG9pbnQoKTsKICAgICAgICAgICAgIGlmIChhdXRvKiB0ZXh0UmVuZGVyZXIgPSBkeW5hbWlj
RG93bmNhc3Q8UmVuZGVyVGV4dD4oKm8pKSB7CiAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCBs
aW5lc0JveCA9IHRleHRSZW5kZXJlci0+bGluZXNCb3VuZGluZ0JveCgpOwpAQCAtMjAwMyw3ICsy
MDAzLDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJFbGVtZW50OjphYnNvbHV0ZUFuY2hvclJlY3QoYm9v
bCogaW5zaWRlRml4ZWQpIGNvbnN0CiAgICAgRmxvYXRQb2ludCBsb3dlclJpZ2h0ID0gdHJhaWxp
bmc7CiAKICAgICAvLyBWZXJ0aWNhbCB3cml0aW5nIG1vZGVzIG1pZ2h0IG1lYW4gdGhlIGxlYWRp
bmcgcG9pbnQgaXMgbm90IGluIHRoZSB0b3AgbGVmdAotICAgIGlmICghaXNJbmxpbmUoKSB8fCBp
c1JlcGxhY2VkT3JJbmxpbmVCbG9jaygpKSB7CisgICAgaWYgKCFpc0lubGluZSgpIHx8IGlzUmVw
bGFjZWRPckF0b21pY0lubGluZSgpKSB7CiAgICAgICAgIHVwcGVyTGVmdCA9IEZsb2F0UG9pbnQo
c3RkOjptaW4obGVhZGluZy54KCksIHRyYWlsaW5nLngoKSksIHN0ZDo6bWluKGxlYWRpbmcueSgp
LCB0cmFpbGluZy55KCkpKTsKICAgICAgICAgbG93ZXJSaWdodCA9IEZsb2F0UG9pbnQoc3RkOjpt
YXgobGVhZGluZy54KCksIHRyYWlsaW5nLngoKSksIHN0ZDo6bWF4KGxlYWRpbmcueSgpLCB0cmFp
bGluZy55KCkpKTsKICAgICB9IC8vIE90aGVyd2lzZSwgaXQncyBub3Qgb2J2aW91cyB3aGF0IHRv
IGRvLgpAQCAtMjQ3Miw3ICsyNDcyLDcgQEAgYm9vbCBSZW5kZXJFbGVtZW50OjpjcmVhdGVzTmV3
Rm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdAogICAgIGF1dG8mIHN0eWxlID0gdGhpcy0+c3R5bGUo
KTsKICAgICBpZiAoaXNCbG9ja0NvbnRhaW5lcigpICYmICFzdHlsZS5hbGlnbkNvbnRlbnQoKS5p
c05vcm1hbCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gaXNJbmxpbmVCbG9j
a09ySW5saW5lVGFibGUoKQorICAgIHJldHVybiBpc05vblJlcGxhY2VkQXRvbWljSW5saW5lKCkK
ICAgICAgICAgfHwgaXNGbGV4SXRlbUluY2x1ZGluZ0RlcHJlY2F0ZWQoKQogICAgICAgICB8fCBp
c1JlbmRlclRhYmxlQ2VsbCgpCiAgICAgICAgIHx8IGlzUmVuZGVyVGFibGVDYXB0aW9uKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5jcHAKaW5kZXggYTU3ZWQxNTVlM2Zj
Li5hOTFiMDdhYjg5OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUu
Y3BwCkBAIC02Miw4ICs2Miw5IEBAIGJvb2wgUmVuZGVySUZyYW1lOjpzaG91bGRDb21wdXRlU2l6
ZUFzUmVwbGFjZWQoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFJlbmRlcklG
cmFtZTo6aXNJbmxpbmVCbG9ja09ySW5saW5lVGFibGUoKSBjb25zdAorYm9vbCBSZW5kZXJJRnJh
bWU6OmlzTm9uUmVwbGFjZWRBdG9taWNJbmxpbmUoKSBjb25zdAogeworICAgIC8vIEZJWE1FOiBp
RnJhbWVzIHNob3VsZCBub3Qgb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbi4KICAgICByZXR1cm4gaXNJ
bmxpbmUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklGcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5oCmluZGV4
IDk1N2E2MzJmZTQ5Ni4uY2VmYTIyYzE1MzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySUZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklGcmFtZS5oCkBAIC00NCw3ICs0NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmcmFtZU93
bmVyRWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwogCiAgICAgYm9vbCBzaG91bGRDb21wdXRlU2l6
ZUFzUmVwbGFjZWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGlzSW5saW5lQmxvY2tPcklu
bGluZVRhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBpc05vblJlcGxhY2VkQXRvbWlj
SW5saW5lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGxheW91dCgpIG92ZXJyaWRlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKaW5kZXgg
YTIwN2U5ZmFlYWM5Li41Y2QzNWQ0OTAxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgUmVuZGVyTGlzdE1hcmtl
cjo6UmVuZGVyTGlzdE1hcmtlcihSZW5kZXJMaXN0SXRlbSYgbGlzdEl0ZW0sIFJlbmRlclN0eWxl
JiYgc3R5bGUKICAgICAsIG1fbGlzdEl0ZW0obGlzdEl0ZW0pCiB7CiAgICAgc2V0SW5saW5lKHRy
dWUpOwotICAgIHNldFJlcGxhY2VkT3JJbmxpbmVCbG9jayh0cnVlKTsgLy8gcHJldGVuZCB0byBi
ZSByZXBsYWNlZAorICAgIHNldFJlcGxhY2VkT3JBdG9taWNJbmxpbmUodHJ1ZSk7IC8vIHByZXRl
bmQgdG8gYmUgcmVwbGFjZWQKICAgICBBU1NFUlQoaXNSZW5kZXJMaXN0TWFya2VyKCkpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGY2OGNjNzM1
ZjI2MC4uZDBjYzc5NjQ2MzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcApAQCAtNzE5LDcgKzcxOSw3IEBAIFJlbmRlckJsb2NrKiBSZW5kZXJPYmplY3Q6OmNv
bnRhaW5pbmdCbG9ja0ZvclBvc2l0aW9uVHlwZShQb3NpdGlvblR5cGUgcG9zaXRpb25UCiAgICAg
aWYgKHBvc2l0aW9uVHlwZSA9PSBQb3NpdGlvblR5cGU6OlN0YXRpYyB8fCBwb3NpdGlvblR5cGUg
PT0gUG9zaXRpb25UeXBlOjpSZWxhdGl2ZSB8fCBwb3NpdGlvblR5cGUgPT0gUG9zaXRpb25UeXBl
OjpTdGlja3kpIHsKICAgICAgICAgYXV0byBjb250YWluaW5nQmxvY2tGb3JPYmplY3RJbkZsb3cg
PSBbJl0gewogICAgICAgICAgICAgYXV0byogYW5jZXN0b3IgPSByZW5kZXJlci5wYXJlbnQoKTsK
LSAgICAgICAgICAgIHdoaWxlIChhbmNlc3RvciAmJiAoKGFuY2VzdG9yLT5pc0lubGluZSgpICYm
ICFhbmNlc3Rvci0+aXNSZXBsYWNlZE9ySW5saW5lQmxvY2soKSkgfHwgIWFuY2VzdG9yLT5pc1Jl
bmRlckJsb2NrKCkpKQorICAgICAgICAgICAgd2hpbGUgKGFuY2VzdG9yICYmICgoYW5jZXN0b3It
PmlzSW5saW5lKCkgJiYgIWFuY2VzdG9yLT5pc1JlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSkgfHwg
IWFuY2VzdG9yLT5pc1JlbmRlckJsb2NrKCkpKQogICAgICAgICAgICAgICAgIGFuY2VzdG9yID0g
YW5jZXN0b3ItPnBhcmVudCgpOwogICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlckJs
b2NrPihhbmNlc3Rvcik7CiAgICAgICAgIH07CkBAIC0xMjAwLDcgKzEyMDAsNyBAQCBzdGQ6Om9w
dGlvbmFsPEZsb2F0UmVjdD4gUmVuZGVyT2JqZWN0Ojpjb21wdXRlRmxvYXRWaXNpYmxlUmVjdElu
Q29udGFpbmVyKGNvbnN0CiBzdGF0aWMgdm9pZCBvdXRwdXRSZW5kZXJUcmVlTGVnZW5kKFRleHRT
dHJlYW0mIHN0cmVhbSkKIHsKICAgICBzdHJlYW0ubmV4dExpbmUoKTsKLSAgICBzdHJlYW0gPDwg
IihCKWxvY2svKEkpbmxpbmUvSShOKWxpbmUtYmxvY2ssIChBKWJzb2x1dGUvRmkoWCllZC8oUill
bGF0aXZlL1N0aWMoSyl5LCAoRilsb2F0aW5nLCAoTyl2ZXJmbG93IGNsaXAsIEFub24oWSltb3Vz
LCAoRyllbmVyYXRlZCwgaGFzKEwpYXllciwgaGFzTGF5ZXIoUyljcm9sbGFibGVBcmVhLCAoQylv
bXBvc2l0ZWQsIENvbnRlbnQtdmlzaWJpbGl0eTooSClpZGRlbi8oQSl1dG8sIChTKWtpcHBlZCBj
b250ZW50LCAoKylEaXJ0eSBzdHlsZSwgKCspRGlydHkgbGF5b3V0IjsKKyAgICBzdHJlYW0gPDwg
IihCKWxvY2svKEkpbmxpbmUgQm94LyhBKXRvbWljIGlubGluZSwgKEEpYnNvbHV0ZS9GaShYKWVk
LyhSKWVsYXRpdmUvU3RpYyhLKXksIChGKWxvYXRpbmcsIChPKXZlcmZsb3cgY2xpcCwgQW5vbihZ
KW1vdXMsIChHKWVuZXJhdGVkLCBoYXMoTClheWVyLCBoYXNMYXllcihTKWNyb2xsYWJsZUFyZWEs
IChDKW9tcG9zaXRlZCwgQ29udGVudC12aXNpYmlsaXR5OihIKWlkZGVuLyhBKXV0bywgKFMpa2lw
cGVkIGNvbnRlbnQsICgrKURpcnR5IHN0eWxlLCAoKylEaXJ0eSBsYXlvdXQiOwogICAgIHN0cmVh
bS5uZXh0TGluZSgpOwogfQogCkBAIC0xMjg4LDggKzEyODgsOCBAQCB2b2lkIFJlbmRlck9iamVj
dDo6b3V0cHV0UmVnaW9uc0luZm9ybWF0aW9uKFRleHRTdHJlYW0mIHN0cmVhbSkgY29uc3QKIAog
dm9pZCBSZW5kZXJPYmplY3Q6Om91dHB1dFJlbmRlck9iamVjdChUZXh0U3RyZWFtJiBzdHJlYW0s
IGJvb2wgbWFyaywgaW50IGRlcHRoKSBjb25zdAogewotICAgIGlmIChpc0lubGluZUJsb2NrT3JJ
bmxpbmVUYWJsZSgpKQotICAgICAgICBzdHJlYW0gPDwgIk4iOworICAgIGlmIChpc05vblJlcGxh
Y2VkQXRvbWljSW5saW5lKCkpCisgICAgICAgIHN0cmVhbSA8PCAiQSI7CiAgICAgZWxzZSBpZiAo
aXNJbmxpbmUoKSkKICAgICAgICAgc3RyZWFtIDw8ICJJIjsKICAgICBlbHNlCkBAIC0xOTY2LDcg
KzE5NjYsNyBAQCBpbnQgUmVuZGVyT2JqZWN0OjpjYXJldE1pbk9mZnNldCgpIGNvbnN0CiAKIGlu
dCBSZW5kZXJPYmplY3Q6OmNhcmV0TWF4T2Zmc2V0KCkgY29uc3QKIHsKLSAgICBpZiAoaXNSZXBs
YWNlZE9ySW5saW5lQmxvY2soKSkKKyAgICBpZiAoaXNSZXBsYWNlZE9yQXRvbWljSW5saW5lKCkp
CiAgICAgICAgIHJldHVybiBub2RlKCkgPyBzdGQ6Om1heCgxVSwgbm9kZSgpLT5jb3VudENoaWxk
Tm9kZXMoKSkgOiAxOwogICAgIGlmIChpc0hSKCkpCiAgICAgICAgIHJldHVybiAxOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDk5YTRiYTMzYWM1OS4uYWQ4NTg2
NDdmOWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC00NDIs
NyArNDQyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNSZW5kZXJGcmFtZSgpIGNvbnN0IHsgcmV0
dXJuIHR5cGUoKSA9PSBUeXBlOjpGcmFtZTsgfQogICAgIGJvb2wgaXNSZW5kZXJGcmFtZVNldCgp
IGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBUeXBlOjpGcmFtZVNldDsgfQogICAgIHZpcnR1YWwg
Ym9vbCBpc0ltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wg
aXNJbmxpbmVCbG9ja09ySW5saW5lVGFibGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAg
IHZpcnR1YWwgYm9vbCBpc05vblJlcGxhY2VkQXRvbWljSW5saW5lKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICBib29sIGlzUmVuZGVyTGlzdEJveCgpIGNvbnN0IHsgcmV0dXJuIHR5cGUo
KSA9PSBUeXBlOjpMaXN0Qm94OyB9CiAgICAgYm9vbCBpc1JlbmRlckxpc3RJdGVtKCkgY29uc3Qg
eyByZXR1cm4gdHlwZSgpID09IFR5cGU6Okxpc3RJdGVtOyB9CiAgICAgYm9vbCBpc1JlbmRlckxp
c3RNYXJrZXIoKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gVHlwZTo6TGlzdE1hcmtlcjsgfQpA
QCAtNjQ5LDcgKzY0OSw3IEBAIHB1YmxpYzoKICAgICAvLyByZXN0IG9mIHRoZSByZW5kZXJpbmcg
dHJlZSB3aWxsIG1vdmUgdG8gYSBzaW1pbGFyIG1vZGVsLgogICAgIHZpcnR1YWwgYm9vbCBub2Rl
QXRGbG9hdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0
IEZsb2F0UG9pbnQmIHBvaW50SW5QYXJlbnQsIEhpdFRlc3RBY3Rpb24pOwogCi0gICAgdmlydHVh
bCBib29sIGhhc0ludHJpbnNpY0FzcGVjdFJhdGlvKCkgY29uc3QgeyByZXR1cm4gaXNSZXBsYWNl
ZE9ySW5saW5lQmxvY2soKSAmJiAoaXNJbWFnZSgpIHx8IGlzUmVuZGVyVmlkZW8oKSB8fCBpc1Jl
bmRlckhUTUxDYW52YXMoKSB8fCBpc1JlbmRlclZpZXdUcmFuc2l0aW9uQ2FwdHVyZSgpKTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBoYXNJbnRyaW5zaWNBc3BlY3RSYXRpbygpIGNvbnN0IHsgcmV0dXJu
IGlzUmVwbGFjZWRPckF0b21pY0lubGluZSgpICYmIChpc0ltYWdlKCkgfHwgaXNSZW5kZXJWaWRl
bygpIHx8IGlzUmVuZGVySFRNTENhbnZhcygpIHx8IGlzUmVuZGVyVmlld1RyYW5zaXRpb25DYXB0
dXJlKCkpOyB9CiAgICAgYm9vbCBpc0Fub255bW91cygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZUZs
YWdzLmNvbnRhaW5zKFR5cGVGbGFnOjpJc0Fub255bW91cyk7IH0KICAgICBib29sIGlzQW5vbnlt
b3VzQmxvY2soKSBjb25zdDsKICAgICBib29sIGlzQW5vbnltb3VzRm9yUGVyY2VudGFnZVJlc29s
dXRpb24oKSBjb25zdCB7IHJldHVybiBpc0Fub255bW91cygpICYmICFpc1ZpZXdUcmFuc2l0aW9u
UHNldWRvKCk7IH0KQEAgLTY3OCw3ICs2NzgsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1JlbmRl
clRhYmxlUm93KCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFR5cGU6OlRhYmxlUm93OyB9CiAg
ICAgYm9vbCBpc1JlbmRlclZpZXcoKSBjb25zdCAgeyByZXR1cm4gdHlwZSgpID09IFR5cGU6OlZp
ZXc7IH0KICAgICBib29sIGlzSW5saW5lKCkgY29uc3QgeyByZXR1cm4gIW1fc3RhdGVCaXRmaWVs
ZHMuaGFzRmxhZyhTdGF0ZUZsYWc6OklzQmxvY2spOyB9IC8vIGlubGluZSBvYmplY3QKLSAgICBi
b29sIGlzUmVwbGFjZWRPcklubGluZUJsb2NrKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZUJpdGZp
ZWxkcy5oYXNGbGFnKFN0YXRlRmxhZzo6SXNSZXBsYWNlZE9ySW5saW5lQmxvY2spOyB9CisgICAg
Ym9vbCBpc1JlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlQml0
ZmllbGRzLmhhc0ZsYWcoU3RhdGVGbGFnOjpJc1JlcGxhY2VkT3JBdG9taWNJbmxpbmUpOyB9CiAg
ICAgYm9vbCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuICFtX3N0YXRl
Qml0ZmllbGRzLmhhc0ZsYWcoU3RhdGVGbGFnOjpWZXJ0aWNhbFdyaXRpbmdNb2RlKTsgfQogCiAg
ICAgYm9vbCBoYXNSZWZsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaGFzUmFyZURhdGEoKSAmJiBy
YXJlRGF0YSgpLmhhc1JlZmxlY3Rpb247IH0KQEAgLTc5Myw3ICs3OTMsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBpbnZhbGlkYXRlQmFja2dyb3VuZE9ic2N1cmF0aW9uU3RhdHVzKCk7CiAgICAgdmly
dHVhbCBib29sIGNvbXB1dGVCYWNrZ3JvdW5kSXNLbm93blRvQmVPYnNjdXJlZChjb25zdCBMYXlv
dXRQb2ludCYpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2b2lkIHNldFJlcGxhY2VkT3JJbmxp
bmVCbG9jayhib29sIGIgPSB0cnVlKSB7IG1fc3RhdGVCaXRmaWVsZHMuc2V0RmxhZyhTdGF0ZUZs
YWc6OklzUmVwbGFjZWRPcklubGluZUJsb2NrLCBiKTsgfQorICAgIHZvaWQgc2V0UmVwbGFjZWRP
ckF0b21pY0lubGluZShib29sIGIgPSB0cnVlKSB7IG1fc3RhdGVCaXRmaWVsZHMuc2V0RmxhZyhT
dGF0ZUZsYWc6OklzUmVwbGFjZWRPckF0b21pY0lubGluZSwgYik7IH0KICAgICB2b2lkIHNldEhv
cml6b250YWxXcml0aW5nTW9kZShib29sIGIgPSB0cnVlKSB7IG1fc3RhdGVCaXRmaWVsZHMuc2V0
RmxhZyhTdGF0ZUZsYWc6OlZlcnRpY2FsV3JpdGluZ01vZGUsICFiKTsgfQogICAgIHZvaWQgc2V0
SGFzTm9uVmlzaWJsZU92ZXJmbG93KGJvb2wgYiA9IHRydWUpIHsgbV9zdGF0ZUJpdGZpZWxkcy5z
ZXRGbGFnKFN0YXRlRmxhZzo6SGFzTm9uVmlzaWJsZU92ZXJmbG93LCBiKTsgfQogICAgIHZvaWQg
c2V0SGFzTGF5ZXIoYm9vbCBiID0gdHJ1ZSkgeyBtX3N0YXRlQml0ZmllbGRzLnNldEZsYWcoU3Rh
dGVGbGFnOjpIYXNMYXllciwgYik7IH0KQEAgLTEyMTMsNyArMTIxMyw3IEBAIHByaXZhdGU6CiAK
ICAgICBlbnVtIGNsYXNzIFN0YXRlRmxhZyA6IHVpbnQzMl90IHsKICAgICAgICAgSXNCbG9jayA9
IDEgPDwgMCwKLSAgICAgICAgSXNSZXBsYWNlZE9ySW5saW5lQmxvY2sgPSAxIDw8IDEsCisgICAg
ICAgIElzUmVwbGFjZWRPckF0b21pY0lubGluZSA9IDEgPDwgMSwKICAgICAgICAgQmVpbmdEZXN0
cm95ZWQgPSAxIDw8IDIsCiAgICAgICAgIE5lZWRzTGF5b3V0ID0gMSA8PCAzLAogICAgICAgICBO
ZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dCA9IDEgPDwgNCwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RJbmxpbmVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0SW5saW5lcy5oCmluZGV4IDM5NzI3M2FkNWEwZS4uNWRh
MjFhNzQ4NmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0SW5saW5lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RJ
bmxpbmVzLmgKQEAgLTI3LDcgKzI3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogaW5saW5l
IGJvb2wgUmVuZGVyT2JqZWN0OjpoYXNUcmFuc2Zvcm1PclBlcnNwZWN0aXZlKCkgY29uc3QgeyBy
ZXR1cm4gaGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCkgJiYgKGlzVHJhbnNmb3JtZWQoKSB8
fCBzdHlsZSgpLmhhc1BlcnNwZWN0aXZlKCkpOyB9Ci1pbmxpbmUgYm9vbCBSZW5kZXJPYmplY3Q6
OmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLmlzRGlzcGxh
eUlubGluZVR5cGUoKSAmJiAhKHN0eWxlKCkuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpJbmxp
bmUgJiYgIWlzUmVwbGFjZWRPcklubGluZUJsb2NrKCkpOyB9CitpbmxpbmUgYm9vbCBSZW5kZXJP
YmplY3Q6OmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLmlz
RGlzcGxheUlubGluZVR5cGUoKSAmJiAhKHN0eWxlKCkuZGlzcGxheSgpID09IERpc3BsYXlUeXBl
OjpJbmxpbmUgJiYgIWlzUmVwbGFjZWRPckF0b21pY0lubGluZSgpKTsgfQogaW5saW5lIGJvb2wg
UmVuZGVyT2JqZWN0Ojppc0Jsb2NrTGV2ZWxCb3goKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLmlz
RGlzcGxheUJsb2NrTGV2ZWwoKTsgfQogaW5saW5lIGJvb2wgUmVuZGVyT2JqZWN0Ojppc1RyYW5z
Zm9ybWVkKCkgY29uc3QgeyByZXR1cm4gaGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCkgJiYg
KHN0eWxlKCkuYWZmZWN0c1RyYW5zZm9ybSgpIHx8IGhhc1NWR1RyYW5zZm9ybSgpKTsgfQogaW5s
aW5lIGJvb2wgUmVuZGVyT2JqZWN0OjpwcmVzZXJ2ZXNOZXdsaW5lKCkgY29uc3QgeyByZXR1cm4g
IWlzUmVuZGVyU1ZHSW5saW5lVGV4dCgpICYmIHN0eWxlKCkucHJlc2VydmVOZXdsaW5lKCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IDM1OTVh
MGE3OTA1NC4uOTg2ZmRhZjUzMmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgUmVuZGVyUmVwbGFjZWQ6OlJlbmRlclJl
cGxhY2VkKFR5cGUgdHlwZSwgRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSwK
ICAgICAsIG1faW50cmluc2ljU2l6ZShjRGVmYXVsdFdpZHRoLCBjRGVmYXVsdEhlaWdodCkKIHsK
ICAgICBBU1NFUlQoZWxlbWVudC5pc1JlcGxhY2VkKHRoaXMtPnN0eWxlKCkpIHx8IHR5cGUgPT0g
VHlwZTo6SW1hZ2UpOwotICAgIHNldFJlcGxhY2VkT3JJbmxpbmVCbG9jayh0cnVlKTsKKyAgICBz
ZXRSZXBsYWNlZE9yQXRvbWljSW5saW5lKHRydWUpOwogICAgIEFTU0VSVChpc1JlbmRlclJlcGxh
Y2VkKCkpOwogfQogCkBAIC04NCw3ICs4NCw3IEBAIFJlbmRlclJlcGxhY2VkOjpSZW5kZXJSZXBs
YWNlZChUeXBlIHR5cGUsIEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUsCiAg
ICAgLCBtX2ludHJpbnNpY1NpemUoaW50cmluc2ljU2l6ZSkKIHsKICAgICBBU1NFUlQoZWxlbWVu
dC5pc1JlcGxhY2VkKHRoaXMtPnN0eWxlKCkpIHx8IHR5cGUgPT0gVHlwZTo6SW1hZ2UpOwotICAg
IHNldFJlcGxhY2VkT3JJbmxpbmVCbG9jayh0cnVlKTsKKyAgICBzZXRSZXBsYWNlZE9yQXRvbWlj
SW5saW5lKHRydWUpOwogICAgIEFTU0VSVChpc1JlbmRlclJlcGxhY2VkKCkpOwogfQogCkBAIC05
Miw3ICs5Miw3IEBAIFJlbmRlclJlcGxhY2VkOjpSZW5kZXJSZXBsYWNlZChUeXBlIHR5cGUsIERv
Y3VtZW50JiBkb2N1bWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsCiAgICAgOiBSZW5kZXJCb3godHlw
ZSwgZG9jdW1lbnQsIFdURk1vdmUoc3R5bGUpLCB7IH0sIGZsYWdzKQogICAgICwgbV9pbnRyaW5z
aWNTaXplKGludHJpbnNpY1NpemUpCiB7Ci0gICAgc2V0UmVwbGFjZWRPcklubGluZUJsb2NrKHRy
dWUpOworICAgIHNldFJlcGxhY2VkT3JBdG9taWNJbmxpbmUodHJ1ZSk7CiAgICAgQVNTRVJUKGlz
UmVuZGVyUmVwbGFjZWQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZXBsaWNhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsaWNhLmNwcAppbmRleCAwZTMyYmNkODVhNjAuLjA5ZmRmZTcyM2VjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcApAQCAtNDYsOCArNDYsOCBAQCBSZW5k
ZXJSZXBsaWNhOjpSZW5kZXJSZXBsaWNhKERvY3VtZW50JiBkb2N1bWVudCwgUmVuZGVyU3R5bGUm
JiBzdHlsZSkKICAgICAvLyByZW5kZXJlcnMgYmVpbmcgcmVwbGljYXRlZCwgc28gdGhleSBhbHdh
eXMgcmVwb3J0IHRoYXQgdGhleSBhcmUgaW5saW5lLCBub24tcmVwbGFjZWQuCiAgICAgLy8gSG93
ZXZlciwgd2UgbmVlZCB0cmFuc2Zvcm1zIHRvIGJlIGFwcGxpZWQgdG8gcmVwbGljYXMgZm9yIHJl
ZmxlY3Rpb25zLCBzbyBoYXZlIHRvIHBhc3MKICAgICAvLyB0aGUgaWYgKCFpc0lubGluZSgpIHx8
IGlzUmVwbGFjZWQoKSkgY2hlY2sgYmVmb3JlIHNldEhhc1RyYW5zZm9ybSgpLgotICAgIC8vIEZJ
WE1FOiBJcyB0aGUgY29tbWVudCBhYm92ZSBvYnNvbGV0ZT8gQ2FuJ3QgZmluZCBhIGNoZWNrIG9m
IGlzUmVwbGFjZWRPcklubGluZUJsb2NrIGd1YXJkaW5nIHNldEhhc1RyYW5zZm9ybSBhbnkgbW9y
ZS4KLSAgICBzZXRSZXBsYWNlZE9ySW5saW5lQmxvY2sodHJ1ZSk7CisgICAgLy8gRklYTUU6IElz
IHRoZSBjb21tZW50IGFib3ZlIG9ic29sZXRlPyBDYW4ndCBmaW5kIGEgY2hlY2sgb2YgaXNSZXBs
YWNlZE9yQXRvbWljSW5saW5lIGd1YXJkaW5nIHNldEhhc1RyYW5zZm9ybSBhbnkgbW9yZS4KKyAg
ICBzZXRSZXBsYWNlZE9yQXRvbWljSW5saW5lKHRydWUpOwogfQogCiBSZW5kZXJSZXBsaWNhOjp+
UmVuZGVyUmVwbGljYSgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9saW5lL0JyZWFraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L2xpbmUvQnJlYWtpbmdDb250ZXh0LmgKaW5kZXggZTNhNWZhNjU0MTgzLi44OWE0MzdkZDNjMTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0JyZWFraW5nQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0JyZWFraW5nQ29udGV4dC5o
CkBAIC0xODksMTEgKzE4OSwxMSBAQCBpbmxpbmUgdm9pZCBCcmVha2luZ0NvbnRleHQ6OmluaXRp
YWxpemVGb3JDdXJyZW50T2JqZWN0KCkKICAgICBpZiAobV9uZXh0T2JqZWN0ICYmIG1fbmV4dE9i
amVjdC0+cGFyZW50KCkgJiYgIW1fbmV4dE9iamVjdC0+cGFyZW50KCktPmlzRGVzY2VuZGFudE9m
KHJlbmRlcmVyLnBhcmVudCgpKSkKICAgICAgICAgbV9pbmNsdWRlRW5kV2lkdGggPSB0cnVlOwog
Ci0gICAgbV9jdXJyZW50VGV4dFdyYXAgPSByZW5kZXJlci5pc1JlcGxhY2VkT3JJbmxpbmVCbG9j
aygpID8gcmVuZGVyZXIucGFyZW50KCktPnN0eWxlKCkudGV4dFdyYXBNb2RlKCkgOiByZW5kZXJl
ci5zdHlsZSgpLnRleHRXcmFwTW9kZSgpOwotICAgIG1fY3VycmVudFdoaXRlc3BhY2VDb2xsYXBz
ZSA9IHJlbmRlcmVyLmlzUmVwbGFjZWRPcklubGluZUJsb2NrKCkgPyByZW5kZXJlci5wYXJlbnQo
KS0+c3R5bGUoKS53aGl0ZVNwYWNlQ29sbGFwc2UoKSA6IHJlbmRlcmVyLnN0eWxlKCkud2hpdGVT
cGFjZUNvbGxhcHNlKCk7CisgICAgbV9jdXJyZW50VGV4dFdyYXAgPSByZW5kZXJlci5pc1JlcGxh
Y2VkT3JBdG9taWNJbmxpbmUoKSA/IHJlbmRlcmVyLnBhcmVudCgpLT5zdHlsZSgpLnRleHRXcmFw
TW9kZSgpIDogcmVuZGVyZXIuc3R5bGUoKS50ZXh0V3JhcE1vZGUoKTsKKyAgICBtX2N1cnJlbnRX
aGl0ZXNwYWNlQ29sbGFwc2UgPSByZW5kZXJlci5pc1JlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSA/
IHJlbmRlcmVyLnBhcmVudCgpLT5zdHlsZSgpLndoaXRlU3BhY2VDb2xsYXBzZSgpIDogcmVuZGVy
ZXIuc3R5bGUoKS53aGl0ZVNwYWNlQ29sbGFwc2UoKTsKIAotICAgIG1fbGFzdE9iamVjdFRleHRX
cmFwID0gbV9sYXN0T2JqZWN0LT5pc1JlcGxhY2VkT3JJbmxpbmVCbG9jaygpID8gbV9sYXN0T2Jq
ZWN0LT5wYXJlbnQoKS0+c3R5bGUoKS50ZXh0V3JhcE1vZGUoKSA6IG1fbGFzdE9iamVjdC0+c3R5
bGUoKS50ZXh0V3JhcE1vZGUoKTsKLSAgICBtX2xhc3RPYmplY3RXaGl0ZXNwYWNlQ29sbGFwc2Ug
PSBtX2xhc3RPYmplY3QtPmlzUmVwbGFjZWRPcklubGluZUJsb2NrKCkgPyBtX2xhc3RPYmplY3Qt
PnBhcmVudCgpLT5zdHlsZSgpLndoaXRlU3BhY2VDb2xsYXBzZSgpIDogbV9sYXN0T2JqZWN0LT5z
dHlsZSgpLndoaXRlU3BhY2VDb2xsYXBzZSgpOworICAgIG1fbGFzdE9iamVjdFRleHRXcmFwID0g
bV9sYXN0T2JqZWN0LT5pc1JlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSA/IG1fbGFzdE9iamVjdC0+
cGFyZW50KCktPnN0eWxlKCkudGV4dFdyYXBNb2RlKCkgOiBtX2xhc3RPYmplY3QtPnN0eWxlKCku
dGV4dFdyYXBNb2RlKCk7CisgICAgbV9sYXN0T2JqZWN0V2hpdGVzcGFjZUNvbGxhcHNlID0gbV9s
YXN0T2JqZWN0LT5pc1JlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSA/IG1fbGFzdE9iamVjdC0+cGFy
ZW50KCktPnN0eWxlKCkud2hpdGVTcGFjZUNvbGxhcHNlKCkgOiBtX2xhc3RPYmplY3QtPnN0eWxl
KCkud2hpdGVTcGFjZUNvbGxhcHNlKCk7CiAKICAgICBib29sIGlzU1ZHVGV4dCA9IHJlbmRlcmVy
LmlzUmVuZGVyU1ZHSW5saW5lVGV4dCgpOwogICAgIG1fYXV0b1dyYXAgPSAhaXNTVkdUZXh0ICYm
IG1fY3VycmVudFRleHRXcmFwICE9IFRleHRXcmFwTW9kZTo6Tm9XcmFwOwpAQCAtNjY2LDcgKzY2
Niw3IEBAIGlubGluZSBib29sIEJyZWFraW5nQ29udGV4dDo6Y2FuQnJlYWtBdFRoaXNQb3NpdGlv
bigpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIEF2b2lkIGJyZWFraW5nIGJlZm9y
ZSBlbXB0eSBpbmxpbmVzIChhcyBsb25nIGFzIHRoZSBjdXJyZW50IG9iamVjdCBpc24ndCByZXBs
YWNlZCkuCi0gICAgaWYgKCFtX2N1cnJlbnQucmVuZGVyZXIoKS0+aXNSZXBsYWNlZE9ySW5saW5l
QmxvY2soKSkgeworICAgIGlmICghbV9jdXJyZW50LnJlbmRlcmVyKCktPmlzUmVwbGFjZWRPckF0
b21pY0lubGluZSgpKSB7CiAgICAgICAgIGF1dG8qIHJlbmRlcklubGluZSA9IGR5bmFtaWNEb3du
Y2FzdDxSZW5kZXJJbmxpbmU+KG1fbmV4dE9iamVjdCk7CiAgICAgICAgIGlmIChyZW5kZXJJbmxp
bmUgJiYgaXNFbXB0eUlubGluZSgqcmVuZGVySW5saW5lKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTczOSw3ICs3MzksNyBAQCBpbmxpbmUgdm9pZCBCcmVha2luZ0NvbnRleHQ6OmNv
bW1pdEFuZFVwZGF0ZUxpbmVCcmVha0lmTmVlZGVkKCkKIAogICAgIGlmICghbV9jdXJyZW50LnJl
bmRlcmVyKCktPmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSkgewogICAgICAgICBt
X2xhc3RPYmplY3QgPSBtX2N1cnJlbnQucmVuZGVyZXIoKTsKLSAgICAgICAgaWYgKG1fbGFzdE9i
amVjdC0+aXNSZXBsYWNlZE9ySW5saW5lQmxvY2soKSAmJiBtX2F1dG9XcmFwICYmICghbV9sYXN0
T2JqZWN0LT5pc0ltYWdlKCkgfHwgbV9hbGxvd0ltYWdlc1RvQnJlYWspKSB7CisgICAgICAgIGlm
IChtX2xhc3RPYmplY3QtPmlzUmVwbGFjZWRPckF0b21pY0lubGluZSgpICYmIG1fYXV0b1dyYXAg
JiYgKCFtX2xhc3RPYmplY3QtPmlzSW1hZ2UoKSB8fCBtX2FsbG93SW1hZ2VzVG9CcmVhaykpIHsK
ICAgICAgICAgICAgIGF1dG8qIHJlbmRlckxpc3RNYXJrZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVu
ZGVyTGlzdE1hcmtlcj4oKm1fbGFzdE9iamVjdCk7CiAgICAgICAgICAgICBpZiAoIXJlbmRlckxp
c3RNYXJrZXIgfHwgcmVuZGVyTGlzdE1hcmtlci0+aXNJbnNpZGUoKSkgewogICAgICAgICAgICAg
ICAgIGlmIChtX25leHRPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcAppbmRleCA1Yjg0MTFmOGZlYzguLjZh
ZDcwMTkyMzkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5n
L1JlbmRlclRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCkBAIC03MjUsNyArNzI1LDcgQEAgdm9pZCBSZW5k
ZXJUcmVlQnVpbGRlcjo6Y3JlYXRlQW5vbnltb3VzV3JhcHBlcnNGb3JJbmxpbmVDb250ZW50KFJl
bmRlckJsb2NrJiBwYXIKICAgICAvLyBtZWFucyB0aGF0IHdlIGNhbm5vdCBjb2FsZXNjZSBpbmxp
bmVzIGJlZm9yZSB8aW5zZXJ0aW9uUG9pbnR8IHdpdGggaW5saW5lcyBmb2xsb3dpbmcKICAgICAv
LyB8aW5zZXJ0aW9uUG9pbnR8LCBiZWNhdXNlIHRoZSBuZXcgY2hpbGQgaXMgZ29pbmcgdG8gYmUg
aW5zZXJ0ZWQgaW4gYmV0d2VlbiB0aGUgaW5saW5lcywKICAgICAvLyBzcGxpdHRpbmcgdGhlbS4K
LSAgICBBU1NFUlQocGFyZW50LmlzSW5saW5lQmxvY2tPcklubGluZVRhYmxlKCkgfHwgIXBhcmVu
dC5pc0lubGluZSgpKTsKKyAgICBBU1NFUlQocGFyZW50LmlzTm9uUmVwbGFjZWRBdG9taWNJbmxp
bmUoKSB8fCAhcGFyZW50LmlzSW5saW5lKCkpOwogICAgIEFTU0VSVCghaW5zZXJ0aW9uUG9pbnQg
fHwgaW5zZXJ0aW9uUG9pbnQtPnBhcmVudCgpID09ICZwYXJlbnQpOwogCiAgICAgcGFyZW50LnNl
dENoaWxkcmVuSW5saW5lKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrLmNwcAppbmRleCA0MDc5
MjRlMDNhMjAuLjI2ZmM3NjkwODU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrLmNwcApAQCAtMTY3
LDcgKzE2Nyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFBhcmVudEFuZEJlZm9yZUNoaWxkPiBm
aW5kUGFyZW50QW5kQmVmb3JlQ2hpbGRGb3JOb25TaWJsaW5nCiAgICAgaWYgKGJlZm9yZUNoaWxk
Q29udGFpbmVyLT5pc0lubGluZSgpICYmIGNoaWxkLmlzSW5saW5lKCkpIHsKICAgICAgICAgLy8g
VGhlIGJlZm9yZSBjaGlsZCBoYXBwZW5zIHRvIGJlIGEgYmxvY2sgbGV2ZWwgYm94IHdyYXBwZWQg
aW4gYW4gYW5vbnltb3VzIGlubGluZS1ibG9jayBpbiBhbiBpbmxpbmUgY29udGV4dCAoZS5nLiBy
dWJ5KS4KICAgICAgICAgLy8gTGV0J3MgYXR0YWNoIHRoaXMgbmV3IGNoaWxkIGJlZm9yZSB0aGUg
YW5vbnltb3VzIGlubGluZS1ibG9jayB3cmFwcGVyLgotICAgICAgICBBU1NFUlQoYmVmb3JlQ2hp
bGRDb250YWluZXItPmlzSW5saW5lQmxvY2tPcklubGluZVRhYmxlKCkpOworICAgICAgICBBU1NF
UlQoYmVmb3JlQ2hpbGRDb250YWluZXItPmlzTm9uUmVwbGFjZWRBdG9taWNJbmxpbmUoKSk7CiAg
ICAgICAgIHJldHVybiBQYXJlbnRBbmRCZWZvcmVDaGlsZCB7ICZwYXJlbnQsIGJlZm9yZUNoaWxk
Q29udGFpbmVyIH07CiAgICAgfQogICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04oIWJlZm9yZUNoaWxkQ29udGFpbmVyLT5pc0lubGluZSgpIHx8IGJlZm9yZUNoaWxk
Q29udGFpbmVyLT5pc1JlbmRlclRhYmxlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVySW5saW5lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlcklubGluZS5jcHAKaW5k
ZXggNjdjY2FmMjFkZTIxLi40OWE5MzAzMjQ0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlcklubGluZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVySW5saW5lLmNw
cApAQCAtNTIsNyArNTIsNyBAQCBzdGF0aWMgYm9vbCBjYW5Vc2VBc1BhcmVudEZvckNvbnRpbnVh
dGlvbihjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogCiBzdGF0aWMgUmVuZGVyQm94TW9k
ZWxPYmplY3QqIG5leHRDb250aW51YXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKLSAg
ICBpZiAoYXV0byogcmVuZGVySW5saW5lID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlcklubGluZT4o
KnJlbmRlcmVyKTsgcmVuZGVySW5saW5lICYmICFyZW5kZXJJbmxpbmUtPmlzUmVwbGFjZWRPcklu
bGluZUJsb2NrKCkpCisgICAgaWYgKGF1dG8qIHJlbmRlcklubGluZSA9IGR5bmFtaWNEb3duY2Fz
dDxSZW5kZXJJbmxpbmU+KCpyZW5kZXJlcik7IHJlbmRlcklubGluZSAmJiAhcmVuZGVySW5saW5l
LT5pc1JlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSkKICAgICAgICAgcmV0dXJuIHJlbmRlcklubGlu
ZS0+Y29udGludWF0aW9uKCk7CiAgICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlckJsb2NrPigqcmVu
ZGVyZXIpLmlubGluZUNvbnRpbnVhdGlvbigpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>