<?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>21769</bug_id>
          
          <creation_ts>2008-10-21 02:39:08 -0700</creation_ts>
          <short_desc>MessagePort should be GC protected if there are messages to be delivered</short_desc>
          <delta_ts>2008-10-21 23:08:42 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>96070</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-10-21 02:39:08 -0700</bug_when>
    <thetext>Even if a message port and its entangled port both become inaccessible from JS, outstanding messages should be delivered, as there may be listeners registered.

This is kinda obvious, as it is too easy to write JS code that fails randomly if GC kicks in just in time for messages to be lost. But HTML5 was just changed to say this.

Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96072</commentid>
    <comment_count>1</comment_count>
      <attachid>24538</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-10-21 02:51:51 -0700</bug_when>
    <thetext>Created attachment 24538
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96086</commentid>
    <comment_count>2</comment_count>
      <attachid>24538</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-10-21 10:39:05 -0700</bug_when>
    <thetext>Comment on attachment 24538
proposed fix

+        // Warning: using the below methods is risky, as the queue state may change by the time they return. Extra caution is advised.

I like what this comment is warning about, but I&apos;m not fond of &quot;risky&quot; and &quot;caution&quot; when describing how to use functions. And &quot;queue state&quot; is also pretty vague. It would be better if this was concrete about what the consideration is. I think that &quot;be careful&quot; doesn&apos;t help as much as specifics. Maybe a comment more like &quot;the result of isEmpty() is only useful if there&apos;s some other guarantee that no one is going to add messages to the queue on another thread&quot; would be one good example. I think that&apos;s better than talking about risk and caution. The comment in MessagePort::hasPendingActivity is nice and clear on this point.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96137</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-10-21 23:08:42 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I like what this comment is warning about, but I&apos;m not fond of &quot;risky&quot; and
&gt; &quot;caution&quot; when describing how to use functions.

OK. I changed the warning for isEmpty(), but didn&apos;t find a good way to specifically warn about tryGetMessage()/killed(). Given that those are normally used for polling, maybe it&apos;s not important to warn about these.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24538</attachid>
            <date>2008-10-21 02:51:51 -0700</date>
            <delta_ts>2008-10-21 10:39:05 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>MessagePortGC.txt</filename>
            <type>text/plain</type>
            <size>11227</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3NzU5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDgtMTAtMjEgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc2OQorICAgICAgICBNZXNzYWdlUG9ydCBzaG91bGQgYmUgR0MgcHJvdGVjdGVkIGlm
IHRoZXJlIGFyZSBtZXNzYWdlcyB0byBiZSBkZWxpdmVyZWQKKworICAgICAgICAqIHd0Zi9NZXNz
YWdlUXVldWUuaDoKKyAgICAgICAgKFdURjo6Ojppc0VtcHR5KTogQWRkZWQuIEFsc28gYWRkZWQg
YSB3YXJuaW5nIGZvciBtZXRob2RzIHRoYXQgcmV0dXJuIGEgc25hcHNob3Qgb2YgcXVldWUKKyAg
ICAgICAgc3RhdGUsIHRodXMgbGlrZWx5IHRvIGNhdXNlIHJhY2UgY29uZGl0aW9ucy4KKwogMjAw
OC0xMC0yMCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IENhbWVyb24gWndhcmljaC4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9NZXNzYWdlUXVl
dWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvTWVzc2FnZVF1ZXVlLmgJKHJl
dmlzaW9uIDM3NzU5KQorKysgSmF2YVNjcmlwdENvcmUvd3RmL01lc3NhZ2VRdWV1ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NCw4ICs0NCwxMSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgdm9p
ZCBhcHBlbmQoY29uc3QgRGF0YVR5cGUmKTsKICAgICAgICAgdm9pZCBwcmVwZW5kKGNvbnN0IERh
dGFUeXBlJik7CiAgICAgICAgIGJvb2wgd2FpdEZvck1lc3NhZ2UoRGF0YVR5cGUmKTsKLSAgICAg
ICAgYm9vbCB0cnlHZXRNZXNzYWdlKERhdGFUeXBlJik7CiAgICAgICAgIHZvaWQga2lsbCgpOwor
CisgICAgICAgIC8vIFdhcm5pbmc6IHVzaW5nIHRoZSBiZWxvdyBtZXRob2RzIGlzIHJpc2t5LCBh
cyB0aGUgcXVldWUgc3RhdGUgbWF5IGNoYW5nZSBieSB0aGUgdGltZSB0aGV5IHJldHVybi4gRXh0
cmEgY2F1dGlvbiBpcyBhZHZpc2VkLgorICAgICAgICBib29sIHRyeUdldE1lc3NhZ2UoRGF0YVR5
cGUmKTsKKyAgICAgICAgYm9vbCBpc0VtcHR5KCk7CiAgICAgICAgIGJvb2wga2lsbGVkKCkgY29u
c3Q7CiAKICAgICBwcml2YXRlOgpAQCAtMTAzLDYgKzEwNiwxNSBAQCBuYW1lc3BhY2UgV1RGIHsK
ICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRhVHlwZT4KKyAgICBpbmxpbmUgYm9v
bCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojppc0VtcHR5KCkKKyAgICB7CisgICAgICAgIE11dGV4
TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIGlmIChtX2tpbGxlZCkKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gbV9xdWV1ZS5pc0VtcHR5KCk7CisgICAgfQor
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIHZvaWQgTWVzc2Fn
ZVF1ZXVlPERhdGFUeXBlPjo6a2lsbCgpCiAgICAgewogICAgICAgICBNdXRleExvY2tlciBsb2Nr
KG1fbXV0ZXgpOwpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3NzU5KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwyOSBAQAorMjAwOC0xMC0yMSAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvbWVzc2FnZS1jaGFubmVsLWdjLTMuaHRtbAor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc2OQor
ICAgICAgICBNZXNzYWdlUG9ydCBzaG91bGQgYmUgR0MgcHJvdGVjdGVkIGlmIHRoZXJlIGFyZSBt
ZXNzYWdlcyB0byBiZSBkZWxpdmVyZWQKKworICAgICAgICAqIGRvbS9NZXNzYWdlUG9ydC5oOiBS
ZW1vdmVkIHBlbmRpbmcgYWN0aXZpdHkgY291bnQuIE5vdyB3ZSB0cmFjayBpZiBhIGNsb3NlIGV2
ZW50IGlzCisgICAgICAgIHBlbmRpbmcsIGFuZCBjaGVjayBpZiB0aGUgcXVldWUgaXMgbm9uLWVt
cHR5LgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnQ6OndvcmtlckNvbnRleHQpOiBBZGRl
ZCBhIHN0dWIgaW1wbGVtZW50YXRpb24gZm9yIGEgY3Jvc3MtaGVhcCBHQyBidWcKKyAgICAgICAg
Zml4IChiZWxvdykuCisKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2xvc2VNZXNzYWdlUG9ydFRpbWVyOjpmaXJlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZXNzYWdlUG9ydDo6TWVzc2FnZVBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBv
cnQ6OnF1ZXVlQ2xvc2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydDo6ZGlz
cGF0Y2hDbG9zZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0OjpoYXNQZW5k
aW5nQWN0aXZpdHkpOgorICAgICAgICBUcmFjayBtZXNzYWdlIGFuZCBjbG9zZSBldmVudCBhY3Rp
dml0eSBzZXBhcmF0ZWx5LgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Om1hcmtDcm9zc0hlYXBEZXBlbmRlbnRPYmplY3RzRm9yRG9j
dW1lbnQpOiBGaXhlZCBhIGJ1ZyBpbiBjcm9zcy1oZWFwIEdDIHRoYXQgd2FzCisgICAgICAgIGNh
dXNpbmcgc2FtZS1oZWFwIHBvcnRzIHRvIG5ldmVyIGJlIGRlbGV0ZWQuCisKIDIwMDgtMTAtMjAg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFuIEJlcm5zdGVpbgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNw
cAkocmV2aXNpb24gMzc3NTkpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MSw2ICsyODEsMTEgQEAgdm9pZCBtYXJrQ3Jvc3NIZWFw
RGVwZW5kZW50T2JqZWN0c0ZvckRvYwogICAgICAgICAgICAgaWYgKCF3cmFwcGVyIHx8IHdyYXBw
ZXItPm1hcmtlZCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgICAgICAv
LyBEb24ndCB1c2UgY3Jvc3MtaGVhcCBtb2RlbCBvZiBtYXJraW5nIG9uIHNhbWUtaGVhcCBwYWly
cy4gT3RoZXJ3aXNlLCB0aGV5IHdpbGwgbmV2ZXIgYmUgZGVzdHJveWVkLCBiZWNhdXNlIGEgcG9y
dCB3aWxsIG1hcmsgaXRzIGVudGFuZ2xlZCBvbmUsCisgICAgICAgICAgICAvLyBhbmQgaXQgd2ls
bCBuZXZlciBnZXQgYSBjaGFuY2UgdG8gYmUgbWFya2VkIGFzIGluYWNjZXNzaWJsZS4gU28sIHRo
ZSBwb3J0IHdpbGwga2VlcCBnZXR0aW5nIG1hcmtlZCBpbiB0aGlzIGZ1bmN0aW9uLgorICAgICAg
ICAgICAgaWYgKChwb3J0LT5kb2N1bWVudCgpICYmIGVudGFuZ2xlZFBvcnQtPmRvY3VtZW50KCkp
IHx8IChwb3J0LT53b3JrZXJDb250ZXh0KCkgPT0gZW50YW5nbGVkUG9ydC0+d29ya2VyQ29udGV4
dCgpKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKwogICAgICAgICAgICAgLy8gSWYgdGhl
IHdyYXBwZXIgaGFzbid0IGJlZW4gbWFya2VkIGR1cmluZyB0aGUgbWFyayBwaGFzZSBvZiBHQywg
dGhlbiB0aGUgcG9ydCBzaG91bGRuJ3QgcHJvdGVjdCBpdHMgZW50YW5nbGVkIG9uZS4KICAgICAg
ICAgICAgIC8vIEl0J3MgaW1wb3J0YW50IG5vdCB0byBjYWxsIHRoaXMgd2hlbiB0aGVyZSBpcyBu
byB3cmFwcGVyLiBFLmcuLCBpZiBHQyBpcyB0cmlnZ2VyZWQgYWZ0ZXIgYSBNZXNzYWdlQ2hhbm5l
bCBpcyBjcmVhdGVkLCBidXQgYmVmb3JlIGl0cyBwb3J0cyBhcmUgdXNlZCBmcm9tIEpTLAogICAg
ICAgICAgICAgLy8gaXJyZXZlcnNpYmx5IHRlbGxpbmcgdGhlIG9iamVjdCB0aGF0IGl0cyAobm90
IHlldCBleGlzdGluZykgd3JhcHBlciBpcyBpbmFjY2Vzc2libGUgd291bGQgYmUgd3JvbmcuIFNp
bWlsYXJseSwgcG9ydHMgcG9zdGVkIHZpYSBwb3N0TWVzc2FnZSgpIG1heSBub3QKSW5kZXg6IFdl
YkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9NZXNz
YWdlUG9ydC5jcHAJKHJldmlzaW9uIDM3NzU5KQorKysgV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw2IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICBtX3BvcnQtPmRpc3BhdGNoTWVzc2FnZXMoKTsKIAogICAgICAgICBtX3BvcnQtPmRpc3BhdGNo
Q2xvc2VFdmVudCgpOwotICAgICAgICBtX3BvcnQtPnVuc2V0UGVuZGluZ0FjdGl2aXR5KCk7CiAg
ICAgICAgIGRlbGV0ZSB0aGlzOwogICAgIH0KIApAQCAtNjcsNyArNjYsNyBAQCBNZXNzYWdlUG9y
dDo6TWVzc2FnZVBvcnQoRG9jdW1lbnQqIGRvY3VtCiAgICAgOiBtX2VudGFuZ2xlZFBvcnQoMCkK
ICAgICAsIG1fcXVldWVJc09wZW4oZmFsc2UpCiAgICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQot
ICAgICwgbV9wZW5kaW5nQWN0aXZpdHkoMCkKKyAgICAsIG1fcGVuZGluZ0Nsb3NlRXZlbnQoZmFs
c2UpCiAgICAgLCBtX2pzV3JhcHBlcklzSW5hY2Nlc3NpYmxlKGZhbHNlKQogewogICAgIGRvY3Vt
ZW50LT5jcmVhdGVkTWVzc2FnZVBvcnQodGhpcyk7CkBAIC0yMzAsOCArMjI5LDggQEAgdm9pZCBN
ZXNzYWdlUG9ydDo6ZGlzcGF0Y2hNZXNzYWdlcygpCiAKIHZvaWQgTWVzc2FnZVBvcnQ6OnF1ZXVl
Q2xvc2VFdmVudCgpCiB7Ci0gICAgLy8gTmVlZCB0byBrZWVwIGxpc3RlbmVycyBhbGl2ZSwgYW5k
IHRoZXkgYXJlIG1hcmtlZCBieSB0aGUgd3JhcHBlci4KLSAgICBzZXRQZW5kaW5nQWN0aXZpdHko
KTsKKyAgICBBU1NFUlQoIW1fcGVuZGluZ0Nsb3NlRXZlbnQpOworICAgIG1fcGVuZGluZ0Nsb3Nl
RXZlbnQgPSB0cnVlOwogCiAgICAgQ2xvc2VNZXNzYWdlUG9ydFRpbWVyKiB0aW1lciA9IG5ldyBD
bG9zZU1lc3NhZ2VQb3J0VGltZXIodGhpcyk7CiAgICAgdGltZXItPnN0YXJ0T25lU2hvdCgwKTsK
QEAgLTIzOSw2ICsyMzgsOSBAQCB2b2lkIE1lc3NhZ2VQb3J0OjpxdWV1ZUNsb3NlRXZlbnQoKQog
CiB2b2lkIE1lc3NhZ2VQb3J0OjpkaXNwYXRjaENsb3NlRXZlbnQoKQogeworICAgIEFTU0VSVCht
X3BlbmRpbmdDbG9zZUV2ZW50KTsKKyAgICBtX3BlbmRpbmdDbG9zZUV2ZW50ID0gZmFsc2U7CisK
ICAgICBSZWZQdHI8RXZlbnQ+IGV2dCA9IEV2ZW50OjpjcmVhdGUoRXZlbnROYW1lczo6Y2xvc2VF
dmVudCwgZmFsc2UsIHRydWUpOwogICAgIGlmIChtX29uQ2xvc2VMaXN0ZW5lcikgewogICAgICAg
ICBldnQtPnNldFRhcmdldCh0aGlzKTsKQEAgLTMwMiwxNyArMzA0LDExIEBAIGJvb2wgTWVzc2Fn
ZVBvcnQ6OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlAKICAgICByZXR1cm4gIWV2ZW50LT5kZWZhdWx0
UHJldmVudGVkKCk7CiB9CiAKLXZvaWQgTWVzc2FnZVBvcnQ6OnNldFBlbmRpbmdBY3Rpdml0eSgp
Ci17Ci0gICAgcmVmKCk7Ci0gICAgKyttX3BlbmRpbmdBY3Rpdml0eTsKLX0KLQotdm9pZCBNZXNz
YWdlUG9ydDo6dW5zZXRQZW5kaW5nQWN0aXZpdHkoKQorYm9vbCBNZXNzYWdlUG9ydDo6aGFzUGVu
ZGluZ0FjdGl2aXR5KCkKIHsKLSAgICBBU1NFUlQobV9wZW5kaW5nQWN0aXZpdHkgPiAwKTsKLSAg
ICAtLW1fcGVuZGluZ0FjdGl2aXR5OwotICAgIGRlcmVmKCk7CisgICAgLy8gV2Ugb25seSBjYXJl
IGFib3V0IHRoZSByZXN1bHQgb2YgdGhpcyBmdW5jdGlvbiB3aGVuIHRoZXJlIGlzIG5vIGVudGFu
Z2xlZCBwb3J0LCBvciBpdCBpcyBpbmFjY2Vzc2libGUsIHNvIG5vIG1vcmUgbWVzc2FnZXMgY2Fu
IGJlIGFkZGVkIHRvIHRoZSBxdWV1ZS4KKyAgICAvLyBUaHVzLCB1c2luZyBNZXNzYWdlUXVldWU6
OmlzRW1wdHkoKSBkb2VzIG5vdCBjYXVzZSBhIHJhY2UgY29uZGl0aW9uIGhlcmUuCisgICAgcmV0
dXJuIG1fcGVuZGluZ0Nsb3NlRXZlbnQgfHwgKG1fcXVldWVJc09wZW4gJiYgIW1fbWVzc2FnZVF1
ZXVlLmlzRW1wdHkoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNv
cmUvZG9tL01lc3NhZ2VQb3J0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vTWVzc2FnZVBv
cnQuaAkocmV2aXNpb24gMzc3NTkpCisrKyBXZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFz
cyBFdmVudDsKICAgICBjbGFzcyBGcmFtZTsKICAgICBjbGFzcyBTdHJpbmc7CisgICAgY2xhc3Mg
V29ya2VyQ29udGV4dDsKIAogICAgIGNsYXNzIE1lc3NhZ2VQb3J0IDogcHVibGljIFRocmVhZFNh
ZmVTaGFyZWQ8TWVzc2FnZVBvcnQ+LCBwdWJsaWMgRXZlbnRUYXJnZXQgewogICAgIHB1YmxpYzoK
QEAgLTY3LDYgKzY4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgY29u
dGV4dERlc3Ryb3llZCgpOwogICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSB7IHJldHVybiBt
X2RvY3VtZW50OyB9CisgICAgICAgIFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQoKSB7IHJl
dHVybiAwOyB9IC8vIE5vdCBpbXBsZW1lbnRlZCB5ZXQuCiAKICAgICAgICAgdmlydHVhbCBNZXNz
YWdlUG9ydCogdG9NZXNzYWdlUG9ydCgpIHsgcmV0dXJuIHRoaXM7IH0KIApAQCAtODYsNyArODgs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHVzaW5nIFRocmVhZFNhZmVTaGFyZWQ8
TWVzc2FnZVBvcnQ+OjpyZWY7CiAgICAgICAgIHVzaW5nIFRocmVhZFNhZmVTaGFyZWQ8TWVzc2Fn
ZVBvcnQ+OjpkZXJlZjsKIAotICAgICAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIHsgcmV0
dXJuIG1fcGVuZGluZ0FjdGl2aXR5OyB9CisgICAgICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5
KCk7CiAKICAgICAgICAgdm9pZCBzZXRPbm1lc3NhZ2UoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVy
PiBldmVudExpc3RlbmVyKSB7IG1fb25NZXNzYWdlTGlzdGVuZXIgPSBldmVudExpc3RlbmVyOyB9
CiAgICAgICAgIEV2ZW50TGlzdGVuZXIqIG9ubWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1fb25N
ZXNzYWdlTGlzdGVuZXIuZ2V0KCk7IH0KQEAgLTEwNyw5ICsxMDksNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICAgICAgdm9pZCBkaXNwYXRjaENsb3NlRXZlbnQoKTsKIAotICAgICAgICB2
b2lkIHNldFBlbmRpbmdBY3Rpdml0eSgpOwotICAgICAgICB2b2lkIHVuc2V0UGVuZGluZ0FjdGl2
aXR5KCk7Ci0KICAgICAgICAgTWVzc2FnZVBvcnQqIG1fZW50YW5nbGVkUG9ydDsKICAgICAgICAg
TWVzc2FnZVF1ZXVlPFJlZlB0cjxFdmVudD4gPiBtX21lc3NhZ2VRdWV1ZTsKICAgICAgICAgYm9v
bCBtX3F1ZXVlSXNPcGVuOwpAQCAtMTIxLDcgKzEyMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgICAgICBFdmVudExpc3RlbmVyc01hcCBtX2V2ZW50TGlzdGVuZXJzOwogCi0gICAgICAg
IHVuc2lnbmVkIG1fcGVuZGluZ0FjdGl2aXR5OworICAgICAgICBib29sIG1fcGVuZGluZ0Nsb3Nl
RXZlbnQ7CiAgICAgICAgIGJvb2wgbV9qc1dyYXBwZXJJc0luYWNjZXNzaWJsZTsKICAgICB9Owog
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAzNzc1OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDA4LTEwLTIxICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3
NjkKKyAgICAgICAgTWVzc2FnZVBvcnQgc2hvdWxkIGJlIEdDIHByb3RlY3RlZCBpZiB0aGVyZSBh
cmUgbWVzc2FnZXMgdG8gYmUgZGVsaXZlcmVkCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9tZXNz
YWdlLWNoYW5uZWwtZ2MtMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL21lc3NhZ2UtY2hhbm5lbC1nYy0zLmh0bWw6IEFkZGVkLgorCiAyMDA4LTEwLTIwICBDaHJp
cyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
Sm9uIEhvbmV5Y3V0dC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL21lc3NhZ2UtY2hh
bm5lbC1nYy0zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9tZXNzYWdlLWNoYW5uZWwtZ2MtMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9tZXNzYWdlLWNoYW5uZWwtZ2MtMy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorVGVzdCB0aGF0IE1lc3NhZ2VQb3J0IG1lc3Nh
Z2VzIGFyZSBkZWxpdmVyZWQgZXZlbiBpZiBib3RoIHBvcnRzIGFyZSBpbmFjY2Vzc2libGUgZnJv
bSBKUyBhbnkgbW9yZS4KKworU2hvdWxkIHNheSBQQVNTIHR3aWNlLgorCitQQVNTOiBtZXNzYWdl
IGRlbGl2ZXJlZC4gUG9ydDogW29iamVjdCBNZXNzYWdlUG9ydF0KK1BBU1M6IGNsb3NlIG1lc3Nh
Z2UgZGVsaXZlcmVkLiBQb3J0OiBbb2JqZWN0IE1lc3NhZ2VQb3J0XQorCgpQcm9wZXJ0eSBjaGFu
Z2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9tZXNzYWdlLWNoYW5uZWwtZ2MtMy1leHBl
Y3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9wbGFpbgpO
YW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvbWVzc2FnZS1jaGFubmVsLWdjLTMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9tZXNzYWdlLWNoYW5uZWwtZ2MtMy5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvbWVzc2FnZS1jaGFubmVsLWdjLTMuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw1MiBAQAorPGJvZHk+Cis8cD5UZXN0IHRoYXQgTWVzc2FnZVBvcnQg
bWVzc2FnZXMgYXJlIGRlbGl2ZXJlZCBldmVuIGlmIGJvdGggcG9ydHMgYXJlIGluYWNjZXNzaWJs
ZSBmcm9tIEpTIGFueSBtb3JlLjwvcD4KKzxwPlNob3VsZCBzYXkgUEFTUyB0d2ljZS48L3A+Cis8
cHJlIGlkPWxvZz48L3ByZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBnYygpCit7CisgICAgaWYgKHdp
bmRvdy5HQ0NvbnRyb2xsZXIpCisgICAgICAgIHJldHVybiBHQ0NvbnRyb2xsZXIuY29sbGVjdCgp
OworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKSB7IC8vID4gZm9yY2UgZ2Fy
YmFnZSBjb2xsZWN0aW9uIChGRiByZXF1aXJlcyBhYm91dCA5SyBhbGxvY2F0aW9ucyBiZWZvcmUg
YSBjb2xsZWN0KQorICAgICAgICB2YXIgcyA9IG5ldyBTdHJpbmcoImFiYyIpOworICAgIH0KK30K
KworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImxvZyIpLmlubmVySFRNTCArPSBtZXNzYWdlICsgIjxicj4iOworfQorCitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVu
Y3Rpb24gdGVzdDEoKQoreworICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsOwor
ICAgIAorICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gZnVuY3Rpb24oZXZ0KSB7IGxvZygi
UEFTUzogbWVzc2FnZSBkZWxpdmVyZWQuIFBvcnQ6ICIgKyBldnQudGFyZ2V0KTsgdGVzdDIoKTsg
fQorICAgIGNoYW5uZWwucG9ydDEuc3RhcnQoKTsKKyAgICBjaGFubmVsLnBvcnQyLnBvc3RNZXNz
YWdlKCJtc2ciKTsKKyAgICAKKyAgICBjaGFubmVsID0gMDsKKyAgICBnYygpOworfQorCitmdW5j
dGlvbiB0ZXN0MigpCit7CisgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWw7Cisg
ICAgCisgICAgY2hhbm5lbC5wb3J0MS5vbmNsb3NlID0gZnVuY3Rpb24oZXZ0KSB7IGxvZygiUEFT
UzogY2xvc2UgbWVzc2FnZSBkZWxpdmVyZWQuIFBvcnQ6ICIgKyBldnQudGFyZ2V0KTsgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOyB9CisgICAgY2hhbm5lbC5wb3J0Mi5jbG9zZSgpOworICAgIAorICAgIGNoYW5uZWwgPSAw
OworICAgIGdjKCk7Cit9CisKK3Rlc3QxKCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvbWVzc2FnZS1jaGFubmVsLWdj
LTMuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwKCg==
</data>
<flag name="review"
          id="11180"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>