<?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>222228</bug_id>
          
          <creation_ts>2021-02-20 02:32:42 -0800</creation_ts>
          <short_desc>Regression(r268700) postMessage changes prototype of basic types</short_desc>
          <delta_ts>2021-02-24 22:54:37 -0800</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>Safari Technology Preview</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>macOS 11</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P4</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>217912</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Stefan Sechelmann">stefan</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>keith_miller</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1731786</commentid>
    <comment_count>0</comment_count>
    <who name="Stefan Sechelmann">stefan</who>
    <bug_when>2021-02-20 02:32:42 -0800</bug_when>
    <thetext>Execute this in the current Safari Tech Preview (120):

&gt;window.addEventListener(&apos;message&apos;, event =&gt; {
&gt;  console.log(&apos;is Object after postMessage?: &apos;, event.data instanceof Object)
&gt;  console.log(&apos;is Array after postMessage?: &apos;, event.data.array instanceof Array)
&gt;})
&gt;const testObject = {
&gt;  array: [ 1, 2, 3, 4 ]
&gt;};
&gt;console.log(&apos;is Object before postMessage?: &apos;, testObject instanceof Object)
&gt;console.log(&apos;is Array before postMessage?: &apos;, testObject.array instanceof Array)
&gt;window.postMessage(testObject);

This probably extends to other build-in types like Map, Set, ArrayBuffer and the like...
This applies to Safari Tech Preview 120 and is not present in Safari 14.0.3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731787</commentid>
    <comment_count>1</comment_count>
    <who name="Stefan Sechelmann">stefan</who>
    <bug_when>2021-02-20 02:38:37 -0800</bug_when>
    <thetext>I experienced this previously when dealing with data read from IndexedDB in an iframe: bug 185906 and bug 182097.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731790</commentid>
    <comment_count>2</comment_count>
    <who name="Stefan Sechelmann">stefan</who>
    <bug_when>2021-02-20 02:40:16 -0800</bug_when>
    <thetext>Here is a demo: https://codepen.io/sechel/pen/xxRLPKp
Check the dev console.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732296</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-22 14:02:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/74612853&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732318</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-22 15:04:23 -0800</bug_when>
    <thetext>This is Structured Cloning related, so WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732924</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 09:53:27 -0800</bug_when>
    <thetext>Indeed, I see this in STP 120:
[Log] is Object before postMessage?:  – true (iframeConsoleRunner-7f4d47902dc785f30dedcac9c996b9f31d4dfcc33567cc48f0431bc918c2bf05.js, line 1)
[Log] is Array before postMessage?:  – true (iframeConsoleRunner-7f4d47902dc785f30dedcac9c996b9f31d4dfcc33567cc48f0431bc918c2bf05.js, line 1)
[Log] is Object after postMessage?:  – false (iframeConsoleRunner-7f4d47902dc785f30dedcac9c996b9f31d4dfcc33567cc48f0431bc918c2bf05.js, line 1)
[Log] is Array after postMessage?:  – false (iframeConsoleRunner-7f4d47902dc785f30dedcac9c996b9f31d4dfcc33567cc48f0431bc918c2bf05.js, line 1)

and this in my System Safari:
[Log] is Object before postMessage?:  – true (xxRLPKp, line 52)
[Log] is Array before postMessage?:  – true (xxRLPKp, line 53)
[Log] is Object after postMessage?:  – true (xxRLPKp, line 45)
[Log] is Array after postMessage?:  – true (xxRLPKp, line 46)

I will bisect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732937</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 10:14:55 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; Indeed, I see this in STP 120:
&gt; [Log] is Object before postMessage?:  – true
&gt; (iframeConsoleRunner-
&gt; 7f4d47902dc785f30dedcac9c996b9f31d4dfcc33567cc48f0431bc918c2bf05.js, line 1)
&gt; [Log] is Array before postMessage?:  – true
&gt; (iframeConsoleRunner-
&gt; 7f4d47902dc785f30dedcac9c996b9f31d4dfcc33567cc48f0431bc918c2bf05.js, line 1)
&gt; [Log] is Object after postMessage?:  – false
&gt; (iframeConsoleRunner-
&gt; 7f4d47902dc785f30dedcac9c996b9f31d4dfcc33567cc48f0431bc918c2bf05.js, line 1)
&gt; [Log] is Array after postMessage?:  – false
&gt; (iframeConsoleRunner-
&gt; 7f4d47902dc785f30dedcac9c996b9f31d4dfcc33567cc48f0431bc918c2bf05.js, line 1)
&gt; 
&gt; and this in my System Safari:
&gt; [Log] is Object before postMessage?:  – true (xxRLPKp, line 52)
&gt; [Log] is Array before postMessage?:  – true (xxRLPKp, line 53)
&gt; [Log] is Object after postMessage?:  – true (xxRLPKp, line 45)
&gt; [Log] is Array after postMessage?:  – true (xxRLPKp, line 46)
&gt; 
&gt; I will bisect.

Never mind, I am not actually seeing a recent regression. The difference I saw was before and after a reload.

If I load https://codepen.io/sechel/pen/xxRLPKp, I see:
[Log] is Object before postMessage?:  – true 
[Log] is Array before postMessage?:  – true 
[Log] is Object after postMessage?:  – true 
[Log] is Array after postMessage?:  – true 

If I press the reload button, I see:
[Log] is Object before postMessage?:  – true 
[Log] is Array before postMessage?:  – true 
[Log] is Object after postMessage?:  – false 
[Log] is Array after postMessage?:  – false 

I see this behavior in STP 120 as well as in older WebKit builds...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732949</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 10:29:03 -0800</bug_when>
    <thetext>Ok, looks like I had not gone far back enough.
r267039: GOOD
r269041: BAD

In the good build, results are good even after the reload. It smells like a JSC bug to me but I guess we&apos;ll see after bisection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732965</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 10:59:15 -0800</bug_when>
    <thetext>Regression range:
https://trac.webkit.org/log/webkit/trunk?mode=follow_copy&amp;rev=268700&amp;stop_rev=268698

Almost certainly from http://trac.webkit.org/r268700, which I wrote :S

Investigating..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733004</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 11:47:49 -0800</bug_when>
    <thetext>Seems it was caused by this part of the change:

JSC::JSGlobalObject* ScriptExecutionContext::globalObject()
{
-     if (is&lt;Document&gt;(*this)) {
-         Document&amp; document = downcast&lt;Document&gt;(*this);
-         auto* frame = document.frame();
-         return frame ? frame-&gt;script().globalObject(mainThreadNormalWorld()) : nullptr;
-     }
+    if (is&lt;Document&gt;(*this))
+        return WebCore::globalObject(mainThreadNormalWorld(), downcast&lt;Document&gt;(*this).page());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733005</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 11:50:24 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #9)
&gt; Seems it was caused by this part of the change:
&gt; 
&gt; JSC::JSGlobalObject* ScriptExecutionContext::globalObject()
&gt; {
&gt; -     if (is&lt;Document&gt;(*this)) {
&gt; -         Document&amp; document = downcast&lt;Document&gt;(*this);
&gt; -         auto* frame = document.frame();
&gt; -         return frame ?
&gt; frame-&gt;script().globalObject(mainThreadNormalWorld()) : nullptr;
&gt; -     }
&gt; +    if (is&lt;Document&gt;(*this))
&gt; +        return WebCore::globalObject(mainThreadNormalWorld(),
&gt; downcast&lt;Document&gt;(*this).page());

Oh, I think the issue is that WebCore::globalObject() ends up using the main frame&apos;s scriptController instead of the current frame&apos;s scriptController.

Will fix shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733026</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 12:34:15 -0800</bug_when>
    <thetext>I am struggling a bit to write a layout test that reproduces the issue. What seems to trigger the bug in Safari is to have Web Inspector open when the test is running.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733039</commentid>
    <comment_count>12</comment_count>
      <attachid>421445</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 13:01:50 -0800</bug_when>
    <thetext>Created attachment 421445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733057</commentid>
    <comment_count>13</comment_count>
      <attachid>421445</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-02-24 13:35:01 -0800</bug_when>
    <thetext>Comment on attachment 421445
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733072</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-24 14:03:45 -0800</bug_when>
    <thetext>Committed r273438: &lt;https://commits.webkit.org/r273438&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421445.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733228</commentid>
    <comment_count>15</comment_count>
    <who name="Stefan Sechelmann">stefan</who>
    <bug_when>2021-02-24 22:54:37 -0800</bug_when>
    <thetext>Thank you.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421445</attachid>
            <date>2021-02-24 13:01:50 -0800</date>
            <delta_ts>2021-02-24 14:03:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222228-20210224130149.patch</filename>
            <type>text/plain</type>
            <size>8928</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmIyMTc5NTgyYTM3YWY5
ZDJhN2JjMWQzNDBmYTM5YWIyMWE3YTBhMC4uMjZmMjk1MzBmODdmZWYyNTMyMzkyN2UzODJkNjNm
MWRjZGZiMWMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTAyLTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVncmVzc2lvbihyMjY4NzAw
KSBwb3N0TWVzc2FnZSBjaGFuZ2VzIHByb3RvdHlwZSBvZiBiYXNpYyB0eXBlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMjI4CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83NDYxMjg1Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICByMjY4NzAwIHVwZGF0ZWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
Z2xvYmFsT2JqZWN0KCkgdG8gY2FsbDoKKyAgICAgICAgYFdlYkNvcmU6Omdsb2JhbE9iamVjdCht
YWluVGhyZWFkTm9ybWFsV29ybGQoKSwgZG93bmNhc3Q8RG9jdW1lbnQ+KCp0aGlzKS5wYWdlKCkp
YAorICAgICAgICBpbnN0ZWFkIG9mCisgICAgICAgIGBmcmFtZSA/IGZyYW1lLT5zY3JpcHQoKS5n
bG9iYWxPYmplY3QobWFpblRocmVhZE5vcm1hbFdvcmxkKCkpIDogbnVsbHB0cmAKKworICAgICAg
ICBUaGlzIHdhcyBub3QgcmlnaHQgZm9yIHN1YmZyYW1lcyBiZWNhdXNlIGdsb2JhbE9iamVjdCgp
IGdldHMgdGhlIGdsb2JhbE9iamVjdCBmcm9tCisgICAgICAgIHRoZSBwYWdlJ3MgbWFpbiBmcmFt
ZSBpbnN0ZWFkIG9mIHRoZSBkb2N1bWVudCdzIGZyYW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
Z2V0cyByaWQgb2YgdGhlIGVycm9yLXByb25lIFdlYkNvcmU6Omdsb2JhbE9iamVjdCgpIHRha2lu
ZyBpbiBhIFBhZ2UqCisgICAgICAgIGFuZCByZXBsYWNlcyBpdCB3aXRoIG9uZSB0YWtpbmcgaW4g
YSBGcmFtZSogdG8gYXZvaWQgc3VjaCBpc3N1ZXMgaW4gdGhlIGZ1dHVyZS4KKworICAgICAgICBU
ZXN0OiBmYXN0L2RvbS9XaW5kb3cvcG9zdE1lc3NhZ2UtT2JqZWN0LXByb3RvdHlwZS5odG1sCisK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpnbG9iYWxPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFN0YXRlLmg6Cisg
ICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6Z2xvYmFsT2JqZWN0KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckZyb250ZW5kSG9zdDo6YWRkU2VsZlRvR2xvYmFsT2JqZWN0SW5Xb3JsZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dDb250ZXh0TWVudSk6CisKIDIw
MjEtMDItMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEZXZp
Y2UgbW90aW9uIC8gb3JpZW50YXRpb24gZXZlbnRzIG5vdCB3b3JraW5nIGluIHRoaXJkLXBhcnR5
IGlmcmFtZXMgZGVzcGl0ZSBGZWF0dXJlLVBvbGljeSBhbGxvd2luZyBpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwCmluZGV4IGI3YWYwYmQyY2M4NzZiYmEzOGFl
NDlhMWY3ODEyYTQ3MDBlMmZlOGQuLmQzZTQ4ZWRhYTc4YjFhYzYyZGZhODdiNTUxZDJhZWY5Yjhj
NGZiMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFN0YXRl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTdGF0ZS5jcHAKQEAg
LTkyLDkgKzkyLDkgQEAgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KERPTVdyYXBw
ZXJXb3JsZCYgd29ybGQsIE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS5n
bG9iYWxPYmplY3Qod29ybGQpOwogfQogCi1KU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgUGFnZSogcGFnZSkKK0pTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBGcmFtZSogZnJhbWUpCiB7
Ci0gICAgcmV0dXJuIHBhZ2UgPyBwYWdlLT5tYWluRnJhbWUoKS5zY3JpcHQoKS5nbG9iYWxPYmpl
Y3Qod29ybGQpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gZnJhbWUgPyBmcmFtZS0+c2NyaXB0KCku
Z2xvYmFsT2JqZWN0KHdvcmxkKSA6IG51bGxwdHI7CiB9CiAKIEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdChXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSYgd29ya2VyT3JXb3JrbGV0
R2xvYmFsU2NvcGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuaAppbmRl
eCAwNWQwMzMxODA3OTUwZWUzMTAwZmY1YjIxMTgxNDAyMDQxOWM0NDAxLi5kMTUwNjMwOTk2MGI5
MjgxZWQxMDAyMTkzNzUzZmM5MjVhZGM0MDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdFN0YXRlLmgKQEAgLTQyLDcgKzQyLDYgQEAgY2xhc3MgRE9NV2luZG93OwogY2xhc3Mg
RE9NV3JhcHBlcldvcmxkOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBOb2RlOwotY2xhc3MgUGFnZTsK
IGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZTsKIApAQCAtNTMsNyArNTIsNyBAQCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KgogSlND
OjpKU0dsb2JhbE9iamVjdCogbWFpbldvcmxkRXhlY1N0YXRlKEZyYW1lKik7CiAKIEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdChET01XcmFwcGVyV29ybGQmLCBOb2RlKik7Ci1XRUJD
T1JFX0VYUE9SVCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoRE9NV3JhcHBlcldv
cmxkJiwgUGFnZSopOworV0VCQ09SRV9FWFBPUlQgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KERPTVdyYXBwZXJXb3JsZCYsIEZyYW1lKik7CiBKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUmKTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
Y3BwCmluZGV4IGE4OWI3NGVjN2QzOTVmM2Y4MzEzZTVhNDZmYThkNzIxMWQzODdiZDcuLmQyNzE3
YmY3ODMxZjRmYjVkNzhmMDUwYzk0YjRhYTY3MTJjYjY5ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTUxMiw3ICs1MTIsNyBAQCBib29s
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiBKU0M6
OkpTR2xvYmFsT2JqZWN0KiBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpnbG9iYWxPYmplY3QoKQog
ewogICAgIGlmIChpczxEb2N1bWVudD4oKnRoaXMpKQotICAgICAgICByZXR1cm4gV2ViQ29yZTo6
Z2xvYmFsT2JqZWN0KG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBkb3duY2FzdDxEb2N1bWVudD4o
KnRoaXMpLnBhZ2UoKSk7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpnbG9iYWxPYmplY3QobWFp
blRocmVhZE5vcm1hbFdvcmxkKCksIGRvd25jYXN0PERvY3VtZW50PigqdGhpcykuZnJhbWUoKSk7
CiAKICAgICBpZiAoaXM8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU+KCp0aGlzKSkKICAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6Omdsb2JhbE9iamVjdChkb3duY2FzdDxXb3JrZXJPcldvcmtsZXRH
bG9iYWxTY29wZT4oKnRoaXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kSG9zdC5jcHAKaW5kZXggMDBkNjJjZjQ3MTk2ZThlNzc5MzJkZmM4NTdk
MjBjYjAxNDgyYjE2MS4uMTgwY2RiYTg0NTNlMzFiZmYxNWZiY2I5NTJhN2MxNmRiYzVmMDI4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9z
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9z
dC5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6ZGlz
Y29ubmVjdENsaWVudCgpCiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjphZGRTZWxmVG9H
bG9iYWxPYmplY3RJbldvcmxkKERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCiB7Ci0gICAgYXV0byYg
bGV4aWNhbEdsb2JhbE9iamVjdCA9ICpnbG9iYWxPYmplY3Qod29ybGQsIG1fZnJvbnRlbmRQYWdl
KTsKKyAgICBhdXRvJiBsZXhpY2FsR2xvYmFsT2JqZWN0ID0gKmdsb2JhbE9iamVjdCh3b3JsZCwg
bV9mcm9udGVuZFBhZ2UgPyAmbV9mcm9udGVuZFBhZ2UtPm1haW5GcmFtZSgpIDogbnVsbHB0cik7
CiAgICAgYXV0byYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCk7CiAgICAgSlNDOjpKU0xv
Y2tIb2xkZXIgbG9jayh2bSk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUo
dm0pOwpAQCAtNTAzLDcgKzUwMyw3IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpzaG93
Q29udGV4dE1lbnUoRXZlbnQmIGV2ZW50LCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtCiAjaWYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpCiAgICAgQVNTRVJUKG1fZnJvbnRlbmRQYWdlKTsKIAotICAgIGF1
dG8mIGxleGljYWxHbG9iYWxPYmplY3QgPSAqZ2xvYmFsT2JqZWN0KGRlYnVnZ2VyV29ybGQoKSwg
bV9mcm9udGVuZFBhZ2UpOworICAgIGF1dG8mIGxleGljYWxHbG9iYWxPYmplY3QgPSAqZ2xvYmFs
T2JqZWN0KGRlYnVnZ2VyV29ybGQoKSwgJm1fZnJvbnRlbmRQYWdlLT5tYWluRnJhbWUoKSk7CiAg
ICAgYXV0byYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCk7CiAgICAgYXV0byB2YWx1ZSA9
IGxleGljYWxHbG9iYWxPYmplY3QuZ2V0KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OklkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sICJJbnNwZWN0b3JGcm9udGVuZEFQSSIpKTsKICAgICBBU1NF
UlQodmFsdWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGZmNzdmZjE5ZjFlNTE3ZGFiNDVjNTRjNGI5MmIzMGY0MWRjMTMx
MmIuLmExZjNkM2YxMDhlYWYyMGJkZGZjNTdkOTdlMzUxMzFjNDQ3NDdiNmIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMS0wMi0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlZ3Jlc3Npb24ocjI2ODcwMCkgcG9zdE1lc3NhZ2UgY2hhbmdlcyBwcm90b3R5
cGUgb2YgYmFzaWMgdHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMjIyOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQ2MTI4NTM+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0
ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3Bvc3RNZXNzYWdlLU9i
amVjdC1wcm90b3R5cGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9X
aW5kb3cvcG9zdE1lc3NhZ2UtT2JqZWN0LXByb3RvdHlwZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL3Bvc3RNZXNzYWdlLU9iamVjdC1wcm90b3R5cGUt
ZnJhbWUuaHRtbDogQWRkZWQuCisKIDIwMjEtMDItMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBEZXZpY2UgbW90aW9uIC8gb3JpZW50YXRpb24gZXZlbnRzIG5v
dCB3b3JraW5nIGluIHRoaXJkLXBhcnR5IGlmcmFtZXMgZGVzcGl0ZSBGZWF0dXJlLVBvbGljeSBh
bGxvd2luZyBpdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Bvc3RN
ZXNzYWdlLU9iamVjdC1wcm90b3R5cGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L3Bvc3RNZXNzYWdlLU9iamVjdC1wcm90b3R5cGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmIxZjMyNzY1NjEzYWM2YmZkZDUwYTM5MDU5OGVjODQwNmIxMDc5YmYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcG9zdE1lc3NhZ2UtT2JqZWN0
LXByb3RvdHlwZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgdGhhdCB0aGUg
cHJvdG90eXBlIG9mIG9iamVjdHMgc2VyaWFsaXplZCB2aWEgcG9zdE1lc3NhZ2UgaXMgY29ycmVj
dC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZXZlbnQuZGF0YSBpbnN0
YW5jZW9mIE9iamVjdAorUEFTUyBldmVudC5kYXRhLmFycmF5IGluc3RhbmNlb2YgQXJyYXkKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcG9zdE1lc3NhZ2UtT2JqZWN0LXByb3Rv
dHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Bvc3RNZXNzYWdlLU9iamVj
dC1wcm90b3R5cGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZDg1OGVhZTlkZTJmYTIyNzIwY2YyMWU5Mjcw
OGYwNGE3OTQ4YzMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3Bvc3RNZXNzYWdlLU9iamVjdC1wcm90b3R5cGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IHRoZSBwcm90b3R5cGUgb2Ygb2JqZWN0cyBzZXJpYWxpemVkIHZpYSBwb3N0TWVzc2Fn
ZSBpcyBjb3JyZWN0LiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK29ubG9hZCA9ICgpID0+
IHsKKyAgICBsZXQgdGVzdEZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7
CisgICAgdGVzdEZyYW1lLnNyYyA9ICJyZXNvdXJjZXMvcG9zdE1lc3NhZ2UtT2JqZWN0LXByb3Rv
dHlwZS1mcmFtZS5odG1sIjsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZCh0ZXN0RnJhbWUpOwor
fTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9wb3N0TWVzc2FnZS1PYmplY3QtcHJvdG90eXBlLWZy
YW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL3Bvc3RNZXNz
YWdlLU9iamVjdC1wcm90b3R5cGUtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTI2YmFhYzhhNjk1
Y2RiOGMxNDBlYTY5ZDU1MTA4ZGNhOTI2NmE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9wb3N0TWVzc2FnZS1PYmplY3QtcHJvdG90eXBl
LWZyYW1lLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxi
b2R5PgorPHNjcmlwdD4KK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZXZlbnQg
PT4geworICAgIGlmIChldmVudC5kYXRhIGluc3RhbmNlb2YgT2JqZWN0KQorICAgICAgICB0b3Au
dGVzdFBhc3NlZCgiZXZlbnQuZGF0YSBpbnN0YW5jZW9mIE9iamVjdCIpOworICAgIGVsc2UKKyAg
ICAgICAgdG9wLnRlc3RGYWlsZWQoImV2ZW50LmRhdGEgaW5zdGFuY2VvZiBPYmplY3QiKTsKKyAg
ICBpZiAoZXZlbnQuZGF0YS5hcnJheSBpbnN0YW5jZW9mIEFycmF5KQorICAgICAgICB0b3AudGVz
dFBhc3NlZCgiZXZlbnQuZGF0YS5hcnJheSBpbnN0YW5jZW9mIEFycmF5Iik7CisgICAgZWxzZQor
ICAgICAgICB0b3AudGVzdEZhaWxlZCgiZXZlbnQuZGF0YS5hcnJheSBpbnN0YW5jZW9mIEFycmF5
Iik7CisgICAgdG9wLmZpbmlzaEpTVGVzdCgpOworfSkKKworY29uc3QgdGVzdE9iamVjdCA9IHsK
KyAgICBhcnJheTogWyAxLCAyLCAzLCA0IF0KK307Cit3aW5kb3cucG9zdE1lc3NhZ2UodGVzdE9i
amVjdCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>