<?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>119919</bug_id>
          
          <creation_ts>2013-08-16 19:48:16 -0700</creation_ts>
          <short_desc>Concurrent JIT crashes in various fast/js/dfg-* tests while the main thread is setting innerHTML</short_desc>
          <delta_ts>2013-08-20 12:39:02 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>barraclough</cc>
    
    <cc>commit-queue</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>918177</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-16 19:48:16 -0700</bug_when>
    <thetext>In one of the crashes that I saw, the concurrent JIT crashed in QueryableExitSite::hasExitSite(), somewhere in the HashTable&apos;s iterator creation.  Super weird.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918355</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-17 14:41:04 -0700</bug_when>
    <thetext>I&apos;m seeing almost identical crashes every ~30 or so runs of v8-v6/v8-deltablue.js in the jsc shell.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918363</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-17 14:53:25 -0700</bug_when>
    <thetext>Found it!!

This is because lazy write barrier adding stores pointers directly into CodeBlock::m_constantRegisters, even while it appends things to that vector, leading to resizes, leading to the pointers being borked.

This appears to be more likely to cause crashes with concurrent JIT because there is more malloc churn while the DFG corrupts memory; in sequential JIT you&apos;re less likely to crash because all of the data structures probably get allocated in one go, then they slightly corrupt each other, and then they&apos;re all freed.

The fix is to have DesiredWriteBarriers have some way of referencing a write barrier without necessarily using a direct pointer.  Probably, DesiredWriteBarrier should have a Vector*+index mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918371</commentid>
    <comment_count>3</comment_count>
      <attachid>209014</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-08-17 16:20:22 -0700</bug_when>
    <thetext>Created attachment 209014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918382</commentid>
    <comment_count>4</comment_count>
      <attachid>209014</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-17 20:07:43 -0700</bug_when>
    <thetext>Comment on attachment 209014
Patch

Clearing flags on attachment: 209014

Committed r154245: &lt;http://trac.webkit.org/changeset/154245&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918383</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-17 20:07:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918727</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-19 12:15:24 -0700</bug_when>
    <thetext>I&apos;m still seeing these crashes, for example:

http://build.webkit.org/results/Apple%20Lion%20Debug%20WK1%20(Tests)/r154283%20(10216)/fast/js/dfg-intrinsic-unused-this-method-check-crash-log.txt

Again, the concurrent JIT thread has crashed in a way that strongly implies malloc corruption.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919060</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-08-20 08:35:04 -0700</bug_when>
    <thetext>Ugh, this is just embarrassing. Working on a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919151</commentid>
    <comment_count>8</comment_count>
      <attachid>209215</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-08-20 11:57:23 -0700</bug_when>
    <thetext>Created attachment 209215
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919156</commentid>
    <comment_count>9</comment_count>
      <attachid>209215</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-08-20 12:00:01 -0700</bug_when>
    <thetext>Comment on attachment 209215
Patch

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

typos galore

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        More fixes for WriteBarrier deferral during concurrent JIT-ing. This patch makes the use of DesiredWriteBarriers class and the 
&gt; +        initializeLazyWriteBarrierFor* wrapper functions. 

...makes the use of the DesiredWriteBarriers class and the initializeLazyWriteBarrierFor* wrapper functions more sane.

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        Refactored DesiredWriteBarrier to require an owner, a type, a CodeBlock, and an index.. The type indicates how to use CodeBlock

s/../.

s/use CodeBlock/use the CodeBlock</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919159</commentid>
    <comment_count>10</comment_count>
      <attachid>209215</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-08-20 12:03:39 -0700</bug_when>
    <thetext>Comment on attachment 209215
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919160</commentid>
    <comment_count>11</comment_count>
      <attachid>209215</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-20 12:03:58 -0700</bug_when>
    <thetext>Comment on attachment 209215
Patch

r=me too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919162</commentid>
    <comment_count>12</comment_count>
      <attachid>209215</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-08-20 12:07:08 -0700</bug_when>
    <thetext>Comment on attachment 209215
Patch

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

Noticed an issue.

&gt; Source/JavaScriptCore/dfg/DFGDesiredWriteBarriers.cpp:64
&gt; +        InlineCallFrame&amp; inlineCallFrame = m_codeBlock-&gt;inlineCallFrames()[m_index];
&gt; +        if (!!inlineCallFrame.callee)
&gt; +            break;

This check is redundant because we never would have added this DesiredWriteBarrier if the callee was null. Also, the check itself is the opposite of what it is meant to check :-( I&apos;m going to replace it with an ASSERT (with the correct condition, of course).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919169</commentid>
    <comment_count>13</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-08-20 12:39:02 -0700</bug_when>
    <thetext>Committed r154351: &lt;http://trac.webkit.org/changeset/154351&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209014</attachid>
            <date>2013-08-17 16:20:22 -0700</date>
            <delta_ts>2013-08-20 11:57:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119919-20130817162019.patch</filename>
            <type>text/plain</type>
            <size>8133</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU0MjQyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBA
CisyMDEzLTA4LTE3ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzExOTkxOT4gQ29uY3VycmVudCBKSVQgY3Jh
c2hlcyBpbiB2YXJpb3VzIGZhc3QvanMvZGZnLSogdGVzdHMgd2hpbGUgdGhlIG1haW4gdGhyZWFk
IGlzIHNldHRpbmcgaW5uZXJIVE1MCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkZWQgYSBuZXcgbW9kZSBmb3IgRGVzaXJlZFdyaXRlQmFycmllciB0
aGF0IGFsbG93cyBpdCB0byB0cmFjayBhIHBvc2l0aW9uIGluIGEgCisgICAgICAgIFZlY3RvciBv
ZiBXcml0ZUJhcnJpZXJzIHJhdGhlciB0aGFuIHRoZSBzcGVjaWZpYyBhZGRyZXNzLiBUaGUgZmFj
dCB0aGF0IHdlIHdlcmUgCisgICAgICAgIGFyYml0cmFyaWx5IHN0b3JpbmcgaW50byBhIFZlY3Rv
cidzIGJhY2tpbmcgc3RvcmUgZm9yIGNvbnN0YW50cyBhdCB0aGUgZW5kIG9mIAorICAgICAgICBj
b21waWxhdGlvbiBhZnRlciB0aGUgVmVjdG9yIGNvdWxkIGhhdmUgcmVzaXplZCB3YXMgY2F1c2lu
ZyBjcmFzaGVzLgorCisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChK
U0M6OkNvZGVCbG9jazo6Y29uc3RhbnRzKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjphZGRD
b25zdGFudExhemlseSk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6YWRkQ29uc3RhbnQpOgorICAgICAgICAq
IGRmZy9ERkdEZXNpcmVkV3JpdGVCYXJyaWVycy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6RGVz
aXJlZFdyaXRlQmFycmllcjo6RGVzaXJlZFdyaXRlQmFycmllcik6CisgICAgICAgIChKU0M6OkRG
Rzo6RGVzaXJlZFdyaXRlQmFycmllcjo6dHJpZ2dlcik6CisgICAgICAgIChKU0M6OkRGRzo6aW5p
dGlhbGl6ZUxhenlXcml0ZUJhcnJpZXJGb3JDb25zdGFudCk6CisgICAgICAgICogZGZnL0RGR0Rl
c2lyZWRXcml0ZUJhcnJpZXJzLmg6CisgICAgICAgIChKU0M6OkRGRzo6RGVzaXJlZFdyaXRlQmFy
cmllcnM6OmFkZCk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkZpeHVwUGhhc2U6OnRydW5jYXRlQ29uc3RhbnRUb0ludDMyKToKKyAgICAgICAg
KiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6Y29uc3RhbnRSZWdp
c3RlckZvckNvbnN0YW50KToKKwogMjAxMy0wOC0xNiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBw
bGUuY29tPgogCiAgICAgICAgIERGRyBzaG91bGQgb3B0aW1pemUgdHlwZWRBcnJheS5ieXRlTGVu
Z3RoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCShy
ZXZpc2lvbiAxNTQyNDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4NCw2ICs2ODQsNyBAQCBwdWJsaWM6CiAgICAgY29u
c3QgSWRlbnRpZmllciYgaWRlbnRpZmllcihpbnQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fdW5s
aW5rZWRDb2RlLT5pZGVudGlmaWVyKGluZGV4KTsgfQogI2VuZGlmCiAKKyAgICBWZWN0b3I8V3Jp
dGVCYXJyaWVyPFVua25vd24+ID4mIGNvbnN0YW50cygpIHsgcmV0dXJuIG1fY29uc3RhbnRSZWdp
c3RlcnM7IH0KICAgICBzaXplX3QgbnVtYmVyT2ZDb25zdGFudFJlZ2lzdGVycygpIGNvbnN0IHsg
cmV0dXJuIG1fY29uc3RhbnRSZWdpc3RlcnMuc2l6ZSgpOyB9CiAgICAgdW5zaWduZWQgYWRkQ29u
c3RhbnQoSlNWYWx1ZSB2KQogICAgIHsKQEAgLTY5MywxMCArNjk0LDExIEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4m
IGFkZENvbnN0YW50TGF6aWx5KCkKKyAgICB1bnNpZ25lZCBhZGRDb25zdGFudExhemlseSgpCiAg
ICAgeworICAgICAgICB1bnNpZ25lZCByZXN1bHQgPSBtX2NvbnN0YW50UmVnaXN0ZXJzLnNpemUo
KTsKICAgICAgICAgbV9jb25zdGFudFJlZ2lzdGVycy5hcHBlbmQoV3JpdGVCYXJyaWVyPFVua25v
d24+KCkpOwotICAgICAgICByZXR1cm4gbV9jb25zdGFudFJlZ2lzdGVycy5sYXN0KCk7CisgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCiAgICAgYm9vbCBmaW5kQ29uc3RhbnQoSlNWYWx1
ZSwgdW5zaWduZWQmIHJlc3VsdCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTU0MjQwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQwMyw4ICs0MDMsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBhZGRDb25zdGFudChKU1ZhbHVl
IHZhbHVlKQogICAgIHsKLSAgICAgICAgaW5pdGlhbGl6ZUxhenlXcml0ZUJhcnJpZXIoCi0gICAg
ICAgICAgICBtX2NvZGVCbG9jay0+YWRkQ29uc3RhbnRMYXppbHkoKSwgCisgICAgICAgIGluaXRp
YWxpemVMYXp5V3JpdGVCYXJyaWVyRm9yQ29uc3RhbnQoCisgICAgICAgICAgICBtX2NvZGVCbG9j
aywKICAgICAgICAgICAgIG1fZ3JhcGgubV9wbGFuLndyaXRlQmFycmllcnMsIAogICAgICAgICAg
ICAgbV9jb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLCAKICAgICAgICAgICAgIHZhbHVlKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZFdyaXRlQmFycmllcnMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZFdy
aXRlQmFycmllcnMuY3BwCShyZXZpc2lvbiAxNTQyNDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Rlc2lyZWRXcml0ZUJhcnJpZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYs
MTkgKzI2LDQyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiREZHRGVzaXJlZFdy
aXRlQmFycmllcnMuaCIKIAorI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpTQ0pT
VmFsdWVJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogRGVz
aXJlZFdyaXRlQmFycmllcjo6RGVzaXJlZFdyaXRlQmFycmllcihXcml0ZUJhcnJpZXI8VW5rbm93
bj4qIGJhcnJpZXIsIEpTQ2VsbCogb3duZXIpCi0gICAgOiBtX2JhcnJpZXIoYmFycmllcikKLSAg
ICAsIG1fb3duZXIob3duZXIpCisgICAgOiBtX293bmVyKG93bmVyKQorICAgICwgbV90eXBlKE5v
cm1hbFR5cGUpCiB7CisgICAgdS5tX2JhcnJpZXIgPSBiYXJyaWVyOworfQorCitEZXNpcmVkV3Jp
dGVCYXJyaWVyOjpEZXNpcmVkV3JpdGVCYXJyaWVyKFZlY3RvcjxXcml0ZUJhcnJpZXI8VW5rbm93
bj4gPiogYmFycmllcnMsIHVuc2lnbmVkIGluZGV4LCBKU0NlbGwqIG93bmVyKQorICAgIDogbV9v
d25lcihvd25lcikKKyAgICAsIG1fdHlwZShWZWN0b3JUeXBlKQoreworICAgIHUuYmFycmllcl92
ZWN0b3IubV9iYXJyaWVycyA9IGJhcnJpZXJzOworICAgIHUuYmFycmllcl92ZWN0b3IubV9pbmRl
eCA9IGluZGV4OwogfQogCiB2b2lkIERlc2lyZWRXcml0ZUJhcnJpZXI6OnRyaWdnZXIoVk0mIHZt
KQogewotICAgIG1fYmFycmllci0+c2V0KHZtLCBtX293bmVyLCBtX2JhcnJpZXItPmdldCgpKTsK
KyAgICBzd2l0Y2ggKG1fdHlwZSkgeworICAgIGNhc2UgTm9ybWFsVHlwZTogeworICAgICAgICB1
Lm1fYmFycmllci0+c2V0KHZtLCBtX293bmVyLCB1Lm1fYmFycmllci0+Z2V0KCkpOworICAgICAg
ICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIFZlY3RvclR5cGU6IHsKKyAgICAgICAgdW5zaWdu
ZWQgaW5kZXggPSB1LmJhcnJpZXJfdmVjdG9yLm1faW5kZXg7CisgICAgICAgIFdyaXRlQmFycmll
cjxVbmtub3duPiYgYmFycmllciA9IHUuYmFycmllcl92ZWN0b3IubV9iYXJyaWVycy0+YXQoaW5k
ZXgpOworICAgICAgICBiYXJyaWVyLnNldCh2bSwgbV9vd25lciwgYmFycmllci5nZXQoKSk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKworICAgIH0KIH0KIAogRGVzaXJlZFdyaXRlQmFycmllcnM6
OkRlc2lyZWRXcml0ZUJhcnJpZXJzKCkKQEAgLTYxLDQgKzg0LDEyIEBAIHZvaWQgRGVzaXJlZFdy
aXRlQmFycmllcnM6OnRyaWdnZXIoVk0mIHYKICAgICAgICAgbV9iYXJyaWVyc1tpXS50cmlnZ2Vy
KHZtKTsKIH0KIAordm9pZCBpbml0aWFsaXplTGF6eVdyaXRlQmFycmllckZvckNvbnN0YW50KENv
ZGVCbG9jayogY29kZUJsb2NrLCBEZXNpcmVkV3JpdGVCYXJyaWVycyYgYmFycmllcnMsIEpTQ2Vs
bCogb3duZXIsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgdW5zaWduZWQgY29uc3RhbnRJbmRleCA9
IGNvZGVCbG9jay0+YWRkQ29uc3RhbnRMYXppbHkoKTsKKyAgICBXcml0ZUJhcnJpZXI8VW5rbm93
bj4mIGJhcnJpZXIgPSBjb2RlQmxvY2stPmNvbnN0YW50cygpW2NvbnN0YW50SW5kZXhdOworICAg
IGJhcnJpZXIgPSBXcml0ZUJhcnJpZXI8VW5rbm93bj4oCisgICAgICAgIGJhcnJpZXJzLmFkZChj
b2RlQmxvY2stPmNvbnN0YW50cygpLCBjb25zdGFudEluZGV4LCBvd25lciksIHZhbHVlKTsKK30K
KwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdEZXNpcmVkV3JpdGVCYXJyaWVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZFdyaXRlQmFycmllcnMuaAkocmV2aXNpb24gMTU0MjQw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEZXNpcmVkV3JpdGVCYXJyaWVycy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxMiArMzgsMjEgQEAgbmFtZXNwYWNlIERGRyB7CiBjbGFz
cyBEZXNpcmVkV3JpdGVCYXJyaWVyIHsKIHB1YmxpYzoKICAgICBEZXNpcmVkV3JpdGVCYXJyaWVy
KFdyaXRlQmFycmllcjxVbmtub3duPiosIEpTQ2VsbCogb3duZXIpOworICAgIERlc2lyZWRXcml0
ZUJhcnJpZXIoVmVjdG9yPFdyaXRlQmFycmllcjxVbmtub3duPiA+KiwgdW5zaWduZWQgaW5kZXgs
IEpTQ2VsbCogb3duZXIpOwogCiAgICAgdm9pZCB0cmlnZ2VyKFZNJik7CiAKIHByaXZhdGU6Ci0g
ICAgV3JpdGVCYXJyaWVyPFVua25vd24+KiBtX2JhcnJpZXI7CiAgICAgSlNDZWxsKiBtX293bmVy
OworICAgIGVudW0gV3JpdGVCYXJyaWVyVHlwZSB7IE5vcm1hbFR5cGUsIFZlY3RvclR5cGUgfTsK
KyAgICBXcml0ZUJhcnJpZXJUeXBlIG1fdHlwZTsKKyAgICB1bmlvbiB7CisgICAgICAgIFdyaXRl
QmFycmllcjxVbmtub3duPiogbV9iYXJyaWVyOworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAg
ICAgVmVjdG9yPFdyaXRlQmFycmllcjxVbmtub3duPiA+KiBtX2JhcnJpZXJzOworICAgICAgICAg
ICAgdW5zaWduZWQgbV9pbmRleDsKKyAgICAgICAgfSBiYXJyaWVyX3ZlY3RvcjsKKyAgICB9IHU7
CiB9OwogCiBjbGFzcyBEZXNpcmVkV3JpdGVCYXJyaWVycyB7CkBAIC01Nyw2ICs2NiwxMiBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBhZGRJbXBsKHJlaW50ZXJwcmV0X2Nhc3Q8V3JpdGVCYXJy
aWVyPFVua25vd24+Kj4oJmJhcnJpZXIpLCBvd25lcik7CiAgICAgfQogCisgICAgRGVzaXJlZFdy
aXRlQmFycmllciYgYWRkKFZlY3RvcjxXcml0ZUJhcnJpZXI8VW5rbm93bj4gPiYgYmFycmllcnMs
IHVuc2lnbmVkIGluZGV4LCBKU0NlbGwqIG93bmVyKQorICAgIHsKKyAgICAgICAgbV9iYXJyaWVy
cy5hcHBlbmQoRGVzaXJlZFdyaXRlQmFycmllcigmYmFycmllcnMsIGluZGV4LCBvd25lcikpOwor
ICAgICAgICByZXR1cm4gbV9iYXJyaWVycy5sYXN0KCk7CisgICAgfQorCiAgICAgdm9pZCB0cmln
Z2VyKFZNJik7CiAKIHByaXZhdGU6CkBAIC03MSw2ICs4Niw4IEBAIHZvaWQgaW5pdGlhbGl6ZUxh
enlXcml0ZUJhcnJpZXIoV3JpdGVCYXIKICAgICBiYXJyaWVyID0gV3JpdGVCYXJyaWVyPFQ+KGJh
cnJpZXJzLmFkZChiYXJyaWVyLCBvd25lciksIHZhbHVlKTsKIH0KIAordm9pZCBpbml0aWFsaXpl
TGF6eVdyaXRlQmFycmllckZvckNvbnN0YW50KENvZGVCbG9jayosIERlc2lyZWRXcml0ZUJhcnJp
ZXJzJiwgSlNDZWxsKiBvd25lciwgSlNWYWx1ZSk7CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpE
RkcKIAogI2VuZGlmIC8vIERGR0Rlc2lyZWRXcml0ZUJhcnJpZXJzX2gKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMTU0MjQwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTM3Miw4ICsxMzcyLDggQEAgcHJpdmF0ZToKICAgICAgICAgQVNTRVJUKHZhbHVl
LmlzSW50MzIoKSk7CiAgICAgICAgIHVuc2lnbmVkIGNvbnN0YW50UmVnaXN0ZXI7CiAgICAgICAg
IGlmICghY29kZUJsb2NrKCktPmZpbmRDb25zdGFudCh2YWx1ZSwgY29uc3RhbnRSZWdpc3Rlcikp
IHsKLSAgICAgICAgICAgIGluaXRpYWxpemVMYXp5V3JpdGVCYXJyaWVyKAotICAgICAgICAgICAg
ICAgIGNvZGVCbG9jaygpLT5hZGRDb25zdGFudExhemlseSgpLAorICAgICAgICAgICAgaW5pdGlh
bGl6ZUxhenlXcml0ZUJhcnJpZXJGb3JDb25zdGFudCgKKyAgICAgICAgICAgICAgICBjb2RlQmxv
Y2soKSwKICAgICAgICAgICAgICAgICBtX2dyYXBoLm1fcGxhbi53cml0ZUJhcnJpZXJzLAogICAg
ICAgICAgICAgICAgIGNvZGVCbG9jaygpLT5vd25lckV4ZWN1dGFibGUoKSwKICAgICAgICAgICAg
ICAgICB2YWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCShyZXZp
c2lvbiAxNTQyNDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHdv
cmtpbmcgY29weSkKQEAgLTE1NSw4ICsxNTUsOCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICB1
bnNpZ25lZCBjb25zdGFudFJlZ2lzdGVyOwogICAgICAgICBpZiAoIW1fY29kZUJsb2NrLT5maW5k
Q29uc3RhbnQodmFsdWUsIGNvbnN0YW50UmVnaXN0ZXIpKSB7Ci0gICAgICAgICAgICBpbml0aWFs
aXplTGF6eVdyaXRlQmFycmllcigKLSAgICAgICAgICAgICAgICBtX2NvZGVCbG9jay0+YWRkQ29u
c3RhbnRMYXppbHkoKSwKKyAgICAgICAgICAgIGluaXRpYWxpemVMYXp5V3JpdGVCYXJyaWVyRm9y
Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgbV9jb2RlQmxvY2ssCiAgICAgICAgICAgICAgICAg
bV9wbGFuLndyaXRlQmFycmllcnMsCiAgICAgICAgICAgICAgICAgbV9jb2RlQmxvY2stPm93bmVy
RXhlY3V0YWJsZSgpLAogICAgICAgICAgICAgICAgIHZhbHVlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209215</attachid>
            <date>2013-08-20 11:57:23 -0700</date>
            <delta_ts>2013-08-20 12:07:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119919-20130820115726.patch</filename>
            <type>text/plain</type>
            <size>12222</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU0MzQ3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDEzLTA4LTIwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzExOTkxOT4gQ29uY3VycmVudCBKSVQgY3Jh
c2hlcyBpbiB2YXJpb3VzIGZhc3QvanMvZGZnLSogdGVzdHMgd2hpbGUgdGhlIG1haW4gdGhyZWFk
IGlzIHNldHRpbmcgaW5uZXJIVE1MCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTW9yZSBmaXhlcyBmb3IgV3JpdGVCYXJyaWVyIGRlZmVycmFsIGR1cmlu
ZyBjb25jdXJyZW50IEpJVC1pbmcuIFRoaXMgcGF0Y2ggbWFrZXMgdGhlIHVzZSBvZiBEZXNpcmVk
V3JpdGVCYXJyaWVycyBjbGFzcyBhbmQgdGhlIAorICAgICAgICBpbml0aWFsaXplTGF6eVdyaXRl
QmFycmllckZvciogd3JhcHBlciBmdW5jdGlvbnMuIAorCisgICAgICAgIFJlZmFjdG9yZWQgRGVz
aXJlZFdyaXRlQmFycmllciB0byByZXF1aXJlIGFuIG93bmVyLCBhIHR5cGUsIGEgQ29kZUJsb2Nr
LCBhbmQgYW4gaW5kZXguLiBUaGUgdHlwZSBpbmRpY2F0ZXMgaG93IHRvIHVzZSBDb2RlQmxvY2sK
KyAgICAgICAgYW5kIGluZGV4IHdoZW4gdHJpZ2dlcmluZyB0aGUgV3JpdGVCYXJyaWVyIGF0IHRo
ZSBlbmQgb2YgY29tcGlsYXRpb24uIAorCisgICAgICAgIFRoZSBjbGllbnQgY29kZSBvZiBpbml0
aWFsaXplTGF6eSogaXMgbm93IHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyB0aGUgV3JpdGVCYXJy
aWVyIHRoYXQgd2lsbCBiZSBpbml0aWFsaXplZCBhcyB3ZWxsIGFzIHBhc3NpbmcKKyAgICAgICAg
aW4gdGhlIHJlbGV2YW50IGluZGV4IHRvIGJlIHVzZWQgYXQgdGhlIGVuZCBvZiBjb21waWxhdGlv
bi4gVGhpbmdzIHdlcmUga2luZCBvZiBtdWRkbGVkIGJlZm9yZSBpbiB0aGF0IG9uZSBmdW5jdGlv
biBkaWQgYSAKKyAgICAgICAgbGl0dGxlIGV4dHJhIHdvcmsgdGhhdCByZWFsbHkgc2hvdWxkbid0
IGhhdmUgYmVlbiBpdHMgcmVzcG9uc2liaWxpdHkuCisKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjphZGRDb25z
dGFudCk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OklubGluZVN0YWNrRW50
cnk6OklubGluZVN0YWNrRW50cnkpOgorICAgICAgICAqIGRmZy9ERkdEZXNpcmVkV3JpdGVCYXJy
aWVycy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6RGVzaXJlZFdyaXRlQmFycmllcjo6RGVzaXJl
ZFdyaXRlQmFycmllcik6CisgICAgICAgIChKU0M6OkRGRzo6RGVzaXJlZFdyaXRlQmFycmllcjo6
dHJpZ2dlcik6CisgICAgICAgICogZGZnL0RGR0Rlc2lyZWRXcml0ZUJhcnJpZXJzLmg6CisgICAg
ICAgIChKU0M6OkRGRzo6RGVzaXJlZFdyaXRlQmFycmllcnM6OmFkZCk6CisgICAgICAgIChKU0M6
OkRGRzo6aW5pdGlhbGl6ZUxhenlXcml0ZUJhcnJpZXJGb3JJbmxpbmVDYWxsRnJhbWVFeGVjdXRh
YmxlKToKKyAgICAgICAgKEpTQzo6REZHOjppbml0aWFsaXplTGF6eVdyaXRlQmFycmllckZvcklu
bGluZUNhbGxGcmFtZUNhbGxlZSk6CisgICAgICAgIChKU0M6OkRGRzo6aW5pdGlhbGl6ZUxhenlX
cml0ZUJhcnJpZXJGb3JDb25zdGFudCk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OnRydW5jYXRlQ29uc3RhbnRUb0ludDMy
KToKKyAgICAgICAgKiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6
Y29uc3RhbnRSZWdpc3RlckZvckNvbnN0YW50KToKKwogMjAxMy0wOC0yMCAgTWljaGFlbCBTYWJv
ZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTIwMDc1CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTU0MzI3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQwMyw5ICs0MDMsMTIgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgYWRkQ29uc3RhbnQoSlNW
YWx1ZSB2YWx1ZSkKICAgICB7CisgICAgICAgIHVuc2lnbmVkIGNvbnN0YW50SW5kZXggPSBtX2Nv
ZGVCbG9jay0+YWRkQ29uc3RhbnRMYXppbHkoKTsKICAgICAgICAgaW5pdGlhbGl6ZUxhenlXcml0
ZUJhcnJpZXJGb3JDb25zdGFudCgKKyAgICAgICAgICAgIG1fZ3JhcGgubV9wbGFuLndyaXRlQmFy
cmllcnMsCisgICAgICAgICAgICBtX2NvZGVCbG9jay0+Y29uc3RhbnRzKClbY29uc3RhbnRJbmRl
eF0sCiAgICAgICAgICAgICBtX2NvZGVCbG9jaywKLSAgICAgICAgICAgIG1fZ3JhcGgubV9wbGFu
LndyaXRlQmFycmllcnMsIAorICAgICAgICAgICAgY29uc3RhbnRJbmRleCwKICAgICAgICAgICAg
IG1fY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgCiAgICAgICAgICAgICB2YWx1ZSk7CiAg
ICAgfQpAQCAtMzI5MCwxNiArMzI5MywyMCBAQCBCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tF
bnRyeTo6SW5saW5lCiAgICAgICAgIEFTU0VSVChjYWxsc2l0ZUJsb2NrSGVhZCk7CiAgICAgICAg
IAogICAgICAgICBJbmxpbmVDYWxsRnJhbWUgaW5saW5lQ2FsbEZyYW1lOwotICAgICAgICBpbml0
aWFsaXplTGF6eVdyaXRlQmFycmllcigKLSAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS5leGVj
dXRhYmxlLAorICAgICAgICBpbml0aWFsaXplTGF6eVdyaXRlQmFycmllckZvcklubGluZUNhbGxG
cmFtZUV4ZWN1dGFibGUoCiAgICAgICAgICAgICBieXRlQ29kZVBhcnNlci0+bV9ncmFwaC5tX3Bs
YW4ud3JpdGVCYXJyaWVycywKKyAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS5leGVjdXRhYmxl
LAorICAgICAgICAgICAgYnl0ZUNvZGVQYXJzZXItPm1fY29kZUJsb2NrLAorICAgICAgICAgICAg
Ynl0ZUNvZGVQYXJzZXItPm1fY29kZUJsb2NrLT5pbmxpbmVDYWxsRnJhbWVzKCkuc2l6ZSgpLAog
ICAgICAgICAgICAgYnl0ZUNvZGVQYXJzZXItPm1fY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUo
KSwgCiAgICAgICAgICAgICBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpKTsKICAgICAgICAg
aW5saW5lQ2FsbEZyYW1lLnN0YWNrT2Zmc2V0ID0gaW5saW5lQ2FsbEZyYW1lU3RhcnQgKyBKU1N0
YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplOwogICAgICAgICBpZiAoY2FsbGVlKSB7Ci0gICAgICAg
ICAgICBpbml0aWFsaXplTGF6eVdyaXRlQmFycmllcigKLSAgICAgICAgICAgICAgICBpbmxpbmVD
YWxsRnJhbWUuY2FsbGVlLAorICAgICAgICAgICAgaW5pdGlhbGl6ZUxhenlXcml0ZUJhcnJpZXJG
b3JJbmxpbmVDYWxsRnJhbWVDYWxsZWUoCiAgICAgICAgICAgICAgICAgYnl0ZUNvZGVQYXJzZXIt
Pm1fZ3JhcGgubV9wbGFuLndyaXRlQmFycmllcnMsCisgICAgICAgICAgICAgICAgaW5saW5lQ2Fs
bEZyYW1lLmNhbGxlZSwKKyAgICAgICAgICAgICAgICBieXRlQ29kZVBhcnNlci0+bV9jb2RlQmxv
Y2ssCisgICAgICAgICAgICAgICAgYnl0ZUNvZGVQYXJzZXItPm1fY29kZUJsb2NrLT5pbmxpbmVD
YWxsRnJhbWVzKCkuc2l6ZSgpLAogICAgICAgICAgICAgICAgIGJ5dGVDb2RlUGFyc2VyLT5tX2Nv
ZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIAogICAgICAgICAgICAgICAgIGNhbGxlZSk7CiAg
ICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZFdyaXRl
QmFycmllcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RGVzaXJlZFdyaXRlQmFycmllcnMuY3BwCShyZXZpc2lvbiAxNTQzMjcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2lyZWRXcml0ZUJhcnJpZXJzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzQsMzMgKzM0LDM3IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsK
IAotRGVzaXJlZFdyaXRlQmFycmllcjo6RGVzaXJlZFdyaXRlQmFycmllcihXcml0ZUJhcnJpZXI8
VW5rbm93bj4qIGJhcnJpZXIsIEpTQ2VsbCogb3duZXIpCitEZXNpcmVkV3JpdGVCYXJyaWVyOjpE
ZXNpcmVkV3JpdGVCYXJyaWVyKFR5cGUgdHlwZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIHVuc2ln
bmVkIGluZGV4LCBKU0NlbGwqIG93bmVyKQogICAgIDogbV9vd25lcihvd25lcikKLSAgICAsIG1f
dHlwZShOb3JtYWxUeXBlKQorICAgICwgbV90eXBlKHR5cGUpCisgICAgLCBtX2NvZGVCbG9jayhj
b2RlQmxvY2spCisgICAgLCBtX2luZGV4KGluZGV4KQogewotICAgIHUubV9iYXJyaWVyID0gYmFy
cmllcjsKLX0KLQotRGVzaXJlZFdyaXRlQmFycmllcjo6RGVzaXJlZFdyaXRlQmFycmllcihWZWN0
b3I8V3JpdGVCYXJyaWVyPFVua25vd24+ID4qIGJhcnJpZXJzLCB1bnNpZ25lZCBpbmRleCwgSlND
ZWxsKiBvd25lcikKLSAgICA6IG1fb3duZXIob3duZXIpCi0gICAgLCBtX3R5cGUoVmVjdG9yVHlw
ZSkKLXsKLSAgICB1LmJhcnJpZXJfdmVjdG9yLm1fYmFycmllcnMgPSBiYXJyaWVyczsKLSAgICB1
LmJhcnJpZXJfdmVjdG9yLm1faW5kZXggPSBpbmRleDsKIH0KIAogdm9pZCBEZXNpcmVkV3JpdGVC
YXJyaWVyOjp0cmlnZ2VyKFZNJiB2bSkKIHsKICAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNh
c2UgTm9ybWFsVHlwZTogewotICAgICAgICB1Lm1fYmFycmllci0+c2V0KHZtLCBtX293bmVyLCB1
Lm1fYmFycmllci0+Z2V0KCkpOworICAgIGNhc2UgQ29uc3RhbnRUeXBlOiB7CisgICAgICAgIFdy
aXRlQmFycmllcjxVbmtub3duPiYgYmFycmllciA9IG1fY29kZUJsb2NrLT5jb25zdGFudHMoKVtt
X2luZGV4XTsKKyAgICAgICAgYmFycmllci5zZXQodm0sIG1fb3duZXIsIGJhcnJpZXIuZ2V0KCkp
OwogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBjYXNlIFZlY3RvclR5cGU6IHsKLSAgICAg
ICAgdW5zaWduZWQgaW5kZXggPSB1LmJhcnJpZXJfdmVjdG9yLm1faW5kZXg7Ci0gICAgICAgIFdy
aXRlQmFycmllcjxVbmtub3duPiYgYmFycmllciA9IHUuYmFycmllcl92ZWN0b3IubV9iYXJyaWVy
cy0+YXQoaW5kZXgpOwotICAgICAgICBiYXJyaWVyLnNldCh2bSwgbV9vd25lciwgYmFycmllci5n
ZXQoKSk7CisgICAgY2FzZSBJbmxpbmVDYWxsRnJhbWVFeGVjdXRhYmxlVHlwZTogeworICAgICAg
ICBJbmxpbmVDYWxsRnJhbWUmIGlubGluZUNhbGxGcmFtZSA9IG1fY29kZUJsb2NrLT5pbmxpbmVD
YWxsRnJhbWVzKClbbV9pbmRleF07CisgICAgICAgIFdyaXRlQmFycmllcjxTY3JpcHRFeGVjdXRh
YmxlPiYgZXhlY3V0YWJsZSA9IGlubGluZUNhbGxGcmFtZS5leGVjdXRhYmxlOworICAgICAgICBl
eGVjdXRhYmxlLnNldCh2bSwgbV9vd25lciwgZXhlY3V0YWJsZS5nZXQoKSk7CisgICAgICAgIGJy
ZWFrOworICAgIH0KKworICAgIGNhc2UgSW5saW5lQ2FsbEZyYW1lQ2FsbGVlVHlwZTogeworICAg
ICAgICBJbmxpbmVDYWxsRnJhbWUmIGlubGluZUNhbGxGcmFtZSA9IG1fY29kZUJsb2NrLT5pbmxp
bmVDYWxsRnJhbWVzKClbbV9pbmRleF07CisgICAgICAgIGlmICghIWlubGluZUNhbGxGcmFtZS5j
YWxsZWUpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBXcml0ZUJhcnJpZXI8SlNGdW5j
dGlvbj4mIGNhbGxlZSA9IGlubGluZUNhbGxGcmFtZS5jYWxsZWU7CisgICAgICAgIGNhbGxlZS5z
ZXQodm0sIG1fb3duZXIsIGNhbGxlZS5nZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApA
QCAtNzUsMjYgKzc5LDEyIEBAIERlc2lyZWRXcml0ZUJhcnJpZXJzOjp+RGVzaXJlZFdyaXRlQmFy
cmkKIHsKIH0KIAotRGVzaXJlZFdyaXRlQmFycmllciYgRGVzaXJlZFdyaXRlQmFycmllcnM6OmFk
ZEltcGwoV3JpdGVCYXJyaWVyPFVua25vd24+KiBiYXJyaWVyLCBKU0NlbGwqIG93bmVyKQotewot
ICAgIG1fYmFycmllcnMuYXBwZW5kKERlc2lyZWRXcml0ZUJhcnJpZXIoYmFycmllciwgb3duZXIp
KTsKLSAgICByZXR1cm4gbV9iYXJyaWVycy5sYXN0KCk7Ci19Ci0KIHZvaWQgRGVzaXJlZFdyaXRl
QmFycmllcnM6OnRyaWdnZXIoVk0mIHZtKQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBtX2JhcnJpZXJzLnNpemUoKTsgaSsrKQogICAgICAgICBtX2JhcnJpZXJzW2ldLnRyaWdnZXIo
dm0pOwogfQogCi12b2lkIGluaXRpYWxpemVMYXp5V3JpdGVCYXJyaWVyRm9yQ29uc3RhbnQoQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIERlc2lyZWRXcml0ZUJhcnJpZXJzJiBiYXJyaWVycywgSlNDZWxs
KiBvd25lciwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICB1bnNpZ25lZCBjb25zdGFudEluZGV4ID0g
Y29kZUJsb2NrLT5hZGRDb25zdGFudExhemlseSgpOwotICAgIFdyaXRlQmFycmllcjxVbmtub3du
PiYgYmFycmllciA9IGNvZGVCbG9jay0+Y29uc3RhbnRzKClbY29uc3RhbnRJbmRleF07Ci0gICAg
YmFycmllciA9IFdyaXRlQmFycmllcjxVbmtub3duPigKLSAgICAgICAgYmFycmllcnMuYWRkKGNv
ZGVCbG9jay0+Y29uc3RhbnRzKCksIGNvbnN0YW50SW5kZXgsIG93bmVyKSwgdmFsdWUpOwotfQot
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZFdyaXRlQmFycmllcnMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2lyZWRXcml0
ZUJhcnJpZXJzLmgJKHJldmlzaW9uIDE1NDMyNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRGVzaXJlZFdyaXRlQmFycmllcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsMjggKzMz
LDI0IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitjbGFzcyBKU0Z1bmN0aW9uOworY2xhc3MgU2Ny
aXB0RXhlY3V0YWJsZTsKIGNsYXNzIFZNOwogCiBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3MgRGVz
aXJlZFdyaXRlQmFycmllciB7CiBwdWJsaWM6Ci0gICAgRGVzaXJlZFdyaXRlQmFycmllcihXcml0
ZUJhcnJpZXI8VW5rbm93bj4qLCBKU0NlbGwqIG93bmVyKTsKLSAgICBEZXNpcmVkV3JpdGVCYXJy
aWVyKFZlY3RvcjxXcml0ZUJhcnJpZXI8VW5rbm93bj4gPiosIHVuc2lnbmVkIGluZGV4LCBKU0Nl
bGwqIG93bmVyKTsKKyAgICBlbnVtIFR5cGUgeyBDb25zdGFudFR5cGUsIElubGluZUNhbGxGcmFt
ZUV4ZWN1dGFibGVUeXBlLCBJbmxpbmVDYWxsRnJhbWVDYWxsZWVUeXBlIH07CisgICAgRGVzaXJl
ZFdyaXRlQmFycmllcihUeXBlLCBDb2RlQmxvY2sqLCB1bnNpZ25lZCBpbmRleCwgSlNDZWxsKiBv
d25lcik7CiAKICAgICB2b2lkIHRyaWdnZXIoVk0mKTsKIAogcHJpdmF0ZToKICAgICBKU0NlbGwq
IG1fb3duZXI7Ci0gICAgZW51bSBXcml0ZUJhcnJpZXJUeXBlIHsgTm9ybWFsVHlwZSwgVmVjdG9y
VHlwZSB9OwotICAgIFdyaXRlQmFycmllclR5cGUgbV90eXBlOwotICAgIHVuaW9uIHsKLSAgICAg
ICAgV3JpdGVCYXJyaWVyPFVua25vd24+KiBtX2JhcnJpZXI7Ci0gICAgICAgIHN0cnVjdCB7Ci0g
ICAgICAgICAgICBWZWN0b3I8V3JpdGVCYXJyaWVyPFVua25vd24+ID4qIG1fYmFycmllcnM7Ci0g
ICAgICAgICAgICB1bnNpZ25lZCBtX2luZGV4OwotICAgICAgICB9IGJhcnJpZXJfdmVjdG9yOwot
ICAgIH0gdTsKKyAgICBUeXBlIG1fdHlwZTsKKyAgICBDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwor
ICAgIHVuc2lnbmVkIG1faW5kZXg7CiB9OwogCiBjbGFzcyBEZXNpcmVkV3JpdGVCYXJyaWVycyB7
CkBAIC02MiwzMyArNTgsMzUgQEAgcHVibGljOgogICAgIERlc2lyZWRXcml0ZUJhcnJpZXJzKCk7
CiAgICAgfkRlc2lyZWRXcml0ZUJhcnJpZXJzKCk7CiAKLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KLSAgICBEZXNpcmVkV3JpdGVCYXJyaWVyJiBhZGQoV3JpdGVCYXJyaWVyPFQ+JiBiYXJyaWVy
LCBKU0NlbGwqIG93bmVyKQorICAgIERlc2lyZWRXcml0ZUJhcnJpZXImIGFkZChEZXNpcmVkV3Jp
dGVCYXJyaWVyOjpUeXBlIHR5cGUsIENvZGVCbG9jayogY29kZUJsb2NrLCB1bnNpZ25lZCBpbmRl
eCwgSlNDZWxsKiBvd25lcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZGRJbXBsKHJlaW50ZXJw
cmV0X2Nhc3Q8V3JpdGVCYXJyaWVyPFVua25vd24+Kj4oJmJhcnJpZXIpLCBvd25lcik7Ci0gICAg
fQotCi0gICAgRGVzaXJlZFdyaXRlQmFycmllciYgYWRkKFZlY3RvcjxXcml0ZUJhcnJpZXI8VW5r
bm93bj4gPiYgYmFycmllcnMsIHVuc2lnbmVkIGluZGV4LCBKU0NlbGwqIG93bmVyKQotICAgIHsK
LSAgICAgICAgbV9iYXJyaWVycy5hcHBlbmQoRGVzaXJlZFdyaXRlQmFycmllcigmYmFycmllcnMs
IGluZGV4LCBvd25lcikpOworICAgICAgICBtX2JhcnJpZXJzLmFwcGVuZChEZXNpcmVkV3JpdGVC
YXJyaWVyKHR5cGUsIGNvZGVCbG9jaywgaW5kZXgsIG93bmVyKSk7CiAgICAgICAgIHJldHVybiBt
X2JhcnJpZXJzLmxhc3QoKTsKICAgICB9CiAKICAgICB2b2lkIHRyaWdnZXIoVk0mKTsKIAogcHJp
dmF0ZToKLSAgICBEZXNpcmVkV3JpdGVCYXJyaWVyJiBhZGRJbXBsKFdyaXRlQmFycmllcjxVbmtu
b3duPiosIEpTQ2VsbCopOwotCiAgICAgVmVjdG9yPERlc2lyZWRXcml0ZUJhcnJpZXI+IG1fYmFy
cmllcnM7CiB9OwogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KLXZvaWQgaW5p
dGlhbGl6ZUxhenlXcml0ZUJhcnJpZXIoV3JpdGVCYXJyaWVyPFQ+JiBiYXJyaWVyLCBEZXNpcmVk
V3JpdGVCYXJyaWVycyYgYmFycmllcnMsIEpTQ2VsbCogb3duZXIsIFUgdmFsdWUpCitpbmxpbmUg
dm9pZCBpbml0aWFsaXplTGF6eVdyaXRlQmFycmllckZvcklubGluZUNhbGxGcmFtZUV4ZWN1dGFi
bGUoRGVzaXJlZFdyaXRlQmFycmllcnMmIGJhcnJpZXJzLCBXcml0ZUJhcnJpZXI8U2NyaXB0RXhl
Y3V0YWJsZT4mIGJhcnJpZXIsIENvZGVCbG9jayogY29kZUJsb2NrLCB1bnNpZ25lZCBpbmRleCwg
SlNDZWxsKiBvd25lciwgU2NyaXB0RXhlY3V0YWJsZSogdmFsdWUpCiB7Ci0gICAgYmFycmllciA9
IFdyaXRlQmFycmllcjxUPihiYXJyaWVycy5hZGQoYmFycmllciwgb3duZXIpLCB2YWx1ZSk7Cisg
ICAgRGVzaXJlZFdyaXRlQmFycmllciYgZGVzaXJlZEJhcnJpZXIgPSBiYXJyaWVycy5hZGQoRGVz
aXJlZFdyaXRlQmFycmllcjo6SW5saW5lQ2FsbEZyYW1lRXhlY3V0YWJsZVR5cGUsIGNvZGVCbG9j
aywgaW5kZXgsIG93bmVyKTsKKyAgICBiYXJyaWVyID0gV3JpdGVCYXJyaWVyPFNjcmlwdEV4ZWN1
dGFibGU+KGRlc2lyZWRCYXJyaWVyLCB2YWx1ZSk7CiB9CiAKLXZvaWQgaW5pdGlhbGl6ZUxhenlX
cml0ZUJhcnJpZXJGb3JDb25zdGFudChDb2RlQmxvY2sqLCBEZXNpcmVkV3JpdGVCYXJyaWVycyYs
IEpTQ2VsbCogb3duZXIsIEpTVmFsdWUpOworaW5saW5lIHZvaWQgaW5pdGlhbGl6ZUxhenlXcml0
ZUJhcnJpZXJGb3JJbmxpbmVDYWxsRnJhbWVDYWxsZWUoRGVzaXJlZFdyaXRlQmFycmllcnMmIGJh
cnJpZXJzLCBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4mIGJhcnJpZXIsIENvZGVCbG9jayogY29k
ZUJsb2NrLCB1bnNpZ25lZCBpbmRleCwgSlNDZWxsKiBvd25lciwgSlNGdW5jdGlvbiogdmFsdWUp
Cit7CisgICAgRGVzaXJlZFdyaXRlQmFycmllciYgZGVzaXJlZEJhcnJpZXIgPSBiYXJyaWVycy5h
ZGQoRGVzaXJlZFdyaXRlQmFycmllcjo6SW5saW5lQ2FsbEZyYW1lQ2FsbGVlVHlwZSwgY29kZUJs
b2NrLCBpbmRleCwgb3duZXIpOworICAgIGJhcnJpZXIgPSBXcml0ZUJhcnJpZXI8SlNGdW5jdGlv
bj4oZGVzaXJlZEJhcnJpZXIsIHZhbHVlKTsKK30KKworaW5saW5lIHZvaWQgaW5pdGlhbGl6ZUxh
enlXcml0ZUJhcnJpZXJGb3JDb25zdGFudChEZXNpcmVkV3JpdGVCYXJyaWVycyYgYmFycmllcnMs
IFdyaXRlQmFycmllcjxVbmtub3duPiYgYmFycmllciwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIHVu
c2lnbmVkIGluZGV4LCBKU0NlbGwqIG93bmVyLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIERlc2ly
ZWRXcml0ZUJhcnJpZXImIGRlc2lyZWRCYXJyaWVyID0gYmFycmllcnMuYWRkKERlc2lyZWRXcml0
ZUJhcnJpZXI6OkNvbnN0YW50VHlwZSwgY29kZUJsb2NrLCBpbmRleCwgb3duZXIpOworICAgIGJh
cnJpZXIgPSBXcml0ZUJhcnJpZXI8VW5rbm93bj4oZGVzaXJlZEJhcnJpZXIsIHZhbHVlKTsKK30K
IAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDE1NDMyNykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEz
ODAsOSArMTM4MCwxMiBAQCBwcml2YXRlOgogICAgICAgICBBU1NFUlQodmFsdWUuaXNJbnQzMigp
KTsKICAgICAgICAgdW5zaWduZWQgY29uc3RhbnRSZWdpc3RlcjsKICAgICAgICAgaWYgKCFjb2Rl
QmxvY2soKS0+ZmluZENvbnN0YW50KHZhbHVlLCBjb25zdGFudFJlZ2lzdGVyKSkgeworICAgICAg
ICAgICAgY29uc3RhbnRSZWdpc3RlciA9IGNvZGVCbG9jaygpLT5hZGRDb25zdGFudExhemlseSgp
OwogICAgICAgICAgICAgaW5pdGlhbGl6ZUxhenlXcml0ZUJhcnJpZXJGb3JDb25zdGFudCgKLSAg
ICAgICAgICAgICAgICBjb2RlQmxvY2soKSwKICAgICAgICAgICAgICAgICBtX2dyYXBoLm1fcGxh
bi53cml0ZUJhcnJpZXJzLAorICAgICAgICAgICAgICAgIGNvZGVCbG9jaygpLT5jb25zdGFudHMo
KVtjb25zdGFudFJlZ2lzdGVyXSwKKyAgICAgICAgICAgICAgICBjb2RlQmxvY2soKSwKKyAgICAg
ICAgICAgICAgICBjb25zdGFudFJlZ2lzdGVyLAogICAgICAgICAgICAgICAgIGNvZGVCbG9jaygp
LT5vd25lckV4ZWN1dGFibGUoKSwKICAgICAgICAgICAgICAgICB2YWx1ZSk7CiAgICAgICAgIH0K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHJldmlzaW9uIDE1NDMyNykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkod29ya2luZyBjb3B5KQpA
QCAtMTU1LDkgKzE1NSwxMiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICB1bnNpZ25lZCBjb25z
dGFudFJlZ2lzdGVyOwogICAgICAgICBpZiAoIW1fY29kZUJsb2NrLT5maW5kQ29uc3RhbnQodmFs
dWUsIGNvbnN0YW50UmVnaXN0ZXIpKSB7CisgICAgICAgICAgICBjb25zdGFudFJlZ2lzdGVyID0g
bV9jb2RlQmxvY2stPmFkZENvbnN0YW50TGF6aWx5KCk7CiAgICAgICAgICAgICBpbml0aWFsaXpl
TGF6eVdyaXRlQmFycmllckZvckNvbnN0YW50KAotICAgICAgICAgICAgICAgIG1fY29kZUJsb2Nr
LAogICAgICAgICAgICAgICAgIG1fcGxhbi53cml0ZUJhcnJpZXJzLAorICAgICAgICAgICAgICAg
IG1fY29kZUJsb2NrLT5jb25zdGFudHMoKVtjb25zdGFudFJlZ2lzdGVyXSwKKyAgICAgICAgICAg
ICAgICBtX2NvZGVCbG9jaywKKyAgICAgICAgICAgICAgICBjb25zdGFudFJlZ2lzdGVyLAogICAg
ICAgICAgICAgICAgIG1fY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwKICAgICAgICAgICAg
ICAgICB2YWx1ZSk7CiAgICAgICAgIH0K
</data>
<flag name="review"
          id="231202"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>