<?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>63866</bug_id>
          
          <creation_ts>2011-07-02 15:32:02 -0700</creation_ts>
          <short_desc>DFG JIT - implement instanceof</short_desc>
          <delta_ts>2011-07-02 16:08:39 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>431643</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-07-02 15:32:02 -0700</bug_when>
    <thetext>Add ops CheckHasInstance &amp; InstanceOf to implement bytecodes op_check_has_instance &amp; op_instanceof.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431644</commentid>
    <comment_count>1</comment_count>
      <attachid>99562</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-07-02 15:36:02 -0700</bug_when>
    <thetext>Created attachment 99562
The patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431645</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-02 15:37:15 -0700</bug_when>
    <thetext>Attachment 99562 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/dfg/DFGJITCompiler.h:225:  Missing space inside { }.  [whitespace/braces] [5]
Source/JavaScriptCore/dfg/DFGOperations.h:64:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431647</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-07-02 16:08:39 -0700</bug_when>
    <thetext>Fixed in r90324.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99562</attachid>
            <date>2011-07-02 15:36:02 -0700</date>
            <delta_ts>2011-07-02 15:52:31 -0700</delta_ts>
            <desc>The patch</desc>
            <filename>63866.patch</filename>
            <type>text/plain</type>
            <size>15882</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTAzMjMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAK
KzIwMTEtMDctMDIgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzg2Ngor
ICAgICAgICBERkcgSklUIC0gaW1wbGVtZW50IGluc3RhbmNlb2YKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgb3BzIENoZWNrSGFzSW5zdGFuY2Ug
JiBJbnN0YW5jZU9mIHRvIGltcGxlbWVudCBieXRlY29kZXMKKyAgICAgICAgb3BfY2hlY2tfaGFz
X2luc3RhbmNlICYgb3BfaW5zdGFuY2VvZi4gVGhpcyBpcyBhbiBpbml0aWFsCisgICAgICAgIGZ1
bmN0aW9uYWwgaW1wbGVtZW50YXRpb24sIHBlcmZvcm1hbmNlIGlzIGEgd2FzaC4gV2UgY2FuCisg
ICAgICAgIGZvbGxvdyB1cCB3aXRoIGNoYW5nZXMgdG8gZnVzZSB0aGUgSW5zdGFuY2VPZiBub2Rl
IHdpdGgKKyAgICAgICAgYSBzdWJzZXF1YW50IGJyYW5jaCwgYXMgd2UgZG8gd2l0aCBvdGhlciBj
b21wYXJpc29ucy4KKworICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRm
Zy9ERkdKSVRDb21waWxlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6Ompp
dEFzc2VydElzQ2VsbCk6CisgICAgICAgICogZGZnL0RGR0pJVENvbXBpbGVyLmg6CisgICAgICAg
IChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmppdEFzc2VydElzQ2VsbCk6CisgICAgICAgICogZGZn
L0RGR05vZGUuaDoKKyAgICAgICAgKiBkZmcvREZHTm9uU3BlY3VsYXRpdmVKSVQuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6Ok5vblNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBk
ZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuaDoKKyAg
ICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKToKKwogMjAxMS0wNy0wMSAgT2xpdmVyIEh1bnQgIDxvbGl2
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIElFIFdlYiBXb3JrZXJzIGRlbW8gY3Jhc2hlcyBpbiBK
U0M6OlNsb3RWaXNpdG9yOjp2aXNpdENoaWxkcmVuKCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lvbiA5MDMwMikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03MDEsNiArNzAxLDE4IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxv
Y2sodW5zaWduZWQKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX21vdik7CiAgICAgICAgIH0K
IAorICAgICAgICBjYXNlIG9wX2NoZWNrX2hhc19pbnN0YW5jZToKKyAgICAgICAgICAgIGFkZFRv
R3JhcGgoQ2hlY2tIYXNJbnN0YW5jZSwgZ2V0KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJh
bmQpKTsKKyAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2NoZWNrX2hhc19pbnN0YW5jZSk7CisK
KyAgICAgICAgY2FzZSBvcF9pbnN0YW5jZW9mOiB7CisgICAgICAgICAgICBOb2RlSW5kZXggdmFs
dWUgPSBnZXQoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCk7CisgICAgICAgICAgICBO
b2RlSW5kZXggYmFzZVZhbHVlID0gZ2V0KGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQp
OworICAgICAgICAgICAgTm9kZUluZGV4IHByb3RvdHlwZSA9IGdldChjdXJyZW50SW5zdHJ1Y3Rp
b25bNF0udS5vcGVyYW5kKTsKKyAgICAgICAgICAgIHNldChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0u
dS5vcGVyYW5kLCBhZGRUb0dyYXBoKEluc3RhbmNlT2YsIHZhbHVlLCBiYXNlVmFsdWUsIHByb3Rv
dHlwZSkpOworICAgICAgICAgICAgTkVYVF9PUENPREUob3BfaW5zdGFuY2VvZik7CisgICAgICAg
IH0KKwogICAgICAgICBjYXNlIG9wX25vdDogewogICAgICAgICAgICAgQVJJVEhNRVRJQ19PUCgp
OwogICAgICAgICAgICAgTm9kZUluZGV4IHZhbHVlID0gZ2V0KGN1cnJlbnRJbnN0cnVjdGlvblsy
XS51Lm9wZXJhbmQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21w
aWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRD
b21waWxlci5jcHAJKHJldmlzaW9uIDkwMzAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdKSVRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzOSw2ICs0MzksMTMgQEAg
dm9pZCBKSVRDb21waWxlcjo6aml0QXNzZXJ0SXNKU0RvdWJsZShHUAogICAgIGJyZWFrcG9pbnQo
KTsKICAgICBjaGVja0pTTnVtYmVyLmxpbmsodGhpcyk7CiB9CisKK3ZvaWQgSklUQ29tcGlsZXI6
OmppdEFzc2VydElzQ2VsbChHUFJSZWcgZ3ByKQoreworICAgIEp1bXAgY2hlY2tDZWxsID0gYnJh
bmNoVGVzdFB0cihNYWNyb0Fzc2VtYmxlcjo6WmVybywgZ3ByLCBHUFJJbmZvOjp0YWdNYXNrUmVn
aXN0ZXIpOworICAgIGJyZWFrcG9pbnQoKTsKKyAgICBjaGVja0NlbGwubGluayh0aGlzKTsKK30K
ICNlbmRpZgogCiAjaWYgRU5BQkxFKFNBTVBMSU5HX0NPVU5URVJTKSAmJiBDUFUoWDg2XzY0KSAv
LyBPciBhbnkgb3RoZXIgNjQtYml0IHBsYXRmb3JtIQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdKSVRDb21waWxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAkocmV2aXNpb24gOTAzMDIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxNiwx
MSArMjE2LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGppdEFzc2VydElzSlNJbnQzMihHUFJSZWcp
OwogICAgIHZvaWQgaml0QXNzZXJ0SXNKU051bWJlcihHUFJSZWcpOwogICAgIHZvaWQgaml0QXNz
ZXJ0SXNKU0RvdWJsZShHUFJSZWcpOworICAgIHZvaWQgaml0QXNzZXJ0SXNDZWxsKEdQUlJlZyk7
CiAjZWxzZQogICAgIHZvaWQgaml0QXNzZXJ0SXNJbnQzMihHUFJSZWcpIHt9CiAgICAgdm9pZCBq
aXRBc3NlcnRJc0pTSW50MzIoR1BSUmVnKSB7fQogICAgIHZvaWQgaml0QXNzZXJ0SXNKU051bWJl
cihHUFJSZWcpIHt9CiAgICAgdm9pZCBqaXRBc3NlcnRJc0pTRG91YmxlKEdQUlJlZykge30KKyAg
ICB2b2lkIGppdEFzc2VydElzQ2VsbChHUFJSZWcpIHt9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShT
QU1QTElOR19DT1VOVEVSUykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCShy
ZXZpc2lvbiA5MDMwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzgsNiArMTM4LDggQEAgdHlwZWRlZiB1aW50MzJfdCBFeGNlcHRp
b25JbmZvOwogICAgIFwKICAgICAvKiBOb2RlcyBmb3IgbWlzYyBvcGVyYXRpb25zLiAqL1wKICAg
ICBtYWNybyhCcmVha3BvaW50LCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oQ2hlY2tI
YXNJbnN0YW5jZSwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKEluc3RhbmNlT2YsIE5v
ZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKExvZ2ljYWxOb3QsIE5vZGVSZXN1bHRKUykgXAogICAg
IFwKICAgICAvKiBCbG9jayB0ZXJtaW5hbHMuICovXApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb25TcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb25TcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDkwMzAy
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb25TcGVjdWxhdGl2ZUpJVC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTk0Myw2ICs5NDMsOTcgQEAgdm9pZCBOb25TcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZShTcGVjdWxhdAogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENo
ZWNrSGFzSW5zdGFuY2U6IHsKKyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlzLCBub2Rl
LmNoaWxkMSk7CisgICAgICAgIEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmUodGhpcyk7CisKKyAgICAg
ICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdwcigpOworICAgICAgICBHUFJSZWcgc3RydWN0dXJl
UmVnID0gc3RydWN0dXJlLmdwcigpOworCisgICAgICAgIC8vIENoZWNrIHRoYXQgYmFzZSBpcyBh
IGNlbGwuCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGJhc2VOb3RDZWxsID0gbV9qaXQu
YnJhbmNoVGVzdFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgYmFzZVJlZywgR1BSSW5mbzo6
dGFnTWFza1JlZ2lzdGVyKTsKKworICAgICAgICAvLyBDaGVjayB0aGF0IGJhc2UgJ0ltcGxlbWVu
dHNIYXNJbnN0YW5jZScuCisgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MoYmFzZVJlZywgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIHN0cnVjdHVyZVJlZyk7
CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGltcGxlbWVudHNIYXNJbnN0YW5jZSA9IG1f
aml0LmJyYW5jaFRlc3Q4KE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCBNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhzdHJ1Y3R1cmVSZWcsIFN0cnVjdHVyZTo6dHlwZUluZm9GbGFnc09mZnNldCgpKSwg
TWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihJbXBsZW1lbnRzSGFzSW5zdGFuY2UpKTsKKwor
ICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIGFsd2F5cyB0aHJvdywgc28gbm8gbmVlZCB0byBw
cmVzZXJ2ZSByZWdpc3RlcnMuCisgICAgICAgIGJhc2VOb3RDZWxsLmxpbmsoJm1faml0KTsKKyAg
ICAgICAgbV9qaXQubW92ZShiYXNlUmVnLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAg
ICBtX2ppdC5tb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOworICAgICAgICAvLyBBdCBzb21lIHBvaW50IHdlIGNvdWxkIG9wdGltaXplIHRoaXMg
dG8gcGxhbnQgYSBkaXJlY3QganVtcCwgcmF0aGVyIHRoZW4gY2hlY2tpbmcKKyAgICAgICAgLy8g
Zm9yIGFuIGV4Y2VwdGlvbiAob3BlcmF0aW9uVGhyb3dIYXNJbnN0YW5jZUVycm9yIGFsd2F5cyB0
aHJvd3MpLiBQcm9iYWJseSBub3Qgd29ydGgKKyAgICAgICAgLy8gYWRkaW5nIHRoZSBleHRyYSBp
bnRlcmZhY2UgdG8gZG8gdGhpcyBub3csIGJ1dCB3ZSBtYXkgYWxzbyB3YW50IHRoaXMgZm9yIG9w
X3Rocm93LgorICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvblRo
cm93SGFzSW5zdGFuY2VFcnJvcik7CisKKyAgICAgICAgaW1wbGVtZW50c0hhc0luc3RhbmNlLmxp
bmsoJm1faml0KTsKKyAgICAgICAgbm9SZXN1bHQobV9jb21waWxlSW5kZXgpOworICAgICAgICBi
cmVhazsKKyAgICB9CisKKyAgICBjYXNlIEluc3RhbmNlT2Y6IHsKKyAgICAgICAgSlNWYWx1ZU9w
ZXJhbmQgdmFsdWUodGhpcywgbm9kZS5jaGlsZDEpOworICAgICAgICBKU1ZhbHVlT3BlcmFuZCBi
YXNlKHRoaXMsIG5vZGUuY2hpbGQyKTsKKyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgcHJvdG90eXBl
KHRoaXMsIG5vZGUuY2hpbGQzKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHNjcmF0Y2godGhpcywg
YmFzZSk7CisKKyAgICAgICAgR1BSUmVnIHZhbHVlUmVnID0gdmFsdWUuZ3ByKCk7CisgICAgICAg
IEdQUlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHByb3RvdHlwZVJl
ZyA9IHByb3RvdHlwZS5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHNjcmF0Y2hSZWcgPSBzY3JhdGNo
LmdwcigpOworCisgICAgICAgIC8vIENoZWNrIHRoYXQgb3BlcmFuZHMgYXJlIGNlbGxzIChiYXNl
IGlzIGNoZWNrZWQgYnkgQ2hlY2tIYXNJbnN0YW5jZSwgc28gd2UgY2FuIGp1c3QgYXNzZXJ0KS4K
KyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgdmFsdWVOb3RDZWxsID0gbV9qaXQuYnJhbmNo
VGVzdFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgdmFsdWVSZWcsIEdQUkluZm86OnRhZ01h
c2tSZWdpc3Rlcik7CisgICAgICAgIG1faml0LmppdEFzc2VydElzQ2VsbChiYXNlUmVnKTsKKyAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgcHJvdG90eXBlTm90Q2VsbCA9IG1faml0LmJyYW5j
aFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIHByb3RvdHlwZVJlZywgR1BSSW5mbzo6
dGFnTWFza1JlZ2lzdGVyKTsKKworICAgICAgICAvLyBDaGVjayB0aGF0IGJhc2VWYWwgJ0ltcGxl
bWVudHNEZWZhdWx0SGFzSW5zdGFuY2UnLgorICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLCBzY3Jh
dGNoUmVnKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90RGVmYXVsdEhhc0luc3Rh
bmNlID0gbV9qaXQuYnJhbmNoVGVzdDgoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKHNjcmF0Y2hSZWcsIFN0cnVjdHVyZTo6dHlwZUluZm9GbGFnc09mZnNldCgp
KSwgVHJ1c3RlZEltbTMyKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpKTsKKworICAgICAg
ICAvLyBDaGVjayB0aGF0IHByb3RvdHlwZSBpcyBhbiBvYmplY3QKKyAgICAgICAgbV9qaXQubG9h
ZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhwcm90b3R5cGVSZWcsIEpTQ2VsbDo6c3RydWN0
dXJlT2Zmc2V0KCkpLCBzY3JhdGNoUmVnKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
cHJvdG9Ob3RPYmplY3QgPSBtX2ppdC5icmFuY2g4KE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwg
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc2NyYXRjaFJlZywgU3RydWN0dXJlOjp0eXBlSW5mb1R5
cGVPZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoT2JqZWN0VHlwZSkpOwor
CisgICAgICAgIC8vIEluaXRpYWxpemUgc2NyYXRjaFJlZyB3aXRoIHRoZSB2YWx1ZSBiZWluZyBj
aGVja2VkLgorICAgICAgICBtX2ppdC5tb3ZlKHZhbHVlUmVnLCBzY3JhdGNoUmVnKTsKKworICAg
ICAgICAvLyBXYWxrIHVwIHRoZSBwcm90b3R5cGUgY2hhaW4gb2YgdGhlIHZhbHVlIChpbiBzY3Jh
dGNoUmVnKSwgY29tcGFyaW5nIHRvIHByb3RvdHlwZVJlZy4KKyAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkxhYmVsIGxvb3AoJm1faml0KTsKKyAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhzY3JhdGNoUmVnLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgc2Ny
YXRjaFJlZyk7CisgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
c2NyYXRjaFJlZywgU3RydWN0dXJlOjpwcm90b3R5cGVPZmZzZXQoKSksIHNjcmF0Y2hSZWcpOwor
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBpc0luc3RhbmNlID0gbV9qaXQuYnJhbmNoUHRy
KE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgc2NyYXRjaFJlZywgcHJvdG90eXBlUmVnKTsKKyAgICAg
ICAgbV9qaXQuYnJhbmNoVGVzdFB0cihNYWNyb0Fzc2VtYmxlcjo6WmVybywgc2NyYXRjaFJlZywg
R1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKS5saW5rVG8obG9vcCwgJm1faml0KTsKKworICAgICAg
ICAvLyBObyBtYXRjaCAtIHJlc3VsdCBpcyBmYWxzZS4KKyAgICAgICAgbV9qaXQubW92ZShNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGZhbHNl
KSkpLCBzY3JhdGNoUmVnKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgd2FzTm90SW5z
dGFuY2UgPSBtX2ppdC5qdW1wKCk7CisKKyAgICAgICAgLy8gTGluayB0byBoZXJlIGlmIGFueSBj
aGVja3MgZmFpbCB0aGF0IHJlcXVpcmUgdXMgdG8gdHJ5IGNhbGxpbmcgb3V0IHRvIGFuIG9wZXJh
dGlvbiB0byBoZWxwLAorICAgICAgICAvLyBlLmcuIGZvciBhbiBBUEkgb3ZlcnJpZGRlbiBIYXNJ
bnN0YW5jZS4KKyAgICAgICAgdmFsdWVOb3RDZWxsLmxpbmsoJm1faml0KTsKKyAgICAgICAgcHJv
dG90eXBlTm90Q2VsbC5saW5rKCZtX2ppdCk7CisgICAgICAgIG5vdERlZmF1bHRIYXNJbnN0YW5j
ZS5saW5rKCZtX2ppdCk7CisgICAgICAgIHByb3RvTm90T2JqZWN0LmxpbmsoJm1faml0KTsKKwor
ICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhzY3JhdGNoUmVnLCB2YWx1ZVJlZywgYmFz
ZVJlZywgcHJvdG90eXBlUmVnKTsKKyAgICAgICAgc2V0dXBTdHViQXJndW1lbnRzKHZhbHVlUmVn
LCBiYXNlUmVnLCBwcm90b3R5cGVSZWcpOworICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBhcHBlbmRD
YWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbkluc3RhbmNlT2YpOworICAgICAgICBtX2pp
dC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBzY3JhdGNoUmVnKTsKKyAgICAgICAgc2ls
ZW50RmlsbEFsbFJlZ2lzdGVycyhzY3JhdGNoUmVnKTsKKworICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6SnVtcCB3YXNOb3REZWZhdWx0SGFzSW5zdGFuY2UgPSBtX2ppdC5qdW1wKCk7CisKKyAgICAg
ICAgaXNJbnN0YW5jZS5saW5rKCZtX2ppdCk7CisgICAgICAgIG1faml0Lm1vdmUoTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbih0cnVlKSkpLCBz
Y3JhdGNoUmVnKTsKKworICAgICAgICB3YXNOb3RJbnN0YW5jZS5saW5rKCZtX2ppdCk7CisgICAg
ICAgIHdhc05vdERlZmF1bHRIYXNJbnN0YW5jZS5saW5rKCZtX2ppdCk7CisgICAgICAgIGpzVmFs
dWVSZXN1bHQoc2NyYXRjaFJlZywgbV9jb21waWxlSW5kZXgpOworICAgICAgICBicmVhazsKKyAg
ICB9CisKICAgICBjYXNlIFBoaToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkocmV2aXNp
b24gOTAzMDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zODcsNiArMzg3LDQ1IEBAIGJvb2wgb3BlcmF0aW9uQ29tcGFy
ZVN0cmljdEVxKEV4ZWNTdGF0ZSoKICAgICByZXR1cm4gSlNWYWx1ZTo6c3RyaWN0RXF1YWwoZXhl
YywgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9w
MikpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25JbnN0YW5jZU9mKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3RvdHlwZSkKK3sKKyAgICBKU1ZhbHVlIHZh
bHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAgSlNWYWx1ZSBiYXNlID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKTsKKyAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkUHJvdG90eXBlKTsKKworICAgIC8vIE90aGVyd2lzZSBDaGVj
a0hhc0luc3RhbmNlIHNob3VsZCBoYXZlIGZhaWxlZC4KKyAgICBBU1NFUlQoYmFzZS5pc0NlbGwo
KSk7CisgICAgLy8gQXQgbGVhc3Qgb25lIG9mIHRoZXNlIGNoZWNrcyBtdXN0IGhhdmUgZmFpbGVk
IHRvIGdldCB0byB0aGUgc2xvdyBjYXNlLgorICAgIEFTU0VSVCghdmFsdWUuaXNDZWxsKCkKKyAg
ICAgICAgfHwgIXByb3RvdHlwZS5pc0NlbGwoKQorICAgICAgICB8fCAhcHJvdG90eXBlLmlzT2Jq
ZWN0KCkgCisgICAgICAgIHx8IChiYXNlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8o
KS5mbGFncygpICYgKEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc0hhc0luc3RhbmNl
KSkgIT0gSW1wbGVtZW50c0hhc0luc3RhbmNlKTsKKworCisgICAgLy8gRUNNQS0yNjIgMTUuMy41
LjM6CisgICAgLy8gVGhyb3cgYW4gZXhjZXB0aW9uIGVpdGhlciBpZiBiYXNlIGlzIG5vdCBhbiBv
YmplY3QsIG9yIGlmIGl0IGRvZXMgbm90IGltcGxlbWVudCAnSGFzSW5zdGFuY2UnIChpLmUuIGlz
IGEgZnVuY3Rpb24pLgorICAgIFR5cGVJbmZvIHR5cGVJbmZvKFVuc3BlY2lmaWVkVHlwZSk7Cisg
ICAgaWYgKCFiYXNlLmlzT2JqZWN0KCkgfHwgISh0eXBlSW5mbyA9IGFzT2JqZWN0KGJhc2UpLT5z
dHJ1Y3R1cmUoKS0+dHlwZUluZm8oKSkuaW1wbGVtZW50c0hhc0luc3RhbmNlKCkpIHsKKyAgICAg
ICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVJbnZhbGlkUGFyYW1FcnJvcihleGVjLCAiaW5zdGFu
Y2VvZiIsIGJhc2UpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc09i
amVjdChiYXNlKS0+aGFzSW5zdGFuY2UoZXhlYywgdmFsdWUsIHByb3RvdHlwZSkpKTsKK30KKwor
dm9pZCBvcGVyYXRpb25UaHJvd0hhc0luc3RhbmNlRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSkKK3sKKyAgICBKU1ZhbHVlIGJhc2UgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZEJhc2UpOworCisjaWZuZGVmIE5ERUJVRworICAgIC8vIFdlIHNob3VsZCBv
bmx5IGNhbGwgdGhpcyBmdW5jdGlvbiBpZiBiYXNlIGlzIG5vdCBhbiBvYmplY3QsIG9yIGlmIGl0
IGRvZXMgbm90IGltcGxlbWVudCAnSGFzSW5zdGFuY2UnLgorICAgIFR5cGVJbmZvIHR5cGVJbmZv
KFVuc3BlY2lmaWVkVHlwZSk7CisgICAgQVNTRVJUKCFiYXNlLmlzT2JqZWN0KCkgfHwgISh0eXBl
SW5mbyA9IGFzT2JqZWN0KGJhc2UpLT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKSkuaW1wbGVtZW50
c0hhc0luc3RhbmNlKCkpOworI2VuZGlmCisKKyAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZUlu
dmFsaWRQYXJhbUVycm9yKGV4ZWMsICJpbnN0YW5jZW9mIiwgYmFzZSkpOworfQorCiBERkdIYW5k
bGVyIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIoRXhlY1N0YXRlKiBleGVjLCBSZXR1cm5BZGRyZXNz
UHRyIGZhdWx0TG9jYXRpb24pCiB7CiAgICAgSlNWYWx1ZSBleGNlcHRpb25WYWx1ZSA9IGV4ZWMt
PmV4Y2VwdGlvbigpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmgJKHJldmlzaW9uIDkwMzAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDggQEAgRW5jb2RlZEpTVmFs
dWUgb3BlcmF0aW9uR2V0QnlWYWwoRXhlY1N0YQogRW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9uR2V0
QnlJZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciop
OwogRW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9uR2V0QnlJZEJ1aWxkTGlzdChFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciopOwogRW5jb2RlZEpTVmFsdWUg
b3BlcmF0aW9uR2V0QnlJZE9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCBJZGVudGlmaWVyKik7CitFbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25JbnN0YW5jZU9m
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBF
bmNvZGVkSlNWYWx1ZSBwcm90b3R5cGUpOwordm9pZCBvcGVyYXRpb25UaHJvd0hhc0luc3RhbmNl
RXJyb3IoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgYmFzZSk7CiB2b2lkIG9wZXJhdGlvblB1
dEJ5VmFsU3RyaWN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSk7
CiB2b2lkIG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSk7CiB2b2lkIG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlC
b3VuZHMoRXhlY1N0YXRlKiwgSlNBcnJheSosIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gOTAzMDIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEwMyw2
ICsxMTAzLDU1IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOiB7CisgICAg
ICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS5jaGlsZDEpOworICAgICAg
ICBHUFJUZW1wb3Jhcnkgc3RydWN0dXJlKHRoaXMpOworCisgICAgICAgIC8vIFNwZWN1bGF0ZSB0
aGF0IGJhc2UgJ0ltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UnLgorICAgICAgICBtX2ppdC5s
b2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2UuZ3ByKCksIEpTQ2VsbDo6c3RydWN0
dXJlT2Zmc2V0KCkpLCBzdHJ1Y3R1cmUuZ3ByKCkpOworICAgICAgICBzcGVjdWxhdGlvbkNoZWNr
KG1faml0LmJyYW5jaFRlc3Q4KE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhzdHJ1Y3R1cmUuZ3ByKCksIFN0cnVjdHVyZTo6dHlwZUluZm9GbGFnc09mZnNldCgp
KSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3Rh
bmNlKSkpOworCisgICAgICAgIG5vUmVzdWx0KG1fY29tcGlsZUluZGV4KTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorCisgICAgY2FzZSBJbnN0YW5jZU9mOiB7CisgICAgICAgIFNwZWN1bGF0ZUNl
bGxPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUuY2hpbGQxKTsKKyAgICAgICAgLy8gQmFzZSB1bnVz
ZWQgc2luY2Ugd2Ugc3BlY3VsYXRlIGRlZmF1bHQgSW5zdGFuY2VPZiBiZWhhdmlvdXIgaW4gQ2hl
Y2tIYXNJbnN0YW5jZS4KKyAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgcHJvdG90eXBlKHRo
aXMsIG5vZGUuY2hpbGQzKTsKKworICAgICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsK
KworICAgICAgICBHUFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5ncHIoKTsKKyAgICAgICAgR1BSUmVn
IHByb3RvdHlwZVJlZyA9IHByb3RvdHlwZS5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHNjcmF0Y2hS
ZWcgPSBzY3JhdGNoLmdwcigpOworCisgICAgICAgIC8vIENoZWNrIHRoYXQgcHJvdG90eXBlIGlz
IGFuIG9iamVjdC4KKyAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhwcm90b3R5cGVSZWcsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLCBzY3JhdGNoUmVnKTsK
KyAgICAgICAgc3BlY3VsYXRpb25DaGVjayhtX2ppdC5icmFuY2g4KE1hY3JvQXNzZW1ibGVyOjpO
b3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc2NyYXRjaFJlZywgU3RydWN0dXJlOjp0
eXBlSW5mb1R5cGVPZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoT2JqZWN0
VHlwZSkpKTsKKworICAgICAgICAvLyBJbml0aWFsaXplIHNjcmF0Y2hSZWcgd2l0aCB0aGUgdmFs
dWUgYmVpbmcgY2hlY2tlZC4KKyAgICAgICAgbV9qaXQubW92ZSh2YWx1ZVJlZywgc2NyYXRjaFJl
Zyk7CisKKyAgICAgICAgLy8gV2FsayB1cCB0aGUgcHJvdG90eXBlIGNoYWluIG9mIHRoZSB2YWx1
ZSAoaW4gc2NyYXRjaFJlZyksIGNvbXBhcmluZyB0byBwcm90b3R5cGVSZWcuCisgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpMYWJlbCBsb29wKCZtX2ppdCk7CisgICAgICAgIG1faml0LmxvYWRQdHIo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc2NyYXRjaFJlZywgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZz
ZXQoKSksIHNjcmF0Y2hSZWcpOworICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKHNjcmF0Y2hSZWcsIFN0cnVjdHVyZTo6cHJvdG90eXBlT2Zmc2V0KCkpLCBzY3Jh
dGNoUmVnKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaXNJbnN0YW5jZSA9IG1faml0
LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIHNjcmF0Y2hSZWcsIHByb3RvdHlwZVJl
Zyk7CisgICAgICAgIG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHNj
cmF0Y2hSZWcsIEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikubGlua1RvKGxvb3AsICZtX2ppdCk7
CisKKyAgICAgICAgLy8gTm8gbWF0Y2ggLSByZXN1bHQgaXMgZmFsc2UuCisgICAgICAgIG1faml0
Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKGpzQm9v
bGVhbihmYWxzZSkpKSwgc2NyYXRjaFJlZyk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1w
IHB1dFJlc3VsdCA9IG1faml0Lmp1bXAoKTsKKworICAgICAgICBpc0luc3RhbmNlLmxpbmsoJm1f
aml0KTsKKyAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihK
U1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHRydWUpKSksIHNjcmF0Y2hSZWcpOworCisgICAgICAg
IHB1dFJlc3VsdC5saW5rKCZtX2ppdCk7CisgICAgICAgIGpzVmFsdWVSZXN1bHQoc2NyYXRjaFJl
ZywgbV9jb21waWxlSW5kZXgpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIFBo
aToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAK
</data>
<flag name="review"
          id="94079"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>