<?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>116696</bug_id>
          
          <creation_ts>2013-05-23 16:10:00 -0700</creation_ts>
          <short_desc>fourthTier: rationalize DFG::CapabilityLevel and DFGCapabilities.[h|cpp]</short_desc>
          <delta_ts>2013-05-23 18:35:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>116557</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>893077</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-05-23 16:10:00 -0700</bug_when>
    <thetext>Right now it&apos;s super hard to figure out what all of the capabilities of a code block are, all in one go.  For example, the Baseline JIT doesn&apos;t really know if a code block is an inline candidate.  That&apos;s sad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893083</commentid>
    <comment_count>1</comment_count>
      <attachid>202752</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-05-23 16:25:50 -0700</bug_when>
    <thetext>Created attachment 202752
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893096</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-05-23 18:35:22 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/150622</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202752</attachid>
            <date>2013-05-23 16:25:50 -0700</date>
            <delta_ts>2013-05-23 16:30:43 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>31771</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUwNjE2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBA
CisyMDEzLTA1LTIzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Zm91cnRoVGllcjogcmF0aW9uYWxpemUgREZHOjpDYXBhYmlsaXR5TGV2ZWwgYW5kIERGR0NhcGFi
aWxpdGllcy5baHxjcHBdCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTY2OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAg
ICAgICAgCisgICAgICAgIE1ha2UgaXQgc28gdGhhdCBhbGwgY2FwYWJpbGl0eSBjYWxjdWxhdGlv
biBpcyBmdW5uZWxlZCB0aHJvdWdoIG9uZSBmdW5jdGlvbiwgd2hpY2ggdGVsbHMKKyAgICAgICAg
eW91IGV2ZXJ5dGhpbmcgeW91IHdhbnRlZCB0byBrbm93OiBjYW4gaXQgYmUgaW5saW5lZCwgYW5k
IGNhbiBpdCBiZSBjb21waWxlZC4KKyAgICAgICAgCisgICAgICAgIFRoaXMgd29yayB3aWxsIGhl
bHAgd2l0aCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NTU3LCBz
aW5jZSBub3cgdGhlCisgICAgICAgIEpJVCBoYXMgYSBmYWlybHkgYXV0aG9yaXRhdGl2ZSBhbnN3
ZXIgdG8gdGhlICJjYW4gaXQgYmUgaW5saW5lZCIgcXVlc3Rpb24uCisKKyAgICAgICAgKiBieXRl
Y29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OkNvZGVCbG9jayk6
CisgICAgICAgIChKU0M6OlByb2dyYW1Db2RlQmxvY2s6OmNhcGFiaWxpdHlMZXZlbEludGVybmFs
KToKKyAgICAgICAgKEpTQzo6RXZhbENvZGVCbG9jazo6Y2FwYWJpbGl0eUxldmVsSW50ZXJuYWwp
OgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvZGVCbG9jazo6Y2FwYWJpbGl0eUxldmVsSW50ZXJu
YWwpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoQ29kZUJsb2Nr
KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpjYXBhYmlsaXR5TGV2ZWwpOgorICAgICAgICAo
SlNDOjpDb2RlQmxvY2s6OmNhcGFiaWxpdHlMZXZlbFN0YXRlKToKKyAgICAgICAgKFByb2dyYW1D
b2RlQmxvY2spOgorICAgICAgICAoRXZhbENvZGVCbG9jayk6CisgICAgICAgIChGdW5jdGlvbkNv
ZGVCbG9jayk6CisgICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6ZGVidWdGYWlsKToKKyAgICAgICAgKERGRyk6CisgICAgICAgIChKU0M6OkRGRzo6
Y2FuSW5saW5lUmVzb2x2ZU9wZXJhdGlvbnMpOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxp
dHlMZXZlbCk6CisgICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5oOgorICAgICAgICAoREZH
KToKKyAgICAgICAgKEpTQzo6REZHOjpjYXBhYmlsaXR5TGV2ZWwpOgorICAgICAgICAoSlNDOjpE
Rkc6OmV2YWxDYXBhYmlsaXR5TGV2ZWwpOgorICAgICAgICAoSlNDOjpERkc6OnByb2dyYW1DYXBh
YmlsaXR5TGV2ZWwpOgorICAgICAgICAoSlNDOjpERkc6OmZ1bmN0aW9uRm9yQ2FsbENhcGFiaWxp
dHlMZXZlbCk6CisgICAgICAgIChKU0M6OkRGRzo6ZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDYXBhYmls
aXR5TGV2ZWwpOgorICAgICAgICAoSlNDOjpERkc6OmNhbklubGluZUZ1bmN0aW9uRm9yQ2FsbCk6
CisgICAgICAgIChKU0M6OkRGRzo6Y2FuSW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6Y2FuSW5saW5lRnVuY3Rpb25Gb3JDb25zdHJ1Y3QpOgorICAgICAg
ICAqIGRmZy9ERkdDb21tb24uaDoKKyAgICAgICAgKEpTQzo6REZHOjpjYW5Db21waWxlKToKKyAg
ICAgICAgKERGRyk6CisgICAgICAgIChKU0M6OkRGRzo6Y2FuSW5saW5lKToKKyAgICAgICAgKEpT
Qzo6REZHOjpsZWFzdFVwcGVyQm91bmQpOgorICAgICAgICAqIGRmZy9ERkdEcml2ZXIuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OmNvbXBpbGUpOgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAg
ICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVy
dHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlUHV0QnlJZFRy
YW5zaXRpb24pOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcDoKKyAg
ICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZVB1dEJ5SWRUcmFuc2l0aW9uKToKKyAgICAg
ICAgKiB0b29scy9Db2RlUHJvZmlsZS5jcHA6CisgICAgICAgIChKU0M6OkNvZGVQcm9maWxlOjpz
YW1wbGUpOgorCiAyMDEzLTA1LTIyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgTWVyZ2UgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTQ5MTYyLCBz
aW5jZSB3ZSBuZWVkIGl0IGFmdGVyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTUwNjE0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OTgsNyAr
MTU5OCw3IEBAIENvZGVCbG9jazo6Q29kZUJsb2NrKENvcHlQYXJzZWRCbG9ja1RhZywKICAgICAs
IG1fcmVzb2x2ZU9wZXJhdGlvbnMob3RoZXIubV9yZXNvbHZlT3BlcmF0aW9ucykKICAgICAsIG1f
cHV0VG9CYXNlT3BlcmF0aW9ucyhvdGhlci5tX3B1dFRvQmFzZU9wZXJhdGlvbnMpCiAjaWYgRU5B
QkxFKEpJVCkKLSAgICAsIG1fY2FuQ29tcGlsZVdpdGhERkdTdGF0ZShERkc6OkNhcGFiaWxpdHlM
ZXZlbE5vdFNldCkKKyAgICAsIG1fY2FwYWJpbGl0eUxldmVsU3RhdGUoREZHOjpDYXBhYmlsaXR5
TGV2ZWxOb3RTZXQpCiAjZW5kaWYKIHsKICAgICBzZXROdW1QYXJhbWV0ZXJzKG90aGVyLm51bVBh
cmFtZXRlcnMoKSk7CkBAIC0yODUxLDIxICsyODUxLDIxIEBAIENvbXBpbGF0aW9uUmVzdWx0IEZ1
bmN0aW9uQ29kZUJsb2NrOjpyZXAKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RnVuY3Rpb25FeGVj
dXRhYmxlKj4ob3duZXJFeGVjdXRhYmxlKCkpLT5yZXBsYWNlV2l0aERlZmVycmVkT3B0aW1pemVk
Q29kZUZvcihwbGFuLCBtX2lzQ29uc3RydWN0b3IgPyBDb2RlRm9yQ29uc3RydWN0IDogQ29kZUZv
ckNhbGwpOwogfQogCi1ERkc6OkNhcGFiaWxpdHlMZXZlbCBQcm9ncmFtQ29kZUJsb2NrOjpjYW5D
b21waWxlV2l0aERGR0ludGVybmFsKCkKK0RGRzo6Q2FwYWJpbGl0eUxldmVsIFByb2dyYW1Db2Rl
QmxvY2s6OmNhcGFiaWxpdHlMZXZlbEludGVybmFsKCkKIHsKLSAgICByZXR1cm4gREZHOjpjYW5D
b21waWxlUHJvZ3JhbSh0aGlzKTsKKyAgICByZXR1cm4gREZHOjpwcm9ncmFtQ2FwYWJpbGl0eUxl
dmVsKHRoaXMpOwogfQogCi1ERkc6OkNhcGFiaWxpdHlMZXZlbCBFdmFsQ29kZUJsb2NrOjpjYW5D
b21waWxlV2l0aERGR0ludGVybmFsKCkKK0RGRzo6Q2FwYWJpbGl0eUxldmVsIEV2YWxDb2RlQmxv
Y2s6OmNhcGFiaWxpdHlMZXZlbEludGVybmFsKCkKIHsKLSAgICByZXR1cm4gREZHOjpjYW5Db21w
aWxlRXZhbCh0aGlzKTsKKyAgICByZXR1cm4gREZHOjpldmFsQ2FwYWJpbGl0eUxldmVsKHRoaXMp
OwogfQogCi1ERkc6OkNhcGFiaWxpdHlMZXZlbCBGdW5jdGlvbkNvZGVCbG9jazo6Y2FuQ29tcGls
ZVdpdGhERkdJbnRlcm5hbCgpCitERkc6OkNhcGFiaWxpdHlMZXZlbCBGdW5jdGlvbkNvZGVCbG9j
azo6Y2FwYWJpbGl0eUxldmVsSW50ZXJuYWwoKQogewogICAgIGlmIChtX2lzQ29uc3RydWN0b3Ip
Ci0gICAgICAgIHJldHVybiBERkc6OmNhbkNvbXBpbGVGdW5jdGlvbkZvckNvbnN0cnVjdCh0aGlz
KTsKLSAgICByZXR1cm4gREZHOjpjYW5Db21waWxlRnVuY3Rpb25Gb3JDYWxsKHRoaXMpOworICAg
ICAgICByZXR1cm4gREZHOjpmdW5jdGlvbkZvckNvbnN0cnVjdENhcGFiaWxpdHlMZXZlbCh0aGlz
KTsKKyAgICByZXR1cm4gREZHOjpmdW5jdGlvbkZvckNhbGxDYXBhYmlsaXR5TGV2ZWwodGhpcyk7
CiB9CiAKIHZvaWQgUHJvZ3JhbUNvZGVCbG9jazo6amV0dGlzb24oKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkocmV2aXNpb24gMTUwNjE0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMDYsMTQgKzMwNiwxNCBAQCBwdWJsaWM6CiAgICAgfQogICAgIHZpcnR1YWwgQ29kZUJs
b2NrKiByZXBsYWNlbWVudCgpID0gMDsKIAotICAgIHZpcnR1YWwgREZHOjpDYXBhYmlsaXR5TGV2
ZWwgY2FuQ29tcGlsZVdpdGhERkdJbnRlcm5hbCgpID0gMDsKLSAgICBERkc6OkNhcGFiaWxpdHlM
ZXZlbCBjYW5Db21waWxlV2l0aERGRygpCisgICAgdmlydHVhbCBERkc6OkNhcGFiaWxpdHlMZXZl
bCBjYXBhYmlsaXR5TGV2ZWxJbnRlcm5hbCgpID0gMDsKKyAgICBERkc6OkNhcGFiaWxpdHlMZXZl
bCBjYXBhYmlsaXR5TGV2ZWwoKQogICAgIHsKLSAgICAgICAgREZHOjpDYXBhYmlsaXR5TGV2ZWwg
cmVzdWx0ID0gY2FuQ29tcGlsZVdpdGhERkdJbnRlcm5hbCgpOwotICAgICAgICBtX2NhbkNvbXBp
bGVXaXRoREZHU3RhdGUgPSByZXN1bHQ7CisgICAgICAgIERGRzo6Q2FwYWJpbGl0eUxldmVsIHJl
c3VsdCA9IGNhcGFiaWxpdHlMZXZlbEludGVybmFsKCk7CisgICAgICAgIG1fY2FwYWJpbGl0eUxl
dmVsU3RhdGUgPSByZXN1bHQ7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQotICAgIERG
Rzo6Q2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGVXaXRoREZHU3RhdGUoKSB7IHJldHVybiBtX2Nh
bkNvbXBpbGVXaXRoREZHU3RhdGU7IH0KKyAgICBERkc6OkNhcGFiaWxpdHlMZXZlbCBjYXBhYmls
aXR5TGV2ZWxTdGF0ZSgpIHsgcmV0dXJuIG1fY2FwYWJpbGl0eUxldmVsU3RhdGU7IH0KIAogICAg
IGJvb2wgaGFzT3B0aW1pemVkUmVwbGFjZW1lbnQoKTsKICNlbHNlCkBAIC05MDYsNyArOTA2LDcg
QEAgcHVibGljOgogICAgIC8vIHdpdGhvdXQgaG9sZGluZyBhbnkgbG9ja3MsIGJlY2F1c2UgdGhl
IEdDIGlzIGd1YXJhbnRlZWQgdG8gd2FpdCB1bnRpbCBhbnkKICAgICAvLyBjb25jdXJyZW50IGNv
bXBpbGF0aW9uIHRocmVhZHMgZmluaXNoIHdoYXQgdGhleSdyZSBkb2luZy4KICAgICBDb25jdXJy
ZW50SklUTG9jayBtX2xvY2s7Ci0KKyAgICAKIHByb3RlY3RlZDoKICNpZiBFTkFCTEUoSklUKQog
ICAgIHZpcnR1YWwgQ29tcGlsYXRpb25SZXN1bHQgaml0Q29tcGlsZUltcGwoRXhlY1N0YXRlKikg
PSAwOwpAQCAtMTEwMyw3ICsxMTAzLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIE93blB0cjxS
YXJlRGF0YT4gbV9yYXJlRGF0YTsKICNpZiBFTkFCTEUoSklUKQotICAgIERGRzo6Q2FwYWJpbGl0
eUxldmVsIG1fY2FuQ29tcGlsZVdpdGhERkdTdGF0ZTsKKyAgICBERkc6OkNhcGFiaWxpdHlMZXZl
bCBtX2NhcGFiaWxpdHlMZXZlbFN0YXRlOwogI2VuZGlmCiB9OwogCkBAIC0xMTQyLDcgKzExNDIs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGpldHRpc29uKCk7CiAgICAgdmlydHVh
bCBDb21waWxhdGlvblJlc3VsdCBqaXRDb21waWxlSW1wbChFeGVjU3RhdGUqKTsKICAgICB2aXJ0
dWFsIENvZGVCbG9jayogcmVwbGFjZW1lbnQoKTsKLSAgICB2aXJ0dWFsIERGRzo6Q2FwYWJpbGl0
eUxldmVsIGNhbkNvbXBpbGVXaXRoREZHSW50ZXJuYWwoKTsKKyAgICB2aXJ0dWFsIERGRzo6Q2Fw
YWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbEludGVybmFsKCk7CiAjZW5kaWYKIH07CiAKQEAg
LTExNjgsNyArMTE2OCw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgamV0dGlzb24o
KTsKICAgICB2aXJ0dWFsIENvbXBpbGF0aW9uUmVzdWx0IGppdENvbXBpbGVJbXBsKEV4ZWNTdGF0
ZSopOwogICAgIHZpcnR1YWwgQ29kZUJsb2NrKiByZXBsYWNlbWVudCgpOwotICAgIHZpcnR1YWwg
REZHOjpDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZVdpdGhERkdJbnRlcm5hbCgpOworICAgIHZp
cnR1YWwgREZHOjpDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsSW50ZXJuYWwoKTsKICNl
bmRpZgogCiBwcml2YXRlOgpAQCAtMTE5NCw3ICsxMTk0LDcgQEAgcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgdm9pZCBqZXR0aXNvbigpOwogICAgIHZpcnR1YWwgQ29tcGlsYXRpb25SZXN1bHQgaml0
Q29tcGlsZUltcGwoRXhlY1N0YXRlKik7CiAgICAgdmlydHVhbCBDb2RlQmxvY2sqIHJlcGxhY2Vt
ZW50KCk7Ci0gICAgdmlydHVhbCBERkc6OkNhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlV2l0aERG
R0ludGVybmFsKCk7CisgICAgdmlydHVhbCBERkc6OkNhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5
TGV2ZWxJbnRlcm5hbCgpOwogI2VuZGlmCiB9OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCShyZXZpc2lvbiAxNTA2MTQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTY2LDUyICs2NiwyMDEgQEAgYm9vbCBtaWdodElubGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0KENv
ZAogICAgICAgICAmJiAhY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKS0+bmVlZHNBY3RpdmF0
aW9uKCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBkZWJ1Z0ZhaWwoQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIE9wY29kZUlEIG9wY29kZUlELCBib29sIHJlc3VsdCkKK2lubGluZSB2b2lkIGRlYnVn
RmFpbChDb2RlQmxvY2sqIGNvZGVCbG9jaywgT3Bjb2RlSUQgb3Bjb2RlSUQsIENhcGFiaWxpdHlM
ZXZlbCByZXN1bHQpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsICFyZXN1bHQpOwotI2lm
IERGR19FTkFCTEUoREVCVUdfVkVSQk9TRSkKLSAgICBkYXRhTG9nRigiQ2Fubm90IGhhbmRsZSBj
b2RlIGJsb2NrICVwIGJlY2F1c2Ugb2Ygb3Bjb2RlICVzLlxuIiwgY29kZUJsb2NrLCBvcGNvZGVO
YW1lc1tvcGNvZGVJRF0pOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oY29kZUJsb2NrKTsKLSAg
ICBVTlVTRURfUEFSQU0ob3Bjb2RlSUQpOwotICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOwotI2Vu
ZGlmCisgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvbigpICYmICFjYW5Db21waWxl
KHJlc3VsdCkpCisgICAgICAgIGRhdGFMb2coIkNhbm5vdCBjb21waWxlIGNvZGUgYmxvY2sgIiwg
KmNvZGVCbG9jaywgIiBiZWNhdXNlIG9mIG9wY29kZSAlcy5cbiIsIG9wY29kZU5hbWVzW29wY29k
ZUlEXSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBkZWJ1Z0ZhaWwoQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIE9wY29kZUlEIG9wY29kZUlELCBDYXBhYmlsaXR5TGV2ZWwgcmVzdWx0KQorLy8gT3Bj
b2RlIGNoZWNraW5nLgoraW5saW5lIGJvb2wgY2FuSW5saW5lUmVzb2x2ZU9wZXJhdGlvbnMoUmVz
b2x2ZU9wZXJhdGlvbnMqIG9wZXJhdGlvbnMpCiB7Ci0gICAgQVNTRVJUKHJlc3VsdCAhPSBDYW5D
b21waWxlKTsKLSNpZiBERkdfRU5BQkxFKERFQlVHX1ZFUkJPU0UpCi0gICAgaWYgKHJlc3VsdCA9
PSBDYW5ub3RDb21waWxlKQotICAgICAgICBkYXRhTG9nRigiQ2Fubm90IGhhbmRsZSBjb2RlIGJs
b2NrICVwIGJlY2F1c2Ugb2Ygb3Bjb2RlICVzLlxuIiwgY29kZUJsb2NrLCBvcGNvZGVOYW1lc1tv
cGNvZGVJRF0pOwotICAgIGVsc2UgewotICAgICAgICBkYXRhTG9nRigiQ2Fubm90IGNvbXBpbGUg
Y29kZSBibG9jayAlcCBiZWNhdXNlIG9mIG9wY29kZSAlcywgYnV0IGlubGluaW5nIG1pZ2h0IGJl
IHBvc3NpYmxlLlxuIiwgY29kZUJsb2NrLCBvcGNvZGVOYW1lc1tvcGNvZGVJRF0pOworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBvcGVyYXRpb25zLT5zaXplKCk7IGkrKykgeworICAgICAg
ICBzd2l0Y2ggKG9wZXJhdGlvbnMtPmRhdGEoKVtpXS5tX29wZXJhdGlvbikgeworICAgICAgICBj
YXNlIFJlc29sdmVPcGVyYXRpb246OlJldHVybkdsb2JhbE9iamVjdEFzQmFzZToKKyAgICAgICAg
Y2FzZSBSZXNvbHZlT3BlcmF0aW9uOjpTZXRCYXNlVG9HbG9iYWw6CisgICAgICAgIGNhc2UgUmVz
b2x2ZU9wZXJhdGlvbjo6U2V0QmFzZVRvVW5kZWZpbmVkOgorICAgICAgICBjYXNlIFJlc29sdmVP
cGVyYXRpb246OkdldEFuZFJldHVybkdsb2JhbFByb3BlcnR5OgorICAgICAgICBjYXNlIFJlc29s
dmVPcGVyYXRpb246OkdldEFuZFJldHVybkdsb2JhbFZhcjoKKyAgICAgICAgY2FzZSBSZXNvbHZl
T3BlcmF0aW9uOjpHZXRBbmRSZXR1cm5HbG9iYWxWYXJXYXRjaGFibGU6CisgICAgICAgIGNhc2Ug
UmVzb2x2ZU9wZXJhdGlvbjo6U2tpcFNjb3BlczoKKyAgICAgICAgY2FzZSBSZXNvbHZlT3BlcmF0
aW9uOjpTZXRCYXNlVG9TY29wZToKKyAgICAgICAgY2FzZSBSZXNvbHZlT3BlcmF0aW9uOjpSZXR1
cm5TY29wZUFzQmFzZToKKyAgICAgICAgY2FzZSBSZXNvbHZlT3BlcmF0aW9uOjpHZXRBbmRSZXR1
cm5TY29wZWRWYXI6CisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBjYXNlIFJlc29s
dmVPcGVyYXRpb246OkZhaWw6CisgICAgICAgICAgICAvLyBGYWxsLWJhY2sgcmVzb2x2ZXMgZG9u
J3Qga25vdyBob3cgdG8gZGVhbCB3aXRoIHRoZSBFeGVjU3RhdGUqIGhhdmluZyBhIGRpZmZlcmVu
dAorICAgICAgICAgICAgLy8gZ2xvYmFsIG9iamVjdCAoYW5kIHNjb3BlKSB0aGFuIHRoZSBpbmxp
bmVkIGNvZGUgdGhhdCBpcyBpbnZva2luZyB0aGF0IHJlc29sdmUuCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICAgICAgY2FzZSBSZXNvbHZlT3BlcmF0aW9uOjpTa2lwVG9wU2NvcGVO
b2RlOgorICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaW5saW5lIGNvZGUgYmxvY2tzIHRoYXQgY3Jl
YXRlIGFjdGl2YXRpb25zLiBDcmVhdGlvbiBvZgorICAgICAgICAgICAgLy8gYWN0aXZhdGlvbnMg
aXMgdGhlIG9ubHkgdGhpbmcgdGhhdCBsZWFkcyB0byBTa2lwVG9wU2NvcGVOb2RlLgorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGNhc2UgUmVzb2x2ZU9wZXJhdGlvbjo6Q2hl
Y2tGb3JEeW5hbWljRW50cmllc0JlZm9yZUdsb2JhbFNjb3BlOgorICAgICAgICAgICAgLy8gVGhp
cyB3b3VsZCBiZSBlYXN5IHRvIHN1cHBvcnQgaW4gYWxsIGNhc2VzLgorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICB9CiAgICAgfQotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oY29k
ZUJsb2NrKTsKLSAgICBVTlVTRURfUEFSQU0ob3Bjb2RlSUQpOwotICAgIFVOVVNFRF9QQVJBTShy
ZXN1bHQpOworICAgIHJldHVybiB0cnVlOworfQorCitDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0
eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1Y3Rp
b24qIHBjKQoreworICAgIHN3aXRjaCAob3Bjb2RlSUQpIHsKKyAgICBjYXNlIG9wX2VudGVyOgor
ICAgIGNhc2Ugb3BfdG9fdGhpczoKKyAgICBjYXNlIG9wX2NyZWF0ZV90aGlzOgorICAgIGNhc2Ug
b3BfZ2V0X2NhbGxlZToKKyAgICBjYXNlIG9wX2JpdGFuZDoKKyAgICBjYXNlIG9wX2JpdG9yOgor
ICAgIGNhc2Ugb3BfYml0eG9yOgorICAgIGNhc2Ugb3BfcnNoaWZ0OgorICAgIGNhc2Ugb3BfbHNo
aWZ0OgorICAgIGNhc2Ugb3BfdXJzaGlmdDoKKyAgICBjYXNlIG9wX2luYzoKKyAgICBjYXNlIG9w
X2RlYzoKKyAgICBjYXNlIG9wX2FkZDoKKyAgICBjYXNlIG9wX3N1YjoKKyAgICBjYXNlIG9wX25l
Z2F0ZToKKyAgICBjYXNlIG9wX211bDoKKyAgICBjYXNlIG9wX21vZDoKKyAgICBjYXNlIG9wX2Rp
djoKKyNpZiBFTkFCTEUoREVCVUdfV0lUSF9CUkVBS1BPSU5UKQorICAgIGNhc2Ugb3BfZGVidWc6
CiAjZW5kaWYKKyAgICBjYXNlIG9wX21vdjoKKyAgICBjYXNlIG9wX2NoZWNrX2hhc19pbnN0YW5j
ZToKKyAgICBjYXNlIG9wX2luc3RhbmNlb2Y6CisgICAgY2FzZSBvcF9pc191bmRlZmluZWQ6Cisg
ICAgY2FzZSBvcF9pc19ib29sZWFuOgorICAgIGNhc2Ugb3BfaXNfbnVtYmVyOgorICAgIGNhc2Ug
b3BfaXNfc3RyaW5nOgorICAgIGNhc2Ugb3BfaXNfb2JqZWN0OgorICAgIGNhc2Ugb3BfaXNfZnVu
Y3Rpb246CisgICAgY2FzZSBvcF9ub3Q6CisgICAgY2FzZSBvcF9sZXNzOgorICAgIGNhc2Ugb3Bf
bGVzc2VxOgorICAgIGNhc2Ugb3BfZ3JlYXRlcjoKKyAgICBjYXNlIG9wX2dyZWF0ZXJlcToKKyAg
ICBjYXNlIG9wX2VxOgorICAgIGNhc2Ugb3BfZXFfbnVsbDoKKyAgICBjYXNlIG9wX3N0cmljdGVx
OgorICAgIGNhc2Ugb3BfbmVxOgorICAgIGNhc2Ugb3BfbmVxX251bGw6CisgICAgY2FzZSBvcF9u
c3RyaWN0ZXE6CisgICAgY2FzZSBvcF9nZXRfYnlfdmFsOgorICAgIGNhc2Ugb3BfcHV0X2J5X3Zh
bDoKKyAgICBjYXNlIG9wX2dldF9ieV9pZDoKKyAgICBjYXNlIG9wX2dldF9ieV9pZF9vdXRfb2Zf
bGluZToKKyAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5ndGg6CisgICAgY2FzZSBvcF9wdXRfYnlf
aWQ6CisgICAgY2FzZSBvcF9wdXRfYnlfaWRfb3V0X29mX2xpbmU6CisgICAgY2FzZSBvcF9wdXRf
YnlfaWRfdHJhbnNpdGlvbl9kaXJlY3Q6CisgICAgY2FzZSBvcF9wdXRfYnlfaWRfdHJhbnNpdGlv
bl9kaXJlY3Rfb3V0X29mX2xpbmU6CisgICAgY2FzZSBvcF9wdXRfYnlfaWRfdHJhbnNpdGlvbl9u
b3JtYWw6CisgICAgY2FzZSBvcF9wdXRfYnlfaWRfdHJhbnNpdGlvbl9ub3JtYWxfb3V0X29mX2xp
bmU6CisgICAgY2FzZSBvcF9pbml0X2dsb2JhbF9jb25zdF9ub3A6CisgICAgY2FzZSBvcF9pbml0
X2dsb2JhbF9jb25zdDoKKyAgICBjYXNlIG9wX2luaXRfZ2xvYmFsX2NvbnN0X2NoZWNrOgorICAg
IGNhc2Ugb3Bfam1wOgorICAgIGNhc2Ugb3BfanRydWU6CisgICAgY2FzZSBvcF9qZmFsc2U6Cisg
ICAgY2FzZSBvcF9qZXFfbnVsbDoKKyAgICBjYXNlIG9wX2puZXFfbnVsbDoKKyAgICBjYXNlIG9w
X2psZXNzOgorICAgIGNhc2Ugb3Bfamxlc3NlcToKKyAgICBjYXNlIG9wX2pncmVhdGVyOgorICAg
IGNhc2Ugb3BfamdyZWF0ZXJlcToKKyAgICBjYXNlIG9wX2pubGVzczoKKyAgICBjYXNlIG9wX2pu
bGVzc2VxOgorICAgIGNhc2Ugb3Bfam5ncmVhdGVyOgorICAgIGNhc2Ugb3Bfam5ncmVhdGVyZXE6
CisgICAgY2FzZSBvcF9sb29wX2hpbnQ6CisgICAgY2FzZSBvcF9yZXQ6CisgICAgY2FzZSBvcF9l
bmQ6CisgICAgY2FzZSBvcF9jYWxsX3B1dF9yZXN1bHQ6CisgICAgY2FzZSBvcF9uZXdfb2JqZWN0
OgorICAgIGNhc2Ugb3BfbmV3X2FycmF5OgorICAgIGNhc2Ugb3BfbmV3X2FycmF5X3dpdGhfc2l6
ZToKKyAgICBjYXNlIG9wX25ld19hcnJheV9idWZmZXI6CisgICAgY2FzZSBvcF9zdHJjYXQ6Cisg
ICAgY2FzZSBvcF90b19wcmltaXRpdmU6CisgICAgY2FzZSBvcF90aHJvdzoKKyAgICBjYXNlIG9w
X3Rocm93X3N0YXRpY19lcnJvcjoKKyAgICBjYXNlIG9wX2NhbGw6CisgICAgY2FzZSBvcF9jb25z
dHJ1Y3Q6CisgICAgY2FzZSBvcF9pbml0X2xhenlfcmVnOgorICAgIGNhc2Ugb3BfY3JlYXRlX2Fy
Z3VtZW50czoKKyAgICBjYXNlIG9wX3RlYXJfb2ZmX2FyZ3VtZW50czoKKyAgICBjYXNlIG9wX2dl
dF9hcmd1bWVudF9ieV92YWw6CisgICAgY2FzZSBvcF9nZXRfYXJndW1lbnRzX2xlbmd0aDoKKyAg
ICBjYXNlIG9wX2puZXFfcHRyOgorICAgIGNhc2Ugb3BfcHV0X3RvX2Jhc2VfdmFyaWFibGU6Cisg
ICAgY2FzZSBvcF9wdXRfdG9fYmFzZToKKyAgICBjYXNlIG9wX3R5cGVvZjoKKyAgICBjYXNlIG9w
X3RvX251bWJlcjoKKyAgICAgICAgcmV0dXJuIENhbkNvbXBpbGVBbmRJbmxpbmU7CisgICAgICAg
IAorICAgIGNhc2Ugb3BfY2FsbF92YXJhcmdzOgorICAgICAgICBpZiAoY29kZUJsb2NrLT51c2Vz
QXJndW1lbnRzKCkgJiYgcGNbM10udS5vcGVyYW5kID09IGNvZGVCbG9jay0+YXJndW1lbnRzUmVn
aXN0ZXIoKSkKKyAgICAgICAgICAgIHJldHVybiBDYW5JbmxpbmU7CisgICAgICAgIHJldHVybiBD
YW5ub3RDb21waWxlOworCisgICAgY2FzZSBvcF9yZXNvbHZlOgorICAgIGNhc2Ugb3BfcmVzb2x2
ZV9nbG9iYWxfcHJvcGVydHk6CisgICAgY2FzZSBvcF9yZXNvbHZlX2dsb2JhbF92YXI6CisgICAg
Y2FzZSBvcF9yZXNvbHZlX3Njb3BlZF92YXI6CisgICAgY2FzZSBvcF9yZXNvbHZlX3Njb3BlZF92
YXJfb25fdG9wX3Njb3BlOgorICAgIGNhc2Ugb3BfcmVzb2x2ZV9zY29wZWRfdmFyX3dpdGhfdG9w
X3Njb3BlX2NoZWNrOgorICAgICAgICBpZiAoY2FuSW5saW5lUmVzb2x2ZU9wZXJhdGlvbnMocGNb
M10udS5yZXNvbHZlT3BlcmF0aW9ucykpCisgICAgICAgICAgICByZXR1cm4gQ2FuQ29tcGlsZUFu
ZElubGluZTsKKyAgICAgICAgcmV0dXJuIENhbkNvbXBpbGU7CisKKyAgICBjYXNlIG9wX2dldF9z
Y29wZWRfdmFyOgorICAgIGNhc2Ugb3BfcHV0X3Njb3BlZF92YXI6CisgICAgICAgIGlmICghY29k
ZUJsb2NrLT5uZWVkc0Z1bGxTY29wZUNoYWluKCkpCisgICAgICAgICAgICByZXR1cm4gQ2FuQ29t
cGlsZUFuZElubGluZTsKKyAgICAgICAgcmV0dXJuIENhbkNvbXBpbGU7CisKKyAgICBjYXNlIG9w
X3Jlc29sdmVfYmFzZV90b19nbG9iYWw6CisgICAgY2FzZSBvcF9yZXNvbHZlX2Jhc2VfdG9fZ2xv
YmFsX2R5bmFtaWM6CisgICAgY2FzZSBvcF9yZXNvbHZlX2Jhc2VfdG9fc2NvcGU6CisgICAgY2Fz
ZSBvcF9yZXNvbHZlX2Jhc2VfdG9fc2NvcGVfd2l0aF90b3Bfc2NvcGVfY2hlY2s6CisgICAgY2Fz
ZSBvcF9yZXNvbHZlX2Jhc2U6CisgICAgY2FzZSBvcF9yZXNvbHZlX3dpdGhfYmFzZToKKyAgICBj
YXNlIG9wX3Jlc29sdmVfd2l0aF90aGlzOgorICAgICAgICBpZiAoY2FuSW5saW5lUmVzb2x2ZU9w
ZXJhdGlvbnMocGNbNF0udS5yZXNvbHZlT3BlcmF0aW9ucykpCisgICAgICAgICAgICByZXR1cm4g
Q2FuQ29tcGlsZUFuZElubGluZTsKKyAgICAgICAgcmV0dXJuIENhbkNvbXBpbGU7CisKKyAgICBj
YXNlIG9wX25ld19yZWdleHA6IAorICAgIGNhc2Ugb3BfY3JlYXRlX2FjdGl2YXRpb246CisgICAg
Y2FzZSBvcF90ZWFyX29mZl9hY3RpdmF0aW9uOgorICAgIGNhc2Ugb3BfbmV3X2Z1bmM6CisgICAg
Y2FzZSBvcF9uZXdfZnVuY19leHA6CisgICAgICAgIHJldHVybiBDYW5Db21waWxlOworCisgICAg
ZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CisgICAgfQogfQogCi10ZW1w
bGF0ZTx0eXBlbmFtZSBSZXR1cm5UeXBlLCBSZXR1cm5UeXBlICgqY2FuSGFuZGxlT3Bjb2RlKShP
cGNvZGVJRCwgQ29kZUJsb2NrKiwgSW5zdHJ1Y3Rpb24qKT4KLVJldHVyblR5cGUgY2FuSGFuZGxl
T3Bjb2RlcyhDb2RlQmxvY2sqIGNvZGVCbG9jaywgUmV0dXJuVHlwZSBpbml0aWFsVmFsdWUpCitD
YXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKENvZGVCbG9jayogY29kZUJsb2NrKQogewog
ICAgIEludGVycHJldGVyKiBpbnRlcnByZXRlciA9IGNvZGVCbG9jay0+dm0oKS0+aW50ZXJwcmV0
ZXI7CiAgICAgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uc0JlZ2luID0gY29kZUJsb2NrLT5pbnN0
cnVjdGlvbnMoKS5iZWdpbigpOwogICAgIHVuc2lnbmVkIGluc3RydWN0aW9uQ291bnQgPSBjb2Rl
QmxvY2stPmluc3RydWN0aW9ucygpLnNpemUoKTsKLSAgICBSZXR1cm5UeXBlIHJlc3VsdCA9IGlu
aXRpYWxWYWx1ZTsKKyAgICBDYXBhYmlsaXR5TGV2ZWwgcmVzdWx0ID0gQ2FuQ29tcGlsZUFuZElu
bGluZTsKICAgICAKICAgICBmb3IgKHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gMDsgYnl0ZWNv
ZGVPZmZzZXQgPCBpbnN0cnVjdGlvbkNvdW50OyApIHsKICAgICAgICAgc3dpdGNoIChpbnRlcnBy
ZXRlci0+Z2V0T3Bjb2RlSUQoaW5zdHJ1Y3Rpb25zQmVnaW5bYnl0ZWNvZGVPZmZzZXRdLnUub3Bj
b2RlKSkgewogI2RlZmluZSBERUZJTkVfT1Aob3Bjb2RlLCBsZW5ndGgpIFwKICAgICAgICAgY2Fz
ZSBvcGNvZGU6IHsgXAotICAgICAgICAgICAgUmV0dXJuVHlwZSBjdXJyZW50ID0gY2FuSGFuZGxl
T3Bjb2RlKCBcCi0gICAgICAgICAgICAgICAgb3Bjb2RlLCBjb2RlQmxvY2ssIGluc3RydWN0aW9u
c0JlZ2luICsgYnl0ZWNvZGVPZmZzZXQpOyBcCi0gICAgICAgICAgICBpZiAoY3VycmVudCA8IHJl
c3VsdCkgeyBcCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gY3VycmVudDsgXAotICAgICAgICAg
ICAgICAgIGRlYnVnRmFpbChjb2RlQmxvY2ssIG9wY29kZSwgY3VycmVudCk7IFwKLSAgICAgICAg
ICAgIH0gXAorICAgICAgICAgICAgcmVzdWx0ID0gbGVhc3RVcHBlckJvdW5kKHJlc3VsdCwgY2Fw
YWJpbGl0eUxldmVsKG9wY29kZSwgY29kZUJsb2NrLCBpbnN0cnVjdGlvbnNCZWdpbiArIGJ5dGVj
b2RlT2Zmc2V0KSk7IFwKKyAgICAgICAgICAgIGRlYnVnRmFpbChjb2RlQmxvY2ssIG9wY29kZSwg
cmVzdWx0KTsgXAogICAgICAgICAgICAgYnl0ZWNvZGVPZmZzZXQgKz0gbGVuZ3RoOyBcCiAgICAg
ICAgICAgICBicmVhazsgXAogICAgICAgICB9CkBAIC0xMjYsMTggKzI3NSw2IEBAIFJldHVyblR5
cGUgY2FuSGFuZGxlT3Bjb2RlcyhDb2RlQmxvY2sqIGMKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1DYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZU9wY29kZXMoQ29kZUJsb2NrKiBjb2RlQmxvY2sp
Ci17Ci0gICAgaWYgKCFNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNGbG9hdGluZ1BvaW50KCkpCi0g
ICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOwotICAgIHJldHVybiBjYW5IYW5kbGVPcGNvZGVz
PENhcGFiaWxpdHlMZXZlbCwgY2FuQ29tcGlsZU9wY29kZT4oY29kZUJsb2NrLCBDYW5Db21waWxl
KTsKLX0KLQotYm9vbCBjYW5JbmxpbmVPcGNvZGVzKENvZGVCbG9jayogY29kZUJsb2NrKQotewot
ICAgIHJldHVybiBjYW5IYW5kbGVPcGNvZGVzPGJvb2wsIGNhbklubGluZU9wY29kZT4oY29kZUJs
b2NrLCB0cnVlKTsKLX0KLQogI2VuZGlmCiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuaAkocmV2aXNp
b24gMTUwNjE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDcsMjE4ICs0Nyw5IEBAIGJvb2wgbWlnaHRJ
bmxpbmVGdW5jdGlvbkZvckNhbGwoQ29kZUJsb2MKIGJvb2wgbWlnaHRJbmxpbmVGdW5jdGlvbkZv
ckNsb3N1cmVDYWxsKENvZGVCbG9jayopOwogYm9vbCBtaWdodElubGluZUZ1bmN0aW9uRm9yQ29u
c3RydWN0KENvZGVCbG9jayopOwogCi0vLyBPcGNvZGUgY2hlY2tpbmcuCi1pbmxpbmUgYm9vbCBj
YW5JbmxpbmVSZXNvbHZlT3BlcmF0aW9ucyhSZXNvbHZlT3BlcmF0aW9ucyogb3BlcmF0aW9ucykK
LXsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgb3BlcmF0aW9ucy0+c2l6ZSgpOyBpKysp
IHsKLSAgICAgICAgc3dpdGNoIChvcGVyYXRpb25zLT5kYXRhKClbaV0ubV9vcGVyYXRpb24pIHsK
LSAgICAgICAgY2FzZSBSZXNvbHZlT3BlcmF0aW9uOjpSZXR1cm5HbG9iYWxPYmplY3RBc0Jhc2U6
Ci0gICAgICAgIGNhc2UgUmVzb2x2ZU9wZXJhdGlvbjo6U2V0QmFzZVRvR2xvYmFsOgotICAgICAg
ICBjYXNlIFJlc29sdmVPcGVyYXRpb246OlNldEJhc2VUb1VuZGVmaW5lZDoKLSAgICAgICAgY2Fz
ZSBSZXNvbHZlT3BlcmF0aW9uOjpHZXRBbmRSZXR1cm5HbG9iYWxQcm9wZXJ0eToKLSAgICAgICAg
Y2FzZSBSZXNvbHZlT3BlcmF0aW9uOjpHZXRBbmRSZXR1cm5HbG9iYWxWYXI6Ci0gICAgICAgIGNh
c2UgUmVzb2x2ZU9wZXJhdGlvbjo6R2V0QW5kUmV0dXJuR2xvYmFsVmFyV2F0Y2hhYmxlOgotICAg
ICAgICBjYXNlIFJlc29sdmVPcGVyYXRpb246OlNraXBTY29wZXM6Ci0gICAgICAgIGNhc2UgUmVz
b2x2ZU9wZXJhdGlvbjo6U2V0QmFzZVRvU2NvcGU6Ci0gICAgICAgIGNhc2UgUmVzb2x2ZU9wZXJh
dGlvbjo6UmV0dXJuU2NvcGVBc0Jhc2U6Ci0gICAgICAgIGNhc2UgUmVzb2x2ZU9wZXJhdGlvbjo6
R2V0QW5kUmV0dXJuU2NvcGVkVmFyOgotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAg
Y2FzZSBSZXNvbHZlT3BlcmF0aW9uOjpGYWlsOgotICAgICAgICAgICAgLy8gRmFsbC1iYWNrIHJl
c29sdmVzIGRvbid0IGtub3cgaG93IHRvIGRlYWwgd2l0aCB0aGUgRXhlY1N0YXRlKiBoYXZpbmcg
YSBkaWZmZXJlbnQKLSAgICAgICAgICAgIC8vIGdsb2JhbCBvYmplY3QgKGFuZCBzY29wZSkgdGhh
biB0aGUgaW5saW5lZCBjb2RlIHRoYXQgaXMgaW52b2tpbmcgdGhhdCByZXNvbHZlLgotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIGNhc2UgUmVzb2x2ZU9wZXJhdGlvbjo6U2tp
cFRvcFNjb3BlTm9kZToKLSAgICAgICAgICAgIC8vIFdlIGRvbid0IGlubGluZSBjb2RlIGJsb2Nr
cyB0aGF0IGNyZWF0ZSBhY3RpdmF0aW9ucy4gQ3JlYXRpb24gb2YKLSAgICAgICAgICAgIC8vIGFj
dGl2YXRpb25zIGlzIHRoZSBvbmx5IHRoaW5nIHRoYXQgbGVhZHMgdG8gU2tpcFRvcFNjb3BlTm9k
ZS4KLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBjYXNlIFJlc29sdmVPcGVy
YXRpb246OkNoZWNrRm9yRHluYW1pY0VudHJpZXNCZWZvcmVHbG9iYWxTY29wZToKLSAgICAgICAg
ICAgIC8vIFRoaXMgd291bGQgYmUgZWFzeSB0byBzdXBwb3J0IGluIGFsbCBjYXNlcy4KLSAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsK
LX0KLQotaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlT3Bjb2RlKE9wY29kZUlEIG9w
Y29kZUlELCBDb2RlQmxvY2sqLCBJbnN0cnVjdGlvbiopCi17Ci0gICAgc3dpdGNoIChvcGNvZGVJ
RCkgewotICAgIGNhc2Ugb3BfZW50ZXI6Ci0gICAgY2FzZSBvcF90b190aGlzOgotICAgIGNhc2Ug
b3BfY3JlYXRlX3RoaXM6Ci0gICAgY2FzZSBvcF9nZXRfY2FsbGVlOgotICAgIGNhc2Ugb3BfYml0
YW5kOgotICAgIGNhc2Ugb3BfYml0b3I6Ci0gICAgY2FzZSBvcF9iaXR4b3I6Ci0gICAgY2FzZSBv
cF9yc2hpZnQ6Ci0gICAgY2FzZSBvcF9sc2hpZnQ6Ci0gICAgY2FzZSBvcF91cnNoaWZ0OgotICAg
IGNhc2Ugb3BfaW5jOgotICAgIGNhc2Ugb3BfZGVjOgotICAgIGNhc2Ugb3BfYWRkOgotICAgIGNh
c2Ugb3Bfc3ViOgotICAgIGNhc2Ugb3BfbmVnYXRlOgotICAgIGNhc2Ugb3BfbXVsOgotICAgIGNh
c2Ugb3BfbW9kOgotICAgIGNhc2Ugb3BfZGl2OgotI2lmIEVOQUJMRShERUJVR19XSVRIX0JSRUFL
UE9JTlQpCi0gICAgY2FzZSBvcF9kZWJ1ZzoKLSNlbmRpZgotICAgIGNhc2Ugb3BfbW92OgotICAg
IGNhc2Ugb3BfY2hlY2tfaGFzX2luc3RhbmNlOgotICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjoKLSAg
ICBjYXNlIG9wX2lzX3VuZGVmaW5lZDoKLSAgICBjYXNlIG9wX2lzX2Jvb2xlYW46Ci0gICAgY2Fz
ZSBvcF9pc19udW1iZXI6Ci0gICAgY2FzZSBvcF9pc19zdHJpbmc6Ci0gICAgY2FzZSBvcF9pc19v
YmplY3Q6Ci0gICAgY2FzZSBvcF9pc19mdW5jdGlvbjoKLSAgICBjYXNlIG9wX25vdDoKLSAgICBj
YXNlIG9wX2xlc3M6Ci0gICAgY2FzZSBvcF9sZXNzZXE6Ci0gICAgY2FzZSBvcF9ncmVhdGVyOgot
ICAgIGNhc2Ugb3BfZ3JlYXRlcmVxOgotICAgIGNhc2Ugb3BfZXE6Ci0gICAgY2FzZSBvcF9lcV9u
dWxsOgotICAgIGNhc2Ugb3Bfc3RyaWN0ZXE6Ci0gICAgY2FzZSBvcF9uZXE6Ci0gICAgY2FzZSBv
cF9uZXFfbnVsbDoKLSAgICBjYXNlIG9wX25zdHJpY3RlcToKLSAgICBjYXNlIG9wX2dldF9ieV92
YWw6Ci0gICAgY2FzZSBvcF9wdXRfYnlfdmFsOgotICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOgotICAg
IGNhc2Ugb3BfZ2V0X2J5X2lkX291dF9vZl9saW5lOgotICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xl
bmd0aDoKLSAgICBjYXNlIG9wX3B1dF9ieV9pZDoKLSAgICBjYXNlIG9wX3B1dF9ieV9pZF9vdXRf
b2ZfbGluZToKLSAgICBjYXNlIG9wX3B1dF9ieV9pZF90cmFuc2l0aW9uX2RpcmVjdDoKLSAgICBj
YXNlIG9wX3B1dF9ieV9pZF90cmFuc2l0aW9uX2RpcmVjdF9vdXRfb2ZfbGluZToKLSAgICBjYXNl
IG9wX3B1dF9ieV9pZF90cmFuc2l0aW9uX25vcm1hbDoKLSAgICBjYXNlIG9wX3B1dF9ieV9pZF90
cmFuc2l0aW9uX25vcm1hbF9vdXRfb2ZfbGluZToKLSAgICBjYXNlIG9wX2luaXRfZ2xvYmFsX2Nv
bnN0X25vcDoKLSAgICBjYXNlIG9wX2luaXRfZ2xvYmFsX2NvbnN0OgotICAgIGNhc2Ugb3BfaW5p
dF9nbG9iYWxfY29uc3RfY2hlY2s6Ci0gICAgY2FzZSBvcF9qbXA6Ci0gICAgY2FzZSBvcF9qdHJ1
ZToKLSAgICBjYXNlIG9wX2pmYWxzZToKLSAgICBjYXNlIG9wX2plcV9udWxsOgotICAgIGNhc2Ug
b3Bfam5lcV9udWxsOgotICAgIGNhc2Ugb3Bfamxlc3M6Ci0gICAgY2FzZSBvcF9qbGVzc2VxOgot
ICAgIGNhc2Ugb3BfamdyZWF0ZXI6Ci0gICAgY2FzZSBvcF9qZ3JlYXRlcmVxOgotICAgIGNhc2Ug
b3Bfam5sZXNzOgotICAgIGNhc2Ugb3Bfam5sZXNzZXE6Ci0gICAgY2FzZSBvcF9qbmdyZWF0ZXI6
Ci0gICAgY2FzZSBvcF9qbmdyZWF0ZXJlcToKLSAgICBjYXNlIG9wX2xvb3BfaGludDoKLSAgICBj
YXNlIG9wX3JldDoKLSAgICBjYXNlIG9wX2VuZDoKLSAgICBjYXNlIG9wX2NhbGxfcHV0X3Jlc3Vs
dDoKLSAgICBjYXNlIG9wX25ld19vYmplY3Q6Ci0gICAgY2FzZSBvcF9uZXdfYXJyYXk6Ci0gICAg
Y2FzZSBvcF9uZXdfYXJyYXlfd2l0aF9zaXplOgotICAgIGNhc2Ugb3BfbmV3X2FycmF5X2J1ZmZl
cjoKLSAgICBjYXNlIG9wX3N0cmNhdDoKLSAgICBjYXNlIG9wX3RvX3ByaW1pdGl2ZToKLSAgICBj
YXNlIG9wX3Rocm93OgotICAgIGNhc2Ugb3BfdGhyb3dfc3RhdGljX2Vycm9yOgotICAgIGNhc2Ug
b3BfY2FsbDoKLSAgICBjYXNlIG9wX2NvbnN0cnVjdDoKLSAgICBjYXNlIG9wX25ld19yZWdleHA6
IAotICAgIGNhc2Ugb3BfaW5pdF9sYXp5X3JlZzoKLSAgICBjYXNlIG9wX2NyZWF0ZV9hY3RpdmF0
aW9uOgotICAgIGNhc2Ugb3BfdGVhcl9vZmZfYWN0aXZhdGlvbjoKLSAgICBjYXNlIG9wX2NyZWF0
ZV9hcmd1bWVudHM6Ci0gICAgY2FzZSBvcF90ZWFyX29mZl9hcmd1bWVudHM6Ci0gICAgY2FzZSBv
cF9uZXdfZnVuYzoKLSAgICBjYXNlIG9wX25ld19mdW5jX2V4cDoKLSAgICBjYXNlIG9wX2dldF9h
cmd1bWVudF9ieV92YWw6Ci0gICAgY2FzZSBvcF9nZXRfYXJndW1lbnRzX2xlbmd0aDoKLSAgICBj
YXNlIG9wX2puZXFfcHRyOgotICAgIGNhc2Ugb3BfcHV0X3RvX2Jhc2VfdmFyaWFibGU6Ci0gICAg
Y2FzZSBvcF9wdXRfdG9fYmFzZToKLSAgICBjYXNlIG9wX3R5cGVvZjoKLSAgICBjYXNlIG9wX3Rv
X251bWJlcjoKLSAgICAgICAgcmV0dXJuIENhbkNvbXBpbGU7Ci0gICAgICAgIAotICAgIGNhc2Ug
b3BfY2FsbF92YXJhcmdzOgotICAgICAgICByZXR1cm4gTWF5SW5saW5lOwotCi0gICAgY2FzZSBv
cF9yZXNvbHZlOgotICAgIGNhc2Ugb3BfcmVzb2x2ZV9nbG9iYWxfcHJvcGVydHk6Ci0gICAgY2Fz
ZSBvcF9yZXNvbHZlX2dsb2JhbF92YXI6Ci0gICAgY2FzZSBvcF9yZXNvbHZlX3Njb3BlZF92YXI6
Ci0gICAgY2FzZSBvcF9yZXNvbHZlX3Njb3BlZF92YXJfb25fdG9wX3Njb3BlOgotICAgIGNhc2Ug
b3BfcmVzb2x2ZV9zY29wZWRfdmFyX3dpdGhfdG9wX3Njb3BlX2NoZWNrOgotICAgICAgICByZXR1
cm4gQ2FuQ29tcGlsZTsKLQotICAgIGNhc2Ugb3BfZ2V0X3Njb3BlZF92YXI6Ci0gICAgY2FzZSBv
cF9wdXRfc2NvcGVkX3ZhcjoKLSAgICAgICAgcmV0dXJuIENhbkNvbXBpbGU7Ci0KLSAgICBjYXNl
IG9wX3Jlc29sdmVfYmFzZV90b19nbG9iYWw6Ci0gICAgY2FzZSBvcF9yZXNvbHZlX2Jhc2VfdG9f
Z2xvYmFsX2R5bmFtaWM6Ci0gICAgY2FzZSBvcF9yZXNvbHZlX2Jhc2VfdG9fc2NvcGU6Ci0gICAg
Y2FzZSBvcF9yZXNvbHZlX2Jhc2VfdG9fc2NvcGVfd2l0aF90b3Bfc2NvcGVfY2hlY2s6Ci0gICAg
Y2FzZSBvcF9yZXNvbHZlX2Jhc2U6Ci0gICAgY2FzZSBvcF9yZXNvbHZlX3dpdGhfYmFzZToKLSAg
ICBjYXNlIG9wX3Jlc29sdmVfd2l0aF90aGlzOgotICAgICAgICByZXR1cm4gQ2FuQ29tcGlsZTsK
LQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOwotICAgIH0KLX0K
LQotaW5saW5lIGJvb2wgY2FuSW5saW5lT3Bjb2RlKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxv
Y2sqIGNvZGVCbG9jaywgSW5zdHJ1Y3Rpb24qIHBjKQotewotICAgIHN3aXRjaCAob3Bjb2RlSUQp
IHsKLSAgICBjYXNlIG9wX3Jlc29sdmU6Ci0gICAgY2FzZSBvcF9yZXNvbHZlX2dsb2JhbF9wcm9w
ZXJ0eToKLSAgICBjYXNlIG9wX3Jlc29sdmVfZ2xvYmFsX3ZhcjoKLSAgICBjYXNlIG9wX3Jlc29s
dmVfc2NvcGVkX3ZhcjoKLSAgICBjYXNlIG9wX3Jlc29sdmVfc2NvcGVkX3Zhcl9vbl90b3Bfc2Nv
cGU6Ci0gICAgY2FzZSBvcF9yZXNvbHZlX3Njb3BlZF92YXJfd2l0aF90b3Bfc2NvcGVfY2hlY2s6
Ci0gICAgICAgIHJldHVybiBjYW5JbmxpbmVSZXNvbHZlT3BlcmF0aW9ucyhwY1szXS51LnJlc29s
dmVPcGVyYXRpb25zKTsKLQotICAgIGNhc2Ugb3BfcmVzb2x2ZV9iYXNlX3RvX2dsb2JhbDoKLSAg
ICBjYXNlIG9wX3Jlc29sdmVfYmFzZV90b19nbG9iYWxfZHluYW1pYzoKLSAgICBjYXNlIG9wX3Jl
c29sdmVfYmFzZV90b19zY29wZToKLSAgICBjYXNlIG9wX3Jlc29sdmVfYmFzZV90b19zY29wZV93
aXRoX3RvcF9zY29wZV9jaGVjazoKLSAgICBjYXNlIG9wX3Jlc29sdmVfYmFzZToKLSAgICBjYXNl
IG9wX3Jlc29sdmVfd2l0aF9iYXNlOgotICAgIGNhc2Ugb3BfcmVzb2x2ZV93aXRoX3RoaXM6Ci0g
ICAgICAgIHJldHVybiBjYW5JbmxpbmVSZXNvbHZlT3BlcmF0aW9ucyhwY1s0XS51LnJlc29sdmVP
cGVyYXRpb25zKTsKLQotICAgIGNhc2Ugb3BfZ2V0X3Njb3BlZF92YXI6Ci0gICAgY2FzZSBvcF9w
dXRfc2NvcGVkX3ZhcjoKLSAgICAgICAgcmV0dXJuICFjb2RlQmxvY2stPm5lZWRzRnVsbFNjb3Bl
Q2hhaW4oKTsKLQotICAgIC8vIElubGluaW5nIGRvZXNuJ3QgY29ycmVjdGx5IHJlbWFwIHJlZ3Vs
YXIgZXhwcmVzc2lvbiBvcGVyYW5kcy4KLSAgICBjYXNlIG9wX25ld19yZWdleHA6Ci0gICAgICAg
IAotICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgaW5saW5pbmcgY29kZSB0aGF0IGNyZWF0ZXMgYWN0
aXZhdGlvbnMgb3IgaGFzIG5lc3RlZCBmdW5jdGlvbnMuCi0gICAgY2FzZSBvcF9jcmVhdGVfYWN0
aXZhdGlvbjoKLSAgICBjYXNlIG9wX3RlYXJfb2ZmX2FjdGl2YXRpb246Ci0gICAgY2FzZSBvcF9u
ZXdfZnVuYzoKLSAgICBjYXNlIG9wX25ld19mdW5jX2V4cDoKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAKLSAgICAvLyBJbmxpbmluZyBzdXBwb3J0cyBvcF9jYWxsX3ZhcmFyZ3MgaWYg
aXQncyBhIGNhbGwgdGhhdCBqdXN0IGZvcndhcmRzIHRoZSBjYWxsZXIncwotICAgIC8vIGFyZ3Vt
ZW50cy4KLSAgICBjYXNlIG9wX2NhbGxfdmFyYXJnczoKLSAgICAgICAgcmV0dXJuIGNvZGVCbG9j
ay0+dXNlc0FyZ3VtZW50cygpICYmIHBjWzNdLnUub3BlcmFuZCA9PSBjb2RlQmxvY2stPmFyZ3Vt
ZW50c1JlZ2lzdGVyKCk7Ci0gICAgICAgIAotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBj
YW5Db21waWxlT3Bjb2RlKG9wY29kZUlELCBjb2RlQmxvY2ssIHBjKSA9PSBDYW5Db21waWxlOwot
ICAgIH0KLX0KK2lubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlE
IG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1Y3Rpb24qIHBjKTsKIAotQ2Fw
YWJpbGl0eUxldmVsIGNhbkNvbXBpbGVPcGNvZGVzKENvZGVCbG9jayopOwotYm9vbCBjYW5Jbmxp
bmVPcGNvZGVzKENvZGVCbG9jayopOworQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChD
b2RlQmxvY2sqKTsKICNlbHNlIC8vIEVOQUJMRShERkdfSklUKQogaW5saW5lIGJvb2wgbWlnaHRD
b21waWxlRXZhbChDb2RlQmxvY2sqKSB7IHJldHVybiBmYWxzZTsgfQogaW5saW5lIGJvb2wgbWln
aHRDb21waWxlUHJvZ3JhbShDb2RlQmxvY2sqKSB7IHJldHVybiBmYWxzZTsgfQpAQCAtMjY4LDU3
ICs1OSw1NSBAQCBpbmxpbmUgYm9vbCBtaWdodElubGluZUZ1bmN0aW9uRm9yQ2FsbChDCiBpbmxp
bmUgYm9vbCBtaWdodElubGluZUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGwoQ29kZUJsb2NrKikgeyBy
ZXR1cm4gZmFsc2U7IH0KIGlubGluZSBib29sIG1pZ2h0SW5saW5lRnVuY3Rpb25Gb3JDb25zdHJ1
Y3QoQ29kZUJsb2NrKikgeyByZXR1cm4gZmFsc2U7IH0KIAotaW5saW5lIENhcGFiaWxpdHlMZXZl
bCBjYW5Db21waWxlT3Bjb2RlKE9wY29kZUlELCBDb2RlQmxvY2sqLCBJbnN0cnVjdGlvbiopIHsg
cmV0dXJuIENhbm5vdENvbXBpbGU7IH0KLWlubGluZSBib29sIGNhbklubGluZU9wY29kZShPcGNv
ZGVJRCwgQ29kZUJsb2NrKiwgSW5zdHJ1Y3Rpb24qKSB7IHJldHVybiBmYWxzZTsgfQotaW5saW5l
IENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlT3Bjb2RlcyhDb2RlQmxvY2sqKSB7IHJldHVybiBD
YW5ub3RDb21waWxlOyB9Ci1pbmxpbmUgYm9vbCBjYW5JbmxpbmVPcGNvZGVzKENvZGVCbG9jayop
IHsgcmV0dXJuIGZhbHNlOyB9CitpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZl
bChPcGNvZGVJRCwgQ29kZUJsb2NrKiwgSW5zdHJ1Y3Rpb24qKSB7IHJldHVybiBDYW5ub3RDb21w
aWxlOyB9CitpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sq
KSB7IHJldHVybiBDYW5ub3RDb21waWxlOyB9CiAjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCiAK
LWlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZUV2YWwoQ29kZUJsb2NrKiBjb2RlQmxv
Y2spCitpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGV2YWxDYXBhYmlsaXR5TGV2ZWwoQ29kZUJsb2Nr
KiBjb2RlQmxvY2spCiB7CiAgICAgaWYgKCFtaWdodENvbXBpbGVFdmFsKGNvZGVCbG9jaykpCiAg
ICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOwogICAgIAotICAgIHJldHVybiBjYW5Db21waWxl
T3Bjb2Rlcyhjb2RlQmxvY2spOworICAgIHJldHVybiBjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2Nr
KTsKIH0KIAotaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlUHJvZ3JhbShDb2RlQmxv
Y2sqIGNvZGVCbG9jaykKK2lubGluZSBDYXBhYmlsaXR5TGV2ZWwgcHJvZ3JhbUNhcGFiaWxpdHlM
ZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKICAgICBpZiAoIW1pZ2h0Q29tcGlsZVByb2dy
YW0oY29kZUJsb2NrKSkKICAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CiAgICAgCi0gICAg
cmV0dXJuIGNhbkNvbXBpbGVPcGNvZGVzKGNvZGVCbG9jayk7CisgICAgcmV0dXJuIGNhcGFiaWxp
dHlMZXZlbChjb2RlQmxvY2spOwogfQogCi1pbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBp
bGVGdW5jdGlvbkZvckNhbGwoQ29kZUJsb2NrKiBjb2RlQmxvY2spCitpbmxpbmUgQ2FwYWJpbGl0
eUxldmVsIGZ1bmN0aW9uRm9yQ2FsbENhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9j
aykKIHsKICAgICBpZiAoIW1pZ2h0Q29tcGlsZUZ1bmN0aW9uRm9yQ2FsbChjb2RlQmxvY2spKQog
ICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKICAgICAKLSAgICByZXR1cm4gY2FuQ29tcGls
ZU9wY29kZXMoY29kZUJsb2NrKTsKKyAgICByZXR1cm4gY2FwYWJpbGl0eUxldmVsKGNvZGVCbG9j
ayk7CiB9CiAKLWlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZUZ1bmN0aW9uRm9yQ29u
c3RydWN0KENvZGVCbG9jayogY29kZUJsb2NrKQoraW5saW5lIENhcGFiaWxpdHlMZXZlbCBmdW5j
dGlvbkZvckNvbnN0cnVjdENhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsK
ICAgICBpZiAoIW1pZ2h0Q29tcGlsZUZ1bmN0aW9uRm9yQ29uc3RydWN0KGNvZGVCbG9jaykpCiAg
ICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOwogICAgIAotICAgIHJldHVybiBjYW5Db21waWxl
T3Bjb2Rlcyhjb2RlQmxvY2spOworICAgIHJldHVybiBjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2Nr
KTsKIH0KIAogaW5saW5lIGJvb2wgY2FuSW5saW5lRnVuY3Rpb25Gb3JDYWxsKENvZGVCbG9jayog
Y29kZUJsb2NrKQogewotICAgIHJldHVybiBtaWdodElubGluZUZ1bmN0aW9uRm9yQ2FsbChjb2Rl
QmxvY2spICYmIGNhbklubGluZU9wY29kZXMoY29kZUJsb2NrKTsKKyAgICByZXR1cm4gbWlnaHRJ
bmxpbmVGdW5jdGlvbkZvckNhbGwoY29kZUJsb2NrKSAmJiBjYW5JbmxpbmUoY2FwYWJpbGl0eUxl
dmVsKGNvZGVCbG9jaykpOwogfQogCiBpbmxpbmUgYm9vbCBjYW5JbmxpbmVGdW5jdGlvbkZvckNs
b3N1cmVDYWxsKENvZGVCbG9jayogY29kZUJsb2NrKQogewotICAgIHJldHVybiBtaWdodElubGlu
ZUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGwoY29kZUJsb2NrKSAmJiBjYW5JbmxpbmVPcGNvZGVzKGNv
ZGVCbG9jayk7CisgICAgcmV0dXJuIG1pZ2h0SW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbChj
b2RlQmxvY2spICYmIGNhbklubGluZShjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKSk7CiB9CiAK
IGlubGluZSBib29sIGNhbklubGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0KENvZGVCbG9jayogY29k
ZUJsb2NrKQogewotICAgIHJldHVybiBtaWdodElubGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0KGNv
ZGVCbG9jaykgJiYgY2FuSW5saW5lT3Bjb2Rlcyhjb2RlQmxvY2spOworICAgIHJldHVybiBtaWdo
dElubGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0KGNvZGVCbG9jaykgJiYgY2FuSW5saW5lKGNhcGFi
aWxpdHlMZXZlbChjb2RlQmxvY2spKTsKIH0KIAogaW5saW5lIGJvb2wgbWlnaHRJbmxpbmVGdW5j
dGlvbkZvcihDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5k
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5oCShyZXZpc2lvbiAxNTA2
MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNzksNyArMjc5LDYwIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsK
IAogLy8gUHV0IHRoaW5ncyBoZXJlIHRoYXQgbXVzdCBiZSBkZWZpbmVkIGV2ZW4gaWYgRU5BQkxF
KERGR19KSVQpIGlzIGZhbHNlLgogCi1lbnVtIENhcGFiaWxpdHlMZXZlbCB7IENhbm5vdENvbXBp
bGUsIE1heUlubGluZSwgQ2FuQ29tcGlsZSwgQ2FwYWJpbGl0eUxldmVsTm90U2V0IH07CitlbnVt
IENhcGFiaWxpdHlMZXZlbCB7IENhbm5vdENvbXBpbGUsIENhbklubGluZSwgQ2FuQ29tcGlsZSwg
Q2FuQ29tcGlsZUFuZElubGluZSwgQ2FwYWJpbGl0eUxldmVsTm90U2V0IH07CisKK2lubGluZSBi
b29sIGNhbkNvbXBpbGUoQ2FwYWJpbGl0eUxldmVsIGxldmVsKQoreworICAgIHN3aXRjaCAobGV2
ZWwpIHsKKyAgICBjYXNlIENhbkNvbXBpbGU6CisgICAgY2FzZSBDYW5Db21waWxlQW5kSW5saW5l
OgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorfQorCitpbmxpbmUgYm9vbCBjYW5JbmxpbmUoQ2FwYWJpbGl0eUxldmVsIGxl
dmVsKQoreworICAgIHN3aXRjaCAobGV2ZWwpIHsKKyAgICBjYXNlIENhbklubGluZToKKyAgICBj
YXNlIENhbkNvbXBpbGVBbmRJbmxpbmU6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1
bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK2lubGluZSBDYXBhYmlsaXR5
TGV2ZWwgbGVhc3RVcHBlckJvdW5kKENhcGFiaWxpdHlMZXZlbCBhLCBDYXBhYmlsaXR5TGV2ZWwg
YikKK3sKKyAgICBzd2l0Y2ggKGEpIHsKKyAgICBjYXNlIENhbm5vdENvbXBpbGU6CisgICAgICAg
IHJldHVybiBDYW5ub3RDb21waWxlOworICAgIGNhc2UgQ2FuSW5saW5lOgorICAgICAgICBzd2l0
Y2ggKGIpIHsKKyAgICAgICAgY2FzZSBDYW5JbmxpbmU6CisgICAgICAgIGNhc2UgQ2FuQ29tcGls
ZUFuZElubGluZToKKyAgICAgICAgICAgIHJldHVybiBDYW5JbmxpbmU7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKKyAgICAgICAgfQorICAgIGNh
c2UgQ2FuQ29tcGlsZToKKyAgICAgICAgc3dpdGNoIChiKSB7CisgICAgICAgIGNhc2UgQ2FuQ29t
cGlsZToKKyAgICAgICAgY2FzZSBDYW5Db21waWxlQW5kSW5saW5lOgorICAgICAgICAgICAgcmV0
dXJuIENhbkNvbXBpbGU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gQ2Fu
bm90Q29tcGlsZTsKKyAgICAgICAgfQorICAgIGNhc2UgQ2FuQ29tcGlsZUFuZElubGluZToKKyAg
ICAgICAgcmV0dXJuIGI7CisgICAgY2FzZSBDYXBhYmlsaXR5TGV2ZWxOb3RTZXQ6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKKyAg
ICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7
Cit9CiAKIC8vIFVuY29uZGl0aW9uYWxseSBkaXNhYmxlIERGRyBkaXNhc3NlbWJseSBzdXBwb3J0
IGlmIHRoZSBERkcgaXMgbm90IGNvbXBpbGVkIGluLgogaW5saW5lIGJvb2wgc2hvdWxkU2hvd0Rp
c2Fzc2VtYmx5KCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAJ
KHJldmlzaW9uIDE1MDYxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgQ29tcGlsYXRpb25S
ZXN1bHQgY29tcGlsZShDb21waWxlCiAgICAgCiAgICAgQVNTRVJUKG9zckVudHJ5Qnl0ZWNvZGVJ
bmRleCAhPSBVSU5UX01BWCk7CiAKLSAgICBpZiAoIU9wdGlvbnM6OnVzZURGR0pJVCgpKQorICAg
IGlmICghT3B0aW9uczo6dXNlREZHSklUKCkgfHwgIU1hY3JvQXNzZW1ibGVyOjpzdXBwb3J0c0Zs
b2F0aW5nUG9pbnQoKSkKICAgICAgICAgcmV0dXJuIENvbXBpbGF0aW9uRmFpbGVkOwogICAgIAog
ICAgIGlmIChsb2dDb21waWxhdGlvbkNoYW5nZXMoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5jcHAJKHJldmlzaW9uIDE1MDYxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAyLDE4ICs2MDIsMjAgQEAgQUxXQVlTX0lOTElO
RSB2b2lkIFByb3BlcnR5U3R1YkNvbXBpbGF0aQogUGFzc1JlZlB0cjxKSVRDb2RlPiBKSVQ6OnBy
aXZhdGVDb21waWxlKENvZGVQdHIqIGZ1bmN0aW9uRW50cnlBcml0eUNoZWNrLCBKSVRDb21waWxh
dGlvbkVmZm9ydCBlZmZvcnQpCiB7CiAjaWYgRU5BQkxFKFZBTFVFX1BST0ZJTEVSKQotICAgIERG
Rzo6Q2FwYWJpbGl0eUxldmVsIGxldmVsID0gbV9jb2RlQmxvY2stPmNhbkNvbXBpbGVXaXRoREZH
KCk7CisgICAgREZHOjpDYXBhYmlsaXR5TGV2ZWwgbGV2ZWwgPSBtX2NvZGVCbG9jay0+Y2FwYWJp
bGl0eUxldmVsKCk7CiAgICAgc3dpdGNoIChsZXZlbCkgewogICAgIGNhc2UgREZHOjpDYW5ub3RD
b21waWxlOgogICAgICAgICBtX2NhbkJlT3B0aW1pemVkID0gZmFsc2U7CisgICAgICAgIG1fY2Fu
QmVPcHRpbWl6ZWRPcklubGluZWQgPSBmYWxzZTsKICAgICAgICAgbV9zaG91bGRFbWl0UHJvZmls
aW5nID0gZmFsc2U7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgREZHOjpNYXlJbmxpbmU6Cisg
ICAgY2FzZSBERkc6OkNhbklubGluZToKICAgICAgICAgbV9jYW5CZU9wdGltaXplZCA9IGZhbHNl
OwogICAgICAgICBtX2NhbkJlT3B0aW1pemVkT3JJbmxpbmVkID0gdHJ1ZTsKICAgICAgICAgbV9z
aG91bGRFbWl0UHJvZmlsaW5nID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBERkc6
OkNhbkNvbXBpbGU6CisgICAgY2FzZSBERkc6OkNhbkNvbXBpbGVBbmRJbmxpbmU6CiAgICAgICAg
IG1fY2FuQmVPcHRpbWl6ZWQgPSB0cnVlOwogICAgICAgICBtX2NhbkJlT3B0aW1pemVkT3JJbmxp
bmVkID0gdHJ1ZTsKICAgICAgICAgbV9zaG91bGRFbWl0UHJvZmlsaW5nID0gdHJ1ZTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMy
XzY0LmNwcAkocmV2aXNpb24gMTUwNjE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQ4LDcgKzY0OCw3
IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVB1dEJ5SWRUcmFuc2l0aW8KICAgICAvLyBJZiB3
ZSBzdWNjZWVkIGluIGFsbCBvZiBvdXIgY2hlY2tzLCBhbmQgdGhlIGNvZGUgd2FzIG9wdGltaXph
YmxlLCB0aGVuIG1ha2Ugc3VyZSB3ZQogICAgIC8vIGRlY3JlbWVudCB0aGUgcmFyZSBjYXNlIGNv
dW50ZXIuCiAjaWYgRU5BQkxFKFZBTFVFX1BST0ZJTEVSKQotICAgIGlmIChtX2NvZGVCbG9jay0+
Y2FuQ29tcGlsZVdpdGhERkcoKSA+PSBERkc6Ok1heUlubGluZSkgeworICAgIGlmIChtX2NvZGVC
bG9jay0+Y2FwYWJpbGl0eUxldmVsU3RhdGUoKSAhPSBERkc6OkNhbm5vdENvbXBpbGUpIHsKICAg
ICAgICAgc3ViMzIoCiAgICAgICAgICAgICBUcnVzdGVkSW1tMzIoMSksCiAgICAgICAgICAgICBB
YnNvbHV0ZUFkZHJlc3MoJm1fY29kZUJsb2NrLT5yYXJlQ2FzZVByb2ZpbGVGb3JCeXRlY29kZU9m
ZnNldChzdHViSW5mby0+Ynl0ZWNvZGVJbmRleCktPm1fY291bnRlcikpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAJKHJldmlzaW9u
IDE1MDYxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MDUsNyArNzA1LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVD
b21waWxlUHV0QnlJZFRyYW5zaXRpbwogICAgIC8vIElmIHdlIHN1Y2NlZWQgaW4gYWxsIG9mIG91
ciBjaGVja3MsIGFuZCB0aGUgY29kZSB3YXMgb3B0aW1pemFibGUsIHRoZW4gbWFrZSBzdXJlIHdl
CiAgICAgLy8gZGVjcmVtZW50IHRoZSByYXJlIGNhc2UgY291bnRlci4KICNpZiBFTkFCTEUoVkFM
VUVfUFJPRklMRVIpCi0gICAgaWYgKG1fY29kZUJsb2NrLT5jYW5Db21waWxlV2l0aERGRygpID49
IERGRzo6TWF5SW5saW5lKSB7CisgICAgaWYgKG1fY29kZUJsb2NrLT5jYXBhYmlsaXR5TGV2ZWxT
dGF0ZSgpICE9IERGRzo6Q2Fubm90Q29tcGlsZSkgewogICAgICAgICBzdWIzMigKICAgICAgICAg
ICAgIFRydXN0ZWRJbW0zMigxKSwKICAgICAgICAgICAgIEFic29sdXRlQWRkcmVzcygmbV9jb2Rl
QmxvY2stPnJhcmVDYXNlUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KHN0dWJJbmZvLT5ieXRlY29k
ZUluZGV4KS0+bV9jb3VudGVyKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMv
Q29kZVByb2ZpbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29s
cy9Db2RlUHJvZmlsZS5jcHAJKHJldmlzaW9uIDE1MDYxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90b29scy9Db2RlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw3ICsxMDcs
NyBAQCB2b2lkIENvZGVQcm9maWxlOjpzYW1wbGUodm9pZCogcGMsIHZvaWQqCiAgICAgICAgICAg
ICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IHN0YXRpY19jYXN0PENvZGVCbG9jayo+KG93bmVyVUlE
KTsKICAgICAgICAgICAgIGlmIChjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpERkdK
SVQpCiAgICAgICAgICAgICAgICAgdHlwZSA9IERGR0pJVDsKLSAgICAgICAgICAgIGVsc2UgaWYg
KGNvZGVCbG9jay0+Y2FuQ29tcGlsZVdpdGhERkdTdGF0ZSgpICE9IERGRzo6Q2FuQ29tcGlsZSkK
KyAgICAgICAgICAgIGVsc2UgaWYgKCFjYW5Db21waWxlKGNvZGVCbG9jay0+Y2FwYWJpbGl0eUxl
dmVsU3RhdGUoKSkpCiAgICAgICAgICAgICAgICAgdHlwZSA9IEJhc2VsaW5lT25seTsKICAgICAg
ICAgICAgIGVsc2UgaWYgKGNvZGVCbG9jay0+cmVwbGFjZW1lbnQoKSkKICAgICAgICAgICAgICAg
ICB0eXBlID0gQmFzZWxpbmVPU1I7Cg==
</data>
<flag name="review"
          id="224139"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>