<?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>218642</bug_id>
          
          <creation_ts>2020-11-05 19:38:55 -0800</creation_ts>
          <short_desc>[JSC] Replace toInteger with toIntegerOrInfinity</short_desc>
          <delta_ts>2021-02-07 03:13:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1705106</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-05 19:38:55 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707095</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-12 19:39:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/71355171&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726461</commentid>
    <comment_count>2</comment_count>
      <attachid>419529</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-07 00:24:48 -0800</bug_when>
    <thetext>Created attachment 419529
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726462</commentid>
    <comment_count>3</comment_count>
      <attachid>419530</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-07 00:27:33 -0800</bug_when>
    <thetext>Created attachment 419530
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726469</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-07 03:13:35 -0800</bug_when>
    <thetext>Committed r272471: &lt;https://commits.webkit.org/r272471&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 419530.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419529</attachid>
            <date>2021-02-07 00:24:48 -0800</date>
            <delta_ts>2021-02-07 00:40:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218642-20210207002447.patch</filename>
            <type>text/plain</type>
            <size>26577</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
NjhmOWU5YzJiOTMxYzhkODEzNDA3MDY5NDExOWNhOTI2YWE0MDc3Li4xOWU0NGNiMGY0ZTkzMDg5
MDdmNDllNTE2MmU1MTAyMTUxMTZjZTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MSBAQAorMjAyMS0wMi0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlcGxhY2UgdG9JbnRlZ2VyIHdpdGggdG9JbnRlZ2VyT3JJbmZp
bml0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4
NjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4g
RUNNQTI2MiBzcGVjLCBUb0ludGVnZXIgYWJzdHJhY3Qgb3BlcmF0aW9uIGlzIHJlcGxhY2VkIHdp
dGggVG9JbnRlZ2VyT3JJbmZpbml0eS4KKyAgICAgICAgVGhpcyBwYXRjaCByZW5hbWVzIHRvSW50
ZWdlciB0byB0b0ludGVnZXJPckluZmluaXR5IGluIEpTQy4KKworICAgICAgICAqIGJ1aWx0aW5z
L0FycmF5UHJvdG90eXBlLmpzOgorICAgICAgICAoZmlsbCk6CisgICAgICAgIChpbmNsdWRlcyk6
CisgICAgICAgIChjb3B5V2l0aGluKToKKyAgICAgICAgKGZsYXQpOgorICAgICAgICAoYXQpOgor
ICAgICAgICAqIGJ1aWx0aW5zL0Z1bmN0aW9uUHJvdG90eXBlLmpzOgorICAgICAgICAoYmluZCk6
CisgICAgICAgICogYnVpbHRpbnMvR2xvYmFsT3BlcmF0aW9ucy5qczoKKyAgICAgICAgKGdsb2Jh
bFByaXZhdGUudG9JbnRlZ2VyT3JJbmZpbml0eSk6CisgICAgICAgIChnbG9iYWxQcml2YXRlLnRv
TGVuZ3RoKToKKyAgICAgICAgKGdsb2JhbFByaXZhdGUudG9JbnRlZ2VyKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBidWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanM6CisgICAgICAgIChvdmVycmlkZGVu
TmFtZS5zdHJpbmdfYXBwZWFyZWRfaGVyZS5yZXBsYWNlKToKKyAgICAgICAgKiBidWlsdGlucy9T
dHJpbmdQcm90b3R5cGUuanM6CisgICAgICAgIChyZXBlYXQpOgorICAgICAgICAoYXQpOgorICAg
ICAgICAqIGJ1aWx0aW5zL1R5cGVkQXJyYXlQcm90b3R5cGUuanM6CisgICAgICAgIChzdWJhcnJh
eSk6CisgICAgICAgIChhdCk6CisgICAgICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRI
b3N0LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OndlYWtN
YXBFbnRyaWVzKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6Ondl
YWtTZXRFbnRyaWVzKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6
Oml0ZXJhdG9yRW50cmllcyk6CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6
CisgICAgICAgIChKU0M6OmFyZ3VtZW50Q2xhbXBlZEluZGV4RnJvbVN0YXJ0T3JFbmQpOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUv
SW50bFNlZ21lbnRzLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bFNlZ21lbnRzOjpjb250YWluaW5n
KToKKyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpKU1Zh
bHVlOjp0b0ludGVnZXJPckluZmluaXR5IGNvbnN0KToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6
dG9MZW5ndGggY29uc3QpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjp0b0ludGVnZXIgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaDoKKyAgICAg
ICAgKEpTQzo6YXJndW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRPckVuZCk6CisgICAgICAgIChK
U0M6OmdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY1NldCk6CisgICAgICAgIChKU0M6Omdl
bmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0xhc3RJbmRleE9mKToKKyAgICAgICAgKiBydW50
aW1lL051bWJlclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTik6CisgICAgICAgIChKU0M6OmV4dHJhY3RUb1N0cmluZ1JhZGl4QXJndW1lbnQpOgor
ICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpn
ZXRSZWdFeHBPYmplY3RMYXN0SW5kZXhBc1Vuc2lnbmVkKToKKyAgICAgICAgKiBydW50aW1lL1N0
cmluZ1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tik6CisgICAgICAgIChKU0M6OnN0cmluZ0luZGV4T2ZJbXBsKToKKyAgICAgICAgKEpTQzo6c3Ry
aW5nSW5jbHVkZXNJbXBsKToKKwogMjAyMS0wMi0wNiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWth
bGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2NDU3NCk6IFVuY2hlY2tl
ZCBKUyBleGNlcHRpb24gaW4gdmFsaWRhdGVBbmRBcHBseVByb3BlcnR5RGVzY3JpcHRvcigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXlQcm90b3R5cGUu
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXlQcm90b3R5cGUuanMKaW5k
ZXggZjExOWViZjI4MDk5NmZkNDcwN2FhNGVkN2RkYjIzOTA0NzdjMmQ4NC4uYWFjMTdmYTgxYjQx
ZGY1ZmQ2YWU2NzEyM2VmNTgxMzIwODMzNDQwOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcwpAQCAtMjA1LDcgKzIwNSw3IEBAIGZ1bmN0
aW9uIGZpbGwodmFsdWUgLyogWywgc3RhcnQgWywgZW5kXV0gKi8pCiAgICAgdmFyIGFycmF5ID0g
QHRvT2JqZWN0KHRoaXMsICJBcnJheS5wcm90b3R5cGUuZmlsbCByZXF1aXJlcyB0aGF0IHx0aGlz
fCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQiKTsKICAgICB2YXIgbGVuZ3RoID0gQHRvTGVuZ3Ro
KGFycmF5Lmxlbmd0aCk7CiAKLSAgICB2YXIgcmVsYXRpdmVTdGFydCA9IEB0b0ludGVnZXIoQGFy
Z3VtZW50KDEpKTsKKyAgICB2YXIgcmVsYXRpdmVTdGFydCA9IEB0b0ludGVnZXJPckluZmluaXR5
KEBhcmd1bWVudCgxKSk7CiAgICAgdmFyIGsgPSAwOwogICAgIGlmIChyZWxhdGl2ZVN0YXJ0IDwg
MCkgewogICAgICAgICBrID0gbGVuZ3RoICsgcmVsYXRpdmVTdGFydDsKQEAgLTIxOSw3ICsyMTks
NyBAQCBmdW5jdGlvbiBmaWxsKHZhbHVlIC8qIFssIHN0YXJ0IFssIGVuZF1dICovKQogICAgIHZh
ciByZWxhdGl2ZUVuZCA9IGxlbmd0aDsKICAgICB2YXIgZW5kID0gQGFyZ3VtZW50KDIpOwogICAg
IGlmIChlbmQgIT09IEB1bmRlZmluZWQpCi0gICAgICAgIHJlbGF0aXZlRW5kID0gQHRvSW50ZWdl
cihlbmQpOworICAgICAgICByZWxhdGl2ZUVuZCA9IEB0b0ludGVnZXJPckluZmluaXR5KGVuZCk7
CiAgICAgdmFyIGZpbmFsID0gMDsKICAgICBpZiAocmVsYXRpdmVFbmQgPCAwKSB7CiAgICAgICAg
IGZpbmFsID0gbGVuZ3RoICsgcmVsYXRpdmVFbmQ7CkBAIC0yODUsNyArMjg1LDcgQEAgZnVuY3Rp
b24gaW5jbHVkZXMoc2VhcmNoRWxlbWVudCAvKiwgZnJvbUluZGV4Ki8pCiAgICAgdmFyIGZyb21J
bmRleCA9IDA7CiAgICAgdmFyIGZyb20gPSBAYXJndW1lbnQoMSk7CiAgICAgaWYgKGZyb20gIT09
IEB1bmRlZmluZWQpCi0gICAgICAgIGZyb21JbmRleCA9IEB0b0ludGVnZXIoZnJvbSk7CisgICAg
ICAgIGZyb21JbmRleCA9IEB0b0ludGVnZXJPckluZmluaXR5KGZyb20pOwogCiAgICAgdmFyIGlu
ZGV4OwogICAgIGlmIChmcm9tSW5kZXggPj0gMCkKQEAgLTU3NiwxMCArNTc2LDEwIEBAIGZ1bmN0
aW9uIG1pbldpdGhNYXliZU5lZ2F0aXZlWmVyb0FuZFBvc2l0aXZlKG1heWJlTmVnYXRpdmVaZXJv
LCBwb3NpdGl2ZSkKICAgICB2YXIgYXJyYXkgPSBAdG9PYmplY3QodGhpcywgIkFycmF5LnByb3Rv
dHlwZS5jb3B5V2l0aGluIHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSBudWxsIG9yIHVuZGVm
aW5lZCIpOwogICAgIHZhciBsZW5ndGggPSBAdG9MZW5ndGgoYXJyYXkubGVuZ3RoKTsKIAotICAg
IHZhciByZWxhdGl2ZVRhcmdldCA9IEB0b0ludGVnZXIodGFyZ2V0KTsKKyAgICB2YXIgcmVsYXRp
dmVUYXJnZXQgPSBAdG9JbnRlZ2VyT3JJbmZpbml0eSh0YXJnZXQpOwogICAgIHZhciB0byA9IChy
ZWxhdGl2ZVRhcmdldCA8IDApID8gbWF4V2l0aFBvc2l0aXZlcyhsZW5ndGggKyByZWxhdGl2ZVRh
cmdldCwgMCkgOiBtaW5XaXRoTWF5YmVOZWdhdGl2ZVplcm9BbmRQb3NpdGl2ZShyZWxhdGl2ZVRh
cmdldCwgbGVuZ3RoKTsKIAotICAgIHZhciByZWxhdGl2ZVN0YXJ0ID0gQHRvSW50ZWdlcihzdGFy
dCk7CisgICAgdmFyIHJlbGF0aXZlU3RhcnQgPSBAdG9JbnRlZ2VyT3JJbmZpbml0eShzdGFydCk7
CiAgICAgdmFyIGZyb20gPSAocmVsYXRpdmVTdGFydCA8IDApID8gbWF4V2l0aFBvc2l0aXZlcyhs
ZW5ndGggKyByZWxhdGl2ZVN0YXJ0LCAwKSA6IG1pbldpdGhNYXliZU5lZ2F0aXZlWmVyb0FuZFBv
c2l0aXZlKHJlbGF0aXZlU3RhcnQsIGxlbmd0aCk7CiAKICAgICB2YXIgcmVsYXRpdmVFbmQ7CkBA
IC01ODcsNyArNTg3LDcgQEAgZnVuY3Rpb24gbWluV2l0aE1heWJlTmVnYXRpdmVaZXJvQW5kUG9z
aXRpdmUobWF5YmVOZWdhdGl2ZVplcm8sIHBvc2l0aXZlKQogICAgIGlmIChlbmQgPT09IEB1bmRl
ZmluZWQpCiAgICAgICAgIHJlbGF0aXZlRW5kID0gbGVuZ3RoOwogICAgIGVsc2UKLSAgICAgICAg
cmVsYXRpdmVFbmQgPSBAdG9JbnRlZ2VyKGVuZCk7CisgICAgICAgIHJlbGF0aXZlRW5kID0gQHRv
SW50ZWdlck9ySW5maW5pdHkoZW5kKTsKIAogICAgIHZhciBmaW5hbFZhbHVlID0gKHJlbGF0aXZl
RW5kIDwgMCkgPyBtYXhXaXRoUG9zaXRpdmVzKGxlbmd0aCArIHJlbGF0aXZlRW5kLCAwKSA6IG1p
bldpdGhNYXliZU5lZ2F0aXZlWmVyb0FuZFBvc2l0aXZlKHJlbGF0aXZlRW5kLCBsZW5ndGgpOwog
CkBAIC02NDEsNyArNjQxLDcgQEAgZnVuY3Rpb24gZmxhdCgpCiAgICAgdmFyIGRlcHRoTnVtID0g
MTsKICAgICB2YXIgZGVwdGggPSBAYXJndW1lbnQoMCk7CiAgICAgaWYgKGRlcHRoICE9PSBAdW5k
ZWZpbmVkKQotICAgICAgICBkZXB0aE51bSA9IEB0b0ludGVnZXIoZGVwdGgpOworICAgICAgICBk
ZXB0aE51bSA9IEB0b0ludGVnZXJPckluZmluaXR5KGRlcHRoKTsKIAogICAgIHZhciByZXN1bHQg
PSBAYXJyYXlTcGVjaWVzQ3JlYXRlKGFycmF5LCAwKTsKIApAQCAtNjk0LDcgKzY5NCw3IEBAIGZ1
bmN0aW9uIGF0KGluZGV4KQogICAgIHZhciBhcnJheSA9IEB0b09iamVjdCh0aGlzLCAiQXJyYXku
cHJvdG90eXBlLmF0IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5l
ZCIpOwogICAgIHZhciBsZW5ndGggPSBAdG9MZW5ndGgoYXJyYXkubGVuZ3RoKTsKIAotICAgIHZh
ciBrID0gQHRvSW50ZWdlcihpbmRleCk7CisgICAgdmFyIGsgPSBAdG9JbnRlZ2VyT3JJbmZpbml0
eShpbmRleCk7CiAgICAgaWYgKGsgPCAwKQogICAgICAgICBrICs9IGxlbmd0aDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0Z1bmN0aW9uUHJvdG90eXBlLmpz
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0Z1bmN0aW9uUHJvdG90eXBlLmpzCmlu
ZGV4IGRkMjc1YmEzMzMwNmQ3NTZiMTJjZjgwY2ZlZGJlNTZiMWVkZjNlYzMuLmFmMjlhZmQ4MzU2
Y2FmOWI3ZTk4ZjRiNjY3OTFhNDNhNTc0NDU5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9GdW5jdGlvblByb3RvdHlwZS5qcworKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnVpbHRpbnMvRnVuY3Rpb25Qcm90b3R5cGUuanMKQEAgLTc3LDcgKzc3LDcgQEAg
ZnVuY3Rpb24gYmluZCh0aGlzVmFsdWUpCiAgICAgaWYgKEBoYXNPd25MZW5ndGhQcm9wZXJ0eSh0
YXJnZXQpKSB7CiAgICAgICAgIHZhciBsZW5ndGhWYWx1ZSA9IHRhcmdldC5sZW5ndGg7CiAgICAg
ICAgIGlmICh0eXBlb2YgbGVuZ3RoVmFsdWUgPT09ICJudW1iZXIiKSB7Ci0gICAgICAgICAgICBs
ZW5ndGhWYWx1ZSA9IEB0b0ludGVnZXIobGVuZ3RoVmFsdWUpOworICAgICAgICAgICAgbGVuZ3Ro
VmFsdWUgPSBAdG9JbnRlZ2VyT3JJbmZpbml0eShsZW5ndGhWYWx1ZSk7CiAgICAgICAgICAgICAv
LyBOb3RlIHRoYXQgd2Ugb25seSBjYXJlIGFib3V0IHBvc2l0aXZlIGxlbmd0aFZhbHVlcywgaG93
ZXZlciwgdGhpcyBjb21wYXJpc2lvbgogICAgICAgICAgICAgLy8gYWdhaW5zdCBudW1Cb3VuZEFy
Z3Mgc3VmZmljZXMgdG8gcHJvdmUgd2UncmUgbm90IGEgbmVnYXRpdmUgbnVtYmVyLgogICAgICAg
ICAgICAgaWYgKGxlbmd0aFZhbHVlID4gbnVtQm91bmRBcmdzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dsb2JhbE9wZXJhdGlvbnMuanMgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvR2xvYmFsT3BlcmF0aW9ucy5qcwppbmRleCA3MGZjMzY5NTJj
ZDYzYTc1MzBiMjY4MWRjZDY4YTljN2VjOGJhZTcwLi43NGE2MWJjZDc4ZTBjYjQ3ODAxZTNmOGQy
ODY1YjMxMTJiYjNhYjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvR2xvYmFsT3BlcmF0aW9ucy5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvR2xvYmFsT3BlcmF0aW9ucy5qcwpAQCAtMjcsNyArMjcsNyBAQAogLy8gQGludGVybmFsCiAK
IEBnbG9iYWxQcml2YXRlCi1mdW5jdGlvbiB0b0ludGVnZXIodGFyZ2V0KQorZnVuY3Rpb24gdG9J
bnRlZ2VyT3JJbmZpbml0eSh0YXJnZXQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCkBAIC00NCw3
ICs0NCw3IEBAIGZ1bmN0aW9uIHRvTGVuZ3RoKHRhcmdldCkKIHsKICAgICAidXNlIHN0cmljdCI7
CiAKLSAgICB2YXIgbGVuZ3RoID0gQHRvSW50ZWdlcih0YXJnZXQpOworICAgIHZhciBsZW5ndGgg
PSBAdG9JbnRlZ2VyT3JJbmZpbml0eSh0YXJnZXQpOwogICAgIC8vIG9yaWdpbmFsbHkgTWF0aC5t
aW4oTWF0aC5tYXgobGVuZ3RoLCAwKSwgbWF4U2FmZUludGVnZXIpKTsKICAgICByZXR1cm4gKyhs
ZW5ndGggPiAwID8gKGxlbmd0aCA8IEBNQVhfU0FGRV9JTlRFR0VSID8gbGVuZ3RoIDogQE1BWF9T
QUZFX0lOVEVHRVIpIDogMCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL1JlZ0V4cFByb3RvdHlwZS5qcwppbmRleCAzNWQ1NTE4ODAyNGU3NDU0MzgxY2JmNjUwMDU0
ZGZhYWJlMzA1OTAyLi5lOWU1OWM0OTNiZWZhNDgyM2Q2ODZiMmRlNjU3YmQyMzBhMDBkZTE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBl
LmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUu
anMKQEAgLTMzMSw3ICszMzEsNyBAQCBmdW5jdGlvbiBnZXRTdWJzdGl0dXRpb24obWF0Y2hlZCwg
c3RyLCBwb3NpdGlvbiwgY2FwdHVyZXMsIG5hbWVkQ2FwdHVyZXMsIHJlcGxhYwogICAgICAgICAg
ICAgbkNhcHR1cmVzID0gMDsKICAgICAgICAgdmFyIG1hdGNoZWQgPSBAdG9TdHJpbmcocmVzdWx0
WzBdKTsKICAgICAgICAgdmFyIG1hdGNoTGVuZ3RoID0gbWF0Y2hlZC5sZW5ndGg7Ci0gICAgICAg
IHZhciBwb3NpdGlvbiA9IEB0b0ludGVnZXIocmVzdWx0LmluZGV4KTsKKyAgICAgICAgdmFyIHBv
c2l0aW9uID0gQHRvSW50ZWdlck9ySW5maW5pdHkocmVzdWx0LmluZGV4KTsKICAgICAgICAgcG9z
aXRpb24gPSAocG9zaXRpb24gPiBzdHJpbmdMZW5ndGgpID8gc3RyaW5nTGVuZ3RoIDogcG9zaXRp
b247CiAgICAgICAgIHBvc2l0aW9uID0gKHBvc2l0aW9uIDwgMCkgPyAwIDogcG9zaXRpb247CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5
cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nUHJvdG90eXBlLmpz
CmluZGV4IDQwODgzY2RhYzYwNjcwNjY2MDYwYjcyZWM4MjU5YTY5OTRhZDc2OTIuLjNlMzRkZGI2
NjM0OTI2YWZhODA4ZWY1NjFlMDg1ZmQ3ZWNiOTNiODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5qcwpAQCAtMTI2LDcgKzEyNiw3IEBA
IGZ1bmN0aW9uIHJlcGVhdChjb3VudCkKICAgICAgICAgQHRocm93VHlwZUVycm9yKCJTdHJpbmcu
cHJvdG90eXBlLnJlcGVhdCByZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgbnVsbCBvciB1bmRl
ZmluZWQiKTsKIAogICAgIHZhciBzdHJpbmcgPSBAdG9TdHJpbmcodGhpcyk7Ci0gICAgY291bnQg
PSBAdG9JbnRlZ2VyKGNvdW50KTsKKyAgICBjb3VudCA9IEB0b0ludGVnZXJPckluZmluaXR5KGNv
dW50KTsKIAogICAgIGlmIChjb3VudCA8IDAgfHwgY291bnQgPT09IEBJbmZpbml0eSkKICAgICAg
ICAgQHRocm93UmFuZ2VFcnJvcigiU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQgYXJndW1lbnQgbXVz
dCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCBhbmQgbm90IGJlIEluZmluaXR5Iik7CkBA
IC0zNTIsNyArMzUyLDcgQEAgZnVuY3Rpb24gYXQoaW5kZXgpCiAgICAgdmFyIHN0cmluZyA9IEB0
b1N0cmluZyh0aGlzKTsgICAKICAgICB2YXIgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aDsgCiAKLSAg
ICB2YXIgayA9IEB0b0ludGVnZXIoaW5kZXgpOyAgCisgICAgdmFyIGsgPSBAdG9JbnRlZ2VyT3JJ
bmZpbml0eShpbmRleCk7ICAKICAgICBpZiAoayA8IDApICAKICAgICAgICAgayArPSBsZW5ndGg7
ICAgIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvVHlwZWRB
cnJheVByb3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9UeXBlZEFy
cmF5UHJvdG90eXBlLmpzCmluZGV4IGU2MGFkOTVmMjljMmMyYWQ1NTI4NmY2NTY0ZjdkMjE0MmU0
MzdlNzAuLjU5ODY1ZDE3Yzk2YWZlNGRkYzdmYzc3Y2FhY2JiMDEzMzI0NjRkNmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9UeXBlZEFycmF5UHJvdG90eXBlLmpz
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9UeXBlZEFycmF5UHJvdG90eXBl
LmpzCkBAIC0yMjIsMTAgKzIyMiwxMCBAQCBmdW5jdGlvbiBzdWJhcnJheShiZWdpbiwgZW5kKQog
ICAgIGlmICghQGlzVHlwZWRBcnJheVZpZXcodGhpcykpCiAgICAgICAgIEB0aHJvd1R5cGVFcnJv
cigifHRoaXN8IHNob3VsZCBiZSBhIHR5cGVkIGFycmF5IHZpZXciKTsKIAotICAgIHZhciBzdGFy
dCA9IEB0b0ludGVnZXIoYmVnaW4pOworICAgIHZhciBzdGFydCA9IEB0b0ludGVnZXJPckluZmlu
aXR5KGJlZ2luKTsKICAgICB2YXIgZmluaXNoOwogICAgIGlmIChlbmQgIT09IEB1bmRlZmluZWQp
Ci0gICAgICAgIGZpbmlzaCA9IEB0b0ludGVnZXIoZW5kKTsKKyAgICAgICAgZmluaXNoID0gQHRv
SW50ZWdlck9ySW5maW5pdHkoZW5kKTsKIAogICAgIHZhciBjb25zdHJ1Y3RvciA9IEB0eXBlZEFy
cmF5U3BlY2llc0NvbnN0cnVjdG9yKHRoaXMpOwogCkBAIC0zNjQsNyArMzY0LDcgQEAgZnVuY3Rp
b24gYXQoaW5kZXgpCiAKICAgICB2YXIgbGVuZ3RoID0gQHR5cGVkQXJyYXlMZW5ndGgodGhpcyk7
CiAKLSAgICB2YXIgayA9IEB0b0ludGVnZXIoaW5kZXgpOworICAgIHZhciBrID0gQHRvSW50ZWdl
ck9ySW5maW5pdHkoaW5kZXgpOwogICAgIGlmIChrIDwgMCkKICAgICAgICAgayArPSBsZW5ndGg7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3Rl
ZFNjcmlwdEhvc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVj
dGVkU2NyaXB0SG9zdC5jcHAKaW5kZXggYTk4YmQ4NmJkNjA3ZTIyYjQ4ZGQwMTJkNmM4NmQ3Nzc3
NjQxOGNiNi4uZjc4YTUzMGEzNzNjZmU4NjM2NjJhNTE0MTY3ZTdhMmE4YzBjZTQzMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9z
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2Ny
aXB0SG9zdC5jcHAKQEAgLTQ3MCw3ICs0NzAsNyBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRI
b3N0Ojp3ZWFrTWFwRW50cmllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRgog
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVy
IGJ1ZmZlcjsKLSAgICBhdXRvIGZldGNoQ291bnQgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpLnRv
SW50ZWdlcihnbG9iYWxPYmplY3QpOworICAgIGF1dG8gZmV0Y2hDb3VudCA9IGNhbGxGcmFtZS0+
YXJndW1lbnQoMSkudG9JbnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmplY3QpOwogICAgIHdlYWtN
YXAtPnRha2VTbmFwc2hvdChidWZmZXIsIGZldGNoQ291bnQgPj0gMCA/IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihmZXRjaENvdW50KSA6IDApOwogICAgIEFTU0VSVCghYnVmZmVyLmhhc092ZXJmbG93
ZWQoKSk7CiAKQEAgLTUxNCw3ICs1MTQsNyBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0
Ojp3ZWFrU2V0RW50cmllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRgogICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGJ1
ZmZlcjsKLSAgICBhdXRvIGZldGNoQ291bnQgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpLnRvSW50
ZWdlcihnbG9iYWxPYmplY3QpOworICAgIGF1dG8gZmV0Y2hDb3VudCA9IGNhbGxGcmFtZS0+YXJn
dW1lbnQoMSkudG9JbnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmplY3QpOwogICAgIHdlYWtTZXQt
PnRha2VTbmFwc2hvdChidWZmZXIsIGZldGNoQ291bnQgPj0gMCA/IHN0YXRpY19jYXN0PHVuc2ln
bmVkPihmZXRjaENvdW50KSA6IDApOwogICAgIEFTU0VSVCghYnVmZmVyLmhhc092ZXJmbG93ZWQo
KSk7CiAKQEAgLTU5Miw3ICs1OTIsNyBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0Ojpp
dGVyYXRvckVudHJpZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogCiAgICAg
dW5zaWduZWQgbnVtYmVyVG9GZXRjaCA9IDU7CiAgICAgSlNWYWx1ZSBudW1iZXJUb0ZldGNoQXJn
ID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKLSAgICBkb3VibGUgZmV0Y2hEb3VibGUgPSBudW1i
ZXJUb0ZldGNoQXJnLnRvSW50ZWdlcihnbG9iYWxPYmplY3QpOworICAgIGRvdWJsZSBmZXRjaERv
dWJsZSA9IG51bWJlclRvRmV0Y2hBcmcudG9JbnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmplY3Qp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgaWYgKGZldGNoRG91
YmxlID49IDApCiAgICAgICAgIG51bWJlclRvRmV0Y2ggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
ZmV0Y2hEb3VibGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQ
cm90b3R5cGUuY3BwCmluZGV4IGZiYzM2YzliNmY1MDg5MTZkM2MzMGUxYTJhZWI1NjMxODg4Nzll
OWEuLmFiMGI5ZGYxZTg5NmQxZDA4Yzk5Njk5MjgzZWMwODRlZWFlZGRhMDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTI4Nyw3
ICsyODcsNyBAQCBzdGF0aWMgaW5saW5lIHVpbnQ2NF90IGFyZ3VtZW50Q2xhbXBlZEluZGV4RnJv
bVN0YXJ0T3JFbmQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIGlmICh2YWx1ZS5pc1VuZGVm
aW5lZCgpKQogICAgICAgICByZXR1cm4gdW5kZWZpbmVkVmFsdWU7CiAKLSAgICBkb3VibGUgaW5k
ZXhEb3VibGUgPSB2YWx1ZS50b0ludGVnZXIoZ2xvYmFsT2JqZWN0KTsKKyAgICBkb3VibGUgaW5k
ZXhEb3VibGUgPSB2YWx1ZS50b0ludGVnZXJPckluZmluaXR5KGdsb2JhbE9iamVjdCk7CiAgICAg
aWYgKGluZGV4RG91YmxlIDwgMCkgewogICAgICAgICBpbmRleERvdWJsZSArPSBsZW5ndGg7CiAg
ICAgICAgIHJldHVybiBpbmRleERvdWJsZSA8IDAgPyAwIDogc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KGluZGV4RG91YmxlKTsKQEAgLTExNjcsNyArMTE2Nyw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihhcnJheVByb3RvRnVuY1NwbGljZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhCiAKICAgICB1aW50NjRfdCBhY3R1YWxEZWxldGVDb3VudCA9IGxlbmd0aCAtIGFjdHVhbFN0
YXJ0OwogICAgIGlmIChjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA+IDEpIHsKLSAgICAgICAg
ZG91YmxlIGRlbGV0ZUNvdW50ID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgxKS50b0lu
dGVnZXIoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgZG91YmxlIGRlbGV0ZUNvdW50ID0gY2FsbEZy
YW1lLT51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludGVnZXJPckluZmluaXR5KGdsb2JhbE9iamVj
dCk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkp
OwogICAgICAgICBpZiAoZGVsZXRlQ291bnQgPCAwKQogICAgICAgICAgICAgYWN0dWFsRGVsZXRl
Q291bnQgPSAwOwpAQCAtMTQyNyw3ICsxNDI3LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGFycmF5UHJvdG9GdW5jTGFzdEluZGV4T2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMK
ICAgICB1aW50NjRfdCBpbmRleCA9IGxlbmd0aCAtIDE7CiAgICAgaWYgKGNhbGxGcmFtZS0+YXJn
dW1lbnRDb3VudCgpID49IDIpIHsKICAgICAgICAgSlNWYWx1ZSBmcm9tVmFsdWUgPSBjYWxsRnJh
bWUtPnVuY2hlY2tlZEFyZ3VtZW50KDEpOwotICAgICAgICBkb3VibGUgZnJvbURvdWJsZSA9IGZy
b21WYWx1ZS50b0ludGVnZXIoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgZG91YmxlIGZyb21Eb3Vi
bGUgPSBmcm9tVmFsdWUudG9JbnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmplY3QpOwogICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAgICAgICBpZiAoZnJvbURvdWJs
ZSA8IDApIHsKICAgICAgICAgICAgIGZyb21Eb3VibGUgKz0gbGVuZ3RoOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxTZWdtZW50cy5jcHAKaW5kZXggODczNzFkZTgzMjQ5
NzQzMjNlMDg3NzNkMWYwM2YyYmMxMmY4YWU2Zi4uYzNjMzgyM2FjNjI2NDBkYzU3M2IwNGM1NTUx
ZGQ0NTU2OTY1YjNkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bFNlZ21lbnRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
U2VnbWVudHMuY3BwCkBAIC03MSw3ICs3MSw3IEBAIEpTVmFsdWUgSW50bFNlZ21lbnRzOjpjb250
YWluaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgaW5kZXhWYWx1CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIGRvdWJsZSB2YWx1ZSA9IGluZGV4VmFsdWUudG9JbnRl
Z2VyKGdsb2JhbE9iamVjdCk7CisgICAgZG91YmxlIHZhbHVlID0gaW5kZXhWYWx1ZS50b0ludGVn
ZXJPckluZmluaXR5KGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKIAogICAgIGlmICh2YWx1ZSA8IDAgfHwgdmFsdWUgPj0gbV9idWZmZXItPnNpemUo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5jcHAKaW5kZXgg
ZDU5ZTE2YTU3NTBkM2JhMjcwOTUxOWJkNjllMTBkY2NiYTgwYTI2NC4uNDI5YzI3YmYxOGZhYTA0
NWMzMzg2NjZhMDcwYTdiMGUyNWE2OTEwNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDSlNWYWx1ZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIG5hbWVzcGFjZSBKU0Mgewog
CiAvLyBFQ01BIDkuNAotZG91YmxlIEpTVmFsdWU6OnRvSW50ZWdlcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KSBjb25zdAorZG91YmxlIEpTVmFsdWU6OnRvSW50ZWdlck9ySW5maW5pdHko
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKIHsKICAgICBpZiAoaXNJbnQzMigp
KQogICAgICAgICByZXR1cm4gYXNJbnQzMigpOwpAQCAtNTUsNyArNTUsNyBAQCBkb3VibGUgSlNW
YWx1ZTo6dG9MZW5ndGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKIHsKICAg
ICAvLyBFQ01BIDcuMS4xNQogICAgIC8vIGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9y
Zy9lY21hLTI2Mi82LjAvI3NlYy10b2xlbmd0aAotICAgIGRvdWJsZSBkID0gdG9JbnRlZ2VyKGds
b2JhbE9iamVjdCk7CisgICAgZG91YmxlIGQgPSB0b0ludGVnZXJPckluZmluaXR5KGdsb2JhbE9i
amVjdCk7CiAgICAgaWYgKGQgPD0gMCkKICAgICAgICAgcmV0dXJuIDAuMDsKICAgICBpZiAoc3Rk
Ojppc2luZihkKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q0pTVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaApp
bmRleCA5N2NkYWFhMjUyZWVlMGYyNmE1ZTY4YzE3Zjg5M2VjMDU4OWIxNjQ1Li5hODc5M2Y5ODcx
MzI3YTViYWQ5ZDdhODA0OGM5YmQ3ZDk4NWJiMTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDSlNWYWx1ZS5oCkBAIC0yOTAsNyArMjkwLDYgQEAgY2xhc3MgSlNWYWx1ZSB7
CiAgICAgSlNPYmplY3QqIHRvT2JqZWN0KEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAKICAgICAv
LyBJbnRlZ2VyIGNvbnZlcnNpb25zLgotICAgIEpTX0VYUE9SVF9QUklWQVRFIGRvdWJsZSB0b0lu
dGVnZXIoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAgICBKU19FWFBPUlRfUFJJVkFURSBkb3Vi
bGUgdG9JbnRlZ2VyUHJlc2VydmVOYU4oSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAgICBkb3Vi
bGUgdG9JbnRlZ2VyT3JJbmZpbml0eShKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogICAgIGludDMy
X3QgdG9JbnQzMihKU0dsb2JhbE9iamVjdCopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKaW5kZXggNjBmOGZlNmEyZDYyNGYy
NmVmNWNlZmFlMjgxOTJkNzgyZjAwMTdiNi4uZDk4NzUxNWU0ZGE0MDMxYzdiZDdlMTljNmM5ZDI2
OWVkYjdmZjQwMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
SlNWYWx1ZUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NK
U1ZhbHVlSW5saW5lcy5oCkBAIC04MCw4ICs4MCw2IEBAIGlubGluZSB1aW50MzJfdCBKU1ZhbHVl
Ojp0b0luZGV4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IGNoYXIqIGVycm9y
CiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9pbnRlZ2Vyb3JpbmZpbml0
eQotLy8gRklYTUU6IFdlIHdpbGwgcmVwbGFjZSB0b0ludGVnZXIgd2l0aCB0b0ludGVnZXJPcklu
ZmluaXR5LiBUaGUgZGlmZmVyZW5jZSBpcyB0aGF0IHRvSW50ZWdlck9ySW5maW5pdHkgd2lsbCBj
b252ZXJ0IC0wIHRvICswLgotLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxODY0MgogaW5saW5lIGRvdWJsZSBKU1ZhbHVlOjp0b0ludGVnZXJPckluZmluaXR5KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CiB7CiAgICAgaWYgKGlzSW50MzIoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVk
QXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oCmluZGV4IGVj
OTI5NTUwYmIzNTk1NzJmMGZkMWM2MmFhYjFjM2M1ZTQxYmIxZjkuLjEyNmYzM2NkNmE0MTUyNzcz
NTc4ZjQzYmI2MDdiMmJhNjkwMmU3M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQ
cm90b3R5cGVGdW5jdGlvbnMuaApAQCAtOTEsNyArOTEsNyBAQCBpbmxpbmUgdW5zaWduZWQgYXJn
dW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRPckVuZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LAogICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5lZCgpKQogICAgICAgICByZXR1cm4gdW5kZWZp
bmVkVmFsdWU7CiAKLSAgICBkb3VibGUgaW5kZXhEb3VibGUgPSB2YWx1ZS50b0ludGVnZXIoZ2xv
YmFsT2JqZWN0KTsKKyAgICBkb3VibGUgaW5kZXhEb3VibGUgPSB2YWx1ZS50b0ludGVnZXJPcklu
ZmluaXR5KGdsb2JhbE9iamVjdCk7CiAgICAgaWYgKGluZGV4RG91YmxlIDwgMCkgewogICAgICAg
ICBpbmRleERvdWJsZSArPSBsZW5ndGg7CiAgICAgICAgIHJldHVybiBpbmRleERvdWJsZSA8IDAg
PyAwIDogc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGluZGV4RG91YmxlKTsKQEAgLTExMiw3ICsxMTIs
NyBAQCBBTFdBWVNfSU5MSU5FIEVuY29kZWRKU1ZhbHVlIGdlbmVyaWNUeXBlZEFycmF5Vmlld1By
b3RvRnVuY1NldChWTSYgdm0sIEpTR2xvYmFsTwogCiAgICAgdW5zaWduZWQgb2Zmc2V0OwogICAg
IGlmIChjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA+PSAyKSB7Ci0gICAgICAgIGRvdWJsZSBv
ZmZzZXROdW1iZXIgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50ZWdlcihn
bG9iYWxPYmplY3QpOworICAgICAgICBkb3VibGUgb2Zmc2V0TnVtYmVyID0gY2FsbEZyYW1lLT51
bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludGVnZXJPckluZmluaXR5KGdsb2JhbE9iamVjdCk7CiAg
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAg
ICAgICBpZiAoVU5MSUtFTFkob2Zmc2V0TnVtYmVyIDwgMCkpCiAgICAgICAgICAgICByZXR1cm4g
dGhyb3dWTVJhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIk9mZnNldCBzaG91bGQgbm90
IGJlIG5lZ2F0aXZlIik7CkBAIC0zNTUsNyArMzU1LDcgQEAgQUxXQVlTX0lOTElORSBFbmNvZGVk
SlNWYWx1ZSBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNMYXN0SW5kZXhPZihWTSYgdm0s
IEoKICAgICBpbnQgaW5kZXggPSBsZW5ndGggLSAxOwogICAgIGlmIChjYWxsRnJhbWUtPmFyZ3Vt
ZW50Q291bnQoKSA+PSAyKSB7CiAgICAgICAgIEpTVmFsdWUgZnJvbVZhbHVlID0gY2FsbEZyYW1l
LT51bmNoZWNrZWRBcmd1bWVudCgxKTsKLSAgICAgICAgZG91YmxlIGZyb21Eb3VibGUgPSBmcm9t
VmFsdWUudG9JbnRlZ2VyKGdsb2JhbE9iamVjdCk7CisgICAgICAgIGRvdWJsZSBmcm9tRG91Ymxl
ID0gZnJvbVZhbHVlLnRvSW50ZWdlck9ySW5maW5pdHkoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgICAgIGlm
IChmcm9tRG91YmxlIDwgMCkgewogICAgICAgICAgICAgZnJvbURvdWJsZSArPSBsZW5ndGg7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcApp
bmRleCBlZmM2NzczNTE5MDkyY2FiNjc5NzljYzRjZGJmZjg5ZjU1NTMzM2Q5Li45MmNjZWZiM2Y4
Y2M3ZTUxM2NjNjQxOGE1OTE0ZjkzN2E0NzA2NDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKQEAgLTM5Myw3ICszOTMsNyBAQCBK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obnVtYmVyUHJvdG9GdW5jVG9FeHBvbmVudGlhbCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogCiAgICAgSlNWYWx1ZSBhcmcgPSBjYWxsRnJhbWUtPmFy
Z3VtZW50KDApOwogICAgIC8vIFBlcmZvcm0gVG9JbnRlZ2VyIG9uIHRoZSBhcmd1bWVudCBiZWZv
cmUgcmVtYWluaW5nIHN0ZXBzLgotICAgIGludCBkZWNpbWFsUGxhY2VzID0gc3RhdGljX2Nhc3Q8
aW50PihhcmcudG9JbnRlZ2VyKGdsb2JhbE9iamVjdCkpOworICAgIGludCBkZWNpbWFsUGxhY2Vz
ID0gc3RhdGljX2Nhc3Q8aW50PihhcmcudG9JbnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmplY3Qp
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgLy8gSGFuZGxl
IE5hTiBhbmQgSW5maW5pdHkuCkBAIC00MjgsNyArNDI4LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKG51bWJlclByb3RvRnVuY1RvRml4ZWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LAogICAgIGlmICghdG9UaGlzTnVtYmVyKHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLCB4
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1Ub1RoaXNOdW1iZXJFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKIAotICAgIGludCBkZWNpbWFsUGxhY2Vz
ID0gc3RhdGljX2Nhc3Q8aW50PihjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvSW50ZWdlcihnbG9i
YWxPYmplY3QpKTsKKyAgICBpbnQgZGVjaW1hbFBsYWNlcyA9IHN0YXRpY19jYXN0PGludD4oY2Fs
bEZyYW1lLT5hcmd1bWVudCgwKS50b0ludGVnZXJPckluZmluaXR5KGdsb2JhbE9iamVjdCkpOwog
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgaWYgKGRlY2ltYWxQbGFj
ZXMgPCAwIHx8IGRlY2ltYWxQbGFjZXMgPiAxMDApCiAgICAgICAgIHJldHVybiB0aHJvd1ZNUmFu
Z2VFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAidG9GaXhlZCgpIGFyZ3VtZW50IG11c3QgYmUg
YmV0d2VlbiAwIGFuZCAxMDAiX3MpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihudW1iZXJQcm90b0Z1bmNUb1ByZWNpc2lvbiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0sIFN0
cmluZzo6bnVtYmVyKHgpKSk7CiAKICAgICAvLyBQZXJmb3JtIFRvSW50ZWdlciBvbiB0aGUgYXJn
dW1lbnQgYmVmb3JlIHJlbWFpbmluZyBzdGVwcy4KLSAgICBpbnQgc2lnbmlmaWNhbnRGaWd1cmVz
ID0gc3RhdGljX2Nhc3Q8aW50PihhcmcudG9JbnRlZ2VyKGdsb2JhbE9iamVjdCkpOworICAgIGlu
dCBzaWduaWZpY2FudEZpZ3VyZXMgPSBzdGF0aWNfY2FzdDxpbnQ+KGFyZy50b0ludGVnZXJPcklu
ZmluaXR5KGdsb2JhbE9iamVjdCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CiAKICAgICAvLyBIYW5kbGUgTmFOIGFuZCBJbmZpbml0eS4KQEAgLTYwMSw3ICs2MDEsNyBA
QCBpbnQzMl90IGV4dHJhY3RUb1N0cmluZ1JhZGl4QXJndW1lbnQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSByYWRpeAogICAgICAgICBpZiAocmFkaXggPj0gMiAmJiByYWRp
eCA8PSAzNikKICAgICAgICAgICAgIHJldHVybiByYWRpeDsKICAgICB9IGVsc2UgewotICAgICAg
ICBkb3VibGUgcmFkaXhEb3VibGUgPSByYWRpeFZhbHVlLnRvSW50ZWdlcihnbG9iYWxPYmplY3Qp
OworICAgICAgICBkb3VibGUgcmFkaXhEb3VibGUgPSByYWRpeFZhbHVlLnRvSW50ZWdlck9ySW5m
aW5pdHkoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Nj
b3BlLCAwKTsKICAgICAgICAgaWYgKHJhZGl4RG91YmxlID49IDIgJiYgcmFkaXhEb3VibGUgPD0g
MzYpCiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4ocmFkaXhEb3VibGUp
OyAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2Jq
ZWN0SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0
SW5saW5lcy5oCmluZGV4IDgxMGY2MTZjMTA0ZDk3ZmE2MWM2MjFmYzE1NmYyYTU2YzlhNTRkYmUu
LjMxMjU1ODM2OGQ3YTBmYWRlZDc3MTI4M2IyODY0OWY1ZWZkM2QyYjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdElubGluZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3RJbmxpbmVzLmgKQEAgLTQ1
LDcgKzQ1LDcgQEAgQUxXQVlTX0lOTElORSB1bnNpZ25lZCBnZXRSZWdFeHBPYmplY3RMYXN0SW5k
ZXhBc1Vuc2lnbmVkKAogICAgICAgICBpZiAobGFzdEluZGV4ID4gaW5wdXQubGVuZ3RoKCkpCiAg
ICAgICAgICAgICByZXR1cm4gVUlOVF9NQVg7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgZG91Ymxl
IGRvdWJsZUxhc3RJbmRleCA9IGpzTGFzdEluZGV4LnRvSW50ZWdlcihnbG9iYWxPYmplY3QpOwor
ICAgICAgICBkb3VibGUgZG91YmxlTGFzdEluZGV4ID0ganNMYXN0SW5kZXgudG9JbnRlZ2VyT3JJ
bmZpbml0eShnbG9iYWxPYmplY3QpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBVSU5UX01BWCk7CiAgICAgICAgIGlmIChkb3VibGVMYXN0SW5kZXggPiBpbnB1dC5sZW5ndGgo
KSkKICAgICAgICAgICAgIHJldHVybiBVSU5UX01BWDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IDcyZDdlNTQxYjdkNzcwZjFj
MjZkY2NiM2UwMGE2YjE2Y2FkY2JmMGYuLmIzMjZlYzJhNjc5OGQ4MjZmNjhlN2Y0MmVjNzY5NDE4
YWI3NzFhNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
UHJvdG90eXBlLmNwcApAQCAtOTk0LDcgKzk5NCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihzdHJpbmdQcm90b0Z1bmNDaGFyQXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU2luZ2xlQ2hhcmFjdGVyU3Ry
aW5nKHZtLCB2aWV3W2ldKSk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNFbXB0
eVN0cmluZyh2bSkpOwogICAgIH0KLSAgICBkb3VibGUgZHBvcyA9IGEwLnRvSW50ZWdlcihnbG9i
YWxPYmplY3QpOworICAgIGRvdWJsZSBkcG9zID0gYTAudG9JbnRlZ2VyT3JJbmZpbml0eShnbG9i
YWxPYmplY3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgaWYg
KGRwb3MgPj0gMCAmJiBkcG9zIDwgdmlldy5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1NpbmdsZUNoYXJhY3RlclN0cmluZyh2bSwgdmlld1tzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oZHBvcyldKSk7CkBAIC0xMDIxLDcgKzEwMjEsNyBAQCBKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jQ2hhckNvZGVBdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplYwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih2aWV3
W2ldKSk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgfQot
ICAgIGRvdWJsZSBkcG9zID0gYTAudG9JbnRlZ2VyKGdsb2JhbE9iamVjdCk7CisgICAgZG91Ymxl
IGRwb3MgPSBhMC50b0ludGVnZXJPckluZmluaXR5KGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICBpZiAoZHBvcyA+PSAwICYmIGRwb3MgPCB2
aWV3Lmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHZp
ZXdbc3RhdGljX2Nhc3Q8aW50PihkcG9zKV0pKTsKQEAgLTEwNjEsNyArMTA2MSw3IEBAIEpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNDb2RlUG9pbnRBdCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplCiAKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNv
ZGVkSlNWYWx1ZSgpKTsKIAotICAgIGRvdWJsZSBkb3VibGVQb3NpdGlvbiA9IGFyZ3VtZW50MC50
b0ludGVnZXIoZ2xvYmFsT2JqZWN0KTsKKyAgICBkb3VibGUgZG91YmxlUG9zaXRpb24gPSBhcmd1
bWVudDAudG9JbnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmplY3QpOwogICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIGlmIChkb3VibGVQb3NpdGlv
biA+PSAwICYmIGRvdWJsZVBvc2l0aW9uIDwgbGVuZ3RoKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKGNvZGVQb2ludEF0KHN0cmluZywgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KGRvdWJsZVBvc2l0aW9uKSwgbGVuZ3RoKSkpOwpAQCAtMTA5Miw3ICsxMDkyLDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIHN0cmluZ0luZGV4T2ZJbXBsKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSoKICAgICAgICAgaWYgKGExLmlzVUludDMyKCkpCiAgICAgICAg
ICAgICBwb3MgPSBzdGQ6Om1pbjx1aW50MzJfdD4oYTEuYXNVSW50MzIoKSwgbGVuKTsKICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICBkb3VibGUgZHBvcyA9IGExLnRvSW50ZWdlcihnbG9iYWxP
YmplY3QpOworICAgICAgICAgICAgZG91YmxlIGRwb3MgPSBhMS50b0ludGVnZXJPckluZmluaXR5
KGdsb2JhbE9iamVjdCk7CiAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBl
bmNvZGVkSlNWYWx1ZSgpKTsKICAgICAgICAgICAgIGlmIChkcG9zIDwgMCkKICAgICAgICAgICAg
ICAgICBkcG9zID0gMDsKQEAgLTExOTEsOSArMTE5MSw5IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihzdHJpbmdQcm90b0Z1bmNTbGljZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhCiAgICAgUkVMRUFTRV9BU1NFUlQobGVuZ3RoID49IDApOwogCiAgICAgLy8gVGhlIGFyZyBw
cm9jZXNzaW5nIGlzIHZlcnkgbXVjaCBsaWtlIEFycmF5UHJvdG9GdW5jOjpTbGljZQotICAgIGRv
dWJsZSBzdGFydCA9IGEwLnRvSW50ZWdlcihnbG9iYWxPYmplY3QpOworICAgIGRvdWJsZSBzdGFy
dCA9IGEwLnRvSW50ZWdlck9ySW5maW5pdHkoZ2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICBkb3VibGUgZW5kID0gYTEu
aXNVbmRlZmluZWQoKSA/IGxlbmd0aCA6IGExLnRvSW50ZWdlcihnbG9iYWxPYmplY3QpOworICAg
IGRvdWJsZSBlbmQgPSBhMS5pc1VuZGVmaW5lZCgpID8gbGVuZ3RoIDogYTEudG9JbnRlZ2VyT3JJ
bmZpbml0eShnbG9iYWxPYmplY3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVu
Y29kZWRKU1ZhbHVlKCkpOwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKHN0cmluZ1NsaWNlKGdsb2JhbE9iamVjdCwgdm0sIHN0cmluZywgbGVuZ3RoLCBzdGFy
dCwgZW5kKSkpOwogfQpAQCAtMTM5Myw5ICsxMzkzLDkgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHN0cmluZ1Byb3RvRnVuY1N1YnN0ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEMKICAgICBKU1ZhbHVlIGEwID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBKU1ZhbHVl
IGExID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKIAotICAgIGRvdWJsZSBzdGFydCA9IGEwLnRv
SW50ZWdlcihnbG9iYWxPYmplY3QpOworICAgIGRvdWJsZSBzdGFydCA9IGEwLnRvSW50ZWdlck9y
SW5maW5pdHkoZ2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBl
bmNvZGVkSlNWYWx1ZSgpKTsKLSAgICBkb3VibGUgbGVuZ3RoID0gYTEuaXNVbmRlZmluZWQoKSA/
IGxlbiA6IGExLnRvSW50ZWdlcihnbG9iYWxPYmplY3QpOworICAgIGRvdWJsZSBsZW5ndGggPSBh
MS5pc1VuZGVmaW5lZCgpID8gbGVuIDogYTEudG9JbnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmpl
Y3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwog
ICAgIGlmIChzdGFydCA+PSBsZW4gfHwgbGVuZ3RoIDw9IDApCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNFbXB0eVN0cmluZyh2bSkpOwpAQCAtMTczMSw3ICsxNzMxLDcgQEAgSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1N0YXJ0c1dpdGgsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICAgICAgc3RhcnQgPSBzdGQ6Om1heCgwLCBwb3NpdGlv
bkFyZy5hc0ludDMyKCkpOwogICAgIGVsc2UgewogICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBz
dHJpbmdUb1NlYXJjaEluLmxlbmd0aCgpOwotICAgICAgICBzdGFydCA9IGNsYW1wQW5kVHJ1bmNh
dGVUb1Vuc2lnbmVkKHBvc2l0aW9uQXJnLnRvSW50ZWdlcihnbG9iYWxPYmplY3QpLCAwLCBsZW5n
dGgpOworICAgICAgICBzdGFydCA9IGNsYW1wQW5kVHJ1bmNhdGVUb1Vuc2lnbmVkKHBvc2l0aW9u
QXJnLnRvSW50ZWdlck9ySW5maW5pdHkoZ2xvYmFsT2JqZWN0KSwgMCwgbGVuZ3RoKTsKICAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgfQog
CkBAIC0xNzY2LDcgKzE3NjYsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJv
dG9GdW5jRW5kc1dpdGgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIGlmIChl
bmRQb3NpdGlvbkFyZy5pc0ludDMyKCkpCiAgICAgICAgIGVuZCA9IHN0ZDo6bWF4KDAsIGVuZFBv
c2l0aW9uQXJnLmFzSW50MzIoKSk7CiAgICAgZWxzZSBpZiAoIWVuZFBvc2l0aW9uQXJnLmlzVW5k
ZWZpbmVkKCkpIHsKLSAgICAgICAgZW5kID0gY2xhbXBBbmRUcnVuY2F0ZVRvVW5zaWduZWQoZW5k
UG9zaXRpb25BcmcudG9JbnRlZ2VyKGdsb2JhbE9iamVjdCksIDAsIGxlbmd0aCk7CisgICAgICAg
IGVuZCA9IGNsYW1wQW5kVHJ1bmNhdGVUb1Vuc2lnbmVkKGVuZFBvc2l0aW9uQXJnLnRvSW50ZWdl
ck9ySW5maW5pdHkoZ2xvYmFsT2JqZWN0KSwgMCwgbGVuZ3RoKTsKICAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgfQogCkBAIC0xNzgxLDcg
KzE3ODEsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3RyaW5nSW5jbHVkZXNJbXBsKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgUwogICAgICAgICBzdGFydCA9IHN0ZDo6
bWF4KDAsIHBvc2l0aW9uQXJnLmFzSW50MzIoKSk7CiAgICAgZWxzZSB7CiAgICAgICAgIHVuc2ln
bmVkIGxlbmd0aCA9IHN0cmluZ1RvU2VhcmNoSW4ubGVuZ3RoKCk7Ci0gICAgICAgIHN0YXJ0ID0g
Y2xhbXBBbmRUcnVuY2F0ZVRvVW5zaWduZWQocG9zaXRpb25BcmcudG9JbnRlZ2VyKGdsb2JhbE9i
amVjdCksIDAsIGxlbmd0aCk7CisgICAgICAgIHN0YXJ0ID0gY2xhbXBBbmRUcnVuY2F0ZVRvVW5z
aWduZWQocG9zaXRpb25BcmcudG9JbnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmplY3QpLCAwLCBs
ZW5ndGgpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKICAgICB9CiAK
</data>
<flag name="commit-queue"
          id="437782"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419530</attachid>
            <date>2021-02-07 00:27:33 -0800</date>
            <delta_ts>2021-02-07 03:13:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218642-20210207002732.patch</filename>
            <type>text/plain</type>
            <size>26975</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
NjhmOWU5YzJiOTMxYzhkODEzNDA3MDY5NDExOWNhOTI2YWE0MDc3Li5jYzJkZWU3MTlmNDZjZTJj
ODBhMzViMjYxOThjYjNiNzc1ZjQ3NzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAyMS0wMi0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlcGxhY2UgdG9JbnRlZ2VyIHdpdGggdG9JbnRlZ2VyT3JJbmZp
bml0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4
NjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4g
RUNNQTI2MiBzcGVjLCBUb0ludGVnZXIgYWJzdHJhY3Qgb3BlcmF0aW9uIGlzIHJlcGxhY2VkIHdp
dGggVG9JbnRlZ2VyT3JJbmZpbml0eS4KKyAgICAgICAgVGhpcyBwYXRjaCByZW5hbWVzIHRvSW50
ZWdlciB0byB0b0ludGVnZXJPckluZmluaXR5IGluIEpTQy4KKworICAgICAgICAqIGJ1aWx0aW5z
L0FycmF5UHJvdG90eXBlLmpzOgorICAgICAgICAoZmlsbCk6CisgICAgICAgIChpbmNsdWRlcyk6
CisgICAgICAgIChjb3B5V2l0aGluKToKKyAgICAgICAgKGZsYXQpOgorICAgICAgICAoYXQpOgor
ICAgICAgICAqIGJ1aWx0aW5zL0Z1bmN0aW9uUHJvdG90eXBlLmpzOgorICAgICAgICAoYmluZCk6
CisgICAgICAgICogYnVpbHRpbnMvR2xvYmFsT3BlcmF0aW9ucy5qczoKKyAgICAgICAgKGdsb2Jh
bFByaXZhdGUudG9JbnRlZ2VyT3JJbmZpbml0eSk6CisgICAgICAgIChnbG9iYWxQcml2YXRlLnRv
TGVuZ3RoKToKKyAgICAgICAgKGdsb2JhbFByaXZhdGUudG9JbnRlZ2VyKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBidWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanM6CisgICAgICAgIChvdmVycmlkZGVu
TmFtZS5zdHJpbmdfYXBwZWFyZWRfaGVyZS5yZXBsYWNlKToKKyAgICAgICAgKiBidWlsdGlucy9T
dHJpbmdQcm90b3R5cGUuanM6CisgICAgICAgIChyZXBlYXQpOgorICAgICAgICAoYXQpOgorICAg
ICAgICAqIGJ1aWx0aW5zL1R5cGVkQXJyYXlQcm90b3R5cGUuanM6CisgICAgICAgIChzdWJhcnJh
eSk6CisgICAgICAgIChhdCk6CisgICAgICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRI
b3N0LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OndlYWtN
YXBFbnRyaWVzKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6Ondl
YWtTZXRFbnRyaWVzKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6
Oml0ZXJhdG9yRW50cmllcyk6CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6
CisgICAgICAgIChKU0M6OmFyZ3VtZW50Q2xhbXBlZEluZGV4RnJvbVN0YXJ0T3JFbmQpOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUv
SW50bFNlZ21lbnRzLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bFNlZ21lbnRzOjpjb250YWluaW5n
KToKKyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpKU1Zh
bHVlOjp0b0ludGVnZXJPckluZmluaXR5IGNvbnN0KToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6
dG9MZW5ndGggY29uc3QpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjp0b0ludGVnZXIgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6OmFyZ3VtZW50
Q2xhbXBlZEluZGV4RnJvbVN0YXJ0T3JFbmQpOgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRB
cnJheVZpZXdQcm90b0Z1bmNTZXQpOgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRBcnJheVZp
ZXdQcm90b0Z1bmNMYXN0SW5kZXhPZik6CisgICAgICAgICogcnVudGltZS9OdW1iZXJQcm90b3R5
cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAg
ICAoSlNDOjpleHRyYWN0VG9TdHJpbmdSYWRpeEFyZ3VtZW50KToKKyAgICAgICAgKiBydW50aW1l
L1JlZ0V4cE9iamVjdElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6Z2V0UmVnRXhwT2JqZWN0TGFz
dEluZGV4QXNVbnNpZ25lZCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3Bw
OgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlND
OjpzdHJpbmdJbmRleE9mSW1wbCk6CisgICAgICAgIChKU0M6OnN0cmluZ0luY2x1ZGVzSW1wbCk6
CisKIDIwMjEtMDItMDYgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04gKHIyNjQ1NzQpOiBVbmNoZWNrZWQgSlMgZXhjZXB0aW9uIGlu
IHZhbGlkYXRlQW5kQXBwbHlQcm9wZXJ0eURlc2NyaXB0b3IoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzCmluZGV4IGYxMTllYmYyODA5OTZm
ZDQ3MDdhYTRlZDdkZGIyMzkwNDc3YzJkODQuLmFhYzE3ZmE4MWI0MWRmNWZkNmFlNjcxMjNlZjU4
MTMyMDgzMzQ0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9B
cnJheVByb3RvdHlwZS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJy
YXlQcm90b3R5cGUuanMKQEAgLTIwNSw3ICsyMDUsNyBAQCBmdW5jdGlvbiBmaWxsKHZhbHVlIC8q
IFssIHN0YXJ0IFssIGVuZF1dICovKQogICAgIHZhciBhcnJheSA9IEB0b09iamVjdCh0aGlzLCAi
QXJyYXkucHJvdG90eXBlLmZpbGwgcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGwgb3Ig
dW5kZWZpbmVkIik7CiAgICAgdmFyIGxlbmd0aCA9IEB0b0xlbmd0aChhcnJheS5sZW5ndGgpOwog
Ci0gICAgdmFyIHJlbGF0aXZlU3RhcnQgPSBAdG9JbnRlZ2VyKEBhcmd1bWVudCgxKSk7CisgICAg
dmFyIHJlbGF0aXZlU3RhcnQgPSBAdG9JbnRlZ2VyT3JJbmZpbml0eShAYXJndW1lbnQoMSkpOwog
ICAgIHZhciBrID0gMDsKICAgICBpZiAocmVsYXRpdmVTdGFydCA8IDApIHsKICAgICAgICAgayA9
IGxlbmd0aCArIHJlbGF0aXZlU3RhcnQ7CkBAIC0yMTksNyArMjE5LDcgQEAgZnVuY3Rpb24gZmls
bCh2YWx1ZSAvKiBbLCBzdGFydCBbLCBlbmRdXSAqLykKICAgICB2YXIgcmVsYXRpdmVFbmQgPSBs
ZW5ndGg7CiAgICAgdmFyIGVuZCA9IEBhcmd1bWVudCgyKTsKICAgICBpZiAoZW5kICE9PSBAdW5k
ZWZpbmVkKQotICAgICAgICByZWxhdGl2ZUVuZCA9IEB0b0ludGVnZXIoZW5kKTsKKyAgICAgICAg
cmVsYXRpdmVFbmQgPSBAdG9JbnRlZ2VyT3JJbmZpbml0eShlbmQpOwogICAgIHZhciBmaW5hbCA9
IDA7CiAgICAgaWYgKHJlbGF0aXZlRW5kIDwgMCkgewogICAgICAgICBmaW5hbCA9IGxlbmd0aCAr
IHJlbGF0aXZlRW5kOwpAQCAtMjg1LDcgKzI4NSw3IEBAIGZ1bmN0aW9uIGluY2x1ZGVzKHNlYXJj
aEVsZW1lbnQgLyosIGZyb21JbmRleCovKQogICAgIHZhciBmcm9tSW5kZXggPSAwOwogICAgIHZh
ciBmcm9tID0gQGFyZ3VtZW50KDEpOwogICAgIGlmIChmcm9tICE9PSBAdW5kZWZpbmVkKQotICAg
ICAgICBmcm9tSW5kZXggPSBAdG9JbnRlZ2VyKGZyb20pOworICAgICAgICBmcm9tSW5kZXggPSBA
dG9JbnRlZ2VyT3JJbmZpbml0eShmcm9tKTsKIAogICAgIHZhciBpbmRleDsKICAgICBpZiAoZnJv
bUluZGV4ID49IDApCkBAIC01NzYsMTAgKzU3NiwxMCBAQCBmdW5jdGlvbiBtaW5XaXRoTWF5YmVO
ZWdhdGl2ZVplcm9BbmRQb3NpdGl2ZShtYXliZU5lZ2F0aXZlWmVybywgcG9zaXRpdmUpCiAgICAg
dmFyIGFycmF5ID0gQHRvT2JqZWN0KHRoaXMsICJBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbiBy
ZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQiKTsKICAgICB2YXIg
bGVuZ3RoID0gQHRvTGVuZ3RoKGFycmF5Lmxlbmd0aCk7CiAKLSAgICB2YXIgcmVsYXRpdmVUYXJn
ZXQgPSBAdG9JbnRlZ2VyKHRhcmdldCk7CisgICAgdmFyIHJlbGF0aXZlVGFyZ2V0ID0gQHRvSW50
ZWdlck9ySW5maW5pdHkodGFyZ2V0KTsKICAgICB2YXIgdG8gPSAocmVsYXRpdmVUYXJnZXQgPCAw
KSA/IG1heFdpdGhQb3NpdGl2ZXMobGVuZ3RoICsgcmVsYXRpdmVUYXJnZXQsIDApIDogbWluV2l0
aE1heWJlTmVnYXRpdmVaZXJvQW5kUG9zaXRpdmUocmVsYXRpdmVUYXJnZXQsIGxlbmd0aCk7CiAK
LSAgICB2YXIgcmVsYXRpdmVTdGFydCA9IEB0b0ludGVnZXIoc3RhcnQpOworICAgIHZhciByZWxh
dGl2ZVN0YXJ0ID0gQHRvSW50ZWdlck9ySW5maW5pdHkoc3RhcnQpOwogICAgIHZhciBmcm9tID0g
KHJlbGF0aXZlU3RhcnQgPCAwKSA/IG1heFdpdGhQb3NpdGl2ZXMobGVuZ3RoICsgcmVsYXRpdmVT
dGFydCwgMCkgOiBtaW5XaXRoTWF5YmVOZWdhdGl2ZVplcm9BbmRQb3NpdGl2ZShyZWxhdGl2ZVN0
YXJ0LCBsZW5ndGgpOwogCiAgICAgdmFyIHJlbGF0aXZlRW5kOwpAQCAtNTg3LDcgKzU4Nyw3IEBA
IGZ1bmN0aW9uIG1pbldpdGhNYXliZU5lZ2F0aXZlWmVyb0FuZFBvc2l0aXZlKG1heWJlTmVnYXRp
dmVaZXJvLCBwb3NpdGl2ZSkKICAgICBpZiAoZW5kID09PSBAdW5kZWZpbmVkKQogICAgICAgICBy
ZWxhdGl2ZUVuZCA9IGxlbmd0aDsKICAgICBlbHNlCi0gICAgICAgIHJlbGF0aXZlRW5kID0gQHRv
SW50ZWdlcihlbmQpOworICAgICAgICByZWxhdGl2ZUVuZCA9IEB0b0ludGVnZXJPckluZmluaXR5
KGVuZCk7CiAKICAgICB2YXIgZmluYWxWYWx1ZSA9IChyZWxhdGl2ZUVuZCA8IDApID8gbWF4V2l0
aFBvc2l0aXZlcyhsZW5ndGggKyByZWxhdGl2ZUVuZCwgMCkgOiBtaW5XaXRoTWF5YmVOZWdhdGl2
ZVplcm9BbmRQb3NpdGl2ZShyZWxhdGl2ZUVuZCwgbGVuZ3RoKTsKIApAQCAtNjQxLDcgKzY0MSw3
IEBAIGZ1bmN0aW9uIGZsYXQoKQogICAgIHZhciBkZXB0aE51bSA9IDE7CiAgICAgdmFyIGRlcHRo
ID0gQGFyZ3VtZW50KDApOwogICAgIGlmIChkZXB0aCAhPT0gQHVuZGVmaW5lZCkKLSAgICAgICAg
ZGVwdGhOdW0gPSBAdG9JbnRlZ2VyKGRlcHRoKTsKKyAgICAgICAgZGVwdGhOdW0gPSBAdG9JbnRl
Z2VyT3JJbmZpbml0eShkZXB0aCk7CiAKICAgICB2YXIgcmVzdWx0ID0gQGFycmF5U3BlY2llc0Ny
ZWF0ZShhcnJheSwgMCk7CiAKQEAgLTY5NCw3ICs2OTQsNyBAQCBmdW5jdGlvbiBhdChpbmRleCkK
ICAgICB2YXIgYXJyYXkgPSBAdG9PYmplY3QodGhpcywgIkFycmF5LnByb3RvdHlwZS5hdCByZXF1
aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQiKTsKICAgICB2YXIgbGVu
Z3RoID0gQHRvTGVuZ3RoKGFycmF5Lmxlbmd0aCk7CiAKLSAgICB2YXIgayA9IEB0b0ludGVnZXIo
aW5kZXgpOworICAgIHZhciBrID0gQHRvSW50ZWdlck9ySW5maW5pdHkoaW5kZXgpOwogICAgIGlm
IChrIDwgMCkKICAgICAgICAgayArPSBsZW5ndGg7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9GdW5jdGlvblByb3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9GdW5jdGlvblByb3RvdHlwZS5qcwppbmRleCBkZDI3NWJhMzMzMDZk
NzU2YjEyY2Y4MGNmZWRiZTU2YjFlZGYzZWMzLi5hZjI5YWZkODM1NmNhZjliN2U5OGY0YjY2Nzkx
YTQzYTU3NDQ1OWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMv
RnVuY3Rpb25Qcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L0Z1bmN0aW9uUHJvdG90eXBlLmpzCkBAIC03Nyw3ICs3Nyw3IEBAIGZ1bmN0aW9uIGJpbmQodGhp
c1ZhbHVlKQogICAgIGlmIChAaGFzT3duTGVuZ3RoUHJvcGVydHkodGFyZ2V0KSkgewogICAgICAg
ICB2YXIgbGVuZ3RoVmFsdWUgPSB0YXJnZXQubGVuZ3RoOwogICAgICAgICBpZiAodHlwZW9mIGxl
bmd0aFZhbHVlID09PSAibnVtYmVyIikgewotICAgICAgICAgICAgbGVuZ3RoVmFsdWUgPSBAdG9J
bnRlZ2VyKGxlbmd0aFZhbHVlKTsKKyAgICAgICAgICAgIGxlbmd0aFZhbHVlID0gQHRvSW50ZWdl
ck9ySW5maW5pdHkobGVuZ3RoVmFsdWUpOwogICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHdlIG9u
bHkgY2FyZSBhYm91dCBwb3NpdGl2ZSBsZW5ndGhWYWx1ZXMsIGhvd2V2ZXIsIHRoaXMgY29tcGFy
aXNpb24KICAgICAgICAgICAgIC8vIGFnYWluc3QgbnVtQm91bmRBcmdzIHN1ZmZpY2VzIHRvIHBy
b3ZlIHdlJ3JlIG5vdCBhIG5lZ2F0aXZlIG51bWJlci4KICAgICAgICAgICAgIGlmIChsZW5ndGhW
YWx1ZSA+IG51bUJvdW5kQXJncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9HbG9iYWxPcGVyYXRpb25zLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0dsb2JhbE9wZXJhdGlvbnMuanMKaW5kZXggNzBmYzM2OTUyY2Q2M2E3NTMwYjI2ODFkY2Q2
OGE5YzdlYzhiYWU3MC4uMWUwZjhhMjAyZWVjNjQ3MGJhNGY3MGU2NWU3YzQ5Y2MyYjUyZGNmNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dsb2JhbE9wZXJhdGlv
bnMuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dsb2JhbE9wZXJhdGlv
bnMuanMKQEAgLTI3LDE0ICsyNywxNCBAQAogLy8gQGludGVybmFsCiAKIEBnbG9iYWxQcml2YXRl
Ci1mdW5jdGlvbiB0b0ludGVnZXIodGFyZ2V0KQorZnVuY3Rpb24gdG9JbnRlZ2VyT3JJbmZpbml0
eSh0YXJnZXQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCiAgICAgdmFyIG51bWJlclZhbHVlID0g
K3RhcmdldDsKIAotICAgIC8vIGlzTmFOKG51bWJlclZhbHVlKQotICAgIGlmIChudW1iZXJWYWx1
ZSAhPT0gbnVtYmVyVmFsdWUpCisgICAgLy8gaXNOYU4obnVtYmVyVmFsdWUpIG9yIDAKKyAgICBp
ZiAobnVtYmVyVmFsdWUgIT09IG51bWJlclZhbHVlIHx8ICFudW1iZXJWYWx1ZSkKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgcmV0dXJuIEB0cnVuYyhudW1iZXJWYWx1ZSk7CiB9CkBAIC00NCw3ICs0
NCw3IEBAIGZ1bmN0aW9uIHRvTGVuZ3RoKHRhcmdldCkKIHsKICAgICAidXNlIHN0cmljdCI7CiAK
LSAgICB2YXIgbGVuZ3RoID0gQHRvSW50ZWdlcih0YXJnZXQpOworICAgIHZhciBsZW5ndGggPSBA
dG9JbnRlZ2VyT3JJbmZpbml0eSh0YXJnZXQpOwogICAgIC8vIG9yaWdpbmFsbHkgTWF0aC5taW4o
TWF0aC5tYXgobGVuZ3RoLCAwKSwgbWF4U2FmZUludGVnZXIpKTsKICAgICByZXR1cm4gKyhsZW5n
dGggPiAwID8gKGxlbmd0aCA8IEBNQVhfU0FGRV9JTlRFR0VSID8gbGVuZ3RoIDogQE1BWF9TQUZF
X0lOVEVHRVIpIDogMCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L1JlZ0V4cFByb3RvdHlwZS5qcwppbmRleCAzNWQ1NTE4ODAyNGU3NDU0MzgxY2JmNjUwMDU0ZGZh
YWJlMzA1OTAyLi5lOWU1OWM0OTNiZWZhNDgyM2Q2ODZiMmRlNjU3YmQyMzBhMDBkZTE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpz
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMK
QEAgLTMzMSw3ICszMzEsNyBAQCBmdW5jdGlvbiBnZXRTdWJzdGl0dXRpb24obWF0Y2hlZCwgc3Ry
LCBwb3NpdGlvbiwgY2FwdHVyZXMsIG5hbWVkQ2FwdHVyZXMsIHJlcGxhYwogICAgICAgICAgICAg
bkNhcHR1cmVzID0gMDsKICAgICAgICAgdmFyIG1hdGNoZWQgPSBAdG9TdHJpbmcocmVzdWx0WzBd
KTsKICAgICAgICAgdmFyIG1hdGNoTGVuZ3RoID0gbWF0Y2hlZC5sZW5ndGg7Ci0gICAgICAgIHZh
ciBwb3NpdGlvbiA9IEB0b0ludGVnZXIocmVzdWx0LmluZGV4KTsKKyAgICAgICAgdmFyIHBvc2l0
aW9uID0gQHRvSW50ZWdlck9ySW5maW5pdHkocmVzdWx0LmluZGV4KTsKICAgICAgICAgcG9zaXRp
b24gPSAocG9zaXRpb24gPiBzdHJpbmdMZW5ndGgpID8gc3RyaW5nTGVuZ3RoIDogcG9zaXRpb247
CiAgICAgICAgIHBvc2l0aW9uID0gKHBvc2l0aW9uIDwgMCkgPyAwIDogcG9zaXRpb247CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUu
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nUHJvdG90eXBlLmpzCmlu
ZGV4IDQwODgzY2RhYzYwNjcwNjY2MDYwYjcyZWM4MjU5YTY5OTRhZDc2OTIuLjNlMzRkZGI2NjM0
OTI2YWZhODA4ZWY1NjFlMDg1ZmQ3ZWNiOTNiODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5qcwpAQCAtMTI2LDcgKzEyNiw3IEBAIGZ1
bmN0aW9uIHJlcGVhdChjb3VudCkKICAgICAgICAgQHRocm93VHlwZUVycm9yKCJTdHJpbmcucHJv
dG90eXBlLnJlcGVhdCByZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgbnVsbCBvciB1bmRlZmlu
ZWQiKTsKIAogICAgIHZhciBzdHJpbmcgPSBAdG9TdHJpbmcodGhpcyk7Ci0gICAgY291bnQgPSBA
dG9JbnRlZ2VyKGNvdW50KTsKKyAgICBjb3VudCA9IEB0b0ludGVnZXJPckluZmluaXR5KGNvdW50
KTsKIAogICAgIGlmIChjb3VudCA8IDAgfHwgY291bnQgPT09IEBJbmZpbml0eSkKICAgICAgICAg
QHRocm93UmFuZ2VFcnJvcigiU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQgYXJndW1lbnQgbXVzdCBi
ZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCBhbmQgbm90IGJlIEluZmluaXR5Iik7CkBAIC0z
NTIsNyArMzUyLDcgQEAgZnVuY3Rpb24gYXQoaW5kZXgpCiAgICAgdmFyIHN0cmluZyA9IEB0b1N0
cmluZyh0aGlzKTsgICAKICAgICB2YXIgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aDsgCiAKLSAgICB2
YXIgayA9IEB0b0ludGVnZXIoaW5kZXgpOyAgCisgICAgdmFyIGsgPSBAdG9JbnRlZ2VyT3JJbmZp
bml0eShpbmRleCk7ICAKICAgICBpZiAoayA8IDApICAKICAgICAgICAgayArPSBsZW5ndGg7ICAg
IAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvVHlwZWRBcnJh
eVByb3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9UeXBlZEFycmF5
UHJvdG90eXBlLmpzCmluZGV4IGU2MGFkOTVmMjljMmMyYWQ1NTI4NmY2NTY0ZjdkMjE0MmU0Mzdl
NzAuLjU5ODY1ZDE3Yzk2YWZlNGRkYzdmYzc3Y2FhY2JiMDEzMzI0NjRkNmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9UeXBlZEFycmF5UHJvdG90eXBlLmpzCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9UeXBlZEFycmF5UHJvdG90eXBlLmpz
CkBAIC0yMjIsMTAgKzIyMiwxMCBAQCBmdW5jdGlvbiBzdWJhcnJheShiZWdpbiwgZW5kKQogICAg
IGlmICghQGlzVHlwZWRBcnJheVZpZXcodGhpcykpCiAgICAgICAgIEB0aHJvd1R5cGVFcnJvcigi
fHRoaXN8IHNob3VsZCBiZSBhIHR5cGVkIGFycmF5IHZpZXciKTsKIAotICAgIHZhciBzdGFydCA9
IEB0b0ludGVnZXIoYmVnaW4pOworICAgIHZhciBzdGFydCA9IEB0b0ludGVnZXJPckluZmluaXR5
KGJlZ2luKTsKICAgICB2YXIgZmluaXNoOwogICAgIGlmIChlbmQgIT09IEB1bmRlZmluZWQpCi0g
ICAgICAgIGZpbmlzaCA9IEB0b0ludGVnZXIoZW5kKTsKKyAgICAgICAgZmluaXNoID0gQHRvSW50
ZWdlck9ySW5maW5pdHkoZW5kKTsKIAogICAgIHZhciBjb25zdHJ1Y3RvciA9IEB0eXBlZEFycmF5
U3BlY2llc0NvbnN0cnVjdG9yKHRoaXMpOwogCkBAIC0zNjQsNyArMzY0LDcgQEAgZnVuY3Rpb24g
YXQoaW5kZXgpCiAKICAgICB2YXIgbGVuZ3RoID0gQHR5cGVkQXJyYXlMZW5ndGgodGhpcyk7CiAK
LSAgICB2YXIgayA9IEB0b0ludGVnZXIoaW5kZXgpOworICAgIHZhciBrID0gQHRvSW50ZWdlck9y
SW5maW5pdHkoaW5kZXgpOwogICAgIGlmIChrIDwgMCkKICAgICAgICAgayArPSBsZW5ndGg7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNj
cmlwdEhvc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVk
U2NyaXB0SG9zdC5jcHAKaW5kZXggYTk4YmQ4NmJkNjA3ZTIyYjQ4ZGQwMTJkNmM4NmQ3Nzc3NjQx
OGNiNi4uZjc4YTUzMGEzNzNjZmU4NjM2NjJhNTE0MTY3ZTdhMmE4YzBjZTQzMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0
SG9zdC5jcHAKQEAgLTQ3MCw3ICs0NzAsNyBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0
Ojp3ZWFrTWFwRW50cmllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRgogICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGJ1
ZmZlcjsKLSAgICBhdXRvIGZldGNoQ291bnQgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpLnRvSW50
ZWdlcihnbG9iYWxPYmplY3QpOworICAgIGF1dG8gZmV0Y2hDb3VudCA9IGNhbGxGcmFtZS0+YXJn
dW1lbnQoMSkudG9JbnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmplY3QpOwogICAgIHdlYWtNYXAt
PnRha2VTbmFwc2hvdChidWZmZXIsIGZldGNoQ291bnQgPj0gMCA/IHN0YXRpY19jYXN0PHVuc2ln
bmVkPihmZXRjaENvdW50KSA6IDApOwogICAgIEFTU0VSVCghYnVmZmVyLmhhc092ZXJmbG93ZWQo
KSk7CiAKQEAgLTUxNCw3ICs1MTQsNyBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0Ojp3
ZWFrU2V0RW50cmllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRgogICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGJ1ZmZl
cjsKLSAgICBhdXRvIGZldGNoQ291bnQgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpLnRvSW50ZWdl
cihnbG9iYWxPYmplY3QpOworICAgIGF1dG8gZmV0Y2hDb3VudCA9IGNhbGxGcmFtZS0+YXJndW1l
bnQoMSkudG9JbnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmplY3QpOwogICAgIHdlYWtTZXQtPnRh
a2VTbmFwc2hvdChidWZmZXIsIGZldGNoQ291bnQgPj0gMCA/IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihmZXRjaENvdW50KSA6IDApOwogICAgIEFTU0VSVCghYnVmZmVyLmhhc092ZXJmbG93ZWQoKSk7
CiAKQEAgLTU5Miw3ICs1OTIsNyBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0OjppdGVy
YXRvckVudHJpZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogCiAgICAgdW5z
aWduZWQgbnVtYmVyVG9GZXRjaCA9IDU7CiAgICAgSlNWYWx1ZSBudW1iZXJUb0ZldGNoQXJnID0g
Y2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKLSAgICBkb3VibGUgZmV0Y2hEb3VibGUgPSBudW1iZXJU
b0ZldGNoQXJnLnRvSW50ZWdlcihnbG9iYWxPYmplY3QpOworICAgIGRvdWJsZSBmZXRjaERvdWJs
ZSA9IG51bWJlclRvRmV0Y2hBcmcudG9JbnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmplY3QpOwog
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgaWYgKGZldGNoRG91Ymxl
ID49IDApCiAgICAgICAgIG51bWJlclRvRmV0Y2ggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZmV0
Y2hEb3VibGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90
b3R5cGUuY3BwCmluZGV4IGZiYzM2YzliNmY1MDg5MTZkM2MzMGUxYTJhZWI1NjMxODg4NzllOWEu
LmFiMGI5ZGYxZTg5NmQxZDA4Yzk5Njk5MjgzZWMwODRlZWFlZGRhMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTI4Nyw3ICsy
ODcsNyBAQCBzdGF0aWMgaW5saW5lIHVpbnQ2NF90IGFyZ3VtZW50Q2xhbXBlZEluZGV4RnJvbVN0
YXJ0T3JFbmQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5l
ZCgpKQogICAgICAgICByZXR1cm4gdW5kZWZpbmVkVmFsdWU7CiAKLSAgICBkb3VibGUgaW5kZXhE
b3VibGUgPSB2YWx1ZS50b0ludGVnZXIoZ2xvYmFsT2JqZWN0KTsKKyAgICBkb3VibGUgaW5kZXhE
b3VibGUgPSB2YWx1ZS50b0ludGVnZXJPckluZmluaXR5KGdsb2JhbE9iamVjdCk7CiAgICAgaWYg
KGluZGV4RG91YmxlIDwgMCkgewogICAgICAgICBpbmRleERvdWJsZSArPSBsZW5ndGg7CiAgICAg
ICAgIHJldHVybiBpbmRleERvdWJsZSA8IDAgPyAwIDogc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGlu
ZGV4RG91YmxlKTsKQEAgLTExNjcsNyArMTE2Nyw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihhcnJheVByb3RvRnVuY1NwbGljZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
CiAKICAgICB1aW50NjRfdCBhY3R1YWxEZWxldGVDb3VudCA9IGxlbmd0aCAtIGFjdHVhbFN0YXJ0
OwogICAgIGlmIChjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA+IDEpIHsKLSAgICAgICAgZG91
YmxlIGRlbGV0ZUNvdW50ID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludGVn
ZXIoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgZG91YmxlIGRlbGV0ZUNvdW50ID0gY2FsbEZyYW1l
LT51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludGVnZXJPckluZmluaXR5KGdsb2JhbE9iamVjdCk7
CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwog
ICAgICAgICBpZiAoZGVsZXRlQ291bnQgPCAwKQogICAgICAgICAgICAgYWN0dWFsRGVsZXRlQ291
bnQgPSAwOwpAQCAtMTQyNyw3ICsxNDI3LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFy
cmF5UHJvdG9GdW5jTGFzdEluZGV4T2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAg
ICB1aW50NjRfdCBpbmRleCA9IGxlbmd0aCAtIDE7CiAgICAgaWYgKGNhbGxGcmFtZS0+YXJndW1l
bnRDb3VudCgpID49IDIpIHsKICAgICAgICAgSlNWYWx1ZSBmcm9tVmFsdWUgPSBjYWxsRnJhbWUt
PnVuY2hlY2tlZEFyZ3VtZW50KDEpOwotICAgICAgICBkb3VibGUgZnJvbURvdWJsZSA9IGZyb21W
YWx1ZS50b0ludGVnZXIoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgZG91YmxlIGZyb21Eb3VibGUg
PSBmcm9tVmFsdWUudG9JbnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmplY3QpOwogICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAgICAgICBpZiAoZnJvbURvdWJsZSA8
IDApIHsKICAgICAgICAgICAgIGZyb21Eb3VibGUgKz0gbGVuZ3RoOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxTZWdtZW50cy5jcHAKaW5kZXggODczNzFkZTgzMjQ5NzQz
MjNlMDg3NzNkMWYwM2YyYmMxMmY4YWU2Zi4uYzNjMzgyM2FjNjI2NDBkYzU3M2IwNGM1NTUxZGQ0
NTU2OTY1YjNkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bFNlZ21lbnRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsU2Vn
bWVudHMuY3BwCkBAIC03MSw3ICs3MSw3IEBAIEpTVmFsdWUgSW50bFNlZ21lbnRzOjpjb250YWlu
aW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgaW5kZXhWYWx1CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKIAotICAgIGRvdWJsZSB2YWx1ZSA9IGluZGV4VmFsdWUudG9JbnRlZ2Vy
KGdsb2JhbE9iamVjdCk7CisgICAgZG91YmxlIHZhbHVlID0gaW5kZXhWYWx1ZS50b0ludGVnZXJP
ckluZmluaXR5KGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
eyB9KTsKIAogICAgIGlmICh2YWx1ZSA8IDAgfHwgdmFsdWUgPj0gbV9idWZmZXItPnNpemUoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5jcHAKaW5kZXggZDU5
ZTE2YTU3NTBkM2JhMjcwOTUxOWJkNjllMTBkY2NiYTgwYTI2NC4uNjJkOWRhMTUyNDRlMzdiZDM1
MGFiNWZhMDg0NGM4YjJlNmJiYjY0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDSlNWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDSlNWYWx1ZS5jcHAKQEAgLTM1LDE1ICszNSw2IEBACiAKIG5hbWVzcGFjZSBKU0Mgewog
Ci0vLyBFQ01BIDkuNAotZG91YmxlIEpTVmFsdWU6OnRvSW50ZWdlcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KSBjb25zdAotewotICAgIGlmIChpc0ludDMyKCkpCi0gICAgICAgIHJldHVy
biBhc0ludDMyKCk7Ci0gICAgZG91YmxlIGQgPSB0b051bWJlcihnbG9iYWxPYmplY3QpOwotICAg
IHJldHVybiBzdGQ6OmlzbmFuKGQpID8gMC4wIDogdHJ1bmMoZCk7Ci19Ci0KIGRvdWJsZSBKU1Zh
bHVlOjp0b0ludGVnZXJQcmVzZXJ2ZU5hTihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBj
b25zdAogewogICAgIGlmIChpc0ludDMyKCkpCkBAIC01NSw3ICs0Niw3IEBAIGRvdWJsZSBKU1Zh
bHVlOjp0b0xlbmd0aChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAogewogICAg
IC8vIEVDTUEgNy4xLjE1CiAgICAgLy8gaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3Jn
L2VjbWEtMjYyLzYuMC8jc2VjLXRvbGVuZ3RoCi0gICAgZG91YmxlIGQgPSB0b0ludGVnZXIoZ2xv
YmFsT2JqZWN0KTsKKyAgICBkb3VibGUgZCA9IHRvSW50ZWdlck9ySW5maW5pdHkoZ2xvYmFsT2Jq
ZWN0KTsKICAgICBpZiAoZCA8PSAwKQogICAgICAgICByZXR1cm4gMC4wOwogICAgIGlmIChzdGQ6
OmlzaW5mKGQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
SlNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCmlu
ZGV4IDk3Y2RhYWEyNTJlZWUwZjI2YTVlNjhjMTdmODkzZWMwNTg5YjE2NDUuLmE4NzkzZjk4NzEz
MjdhNWJhZDlkN2E4MDQ4YzliZDdkOTg1YmIxMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0NKU1ZhbHVlLmgKQEAgLTI5MCw3ICsyOTAsNiBAQCBjbGFzcyBKU1ZhbHVlIHsK
ICAgICBKU09iamVjdCogdG9PYmplY3QoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKIAogICAgIC8v
IEludGVnZXIgY29udmVyc2lvbnMuCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgZG91YmxlIHRvSW50
ZWdlcihKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIGRvdWJs
ZSB0b0ludGVnZXJQcmVzZXJ2ZU5hTihKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogICAgIGRvdWJs
ZSB0b0ludGVnZXJPckluZmluaXR5KEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAgaW50MzJf
dCB0b0ludDMyKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAppbmRleCA2MGY4ZmU2YTJkNjI0ZjI2
ZWY1Y2VmYWUyODE5MmQ3ODJmMDAxN2I2Li5kOTg3NTE1ZTRkYTQwMzFjN2JkN2UxOWM2YzlkMjY5
ZWRiN2ZmNDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NK
U1ZhbHVlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pT
VmFsdWVJbmxpbmVzLmgKQEAgLTgwLDggKzgwLDYgQEAgaW5saW5lIHVpbnQzMl90IEpTVmFsdWU6
OnRvSW5kZXgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgY2hhciogZXJyb3IK
IH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b2ludGVnZXJvcmluZmluaXR5
Ci0vLyBGSVhNRTogV2Ugd2lsbCByZXBsYWNlIHRvSW50ZWdlciB3aXRoIHRvSW50ZWdlck9ySW5m
aW5pdHkuIFRoZSBkaWZmZXJlbmNlIGlzIHRoYXQgdG9JbnRlZ2VyT3JJbmZpbml0eSB3aWxsIGNv
bnZlcnQgLTAgdG8gKzAuCi0vLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE4NjQyCiBpbmxpbmUgZG91YmxlIEpTVmFsdWU6OnRvSW50ZWdlck9ySW5maW5pdHkoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKIHsKICAgICBpZiAoaXNJbnQzMigpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRB
cnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmgKaW5kZXggZWM5
Mjk1NTBiYjM1OTU3MmYwZmQxYzYyYWFiMWMzYzVlNDFiYjFmOS4uMTI2ZjMzY2Q2YTQxNTI3NzM1
NzhmNDNiYjYwN2IyYmE2OTAyZTczZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1By
b3RvdHlwZUZ1bmN0aW9ucy5oCkBAIC05MSw3ICs5MSw3IEBAIGlubGluZSB1bnNpZ25lZCBhcmd1
bWVudENsYW1wZWRJbmRleEZyb21TdGFydE9yRW5kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsCiAgICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkKCkpCiAgICAgICAgIHJldHVybiB1bmRlZmlu
ZWRWYWx1ZTsKIAotICAgIGRvdWJsZSBpbmRleERvdWJsZSA9IHZhbHVlLnRvSW50ZWdlcihnbG9i
YWxPYmplY3QpOworICAgIGRvdWJsZSBpbmRleERvdWJsZSA9IHZhbHVlLnRvSW50ZWdlck9ySW5m
aW5pdHkoZ2xvYmFsT2JqZWN0KTsKICAgICBpZiAoaW5kZXhEb3VibGUgPCAwKSB7CiAgICAgICAg
IGluZGV4RG91YmxlICs9IGxlbmd0aDsKICAgICAgICAgcmV0dXJuIGluZGV4RG91YmxlIDwgMCA/
IDAgOiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaW5kZXhEb3VibGUpOwpAQCAtMTEyLDcgKzExMiw3
IEBAIEFMV0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJv
dG9GdW5jU2V0KFZNJiB2bSwgSlNHbG9iYWxPCiAKICAgICB1bnNpZ25lZCBvZmZzZXQ7CiAgICAg
aWYgKGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpID49IDIpIHsKLSAgICAgICAgZG91YmxlIG9m
ZnNldE51bWJlciA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnRlZ2VyKGds
b2JhbE9iamVjdCk7CisgICAgICAgIGRvdWJsZSBvZmZzZXROdW1iZXIgPSBjYWxsRnJhbWUtPnVu
Y2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50ZWdlck9ySW5maW5pdHkoZ2xvYmFsT2JqZWN0KTsKICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAg
ICAgIGlmIChVTkxJS0VMWShvZmZzZXROdW1iZXIgPCAwKSkKICAgICAgICAgICAgIHJldHVybiB0
aHJvd1ZNUmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiT2Zmc2V0IHNob3VsZCBub3Qg
YmUgbmVnYXRpdmUiKTsKQEAgLTM1NSw3ICszNTUsNyBAQCBBTFdBWVNfSU5MSU5FIEVuY29kZWRK
U1ZhbHVlIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0xhc3RJbmRleE9mKFZNJiB2bSwg
SgogICAgIGludCBpbmRleCA9IGxlbmd0aCAtIDE7CiAgICAgaWYgKGNhbGxGcmFtZS0+YXJndW1l
bnRDb3VudCgpID49IDIpIHsKICAgICAgICAgSlNWYWx1ZSBmcm9tVmFsdWUgPSBjYWxsRnJhbWUt
PnVuY2hlY2tlZEFyZ3VtZW50KDEpOwotICAgICAgICBkb3VibGUgZnJvbURvdWJsZSA9IGZyb21W
YWx1ZS50b0ludGVnZXIoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgZG91YmxlIGZyb21Eb3VibGUg
PSBmcm9tVmFsdWUudG9JbnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmplY3QpOwogICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICAgICAgaWYg
KGZyb21Eb3VibGUgPCAwKSB7CiAgICAgICAgICAgICBmcm9tRG91YmxlICs9IGxlbmd0aDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCmlu
ZGV4IGVmYzY3NzM1MTkwOTJjYWI2Nzk3OWNjNGNkYmZmODlmNTU1MzMzZDkuLjkyY2NlZmIzZjhj
YzdlNTEzY2M2NDE4YTU5MTRmOTM3YTQ3MDY0NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcApAQCAtMzkzLDcgKzM5Myw3IEBAIEpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihudW1iZXJQcm90b0Z1bmNUb0V4cG9uZW50aWFsLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iCiAKICAgICBKU1ZhbHVlIGFyZyA9IGNhbGxGcmFtZS0+YXJn
dW1lbnQoMCk7CiAgICAgLy8gUGVyZm9ybSBUb0ludGVnZXIgb24gdGhlIGFyZ3VtZW50IGJlZm9y
ZSByZW1haW5pbmcgc3RlcHMuCi0gICAgaW50IGRlY2ltYWxQbGFjZXMgPSBzdGF0aWNfY2FzdDxp
bnQ+KGFyZy50b0ludGVnZXIoZ2xvYmFsT2JqZWN0KSk7CisgICAgaW50IGRlY2ltYWxQbGFjZXMg
PSBzdGF0aWNfY2FzdDxpbnQ+KGFyZy50b0ludGVnZXJPckluZmluaXR5KGdsb2JhbE9iamVjdCkp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICAvLyBIYW5kbGUg
TmFOIGFuZCBJbmZpbml0eS4KQEAgLTQyOCw3ICs0MjgsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04obnVtYmVyUHJvdG9GdW5jVG9GaXhlZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsCiAgICAgaWYgKCF0b1RoaXNOdW1iZXIodm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCksIHgp
KQogICAgICAgICByZXR1cm4gdGhyb3dWTVRvVGhpc051bWJlckVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogCi0gICAgaW50IGRlY2ltYWxQbGFjZXMg
PSBzdGF0aWNfY2FzdDxpbnQ+KGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9JbnRlZ2VyKGdsb2Jh
bE9iamVjdCkpOworICAgIGludCBkZWNpbWFsUGxhY2VzID0gc3RhdGljX2Nhc3Q8aW50PihjYWxs
RnJhbWUtPmFyZ3VtZW50KDApLnRvSW50ZWdlck9ySW5maW5pdHkoZ2xvYmFsT2JqZWN0KSk7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICBpZiAoZGVjaW1hbFBsYWNl
cyA8IDAgfHwgZGVjaW1hbFBsYWNlcyA+IDEwMCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1SYW5n
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJ0b0ZpeGVkKCkgYXJndW1lbnQgbXVzdCBiZSBi
ZXR3ZWVuIDAgYW5kIDEwMCJfcyk7CkBAIC00NjgsNyArNDY4LDcgQEAgSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKG51bWJlclByb3RvRnVuY1RvUHJlY2lzaW9uLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamUKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyh2bSwgU3Ry
aW5nOjpudW1iZXIoeCkpKTsKIAogICAgIC8vIFBlcmZvcm0gVG9JbnRlZ2VyIG9uIHRoZSBhcmd1
bWVudCBiZWZvcmUgcmVtYWluaW5nIHN0ZXBzLgotICAgIGludCBzaWduaWZpY2FudEZpZ3VyZXMg
PSBzdGF0aWNfY2FzdDxpbnQ+KGFyZy50b0ludGVnZXIoZ2xvYmFsT2JqZWN0KSk7CisgICAgaW50
IHNpZ25pZmljYW50RmlndXJlcyA9IHN0YXRpY19jYXN0PGludD4oYXJnLnRvSW50ZWdlck9ySW5m
aW5pdHkoZ2xvYmFsT2JqZWN0KSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKIAogICAgIC8vIEhhbmRsZSBOYU4gYW5kIEluZmluaXR5LgpAQCAtNjAxLDcgKzYwMSw3IEBA
IGludDMyX3QgZXh0cmFjdFRvU3RyaW5nUmFkaXhBcmd1bWVudChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHJhZGl4CiAgICAgICAgIGlmIChyYWRpeCA+PSAyICYmIHJhZGl4
IDw9IDM2KQogICAgICAgICAgICAgcmV0dXJuIHJhZGl4OwogICAgIH0gZWxzZSB7Ci0gICAgICAg
IGRvdWJsZSByYWRpeERvdWJsZSA9IHJhZGl4VmFsdWUudG9JbnRlZ2VyKGdsb2JhbE9iamVjdCk7
CisgICAgICAgIGRvdWJsZSByYWRpeERvdWJsZSA9IHJhZGl4VmFsdWUudG9JbnRlZ2VyT3JJbmZp
bml0eShnbG9iYWxPYmplY3QpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2Nv
cGUsIDApOwogICAgICAgICBpZiAocmFkaXhEb3VibGUgPj0gMiAmJiByYWRpeERvdWJsZSA8PSAz
NikKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihyYWRpeERvdWJsZSk7
ICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmpl
Y3RJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3RJ
bmxpbmVzLmgKaW5kZXggODEwZjYxNmMxMDRkOTdmYTYxYzYyMWZjMTU2ZjJhNTZjOWE1NGRiZS4u
MzEyNTU4MzY4ZDdhMGZhZGVkNzcxMjgzYjI4NjQ5ZjVlZmQzZDJiMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0SW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdElubGluZXMuaApAQCAtNDUs
NyArNDUsNyBAQCBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIGdldFJlZ0V4cE9iamVjdExhc3RJbmRl
eEFzVW5zaWduZWQoCiAgICAgICAgIGlmIChsYXN0SW5kZXggPiBpbnB1dC5sZW5ndGgoKSkKICAg
ICAgICAgICAgIHJldHVybiBVSU5UX01BWDsKICAgICB9IGVsc2UgewotICAgICAgICBkb3VibGUg
ZG91YmxlTGFzdEluZGV4ID0ganNMYXN0SW5kZXgudG9JbnRlZ2VyKGdsb2JhbE9iamVjdCk7Cisg
ICAgICAgIGRvdWJsZSBkb3VibGVMYXN0SW5kZXggPSBqc0xhc3RJbmRleC50b0ludGVnZXJPcklu
ZmluaXR5KGdsb2JhbE9iamVjdCk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IFVJTlRfTUFYKTsKICAgICAgICAgaWYgKGRvdWJsZUxhc3RJbmRleCA+IGlucHV0Lmxlbmd0aCgp
KQogICAgICAgICAgICAgcmV0dXJuIFVJTlRfTUFYOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXggNzJkN2U1NDFiN2Q3NzBmMWMy
NmRjY2IzZTAwYTZiMTZjYWRjYmYwZi4uYjMyNmVjMmE2Nzk4ZDgyNmY2OGU3ZjQyZWM3Njk0MThh
Yjc3MWE3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQ
cm90b3R5cGUuY3BwCkBAIC05OTQsNyArOTk0LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHN0cmluZ1Byb3RvRnVuY0NoYXJBdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMK
ICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTaW5nbGVDaGFyYWN0ZXJTdHJp
bmcodm0sIHZpZXdbaV0pKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0VtcHR5
U3RyaW5nKHZtKSk7CiAgICAgfQotICAgIGRvdWJsZSBkcG9zID0gYTAudG9JbnRlZ2VyKGdsb2Jh
bE9iamVjdCk7CisgICAgZG91YmxlIGRwb3MgPSBhMC50b0ludGVnZXJPckluZmluaXR5KGdsb2Jh
bE9iamVjdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICBpZiAo
ZHBvcyA+PSAwICYmIGRwb3MgPCB2aWV3Lmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzU2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHZtLCB2aWV3W3N0YXRpY19jYXN0PHVu
c2lnbmVkPihkcG9zKV0pKTsKQEAgLTEwMjEsNyArMTAyMSw3IEBAIEpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihzdHJpbmdQcm90b0Z1bmNDaGFyQ29kZUF0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHZpZXdb
aV0pKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICB9Ci0g
ICAgZG91YmxlIGRwb3MgPSBhMC50b0ludGVnZXIoZ2xvYmFsT2JqZWN0KTsKKyAgICBkb3VibGUg
ZHBvcyA9IGEwLnRvSW50ZWdlck9ySW5maW5pdHkoZ2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAgIGlmIChkcG9zID49IDAgJiYgZHBvcyA8IHZp
ZXcubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodmll
d1tzdGF0aWNfY2FzdDxpbnQ+KGRwb3MpXSkpOwpAQCAtMTA2MSw3ICsxMDYxLDcgQEAgSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY0NvZGVQb2ludEF0LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamUKIAogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29k
ZWRKU1ZhbHVlKCkpOwogCi0gICAgZG91YmxlIGRvdWJsZVBvc2l0aW9uID0gYXJndW1lbnQwLnRv
SW50ZWdlcihnbG9iYWxPYmplY3QpOworICAgIGRvdWJsZSBkb3VibGVQb3NpdGlvbiA9IGFyZ3Vt
ZW50MC50b0ludGVnZXJPckluZmluaXR5KGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgaWYgKGRvdWJsZVBvc2l0aW9u
ID49IDAgJiYgZG91YmxlUG9zaXRpb24gPCBsZW5ndGgpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoY29kZVBvaW50QXQoc3RyaW5nLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oZG91YmxlUG9zaXRpb24pLCBsZW5ndGgpKSk7CkBAIC0xMDkyLDcgKzEwOTIsNyBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgc3RyaW5nSW5kZXhPZkltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKgogICAgICAgICBpZiAoYTEuaXNVSW50MzIoKSkKICAgICAgICAg
ICAgIHBvcyA9IHN0ZDo6bWluPHVpbnQzMl90PihhMS5hc1VJbnQzMigpLCBsZW4pOwogICAgICAg
ICBlbHNlIHsKLSAgICAgICAgICAgIGRvdWJsZSBkcG9zID0gYTEudG9JbnRlZ2VyKGdsb2JhbE9i
amVjdCk7CisgICAgICAgICAgICBkb3VibGUgZHBvcyA9IGExLnRvSW50ZWdlck9ySW5maW5pdHko
Z2xvYmFsT2JqZWN0KTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVu
Y29kZWRKU1ZhbHVlKCkpOwogICAgICAgICAgICAgaWYgKGRwb3MgPCAwKQogICAgICAgICAgICAg
ICAgIGRwb3MgPSAwOwpAQCAtMTE5MSw5ICsxMTkxLDkgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHN0cmluZ1Byb3RvRnVuY1NsaWNlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2EKICAgICBSRUxFQVNFX0FTU0VSVChsZW5ndGggPj0gMCk7CiAKICAgICAvLyBUaGUgYXJnIHBy
b2Nlc3NpbmcgaXMgdmVyeSBtdWNoIGxpa2UgQXJyYXlQcm90b0Z1bmM6OlNsaWNlCi0gICAgZG91
YmxlIHN0YXJ0ID0gYTAudG9JbnRlZ2VyKGdsb2JhbE9iamVjdCk7CisgICAgZG91YmxlIHN0YXJ0
ID0gYTAudG9JbnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmplY3QpOwogICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIGRvdWJsZSBlbmQgPSBhMS5p
c1VuZGVmaW5lZCgpID8gbGVuZ3RoIDogYTEudG9JbnRlZ2VyKGdsb2JhbE9iamVjdCk7CisgICAg
ZG91YmxlIGVuZCA9IGExLmlzVW5kZWZpbmVkKCkgPyBsZW5ndGggOiBhMS50b0ludGVnZXJPcklu
ZmluaXR5KGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5j
b2RlZEpTVmFsdWUoKSk7CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjpl
bmNvZGUoc3RyaW5nU2xpY2UoZ2xvYmFsT2JqZWN0LCB2bSwgc3RyaW5nLCBsZW5ndGgsIHN0YXJ0
LCBlbmQpKSk7CiB9CkBAIC0xMzkzLDkgKzEzOTMsOSBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oc3RyaW5nUHJvdG9GdW5jU3Vic3RyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
QwogICAgIEpTVmFsdWUgYTAgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIEpTVmFsdWUg
YTEgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOwogCi0gICAgZG91YmxlIHN0YXJ0ID0gYTAudG9J
bnRlZ2VyKGdsb2JhbE9iamVjdCk7CisgICAgZG91YmxlIHN0YXJ0ID0gYTAudG9JbnRlZ2VyT3JJ
bmZpbml0eShnbG9iYWxPYmplY3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVu
Y29kZWRKU1ZhbHVlKCkpOwotICAgIGRvdWJsZSBsZW5ndGggPSBhMS5pc1VuZGVmaW5lZCgpID8g
bGVuIDogYTEudG9JbnRlZ2VyKGdsb2JhbE9iamVjdCk7CisgICAgZG91YmxlIGxlbmd0aCA9IGEx
LmlzVW5kZWZpbmVkKCkgPyBsZW4gOiBhMS50b0ludGVnZXJPckluZmluaXR5KGdsb2JhbE9iamVj
dCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAg
ICAgaWYgKHN0YXJ0ID49IGxlbiB8fCBsZW5ndGggPD0gMCkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc0VtcHR5U3RyaW5nKHZtKSk7CkBAIC0xNzMxLDcgKzE3MzEsNyBAQCBKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jU3RhcnRzV2l0aCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplYwogICAgICAgICBzdGFydCA9IHN0ZDo6bWF4KDAsIHBvc2l0aW9u
QXJnLmFzSW50MzIoKSk7CiAgICAgZWxzZSB7CiAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IHN0
cmluZ1RvU2VhcmNoSW4ubGVuZ3RoKCk7Ci0gICAgICAgIHN0YXJ0ID0gY2xhbXBBbmRUcnVuY2F0
ZVRvVW5zaWduZWQocG9zaXRpb25BcmcudG9JbnRlZ2VyKGdsb2JhbE9iamVjdCksIDAsIGxlbmd0
aCk7CisgICAgICAgIHN0YXJ0ID0gY2xhbXBBbmRUcnVuY2F0ZVRvVW5zaWduZWQocG9zaXRpb25B
cmcudG9JbnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmplY3QpLCAwLCBsZW5ndGgpOwogICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICB9CiAK
QEAgLTE3NjYsNyArMTc2Niw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90
b0Z1bmNFbmRzV2l0aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgaWYgKGVu
ZFBvc2l0aW9uQXJnLmlzSW50MzIoKSkKICAgICAgICAgZW5kID0gc3RkOjptYXgoMCwgZW5kUG9z
aXRpb25BcmcuYXNJbnQzMigpKTsKICAgICBlbHNlIGlmICghZW5kUG9zaXRpb25BcmcuaXNVbmRl
ZmluZWQoKSkgewotICAgICAgICBlbmQgPSBjbGFtcEFuZFRydW5jYXRlVG9VbnNpZ25lZChlbmRQ
b3NpdGlvbkFyZy50b0ludGVnZXIoZ2xvYmFsT2JqZWN0KSwgMCwgbGVuZ3RoKTsKKyAgICAgICAg
ZW5kID0gY2xhbXBBbmRUcnVuY2F0ZVRvVW5zaWduZWQoZW5kUG9zaXRpb25BcmcudG9JbnRlZ2Vy
T3JJbmZpbml0eShnbG9iYWxPYmplY3QpLCAwLCBsZW5ndGgpOwogICAgICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICB9CiAKQEAgLTE3ODEsNyAr
MTc4MSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBzdHJpbmdJbmNsdWRlc0ltcGwoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBTCiAgICAgICAgIHN0YXJ0ID0gc3RkOjpt
YXgoMCwgcG9zaXRpb25BcmcuYXNJbnQzMigpKTsKICAgICBlbHNlIHsKICAgICAgICAgdW5zaWdu
ZWQgbGVuZ3RoID0gc3RyaW5nVG9TZWFyY2hJbi5sZW5ndGgoKTsKLSAgICAgICAgc3RhcnQgPSBj
bGFtcEFuZFRydW5jYXRlVG9VbnNpZ25lZChwb3NpdGlvbkFyZy50b0ludGVnZXIoZ2xvYmFsT2Jq
ZWN0KSwgMCwgbGVuZ3RoKTsKKyAgICAgICAgc3RhcnQgPSBjbGFtcEFuZFRydW5jYXRlVG9VbnNp
Z25lZChwb3NpdGlvbkFyZy50b0ludGVnZXJPckluZmluaXR5KGdsb2JhbE9iamVjdCksIDAsIGxl
bmd0aCk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVl
KCkpOwogICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>