<?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>238106</bug_id>
          
          <creation_ts>2022-03-18 19:11:10 -0700</creation_ts>
          <short_desc>[IFC][Integration] InlineIterator::Line functions should all return float values</short_desc>
          <delta_ts>2022-03-19 17:47:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1852931</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-03-18 19:11:10 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852933</commentid>
    <comment_count>1</comment_count>
      <attachid>455159</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-03-18 19:33:48 -0700</bug_when>
    <thetext>Created attachment 455159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852937</commentid>
    <comment_count>2</comment_count>
      <attachid>455162</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-03-18 19:51:40 -0700</bug_when>
    <thetext>Created attachment 455162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852947</commentid>
    <comment_count>3</comment_count>
      <attachid>455163</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-03-18 21:26:57 -0700</bug_when>
    <thetext>Created attachment 455163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852992</commentid>
    <comment_count>4</comment_count>
      <attachid>455172</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-03-19 13:51:44 -0700</bug_when>
    <thetext>Created attachment 455172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852995</commentid>
    <comment_count>5</comment_count>
      <attachid>455174</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-03-19 14:09:43 -0700</bug_when>
    <thetext>Created attachment 455174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852998</commentid>
    <comment_count>6</comment_count>
      <attachid>455176</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-03-19 14:27:37 -0700</bug_when>
    <thetext>Created attachment 455176
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853014</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-19 17:46:42 -0700</bug_when>
    <thetext>Committed r291535 (248641@main): &lt;https://commits.webkit.org/248641@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455176.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853015</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-19 17:47:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/90530559&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455159</attachid>
            <date>2022-03-18 19:33:48 -0700</date>
            <delta_ts>2022-03-18 19:51:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238106-20220318193348.patch</filename>
            <type>text/plain</type>
            <size>22191</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmFiZGY0NmRhZjA3N2Fi
N2RlNjI0MGY0NTkyODc2OWEzOTU1MGQyOC4uZDgzZWNmMDI1YmQ3MGNhNGMxM2NmZmRiNjRkZWFj
YjNiM2IzYTA3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIyLTAzLTE4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0lGQ11bSW50ZWdyYXRpb25d
IElubGluZUl0ZXJhdG9yOjpMaW5lIGZ1bmN0aW9ucyBzaG91bGQgYWxsIHJldHVybiBmbG9hdCB2
YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
ODEwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERp
c3BsYXkgc3RydWN0dXJlcyBhcmUgc3VwcG9zZWQgdG8gYmUgYWxsIGZsb2F0IGJhc2VkLgorCisg
ICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmU6OmxpbmVCb3hIZWlnaHQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OmNvbnRlbnRTdGFydEluQmxvY2tEaXJl
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmU6OmNvbnRlbnRM
b2dpY2FsVG9wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5l
Ojpjb250ZW50TG9naWNhbEJvdHRvbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJ
dGVyYXRvcjo6TGluZTo6Y29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmU6OmNvbnRlbnRM
b2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OklubGluZUl0ZXJhdG9yOjpMaW5lOjpjb250ZW50TG9naWNhbEJvdHRvbUFkanVzdGVkRm9yRm9s
bG93aW5nTGluZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGlu
ZTo6bGluZUJveFRvcCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6
TGluZTo6bGluZUJveEJvdHRvbSBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9u
L0lubGluZUl0ZXJhdG9yTGluZUxlZ2FjeVBhdGguaDoKKyAgICAgICAgKFdlYkNvcmU6OklubGlu
ZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3JMZWdhY3lQYXRoOjpjb250ZW50TG9naWNhbFRvcCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTGVnYWN5
UGF0aDo6Y29udGVudExvZ2ljYWxCb3R0b20gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5s
aW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvckxlZ2FjeVBhdGg6OmNvbnRlbnRMb2dpY2FsVG9wQWRq
dXN0ZWRGb3JQcmVjZWRpbmdMaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0
ZXJhdG9yOjpMaW5lSXRlcmF0b3JMZWdhY3lQYXRoOjpjb250ZW50TG9naWNhbFRvcEFkanVzdGVk
Rm9ySGl0VGVzdGluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6
TGluZUl0ZXJhdG9yTGVnYWN5UGF0aDo6Y29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZv
bGxvd2luZ0xpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6Okxp
bmVJdGVyYXRvckxlZ2FjeVBhdGg6OmxpbmVCb3hUb3AgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5saW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvckxlZ2FjeVBhdGg6OmxpbmVCb3hCb3R0b20g
Y29uc3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmVN
b2Rlcm5QYXRoLmg6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJh
dG9yTW9kZXJuUGF0aDo6Y29udGVudExvZ2ljYWxUb3AgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5saW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvck1vZGVyblBhdGg6OmNvbnRlbnRMb2dpY2Fs
Qm90dG9tIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lSXRl
cmF0b3JNb2Rlcm5QYXRoOjpsaW5lQm94VG9wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
bGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3JNb2Rlcm5QYXRoOjpsaW5lQm94Qm90dG9tIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3JNb2Rlcm5Q
YXRoOjpjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTW9kZXJuUGF0aDo6
Y29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3RpbmcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvck1vZGVyblBhdGg6OmNvbnRlbnRM
b2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lIGNvbnN0KToKKyAgICAgICAgKiBs
YXlvdXQvaW50ZWdyYXRpb24vTGluZVNlbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TGlu
ZVNlbGVjdGlvbjo6bG9naWNhbFRvcCk6CisgICAgICAgIChXZWJDb3JlOjpMaW5lU2VsZWN0aW9u
Ojpsb2dpY2FsQm90dG9tKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246OmxvZ2lj
YWxSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246OnBoeXNpY2FsUmVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpMaW5lU2VsZWN0aW9uOjpsb2dpY2FsVG9wQWRqdXN0ZWRGb3JQ
cmVjZWRpbmdCbG9jayk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmFkanVzdEVuY2xvc2luZ1RvcEZv
clByZWNlZGluZ0Jsb2NrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxv
dzo6aW5saW5lU2VsZWN0aW9uR2Fwcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6OnBvc2l0aW9uRm9yUG9pbnRXaXRoSW5saW5lQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2tGbG93OjphZGRGb2N1c1JpbmdSZWN0c0ZvcklubGluZUNoaWxkcmVuKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlcklubGluZTo6cGFpbnRPdXRsaW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OnBvc2l0aW9u
Rm9yUG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0Qm94UGFpbnRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0Qm94UGFpbnRlcjo6cGFpbnRCYWNrZ3JvdW5kKToKKwogMjAyMi0w
My0xOCAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0lGQ11bSW50
ZWdyYXRpb25dIFJlbW92ZSByZWR1bmRhbnQgSW5saW5lSXRlcmF0b3I6OkxpbmU6OmNsb3Nlc3RC
b3hGb3JQb2ludCBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5oCmluZGV4IGNhMjIwOGY4OGRhNGFkMmE1OGNh
ZjEyNWJlYjVjMDg1OWUzMTA1NDYuLjZkMzBmYWM4MGYyMGJhYWU3ODlhN2FlNzFlMTk1MmI1NDc1
OTAxY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9Jbmxp
bmVJdGVyYXRvckxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
SW5saW5lSXRlcmF0b3JMaW5lLmgKQEAgLTU0LDIwICs1NCwyMCBAQCBwdWJsaWM6CiAKICAgICBM
aW5lKFBhdGhWYXJpYW50JiYpOwogCi0gICAgTGF5b3V0VW5pdCBsaW5lQm94VG9wKCkgY29uc3Q7
Ci0gICAgTGF5b3V0VW5pdCBsaW5lQm94Qm90dG9tKCkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBs
aW5lQm94SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbGluZUJveEJvdHRvbSgpIC0gbGluZUJveFRv
cCgpOyB9CisgICAgZmxvYXQgbGluZUJveFRvcCgpIGNvbnN0OworICAgIGZsb2F0IGxpbmVCb3hC
b3R0b20oKSBjb25zdDsKKyAgICBmbG9hdCBsaW5lQm94SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4g
bGluZUJveEJvdHRvbSgpIC0gbGluZUJveFRvcCgpOyB9CiAKICAgICAvLyBGSVhNRTogTWFrZSBz
dXJlIHdlIHVzZSB0aGUgc2FtZSB0eXBlIGZvciBjb250ZW50IGdlb21ldHJ5LgotICAgIExheW91
dFVuaXQgY29udGVudExvZ2ljYWxUb3AoKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGNvbnRlbnRM
b2dpY2FsQm90dG9tKCkgY29uc3Q7CisgICAgZmxvYXQgY29udGVudExvZ2ljYWxUb3AoKSBjb25z
dDsKKyAgICBmbG9hdCBjb250ZW50TG9naWNhbEJvdHRvbSgpIGNvbnN0OwogICAgIGZsb2F0IGNv
bnRlbnRMb2dpY2FsTGVmdCgpIGNvbnN0OwogICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsUmlnaHQo
KSBjb25zdDsKICAgICBmbG9hdCBjb250ZW50TG9naWNhbFdpZHRoKCkgY29uc3Q7CiAKLSAgICBM
YXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0aW5nKCkgY29uc3Q7
Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGlu
ZSgpIGNvbnN0OwotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZv
ckZvbGxvd2luZ0xpbmUoKSBjb25zdDsKKyAgICBmbG9hdCBjb250ZW50TG9naWNhbFRvcEFkanVz
dGVkRm9ySGl0VGVzdGluZygpIGNvbnN0OworICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsVG9wQWRq
dXN0ZWRGb3JQcmVjZWRpbmdMaW5lKCkgY29uc3Q7CisgICAgZmxvYXQgY29udGVudExvZ2ljYWxC
b3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKSBjb25zdDsKIAogICAgIGNvbnN0IFJlbmRl
ckJsb2NrRmxvdyYgY29udGFpbmluZ0Jsb2NrKCkgY29uc3Q7CiAgICAgUmVuZGVyRnJhZ21lbnRD
b250YWluZXIqIGNvbnRhaW5pbmdGcmFnbWVudCgpIGNvbnN0OwpAQCAtMTIzLDcgKzEyMyw3IEBA
IExpbmVJdGVyYXRvciBsYXN0TGluZUZvcihjb25zdCBSZW5kZXJCbG9ja0Zsb3cmKTsKIExlYWZC
b3hJdGVyYXRvciBjbG9zZXN0Qm94Rm9ySG9yaXpvbnRhbFBvc2l0aW9uKGNvbnN0IExpbmUmLCBm
bG9hdCBob3Jpem9udGFsUG9zaXRpb24sIGJvb2wgZWRpdGFibGVPbmx5ID0gZmFsc2UpOwogCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotaW5saW5l
IExheW91dFVuaXQgY29udGVudFN0YXJ0SW5CbG9ja0RpcmVjdGlvbihjb25zdCBMaW5lJiBsaW5l
KQoraW5saW5lIGZsb2F0IGNvbnRlbnRTdGFydEluQmxvY2tEaXJlY3Rpb24oY29uc3QgTGluZSYg
bGluZSkKIHsKICAgICBpZiAoIWxpbmUuY29udGFpbmluZ0Jsb2NrKCkuc3R5bGUoKS5pc0ZsaXBw
ZWRCbG9ja3NXcml0aW5nTW9kZSgpKQogICAgICAgICByZXR1cm4gc3RkOjptYXgobGluZS5jb250
ZW50TG9naWNhbFRvcCgpLCBsaW5lLmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0
aW5nKCkpOwpAQCAtMTM1LDQ5ICsxMzUsNDkgQEAgaW5saW5lIExpbmU6OkxpbmUoUGF0aFZhcmlh
bnQmJiBwYXRoKQogewogfQogCi1pbmxpbmUgTGF5b3V0VW5pdCBMaW5lOjpjb250ZW50TG9naWNh
bFRvcCgpIGNvbnN0CitpbmxpbmUgZmxvYXQgTGluZTo6Y29udGVudExvZ2ljYWxUb3AoKSBjb25z
dAogewogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1
dG8mIHBhdGgpIHsKICAgICAgICAgcmV0dXJuIHBhdGguY29udGVudExvZ2ljYWxUb3AoKTsKICAg
ICB9KTsKIH0KIAotaW5saW5lIExheW91dFVuaXQgTGluZTo6Y29udGVudExvZ2ljYWxCb3R0b20o
KSBjb25zdAoraW5saW5lIGZsb2F0IExpbmU6OmNvbnRlbnRMb2dpY2FsQm90dG9tKCkgY29uc3QK
IHsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShjb25zdCBhdXRv
JiBwYXRoKSB7CiAgICAgICAgIHJldHVybiBwYXRoLmNvbnRlbnRMb2dpY2FsQm90dG9tKCk7CiAg
ICAgfSk7CiB9CiAKLWlubGluZSBMYXlvdXRVbml0IExpbmU6OmNvbnRlbnRMb2dpY2FsVG9wQWRq
dXN0ZWRGb3JQcmVjZWRpbmdMaW5lKCkgY29uc3QKK2lubGluZSBmbG9hdCBMaW5lOjpjb250ZW50
TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oY29uc3QgYXV0byYgcGF0aCkgewogICAg
ICAgICByZXR1cm4gcGF0aC5jb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGlu
ZSgpOwogICAgIH0pOwogfQogCi1pbmxpbmUgTGF5b3V0VW5pdCBMaW5lOjpjb250ZW50TG9naWNh
bFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZygpIGNvbnN0CitpbmxpbmUgZmxvYXQgTGluZTo6Y29u
dGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3RpbmcoKSBjb25zdAogewogICAgIHJldHVy
biBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8mIHBhdGgpIHsKICAg
ICAgICAgcmV0dXJuIHBhdGguY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3Rpbmco
KTsKICAgICB9KTsKIH0KIAotaW5saW5lIExheW91dFVuaXQgTGluZTo6Y29udGVudExvZ2ljYWxC
b3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKSBjb25zdAoraW5saW5lIGZsb2F0IExpbmU6
OmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShjb25zdCBhdXRvJiBw
YXRoKSB7CiAgICAgICAgIHJldHVybiBwYXRoLmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRG
b3JGb2xsb3dpbmdMaW5lKCk7CiAgICAgfSk7CiB9CiAKLWlubGluZSBMYXlvdXRVbml0IExpbmU6
OmxpbmVCb3hUb3AoKSBjb25zdAoraW5saW5lIGZsb2F0IExpbmU6OmxpbmVCb3hUb3AoKSBjb25z
dAogewogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1
dG8mIHBhdGgpIHsKICAgICAgICAgcmV0dXJuIHBhdGgubGluZUJveFRvcCgpOwogICAgIH0pOwog
fQogCi1pbmxpbmUgTGF5b3V0VW5pdCBMaW5lOjpsaW5lQm94Qm90dG9tKCkgY29uc3QKK2lubGlu
ZSBmbG9hdCBMaW5lOjpsaW5lQm94Qm90dG9tKCkgY29uc3QKIHsKICAgICByZXR1cm4gV1RGOjpz
d2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShjb25zdCBhdXRvJiBwYXRoKSB7CiAgICAgICAgIHJl
dHVybiBwYXRoLmxpbmVCb3hCb3R0b20oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmVMZWdhY3lQYXRoLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lTGVnYWN5UGF0aC5o
CmluZGV4IGZjM2Y0ZjQyMzIyMDg3MTQ2NGRhMWU2YWJiYThiZGNhY2M2ZTk5ZmQuLjYzNmUwNGZk
ODljZGNiNmJkODFhMTkyMzk1MzNhOTI5YmIyNTYyY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmVMZWdhY3lQYXRoLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZUxl
Z2FjeVBhdGguaApAQCAtNDMsMTMgKzQzLDEzIEBAIHB1YmxpYzoKICAgICBMaW5lSXRlcmF0b3JM
ZWdhY3lQYXRoJiBvcGVyYXRvcj0oY29uc3QgTGluZUl0ZXJhdG9yTGVnYWN5UGF0aCYpID0gZGVm
YXVsdDsKICAgICBMaW5lSXRlcmF0b3JMZWdhY3lQYXRoJiBvcGVyYXRvcj0oTGluZUl0ZXJhdG9y
TGVnYWN5UGF0aCYmKSA9IGRlZmF1bHQ7CiAKLSAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2Fs
VG9wKCkgY29uc3QgeyByZXR1cm4gbV9yb290SW5saW5lQm94LT5saW5lVG9wKCk7IH0KLSAgICBM
YXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsQm90dG9tKCkgY29uc3QgeyByZXR1cm4gbV9yb290SW5s
aW5lQm94LT5saW5lQm90dG9tKCk7IH0KLSAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsVG9w
QWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9yb290SW5saW5lQm94
LT5zZWxlY3Rpb25Ub3AoKTsgfQotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxUb3BBZGp1
c3RlZEZvckhpdFRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPnNlbGVj
dGlvblRvcChMZWdhY3lSb290SW5saW5lQm94OjpGb3JIaXRUZXN0aW5nOjpZZXMpOyB9Ci0gICAg
TGF5b3V0VW5pdCBjb250ZW50TG9naWNhbEJvdHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+c2VsZWN0aW9uQm90dG9tKCk7IH0KLSAg
ICBMYXlvdXRVbml0IGxpbmVCb3hUb3AoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gt
PmxpbmVCb3hUb3AoKTsgfQotICAgIExheW91dFVuaXQgbGluZUJveEJvdHRvbSgpIGNvbnN0IHsg
cmV0dXJuIG1fcm9vdElubGluZUJveC0+bGluZUJveEJvdHRvbSgpOyB9CisgICAgZmxvYXQgY29u
dGVudExvZ2ljYWxUb3AoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPmxpbmVUb3Ao
KS50b0Zsb2F0KCk7IH0KKyAgICBmbG9hdCBjb250ZW50TG9naWNhbEJvdHRvbSgpIGNvbnN0IHsg
cmV0dXJuIG1fcm9vdElubGluZUJveC0+bGluZUJvdHRvbSgpLnRvRmxvYXQoKTsgfQorICAgIGZs
b2F0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5lKCkgY29uc3QgeyBy
ZXR1cm4gbV9yb290SW5saW5lQm94LT5zZWxlY3Rpb25Ub3AoKS50b0Zsb2F0KCk7IH0KKyAgICBm
bG9hdCBjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZygpIGNvbnN0IHsgcmV0
dXJuIG1fcm9vdElubGluZUJveC0+c2VsZWN0aW9uVG9wKExlZ2FjeVJvb3RJbmxpbmVCb3g6OkZv
ckhpdFRlc3Rpbmc6OlllcykudG9GbG9hdCgpOyB9CisgICAgZmxvYXQgY29udGVudExvZ2ljYWxC
b3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxp
bmVCb3gtPnNlbGVjdGlvbkJvdHRvbSgpLnRvRmxvYXQoKTsgfQorICAgIGZsb2F0IGxpbmVCb3hU
b3AoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPmxpbmVCb3hUb3AoKS50b0Zsb2F0
KCk7IH0KKyAgICBmbG9hdCBsaW5lQm94Qm90dG9tKCkgY29uc3QgeyByZXR1cm4gbV9yb290SW5s
aW5lQm94LT5saW5lQm94Qm90dG9tKCkudG9GbG9hdCgpOyB9CiAKICAgICBmbG9hdCBjb250ZW50
TG9naWNhbExlZnQoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPmxvZ2ljYWxMZWZ0
KCk7IH0KICAgICBmbG9hdCBjb250ZW50TG9naWNhbFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9y
b290SW5saW5lQm94LT5sb2dpY2FsUmlnaHQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZU1vZGVyblBhdGguaCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmVNb2Rlcm5Q
YXRoLmgKaW5kZXggNWRiMmMzYmYwM2I1OWI0NzgwYmNjNDQ1MjdlMDY2YzE0MWYwZThjNi4uMzc2
MTVlNWYxZTI1ZjUzMGIxMmZlODhmYTY4YTM4NmFlMjlmMWFiMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZU1vZGVyblBhdGgu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JM
aW5lTW9kZXJuUGF0aC5oCkBAIC00OSwxOCArNDksMTggQEAgcHVibGljOgogICAgIExpbmVJdGVy
YXRvck1vZGVyblBhdGgmIG9wZXJhdG9yPShjb25zdCBMaW5lSXRlcmF0b3JNb2Rlcm5QYXRoJikg
PSBkZWZhdWx0OwogICAgIExpbmVJdGVyYXRvck1vZGVyblBhdGgmIG9wZXJhdG9yPShMaW5lSXRl
cmF0b3JNb2Rlcm5QYXRoJiYpID0gZGVmYXVsdDsKIAotICAgIExheW91dFVuaXQgY29udGVudExv
Z2ljYWxUb3AoKSBjb25zdCB7IHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRSb3VuZChsaW5l
KCkuZW5jbG9zaW5nQ29udGVudFRvcCgpKTsgfQotICAgIExheW91dFVuaXQgY29udGVudExvZ2lj
YWxCb3R0b20oKSBjb25zdCB7IHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRSb3VuZChsaW5l
KCkuZW5jbG9zaW5nQ29udGVudEJvdHRvbSgpKTsgfQotICAgIExheW91dFVuaXQgbGluZUJveFRv
cCgpIGNvbnN0IHsgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdFJvdW5kKGxpbmUoKS5saW5l
Qm94VG9wKCkpOyB9Ci0gICAgTGF5b3V0VW5pdCBsaW5lQm94Qm90dG9tKCkgY29uc3QgeyByZXR1
cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Um91bmQobGluZSgpLmxpbmVCb3hCb3R0b20oKSk7IH0K
KyAgICBmbG9hdCBjb250ZW50TG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIGxpbmUoKS5lbmNs
b3NpbmdDb250ZW50VG9wKCk7IH0KKyAgICBmbG9hdCBjb250ZW50TG9naWNhbEJvdHRvbSgpIGNv
bnN0IHsgcmV0dXJuIGxpbmUoKS5lbmNsb3NpbmdDb250ZW50Qm90dG9tKCk7IH0KKyAgICBmbG9h
dCBsaW5lQm94VG9wKCkgY29uc3QgeyByZXR1cm4gbGluZSgpLmxpbmVCb3hUb3AoKTsgfQorICAg
IGZsb2F0IGxpbmVCb3hCb3R0b20oKSBjb25zdCB7IHJldHVybiBsaW5lKCkubGluZUJveEJvdHRv
bSgpOyB9CiAKLSAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVj
ZWRpbmdMaW5lKCkgY29uc3QgeyByZXR1cm4gIW1fbGluZUluZGV4ID8gY29udGVudExvZ2ljYWxU
b3AoKSA6IExpbmVJdGVyYXRvck1vZGVyblBhdGgoKm1faW5saW5lQ29udGVudCwgbV9saW5lSW5k
ZXggLSAxKS5jb250ZW50TG9naWNhbEJvdHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgpOyB9
CisgICAgZmxvYXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSBj
b25zdCB7IHJldHVybiAhbV9saW5lSW5kZXggPyBjb250ZW50TG9naWNhbFRvcCgpIDogTGluZUl0
ZXJhdG9yTW9kZXJuUGF0aCgqbV9pbmxpbmVDb250ZW50LCBtX2xpbmVJbmRleCAtIDEpLmNvbnRl
bnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCk7IH0KICAgICAvLyBGSVhN
RTogUmVtb3ZlIHRoZSBjb250YWluaW5nQmxvY2soKS5ib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkg
b2Zmc2V0IGFmdGVyIHJldGlyaW5nIGxlZ2FjeSBsaW5lIGxheW91dC4gSXQgYWxzbyByZXF1aXJl
cyBjaGFuZ2VzIGluIFJlbmRlclRleHQ6OnBvc2l0aW9uRm9yUG9pbnQgdG8gZmluZCB0aGUgZmly
c3QgbGluZSB3aXRoIG9mZnNldC4KICAgICAvLyAtIHRoZSAiYmVmb3JlIiB2YWx1ZSBpcyBhbHJl
YWR5IGZhY3RvcmVkIGluIHRvIHRoZSBsaW5lIG9mZnNldAogICAgIC8vIC0gdGhpcyBsb2dpYyBu
ZWdhdGVzIHRoZSBmaXJzdCBsaW5lJ3MgbmF0dXJhbCBvZmZzZXQgKGUuZy4gYmxvY2sgaGFzIG5v
IGJvcmRlci9wYWRkaW5nIGJ1dCB0aGUgZmlyc3QgbGluZSBoYXMgYSBjb21wdXRlZCBvZmZzZXQp
LgotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3Rpbmco
KSBjb25zdCB7IHJldHVybiAhbV9saW5lSW5kZXggPyBjb250YWluaW5nQmxvY2soKS5ib3JkZXJB
bmRQYWRkaW5nQmVmb3JlKCkgOiBjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5n
TGluZSgpOyB9OworICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0
aW5nKCkgY29uc3QgeyByZXR1cm4gIW1fbGluZUluZGV4ID8gY29udGFpbmluZ0Jsb2NrKCkuYm9y
ZGVyQW5kUGFkZGluZ0JlZm9yZSgpLnRvRmxvYXQoKSA6IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0
ZWRGb3JQcmVjZWRpbmdMaW5lKCk7IH07CiAgICAgLy8gRklYTUU6IEltcGxlbWVudC4KLSAgICBM
YXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCkg
Y29uc3QgeyByZXR1cm4gY29udGVudExvZ2ljYWxCb3R0b20oKTsgfQorICAgIGZsb2F0IGNvbnRl
bnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCkgY29uc3QgeyByZXR1cm4g
Y29udGVudExvZ2ljYWxCb3R0b20oKTsgfQogCiAgICAgZmxvYXQgY29udGVudExvZ2ljYWxMZWZ0
KCkgY29uc3QgeyByZXR1cm4gbGluZSgpLmxpbmVCb3hMZWZ0KCkgKyBsaW5lKCkuY29udGVudExv
Z2ljYWxPZmZzZXQoKTsgfQogICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsUmlnaHQoKSBjb25zdCB7
IHJldHVybiBjb250ZW50TG9naWNhbExlZnQoKSArIGxpbmUoKS5jb250ZW50TG9naWNhbFdpZHRo
KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MaW5l
U2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGluZVNlbGVj
dGlvbi5oCmluZGV4IGYyYzg4M2UwMTcwYzFkNzFiYWY3NTk0YjlkY2E0NWM4NDdhNTU2MDQuLmMz
MmY2Zjk1NWIxNWM2ZGE4OGFhNjU3OTRjNzQ2NTIzODg5OTRlY2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MaW5lU2VsZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xpbmVTZWxlY3Rpb24uaApAQCAtMzIsMTUgKzMy
LDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTGluZVNlbGVjdGlvbiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIExheW91dFVuaXQgbG9naWNhbFRvcChjb25zdCBJbmxpbmVJdGVyYXRv
cjo6TGluZSYgbGluZSkgeyByZXR1cm4gbGluZS5jb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9y
UHJlY2VkaW5nTGluZSgpOyB9Ci0gICAgc3RhdGljIExheW91dFVuaXQgbG9naWNhbEJvdHRvbShj
b25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkgeyByZXR1cm4gbGluZS5jb250ZW50TG9n
aWNhbEJvdHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgpOyB9CisgICAgc3RhdGljIGZsb2F0
IGxvZ2ljYWxUb3AoY29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUpIHsgcmV0dXJuIGxp
bmUuY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKTsgfQorICAgIHN0
YXRpYyBmbG9hdCBsb2dpY2FsQm90dG9tKGNvbnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5l
KSB7IHJldHVybiBsaW5lLmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdM
aW5lKCk7IH0KIAotICAgIHN0YXRpYyBMYXlvdXRSZWN0IGxvZ2ljYWxSZWN0KGNvbnN0IElubGlu
ZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKQorICAgIHN0YXRpYyBGbG9hdFJlY3QgbG9naWNhbFJlY3Qo
Y29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUpCiAgICAgewotICAgICAgICByZXR1cm4g
eyBMYXlvdXRQb2ludCB7IGxpbmUuY29udGVudExvZ2ljYWxMZWZ0KCksIGxpbmUuY29udGVudExv
Z2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSB9LCBMYXlvdXRQb2ludCB7IGxpbmUu
Y29udGVudExvZ2ljYWxSaWdodCgpLCBsaW5lLmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRG
b3JGb2xsb3dpbmdMaW5lKCkgfSB9OworICAgICAgICByZXR1cm4geyBGbG9hdFBvaW50IHsgbGlu
ZS5jb250ZW50TG9naWNhbExlZnQoKSwgbGluZS5jb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9y
UHJlY2VkaW5nTGluZSgpIH0sIEZsb2F0UG9pbnQgeyBsaW5lLmNvbnRlbnRMb2dpY2FsUmlnaHQo
KSwgbGluZS5jb250ZW50TG9naWNhbEJvdHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgpIH0g
fTsKICAgICB9CiAKLSAgICBzdGF0aWMgTGF5b3V0UmVjdCBwaHlzaWNhbFJlY3QoY29uc3QgSW5s
aW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUpCisgICAgc3RhdGljIEZsb2F0UmVjdCBwaHlzaWNhbFJl
Y3QoY29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUpCiAgICAgewogICAgICAgICBhdXRv
IHBoeXNpY2FsUmVjdCA9IGxvZ2ljYWxSZWN0KGxpbmUpOwogICAgICAgICBpZiAoIWxpbmUuaXNI
b3Jpem9udGFsKCkpCkBAIC00OSwxMCArNDksMTAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
cGh5c2ljYWxSZWN0OwogICAgIH0KIAotICAgIHN0YXRpYyBMYXlvdXRVbml0IGxvZ2ljYWxUb3BB
ZGp1c3RlZEZvclByZWNlZGluZ0Jsb2NrKGNvbnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5l
KQorICAgIHN0YXRpYyBmbG9hdCBsb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jayhj
b25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkKICAgICB7CiAgICAgICAgIC8vIEZJWE1F
OiBNb3ZlIGFkanVzdEVuY2xvc2luZ1RvcEZvclByZWNlZGluZ0Jsb2NrIGZyb20gUmVuZGVyQmxv
Y2tGbG93IHRvIGhlcmUuCi0gICAgICAgIHJldHVybiBsaW5lLmNvbnRhaW5pbmdCbG9jaygpLmFk
anVzdEVuY2xvc2luZ1RvcEZvclByZWNlZGluZ0Jsb2NrKGxpbmUuY29udGVudExvZ2ljYWxUb3BB
ZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSk7CisgICAgICAgIHJldHVybiBsaW5lLmNvbnRhaW5p
bmdCbG9jaygpLmFkanVzdEVuY2xvc2luZ1RvcEZvclByZWNlZGluZ0Jsb2NrKExheW91dFVuaXQg
eyBsaW5lLmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5lKCkgfSk7CiAg
ICAgfQogCiAgICAgc3RhdGljIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgc2VsZWN0aW9u
U3RhdGUoY29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDNjMDMxYjM3Mzc5ZTkzNzY1ZTEw
YWUyNDZlY2QyM2VlYjZhYTBmMzMuLjAzMjU5ZWYzNWYyNzBiYzlkNGFjNTY1NmRiZWQxZTk4MTJj
ZGJkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zs
b3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3Bw
CkBAIC0zMDY3LDcgKzMwNjcsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrRmxvdzo6YWRqdXN0
RW5jbG9zaW5nVG9wRm9yUHJlY2VkaW5nQmxvY2soTGF5b3V0VW5pdCB0b3ApCiAgICAgICAgICAg
ICByZXR1cm4gdG9wOwogCiAgICAgICAgIGF1dG8gbGFzdExpbmVTZWxlY3Rpb25Cb3R0b20gPSBM
aW5lU2VsZWN0aW9uOjpsb2dpY2FsQm90dG9tKCpsYXN0TGluZSkgKyBvZmZzZXRUb0Jsb2NrQmVm
b3JlLmhlaWdodCgpOwotICAgICAgICB0b3AgPSBzdGQ6Om1heCh0b3AsIGxhc3RMaW5lU2VsZWN0
aW9uQm90dG9tKTsKKyAgICAgICAgdG9wID0gc3RkOjptYXgodG9wLCBMYXlvdXRVbml0IHsgbGFz
dExpbmVTZWxlY3Rpb25Cb3R0b20gfSk7CiAgICAgfQogICAgIHJldHVybiB0b3A7CiB9CkBAIC0z
MTY1LDggKzMxNjUsOCBAQCBHYXBSZWN0cyBSZW5kZXJCbG9ja0Zsb3c6OmlubGluZVNlbGVjdGlv
bkdhcHMoUmVuZGVyQmxvY2smIHJvb3RCbG9jaywgY29uc3QgTGF5bwogCiAgICAgLy8gTm93IHBh
aW50IHRoZSBnYXBzIGZvciB0aGUgbGluZXMuCiAgICAgZm9yICg7IGxpbmUgJiYgaGFzU2VsZWN0
ZWRDaGlsZHJlbihsaW5lKTsgbGluZS50cmF2ZXJzZU5leHQoKSkgewotICAgICAgICBhdXRvIHNl
bGVjdGlvblRvcCA9ICBMaW5lU2VsZWN0aW9uOjpsb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRp
bmdCbG9jaygqbGluZSk7Ci0gICAgICAgIGF1dG8gc2VsZWN0aW9uSGVpZ2h0ID0gc3RkOjptYXgo
MF9sdSwgTGluZVNlbGVjdGlvbjo6bG9naWNhbEJvdHRvbSgqbGluZSkgLSBzZWxlY3Rpb25Ub3Ap
OworICAgICAgICBhdXRvIHNlbGVjdGlvblRvcCA9ICBMYXlvdXRVbml0IHsgTGluZVNlbGVjdGlv
bjo6bG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nQmxvY2soKmxpbmUpIH07CisgICAgICAg
IGF1dG8gc2VsZWN0aW9uSGVpZ2h0ID0gTGF5b3V0VW5pdCB7IHN0ZDo6bWF4KDAuZiwgTGluZVNl
bGVjdGlvbjo6bG9naWNhbEJvdHRvbSgqbGluZSkgLSBzZWxlY3Rpb25Ub3ApIH07CiAKICAgICAg
ICAgaWYgKCFjb250YWluc1N0YXJ0ICYmICFsYXN0U2VsZWN0ZWRMaW5lICYmCiAgICAgICAgICAg
ICBzZWxlY3Rpb25TdGF0ZSgpICE9IEhpZ2hsaWdodFN0YXRlOjpTdGFydCAmJiBzZWxlY3Rpb25T
dGF0ZSgpICE9IEhpZ2hsaWdodFN0YXRlOjpCb3RoICYmICFpc1J1YnlCYXNlKCkpCkBAIC0zMTg4
LDcgKzMxODgsNyBAQCBHYXBSZWN0cyBSZW5kZXJCbG9ja0Zsb3c6OmlubGluZVNlbGVjdGlvbkdh
cHMoUmVuZGVyQmxvY2smIHJvb3RCbG9jaywgY29uc3QgTGF5bwogCiAgICAgaWYgKGxhc3RTZWxl
Y3RlZExpbmUgJiYgc2VsZWN0aW9uU3RhdGUoKSAhPSBIaWdobGlnaHRTdGF0ZTo6RW5kICYmIHNl
bGVjdGlvblN0YXRlKCkgIT0gSGlnaGxpZ2h0U3RhdGU6OkJvdGgpIHsKICAgICAgICAgLy8gVXBk
YXRlIG91ciBsYXN0WSB0byBiZSB0aGUgYm90dG9tIG9mIHRoZSBsYXN0IHNlbGVjdGVkIGxpbmUu
Ci0gICAgICAgIGF1dG8gbGFzdExpbmVTZWxlY3Rpb25Cb3R0b20gPSBMaW5lU2VsZWN0aW9uOjps
b2dpY2FsQm90dG9tKCpsYXN0U2VsZWN0ZWRMaW5lKTsKKyAgICAgICAgYXV0byBsYXN0TGluZVNl
bGVjdGlvbkJvdHRvbSA9IExheW91dFVuaXQgeyBMaW5lU2VsZWN0aW9uOjpsb2dpY2FsQm90dG9t
KCpsYXN0U2VsZWN0ZWRMaW5lKSB9OwogICAgICAgICBsYXN0TG9naWNhbFRvcCA9IGJsb2NrRGly
ZWN0aW9uT2Zmc2V0KHJvb3RCbG9jaywgb2Zmc2V0RnJvbVJvb3RCbG9jaykgKyBsYXN0TGluZVNl
bGVjdGlvbkJvdHRvbTsKICAgICAgICAgbGFzdExvZ2ljYWxMZWZ0ID0gbG9naWNhbExlZnRTZWxl
Y3Rpb25PZmZzZXQocm9vdEJsb2NrLCBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbSwgY2FjaGUpOwog
ICAgICAgICBsYXN0TG9naWNhbFJpZ2h0ID0gbG9naWNhbFJpZ2h0U2VsZWN0aW9uT2Zmc2V0KHJv
b3RCbG9jaywgbGFzdExpbmVTZWxlY3Rpb25Cb3R0b20sIGNhY2hlKTsKQEAgLTM0MjEsNyArMzQy
MSw3IEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJCbG9ja0Zsb3c6OnBvc2l0aW9uRm9yUG9pbnRX
aXRoSW5saW5lQ2hpbGRyZW4oY29uc3QgTGF5b3V0CiAKICAgICBpZiAoY2xvc2VzdEJveCkgewog
ICAgICAgICBpZiAobW92ZUNhcmV0VG9Cb3VuZGFyeSkgewotICAgICAgICAgICAgTGF5b3V0VW5p
dCBmaXJzdExpbmVXaXRoQ2hpbGRyZW5Ub3AgPSBzdGQ6Om1pbihmaXJzdExpbmVXaXRoQ2hpbGRy
ZW4tPmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0aW5nKCksIExheW91dFVuaXQo
Zmlyc3RMaW5lV2l0aENoaWxkcmVuLT5jb250ZW50TG9naWNhbFRvcCgpKSk7CisgICAgICAgICAg
ICBhdXRvIGZpcnN0TGluZVdpdGhDaGlsZHJlblRvcCA9IExheW91dFVuaXQgeyBzdGQ6Om1pbihm
aXJzdExpbmVXaXRoQ2hpbGRyZW4tPmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0
aW5nKCksIGZpcnN0TGluZVdpdGhDaGlsZHJlbi0+Y29udGVudExvZ2ljYWxUb3AoKSkgfTsKICAg
ICAgICAgICAgIGlmIChwb2ludEluTG9naWNhbENvbnRlbnRzLnkoKSA8IGZpcnN0TGluZVdpdGhD
aGlsZHJlblRvcAogICAgICAgICAgICAgICAgIHx8IChibG9ja3NBcmVGbGlwcGVkICYmIHBvaW50
SW5Mb2dpY2FsQ29udGVudHMueSgpID09IGZpcnN0TGluZVdpdGhDaGlsZHJlblRvcCkpIHsKICAg
ICAgICAgICAgICAgICBhdXRvIGJveCA9IGZpcnN0TGluZVdpdGhDaGlsZHJlbi0+Zmlyc3RMZWFm
Qm94KCk7CkBAIC0zNDc0LDggKzM0NzQsOCBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6YWRkRm9j
dXNSaW5nUmVjdHNGb3JJbmxpbmVDaGlsZHJlbihWZWN0b3I8TGF5b3V0UmVjdD4mIHJlYwogICAg
ICAgICBhdXRvIGxpbmUgPSBib3gtPmxpbmUoKTsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMg
bWl4aW5nIHBoeXNpY2FsIGFuZCBsb2dpY2FsIGNvb3JkaW5hdGVzLgogICAgICAgICBhdXRvIHVu
ZmxpcHBlZFZpc3VhbFJlY3QgPSBib3gtPnZpc3VhbFJlY3RJZ25vcmluZ0Jsb2NrRGlyZWN0aW9u
KCk7Ci0gICAgICAgIGF1dG8gdG9wID0gc3RkOjptYXgobGluZS0+Y29udGVudExvZ2ljYWxUb3Ao
KSwgTGF5b3V0VW5pdCB7IHVuZmxpcHBlZFZpc3VhbFJlY3QueSgpIH0pOwotICAgICAgICBhdXRv
IGJvdHRvbSA9IHN0ZDo6bWluKGxpbmUtPmNvbnRlbnRMb2dpY2FsQm90dG9tKCksIExheW91dFVu
aXQgeyB1bmZsaXBwZWRWaXN1YWxSZWN0Lm1heFkoKSB9KTsKKyAgICAgICAgYXV0byB0b3AgPSBz
dGQ6Om1heChsaW5lLT5jb250ZW50TG9naWNhbFRvcCgpLCB1bmZsaXBwZWRWaXN1YWxSZWN0Lnko
KSk7CisgICAgICAgIGF1dG8gYm90dG9tID0gc3RkOjptaW4obGluZS0+Y29udGVudExvZ2ljYWxC
b3R0b20oKSwgdW5mbGlwcGVkVmlzdWFsUmVjdC5tYXhZKCkpOwogICAgICAgICBhdXRvIHJlY3Qg
PSBMYXlvdXRSZWN0IHsgTGF5b3V0VW5pdCB7IGFkZGl0aW9uYWxPZmZzZXQueCgpICsgdW5mbGlw
cGVkVmlzdWFsUmVjdC54KCkgfQogICAgICAgICAgICAgLCBhZGRpdGlvbmFsT2Zmc2V0LnkoKSAr
IHRvcAogICAgICAgICAgICAgLCBMYXlvdXRVbml0IHsgdW5mbGlwcGVkVmlzdWFsUmVjdC53aWR0
aCgpIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggYzNm
NTY3YTU5YzZjNjM0NTAxNmE0ODFmNmMwM2IyYmJiMDM3YjJiNi4uYWI4NGYxNTY5M2I1YTQwYTAw
NWViYWYxZTFkZGRhZDc0N2U1NzYxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5jcHAKQEAgLTk3NCw4ICs5NzQsOCBAQCB2b2lkIFJlbmRlcklubGluZTo6cGFpbnRP
dXRsaW5lKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZgog
CiAgICAgZm9yIChhdXRvIGJveCA9IElubGluZUl0ZXJhdG9yOjpmaXJzdElubGluZUJveEZvcigq
dGhpcyk7IGJveDsgYm94LnRyYXZlcnNlTmV4dElubGluZUJveCgpKSB7CiAgICAgICAgIGF1dG8g
bGluZSA9IGJveC0+bGluZSgpOwotICAgICAgICBhdXRvIHRvcCA9IHN0ZDo6bWF4KGxpbmUtPmNv
bnRlbnRMb2dpY2FsVG9wKCksIExheW91dFVuaXQoYm94LT5sb2dpY2FsVG9wKCkpKTsKLSAgICAg
ICAgYXV0byBib3R0b20gPSBzdGQ6Om1pbihsaW5lLT5jb250ZW50TG9naWNhbEJvdHRvbSgpLCBM
YXlvdXRVbml0KGJveC0+bG9naWNhbEJvdHRvbSgpKSk7CisgICAgICAgIGF1dG8gdG9wID0gTGF5
b3V0VW5pdCB7IHN0ZDo6bWF4KGxpbmUtPmNvbnRlbnRMb2dpY2FsVG9wKCksIGJveC0+bG9naWNh
bFRvcCgpKSB9OworICAgICAgICBhdXRvIGJvdHRvbSA9IExheW91dFVuaXQgeyBzdGQ6Om1pbihs
aW5lLT5jb250ZW50TG9naWNhbEJvdHRvbSgpLCBib3gtPmxvZ2ljYWxCb3R0b20oKSkgfTsKICAg
ICAgICAgLy8gRklYTUU6IFRoaXMgaXMgbWl4aW5nIHBoeXNpY2FsIGFuZCBsb2dpY2FsIGNvb3Jk
aW5hdGVzLgogICAgICAgICByZWN0cy5hcHBlbmQoeyBMYXlvdXRVbml0KGJveC0+dmlzdWFsUmVj
dElnbm9yaW5nQmxvY2tEaXJlY3Rpb24oKS54KCkpLCB0b3AsIExheW91dFVuaXQoYm94LT5sb2dp
Y2FsV2lkdGgoKSksIGJvdHRvbSAtIHRvcCB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCA1MzY2MmZkZjBhNzhhYWEyMDY3OTM3YzE1
N2I1MTE4NDZkNjkzNjdmLi40OTYyMTRiNmY3NWMyM2FmNTc2NzI0ZTQ4NWJlMTZhODhjZGQ5ZGE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTcx
OSw3ICs3MTksNyBAQCB2b2lkIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUHJlZmVycmVkTG9naWNh
bFdpZHRocygpCiAKIFZpc2libGVQb3NpdGlvbiBSZW5kZXJSZXBsYWNlZDo6cG9zaXRpb25Gb3JQ
b2ludChjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIGNvbnN0IFJlbmRlckZyYWdtZW50Q29udGFp
bmVyKiBmcmFnbWVudCkKIHsKLSAgICBhdXRvIFt0b3AsIGJvdHRvbV0gPSBbJl0geworICAgIGF1
dG8gW3RvcCwgYm90dG9tXSA9IFsmXSgpIC0+IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+IHsKICAg
ICAgICAgaWYgKGF1dG8gcnVuID0gSW5saW5lSXRlcmF0b3I6OmJveEZvcigqdGhpcykpIHsKICAg
ICAgICAgICAgIGF1dG8gbGluZSA9IHJ1bi0+bGluZSgpOwogICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bWFrZV9wYWlyKGxpbmUtPmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0aW5n
KCksIExpbmVTZWxlY3Rpb246OmxvZ2ljYWxCb3R0b20oKmxpbmUpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Qm94UGFpbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvVGV4dEJveFBhaW50ZXIuY3BwCmluZGV4IGU2ODc4YzI4ZDE5NWE4MjQ3NzQ1
OGJhZmJiYzgyN2JkMWFiNjA1ODEuLjk0MzJkNDJiNDQxYTQ3YTM1MDE2NjRmMTg4YjY2OGYxYzg4
NTNlNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Qm94UGFpbnRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRCb3hQYWludGVyLmNwcApA
QCAtMjk1LDcgKzI5NSw3IEBAIHZvaWQgVGV4dEJveFBhaW50ZXI6OnBhaW50QmFja2dyb3VuZCh1
bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBjCiAgICAgLy8gVXNlIHNh
bWUgeSBwb3NpdGlvbmluZyBhbmQgaGVpZ2h0IGFzIGZvciBzZWxlY3Rpb24sIHNvIHRoYXQgd2hl
biB0aGUgc2VsZWN0aW9uIGFuZCB0aGlzIHN1YnJhbmdlIGFyZSBvbgogICAgIC8vIHRoZSBzYW1l
IHdvcmQgdGhlcmUgYXJlIG5vIHBpZWNlcyBzdGlja2luZyBvdXQuCiAgICAgYXV0byBkZWx0YVkg
PSBMYXlvdXRVbml0IHsgbV9zdHlsZS5pc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKCkgPyBzZWxl
Y3Rpb25Cb3R0b20gLSB0ZXh0Qm94KCkubG9naWNhbEJvdHRvbSgpIDogdGV4dEJveCgpLmxvZ2lj
YWxUb3AoKSAtIHNlbGVjdGlvblRvcCB9OwotICAgIGF1dG8gc2VsZWN0aW9uSGVpZ2h0ID0gTGF5
b3V0VW5pdCB7IHN0ZDo6bWF4KDBfbHUsIHNlbGVjdGlvbkJvdHRvbSAtIHNlbGVjdGlvblRvcCkg
fTsKKyAgICBhdXRvIHNlbGVjdGlvbkhlaWdodCA9IExheW91dFVuaXQgeyBzdGQ6Om1heCgwLmYs
IHNlbGVjdGlvbkJvdHRvbSAtIHNlbGVjdGlvblRvcCkgfTsKICAgICBhdXRvIHNlbGVjdGlvblJl
Y3QgPSBMYXlvdXRSZWN0IHsgTGF5b3V0VW5pdChtX3BhaW50UmVjdC54KCkpLCBMYXlvdXRVbml0
KG1fcGFpbnRSZWN0LnkoKSAtIGRlbHRhWSksIExheW91dFVuaXQodGV4dEJveCgpLmxvZ2ljYWxX
aWR0aCgpKSwgc2VsZWN0aW9uSGVpZ2h0IH07CiAgICAgZm9udENhc2NhZGUoKS5hZGp1c3RTZWxl
Y3Rpb25SZWN0Rm9yVGV4dChtX3BhaW50VGV4dFJ1biwgc2VsZWN0aW9uUmVjdCwgc3RhcnRPZmZz
ZXQsIGVuZE9mZnNldCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455162</attachid>
            <date>2022-03-18 19:51:40 -0700</date>
            <delta_ts>2022-03-18 21:26:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238106-20220318195139.patch</filename>
            <type>text/plain</type>
            <size>22191</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmFiZGY0NmRhZjA3N2Fi
N2RlNjI0MGY0NTkyODc2OWEzOTU1MGQyOC4uZDgzZWNmMDI1YmQ3MGNhNGMxM2NmZmRiNjRkZWFj
YjNiM2IzYTA3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIyLTAzLTE4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0lGQ11bSW50ZWdyYXRpb25d
IElubGluZUl0ZXJhdG9yOjpMaW5lIGZ1bmN0aW9ucyBzaG91bGQgYWxsIHJldHVybiBmbG9hdCB2
YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
ODEwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERp
c3BsYXkgc3RydWN0dXJlcyBhcmUgc3VwcG9zZWQgdG8gYmUgYWxsIGZsb2F0IGJhc2VkLgorCisg
ICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmU6OmxpbmVCb3hIZWlnaHQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OmNvbnRlbnRTdGFydEluQmxvY2tEaXJl
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmU6OmNvbnRlbnRM
b2dpY2FsVG9wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5l
Ojpjb250ZW50TG9naWNhbEJvdHRvbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJ
dGVyYXRvcjo6TGluZTo6Y29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmU6OmNvbnRlbnRM
b2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OklubGluZUl0ZXJhdG9yOjpMaW5lOjpjb250ZW50TG9naWNhbEJvdHRvbUFkanVzdGVkRm9yRm9s
bG93aW5nTGluZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGlu
ZTo6bGluZUJveFRvcCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6
TGluZTo6bGluZUJveEJvdHRvbSBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9u
L0lubGluZUl0ZXJhdG9yTGluZUxlZ2FjeVBhdGguaDoKKyAgICAgICAgKFdlYkNvcmU6OklubGlu
ZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3JMZWdhY3lQYXRoOjpjb250ZW50TG9naWNhbFRvcCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTGVnYWN5
UGF0aDo6Y29udGVudExvZ2ljYWxCb3R0b20gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5s
aW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvckxlZ2FjeVBhdGg6OmNvbnRlbnRMb2dpY2FsVG9wQWRq
dXN0ZWRGb3JQcmVjZWRpbmdMaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0
ZXJhdG9yOjpMaW5lSXRlcmF0b3JMZWdhY3lQYXRoOjpjb250ZW50TG9naWNhbFRvcEFkanVzdGVk
Rm9ySGl0VGVzdGluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6
TGluZUl0ZXJhdG9yTGVnYWN5UGF0aDo6Y29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZv
bGxvd2luZ0xpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6Okxp
bmVJdGVyYXRvckxlZ2FjeVBhdGg6OmxpbmVCb3hUb3AgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5saW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvckxlZ2FjeVBhdGg6OmxpbmVCb3hCb3R0b20g
Y29uc3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmVN
b2Rlcm5QYXRoLmg6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJh
dG9yTW9kZXJuUGF0aDo6Y29udGVudExvZ2ljYWxUb3AgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5saW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvck1vZGVyblBhdGg6OmNvbnRlbnRMb2dpY2Fs
Qm90dG9tIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lSXRl
cmF0b3JNb2Rlcm5QYXRoOjpsaW5lQm94VG9wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
bGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3JNb2Rlcm5QYXRoOjpsaW5lQm94Qm90dG9tIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3JNb2Rlcm5Q
YXRoOjpjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTW9kZXJuUGF0aDo6
Y29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3RpbmcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvck1vZGVyblBhdGg6OmNvbnRlbnRM
b2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lIGNvbnN0KToKKyAgICAgICAgKiBs
YXlvdXQvaW50ZWdyYXRpb24vTGluZVNlbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TGlu
ZVNlbGVjdGlvbjo6bG9naWNhbFRvcCk6CisgICAgICAgIChXZWJDb3JlOjpMaW5lU2VsZWN0aW9u
Ojpsb2dpY2FsQm90dG9tKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246OmxvZ2lj
YWxSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246OnBoeXNpY2FsUmVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpMaW5lU2VsZWN0aW9uOjpsb2dpY2FsVG9wQWRqdXN0ZWRGb3JQ
cmVjZWRpbmdCbG9jayk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmFkanVzdEVuY2xvc2luZ1RvcEZv
clByZWNlZGluZ0Jsb2NrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxv
dzo6aW5saW5lU2VsZWN0aW9uR2Fwcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6OnBvc2l0aW9uRm9yUG9pbnRXaXRoSW5saW5lQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2tGbG93OjphZGRGb2N1c1JpbmdSZWN0c0ZvcklubGluZUNoaWxkcmVuKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlcklubGluZTo6cGFpbnRPdXRsaW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OnBvc2l0aW9u
Rm9yUG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0Qm94UGFpbnRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0Qm94UGFpbnRlcjo6cGFpbnRCYWNrZ3JvdW5kKToKKwogMjAyMi0w
My0xOCAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0lGQ11bSW50
ZWdyYXRpb25dIFJlbW92ZSByZWR1bmRhbnQgSW5saW5lSXRlcmF0b3I6OkxpbmU6OmNsb3Nlc3RC
b3hGb3JQb2ludCBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5oCmluZGV4IGNhMjIwOGY4OGRhNGFkMmE1OGNh
ZjEyNWJlYjVjMDg1OWUzMTA1NDYuLjcxMmRlOWM5MTEyNmM0MjJhNjE2MDRlMzNlOGQ5NTI1NjJi
ZjczN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9Jbmxp
bmVJdGVyYXRvckxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
SW5saW5lSXRlcmF0b3JMaW5lLmgKQEAgLTU0LDIwICs1NCwxOSBAQCBwdWJsaWM6CiAKICAgICBM
aW5lKFBhdGhWYXJpYW50JiYpOwogCi0gICAgTGF5b3V0VW5pdCBsaW5lQm94VG9wKCkgY29uc3Q7
Ci0gICAgTGF5b3V0VW5pdCBsaW5lQm94Qm90dG9tKCkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBs
aW5lQm94SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbGluZUJveEJvdHRvbSgpIC0gbGluZUJveFRv
cCgpOyB9CisgICAgZmxvYXQgbGluZUJveFRvcCgpIGNvbnN0OworICAgIGZsb2F0IGxpbmVCb3hC
b3R0b20oKSBjb25zdDsKKyAgICBmbG9hdCBsaW5lQm94SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4g
bGluZUJveEJvdHRvbSgpIC0gbGluZUJveFRvcCgpOyB9CiAKLSAgICAvLyBGSVhNRTogTWFrZSBz
dXJlIHdlIHVzZSB0aGUgc2FtZSB0eXBlIGZvciBjb250ZW50IGdlb21ldHJ5LgotICAgIExheW91
dFVuaXQgY29udGVudExvZ2ljYWxUb3AoKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGNvbnRlbnRM
b2dpY2FsQm90dG9tKCkgY29uc3Q7CisgICAgZmxvYXQgY29udGVudExvZ2ljYWxUb3AoKSBjb25z
dDsKKyAgICBmbG9hdCBjb250ZW50TG9naWNhbEJvdHRvbSgpIGNvbnN0OwogICAgIGZsb2F0IGNv
bnRlbnRMb2dpY2FsTGVmdCgpIGNvbnN0OwogICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsUmlnaHQo
KSBjb25zdDsKICAgICBmbG9hdCBjb250ZW50TG9naWNhbFdpZHRoKCkgY29uc3Q7CiAKLSAgICBM
YXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0aW5nKCkgY29uc3Q7
Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGlu
ZSgpIGNvbnN0OwotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZv
ckZvbGxvd2luZ0xpbmUoKSBjb25zdDsKKyAgICBmbG9hdCBjb250ZW50TG9naWNhbFRvcEFkanVz
dGVkRm9ySGl0VGVzdGluZygpIGNvbnN0OworICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsVG9wQWRq
dXN0ZWRGb3JQcmVjZWRpbmdMaW5lKCkgY29uc3Q7CisgICAgZmxvYXQgY29udGVudExvZ2ljYWxC
b3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKSBjb25zdDsKIAogICAgIGNvbnN0IFJlbmRl
ckJsb2NrRmxvdyYgY29udGFpbmluZ0Jsb2NrKCkgY29uc3Q7CiAgICAgUmVuZGVyRnJhZ21lbnRD
b250YWluZXIqIGNvbnRhaW5pbmdGcmFnbWVudCgpIGNvbnN0OwpAQCAtMTIzLDcgKzEyMiw3IEBA
IExpbmVJdGVyYXRvciBsYXN0TGluZUZvcihjb25zdCBSZW5kZXJCbG9ja0Zsb3cmKTsKIExlYWZC
b3hJdGVyYXRvciBjbG9zZXN0Qm94Rm9ySG9yaXpvbnRhbFBvc2l0aW9uKGNvbnN0IExpbmUmLCBm
bG9hdCBob3Jpem9udGFsUG9zaXRpb24sIGJvb2wgZWRpdGFibGVPbmx5ID0gZmFsc2UpOwogCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotaW5saW5l
IExheW91dFVuaXQgY29udGVudFN0YXJ0SW5CbG9ja0RpcmVjdGlvbihjb25zdCBMaW5lJiBsaW5l
KQoraW5saW5lIGZsb2F0IGNvbnRlbnRTdGFydEluQmxvY2tEaXJlY3Rpb24oY29uc3QgTGluZSYg
bGluZSkKIHsKICAgICBpZiAoIWxpbmUuY29udGFpbmluZ0Jsb2NrKCkuc3R5bGUoKS5pc0ZsaXBw
ZWRCbG9ja3NXcml0aW5nTW9kZSgpKQogICAgICAgICByZXR1cm4gc3RkOjptYXgobGluZS5jb250
ZW50TG9naWNhbFRvcCgpLCBsaW5lLmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0
aW5nKCkpOwpAQCAtMTM1LDQ5ICsxMzQsNDkgQEAgaW5saW5lIExpbmU6OkxpbmUoUGF0aFZhcmlh
bnQmJiBwYXRoKQogewogfQogCi1pbmxpbmUgTGF5b3V0VW5pdCBMaW5lOjpjb250ZW50TG9naWNh
bFRvcCgpIGNvbnN0CitpbmxpbmUgZmxvYXQgTGluZTo6Y29udGVudExvZ2ljYWxUb3AoKSBjb25z
dAogewogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1
dG8mIHBhdGgpIHsKICAgICAgICAgcmV0dXJuIHBhdGguY29udGVudExvZ2ljYWxUb3AoKTsKICAg
ICB9KTsKIH0KIAotaW5saW5lIExheW91dFVuaXQgTGluZTo6Y29udGVudExvZ2ljYWxCb3R0b20o
KSBjb25zdAoraW5saW5lIGZsb2F0IExpbmU6OmNvbnRlbnRMb2dpY2FsQm90dG9tKCkgY29uc3QK
IHsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShjb25zdCBhdXRv
JiBwYXRoKSB7CiAgICAgICAgIHJldHVybiBwYXRoLmNvbnRlbnRMb2dpY2FsQm90dG9tKCk7CiAg
ICAgfSk7CiB9CiAKLWlubGluZSBMYXlvdXRVbml0IExpbmU6OmNvbnRlbnRMb2dpY2FsVG9wQWRq
dXN0ZWRGb3JQcmVjZWRpbmdMaW5lKCkgY29uc3QKK2lubGluZSBmbG9hdCBMaW5lOjpjb250ZW50
TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oY29uc3QgYXV0byYgcGF0aCkgewogICAg
ICAgICByZXR1cm4gcGF0aC5jb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGlu
ZSgpOwogICAgIH0pOwogfQogCi1pbmxpbmUgTGF5b3V0VW5pdCBMaW5lOjpjb250ZW50TG9naWNh
bFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZygpIGNvbnN0CitpbmxpbmUgZmxvYXQgTGluZTo6Y29u
dGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3RpbmcoKSBjb25zdAogewogICAgIHJldHVy
biBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8mIHBhdGgpIHsKICAg
ICAgICAgcmV0dXJuIHBhdGguY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3Rpbmco
KTsKICAgICB9KTsKIH0KIAotaW5saW5lIExheW91dFVuaXQgTGluZTo6Y29udGVudExvZ2ljYWxC
b3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKSBjb25zdAoraW5saW5lIGZsb2F0IExpbmU6
OmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShjb25zdCBhdXRvJiBw
YXRoKSB7CiAgICAgICAgIHJldHVybiBwYXRoLmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRG
b3JGb2xsb3dpbmdMaW5lKCk7CiAgICAgfSk7CiB9CiAKLWlubGluZSBMYXlvdXRVbml0IExpbmU6
OmxpbmVCb3hUb3AoKSBjb25zdAoraW5saW5lIGZsb2F0IExpbmU6OmxpbmVCb3hUb3AoKSBjb25z
dAogewogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1
dG8mIHBhdGgpIHsKICAgICAgICAgcmV0dXJuIHBhdGgubGluZUJveFRvcCgpOwogICAgIH0pOwog
fQogCi1pbmxpbmUgTGF5b3V0VW5pdCBMaW5lOjpsaW5lQm94Qm90dG9tKCkgY29uc3QKK2lubGlu
ZSBmbG9hdCBMaW5lOjpsaW5lQm94Qm90dG9tKCkgY29uc3QKIHsKICAgICByZXR1cm4gV1RGOjpz
d2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShjb25zdCBhdXRvJiBwYXRoKSB7CiAgICAgICAgIHJl
dHVybiBwYXRoLmxpbmVCb3hCb3R0b20oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmVMZWdhY3lQYXRoLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lTGVnYWN5UGF0aC5o
CmluZGV4IGZjM2Y0ZjQyMzIyMDg3MTQ2NGRhMWU2YWJiYThiZGNhY2M2ZTk5ZmQuLjYzNmUwNGZk
ODljZGNiNmJkODFhMTkyMzk1MzNhOTI5YmIyNTYyY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmVMZWdhY3lQYXRoLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZUxl
Z2FjeVBhdGguaApAQCAtNDMsMTMgKzQzLDEzIEBAIHB1YmxpYzoKICAgICBMaW5lSXRlcmF0b3JM
ZWdhY3lQYXRoJiBvcGVyYXRvcj0oY29uc3QgTGluZUl0ZXJhdG9yTGVnYWN5UGF0aCYpID0gZGVm
YXVsdDsKICAgICBMaW5lSXRlcmF0b3JMZWdhY3lQYXRoJiBvcGVyYXRvcj0oTGluZUl0ZXJhdG9y
TGVnYWN5UGF0aCYmKSA9IGRlZmF1bHQ7CiAKLSAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2Fs
VG9wKCkgY29uc3QgeyByZXR1cm4gbV9yb290SW5saW5lQm94LT5saW5lVG9wKCk7IH0KLSAgICBM
YXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsQm90dG9tKCkgY29uc3QgeyByZXR1cm4gbV9yb290SW5s
aW5lQm94LT5saW5lQm90dG9tKCk7IH0KLSAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsVG9w
QWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9yb290SW5saW5lQm94
LT5zZWxlY3Rpb25Ub3AoKTsgfQotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxUb3BBZGp1
c3RlZEZvckhpdFRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPnNlbGVj
dGlvblRvcChMZWdhY3lSb290SW5saW5lQm94OjpGb3JIaXRUZXN0aW5nOjpZZXMpOyB9Ci0gICAg
TGF5b3V0VW5pdCBjb250ZW50TG9naWNhbEJvdHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+c2VsZWN0aW9uQm90dG9tKCk7IH0KLSAg
ICBMYXlvdXRVbml0IGxpbmVCb3hUb3AoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gt
PmxpbmVCb3hUb3AoKTsgfQotICAgIExheW91dFVuaXQgbGluZUJveEJvdHRvbSgpIGNvbnN0IHsg
cmV0dXJuIG1fcm9vdElubGluZUJveC0+bGluZUJveEJvdHRvbSgpOyB9CisgICAgZmxvYXQgY29u
dGVudExvZ2ljYWxUb3AoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPmxpbmVUb3Ao
KS50b0Zsb2F0KCk7IH0KKyAgICBmbG9hdCBjb250ZW50TG9naWNhbEJvdHRvbSgpIGNvbnN0IHsg
cmV0dXJuIG1fcm9vdElubGluZUJveC0+bGluZUJvdHRvbSgpLnRvRmxvYXQoKTsgfQorICAgIGZs
b2F0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5lKCkgY29uc3QgeyBy
ZXR1cm4gbV9yb290SW5saW5lQm94LT5zZWxlY3Rpb25Ub3AoKS50b0Zsb2F0KCk7IH0KKyAgICBm
bG9hdCBjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZygpIGNvbnN0IHsgcmV0
dXJuIG1fcm9vdElubGluZUJveC0+c2VsZWN0aW9uVG9wKExlZ2FjeVJvb3RJbmxpbmVCb3g6OkZv
ckhpdFRlc3Rpbmc6OlllcykudG9GbG9hdCgpOyB9CisgICAgZmxvYXQgY29udGVudExvZ2ljYWxC
b3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxp
bmVCb3gtPnNlbGVjdGlvbkJvdHRvbSgpLnRvRmxvYXQoKTsgfQorICAgIGZsb2F0IGxpbmVCb3hU
b3AoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPmxpbmVCb3hUb3AoKS50b0Zsb2F0
KCk7IH0KKyAgICBmbG9hdCBsaW5lQm94Qm90dG9tKCkgY29uc3QgeyByZXR1cm4gbV9yb290SW5s
aW5lQm94LT5saW5lQm94Qm90dG9tKCkudG9GbG9hdCgpOyB9CiAKICAgICBmbG9hdCBjb250ZW50
TG9naWNhbExlZnQoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPmxvZ2ljYWxMZWZ0
KCk7IH0KICAgICBmbG9hdCBjb250ZW50TG9naWNhbFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9y
b290SW5saW5lQm94LT5sb2dpY2FsUmlnaHQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZU1vZGVyblBhdGguaCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmVNb2Rlcm5Q
YXRoLmgKaW5kZXggNWRiMmMzYmYwM2I1OWI0NzgwYmNjNDQ1MjdlMDY2YzE0MWYwZThjNi4uMzc2
MTVlNWYxZTI1ZjUzMGIxMmZlODhmYTY4YTM4NmFlMjlmMWFiMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZU1vZGVyblBhdGgu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JM
aW5lTW9kZXJuUGF0aC5oCkBAIC00OSwxOCArNDksMTggQEAgcHVibGljOgogICAgIExpbmVJdGVy
YXRvck1vZGVyblBhdGgmIG9wZXJhdG9yPShjb25zdCBMaW5lSXRlcmF0b3JNb2Rlcm5QYXRoJikg
PSBkZWZhdWx0OwogICAgIExpbmVJdGVyYXRvck1vZGVyblBhdGgmIG9wZXJhdG9yPShMaW5lSXRl
cmF0b3JNb2Rlcm5QYXRoJiYpID0gZGVmYXVsdDsKIAotICAgIExheW91dFVuaXQgY29udGVudExv
Z2ljYWxUb3AoKSBjb25zdCB7IHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRSb3VuZChsaW5l
KCkuZW5jbG9zaW5nQ29udGVudFRvcCgpKTsgfQotICAgIExheW91dFVuaXQgY29udGVudExvZ2lj
YWxCb3R0b20oKSBjb25zdCB7IHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRSb3VuZChsaW5l
KCkuZW5jbG9zaW5nQ29udGVudEJvdHRvbSgpKTsgfQotICAgIExheW91dFVuaXQgbGluZUJveFRv
cCgpIGNvbnN0IHsgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdFJvdW5kKGxpbmUoKS5saW5l
Qm94VG9wKCkpOyB9Ci0gICAgTGF5b3V0VW5pdCBsaW5lQm94Qm90dG9tKCkgY29uc3QgeyByZXR1
cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Um91bmQobGluZSgpLmxpbmVCb3hCb3R0b20oKSk7IH0K
KyAgICBmbG9hdCBjb250ZW50TG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIGxpbmUoKS5lbmNs
b3NpbmdDb250ZW50VG9wKCk7IH0KKyAgICBmbG9hdCBjb250ZW50TG9naWNhbEJvdHRvbSgpIGNv
bnN0IHsgcmV0dXJuIGxpbmUoKS5lbmNsb3NpbmdDb250ZW50Qm90dG9tKCk7IH0KKyAgICBmbG9h
dCBsaW5lQm94VG9wKCkgY29uc3QgeyByZXR1cm4gbGluZSgpLmxpbmVCb3hUb3AoKTsgfQorICAg
IGZsb2F0IGxpbmVCb3hCb3R0b20oKSBjb25zdCB7IHJldHVybiBsaW5lKCkubGluZUJveEJvdHRv
bSgpOyB9CiAKLSAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVj
ZWRpbmdMaW5lKCkgY29uc3QgeyByZXR1cm4gIW1fbGluZUluZGV4ID8gY29udGVudExvZ2ljYWxU
b3AoKSA6IExpbmVJdGVyYXRvck1vZGVyblBhdGgoKm1faW5saW5lQ29udGVudCwgbV9saW5lSW5k
ZXggLSAxKS5jb250ZW50TG9naWNhbEJvdHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgpOyB9
CisgICAgZmxvYXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSBj
b25zdCB7IHJldHVybiAhbV9saW5lSW5kZXggPyBjb250ZW50TG9naWNhbFRvcCgpIDogTGluZUl0
ZXJhdG9yTW9kZXJuUGF0aCgqbV9pbmxpbmVDb250ZW50LCBtX2xpbmVJbmRleCAtIDEpLmNvbnRl
bnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCk7IH0KICAgICAvLyBGSVhN
RTogUmVtb3ZlIHRoZSBjb250YWluaW5nQmxvY2soKS5ib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkg
b2Zmc2V0IGFmdGVyIHJldGlyaW5nIGxlZ2FjeSBsaW5lIGxheW91dC4gSXQgYWxzbyByZXF1aXJl
cyBjaGFuZ2VzIGluIFJlbmRlclRleHQ6OnBvc2l0aW9uRm9yUG9pbnQgdG8gZmluZCB0aGUgZmly
c3QgbGluZSB3aXRoIG9mZnNldC4KICAgICAvLyAtIHRoZSAiYmVmb3JlIiB2YWx1ZSBpcyBhbHJl
YWR5IGZhY3RvcmVkIGluIHRvIHRoZSBsaW5lIG9mZnNldAogICAgIC8vIC0gdGhpcyBsb2dpYyBu
ZWdhdGVzIHRoZSBmaXJzdCBsaW5lJ3MgbmF0dXJhbCBvZmZzZXQgKGUuZy4gYmxvY2sgaGFzIG5v
IGJvcmRlci9wYWRkaW5nIGJ1dCB0aGUgZmlyc3QgbGluZSBoYXMgYSBjb21wdXRlZCBvZmZzZXQp
LgotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3Rpbmco
KSBjb25zdCB7IHJldHVybiAhbV9saW5lSW5kZXggPyBjb250YWluaW5nQmxvY2soKS5ib3JkZXJB
bmRQYWRkaW5nQmVmb3JlKCkgOiBjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5n
TGluZSgpOyB9OworICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0
aW5nKCkgY29uc3QgeyByZXR1cm4gIW1fbGluZUluZGV4ID8gY29udGFpbmluZ0Jsb2NrKCkuYm9y
ZGVyQW5kUGFkZGluZ0JlZm9yZSgpLnRvRmxvYXQoKSA6IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0
ZWRGb3JQcmVjZWRpbmdMaW5lKCk7IH07CiAgICAgLy8gRklYTUU6IEltcGxlbWVudC4KLSAgICBM
YXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCkg
Y29uc3QgeyByZXR1cm4gY29udGVudExvZ2ljYWxCb3R0b20oKTsgfQorICAgIGZsb2F0IGNvbnRl
bnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCkgY29uc3QgeyByZXR1cm4g
Y29udGVudExvZ2ljYWxCb3R0b20oKTsgfQogCiAgICAgZmxvYXQgY29udGVudExvZ2ljYWxMZWZ0
KCkgY29uc3QgeyByZXR1cm4gbGluZSgpLmxpbmVCb3hMZWZ0KCkgKyBsaW5lKCkuY29udGVudExv
Z2ljYWxPZmZzZXQoKTsgfQogICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsUmlnaHQoKSBjb25zdCB7
IHJldHVybiBjb250ZW50TG9naWNhbExlZnQoKSArIGxpbmUoKS5jb250ZW50TG9naWNhbFdpZHRo
KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MaW5l
U2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGluZVNlbGVj
dGlvbi5oCmluZGV4IGYyYzg4M2UwMTcwYzFkNzFiYWY3NTk0YjlkY2E0NWM4NDdhNTU2MDQuLmMz
MmY2Zjk1NWIxNWM2ZGE4OGFhNjU3OTRjNzQ2NTIzODg5OTRlY2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MaW5lU2VsZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xpbmVTZWxlY3Rpb24uaApAQCAtMzIsMTUgKzMy
LDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTGluZVNlbGVjdGlvbiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIExheW91dFVuaXQgbG9naWNhbFRvcChjb25zdCBJbmxpbmVJdGVyYXRv
cjo6TGluZSYgbGluZSkgeyByZXR1cm4gbGluZS5jb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9y
UHJlY2VkaW5nTGluZSgpOyB9Ci0gICAgc3RhdGljIExheW91dFVuaXQgbG9naWNhbEJvdHRvbShj
b25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkgeyByZXR1cm4gbGluZS5jb250ZW50TG9n
aWNhbEJvdHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgpOyB9CisgICAgc3RhdGljIGZsb2F0
IGxvZ2ljYWxUb3AoY29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUpIHsgcmV0dXJuIGxp
bmUuY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKTsgfQorICAgIHN0
YXRpYyBmbG9hdCBsb2dpY2FsQm90dG9tKGNvbnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5l
KSB7IHJldHVybiBsaW5lLmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdM
aW5lKCk7IH0KIAotICAgIHN0YXRpYyBMYXlvdXRSZWN0IGxvZ2ljYWxSZWN0KGNvbnN0IElubGlu
ZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKQorICAgIHN0YXRpYyBGbG9hdFJlY3QgbG9naWNhbFJlY3Qo
Y29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUpCiAgICAgewotICAgICAgICByZXR1cm4g
eyBMYXlvdXRQb2ludCB7IGxpbmUuY29udGVudExvZ2ljYWxMZWZ0KCksIGxpbmUuY29udGVudExv
Z2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSB9LCBMYXlvdXRQb2ludCB7IGxpbmUu
Y29udGVudExvZ2ljYWxSaWdodCgpLCBsaW5lLmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRG
b3JGb2xsb3dpbmdMaW5lKCkgfSB9OworICAgICAgICByZXR1cm4geyBGbG9hdFBvaW50IHsgbGlu
ZS5jb250ZW50TG9naWNhbExlZnQoKSwgbGluZS5jb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9y
UHJlY2VkaW5nTGluZSgpIH0sIEZsb2F0UG9pbnQgeyBsaW5lLmNvbnRlbnRMb2dpY2FsUmlnaHQo
KSwgbGluZS5jb250ZW50TG9naWNhbEJvdHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgpIH0g
fTsKICAgICB9CiAKLSAgICBzdGF0aWMgTGF5b3V0UmVjdCBwaHlzaWNhbFJlY3QoY29uc3QgSW5s
aW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUpCisgICAgc3RhdGljIEZsb2F0UmVjdCBwaHlzaWNhbFJl
Y3QoY29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUpCiAgICAgewogICAgICAgICBhdXRv
IHBoeXNpY2FsUmVjdCA9IGxvZ2ljYWxSZWN0KGxpbmUpOwogICAgICAgICBpZiAoIWxpbmUuaXNI
b3Jpem9udGFsKCkpCkBAIC00OSwxMCArNDksMTAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
cGh5c2ljYWxSZWN0OwogICAgIH0KIAotICAgIHN0YXRpYyBMYXlvdXRVbml0IGxvZ2ljYWxUb3BB
ZGp1c3RlZEZvclByZWNlZGluZ0Jsb2NrKGNvbnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5l
KQorICAgIHN0YXRpYyBmbG9hdCBsb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jayhj
b25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkKICAgICB7CiAgICAgICAgIC8vIEZJWE1F
OiBNb3ZlIGFkanVzdEVuY2xvc2luZ1RvcEZvclByZWNlZGluZ0Jsb2NrIGZyb20gUmVuZGVyQmxv
Y2tGbG93IHRvIGhlcmUuCi0gICAgICAgIHJldHVybiBsaW5lLmNvbnRhaW5pbmdCbG9jaygpLmFk
anVzdEVuY2xvc2luZ1RvcEZvclByZWNlZGluZ0Jsb2NrKGxpbmUuY29udGVudExvZ2ljYWxUb3BB
ZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSk7CisgICAgICAgIHJldHVybiBsaW5lLmNvbnRhaW5p
bmdCbG9jaygpLmFkanVzdEVuY2xvc2luZ1RvcEZvclByZWNlZGluZ0Jsb2NrKExheW91dFVuaXQg
eyBsaW5lLmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5lKCkgfSk7CiAg
ICAgfQogCiAgICAgc3RhdGljIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgc2VsZWN0aW9u
U3RhdGUoY29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDNjMDMxYjM3Mzc5ZTkzNzY1ZTEw
YWUyNDZlY2QyM2VlYjZhYTBmMzMuLjAzMjU5ZWYzNWYyNzBiYzlkNGFjNTY1NmRiZWQxZTk4MTJj
ZGJkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zs
b3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3Bw
CkBAIC0zMDY3LDcgKzMwNjcsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrRmxvdzo6YWRqdXN0
RW5jbG9zaW5nVG9wRm9yUHJlY2VkaW5nQmxvY2soTGF5b3V0VW5pdCB0b3ApCiAgICAgICAgICAg
ICByZXR1cm4gdG9wOwogCiAgICAgICAgIGF1dG8gbGFzdExpbmVTZWxlY3Rpb25Cb3R0b20gPSBM
aW5lU2VsZWN0aW9uOjpsb2dpY2FsQm90dG9tKCpsYXN0TGluZSkgKyBvZmZzZXRUb0Jsb2NrQmVm
b3JlLmhlaWdodCgpOwotICAgICAgICB0b3AgPSBzdGQ6Om1heCh0b3AsIGxhc3RMaW5lU2VsZWN0
aW9uQm90dG9tKTsKKyAgICAgICAgdG9wID0gc3RkOjptYXgodG9wLCBMYXlvdXRVbml0IHsgbGFz
dExpbmVTZWxlY3Rpb25Cb3R0b20gfSk7CiAgICAgfQogICAgIHJldHVybiB0b3A7CiB9CkBAIC0z
MTY1LDggKzMxNjUsOCBAQCBHYXBSZWN0cyBSZW5kZXJCbG9ja0Zsb3c6OmlubGluZVNlbGVjdGlv
bkdhcHMoUmVuZGVyQmxvY2smIHJvb3RCbG9jaywgY29uc3QgTGF5bwogCiAgICAgLy8gTm93IHBh
aW50IHRoZSBnYXBzIGZvciB0aGUgbGluZXMuCiAgICAgZm9yICg7IGxpbmUgJiYgaGFzU2VsZWN0
ZWRDaGlsZHJlbihsaW5lKTsgbGluZS50cmF2ZXJzZU5leHQoKSkgewotICAgICAgICBhdXRvIHNl
bGVjdGlvblRvcCA9ICBMaW5lU2VsZWN0aW9uOjpsb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRp
bmdCbG9jaygqbGluZSk7Ci0gICAgICAgIGF1dG8gc2VsZWN0aW9uSGVpZ2h0ID0gc3RkOjptYXgo
MF9sdSwgTGluZVNlbGVjdGlvbjo6bG9naWNhbEJvdHRvbSgqbGluZSkgLSBzZWxlY3Rpb25Ub3Ap
OworICAgICAgICBhdXRvIHNlbGVjdGlvblRvcCA9ICBMYXlvdXRVbml0IHsgTGluZVNlbGVjdGlv
bjo6bG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nQmxvY2soKmxpbmUpIH07CisgICAgICAg
IGF1dG8gc2VsZWN0aW9uSGVpZ2h0ID0gTGF5b3V0VW5pdCB7IHN0ZDo6bWF4KDAuZiwgTGluZVNl
bGVjdGlvbjo6bG9naWNhbEJvdHRvbSgqbGluZSkgLSBzZWxlY3Rpb25Ub3ApIH07CiAKICAgICAg
ICAgaWYgKCFjb250YWluc1N0YXJ0ICYmICFsYXN0U2VsZWN0ZWRMaW5lICYmCiAgICAgICAgICAg
ICBzZWxlY3Rpb25TdGF0ZSgpICE9IEhpZ2hsaWdodFN0YXRlOjpTdGFydCAmJiBzZWxlY3Rpb25T
dGF0ZSgpICE9IEhpZ2hsaWdodFN0YXRlOjpCb3RoICYmICFpc1J1YnlCYXNlKCkpCkBAIC0zMTg4
LDcgKzMxODgsNyBAQCBHYXBSZWN0cyBSZW5kZXJCbG9ja0Zsb3c6OmlubGluZVNlbGVjdGlvbkdh
cHMoUmVuZGVyQmxvY2smIHJvb3RCbG9jaywgY29uc3QgTGF5bwogCiAgICAgaWYgKGxhc3RTZWxl
Y3RlZExpbmUgJiYgc2VsZWN0aW9uU3RhdGUoKSAhPSBIaWdobGlnaHRTdGF0ZTo6RW5kICYmIHNl
bGVjdGlvblN0YXRlKCkgIT0gSGlnaGxpZ2h0U3RhdGU6OkJvdGgpIHsKICAgICAgICAgLy8gVXBk
YXRlIG91ciBsYXN0WSB0byBiZSB0aGUgYm90dG9tIG9mIHRoZSBsYXN0IHNlbGVjdGVkIGxpbmUu
Ci0gICAgICAgIGF1dG8gbGFzdExpbmVTZWxlY3Rpb25Cb3R0b20gPSBMaW5lU2VsZWN0aW9uOjps
b2dpY2FsQm90dG9tKCpsYXN0U2VsZWN0ZWRMaW5lKTsKKyAgICAgICAgYXV0byBsYXN0TGluZVNl
bGVjdGlvbkJvdHRvbSA9IExheW91dFVuaXQgeyBMaW5lU2VsZWN0aW9uOjpsb2dpY2FsQm90dG9t
KCpsYXN0U2VsZWN0ZWRMaW5lKSB9OwogICAgICAgICBsYXN0TG9naWNhbFRvcCA9IGJsb2NrRGly
ZWN0aW9uT2Zmc2V0KHJvb3RCbG9jaywgb2Zmc2V0RnJvbVJvb3RCbG9jaykgKyBsYXN0TGluZVNl
bGVjdGlvbkJvdHRvbTsKICAgICAgICAgbGFzdExvZ2ljYWxMZWZ0ID0gbG9naWNhbExlZnRTZWxl
Y3Rpb25PZmZzZXQocm9vdEJsb2NrLCBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbSwgY2FjaGUpOwog
ICAgICAgICBsYXN0TG9naWNhbFJpZ2h0ID0gbG9naWNhbFJpZ2h0U2VsZWN0aW9uT2Zmc2V0KHJv
b3RCbG9jaywgbGFzdExpbmVTZWxlY3Rpb25Cb3R0b20sIGNhY2hlKTsKQEAgLTM0MjEsNyArMzQy
MSw3IEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJCbG9ja0Zsb3c6OnBvc2l0aW9uRm9yUG9pbnRX
aXRoSW5saW5lQ2hpbGRyZW4oY29uc3QgTGF5b3V0CiAKICAgICBpZiAoY2xvc2VzdEJveCkgewog
ICAgICAgICBpZiAobW92ZUNhcmV0VG9Cb3VuZGFyeSkgewotICAgICAgICAgICAgTGF5b3V0VW5p
dCBmaXJzdExpbmVXaXRoQ2hpbGRyZW5Ub3AgPSBzdGQ6Om1pbihmaXJzdExpbmVXaXRoQ2hpbGRy
ZW4tPmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0aW5nKCksIExheW91dFVuaXQo
Zmlyc3RMaW5lV2l0aENoaWxkcmVuLT5jb250ZW50TG9naWNhbFRvcCgpKSk7CisgICAgICAgICAg
ICBhdXRvIGZpcnN0TGluZVdpdGhDaGlsZHJlblRvcCA9IExheW91dFVuaXQgeyBzdGQ6Om1pbihm
aXJzdExpbmVXaXRoQ2hpbGRyZW4tPmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0
aW5nKCksIGZpcnN0TGluZVdpdGhDaGlsZHJlbi0+Y29udGVudExvZ2ljYWxUb3AoKSkgfTsKICAg
ICAgICAgICAgIGlmIChwb2ludEluTG9naWNhbENvbnRlbnRzLnkoKSA8IGZpcnN0TGluZVdpdGhD
aGlsZHJlblRvcAogICAgICAgICAgICAgICAgIHx8IChibG9ja3NBcmVGbGlwcGVkICYmIHBvaW50
SW5Mb2dpY2FsQ29udGVudHMueSgpID09IGZpcnN0TGluZVdpdGhDaGlsZHJlblRvcCkpIHsKICAg
ICAgICAgICAgICAgICBhdXRvIGJveCA9IGZpcnN0TGluZVdpdGhDaGlsZHJlbi0+Zmlyc3RMZWFm
Qm94KCk7CkBAIC0zNDc0LDggKzM0NzQsOCBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6YWRkRm9j
dXNSaW5nUmVjdHNGb3JJbmxpbmVDaGlsZHJlbihWZWN0b3I8TGF5b3V0UmVjdD4mIHJlYwogICAg
ICAgICBhdXRvIGxpbmUgPSBib3gtPmxpbmUoKTsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMg
bWl4aW5nIHBoeXNpY2FsIGFuZCBsb2dpY2FsIGNvb3JkaW5hdGVzLgogICAgICAgICBhdXRvIHVu
ZmxpcHBlZFZpc3VhbFJlY3QgPSBib3gtPnZpc3VhbFJlY3RJZ25vcmluZ0Jsb2NrRGlyZWN0aW9u
KCk7Ci0gICAgICAgIGF1dG8gdG9wID0gc3RkOjptYXgobGluZS0+Y29udGVudExvZ2ljYWxUb3Ao
KSwgTGF5b3V0VW5pdCB7IHVuZmxpcHBlZFZpc3VhbFJlY3QueSgpIH0pOwotICAgICAgICBhdXRv
IGJvdHRvbSA9IHN0ZDo6bWluKGxpbmUtPmNvbnRlbnRMb2dpY2FsQm90dG9tKCksIExheW91dFVu
aXQgeyB1bmZsaXBwZWRWaXN1YWxSZWN0Lm1heFkoKSB9KTsKKyAgICAgICAgYXV0byB0b3AgPSBz
dGQ6Om1heChsaW5lLT5jb250ZW50TG9naWNhbFRvcCgpLCB1bmZsaXBwZWRWaXN1YWxSZWN0Lnko
KSk7CisgICAgICAgIGF1dG8gYm90dG9tID0gc3RkOjptaW4obGluZS0+Y29udGVudExvZ2ljYWxC
b3R0b20oKSwgdW5mbGlwcGVkVmlzdWFsUmVjdC5tYXhZKCkpOwogICAgICAgICBhdXRvIHJlY3Qg
PSBMYXlvdXRSZWN0IHsgTGF5b3V0VW5pdCB7IGFkZGl0aW9uYWxPZmZzZXQueCgpICsgdW5mbGlw
cGVkVmlzdWFsUmVjdC54KCkgfQogICAgICAgICAgICAgLCBhZGRpdGlvbmFsT2Zmc2V0LnkoKSAr
IHRvcAogICAgICAgICAgICAgLCBMYXlvdXRVbml0IHsgdW5mbGlwcGVkVmlzdWFsUmVjdC53aWR0
aCgpIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggYzNm
NTY3YTU5YzZjNjM0NTAxNmE0ODFmNmMwM2IyYmJiMDM3YjJiNi4uYWI4NGYxNTY5M2I1YTQwYTAw
NWViYWYxZTFkZGRhZDc0N2U1NzYxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5jcHAKQEAgLTk3NCw4ICs5NzQsOCBAQCB2b2lkIFJlbmRlcklubGluZTo6cGFpbnRP
dXRsaW5lKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZgog
CiAgICAgZm9yIChhdXRvIGJveCA9IElubGluZUl0ZXJhdG9yOjpmaXJzdElubGluZUJveEZvcigq
dGhpcyk7IGJveDsgYm94LnRyYXZlcnNlTmV4dElubGluZUJveCgpKSB7CiAgICAgICAgIGF1dG8g
bGluZSA9IGJveC0+bGluZSgpOwotICAgICAgICBhdXRvIHRvcCA9IHN0ZDo6bWF4KGxpbmUtPmNv
bnRlbnRMb2dpY2FsVG9wKCksIExheW91dFVuaXQoYm94LT5sb2dpY2FsVG9wKCkpKTsKLSAgICAg
ICAgYXV0byBib3R0b20gPSBzdGQ6Om1pbihsaW5lLT5jb250ZW50TG9naWNhbEJvdHRvbSgpLCBM
YXlvdXRVbml0KGJveC0+bG9naWNhbEJvdHRvbSgpKSk7CisgICAgICAgIGF1dG8gdG9wID0gTGF5
b3V0VW5pdCB7IHN0ZDo6bWF4KGxpbmUtPmNvbnRlbnRMb2dpY2FsVG9wKCksIGJveC0+bG9naWNh
bFRvcCgpKSB9OworICAgICAgICBhdXRvIGJvdHRvbSA9IExheW91dFVuaXQgeyBzdGQ6Om1pbihs
aW5lLT5jb250ZW50TG9naWNhbEJvdHRvbSgpLCBib3gtPmxvZ2ljYWxCb3R0b20oKSkgfTsKICAg
ICAgICAgLy8gRklYTUU6IFRoaXMgaXMgbWl4aW5nIHBoeXNpY2FsIGFuZCBsb2dpY2FsIGNvb3Jk
aW5hdGVzLgogICAgICAgICByZWN0cy5hcHBlbmQoeyBMYXlvdXRVbml0KGJveC0+dmlzdWFsUmVj
dElnbm9yaW5nQmxvY2tEaXJlY3Rpb24oKS54KCkpLCB0b3AsIExheW91dFVuaXQoYm94LT5sb2dp
Y2FsV2lkdGgoKSksIGJvdHRvbSAtIHRvcCB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCA1MzY2MmZkZjBhNzhhYWEyMDY3OTM3YzE1
N2I1MTE4NDZkNjkzNjdmLi40OTYyMTRiNmY3NWMyM2FmNTc2NzI0ZTQ4NWJlMTZhODhjZGQ5ZGE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTcx
OSw3ICs3MTksNyBAQCB2b2lkIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUHJlZmVycmVkTG9naWNh
bFdpZHRocygpCiAKIFZpc2libGVQb3NpdGlvbiBSZW5kZXJSZXBsYWNlZDo6cG9zaXRpb25Gb3JQ
b2ludChjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIGNvbnN0IFJlbmRlckZyYWdtZW50Q29udGFp
bmVyKiBmcmFnbWVudCkKIHsKLSAgICBhdXRvIFt0b3AsIGJvdHRvbV0gPSBbJl0geworICAgIGF1
dG8gW3RvcCwgYm90dG9tXSA9IFsmXSgpIC0+IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+IHsKICAg
ICAgICAgaWYgKGF1dG8gcnVuID0gSW5saW5lSXRlcmF0b3I6OmJveEZvcigqdGhpcykpIHsKICAg
ICAgICAgICAgIGF1dG8gbGluZSA9IHJ1bi0+bGluZSgpOwogICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bWFrZV9wYWlyKGxpbmUtPmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0aW5n
KCksIExpbmVTZWxlY3Rpb246OmxvZ2ljYWxCb3R0b20oKmxpbmUpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Qm94UGFpbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvVGV4dEJveFBhaW50ZXIuY3BwCmluZGV4IGU2ODc4YzI4ZDE5NWE4MjQ3NzQ1
OGJhZmJiYzgyN2JkMWFiNjA1ODEuLjk0MzJkNDJiNDQxYTQ3YTM1MDE2NjRmMTg4YjY2OGYxYzg4
NTNlNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Qm94UGFpbnRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRCb3hQYWludGVyLmNwcApA
QCAtMjk1LDcgKzI5NSw3IEBAIHZvaWQgVGV4dEJveFBhaW50ZXI6OnBhaW50QmFja2dyb3VuZCh1
bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBjCiAgICAgLy8gVXNlIHNh
bWUgeSBwb3NpdGlvbmluZyBhbmQgaGVpZ2h0IGFzIGZvciBzZWxlY3Rpb24sIHNvIHRoYXQgd2hl
biB0aGUgc2VsZWN0aW9uIGFuZCB0aGlzIHN1YnJhbmdlIGFyZSBvbgogICAgIC8vIHRoZSBzYW1l
IHdvcmQgdGhlcmUgYXJlIG5vIHBpZWNlcyBzdGlja2luZyBvdXQuCiAgICAgYXV0byBkZWx0YVkg
PSBMYXlvdXRVbml0IHsgbV9zdHlsZS5pc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKCkgPyBzZWxl
Y3Rpb25Cb3R0b20gLSB0ZXh0Qm94KCkubG9naWNhbEJvdHRvbSgpIDogdGV4dEJveCgpLmxvZ2lj
YWxUb3AoKSAtIHNlbGVjdGlvblRvcCB9OwotICAgIGF1dG8gc2VsZWN0aW9uSGVpZ2h0ID0gTGF5
b3V0VW5pdCB7IHN0ZDo6bWF4KDBfbHUsIHNlbGVjdGlvbkJvdHRvbSAtIHNlbGVjdGlvblRvcCkg
fTsKKyAgICBhdXRvIHNlbGVjdGlvbkhlaWdodCA9IExheW91dFVuaXQgeyBzdGQ6Om1heCgwLmYs
IHNlbGVjdGlvbkJvdHRvbSAtIHNlbGVjdGlvblRvcCkgfTsKICAgICBhdXRvIHNlbGVjdGlvblJl
Y3QgPSBMYXlvdXRSZWN0IHsgTGF5b3V0VW5pdChtX3BhaW50UmVjdC54KCkpLCBMYXlvdXRVbml0
KG1fcGFpbnRSZWN0LnkoKSAtIGRlbHRhWSksIExheW91dFVuaXQodGV4dEJveCgpLmxvZ2ljYWxX
aWR0aCgpKSwgc2VsZWN0aW9uSGVpZ2h0IH07CiAgICAgZm9udENhc2NhZGUoKS5hZGp1c3RTZWxl
Y3Rpb25SZWN0Rm9yVGV4dChtX3BhaW50VGV4dFJ1biwgc2VsZWN0aW9uUmVjdCwgc3RhcnRPZmZz
ZXQsIGVuZE9mZnNldCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455163</attachid>
            <date>2022-03-18 21:26:57 -0700</date>
            <delta_ts>2022-03-19 14:05:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238106-20220318212656.patch</filename>
            <type>text/plain</type>
            <size>22190</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmFiZGY0NmRhZjA3N2Fi
N2RlNjI0MGY0NTkyODc2OWEzOTU1MGQyOC4uNWU0ZmZkZjFhMzg2N2ZkNGU3ODg1NDM2MGVmOTNh
YWI4MjM1OGZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIyLTAzLTE4ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbSUZDXVtJbnRlZ3JhdGlvbl0g
SW5saW5lSXRlcmF0b3I6OkxpbmUgZnVuY3Rpb25zIHNob3VsZCBhbGwgcmV0dXJuIGZsb2F0IHZh
bHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4
MTA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGlz
cGxheSBzdHJ1Y3R1cmVzIGFyZSBzdXBwb3NlZCB0byBiZSBhbGwgZmxvYXQgYmFzZWQuCisKKyAg
ICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmg6CisgICAgICAg
IChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZTo6bGluZUJveEhlaWdodCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6Y29udGVudFN0YXJ0SW5CbG9ja0RpcmVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZTo6Y29udGVudExv
Z2ljYWxUb3AgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmU6
OmNvbnRlbnRMb2dpY2FsQm90dG9tIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0
ZXJhdG9yOjpMaW5lOjpjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZTo6Y29udGVudExv
Z2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3RpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SW5saW5lSXRlcmF0b3I6OkxpbmU6OmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xs
b3dpbmdMaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5l
OjpsaW5lQm94VG9wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpM
aW5lOjpsaW5lQm94Qm90dG9tIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24v
SW5saW5lSXRlcmF0b3JMaW5lTGVnYWN5UGF0aC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5l
SXRlcmF0b3I6OkxpbmVJdGVyYXRvckxlZ2FjeVBhdGg6OmNvbnRlbnRMb2dpY2FsVG9wIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3JMZWdhY3lQ
YXRoOjpjb250ZW50TG9naWNhbEJvdHRvbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxp
bmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTGVnYWN5UGF0aDo6Y29udGVudExvZ2ljYWxUb3BBZGp1
c3RlZEZvclByZWNlZGluZ0xpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRl
cmF0b3I6OkxpbmVJdGVyYXRvckxlZ2FjeVBhdGg6OmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRG
b3JIaXRUZXN0aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpM
aW5lSXRlcmF0b3JMZWdhY3lQYXRoOjpjb250ZW50TG9naWNhbEJvdHRvbUFkanVzdGVkRm9yRm9s
bG93aW5nTGluZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGlu
ZUl0ZXJhdG9yTGVnYWN5UGF0aDo6bGluZUJveFRvcCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTGVnYWN5UGF0aDo6bGluZUJveEJvdHRvbSBj
b25zdCk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZU1v
ZGVyblBhdGguaDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0
b3JNb2Rlcm5QYXRoOjpjb250ZW50TG9naWNhbFRvcCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTW9kZXJuUGF0aDo6Y29udGVudExvZ2ljYWxC
b3R0b20gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmVJdGVy
YXRvck1vZGVyblBhdGg6OmxpbmVCb3hUb3AgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5s
aW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvck1vZGVyblBhdGg6OmxpbmVCb3hCb3R0b20gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvck1vZGVyblBh
dGg6OmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5lIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3JNb2Rlcm5QYXRoOjpj
b250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTW9kZXJuUGF0aDo6Y29udGVudExv
Z2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUgY29uc3QpOgorICAgICAgICAqIGxh
eW91dC9pbnRlZ3JhdGlvbi9MaW5lU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpMaW5l
U2VsZWN0aW9uOjpsb2dpY2FsVG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246
OmxvZ2ljYWxCb3R0b20pOgorICAgICAgICAoV2ViQ29yZTo6TGluZVNlbGVjdGlvbjo6bG9naWNh
bFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6TGluZVNlbGVjdGlvbjo6cGh5c2ljYWxSZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246OmxvZ2ljYWxUb3BBZGp1c3RlZEZvclBy
ZWNlZGluZ0Jsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6YWRqdXN0RW5jbG9zaW5nVG9wRm9y
UHJlY2VkaW5nQmxvY2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93
OjppbmxpbmVTZWxlY3Rpb25HYXBzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxv
dzo6cG9zaXRpb25Gb3JQb2ludFdpdGhJbmxpbmVDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9ja0Zsb3c6OmFkZEZvY3VzUmluZ1JlY3RzRm9ySW5saW5lQ2hpbGRyZW4pOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVySW5saW5lOjpwYWludE91dGxpbmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6cG9zaXRpb25G
b3JQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRCb3hQYWludGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRCb3hQYWludGVyOjpwYWludEJhY2tncm91bmQpOgorCiAyMDIyLTAz
LTE4ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbSUZDXVtJbnRl
Z3JhdGlvbl0gUmVtb3ZlIHJlZHVuZGFudCBJbmxpbmVJdGVyYXRvcjo6TGluZTo6Y2xvc2VzdEJv
eEZvclBvaW50IGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmgKaW5kZXggY2EyMjA4Zjg4ZGE0YWQyYTU4Y2Fm
MTI1YmViNWMwODU5ZTMxMDU0Ni4uNzEyZGU5YzkxMTI2YzQyMmE2MTYwNGUzM2U4ZDk1MjU2MmJm
NzM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGlu
ZUl0ZXJhdG9yTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9J
bmxpbmVJdGVyYXRvckxpbmUuaApAQCAtNTQsMjAgKzU0LDE5IEBAIHB1YmxpYzoKIAogICAgIExp
bmUoUGF0aFZhcmlhbnQmJik7CiAKLSAgICBMYXlvdXRVbml0IGxpbmVCb3hUb3AoKSBjb25zdDsK
LSAgICBMYXlvdXRVbml0IGxpbmVCb3hCb3R0b20oKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGxp
bmVCb3hIZWlnaHQoKSBjb25zdCB7IHJldHVybiBsaW5lQm94Qm90dG9tKCkgLSBsaW5lQm94VG9w
KCk7IH0KKyAgICBmbG9hdCBsaW5lQm94VG9wKCkgY29uc3Q7CisgICAgZmxvYXQgbGluZUJveEJv
dHRvbSgpIGNvbnN0OworICAgIGZsb2F0IGxpbmVCb3hIZWlnaHQoKSBjb25zdCB7IHJldHVybiBs
aW5lQm94Qm90dG9tKCkgLSBsaW5lQm94VG9wKCk7IH0KIAotICAgIC8vIEZJWE1FOiBNYWtlIHN1
cmUgd2UgdXNlIHRoZSBzYW1lIHR5cGUgZm9yIGNvbnRlbnQgZ2VvbWV0cnkuCi0gICAgTGF5b3V0
VW5pdCBjb250ZW50TG9naWNhbFRvcCgpIGNvbnN0OwotICAgIExheW91dFVuaXQgY29udGVudExv
Z2ljYWxCb3R0b20oKSBjb25zdDsKKyAgICBmbG9hdCBjb250ZW50TG9naWNhbFRvcCgpIGNvbnN0
OworICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsQm90dG9tKCkgY29uc3Q7CiAgICAgZmxvYXQgY29u
dGVudExvZ2ljYWxMZWZ0KCkgY29uc3Q7CiAgICAgZmxvYXQgY29udGVudExvZ2ljYWxSaWdodCgp
IGNvbnN0OwogICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsV2lkdGgoKSBjb25zdDsKIAotICAgIExh
eW91dFVuaXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3RpbmcoKSBjb25zdDsK
LSAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5l
KCkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbEJvdHRvbUFkanVzdGVkRm9y
Rm9sbG93aW5nTGluZSgpIGNvbnN0OworICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0
ZWRGb3JIaXRUZXN0aW5nKCkgY29uc3Q7CisgICAgZmxvYXQgY29udGVudExvZ2ljYWxUb3BBZGp1
c3RlZEZvclByZWNlZGluZ0xpbmUoKSBjb25zdDsKKyAgICBmbG9hdCBjb250ZW50TG9naWNhbEJv
dHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgpIGNvbnN0OwogCiAgICAgY29uc3QgUmVuZGVy
QmxvY2tGbG93JiBjb250YWluaW5nQmxvY2soKSBjb25zdDsKICAgICBSZW5kZXJGcmFnbWVudENv
bnRhaW5lciogY29udGFpbmluZ0ZyYWdtZW50KCkgY29uc3Q7CkBAIC0xMjMsNyArMTIyLDcgQEAg
TGluZUl0ZXJhdG9yIGxhc3RMaW5lRm9yKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYpOwogTGVhZkJv
eEl0ZXJhdG9yIGNsb3Nlc3RCb3hGb3JIb3Jpem9udGFsUG9zaXRpb24oY29uc3QgTGluZSYsIGZs
b2F0IGhvcml6b250YWxQb3NpdGlvbiwgYm9vbCBlZGl0YWJsZU9ubHkgPSBmYWxzZSk7CiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1pbmxpbmUg
TGF5b3V0VW5pdCBjb250ZW50U3RhcnRJbkJsb2NrRGlyZWN0aW9uKGNvbnN0IExpbmUmIGxpbmUp
CitpbmxpbmUgZmxvYXQgY29udGVudFN0YXJ0SW5CbG9ja0RpcmVjdGlvbihjb25zdCBMaW5lJiBs
aW5lKQogewogICAgIGlmICghbGluZS5jb250YWluaW5nQmxvY2soKS5zdHlsZSgpLmlzRmxpcHBl
ZEJsb2Nrc1dyaXRpbmdNb2RlKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om1heChsaW5lLmNvbnRl
bnRMb2dpY2FsVG9wKCksIGxpbmUuY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3Rp
bmcoKSk7CkBAIC0xMzUsNDkgKzEzNCw0OSBAQCBpbmxpbmUgTGluZTo6TGluZShQYXRoVmFyaWFu
dCYmIHBhdGgpCiB7CiB9CiAKLWlubGluZSBMYXlvdXRVbml0IExpbmU6OmNvbnRlbnRMb2dpY2Fs
VG9wKCkgY29uc3QKK2lubGluZSBmbG9hdCBMaW5lOjpjb250ZW50TG9naWNhbFRvcCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oY29uc3QgYXV0
byYgcGF0aCkgewogICAgICAgICByZXR1cm4gcGF0aC5jb250ZW50TG9naWNhbFRvcCgpOwogICAg
IH0pOwogfQogCi1pbmxpbmUgTGF5b3V0VW5pdCBMaW5lOjpjb250ZW50TG9naWNhbEJvdHRvbSgp
IGNvbnN0CitpbmxpbmUgZmxvYXQgTGluZTo6Y29udGVudExvZ2ljYWxCb3R0b20oKSBjb25zdAog
ewogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8m
IHBhdGgpIHsKICAgICAgICAgcmV0dXJuIHBhdGguY29udGVudExvZ2ljYWxCb3R0b20oKTsKICAg
ICB9KTsKIH0KIAotaW5saW5lIExheW91dFVuaXQgTGluZTo6Y29udGVudExvZ2ljYWxUb3BBZGp1
c3RlZEZvclByZWNlZGluZ0xpbmUoKSBjb25zdAoraW5saW5lIGZsb2F0IExpbmU6OmNvbnRlbnRM
b2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5lKCkgY29uc3QKIHsKICAgICByZXR1cm4g
V1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShjb25zdCBhdXRvJiBwYXRoKSB7CiAgICAg
ICAgIHJldHVybiBwYXRoLmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5l
KCk7CiAgICAgfSk7CiB9CiAKLWlubGluZSBMYXlvdXRVbml0IExpbmU6OmNvbnRlbnRMb2dpY2Fs
VG9wQWRqdXN0ZWRGb3JIaXRUZXN0aW5nKCkgY29uc3QKK2lubGluZSBmbG9hdCBMaW5lOjpjb250
ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oY29uc3QgYXV0byYgcGF0aCkgewogICAg
ICAgICByZXR1cm4gcGF0aC5jb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZygp
OwogICAgIH0pOwogfQogCi1pbmxpbmUgTGF5b3V0VW5pdCBMaW5lOjpjb250ZW50TG9naWNhbEJv
dHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgpIGNvbnN0CitpbmxpbmUgZmxvYXQgTGluZTo6
Y29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKSBjb25zdAogewog
ICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8mIHBh
dGgpIHsKICAgICAgICAgcmV0dXJuIHBhdGguY29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZv
ckZvbGxvd2luZ0xpbmUoKTsKICAgICB9KTsKIH0KIAotaW5saW5lIExheW91dFVuaXQgTGluZTo6
bGluZUJveFRvcCgpIGNvbnN0CitpbmxpbmUgZmxvYXQgTGluZTo6bGluZUJveFRvcCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oY29uc3QgYXV0
byYgcGF0aCkgewogICAgICAgICByZXR1cm4gcGF0aC5saW5lQm94VG9wKCk7CiAgICAgfSk7CiB9
CiAKLWlubGluZSBMYXlvdXRVbml0IExpbmU6OmxpbmVCb3hCb3R0b20oKSBjb25zdAoraW5saW5l
IGZsb2F0IExpbmU6OmxpbmVCb3hCb3R0b20oKSBjb25zdAogewogICAgIHJldHVybiBXVEY6OnN3
aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8mIHBhdGgpIHsKICAgICAgICAgcmV0
dXJuIHBhdGgubGluZUJveEJvdHRvbSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZUxlZ2FjeVBhdGguaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmVMZWdhY3lQYXRoLmgK
aW5kZXggZmMzZjRmNDIzMjIwODcxNDY0ZGExZTZhYmJhOGJkY2FjYzZlOTlmZC4uNjM2ZTA0ZmQ4
OWNkY2I2YmQ4MWExOTIzOTUzM2E5MjliYjI1NjJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZUxlZ2FjeVBhdGguaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lTGVn
YWN5UGF0aC5oCkBAIC00MywxMyArNDMsMTMgQEAgcHVibGljOgogICAgIExpbmVJdGVyYXRvckxl
Z2FjeVBhdGgmIG9wZXJhdG9yPShjb25zdCBMaW5lSXRlcmF0b3JMZWdhY3lQYXRoJikgPSBkZWZh
dWx0OwogICAgIExpbmVJdGVyYXRvckxlZ2FjeVBhdGgmIG9wZXJhdG9yPShMaW5lSXRlcmF0b3JM
ZWdhY3lQYXRoJiYpID0gZGVmYXVsdDsKIAotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxU
b3AoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPmxpbmVUb3AoKTsgfQotICAgIExh
eW91dFVuaXQgY29udGVudExvZ2ljYWxCb3R0b20oKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxp
bmVCb3gtPmxpbmVCb3R0b20oKTsgfQotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxUb3BB
ZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gt
PnNlbGVjdGlvblRvcCgpOyB9Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbFRvcEFkanVz
dGVkRm9ySGl0VGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+c2VsZWN0
aW9uVG9wKExlZ2FjeVJvb3RJbmxpbmVCb3g6OkZvckhpdFRlc3Rpbmc6Olllcyk7IH0KLSAgICBM
YXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCkg
Y29uc3QgeyByZXR1cm4gbV9yb290SW5saW5lQm94LT5zZWxlY3Rpb25Cb3R0b20oKTsgfQotICAg
IExheW91dFVuaXQgbGluZUJveFRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+
bGluZUJveFRvcCgpOyB9Ci0gICAgTGF5b3V0VW5pdCBsaW5lQm94Qm90dG9tKCkgY29uc3QgeyBy
ZXR1cm4gbV9yb290SW5saW5lQm94LT5saW5lQm94Qm90dG9tKCk7IH0KKyAgICBmbG9hdCBjb250
ZW50TG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+bGluZVRvcCgp
LnRvRmxvYXQoKTsgfQorICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsQm90dG9tKCkgY29uc3QgeyBy
ZXR1cm4gbV9yb290SW5saW5lQm94LT5saW5lQm90dG9tKCkudG9GbG9hdCgpOyB9CisgICAgZmxv
YXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSBjb25zdCB7IHJl
dHVybiBtX3Jvb3RJbmxpbmVCb3gtPnNlbGVjdGlvblRvcCgpLnRvRmxvYXQoKTsgfQorICAgIGZs
b2F0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0aW5nKCkgY29uc3QgeyByZXR1
cm4gbV9yb290SW5saW5lQm94LT5zZWxlY3Rpb25Ub3AoTGVnYWN5Um9vdElubGluZUJveDo6Rm9y
SGl0VGVzdGluZzo6WWVzKS50b0Zsb2F0KCk7IH0KKyAgICBmbG9hdCBjb250ZW50TG9naWNhbEJv
dHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGlu
ZUJveC0+c2VsZWN0aW9uQm90dG9tKCkudG9GbG9hdCgpOyB9CisgICAgZmxvYXQgbGluZUJveFRv
cCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+bGluZUJveFRvcCgpLnRvRmxvYXQo
KTsgfQorICAgIGZsb2F0IGxpbmVCb3hCb3R0b20oKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxp
bmVCb3gtPmxpbmVCb3hCb3R0b20oKS50b0Zsb2F0KCk7IH0KIAogICAgIGZsb2F0IGNvbnRlbnRM
b2dpY2FsTGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+bG9naWNhbExlZnQo
KTsgfQogICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3Jv
b3RJbmxpbmVCb3gtPmxvZ2ljYWxSaWdodCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lTW9kZXJuUGF0aC5oIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZU1vZGVyblBh
dGguaAppbmRleCA1ZGIyYzNiZjAzYjU5YjQ3ODBiY2M0NDUyN2UwNjZjMTQxZjBlOGM2Li4zNzYx
NWU1ZjFlMjVmNTMwYjEyZmU4OGZhNjhhMzg2YWUyOWYxYWIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lTW9kZXJuUGF0aC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxp
bmVNb2Rlcm5QYXRoLmgKQEAgLTQ5LDE4ICs0OSwxOCBAQCBwdWJsaWM6CiAgICAgTGluZUl0ZXJh
dG9yTW9kZXJuUGF0aCYgb3BlcmF0b3I9KGNvbnN0IExpbmVJdGVyYXRvck1vZGVyblBhdGgmKSA9
IGRlZmF1bHQ7CiAgICAgTGluZUl0ZXJhdG9yTW9kZXJuUGF0aCYgb3BlcmF0b3I9KExpbmVJdGVy
YXRvck1vZGVyblBhdGgmJikgPSBkZWZhdWx0OwogCi0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9n
aWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdFJvdW5kKGxpbmUo
KS5lbmNsb3NpbmdDb250ZW50VG9wKCkpOyB9Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNh
bEJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdFJvdW5kKGxpbmUo
KS5lbmNsb3NpbmdDb250ZW50Qm90dG9tKCkpOyB9Ci0gICAgTGF5b3V0VW5pdCBsaW5lQm94VG9w
KCkgY29uc3QgeyByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Um91bmQobGluZSgpLmxpbmVC
b3hUb3AoKSk7IH0KLSAgICBMYXlvdXRVbml0IGxpbmVCb3hCb3R0b20oKSBjb25zdCB7IHJldHVy
biBMYXlvdXRVbml0Ojpmcm9tRmxvYXRSb3VuZChsaW5lKCkubGluZUJveEJvdHRvbSgpKTsgfQor
ICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsVG9wKCkgY29uc3QgeyByZXR1cm4gbGluZSgpLmVuY2xv
c2luZ0NvbnRlbnRUb3AoKTsgfQorICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsQm90dG9tKCkgY29u
c3QgeyByZXR1cm4gbGluZSgpLmVuY2xvc2luZ0NvbnRlbnRCb3R0b20oKTsgfQorICAgIGZsb2F0
IGxpbmVCb3hUb3AoKSBjb25zdCB7IHJldHVybiBsaW5lKCkubGluZUJveFRvcCgpOyB9CisgICAg
ZmxvYXQgbGluZUJveEJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIGxpbmUoKS5saW5lQm94Qm90dG9t
KCk7IH0KIAotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNl
ZGluZ0xpbmUoKSBjb25zdCB7IHJldHVybiAhbV9saW5lSW5kZXggPyBjb250ZW50TG9naWNhbFRv
cCgpIDogTGluZUl0ZXJhdG9yTW9kZXJuUGF0aCgqbV9pbmxpbmVDb250ZW50LCBtX2xpbmVJbmRl
eCAtIDEpLmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCk7IH0K
KyAgICBmbG9hdCBjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSgpIGNv
bnN0IHsgcmV0dXJuICFtX2xpbmVJbmRleCA/IGNvbnRlbnRMb2dpY2FsVG9wKCkgOiBMaW5lSXRl
cmF0b3JNb2Rlcm5QYXRoKCptX2lubGluZUNvbnRlbnQsIG1fbGluZUluZGV4IC0gMSkuY29udGVu
dExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKTsgfQogICAgIC8vIEZJWE1F
OiBSZW1vdmUgdGhlIGNvbnRhaW5pbmdCbG9jaygpLmJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKSBv
ZmZzZXQgYWZ0ZXIgcmV0aXJpbmcgbGVnYWN5IGxpbmUgbGF5b3V0LiBJdCBhbHNvIHJlcXVpcmVz
IGNoYW5nZXMgaW4gUmVuZGVyVGV4dDo6cG9zaXRpb25Gb3JQb2ludCB0byBmaW5kIHRoZSBmaXJz
dCBsaW5lIHdpdGggb2Zmc2V0LgogICAgIC8vIC0gdGhlICJiZWZvcmUiIHZhbHVlIGlzIGFscmVh
ZHkgZmFjdG9yZWQgaW4gdG8gdGhlIGxpbmUgb2Zmc2V0CiAgICAgLy8gLSB0aGlzIGxvZ2ljIG5l
Z2F0ZXMgdGhlIGZpcnN0IGxpbmUncyBuYXR1cmFsIG9mZnNldCAoZS5nLiBibG9jayBoYXMgbm8g
Ym9yZGVyL3BhZGRpbmcgYnV0IHRoZSBmaXJzdCBsaW5lIGhhcyBhIGNvbXB1dGVkIG9mZnNldCku
Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZygp
IGNvbnN0IHsgcmV0dXJuICFtX2xpbmVJbmRleCA/IGNvbnRhaW5pbmdCbG9jaygpLmJvcmRlckFu
ZFBhZGRpbmdCZWZvcmUoKSA6IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdM
aW5lKCk7IH07CisgICAgZmxvYXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3Rp
bmcoKSBjb25zdCB7IHJldHVybiAhbV9saW5lSW5kZXggPyBjb250YWluaW5nQmxvY2soKS5ib3Jk
ZXJBbmRQYWRkaW5nQmVmb3JlKCkudG9GbG9hdCgpIDogY29udGVudExvZ2ljYWxUb3BBZGp1c3Rl
ZEZvclByZWNlZGluZ0xpbmUoKTsgfTsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50LgotICAgIExh
eW91dFVuaXQgY29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKSBj
b25zdCB7IHJldHVybiBjb250ZW50TG9naWNhbEJvdHRvbSgpOyB9CisgICAgZmxvYXQgY29udGVu
dExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKSBjb25zdCB7IHJldHVybiBj
b250ZW50TG9naWNhbEJvdHRvbSgpOyB9CiAKICAgICBmbG9hdCBjb250ZW50TG9naWNhbExlZnQo
KSBjb25zdCB7IHJldHVybiBsaW5lKCkubGluZUJveExlZnQoKSArIGxpbmUoKS5jb250ZW50TG9n
aWNhbE9mZnNldCgpOyB9CiAgICAgZmxvYXQgY29udGVudExvZ2ljYWxSaWdodCgpIGNvbnN0IHsg
cmV0dXJuIGNvbnRlbnRMb2dpY2FsTGVmdCgpICsgbGluZSgpLmNvbnRlbnRMb2dpY2FsV2lkdGgo
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xpbmVT
ZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MaW5lU2VsZWN0
aW9uLmgKaW5kZXggZjJjODgzZTAxNzBjMWQ3MWJhZjc1OTRiOWRjYTQ1Yzg0N2E1NTYwNC4uYzMy
ZjZmOTU1YjE1YzZkYTg4YWE2NTc5NGM3NDY1MjM4ODk5NGVjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xpbmVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGluZVNlbGVjdGlvbi5oCkBAIC0zMiwxNSArMzIs
MTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBMaW5lU2VsZWN0aW9uIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgTGF5b3V0VW5pdCBsb2dpY2FsVG9wKGNvbnN0IElubGluZUl0ZXJhdG9y
OjpMaW5lJiBsaW5lKSB7IHJldHVybiBsaW5lLmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQ
cmVjZWRpbmdMaW5lKCk7IH0KLSAgICBzdGF0aWMgTGF5b3V0VW5pdCBsb2dpY2FsQm90dG9tKGNv
bnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKSB7IHJldHVybiBsaW5lLmNvbnRlbnRMb2dp
Y2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCk7IH0KKyAgICBzdGF0aWMgZmxvYXQg
bG9naWNhbFRvcChjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkgeyByZXR1cm4gbGlu
ZS5jb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSgpOyB9CisgICAgc3Rh
dGljIGZsb2F0IGxvZ2ljYWxCb3R0b20oY29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUp
IHsgcmV0dXJuIGxpbmUuY29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xp
bmUoKTsgfQogCi0gICAgc3RhdGljIExheW91dFJlY3QgbG9naWNhbFJlY3QoY29uc3QgSW5saW5l
SXRlcmF0b3I6OkxpbmUmIGxpbmUpCisgICAgc3RhdGljIEZsb2F0UmVjdCBsb2dpY2FsUmVjdChj
b25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkKICAgICB7Ci0gICAgICAgIHJldHVybiB7
IExheW91dFBvaW50IHsgbGluZS5jb250ZW50TG9naWNhbExlZnQoKSwgbGluZS5jb250ZW50TG9n
aWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSgpIH0sIExheW91dFBvaW50IHsgbGluZS5j
b250ZW50TG9naWNhbFJpZ2h0KCksIGxpbmUuY29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZv
ckZvbGxvd2luZ0xpbmUoKSB9IH07CisgICAgICAgIHJldHVybiB7IEZsb2F0UG9pbnQgeyBsaW5l
LmNvbnRlbnRMb2dpY2FsTGVmdCgpLCBsaW5lLmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQ
cmVjZWRpbmdMaW5lKCkgfSwgRmxvYXRQb2ludCB7IGxpbmUuY29udGVudExvZ2ljYWxSaWdodCgp
LCBsaW5lLmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCkgfSB9
OwogICAgIH0KIAotICAgIHN0YXRpYyBMYXlvdXRSZWN0IHBoeXNpY2FsUmVjdChjb25zdCBJbmxp
bmVJdGVyYXRvcjo6TGluZSYgbGluZSkKKyAgICBzdGF0aWMgRmxvYXRSZWN0IHBoeXNpY2FsUmVj
dChjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkKICAgICB7CiAgICAgICAgIGF1dG8g
cGh5c2ljYWxSZWN0ID0gbG9naWNhbFJlY3QobGluZSk7CiAgICAgICAgIGlmICghbGluZS5pc0hv
cml6b250YWwoKSkKQEAgLTQ5LDEwICs0OSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBw
aHlzaWNhbFJlY3Q7CiAgICAgfQogCi0gICAgc3RhdGljIExheW91dFVuaXQgbG9naWNhbFRvcEFk
anVzdGVkRm9yUHJlY2VkaW5nQmxvY2soY29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUp
CisgICAgc3RhdGljIGZsb2F0IGxvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2NrKGNv
bnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKQogICAgIHsKICAgICAgICAgLy8gRklYTUU6
IE1vdmUgYWRqdXN0RW5jbG9zaW5nVG9wRm9yUHJlY2VkaW5nQmxvY2sgZnJvbSBSZW5kZXJCbG9j
a0Zsb3cgdG8gaGVyZS4KLSAgICAgICAgcmV0dXJuIGxpbmUuY29udGFpbmluZ0Jsb2NrKCkuYWRq
dXN0RW5jbG9zaW5nVG9wRm9yUHJlY2VkaW5nQmxvY2sobGluZS5jb250ZW50TG9naWNhbFRvcEFk
anVzdGVkRm9yUHJlY2VkaW5nTGluZSgpKTsKKyAgICAgICAgcmV0dXJuIGxpbmUuY29udGFpbmlu
Z0Jsb2NrKCkuYWRqdXN0RW5jbG9zaW5nVG9wRm9yUHJlY2VkaW5nQmxvY2soTGF5b3V0VW5pdCB7
IGxpbmUuY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSB9KTsKICAg
ICB9CiAKICAgICBzdGF0aWMgUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZSBzZWxlY3Rpb25T
dGF0ZShjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggM2MwMzFiMzczNzllOTM3NjVlMTBh
ZTI0NmVjZDIzZWViNmFhMGYzMy4uMDMyNTllZjM1ZjI3MGJjOWQ0YWM1NjU2ZGJlZDFlOTgxMmNk
YmQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxv
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAK
QEAgLTMwNjcsNyArMzA2Nyw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2tGbG93OjphZGp1c3RF
bmNsb3NpbmdUb3BGb3JQcmVjZWRpbmdCbG9jayhMYXlvdXRVbml0IHRvcCkKICAgICAgICAgICAg
IHJldHVybiB0b3A7CiAKICAgICAgICAgYXV0byBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbSA9IExp
bmVTZWxlY3Rpb246OmxvZ2ljYWxCb3R0b20oKmxhc3RMaW5lKSArIG9mZnNldFRvQmxvY2tCZWZv
cmUuaGVpZ2h0KCk7Ci0gICAgICAgIHRvcCA9IHN0ZDo6bWF4KHRvcCwgbGFzdExpbmVTZWxlY3Rp
b25Cb3R0b20pOworICAgICAgICB0b3AgPSBzdGQ6Om1heCh0b3AsIExheW91dFVuaXQgeyBsYXN0
TGluZVNlbGVjdGlvbkJvdHRvbSB9KTsKICAgICB9CiAgICAgcmV0dXJuIHRvcDsKIH0KQEAgLTMx
NjUsOCArMzE2NSw4IEBAIEdhcFJlY3RzIFJlbmRlckJsb2NrRmxvdzo6aW5saW5lU2VsZWN0aW9u
R2FwcyhSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvCiAKICAgICAvLyBOb3cgcGFp
bnQgdGhlIGdhcHMgZm9yIHRoZSBsaW5lcy4KICAgICBmb3IgKDsgbGluZSAmJiBoYXNTZWxlY3Rl
ZENoaWxkcmVuKGxpbmUpOyBsaW5lLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGF1dG8gc2Vs
ZWN0aW9uVG9wID0gIExpbmVTZWxlY3Rpb246OmxvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGlu
Z0Jsb2NrKCpsaW5lKTsKLSAgICAgICAgYXV0byBzZWxlY3Rpb25IZWlnaHQgPSBzdGQ6Om1heCgw
X2x1LCBMaW5lU2VsZWN0aW9uOjpsb2dpY2FsQm90dG9tKCpsaW5lKSAtIHNlbGVjdGlvblRvcCk7
CisgICAgICAgIGF1dG8gc2VsZWN0aW9uVG9wID0gIExheW91dFVuaXQgeyBMaW5lU2VsZWN0aW9u
Ojpsb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygqbGluZSkgfTsKKyAgICAgICAg
YXV0byBzZWxlY3Rpb25IZWlnaHQgPSBMYXlvdXRVbml0IHsgc3RkOjptYXgoMC5mLCBMaW5lU2Vs
ZWN0aW9uOjpsb2dpY2FsQm90dG9tKCpsaW5lKSAtIHNlbGVjdGlvblRvcCkgfTsKIAogICAgICAg
ICBpZiAoIWNvbnRhaW5zU3RhcnQgJiYgIWxhc3RTZWxlY3RlZExpbmUgJiYKICAgICAgICAgICAg
IHNlbGVjdGlvblN0YXRlKCkgIT0gSGlnaGxpZ2h0U3RhdGU6OlN0YXJ0ICYmIHNlbGVjdGlvblN0
YXRlKCkgIT0gSGlnaGxpZ2h0U3RhdGU6OkJvdGggJiYgIWlzUnVieUJhc2UoKSkKQEAgLTMxODgs
NyArMzE4OCw3IEBAIEdhcFJlY3RzIFJlbmRlckJsb2NrRmxvdzo6aW5saW5lU2VsZWN0aW9uR2Fw
cyhSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvCiAKICAgICBpZiAobGFzdFNlbGVj
dGVkTGluZSAmJiBzZWxlY3Rpb25TdGF0ZSgpICE9IEhpZ2hsaWdodFN0YXRlOjpFbmQgJiYgc2Vs
ZWN0aW9uU3RhdGUoKSAhPSBIaWdobGlnaHRTdGF0ZTo6Qm90aCkgewogICAgICAgICAvLyBVcGRh
dGUgb3VyIGxhc3RZIHRvIGJlIHRoZSBib3R0b20gb2YgdGhlIGxhc3Qgc2VsZWN0ZWQgbGluZS4K
LSAgICAgICAgYXV0byBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbSA9IExpbmVTZWxlY3Rpb246Omxv
Z2ljYWxCb3R0b20oKmxhc3RTZWxlY3RlZExpbmUpOworICAgICAgICBhdXRvIGxhc3RMaW5lU2Vs
ZWN0aW9uQm90dG9tID0gTGF5b3V0VW5pdCB7IExpbmVTZWxlY3Rpb246OmxvZ2ljYWxCb3R0b20o
Kmxhc3RTZWxlY3RlZExpbmUpIH07CiAgICAgICAgIGxhc3RMb2dpY2FsVG9wID0gYmxvY2tEaXJl
Y3Rpb25PZmZzZXQocm9vdEJsb2NrLCBvZmZzZXRGcm9tUm9vdEJsb2NrKSArIGxhc3RMaW5lU2Vs
ZWN0aW9uQm90dG9tOwogICAgICAgICBsYXN0TG9naWNhbExlZnQgPSBsb2dpY2FsTGVmdFNlbGVj
dGlvbk9mZnNldChyb290QmxvY2ssIGxhc3RMaW5lU2VsZWN0aW9uQm90dG9tLCBjYWNoZSk7CiAg
ICAgICAgIGxhc3RMb2dpY2FsUmlnaHQgPSBsb2dpY2FsUmlnaHRTZWxlY3Rpb25PZmZzZXQocm9v
dEJsb2NrLCBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbSwgY2FjaGUpOwpAQCAtMzQyMSw3ICszNDIx
LDcgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlckJsb2NrRmxvdzo6cG9zaXRpb25Gb3JQb2ludFdp
dGhJbmxpbmVDaGlsZHJlbihjb25zdCBMYXlvdXQKIAogICAgIGlmIChjbG9zZXN0Qm94KSB7CiAg
ICAgICAgIGlmIChtb3ZlQ2FyZXRUb0JvdW5kYXJ5KSB7Ci0gICAgICAgICAgICBMYXlvdXRVbml0
IGZpcnN0TGluZVdpdGhDaGlsZHJlblRvcCA9IHN0ZDo6bWluKGZpcnN0TGluZVdpdGhDaGlsZHJl
bi0+Y29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3RpbmcoKSwgTGF5b3V0VW5pdChm
aXJzdExpbmVXaXRoQ2hpbGRyZW4tPmNvbnRlbnRMb2dpY2FsVG9wKCkpKTsKKyAgICAgICAgICAg
IGF1dG8gZmlyc3RMaW5lV2l0aENoaWxkcmVuVG9wID0gTGF5b3V0VW5pdCB7IHN0ZDo6bWluKGZp
cnN0TGluZVdpdGhDaGlsZHJlbi0+Y29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3Rp
bmcoKSwgZmlyc3RMaW5lV2l0aENoaWxkcmVuLT5jb250ZW50TG9naWNhbFRvcCgpKSB9OwogICAg
ICAgICAgICAgaWYgKHBvaW50SW5Mb2dpY2FsQ29udGVudHMueSgpIDwgZmlyc3RMaW5lV2l0aENo
aWxkcmVuVG9wCiAgICAgICAgICAgICAgICAgfHwgKGJsb2Nrc0FyZUZsaXBwZWQgJiYgcG9pbnRJ
bkxvZ2ljYWxDb250ZW50cy55KCkgPT0gZmlyc3RMaW5lV2l0aENoaWxkcmVuVG9wKSkgewogICAg
ICAgICAgICAgICAgIGF1dG8gYm94ID0gZmlyc3RMaW5lV2l0aENoaWxkcmVuLT5maXJzdExlYWZC
b3goKTsKQEAgLTM0NzQsOCArMzQ3NCw4IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjphZGRGb2N1
c1JpbmdSZWN0c0ZvcklubGluZUNoaWxkcmVuKFZlY3RvcjxMYXlvdXRSZWN0PiYgcmVjCiAgICAg
ICAgIGF1dG8gbGluZSA9IGJveC0+bGluZSgpOwogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBt
aXhpbmcgcGh5c2ljYWwgYW5kIGxvZ2ljYWwgY29vcmRpbmF0ZXMuCiAgICAgICAgIGF1dG8gdW5m
bGlwcGVkVmlzdWFsUmVjdCA9IGJveC0+dmlzdWFsUmVjdElnbm9yaW5nQmxvY2tEaXJlY3Rpb24o
KTsKLSAgICAgICAgYXV0byB0b3AgPSBzdGQ6Om1heChsaW5lLT5jb250ZW50TG9naWNhbFRvcCgp
LCBMYXlvdXRVbml0IHsgdW5mbGlwcGVkVmlzdWFsUmVjdC55KCkgfSk7Ci0gICAgICAgIGF1dG8g
Ym90dG9tID0gc3RkOjptaW4obGluZS0+Y29udGVudExvZ2ljYWxCb3R0b20oKSwgTGF5b3V0VW5p
dCB7IHVuZmxpcHBlZFZpc3VhbFJlY3QubWF4WSgpIH0pOworICAgICAgICBhdXRvIHRvcCA9IHN0
ZDo6bWF4KGxpbmUtPmNvbnRlbnRMb2dpY2FsVG9wKCksIHVuZmxpcHBlZFZpc3VhbFJlY3QueSgp
KTsKKyAgICAgICAgYXV0byBib3R0b20gPSBzdGQ6Om1pbihsaW5lLT5jb250ZW50TG9naWNhbEJv
dHRvbSgpLCB1bmZsaXBwZWRWaXN1YWxSZWN0Lm1heFkoKSk7CiAgICAgICAgIGF1dG8gcmVjdCA9
IExheW91dFJlY3QgeyBMYXlvdXRVbml0IHsgYWRkaXRpb25hbE9mZnNldC54KCkgKyB1bmZsaXBw
ZWRWaXN1YWxSZWN0LngoKSB9CiAgICAgICAgICAgICAsIGFkZGl0aW9uYWxPZmZzZXQueSgpICsg
dG9wCiAgICAgICAgICAgICAsIExheW91dFVuaXQgeyB1bmZsaXBwZWRWaXN1YWxSZWN0LndpZHRo
KCkgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAppbmRleCBjM2Y1
NjdhNTljNmM2MzQ1MDE2YTQ4MWY2YzAzYjJiYmIwMzdiMmI2Li5hYjg0ZjE1NjkzYjVhNDBhMDA1
ZWJhZjFlMWRkZGFkNzQ3ZTU3NjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW5saW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW5saW5lLmNwcApAQCAtOTc0LDggKzk3NCw4IEBAIHZvaWQgUmVuZGVySW5saW5lOjpwYWludE91
dGxpbmUoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mCiAK
ICAgICBmb3IgKGF1dG8gYm94ID0gSW5saW5lSXRlcmF0b3I6OmZpcnN0SW5saW5lQm94Rm9yKCp0
aGlzKTsgYm94OyBib3gudHJhdmVyc2VOZXh0SW5saW5lQm94KCkpIHsKICAgICAgICAgYXV0byBs
aW5lID0gYm94LT5saW5lKCk7Ci0gICAgICAgIGF1dG8gdG9wID0gc3RkOjptYXgobGluZS0+Y29u
dGVudExvZ2ljYWxUb3AoKSwgTGF5b3V0VW5pdChib3gtPmxvZ2ljYWxUb3AoKSkpOwotICAgICAg
ICBhdXRvIGJvdHRvbSA9IHN0ZDo6bWluKGxpbmUtPmNvbnRlbnRMb2dpY2FsQm90dG9tKCksIExh
eW91dFVuaXQoYm94LT5sb2dpY2FsQm90dG9tKCkpKTsKKyAgICAgICAgYXV0byB0b3AgPSBMYXlv
dXRVbml0IHsgc3RkOjptYXgobGluZS0+Y29udGVudExvZ2ljYWxUb3AoKSwgYm94LT5sb2dpY2Fs
VG9wKCkpIH07CisgICAgICAgIGF1dG8gYm90dG9tID0gTGF5b3V0VW5pdCB7IHN0ZDo6bWluKGxp
bmUtPmNvbnRlbnRMb2dpY2FsQm90dG9tKCksIGJveC0+bG9naWNhbEJvdHRvbSgpKSB9OwogICAg
ICAgICAvLyBGSVhNRTogVGhpcyBpcyBtaXhpbmcgcGh5c2ljYWwgYW5kIGxvZ2ljYWwgY29vcmRp
bmF0ZXMuCiAgICAgICAgIHJlY3RzLmFwcGVuZCh7IExheW91dFVuaXQoYm94LT52aXN1YWxSZWN0
SWdub3JpbmdCbG9ja0RpcmVjdGlvbigpLngoKSksIHRvcCwgTGF5b3V0VW5pdChib3gtPmxvZ2lj
YWxXaWR0aCgpKSwgYm90dG9tIC0gdG9wIH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IDUzNjYyZmRmMGE3OGFhYTIwNjc5MzdjMTU3
YjUxMTg0NmQ2OTM2N2YuLjQ5NjIxNGI2Zjc1YzIzYWY1NzY3MjRlNDg1YmUxNmE4OGNkZDlkYTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcApAQCAtNzE5
LDcgKzcxOSw3IEBAIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2Fs
V2lkdGhzKCkKIAogVmlzaWJsZVBvc2l0aW9uIFJlbmRlclJlcGxhY2VkOjpwb3NpdGlvbkZvclBv
aW50KGNvbnN0IExheW91dFBvaW50JiBwb2ludCwgY29uc3QgUmVuZGVyRnJhZ21lbnRDb250YWlu
ZXIqIGZyYWdtZW50KQogewotICAgIGF1dG8gW3RvcCwgYm90dG9tXSA9IFsmXSB7CisgICAgYXV0
byBbdG9wLCBib3R0b21dID0gWyZdKCkgLT4gc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4gewogICAg
ICAgICBpZiAoYXV0byBydW4gPSBJbmxpbmVJdGVyYXRvcjo6Ym94Rm9yKCp0aGlzKSkgewogICAg
ICAgICAgICAgYXV0byBsaW5lID0gcnVuLT5saW5lKCk7CiAgICAgICAgICAgICByZXR1cm4gc3Rk
OjptYWtlX3BhaXIobGluZS0+Y29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3Rpbmco
KSwgTGluZVNlbGVjdGlvbjo6bG9naWNhbEJvdHRvbSgqbGluZSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRCb3hQYWludGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9UZXh0Qm94UGFpbnRlci5jcHAKaW5kZXggZTY4NzhjMjhkMTk1YTgyNDc3NDU4
YmFmYmJjODI3YmQxYWI2MDU4MS4uOTQzMmQ0MmI0NDFhNDdhMzUwMTY2NGYxODhiNjY4ZjFjODg1
M2U1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRCb3hQYWludGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEJveFBhaW50ZXIuY3BwCkBA
IC0yOTUsNyArMjk1LDcgQEAgdm9pZCBUZXh0Qm94UGFpbnRlcjo6cGFpbnRCYWNrZ3JvdW5kKHVu
c2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIGMKICAgICAvLyBVc2Ugc2Ft
ZSB5IHBvc2l0aW9uaW5nIGFuZCBoZWlnaHQgYXMgZm9yIHNlbGVjdGlvbiwgc28gdGhhdCB3aGVu
IHRoZSBzZWxlY3Rpb24gYW5kIHRoaXMgc3VicmFuZ2UgYXJlIG9uCiAgICAgLy8gdGhlIHNhbWUg
d29yZCB0aGVyZSBhcmUgbm8gcGllY2VzIHN0aWNraW5nIG91dC4KICAgICBhdXRvIGRlbHRhWSA9
IExheW91dFVuaXQgeyBtX3N0eWxlLmlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoKSA/IHNlbGVj
dGlvbkJvdHRvbSAtIHRleHRCb3goKS5sb2dpY2FsQm90dG9tKCkgOiB0ZXh0Qm94KCkubG9naWNh
bFRvcCgpIC0gc2VsZWN0aW9uVG9wIH07Ci0gICAgYXV0byBzZWxlY3Rpb25IZWlnaHQgPSBMYXlv
dXRVbml0IHsgc3RkOjptYXgoMF9sdSwgc2VsZWN0aW9uQm90dG9tIC0gc2VsZWN0aW9uVG9wKSB9
OworICAgIGF1dG8gc2VsZWN0aW9uSGVpZ2h0ID0gTGF5b3V0VW5pdCB7IHN0ZDo6bWF4KDAuZiwg
c2VsZWN0aW9uQm90dG9tIC0gc2VsZWN0aW9uVG9wKSB9OwogICAgIGF1dG8gc2VsZWN0aW9uUmVj
dCA9IExheW91dFJlY3QgeyBMYXlvdXRVbml0KG1fcGFpbnRSZWN0LngoKSksIExheW91dFVuaXQo
bV9wYWludFJlY3QueSgpIC0gZGVsdGFZKSwgTGF5b3V0VW5pdCh0ZXh0Qm94KCkubG9naWNhbFdp
ZHRoKCkpLCBzZWxlY3Rpb25IZWlnaHQgfTsKICAgICBmb250Q2FzY2FkZSgpLmFkanVzdFNlbGVj
dGlvblJlY3RGb3JUZXh0KG1fcGFpbnRUZXh0UnVuLCBzZWxlY3Rpb25SZWN0LCBzdGFydE9mZnNl
dCwgZW5kT2Zmc2V0KTsKIAo=
</data>
<flag name="commit-queue"
          id="483070"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455172</attachid>
            <date>2022-03-19 13:51:44 -0700</date>
            <delta_ts>2022-03-19 14:11:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238106-20220319135144.patch</filename>
            <type>text/plain</type>
            <size>23222</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWM3YTRhZjg3OGMyZmMy
ZTJmZDYyYmJkNmUyMGMyYTgwOGYxMmFlYS4uZTRiOTI2OTdkY2ZiZTNlOGU1NjM3OWZlNDdmMDU4
ODY1MTgzYTY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIyLTAzLTE5ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbSUZDXVtJbnRlZ3JhdGlvbl0g
SW5saW5lSXRlcmF0b3I6OkxpbmUgZnVuY3Rpb25zIHNob3VsZCBhbGwgcmV0dXJuIGZsb2F0IHZh
bHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4
MTA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgRGlz
cGxheSBzdHJ1Y3R1cmVzIGFyZSBzdXBwb3NlZCB0byBiZSBhbGwgZmxvYXQgYmFzZWQuCisKKyAg
ICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmg6CisgICAgICAg
IChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZTo6bGluZUJveEhlaWdodCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6Y29udGVudFN0YXJ0SW5CbG9ja0RpcmVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZTo6Y29udGVudExv
Z2ljYWxUb3AgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmU6
OmNvbnRlbnRMb2dpY2FsQm90dG9tIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0
ZXJhdG9yOjpMaW5lOjpjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZTo6Y29udGVudExv
Z2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3RpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SW5saW5lSXRlcmF0b3I6OkxpbmU6OmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xs
b3dpbmdMaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5l
OjpsaW5lQm94VG9wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpM
aW5lOjpsaW5lQm94Qm90dG9tIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24v
SW5saW5lSXRlcmF0b3JMaW5lTGVnYWN5UGF0aC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5l
SXRlcmF0b3I6OkxpbmVJdGVyYXRvckxlZ2FjeVBhdGg6OmNvbnRlbnRMb2dpY2FsVG9wIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3JMZWdhY3lQ
YXRoOjpjb250ZW50TG9naWNhbEJvdHRvbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxp
bmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTGVnYWN5UGF0aDo6Y29udGVudExvZ2ljYWxUb3BBZGp1
c3RlZEZvclByZWNlZGluZ0xpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRl
cmF0b3I6OkxpbmVJdGVyYXRvckxlZ2FjeVBhdGg6OmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRG
b3JIaXRUZXN0aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpM
aW5lSXRlcmF0b3JMZWdhY3lQYXRoOjpjb250ZW50TG9naWNhbEJvdHRvbUFkanVzdGVkRm9yRm9s
bG93aW5nTGluZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGlu
ZUl0ZXJhdG9yTGVnYWN5UGF0aDo6bGluZUJveFRvcCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTGVnYWN5UGF0aDo6bGluZUJveEJvdHRvbSBj
b25zdCk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZU1v
ZGVyblBhdGguaDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0
b3JNb2Rlcm5QYXRoOjpjb250ZW50TG9naWNhbFRvcCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTW9kZXJuUGF0aDo6Y29udGVudExvZ2ljYWxC
b3R0b20gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmVJdGVy
YXRvck1vZGVyblBhdGg6OmxpbmVCb3hUb3AgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5s
aW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvck1vZGVyblBhdGg6OmxpbmVCb3hCb3R0b20gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvck1vZGVyblBh
dGg6OmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5lIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3JNb2Rlcm5QYXRoOjpj
b250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTW9kZXJuUGF0aDo6Y29udGVudExv
Z2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUgY29uc3QpOgorICAgICAgICAqIGxh
eW91dC9pbnRlZ3JhdGlvbi9MaW5lU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpMaW5l
U2VsZWN0aW9uOjpsb2dpY2FsVG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246
OmxvZ2ljYWxCb3R0b20pOgorICAgICAgICAoV2ViQ29yZTo6TGluZVNlbGVjdGlvbjo6bG9naWNh
bFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6TGluZVNlbGVjdGlvbjo6cGh5c2ljYWxSZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246OmxvZ2ljYWxUb3BBZGp1c3RlZEZvclBy
ZWNlZGluZ0Jsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6YWRqdXN0RW5jbG9zaW5nVG9wRm9y
UHJlY2VkaW5nQmxvY2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93
OjppbmxpbmVTZWxlY3Rpb25HYXBzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxv
dzo6cG9zaXRpb25Gb3JQb2ludFdpdGhJbmxpbmVDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9ja0Zsb3c6OmFkZEZvY3VzUmluZ1JlY3RzRm9ySW5saW5lQ2hpbGRyZW4pOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVySW5saW5lOjpwYWludE91dGxpbmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6cG9zaXRpb25G
b3JQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRCb3hQYWludGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRCb3hQYWludGVyOjpwYWludEJhY2tncm91bmQpOgorCiAyMDIyLTAz
LTE5ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbSUZDXVtJbnRl
Z3JhdGlvbl0gUmVtb3ZlIHJlZHVuZGFudCBJbmxpbmVJdGVyYXRvcjo6TGluZTo6Y2xvc2VzdEJv
eEZvclBvaW50IGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmgKaW5kZXggY2EyMjA4Zjg4ZGE0YWQyYTU4Y2Fm
MTI1YmViNWMwODU5ZTMxMDU0Ni4uNzEyZGU5YzkxMTI2YzQyMmE2MTYwNGUzM2U4ZDk1MjU2MmJm
NzM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGlu
ZUl0ZXJhdG9yTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9J
bmxpbmVJdGVyYXRvckxpbmUuaApAQCAtNTQsMjAgKzU0LDE5IEBAIHB1YmxpYzoKIAogICAgIExp
bmUoUGF0aFZhcmlhbnQmJik7CiAKLSAgICBMYXlvdXRVbml0IGxpbmVCb3hUb3AoKSBjb25zdDsK
LSAgICBMYXlvdXRVbml0IGxpbmVCb3hCb3R0b20oKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGxp
bmVCb3hIZWlnaHQoKSBjb25zdCB7IHJldHVybiBsaW5lQm94Qm90dG9tKCkgLSBsaW5lQm94VG9w
KCk7IH0KKyAgICBmbG9hdCBsaW5lQm94VG9wKCkgY29uc3Q7CisgICAgZmxvYXQgbGluZUJveEJv
dHRvbSgpIGNvbnN0OworICAgIGZsb2F0IGxpbmVCb3hIZWlnaHQoKSBjb25zdCB7IHJldHVybiBs
aW5lQm94Qm90dG9tKCkgLSBsaW5lQm94VG9wKCk7IH0KIAotICAgIC8vIEZJWE1FOiBNYWtlIHN1
cmUgd2UgdXNlIHRoZSBzYW1lIHR5cGUgZm9yIGNvbnRlbnQgZ2VvbWV0cnkuCi0gICAgTGF5b3V0
VW5pdCBjb250ZW50TG9naWNhbFRvcCgpIGNvbnN0OwotICAgIExheW91dFVuaXQgY29udGVudExv
Z2ljYWxCb3R0b20oKSBjb25zdDsKKyAgICBmbG9hdCBjb250ZW50TG9naWNhbFRvcCgpIGNvbnN0
OworICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsQm90dG9tKCkgY29uc3Q7CiAgICAgZmxvYXQgY29u
dGVudExvZ2ljYWxMZWZ0KCkgY29uc3Q7CiAgICAgZmxvYXQgY29udGVudExvZ2ljYWxSaWdodCgp
IGNvbnN0OwogICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsV2lkdGgoKSBjb25zdDsKIAotICAgIExh
eW91dFVuaXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3RpbmcoKSBjb25zdDsK
LSAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5l
KCkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbEJvdHRvbUFkanVzdGVkRm9y
Rm9sbG93aW5nTGluZSgpIGNvbnN0OworICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0
ZWRGb3JIaXRUZXN0aW5nKCkgY29uc3Q7CisgICAgZmxvYXQgY29udGVudExvZ2ljYWxUb3BBZGp1
c3RlZEZvclByZWNlZGluZ0xpbmUoKSBjb25zdDsKKyAgICBmbG9hdCBjb250ZW50TG9naWNhbEJv
dHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgpIGNvbnN0OwogCiAgICAgY29uc3QgUmVuZGVy
QmxvY2tGbG93JiBjb250YWluaW5nQmxvY2soKSBjb25zdDsKICAgICBSZW5kZXJGcmFnbWVudENv
bnRhaW5lciogY29udGFpbmluZ0ZyYWdtZW50KCkgY29uc3Q7CkBAIC0xMjMsNyArMTIyLDcgQEAg
TGluZUl0ZXJhdG9yIGxhc3RMaW5lRm9yKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYpOwogTGVhZkJv
eEl0ZXJhdG9yIGNsb3Nlc3RCb3hGb3JIb3Jpem9udGFsUG9zaXRpb24oY29uc3QgTGluZSYsIGZs
b2F0IGhvcml6b250YWxQb3NpdGlvbiwgYm9vbCBlZGl0YWJsZU9ubHkgPSBmYWxzZSk7CiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1pbmxpbmUg
TGF5b3V0VW5pdCBjb250ZW50U3RhcnRJbkJsb2NrRGlyZWN0aW9uKGNvbnN0IExpbmUmIGxpbmUp
CitpbmxpbmUgZmxvYXQgY29udGVudFN0YXJ0SW5CbG9ja0RpcmVjdGlvbihjb25zdCBMaW5lJiBs
aW5lKQogewogICAgIGlmICghbGluZS5jb250YWluaW5nQmxvY2soKS5zdHlsZSgpLmlzRmxpcHBl
ZEJsb2Nrc1dyaXRpbmdNb2RlKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om1heChsaW5lLmNvbnRl
bnRMb2dpY2FsVG9wKCksIGxpbmUuY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3Rp
bmcoKSk7CkBAIC0xMzUsNDkgKzEzNCw0OSBAQCBpbmxpbmUgTGluZTo6TGluZShQYXRoVmFyaWFu
dCYmIHBhdGgpCiB7CiB9CiAKLWlubGluZSBMYXlvdXRVbml0IExpbmU6OmNvbnRlbnRMb2dpY2Fs
VG9wKCkgY29uc3QKK2lubGluZSBmbG9hdCBMaW5lOjpjb250ZW50TG9naWNhbFRvcCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oY29uc3QgYXV0
byYgcGF0aCkgewogICAgICAgICByZXR1cm4gcGF0aC5jb250ZW50TG9naWNhbFRvcCgpOwogICAg
IH0pOwogfQogCi1pbmxpbmUgTGF5b3V0VW5pdCBMaW5lOjpjb250ZW50TG9naWNhbEJvdHRvbSgp
IGNvbnN0CitpbmxpbmUgZmxvYXQgTGluZTo6Y29udGVudExvZ2ljYWxCb3R0b20oKSBjb25zdAog
ewogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8m
IHBhdGgpIHsKICAgICAgICAgcmV0dXJuIHBhdGguY29udGVudExvZ2ljYWxCb3R0b20oKTsKICAg
ICB9KTsKIH0KIAotaW5saW5lIExheW91dFVuaXQgTGluZTo6Y29udGVudExvZ2ljYWxUb3BBZGp1
c3RlZEZvclByZWNlZGluZ0xpbmUoKSBjb25zdAoraW5saW5lIGZsb2F0IExpbmU6OmNvbnRlbnRM
b2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5lKCkgY29uc3QKIHsKICAgICByZXR1cm4g
V1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShjb25zdCBhdXRvJiBwYXRoKSB7CiAgICAg
ICAgIHJldHVybiBwYXRoLmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5l
KCk7CiAgICAgfSk7CiB9CiAKLWlubGluZSBMYXlvdXRVbml0IExpbmU6OmNvbnRlbnRMb2dpY2Fs
VG9wQWRqdXN0ZWRGb3JIaXRUZXN0aW5nKCkgY29uc3QKK2lubGluZSBmbG9hdCBMaW5lOjpjb250
ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oY29uc3QgYXV0byYgcGF0aCkgewogICAg
ICAgICByZXR1cm4gcGF0aC5jb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZygp
OwogICAgIH0pOwogfQogCi1pbmxpbmUgTGF5b3V0VW5pdCBMaW5lOjpjb250ZW50TG9naWNhbEJv
dHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgpIGNvbnN0CitpbmxpbmUgZmxvYXQgTGluZTo6
Y29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKSBjb25zdAogewog
ICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8mIHBh
dGgpIHsKICAgICAgICAgcmV0dXJuIHBhdGguY29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZv
ckZvbGxvd2luZ0xpbmUoKTsKICAgICB9KTsKIH0KIAotaW5saW5lIExheW91dFVuaXQgTGluZTo6
bGluZUJveFRvcCgpIGNvbnN0CitpbmxpbmUgZmxvYXQgTGluZTo6bGluZUJveFRvcCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oY29uc3QgYXV0
byYgcGF0aCkgewogICAgICAgICByZXR1cm4gcGF0aC5saW5lQm94VG9wKCk7CiAgICAgfSk7CiB9
CiAKLWlubGluZSBMYXlvdXRVbml0IExpbmU6OmxpbmVCb3hCb3R0b20oKSBjb25zdAoraW5saW5l
IGZsb2F0IExpbmU6OmxpbmVCb3hCb3R0b20oKSBjb25zdAogewogICAgIHJldHVybiBXVEY6OnN3
aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8mIHBhdGgpIHsKICAgICAgICAgcmV0
dXJuIHBhdGgubGluZUJveEJvdHRvbSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZUxlZ2FjeVBhdGguaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmVMZWdhY3lQYXRoLmgK
aW5kZXggZmMzZjRmNDIzMjIwODcxNDY0ZGExZTZhYmJhOGJkY2FjYzZlOTlmZC4uNjM2ZTA0ZmQ4
OWNkY2I2YmQ4MWExOTIzOTUzM2E5MjliYjI1NjJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZUxlZ2FjeVBhdGguaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lTGVn
YWN5UGF0aC5oCkBAIC00MywxMyArNDMsMTMgQEAgcHVibGljOgogICAgIExpbmVJdGVyYXRvckxl
Z2FjeVBhdGgmIG9wZXJhdG9yPShjb25zdCBMaW5lSXRlcmF0b3JMZWdhY3lQYXRoJikgPSBkZWZh
dWx0OwogICAgIExpbmVJdGVyYXRvckxlZ2FjeVBhdGgmIG9wZXJhdG9yPShMaW5lSXRlcmF0b3JM
ZWdhY3lQYXRoJiYpID0gZGVmYXVsdDsKIAotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxU
b3AoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPmxpbmVUb3AoKTsgfQotICAgIExh
eW91dFVuaXQgY29udGVudExvZ2ljYWxCb3R0b20oKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxp
bmVCb3gtPmxpbmVCb3R0b20oKTsgfQotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxUb3BB
ZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gt
PnNlbGVjdGlvblRvcCgpOyB9Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbFRvcEFkanVz
dGVkRm9ySGl0VGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+c2VsZWN0
aW9uVG9wKExlZ2FjeVJvb3RJbmxpbmVCb3g6OkZvckhpdFRlc3Rpbmc6Olllcyk7IH0KLSAgICBM
YXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCkg
Y29uc3QgeyByZXR1cm4gbV9yb290SW5saW5lQm94LT5zZWxlY3Rpb25Cb3R0b20oKTsgfQotICAg
IExheW91dFVuaXQgbGluZUJveFRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+
bGluZUJveFRvcCgpOyB9Ci0gICAgTGF5b3V0VW5pdCBsaW5lQm94Qm90dG9tKCkgY29uc3QgeyBy
ZXR1cm4gbV9yb290SW5saW5lQm94LT5saW5lQm94Qm90dG9tKCk7IH0KKyAgICBmbG9hdCBjb250
ZW50TG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+bGluZVRvcCgp
LnRvRmxvYXQoKTsgfQorICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsQm90dG9tKCkgY29uc3QgeyBy
ZXR1cm4gbV9yb290SW5saW5lQm94LT5saW5lQm90dG9tKCkudG9GbG9hdCgpOyB9CisgICAgZmxv
YXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSBjb25zdCB7IHJl
dHVybiBtX3Jvb3RJbmxpbmVCb3gtPnNlbGVjdGlvblRvcCgpLnRvRmxvYXQoKTsgfQorICAgIGZs
b2F0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0aW5nKCkgY29uc3QgeyByZXR1
cm4gbV9yb290SW5saW5lQm94LT5zZWxlY3Rpb25Ub3AoTGVnYWN5Um9vdElubGluZUJveDo6Rm9y
SGl0VGVzdGluZzo6WWVzKS50b0Zsb2F0KCk7IH0KKyAgICBmbG9hdCBjb250ZW50TG9naWNhbEJv
dHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGlu
ZUJveC0+c2VsZWN0aW9uQm90dG9tKCkudG9GbG9hdCgpOyB9CisgICAgZmxvYXQgbGluZUJveFRv
cCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+bGluZUJveFRvcCgpLnRvRmxvYXQo
KTsgfQorICAgIGZsb2F0IGxpbmVCb3hCb3R0b20oKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxp
bmVCb3gtPmxpbmVCb3hCb3R0b20oKS50b0Zsb2F0KCk7IH0KIAogICAgIGZsb2F0IGNvbnRlbnRM
b2dpY2FsTGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+bG9naWNhbExlZnQo
KTsgfQogICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3Jv
b3RJbmxpbmVCb3gtPmxvZ2ljYWxSaWdodCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lTW9kZXJuUGF0aC5oIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZU1vZGVyblBh
dGguaAppbmRleCA1ZGIyYzNiZjAzYjU5YjQ3ODBiY2M0NDUyN2UwNjZjMTQxZjBlOGM2Li4zNzYx
NWU1ZjFlMjVmNTMwYjEyZmU4OGZhNjhhMzg2YWUyOWYxYWIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lTW9kZXJuUGF0aC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxp
bmVNb2Rlcm5QYXRoLmgKQEAgLTQ5LDE4ICs0OSwxOCBAQCBwdWJsaWM6CiAgICAgTGluZUl0ZXJh
dG9yTW9kZXJuUGF0aCYgb3BlcmF0b3I9KGNvbnN0IExpbmVJdGVyYXRvck1vZGVyblBhdGgmKSA9
IGRlZmF1bHQ7CiAgICAgTGluZUl0ZXJhdG9yTW9kZXJuUGF0aCYgb3BlcmF0b3I9KExpbmVJdGVy
YXRvck1vZGVyblBhdGgmJikgPSBkZWZhdWx0OwogCi0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9n
aWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdFJvdW5kKGxpbmUo
KS5lbmNsb3NpbmdDb250ZW50VG9wKCkpOyB9Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNh
bEJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdFJvdW5kKGxpbmUo
KS5lbmNsb3NpbmdDb250ZW50Qm90dG9tKCkpOyB9Ci0gICAgTGF5b3V0VW5pdCBsaW5lQm94VG9w
KCkgY29uc3QgeyByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Um91bmQobGluZSgpLmxpbmVC
b3hUb3AoKSk7IH0KLSAgICBMYXlvdXRVbml0IGxpbmVCb3hCb3R0b20oKSBjb25zdCB7IHJldHVy
biBMYXlvdXRVbml0Ojpmcm9tRmxvYXRSb3VuZChsaW5lKCkubGluZUJveEJvdHRvbSgpKTsgfQor
ICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsVG9wKCkgY29uc3QgeyByZXR1cm4gbGluZSgpLmVuY2xv
c2luZ0NvbnRlbnRUb3AoKTsgfQorICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsQm90dG9tKCkgY29u
c3QgeyByZXR1cm4gbGluZSgpLmVuY2xvc2luZ0NvbnRlbnRCb3R0b20oKTsgfQorICAgIGZsb2F0
IGxpbmVCb3hUb3AoKSBjb25zdCB7IHJldHVybiBsaW5lKCkubGluZUJveFRvcCgpOyB9CisgICAg
ZmxvYXQgbGluZUJveEJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIGxpbmUoKS5saW5lQm94Qm90dG9t
KCk7IH0KIAotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNl
ZGluZ0xpbmUoKSBjb25zdCB7IHJldHVybiAhbV9saW5lSW5kZXggPyBjb250ZW50TG9naWNhbFRv
cCgpIDogTGluZUl0ZXJhdG9yTW9kZXJuUGF0aCgqbV9pbmxpbmVDb250ZW50LCBtX2xpbmVJbmRl
eCAtIDEpLmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCk7IH0K
KyAgICBmbG9hdCBjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSgpIGNv
bnN0IHsgcmV0dXJuICFtX2xpbmVJbmRleCA/IGNvbnRlbnRMb2dpY2FsVG9wKCkgOiBMaW5lSXRl
cmF0b3JNb2Rlcm5QYXRoKCptX2lubGluZUNvbnRlbnQsIG1fbGluZUluZGV4IC0gMSkuY29udGVu
dExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKTsgfQogICAgIC8vIEZJWE1F
OiBSZW1vdmUgdGhlIGNvbnRhaW5pbmdCbG9jaygpLmJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKSBv
ZmZzZXQgYWZ0ZXIgcmV0aXJpbmcgbGVnYWN5IGxpbmUgbGF5b3V0LiBJdCBhbHNvIHJlcXVpcmVz
IGNoYW5nZXMgaW4gUmVuZGVyVGV4dDo6cG9zaXRpb25Gb3JQb2ludCB0byBmaW5kIHRoZSBmaXJz
dCBsaW5lIHdpdGggb2Zmc2V0LgogICAgIC8vIC0gdGhlICJiZWZvcmUiIHZhbHVlIGlzIGFscmVh
ZHkgZmFjdG9yZWQgaW4gdG8gdGhlIGxpbmUgb2Zmc2V0CiAgICAgLy8gLSB0aGlzIGxvZ2ljIG5l
Z2F0ZXMgdGhlIGZpcnN0IGxpbmUncyBuYXR1cmFsIG9mZnNldCAoZS5nLiBibG9jayBoYXMgbm8g
Ym9yZGVyL3BhZGRpbmcgYnV0IHRoZSBmaXJzdCBsaW5lIGhhcyBhIGNvbXB1dGVkIG9mZnNldCku
Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZygp
IGNvbnN0IHsgcmV0dXJuICFtX2xpbmVJbmRleCA/IGNvbnRhaW5pbmdCbG9jaygpLmJvcmRlckFu
ZFBhZGRpbmdCZWZvcmUoKSA6IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdM
aW5lKCk7IH07CisgICAgZmxvYXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3Rp
bmcoKSBjb25zdCB7IHJldHVybiAhbV9saW5lSW5kZXggPyBjb250YWluaW5nQmxvY2soKS5ib3Jk
ZXJBbmRQYWRkaW5nQmVmb3JlKCkudG9GbG9hdCgpIDogY29udGVudExvZ2ljYWxUb3BBZGp1c3Rl
ZEZvclByZWNlZGluZ0xpbmUoKTsgfTsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50LgotICAgIExh
eW91dFVuaXQgY29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKSBj
b25zdCB7IHJldHVybiBjb250ZW50TG9naWNhbEJvdHRvbSgpOyB9CisgICAgZmxvYXQgY29udGVu
dExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKSBjb25zdCB7IHJldHVybiBj
b250ZW50TG9naWNhbEJvdHRvbSgpOyB9CiAKICAgICBmbG9hdCBjb250ZW50TG9naWNhbExlZnQo
KSBjb25zdCB7IHJldHVybiBsaW5lKCkubGluZUJveExlZnQoKSArIGxpbmUoKS5jb250ZW50TG9n
aWNhbE9mZnNldCgpOyB9CiAgICAgZmxvYXQgY29udGVudExvZ2ljYWxSaWdodCgpIGNvbnN0IHsg
cmV0dXJuIGNvbnRlbnRMb2dpY2FsTGVmdCgpICsgbGluZSgpLmNvbnRlbnRMb2dpY2FsV2lkdGgo
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xpbmVT
ZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MaW5lU2VsZWN0
aW9uLmgKaW5kZXggZjJjODgzZTAxNzBjMWQ3MWJhZjc1OTRiOWRjYTQ1Yzg0N2E1NTYwNC4uYzMy
ZjZmOTU1YjE1YzZkYTg4YWE2NTc5NGM3NDY1MjM4ODk5NGVjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xpbmVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGluZVNlbGVjdGlvbi5oCkBAIC0zMiwxNSArMzIs
MTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBMaW5lU2VsZWN0aW9uIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgTGF5b3V0VW5pdCBsb2dpY2FsVG9wKGNvbnN0IElubGluZUl0ZXJhdG9y
OjpMaW5lJiBsaW5lKSB7IHJldHVybiBsaW5lLmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQ
cmVjZWRpbmdMaW5lKCk7IH0KLSAgICBzdGF0aWMgTGF5b3V0VW5pdCBsb2dpY2FsQm90dG9tKGNv
bnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKSB7IHJldHVybiBsaW5lLmNvbnRlbnRMb2dp
Y2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCk7IH0KKyAgICBzdGF0aWMgZmxvYXQg
bG9naWNhbFRvcChjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkgeyByZXR1cm4gbGlu
ZS5jb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSgpOyB9CisgICAgc3Rh
dGljIGZsb2F0IGxvZ2ljYWxCb3R0b20oY29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUp
IHsgcmV0dXJuIGxpbmUuY29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xp
bmUoKTsgfQogCi0gICAgc3RhdGljIExheW91dFJlY3QgbG9naWNhbFJlY3QoY29uc3QgSW5saW5l
SXRlcmF0b3I6OkxpbmUmIGxpbmUpCisgICAgc3RhdGljIEZsb2F0UmVjdCBsb2dpY2FsUmVjdChj
b25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkKICAgICB7Ci0gICAgICAgIHJldHVybiB7
IExheW91dFBvaW50IHsgbGluZS5jb250ZW50TG9naWNhbExlZnQoKSwgbGluZS5jb250ZW50TG9n
aWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSgpIH0sIExheW91dFBvaW50IHsgbGluZS5j
b250ZW50TG9naWNhbFJpZ2h0KCksIGxpbmUuY29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZv
ckZvbGxvd2luZ0xpbmUoKSB9IH07CisgICAgICAgIHJldHVybiB7IEZsb2F0UG9pbnQgeyBsaW5l
LmNvbnRlbnRMb2dpY2FsTGVmdCgpLCBsaW5lLmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQ
cmVjZWRpbmdMaW5lKCkgfSwgRmxvYXRQb2ludCB7IGxpbmUuY29udGVudExvZ2ljYWxSaWdodCgp
LCBsaW5lLmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCkgfSB9
OwogICAgIH0KIAotICAgIHN0YXRpYyBMYXlvdXRSZWN0IHBoeXNpY2FsUmVjdChjb25zdCBJbmxp
bmVJdGVyYXRvcjo6TGluZSYgbGluZSkKKyAgICBzdGF0aWMgRmxvYXRSZWN0IHBoeXNpY2FsUmVj
dChjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkKICAgICB7CiAgICAgICAgIGF1dG8g
cGh5c2ljYWxSZWN0ID0gbG9naWNhbFJlY3QobGluZSk7CiAgICAgICAgIGlmICghbGluZS5pc0hv
cml6b250YWwoKSkKQEAgLTQ5LDEwICs0OSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBw
aHlzaWNhbFJlY3Q7CiAgICAgfQogCi0gICAgc3RhdGljIExheW91dFVuaXQgbG9naWNhbFRvcEFk
anVzdGVkRm9yUHJlY2VkaW5nQmxvY2soY29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUp
CisgICAgc3RhdGljIGZsb2F0IGxvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2NrKGNv
bnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKQogICAgIHsKICAgICAgICAgLy8gRklYTUU6
IE1vdmUgYWRqdXN0RW5jbG9zaW5nVG9wRm9yUHJlY2VkaW5nQmxvY2sgZnJvbSBSZW5kZXJCbG9j
a0Zsb3cgdG8gaGVyZS4KLSAgICAgICAgcmV0dXJuIGxpbmUuY29udGFpbmluZ0Jsb2NrKCkuYWRq
dXN0RW5jbG9zaW5nVG9wRm9yUHJlY2VkaW5nQmxvY2sobGluZS5jb250ZW50TG9naWNhbFRvcEFk
anVzdGVkRm9yUHJlY2VkaW5nTGluZSgpKTsKKyAgICAgICAgcmV0dXJuIGxpbmUuY29udGFpbmlu
Z0Jsb2NrKCkuYWRqdXN0RW5jbG9zaW5nVG9wRm9yUHJlY2VkaW5nQmxvY2soTGF5b3V0VW5pdCB7
IGxpbmUuY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSB9KTsKICAg
ICB9CiAKICAgICBzdGF0aWMgUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZSBzZWxlY3Rpb25T
dGF0ZShjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggM2MwMzFiMzczNzllOTM3NjVlMTBh
ZTI0NmVjZDIzZWViNmFhMGYzMy4uMDMyNTllZjM1ZjI3MGJjOWQ0YWM1NjU2ZGJlZDFlOTgxMmNk
YmQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxv
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAK
QEAgLTMwNjcsNyArMzA2Nyw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2tGbG93OjphZGp1c3RF
bmNsb3NpbmdUb3BGb3JQcmVjZWRpbmdCbG9jayhMYXlvdXRVbml0IHRvcCkKICAgICAgICAgICAg
IHJldHVybiB0b3A7CiAKICAgICAgICAgYXV0byBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbSA9IExp
bmVTZWxlY3Rpb246OmxvZ2ljYWxCb3R0b20oKmxhc3RMaW5lKSArIG9mZnNldFRvQmxvY2tCZWZv
cmUuaGVpZ2h0KCk7Ci0gICAgICAgIHRvcCA9IHN0ZDo6bWF4KHRvcCwgbGFzdExpbmVTZWxlY3Rp
b25Cb3R0b20pOworICAgICAgICB0b3AgPSBzdGQ6Om1heCh0b3AsIExheW91dFVuaXQgeyBsYXN0
TGluZVNlbGVjdGlvbkJvdHRvbSB9KTsKICAgICB9CiAgICAgcmV0dXJuIHRvcDsKIH0KQEAgLTMx
NjUsOCArMzE2NSw4IEBAIEdhcFJlY3RzIFJlbmRlckJsb2NrRmxvdzo6aW5saW5lU2VsZWN0aW9u
R2FwcyhSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvCiAKICAgICAvLyBOb3cgcGFp
bnQgdGhlIGdhcHMgZm9yIHRoZSBsaW5lcy4KICAgICBmb3IgKDsgbGluZSAmJiBoYXNTZWxlY3Rl
ZENoaWxkcmVuKGxpbmUpOyBsaW5lLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGF1dG8gc2Vs
ZWN0aW9uVG9wID0gIExpbmVTZWxlY3Rpb246OmxvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGlu
Z0Jsb2NrKCpsaW5lKTsKLSAgICAgICAgYXV0byBzZWxlY3Rpb25IZWlnaHQgPSBzdGQ6Om1heCgw
X2x1LCBMaW5lU2VsZWN0aW9uOjpsb2dpY2FsQm90dG9tKCpsaW5lKSAtIHNlbGVjdGlvblRvcCk7
CisgICAgICAgIGF1dG8gc2VsZWN0aW9uVG9wID0gIExheW91dFVuaXQgeyBMaW5lU2VsZWN0aW9u
Ojpsb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygqbGluZSkgfTsKKyAgICAgICAg
YXV0byBzZWxlY3Rpb25IZWlnaHQgPSBMYXlvdXRVbml0IHsgc3RkOjptYXgoMC5mLCBMaW5lU2Vs
ZWN0aW9uOjpsb2dpY2FsQm90dG9tKCpsaW5lKSAtIHNlbGVjdGlvblRvcCkgfTsKIAogICAgICAg
ICBpZiAoIWNvbnRhaW5zU3RhcnQgJiYgIWxhc3RTZWxlY3RlZExpbmUgJiYKICAgICAgICAgICAg
IHNlbGVjdGlvblN0YXRlKCkgIT0gSGlnaGxpZ2h0U3RhdGU6OlN0YXJ0ICYmIHNlbGVjdGlvblN0
YXRlKCkgIT0gSGlnaGxpZ2h0U3RhdGU6OkJvdGggJiYgIWlzUnVieUJhc2UoKSkKQEAgLTMxODgs
NyArMzE4OCw3IEBAIEdhcFJlY3RzIFJlbmRlckJsb2NrRmxvdzo6aW5saW5lU2VsZWN0aW9uR2Fw
cyhSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvCiAKICAgICBpZiAobGFzdFNlbGVj
dGVkTGluZSAmJiBzZWxlY3Rpb25TdGF0ZSgpICE9IEhpZ2hsaWdodFN0YXRlOjpFbmQgJiYgc2Vs
ZWN0aW9uU3RhdGUoKSAhPSBIaWdobGlnaHRTdGF0ZTo6Qm90aCkgewogICAgICAgICAvLyBVcGRh
dGUgb3VyIGxhc3RZIHRvIGJlIHRoZSBib3R0b20gb2YgdGhlIGxhc3Qgc2VsZWN0ZWQgbGluZS4K
LSAgICAgICAgYXV0byBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbSA9IExpbmVTZWxlY3Rpb246Omxv
Z2ljYWxCb3R0b20oKmxhc3RTZWxlY3RlZExpbmUpOworICAgICAgICBhdXRvIGxhc3RMaW5lU2Vs
ZWN0aW9uQm90dG9tID0gTGF5b3V0VW5pdCB7IExpbmVTZWxlY3Rpb246OmxvZ2ljYWxCb3R0b20o
Kmxhc3RTZWxlY3RlZExpbmUpIH07CiAgICAgICAgIGxhc3RMb2dpY2FsVG9wID0gYmxvY2tEaXJl
Y3Rpb25PZmZzZXQocm9vdEJsb2NrLCBvZmZzZXRGcm9tUm9vdEJsb2NrKSArIGxhc3RMaW5lU2Vs
ZWN0aW9uQm90dG9tOwogICAgICAgICBsYXN0TG9naWNhbExlZnQgPSBsb2dpY2FsTGVmdFNlbGVj
dGlvbk9mZnNldChyb290QmxvY2ssIGxhc3RMaW5lU2VsZWN0aW9uQm90dG9tLCBjYWNoZSk7CiAg
ICAgICAgIGxhc3RMb2dpY2FsUmlnaHQgPSBsb2dpY2FsUmlnaHRTZWxlY3Rpb25PZmZzZXQocm9v
dEJsb2NrLCBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbSwgY2FjaGUpOwpAQCAtMzQyMSw3ICszNDIx
LDcgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlckJsb2NrRmxvdzo6cG9zaXRpb25Gb3JQb2ludFdp
dGhJbmxpbmVDaGlsZHJlbihjb25zdCBMYXlvdXQKIAogICAgIGlmIChjbG9zZXN0Qm94KSB7CiAg
ICAgICAgIGlmIChtb3ZlQ2FyZXRUb0JvdW5kYXJ5KSB7Ci0gICAgICAgICAgICBMYXlvdXRVbml0
IGZpcnN0TGluZVdpdGhDaGlsZHJlblRvcCA9IHN0ZDo6bWluKGZpcnN0TGluZVdpdGhDaGlsZHJl
bi0+Y29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3RpbmcoKSwgTGF5b3V0VW5pdChm
aXJzdExpbmVXaXRoQ2hpbGRyZW4tPmNvbnRlbnRMb2dpY2FsVG9wKCkpKTsKKyAgICAgICAgICAg
IGF1dG8gZmlyc3RMaW5lV2l0aENoaWxkcmVuVG9wID0gTGF5b3V0VW5pdCB7IHN0ZDo6bWluKGZp
cnN0TGluZVdpdGhDaGlsZHJlbi0+Y29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3Rp
bmcoKSwgZmlyc3RMaW5lV2l0aENoaWxkcmVuLT5jb250ZW50TG9naWNhbFRvcCgpKSB9OwogICAg
ICAgICAgICAgaWYgKHBvaW50SW5Mb2dpY2FsQ29udGVudHMueSgpIDwgZmlyc3RMaW5lV2l0aENo
aWxkcmVuVG9wCiAgICAgICAgICAgICAgICAgfHwgKGJsb2Nrc0FyZUZsaXBwZWQgJiYgcG9pbnRJ
bkxvZ2ljYWxDb250ZW50cy55KCkgPT0gZmlyc3RMaW5lV2l0aENoaWxkcmVuVG9wKSkgewogICAg
ICAgICAgICAgICAgIGF1dG8gYm94ID0gZmlyc3RMaW5lV2l0aENoaWxkcmVuLT5maXJzdExlYWZC
b3goKTsKQEAgLTM0NzQsOCArMzQ3NCw4IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjphZGRGb2N1
c1JpbmdSZWN0c0ZvcklubGluZUNoaWxkcmVuKFZlY3RvcjxMYXlvdXRSZWN0PiYgcmVjCiAgICAg
ICAgIGF1dG8gbGluZSA9IGJveC0+bGluZSgpOwogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBt
aXhpbmcgcGh5c2ljYWwgYW5kIGxvZ2ljYWwgY29vcmRpbmF0ZXMuCiAgICAgICAgIGF1dG8gdW5m
bGlwcGVkVmlzdWFsUmVjdCA9IGJveC0+dmlzdWFsUmVjdElnbm9yaW5nQmxvY2tEaXJlY3Rpb24o
KTsKLSAgICAgICAgYXV0byB0b3AgPSBzdGQ6Om1heChsaW5lLT5jb250ZW50TG9naWNhbFRvcCgp
LCBMYXlvdXRVbml0IHsgdW5mbGlwcGVkVmlzdWFsUmVjdC55KCkgfSk7Ci0gICAgICAgIGF1dG8g
Ym90dG9tID0gc3RkOjptaW4obGluZS0+Y29udGVudExvZ2ljYWxCb3R0b20oKSwgTGF5b3V0VW5p
dCB7IHVuZmxpcHBlZFZpc3VhbFJlY3QubWF4WSgpIH0pOworICAgICAgICBhdXRvIHRvcCA9IHN0
ZDo6bWF4KGxpbmUtPmNvbnRlbnRMb2dpY2FsVG9wKCksIHVuZmxpcHBlZFZpc3VhbFJlY3QueSgp
KTsKKyAgICAgICAgYXV0byBib3R0b20gPSBzdGQ6Om1pbihsaW5lLT5jb250ZW50TG9naWNhbEJv
dHRvbSgpLCB1bmZsaXBwZWRWaXN1YWxSZWN0Lm1heFkoKSk7CiAgICAgICAgIGF1dG8gcmVjdCA9
IExheW91dFJlY3QgeyBMYXlvdXRVbml0IHsgYWRkaXRpb25hbE9mZnNldC54KCkgKyB1bmZsaXBw
ZWRWaXN1YWxSZWN0LngoKSB9CiAgICAgICAgICAgICAsIGFkZGl0aW9uYWxPZmZzZXQueSgpICsg
dG9wCiAgICAgICAgICAgICAsIExheW91dFVuaXQgeyB1bmZsaXBwZWRWaXN1YWxSZWN0LndpZHRo
KCkgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggYmMwYTFh
MmUyY2UzMTBlMjRmMzc2M2QxMmY5MzM4ZTk1NTg4YTc2NS4uYWViYTZiYjE3ZjZmMGFkNDk4ZmFl
YjA3NDg2MjMxM2VkMGJhZGRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1h
Z2UuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBSZW5kZXJJbWFnZTo6Y29sbGVjdFNlbGVj
dGlvbkdlb21ldHJpZXMoVmVjdG9yPFNlbGVjdGlvbkdlb21ldHJ5PiYgZ2VvbWV0cmkKICAgICAg
ICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8gc2VsZWN0aW9uTG9naWNhbFJlY3QgPSBM
aW5lU2VsZWN0aW9uOjpsb2dpY2FsUmVjdCgqcnVuLT5saW5lKCkpOwotICAgICAgICBhdXRvIHNl
bGVjdGlvblRvcCA9ICFjb250YWluaW5nQmxvY2stPnN0eWxlKCkuaXNGbGlwcGVkQmxvY2tzV3Jp
dGluZ01vZGUoKSA/IHNlbGVjdGlvbkxvZ2ljYWxSZWN0LnkoKSAtIGxvZ2ljYWxUb3AoKSA6IGxv
Z2ljYWxCb3R0b20oKSAtIHNlbGVjdGlvbkxvZ2ljYWxSZWN0Lm1heFkoKTsKKyAgICAgICAgaW50
IHNlbGVjdGlvblRvcCA9ICFjb250YWluaW5nQmxvY2stPnN0eWxlKCkuaXNGbGlwcGVkQmxvY2tz
V3JpdGluZ01vZGUoKSA/IHNlbGVjdGlvbkxvZ2ljYWxSZWN0LnkoKSAtIGxvZ2ljYWxUb3AoKSA6
IGxvZ2ljYWxCb3R0b20oKSAtIHNlbGVjdGlvbkxvZ2ljYWxSZWN0Lm1heFkoKTsKICAgICAgICAg
aW1hZ2VSZWN0ID0gSW50UmVjdCB7IDAsICBzZWxlY3Rpb25Ub3AsIGxvZ2ljYWxXaWR0aCgpLCBz
ZWxlY3Rpb25Mb2dpY2FsUmVjdC5oZWlnaHQoKSB9OwogICAgICAgICBpc0ZpcnN0T25MaW5lID0g
IXJ1bi0+cHJldmlvdXNPbkxpbmUoKTsKICAgICAgICAgaXNMYXN0T25MaW5lID0gIXJ1bi0+bmV4
dE9uTGluZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklu
bGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAppbmRl
eCBjM2Y1NjdhNTljNmM2MzQ1MDE2YTQ4MWY2YzAzYjJiYmIwMzdiMmI2Li5hYjg0ZjE1NjkzYjVh
NDBhMDA1ZWJhZjFlMWRkZGFkNzQ3ZTU3NjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW5saW5lLmNwcApAQCAtOTc0LDggKzk3NCw4IEBAIHZvaWQgUmVuZGVySW5saW5lOjpw
YWludE91dGxpbmUoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWlu
dE9mCiAKICAgICBmb3IgKGF1dG8gYm94ID0gSW5saW5lSXRlcmF0b3I6OmZpcnN0SW5saW5lQm94
Rm9yKCp0aGlzKTsgYm94OyBib3gudHJhdmVyc2VOZXh0SW5saW5lQm94KCkpIHsKICAgICAgICAg
YXV0byBsaW5lID0gYm94LT5saW5lKCk7Ci0gICAgICAgIGF1dG8gdG9wID0gc3RkOjptYXgobGlu
ZS0+Y29udGVudExvZ2ljYWxUb3AoKSwgTGF5b3V0VW5pdChib3gtPmxvZ2ljYWxUb3AoKSkpOwot
ICAgICAgICBhdXRvIGJvdHRvbSA9IHN0ZDo6bWluKGxpbmUtPmNvbnRlbnRMb2dpY2FsQm90dG9t
KCksIExheW91dFVuaXQoYm94LT5sb2dpY2FsQm90dG9tKCkpKTsKKyAgICAgICAgYXV0byB0b3Ag
PSBMYXlvdXRVbml0IHsgc3RkOjptYXgobGluZS0+Y29udGVudExvZ2ljYWxUb3AoKSwgYm94LT5s
b2dpY2FsVG9wKCkpIH07CisgICAgICAgIGF1dG8gYm90dG9tID0gTGF5b3V0VW5pdCB7IHN0ZDo6
bWluKGxpbmUtPmNvbnRlbnRMb2dpY2FsQm90dG9tKCksIGJveC0+bG9naWNhbEJvdHRvbSgpKSB9
OwogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBtaXhpbmcgcGh5c2ljYWwgYW5kIGxvZ2ljYWwg
Y29vcmRpbmF0ZXMuCiAgICAgICAgIHJlY3RzLmFwcGVuZCh7IExheW91dFVuaXQoYm94LT52aXN1
YWxSZWN0SWdub3JpbmdCbG9ja0RpcmVjdGlvbigpLngoKSksIHRvcCwgTGF5b3V0VW5pdChib3gt
PmxvZ2ljYWxXaWR0aCgpKSwgYm90dG9tIC0gdG9wIH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IDUzNjYyZmRmMGE3OGFhYTIwNjc5
MzdjMTU3YjUxMTg0NmQ2OTM2N2YuLjQ5NjIxNGI2Zjc1YzIzYWY1NzY3MjRlNDg1YmUxNmE4OGNk
ZDlkYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcApA
QCAtNzE5LDcgKzcxOSw3IEBAIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVQcmVmZXJyZWRM
b2dpY2FsV2lkdGhzKCkKIAogVmlzaWJsZVBvc2l0aW9uIFJlbmRlclJlcGxhY2VkOjpwb3NpdGlv
bkZvclBvaW50KGNvbnN0IExheW91dFBvaW50JiBwb2ludCwgY29uc3QgUmVuZGVyRnJhZ21lbnRD
b250YWluZXIqIGZyYWdtZW50KQogewotICAgIGF1dG8gW3RvcCwgYm90dG9tXSA9IFsmXSB7Cisg
ICAgYXV0byBbdG9wLCBib3R0b21dID0gWyZdKCkgLT4gc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4g
ewogICAgICAgICBpZiAoYXV0byBydW4gPSBJbmxpbmVJdGVyYXRvcjo6Ym94Rm9yKCp0aGlzKSkg
ewogICAgICAgICAgICAgYXV0byBsaW5lID0gcnVuLT5saW5lKCk7CiAgICAgICAgICAgICByZXR1
cm4gc3RkOjptYWtlX3BhaXIobGluZS0+Y29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRl
c3RpbmcoKSwgTGluZVNlbGVjdGlvbjo6bG9naWNhbEJvdHRvbSgqbGluZSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRCb3hQYWludGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9UZXh0Qm94UGFpbnRlci5jcHAKaW5kZXggZTY4NzhjMjhkMTk1YTgy
NDc3NDU4YmFmYmJjODI3YmQxYWI2MDU4MS4uOTQzMmQ0MmI0NDFhNDdhMzUwMTY2NGYxODhiNjY4
ZjFjODg1M2U1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRCb3hQ
YWludGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEJveFBhaW50ZXIu
Y3BwCkBAIC0yOTUsNyArMjk1LDcgQEAgdm9pZCBUZXh0Qm94UGFpbnRlcjo6cGFpbnRCYWNrZ3Jv
dW5kKHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIGMKICAgICAvLyBV
c2Ugc2FtZSB5IHBvc2l0aW9uaW5nIGFuZCBoZWlnaHQgYXMgZm9yIHNlbGVjdGlvbiwgc28gdGhh
dCB3aGVuIHRoZSBzZWxlY3Rpb24gYW5kIHRoaXMgc3VicmFuZ2UgYXJlIG9uCiAgICAgLy8gdGhl
IHNhbWUgd29yZCB0aGVyZSBhcmUgbm8gcGllY2VzIHN0aWNraW5nIG91dC4KICAgICBhdXRvIGRl
bHRhWSA9IExheW91dFVuaXQgeyBtX3N0eWxlLmlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoKSA/
IHNlbGVjdGlvbkJvdHRvbSAtIHRleHRCb3goKS5sb2dpY2FsQm90dG9tKCkgOiB0ZXh0Qm94KCku
bG9naWNhbFRvcCgpIC0gc2VsZWN0aW9uVG9wIH07Ci0gICAgYXV0byBzZWxlY3Rpb25IZWlnaHQg
PSBMYXlvdXRVbml0IHsgc3RkOjptYXgoMF9sdSwgc2VsZWN0aW9uQm90dG9tIC0gc2VsZWN0aW9u
VG9wKSB9OworICAgIGF1dG8gc2VsZWN0aW9uSGVpZ2h0ID0gTGF5b3V0VW5pdCB7IHN0ZDo6bWF4
KDAuZiwgc2VsZWN0aW9uQm90dG9tIC0gc2VsZWN0aW9uVG9wKSB9OwogICAgIGF1dG8gc2VsZWN0
aW9uUmVjdCA9IExheW91dFJlY3QgeyBMYXlvdXRVbml0KG1fcGFpbnRSZWN0LngoKSksIExheW91
dFVuaXQobV9wYWludFJlY3QueSgpIC0gZGVsdGFZKSwgTGF5b3V0VW5pdCh0ZXh0Qm94KCkubG9n
aWNhbFdpZHRoKCkpLCBzZWxlY3Rpb25IZWlnaHQgfTsKICAgICBmb250Q2FzY2FkZSgpLmFkanVz
dFNlbGVjdGlvblJlY3RGb3JUZXh0KG1fcGFpbnRUZXh0UnVuLCBzZWxlY3Rpb25SZWN0LCBzdGFy
dE9mZnNldCwgZW5kT2Zmc2V0KTsKIAo=
</data>
<flag name="commit-queue"
          id="483071"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455174</attachid>
            <date>2022-03-19 14:09:43 -0700</date>
            <delta_ts>2022-03-19 14:37:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238106-20220319140942.patch</filename>
            <type>text/plain</type>
            <size>23370</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWM3YTRhZjg3OGMyZmMy
ZTJmZDYyYmJkNmUyMGMyYTgwOGYxMmFlYS4uZTRiOTI2OTdkY2ZiZTNlOGU1NjM3OWZlNDdmMDU4
ODY1MTgzYTY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIyLTAzLTE5ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbSUZDXVtJbnRlZ3JhdGlvbl0g
SW5saW5lSXRlcmF0b3I6OkxpbmUgZnVuY3Rpb25zIHNob3VsZCBhbGwgcmV0dXJuIGZsb2F0IHZh
bHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4
MTA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgRGlz
cGxheSBzdHJ1Y3R1cmVzIGFyZSBzdXBwb3NlZCB0byBiZSBhbGwgZmxvYXQgYmFzZWQuCisKKyAg
ICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmg6CisgICAgICAg
IChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZTo6bGluZUJveEhlaWdodCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6Y29udGVudFN0YXJ0SW5CbG9ja0RpcmVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZTo6Y29udGVudExv
Z2ljYWxUb3AgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmU6
OmNvbnRlbnRMb2dpY2FsQm90dG9tIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0
ZXJhdG9yOjpMaW5lOjpjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZTo6Y29udGVudExv
Z2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3RpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SW5saW5lSXRlcmF0b3I6OkxpbmU6OmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xs
b3dpbmdMaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5l
OjpsaW5lQm94VG9wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpM
aW5lOjpsaW5lQm94Qm90dG9tIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24v
SW5saW5lSXRlcmF0b3JMaW5lTGVnYWN5UGF0aC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5l
SXRlcmF0b3I6OkxpbmVJdGVyYXRvckxlZ2FjeVBhdGg6OmNvbnRlbnRMb2dpY2FsVG9wIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3JMZWdhY3lQ
YXRoOjpjb250ZW50TG9naWNhbEJvdHRvbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxp
bmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTGVnYWN5UGF0aDo6Y29udGVudExvZ2ljYWxUb3BBZGp1
c3RlZEZvclByZWNlZGluZ0xpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRl
cmF0b3I6OkxpbmVJdGVyYXRvckxlZ2FjeVBhdGg6OmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRG
b3JIaXRUZXN0aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpM
aW5lSXRlcmF0b3JMZWdhY3lQYXRoOjpjb250ZW50TG9naWNhbEJvdHRvbUFkanVzdGVkRm9yRm9s
bG93aW5nTGluZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGlu
ZUl0ZXJhdG9yTGVnYWN5UGF0aDo6bGluZUJveFRvcCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTGVnYWN5UGF0aDo6bGluZUJveEJvdHRvbSBj
b25zdCk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZU1v
ZGVyblBhdGguaDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0
b3JNb2Rlcm5QYXRoOjpjb250ZW50TG9naWNhbFRvcCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTW9kZXJuUGF0aDo6Y29udGVudExvZ2ljYWxC
b3R0b20gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmVJdGVy
YXRvck1vZGVyblBhdGg6OmxpbmVCb3hUb3AgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5s
aW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvck1vZGVyblBhdGg6OmxpbmVCb3hCb3R0b20gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvck1vZGVyblBh
dGg6OmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5lIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3JNb2Rlcm5QYXRoOjpj
b250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTW9kZXJuUGF0aDo6Y29udGVudExv
Z2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUgY29uc3QpOgorICAgICAgICAqIGxh
eW91dC9pbnRlZ3JhdGlvbi9MaW5lU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpMaW5l
U2VsZWN0aW9uOjpsb2dpY2FsVG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246
OmxvZ2ljYWxCb3R0b20pOgorICAgICAgICAoV2ViQ29yZTo6TGluZVNlbGVjdGlvbjo6bG9naWNh
bFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6TGluZVNlbGVjdGlvbjo6cGh5c2ljYWxSZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246OmxvZ2ljYWxUb3BBZGp1c3RlZEZvclBy
ZWNlZGluZ0Jsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6YWRqdXN0RW5jbG9zaW5nVG9wRm9y
UHJlY2VkaW5nQmxvY2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93
OjppbmxpbmVTZWxlY3Rpb25HYXBzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxv
dzo6cG9zaXRpb25Gb3JQb2ludFdpdGhJbmxpbmVDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9ja0Zsb3c6OmFkZEZvY3VzUmluZ1JlY3RzRm9ySW5saW5lQ2hpbGRyZW4pOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVySW5saW5lOjpwYWludE91dGxpbmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6cG9zaXRpb25G
b3JQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRCb3hQYWludGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRCb3hQYWludGVyOjpwYWludEJhY2tncm91bmQpOgorCiAyMDIyLTAz
LTE5ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbSUZDXVtJbnRl
Z3JhdGlvbl0gUmVtb3ZlIHJlZHVuZGFudCBJbmxpbmVJdGVyYXRvcjo6TGluZTo6Y2xvc2VzdEJv
eEZvclBvaW50IGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmgKaW5kZXggY2EyMjA4Zjg4ZGE0YWQyYTU4Y2Fm
MTI1YmViNWMwODU5ZTMxMDU0Ni4uNzEyZGU5YzkxMTI2YzQyMmE2MTYwNGUzM2U4ZDk1MjU2MmJm
NzM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGlu
ZUl0ZXJhdG9yTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9J
bmxpbmVJdGVyYXRvckxpbmUuaApAQCAtNTQsMjAgKzU0LDE5IEBAIHB1YmxpYzoKIAogICAgIExp
bmUoUGF0aFZhcmlhbnQmJik7CiAKLSAgICBMYXlvdXRVbml0IGxpbmVCb3hUb3AoKSBjb25zdDsK
LSAgICBMYXlvdXRVbml0IGxpbmVCb3hCb3R0b20oKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGxp
bmVCb3hIZWlnaHQoKSBjb25zdCB7IHJldHVybiBsaW5lQm94Qm90dG9tKCkgLSBsaW5lQm94VG9w
KCk7IH0KKyAgICBmbG9hdCBsaW5lQm94VG9wKCkgY29uc3Q7CisgICAgZmxvYXQgbGluZUJveEJv
dHRvbSgpIGNvbnN0OworICAgIGZsb2F0IGxpbmVCb3hIZWlnaHQoKSBjb25zdCB7IHJldHVybiBs
aW5lQm94Qm90dG9tKCkgLSBsaW5lQm94VG9wKCk7IH0KIAotICAgIC8vIEZJWE1FOiBNYWtlIHN1
cmUgd2UgdXNlIHRoZSBzYW1lIHR5cGUgZm9yIGNvbnRlbnQgZ2VvbWV0cnkuCi0gICAgTGF5b3V0
VW5pdCBjb250ZW50TG9naWNhbFRvcCgpIGNvbnN0OwotICAgIExheW91dFVuaXQgY29udGVudExv
Z2ljYWxCb3R0b20oKSBjb25zdDsKKyAgICBmbG9hdCBjb250ZW50TG9naWNhbFRvcCgpIGNvbnN0
OworICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsQm90dG9tKCkgY29uc3Q7CiAgICAgZmxvYXQgY29u
dGVudExvZ2ljYWxMZWZ0KCkgY29uc3Q7CiAgICAgZmxvYXQgY29udGVudExvZ2ljYWxSaWdodCgp
IGNvbnN0OwogICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsV2lkdGgoKSBjb25zdDsKIAotICAgIExh
eW91dFVuaXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3RpbmcoKSBjb25zdDsK
LSAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5l
KCkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbEJvdHRvbUFkanVzdGVkRm9y
Rm9sbG93aW5nTGluZSgpIGNvbnN0OworICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0
ZWRGb3JIaXRUZXN0aW5nKCkgY29uc3Q7CisgICAgZmxvYXQgY29udGVudExvZ2ljYWxUb3BBZGp1
c3RlZEZvclByZWNlZGluZ0xpbmUoKSBjb25zdDsKKyAgICBmbG9hdCBjb250ZW50TG9naWNhbEJv
dHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgpIGNvbnN0OwogCiAgICAgY29uc3QgUmVuZGVy
QmxvY2tGbG93JiBjb250YWluaW5nQmxvY2soKSBjb25zdDsKICAgICBSZW5kZXJGcmFnbWVudENv
bnRhaW5lciogY29udGFpbmluZ0ZyYWdtZW50KCkgY29uc3Q7CkBAIC0xMjMsNyArMTIyLDcgQEAg
TGluZUl0ZXJhdG9yIGxhc3RMaW5lRm9yKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYpOwogTGVhZkJv
eEl0ZXJhdG9yIGNsb3Nlc3RCb3hGb3JIb3Jpem9udGFsUG9zaXRpb24oY29uc3QgTGluZSYsIGZs
b2F0IGhvcml6b250YWxQb3NpdGlvbiwgYm9vbCBlZGl0YWJsZU9ubHkgPSBmYWxzZSk7CiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1pbmxpbmUg
TGF5b3V0VW5pdCBjb250ZW50U3RhcnRJbkJsb2NrRGlyZWN0aW9uKGNvbnN0IExpbmUmIGxpbmUp
CitpbmxpbmUgZmxvYXQgY29udGVudFN0YXJ0SW5CbG9ja0RpcmVjdGlvbihjb25zdCBMaW5lJiBs
aW5lKQogewogICAgIGlmICghbGluZS5jb250YWluaW5nQmxvY2soKS5zdHlsZSgpLmlzRmxpcHBl
ZEJsb2Nrc1dyaXRpbmdNb2RlKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om1heChsaW5lLmNvbnRl
bnRMb2dpY2FsVG9wKCksIGxpbmUuY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3Rp
bmcoKSk7CkBAIC0xMzUsNDkgKzEzNCw0OSBAQCBpbmxpbmUgTGluZTo6TGluZShQYXRoVmFyaWFu
dCYmIHBhdGgpCiB7CiB9CiAKLWlubGluZSBMYXlvdXRVbml0IExpbmU6OmNvbnRlbnRMb2dpY2Fs
VG9wKCkgY29uc3QKK2lubGluZSBmbG9hdCBMaW5lOjpjb250ZW50TG9naWNhbFRvcCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oY29uc3QgYXV0
byYgcGF0aCkgewogICAgICAgICByZXR1cm4gcGF0aC5jb250ZW50TG9naWNhbFRvcCgpOwogICAg
IH0pOwogfQogCi1pbmxpbmUgTGF5b3V0VW5pdCBMaW5lOjpjb250ZW50TG9naWNhbEJvdHRvbSgp
IGNvbnN0CitpbmxpbmUgZmxvYXQgTGluZTo6Y29udGVudExvZ2ljYWxCb3R0b20oKSBjb25zdAog
ewogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8m
IHBhdGgpIHsKICAgICAgICAgcmV0dXJuIHBhdGguY29udGVudExvZ2ljYWxCb3R0b20oKTsKICAg
ICB9KTsKIH0KIAotaW5saW5lIExheW91dFVuaXQgTGluZTo6Y29udGVudExvZ2ljYWxUb3BBZGp1
c3RlZEZvclByZWNlZGluZ0xpbmUoKSBjb25zdAoraW5saW5lIGZsb2F0IExpbmU6OmNvbnRlbnRM
b2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5lKCkgY29uc3QKIHsKICAgICByZXR1cm4g
V1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShjb25zdCBhdXRvJiBwYXRoKSB7CiAgICAg
ICAgIHJldHVybiBwYXRoLmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5l
KCk7CiAgICAgfSk7CiB9CiAKLWlubGluZSBMYXlvdXRVbml0IExpbmU6OmNvbnRlbnRMb2dpY2Fs
VG9wQWRqdXN0ZWRGb3JIaXRUZXN0aW5nKCkgY29uc3QKK2lubGluZSBmbG9hdCBMaW5lOjpjb250
ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oY29uc3QgYXV0byYgcGF0aCkgewogICAg
ICAgICByZXR1cm4gcGF0aC5jb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZygp
OwogICAgIH0pOwogfQogCi1pbmxpbmUgTGF5b3V0VW5pdCBMaW5lOjpjb250ZW50TG9naWNhbEJv
dHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgpIGNvbnN0CitpbmxpbmUgZmxvYXQgTGluZTo6
Y29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKSBjb25zdAogewog
ICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8mIHBh
dGgpIHsKICAgICAgICAgcmV0dXJuIHBhdGguY29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZv
ckZvbGxvd2luZ0xpbmUoKTsKICAgICB9KTsKIH0KIAotaW5saW5lIExheW91dFVuaXQgTGluZTo6
bGluZUJveFRvcCgpIGNvbnN0CitpbmxpbmUgZmxvYXQgTGluZTo6bGluZUJveFRvcCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oY29uc3QgYXV0
byYgcGF0aCkgewogICAgICAgICByZXR1cm4gcGF0aC5saW5lQm94VG9wKCk7CiAgICAgfSk7CiB9
CiAKLWlubGluZSBMYXlvdXRVbml0IExpbmU6OmxpbmVCb3hCb3R0b20oKSBjb25zdAoraW5saW5l
IGZsb2F0IExpbmU6OmxpbmVCb3hCb3R0b20oKSBjb25zdAogewogICAgIHJldHVybiBXVEY6OnN3
aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8mIHBhdGgpIHsKICAgICAgICAgcmV0
dXJuIHBhdGgubGluZUJveEJvdHRvbSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZUxlZ2FjeVBhdGguaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmVMZWdhY3lQYXRoLmgK
aW5kZXggZmMzZjRmNDIzMjIwODcxNDY0ZGExZTZhYmJhOGJkY2FjYzZlOTlmZC4uNjM2ZTA0ZmQ4
OWNkY2I2YmQ4MWExOTIzOTUzM2E5MjliYjI1NjJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZUxlZ2FjeVBhdGguaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lTGVn
YWN5UGF0aC5oCkBAIC00MywxMyArNDMsMTMgQEAgcHVibGljOgogICAgIExpbmVJdGVyYXRvckxl
Z2FjeVBhdGgmIG9wZXJhdG9yPShjb25zdCBMaW5lSXRlcmF0b3JMZWdhY3lQYXRoJikgPSBkZWZh
dWx0OwogICAgIExpbmVJdGVyYXRvckxlZ2FjeVBhdGgmIG9wZXJhdG9yPShMaW5lSXRlcmF0b3JM
ZWdhY3lQYXRoJiYpID0gZGVmYXVsdDsKIAotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxU
b3AoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPmxpbmVUb3AoKTsgfQotICAgIExh
eW91dFVuaXQgY29udGVudExvZ2ljYWxCb3R0b20oKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxp
bmVCb3gtPmxpbmVCb3R0b20oKTsgfQotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxUb3BB
ZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gt
PnNlbGVjdGlvblRvcCgpOyB9Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbFRvcEFkanVz
dGVkRm9ySGl0VGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+c2VsZWN0
aW9uVG9wKExlZ2FjeVJvb3RJbmxpbmVCb3g6OkZvckhpdFRlc3Rpbmc6Olllcyk7IH0KLSAgICBM
YXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCkg
Y29uc3QgeyByZXR1cm4gbV9yb290SW5saW5lQm94LT5zZWxlY3Rpb25Cb3R0b20oKTsgfQotICAg
IExheW91dFVuaXQgbGluZUJveFRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+
bGluZUJveFRvcCgpOyB9Ci0gICAgTGF5b3V0VW5pdCBsaW5lQm94Qm90dG9tKCkgY29uc3QgeyBy
ZXR1cm4gbV9yb290SW5saW5lQm94LT5saW5lQm94Qm90dG9tKCk7IH0KKyAgICBmbG9hdCBjb250
ZW50TG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+bGluZVRvcCgp
LnRvRmxvYXQoKTsgfQorICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsQm90dG9tKCkgY29uc3QgeyBy
ZXR1cm4gbV9yb290SW5saW5lQm94LT5saW5lQm90dG9tKCkudG9GbG9hdCgpOyB9CisgICAgZmxv
YXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSBjb25zdCB7IHJl
dHVybiBtX3Jvb3RJbmxpbmVCb3gtPnNlbGVjdGlvblRvcCgpLnRvRmxvYXQoKTsgfQorICAgIGZs
b2F0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0aW5nKCkgY29uc3QgeyByZXR1
cm4gbV9yb290SW5saW5lQm94LT5zZWxlY3Rpb25Ub3AoTGVnYWN5Um9vdElubGluZUJveDo6Rm9y
SGl0VGVzdGluZzo6WWVzKS50b0Zsb2F0KCk7IH0KKyAgICBmbG9hdCBjb250ZW50TG9naWNhbEJv
dHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGlu
ZUJveC0+c2VsZWN0aW9uQm90dG9tKCkudG9GbG9hdCgpOyB9CisgICAgZmxvYXQgbGluZUJveFRv
cCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+bGluZUJveFRvcCgpLnRvRmxvYXQo
KTsgfQorICAgIGZsb2F0IGxpbmVCb3hCb3R0b20oKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxp
bmVCb3gtPmxpbmVCb3hCb3R0b20oKS50b0Zsb2F0KCk7IH0KIAogICAgIGZsb2F0IGNvbnRlbnRM
b2dpY2FsTGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+bG9naWNhbExlZnQo
KTsgfQogICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3Jv
b3RJbmxpbmVCb3gtPmxvZ2ljYWxSaWdodCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lTW9kZXJuUGF0aC5oIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZU1vZGVyblBh
dGguaAppbmRleCA1ZGIyYzNiZjAzYjU5YjQ3ODBiY2M0NDUyN2UwNjZjMTQxZjBlOGM2Li4zNzYx
NWU1ZjFlMjVmNTMwYjEyZmU4OGZhNjhhMzg2YWUyOWYxYWIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lTW9kZXJuUGF0aC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxp
bmVNb2Rlcm5QYXRoLmgKQEAgLTQ5LDE4ICs0OSwxOCBAQCBwdWJsaWM6CiAgICAgTGluZUl0ZXJh
dG9yTW9kZXJuUGF0aCYgb3BlcmF0b3I9KGNvbnN0IExpbmVJdGVyYXRvck1vZGVyblBhdGgmKSA9
IGRlZmF1bHQ7CiAgICAgTGluZUl0ZXJhdG9yTW9kZXJuUGF0aCYgb3BlcmF0b3I9KExpbmVJdGVy
YXRvck1vZGVyblBhdGgmJikgPSBkZWZhdWx0OwogCi0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9n
aWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdFJvdW5kKGxpbmUo
KS5lbmNsb3NpbmdDb250ZW50VG9wKCkpOyB9Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNh
bEJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdFJvdW5kKGxpbmUo
KS5lbmNsb3NpbmdDb250ZW50Qm90dG9tKCkpOyB9Ci0gICAgTGF5b3V0VW5pdCBsaW5lQm94VG9w
KCkgY29uc3QgeyByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Um91bmQobGluZSgpLmxpbmVC
b3hUb3AoKSk7IH0KLSAgICBMYXlvdXRVbml0IGxpbmVCb3hCb3R0b20oKSBjb25zdCB7IHJldHVy
biBMYXlvdXRVbml0Ojpmcm9tRmxvYXRSb3VuZChsaW5lKCkubGluZUJveEJvdHRvbSgpKTsgfQor
ICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsVG9wKCkgY29uc3QgeyByZXR1cm4gbGluZSgpLmVuY2xv
c2luZ0NvbnRlbnRUb3AoKTsgfQorICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsQm90dG9tKCkgY29u
c3QgeyByZXR1cm4gbGluZSgpLmVuY2xvc2luZ0NvbnRlbnRCb3R0b20oKTsgfQorICAgIGZsb2F0
IGxpbmVCb3hUb3AoKSBjb25zdCB7IHJldHVybiBsaW5lKCkubGluZUJveFRvcCgpOyB9CisgICAg
ZmxvYXQgbGluZUJveEJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIGxpbmUoKS5saW5lQm94Qm90dG9t
KCk7IH0KIAotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNl
ZGluZ0xpbmUoKSBjb25zdCB7IHJldHVybiAhbV9saW5lSW5kZXggPyBjb250ZW50TG9naWNhbFRv
cCgpIDogTGluZUl0ZXJhdG9yTW9kZXJuUGF0aCgqbV9pbmxpbmVDb250ZW50LCBtX2xpbmVJbmRl
eCAtIDEpLmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCk7IH0K
KyAgICBmbG9hdCBjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSgpIGNv
bnN0IHsgcmV0dXJuICFtX2xpbmVJbmRleCA/IGNvbnRlbnRMb2dpY2FsVG9wKCkgOiBMaW5lSXRl
cmF0b3JNb2Rlcm5QYXRoKCptX2lubGluZUNvbnRlbnQsIG1fbGluZUluZGV4IC0gMSkuY29udGVu
dExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKTsgfQogICAgIC8vIEZJWE1F
OiBSZW1vdmUgdGhlIGNvbnRhaW5pbmdCbG9jaygpLmJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKSBv
ZmZzZXQgYWZ0ZXIgcmV0aXJpbmcgbGVnYWN5IGxpbmUgbGF5b3V0LiBJdCBhbHNvIHJlcXVpcmVz
IGNoYW5nZXMgaW4gUmVuZGVyVGV4dDo6cG9zaXRpb25Gb3JQb2ludCB0byBmaW5kIHRoZSBmaXJz
dCBsaW5lIHdpdGggb2Zmc2V0LgogICAgIC8vIC0gdGhlICJiZWZvcmUiIHZhbHVlIGlzIGFscmVh
ZHkgZmFjdG9yZWQgaW4gdG8gdGhlIGxpbmUgb2Zmc2V0CiAgICAgLy8gLSB0aGlzIGxvZ2ljIG5l
Z2F0ZXMgdGhlIGZpcnN0IGxpbmUncyBuYXR1cmFsIG9mZnNldCAoZS5nLiBibG9jayBoYXMgbm8g
Ym9yZGVyL3BhZGRpbmcgYnV0IHRoZSBmaXJzdCBsaW5lIGhhcyBhIGNvbXB1dGVkIG9mZnNldCku
Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZygp
IGNvbnN0IHsgcmV0dXJuICFtX2xpbmVJbmRleCA/IGNvbnRhaW5pbmdCbG9jaygpLmJvcmRlckFu
ZFBhZGRpbmdCZWZvcmUoKSA6IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdM
aW5lKCk7IH07CisgICAgZmxvYXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3Rp
bmcoKSBjb25zdCB7IHJldHVybiAhbV9saW5lSW5kZXggPyBjb250YWluaW5nQmxvY2soKS5ib3Jk
ZXJBbmRQYWRkaW5nQmVmb3JlKCkudG9GbG9hdCgpIDogY29udGVudExvZ2ljYWxUb3BBZGp1c3Rl
ZEZvclByZWNlZGluZ0xpbmUoKTsgfTsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50LgotICAgIExh
eW91dFVuaXQgY29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKSBj
b25zdCB7IHJldHVybiBjb250ZW50TG9naWNhbEJvdHRvbSgpOyB9CisgICAgZmxvYXQgY29udGVu
dExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKSBjb25zdCB7IHJldHVybiBj
b250ZW50TG9naWNhbEJvdHRvbSgpOyB9CiAKICAgICBmbG9hdCBjb250ZW50TG9naWNhbExlZnQo
KSBjb25zdCB7IHJldHVybiBsaW5lKCkubGluZUJveExlZnQoKSArIGxpbmUoKS5jb250ZW50TG9n
aWNhbE9mZnNldCgpOyB9CiAgICAgZmxvYXQgY29udGVudExvZ2ljYWxSaWdodCgpIGNvbnN0IHsg
cmV0dXJuIGNvbnRlbnRMb2dpY2FsTGVmdCgpICsgbGluZSgpLmNvbnRlbnRMb2dpY2FsV2lkdGgo
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xpbmVT
ZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MaW5lU2VsZWN0
aW9uLmgKaW5kZXggZjJjODgzZTAxNzBjMWQ3MWJhZjc1OTRiOWRjYTQ1Yzg0N2E1NTYwNC4uYzMy
ZjZmOTU1YjE1YzZkYTg4YWE2NTc5NGM3NDY1MjM4ODk5NGVjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xpbmVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGluZVNlbGVjdGlvbi5oCkBAIC0zMiwxNSArMzIs
MTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBMaW5lU2VsZWN0aW9uIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgTGF5b3V0VW5pdCBsb2dpY2FsVG9wKGNvbnN0IElubGluZUl0ZXJhdG9y
OjpMaW5lJiBsaW5lKSB7IHJldHVybiBsaW5lLmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQ
cmVjZWRpbmdMaW5lKCk7IH0KLSAgICBzdGF0aWMgTGF5b3V0VW5pdCBsb2dpY2FsQm90dG9tKGNv
bnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKSB7IHJldHVybiBsaW5lLmNvbnRlbnRMb2dp
Y2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCk7IH0KKyAgICBzdGF0aWMgZmxvYXQg
bG9naWNhbFRvcChjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkgeyByZXR1cm4gbGlu
ZS5jb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSgpOyB9CisgICAgc3Rh
dGljIGZsb2F0IGxvZ2ljYWxCb3R0b20oY29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUp
IHsgcmV0dXJuIGxpbmUuY29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xp
bmUoKTsgfQogCi0gICAgc3RhdGljIExheW91dFJlY3QgbG9naWNhbFJlY3QoY29uc3QgSW5saW5l
SXRlcmF0b3I6OkxpbmUmIGxpbmUpCisgICAgc3RhdGljIEZsb2F0UmVjdCBsb2dpY2FsUmVjdChj
b25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkKICAgICB7Ci0gICAgICAgIHJldHVybiB7
IExheW91dFBvaW50IHsgbGluZS5jb250ZW50TG9naWNhbExlZnQoKSwgbGluZS5jb250ZW50TG9n
aWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSgpIH0sIExheW91dFBvaW50IHsgbGluZS5j
b250ZW50TG9naWNhbFJpZ2h0KCksIGxpbmUuY29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZv
ckZvbGxvd2luZ0xpbmUoKSB9IH07CisgICAgICAgIHJldHVybiB7IEZsb2F0UG9pbnQgeyBsaW5l
LmNvbnRlbnRMb2dpY2FsTGVmdCgpLCBsaW5lLmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQ
cmVjZWRpbmdMaW5lKCkgfSwgRmxvYXRQb2ludCB7IGxpbmUuY29udGVudExvZ2ljYWxSaWdodCgp
LCBsaW5lLmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCkgfSB9
OwogICAgIH0KIAotICAgIHN0YXRpYyBMYXlvdXRSZWN0IHBoeXNpY2FsUmVjdChjb25zdCBJbmxp
bmVJdGVyYXRvcjo6TGluZSYgbGluZSkKKyAgICBzdGF0aWMgRmxvYXRSZWN0IHBoeXNpY2FsUmVj
dChjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkKICAgICB7CiAgICAgICAgIGF1dG8g
cGh5c2ljYWxSZWN0ID0gbG9naWNhbFJlY3QobGluZSk7CiAgICAgICAgIGlmICghbGluZS5pc0hv
cml6b250YWwoKSkKQEAgLTQ5LDEwICs0OSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBw
aHlzaWNhbFJlY3Q7CiAgICAgfQogCi0gICAgc3RhdGljIExheW91dFVuaXQgbG9naWNhbFRvcEFk
anVzdGVkRm9yUHJlY2VkaW5nQmxvY2soY29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUp
CisgICAgc3RhdGljIGZsb2F0IGxvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2NrKGNv
bnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKQogICAgIHsKICAgICAgICAgLy8gRklYTUU6
IE1vdmUgYWRqdXN0RW5jbG9zaW5nVG9wRm9yUHJlY2VkaW5nQmxvY2sgZnJvbSBSZW5kZXJCbG9j
a0Zsb3cgdG8gaGVyZS4KLSAgICAgICAgcmV0dXJuIGxpbmUuY29udGFpbmluZ0Jsb2NrKCkuYWRq
dXN0RW5jbG9zaW5nVG9wRm9yUHJlY2VkaW5nQmxvY2sobGluZS5jb250ZW50TG9naWNhbFRvcEFk
anVzdGVkRm9yUHJlY2VkaW5nTGluZSgpKTsKKyAgICAgICAgcmV0dXJuIGxpbmUuY29udGFpbmlu
Z0Jsb2NrKCkuYWRqdXN0RW5jbG9zaW5nVG9wRm9yUHJlY2VkaW5nQmxvY2soTGF5b3V0VW5pdCB7
IGxpbmUuY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSB9KTsKICAg
ICB9CiAKICAgICBzdGF0aWMgUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZSBzZWxlY3Rpb25T
dGF0ZShjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggM2MwMzFiMzczNzllOTM3NjVlMTBh
ZTI0NmVjZDIzZWViNmFhMGYzMy4uMDMyNTllZjM1ZjI3MGJjOWQ0YWM1NjU2ZGJlZDFlOTgxMmNk
YmQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxv
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAK
QEAgLTMwNjcsNyArMzA2Nyw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2tGbG93OjphZGp1c3RF
bmNsb3NpbmdUb3BGb3JQcmVjZWRpbmdCbG9jayhMYXlvdXRVbml0IHRvcCkKICAgICAgICAgICAg
IHJldHVybiB0b3A7CiAKICAgICAgICAgYXV0byBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbSA9IExp
bmVTZWxlY3Rpb246OmxvZ2ljYWxCb3R0b20oKmxhc3RMaW5lKSArIG9mZnNldFRvQmxvY2tCZWZv
cmUuaGVpZ2h0KCk7Ci0gICAgICAgIHRvcCA9IHN0ZDo6bWF4KHRvcCwgbGFzdExpbmVTZWxlY3Rp
b25Cb3R0b20pOworICAgICAgICB0b3AgPSBzdGQ6Om1heCh0b3AsIExheW91dFVuaXQgeyBsYXN0
TGluZVNlbGVjdGlvbkJvdHRvbSB9KTsKICAgICB9CiAgICAgcmV0dXJuIHRvcDsKIH0KQEAgLTMx
NjUsOCArMzE2NSw4IEBAIEdhcFJlY3RzIFJlbmRlckJsb2NrRmxvdzo6aW5saW5lU2VsZWN0aW9u
R2FwcyhSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvCiAKICAgICAvLyBOb3cgcGFp
bnQgdGhlIGdhcHMgZm9yIHRoZSBsaW5lcy4KICAgICBmb3IgKDsgbGluZSAmJiBoYXNTZWxlY3Rl
ZENoaWxkcmVuKGxpbmUpOyBsaW5lLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGF1dG8gc2Vs
ZWN0aW9uVG9wID0gIExpbmVTZWxlY3Rpb246OmxvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGlu
Z0Jsb2NrKCpsaW5lKTsKLSAgICAgICAgYXV0byBzZWxlY3Rpb25IZWlnaHQgPSBzdGQ6Om1heCgw
X2x1LCBMaW5lU2VsZWN0aW9uOjpsb2dpY2FsQm90dG9tKCpsaW5lKSAtIHNlbGVjdGlvblRvcCk7
CisgICAgICAgIGF1dG8gc2VsZWN0aW9uVG9wID0gIExheW91dFVuaXQgeyBMaW5lU2VsZWN0aW9u
Ojpsb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygqbGluZSkgfTsKKyAgICAgICAg
YXV0byBzZWxlY3Rpb25IZWlnaHQgPSBMYXlvdXRVbml0IHsgc3RkOjptYXgoMC5mLCBMaW5lU2Vs
ZWN0aW9uOjpsb2dpY2FsQm90dG9tKCpsaW5lKSAtIHNlbGVjdGlvblRvcCkgfTsKIAogICAgICAg
ICBpZiAoIWNvbnRhaW5zU3RhcnQgJiYgIWxhc3RTZWxlY3RlZExpbmUgJiYKICAgICAgICAgICAg
IHNlbGVjdGlvblN0YXRlKCkgIT0gSGlnaGxpZ2h0U3RhdGU6OlN0YXJ0ICYmIHNlbGVjdGlvblN0
YXRlKCkgIT0gSGlnaGxpZ2h0U3RhdGU6OkJvdGggJiYgIWlzUnVieUJhc2UoKSkKQEAgLTMxODgs
NyArMzE4OCw3IEBAIEdhcFJlY3RzIFJlbmRlckJsb2NrRmxvdzo6aW5saW5lU2VsZWN0aW9uR2Fw
cyhSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvCiAKICAgICBpZiAobGFzdFNlbGVj
dGVkTGluZSAmJiBzZWxlY3Rpb25TdGF0ZSgpICE9IEhpZ2hsaWdodFN0YXRlOjpFbmQgJiYgc2Vs
ZWN0aW9uU3RhdGUoKSAhPSBIaWdobGlnaHRTdGF0ZTo6Qm90aCkgewogICAgICAgICAvLyBVcGRh
dGUgb3VyIGxhc3RZIHRvIGJlIHRoZSBib3R0b20gb2YgdGhlIGxhc3Qgc2VsZWN0ZWQgbGluZS4K
LSAgICAgICAgYXV0byBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbSA9IExpbmVTZWxlY3Rpb246Omxv
Z2ljYWxCb3R0b20oKmxhc3RTZWxlY3RlZExpbmUpOworICAgICAgICBhdXRvIGxhc3RMaW5lU2Vs
ZWN0aW9uQm90dG9tID0gTGF5b3V0VW5pdCB7IExpbmVTZWxlY3Rpb246OmxvZ2ljYWxCb3R0b20o
Kmxhc3RTZWxlY3RlZExpbmUpIH07CiAgICAgICAgIGxhc3RMb2dpY2FsVG9wID0gYmxvY2tEaXJl
Y3Rpb25PZmZzZXQocm9vdEJsb2NrLCBvZmZzZXRGcm9tUm9vdEJsb2NrKSArIGxhc3RMaW5lU2Vs
ZWN0aW9uQm90dG9tOwogICAgICAgICBsYXN0TG9naWNhbExlZnQgPSBsb2dpY2FsTGVmdFNlbGVj
dGlvbk9mZnNldChyb290QmxvY2ssIGxhc3RMaW5lU2VsZWN0aW9uQm90dG9tLCBjYWNoZSk7CiAg
ICAgICAgIGxhc3RMb2dpY2FsUmlnaHQgPSBsb2dpY2FsUmlnaHRTZWxlY3Rpb25PZmZzZXQocm9v
dEJsb2NrLCBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbSwgY2FjaGUpOwpAQCAtMzQyMSw3ICszNDIx
LDcgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlckJsb2NrRmxvdzo6cG9zaXRpb25Gb3JQb2ludFdp
dGhJbmxpbmVDaGlsZHJlbihjb25zdCBMYXlvdXQKIAogICAgIGlmIChjbG9zZXN0Qm94KSB7CiAg
ICAgICAgIGlmIChtb3ZlQ2FyZXRUb0JvdW5kYXJ5KSB7Ci0gICAgICAgICAgICBMYXlvdXRVbml0
IGZpcnN0TGluZVdpdGhDaGlsZHJlblRvcCA9IHN0ZDo6bWluKGZpcnN0TGluZVdpdGhDaGlsZHJl
bi0+Y29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3RpbmcoKSwgTGF5b3V0VW5pdChm
aXJzdExpbmVXaXRoQ2hpbGRyZW4tPmNvbnRlbnRMb2dpY2FsVG9wKCkpKTsKKyAgICAgICAgICAg
IGF1dG8gZmlyc3RMaW5lV2l0aENoaWxkcmVuVG9wID0gTGF5b3V0VW5pdCB7IHN0ZDo6bWluKGZp
cnN0TGluZVdpdGhDaGlsZHJlbi0+Y29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3Rp
bmcoKSwgZmlyc3RMaW5lV2l0aENoaWxkcmVuLT5jb250ZW50TG9naWNhbFRvcCgpKSB9OwogICAg
ICAgICAgICAgaWYgKHBvaW50SW5Mb2dpY2FsQ29udGVudHMueSgpIDwgZmlyc3RMaW5lV2l0aENo
aWxkcmVuVG9wCiAgICAgICAgICAgICAgICAgfHwgKGJsb2Nrc0FyZUZsaXBwZWQgJiYgcG9pbnRJ
bkxvZ2ljYWxDb250ZW50cy55KCkgPT0gZmlyc3RMaW5lV2l0aENoaWxkcmVuVG9wKSkgewogICAg
ICAgICAgICAgICAgIGF1dG8gYm94ID0gZmlyc3RMaW5lV2l0aENoaWxkcmVuLT5maXJzdExlYWZC
b3goKTsKQEAgLTM0NzQsOCArMzQ3NCw4IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjphZGRGb2N1
c1JpbmdSZWN0c0ZvcklubGluZUNoaWxkcmVuKFZlY3RvcjxMYXlvdXRSZWN0PiYgcmVjCiAgICAg
ICAgIGF1dG8gbGluZSA9IGJveC0+bGluZSgpOwogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBt
aXhpbmcgcGh5c2ljYWwgYW5kIGxvZ2ljYWwgY29vcmRpbmF0ZXMuCiAgICAgICAgIGF1dG8gdW5m
bGlwcGVkVmlzdWFsUmVjdCA9IGJveC0+dmlzdWFsUmVjdElnbm9yaW5nQmxvY2tEaXJlY3Rpb24o
KTsKLSAgICAgICAgYXV0byB0b3AgPSBzdGQ6Om1heChsaW5lLT5jb250ZW50TG9naWNhbFRvcCgp
LCBMYXlvdXRVbml0IHsgdW5mbGlwcGVkVmlzdWFsUmVjdC55KCkgfSk7Ci0gICAgICAgIGF1dG8g
Ym90dG9tID0gc3RkOjptaW4obGluZS0+Y29udGVudExvZ2ljYWxCb3R0b20oKSwgTGF5b3V0VW5p
dCB7IHVuZmxpcHBlZFZpc3VhbFJlY3QubWF4WSgpIH0pOworICAgICAgICBhdXRvIHRvcCA9IHN0
ZDo6bWF4KGxpbmUtPmNvbnRlbnRMb2dpY2FsVG9wKCksIHVuZmxpcHBlZFZpc3VhbFJlY3QueSgp
KTsKKyAgICAgICAgYXV0byBib3R0b20gPSBzdGQ6Om1pbihsaW5lLT5jb250ZW50TG9naWNhbEJv
dHRvbSgpLCB1bmZsaXBwZWRWaXN1YWxSZWN0Lm1heFkoKSk7CiAgICAgICAgIGF1dG8gcmVjdCA9
IExheW91dFJlY3QgeyBMYXlvdXRVbml0IHsgYWRkaXRpb25hbE9mZnNldC54KCkgKyB1bmZsaXBw
ZWRWaXN1YWxSZWN0LngoKSB9CiAgICAgICAgICAgICAsIGFkZGl0aW9uYWxPZmZzZXQueSgpICsg
dG9wCiAgICAgICAgICAgICAsIExheW91dFVuaXQgeyB1bmZsaXBwZWRWaXN1YWxSZWN0LndpZHRo
KCkgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggYmMwYTFh
MmUyY2UzMTBlMjRmMzc2M2QxMmY5MzM4ZTk1NTg4YTc2NS4uNWU5MWM2Yzg3MmQ1OThjN2RkMGZh
MzE1YWJlYTg4ODE5MWMyM2E4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1h
Z2UuY3BwCkBAIC0xMTAsOCArMTEwLDggQEAgdm9pZCBSZW5kZXJJbWFnZTo6Y29sbGVjdFNlbGVj
dGlvbkdlb21ldHJpZXMoVmVjdG9yPFNlbGVjdGlvbkdlb21ldHJ5PiYgZ2VvbWV0cmkKICAgICAg
ICAgICAgIGxpbmVFeHRlbnRSZWN0LnNldEhlaWdodChjb250YWluaW5nQmxvY2stPmhlaWdodCgp
KTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGF1dG8gc2VsZWN0aW9uTG9naWNh
bFJlY3QgPSBMaW5lU2VsZWN0aW9uOjpsb2dpY2FsUmVjdCgqcnVuLT5saW5lKCkpOwotICAgICAg
ICBhdXRvIHNlbGVjdGlvblRvcCA9ICFjb250YWluaW5nQmxvY2stPnN0eWxlKCkuaXNGbGlwcGVk
QmxvY2tzV3JpdGluZ01vZGUoKSA/IHNlbGVjdGlvbkxvZ2ljYWxSZWN0LnkoKSAtIGxvZ2ljYWxU
b3AoKSA6IGxvZ2ljYWxCb3R0b20oKSAtIHNlbGVjdGlvbkxvZ2ljYWxSZWN0Lm1heFkoKTsKKyAg
ICAgICAgSW50UmVjdCBzZWxlY3Rpb25Mb2dpY2FsUmVjdCA9IExpbmVTZWxlY3Rpb246OmxvZ2lj
YWxSZWN0KCpydW4tPmxpbmUoKSk7CisgICAgICAgIGludCBzZWxlY3Rpb25Ub3AgPSAhY29udGFp
bmluZ0Jsb2NrLT5zdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkgPyBzZWxlY3Rp
b25Mb2dpY2FsUmVjdC55KCkgLSBsb2dpY2FsVG9wKCkgOiBsb2dpY2FsQm90dG9tKCkgLSBzZWxl
Y3Rpb25Mb2dpY2FsUmVjdC5tYXhZKCk7CiAgICAgICAgIGltYWdlUmVjdCA9IEludFJlY3QgeyAw
LCAgc2VsZWN0aW9uVG9wLCBsb2dpY2FsV2lkdGgoKSwgc2VsZWN0aW9uTG9naWNhbFJlY3QuaGVp
Z2h0KCkgfTsKICAgICAgICAgaXNGaXJzdE9uTGluZSA9ICFydW4tPnByZXZpb3VzT25MaW5lKCk7
CiAgICAgICAgIGlzTGFzdE9uTGluZSA9ICFydW4tPm5leHRPbkxpbmUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggYzNmNTY3YTU5YzZjNjM0NTAxNmE0
ODFmNmMwM2IyYmJiMDM3YjJiNi4uYWI4NGYxNTY5M2I1YTQwYTAwNWViYWYxZTFkZGRhZDc0N2U1
NzYxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTk3
NCw4ICs5NzQsOCBAQCB2b2lkIFJlbmRlcklubGluZTo6cGFpbnRPdXRsaW5lKFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZgogCiAgICAgZm9yIChhdXRvIGJv
eCA9IElubGluZUl0ZXJhdG9yOjpmaXJzdElubGluZUJveEZvcigqdGhpcyk7IGJveDsgYm94LnRy
YXZlcnNlTmV4dElubGluZUJveCgpKSB7CiAgICAgICAgIGF1dG8gbGluZSA9IGJveC0+bGluZSgp
OwotICAgICAgICBhdXRvIHRvcCA9IHN0ZDo6bWF4KGxpbmUtPmNvbnRlbnRMb2dpY2FsVG9wKCks
IExheW91dFVuaXQoYm94LT5sb2dpY2FsVG9wKCkpKTsKLSAgICAgICAgYXV0byBib3R0b20gPSBz
dGQ6Om1pbihsaW5lLT5jb250ZW50TG9naWNhbEJvdHRvbSgpLCBMYXlvdXRVbml0KGJveC0+bG9n
aWNhbEJvdHRvbSgpKSk7CisgICAgICAgIGF1dG8gdG9wID0gTGF5b3V0VW5pdCB7IHN0ZDo6bWF4
KGxpbmUtPmNvbnRlbnRMb2dpY2FsVG9wKCksIGJveC0+bG9naWNhbFRvcCgpKSB9OworICAgICAg
ICBhdXRvIGJvdHRvbSA9IExheW91dFVuaXQgeyBzdGQ6Om1pbihsaW5lLT5jb250ZW50TG9naWNh
bEJvdHRvbSgpLCBib3gtPmxvZ2ljYWxCb3R0b20oKSkgfTsKICAgICAgICAgLy8gRklYTUU6IFRo
aXMgaXMgbWl4aW5nIHBoeXNpY2FsIGFuZCBsb2dpY2FsIGNvb3JkaW5hdGVzLgogICAgICAgICBy
ZWN0cy5hcHBlbmQoeyBMYXlvdXRVbml0KGJveC0+dmlzdWFsUmVjdElnbm9yaW5nQmxvY2tEaXJl
Y3Rpb24oKS54KCkpLCB0b3AsIExheW91dFVuaXQoYm94LT5sb2dpY2FsV2lkdGgoKSksIGJvdHRv
bSAtIHRvcCB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxh
Y2VkLmNwcAppbmRleCA1MzY2MmZkZjBhNzhhYWEyMDY3OTM3YzE1N2I1MTE4NDZkNjkzNjdmLi40
OTYyMTRiNmY3NWMyM2FmNTc2NzI0ZTQ4NWJlMTZhODhjZGQ5ZGE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTcxOSw3ICs3MTksNyBAQCB2b2lk
IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCiAKIFZpc2li
bGVQb3NpdGlvbiBSZW5kZXJSZXBsYWNlZDo6cG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQ
b2ludCYgcG9pbnQsIGNvbnN0IFJlbmRlckZyYWdtZW50Q29udGFpbmVyKiBmcmFnbWVudCkKIHsK
LSAgICBhdXRvIFt0b3AsIGJvdHRvbV0gPSBbJl0geworICAgIGF1dG8gW3RvcCwgYm90dG9tXSA9
IFsmXSgpIC0+IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+IHsKICAgICAgICAgaWYgKGF1dG8gcnVu
ID0gSW5saW5lSXRlcmF0b3I6OmJveEZvcigqdGhpcykpIHsKICAgICAgICAgICAgIGF1dG8gbGlu
ZSA9IHJ1bi0+bGluZSgpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGxpbmUt
PmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0aW5nKCksIExpbmVTZWxlY3Rpb246
OmxvZ2ljYWxCb3R0b20oKmxpbmUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9UZXh0Qm94UGFpbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEJv
eFBhaW50ZXIuY3BwCmluZGV4IGU2ODc4YzI4ZDE5NWE4MjQ3NzQ1OGJhZmJiYzgyN2JkMWFiNjA1
ODEuLjk0MzJkNDJiNDQxYTQ3YTM1MDE2NjRmMTg4YjY2OGYxYzg4NTNlNWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Qm94UGFpbnRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1RleHRCb3hQYWludGVyLmNwcApAQCAtMjk1LDcgKzI5NSw3IEBA
IHZvaWQgVGV4dEJveFBhaW50ZXI6OnBhaW50QmFja2dyb3VuZCh1bnNpZ25lZCBzdGFydE9mZnNl
dCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBjCiAgICAgLy8gVXNlIHNhbWUgeSBwb3NpdGlvbmluZyBh
bmQgaGVpZ2h0IGFzIGZvciBzZWxlY3Rpb24sIHNvIHRoYXQgd2hlbiB0aGUgc2VsZWN0aW9uIGFu
ZCB0aGlzIHN1YnJhbmdlIGFyZSBvbgogICAgIC8vIHRoZSBzYW1lIHdvcmQgdGhlcmUgYXJlIG5v
IHBpZWNlcyBzdGlja2luZyBvdXQuCiAgICAgYXV0byBkZWx0YVkgPSBMYXlvdXRVbml0IHsgbV9z
dHlsZS5pc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKCkgPyBzZWxlY3Rpb25Cb3R0b20gLSB0ZXh0
Qm94KCkubG9naWNhbEJvdHRvbSgpIDogdGV4dEJveCgpLmxvZ2ljYWxUb3AoKSAtIHNlbGVjdGlv
blRvcCB9OwotICAgIGF1dG8gc2VsZWN0aW9uSGVpZ2h0ID0gTGF5b3V0VW5pdCB7IHN0ZDo6bWF4
KDBfbHUsIHNlbGVjdGlvbkJvdHRvbSAtIHNlbGVjdGlvblRvcCkgfTsKKyAgICBhdXRvIHNlbGVj
dGlvbkhlaWdodCA9IExheW91dFVuaXQgeyBzdGQ6Om1heCgwLmYsIHNlbGVjdGlvbkJvdHRvbSAt
IHNlbGVjdGlvblRvcCkgfTsKICAgICBhdXRvIHNlbGVjdGlvblJlY3QgPSBMYXlvdXRSZWN0IHsg
TGF5b3V0VW5pdChtX3BhaW50UmVjdC54KCkpLCBMYXlvdXRVbml0KG1fcGFpbnRSZWN0LnkoKSAt
IGRlbHRhWSksIExheW91dFVuaXQodGV4dEJveCgpLmxvZ2ljYWxXaWR0aCgpKSwgc2VsZWN0aW9u
SGVpZ2h0IH07CiAgICAgZm9udENhc2NhZGUoKS5hZGp1c3RTZWxlY3Rpb25SZWN0Rm9yVGV4dCht
X3BhaW50VGV4dFJ1biwgc2VsZWN0aW9uUmVjdCwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7CiAK
</data>
<flag name="commit-queue"
          id="483075"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455176</attachid>
            <date>2022-03-19 14:27:37 -0700</date>
            <delta_ts>2022-03-19 17:46:43 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-238106-20220319142736.patch</filename>
            <type>text/plain</type>
            <size>23431</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWM3YTRhZjg3OGMyZmMy
ZTJmZDYyYmJkNmUyMGMyYTgwOGYxMmFlYS4uZTRiOTI2OTdkY2ZiZTNlOGU1NjM3OWZlNDdmMDU4
ODY1MTgzYTY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIyLTAzLTE5ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbSUZDXVtJbnRlZ3JhdGlvbl0g
SW5saW5lSXRlcmF0b3I6OkxpbmUgZnVuY3Rpb25zIHNob3VsZCBhbGwgcmV0dXJuIGZsb2F0IHZh
bHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4
MTA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgRGlz
cGxheSBzdHJ1Y3R1cmVzIGFyZSBzdXBwb3NlZCB0byBiZSBhbGwgZmxvYXQgYmFzZWQuCisKKyAg
ICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmg6CisgICAgICAg
IChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZTo6bGluZUJveEhlaWdodCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6Y29udGVudFN0YXJ0SW5CbG9ja0RpcmVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZTo6Y29udGVudExv
Z2ljYWxUb3AgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmU6
OmNvbnRlbnRMb2dpY2FsQm90dG9tIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0
ZXJhdG9yOjpMaW5lOjpjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZTo6Y29udGVudExv
Z2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3RpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SW5saW5lSXRlcmF0b3I6OkxpbmU6OmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xs
b3dpbmdMaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5l
OjpsaW5lQm94VG9wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpM
aW5lOjpsaW5lQm94Qm90dG9tIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24v
SW5saW5lSXRlcmF0b3JMaW5lTGVnYWN5UGF0aC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5l
SXRlcmF0b3I6OkxpbmVJdGVyYXRvckxlZ2FjeVBhdGg6OmNvbnRlbnRMb2dpY2FsVG9wIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3JMZWdhY3lQ
YXRoOjpjb250ZW50TG9naWNhbEJvdHRvbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxp
bmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTGVnYWN5UGF0aDo6Y29udGVudExvZ2ljYWxUb3BBZGp1
c3RlZEZvclByZWNlZGluZ0xpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRl
cmF0b3I6OkxpbmVJdGVyYXRvckxlZ2FjeVBhdGg6OmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRG
b3JIaXRUZXN0aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpM
aW5lSXRlcmF0b3JMZWdhY3lQYXRoOjpjb250ZW50TG9naWNhbEJvdHRvbUFkanVzdGVkRm9yRm9s
bG93aW5nTGluZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGlu
ZUl0ZXJhdG9yTGVnYWN5UGF0aDo6bGluZUJveFRvcCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTGVnYWN5UGF0aDo6bGluZUJveEJvdHRvbSBj
b25zdCk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZU1v
ZGVyblBhdGguaDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0
b3JNb2Rlcm5QYXRoOjpjb250ZW50TG9naWNhbFRvcCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTW9kZXJuUGF0aDo6Y29udGVudExvZ2ljYWxC
b3R0b20gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmVJdGVy
YXRvck1vZGVyblBhdGg6OmxpbmVCb3hUb3AgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5s
aW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvck1vZGVyblBhdGg6OmxpbmVCb3hCb3R0b20gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvck1vZGVyblBh
dGg6OmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5lIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3JNb2Rlcm5QYXRoOjpj
b250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yTW9kZXJuUGF0aDo6Y29udGVudExv
Z2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUgY29uc3QpOgorICAgICAgICAqIGxh
eW91dC9pbnRlZ3JhdGlvbi9MaW5lU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpMaW5l
U2VsZWN0aW9uOjpsb2dpY2FsVG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246
OmxvZ2ljYWxCb3R0b20pOgorICAgICAgICAoV2ViQ29yZTo6TGluZVNlbGVjdGlvbjo6bG9naWNh
bFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6TGluZVNlbGVjdGlvbjo6cGh5c2ljYWxSZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246OmxvZ2ljYWxUb3BBZGp1c3RlZEZvclBy
ZWNlZGluZ0Jsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6YWRqdXN0RW5jbG9zaW5nVG9wRm9y
UHJlY2VkaW5nQmxvY2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93
OjppbmxpbmVTZWxlY3Rpb25HYXBzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxv
dzo6cG9zaXRpb25Gb3JQb2ludFdpdGhJbmxpbmVDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9ja0Zsb3c6OmFkZEZvY3VzUmluZ1JlY3RzRm9ySW5saW5lQ2hpbGRyZW4pOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVySW5saW5lOjpwYWludE91dGxpbmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6cG9zaXRpb25G
b3JQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRCb3hQYWludGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRCb3hQYWludGVyOjpwYWludEJhY2tncm91bmQpOgorCiAyMDIyLTAz
LTE5ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbSUZDXVtJbnRl
Z3JhdGlvbl0gUmVtb3ZlIHJlZHVuZGFudCBJbmxpbmVJdGVyYXRvcjo6TGluZTo6Y2xvc2VzdEJv
eEZvclBvaW50IGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmgKaW5kZXggY2EyMjA4Zjg4ZGE0YWQyYTU4Y2Fm
MTI1YmViNWMwODU5ZTMxMDU0Ni4uNzEyZGU5YzkxMTI2YzQyMmE2MTYwNGUzM2U4ZDk1MjU2MmJm
NzM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGlu
ZUl0ZXJhdG9yTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9J
bmxpbmVJdGVyYXRvckxpbmUuaApAQCAtNTQsMjAgKzU0LDE5IEBAIHB1YmxpYzoKIAogICAgIExp
bmUoUGF0aFZhcmlhbnQmJik7CiAKLSAgICBMYXlvdXRVbml0IGxpbmVCb3hUb3AoKSBjb25zdDsK
LSAgICBMYXlvdXRVbml0IGxpbmVCb3hCb3R0b20oKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGxp
bmVCb3hIZWlnaHQoKSBjb25zdCB7IHJldHVybiBsaW5lQm94Qm90dG9tKCkgLSBsaW5lQm94VG9w
KCk7IH0KKyAgICBmbG9hdCBsaW5lQm94VG9wKCkgY29uc3Q7CisgICAgZmxvYXQgbGluZUJveEJv
dHRvbSgpIGNvbnN0OworICAgIGZsb2F0IGxpbmVCb3hIZWlnaHQoKSBjb25zdCB7IHJldHVybiBs
aW5lQm94Qm90dG9tKCkgLSBsaW5lQm94VG9wKCk7IH0KIAotICAgIC8vIEZJWE1FOiBNYWtlIHN1
cmUgd2UgdXNlIHRoZSBzYW1lIHR5cGUgZm9yIGNvbnRlbnQgZ2VvbWV0cnkuCi0gICAgTGF5b3V0
VW5pdCBjb250ZW50TG9naWNhbFRvcCgpIGNvbnN0OwotICAgIExheW91dFVuaXQgY29udGVudExv
Z2ljYWxCb3R0b20oKSBjb25zdDsKKyAgICBmbG9hdCBjb250ZW50TG9naWNhbFRvcCgpIGNvbnN0
OworICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsQm90dG9tKCkgY29uc3Q7CiAgICAgZmxvYXQgY29u
dGVudExvZ2ljYWxMZWZ0KCkgY29uc3Q7CiAgICAgZmxvYXQgY29udGVudExvZ2ljYWxSaWdodCgp
IGNvbnN0OwogICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsV2lkdGgoKSBjb25zdDsKIAotICAgIExh
eW91dFVuaXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3RpbmcoKSBjb25zdDsK
LSAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5l
KCkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbEJvdHRvbUFkanVzdGVkRm9y
Rm9sbG93aW5nTGluZSgpIGNvbnN0OworICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0
ZWRGb3JIaXRUZXN0aW5nKCkgY29uc3Q7CisgICAgZmxvYXQgY29udGVudExvZ2ljYWxUb3BBZGp1
c3RlZEZvclByZWNlZGluZ0xpbmUoKSBjb25zdDsKKyAgICBmbG9hdCBjb250ZW50TG9naWNhbEJv
dHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgpIGNvbnN0OwogCiAgICAgY29uc3QgUmVuZGVy
QmxvY2tGbG93JiBjb250YWluaW5nQmxvY2soKSBjb25zdDsKICAgICBSZW5kZXJGcmFnbWVudENv
bnRhaW5lciogY29udGFpbmluZ0ZyYWdtZW50KCkgY29uc3Q7CkBAIC0xMjMsNyArMTIyLDcgQEAg
TGluZUl0ZXJhdG9yIGxhc3RMaW5lRm9yKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYpOwogTGVhZkJv
eEl0ZXJhdG9yIGNsb3Nlc3RCb3hGb3JIb3Jpem9udGFsUG9zaXRpb24oY29uc3QgTGluZSYsIGZs
b2F0IGhvcml6b250YWxQb3NpdGlvbiwgYm9vbCBlZGl0YWJsZU9ubHkgPSBmYWxzZSk7CiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1pbmxpbmUg
TGF5b3V0VW5pdCBjb250ZW50U3RhcnRJbkJsb2NrRGlyZWN0aW9uKGNvbnN0IExpbmUmIGxpbmUp
CitpbmxpbmUgZmxvYXQgY29udGVudFN0YXJ0SW5CbG9ja0RpcmVjdGlvbihjb25zdCBMaW5lJiBs
aW5lKQogewogICAgIGlmICghbGluZS5jb250YWluaW5nQmxvY2soKS5zdHlsZSgpLmlzRmxpcHBl
ZEJsb2Nrc1dyaXRpbmdNb2RlKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om1heChsaW5lLmNvbnRl
bnRMb2dpY2FsVG9wKCksIGxpbmUuY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3Rp
bmcoKSk7CkBAIC0xMzUsNDkgKzEzNCw0OSBAQCBpbmxpbmUgTGluZTo6TGluZShQYXRoVmFyaWFu
dCYmIHBhdGgpCiB7CiB9CiAKLWlubGluZSBMYXlvdXRVbml0IExpbmU6OmNvbnRlbnRMb2dpY2Fs
VG9wKCkgY29uc3QKK2lubGluZSBmbG9hdCBMaW5lOjpjb250ZW50TG9naWNhbFRvcCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oY29uc3QgYXV0
byYgcGF0aCkgewogICAgICAgICByZXR1cm4gcGF0aC5jb250ZW50TG9naWNhbFRvcCgpOwogICAg
IH0pOwogfQogCi1pbmxpbmUgTGF5b3V0VW5pdCBMaW5lOjpjb250ZW50TG9naWNhbEJvdHRvbSgp
IGNvbnN0CitpbmxpbmUgZmxvYXQgTGluZTo6Y29udGVudExvZ2ljYWxCb3R0b20oKSBjb25zdAog
ewogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8m
IHBhdGgpIHsKICAgICAgICAgcmV0dXJuIHBhdGguY29udGVudExvZ2ljYWxCb3R0b20oKTsKICAg
ICB9KTsKIH0KIAotaW5saW5lIExheW91dFVuaXQgTGluZTo6Y29udGVudExvZ2ljYWxUb3BBZGp1
c3RlZEZvclByZWNlZGluZ0xpbmUoKSBjb25zdAoraW5saW5lIGZsb2F0IExpbmU6OmNvbnRlbnRM
b2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5lKCkgY29uc3QKIHsKICAgICByZXR1cm4g
V1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShjb25zdCBhdXRvJiBwYXRoKSB7CiAgICAg
ICAgIHJldHVybiBwYXRoLmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdMaW5l
KCk7CiAgICAgfSk7CiB9CiAKLWlubGluZSBMYXlvdXRVbml0IExpbmU6OmNvbnRlbnRMb2dpY2Fs
VG9wQWRqdXN0ZWRGb3JIaXRUZXN0aW5nKCkgY29uc3QKK2lubGluZSBmbG9hdCBMaW5lOjpjb250
ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oY29uc3QgYXV0byYgcGF0aCkgewogICAg
ICAgICByZXR1cm4gcGF0aC5jb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZygp
OwogICAgIH0pOwogfQogCi1pbmxpbmUgTGF5b3V0VW5pdCBMaW5lOjpjb250ZW50TG9naWNhbEJv
dHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgpIGNvbnN0CitpbmxpbmUgZmxvYXQgTGluZTo6
Y29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKSBjb25zdAogewog
ICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8mIHBh
dGgpIHsKICAgICAgICAgcmV0dXJuIHBhdGguY29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZv
ckZvbGxvd2luZ0xpbmUoKTsKICAgICB9KTsKIH0KIAotaW5saW5lIExheW91dFVuaXQgTGluZTo6
bGluZUJveFRvcCgpIGNvbnN0CitpbmxpbmUgZmxvYXQgTGluZTo6bGluZUJveFRvcCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oY29uc3QgYXV0
byYgcGF0aCkgewogICAgICAgICByZXR1cm4gcGF0aC5saW5lQm94VG9wKCk7CiAgICAgfSk7CiB9
CiAKLWlubGluZSBMYXlvdXRVbml0IExpbmU6OmxpbmVCb3hCb3R0b20oKSBjb25zdAoraW5saW5l
IGZsb2F0IExpbmU6OmxpbmVCb3hCb3R0b20oKSBjb25zdAogewogICAgIHJldHVybiBXVEY6OnN3
aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8mIHBhdGgpIHsKICAgICAgICAgcmV0
dXJuIHBhdGgubGluZUJveEJvdHRvbSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZUxlZ2FjeVBhdGguaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmVMZWdhY3lQYXRoLmgK
aW5kZXggZmMzZjRmNDIzMjIwODcxNDY0ZGExZTZhYmJhOGJkY2FjYzZlOTlmZC4uNjM2ZTA0ZmQ4
OWNkY2I2YmQ4MWExOTIzOTUzM2E5MjliYjI1NjJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZUxlZ2FjeVBhdGguaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lTGVn
YWN5UGF0aC5oCkBAIC00MywxMyArNDMsMTMgQEAgcHVibGljOgogICAgIExpbmVJdGVyYXRvckxl
Z2FjeVBhdGgmIG9wZXJhdG9yPShjb25zdCBMaW5lSXRlcmF0b3JMZWdhY3lQYXRoJikgPSBkZWZh
dWx0OwogICAgIExpbmVJdGVyYXRvckxlZ2FjeVBhdGgmIG9wZXJhdG9yPShMaW5lSXRlcmF0b3JM
ZWdhY3lQYXRoJiYpID0gZGVmYXVsdDsKIAotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxU
b3AoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPmxpbmVUb3AoKTsgfQotICAgIExh
eW91dFVuaXQgY29udGVudExvZ2ljYWxCb3R0b20oKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxp
bmVCb3gtPmxpbmVCb3R0b20oKTsgfQotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxUb3BB
ZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gt
PnNlbGVjdGlvblRvcCgpOyB9Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbFRvcEFkanVz
dGVkRm9ySGl0VGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+c2VsZWN0
aW9uVG9wKExlZ2FjeVJvb3RJbmxpbmVCb3g6OkZvckhpdFRlc3Rpbmc6Olllcyk7IH0KLSAgICBM
YXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCkg
Y29uc3QgeyByZXR1cm4gbV9yb290SW5saW5lQm94LT5zZWxlY3Rpb25Cb3R0b20oKTsgfQotICAg
IExheW91dFVuaXQgbGluZUJveFRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+
bGluZUJveFRvcCgpOyB9Ci0gICAgTGF5b3V0VW5pdCBsaW5lQm94Qm90dG9tKCkgY29uc3QgeyBy
ZXR1cm4gbV9yb290SW5saW5lQm94LT5saW5lQm94Qm90dG9tKCk7IH0KKyAgICBmbG9hdCBjb250
ZW50TG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+bGluZVRvcCgp
LnRvRmxvYXQoKTsgfQorICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsQm90dG9tKCkgY29uc3QgeyBy
ZXR1cm4gbV9yb290SW5saW5lQm94LT5saW5lQm90dG9tKCkudG9GbG9hdCgpOyB9CisgICAgZmxv
YXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSBjb25zdCB7IHJl
dHVybiBtX3Jvb3RJbmxpbmVCb3gtPnNlbGVjdGlvblRvcCgpLnRvRmxvYXQoKTsgfQorICAgIGZs
b2F0IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JIaXRUZXN0aW5nKCkgY29uc3QgeyByZXR1
cm4gbV9yb290SW5saW5lQm94LT5zZWxlY3Rpb25Ub3AoTGVnYWN5Um9vdElubGluZUJveDo6Rm9y
SGl0VGVzdGluZzo6WWVzKS50b0Zsb2F0KCk7IH0KKyAgICBmbG9hdCBjb250ZW50TG9naWNhbEJv
dHRvbUFkanVzdGVkRm9yRm9sbG93aW5nTGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGlu
ZUJveC0+c2VsZWN0aW9uQm90dG9tKCkudG9GbG9hdCgpOyB9CisgICAgZmxvYXQgbGluZUJveFRv
cCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+bGluZUJveFRvcCgpLnRvRmxvYXQo
KTsgfQorICAgIGZsb2F0IGxpbmVCb3hCb3R0b20oKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxp
bmVCb3gtPmxpbmVCb3hCb3R0b20oKS50b0Zsb2F0KCk7IH0KIAogICAgIGZsb2F0IGNvbnRlbnRM
b2dpY2FsTGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+bG9naWNhbExlZnQo
KTsgfQogICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3Jv
b3RJbmxpbmVCb3gtPmxvZ2ljYWxSaWdodCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lTW9kZXJuUGF0aC5oIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZU1vZGVyblBh
dGguaAppbmRleCA1ZGIyYzNiZjAzYjU5YjQ3ODBiY2M0NDUyN2UwNjZjMTQxZjBlOGM2Li4zNzYx
NWU1ZjFlMjVmNTMwYjEyZmU4OGZhNjhhMzg2YWUyOWYxYWIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lTW9kZXJuUGF0aC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxp
bmVNb2Rlcm5QYXRoLmgKQEAgLTQ5LDE4ICs0OSwxOCBAQCBwdWJsaWM6CiAgICAgTGluZUl0ZXJh
dG9yTW9kZXJuUGF0aCYgb3BlcmF0b3I9KGNvbnN0IExpbmVJdGVyYXRvck1vZGVyblBhdGgmKSA9
IGRlZmF1bHQ7CiAgICAgTGluZUl0ZXJhdG9yTW9kZXJuUGF0aCYgb3BlcmF0b3I9KExpbmVJdGVy
YXRvck1vZGVyblBhdGgmJikgPSBkZWZhdWx0OwogCi0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9n
aWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdFJvdW5kKGxpbmUo
KS5lbmNsb3NpbmdDb250ZW50VG9wKCkpOyB9Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNh
bEJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdFJvdW5kKGxpbmUo
KS5lbmNsb3NpbmdDb250ZW50Qm90dG9tKCkpOyB9Ci0gICAgTGF5b3V0VW5pdCBsaW5lQm94VG9w
KCkgY29uc3QgeyByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Um91bmQobGluZSgpLmxpbmVC
b3hUb3AoKSk7IH0KLSAgICBMYXlvdXRVbml0IGxpbmVCb3hCb3R0b20oKSBjb25zdCB7IHJldHVy
biBMYXlvdXRVbml0Ojpmcm9tRmxvYXRSb3VuZChsaW5lKCkubGluZUJveEJvdHRvbSgpKTsgfQor
ICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsVG9wKCkgY29uc3QgeyByZXR1cm4gbGluZSgpLmVuY2xv
c2luZ0NvbnRlbnRUb3AoKTsgfQorICAgIGZsb2F0IGNvbnRlbnRMb2dpY2FsQm90dG9tKCkgY29u
c3QgeyByZXR1cm4gbGluZSgpLmVuY2xvc2luZ0NvbnRlbnRCb3R0b20oKTsgfQorICAgIGZsb2F0
IGxpbmVCb3hUb3AoKSBjb25zdCB7IHJldHVybiBsaW5lKCkubGluZUJveFRvcCgpOyB9CisgICAg
ZmxvYXQgbGluZUJveEJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIGxpbmUoKS5saW5lQm94Qm90dG9t
KCk7IH0KIAotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNl
ZGluZ0xpbmUoKSBjb25zdCB7IHJldHVybiAhbV9saW5lSW5kZXggPyBjb250ZW50TG9naWNhbFRv
cCgpIDogTGluZUl0ZXJhdG9yTW9kZXJuUGF0aCgqbV9pbmxpbmVDb250ZW50LCBtX2xpbmVJbmRl
eCAtIDEpLmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCk7IH0K
KyAgICBmbG9hdCBjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSgpIGNv
bnN0IHsgcmV0dXJuICFtX2xpbmVJbmRleCA/IGNvbnRlbnRMb2dpY2FsVG9wKCkgOiBMaW5lSXRl
cmF0b3JNb2Rlcm5QYXRoKCptX2lubGluZUNvbnRlbnQsIG1fbGluZUluZGV4IC0gMSkuY29udGVu
dExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKTsgfQogICAgIC8vIEZJWE1F
OiBSZW1vdmUgdGhlIGNvbnRhaW5pbmdCbG9jaygpLmJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKSBv
ZmZzZXQgYWZ0ZXIgcmV0aXJpbmcgbGVnYWN5IGxpbmUgbGF5b3V0LiBJdCBhbHNvIHJlcXVpcmVz
IGNoYW5nZXMgaW4gUmVuZGVyVGV4dDo6cG9zaXRpb25Gb3JQb2ludCB0byBmaW5kIHRoZSBmaXJz
dCBsaW5lIHdpdGggb2Zmc2V0LgogICAgIC8vIC0gdGhlICJiZWZvcmUiIHZhbHVlIGlzIGFscmVh
ZHkgZmFjdG9yZWQgaW4gdG8gdGhlIGxpbmUgb2Zmc2V0CiAgICAgLy8gLSB0aGlzIGxvZ2ljIG5l
Z2F0ZXMgdGhlIGZpcnN0IGxpbmUncyBuYXR1cmFsIG9mZnNldCAoZS5nLiBibG9jayBoYXMgbm8g
Ym9yZGVyL3BhZGRpbmcgYnV0IHRoZSBmaXJzdCBsaW5lIGhhcyBhIGNvbXB1dGVkIG9mZnNldCku
Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZygp
IGNvbnN0IHsgcmV0dXJuICFtX2xpbmVJbmRleCA/IGNvbnRhaW5pbmdCbG9jaygpLmJvcmRlckFu
ZFBhZGRpbmdCZWZvcmUoKSA6IGNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdM
aW5lKCk7IH07CisgICAgZmxvYXQgY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3Rp
bmcoKSBjb25zdCB7IHJldHVybiAhbV9saW5lSW5kZXggPyBjb250YWluaW5nQmxvY2soKS5ib3Jk
ZXJBbmRQYWRkaW5nQmVmb3JlKCkudG9GbG9hdCgpIDogY29udGVudExvZ2ljYWxUb3BBZGp1c3Rl
ZEZvclByZWNlZGluZ0xpbmUoKTsgfTsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50LgotICAgIExh
eW91dFVuaXQgY29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKSBj
b25zdCB7IHJldHVybiBjb250ZW50TG9naWNhbEJvdHRvbSgpOyB9CisgICAgZmxvYXQgY29udGVu
dExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xpbmUoKSBjb25zdCB7IHJldHVybiBj
b250ZW50TG9naWNhbEJvdHRvbSgpOyB9CiAKICAgICBmbG9hdCBjb250ZW50TG9naWNhbExlZnQo
KSBjb25zdCB7IHJldHVybiBsaW5lKCkubGluZUJveExlZnQoKSArIGxpbmUoKS5jb250ZW50TG9n
aWNhbE9mZnNldCgpOyB9CiAgICAgZmxvYXQgY29udGVudExvZ2ljYWxSaWdodCgpIGNvbnN0IHsg
cmV0dXJuIGNvbnRlbnRMb2dpY2FsTGVmdCgpICsgbGluZSgpLmNvbnRlbnRMb2dpY2FsV2lkdGgo
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xpbmVT
ZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MaW5lU2VsZWN0
aW9uLmgKaW5kZXggZjJjODgzZTAxNzBjMWQ3MWJhZjc1OTRiOWRjYTQ1Yzg0N2E1NTYwNC4uYzMy
ZjZmOTU1YjE1YzZkYTg4YWE2NTc5NGM3NDY1MjM4ODk5NGVjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xpbmVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGluZVNlbGVjdGlvbi5oCkBAIC0zMiwxNSArMzIs
MTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBMaW5lU2VsZWN0aW9uIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgTGF5b3V0VW5pdCBsb2dpY2FsVG9wKGNvbnN0IElubGluZUl0ZXJhdG9y
OjpMaW5lJiBsaW5lKSB7IHJldHVybiBsaW5lLmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQ
cmVjZWRpbmdMaW5lKCk7IH0KLSAgICBzdGF0aWMgTGF5b3V0VW5pdCBsb2dpY2FsQm90dG9tKGNv
bnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKSB7IHJldHVybiBsaW5lLmNvbnRlbnRMb2dp
Y2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCk7IH0KKyAgICBzdGF0aWMgZmxvYXQg
bG9naWNhbFRvcChjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkgeyByZXR1cm4gbGlu
ZS5jb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSgpOyB9CisgICAgc3Rh
dGljIGZsb2F0IGxvZ2ljYWxCb3R0b20oY29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUp
IHsgcmV0dXJuIGxpbmUuY29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZvckZvbGxvd2luZ0xp
bmUoKTsgfQogCi0gICAgc3RhdGljIExheW91dFJlY3QgbG9naWNhbFJlY3QoY29uc3QgSW5saW5l
SXRlcmF0b3I6OkxpbmUmIGxpbmUpCisgICAgc3RhdGljIEZsb2F0UmVjdCBsb2dpY2FsUmVjdChj
b25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkKICAgICB7Ci0gICAgICAgIHJldHVybiB7
IExheW91dFBvaW50IHsgbGluZS5jb250ZW50TG9naWNhbExlZnQoKSwgbGluZS5jb250ZW50TG9n
aWNhbFRvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSgpIH0sIExheW91dFBvaW50IHsgbGluZS5j
b250ZW50TG9naWNhbFJpZ2h0KCksIGxpbmUuY29udGVudExvZ2ljYWxCb3R0b21BZGp1c3RlZEZv
ckZvbGxvd2luZ0xpbmUoKSB9IH07CisgICAgICAgIHJldHVybiB7IEZsb2F0UG9pbnQgeyBsaW5l
LmNvbnRlbnRMb2dpY2FsTGVmdCgpLCBsaW5lLmNvbnRlbnRMb2dpY2FsVG9wQWRqdXN0ZWRGb3JQ
cmVjZWRpbmdMaW5lKCkgfSwgRmxvYXRQb2ludCB7IGxpbmUuY29udGVudExvZ2ljYWxSaWdodCgp
LCBsaW5lLmNvbnRlbnRMb2dpY2FsQm90dG9tQWRqdXN0ZWRGb3JGb2xsb3dpbmdMaW5lKCkgfSB9
OwogICAgIH0KIAotICAgIHN0YXRpYyBMYXlvdXRSZWN0IHBoeXNpY2FsUmVjdChjb25zdCBJbmxp
bmVJdGVyYXRvcjo6TGluZSYgbGluZSkKKyAgICBzdGF0aWMgRmxvYXRSZWN0IHBoeXNpY2FsUmVj
dChjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkKICAgICB7CiAgICAgICAgIGF1dG8g
cGh5c2ljYWxSZWN0ID0gbG9naWNhbFJlY3QobGluZSk7CiAgICAgICAgIGlmICghbGluZS5pc0hv
cml6b250YWwoKSkKQEAgLTQ5LDEwICs0OSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBw
aHlzaWNhbFJlY3Q7CiAgICAgfQogCi0gICAgc3RhdGljIExheW91dFVuaXQgbG9naWNhbFRvcEFk
anVzdGVkRm9yUHJlY2VkaW5nQmxvY2soY29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUp
CisgICAgc3RhdGljIGZsb2F0IGxvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2NrKGNv
bnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKQogICAgIHsKICAgICAgICAgLy8gRklYTUU6
IE1vdmUgYWRqdXN0RW5jbG9zaW5nVG9wRm9yUHJlY2VkaW5nQmxvY2sgZnJvbSBSZW5kZXJCbG9j
a0Zsb3cgdG8gaGVyZS4KLSAgICAgICAgcmV0dXJuIGxpbmUuY29udGFpbmluZ0Jsb2NrKCkuYWRq
dXN0RW5jbG9zaW5nVG9wRm9yUHJlY2VkaW5nQmxvY2sobGluZS5jb250ZW50TG9naWNhbFRvcEFk
anVzdGVkRm9yUHJlY2VkaW5nTGluZSgpKTsKKyAgICAgICAgcmV0dXJuIGxpbmUuY29udGFpbmlu
Z0Jsb2NrKCkuYWRqdXN0RW5jbG9zaW5nVG9wRm9yUHJlY2VkaW5nQmxvY2soTGF5b3V0VW5pdCB7
IGxpbmUuY29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSB9KTsKICAg
ICB9CiAKICAgICBzdGF0aWMgUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZSBzZWxlY3Rpb25T
dGF0ZShjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggM2MwMzFiMzczNzllOTM3NjVlMTBh
ZTI0NmVjZDIzZWViNmFhMGYzMy4uMDMyNTllZjM1ZjI3MGJjOWQ0YWM1NjU2ZGJlZDFlOTgxMmNk
YmQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxv
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAK
QEAgLTMwNjcsNyArMzA2Nyw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2tGbG93OjphZGp1c3RF
bmNsb3NpbmdUb3BGb3JQcmVjZWRpbmdCbG9jayhMYXlvdXRVbml0IHRvcCkKICAgICAgICAgICAg
IHJldHVybiB0b3A7CiAKICAgICAgICAgYXV0byBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbSA9IExp
bmVTZWxlY3Rpb246OmxvZ2ljYWxCb3R0b20oKmxhc3RMaW5lKSArIG9mZnNldFRvQmxvY2tCZWZv
cmUuaGVpZ2h0KCk7Ci0gICAgICAgIHRvcCA9IHN0ZDo6bWF4KHRvcCwgbGFzdExpbmVTZWxlY3Rp
b25Cb3R0b20pOworICAgICAgICB0b3AgPSBzdGQ6Om1heCh0b3AsIExheW91dFVuaXQgeyBsYXN0
TGluZVNlbGVjdGlvbkJvdHRvbSB9KTsKICAgICB9CiAgICAgcmV0dXJuIHRvcDsKIH0KQEAgLTMx
NjUsOCArMzE2NSw4IEBAIEdhcFJlY3RzIFJlbmRlckJsb2NrRmxvdzo6aW5saW5lU2VsZWN0aW9u
R2FwcyhSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvCiAKICAgICAvLyBOb3cgcGFp
bnQgdGhlIGdhcHMgZm9yIHRoZSBsaW5lcy4KICAgICBmb3IgKDsgbGluZSAmJiBoYXNTZWxlY3Rl
ZENoaWxkcmVuKGxpbmUpOyBsaW5lLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGF1dG8gc2Vs
ZWN0aW9uVG9wID0gIExpbmVTZWxlY3Rpb246OmxvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGlu
Z0Jsb2NrKCpsaW5lKTsKLSAgICAgICAgYXV0byBzZWxlY3Rpb25IZWlnaHQgPSBzdGQ6Om1heCgw
X2x1LCBMaW5lU2VsZWN0aW9uOjpsb2dpY2FsQm90dG9tKCpsaW5lKSAtIHNlbGVjdGlvblRvcCk7
CisgICAgICAgIGF1dG8gc2VsZWN0aW9uVG9wID0gIExheW91dFVuaXQgeyBMaW5lU2VsZWN0aW9u
Ojpsb2dpY2FsVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygqbGluZSkgfTsKKyAgICAgICAg
YXV0byBzZWxlY3Rpb25IZWlnaHQgPSBMYXlvdXRVbml0IHsgc3RkOjptYXgoMC5mLCBMaW5lU2Vs
ZWN0aW9uOjpsb2dpY2FsQm90dG9tKCpsaW5lKSAtIHNlbGVjdGlvblRvcCkgfTsKIAogICAgICAg
ICBpZiAoIWNvbnRhaW5zU3RhcnQgJiYgIWxhc3RTZWxlY3RlZExpbmUgJiYKICAgICAgICAgICAg
IHNlbGVjdGlvblN0YXRlKCkgIT0gSGlnaGxpZ2h0U3RhdGU6OlN0YXJ0ICYmIHNlbGVjdGlvblN0
YXRlKCkgIT0gSGlnaGxpZ2h0U3RhdGU6OkJvdGggJiYgIWlzUnVieUJhc2UoKSkKQEAgLTMxODgs
NyArMzE4OCw3IEBAIEdhcFJlY3RzIFJlbmRlckJsb2NrRmxvdzo6aW5saW5lU2VsZWN0aW9uR2Fw
cyhSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvCiAKICAgICBpZiAobGFzdFNlbGVj
dGVkTGluZSAmJiBzZWxlY3Rpb25TdGF0ZSgpICE9IEhpZ2hsaWdodFN0YXRlOjpFbmQgJiYgc2Vs
ZWN0aW9uU3RhdGUoKSAhPSBIaWdobGlnaHRTdGF0ZTo6Qm90aCkgewogICAgICAgICAvLyBVcGRh
dGUgb3VyIGxhc3RZIHRvIGJlIHRoZSBib3R0b20gb2YgdGhlIGxhc3Qgc2VsZWN0ZWQgbGluZS4K
LSAgICAgICAgYXV0byBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbSA9IExpbmVTZWxlY3Rpb246Omxv
Z2ljYWxCb3R0b20oKmxhc3RTZWxlY3RlZExpbmUpOworICAgICAgICBhdXRvIGxhc3RMaW5lU2Vs
ZWN0aW9uQm90dG9tID0gTGF5b3V0VW5pdCB7IExpbmVTZWxlY3Rpb246OmxvZ2ljYWxCb3R0b20o
Kmxhc3RTZWxlY3RlZExpbmUpIH07CiAgICAgICAgIGxhc3RMb2dpY2FsVG9wID0gYmxvY2tEaXJl
Y3Rpb25PZmZzZXQocm9vdEJsb2NrLCBvZmZzZXRGcm9tUm9vdEJsb2NrKSArIGxhc3RMaW5lU2Vs
ZWN0aW9uQm90dG9tOwogICAgICAgICBsYXN0TG9naWNhbExlZnQgPSBsb2dpY2FsTGVmdFNlbGVj
dGlvbk9mZnNldChyb290QmxvY2ssIGxhc3RMaW5lU2VsZWN0aW9uQm90dG9tLCBjYWNoZSk7CiAg
ICAgICAgIGxhc3RMb2dpY2FsUmlnaHQgPSBsb2dpY2FsUmlnaHRTZWxlY3Rpb25PZmZzZXQocm9v
dEJsb2NrLCBsYXN0TGluZVNlbGVjdGlvbkJvdHRvbSwgY2FjaGUpOwpAQCAtMzQyMSw3ICszNDIx
LDcgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlckJsb2NrRmxvdzo6cG9zaXRpb25Gb3JQb2ludFdp
dGhJbmxpbmVDaGlsZHJlbihjb25zdCBMYXlvdXQKIAogICAgIGlmIChjbG9zZXN0Qm94KSB7CiAg
ICAgICAgIGlmIChtb3ZlQ2FyZXRUb0JvdW5kYXJ5KSB7Ci0gICAgICAgICAgICBMYXlvdXRVbml0
IGZpcnN0TGluZVdpdGhDaGlsZHJlblRvcCA9IHN0ZDo6bWluKGZpcnN0TGluZVdpdGhDaGlsZHJl
bi0+Y29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3RpbmcoKSwgTGF5b3V0VW5pdChm
aXJzdExpbmVXaXRoQ2hpbGRyZW4tPmNvbnRlbnRMb2dpY2FsVG9wKCkpKTsKKyAgICAgICAgICAg
IGF1dG8gZmlyc3RMaW5lV2l0aENoaWxkcmVuVG9wID0gTGF5b3V0VW5pdCB7IHN0ZDo6bWluKGZp
cnN0TGluZVdpdGhDaGlsZHJlbi0+Y29udGVudExvZ2ljYWxUb3BBZGp1c3RlZEZvckhpdFRlc3Rp
bmcoKSwgZmlyc3RMaW5lV2l0aENoaWxkcmVuLT5jb250ZW50TG9naWNhbFRvcCgpKSB9OwogICAg
ICAgICAgICAgaWYgKHBvaW50SW5Mb2dpY2FsQ29udGVudHMueSgpIDwgZmlyc3RMaW5lV2l0aENo
aWxkcmVuVG9wCiAgICAgICAgICAgICAgICAgfHwgKGJsb2Nrc0FyZUZsaXBwZWQgJiYgcG9pbnRJ
bkxvZ2ljYWxDb250ZW50cy55KCkgPT0gZmlyc3RMaW5lV2l0aENoaWxkcmVuVG9wKSkgewogICAg
ICAgICAgICAgICAgIGF1dG8gYm94ID0gZmlyc3RMaW5lV2l0aENoaWxkcmVuLT5maXJzdExlYWZC
b3goKTsKQEAgLTM0NzQsOCArMzQ3NCw4IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjphZGRGb2N1
c1JpbmdSZWN0c0ZvcklubGluZUNoaWxkcmVuKFZlY3RvcjxMYXlvdXRSZWN0PiYgcmVjCiAgICAg
ICAgIGF1dG8gbGluZSA9IGJveC0+bGluZSgpOwogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBt
aXhpbmcgcGh5c2ljYWwgYW5kIGxvZ2ljYWwgY29vcmRpbmF0ZXMuCiAgICAgICAgIGF1dG8gdW5m
bGlwcGVkVmlzdWFsUmVjdCA9IGJveC0+dmlzdWFsUmVjdElnbm9yaW5nQmxvY2tEaXJlY3Rpb24o
KTsKLSAgICAgICAgYXV0byB0b3AgPSBzdGQ6Om1heChsaW5lLT5jb250ZW50TG9naWNhbFRvcCgp
LCBMYXlvdXRVbml0IHsgdW5mbGlwcGVkVmlzdWFsUmVjdC55KCkgfSk7Ci0gICAgICAgIGF1dG8g
Ym90dG9tID0gc3RkOjptaW4obGluZS0+Y29udGVudExvZ2ljYWxCb3R0b20oKSwgTGF5b3V0VW5p
dCB7IHVuZmxpcHBlZFZpc3VhbFJlY3QubWF4WSgpIH0pOworICAgICAgICBhdXRvIHRvcCA9IHN0
ZDo6bWF4KGxpbmUtPmNvbnRlbnRMb2dpY2FsVG9wKCksIHVuZmxpcHBlZFZpc3VhbFJlY3QueSgp
KTsKKyAgICAgICAgYXV0byBib3R0b20gPSBzdGQ6Om1pbihsaW5lLT5jb250ZW50TG9naWNhbEJv
dHRvbSgpLCB1bmZsaXBwZWRWaXN1YWxSZWN0Lm1heFkoKSk7CiAgICAgICAgIGF1dG8gcmVjdCA9
IExheW91dFJlY3QgeyBMYXlvdXRVbml0IHsgYWRkaXRpb25hbE9mZnNldC54KCkgKyB1bmZsaXBw
ZWRWaXN1YWxSZWN0LngoKSB9CiAgICAgICAgICAgICAsIGFkZGl0aW9uYWxPZmZzZXQueSgpICsg
dG9wCiAgICAgICAgICAgICAsIExheW91dFVuaXQgeyB1bmZsaXBwZWRWaXN1YWxSZWN0LndpZHRo
KCkgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggYmMwYTFh
MmUyY2UzMTBlMjRmMzc2M2QxMmY5MzM4ZTk1NTg4YTc2NS4uMmE2ZDA2ZDdjN2ViNDJiNDRjYzI3
YjhiMDM0ZDY3ZjVjOGYwY2JhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1h
Z2UuY3BwCkBAIC0xMTEsOCArMTExLDkgQEAgdm9pZCBSZW5kZXJJbWFnZTo6Y29sbGVjdFNlbGVj
dGlvbkdlb21ldHJpZXMoVmVjdG9yPFNlbGVjdGlvbkdlb21ldHJ5PiYgZ2VvbWV0cmkKICAgICAg
ICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8gc2VsZWN0aW9uTG9naWNhbFJlY3QgPSBM
aW5lU2VsZWN0aW9uOjpsb2dpY2FsUmVjdCgqcnVuLT5saW5lKCkpOwotICAgICAgICBhdXRvIHNl
bGVjdGlvblRvcCA9ICFjb250YWluaW5nQmxvY2stPnN0eWxlKCkuaXNGbGlwcGVkQmxvY2tzV3Jp
dGluZ01vZGUoKSA/IHNlbGVjdGlvbkxvZ2ljYWxSZWN0LnkoKSAtIGxvZ2ljYWxUb3AoKSA6IGxv
Z2ljYWxCb3R0b20oKSAtIHNlbGVjdGlvbkxvZ2ljYWxSZWN0Lm1heFkoKTsKLSAgICAgICAgaW1h
Z2VSZWN0ID0gSW50UmVjdCB7IDAsICBzZWxlY3Rpb25Ub3AsIGxvZ2ljYWxXaWR0aCgpLCBzZWxl
Y3Rpb25Mb2dpY2FsUmVjdC5oZWlnaHQoKSB9OworICAgICAgICBpbnQgc2VsZWN0aW9uVG9wID0g
IWNvbnRhaW5pbmdCbG9jay0+c3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpID8g
c2VsZWN0aW9uTG9naWNhbFJlY3QueSgpIC0gbG9naWNhbFRvcCgpIDogbG9naWNhbEJvdHRvbSgp
IC0gc2VsZWN0aW9uTG9naWNhbFJlY3QubWF4WSgpOworICAgICAgICBpbnQgc2VsZWN0aW9uSGVp
Z2h0ID0gc2VsZWN0aW9uTG9naWNhbFJlY3QuaGVpZ2h0KCk7CisgICAgICAgIGltYWdlUmVjdCA9
IEludFJlY3QgeyAwLCAgc2VsZWN0aW9uVG9wLCBsb2dpY2FsV2lkdGgoKSwgc2VsZWN0aW9uSGVp
Z2h0IH07CiAgICAgICAgIGlzRmlyc3RPbkxpbmUgPSAhcnVuLT5wcmV2aW91c09uTGluZSgpOwog
ICAgICAgICBpc0xhc3RPbkxpbmUgPSAhcnVuLT5uZXh0T25MaW5lKCk7CiAgICAgICAgIExvZ2lj
YWxTZWxlY3Rpb25PZmZzZXRDYWNoZXMgY2FjaGUoKmNvbnRhaW5pbmdCbG9jayk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IGMzZjU2N2E1OWM2YzYzNDUw
MTZhNDgxZjZjMDNiMmJiYjAzN2IyYjYuLmFiODRmMTU2OTNiNWE0MGEwMDVlYmFmMWUxZGRkYWQ3
NDdlNTc2MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxp
bmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCkBA
IC05NzQsOCArOTc0LDggQEAgdm9pZCBSZW5kZXJJbmxpbmU6OnBhaW50T3V0bGluZShQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2YKIAogICAgIGZvciAoYXV0
byBib3ggPSBJbmxpbmVJdGVyYXRvcjo6Zmlyc3RJbmxpbmVCb3hGb3IoKnRoaXMpOyBib3g7IGJv
eC50cmF2ZXJzZU5leHRJbmxpbmVCb3goKSkgewogICAgICAgICBhdXRvIGxpbmUgPSBib3gtPmxp
bmUoKTsKLSAgICAgICAgYXV0byB0b3AgPSBzdGQ6Om1heChsaW5lLT5jb250ZW50TG9naWNhbFRv
cCgpLCBMYXlvdXRVbml0KGJveC0+bG9naWNhbFRvcCgpKSk7Ci0gICAgICAgIGF1dG8gYm90dG9t
ID0gc3RkOjptaW4obGluZS0+Y29udGVudExvZ2ljYWxCb3R0b20oKSwgTGF5b3V0VW5pdChib3gt
PmxvZ2ljYWxCb3R0b20oKSkpOworICAgICAgICBhdXRvIHRvcCA9IExheW91dFVuaXQgeyBzdGQ6
Om1heChsaW5lLT5jb250ZW50TG9naWNhbFRvcCgpLCBib3gtPmxvZ2ljYWxUb3AoKSkgfTsKKyAg
ICAgICAgYXV0byBib3R0b20gPSBMYXlvdXRVbml0IHsgc3RkOjptaW4obGluZS0+Y29udGVudExv
Z2ljYWxCb3R0b20oKSwgYm94LT5sb2dpY2FsQm90dG9tKCkpIH07CiAgICAgICAgIC8vIEZJWE1F
OiBUaGlzIGlzIG1peGluZyBwaHlzaWNhbCBhbmQgbG9naWNhbCBjb29yZGluYXRlcy4KICAgICAg
ICAgcmVjdHMuYXBwZW5kKHsgTGF5b3V0VW5pdChib3gtPnZpc3VhbFJlY3RJZ25vcmluZ0Jsb2Nr
RGlyZWN0aW9uKCkueCgpKSwgdG9wLCBMYXlvdXRVbml0KGJveC0+bG9naWNhbFdpZHRoKCkpLCBi
b3R0b20gLSB0b3AgfSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5jcHAKaW5kZXggNTM2NjJmZGYwYTc4YWFhMjA2NzkzN2MxNTdiNTExODQ2ZDY5MzY3
Zi4uNDk2MjE0YjZmNzVjMjNhZjU3NjcyNGU0ODViZTE2YTg4Y2RkOWRhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC03MTksNyArNzE5LDcgQEAg
dm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQogCiBW
aXNpYmxlUG9zaXRpb24gUmVuZGVyUmVwbGFjZWQ6OnBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5
b3V0UG9pbnQmIHBvaW50LCBjb25zdCBSZW5kZXJGcmFnbWVudENvbnRhaW5lciogZnJhZ21lbnQp
CiB7Ci0gICAgYXV0byBbdG9wLCBib3R0b21dID0gWyZdIHsKKyAgICBhdXRvIFt0b3AsIGJvdHRv
bV0gPSBbJl0oKSAtPiBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiB7CiAgICAgICAgIGlmIChhdXRv
IHJ1biA9IElubGluZUl0ZXJhdG9yOjpib3hGb3IoKnRoaXMpKSB7CiAgICAgICAgICAgICBhdXRv
IGxpbmUgPSBydW4tPmxpbmUoKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihs
aW5lLT5jb250ZW50TG9naWNhbFRvcEFkanVzdGVkRm9ySGl0VGVzdGluZygpLCBMaW5lU2VsZWN0
aW9uOjpsb2dpY2FsQm90dG9tKCpsaW5lKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvVGV4dEJveFBhaW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Rl
eHRCb3hQYWludGVyLmNwcAppbmRleCBlNjg3OGMyOGQxOTVhODI0Nzc0NThiYWZiYmM4MjdiZDFh
YjYwNTgxLi45NDMyZDQyYjQ0MWE0N2EzNTAxNjY0ZjE4OGI2NjhmMWM4ODUzZTVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEJveFBhaW50ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Qm94UGFpbnRlci5jcHAKQEAgLTI5NSw3ICsyOTUs
NyBAQCB2b2lkIFRleHRCb3hQYWludGVyOjpwYWludEJhY2tncm91bmQodW5zaWduZWQgc3RhcnRP
ZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgYwogICAgIC8vIFVzZSBzYW1lIHkgcG9zaXRpb25p
bmcgYW5kIGhlaWdodCBhcyBmb3Igc2VsZWN0aW9uLCBzbyB0aGF0IHdoZW4gdGhlIHNlbGVjdGlv
biBhbmQgdGhpcyBzdWJyYW5nZSBhcmUgb24KICAgICAvLyB0aGUgc2FtZSB3b3JkIHRoZXJlIGFy
ZSBubyBwaWVjZXMgc3RpY2tpbmcgb3V0LgogICAgIGF1dG8gZGVsdGFZID0gTGF5b3V0VW5pdCB7
IG1fc3R5bGUuaXNGbGlwcGVkTGluZXNXcml0aW5nTW9kZSgpID8gc2VsZWN0aW9uQm90dG9tIC0g
dGV4dEJveCgpLmxvZ2ljYWxCb3R0b20oKSA6IHRleHRCb3goKS5sb2dpY2FsVG9wKCkgLSBzZWxl
Y3Rpb25Ub3AgfTsKLSAgICBhdXRvIHNlbGVjdGlvbkhlaWdodCA9IExheW91dFVuaXQgeyBzdGQ6
Om1heCgwX2x1LCBzZWxlY3Rpb25Cb3R0b20gLSBzZWxlY3Rpb25Ub3ApIH07CisgICAgYXV0byBz
ZWxlY3Rpb25IZWlnaHQgPSBMYXlvdXRVbml0IHsgc3RkOjptYXgoMC5mLCBzZWxlY3Rpb25Cb3R0
b20gLSBzZWxlY3Rpb25Ub3ApIH07CiAgICAgYXV0byBzZWxlY3Rpb25SZWN0ID0gTGF5b3V0UmVj
dCB7IExheW91dFVuaXQobV9wYWludFJlY3QueCgpKSwgTGF5b3V0VW5pdChtX3BhaW50UmVjdC55
KCkgLSBkZWx0YVkpLCBMYXlvdXRVbml0KHRleHRCb3goKS5sb2dpY2FsV2lkdGgoKSksIHNlbGVj
dGlvbkhlaWdodCB9OwogICAgIGZvbnRDYXNjYWRlKCkuYWRqdXN0U2VsZWN0aW9uUmVjdEZvclRl
eHQobV9wYWludFRleHRSdW4sIHNlbGVjdGlvblJlY3QsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQp
OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>