<?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>73964</bug_id>
          
          <creation_ts>2011-12-06 16:57:01 -0800</creation_ts>
          <short_desc>Use HashMap&lt;Node*, OwnPtr&lt;...&gt;&gt; in ChildListMutationScope</short_desc>
          <delta_ts>2011-12-08 17:57:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>74032</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Klein">adamk</reporter>
          <assigned_to name="Adam Klein">adamk</assigned_to>
          <cc>darin</cc>
    
    <cc>rafaelw</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>516378</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-12-06 16:57:01 -0800</bug_when>
    <thetext>Use HashMap&lt;Node*, OwnPtr&lt;...&gt;&gt; in ChildListMutationScope</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516379</commentid>
    <comment_count>1</comment_count>
      <attachid>118144</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-12-06 16:58:38 -0800</bug_when>
    <thetext>Created attachment 118144
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516856</commentid>
    <comment_count>2</comment_count>
      <attachid>118144</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-07 13:02:24 -0800</bug_when>
    <thetext>Comment on attachment 118144
Patch

Clearing flags on attachment: 118144

Committed r102267: &lt;http://trac.webkit.org/changeset/102267&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516857</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-07 13:02:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516967</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-12-07 16:06:29 -0800</bug_when>
    <thetext>Broke the mac dbg build:

    /b/build/slave/Mac_Builder__dbg_/build/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../../../../../third_party/llvm-build/Release+Asserts/bin/clang -x c++ -arch i386 -fmessage-length=0 -pipe -Wno-trigraphs -fno-exceptions -fno-rtti -O0 -Werror -Wnewline-eof -DCHROMIUM_BUILD -DENABLE_REMOTING=1 -DENABLE_P2P_APIS=1 -DENABLE_CONFIGURATION_POLICY -DENABLE_INPUT_SPEECH -DENABLE_NOTIFICATIONS -DENABLE_GPU=1 -DENABLE_EGLIMAGE=1 -DENABLE_REGISTER_PROTOCOL_HANDLER=1 &quot;-DWEBCORE_NAVIGATOR_VENDOR=\&quot;Google Inc.\&quot;&quot; -DWEBCORE_NAVIGATOR_PLATFORM=&quot;MacIntel&quot; -DWebCascadeList=ChromiumWebCoreObjCWebCascadeList -DScrollbarPrefsObserver=ChromiumWebCoreObjCScrollbarPrefsObserver -DWebCoreRenderThemeNotificationObserver=ChromiumWebCoreObjCWebCoreRenderThemeNotificationObserver -DWebFontCache=ChromiumWebCoreObjCWebFontCache -DScrollAnimationHelperDelegate=ChromiumWebCoreObjCScrollAnimationHelperDelegate -DScrollbarPainterControllerDelegate=ChromiumWebCoreObjCScrollbarPainterControllerDelegate -DScrollbarPainterDelegate=ChromiumWebCoreObjCScrollbarPainterDelegate -DScrollbarPartAnimation=ChromiumWebCoreObjCScrollbarPartAnimation -DENABLE_3D_PLUGIN=1 -DENABLE_BLOB=1 -DENABLE_BLOB_SLICE=1 -DENABLE_CHANNEL_MESSAGING=1 -DENABLE_CLIENT_BASED_GEOLOCATION=1 -DENABLE_DASHBOARD_SUPPORT=0 -DENABLE_DATA_TRANSFER_ITEMS=1 -DENABLE_DETAILS=1 -DENABLE_DEVICE_ORIENTATION=1 -DENABLE_DIRECTORY_UPLOAD=1 -DENABLE_DOWNLOAD_ATTRIBUTE=1 -DENABLE_FILE_SYSTEM=1 -DENABLE_FILTERS=1 -DENABLE_FULLSCREEN_API=1 -DENABLE_GAMEPAD=1 -DENABLE_GEOLOCATION=1 -DENABLE_GESTURE_EVENTS=1 -DENABLE_GESTURE_RECOGNIZER=1 -DENABLE_ICONDATABASE=0 -DENABLE_INDEXED_DATABASE=1 -DENABLE_INPUT_SPEECH=1 -DENABLE_INPUT_TYPE_COLOR=0 -DENABLE_INPUT_TYPE_DATE=0 -DENABLE_INPUT_TYPE_DATETIME=0 -DENABLE_INPUT_TYPE_DATETIMELOCAL=0 -DENABLE_INPUT_TYPE_MONTH=0 -DENABLE_INPUT_TYPE_TIME=0 -DENABLE_INPUT_TYPE_WEEK=0 -DENABLE_JAVASCRIPT_DEBUGGER=1 -DENABLE_JAVASCRIPT_I18N_API=1 -DENABLE_LINK_PREFETCH=1 -DENABLE_MEDIA_SOURCE=1 -DENABLE_MEDIA_STATISTICS=1 -DENABLE_MEDIA_STREAM=1 -DENABLE_METER_TAG=1 -DENABLE_MHTML=1 -DENABLE_MICRODATA=0 -DENABLE_MUTATION_OBSERVERS=1 -DENABLE_NOTIFICATIONS=1 -DENABLE_ORIENTATION_EVENTS=0 -DENABLE_PAGE_VISIBILITY_API=1 -DENABLE_POINTER_LOCK=1 -DENABLE_PROGRESS_TAG=1 -DENABLE_QUOTA=1 -DENABLE_REQUEST_ANIMATION_FRAME=1 -DENABLE_RUBY=1 -DENABLE_SANDBOX=1 -DENABLE_SHARED_WORKERS=1 -DENABLE_SMOOTH_SCROLLING=1 -DENABLE_SQL_DATABASE=1 -DENABLE_STYLE_SCOPED=0 -DENABLE_SVG=1 -DENABLE_SVG_FONTS=1 -DENABLE_TOUCH_EVENTS=1 -DENABLE_TOUCH_ICON_LOADING=0 -DENABLE_V8_SCRIPT_DEBUG_SERVER=1 -DENABLE_VIDEO=1 -DENABLE_VIDEO_TRACK=1 -DENABLE_WEBGL=1 -DENABLE_WEB_SOCKETS=1 -DENABLE_WEB_TIMING=1 -DENABLE_WORKERS=1 -DENABLE_XHR_RESPONSE_BLOB=1 -DENABLE_XSLT=1 -DWTF_USE_LEVELDB=1 -DWTF_USE_BUILTIN_UTF8_CODEC=1 -DWTF_USE_OPENTYPE_SANITIZER=1 -DWTF_USE_SKIA_TEXT=0 -DWTF_USE_WEBP=1 -DWTF_USE_WEBKIT_IMAGE_DECODERS=1 -DENABLE_WEB_AUDIO=1 -DWTF_USE_ACCELERATED_COMPOSITING=1 -DENABLE_3D_RENDERING=1 -DENABLE_RUBBER_BANDING=1 -DWTF_USE_SKIA_ON_MAC_CHROMIUM=0 -DBUILDING_CHROMIUM__=1 -DUSE_SYSTEM_MALLOC=1 -DWTF_USE_NEW_THEME=1 -DU_USING_ICU_NAMESPACE=0 -DU_STATIC_IMPLEMENTATION -DSK_BUILD_NO_IMAGE_ENCODE -DGR_GL_CUSTOM_SETUP_HEADER=&quot;GrGLConfig_chrome.h&quot; -DGR_AGGRESSIVE_SHADER_OPTS=1 -DCHROME_PNG_WRITE_SUPPORT -DPNG_USER_CONFIG -DLIBXML_STATIC -DLIBXSLT_STATIC -D__STDC_FORMAT_MACROS -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -isysroot /Developer/SDKs/MacOSX10.5.sdk -fvisibility=hidden -fvisibility-inlines-hidden -fno-threadsafe-statics -mmacosx-version-min=10.5 -gdwarf-2 -Wall -Wendif-labels -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wheader-hygiene -Wno-char-subscripts -Wno-unused-function -Wno-unnamed-type-template-args -Wno-c++0x-compat -Wno-c++11-extensions -Wexit-time-destructors -F/b/build/slave/Mac_Builder__dbg_/build/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../../../../../xcodebuild/Debug -F/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/ApplicationServices.framework/Frameworks -I/b/build/slave/Mac_Builder__dbg_/build/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../../../../../xcodebuild/Debug/include -I../../../../icu/public/common -I../../../../icu/public/i18n -I../../../../../third_party/khronos -I../../../../.. -I/b/build/slave/Mac_Builder__dbg_/build/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../../../../../xcodebuild/WebCore.build/DerivedSources/Debug -I../platform/graphics/cocoa -I../platform/graphics/cg -I.. -I../.. -I../Modules/gamepad -I../accessibility -I../accessibility/chromium -I../bindings -I../bindings/generic -I../bindings/v8 -I../bindings/v8/custom -I../bindings/v8/specialization -I../bridge -I../bridge/jni -I../bridge/jni/v8 -I../css -I../dom -I../dom/default -I../editing -I../fileapi -I../history -I../html -I../html/canvas -I../html/parser -I../html/shadow -I../html/track -I../inspector -I../loader -I../loader/appcache -I../loader/archive -I../loader/archive/cf -I../loader/archive/mhtml -I../loader/cache -I../loader/icon -I../mathml -I../mediastream -I../notifications -I../page -I../page/animation -I../page/chromium -I../platform -I../platform/animation -I../platform/audio -I../platform/audio/chromium -I../platform/chromium -I../platform/graphics -I../platform/graphics/chromium -I../platform/graphics/filters -I../platform/graphics/filters/arm -I../platform/graphics/gpu -I../platform/graphics/opentype -I../platform/graphics/skia -I../platform/graphics/transforms -I../platform/image-decoders -I../platform/image-decoders/bmp -I../platform/image-decoders/gif -I../platform/image-decoders/ico -I../platform/image-decoders/jpeg -I../platform/image-decoders/png -I../platform/image-decoders/skia -I../platform/image-decoders/xbm -I../platform/image-decoders/webp -I../platform/image-encoders/skia -I../platform/leveldb -I../platform/mediastream -I../platform/mock -I../platform/network -I../platform/network/chromium -I../platform/sql -I../platform/text -I../platform/text/transcoder -I../plugins -I../plugins/chromium -I../rendering -I../rendering/style -I../rendering/svg -I../storage -I../storage/chromium -I../svg -I../svg/animation -I../svg/graphics -I../svg/graphics/filters -I../svg/properties -I../../ThirdParty/glu -I../webaudio -I../websockets -I../workers -I../xml -I../xml/parser -I../platform/audio/mac -I../platform/cocoa -I../platform/graphics/mac -I../platform/mac -I../platform/text/mac -I../../../../../gpu -I../../../../../third_party/angle/include/GLSLANG -I/b/build/slave/Mac_Builder__dbg_/build/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../../../../../xcodebuild/DerivedSources/Debug/webkit -I/b/build/slave/Mac_Builder__dbg_/build/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../../../../../xcodebuild/DerivedSources/Debug/webkit/bindings -I../../../../../third_party/apple_webkit -I../../JavaScriptCore -I../../JavaScriptCore/wtf -I../../WTF -I../../../../../skia/config -I../../../../../third_party/skia/include/config -I../../../../../third_party/skia/include/core -I../../../../../third_party/skia/include/effects -I../../../../../third_party/skia/include/pdf -I../../../../../third_party/skia/include/gpu -I../../../../../third_party/skia/include/ports -I../../../../../skia/ext -I../../../../../third_party/skia/include/utils/mac -I../../../../iccjpeg -I../../../../libwebp -I../../../../libpng -I../../../../zlib -I../../../../libxml/mac/include -I../../../../libxml/src/include -I../../../../libxslt -I../../../../npapi -I../../../../npapi/bindings -I../../../../ots/include -I../../../../sqlite -I../../../../../v8/include -I../../../../libjpeg_turbo -I../../../../leveldatabase/src/include -I../../../../leveldatabase/src -I/b/build/slave/Mac_Builder__dbg_/build/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../../../../../xcodebuild/WebCore.build/Debug/webcore_dom.build/DerivedSources/i386 -I/b/build/slave/Mac_Builder__dbg_/build/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../../../../../xcodebuild/WebCore.build/Debug/webcore_dom.build/DerivedSources -fno-strict-aliasing -Xclang -load -Xclang /b/build/slave/Mac_Builder__dbg_/build/src/tools/clang/scripts/../../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib -Xclang -add-plugin -Xclang find-bad-constructs -fstack-protector-all -include /b/build/slave/Mac_Builder__dbg_/build/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../WebCorePrefix.h -c /b/build/slave/Mac_Builder__dbg_/build/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../dom/ChildListMutationScope.cpp -o /b/build/slave/Mac_Builder__dbg_/build/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../../../../../xcodebuild/WebCore.build/Debug/webcore_dom.build/Objects-normal/i386/ChildListMutationScope.o
In file included from /b/build/slave/Mac_Builder__dbg_/build/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../dom/ChildListMutationScope.cpp:37:
In file included from ../dom/DocumentFragment.h:27:
In file included from ../dom/ContainerNode.h:28:
In file included from ../dom/Node.h:28:
In file included from ../dom/EventTarget.h:35:
In file included from ../dom/EventListenerMap.h:36:
In file included from ../dom/RegisteredEventListener.h:27:
In file included from ../dom/EventListener.h:24:
In file included from ../../JavaScriptCore/wtf/RefCounted.h:28:
../../JavaScriptCore/wtf/OwnPtr.h:52:9:error: function &apos;WTF::OwnPtr&lt;WebCore::&lt;anonymous&gt;::ChildListMutationAccumulator&gt;::OwnPtr&apos; has internal linkage but is not defined [-Werror]
        OwnPtr(const OwnPtr&lt;ValueType&gt;&amp;);
        ^
/b/build/slave/Mac_Builder__dbg_/build/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../dom/ChildListMutationScope.cpp:261:42: note: used here
    OwnPtr&lt;ChildListMutationAccumulator&gt; record = m_accumulations.take(target);
                                         ^
1 error generated.

Looks like clang doesn&apos;t optimize away the call to the OwnPtr copy constructor here.  We either need to fix OwnPtr or workaround this by avoiding the copy constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517572</commentid>
    <comment_count>5</comment_count>
      <attachid>118423</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-12-08 11:01:12 -0800</bug_when>
    <thetext>Created attachment 118423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517819</commentid>
    <comment_count>6</comment_count>
      <attachid>118423</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-08 14:52:01 -0800</bug_when>
    <thetext>Comment on attachment 118423
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        * wtf/HashTraits.h: Add passOut(std::nullptr_t) to allow callers to use HashMap::take on an entry whose value is null.

This is an incorrect comment. The code is used when take is called and there is no entry, not when the entry’s value is null. But even if we never do that, the reason we have to add passOut is to make HashMake::take compile the code for that case.

&gt; Source/WebCore/dom/ChildListMutationScope.cpp:245
&gt; -        m_accumulations.set(target, 0);
&gt; +        m_accumulations.set(target, nullptr);

Maybe we should do a remove here instead of a set.

&gt; Source/WebCore/dom/ChildListMutationScope.cpp:261
&gt; -    RefPtr&lt;ChildListMutationAccumulator&gt; record = m_accumulations.take(target);
&gt; +    OwnPtr&lt;ChildListMutationAccumulator&gt; record(m_accumulations.take(target));

Why not use &quot;=&quot;? I find the other style harder to read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517830</commentid>
    <comment_count>7</comment_count>
      <attachid>118423</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-12-08 15:03:27 -0800</bug_when>
    <thetext>Comment on attachment 118423
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:8
&gt;&gt; +        * wtf/HashTraits.h: Add passOut(std::nullptr_t) to allow callers to use HashMap::take on an entry whose value is null.
&gt; 
&gt; This is an incorrect comment. The code is used when take is called and there is no entry, not when the entry’s value is null. But even if we never do that, the reason we have to add passOut is to make HashMake::take compile the code for that case.

Fixed.

&gt;&gt; Source/WebCore/dom/ChildListMutationScope.cpp:245
&gt;&gt; +        m_accumulations.set(target, nullptr);
&gt; 
&gt; Maybe we should do a remove here instead of a set.

We actually use the nullptr here as a sentry value indicating that we&apos;ve already checked for interested observers, so we can avoid doing that work each time we increase the scoping level.

&gt;&gt; Source/WebCore/dom/ChildListMutationScope.cpp:261
&gt;&gt; +    OwnPtr&lt;ChildListMutationAccumulator&gt; record(m_accumulations.take(target));
&gt; 
&gt; Why not use &quot;=&quot;? I find the other style harder to read.

When building Chromium Mac, clang complains about the &apos;=&apos; form:

../../JavaScriptCore/wtf/OwnPtr.h:52:9:error: function &apos;WTF::OwnPtr&lt;WebCore::&lt;anonymous&gt;::ChildListMutationAccumulator&gt;::OwnPtr&apos; has internal linkage but is not defined [-Werror]
        OwnPtr(const OwnPtr&lt;ValueType&gt;&amp;);
        ^
/b/build/slave/Mac_Builder__dbg_/build/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../dom/ChildListMutationScope.cpp:261:42: note: used here
    OwnPtr&lt;ChildListMutationAccumulator&gt; record = m_accumulations.take(target);
                                         ^
1 error generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517831</commentid>
    <comment_count>8</comment_count>
      <attachid>118476</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-12-08 15:04:38 -0800</bug_when>
    <thetext>Created attachment 118476
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517834</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-12-08 15:08:02 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 118423 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=118423&amp;action=review
&gt;  
&gt; &gt;&gt; Source/WebCore/dom/ChildListMutationScope.cpp:245
&gt; &gt;&gt; +        m_accumulations.set(target, nullptr);
&gt; &gt; 
&gt; &gt; Maybe we should do a remove here instead of a set.
&gt; 
&gt; We actually use the nullptr here as a sentry value indicating that we&apos;ve already checked for interested observers, so we can avoid doing that work each time we increase the scoping level.
&gt;

Reading the code again I see that this is only used by ASSERTions, so we could get away with this. But I&apos;d rather leave that for later if it&apos;s something Rafael wants to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517896</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-08 16:29:00 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt;&gt; Source/WebCore/dom/ChildListMutationScope.cpp:261
&gt; &gt;&gt; +    OwnPtr&lt;ChildListMutationAccumulator&gt; record(m_accumulations.take(target));
&gt; &gt; 
&gt; &gt; Why not use &quot;=&quot;? I find the other style harder to read.
&gt; 
&gt; When building Chromium Mac, clang complains about the &apos;=&apos; form:

OK, makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517994</commentid>
    <comment_count>11</comment_count>
      <attachid>118476</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-08 17:57:16 -0800</bug_when>
    <thetext>Comment on attachment 118476
Patch for landing

Clearing flags on attachment: 118476

Committed r102410: &lt;http://trac.webkit.org/changeset/102410&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517995</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-08 17:57:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118144</attachid>
            <date>2011-12-06 16:58:38 -0800</date>
            <delta_ts>2011-12-08 11:01:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73964-20111206165837.patch</filename>
            <type>text/plain</type>
            <size>5719</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MjBlMmJmNzhkYzBkODQ2Njc0ZTBkNTdjYzU2YjUzNzQ2OTRlYmVlLi41MjQzZDczZTExZWUwZGE4
M2MxOTBhNDhjZTUxMzAwYzllYTg1ZjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMS0xMi0wNiAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4K
KworICAgICAgICBVc2UgSGFzaE1hcDxOb2RlKiwgT3duUHRyPC4uLj4+IGluIENoaWxkTGlzdE11
dGF0aW9uU2NvcGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTczOTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvSGFzaFRyYWl0cy5oOiBBZGQgcGFzc091dChzdGQ6Om51bGxwdHJfdCkgdG8gYWxs
b3cgY2FsbGVycyB0byB1c2UgSGFzaE1hcDo6dGFrZSBvbiBhbiBlbnRyeSB3aG9zZSB2YWx1ZSBp
cyBudWxsLgorCiAyMDExLTEyLTA2ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCA4IGJpdCBwYXRocyB0byBnbG9iYWwgb2JqZWN0IGZ1bmN0aW9ucwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDU1MTM0YTc2MDY5YjYxZjlhMDg5OWU5ODZjNDZmZDFmZmM5ZGZhNzYuLjFh
MDkxZWExZDU1ZjNjZjVhYThiNTVmNDhiZTRiZTI4MGUwMWEyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxMS0xMi0wNiAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4K
KworICAgICAgICBVc2UgSGFzaE1hcDxOb2RlKiwgT3duUHRyPC4uLj4+IGluIENoaWxkTGlzdE11
dGF0aW9uU2NvcGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTczOTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCByZWZhY3RvcmluZyBvbmx5LgorCisgICAgICAgICogZG9tL0NoaWxk
TGlzdE11dGF0aW9uU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hpbGRMaXN0TXV0YXRp
b25BY2N1bXVsYXRvcjo6TXV0YXRpb25BY2N1bXVsYXRpb25Sb3V0ZXI6OmNoaWxkQWRkZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRvcjo6TXV0YXRpb25B
Y2N1bXVsYXRpb25Sb3V0ZXI6OndpbGxSZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpD
aGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yOjpNdXRhdGlvbkFjY3VtdWxhdGlvblJvdXRlcjo6
aW5jcmVtZW50U2NvcGluZ0xldmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNoaWxkTGlzdE11dGF0
aW9uQWNjdW11bGF0b3I6Ok11dGF0aW9uQWNjdW11bGF0aW9uUm91dGVyOjpkZWNyZW1lbnRTY29w
aW5nTGV2ZWwpOgorCiAyMDExLTEyLTA2ICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBNZWRpYUxpc3Q6IFJlbW92ZSBjb25zdHJ1Y3RvciB0aGF0IHRha2VzIGEg
Q1NTSW1wb3J0UnVsZSouCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0hh
c2hUcmFpdHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSGFzaFRyYWl0cy5oCmluZGV4
IDU4MDFlODJjMjZkYTQ0N2U5ODZlMjdjNTc4NmFiODE3NDUyYjFhZDQuLmYyZjljMzQ1OTdjZDgx
NjA1YzFhYjZmNThlMzkwM2RhYWQzNDVhZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvSGFzaFRyYWl0cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSGFz
aFRyYWl0cy5oCkBAIC0xMTcsNiArMTE3LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAKICAgICAgICAg
dHlwZWRlZiBQYXNzT3duUHRyPFA+IFBhc3NPdXRUeXBlOwogICAgICAgICBzdGF0aWMgUGFzc093
blB0cjxQPiBwYXNzT3V0KE93blB0cjxQPiYgdmFsdWUpIHsgcmV0dXJuIHZhbHVlLnJlbGVhc2Uo
KTsgfQorICAgICAgICBzdGF0aWMgUGFzc093blB0cjxQPiBwYXNzT3V0KHN0ZDo6bnVsbHB0cl90
KSB7IHJldHVybiBudWxscHRyOyB9CiAKICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBPd25QdHI8
UD46OlB0clR5cGUgUGVla1R5cGU7CiAgICAgICAgIHN0YXRpYyBQZWVrVHlwZSBwZWVrKGNvbnN0
IE93blB0cjxQPiYgdmFsdWUpIHsgcmV0dXJuIHZhbHVlLmdldCgpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHAKaW5kZXggZDUzODNjMGRlZGM0ZDI4
YThjYjI1NTAyZTJlNTczMTc1NjIzZGEwNy4uNmM5YTJiM2M3ZTUwYzFiOTZmZTQ5YzU1MDMwMjhl
MGJmM2MwMDk0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0
aW9uU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNj
b3BlLmNwcApAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJT
dGF0aWNOb2RlTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNTAsNyArNTAsNyBAQCBuYW1lc3BhY2UgewogLy8gYW5kIHByZWNlZGUgYW55
IGFkZGl0aW9ucy4gSWYgdGhpcyBpcyB2aW9sYXRlZCAoaS5lLiBiZWNhdXNlIG9mIGNvZGUgY2hh
bmdlcyBlbHNld2hlcmUKIC8vIGluIFdlYkNvcmUpIGl0IHdpbGwgbGlrZWx5IHJlc3VsdCBpbiBi
b3RoIChhKSBBU1NFUlRpb25zIGZhaWxpbmcsIGFuZCAoYikgbXV0YXRpb24gcmVjb3JkcwogLy8g
YmVpbmcgZW5xdWV1ZWQgZm9yIGRlbGl2ZXJ5IGJlZm9yZSB0aGUgb3V0ZXItbW9zdCBzY29wZSBj
bG9zZXMuCi1jbGFzcyBDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yIDogcHVibGljIFJlZkNv
dW50ZWQ8Q2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRvcj4geworY2xhc3MgQ2hpbGRMaXN0TXV0
YXRpb25BY2N1bXVsYXRvciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ2hpbGRMaXN0TXV0
YXRpb25BY2N1bXVsYXRvcik7CiBwdWJsaWM6CiAgICAgQ2hpbGRMaXN0TXV0YXRpb25BY2N1bXVs
YXRvcihQYXNzUmVmUHRyPE5vZGU+LCBQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVz
dEdyb3VwPiBvYnNlcnZlcnMpOwpAQCAtOTUsNyArOTUsNyBAQCBwcml2YXRlOgogCiAgICAgdHlw
ZWRlZiBIYXNoTWFwPE5vZGUqLCB1bnNpZ25lZD4gU2NvcGluZ0xldmVsTWFwOwogICAgIFNjb3Bp
bmdMZXZlbE1hcCBtX3Njb3BpbmdMZXZlbHM7Ci0gICAgSGFzaE1hcDxOb2RlKiwgUmVmUHRyPENo
aWxkTGlzdE11dGF0aW9uQWNjdW11bGF0b3I+ID4gbV9hY2N1bXVsYXRpb25zOworICAgIEhhc2hN
YXA8Tm9kZSosIE93blB0cjxDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yPiA+IG1fYWNjdW11
bGF0aW9uczsKIAogICAgIHN0YXRpYyBNdXRhdGlvbkFjY3VtdWxhdGlvblJvdXRlciogc19pbnN0
YW5jZTsKIH07CkBAIC0yMTYsNyArMjE2LDcgQEAgTXV0YXRpb25BY2N1bXVsYXRpb25Sb3V0ZXIq
IE11dGF0aW9uQWNjdW11bGF0aW9uUm91dGVyOjppbnN0YW5jZSgpCiAKIHZvaWQgTXV0YXRpb25B
Y2N1bXVsYXRpb25Sb3V0ZXI6OmNoaWxkQWRkZWQoTm9kZSogdGFyZ2V0LCBOb2RlKiBjaGlsZCkK
IHsKLSAgICBIYXNoTWFwPE5vZGUqLCBSZWZQdHI8Q2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRv
cj4gPjo6aXRlcmF0b3IgaXRlciA9IG1fYWNjdW11bGF0aW9ucy5maW5kKHRhcmdldCk7CisgICAg
SGFzaE1hcDxOb2RlKiwgT3duUHRyPENoaWxkTGlzdE11dGF0aW9uQWNjdW11bGF0b3I+ID46Oml0
ZXJhdG9yIGl0ZXIgPSBtX2FjY3VtdWxhdGlvbnMuZmluZCh0YXJnZXQpOwogICAgIEFTU0VSVChp
dGVyICE9IG1fYWNjdW11bGF0aW9ucy5lbmQoKSk7CiAKICAgICBpZiAoaXRlci0+c2Vjb25kKQpA
QCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgTXV0YXRpb25BY2N1bXVsYXRpb25Sb3V0ZXI6OmNoaWxk
QWRkZWQoTm9kZSogdGFyZ2V0LCBOb2RlKiBjaGlsZCkKIAogdm9pZCBNdXRhdGlvbkFjY3VtdWxh
dGlvblJvdXRlcjo6d2lsbFJlbW92ZUNoaWxkKE5vZGUqIHRhcmdldCwgTm9kZSogY2hpbGQpCiB7
Ci0gICAgSGFzaE1hcDxOb2RlKiwgUmVmUHRyPENoaWxkTGlzdE11dGF0aW9uQWNjdW11bGF0b3I+
ID46Oml0ZXJhdG9yIGl0ZXIgPSBtX2FjY3VtdWxhdGlvbnMuZmluZCh0YXJnZXQpOworICAgIEhh
c2hNYXA8Tm9kZSosIE93blB0cjxDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yPiA+OjppdGVy
YXRvciBpdGVyID0gbV9hY2N1bXVsYXRpb25zLmZpbmQodGFyZ2V0KTsKICAgICBBU1NFUlQoaXRl
ciAhPSBtX2FjY3VtdWxhdGlvbnMuZW5kKCkpOwogCiAgICAgaWYgKGl0ZXItPnNlY29uZCkKQEAg
LTI0Miw5ICsyNDIsOSBAQCB2b2lkIE11dGF0aW9uQWNjdW11bGF0aW9uUm91dGVyOjppbmNyZW1l
bnRTY29waW5nTGV2ZWwoTm9kZSogdGFyZ2V0KQogCiAgICAgT3duUHRyPE11dGF0aW9uT2JzZXJ2
ZXJJbnRlcmVzdEdyb3VwPiBvYnNlcnZlcnMgPSBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91
cDo6Y3JlYXRlRm9yQ2hpbGRMaXN0TXV0YXRpb24odGFyZ2V0KTsKICAgICBpZiAob2JzZXJ2ZXJz
LT5pc0VtcHR5KCkpCi0gICAgICAgIG1fYWNjdW11bGF0aW9ucy5zZXQodGFyZ2V0LCAwKTsKKyAg
ICAgICAgbV9hY2N1bXVsYXRpb25zLnNldCh0YXJnZXQsIG51bGxwdHIpOwogICAgIGVsc2UKLSAg
ICAgICAgbV9hY2N1bXVsYXRpb25zLnNldCh0YXJnZXQsIGFkb3B0UmVmKG5ldyBDaGlsZExpc3RN
dXRhdGlvbkFjY3VtdWxhdG9yKHRhcmdldCwgb2JzZXJ2ZXJzLnJlbGVhc2UoKSkpKTsKKyAgICAg
ICAgbV9hY2N1bXVsYXRpb25zLnNldCh0YXJnZXQsIGFkb3B0UHRyKG5ldyBDaGlsZExpc3RNdXRh
dGlvbkFjY3VtdWxhdG9yKHRhcmdldCwgb2JzZXJ2ZXJzLnJlbGVhc2UoKSkpKTsKIH0KIAogdm9p
ZCBNdXRhdGlvbkFjY3VtdWxhdGlvblJvdXRlcjo6ZGVjcmVtZW50U2NvcGluZ0xldmVsKE5vZGUq
IHRhcmdldCkKQEAgLTI1OCw3ICsyNTgsNyBAQCB2b2lkIE11dGF0aW9uQWNjdW11bGF0aW9uUm91
dGVyOjpkZWNyZW1lbnRTY29waW5nTGV2ZWwoTm9kZSogdGFyZ2V0KQogCiAgICAgbV9zY29waW5n
TGV2ZWxzLnJlbW92ZShpdGVyKTsKIAotICAgIFJlZlB0cjxDaGlsZExpc3RNdXRhdGlvbkFjY3Vt
dWxhdG9yPiByZWNvcmQgPSBtX2FjY3VtdWxhdGlvbnMudGFrZSh0YXJnZXQpOworICAgIE93blB0
cjxDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yPiByZWNvcmQgPSBtX2FjY3VtdWxhdGlvbnMu
dGFrZSh0YXJnZXQpOwogICAgIGlmIChyZWNvcmQpCiAgICAgICAgIHJlY29yZC0+ZW5xdWV1ZU11
dGF0aW9uUmVjb3JkKCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118423</attachid>
            <date>2011-12-08 11:01:12 -0800</date>
            <delta_ts>2011-12-08 15:04:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73964-20111208110110.patch</filename>
            <type>text/plain</type>
            <size>5760</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZDAyNTczMDRiN2YxMjIyNDI1YTIwOGRkMGZjZDNkNDk5OWIyMGFhLi41NzNiZjU2Njc0MjRiOTE1
NDZkMWIxMjU0ZWI4ZDQ0MWZiYTYxNmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMS0xMi0wNyAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4K
KworICAgICAgICBVc2UgSGFzaE1hcDxOb2RlKiwgT3duUHRyPC4uLj4+IGluIENoaWxkTGlzdE11
dGF0aW9uU2NvcGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTczOTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvSGFzaFRyYWl0cy5oOiBBZGQgcGFzc091dChzdGQ6Om51bGxwdHJfdCkgdG8gYWxs
b3cgY2FsbGVycyB0byB1c2UgSGFzaE1hcDo6dGFrZSBvbiBhbiBlbnRyeSB3aG9zZSB2YWx1ZSBp
cyBudWxsLgorCiAyMDExLTEyLTA3ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTAyMjY3LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGUxZDY5MDViMDZhODVjNTllNjgzNGI4ZTIyZDYxODdiYTM0Zjg3MTIuLmYzNWU5
NzczNDE3ZDllYTczZjM3ZjIyNzBiOGMwNzYyYjdjNDhiMDMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMCBAQAorMjAxMS0xMi0wNyAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBVc2UgSGFzaE1hcDxOb2RlKiwgT3duUHRyPC4uLj4+IGluIENoaWxkTGlzdE11dGF0
aW9uU2NvcGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTczOTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmUtbGFuZGluZyByMTAyMjY3IHdpdGggYSBmaXggZm9yIHRoZSBjbGFuZyBidWlsZC4KKworICAg
ICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yaW5nIG9ubHkuCisKKyAgICAgICAgKiBkb20vQ2hp
bGRMaXN0TXV0YXRpb25TY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaGlsZExpc3RNdXRh
dGlvbkFjY3VtdWxhdG9yOjpNdXRhdGlvbkFjY3VtdWxhdGlvblJvdXRlcjo6Y2hpbGRBZGRlZCk6
CisgICAgICAgIChXZWJDb3JlOjpDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yOjpNdXRhdGlv
bkFjY3VtdWxhdGlvblJvdXRlcjo6d2lsbFJlbW92ZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNoaWxkTGlzdE11dGF0aW9uQWNjdW11bGF0b3I6Ok11dGF0aW9uQWNjdW11bGF0aW9uUm91dGVy
OjppbmNyZW1lbnRTY29waW5nTGV2ZWwpOgorICAgICAgICAoV2ViQ29yZTo6Q2hpbGRMaXN0TXV0
YXRpb25BY2N1bXVsYXRvcjo6TXV0YXRpb25BY2N1bXVsYXRpb25Sb3V0ZXI6OmRlY3JlbWVudFNj
b3BpbmdMZXZlbCk6CisKIDIwMTEtMTItMDcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5i
b3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDIyNjcu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0hhc2hUcmFpdHMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSGFzaFRyYWl0cy5oCmluZGV4IDU4MDFlODJjMjZkYTQ0
N2U5ODZlMjdjNTc4NmFiODE3NDUyYjFhZDQuLmYyZjljMzQ1OTdjZDgxNjA1YzFhYjZmNThlMzkw
M2RhYWQzNDVhZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSGFzaFRy
YWl0cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSGFzaFRyYWl0cy5oCkBAIC0x
MTcsNiArMTE3LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAKICAgICAgICAgdHlwZWRlZiBQYXNzT3du
UHRyPFA+IFBhc3NPdXRUeXBlOwogICAgICAgICBzdGF0aWMgUGFzc093blB0cjxQPiBwYXNzT3V0
KE93blB0cjxQPiYgdmFsdWUpIHsgcmV0dXJuIHZhbHVlLnJlbGVhc2UoKTsgfQorICAgICAgICBz
dGF0aWMgUGFzc093blB0cjxQPiBwYXNzT3V0KHN0ZDo6bnVsbHB0cl90KSB7IHJldHVybiBudWxs
cHRyOyB9CiAKICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBPd25QdHI8UD46OlB0clR5cGUgUGVl
a1R5cGU7CiAgICAgICAgIHN0YXRpYyBQZWVrVHlwZSBwZWVrKGNvbnN0IE93blB0cjxQPiYgdmFs
dWUpIHsgcmV0dXJuIHZhbHVlLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRM
aXN0TXV0YXRpb25TY29wZS5jcHAKaW5kZXggZDUzODNjMGRlZGM0ZDI4YThjYjI1NTAyZTJlNTcz
MTc1NjIzZGEwNy4uMWYwOTQzYWZkNjIyMDRiZDhlZDgxNWNjZWY2ZDRkZDc1ZDVlY2I5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcApAQCAtNDAs
NyArNDAsNyBAQAogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJTdGF0aWNOb2RlTGlzdC5o
IgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTAs
NyArNTAsNyBAQCBuYW1lc3BhY2UgewogLy8gYW5kIHByZWNlZGUgYW55IGFkZGl0aW9ucy4gSWYg
dGhpcyBpcyB2aW9sYXRlZCAoaS5lLiBiZWNhdXNlIG9mIGNvZGUgY2hhbmdlcyBlbHNld2hlcmUK
IC8vIGluIFdlYkNvcmUpIGl0IHdpbGwgbGlrZWx5IHJlc3VsdCBpbiBib3RoIChhKSBBU1NFUlRp
b25zIGZhaWxpbmcsIGFuZCAoYikgbXV0YXRpb24gcmVjb3JkcwogLy8gYmVpbmcgZW5xdWV1ZWQg
Zm9yIGRlbGl2ZXJ5IGJlZm9yZSB0aGUgb3V0ZXItbW9zdCBzY29wZSBjbG9zZXMuCi1jbGFzcyBD
aGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8Q2hpbGRMaXN0
TXV0YXRpb25BY2N1bXVsYXRvcj4geworY2xhc3MgQ2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRv
ciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRv
cik7CiBwdWJsaWM6CiAgICAgQ2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRvcihQYXNzUmVmUHRy
PE5vZGU+LCBQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBvYnNlcnZl
cnMpOwpAQCAtOTUsNyArOTUsNyBAQCBwcml2YXRlOgogCiAgICAgdHlwZWRlZiBIYXNoTWFwPE5v
ZGUqLCB1bnNpZ25lZD4gU2NvcGluZ0xldmVsTWFwOwogICAgIFNjb3BpbmdMZXZlbE1hcCBtX3Nj
b3BpbmdMZXZlbHM7Ci0gICAgSGFzaE1hcDxOb2RlKiwgUmVmUHRyPENoaWxkTGlzdE11dGF0aW9u
QWNjdW11bGF0b3I+ID4gbV9hY2N1bXVsYXRpb25zOworICAgIEhhc2hNYXA8Tm9kZSosIE93blB0
cjxDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yPiA+IG1fYWNjdW11bGF0aW9uczsKIAogICAg
IHN0YXRpYyBNdXRhdGlvbkFjY3VtdWxhdGlvblJvdXRlciogc19pbnN0YW5jZTsKIH07CkBAIC0y
MTYsNyArMjE2LDcgQEAgTXV0YXRpb25BY2N1bXVsYXRpb25Sb3V0ZXIqIE11dGF0aW9uQWNjdW11
bGF0aW9uUm91dGVyOjppbnN0YW5jZSgpCiAKIHZvaWQgTXV0YXRpb25BY2N1bXVsYXRpb25Sb3V0
ZXI6OmNoaWxkQWRkZWQoTm9kZSogdGFyZ2V0LCBOb2RlKiBjaGlsZCkKIHsKLSAgICBIYXNoTWFw
PE5vZGUqLCBSZWZQdHI8Q2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRvcj4gPjo6aXRlcmF0b3Ig
aXRlciA9IG1fYWNjdW11bGF0aW9ucy5maW5kKHRhcmdldCk7CisgICAgSGFzaE1hcDxOb2RlKiwg
T3duUHRyPENoaWxkTGlzdE11dGF0aW9uQWNjdW11bGF0b3I+ID46Oml0ZXJhdG9yIGl0ZXIgPSBt
X2FjY3VtdWxhdGlvbnMuZmluZCh0YXJnZXQpOwogICAgIEFTU0VSVChpdGVyICE9IG1fYWNjdW11
bGF0aW9ucy5lbmQoKSk7CiAKICAgICBpZiAoaXRlci0+c2Vjb25kKQpAQCAtMjI1LDcgKzIyNSw3
IEBAIHZvaWQgTXV0YXRpb25BY2N1bXVsYXRpb25Sb3V0ZXI6OmNoaWxkQWRkZWQoTm9kZSogdGFy
Z2V0LCBOb2RlKiBjaGlsZCkKIAogdm9pZCBNdXRhdGlvbkFjY3VtdWxhdGlvblJvdXRlcjo6d2ls
bFJlbW92ZUNoaWxkKE5vZGUqIHRhcmdldCwgTm9kZSogY2hpbGQpCiB7Ci0gICAgSGFzaE1hcDxO
b2RlKiwgUmVmUHRyPENoaWxkTGlzdE11dGF0aW9uQWNjdW11bGF0b3I+ID46Oml0ZXJhdG9yIGl0
ZXIgPSBtX2FjY3VtdWxhdGlvbnMuZmluZCh0YXJnZXQpOworICAgIEhhc2hNYXA8Tm9kZSosIE93
blB0cjxDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yPiA+OjppdGVyYXRvciBpdGVyID0gbV9h
Y2N1bXVsYXRpb25zLmZpbmQodGFyZ2V0KTsKICAgICBBU1NFUlQoaXRlciAhPSBtX2FjY3VtdWxh
dGlvbnMuZW5kKCkpOwogCiAgICAgaWYgKGl0ZXItPnNlY29uZCkKQEAgLTI0Miw5ICsyNDIsOSBA
QCB2b2lkIE11dGF0aW9uQWNjdW11bGF0aW9uUm91dGVyOjppbmNyZW1lbnRTY29waW5nTGV2ZWwo
Tm9kZSogdGFyZ2V0KQogCiAgICAgT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3Vw
PiBvYnNlcnZlcnMgPSBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hp
bGRMaXN0TXV0YXRpb24odGFyZ2V0KTsKICAgICBpZiAob2JzZXJ2ZXJzLT5pc0VtcHR5KCkpCi0g
ICAgICAgIG1fYWNjdW11bGF0aW9ucy5zZXQodGFyZ2V0LCAwKTsKKyAgICAgICAgbV9hY2N1bXVs
YXRpb25zLnNldCh0YXJnZXQsIG51bGxwdHIpOwogICAgIGVsc2UKLSAgICAgICAgbV9hY2N1bXVs
YXRpb25zLnNldCh0YXJnZXQsIGFkb3B0UmVmKG5ldyBDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxh
dG9yKHRhcmdldCwgb2JzZXJ2ZXJzLnJlbGVhc2UoKSkpKTsKKyAgICAgICAgbV9hY2N1bXVsYXRp
b25zLnNldCh0YXJnZXQsIGFkb3B0UHRyKG5ldyBDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9y
KHRhcmdldCwgb2JzZXJ2ZXJzLnJlbGVhc2UoKSkpKTsKIH0KIAogdm9pZCBNdXRhdGlvbkFjY3Vt
dWxhdGlvblJvdXRlcjo6ZGVjcmVtZW50U2NvcGluZ0xldmVsKE5vZGUqIHRhcmdldCkKQEAgLTI1
OCw3ICsyNTgsNyBAQCB2b2lkIE11dGF0aW9uQWNjdW11bGF0aW9uUm91dGVyOjpkZWNyZW1lbnRT
Y29waW5nTGV2ZWwoTm9kZSogdGFyZ2V0KQogCiAgICAgbV9zY29waW5nTGV2ZWxzLnJlbW92ZShp
dGVyKTsKIAotICAgIFJlZlB0cjxDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yPiByZWNvcmQg
PSBtX2FjY3VtdWxhdGlvbnMudGFrZSh0YXJnZXQpOworICAgIE93blB0cjxDaGlsZExpc3RNdXRh
dGlvbkFjY3VtdWxhdG9yPiByZWNvcmQobV9hY2N1bXVsYXRpb25zLnRha2UodGFyZ2V0KSk7CiAg
ICAgaWYgKHJlY29yZCkKICAgICAgICAgcmVjb3JkLT5lbnF1ZXVlTXV0YXRpb25SZWNvcmQoKTsK
IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118476</attachid>
            <date>2011-12-08 15:04:38 -0800</date>
            <delta_ts>2011-12-08 17:57:16 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-73964-20111208150436.patch</filename>
            <type>text/plain</type>
            <size>5746</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZDAyNTczMDRiN2YxMjIyNDI1YTIwOGRkMGZjZDNkNDk5OWIyMGFhLi5kNzU1YzRlZDIzZTk4ODI5
NjI4ODA1ZDBhNTAyZjk5NmQ4N2I4ZTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMS0xMi0wNyAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4K
KworICAgICAgICBVc2UgSGFzaE1hcDxOb2RlKiwgT3duUHRyPC4uLj4+IGluIENoaWxkTGlzdE11
dGF0aW9uU2NvcGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTczOTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAg
KiB3dGYvSGFzaFRyYWl0cy5oOiBBZGQgcGFzc091dChzdGQ6Om51bGxwdHJfdCkgdG8gYWxsb3cg
Y2FsbGVycyB0byB1c2UgSGFzaE1hcDo6dGFrZSBvbiBhIEhhc2hNYXAgb2YgT3duUHRycy4KKwog
MjAxMS0xMi0wNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwMjI2Ny4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBl
MWQ2OTA1YjA2YTg1YzU5ZTY4MzRiOGUyMmQ2MTg3YmEzNGY4NzEyLi5jZmM0ZWE5OGZkZGFhOTg1
ZmFhMGQ4M2MyZGIyODU0NGNjMzE3N2YwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTEtMTItMDcgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVXNl
IEhhc2hNYXA8Tm9kZSosIE93blB0cjwuLi4+PiBpbiBDaGlsZExpc3RNdXRhdGlvblNjb3BlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk2NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFJlLWxhbmRpbmcgcjEw
MjI2NyB3aXRoIGEgZml4IGZvciB0aGUgY2xhbmcgYnVpbGQuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCByZWZhY3RvcmluZyBvbmx5LgorCisgICAgICAgICogZG9tL0NoaWxkTGlzdE11dGF0aW9u
U2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRv
cjo6TXV0YXRpb25BY2N1bXVsYXRpb25Sb3V0ZXI6OmNoaWxkQWRkZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRvcjo6TXV0YXRpb25BY2N1bXVsYXRpb25S
b3V0ZXI6OndpbGxSZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDaGlsZExpc3RNdXRh
dGlvbkFjY3VtdWxhdG9yOjpNdXRhdGlvbkFjY3VtdWxhdGlvblJvdXRlcjo6aW5jcmVtZW50U2Nv
cGluZ0xldmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNoaWxkTGlzdE11dGF0aW9uQWNjdW11bGF0
b3I6Ok11dGF0aW9uQWNjdW11bGF0aW9uUm91dGVyOjpkZWNyZW1lbnRTY29waW5nTGV2ZWwpOgor
CiAyMDExLTEyLTA3ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTAyMjY3LgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9IYXNoVHJhaXRzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL0hhc2hUcmFpdHMuaAppbmRleCA1ODAxZTgyYzI2ZGE0NDdlOTg2ZTI3YzU3ODZh
YjgxNzQ1MmIxYWQ0Li5mMmY5YzM0NTk3Y2Q4MTYwNWMxYWI2ZjU4ZTM5MDNkYWFkMzQ1YWZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0hhc2hUcmFpdHMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0hhc2hUcmFpdHMuaApAQCAtMTE3LDYgKzExNyw3IEBA
IG5hbWVzcGFjZSBXVEYgewogCiAgICAgICAgIHR5cGVkZWYgUGFzc093blB0cjxQPiBQYXNzT3V0
VHlwZTsKICAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8UD4gcGFzc091dChPd25QdHI8UD4mIHZh
bHVlKSB7IHJldHVybiB2YWx1ZS5yZWxlYXNlKCk7IH0KKyAgICAgICAgc3RhdGljIFBhc3NPd25Q
dHI8UD4gcGFzc091dChzdGQ6Om51bGxwdHJfdCkgeyByZXR1cm4gbnVsbHB0cjsgfQogCiAgICAg
ICAgIHR5cGVkZWYgdHlwZW5hbWUgT3duUHRyPFA+OjpQdHJUeXBlIFBlZWtUeXBlOwogICAgICAg
ICBzdGF0aWMgUGVla1R5cGUgcGVlayhjb25zdCBPd25QdHI8UD4mIHZhbHVlKSB7IHJldHVybiB2
YWx1ZS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11
dGF0aW9uU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2Nv
cGUuY3BwCmluZGV4IGQ1MzgzYzBkZWRjNGQyOGE4Y2IyNTUwMmUyZTU3MzE3NTYyM2RhMDcuLjFm
MDk0M2FmZDYyMjA0YmQ4ZWQ4MTVjY2VmNmQ0ZGQ3NWQ1ZWNiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHAKQEAgLTQwLDcgKzQwLDcgQEAKICNp
bmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiU3RhdGljTm9kZUxpc3QuaCIKICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3Rm
L093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTUwLDcgKzUwLDcgQEAgbmFt
ZXNwYWNlIHsKIC8vIGFuZCBwcmVjZWRlIGFueSBhZGRpdGlvbnMuIElmIHRoaXMgaXMgdmlvbGF0
ZWQgKGkuZS4gYmVjYXVzZSBvZiBjb2RlIGNoYW5nZXMgZWxzZXdoZXJlCiAvLyBpbiBXZWJDb3Jl
KSBpdCB3aWxsIGxpa2VseSByZXN1bHQgaW4gYm90aCAoYSkgQVNTRVJUaW9ucyBmYWlsaW5nLCBh
bmQgKGIpIG11dGF0aW9uIHJlY29yZHMKIC8vIGJlaW5nIGVucXVldWVkIGZvciBkZWxpdmVyeSBi
ZWZvcmUgdGhlIG91dGVyLW1vc3Qgc2NvcGUgY2xvc2VzLgotY2xhc3MgQ2hpbGRMaXN0TXV0YXRp
b25BY2N1bXVsYXRvciA6IHB1YmxpYyBSZWZDb3VudGVkPENoaWxkTGlzdE11dGF0aW9uQWNjdW11
bGF0b3I+IHsKK2NsYXNzIENoaWxkTGlzdE11dGF0aW9uQWNjdW11bGF0b3IgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKENoaWxkTGlzdE11dGF0aW9uQWNjdW11bGF0b3IpOwogcHVibGljOgog
ICAgIENoaWxkTGlzdE11dGF0aW9uQWNjdW11bGF0b3IoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc093
blB0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gb2JzZXJ2ZXJzKTsKQEAgLTk1LDcg
Kzk1LDcgQEAgcHJpdmF0ZToKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxOb2RlKiwgdW5zaWduZWQ+
IFNjb3BpbmdMZXZlbE1hcDsKICAgICBTY29waW5nTGV2ZWxNYXAgbV9zY29waW5nTGV2ZWxzOwot
ICAgIEhhc2hNYXA8Tm9kZSosIFJlZlB0cjxDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yPiA+
IG1fYWNjdW11bGF0aW9uczsKKyAgICBIYXNoTWFwPE5vZGUqLCBPd25QdHI8Q2hpbGRMaXN0TXV0
YXRpb25BY2N1bXVsYXRvcj4gPiBtX2FjY3VtdWxhdGlvbnM7CiAKICAgICBzdGF0aWMgTXV0YXRp
b25BY2N1bXVsYXRpb25Sb3V0ZXIqIHNfaW5zdGFuY2U7CiB9OwpAQCAtMjE2LDcgKzIxNiw3IEBA
IE11dGF0aW9uQWNjdW11bGF0aW9uUm91dGVyKiBNdXRhdGlvbkFjY3VtdWxhdGlvblJvdXRlcjo6
aW5zdGFuY2UoKQogCiB2b2lkIE11dGF0aW9uQWNjdW11bGF0aW9uUm91dGVyOjpjaGlsZEFkZGVk
KE5vZGUqIHRhcmdldCwgTm9kZSogY2hpbGQpCiB7Ci0gICAgSGFzaE1hcDxOb2RlKiwgUmVmUHRy
PENoaWxkTGlzdE11dGF0aW9uQWNjdW11bGF0b3I+ID46Oml0ZXJhdG9yIGl0ZXIgPSBtX2FjY3Vt
dWxhdGlvbnMuZmluZCh0YXJnZXQpOworICAgIEhhc2hNYXA8Tm9kZSosIE93blB0cjxDaGlsZExp
c3RNdXRhdGlvbkFjY3VtdWxhdG9yPiA+OjppdGVyYXRvciBpdGVyID0gbV9hY2N1bXVsYXRpb25z
LmZpbmQodGFyZ2V0KTsKICAgICBBU1NFUlQoaXRlciAhPSBtX2FjY3VtdWxhdGlvbnMuZW5kKCkp
OwogCiAgICAgaWYgKGl0ZXItPnNlY29uZCkKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIE11dGF0
aW9uQWNjdW11bGF0aW9uUm91dGVyOjpjaGlsZEFkZGVkKE5vZGUqIHRhcmdldCwgTm9kZSogY2hp
bGQpCiAKIHZvaWQgTXV0YXRpb25BY2N1bXVsYXRpb25Sb3V0ZXI6OndpbGxSZW1vdmVDaGlsZChO
b2RlKiB0YXJnZXQsIE5vZGUqIGNoaWxkKQogewotICAgIEhhc2hNYXA8Tm9kZSosIFJlZlB0cjxD
aGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yPiA+OjppdGVyYXRvciBpdGVyID0gbV9hY2N1bXVs
YXRpb25zLmZpbmQodGFyZ2V0KTsKKyAgICBIYXNoTWFwPE5vZGUqLCBPd25QdHI8Q2hpbGRMaXN0
TXV0YXRpb25BY2N1bXVsYXRvcj4gPjo6aXRlcmF0b3IgaXRlciA9IG1fYWNjdW11bGF0aW9ucy5m
aW5kKHRhcmdldCk7CiAgICAgQVNTRVJUKGl0ZXIgIT0gbV9hY2N1bXVsYXRpb25zLmVuZCgpKTsK
IAogICAgIGlmIChpdGVyLT5zZWNvbmQpCkBAIC0yNDIsOSArMjQyLDkgQEAgdm9pZCBNdXRhdGlv
bkFjY3VtdWxhdGlvblJvdXRlcjo6aW5jcmVtZW50U2NvcGluZ0xldmVsKE5vZGUqIHRhcmdldCkK
IAogICAgIE93blB0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gb2JzZXJ2ZXJzID0g
TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0ZUZvckNoaWxkTGlzdE11dGF0aW9u
KHRhcmdldCk7CiAgICAgaWYgKG9ic2VydmVycy0+aXNFbXB0eSgpKQotICAgICAgICBtX2FjY3Vt
dWxhdGlvbnMuc2V0KHRhcmdldCwgMCk7CisgICAgICAgIG1fYWNjdW11bGF0aW9ucy5zZXQodGFy
Z2V0LCBudWxscHRyKTsKICAgICBlbHNlCi0gICAgICAgIG1fYWNjdW11bGF0aW9ucy5zZXQodGFy
Z2V0LCBhZG9wdFJlZihuZXcgQ2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRvcih0YXJnZXQsIG9i
c2VydmVycy5yZWxlYXNlKCkpKSk7CisgICAgICAgIG1fYWNjdW11bGF0aW9ucy5zZXQodGFyZ2V0
LCBhZG9wdFB0cihuZXcgQ2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRvcih0YXJnZXQsIG9ic2Vy
dmVycy5yZWxlYXNlKCkpKSk7CiB9CiAKIHZvaWQgTXV0YXRpb25BY2N1bXVsYXRpb25Sb3V0ZXI6
OmRlY3JlbWVudFNjb3BpbmdMZXZlbChOb2RlKiB0YXJnZXQpCkBAIC0yNTgsNyArMjU4LDcgQEAg
dm9pZCBNdXRhdGlvbkFjY3VtdWxhdGlvblJvdXRlcjo6ZGVjcmVtZW50U2NvcGluZ0xldmVsKE5v
ZGUqIHRhcmdldCkKIAogICAgIG1fc2NvcGluZ0xldmVscy5yZW1vdmUoaXRlcik7CiAKLSAgICBS
ZWZQdHI8Q2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRvcj4gcmVjb3JkID0gbV9hY2N1bXVsYXRp
b25zLnRha2UodGFyZ2V0KTsKKyAgICBPd25QdHI8Q2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRv
cj4gcmVjb3JkKG1fYWNjdW11bGF0aW9ucy50YWtlKHRhcmdldCkpOwogICAgIGlmIChyZWNvcmQp
CiAgICAgICAgIHJlY29yZC0+ZW5xdWV1ZU11dGF0aW9uUmVjb3JkKCk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>