<?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>206571</bug_id>
          
          <creation_ts>2020-01-21 23:12:21 -0800</creation_ts>
          <short_desc>[JSC] Add CheckArrayOrEmpty to handle the case when hoisting CheckArray for places where input can be empty</short_desc>
          <delta_ts>2020-01-22 12:45:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</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>1609465</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-21 23:12:21 -0800</bug_when>
    <thetext>[JSC] Add CheckArrayOrEmpty to handle the case when hoisting CheckArray for places where input can be empty</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609467</commentid>
    <comment_count>1</comment_count>
      <attachid>388398</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-21 23:18:38 -0800</bug_when>
    <thetext>Created attachment 388398
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609468</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-21 23:19:10 -0800</bug_when>
    <thetext>&lt;rdar://problem/58757016&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609550</commentid>
    <comment_count>3</comment_count>
      <attachid>388398</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-01-22 08:33:03 -0800</bug_when>
    <thetext>Comment on attachment 388398
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=388398&amp;action=review

&gt; Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:287
&gt; +                // check just remains, and it works as CheckArrayOrEmpty without ArrayMode checking.

Seems like we should also have an assert here like
speculatedTypeForUseKind(node-&gt;child1().useKind()) &amp; SpecEmpty

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:832
&gt; +        // We can purge Empty check completely in this case of CheckArrayOrEmpty since CellUse only accepts SpecCell | SpecEmpty.

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609686</commentid>
    <comment_count>4</comment_count>
      <attachid>388398</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-22 12:33:06 -0800</bug_when>
    <thetext>Comment on attachment 388398
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=388398&amp;action=review

&gt;&gt; Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:287
&gt;&gt; +                // check just remains, and it works as CheckArrayOrEmpty without ArrayMode checking.
&gt; 
&gt; Seems like we should also have an assert here like
&gt; speculatedTypeForUseKind(node-&gt;child1().useKind()) &amp; SpecEmpty

Fixed.

&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:832
&gt;&gt; +        // We can purge Empty check completely in this case of CheckArrayOrEmpty since CellUse only accepts SpecCell | SpecEmpty.
&gt; 
&gt; Ditto

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609692</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-22 12:45:43 -0800</bug_when>
    <thetext>Committed r254936: &lt;https://trac.webkit.org/changeset/254936&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388398</attachid>
            <date>2020-01-21 23:18:38 -0800</date>
            <delta_ts>2020-01-22 08:33:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206571-20200121231837.patch</filename>
            <type>text/plain</type>
            <size>32456</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZmE0N2M4M2FkMWY4YjE1ZmZjNTdjNzdmNzQ4YTEyYWIyZWFhMDkxLi5jOTVjMmIzM2JiNzFhYzZi
YTEwOGI4YTBhODMxYjk2MjBhYmZkYTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NCBAQAorMjAyMC0wMS0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBDaGVja0FycmF5T3JFbXB0eSB0byBoYW5kbGUgdGhlIGNh
c2Ugd2hlbiBob2lzdGluZyBDaGVja0FycmF5IGZvciBwbGFjZXMgd2hlcmUgaW5wdXQgY2FuIGJl
IGVtcHR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDY1NzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4NzU3MDE2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbmNlIHdlIGhvaXN0IENoZWNrQXJy
YXkgdG9vIGluIERGR1R5cGVDaGVja0hvaXN0aW5nUGhhc2UsIHdlIGhhdmUgdGhlIHNhbWUgcHJv
YmxlbSB0byBDaGVja1N0cnVjdHVyZU9yRW1wdHk6IHdlCisgICAgICAgIGNvdWxkIGluc2VydCBD
aGVja0FycmF5IHdoZXJlIHRoZSBpbnB1dCBjYW4gaW5jbHVkZSBFbXB0eS4gV2Ugc2hvdWxkIGhh
dmUgQ2hlY2tBcnJheU9yRW1wdHkgYXMgd2UgaGF2ZSBDaGVja1N0cnVjdHVyZU9yRW1wdHkKKyAg
ICAgICAgZm9yIENoZWNrU3RydWN0dXJlOiBDaGVja0FycmF5T3JFbXB0eSBhY2NlcHRzIGVtcHR5
IG9yIGNlbGwgd2l0aCBzcGVjaWZpZWQgYXJyYXktbW9kZXMuCisKKyAgICAgICAgKiBkZmcvREZH
QWJzdHJhY3RJbnRlcnByZXRlci5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJw
cmV0ZXI6OmZpbHRlckFycmF5TW9kZXMpOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8
QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgIChKU0M6OkRGRzo6
QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmZpbHRlckFycmF5TW9kZXMp
OgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpBYnN0cmFjdFZhbHVlOjpmaWx0ZXJBcnJheU1vZGVzKToKKyAgICAgICAgKiBkZmcvREZHQWJz
dHJhY3RWYWx1ZS5oOgorICAgICAgICAqIGRmZy9ERkdBcmd1bWVudHNFbGltaW5hdGlvblBoYXNl
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6
OmNsb2JiZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6Q29uc3RhbnRGb2xkaW5nUGhhc2U6OmZvbGRDb25zdGFudHMp
OgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNH
Qyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpOb2RlOjpjb252ZXJ0Q2hlY2tBcnJheU9yRW1wdHlUb0NoZWNrQXJyYXkp
OgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc0FycmF5TW9kZSk6CisgICAgICAgICogZGZn
L0RGR05vZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBo
YXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlND
OjpERkc6OnNhZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJyYXkpOgorICAg
ICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToK
KyAgICAgICAgKiBkZmcvREZHVHlwZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6VHlwZUNoZWNrSG9pc3RpbmdQaGFzZTo6cnVuKToKKyAgICAgICAgKiBkZmcvREZH
VmFsaWRhdGUuY3BwOgorICAgICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAg
ICAoSlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMu
Y3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlTm9kZSk6
CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDaGVja0FycmF5
T3JFbXB0eSk6CisKIDIwMjAtMDEtMjEgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNv
bnkuY29tPgogCiAgICAgICAgIFtKU0NdIERhdGUgcGFyc2UgbG9naWMgc2hvdWxkIGJlIGxlc3Mg
cmVkdW5kYW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlci5oCmluZGV4IGUyOTYxMDI3ZGRkM2M4YTdkN2FiMGVlZGFmNWM0N2Q1MmIxYzY0
YjcuLjRmNjZhY2NiZWY1OTMwMDgyNTQ3N2VkYmFhMTdjMjdjZTA1ZWUyYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlci5oCkBAIC0x
ODIsOSArMTgyLDkgQEAgY2xhc3MgQWJzdHJhY3RJbnRlcnByZXRlciB7CiAgICAgfQogICAgIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgRmlsdHJhdGlvblJlc3VsdCBmaWx0ZXJBcnJh
eU1vZGVzKFQgbm9kZSwgQXJyYXlNb2RlcyBhcnJheU1vZGVzKQorICAgIEZpbHRyYXRpb25SZXN1
bHQgZmlsdGVyQXJyYXlNb2RlcyhUIG5vZGUsIEFycmF5TW9kZXMgYXJyYXlNb2RlcywgU3BlY3Vs
YXRlZFR5cGUgYWRtaXR0ZWRUeXBlcyA9IFNwZWNOb25lKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGZpbHRlckFycmF5TW9kZXMoZm9yTm9kZShub2RlKSwgYXJyYXlNb2Rlcyk7CisgICAgICAgIHJl
dHVybiBmaWx0ZXJBcnJheU1vZGVzKGZvck5vZGUobm9kZSksIGFycmF5TW9kZXMsIGFkbWl0dGVk
VHlwZXMpOwogICAgIH0KICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpAQCAtMjA2LDcg
KzIwNiw3IEBAIGNsYXNzIEFic3RyYWN0SW50ZXJwcmV0ZXIgewogICAgIH0KIAogICAgIEZpbHRy
YXRpb25SZXN1bHQgZmlsdGVyKEFic3RyYWN0VmFsdWUmLCBjb25zdCBSZWdpc3RlcmVkU3RydWN0
dXJlU2V0JiwgU3BlY3VsYXRlZFR5cGUgYWRtaXR0ZWRUeXBlcyA9IFNwZWNOb25lKTsKLSAgICBG
aWx0cmF0aW9uUmVzdWx0IGZpbHRlckFycmF5TW9kZXMoQWJzdHJhY3RWYWx1ZSYsIEFycmF5TW9k
ZXMpOworICAgIEZpbHRyYXRpb25SZXN1bHQgZmlsdGVyQXJyYXlNb2RlcyhBYnN0cmFjdFZhbHVl
JiwgQXJyYXlNb2RlcywgU3BlY3VsYXRlZFR5cGUgYWRtaXR0ZWRUeXBlcyA9IFNwZWNOb25lKTsK
ICAgICBGaWx0cmF0aW9uUmVzdWx0IGZpbHRlcihBYnN0cmFjdFZhbHVlJiwgU3BlY3VsYXRlZFR5
cGUpOwogICAgIEZpbHRyYXRpb25SZXN1bHQgZmlsdGVyQnlWYWx1ZShBYnN0cmFjdFZhbHVlJiwg
RnJvemVuVmFsdWUpOwogICAgIEZpbHRyYXRpb25SZXN1bHQgZmlsdGVyQ2xhc3NJbmZvKEFic3Ry
YWN0VmFsdWUmLCBjb25zdCBDbGFzc0luZm8qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCA3YmU3
ZTJjYTJmY2YyMDcxMTAwMmExNTJmMWVmYWMwYTI5ZWQ5NWUyLi4xMzc4YmFiZDQzNTg2NmRiYmQ1
MDljZGZkMzMwOTA5ODgwNzUxYmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0zMzc5LDE0ICsz
Mzc5LDI3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4
ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGJyZWFrOwogICAgIH0K
IAorICAgIGNhc2UgQ2hlY2tBcnJheU9yRW1wdHk6CiAgICAgY2FzZSBDaGVja0FycmF5OiB7Ci0g
ICAgICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5hbHJlYWR5Q2hlY2tlZChtX2dyYXBoLCBub2Rl
LCBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKSkpIHsKKyAgICAgICAgQWJzdHJhY3RWYWx1ZSYgdmFs
dWUgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsKKworICAgICAgICBTcGVjdWxhdGVkVHlwZSBh
ZG1pdHRlZFR5cGVzID0gU3BlY05vbmU7CisgICAgICAgIGlmIChub2RlLT5vcCgpID09IENoZWNr
QXJyYXlPckVtcHR5KSB7CisgICAgICAgICAgICBib29sIG1heUJlRW1wdHkgPSB2YWx1ZS5tX3R5
cGUgJiBTcGVjRW1wdHk7CisgICAgICAgICAgICBpZiAoIW1heUJlRW1wdHkpCisgICAgICAgICAg
ICAgICAgbV9zdGF0ZS5zZXRTaG91bGRUcnlDb25zdGFudEZvbGRpbmcodHJ1ZSk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgYWRtaXR0ZWRUeXBlcyA9IFNwZWNFbXB0eTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5hbHJlYWR5Q2hlY2tlZCht
X2dyYXBoLCBub2RlLCB2YWx1ZSkpIHsKICAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5
Q29uc3RhbnRGb2xkaW5nKHRydWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKwog
ICAgICAgICBzd2l0Y2ggKG5vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgewogICAgICAgICBjYXNl
IEFycmF5OjpTdHJpbmc6Ci0gICAgICAgICAgICBmaWx0ZXIobm9kZS0+Y2hpbGQxKCksIFNwZWNT
dHJpbmcpOworICAgICAgICAgICAgZmlsdGVyKG5vZGUtPmNoaWxkMSgpLCBTcGVjU3RyaW5nIHwg
YWRtaXR0ZWRUeXBlcyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcnJheTo6
SW50MzI6CiAgICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZToKQEAgLTMzOTYsNDYgKzM0MDksNDYg
QEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVm
ZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgY2FzZSBBcnJheTo6U2xvd1B1dEFy
cmF5U3RvcmFnZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFycmF5OjpEaXJl
Y3RBcmd1bWVudHM6Ci0gICAgICAgICAgICBmaWx0ZXIobm9kZS0+Y2hpbGQxKCksIFNwZWNEaXJl
Y3RBcmd1bWVudHMpOworICAgICAgICAgICAgZmlsdGVyKG5vZGUtPmNoaWxkMSgpLCBTcGVjRGly
ZWN0QXJndW1lbnRzIHwgYWRtaXR0ZWRUeXBlcyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBBcnJheTo6U2NvcGVkQXJndW1lbnRzOgotICAgICAgICAgICAgZmlsdGVyKG5vZGUt
PmNoaWxkMSgpLCBTcGVjU2NvcGVkQXJndW1lbnRzKTsKKyAgICAgICAgICAgIGZpbHRlcihub2Rl
LT5jaGlsZDEoKSwgU3BlY1Njb3BlZEFyZ3VtZW50cyB8IGFkbWl0dGVkVHlwZXMpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJyYXk6OkludDhBcnJheToKLSAgICAgICAgICAg
IGZpbHRlcihub2RlLT5jaGlsZDEoKSwgU3BlY0ludDhBcnJheSk7CisgICAgICAgICAgICBmaWx0
ZXIobm9kZS0+Y2hpbGQxKCksIFNwZWNJbnQ4QXJyYXkgfCBhZG1pdHRlZFR5cGVzKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFycmF5OjpJbnQxNkFycmF5OgotICAgICAgICAg
ICAgZmlsdGVyKG5vZGUtPmNoaWxkMSgpLCBTcGVjSW50MTZBcnJheSk7CisgICAgICAgICAgICBm
aWx0ZXIobm9kZS0+Y2hpbGQxKCksIFNwZWNJbnQxNkFycmF5IHwgYWRtaXR0ZWRUeXBlcyk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcnJheTo6SW50MzJBcnJheToKLSAgICAg
ICAgICAgIGZpbHRlcihub2RlLT5jaGlsZDEoKSwgU3BlY0ludDMyQXJyYXkpOworICAgICAgICAg
ICAgZmlsdGVyKG5vZGUtPmNoaWxkMSgpLCBTcGVjSW50MzJBcnJheSB8IGFkbWl0dGVkVHlwZXMp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJyYXk6OlVpbnQ4QXJyYXk6Ci0g
ICAgICAgICAgICBmaWx0ZXIobm9kZS0+Y2hpbGQxKCksIFNwZWNVaW50OEFycmF5KTsKKyAgICAg
ICAgICAgIGZpbHRlcihub2RlLT5jaGlsZDEoKSwgU3BlY1VpbnQ4QXJyYXkgfCBhZG1pdHRlZFR5
cGVzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFycmF5OjpVaW50OENsYW1w
ZWRBcnJheToKLSAgICAgICAgICAgIGZpbHRlcihub2RlLT5jaGlsZDEoKSwgU3BlY1VpbnQ4Q2xh
bXBlZEFycmF5KTsKKyAgICAgICAgICAgIGZpbHRlcihub2RlLT5jaGlsZDEoKSwgU3BlY1VpbnQ4
Q2xhbXBlZEFycmF5IHwgYWRtaXR0ZWRUeXBlcyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBBcnJheTo6VWludDE2QXJyYXk6Ci0gICAgICAgICAgICBmaWx0ZXIobm9kZS0+Y2hp
bGQxKCksIFNwZWNVaW50MTZBcnJheSk7CisgICAgICAgICAgICBmaWx0ZXIobm9kZS0+Y2hpbGQx
KCksIFNwZWNVaW50MTZBcnJheSB8IGFkbWl0dGVkVHlwZXMpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQXJyYXk6OlVpbnQzMkFycmF5OgotICAgICAgICAgICAgZmlsdGVyKG5v
ZGUtPmNoaWxkMSgpLCBTcGVjVWludDMyQXJyYXkpOworICAgICAgICAgICAgZmlsdGVyKG5vZGUt
PmNoaWxkMSgpLCBTcGVjVWludDMyQXJyYXkgfCBhZG1pdHRlZFR5cGVzKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIEFycmF5OjpGbG9hdDMyQXJyYXk6Ci0gICAgICAgICAgICBm
aWx0ZXIobm9kZS0+Y2hpbGQxKCksIFNwZWNGbG9hdDMyQXJyYXkpOworICAgICAgICAgICAgZmls
dGVyKG5vZGUtPmNoaWxkMSgpLCBTcGVjRmxvYXQzMkFycmF5IHwgYWRtaXR0ZWRUeXBlcyk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcnJheTo6RmxvYXQ2NEFycmF5OgotICAg
ICAgICAgICAgZmlsdGVyKG5vZGUtPmNoaWxkMSgpLCBTcGVjRmxvYXQ2NEFycmF5KTsKKyAgICAg
ICAgICAgIGZpbHRlcihub2RlLT5jaGlsZDEoKSwgU3BlY0Zsb2F0NjRBcnJheSB8IGFkbWl0dGVk
VHlwZXMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJyYXk6OkFueVR5cGVk
QXJyYXk6Ci0gICAgICAgICAgICBmaWx0ZXIobm9kZS0+Y2hpbGQxKCksIFNwZWNUeXBlZEFycmF5
Vmlldyk7CisgICAgICAgICAgICBmaWx0ZXIobm9kZS0+Y2hpbGQxKCksIFNwZWNUeXBlZEFycmF5
VmlldyB8IGFkbWl0dGVkVHlwZXMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgZmlsdGVyQXJyYXlNb2Rlcyhub2RlLT5jaGls
ZDEoKSwgbm9kZS0+YXJyYXlNb2RlKCkuYXJyYXlNb2Rlc1RoYXRQYXNzRmlsdGVyaW5nKCkpOwor
ICAgICAgICBmaWx0ZXJBcnJheU1vZGVzKG5vZGUtPmNoaWxkMSgpLCBub2RlLT5hcnJheU1vZGUo
KS5hcnJheU1vZGVzVGhhdFBhc3NGaWx0ZXJpbmcoKSwgYWRtaXR0ZWRUeXBlcyk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KIApAQCAtNDQ2NCw5ICs0NDc3LDkgQEAgRmlsdHJhdGlvblJlc3VsdCBB
YnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZmlsdGVyKAogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBBYnN0cmFjdFN0YXRlVHlwZT4KIEZpbHRyYXRpb25SZXN1bHQgQWJzdHJhY3RJ
bnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmZpbHRlckFycmF5TW9kZXMoCi0gICAgQWJz
dHJhY3RWYWx1ZSYgdmFsdWUsIEFycmF5TW9kZXMgYXJyYXlNb2RlcykKKyAgICBBYnN0cmFjdFZh
bHVlJiB2YWx1ZSwgQXJyYXlNb2RlcyBhcnJheU1vZGVzLCBTcGVjdWxhdGVkVHlwZSBhZG1pdHRl
ZFR5cGVzKQogewotICAgIGlmICh2YWx1ZS5maWx0ZXJBcnJheU1vZGVzKGFycmF5TW9kZXMpID09
IEZpbHRyYXRpb25PSykKKyAgICBpZiAodmFsdWUuZmlsdGVyQXJyYXlNb2RlcyhhcnJheU1vZGVz
LCBhZG1pdHRlZFR5cGVzKSA9PSBGaWx0cmF0aW9uT0spCiAgICAgICAgIHJldHVybiBGaWx0cmF0
aW9uT0s7CiAgICAgbV9zdGF0ZS5zZXRJc1ZhbGlkKGZhbHNlKTsKICAgICByZXR1cm4gQ29udHJh
ZGljdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJh
Y3RWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUu
Y3BwCmluZGV4IGJhMDE5YzlkMjJhYmUzN2E1NTU3MDBmYTMxMjRlODE4YzJhMWYxYmYuLjhjNzFh
NDdjOGNhOTc2YjA5MjAzNjdjMjkxODYwMTkwZjEzZjQ1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmNwcApAQCAtMjY2LDE0ICsyNjYsMTUgQEAg
RmlsdHJhdGlvblJlc3VsdCBBYnN0cmFjdFZhbHVlOjpjaGFuZ2VTdHJ1Y3R1cmUoR3JhcGgmIGdy
YXBoLCBjb25zdCBSZWdpc3RlcmVkU3QKICAgICByZXR1cm4gbm9ybWFsaXplQ2xhcml0eShncmFw
aCk7CiB9CiAKLUZpbHRyYXRpb25SZXN1bHQgQWJzdHJhY3RWYWx1ZTo6ZmlsdGVyQXJyYXlNb2Rl
cyhBcnJheU1vZGVzIGFycmF5TW9kZXMpCitGaWx0cmF0aW9uUmVzdWx0IEFic3RyYWN0VmFsdWU6
OmZpbHRlckFycmF5TW9kZXMoQXJyYXlNb2RlcyBhcnJheU1vZGVzLCBTcGVjdWxhdGVkVHlwZSBh
ZG1pdHRlZFR5cGVzKQogewogICAgIEFTU0VSVChhcnJheU1vZGVzKTsKKyAgICBBU1NFUlQoIShh
ZG1pdHRlZFR5cGVzICYgU3BlY0NlbGwpKTsKICAgICAKICAgICBpZiAoaXNDbGVhcigpKQogICAg
ICAgICByZXR1cm4gRmlsdHJhdGlvbk9LOwogICAgIAotICAgIG1fdHlwZSAmPSBTcGVjQ2VsbDsK
KyAgICBtX3R5cGUgJj0gU3BlY0NlbGwgfCBhZG1pdHRlZFR5cGVzOwogICAgIG1fYXJyYXlNb2Rl
cyAmPSBhcnJheU1vZGVzOwogICAgIHJldHVybiBub3JtYWxpemVDbGFyaXR5KCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5oCmluZGV4IGNmOWZkMDhi
NzUxYjEyOWIwZjJhNTU0Y2E2MjhjMWRlMzFjM2JjNjIuLmU4NjlhMWIyZWMxYzJlOWFiOTk5MjVl
Y2IzZTJkOTYxOWViN2Q2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RWYWx1ZS5oCkBAIC0zMzYsNyArMzM2LDcgQEAgc3RydWN0IEFic3RyYWN0VmFsdWUgewog
ICAgIC8vIHdpdGggU3BlY0NlbGwuCiAgICAgRmlsdHJhdGlvblJlc3VsdCBmaWx0ZXIoR3JhcGgm
LCBjb25zdCBSZWdpc3RlcmVkU3RydWN0dXJlU2V0JiwgU3BlY3VsYXRlZFR5cGUgYWRtaXR0ZWRU
eXBlcyA9IFNwZWNOb25lKTsKICAgICAKLSAgICBGaWx0cmF0aW9uUmVzdWx0IGZpbHRlckFycmF5
TW9kZXMoQXJyYXlNb2Rlcyk7CisgICAgRmlsdHJhdGlvblJlc3VsdCBmaWx0ZXJBcnJheU1vZGVz
KEFycmF5TW9kZXMsIFNwZWN1bGF0ZWRUeXBlIGFkbWl0dGVkVHlwZXMgPSBTcGVjTm9uZSk7CiAK
ICAgICBBTFdBWVNfSU5MSU5FIEZpbHRyYXRpb25SZXN1bHQgZmlsdGVyKFNwZWN1bGF0ZWRUeXBl
IHR5cGUpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdB
cmd1bWVudHNFbGltaW5hdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5jcHAKaW5kZXggOWJiNGY0ZjM0ZTY3MDI5YTc0
MjI5NGE5NWE1ZDcyZjlkYzg4OWIxYy4uNTNiMDE0ODNlZDQxNDkwODQ4NzUxZGRiMzM2OWQyMTZi
Y2I1ZDVjOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcmd1bWVu
dHNFbGltaW5hdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0FyZ3VtZW50c0VsaW1pbmF0aW9uUGhhc2UuY3BwCkBAIC00MDksNiArNDA5LDcgQEAgY2xhc3Mg
QXJndW1lbnRzRWxpbWluYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAg
ICAgY2FzZSBGaWx0ZXJJbkJ5SWRTdGF0dXM6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
CisgICAgICAgICAgICAgICAgY2FzZSBDaGVja0FycmF5T3JFbXB0eToKICAgICAgICAgICAgICAg
ICBjYXNlIENoZWNrQXJyYXk6CiAgICAgICAgICAgICAgICAgICAgIGVzY2FwZUJhc2VkT25BcnJh
eU1vZGUobm9kZS0+YXJyYXlNb2RlKCksIG5vZGUtPmNoaWxkMSgpLCBub2RlKTsKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CkBAIC0xMjU5LDYgKzEyNjAsNyBAQCBjbGFzcyBBcmd1bWVudHNF
bGltaW5hdGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBjYXNlIENoZWNrQXJyYXlPckVtcHR5OgogICAgICAgICAgICAgICAgIGNhc2UgQ2hlY2tB
cnJheToKICAgICAgICAgICAgICAgICBjYXNlIEdldEJ1dHRlcmZseToKICAgICAgICAgICAgICAg
ICBjYXNlIEZpbHRlckdldEJ5U3RhdHVzOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Ns
b2JiZXJpemUuaAppbmRleCBjMzg2MTg3MGUwNzU1ZjlkNmE4OGM3MzIzMmQxOGUzYzE4NDE1MDIy
Li5jNzU4ZGU2MmVhZWY5NzI3MGI1YTVhMjYwMzNkNDBiYWFhMjIxYzA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtMTA5Niw2ICsxMDk2LDcgQEAgdm9p
ZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3Im
IHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgcmVhZChKU0NlbGxfc3RydWN0dXJlSUQpOwog
ICAgICAgICByZXR1cm47CiAKKyAgICBjYXNlIENoZWNrQXJyYXlPckVtcHR5OgogICAgIGNhc2Ug
Q2hlY2tBcnJheToKICAgICAgICAgcmVhZChKU0NlbGxfaW5kZXhpbmdUeXBlKTsKICAgICAgICAg
cmVhZChKU0NlbGxfdHlwZUluZm9UeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggZDhhZjAzNTI3Nzk1NWI3
YjdiZjk3YmNmMTY1MzgzMDI2N2JiNGY0NC4uZjEwMDUwOTU0ZTNjY2M1NDhmNTBmNjk0MjRjOTg1
MGZlMzMxNjI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25z
dGFudEZvbGRpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
b25zdGFudEZvbGRpbmdQaGFzZS5jcHAKQEAgLTI3NSw3ICsyNzUsMTkgQEAgY2xhc3MgQ29uc3Rh
bnRGb2xkaW5nUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKKworICAg
ICAgICAgICAgY2FzZSBDaGVja0FycmF5T3JFbXB0eTogeworICAgICAgICAgICAgICAgIGNvbnN0
IEFic3RyYWN0VmFsdWUmIHZhbHVlID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgICAgICAgICBpZiAoISh2YWx1ZS5tX3R5cGUgJiBTcGVjRW1wdHkpKSB7CisgICAg
ICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZlcnRDaGVja0FycmF5T3JFbXB0eVRvQ2hlY2tBcnJh
eSgpOworICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgLy8gRXZlbiBpZiB0aGUgaW5wdXQgaW5jbHVkZXMgU3BlY0Vt
cHR5LCB3ZSBjYW4gZmFsbCB0aHJvdWdoIHRvIENoZWNrQXJyYXkgYW5kIHJlbW92ZSB0aGUgbm9k
ZS4KKyAgICAgICAgICAgICAgICAvLyBDaGVja0FycmF5T3JFbXB0eSBjYW4gYmUgcmVtb3ZlZCB3
aGVuIGFycmF5TW9kZSBtZWV0cyB0aGUgcmVxdWlyZW1lbnQuIEluIHRoYXQgY2FzZSwgQ2VsbFVz
ZSdzCisgICAgICAgICAgICAgICAgLy8gY2hlY2sganVzdCByZW1haW5zLCBhbmQgaXQgd29ya3Mg
YXMgQ2hlY2tBcnJheU9yRW1wdHkgd2l0aG91dCBBcnJheU1vZGUgY2hlY2tpbmcuCisgICAgICAg
ICAgICAgICAgRkFMTFRIUk9VR0g7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGNhc2Ug
Q2hlY2tBcnJheToKICAgICAgICAgICAgIGNhc2UgQXJyYXlpZnk6IHsKICAgICAgICAgICAgICAg
ICBpZiAoIW5vZGUtPmFycmF5TW9kZSgpLmFscmVhZHlDaGVja2VkKG1fZ3JhcGgsIG5vZGUsIG1f
c3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdEb2VzR0MuY3BwCmluZGV4IDZlZTcyNWEwYTM4NjIyMjE0Yzk5YmYxMjJiNWM5NGViMzY0ODRj
NTEuLjU1ZDNjOGZkNWRjZjhmYTJlZmJhMzdmOTZkYzkwOTlkNDk3MjUxODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTExNyw2ICsxMTcsNyBAQCBib29sIGRv
ZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6CiAg
ICAgY2FzZSBDaGVja1N1YkNsYXNzOgogICAgIGNhc2UgQ2hlY2tBcnJheToKKyAgICBjYXNlIENo
ZWNrQXJyYXlPckVtcHR5OgogICAgIGNhc2UgQ2hlY2tOZXV0ZXJlZDoKICAgICBjYXNlIEdldFNj
b3BlOgogICAgIGNhc2UgU2tpcFNjb3BlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Rml4dXBQaGFzZS5jcHAKaW5kZXggYzc5Y2Q3YzM4YmVlYjJjYjE0M2M1YzZiMGZjNjgwODlmN2Q1
N2M0MS4uN2ZmYTM4ZTY2ZDJlMDhkNzQ1OTg5YmQ2MTI5ZGJlYWEwZmEwZDA3YiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xOTQ1LDYgKzE5NDUs
NyBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgY2FzZSBQdXRI
aW50OgogICAgICAgICBjYXNlIENoZWNrU3RydWN0dXJlSW1tZWRpYXRlOgogICAgICAgICBjYXNl
IENoZWNrU3RydWN0dXJlT3JFbXB0eToKKyAgICAgICAgY2FzZSBDaGVja0FycmF5T3JFbXB0eToK
ICAgICAgICAgY2FzZSBNYXRlcmlhbGl6ZU5ld09iamVjdDoKICAgICAgICAgY2FzZSBNYXRlcmlh
bGl6ZUNyZWF0ZUFjdGl2YXRpb246CiAgICAgICAgIGNhc2UgTWF0ZXJpYWxpemVOZXdJbnRlcm5h
bEZpZWxkT2JqZWN0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRleCAzNDRhMmFi
NTliMmNhMTFjNmIyNzk1ZWQ1MzY5ZWM5NWM3ZjBlMmZhLi4xMzQ1NWI1YzI5ZjA3MGZlZjJmOTkx
OTUyYmNmZjAwN2ZlYTkxNzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAt
NDc5LDYgKzQ3OSwxMiBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIG1fb3AgPSBDaGVja1N0cnVj
dHVyZUltbWVkaWF0ZTsKICAgICAgICAgY2hpbGRyZW4uc2V0Q2hpbGQxKEVkZ2Uoc3RydWN0dXJl
LCBDZWxsVXNlKSk7CiAgICAgfQorCisgICAgdm9pZCBjb252ZXJ0Q2hlY2tBcnJheU9yRW1wdHlU
b0NoZWNrQXJyYXkoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG9wKCkgPT0gQ2hlY2tBcnJheU9y
RW1wdHkpOworICAgICAgICBzZXRPcEFuZERlZmF1bHRGbGFncyhDaGVja0FycmF5KTsKKyAgICB9
CiAgICAgCiAgICAgdm9pZCByZXBsYWNlV2l0aChHcmFwaCYsIE5vZGUqIG90aGVyKTsKICAgICB2
b2lkIHJlcGxhY2VXaXRoV2l0aG91dENoZWNrcyhOb2RlKiBvdGhlcik7CkBAIC0yMTQ1LDYgKzIx
NTEsNyBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIGNhc2UgU3RyaW5nQ2hhckNvZGVBdDoKICAg
ICAgICAgY2FzZSBTdHJpbmdDb2RlUG9pbnRBdDoKICAgICAgICAgY2FzZSBDaGVja0FycmF5Ogor
ICAgICAgICBjYXNlIENoZWNrQXJyYXlPckVtcHR5OgogICAgICAgICBjYXNlIEFycmF5aWZ5Ogog
ICAgICAgICBjYXNlIEFycmF5aWZ5VG9TdHJ1Y3R1cmU6CiAgICAgICAgIGNhc2UgQXJyYXlQdXNo
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDU0N2ZlNGQ5NTUz
OTQyMTdkNmExZDdiYzg2ZjE2OGIyMGM2ZDU1NmYuLmUyMTFlYTc3ZDg1NDE5OWJiODQ2M2ZhZWMz
N2JmNWM0MWM1Zjk3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgK
QEAgLTIzOCw2ICsyMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAg
bWFjcm8oR2V0QnV0dGVyZmx5LCBOb2RlUmVzdWx0U3RvcmFnZSkgXAogICAgIG1hY3JvKE51a2VT
dHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHksIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhD
aGVja0FycmF5LCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oQ2hlY2tBcnJheU9yRW1w
dHksIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICAvKiBUaGlzIGNoZWNrcyBpZiB0aGUgZWRnZSBp
cyBhIHR5cGVkIGFycmF5IGFuZCBpZiBpdCBpcyBuZXV0ZXJlZC4gKi8gXAogICAgIG1hY3JvKENo
ZWNrTmV1dGVyZWQsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhBcnJheWlmeSwgTm9k
ZU11c3RHZW5lcmF0ZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCA5YjhkNjBkMjc1Mzkz
NGY1MDRmNzY0MjQwYWIxNGVhNzNiNGYwMGM4Li4yODg4NThiMzhjMTZhNjVhOGM4ZWJkYjlkNDM3
MDEyODM0NzJhNTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1By
ZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtMTI5Miw2ICsxMjkyLDcg
QEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAg
ICAgICBjYXNlIFB1dEhpbnQ6CiAgICAgICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmVJbW1lZGlhdGU6
CiAgICAgICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmVPckVtcHR5OgorICAgICAgICBjYXNlIENoZWNr
QXJyYXlPckVtcHR5OgogICAgICAgICBjYXNlIE1hdGVyaWFsaXplTmV3T2JqZWN0OgogICAgICAg
ICBjYXNlIE1hdGVyaWFsaXplQ3JlYXRlQWN0aXZhdGlvbjoKICAgICAgICAgY2FzZSBNYXRlcmlh
bGl6ZU5ld0ludGVybmFsRmllbGRPYmplY3Q6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IGVjZGQ5OTNjM2Q0ZmU5NTdkMWYwZjg4YTgwNDczZmFj
MzQxNTYzZDAuLmM0YzJhMmJjOWY5M2IwZTdiMDg2OGM5YWMwOWFhMWExYjBlOWYwYWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC0xNjEsNiAr
MTYxLDcgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3Jh
cGgmIGdyYXBoLCBOb2RlKiBub2RlLCBib29sIGlnbm8KICAgICAgICAgc3dpdGNoIChub2RlLT5v
cCgpKSB7CiAgICAgICAgIGNhc2UgQ2hlY2tOb3RFbXB0eToKICAgICAgICAgY2FzZSBDaGVja1N0
cnVjdHVyZU9yRW1wdHk6CisgICAgICAgIGNhc2UgQ2hlY2tBcnJheU9yRW1wdHk6CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTI3OCw2ICsyNzksNyBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUm
IHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGJvb2wgaWdubwogICAgIGNhc2UgQ2Fs
bERPTToKICAgICBjYXNlIENoZWNrU3ViQ2xhc3M6CiAgICAgY2FzZSBDaGVja0FycmF5OgorICAg
IGNhc2UgQ2hlY2tBcnJheU9yRW1wdHk6CiAgICAgY2FzZSBDaGVja05ldXRlcmVkOgogICAgIGNh
c2UgQXJyYXlpZnk6CiAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCAxM2YyOGNlODI2
NTY2NDE5YWVjOTk5ZTIyNzYyMTViNWQ0MzZmNjI3Li45MmE3ZjUyMjJhNTQ0ZWM0YjgyZDFhOTQz
YzAwYWZmMmVhMzJkZTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcApAQCAtODI5LDEwICs4MjksMzcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y2hlY2tBcnJheShOb2RlKiBub2RlKQogICAgIEdQUlJlZyBiYXNlUmVnID0gYmFzZS5ncHIo
KTsKICAgICAKICAgICBpZiAobm9kZS0+YXJyYXlNb2RlKCkuYWxyZWFkeUNoZWNrZWQobV9qaXQu
Z3JhcGgoKSwgbm9kZSwgbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKSkpIHsKKyAgICAg
ICAgLy8gV2UgY2FuIHB1cmdlIEVtcHR5IGNoZWNrIGNvbXBsZXRlbHkgaW4gdGhpcyBjYXNlIG9m
IENoZWNrQXJyYXlPckVtcHR5IHNpbmNlIENlbGxVc2Ugb25seSBhY2NlcHRzIFNwZWNDZWxsIHwg
U3BlY0VtcHR5LgogICAgICAgICBub1Jlc3VsdChtX2N1cnJlbnROb2RlKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KLSAgICAKKworICAgIE9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gdGVtcDsKKyAg
ICBPcHRpb25hbDxHUFJSZWc+IHRlbXBHUFI7CisgICAgc3dpdGNoIChub2RlLT5hcnJheU1vZGUo
KS50eXBlKCkpIHsKKyAgICBjYXNlIEFycmF5OjpJbnQzMjoKKyAgICBjYXNlIEFycmF5OjpEb3Vi
bGU6CisgICAgY2FzZSBBcnJheTo6Q29udGlndW91czoKKyAgICBjYXNlIEFycmF5OjpVbmRlY2lk
ZWQ6CisgICAgY2FzZSBBcnJheTo6QXJyYXlTdG9yYWdlOgorICAgIGNhc2UgQXJyYXk6OlNsb3dQ
dXRBcnJheVN0b3JhZ2U6IHsKKyAgICAgICAgdGVtcC5lbXBsYWNlKHRoaXMpOworICAgICAgICB0
ZW1wR1BSID0gdGVtcC0+Z3ByKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0
OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgaXNFbXB0
eTsKKworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgaWYgKG5vZGUtPm9wKCkgPT0gQ2hlY2tBcnJh
eU9yRW1wdHkpIHsKKyAgICAgICAgaWYgKG1faW50ZXJwcmV0ZXIuZm9yTm9kZShub2RlLT5jaGls
ZDEoKSkubV90eXBlICYgU3BlY0VtcHR5KQorICAgICAgICAgICAgaXNFbXB0eSA9IG1faml0LmJy
YW5jaElmRW1wdHkoYmFzZVJlZyk7CisgICAgfQorI2VuZGlmCisKICAgICBzd2l0Y2ggKG5vZGUt
PmFycmF5TW9kZSgpLnR5cGUoKSkgewogICAgIGNhc2UgQXJyYXk6OkFueVR5cGVkQXJyYXk6CiAg
ICAgY2FzZSBBcnJheTo6U3RyaW5nOgpAQCAtODQ0LDMxICs4NzEsMjggQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y2hlY2tBcnJheShOb2RlKiBub2RlKQogICAgIGNhc2UgQXJyYXk6OlVuZGVjaWRl
ZDoKICAgICBjYXNlIEFycmF5OjpBcnJheVN0b3JhZ2U6CiAgICAgY2FzZSBBcnJheTo6U2xvd1B1
dEFycmF5U3RvcmFnZTogewotICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcCh0aGlzKTsKLSAgICAg
ICAgR1BSUmVnIHRlbXBHUFIgPSB0ZW1wLmdwcigpOwotICAgICAgICBtX2ppdC5sb2FkOChNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBKU0NlbGw6OmluZGV4aW5nVHlwZUFuZE1pc2NP
ZmZzZXQoKSksIHRlbXBHUFIpOworICAgICAgICBtX2ppdC5sb2FkOChNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhiYXNlUmVnLCBKU0NlbGw6OmluZGV4aW5nVHlwZUFuZE1pc2NPZmZzZXQoKSksIHRl
bXBHUFIudmFsdWUoKSk7CiAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCiAgICAgICAgICAgICBC
YWRJbmRleGluZ1R5cGUsIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGJhc2VSZWcpLCAwLAot
ICAgICAgICAgICAganVtcFNsb3dGb3JVbndhbnRlZEFycmF5TW9kZSh0ZW1wR1BSLCBub2RlLT5h
cnJheU1vZGUoKSkpOwotICAgICAgICAKLSAgICAgICAgbm9SZXN1bHQobV9jdXJyZW50Tm9kZSk7
Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGp1bXBTbG93Rm9yVW53YW50ZWRBcnJheU1v
ZGUodGVtcEdQUi52YWx1ZSgpLCBub2RlLT5hcnJheU1vZGUoKSkpOworICAgICAgICBicmVhazsK
ICAgICB9CiAgICAgY2FzZSBBcnJheTo6RGlyZWN0QXJndW1lbnRzOgogICAgICAgICBzcGVjdWxh
dGVDZWxsVHlwZVdpdGhvdXRUeXBlRmlsdGVyaW5nKG5vZGUtPmNoaWxkMSgpLCBiYXNlUmVnLCBE
aXJlY3RBcmd1bWVudHNUeXBlKTsKLSAgICAgICAgbm9SZXN1bHQobV9jdXJyZW50Tm9kZSk7Ci0g
ICAgICAgIHJldHVybjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBcnJheTo6U2NvcGVkQXJn
dW1lbnRzOgogICAgICAgICBzcGVjdWxhdGVDZWxsVHlwZVdpdGhvdXRUeXBlRmlsdGVyaW5nKG5v
ZGUtPmNoaWxkMSgpLCBiYXNlUmVnLCBTY29wZWRBcmd1bWVudHNUeXBlKTsKLSAgICAgICAgbm9S
ZXN1bHQobV9jdXJyZW50Tm9kZSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgYnJlYWs7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgc3BlY3VsYXRlQ2VsbFR5cGVXaXRob3V0VHlwZUZpbHRlcmlu
ZygKICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLCBiYXNlUmVnLAogICAgICAgICAgICAgdHlw
ZUZvclR5cGVkQXJyYXlUeXBlKG5vZGUtPmFycmF5TW9kZSgpLnR5cGVkQXJyYXlUeXBlKCkpKTsK
LSAgICAgICAgbm9SZXN1bHQobV9jdXJyZW50Tm9kZSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQorCisgICAgaWYgKGlzRW1wdHkuaXNTZXQoKSkKKyAgICAgICAgaXNF
bXB0eS5saW5rKCZtX2ppdCk7CisgICAgbm9SZXN1bHQobV9jdXJyZW50Tm9kZSk7CiB9CiAKIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmFycmF5aWZ5KE5vZGUqIG5vZGUsIEdQUlJlZyBiYXNlUmVnLCBH
UFJSZWcgcHJvcGVydHlSZWcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCBmYTA2NmJmZTEyZjliNjFkY2NlMGM3NWQ2
MDdiZTNkZWE1YjkxNWVmLi5lY2ZjOTAzOTBiNjg3NDg2MDhjZTFkMGMwZjA5MjViZTI3ODgzMzQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHAKQEAgLTQxODEsNiArNDE4MSwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja1N0cnVjdHVyZU9yRW1wdHk6CiAgICAg
ICAgIERGR19DUkFTSChtX2ppdC5ncmFwaCgpLCBub2RlLCAiQ2hlY2tTdHJ1Y3R1cmVPckVtcHR5
IG9ubHkgdXNlZCBpbiA2NC1iaXQgREZHIik7CiAgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBD
aGVja0FycmF5T3JFbXB0eToKKyAgICAgICAgREZHX0NSQVNIKG1faml0LmdyYXBoKCksIG5vZGUs
ICJDaGVja0FycmF5T3JFbXB0eSBvbmx5IHVzZWQgaW4gNjQtYml0IERGRyIpOworICAgICAgICBi
cmVhazsKICAgICAgICAgCiAgICAgY2FzZSBGaWx0ZXJDYWxsTGlua1N0YXR1czoKICAgICBjYXNl
IEZpbHRlckdldEJ5U3RhdHVzOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggODA0MzY5ZDk2NmFmYjI2ZTIyMDZlNWExMmEyNWVl
MmU5MjA1NDdkNi4uMzcyOGI4NTNmYWJhYjI4YmY0NDU0Yzk1MDU0ZmNmNTdjNDViZDU0YyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
CkBAIC0yMzc1LDcgKzIzNzUsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUq
IG5vZGUpCiAgICAgICAgIGNvbXBpbGVDaGVja05ldXRlcmVkKG5vZGUpOwogICAgICAgICBicmVh
azsKICAgICB9Ci0gICAgICAgIAorCisgICAgY2FzZSBDaGVja0FycmF5T3JFbXB0eToKICAgICBj
YXNlIENoZWNrQXJyYXk6IHsKICAgICAgICAgY2hlY2tBcnJheShub2RlKTsKICAgICAgICAgYnJl
YWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1R5cGVDaGVja0hv
aXN0aW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUeXBlQ2hlY2tI
b2lzdGluZ1BoYXNlLmNwcAppbmRleCBmNWI5ZWQyZjM1ODM1M2QyY2M4YTBlYWNmZTRiYTg2YTEx
YWM0N2I3Li43YzdhYmU4M2UyM2E1ZDg4YTMyMDgzYTUwZWRmMzRkMzZjZDYzNjliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1R5cGVDaGVja0hvaXN0aW5nUGhhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVHlwZUNoZWNrSG9pc3RpbmdQ
aGFzZS5jcHAKQEAgLTE0MywyNiArMTQzLDM1IEBAIGNsYXNzIFR5cGVDaGVja0hvaXN0aW5nUGhh
c2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgICAgICBOb2RlKiBnZXRMb2NhbCA9
IGluc2VydGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhJ
bkJsb2NrICsgMSwgdmFyaWFibGUtPnByZWRpY3Rpb24oKSwgR2V0TG9jYWwsIG9yaWdpbiwKICAg
ICAgICAgICAgICAgICAgICAgICAgIE9wSW5mbyh2YXJpYWJsZSksIEVkZ2Uobm9kZSkpOwotICAg
ICAgICAgICAgICAgICAgICBpZiAoaXRlci0+dmFsdWUubV9zdHJ1Y3R1cmUpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGF1dG8gY2hlY2tPcCA9IENoZWNrU3RydWN0dXJlOwotICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKFNwZWNDZWxsQ2hlY2sgJiBTcGVjRW1wdHkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgbG9jYWwgPSBub2RlLT52YXJpYWJs
ZUFjY2Vzc0RhdGEoKS0+b3BlcmFuZCgpLnZpcnR1YWxSZWdpc3RlcigpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGF1dG8qIGlubGluZUNhbGxGcmFtZSA9IG5vZGUtPm9yaWdpbi5zZW1h
bnRpYy5pbmxpbmVDYWxsRnJhbWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
KGxvY2FsIC0gKGlubGluZUNhbGxGcmFtZSA/IGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQg
OiAwKSkgPT0gdmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnRJbmNsdWRpbmdUaGlzKDApKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHx0aGlzfCBjYW4gYmUgdGhlIFREWiB2
YWx1ZS4gVGhlIGNhbGwgZW50cnlwb2ludCB3b24ndCBoYXZlIHx0aGlzfCBhcyBURFosCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCBhIGNhdGNoIG9yIGEgbG9vcCBPU1Ig
ZW50cnkgbWF5IGhhdmUgfHRoaXN8IGJlIFREWi4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2hlY2tPcCA9IENoZWNrU3RydWN0dXJlT3JFbXB0eTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgYXV0byBuZWVkc0VtcHR5Q2hlY2sg
PSBbXShOb2RlKiBub2RlKSAtPiBib29sIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgh
KFNwZWNDZWxsQ2hlY2sgJiBTcGVjRW1wdHkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFZpcnR1YWxSZWdpc3RlciBs
b2NhbCA9IG5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpLT5vcGVyYW5kKCkudmlydHVhbFJlZ2lz
dGVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvKiBpbmxpbmVDYWxsRnJhbWUgPSBu
b2RlLT5vcmlnaW4uc2VtYW50aWMuaW5saW5lQ2FsbEZyYW1lKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoKGxvY2FsIC0gKGlubGluZUNhbGxGcmFtZSA/IGlubGluZUNhbGxGcmFtZS0+
c3RhY2tPZmZzZXQgOiAwKSkgPT0gdmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnRJbmNsdWRpbmdU
aGlzKDApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gfHRoaXN8IGNhbiBiZSB0
aGUgVERaIHZhbHVlLiBUaGUgY2FsbCBlbnRyeXBvaW50IHdvbid0IGhhdmUgfHRoaXN8IGFzIFRE
WiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgYSBjYXRjaCBvciBhIGxvb3Ag
T1NSIGVudHJ5IG1heSBoYXZlIHx0aGlzfCBiZSBURFouCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH07CiAKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGl0ZXItPnZhbHVlLm1fc3RydWN0dXJlKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIGNoZWNrT3AgPSBDaGVja1N0cnVjdHVyZTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChuZWVkc0VtcHR5Q2hlY2sobm9kZSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2hlY2tPcCA9IENoZWNrU3RydWN0dXJlT3JFbXB0eTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluZGV4SW5CbG9jayArIDEsIFNwZWNOb25lLCBjaGVja09wLCBvcmlnaW4s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3BJbmZvKG1fZ3JhcGguYWRkU3RydWN0dXJl
U2V0KGl0ZXItPnZhbHVlLm1fc3RydWN0dXJlKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRWRnZShnZXRMb2NhbCwgQ2VsbFVzZSkpOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKGl0ZXItPnZhbHVlLm1fYXJyYXlNb2RlSXNWYWxpZCkgewogICAgICAgICAgICAgICAgICAg
ICAgICAgQVNTRVJUKGl0ZXItPnZhbHVlLm1fYXJyYXlNb2RlSG9pc3RpbmdPa2F5KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGF1dG8gY2hlY2tPcCA9IENoZWNrQXJyYXk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAobmVlZHNFbXB0eUNoZWNrKG5vZGUpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNoZWNrT3AgPSBDaGVja0FycmF5T3JFbXB0eTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluZGV4SW5CbG9jayArIDEsIFNwZWNOb25lLCBDaGVja0FycmF5LCBvcmlnaW4sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhJbkJsb2NrICsgMSwgU3BlY05vbmUsIGNo
ZWNrT3AsIG9yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcEluZm8oaXRlci0+
dmFsdWUubV9hcnJheU1vZGUuYXNXb3JkKCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEVkZ2UoZ2V0TG9jYWwsIENlbGxVc2UpKTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlCkBA
IC0xODgsMTIgKzE5NywxMiBAQCBjbGFzcyBUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlIDogcHVibGlj
IFBoYXNlIHsKICAgICAgICAgICAgICAgICAgICAgTm9kZU9yaWdpbiBvcmlnaW4gPSBub2RlLT5v
cmlnaW47CiAgICAgICAgICAgICAgICAgICAgIEVkZ2UgY2hpbGQxID0gbm9kZS0+Y2hpbGQxKCk7
CiAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiBPbiA2
NC1iaXQgcGxhdGZvcm1zLCBjZWxsIGNoZWNrcyBhbGxvdyB0aGUgZW1wdHkgdmFsdWUgdG8gZmxv
dyB0aHJvdWdoLgorICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIG1lYW5zIHRoYXQgdGhpcyBz
dHJ1Y3R1cmUvYXJyYXkgY2hlY2sgbWF5IHNlZSB0aGUgZW1wdHkgdmFsdWUgYXMgaW5wdXQuIFdl
IG5lZWQKKyAgICAgICAgICAgICAgICAgICAgLy8gdG8gZW1pdCBhIG5vZGUgdGhhdCBleHBsaWNp
dGx5IGhhbmRsZXMgdGhlIGVtcHR5IHZhbHVlLiBNb3N0IG9mIHRoZSB0aW1lLCBDaGVja1N0cnVj
dHVyZU9yRW1wdHkvQ2hlY2tBcnJheU9yRW1wdHkKKyAgICAgICAgICAgICAgICAgICAgLy8gd2ls
bCBiZSBmb2xkZWQgdG8gQ2hlY2tTdHJ1Y3R1cmUvQ2hlY2tBcnJheSBiZWNhdXNlIEFJIHByb3Zl
cyB0aGF0IHRoZSBpbmNvbWluZyB2YWx1ZSBpcworICAgICAgICAgICAgICAgICAgICAvLyBkZWZp
bml0ZWx5IG5vdCBlbXB0eS4KICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZXItPnZhbHVlLm1f
c3RydWN0dXJlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiBPbiA2NC1iaXQg
cGxhdGZvcm1zLCBjZWxsIGNoZWNrcyBhbGxvdyB0aGUgZW1wdHkgdmFsdWUgdG8gZmxvdyB0aHJv
dWdoLgotICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBtZWFucyB0aGF0IHRoaXMgc3Ry
dWN0dXJlIGNoZWNrIG1heSBzZWUgdGhlIGVtcHR5IHZhbHVlIGFzIGlucHV0LiBXZSBuZWVkCi0g
ICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBlbWl0IGEgbm9kZSB0aGF0IGV4cGxpY2l0bHkg
aGFuZGxlcyB0aGUgZW1wdHkgdmFsdWUuIE1vc3Qgb2YgdGhlIHRpbWUsIENoZWNrU3RydWN0dXJl
T3JFbXB0eQotICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lsbCBiZSBmb2xkZWQgdG8gQ2hl
Y2tTdHJ1Y3R1cmUgYmVjYXVzZSBBSSBwcm92ZXMgdGhhdCB0aGUgaW5jb21pbmcgdmFsdWUgaXMK
LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlZmluaXRlbHkgbm90IGVtcHR5LgogICAgICAg
ICAgICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5kZXhGb3JDaGVja3MsIFNwZWNOb25lLCAoU3BlY0NlbGxDaGVjayAm
IFNwZWNFbXB0eSkgPyBDaGVja1N0cnVjdHVyZU9yRW1wdHkgOiBDaGVja1N0cnVjdHVyZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5Gb3JDaGVja3Mud2l0aFNlbWFudGljKG9y
aWdpbi5zZW1hbnRpYyksCkBAIC0yMDIsNyArMjExLDcgQEAgY2xhc3MgVHlwZUNoZWNrSG9pc3Rp
bmdQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAo
aXRlci0+dmFsdWUubV9hcnJheU1vZGVJc1ZhbGlkKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBBU1NFUlQoaXRlci0+dmFsdWUubV9hcnJheU1vZGVIb2lzdGluZ09rYXkpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW5kZXhGb3JDaGVja3MsIFNwZWNOb25lLCBDaGVja0FycmF5LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluZGV4Rm9yQ2hlY2tzLCBTcGVjTm9uZSwgKFNwZWNDZWxs
Q2hlY2sgJiBTcGVjRW1wdHkpID8gQ2hlY2tBcnJheU9yRW1wdHkgOiBDaGVja0FycmF5LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbkZvckNoZWNrcy53aXRoU2VtYW50aWMob3Jp
Z2luLnNlbWFudGljKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcEluZm8oaXRlci0+
dmFsdWUubV9hcnJheU1vZGUuYXNXb3JkKCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEVkZ2UoY2hpbGQxLm5vZGUoKSwgQ2VsbFVzZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdWYWxpZGF0ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1ZhbGlkYXRlLmNwcAppbmRleCBlOTQxODg3MTExYTM4MDI0YjMxOWQzYTdkMTM4MWI0YjQy
ODVlMzI1Li4zYTc3NzExNDVjNzYwYjM0ODJlN2UxYWM5YjY0OTkwMWRmZjE5ZDVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRlLmNwcApAQCAtMjg2LDYgKzI4NiwxMSBA
QCBjbGFzcyBWYWxpZGF0ZSB7CiAgICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKChub2RlKSwg
ISFub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKChub2RlKSwg
ISFub2RlLT5jZWxsT3BlcmFuZCgpLT52YWx1ZSgpICYmIG5vZGUtPmNlbGxPcGVyYW5kKCktPnZh
bHVlKCkuaXNDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICBjYXNlIENoZWNrQXJyYXlPckVtcHR5OgorICAgICAgICAgICAgICAgICAgICBWQUxJREFU
RSgobm9kZSksIGlzNjRCaXQoKSk7CisgICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKChub2Rl
KSwgISFub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKChub2Rl
KSwgbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IENlbGxVc2UpOworICAgICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIENoZWNrU3RydWN0dXJlT3JFbXB0eToK
ICAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUoKG5vZGUpLCBpczY0Qml0KCkpOwogICAgICAg
ICAgICAgICAgICAgICBWQUxJREFURSgobm9kZSksICEhbm9kZS0+Y2hpbGQxKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCmluZGV4IGViYTE5N2Yz
OTBkMTgzNjFjNDA1MDNlOTIxNjgzNmE3MzJhMDNhN2EuLjVjNjlkMWQzOGMxYzYxMDU5OWZkMzAy
OTk3MzQzNjBjYjIyN2FjYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENh
cGFiaWxpdGllcy5jcHAKQEAgLTIwMyw2ICsyMDMsNyBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVs
IGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIENoZWNrOgogICAgIGNhc2UgQ2hlY2tW
YXJhcmdzOgogICAgIGNhc2UgQ2hlY2tBcnJheToKKyAgICBjYXNlIENoZWNrQXJyYXlPckVtcHR5
OgogICAgIGNhc2UgQ2hlY2tOZXV0ZXJlZDoKICAgICBjYXNlIENvdW50RXhlY3V0aW9uOgogICAg
IGNhc2UgU3VwZXJTYW1wbGVyQmVnaW46CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHAKaW5kZXggMGM1ODU3Mjk5NTNmZThkNTZhMGE1MDJkOWQyYzY0N2Ux
NzRiOTdkYy4uMmM0YjRmOWE3NzM2MzQ4MGNiMTYxYTM4MzgwNjI0ZjU0YTcwMTIzZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtOTY3LDYg
Kzk2Nyw5IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIGNhc2UgQ2hlY2tBcnJheToK
ICAgICAgICAgICAgIGNvbXBpbGVDaGVja0FycmF5KCk7CiAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBDaGVja0FycmF5T3JFbXB0eToKKyAgICAgICAgICAgIGNvbXBpbGVDaGVja0Fy
cmF5T3JFbXB0eSgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ2hlY2tOZXV0
ZXJlZDoKICAgICAgICAgICAgIGNvbXBpbGVDaGVja05ldXRlcmVkKCk7CiAgICAgICAgICAgICBi
cmVhazsKQEAgLTQwNjcsNiArNDA3MCwzNiBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAg
ICAgICAgbV9vdXQubG9naWNhbE5vdChpc0FycmF5VHlwZUZvckNoZWNrQXJyYXkoY2VsbCwgbV9u
b2RlLT5hcnJheU1vZGUoKSkpKTsKICAgICB9CiAKKyAgICB2b2lkIGNvbXBpbGVDaGVja0FycmF5
T3JFbXB0eSgpCisgICAgeworICAgICAgICBFZGdlIGVkZ2UgPSBtX25vZGUtPmNoaWxkMSgpOwor
ICAgICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwoZWRnZSk7CisKKyAgICAgICAgaWYgKG1fbm9k
ZS0+YXJyYXlNb2RlKCkuYWxyZWFkeUNoZWNrZWQobV9ncmFwaCwgbV9ub2RlLCBhYnN0cmFjdFZh
bHVlKGVkZ2UpKSkgeworICAgICAgICAgICAgLy8gV2UgY2FuIHB1cmdlIEVtcHR5IGNoZWNrIG9m
IENoZWNrQXJyYXlPckVtcHR5IGNvbXBsZXRlbHkgaW4gdGhpcyBjYXNlIHNpbmNlIENlbGxVc2Ug
b25seSBhY2NlcHRzIFNwZWNDZWxsIHwgU3BlY0VtcHR5LgorICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgYm9vbCBtYXlTZWVFbXB0eVZhbHVlID0gbV9pbnRlcnByZXRl
ci5mb3JOb2RlKG1fbm9kZS0+Y2hpbGQxKCkpLm1fdHlwZSAmIFNwZWNFbXB0eTsKKyAgICAgICAg
TEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgTEJhc2ljQmxvY2sg
bGFzdE5leHQgPSBudWxscHRyOworICAgICAgICBpZiAobWF5U2VlRW1wdHlWYWx1ZSkgeworICAg
ICAgICAgICAgTEJhc2ljQmxvY2sgbm90RW1wdHkgPSBtX291dC5uZXdCbG9jaygpOworICAgICAg
ICAgICAgY29udGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKKyAgICAgICAgICAgIG1fb3V0
LmJyYW5jaChtX291dC5pc1plcm82NChjZWxsKSwgdW5zdXJlKGNvbnRpbnVhdGlvbiksIHVuc3Vy
ZShub3RFbXB0eSkpOworICAgICAgICAgICAgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3RF
bXB0eSwgY29udGludWF0aW9uKTsKKyAgICAgICAgfQorCisgICAgICAgIHNwZWN1bGF0ZSgKKyAg
ICAgICAgICAgIEJhZEluZGV4aW5nVHlwZSwganNWYWx1ZVZhbHVlKGNlbGwpLCAwLAorICAgICAg
ICAgICAgbV9vdXQubG9naWNhbE5vdChpc0FycmF5VHlwZUZvckNoZWNrQXJyYXkoY2VsbCwgbV9u
b2RlLT5hcnJheU1vZGUoKSkpKTsKKworICAgICAgICBpZiAobWF5U2VlRW1wdHlWYWx1ZSkgewor
ICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAgICAgbV9vdXQu
YXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgIH0KKyAgICB9CisKICAg
ICB2b2lkIGNvbXBpbGVDaGVja05ldXRlcmVkKCkKICAgICB7CiAgICAgICAgIEVkZ2UgZWRnZSA9
IG1fbm9kZS0+Y2hpbGQxKCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGRjY2YzNmM0YTQ2ZTY1NGY0OGZmN2UxNzM3YTY2Njc2ODE0ODZh
YTUuLjQwMDRjY2IzODlhOGM4YTRhOWMyODIzNzhlZjBkYTBjMTg2MGMwMWEgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMjAtMDEtMjEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAg
ICAgICBbSlNDXSBBZGQgQ2hlY2tBcnJheU9yRW1wdHkgdG8gaGFuZGxlIHRoZSBjYXNlIHdoZW4g
aG9pc3RpbmcgQ2hlY2tBcnJheSBmb3IgcGxhY2VzIHdoZXJlIGlucHV0IGNhbiBiZSBlbXB0eQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NTcxCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODc1NzAxNj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9jaGVjay1hcnJheS1vci1lbXB0eS5q
czogQWRkZWQuCisgICAgICAgIChDKToKKwogMjAyMC0wMS0yMSAgVGFkZXUgWmFnYWxsbyAgPHR6
YWdhbGxvQGFwcGxlLmNvbT4KIAogICAgICAgICBPYmplY3QgYWxsb2NhdGlvbiBzaW5raW5nIGlz
IG1pc3NpbmcgUHV0SGludCBmb3IgYWxsb2NhdGlvbnMgdW5yZWFjaGFibGUgaW4gdGhlIGdyYXBo
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9jaGVjay1hcnJheS1vci1lbXB0eS5qcyBiL0pT
VGVzdHMvc3RyZXNzL2NoZWNrLWFycmF5LW9yLWVtcHR5LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlMGJmMDhi
OTEzOTc2YzFmMjUzYTAwYjM2ZmQ4MjQ5ZDRkMTE1MzgKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rl
c3RzL3N0cmVzcy9jaGVjay1hcnJheS1vci1lbXB0eS5qcwpAQCAtMCwwICsxLDI0IEBACisvL0Ag
cnVuRGVmYXVsdCgiLS11c2VHZW5lcmF0aW9uYWxHQz0wIiwgIi0tdXNlQ29uY3VycmVudEdDPTAi
LCAiLS1jb2xsZWN0Q29udGludW91c2x5PTEiLCAiLS11c2VDb25jdXJyZW50SklUPTAiKQorY2xh
c3MgQyBleHRlbmRzIE9iamVjdCB7CisgICAgY29uc3RydWN0b3IoYmVmb3JlU3VwZXIpIHsKKyAg
ICAgICAgbGV0IGYgPSAoKSA9PiB7CisgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IDEw
MDsgaisrKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgdGhp
c1swXSA9IHt9OworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIGlmIChiZWZvcmVTdXBlcikg
eworICAgICAgICAgICAgZigpOworICAgICAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIHN1cGVyKCk7CisgICAgICAgICAgICBmKCk7CisgICAgICAgIH0KKyAg
ICB9Cit9Citmb3IgKGxldCBpID0gMDsgaSA8IDEwMDsgaSsrKSB7CisgICAgbmV3IEMoZmFsc2Up
OworICAgIG5ldyBDKHRydWUpOworfQo=
</data>
<flag name="review"
          id="404132"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>