<?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>119575</bug_id>
          
          <creation_ts>2013-08-08 08:41:35 -0700</creation_ts>
          <short_desc>Restoring use of StackIterator instead of Interpreter::getStacktrace()</short_desc>
          <delta_ts>2013-08-08 09:57:15 -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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>chris_curtis</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>915452</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-08 08:41:35 -0700</bug_when>
    <thetext>This change set reverts r153383 (https://bugs.webkit.org/show_bug.cgi?id=119141) by adding a numberOfFrames() method to the StackIterator class.  This enables us to achieve the createScriptCallStack() semantics that the inspector expects.  This fixes the issue in https://bugs.webkit.org/show_bug.cgi?id=119141, and allows us to pass the &quot;plugins&quot; layout tests.  It is questionable whether it is appropriate for the inspector to expect those semantics, but that&apos;s a question for another day. 

This change set also makes Interpreter::getStackTrace() private again so that &quot;unauthorized&quot; code is not encouraged to call it.  This results in &quot;moving&quot; some ErrorConstructor and NativeErrorConstructor functions under the Interpreter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915458</commentid>
    <comment_count>1</comment_count>
      <attachid>208347</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-08 08:52:16 -0700</bug_when>
    <thetext>Created attachment 208347
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915460</commentid>
    <comment_count>2</comment_count>
      <attachid>208347</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-08-08 09:01:14 -0700</bug_when>
    <thetext>Comment on attachment 208347
the patch

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

&gt; Source/JavaScriptCore/ChangeLog:19
&gt; +        (JSC::StackIterator::goToNextFrame): Renamed from gotoNextFrame.

goto is a single word so the old capitalization was correct

&gt; Source/JavaScriptCore/ChangeLog:32
&gt; +        (JSC::ErrorConstructor::getCallData):
&gt; +        - Don&apos;t want ErrorConstructor to call Interpreter::getStackTrace()
&gt; +          directly. So, we moved the helper functions into the Interpreter
&gt; +          class.

Haven&apos;t read the full patch yet, but if possible it would be nice to have changes that should not effect behavior moved into a separate bug, and landed earlier if possible</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915463</commentid>
    <comment_count>3</comment_count>
      <attachid>208347</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-08-08 09:04:06 -0700</bug_when>
    <thetext>Comment on attachment 208347
the patch

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

&gt; Source/JavaScriptCore/interpreter/Interpreter.h:229
&gt; +        static EncodedJSValue JSC_HOST_CALL constructWithErrorConstructor(ExecState*);
&gt; +        static EncodedJSValue JSC_HOST_CALL callErrorConstructor(ExecState*);
&gt; +        static EncodedJSValue JSC_HOST_CALL constructWithNativeErrorConstructor(ExecState*);
&gt; +        static EncodedJSValue JSC_HOST_CALL callNativeErrorConstructor(ExecState*);
&gt; +

I like this, but it seems like this can be a separate patch, r+ for anding it separately</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915464</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-08 09:05:26 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 208347 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=208347&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:19
&gt; &gt; +        (JSC::StackIterator::goToNextFrame): Renamed from gotoNextFrame.
&gt; 
&gt; goto is a single word so the old capitalization was correct

Hmmm ... not in English AFAIK, but I&apos;m ok with sticking with &quot;goto&quot; if there are no objection from anyone else.

(In reply to comment #3)
&gt; (From update of attachment 208347 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=208347&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/interpreter/Interpreter.h:229
&gt; &gt; +        static EncodedJSValue JSC_HOST_CALL constructWithErrorConstructor(ExecState*);
&gt; &gt; +        static EncodedJSValue JSC_HOST_CALL callErrorConstructor(ExecState*);
&gt; &gt; +        static EncodedJSValue JSC_HOST_CALL constructWithNativeErrorConstructor(ExecState*);
&gt; &gt; +        static EncodedJSValue JSC_HOST_CALL callNativeErrorConstructor(ExecState*);
&gt; &gt; +
&gt; 
&gt; I like this, but it seems like this can be a separate patch, r+ for anding it separately

Will land this separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915473</commentid>
    <comment_count>5</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-08-08 09:24:03 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 208347 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=208347&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/ChangeLog:19
&gt; &gt; &gt; +        (JSC::StackIterator::goToNextFrame): Renamed from gotoNextFrame.
&gt; &gt; 
&gt; &gt; goto is a single word so the old capitalization was correct
&gt; 
&gt; Hmmm ... not in English AFAIK, but I&apos;m ok with sticking with &quot;goto&quot; if there are no objection from anyone else.

goto doesn&apos;t get flagged as wrong by spellcheck or autocorrect :D

&gt; 
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 208347 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=208347&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/interpreter/Interpreter.h:229
&gt; &gt; &gt; +        static EncodedJSValue JSC_HOST_CALL constructWithErrorConstructor(ExecState*);
&gt; &gt; &gt; +        static EncodedJSValue JSC_HOST_CALL callErrorConstructor(ExecState*);
&gt; &gt; &gt; +        static EncodedJSValue JSC_HOST_CALL constructWithNativeErrorConstructor(ExecState*);
&gt; &gt; &gt; +        static EncodedJSValue JSC_HOST_CALL callNativeErrorConstructor(ExecState*);
&gt; &gt; &gt; +
&gt; &gt; 
&gt; &gt; I like this, but it seems like this can be a separate patch, r+ for anding it separately
&gt; 
&gt; Will land this separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915489</commentid>
    <comment_count>6</comment_count>
      <attachid>208353</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-08 09:52:32 -0700</bug_when>
    <thetext>Created attachment 208353
updated patch: use &quot;goto&quot;, and ErrorConstructor changes landed separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915492</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-08 09:57:15 -0700</bug_when>
    <thetext>Thanks for the review.  Revised patch landed in r153825: &lt;http://trac.webkit.org/r153825&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208347</attachid>
            <date>2013-08-08 08:52:16 -0700</date>
            <delta_ts>2013-08-08 09:52:32 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>bug-119575.patch</filename>
            <type>text/plain</type>
            <size>12755</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUzODE2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDEzLTA4LTA4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXN0b3JpbmcgdXNlIG9mIFN0YWNrSXRlcmF0b3IgaW5zdGVhZCBvZiBJbnRlcnByZXRlcjo6Z2V0
U3RhY2t0cmFjZSgpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE5NTc1LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaDoKKyAgICAgICAgLSBNYWRlIGdldFN0
YWNrVHJhY2UoKSBwcml2YXRlLgorICAgICAgICAtIEFkZGVkIGhlbHBlciBmdW5jdGlvbnMgZm9y
IEVycm9yQ29uc3RydWN0b3IgYW5kIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IuCisgICAgICAgICog
aW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OlN0YWNrSXRlcmF0
b3I6OlN0YWNrSXRlcmF0b3IpOgorICAgICAgICAoSlNDOjpTdGFja0l0ZXJhdG9yOjpudW1iZXJP
ZkZyYW1lcyk6CisgICAgICAgIC0gQ29tcHV0ZXMgdGhlIG51bWJlciBvZiBmcmFtZXMgYnkgaXRl
cmF0aW5nIHRocm91Z2ggdGhlIHdob2xlIHN0YWNrCisgICAgICAgICAgZnJvbSB0aGUgc3RhcnRp
bmcgZnJhbWUuIFRoZSBpdGVyYXRvciB3aWxsIHNhdmUgaXRzIGN1cnJlbnQgZnJhbWUKKyAgICAg
ICAgICBwb3NpdGlvbiBiZWZvcmUgY291bnRpbmcgdGhlIGZyYW1lcywgYW5kIHRoZW4gcmVzdG9y
aW5nIGl0IGFmdGVyCisgICAgICAgICAgdGhlIGNvdW50aW5nLgorICAgICAgICAoSlNDOjpTdGFj
a0l0ZXJhdG9yOjpnb1RvRnJhbWVBdEluZGV4KToKKyAgICAgICAgKEpTQzo6U3RhY2tJdGVyYXRv
cjo6Z29Ub05leHRGcmFtZSk6IFJlbmFtZWQgZnJvbSBnb3RvTmV4dEZyYW1lLgorICAgICAgICAo
SlNDOjpTdGFja0l0ZXJhdG9yOjpyZXNldEl0ZXJhdG9yKToKKyAgICAgICAgLSBQb2ludHMgdGhl
IGl0ZXJhdG9yIHRvIHRoZSBzdGFydGluZyBmcmFtZS4KKyAgICAgICAgKEpTQzo6U3RhY2tJdGVy
YXRvcjo6ZmluZCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvclByaXZhdGUu
aDoKKyAgICAgICAgKEpTQzo6U3RhY2tJdGVyYXRvcjo6b3BlcmF0b3IrKyk6CisgICAgICAgICog
cnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6
OmNvbnN0cnVjdFdpdGhFcnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6RXJyb3JDb25z
dHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpj
YWxsRXJyb3JDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkVycm9yQ29uc3RydWN0b3I6Omdl
dENhbGxEYXRhKToKKyAgICAgICAgLSBEb24ndCB3YW50IEVycm9yQ29uc3RydWN0b3IgdG8gY2Fs
bCBJbnRlcnByZXRlcjo6Z2V0U3RhY2tUcmFjZSgpCisgICAgICAgICAgZGlyZWN0bHkuIFNvLCB3
ZSBtb3ZlZCB0aGUgaGVscGVyIGZ1bmN0aW9ucyBpbnRvIHRoZSBJbnRlcnByZXRlcgorICAgICAg
ICAgIGNsYXNzLgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpjb25zdHJ1Y3RXaXRoTmF0aXZlRXJyb3JDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I6OmdldENvbnN0
cnVjdERhdGEpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6Y2FsbE5hdGl2ZUVycm9yQ29u
c3RydWN0b3IpOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpnZXRDYWxs
RGF0YSk6CisgICAgICAgIC0gRG9uJ3Qgd2FudCBOYXRpdmVFcnJvckNvbnN0cnVjdG9yIHRvIGNh
bGwgSW50ZXJwcmV0ZXI6OmdldFN0YWNrVHJhY2UoKQorICAgICAgICAgIGRpcmVjdGx5LiBTbywg
d2UgbW92ZWQgdGhlIGhlbHBlciBmdW5jdGlvbnMgaW50byB0aGUgSW50ZXJwcmV0ZXIKKyAgICAg
ICAgICBjbGFzcy4KKwogMjAxMy0wOC0wNyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdA
YXBwbGUuY29tPgogCiAgICAgICAgIDMyLWJpdCBjb2RlIGdlbiBmb3IgVHlwZU9mIGRvZXNuJ3Qg
cHJvcGVybHkgdXBkYXRlIHRoZSBBYnN0cmFjdEludGVycHJldGVyIHN0YXRlCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAkocmV2aXNp
b24gMTUzNjc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyMiwxNCArMjIyLDE3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBzdGF0aWMgdm9pZCBhZGRTdGFja1RyYWNlSWZOZWNlc3NhcnkoQ2FsbEZyYW1l
KiwgSlNWYWx1ZSBlcnJvcik7CiAgICAgICAgIEpTU3RyaW5nKiBzdGFja1RyYWNlQXNTdHJpbmco
RXhlY1N0YXRlKiwgVmVjdG9yPFN0YWNrRnJhbWU+KTsKIAorICAgICAgICBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoRXJyb3JDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqKTsKKyAgICAgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bEVycm9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKik7CisgICAgICAgIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhOYXRpdmVFcnJvckNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSopOworICAgICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
YWxsTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKKwogICAgICAgICB2b2lkIGR1
bXBTYW1wbGVEYXRhKEV4ZWNTdGF0ZSogZXhlYyk7CiAgICAgICAgIHZvaWQgc3RhcnRTYW1wbGlu
ZygpOwogICAgICAgICB2b2lkIHN0b3BTYW1wbGluZygpOwogCiAgICAgICAgIEpTX0VYUE9SVF9Q
UklWQVRFIHZvaWQgZHVtcENhbGxGcmFtZShDYWxsRnJhbWUqKTsKIAotICAgICAgICBKU19FWFBP
UlRfUFJJVkFURSB2b2lkIGdldFN0YWNrVHJhY2UoVmVjdG9yPFN0YWNrRnJhbWU+JiByZXN1bHRz
LCBzaXplX3QgbWF4U3RhY2tTaXplID0gc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgo
KSk7Ci0KICAgICBwcml2YXRlOgogICAgICAgICBlbnVtIEV4ZWN1dGlvbkZsYWcgeyBOb3JtYWws
IEluaXRpYWxpemVBbmRSZXR1cm4gfTsKIApAQCAtMjM3LDYgKzI0MCw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICB2b2lkIGVuZFJlcGVhdENhbGwoQ2FsbEZyYW1lQ2xvc3VyZSYpOwogICAg
ICAgICBKU1ZhbHVlIGV4ZWN1dGUoQ2FsbEZyYW1lQ2xvc3VyZSYpOwogCisgICAgICAgIHZvaWQg
Z2V0U3RhY2tUcmFjZShWZWN0b3I8U3RhY2tGcmFtZT4mIHJlc3VsdHMsIHNpemVfdCBtYXhTdGFj
a1NpemUgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKICAgICAgICAgTkVW
RVJfSU5MSU5FIGJvb2wgdW53aW5kQ2FsbEZyYW1lKFN0YWNrSXRlcmF0b3ImLCBKU1ZhbHVlKTsK
IAogICAgICAgICB2b2lkIGR1bXBSZWdpc3RlcnMoQ2FsbEZyYW1lKik7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrSXRlcmF0b3IuY3BwCShy
ZXZpc2lvbiAxNTM2NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3Rh
Y2tJdGVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDE1ICszNCwzNSBAQAogCiBuYW1l
c3BhY2UgSlNDIHsKIAotU3RhY2tJdGVyYXRvcjo6U3RhY2tJdGVyYXRvcihDYWxsRnJhbWUqIGZy
YW1lLCBTdGFja0l0ZXJhdG9yOjpGcmFtZUZpbHRlciBmaWx0ZXIpCi0gICAgOiBtX2ZpbHRlcihm
aWx0ZXIpCitTdGFja0l0ZXJhdG9yOjpTdGFja0l0ZXJhdG9yKENhbGxGcmFtZSogc3RhcnRGcmFt
ZSwgU3RhY2tJdGVyYXRvcjo6RnJhbWVGaWx0ZXIgZmlsdGVyKQorICAgIDogbV9zdGFydEZyYW1l
KHN0YXJ0RnJhbWUpCisgICAgLCBtX2ZpbHRlcihmaWx0ZXIpCiB7Ci0gICAgQVNTRVJUKGZyYW1l
KTsKLSAgICBtX2ZyYW1lID0gRnJhbWU6OmNyZWF0ZShmcmFtZSk7Ci0gICAgbV9mcmFtZSA9IG1f
ZnJhbWUtPmxvZ2ljYWxGcmFtZSgpOworICAgIEFTU0VSVChzdGFydEZyYW1lKTsKKyAgICByZXNl
dEl0ZXJhdG9yKCk7CiB9CiAKLXZvaWQgU3RhY2tJdGVyYXRvcjo6Z290b05leHRGcmFtZSgpCitz
aXplX3QgU3RhY2tJdGVyYXRvcjo6bnVtYmVyT2ZGcmFtZXMoKQoreworICAgIGludCBzYXZlZEZy
YW1lSW5kZXggPSBtX2ZyYW1lSW5kZXg7CisgICAgcmVzZXRJdGVyYXRvcigpOworICAgIHdoaWxl
IChtX2ZyYW1lKQorICAgICAgICBnb1RvTmV4dEZyYW1lKCk7CisgICAgc2l6ZV90IG51bWJlck9m
RnJhbWVzID0gbV9mcmFtZUluZGV4OworCisgICAgcmVzZXRJdGVyYXRvcigpOworICAgIGdvVG9G
cmFtZUF0SW5kZXgoc2F2ZWRGcmFtZUluZGV4KTsKKworICAgIHJldHVybiBudW1iZXJPZkZyYW1l
czsKK30KKwordm9pZCBTdGFja0l0ZXJhdG9yOjpnb1RvRnJhbWVBdEluZGV4KHNpemVfdCBpbmRl
eCkKK3sKKyAgICB3aGlsZSAobV9mcmFtZSAmJiAobV9mcmFtZUluZGV4ICE9IGluZGV4KSkKKyAg
ICAgICAgZ29Ub05leHRGcmFtZSgpOworfQorCit2b2lkIFN0YWNrSXRlcmF0b3I6OmdvVG9OZXh0
RnJhbWUoKQogewogICAgIEZyYW1lKiBmcmFtZSA9IG1fZnJhbWU7CiAgICAgd2hpbGUgKGZyYW1l
KSB7CkBAIC01MSw2ICs3MSwxNCBAQCB2b2lkIFN0YWNrSXRlcmF0b3I6OmdvdG9OZXh0RnJhbWUo
KQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIG1fZnJhbWUgPSBmcmFtZTsKKyAgICBt
X2ZyYW1lSW5kZXgrKzsKK30KKwordm9pZCBTdGFja0l0ZXJhdG9yOjpyZXNldEl0ZXJhdG9yKCkK
K3sKKyAgICBtX2ZyYW1lSW5kZXggPSAwOworICAgIG1fZnJhbWUgPSBGcmFtZTo6Y3JlYXRlKG1f
c3RhcnRGcmFtZSk7CisgICAgbV9mcmFtZSA9IG1fZnJhbWUtPmxvZ2ljYWxGcmFtZSgpOwogfQog
CiB2b2lkIFN0YWNrSXRlcmF0b3I6OmZpbmQoSlNGdW5jdGlvbiogZnVuY3Rpb25PYmopCkBAIC02
MCw3ICs4OCw3IEBAIHZvaWQgU3RhY2tJdGVyYXRvcjo6ZmluZChKU0Z1bmN0aW9uKiBmdW4KICAg
ICB3aGlsZSAobV9mcmFtZSkgewogICAgICAgICBpZiAobV9mcmFtZS0+Y2FsbGVlKCkgPT0gdGFy
Z2V0Q2FsbGVlKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGdvdG9OZXh0RnJhbWUoKTsK
KyAgICAgICAgZ29Ub05leHRGcmFtZSgpOwogICAgIH0KIH0KIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrSXRlcmF0b3JQcml2YXRlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrSXRlcmF0b3JQcml2YXRl
LmgJKHJldmlzaW9uIDE1MzY3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9TdGFja0l0ZXJhdG9yUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwyMCArMzksMjYg
QEAgcHVibGljOgogICAgIGNsYXNzIEZyYW1lOwogICAgIHR5cGVkZWYgYm9vbCAoKkZyYW1lRmls
dGVyKShGcmFtZSopOwogCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgc2l6ZV90IG51bWJlck9mRnJh
bWVzKCk7CisKICAgICBGcmFtZSYgb3BlcmF0b3IqKCkgeyByZXR1cm4gKm1fZnJhbWU7IH0KICAg
ICBBTFdBWVNfSU5MSU5FIEZyYW1lKiBvcGVyYXRvci0+KCkgeyByZXR1cm4gbV9mcmFtZTsgfQog
CiAgICAgYm9vbCBvcGVyYXRvcj09KEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gbV9mcmFtZSA9PSBm
cmFtZTsgfQogICAgIGJvb2wgb3BlcmF0b3IhPShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIG1fZnJh
bWUgIT0gZnJhbWU7IH0KLSAgICB2b2lkIG9wZXJhdG9yKysoKSB7IGdvdG9OZXh0RnJhbWUoKTsg
fQorICAgIHZvaWQgb3BlcmF0b3IrKygpIHsgZ29Ub05leHRGcmFtZSgpOyB9CiAgICAgdm9pZCBm
aW5kKEpTRnVuY3Rpb24qKTsKIAogcHJpdmF0ZToKICAgICBKU19FWFBPUlRfUFJJVkFURSBTdGFj
a0l0ZXJhdG9yKENhbGxGcmFtZSogc3RhcnRGcmFtZSwgRnJhbWVGaWx0ZXIgPSAwKTsKIAogICAg
IHN0YXRpYyBGcmFtZSogZW5kKCkgeyByZXR1cm4gMDsgfQotICAgIEpTX0VYUE9SVF9QUklWQVRF
IHZvaWQgZ290b05leHRGcmFtZSgpOworICAgIHZvaWQgZ29Ub0ZyYW1lQXRJbmRleChzaXplX3Qg
ZnJhbWVJbmRleCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBnb1RvTmV4dEZyYW1lKCk7
CisgICAgdm9pZCByZXNldEl0ZXJhdG9yKCk7CiAKKyAgICBDYWxsRnJhbWUqIG1fc3RhcnRGcmFt
ZTsKKyAgICBzaXplX3QgbV9mcmFtZUluZGV4OwogICAgIEZyYW1lKiBtX2ZyYW1lOwogICAgIEZy
YW1lRmlsdGVyIG1fZmlsdGVyOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvckNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTUzNjc3KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgdm9pZCBFcnJvckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbihFeAogCiAvLyBFQ01BIDE1LjkuMwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RXaXRoRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCitF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGVycHJldGVyOjpjb25zdHJ1Y3RXaXRoRXJy
b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0g
ZXhlYy0+YXJndW1lbnRDb3VudCgpID8gZXhlYy0+YXJndW1lbnQoMCkgOiBqc1VuZGVmaW5lZCgp
OwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBhc0ludGVybmFsRnVuY3Rpb24oZXhl
Yy0+Y2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKS0+ZXJyb3JTdHJ1Y3R1cmUoKTsKQEAgLTYwLDEx
ICs2MCwxMSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zCiAKIENv
bnN0cnVjdFR5cGUgRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBD
b25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQogewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gY29uc3RydWN0V2l0aEVycm9yQ29uc3RydWN0b3I7CisgICAgY29uc3RydWN0
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBJbnRlcnByZXRlcjo6Y29uc3RydWN0V2l0aEVycm9yQ29u
c3RydWN0b3I7CiAgICAgcmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0OwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IGV4ZWMpCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGVycHJldGVyOjpjYWxsRXJy
b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0g
ZXhlYy0+YXJndW1lbnRDb3VudCgpID8gZXhlYy0+YXJndW1lbnQoMCkgOiBqc1VuZGVmaW5lZCgp
OwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBhc0ludGVybmFsRnVuY3Rpb24oZXhl
Yy0+Y2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKS0+ZXJyb3JTdHJ1Y3R1cmUoKTsKQEAgLTc2LDcg
Kzc2LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbAogCiBDYWxs
VHlwZSBFcnJvckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2Fs
bERhdGEpCiB7Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEVycm9yQ29uc3Ry
dWN0b3I7CisgICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gSW50ZXJwcmV0ZXI6OmNhbGxF
cnJvckNvbnN0cnVjdG9yOwogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CiB9CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29u
c3RydWN0b3IuY3BwCShyZXZpc2lvbiAxNTM2NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDks
NyArNDksNyBAQCB2b2lkIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I6OnZpc2l0Q2hpbGRyCiAgICAg
dmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fZXJyb3JTdHJ1Y3R1cmUpOwogfQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoTmF0aXZlRXJyb3JD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEludGVycHJldGVyOjpjb25zdHJ1Y3RXaXRoTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gZXhlYy0+YXJndW1lbnRDb3VudCgp
ID8gZXhlYy0+YXJndW1lbnQoMCkgOiBqc1VuZGVmaW5lZCgpOwogICAgIFN0cnVjdHVyZSogZXJy
b3JTdHJ1Y3R1cmUgPSBzdGF0aWNfY2FzdDxOYXRpdmVFcnJvckNvbnN0cnVjdG9yKj4oZXhlYy0+
Y2FsbGVlKCkpLT5lcnJvclN0cnVjdHVyZSgpOwpAQCAtNjIsMTEgKzYyLDExIEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnMKIAogQ29uc3RydWN0VHlwZSBOYXRpdmVF
cnJvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEm
IGNvbnN0cnVjdERhdGEpCiB7Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBj
b25zdHJ1Y3RXaXRoTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjsKKyAgICBjb25zdHJ1Y3REYXRhLm5h
dGl2ZS5mdW5jdGlvbiA9IEludGVycHJldGVyOjpjb25zdHJ1Y3RXaXRoTmF0aXZlRXJyb3JDb25z
dHJ1Y3RvcjsKICAgICByZXR1cm4gQ29uc3RydWN0VHlwZUhvc3Q7CiB9CiAgICAgCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIGV4ZWMpCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGVycHJldGVy
OjpjYWxsTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNW
YWx1ZSBtZXNzYWdlID0gZXhlYy0+YXJndW1lbnRDb3VudCgpID8gZXhlYy0+YXJndW1lbnQoMCkg
OiBqc1VuZGVmaW5lZCgpOwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBzdGF0aWNf
Y2FzdDxOYXRpdmVFcnJvckNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpLT5lcnJvclN0cnVj
dHVyZSgpOwpAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsCiAKIENhbGxUeXBlIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRh
KEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVu
Y3Rpb24gPSBjYWxsTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjsKKyAgICBjYWxsRGF0YS5uYXRpdmUu
ZnVuY3Rpb24gPSBJbnRlcnByZXRlcjo6Y2FsbE5hdGl2ZUVycm9yQ29uc3RydWN0b3I7CiAgICAg
cmV0dXJuIENhbGxUeXBlSG9zdDsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUzODE2
KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTMtMDgtMDggIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAg
ICAgIFJlc3RvcmluZyB1c2Ugb2YgU3RhY2tJdGVyYXRvciBpbnN0ZWFkIG9mIEludGVycHJldGVy
OjpnZXRTdGFja3RyYWNlKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTk1NzUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0
Q2FsbFN0YWNrRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTY3JpcHRDYWxs
U3RhY2spOgorCiAyMDEzLTA4LTA4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4K
IAogICAgICAgICBNb3ZlIG1vcmUgc3R5bGUgcmVjYWxjIGNvZGUgdG8gU3R5bGVSZXNvbHZlVHJl
ZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0Zh
Y3RvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dENhbGxTdGFja0ZhY3RvcnkuY3BwCShyZXZpc2lvbiAxNTM2NzcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzgsMjIgKzc4LDIyIEBAIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3Jp
cHQKIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2soSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIHNpemVfdCBtYXhTdGFja1NpemUpCiB7CiAgICAgVmVjdG9yPFNj
cmlwdENhbGxGcmFtZT4gZnJhbWVzOwotICAgIFZlY3RvcjxTdGFja0ZyYW1lPiBzdGFja1RyYWNl
OwotICAgIGV4ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPmdldFN0YWNrVHJhY2Uoc3RhY2tUcmFjZSwg
bWF4U3RhY2tTaXplICsgMSk7Ci0gICAgZm9yIChzaXplX3QgaSA9IHN0YWNrVHJhY2Uuc2l6ZSgp
ID09IDEgPyAwIDogMTsgaSA8IHN0YWNrVHJhY2Uuc2l6ZSgpOyBpKyspIHsKKyAgICBBU1NFUlQo
ZXhlYyk7CisgICAgQ2FsbEZyYW1lKiBmcmFtZSA9IGV4ZWMtPnZtKCkudG9wQ2FsbEZyYW1lOwor
ICAgIFN0YWNrSXRlcmF0b3IgaXRlciA9IGZyYW1lLT5iZWdpbigpOworICAgIGlmIChpdGVyLm51
bWJlck9mRnJhbWVzKCkgPiAxKQorICAgICAgICArK2l0ZXI7CisgICAgZm9yICg7IGl0ZXIgIT0g
ZnJhbWUtPmVuZCgpICYmIG1heFN0YWNrU2l6ZS0tOyArK2l0ZXIpIHsKICAgICAgICAgLy8gVGhp
cyBlYXJseSBleGl0IGlzIG5lY2Vzc2FyeSB0byBtYWludGFpbiBvdXIgb2xkIGJlaGF2aW91cgog
ICAgICAgICAvLyBidXQgdGhlIHN0YWNrIHRyYWNlIHdlIHByb2R1Y2Ugbm93IGlzIGNvbXBsZXRl
IGFuZCBoYW5kbGVzIGFsbAogICAgICAgICAvLyB3YXlzIGluIHdoaWNoIGNvZGUgbWF5IGJlIHJ1
bm5pbmcKLSAgICAgICAgaWYgKCFzdGFja1RyYWNlW2ldLmNhbGxlZSAmJiBmcmFtZXMuc2l6ZSgp
KQorICAgICAgICBpZiAoIWl0ZXItPmNhbGxlZSgpICYmIGZyYW1lcy5zaXplKCkpCiAgICAgICAg
ICAgICBicmVhazsKLQotICAgICAgICBTdHJpbmcgZnVuY3Rpb25OYW1lID0gc3RhY2tUcmFjZVtp
XS5mcmllbmRseUZ1bmN0aW9uTmFtZShleGVjKTsKICAgICAgICAgdW5zaWduZWQgbGluZTsKICAg
ICAgICAgdW5zaWduZWQgY29sdW1uOwotICAgICAgICBzdGFja1RyYWNlW2ldLmNvbXB1dGVMaW5l
QW5kQ29sdW1uKGxpbmUsIGNvbHVtbik7Ci0gICAgICAgIGZyYW1lcy5hcHBlbmQoU2NyaXB0Q2Fs
bEZyYW1lKGZ1bmN0aW9uTmFtZSwgc3RhY2tUcmFjZVtpXS5zb3VyY2VVUkwsIGxpbmUsIGNvbHVt
bikpOworICAgICAgICBpdGVyLT5jb21wdXRlTGluZUFuZENvbHVtbihsaW5lLCBjb2x1bW4pOwor
ICAgICAgICBmcmFtZXMuYXBwZW5kKFNjcmlwdENhbGxGcmFtZShpdGVyLT5mdW5jdGlvbk5hbWUo
KSwgaXRlci0+c291cmNlVVJMKCksIGxpbmUsIGNvbHVtbikpOwogICAgIH0KLSAgICAKICAgICBy
ZXR1cm4gU2NyaXB0Q2FsbFN0YWNrOjpjcmVhdGUoZnJhbWVzKTsKIH0KIAo=
</data>
<flag name="review"
          id="230252"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208353</attachid>
            <date>2013-08-08 09:52:32 -0700</date>
            <delta_ts>2013-08-08 09:52:32 -0700</delta_ts>
            <desc>updated patch: use &quot;goto&quot;, and ErrorConstructor changes landed separately.</desc>
            <filename>bug-119575.patch</filename>
            <type>text/plain</type>
            <size>7010</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUzODIzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDEzLTA4LTA4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXN0b3JpbmcgdXNlIG9mIFN0YWNrSXRlcmF0b3IgaW5zdGVhZCBvZiBJbnRlcnByZXRlcjo6Z2V0
U3RhY2t0cmFjZSgpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE5NTc1LgorCisgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgorCisgICAg
ICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaDoKKyAgICAgICAgLSBNYWRlIGdldFN0YWNr
VHJhY2UoKSBwcml2YXRlLgorICAgICAgICAqIGludGVycHJldGVyL1N0YWNrSXRlcmF0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpTdGFja0l0ZXJhdG9yOjpTdGFja0l0ZXJhdG9yKToKKyAgICAgICAg
KEpTQzo6U3RhY2tJdGVyYXRvcjo6bnVtYmVyT2ZGcmFtZXMpOgorICAgICAgICAtIENvbXB1dGVz
IHRoZSBudW1iZXIgb2YgZnJhbWVzIGJ5IGl0ZXJhdGluZyB0aHJvdWdoIHRoZSB3aG9sZSBzdGFj
aworICAgICAgICAgIGZyb20gdGhlIHN0YXJ0aW5nIGZyYW1lLiBUaGUgaXRlcmF0b3Igd2lsbCBz
YXZlIGl0cyBjdXJyZW50IGZyYW1lCisgICAgICAgICAgcG9zaXRpb24gYmVmb3JlIGNvdW50aW5n
IHRoZSBmcmFtZXMsIGFuZCB0aGVuIHJlc3RvcmluZyBpdCBhZnRlcgorICAgICAgICAgIHRoZSBj
b3VudGluZy4KKyAgICAgICAgKEpTQzo6U3RhY2tJdGVyYXRvcjo6Z290b0ZyYW1lQXRJbmRleCk6
CisgICAgICAgIChKU0M6OlN0YWNrSXRlcmF0b3I6OmdvdG9OZXh0RnJhbWUpOgorICAgICAgICAo
SlNDOjpTdGFja0l0ZXJhdG9yOjpyZXNldEl0ZXJhdG9yKToKKyAgICAgICAgLSBQb2ludHMgdGhl
IGl0ZXJhdG9yIHRvIHRoZSBzdGFydGluZyBmcmFtZS4KKyAgICAgICAgKiBpbnRlcnByZXRlci9T
dGFja0l0ZXJhdG9yUHJpdmF0ZS5oOgorCiAyMDEzLTA4LTA4ICBNYXJrIExhbSAgPG1hcmsubGFt
QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlZCBFcnJvckNvbnN0cnVjdG9yIGFuZCBOYXRpdmVF
cnJvckNvbnN0cnVjdG9yIGhlbHBlciBmdW5jdGlvbnMgaW50bwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgJKHJldmlzaW9uIDE1Mzgy
MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMzMsOCArMjMzLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdW1wQ2FsbEZyYW1lKENhbGxGcmFtZSopOwogCi0g
ICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZ2V0U3RhY2tUcmFjZShWZWN0b3I8U3RhY2tG
cmFtZT4mIHJlc3VsdHMsIHNpemVfdCBtYXhTdGFja1NpemUgPSBzdGQ6Om51bWVyaWNfbGltaXRz
PHNpemVfdD46Om1heCgpKTsKLQogICAgIHByaXZhdGU6CiAgICAgICAgIGVudW0gRXhlY3V0aW9u
RmxhZyB7IE5vcm1hbCwgSW5pdGlhbGl6ZUFuZFJldHVybiB9OwogCkBAIC0yNDIsNiArMjQwLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZW5kUmVwZWF0Q2FsbChDYWxsRnJhbWVD
bG9zdXJlJik7CiAgICAgICAgIEpTVmFsdWUgZXhlY3V0ZShDYWxsRnJhbWVDbG9zdXJlJik7CiAK
KyAgICAgICAgdm9pZCBnZXRTdGFja1RyYWNlKFZlY3RvcjxTdGFja0ZyYW1lPiYgcmVzdWx0cywg
c2l6ZV90IG1heFN0YWNrU2l6ZSA9IHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkp
OwogICAgICAgICBORVZFUl9JTkxJTkUgYm9vbCB1bndpbmRDYWxsRnJhbWUoU3RhY2tJdGVyYXRv
ciYsIEpTVmFsdWUpOwogCiAgICAgICAgIHZvaWQgZHVtcFJlZ2lzdGVycyhDYWxsRnJhbWUqKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja0l0ZXJhdG9yLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tJ
dGVyYXRvci5jcHAJKHJldmlzaW9uIDE1MzgyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9TdGFja0l0ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTIgKzM0
LDMyIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1TdGFja0l0ZXJhdG9yOjpTdGFja0l0ZXJhdG9y
KENhbGxGcmFtZSogZnJhbWUsIFN0YWNrSXRlcmF0b3I6OkZyYW1lRmlsdGVyIGZpbHRlcikKLSAg
ICA6IG1fZmlsdGVyKGZpbHRlcikKK1N0YWNrSXRlcmF0b3I6OlN0YWNrSXRlcmF0b3IoQ2FsbEZy
YW1lKiBzdGFydEZyYW1lLCBTdGFja0l0ZXJhdG9yOjpGcmFtZUZpbHRlciBmaWx0ZXIpCisgICAg
OiBtX3N0YXJ0RnJhbWUoc3RhcnRGcmFtZSkKKyAgICAsIG1fZmlsdGVyKGZpbHRlcikKIHsKLSAg
ICBBU1NFUlQoZnJhbWUpOwotICAgIG1fZnJhbWUgPSBGcmFtZTo6Y3JlYXRlKGZyYW1lKTsKLSAg
ICBtX2ZyYW1lID0gbV9mcmFtZS0+bG9naWNhbEZyYW1lKCk7CisgICAgQVNTRVJUKHN0YXJ0RnJh
bWUpOworICAgIHJlc2V0SXRlcmF0b3IoKTsKK30KKworc2l6ZV90IFN0YWNrSXRlcmF0b3I6Om51
bWJlck9mRnJhbWVzKCkKK3sKKyAgICBpbnQgc2F2ZWRGcmFtZUluZGV4ID0gbV9mcmFtZUluZGV4
OworICAgIHJlc2V0SXRlcmF0b3IoKTsKKyAgICB3aGlsZSAobV9mcmFtZSkKKyAgICAgICAgZ290
b05leHRGcmFtZSgpOworICAgIHNpemVfdCBudW1iZXJPZkZyYW1lcyA9IG1fZnJhbWVJbmRleDsK
KworICAgIHJlc2V0SXRlcmF0b3IoKTsKKyAgICBnb3RvRnJhbWVBdEluZGV4KHNhdmVkRnJhbWVJ
bmRleCk7CisKKyAgICByZXR1cm4gbnVtYmVyT2ZGcmFtZXM7Cit9CisKK3ZvaWQgU3RhY2tJdGVy
YXRvcjo6Z290b0ZyYW1lQXRJbmRleChzaXplX3QgaW5kZXgpCit7CisgICAgd2hpbGUgKG1fZnJh
bWUgJiYgKG1fZnJhbWVJbmRleCAhPSBpbmRleCkpCisgICAgICAgIGdvdG9OZXh0RnJhbWUoKTsK
IH0KIAogdm9pZCBTdGFja0l0ZXJhdG9yOjpnb3RvTmV4dEZyYW1lKCkKQEAgLTUxLDYgKzcxLDE0
IEBAIHZvaWQgU3RhY2tJdGVyYXRvcjo6Z290b05leHRGcmFtZSgpCiAgICAgICAgICAgICBicmVh
azsKICAgICB9CiAgICAgbV9mcmFtZSA9IGZyYW1lOworICAgIG1fZnJhbWVJbmRleCsrOworfQor
Cit2b2lkIFN0YWNrSXRlcmF0b3I6OnJlc2V0SXRlcmF0b3IoKQoreworICAgIG1fZnJhbWVJbmRl
eCA9IDA7CisgICAgbV9mcmFtZSA9IEZyYW1lOjpjcmVhdGUobV9zdGFydEZyYW1lKTsKKyAgICBt
X2ZyYW1lID0gbV9mcmFtZS0+bG9naWNhbEZyYW1lKCk7CiB9CiAKIHZvaWQgU3RhY2tJdGVyYXRv
cjo6ZmluZChKU0Z1bmN0aW9uKiBmdW5jdGlvbk9iaikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9TdGFja0l0ZXJhdG9yUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja0l0ZXJhdG9yUHJpdmF0ZS5oCShy
ZXZpc2lvbiAxNTM4MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3Rh
Y2tJdGVyYXRvclByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksOCBAQCBwdWJs
aWM6CiAgICAgY2xhc3MgRnJhbWU7CiAgICAgdHlwZWRlZiBib29sICgqRnJhbWVGaWx0ZXIpKEZy
YW1lKik7CiAKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzaXplX3QgbnVtYmVyT2ZGcmFtZXMoKTsK
KwogICAgIEZyYW1lJiBvcGVyYXRvciooKSB7IHJldHVybiAqbV9mcmFtZTsgfQogICAgIEFMV0FZ
U19JTkxJTkUgRnJhbWUqIG9wZXJhdG9yLT4oKSB7IHJldHVybiBtX2ZyYW1lOyB9CiAKQEAgLTUx
LDggKzUzLDEyIEBAIHByaXZhdGU6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RhY2tJdGVyYXRv
cihDYWxsRnJhbWUqIHN0YXJ0RnJhbWUsIEZyYW1lRmlsdGVyID0gMCk7CiAKICAgICBzdGF0aWMg
RnJhbWUqIGVuZCgpIHsgcmV0dXJuIDA7IH0KKyAgICB2b2lkIGdvdG9GcmFtZUF0SW5kZXgoc2l6
ZV90IGZyYW1lSW5kZXgpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZ290b05leHRGcmFt
ZSgpOworICAgIHZvaWQgcmVzZXRJdGVyYXRvcigpOwogCisgICAgQ2FsbEZyYW1lKiBtX3N0YXJ0
RnJhbWU7CisgICAgc2l6ZV90IG1fZnJhbWVJbmRleDsKICAgICBGcmFtZSogbV9mcmFtZTsKICAg
ICBGcmFtZUZpbHRlciBtX2ZpbHRlcjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUzODIz
KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTMtMDgtMDggIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAg
ICAgIFJlc3RvcmluZyB1c2Ugb2YgU3RhY2tJdGVyYXRvciBpbnN0ZWFkIG9mIEludGVycHJldGVy
OjpnZXRTdGFja3RyYWNlKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTk1NzUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q2Fs
bFN0YWNrRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTY3JpcHRDYWxsU3Rh
Y2spOgorCiAyMDEzLTA4LTA4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjEyMTU1MSkgSW5jb3JyZWN0IGhhbmRsaW5nIG9mIGludmFsaWQg
bWVkaWEgcXVlcnkgbGlzdC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dENhbGxTdGFja0ZhY3RvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCShyZXZpc2lvbiAxNTM4MjMpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzgsMjIgKzc4LDIyIEBAIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
PiBjcmVhdGVTY3JpcHQKIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRD
YWxsU3RhY2soSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIHNpemVfdCBtYXhTdGFja1NpemUpCiB7CiAg
ICAgVmVjdG9yPFNjcmlwdENhbGxGcmFtZT4gZnJhbWVzOwotICAgIFZlY3RvcjxTdGFja0ZyYW1l
PiBzdGFja1RyYWNlOwotICAgIGV4ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPmdldFN0YWNrVHJhY2Uo
c3RhY2tUcmFjZSwgbWF4U3RhY2tTaXplICsgMSk7Ci0gICAgZm9yIChzaXplX3QgaSA9IHN0YWNr
VHJhY2Uuc2l6ZSgpID09IDEgPyAwIDogMTsgaSA8IHN0YWNrVHJhY2Uuc2l6ZSgpOyBpKyspIHsK
KyAgICBBU1NFUlQoZXhlYyk7CisgICAgQ2FsbEZyYW1lKiBmcmFtZSA9IGV4ZWMtPnZtKCkudG9w
Q2FsbEZyYW1lOworICAgIFN0YWNrSXRlcmF0b3IgaXRlciA9IGZyYW1lLT5iZWdpbigpOworICAg
IGlmIChpdGVyLm51bWJlck9mRnJhbWVzKCkgPiAxKQorICAgICAgICArK2l0ZXI7CisgICAgZm9y
ICg7IGl0ZXIgIT0gZnJhbWUtPmVuZCgpICYmIG1heFN0YWNrU2l6ZS0tOyArK2l0ZXIpIHsKICAg
ICAgICAgLy8gVGhpcyBlYXJseSBleGl0IGlzIG5lY2Vzc2FyeSB0byBtYWludGFpbiBvdXIgb2xk
IGJlaGF2aW91cgogICAgICAgICAvLyBidXQgdGhlIHN0YWNrIHRyYWNlIHdlIHByb2R1Y2Ugbm93
IGlzIGNvbXBsZXRlIGFuZCBoYW5kbGVzIGFsbAogICAgICAgICAvLyB3YXlzIGluIHdoaWNoIGNv
ZGUgbWF5IGJlIHJ1bm5pbmcKLSAgICAgICAgaWYgKCFzdGFja1RyYWNlW2ldLmNhbGxlZSAmJiBm
cmFtZXMuc2l6ZSgpKQorICAgICAgICBpZiAoIWl0ZXItPmNhbGxlZSgpICYmIGZyYW1lcy5zaXpl
KCkpCiAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICBTdHJpbmcgZnVuY3Rpb25OYW1lID0g
c3RhY2tUcmFjZVtpXS5mcmllbmRseUZ1bmN0aW9uTmFtZShleGVjKTsKICAgICAgICAgdW5zaWdu
ZWQgbGluZTsKICAgICAgICAgdW5zaWduZWQgY29sdW1uOwotICAgICAgICBzdGFja1RyYWNlW2ld
LmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxpbmUsIGNvbHVtbik7Ci0gICAgICAgIGZyYW1lcy5hcHBl
bmQoU2NyaXB0Q2FsbEZyYW1lKGZ1bmN0aW9uTmFtZSwgc3RhY2tUcmFjZVtpXS5zb3VyY2VVUkws
IGxpbmUsIGNvbHVtbikpOworICAgICAgICBpdGVyLT5jb21wdXRlTGluZUFuZENvbHVtbihsaW5l
LCBjb2x1bW4pOworICAgICAgICBmcmFtZXMuYXBwZW5kKFNjcmlwdENhbGxGcmFtZShpdGVyLT5m
dW5jdGlvbk5hbWUoKSwgaXRlci0+c291cmNlVVJMKCksIGxpbmUsIGNvbHVtbikpOwogICAgIH0K
LSAgICAKICAgICByZXR1cm4gU2NyaXB0Q2FsbFN0YWNrOjpjcmVhdGUoZnJhbWVzKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>