<?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>90456</bug_id>
          
          <creation_ts>2012-07-03 06:18:50 -0700</creation_ts>
          <short_desc>Web Inspector: Count inspector memory used to traverse DOM in native memory snapshots.</short_desc>
          <delta_ts>2012-07-10 12:11:04 -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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Alexei Filippov">alph</reporter>
          <assigned_to name="Alexei Filippov">alph</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>662170</commentid>
    <comment_count>0</comment_count>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-03 06:18:50 -0700</bug_when>
    <thetext>Inspector may take significant amount of memory when traversing DOM structure. Take it into account and report under inspector memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662173</commentid>
    <comment_count>1</comment_count>
      <attachid>150596</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-03 06:28:21 -0700</bug_when>
    <thetext>Created attachment 150596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662181</commentid>
    <comment_count>2</comment_count>
      <attachid>150596</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-07-03 06:43:02 -0700</bug_when>
    <thetext>Comment on attachment 150596
Patch

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

&gt; Source/WebCore/inspector/InspectorMemoryAgent.cpp:446
&gt; +    return sizeof(ContainerType) + container.capacity() * sizeof(typename ContainerType::ValueType);

Please use the code for calculating container size from MemoryInstrumentation to avoid duplication, r- for this.

&gt; Source/WebCore/inspector/InspectorMemoryAgent.cpp:614
&gt; +    inspectorData.countSize(ScriptProfiler::profilerSnapshotsSize());

What about reporting profile and visited nodes map sizes as separate children of InspectorData block?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664141</commentid>
    <comment_count>3</comment_count>
      <attachid>151091</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-06 09:38:07 -0700</bug_when>
    <thetext>Created attachment 151091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664143</commentid>
    <comment_count>4</comment_count>
      <attachid>150596</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-06 09:38:49 -0700</bug_when>
    <thetext>Comment on attachment 150596
Patch

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

&gt;&gt; Source/WebCore/inspector/InspectorMemoryAgent.cpp:446
&gt;&gt; +    return sizeof(ContainerType) + container.capacity() * sizeof(typename ContainerType::ValueType);
&gt; 
&gt; Please use the code for calculating container size from MemoryInstrumentation to avoid duplication, r- for this.

done

&gt;&gt; Source/WebCore/inspector/InspectorMemoryAgent.cpp:614
&gt;&gt; +    inspectorData.countSize(ScriptProfiler::profilerSnapshotsSize());
&gt; 
&gt; What about reporting profile and visited nodes map sizes as separate children of InspectorData block?

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665792</commentid>
    <comment_count>5</comment_count>
      <attachid>151091</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-10 09:10:44 -0700</bug_when>
    <thetext>Comment on attachment 151091
Patch

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

&gt; Source/WebCore/inspector/InspectorMemoryAgent.cpp:646
&gt; +    children-&gt;addItem(domTreeInfo(m_page, visitedObjects, &amp;inspectorData)); // TODO: collect for all pages?

// FIXME:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665797</commentid>
    <comment_count>6</comment_count>
      <attachid>151091</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-10 09:12:43 -0700</bug_when>
    <thetext>Comment on attachment 151091
Patch

Rejecting attachment 151091 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
e/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebCore/dom/MemoryInstrumentation.h
patching file Source/WebCore/inspector/InspectorMemoryAgent.cpp
Hunk #7 succeeded at 575 with fuzz 1.
Hunk #8 FAILED at 633.
1 out of 8 hunks FAILED -- saving rejects to file Source/WebCore/inspector/InspectorMemoryAgent.cpp.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Pavel Feld...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/13204004</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665841</commentid>
    <comment_count>7</comment_count>
      <attachid>151476</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-10 10:06:24 -0700</bug_when>
    <thetext>Created attachment 151476
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665845</commentid>
    <comment_count>8</comment_count>
      <attachid>151091</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-10 10:07:11 -0700</bug_when>
    <thetext>Comment on attachment 151091
Patch

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

also done rebaselining

&gt;&gt; Source/WebCore/inspector/InspectorMemoryAgent.cpp:646
&gt;&gt; +    children-&gt;addItem(domTreeInfo(m_page, visitedObjects, &amp;inspectorData)); // TODO: collect for all pages?
&gt; 
&gt; // FIXME:

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665941</commentid>
    <comment_count>9</comment_count>
      <attachid>151476</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-10 12:10:58 -0700</bug_when>
    <thetext>Comment on attachment 151476
Patch

Clearing flags on attachment: 151476

Committed r122243: &lt;http://trac.webkit.org/changeset/122243&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665942</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-10 12:11:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150596</attachid>
            <date>2012-07-03 06:28:21 -0700</date>
            <delta_ts>2012-07-06 09:38:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90456-20120703172819.patch</filename>
            <type>text/plain</type>
            <size>6182</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJkYmJlNDYxMzUwMjZi
OTNhZTgxZjRhNzJiYjk3Y2E4YTIzOTg2OS4uZWUzNjI5MGUwYzdkNDljNzZlN2RmN2FjNGRjNTQ2
ZDNmMjhkYTZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA3LTAzICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBDb3VudCBpbnNwZWN0b3IgbWVtb3J5IHVzZWQgdG8gdHJhdmVyc2UgRE9NIGluIG5hdGl2
ZSBtZW1vcnkgc25hcHNob3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTA0NTYKKworICAgICAgICBJbnNwZWN0b3IgbWF5IHRha2Ugc2lnbmlmaWNh
bnQgYW1vdW50IG9mIG1lbW9yeSB3aGVuIHRyYXZlcnNpbmcgRE9NIHN0cnVjdHVyZS4KKyAgICAg
ICAgVGFrZSBpdCBpbnRvIGFjY291bnQgYW5kIHJlcG9ydCB1bmRlciBpbnNwZWN0b3IgbWVtb3J5
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6ZG9tVHJlZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
TWVtb3J5QWdlbnQ6OmdldFByb2Nlc3NNZW1vcnlEaXN0cmlidXRpb24pOgorCiAyMDEyLTA3LTAz
ICBQaGlsaXAgUm9nZXJzICA8cGRyQGdvb2dsZS5jb20+CiAKICAgICAgICAgRml4IHRleHQgcG9z
aXRpb25pbmcgd2l0aCBub24tYm1wIGNoYXJhY3RlcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcAppbmRleCBjZTQ2Njg1ZTczNTQ5MjIx
YWIyZGJhNzI2ODc0MjczYWJlNTQ0M2JmLi41YzhhZTAxZWQ2YTU4ZWM3ZjViZWIzOWUyMWIxZjli
OGFjMjdlYjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
TWVtb3J5QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JN
ZW1vcnlBZ2VudC5jcHAKQEAgLTM1Nyw2ICszNTcsMjIgQEAgcHJpdmF0ZToKICAgICBzaXplX3Qg
bV9leHRlcm5hbEFycmF5U2l6ZTsKIH07CiAKK2NsYXNzIEluc3BlY3RvckRhdGFDb3VudGVyIHsK
K3B1YmxpYzoKKyAgICBJbnNwZWN0b3JEYXRhQ291bnRlcigpIDogbV9kYXRhU2l6ZSgwKSB7IH0K
KworICAgIHZvaWQgY291bnRTaXplKHNpemVfdCBzaXplKSB7IG1fZGF0YVNpemUgKz0gc2l6ZTsg
fQorICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+IGR1bXBTdGF0aXN0aWNzKCkK
KyAgICB7CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4gYmxvY2sgPSBJbnNw
ZWN0b3JNZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZShNZW1vcnlCbG9ja05hbWU6Omluc3Bl
Y3RvckRhdGEpOworICAgICAgICBibG9jay0+c2V0U2l6ZShtX2RhdGFTaXplKTsKKyAgICAgICAg
cmV0dXJuIGJsb2NrOworICAgIH0KKworcHJpdmF0ZToKKyAgICBzaXplX3QgbV9kYXRhU2l6ZTsK
K307CisKIH0gLy8gbmFtZXNwYWNlCiAKIEluc3BlY3Rvck1lbW9yeUFnZW50Ojp+SW5zcGVjdG9y
TWVtb3J5QWdlbnQoKQpAQCAtMzk5LDE0ICs0MTUsNiBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJbnNw
ZWN0b3JNZW1vcnlCbG9jaz4ganNIZWFwSW5mbygpCiAgICAgcmV0dXJuIGpzSGVhcEFsbG9jYXRl
ZC5yZWxlYXNlKCk7CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2Nr
PiBpbnNwZWN0b3JEYXRhKCkKLXsKLSAgICBzaXplX3QgZGF0YVNpemUgPSBTY3JpcHRQcm9maWxl
cjo6cHJvZmlsZXJTbmFwc2hvdHNTaXplKCk7Ci0gICAgUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJs
b2NrPiBpbnNwZWN0b3JEYXRhID0gSW5zcGVjdG9yTWVtb3J5QmxvY2s6OmNyZWF0ZSgpLnNldE5h
bWUoTWVtb3J5QmxvY2tOYW1lOjppbnNwZWN0b3JEYXRhKTsKLSAgICBpbnNwZWN0b3JEYXRhLT5z
ZXRTaXplKGRhdGFTaXplKTsKLSAgICByZXR1cm4gaW5zcGVjdG9yRGF0YS5yZWxlYXNlKCk7Ci19
Ci0KIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiByZW5kZXJUcmVlSW5m
byhQYWdlKiBwYWdlKQogewogICAgIEFyZW5hU2l6ZSBhcmVuYVNpemUgPSBwYWdlLT5yZW5kZXJU
cmVlU2l6ZSgpOwpAQCAtNDMyLDYgKzQ0MCwxMiBAQCBzdGF0aWMgdm9pZCBhZGRNZW1vcnlCbG9j
a0ZvcihUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yTWVtb3J5QmxvY2s+KiBhcnJheSwgcwog
CiBuYW1lc3BhY2UgewogCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb250YWluZXJUeXBlPgorc2l6ZV90
IGdldENvbnRhaW5lclNpemUoY29uc3QgQ29udGFpbmVyVHlwZSYgY29udGFpbmVyKQoreworICAg
IHJldHVybiBzaXplb2YoQ29udGFpbmVyVHlwZSkgKyBjb250YWluZXIuY2FwYWNpdHkoKSAqIHNp
emVvZih0eXBlbmFtZSBDb250YWluZXJUeXBlOjpWYWx1ZVR5cGUpOworfQorCiBjbGFzcyBNZW1v
cnlJbnN0cnVtZW50YXRpb25JbXBsIDogcHVibGljIE1lbW9yeUluc3RydW1lbnRhdGlvbiB7CiBw
dWJsaWM6CiAgICAgZXhwbGljaXQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbChWaXNpdGVkT2Jq
ZWN0cyYgdmlzaXRlZE9iamVjdHMpCkBAIC00NDEsOCArNDU1LDExIEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIG1fdG90YWxTaXplc1tpXSA9IDA7CiAgICAgfQogCi0gICAgUGFzc1JlZlB0cjxJbnNw
ZWN0b3JNZW1vcnlCbG9jaz4gZHVtcFN0YXRpc3RpY3MoKQorICAgIFBhc3NSZWZQdHI8SW5zcGVj
dG9yTWVtb3J5QmxvY2s+IGR1bXBTdGF0aXN0aWNzKEluc3BlY3RvckRhdGFDb3VudGVyKiBpbnNw
ZWN0b3JEYXRhKQogICAgIHsKKyAgICAgICAgc2l6ZV90IGluc3BlY3RvclNpemUgPSBnZXRDb250
YWluZXJTaXplKG1fdmlzaXRlZE9iamVjdHMpICsgZ2V0Q29udGFpbmVyU2l6ZShtX2RlZmVycmVk
SW5zdHJ1bWVudGVkUG9pbnRlcnMpOworICAgICAgICBpbnNwZWN0b3JEYXRhLT5jb3VudFNpemUo
aW5zcGVjdG9yU2l6ZSk7CisKICAgICAgICAgc2l6ZV90IHRvdGFsU2l6ZSA9IDA7CiAgICAgICAg
IGZvciAoaW50IGkgPSBPdGhlcjsgaSA8IExhc3RUeXBlRW50cnk7ICsraSkKICAgICAgICAgICAg
IHRvdGFsU2l6ZSArPSBtX3RvdGFsU2l6ZXNbaV07CkBAIC01MTksNyArNTM2LDEwIEBAIHB1Ymxp
YzoKICAgICAgICAgU2NyaXB0UHJvZmlsZXI6OmNvbGxlY3RCaW5kaW5nTWVtb3J5SW5mbygmbV9k
b21NZW1vcnlVc2FnZSk7CiAgICAgfQogCi0gICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JNZW1vcnlC
bG9jaz4gZHVtcFN0YXRpc3RpY3MoKSB7IHJldHVybiBtX2RvbU1lbW9yeVVzYWdlLmR1bXBTdGF0
aXN0aWNzKCk7IH0KKyAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiBkdW1wU3Rh
dGlzdGljcyhJbnNwZWN0b3JEYXRhQ291bnRlciogaW5zcGVjdG9yRGF0YSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBtX2RvbU1lbW9yeVVzYWdlLmR1bXBTdGF0aXN0aWNzKGluc3BlY3RvckRhdGEp
OworICAgIH0KIAogcHJpdmF0ZToKICAgICBQYWdlKiBtX3BhZ2U7CkBAIC01MjgsNyArNTQ4LDcg
QEAgcHJpdmF0ZToKIAogfQogCi1zdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9j
az4gZG9tVHJlZUluZm8oUGFnZSogcGFnZSwgVmlzaXRlZE9iamVjdHMmIHZpc2l0ZWRPYmplY3Rz
KQorc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+IGRvbVRyZWVJbmZvKFBh
Z2UqIHBhZ2UsIFZpc2l0ZWRPYmplY3RzJiB2aXNpdGVkT2JqZWN0cywgSW5zcGVjdG9yRGF0YUNv
dW50ZXIqIGluc3BlY3RvckRhdGEpCiB7CiAgICAgRE9NVHJlZXNJdGVyYXRvciBkb21UcmVlc0l0
ZXJhdG9yKHBhZ2UsIHZpc2l0ZWRPYmplY3RzKTsKICAgICBTY3JpcHRQcm9maWxlcjo6dmlzaXRO
b2RlV3JhcHBlcnMoJmRvbVRyZWVzSXRlcmF0b3IpOwpAQCAtNTQxLDcgKzU2MSw3IEBAIHN0YXRp
YyBQYXNzUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiBkb21UcmVlSW5mbyhQYWdlKiBwYWdl
LCBWaXNpdGVkT2JqZWN0cyYKIAogICAgIGRvbVRyZWVzSXRlcmF0b3IudmlzaXRCaW5kaW5ncygp
OwogCi0gICAgcmV0dXJuIGRvbVRyZWVzSXRlcmF0b3IuZHVtcFN0YXRpc3RpY3MoKTsKKyAgICBy
ZXR1cm4gZG9tVHJlZXNJdGVyYXRvci5kdW1wU3RhdGlzdGljcyhpbnNwZWN0b3JEYXRhKTsKIH0K
IAogc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+IG1lbW9yeUNhY2hlSW5m
bygpCkBAIC01ODgsMjEgKzYwOCwyNSBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JNZW1v
cnlCbG9jaz4ganNFeHRlcm5hbFJlc291cmNlc0luZm8oVmlzaXRlZE9iamVjdHMmCiAKIHZvaWQg
SW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmdldFByb2Nlc3NNZW1vcnlEaXN0cmlidXRpb24oRXJyb3JT
dHJpbmcqLCBSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+JiBwcm9jZXNzTWVtb3J5KQogewot
ICAgIHNpemVfdCBwcml2YXRlQnl0ZXMgPSAwOwotICAgIHNpemVfdCBzaGFyZWRCeXRlcyA9IDA7
Ci0gICAgTWVtb3J5VXNhZ2VTdXBwb3J0Ojpwcm9jZXNzTWVtb3J5U2l6ZXNJbkJ5dGVzKCZwcml2
YXRlQnl0ZXMsICZzaGFyZWRCeXRlcyk7CiAgICAgcHJvY2Vzc01lbW9yeSA9IEluc3BlY3Rvck1l
bW9yeUJsb2NrOjpjcmVhdGUoKS5zZXROYW1lKE1lbW9yeUJsb2NrTmFtZTo6cHJvY2Vzc1ByaXZh
dGVNZW1vcnkpOwotICAgIHByb2Nlc3NNZW1vcnktPnNldFNpemUocHJpdmF0ZUJ5dGVzKTsKKwor
ICAgIEluc3BlY3RvckRhdGFDb3VudGVyIGluc3BlY3RvckRhdGE7CisgICAgaW5zcGVjdG9yRGF0
YS5jb3VudFNpemUoU2NyaXB0UHJvZmlsZXI6OnByb2ZpbGVyU25hcHNob3RzU2l6ZSgpKTsKIAog
ICAgIFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOwogICAgIFJlZlB0cjxUeXBlQnVpbGRl
cjo6QXJyYXk8SW5zcGVjdG9yTWVtb3J5QmxvY2s+ID4gY2hpbGRyZW4gPSBUeXBlQnVpbGRlcjo6
QXJyYXk8SW5zcGVjdG9yTWVtb3J5QmxvY2s+OjpjcmVhdGUoKTsKICAgICBjaGlsZHJlbi0+YWRk
SXRlbShqc0hlYXBJbmZvKCkpOwotICAgIGNoaWxkcmVuLT5hZGRJdGVtKGluc3BlY3RvckRhdGEo
KSk7CiAgICAgY2hpbGRyZW4tPmFkZEl0ZW0obWVtb3J5Q2FjaGVJbmZvKCkpOwogICAgIGNoaWxk
cmVuLT5hZGRJdGVtKHJlbmRlclRyZWVJbmZvKG1fcGFnZSkpOyAvLyBUT0RPOiBjb2xsZWN0IGZv
ciBhbGwgcGFnZXM/Ci0gICAgY2hpbGRyZW4tPmFkZEl0ZW0oZG9tVHJlZUluZm8obV9wYWdlLCB2
aXNpdGVkT2JqZWN0cykpOyAvLyBUT0RPOiBjb2xsZWN0IGZvciBhbGwgcGFnZXM/CisgICAgY2hp
bGRyZW4tPmFkZEl0ZW0oZG9tVHJlZUluZm8obV9wYWdlLCB2aXNpdGVkT2JqZWN0cywgJmluc3Bl
Y3RvckRhdGEpKTsgLy8gVE9ETzogY29sbGVjdCBmb3IgYWxsIHBhZ2VzPwogICAgIGNoaWxkcmVu
LT5hZGRJdGVtKGpzRXh0ZXJuYWxSZXNvdXJjZXNJbmZvKHZpc2l0ZWRPYmplY3RzKSk7CisgICAg
Y2hpbGRyZW4tPmFkZEl0ZW0oaW5zcGVjdG9yRGF0YS5kdW1wU3RhdGlzdGljcygpKTsKICAgICBw
cm9jZXNzTWVtb3J5LT5zZXRDaGlsZHJlbihjaGlsZHJlbik7CisKKyAgICBzaXplX3QgcHJpdmF0
ZUJ5dGVzID0gMDsKKyAgICBzaXplX3Qgc2hhcmVkQnl0ZXMgPSAwOworICAgIE1lbW9yeVVzYWdl
U3VwcG9ydDo6cHJvY2Vzc01lbW9yeVNpemVzSW5CeXRlcygmcHJpdmF0ZUJ5dGVzLCAmc2hhcmVk
Qnl0ZXMpOworICAgIHByb2Nlc3NNZW1vcnktPnNldFNpemUocHJpdmF0ZUJ5dGVzKTsKIH0KIAog
SW5zcGVjdG9yTWVtb3J5QWdlbnQ6Okluc3BlY3Rvck1lbW9yeUFnZW50KEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgUGFnZSog
cGFnZSwgSW5zcGVjdG9yRE9NQWdlbnQqKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151091</attachid>
            <date>2012-07-06 09:38:07 -0700</date>
            <delta_ts>2012-07-10 10:07:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90456-20120706203806.patch</filename>
            <type>text/plain</type>
            <size>9485</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxOTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmY1NzdmNmEyOTU2OTkw
MWM1ZjQ5YzgwNmFjYTMwNWIxYjQwM2Y5MS4uMjRlMDkzNGVhOTc4ZTNlYTE4OWNjYmQ4MTY2YTk4
MzE0NGQ2ZDNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDEyLTA3LTA2ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KIAorICAgICAgICBXZWIgSW5zcGVj
dG9yOiBDb3VudCBpbnNwZWN0b3IgbWVtb3J5IHVzZWQgdG8gdHJhdmVyc2UgRE9NIGluIG5hdGl2
ZSBtZW1vcnkgc25hcHNob3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTA0NTYKKworICAgICAgICBJbnNwZWN0b3IgbWF5IHRha2Ugc2lnbmlmaWNh
bnQgYW1vdW50IG9mIG1lbW9yeSB3aGVuIHRyYXZlcnNpbmcgRE9NIHN0cnVjdHVyZS4KKyAgICAg
ICAgVGFrZSBpdCBpbnRvIGFjY291bnQgYW5kIHJlcG9ydCB1bmRlciBpbnNwZWN0b3IgbWVtb3J5
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZG9t
L01lbW9yeUluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoTWVtb3J5SW5zdHJ1bWVudGF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6Y2FsY3VsYXRlQ29u
dGFpbmVyU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246OnJl
cG9ydEhhc2hNYXApOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpy
ZXBvcnRIYXNoU2V0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6
cmVwb3J0VmVjdG9yKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQu
Y3BwOgorICAgICAgICAoTWVtb3J5QmxvY2tOYW1lKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6ZG9tVHJlZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
TWVtb3J5QWdlbnQ6OmdldFByb2Nlc3NNZW1vcnlEaXN0cmlidXRpb24pOgorCisyMDEyLTA3LTA2
ICBBbGV4ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKwogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBBZGQgbmF0aXZlIG1lbW9yeSB1c2VkIGJ5IEdseXBoQ2FjaGUgdG8gdGhlIHNu
YXBzaG90CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
MDYxNQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXgg
MWQ5OWExMjNjMGJlMDQxYTc1ZTJhMGEyNjYzNzczYWU5YWRjOWU3Yy4uN2EwZDQxYzUwNTBiMDkx
MWRmYjQ0NTgzMjVhMzg5MTc1ZWMxNWEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L01lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJ
bnN0cnVtZW50YXRpb24uaApAQCAtNzQsNiArNzQsMTIgQEAgcHJvdGVjdGVkOgogICAgICAgICB2
aXJ0dWFsIHZvaWQgcHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50YXRpb24qKSA9IDA7CiAgICAgfTsK
IAorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDb250YWluZXI+CisgICAgc2l6ZV90IGNhbGN1bGF0
ZUNvbnRhaW5lclNpemUoY29uc3QgQ29udGFpbmVyJiBjb250YWluZXIsIGJvb2wgY29udGVudE9u
bHkgPSBmYWxzZSkKKyAgICB7CisgICAgICAgIHJldHVybiAoY29udGVudE9ubHkgPyAwIDogc2l6
ZW9mKGNvbnRhaW5lcikpICsgY29udGFpbmVyLmNhcGFjaXR5KCkgKiBzaXplb2YodHlwZW5hbWUg
Q29udGFpbmVyOjpWYWx1ZVR5cGUpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xh
c3MgTWVtb3J5T2JqZWN0SW5mbzsKIApAQCAtMTkyLDggKzE5OCw3IEBAIHZvaWQgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uOjpyZXBvcnRJbnN0cnVtZW50ZWRPYmplY3QoY29uc3QgVCYgb2JqZWN0KQog
dGVtcGxhdGU8dHlwZW5hbWUgSGFzaE1hcFR5cGU+CiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlv
bjo6cmVwb3J0SGFzaE1hcChjb25zdCBIYXNoTWFwVHlwZSYgaGFzaE1hcCwgT2JqZWN0VHlwZSBv
YmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5KQogewotICAgIHNpemVfdCBzaXplID0gKGNvbnRl
bnRPbmx5ID8gMCA6IHNpemVvZihIYXNoTWFwVHlwZSkpICsgaGFzaE1hcC5jYXBhY2l0eSgpICog
c2l6ZW9mKHR5cGVuYW1lIEhhc2hNYXBUeXBlOjpWYWx1ZVR5cGUpOwotICAgIGNvdW50T2JqZWN0
U2l6ZShvYmplY3RUeXBlLCBzaXplKTsKKyAgICBjb3VudE9iamVjdFNpemUob2JqZWN0VHlwZSwg
Y2FsY3VsYXRlQ29udGFpbmVyU2l6ZShoYXNoTWFwLCBjb250ZW50T25seSkpOwogfQogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBIYXNoU2V0VHlwZT4KQEAgLTIwMSw4ICsyMDYsNyBAQCB2b2lkIE1lbW9y
eUluc3RydW1lbnRhdGlvbjo6cmVwb3J0SGFzaFNldChjb25zdCBIYXNoU2V0VHlwZSYgaGFzaFNl
dCwgT2JqZWN0VHlwZQogewogICAgIGlmICh2aXNpdGVkKCZoYXNoU2V0KSkKICAgICAgICAgcmV0
dXJuOwotICAgIHNpemVfdCBzaXplID0gKGNvbnRlbnRPbmx5ID8gMCA6IHNpemVvZihIYXNoU2V0
VHlwZSkpICsgaGFzaFNldC5jYXBhY2l0eSgpICogc2l6ZW9mKHR5cGVuYW1lIEhhc2hTZXRUeXBl
OjpWYWx1ZVR5cGUpOwotICAgIGNvdW50T2JqZWN0U2l6ZShvYmplY3RUeXBlLCBzaXplKTsKKyAg
ICBjb3VudE9iamVjdFNpemUob2JqZWN0VHlwZSwgY2FsY3VsYXRlQ29udGFpbmVyU2l6ZShoYXNo
U2V0LCBjb250ZW50T25seSkpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBMaXN0SGFzaFNldFR5
cGU+CkBAIC0yMTksOCArMjIzLDcgQEAgdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OnJlcG9y
dFZlY3Rvcihjb25zdCBWZWN0b3JUeXBlJiB2ZWN0b3IsIE9iamVjdFR5cGUgb2IKIHsKICAgICBp
ZiAodmlzaXRlZCh2ZWN0b3IuZGF0YSgpKSkKICAgICAgICAgcmV0dXJuOwotICAgIHNpemVfdCBz
aXplID0gKGNvbnRlbnRPbmx5ID8gMCA6IHNpemVvZihWZWN0b3JUeXBlKSkgKyB2ZWN0b3IuY2Fw
YWNpdHkoKSAqIHNpemVvZih0eXBlbmFtZSBWZWN0b3JUeXBlOjpWYWx1ZVR5cGUpOwotICAgIGNv
dW50T2JqZWN0U2l6ZShvYmplY3RUeXBlLCBzaXplKTsKKyAgICBjb3VudE9iamVjdFNpemUob2Jq
ZWN0VHlwZSwgY2FsY3VsYXRlQ29udGFpbmVyU2l6ZSh2ZWN0b3IsIGNvbnRlbnRPbmx5KSk7CiB9
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcAppbmRleCBlZjA3ZmUyOWJiYzJkNjNjOTVhYmY4MDA2
NzkyZDQzMWVjYjgxMzgxLi5kMzI4OGFhN2E0OTBiNmJkYjkyODEyOWI0YWE2MTQxYmZhNjg4OWEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2Vu
dC5jcHAKQEAgLTc4LDYgKzc4LDggQEAgc3RhdGljIGNvbnN0IGNoYXIganNFeHRlcm5hbFJlc291
cmNlc1tdID0gIkpTRXh0ZXJuYWxSZXNvdXJjZXMiOwogc3RhdGljIGNvbnN0IGNoYXIganNFeHRl
cm5hbEFycmF5c1tdID0gIkpTRXh0ZXJuYWxBcnJheXMiOwogc3RhdGljIGNvbnN0IGNoYXIganNF
eHRlcm5hbFN0cmluZ3NbXSA9ICJKU0V4dGVybmFsU3RyaW5ncyI7CiBzdGF0aWMgY29uc3QgY2hh
ciBpbnNwZWN0b3JEYXRhW10gPSAiSW5zcGVjdG9yRGF0YSI7CitzdGF0aWMgY29uc3QgY2hhciBp
bnNwZWN0b3JET01EYXRhW10gPSAiSW5zcGVjdG9yRE9NRGF0YSI7CitzdGF0aWMgY29uc3QgY2hh
ciBpbnNwZWN0b3JKU0hlYXBEYXRhW10gPSAiSW5zcGVjdG9ySlNIZWFwRGF0YSI7CiBzdGF0aWMg
Y29uc3QgY2hhciBtZW1vcnlDYWNoZVtdID0gIk1lbW9yeUNhY2hlIjsKIHN0YXRpYyBjb25zdCBj
aGFyIHByb2Nlc3NQcml2YXRlTWVtb3J5W10gPSAiUHJvY2Vzc1ByaXZhdGVNZW1vcnkiOwogCkBA
IC0zNTcsNiArMzU5LDM4IEBAIHByaXZhdGU6CiAgICAgc2l6ZV90IG1fZXh0ZXJuYWxBcnJheVNp
emU7CiB9OwogCitjbGFzcyBJbnNwZWN0b3JEYXRhQ291bnRlciB7CitwdWJsaWM6CisgICAgdm9p
ZCBhZGRDb21wb25lbnQoY29uc3QgU3RyaW5nJiBuYW1lLCBzaXplX3Qgc2l6ZSkKKyAgICB7Cisg
ICAgICAgIG1fY29tcG9uZW50cy5hcHBlbmQoQ29tcG9uZW50SW5mbyhuYW1lLCBzaXplKSk7Cisg
ICAgfQorCisgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4gZHVtcFN0YXRpc3Rp
Y3MoKQorICAgIHsKKyAgICAgICAgc2l6ZV90IHRvdGFsU2l6ZSA9IDA7CisgICAgICAgIFJlZlB0
cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4gYmxvY2sgPSBJbnNwZWN0b3JNZW1vcnlCbG9jazo6Y3Jl
YXRlKCkuc2V0TmFtZShNZW1vcnlCbG9ja05hbWU6Omluc3BlY3RvckRhdGEpOworICAgICAgICBm
b3IgKFZlY3RvcjxDb21wb25lbnRJbmZvPjo6aXRlcmF0b3IgaXQgPSBtX2NvbXBvbmVudHMuYmVn
aW4oKTsgaXQgIT0gbV9jb21wb25lbnRzLmVuZCgpOyArK2l0KSB7CisgICAgICAgICAgICBSZWZQ
dHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+IGJsb2NrID0gSW5zcGVjdG9yTWVtb3J5QmxvY2s6OmNy
ZWF0ZSgpLnNldE5hbWUoaXQtPm1fbmFtZSk7CisgICAgICAgICAgICBibG9jay0+c2V0U2l6ZShp
dC0+bV9zaXplKTsKKyAgICAgICAgICAgIHRvdGFsU2l6ZSArPSBpdC0+bV9zaXplOworICAgICAg
ICB9CisgICAgICAgIGJsb2NrLT5zZXRTaXplKHRvdGFsU2l6ZSk7CisgICAgICAgIHJldHVybiBi
bG9jazsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgY2xhc3MgQ29tcG9uZW50SW5mbyB7CisgICAg
cHVibGljOgorICAgICAgICBDb21wb25lbnRJbmZvKGNvbnN0IFN0cmluZyYgbmFtZSwgc2l6ZV90
IHNpemUpIDogbV9uYW1lKG5hbWUpLCBtX3NpemUoc2l6ZSkgeyB9CisKKyAgICAgICAgY29uc3Qg
U3RyaW5nIG1fbmFtZTsKKyAgICAgICAgc2l6ZV90IG1fc2l6ZTsKKyAgICB9OworCisgICAgVmVj
dG9yPENvbXBvbmVudEluZm8+IG1fY29tcG9uZW50czsKK307CisKIH0gLy8gbmFtZXNwYWNlCiAK
IEluc3BlY3Rvck1lbW9yeUFnZW50Ojp+SW5zcGVjdG9yTWVtb3J5QWdlbnQoKQpAQCAtMzk5LDE0
ICs0MzMsNiBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4ganNIZWFw
SW5mbygpCiAgICAgcmV0dXJuIGpzSGVhcEFsbG9jYXRlZC5yZWxlYXNlKCk7CiB9CiAKLXN0YXRp
YyBQYXNzUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiBpbnNwZWN0b3JEYXRhKCkKLXsKLSAg
ICBzaXplX3QgZGF0YVNpemUgPSBTY3JpcHRQcm9maWxlcjo6cHJvZmlsZXJTbmFwc2hvdHNTaXpl
KCk7Ci0gICAgUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiBpbnNwZWN0b3JEYXRhID0gSW5z
cGVjdG9yTWVtb3J5QmxvY2s6OmNyZWF0ZSgpLnNldE5hbWUoTWVtb3J5QmxvY2tOYW1lOjppbnNw
ZWN0b3JEYXRhKTsKLSAgICBpbnNwZWN0b3JEYXRhLT5zZXRTaXplKGRhdGFTaXplKTsKLSAgICBy
ZXR1cm4gaW5zcGVjdG9yRGF0YS5yZWxlYXNlKCk7Ci19Ci0KIHN0YXRpYyBQYXNzUmVmUHRyPElu
c3BlY3Rvck1lbW9yeUJsb2NrPiByZW5kZXJUcmVlSW5mbyhQYWdlKiBwYWdlKQogewogICAgIEFy
ZW5hU2l6ZSBhcmVuYVNpemUgPSBwYWdlLT5yZW5kZXJUcmVlU2l6ZSgpOwpAQCAtNDQxLDggKzQ2
NywxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX3RvdGFsU2l6ZXNbaV0gPSAwOwogICAgIH0K
IAotICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+IGR1bXBTdGF0aXN0aWNzKCkK
KyAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiBkdW1wU3RhdGlzdGljcyhJbnNw
ZWN0b3JEYXRhQ291bnRlciogaW5zcGVjdG9yRGF0YSkKICAgICB7CisgICAgICAgIHNpemVfdCBp
bnNwZWN0b3JTaXplCisgICAgICAgICAgICA9IGNhbGN1bGF0ZUNvbnRhaW5lclNpemUobV92aXNp
dGVkT2JqZWN0cykKKyAgICAgICAgICAgICsgY2FsY3VsYXRlQ29udGFpbmVyU2l6ZShtX2RlZmVy
cmVkSW5zdHJ1bWVudGVkUG9pbnRlcnMpOworICAgICAgICBpbnNwZWN0b3JEYXRhLT5hZGRDb21w
b25lbnQoTWVtb3J5QmxvY2tOYW1lOjppbnNwZWN0b3JET01EYXRhLCBpbnNwZWN0b3JTaXplKTsK
KwogICAgICAgICBzaXplX3QgdG90YWxTaXplID0gMDsKICAgICAgICAgZm9yIChpbnQgaSA9IE90
aGVyOyBpIDwgTGFzdFR5cGVFbnRyeTsgKytpKQogICAgICAgICAgICAgdG90YWxTaXplICs9IG1f
dG90YWxTaXplc1tpXTsKQEAgLTUxOSw3ICs1NTAsMTAgQEAgcHVibGljOgogICAgICAgICBTY3Jp
cHRQcm9maWxlcjo6Y29sbGVjdEJpbmRpbmdNZW1vcnlJbmZvKCZtX2RvbU1lbW9yeVVzYWdlKTsK
ICAgICB9CiAKLSAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiBkdW1wU3RhdGlz
dGljcygpIHsgcmV0dXJuIG1fZG9tTWVtb3J5VXNhZ2UuZHVtcFN0YXRpc3RpY3MoKTsgfQorICAg
IFBhc3NSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+IGR1bXBTdGF0aXN0aWNzKEluc3BlY3Rv
ckRhdGFDb3VudGVyKiBpbnNwZWN0b3JEYXRhKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZG9t
TWVtb3J5VXNhZ2UuZHVtcFN0YXRpc3RpY3MoaW5zcGVjdG9yRGF0YSk7CisgICAgfQogCiBwcml2
YXRlOgogICAgIFBhZ2UqIG1fcGFnZTsKQEAgLTUyOCw3ICs1NjIsNyBAQCBwcml2YXRlOgogCiB9
CiAKLXN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiBkb21UcmVlSW5mbyhQ
YWdlKiBwYWdlLCBWaXNpdGVkT2JqZWN0cyYgdmlzaXRlZE9iamVjdHMpCitzdGF0aWMgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4gZG9tVHJlZUluZm8oUGFnZSogcGFnZSwgVmlzaXRl
ZE9iamVjdHMmIHZpc2l0ZWRPYmplY3RzLCBJbnNwZWN0b3JEYXRhQ291bnRlciogaW5zcGVjdG9y
RGF0YSkKIHsKICAgICBET01UcmVlc0l0ZXJhdG9yIGRvbVRyZWVzSXRlcmF0b3IocGFnZSwgdmlz
aXRlZE9iamVjdHMpOwogICAgIFNjcmlwdFByb2ZpbGVyOjp2aXNpdE5vZGVXcmFwcGVycygmZG9t
VHJlZXNJdGVyYXRvcik7CkBAIC01NDEsNyArNTc1LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5z
cGVjdG9yTWVtb3J5QmxvY2s+IGRvbVRyZWVJbmZvKFBhZ2UqIHBhZ2UsIFZpc2l0ZWRPYmplY3Rz
JgogCiAgICAgZG9tVHJlZXNJdGVyYXRvci52aXNpdEJpbmRpbmdzKCk7CiAKLSAgICByZXR1cm4g
ZG9tVHJlZXNJdGVyYXRvci5kdW1wU3RhdGlzdGljcygpOworICAgIHJldHVybiBkb21UcmVlc0l0
ZXJhdG9yLmR1bXBTdGF0aXN0aWNzKGluc3BlY3RvckRhdGEpOwogfQogCiBzdGF0aWMgdm9pZCBh
ZGRQbGF0Zm9ybUNvbXBvbmVudHNJbmZvKFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PElu
c3BlY3Rvck1lbW9yeUJsb2NrPiA+IGNoaWxkcmVuKQpAQCAtNTk5LDIyICs2MzMsMjYgQEAgc3Rh
dGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+IGpzRXh0ZXJuYWxSZXNvdXJjZXNJ
bmZvKFZpc2l0ZWRPYmplY3RzJgogCiB2b2lkIEluc3BlY3Rvck1lbW9yeUFnZW50OjpnZXRQcm9j
ZXNzTWVtb3J5RGlzdHJpYnV0aW9uKEVycm9yU3RyaW5nKiwgUmVmUHRyPEluc3BlY3Rvck1lbW9y
eUJsb2NrPiYgcHJvY2Vzc01lbW9yeSkKIHsKLSAgICBzaXplX3QgcHJpdmF0ZUJ5dGVzID0gMDsK
LSAgICBzaXplX3Qgc2hhcmVkQnl0ZXMgPSAwOwotICAgIE1lbW9yeVVzYWdlU3VwcG9ydDo6cHJv
Y2Vzc01lbW9yeVNpemVzSW5CeXRlcygmcHJpdmF0ZUJ5dGVzLCAmc2hhcmVkQnl0ZXMpOwogICAg
IHByb2Nlc3NNZW1vcnkgPSBJbnNwZWN0b3JNZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZShN
ZW1vcnlCbG9ja05hbWU6OnByb2Nlc3NQcml2YXRlTWVtb3J5KTsKLSAgICBwcm9jZXNzTWVtb3J5
LT5zZXRTaXplKHByaXZhdGVCeXRlcyk7CisKKyAgICBJbnNwZWN0b3JEYXRhQ291bnRlciBpbnNw
ZWN0b3JEYXRhOworICAgIGluc3BlY3RvckRhdGEuYWRkQ29tcG9uZW50KE1lbW9yeUJsb2NrTmFt
ZTo6aW5zcGVjdG9ySlNIZWFwRGF0YSwgU2NyaXB0UHJvZmlsZXI6OnByb2ZpbGVyU25hcHNob3Rz
U2l6ZSgpKTsKIAogICAgIFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOwogICAgIFJlZlB0
cjxUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yTWVtb3J5QmxvY2s+ID4gY2hpbGRyZW4gPSBU
eXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yTWVtb3J5QmxvY2s+OjpjcmVhdGUoKTsKICAgICBj
aGlsZHJlbi0+YWRkSXRlbShqc0hlYXBJbmZvKCkpOwotICAgIGNoaWxkcmVuLT5hZGRJdGVtKGlu
c3BlY3RvckRhdGEoKSk7CiAgICAgY2hpbGRyZW4tPmFkZEl0ZW0obWVtb3J5Q2FjaGVJbmZvKCkp
OwogICAgIGNoaWxkcmVuLT5hZGRJdGVtKHJlbmRlclRyZWVJbmZvKG1fcGFnZSkpOyAvLyBUT0RP
OiBjb2xsZWN0IGZvciBhbGwgcGFnZXM/Ci0gICAgY2hpbGRyZW4tPmFkZEl0ZW0oZG9tVHJlZUlu
Zm8obV9wYWdlLCB2aXNpdGVkT2JqZWN0cykpOyAvLyBUT0RPOiBjb2xsZWN0IGZvciBhbGwgcGFn
ZXM/CisgICAgY2hpbGRyZW4tPmFkZEl0ZW0oZG9tVHJlZUluZm8obV9wYWdlLCB2aXNpdGVkT2Jq
ZWN0cywgJmluc3BlY3RvckRhdGEpKTsgLy8gVE9ETzogY29sbGVjdCBmb3IgYWxsIHBhZ2VzPwog
ICAgIGNoaWxkcmVuLT5hZGRJdGVtKGpzRXh0ZXJuYWxSZXNvdXJjZXNJbmZvKHZpc2l0ZWRPYmpl
Y3RzKSk7CisgICAgY2hpbGRyZW4tPmFkZEl0ZW0oaW5zcGVjdG9yRGF0YS5kdW1wU3RhdGlzdGlj
cygpKTsKICAgICBhZGRQbGF0Zm9ybUNvbXBvbmVudHNJbmZvKGNoaWxkcmVuKTsKICAgICBwcm9j
ZXNzTWVtb3J5LT5zZXRDaGlsZHJlbihjaGlsZHJlbik7CisKKyAgICBzaXplX3QgcHJpdmF0ZUJ5
dGVzID0gMDsKKyAgICBzaXplX3Qgc2hhcmVkQnl0ZXMgPSAwOworICAgIE1lbW9yeVVzYWdlU3Vw
cG9ydDo6cHJvY2Vzc01lbW9yeVNpemVzSW5CeXRlcygmcHJpdmF0ZUJ5dGVzLCAmc2hhcmVkQnl0
ZXMpOworICAgIHByb2Nlc3NNZW1vcnktPnNldFNpemUocHJpdmF0ZUJ5dGVzKTsKIH0KIAogSW5z
cGVjdG9yTWVtb3J5QWdlbnQ6Okluc3BlY3Rvck1lbW9yeUFnZW50KEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgUGFnZSogcGFn
ZSwgSW5zcGVjdG9yRE9NQWdlbnQqKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151476</attachid>
            <date>2012-07-10 10:06:24 -0700</date>
            <delta_ts>2012-07-10 12:10:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90456-20120710210623.patch</filename>
            <type>text/plain</type>
            <size>9695</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDIzZDY4OTU1ZDk5MmQy
NjY5N2QyMjc0OTFjOWRkOWQ1ZmEzZmQzOC4uYjU5MGMwNjE1ZTc2M2IzZjE2NmNlZjIwYzkwMWVk
ODViOTVmMzkxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA3LTEwICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBDb3VudCBpbnNwZWN0b3IgbWVtb3J5IHVzZWQgdG8gdHJhdmVyc2UgRE9NIGluIG5hdGl2
ZSBtZW1vcnkgc25hcHNob3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTA0NTYKKworICAgICAgICBJbnNwZWN0b3IgbWF5IHRha2Ugc2lnbmlmaWNh
bnQgYW1vdW50IG9mIG1lbW9yeSB3aGVuIHRyYXZlcnNpbmcgRE9NIHN0cnVjdHVyZS4KKyAgICAg
ICAgVGFrZSBpdCBpbnRvIGFjY291bnQgYW5kIHJlcG9ydCB1bmRlciBpbnNwZWN0b3IgbWVtb3J5
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZG9t
L01lbW9yeUluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoTWVtb3J5SW5zdHJ1bWVudGF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6Y2FsY3VsYXRlQ29u
dGFpbmVyU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246OnJl
cG9ydEhhc2hNYXApOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpy
ZXBvcnRIYXNoU2V0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6
cmVwb3J0VmVjdG9yKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQu
Y3BwOgorICAgICAgICAoTWVtb3J5QmxvY2tOYW1lKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6ZG9tVHJlZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
TWVtb3J5QWdlbnQ6OmdldFByb2Nlc3NNZW1vcnlEaXN0cmlidXRpb24pOgorCiAyMDEyLTA3LTEw
ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IFJlZmFjdG9yIHJlc291cmNlIHJldmlzaW9ucyBiZWZvcmUgbW92aW5nIHRvIFVJ
U291cmNlQ29kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVt
ZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaApp
bmRleCAxZDk5YTEyM2MwYmUwNDFhNzVlMmEwYTI2NjM3NzNhZTlhZGM5ZTdjLi43YTBkNDFjNTA1
MGIwOTExZGZiNDQ1ODMyNWEzODkxNzVlYzE1YTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01l
bW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC03NCw2ICs3NCwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKE1lbW9yeUluc3RydW1lbnRhdGlvbiopID0gMDsKICAg
ICB9OwogCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENvbnRhaW5lcj4KKyAgICBzaXplX3QgY2Fs
Y3VsYXRlQ29udGFpbmVyU2l6ZShjb25zdCBDb250YWluZXImIGNvbnRhaW5lciwgYm9vbCBjb250
ZW50T25seSA9IGZhbHNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChjb250ZW50T25seSA/IDAg
OiBzaXplb2YoY29udGFpbmVyKSkgKyBjb250YWluZXIuY2FwYWNpdHkoKSAqIHNpemVvZih0eXBl
bmFtZSBDb250YWluZXI6OlZhbHVlVHlwZSk7CisgICAgfQorCiBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBNZW1vcnlPYmplY3RJbmZvOwogCkBAIC0xOTIsOCArMTk4LDcgQEAgdm9pZCBNZW1v
cnlJbnN0cnVtZW50YXRpb246OnJlcG9ydEluc3RydW1lbnRlZE9iamVjdChjb25zdCBUJiBvYmpl
Y3QpCiB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoTWFwVHlwZT4KIHZvaWQgTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uOjpyZXBvcnRIYXNoTWFwKGNvbnN0IEhhc2hNYXBUeXBlJiBoYXNoTWFwLCBPYmplY3RU
eXBlIG9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkpCiB7Ci0gICAgc2l6ZV90IHNpemUgPSAo
Y29udGVudE9ubHkgPyAwIDogc2l6ZW9mKEhhc2hNYXBUeXBlKSkgKyBoYXNoTWFwLmNhcGFjaXR5
KCkgKiBzaXplb2YodHlwZW5hbWUgSGFzaE1hcFR5cGU6OlZhbHVlVHlwZSk7Ci0gICAgY291bnRP
YmplY3RTaXplKG9iamVjdFR5cGUsIHNpemUpOworICAgIGNvdW50T2JqZWN0U2l6ZShvYmplY3RU
eXBlLCBjYWxjdWxhdGVDb250YWluZXJTaXplKGhhc2hNYXAsIGNvbnRlbnRPbmx5KSk7CiB9CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hTZXRUeXBlPgpAQCAtMjAxLDggKzIwNiw3IEBAIHZvaWQg
TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpyZXBvcnRIYXNoU2V0KGNvbnN0IEhhc2hTZXRUeXBlJiBo
YXNoU2V0LCBPYmplY3RUeXBlCiB7CiAgICAgaWYgKHZpc2l0ZWQoJmhhc2hTZXQpKQogICAgICAg
ICByZXR1cm47Ci0gICAgc2l6ZV90IHNpemUgPSAoY29udGVudE9ubHkgPyAwIDogc2l6ZW9mKEhh
c2hTZXRUeXBlKSkgKyBoYXNoU2V0LmNhcGFjaXR5KCkgKiBzaXplb2YodHlwZW5hbWUgSGFzaFNl
dFR5cGU6OlZhbHVlVHlwZSk7Ci0gICAgY291bnRPYmplY3RTaXplKG9iamVjdFR5cGUsIHNpemUp
OworICAgIGNvdW50T2JqZWN0U2l6ZShvYmplY3RUeXBlLCBjYWxjdWxhdGVDb250YWluZXJTaXpl
KGhhc2hTZXQsIGNvbnRlbnRPbmx5KSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExpc3RIYXNo
U2V0VHlwZT4KQEAgLTIxOSw4ICsyMjMsNyBAQCB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6
cmVwb3J0VmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmIHZlY3RvciwgT2JqZWN0VHlwZSBvYgogewog
ICAgIGlmICh2aXNpdGVkKHZlY3Rvci5kYXRhKCkpKQogICAgICAgICByZXR1cm47Ci0gICAgc2l6
ZV90IHNpemUgPSAoY29udGVudE9ubHkgPyAwIDogc2l6ZW9mKFZlY3RvclR5cGUpKSArIHZlY3Rv
ci5jYXBhY2l0eSgpICogc2l6ZW9mKHR5cGVuYW1lIFZlY3RvclR5cGU6OlZhbHVlVHlwZSk7Ci0g
ICAgY291bnRPYmplY3RTaXplKG9iamVjdFR5cGUsIHNpemUpOworICAgIGNvdW50T2JqZWN0U2l6
ZShvYmplY3RUeXBlLCBjYWxjdWxhdGVDb250YWluZXJTaXplKHZlY3RvciwgY29udGVudE9ubHkp
KTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCmluZGV4IGU5MDcyNTdjOWFlNmY5YzQ1MTdj
YzY0NDY1MmFhNDI2NDUyMWU0NDEuLmZmMDFmZmJmOTM3MDM5NTYxM2I3MWQ2OGRkYTE5Y2I0YTI3
ZDIzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1v
cnlBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9y
eUFnZW50LmNwcApAQCAtNzgsNiArNzgsOCBAQCBzdGF0aWMgY29uc3QgY2hhciBqc0V4dGVybmFs
UmVzb3VyY2VzW10gPSAiSlNFeHRlcm5hbFJlc291cmNlcyI7CiBzdGF0aWMgY29uc3QgY2hhciBq
c0V4dGVybmFsQXJyYXlzW10gPSAiSlNFeHRlcm5hbEFycmF5cyI7CiBzdGF0aWMgY29uc3QgY2hh
ciBqc0V4dGVybmFsU3RyaW5nc1tdID0gIkpTRXh0ZXJuYWxTdHJpbmdzIjsKIHN0YXRpYyBjb25z
dCBjaGFyIGluc3BlY3RvckRhdGFbXSA9ICJJbnNwZWN0b3JEYXRhIjsKK3N0YXRpYyBjb25zdCBj
aGFyIGluc3BlY3RvckRPTURhdGFbXSA9ICJJbnNwZWN0b3JET01EYXRhIjsKK3N0YXRpYyBjb25z
dCBjaGFyIGluc3BlY3RvckpTSGVhcERhdGFbXSA9ICJJbnNwZWN0b3JKU0hlYXBEYXRhIjsKIHN0
YXRpYyBjb25zdCBjaGFyIG1lbW9yeUNhY2hlW10gPSAiTWVtb3J5Q2FjaGUiOwogc3RhdGljIGNv
bnN0IGNoYXIgcHJvY2Vzc1ByaXZhdGVNZW1vcnlbXSA9ICJQcm9jZXNzUHJpdmF0ZU1lbW9yeSI7
CiAKQEAgLTEwOSw3ICsxMTEsNyBAQCBTdHJpbmcgbm9kZU5hbWUoTm9kZSogbm9kZSkKIAogc2l6
ZV90IHN0cmluZ1NpemUoU3RyaW5nSW1wbCogc3RyaW5nKQogewotICAgIC8vIFRPRE86IHN1cHBv
cnQgc3Vic3RyaW5ncworICAgIC8vIEZJWE1FOiBzdXBwb3J0IHN1YnN0cmluZ3MKICAgICBzaXpl
X3Qgc2l6ZSA9IHN0cmluZy0+bGVuZ3RoKCk7CiAgICAgaWYgKHN0cmluZy0+aXM4Qml0KCkpIHsK
ICAgICAgICAgaWYgKHN0cmluZy0+aGFzMTZCaXRTaGFkb3coKSkgewpAQCAtMzU3LDYgKzM1OSwz
OCBAQCBwcml2YXRlOgogICAgIHNpemVfdCBtX2V4dGVybmFsQXJyYXlTaXplOwogfTsKIAorY2xh
c3MgSW5zcGVjdG9yRGF0YUNvdW50ZXIgeworcHVibGljOgorICAgIHZvaWQgYWRkQ29tcG9uZW50
KGNvbnN0IFN0cmluZyYgbmFtZSwgc2l6ZV90IHNpemUpCisgICAgeworICAgICAgICBtX2NvbXBv
bmVudHMuYXBwZW5kKENvbXBvbmVudEluZm8obmFtZSwgc2l6ZSkpOworICAgIH0KKworICAgIFBh
c3NSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+IGR1bXBTdGF0aXN0aWNzKCkKKyAgICB7Cisg
ICAgICAgIHNpemVfdCB0b3RhbFNpemUgPSAwOworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yTWVt
b3J5QmxvY2s+IGJsb2NrID0gSW5zcGVjdG9yTWVtb3J5QmxvY2s6OmNyZWF0ZSgpLnNldE5hbWUo
TWVtb3J5QmxvY2tOYW1lOjppbnNwZWN0b3JEYXRhKTsKKyAgICAgICAgZm9yIChWZWN0b3I8Q29t
cG9uZW50SW5mbz46Oml0ZXJhdG9yIGl0ID0gbV9jb21wb25lbnRzLmJlZ2luKCk7IGl0ICE9IG1f
Y29tcG9uZW50cy5lbmQoKTsgKytpdCkgeworICAgICAgICAgICAgUmVmUHRyPEluc3BlY3Rvck1l
bW9yeUJsb2NrPiBibG9jayA9IEluc3BlY3Rvck1lbW9yeUJsb2NrOjpjcmVhdGUoKS5zZXROYW1l
KGl0LT5tX25hbWUpOworICAgICAgICAgICAgYmxvY2stPnNldFNpemUoaXQtPm1fc2l6ZSk7Cisg
ICAgICAgICAgICB0b3RhbFNpemUgKz0gaXQtPm1fc2l6ZTsKKyAgICAgICAgfQorICAgICAgICBi
bG9jay0+c2V0U2l6ZSh0b3RhbFNpemUpOworICAgICAgICByZXR1cm4gYmxvY2s7CisgICAgfQor
Citwcml2YXRlOgorICAgIGNsYXNzIENvbXBvbmVudEluZm8geworICAgIHB1YmxpYzoKKyAgICAg
ICAgQ29tcG9uZW50SW5mbyhjb25zdCBTdHJpbmcmIG5hbWUsIHNpemVfdCBzaXplKSA6IG1fbmFt
ZShuYW1lKSwgbV9zaXplKHNpemUpIHsgfQorCisgICAgICAgIGNvbnN0IFN0cmluZyBtX25hbWU7
CisgICAgICAgIHNpemVfdCBtX3NpemU7CisgICAgfTsKKworICAgIFZlY3RvcjxDb21wb25lbnRJ
bmZvPiBtX2NvbXBvbmVudHM7Cit9OworCiB9IC8vIG5hbWVzcGFjZQogCiBJbnNwZWN0b3JNZW1v
cnlBZ2VudDo6fkluc3BlY3Rvck1lbW9yeUFnZW50KCkKQEAgLTM5OSwxNCArNDMzLDYgQEAgc3Rh
dGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+IGpzSGVhcEluZm8oKQogICAgIHJl
dHVybiBqc0hlYXBBbGxvY2F0ZWQucmVsZWFzZSgpOwogfQogCi1zdGF0aWMgUGFzc1JlZlB0cjxJ
bnNwZWN0b3JNZW1vcnlCbG9jaz4gaW5zcGVjdG9yRGF0YSgpCi17Ci0gICAgc2l6ZV90IGRhdGFT
aXplID0gU2NyaXB0UHJvZmlsZXI6OnByb2ZpbGVyU25hcHNob3RzU2l6ZSgpOwotICAgIFJlZlB0
cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4gaW5zcGVjdG9yRGF0YSA9IEluc3BlY3Rvck1lbW9yeUJs
b2NrOjpjcmVhdGUoKS5zZXROYW1lKE1lbW9yeUJsb2NrTmFtZTo6aW5zcGVjdG9yRGF0YSk7Ci0g
ICAgaW5zcGVjdG9yRGF0YS0+c2V0U2l6ZShkYXRhU2l6ZSk7Ci0gICAgcmV0dXJuIGluc3BlY3Rv
ckRhdGEucmVsZWFzZSgpOwotfQotCiBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JNZW1vcnlC
bG9jaz4gcmVuZGVyVHJlZUluZm8oUGFnZSogcGFnZSkKIHsKICAgICBBcmVuYVNpemUgYXJlbmFT
aXplID0gcGFnZS0+cmVuZGVyVHJlZVNpemUoKTsKQEAgLTQ0MSw4ICs0NjcsMTMgQEAgcHVibGlj
OgogICAgICAgICAgICAgbV90b3RhbFNpemVzW2ldID0gMDsKICAgICB9CiAKLSAgICBQYXNzUmVm
UHRyPEluc3BlY3Rvck1lbW9yeUJsb2NrPiBkdW1wU3RhdGlzdGljcygpCisgICAgUGFzc1JlZlB0
cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4gZHVtcFN0YXRpc3RpY3MoSW5zcGVjdG9yRGF0YUNvdW50
ZXIqIGluc3BlY3RvckRhdGEpCiAgICAgeworICAgICAgICBzaXplX3QgaW5zcGVjdG9yU2l6ZQor
ICAgICAgICAgICAgPSBjYWxjdWxhdGVDb250YWluZXJTaXplKG1fdmlzaXRlZE9iamVjdHMpCisg
ICAgICAgICAgICArIGNhbGN1bGF0ZUNvbnRhaW5lclNpemUobV9kZWZlcnJlZEluc3RydW1lbnRl
ZFBvaW50ZXJzKTsKKyAgICAgICAgaW5zcGVjdG9yRGF0YS0+YWRkQ29tcG9uZW50KE1lbW9yeUJs
b2NrTmFtZTo6aW5zcGVjdG9yRE9NRGF0YSwgaW5zcGVjdG9yU2l6ZSk7CisKICAgICAgICAgc2l6
ZV90IHRvdGFsU2l6ZSA9IDA7CiAgICAgICAgIGZvciAoaW50IGkgPSBPdGhlcjsgaSA8IExhc3RU
eXBlRW50cnk7ICsraSkKICAgICAgICAgICAgIHRvdGFsU2l6ZSArPSBtX3RvdGFsU2l6ZXNbaV07
CkBAIC01MTksNyArNTUwLDEwIEBAIHB1YmxpYzoKICAgICAgICAgU2NyaXB0UHJvZmlsZXI6OmNv
bGxlY3RCaW5kaW5nTWVtb3J5SW5mbygmbV9kb21NZW1vcnlVc2FnZSk7CiAgICAgfQogCi0gICAg
UGFzc1JlZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4gZHVtcFN0YXRpc3RpY3MoKSB7IHJldHVy
biBtX2RvbU1lbW9yeVVzYWdlLmR1bXBTdGF0aXN0aWNzKCk7IH0KKyAgICBQYXNzUmVmUHRyPElu
c3BlY3Rvck1lbW9yeUJsb2NrPiBkdW1wU3RhdGlzdGljcyhJbnNwZWN0b3JEYXRhQ291bnRlciog
aW5zcGVjdG9yRGF0YSkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2RvbU1lbW9yeVVzYWdlLmR1
bXBTdGF0aXN0aWNzKGluc3BlY3RvckRhdGEpOworICAgIH0KIAogcHJpdmF0ZToKICAgICBQYWdl
KiBtX3BhZ2U7CkBAIC01MjgsNyArNTYyLDcgQEAgcHJpdmF0ZToKIAogfQogCi1zdGF0aWMgUGFz
c1JlZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4gZG9tVHJlZUluZm8oUGFnZSogcGFnZSwgVmlz
aXRlZE9iamVjdHMmIHZpc2l0ZWRPYmplY3RzKQorc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9y
TWVtb3J5QmxvY2s+IGRvbVRyZWVJbmZvKFBhZ2UqIHBhZ2UsIFZpc2l0ZWRPYmplY3RzJiB2aXNp
dGVkT2JqZWN0cywgSW5zcGVjdG9yRGF0YUNvdW50ZXIqIGluc3BlY3RvckRhdGEpCiB7CiAgICAg
RE9NVHJlZXNJdGVyYXRvciBkb21UcmVlc0l0ZXJhdG9yKHBhZ2UsIHZpc2l0ZWRPYmplY3RzKTsK
ICAgICBTY3JpcHRQcm9maWxlcjo6dmlzaXROb2RlV3JhcHBlcnMoJmRvbVRyZWVzSXRlcmF0b3Ip
OwpAQCAtNTQxLDcgKzU3NSw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck1lbW9yeUJs
b2NrPiBkb21UcmVlSW5mbyhQYWdlKiBwYWdlLCBWaXNpdGVkT2JqZWN0cyYKIAogICAgIGRvbVRy
ZWVzSXRlcmF0b3IudmlzaXRCaW5kaW5ncygpOwogCi0gICAgcmV0dXJuIGRvbVRyZWVzSXRlcmF0
b3IuZHVtcFN0YXRpc3RpY3MoKTsKKyAgICByZXR1cm4gZG9tVHJlZXNJdGVyYXRvci5kdW1wU3Rh
dGlzdGljcyhpbnNwZWN0b3JEYXRhKTsKIH0KIAogc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9y
TWVtb3J5QmxvY2s+IG1lbW9yeUNhY2hlSW5mbygpCkBAIC01ODgsMjEgKzYyMiwyNSBAQCBzdGF0
aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JNZW1vcnlCbG9jaz4ganNFeHRlcm5hbFJlc291cmNlc0lu
Zm8oVmlzaXRlZE9iamVjdHMmCiAKIHZvaWQgSW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmdldFByb2Nl
c3NNZW1vcnlEaXN0cmlidXRpb24oRXJyb3JTdHJpbmcqLCBSZWZQdHI8SW5zcGVjdG9yTWVtb3J5
QmxvY2s+JiBwcm9jZXNzTWVtb3J5KQogewotICAgIHNpemVfdCBwcml2YXRlQnl0ZXMgPSAwOwot
ICAgIHNpemVfdCBzaGFyZWRCeXRlcyA9IDA7Ci0gICAgTWVtb3J5VXNhZ2VTdXBwb3J0Ojpwcm9j
ZXNzTWVtb3J5U2l6ZXNJbkJ5dGVzKCZwcml2YXRlQnl0ZXMsICZzaGFyZWRCeXRlcyk7CiAgICAg
cHJvY2Vzc01lbW9yeSA9IEluc3BlY3Rvck1lbW9yeUJsb2NrOjpjcmVhdGUoKS5zZXROYW1lKE1l
bW9yeUJsb2NrTmFtZTo6cHJvY2Vzc1ByaXZhdGVNZW1vcnkpOwotICAgIHByb2Nlc3NNZW1vcnkt
PnNldFNpemUocHJpdmF0ZUJ5dGVzKTsKKworICAgIEluc3BlY3RvckRhdGFDb3VudGVyIGluc3Bl
Y3RvckRhdGE7CisgICAgaW5zcGVjdG9yRGF0YS5hZGRDb21wb25lbnQoTWVtb3J5QmxvY2tOYW1l
OjppbnNwZWN0b3JKU0hlYXBEYXRhLCBTY3JpcHRQcm9maWxlcjo6cHJvZmlsZXJTbmFwc2hvdHNT
aXplKCkpOwogCiAgICAgVmlzaXRlZE9iamVjdHMgdmlzaXRlZE9iamVjdHM7CiAgICAgUmVmUHRy
PFR5cGVCdWlsZGVyOjpBcnJheTxJbnNwZWN0b3JNZW1vcnlCbG9jaz4gPiBjaGlsZHJlbiA9IFR5
cGVCdWlsZGVyOjpBcnJheTxJbnNwZWN0b3JNZW1vcnlCbG9jaz46OmNyZWF0ZSgpOwogICAgIGNo
aWxkcmVuLT5hZGRJdGVtKGpzSGVhcEluZm8oKSk7Ci0gICAgY2hpbGRyZW4tPmFkZEl0ZW0oaW5z
cGVjdG9yRGF0YSgpKTsKICAgICBjaGlsZHJlbi0+YWRkSXRlbShtZW1vcnlDYWNoZUluZm8oKSk7
Ci0gICAgY2hpbGRyZW4tPmFkZEl0ZW0ocmVuZGVyVHJlZUluZm8obV9wYWdlKSk7IC8vIFRPRE86
IGNvbGxlY3QgZm9yIGFsbCBwYWdlcz8KLSAgICBjaGlsZHJlbi0+YWRkSXRlbShkb21UcmVlSW5m
byhtX3BhZ2UsIHZpc2l0ZWRPYmplY3RzKSk7IC8vIFRPRE86IGNvbGxlY3QgZm9yIGFsbCBwYWdl
cz8KKyAgICBjaGlsZHJlbi0+YWRkSXRlbShyZW5kZXJUcmVlSW5mbyhtX3BhZ2UpKTsgLy8gRklY
TUU6IGNvbGxlY3QgZm9yIGFsbCBwYWdlcz8KKyAgICBjaGlsZHJlbi0+YWRkSXRlbShkb21UcmVl
SW5mbyhtX3BhZ2UsIHZpc2l0ZWRPYmplY3RzLCAmaW5zcGVjdG9yRGF0YSkpOyAvLyBGSVhNRTog
Y29sbGVjdCBmb3IgYWxsIHBhZ2VzPwogICAgIGNoaWxkcmVuLT5hZGRJdGVtKGpzRXh0ZXJuYWxS
ZXNvdXJjZXNJbmZvKHZpc2l0ZWRPYmplY3RzKSk7CisgICAgY2hpbGRyZW4tPmFkZEl0ZW0oaW5z
cGVjdG9yRGF0YS5kdW1wU3RhdGlzdGljcygpKTsKICAgICBwcm9jZXNzTWVtb3J5LT5zZXRDaGls
ZHJlbihjaGlsZHJlbik7CisKKyAgICBzaXplX3QgcHJpdmF0ZUJ5dGVzID0gMDsKKyAgICBzaXpl
X3Qgc2hhcmVkQnl0ZXMgPSAwOworICAgIE1lbW9yeVVzYWdlU3VwcG9ydDo6cHJvY2Vzc01lbW9y
eVNpemVzSW5CeXRlcygmcHJpdmF0ZUJ5dGVzLCAmc2hhcmVkQnl0ZXMpOworICAgIHByb2Nlc3NN
ZW1vcnktPnNldFNpemUocHJpdmF0ZUJ5dGVzKTsKIH0KIAogSW5zcGVjdG9yTWVtb3J5QWdlbnQ6
Okluc3BlY3Rvck1lbW9yeUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgUGFnZSogcGFnZSwgSW5zcGVjdG9yRE9NQWdl
bnQqKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>