<?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>25010</bug_id>
          
          <creation_ts>2009-04-02 14:08:10 -0700</creation_ts>
          <short_desc>Convert all JS function invocations in InspectorController to use ScriptFunctionCall</short_desc>
          <delta_ts>2009-04-02 14:49:10 -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>Web Inspector (Deprecated)</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>116347</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-04-02 14:08:10 -0700</bug_when>
    <thetext>This is fairly straightforward refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116350</commentid>
    <comment_count>1</comment_count>
      <attachid>29207</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-04-02 14:29:38 -0700</bug_when>
    <thetext>Created attachment 29207
Refactor to replace all JS function invocations in InspectorController with ScriptFunctionCall, v1

 WebCore/ChangeLog                              |   31 ++++++
 WebCore/bindings/js/ScriptFunctionCall.cpp     |   24 ++++
 WebCore/bindings/js/ScriptFunctionCall.h       |    9 ++
 WebCore/bindings/js/ScriptObjectQuarantine.cpp |   27 +++++
 WebCore/bindings/js/ScriptObjectQuarantine.h   |    4 +
 WebCore/inspector/InspectorController.cpp      |  135 +++++++----------------
 WebCore/inspector/InspectorController.h        |    3 -
 7 files changed, 136 insertions(+), 97 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116355</commentid>
    <comment_count>2</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-04-02 14:49:10 -0700</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/42187.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29207</attachid>
            <date>2009-04-02 14:29:38 -0700</date>
            <delta_ts>2009-04-02 14:34:32 -0700</delta_ts>
            <desc>Refactor to replace all JS function invocations in InspectorController with ScriptFunctionCall, v1</desc>
            <filename>actor-to-replace-all-JS-function-invocations-in-InspectorController-with-ScriptFunctionCall-v1.patch</filename>
            <type>text/plain</type>
            <size>16953</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">MTVlZjQyZDZmNTQ2MjIzZGY0ZDg3YmZmOTk5OGQ5ZDg1ZTg4ODIyOQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNzAwOGExLi4yZTQ5ZTA1
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDM0IEBACisyMDA5LTA0LTAyICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MDEwCisgICAg
ICAgIFJlZmFjdG9yIEluc3BlY3RvckNvbnRyb2xsZXIgdG8gcmVwbGFjZSBhbGwgSlMgZnVuY3Rp
b24gaW52b2NhdGlvbnMgd2l0aAorICAgICAgICBTY3JpcHRGdW5jdGlvbkNhbGwuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRGdW5jdGlvbkNhbGwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0RnVuY3Rpb25DYWxsOjphcHBlbmRBcmd1bWVudCk6IEFkZGVkIGludCwgVVN0cmlu
ZywKKyAgICAgICAgICAgIGFuZCBKU1ZhbHVlUHRyIG1ldGhvZHMuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRGdW5jdGlvbkNhbGw6OmNhbGwpOiBBZGRlZCBzaW1wbGlmaWVkLCBleGNlcHRpb24t
ZWF0aW5nCisgICAgICAgICAgICBtZXRob2QuCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0
RnVuY3Rpb25DYWxsLmg6IERlY2xzIGZvciBhYm92ZS4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9T
Y3JpcHRPYmplY3RRdWFyYW50aW5lLmNwcDogQWRkZWQgaGVscGVyIGZvciBOb2RlIGFuZCBET01X
aW5kb3cuCisgICAgICAgIChXZWJDb3JlOjpnZXRRdWFyYW50aW5lZFNjcmlwdE9iamVjdCk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0UXVhcmFudGluZS5oOiBEZWNscyBmb3Ig
YWJvdmUuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y2FsbFNpbXBsZUZ1bmN0aW9uKTogTWFkZSBpbnRvIGEgc3RhdGljLgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6Zm9jdXNOb2RlKTogUmVmYWN0
b3JlZCB0byB1c2UgU2NyaXB0RnVuY3Rpb25DYWxsLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ29udHJvbGxlcjo6dG9nZ2xlUmVjb3JkQnV0dG9uKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpzdGFydEdyb3VwKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpzZXRBdHRhY2hlZFdpbmRvdyk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVjdGVkV2luZG93U2Ny
aXB0T2JqZWN0Q2xlYXJlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29u
dHJvbGxlcjo6YWRkU2NyaXB0UHJvZmlsZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ29udHJvbGxlcjo6ZGlkUGFyc2VTb3VyY2UpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmZhaWxlZFRvUGFyc2VTb3VyY2UpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZFBhdXNlKTogRGl0dG8uCisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDogUmVtb3ZlZCBjYWxsRnVu
Y3Rpb24gYW5kIGNhbGxTaW1wbGVGdW5jdGlvbgorICAgICAgICAgICAgZGVjbHMuCisKIDIwMDkt
MDQtMDEgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCBmaXhpbmcgcHJldmlvdXMgY29tbWl0LgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRGdW5jdGlvbkNhbGwuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRGdW5jdGlvbkNhbGwuY3BwCmluZGV4IDk0YWQyM2EuLjc3NzM3NzQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RnVuY3Rpb25DYWxsLmNwcAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAKQEAgLTM0LDcgKzM0LDkgQEAK
ICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRTdHJpbmcuaCIKICNp
bmNsdWRlICJTY3JpcHRWYWx1ZS5oIgorCiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KKyNp
bmNsdWRlIDxydW50aW1lL1VTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIApAQCAt
NjgsNiArNzAsMTYgQEAgdm9pZCBTY3JpcHRGdW5jdGlvbkNhbGw6OmFwcGVuZEFyZ3VtZW50KGNv
bnN0IFN0cmluZyYgYXJndW1lbnQpCiAgICAgbV9hcmd1bWVudHMuYXBwZW5kKGpzU3RyaW5nKG1f
ZXhlYywgYXJndW1lbnQpKTsKIH0KIAordm9pZCBTY3JpcHRGdW5jdGlvbkNhbGw6OmFwcGVuZEFy
Z3VtZW50KGNvbnN0IEpTQzo6VVN0cmluZyYgYXJndW1lbnQpCit7CisgICAgbV9hcmd1bWVudHMu
YXBwZW5kKGpzU3RyaW5nKG1fZXhlYywgYXJndW1lbnQpKTsKK30KKwordm9pZCBTY3JpcHRGdW5j
dGlvbkNhbGw6OmFwcGVuZEFyZ3VtZW50KEpTQzo6SlNWYWx1ZVB0ciBhcmd1bWVudCkKK3sKKyAg
ICBtX2FyZ3VtZW50cy5hcHBlbmQoYXJndW1lbnQpOworfQorCiB2b2lkIFNjcmlwdEZ1bmN0aW9u
Q2FsbDo6YXBwZW5kQXJndW1lbnQobG9uZyBsb25nIGFyZ3VtZW50KQogewogICAgIEpTTG9jayBs
b2NrKGZhbHNlKTsKQEAgLTgwLDYgKzkyLDEyIEBAIHZvaWQgU2NyaXB0RnVuY3Rpb25DYWxsOjph
cHBlbmRBcmd1bWVudCh1bnNpZ25lZCBpbnQgYXJndW1lbnQpCiAgICAgbV9hcmd1bWVudHMuYXBw
ZW5kKGpzTnVtYmVyKG1fZXhlYywgYXJndW1lbnQpKTsKIH0KIAordm9pZCBTY3JpcHRGdW5jdGlv
bkNhbGw6OmFwcGVuZEFyZ3VtZW50KGludCBhcmd1bWVudCkKK3sKKyAgICBKU0xvY2sgbG9jayhm
YWxzZSk7CisgICAgbV9hcmd1bWVudHMuYXBwZW5kKGpzTnVtYmVyKG1fZXhlYywgYXJndW1lbnQp
KTsKK30KKwogdm9pZCBTY3JpcHRGdW5jdGlvbkNhbGw6OmFwcGVuZEFyZ3VtZW50KGJvb2wgYXJn
dW1lbnQpCiB7CiAgICAgbV9hcmd1bWVudHMuYXBwZW5kKGpzQm9vbGVhbihhcmd1bWVudCkpOwpA
QCAtMTEzLDYgKzEzMSwxMiBAQCBTY3JpcHRWYWx1ZSBTY3JpcHRGdW5jdGlvbkNhbGw6OmNhbGwo
Ym9vbCYgaGFkRXhjZXB0aW9uKQogICAgIHJldHVybiBTY3JpcHRWYWx1ZShyZXN1bHQpOwogfQog
CitTY3JpcHRWYWx1ZSBTY3JpcHRGdW5jdGlvbkNhbGw6OmNhbGwoKQoreworICAgIGJvb2wgaGFk
RXhjZXB0aW9uID0gZmFsc2U7CisgICAgcmV0dXJuIGNhbGwoaGFkRXhjZXB0aW9uKTsKK30KKwog
U2NyaXB0T2JqZWN0IFNjcmlwdEZ1bmN0aW9uQ2FsbDo6Y29uc3RydWN0KGJvb2wmIGhhZEV4Y2Vw
dGlvbikKIHsKICAgICBKU09iamVjdCogdGhpc09iamVjdCA9IG1fdGhpc09iamVjdC5qc09iamVj
dCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRGdW5jdGlvbkNhbGwu
aCBiL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RnVuY3Rpb25DYWxsLmgKaW5kZXggNTBkYzc2
MS4uZjczZDk1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRGdW5jdGlv
bkNhbGwuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5oCkBA
IC0zNyw2ICszNywxMSBAQAogCiAjaW5jbHVkZSA8cnVudGltZS9BcmdMaXN0Lmg+CiAKK25hbWVz
cGFjZSBKU0MgeworICAgIGNsYXNzIFVTdHJpbmc7CisgICAgY2xhc3MgSlNWYWx1ZVB0cjsKK30K
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNjcmlwdFZhbHVlOwogICAgIGNsYXNz
IFNjcmlwdFN0cmluZzsKQEAgLTUwLDEwICs1NSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZvaWQgYXBwZW5kQXJndW1lbnQoY29uc3QgU2NyaXB0U3RyaW5nJik7CiAgICAgICAg
IHZvaWQgYXBwZW5kQXJndW1lbnQoY29uc3QgU2NyaXB0VmFsdWUmKTsKICAgICAgICAgdm9pZCBh
cHBlbmRBcmd1bWVudChjb25zdCBTdHJpbmcmKTsKKyAgICAgICAgdm9pZCBhcHBlbmRBcmd1bWVu
dChjb25zdCBKU0M6OlVTdHJpbmcmKTsKKyAgICAgICAgdm9pZCBhcHBlbmRBcmd1bWVudChKU0M6
OkpTVmFsdWVQdHIpOwogICAgICAgICB2b2lkIGFwcGVuZEFyZ3VtZW50KGxvbmcgbG9uZyk7CiAg
ICAgICAgIHZvaWQgYXBwZW5kQXJndW1lbnQodW5zaWduZWQgaW50KTsKKyAgICAgICAgdm9pZCBh
cHBlbmRBcmd1bWVudChpbnQpOwogICAgICAgICB2b2lkIGFwcGVuZEFyZ3VtZW50KGJvb2wpOwog
ICAgICAgICBTY3JpcHRWYWx1ZSBjYWxsKGJvb2wmIGhhZEV4Y2VwdGlvbik7CisgICAgICAgIFNj
cmlwdFZhbHVlIGNhbGwoKTsKICAgICAgICAgU2NyaXB0T2JqZWN0IGNvbnN0cnVjdChib29sJiBo
YWRFeGNlcHRpb24pOwogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRPYmplY3RRdWFyYW50aW5lLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0T2JqZWN0UXVhcmFudGluZS5jcHAKaW5kZXggOTMxMTczNy4uOWQ5M2E4MyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmplY3RRdWFyYW50aW5lLmNwcAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdFF1YXJhbnRpbmUuY3BwCkBAIC0zOCw2
ICszOCw3IEBACiAjaW5jbHVkZSAiSlNTdG9yYWdlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5n
LmgiCiAjaW5jbHVkZSAiSlNJbnNwZWN0ZWRPYmplY3RXcmFwcGVyLmgiCisjaW5jbHVkZSAiSlNO
b2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0T2JqZWN0LmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUu
aCIKIApAQCAtODIsNCArODMsMzAgQEAgYm9vbCBnZXRRdWFyYW50aW5lZFNjcmlwdE9iamVjdChG
cmFtZSogZnJhbWUsIFN0b3JhZ2UqIHN0b3JhZ2UsIFNjcmlwdE9iamVjdCYgcXUKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAorYm9vbCBnZXRRdWFyYW50aW5lZFNjcmlwdE9iamVjdChOb2RlKiBub2Rl
LCBTY3JpcHRPYmplY3QmIHF1YXJhbnRpbmVkT2JqZWN0KQoreworICAgIEV4ZWNTdGF0ZSogZXhl
YyA9IHNjcmlwdFN0YXRlRnJvbU5vZGUobm9kZSk7CisgICAgaWYgKCFleGVjKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBKU0xvY2sgbG9jayhmYWxzZSk7CisgICAgcXVhcmFudGluZWRP
YmplY3QgPSBTY3JpcHRPYmplY3QoYXNPYmplY3QoSlNJbnNwZWN0ZWRPYmplY3RXcmFwcGVyOjp3
cmFwKGV4ZWMsIHRvSlMoZXhlYywgbm9kZSkpKSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
Ym9vbCBnZXRRdWFyYW50aW5lZFNjcmlwdE9iamVjdChET01XaW5kb3cqIGRvbVdpbmRvdywgU2Ny
aXB0T2JqZWN0JiBxdWFyYW50aW5lZE9iamVjdCkKK3sKKyAgICBBU1NFUlQoZG9tV2luZG93KTsK
KworICAgIEpTRE9NV2luZG93KiB3aW5kb3cgPSB0b0pTRE9NV2luZG93KGRvbVdpbmRvdy0+ZnJh
bWUoKSk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gd2luZG93LT5nbG9iYWxFeGVjKCk7CisKKyAg
ICBKU0xvY2sgbG9jayhmYWxzZSk7CisgICAgcXVhcmFudGluZWRPYmplY3QgPSBTY3JpcHRPYmpl
Y3QoYXNPYmplY3QoSlNJbnNwZWN0ZWRPYmplY3RXcmFwcGVyOjp3cmFwKGV4ZWMsIHdpbmRvdykp
KTsKKworICAgIHJldHVybiB0cnVlOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0UXVhcmFudGluZS5oIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmplY3RRdWFyYW50aW5lLmgKaW5kZXggYTNhYzdm
MS4uMDYwNDJhOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmplY3RR
dWFyYW50aW5lLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmplY3RRdWFyYW50
aW5lLmgKQEAgLTM2LDcgKzM2LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNz
IERhdGFiYXNlOworICAgIGNsYXNzIERPTVdpbmRvdzsKICAgICBjbGFzcyBGcmFtZTsKKyAgICBj
bGFzcyBOb2RlOwogICAgIGNsYXNzIFNjcmlwdE9iamVjdDsKICAgICBjbGFzcyBTY3JpcHRWYWx1
ZTsKICAgICBjbGFzcyBTdG9yYWdlOwpAQCAtNDUsNiArNDcsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICBib29sIGdldFF1YXJhbnRpbmVkU2NyaXB0T2JqZWN0KERhdGFiYXNlKiBkYXRh
YmFzZSwgU2NyaXB0T2JqZWN0JiBxdWFyYW50aW5lZE9iamVjdCk7CiAgICAgYm9vbCBnZXRRdWFy
YW50aW5lZFNjcmlwdE9iamVjdChGcmFtZSogZnJhbWUsIFN0b3JhZ2UqIHN0b3JhZ2UsIFNjcmlw
dE9iamVjdCYgcXVhcmFudGluZWRPYmplY3QpOworICAgIGJvb2wgZ2V0UXVhcmFudGluZWRTY3Jp
cHRPYmplY3QoTm9kZSogbm9kZSwgU2NyaXB0T2JqZWN0JiBxdWFyYW50aW5lZE9iamVjdCk7Cisg
ICAgYm9vbCBnZXRRdWFyYW50aW5lZFNjcmlwdE9iamVjdChET01XaW5kb3cqIGRvbVdpbmRvdywg
U2NyaXB0T2JqZWN0JiBxdWFyYW50aW5lZE9iamVjdCk7CiAKIH0KIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA3YWI5NTA2Li5kMzg5NjcxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNjcsNiArNjcsOSBAQAog
I2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2su
aCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0RnVuY3Rp
b25DYWxsLmgiCisjaW5jbHVkZSAiU2NyaXB0T2JqZWN0LmgiCisjaW5jbHVkZSAiU2NyaXB0T2Jq
ZWN0UXVhcmFudGluZS5oIgogI2luY2x1ZGUgIlNjcmlwdFN0cmluZy5oIgogI2luY2x1ZGUgIlNl
Y3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTExNSwyMSArMTE4LDYg
QEAgc3RhdGljIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1N0cmluZ1JlZihjb25zdCBjaGFy
KiBzdHIpCiAgICAgcmV0dXJuIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPihBZG9wdCwgSlNTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyKSk7CiB9CiAKLXN0YXRpYyBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4ganNTdHJpbmdSZWYoY29uc3QgU291cmNlQ29kZSYgc3RyKQotewotICAgIHJl
dHVybiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4oQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aENo
YXJhY3RlcnMoc3RyLmRhdGEoKSwgc3RyLmxlbmd0aCgpKSk7Ci19Ci0KLXN0YXRpYyBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4ganNTdHJpbmdSZWYoY29uc3QgU3RyaW5nJiBzdHIpCi17Ci0gICAg
cmV0dXJuIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPihBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRo
Q2hhcmFjdGVycyhzdHIuY2hhcmFjdGVycygpLCBzdHIubGVuZ3RoKCkpKTsKLX0KLQotc3RhdGlj
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1N0cmluZ1JlZihjb25zdCBVU3RyaW5nJiBzdHIp
Ci17Ci0gICAgcmV0dXJuIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPihBZG9wdCwgT3BhcXVlSlNT
dHJpbmc6OmNyZWF0ZShzdHIpLnJlbGVhc2VSZWYoKSk7Ci19Ci0KIHN0YXRpYyBTdHJpbmcgdG9T
dHJpbmcoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYq
IGV4Y2VwdGlvbikKIHsKICAgICBBU1NFUlRfQVJHKHZhbHVlLCB2YWx1ZSk7CkBAIC0xNDMsMzMg
KzEzMSwxMCBAQCBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcAogCiAjZGVmaW5lIEhBTkRMRV9FWENF
UFRJT04oY29udGV4dCwgZXhjZXB0aW9uKSBoYW5kbGVFeGNlcHRpb24oKGNvbnRleHQpLCAoZXhj
ZXB0aW9uKSwgX19MSU5FX18pCiAKLUpTVmFsdWVSZWYgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y2Fs
bFNpbXBsZUZ1bmN0aW9uKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2Jq
ZWN0LCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUpIGNvbnN0Ci17Ci0gICAgSlNWYWx1ZVJlZiBl
eGNlcHRpb24gPSAwOwotICAgIHJldHVybiBjYWxsRnVuY3Rpb24oY29udGV4dCwgdGhpc09iamVj
dCwgZnVuY3Rpb25OYW1lLCAwLCAwLCBleGNlcHRpb24pOwotfQotCi1KU1ZhbHVlUmVmIEluc3Bl
Y3RvckNvbnRyb2xsZXI6OmNhbGxGdW5jdGlvbihKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
Y3RSZWYgdGhpc09iamVjdCwgY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBzaXplX3QgYXJndW1l
bnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiYgZXhjZXB0
aW9uKSBjb25zdAorc3RhdGljIHZvaWQgY2FsbFNpbXBsZUZ1bmN0aW9uKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUp
CiB7Ci0gICAgQVNTRVJUX0FSRyhjb250ZXh0LCBjb250ZXh0KTsKLSAgICBBU1NFUlRfQVJHKHRo
aXNPYmplY3QsIHRoaXNPYmplY3QpOwotCi0gICAgaWYgKGV4Y2VwdGlvbikKLSAgICAgICAgcmV0
dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAgSlNWYWx1ZVJlZiBmdW5j
dGlvblByb3BlcnR5ID0gSlNPYmplY3RHZXRQcm9wZXJ0eShjb250ZXh0LCB0aGlzT2JqZWN0LCBq
c1N0cmluZ1JlZihmdW5jdGlvbk5hbWUpLmdldCgpLCAmZXhjZXB0aW9uKTsKLSAgICBpZiAoSEFO
RExFX0VYQ0VQVElPTihjb250ZXh0LCBleGNlcHRpb24pKQotICAgICAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBKU09iamVjdFJlZiBmdW5jdGlvbiA9IEpT
VmFsdWVUb09iamVjdChjb250ZXh0LCBmdW5jdGlvblByb3BlcnR5LCAmZXhjZXB0aW9uKTsKLSAg
ICBpZiAoSEFORExFX0VYQ0VQVElPTihjb250ZXh0LCBleGNlcHRpb24pKQotICAgICAgICByZXR1
cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBKU1ZhbHVlUmVmIHJlc3Vs
dCA9IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgZnVuY3Rpb24sIHRoaXNPYmplY3Qs
IGFyZ3VtZW50Q291bnQsIGFyZ3VtZW50cywgJmV4Y2VwdGlvbik7Ci0gICAgaWYgKEhBTkRMRV9F
WENFUFRJT04oY29udGV4dCwgZXhjZXB0aW9uKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICBTY3JpcHRGdW5j
dGlvbkNhbGwgZnVuY3Rpb24odG9KUyhjb250ZXh0KSwgdG9KUyh0aGlzT2JqZWN0KSwgZnVuY3Rp
b25OYW1lKTsKKyAgICBmdW5jdGlvbi5jYWxsKCk7CiB9CiAKIGJvb2wgSW5zcGVjdG9yQ29udHJv
bGxlcjo6YWRkU291cmNlVG9GcmFtZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJp
bmcmIHNvdXJjZSwgTm9kZSogZnJhbWVOb2RlKQpAQCAtNDA5LDIzICszNzQsMTYgQEAgdm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpmb2N1c05vZGUoKQogICAgIEFTU0VSVChtX3NjcmlwdE9iamVj
dCk7CiAgICAgQVNTRVJUKG1fbm9kZVRvRm9jdXMpOwogCi0gICAgRnJhbWUqIGZyYW1lID0gbV9u
b2RlVG9Gb2N1cy0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQorICAgIFNj
cmlwdE9iamVjdCBxdWFyYW50aW5lZE5vZGU7CisgICAgaWYgKCFnZXRRdWFyYW50aW5lZFNjcmlw
dE9iamVjdChtX25vZGVUb0ZvY3VzLmdldCgpLCBxdWFyYW50aW5lZE5vZGUpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTRE9NV2luZG93KGZyYW1lKS0+Z2xv
YmFsRXhlYygpOwotCi0gICAgSlNWYWx1ZVJlZiBhcmcwOwotCi0gICAgewotICAgICAgICBKU0M6
OkpTTG9jayBsb2NrKGZhbHNlKTsKLSAgICAgICAgYXJnMCA9IHRvUmVmKEpTSW5zcGVjdGVkT2Jq
ZWN0V3JhcHBlcjo6d3JhcChleGVjLCB0b0pTKGV4ZWMsIG1fbm9kZVRvRm9jdXMuZ2V0KCkpKSk7
Ci0gICAgfQorICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbih0b0pTKG1fc2NyaXB0Q29u
dGV4dCksIHRvSlMobV9zY3JpcHRPYmplY3QpLCAidXBkYXRlRm9jdXNlZE5vZGUiKTsKKyAgICBm
dW5jdGlvbi5hcHBlbmRBcmd1bWVudChxdWFyYW50aW5lZE5vZGUpOwogCiAgICAgbV9ub2RlVG9G
b2N1cyA9IDA7CiAKLSAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7Ci0gICAgY2FsbEZ1bmN0
aW9uKG1fc2NyaXB0Q29udGV4dCwgbV9zY3JpcHRPYmplY3QsICJ1cGRhdGVGb2N1c2VkTm9kZSIs
IDEsICZhcmcwLCBleGNlcHRpb24pOworICAgIGZ1bmN0aW9uLmNhbGwoKTsKIH0KIAogdm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpoaWdobGlnaHQoTm9kZSogbm9kZSkKQEAgLTUyNywxMyArNDg1
LDEzIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6dG9nZ2xlUmVjb3JkQnV0dG9uKGJvb2wg
aXNQcm9maWxpbmcpCiAgICAgaWYgKCFtX3NjcmlwdENvbnRleHQpCiAgICAgICAgIHJldHVybjsK
IAotICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKLSAgICBKU1ZhbHVlUmVmIGlzUHJvdmlu
Z1ZhbHVlID0gSlNWYWx1ZU1ha2VCb29sZWFuKG1fc2NyaXB0Q29udGV4dCwgaXNQcm9maWxpbmcp
OwotICAgIGNhbGxGdW5jdGlvbihtX3NjcmlwdENvbnRleHQsIG1fc2NyaXB0T2JqZWN0LCAic2V0
UmVjb3JkaW5nUHJvZmlsZSIsIDEsICZpc1Byb3ZpbmdWYWx1ZSwgZXhjZXB0aW9uKTsKKyAgICBT
Y3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24odG9KUyhtX3NjcmlwdENvbnRleHQpLCB0b0pTKG1f
c2NyaXB0T2JqZWN0KSwgInNldFJlY29yZGluZ1Byb2ZpbGUiKTsKKyAgICBmdW5jdGlvbi5hcHBl
bmRBcmd1bWVudChpc1Byb2ZpbGluZyk7CisgICAgZnVuY3Rpb24uY2FsbCgpOwogfQogCiB2b2lk
IEluc3BlY3RvckNvbnRyb2xsZXI6OnN0YXJ0R3JvdXAoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIFNj
cmlwdENhbGxTdGFjayogY2FsbFN0YWNrKQoteyAgICAKK3sKICAgICArK21fZ3JvdXBMZXZlbDsK
IAogICAgIGFkZENvbnNvbGVNZXNzYWdlKGNhbGxTdGFjay0+c3RhdGUoKSwgbmV3IENvbnNvbGVN
ZXNzYWdlKHNvdXJjZSwgU3RhcnRHcm91cE1lc3NhZ2VMZXZlbCwgY2FsbFN0YWNrLCBtX2dyb3Vw
TGV2ZWwpKTsKQEAgLTU5NCwxMCArNTUyLDkgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpz
ZXRBdHRhY2hlZFdpbmRvdyhib29sIGF0dGFjaGVkKQogICAgIGlmICghZW5hYmxlZCgpIHx8ICFt
X3NjcmlwdENvbnRleHQgfHwgIW1fc2NyaXB0T2JqZWN0KQogICAgICAgICByZXR1cm47CiAKLSAg
ICBKU1ZhbHVlUmVmIGF0dGFjaGVkVmFsdWUgPSBKU1ZhbHVlTWFrZUJvb2xlYW4obV9zY3JpcHRD
b250ZXh0LCBhdHRhY2hlZCk7Ci0KLSAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7Ci0gICAg
Y2FsbEZ1bmN0aW9uKG1fc2NyaXB0Q29udGV4dCwgbV9zY3JpcHRPYmplY3QsICJzZXRBdHRhY2hl
ZFdpbmRvdyIsIDEsICZhdHRhY2hlZFZhbHVlLCBleGNlcHRpb24pOworICAgIFNjcmlwdEZ1bmN0
aW9uQ2FsbCBmdW5jdGlvbih0b0pTKG1fc2NyaXB0Q29udGV4dCksIHRvSlMobV9zY3JpcHRPYmpl
Y3QpLCAic2V0QXR0YWNoZWRXaW5kb3ciKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChh
dHRhY2hlZCk7CisgICAgZnVuY3Rpb24uY2FsbCgpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRy
b2xsZXI6OnNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkKQEAgLTY0Niwx
OCArNjAzLDEzIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVjdGVkV2luZG93U2Ny
aXB0T2JqZWN0Q2xlYXJlZChGcmFtZSogZnJhbWUpCiAgICAgaWYgKCFlbmFibGVkKCkgfHwgIW1f
c2NyaXB0Q29udGV4dCB8fCAhbV9zY3JpcHRPYmplY3QpCiAgICAgICAgIHJldHVybjsKIAotICAg
IEpTRE9NV2luZG93KiB3aW4gPSB0b0pTRE9NV2luZG93KGZyYW1lKTsKLSAgICBFeGVjU3RhdGUq
IGV4ZWMgPSB3aW4tPmdsb2JhbEV4ZWMoKTsKLQotICAgIEpTVmFsdWVSZWYgYXJnMDsKLQotICAg
IHsKLSAgICAgICAgSlNDOjpKU0xvY2sgbG9jayhmYWxzZSk7Ci0gICAgICAgIGFyZzAgPSB0b1Jl
ZihKU0luc3BlY3RlZE9iamVjdFdyYXBwZXI6OndyYXAoZXhlYywgd2luKSk7Ci0gICAgfQorICAg
IFNjcmlwdE9iamVjdCBkb21XaW5kb3c7CisgICAgaWYgKCFnZXRRdWFyYW50aW5lZFNjcmlwdE9i
amVjdChmcmFtZS0+ZG9tV2luZG93KCksIGRvbVdpbmRvdykpCisgICAgICAgIHJldHVybjsKIAot
ICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKLSAgICBjYWxsRnVuY3Rpb24obV9zY3JpcHRD
b250ZXh0LCBtX3NjcmlwdE9iamVjdCwgImluc3BlY3RlZFdpbmRvd0NsZWFyZWQiLCAxLCAmYXJn
MCwgZXhjZXB0aW9uKTsKKyAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24odG9KUyhtX3Nj
cmlwdENvbnRleHQpLCB0b0pTKG1fc2NyaXB0T2JqZWN0KSwgImluc3BlY3RlZFdpbmRvd0NsZWFy
ZWQiKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChkb21XaW5kb3cpOworICAgIGZ1bmN0
aW9uLmNhbGwoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjp3aW5kb3dTY3JpcHRP
YmplY3RBdmFpbGFibGUoKQpAQCAtOTA0LDEwICs4NTYsMTAgQEAgdm9pZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpwb3B1bGF0ZVNjcmlwdE9iamVjdHMoKQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xs
ZXI6OmFkZFNjcmlwdFByb2ZpbGUoUHJvZmlsZSogcHJvZmlsZSkKIHsKKyAgICBTY3JpcHRGdW5j
dGlvbkNhbGwgZnVuY3Rpb24odG9KUyhtX3NjcmlwdENvbnRleHQpLCB0b0pTKG1fc2NyaXB0T2Jq
ZWN0KSwgImFkZFByb2ZpbGUiKTsKICAgICBKU0xvY2sgbG9jayhmYWxzZSk7Ci0gICAgSlNWYWx1
ZVJlZiBleGNlcHRpb24gPSAwOwotICAgIEpTVmFsdWVSZWYgcHJvZmlsZU9iamVjdCA9IHRvUmVm
KHRvSlModG9KUyhtX3NjcmlwdENvbnRleHQpLCBwcm9maWxlKSk7Ci0gICAgY2FsbEZ1bmN0aW9u
KG1fc2NyaXB0Q29udGV4dCwgbV9zY3JpcHRPYmplY3QsICJhZGRQcm9maWxlIiwgMSwgJnByb2Zp
bGVPYmplY3QsIGV4Y2VwdGlvbik7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQodG9KUyh0
b0pTKG1fc2NyaXB0Q29udGV4dCksIHByb2ZpbGUpKTsKKyAgICBmdW5jdGlvbi5jYWxsKCk7CiB9
CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzZXRTY3JpcHRPYmplY3RzKCkKQEAgLTE1
NjQsMzMgKzE1MTYsMjggQEAgYm9vbCBJbnNwZWN0b3JDb250cm9sbGVyOjpoYW5kbGVFeGNlcHRp
b24oSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgZXhjZXAKIAogdm9pZCBJbnNwZWN0
b3JDb250cm9sbGVyOjpkaWRQYXJzZVNvdXJjZShFeGVjU3RhdGUqLCBjb25zdCBTb3VyY2VDb2Rl
JiBzb3VyY2UpCiB7Ci0gICAgSlNWYWx1ZVJlZiBzb3VyY2VJRFZhbHVlID0gSlNWYWx1ZU1ha2VO
dW1iZXIobV9zY3JpcHRDb250ZXh0LCBzb3VyY2UucHJvdmlkZXIoKS0+YXNJRCgpKTsKLSAgICBK
U1ZhbHVlUmVmIHNvdXJjZVVSTFZhbHVlID0gSlNWYWx1ZU1ha2VTdHJpbmcobV9zY3JpcHRDb250
ZXh0LCBqc1N0cmluZ1JlZihzb3VyY2UucHJvdmlkZXIoKS0+dXJsKCkpLmdldCgpKTsKLSAgICBK
U1ZhbHVlUmVmIHNvdXJjZVZhbHVlID0gSlNWYWx1ZU1ha2VTdHJpbmcobV9zY3JpcHRDb250ZXh0
LCBqc1N0cmluZ1JlZihzb3VyY2UpLmdldCgpKTsKLSAgICBKU1ZhbHVlUmVmIGZpcnN0TGluZVZh
bHVlID0gSlNWYWx1ZU1ha2VOdW1iZXIobV9zY3JpcHRDb250ZXh0LCBzb3VyY2UuZmlyc3RMaW5l
KCkpOwotCi0gICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOwotICAgIEpTVmFsdWVSZWYgYXJn
dW1lbnRzW10gPSB7IHNvdXJjZUlEVmFsdWUsIHNvdXJjZVVSTFZhbHVlLCBzb3VyY2VWYWx1ZSwg
Zmlyc3RMaW5lVmFsdWUgfTsKLSAgICBjYWxsRnVuY3Rpb24obV9zY3JpcHRDb250ZXh0LCBtX3Nj
cmlwdE9iamVjdCwgInBhcnNlZFNjcmlwdFNvdXJjZSIsIDQsIGFyZ3VtZW50cywgZXhjZXB0aW9u
KTsKKyAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24odG9KUyhtX3NjcmlwdENvbnRleHQp
LCB0b0pTKG1fc2NyaXB0T2JqZWN0KSwgInBhcnNlZFNjcmlwdFNvdXJjZSIpOworICAgIGZ1bmN0
aW9uLmFwcGVuZEFyZ3VtZW50KHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oc291cmNlLnByb3ZpZGVy
KCktPmFzSUQoKSkpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHNvdXJjZS5wcm92aWRl
cigpLT51cmwoKSk7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoc291cmNlLmRhdGEoKSk7
CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoc291cmNlLmZpcnN0TGluZSgpKTsKKyAgICBm
dW5jdGlvbi5jYWxsKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZmFpbGVkVG9Q
YXJzZVNvdXJjZShFeGVjU3RhdGUqLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGludCBlcnJv
ckxpbmUsIGNvbnN0IFVTdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKLSAgICBKU1ZhbHVlUmVmIHNv
dXJjZVVSTFZhbHVlID0gSlNWYWx1ZU1ha2VTdHJpbmcobV9zY3JpcHRDb250ZXh0LCBqc1N0cmlu
Z1JlZihzb3VyY2UucHJvdmlkZXIoKS0+dXJsKCkpLmdldCgpKTsKLSAgICBKU1ZhbHVlUmVmIHNv
dXJjZVZhbHVlID0gSlNWYWx1ZU1ha2VTdHJpbmcobV9zY3JpcHRDb250ZXh0LCBqc1N0cmluZ1Jl
Zihzb3VyY2UuZGF0YSgpKS5nZXQoKSk7Ci0gICAgSlNWYWx1ZVJlZiBmaXJzdExpbmVWYWx1ZSA9
IEpTVmFsdWVNYWtlTnVtYmVyKG1fc2NyaXB0Q29udGV4dCwgc291cmNlLmZpcnN0TGluZSgpKTsK
LSAgICBKU1ZhbHVlUmVmIGVycm9yTGluZVZhbHVlID0gSlNWYWx1ZU1ha2VOdW1iZXIobV9zY3Jp
cHRDb250ZXh0LCBlcnJvckxpbmUpOwotICAgIEpTVmFsdWVSZWYgZXJyb3JNZXNzYWdlVmFsdWUg
PSBKU1ZhbHVlTWFrZVN0cmluZyhtX3NjcmlwdENvbnRleHQsIGpzU3RyaW5nUmVmKGVycm9yTWVz
c2FnZSkuZ2V0KCkpOwotCi0gICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOwotICAgIEpTVmFs
dWVSZWYgYXJndW1lbnRzW10gPSB7IHNvdXJjZVVSTFZhbHVlLCBzb3VyY2VWYWx1ZSwgZmlyc3RM
aW5lVmFsdWUsIGVycm9yTGluZVZhbHVlLCBlcnJvck1lc3NhZ2VWYWx1ZSB9OwotICAgIGNhbGxG
dW5jdGlvbihtX3NjcmlwdENvbnRleHQsIG1fc2NyaXB0T2JqZWN0LCAiZmFpbGVkVG9QYXJzZVNj
cmlwdFNvdXJjZSIsIDUsIGFyZ3VtZW50cywgZXhjZXB0aW9uKTsKKyAgICBTY3JpcHRGdW5jdGlv
bkNhbGwgZnVuY3Rpb24odG9KUyhtX3NjcmlwdENvbnRleHQpLCB0b0pTKG1fc2NyaXB0T2JqZWN0
KSwgImZhaWxlZFRvUGFyc2VTY3JpcHRTb3VyY2UiKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1
bWVudChzb3VyY2UucHJvdmlkZXIoKS0+dXJsKCkpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3Vt
ZW50KHNvdXJjZS5kYXRhKCkpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHNvdXJjZS5m
aXJzdExpbmUoKSk7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoZXJyb3JMaW5lKTsKKyAg
ICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChlcnJvck1lc3NhZ2UpOworICAgIGZ1bmN0aW9uLmNh
bGwoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRQYXVzZSgpCiB7Ci0gICAg
SlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOwotICAgIGNhbGxGdW5jdGlvbihtX3NjcmlwdENvbnRl
eHQsIG1fc2NyaXB0T2JqZWN0LCAicGF1c2VkU2NyaXB0IiwgMCwgMCwgZXhjZXB0aW9uKTsKKyAg
ICBjYWxsU2ltcGxlRnVuY3Rpb24obV9zY3JpcHRDb250ZXh0LCBtX3NjcmlwdE9iamVjdCwgInBh
dXNlZFNjcmlwdCIpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuaAppbmRleCBmMzU4YjNhLi42NTc1NDMwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5oCkBAIC0yNzUsOSArMjc1LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBy
dW5lUmVzb3VyY2VzKFJlc291cmNlc01hcCosIERvY3VtZW50TG9hZGVyKiBsb2FkZXJUb0tlZXAg
PSAwKTsKICAgICB2b2lkIHJlbW92ZUFsbFJlc291cmNlcyhSZXNvdXJjZXNNYXAqIG1hcCkgeyBw
cnVuZVJlc291cmNlcyhtYXApOyB9CiAKLSAgICBKU1ZhbHVlUmVmIGNhbGxTaW1wbGVGdW5jdGlv
bihKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIGNvbnN0IGNoYXIqIGZ1bmN0
aW9uTmFtZSkgY29uc3Q7Ci0gICAgSlNWYWx1ZVJlZiBjYWxsRnVuY3Rpb24oSlNDb250ZXh0UmVm
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
JiBleGNlcHRpb24pIGNvbnN0OwotCiAgICAgYm9vbCBoYW5kbGVFeGNlcHRpb24oSlNDb250ZXh0
UmVmLCBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiwgdW5zaWduZWQgbGluZU51bWJlcikgY29uc3Q7CiAK
ICAgICB2b2lkIHNob3dXaW5kb3coKTsK
</data>
<flag name="review"
          id="14487"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>