<?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>167099</bug_id>
          
          <creation_ts>2017-01-16 11:20:54 -0800</creation_ts>
          <short_desc>[JSC] export JSC::importModule API for WebCore dynamic import</short_desc>
          <delta_ts>2017-01-21 14:24:12 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>chi187</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1267189</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-16 11:20:54 -0800</bug_when>
    <thetext>[JSC] export JSC::importModule API for WebCore dynamic import</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1267190</commentid>
    <comment_count>1</comment_count>
      <attachid>298977</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-16 11:22:49 -0800</bug_when>
    <thetext>Created attachment 298977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268786</commentid>
    <comment_count>2</comment_count>
      <attachid>298977</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-21 13:51:47 -0800</bug_when>
    <thetext>Comment on attachment 298977
Patch

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

&gt; Source/JavaScriptCore/jsc.cpp:1443
&gt; +        JSInternalPromiseDeferred* deferred = JSInternalPromiseDeferred::create(exec, globalObject);
&gt; +        return deferred-&gt;reject(exec, error);

I think this would read better without the local variable.

&gt; Source/JavaScriptCore/runtime/Completion.cpp:258
&gt; +    JSGlobalObject* globalObject = exec-&gt;vmEntryGlobalObject();
&gt; +    return globalObject-&gt;moduleLoader()-&gt;requestImportModule(exec, moduleKey, scriptFetcher);

I think this would read better without the local variable.

&gt; Source/JavaScriptCore/runtime/JSModuleLoader.cpp:145
&gt; +    ASSERT(callType != CallType::None);

What guarantees this is true?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268791</commentid>
    <comment_count>3</comment_count>
      <attachid>298977</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-21 14:23:02 -0800</bug_when>
    <thetext>Comment on attachment 298977
Patch

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

&gt;&gt; Source/JavaScriptCore/jsc.cpp:1443
&gt;&gt; +        return deferred-&gt;reject(exec, error);
&gt; 
&gt; I think this would read better without the local variable.

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/Completion.cpp:258
&gt;&gt; +    return globalObject-&gt;moduleLoader()-&gt;requestImportModule(exec, moduleKey, scriptFetcher);
&gt; 
&gt; I think this would read better without the local variable.

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleLoader.cpp:145
&gt;&gt; +    ASSERT(callType != CallType::None);
&gt; 
&gt; What guarantees this is true?

Yes. JSModuleLoader is not visible to users. Thus, JSC can guarantee this condition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268792</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-21 14:24:12 -0800</bug_when>
    <thetext>Committed r211018: &lt;http://trac.webkit.org/changeset/211018&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298977</attachid>
            <date>2017-01-16 11:22:49 -0800</date>
            <delta_ts>2017-01-21 13:51:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167099-20170117042102.patch</filename>
            <type>text/plain</type>
            <size>12915</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZWI3ODA3NDQ2YjZjNTNkNTg4MDdiNTEyZDEyYWE1NzdlNDU4YzlhLi42NDE3ZDIwYWNkMGJhNjlk
NDA4NjU1ZWQ3NDMzNjM3Y2ViNGMyNzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAxNy0wMS0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBleHBvcnQgSlNDOjppbXBvcnRNb2R1bGUgQVBJIGZvciBX
ZWJDb3JlIGR5bmFtaWMgaW1wb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjcwOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZSBuZXdseSBleHBvc2UgSlNDOjppbXBvcnRNb2R1bGUgQVBJLiBUaGlz
IGNhbiBiZSB1c2VkIGxhdGVyCisgICAgICAgIGZyb20gV2ViQ29yZSB0byBpbXBsZW1lbnQgV2Vi
Q29yZSBzaWRlIGR5bmFtaWMgaW1wb3J0LgorICAgICAgICBBbmQgSlNDIHNoZWxsIGFsc28gdXNl
cyB0aGlzIEFQSS4KKworICAgICAgICBBbmQgdGhpcyBwYXRjaCBhbHNvIGNsZWFucyB1cCBtb2R1
bGUgbG9hZGVyIGEgYml0OgorICAgICAgICBEcm9wcGluZyByZXF1ZXN0SW5zdGFudGlhdGVBbGwu
CisKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBidWlsdGlu
cy9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuanM6CisgICAgICAgIChyZXF1ZXN0TGluayk6CisgICAg
ICAgIChyZXF1ZXN0SW1wb3J0TW9kdWxlKToKKyAgICAgICAgKHJlcXVlc3RJbnN0YW50aWF0ZUFs
bCk6IERlbGV0ZWQuCisgICAgICAgIChpbXBvcnRNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAq
IGpzYy5jcHA6CisgICAgICAgIChHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVs
ZSk6CisgICAgICAgICogcnVudGltZS9Db21wbGV0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6aW1w
b3J0TW9kdWxlKToKKyAgICAgICAgKiBydW50aW1lL0NvbXBsZXRpb24uaDoKKyAgICAgICAgKiBy
dW50aW1lL0pTTW9kdWxlTG9hZGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6
OnJlcXVlc3RJbXBvcnRNb2R1bGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVMb2FkZXIu
aDoKKyAgICAgICAgKiBydW50aW1lL01vZHVsZUxvYWRlclByb3RvdHlwZS5jcHA6CisKIDIwMTct
MDEtMTQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAg
V2ViQXNzZW1ibHk6IFN1cHByZXNzIHdhcm5pbmdzICYgZXJyb3JzIGluIEdDQwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCmluZGV4IDVmYTE2YjEyNTQz
NzIwODhlNmZjY2ZiZWY1MTdiYWM5Y2QxNDhkZDcuLjAzYWE0NGM2ODIyZTBhZjQ3MDg1NDE0ZTM1
ZDJiYjY0MmZjNzAxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlu
cy9CdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVp
bHRpbk5hbWVzLmgKQEAgLTE2MCw2ICsxNjAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBtYWNy
byhzdHJpbmdTdWJzdHJJbnRlcm5hbCkgXAogICAgIG1hY3JvKG1ha2VCb3VuZEZ1bmN0aW9uKSBc
CiAgICAgbWFjcm8oaGFzT3duTGVuZ3RoUHJvcGVydHkpIFwKKyAgICBtYWNybyhpbXBvcnRNb2R1
bGUpIFwKICAgICBtYWNybyhXZWJBc3NlbWJseSkgXAogICAgIG1hY3JvKE1vZHVsZSkgXAogICAg
IG1hY3JvKEluc3RhbmNlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvTW9kdWxlTG9hZGVyUHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL01vZHVsZUxvYWRlclByb3RvdHlwZS5qcwppbmRleCA2OGUwMGMxODBhZWI0Mjk2ZTdk
NzZlOWNlYzNmOTVmMzQ3NzY0M2YxLi5lMzQxYWI4NDg4NTdhNTQ5MGZjYWI2NTI3Y2Y4MmQyNTY4
NWU4OGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvTW9kdWxl
TG9hZGVyUHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9N
b2R1bGVMb2FkZXJQcm90b3R5cGUuanMKQEAgLTMxMiwxNSArMzEyLDYgQEAgZnVuY3Rpb24gcmVx
dWVzdFNhdGlzZnkoa2V5LCBmZXRjaGVyKQogICAgIHJldHVybiBzYXRpc2Z5UHJvbWlzZTsKIH0K
IAotZnVuY3Rpb24gcmVxdWVzdEluc3RhbnRpYXRlQWxsKGtleSwgZmV0Y2hlcikKLXsKLSAgICAv
LyBodHRwczovL3doYXR3Zy5naXRodWIuaW8vbG9hZGVyLyNyZXF1ZXN0LWluc3RhbnRpYXRlLWFs
bAotCi0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgcmV0dXJuIHRoaXMucmVxdWVzdFNhdGlzZnko
a2V5LCBmZXRjaGVyKTsKLX0KLQogZnVuY3Rpb24gcmVxdWVzdExpbmsoa2V5LCBmZXRjaGVyKQog
ewogICAgIC8vIGh0dHBzOi8vd2hhdHdnLmdpdGh1Yi5pby9sb2FkZXIvI3JlcXVlc3QtbGluawpA
QCAtMzM0LDcgKzMyNSw3IEBAIGZ1bmN0aW9uIHJlcXVlc3RMaW5rKGtleSwgZmV0Y2hlcikKICAg
ICAgICAgcmV0dXJuIGRlZmVycmVkLkBwcm9taXNlOwogICAgIH0KIAotICAgIHJldHVybiB0aGlz
LnJlcXVlc3RJbnN0YW50aWF0ZUFsbChrZXksIGZldGNoZXIpLnRoZW4oKGVudHJ5KSA9PiB7Cisg
ICAgcmV0dXJuIHRoaXMucmVxdWVzdFNhdGlzZnkoa2V5LCBmZXRjaGVyKS50aGVuKChlbnRyeSkg
PT4gewogICAgICAgICB0aGlzLmxpbmsoZW50cnksIGZldGNoZXIpOwogICAgICAgICByZXR1cm4g
ZW50cnk7CiAgICAgfSk7CkBAIC00NTMsNyArNDQ0LDcgQEAgZnVuY3Rpb24gbG9hZE1vZHVsZSht
b2R1bGVOYW1lLCByZWZlcnJlciwgZmV0Y2hlcikKICAgICAvLyBUYWtlIHRoZSBuYW1lIGFuZCBy
ZXNvbHZlIGl0IHRvIHRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlIGxvY2F0
aW9uLgogICAgIC8vIEZvciBleGFtcGxlLCB0YWtlIHRoZSAianF1ZXJ5IiBhbmQgcmV0dXJuIHRo
ZSBVUkwgZm9yIHRoZSByZXNvdXJjZS4KICAgICByZXR1cm4gdGhpcy5yZXNvbHZlKG1vZHVsZU5h
bWUsIHJlZmVycmVyLCBmZXRjaGVyKS50aGVuKChrZXkpID0+IHsKLSAgICAgICAgcmV0dXJuIHRo
aXMucmVxdWVzdEluc3RhbnRpYXRlQWxsKGtleSwgZmV0Y2hlcik7CisgICAgICAgIHJldHVybiB0
aGlzLnJlcXVlc3RTYXRpc2Z5KGtleSwgZmV0Y2hlcik7CiAgICAgfSkudGhlbigoZW50cnkpID0+
IHsKICAgICAgICAgcmV0dXJuIGVudHJ5LmtleTsKICAgICB9KTsKQEAgLTQ3MSwxNyArNDYyLDEx
IEBAIGZ1bmN0aW9uIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShrZXksIGZldGNoZXIpCiAgICAgcmV0
dXJuIHRoaXMubW9kdWxlRXZhbHVhdGlvbihlbnRyeS5tb2R1bGUsIGZldGNoZXIpOwogfQogCi1m
dW5jdGlvbiBpbXBvcnRNb2R1bGUobW9kdWxlTmFtZSwgcmVmZXJyZXIsIGZldGNoZXIpCitmdW5j
dGlvbiByZXF1ZXN0SW1wb3J0TW9kdWxlKGtleSwgZmV0Y2hlcikKIHsKICAgICAidXNlIHN0cmlj
dCI7CiAKLSAgICAvLyBMb2FkZXIucmVzb2x2ZSBob29rIHBvaW50LgotICAgIC8vIHJlc29sdmU6
IG1vZHVsZU5hbWUgPT4gUHJvbWlzZShtb2R1bGVLZXkpCi0gICAgLy8gVGFrZSB0aGUgbmFtZSBh
bmQgcmVzb2x2ZSBpdCB0byB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZSBs
b2NhdGlvbi4KLSAgICAvLyBGb3IgZXhhbXBsZSwgdGFrZSB0aGUgImpxdWVyeSIgYW5kIHJldHVy
biB0aGUgVVJMIGZvciB0aGUgcmVzb3VyY2UuCi0gICAgcmV0dXJuIHRoaXMucmVzb2x2ZShtb2R1
bGVOYW1lLCByZWZlcnJlciwgZmV0Y2hlcikudGhlbigoa2V5KSA9PiB7Ci0gICAgICAgIHJldHVy
biB0aGlzLnJlcXVlc3RJbnN0YW50aWF0ZUFsbChrZXksIGZldGNoZXIpOwotICAgIH0pLnRoZW4o
KGVudHJ5KSA9PiB7CisgICAgcmV0dXJuIHRoaXMucmVxdWVzdFNhdGlzZnkoa2V5LCBmZXRjaGVy
KS50aGVuKChlbnRyeSkgPT4gewogICAgICAgICB0aGlzLmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShl
bnRyeS5rZXksIGZldGNoZXIpOwogICAgICAgICByZXR1cm4gdGhpcy5nZXRNb2R1bGVOYW1lc3Bh
Y2VPYmplY3QoZW50cnkubW9kdWxlKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXgg
NjUxZjQ0OGQzOTVjOGFmYjEzNGYzMDQxNTcwZTMzMjhlYjc1MTYwMi4uMjUyMWYwYmY3ZWFjZGQ2
OGExNzFmNGVjNjJkYjJiMWRiZjcwNTNmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTE0MzMs
MTkgKzE0MzMsMjkgQEAgc3RhdGljIFN0cmluZyBhYnNvbHV0ZVBhdGgoY29uc3QgU3RyaW5nJiBm
aWxlTmFtZSkKICAgICByZXR1cm4gcmVzb2x2ZVBhdGgoZGlyZWN0b3J5TmFtZS52YWx1ZSgpLCBN
b2R1bGVOYW1lKGZpbGVOYW1lLmltcGwoKSkpOwogfQogCi1KU0ludGVybmFsUHJvbWlzZSogR2xv
YmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUoSlNHbG9iYWxPYmplY3QqLCBFeGVj
U3RhdGUqIGV4ZWMsIEpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTU3RyaW5nKiBtb2R1
bGVOYW1lLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbikKK0pTSW50ZXJuYWxQcm9t
aXNlKiBHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIEpTTW9kdWxlTG9hZGVyKiwgSlNTdHJp
bmcqIG1vZHVsZU5hbWVWYWx1ZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4pCiB7
Ci0gICAgYXV0byogZnVuY3Rpb24gPSBqc0Nhc3Q8SlNPYmplY3QqPihtb2R1bGVMb2FkZXItPmdl
dChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuaW1wb3J0TW9kdWxl
UHVibGljTmFtZSgpKSk7Ci0gICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgYXV0byBjYWxsVHlw
ZSA9IEpTQzo6Z2V0Q2FsbERhdGEoZnVuY3Rpb24sIGNhbGxEYXRhKTsKLSAgICBBU1NFUlQoY2Fs
bFR5cGUgIT0gQ2FsbFR5cGU6Ok5vbmUpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisKKyAgICBhdXRv
IHJlamVjdFByb21pc2UgPSBbJl0gKEpTVmFsdWUgZXJyb3IpIHsKKyAgICAgICAgSlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpj
cmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIGRlZmVycmVkLT5yZWpl
Y3QoZXhlYywgZXJyb3IpOworICAgIH07CiAKLSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1
bWVudHM7Ci0gICAgYXJndW1lbnRzLmFwcGVuZChtb2R1bGVOYW1lKTsKLSAgICBhcmd1bWVudHMu
YXBwZW5kKGpzU3RyaW5nKGV4ZWMsIHNvdXJjZU9yaWdpbi5zdHJpbmcoKSkpOwotICAgIGFyZ3Vt
ZW50cy5hcHBlbmQoanNVbmRlZmluZWQoKSk7CisgICAgYXV0byByZWZlcnJlciA9IHNvdXJjZU9y
aWdpbi5zdHJpbmcoKTsKKyAgICBhdXRvIG1vZHVsZU5hbWUgPSBtb2R1bGVOYW1lVmFsdWUtPnZh
bHVlKGV4ZWMpOworICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24oKSkpIHsKKyAgICAg
ICAgSlNWYWx1ZSBleGNlcHRpb24gPSBzY29wZS5leGNlcHRpb24oKTsKKyAgICAgICAgc2NvcGUu
Y2xlYXJFeGNlcHRpb24oKTsKKyAgICAgICAgcmV0dXJuIHJlamVjdFByb21pc2UoZXhjZXB0aW9u
KTsKKyAgICB9CisKKyAgICBhdXRvIGRpcmVjdG9yeU5hbWUgPSBleHRyYWN0RGlyZWN0b3J5TmFt
ZShyZWZlcnJlci5pbXBsKCkpOworICAgIGlmICghZGlyZWN0b3J5TmFtZSkKKyAgICAgICAgcmV0
dXJuIHJlamVjdFByb21pc2UoY3JlYXRlRXJyb3IoZXhlYywgbWFrZVN0cmluZygiQ291bGQgbm90
IHJlc29sdmUgdGhlIHJlZmVycmVyIG5hbWUgJyIsIFN0cmluZyhyZWZlcnJlci5pbXBsKCkpLCAi
Jy4iKSkpOwogCi0gICAgcmV0dXJuIGpzQ2FzdDxKU0ludGVybmFsUHJvbWlzZSo+KGNhbGwoZXhl
YywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgbW9kdWxlTG9hZGVyLCBhcmd1bWVudHMp
KTsKKyAgICByZXR1cm4gSlNDOjppbXBvcnRNb2R1bGUoZXhlYywgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sIHJlc29sdmVQYXRoKGRpcmVjdG9yeU5hbWUudmFsdWUoKSwgTW9kdWxlTmFtZSht
b2R1bGVOYW1lKSkpLCBqc1VuZGVmaW5lZCgpKTsKIH0KIAogSlNJbnRlcm5hbFByb21pc2UqIEds
b2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSBrZXlWYWx1ZSwg
SlNWYWx1ZSByZWZlcnJlclZhbHVlLCBKU1ZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db21wbGV0aW9uLmNwcAppbmRleCBlNDc2OGVlNjIyYjJlNzM1OGZhZDc3MzRhZDYy
NjhjZDMyMDJiZmZkLi45YWI3ZGU5ZWYwNTI2NGM3YmUxYzE3ZDY0NTU3OGMxNTQ2ZWQyNGFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmNwcApAQCAtMjQ4
LDQgKzI0OCwxNCBAQCBKU1ZhbHVlIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIG1vZHVsZUtleSwgSlNWYQogICAgIHJldHVybiBnbG9iYWxP
YmplY3QtPm1vZHVsZUxvYWRlcigpLT5saW5rQW5kRXZhbHVhdGVNb2R1bGUoZXhlYywgaWRlbnRp
ZmllclRvSlNWYWx1ZShleGVjLT52bSgpLCBtb2R1bGVLZXkpLCBzY3JpcHRGZXRjaGVyKTsKIH0K
IAorSlNJbnRlcm5hbFByb21pc2UqIGltcG9ydE1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIG1vZHVsZUtleSwgSlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAgIEpT
TG9ja0hvbGRlciBsb2NrKGV4ZWMpOworICAgIFJFTEVBU0VfQVNTRVJUKGV4ZWMtPnZtKCkuYXRv
bWljU3RyaW5nVGFibGUoKSA9PSB3dGZUaHJlYWREYXRhKCkuYXRvbWljU3RyaW5nVGFibGUoKSk7
CisgICAgUkVMRUFTRV9BU1NFUlQoIWV4ZWMtPnZtKCkuaXNDb2xsZWN0b3JCdXN5T25DdXJyZW50
VGhyZWFkKCkpOworCisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPnZt
RW50cnlHbG9iYWxPYmplY3QoKTsKKyAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5tb2R1bGVMb2Fk
ZXIoKS0+cmVxdWVzdEltcG9ydE1vZHVsZShleGVjLCBtb2R1bGVLZXksIHNjcmlwdEZldGNoZXIp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbXBsZXRpb24uaAppbmRleCA4MjJiYzQyZTI1M2MyZGYxMTMzYjFkYjA3OGJjOTUyM2RlMWFk
YzQ4Li43OTM0ZDYzMmVhNTBjMzcwMjI1MmE0OWJiMTY5ODg0YjZjOWVlZGRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5oCkBAIC02Nyw0ICs2Nyw2IEBAIEpT
X0VYUE9SVF9QUklWQVRFIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEV4ZWNTdGF0ZSos
IGNvbnN0IFNvdXJjZUNvZGUmLCBKCiAvLyBMaW5rIGFuZCBldmFsdWF0ZSB0aGUgYWxyZWFkeSBs
aW5rZWQgbW9kdWxlLiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBhIHN5bmMgbWFubmVyLgog
SlNfRVhQT1JUX1BSSVZBVEUgSlNWYWx1ZSBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgbW9kdWxlS2V5LCBKU1ZhbHVlIHNjcmlwdEZldGNoZXIgPSBq
c1VuZGVmaW5lZCgpKTsKIAorSlNfRVhQT1JUX1BSSVZBVEUgSlNJbnRlcm5hbFByb21pc2UqIGlt
cG9ydE1vZHVsZShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVLZXksIEpTVmFs
dWUgc2NyaXB0RmV0Y2hlcik7CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwCmluZGV4IDk2ZjE4MjJiZWVh
OWI2Nzg3NDc1ZjBiNGJmOTViZmI3ZWM0ODZkMTguLmE5OWFhNTM3M2M2N2E5MDI1ZGM3YTE3MTdh
OWZjYTE3MTc2MzA4MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTW9kdWxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U01vZHVsZUxvYWRlci5jcHAKQEAgLTEzNyw2ICsxMzcsMjAgQEAgSlNWYWx1ZSBKU01vZHVsZUxv
YWRlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBtb2R1
bGVLZXkKICAgICByZXR1cm4gY2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRh
LCB0aGlzLCBhcmd1bWVudHMpOwogfQogCitKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2Fk
ZXI6OnJlcXVlc3RJbXBvcnRNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBtb2R1bGVLZXksIEpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKK3sKKyAgICBhdXRvKiBmdW5jdGlv
biA9IGpzQ2FzdDxKU09iamVjdCo+KGdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYnVp
bHRpbk5hbWVzKCkucmVxdWVzdEltcG9ydE1vZHVsZVB1YmxpY05hbWUoKSkpOworICAgIENhbGxE
YXRhIGNhbGxEYXRhOworICAgIGF1dG8gY2FsbFR5cGUgPSBKU0M6OmdldENhbGxEYXRhKGZ1bmN0
aW9uLCBjYWxsRGF0YSk7CisgICAgQVNTRVJUKGNhbGxUeXBlICE9IENhbGxUeXBlOjpOb25lKTsK
KworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3VtZW50czsKKyAgICBhcmd1bWVudHMuYXBw
ZW5kKGpzU3RyaW5nKGV4ZWMsIG1vZHVsZUtleS5pbXBsKCkpKTsKKyAgICBhcmd1bWVudHMuYXBw
ZW5kKHNjcmlwdEZldGNoZXIpOworCisgICAgcmV0dXJuIGpzQ2FzdDxKU0ludGVybmFsUHJvbWlz
ZSo+KGNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpcywgYXJndW1l
bnRzKSk7Cit9CisKIEpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6aW1wb3J0TW9k
dWxlKEV4ZWNTdGF0ZSogZXhlYywgSlNTdHJpbmcqIG1vZHVsZU5hbWUsIGNvbnN0IFNvdXJjZU9y
aWdpbiYgcmVmZXJyZXIpCiB7CiAgICAgaWYgKE9wdGlvbnM6OmR1bXBNb2R1bGVMb2FkaW5nU3Rh
dGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxl
TG9hZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5o
CmluZGV4IDVkYjFlZmZiZGJjNmY3ZmE4MmIzMTI5OGRmNDEzMjUzODkzOThlYzUuLmMzZTAyM2Vl
NWFiMGYxMGQyM2FiODZmNDc0MTBmOWY5MzgxOWMyNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuaApAQCAtNjcsNiArNjcsNyBAQCBjbGFzcyBK
U01vZHVsZUxvYWRlciA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBKU0ludGVybmFs
UHJvbWlzZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgbW9kdWxl
TmFtZSwgSlNWYWx1ZSByZWZlcnJlciwgSlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsKICAgICBKU0lu
dGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG1vZHVsZU5hbWUs
IEpTVmFsdWUgcmVmZXJyZXIsIEpTVmFsdWUgc2NyaXB0RmV0Y2hlcik7CiAgICAgSlNWYWx1ZSBs
aW5rQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBtb2R1bGVLZXksIEpTVmFs
dWUgc2NyaXB0RmV0Y2hlcik7CisgICAgSlNJbnRlcm5hbFByb21pc2UqIHJlcXVlc3RJbXBvcnRN
b2R1bGUoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUgc2NyaXB0RmV0Y2hl
cik7CiAKICAgICAvLyBQbGF0Zm9ybSBkZXBlbmRlbnQgaG9va2VkIEFQSXMuCiAgICAgSlNJbnRl
cm5hbFByb21pc2UqIGltcG9ydE1vZHVsZShFeGVjU3RhdGUqLCBKU1N0cmluZyogbW9kdWxlTmFt
ZSwgY29uc3QgU291cmNlT3JpZ2luJiByZWZlcnJlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9kdWxlTG9hZGVyUHJvdG90eXBlLmNwcAppbmRleCAwZDU4
YWZkMWEwODJmMzY4ZjRjYjhiYmU1Njc5YjVjZGI5MTMxNzU5Li4yZGU2NTliNWUxZTZiMGQxOTNk
MDFjM2U0NDhjYTA3YjMxNDg5OTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01vZHVsZUxvYWRlclByb3RvdHlwZS5jcHAKQEAgLTc3LDcgKzc3LDYgQEAg
Y29uc3QgQ2xhc3NJbmZvIE1vZHVsZUxvYWRlclByb3RvdHlwZTo6c19pbmZvID0geyAiTW9kdWxl
TG9hZGVyIiwgJkJhc2U6OnNfaW5mbywKICAgICByZXF1ZXN0RmV0Y2ggICAgICAgICAgICAgICAg
ICAgSlNCdWlsdGluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERv
bnRFbnVtfEZ1bmN0aW9uIDIKICAgICByZXF1ZXN0SW5zdGFudGlhdGUgICAgICAgICAgICAgSlNC
dWlsdGluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uIDIKICAgICByZXF1ZXN0U2F0aXNmeSAgICAgICAgICAgICAgICAgSlNCdWlsdGlu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0
aW9uIDIKLSAgICByZXF1ZXN0SW5zdGFudGlhdGVBbGwgICAgICAgICAgSlNCdWlsdGluICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDIK
ICAgICByZXF1ZXN0TGluayAgICAgICAgICAgICAgICAgICAgSlNCdWlsdGluICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDIKICAgICBy
ZXF1ZXN0UmVhZHkgICAgICAgICAgICAgICAgICAgSlNCdWlsdGluICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDIKICAgICBsaW5rICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSlNCdWlsdGluICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDIKQEAgLTg4LDcgKzg3LDcgQEAg
Y29uc3QgQ2xhc3NJbmZvIE1vZHVsZUxvYWRlclByb3RvdHlwZTo6c19pbmZvID0geyAiTW9kdWxl
TG9hZGVyIiwgJkJhc2U6OnNfaW5mbywKICAgICBsb2FkQW5kRXZhbHVhdGVNb2R1bGUgICAgICAg
ICAgSlNCdWlsdGluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERv
bnRFbnVtfEZ1bmN0aW9uIDMKICAgICBsb2FkTW9kdWxlICAgICAgICAgICAgICAgICAgICAgSlNC
dWlsdGluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uIDMKICAgICBsaW5rQW5kRXZhbHVhdGVNb2R1bGUgICAgICAgICAgSlNCdWlsdGlu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0
aW9uIDIKLSAgICBpbXBvcnRNb2R1bGUgICAgICAgICAgICAgICAgICAgSlNCdWlsdGluICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDMK
KyAgICByZXF1ZXN0SW1wb3J0TW9kdWxlICAgICAgICAgICAgSlNCdWlsdGluICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDIKICAgICBn
ZXRNb2R1bGVOYW1lc3BhY2VPYmplY3QgICAgICAgbW9kdWxlTG9hZGVyUHJvdG90eXBlR2V0TW9k
dWxlTmFtZXNwYWNlT2JqZWN0ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgICBwYXJzZU1v
ZHVsZSAgICAgICAgICAgICAgICAgICAgbW9kdWxlTG9hZGVyUHJvdG90eXBlUGFyc2VNb2R1bGUg
ICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDIKICAgICByZXF1ZXN0ZWRNb2R1
bGVzICAgICAgICAgICAgICAgbW9kdWxlTG9hZGVyUHJvdG90eXBlUmVxdWVzdGVkTW9kdWxlcyAg
ICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEK
</data>
<flag name="review"
          id="321023"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>