<?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>109345</bug_id>
          
          <creation_ts>2013-02-08 21:44:19 -0800</creation_ts>
          <short_desc>Create the SharedGraphicsContext3D through its own method.</short_desc>
          <delta_ts>2013-02-26 10:37:24 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>abarth</cc>
    
    <cc>backer</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>peter+ews</cc>
    
    <cc>piman</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>828938</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-08 21:44:19 -0800</bug_when>
    <thetext>Create the SharedGraphicsContext3D through its own method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828942</commentid>
    <comment_count>1</comment_count>
      <attachid>187408</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-08 21:49:15 -0800</bug_when>
    <thetext>Created attachment 187408
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828946</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-08 21:52:28 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828948</commentid>
    <comment_count>3</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-08 21:53:07 -0800</bug_when>
    <thetext>This won&apos;t pass tests until the TestWebKitPlatformSupport implements the method to provide a shared context. It&apos;ll crash in any test that uses the shared context until then. I&apos;ll intend to land that piece first.

This adds an API to GraphicsContext3D to get the shared context in an explicit way, so that we can get that context from the embedder along a different code path.

On Chromium, we could get rid of the SharedContext3D class other than a call to the Platform API, but that wouldn&apos;t work for other platforms, so the class is left alone except to call through GraphicsContext3D::createSharedContext instead of GraphicsContext3D::create.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828952</commentid>
    <comment_count>4</comment_count>
      <attachid>187413</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-08 21:55:14 -0800</bug_when>
    <thetext>Created attachment 187413
Patch

Fix typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828954</commentid>
    <comment_count>5</comment_count>
      <attachid>187414</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-08 21:58:34 -0800</bug_when>
    <thetext>Created attachment 187414
Patch

Fix QT build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828955</commentid>
    <comment_count>6</comment_count>
      <attachid>187414</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-08 22:08:43 -0800</bug_when>
    <thetext>Comment on attachment 187414
Patch

I don&apos;t understand the compile guards - do you need those?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828956</commentid>
    <comment_count>7</comment_count>
      <attachid>187414</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-08 22:11:42 -0800</bug_when>
    <thetext>Comment on attachment 187414
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:491
&gt; +    static PassRefPtr&lt;GraphicsContext3D&gt; createSharedContext();

I think it would be better to provide chromium-specific implementations of SharedGraphicsContext3D functions and not modify the GraphicsContext3D interface itself</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828964</commentid>
    <comment_count>8</comment_count>
      <attachid>187416</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-08 22:33:24 -0800</bug_when>
    <thetext>Created attachment 187416
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828965</commentid>
    <comment_count>9</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-08 22:34:18 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; I think it would be better to provide chromium-specific implementations of SharedGraphicsContext3D functions and not modify the GraphicsContext3D interface itself

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828969</commentid>
    <comment_count>10</comment_count>
      <attachid>187416</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-08 22:53:27 -0800</bug_when>
    <thetext>Comment on attachment 187416
Patch

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

R=me but needs an if

&gt; Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp:75
&gt; +        m_context = GraphicsContext3DPrivate::createGraphicsContextFromWebContext(webContext.release(), false);

i don&apos;t think this call is safe to do if webContext is null</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828972</commentid>
    <comment_count>11</comment_count>
      <attachid>187419</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-08 23:01:25 -0800</bug_when>
    <thetext>Created attachment 187419
Patch

With an if</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829137</commentid>
    <comment_count>12</comment_count>
      <attachid>187419</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-09 16:33:47 -0800</bug_when>
    <thetext>Comment on attachment 187419
Patch

Attachment 187419 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16475530

New failing tests:
compositing/checkerboard.html
accessibility/anchor-linked-anonymous-block-crash.html
http/tests/cache/cancel-multiple-post-xhrs.html
animations/3d/state-at-end-event-transform.html
animations/animation-add-events-in-handler.html
animations/3d/replace-filling-transform.html
http/tests/cache/history-only-cached-subresource-loads.html
compositing/bounds-in-flipped-writing-mode.html
accessibility/accessibility-node-reparent.html
animations/animation-border-overflow.html
accessibility/accessibility-object-detached.html
accessibility/anonymous-render-block-in-continuation-causes-crash.html
animations/animation-controller-drt-api.html
compositing/absolute-position-changed-with-composited-parent-layer.html
compositing/absolute-position-changed-in-composited-layer.html
http/tests/cache/iframe-304-crash.html
animations/3d/transform-perspective.html
http/tests/cache/cancel-during-failure-crash.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.5.html
canvas/philip/tests/2d.clearRect.basic.html
animations/3d/transform-origin-vs-functions.html
animations/animation-css-rule-types.html
canvas/philip/tests/2d.clearRect+fillRect.basic.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829363</commentid>
    <comment_count>13</comment_count>
      <attachid>187419</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-10 15:32:50 -0800</bug_when>
    <thetext>Comment on attachment 187419
Patch

Attachment 187419 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16478911

New failing tests:
css3/filters/effect-blur-hw.html
platform/chromium/virtual/gpu/fast/canvas/canvas-bg.html
platform/chromium/virtual/gpu/fast/canvas/canvas-as-image.html
compositing/culling/filter-occlusion-alpha.html
css3/filters/effect-invert-hw.html
platform/chromium/virtual/gpu/fast/canvas/canvas-as-image-incremental-repaint.html
inspector/audits/audits-panel-functional.html
css3/filters/effect-reference-ordering-hw.html
css3/filters/filter-repaint-composited-fallback-crash.html
fast/loader/text-document-wrapping.html
compositing/layer-creation/spanOverlapsCanvas.html
compositing/culling/filter-occlusion-alpha-large.html
inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.html
css3/filters/effect-sepia-hw.html
css3/filters/effect-opacity-hw.html
css3/filters/filter-change-repaint-composited.html
css3/filters/effect-hue-rotate-hw.html
css3/filters/effect-drop-shadow-hw.html
css3/filters/filtered-compositing-descendant.html
compositing/culling/filter-occlusion-blur.html
platform/chromium/virtual/gpu/fast/canvas/canvas-bg-zoom.html
css3/filters/filter-repaint-composited-fallback.html
css3/filters/effect-grayscale-hw.html
css3/filters/effect-reference-hw.html
css3/filters/filter-change-repaint.html
compositing/culling/filter-occlusion-blur-large.html
fast/loader/javascript-url-in-object.html
css3/filters/effect-contrast-hw.html
css3/filters/effect-saturate-hw.html
css3/filters/composited-reflected.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831645</commentid>
    <comment_count>14</comment_count>
      <attachid>188014</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-12 22:30:24 -0800</bug_when>
    <thetext>Created attachment 188014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831649</commentid>
    <comment_count>15</comment_count>
      <attachid>188014</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-12 22:37:00 -0800</bug_when>
    <thetext>Comment on attachment 188014
Patch

Attachment 188014 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16517579</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831652</commentid>
    <comment_count>16</comment_count>
      <attachid>188014</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-02-12 22:42:53 -0800</bug_when>
    <thetext>Comment on attachment 188014
Patch

Attachment 188014 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/16454688</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831653</commentid>
    <comment_count>17</comment_count>
      <attachid>188014</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-12 22:44:08 -0800</bug_when>
    <thetext>Comment on attachment 188014
Patch

Attachment 188014 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16521606</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831660</commentid>
    <comment_count>18</comment_count>
      <attachid>188017</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-12 23:01:50 -0800</bug_when>
    <thetext>Created attachment 188017
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831661</commentid>
    <comment_count>19</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-12 23:03:28 -0800</bug_when>
    <thetext>New patch to not try take ownership of the WGC3D or GrContext provided by the embedder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831666</commentid>
    <comment_count>20</comment_count>
      <attachid>188017</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-12 23:20:10 -0800</bug_when>
    <thetext>Comment on attachment 188017
Patch

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

&gt; Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp:75
&gt; +        GrContext* grContext = WebKit::Platform::current()-&gt;sharedOffscreenGrContext();

to stage this, perhaps this should fall back on the current path if the embedder fails to provide a context?  or will you just make sure to land an implementation of this function in chromium before landing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831703</commentid>
    <comment_count>21</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-13 00:36:37 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 188017 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=188017&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp:75
&gt; &gt; +        GrContext* grContext = WebKit::Platform::current()-&gt;sharedOffscreenGrContext();
&gt; 
&gt; to stage this, perhaps this should fall back on the current path if the embedder fails to provide a context?  or will you just make sure to land an implementation of this function in chromium before landing this?

I&apos;m intending to land the chromium implementation of the path first. We&apos;ll end up in a temporary state where we can have a context3d for the compositor owned by chromium, and for canvas owned by webkit. It&apos;s still correct, just potentially wasteful, until this lands and then the canvas one will be owned by chromium as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831723</commentid>
    <comment_count>22</comment_count>
      <attachid>188017</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-13 01:45:48 -0800</bug_when>
    <thetext>Comment on attachment 188017
Patch

Attachment 188017 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16543026

New failing tests:
platform/mac/fast/forms/attributed-strings.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832089</commentid>
    <comment_count>23</comment_count>
      <attachid>188124</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-13 11:09:58 -0800</bug_when>
    <thetext>Created attachment 188124
Patch

Moved to getOrCreate so this is used for the main thread context, and don&apos;t hold onto the GC3D if the WGC3D from the embedder changed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832090</commentid>
    <comment_count>24</comment_count>
      <attachid>188125</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-13 11:13:20 -0800</bug_when>
    <thetext>Created attachment 188125
Patch

Do pushGroupMarkerEXT(&quot;SharedGraphicsContext&quot;) on the context from the embedder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833566</commentid>
    <comment_count>25</comment_count>
      <attachid>188125</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-14 16:51:51 -0800</bug_when>
    <thetext>Comment on attachment 188125
Patch

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

&gt; Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp:51
&gt; +        if (m_context &amp;&amp; GraphicsContext3DPrivate::extractWebGraphicsContext3D(m_context.get()) == webContext)
&gt; +            return m_context;

where&apos;s the check for &quot;is this context lost&quot; ? is that on the implementation side?

&gt; Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp:58
&gt; +        if (m_context)
&gt; +            m_context-&gt;getExtensions()-&gt;pushGroupMarkerEXT(&quot;SharedGraphicsContext&quot;);

you have to be careful only to add this marker on the first creation for a new context, not every instantiation or it&apos;ll be a big memory leak</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833569</commentid>
    <comment_count>26</comment_count>
      <attachid>188125</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-14 16:55:17 -0800</bug_when>
    <thetext>Comment on attachment 188125
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp:51
&gt;&gt; +            return m_context;
&gt; 
&gt; where&apos;s the check for &quot;is this context lost&quot; ? is that on the implementation side?

The other side does check for loss. What I&apos;m not sure about yet is how this side is supposed to hear about the loss before the WGC3D is deleted, so that it doesn&apos;t try to use a deleted WGC3D*.

Currently, since WebKit owns the WGC3D, it doesn&apos;t have to worry about this. How do you think I should have the embedder notify WebKit that the WGC3D it&apos;s using no longer exists? Should I instead have the shared GC3D query the playform for the WGC3D* on every operation instead of holding onto the pointer internally?

&gt;&gt; Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp:58
&gt;&gt; +            m_context-&gt;getExtensions()-&gt;pushGroupMarkerEXT(&quot;SharedGraphicsContext&quot;);
&gt; 
&gt; you have to be careful only to add this marker on the first creation for a new context, not every instantiation or it&apos;ll be a big memory leak

Oh okay, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833570</commentid>
    <comment_count>27</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-14 16:56:25 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; (From update of attachment 188125 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=188125&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp:51
&gt; &gt;&gt; +            return m_context;
&gt; &gt; 
&gt; &gt; where&apos;s the check for &quot;is this context lost&quot; ? is that on the implementation side?
&gt; 
&gt; The other side does check for loss. What I&apos;m not sure about yet is how this side is supposed to hear about the loss before the WGC3D is deleted, so that it doesn&apos;t try to use a deleted WGC3D*.
&gt; 
&gt; Currently, since WebKit owns the WGC3D, it doesn&apos;t have to worry about this. How do you think I should have the embedder notify WebKit that the WGC3D it&apos;s using no longer exists? Should I instead have the shared GC3D query the playform for the WGC3D* on every operation instead of holding onto the pointer internally?

FWIW I&apos;m solving this in the compositor by refcounting the thing that the embedder gives, and I null out the stuff inside that struct. I don&apos;t think I can do that for the Platform API tho, can I?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835578</commentid>
    <comment_count>28</comment_count>
      <attachid>188125</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 09:52:59 -0800</bug_when>
    <thetext>Comment on attachment 188125
Patch

Attachment 188125 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16617198

New failing tests:
css3/filters/effect-blur-hw.html
fast/forms/datalist/update-range-with-datalist.html
compositing/culling/filter-occlusion-alpha.html
css3/filters/effect-invert-hw.html
css3/filters/effect-reference-ordering-hw.html
css3/filters/filter-repaint-composited-fallback-crash.html
fast/loader/text-document-wrapping.html
fast/layers/no-clipping-overflow-hidden-added-after-transition.html
compositing/layer-creation/spanOverlapsCanvas.html
compositing/culling/filter-occlusion-alpha-large.html
css3/filters/effect-brightness-hw.html
css3/filters/effect-sepia-hw.html
css3/filters/effect-opacity-hw.html
css3/filters/effect-combined-hw.html
css3/filters/filter-change-repaint-composited.html
css3/filters/effect-hue-rotate-hw.html
css3/filters/effect-drop-shadow-hw.html
css3/filters/filtered-compositing-descendant.html
compositing/culling/filter-occlusion-blur.html
css3/filters/effect-brightness-clamping-hw.html
css3/filters/filter-repaint-composited-fallback.html
css3/filters/effect-grayscale-hw.html
fast/layers/no-clipping-overflow-hidden-added-after-transform.html
css3/filters/filter-change-repaint.html
compositing/culling/filter-occlusion-blur-large.html
fast/loader/javascript-url-in-object.html
css3/filters/effect-contrast-hw.html
css3/filters/effect-saturate-hw.html
css3/filters/composited-reflected.html
fast/layers/no-clipping-overflow-hidden-hardware-acceleration.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840140</commentid>
    <comment_count>29</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-22 17:03:08 -0800</bug_when>
    <thetext>Still need this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840142</commentid>
    <comment_count>30</comment_count>
      <attachid>188125</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-22 17:04:14 -0800</bug_when>
    <thetext>Comment on attachment 188125
Patch

Yes, but it needs a refresh.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841092</commentid>
    <comment_count>31</comment_count>
      <attachid>190089</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-25 10:32:01 -0800</bug_when>
    <thetext>Created attachment 190089
Patch

New patch with a fallback to the legacy code path, and added a parameter to the API to tell when a new context was created (to avoid pointer comparisons for this).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841299</commentid>
    <comment_count>32</comment_count>
      <attachid>190131</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-25 14:41:09 -0800</bug_when>
    <thetext>Created attachment 190131
Patch

wasCreated for the WGC3D should cause a new m_context to be made</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841462</commentid>
    <comment_count>33</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-25 17:52:35 -0800</bug_when>
    <thetext>(In reply to comment #31)
&gt; Created an attachment (id=190089) [details]
&gt; Patch
&gt; 
&gt; New patch with a fallback to the legacy code path, and added a parameter to the API to tell when a new context was created (to avoid pointer comparisons for this).

What&apos;s the problem with pointer comparisons this is intended to resolve?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841474</commentid>
    <comment_count>34</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-25 18:05:31 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; (In reply to comment #31)
&gt; &gt; Created an attachment (id=190089) [details] [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; New patch with a fallback to the legacy code path, and added a parameter to the API to tell when a new context was created (to avoid pointer comparisons for this).
&gt; 
&gt; What&apos;s the problem with pointer comparisons this is intended to resolve?

I&apos;d say its a bad practice. You could delete and allocate and get the same pointer address. Or someone else could delete and create then you do the same and get back the old address. It just seems flaky and not robust.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841476</commentid>
    <comment_count>35</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-25 18:08:00 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; (In reply to comment #33)
&gt; &gt; (In reply to comment #31)
&gt; &gt; &gt; Created an attachment (id=190089) [details] [details] [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; New patch with a fallback to the legacy code path, and added a parameter to the API to tell when a new context was created (to avoid pointer comparisons for this).
&gt; &gt; 
&gt; &gt; What&apos;s the problem with pointer comparisons this is intended to resolve?
&gt; 
&gt; I&apos;d say its a bad practice. You could delete and allocate and get the same pointer address. Or someone else could delete and create then you do the same and get back the old address. It just seems flaky and not robust.

Well, it matters who has ownership.  Who&apos;s responsible for deleting the WGC3D when it becomes lost?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841485</commentid>
    <comment_count>36</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-25 18:16:29 -0800</bug_when>
    <thetext>(In reply to comment #35)
&gt; (In reply to comment #34)
&gt; &gt; (In reply to comment #33)
&gt; &gt; &gt; (In reply to comment #31)
&gt; &gt; &gt; &gt; Created an attachment (id=190089) [details] [details] [details] [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; New patch with a fallback to the legacy code path, and added a parameter to the API to tell when a new context was created (to avoid pointer comparisons for this).
&gt; &gt; &gt; 
&gt; &gt; &gt; What&apos;s the problem with pointer comparisons this is intended to resolve?
&gt; &gt; 
&gt; &gt; I&apos;d say its a bad practice. You could delete and allocate and get the same pointer address. Or someone else could delete and create then you do the same and get back the old address. It just seems flaky and not robust.
&gt; 
&gt; Well, it matters who has ownership.  Who&apos;s responsible for deleting the WGC3D when it becomes lost?

Ownership works like:

WebKitPlatformSupport on the chromium side owns a refptr to a ContextProvider.
ContextProvider owns the WGC3D.

When SharedContext3D asks for a WGC3D, the WebKitPlatformSupport may replace its ContextProvider with a new one if the old one held a lost context. Then the WGC3D is deleted immediately, or after the compositor also drops its ContextProvider if it has a reference. WebKitPlatformSupport returns the new WGC3D out of its ContextProvider.


WebKit side the assumption is that calling this function may cause the last thing it returned to be deleted. Thus only one person should ever be calling it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841495</commentid>
    <comment_count>37</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-25 18:23:24 -0800</bug_when>
    <thetext>(In reply to comment #36)
&gt; (In reply to comment #35)
&gt; &gt; (In reply to comment #34)
&gt; &gt; &gt; (In reply to comment #33)
&gt; &gt; &gt; &gt; (In reply to comment #31)
&gt; &gt; &gt; &gt; &gt; Created an attachment (id=190089) [details] [details] [details] [details] [details]
&gt; &gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; New patch with a fallback to the legacy code path, and added a parameter to the API to tell when a new context was created (to avoid pointer comparisons for this).
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; What&apos;s the problem with pointer comparisons this is intended to resolve?
&gt; &gt; &gt; 
&gt; &gt; &gt; I&apos;d say its a bad practice. You could delete and allocate and get the same pointer address. Or someone else could delete and create then you do the same and get back the old address. It just seems flaky and not robust.
&gt; &gt; 
&gt; &gt; Well, it matters who has ownership.  Who&apos;s responsible for deleting the WGC3D when it becomes lost?
&gt; 
&gt; Ownership works like:
&gt; 
&gt; WebKitPlatformSupport on the chromium side owns a refptr to a ContextProvider.
&gt; ContextProvider owns the WGC3D.
&gt; 
&gt; When SharedContext3D asks for a WGC3D, the WebKitPlatformSupport may replace its ContextProvider with a new one if the old one held a lost context. Then the WGC3D is deleted immediately, or after the compositor also drops its ContextProvider if it has a reference. WebKitPlatformSupport returns the new WGC3D out of its ContextProvider.
&gt; 
&gt; 
&gt; WebKit side the assumption is that calling this function may cause the last thing it returned to be deleted. Thus only one person should ever be calling it.

https://codereview.chromium.org/12217099 is a reasonably simple example of this ownership I think. It implements the behaviour for DRT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841519</commentid>
    <comment_count>38</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-25 18:42:25 -0800</bug_when>
    <thetext>(In reply to comment #36)
&gt; (In reply to comment #35)
&gt; &gt; (In reply to comment #34)
&gt; &gt; &gt; (In reply to comment #33)
&gt; &gt; &gt; &gt; (In reply to comment #31)
&gt; &gt; &gt; &gt; &gt; Created an attachment (id=190089) [details] [details] [details] [details] [details]
&gt; &gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; New patch with a fallback to the legacy code path, and added a parameter to the API to tell when a new context was created (to avoid pointer comparisons for this).
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; What&apos;s the problem with pointer comparisons this is intended to resolve?
&gt; &gt; &gt; 
&gt; &gt; &gt; I&apos;d say its a bad practice. You could delete and allocate and get the same pointer address. Or someone else could delete and create then you do the same and get back the old address. It just seems flaky and not robust.
&gt; &gt; 
&gt; &gt; Well, it matters who has ownership.  Who&apos;s responsible for deleting the WGC3D when it becomes lost?
&gt; 
&gt; Ownership works like:
&gt; 
&gt; WebKitPlatformSupport on the chromium side owns a refptr to a ContextProvider.
&gt; ContextProvider owns the WGC3D.
&gt; 
&gt; When SharedContext3D asks for a WGC3D, the WebKitPlatformSupport may replace its ContextProvider with a new one if the old one held a lost context. Then the WGC3D is deleted immediately, or after the compositor also drops its ContextProvider if it has a reference. WebKitPlatformSupport returns the new WGC3D out of its ContextProvider.
&gt; 
&gt; 
&gt; WebKit side the assumption is that calling this function may cause the last thing it returned to be deleted. Thus only one person should ever be calling it.

I see.  So it sounds like a precondition for calling this function is that the WGC3D is a valid not-deallocated object.  If that&apos;s the case then its address cannot collide with a newly allocated one, assuming the implementation decides to make a new one.  So I&apos;m not sure I see the issue with pointer comparisons in this instance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841554</commentid>
    <comment_count>39</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-25 19:57:18 -0800</bug_when>
    <thetext>(In reply to comment #38)
&gt; (In reply to comment #36)
&gt; &gt; (In reply to comment #35)
&gt; &gt; &gt; (In reply to comment #34)
&gt; &gt; &gt; &gt; (In reply to comment #33)
&gt; &gt; &gt; &gt; &gt; (In reply to comment #31)
&gt; &gt; &gt; &gt; &gt; &gt; Created an attachment (id=190089) [details] [details] [details] [details] [details] [details]
&gt; &gt; &gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; New patch with a fallback to the legacy code path, and added a parameter to the API to tell when a new context was created (to avoid pointer comparisons for this).
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; What&apos;s the problem with pointer comparisons this is intended to resolve?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I&apos;d say its a bad practice. You could delete and allocate and get the same pointer address. Or someone else could delete and create then you do the same and get back the old address. It just seems flaky and not robust.
&gt; &gt; &gt; 
&gt; &gt; &gt; Well, it matters who has ownership.  Who&apos;s responsible for deleting the WGC3D when it becomes lost?
&gt; &gt; 
&gt; &gt; Ownership works like:
&gt; &gt; 
&gt; &gt; WebKitPlatformSupport on the chromium side owns a refptr to a ContextProvider.
&gt; &gt; ContextProvider owns the WGC3D.
&gt; &gt; 
&gt; &gt; When SharedContext3D asks for a WGC3D, the WebKitPlatformSupport may replace its ContextProvider with a new one if the old one held a lost context. Then the WGC3D is deleted immediately, or after the compositor also drops its ContextProvider if it has a reference. WebKitPlatformSupport returns the new WGC3D out of its ContextProvider.
&gt; &gt; 
&gt; &gt; 
&gt; &gt; WebKit side the assumption is that calling this function may cause the last thing it returned to be deleted. Thus only one person should ever be calling it.
&gt; 
&gt; I see.  So it sounds like a precondition for calling this function is that the WGC3D is a valid not-deallocated object.  If that&apos;s the case then its address cannot collide with a newly allocated one, assuming the implementation decides to make a new one.  So I&apos;m not sure I see the issue with pointer comparisons in this instance.

That is true. I&apos;m worried about multiple sites calling this function, but then I guess all bet are off and undefined behaviour is somewhat unavoidable. I&apos;ll drop the bool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842025</commentid>
    <comment_count>40</comment_count>
      <attachid>190289</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-02-26 08:20:57 -0800</bug_when>
    <thetext>Created attachment 190289
Patch

Dropped the wasCreated flag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842152</commentid>
    <comment_count>41</comment_count>
      <attachid>190289</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 10:37:19 -0800</bug_when>
    <thetext>Comment on attachment 190289
Patch

Clearing flags on attachment: 190289

Committed r144072: &lt;http://trac.webkit.org/changeset/144072&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842153</commentid>
    <comment_count>42</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 10:37:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187408</attachid>
            <date>2013-02-08 21:49:15 -0800</date>
            <delta_ts>2013-02-08 21:55:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109345-20130209004548.patch</filename>
            <type>text/plain</type>
            <size>7840</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAzNGE0M2U2NDE1NDgw
NmZjOGEwMzg5MGJkNmM4ZTU2NWQ1NmQ2MjQ3Li5hNGZhNzFhMjMyZjRmOWMwZGZlNzNhY2RmYWU4
OGZlNTAyYjMzM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMi0wOCAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBDcmVhdGUgdGhl
IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEIHRocm91Z2ggaXRzIG93biBtZXRob2QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgUGxhdGZvcm0gQVBJ
IHRvIGdldCB0aGUgc2hhcmVkIGNvbnRleHQgZnJvbSB0aGUgZW1iZWRkZXIuCisKKyAgICAgICAg
KiBjaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaDoKKyAgICAgICAgKFBsYXRmb3JtKToKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm06OnNoYXJlZE9mZnNjcmVlbkdyYXBoaWNzQ29udGV4dDNEKToK
KyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaDoK
KwogMjAxMy0wMi0wNyAgRWJlcmhhcmQgR3JhZXRoZXIgIDxlZ3JhZXRoZXJAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc2V0dGluZ3MgY2hlY2tib3ggZm9yIGNvbXBv
c2l0ZWQgbGF5ZXIgYm9yZGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGRkNzBlMTI4YTgxY2NkMDMyMzFlMDkw
MDUyZWZlZjhlYjc0YTJhNzguLmY4ODYzZjU0N2ZjZWM1NmRmZjI0ZTdjZWU0MmFkNDQ1NTAxYjI1
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wMi0wOCAgRGFuYSBKYW5zZW5z
ICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBDcmVhdGUgdGhlIFNoYXJlZEdyYXBo
aWNzQ29udGV4dDNEIHRocm91Z2ggaXRzIG93biBtZXRob2QuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0
ZVNoYXJlZENvbnRleHQoKSB0byBhbGxvdyB0aGUgc2hhcmVkIGNvbnRleHQKKyAgICAgICAgdG8g
YmUgY3JlYXRlZCBkb3duIGEgZGlmZmVyZW50IGNvZGUgcGF0aCB0aGFuIG90aGVyIGNvbnRleHRz
LiBUaGlzIGFsbG93cyB0aGUKKyAgICAgICAgZW1iZWRkZXIgdG8gb3duIGFuZCBwcm92aWRlIHRo
ZSBzaGFyZWQgY29udGV4dCB0byBib3RoIFdlYktpdCBhbmQgdG8gb3RoZXIKKyAgICAgICAgY2xp
ZW50cyBzdWNoIGFzIHRoZSBjb21wb3NpdG9yLgorCisgICAgICAgIEluIHRoZSBDaHJvbWl1bSBw
b3J0LCBnZXQgdGhlIHNoYXJlZCBjb250ZXh0IGV4cGxpY2l0bHkgZnJvbSB0aGUgZW1iZWRkZXIK
KyAgICAgICAgd2l0aCB0aGUgUGxhdGZvcm0gQVBJLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhp
c3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBo
aWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q6OmNyZWF0ZVNoYXJlZENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgIChHcmFwaGljc0Nv
bnRleHQzRCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNz
Q29udGV4dDNELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEdyYXBoaWNzQ29udGV4dDNE
SW1wbDo6Y3JlYXRlQ29udGV4dCk6CisKIDIwMTMtMDItMDcgIFRvbSBTZXBleiAgPHRzZXBlekBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBCaW5kaW5nIEludGVncml0eSBjcmFzaCBpbiBW
OE1lZGlhU3RyZWFtOjpjcmVhdGVXcmFwcGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1BsYXRmb3JtLmgKaW5kZXggMDkzNjZlZTUwOWZhYTM5ZDJkMDBkMGVkMWEyZTM4YzkyNmI3
OTUzZi4uMzM0N2NlOTViYmZkOWE5ZjA1NDRlNjFhODI3MmM5YzExNGQ4NWI1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oCisrKyBiL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaApAQCAtMzEsNiArMzEsMTEgQEAK
ICNpZm5kZWYgUGxhdGZvcm1faAogI2RlZmluZSBQbGF0Zm9ybV9oCiAKKy8vIEZJWE1FOiBSZW1v
dmUgdGhpcyB3aGVuIFdlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEIGlzIHJlbW92ZWQuCisjaWZu
ZGVmIFBMQVRGT1JNX0FQSV9QUk9WSURFU19TSEFSRURfQ09OVEVYVAorI2RlZmluZSBQTEFURk9S
TV9BUElfUFJPVklERVNfU0hBUkVEX0NPTlRFWFQKKyNlbmRpZgorCiAjaWZkZWYgV0lOMzIKICNp
bmNsdWRlIDx3aW5kb3dzLmg+CiAjZW5kaWYKQEAgLTQ0Miw2ICs0NDcsMTAgQEAgcHVibGljOgog
ICAgIC8vIFJldHVybnMgbmV3bHkgYWxsb2NhdGVkIGFuZCBpbml0aWFsaXplZCBvZmZzY3JlZW4g
V2ViR3JhcGhpY3NDb250ZXh0M0QgaW5zdGFuY2UuCiAgICAgdmlydHVhbCBXZWJHcmFwaGljc0Nv
bnRleHQzRCogY3JlYXRlT2Zmc2NyZWVuR3JhcGhpY3NDb250ZXh0M0QoY29uc3QgV2ViR3JhcGhp
Y3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMmKSB7IHJldHVybiAwOyB9CiAKKyAgICAvLyBNYWtlIHJl
dHVybiBudWxsIGlmIEdQVSBpcyBub3Qgc3VwcG9ydGVkLgorICAgIC8vIFJldHVybnMgdGhlIHNo
YXJlZCBXZWJHcmFwaGljc0NvbnRleHQzRC4gVGhpcyBpcyBhIHNpbmdsZXRvbiBvYmplY3QgZm9y
IHRoZSBlbnRpcmUgcHJvY2Vzcy4KKyAgICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBz
aGFyZWRPZmZzY3JlZW5HcmFwaGljc0NvbnRleHQzRCgpIHsgcmV0dXJuIDA7IH0KKwogICAgIC8v
IFJldHVybnMgdHJ1ZSBpZiB0aGUgcGxhdGZvcm0gaXMgY2FwYWJsZSBvZiBwcm9kdWNpbmcgYW4g
b2Zmc2NyZWVuIGNvbnRleHQgc3VpdGFibGUgZm9yIGFjY2VsZXJhdGluZyAyZCBjYW52YXMuCiAg
ICAgLy8gVGhpcyB3aWxsIHJldHVybiBmYWxzZSBpZiB0aGUgcGxhdGZvcm0gY2Fubm90IHByb21p
c2UgdGhhdCBjb250ZXh0cyB3aWxsIGJlIHByZXNlcnZlZCBhY3Jvc3Mgb3BlcmF0aW9ucyBsaWtl
CiAgICAgLy8gbG9ja2luZyB0aGUgc2NyZWVuIG9yIGlmIHRoZSBwbGF0Zm9ybSBjYW5ub3QgcHJv
dmlkZSBhIGNvbnRleHQgd2l0aCBzdWl0YWJsZSBwZXJmb3JtYW5jZSBjaGFyYWN0ZXJpc3RpY3Mu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlNoYXJlZEdy
YXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlNo
YXJlZEdyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggOTQ4ZTZlZDNhNzU2M2NlN2FmZmFiNDU4OTcw
ZTA0MjIwNDRjNWYwYS4uYTM5MjJhZWRhOGM0M2E2ZmQ2NWM5NGY5MTliNzg2NGIzYzcxMWZlYSAx
MDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJTaGFyZWRHcmFw
aGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtMjYsNiArMjYsMTEgQEAKICNpZm5kZWYgV2Vi
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0RfaAogI2RlZmluZSBXZWJTaGFyZWRHcmFwaGljc0NvbnRl
eHQzRF9oCiAKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBlbnRpcmUgY2xhc3MuCisjaWZuZGVmIFBM
QVRGT1JNX0FQSV9QUk9WSURFU19TSEFSRURfQ09OVEVYVAorI2RlZmluZSBQTEFURk9STV9BUElf
UFJPVklERVNfU0hBUkVEX0NPTlRFWFQKKyNlbmRpZgorCiAjaW5jbHVkZSAiV2ViQ29tbW9uLmgi
CiAKIGNsYXNzIEdyQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29udGV4dDNEQ2hyb21p
dW0uY3BwCmluZGV4IDk3NmE4MzQzNTc4MjEyNTA0YjA4YjdlZjNiNzMwYjFkMTFlMTc3Y2YuLjE3
MDc2ODhlNWQ3NWU1ZmRiYjA1NGRjNDc3ODg0NGJiMDg2YjY3ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RDaHJv
bWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9H
cmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcApAQCAtODUsNiArODUsMTIgQEAgUGFzc1JlZlB0
cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShHcmFwaGljc0Nv
bnRleHQzRDo6QXR0cmkKICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVh
dGVHcmFwaGljc0NvbnRleHRGcm9tV2ViQ29udGV4dCh3ZWJDb250ZXh0LnJlbGVhc2UoKSwgYXR0
cnMucHJlc2VydmVEcmF3aW5nQnVmZmVyKTsKIH0KIAorUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRl
eHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZVNoYXJlZENvbnRleHQoKQoreworICAgIE93
blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiB3ZWJDb250ZXh0ID0gYWRvcHRQdHIo
V2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5zaGFyZWRPZmZzY3JlZW5HcmFwaGljc0NvbnRl
eHQzRCgpKTsKKyAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFw
aGljc0NvbnRleHRGcm9tV2ViQ29udGV4dCh3ZWJDb250ZXh0LnJlbGVhc2UoKSwgZmFsc2UpOwor
fQorCiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT53ZWJD
b250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQzRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQzRC5jcHAKaW5kZXggNTlkYWQyNmY3ODgyNmNmODQ3OWEyMzdjNWIzNmM2
M2M0NzYxYWIzOC4uNDFhMDU2Y2Q1YmI1OTRhMzY0NjIxYzI4OThhMGUwZmU5OGM4YWY3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmNwcApAQCAtNDcsNiArNDcsMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1l
c3BhY2UgewogCisjaWYgIVBMQVRGT1JNKENIUk9NSVVNKQorUGFzc1JlZlB0cjxHcmFwaGljc0Nv
bnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZVNoYXJlZENvbnRleHQoKQoreworICAg
IEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzIGF0dHJpYnV0ZXM7CisgICAgYXR0cmlidXRl
cy5kZXB0aCA9IGZhbHNlOworICAgIGF0dHJpYnV0ZXMuc3RlbmNpbCA9IHRydWU7CisgICAgYXR0
cmlidXRlcy5hbnRpYWxpYXMgPSBmYWxzZTsKKyAgICBhdHRyaWJ1dGVzLnNoYXJlUmVzb3VyY2Vz
ID0gdHJ1ZTsKKyAgICByZXR1cm4gY3JlYXRlKGF0dHJpYnV0ZXMsIDApOworfQorI2VuZGlmCisK
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0IGdldERhdGFGb3JtYXQoR0MzRGVudW0gZGVz
dGluYXRpb25Gb3JtYXQsIEdDM0RlbnVtIGRlc3RpbmF0aW9uVHlwZSkKIHsKICAgICBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdCBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkE4OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggYWVkZTRmZDg1NWZjNmM0YzQ2Zjg2NmJiMDg5ZGM0
NDJiMmVhYzU1ZS4uZGNiNWQzZGU5OWEzNjRlMjVmMzdmMTk5YzY1ZTBiYjE4ZDkzMmU3MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRC5oCkBAIC00ODgsNiArNDg4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZShBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgUmVu
ZGVyU3R5bGUgPSBSZW5kZXJPZmZzY3JlZW4pOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPiBjcmVhdGVGb3JDdXJyZW50R0xDb250ZXh0KCk7CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZVNoYXJlZENvbnRleHQoKTsKICAgICB+
R3JhcGhpY3NDb250ZXh0M0QoKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQz
RC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhp
Y3NDb250ZXh0M0QuY3BwCmluZGV4IGE3MDc0YjdlZWZlN2QzMGU5ODMyMjNhMmY5MDQ3YjI1YzUw
NTVjNmMuLjIwY2M1ODA5ZGI0ZTNhOGRmZDQ2NzM4MTNkMzRkYjM1MDNkYzZiZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0Nv
bnRleHQzRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1No
YXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcApAQCAtNjUsMTIgKzY1LDcgQEAgcHVibGljOgogCiAg
ICAgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlQ29udGV4dCgpCiAgICAgewot
ICAgICAgICBHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRyaWJ1dGVzOwotICAgICAg
ICBhdHRyaWJ1dGVzLmRlcHRoID0gZmFsc2U7Ci0gICAgICAgIGF0dHJpYnV0ZXMuc3RlbmNpbCA9
IHRydWU7Ci0gICAgICAgIGF0dHJpYnV0ZXMuYW50aWFsaWFzID0gZmFsc2U7Ci0gICAgICAgIGF0
dHJpYnV0ZXMuc2hhcmVSZXNvdXJjZXMgPSB0cnVlOwotICAgICAgICBtX2NvbnRleHQgPSBHcmFw
aGljc0NvbnRleHQzRDo6Y3JlYXRlKGF0dHJpYnV0ZXMsIDApOworICAgICAgICBtX2NvbnRleHQg
PSBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlU2hhcmVkQ29udGV4dCgpOwogICAgICAgICByZXR1
cm4gbV9jb250ZXh0OwogICAgIH0KIHByaXZhdGU6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187413</attachid>
            <date>2013-02-08 21:55:14 -0800</date>
            <delta_ts>2013-02-08 21:58:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109345-20130209005148.patch</filename>
            <type>text/plain</type>
            <size>7839</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAzNGE0M2U2NDE1NDgw
NmZjOGEwMzg5MGJkNmM4ZTU2NWQ1NmQ2MjQ3Li5hNGZhNzFhMjMyZjRmOWMwZGZlNzNhY2RmYWU4
OGZlNTAyYjMzM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMi0wOCAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBDcmVhdGUgdGhl
IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEIHRocm91Z2ggaXRzIG93biBtZXRob2QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgUGxhdGZvcm0gQVBJ
IHRvIGdldCB0aGUgc2hhcmVkIGNvbnRleHQgZnJvbSB0aGUgZW1iZWRkZXIuCisKKyAgICAgICAg
KiBjaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaDoKKyAgICAgICAgKFBsYXRmb3JtKToKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm06OnNoYXJlZE9mZnNjcmVlbkdyYXBoaWNzQ29udGV4dDNEKToK
KyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaDoK
KwogMjAxMy0wMi0wNyAgRWJlcmhhcmQgR3JhZXRoZXIgIDxlZ3JhZXRoZXJAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc2V0dGluZ3MgY2hlY2tib3ggZm9yIGNvbXBv
c2l0ZWQgbGF5ZXIgYm9yZGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGRkNzBlMTI4YTgxY2NkMDMyMzFlMDkw
MDUyZWZlZjhlYjc0YTJhNzguLmY4ODYzZjU0N2ZjZWM1NmRmZjI0ZTdjZWU0MmFkNDQ1NTAxYjI1
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wMi0wOCAgRGFuYSBKYW5zZW5z
ICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBDcmVhdGUgdGhlIFNoYXJlZEdyYXBo
aWNzQ29udGV4dDNEIHRocm91Z2ggaXRzIG93biBtZXRob2QuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0
ZVNoYXJlZENvbnRleHQoKSB0byBhbGxvdyB0aGUgc2hhcmVkIGNvbnRleHQKKyAgICAgICAgdG8g
YmUgY3JlYXRlZCBkb3duIGEgZGlmZmVyZW50IGNvZGUgcGF0aCB0aGFuIG90aGVyIGNvbnRleHRz
LiBUaGlzIGFsbG93cyB0aGUKKyAgICAgICAgZW1iZWRkZXIgdG8gb3duIGFuZCBwcm92aWRlIHRo
ZSBzaGFyZWQgY29udGV4dCB0byBib3RoIFdlYktpdCBhbmQgdG8gb3RoZXIKKyAgICAgICAgY2xp
ZW50cyBzdWNoIGFzIHRoZSBjb21wb3NpdG9yLgorCisgICAgICAgIEluIHRoZSBDaHJvbWl1bSBw
b3J0LCBnZXQgdGhlIHNoYXJlZCBjb250ZXh0IGV4cGxpY2l0bHkgZnJvbSB0aGUgZW1iZWRkZXIK
KyAgICAgICAgd2l0aCB0aGUgUGxhdGZvcm0gQVBJLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhp
c3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBo
aWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q6OmNyZWF0ZVNoYXJlZENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgIChHcmFwaGljc0Nv
bnRleHQzRCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNz
Q29udGV4dDNELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEdyYXBoaWNzQ29udGV4dDNE
SW1wbDo6Y3JlYXRlQ29udGV4dCk6CisKIDIwMTMtMDItMDcgIFRvbSBTZXBleiAgPHRzZXBlekBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBCaW5kaW5nIEludGVncml0eSBjcmFzaCBpbiBW
OE1lZGlhU3RyZWFtOjpjcmVhdGVXcmFwcGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1BsYXRmb3JtLmgKaW5kZXggMDkzNjZlZTUwOWZhYTM5ZDJkMDBkMGVkMWEyZTM4YzkyNmI3
OTUzZi4uYmIxZWNmMzAxNmViMjVjOTRhNWM0N2E3ZmI0N2M5Y2QzODFhMjk0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oCisrKyBiL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaApAQCAtMzEsNiArMzEsMTEgQEAK
ICNpZm5kZWYgUGxhdGZvcm1faAogI2RlZmluZSBQbGF0Zm9ybV9oCiAKKy8vIEZJWE1FOiBSZW1v
dmUgdGhpcyB3aGVuIFdlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEIGlzIHJlbW92ZWQuCisjaWZu
ZGVmIFBMQVRGT1JNX0FQSV9QUk9WSURFU19TSEFSRURfQ09OVEVYVAorI2RlZmluZSBQTEFURk9S
TV9BUElfUFJPVklERVNfU0hBUkVEX0NPTlRFWFQKKyNlbmRpZgorCiAjaWZkZWYgV0lOMzIKICNp
bmNsdWRlIDx3aW5kb3dzLmg+CiAjZW5kaWYKQEAgLTQ0Miw2ICs0NDcsMTAgQEAgcHVibGljOgog
ICAgIC8vIFJldHVybnMgbmV3bHkgYWxsb2NhdGVkIGFuZCBpbml0aWFsaXplZCBvZmZzY3JlZW4g
V2ViR3JhcGhpY3NDb250ZXh0M0QgaW5zdGFuY2UuCiAgICAgdmlydHVhbCBXZWJHcmFwaGljc0Nv
bnRleHQzRCogY3JlYXRlT2Zmc2NyZWVuR3JhcGhpY3NDb250ZXh0M0QoY29uc3QgV2ViR3JhcGhp
Y3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMmKSB7IHJldHVybiAwOyB9CiAKKyAgICAvLyBNYXkgcmV0
dXJuIG51bGwgaWYgR1BVIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgLy8gUmV0dXJucyB0aGUgc2hh
cmVkIFdlYkdyYXBoaWNzQ29udGV4dDNELiBUaGlzIGlzIGEgc2luZ2xldG9uIG9iamVjdCBmb3Ig
dGhlIGVudGlyZSBwcm9jZXNzLgorICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0QqIHNo
YXJlZE9mZnNjcmVlbkdyYXBoaWNzQ29udGV4dDNEKCkgeyByZXR1cm4gMDsgfQorCiAgICAgLy8g
UmV0dXJucyB0cnVlIGlmIHRoZSBwbGF0Zm9ybSBpcyBjYXBhYmxlIG9mIHByb2R1Y2luZyBhbiBv
ZmZzY3JlZW4gY29udGV4dCBzdWl0YWJsZSBmb3IgYWNjZWxlcmF0aW5nIDJkIGNhbnZhcy4KICAg
ICAvLyBUaGlzIHdpbGwgcmV0dXJuIGZhbHNlIGlmIHRoZSBwbGF0Zm9ybSBjYW5ub3QgcHJvbWlz
ZSB0aGF0IGNvbnRleHRzIHdpbGwgYmUgcHJlc2VydmVkIGFjcm9zcyBvcGVyYXRpb25zIGxpa2UK
ICAgICAvLyBsb2NraW5nIHRoZSBzY3JlZW4gb3IgaWYgdGhlIHBsYXRmb3JtIGNhbm5vdCBwcm92
aWRlIGEgY29udGV4dCB3aXRoIHN1aXRhYmxlIHBlcmZvcm1hbmNlIGNoYXJhY3RlcmlzdGljcy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0QuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViU2hh
cmVkR3JhcGhpY3NDb250ZXh0M0QuaAppbmRleCA5NDhlNmVkM2E3NTYzY2U3YWZmYWI0NTg5NzBl
MDQyMjA0NGM1ZjBhLi5hMzkyMmFlZGE4YzQzYTZmZDY1Yzk0ZjkxOWI3ODY0YjNjNzExZmVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlNoYXJlZEdyYXBo
aWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJT
aGFyZWRHcmFwaGljc0NvbnRleHQzRC5oCkBAIC0yNiw2ICsyNiwxMSBAQAogI2lmbmRlZiBXZWJT
aGFyZWRHcmFwaGljc0NvbnRleHQzRF9oCiAjZGVmaW5lIFdlYlNoYXJlZEdyYXBoaWNzQ29udGV4
dDNEX2gKIAorLy8gRklYTUU6IFJlbW92ZSB0aGlzIGVudGlyZSBjbGFzcy4KKyNpZm5kZWYgUExB
VEZPUk1fQVBJX1BST1ZJREVTX1NIQVJFRF9DT05URVhUCisjZGVmaW5lIFBMQVRGT1JNX0FQSV9Q
Uk9WSURFU19TSEFSRURfQ09OVEVYVAorI2VuZGlmCisKICNpbmNsdWRlICJXZWJDb21tb24uaCIK
IAogY2xhc3MgR3JDb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1
bS5jcHAKaW5kZXggOTc2YTgzNDM1NzgyMTI1MDRiMDhiN2VmM2I3MzBiMWQxMWUxNzdjZi4uMTcw
NzY4OGU1ZDc1ZTVmZGJiMDU0ZGM0Nzc4ODQ0YmIwODZiNjdkMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRENocm9t
aXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dy
YXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCkBAIC04NSw2ICs4NSwxMiBAQCBQYXNzUmVmUHRy
PEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29u
dGV4dDNEOjpBdHRyaQogICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0
ZUdyYXBoaWNzQ29udGV4dEZyb21XZWJDb250ZXh0KHdlYkNvbnRleHQucmVsZWFzZSgpLCBhdHRy
cy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIpOwogfQogCitQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4
dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlU2hhcmVkQ29udGV4dCgpCit7CisgICAgT3du
UHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+IHdlYkNvbnRleHQgPSBhZG9wdFB0cihX
ZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnNoYXJlZE9mZnNjcmVlbkdyYXBoaWNzQ29udGV4
dDNEKCkpOworICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBo
aWNzQ29udGV4dEZyb21XZWJDb250ZXh0KHdlYkNvbnRleHQucmVsZWFzZSgpLCBmYWxzZSk7Cit9
CisKIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgR3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdAogewogICAgIHJldHVybiBtX3ByaXZhdGUtPndlYkNv
bnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dDNELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dDNELmNwcAppbmRleCA1OWRhZDI2Zjc4ODI2Y2Y4NDc5YTIzN2M1YjM2YzYz
YzQ3NjFhYjM4Li40MWEwNTZjZDViYjU5NGEzNjQ2MjFjMjg5OGEwZTBmZTk4YzhhZjc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0QuY3BwCkBAIC00Nyw2ICs0NywxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVz
cGFjZSB7CiAKKyNpZiAhUExBVEZPUk0oQ0hST01JVU0pCitQYXNzUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlU2hhcmVkQ29udGV4dCgpCit7CisgICAg
R3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMgYXR0cmlidXRlczsKKyAgICBhdHRyaWJ1dGVz
LmRlcHRoID0gZmFsc2U7CisgICAgYXR0cmlidXRlcy5zdGVuY2lsID0gdHJ1ZTsKKyAgICBhdHRy
aWJ1dGVzLmFudGlhbGlhcyA9IGZhbHNlOworICAgIGF0dHJpYnV0ZXMuc2hhcmVSZXNvdXJjZXMg
PSB0cnVlOworICAgIHJldHVybiBjcmVhdGUoYXR0cmlidXRlcywgMCk7Cit9CisjZW5kaWYKKwog
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZ2V0RGF0YUZvcm1hdChHQzNEZW51bSBkZXN0
aW5hdGlvbkZvcm1hdCwgR0MzRGVudW0gZGVzdGluYXRpb25UeXBlKQogewogICAgIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0IGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0QuaAppbmRleCBhZWRlNGZkODU1ZmM2YzRjNDZmODY2YmIwODlkYzQ0
MmIyZWFjNTVlLi5kY2I1ZDNkZTk5YTM2NGUyNWYzN2YxOTljNjVlMGJiMThkOTMyZTcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dDNELmgKQEAgLTQ4OCw2ICs0ODgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlKEF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBSZW5k
ZXJTdHlsZSA9IFJlbmRlck9mZnNjcmVlbik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8R3JhcGhp
Y3NDb250ZXh0M0Q+IGNyZWF0ZUZvckN1cnJlbnRHTENvbnRleHQoKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlU2hhcmVkQ29udGV4dCgpOwogICAgIH5H
cmFwaGljc0NvbnRleHQzRCgpOwogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNE
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGlj
c0NvbnRleHQzRC5jcHAKaW5kZXggYTcwNzRiN2VlZmU3ZDMwZTk4MzIyM2EyZjkwNDdiMjVjNTA1
NWM2Yy4uMjBjYzU4MDlkYjRlM2E4ZGZkNDY3MzgxM2QzNGRiMzUwM2RjNmJkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29u
dGV4dDNELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hh
cmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwCkBAIC02NSwxMiArNjUsNyBAQCBwdWJsaWM6CiAKICAg
ICBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVDb250ZXh0KCkKICAgICB7Ci0g
ICAgICAgIEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzIGF0dHJpYnV0ZXM7Ci0gICAgICAg
IGF0dHJpYnV0ZXMuZGVwdGggPSBmYWxzZTsKLSAgICAgICAgYXR0cmlidXRlcy5zdGVuY2lsID0g
dHJ1ZTsKLSAgICAgICAgYXR0cmlidXRlcy5hbnRpYWxpYXMgPSBmYWxzZTsKLSAgICAgICAgYXR0
cmlidXRlcy5zaGFyZVJlc291cmNlcyA9IHRydWU7Ci0gICAgICAgIG1fY29udGV4dCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpjcmVhdGUoYXR0cmlidXRlcywgMCk7CisgICAgICAgIG1fY29udGV4dCA9
IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGVTaGFyZWRDb250ZXh0KCk7CiAgICAgICAgIHJldHVy
biBtX2NvbnRleHQ7CiAgICAgfQogcHJpdmF0ZToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187414</attachid>
            <date>2013-02-08 21:58:34 -0800</date>
            <delta_ts>2013-02-08 22:33:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109345-20130209005508.patch</filename>
            <type>text/plain</type>
            <size>8133</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAzNGE0M2U2NDE1NDgw
NmZjOGEwMzg5MGJkNmM4ZTU2NWQ1NmQ2MjQ3Li5hNGZhNzFhMjMyZjRmOWMwZGZlNzNhY2RmYWU4
OGZlNTAyYjMzM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMi0wOCAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBDcmVhdGUgdGhl
IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEIHRocm91Z2ggaXRzIG93biBtZXRob2QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgUGxhdGZvcm0gQVBJ
IHRvIGdldCB0aGUgc2hhcmVkIGNvbnRleHQgZnJvbSB0aGUgZW1iZWRkZXIuCisKKyAgICAgICAg
KiBjaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaDoKKyAgICAgICAgKFBsYXRmb3JtKToKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm06OnNoYXJlZE9mZnNjcmVlbkdyYXBoaWNzQ29udGV4dDNEKToK
KyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaDoK
KwogMjAxMy0wMi0wNyAgRWJlcmhhcmQgR3JhZXRoZXIgIDxlZ3JhZXRoZXJAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc2V0dGluZ3MgY2hlY2tib3ggZm9yIGNvbXBv
c2l0ZWQgbGF5ZXIgYm9yZGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGRkNzBlMTI4YTgxY2NkMDMyMzFlMDkw
MDUyZWZlZjhlYjc0YTJhNzguLjM5YThmMjZiN2RlNjg4NGE2ZDc4YTQ0NzQwOGY1YTQ4OThjODUy
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMy0wMi0wOCAgRGFuYSBKYW5zZW5z
ICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBDcmVhdGUgdGhlIFNoYXJlZEdyYXBo
aWNzQ29udGV4dDNEIHRocm91Z2ggaXRzIG93biBtZXRob2QuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0
ZVNoYXJlZENvbnRleHQoKSB0byBhbGxvdyB0aGUgc2hhcmVkIGNvbnRleHQKKyAgICAgICAgdG8g
YmUgY3JlYXRlZCBkb3duIGEgZGlmZmVyZW50IGNvZGUgcGF0aCB0aGFuIG90aGVyIGNvbnRleHRz
LiBUaGlzIGFsbG93cyB0aGUKKyAgICAgICAgZW1iZWRkZXIgdG8gb3duIGFuZCBwcm92aWRlIHRo
ZSBzaGFyZWQgY29udGV4dCB0byBib3RoIFdlYktpdCBhbmQgdG8gb3RoZXIKKyAgICAgICAgY2xp
ZW50cyBzdWNoIGFzIHRoZSBjb21wb3NpdG9yLgorCisgICAgICAgIEluIHRoZSBDaHJvbWl1bSBw
b3J0LCBnZXQgdGhlIHNoYXJlZCBjb250ZXh0IGV4cGxpY2l0bHkgZnJvbSB0aGUgZW1iZWRkZXIK
KyAgICAgICAgd2l0aCB0aGUgUGxhdGZvcm0gQVBJLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhp
c3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBo
aWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q6OmNyZWF0ZVNoYXJlZENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZVNoYXJlZENvbnRleHQpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0Qu
aDoKKyAgICAgICAgKEdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0RJbXBsOjpjcmVhdGVDb250ZXh0KToKKwogMjAxMy0wMi0w
NyAgVG9tIFNlcGV6ICA8dHNlcGV6QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIEJpbmRp
bmcgSW50ZWdyaXR5IGNyYXNoIGluIFY4TWVkaWFTdHJlYW06OmNyZWF0ZVdyYXBwZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaCBiL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaAppbmRleCAwOTM2NmVlNTA5ZmFh
MzlkMmQwMGQwZWQxYTJlMzhjOTI2Yjc5NTNmLi5iYjFlY2YzMDE2ZWIyNWM5NGE1YzQ3YTdmYjQ3
YzljZDM4MWEyOTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9y
bS5oCkBAIC0zMSw2ICszMSwxMSBAQAogI2lmbmRlZiBQbGF0Zm9ybV9oCiAjZGVmaW5lIFBsYXRm
b3JtX2gKIAorLy8gRklYTUU6IFJlbW92ZSB0aGlzIHdoZW4gV2ViU2hhcmVkR3JhcGhpY3NDb250
ZXh0M0QgaXMgcmVtb3ZlZC4KKyNpZm5kZWYgUExBVEZPUk1fQVBJX1BST1ZJREVTX1NIQVJFRF9D
T05URVhUCisjZGVmaW5lIFBMQVRGT1JNX0FQSV9QUk9WSURFU19TSEFSRURfQ09OVEVYVAorI2Vu
ZGlmCisKICNpZmRlZiBXSU4zMgogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNlbmRpZgpAQCAtNDQy
LDYgKzQ0NywxMCBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyBuZXdseSBhbGxvY2F0ZWQgYW5k
IGluaXRpYWxpemVkIG9mZnNjcmVlbiBXZWJHcmFwaGljc0NvbnRleHQzRCBpbnN0YW5jZS4KICAg
ICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjcmVhdGVPZmZzY3JlZW5HcmFwaGljc0Nv
bnRleHQzRChjb25zdCBXZWJHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyYpIHsgcmV0dXJu
IDA7IH0KIAorICAgIC8vIE1heSByZXR1cm4gbnVsbCBpZiBHUFUgaXMgbm90IHN1cHBvcnRlZC4K
KyAgICAvLyBSZXR1cm5zIHRoZSBzaGFyZWQgV2ViR3JhcGhpY3NDb250ZXh0M0QuIFRoaXMgaXMg
YSBzaW5nbGV0b24gb2JqZWN0IGZvciB0aGUgZW50aXJlIHByb2Nlc3MuCisgICAgdmlydHVhbCBX
ZWJHcmFwaGljc0NvbnRleHQzRCogc2hhcmVkT2Zmc2NyZWVuR3JhcGhpY3NDb250ZXh0M0QoKSB7
IHJldHVybiAwOyB9CisKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHBsYXRmb3JtIGlzIGNh
cGFibGUgb2YgcHJvZHVjaW5nIGFuIG9mZnNjcmVlbiBjb250ZXh0IHN1aXRhYmxlIGZvciBhY2Nl
bGVyYXRpbmcgMmQgY2FudmFzLgogICAgIC8vIFRoaXMgd2lsbCByZXR1cm4gZmFsc2UgaWYgdGhl
IHBsYXRmb3JtIGNhbm5vdCBwcm9taXNlIHRoYXQgY29udGV4dHMgd2lsbCBiZSBwcmVzZXJ2ZWQg
YWNyb3NzIG9wZXJhdGlvbnMgbGlrZQogICAgIC8vIGxvY2tpbmcgdGhlIHNjcmVlbiBvciBpZiB0
aGUgcGxhdGZvcm0gY2Fubm90IHByb3ZpZGUgYSBjb250ZXh0IHdpdGggc3VpdGFibGUgcGVyZm9y
bWFuY2UgY2hhcmFjdGVyaXN0aWNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9t
aXVtL3B1YmxpYy9XZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIGIvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDk0OGU2
ZWQzYTc1NjNjZTdhZmZhYjQ1ODk3MGUwNDIyMDQ0YzVmMGEuLmEzOTIyYWVkYThjNDNhNmZkNjVj
OTRmOTE5Yjc4NjRiM2M3MTFmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9Tb3VyY2UvUGxhdGZv
cm0vY2hyb21pdW0vcHVibGljL1dlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgKQEAgLTI2LDYg
KzI2LDExIEBACiAjaWZuZGVmIFdlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEX2gKICNkZWZpbmUg
V2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0RfaAogCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgZW50
aXJlIGNsYXNzLgorI2lmbmRlZiBQTEFURk9STV9BUElfUFJPVklERVNfU0hBUkVEX0NPTlRFWFQK
KyNkZWZpbmUgUExBVEZPUk1fQVBJX1BST1ZJREVTX1NIQVJFRF9DT05URVhUCisjZW5kaWYKKwog
I2luY2x1ZGUgIldlYkNvbW1vbi5oIgogCiBjbGFzcyBHckNvbnRleHQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29udGV4dDNE
Q2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9H
cmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcAppbmRleCA5NzZhODM0MzU3ODIxMjUwNGIwOGI3
ZWYzYjczMGIxZDExZTE3N2NmLi4xNzA3Njg4ZTVkNzVlNWZkYmIwNTRkYzQ3Nzg4NDRiYjA4NmI2
N2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL3N1cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHAKQEAgLTg1
LDYgKzg1LDEyIEBAIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4
dDNEOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpCiAgICAgcmV0dXJuIEdyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQod2Vi
Q29udGV4dC5yZWxlYXNlKCksIGF0dHJzLnByZXNlcnZlRHJhd2luZ0J1ZmZlcik7CiB9CiAKK1Bh
c3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGVTaGFy
ZWRDb250ZXh0KCkKK3sKKyAgICBPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRD4g
d2ViQ29udGV4dCA9IGFkb3B0UHRyKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+c2hhcmVk
T2Zmc2NyZWVuR3JhcGhpY3NDb250ZXh0M0QoKSk7CisgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQod2ViQ29udGV4
dC5yZWxlYXNlKCksIGZhbHNlKTsKK30KKwogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBHcmFw
aGljc0NvbnRleHQzRDo6cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fcHJpdmF0ZS0+d2ViQ29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwCmluZGV4IDU5ZGFkMjZm
Nzg4MjZjZjg0NzlhMjM3YzViMzZjNjNjNDc2MWFiMzguLjA4MTQwZTk3YzZhYjE1YWIzNjY4ODEx
ZTUxYTliMDQxNTBlYzM4M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAKQEAgLTExMCw2ICsxMTAsMTggQEAgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZ2V0RGF0YUZvcm1hdChHQzNEZW51bSBkZXN0aW5h
dGlvbkZvcm1hdCwgR0MzRGVudW0KIAogfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCiAKKyNpZiAh
UExBVEZPUk0oQ0hST01JVU0pCitQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGlj
c0NvbnRleHQzRDo6Y3JlYXRlU2hhcmVkQ29udGV4dCgpCit7CisgICAgR3JhcGhpY3NDb250ZXh0
M0Q6OkF0dHJpYnV0ZXMgYXR0cmlidXRlczsKKyAgICBhdHRyaWJ1dGVzLmRlcHRoID0gZmFsc2U7
CisgICAgYXR0cmlidXRlcy5zdGVuY2lsID0gdHJ1ZTsKKyAgICBhdHRyaWJ1dGVzLmFudGlhbGlh
cyA9IGZhbHNlOworICAgIGF0dHJpYnV0ZXMuc2hhcmVSZXNvdXJjZXMgPSB0cnVlOworICAgIHJl
dHVybiBjcmVhdGUoYXR0cmlidXRlcywgMCk7Cit9CisjZW5kaWYKKwogYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6dGV4SW1hZ2UyRFJlc291cmNlU2FmZShHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQg
bGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXpl
aSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyLCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUs
IEdDM0RpbnQgdW5wYWNrQWxpZ25tZW50KQogewogICAgIEFTU0VSVCh1bnBhY2tBbGlnbm1lbnQg
PT0gMSB8fCB1bnBhY2tBbGlnbm1lbnQgPT0gMiB8fCB1bnBhY2tBbGlnbm1lbnQgPT0gNCB8fCB1
bnBhY2tBbGlnbm1lbnQgPT0gOCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAppbmRleCBhZWRlNGZkODU1ZmM2YzRjNDZmODY2
YmIwODlkYzQ0MmIyZWFjNTVlLi5kY2I1ZDNkZTk5YTM2NGUyNWYzN2YxOTljNjVlMGJiMThkOTMy
ZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNELmgKQEAgLTQ4OCw2ICs0ODgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlKEF0dHJpYnV0ZXMsIEhvc3RXaW5k
b3cqLCBSZW5kZXJTdHlsZSA9IFJlbmRlck9mZnNjcmVlbik7CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUZvckN1cnJlbnRHTENvbnRleHQoKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlU2hhcmVkQ29udGV4dCgp
OwogICAgIH5HcmFwaGljc0NvbnRleHQzRCgpOwogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNz
Q29udGV4dDNELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFy
ZWRHcmFwaGljc0NvbnRleHQzRC5jcHAKaW5kZXggYTcwNzRiN2VlZmU3ZDMwZTk4MzIyM2EyZjkw
NDdiMjVjNTA1NWM2Yy4uMjBjYzU4MDlkYjRlM2E4ZGZkNDY3MzgxM2QzNGRiMzUwM2RjNmJkMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdy
YXBoaWNzQ29udGV4dDNELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwCkBAIC02NSwxMiArNjUsNyBAQCBwdWJs
aWM6CiAKICAgICBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVDb250ZXh0KCkK
ICAgICB7Ci0gICAgICAgIEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzIGF0dHJpYnV0ZXM7
Ci0gICAgICAgIGF0dHJpYnV0ZXMuZGVwdGggPSBmYWxzZTsKLSAgICAgICAgYXR0cmlidXRlcy5z
dGVuY2lsID0gdHJ1ZTsKLSAgICAgICAgYXR0cmlidXRlcy5hbnRpYWxpYXMgPSBmYWxzZTsKLSAg
ICAgICAgYXR0cmlidXRlcy5zaGFyZVJlc291cmNlcyA9IHRydWU7Ci0gICAgICAgIG1fY29udGV4
dCA9IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoYXR0cmlidXRlcywgMCk7CisgICAgICAgIG1f
Y29udGV4dCA9IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGVTaGFyZWRDb250ZXh0KCk7CiAgICAg
ICAgIHJldHVybiBtX2NvbnRleHQ7CiAgICAgfQogcHJpdmF0ZToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187416</attachid>
            <date>2013-02-08 22:33:24 -0800</date>
            <delta_ts>2013-02-08 23:01:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109345-20130209012958.patch</filename>
            <type>text/plain</type>
            <size>4147</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAzNGE0M2U2NDE1NDgw
NmZjOGEwMzg5MGJkNmM4ZTU2NWQ1NmQ2MjQ3Li42ODM4Nzk1OTAyMDJkZmViMzc0Y2RmNDY1M2Jl
ZGRkYTg0NmU5ZjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMi0wOCAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBDcmVhdGUgdGhl
IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEIHRocm91Z2ggaXRzIG93biBtZXRob2QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgUGxhdGZvcm0gQVBJ
IHRvIGdldCB0aGUgc2hhcmVkIGNvbnRleHQgZnJvbSB0aGUgZW1iZWRkZXIuCisKKyAgICAgICAg
KiBjaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaDoKKyAgICAgICAgKFBsYXRmb3JtKToKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm06OnNoYXJlZE9mZnNjcmVlbkdyYXBoaWNzQ29udGV4dDNEKToK
KwogMjAxMy0wMi0wNyAgRWJlcmhhcmQgR3JhZXRoZXIgIDxlZ3JhZXRoZXJAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc2V0dGluZ3MgY2hlY2tib3ggZm9yIGNvbXBv
c2l0ZWQgbGF5ZXIgYm9yZGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGRkNzBlMTI4YTgxY2NkMDMyMzFlMDkw
MDUyZWZlZjhlYjc0YTJhNzguLjE4N2FlOGNlNTI5NzJmNWY3NWM4ZTRjYTU4N2ZhZWU5Y2MwYzM3
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0wMi0wOCAgRGFuYSBKYW5zZW5z
ICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBDcmVhdGUgdGhlIFNoYXJlZEdyYXBo
aWNzQ29udGV4dDNEIHRocm91Z2ggaXRzIG93biBtZXRob2QuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiB0aGUgQ2hyb21pdW0gcG9ydCwgZ2V0IHRo
ZSBzaGFyZWQgY29udGV4dCBleHBsaWNpdGx5IGZyb20gdGhlIGVtYmVkZGVyCisgICAgICAgIHdp
dGggdGhlIFBsYXRmb3JtIEFQSS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Rz
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4
dDNELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEdyYXBoaWNzQ29udGV4dDNESW1wbDo6
Y3JlYXRlQ29udGV4dCk6CisKIDIwMTMtMDItMDcgIFRvbSBTZXBleiAgPHRzZXBlekBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgW1Y4XSBCaW5kaW5nIEludGVncml0eSBjcmFzaCBpbiBWOE1lZGlh
U3RyZWFtOjpjcmVhdGVXcmFwcGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1BsYXRmb3JtLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1Bs
YXRmb3JtLmgKaW5kZXggMDkzNjZlZTUwOWZhYTM5ZDJkMDBkMGVkMWEyZTM4YzkyNmI3OTUzZi4u
NGVmMjAyNzQ0NmYxYWM4NmNhMWI2NTMwYjc2Mzc4OTJmZDA0ZmJkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaApAQCAtNDQyLDYgKzQ0MiwxMCBAQCBwdWJs
aWM6CiAgICAgLy8gUmV0dXJucyBuZXdseSBhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkIG9mZnNj
cmVlbiBXZWJHcmFwaGljc0NvbnRleHQzRCBpbnN0YW5jZS4KICAgICB2aXJ0dWFsIFdlYkdyYXBo
aWNzQ29udGV4dDNEKiBjcmVhdGVPZmZzY3JlZW5HcmFwaGljc0NvbnRleHQzRChjb25zdCBXZWJH
cmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyYpIHsgcmV0dXJuIDA7IH0KIAorICAgIC8vIE1h
eSByZXR1cm4gbnVsbCBpZiBHUFUgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAvLyBSZXR1cm5zIHRo
ZSBzaGFyZWQgV2ViR3JhcGhpY3NDb250ZXh0M0QuIFRoaXMgaXMgYSBzaW5nbGV0b24gb2JqZWN0
IGZvciB0aGUgZW50aXJlIHByb2Nlc3MuCisgICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQz
RCogc2hhcmVkT2Zmc2NyZWVuR3JhcGhpY3NDb250ZXh0M0QoKSB7IHJldHVybiAwOyB9CisKICAg
ICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHBsYXRmb3JtIGlzIGNhcGFibGUgb2YgcHJvZHVjaW5n
IGFuIG9mZnNjcmVlbiBjb250ZXh0IHN1aXRhYmxlIGZvciBhY2NlbGVyYXRpbmcgMmQgY2FudmFz
LgogICAgIC8vIFRoaXMgd2lsbCByZXR1cm4gZmFsc2UgaWYgdGhlIHBsYXRmb3JtIGNhbm5vdCBw
cm9taXNlIHRoYXQgY29udGV4dHMgd2lsbCBiZSBwcmVzZXJ2ZWQgYWNyb3NzIG9wZXJhdGlvbnMg
bGlrZQogICAgIC8vIGxvY2tpbmcgdGhlIHNjcmVlbiBvciBpZiB0aGUgcGxhdGZvcm0gY2Fubm90
IHByb3ZpZGUgYSBjb250ZXh0IHdpdGggc3VpdGFibGUgcGVyZm9ybWFuY2UgY2hhcmFjdGVyaXN0
aWNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1No
YXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAKaW5kZXggYTcwNzRiN2VlZmU3ZDMw
ZTk4MzIyM2EyZjkwNDdiMjVjNTA1NWM2Yy4uNzJjZjUxOWQ1OWFiMzQ1NjYxZTIyOTI4Yzk3NTg4
YTFjNTA1OTYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwCkBAIC0yOSw2ICsy
OSwxMSBAQAogI2luY2x1ZGUgIlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgiCiAKICNpbmNsdWRl
ICJFeHRlbnNpb25zM0QuaCIKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQzRFByaXZhdGUuaCIKKyNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KKyNp
bmNsdWRlIDxwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaD4KKyNlbmRpZgogI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY1LDEyICs3MCwx
NyBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVD
b250ZXh0KCkKICAgICB7CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAgICAgIE93blB0cjxX
ZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiB3ZWJDb250ZXh0ID0gYWRvcHRQdHIoV2ViS2l0
OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5zaGFyZWRPZmZzY3JlZW5HcmFwaGljc0NvbnRleHQzRCgp
KTsKKyAgICAgICAgbV9jb250ZXh0ID0gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGVH
cmFwaGljc0NvbnRleHRGcm9tV2ViQ29udGV4dCh3ZWJDb250ZXh0LnJlbGVhc2UoKSwgZmFsc2Up
OworI2Vsc2UKICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMgYXR0cmlidXRl
czsKICAgICAgICAgYXR0cmlidXRlcy5kZXB0aCA9IGZhbHNlOwogICAgICAgICBhdHRyaWJ1dGVz
LnN0ZW5jaWwgPSB0cnVlOwogICAgICAgICBhdHRyaWJ1dGVzLmFudGlhbGlhcyA9IGZhbHNlOwog
ICAgICAgICBhdHRyaWJ1dGVzLnNoYXJlUmVzb3VyY2VzID0gdHJ1ZTsKICAgICAgICAgbV9jb250
ZXh0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShhdHRyaWJ1dGVzLCAwKTsKKyNlbmRpZgog
ICAgICAgICByZXR1cm4gbV9jb250ZXh0OwogICAgIH0KIHByaXZhdGU6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187419</attachid>
            <date>2013-02-08 23:01:25 -0800</date>
            <delta_ts>2013-02-12 22:30:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109345-20130209015759.patch</filename>
            <type>text/plain</type>
            <size>4176</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAzNGE0M2U2NDE1NDgw
NmZjOGEwMzg5MGJkNmM4ZTU2NWQ1NmQ2MjQ3Li5kMDg3ZTRiNzlhN2VmNGI5NTFkNjdjZWFmZDhl
YTUxNjExOTA3ODI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMi0wOCAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBDcmVhdGUgdGhl
IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEIHRocm91Z2ggaXRzIG93biBtZXRob2QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KKworICAgICAgICBBZGQgUGxhdGZvcm0gQVBJ
IHRvIGdldCB0aGUgc2hhcmVkIGNvbnRleHQgZnJvbSB0aGUgZW1iZWRkZXIuCisKKyAgICAgICAg
KiBjaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaDoKKyAgICAgICAgKFBsYXRmb3JtKToKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm06OnNoYXJlZE9mZnNjcmVlbkdyYXBoaWNzQ29udGV4dDNEKToK
KwogMjAxMy0wMi0wNyAgRWJlcmhhcmQgR3JhZXRoZXIgIDxlZ3JhZXRoZXJAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc2V0dGluZ3MgY2hlY2tib3ggZm9yIGNvbXBv
c2l0ZWQgbGF5ZXIgYm9yZGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGRkNzBlMTI4YTgxY2NkMDMyMzFlMDkw
MDUyZWZlZjhlYjc0YTJhNzguLjdjNzM2ZTJiNGRhOTNiZmI4ZjYwYjViOWE3ZmRmZmVlYWQwNmNm
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0wMi0wOCAgRGFuYSBKYW5zZW5z
ICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBDcmVhdGUgdGhlIFNoYXJlZEdyYXBo
aWNzQ29udGV4dDNEIHRocm91Z2ggaXRzIG93biBtZXRob2QuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBKYW1lcyBSb2JpbnNvbi4KKworICAgICAgICBJbiB0aGUgQ2hyb21pdW0gcG9ydCwgZ2V0IHRo
ZSBzaGFyZWQgY29udGV4dCBleHBsaWNpdGx5IGZyb20gdGhlIGVtYmVkZGVyCisgICAgICAgIHdp
dGggdGhlIFBsYXRmb3JtIEFQSS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Rz
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4
dDNELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEdyYXBoaWNzQ29udGV4dDNESW1wbDo6
Y3JlYXRlQ29udGV4dCk6CisKIDIwMTMtMDItMDcgIFRvbSBTZXBleiAgPHRzZXBlekBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgW1Y4XSBCaW5kaW5nIEludGVncml0eSBjcmFzaCBpbiBWOE1lZGlh
U3RyZWFtOjpjcmVhdGVXcmFwcGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1BsYXRmb3JtLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1Bs
YXRmb3JtLmgKaW5kZXggMDkzNjZlZTUwOWZhYTM5ZDJkMDBkMGVkMWEyZTM4YzkyNmI3OTUzZi4u
NGVmMjAyNzQ0NmYxYWM4NmNhMWI2NTMwYjc2Mzc4OTJmZDA0ZmJkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaApAQCAtNDQyLDYgKzQ0MiwxMCBAQCBwdWJs
aWM6CiAgICAgLy8gUmV0dXJucyBuZXdseSBhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkIG9mZnNj
cmVlbiBXZWJHcmFwaGljc0NvbnRleHQzRCBpbnN0YW5jZS4KICAgICB2aXJ0dWFsIFdlYkdyYXBo
aWNzQ29udGV4dDNEKiBjcmVhdGVPZmZzY3JlZW5HcmFwaGljc0NvbnRleHQzRChjb25zdCBXZWJH
cmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyYpIHsgcmV0dXJuIDA7IH0KIAorICAgIC8vIE1h
eSByZXR1cm4gbnVsbCBpZiBHUFUgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAvLyBSZXR1cm5zIHRo
ZSBzaGFyZWQgV2ViR3JhcGhpY3NDb250ZXh0M0QuIFRoaXMgaXMgYSBzaW5nbGV0b24gb2JqZWN0
IGZvciB0aGUgZW50aXJlIHByb2Nlc3MuCisgICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQz
RCogc2hhcmVkT2Zmc2NyZWVuR3JhcGhpY3NDb250ZXh0M0QoKSB7IHJldHVybiAwOyB9CisKICAg
ICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHBsYXRmb3JtIGlzIGNhcGFibGUgb2YgcHJvZHVjaW5n
IGFuIG9mZnNjcmVlbiBjb250ZXh0IHN1aXRhYmxlIGZvciBhY2NlbGVyYXRpbmcgMmQgY2FudmFz
LgogICAgIC8vIFRoaXMgd2lsbCByZXR1cm4gZmFsc2UgaWYgdGhlIHBsYXRmb3JtIGNhbm5vdCBw
cm9taXNlIHRoYXQgY29udGV4dHMgd2lsbCBiZSBwcmVzZXJ2ZWQgYWNyb3NzIG9wZXJhdGlvbnMg
bGlrZQogICAgIC8vIGxvY2tpbmcgdGhlIHNjcmVlbiBvciBpZiB0aGUgcGxhdGZvcm0gY2Fubm90
IHByb3ZpZGUgYSBjb250ZXh0IHdpdGggc3VpdGFibGUgcGVyZm9ybWFuY2UgY2hhcmFjdGVyaXN0
aWNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1No
YXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAKaW5kZXggYTcwNzRiN2VlZmU3ZDMw
ZTk4MzIyM2EyZjkwNDdiMjVjNTA1NWM2Yy4uMGViZjQxZGE1OTMwYzdkMDFlNWM5MThlZjUyOGQy
YmVjNzc2NDljNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwCkBAIC0yOSw2ICsy
OSwxMSBAQAogI2luY2x1ZGUgIlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgiCiAKICNpbmNsdWRl
ICJFeHRlbnNpb25zM0QuaCIKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQzRFByaXZhdGUuaCIKKyNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KKyNp
bmNsdWRlIDxwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaD4KKyNlbmRpZgogI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY1LDEyICs3MCwx
OCBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVD
b250ZXh0KCkKICAgICB7CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAgICAgIE93blB0cjxX
ZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiB3ZWJDb250ZXh0ID0gYWRvcHRQdHIoV2ViS2l0
OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5zaGFyZWRPZmZzY3JlZW5HcmFwaGljc0NvbnRleHQzRCgp
KTsKKyAgICAgICAgaWYgKHdlYkNvbnRleHQpCisgICAgICAgICAgICBtX2NvbnRleHQgPSBHcmFw
aGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21XZWJDb250ZXh0
KHdlYkNvbnRleHQucmVsZWFzZSgpLCBmYWxzZSk7CisjZWxzZQogICAgICAgICBHcmFwaGljc0Nv
bnRleHQzRDo6QXR0cmlidXRlcyBhdHRyaWJ1dGVzOwogICAgICAgICBhdHRyaWJ1dGVzLmRlcHRo
ID0gZmFsc2U7CiAgICAgICAgIGF0dHJpYnV0ZXMuc3RlbmNpbCA9IHRydWU7CiAgICAgICAgIGF0
dHJpYnV0ZXMuYW50aWFsaWFzID0gZmFsc2U7CiAgICAgICAgIGF0dHJpYnV0ZXMuc2hhcmVSZXNv
dXJjZXMgPSB0cnVlOwogICAgICAgICBtX2NvbnRleHQgPSBHcmFwaGljc0NvbnRleHQzRDo6Y3Jl
YXRlKGF0dHJpYnV0ZXMsIDApOworI2VuZGlmCiAgICAgICAgIHJldHVybiBtX2NvbnRleHQ7CiAg
ICAgfQogcHJpdmF0ZToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188014</attachid>
            <date>2013-02-12 22:30:24 -0800</date>
            <delta_ts>2013-02-12 23:01:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109345-20130213012654.patch</filename>
            <type>text/plain</type>
            <size>7121</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAzNGE0M2U2NDE1NDgw
NmZjOGEwMzg5MGJkNmM4ZTU2NWQ1NmQ2MjQ3Li4zYzg4NjA3MDViODdmYjY5MjkyZDE0OTk1ZTMw
YTAwYzUwMDEyNzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMi0xMiAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBDcmVhdGUgdGhl
IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEIHRocm91Z2ggaXRzIG93biBtZXRob2QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgUGxhdGZvcm0gQVBJ
IHRvIGdldCB0aGUgc2hhcmVkIGNvbnRleHQgZnJvbSB0aGUgZW1iZWRkZXIuCisKKyAgICAgICAg
KiBjaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaDoKKyAgICAgICAgKFBsYXRmb3JtKToKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm06OnNoYXJlZE9mZnNjcmVlbkdyYXBoaWNzQ29udGV4dDNEKToK
KyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm06OnNoYXJlZE9mZnNjcmVlbkdyQ29udGV4dCk6CisK
IDIwMTMtMDItMDcgIEViZXJoYXJkIEdyYWV0aGVyICA8ZWdyYWV0aGVyQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIHNldHRpbmdzIGNoZWNrYm94IGZvciBjb21wb3Np
dGVkIGxheWVyIGJvcmRlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkZDcwZTEyOGE4MWNjZDAzMjMxZTA5MDA1
MmVmZWY4ZWI3NGEyYTc4Li5mYzNmNWM2YmU5NGUyMThiZmQ0NjU5ZjBiYWQ1ODQ4NjY3YzE0ZmE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMDItMTIgIERhbmEgSmFuc2VucyAg
PGRhbmFrakBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ3JlYXRlIHRoZSBTaGFyZWRHcmFwaGlj
c0NvbnRleHQzRCB0aHJvdWdoIGl0cyBvd24gbWV0aG9kLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MzQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gdGhlIENocm9taXVtIHBvcnQsIGdldCB0aGUg
c2hhcmVkIGNvbnRleHQgZXhwbGljaXRseSBmcm9tIHRoZSBlbWJlZGRlcgorICAgICAgICB3aXRo
IHRoZSBQbGF0Zm9ybSBBUEkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21XZWJDb250ZXh0QW5k
R3JDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmg6CisgICAgICAgIChHcmFwaGlj
c0NvbnRleHQzRFByaXZhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFy
ZWRHcmFwaGljc0NvbnRleHQzRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRHcmFwaGlj
c0NvbnRleHQzREltcGw6OmNyZWF0ZUNvbnRleHQpOgorCiAyMDEzLTAyLTA3ICBUb20gU2VwZXog
IDx0c2VwZXpAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtWOF0gQmluZGluZyBJbnRlZ3JpdHkg
Y3Jhc2ggaW4gVjhNZWRpYVN0cmVhbTo6Y3JlYXRlV3JhcHBlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oIGIvU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oCmluZGV4IDA5MzY2ZWU1MDlmYWEzOWQyZDAwZDBlZDFh
MmUzOGM5MjZiNzk1M2YuLmJhMzVkOGMyYmFlZWE0YWY5MGU3NzY5ODhmMWY3ZjAwMGVjOTQzZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaAor
KysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgKQEAgLTQ0LDYg
KzQ0LDggQEAKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlICJXZWJWZWN0b3IuaCIK
IAorY2xhc3MgR3JDb250ZXh0OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQXVk
aW9CdXM7CkBAIC00NDIsNiArNDQ0LDE0IEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIG5ld2x5
IGFsbG9jYXRlZCBhbmQgaW5pdGlhbGl6ZWQgb2Zmc2NyZWVuIFdlYkdyYXBoaWNzQ29udGV4dDNE
IGluc3RhbmNlLgogICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNyZWF0ZU9mZnNj
cmVlbkdyYXBoaWNzQ29udGV4dDNEKGNvbnN0IFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1
dGVzJikgeyByZXR1cm4gMDsgfQogCisgICAgLy8gTWF5IHJldHVybiBudWxsIGlmIEdQVSBpcyBu
b3Qgc3VwcG9ydGVkLgorICAgIC8vIFJldHVybnMgdGhlIHNoYXJlZCBXZWJHcmFwaGljc0NvbnRl
eHQzRC4gVGhpcyBpcyBhIHNpbmdsZXRvbiBvYmplY3QgZm9yIHRoZSBlbnRpcmUgcHJvY2Vzcy4K
KyAgICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBzaGFyZWRPZmZzY3JlZW5HcmFwaGlj
c0NvbnRleHQzRCgpIHsgcmV0dXJuIDA7IH0KKworICAgIC8vIE1heSByZXR1cm4gbnVsbCBpZiBH
UFUgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAvLyBSZXR1cm5zIHRoZSBzaGFyZWQgR3JDb250ZXh0
LiBUaGlzIGlzIGEgc2luZ2xldG9uIG9iamVjdCBmb3IgdGhlIGVudGlyZSBwcm9jZXNzLgorICAg
IHZpcnR1YWwgR3JDb250ZXh0KiBzaGFyZWRPZmZzY3JlZW5HckNvbnRleHQoKSB7IHJldHVybiAw
OyB9CisKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHBsYXRmb3JtIGlzIGNhcGFibGUgb2Yg
cHJvZHVjaW5nIGFuIG9mZnNjcmVlbiBjb250ZXh0IHN1aXRhYmxlIGZvciBhY2NlbGVyYXRpbmcg
MmQgY2FudmFzLgogICAgIC8vIFRoaXMgd2lsbCByZXR1cm4gZmFsc2UgaWYgdGhlIHBsYXRmb3Jt
IGNhbm5vdCBwcm9taXNlIHRoYXQgY29udGV4dHMgd2lsbCBiZSBwcmVzZXJ2ZWQgYWNyb3NzIG9w
ZXJhdGlvbnMgbGlrZQogICAgIC8vIGxvY2tpbmcgdGhlIHNjcmVlbiBvciBpZiB0aGUgcGxhdGZv
cm0gY2Fubm90IHByb3ZpZGUgYSBjb250ZXh0IHdpdGggc3VpdGFibGUgcGVyZm9ybWFuY2UgY2hh
cmFjdGVyaXN0aWNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmlu
ZGV4IGEyMzA0ODM5MDFjYzFkZWY4NmFhZDQ2NjdmY2I2OGU1Mzg1NjU5MTQuLjVkMTExNTcwMzRh
YmU1ZWZlNmUxNzRjYjdhZGVkZDVhMjdmNWI1ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZS5jcHAKQEAgLTgzLDYgKzgzLDE4IEBAIFBhc3NSZWZQdHI8R3JhcGhpY3ND
b250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0
RnJvCiAgICAgcmV0dXJuIGNvbnRleHQucmVsZWFzZSgpOwogfQogCitQYXNzUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29u
dGV4dEZyb21XZWJDb250ZXh0QW5kR3JDb250ZXh0KFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFw
aGljc0NvbnRleHQzRD4gd2ViQ29udGV4dCwgR3JDb250ZXh0KiBnckNvbnRleHQpCit7CisgICAg
UmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0ID0gR3JhcGhpY3NDb250ZXh0M0RQcml2
YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9tV2ViQ29udGV4dCh3ZWJDb250ZXh0LCBmYWxz
ZSk7CisgICAgaWYgKGNvbnRleHQpIHsKKyAgICAgICAgLy8gVGhlIGNvbnRleHQgaXMgcHJvdmlk
ZWQgZXh0ZXJuYWxseSBzbyB3ZSBkb24ndCBvd24gaXQsIHNvIGRvbid0IHN0ZWFsCisgICAgICAg
IC8vIHRoZSBleHRlcm5hbCByZWZlcmVuY2UuCisgICAgICAgIFNrU2FmZVJlZihnckNvbnRleHQp
OworICAgICAgICBjb250ZXh0LT5tX3ByaXZhdGUtPm1fZ3JDb250ZXh0LnJlc2V0KGdyQ29udGV4
dCk7CisgICAgfQorICAgIHJldHVybiBjb250ZXh0LnJlbGVhc2UoKTsKK30KKwogV2ViS2l0OjpX
ZWJHcmFwaGljc0NvbnRleHQzRCogR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpleHRyYWN0V2Vi
R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiB7CiAgICAgaWYg
KCFjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
c3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL3N1cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKaW5kZXggZDE5
M2E2YzgzMmUzYjRmYWNlZjFlMzVjOTBjYzNmODcwZTIyZjFjZS4uN2U3OWJlNzY1NzBiMTFiMTNm
YWE4NWY2YWI4OWFkOTBlOTU5YWFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5oCkBAIC01NCw2ICs1NCw4IEBAIHB1YmxpYzoKICAgICAvLyBiZSB1c2VkIG9uIGFueSBv
dGhlciB0aHJlYWQuCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNy
ZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21XZWJDb250ZXh0KFBhc3NPd25QdHI8V2ViS2l0OjpXZWJH
cmFwaGljc0NvbnRleHQzRD4sIGJvb2wgcHJlc2VydmVEcmF3aW5nQnVmZmVyID0gZmFsc2UpOwog
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUdyYXBoaWNz
Q29udGV4dEZyb21XZWJDb250ZXh0QW5kR3JDb250ZXh0KFBhc3NPd25QdHI8V2ViS2l0OjpXZWJH
cmFwaGljc0NvbnRleHQzRD4sIEdyQ29udGV4dCopOworCiAgICAgLy8gSGVscGVyIGZ1bmN0aW9u
IHRvIHByb3ZpZGUgYWNjZXNzIHRvIHRoZSBsb3dlci1sZXZlbCBXZWJHcmFwaGljc0NvbnRleHQz
RCwKICAgICAvLyB3aGljaCBpcyBuZWVkZWQgZm9yIHN1Ym9yZGluYXRlIGNvbnRleHRzIGxpa2Ug
V2ViR0wncyB0byBzaGFyZSByZXNvdXJjZXMKICAgICAvLyB3aXRoIHRoZSBjb21wb3NpdG9yJ3Mg
Y29udGV4dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwCmluZGV4IGE3MDc0YjdlZWZl
N2QzMGU5ODMyMjNhMmY5MDQ3YjI1YzUwNTVjNmMuLjM5YWE2YjUwN2VkMWY1MzI3MTllMDdkNDVm
MDBlZmI4NWNkMzg3ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcApAQCAtMjks
NiArMjksMTEgQEAKICNpbmNsdWRlICJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIgogCiAjaW5j
bHVkZSAiRXh0ZW5zaW9uczNELmgiCisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisjaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgiCisjaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+
CisjaW5jbHVkZSA8cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmg+CisjZW5kaWYKICNpbmNs
dWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02NSwxMiAr
NzAsMTkgQEAgcHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3Jl
YXRlQ29udGV4dCgpCiAgICAgeworI2lmIFBMQVRGT1JNKENIUk9NSVVNKQorICAgICAgICBXZWJL
aXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiB3ZWJDb250ZXh0ID0gV2ViS2l0OjpQbGF0Zm9ybTo6
Y3VycmVudCgpLT5zaGFyZWRPZmZzY3JlZW5HcmFwaGljc0NvbnRleHQzRCgpOworICAgICAgICBH
ckNvbnRleHQqIGdyQ29udGV4dCA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+c2hhcmVk
T2Zmc2NyZWVuR3JDb250ZXh0KCk7CisgICAgICAgIGlmICh3ZWJDb250ZXh0ICYmIGdyQ29udGV4
dCkKKyAgICAgICAgICAgIG1fY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3Jl
YXRlR3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHRBbmRHckNvbnRleHQod2ViQ29udGV4dCwg
Z3JDb250ZXh0KTsKKyNlbHNlCiAgICAgICAgIEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVz
IGF0dHJpYnV0ZXM7CiAgICAgICAgIGF0dHJpYnV0ZXMuZGVwdGggPSBmYWxzZTsKICAgICAgICAg
YXR0cmlidXRlcy5zdGVuY2lsID0gdHJ1ZTsKICAgICAgICAgYXR0cmlidXRlcy5hbnRpYWxpYXMg
PSBmYWxzZTsKICAgICAgICAgYXR0cmlidXRlcy5zaGFyZVJlc291cmNlcyA9IHRydWU7CiAgICAg
ICAgIG1fY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoYXR0cmlidXRlcywgMCk7
CisjZW5kaWYKICAgICAgICAgcmV0dXJuIG1fY29udGV4dDsKICAgICB9CiBwcml2YXRlOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188017</attachid>
            <date>2013-02-12 23:01:50 -0800</date>
            <delta_ts>2013-02-13 11:09:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109345-20130213015819.patch</filename>
            <type>text/plain</type>
            <size>10230</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBkODVkYzNiNGNmZjgw
NGJhM2Y0MmQyMmIyNDIxMGM2MTQ2MDg4NWY4Li5kYWM2NzU2ZTU0MDBhOTA4OWI1NDIxZjVmZjRi
MmU1OWEyOGIzZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMi0xMiAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBDcmVhdGUgdGhl
IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEIHRocm91Z2ggaXRzIG93biBtZXRob2QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgUGxhdGZvcm0gQVBJ
IG1ldGhvZHMgdG8gZ2V0IHNoYXJlZCBjb250ZXh0cyBmcm9tIHRoZSBlbWJlZGRlci4KKworICAg
ICAgICAqIGNocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oOgorICAgICAgICAoUGxhdGZvcm0pOgor
ICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6c2hhcmVkT2Zmc2NyZWVuR3JhcGhpY3NDb250ZXh0
M0QpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6c2hhcmVkT2Zmc2NyZWVuR3JDb250ZXh0
KToKKwogMjAxMy0wMi0xMSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtjaHJvbWl1bV0gQWRkIFdlYlVuaXRUZXN0U3VwcG9ydDo6Y3JlYXRlTGF5ZXJU
cmVlVmlld0ZvclRlc3RpbmcgZm9yIHdlYmtpdF91bml0X3Rlc3RzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE2
ZDViYzVmOWRiOGUxNWNjZDk4ZDMzNjUxYzVmYmI2MzkzMjdjNi4uNGIzM2UzMzE0NGZlNTE5YmFi
NjZkY2U4NDNhZGY3NTIxNGNiMmI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEz
LTAyLTEyICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENy
ZWF0ZSB0aGUgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QgdGhyb3VnaCBpdHMgb3duIG1ldGhvZC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTM0NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IGNy
ZWF0aW5nIGEgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlIGZyb20gYW4gZXh0ZXJuYWxseSBvd25l
ZAorICAgICAgICBXZWJHcmFwaGljc0NvbnRleHQzRCBhbmQgR3JDb250ZXh0LiBUaGVuIGNyZWF0
ZSB0aGUgc2hhcmVkIGdyYXBoaWNzCisgICAgICAgIGNvbnRleHQgZnJvbSB0aGVzZSBwcm92aWRl
ZCBieSB0aGUgZW1iZWRkZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRFByaXZhdGU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3Jl
YXRlR3JhcGhpY3NDb250ZXh0RnJvbUV4dGVybmFsV2ViQ29udGV4dEFuZEdyQ29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmdyQ29udGV4dCk6Cisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuaDoKKyAgICAgICAgKEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OndlYkNvbnRleHQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzREltcGw6OmNyZWF0ZUNvbnRleHQpOgor
CiAyMDEzLTAyLTEyICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgRWxlbWVudDo6ZW5zdXJlQXR0cmlidXRlRGF0YSgpLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oIGIvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oCmluZGV4IGE3ZGUzYmM4YzczMWNkMDBkNTA3Y2E5
NTAyNGU4ZWEzZGUzOTIxYjEuLjk3ODVlYWZlMWY2MjNlMmZlYzZhOWUwZmUyNmZjYTFhYzAzYWJm
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0u
aAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgKQEAgLTQ0
LDYgKzQ0LDggQEAKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlICJXZWJWZWN0b3Iu
aCIKIAorY2xhc3MgR3JDb250ZXh0OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2Vi
QXVkaW9CdXM7CkBAIC00NTAsNiArNDUyLDE0IEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIG5l
d2x5IGFsbG9jYXRlZCBhbmQgaW5pdGlhbGl6ZWQgb2Zmc2NyZWVuIFdlYkdyYXBoaWNzQ29udGV4
dDNEIGluc3RhbmNlLgogICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNyZWF0ZU9m
ZnNjcmVlbkdyYXBoaWNzQ29udGV4dDNEKGNvbnN0IFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRy
aWJ1dGVzJikgeyByZXR1cm4gMDsgfQogCisgICAgLy8gTWF5IHJldHVybiBudWxsIGlmIEdQVSBp
cyBub3Qgc3VwcG9ydGVkLgorICAgIC8vIFJldHVybnMgdGhlIHNoYXJlZCBXZWJHcmFwaGljc0Nv
bnRleHQzRC4gVGhpcyBpcyBhIHNpbmdsZXRvbiBvYmplY3QgZm9yIHRoZSBlbnRpcmUgcHJvY2Vz
cy4KKyAgICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBzaGFyZWRPZmZzY3JlZW5HcmFw
aGljc0NvbnRleHQzRCgpIHsgcmV0dXJuIDA7IH0KKworICAgIC8vIE1heSByZXR1cm4gbnVsbCBp
ZiBHUFUgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAvLyBSZXR1cm5zIHRoZSBzaGFyZWQgR3JDb250
ZXh0LiBUaGlzIGlzIGEgc2luZ2xldG9uIG9iamVjdCBmb3IgdGhlIGVudGlyZSBwcm9jZXNzLgor
ICAgIHZpcnR1YWwgR3JDb250ZXh0KiBzaGFyZWRPZmZzY3JlZW5HckNvbnRleHQoKSB7IHJldHVy
biAwOyB9CisKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHBsYXRmb3JtIGlzIGNhcGFibGUg
b2YgcHJvZHVjaW5nIGFuIG9mZnNjcmVlbiBjb250ZXh0IHN1aXRhYmxlIGZvciBhY2NlbGVyYXRp
bmcgMmQgY2FudmFzLgogICAgIC8vIFRoaXMgd2lsbCByZXR1cm4gZmFsc2UgaWYgdGhlIHBsYXRm
b3JtIGNhbm5vdCBwcm9taXNlIHRoYXQgY29udGV4dHMgd2lsbCBiZSBwcmVzZXJ2ZWQgYWNyb3Nz
IG9wZXJhdGlvbnMgbGlrZQogICAgIC8vIGxvY2tpbmcgdGhlIHNjcmVlbiBvciBpZiB0aGUgcGxh
dGZvcm0gY2Fubm90IHByb3ZpZGUgYSBjb250ZXh0IHdpdGggc3VpdGFibGUgcGVyZm9ybWFuY2Ug
Y2hhcmFjdGVyaXN0aWNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3Bw
CmluZGV4IGEyMzA0ODM5MDFjYzFkZWY4NmFhZDQ2NjdmY2I2OGU1Mzg1NjU5MTQuLjA5YzA2NjNh
Y2ZkNDEwMGM3NGI5ZTIyODQwMTk5NWE2MDA4OTc5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZS5jcHAKQEAgLTU3LDcgKzU3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogLy8gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlCiAKIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGlj
c0NvbnRleHQzRD4gd2ViQ29udGV4dCwgYm9vbCBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIpCi0gICAg
OiBtX2ltcGwod2ViQ29udGV4dCkKKyAgICA6IG1faW1wbCh3ZWJDb250ZXh0LmdldCgpKQorICAg
ICwgbV9vd25lZFdlYkNvbnRleHQod2ViQ29udGV4dCkKICAgICAsIG1faW5pdGlhbGl6ZWRBdmFp
bGFibGVFeHRlbnNpb25zKGZhbHNlKQogICAgICwgbV9sYXllckNvbXBvc2l0ZWQoZmFsc2UpCiAg
ICAgLCBtX3ByZXNlcnZlRHJhd2luZ0J1ZmZlcihwcmVzZXJ2ZURyYXdpbmdCdWZmZXIpCkBAIC02
Niw2ICs2NywxNyBAQCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OkdyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZShQYXNzT3duUHRyPFdlYktpdDo6V2ViR3JhcGhpYwogewogfQogCitHcmFwaGljc0Nv
bnRleHQzRFByaXZhdGU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShXZWJLaXQ6OldlYkdyYXBo
aWNzQ29udGV4dDNEKiB3ZWJDb250ZXh0LCBHckNvbnRleHQqIGdyQ29udGV4dCwgYm9vbCBwcmVz
ZXJ2ZURyYXdpbmdCdWZmZXIpCisgICAgOiBtX2ltcGwod2ViQ29udGV4dCkKKyAgICAsIG1faW5p
dGlhbGl6ZWRBdmFpbGFibGVFeHRlbnNpb25zKGZhbHNlKQorICAgICwgbV9sYXllckNvbXBvc2l0
ZWQoZmFsc2UpCisgICAgLCBtX3ByZXNlcnZlRHJhd2luZ0J1ZmZlcihwcmVzZXJ2ZURyYXdpbmdC
dWZmZXIpCisgICAgLCBtX3Jlc291cmNlU2FmZXR5KFJlc291cmNlU2FmZXR5VW5rbm93bikKKyAg
ICAsIG1fZ3JDb250ZXh0KGdyQ29udGV4dCkKK3sKK30KKworCiBHcmFwaGljc0NvbnRleHQzRFBy
aXZhdGU6On5HcmFwaGljc0NvbnRleHQzRFByaXZhdGUoKQogewogICAgIGlmIChtX2dyQ29udGV4
dCkgewpAQCAtODMsNiArOTUsMTUgQEAgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm8KICAgICByZXR1
cm4gY29udGV4dC5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+
IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbUV4dGVy
bmFsV2ViQ29udGV4dEFuZEdyQ29udGV4dChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiB3
ZWJDb250ZXh0LCBHckNvbnRleHQqIGdyQ29udGV4dCwgYm9vbCBwcmVzZXJ2ZURyYXdpbmdCdWZm
ZXIpCit7CisgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0ID0gYWRvcHRSZWYo
bmV3IEdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzKCksIDAp
KTsKKworICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQzRFByaXZhdGU+IHByaXYgPSBhZG9wdFB0
cihuZXcgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKHdlYkNvbnRleHQsIGdyQ29udGV4dCwgcHJl
c2VydmVEcmF3aW5nQnVmZmVyKSk7CisgICAgY29udGV4dC0+bV9wcml2YXRlID0gcHJpdi5yZWxl
YXNlKCk7CisgICAgcmV0dXJuIGNvbnRleHQucmVsZWFzZSgpOworfQorCiBXZWJLaXQ6OldlYkdy
YXBoaWNzQ29udGV4dDNEKiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmV4dHJhY3RXZWJHcmFw
aGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKIHsKICAgICBpZiAoIWNv
bnRleHQpCkBAIC0xMzAsOSArMTUxLDEwIEBAIEdyQ29udGV4dCogR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlOjpnckNvbnRleHQoKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGludGVyZmFjZS0+
ZkNhbGxiYWNrID0gYmluZFdlYkdyYXBoaWNzQ29udGV4dDNER0xDb250ZXh0Q2FsbGJhY2s7Ci0g
ICAgaW50ZXJmYWNlLT5mQ2FsbGJhY2tEYXRhID0gcmVpbnRlcnByZXRfY2FzdDxHckdMSW50ZXJm
YWNlQ2FsbGJhY2tEYXRhPihtX2ltcGwuZ2V0KCkpOworICAgIGludGVyZmFjZS0+ZkNhbGxiYWNr
RGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3JHTEludGVyZmFjZUNhbGxiYWNrRGF0YT4obV9pbXBs
KTsKIAotICAgIG1fZ3JDb250ZXh0LnJlc2V0KEdyQ29udGV4dDo6Q3JlYXRlKGtPcGVuR0xfR3JC
YWNrZW5kLCByZWludGVycHJldF9jYXN0PEdyQmFja2VuZENvbnRleHQ+KGludGVyZmFjZS5nZXQo
KSkpKTsKKyAgICBtX293bmVkR3JDb250ZXh0LnJlc2V0KEdyQ29udGV4dDo6Q3JlYXRlKGtPcGVu
R0xfR3JCYWNrZW5kLCByZWludGVycHJldF9jYXN0PEdyQmFja2VuZENvbnRleHQ+KGludGVyZmFj
ZS5nZXQoKSkpKTsKKyAgICBtX2dyQ29udGV4dCA9IG1fb3duZWRHckNvbnRleHQ7CiAgICAgaWYg
KCFtX2dyQ29udGV4dCkKICAgICAgICAgcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZS5oCmluZGV4IGQxOTNhNmM4MzJlM2I0ZmFjZWYxZTM1YzkwY2MzZjg3MGUy
MmYxY2UuLmE0NDFiMDYxZWY3NmNjYjljYWU3NzQ4ZjU3ZTgyMWQzOWFhZmY4NzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvR3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3Vw
cG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaApAQCAtNTQsNiArNTQsOCBAQCBwdWJsaWM6
CiAgICAgLy8gYmUgdXNlZCBvbiBhbnkgb3RoZXIgdGhyZWFkLgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9tV2ViQ29udGV4
dChQYXNzT3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+LCBib29sIHByZXNlcnZl
RHJhd2luZ0J1ZmZlciA9IGZhbHNlKTsKIAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdyYXBoaWNz
Q29udGV4dDNEPiBjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9tRXh0ZXJuYWxXZWJDb250ZXh0QW5k
R3JDb250ZXh0KFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqLCBHckNvbnRleHQqLCBib29s
IHByZXNlcnZlRHJhd2luZ0J1ZmZlciA9IGZhbHNlKTsKKwogICAgIC8vIEhlbHBlciBmdW5jdGlv
biB0byBwcm92aWRlIGFjY2VzcyB0byB0aGUgbG93ZXItbGV2ZWwgV2ViR3JhcGhpY3NDb250ZXh0
M0QsCiAgICAgLy8gd2hpY2ggaXMgbmVlZGVkIGZvciBzdWJvcmRpbmF0ZSBjb250ZXh0cyBsaWtl
IFdlYkdMJ3MgdG8gc2hhcmUgcmVzb3VyY2VzCiAgICAgLy8gd2l0aCB0aGUgY29tcG9zaXRvcidz
IGNvbnRleHQuCkBAIC02MSw3ICs2Myw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkdyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZSgpOwogCi0gICAgV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQz
RCogd2ViQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfQorICAgIFdlYktp
dDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqIHdlYkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2lt
cGw7IH0KIAogICAgIEdyQ29udGV4dCogZ3JDb250ZXh0KCk7CiAKQEAgLTg2LDEwICs4OCwxMiBA
QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKFBhc3NP
d25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRD4sIGJvb2wgcHJlc2VydmVEcmF3aW5n
QnVmZmVyKTsKKyAgICBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoV2ViS2l0OjpXZWJHcmFwaGlj
c0NvbnRleHQzRCosIEdyQ29udGV4dCosIGJvb2wgcHJlc2VydmVEcmF3aW5nQnVmZmVyKTsKIAog
ICAgIHZvaWQgaW5pdGlhbGl6ZUV4dGVuc2lvbnMoKTsKIAotICAgIE93blB0cjxXZWJLaXQ6Oldl
YkdyYXBoaWNzQ29udGV4dDNEPiBtX2ltcGw7CisgICAgV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRl
eHQzRCogbV9pbXBsOworICAgIE93blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiBt
X293bmVkV2ViQ29udGV4dDsKICAgICBPd25QdHI8RXh0ZW5zaW9uczNEQ2hyb21pdW0+IG1fZXh0
ZW5zaW9uczsKICAgICBPd25QdHI8R3JhcGhpY3NDb250ZXh0M0RDb250ZXh0TG9zdENhbGxiYWNr
QWRhcHRlcj4gbV9jb250ZXh0TG9zdENhbGxiYWNrQWRhcHRlcjsKICAgICBPd25QdHI8R3JhcGhp
Y3NDb250ZXh0M0RFcnJvck1lc3NhZ2VDYWxsYmFja0FkYXB0ZXI+IG1fZXJyb3JNZXNzYWdlQ2Fs
bGJhY2tBZGFwdGVyOwpAQCAtMTE0LDcgKzExOCw4IEBAIHByaXZhdGU6CiAgICAgLy8gdXNlZCB0
byByZXNpemUgdGhlIENhbnZhcy4KICAgICBTa0JpdG1hcCBtX3Jlc2l6aW5nQml0bWFwOwogCi0g
ICAgU2tBdXRvVFVucmVmPEdyQ29udGV4dD4gbV9nckNvbnRleHQ7CisgICAgR3JDb250ZXh0KiBt
X2dyQ29udGV4dDsKKyAgICBTa0F1dG9UVW5yZWY8R3JDb250ZXh0PiBtX293bmVkR3JDb250ZXh0
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQz
RC5jcHAKaW5kZXggYTcwNzRiN2VlZmU3ZDMwZTk4MzIyM2EyZjkwNDdiMjVjNTA1NWM2Yy4uYTU1
NmYyY2VlM2E4MTg3MmY5MzlmZDI2ZTg3YTdmYzE2MTUxOGE0MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhp
Y3NDb250ZXh0M0QuY3BwCkBAIC0yOSw2ICsyOSwxMSBAQAogI2luY2x1ZGUgIlNoYXJlZEdyYXBo
aWNzQ29udGV4dDNELmgiCiAKICNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIKKyNpZiBQTEFURk9S
TShDSFJPTUlVTSkKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKKyNpbmNs
dWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViR3JhcGhpY3NDb250
ZXh0M0QuaD4KKyNlbmRpZgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTY1LDEyICs3MCwxOSBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRy
PEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVDb250ZXh0KCkKICAgICB7CisjaWYgUExBVEZPUk0o
Q0hST01JVU0pCisgICAgICAgIFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqIHdlYkNvbnRl
eHQgPSBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnNoYXJlZE9mZnNjcmVlbkdyYXBoaWNz
Q29udGV4dDNEKCk7CisgICAgICAgIEdyQ29udGV4dCogZ3JDb250ZXh0ID0gV2ViS2l0OjpQbGF0
Zm9ybTo6Y3VycmVudCgpLT5zaGFyZWRPZmZzY3JlZW5HckNvbnRleHQoKTsKKyAgICAgICAgaWYg
KHdlYkNvbnRleHQgJiYgZ3JDb250ZXh0KQorICAgICAgICAgICAgbV9jb250ZXh0ID0gR3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9tRXh0ZXJuYWxXZWJD
b250ZXh0QW5kR3JDb250ZXh0KHdlYkNvbnRleHQsIGdyQ29udGV4dCk7CisjZWxzZQogICAgICAg
ICBHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRyaWJ1dGVzOwogICAgICAgICBhdHRy
aWJ1dGVzLmRlcHRoID0gZmFsc2U7CiAgICAgICAgIGF0dHJpYnV0ZXMuc3RlbmNpbCA9IHRydWU7
CiAgICAgICAgIGF0dHJpYnV0ZXMuYW50aWFsaWFzID0gZmFsc2U7CiAgICAgICAgIGF0dHJpYnV0
ZXMuc2hhcmVSZXNvdXJjZXMgPSB0cnVlOwogICAgICAgICBtX2NvbnRleHQgPSBHcmFwaGljc0Nv
bnRleHQzRDo6Y3JlYXRlKGF0dHJpYnV0ZXMsIDApOworI2VuZGlmCiAgICAgICAgIHJldHVybiBt
X2NvbnRleHQ7CiAgICAgfQogcHJpdmF0ZToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188124</attachid>
            <date>2013-02-13 11:09:58 -0800</date>
            <delta_ts>2013-02-13 11:13:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109345-20130213140626.patch</filename>
            <type>text/plain</type>
            <size>10611</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBkODVkYzNiNGNmZjgw
NGJhM2Y0MmQyMmIyNDIxMGM2MTQ2MDg4NWY4Li40NTQwYWUzNmU0NTdlYTE4YTIwNTM4NDliYjAw
YThkMWQxMDVkNTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMi0xMyAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBDcmVhdGUgdGhl
IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEIHRocm91Z2ggaXRzIG93biBtZXRob2QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KKworICAgICAgICBBZGQgUGxhdGZvcm0gQVBJ
IG1ldGhvZHMgdG8gZ2V0IHNoYXJlZCBjb250ZXh0cyBmcm9tIHRoZSBlbWJlZGRlci4KKworICAg
ICAgICAqIGNocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oOgorICAgICAgICAoUGxhdGZvcm0pOgor
ICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6c2hhcmVkT2Zmc2NyZWVuR3JhcGhpY3NDb250ZXh0
M0QpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6c2hhcmVkT2Zmc2NyZWVuR3JDb250ZXh0
KToKKwogMjAxMy0wMi0xMSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtjaHJvbWl1bV0gQWRkIFdlYlVuaXRUZXN0U3VwcG9ydDo6Y3JlYXRlTGF5ZXJU
cmVlVmlld0ZvclRlc3RpbmcgZm9yIHdlYmtpdF91bml0X3Rlc3RzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE2
ZDViYzVmOWRiOGUxNWNjZDk4ZDMzNjUxYzVmYmI2MzkzMjdjNi4uM2MxOGViYTAwMzIzMGI3MGUx
ZDQxNDZmMzViMGY2NjNlYjY2ZjI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEz
LTAyLTEzICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENy
ZWF0ZSB0aGUgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QgdGhyb3VnaCBpdHMgb3duIG1ldGhvZC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTM0NQor
CisgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgorCisgICAgICAgIEFsbG93IGNy
ZWF0aW5nIGEgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlIGZyb20gYW4gZXh0ZXJuYWxseSBvd25l
ZAorICAgICAgICBXZWJHcmFwaGljc0NvbnRleHQzRCBhbmQgR3JDb250ZXh0LiBUaGVuIGNyZWF0
ZSB0aGUgc2hhcmVkIGdyYXBoaWNzCisgICAgICAgIGNvbnRleHQgZnJvbSB0aGVzZSBwcm92aWRl
ZCBieSB0aGUgZW1iZWRkZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRFByaXZhdGU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3Jl
YXRlR3JhcGhpY3NDb250ZXh0RnJvbUV4dGVybmFsV2ViQ29udGV4dEFuZEdyQ29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmdyQ29udGV4dCk6Cisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuaDoKKyAgICAgICAgKEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OndlYkNvbnRleHQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzREltcGw6OmdldE9yQ3JlYXRlQ29udGV4
dCk6CisKIDIwMTMtMDItMTIgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSBFbGVtZW50OjplbnN1cmVBdHRyaWJ1dGVEYXRhKCkuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmggYi9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgKaW5kZXggYTdkZTNiYzhjNzMxY2QwMGQ1
MDdjYTk1MDI0ZThlYTNkZTM5MjFiMS4uOTc4NWVhZmUxZjYyM2UyZmVjNmE5ZTBmZTI2ZmNhMWFj
MDNhYmYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0
Zm9ybS5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaApA
QCAtNDQsNiArNDQsOCBAQAogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogI2luY2x1ZGUgIldlYlZl
Y3Rvci5oIgogCitjbGFzcyBHckNvbnRleHQ7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFz
cyBXZWJBdWRpb0J1czsKQEAgLTQ1MCw2ICs0NTIsMTQgQEAgcHVibGljOgogICAgIC8vIFJldHVy
bnMgbmV3bHkgYWxsb2NhdGVkIGFuZCBpbml0aWFsaXplZCBvZmZzY3JlZW4gV2ViR3JhcGhpY3ND
b250ZXh0M0QgaW5zdGFuY2UuCiAgICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogY3Jl
YXRlT2Zmc2NyZWVuR3JhcGhpY3NDb250ZXh0M0QoY29uc3QgV2ViR3JhcGhpY3NDb250ZXh0M0Q6
OkF0dHJpYnV0ZXMmKSB7IHJldHVybiAwOyB9CiAKKyAgICAvLyBNYXkgcmV0dXJuIG51bGwgaWYg
R1BVIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgLy8gUmV0dXJucyB0aGUgc2hhcmVkIFdlYkdyYXBo
aWNzQ29udGV4dDNELiBUaGlzIGlzIGEgc2luZ2xldG9uIG9iamVjdCBmb3IgdGhlIGVudGlyZSBw
cm9jZXNzLgorICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0QqIHNoYXJlZE9mZnNjcmVl
bkdyYXBoaWNzQ29udGV4dDNEKCkgeyByZXR1cm4gMDsgfQorCisgICAgLy8gTWF5IHJldHVybiBu
dWxsIGlmIEdQVSBpcyBub3Qgc3VwcG9ydGVkLgorICAgIC8vIFJldHVybnMgdGhlIHNoYXJlZCBH
ckNvbnRleHQuIFRoaXMgaXMgYSBzaW5nbGV0b24gb2JqZWN0IGZvciB0aGUgZW50aXJlIHByb2Nl
c3MuCisgICAgdmlydHVhbCBHckNvbnRleHQqIHNoYXJlZE9mZnNjcmVlbkdyQ29udGV4dCgpIHsg
cmV0dXJuIDA7IH0KKwogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGxhdGZvcm0gaXMgY2Fw
YWJsZSBvZiBwcm9kdWNpbmcgYW4gb2Zmc2NyZWVuIGNvbnRleHQgc3VpdGFibGUgZm9yIGFjY2Vs
ZXJhdGluZyAyZCBjYW52YXMuCiAgICAgLy8gVGhpcyB3aWxsIHJldHVybiBmYWxzZSBpZiB0aGUg
cGxhdGZvcm0gY2Fubm90IHByb21pc2UgdGhhdCBjb250ZXh0cyB3aWxsIGJlIHByZXNlcnZlZCBh
Y3Jvc3Mgb3BlcmF0aW9ucyBsaWtlCiAgICAgLy8gbG9ja2luZyB0aGUgc2NyZWVuIG9yIGlmIHRo
ZSBwbGF0Zm9ybSBjYW5ub3QgcHJvdmlkZSBhIGNvbnRleHQgd2l0aCBzdWl0YWJsZSBwZXJmb3Jt
YW5jZSBjaGFyYWN0ZXJpc3RpY3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZS5jcHAKaW5kZXggYTIzMDQ4MzkwMWNjMWRlZjg2YWFkNDY2N2ZjYjY4ZTUzODU2NTkxNC4uMDlj
MDY2M2FjZmQ0MTAwYzc0YjllMjI4NDAxOTk1YTYwMDg5NzkzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvR3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcApAQCAtNTcsNyArNTcsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAvLyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUKIAogR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoUGFzc093blB0cjxXZWJLaXQ6OldlYkdy
YXBoaWNzQ29udGV4dDNEPiB3ZWJDb250ZXh0LCBib29sIHByZXNlcnZlRHJhd2luZ0J1ZmZlcikK
LSAgICA6IG1faW1wbCh3ZWJDb250ZXh0KQorICAgIDogbV9pbXBsKHdlYkNvbnRleHQuZ2V0KCkp
CisgICAgLCBtX293bmVkV2ViQ29udGV4dCh3ZWJDb250ZXh0KQogICAgICwgbV9pbml0aWFsaXpl
ZEF2YWlsYWJsZUV4dGVuc2lvbnMoZmFsc2UpCiAgICAgLCBtX2xheWVyQ29tcG9zaXRlZChmYWxz
ZSkKICAgICAsIG1fcHJlc2VydmVEcmF3aW5nQnVmZmVyKHByZXNlcnZlRHJhd2luZ0J1ZmZlcikK
QEAgLTY2LDYgKzY3LDE3IEBAIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6R3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljCiB7CiB9CiAKK0dyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKFdlYktpdDo6V2Vi
R3JhcGhpY3NDb250ZXh0M0QqIHdlYkNvbnRleHQsIEdyQ29udGV4dCogZ3JDb250ZXh0LCBib29s
IHByZXNlcnZlRHJhd2luZ0J1ZmZlcikKKyAgICA6IG1faW1wbCh3ZWJDb250ZXh0KQorICAgICwg
bV9pbml0aWFsaXplZEF2YWlsYWJsZUV4dGVuc2lvbnMoZmFsc2UpCisgICAgLCBtX2xheWVyQ29t
cG9zaXRlZChmYWxzZSkKKyAgICAsIG1fcHJlc2VydmVEcmF3aW5nQnVmZmVyKHByZXNlcnZlRHJh
d2luZ0J1ZmZlcikKKyAgICAsIG1fcmVzb3VyY2VTYWZldHkoUmVzb3VyY2VTYWZldHlVbmtub3du
KQorICAgICwgbV9nckNvbnRleHQoZ3JDb250ZXh0KQoreworfQorCisKIEdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZTo6fkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSgpCiB7CiAgICAgaWYgKG1fZ3JD
b250ZXh0KSB7CkBAIC04Myw2ICs5NSwxNSBAQCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNE
PiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZybwogICAg
IHJldHVybiBjb250ZXh0LnJlbGVhc2UoKTsKIH0KIAorUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRl
eHQzRD4gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9t
RXh0ZXJuYWxXZWJDb250ZXh0QW5kR3JDb250ZXh0KFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0
M0QqIHdlYkNvbnRleHQsIEdyQ29udGV4dCogZ3JDb250ZXh0LCBib29sIHByZXNlcnZlRHJhd2lu
Z0J1ZmZlcikKK3sKKyAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQgPSBhZG9w
dFJlZihuZXcgR3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMo
KSwgMCkpOworCisgICAgT3duUHRyPEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZT4gcHJpdiA9IGFk
b3B0UHRyKG5ldyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUod2ViQ29udGV4dCwgZ3JDb250ZXh0
LCBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIpKTsKKyAgICBjb250ZXh0LT5tX3ByaXZhdGUgPSBwcml2
LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gY29udGV4dC5yZWxlYXNlKCk7Cit9CisKIFdlYktpdDo6
V2ViR3JhcGhpY3NDb250ZXh0M0QqIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6ZXh0cmFjdFdl
YkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KQogewogICAgIGlm
ICghY29udGV4dCkKQEAgLTEzMCw5ICsxNTEsMTAgQEAgR3JDb250ZXh0KiBHcmFwaGljc0NvbnRl
eHQzRFByaXZhdGU6OmdyQ29udGV4dCgpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaW50ZXJm
YWNlLT5mQ2FsbGJhY2sgPSBiaW5kV2ViR3JhcGhpY3NDb250ZXh0M0RHTENvbnRleHRDYWxsYmFj
azsKLSAgICBpbnRlcmZhY2UtPmZDYWxsYmFja0RhdGEgPSByZWludGVycHJldF9jYXN0PEdyR0xJ
bnRlcmZhY2VDYWxsYmFja0RhdGE+KG1faW1wbC5nZXQoKSk7CisgICAgaW50ZXJmYWNlLT5mQ2Fs
bGJhY2tEYXRhID0gcmVpbnRlcnByZXRfY2FzdDxHckdMSW50ZXJmYWNlQ2FsbGJhY2tEYXRhPiht
X2ltcGwpOwogCi0gICAgbV9nckNvbnRleHQucmVzZXQoR3JDb250ZXh0OjpDcmVhdGUoa09wZW5H
TF9HckJhY2tlbmQsIHJlaW50ZXJwcmV0X2Nhc3Q8R3JCYWNrZW5kQ29udGV4dD4oaW50ZXJmYWNl
LmdldCgpKSkpOworICAgIG1fb3duZWRHckNvbnRleHQucmVzZXQoR3JDb250ZXh0OjpDcmVhdGUo
a09wZW5HTF9HckJhY2tlbmQsIHJlaW50ZXJwcmV0X2Nhc3Q8R3JCYWNrZW5kQ29udGV4dD4oaW50
ZXJmYWNlLmdldCgpKSkpOworICAgIG1fZ3JDb250ZXh0ID0gbV9vd25lZEdyQ29udGV4dDsKICAg
ICBpZiAoIW1fZ3JDb250ZXh0KQogICAgICAgICByZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvR3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlLmgKaW5kZXggZDE5M2E2YzgzMmUzYjRmYWNlZjFlMzVjOTBjYzNm
ODcwZTIyZjFjZS4uYTQ0MWIwNjFlZjc2Y2NiOWNhZTc3NDhmNTdlODIxZDM5YWFmZjg3MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGlj
c0NvbnRleHQzRFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9zdXBwb3J0L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCkBAIC01NCw2ICs1NCw4IEBAIHB1
YmxpYzoKICAgICAvLyBiZSB1c2VkIG9uIGFueSBvdGhlciB0aHJlYWQuCiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21XZWJD
b250ZXh0KFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRD4sIGJvb2wgcHJl
c2VydmVEcmF3aW5nQnVmZmVyID0gZmFsc2UpOwogCisgICAgc3RhdGljIFBhc3NSZWZQdHI8R3Jh
cGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21FeHRlcm5hbFdlYkNvbnRl
eHRBbmRHckNvbnRleHQoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCosIEdyQ29udGV4dCos
IGJvb2wgcHJlc2VydmVEcmF3aW5nQnVmZmVyID0gZmFsc2UpOworCiAgICAgLy8gSGVscGVyIGZ1
bmN0aW9uIHRvIHByb3ZpZGUgYWNjZXNzIHRvIHRoZSBsb3dlci1sZXZlbCBXZWJHcmFwaGljc0Nv
bnRleHQzRCwKICAgICAvLyB3aGljaCBpcyBuZWVkZWQgZm9yIHN1Ym9yZGluYXRlIGNvbnRleHRz
IGxpa2UgV2ViR0wncyB0byBzaGFyZSByZXNvdXJjZXMKICAgICAvLyB3aXRoIHRoZSBjb21wb3Np
dG9yJ3MgY29udGV4dC4KQEAgLTYxLDcgKzYzLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKCk7CiAKLSAgICBXZWJLaXQ6OldlYkdyYXBoaWNzQ29u
dGV4dDNEKiB3ZWJDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9CisgICAg
V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCogd2ViQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJu
IG1faW1wbDsgfQogCiAgICAgR3JDb250ZXh0KiBnckNvbnRleHQoKTsKIApAQCAtODYsMTAgKzg4
LDEyIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUo
UGFzc093blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiwgYm9vbCBwcmVzZXJ2ZURy
YXdpbmdCdWZmZXIpOworICAgIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShXZWJLaXQ6OldlYkdy
YXBoaWNzQ29udGV4dDNEKiwgR3JDb250ZXh0KiwgYm9vbCBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIp
OwogCiAgICAgdm9pZCBpbml0aWFsaXplRXh0ZW5zaW9ucygpOwogCi0gICAgT3duUHRyPFdlYktp
dDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+IG1faW1wbDsKKyAgICBXZWJLaXQ6OldlYkdyYXBoaWNz
Q29udGV4dDNEKiBtX2ltcGw7CisgICAgT3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0
M0Q+IG1fb3duZWRXZWJDb250ZXh0OwogICAgIE93blB0cjxFeHRlbnNpb25zM0RDaHJvbWl1bT4g
bV9leHRlbnNpb25zOwogICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQzRENvbnRleHRMb3N0Q2Fs
bGJhY2tBZGFwdGVyPiBtX2NvbnRleHRMb3N0Q2FsbGJhY2tBZGFwdGVyOwogICAgIE93blB0cjxH
cmFwaGljc0NvbnRleHQzREVycm9yTWVzc2FnZUNhbGxiYWNrQWRhcHRlcj4gbV9lcnJvck1lc3Nh
Z2VDYWxsYmFja0FkYXB0ZXI7CkBAIC0xMTQsNyArMTE4LDggQEAgcHJpdmF0ZToKICAgICAvLyB1
c2VkIHRvIHJlc2l6ZSB0aGUgQ2FudmFzLgogICAgIFNrQml0bWFwIG1fcmVzaXppbmdCaXRtYXA7
CiAKLSAgICBTa0F1dG9UVW5yZWY8R3JDb250ZXh0PiBtX2dyQ29udGV4dDsKKyAgICBHckNvbnRl
eHQqIG1fZ3JDb250ZXh0OworICAgIFNrQXV0b1RVbnJlZjxHckNvbnRleHQ+IG1fb3duZWRHckNv
bnRleHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29u
dGV4dDNELmNwcAppbmRleCBhNzA3NGI3ZWVmZTdkMzBlOTgzMjIzYTJmOTA0N2IyNWM1MDU1YzZj
Li5iNmY1NGRkYTVjZGZjOTUxZjZiMGQ1YzYwNDQxYmMyOGEzYzk0MTAyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0
M0QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRH
cmFwaGljc0NvbnRleHQzRC5jcHAKQEAgLTI5LDYgKzI5LDExIEBACiAjaW5jbHVkZSAiU2hhcmVk
R3JhcGhpY3NDb250ZXh0M0QuaCIKIAogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgorI2lmIFBM
QVRGT1JNKENIUk9NSVVNKQorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIgor
I2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJHcmFwaGlj
c0NvbnRleHQzRC5oPgorI2VuZGlmCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsNiArNDMsMTcgQEAgcHVibGljOgogICAgIFNoYXJlZEdy
YXBoaWNzQ29udGV4dDNESW1wbCgpIDogbV9jb250ZXh0KDApIHsgfQogICAgIFBhc3NSZWZQdHI8
R3JhcGhpY3NDb250ZXh0M0Q+IGdldE9yQ3JlYXRlQ29udGV4dCgpCiAgICAgeworI2lmIFBMQVRG
T1JNKENIUk9NSVVNKQorICAgICAgICBXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiB3ZWJD
b250ZXh0ID0gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5zaGFyZWRPZmZzY3JlZW5HcmFw
aGljc0NvbnRleHQzRCgpOworICAgICAgICBHckNvbnRleHQqIGdyQ29udGV4dCA9IFdlYktpdDo6
UGxhdGZvcm06OmN1cnJlbnQoKS0+c2hhcmVkT2Zmc2NyZWVuR3JDb250ZXh0KCk7CisKKyAgICAg
ICAgaWYgKG1fY29udGV4dCAmJiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmV4dHJhY3RXZWJH
cmFwaGljc0NvbnRleHQzRChtX2NvbnRleHQuZ2V0KCkpID09IHdlYkNvbnRleHQpCisgICAgICAg
ICAgICByZXR1cm4gbV9jb250ZXh0OworCisgICAgICAgIG1fY29udGV4dC5jbGVhcigpOworICAg
ICAgICBpZiAod2ViQ29udGV4dCAmJiBnckNvbnRleHQpCisgICAgICAgICAgICBtX2NvbnRleHQg
PSBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21FeHRl
cm5hbFdlYkNvbnRleHRBbmRHckNvbnRleHQod2ViQ29udGV4dCwgZ3JDb250ZXh0KTsKKyNlbHNl
CiAgICAgICAgIC8vIElmIHdlIGxvc3QgdGhlIGNvbnRleHQsIG9yIGNhbid0IG1ha2UgaXQgY3Vy
cmVudCwgY3JlYXRlIGEgbmV3IG9uZS4KICAgICAgICAgaWYgKG1fY29udGV4dCAmJiAoIW1fY29u
dGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkgfHwgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LT5nZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCkgIT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PX0VS
Uk9SKSkpCiAgICAgICAgICAgICBtX2NvbnRleHQuY2xlYXIoKTsKQEAgLTU0LDcgKzcwLDcgQEAg
cHVibGljOgogCiAgICAgICAgIGlmIChtX2NvbnRleHQgJiYgd2FzQ3JlYXRlZCkKICAgICAgICAg
ICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5wdXNoR3JvdXBNYXJrZXJFWFQoIlNoYXJl
ZEdyYXBoaWNzQ29udGV4dCIpOwotCisjZW5kaWYKICAgICAgICAgcmV0dXJuIG1fY29udGV4dDsK
ICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188125</attachid>
            <date>2013-02-13 11:13:20 -0800</date>
            <delta_ts>2013-02-25 10:31:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109345-20130213140948.patch</filename>
            <type>text/plain</type>
            <size>10723</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBkODVkYzNiNGNmZjgw
NGJhM2Y0MmQyMmIyNDIxMGM2MTQ2MDg4NWY4Li40NTQwYWUzNmU0NTdlYTE4YTIwNTM4NDliYjAw
YThkMWQxMDVkNTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMi0xMyAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBDcmVhdGUgdGhl
IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEIHRocm91Z2ggaXRzIG93biBtZXRob2QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KKworICAgICAgICBBZGQgUGxhdGZvcm0gQVBJ
IG1ldGhvZHMgdG8gZ2V0IHNoYXJlZCBjb250ZXh0cyBmcm9tIHRoZSBlbWJlZGRlci4KKworICAg
ICAgICAqIGNocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oOgorICAgICAgICAoUGxhdGZvcm0pOgor
ICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6c2hhcmVkT2Zmc2NyZWVuR3JhcGhpY3NDb250ZXh0
M0QpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6c2hhcmVkT2Zmc2NyZWVuR3JDb250ZXh0
KToKKwogMjAxMy0wMi0xMSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtjaHJvbWl1bV0gQWRkIFdlYlVuaXRUZXN0U3VwcG9ydDo6Y3JlYXRlTGF5ZXJU
cmVlVmlld0ZvclRlc3RpbmcgZm9yIHdlYmtpdF91bml0X3Rlc3RzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE2
ZDViYzVmOWRiOGUxNWNjZDk4ZDMzNjUxYzVmYmI2MzkzMjdjNi4uM2MxOGViYTAwMzIzMGI3MGUx
ZDQxNDZmMzViMGY2NjNlYjY2ZjI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEz
LTAyLTEzICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENy
ZWF0ZSB0aGUgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QgdGhyb3VnaCBpdHMgb3duIG1ldGhvZC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTM0NQor
CisgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgorCisgICAgICAgIEFsbG93IGNy
ZWF0aW5nIGEgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlIGZyb20gYW4gZXh0ZXJuYWxseSBvd25l
ZAorICAgICAgICBXZWJHcmFwaGljc0NvbnRleHQzRCBhbmQgR3JDb250ZXh0LiBUaGVuIGNyZWF0
ZSB0aGUgc2hhcmVkIGdyYXBoaWNzCisgICAgICAgIGNvbnRleHQgZnJvbSB0aGVzZSBwcm92aWRl
ZCBieSB0aGUgZW1iZWRkZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRFByaXZhdGU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3Jl
YXRlR3JhcGhpY3NDb250ZXh0RnJvbUV4dGVybmFsV2ViQ29udGV4dEFuZEdyQ29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmdyQ29udGV4dCk6Cisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuaDoKKyAgICAgICAgKEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OndlYkNvbnRleHQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzREltcGw6OmdldE9yQ3JlYXRlQ29udGV4
dCk6CisKIDIwMTMtMDItMTIgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSBFbGVtZW50OjplbnN1cmVBdHRyaWJ1dGVEYXRhKCkuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmggYi9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgKaW5kZXggYTdkZTNiYzhjNzMxY2QwMGQ1
MDdjYTk1MDI0ZThlYTNkZTM5MjFiMS4uOTc4NWVhZmUxZjYyM2UyZmVjNmE5ZTBmZTI2ZmNhMWFj
MDNhYmYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0
Zm9ybS5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaApA
QCAtNDQsNiArNDQsOCBAQAogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogI2luY2x1ZGUgIldlYlZl
Y3Rvci5oIgogCitjbGFzcyBHckNvbnRleHQ7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFz
cyBXZWJBdWRpb0J1czsKQEAgLTQ1MCw2ICs0NTIsMTQgQEAgcHVibGljOgogICAgIC8vIFJldHVy
bnMgbmV3bHkgYWxsb2NhdGVkIGFuZCBpbml0aWFsaXplZCBvZmZzY3JlZW4gV2ViR3JhcGhpY3ND
b250ZXh0M0QgaW5zdGFuY2UuCiAgICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogY3Jl
YXRlT2Zmc2NyZWVuR3JhcGhpY3NDb250ZXh0M0QoY29uc3QgV2ViR3JhcGhpY3NDb250ZXh0M0Q6
OkF0dHJpYnV0ZXMmKSB7IHJldHVybiAwOyB9CiAKKyAgICAvLyBNYXkgcmV0dXJuIG51bGwgaWYg
R1BVIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgLy8gUmV0dXJucyB0aGUgc2hhcmVkIFdlYkdyYXBo
aWNzQ29udGV4dDNELiBUaGlzIGlzIGEgc2luZ2xldG9uIG9iamVjdCBmb3IgdGhlIGVudGlyZSBw
cm9jZXNzLgorICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0QqIHNoYXJlZE9mZnNjcmVl
bkdyYXBoaWNzQ29udGV4dDNEKCkgeyByZXR1cm4gMDsgfQorCisgICAgLy8gTWF5IHJldHVybiBu
dWxsIGlmIEdQVSBpcyBub3Qgc3VwcG9ydGVkLgorICAgIC8vIFJldHVybnMgdGhlIHNoYXJlZCBH
ckNvbnRleHQuIFRoaXMgaXMgYSBzaW5nbGV0b24gb2JqZWN0IGZvciB0aGUgZW50aXJlIHByb2Nl
c3MuCisgICAgdmlydHVhbCBHckNvbnRleHQqIHNoYXJlZE9mZnNjcmVlbkdyQ29udGV4dCgpIHsg
cmV0dXJuIDA7IH0KKwogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGxhdGZvcm0gaXMgY2Fw
YWJsZSBvZiBwcm9kdWNpbmcgYW4gb2Zmc2NyZWVuIGNvbnRleHQgc3VpdGFibGUgZm9yIGFjY2Vs
ZXJhdGluZyAyZCBjYW52YXMuCiAgICAgLy8gVGhpcyB3aWxsIHJldHVybiBmYWxzZSBpZiB0aGUg
cGxhdGZvcm0gY2Fubm90IHByb21pc2UgdGhhdCBjb250ZXh0cyB3aWxsIGJlIHByZXNlcnZlZCBh
Y3Jvc3Mgb3BlcmF0aW9ucyBsaWtlCiAgICAgLy8gbG9ja2luZyB0aGUgc2NyZWVuIG9yIGlmIHRo
ZSBwbGF0Zm9ybSBjYW5ub3QgcHJvdmlkZSBhIGNvbnRleHQgd2l0aCBzdWl0YWJsZSBwZXJmb3Jt
YW5jZSBjaGFyYWN0ZXJpc3RpY3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZS5jcHAKaW5kZXggYTIzMDQ4MzkwMWNjMWRlZjg2YWFkNDY2N2ZjYjY4ZTUzODU2NTkxNC4uMDlj
MDY2M2FjZmQ0MTAwYzc0YjllMjI4NDAxOTk1YTYwMDg5NzkzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvR3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcApAQCAtNTcsNyArNTcsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAvLyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUKIAogR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoUGFzc093blB0cjxXZWJLaXQ6OldlYkdy
YXBoaWNzQ29udGV4dDNEPiB3ZWJDb250ZXh0LCBib29sIHByZXNlcnZlRHJhd2luZ0J1ZmZlcikK
LSAgICA6IG1faW1wbCh3ZWJDb250ZXh0KQorICAgIDogbV9pbXBsKHdlYkNvbnRleHQuZ2V0KCkp
CisgICAgLCBtX293bmVkV2ViQ29udGV4dCh3ZWJDb250ZXh0KQogICAgICwgbV9pbml0aWFsaXpl
ZEF2YWlsYWJsZUV4dGVuc2lvbnMoZmFsc2UpCiAgICAgLCBtX2xheWVyQ29tcG9zaXRlZChmYWxz
ZSkKICAgICAsIG1fcHJlc2VydmVEcmF3aW5nQnVmZmVyKHByZXNlcnZlRHJhd2luZ0J1ZmZlcikK
QEAgLTY2LDYgKzY3LDE3IEBAIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6R3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljCiB7CiB9CiAKK0dyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKFdlYktpdDo6V2Vi
R3JhcGhpY3NDb250ZXh0M0QqIHdlYkNvbnRleHQsIEdyQ29udGV4dCogZ3JDb250ZXh0LCBib29s
IHByZXNlcnZlRHJhd2luZ0J1ZmZlcikKKyAgICA6IG1faW1wbCh3ZWJDb250ZXh0KQorICAgICwg
bV9pbml0aWFsaXplZEF2YWlsYWJsZUV4dGVuc2lvbnMoZmFsc2UpCisgICAgLCBtX2xheWVyQ29t
cG9zaXRlZChmYWxzZSkKKyAgICAsIG1fcHJlc2VydmVEcmF3aW5nQnVmZmVyKHByZXNlcnZlRHJh
d2luZ0J1ZmZlcikKKyAgICAsIG1fcmVzb3VyY2VTYWZldHkoUmVzb3VyY2VTYWZldHlVbmtub3du
KQorICAgICwgbV9nckNvbnRleHQoZ3JDb250ZXh0KQoreworfQorCisKIEdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZTo6fkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSgpCiB7CiAgICAgaWYgKG1fZ3JD
b250ZXh0KSB7CkBAIC04Myw2ICs5NSwxNSBAQCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNE
PiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZybwogICAg
IHJldHVybiBjb250ZXh0LnJlbGVhc2UoKTsKIH0KIAorUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRl
eHQzRD4gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9t
RXh0ZXJuYWxXZWJDb250ZXh0QW5kR3JDb250ZXh0KFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0
M0QqIHdlYkNvbnRleHQsIEdyQ29udGV4dCogZ3JDb250ZXh0LCBib29sIHByZXNlcnZlRHJhd2lu
Z0J1ZmZlcikKK3sKKyAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQgPSBhZG9w
dFJlZihuZXcgR3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMo
KSwgMCkpOworCisgICAgT3duUHRyPEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZT4gcHJpdiA9IGFk
b3B0UHRyKG5ldyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUod2ViQ29udGV4dCwgZ3JDb250ZXh0
LCBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIpKTsKKyAgICBjb250ZXh0LT5tX3ByaXZhdGUgPSBwcml2
LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gY29udGV4dC5yZWxlYXNlKCk7Cit9CisKIFdlYktpdDo6
V2ViR3JhcGhpY3NDb250ZXh0M0QqIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6ZXh0cmFjdFdl
YkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KQogewogICAgIGlm
ICghY29udGV4dCkKQEAgLTEzMCw5ICsxNTEsMTAgQEAgR3JDb250ZXh0KiBHcmFwaGljc0NvbnRl
eHQzRFByaXZhdGU6OmdyQ29udGV4dCgpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaW50ZXJm
YWNlLT5mQ2FsbGJhY2sgPSBiaW5kV2ViR3JhcGhpY3NDb250ZXh0M0RHTENvbnRleHRDYWxsYmFj
azsKLSAgICBpbnRlcmZhY2UtPmZDYWxsYmFja0RhdGEgPSByZWludGVycHJldF9jYXN0PEdyR0xJ
bnRlcmZhY2VDYWxsYmFja0RhdGE+KG1faW1wbC5nZXQoKSk7CisgICAgaW50ZXJmYWNlLT5mQ2Fs
bGJhY2tEYXRhID0gcmVpbnRlcnByZXRfY2FzdDxHckdMSW50ZXJmYWNlQ2FsbGJhY2tEYXRhPiht
X2ltcGwpOwogCi0gICAgbV9nckNvbnRleHQucmVzZXQoR3JDb250ZXh0OjpDcmVhdGUoa09wZW5H
TF9HckJhY2tlbmQsIHJlaW50ZXJwcmV0X2Nhc3Q8R3JCYWNrZW5kQ29udGV4dD4oaW50ZXJmYWNl
LmdldCgpKSkpOworICAgIG1fb3duZWRHckNvbnRleHQucmVzZXQoR3JDb250ZXh0OjpDcmVhdGUo
a09wZW5HTF9HckJhY2tlbmQsIHJlaW50ZXJwcmV0X2Nhc3Q8R3JCYWNrZW5kQ29udGV4dD4oaW50
ZXJmYWNlLmdldCgpKSkpOworICAgIG1fZ3JDb250ZXh0ID0gbV9vd25lZEdyQ29udGV4dDsKICAg
ICBpZiAoIW1fZ3JDb250ZXh0KQogICAgICAgICByZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvR3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlLmgKaW5kZXggZDE5M2E2YzgzMmUzYjRmYWNlZjFlMzVjOTBjYzNm
ODcwZTIyZjFjZS4uYTQ0MWIwNjFlZjc2Y2NiOWNhZTc3NDhmNTdlODIxZDM5YWFmZjg3MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGlj
c0NvbnRleHQzRFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9zdXBwb3J0L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCkBAIC01NCw2ICs1NCw4IEBAIHB1
YmxpYzoKICAgICAvLyBiZSB1c2VkIG9uIGFueSBvdGhlciB0aHJlYWQuCiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21XZWJD
b250ZXh0KFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRD4sIGJvb2wgcHJl
c2VydmVEcmF3aW5nQnVmZmVyID0gZmFsc2UpOwogCisgICAgc3RhdGljIFBhc3NSZWZQdHI8R3Jh
cGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21FeHRlcm5hbFdlYkNvbnRl
eHRBbmRHckNvbnRleHQoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCosIEdyQ29udGV4dCos
IGJvb2wgcHJlc2VydmVEcmF3aW5nQnVmZmVyID0gZmFsc2UpOworCiAgICAgLy8gSGVscGVyIGZ1
bmN0aW9uIHRvIHByb3ZpZGUgYWNjZXNzIHRvIHRoZSBsb3dlci1sZXZlbCBXZWJHcmFwaGljc0Nv
bnRleHQzRCwKICAgICAvLyB3aGljaCBpcyBuZWVkZWQgZm9yIHN1Ym9yZGluYXRlIGNvbnRleHRz
IGxpa2UgV2ViR0wncyB0byBzaGFyZSByZXNvdXJjZXMKICAgICAvLyB3aXRoIHRoZSBjb21wb3Np
dG9yJ3MgY29udGV4dC4KQEAgLTYxLDcgKzYzLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKCk7CiAKLSAgICBXZWJLaXQ6OldlYkdyYXBoaWNzQ29u
dGV4dDNEKiB3ZWJDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9CisgICAg
V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCogd2ViQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJu
IG1faW1wbDsgfQogCiAgICAgR3JDb250ZXh0KiBnckNvbnRleHQoKTsKIApAQCAtODYsMTAgKzg4
LDEyIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUo
UGFzc093blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiwgYm9vbCBwcmVzZXJ2ZURy
YXdpbmdCdWZmZXIpOworICAgIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShXZWJLaXQ6OldlYkdy
YXBoaWNzQ29udGV4dDNEKiwgR3JDb250ZXh0KiwgYm9vbCBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIp
OwogCiAgICAgdm9pZCBpbml0aWFsaXplRXh0ZW5zaW9ucygpOwogCi0gICAgT3duUHRyPFdlYktp
dDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+IG1faW1wbDsKKyAgICBXZWJLaXQ6OldlYkdyYXBoaWNz
Q29udGV4dDNEKiBtX2ltcGw7CisgICAgT3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0
M0Q+IG1fb3duZWRXZWJDb250ZXh0OwogICAgIE93blB0cjxFeHRlbnNpb25zM0RDaHJvbWl1bT4g
bV9leHRlbnNpb25zOwogICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQzRENvbnRleHRMb3N0Q2Fs
bGJhY2tBZGFwdGVyPiBtX2NvbnRleHRMb3N0Q2FsbGJhY2tBZGFwdGVyOwogICAgIE93blB0cjxH
cmFwaGljc0NvbnRleHQzREVycm9yTWVzc2FnZUNhbGxiYWNrQWRhcHRlcj4gbV9lcnJvck1lc3Nh
Z2VDYWxsYmFja0FkYXB0ZXI7CkBAIC0xMTQsNyArMTE4LDggQEAgcHJpdmF0ZToKICAgICAvLyB1
c2VkIHRvIHJlc2l6ZSB0aGUgQ2FudmFzLgogICAgIFNrQml0bWFwIG1fcmVzaXppbmdCaXRtYXA7
CiAKLSAgICBTa0F1dG9UVW5yZWY8R3JDb250ZXh0PiBtX2dyQ29udGV4dDsKKyAgICBHckNvbnRl
eHQqIG1fZ3JDb250ZXh0OworICAgIFNrQXV0b1RVbnJlZjxHckNvbnRleHQ+IG1fb3duZWRHckNv
bnRleHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29u
dGV4dDNELmNwcAppbmRleCBhNzA3NGI3ZWVmZTdkMzBlOTgzMjIzYTJmOTA0N2IyNWM1MDU1YzZj
Li41NzY1OTY5MDNjMjExY2NjMWNmZTFiMjI4YWFjMTYwODRhNGQ2MDJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0
M0QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRH
cmFwaGljc0NvbnRleHQzRC5jcHAKQEAgLTI5LDYgKzI5LDExIEBACiAjaW5jbHVkZSAiU2hhcmVk
R3JhcGhpY3NDb250ZXh0M0QuaCIKIAogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgorI2lmIFBM
QVRGT1JNKENIUk9NSVVNKQorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIgor
I2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJHcmFwaGlj
c0NvbnRleHQzRC5oPgorI2VuZGlmCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsNiArNDMsMjAgQEAgcHVibGljOgogICAgIFNoYXJlZEdy
YXBoaWNzQ29udGV4dDNESW1wbCgpIDogbV9jb250ZXh0KDApIHsgfQogICAgIFBhc3NSZWZQdHI8
R3JhcGhpY3NDb250ZXh0M0Q+IGdldE9yQ3JlYXRlQ29udGV4dCgpCiAgICAgeworI2lmIFBMQVRG
T1JNKENIUk9NSVVNKQorICAgICAgICBXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiB3ZWJD
b250ZXh0ID0gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5zaGFyZWRPZmZzY3JlZW5HcmFw
aGljc0NvbnRleHQzRCgpOworICAgICAgICBHckNvbnRleHQqIGdyQ29udGV4dCA9IFdlYktpdDo6
UGxhdGZvcm06OmN1cnJlbnQoKS0+c2hhcmVkT2Zmc2NyZWVuR3JDb250ZXh0KCk7CisKKyAgICAg
ICAgaWYgKG1fY29udGV4dCAmJiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmV4dHJhY3RXZWJH
cmFwaGljc0NvbnRleHQzRChtX2NvbnRleHQuZ2V0KCkpID09IHdlYkNvbnRleHQpCisgICAgICAg
ICAgICByZXR1cm4gbV9jb250ZXh0OworCisgICAgICAgIG1fY29udGV4dC5jbGVhcigpOworICAg
ICAgICBpZiAod2ViQ29udGV4dCAmJiBnckNvbnRleHQpCisgICAgICAgICAgICBtX2NvbnRleHQg
PSBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21FeHRl
cm5hbFdlYkNvbnRleHRBbmRHckNvbnRleHQod2ViQ29udGV4dCwgZ3JDb250ZXh0KTsKKworICAg
ICAgICBpZiAobV9jb250ZXh0KQorICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25z
KCktPnB1c2hHcm91cE1hcmtlckVYVCgiU2hhcmVkR3JhcGhpY3NDb250ZXh0Iik7CisjZWxzZQog
ICAgICAgICAvLyBJZiB3ZSBsb3N0IHRoZSBjb250ZXh0LCBvciBjYW4ndCBtYWtlIGl0IGN1cnJl
bnQsIGNyZWF0ZSBhIG5ldyBvbmUuCiAgICAgICAgIGlmIChtX2NvbnRleHQgJiYgKCFtX2NvbnRl
eHQtPm1ha2VDb250ZXh0Q3VycmVudCgpIHx8IChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+
Z2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpICE9IEdyYXBoaWNzQ29udGV4dDNEOjpOT19FUlJP
UikpKQogICAgICAgICAgICAgbV9jb250ZXh0LmNsZWFyKCk7CkBAIC01NCw3ICs3Myw3IEBAIHB1
YmxpYzoKIAogICAgICAgICBpZiAobV9jb250ZXh0ICYmIHdhc0NyZWF0ZWQpCiAgICAgICAgICAg
ICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+cHVzaEdyb3VwTWFya2VyRVhUKCJTaGFyZWRH
cmFwaGljc0NvbnRleHQiKTsKLQorI2VuZGlmCiAgICAgICAgIHJldHVybiBtX2NvbnRleHQ7CiAg
ICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190089</attachid>
            <date>2013-02-25 10:32:01 -0800</date>
            <delta_ts>2013-02-25 14:41:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109345-20130225132816.patch</filename>
            <type>text/plain</type>
            <size>12232</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzOTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBmYTVlMzBjNDc4NTcy
MjY5N2I2YjRiZTkxMjEyZTBiNGE4MWFiODJmLi41MjEwMDM2ODJjNDU1M2M3MjNiZDY1YmU3NWRj
YmZhMmE2NGNiYzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMi0yNSAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBDcmVhdGUgdGhl
IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEIHRocm91Z2ggaXRzIG93biBtZXRob2QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgUGxhdGZvcm0gQVBJ
IG1ldGhvZHMgdG8gZ2V0IHNoYXJlZCBjb250ZXh0cyBmcm9tIHRoZSBlbWJlZGRlci4KKworICAg
ICAgICAqIGNocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oOgorICAgICAgICAoUGxhdGZvcm0pOgor
ICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6c2hhcmVkT2Zmc2NyZWVuR3JhcGhpY3NDb250ZXh0
M0QpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6c2hhcmVkT2Zmc2NyZWVuR3JDb250ZXh0
KToKKwogMjAxMy0wMi0yMiAgQWxpIEp1bWEgIDxhanVtYUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBSZWdpc3RlciBuZXdseS1jcmVhdGVkIGxheWVycyBmb3IgYW5pbWF0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggZTNmZmRiNzFmYzljYzkzYjIxNmE4MjUwNDNhNjVkN2I4YzM1MTIzZC4u
MzNkYjViM2U4MTkwODU5YjhiYTdhNjJlMDg1ZjcwZjE1YjhlYTYyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI5IEBACisyMDEzLTAyLTI1ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIENyZWF0ZSB0aGUgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QgdGhyb3Vn
aCBpdHMgb3duIG1ldGhvZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwOTM0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFsbG93IGNyZWF0aW5nIGEgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlIGZyb20g
YW4gZXh0ZXJuYWxseSBvd25lZAorICAgICAgICBXZWJHcmFwaGljc0NvbnRleHQzRCBhbmQgR3JD
b250ZXh0LiBUaGVuIGNyZWF0ZSB0aGUgc2hhcmVkIGdyYXBoaWNzCisgICAgICAgIGNvbnRleHQg
ZnJvbSB0aGVzZSBwcm92aWRlZCBieSB0aGUgZW1iZWRkZXIuCisKKyAgICAgICAgVGhpcyBmYWxs
cyBiYWNrIHRvIHRoZSBvbGQgcGF0aCBpZiB0aGUgbmV3IG1ldGhvZHMgcmV0dXJuIE5VTEwgdG8K
KyAgICAgICAgbGV0IHVzIGxhbmQgdGhpcyBpbW1lZGlhdGVseSBhbmQgdGhlbiB0cmFuc2l0aW9u
IHRoZSBjaHJvbWl1bSBzaWRlCisgICAgICAgIG92ZXIgdG8gdGhpcyBwYXRoLgorCisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpHcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21FeHRlcm5h
bFdlYkNvbnRleHRBbmRHckNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlOjpnckNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1
cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmg6CisgICAgICAgIChHcmFwaGljc0NvbnRl
eHQzRFByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
Ojp3ZWJDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkR3JhcGhpY3NDb250
ZXh0M0RJbXBsOjpnZXRPckNyZWF0ZUNvbnRleHQpOgorCiAyMDEzLTAyLTI1ICBBbmRyZWFzIEts
aW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWR1Y2UgYW1vdW50IG9mIGNvZGUg
dGhhdCBpbmNsdWRlcyBTdHlsZVByb3BlcnR5U2V0LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvUGxhdGZvcm0uaAppbmRleCBlZTE4MGNiMGY2YzgzMWRkODMxNzgyMzQwM2E5OWEz
YTZkZDJmNzI2Li5iMDJlOWEyMmI5OTQ4OTNjOTc1MzVlMzc2YzJhYThmMGE2YzA0NmJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgKKysrIGIv
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oCkBAIC00NCw2ICs0NCw4
IEBACiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViVmVjdG9yLmgiCiAKK2Ns
YXNzIEdyQ29udGV4dDsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkF1ZGlvQnVz
OwpAQCAtNDUxLDYgKzQ1MywxOCBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyBuZXdseSBhbGxv
Y2F0ZWQgYW5kIGluaXRpYWxpemVkIG9mZnNjcmVlbiBXZWJHcmFwaGljc0NvbnRleHQzRCBpbnN0
YW5jZS4KICAgICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjcmVhdGVPZmZzY3JlZW5H
cmFwaGljc0NvbnRleHQzRChjb25zdCBXZWJHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyYp
IHsgcmV0dXJuIDA7IH0KIAorICAgIC8vIE1heSByZXR1cm4gbnVsbCBpZiBHUFUgaXMgbm90IHN1
cHBvcnRlZC4KKyAgICAvLyBSZXR1cm5zIHRoZSBzaGFyZWQgV2ViR3JhcGhpY3NDb250ZXh0M0Qu
IFRoaXMgaXMgYSBzaW5nbGV0b24gb2JqZWN0IGZvcgorICAgIC8vIHRoZSBlbnRpcmUgcHJvY2Vz
cy4gQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIG1heSBkZXN0cm95IGJvdGggdGhlIHNoYXJlZAorICAg
IC8vIG9mZnNjcmVlbiBXZWJHcmFwaGljc0NvbnRleHQzRCBhbmQgR3JDb250ZXh0IHBvaW50ZXJz
IGxhc3QgcmV0dXJuZWQsIHNvCisgICAgLy8gaXQgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGZyb20g
YSBzaW5nbGUgc2l0ZS4gVGhlIGNyZWF0ZWROZXcgcGFyYW1ldGVyIGlzCisgICAgLy8gc2V0IHRv
IHRydWUgd2hlbiBhIG5ldyBjb250ZXh0IHdhcyBjcmVhdGVkIHRvIHNlcnZpY2UgdGhlIHJlcXVl
c3QuCisgICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogc2hhcmVkT2Zmc2NyZWVuR3Jh
cGhpY3NDb250ZXh0M0QoYm9vbCogY3JlYXRlZE5ldykgeyByZXR1cm4gMDsgfQorCisgICAgLy8g
TWF5IHJldHVybiBudWxsIGlmIEdQVSBpcyBub3Qgc3VwcG9ydGVkLgorICAgIC8vIFJldHVybnMg
dGhlIHNoYXJlZCBHckNvbnRleHQuIFRoaXMgaXMgYSBzaW5nbGV0b24gb2JqZWN0IGZvciB0aGUg
ZW50aXJlIHByb2Nlc3MuCisgICAgdmlydHVhbCBHckNvbnRleHQqIHNoYXJlZE9mZnNjcmVlbkdy
Q29udGV4dCgpIHsgcmV0dXJuIDA7IH0KKwogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGxh
dGZvcm0gaXMgY2FwYWJsZSBvZiBwcm9kdWNpbmcgYW4gb2Zmc2NyZWVuIGNvbnRleHQgc3VpdGFi
bGUgZm9yIGFjY2VsZXJhdGluZyAyZCBjYW52YXMuCiAgICAgLy8gVGhpcyB3aWxsIHJldHVybiBm
YWxzZSBpZiB0aGUgcGxhdGZvcm0gY2Fubm90IHByb21pc2UgdGhhdCBjb250ZXh0cyB3aWxsIGJl
IHByZXNlcnZlZCBhY3Jvc3Mgb3BlcmF0aW9ucyBsaWtlCiAgICAgLy8gbG9ja2luZyB0aGUgc2Ny
ZWVuIG9yIGlmIHRoZSBwbGF0Zm9ybSBjYW5ub3QgcHJvdmlkZSBhIGNvbnRleHQgd2l0aCBzdWl0
YWJsZSBwZXJmb3JtYW5jZSBjaGFyYWN0ZXJpc3RpY3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZS5jcHAKaW5kZXggYTIzMDQ4MzkwMWNjMWRlZjg2YWFkNDY2N2ZjYjY4ZTUz
ODU2NTkxNC4uMDljMDY2M2FjZmQ0MTAwYzc0YjllMjI4NDAxOTk1YTYwMDg5NzkzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L3N1cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcApAQCAtNTcsNyArNTcsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUKIAogR3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoUGFzc093blB0cjxX
ZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiB3ZWJDb250ZXh0LCBib29sIHByZXNlcnZlRHJh
d2luZ0J1ZmZlcikKLSAgICA6IG1faW1wbCh3ZWJDb250ZXh0KQorICAgIDogbV9pbXBsKHdlYkNv
bnRleHQuZ2V0KCkpCisgICAgLCBtX293bmVkV2ViQ29udGV4dCh3ZWJDb250ZXh0KQogICAgICwg
bV9pbml0aWFsaXplZEF2YWlsYWJsZUV4dGVuc2lvbnMoZmFsc2UpCiAgICAgLCBtX2xheWVyQ29t
cG9zaXRlZChmYWxzZSkKICAgICAsIG1fcHJlc2VydmVEcmF3aW5nQnVmZmVyKHByZXNlcnZlRHJh
d2luZ0J1ZmZlcikKQEAgLTY2LDYgKzY3LDE3IEBAIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljCiB7
CiB9CiAKK0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
KFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqIHdlYkNvbnRleHQsIEdyQ29udGV4dCogZ3JD
b250ZXh0LCBib29sIHByZXNlcnZlRHJhd2luZ0J1ZmZlcikKKyAgICA6IG1faW1wbCh3ZWJDb250
ZXh0KQorICAgICwgbV9pbml0aWFsaXplZEF2YWlsYWJsZUV4dGVuc2lvbnMoZmFsc2UpCisgICAg
LCBtX2xheWVyQ29tcG9zaXRlZChmYWxzZSkKKyAgICAsIG1fcHJlc2VydmVEcmF3aW5nQnVmZmVy
KHByZXNlcnZlRHJhd2luZ0J1ZmZlcikKKyAgICAsIG1fcmVzb3VyY2VTYWZldHkoUmVzb3VyY2VT
YWZldHlVbmtub3duKQorICAgICwgbV9nckNvbnRleHQoZ3JDb250ZXh0KQoreworfQorCisKIEdy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6fkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSgpCiB7CiAg
ICAgaWYgKG1fZ3JDb250ZXh0KSB7CkBAIC04Myw2ICs5NSwxNSBAQCBQYXNzUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29u
dGV4dEZybwogICAgIHJldHVybiBjb250ZXh0LnJlbGVhc2UoKTsKIH0KIAorUGFzc1JlZlB0cjxH
cmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGlj
c0NvbnRleHRGcm9tRXh0ZXJuYWxXZWJDb250ZXh0QW5kR3JDb250ZXh0KFdlYktpdDo6V2ViR3Jh
cGhpY3NDb250ZXh0M0QqIHdlYkNvbnRleHQsIEdyQ29udGV4dCogZ3JDb250ZXh0LCBib29sIHBy
ZXNlcnZlRHJhd2luZ0J1ZmZlcikKK3sKKyAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNv
bnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0Q6
OkF0dHJpYnV0ZXMoKSwgMCkpOworCisgICAgT3duUHRyPEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZT4gcHJpdiA9IGFkb3B0UHRyKG5ldyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUod2ViQ29udGV4
dCwgZ3JDb250ZXh0LCBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIpKTsKKyAgICBjb250ZXh0LT5tX3By
aXZhdGUgPSBwcml2LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gY29udGV4dC5yZWxlYXNlKCk7Cit9
CisKIFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZTo6ZXh0cmFjdFdlYkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0
KQogewogICAgIGlmICghY29udGV4dCkKQEAgLTEzMCw5ICsxNTEsMTAgQEAgR3JDb250ZXh0KiBH
cmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmdyQ29udGV4dCgpCiAgICAgICAgIHJldHVybiAwOwog
CiAgICAgaW50ZXJmYWNlLT5mQ2FsbGJhY2sgPSBiaW5kV2ViR3JhcGhpY3NDb250ZXh0M0RHTENv
bnRleHRDYWxsYmFjazsKLSAgICBpbnRlcmZhY2UtPmZDYWxsYmFja0RhdGEgPSByZWludGVycHJl
dF9jYXN0PEdyR0xJbnRlcmZhY2VDYWxsYmFja0RhdGE+KG1faW1wbC5nZXQoKSk7CisgICAgaW50
ZXJmYWNlLT5mQ2FsbGJhY2tEYXRhID0gcmVpbnRlcnByZXRfY2FzdDxHckdMSW50ZXJmYWNlQ2Fs
bGJhY2tEYXRhPihtX2ltcGwpOwogCi0gICAgbV9nckNvbnRleHQucmVzZXQoR3JDb250ZXh0OjpD
cmVhdGUoa09wZW5HTF9HckJhY2tlbmQsIHJlaW50ZXJwcmV0X2Nhc3Q8R3JCYWNrZW5kQ29udGV4
dD4oaW50ZXJmYWNlLmdldCgpKSkpOworICAgIG1fb3duZWRHckNvbnRleHQucmVzZXQoR3JDb250
ZXh0OjpDcmVhdGUoa09wZW5HTF9HckJhY2tlbmQsIHJlaW50ZXJwcmV0X2Nhc3Q8R3JCYWNrZW5k
Q29udGV4dD4oaW50ZXJmYWNlLmdldCgpKSkpOworICAgIG1fZ3JDb250ZXh0ID0gbV9vd25lZEdy
Q29udGV4dDsKICAgICBpZiAoIW1fZ3JDb250ZXh0KQogICAgICAgICByZXR1cm4gMDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGlj
c0NvbnRleHQzRFByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1
cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKaW5kZXggZDE5M2E2YzgzMmUzYjRmYWNl
ZjFlMzVjOTBjYzNmODcwZTIyZjFjZS4uYTQ0MWIwNjFlZjc2Y2NiOWNhZTc3NDhmNTdlODIxZDM5
YWFmZjg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3Vw
cG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCkBAIC01NCw2
ICs1NCw4IEBAIHB1YmxpYzoKICAgICAvLyBiZSB1c2VkIG9uIGFueSBvdGhlciB0aHJlYWQuCiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUdyYXBoaWNzQ29u
dGV4dEZyb21XZWJDb250ZXh0KFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQz
RD4sIGJvb2wgcHJlc2VydmVEcmF3aW5nQnVmZmVyID0gZmFsc2UpOwogCisgICAgc3RhdGljIFBh
c3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21FeHRl
cm5hbFdlYkNvbnRleHRBbmRHckNvbnRleHQoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCos
IEdyQ29udGV4dCosIGJvb2wgcHJlc2VydmVEcmF3aW5nQnVmZmVyID0gZmFsc2UpOworCiAgICAg
Ly8gSGVscGVyIGZ1bmN0aW9uIHRvIHByb3ZpZGUgYWNjZXNzIHRvIHRoZSBsb3dlci1sZXZlbCBX
ZWJHcmFwaGljc0NvbnRleHQzRCwKICAgICAvLyB3aGljaCBpcyBuZWVkZWQgZm9yIHN1Ym9yZGlu
YXRlIGNvbnRleHRzIGxpa2UgV2ViR0wncyB0byBzaGFyZSByZXNvdXJjZXMKICAgICAvLyB3aXRo
IHRoZSBjb21wb3NpdG9yJ3MgY29udGV4dC4KQEAgLTYxLDcgKzYzLDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB+R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKCk7CiAKLSAgICBXZWJLaXQ6Oldl
YkdyYXBoaWNzQ29udGV4dDNEKiB3ZWJDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdl
dCgpOyB9CisgICAgV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCogd2ViQ29udGV4dCgpIGNv
bnN0IHsgcmV0dXJuIG1faW1wbDsgfQogCiAgICAgR3JDb250ZXh0KiBnckNvbnRleHQoKTsKIApA
QCAtODYsMTAgKzg4LDEyIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBHcmFwaGljc0NvbnRl
eHQzRFByaXZhdGUoUGFzc093blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiwgYm9v
bCBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIpOworICAgIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShX
ZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiwgR3JDb250ZXh0KiwgYm9vbCBwcmVzZXJ2ZURy
YXdpbmdCdWZmZXIpOwogCiAgICAgdm9pZCBpbml0aWFsaXplRXh0ZW5zaW9ucygpOwogCi0gICAg
T3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+IG1faW1wbDsKKyAgICBXZWJLaXQ6
OldlYkdyYXBoaWNzQ29udGV4dDNEKiBtX2ltcGw7CisgICAgT3duUHRyPFdlYktpdDo6V2ViR3Jh
cGhpY3NDb250ZXh0M0Q+IG1fb3duZWRXZWJDb250ZXh0OwogICAgIE93blB0cjxFeHRlbnNpb25z
M0RDaHJvbWl1bT4gbV9leHRlbnNpb25zOwogICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQzRENv
bnRleHRMb3N0Q2FsbGJhY2tBZGFwdGVyPiBtX2NvbnRleHRMb3N0Q2FsbGJhY2tBZGFwdGVyOwog
ICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQzREVycm9yTWVzc2FnZUNhbGxiYWNrQWRhcHRlcj4g
bV9lcnJvck1lc3NhZ2VDYWxsYmFja0FkYXB0ZXI7CkBAIC0xMTQsNyArMTE4LDggQEAgcHJpdmF0
ZToKICAgICAvLyB1c2VkIHRvIHJlc2l6ZSB0aGUgQ2FudmFzLgogICAgIFNrQml0bWFwIG1fcmVz
aXppbmdCaXRtYXA7CiAKLSAgICBTa0F1dG9UVW5yZWY8R3JDb250ZXh0PiBtX2dyQ29udGV4dDsK
KyAgICBHckNvbnRleHQqIG1fZ3JDb250ZXh0OworICAgIFNrQXV0b1RVbnJlZjxHckNvbnRleHQ+
IG1fb3duZWRHckNvbnRleHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3ND
b250ZXh0M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJl
ZEdyYXBoaWNzQ29udGV4dDNELmNwcAppbmRleCBhNzA3NGI3ZWVmZTdkMzBlOTgzMjIzYTJmOTA0
N2IyNWM1MDU1YzZjLi42OGI2ZTRlNzUwNzliZTI1MThhNThjZjY5Yjg3MTUwYTM1ZmUxZWE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAKQEAgLTI5LDYgKzI5LDExIEBACiAjaW5j
bHVkZSAiU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaCIKIAogI2luY2x1ZGUgIkV4dGVuc2lvbnMz
RC5oIgorI2lmIFBMQVRGT1JNKENIUk9NSVVNKQorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZS5oIgorI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgorI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJHcmFwaGljc0NvbnRleHQzRC5oPgorI2VuZGlmCiAjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsMjMgKzQzLDQ0IEBAIHB1YmxpYzoK
ICAgICBTaGFyZWRHcmFwaGljc0NvbnRleHQzREltcGwoKSA6IG1fY29udGV4dCgwKSB7IH0KICAg
ICBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBnZXRPckNyZWF0ZUNvbnRleHQoKQogICAg
IHsKLSAgICAgICAgLy8gSWYgd2UgbG9zdCB0aGUgY29udGV4dCwgb3IgY2FuJ3QgbWFrZSBpdCBj
dXJyZW50LCBjcmVhdGUgYSBuZXcgb25lLgotICAgICAgICBpZiAobV9jb250ZXh0ICYmICghbV9j
b250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSB8fCAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25z
KCktPmdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKSAhPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9f
RVJST1IpKSkKLSAgICAgICAgICAgIG1fY29udGV4dC5jbGVhcigpOwotCiAgICAgICAgIGJvb2wg
d2FzQ3JlYXRlZCA9IGZhbHNlOwogCi0gICAgICAgIGlmICghbV9jb250ZXh0KSB7Ci0gICAgICAg
ICAgICBjcmVhdGVDb250ZXh0KCk7Ci0gICAgICAgICAgICB3YXNDcmVhdGVkID0gdHJ1ZTsKKyNp
ZiBQTEFURk9STShDSFJPTUlVTSkKKyAgICAgICAgV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQz
RCogd2ViQ29udGV4dCA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+c2hhcmVkT2Zmc2Ny
ZWVuR3JhcGhpY3NDb250ZXh0M0QoJndhc0NyZWF0ZWQpOworICAgICAgICBHckNvbnRleHQqIGdy
Q29udGV4dCA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+c2hhcmVkT2Zmc2NyZWVuR3JD
b250ZXh0KCk7CisKKyAgICAgICAgaWYgKHdlYkNvbnRleHQgJiYgZ3JDb250ZXh0KSB7CisgICAg
ICAgICAgICBXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiBvbGRXZWJDb250ZXh0ID0gbV9j
b250ZXh0ID8gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpleHRyYWN0V2ViR3JhcGhpY3NDb250
ZXh0M0QobV9jb250ZXh0LmdldCgpKSA6IDA7CisgICAgICAgICAgICBHckNvbnRleHQqIG9sZEdy
Q29udGV4dCA9IG1fY29udGV4dCA/IG1fY29udGV4dC0+Z3JDb250ZXh0KCkgOiAwOworICAgICAg
ICAgICAgaWYgKHdlYkNvbnRleHQgIT0gb2xkV2ViQ29udGV4dCB8fCBnckNvbnRleHQgIT0gb2xk
R3JDb250ZXh0KSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKHdhc0NyZWF0ZWQpOworICAgICAg
ICAgICAgICAgIG1fY29udGV4dC5jbGVhcigpOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBpZiAoIW1fY29udGV4dCkgeworICAgICAgICAgICAgICAgIG1fY29udGV4dCA9IEdyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbUV4dGVybmFsV2ViQ29u
dGV4dEFuZEdyQ29udGV4dCh3ZWJDb250ZXh0LCBnckNvbnRleHQpOworICAgICAgICAgICAgICAg
IHdhc0NyZWF0ZWQgPSB0cnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBGSVhN
RTogRG9uJ3QgZmFsbGJhY2sgdG8gdGhlIGxlZ2FjeSBwYXRoIHdoZW4gY2hyb21pdW0gc3VwcG9y
dHMgdGhlIG5ldyBvZmZzY3JlZW4gbWV0aG9kcy4KKyAgICAgICAgfSBlbHNlCisjZW5kaWYKKyAg
ICAgICAgeworICAgICAgICAgICAgLy8gSWYgd2UgbG9zdCB0aGUgY29udGV4dCwgb3IgY2FuJ3Qg
bWFrZSBpdCBjdXJyZW50LCBjcmVhdGUgYSBuZXcgb25lLgorICAgICAgICAgICAgaWYgKG1fY29u
dGV4dCAmJiAoIW1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkgfHwgKG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLT5nZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCkgIT0gR3JhcGhpY3ND
b250ZXh0M0Q6Ok5PX0VSUk9SKSkpCisgICAgICAgICAgICAgICAgbV9jb250ZXh0LmNsZWFyKCk7
CisKKyAgICAgICAgICAgIGlmICghbV9jb250ZXh0KSB7CisgICAgICAgICAgICAgICAgY3JlYXRl
Q29udGV4dCgpOworICAgICAgICAgICAgICAgIHdhc0NyZWF0ZWQgPSB0cnVlOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBpZiAobV9jb250ZXh0ICYmICFtX2NvbnRleHQtPm1ha2VDb250
ZXh0Q3VycmVudCgpKQorICAgICAgICAgICAgICAgIG1fY29udGV4dC5jbGVhcigpOwogICAgICAg
ICB9CiAKLSAgICAgICAgaWYgKG1fY29udGV4dCAmJiAhbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1
cnJlbnQoKSkKLSAgICAgICAgICAgIG1fY29udGV4dC5jbGVhcigpOwotCiAgICAgICAgIGlmICht
X2NvbnRleHQgJiYgd2FzQ3JlYXRlZCkKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLT5wdXNoR3JvdXBNYXJrZXJFWFQoIlNoYXJlZEdyYXBoaWNzQ29udGV4dCIpOwotCiAg
ICAgICAgIHJldHVybiBtX2NvbnRleHQ7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190131</attachid>
            <date>2013-02-25 14:41:09 -0800</date>
            <delta_ts>2013-02-26 08:20:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109345-20130225173724.patch</filename>
            <type>text/plain</type>
            <size>12246</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzOTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBmYTVlMzBjNDc4NTcy
MjY5N2I2YjRiZTkxMjEyZTBiNGE4MWFiODJmLi41MjEwMDM2ODJjNDU1M2M3MjNiZDY1YmU3NWRj
YmZhMmE2NGNiYzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMi0yNSAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBDcmVhdGUgdGhl
IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEIHRocm91Z2ggaXRzIG93biBtZXRob2QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgUGxhdGZvcm0gQVBJ
IG1ldGhvZHMgdG8gZ2V0IHNoYXJlZCBjb250ZXh0cyBmcm9tIHRoZSBlbWJlZGRlci4KKworICAg
ICAgICAqIGNocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oOgorICAgICAgICAoUGxhdGZvcm0pOgor
ICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6c2hhcmVkT2Zmc2NyZWVuR3JhcGhpY3NDb250ZXh0
M0QpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6c2hhcmVkT2Zmc2NyZWVuR3JDb250ZXh0
KToKKwogMjAxMy0wMi0yMiAgQWxpIEp1bWEgIDxhanVtYUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBSZWdpc3RlciBuZXdseS1jcmVhdGVkIGxheWVycyBmb3IgYW5pbWF0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggZTNmZmRiNzFmYzljYzkzYjIxNmE4MjUwNDNhNjVkN2I4YzM1MTIzZC4u
MzNkYjViM2U4MTkwODU5YjhiYTdhNjJlMDg1ZjcwZjE1YjhlYTYyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI5IEBACisyMDEzLTAyLTI1ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIENyZWF0ZSB0aGUgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QgdGhyb3Vn
aCBpdHMgb3duIG1ldGhvZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwOTM0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFsbG93IGNyZWF0aW5nIGEgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlIGZyb20g
YW4gZXh0ZXJuYWxseSBvd25lZAorICAgICAgICBXZWJHcmFwaGljc0NvbnRleHQzRCBhbmQgR3JD
b250ZXh0LiBUaGVuIGNyZWF0ZSB0aGUgc2hhcmVkIGdyYXBoaWNzCisgICAgICAgIGNvbnRleHQg
ZnJvbSB0aGVzZSBwcm92aWRlZCBieSB0aGUgZW1iZWRkZXIuCisKKyAgICAgICAgVGhpcyBmYWxs
cyBiYWNrIHRvIHRoZSBvbGQgcGF0aCBpZiB0aGUgbmV3IG1ldGhvZHMgcmV0dXJuIE5VTEwgdG8K
KyAgICAgICAgbGV0IHVzIGxhbmQgdGhpcyBpbW1lZGlhdGVseSBhbmQgdGhlbiB0cmFuc2l0aW9u
IHRoZSBjaHJvbWl1bSBzaWRlCisgICAgICAgIG92ZXIgdG8gdGhpcyBwYXRoLgorCisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpHcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21FeHRlcm5h
bFdlYkNvbnRleHRBbmRHckNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlOjpnckNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1
cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmg6CisgICAgICAgIChHcmFwaGljc0NvbnRl
eHQzRFByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
Ojp3ZWJDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkR3JhcGhpY3NDb250
ZXh0M0RJbXBsOjpnZXRPckNyZWF0ZUNvbnRleHQpOgorCiAyMDEzLTAyLTI1ICBBbmRyZWFzIEts
aW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWR1Y2UgYW1vdW50IG9mIGNvZGUg
dGhhdCBpbmNsdWRlcyBTdHlsZVByb3BlcnR5U2V0LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvUGxhdGZvcm0uaAppbmRleCBlZTE4MGNiMGY2YzgzMWRkODMxNzgyMzQwM2E5OWEz
YTZkZDJmNzI2Li5iMDJlOWEyMmI5OTQ4OTNjOTc1MzVlMzc2YzJhYThmMGE2YzA0NmJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgKKysrIGIv
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oCkBAIC00NCw2ICs0NCw4
IEBACiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViVmVjdG9yLmgiCiAKK2Ns
YXNzIEdyQ29udGV4dDsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkF1ZGlvQnVz
OwpAQCAtNDUxLDYgKzQ1MywxOCBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyBuZXdseSBhbGxv
Y2F0ZWQgYW5kIGluaXRpYWxpemVkIG9mZnNjcmVlbiBXZWJHcmFwaGljc0NvbnRleHQzRCBpbnN0
YW5jZS4KICAgICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjcmVhdGVPZmZzY3JlZW5H
cmFwaGljc0NvbnRleHQzRChjb25zdCBXZWJHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyYp
IHsgcmV0dXJuIDA7IH0KIAorICAgIC8vIE1heSByZXR1cm4gbnVsbCBpZiBHUFUgaXMgbm90IHN1
cHBvcnRlZC4KKyAgICAvLyBSZXR1cm5zIHRoZSBzaGFyZWQgV2ViR3JhcGhpY3NDb250ZXh0M0Qu
IFRoaXMgaXMgYSBzaW5nbGV0b24gb2JqZWN0IGZvcgorICAgIC8vIHRoZSBlbnRpcmUgcHJvY2Vz
cy4gQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIG1heSBkZXN0cm95IGJvdGggdGhlIHNoYXJlZAorICAg
IC8vIG9mZnNjcmVlbiBXZWJHcmFwaGljc0NvbnRleHQzRCBhbmQgR3JDb250ZXh0IHBvaW50ZXJz
IGxhc3QgcmV0dXJuZWQsIHNvCisgICAgLy8gaXQgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGZyb20g
YSBzaW5nbGUgc2l0ZS4gVGhlIGNyZWF0ZWROZXcgcGFyYW1ldGVyIGlzCisgICAgLy8gc2V0IHRv
IHRydWUgd2hlbiBhIG5ldyBjb250ZXh0IHdhcyBjcmVhdGVkIHRvIHNlcnZpY2UgdGhlIHJlcXVl
c3QuCisgICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogc2hhcmVkT2Zmc2NyZWVuR3Jh
cGhpY3NDb250ZXh0M0QoYm9vbCogY3JlYXRlZE5ldykgeyByZXR1cm4gMDsgfQorCisgICAgLy8g
TWF5IHJldHVybiBudWxsIGlmIEdQVSBpcyBub3Qgc3VwcG9ydGVkLgorICAgIC8vIFJldHVybnMg
dGhlIHNoYXJlZCBHckNvbnRleHQuIFRoaXMgaXMgYSBzaW5nbGV0b24gb2JqZWN0IGZvciB0aGUg
ZW50aXJlIHByb2Nlc3MuCisgICAgdmlydHVhbCBHckNvbnRleHQqIHNoYXJlZE9mZnNjcmVlbkdy
Q29udGV4dCgpIHsgcmV0dXJuIDA7IH0KKwogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGxh
dGZvcm0gaXMgY2FwYWJsZSBvZiBwcm9kdWNpbmcgYW4gb2Zmc2NyZWVuIGNvbnRleHQgc3VpdGFi
bGUgZm9yIGFjY2VsZXJhdGluZyAyZCBjYW52YXMuCiAgICAgLy8gVGhpcyB3aWxsIHJldHVybiBm
YWxzZSBpZiB0aGUgcGxhdGZvcm0gY2Fubm90IHByb21pc2UgdGhhdCBjb250ZXh0cyB3aWxsIGJl
IHByZXNlcnZlZCBhY3Jvc3Mgb3BlcmF0aW9ucyBsaWtlCiAgICAgLy8gbG9ja2luZyB0aGUgc2Ny
ZWVuIG9yIGlmIHRoZSBwbGF0Zm9ybSBjYW5ub3QgcHJvdmlkZSBhIGNvbnRleHQgd2l0aCBzdWl0
YWJsZSBwZXJmb3JtYW5jZSBjaGFyYWN0ZXJpc3RpY3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZS5jcHAKaW5kZXggYTIzMDQ4MzkwMWNjMWRlZjg2YWFkNDY2N2ZjYjY4ZTUz
ODU2NTkxNC4uMDljMDY2M2FjZmQ0MTAwYzc0YjllMjI4NDAxOTk1YTYwMDg5NzkzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L3N1cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcApAQCAtNTcsNyArNTcsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUKIAogR3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoUGFzc093blB0cjxX
ZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiB3ZWJDb250ZXh0LCBib29sIHByZXNlcnZlRHJh
d2luZ0J1ZmZlcikKLSAgICA6IG1faW1wbCh3ZWJDb250ZXh0KQorICAgIDogbV9pbXBsKHdlYkNv
bnRleHQuZ2V0KCkpCisgICAgLCBtX293bmVkV2ViQ29udGV4dCh3ZWJDb250ZXh0KQogICAgICwg
bV9pbml0aWFsaXplZEF2YWlsYWJsZUV4dGVuc2lvbnMoZmFsc2UpCiAgICAgLCBtX2xheWVyQ29t
cG9zaXRlZChmYWxzZSkKICAgICAsIG1fcHJlc2VydmVEcmF3aW5nQnVmZmVyKHByZXNlcnZlRHJh
d2luZ0J1ZmZlcikKQEAgLTY2LDYgKzY3LDE3IEBAIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljCiB7
CiB9CiAKK0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
KFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqIHdlYkNvbnRleHQsIEdyQ29udGV4dCogZ3JD
b250ZXh0LCBib29sIHByZXNlcnZlRHJhd2luZ0J1ZmZlcikKKyAgICA6IG1faW1wbCh3ZWJDb250
ZXh0KQorICAgICwgbV9pbml0aWFsaXplZEF2YWlsYWJsZUV4dGVuc2lvbnMoZmFsc2UpCisgICAg
LCBtX2xheWVyQ29tcG9zaXRlZChmYWxzZSkKKyAgICAsIG1fcHJlc2VydmVEcmF3aW5nQnVmZmVy
KHByZXNlcnZlRHJhd2luZ0J1ZmZlcikKKyAgICAsIG1fcmVzb3VyY2VTYWZldHkoUmVzb3VyY2VT
YWZldHlVbmtub3duKQorICAgICwgbV9nckNvbnRleHQoZ3JDb250ZXh0KQoreworfQorCisKIEdy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6fkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSgpCiB7CiAg
ICAgaWYgKG1fZ3JDb250ZXh0KSB7CkBAIC04Myw2ICs5NSwxNSBAQCBQYXNzUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29u
dGV4dEZybwogICAgIHJldHVybiBjb250ZXh0LnJlbGVhc2UoKTsKIH0KIAorUGFzc1JlZlB0cjxH
cmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGlj
c0NvbnRleHRGcm9tRXh0ZXJuYWxXZWJDb250ZXh0QW5kR3JDb250ZXh0KFdlYktpdDo6V2ViR3Jh
cGhpY3NDb250ZXh0M0QqIHdlYkNvbnRleHQsIEdyQ29udGV4dCogZ3JDb250ZXh0LCBib29sIHBy
ZXNlcnZlRHJhd2luZ0J1ZmZlcikKK3sKKyAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNv
bnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0Q6
OkF0dHJpYnV0ZXMoKSwgMCkpOworCisgICAgT3duUHRyPEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZT4gcHJpdiA9IGFkb3B0UHRyKG5ldyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUod2ViQ29udGV4
dCwgZ3JDb250ZXh0LCBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIpKTsKKyAgICBjb250ZXh0LT5tX3By
aXZhdGUgPSBwcml2LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gY29udGV4dC5yZWxlYXNlKCk7Cit9
CisKIFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZTo6ZXh0cmFjdFdlYkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0
KQogewogICAgIGlmICghY29udGV4dCkKQEAgLTEzMCw5ICsxNTEsMTAgQEAgR3JDb250ZXh0KiBH
cmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmdyQ29udGV4dCgpCiAgICAgICAgIHJldHVybiAwOwog
CiAgICAgaW50ZXJmYWNlLT5mQ2FsbGJhY2sgPSBiaW5kV2ViR3JhcGhpY3NDb250ZXh0M0RHTENv
bnRleHRDYWxsYmFjazsKLSAgICBpbnRlcmZhY2UtPmZDYWxsYmFja0RhdGEgPSByZWludGVycHJl
dF9jYXN0PEdyR0xJbnRlcmZhY2VDYWxsYmFja0RhdGE+KG1faW1wbC5nZXQoKSk7CisgICAgaW50
ZXJmYWNlLT5mQ2FsbGJhY2tEYXRhID0gcmVpbnRlcnByZXRfY2FzdDxHckdMSW50ZXJmYWNlQ2Fs
bGJhY2tEYXRhPihtX2ltcGwpOwogCi0gICAgbV9nckNvbnRleHQucmVzZXQoR3JDb250ZXh0OjpD
cmVhdGUoa09wZW5HTF9HckJhY2tlbmQsIHJlaW50ZXJwcmV0X2Nhc3Q8R3JCYWNrZW5kQ29udGV4
dD4oaW50ZXJmYWNlLmdldCgpKSkpOworICAgIG1fb3duZWRHckNvbnRleHQucmVzZXQoR3JDb250
ZXh0OjpDcmVhdGUoa09wZW5HTF9HckJhY2tlbmQsIHJlaW50ZXJwcmV0X2Nhc3Q8R3JCYWNrZW5k
Q29udGV4dD4oaW50ZXJmYWNlLmdldCgpKSkpOworICAgIG1fZ3JDb250ZXh0ID0gbV9vd25lZEdy
Q29udGV4dDsKICAgICBpZiAoIW1fZ3JDb250ZXh0KQogICAgICAgICByZXR1cm4gMDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGlj
c0NvbnRleHQzRFByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1
cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKaW5kZXggZDE5M2E2YzgzMmUzYjRmYWNl
ZjFlMzVjOTBjYzNmODcwZTIyZjFjZS4uYTQ0MWIwNjFlZjc2Y2NiOWNhZTc3NDhmNTdlODIxZDM5
YWFmZjg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3Vw
cG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCkBAIC01NCw2
ICs1NCw4IEBAIHB1YmxpYzoKICAgICAvLyBiZSB1c2VkIG9uIGFueSBvdGhlciB0aHJlYWQuCiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUdyYXBoaWNzQ29u
dGV4dEZyb21XZWJDb250ZXh0KFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQz
RD4sIGJvb2wgcHJlc2VydmVEcmF3aW5nQnVmZmVyID0gZmFsc2UpOwogCisgICAgc3RhdGljIFBh
c3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21FeHRl
cm5hbFdlYkNvbnRleHRBbmRHckNvbnRleHQoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCos
IEdyQ29udGV4dCosIGJvb2wgcHJlc2VydmVEcmF3aW5nQnVmZmVyID0gZmFsc2UpOworCiAgICAg
Ly8gSGVscGVyIGZ1bmN0aW9uIHRvIHByb3ZpZGUgYWNjZXNzIHRvIHRoZSBsb3dlci1sZXZlbCBX
ZWJHcmFwaGljc0NvbnRleHQzRCwKICAgICAvLyB3aGljaCBpcyBuZWVkZWQgZm9yIHN1Ym9yZGlu
YXRlIGNvbnRleHRzIGxpa2UgV2ViR0wncyB0byBzaGFyZSByZXNvdXJjZXMKICAgICAvLyB3aXRo
IHRoZSBjb21wb3NpdG9yJ3MgY29udGV4dC4KQEAgLTYxLDcgKzYzLDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB+R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKCk7CiAKLSAgICBXZWJLaXQ6Oldl
YkdyYXBoaWNzQ29udGV4dDNEKiB3ZWJDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdl
dCgpOyB9CisgICAgV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCogd2ViQ29udGV4dCgpIGNv
bnN0IHsgcmV0dXJuIG1faW1wbDsgfQogCiAgICAgR3JDb250ZXh0KiBnckNvbnRleHQoKTsKIApA
QCAtODYsMTAgKzg4LDEyIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBHcmFwaGljc0NvbnRl
eHQzRFByaXZhdGUoUGFzc093blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiwgYm9v
bCBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIpOworICAgIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShX
ZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiwgR3JDb250ZXh0KiwgYm9vbCBwcmVzZXJ2ZURy
YXdpbmdCdWZmZXIpOwogCiAgICAgdm9pZCBpbml0aWFsaXplRXh0ZW5zaW9ucygpOwogCi0gICAg
T3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+IG1faW1wbDsKKyAgICBXZWJLaXQ6
OldlYkdyYXBoaWNzQ29udGV4dDNEKiBtX2ltcGw7CisgICAgT3duUHRyPFdlYktpdDo6V2ViR3Jh
cGhpY3NDb250ZXh0M0Q+IG1fb3duZWRXZWJDb250ZXh0OwogICAgIE93blB0cjxFeHRlbnNpb25z
M0RDaHJvbWl1bT4gbV9leHRlbnNpb25zOwogICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQzRENv
bnRleHRMb3N0Q2FsbGJhY2tBZGFwdGVyPiBtX2NvbnRleHRMb3N0Q2FsbGJhY2tBZGFwdGVyOwog
ICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQzREVycm9yTWVzc2FnZUNhbGxiYWNrQWRhcHRlcj4g
bV9lcnJvck1lc3NhZ2VDYWxsYmFja0FkYXB0ZXI7CkBAIC0xMTQsNyArMTE4LDggQEAgcHJpdmF0
ZToKICAgICAvLyB1c2VkIHRvIHJlc2l6ZSB0aGUgQ2FudmFzLgogICAgIFNrQml0bWFwIG1fcmVz
aXppbmdCaXRtYXA7CiAKLSAgICBTa0F1dG9UVW5yZWY8R3JDb250ZXh0PiBtX2dyQ29udGV4dDsK
KyAgICBHckNvbnRleHQqIG1fZ3JDb250ZXh0OworICAgIFNrQXV0b1RVbnJlZjxHckNvbnRleHQ+
IG1fb3duZWRHckNvbnRleHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3ND
b250ZXh0M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJl
ZEdyYXBoaWNzQ29udGV4dDNELmNwcAppbmRleCBhNzA3NGI3ZWVmZTdkMzBlOTgzMjIzYTJmOTA0
N2IyNWM1MDU1YzZjLi45Y2QyZTM4NTY3ZWI5ODU5ZTkyZjA3NjI0OTY2ZGYyNTVlMjIxZGY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAKQEAgLTI5LDYgKzI5LDExIEBACiAjaW5j
bHVkZSAiU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaCIKIAogI2luY2x1ZGUgIkV4dGVuc2lvbnMz
RC5oIgorI2lmIFBMQVRGT1JNKENIUk9NSVVNKQorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZS5oIgorI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgorI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJHcmFwaGljc0NvbnRleHQzRC5oPgorI2VuZGlmCiAjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsMjMgKzQzLDQ0IEBAIHB1YmxpYzoK
ICAgICBTaGFyZWRHcmFwaGljc0NvbnRleHQzREltcGwoKSA6IG1fY29udGV4dCgwKSB7IH0KICAg
ICBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBnZXRPckNyZWF0ZUNvbnRleHQoKQogICAg
IHsKLSAgICAgICAgLy8gSWYgd2UgbG9zdCB0aGUgY29udGV4dCwgb3IgY2FuJ3QgbWFrZSBpdCBj
dXJyZW50LCBjcmVhdGUgYSBuZXcgb25lLgotICAgICAgICBpZiAobV9jb250ZXh0ICYmICghbV9j
b250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSB8fCAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25z
KCktPmdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKSAhPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9f
RVJST1IpKSkKLSAgICAgICAgICAgIG1fY29udGV4dC5jbGVhcigpOwotCiAgICAgICAgIGJvb2wg
d2FzQ3JlYXRlZCA9IGZhbHNlOwogCi0gICAgICAgIGlmICghbV9jb250ZXh0KSB7Ci0gICAgICAg
ICAgICBjcmVhdGVDb250ZXh0KCk7Ci0gICAgICAgICAgICB3YXNDcmVhdGVkID0gdHJ1ZTsKKyNp
ZiBQTEFURk9STShDSFJPTUlVTSkKKyAgICAgICAgV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQz
RCogd2ViQ29udGV4dCA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+c2hhcmVkT2Zmc2Ny
ZWVuR3JhcGhpY3NDb250ZXh0M0QoJndhc0NyZWF0ZWQpOworICAgICAgICBHckNvbnRleHQqIGdy
Q29udGV4dCA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+c2hhcmVkT2Zmc2NyZWVuR3JD
b250ZXh0KCk7CisKKyAgICAgICAgaWYgKHdlYkNvbnRleHQgJiYgZ3JDb250ZXh0KSB7CisgICAg
ICAgICAgICBXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiBvbGRXZWJDb250ZXh0ID0gbV9j
b250ZXh0ID8gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpleHRyYWN0V2ViR3JhcGhpY3NDb250
ZXh0M0QobV9jb250ZXh0LmdldCgpKSA6IDA7CisgICAgICAgICAgICBHckNvbnRleHQqIG9sZEdy
Q29udGV4dCA9IG1fY29udGV4dCA/IG1fY29udGV4dC0+Z3JDb250ZXh0KCkgOiAwOworICAgICAg
ICAgICAgaWYgKHdhc0NyZWF0ZWQgfHwgd2ViQ29udGV4dCAhPSBvbGRXZWJDb250ZXh0IHx8IGdy
Q29udGV4dCAhPSBvbGRHckNvbnRleHQpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQod2FzQ3Jl
YXRlZCk7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LmNsZWFyKCk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGlmICghbV9jb250ZXh0KSB7CisgICAgICAgICAgICAgICAgbV9jb250
ZXh0ID0gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9t
RXh0ZXJuYWxXZWJDb250ZXh0QW5kR3JDb250ZXh0KHdlYkNvbnRleHQsIGdyQ29udGV4dCk7Cisg
ICAgICAgICAgICAgICAgd2FzQ3JlYXRlZCA9IHRydWU7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBEb24ndCBmYWxsYmFjayB0byB0aGUgbGVnYWN5IHBhdGggd2hlbiBj
aHJvbWl1bSBzdXBwb3J0cyB0aGUgbmV3IG9mZnNjcmVlbiBtZXRob2RzLgorICAgICAgICB9IGVs
c2UKKyNlbmRpZgorICAgICAgICB7CisgICAgICAgICAgICAvLyBJZiB3ZSBsb3N0IHRoZSBjb250
ZXh0LCBvciBjYW4ndCBtYWtlIGl0IGN1cnJlbnQsIGNyZWF0ZSBhIG5ldyBvbmUuCisgICAgICAg
ICAgICBpZiAobV9jb250ZXh0ICYmICghbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSB8
fCAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPmdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIo
KSAhPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9fRVJST1IpKSkKKyAgICAgICAgICAgICAgICBtX2Nv
bnRleHQuY2xlYXIoKTsKKworICAgICAgICAgICAgaWYgKCFtX2NvbnRleHQpIHsKKyAgICAgICAg
ICAgICAgICBjcmVhdGVDb250ZXh0KCk7CisgICAgICAgICAgICAgICAgd2FzQ3JlYXRlZCA9IHRy
dWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtX2NvbnRleHQgJiYgIW1fY29u
dGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCisgICAgICAgICAgICAgICAgbV9jb250ZXh0LmNs
ZWFyKCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobV9jb250ZXh0ICYmICFtX2NvbnRleHQt
Pm1ha2VDb250ZXh0Q3VycmVudCgpKQotICAgICAgICAgICAgbV9jb250ZXh0LmNsZWFyKCk7Ci0K
ICAgICAgICAgaWYgKG1fY29udGV4dCAmJiB3YXNDcmVhdGVkKQogICAgICAgICAgICAgbV9jb250
ZXh0LT5nZXRFeHRlbnNpb25zKCktPnB1c2hHcm91cE1hcmtlckVYVCgiU2hhcmVkR3JhcGhpY3ND
b250ZXh0Iik7Ci0KICAgICAgICAgcmV0dXJuIG1fY29udGV4dDsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190289</attachid>
            <date>2013-02-26 08:20:57 -0800</date>
            <delta_ts>2013-02-26 10:37:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109345-20130226111711.patch</filename>
            <type>text/plain</type>
            <size>12258</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzOTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBmYTVlMzBjNDc4NTcy
MjY5N2I2YjRiZTkxMjEyZTBiNGE4MWFiODJmLi41MjEwMDM2ODJjNDU1M2M3MjNiZDY1YmU3NWRj
YmZhMmE2NGNiYzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMi0yNSAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBDcmVhdGUgdGhl
IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEIHRocm91Z2ggaXRzIG93biBtZXRob2QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgUGxhdGZvcm0gQVBJ
IG1ldGhvZHMgdG8gZ2V0IHNoYXJlZCBjb250ZXh0cyBmcm9tIHRoZSBlbWJlZGRlci4KKworICAg
ICAgICAqIGNocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oOgorICAgICAgICAoUGxhdGZvcm0pOgor
ICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6c2hhcmVkT2Zmc2NyZWVuR3JhcGhpY3NDb250ZXh0
M0QpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6c2hhcmVkT2Zmc2NyZWVuR3JDb250ZXh0
KToKKwogMjAxMy0wMi0yMiAgQWxpIEp1bWEgIDxhanVtYUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBSZWdpc3RlciBuZXdseS1jcmVhdGVkIGxheWVycyBmb3IgYW5pbWF0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggZTNmZmRiNzFmYzljYzkzYjIxNmE4MjUwNDNhNjVkN2I4YzM1MTIzZC4u
MzNkYjViM2U4MTkwODU5YjhiYTdhNjJlMDg1ZjcwZjE1YjhlYTYyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI5IEBACisyMDEzLTAyLTI1ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIENyZWF0ZSB0aGUgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QgdGhyb3Vn
aCBpdHMgb3duIG1ldGhvZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwOTM0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFsbG93IGNyZWF0aW5nIGEgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlIGZyb20g
YW4gZXh0ZXJuYWxseSBvd25lZAorICAgICAgICBXZWJHcmFwaGljc0NvbnRleHQzRCBhbmQgR3JD
b250ZXh0LiBUaGVuIGNyZWF0ZSB0aGUgc2hhcmVkIGdyYXBoaWNzCisgICAgICAgIGNvbnRleHQg
ZnJvbSB0aGVzZSBwcm92aWRlZCBieSB0aGUgZW1iZWRkZXIuCisKKyAgICAgICAgVGhpcyBmYWxs
cyBiYWNrIHRvIHRoZSBvbGQgcGF0aCBpZiB0aGUgbmV3IG1ldGhvZHMgcmV0dXJuIE5VTEwgdG8K
KyAgICAgICAgbGV0IHVzIGxhbmQgdGhpcyBpbW1lZGlhdGVseSBhbmQgdGhlbiB0cmFuc2l0aW9u
IHRoZSBjaHJvbWl1bSBzaWRlCisgICAgICAgIG92ZXIgdG8gdGhpcyBwYXRoLgorCisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpHcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21FeHRlcm5h
bFdlYkNvbnRleHRBbmRHckNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlOjpnckNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1
cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmg6CisgICAgICAgIChHcmFwaGljc0NvbnRl
eHQzRFByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
Ojp3ZWJDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkR3JhcGhpY3NDb250
ZXh0M0RJbXBsOjpnZXRPckNyZWF0ZUNvbnRleHQpOgorCiAyMDEzLTAyLTI1ICBBbmRyZWFzIEts
aW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWR1Y2UgYW1vdW50IG9mIGNvZGUg
dGhhdCBpbmNsdWRlcyBTdHlsZVByb3BlcnR5U2V0LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvUGxhdGZvcm0uaAppbmRleCBlZTE4MGNiMGY2YzgzMWRkODMxNzgyMzQwM2E5OWEz
YTZkZDJmNzI2Li5kMzZhMGZjOTk5OGM1MGE2MzBmZDIyYmY0Y2M0YjcxNzk2OTU4OWI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgKKysrIGIv
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oCkBAIC00NCw2ICs0NCw4
IEBACiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViVmVjdG9yLmgiCiAKK2Ns
YXNzIEdyQ29udGV4dDsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkF1ZGlvQnVz
OwpAQCAtNDUxLDYgKzQ1MywyMCBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyBuZXdseSBhbGxv
Y2F0ZWQgYW5kIGluaXRpYWxpemVkIG9mZnNjcmVlbiBXZWJHcmFwaGljc0NvbnRleHQzRCBpbnN0
YW5jZS4KICAgICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjcmVhdGVPZmZzY3JlZW5H
cmFwaGljc0NvbnRleHQzRChjb25zdCBXZWJHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyYp
IHsgcmV0dXJuIDA7IH0KIAorICAgIC8vIE1heSByZXR1cm4gbnVsbCBpZiBHUFUgaXMgbm90IHN1
cHBvcnRlZC4KKyAgICAvLyBSZXR1cm5zIHRoZSBzaGFyZWQgV2ViR3JhcGhpY3NDb250ZXh0M0Qu
IFRoaXMgaXMgYSBzaW5nbGV0b24gb2JqZWN0IGZvcgorICAgIC8vIHRoZSBlbnRpcmUgcHJvY2Vz
cy4gQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIG1heSBkZXN0cm95IGJvdGggdGhlIHNoYXJlZAorICAg
IC8vIG9mZnNjcmVlbiBXZWJHcmFwaGljc0NvbnRleHQzRCBhbmQgR3JDb250ZXh0IHBvaW50ZXJz
IGxhc3QgcmV0dXJuZWQsIHNvCisgICAgLy8gaXQgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGZyb20g
YSBzaW5nbGUgc2l0ZS4gVGhlIGltcGxlbWVudG9yIHNob3VsZAorICAgIC8vIGNyZWF0ZSBhIG5l
dyBjb250ZXh0IGJlZm9yZSBkZXN0cm95aW5nIGl0cyBjdXJyZW50IGNvbnRleHQsIGlmIHJlcXVp
cmVkLAorICAgIC8vIHRvIGVuc3VyZSB0aGUgc2FtZSBwb2ludGVyIGNhbiBub3QgYmUgcmV0dXJu
ZWQgdHdpY2UgaW4gYSByb3cgZm9yIHR3bworICAgIC8vIGRpZmZlcmVudCBjb250ZXh0cy4KKyAg
ICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBzaGFyZWRPZmZzY3JlZW5HcmFwaGljc0Nv
bnRleHQzRCgpIHsgcmV0dXJuIDA7IH0KKworICAgIC8vIE1heSByZXR1cm4gbnVsbCBpZiBHUFUg
aXMgbm90IHN1cHBvcnRlZC4KKyAgICAvLyBSZXR1cm5zIHRoZSBzaGFyZWQgR3JDb250ZXh0LiBU
aGlzIGlzIGEgc2luZ2xldG9uIG9iamVjdCBmb3IgdGhlIGVudGlyZSBwcm9jZXNzLgorICAgIHZp
cnR1YWwgR3JDb250ZXh0KiBzaGFyZWRPZmZzY3JlZW5HckNvbnRleHQoKSB7IHJldHVybiAwOyB9
CisKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHBsYXRmb3JtIGlzIGNhcGFibGUgb2YgcHJv
ZHVjaW5nIGFuIG9mZnNjcmVlbiBjb250ZXh0IHN1aXRhYmxlIGZvciBhY2NlbGVyYXRpbmcgMmQg
Y2FudmFzLgogICAgIC8vIFRoaXMgd2lsbCByZXR1cm4gZmFsc2UgaWYgdGhlIHBsYXRmb3JtIGNh
bm5vdCBwcm9taXNlIHRoYXQgY29udGV4dHMgd2lsbCBiZSBwcmVzZXJ2ZWQgYWNyb3NzIG9wZXJh
dGlvbnMgbGlrZQogICAgIC8vIGxvY2tpbmcgdGhlIHNjcmVlbiBvciBpZiB0aGUgcGxhdGZvcm0g
Y2Fubm90IHByb3ZpZGUgYSBjb250ZXh0IHdpdGggc3VpdGFibGUgcGVyZm9ybWFuY2UgY2hhcmFj
dGVyaXN0aWNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
c3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmluZGV4
IGEyMzA0ODM5MDFjYzFkZWY4NmFhZDQ2NjdmY2I2OGU1Mzg1NjU5MTQuLjA5YzA2NjNhY2ZkNDEw
MGM3NGI5ZTIyODQwMTk5NWE2MDA4OTc5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZS5jcHAKQEAgLTU3LDcgKzU3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8g
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlCiAKIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6R3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRl
eHQzRD4gd2ViQ29udGV4dCwgYm9vbCBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIpCi0gICAgOiBtX2lt
cGwod2ViQ29udGV4dCkKKyAgICA6IG1faW1wbCh3ZWJDb250ZXh0LmdldCgpKQorICAgICwgbV9v
d25lZFdlYkNvbnRleHQod2ViQ29udGV4dCkKICAgICAsIG1faW5pdGlhbGl6ZWRBdmFpbGFibGVF
eHRlbnNpb25zKGZhbHNlKQogICAgICwgbV9sYXllckNvbXBvc2l0ZWQoZmFsc2UpCiAgICAgLCBt
X3ByZXNlcnZlRHJhd2luZ0J1ZmZlcihwcmVzZXJ2ZURyYXdpbmdCdWZmZXIpCkBAIC02Niw2ICs2
NywxNyBAQCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZShQYXNzT3duUHRyPFdlYktpdDo6V2ViR3JhcGhpYwogewogfQogCitHcmFwaGljc0NvbnRleHQz
RFByaXZhdGU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShXZWJLaXQ6OldlYkdyYXBoaWNzQ29u
dGV4dDNEKiB3ZWJDb250ZXh0LCBHckNvbnRleHQqIGdyQ29udGV4dCwgYm9vbCBwcmVzZXJ2ZURy
YXdpbmdCdWZmZXIpCisgICAgOiBtX2ltcGwod2ViQ29udGV4dCkKKyAgICAsIG1faW5pdGlhbGl6
ZWRBdmFpbGFibGVFeHRlbnNpb25zKGZhbHNlKQorICAgICwgbV9sYXllckNvbXBvc2l0ZWQoZmFs
c2UpCisgICAgLCBtX3ByZXNlcnZlRHJhd2luZ0J1ZmZlcihwcmVzZXJ2ZURyYXdpbmdCdWZmZXIp
CisgICAgLCBtX3Jlc291cmNlU2FmZXR5KFJlc291cmNlU2FmZXR5VW5rbm93bikKKyAgICAsIG1f
Z3JDb250ZXh0KGdyQ29udGV4dCkKK3sKK30KKworCiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6
On5HcmFwaGljc0NvbnRleHQzRFByaXZhdGUoKQogewogICAgIGlmIChtX2dyQ29udGV4dCkgewpA
QCAtODMsNiArOTUsMTUgQEAgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3ND
b250ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm8KICAgICByZXR1cm4gY29u
dGV4dC5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbUV4dGVybmFsV2Vi
Q29udGV4dEFuZEdyQ29udGV4dChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiB3ZWJDb250
ZXh0LCBHckNvbnRleHQqIGdyQ29udGV4dCwgYm9vbCBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIpCit7
CisgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdy
YXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzKCksIDApKTsKKwor
ICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQzRFByaXZhdGU+IHByaXYgPSBhZG9wdFB0cihuZXcg
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKHdlYkNvbnRleHQsIGdyQ29udGV4dCwgcHJlc2VydmVE
cmF3aW5nQnVmZmVyKSk7CisgICAgY29udGV4dC0+bV9wcml2YXRlID0gcHJpdi5yZWxlYXNlKCk7
CisgICAgcmV0dXJuIGNvbnRleHQucmVsZWFzZSgpOworfQorCiBXZWJLaXQ6OldlYkdyYXBoaWNz
Q29udGV4dDNEKiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmV4dHJhY3RXZWJHcmFwaGljc0Nv
bnRleHQzRChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKIHsKICAgICBpZiAoIWNvbnRleHQp
CkBAIC0xMzAsOSArMTUxLDEwIEBAIEdyQ29udGV4dCogR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
OjpnckNvbnRleHQoKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGludGVyZmFjZS0+ZkNhbGxi
YWNrID0gYmluZFdlYkdyYXBoaWNzQ29udGV4dDNER0xDb250ZXh0Q2FsbGJhY2s7Ci0gICAgaW50
ZXJmYWNlLT5mQ2FsbGJhY2tEYXRhID0gcmVpbnRlcnByZXRfY2FzdDxHckdMSW50ZXJmYWNlQ2Fs
bGJhY2tEYXRhPihtX2ltcGwuZ2V0KCkpOworICAgIGludGVyZmFjZS0+ZkNhbGxiYWNrRGF0YSA9
IHJlaW50ZXJwcmV0X2Nhc3Q8R3JHTEludGVyZmFjZUNhbGxiYWNrRGF0YT4obV9pbXBsKTsKIAot
ICAgIG1fZ3JDb250ZXh0LnJlc2V0KEdyQ29udGV4dDo6Q3JlYXRlKGtPcGVuR0xfR3JCYWNrZW5k
LCByZWludGVycHJldF9jYXN0PEdyQmFja2VuZENvbnRleHQ+KGludGVyZmFjZS5nZXQoKSkpKTsK
KyAgICBtX293bmVkR3JDb250ZXh0LnJlc2V0KEdyQ29udGV4dDo6Q3JlYXRlKGtPcGVuR0xfR3JC
YWNrZW5kLCByZWludGVycHJldF9jYXN0PEdyQmFja2VuZENvbnRleHQ+KGludGVyZmFjZS5nZXQo
KSkpKTsKKyAgICBtX2dyQ29udGV4dCA9IG1fb3duZWRHckNvbnRleHQ7CiAgICAgaWYgKCFtX2dy
Q29udGV4dCkKICAgICAgICAgcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZS5oCmluZGV4IGQxOTNhNmM4MzJlM2I0ZmFjZWYxZTM1YzkwY2MzZjg3MGUyMmYxY2Uu
LmE0NDFiMDYxZWY3NmNjYjljYWU3NzQ4ZjU3ZTgyMWQzOWFhZmY4NzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9H
cmFwaGljc0NvbnRleHQzRFByaXZhdGUuaApAQCAtNTQsNiArNTQsOCBAQCBwdWJsaWM6CiAgICAg
Ly8gYmUgdXNlZCBvbiBhbnkgb3RoZXIgdGhyZWFkLgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdy
YXBoaWNzQ29udGV4dDNEPiBjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9tV2ViQ29udGV4dChQYXNz
T3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+LCBib29sIHByZXNlcnZlRHJhd2lu
Z0J1ZmZlciA9IGZhbHNlKTsKIAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4
dDNEPiBjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9tRXh0ZXJuYWxXZWJDb250ZXh0QW5kR3JDb250
ZXh0KFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqLCBHckNvbnRleHQqLCBib29sIHByZXNl
cnZlRHJhd2luZ0J1ZmZlciA9IGZhbHNlKTsKKwogICAgIC8vIEhlbHBlciBmdW5jdGlvbiB0byBw
cm92aWRlIGFjY2VzcyB0byB0aGUgbG93ZXItbGV2ZWwgV2ViR3JhcGhpY3NDb250ZXh0M0QsCiAg
ICAgLy8gd2hpY2ggaXMgbmVlZGVkIGZvciBzdWJvcmRpbmF0ZSBjb250ZXh0cyBsaWtlIFdlYkdM
J3MgdG8gc2hhcmUgcmVzb3VyY2VzCiAgICAgLy8gd2l0aCB0aGUgY29tcG9zaXRvcidzIGNvbnRl
eHQuCkBAIC02MSw3ICs2Myw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkdyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZSgpOwogCi0gICAgV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCogd2Vi
Q29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfQorICAgIFdlYktpdDo6V2Vi
R3JhcGhpY3NDb250ZXh0M0QqIHdlYkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2ltcGw7IH0K
IAogICAgIEdyQ29udGV4dCogZ3JDb250ZXh0KCk7CiAKQEAgLTg2LDEwICs4OCwxMiBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKFBhc3NPd25QdHI8
V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRD4sIGJvb2wgcHJlc2VydmVEcmF3aW5nQnVmZmVy
KTsKKyAgICBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRl
eHQzRCosIEdyQ29udGV4dCosIGJvb2wgcHJlc2VydmVEcmF3aW5nQnVmZmVyKTsKIAogICAgIHZv
aWQgaW5pdGlhbGl6ZUV4dGVuc2lvbnMoKTsKIAotICAgIE93blB0cjxXZWJLaXQ6OldlYkdyYXBo
aWNzQ29udGV4dDNEPiBtX2ltcGw7CisgICAgV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCog
bV9pbXBsOworICAgIE93blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiBtX293bmVk
V2ViQ29udGV4dDsKICAgICBPd25QdHI8RXh0ZW5zaW9uczNEQ2hyb21pdW0+IG1fZXh0ZW5zaW9u
czsKICAgICBPd25QdHI8R3JhcGhpY3NDb250ZXh0M0RDb250ZXh0TG9zdENhbGxiYWNrQWRhcHRl
cj4gbV9jb250ZXh0TG9zdENhbGxiYWNrQWRhcHRlcjsKICAgICBPd25QdHI8R3JhcGhpY3NDb250
ZXh0M0RFcnJvck1lc3NhZ2VDYWxsYmFja0FkYXB0ZXI+IG1fZXJyb3JNZXNzYWdlQ2FsbGJhY2tB
ZGFwdGVyOwpAQCAtMTE0LDcgKzExOCw4IEBAIHByaXZhdGU6CiAgICAgLy8gdXNlZCB0byByZXNp
emUgdGhlIENhbnZhcy4KICAgICBTa0JpdG1hcCBtX3Jlc2l6aW5nQml0bWFwOwogCi0gICAgU2tB
dXRvVFVucmVmPEdyQ29udGV4dD4gbV9nckNvbnRleHQ7CisgICAgR3JDb250ZXh0KiBtX2dyQ29u
dGV4dDsKKyAgICBTa0F1dG9UVW5yZWY8R3JDb250ZXh0PiBtX293bmVkR3JDb250ZXh0OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAK
aW5kZXggYTcwNzRiN2VlZmU3ZDMwZTk4MzIyM2EyZjkwNDdiMjVjNTA1NWM2Yy4uM2ZkYjMzNTVi
NjBlMDIyMzJiOTg4OWIwMTUyYWNiMzA4NTc1ZWVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250
ZXh0M0QuY3BwCkBAIC0yOSw2ICsyOSwxMSBAQAogI2luY2x1ZGUgIlNoYXJlZEdyYXBoaWNzQ29u
dGV4dDNELmgiCiAKICNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIKKyNpZiBQTEFURk9STShDSFJP
TUlVTSkKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKKyNpbmNsdWRlIDxw
dWJsaWMvUGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0Qu
aD4KKyNlbmRpZgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTM4LDIzICs0Myw0MiBAQCBwdWJsaWM6CiAgICAgU2hhcmVkR3JhcGhpY3NDb250
ZXh0M0RJbXBsKCkgOiBtX2NvbnRleHQoMCkgeyB9CiAgICAgUGFzc1JlZlB0cjxHcmFwaGljc0Nv
bnRleHQzRD4gZ2V0T3JDcmVhdGVDb250ZXh0KCkKICAgICB7Ci0gICAgICAgIC8vIElmIHdlIGxv
c3QgdGhlIGNvbnRleHQsIG9yIGNhbid0IG1ha2UgaXQgY3VycmVudCwgY3JlYXRlIGEgbmV3IG9u
ZS4KLSAgICAgICAgaWYgKG1fY29udGV4dCAmJiAoIW1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJy
ZW50KCkgfHwgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5nZXRHcmFwaGljc1Jlc2V0U3Rh
dHVzQVJCKCkgIT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PX0VSUk9SKSkpCi0gICAgICAgICAgICBt
X2NvbnRleHQuY2xlYXIoKTsKLQogICAgICAgICBib29sIHdhc0NyZWF0ZWQgPSBmYWxzZTsKIAot
ICAgICAgICBpZiAoIW1fY29udGV4dCkgewotICAgICAgICAgICAgY3JlYXRlQ29udGV4dCgpOwot
ICAgICAgICAgICAgd2FzQ3JlYXRlZCA9IHRydWU7CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisg
ICAgICAgIFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqIHdlYkNvbnRleHQgPSBXZWJLaXQ6
OlBsYXRmb3JtOjpjdXJyZW50KCktPnNoYXJlZE9mZnNjcmVlbkdyYXBoaWNzQ29udGV4dDNEKCk7
CisgICAgICAgIEdyQ29udGV4dCogZ3JDb250ZXh0ID0gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVu
dCgpLT5zaGFyZWRPZmZzY3JlZW5HckNvbnRleHQoKTsKKworICAgICAgICBpZiAod2ViQ29udGV4
dCAmJiBnckNvbnRleHQpIHsKKyAgICAgICAgICAgIFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0
M0QqIG9sZFdlYkNvbnRleHQgPSBtX2NvbnRleHQgPyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6
OmV4dHJhY3RXZWJHcmFwaGljc0NvbnRleHQzRChtX2NvbnRleHQuZ2V0KCkpIDogMDsKKyAgICAg
ICAgICAgIEdyQ29udGV4dCogb2xkR3JDb250ZXh0ID0gbV9jb250ZXh0ID8gbV9jb250ZXh0LT5n
ckNvbnRleHQoKSA6IDA7CisgICAgICAgICAgICBpZiAod2ViQ29udGV4dCAhPSBvbGRXZWJDb250
ZXh0IHx8IGdyQ29udGV4dCAhPSBvbGRHckNvbnRleHQpCisgICAgICAgICAgICAgICAgbV9jb250
ZXh0LmNsZWFyKCk7CisKKyAgICAgICAgICAgIGlmICghbV9jb250ZXh0KSB7CisgICAgICAgICAg
ICAgICAgbV9jb250ZXh0ID0gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGlj
c0NvbnRleHRGcm9tRXh0ZXJuYWxXZWJDb250ZXh0QW5kR3JDb250ZXh0KHdlYkNvbnRleHQsIGdy
Q29udGV4dCk7CisgICAgICAgICAgICAgICAgd2FzQ3JlYXRlZCA9IHRydWU7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIC8vIEZJWE1FOiBEb24ndCBmYWxsYmFjayB0byB0aGUgbGVnYWN5
IHBhdGggd2hlbiBjaHJvbWl1bSBzdXBwb3J0cyB0aGUgbmV3IG9mZnNjcmVlbiBtZXRob2RzLgor
ICAgICAgICB9IGVsc2UKKyNlbmRpZgorICAgICAgICB7CisgICAgICAgICAgICAvLyBJZiB3ZSBs
b3N0IHRoZSBjb250ZXh0LCBvciBjYW4ndCBtYWtlIGl0IGN1cnJlbnQsIGNyZWF0ZSBhIG5ldyBv
bmUuCisgICAgICAgICAgICBpZiAobV9jb250ZXh0ICYmICghbV9jb250ZXh0LT5tYWtlQ29udGV4
dEN1cnJlbnQoKSB8fCAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPmdldEdyYXBoaWNzUmVz
ZXRTdGF0dXNBUkIoKSAhPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9fRVJST1IpKSkKKyAgICAgICAg
ICAgICAgICBtX2NvbnRleHQuY2xlYXIoKTsKKworICAgICAgICAgICAgaWYgKCFtX2NvbnRleHQp
IHsKKyAgICAgICAgICAgICAgICBjcmVhdGVDb250ZXh0KCk7CisgICAgICAgICAgICAgICAgd2Fz
Q3JlYXRlZCA9IHRydWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtX2NvbnRl
eHQgJiYgIW1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCisgICAgICAgICAgICAgICAg
bV9jb250ZXh0LmNsZWFyKCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobV9jb250ZXh0ICYm
ICFtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpKQotICAgICAgICAgICAgbV9jb250ZXh0
LmNsZWFyKCk7Ci0KICAgICAgICAgaWYgKG1fY29udGV4dCAmJiB3YXNDcmVhdGVkKQogICAgICAg
ICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnB1c2hHcm91cE1hcmtlckVYVCgiU2hh
cmVkR3JhcGhpY3NDb250ZXh0Iik7Ci0KICAgICAgICAgcmV0dXJuIG1fY29udGV4dDsKICAgICB9
CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>