<?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>13250</bug_id>
          
          <creation_ts>2007-04-01 02:22:53 -0700</creation_ts>
          <short_desc>REGRESSION: Browser crash on clicking back button while at link specified above (inspector: ObjC wrapper outlives JS wrapper)</short_desc>
          <delta_ts>2007-07-22 22:08:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.csszengarden.com/zengarden-sample.css</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction, InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ross McDonald">ross.mcdonald</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>mitz</cc>
    
    <cc>mjs</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>15904</commentid>
    <comment_count>0</comment_count>
    <who name="Ross McDonald">ross.mcdonald</who>
    <bug_when>2007-04-01 02:22:53 -0700</bug_when>
    <thetext>apple report info pasted below:

Date/Time:      2007-04-01 09:57:23.419 +0100
OS Version:     10.4.9 (Build 8P135)
Report Version: 4

Command: Safari
Path:    /Applications/browsers/Safari.app/Contents/MacOS/Safari
Parent:  WindowServer [22026]

Version: ??? (20648)

PID:    23566
Thread: 0

Exception:  EXC_BAD_ACCESS (0x0001)
Codes:      KERN_PROTECTION_FAILURE (0x0002) at 0x00000020

Thread 0 Crashed:
0   com.apple.JavaScriptCore 	0x00131ea0 KJS::ForInNode::execute(KJS::ExecState*) + 336
1   com.apple.JavaScriptCore 	0x00134020 KJS::SourceElementsNode::execute(KJS::ExecState*) + 432
2   com.apple.JavaScriptCore 	0x00130a3c KJS::BlockNode::execute(KJS::ExecState*) + 156
3   com.apple.JavaScriptCore 	0x0011df08 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 56
4   com.apple.JavaScriptCore 	0x0011d870 KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 464
5   com.apple.JavaScriptCore 	0x00139514 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 116
6   com.apple.JavaScriptCore 	0x0012c968 KJS::FunctionCallResolveNode::evaluate(KJS::ExecState*) + 600
7   com.apple.JavaScriptCore 	0x00130b28 KJS::ExprStatementNode::execute(KJS::ExecState*) + 104
8   com.apple.JavaScriptCore 	0x00133f4c KJS::SourceElementsNode::execute(KJS::ExecState*) + 220
9   com.apple.JavaScriptCore 	0x00130a3c KJS::BlockNode::execute(KJS::ExecState*) + 156
10  com.apple.JavaScriptCore 	0x0011e90c KJS::GlobalFuncImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 828
11  com.apple.JavaScriptCore 	0x00139514 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 116
12  com.apple.JavaScriptCore 	0x0012c968 KJS::FunctionCallResolveNode::evaluate(KJS::ExecState*) + 600
13  com.apple.JavaScriptCore 	0x00130b28 KJS::ExprStatementNode::execute(KJS::ExecState*) + 104
14  com.apple.JavaScriptCore 	0x00134020 KJS::SourceElementsNode::execute(KJS::ExecState*) + 432
15  com.apple.JavaScriptCore 	0x00130a3c KJS::BlockNode::execute(KJS::ExecState*) + 156
16  com.apple.JavaScriptCore 	0x0011df08 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 56
17  com.apple.JavaScriptCore 	0x0011d870 KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 464
18  com.apple.JavaScriptCore 	0x00139514 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 116
19  com.apple.WebCore        	0x013151a0 -[WebScriptObject callWebScriptMethod:withArguments:] + 528
20  com.apple.WebKit         	0x0036b594 -[WebInspector setFocusedDOMNode:] + 324
21  com.apple.WebKit         	0x0036e114 -[WebInspector(WebInspectorPrivate) inspectedWebViewProgressFinished:] + 132
22  com.apple.Foundation     	0x92be2ae4 _nsnote_callback + 180
23  com.apple.CoreFoundation 	0x90806078 __CFXNotificationPost + 368
24  com.apple.CoreFoundation 	0x907fe114 _CFXNotificationPostNotification + 684
25  com.apple.Foundation     	0x92bcceec -[NSNotificationCenter postNotificationName:object:userInfo:] + 92
26  com.apple.WebCore        	0x01439a6c WebCore::ProgressTracker::finalProgressComplete() + 172
27  com.apple.WebCore        	0x01439b58 WebCore::ProgressTracker::progressCompleted(WebCore::Frame*) + 120
28  com.apple.WebCore        	0x013e0400 WebCore::FrameLoader::checkLoadCompleteForThisFrame() + 896
29  com.apple.WebCore        	0x013e07bc WebCore::FrameLoader::opened() + 876
30  com.apple.WebCore        	0x013e912c WebCore::FrameLoader::commitProvisionalLoad(WTF::PassRefPtr&lt;WebCore::PageCache&gt;) + 796
31  com.apple.WebCore        	0x013eef44 WebCore::DocumentLoader::loadFromPageCache(WTF::PassRefPtr&lt;WebCore::PageCache&gt;) + 84
32  com.apple.WebCore        	0x013d63ac WebCore::FrameLoader::loadProvisionalItemFromPageCache() + 140
33  com.apple.WebCore        	0x013dfcec WebCore::FrameLoader::continueLoadAfterNavigationPolicy(WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool) + 220
34  com.apple.WebCore        	0x013dff1c WebCore::FrameLoader::callContinueLoadAfterNavigationPolicy(void*, WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool) + 44
35  com.apple.WebCore        	0x013db63c WebCore::FrameLoader::checkNavigationPolicy(WebCore::ResourceRequest const&amp;, WebCore::DocumentLoader*, WTF::PassRefPtr&lt;WebCore::FormState&gt;, void (*)(void*, WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool), void*) + 620
36  com.apple.WebCore        	0x013e0d5c WebCore::FrameLoader::load(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr&lt;WebCore::FormState&gt;) + 220
37  com.apple.WebCore        	0x013e66dc WebCore::FrameLoader::loadItem(WebCore::HistoryItem*, WebCore::FrameLoadType) + 668
38  com.apple.WebCore        	0x013e7280 WebCore::FrameLoader::recursiveGoToItem(WebCore::HistoryItem*, WebCore::HistoryItem*, WebCore::FrameLoadType) + 336
39  com.apple.WebCore        	0x011872bc WebCore::Page::goBack() + 60
40  com.apple.AppKit         	0x93869c4c -[NSApplication sendAction:to:from:] + 108
41  com.apple.Safari         	0x0002956c 0x1000 + 165228
42  com.apple.AppKit         	0x93869b80 -[NSControl sendAction:to:] + 96
43  com.apple.AppKit         	0x93869a60 -[NSCell _sendActionFrom:] + 156
44  com.apple.AppKit         	0x93883a88 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 1020
45  com.apple.AppKit         	0x93883670 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 564
46  com.apple.AppKit         	0x93883094 -[NSControl mouseDown:] + 536
47  com.apple.Safari         	0x00054614 0x1000 + 341524
48  com.apple.AppKit         	0x93824890 -[NSWindow sendEvent:] + 4616
49  com.apple.Safari         	0x00021734 0x1000 + 132916
50  com.apple.AppKit         	0x937cd8d4 -[NSApplication sendEvent:] + 4172
51  com.apple.Safari         	0x00021238 0x1000 + 131640
52  com.apple.AppKit         	0x937c4d10 -[NSApplication run] + 508
53  com.apple.AppKit         	0x938b587c NSApplicationMain + 452
54  com.apple.Safari         	0x0005c77c 0x1000 + 374652
55  com.apple.Safari         	0x0005c624 0x1000 + 374308

Thread 1:
0   libSystem.B.dylib        	0x9000b4c8 mach_msg_trap + 8
1   libSystem.B.dylib        	0x9000b41c mach_msg + 60
2   com.apple.CoreFoundation 	0x907deba8 __CFRunLoopRun + 832
3   com.apple.CoreFoundation 	0x907de4ac CFRunLoopRunSpecific + 268
4   com.apple.Foundation     	0x92c0a6a8 +[NSURLConnection(NSURLConnectionInternal) _resourceLoadLoop:] + 264
5   com.apple.Foundation     	0x92be31a0 forkThreadForFunction + 108
6   libSystem.B.dylib        	0x9002be88 _pthread_body + 96

Thread 2:
0   libSystem.B.dylib        	0x9000b4c8 mach_msg_trap + 8
1   libSystem.B.dylib        	0x9000b41c mach_msg + 60
2   com.apple.CoreFoundation 	0x907deba8 __CFRunLoopRun + 832
3   com.apple.CoreFoundation 	0x907de4ac CFRunLoopRunSpecific + 268
4   com.apple.Foundation     	0x92c0b7e8 +[NSURLCache _diskCacheSyncLoop:] + 152
5   com.apple.Foundation     	0x92be31a0 forkThreadForFunction + 108
6   libSystem.B.dylib        	0x9002be88 _pthread_body + 96

Thread 3:
0   libSystem.B.dylib        	0x9001fa0c select + 12
1   com.apple.CoreFoundation 	0x907f1434 __CFSocketManager + 472
2   libSystem.B.dylib        	0x9002be88 _pthread_body + 96

Thread 4:
0   libSystem.B.dylib        	0x9002c548 semaphore_wait_signal_trap + 8
1   libSystem.B.dylib        	0x9003102c pthread_cond_wait + 480
2   com.apple.Foundation     	0x92bea30c -[NSConditionLock lockWhenCondition:] + 68
3   com.apple.Syndication    	0x9b29442c -[AsyncDB _run:] + 192
4   com.apple.Foundation     	0x92be31a0 forkThreadForFunction + 108
5   libSystem.B.dylib        	0x9002be88 _pthread_body + 96

Thread 5:
0   libSystem.B.dylib        	0x9002c548 semaphore_wait_signal_trap + 8
1   libSystem.B.dylib        	0x9003102c pthread_cond_wait + 480
2   com.apple.Foundation     	0x92bea30c -[NSConditionLock lockWhenCondition:] + 68
3   com.apple.AppKit         	0x93865708 -[NSUIHeartBeat _heartBeatThread:] + 324
4   com.apple.Foundation     	0x92be31a0 forkThreadForFunction + 108
5   libSystem.B.dylib        	0x9002be88 _pthread_body + 96

Thread 0 crashed with PPC Thread State 64:
  srr0: 0x0000000000131ea0 srr1: 0x000000000200f030                        vrsave: 0x0000000000000000
    cr: 0x44444222          xer: 0x0000000000000004   lr: 0x0000000000131e2c  ctr: 0x000000000011c910
    r0: 0x0000000000000000   r1: 0x00000000bfffc1b0   r2: 0x0000000000000000   r3: 0x00000000063f8c10
    r4: 0x00000000bfffc444   r5: 0x0000000006331b98   r6: 0x00000000bfffc178   r7: 0x00000000bf254c4a
    r8: 0x000000000000000f   r9: 0x0000000000000000  r10: 0x000000000637ba34  r11: 0x0000000000000001
   r12: 0x000000000011c910  r13: 0x0000000001540460  r14: 0x00000000bfffd62c  r15: 0x00000000014e0460
   r16: 0x00000000001b1d64  r17: 0x0000000000000000  r18: 0x00000000006188c0  r19: 0x0000000000616350
   r20: 0x00000000bfffcc5c  r21: 0x00000000018526c0  r22: 0x00000000bfffc454  r23: 0x00000000bfffc2f4
   r24: 0x000000000635bc58  r25: 0x00000000bfffc794  r26: 0x000000000019f048  r27: 0x0000000000000000
   r28: 0x00000000bfffc444  r29: 0x0000000006958030  r30: 0x0000000000000000  r31: 0x0000000000131d64

Binary Images Description:
    0x1000 -    0xdcfff com.apple.Safari 2.0.4 (419.3)	/Applications/browsers/Safari.app/Contents/MacOS/Safari
  0x109000 -   0x10afff WebKitNightlyEnabler.dylib 	/Applications/browsers/WebKit.app/Contents/Resources/WebKitNightlyEnabler.dylib
  0x10e000 -   0x19efff com.apple.JavaScriptCore 522+	/Applications/browsers/WebKit.app/Contents/Resources/JavaScriptCore.framework/Versions/A/JavaScriptCore
  0x305000 -   0x3b7fff com.apple.WebKit 522+	/Applications/browsers/WebKit.app/Contents/Resources/WebKit.framework/Versions/A/WebKit
 0x1008000 -  0x154cfff com.apple.WebCore 522+	/Applications/browsers/WebKit.app/Contents/Resources/WebCore.framework/Versions/A/WebCore
 0x1a6d000 -  0x1a6dfff com.apple.SpotLightCM 1.0 (121.20.2)	/System/Library/Contextual Menu Items/SpotlightCM.plugin/Contents/MacOS/SpotlightCM
 0x1af6000 -  0x1af8fff com.apple.AutomatorCMM 1.0.1 (54)	/System/Library/Contextual Menu Items/AutomatorCMM.plugin/Contents/MacOS/AutomatorCMM
 0x1b0d000 -  0x1b11fff com.apple.FolderActionsMenu 1.3	/System/Library/Contextual Menu Items/FolderActionsMenu.plugin/Contents/MacOS/FolderActionsMenu
0x8fe00000 - 0x8fe52fff dyld 46.12	/usr/lib/dyld
0x90000000 - 0x901bdfff libSystem.B.dylib 	/usr/lib/libSystem.B.dylib
0x90215000 - 0x9021afff libmathCommon.A.dylib 	/usr/lib/system/libmathCommon.A.dylib
0x9021c000 - 0x90269fff com.apple.CoreText 1.0.3 (???)	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreText.framework/Versions/A/CoreText
0x90294000 - 0x90345fff ATS 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
0x90374000 - 0x9072ffff com.apple.CoreGraphics 1.258.61 (???)	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
0x907bc000 - 0x90895fff com.apple.CoreFoundation 6.4.7 (368.28)	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x908de000 - 0x908defff com.apple.CoreServices 10.4 (???)	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
0x908e0000 - 0x909e2fff libicucore.A.dylib 	/usr/lib/libicucore.A.dylib
0x90a3c000 - 0x90ac0fff libobjc.A.dylib 	/usr/lib/libobjc.A.dylib
0x90aea000 - 0x90b5afff com.apple.framework.IOKit 1.4.1 (???)	/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
0x90b70000 - 0x90b82fff libauto.dylib 	/usr/lib/libauto.dylib
0x90b89000 - 0x90e60fff com.apple.CoreServices.CarbonCore 681.9	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
0x90ec6000 - 0x90f46fff com.apple.CoreServices.OSServices 4.1	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
0x90f90000 - 0x90fd1fff com.apple.CFNetwork 129.20	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
0x90fe6000 - 0x90ffefff com.apple.WebServices 1.1.2 (1.1.0)	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/WebServicesCore.framework/Versions/A/WebServicesCore
0x9100e000 - 0x9108ffff com.apple.SearchKit 1.0.5	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
0x910d5000 - 0x910fffff com.apple.Metadata 10.4.4 (121.36)	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
0x91110000 - 0x9111efff libz.1.dylib 	/usr/lib/libz.1.dylib
0x91121000 - 0x912dcfff com.apple.security 4.6 (29770)	/System/Library/Frameworks/Security.framework/Versions/A/Security
0x913db000 - 0x913e4fff com.apple.DiskArbitration 2.1	/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
0x913eb000 - 0x91413fff com.apple.SystemConfiguration 1.8.3	/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
0x91426000 - 0x91431fff libgcc_s.1.dylib 	/usr/lib/libgcc_s.1.dylib
0x91436000 - 0x9143efff libbsm.dylib 	/usr/lib/libbsm.dylib
0x91442000 - 0x914bdfff com.apple.audio.CoreAudio 3.0.4	/System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
0x914fa000 - 0x914fafff com.apple.ApplicationServices 10.4 (???)	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
0x914fc000 - 0x91534fff com.apple.AE 1.5 (297)	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
0x9154f000 - 0x91621fff com.apple.ColorSync 4.4.9	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync
0x91674000 - 0x91705fff com.apple.print.framework.PrintCore 4.6 (177.13)	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
0x9174c000 - 0x91803fff com.apple.QD 3.10.24 (???)	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
0x91840000 - 0x9189efff com.apple.HIServices 1.5.3 (???)	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
0x918cd000 - 0x918f1fff com.apple.LangAnalysis 1.6.1	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
0x91905000 - 0x9192afff com.apple.FindByContent 1.5	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/FindByContent.framework/Versions/A/FindByContent
0x9193d000 - 0x9197ffff com.apple.LaunchServices 182	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
0x9199b000 - 0x919affff com.apple.speech.synthesis.framework 3.3	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
0x919bd000 - 0x91a03fff com.apple.ImageIO.framework 1.5.4	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO
0x91a1a000 - 0x91ae1fff libcrypto.0.9.7.dylib 	/usr/lib/libcrypto.0.9.7.dylib
0x91b2f000 - 0x91b44fff libcups.2.dylib 	/usr/lib/libcups.2.dylib
0x91b49000 - 0x91b67fff libJPEG.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
0x91b6d000 - 0x91c24fff libJP2.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib
0x91c73000 - 0x91c77fff libGIF.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
0x91c79000 - 0x91ce1fff libRaw.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libRaw.dylib
0x91ce6000 - 0x91d23fff libTIFF.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
0x91d2a000 - 0x91d43fff libPng.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
0x91d48000 - 0x91d4bfff libRadiance.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
0x91d4d000 - 0x91e2bfff libxml2.2.dylib 	/usr/lib/libxml2.2.dylib
0x91e4b000 - 0x91e4bfff com.apple.Accelerate 1.2.2 (Accelerate 1.2.2)	/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
0x91e4d000 - 0x91f32fff com.apple.vImage 2.4	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
0x91f3a000 - 0x91f59fff com.apple.Accelerate.vecLib 3.2.2 (vecLib 3.2.2)	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
0x91fc5000 - 0x92033fff libvMisc.dylib 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
0x9203e000 - 0x920d3fff libvDSP.dylib 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
0x920ed000 - 0x92675fff libBLAS.dylib 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
0x926a8000 - 0x929d3fff libLAPACK.dylib 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
0x92a03000 - 0x92af1fff libiconv.2.dylib 	/usr/lib/libiconv.2.dylib
0x92af4000 - 0x92b7cfff com.apple.DesktopServices 1.3.6	/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv
0x92bbd000 - 0x92de8fff com.apple.Foundation 6.4.8 (567.29)	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
0x92f15000 - 0x92f33fff libGL.dylib 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
0x92f3e000 - 0x92f98fff libGLU.dylib 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
0x92fb6000 - 0x92fb6fff com.apple.Carbon 10.4 (???)	/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
0x92fb8000 - 0x92fccfff com.apple.ImageCapture 3.0	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture
0x92fe4000 - 0x92ff4fff com.apple.speech.recognition.framework 3.4	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition
0x93000000 - 0x93015fff com.apple.securityhi 2.0 (203)	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI
0x93027000 - 0x930aefff com.apple.ink.framework 101.2 (69)	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink
0x930c2000 - 0x930cdfff com.apple.help 1.0.3 (32)	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help
0x930d7000 - 0x93104fff com.apple.openscripting 1.2.5 (???)	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting
0x9311e000 - 0x9312efff com.apple.print.framework.Print 5.0 (190.1)	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print
0x9313a000 - 0x931a0fff com.apple.htmlrendering 1.1.2	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HTMLRendering.framework/Versions/A/HTMLRendering
0x931d1000 - 0x93220fff com.apple.NavigationServices 3.4.4 (3.4.3)	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/NavigationServices.framework/Versions/A/NavigationServices
0x9324e000 - 0x9326bfff com.apple.audio.SoundManager 3.9	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CarbonSound.framework/Versions/A/CarbonSound
0x9327d000 - 0x9328afff com.apple.CommonPanels 1.2.2 (73)	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels
0x93293000 - 0x935a1fff com.apple.HIToolbox 1.4.9 (???)	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
0x936f1000 - 0x936fdfff com.apple.opengl 1.4.7	/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
0x93702000 - 0x93722fff com.apple.DirectoryService.Framework 3.1	/System/Library/Frameworks/DirectoryService.framework/Versions/A/DirectoryService
0x937be000 - 0x937befff com.apple.Cocoa 6.4 (???)	/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
0x937c0000 - 0x93df3fff com.apple.AppKit 6.4.7 (824.41)	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
0x94180000 - 0x941f2fff com.apple.CoreData 91 (92.1)	/System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
0x9422b000 - 0x942effff com.apple.audio.toolbox.AudioToolbox 1.4.5	/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
0x94341000 - 0x94341fff com.apple.audio.units.AudioUnit 1.4	/System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
0x94343000 - 0x94503fff com.apple.QuartzCore 1.4.12	/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
0x9454d000 - 0x9458afff libsqlite3.0.dylib 	/usr/lib/libsqlite3.0.dylib
0x94592000 - 0x945e2fff libGLImage.dylib 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
0x945eb000 - 0x945fffff com.apple.CoreVideo 1.4	/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
0x94695000 - 0x946cdfff com.apple.vmutils 4.0.0 (85)	/System/Library/PrivateFrameworks/vmutils.framework/Versions/A/vmutils
0x94710000 - 0x9472cfff com.apple.securityfoundation 2.2 (27710)	/System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
0x94740000 - 0x94784fff com.apple.securityinterface 2.2 (27692)	/System/Library/Frameworks/SecurityInterface.framework/Versions/A/SecurityInterface
0x947a8000 - 0x947b7fff libCGATS.A.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGATS.A.dylib
0x947bf000 - 0x947cbfff libCSync.A.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCSync.A.dylib
0x94811000 - 0x94829fff libRIP.A.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib
0x94bc9000 - 0x94c3afff libstdc++.6.dylib 	/usr/lib/libstdc++.6.dylib
0x94daf000 - 0x94edffff com.apple.AddressBook.framework 4.0.4 (485.1)	/System/Library/Frameworks/AddressBook.framework/Versions/A/AddressBook
0x94f71000 - 0x94f80fff com.apple.DSObjCWrappers.Framework 1.1	/System/Library/PrivateFrameworks/DSObjCWrappers.framework/Versions/A/DSObjCWrappers
0x94f88000 - 0x94fb5fff com.apple.LDAPFramework 1.4.1 (69.0.1)	/System/Library/Frameworks/LDAP.framework/Versions/A/LDAP
0x94fbc000 - 0x94fccfff libsasl2.2.dylib 	/usr/lib/libsasl2.2.dylib
0x94fd0000 - 0x94ffffff libssl.0.9.7.dylib 	/usr/lib/libssl.0.9.7.dylib
0x9500f000 - 0x9502cfff libresolv.9.dylib 	/usr/lib/libresolv.9.dylib
0x9620e000 - 0x96237fff libxslt.1.dylib 	/usr/lib/libxslt.1.dylib
0x97aa7000 - 0x97ab4fff com.apple.agl 2.5.6 (AGL-2.5.6)	/System/Library/Frameworks/AGL.framework/Versions/A/AGL
0x9b291000 - 0x9b2c7fff com.apple.Syndication 1.0.6 (54)	/System/Library/PrivateFrameworks/Syndication.framework/Versions/A/Syndication
0x9b2e4000 - 0x9b2f6fff com.apple.SyndicationUI 1.0.6 (54)	/System/Library/PrivateFrameworks/SyndicationUI.framework/Versions/A/SyndicationUI

Model: PowerBook5,8, BootROM 4.9.6f0, 1 processors, PowerPC G4 (1.5), 1.67 GHz, 1.5 GB
Graphics: ATI Mobility Radeon 9700, ATY,RV360M11, AGP, 128 MB
Memory Module: SODIMM0/J20STANDARD, 512 MB, DDR2 SDRAM, PC2-4200S-444
Memory Module: SODIMM1/J23REVERSED, 1 GB, DDR2 SDRAM, PC2-4200S-444
AirPort: AirPort Extreme, 405.1 (3.90.34.0.p18)
Modem: Jump, V.92, Version 1.0
Bluetooth: Version 1.7.14f14, 2 service, 0 devices, 1 incoming serial ports
Network Service: Built-in Ethernet, Ethernet, en0
Network Service: AirPort, AirPort, en1
PCI Card: pci106b,4318, sppci_othernetwork, SLOT-A
PCI Card: TXN,PCIXXXX-00, cardbus, PC Card
PCI Card: usb, usb, USB20
PCI Card: usb, usb, USB20
PCI Card: usb, ehci, USB20
Parallel ATA Device: ST9808211A, 74.53 GB
Parallel ATA Device: MATSHITADVD-R   UJ-846
USB Device: Bluetooth HCI, Up to 12 Mb/sec, 500 mA
USB Device: Apple Internal Keyboard / Trackpad, Apple Computer, Up to 12 Mb/sec, 500 mA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15905</commentid>
    <comment_count>1</comment_count>
    <who name="Ross McDonald">ross.mcdonald</who>
    <bug_when>2007-04-01 02:28:46 -0700</bug_when>
    <thetext>I had the Web Inspector window open at the time, and can recreate this successfully....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15909</commentid>
    <comment_count>2</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-04-01 08:14:29 -0700</bug_when>
    <thetext>Reproducible by doing some b/f navigation while the inspector is open.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15911</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-04-01 10:21:25 -0700</bug_when>
    <thetext>Using gdb I found out that the crash happens in inspector.js:469. At the time of the crash, focusedNode, which was a JSHTMLDocument has already been deleted (during earlier GC), despite the fact that the Obj-C wrapper (_private-&gt;focusedNode) is still alive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15912</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-04-01 12:22:49 -0700</bug_when>
    <thetext>The Document&apos;s JS wrapper gets unprotected when the bindings root is invalidated when the Frame is cleared. However, the ObjC wrapper sticks around and therefore also the entry in the ObjC wrapper cache mapping the Document to it. Thus the inspector is able to retrieve the ObjC wrapper which now points to a destroyed JS wrapper.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15915</commentid>
    <comment_count>5</comment_count>
      <attachid>13915</attachid>
    <who name="">mitz</who>
    <bug_when>2007-04-02 02:04:03 -0700</bug_when>
    <thetext>Created attachment 13915
Demo app (source)

To reproduce the bug with this application, build it an run it linked to TOT WebKit. Do the following:

1) Press Return to load the &quot;a&quot; document.
2) Click the Store button to make and retain an Obj-C wrapper for the document.
3) Choose the &quot;about:blank&quot; document from the combo box, to load that into the view. This destroys the JS wrapper for the document.
4) Click the Back button to go back to the &quot;a&quot; document.
5) Click the Use button to pass the document to JavaScript and try to use it. This will trigger the crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15916</commentid>
    <comment_count>6</comment_count>
      <attachid>13916</attachid>
    <who name="">mitz</who>
    <bug_when>2007-04-02 03:06:47 -0700</bug_when>
    <thetext>Created attachment 13916
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15919</commentid>
    <comment_count>7</comment_count>
      <attachid>13916</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-04-02 08:01:39 -0700</bug_when>
    <thetext>Comment on attachment 13916
Proposed patch

I don&apos;t see any reason to use the rootObject protect/unprotect if we&apos;re also going to directly protect/unprotect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15922</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-04-02 08:42:32 -0700</bug_when>
    <thetext>I&apos;m not sure this qualifies as a regression -- it requires use of the inspector so won&apos;t affect most users.

I&apos;m a little worried about storage leaks. It might be better to guard use of the JS implementation pointer in the WebScriptObject implementation so the object &quot;goes dead&quot; if the root object is gone. I&apos;d like to hear Geoff&apos;s comment on that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15924</commentid>
    <comment_count>9</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-04-02 08:48:46 -0700</bug_when>
    <thetext>I agree with Darin. The alternative would enable careless plug-ins to leak the whole window. (Ultimately, I&apos;m on the fence about whether the browser should try to guard against plug-in leaks -- what about direct malloc leaks? or mmap leaks? -- but WebKit has always guarded against this kind of leak, so I think it needs to keep doing so.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15925</commentid>
    <comment_count>10</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-04-02 08:52:57 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; I&apos;m not sure this qualifies as a regression -- it requires use of the inspector
&gt; so won&apos;t affect most users.

It is a regression since linked against shipping WebKit, the demo app doesn&apos;t crash, while linked against TOT it does.

&gt; I&apos;m a little worried about storage leaks. It might be better to guard use of
&gt; the JS implementation pointer in the WebScriptObject implementation so the
&gt; object &quot;goes dead&quot; if the root object is gone. I&apos;d like to hear Geoff&apos;s comment
&gt; on that.

I also realized that the proposed patch didn&apos;t solve the problem of calling -callWebScriptMethod... on an object with invalidated root and hitting the ASSERT in RootObject::interpreter() (or crashing).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15926</commentid>
    <comment_count>11</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-04-02 08:59:12 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; calling
&gt; -callWebScriptMethod... on an object with invalidated root and hitting the
&gt; ASSERT in RootObject::interpreter() (or crashing).

Wrong again (this cannot happen because -[WebScriptObject _root] is nil when the root is invalid).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15881</commentid>
    <comment_count>12</comment_count>
      <attachid>13926</attachid>
    <who name="">mitz</who>
    <bug_when>2007-04-02 14:18:02 -0700</bug_when>
    <thetext>Created attachment 13926
Check JS wrapper validity and recreate if needed

I don&apos;t think it&apos;s possible or desirable to &quot;kill&quot; the object as suggested in comment #8 (the way I understood it). This patch just fetches a new JS wrapper for the DOM node if the old one is gone (it is also possible that the root is invalid but the old wrapper is still alive thanks to some other JS object pointing to it or any part of the DOM, in which case I believe the same old wrapper will be refetched and subsequently reprotected by a different, valid root object).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15822</commentid>
    <comment_count>13</comment_count>
      <attachid>13926</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-04-03 09:17:13 -0700</bug_when>
    <thetext>Comment on attachment 13926
Check JS wrapper validity and recreate if needed

This looks like a safer approach to me, but I&apos;d like Geoff and perhaps Maciej to evaluate it too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15832</commentid>
    <comment_count>14</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-04-03 15:45:52 -0700</bug_when>
    <thetext>In the WebScriptObject API, once a RootObject becomes invalid, any WebScriptObject created with it goes &quot;inert&quot; with respect to JavaScript. This means, for example, that if you call -valueForKey: on such an object, you&apos;ll unconditionally get back nil. I don&apos;t think that&apos;s a great API, but we probably shouldn&apos;t change it now.

This patch would poke a small hole in that API, allowing you to pass an inert WebScriptObject as an argument to a JavaScript function, even though you couldn&apos;t use the WebScriptObject in any other JavaScript context. I see three problems with that:

1. It&apos;s inconsistent, and therefore confusing.

2. It doesn&apos;t fix the crash in all cases. A WebScriptObject will fail to regenerate its JS counterpart if its document is not in a frame, in which case, it will still vend a stale pointer.

3. Because it resets the WebScriptObject&apos;s RootObject, it breaks the (admittedly not very strong) cross-frame scripting security model.

I think it&apos;s possible to make the object&apos;s inert-ness apply when its used as an argument to a function, too. The -_imp method can just return nil if rootObject-&gt;isValid() returns false. The tricky part will be finding all the callers of _imp and getting them to respect a nil return value, but I think that&apos;s definitely do-able.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15793</commentid>
    <comment_count>15</comment_count>
      <attachid>13926</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-04-03 15:47:38 -0700</bug_when>
    <thetext>Comment on attachment 13926
Check JS wrapper validity and recreate if needed

r- for the issues I mentioned above (sorry, mitz!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15050</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-04-11 02:11:10 -0700</bug_when>
    <thetext>&lt;rdar://problem/5126394&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5576</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-07-04 22:08:20 -0700</bug_when>
    <thetext>Given Geoff&apos;s comments, I know how to fix this, but I can&apos;t seem to reproduce the bug. I have a patch sitting on one of my machines that I can attach.

I tried using the inspector and then doing back/forward. I immediately hit another crash, so I fixed those first. Once I fixed the crashes I saw, I couldn&apos;t reproduce this using the inspector and back/forward.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5575</commentid>
    <comment_count>18</comment_count>
      <attachid>15392</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-07-04 22:10:24 -0700</bug_when>
    <thetext>Created attachment 15392
patch to fix, not this bug, but other problems seen testing inspector with back/forward

I wanted to put this patch up here. I probably should file a new bug report about these other problems I saw and attach the patch to that for review, but for the moment, I&apos;ll just do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5565</commentid>
    <comment_count>19</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-07-04 23:43:41 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Given Geoff&apos;s comments, I know how to fix this, but I can&apos;t seem to reproduce
&gt; the bug. I have a patch sitting on one of my machines that I can attach.

Does this bug no longer reproduce with the demo app?

(In reply to comment #18)
&gt; patch to fix, not this bug, but other problems seen testing inspector with
&gt; back/forward

Perhaps your patch belongs in bug 14337.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5558</commentid>
    <comment_count>20</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-07-05 00:49:22 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Does this bug no longer reproduce with the demo app?

Oh, I never tried the demo app!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4042</commentid>
    <comment_count>21</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-07-22 14:18:02 -0700</bug_when>
    <thetext>&lt;http://trac.webkit.org/projects/webkit/changeset/24493&gt; has made the crash a little harder to reproduce with the demo app (by coalescing two garbage collections).

To reproduce the bug with r24493 or later, build the demo app an run it linked to TOT
WebKit. Do the following:

1) Press Return to load the &quot;a&quot; document.
2) Click the Store button to make and retain an Obj-C wrapper for the document.
3) Choose the &quot;about:blank&quot; document from the combo box, to load that into the
view. This destroys the JS wrapper for the document.
4) Enter &quot;data:text/html,b&quot; in the combo box and press Return to load a &quot;b&quot; document.
5) Click the Back button to go back to about:blank.
6) Click the Back button to go back to the &quot;a&quot; document.
7) Click the Use button to pass the document to JavaScript and try to use it.
This will trigger the crash.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4027</commentid>
    <comment_count>22</comment_count>
      <attachid>15630</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-07-22 15:33:55 -0700</bug_when>
    <thetext>Created attachment 15630
check root object for validity whenever using the ObjC wrapper</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4031</commentid>
    <comment_count>23</comment_count>
      <attachid>15630</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-07-22 15:49:00 -0700</bug_when>
    <thetext>Comment on attachment 15630
check root object for validity whenever using the ObjC wrapper

Kevin Decker reviewed this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3995</commentid>
    <comment_count>24</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-07-22 22:08:41 -0700</bug_when>
    <thetext>Committed revision 24524.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>13915</attachid>
            <date>2007-04-02 02:04:03 -0700</date>
            <delta_ts>2007-04-02 02:04:03 -0700</delta_ts>
            <desc>Demo app (source)</desc>
            <filename>WebKitBug13250.tgz</filename>
            <type>application/x-gzip</type>
            <size>17726</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13916</attachid>
            <date>2007-04-02 03:06:47 -0700</date>
            <delta_ts>2007-07-22 15:33:55 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>13250_r1.patch</filename>
            <type>text/plain</type>
            <size>2511</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMDY1MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDctMDQtMDIgIE1pdHogUGV0dGVsICA8bWl0ekB3ZWJraXQub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gZml4
IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjUwCisgICAgICAgICAg
UkVHUkVTU0lPTjogQnJvd3NlciBjcmFzaCBvbiBjbGlja2luZyBiYWNrIGJ1dHRvbiB3aGlsZSBh
dCBsaW5rIHNwZWNpZmllZCBhYm92ZSAoT2JqQyB3cmFwcGVyIG91dGxpdmVzIEpTIHdyYXBwZXIp
CisKKyAgICAgICAgTWFkZSBXZWJTY3JpcHRPYmplY3QgcHJvdGVjdCB0aGUgSlMgb2JqZWN0IGRp
cmVjdGx5LCBpbiBhZGRpdGlvbiB0byBhZGRpbmcKKyAgICAgICAgaXQgdG8gdGhlIHJvb3Qgb2Jq
ZWN0J3MgcHJvdGVjdGVkIHNldC4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgcm9vdCBv
YmplY3QKKyAgICAgICAgY2FuIGJlIGludmFsaWRhdGVkICh0aHVzIGRyb3BwaW5nIGl0cyBvd24g
cHJvdGVjdGlvbiBvZiB0aGUgSlMgb2JqZWN0KSB3aGlsZSB0aGUKKyAgICAgICAgY2xpZW50IGlz
IHN0aWxsIHJldGFpbmluZyB0aGUgV2ViU2NyaXB0T2JqZWN0LgorCisgICAgICAgICogYmluZGlu
Z3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW06CisgICAgICAgICgtW1dlYlNjcmlwdE9iamVjdCBf
c2V0SW1wOm9yaWdpblJvb3RPYmplY3Q6cm9vdE9iamVjdDpdKToKKyAgICAgICAgKC1bV2ViU2Ny
aXB0T2JqZWN0IGRlYWxsb2NdKToKKyAgICAgICAgKC1bV2ViU2NyaXB0T2JqZWN0IGZpbmFsaXpl
XSk6CisKIDIwMDctMDMtMzEgIEtyenlzenRvZiBLb3dhbGN6eWsgIDxra293YWxjenlrQGdtYWls
LmNvbT4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQgLSBnZGsgYnVpbGQgZml4LgpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCShyZXZpc2lvbiAyMDY0OCkKKysr
IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0JKHdvcmtpbmcgY29weSkK
QEAgLTc4LDYgKzc4LDEwIEBAIHN0YXRpYyB2b2lkIF9kaWRFeGVjdXRlKFdlYlNjcmlwdE9iamVj
dCAKIAogICAgIGlmKF9wcml2YXRlLT5yb290T2JqZWN0KQogICAgICAgICBfcHJpdmF0ZS0+cm9v
dE9iamVjdC0+Z2NQcm90ZWN0KGltcCk7CisgICAgLy8gV2UgbWF5IHN0aWNrIGFyb3VuZCBhZnRl
ciB0aGUgcm9vdCBvYmplY3QgaXMgaW52YWxpZGF0ZWQsIHNvIHdlIG5lZWQgdG8KKyAgICAvLyBh
bHNvIHByb3RlY3QgdGhlIEpTIG9iamVjdCBvdXJzZWx2ZXMuCisgICAgSlNMb2NrIGxvY2s7Cisg
ICAgZ2NQcm90ZWN0KGltcCk7CiB9CiAKIC0gKGlkKV9pbml0V2l0aEpTT2JqZWN0OihLSlM6OkpT
T2JqZWN0KilpbXAgb3JpZ2luUm9vdE9iamVjdDooUGFzc1JlZlB0cjxLSlM6OkJpbmRpbmdzOjpS
b290T2JqZWN0PilvcmlnaW5Sb290T2JqZWN0IHJvb3RPYmplY3Q6KFBhc3NSZWZQdHI8S0pTOjpC
aW5kaW5nczo6Um9vdE9iamVjdD4pcm9vdE9iamVjdApAQCAtMTMxLDYgKzEzNSwxMSBAQCBzdGF0
aWMgdm9pZCBfZGlkRXhlY3V0ZShXZWJTY3JpcHRPYmplY3QgCiAgICAgaWYgKF9wcml2YXRlLT5y
b290T2JqZWN0ICYmIF9wcml2YXRlLT5yb290T2JqZWN0LT5pc1ZhbGlkKCkpCiAgICAgICAgIF9w
cml2YXRlLT5yb290T2JqZWN0LT5nY1VucHJvdGVjdChfcHJpdmF0ZS0+aW1wKTsKIAorICAgIGlm
IChfcHJpdmF0ZS0+aW1wKSB7CisgICAgICAgIEpTTG9jayBsb2NrOworICAgICAgICBnY1VucHJv
dGVjdChfcHJpdmF0ZS0+aW1wKTsKKyAgICB9CisKICAgICBpZiAoX3ByaXZhdGUtPnJvb3RPYmpl
Y3QpCiAgICAgICAgIF9wcml2YXRlLT5yb290T2JqZWN0LT5kZXJlZigpOwogCkBAIC0xNDcsNiAr
MTU2LDExIEBAIHN0YXRpYyB2b2lkIF9kaWRFeGVjdXRlKFdlYlNjcmlwdE9iamVjdCAKICAgICBp
ZiAoX3ByaXZhdGUtPnJvb3RPYmplY3QgJiYgX3ByaXZhdGUtPnJvb3RPYmplY3QtPmlzVmFsaWQo
KSkKICAgICAgICAgX3ByaXZhdGUtPnJvb3RPYmplY3QtPmdjVW5wcm90ZWN0KF9wcml2YXRlLT5p
bXApOwogCisgICAgaWYgKF9wcml2YXRlLT5pbXApIHsKKyAgICAgICAgSlNMb2NrIGxvY2s7Cisg
ICAgICAgIGdjVW5wcm90ZWN0KF9wcml2YXRlLT5pbXApOworICAgIH0KKwogICAgIGlmIChfcHJp
dmF0ZS0+cm9vdE9iamVjdCkKICAgICAgICAgX3ByaXZhdGUtPnJvb3RPYmplY3QtPmRlcmVmKCk7
CiAK
</data>
<flag name="review"
          id="5592"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13926</attachid>
            <date>2007-04-02 14:18:02 -0700</date>
            <delta_ts>2007-07-22 15:33:55 -0700</delta_ts>
            <desc>Check JS wrapper validity and recreate if needed</desc>
            <filename>13250_r3.patch</filename>
            <type>text/plain</type>
            <size>3738</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMDY2NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMDctMDQtMDIgIE1pdHogUGV0dGVsICA8bWl0ekB3ZWJraXQub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gZml4
IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjUwCisgICAgICAgICAg
UkVHUkVTU0lPTjogQnJvd3NlciBjcmFzaCBvbiBjbGlja2luZyBiYWNrIGJ1dHRvbiB3aGlsZSBh
dCBsaW5rIHNwZWNpZmllZCBhYm92ZSAoT2JqQyB3cmFwcGVyIG91dGxpdmVzIEpTIHdyYXBwZXIp
CisKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbToKKyAgICAgICAg
KC1bV2ViU2NyaXB0T2JqZWN0IF9zZXRJbXA6b3JpZ2luUm9vdE9iamVjdDpyb290T2JqZWN0Ol0p
OgorICAgICAgICAoLVtXZWJTY3JpcHRPYmplY3QgX3Jlc2V0SW1wXSk6IEFkZGVkLiBUaGlzIG1l
dGhvZCBjbGVhcnMgdGhlIG9sZCB3cmFwcGVyCisgICAgICAgIGFuZCByb290IG9iamVjdHMuCisg
ICAgICAgICgtW1dlYlNjcmlwdE9iamVjdCBfaW1wXSk6IEFkZGVkIGEgY2hlY2sgdGhhdCB0aGUg
Y3VycmVudCByb290IG9iamVjdCBmb3IgdGhlCisgICAgICAgIHdyYXBwZXIgaXMgdmFsaWQuIElm
IGl0IGlzIG5vdCwgdGhlbiBhcyBmYXIgYXMgd2Uga25vdywgdGhlcmUgaXMgbm90aGluZworICAg
ICAgICBwcm90ZWN0aW5nIHRoZSBKUyB3cmFwcGVyIG9iamVjdCwgYW5kIGl0IG1heSBiZSBpbnZh
bGlkLCBzbyBpbiB0aGF0IGNhc2Ugd2UKKyAgICAgICAgY2FsbCBfcmVzZXRJbXAgdG8gY2xlYXIg
dGhlIG9sZCB3cmFwcGVyIGFuZCB0aGVuIHByb2NlZWQgdG8gaW5pdGlhbGl6ZSBhIG5ldworICAg
ICAgICBvbmUuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3RQcml2YXRl
Lmg6CisKIDIwMDctMDQtMDIgIEp1c3RpbiBHYXJjaWEgIDxqdXN0aW4uZ2FyY2lhQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBkYXJpbgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL1dlYlNjcmlwdE9iamVjdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29i
amMvV2ViU2NyaXB0T2JqZWN0Lm1tCShyZXZpc2lvbiAyMDY1NCkKKysrIFdlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0JKHdvcmtpbmcgY29weSkKQEAgLTY3LDcgKzY3LDYg
QEAgc3RhdGljIHZvaWQgX2RpZEV4ZWN1dGUoV2ViU2NyaXB0T2JqZWN0IAogCiAtICh2b2lkKV9z
ZXRJbXA6KEpTT2JqZWN0KilpbXAgb3JpZ2luUm9vdE9iamVjdDooUGFzc1JlZlB0cjxSb290T2Jq
ZWN0PilvcmlnaW5Sb290T2JqZWN0IHJvb3RPYmplY3Q6KFBhc3NSZWZQdHI8Um9vdE9iamVjdD4p
cm9vdE9iamVjdAogewotICAgIC8vIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgY2FsbGVk
IG9uY2UsIGFzIGEgKHBvc3NpYmx5IGxhenkpIGluaXRpYWxpemVyLgogICAgIEFTU0VSVCghX3By
aXZhdGUtPmltcCk7CiAgICAgQVNTRVJUKCFfcHJpdmF0ZS0+cm9vdE9iamVjdCk7CiAgICAgQVNT
RVJUKCFfcHJpdmF0ZS0+b3JpZ2luUm9vdE9iamVjdCk7CkBAIC04MCw2ICs3OSwyMyBAQCBzdGF0
aWMgdm9pZCBfZGlkRXhlY3V0ZShXZWJTY3JpcHRPYmplY3QgCiAgICAgICAgIF9wcml2YXRlLT5y
b290T2JqZWN0LT5nY1Byb3RlY3QoaW1wKTsKIH0KIAorLSAodm9pZClfcmVzZXRJbXAKK3sKKyAg
ICBBU1NFUlQoX3ByaXZhdGUtPmltcCk7CisgICAgQVNTRVJUKF9wcml2YXRlLT5yb290T2JqZWN0
KTsKKyAgICBBU1NFUlQoIV9wcml2YXRlLT5yb290T2JqZWN0LT5pc1ZhbGlkKCkpOworCisgICAg
X3ByaXZhdGUtPmltcCA9IDA7CisKKyAgICBfcHJpdmF0ZS0+cm9vdE9iamVjdC0+ZGVyZWYoKTsK
KyAgICBfcHJpdmF0ZS0+cm9vdE9iamVjdCA9IDA7CisKKyAgICBpZiAoX3ByaXZhdGUtPm9yaWdp
blJvb3RPYmplY3QpIHsKKyAgICAgICAgX3ByaXZhdGUtPm9yaWdpblJvb3RPYmplY3QtPmRlcmVm
KCk7CisgICAgICAgIF9wcml2YXRlLT5vcmlnaW5Sb290T2JqZWN0ID0gMDsKKyAgICB9Cit9CisK
IC0gKGlkKV9pbml0V2l0aEpTT2JqZWN0OihLSlM6OkpTT2JqZWN0KilpbXAgb3JpZ2luUm9vdE9i
amVjdDooUGFzc1JlZlB0cjxLSlM6OkJpbmRpbmdzOjpSb290T2JqZWN0PilvcmlnaW5Sb290T2Jq
ZWN0IHJvb3RPYmplY3Q6KFBhc3NSZWZQdHI8S0pTOjpCaW5kaW5nczo6Um9vdE9iamVjdD4pcm9v
dE9iamVjdAogewogICAgIEFTU0VSVChpbXApOwpAQCAtOTUsNiArMTExLDkgQEAgc3RhdGljIHZv
aWQgX2RpZEV4ZWN1dGUoV2ViU2NyaXB0T2JqZWN0IAogewogICAgIC8vIEFzc29jaWF0ZSB0aGUg
V2ViU2NyaXB0T2JqZWN0IHdpdGggdGhlIEpTIHdyYXBwZXIgZm9yIHRoZSBPYmpDIERPTSB3cmFw
cGVyLgogICAgIC8vIFRoaXMgaXMgZG9uZSBvbiBsYXppbHksIG9uIGRlbWFuZC4KKyAgICBpZiAo
X3ByaXZhdGUtPmltcCAmJiBfcHJpdmF0ZS0+cm9vdE9iamVjdCAmJiAhX3ByaXZhdGUtPnJvb3RP
YmplY3QtPmlzVmFsaWQoKSkKKyAgICAgICAgLy8gVGhlIGNhY2hlZCBKUyB3cmFwcGVyIG1heSBi
ZSBpbnZhbGlkLCBzbyB3ZSBjbGVhciBpdCBhbmQgcmVpbml0aWFsaXplLgorICAgICAgICBbc2Vs
ZiBfcmVzZXRJbXBdOwogICAgIGlmICghX3ByaXZhdGUtPmltcCAmJiBfcHJpdmF0ZS0+aXNDcmVh
dGVkQnlET01XcmFwcGVyKQogICAgICAgICBbc2VsZiBfaW5pdGlhbGl6ZVNjcmlwdERPTU5vZGVJ
bXBdOwogICAgIHJldHVybiBfcHJpdmF0ZS0+aW1wOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL1dlYlNjcmlwdE9iamVjdFByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL29iamMvV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oCShyZXZpc2lvbiAyMDY1NCkKKysrIFdl
YkNvcmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3RQcml2YXRlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE0LDYgKzE0LDcgQEAKIC0gKGlkKV9pbml0OwogLSAoaWQpX2luaXRXaXRoSlNPYmpl
Y3Q6KEtKUzo6SlNPYmplY3QqKWltcCBvcmlnaW5Sb290T2JqZWN0OihQYXNzUmVmUHRyPEtKUzo6
QmluZGluZ3M6OlJvb3RPYmplY3Q+KW9yaWdpblJvb3RPYmplY3Qgcm9vdE9iamVjdDooUGFzc1Jl
ZlB0cjxLSlM6OkJpbmRpbmdzOjpSb290T2JqZWN0Pilyb290T2JqZWN0OwogLSAodm9pZClfc2V0
SW1wOihLSlM6OkpTT2JqZWN0KilpbXAgb3JpZ2luUm9vdE9iamVjdDooUGFzc1JlZlB0cjxLSlM6
OkJpbmRpbmdzOjpSb290T2JqZWN0PilvcmlnaW5Sb290T2JqZWN0IHJvb3RPYmplY3Q6KFBhc3NS
ZWZQdHI8S0pTOjpCaW5kaW5nczo6Um9vdE9iamVjdD4pcm9vdE9iamVjdDsKKy0gKHZvaWQpX3Jl
c2V0SW1wOwogLSAodm9pZClfaW5pdGlhbGl6ZVNjcmlwdERPTU5vZGVJbXA7CiAtIChLSlM6OkpT
T2JqZWN0ICopX2ltcDsKIC0gKEJPT0wpX2hhc0ltcDsK
</data>
<flag name="review"
          id="5601"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15392</attachid>
            <date>2007-07-04 22:10:24 -0700</date>
            <delta_ts>2007-07-22 15:33:55 -0700</delta_ts>
            <desc>patch to fix, not this bug, but other problems seen testing inspector with back/forward</desc>
            <filename>FixBackForwardCrash.txt</filename>
            <type>text/plain</type>
            <size>10839</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
LmV4cAkocmV2aXNpb24gMjM5OTIpCisrKyBXZWJDb3JlL1dlYkNvcmUuZXhwCSh3b3JraW5nIGNv
cHkpCkBAIC00MjEsNiArNDIxLDcgQEAgX19aTjdXZWJDb3JlNldpZGdldEMxRXYKIF9fWk43V2Vi
Q29yZTdJbnRTaXplQzFFUks3X05TU2l6ZQogX19aTjdXZWJDb3JlN25zQ29sb3JFUktOU181Q29s
b3JFCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQxMWNvbXBsZXRlVVJMRVJLTlNfMTZEZXByZWNhdGVk
U3RyaW5nRQorX19aTjdXZWJDb3JlOERvY3VtZW50MTFpblBhZ2VDYWNoZUV2CiBfX1pON1dlYkNv
cmU4RG9jdW1lbnQxM3JlbW92ZU1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtlcjEwTWFya2VyVHlw
ZUUKIF9fWk43V2ViQ29yZThEb2N1bWVudDE0c2V0Rm9jdXNlZE5vZGVFTjNXVEYxMFBhc3NSZWZQ
dHJJTlNfNE5vZGVFRUUKIF9fWk43V2ViQ29yZThEb2N1bWVudDRib2R5RXYKQEAgLTU3MSw5ICs1
NzIsNiBAQCBfX1pOSzdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTEwY29ubmVjdGlvCiBfX1pOSzdX
ZWJDb3JlMTRSZXNvdXJjZUxvYWRlcjExZnJhbWVMb2FkZXJFdgogX19aTks3V2ViQ29yZTE1UHJv
Z3Jlc3NUcmFja2VyMTdlc3RpbWF0ZWRQcm9ncmVzc0V2CiBfX1pOSzdXZWJDb3JlMTVSZXNvdXJj
ZVJlcXVlc3QxMm5zVVJMUmVxdWVzdEV2Ci1fX1pOSzdXZWJDb3JlMTlSZXNvdXJjZVJlcXVlc3RC
YXNlMTZodHRwSGVhZGVyRmllbGRzRXYKLV9fWk5LN1dlYkNvcmUxOVJlc291cmNlUmVxdWVzdEJh
c2UzdXJsRXYKLV9fWk5LN1dlYkNvcmUxOVJlc291cmNlUmVxdWVzdEJhc2U3aXNFbXB0eUV2CiBf
X1pOSzdXZWJDb3JlMTZEZXByZWNhdGVkU3RyaW5nMTFnZXROU1N0cmluZ0V2CiBfX1pOSzdXZWJD
b3JlMTZEZXByZWNhdGVkU3RyaW5nMmF0RWoKIF9fWk5LN1dlYkNvcmUxNkRlcHJlY2F0ZWRTdHJp
bmczbWlkRWpqCkBAIC01ODYsNiArNTg0LDkgQEAgX19aTks3V2ViQ29yZTE2UmVzb3VyY2VSZXNw
b25zZTE3c3VnZ2VzdAogX19aTks3V2ViQ29yZTE2UmVzb3VyY2VSZXNwb25zZTIxZXhwZWN0ZWRD
b250ZW50TGVuZ3RoRXYKIF9fWk5LN1dlYkNvcmUxNlJlc291cmNlUmVzcG9uc2UzdXJsRXYKIF9f
Wk5LN1dlYkNvcmUxNlJlc291cmNlUmVzcG9uc2U4bWltZVR5cGVFdgorX19aTks3V2ViQ29yZTE5
UmVzb3VyY2VSZXF1ZXN0QmFzZTE2aHR0cEhlYWRlckZpZWxkc0V2CitfX1pOSzdXZWJDb3JlMTlS
ZXNvdXJjZVJlcXVlc3RCYXNlM3VybEV2CitfX1pOSzdXZWJDb3JlMTlSZXNvdXJjZVJlcXVlc3RC
YXNlN2lzRW1wdHlFdgogX19aTks3V2ViQ29yZTE5U2VsZWN0aW9uQ29udHJvbGxlcjE3aXNJblBh
c3N3b3JkRmllbGRFdgogX19aTks3V2ViQ29yZTI2TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI2
aXNEb25lRXYKIF9fWk5LN1dlYkNvcmU0Rm9udDExcHJpbWFyeUZvbnRFdgpAQCAtNTk3LDEwICs1
OTgsMTAgQEAgX19aTks3V2ViQ29yZTVGcmFtZTEwaXNGcmFtZVNldEV2CiBfX1pOSzdXZWJDb3Jl
NUZyYW1lMTJldmVudEhhbmRsZXJFdgogX19aTks3V2ViQ29yZTVGcmFtZTEyb3duZXJFbGVtZW50
RXYKIF9fWk5LN1dlYkNvcmU1RnJhbWUxM3NlbGVjdGlvblJlY3RFYgotX19aTks3V2ViQ29yZTVG
cmFtZTE4c2VsZWN0aW9uVGV4dFJlY3RzRVJOM1dURjZWZWN0b3JJTlNfOUZsb2F0UmVjdEVMbTBF
RUViCiBfX1pOSzdXZWJDb3JlNUZyYW1lMTRzZWxlY3Rpb25JbWFnZUViCiBfX1pOSzdXZWJDb3Jl
NUZyYW1lMTVyZXZlYWxTZWxlY3Rpb25FUktOU18xMVJlbmRlckxheWVyMTVTY3JvbGxBbGlnbm1l
bnRFCiBfX1pOSzdXZWJDb3JlNUZyYW1lMTZpblZpZXdTb3VyY2VNb2RlRXYKK19fWk5LN1dlYkNv
cmU1RnJhbWUxOHNlbGVjdGlvblRleHRSZWN0c0VSTjNXVEY2VmVjdG9ySU5TXzlGbG9hdFJlY3RF
TG0wRUVFYgogX19aTks3V2ViQ29yZTVGcmFtZTE5c2VsZWN0aW9uQ29udHJvbGxlckV2CiBfX1pO
SzdXZWJDb3JlNUZyYW1lMTlzZXRJblZpZXdTb3VyY2VNb2RlRWIKIF9fWk5LN1dlYkNvcmU1RnJh
bWUzMGFwcGx5RWRpdGluZ1N0eWxlVG9Cb2R5RWxlbWVudEV2CkluZGV4OiBXZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZp
c2lvbiAyMzk5MikKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjEyNywxNyArMjEyNywxOCBAQCB2b2lkIERvY3VtZW50OjpzZXREYXNoYm9hcmRSZWdpb25z
KGNvbnN0CiB9CiAKIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHI8Tm9k
ZT4gbmV3Rm9jdXNlZE5vZGUpCi17ICAgIAotICAgIC8vIE1ha2Ugc3VyZSBuZXdGb2N1c2VkTm9k
ZSBpcyBhY3R1YWxseSBpbiB0aGlzIGRvY3VtZW50Ci0gICAgaWYgKG5ld0ZvY3VzZWROb2RlICYm
IChuZXdGb2N1c2VkTm9kZS0+ZG9jdW1lbnQoKSAhPSB0aGlzKSkKK3sKKyAgICBBU1NFUlQoIW1f
aW5QYWdlQ2FjaGUpOworCisgICAgLy8gSWYgbmV3Rm9jdXNlZE5vZGUgaXMgbm90IGluIHRoaXMg
ZG9jdW1lbnQsIGp1c3QgcmV0dXJuIHRydWUgd2l0aG91dCBkb2luZyBhbnl0aGluZy4KKyAgICBp
ZiAobmV3Rm9jdXNlZE5vZGUgJiYgbmV3Rm9jdXNlZE5vZGUtPmRvY3VtZW50KCkgIT0gdGhpcykK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpZiAobV9mb2N1c2VkTm9kZSA9PSBuZXdGb2N1
c2VkTm9kZSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIAorCiAgICAgYm9vbCBmb2N1
c0NoYW5nZUJsb2NrZWQgPSBmYWxzZTsKLSAgICBSZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5vZGUg
PSBtX2ZvY3VzZWROb2RlOwotICAgIG1fZm9jdXNlZE5vZGUgPSAwOworICAgIFJlZlB0cjxOb2Rl
PiBvbGRGb2N1c2VkTm9kZSA9IG1fZm9jdXNlZE5vZGUucmVsZWFzZSgpOwogCiAgICAgLy8gUmVt
b3ZlIGZvY3VzIGZyb20gdGhlIGV4aXN0aW5nIGZvY3VzIG5vZGUgKGlmIGFueSkKICAgICBpZiAo
b2xkRm9jdXNlZE5vZGUgJiYgIW9sZEZvY3VzZWROb2RlLT5tX2luRGV0YWNoKSB7IApAQCAtMjE0
NywxMCArMjE0OCwxMCBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRy
CiAgICAgICAgIG9sZEZvY3VzZWROb2RlLT5zZXRGb2N1cyhmYWxzZSk7CiAgICAgICAgICAgICAg
ICAgCiAgICAgICAgIC8vIERpc3BhdGNoIGEgY2hhbmdlIGV2ZW50IGZvciB0ZXh0IGZpZWxkcyBv
ciB0ZXh0YXJlYXMgdGhhdCBoYXZlIGJlZW4gZWRpdGVkCi0gICAgICAgIFJlbmRlck9iamVjdCAq
ciA9IHN0YXRpY19jYXN0PFJlbmRlck9iamVjdCo+KG9sZEZvY3VzZWROb2RlLmdldCgpLT5yZW5k
ZXJlcigpKTsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiByID0gc3RhdGljX2Nhc3Q8UmVuZGVyT2Jq
ZWN0Kj4ob2xkRm9jdXNlZE5vZGUtPnJlbmRlcmVyKCkpOwogICAgICAgICBpZiAociAmJiAoci0+
aXNUZXh0QXJlYSgpIHx8IHItPmlzVGV4dEZpZWxkKCkpICYmIHItPmlzRWRpdGVkKCkpIHsKICAg
ICAgICAgICAgIEV2ZW50VGFyZ2V0Tm9kZUNhc3Qob2xkRm9jdXNlZE5vZGUuZ2V0KCkpLT5kaXNw
YXRjaEhUTUxFdmVudChjaGFuZ2VFdmVudCwgdHJ1ZSwgZmFsc2UpOwotICAgICAgICAgICAgaWYg
KChyID0gc3RhdGljX2Nhc3Q8UmVuZGVyT2JqZWN0Kj4ob2xkRm9jdXNlZE5vZGUuZ2V0KCktPnJl
bmRlcmVyKCkpKSkKKyAgICAgICAgICAgIGlmICgociA9IHN0YXRpY19jYXN0PFJlbmRlck9iamVj
dCo+KG9sZEZvY3VzZWROb2RlLT5yZW5kZXJlcigpKSkpCiAgICAgICAgICAgICAgICAgci0+c2V0
RWRpdGVkKGZhbHNlKTsKICAgICAgICAgfQogCkBAIC0yMTY4LDEwICsyMTY5LDEwIEBAIGJvb2wg
RG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHIKICAgICAgICAgICAgIGZvY3VzQ2hh
bmdlQmxvY2tlZCA9IHRydWU7CiAgICAgICAgICAgICBuZXdGb2N1c2VkTm9kZSA9IDA7CiAgICAg
ICAgIH0KLSAgICAgICAgaWYgKChvbGRGb2N1c2VkTm9kZS5nZXQoKSA9PSB0aGlzKSAmJiBvbGRG
b2N1c2VkTm9kZS0+aGFzT25lUmVmKCkpCisgICAgICAgIGlmIChvbGRGb2N1c2VkTm9kZSA9PSB0
aGlzICYmIG9sZEZvY3VzZWROb2RlLT5oYXNPbmVSZWYoKSkKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICAgICAgCi0gICAgICAgIGlmIChvbGRGb2N1c2VkTm9kZS5nZXQoKSA9PSBv
bGRGb2N1c2VkTm9kZS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpKQorICAgICAgICBpZiAob2xkRm9j
dXNlZE5vZGUgPT0gb2xkRm9jdXNlZE5vZGUtPnJvb3RFZGl0YWJsZUVsZW1lbnQoKSkKICAgICAg
ICAgICAgIGZyYW1lKCktPmVkaXRvcigpLT5kaWRFbmRFZGl0aW5nKCk7CiAgICAgfQogCkBAIC0y
MTgxLDYgKzIxODIsNyBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRy
CiAgICAgICAgICAgICBmb2N1c0NoYW5nZUJsb2NrZWQgPSB0cnVlOwogICAgICAgICAgICAgZ290
byBTZXRGb2N1c2VkTm9kZURvbmU7CiAgICAgICAgIH0KKwogICAgICAgICAvLyBTZXQgZm9jdXMg
b24gdGhlIG5ldyBub2RlCiAgICAgICAgIG1fZm9jdXNlZE5vZGUgPSBuZXdGb2N1c2VkTm9kZS5n
ZXQoKTsKIApAQCAtMjE5MiwxOSArMjE5NCwyMCBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2Vk
Tm9kZShQYXNzUmVmUHRyCiAgICAgICAgICAgICBmb2N1c0NoYW5nZUJsb2NrZWQgPSB0cnVlOwog
ICAgICAgICAgICAgZ290byBTZXRGb2N1c2VkTm9kZURvbmU7CiAgICAgICAgIH0KKwogICAgICAg
ICBFdmVudFRhcmdldE5vZGVDYXN0KG1fZm9jdXNlZE5vZGUuZ2V0KCkpLT5kaXNwYXRjaFVJRXZl
bnQoRE9NRm9jdXNJbkV2ZW50KTsKKwogICAgICAgICBpZiAobV9mb2N1c2VkTm9kZSAhPSBuZXdG
b2N1c2VkTm9kZSkgeyAKICAgICAgICAgICAgIC8vIGhhbmRsZXIgc2hpZnRlZCBmb2N1cwogICAg
ICAgICAgICAgZm9jdXNDaGFuZ2VCbG9ja2VkID0gdHJ1ZTsKICAgICAgICAgICAgIGdvdG8gU2V0
Rm9jdXNlZE5vZGVEb25lOwogICAgICAgICB9CisKICAgICAgICAgbV9mb2N1c2VkTm9kZS0+c2V0
Rm9jdXMoKTsKIAotICAgICAgICBpZiAobV9mb2N1c2VkTm9kZS5nZXQoKSA9PSBtX2ZvY3VzZWRO
b2RlLT5yb290RWRpdGFibGVFbGVtZW50KCkpCisgICAgICAgIGlmIChtX2ZvY3VzZWROb2RlID09
IG1fZm9jdXNlZE5vZGUtPnJvb3RFZGl0YWJsZUVsZW1lbnQoKSkKICAgICAgICAgICAgIGZyYW1l
KCktPmVkaXRvcigpLT5kaWRCZWdpbkVkaXRpbmcoKTsKIAotICAgICAgICAvLyBld3csIEkgc3Vj
ay4gc2V0IHRoZSBxdCBmb2N1cyBjb3JyZWN0bHkKLSAgICAgICAgLy8gIyMjIGZpbmQgYSBiZXR0
ZXIgcGxhY2UgaW4gdGhlIGNvZGUgZm9yIHRoaXMKICAgICAgICAgaWYgKHZpZXcoKSkgewogICAg
ICAgICAgICAgV2lkZ2V0ICpmb2N1c1dpZGdldCA9IHdpZGdldEZvck5vZGUobV9mb2N1c2VkTm9k
ZS5nZXQoKSk7CiAgICAgICAgICAgICBpZiAoZm9jdXNXaWRnZXQpIHsKQEAgLTIyMzAsNyArMjIz
Myw3IEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHIKIFNldEZvY3Vz
ZWROb2RlRG9uZToKICAgICB1cGRhdGVSZW5kZXJpbmcoKTsKICAgICByZXR1cm4gIWZvY3VzQ2hh
bmdlQmxvY2tlZDsKLSAgfQorfQogICAKIHZvaWQgRG9jdW1lbnQ6OnNldENTU1RhcmdldChOb2Rl
KiBuKQogewpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxQYXJzZXJFcnJvckNvZGVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFBhcnNlckVycm9yQ29kZXMuY3BwCShyZXZpc2lv
biAyMzk5MikKKysrIFdlYkNvcmUvaHRtbC9IVE1MUGFyc2VyRXJyb3JDb2Rlcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxl
IENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzQsNyArMzQsNyBAQCBjb25zdCBjaGFyKiBodG1sUGFyc2VyRXJyb3JN
ZXNzYWdlVGVtcGxhCiAgICAgICAgICIldGFnMSBpcyBub3QgYWxsb3dlZCBpbnNpZGUgJXRhZzIu
IE1vdmluZyAldGFnMSBpbnRvIHRoZSBuZWFyZXN0IGVuY2xvc2luZyA8dGFibGU+LiIsCiAgICAg
ICAgICI8aGVhZD4gbXVzdCBiZSBhIGNoaWxkIG9mIDxodG1sPi4gQ29udGVudCBpZ25vcmVkLiIs
CiAgICAgICAgICIldGFnMSBpcyBub3QgYWxsb3dlZCBpbnNpZGUgJXRhZzIuIE1vdmluZyAldGFn
MSBpbnRvIHRoZSA8aGVhZD4uIiwKLSAgICAgICAgIkV4dHJhICV0YWcxIGVuY291bnRlcmVkLiAg
TWlncmF0aW5nIGF0dHJpYnV0ZXMgYmFjayB0byB0aGUgb3JpZ2luYWwgJXRhZzEgZWxlbWVudCBh
bmQgaWdub3JpbmcgdGhlIHRhZy4iLAorICAgICAgICAiRXh0cmEgJXRhZzEgZW5jb3VudGVyZWQu
IE1pZ3JhdGluZyBhdHRyaWJ1dGVzIGJhY2sgdG8gdGhlIG9yaWdpbmFsICV0YWcxIGVsZW1lbnQg
YW5kIGlnbm9yaW5nIHRoZSB0YWcuIiwKICAgICAgICAgIjxhcmVhPiBpcyBub3QgYWxsb3dlZCBp
bnNpZGUgJXRhZzEuIE1vdmluZyB0aGUgPGFyZWE+IGludG8gdGhlIG5lYXJlc3QgZW5jbG9zaW5n
IDxtYXA+LiIsCiAgICAgICAgICIldGFnMSBpcyBub3QgYWxsb3dlZCBpbnNpZGUgJXRhZzIuIENv
bnRlbnQgaWdub3JlZC4iLAogICAgICAgICAiJXRhZzEgaXMgbm90IGFsbG93ZWQgaW4gYSA8ZnJh
bWVzZXQ+IHBhZ2UuIENvbnRlbnQgaWdub3JlZC4iLApAQCAtNDMsMTMgKzQzLDEzIEBAIGNvbnN0
IGNoYXIqIGh0bWxQYXJzZXJFcnJvck1lc3NhZ2VUZW1wbGEKICAgICAgICAgIjx0YWJsZT4gaXMg
bm90IGFsbG93ZWQgaW5zaWRlICV0YWcxLiBDbG9zaW5nIHRoZSBjdXJyZW50IDx0YWJsZT4gYW5k
IGluc2VydGluZyB0aGUgbmV3IDx0YWJsZT4gYXMgYSBzaWJsaW5nLiIsCiAgICAgICAgICIldGFn
MSBpcyBub3QgYWxsb3dlZCBpbnNpZGUgJXRhZzIuIEluc2VydGluZyAldGFnMSBiZWZvcmUgdGhl
IDx0YWJsZT4gaW5zdGVhZC4iLAogICAgICAgICAiJXRhZzEgbWlzcGxhY2VkIGluIDx0YWJsZT4u
IENyZWF0aW5nICV0YWcyIGFuZCBwdXR0aW5nICV0YWcxIGluc2lkZSBpdC4iLAotICAgICAgICAi
PC9icj4gZW5jb3VudGVyZWQuICBDb252ZXJ0aW5nIDwvYnI+IGludG8gPGJyPi4iLAorICAgICAg
ICAiPC9icj4gZW5jb3VudGVyZWQuIENvbnZlcnRpbmcgPC9icj4gaW50byA8YnI+LiIsCiAgICAg
ICAgICJYTUwgc2VsZi1jbG9zaW5nIHRhZyBzeW50YXggdXNlZCBvbiAldGFnMS4gVGhlIHRhZyB3
aWxsIG5vdCBiZSBjbG9zZWQuIiwKLSAgICAgICAgIlVubWF0Y2hlZCA8L3A+IGVuY291bnRlcmVk
LiAgQ29udmVydGluZyA8L3A+IGludG8gPHA+PC9wPi4iLAotICAgICAgICAiVW5tYXRjaGVkICV0
YWcxIGVuY291bnRlcmVkLiAgSWdub3JpbmcgdGFnLiIsCi0gICAgICAgICIldGFnMSBtaXNuZXN0
ZWQgb3Igbm90IHByb3Blcmx5IGNsb3NlZC4gIENsb25pbmcgJXRhZzEgaW4gb3JkZXIgdG8gcHJl
c2VydmUgdGhlIHN0eWxlcyBhcHBsaWVkIGJ5IGl0LiIsCi0gICAgICAgICI8Zm9ybT4gY2Fubm90
IGFjdCBhcyBhIGNvbnRhaW5lciBpbnNpZGUgJXRhZzEgd2l0aG91dCBkaXNydXB0aW5nIHRoZSB0
YWJsZS4gIFRoZSBjaGlsZHJlbiBvZiB0aGUgPGZvcm0+IHdpbGwgYmUgcGxhY2VkIGluc2lkZSB0
aGUgJXRhZzEgaW5zdGVhZC4iLAotICAgICAgICAiWE1MIHNlbGYtY2xvc2luZyB0YWcgc3ludGF4
IHVzZWQgb24gPHNjcmlwdD4uICBUaGUgdGFnIHdpbGwgYmUgY2xvc2VkIGJ5IFdlYktpdCwgYnV0
IG5vdCBhbGwgYnJvd3NlcnMgZG8gdGhpcy4gIENoYW5nZSB0byA8c2NyaXB0Pjwvc2NyaXB0PiBp
bnN0ZWFkIGZvciBiZXN0IGNyb3NzLWJyb3dzZXIgY29tcGF0aWJpbGl0eS4iCisgICAgICAgICJV
bm1hdGNoZWQgPC9wPiBlbmNvdW50ZXJlZC4gQ29udmVydGluZyA8L3A+IGludG8gPHA+PC9wPi4i
LAorICAgICAgICAiVW5tYXRjaGVkICV0YWcxIGVuY291bnRlcmVkLiBJZ25vcmluZyB0YWcuIiwK
KyAgICAgICAgIiV0YWcxIG1pc25lc3RlZCBvciBub3QgcHJvcGVybHkgY2xvc2VkLiBDbG9uaW5n
ICV0YWcxIGluIG9yZGVyIHRvIHByZXNlcnZlIHRoZSBzdHlsZXMgYXBwbGllZCBieSBpdC4iLAor
ICAgICAgICAiPGZvcm0+IGNhbm5vdCBhY3QgYXMgYSBjb250YWluZXIgaW5zaWRlICV0YWcxIHdp
dGhvdXQgZGlzcnVwdGluZyB0aGUgdGFibGUuIFRoZSBjaGlsZHJlbiBvZiB0aGUgPGZvcm0+IHdp
bGwgYmUgcGxhY2VkIGluc2lkZSB0aGUgJXRhZzEgaW5zdGVhZC4iLAorICAgICAgICAiWE1MIHNl
bGYtY2xvc2luZyB0YWcgc3ludGF4IHVzZWQgb24gPHNjcmlwdD4uIFRoZSB0YWcgd2lsbCBiZSBj
bG9zZWQgYnkgV2ViS2l0LCBidXQgbm90IGFsbCBicm93c2VycyBkbyB0aGlzLiBDaGFuZ2UgdG8g
PHNjcmlwdD48L3NjcmlwdD4gaW5zdGVhZCBmb3IgYmVzdCBjcm9zcy1icm93c2VyIGNvbXBhdGli
aWxpdHkuIgogICAgIH07CiAgICAgIAogICAgIGlmIChlcnJvckNvZGUgPj0gTWlzcGxhY2VkVGFi
bGVQYXJ0RXJyb3IgJiYgZXJyb3JDb2RlIDw9IEluY29ycmVjdFhNTENsb3NlU2NyaXB0V2Fybmlu
ZykKSW5kZXg6IFdlYkNvcmUvcGFnZS9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BhZ2UvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDIzOTky
KQorKysgV2ViQ29yZS9wYWdlL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03MDAsNyArNzAwLDEwIEBAIHN0YXRpYyBKU09iamVjdFJlZiBvYmplY3RGb3JSZXNwb25z
ZShKU0MKIEpTT2JqZWN0UmVmIEluc3BlY3RvckNvbnRyb2xsZXI6OmFkZFNjcmlwdFJlc291cmNl
KEluc3BlY3RvclJlc291cmNlKiByZXNvdXJjZSkKIHsKICAgICBBU1NFUlRfQVJHKHJlc291cmNl
LCByZXNvdXJjZSk7Ci0gICAgQVNTRVJUKCFyZXNvdXJjZS0+c2NyaXB0T2JqZWN0KTsKKworICAg
IC8vIFRoaXMgaGFwcGVucyBmb3IgcGFnZXMgbG9hZGVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBj
YWNoZS4KKyAgICBpZiAocmVzb3VyY2UtPnNjcmlwdE9iamVjdCkKKyAgICAgICAgcmV0dXJuIHJl
c291cmNlLT5zY3JpcHRPYmplY3Q7CiAKICAgICBBU1NFUlQobV9zY3JpcHRDb250ZXh0KTsKICAg
ICBBU1NFUlQobV9zY3JpcHRPYmplY3QpOwpJbmRleDogV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gMjM5OTIpCisrKyBXZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzMTcsNyArMTMxNyw2IEBACiAJ
CTA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLyA9IHsKIAkJCWlz
YSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4MzIwODkw
MkIwRjAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAi
V2ViS2l0IiAqLzsKLQkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDIuNCI7CiAJCQlo
YXNTY2FubmVkRm9yRW5jb2RpbmdzID0gMTsKIAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmds
aXNoLApJbmRleDogV2ViS2l0L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0JKHJldmlzaW9uIDIzOTkyKQorKysgV2ViS2l0
L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1NjgsNyArMjU2OCwx
MyBAQCBzdGF0aWMgTlNVUkwqIHVuaXF1ZVVSTFdpdGhSZWxhdGl2ZVBhcnQoCiAgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gY29yZUZyYW1lLT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQp
CiAgICAgICAgIHJldHVybjsKLSAgICAKKworICAgIC8vIEZJWE1FOiBUaGlzIGNhbiBvbmx5IGhh
cHBlbiBiZWNhdXNlIGRpc3BhdGNoRGlkQ29tbWl0TG9hZCBnZXRzIGNhbGxlZCB3aGlsZSB0aGUg
RnJhbWUgc3RpbGwgcG9pbnRzCisgICAgLy8gdG8gYSBkb2N1bWVudCB0aGF0IGhhcyBiZWVuIG1v
dmVkIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4gSWYgd2UgZml4IHRoYXQsIHRoZW4gd2Ug
Y2FuIHJlbW92ZQorICAgIC8vIHRob3NlIGNvZGUuCisgICAgaWYgKGRvY3VtZW50LT5pblBhZ2VD
YWNoZSgpKQorICAgICAgICByZXR1cm47CisKICAgICBkb2N1bWVudC0+c2V0Rm9jdXNlZE5vZGUo
MCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15630</attachid>
            <date>2007-07-22 15:33:55 -0700</date>
            <delta_ts>2007-07-22 15:49:00 -0700</delta_ts>
            <desc>check root object for validity whenever using the ObjC wrapper</desc>
            <filename>ObjCWrapperPatch.txt</filename>
            <type>text/plain</type>
            <size>13035</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NTIyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDctMDctMjIgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gZml4IDxyZGFyOi8vcHJvYmxlbS81MTI2Mzk0PiBSRUdSRVNTSU9O
OiBDcmFzaCBhZnRlciBjbGlja2luZyBiYWNrIGJ1dHRvbiBpbiB0ZXN0IGFwcGxpY2F0aW9uICgx
MzI1MCkKKyAgICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzI1MAorCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9vYmpjX3V0aWxpdHkubW06IChLSlM6OkJp
bmRpbmdzOjpjb252ZXJ0T2JqY1ZhbHVlVG9WYWx1ZSk6CisgICAgICAgIElmIHRoZSBvYmplY3Qg
cmV0dXJucyAwIGZvciBfaW1wLCBjb252ZXJ0IHRoYXQgdG8gInVuZGVmaW5lZCIsIHNpbmNlIGNh
bGxlcnMKKyAgICAgICAgY2FuJ3QgY29wZSB3aXRoIGEgSlNWYWx1ZSBvZiAwLgorCiAyMDA3LTA3
LTE5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpjL29i
amNfdXRpbGl0eS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpj
L29iamNfdXRpbGl0eS5tbQkocmV2aXNpb24gMjQ1MjIpCisrKyBKYXZhU2NyaXB0Q29yZS9iaW5k
aW5ncy9vYmpjL29iamNfdXRpbGl0eS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjQ0LDggKzI0NCwx
MCBAQCBKU1ZhbHVlKiBjb252ZXJ0T2JqY1ZhbHVlVG9WYWx1ZShFeGVjU3RhCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGpzTnVtYmVyKFtvYmogZG91YmxlVmFsdWVdKTsKICAgICAgICAgICAgIGlm
IChbb2JqIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gbmV3IFJ1bnRpbWVBcnJheShleGVjLCBuZXcgT2JqY0FycmF5KG9iaiwgcm9vdE9iamVj
dCkpOwotICAgICAgICAgICAgaWYgKFtvYmogaXNLaW5kT2ZDbGFzczp3ZWJTY3JpcHRPYmplY3RD
bGFzcygpXSkKLSAgICAgICAgICAgICAgICByZXR1cm4gW29iaiBfaW1wXTsKKyAgICAgICAgICAg
IGlmIChbb2JqIGlzS2luZE9mQ2xhc3M6d2ViU2NyaXB0T2JqZWN0Q2xhc3MoKV0pIHsKKyAgICAg
ICAgICAgICAgICBKU09iamVjdCogaW1wID0gW29iaiBfaW1wXTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gaW1wID8gaW1wIDoganNVbmRlZmluZWQoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGlmIChbb2JqIGlzS2luZE9mQ2xhc3M6W05TTnVsbCBjbGFzc11dKQogICAgICAgICAgICAg
ICAgIHJldHVybiBqc051bGwoKTsKICAgICAgICAgICAgIGlmIChvYmogPT0gMCkKSW5kZXg6IFdl
YkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lv
biAyNDUyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
NDMgQEAKKzIwMDctMDctMjIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gZml4IDxyZGFyOi8v
cHJvYmxlbS81MTI2Mzk0PiBSRUdSRVNTSU9OOiBDcmFzaCBhZnRlciBjbGlja2luZyBiYWNrIGJ1
dHRvbiBpbiB0ZXN0IGFwcGxpY2F0aW9uICgxMzI1MCkKKyAgICAgICAgICBodHRwOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI1MAorCisgICAgICAgICogYmluZGluZ3Mvb2Jq
Yy9XZWJTY3JpcHRPYmplY3QubW06CisgICAgICAgIChfZGlkRXhlY3V0ZSk6IFJlbW92ZWQgdW5u
ZWNlc3NhcnkgY2hlY2sgZm9yIGlzVmFsaWQoKSBzaW5jZSB0aGUgX3Jvb3RPYmplY3QgbWV0aG9k
IGFscmVhZHkKKyAgICAgICAgdGFrZXMgY2FyZSBvZiB0aGF0IGNoZWNrLgorICAgICAgICAoLVtX
ZWJTY3JpcHRPYmplY3QgX2ltcF0pOiBNYWRlIHRoaXMgcmV0dXJuIDAgaWYgdGhlcmUgaXMgbm90
IGEgdmFsaWQgcm9vdE9iamVjdC4KKyAgICAgICAgKC1bV2ViU2NyaXB0T2JqZWN0IF9pc1NhZmVT
Y3JpcHRdKTogTWFkZSB0aGlzIGFsd2F5cyByZXR1cm4gZmFsc2UgaWYgdGhlcmUgaXMgbm90IGEg
dmFsaWQKKyAgICAgICAgcm9vdE9iamVjdCwgZWxpbWluYXRpbmcgdGhlIG5lZWQgdG8gY2hlY2sg
X3Jvb3RPYmplY3QgZm9yIG5pbCBpZiB0aGUgY29kZSBpcyBjaGVja2luZyBfaXNTYWZlU2NyaXB0
LgorICAgICAgICAoLVtXZWJTY3JpcHRPYmplY3QgY2FsbFdlYlNjcmlwdE1ldGhvZDp3aXRoQXJn
dW1lbnRzOl0pOiBSZW1vdmVkIGNoZWNrIG9mIF9yb290T2JqZWN0LCBzaW5jZSBpdCdzCisgICAg
ICAgIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IGEgY2hlY2sgb2YgX2lzU2FmZVNjcmlwdC4gUmVt
b3ZlZCBhd2t3YXJkIGNvbnZlcnNpb24gb2YgbmFtZSBmcm9tIE5TU3RyaW5nICoKKyAgICAgICAg
dG8gS0pTOjpJZGVudGlmaWVyIGFuZCBkaWQgaXQgdXNpbmcgV2ViQ29yZTo6U3RyaW5nIGluc3Rl
YWQgLS0gbWFrZXMgaXQgY2xlYXIgdGhhdCB0aGVyZSdzIG5vCisgICAgICAgIGFyYml0cmFyeSBK
YXZhU2NyaXB0IGV4ZWN1dGlvbiBhZnRlciBfaXNTYWZlU2NyaXB0IGFuZCBiZWZvcmUgX2ltcCwg
c28gd2UgZG9uJ3QgbmVlZCB0byBudWxsLWNoZWNrCisgICAgICAgIHRoZSBfaW1wIHBvaW50ZXIu
IEFkZGVkIGEgc2Vjb25kIGNoZWNrIG9mIF9pc1NhZmVTY3JpcHQgYWZ0ZXIgY2FsbGluZyBnZXQg
dG8gZ2V0IHRoZSBmdW5jdGlvbgorICAgICAgICBvYmplY3QsIHNpbmNlIGFyYml0cmFyeSBjaGFu
Z2VzIGNvdWxkIG9jY3VyIGluIHRoZXJlLCBpbmNsdWRpbmcgbmF2aWdhdGlvbiB0byBhIG5ldyBm
cmFtZS4KKyAgICAgICAgVGhpcyBhbHNvIHRha2VzIGNhcmUgb2YgbnVsbCBjaGVja2luZyB0aGUg
c2Vjb25kIGNhbGwgdG8gX2ltcC4KKyAgICAgICAgKC1bV2ViU2NyaXB0T2JqZWN0IGV2YWx1YXRl
V2ViU2NyaXB0Ol0pOiBSZW1vdmVkIGNoZWNrIG9mIF9yb290T2JqZWN0LCBzaW5jZSBpdCdzCisg
ICAgICAgIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IGEgY2hlY2sgb2YgX2lzU2FmZVNjcmlwdC4g
UmVtb3ZlZCBhd2t3YXJkIGNvbnZlcnNpb24gb2Ygc2NyaXB0IGZyb20gTlNTdHJpbmcgKgorICAg
ICAgICB0byBLSlM6OklkZW50aWZpZXIgYW5kIGRpZCBpdCB1c2luZyBXZWJDb3JlOjpTdHJpbmcg
aW5zdGVhZCAtLSBtYWtlcyBpdCBjbGVhciB0aGF0IHRoZXJlJ3Mgbm8KKyAgICAgICAgYXJiaXRy
YXJ5IEphdmFTY3JpcHQgZXhlY3V0aW9uIGFmdGVyIF9pc1NhZmVTY3JpcHQgYW5kIGJlZm9yZSBf
aW1wLCBzbyB3ZSBkb24ndCBuZWVkIHRvIG51bGwtY2hlY2sKKyAgICAgICAgdGhlIF9pbXAgcG9p
bnRlci4KKyAgICAgICAgKC1bV2ViU2NyaXB0T2JqZWN0IHNldFZhbHVlOmZvcktleTpdKTogUmVt
b3ZlZCBjaGVjayBvZiBfcm9vdE9iamVjdCwgc2luY2UgaXQncworICAgICAgICBpbW1lZGlhdGVs
eSBmb2xsb3dlZCBieSBhIGNoZWNrIG9mIF9pc1NhZmVTY3JpcHQuIFJlbW92ZWQgYXdrd2FyZCBj
b252ZXJzaW9uIG9mIGtleSBmcm9tIE5TU3RyaW5nICoKKyAgICAgICAgdG8gS0pTOjpJZGVudGlm
aWVyIGFuZCBkaWQgaXQgdXNpbmcgV2ViQ29yZTo6U3RyaW5nIGluc3RlYWQgLS0gbWFrZXMgaXQg
Y2xlYXIgdGhhdCB0aGVyZSdzIG5vCisgICAgICAgIGFyYml0cmFyeSBKYXZhU2NyaXB0IGV4ZWN1
dGlvbiBhZnRlciBfaXNTYWZlU2NyaXB0IGFuZCBiZWZvcmUgX2ltcCwgc28gd2UgZG9uJ3QgbmVl
ZCB0byBudWxsLWNoZWNrCisgICAgICAgIHRoZSBfaW1wIHBvaW50ZXIuCisgICAgICAgICgtW1dl
YlNjcmlwdE9iamVjdCB2YWx1ZUZvcktleTpdKTogRGl0dG8uCisgICAgICAgICgtW1dlYlNjcmlw
dE9iamVjdCByZW1vdmVXZWJTY3JpcHRLZXk6XSk6IERpdHRvLgorICAgICAgICAoLVtXZWJTY3Jp
cHRPYmplY3Qgc3RyaW5nUmVwcmVzZW50YXRpb25dKTogUmVtb3ZlZCBjaGVjayBvZiBfcm9vdE9i
amVjdCwgc2luY2UgaXQncworICAgICAgICBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBhIGNoZWNr
IG9mIF9pc1NhZmVTY3JpcHQuIFJlbW92ZWQgdW5uZWNlc3NhcnkgbG9jYWwgdmFyaWFibGUKKyAg
ICAgICAgYW5kIGNvbnN0X2Nhc3QgZnJvbSB0aGUgY2FsbCB0byB0aGUgX2ltcCBtZXRob2QuCisg
ICAgICAgICgtW1dlYlNjcmlwdE9iamVjdCB3ZWJTY3JpcHRWYWx1ZUF0SW5kZXg6XSk6IFJlbW92
ZWQgY2hlY2sgb2YgX3Jvb3RPYmplY3QsIHNpbmNlIGl0J3MKKyAgICAgICAgaW1tZWRpYXRlbHkg
Zm9sbG93ZWQgYnkgYSBjaGVjayBvZiBfaXNTYWZlU2NyaXB0LgorICAgICAgICAoLVtXZWJTY3Jp
cHRPYmplY3Qgc2V0V2ViU2NyaXB0VmFsdWVBdEluZGV4OnZhbHVlOl0pOiBEaXR0by4KKyAgICAg
ICAgKC1bV2ViU2NyaXB0T2JqZWN0IEpTT2JqZWN0XSk6IERpdHRvLgorCiAyMDA3LTA3LTIyICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRl
cnMgQ2FybHNzb24gYW5kIEpvaG4gU3VsbGl2YW4uCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29i
amMvV2ViU2NyaXB0T2JqZWN0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9XZWJTY3JpcHRPYmplY3QubW0JKHJldmlzaW9uIDI0NTIyKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW1wb3J0ICJET01JbnRlcm5hbC5oIgogI2ltcG9ydCAiRnJhbWUuaCIKKyNpbXBvcnQg
IlBsYXRmb3JtU3RyaW5nLmgiCiAjaW1wb3J0ICJXZWJDb3JlT2JqQ0V4dHJhcy5oIgogI2ltcG9y
dCAiV2ViQ29yZUZyYW1lQnJpZGdlLmgiCiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9jb250ZXh0
Lmg+CkBAIC0zNyw2ICszOCw3IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBLSlM7CiB1c2luZyBuYW1l
c3BhY2UgS0pTOjpCaW5kaW5nczsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAjZGVmaW5l
IExPR19FWENFUFRJT04oZXhlYykgXAogICAgIGlmIChJbnRlcnByZXRlcjo6c2hvdWxkUHJpbnRF
eGNlcHRpb25zKCkpIFwKQEAgLTEwNiwxMyArMTA4LDE0IEBAIHN0YXRpYyB2b2lkIF9kaWRFeGVj
dXRlKFdlYlNjcmlwdE9iamVjdCAKIHsKICAgICBBU1NFUlQoSlNMb2NrOjpsb2NrQ291bnQoKSA+
IDApOwogICAgIAotICAgIGlmICghW29iaiBfcm9vdE9iamVjdF0gfHwgIVtvYmogX3Jvb3RPYmpl
Y3RdLT5pc1ZhbGlkKCkpCisgICAgUm9vdE9iamVjdCogcm9vdCA9IFtvYmogX3Jvb3RPYmplY3Rd
OworICAgIGlmICghcm9vdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRXhlY1N0YXRlKiBleGVj
ID0gW29iaiBfcm9vdE9iamVjdF0tPmludGVycHJldGVyKCktPmdsb2JhbEV4ZWMoKTsKKyAgICBF
eGVjU3RhdGUqIGV4ZWMgPSByb290LT5pbnRlcnByZXRlcigpLT5nbG9iYWxFeGVjKCk7CiAgICAg
S0pTRGlkRXhlY3V0ZUZ1bmN0aW9uUHRyIGZ1bmMgPSBJbnN0YW5jZTo6ZGlkRXhlY3V0ZUZ1bmN0
aW9uKCk7CiAgICAgaWYgKGZ1bmMpCi0gICAgICAgIGZ1bmMoZXhlYywgc3RhdGljX2Nhc3Q8SlNP
YmplY3QqPihbb2JqIF9yb290T2JqZWN0XS0+aW50ZXJwcmV0ZXIoKS0+Z2xvYmFsT2JqZWN0KCkp
KTsKKyAgICAgICAgZnVuYyhleGVjLCBzdGF0aWNfY2FzdDxKU09iamVjdCo+KHJvb3QtPmludGVy
cHJldGVyKCktPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKIC0gKHZvaWQpX3NldEltcDooSlNPYmpl
Y3QqKWltcCBvcmlnaW5Sb290T2JqZWN0OihQYXNzUmVmUHRyPFJvb3RPYmplY3Q+KW9yaWdpblJv
b3RPYmplY3Qgcm9vdE9iamVjdDooUGFzc1JlZlB0cjxSb290T2JqZWN0Pilyb290T2JqZWN0CkBA
IC0xNDQsMTMgKzE0NywxMyBAQCBzdGF0aWMgdm9pZCBfZGlkRXhlY3V0ZShXZWJTY3JpcHRPYmpl
Y3QgCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKLS0gKEpTT2JqZWN0ICopX2ltcAorLSAoSlNPYmpl
Y3QqKV9pbXAKIHsKICAgICAvLyBBc3NvY2lhdGUgdGhlIFdlYlNjcmlwdE9iamVjdCB3aXRoIHRo
ZSBKUyB3cmFwcGVyIGZvciB0aGUgT2JqQyBET00gd3JhcHBlci4KICAgICAvLyBUaGlzIGlzIGRv
bmUgb24gbGF6aWx5LCBvbiBkZW1hbmQuCiAgICAgaWYgKCFfcHJpdmF0ZS0+aW1wICYmIF9wcml2
YXRlLT5pc0NyZWF0ZWRCeURPTVdyYXBwZXIpCiAgICAgICAgIFtzZWxmIF9pbml0aWFsaXplU2Ny
aXB0RE9NTm9kZUltcF07Ci0gICAgcmV0dXJuIF9wcml2YXRlLT5pbXA7CisgICAgcmV0dXJuIF9w
cml2YXRlLT5yb290T2JqZWN0ICYmIF9wcml2YXRlLT5yb290T2JqZWN0LT5pc1ZhbGlkKCkgPyBf
cHJpdmF0ZS0+aW1wIDogMDsKIH0KIAogLSAoQk9PTClfaGFzSW1wCkBAIC0xNzAsMTIgKzE3Mywx
MiBAQCBzdGF0aWMgdm9pZCBfZGlkRXhlY3V0ZShXZWJTY3JpcHRPYmplY3QgCiAKIC0gKEJPT0wp
X2lzU2FmZVNjcmlwdAogewotICAgIGlmICghX3ByaXZhdGUtPm9yaWdpblJvb3RPYmplY3QgfHwg
IV9wcml2YXRlLT5yb290T2JqZWN0KQorICAgIGlmICghX3ByaXZhdGUtPm9yaWdpblJvb3RPYmpl
Y3QpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKCFfcHJpdmF0ZS0+b3JpZ2luUm9v
dE9iamVjdC0+aXNWYWxpZCgpIHx8ICFfcHJpdmF0ZS0+cm9vdE9iamVjdC0+aXNWYWxpZCgpKQor
ICAgIGlmICghX3ByaXZhdGUtPm9yaWdpblJvb3RPYmplY3QtPmlzVmFsaWQoKSB8fCAhX3ByaXZh
dGUtPnJvb3RPYmplY3QgfHwgIV9wcml2YXRlLT5yb290T2JqZWN0LT5pc1ZhbGlkKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgCisKICAgICByZXR1cm4gX3ByaXZhdGUtPm9yaWdp
blJvb3RPYmplY3QtPmludGVycHJldGVyKCktPmlzU2FmZVNjcmlwdChfcHJpdmF0ZS0+cm9vdE9i
amVjdC0+aW50ZXJwcmV0ZXIoKSk7CiB9CiAKQEAgLTI1OSwyMSArMjYyLDE2IEBAIHN0YXRpYyBM
aXN0IGxpc3RGcm9tTlNBcnJheShFeGVjU3RhdGUgKmUKIAogLSAoaWQpY2FsbFdlYlNjcmlwdE1l
dGhvZDooTlNTdHJpbmcgKiluYW1lIHdpdGhBcmd1bWVudHM6KE5TQXJyYXkgKilhcmdzCiB7Ci0g
ICAgaWYgKCFbc2VsZiBfcm9vdE9iamVjdF0pCi0gICAgICAgIHJldHVybiBuaWw7Ci0KICAgICBp
ZiAoIVtzZWxmIF9pc1NhZmVTY3JpcHRdKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgLy8g
TG9va3VwIHRoZSBmdW5jdGlvbiBvYmplY3QuCisgICAgLy8gTG9vayB1cCB0aGUgZnVuY3Rpb24g
b2JqZWN0LgogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IFtzZWxmIF9yb290T2JqZWN0XS0+aW50ZXJw
cmV0ZXIoKS0+Z2xvYmFsRXhlYygpOwogICAgIEFTU0VSVCghZXhlYy0+aGFkRXhjZXB0aW9uKCkp
OwogCiAgICAgSlNMb2NrIGxvY2s7CiAgICAgCi0gICAgSlNWYWx1ZSAqdiA9IGNvbnZlcnRPYmpj
VmFsdWVUb1ZhbHVlKGV4ZWMsICZuYW1lLCBPYmpjT2JqZWN0VHlwZSwgW3NlbGYgX3Jvb3RPYmpl
Y3RdKTsKLSAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIodi0+dG9TdHJpbmcoZXhlYykpOwotICAg
IEpTVmFsdWUgKmZ1bmMgPSBbc2VsZiBfaW1wXS0+Z2V0KGV4ZWMsIGlkZW50aWZpZXIpOworICAg
IEpTVmFsdWUqIGZ1bmMgPSBbc2VsZiBfaW1wXS0+Z2V0KGV4ZWMsIFN0cmluZyhuYW1lKSk7CiAK
ICAgICBpZiAoIWZ1bmMgfHwgIWZ1bmMtPmlzT2JqZWN0KCkpCiAgICAgICAgIC8vIE1heWJlIHRo
cm93IGFuIGV4Y2VwdGlvbiBoZXJlPwpAQCAtMjg0LDEwICsyODIsMTMgQEAgc3RhdGljIExpc3Qg
bGlzdEZyb21OU0FycmF5KEV4ZWNTdGF0ZSAqZQogICAgIGlmICghZnVuY0ltcC0+aW1wbGVtZW50
c0NhbGwoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBKU09iamVjdCAqdGhpc09iaiA9IGNv
bnN0X2Nhc3Q8SlNPYmplY3QqPihbc2VsZiBfaW1wXSk7CiAgICAgTGlzdCBhcmdMaXN0ID0gbGlz
dEZyb21OU0FycmF5KGV4ZWMsIGFyZ3MsIFtzZWxmIF9yb290T2JqZWN0XSk7CisKKyAgICBpZiAo
IVtzZWxmIF9pc1NhZmVTY3JpcHRdKQorICAgICAgICByZXR1cm4gbmlsOworCiAgICAgW3NlbGYg
X3Jvb3RPYmplY3RdLT5pbnRlcnByZXRlcigpLT5zdGFydFRpbWVvdXRDaGVjaygpOwotICAgIEpT
VmFsdWUgKnJlc3VsdCA9IGZ1bmNJbXAtPmNhbGwoZXhlYywgdGhpc09iaiwgYXJnTGlzdCk7Cisg
ICAgSlNWYWx1ZSAqcmVzdWx0ID0gZnVuY0ltcC0+Y2FsbChleGVjLCBbc2VsZiBfaW1wXSwgYXJn
TGlzdCk7CiAgICAgW3NlbGYgX3Jvb3RPYmplY3RdLT5pbnRlcnByZXRlcigpLT5zdG9wVGltZW91
dENoZWNrKCk7CiAKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpIHsKQEAgLTMwNiw5ICsz
MDcsNiBAQCBzdGF0aWMgTGlzdCBsaXN0RnJvbU5TQXJyYXkoRXhlY1N0YXRlICplCiAKIC0gKGlk
KWV2YWx1YXRlV2ViU2NyaXB0OihOU1N0cmluZyAqKXNjcmlwdAogewotICAgIGlmICghW3NlbGYg
X3Jvb3RPYmplY3RdKQotICAgICAgICByZXR1cm4gbmlsOwotICAgIAogICAgIGlmICghW3NlbGYg
X2lzU2FmZVNjcmlwdF0pCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgCkBAIC0zMTgsOSArMzE2
LDggQEAgc3RhdGljIExpc3QgbGlzdEZyb21OU0FycmF5KEV4ZWNTdGF0ZSAqZQogICAgIEpTVmFs
dWUgKnJlc3VsdDsKICAgICBKU0xvY2sgbG9jazsKICAgICAKLSAgICBKU1ZhbHVlICp2ID0gY29u
dmVydE9iamNWYWx1ZVRvVmFsdWUoZXhlYywgJnNjcmlwdCwgT2JqY09iamVjdFR5cGUsIFtzZWxm
IF9yb290T2JqZWN0XSk7CiAgICAgW3NlbGYgX3Jvb3RPYmplY3RdLT5pbnRlcnByZXRlcigpLT5z
dGFydFRpbWVvdXRDaGVjaygpOwotICAgIENvbXBsZXRpb24gY29tcGxldGlvbiA9IFtzZWxmIF9y
b290T2JqZWN0XS0+aW50ZXJwcmV0ZXIoKS0+ZXZhbHVhdGUoVVN0cmluZygpLCAwLCB2LT50b1N0
cmluZyhleGVjKSk7CisgICAgQ29tcGxldGlvbiBjb21wbGV0aW9uID0gW3NlbGYgX3Jvb3RPYmpl
Y3RdLT5pbnRlcnByZXRlcigpLT5ldmFsdWF0ZShVU3RyaW5nKCksIDAsIFN0cmluZyhzY3JpcHQp
KTsKICAgICBbc2VsZiBfcm9vdE9iamVjdF0tPmludGVycHJldGVyKCktPnN0b3BUaW1lb3V0Q2hl
Y2soKTsKICAgICBDb21wbFR5cGUgdHlwZSA9IGNvbXBsZXRpb24uY29tcGxUeXBlKCk7CiAgICAg
CkBAIC0zNDYsOSArMzQzLDYgQEAgc3RhdGljIExpc3QgbGlzdEZyb21OU0FycmF5KEV4ZWNTdGF0
ZSAqZQogCiAtICh2b2lkKXNldFZhbHVlOihpZCl2YWx1ZSBmb3JLZXk6KE5TU3RyaW5nICopa2V5
CiB7Ci0gICAgaWYgKCFbc2VsZiBfcm9vdE9iamVjdF0pCi0gICAgICAgIHJldHVybjsKLQogICAg
IGlmICghW3NlbGYgX2lzU2FmZVNjcmlwdF0pCiAgICAgICAgIHJldHVybjsKIApAQCAtMzU2LDgg
KzM1MCw3IEBAIHN0YXRpYyBMaXN0IGxpc3RGcm9tTlNBcnJheShFeGVjU3RhdGUgKmUKICAgICBB
U1NFUlQoIWV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKIAogICAgIEpTTG9jayBsb2NrOwotICAgIEpT
VmFsdWUgKnYgPSBjb252ZXJ0T2JqY1ZhbHVlVG9WYWx1ZShleGVjLCAma2V5LCBPYmpjT2JqZWN0
VHlwZSwgW3NlbGYgX3Jvb3RPYmplY3RdKTsKLSAgICBbc2VsZiBfaW1wXS0+cHV0KGV4ZWMsIElk
ZW50aWZpZXIodi0+dG9TdHJpbmcoZXhlYykpLCBjb252ZXJ0T2JqY1ZhbHVlVG9WYWx1ZShleGVj
LCAmdmFsdWUsIE9iamNPYmplY3RUeXBlLCBbc2VsZiBfcm9vdE9iamVjdF0pKTsKKyAgICBbc2Vs
ZiBfaW1wXS0+cHV0KGV4ZWMsIFN0cmluZyhrZXkpLCBjb252ZXJ0T2JqY1ZhbHVlVG9WYWx1ZShl
eGVjLCAmdmFsdWUsIE9iamNPYmplY3RUeXBlLCBbc2VsZiBfcm9vdE9iamVjdF0pKTsKIAogICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewogICAgICAgICBMT0dfRVhDRVBUSU9OKGV4ZWMp
OwpAQCAtMzY5LDkgKzM2Miw2IEBAIHN0YXRpYyBMaXN0IGxpc3RGcm9tTlNBcnJheShFeGVjU3Rh
dGUgKmUKIAogLSAoaWQpdmFsdWVGb3JLZXk6KE5TU3RyaW5nICopa2V5CiB7Ci0gICAgaWYgKCFb
c2VsZiBfcm9vdE9iamVjdF0pCi0gICAgICAgIHJldHVybiBuaWw7Ci0gICAgICAgIAogICAgIGlm
ICghW3NlbGYgX2lzU2FmZVNjcmlwdF0pCiAgICAgICAgIHJldHVybiBuaWw7CiAKQEAgLTM3OSw4
ICszNjksNyBAQCBzdGF0aWMgTGlzdCBsaXN0RnJvbU5TQXJyYXkoRXhlY1N0YXRlICplCiAgICAg
QVNTRVJUKCFleGVjLT5oYWRFeGNlcHRpb24oKSk7CiAKICAgICBKU0xvY2sgbG9jazsKLSAgICBK
U1ZhbHVlICp2ID0gY29udmVydE9iamNWYWx1ZVRvVmFsdWUoZXhlYywgJmtleSwgT2JqY09iamVj
dFR5cGUsIFtzZWxmIF9yb290T2JqZWN0XSk7Ci0gICAgSlNWYWx1ZSAqcmVzdWx0ID0gW3NlbGYg
X2ltcF0tPmdldChleGVjLCBJZGVudGlmaWVyKHYtPnRvU3RyaW5nKGV4ZWMpKSk7CisgICAgSlNW
YWx1ZSAqcmVzdWx0ID0gW3NlbGYgX2ltcF0tPmdldChleGVjLCBTdHJpbmcoa2V5KSk7CiAgICAg
CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSB7CiAgICAgICAgIExPR19FWENFUFRJT04o
ZXhlYyk7CkBAIC0zOTksOSArMzg4LDYgQEAgc3RhdGljIExpc3QgbGlzdEZyb21OU0FycmF5KEV4
ZWNTdGF0ZSAqZQogCiAtICh2b2lkKXJlbW92ZVdlYlNjcmlwdEtleTooTlNTdHJpbmcgKilrZXkK
IHsKLSAgICBpZiAoIVtzZWxmIF9yb290T2JqZWN0XSkKLSAgICAgICAgcmV0dXJuOwotICAgICAg
ICAKICAgICBpZiAoIVtzZWxmIF9pc1NhZmVTY3JpcHRdKQogICAgICAgICByZXR1cm47CiAKQEAg
LTQwOSw4ICszOTUsNyBAQCBzdGF0aWMgTGlzdCBsaXN0RnJvbU5TQXJyYXkoRXhlY1N0YXRlICpl
CiAgICAgQVNTRVJUKCFleGVjLT5oYWRFeGNlcHRpb24oKSk7CiAKICAgICBKU0xvY2sgbG9jazsK
LSAgICBKU1ZhbHVlICp2ID0gY29udmVydE9iamNWYWx1ZVRvVmFsdWUoZXhlYywgJmtleSwgT2Jq
Y09iamVjdFR5cGUsIFtzZWxmIF9yb290T2JqZWN0XSk7Ci0gICAgW3NlbGYgX2ltcF0tPmRlbGV0
ZVByb3BlcnR5KGV4ZWMsIElkZW50aWZpZXIodi0+dG9TdHJpbmcoZXhlYykpKTsKKyAgICBbc2Vs
ZiBfaW1wXS0+ZGVsZXRlUHJvcGVydHkoZXhlYywgU3RyaW5nKGtleSkpOwogCiAgICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSB7CiAgICAgICAgIExPR19FWENFUFRJT04oZXhlYyk7CkBAIC00
MjIsMzIgKzQwNywyNCBAQCBzdGF0aWMgTGlzdCBsaXN0RnJvbU5TQXJyYXkoRXhlY1N0YXRlICpl
CiAKIC0gKE5TU3RyaW5nICopc3RyaW5nUmVwcmVzZW50YXRpb24KIHsKLSAgICBpZiAoIVtzZWxm
IF9yb290T2JqZWN0XSkKLSAgICAgICAgLy8gVGhpcyBpcyBhIHdvcmthcm91bmQgZm9yIGEgZ2Nj
IDMuMyBpbnRlcm5hbCBjb21waWxlciBlcnJvci4KLSAgICAgICAgcmV0dXJuIEAiVW5kZWZpbmVk
IjsKLQogICAgIGlmICghW3NlbGYgX2lzU2FmZVNjcmlwdF0pCiAgICAgICAgIC8vIFRoaXMgaXMg
YSB3b3JrYXJvdW5kIGZvciBhIGdjYyAzLjMgaW50ZXJuYWwgY29tcGlsZXIgZXJyb3IuCiAgICAg
ICAgIHJldHVybiBAIlVuZGVmaW5lZCI7CiAKICAgICBKU0xvY2sgbG9jazsKLSAgICBKU09iamVj
dCAqdGhpc09iaiA9IGNvbnN0X2Nhc3Q8SlNPYmplY3QqPihbc2VsZiBfaW1wXSk7CiAgICAgRXhl
Y1N0YXRlKiBleGVjID0gW3NlbGYgX3Jvb3RPYmplY3RdLT5pbnRlcnByZXRlcigpLT5nbG9iYWxF
eGVjKCk7CiAgICAgCi0gICAgaWQgcmVzdWx0ID0gY29udmVydFZhbHVlVG9PYmpjVmFsdWUoZXhl
YywgdGhpc09iaiwgT2JqY09iamVjdFR5cGUpLm9iamVjdFZhbHVlOworICAgIGlkIHJlc3VsdCA9
IGNvbnZlcnRWYWx1ZVRvT2JqY1ZhbHVlKGV4ZWMsIFtzZWxmIF9pbXBdLCBPYmpjT2JqZWN0VHlw
ZSkub2JqZWN0VmFsdWU7CiAKLSAgICBpZCByZXN1bHRPYmogPSBbcmVzdWx0IGRlc2NyaXB0aW9u
XTsKKyAgICBOU1N0cmluZyAqZGVzY3JpcHRpb24gPSBbcmVzdWx0IGRlc2NyaXB0aW9uXTsKIAog
ICAgIF9kaWRFeGVjdXRlKHNlbGYpOwogCi0gICAgcmV0dXJuIHJlc3VsdE9iajsKKyAgICByZXR1
cm4gZGVzY3JpcHRpb247CiB9CiAKIC0gKGlkKXdlYlNjcmlwdFZhbHVlQXRJbmRleDoodW5zaWdu
ZWQpaW5kZXgKIHsKLSAgICBpZiAoIVtzZWxmIF9yb290T2JqZWN0XSkKLSAgICAgICAgcmV0dXJu
IG5pbDsKLQogICAgIGlmICghW3NlbGYgX2lzU2FmZVNjcmlwdF0pCiAgICAgICAgIHJldHVybiBu
aWw7CiAKQEAgLTQ3Miw5ICs0NDksNiBAQCBzdGF0aWMgTGlzdCBsaXN0RnJvbU5TQXJyYXkoRXhl
Y1N0YXRlICplCiAKIC0gKHZvaWQpc2V0V2ViU2NyaXB0VmFsdWVBdEluZGV4Oih1bnNpZ25lZClp
bmRleCB2YWx1ZTooaWQpdmFsdWUKIHsKLSAgICBpZiAoIVtzZWxmIF9yb290T2JqZWN0XSkKLSAg
ICAgICAgcmV0dXJuOwotCiAgICAgaWYgKCFbc2VsZiBfaXNTYWZlU2NyaXB0XSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC01MTAsMTEgKzQ4NCw4IEBAIHN0YXRpYyBMaXN0IGxpc3RGcm9tTlNBcnJh
eShFeGVjU3RhdGUgKmUKIAogLSAoSlNPYmplY3RSZWYpSlNPYmplY3QKIHsKLSAgICBpZiAoIVtz
ZWxmIF9yb290T2JqZWN0XSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQogICAgIGlmICghW3NlbGYg
X2lzU2FmZVNjcmlwdF0pCi0gICAgICAgIHJldHVybiBuaWw7CisgICAgICAgIHJldHVybiBOVUxM
OwogCiAgICAgcmV0dXJuIHRvUmVmKFtzZWxmIF9pbXBdKTsKIH0K
</data>
<flag name="review"
          id="6509"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>