<?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>57903</bug_id>
          
          <creation_ts>2011-04-05 16:22:58 -0700</creation_ts>
          <short_desc>Introduced the concept of opaque roots, in preparation for marking the DOM with them</short_desc>
          <delta_ts>2011-04-05 20:44:54 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>buildbot</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>379958</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-05 16:22:58 -0700</bug_when>
    <thetext>Introduced the concept of opaque roots, in preparation for marking the DOM with them</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379960</commentid>
    <comment_count>1</comment_count>
      <attachid>88333</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-05 16:27:57 -0700</bug_when>
    <thetext>Created attachment 88333
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379967</commentid>
    <comment_count>2</comment_count>
      <attachid>88333</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-04-05 16:58:54 -0700</bug_when>
    <thetext>Comment on attachment 88333
Patch

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

&gt; Source/JavaScriptCore/collector/handles/HandleHeap.cpp:110
&gt; +            ASSERT(isValidWeakHandle(node-&gt;slot()));
&gt; +            JSCell* cell = node-&gt;slot()-&gt;asCell();
&gt; +            if (Heap::isMarked(cell))
&gt; +                continue;
&gt; +
&gt; +            WeakHandleOwner* weakOwner = node-&gt;weakOwner();
&gt; +            if (!weakOwner)
&gt; +                continue;
&gt; +
&gt; +            if (!weakOwner-&gt;isReachableFromOpaqueRoots(Handle&lt;Unknown&gt;::wrapSlot(node-&gt;slot()), node-&gt;weakOwnerContext(), markStack))
&gt; +                continue;
&gt; +
&gt; +            heapRootMarker.mark(node-&gt;slot());

I wish we could do something to separate out handles that will remain alive as we enumerate them, otherwise we end up visiting nodes repeatedly (even if just for an isMarked check)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380019</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-05 18:25:55 -0700</bug_when>
    <thetext>&gt; I wish we could do something to separate out handles that will remain alive as we enumerate them, otherwise we end up visiting nodes repeatedly (even if just for an isMarked check)

This loop almost always executes exactly once, so the tradeoff probably doesn&apos;t favor this approach, but:

I think we could optimize by doing an initial pass to separate off the unmarked handles into a temporary linked list. Thereafter, we could iterate only that linked list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380029</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-05 18:58:23 -0700</bug_when>
    <thetext>Attachment 88333 did not build on win:
Build output: http://queues.webkit.org/results/8346011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380044</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-05 19:14:13 -0700</bug_when>
    <thetext>Attachment 88333 did not build on win:
Build output: http://queues.webkit.org/results/8343016</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380079</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-05 20:44:54 -0700</bug_when>
    <thetext>Committed r83011: &lt;http://trac.webkit.org/changeset/83011&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88333</attachid>
            <date>2011-04-05 16:27:57 -0700</date>
            <delta_ts>2011-04-05 16:58:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57903-20110405162756.patch</filename>
            <type>text/plain</type>
            <size>11427</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODI5OTgpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTIgQEAK
KzIwMTEtMDQtMDUgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2VkIHRoZSBj
b25jZXB0IG9mIG9wYXF1ZSByb290cywgaW4gcHJlcGFyYXRpb24gZm9yIG1hcmtpbmcgdGhlIERP
TSB3aXRoIHRoZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU3OTAzCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6IFdobyBsaWtlcyBleHBv
cnQgZmlsZXM/IEkgZG8hCisKKyAgICAgICAgKiBjb2xsZWN0b3IvaGFuZGxlcy9IYW5kbGVIZWFw
LmNwcDoKKyAgICAgICAgKEpTQzo6aXNWYWxpZFdlYWtIYW5kbGUpOiBGYWN0b3JlZCBvdXQgYSBo
ZWxwZXIgZnVuY3Rpb24gZm9yIEFTU0VSVHMuCisKKyAgICAgICAgKEpTQzo6V2Vha0hhbmRsZU93
bmVyOjp+V2Vha0hhbmRsZU93bmVyKTogTW92ZWQgZnJvbSBoZWFkZXIgdG8gYXZvaWQKKyAgICAg
ICAgd2VhayBsaW5rYWdlIHByb2JsZW1zLgorCisgICAgICAgIChKU0M6OldlYWtIYW5kbGVPd25l
cjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOiBOZXcgY2FsbGJhY2suCisgICAgICAgIEN1
cnJlbnRseSB1bnVzZWQuCisKKyAgICAgICAgKEpTQzo6V2Vha0hhbmRsZU93bmVyOjpmaW5hbGl6
ZSk6IFN3aXRjaGVkIGZyb20gcHVyZSB2aXJ0dWFsIHRvIGEKKyAgICAgICAgZGVmYXVsdCBlbXB0
eSBpbXBsZW1lbnRhdGlvbiwgc2luY2Ugbm90IGFsbCBjbGllbnRzIG5lY2Vzc2FyaWx5IHdhbnQK
KyAgICAgICAgb3IgbmVlZCBub24tdHJpdmlhbCBmaW5hbGl6ZXJzLgorCisgICAgICAgIChKU0M6
OkhhbmRsZUhlYXA6Om1hcmtXZWFrSGFuZGxlcyk6IFNwbGl0IHVwZGF0ZVdlYWtIYW5kbGVzIGlu
dG8gdHdvCisgICAgICAgIHBhc3Nlcy4gVGhlIGZpcnN0IHBhc3MgbWFya3MgYWxsIHJlYWNoYWJs
ZSB3ZWFrIGhhbmRsZXMuIFRoZSBzZWNvbmQgcGFzcworICAgICAgICBmaW5hbGl6ZXMgYWxsIHVu
cmVhY2hhYmxlIHdlYWsgaGFuZGxlcy4gVGhpcyBtdXN0IGJlIHR3byBwYXNzZXMgYmVjYXVzZQor
ICAgICAgICB3ZSBkb24ndCBrbm93IHRoZSBzZXQgb2YgZmluYWxpemFibGUgd2VhayBoYW5kbGVz
IHVudGlsIHdlJ3JlIGRvbmUKKyAgICAgICAgbWFya2luZyBhbGwgd2VhayBoYW5kbGVzLgorCisg
ICAgICAgIChKU0M6OkhhbmRsZUhlYXA6OmZpbmFsaXplV2Vha0hhbmRsZXMpOiBVc2UgbmV3IGhl
bHBlciBmdW5jdGlvbi4KKworICAgICAgICAqIGNvbGxlY3Rvci9oYW5kbGVzL0hhbmRsZUhlYXAu
aDogRGl0dG8uCisKKyAgICAgICAgKiBydW50aW1lL0hlYXAuY3BwOiAKKyAgICAgICAgKEpTQzo6
SGVhcDo6ZGVzdHJveSk6CisgICAgICAgIChKU0M6OkhlYXA6Om1hcmtSb290cyk6CisgICAgICAg
IChKU0M6OkhlYXA6OnJlc2V0KTogU3BsaXQgb3V0IGhhbmRsZSBtYXJraW5nIGZyb20gaGFuZGxl
IGZpbmFsaXphdGlvbi4KKworICAgICAgICAqIHJ1bnRpbWUvTWFya1N0YWNrLmNwcDoKKyAgICAg
ICAgKEpTQzo6TWFya1N0YWNrOjpyZXNldCk6CisgICAgICAgICogcnVudGltZS9NYXJrU3RhY2su
aDoKKyAgICAgICAgKEpTQzo6TWFya1N0YWNrOjphZGRPcGFxdWVSb290KToKKyAgICAgICAgKEpT
Qzo6TWFya1N0YWNrOjpjb250YWluc09wYXF1ZVJvb3QpOgorICAgICAgICAoSlNDOjpNYXJrU3Rh
Y2s6Om9wYXF1ZVJvb3RDb3VudCk6CisgICAgICAgIChKU0M6OkhlYXBSb290TWFya2VyOjptYXJr
U3RhY2spOiBOZXcgaGVscGVyIGZ1bmN0aW9ucyBmb3IgbWFuYWdpbmcgdGhlCisgICAgICAgIHNl
dCBvZiBvcGFxdWUgcm9vdHMuCisKKyAgICAgICAgKiBydW50aW1lL1dlYWtHQ01hcC5oOgorICAg
ICAgICAoSlNDOjpXZWFrR0NNYXA6OmZpbmFsaXplKTogUmVuYW1lZCB0byBtYXRjaCBwYXJlbnQg
Y2xhc3MgZGVjbGFyYXRpb24uCisKIDIwMTEtMDQtMDUgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6
c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCShyZXZpc2lvbiA4Mjk4MikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE2OSw2ICsxNjksOCBAQCBfX1pOM0pTQzE0VGltZW91dENoZWNrZXIxMGRpZFRpbWVP
dXRFUE5TCiBfX1pOM0pTQzE0VGltZW91dENoZWNrZXI1cmVzZXRFdgogX19aTjNKU0MxNHRocm93
VHlwZUVycm9yRVBOU185RXhlY1N0YXRlRQogX19aTjNKU0MxNUpTV3JhcHBlck9iamVjdDEybWFy
a0NoaWxkcmVuRVJOU185TWFya1N0YWNrRQorX19aTjNKU0MxNVdlYWtIYW5kbGVPd25lcjI2aXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHNFTlNfNkhhbmRsZUlOU183VW5rbm93bkVFRVB2Uk5TXzlN
YXJrU3RhY2tFCitfX1pOM0pTQzE1V2Vha0hhbmRsZU93bmVyRDJFdgogX19aTjNKU0MxNWNyZWF0
ZVR5cGVFcnJvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzdVU3RyaW5nRQogX19aTjNKU0MxNkludGVy
bmFsRnVuY3Rpb24xMnZ0YWJsZUFuY2hvckV2CiBfX1pOM0pTQzE2SW50ZXJuYWxGdW5jdGlvbjRu
YW1lRVBOU185RXhlY1N0YXRlRQpAQCAtMzg0LDkgKzM4Niw5IEBAIF9fWk4zV1RGMTJjcmVhdGVU
aHJlYWRFUEZQdlMwX0VTMF9QS2MKIF9fWk4zV1RGMTJkZXRhY2hUaHJlYWRFagogX19aTjNXVEYx
MmlzTWFpblRocmVhZEV2CiBfX1pOM1dURjEycmFuZG9tTnVtYmVyRXYKLV9fWk4zV1RGMTNTdHJp
bmdCdWlsZGVyMTVyZXNlcnZlQ2FwYWNpdHlFagogX19aTjNXVEYxM1N0cmluZ0J1aWxkZXIxMXJl
aWZ5U3RyaW5nRXYKIF9fWk4zV1RGMTNTdHJpbmdCdWlsZGVyMTFzaHJpbmtUb0ZpdEV2CitfX1pO
M1dURjEzU3RyaW5nQnVpbGRlcjE1cmVzZXJ2ZUNhcGFjaXR5RWoKIF9fWk4zV1RGMTNTdHJpbmdC
dWlsZGVyNmFwcGVuZEVQS2NqCiBfX1pOM1dURjEzU3RyaW5nQnVpbGRlcjZhcHBlbmRFUEt0agog
X19aTjNXVEYxM1N0cmluZ0J1aWxkZXI2cmVzaXplRWoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9jb2xsZWN0b3IvaGFuZGxlcy9IYW5kbGVIZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvY29sbGVjdG9yL2hhbmRsZXMvSGFuZGxlSGVhcC5jcHAJKHJldmlz
aW9uIDgyOTgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2NvbGxlY3Rvci9oYW5kbGVzL0hh
bmRsZUhlYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxMyArMjQsNDMgQEAKICAqLwogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCi0KICNpbmNsdWRlICJIYW5kbGVIZWFwLmgiCiAKICNpbmNsdWRl
ICJKU09iamVjdC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAorc3RhdGljIGlubGluZSBib29sIGlz
VmFsaWRXZWFrSGFuZGxlKEhhbmRsZVNsb3QgaGFuZGxlKQoreworICAgIEpTVmFsdWUgdmFsdWUg
PSAqaGFuZGxlOworICAgIGlmICghdmFsdWUgfHwgIXZhbHVlLmlzQ2VsbCgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBKU0NlbGwqIGNlbGwgPSB2YWx1ZS5hc0NlbGwoKTsKKyAgICBp
ZiAoIWNlbGwgfHwgIWNlbGwtPnN0cnVjdHVyZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyNpZiBFTkFCTEUoSlNDX1pPTUJJRVMpCisgICAgaWYgKGNlbGwtPmlzWm9tYmllKCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK1dlYWtI
YW5kbGVPd25lcjo6fldlYWtIYW5kbGVPd25lcigpCit7Cit9CisKK2Jvb2wgV2Vha0hhbmRsZU93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhIYW5kbGU8VW5rbm93bj4sIHZvaWQqLCBN
YXJrU3RhY2smKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBXZWFrSGFuZGxlT3du
ZXI6OmZpbmFsaXplKEhhbmRsZTxVbmtub3duPiwgdm9pZCopCit7Cit9CisKIEhhbmRsZUhlYXA6
OkhhbmRsZUhlYXAoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQogICAgIDogbV9nbG9iYWxEYXRh
KGdsb2JhbERhdGEpCiAgICAgLCBtX25leHRUb0ZpbmFsaXplKDApCkBAIC01NSwyMSArODUsNDEg
QEAgdm9pZCBIYW5kbGVIZWFwOjptYXJrU3Ryb25nSGFuZGxlcyhIZWFwUgogICAgICAgICBoZWFw
Um9vdE1hcmtlci5tYXJrKG5vZGUtPnNsb3QoKSk7CiB9CiAKLXZvaWQgSGFuZGxlSGVhcDo6dXBk
YXRlV2Vha0hhbmRsZXMoKQordm9pZCBIYW5kbGVIZWFwOjptYXJrV2Vha0hhbmRsZXMoSGVhcFJv
b3RNYXJrZXImIGhlYXBSb290TWFya2VyKQoreworICAgIE1hcmtTdGFjayYgbWFya1N0YWNrID0g
aGVhcFJvb3RNYXJrZXIubWFya1N0YWNrKCk7CisKKyAgICBpbnQgb2xkQ291bnQ7CisgICAgZG8g
eworICAgICAgICBvbGRDb3VudCA9IG1hcmtTdGFjay5vcGFxdWVSb290Q291bnQoKTsKKworICAg
ICAgICBOb2RlKiBlbmQgPSBtX3dlYWtMaXN0LmVuZCgpOworICAgICAgICBmb3IgKE5vZGUqIG5v
ZGUgPSBtX3dlYWtMaXN0LmJlZ2luKCk7IG5vZGUgIT0gZW5kOyBub2RlID0gbm9kZS0+bmV4dCgp
KSB7CisgICAgICAgICAgICBBU1NFUlQoaXNWYWxpZFdlYWtIYW5kbGUobm9kZS0+c2xvdCgpKSk7
CisgICAgICAgICAgICBKU0NlbGwqIGNlbGwgPSBub2RlLT5zbG90KCktPmFzQ2VsbCgpOworICAg
ICAgICAgICAgaWYgKEhlYXA6OmlzTWFya2VkKGNlbGwpKQorICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgICAgICBXZWFrSGFuZGxlT3duZXIqIHdlYWtPd25lciA9IG5vZGUtPndl
YWtPd25lcigpOworICAgICAgICAgICAgaWYgKCF3ZWFrT3duZXIpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgICAgIGlmICghd2Vha093bmVyLT5pc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhIYW5kbGU8VW5rbm93bj46OndyYXBTbG90KG5vZGUtPnNsb3QoKSksIG5vZGUt
PndlYWtPd25lckNvbnRleHQoKSwgbWFya1N0YWNrKSkKKyAgICAgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICAgICAgaGVhcFJvb3RNYXJrZXIubWFyayhub2RlLT5zbG90KCkpOworICAg
ICAgICB9CisgICAgfSB3aGlsZSAob2xkQ291bnQgIT0gbWFya1N0YWNrLm9wYXF1ZVJvb3RDb3Vu
dCgpKTsgLy8gSWYgdGhlIHNldCBvZiBvcGFxdWUgcm9vdHMgaGFzIGdyb3duLCBtb3JlIGhhbmRs
ZXMgbWF5IGhhdmUgYmVjb21lIHJlYWNoYWJsZS4KK30KKwordm9pZCBIYW5kbGVIZWFwOjpmaW5h
bGl6ZVdlYWtIYW5kbGVzKCkKIHsKICAgICBOb2RlKiBlbmQgPSBtX3dlYWtMaXN0LmVuZCgpOwog
ICAgIGZvciAoTm9kZSogbm9kZSA9IG1fd2Vha0xpc3QuYmVnaW4oKTsgbm9kZSAhPSBlbmQ7IG5v
ZGUgPSBtX25leHRUb0ZpbmFsaXplKSB7CiAgICAgICAgIG1fbmV4dFRvRmluYWxpemUgPSBub2Rl
LT5uZXh0KCk7CiAKLSAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9ICpub2RlLT5zbG90KCk7Ci0gICAg
ICAgIEFTU0VSVCh2YWx1ZSk7Ci0KLSAgICAgICAgSlNDZWxsKiBjZWxsID0gdmFsdWUuYXNDZWxs
KCk7Ci0gICAgICAgIEFTU0VSVChjZWxsICYmIGNlbGwtPnN0cnVjdHVyZSgpKTsKLSNpZiBFTkFC
TEUoSlNDX1pPTUJJRVMpCi0gICAgICAgIEFTU0VSVCghY2VsbC0+aXNab21iaWUoKSk7Ci0jZW5k
aWYKLQorICAgICAgICBBU1NFUlQoaXNWYWxpZFdlYWtIYW5kbGUobm9kZS0+c2xvdCgpKSk7Cisg
ICAgICAgIEpTQ2VsbCogY2VsbCA9IG5vZGUtPnNsb3QoKS0+YXNDZWxsKCk7CiAgICAgICAgIGlm
IChIZWFwOjppc01hcmtlZChjZWxsKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvY29sbGVjdG9yL2hhbmRsZXMvSGFuZGxlSGVhcC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9jb2xsZWN0b3IvaGFuZGxlcy9IYW5kbGVI
ZWFwLmgJKHJldmlzaW9uIDgyOTgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2NvbGxlY3Rv
ci9oYW5kbGVzL0hhbmRsZUhlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTQgKzM0LDE2IEBA
CiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSGFuZGxlSGVhcDsKK2NsYXNzIEhlYXBSb290TWFy
a2VyOwogY2xhc3MgSlNHbG9iYWxEYXRhOwogY2xhc3MgSlNWYWx1ZTsKLWNsYXNzIEhlYXBSb290
TWFya2VyOworY2xhc3MgTWFya1N0YWNrOwogCiBjbGFzcyBXZWFrSGFuZGxlT3duZXIgewogcHVi
bGljOgotICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShIYW5kbGU8VW5rbm93bj4sIHZvaWQqKSA9
IDA7Ci0gICAgdmlydHVhbCB+V2Vha0hhbmRsZU93bmVyKCkge30KKyAgICB2aXJ0dWFsIH5XZWFr
SGFuZGxlT3duZXIoKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMoSGFuZGxlPFVua25vd24+LCB2b2lkKiBjb250ZXh0LCBNYXJrU3RhY2smKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZmluYWxpemUoSGFuZGxlPFVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAK
IGNsYXNzIEhhbmRsZUhlYXAgewpAQCAtNTYsNyArNTgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBt
YWtlV2VhayhIYW5kbGVTbG90LCBXZWFrSGFuZGxlT3duZXIqID0gMCwgdm9pZCogY29udGV4dCA9
IDApOwogCiAgICAgdm9pZCBtYXJrU3Ryb25nSGFuZGxlcyhIZWFwUm9vdE1hcmtlciYpOwotICAg
IHZvaWQgdXBkYXRlV2Vha0hhbmRsZXMoKTsKKyAgICB2b2lkIG1hcmtXZWFrSGFuZGxlcyhIZWFw
Um9vdE1hcmtlciYpOworICAgIHZvaWQgZmluYWxpemVXZWFrSGFuZGxlcygpOwogCiAgICAgdm9p
ZCB3cml0ZUJhcnJpZXIoSGFuZGxlU2xvdCwgY29uc3QgSlNWYWx1ZSYpOwogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmNwcAkocmV2aXNpb24gODI5ODIpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIs
NyArODIsNyBAQCB2b2lkIEhlYXA6OmRlc3Ryb3koKQogICAgIGRlbGV0ZSBtX21hcmtMaXN0U2V0
OwogICAgIG1fbWFya0xpc3RTZXQgPSAwOwogICAgIG1fbWFya2VkU3BhY2UuY2xlYXJNYXJrcygp
OwotICAgIG1faGFuZGxlSGVhcC51cGRhdGVXZWFrSGFuZGxlcygpOworICAgIG1faGFuZGxlSGVh
cC5maW5hbGl6ZVdlYWtIYW5kbGVzKCk7CiAgICAgbV9tYXJrZWRTcGFjZS5kZXN0cm95KCk7CiAK
ICAgICBtX2dsb2JhbERhdGEgPSAwOwpAQCAtMjQyLDE0ICsyNDIsMTUgQEAgdm9pZCBIZWFwOjpt
YXJrUm9vdHMoKQogICAgIG1faGFuZGxlSGVhcC5tYXJrU3Ryb25nSGFuZGxlcyhoZWFwUm9vdE1h
cmtlcik7CiAgICAgbV9oYW5kbGVTdGFjay5tYXJrKGhlYXBSb290TWFya2VyKTsKIAorICAgIG1f
aGFuZGxlSGVhcC5tYXJrV2Vha0hhbmRsZXMoaGVhcFJvb3RNYXJrZXIpOworICAgIG1hcmtTdGFj
ay5kcmFpbigpOworCiAgICAgLy8gTWFyayB0aGUgc21hbGwgc3RyaW5ncyBjYWNoZSBsYXN0LCBz
aW5jZSBpdCB3aWxsIGNsZWFyIGl0c2VsZiBpZiBub3RoaW5nCiAgICAgLy8gZWxzZSBoYXMgbWFy
a2VkIGl0LgogICAgIG1fZ2xvYmFsRGF0YS0+c21hbGxTdHJpbmdzLm1hcmtDaGlsZHJlbihoZWFw
Um9vdE1hcmtlcik7Ci0KICAgICBtYXJrU3RhY2suZHJhaW4oKTsKLSAgICBtYXJrU3RhY2suY29t
cGFjdCgpOwogICAgIAotICAgIG1faGFuZGxlSGVhcC51cGRhdGVXZWFrSGFuZGxlcygpOworICAg
IG1hcmtTdGFjay5yZXNldCgpOwogCiAgICAgbV9vcGVyYXRpb25JblByb2dyZXNzID0gTm9PcGVy
YXRpb247CiB9CkBAIC0zNjksNiArMzcwLDcgQEAgdm9pZCBIZWFwOjpyZXNldChTd2VlcFRvZ2ds
ZSBzd2VlcFRvZ2dsZQogICAgIEpBVkFTQ1JJUFRDT1JFX0dDX0JFR0lOKCk7CiAKICAgICBtYXJr
Um9vdHMoKTsKKyAgICBtX2hhbmRsZUhlYXAuZmluYWxpemVXZWFrSGFuZGxlcygpOwogCiAgICAg
SkFWQVNDUklQVENPUkVfR0NfTUFSS0VEKCk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hcmtTdGFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTWFya1N0YWNrLmNwcAkocmV2aXNpb24gODI5ODIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9NYXJrU3RhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwx
MSArMzgsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIHNpemVfdCBNYXJrU3RhY2s6OnNfcGFnZVNp
emUgPSAwOwogCi12b2lkIE1hcmtTdGFjazo6Y29tcGFjdCgpCit2b2lkIE1hcmtTdGFjazo6cmVz
ZXQoKQogewogICAgIEFTU0VSVChzX3BhZ2VTaXplKTsKICAgICBtX3ZhbHVlcy5zaHJpbmtBbGxv
Y2F0aW9uKHNfcGFnZVNpemUpOwogICAgIG1fbWFya1NldHMuc2hyaW5rQWxsb2NhdGlvbihzX3Bh
Z2VTaXplKTsKKyAgICBtX29wYXF1ZVJvb3RzLmNsZWFyKCk7CiB9CiAKIHZvaWQgTWFya1N0YWNr
OjphcHBlbmQoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya1N0YWNrLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya1N0YWNrLmgJKHJldmlzaW9uIDgyOTgyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya1N0YWNrLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiUmVn
aXN0ZXIuaCIKICNpbmNsdWRlICJXcml0ZUJhcnJpZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KICNpbmNsdWRlIDx3dGYvT1NBbGxvY2F0b3IuaD4KQEAgLTgxLDggKzgyLDEyIEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICAKICAgICAgICAgdm9pZCBhcHBlbmQoQ29uc2VydmF0aXZlUm9v
dHMmKTsKIAorICAgICAgICBib29sIGFkZE9wYXF1ZVJvb3Qodm9pZCogcm9vdCkgeyByZXR1cm4g
bV9vcGFxdWVSb290cy5hZGQocm9vdCkuc2Vjb25kOyB9CisgICAgICAgIGJvb2wgY29udGFpbnNP
cGFxdWVSb290KHZvaWQqIHJvb3QpIHsgcmV0dXJuIG1fb3BhcXVlUm9vdHMuY29udGFpbnMocm9v
dCk7IH0KKyAgICAgICAgaW50IG9wYXF1ZVJvb3RDb3VudCgpIHsgcmV0dXJuIG1fb3BhcXVlUm9v
dHMuc2l6ZSgpOyB9CisKICAgICAgICAgdm9pZCBkcmFpbigpOwotICAgICAgICB2b2lkIGNvbXBh
Y3QoKTsKKyAgICAgICAgdm9pZCByZXNldCgpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJp
ZW5kIGNsYXNzIEhlYXBSb290TWFya2VyOyAvLyBBbGxvd2VkIHRvIG1hcmsgYSBKU1ZhbHVlKiBv
ciBKU0NlbGwqKiBkaXJlY3RseS4KQEAgLTE5OCw2ICsyMDMsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgTWFya1N0YWNrQXJyYXk8TWFya1NldD4gbV9tYXJrU2V0czsKICAgICAgICAgTWFy
a1N0YWNrQXJyYXk8SlNDZWxsKj4gbV92YWx1ZXM7CiAgICAgICAgIHN0YXRpYyBzaXplX3Qgc19w
YWdlU2l6ZTsKKyAgICAgICAgSGFzaFNldDx2b2lkKj4gbV9vcGFxdWVSb290czsgLy8gSGFuZGxl
LW93bmluZyBkYXRhIHN0cnVjdHVyZXMgbm90IHZpc2libGUgdG8gdGhlIGdhcmJhZ2UgY29sbGVj
dG9yLgogCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgIHB1YmxpYzoKQEAgLTI3NCw2ICsyODAs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBtYXJrKEpTVmFsdWUqLCBzaXplX3Qp
OwogICAgICAgICB2b2lkIG1hcmsoSlNTdHJpbmcqKik7CiAgICAgICAgIHZvaWQgbWFyayhKU0Nl
bGwqKik7CisgICAgICAgIAorICAgICAgICBNYXJrU3RhY2smIG1hcmtTdGFjaygpOwogCiAgICAg
cHJpdmF0ZToKICAgICAgICAgTWFya1N0YWNrJiBtX21hcmtTdGFjazsKQEAgLTMwNCw2ICszMTIs
MTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIG1fbWFya1N0YWNrLmFwcGVuZChzbG90KTsK
ICAgICB9CiAKKyAgICBpbmxpbmUgTWFya1N0YWNrJiBIZWFwUm9vdE1hcmtlcjo6bWFya1N0YWNr
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX21hcmtTdGFjazsKKyAgICB9CisKIH0gLy8gbmFt
ZXNwYWNlIEpTQwogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1dlYWtHQ01hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1dlYWtHQ01hcC5oCShyZXZpc2lvbiA4Mjk4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1dlYWtHQ01hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjIsOSArMTIyLDkgQEAgcHVi
bGljOgogICAgIH0KICAgICAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEhh
bmRsZTxVbmtub3duPiwgdm9pZCoga2V5KQorICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShIYW5k
bGU8VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpCiAgICAgewotICAgICAgICBIYW5kbGVTbG90IHNs
b3QgPSBtX21hcC50YWtlKHN0YXRpY19jYXN0PEtleVR5cGU+KGtleSkpOworICAgICAgICBIYW5k
bGVTbG90IHNsb3QgPSBtX21hcC50YWtlKHN0YXRpY19jYXN0PEtleVR5cGU+KGNvbnRleHQpKTsK
ICAgICAgICAgQVNTRVJUKHNsb3QpOwogICAgICAgICBIYW5kbGVIZWFwOjpoZWFwRm9yKHNsb3Qp
LT5kZWFsbG9jYXRlKHNsb3QpOwogICAgIH0K
</data>
<flag name="review"
          id="80824"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>