<?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>236775</bug_id>
          
          <creation_ts>2022-02-17 05:44:57 -0800</creation_ts>
          <short_desc>[JSC] Substring resolving should check 8bit / 16bit again</short_desc>
          <delta_ts>2022-05-26 14:41:36 -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>JavaScriptCore</component>
          <version>WebKit Local 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Lukas Bernhard">lukas.bernhard</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1842850</commentid>
    <comment_count>0</comment_count>
    <who name="Lukas Bernhard">lukas.bernhard</who>
    <bug_when>2022-02-17 05:44:57 -0800</bug_when>
    <thetext>The attached sample triggers an assertion in webkit on git commit d96b38bfed8b

Build command: ./Tools/Scripts/build-jsc --jsc-only --debug --cmakeargs=&quot;-DENABLE_STATIC_JSC=ON -DCMAKE_C_COMPILER=&apos;/usr/bin/clang-12&apos; -DCMAKE_CXX_COMPILER=&apos;/usr/bin/clang++-12&apos; -DCMAKE_CXX_FLAGS=&apos;-O3 -lrt -latomic -fuse-ld=lld&apos;&quot;
Run command: build/Debug/bin/jsc --validateOptions=true --useConcurrentJIT=false --useConcurrentGC=false --thresholdForJITSoon=10 --thresholdForJITAfterWarmUp=10 --thresholdForOptimizeAfterWarmUp=100 --thresholdForOptimizeAfterLongWarmUp=100 --thresholdForOptimizeAfterLongWarmUp=100 --thresholdForFTLOptimizeAfterWarmUp=1000 --thresholdForFTLOptimizeSoon=100

// STDERR:
// ASSERTION FAILED: !is8Bit()
// WTF/Headers/wtf/text/StringImpl.h(297) : const UChar *WTF::StringImpl::characters16() const

sample.js:
```
function main() {
    for (let v27 = 0; v27 &lt; 100; v27++) {
        const v44 = [0,0,1.1];
        const v61 = v44.toLocaleString();
        const v62 = eval(Math);
        v63 = v61.substring(v62,v27);

        function v64() {
            if (v62) {
                Math[v61] = [];
            }
            const v82 = (-1.0).__proto__;
            delete v82[v63];
        }
        v64();
    }
}
main();
```

Full backtrace:
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140737314615232) at pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=140737314615232) at pthread_kill.c:80
#2  __GI___pthread_kill (threadid=140737314615232, signo=signo@entry=6) at pthread_kill.c:91
#3  0x00007ffff5a96476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4  0x00007ffff5a7c7b7 in __GI_abort () at abort.c:79
#5  0x0000000000cd501a in WTFCrashWithInfo () at WTF/Headers/wtf/Assertions.h:741
#6  0x0000000001e6d1b9 in WTF::StringImpl::characters16 (this=&lt;optimized out&gt;) at WTF/Headers/wtf/text/StringImpl.h:297
#7  WTF::String::characters16 (this=&lt;optimized out&gt;) at WTF/Headers/wtf/text/WTFString.h:129
#8  JSC::JSRopeString::resolveRopeInternal16 (this=this@entry=0x7fffaa4f0020, buffer=buffer@entry=0x7fffffffc140 u&quot;쓼\xffff翿&quot;)
    at ../../Source/JavaScriptCore/runtime/JSString.cpp:169
#9  0x0000000001e6d42a in JSC::JSRopeString::resolveRopeToAtomString (this=0x7fffaa4f0020, globalObject=&lt;optimized out&gt;)
    at ../../Source/JavaScriptCore/runtime/JSString.cpp:217
#10 0x0000000000cd6a84 in JSC::JSRopeString::toIdentifier (this=0x6, this@entry=0x7fffaa4f0020,
    globalObject=globalObject@entry=0x7fffaa460a68) at ../../Source/JavaScriptCore/runtime/JSString.h:771
#11 0x0000000000cd654c in JSC::JSString::toIdentifier (this=0x7fffaa4f0020, globalObject=globalObject@entry=0x7fffaa460a68)
    at ../../Source/JavaScriptCore/runtime/JSString.h:794
#12 0x0000000000cd5498 in JSC::JSValue::toPropertyKey (this=&lt;optimized out&gt;, globalObject=0x7fffaa460a68)
    at ../../Source/JavaScriptCore/runtime/JSCJSValueInlines.h:808
#13 0x0000000001a72664 in JSC::deleteByVal (globalObject=globalObject@entry=0x7fffaa460a68, vm=..., slot=..., base=..., key=...,
    ecmaMode=ecmaMode@entry=...) at ../../Source/JavaScriptCore/jit/JITOperations.cpp:2614
#14 0x0000000001a71fd8 in JSC::operationDeleteByValOptimize (globalObject=0x7fffaa460a68, stubInfo=0x7fffec059ca8,
    encodedBase=140737152821896, encodedSubscript=140736050692128, ecmaMode=...) at ../../Source/JavaScriptCore/jit/JITOperations.cpp:2636</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844345</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-21 13:23:53 -0800</bug_when>
    <thetext>&lt;rdar://problem/89253391&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858763</commentid>
    <comment_count>2</comment_count>
      <attachid>456800</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-06 03:59:46 -0700</bug_when>
    <thetext>Created attachment 456800
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858766</commentid>
    <comment_count>3</comment_count>
      <attachid>456802</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-06 04:04:19 -0700</bug_when>
    <thetext>Created attachment 456802
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858866</commentid>
    <comment_count>4</comment_count>
      <attachid>456802</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-04-06 09:26:03 -0700</bug_when>
    <thetext>Comment on attachment 456802
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        Substring JSString is wrapping JSString. Thus it is possible that underlying JSString&apos;s 8Bit / 16Bit status
&gt; +        becomes different from substring JSString wrapper&apos;s bit. We should not assume they are the same.

Why does the underlying string change here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858949</commentid>
    <comment_count>5</comment_count>
      <attachid>456802</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-06 11:44:16 -0700</bug_when>
    <thetext>Comment on attachment 456802
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:10
&gt;&gt; +        becomes different from substring JSString wrapper&apos;s bit. We should not assume they are the same.
&gt; 
&gt; Why does the underlying string change here?

One possible case is that, underlying string was 16bit rope, and after resolving that, it was converted into the existing 8bit atom string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858950</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-06 11:48:58 -0700</bug_when>
    <thetext>Committed r292484 (249335@trunk): &lt;https://commits.webkit.org/249335@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1872113</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-05-26 14:41:36 -0700</bug_when>
    <thetext>This fix shipped with Safari 15.5 (all platforms).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456800</attachid>
            <date>2022-04-06 03:59:46 -0700</date>
            <delta_ts>2022-04-06 04:04:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236775-20220406035946.patch</filename>
            <type>text/plain</type>
            <size>4292</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MDcwZTAwYWRkMThiNWY2NTI3NzFkZGE5OThlNDlmYzFkMzZmM2ZhLi4zYjI4NTU4OThkNTcxODk4
NDYxMmI5NjVhZGZmYTU2MGUzOWE5OTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAyMi0wNC0wNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFN1YnN0cmluZyByZXNvbHZpbmcgc2hvdWxkIGNoZWNrIDhiaXQg
LyAxNmJpdCBhZ2FpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM2Nzc1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84OTI1MzM5MT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdWJzdHJpbmcgSlNTdHJp
bmcgaXMgd3JhcHBpbmcgSlNTdHJpbmcuIFRodXMgaXQgaXMgcG9zc2libGUgdGhhdCB1bmRlcmx5
aW5nIEpTU3RyaW5nJ3MgOEJpdCAvIDE2Qml0IHN0YXR1cworICAgICAgICBiZWNvbWVzIGRpZmZl
cmVudCBmcm9tIHN1YnN0cmluZyBKU1N0cmluZyB3cmFwcGVyJ3MgYml0LiBXZSBzaG91bGQgbm90
IGFzc3VtZSB0aGV5IGFyZSB0aGUgc2FtZS4KKworICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcu
Y3BwOgorICAgICAgICAoSlNDOjpKU1JvcGVTdHJpbmc6OnJlc29sdmVSb3BlSW50ZXJuYWw4IGNv
bnN0KToKKyAgICAgICAgKEpTQzo6SlNSb3BlU3RyaW5nOjpyZXNvbHZlUm9wZUludGVybmFsMTYg
Y29uc3QpOgorCiAyMDIyLTA0LTA2ICBYYW4gTG9wZXogIDx4YW5AaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbSlNDXSBBZGQgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzIG1vZGUgdG8gdW5ib3hEb3VibGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAppbmRleCA0MTBkOGEw
YmYxOWVlMTNiNDRkMTVmMDQyMTBiZjQwNWE2YTUwM2Q1Li4yNWViZDk3MGFmODcwYTI2MGJmMzc3
YjI0NzJmZDI1MGI1ZTQwOGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1N0cmluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
dHJpbmcuY3BwCkBAIC0xNTUsNyArMTU1LDEzIEBAIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
bWF4TGVuZ3RoRm9yT25TdGFja1Jlc29sdmUgPSAyMDQ4Owogdm9pZCBKU1JvcGVTdHJpbmc6OnJl
c29sdmVSb3BlSW50ZXJuYWw4KExDaGFyKiBidWZmZXIpIGNvbnN0CiB7CiAgICAgaWYgKGlzU3Vi
c3RyaW5nKCkpIHsKLSAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVyLCBz
dWJzdHJpbmdCYXNlKCktPnZhbHVlSW50ZXJuYWwoKS5jaGFyYWN0ZXJzOCgpICsgc3Vic3RyaW5n
T2Zmc2V0KCksIGxlbmd0aCgpKTsKKyAgICAgICAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCB1bmRl
cmx5aW5nIHN0cmluZyBiZWNvbWVzIDhiaXQgd2hpbGUgd3JhcHBlciBzdWJzdHJpbmcgaXMgc2F5
aW5nIGl0IGlzIDE2Yml0LgorICAgICAgICAvLyBCdXQgSXQgaXMgZGVmaW5pdGVseSB0cnVlIHRo
YXQgc3Vic3RyaW5nIHBhcnQgY2FuIGJlIHJlcHJlc2VudGVkIGFzIDhiaXQuCisgICAgICAgIGF1
dG8mIHN0cmluZyA9IHN1YnN0cmluZ0Jhc2UoKS0+dmFsdWVJbnRlcm5hbCgpOworICAgICAgICBp
ZiAoc3RyaW5nLmlzOEJpdCgpKQorICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNoYXJhY3Rl
cnMoYnVmZmVyLCBzdHJpbmcuY2hhcmFjdGVyczgoKSArIHN1YnN0cmluZ09mZnNldCgpLCBsZW5n
dGgoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0
ZXJzKGJ1ZmZlciwgc3RyaW5nLmNoYXJhY3RlcnMxNigpICsgc3Vic3RyaW5nT2Zmc2V0KCksIGxl
bmd0aCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKQEAgLTE2NSw4ICsxNzEsMTIg
QEAgdm9pZCBKU1JvcGVTdHJpbmc6OnJlc29sdmVSb3BlSW50ZXJuYWw4KExDaGFyKiBidWZmZXIp
IGNvbnN0CiB2b2lkIEpTUm9wZVN0cmluZzo6cmVzb2x2ZVJvcGVJbnRlcm5hbDE2KFVDaGFyKiBi
dWZmZXIpIGNvbnN0CiB7CiAgICAgaWYgKGlzU3Vic3RyaW5nKCkpIHsKLSAgICAgICAgU3RyaW5n
SW1wbDo6Y29weUNoYXJhY3RlcnMoCi0gICAgICAgICAgICBidWZmZXIsIHN1YnN0cmluZ0Jhc2Uo
KS0+dmFsdWVJbnRlcm5hbCgpLmNoYXJhY3RlcnMxNigpICsgc3Vic3RyaW5nT2Zmc2V0KCksIGxl
bmd0aCgpKTsKKyAgICAgICAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCB1bmRlcmx5aW5nIHN0cmlu
ZyBiZWNvbWVzIDhiaXQgd2hpbGUgd3JhcHBlciBzdWJzdHJpbmcgaXMgc2F5aW5nIGl0IGlzIDE2
Yml0LgorICAgICAgICBhdXRvJiBzdHJpbmcgPSBzdWJzdHJpbmdCYXNlKCktPnZhbHVlSW50ZXJu
YWwoKTsKKyAgICAgICAgaWYgKHN0cmluZy5pczhCaXQoKSkKKyAgICAgICAgICAgIFN0cmluZ0lt
cGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciwgc3RyaW5nLmNoYXJhY3RlcnM4KCkgKyBzdWJzdHJp
bmdPZmZzZXQoKSwgbGVuZ3RoKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBTdHJpbmdJ
bXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIsIHN0cmluZy5jaGFyYWN0ZXJzMTYoKSArIHN1YnN0
cmluZ09mZnNldCgpLCBsZW5ndGgoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE4
YjhmZWRmZjdjNWZhMjZjODAxNjkzNmEwNTYzOWE5NWRkMTg2YmQuLjkzZDg3ZmM1ZmJlYWVkYzk2
M2Y0NmJmMmRmNWIwNzQwODE1NWJlMTIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDQtMDYgIFl1c3Vr
ZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBTdWJzdHJpbmcg
cmVzb2x2aW5nIHNob3VsZCBjaGVjayA4Yml0IC8gMTZiaXQgYWdhaW4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjc3NQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vODkyNTMzOTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBzdHJlc3MvOGJpdC0xNmJpdC1hdG9taXplLWNvbnZlcnNpb24uanM6IEFk
ZGVkLgorICAgICAgICAobWFpbi52NjQpOgorICAgICAgICAobWFpbik6CisKIDIwMjItMDQtMDEg
IEFuZ2Vsb3MgT2lrb25vbW9wb3Vsb3MgIDxhbmdlbG9zQGlnYWxpYS5jb20+CiAKICAgICAgICAg
U2tpcCBmbGFreSB0ZXN0IG9uIG1pcHMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzLzhiaXQt
MTZiaXQtYXRvbWl6ZS1jb252ZXJzaW9uLmpzIGIvSlNUZXN0cy9zdHJlc3MvOGJpdC0xNmJpdC1h
dG9taXplLWNvbnZlcnNpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjYzZTg2OTY2ZmQ0YTNkMDU0MzE5MDg1
MzM2OGYxNzIxMjVmYjlkNQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzLzhiaXQt
MTZiaXQtYXRvbWl6ZS1jb252ZXJzaW9uLmpzCkBAIC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9uIG1h
aW4oKSB7CisgICAgZm9yIChsZXQgdjI3ID0gMDsgdjI3IDwgMTAwOyB2MjcrKykgeworICAgICAg
ICBjb25zdCB2NDQgPSBbMCwwLDEuMV07CisgICAgICAgIGNvbnN0IHY2MSA9IHY0NC50b0xvY2Fs
ZVN0cmluZygpOworICAgICAgICBjb25zdCB2NjIgPSBldmFsKE1hdGgpOworICAgICAgICB2NjMg
PSB2NjEuc3Vic3RyaW5nKHY2Mix2MjcpOworCisgICAgICAgIGZ1bmN0aW9uIHY2NCgpIHsKKyAg
ICAgICAgICAgIGlmICh2NjIpIHsKKyAgICAgICAgICAgICAgICBNYXRoW3Y2MV0gPSBbXTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnN0IHY4MiA9ICgtMS4wKS5fX3Byb3RvX187Cisg
ICAgICAgICAgICBkZWxldGUgdjgyW3Y2M107CisgICAgICAgIH0KKyAgICAgICAgdjY0KCk7Cisg
ICAgfQorfQorbWFpbigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456802</attachid>
            <date>2022-04-06 04:04:19 -0700</date>
            <delta_ts>2022-04-06 09:26:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236775-20220406040419.patch</filename>
            <type>text/plain</type>
            <size>6523</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MDcwZTAwYWRkMThiNWY2NTI3NzFkZGE5OThlNDlmYzFkMzZmM2ZhLi43NjU0YjYxMWZiNTExMmY2
YzllOGEyYmJlY2I0OTQxOTI0MDQ0NWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wNC0wNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFN1YnN0cmluZyByZXNvbHZpbmcgc2hvdWxkIGNoZWNrIDhiaXQg
LyAxNmJpdCBhZ2FpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM2Nzc1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84OTI1MzM5MT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdWJzdHJpbmcgSlNTdHJp
bmcgaXMgd3JhcHBpbmcgSlNTdHJpbmcuIFRodXMgaXQgaXMgcG9zc2libGUgdGhhdCB1bmRlcmx5
aW5nIEpTU3RyaW5nJ3MgOEJpdCAvIDE2Qml0IHN0YXR1cworICAgICAgICBiZWNvbWVzIGRpZmZl
cmVudCBmcm9tIHN1YnN0cmluZyBKU1N0cmluZyB3cmFwcGVyJ3MgYml0LiBXZSBzaG91bGQgbm90
IGFzc3VtZSB0aGV5IGFyZSB0aGUgc2FtZS4KKworICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcu
Y3BwOgorICAgICAgICAoSlNDOjpKU1JvcGVTdHJpbmc6OnJlc29sdmVSb3BlSW50ZXJuYWwgY29u
c3QpOgorICAgICAgICAoSlNDOjpKU1JvcGVTdHJpbmc6OnJlc29sdmVSb3BlVG9BdG9tU3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6SlNSb3BlU3RyaW5nOjpyZXNvbHZlUm9wZVRvRXhpc3Rp
bmdBdG9tU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKEpTQzo6SlNSb3BlU3RyaW5nOjpyZXNvbHZl
Um9wZUludGVybmFsOCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpTUm9wZVN0cmlu
Zzo6cmVzb2x2ZVJvcGVJbnRlcm5hbDE2IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL0pTU3RyaW5nLmg6CisKIDIwMjItMDQtMDYgIFhhbiBMb3BleiAgPHhhbkBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtKU0NdIEFkZCBEb05vdEhhdmVUYWdSZWdpc3RlcnMgbW9kZSB0byB1bmJv
eERvdWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJp
bmcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCmluZGV4
IDQxMGQ4YTBiZjE5ZWUxM2I0NGQxNWYwNDIxMGJmNDA1YTZhNTAzZDUuLjhlMzE3ODM5YmRkOTUz
YjE4ZThlNmQ1NWJlODJjZTVhZjkxNDZlY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1N0cmluZy5jcHAKQEAgLTE1MiwyMSArMTUyLDE3IEBAIERFRklORV9WSVNJVF9DSElM
RFJFTihKU1N0cmluZyk7CiAKIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4TGVuZ3RoRm9y
T25TdGFja1Jlc29sdmUgPSAyMDQ4OwogCi12b2lkIEpTUm9wZVN0cmluZzo6cmVzb2x2ZVJvcGVJ
bnRlcm5hbDgoTENoYXIqIGJ1ZmZlcikgY29uc3QKLXsKLSAgICBpZiAoaXNTdWJzdHJpbmcoKSkg
ewotICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIsIHN1YnN0cmluZ0Jh
c2UoKS0+dmFsdWVJbnRlcm5hbCgpLmNoYXJhY3RlcnM4KCkgKyBzdWJzdHJpbmdPZmZzZXQoKSwg
bGVuZ3RoKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIHJlc29sdmVSb3Bl
SW50ZXJuYWxOb1N1YnN0cmluZyhidWZmZXIpOwotfQotCi12b2lkIEpTUm9wZVN0cmluZzo6cmVz
b2x2ZVJvcGVJbnRlcm5hbDE2KFVDaGFyKiBidWZmZXIpIGNvbnN0Cit0ZW1wbGF0ZTx0eXBlbmFt
ZSBDaGFyYWN0ZXJUeXBlPgordm9pZCBKU1JvcGVTdHJpbmc6OnJlc29sdmVSb3BlSW50ZXJuYWwo
Q2hhcmFjdGVyVHlwZSogYnVmZmVyKSBjb25zdAogewogICAgIGlmIChpc1N1YnN0cmluZygpKSB7
Ci0gICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKAotICAgICAgICAgICAgYnVmZmVy
LCBzdWJzdHJpbmdCYXNlKCktPnZhbHVlSW50ZXJuYWwoKS5jaGFyYWN0ZXJzMTYoKSArIHN1YnN0
cmluZ09mZnNldCgpLCBsZW5ndGgoKSk7CisgICAgICAgIC8vIEl0IGlzIHBvc3NpYmxlIHRoYXQg
dW5kZXJseWluZyBzdHJpbmcgYmVjb21lcyA4Yml0LzE2Yml0IHdoaWxlIHdyYXBwZXIgc3Vic3Ry
aW5nIGlzIHNheWluZyBpdCBpcyAxNmJpdC84Yml0LgorICAgICAgICAvLyBCdXQgSXQgaXMgZGVm
aW5pdGVseSB0cnVlIHRoYXQgc3Vic3RyaW5nIHBhcnQgY2FuIGJlIHJlcHJlc2VudGVkIGFzIGl0
cyBwYXJlbnQncyBzdGF0dXMgOGJpdC8xNmJpdCwgd2hpY2ggaXMgZGVzY3JpYmVkIGFzIENoYXJh
Y3RlclR5cGUuCisgICAgICAgIGF1dG8mIHN0cmluZyA9IHN1YnN0cmluZ0Jhc2UoKS0+dmFsdWVJ
bnRlcm5hbCgpOworICAgICAgICBpZiAoc3RyaW5nLmlzOEJpdCgpKQorICAgICAgICAgICAgU3Ry
aW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVyLCBzdHJpbmcuY2hhcmFjdGVyczgoKSArIHN1
YnN0cmluZ09mZnNldCgpLCBsZW5ndGgoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFN0
cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciwgc3RyaW5nLmNoYXJhY3RlcnMxNigpICsg
c3Vic3RyaW5nT2Zmc2V0KCksIGxlbmd0aCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICAKQEAgLTIxMCwxMSArMjA2LDExIEBAIEF0b21TdHJpbmcgSlNSb3BlU3RyaW5nOjpyZXNvbHZl
Um9wZVRvQXRvbVN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjCiAKICAgICBp
ZiAoaXM4Qml0KCkpIHsKICAgICAgICAgTENoYXIgYnVmZmVyW21heExlbmd0aEZvck9uU3RhY2tS
ZXNvbHZlXTsKLSAgICAgICAgcmVzb2x2ZVJvcGVJbnRlcm5hbDgoYnVmZmVyKTsKKyAgICAgICAg
cmVzb2x2ZVJvcGVJbnRlcm5hbChidWZmZXIpOwogICAgICAgICBjb252ZXJ0VG9Ob25Sb3BlKEF0
b21TdHJpbmdJbXBsOjphZGQoYnVmZmVyLCBsZW5ndGgoKSkpOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIFVDaGFyIGJ1ZmZlclttYXhMZW5ndGhGb3JPblN0YWNrUmVzb2x2ZV07Ci0gICAgICAgIHJl
c29sdmVSb3BlSW50ZXJuYWwxNihidWZmZXIpOworICAgICAgICByZXNvbHZlUm9wZUludGVybmFs
KGJ1ZmZlcik7CiAgICAgICAgIGNvbnZlcnRUb05vblJvcGUoQXRvbVN0cmluZ0ltcGw6OmFkZChi
dWZmZXIsIGxlbmd0aCgpKSk7CiAgICAgfQogCkBAIC0yNTUsMTQgKzI1MSwxNCBAQCBSZWZQdHI8
QXRvbVN0cmluZ0ltcGw+IEpTUm9wZVN0cmluZzo6cmVzb2x2ZVJvcGVUb0V4aXN0aW5nQXRvbVN0
cmluZyhKU0dsb2JhbE9iagogICAgIAogICAgIGlmIChpczhCaXQoKSkgewogICAgICAgICBMQ2hh
ciBidWZmZXJbbWF4TGVuZ3RoRm9yT25TdGFja1Jlc29sdmVdOwotICAgICAgICByZXNvbHZlUm9w
ZUludGVybmFsOChidWZmZXIpOworICAgICAgICByZXNvbHZlUm9wZUludGVybmFsKGJ1ZmZlcik7
CiAgICAgICAgIGlmIChSZWZQdHI8QXRvbVN0cmluZ0ltcGw+IGV4aXN0aW5nQXRvbVN0cmluZyA9
IEF0b21TdHJpbmdJbXBsOjpsb29rVXAoYnVmZmVyLCBsZW5ndGgoKSkpIHsKICAgICAgICAgICAg
IGNvbnZlcnRUb05vblJvcGUoKmV4aXN0aW5nQXRvbVN0cmluZyk7CiAgICAgICAgICAgICByZXR1
cm4gZXhpc3RpbmdBdG9tU3RyaW5nOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAg
VUNoYXIgYnVmZmVyW21heExlbmd0aEZvck9uU3RhY2tSZXNvbHZlXTsKLSAgICAgICAgcmVzb2x2
ZVJvcGVJbnRlcm5hbDE2KGJ1ZmZlcik7CisgICAgICAgIHJlc29sdmVSb3BlSW50ZXJuYWwoYnVm
ZmVyKTsKICAgICAgICAgaWYgKFJlZlB0cjxBdG9tU3RyaW5nSW1wbD4gZXhpc3RpbmdBdG9tU3Ry
aW5nID0gQXRvbVN0cmluZ0ltcGw6Omxvb2tVcChidWZmZXIsIGxlbmd0aCgpKSkgewogICAgICAg
ICAgICAgY29udmVydFRvTm9uUm9wZSgqZXhpc3RpbmdBdG9tU3RyaW5nKTsKICAgICAgICAgICAg
IHJldHVybiBleGlzdGluZ0F0b21TdHJpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1N0cmluZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdHJpbmcuaAppbmRleCBlZjE0OWM0YzE4YzU3Njg5YmNmMjFmNDdmNGVlODMxYjMzYTA1YTk0
Li43NTBiODc2MjY2YmIwMmIyMmVmOTllMzIxMDFjZTE4MDFkZTg2MWJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKQEAgLTYwOCw4ICs2MDgsNyBAQCBjbGFzcyBK
U1JvcGVTdHJpbmcgZmluYWwgOiBwdWJsaWMgSlNTdHJpbmcgewogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIENoYXJhY3RlclR5cGU+IHZvaWQgcmVzb2x2ZVJvcGVJbnRlcm5hbE5vU3Vic3RyaW5nKENo
YXJhY3RlclR5cGUqKSBjb25zdDsKICAgICBJZGVudGlmaWVyIHRvSWRlbnRpZmllcihKU0dsb2Jh
bE9iamVjdCopIGNvbnN0OwogICAgIHZvaWQgb3V0T2ZNZW1vcnkoSlNHbG9iYWxPYmplY3QqIG51
bGxPckdsb2JhbE9iamVjdEZvck9PTSkgY29uc3Q7Ci0gICAgdm9pZCByZXNvbHZlUm9wZUludGVy
bmFsOChMQ2hhciopIGNvbnN0OwotICAgIHZvaWQgcmVzb2x2ZVJvcGVJbnRlcm5hbDE2KFVDaGFy
KikgY29uc3Q7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gdm9pZCByZXNv
bHZlUm9wZUludGVybmFsKENoYXJhY3RlclR5cGUqKSBjb25zdDsKICAgICBTdHJpbmdWaWV3IHVu
c2FmZVZpZXcoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAgICBTdHJpbmdWaWV3V2l0aFVuZGVy
bHlpbmdTdHJpbmcgdmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKEpTR2xvYmFsT2JqZWN0KikgY29u
c3Q7CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggYThiOGZlZGZmN2M1ZmEyNmM4MDE2OTM2YTA1NjM5YTk1ZGQxODZiZC4uOTNkODdmYzVm
YmVhZWRjOTYzZjQ2YmYyZGY1YjA3NDA4MTU1YmUxMiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0wNC0w
NiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIFN1
YnN0cmluZyByZXNvbHZpbmcgc2hvdWxkIGNoZWNrIDhiaXQgLyAxNmJpdCBhZ2FpbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2Nzc1CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84OTI1MzM5MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy84Yml0LTE2Yml0LWF0b21pemUtY29udmVyc2lv
bi5qczogQWRkZWQuCisgICAgICAgIChtYWluLnY2NCk6CisgICAgICAgIChtYWluKToKKwogMjAy
Mi0wNC0wMSAgQW5nZWxvcyBPaWtvbm9tb3BvdWxvcyAgPGFuZ2Vsb3NAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBTa2lwIGZsYWt5IHRlc3Qgb24gbWlwcwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3MvOGJpdC0xNmJpdC1hdG9taXplLWNvbnZlcnNpb24uanMgYi9KU1Rlc3RzL3N0cmVzcy84Yml0
LTE2Yml0LWF0b21pemUtY29udmVyc2lvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjNlODY5NjZmZDRhM2Qw
NTQzMTkwODUzMzY4ZjE3MjEyNWZiOWQ1Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJl
c3MvOGJpdC0xNmJpdC1hdG9taXplLWNvbnZlcnNpb24uanMKQEAgLTAsMCArMSwxOCBAQAorZnVu
Y3Rpb24gbWFpbigpIHsKKyAgICBmb3IgKGxldCB2MjcgPSAwOyB2MjcgPCAxMDA7IHYyNysrKSB7
CisgICAgICAgIGNvbnN0IHY0NCA9IFswLDAsMS4xXTsKKyAgICAgICAgY29uc3QgdjYxID0gdjQ0
LnRvTG9jYWxlU3RyaW5nKCk7CisgICAgICAgIGNvbnN0IHY2MiA9IGV2YWwoTWF0aCk7CisgICAg
ICAgIHY2MyA9IHY2MS5zdWJzdHJpbmcodjYyLHYyNyk7CisKKyAgICAgICAgZnVuY3Rpb24gdjY0
KCkgeworICAgICAgICAgICAgaWYgKHY2MikgeworICAgICAgICAgICAgICAgIE1hdGhbdjYxXSA9
IFtdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY29uc3QgdjgyID0gKC0xLjApLl9fcHJv
dG9fXzsKKyAgICAgICAgICAgIGRlbGV0ZSB2ODJbdjYzXTsKKyAgICAgICAgfQorICAgICAgICB2
NjQoKTsKKyAgICB9Cit9CittYWluKCk7Cg==
</data>
<flag name="review"
          id="485210"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>