<?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>127902</bug_id>
          
          <creation_ts>2014-01-30 03:09:33 -0800</creation_ts>
          <short_desc>Fix the remaining regression caused by the jsCStack branch merge on Linux platforms</short_desc>
          <delta_ts>2016-09-05 00:22:27 -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>528+ (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>P1</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>127777</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbatyai.u-szeged</cc>
    
    <cc>ggaren</cc>
    
    <cc>gustavo</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>peavo</cc>
    
    <cc>zan</cc>
    
    <cc>zherczeg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>973679</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-01-30 03:09:33 -0800</bug_when>
    <thetext>After https://bugs.webkit.org/show_bug.cgi?id=127898 there are
still 2 failing jsc stress test:

** The following JSC stress test failures have been introduced:
	jsc-layout-tests.yaml/js/script-tests/function-apply-many-args.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/function-apply-many-args.js.layout-no-llint

Results for JSC stress tests:
    2 failures found.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974376</commentid>
    <comment_count>1</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-31 11:08:58 -0800</bug_when>
    <thetext>I only get useless backtraces when debugging this, even in debug builds. Not even anything disassemble-able.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974973</commentid>
    <comment_count>2</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-02-03 02:16:54 -0800</bug_when>
    <thetext>The problem appears to be in the JIT-compiled code for &apos;function g() { return f.apply(null, arguments); }&apos;.

Here&apos;s the backtrace:
#0  0x00007fffb2b0fabe in ?? ()
#1  0x00007ffff7ecd170 in ?? ()
#2  0x00007ffff7ecd170 in ?? ()
#3  0x00007ffff7eafd90 in ?? ()
#4  0x0000000000442960 in ?? ()
#5  0x00007fffffffa0b0 in ?? ()
#6  0x0000000000000000 in ?? ()

Registers:
rax            0x10001	65537
rbx            0x0	0
rcx            0x7ffffff7a050	140737487806544
rdx            0x7fffffef9fe0	140737487282144
rsi            0x7ffffff7a050	140737487806544
rdi            0x54fb00	5569280
rbp            0x7ffffff7a050	0x7ffffff7a050
rsp            0x7ffffff79fe0	0x7ffffff79fe0
r8             0x0	0
r9             0x101010101010101	72340172838076673
r10            0x7ffff747bd30	140737342061872
r11            0x44e828	4515880
r12            0x7ffff7eaff40	140737352761152
r13            0x7ffff7f0ffd0	140737353154512
r14            0xffff000000000000	-281474976710656
r15            0xffff000000000002	-281474976710654
rip            0x7fffb2b0fabe	0x7fffb2b0fabe
eflags         0x10287	[ CF PF SF IF RF ]
cs             0x33	51
ss             0x2b	43
ds             0x0	0
es             0x0	0
fs             0x0	0
gs             0x0	0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974974</commentid>
    <comment_count>3</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-02-03 02:19:18 -0800</bug_when>
    <thetext>Here&apos;s the disassembled code, with the point of crash highlighted.

Generated Baseline JIT code for g#DSCS4i:[0x54e2a0-&gt;0x7fffb0ade070, BaselineFunctionCall, 67], instruction count = 67
   Source: function g() { return f.apply(null, arguments); }
   Code at [0x7fffb2b0f8c0, 0x7fffb2b0feac):
          0x7fffb2b0f8c0: push %rbp
          0x7fffb2b0f8c1: mov %rsp, %rbp
          0x7fffb2b0f8c4: mov $0x54e2a0, %r11
          0x7fffb2b0f8ce: mov %r11, 0x10(%rbp)
          0x7fffb2b0f8d2: mov 0x30(%rbp), %rax
          0x7fffb2b0f8d6: mov %rax, 0x4fbf90
          0x7fffb2b0f8e0: lea -0x70(%rbp), %rdx
          0x7fffb2b0f8e4: mov $0x44e828, %r11
          0x7fffb2b0f8ee: cmp %rdx, (%r11)
          0x7fffb2b0f8f1: ja 0x7fffb2b0fdb0
          0x7fffb2b0f8f7: lea -0x70(%rbp), %rsp
          0x7fffb2b0f8fb: test $0xf, %spl
          0x7fffb2b0f8ff: jz 0x7fffb2b0f906
          0x7fffb2b0f905: int3 
          0x7fffb2b0f906: mov $0xffff000000000000, %r11
          0x7fffb2b0f910: cmp %r11, %r14
          0x7fffb2b0f913: jz 0x7fffb2b0f91a
          0x7fffb2b0f919: int3 
          0x7fffb2b0f91a: mov $0xffff000000000002, %r11
          0x7fffb2b0f924: cmp %r11, %r15
          0x7fffb2b0f927: jz 0x7fffb2b0f92e
          0x7fffb2b0f92d: int3 
          0x7fffb2b0f92e: cmp $0x989680, 0x28(%rbp)
          0x7fffb2b0f935: jb 0x7fffb2b0f93c
          0x7fffb2b0f93b: int3 
    [   0] enter             
          0x7fffb2b0f93c: mov $0xa, %r11
          0x7fffb2b0f946: mov %r11, -0x8(%rbp)
          0x7fffb2b0f94a: mov $0xa, %r11
          0x7fffb2b0f954: mov %r11, -0x10(%rbp)
          0x7fffb2b0f958: mov $0x1, 0x2c(%rbp)
          0x7fffb2b0f95f: mov $0x44cd08, %r11
          0x7fffb2b0f969: mov %rbp, (%r11)
          0x7fffb2b0f96c: mov %rbp, %rdi
          0x7fffb2b0f96f: mov $0x54fad8, %rsi
          0x7fffb2b0f979: mov $0x7ffff75a6300, %r11
          0x7fffb2b0f983: call %r11
          0x7fffb2b0f986: mov $0x44e838, %r11
          0x7fffb2b0f990: mov (%r11), %r11
          0x7fffb2b0f993: test %r11, %r11
          0x7fffb2b0f996: jnz 0x7fffb2b0fe83
    [   1] init_lazy_reg     loc1
          0x7fffb2b0f99c: mov $0x0, %r11
          0x7fffb2b0f9a6: mov %r11, -0x10(%rbp)
    [   3] init_lazy_reg     loc0
          0x7fffb2b0f9aa: mov $0x0, %r11
          0x7fffb2b0f9b4: mov %r11, -0x8(%rbp)
    [   5] touch_entry       
          0x7fffb2b0f9b8: mov $0x6, 0x2c(%rbp)
          0x7fffb2b0f9bf: mov $0x44cd08, %r11
          0x7fffb2b0f9c9: mov %rbp, (%r11)
          0x7fffb2b0f9cc: mov %rbp, %rdi
          0x7fffb2b0f9cf: mov $0x54fb00, %rsi
          0x7fffb2b0f9d9: mov $0x7ffff75a2310, %r11
          0x7fffb2b0f9e3: call %r11
          0x7fffb2b0f9e6: mov $0x44e838, %r11
          0x7fffb2b0f9f0: mov (%r11), %r11
          0x7fffb2b0f9f3: test %r11, %r11
          0x7fffb2b0f9f6: jnz 0x7fffb2b0fe83
    [   6] resolve_scope     loc2, f(@id0), 1&lt;ThrowIfNotFound|GlobalVar&gt;, 0
          0x7fffb2b0f9fc: mov $0x7ffff7f3f970, %rax
          0x7fffb2b0fa06: mov %rax, -0x18(%rbp)
    [  12] get_from_scope    loc3, loc2, f(@id0), 1&lt;ThrowIfNotFound|GlobalVar&gt;, &lt;structure&gt;, 4695632
          0x7fffb2b0fa0a: mov 0x47a650, %rax
          0x7fffb2b0fa14: mov %rax, -0x20(%rbp)
          0x7fffb2b0fa18: mov %rax, 0x5001e0
    [  20] get_by_id         loc4, loc3, apply(@id1)    predicting None
          0x7fffb2b0fa22: mov -0x20(%rbp), %rax
          0x7fffb2b0fa26: test %rax, %r15
          0x7fffb2b0fa29: jnz 0x7fffb2b0fcd4
          0x7fffb2b0fa2f: mov $0xd1e7beef, %r11
          0x7fffb2b0fa39: cmp %r11, (%rax)
          0x7fffb2b0fa3c: jnz 0x7fffb2b0fcd4
          0x7fffb2b0fa42: mov 0x8(%rax), %rax
          0x7fffb2b0fa46: mov 0x0(%rax), %rax
          0x7fffb2b0fa4a: mov %rax, 0x500200
          0x7fffb2b0fa54: mov %rax, -0x28(%rbp)
    [  29] jneq_ptr          loc4, 1 (0x7ffff7ecff70), 17(-&gt;46)
          0x7fffb2b0fa58: mov -0x28(%rbp), %rax
          0x7fffb2b0fa5c: mov $0x7ffff7ecff70, %r11
          0x7fffb2b0fa66: cmp %r11, %rax
          0x7fffb2b0fa69: jnz 0x7fffb2b0fbe1
    [  33] mov               loc5, loc3
          0x7fffb2b0fa6f: mov -0x20(%rbp), %rax
          0x7fffb2b0fa73: mov %rax, -0x30(%rbp)
    [  36] call_varargs      loc4, loc5, Null(@k0), loc1, -7    predicting None
          0x7fffb2b0fa77: mov -0x10(%rbp), %rax
          0x7fffb2b0fa7b: test %rax, %rax
          0x7fffb2b0fa7e: jnz 0x7fffb2b0faf3
          0x7fffb2b0fa84: mov 0x28(%rbp), %eax
          0x7fffb2b0fa87: cmp $0x10001, %eax
          0x7fffb2b0fa8d: ja 0x7fffb2b0faf3
          0x7fffb2b0fa93: mov %rax, %rdx
          0x7fffb2b0fa96: add $0xd, %rdx
          0x7fffb2b0fa9a: inc %rdx
          0x7fffb2b0fa9d: and $0xfffffffffffffffe, %rdx
          0x7fffb2b0faa1: neg %rdx
          0x7fffb2b0faa4: shl $0x3, %rdx
          0x7fffb2b0faa8: add %rbp, %rdx
          0x7fffb2b0faab: mov $0x44e828, %r11
          0x7fffb2b0fab5: cmp %rdx, (%r11)
          0x7fffb2b0fab8: ja 0x7fffb2b0faf3
========&gt; 0x7fffb2b0fabe: mov %eax, 0x28(%rdx)
          0x7fffb2b0fac1: mov $0x2, %rcx
          0x7fffb2b0facb: mov %rcx, 0x30(%rdx)
          0x7fffb2b0facf: movsxd %eax, %rax
          0x7fffb2b0fad2: dec %rax
          0x7fffb2b0fad5: jz 0x7fffb2b0fb8a
          0x7fffb2b0fadb: mov 0x30(%rbp,%rax,8), %rcx
          0x7fffb2b0fae0: mov %rcx, 0x30(%rdx,%rax,8)
          0x7fffb2b0fae5: dec %rax
          0x7fffb2b0fae8: jnz 0x7fffb2b0fadb
          0x7fffb2b0faee: jmp 0x7fffb2b0fb8a
          0x7fffb2b0faf3: mov -0x10(%rbp), %rdx
          0x7fffb2b0faf7: mov %rdx, %rsi
          0x7fffb2b0fafa: mov $0xfffffff9, %edx
          0x7fffb2b0faff: mov %rbp, %rdi
          0x7fffb2b0fb02: mov $0x25, 0x2c(%rbp)
          0x7fffb2b0fb09: mov $0x44cd08, %r11
          0x7fffb2b0fb13: mov %rbp, (%r11)
          0x7fffb2b0fb16: mov $0x7ffff747f050, %r11
          0x7fffb2b0fb20: call %r11
          0x7fffb2b0fb23: mov $0x44e838, %r11
          0x7fffb2b0fb2d: mov (%r11), %r11
          0x7fffb2b0fb30: test %r11, %r11
          0x7fffb2b0fb33: jnz 0x7fffb2b0fe83
          0x7fffb2b0fb39: mov %rax, %rsp
          0x7fffb2b0fb3c: mov $0x2, %rdx
          0x7fffb2b0fb46: mov -0x10(%rbp), %rcx
          0x7fffb2b0fb4a: mov %rax, %rsi
          0x7fffb2b0fb4d: mov %rbp, %rdi
          0x7fffb2b0fb50: mov $0x25, 0x2c(%rbp)
          0x7fffb2b0fb57: mov $0x44cd08, %r11
          0x7fffb2b0fb61: mov %rbp, (%r11)
          0x7fffb2b0fb64: mov $0x7ffff747f0d0, %r11
          0x7fffb2b0fb6e: call %r11
          0x7fffb2b0fb71: mov $0x44e838, %r11
          0x7fffb2b0fb7b: mov (%r11), %r11
          0x7fffb2b0fb7e: test %r11, %r11
          0x7fffb2b0fb81: jnz 0x7fffb2b0fe83
          0x7fffb2b0fb87: mov %rax, %rdx
          0x7fffb2b0fb8a: lea 0x10(%rdx), %rsp
          0x7fffb2b0fb8e: mov $0x24, 0x2c(%rbp)
          0x7fffb2b0fb95: mov -0x30(%rbp), %rax
          0x7fffb2b0fb99: mov %rax, 0x10(%rsp)
          0x7fffb2b0fb9e: mov $0x0, %r11
          0x7fffb2b0fba8: cmp %r11, %rax
          0x7fffb2b0fbab: jnz 0x7fffb2b0fd46
          0x7fffb2b0fbb1: mov 0x20(%rax), %rcx
          0x7fffb2b0fbb5: mov %rcx, 0x8(%rsp)
          0x7fffb2b0fbba: call 0x7fffb2b0fbbf
          0x7fffb2b0fbbf: lea -0x70(%rbp), %rsp
          0x7fffb2b0fbc3: test $0xf, %spl
          0x7fffb2b0fbc7: jz 0x7fffb2b0fbce
          0x7fffb2b0fbcd: int3 
          0x7fffb2b0fbce: mov %rax, 0x500220
          0x7fffb2b0fbd8: mov %rax, -0x28(%rbp)
    [  44] jmp               21(-&gt;65)
          0x7fffb2b0fbdc: jmp 0x7fffb2b0fcc0
    [  46] mov               loc7, loc3
          0x7fffb2b0fbe1: mov -0x20(%rbp), %rax
          0x7fffb2b0fbe5: mov %rax, -0x40(%rbp)
    [  49] mov               loc6, Null(@k0)
          0x7fffb2b0fbe9: mov $0x2, %rax
          0x7fffb2b0fbf3: mov %rax, -0x38(%rbp)
    [  52] create_arguments  loc1
          0x7fffb2b0fbf7: cmp $0x0, -0x10(%rbp)
          0x7fffb2b0fbfc: jnz 0x7fffb2b0fc44
          0x7fffb2b0fc02: mov %rbp, %rdi
          0x7fffb2b0fc05: mov $0x35, 0x2c(%rbp)
          0x7fffb2b0fc0c: mov $0x44cd08, %r11
          0x7fffb2b0fc16: mov %rbp, (%r11)
          0x7fffb2b0fc19: mov $0x7ffff747e140, %r11
          0x7fffb2b0fc23: call %r11
          0x7fffb2b0fc26: mov $0x44e838, %r11
          0x7fffb2b0fc30: mov (%r11), %r11
          0x7fffb2b0fc33: test %r11, %r11
          0x7fffb2b0fc36: jnz 0x7fffb2b0fe83
          0x7fffb2b0fc3c: mov %rax, -0x10(%rbp)
          0x7fffb2b0fc40: mov %rax, -0x8(%rbp)
    [  54] mov               loc5, loc1
          0x7fffb2b0fc44: mov -0x10(%rbp), %rax
          0x7fffb2b0fc48: mov %rax, -0x30(%rbp)
    [  57] call              loc4, loc4, 3, 14 status(Not Set)    Original; predicting None
          0x7fffb2b0fc4c: mov -0x40(%rbp), %rax
          0x7fffb2b0fc50: test %rax, %r15
          0x7fffb2b0fc53: jnz 0x7fffb2b0fc66
          0x7fffb2b0fc59: mov (%rax), %rax
          0x7fffb2b0fc5c: mov %rax, 0x500f98
          0x7fffb2b0fc66: lea -0x60(%rbp), %rsp
          0x7fffb2b0fc6a: mov $0x3, 0x18(%rsp)
          0x7fffb2b0fc72: mov $0x39, 0x2c(%rbp)
          0x7fffb2b0fc79: mov -0x28(%rbp), %rax
          0x7fffb2b0fc7d: mov %rax, 0x10(%rsp)
          0x7fffb2b0fc82: mov $0x0, %r11
          0x7fffb2b0fc8c: cmp %r11, %rax
          0x7fffb2b0fc8f: jnz 0x7fffb2b0fd7b
          0x7fffb2b0fc95: mov 0x20(%rax), %rcx
          0x7fffb2b0fc99: mov %rcx, 0x8(%rsp)
          0x7fffb2b0fc9e: call 0x7fffb2b0fca3
          0x7fffb2b0fca3: lea -0x70(%rbp), %rsp
          0x7fffb2b0fca7: test $0xf, %spl
          0x7fffb2b0fcab: jz 0x7fffb2b0fcb2
          0x7fffb2b0fcb1: int3 
          0x7fffb2b0fcb2: mov %rax, 0x500240
          0x7fffb2b0fcbc: mov %rax, -0x28(%rbp)
    [  65] ret               loc4
          0x7fffb2b0fcc0: mov -0x28(%rbp), %rax
          0x7fffb2b0fcc4: test $0xf, %spl
          0x7fffb2b0fcc8: jz 0x7fffb2b0fccf
          0x7fffb2b0fcce: int3 
          0x7fffb2b0fccf: mov %rbp, %rsp
          0x7fffb2b0fcd2: pop %rbp
          0x7fffb2b0fcd3: ret 
    (End Of Main Path)
    (S) [  20] get_by_id         loc4, loc3, apply(@id1)    predicting None
          0x7fffb2b0fcd4: mov %rax, %rdx
          0x7fffb2b0fcd7: mov $0x500380, %rsi
          0x7fffb2b0fce1: mov $0x4533b0, %rcx
          0x7fffb2b0fceb: mov %rbp, %rdi
          0x7fffb2b0fcee: mov $0x15, 0x2c(%rbp)
          0x7fffb2b0fcf5: mov $0x44cd08, %r11
          0x7fffb2b0fcff: mov %rbp, (%r11)
          0x7fffb2b0fd02: mov $0x7ffff74793e0, %r11
          0x7fffb2b0fd0c: call %r11
          0x7fffb2b0fd0f: mov $0x44e838, %r11
          0x7fffb2b0fd19: mov (%r11), %r11
          0x7fffb2b0fd1c: test %r11, %r11
          0x7fffb2b0fd1f: jnz 0x7fffb2b0fe83
          0x7fffb2b0fd25: mov %rax, 0x500200
          0x7fffb2b0fd2f: mov %rax, -0x28(%rbp)
          0x7fffb2b0fd33: mov $0x500514, %r11
          0x7fffb2b0fd3d: add $0x1, (%r11)
          0x7fffb2b0fd41: jmp 0x7fffb2b0fa58
    (S) [  36] call_varargs      loc4, loc5, Null(@k0), loc1, -7    predicting None
          0x7fffb2b0fd46: call 0x7fffb2af3960
          0x7fffb2b0fd4b: lea -0x70(%rbp), %rsp
          0x7fffb2b0fd4f: test $0xf, %spl
          0x7fffb2b0fd53: jz 0x7fffb2b0fd5a
          0x7fffb2b0fd59: int3 
          0x7fffb2b0fd5a: mov %rax, 0x500220
          0x7fffb2b0fd64: mov %rax, -0x28(%rbp)
          0x7fffb2b0fd68: mov $0x50051c, %r11
          0x7fffb2b0fd72: add $0x1, (%r11)
          0x7fffb2b0fd76: jmp 0x7fffb2b0fbdc
    (S) [  57] call              loc4, loc4, 3, 14 status(Not Set)    Original; predicting None
          0x7fffb2b0fd7b: call 0x7fffb2af3960
          0x7fffb2b0fd80: lea -0x70(%rbp), %rsp
          0x7fffb2b0fd84: test $0xf, %spl
          0x7fffb2b0fd88: jz 0x7fffb2b0fd8f
          0x7fffb2b0fd8e: int3 
          0x7fffb2b0fd8f: mov %rax, 0x500240
          0x7fffb2b0fd99: mov %rax, -0x28(%rbp)
          0x7fffb2b0fd9d: mov $0x500524, %r11
          0x7fffb2b0fda7: add $0x1, (%r11)
          0x7fffb2b0fdab: jmp 0x7fffb2b0fcc0
    (End Of Slow Path)
          0x7fffb2b0fdb0: mov $0x54e2a0, %rsi
          0x7fffb2b0fdba: mov %rbp, %rdi
          0x7fffb2b0fdbd: mov $0x1, 0x2c(%rbp)
          0x7fffb2b0fdc4: mov $0x44cd08, %r11
          0x7fffb2b0fdce: mov %rbp, (%r11)
          0x7fffb2b0fdd1: mov $0x7ffff7479000, %r11
          0x7fffb2b0fddb: call %r11
          0x7fffb2b0fdde: mov $0x44e838, %r11
          0x7fffb2b0fde8: mov (%r11), %r11
          0x7fffb2b0fdeb: test %r11, %r11
          0x7fffb2b0fdee: jnz 0x7fffb2b0fe7a
          0x7fffb2b0fdf4: mov $0x54e2e2, %r11
          0x7fffb2b0fdfe: mov $0x0, (%r11)
          0x7fffb2b0fe02: push %rbp
          0x7fffb2b0fe03: mov %rsp, %rbp
          0x7fffb2b0fe06: mov $0x54e2a0, %r11
          0x7fffb2b0fe10: mov %r11, 0x10(%rbp)
          0x7fffb2b0fe14: mov 0x28(%rbp), %edx
          0x7fffb2b0fe17: cmp $0x1, %edx
          0x7fffb2b0fe1a: jae 0x7fffb2b0f8d2
          0x7fffb2b0fe20: mov %rbp, %rdi
          0x7fffb2b0fe23: mov $0x1, 0x2c(%rbp)
          0x7fffb2b0fe2a: mov $0x44cd08, %r11
          0x7fffb2b0fe34: mov %rbp, (%r11)
          0x7fffb2b0fe37: mov $0x7ffff74790a0, %r11
          0x7fffb2b0fe41: call %r11
          0x7fffb2b0fe44: mov $0x44e838, %r11
          0x7fffb2b0fe4e: mov (%r11), %r11
          0x7fffb2b0fe51: test %r11, %r11
          0x7fffb2b0fe54: jnz 0x7fffb2b0fe7a
          0x7fffb2b0fe5a: test %eax, %eax
          0x7fffb2b0fe5c: jz 0x7fffb2b0f8d2
          0x7fffb2b0fe62: mov $0x472600, %rsi
          0x7fffb2b0fe6c: mov (%rsi,%rax,8), %rsi
          0x7fffb2b0fe70: call 0x7fffb2afd2a0
          0x7fffb2b0fe75: jmp 0x7fffb2b0f8d2
          0x7fffb2b0fe7a: mov 0x0(%rbp), %rsi
          0x7fffb2b0fe7e: jmp 0x7fffb2b0fe86
          0x7fffb2b0fe83: mov %rbp, %rsi
          0x7fffb2b0fe86: mov $0x442960, %rdi
          0x7fffb2b0fe90: mov $0x7ffff747fe10, %r11
          0x7fffb2b0fe9a: call %r11
          0x7fffb2b0fe9d: mov $0x44e750, %rdx
          0x7fffb2b0fea7: mov (%rdx), %rdx
          0x7fffb2b0feaa: jmp %rdx</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984327</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-02-25 08:35:12 -0800</bug_when>
    <thetext>Could you possibly give use any hint what can be the problem?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984342</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-02-25 09:16:31 -0800</bug_when>
    <thetext>It&apos;s clear that something has gone wrong in the part of call_varargs that&apos;s responsible for copying a variable list of arguments onto the stack.

Given that this test uses &quot;many args&quot;, it&apos;s possible that we&apos;ve overflowed the stack, but our stack check has somehow failed:

stack check:
          0x7fffb2b0faa8: add %rbp, %rdx
          0x7fffb2b0faab: mov $0x44e828, %r11
          0x7fffb2b0fab5: cmp %rdx, (%r11)
          0x7fffb2b0fab8: ja 0x7fffb2b0faf3
crash:
          0x7fffb2b0fabe: mov %eax, 0x28(%rdx)

%rdx is near %rbp and %rsp, but substantially higher:
rdx            0x7fffffef9fe0    140737487282144
rbp            0x7ffffff7a050    0x7ffffff7a050
rsp            0x7ffffff79fe0    0x7ffffff79fe0

It does seem like we&apos;re checking the wrong thing here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984344</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-02-25 09:20:16 -0800</bug_when>
    <thetext>&gt; %rdx is near %rbp and %rsp, but substantially higher:

*lower*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984345</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-02-25 09:21:32 -0800</bug_when>
    <thetext>In your debugging session, can you print out the stack limit values in the VM, and compare them to the value of %rdx, and also compare them to the value of the OS&apos;s view of the end of the stack region in memory?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984350</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-02-25 09:24:32 -0800</bug_when>
    <thetext>You didn&apos;t say what kind of fault you&apos;re taking, but I&apos;ll assume some kind of set or bus fault.

A quick look at the source (JITCall.cpp::compileLoadVarargs) and disassembly and I&apos;d say we are in the &quot;if (canOptimize)&quot; case since we are using arguments.  I&apos;ve mixed the source and assembly together.  The faulting line is when we set the callee&apos;s arg count from the caller&apos;s arg count.  Before that, we have made space on the stack for the callee frame (in rdx / regT1) by subtracting the size of the new frame from bp.  The difference between the caller frame pointer (rbp) and callee frame pointer (rdx) is slightly more than .5MB.  I wonder if the stack limit check is working as intended.  If it isn&apos;t, you could be exceeding the stack.  For example on Mac, we expect that this particular test, g.apply(null, new Array(65537)) to throw a stack size exceeded exception.

I&apos;ll also agree that function-apply-many-args.js needs work.  The array sizes that are elected to work and those that we expect to exceed the stake are now dependent on the native stack size of each platform and not on the stack size we allocate.  Saying that, JSC shouldn&apos;t crash on but throw the exception.

Look at what is in VM::m_jsStackLimit (0x44e828 for this code block, but different for each VM).  Looking at this, I see a minor bug, but I don&apos;t think it affects you.  We are using m_jsStackLimit and not m_stackLimit for the stack check.  This is fine if you use the standard LLInt, but is broken if you use the LLInt C Loop.  I&apos;ll file another bug and take care of that.

[  36] call_varargs      loc4, loc5, Null(@k0), loc1, -7    predicting None

    if (canOptimize) {
        emitGetVirtualRegister(arguments, regT0);
0x7fffb2b0fa77: mov -0x10(%rbp), %rax

        slowCase.append(branch64(NotEqual, regT0, TrustedImm64(JSValue::encode(JSValue()))));
0x7fffb2b0fa7b: test %rax, %rax
0x7fffb2b0fa7e: jnz 0x7fffb2b0faf3

        emitGetFromCallFrameHeader32(JSStack::ArgumentCount, regT0);
0x7fffb2b0fa84: mov 0x28(%rbp), %eax

        slowCase.append(branch32(Above, regT0, TrustedImm32(Arguments::MaxArguments + 1)));
0x7fffb2b0fa87: cmp $0x10001, %eax
0x7fffb2b0fa8d: ja 0x7fffb2b0faf3

        // regT0: argumentCountIncludingThis
        move(regT0, regT1);
0x7fffb2b0fa93: mov %rax, %rdx

        add64(TrustedImm32(-firstFreeRegister + JSStack::CallFrameHeaderSize), regT1);
0x7fffb2b0fa96: add $0xd, %rdx

        // regT1 now has the required frame size in Register units
        // Round regT1 to next multiple of stackAlignmentRegisters()
        add64(TrustedImm32(stackAlignmentRegisters() - 1), regT1);
0x7fffb2b0fa9a: inc %rdx

        and64(TrustedImm32(~(stackAlignmentRegisters() - 1)), regT1);
0x7fffb2b0fa9d: and $0xfffffffffffffffe, %rdx

        neg64(regT1);
0x7fffb2b0faa1: neg %rdx

        lshift64(TrustedImm32(3), regT1);
0x7fffb2b0faa4: shl $0x3, %rdx

        addPtr(callFrameRegister, regT1);
0x7fffb2b0faa8: add %rbp, %rdx

        // regT1: newCallFrame

        slowCase.append(branchPtr(Above, AbsoluteAddress(m_vm-&gt;addressOfJSStackLimit()), regT1));
0x7fffb2b0faab: mov $0x44e828, %r11
0x7fffb2b0fab5: cmp %rdx, (%r11)
0x7fffb2b0fab8: ja 0x7fffb2b0faf3

        // Initialize ArgumentCount.
        store32(regT0, Address(regT1, JSStack::ArgumentCount * static_cast&lt;int&gt;(sizeof(Register)) + OBJECT_OFFSETOF(EncodedValueDescriptor, asBits.payload)));
========&gt; 0x7fffb2b0fabe: mov %eax, 0x28(%rdx)

        // Initialize &apos;this&apos;.
        emitGetVirtualRegister(thisValue, regT2);
0x7fffb2b0fac1: mov $0x2, %rcx

        store64(regT2, Address(regT1, CallFrame::thisArgumentOffset() * static_cast&lt;int&gt;(sizeof(Register))));
0x7fffb2b0facb: mov %rcx, 0x30(%rdx)

...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984360</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-02-25 09:40:41 -0800</bug_when>
    <thetext>Filed https://bugs.webkit.org/show_bug.cgi?id=129314 to cover the issue using m_jsStackLimit and not m_stackLimit for the stack check for the baseline and DFG JITs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984386</commentid>
    <comment_count>10</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-02-25 10:16:53 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Look at what is in VM::m_jsStackLimit (0x44e828 for this code block, but different for each VM).  Looking at this, I see a minor bug, but I don&apos;t think it affects you.  We are using m_jsStackLimit and not m_stackLimit for the stack check.  This is fine if you use the standard LLInt, but is broken if you use the LLInt C Loop.  I&apos;ll file another bug and take care of that.

What is the issue?  On JIT builds, m_jsStackLimit and m_stackLimit are identical because they are in a union (by design).  On C loop LLINT, they are distinct fields in a struct by design because the JS stack is not on the C stack, and JIT code is not executed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984402</commentid>
    <comment_count>11</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-02-25 11:01:40 -0800</bug_when>
    <thetext>Ossy, can you provide the svn revision # that you’re seeing this on?  Also, is this on 32-bit or 64-bit?

I see 2 jsc stress test failures on 32-bit x86 on Mac, but not the same one as the ones in this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984411</commentid>
    <comment_count>12</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-02-25 11:33:05 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; I see 2 jsc stress test failures on 32-bit x86 on Mac, but not the same one as the ones in this bug.

FYI, ref: https://bugs.webkit.org/show_bug.cgi?id=129318</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984519</commentid>
    <comment_count>13</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-02-25 15:54:54 -0800</bug_when>
    <thetext>WTF::StackBounds::initialize() sets up:
- origin at 0x7ffffffff000,
- bound at  0x7fffff7ff000
for 8MB in size.

APIEntryShim in jsc.cpp[1], through JSLock, raises the bound to 0x7fffffc1df20 by calculating the recursion limit for the user stack that starts at 0x7fffffffdc30, is 4MB in size and with the reserved zone 128kB in size. The bound is the address to which m_stackLimit points at the time of crash, with m_stackLimit address stored in the %r11 register.


[1] http://trac.webkit.org/browser/trunk/Source/JavaScriptCore/jsc.cpp#L1076</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984521</commentid>
    <comment_count>14</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-02-25 16:02:19 -0800</bug_when>
    <thetext>&gt; WTF::StackBounds::initialize() sets up:
&gt; - origin at 0x7ffffffff000,
&gt; - bound at  0x7fffff7ff000
&gt; for 8MB in size.

0x7fffffef9fe0 is well above 0x7fffff7ff000, so we have not overflowed the value set by WTF::StackBounds. But is that value actually correct? Can you double-check with some system tool to see what the actual VM mapping for the main thread&apos;s stack is?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984539</commentid>
    <comment_count>15</comment_count>
      <attachid>225196</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-02-25 16:39:41 -0800</bug_when>
    <thetext>Created attachment 225196
Debugging data - info proc all, instructions, registers with ToT

This text file contains GDB output of the `info proc all` command. I hope that properly represents the requested memory mappings.

There&apos;s also the call_varargs instruction list and register values I produced with a ToT build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984544</commentid>
    <comment_count>16</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-02-25 16:48:06 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; Created an attachment (id=225196) [details]
&gt; Debugging data - info proc all, instructions, registers with ToT
&gt; 
&gt; This text file contains GDB output of the `info proc all` command. I hope that properly represents the requested memory mappings.
&gt; 
&gt; There&apos;s also the call_varargs instruction list and register values I produced with a ToT build.

In the attachment, the memory map shows:
          Start Addr           End Addr       Size     Offset objfile
      0x7ffffff7b000     0x7ffffffff000    0x84000        0x0 [stack]

And the registers show:
Registers:
rdx            0x7fffffefc380	140737487291264
rbp            0x7ffffff7c400	0x7ffffff7c400
rsp            0x7ffffff7c380	0x7ffffff7c380

rdx - 0x7fffffefc380 - Isn&apos;t part of the mapped address space.  The current stack allocation isn&apos;t big enough for this call.

The value pointed to by VM::m_jsStackLimit is also outside of the allocated stack area.
%r11:
0x4537c0:	0x00007fffffc1df20

Could it be that when VM::m_jsStackLimit was updated, the stack allocation wasn&apos;t increased?  Or maybe VM:m_jsStack shouldn&apos;t have been updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985074</commentid>
    <comment_count>17</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-02-27 01:09:06 -0800</bug_when>
    <thetext>When running the test case with LLInt enabled the stack does get allocated down to 0x7fffffefc000 for a size just over a megabyte, so I reckon that might be the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986087</commentid>
    <comment_count>18</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-03-02 08:28:35 -0800</bug_when>
    <thetext>Disabling the canOptimize branch at build-time in JIT::compileLoadVarargs() avoids the problem, but is obviously not the solution.

I believe the generated JIT code for &apos;function g() { return f.apply(null, arguments); }&apos; is missing the create_arguments opcode in the optimized path. Modifying the source to &apos;function g() { arguments; return f.apply(null, arguments); }&apos; (as is the case with the h() function in the function-apply-many-args.js file) includes that opcode through BytecodeGenerator::local()[1] (via BytecodeGenerator::createArgumentsIfNecessary()) [2]. 

Calling BytecodeGenerator::createArgumentsIfNecessary() from BytecodeGenerator::emitCallVarargs()[3] fixes this, generating create_arguments which enables the canOptimize branch to function properly, and removing the crashes. Does that make sense?

[1] http://trac.webkit.org/browser/trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp#L1168
[2] http://trac.webkit.org/browser/trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp#L1613
[3] http://trac.webkit.org/browser/trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp#L1789</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986406</commentid>
    <comment_count>19</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-03-03 10:55:05 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; Disabling the canOptimize branch at build-time in JIT::compileLoadVarargs() avoids the problem, but is obviously not the solution.
&gt; 
&gt; I believe the generated JIT code for &apos;function g() { return f.apply(null, arguments); }&apos; is missing the create_arguments opcode in the optimized path. Modifying the source to &apos;function g() { arguments; return f.apply(null, arguments); }&apos; (as is the case with the h() function in the function-apply-many-args.js file) includes that opcode through BytecodeGenerator::local()[1] (via BytecodeGenerator::createArgumentsIfNecessary()) [2]. 
&gt; 
&gt; Calling BytecodeGenerator::createArgumentsIfNecessary() from BytecodeGenerator::emitCallVarargs()[3] fixes this, generating create_arguments which enables the canOptimize branch to function properly, and removing the crashes. Does that make sense?
&gt; 
&gt; [1] http://trac.webkit.org/browser/trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp#L1168
&gt; [2] http://trac.webkit.org/browser/trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp#L1613
&gt; [3] http://trac.webkit.org/browser/trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp#L1789

f.apply(thing, arguments) should not instantiate the arguments object -- it should essentially just be doing a move</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986451</commentid>
    <comment_count>20</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-03-03 12:43:16 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; Disabling the canOptimize branch at build-time in JIT::compileLoadVarargs() avoids the problem, but is obviously not the solution.
&gt; &gt; 
&gt; &gt; I believe the generated JIT code for &apos;function g() { return f.apply(null, arguments); }&apos; is missing the create_arguments opcode in the optimized path. Modifying the source to &apos;function g() { arguments; return f.apply(null, arguments); }&apos; (as is the case with the h() function in the function-apply-many-args.js file) includes that opcode through BytecodeGenerator::local()[1] (via BytecodeGenerator::createArgumentsIfNecessary()) [2]. 
&gt; &gt; 
&gt; &gt; Calling BytecodeGenerator::createArgumentsIfNecessary() from BytecodeGenerator::emitCallVarargs()[3] fixes this, generating create_arguments which enables the canOptimize branch to function properly, and removing the crashes. Does that make sense?
&gt; &gt; 
&gt; &gt; [1] http://trac.webkit.org/browser/trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp#L1168
&gt; &gt; [2] http://trac.webkit.org/browser/trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp#L1613
&gt; &gt; [3] http://trac.webkit.org/browser/trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp#L1789
&gt; 
&gt; f.apply(thing, arguments) should not instantiate the arguments object -- it should essentially just be doing a move

But is the canOptimize branch in JIT::compileLoadVarargs() expecting to operate on an existing arguments object or can it optimize without it? A move is obviously ideal, but there&apos;s nothing to move.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986456</commentid>
    <comment_count>21</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-03-03 12:47:10 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; I wonder if the stack limit check is working as intended.  If it isn&apos;t, you could be exceeding the stack.  For example on Mac, we expect that this particular test, g.apply(null, new Array(65537)) to throw a stack size exceeded exception.
&gt; 

The crashing test case is actually &apos;g.apply(null, new Array(65536))&apos;, so it just passes the MaxArguments + 1 test and is expected to succeed (i.e. not throw an exception).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986478</commentid>
    <comment_count>22</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-03-03 13:35:58 -0800</bug_when>
    <thetext>The key question here is, &quot;Why does m_jsStackLimit hold a value that is outside the thread&apos;s allocated stack space?&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004683</commentid>
    <comment_count>23</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2014-04-28 11:59:54 -0700</bug_when>
    <thetext>I have noticed that on the GTK ARM buildbot the number of failures are around 180:

http://build.webkit.org/builders/GTK%20Linux%20ARM%20Release/builds/1678/steps/jscore-test

The EFL ARM buildbots are not executing the build step jscore-test, so I don&apos;t know if this is something specific of the GTK ARM buildbot, or is something more general related with the ARM platform.


Can any of you try the run-jsc-stress-tests tests on an ARM board?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004907</commentid>
    <comment_count>24</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-04-29 05:15:49 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; I have noticed that on the GTK ARM buildbot the number of failures are around 180:
&gt; 
&gt; http://build.webkit.org/builders/GTK%20Linux%20ARM%20Release/builds/1678/steps/jscore-test
&gt; 
&gt; The EFL ARM buildbots are not executing the build step jscore-test, so I don&apos;t know if this is something specific of the GTK ARM buildbot, or is something more general related with the ARM platform.
&gt; 
&gt; 
&gt; Can any of you try the run-jsc-stress-tests tests on an ARM board?

No it isn&apos;t GTK specific bug, we have similar failures on EFL too,
check the EFL Thumb2 tester bot: http://build.webkit.sed.hu/builders/EFL%20ARMv7%20Linux%20Release%20%28Build%29/builds/3882

This is a regression caused by merging the CStack branch, we started
investigating it, but can&apos;t find the root of the problem yet. I&apos;ll
file a bug report today and summarize our results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007965</commentid>
    <comment_count>25</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-05-09 06:18:07 -0700</bug_when>
    <thetext>new bug report for the ARM Thumb2 __proto__ bug: https://bugs.webkit.org/show_bug.cgi?id=132740</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010209</commentid>
    <comment_count>26</comment_count>
      <attachid>231696</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-05-19 10:00:45 -0700</bug_when>
    <thetext>Created attachment 231696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010246</commentid>
    <comment_count>27</comment_count>
      <attachid>231696</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-05-19 11:34:48 -0700</bug_when>
    <thetext>Comment on attachment 231696
Patch

Can you write this to share its implementation with the Windows version? Both platforms have the same problem, and it&apos;s not so great that they currently use slightly different solutions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010800</commentid>
    <comment_count>28</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2014-05-21 11:10:00 -0700</bug_when>
    <thetext>If someone wonders why the JSC tests are now green on the GTK or EFL bots please look at: https://bugs.webkit.org/show_bug.cgi?id=133149</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017422</commentid>
    <comment_count>29</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-06-22 11:47:03 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; (From update of attachment 231696 [details])
&gt; Can you write this to share its implementation with the Windows version? Both platforms have the same problem, and it&apos;s not so great that they currently use slightly different solutions.

Unfortunately I don&apos;t have access to a Windows system to test this out. The main issue I have with the workaround that landed in bug #129429 is that it&apos;s run every time the VM instance has its stack limit updated. Linux ports can do this only once per thread -- not sure about Windows. The Linux-specific solution also has a quite delicate implementation as it has to work under both Clang and GCC and it might not be suitable for MSVC.

Also CC-ing peavo who implemented the workaround for Windows and might be able to test out this approach.

Anyway, I&apos;d like for this to finally land and that a single solution is refined afterwards, if possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017580</commentid>
    <comment_count>30</comment_count>
      <attachid>231696</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-06-23 09:49:33 -0700</bug_when>
    <thetext>Comment on attachment 231696
Patch

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

Pretty close.  Just a few items.

&gt; Source/WTF/wtf/StackBounds.cpp:103
&gt; +// In the case of really big stacks we only initialize first 256MB of it. Such sizes are achievable if the stack

256MB seems huge.  Shouldn&apos;t this be Options::maxPerThreadStackUsage?

&gt; Source/WTF/wtf/StackBounds.cpp:112
&gt; +#if COMPILER(GCC) &amp;&amp; !COMPILER(CLANG)
&gt; +#define UNOPTIMIZED __attribute__((optimize(&quot;O0&quot;)))
&gt; +#else
&gt; +#define UNOPTIMIZED
&gt; +#endif

Please add a FIXME here, referencing a new webkit bug and possibly a gcc bug number?

&gt; Source/WTF/wtf/StackBounds.cpp:116
&gt; +// builds by using the GCC-specific attribute. Passing a reference into this function prevents both GCC and Clang to
&gt; +// optimize away the first initializeStack() call in StackBounds::initialize().

Change &quot;to optimize&quot; to &quot;from optimizing&quot;

&gt; Source/WTF/wtf/StackBounds.cpp:123
&gt; +        stackInitialized = true;

Why can&apos;t this just be a return?  If it is a return, then I don&apos;t think we need &quot;stackInitialized&quot; except maybe to prevent the compiler optimizing away issue noted above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017586</commentid>
    <comment_count>31</comment_count>
      <attachid>231696</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-06-23 10:00:47 -0700</bug_when>
    <thetext>Comment on attachment 231696
Patch

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

&gt;&gt; Source/WTF/wtf/StackBounds.cpp:103
&gt;&gt; +// In the case of really big stacks we only initialize first 256MB of it. Such sizes are achievable if the stack
&gt; 
&gt; 256MB seems huge.  Shouldn&apos;t this be Options::maxPerThreadStackUsage?

It would be a layer violation for WTF to use JSC::Options::maxPerThreadStackUsage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017589</commentid>
    <comment_count>32</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-06-23 10:04:59 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; (In reply to comment #27)
&gt; &gt; (From update of attachment 231696 [details] [details])
&gt; &gt; Can you write this to share its implementation with the Windows version? Both platforms have the same problem, and it&apos;s not so great that they currently use slightly different solutions.
&gt; 
&gt; Unfortunately I don&apos;t have access to a Windows system to test this out. The main issue I have with the workaround that landed in bug #129429 is that it&apos;s run every time the VM instance has its stack limit updated. Linux ports can do this only once per thread -- not sure about Windows. The Linux-specific solution also has a quite delicate implementation as it has to work under both Clang and GCC and it might not be suitable for MSVC.

Can you please clarify what you mean by &quot;Linux ports can do this only once per thread”? Are you referring to some pthread limitation or something else?  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017596</commentid>
    <comment_count>33</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-06-23 10:34:09 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; (From update of attachment 231696 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=231696&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WTF/wtf/StackBounds.cpp:103
&gt; &gt;&gt; +// In the case of really big stacks we only initialize first 256MB of it. Such sizes are achievable if the stack
&gt; &gt; 
&gt; &gt; 256MB seems huge.  Shouldn&apos;t this be Options::maxPerThreadStackUsage?
&gt; 
&gt; It would be a layer violation for WTF to use JSC::Options::maxPerThreadStackUsage.

Things could be restructured to pass a stack size down to StackBounds::initialize() or by providing a new API that JSC calls to do this initialization as part of initializing the VM.

Given the huge difference between the current values of Options::maxPerThreadStackUsage (4MB) and the proposed stack initialization limit of 256MB proposed with this patch, using a common value makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022200</commentid>
    <comment_count>34</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-07-14 04:55:47 -0700</bug_when>
    <thetext>Just a note: This failure is appeared on the GTK/EFL bots, because of
modifying the test by https://bugs.webkit.org/show_bug.cgi?id=126588</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022201</commentid>
    <comment_count>35</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-07-14 04:56:12 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; Just a note: This failure is appeared on the GTK/EFL bots, because of
&gt; modifying the test by https://bugs.webkit.org/show_bug.cgi?id=126588

But the bug is still valid, of coursse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226378</commentid>
    <comment_count>36</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-09-05 00:22:27 -0700</bug_when>
    <thetext>This was resolved some time ago.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>225196</attachid>
            <date>2014-02-25 16:39:41 -0800</date>
            <delta_ts>2014-02-25 16:39:41 -0800</delta_ts>
            <desc>Debugging data - info proc all, instructions, registers with ToT</desc>
            <filename>fPLO</filename>
            <type>text/plain</type>
            <size>19185</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">T3V0cHV0IG9mIGBpbmZvIHByb2MgYWxsYDoKcHJvY2VzcyAyNTcwOAp3YXJuaW5nOiB0YXJnZXQg
ZmlsZSAvcHJvYy8yNTcwOC9jbWRsaW5lIGNvbnRhaW5lZCB1bmV4cGVjdGVkIG51bGwgY2hhcmFj
dGVycwpjbWRsaW5lID0gJy9kdnQvd2Via2l0L2hhY2toYWNrL1dlYktpdEJ1aWxkL0RlYnVnL1By
b2dyYW1zLy5saWJzL2pzYy0zJwpjd2QgPSAnL2hvbWUvemFuL2R2dC93ZWJraXQvaGFja2hhY2sv
V2ViS2l0QnVpbGQvRGVidWcvUHJvZ3JhbXMnCmV4ZSA9ICcvaG9tZS96YW4vZHZ0L3dlYmtpdC9o
YWNraGFjay9XZWJLaXRCdWlsZC9EZWJ1Zy9Qcm9ncmFtcy8ubGlicy9qc2MtMycKTWFwcGVkIGFk
ZHJlc3Mgc3BhY2VzOgoKICAgICAgICAgIFN0YXJ0IEFkZHIgICAgICAgICAgIEVuZCBBZGRyICAg
ICAgIFNpemUgICAgIE9mZnNldCBvYmpmaWxlCiAgICAgICAgICAgIDB4NDAwMDAwICAgICAgICAg
ICAweDQzOTAwMCAgICAweDM5MDAwICAgICAgICAweDAgL2hvbWUvemFuL2R2dC93ZWJraXQvaGFj
a2hhY2svV2ViS2l0QnVpbGQvRGVidWcvUHJvZ3JhbXMvLmxpYnMvanNjLTMKICAgICAgICAgICAg
MHg0MzkwMDAgICAgICAgICAgIDB4NDNhMDAwICAgICAweDEwMDAgICAgMHgzOTAwMCAvaG9tZS96
YW4vZHZ0L3dlYmtpdC9oYWNraGFjay9XZWJLaXRCdWlsZC9EZWJ1Zy9Qcm9ncmFtcy8ubGlicy9q
c2MtMwogICAgICAgICAgICAweDQzYTAwMCAgICAgICAgICAgMHg1NTgwMDAgICAweDExZTAwMCAg
ICAgICAgMHgwIFtoZWFwXQogICAgICAweDdmZmY5MDAwMDAwMCAgICAgMHg3ZmZmOTAwMjEwMDAg
ICAgMHgyMTAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmY5MDAyMTAwMCAgICAgMHg3ZmZmOTQw
MDAwMDAgIDB4M2ZkZjAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmY5NDAwMDAwMCAgICAgMHg3
ZmZmOTQwMjEwMDAgICAgMHgyMTAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmY5NDAyMTAwMCAg
ICAgMHg3ZmZmOTgwMDAwMDAgIDB4M2ZkZjAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmY5ODAw
MDAwMCAgICAgMHg3ZmZmOTgwMjEwMDAgICAgMHgyMTAwMCAgICAgICAgMHgwIAogICAgICAweDdm
ZmY5ODAyMTAwMCAgICAgMHg3ZmZmOWMwMDAwMDAgIDB4M2ZkZjAwMCAgICAgICAgMHgwIAogICAg
ICAweDdmZmY5YzAwMDAwMCAgICAgMHg3ZmZmOWMwMjEwMDAgICAgMHgyMTAwMCAgICAgICAgMHgw
IAogICAgICAweDdmZmY5YzAyMTAwMCAgICAgMHg3ZmZmYTAwMDAwMDAgIDB4M2ZkZjAwMCAgICAg
ICAgMHgwIAogICAgICAweDdmZmZhMDAwMDAwMCAgICAgMHg3ZmZmYTAwMjEwMDAgICAgMHgyMTAw
MCAgICAgICAgMHgwIAogICAgICAweDdmZmZhMDAyMTAwMCAgICAgMHg3ZmZmYTQwMDAwMDAgIDB4
M2ZkZjAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZhNDAwMDAwMCAgICAgMHg3ZmZmYTQwMjEw
MDAgICAgMHgyMTAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZhNDAyMTAwMCAgICAgMHg3ZmZm
YTgwMDAwMDAgIDB4M2ZkZjAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZhOWZmYzAwMCAgICAg
MHg3ZmZmYTlmZmQwMDAgICAgIDB4MTAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZhOWZmZDAw
MCAgICAgMHg3ZmZmYWE3ZmQwMDAgICAweDgwMDAwMCAgICAgICAgMHgwIFtzdGFjazoyNTcxOF0K
ICAgICAgMHg3ZmZmYWE3ZmQwMDAgICAgIDB4N2ZmZmFhN2ZlMDAwICAgICAweDEwMDAgICAgICAg
IDB4MCAKICAgICAgMHg3ZmZmYWE3ZmUwMDAgICAgIDB4N2ZmZmFhZmZlMDAwICAgMHg4MDAwMDAg
ICAgICAgIDB4MCBbc3RhY2s6MjU3MTddCiAgICAgIDB4N2ZmZmFhZmZlMDAwICAgICAweDdmZmZh
YWZmZjAwMCAgICAgMHgxMDAwICAgICAgICAweDAgCiAgICAgIDB4N2ZmZmFhZmZmMDAwICAgICAw
eDdmZmZhYjdmZjAwMCAgIDB4ODAwMDAwICAgICAgICAweDAgW3N0YWNrOjI1NzE2XQogICAgICAw
eDdmZmZhYjdmZjAwMCAgICAgMHg3ZmZmYWI4MDAwMDAgICAgIDB4MTAwMCAgICAgICAgMHgwIAog
ICAgICAweDdmZmZhYjgwMDAwMCAgICAgMHg3ZmZmYWMwMDAwMDAgICAweDgwMDAwMCAgICAgICAg
MHgwIFtzdGFjazoyNTcxNV0KICAgICAgMHg3ZmZmYWMwMDAwMDAgICAgIDB4N2ZmZmFjMDIxMDAw
ICAgIDB4MjEwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmYWMwMjEwMDAgICAgIDB4N2ZmZmIw
MDAwMDAwICAweDNmZGYwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmYjAxNGEwMDAgICAgIDB4
N2ZmZmIwMTUwMDAwICAgICAweDYwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmYjAxNTAwMDAg
ICAgIDB4N2ZmZmIwMWQ4MDAwICAgIDB4ODgwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmYjAx
ZDgwMDAgICAgIDB4N2ZmZmIwMWUwMDAwICAgICAweDgwMDAgICAgICAgIDB4MCAKICAgICAgMHg3
ZmZmYjAxZTAwMDAgICAgIDB4N2ZmZmIwMzY4MDAwICAgMHgxODgwMDAgICAgICAgIDB4MCAKICAg
ICAgMHg3ZmZmYjAzNjgwMDAgICAgIDB4N2ZmZmIwMzcwMDAwICAgICAweDgwMDAgICAgICAgIDB4
MCAKICAgICAgMHg3ZmZmYjAzNzAwMDAgICAgIDB4N2ZmZmIwMzgwMDAwICAgIDB4MTAwMDAgICAg
ICAgIDB4MCAKICAgICAgMHg3ZmZmYjAzODAwMDAgICAgIDB4N2ZmZmIwMzg3MDAwICAgICAweDcw
MDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmYjAzZmMwMDAgICAgIDB4N2ZmZmIwNDAwMDAwICAg
ICAweDQwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmYjA0MDAwMDAgICAgIDB4N2ZmZmIwNDg4
MDAwICAgIDB4ODgwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmYjA0ODgwMDAgICAgIDB4N2Zm
ZmIwNDkwMDAwICAgICAweDgwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmYjA0OTAwMDAgICAg
IDB4N2ZmZmIwNTE4MDAwICAgIDB4ODgwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmYjA1MTgw
MDAgICAgIDB4N2ZmZmIwNTIwMDAwICAgICAweDgwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZm
YjA1MjAwMDAgICAgIDB4N2ZmZmIwNWE4MDAwICAgIDB4ODgwMDAgICAgICAgIDB4MCAKICAgICAg
MHg3ZmZmYjA1YTgwMDAgICAgIDB4N2ZmZmIwNWIwMDAwICAgICAweDgwMDAgICAgICAgIDB4MCAK
ICAgICAgMHg3ZmZmYjA1YjAwMDAgICAgIDB4N2ZmZmIwNWMwMDAwICAgIDB4MTAwMDAgICAgICAg
IDB4MCAKICAgICAgMHg3ZmZmYjA1YzAwMDAgICAgIDB4N2ZmZmIwNWM4MDAwICAgICAweDgwMDAg
ICAgICAgIDB4MCAKICAgICAgMHg3ZmZmYjA1YzgwMDAgICAgIDB4N2ZmZmIwNjJlMDAwICAgIDB4
NjYwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmYjA2MzAwMDAgICAgIDB4N2ZmZmIwNjQwMDAw
ICAgIDB4MTAwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmYjA2NDAwMDAgICAgIDB4N2ZmZmIw
NjUwMDAwICAgIDB4MTAwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmYjA2NTAwMDAgICAgIDB4
N2ZmZmIwNjYwMDAwICAgIDB4MTAwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmYjA2NjAwMDAg
ICAgIDB4N2ZmZmIwNjcwMDAwICAgIDB4MTAwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmYjA2
NzAwMDAgICAgIDB4N2ZmZmIwNjgwMDAwICAgIDB4MTAwMDAgICAgICAgIDB4MCAKICAgICAgMHg3
ZmZmYjA2ODAwMDAgICAgIDB4N2ZmZmIwNjhkMDAwICAgICAweGQwMDAgICAgICAgIDB4MCAKICAg
ICAgMHg3ZmZmYjA2OGQwMDAgICAgIDB4N2ZmZmIwNjhlMDAwICAgICAweDEwMDAgICAgICAgIDB4
MCAKICAgICAgMHg3ZmZmYjA2OGUwMDAgICAgIDB4N2ZmZmIwZThlMDAwICAgMHg4MDAwMDAgICAg
ICAgIDB4MCBbc3RhY2s6MjU3MTRdCiAgICAgIDB4N2ZmZmIwZThlMDAwICAgICAweDdmZmZiMGU4
ZjAwMCAgICAgMHgxMDAwICAgICAgICAweDAgCiAgICAgIDB4N2ZmZmIwZThmMDAwICAgICAweDdm
ZmZiMTY4ZjAwMCAgIDB4ODAwMDAwICAgICAgICAweDAgW3N0YWNrOjI1NzEzXQogICAgICAweDdm
ZmZiMTY4ZjAwMCAgICAgMHg3ZmZmYjE2OTAwMDAgICAgIDB4MTAwMCAgICAgICAgMHgwIAogICAg
ICAweDdmZmZiMTY5MDAwMCAgICAgMHg3ZmZmYjFlOTAwMDAgICAweDgwMDAwMCAgICAgICAgMHgw
IFtzdGFjazoyNTcxMl0KICAgICAgMHg3ZmZmYjFlOTAwMDAgICAgIDB4N2ZmZmIxZTkxMDAwICAg
ICAweDEwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmYjFlOTEwMDAgICAgIDB4N2ZmZmIxZWIx
MDAwICAgIDB4MjAwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmYjFlYjEwMDAgICAgIDB4N2Zm
ZmYxZTkwMDAwIDB4M2ZmZGYwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmZjFlOTAwMDAgICAg
IDB4N2ZmZmYxZTkxMDAwICAgICAweDEwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmZjFlOTEw
MDAgICAgIDB4N2ZmZmYxZTkyMDAwICAgICAweDEwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZm
ZjFlOTIwMDAgICAgIDB4N2ZmZmYxZWQwMDAwICAgIDB4M2UwMDAgICAgICAgIDB4MCAvbGliL3g4
Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEKICAgICAgMHg3ZmZmZjFlZDAwMDAgICAg
IDB4N2ZmZmYyMGNmMDAwICAgMHgxZmYwMDAgICAgMHgzZTAwMCAvbGliL3g4Nl82NC1saW51eC1n
bnUvbGlicGNyZS5zby4zLjEzLjEKICAgICAgMHg3ZmZmZjIwY2YwMDAgICAgIDB4N2ZmZmYyMGQw
MDAwICAgICAweDEwMDAgICAgMHgzZDAwMCAvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5z
by4zLjEzLjEKICAgICAgMHg3ZmZmZjIwZDAwMDAgICAgIDB4N2ZmZmYyMGQ3MDAwICAgICAweDcw
MDAgICAgICAgIDB4MCAvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMQog
ICAgICAweDdmZmZmMjBkNzAwMCAgICAgMHg3ZmZmZjIyZDYwMDAgICAweDFmZjAwMCAgICAgMHg3
MDAwIC91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xCiAgICAgIDB4N2Zm
ZmYyMmQ2MDAwICAgICAweDdmZmZmMjJkNzAwMCAgICAgMHgxMDAwICAgICAweDYwMDAgL3Vzci9s
aWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEKICAgICAgMHg3ZmZmZjIyZDcwMDAg
ICAgIDB4N2ZmZmYyMmQ4MDAwICAgICAweDEwMDAgICAgIDB4NzAwMCAvdXNyL2xpYi94ODZfNjQt
bGludXgtZ251L2xpYmZmaS5zby42LjAuMQogICAgICAweDdmZmZmMjJkODAwMCAgICAgMHg3ZmZm
ZjIyZWIwMDAgICAgMHgxMzAwMCAgICAgICAgMHgwIC9saWIveDg2XzY0LWxpbnV4LWdudS9saWJy
ZXNvbHYtMi4xNy5zbwogICAgICAweDdmZmZmMjJlYjAwMCAgICAgMHg3ZmZmZjI0ZWIwMDAgICAw
eDIwMDAwMCAgICAweDEzMDAwIC9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xNy5z
bwogICAgICAweDdmZmZmMjRlYjAwMCAgICAgMHg3ZmZmZjI0ZWMwMDAgICAgIDB4MTAwMCAgICAw
eDEzMDAwIC9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xNy5zbwogICAgICAweDdm
ZmZmMjRlYzAwMCAgICAgMHg3ZmZmZjI0ZWQwMDAgICAgIDB4MTAwMCAgICAweDE0MDAwIC9saWIv
eDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xNy5zbwogICAgICAweDdmZmZmMjRlZDAwMCAg
ICAgMHg3ZmZmZjI0ZWYwMDAgICAgIDB4MjAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZmMjRl
ZjAwMCAgICAgMHg3ZmZmZjI1MGYwMDAgICAgMHgyMDAwMCAgICAgICAgMHgwIC9saWIveDg2XzY0
LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEKICAgICAgMHg3ZmZmZjI1MGYwMDAgICAgIDB4N2Zm
ZmYyNzBmMDAwICAgMHgyMDAwMDAgICAgMHgyMDAwMCAvbGliL3g4Nl82NC1saW51eC1nbnUvbGli
c2VsaW51eC5zby4xCiAgICAgIDB4N2ZmZmYyNzBmMDAwICAgICAweDdmZmZmMjcxMDAwMCAgICAg
MHgxMDAwICAgIDB4MjAwMDAgL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMQog
ICAgICAweDdmZmZmMjcxMDAwMCAgICAgMHg3ZmZmZjI3MTEwMDAgICAgIDB4MTAwMCAgICAweDIx
MDAwIC9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEKICAgICAgMHg3ZmZmZjI3
MTEwMDAgICAgIDB4N2ZmZmYyNzEzMDAwICAgICAweDIwMDAgICAgICAgIDB4MCAKICAgICAgMHg3
ZmZmZjI3MTMwMDAgICAgIDB4N2ZmZmYyNzE2MDAwICAgICAweDMwMDAgICAgICAgIDB4MCAvbGli
L3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xNy5zbwogICAgICAweDdmZmZmMjcxNjAwMCAgICAg
MHg3ZmZmZjI5MTUwMDAgICAweDFmZjAwMCAgICAgMHgzMDAwIC9saWIveDg2XzY0LWxpbnV4LWdu
dS9saWJkbC0yLjE3LnNvCiAgICAgIDB4N2ZmZmYyOTE1MDAwICAgICAweDdmZmZmMjkxNjAwMCAg
ICAgMHgxMDAwICAgICAweDIwMDAgL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTcuc28K
ICAgICAgMHg3ZmZmZjI5MTYwMDAgICAgIDB4N2ZmZmYyOTE3MDAwICAgICAweDEwMDAgICAgIDB4
MzAwMCAvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xNy5zbwogICAgICAweDdmZmZmMjkx
NzAwMCAgICAgMHg3ZmZmZjNmODMwMDAgIDB4MTY2YzAwMCAgICAgICAgMHgwIC91c3IvbGliL3g4
Nl82NC1saW51eC1nbnUvbGliaWN1ZGF0YS5zby41Mi4xCiAgICAgIDB4N2ZmZmYzZjgzMDAwICAg
ICAweDdmZmZmNDE4MjAwMCAgIDB4MWZmMDAwICAweDE2NmMwMDAgL3Vzci9saWIveDg2XzY0LWxp
bnV4LWdudS9saWJpY3VkYXRhLnNvLjUyLjEKICAgICAgMHg3ZmZmZjQxODIwMDAgICAgIDB4N2Zm
ZmY0MTgzMDAwICAgICAweDEwMDAgIDB4MTY2YjAwMCAvdXNyL2xpYi94ODZfNjQtbGludXgtZ251
L2xpYmljdWRhdGEuc28uNTIuMQogICAgICAweDdmZmZmNDE4MzAwMCAgICAgMHg3ZmZmZjQxODQw
MDAgICAgIDB4MTAwMCAgMHgxNjZjMDAwIC91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWN1
ZGF0YS5zby41Mi4xCiAgICAgIDB4N2ZmZmY0MTg0MDAwICAgICAweDdmZmZmNDJlODAwMCAgIDB4
MTY0MDAwICAgICAgICAweDAgL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpY3V1Yy5zby41
Mi4xCiAgICAgIDB4N2ZmZmY0MmU4MDAwICAgICAweDdmZmZmNDRlNzAwMCAgIDB4MWZmMDAwICAg
MHgxNjQwMDAgL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpY3V1Yy5zby41Mi4xCiAgICAg
IDB4N2ZmZmY0NGU3MDAwICAgICAweDdmZmZmNDRmODAwMCAgICAweDExMDAwICAgMHgxNjMwMDAg
L3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpY3V1Yy5zby41Mi4xCiAgICAgIDB4N2ZmZmY0
NGY4MDAwICAgICAweDdmZmZmNDRmOTAwMCAgICAgMHgxMDAwICAgMHgxNzQwMDAgL3Vzci9saWIv
eDg2XzY0LWxpbnV4LWdudS9saWJpY3V1Yy5zby41Mi4xCiAgICAgIDB4N2ZmZmY0NGY5MDAwICAg
ICAweDdmZmZmNDRmZDAwMCAgICAgMHg0MDAwICAgICAgICAweDAgCiAgICAgIDB4N2ZmZmY0NGZk
MDAwICAgICAweDdmZmZmNDZmNjAwMCAgIDB4MWY5MDAwICAgICAgICAweDAgL3Vzci9saWIveDg2
XzY0LWxpbnV4LWdudS9saWJpY3VpMThuLnNvLjUyLjEKICAgICAgMHg3ZmZmZjQ2ZjYwMDAgICAg
IDB4N2ZmZmY0OGY2MDAwICAgMHgyMDAwMDAgICAweDFmOTAwMCAvdXNyL2xpYi94ODZfNjQtbGlu
dXgtZ251L2xpYmljdWkxOG4uc28uNTIuMQogICAgICAweDdmZmZmNDhmNjAwMCAgICAgMHg3ZmZm
ZjQ5MDMwMDAgICAgIDB4ZDAwMCAgIDB4MWY5MDAwIC91c3IvbGliL3g4Nl82NC1saW51eC1nbnUv
bGliaWN1aTE4bi5zby41Mi4xCiAgICAgIDB4N2ZmZmY0OTAzMDAwICAgICAweDdmZmZmNDkwNDAw
MCAgICAgMHgxMDAwICAgMHgyMDYwMDAgL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpY3Vp
MThuLnNvLjUyLjEKICAgICAgMHg3ZmZmZjQ5MDQwMDAgICAgIDB4N2ZmZmY0OTA1MDAwICAgICAw
eDEwMDAgICAgICAgIDB4MCAKICAgICAgMHg3ZmZmZjQ5MDUwMDAgICAgIDB4N2ZmZmY0YTAzMDAw
ICAgIDB4ZmUwMDAgICAgICAgIDB4MCAvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAu
c28uMC4zODAwLjIKICAgICAgMHg3ZmZmZjRhMDMwMDAgICAgIDB4N2ZmZmY0YzAzMDAwICAgMHgy
MDAwMDAgICAgMHhmZTAwMCAvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC4z
ODAwLjIKICAgICAgMHg3ZmZmZjRjMDMwMDAgICAgIDB4N2ZmZmY0YzA0MDAwICAgICAweDEwMDAg
ICAgMHhmZTAwMCAvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC4zODAwLjIK
ICAgICAgMHg3ZmZmZjRjMDQwMDAgICAgIDB4N2ZmZmY0YzA1MDAwICAgICAweDEwMDAgICAgMHhm
ZjAwMCAvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC4zODAwLjIKICAgICAg
MHg3ZmZmZjRjMDUwMDAgICAgIDB4N2ZmZmY0YzA2MDAwICAgICAweDEwMDAgICAgICAgIDB4MCAK
ICAgICAgMHg3ZmZmZjRjMDYwMDAgICAgIDB4N2ZmZmY0YzU1MDAwICAgIDB4NGYwMDAgICAgICAg
IDB4MCAvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuMzgwMC4y
CiAgICAgIDB4N2ZmZmY0YzU1MDAwICAgICAweDdmZmZmNGU1NTAwMCAgIDB4MjAwMDAwICAgIDB4
NGYwMDAgL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjM4MDAu
MgogICAgICAweDdmZmZmNGU1NTAwMCAgICAgMHg3ZmZmZjRlNTYwMDAgICAgIDB4MTAwMCAgICAw
eDRmMDAwIC91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC4zODAw
LjIKICAgICAgMHg3ZmZmZjRlNTYwMDAgICAgIDB4N2ZmZmY0ZTU3MDAwICAgICAweDEwMDAgICAg
MHg1MDAwMCAvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuMzgw
MC4yCiAgICAgIDB4N2ZmZmY0ZTU3MDAwICAgICAweDdmZmZmNGZiMzAwMCAgIDB4MTVjMDAwICAg
ICAgICAweDAgL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuMzgwMC4y
CiAgICAgIDB4N2ZmZmY0ZmIzMDAwICAgICAweDdmZmZmNTFiMjAwMCAgIDB4MWZmMDAwICAgMHgx
NWMwMDAgL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuMzgwMC4yCiAg
ICAgIDB4N2ZmZmY1MWIyMDAwICAgICAweDdmZmZmNTFiNjAwMCAgICAgMHg0MDAwICAgMHgxNWIw
MDAgL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuMzgwMC4yCiAgICAg
IDB4N2ZmZmY1MWI2MDAwICAgICAweDdmZmZmNTFiODAwMCAgICAgMHgyMDAwICAgMHgxNWYwMDAg
L3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuMzgwMC4yCiAgICAgIDB4
N2ZmZmY1MWI4MDAwICAgICAweDdmZmZmNTFiYTAwMCAgICAgMHgyMDAwICAgICAgICAweDAgCiAg
ICAgIDB4N2ZmZmY1MWJhMDAwICAgICAweDdmZmZmNTFiYjAwMCAgICAgMHgxMDAwICAgICAgICAw
eDAgL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGhyZWFkLTIuMC5zby4wLjM4MDAuMgog
ICAgICAweDdmZmZmNTFiYjAwMCAgICAgMHg3ZmZmZjUzYmEwMDAgICAweDFmZjAwMCAgICAgMHgx
MDAwIC91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RocmVhZC0yLjAuc28uMC4zODAwLjIK
ICAgICAgMHg3ZmZmZjUzYmEwMDAgICAgIDB4N2ZmZmY1M2JiMDAwICAgICAweDEwMDAgICAgICAg
IDB4MCAvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0aHJlYWQtMi4wLnNvLjAuMzgwMC4y
CiAgICAgIDB4N2ZmZmY1M2JiMDAwICAgICAweDdmZmZmNTNiYzAwMCAgICAgMHgxMDAwICAgICAw
eDEwMDAgL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGhyZWFkLTIuMC5zby4wLjM4MDAu
MgogICAgICAweDdmZmZmNTNiYzAwMCAgICAgMHg3ZmZmZjUzYmYwMDAgICAgIDB4MzAwMCAgICAg
ICAgMHgwIC91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC4zODAw
LjIKICAgICAgMHg3ZmZmZjUzYmYwMDAgICAgIDB4N2ZmZmY1NWJlMDAwICAgMHgxZmYwMDAgICAg
IDB4MzAwMCAvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuMzgw
MC4yCiAgICAgIDB4N2ZmZmY1NWJlMDAwICAgICAweDdmZmZmNTViZjAwMCAgICAgMHgxMDAwICAg
ICAweDIwMDAgL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjM4
MDAuMgogICAgICAweDdmZmZmNTViZjAwMCAgICAgMHg3ZmZmZjU1YzAwMDAgICAgIDB4MTAwMCAg
ICAgMHgzMDAwIC91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC4z
ODAwLjIKICAgICAgMHg3ZmZmZjU1YzAwMDAgICAgIDB4N2ZmZmY1NWQ3MDAwICAgIDB4MTcwMDAg
ICAgICAgIDB4MCAvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOAogICAgICAweDdm
ZmZmNTVkNzAwMCAgICAgMHg3ZmZmZjU3ZDYwMDAgICAweDFmZjAwMCAgICAweDE3MDAwIC9saWIv
eDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44CiAgICAgIDB4N2ZmZmY1N2Q2MDAwICAgICAw
eDdmZmZmNTdkNzAwMCAgICAgMHgxMDAwICAgIDB4MTYwMDAgL2xpYi94ODZfNjQtbGludXgtZ251
L2xpYnouc28uMS4yLjgKICAgICAgMHg3ZmZmZjU3ZDcwMDAgICAgIDB4N2ZmZmY1N2Q4MDAwICAg
ICAweDEwMDAgICAgMHgxNzAwMCAvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOAog
ICAgICAweDdmZmZmNTdkODAwMCAgICAgMHg3ZmZmZjU5N2IwMDAgICAweDFhMzAwMCAgICAgICAg
MHgwIC9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTcuc28KICAgICAgMHg3ZmZmZjU5N2Iw
MDAgICAgIDB4N2ZmZmY1YjdhMDAwICAgMHgxZmYwMDAgICAweDFhMzAwMCAvbGliL3g4Nl82NC1s
aW51eC1nbnUvbGliYy0yLjE3LnNvCiAgICAgIDB4N2ZmZmY1YjdhMDAwICAgICAweDdmZmZmNWI3
ZTAwMCAgICAgMHg0MDAwICAgMHgxYTIwMDAgL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4x
Ny5zbwogICAgICAweDdmZmZmNWI3ZTAwMCAgICAgMHg3ZmZmZjViODAwMDAgICAgIDB4MjAwMCAg
IDB4MWE2MDAwIC9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTcuc28KICAgICAgMHg3ZmZm
ZjViODAwMDAgICAgIDB4N2ZmZmY1Yjg0MDAwICAgICAweDQwMDAgICAgICAgIDB4MCAKICAgICAg
MHg3ZmZmZjViODQwMDAgICAgIDB4N2ZmZmY1Yjk5MDAwICAgIDB4MTUwMDAgICAgICAgIDB4MCAv
bGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMQogICAgICAweDdmZmZmNWI5OTAwMCAg
ICAgMHg3ZmZmZjVkOTkwMDAgICAweDIwMDAwMCAgICAweDE1MDAwIC9saWIveDg2XzY0LWxpbnV4
LWdudS9saWJnY2Nfcy5zby4xCiAgICAgIDB4N2ZmZmY1ZDk5MDAwICAgICAweDdmZmZmNWQ5YTAw
MCAgICAgMHgxMDAwICAgIDB4MTUwMDAgL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNv
LjEKICAgICAgMHg3ZmZmZjVkOWEwMDAgICAgIDB4N2ZmZmY1ZTk2MDAwICAgIDB4ZmMwMDAgICAg
ICAgIDB4MCAvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE3LnNvCiAgICAgIDB4N2ZmZmY1
ZTk2MDAwICAgICAweDdmZmZmNjA5NjAwMCAgIDB4MjAwMDAwICAgIDB4ZmMwMDAgL2xpYi94ODZf
NjQtbGludXgtZ251L2xpYm0tMi4xNy5zbwogICAgICAweDdmZmZmNjA5NjAwMCAgICAgMHg3ZmZm
ZjYwOTcwMDAgICAgIDB4MTAwMCAgICAweGZjMDAwIC9saWIveDg2XzY0LWxpbnV4LWdudS9saWJt
LTIuMTcuc28KICAgICAgMHg3ZmZmZjYwOTcwMDAgICAgIDB4N2ZmZmY2MDk4MDAwICAgICAweDEw
MDAgICAgMHhmZDAwMCAvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE3LnNvCiAgICAgIDB4
N2ZmZmY2MDk4MDAwICAgICAweDdmZmZmNjE3ZDAwMCAgICAweGU1MDAwICAgICAgICAweDAgL3Vz
ci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5CiAgICAgIDB4N2ZmZmY2
MTdkMDAwICAgICAweDdmZmZmNjM3YzAwMCAgIDB4MWZmMDAwICAgIDB4ZTUwMDAgL3Vzci9saWIv
eDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5CiAgICAgIDB4N2ZmZmY2MzdjMDAw
ICAgICAweDdmZmZmNjM4NDAwMCAgICAgMHg4MDAwICAgIDB4ZTQwMDAgL3Vzci9saWIveDg2XzY0
LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5CiAgICAgIDB4N2ZmZmY2Mzg0MDAwICAgICAw
eDdmZmZmNjM4NjAwMCAgICAgMHgyMDAwICAgIDB4ZWMwMDAgL3Vzci9saWIveDg2XzY0LWxpbnV4
LWdudS9saWJzdGRjKysuc28uNi4wLjE5CiAgICAgIDB4N2ZmZmY2Mzg2MDAwICAgICAweDdmZmZm
NjM5YjAwMCAgICAweDE1MDAwICAgICAgICAweDAgCiAgICAgIDB4N2ZmZmY2MzliMDAwICAgICAw
eDdmZmZmNjNhMjAwMCAgICAgMHg3MDAwICAgICAgICAweDAgL2xpYi94ODZfNjQtbGludXgtZ251
L2xpYnJ0LTIuMTcuc28KICAgICAgMHg3ZmZmZjYzYTIwMDAgICAgIDB4N2ZmZmY2NWExMDAwICAg
MHgxZmYwMDAgICAgIDB4NzAwMCAvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xNy5zbwog
ICAgICAweDdmZmZmNjVhMTAwMCAgICAgMHg3ZmZmZjY1YTIwMDAgICAgIDB4MTAwMCAgICAgMHg2
MDAwIC9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE3LnNvCiAgICAgIDB4N2ZmZmY2NWEy
MDAwICAgICAweDdmZmZmNjVhMzAwMCAgICAgMHgxMDAwICAgICAweDcwMDAgL2xpYi94ODZfNjQt
bGludXgtZ251L2xpYnJ0LTIuMTcuc28KICAgICAgMHg3ZmZmZjY1YTMwMDAgICAgIDB4N2ZmZmY3
YjM2MDAwICAweDE1OTMwMDAgICAgICAgIDB4MCAvaG9tZS96YW4vZHZ0L3dlYmtpdC9oYWNraGFj
ay9XZWJLaXRCdWlsZC9EZWJ1Zy8ubGlicy9saWJqYXZhc2NyaXB0Y29yZWd0ay0zLjAuc28uMC4x
Ni4zCiAgICAgIDB4N2ZmZmY3YjM2MDAwICAgICAweDdmZmZmN2JiZDAwMCAgICAweDg3MDAwICAw
eDE1OTMwMDAgL2hvbWUvemFuL2R2dC93ZWJraXQvaGFja2hhY2svV2ViS2l0QnVpbGQvRGVidWcv
LmxpYnMvbGliamF2YXNjcmlwdGNvcmVndGstMy4wLnNvLjAuMTYuMwogICAgICAweDdmZmZmN2Ji
ZDAwMCAgICAgMHg3ZmZmZjdiYmYwMDAgICAgIDB4MjAwMCAgICAgICAgMHgwIAogICAgICAweDdm
ZmZmN2JiZjAwMCAgICAgMHg3ZmZmZjdiZDYwMDAgICAgMHgxNzAwMCAgICAgICAgMHgwIC9saWIv
eDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTcuc28KICAgICAgMHg3ZmZmZjdiZDYwMDAg
ICAgIDB4N2ZmZmY3ZGQ1MDAwICAgMHgxZmYwMDAgICAgMHgxNzAwMCAvbGliL3g4Nl82NC1saW51
eC1nbnUvbGlicHRocmVhZC0yLjE3LnNvCiAgICAgIDB4N2ZmZmY3ZGQ1MDAwICAgICAweDdmZmZm
N2RkNjAwMCAgICAgMHgxMDAwICAgIDB4MTYwMDAgL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0
aHJlYWQtMi4xNy5zbwogICAgICAweDdmZmZmN2RkNjAwMCAgICAgMHg3ZmZmZjdkZDcwMDAgICAg
IDB4MTAwMCAgICAweDE3MDAwIC9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTcu
c28KICAgICAgMHg3ZmZmZjdkZDcwMDAgICAgIDB4N2ZmZmY3ZGRiMDAwICAgICAweDQwMDAgICAg
ICAgIDB4MCAKICAgICAgMHg3ZmZmZjdkZGIwMDAgICAgIDB4N2ZmZmY3ZGZjMDAwICAgIDB4MjEw
MDAgICAgICAgIDB4MCAvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xNy5zbwogICAgICAweDdm
ZmZmN2UwMTAwMCAgICAgMHg3ZmZmZjdlMTAwMDAgICAgIDB4ZjAwMCAgICAgICAgMHgwIAogICAg
ICAweDdmZmZmN2UxMDAwMCAgICAgMHg3ZmZmZjdlMzAwMDAgICAgMHgyMDAwMCAgICAgICAgMHgw
IAogICAgICAweDdmZmZmN2UzMDAwMCAgICAgMHg3ZmZmZjdlNDAwMDAgICAgMHgxMDAwMCAgICAg
ICAgMHgwIAogICAgICAweDdmZmZmN2U0MDAwMCAgICAgMHg3ZmZmZjdlNTAwMDAgICAgMHgxMDAw
MCAgICAgICAgMHgwIAogICAgICAweDdmZmZmN2U1MDAwMCAgICAgMHg3ZmZmZjdlNjAwMDAgICAg
MHgxMDAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZmN2U2MDAwMCAgICAgMHg3ZmZmZjdlNzAw
MDAgICAgMHgxMDAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZmN2U3MDAwMCAgICAgMHg3ZmZm
ZjdlODAwMDAgICAgMHgxMDAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZmN2U4MDAwMCAgICAg
MHg3ZmZmZjdlOTAwMDAgICAgMHgxMDAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZmN2U5MDAw
MCAgICAgMHg3ZmZmZjdlYTAwMDAgICAgMHgxMDAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZm
N2VhMDAwMCAgICAgMHg3ZmZmZjdlYjAwMDAgICAgMHgxMDAwMCAgICAgICAgMHgwIAogICAgICAw
eDdmZmZmN2ViMDAwMCAgICAgMHg3ZmZmZjdlYzAwMDAgICAgMHgxMDAwMCAgICAgICAgMHgwIAog
ICAgICAweDdmZmZmN2VjMDAwMCAgICAgMHg3ZmZmZjdlZDAwMDAgICAgMHgxMDAwMCAgICAgICAg
MHgwIAogICAgICAweDdmZmZmN2VkMDAwMCAgICAgMHg3ZmZmZjdlZTAwMDAgICAgMHgxMDAwMCAg
ICAgICAgMHgwIAogICAgICAweDdmZmZmN2VlMDAwMCAgICAgMHg3ZmZmZjdlZjAwMDAgICAgMHgx
MDAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZmN2VmMDAwMCAgICAgMHg3ZmZmZjdmMDAwMDAg
ICAgMHgxMDAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZmN2YwMDAwMCAgICAgMHg3ZmZmZjdm
MTAwMDAgICAgMHgxMDAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZmN2YxMDAwMCAgICAgMHg3
ZmZmZjdmMjAwMDAgICAgMHgxMDAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZmN2YyMDAwMCAg
ICAgMHg3ZmZmZjdmMzAwMDAgICAgMHgxMDAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZmN2Yz
MDAwMCAgICAgMHg3ZmZmZjdmNDAwMDAgICAgMHgxMDAwMCAgICAgICAgMHgwIAogICAgICAweDdm
ZmZmN2Y0MDAwMCAgICAgMHg3ZmZmZjdmNTAwMDAgICAgMHgxMDAwMCAgICAgICAgMHgwIAogICAg
ICAweDdmZmZmN2Y1MDAwMCAgICAgMHg3ZmZmZjdmNjAwMDAgICAgMHgxMDAwMCAgICAgICAgMHgw
IAogICAgICAweDdmZmZmN2Y2MDAwMCAgICAgMHg3ZmZmZjdmNzAwMDAgICAgMHgxMDAwMCAgICAg
ICAgMHgwIAogICAgICAweDdmZmZmN2Y3MDAwMCAgICAgMHg3ZmZmZjdmODAwMDAgICAgMHgxMDAw
MCAgICAgICAgMHgwIAogICAgICAweDdmZmZmN2Y4MDAwMCAgICAgMHg3ZmZmZjdmOTAwMDAgICAg
MHgxMDAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZmN2Y5MDAwMCAgICAgMHg3ZmZmZjdmYTAw
MDAgICAgMHgxMDAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZmN2ZhMDAwMCAgICAgMHg3ZmZm
ZjdmYjAwMDAgICAgMHgxMDAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZmN2ZiMDAwMCAgICAg
MHg3ZmZmZjdmYzAwMDAgICAgMHgxMDAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZmN2ZjMDAw
MCAgICAgMHg3ZmZmZjdmZDAwMDAgICAgMHgxMDAwMCAgICAgICAgMHgwIAogICAgICAweDdmZmZm
N2ZkMDAwMCAgICAgMHg3ZmZmZjdmZDIwMDAgICAgIDB4MjAwMCAgICAgICAgMHgwIAogICAgICAw
eDdmZmZmN2ZkMjAwMCAgICAgMHg3ZmZmZjdmZGUwMDAgICAgIDB4YzAwMCAgICAgICAgMHgwIAog
ICAgICAweDdmZmZmN2ZmNzAwMCAgICAgMHg3ZmZmZjdmZmEwMDAgICAgIDB4MzAwMCAgICAgICAg
MHgwIAogICAgICAweDdmZmZmN2ZmYTAwMCAgICAgMHg3ZmZmZjdmZmMwMDAgICAgIDB4MjAwMCAg
ICAgICAgMHgwIFt2ZHNvXQogICAgICAweDdmZmZmN2ZmYzAwMCAgICAgMHg3ZmZmZjdmZmQwMDAg
ICAgIDB4MTAwMCAgICAweDIxMDAwIC9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE3LnNvCiAg
ICAgIDB4N2ZmZmY3ZmZkMDAwICAgICAweDdmZmZmN2ZmZjAwMCAgICAgMHgyMDAwICAgIDB4MjIw
MDAgL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTcuc28KICAgICAgMHg3ZmZmZmZmN2IwMDAg
ICAgIDB4N2ZmZmZmZmZmMDAwICAgIDB4ODQwMDAgICAgICAgIDB4MCBbc3RhY2tdCiAgMHhmZmZm
ZmZmZmZmNjAwMDAwIDB4ZmZmZmZmZmZmZjYwMTAwMCAgICAgMHgxMDAwICAgICAgICAweDAgW3Zz
eXNjYWxsXQpOYW1lOglqc2MtMwpTdGF0ZToJdCAodHJhY2luZyBzdG9wKQpUZ2lkOgkyNTcwOApQ
aWQ6CTI1NzA4ClBQaWQ6CTI1NjgwClRyYWNlclBpZDoJMjU2ODAKVWlkOgkxMDAwCTEwMDAJMTAw
MAkxMDAwCkdpZDoJMTAwMAkxMDAwCTEwMDAJMTAwMApGRFNpemU6CTY0Ckdyb3VwczoJMjQgMjUg
MjcgMjkgMzAgNDQgNDYgMTAzIDEwNiAxMTAgMTE2IDEwMDAgMTAwMSAKVm1QZWFrOgkgMTY3MTE3
MiBrQgpWbVNpemU6CSAxNjcxMTcyIGtCClZtTGNrOgkgICAgICAgMCBrQgpWbVBpbjoJICAgICAg
IDAga0IKVm1IV006CSAgIDIzNTMyIGtCClZtUlNTOgkgICAyMzUzMiBrQgpWbURhdGE6CSAxNTcy
ODY0IGtCClZtU3RrOgkgICAgIDUzMiBrQgpWbUV4ZToJICAgICAyMjgga0IKVm1MaWI6CSAgIDU1
NzU2IGtCClZtUFRFOgkgICAgIDIxNiBrQgpWbVN3YXA6CSAgICAgICAwIGtCClRocmVhZHM6CTgK
U2lnUToJMC8xMjU1NzUKU2lnUG5kOgkwMDAwMDAwMDAwMDAwMDAwClNoZFBuZDoJMDAwMDAwMDAw
MDAwMDAwMApTaWdCbGs6CTAwMDAwMDAwMDAwMDAwMDAKU2lnSWduOgkwMDAwMDAwMDAxMDAxMDAw
ClNpZ0NndDoJMDAwMDAwMDE4MDAwMDAwMApDYXBJbmg6CTAwMDAwMDAwMDAwMDAwMDAKQ2FwUHJt
OgkwMDAwMDAwMDAwMDAwMDAwCkNhcEVmZjoJMDAwMDAwMDAwMDAwMDAwMApDYXBCbmQ6CTAwMDAw
MDFmZmZmZmZmZmYKU2VjY29tcDoJMApDcHVzX2FsbG93ZWQ6CWZmCkNwdXNfYWxsb3dlZF9saXN0
OgkwLTcKTWVtc19hbGxvd2VkOgkwMDAwMDAwMCwwMDAwMDAwMQpNZW1zX2FsbG93ZWRfbGlzdDoJ
MAp2b2x1bnRhcnlfY3R4dF9zd2l0Y2hlczoJNDEKbm9udm9sdW50YXJ5X2N0eHRfc3dpdGNoZXM6
CTQwClByb2Nlc3M6IDI1NzA4CkV4ZWMgZmlsZToganNjLTMKU3RhdGU6IHQKUGFyZW50IHByb2Nl
c3M6IDI1NjgwClByb2Nlc3MgZ3JvdXA6IDI1NzA4ClNlc3Npb24gaWQ6IDE2NTM3ClRUWTogMzQ4
MjMKVFRZIG93bmVyIHByb2Nlc3MgZ3JvdXA6IDI1NjgwCkZsYWdzOiAweDQwMDAyMDAwCk1pbm9y
IGZhdWx0cyAobm8gbWVtb3J5IHBhZ2UpOiA3NzY3Ck1pbm9yIGZhdWx0cywgY2hpbGRyZW46IDAK
TWFqb3IgZmF1bHRzIChtZW1vcnkgcGFnZSBmYXVsdHMpOiAwCk1ham9yIGZhdWx0cywgY2hpbGRy
ZW46IDAKdXRpbWU6IDQ0CnN0aW1lOiAwCnV0aW1lLCBjaGlsZHJlbjogMApzdGltZSwgY2hpbGRy
ZW46IDAKamlmZmllcyByZW1haW5pbmcgaW4gY3VycmVudCB0aW1lIHNsaWNlOiAyMAonbmljZScg
dmFsdWU6IDAKamlmZmllcyB1bnRpbCBuZXh0IHRpbWVvdXQ6IDgKamlmZmllcyB1bnRpbCBuZXh0
IFNJR0FMUk06IDAKc3RhcnQgdGltZSAoamlmZmllcyBzaW5jZSBzeXN0ZW0gYm9vdCk6IDYyODg3
OTYKVmlydHVhbCBtZW1vcnkgc2l6ZTogMTcxMTI4MDEyOApSZXNpZGVudCBzZXQgc2l6ZTogNTg4
MwpybGltOiAxODQ0Njc0NDA3MzcwOTU1MTYxNQpTdGFydCBvZiB0ZXh0OiAweDQwMDAwMApFbmQg
b2YgdGV4dDogMHg0MzhmNjgKU3RhcnQgb2Ygc3RhY2s6IDB4N2ZmZmZmZmZlMWIwCgpJbnN0cnVj
dGlvbnMgZm9yIGNhbGxfdmFyYXJnczoKICAgMHg3ZmZmYjFlYWUyMGI6CW1vdiAgICAtMHgxMCgl
cmJwKSwlcmF4CiAgIDB4N2ZmZmIxZWFlMjBmOgl0ZXN0ICAgJXJheCwlcmF4CiAgIDB4N2ZmZmIx
ZWFlMjEyOglqbmUgICAgMHg3ZmZmYjFlYWUyODcKICAgMHg3ZmZmYjFlYWUyMTg6CW1vdiAgICAw
eDI4KCVyYnApLCVlYXgKICAgMHg3ZmZmYjFlYWUyMWI6CWNtcCAgICAkMHgxMDAwMSwlZWF4CiAg
IDB4N2ZmZmIxZWFlMjIxOglqYSAgICAgMHg3ZmZmYjFlYWUyODcKICAgMHg3ZmZmYjFlYWUyMjc6
CW1vdiAgICAlcmF4LCVyZHgKICAgMHg3ZmZmYjFlYWUyMmE6CWFkZCAgICAkMHhlLCVyZHgKICAg
MHg3ZmZmYjFlYWUyMmU6CWluYyAgICAlcmR4CiAgIDB4N2ZmZmIxZWFlMjMxOglhbmQgICAgJDB4
ZmZmZmZmZmZmZmZmZmZmZSwlcmR4CiAgIDB4N2ZmZmIxZWFlMjM1OgluZWcgICAgJXJkeAogICAw
eDdmZmZiMWVhZTIzODoJc2hsICAgICQweDMsJXJkeAogICAweDdmZmZiMWVhZTIzYzoJYWRkICAg
ICVyYnAsJXJkeAogICAweDdmZmZiMWVhZTIzZjoJbW92YWJzICQweDQ1MzdjMCwlcjExCiAgIDB4
N2ZmZmIxZWFlMjQ5OgljbXAgICAgJXJkeCwoJXIxMSkKICAgMHg3ZmZmYjFlYWUyNGM6CWphICAg
ICAweDdmZmZiMWVhZTI4Nwo9PiAweDdmZmZiMWVhZTI1MjoJbW92ICAgICVlYXgsMHgyOCglcmR4
KQogICAweDdmZmZiMWVhZTI1NToJbW92YWJzICQweDIsJXJjeAogICAweDdmZmZiMWVhZTI1ZjoJ
bW92ICAgICVyY3gsMHgzMCglcmR4KQoKUmVnaXN0ZXJzOgpyYXggICAgICAgICAgICAweDEwMDAx
CTY1NTM3CnJieCAgICAgICAgICAgIDB4MAkwCnJjeCAgICAgICAgICAgIDB4NDQ3OGUwCTQ0ODcz
OTIKcmR4ICAgICAgICAgICAgMHg3ZmZmZmZlZmMzODAJMTQwNzM3NDg3MjkxMjY0CnJzaSAgICAg
ICAgICAgIDB4N2ZmZmZmZjdjNDAwCTE0MDczNzQ4NzgxNTY4MApyZGkgICAgICAgICAgICAweDQ4
OTExMAk0NzU1NzI4CnJicCAgICAgICAgICAgIDB4N2ZmZmZmZjdjNDAwCTB4N2ZmZmZmZjdjNDAw
CnJzcCAgICAgICAgICAgIDB4N2ZmZmZmZjdjMzgwCTB4N2ZmZmZmZjdjMzgwCnI4ICAgICAgICAg
ICAgIDB4MAkwCnI5ICAgICAgICAgICAgIDB4MTAxMDEwMTAxMDEwMTAxCTcyMzQwMTcyODM4MDc2
NjczCnIxMCAgICAgICAgICAgIDB4N2ZmZmY3MWMyMzFhCTE0MDczNzMzOTIwNDM3OApyMTEgICAg
ICAgICAgICAweDQ1MzdjMAk0NTM2MjU2CnIxMiAgICAgICAgICAgIDB4N2ZmZmY3ZWVmZmQwCTE0
MDczNzM1MzAyMzQ0MApyMTMgICAgICAgICAgICAweDdmZmZmN2VlZmZiMAkxNDA3MzczNTMwMjM0
MDgKcjE0ICAgICAgICAgICAgMHhmZmZmMDAwMDAwMDAwMDAwCS0yODE0NzQ5NzY3MTA2NTYKcjE1
ICAgICAgICAgICAgMHhmZmZmMDAwMDAwMDAwMDAyCS0yODE0NzQ5NzY3MTA2NTQKcmlwICAgICAg
ICAgICAgMHg3ZmZmYjFlYWUyNTIJMHg3ZmZmYjFlYWUyNTIKZWZsYWdzICAgICAgICAgMHgxMDI4
NwlbIENGIFBGIFNGIElGIFJGIF0KY3MgICAgICAgICAgICAgMHgzMwk1MQpzcyAgICAgICAgICAg
ICAweDJiCTQzCmRzICAgICAgICAgICAgIDB4MAkwCmVzICAgICAgICAgICAgIDB4MAkwCmZzICAg
ICAgICAgICAgIDB4MAkwCmdzICAgICAgICAgICAgIDB4MAkwCgolZWF4OgokMSA9IDY1NTM3Cgol
cjExOgoweDQ1MzdjMDoJMHgwMDAwN2ZmZmZmYzFkZjIwCgpEZXJlZmVyZW5jZWQgJXJkeDoKMHg3
ZmZmZmZlZmMzODA6CTB4MDAwMDAwMDAwMDAwMDAwMAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231696</attachid>
            <date>2014-05-19 10:00:45 -0700</date>
            <delta_ts>2014-06-23 10:00:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127902-20140519100018.patch</filename>
            <type>text/plain</type>
            <size>4832</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5MDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ3M2RkMjEwNTZiNmRjZjI5YTM4MzY0
NzVjZmQzZTU5MTg1NTZlZmMuLjI5MzM5YzE1ZjkzNjY4ZGNhNjk0MDU2MmQyODgyMTgyMzdlZWNk
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTQtMDUtMTkgIFphbiBEb2JlcnNlayAgPHpkb2Jl
cnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIEZpeCB0aGUgcmVtYWluaW5nIHJlZ3Jlc3Npb24g
Y2F1c2VkIGJ5IHRoZSBqc0NTdGFjayBicmFuY2ggbWVyZ2Ugb24gTGludXggcGxhdGZvcm1zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc5MDIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZnRlciB0aGUg
anNDU3RhY2sgbWVyZ2UsIHRoZSByZW1haW5pbmcgcmVncmVzc2lvbiBpcyBkdWUgdG8gYW4gb3B0
aW1pemF0aW9uIHRoYXQgcmVsaWVzCisgICAgICAgIG9uIGhhdmluZyB0aGUgY29tcGxldGUgc3Rh
Y2sgaW4gYW4gdXNhYmxlIHN0YXRlLiBUaGlzIGlzIGEgcHJvYmxlbSB3aXRoIGxpYmMgb24gTGlu
dXggd2hlcmUKKyAgICAgICAgdGhlIHB0aHJlYWQgaW1wbGVtZW50YXRpb24gb25seSBhbGxvY2F0
ZXMgc3RhY2sgaW5jcmVtZW50YWxseSwgd2hlbiBuZWNlc3NhcnkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBhZGRzIGEgd29ya2Fyb3VuZCBmdW5jdGlvbiwgaW5pdGlhbGl6ZVN0YWNrKCksIHRoYXQg
cmVjdXJzaXZlbHkgYWxsb2NhdGVzIHRoZQorICAgICAgICBzdGFjayBtZW1vcnksIGNvdmVyaW5n
IHRoZSByZWdpb24gYXMgcmVwb3J0ZWQgYnkgcHRocmVhZCBidXQgc3RheWluZyBhIHNhZmUgZGlz
dGFuY2UgZnJvbQorICAgICAgICB0aGUgc3RhY2sncyBib3R0b20gYm91bmRhcnkuIEl0IGlzIGZp
cnN0IGNhbGxlZCBpbiBTdGFja0JvdW5kczo6aW5pdGlhbGl6ZSgpLgorCisgICAgICAgIFRoaXMg
aXMgb25seSBkb25lIG9uY2UgcGVyIHRocmVhZCwgd2l0aCBubyBtZWFzdXJhYmxlIGltcGFjdCBv
biBwZXJmb3JtYW5jZS4gVGhlIGhlbHBlcgorICAgICAgICBmdW5jdGlvbiBpcyBmb3JjZWQgdG8g
YmUgY29tcGlsZWQgd2l0aG91dCBvcHRpbWl6YXRpb25zIHVuZGVyIEdDQyBzaW5jZSB0aGF0IGNv
bXBpbGVyIGdlbmVyYXRlcworICAgICAgICBhbiBpbnZhbGlkIGp1bXAgaW5zdHJ1Y3Rpb24gd2hl
biBjb21waWxpbmcgd2l0aCBvcHRpbWl6YXRpb25zLiBBIGJvb2wgdmFyaWFibGUgaXMgcGFzc2Vk
LWJ5LXJlZmVyZW5jZQorICAgICAgICBpbnRvIHRoZSBoZWxwZXIgZnVuY3Rpb24gdG8gYXZvaWQg
aGF2aW5nIGl0IG9wdGltaXplZCBhd2F5IGJ5IHRoZSBjb21waWxlcnMgaW4gU3RhY2tCb3VuZHM6
OmluaXRpYWxpemUoKS4KKworICAgICAgICBUaGF0IGJvb2wgdmFyaWFibGUgaXMgYWxzbyB1c2Vk
IHRvIHN0b3Agc3RhY2sgaW5pdGlhbGl6YXRpb24gb25jZSB3ZSd2ZSBpbml0aWFsaXplZCAyNTZN
QiBvZiBzdGFjaworICAgICAgICBpbiBlbnZpcm9ubWVudHMgd2hpY2ggZW5mb3JjZSBzdWNoIGhp
Z2ggc3RhY2sgbGltaXRzLCBmb3IgaW5zdGFuY2UgYnkgdXNpbmcgYHVsaW1pdCAtcyB1bmxpbWl0
ZWRgLCBvciBldmVuCisgICAgICAgIGJ5IHJ1bm5pbmcgdW5kZXIgcGFyZW50IHByb2Nlc3NlcyAo
bGlrZSBHTlUgbWFrZSkgdGhhdCBpbmNyZWFzZSB0aGF0IHZhbHVlIHRocm91Z2ggc2V0cmxpbWl0
KCkuCisKKyAgICAgICAgKiB3dGYvU3RhY2tCb3VuZHMuY3BwOgorICAgICAgICAoV1RGOjppbml0
aWFsaXplU3RhY2spOgorICAgICAgICAoV1RGOjpTdGFja0JvdW5kczo6aW5pdGlhbGl6ZSk6CisK
IDIwMTQtMDUtMTggIFJpayBDYWJhbmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KIAogICAgICAg
ICBzdXBwb3J0IGZvciBuYXZpZ2F0b3IuaGFyZHdhcmVDb25jdXJyZW5jeQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvU3RhY2tCb3VuZHMuY3BwIGIvU291cmNlL1dURi93dGYvU3RhY2tCb3Vu
ZHMuY3BwCmluZGV4IDFjODY3NTBjMjZlNzgzNjEzNDA3MTE3MzA1NWVlM2E4YTJmYjI3NWIuLjMz
YWRlM2EyMzExMjQ4NzZlZGVkN2JlOThlYzU5YTM5OTUxZjIxMWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1N0YWNrQm91bmRzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TdGFja0JvdW5k
cy5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKIAogI2VsaWYgT1MoVU5JWCkKIAorI2luY2x1ZGUgIkNv
bXBpbGVyLmgiCiAjaW5jbHVkZSA8cHRocmVhZC5oPgogI2lmIEhBVkUoUFRIUkVBRF9OUF9IKQog
I2luY2x1ZGUgPHB0aHJlYWRfbnAuaD4KQEAgLTkyLDYgKzkzLDM5IEBAIHZvaWQgU3RhY2tCb3Vu
ZHM6OmluaXRpYWxpemUoKQogCiAjZWxpZiBPUyhVTklYKQogCisvLyBKYXZhU2NyaXB0Q29yZSBl
eHBlY3RzIHRoYXQgaXQgY2FuIGRpcmVjdGx5IHVzZSBhbnkgcGxhY2Ugb24gdGhlIHN0YWNrIGFz
IGxvbmcgYXMgaXQgaXMgd2l0aGluIHRoZSBib3VuZGFyaWVzCisvLyByZXBvcnRlZCBieSBwdGhy
ZWFkLiBPbiBMaW51eCB0aGUgcHRocmVhZCBpbXBsZW1lbnRhdGlvbiBpbmNyZW1lbnRhbGx5IGFs
bG9jYXRlcyB0aGUgc3RhY2sgYXMgbmVlZGVkLCBidXQKKy8vIExMSW50IG9wdGltaXphdGlvbnMg
aW4gSmF2YVNjcmlwdENvcmUgY2FuIGVuZCB1cCB1c2luZyB1bmFsbG9jYXRlZCBwYXJ0cyBvZiB0
aGUgc3RhY2suCisvLyBUaGlzIGhlbHBlciBmdW5jdGlvbiByZWN1cnNpdmVseSBjYWxscyBpdHNl
bGYgYW5kIGFsbG9jYXRlcyBhYm91dCBvbmUgcGFnZSBvZiBtZW1vcnkgZWFjaCB0aW1lIGl0J3Mg
aW52b2tlZCwKKy8vIG9ubHkgc3RvcHBpbmcgYXQgdGhlIGxhc3QgZm91ciBwYWdlcyBiZWZvcmUg
dGhlIGxvd2VyIHN0YWNrIGJvdW5kLiBUaGlzIGluaXRpYWxpemVzIG1vc3Qgb2YgdGhlIHN0YWNr
CisvLyBhbmQgd29ya3MgYXJvdW5kIHRoZSBpbmNyZW1lbnRhbCBhbGxvY2F0aW9uIHByb2JsZW0u
IFRoaXMgaXMgZG9uZSBvbmNlIHBlciB0aHJlYWQsIHdpdGhvdXQgYW55IG1lYXN1cmFibGUKKy8v
IHBlcmZvcm1hbmNlIGltcGFjdC4KKy8vIEluIHRoZSBjYXNlIG9mIHJlYWxseSBiaWcgc3RhY2tz
IHdlIG9ubHkgaW5pdGlhbGl6ZSBmaXJzdCAyNTZNQiBvZiBpdC4gU3VjaCBzaXplcyBhcmUgYWNo
aWV2YWJsZSBpZiB0aGUgc3RhY2sKKy8vIGxpbWl0IGlzIHJhaXNlZCB0byByaWRpY3Vsb3VzIHZh
bHVlcyB0aHJvdWdoIHRoZSB1bGltaXQgdG9vbCBvciB2aWEgc2V0cmxpbWl0LiBUaGlzIGNhbiBi
ZSBkb25lIGJ5IHRoZSB1c2VyCisvLyBvciBldmVuIGJ5IHRoZSBwYXJlbnQgcHJvY2Vzc2VzLCBm
b3IgaW5zdGFuY2UgR05VIG1ha2UuIEluaXRpYWxpemluZyBzdWNoIGxhcmdlIHN0YWNrcyB3b3Vs
ZCBjb25zdW1lIGFsbCB0aGUKKy8vIGF2YWlsYWJsZSBtZW1vcnksIHB1c2hpbmcgdGhlIHN5c3Rl
bSBpbnRvIHVucmVzcG9uc2l2ZSBzdGF0ZSB3aXRoIG5vIG90aGVyIG9wdGlvbiB0aGF0IGEgbWFu
dWFsIHJlYm9vdC4KKworI2lmIENPTVBJTEVSKEdDQykgJiYgIUNPTVBJTEVSKENMQU5HKQorI2Rl
ZmluZSBVTk9QVElNSVpFRCBfX2F0dHJpYnV0ZV9fKChvcHRpbWl6ZSgiTzAiKSkpCisjZWxzZQor
I2RlZmluZSBVTk9QVElNSVpFRAorI2VuZGlmCisKKy8vIEdDQyBnZW5lcmF0ZXMgaW5jb3JyZWN0
IGNvZGUgZm9yIHRoaXMgZnVuY3Rpb24gd2hlbiBidWlsZGluZyB3aXRoIG9wdGltaXphdGlvbnMs
IHNvIGl0IGlzIGtlcHQgdW5vcHRpbWl6ZWQgaW4gYWxsCisvLyBidWlsZHMgYnkgdXNpbmcgdGhl
IEdDQy1zcGVjaWZpYyBhdHRyaWJ1dGUuIFBhc3NpbmcgYSByZWZlcmVuY2UgaW50byB0aGlzIGZ1
bmN0aW9uIHByZXZlbnRzIGJvdGggR0NDIGFuZCBDbGFuZyB0bworLy8gb3B0aW1pemUgYXdheSB0
aGUgZmlyc3QgaW5pdGlhbGl6ZVN0YWNrKCkgY2FsbCBpbiBTdGFja0JvdW5kczo6aW5pdGlhbGl6
ZSgpLgorCitzdGF0aWMgVU5PUFRJTUlaRUQgdm9pZCBpbml0aWFsaXplU3RhY2soY2hhciogb3Jp
Z2luLCBjaGFyKiBib3VuZCwgYm9vbCYgc3RhY2tJbml0aWFsaXplZCkKK3sKKyAgICBjaGFyIHN0
YWNrTG9hZFs0MDk2XTsKKworICAgIGlmIChyZWludGVycHJldF9jYXN0PGNoYXIqPigmc3RhY2tM
b2FkKSA8IG9yaWdpbiAtIDI1NiAqIDEwMjQgKiAxMDI0KQorICAgICAgICBzdGFja0luaXRpYWxp
emVkID0gdHJ1ZTsKKworICAgIGlmIChyZWludGVycHJldF9jYXN0PGNoYXIqPigmc3RhY2tMb2Fk
KSA+IGJvdW5kICsgNDA5NiAqIDQgJiYgIXN0YWNrSW5pdGlhbGl6ZWQpCisgICAgICAgIGluaXRp
YWxpemVTdGFjayhvcmlnaW4sIGJvdW5kLCBzdGFja0luaXRpYWxpemVkKTsKK30KKwogdm9pZCBT
dGFja0JvdW5kczo6aW5pdGlhbGl6ZSgpCiB7CiAgICAgdm9pZCogc3RhY2tCYXNlID0gMDsKQEAg
LTExMyw2ICsxNDcsOSBAQCB2b2lkIFN0YWNrQm91bmRzOjppbml0aWFsaXplKCkKICAgICBwdGhy
ZWFkX2F0dHJfZGVzdHJveSgmc2F0dHIpOwogICAgIG1fYm91bmQgPSBzdGFja0Jhc2U7CiAgICAg
bV9vcmlnaW4gPSBzdGF0aWNfY2FzdDxjaGFyKj4oc3RhY2tCYXNlKSArIHN0YWNrU2l6ZTsKKwor
ICAgIGJvb2wgc3RhY2tJbml0aWFsaXplZCA9IGZhbHNlOworICAgIGluaXRpYWxpemVTdGFjayhz
dGF0aWNfY2FzdDxjaGFyKj4obV9vcmlnaW4pLCBzdGF0aWNfY2FzdDxjaGFyKj4obV9ib3VuZCks
IHN0YWNrSW5pdGlhbGl6ZWQpOwogfQogCiAjZWxpZiBPUyhXSU5ET1dTKQo=
</data>
<flag name="review"
          id="256143"
          type_id="1"
          status="-"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>