<?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>73178</bug_id>
          
          <creation_ts>2011-11-27 18:05:14 -0800</creation_ts>
          <short_desc>Either remove the GetMethod node from the DFG backend, or find a use for it</short_desc>
          <delta_ts>2011-11-28 14:49:09 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>73175</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>509521</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-27 18:05:14 -0800</bug_when>
    <thetext>The GetMethod node is no longer emitted by the DFG&apos;s byte code parser.  It may be that this node could still be useful for situations where we&apos;re not confident enough in the structure of the base of a GetById to issue CheckStructure nodes, but we&apos;ve got enough confidence in its monomorphism that we don&apos;t want to drop all the way down to a GetById.

But most likely, if we don&apos;t find a use for GetMethod in the near term, we should just remove the supporting code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510109</commentid>
    <comment_count>1</comment_count>
      <attachid>116805</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-28 13:19:46 -0800</bug_when>
    <thetext>Created attachment 116805
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510115</commentid>
    <comment_count>2</comment_count>
      <attachid>116805</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-28 13:26:18 -0800</bug_when>
    <thetext>Comment on attachment 116805
the patch

r=gavin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510203</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-28 14:48:54 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/101283</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510204</commentid>
    <comment_count>4</comment_count>
      <attachid>116805</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-28 14:49:09 -0800</bug_when>
    <thetext>Comment on attachment 116805
the patch

Clearing flags.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116805</attachid>
            <date>2011-11-28 13:19:46 -0800</date>
            <delta_ts>2011-11-28 14:49:09 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>removegetmethod_patch_1.diff</filename>
            <type>text/plain</type>
            <size>25317</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTAxMjc1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDExLTExLTI4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RWl0aGVyIHJlbW92ZSB0aGUgR2V0TWV0aG9kIG5vZGUgZnJvbSB0aGUgREZHIGJhY2tlbmQsIG9y
IGZpbmQgYSB1c2UgZm9yIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MzE3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
ICAgICAgICAKKyAgICAgICAgTW9yZSB0ZXN0aW5nIHNlZW1lZCB0byBpbXBseSB0aGF0IHRoZSBH
ZXRNZXRob2QgY29kZSB3YXMgaW5kZWVkIG5vdCBwcm9maXRhYmxlCisgICAgICAgIGluIGFueSBt
YWpvciB0ZXN0LiBTbywgaXQncyBwcm9iYWJseSBiZXN0IHRvIGp1c3QgcmVtb3ZlIGl0LgorCisg
ICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6TWV0aG9kQ2Fs
bExpbmtJbmZvOjpyZXNldCk6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0U3RhdGU6OmV4ZWN1dGUpOgorICAgICAgICAqIGRm
Zy9ERkdKSVRDb21waWxlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6Omxp
bmspOgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5oOgorICAgICAgICAqIGRmZy9ERkdO
b2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzSWRlbnRpZmllcik6CisgICAgICAg
IChKU0M6OkRGRzo6Tm9kZTo6aGFzSGVhcFByZWRpY3Rpb24pOgorICAgICAgICAqIGRmZy9ERkdP
cGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgorICAgICAgICAq
IGRmZy9ERkdQcm9wYWdhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQcm9wYWdhdG9yOjpw
cm9wYWdhdGVOb2RlUHJlZGljdGlvbnMpOgorICAgICAgICAqIGRmZy9ERkdSZXBhdGNoLmNwcDoK
KyAgICAgICAgKiBkZmcvREZHUmVwYXRjaC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZCk6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2Fj
aGVkR2V0QnlJZCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUp
OgorCiAyMDExLTExLTI4ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkIHByb3NwZWN0aXZlIGJ1aWxkIGZpeC4gVG91Y2ggdGhl
IGZpbGUgdG8gdHJpZ2dlciBjb3JyZWN0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTAxMjAxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNDMs
MTYgKzIwNDMsOSBAQCB2b2lkIE1ldGhvZENhbGxMaW5rSW5mbzo6cmVzZXQoUmVwYXRjaEJ1CiAg
ICAgY2FjaGVkUHJvdG90eXBlU3RydWN0dXJlLmNsZWFyVG9NYXhVbnNpZ25lZCgpOwogICAgIGNh
Y2hlZEZ1bmN0aW9uLmNsZWFyKCk7CiAgICAgCi0gICAgaWYgKGppdFR5cGUgPT0gSklUQ29kZTo6
REZHSklUKSB7Ci0jaWYgRU5BQkxFKERGR19KSVQpCi0gICAgICAgIHJlcGF0Y2hCdWZmZXIucmVs
aW5rKGNhbGxSZXR1cm5Mb2NhdGlvbiwgb3BlcmF0aW9uR2V0TWV0aG9kT3B0aW1pemUpOwotI2Vs
c2UKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0jZW5kaWYKLSAgICB9IGVsc2Ugewot
ICAgICAgICBBU1NFUlQoaml0VHlwZSA9PSBKSVRDb2RlOjpCYXNlbGluZUpJVCk7Ci0gICAgICAg
IHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxSZXR1cm5Mb2NhdGlvbiwgY3RpX29wX2dldF9ieV9p
ZF9tZXRob2RfY2hlY2spOwotICAgIH0KKyAgICBBU1NFUlRfVU5VU0VEKGppdFR5cGUsIGppdFR5
cGUgPT0gSklUQ29kZTo6QmFzZWxpbmVKSVQpOworICAgIAorICAgIHJlcGF0Y2hCdWZmZXIucmVs
aW5rKGNhbGxSZXR1cm5Mb2NhdGlvbiwgY3RpX29wX2dldF9ieV9pZF9tZXRob2RfY2hlY2spOwog
fQogCiB2b2lkIENvZGVCbG9jazo6dW5saW5rQ2FsbHMoKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwCShyZXZpc2lvbiAxMDEyMDEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01NTksNyArNTU5LDYgQEAgYm9vbCBBYnN0cmFjdFN0YXRlOjpleGVjdXRlKE5v
ZGVJbmRleCBubwogICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgIGNhc2UgR2V0QnlJ
ZDoKLSAgICBjYXNlIEdldE1ldGhvZDoKICAgICAgICAgaWYgKCFub2RlLnByZWRpY3Rpb24oKSkg
ewogICAgICAgICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCShyZXZp
c2lvbiAxMDEyMDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg3LDE2ICsxODcsNiBAQCB2b2lkIEpJVENvbXBpbGVy
OjpsaW5rKExpbmtCdWZmZXImIGxpbmtCCiAgICAgICAgIGluZm8uaG90UGF0aE90aGVyID0gbGlu
a0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwobV9qc0NhbGxzW2ldLm1fZmFzdENhbGwpOwogICAg
IH0KICAgICAKLSAgICBtX2NvZGVCbG9jay0+YWRkTWV0aG9kQ2FsbExpbmtJbmZvcyhtX21ldGhv
ZEdldHMuc2l6ZSgpKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9tZXRob2RHZXRz
LnNpemUoKTsgKytpKSB7Ci0gICAgICAgIE1ldGhvZENhbGxMaW5rSW5mbyYgaW5mbyA9IG1fY29k
ZUJsb2NrLT5tZXRob2RDYWxsTGlua0luZm8oaSk7Ci0gICAgICAgIGluZm8uY2FjaGVkU3RydWN0
dXJlLnNldExvY2F0aW9uKGxpbmtCdWZmZXIubG9jYXRpb25PZihtX21ldGhvZEdldHNbaV0ubV9z
dHJ1Y3RUb0NvbXBhcmUpKTsKLSAgICAgICAgaW5mby5jYWNoZWRQcm90b3R5cGVTdHJ1Y3R1cmUu
c2V0TG9jYXRpb24obGlua0J1ZmZlci5sb2NhdGlvbk9mKG1fbWV0aG9kR2V0c1tpXS5tX3Byb3Rv
U3RydWN0VG9Db21wYXJlKSk7Ci0gICAgICAgIGluZm8uY2FjaGVkRnVuY3Rpb24uc2V0TG9jYXRp
b24obGlua0J1ZmZlci5sb2NhdGlvbk9mKG1fbWV0aG9kR2V0c1tpXS5tX3B1dEZ1bmN0aW9uKSk7
Ci0gICAgICAgIGluZm8uY2FjaGVkUHJvdG90eXBlLnNldExvY2F0aW9uKGxpbmtCdWZmZXIubG9j
YXRpb25PZihtX21ldGhvZEdldHNbaV0ubV9wcm90b09iaikpOwotICAgICAgICBpbmZvLmNhbGxS
ZXR1cm5Mb2NhdGlvbiA9IGxpbmtCdWZmZXIubG9jYXRpb25PZihtX21ldGhvZEdldHNbaV0ubV9z
bG93Q2FsbCk7Ci0gICAgfQotICAgIAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0
VGh1bmsgPSBnbG9iYWxEYXRhKCktPmdldENUSVN0dWIob3NyRXhpdEdlbmVyYXRpb25UaHVua0dl
bmVyYXRvcik7CiAgICAgQ29kZUxvY2F0aW9uTGFiZWwgdGFyZ2V0ID0gQ29kZUxvY2F0aW9uTGFi
ZWwob3NyRXhpdFRodW5rLmNvZGUoKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNv
ZGVCbG9jaygpLT5udW1iZXJPZk9TUkV4aXRzKCk7ICsraSkgewpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAkocmV2aXNpb24gMTAxMjAxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yMjgsMTEgKzIyOCw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9wcm9wZXJ0eUFjY2Vzc2VzLmFw
cGVuZChyZWNvcmQpOwogICAgIH0KIAotICAgIHZvaWQgYWRkTWV0aG9kR2V0KENhbGwgc2xvd0Nh
bGwsIERhdGFMYWJlbFB0ciBzdHJ1Y3RUb0NvbXBhcmUsIERhdGFMYWJlbFB0ciBwcm90b09iaiwg
RGF0YUxhYmVsUHRyIHByb3RvU3RydWN0VG9Db21wYXJlLCBEYXRhTGFiZWxQdHIgcHV0RnVuY3Rp
b24pCi0gICAgewotICAgICAgICBtX21ldGhvZEdldHMuYXBwZW5kKE1ldGhvZEdldFJlY29yZChz
bG93Q2FsbCwgc3RydWN0VG9Db21wYXJlLCBwcm90b09iaiwgcHJvdG9TdHJ1Y3RUb0NvbXBhcmUs
IHB1dEZ1bmN0aW9uKSk7Ci0gICAgfQotICAgIAogICAgIHZvaWQgYWRkSlNDYWxsKENhbGwgZmFz
dENhbGwsIENhbGwgc2xvd0NhbGwsIERhdGFMYWJlbFB0ciB0YXJnZXRUb0NoZWNrLCBDYWxsTGlu
a0luZm86OkNhbGxUeXBlIGNhbGxUeXBlLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiAgICAgewog
ICAgICAgICBtX2pzQ2FsbHMuYXBwZW5kKEpTQ2FsbFJlY29yZChmYXN0Q2FsbCwgc2xvd0NhbGws
IHRhcmdldFRvQ2hlY2ssIGNhbGxUeXBlLCBjb2RlT3JpZ2luKSk7CkBAIC0zMDYsMjMgKzMwMSw2
IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPENhbGxMaW5rUmVjb3JkPiBtX2NhbGxzOwogICAgIFZl
Y3RvcjxDYWxsRXhjZXB0aW9uUmVjb3JkPiBtX2V4Y2VwdGlvbkNoZWNrczsKICAgICAKLSAgICBz
dHJ1Y3QgTWV0aG9kR2V0UmVjb3JkIHsKLSAgICAgICAgTWV0aG9kR2V0UmVjb3JkKENhbGwgc2xv
d0NhbGwsIERhdGFMYWJlbFB0ciBzdHJ1Y3RUb0NvbXBhcmUsIERhdGFMYWJlbFB0ciBwcm90b09i
aiwgRGF0YUxhYmVsUHRyIHByb3RvU3RydWN0VG9Db21wYXJlLCBEYXRhTGFiZWxQdHIgcHV0RnVu
Y3Rpb24pCi0gICAgICAgICAgICA6IG1fc2xvd0NhbGwoc2xvd0NhbGwpCi0gICAgICAgICAgICAs
IG1fc3RydWN0VG9Db21wYXJlKHN0cnVjdFRvQ29tcGFyZSkKLSAgICAgICAgICAgICwgbV9wcm90
b09iaihwcm90b09iaikKLSAgICAgICAgICAgICwgbV9wcm90b1N0cnVjdFRvQ29tcGFyZShwcm90
b1N0cnVjdFRvQ29tcGFyZSkKLSAgICAgICAgICAgICwgbV9wdXRGdW5jdGlvbihwdXRGdW5jdGlv
bikKLSAgICAgICAgewotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBDYWxsIG1fc2xvd0Nh
bGw7Ci0gICAgICAgIERhdGFMYWJlbFB0ciBtX3N0cnVjdFRvQ29tcGFyZTsKLSAgICAgICAgRGF0
YUxhYmVsUHRyIG1fcHJvdG9PYmo7Ci0gICAgICAgIERhdGFMYWJlbFB0ciBtX3Byb3RvU3RydWN0
VG9Db21wYXJlOwotICAgICAgICBEYXRhTGFiZWxQdHIgbV9wdXRGdW5jdGlvbjsKLSAgICB9Owot
ICAgIAogICAgIHN0cnVjdCBKU0NhbGxSZWNvcmQgewogICAgICAgICBKU0NhbGxSZWNvcmQoQ2Fs
bCBmYXN0Q2FsbCwgQ2FsbCBzbG93Q2FsbCwgRGF0YUxhYmVsUHRyIHRhcmdldFRvQ2hlY2ssIENh
bGxMaW5rSW5mbzo6Q2FsbFR5cGUgY2FsbFR5cGUsIENvZGVPcmlnaW4gY29kZU9yaWdpbikKICAg
ICAgICAgICAgIDogbV9mYXN0Q2FsbChmYXN0Q2FsbCkKQEAgLTM0MSw3ICszMTksNiBAQCBwcml2
YXRlOgogICAgIH07CiAgICAgCiAgICAgVmVjdG9yPFByb3BlcnR5QWNjZXNzUmVjb3JkLCA0PiBt
X3Byb3BlcnR5QWNjZXNzZXM7Ci0gICAgVmVjdG9yPE1ldGhvZEdldFJlY29yZCwgND4gbV9tZXRo
b2RHZXRzOwogICAgIFZlY3RvcjxKU0NhbGxSZWNvcmQsIDQ+IG1fanNDYWxsczsKIH07CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCShyZXZpc2lvbiAxMDEyMDEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjM4
LDcgKzIzOCw2IEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogYXJpdGhOb2RlRmxhZ3MKICAg
ICBtYWNybyhHZXRBcnJheUxlbmd0aCwgTm9kZVJlc3VsdEludDMyKSBcCiAgICAgbWFjcm8oR2V0
U3RyaW5nTGVuZ3RoLCBOb2RlUmVzdWx0SW50MzIpIFwKICAgICBtYWNybyhHZXRCeXRlQXJyYXlM
ZW5ndGgsIE5vZGVSZXN1bHRJbnQzMikgXAotICAgIG1hY3JvKEdldE1ldGhvZCwgTm9kZVJlc3Vs
dEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEdldFNjb3BlQ2hhaW4sIE5vZGVS
ZXN1bHRKUykgXAogICAgIG1hY3JvKEdldFNjb3BlZFZhciwgTm9kZVJlc3VsdEpTIHwgTm9kZU11
c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKFB1dFNjb3BlZFZhciwgTm9kZU11c3RHZW5lcmF0ZSB8
IE5vZGVDbG9iYmVyc1dvcmxkKSBcCkBAIC00OTUsNyArNDk0LDYgQEAgc3RydWN0IE5vZGUgewog
ICAgICAgICBjYXNlIEdldEJ5SWQ6CiAgICAgICAgIGNhc2UgUHV0QnlJZDoKICAgICAgICAgY2Fz
ZSBQdXRCeUlkRGlyZWN0OgotICAgICAgICBjYXNlIEdldE1ldGhvZDoKICAgICAgICAgY2FzZSBS
ZXNvbHZlOgogICAgICAgICBjYXNlIFJlc29sdmVCYXNlOgogICAgICAgICBjYXNlIFJlc29sdmVC
YXNlU3RyaWN0UHV0OgpAQCAtNzEwLDcgKzcwOCw2IEBAIHN0cnVjdCBOb2RlIHsKICAgICB7CiAg
ICAgICAgIHN3aXRjaCAob3ApIHsKICAgICAgICAgY2FzZSBHZXRCeUlkOgotICAgICAgICBjYXNl
IEdldE1ldGhvZDoKICAgICAgICAgY2FzZSBHZXRCeVZhbDoKICAgICAgICAgY2FzZSBDYWxsOgog
ICAgICAgICBjYXNlIENvbnN0cnVjdDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTAxMjAxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzE5LDIzICsz
MTksNiBAQCBFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkdlCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShiYXNlVmFsdWUuZ2V0KGV4ZWMsICpwcm9wZXJ0eU5hbWUsIHNs
b3QpKTsKIH0KIAotSl9GVU5DVElPTl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRUNJKG9w
ZXJhdGlvbkdldE1ldGhvZE9wdGltaXplKTsKLUVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04g
b3BlcmF0aW9uR2V0TWV0aG9kT3B0aW1pemVXaXRoUmV0dXJuQWRkcmVzcyhFeGVjU3RhdGUqIGV4
ZWMsIEpTQ2VsbCogYmFzZSwgSWRlbnRpZmllciogcHJvcGVydHlOYW1lLCBSZXR1cm5BZGRyZXNz
UHRyIHJldHVybkFkZHJlc3MpCi17Ci0gICAgSlNWYWx1ZSBiYXNlVmFsdWUoYmFzZSk7Ci0gICAg
UHJvcGVydHlTbG90IHNsb3QoYmFzZVZhbHVlKTsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGJhc2VW
YWx1ZS5nZXQoZXhlYywgKnByb3BlcnR5TmFtZSwgc2xvdCk7Ci0gICAgCi0gICAgQ29kZUJsb2Nr
KiBjb2RlQmxvY2sgPSBleGVjLT5jb2RlQmxvY2soKTsKLSAgICBNZXRob2RDYWxsTGlua0luZm8m
IG1ldGhvZEluZm8gPSBjb2RlQmxvY2stPmdldE1ldGhvZENhbGxMaW5rSW5mbyhyZXR1cm5BZGRy
ZXNzKTsKLSAgICBpZiAobWV0aG9kSW5mby5zZWVuT25jZSgpKQotICAgICAgICBkZmdSZXBhdGNo
R2V0TWV0aG9kKGV4ZWMsIGJhc2VWYWx1ZSwgKnByb3BlcnR5TmFtZSwgc2xvdCwgbWV0aG9kSW5m
byk7Ci0gICAgZWxzZQotICAgICAgICBtZXRob2RJbmZvLnNldFNlZW4oKTsKLQotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKLX0KLQogSl9GVU5DVElPTl9XUkFQUEVSX1dJVEhf
UkVUVVJOX0FERFJFU1NfRUNJKG9wZXJhdGlvbkdldEJ5SWRCdWlsZExpc3QpOwogRW5jb2RlZEpT
VmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkQnVpbGRMaXN0V2l0aFJldHVybkFk
ZHJlc3MoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIGJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5
TmFtZSwgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQogewpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgJKHJldmlzaW9uIDEwMTIwMSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDMsNyArMTAzLDYgQEAgRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25H
ZQogRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkQnVpbGRMaXN0
KEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIqKTsKIEVuY29kZWRKU1ZhbHVlIERGR19P
UEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZFByb3RvQnVpbGRMaXN0KEV4ZWNTdGF0ZSosIEpTQ2Vs
bCosIElkZW50aWZpZXIqKTsKIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9u
R2V0QnlJZE9wdGltaXplKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIqKTsKLUVuY29k
ZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uR2V0TWV0aG9kT3B0aW1pemUoRXhlY1N0
YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmllciopOwogRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElP
TiBvcGVyYXRpb25SZXNvbHZlKEV4ZWNTdGF0ZSosIElkZW50aWZpZXIqKTsKIEVuY29kZWRKU1Zh
bHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUmVzb2x2ZUJhc2UoRXhlY1N0YXRlKiwgSWRlbnRp
ZmllciopOwogRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25SZXNvbHZlQmFz
ZVN0cmljdFB1dChFeGVjU3RhdGUqLCBJZGVudGlmaWVyKik7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1Byb3BhZ2F0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUHJvcGFnYXRvci5jcHAJKHJldmlzaW9uIDEwMTIwMSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJvcGFnYXRvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ1Niw3ICs0NTYsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgICAgIAotICAgICAgICBjYXNlIEdldE1ldGhvZDoKICAgICAgICAgY2FzZSBH
ZXRCeVZhbDogewogICAgICAgICAgICAgaWYgKG5vZGUuZ2V0SGVhcFByZWRpY3Rpb24oKSkKICAg
ICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihub2RlLmdldEhlYXBQcmVk
aWN0aW9uKCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZXBhdGNoLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1JlcGF0Y2guY3Bw
CShyZXZpc2lvbiAxMDEyMDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1JlcGF0
Y2guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjgsNjMgKzI2OCw2IEBAIHZvaWQgZGZnUmVwYXRj
aEdldEJ5SUQoRXhlY1N0YXRlKiBleGVjLCAKICAgICAgICAgZGZnUmVwYXRjaENhbGwoZXhlYy0+
Y29kZUJsb2NrKCksIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiwgb3BlcmF0aW9uR2V0QnlJ
ZCk7CiB9CiAKLXN0YXRpYyB2b2lkIGRmZ1JlcGF0Y2hHZXRNZXRob2RGYXN0KEpTR2xvYmFsRGF0
YSogZ2xvYmFsRGF0YSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIE1ldGhvZENhbGxMaW5rSW5mbyYg
bWV0aG9kSW5mbywgSlNPYmplY3QqIGNhbGxlZSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTT2Jq
ZWN0KiBzbG90QmFzZU9iamVjdCkKLXsKLSAgICBTY3JpcHRFeGVjdXRhYmxlKiBvd25lciA9IGNv
ZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCk7Ci0gICAgCi0gICAgUmVwYXRjaEJ1ZmZlciByZXBh
dGNoQnVmZmVyKGNvZGVCbG9jayk7Ci0KLSAgICAvLyBPbmx5IG9wdGltaXplIG9uY2UhCi0gICAg
cmVwYXRjaEJ1ZmZlci5yZWxpbmsobWV0aG9kSW5mby5jYWxsUmV0dXJuTG9jYXRpb24sIG9wZXJh
dGlvbkdldEJ5SWRPcHRpbWl6ZSk7Ci0KLSAgICBtZXRob2RJbmZvLmNhY2hlZFN0cnVjdHVyZS5z
ZXQoKmdsb2JhbERhdGEsIG93bmVyLCBzdHJ1Y3R1cmUpOwotICAgIG1ldGhvZEluZm8uY2FjaGVk
UHJvdG90eXBlU3RydWN0dXJlLnNldCgqZ2xvYmFsRGF0YSwgb3duZXIsIHNsb3RCYXNlT2JqZWN0
LT5zdHJ1Y3R1cmUoKSk7Ci0gICAgbWV0aG9kSW5mby5jYWNoZWRQcm90b3R5cGUuc2V0KCpnbG9i
YWxEYXRhLCBvd25lciwgc2xvdEJhc2VPYmplY3QpOwotICAgIG1ldGhvZEluZm8uY2FjaGVkRnVu
Y3Rpb24uc2V0KCpnbG9iYWxEYXRhLCBvd25lciwgY2FsbGVlKTsKLX0KLQotc3RhdGljIGJvb2wg
dHJ5Q2FjaGVHZXRNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QsIE1l
dGhvZENhbGxMaW5rSW5mbyYgbWV0aG9kSW5mbykKLXsKLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9j
ayA9IGV4ZWMtPmNvZGVCbG9jaygpOwotICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSA9ICZl
eGVjLT5nbG9iYWxEYXRhKCk7Ci0gICAgCi0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmU7Ci0gICAg
SlNDZWxsKiBzcGVjaWZpYzsKLSAgICBKU09iamVjdCogc2xvdEJhc2VPYmplY3Q7Ci0gICAgaWYg
KGJhc2VWYWx1ZS5pc0NlbGwoKQotICAgICAgICAmJiBzbG90LmlzQ2FjaGVhYmxlVmFsdWUoKQot
ICAgICAgICAmJiAhKHN0cnVjdHVyZSA9IGJhc2VWYWx1ZS5hc0NlbGwoKS0+c3RydWN0dXJlKCkp
LT5pc1VuY2FjaGVhYmxlRGljdGlvbmFyeSgpCi0gICAgICAgICYmIChzbG90QmFzZU9iamVjdCA9
IGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpLT5nZXRQcm9wZXJ0eVNwZWNpZmljVmFsdWUoZXhl
YywgcHJvcGVydHlOYW1lLCBzcGVjaWZpYykKLSAgICAgICAgJiYgc3BlY2lmaWMpIHsKLSAgICAg
ICAgCi0gICAgICAgIEpTT2JqZWN0KiBjYWxsZWUgPSBhc09iamVjdChzcGVjaWZpYyk7Ci0gICAg
ICAgIAotICAgICAgICAvLyBTaW5jZSB3ZSdyZSBhY2Nlc3NpbmcgYSBwcm90b3R5cGUgaW4gYSBs
b29wLCBpdCdzIGEgZ29vZCBiZXQgdGhhdCBpdAotICAgICAgICAvLyBzaG91bGQgbm90IGJlIHRy
ZWF0ZWQgYXMgYSBkaWN0aW9uYXJ5LgotICAgICAgICBpZiAoc2xvdEJhc2VPYmplY3QtPnN0cnVj
dHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkKLSAgICAgICAgICAgIHNsb3RCYXNlT2JqZWN0LT5mbGF0
dGVuRGljdGlvbmFyeU9iamVjdChleGVjLT5nbG9iYWxEYXRhKCkpOwotICAgICAgICAKLSAgICAg
ICAgaWYgKHNsb3Quc2xvdEJhc2UoKSA9PSBzdHJ1Y3R1cmUtPnByb3RvdHlwZUZvckxvb2t1cChl
eGVjKSkgewotICAgICAgICAgICAgZGZnUmVwYXRjaEdldE1ldGhvZEZhc3QoZ2xvYmFsRGF0YSwg
Y29kZUJsb2NrLCBtZXRob2RJbmZvLCBjYWxsZWUsIHN0cnVjdHVyZSwgc2xvdEJhc2VPYmplY3Qp
OwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAg
IGlmIChzbG90LnNsb3RCYXNlKCkgPT0gYmFzZVZhbHVlKSB7Ci0gICAgICAgICAgICBkZmdSZXBh
dGNoR2V0TWV0aG9kRmFzdChnbG9iYWxEYXRhLCBjb2RlQmxvY2ssIG1ldGhvZEluZm8sIGNhbGxl
ZSwgc3RydWN0dXJlLCBleGVjLT5zY29wZUNoYWluKCktPmdsb2JhbE9iamVjdC0+bWV0aG9kQ2Fs
bER1bW15KCkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0g
ICAgCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIGRmZ1JlcGF0Y2hHZXRNZXRob2QoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QsIE1ldGhvZENhbGxMaW5rSW5mbyYgbWV0
aG9kSW5mbykKLXsKLSAgICBib29sIGNhY2hlZCA9IHRyeUNhY2hlR2V0TWV0aG9kKGV4ZWMsIGJh
c2VWYWx1ZSwgcHJvcGVydHlOYW1lLCBzbG90LCBtZXRob2RJbmZvKTsKLSAgICBpZiAoIWNhY2hl
ZCkKLSAgICAgICAgZGZnUmVwYXRjaENhbGwoZXhlYy0+Y29kZUJsb2NrKCksIG1ldGhvZEluZm8u
Y2FsbFJldHVybkxvY2F0aW9uLCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUpOwotfQotCiBzdGF0
aWMgYm9vbCB0cnlCdWlsZEdldEJ5SURMaXN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNl
VmFsdWUsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVj
dHVyZVN0dWJJbmZvJiBzdHViSW5mbykKIHsKICAgICBpZiAoIWJhc2VWYWx1ZS5pc0NlbGwoKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZXBhdGNoLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZXBhdGNoLmgJKHJldmlzaW9uIDEwMTIw
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVwYXRjaC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNCw3ICszNCw2IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAK
IHZvaWQgZGZnUmVwYXRjaEdldEJ5SUQoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRp
ZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvJik7Ci12b2lkIGRm
Z1JlcGF0Y2hHZXRNZXRob2QoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYs
IGNvbnN0IFByb3BlcnR5U2xvdCYsIE1ldGhvZENhbGxMaW5rSW5mbyYpOwogdm9pZCBkZmdCdWls
ZEdldEJ5SURMaXN0KEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImLCBjb25z
dCBQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwogdm9pZCBkZmdCdWlsZEdldEJ5
SURQcm90b0xpc3QoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0
IFByb3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvJik7CiB2b2lkIGRmZ1JlcGF0Y2hQdXRC
eUlEKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQdXRQcm9w
ZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyYsIFB1dEtpbmQpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShy
ZXZpc2lvbiAxMDEyMDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MzksMTAgKzgzOSw4IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6Om5vblNwZWN1bGF0aXZlQmFzaWMKICAgICBqc1ZhbHVlUmVzdWx0KHJl
c3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUiwgbV9jb21waWxlSW5kZXgsIFVzZUNoaWxkcmVu
Q2FsbGVkRXhwbGljaXRseSk7CiB9CiAKLUpJVENvbXBpbGVyOjpDYWxsIFNwZWN1bGF0aXZlSklU
OjpjYWNoZWRHZXRCeUlkKEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHJlc3VsdFRhZ0dQ
UiwgR1BSUmVnIHJlc3VsdFBheWxvYWRHUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCB1bnNpZ25lZCBp
ZGVudGlmaWVyTnVtYmVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwgTm9kZVR5
cGUgbm9kZVR5cGUpCitKSVRDb21waWxlcjo6Q2FsbCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0
QnlJZChHUFJSZWcgYmFzZVBheWxvYWRHUFIsIEdQUlJlZyByZXN1bHRUYWdHUFIsIEdQUlJlZyBy
ZXN1bHRQYXlsb2FkR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51
bWJlciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQpCiB7Ci0gICAgQVNTRVJUKG5v
ZGVUeXBlID09IEdldEJ5SWQgfHwgbm9kZVR5cGUgPT0gR2V0TWV0aG9kKTsKLQogICAgIG1faml0
LmJlZ2luVW5pbnRlcnJ1cHRlZFNlcXVlbmNlKCk7CiAgICAgSklUQ29tcGlsZXI6OkRhdGFMYWJl
bFB0ciBzdHJ1Y3R1cmVUb0NvbXBhcmU7CiAgICAgSklUQ29tcGlsZXI6Okp1bXAgc3RydWN0dXJl
Q2hlY2sgPSBtX2ppdC5icmFuY2hQdHJXaXRoUGF0Y2goSklUQ29tcGlsZXI6Ok5vdEVxdWFsLCBK
SVRDb21waWxlcjo6QWRkcmVzcyhiYXNlUGF5bG9hZEdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZz
ZXQoKSksIHN0cnVjdHVyZVRvQ29tcGFyZSwgSklUQ29tcGlsZXI6OlRydXN0ZWRJbW1QdHIocmVp
bnRlcnByZXRfY2FzdDx2b2lkKj4oLTEpKSk7CkBAIC04NjIsNyArODYwLDcgQEAgSklUQ29tcGls
ZXI6OkNhbGwgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZAogICAgIEpJVENvbXBpbGVyOjpMYWJlbCBz
bG93Q2FzZSA9IG1faml0LmxhYmVsKCk7CiAKICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhy
ZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpOwotICAgIEpJVENvbXBpbGVyOjpDYWxsIGZ1
bmN0aW9uQ2FsbCA9IGNhbGxPcGVyYXRpb24obm9kZVR5cGUgPT0gR2V0QnlJZCA/IG9wZXJhdGlv
bkdldEJ5SWRPcHRpbWl6ZSA6IG9wZXJhdGlvbkdldE1ldGhvZE9wdGltaXplLCByZXN1bHRUYWdH
UFIsIHJlc3VsdFBheWxvYWRHUFIsIGJhc2VQYXlsb2FkR1BSLCBpZGVudGlmaWVyKGlkZW50aWZp
ZXJOdW1iZXIpKTsKKyAgICBKSVRDb21waWxlcjo6Q2FsbCBmdW5jdGlvbkNhbGwgPSBjYWxsT3Bl
cmF0aW9uKG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgcmVzdWx0VGFnR1BSLCByZXN1bHRQYXls
b2FkR1BSLCBiYXNlUGF5bG9hZEdQUiwgaWRlbnRpZmllcihpZGVudGlmaWVyTnVtYmVyKSk7CiAg
ICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIp
OwogICAgIAogICAgIGRvbmUubGluaygmbV9qaXQpOwpAQCAtOTE4LDMwICs5MTYsNiBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKEdQUlJlCiAgICAgbV9qaXQuYWRkUHJvcGVy
dHlBY2Nlc3MoUHJvcGVydHlBY2Nlc3NSZWNvcmQoc3RydWN0dXJlVG9Db21wYXJlLCBmdW5jdGlv
bkNhbGwsIHN0cnVjdHVyZUNoZWNrLCBKSVRDb21waWxlcjo6RGF0YUxhYmVsQ29tcGFjdCh0YWdT
dG9yZVdpdGhQYXRjaC5sYWJlbCgpKSwgSklUQ29tcGlsZXI6OkRhdGFMYWJlbENvbXBhY3QocGF5
bG9hZFN0b3JlV2l0aFBhdGNoLmxhYmVsKCkpLCBzbG93Q2FzZSwgZG9uZUxhYmVsLCBzYWZlQ2Fz
dDxpbnQ4X3Q+KGJhc2VQYXlsb2FkR1BSKSwgc2FmZUNhc3Q8aW50OF90Pih2YWx1ZVRhZ0dQUiks
IHNhZmVDYXN0PGludDhfdD4odmFsdWVQYXlsb2FkR1BSKSwgc2FmZUNhc3Q8aW50OF90PihzY3Jh
dGNoR1BSKSkpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRNZXRob2QoR1BS
UmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgcmVzdWx0VGFnR1BSLCBHUFJSZWcgcmVzdWx0UGF5
bG9hZEdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJ
VENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0KQotewotICAgIEpJVENvbXBpbGVyOjpDYWxs
IHNsb3dDYWxsOwotICAgIEpJVENvbXBpbGVyOjpEYXRhTGFiZWxQdHIgc3RydWN0VG9Db21wYXJl
LCBwcm90b09iaiwgcHJvdG9TdHJ1Y3RUb0NvbXBhcmUsIHB1dEZ1bmN0aW9uOwotICAgIAotICAg
IEpJVENvbXBpbGVyOjpKdW1wIHdyb25nU3RydWN0dXJlID0gbV9qaXQuYnJhbmNoUHRyV2l0aFBh
dGNoKEpJVENvbXBpbGVyOjpOb3RFcXVhbCwgSklUQ29tcGlsZXI6OkFkZHJlc3MoYmFzZVBheWxv
YWRHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLCBzdHJ1Y3RUb0NvbXBhcmUsIEpJVENv
bXBpbGVyOjpUcnVzdGVkSW1tUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KC0xKSkpOwotICAg
IHByb3RvT2JqID0gbV9qaXQubW92ZVdpdGhQYXRjaChKSVRDb21waWxlcjo6VHJ1c3RlZEltbVB0
cigwKSwgcmVzdWx0UGF5bG9hZEdQUik7Ci0gICAgSklUQ29tcGlsZXI6Okp1bXAgd3JvbmdQcm90
b1N0cnVjdHVyZSA9IG1faml0LmJyYW5jaFB0cldpdGhQYXRjaChKSVRDb21waWxlcjo6Tm90RXF1
YWwsIEpJVENvbXBpbGVyOjpBZGRyZXNzKHJlc3VsdFBheWxvYWRHUFIsIEpTQ2VsbDo6c3RydWN0
dXJlT2Zmc2V0KCkpLCBwcm90b1N0cnVjdFRvQ29tcGFyZSwgSklUQ29tcGlsZXI6OlRydXN0ZWRJ
bW1QdHIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oLTEpKSk7Ci0gICAgCi0gICAgcHV0RnVuY3Rp
b24gPSBtX2ppdC5tb3ZlV2l0aFBhdGNoKEpJVENvbXBpbGVyOjpUcnVzdGVkSW1tUHRyKDApLCBy
ZXN1bHRQYXlsb2FkR1BSKTsKLSAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpD
ZWxsVGFnKSwgcmVzdWx0VGFnR1BSKTsKLSAgICAKLSAgICBKSVRDb21waWxlcjo6SnVtcCBkb25l
ID0gbV9qaXQuanVtcCgpOwotICAgIAotICAgIHdyb25nU3RydWN0dXJlLmxpbmsoJm1faml0KTsK
LSAgICB3cm9uZ1Byb3RvU3RydWN0dXJlLmxpbmsoJm1faml0KTsKLSAgICAKLSAgICBzbG93Q2Fs
bCA9IGNhY2hlZEdldEJ5SWQoYmFzZVBheWxvYWRHUFIsIHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5
bG9hZEdQUiwgc2NyYXRjaEdQUiwgaWRlbnRpZmllck51bWJlciwgc2xvd1BhdGhUYXJnZXQsIEdl
dE1ldGhvZCk7Ci0gICAgCi0gICAgZG9uZS5saW5rKCZtX2ppdCk7Ci0gICAgCi0gICAgbV9qaXQu
YWRkTWV0aG9kR2V0KHNsb3dDYWxsLCBzdHJ1Y3RUb0NvbXBhcmUsIHByb3RvT2JqLCBwcm90b1N0
cnVjdFRvQ29tcGFyZSwgcHV0RnVuY3Rpb24pOwotfQotCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpu
b25TcGVjdWxhdGl2ZU5vblBlZXBob2xlQ29tcGFyZU51bGwoTm9kZUluZGV4IG9wZXJhbmQsIGJv
b2wgaW52ZXJ0KQogewogICAgIEpTVmFsdWVPcGVyYW5kIGFyZyh0aGlzLCBvcGVyYW5kKTsKQEAg
LTM1MTIsMjkgKzM0ODYsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5v
ZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCi0gICAgY2FzZSBHZXRNZXRob2Q6
IHsKLSAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLmNoaWxkMSgp
KTsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFRhZyh0aGlzLCBiYXNlKTsKLSAgICAgICAg
R1BSVGVtcG9yYXJ5IHJlc3VsdFBheWxvYWQodGhpcyk7Ci0KLSAgICAgICAgR1BSUmVnIGJhc2VH
UFIgPSBiYXNlLmdwcigpOwotICAgICAgICBHUFJSZWcgcmVzdWx0VGFnR1BSID0gcmVzdWx0VGFn
LmdwcigpOwotICAgICAgICBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiA9IHJlc3VsdFBheWxvYWQu
Z3ByKCk7Ci0gICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSOwotICAgICAgICAKLSAgICAgICAgaWYg
KHJlc3VsdFRhZ0dQUiA9PSBiYXNlR1BSKQotICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHJlc3Vs
dFBheWxvYWRHUFI7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNjcmF0Y2hHUFIgPSByZXN1
bHRUYWdHUFI7Ci0gICAgICAgIAotICAgICAgICBiYXNlLnVzZSgpOwotCi0gICAgICAgIGNhY2hl
ZEdldE1ldGhvZChiYXNlR1BSLCByZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIsIHNjcmF0
Y2hHUFIsIG5vZGUuaWRlbnRpZmllck51bWJlcigpKTsKLQotICAgICAgICBqc1ZhbHVlUmVzdWx0
KHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUiwgbV9jb21waWxlSW5kZXgsIFVzZUNoaWxk
cmVuQ2FsbGVkRXhwbGljaXRseSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQogICAgIGNhc2Ug
UHV0QnlJZDogewogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUu
Y2hpbGQxKCkpOwogICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLmNoaWxk
MigpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTAxMjAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzc0LDEwICs3
NzQsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpub25TcGVjdWxhdGl2ZUJhc2ljCiAgICAganNW
YWx1ZVJlc3VsdChyZXN1bHRHUFIsIG1fY29tcGlsZUluZGV4LCBVc2VDaGlsZHJlbkNhbGxlZEV4
cGxpY2l0bHkpOwogfQogCi1KSVRDb21waWxlcjo6Q2FsbCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVk
R2V0QnlJZChHUFJSZWcgYmFzZUdQUiwgR1BSUmVnIHJlc3VsdEdQUiwgR1BSUmVnIHNjcmF0Y2hH
UFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRo
VGFyZ2V0LCBOb2RlVHlwZSBub2RlVHlwZSkKK0pJVENvbXBpbGVyOjpDYWxsIFNwZWN1bGF0aXZl
SklUOjpjYWNoZWRHZXRCeUlkKEdQUlJlZyBiYXNlR1BSLCBHUFJSZWcgcmVzdWx0R1BSLCBHUFJS
ZWcgc2NyYXRjaEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgSklUQ29tcGlsZXI6Okp1
bXAgc2xvd1BhdGhUYXJnZXQpCiB7Ci0gICAgQVNTRVJUKG5vZGVUeXBlID09IEdldEJ5SWQgfHwg
bm9kZVR5cGUgPT0gR2V0TWV0aG9kKTsKLQogICAgIEpJVENvbXBpbGVyOjpEYXRhTGFiZWxQdHIg
c3RydWN0dXJlVG9Db21wYXJlOwogICAgIEpJVENvbXBpbGVyOjpKdW1wIHN0cnVjdHVyZUNoZWNr
ID0gbV9qaXQuYnJhbmNoUHRyV2l0aFBhdGNoKEpJVENvbXBpbGVyOjpOb3RFcXVhbCwgSklUQ29t
cGlsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIHN0cnVj
dHVyZVRvQ29tcGFyZSwgSklUQ29tcGlsZXI6OlRydXN0ZWRJbW1QdHIocmVpbnRlcnByZXRfY2Fz
dDx2b2lkKj4oLTEpKSk7CiAgICAgCkBAIC03OTQsNyArNzkyLDcgQEAgSklUQ29tcGlsZXI6OkNh
bGwgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZAogICAgIEpJVENvbXBpbGVyOjpMYWJlbCBzbG93Q2Fz
ZSA9IG1faml0LmxhYmVsKCk7CiAKICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRH
UFIpOwotICAgIEpJVENvbXBpbGVyOjpDYWxsIGZ1bmN0aW9uQ2FsbCA9IGNhbGxPcGVyYXRpb24o
bm9kZVR5cGUgPT0gR2V0QnlJZCA/IG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSA6IG9wZXJhdGlv
bkdldE1ldGhvZE9wdGltaXplLCByZXN1bHRHUFIsIGJhc2VHUFIsIGlkZW50aWZpZXIoaWRlbnRp
Zmllck51bWJlcikpOworICAgIEpJVENvbXBpbGVyOjpDYWxsIGZ1bmN0aW9uQ2FsbCA9IGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCByZXN1bHRHUFIsIGJhc2VHUFIsIGlk
ZW50aWZpZXIoaWRlbnRpZmllck51bWJlcikpOwogICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMo
cmVzdWx0R1BSKTsKICAgICAKICAgICBkb25lLmxpbmsoJm1faml0KTsKQEAgLTg1MSwyOSArODQ5
LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0QnlJZChHUFJSZQogICAgIG1faml0
LmFkZFByb3BlcnR5QWNjZXNzKFByb3BlcnR5QWNjZXNzUmVjb3JkKHN0cnVjdHVyZVRvQ29tcGFy
ZSwgZnVuY3Rpb25DYWxsLCBzdHJ1Y3R1cmVDaGVjaywgSklUQ29tcGlsZXI6OkRhdGFMYWJlbENv
bXBhY3Qoc3RvcmVXaXRoUGF0Y2gubGFiZWwoKSksIHNsb3dDYXNlLCBkb25lTGFiZWwsIHNhZmVD
YXN0PGludDhfdD4oYmFzZUdQUiksIHNhZmVDYXN0PGludDhfdD4odmFsdWVHUFIpLCBzYWZlQ2Fz
dDxpbnQ4X3Q+KHNjcmF0Y2hHUFIpKSk7CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hl
ZEdldE1ldGhvZChHUFJSZWcgYmFzZUdQUiwgR1BSUmVnIHJlc3VsdEdQUiwgR1BSUmVnIHNjcmF0
Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQ
YXRoVGFyZ2V0KQotewotICAgIEpJVENvbXBpbGVyOjpDYWxsIHNsb3dDYWxsOwotICAgIEpJVENv
bXBpbGVyOjpEYXRhTGFiZWxQdHIgc3RydWN0VG9Db21wYXJlLCBwcm90b09iaiwgcHJvdG9TdHJ1
Y3RUb0NvbXBhcmUsIHB1dEZ1bmN0aW9uOwotICAgIAotICAgIEpJVENvbXBpbGVyOjpKdW1wIHdy
b25nU3RydWN0dXJlID0gbV9qaXQuYnJhbmNoUHRyV2l0aFBhdGNoKEpJVENvbXBpbGVyOjpOb3RF
cXVhbCwgSklUQ29tcGlsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZz
ZXQoKSksIHN0cnVjdFRvQ29tcGFyZSwgSklUQ29tcGlsZXI6OlRydXN0ZWRJbW1QdHIocmVpbnRl
cnByZXRfY2FzdDx2b2lkKj4oLTEpKSk7Ci0gICAgcHJvdG9PYmogPSBtX2ppdC5tb3ZlV2l0aFBh
dGNoKEpJVENvbXBpbGVyOjpUcnVzdGVkSW1tUHRyKDApLCByZXN1bHRHUFIpOwotICAgIEpJVENv
bXBpbGVyOjpKdW1wIHdyb25nUHJvdG9TdHJ1Y3R1cmUgPSBtX2ppdC5icmFuY2hQdHJXaXRoUGF0
Y2goSklUQ29tcGlsZXI6Ok5vdEVxdWFsLCBKSVRDb21waWxlcjo6QWRkcmVzcyhyZXN1bHRHUFIs
IEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLCBwcm90b1N0cnVjdFRvQ29tcGFyZSwgSklUQ29t
cGlsZXI6OlRydXN0ZWRJbW1QdHIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oLTEpKSk7Ci0gICAg
Ci0gICAgcHV0RnVuY3Rpb24gPSBtX2ppdC5tb3ZlV2l0aFBhdGNoKEpJVENvbXBpbGVyOjpUcnVz
dGVkSW1tUHRyKDApLCByZXN1bHRHUFIpOwotICAgIAotICAgIEpJVENvbXBpbGVyOjpKdW1wIGRv
bmUgPSBtX2ppdC5qdW1wKCk7Ci0gICAgCi0gICAgd3JvbmdTdHJ1Y3R1cmUubGluaygmbV9qaXQp
OwotICAgIHdyb25nUHJvdG9TdHJ1Y3R1cmUubGluaygmbV9qaXQpOwotICAgIAotICAgIHNsb3dD
YWxsID0gY2FjaGVkR2V0QnlJZChiYXNlR1BSLCByZXN1bHRHUFIsIHNjcmF0Y2hHUFIsIGlkZW50
aWZpZXJOdW1iZXIsIHNsb3dQYXRoVGFyZ2V0LCBHZXRNZXRob2QpOwotICAgIAotICAgIGRvbmUu
bGluaygmbV9qaXQpOwotICAgIAotICAgIG1faml0LmFkZE1ldGhvZEdldChzbG93Q2FsbCwgc3Ry
dWN0VG9Db21wYXJlLCBwcm90b09iaiwgcHJvdG9TdHJ1Y3RUb0NvbXBhcmUsIHB1dEZ1bmN0aW9u
KTsKLX0KLQogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6bm9uU3BlY3VsYXRpdmVOb25QZWVwaG9sZUNv
bXBhcmVOdWxsKE5vZGVJbmRleCBvcGVyYW5kLCBib29sIGludmVydCkKIHsKICAgICBKU1ZhbHVl
T3BlcmFuZCBhcmcodGhpcywgb3BlcmFuZCk7CkBAIC0zNDUyLDI3ICszNDI3LDYgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9
CiAgICAgICAgIAotICAgIGNhc2UgR2V0TWV0aG9kOiB7Ci0gICAgICAgIFNwZWN1bGF0ZUNlbGxP
cGVyYW5kIGJhc2UodGhpcywgbm9kZS5jaGlsZDEoKSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSBy
ZXN1bHQodGhpcywgYmFzZSk7Ci0KLSAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigp
OwotICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwotICAgICAgICBHUFJS
ZWcgc2NyYXRjaEdQUjsKLSAgICAgICAgCi0gICAgICAgIGlmIChyZXN1bHRHUFIgPT0gYmFzZUdQ
UikKLSAgICAgICAgICAgIHNjcmF0Y2hHUFIgPSB0cnlBbGxvY2F0ZSgpOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBzY3JhdGNoR1BSID0gcmVzdWx0R1BSOwotICAgICAgICAKLSAgICAgICAg
YmFzZS51c2UoKTsKLQotICAgICAgICBjYWNoZWRHZXRNZXRob2QoYmFzZUdQUiwgcmVzdWx0R1BS
LCBzY3JhdGNoR1BSLCBub2RlLmlkZW50aWZpZXJOdW1iZXIoKSk7Ci0KLSAgICAgICAganNWYWx1
ZVJlc3VsdChyZXN1bHRHUFIsIG1fY29tcGlsZUluZGV4LCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxp
Y2l0bHkpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KICAgICBjYXNlIFB1dEJ5SWQ6IHsKICAg
ICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKICAg
ICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS5jaGlsZDIoKSk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCShyZXZpc2lv
biAxMDEyMDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmgJKHdvcmtpbmcgY29weSkKQEAgLTg2OCwxMyArODY4LDExIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBub25TcGVjdWxhdGl2ZUJhc2ljQXJpdGhPcChOb2RlVHlwZSBvcCwgTm9kZSYpOwogICAgIAog
I2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgSklUQ29tcGlsZXI6OkNhbGwgY2FjaGVkR2V0QnlJZChH
UFJSZWcgYmFzZUdQUiwgR1BSUmVnIHJlc3VsdEdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2ln
bmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0g
SklUQ29tcGlsZXI6Okp1bXAoKSwgTm9kZVR5cGUgPSBHZXRCeUlkKTsKKyAgICBKSVRDb21waWxl
cjo6Q2FsbCBjYWNoZWRHZXRCeUlkKEdQUlJlZyBiYXNlR1BSLCBHUFJSZWcgcmVzdWx0R1BSLCBH
UFJSZWcgc2NyYXRjaEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgSklUQ29tcGlsZXI6
Okp1bXAgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6SnVtcCgpKTsKICAgICB2b2lkIGNh
Y2hlZFB1dEJ5SWQoR1BSUmVnIGJhc2UsIEdQUlJlZyB2YWx1ZSwgTm9kZUluZGV4IHZhbHVlSW5k
ZXgsIEdQUlJlZyBzY3JhdGNoR1BSLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBQdXRLaW5k
LCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCA9IEpJVENvbXBpbGVyOjpKdW1wKCkp
OwotICAgIHZvaWQgY2FjaGVkR2V0TWV0aG9kKEdQUlJlZyBiYXNlR1BSLCBHUFJSZWcgcmVzdWx0
R1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgSklUQ29t
cGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6SnVtcCgpKTsKICNlbGlm
IFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgSklUQ29tcGlsZXI6OkNhbGwgY2FjaGVkR2V0QnlJZChH
UFJSZWcgYmFzZVBheWxvYWRHUFIsIEdQUlJlZyByZXN1bHRUYWdHUFIsIEdQUlJlZyByZXN1bHRQ
YXlsb2FkR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwg
SklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6SnVtcCgpLCBO
b2RlVHlwZSA9IEdldEJ5SWQpOworICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhY2hlZEdldEJ5SWQo
R1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgcmVzdWx0VGFnR1BSLCBHUFJSZWcgcmVzdWx0
UGF5bG9hZEdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIs
IEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAoKSk7
CiAgICAgdm9pZCBjYWNoZWRQdXRCeUlkKEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHZh
bHVlVGFnR1BSLCBHUFJSZWcgdmFsdWVQYXlsb2FkR1BSLCBOb2RlSW5kZXggdmFsdWVJbmRleCwg
R1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFB1dEtpbmQsIEpJ
VENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAoKSk7Ci0g
ICAgdm9pZCBjYWNoZWRHZXRNZXRob2QoR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgcmVz
dWx0VGFnR1BSLCBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVu
c2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0
ID0gSklUQ29tcGlsZXI6Okp1bXAoKSk7CiAjZW5kaWYKIAogICAgIHZvaWQgbm9uU3BlY3VsYXRp
dmVOb25QZWVwaG9sZUNvbXBhcmVOdWxsKE5vZGVJbmRleCBvcGVyYW5kLCBib29sIGludmVydCA9
IGZhbHNlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>