<?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>107631</bug_id>
          
          <creation_ts>2013-01-22 22:33:17 -0800</creation_ts>
          <short_desc>[EFL][WK2] Scale to focused area when double tap gesture is recognized.</short_desc>
          <delta_ts>2017-03-11 10:46:38 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>107101</dependson>
    
    <dependson>118548</dependson>
    
    <dependson>118585</dependson>
          <blocked>111702</blocked>
    
    <blocked>131655</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eunmi Lee">enmi.lee</reporter>
          <assigned_to name="Eunmi Lee">enmi.lee</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>luiz</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>noam</cc>
    
    <cc>sergio</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>813847</commentid>
    <comment_count>0</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2013-01-22 22:33:17 -0800</bug_when>
    <thetext>Implement behavior for double tap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813925</commentid>
    <comment_count>1</comment_count>
      <attachid>184166</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2013-01-23 00:09:02 -0800</bug_when>
    <thetext>Created attachment 184166
Patch

Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850939</commentid>
    <comment_count>2</comment_count>
      <attachid>192164</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2013-03-08 00:08:47 -0800</bug_when>
    <thetext>Created attachment 192164
Patch

Rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851214</commentid>
    <comment_count>3</comment_count>
      <attachid>192164</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-03-08 08:12:53 -0800</bug_when>
    <thetext>Comment on attachment 192164
Patch

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

&gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:172
&gt; +void WKViewFindZoomableAreaForPoint(WKViewRef viewRef, WKPoint point, WKSize size)

What is size here? Maybe this should be more similar to touch points...

&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:1331
&gt;  
&gt; +void EwkView::didFindZoomableArea(const WKPoint&amp; point, const WKRect&amp; area)
&gt; +{
&gt; +    m_pageViewportControllerClient-&gt;scaleToAreaWithAnimation(toIntPoint(point), toIntRect(area), 5);

It seems this could be split into two patches... API and implementation for the EwkView

&gt; Source/WebKit2/UIProcess/API/efl/TapGestureHandler.cpp:131
&gt;  void TapGestureHandler::processDoubleTap()
&gt;  {
&gt; -    notImplemented();
&gt; +    IntPoint position = m_ewkView-&gt;webView()-&gt;transformFromScene().mapPoint(m_ewkView-&gt;transformToScreen().inverse().mapPoint(m_secondPressedPoint));

It seems this depends on another patch

&gt; Source/WebKit2/UIProcess/PageViewportController.cpp:262
&gt;          m_contentsPosition = position;
&gt; -    if (!m_pendingScaleChange)
&gt; -        applyScaleAfterRenderingContents(scale);
&gt; +    applyScaleAfterRenderingContents(scale);
&gt;  

You need bbandix to approve this change

&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:94
&gt; +{
&gt; +    m_animator = ecore_animator_add(animatorCallback, this);
&gt; +    m_scaleDuration = 1 / ecore_animator_frametime_get() / 3;

Does this bring us any advantage (as we are using coord. graphics) in contract to using a webcore timer? It might do, maybe you should discuss with dshuang or noamr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907534</commentid>
    <comment_count>4</comment_count>
      <attachid>192164</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2013-07-11 00:11:49 -0700</bug_when>
    <thetext>Comment on attachment 192164
Patch

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

Thanks for your comments :)

&gt;&gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:172
&gt;&gt; +void WKViewFindZoomableAreaForPoint(WKViewRef viewRef, WKPoint point, WKSize size)
&gt; 
&gt; What is size here? Maybe this should be more similar to touch points...

The size means the area of point, that is needed because we can touch using finger.
The point and size can be rectangle, so I will modify parameters.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:1331
&gt;&gt; +    m_pageViewportControllerClient-&gt;scaleToAreaWithAnimation(toIntPoint(point), toIntRect(area), 5);
&gt; 
&gt; It seems this could be split into two patches... API and implementation for the EwkView

Yes, I will separate patch.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/TapGestureHandler.cpp:131
&gt;&gt; +    IntPoint position = m_ewkView-&gt;webView()-&gt;transformFromScene().mapPoint(m_ewkView-&gt;transformToScreen().inverse().mapPoint(m_secondPressedPoint));
&gt; 
&gt; It seems this depends on another patch

Yes, that&apos;s wrong code, I will modify that.

&gt;&gt; Source/WebKit2/UIProcess/PageViewportController.cpp:262
&gt;&gt;  
&gt; 
&gt; You need bbandix to approve this change

OK, thanks.

&gt;&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:94
&gt;&gt; +    m_scaleDuration = 1 / ecore_animator_frametime_get() / 3;
&gt; 
&gt; Does this bring us any advantage (as we are using coord. graphics) in contract to using a webcore timer? It might do, maybe you should discuss with dshuang or noamr

The ecore_animator is useful because it is running depend on settings of Ecore.
That means, all ecore_animator of some applications can run with same duration and tick.
So, I think ecore_animator is better than webcore timer for EFL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907542</commentid>
    <comment_count>5</comment_count>
      <attachid>192164</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-07-11 00:53:12 -0700</bug_when>
    <thetext>Comment on attachment 192164
Patch

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

&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:43
&gt; +    , m_transition(new Transition(this))

Is it leaking? OwnPtr might help

&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:93
&gt; +    m_animator = ecore_animator_add(animatorCallback, this);

where is ecore_animator_del() ?

&gt;&gt;&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:94
&gt;&gt;&gt; +    m_scaleDuration = 1 / ecore_animator_frametime_get() / 3;
&gt;&gt; 
&gt;&gt; Does this bring us any advantage (as we are using coord. graphics) in contract to using a webcore timer? It might do, maybe you should discuss with dshuang or noamr
&gt; 
&gt; The ecore_animator is useful because it is running depend on settings of Ecore.
&gt; That means, all ecore_animator of some applications can run with same duration and tick.
&gt; So, I think ecore_animator is better than webcore timer for EFL.

maybe it is possible to make it more readable than &quot;1 / ecore_animator_frametime_get() / 3&quot; ?

&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.h:62
&gt; +    class Transition {

What is the reason for it to be nested type?

&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.h:64
&gt; +        Transition(PageViewportControllerClientEfl* parent)

if it is a parent there should be a child. Think it&apos;s just a viewportController.

&gt; Source/WebKit2/UIProcess/efl/ViewClientEfl.h:53
&gt; +    static void didFindZoomableArea(WKViewRef, WKPoint, WKRect, const void* clientInfo);

const WKPoint&amp;
const WKRect&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907547</commentid>
    <comment_count>6</comment_count>
      <attachid>192164</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-07-11 00:59:09 -0700</bug_when>
    <thetext>Comment on attachment 192164
Patch

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

The patch is better to be split in order to make review easier.

&gt; Source/WebKit2/UIProcess/PageViewportController.cpp:261
&gt; +    applyScaleAfterRenderingContents(scale);

Why? as far as I remember (I might be wrong) that would lead to scaling dead loop. Anyway must be tested carefully.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907551</commentid>
    <comment_count>7</comment_count>
      <attachid>192164</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2013-07-11 01:15:07 -0700</bug_when>
    <thetext>Comment on attachment 192164
Patch

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

I will separate this patch into several patches, and apply comments to the each patch.

&gt;&gt; Source/WebKit2/UIProcess/PageViewportController.cpp:261
&gt;&gt; +    applyScaleAfterRenderingContents(scale);
&gt; 
&gt; Why? as far as I remember (I might be wrong) that would lead to scaling dead loop. Anyway must be tested carefully.

Without above patch, I can not animate the scaling because m_pendingScaleChange is set to true for first iteration of animation, so I need that code.
I didn&apos;t see the dead loop yet, but I will test scaling more and corefully.

&gt;&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:43
&gt;&gt; +    , m_transition(new Transition(this))
&gt; 
&gt; Is it leaking? OwnPtr might help

thanks, I will modify.

&gt;&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:93
&gt;&gt; +    m_animator = ecore_animator_add(animatorCallback, this);
&gt; 
&gt; where is ecore_animator_del() ?

I have to add that.

&gt;&gt;&gt;&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:94
&gt;&gt;&gt;&gt; +    m_scaleDuration = 1 / ecore_animator_frametime_get() / 3;
&gt;&gt;&gt; 
&gt;&gt;&gt; Does this bring us any advantage (as we are using coord. graphics) in contract to using a webcore timer? It might do, maybe you should discuss with dshuang or noamr
&gt;&gt; 
&gt;&gt; The ecore_animator is useful because it is running depend on settings of Ecore.
&gt;&gt; That means, all ecore_animator of some applications can run with same duration and tick.
&gt;&gt; So, I think ecore_animator is better than webcore timer for EFL.
&gt; 
&gt; maybe it is possible to make it more readable than &quot;1 / ecore_animator_frametime_get() / 3&quot; ?

yes, actually this patch is for testing and work in progress.
So I need to make patch more completely.

&gt;&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.h:62
&gt;&gt; +    class Transition {
&gt; 
&gt; What is the reason for it to be nested type?

It is because it is used only here yet.

&gt;&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.h:64
&gt;&gt; +        Transition(PageViewportControllerClientEfl* parent)
&gt; 
&gt; if it is a parent there should be a child. Think it&apos;s just a viewportController.

Yes, right.

&gt;&gt; Source/WebKit2/UIProcess/efl/ViewClientEfl.h:53
&gt;&gt; +    static void didFindZoomableArea(WKViewRef, WKPoint, WKRect, const void* clientInfo);
&gt; 
&gt; const WKPoint&amp;
&gt; const WKRect&amp;

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907561</commentid>
    <comment_count>8</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-07-11 01:36:58 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 192164 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=192164&amp;action=review
&gt; 
&gt; I will separate this patch into several patches, and apply comments to the each patch.
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/PageViewportController.cpp:261
&gt; &gt;&gt; +    applyScaleAfterRenderingContents(scale);
&gt; &gt; 
&gt; &gt; Why? as far as I remember (I might be wrong) that would lead to scaling dead loop. Anyway must be tested carefully.
&gt; 
&gt; Without above patch, I can not animate the scaling because m_pendingScaleChange is set to true for first iteration of animation, so I need that code.
&gt; I didn&apos;t see the dead loop yet, but I will test scaling more and corefully.
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:43
&gt; &gt;&gt; +    , m_transition(new Transition(this))
&gt; &gt; 
&gt; &gt; Is it leaking? OwnPtr might help
&gt; 
&gt; thanks, I will modify.
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:93
&gt; &gt;&gt; +    m_animator = ecore_animator_add(animatorCallback, this);
&gt; &gt; 
&gt; &gt; where is ecore_animator_del() ?
&gt; 
&gt; I have to add that.
&gt; 
&gt; &gt;&gt;&gt;&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:94
&gt; &gt;&gt;&gt;&gt; +    m_scaleDuration = 1 / ecore_animator_frametime_get() / 3;
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; Does this bring us any advantage (as we are using coord. graphics) in contract to using a webcore timer? It might do, maybe you should discuss with dshuang or noamr
&gt; &gt;&gt; 
&gt; &gt;&gt; The ecore_animator is useful because it is running depend on settings of Ecore.
&gt; &gt;&gt; That means, all ecore_animator of some applications can run with same duration and tick.
&gt; &gt;&gt; So, I think ecore_animator is better than webcore timer for EFL.
&gt; &gt; 
&gt; &gt; maybe it is possible to make it more readable than &quot;1 / ecore_animator_frametime_get() / 3&quot; ?
&gt; 
&gt; yes, actually this patch is for testing and work in progress.
&gt; So I need to make patch more completely.
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.h:62
&gt; &gt;&gt; +    class Transition {
&gt; &gt; 
&gt; &gt; What is the reason for it to be nested type?
&gt; 
&gt; It is because it is used only here yet.

Could you please than just define it in .cpp file and keep only forward declaration in header?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907563</commentid>
    <comment_count>9</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-07-11 01:44:48 -0700</bug_when>
    <thetext>&gt; Could you please than just define it in .cpp file and keep only forward declaration in header?
I mean not make it nested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>912426</commentid>
    <comment_count>10</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2013-07-29 03:46:03 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; Could you please than just define it in .cpp file and keep only forward declaration in header?
&gt; I mean not make it nested.

OK, I will make it separated class, and I will define it in the header file to use OwnPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>912427</commentid>
    <comment_count>11</comment_count>
      <attachid>207634</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2013-07-29 03:54:50 -0700</bug_when>
    <thetext>Created attachment 207634
Patch

Update for comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915726</commentid>
    <comment_count>12</comment_count>
      <attachid>208405</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2013-08-09 01:28:20 -0700</bug_when>
    <thetext>Created attachment 208405
Patch

Rebase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941186</commentid>
    <comment_count>13</comment_count>
      <attachid>208405</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-10-18 07:15:57 -0700</bug_when>
    <thetext>Comment on attachment 208405
Patch

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

&gt; Source/WebKit2/UIProcess/PageViewportController.cpp:-260
&gt; -    if (!m_pendingScaleChange)

This change looks a bit odd and is not explained in the Changelog. Do we really need this? Cannot we make sure the m_pendingScaleChange flag is correctly updated instead?

&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:48
&gt; +    virtual ~Transition();

It does not look like this destructor needs to be virtual, at least for now.

&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:50
&gt; +    void setRects(const WebCore::FloatRect&amp; baseRect, const WebCore::FloatRect&amp; targetRect);

WebCore:: is not needed

&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:54
&gt; +    Transition(TransitionClient*);

explicit

&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:61
&gt; +    WebCore::FloatRect m_targetRect;

WebCore:: is not needed.

&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:62
&gt; +    WebCore::FloatRect m_baseRect;

Ditto.

&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:89
&gt; +    m_animator = ecore_animator_add(animatorCallback, this);

This looks leak prone, what if m_animator was not null? (i.e. if someone calls start() several times). We at least need an assertion.

&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:99
&gt; +bool Transition::process()

This method does not seem to bring much, I would just move the code to Transition::animatorCallback().

&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:101
&gt; +    FloatRect rect;

I would move this one right before m_client-&gt;setTransitionRect(rect);

&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:102
&gt; +    float multiplier = easeInOutQuad(m_scaleIndex++, 0, 1.0, m_scaleDuration);

Use 1 instead of 1.0, See &quot;Floating point literals&quot; section in WebKit coding style.

&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:112
&gt; +        return false;

Here I would use ECORE_CALLBACK_CANCEL for clarity

&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:115
&gt; +    return true;

ECORE_CALLBACK_RENEW

&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:193
&gt; +    FloatRect currentContentsRect = FloatRect(contentsPosition.x, contentsPosition.y, viewportSize.width, viewportSize.height);

FloatRect currentContentsRect(contentsPosition.x, contentsPosition.y, viewportSize.width, viewportSize.height);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972781</commentid>
    <comment_count>14</comment_count>
      <attachid>208405</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2014-01-27 21:54:30 -0800</bug_when>
    <thetext>Comment on attachment 208405
Patch

Thanks, I will upload new patch with re-base and applying comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972783</commentid>
    <comment_count>15</comment_count>
      <attachid>208405</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2014-01-27 22:12:46 -0800</bug_when>
    <thetext>Comment on attachment 208405
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/PageViewportController.cpp:-260
&gt;&gt; -    if (!m_pendingScaleChange)
&gt; 
&gt; This change looks a bit odd and is not explained in the Changelog. Do we really need this? Cannot we make sure the m_pendingScaleChange flag is correctly updated instead?

I will make new patch without using didChangeContentsVisibility.

&gt;&gt; Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp:89
&gt;&gt; +    m_animator = ecore_animator_add(animatorCallback, this);
&gt; 
&gt; This looks leak prone, what if m_animator was not null? (i.e. if someone calls start() several times). We at least need an assertion.

If m_animator is not null, it should be deleted firstly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972809</commentid>
    <comment_count>16</comment_count>
      <attachid>222411</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2014-01-27 23:53:17 -0800</bug_when>
    <thetext>Created attachment 222411
Patch

Rebase and modify for Christophe Dumez&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976246</commentid>
    <comment_count>17</comment_count>
      <attachid>222411</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-02-04 01:04:56 -0800</bug_when>
    <thetext>Comment on attachment 222411
Patch

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

Looks good to me on EFL side.

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/PageViewportController.h:71
&gt; +    void applyScaleAfterRenderingContents(float scale);

Need to confirm by Coodinated graphics folks, Noam ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987102</commentid>
    <comment_count>18</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-03-04 20:55:23 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 222411 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=222411&amp;action=review
&gt; 
&gt; Looks good to me on EFL side.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/CoordinatedGraphics/PageViewportController.h:71
&gt; &gt; +    void applyScaleAfterRenderingContents(float scale);
&gt; 
&gt; Need to confirm by Coodinated graphics folks, Noam ?

Noam, any comment ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066420</commentid>
    <comment_count>19</comment_count>
      <attachid>222411</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-02-03 07:31:51 -0800</bug_when>
    <thetext>Comment on attachment 222411
Patch

Eunmi, I wonder if this patch is still valid. I would clear review? from attachment 222411 [details] so that this bug does not appear in http://webkit.org/pending-review. If this patch is still valid for EFL port, please rebase this patch, then request review again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1286626</commentid>
    <comment_count>20</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-03-11 10:46:38 -0800</bug_when>
    <thetext>Closing this bug because the EFL port has been removed from trunk.

If you feel this bug applies to a different upstream WebKit port and was closed in error, please either update the title and reopen the bug, or leave a comment to request this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184166</attachid>
            <date>2013-01-23 00:09:02 -0800</date>
            <delta_ts>2013-03-08 00:08:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107631-20130123170554.patch</filename>
            <type>text/plain</type>
            <size>23305</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTY1ZDA2YjhhMzdlZWY3
OGU5YmRhYzQxNjZlYTY2NmE3YzgyMzQ5My4uYTM2ZTY1NjNmNTg1NDFhMmVhYmM2NGYxNmNiOWYy
MjI1Yjg1MDg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEzLTAxLTIzICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFNj
YWxlIHRvIGZvY3VzZWQgYXJlYSB3aGVuIGRvdWJsZSB0YXAgZ2VzdHVyZSBpcyByZWNvZ25pemVk
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NjMx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2NhbGUg
aW4gdG8gdGhlIHpvb21hYmxlIGFyZWEgd2hlbiBjdXJyZW50IHNjYWxlIGZhY3RvciBpcyBzYW1l
IGFzCisgICAgICAgIG1pbmltdW0gc2NhbGUgZmFjdG9yIGFuZCBzY2FsZSBvdXQgdG8gdGhlIG1p
bmltdW0gc2NhbGUgZmFjdG9yCisgICAgICAgIG90aGVyd2lzZS4KKyAgICAgICAgVGhlIFF0IHBv
cnQncyBmdW5jdGlvbiB0byBmaW5kIHpvb21hYmxlIGFyZWEgZm9yIHBvaW50IGlzIHVzZWQgYW5k
CisgICAgICAgIFF0IHBvcnQgY29kZXMgYXJlIHJlZmVyZW5jZWQuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHA6CisgICAgICAgIChFd2tWaWV3SW1wbDo6dHJh
bnNmb3JtRnJvbVZpZXcpOgorICAgICAgICAoRXdrVmlld0ltcGw6OnRyYW5zZm9ybUZyb21TY2Vu
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuaDoKKyAgICAgICAg
KEV3a1ZpZXdJbXBsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAg
ICAoUGFnZUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZmluZFpvb21hYmxlQXJlYUZvclBvaW50KToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmlu
ZFpvb21hYmxlQXJlYSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAg
ICAgICAoV2ViUGFnZVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEJhc2UuaDoKKyAg
ICAgICAgKFBhZ2VDbGllbnRCYXNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VDbGll
bnREZWZhdWx0SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnREZWZhdWx0SW1w
bDo6ZGlkRmluZFpvb21hYmxlQXJlYSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9lZmwvUGFnZUNsaWVudERlZmF1bHRJbXBsLmg6CisgICAgICAgIChQYWdlQ2xpZW50
RGVmYXVsdEltcGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudExlZ2FjeUlt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50TGVnYWN5SW1wbDo6ZGlkRmluZFpv
b21hYmxlQXJlYSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwv
UGFnZUNsaWVudExlZ2FjeUltcGwuaDoKKyAgICAgICAgKFBhZ2VDbGllbnRMZWdhY3lJbXBsKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsOjpQ
YWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZp
ZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbDo6VHJhbnNpdGlvbjo6c2V0UmVjdHMpOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVu
dEVmbDo6VHJhbnNpdGlvbjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRD
b250cm9sbGVyQ2xpZW50RWZsOjpUcmFuc2l0aW9uOjphbmltYXRvckNhbGxiYWNrKToKKyAgICAg
ICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbDo6VHJhbnNpdGlvbjo6
cHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRF
Zmw6OnNjYWxlVG9BcmVhV2l0aEFuaW1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3
cG9ydENvbnRyb2xsZXJDbGllbnRFZmw6OnNldENvbnRlbnRzUmVjdCk6CisgICAgICAgICogVUlQ
cm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmg6CisgICAgICAgIChQ
YWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsKToKKyAgICAgICAgKFRyYW5zaXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsOjpUcmFuc2l0
aW9uOjpUcmFuc2l0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1RhcEdlc3R1cmVIYW5k
bGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGFwR2VzdHVyZUhhbmRsZXI6OnByb2Nlc3NEb3Vi
bGVUYXApOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJQYWdlUHJveHlRdC5jcHA6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZmluZFpvb21hYmxlQXJlYUZvclBvaW50KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViUGFnZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIw
MTMtMDEtMjAgIEV1bm1pIExlZSAgPGV1bm1pMTUubGVlQHNhbXN1bmcuY29tPgogCiAgICAgICAg
IFtFRkxdW1dLMl0gUHJvY2VzcyBzaW5nbGUgdGFwIHVzaW5nIFdlYkV2ZW50OjpHZXN0dXJlU2lu
Z2xlVGFwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdr
Vmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0lt
cGwuY3BwCmluZGV4IGY5OTllMzNmNzc4YjRkN2NiNDExYTcyNWNmNTg3OTdiNDFkNDFiMjYuLjY5
YjBhOTRjMmY4OTg3ODgzMzEyZTQ2MjIyNDA0YzFjOWM1NGY2YjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHAKQEAgLTMwNyw3ICszMDcs
NyBAQCBmbG9hdCBFd2tWaWV3SW1wbDo6ZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdAogICAgIHJl
dHVybiBtX3BhZ2VQcm94eS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKIH0KIAotQWZmaW5lVHJhbnNm
b3JtIEV3a1ZpZXdJbXBsOjp0cmFuc2Zvcm1Gcm9tU2NlbmUoKSBjb25zdAorQWZmaW5lVHJhbnNm
b3JtIEV3a1ZpZXdJbXBsOjp0cmFuc2Zvcm1Gcm9tVmlldygpIGNvbnN0CiB7CiAgICAgQWZmaW5l
VHJhbnNmb3JtIHRyYW5zZm9ybTsKIApAQCAtMzE4LDYgKzMxOCwxMyBAQCBBZmZpbmVUcmFuc2Zv
cm0gRXdrVmlld0ltcGw6OnRyYW5zZm9ybUZyb21TY2VuZSgpIGNvbnN0CiAgICAgdHJhbnNmb3Jt
LnRyYW5zbGF0ZShwYWdlUG9zaXRpb24oKS54KCksIHBhZ2VQb3NpdGlvbigpLnkoKSk7CiAjZW5k
aWYKIAorICAgIHJldHVybiB0cmFuc2Zvcm07Cit9CisKK0FmZmluZVRyYW5zZm9ybSBFd2tWaWV3
SW1wbDo6dHJhbnNmb3JtRnJvbVNjZW5lKCkgY29uc3QKK3sKKyAgICBBZmZpbmVUcmFuc2Zvcm0g
dHJhbnNmb3JtID0gdHJhbnNmb3JtRnJvbVZpZXcoKTsKKwogICAgIEV3a19WaWV3X1NtYXJ0X0Rh
dGEqIHNkID0gc21hcnREYXRhKCk7CiAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZSgtc2QtPnZpZXcu
eCwgLXNkLT52aWV3LnkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9Fd2tWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
RXdrVmlld0ltcGwuaAppbmRleCAzMzZlZmFjNmZiZmViYmZjYWM3ZWIwZjdiZjZhMjk0N2FjMTBh
NTI0Li5hNDI1NDk3MjIyOTA0NWZjYzk4OTJhMjEyMjA0YWJlOWY5ZmM4N2EzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmgKQEAgLTEyNyw2ICsx
MjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2Fs
ZSk7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKIAorICAgIFdlYkNvcmU6
OkFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm1Gcm9tVmlldygpIGNvbnN0OwogICAgIFdlYkNvcmU6
OkFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm1Ub1NjZW5lKCkgY29uc3Q7CiAgICAgV2ViQ29yZTo6
QWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybUZyb21TY2VuZSgpIGNvbnN0OwogICAgIFdlYkNvcmU6
OkFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm1Ub1NjcmVlbigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggZDA4Y2M5MWY2NDRkOWE5ZjhiYjg3M2ViNGZlODMx
Yjk5ODNmOGM2Mi4uZjhjNDMyZDA4OWIxZGE5ZDlhYWE4OWI4ZDI3NTZhNjc1MjFlYzM3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xMTksOCArMTE5LDEwIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVuZGVyRnJhbWUoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgY29udGVudHNTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjb3ZlcmVkUmVjdCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBwYWdlVHJhbnNpdGlvblZpZXdwb3J0UmVhZHkoKSA9IDA7
CiAjZW5kaWYKLSNpZiBQTEFURk9STShRVCkKKyNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0o
RUZMKQogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5kWm9vbWFibGVBcmVhKGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpID0gMDsKKyNlbmRpZgorI2lmIFBM
QVRGT1JNKFFUKQogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21OYXZpZ2F0
b3JRdE9iamVjdChjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUF1
dGhlbnRpY2F0aW9uUmVxdWlyZWRSZXF1ZXN0KGNvbnN0IFN0cmluZyYgaG9zdG5hbWUsIGNvbnN0
IFN0cmluZyYgcmVhbG0sIGNvbnN0IFN0cmluZyYgcHJlZmlsbGVkVXNlcm5hbWUsIFN0cmluZyYg
dXNlcm5hbWUsIFN0cmluZyYgcGFzc3dvcmQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxl
Q2VydGlmaWNhdGVWZXJpZmljYXRpb25SZXF1ZXN0KGNvbnN0IFN0cmluZyYgaG9zdG5hbWUsIGJv
b2wmIGlnbm9yZUVycm9ycykgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCA4YTM1YzFhMmU5ZWI3NDhhZjExODBjNmY5OTA3YWQ1MzcwMTE2YTlkLi4w
OTE2NGEzOGY0ZmM3MTZmOTc3ZGQ0MDgzY2MzNjU4NmU2OTJjOWJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjgxMCw2ICsyODEwLDE5IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpoYW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94eSogZG93bmxv
YWQpCiAjZW5kaWYgLy8gUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0o
R1RLKQogCiAjaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpmaW5kWm9vbWFibGVBcmVhRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50LCBjb25z
dCBJbnRTaXplJiBhcmVhKQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkZpbmRab29tYWJsZUFy
ZWFGb3JQb2ludChwb2ludCwgYXJlYSksIG1fcGFnZUlEKTsKK30KKwordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZEZpbmRab29tYWJsZUFyZWEoY29uc3QgSW50UG9pbnQmIHRhcmdldCwgY29uc3QgSW50
UmVjdCYgYXJlYSkKK3sKKyAgICBtX3BhZ2VDbGllbnQtPmRpZEZpbmRab29tYWJsZUFyZWEodGFy
Z2V0LCBhcmVhKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZUNvbnRlbnRzU2l6
ZShjb25zdCBJbnRTaXplJiBzaXplKQogewogICAgIG1fcGFnZUNsaWVudC0+ZGlkQ2hhbmdlQ29u
dGVudHNTaXplKHNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmlu
ZGV4IDBjZDJlNWZhOGZhZTVkZDQ2M2I1NmUzZTQ0ZWViNDg3NWVkYjNiZDUuLjMzNjMxOWQwOWE1
NzNhZmY0NWIyMzU3YWM1YTY3MzgzYmI1OWVjYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTY1NSw4ICs2NTUsMTEgQEAgcHVibGljOgogCiAgICAgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyBjcmVhdGlvblBhcmFtZXRlcnMoKSBjb25zdDsKIAotI2lmIFBM
QVRGT1JNKFFUKQorI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpCiAgICAgdm9pZCBm
aW5kWm9vbWFibGVBcmVhRm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJik7CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKFFUKQogICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tTmF2aWdhdG9yUXRPYmplY3QoY29uc3QgU3RyaW5nJik7CiAj
ZW5kaWYKIApAQCAtODY3LDExICs4NzAsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFnZURpZFJl
cXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKICAgICB2b2lkIHBhZ2VUcmFu
c2l0aW9uVmlld3BvcnRSZWFkeSgpOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oUVQpCi0gICAgdm9p
ZCBkaWRGaW5kWm9vbWFibGVBcmVhKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYpOwotI2VuZGlmCi0KICNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0o
RUZMKQorICAgIHZvaWQgZGlkRmluZFpvb21hYmxlQXJlYShjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2b2lkIGRpZENoYW5nZUNvbnRlbnRz
U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNzkxYWY1MmJi
MTE2YmU1ZjkyZTFjYjk0ZDY5NDU4MDU2MTgwMzIxMC4uMzQ5M2U2YWMxMzZiYjBlYmY4ZjQzN2M3
NGI0Zjk2ZGIwNTU5MjhlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC03Nyw4ICs3NywxMCBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlUHJveHkgewogICAgIFBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKFdlYkNvcmU6OkludFBvaW50IHBv
aW50KQogICAgIFBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSgpCiAjZW5kaWYKLSNpZiBQTEFU
Rk9STShRVCkKKyNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oRUZMKQogICAgIERpZEZpbmRa
b29tYWJsZUFyZWEoV2ViQ29yZTo6SW50UG9pbnQgdGFyZ2V0LCBXZWJDb3JlOjpJbnRSZWN0IGFy
ZWEpCisjZW5kaWYKKyNpZiBQTEFURk9STShRVCkKICAgICBBdXRoZW50aWNhdGlvblJlcXVpcmVk
UmVxdWVzdChXVEY6OlN0cmluZyBob3N0bmFtZSwgV1RGOjpTdHJpbmcgcmVhbG0sIFdURjo6U3Ry
aW5nIHByZWZpbGxlZFVzZXJuYW1lKSAtPiAoV1RGOjpTdHJpbmcgdXNlcm5hbWUsIFdURjo6U3Ry
aW5nIHBhc3N3b3JkKQogICAgIENlcnRpZmljYXRlVmVyaWZpY2F0aW9uUmVxdWVzdChXVEY6OlN0
cmluZyBob3N0bmFtZSkgLT4gKGJvb2wgaWdub3JlRXJyb3JzKQogICAgIFByb3h5QXV0aGVudGlj
YXRpb25SZXF1aXJlZFJlcXVlc3QoV1RGOjpTdHJpbmcgaG9zdG5hbWUsIHVpbnQxNl90IHBvcnQs
IFdURjo6U3RyaW5nIHByZWZpbGxlZFVzZXJuYW1lKSAtPiAoV1RGOjpTdHJpbmcgdXNlcm5hbWUs
IFdURjo6U3RyaW5nIHBhc3N3b3JkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9QYWdlQ2xpZW50QmFzZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Q
YWdlQ2xpZW50QmFzZS5oCmluZGV4IDFlOWQ0OGNlNWNiMGQ3ODE1M2E1NjAyOTE4YTJiNDFmNGY2
YzA4NjEuLjU3YTc5OWYzZGRjNWUyNTdmMjUxZDNkODEwYWFkN2RmY2U5ODBkMGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEJhc2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRCYXNlLmgKQEAgLTEyMSw2ICsx
MjEsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VUcmFuc2l0aW9uVmlld3Bv
cnRSZWFkeSgpID0gMDsKICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmRab29tYWJs
ZUFyZWEoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikg
PSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgRXdrVmlld0ltcGwqIG1fdmlld0ltcGw7CiAgICAgRGVm
YXVsdFVuZG9Db250cm9sbGVyIG1fdW5kb0NvbnRyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnREZWZhdWx0SW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnREZWZhdWx0SW1wbC5jcHAKaW5kZXggYjRl
Yjg0MTE2MTdkOWFjNmEwZDIwMzA5NTg0YWM0ZDZmNDhjNGI5NC4uZWQ1YzlmNjZiNzg5NzIxMTM4
MGUxYjE3NDExZDhiMjFjNThhZjMzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9QYWdlQ2xpZW50RGVmYXVsdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvUGFnZUNsaWVudERlZmF1bHRJbXBsLmNwcApAQCAtOTgsNiArOTgsMTYgQEAg
dm9pZCBQYWdlQ2xpZW50RGVmYXVsdEltcGw6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiBzaXplKQogICAgIG1fdmlld0ltcGwtPnNtYXJ0Q2FsbGJhY2s8Q29u
dGVudHNTaXplQ2hhbmdlZD4oKS5jYWxsKHNpemUpOwogfQogCit2b2lkIFBhZ2VDbGllbnREZWZh
dWx0SW1wbDo6ZGlkRmluZFpvb21hYmxlQXJlYShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgdGFy
Z2V0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBhcmVhKQoreworI2lmIFVTRShUSUxFRF9CQUNL
SU5HX1NUT1JFKQorICAgIGlmICghbV9wYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50KQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnQtPnNjYWxl
VG9BcmVhV2l0aEFuaW1hdGlvbih0YXJnZXQsIGFyZWEsIDUpOworI2VuZGlmCit9CisKICNpZiBV
U0UoVElMRURfQkFDS0lOR19TVE9SRSkKIHZvaWQgUGFnZUNsaWVudERlZmF1bHRJbXBsOjp1cGRh
dGVWaWV3cG9ydFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbikKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudERlZmF1bHRJbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnREZWZhdWx0SW1wbC5oCmlu
ZGV4IGQyZTJiYTg1NDgzYjlkMTdjZjNmMThiYzA4YjQ4NGRhYWVkYTEwYTUuLjIxNWQ1MDhkNzIz
ODBlN2VjMmEwMDkyYWQzNmVjMWMwNjU2MzgzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudERlZmF1bHRJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50RGVmYXVsdEltcGwuaApAQCAtNTQsNiArNTQsNyBA
QCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGll
cyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluZFpvb21hYmxlQXJlYShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlld3BvcnRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYpOwogICAgIHZpcnR1YWwgdm9pZCBwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9QYWdlQ2xpZW50TGVnYWN5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1BhZ2VDbGllbnRMZWdhY3lJbXBsLmNwcAppbmRleCA2MGI3Zjc4ZjgxYzc4OGZhOWFlMzg0YjUz
ZGY4NmJmZTc3MmU5ZmUxLi5hMmY3NGE3ZGJkNGRiZGM3NTc4NDU2YTFmYmFhZDNlZGRjZDBhM2U4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRMZWdh
Y3lJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRM
ZWdhY3lJbXBsLmNwcApAQCAtODEsNiArODEsMTEgQEAgdm9pZCBQYWdlQ2xpZW50TGVnYWN5SW1w
bDo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpCiAg
ICAgbV92aWV3SW1wbC0+c21hcnRDYWxsYmFjazxDb250ZW50c1NpemVDaGFuZ2VkPigpLmNhbGwo
c2l6ZSk7CiB9CiAKK3ZvaWQgUGFnZUNsaWVudExlZ2FjeUltcGw6OmRpZEZpbmRab29tYWJsZUFy
ZWEoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUp
CiB2b2lkIFBhZ2VDbGllbnRMZWdhY3lJbXBsOjp1cGRhdGVWaWV3cG9ydFBvc2l0aW9uKGNvbnN0
IEludFBvaW50JiBwb3NpdGlvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvUGFnZUNsaWVudExlZ2FjeUltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvUGFnZUNsaWVudExlZ2FjeUltcGwuaAppbmRleCAwZmUyNGViYmRlN2E0NmZhNGQxN2Iz
YTJkM2I5NDc3MjFiMjc3MzIyLi41OGE5Mzc5MjA1M2M2MzU5NGZmNGY3ZjlkOTk1YWU0NDY1NjNl
NjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRM
ZWdhY3lJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50
TGVnYWN5SW1wbC5oCkBAIC01MSw2ICs1MSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0
cmlidXRlcyYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5kWm9vbWFibGVBcmVh
KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogI2lm
IFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWV3cG9y
dFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIHBh
Z2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGll
bnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250
cm9sbGVyQ2xpZW50RWZsLmNwcAppbmRleCA3ZjZkN2I2YjJmZTVkMzI4ZjY4NGFlMTMxYjJiNGMz
ZmU4MDhjMDM0Li41Yjg1YWY5ZTA5OTcwYjlkNmJlZGEwOTk5MmQwNmYwMTgyYjQzZjY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xs
ZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZp
ZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjksNiArMzAsNyBAQAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogCiAjaW5j
bHVkZSAiQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaCIKKyNpbmNsdWRlICJFYXNpbmdV
dGlsaXRpZXMuaCIKICNpbmNsdWRlICJFd2tWaWV3SW1wbC5oIgogI2luY2x1ZGUgIkxheWVyVHJl
ZVJlbmRlcmVyLmgiCiAjaW5jbHVkZSAiUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oIgpAQCAtNDEs
NiArNDMsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGll
bnRFZmw6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwoRXdrVmlld0ltcGwqIHZpZXdJ
bXBsKQogICAgIDogbV92aWV3SW1wbCh2aWV3SW1wbCkKICAgICAsIG1fY29udHJvbGxlcigwKQor
ICAgICwgbV90cmFuc2l0aW9uKG5ldyBUcmFuc2l0aW9uKHRoaXMpKQogewogICAgIEFTU0VSVCht
X3ZpZXdJbXBsKTsKIH0KQEAgLTExMSw2ICsxMTQsNzggQEAgdm9pZCBQYWdlVmlld3BvcnRDb250
cm9sbGVyQ2xpZW50RWZsOjpzZXRDb250cm9sbGVyKFBhZ2VWaWV3cG9ydENvbnRyb2xsZXIqIGNv
bnQKICAgICBtX2NvbnRyb2xsZXIgPSBjb250cm9sbGVyOwogfQogCit2b2lkIFBhZ2VWaWV3cG9y
dENvbnRyb2xsZXJDbGllbnRFZmw6OlRyYW5zaXRpb246OnNldFJlY3RzKGNvbnN0IEZsb2F0UmVj
dCYgYmFzZVJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCkKK3sKKyAgICBtX2Jhc2VS
ZWN0ID0gYmFzZVJlY3Q7CisgICAgbV90YXJnZXRSZWN0ID0gdGFyZ2V0UmVjdDsKK30KKwordm9p
ZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsOjpUcmFuc2l0aW9uOjpzdGFydCgpCit7
CisgICAgbV9hbmltYXRvciA9IGVjb3JlX2FuaW1hdG9yX2FkZChhbmltYXRvckNhbGxiYWNrLCB0
aGlzKTsKKyAgICBtX3NjYWxlRHVyYXRpb24gPSAxIC8gZWNvcmVfYW5pbWF0b3JfZnJhbWV0aW1l
X2dldCgpIC8gMzsKKyAgICBtX3NjYWxlSW5kZXggPSAxOworfQorCitFaW5hX0Jvb2wgUGFnZVZp
ZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbDo6VHJhbnNpdGlvbjo6YW5pbWF0b3JDYWxsYmFjayh2
b2lkKiBkYXRhKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxUcmFuc2l0aW9uKj4oZGF0YSkt
PnByb2Nlc3MoKTsKK30KKworYm9vbCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsOjpU
cmFuc2l0aW9uOjpwcm9jZXNzKCkKK3sKKyAgICBGbG9hdFJlY3QgcmVjdDsKKyAgICBmbG9hdCBt
dWx0aXBsaWVyID0gZWFzZUluT3V0UXVhZChtX3NjYWxlSW5kZXgrKywgMCwgMS4wLCBtX3NjYWxl
RHVyYXRpb24pOworICAgIHJlY3Quc2V0WChtX2Jhc2VSZWN0LngoKSArIChtX3RhcmdldFJlY3Qu
eCgpIC0gbV9iYXNlUmVjdC54KCkpICogbXVsdGlwbGllcik7CisgICAgcmVjdC5zZXRZKG1fYmFz
ZVJlY3QueSgpICsgKG1fdGFyZ2V0UmVjdC55KCkgLSBtX2Jhc2VSZWN0LnkoKSkgKiBtdWx0aXBs
aWVyKTsKKyAgICByZWN0LnNldFdpZHRoKG1fYmFzZVJlY3Qud2lkdGgoKSArIChtX3RhcmdldFJl
Y3Qud2lkdGgoKSAtIG1fYmFzZVJlY3Qud2lkdGgoKSkgKiBtdWx0aXBsaWVyKTsKKyAgICByZWN0
LnNldEhlaWdodChtX2Jhc2VSZWN0LmhlaWdodCgpICsgKG1fdGFyZ2V0UmVjdC5oZWlnaHQoKSAt
IG1fYmFzZVJlY3QuaGVpZ2h0KCkpICogbXVsdGlwbGllcik7CisKKyAgICBtX2NvbnRyb2xsZXJD
bGllbnQtPnNldENvbnRlbnRzUmVjdChyZWN0KTsKKworICAgIGlmIChtX3NjYWxlSW5kZXggPiBt
X3NjYWxlRHVyYXRpb24pIHsKKyAgICAgICAgbV9hbmltYXRvciA9IDA7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBQYWdlVmlld3Bv
cnRDb250cm9sbGVyQ2xpZW50RWZsOjpzY2FsZVRvQXJlYVdpdGhBbmltYXRpb24oY29uc3QgSW50
UG9pbnQmIHRhcmdldCwgY29uc3QgRmxvYXRSZWN0JiBhcmVhLCBjb25zdCBmbG9hdCBtYXJnaW4p
Cit7CisgICAgQVNTRVJUKG1fY29udHJvbGxlcik7CisgICAgaWYgKCFtX2NvbnRyb2xsZXItPmFs
bG93c1VzZXJTY2FsaW5nKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChhcmVhLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRmxvYXRSZWN0IHRhcmdldFJlY3QgPSBhcmVh
OworICAgIHRhcmdldFJlY3QuaW5mbGF0ZVgobWFyZ2luKTsKKyAgICBGbG9hdFJlY3Qgdmlld3Bv
cnRSZWN0KEZsb2F0UG9pbnQoKSwgbV92aWV3SW1wbC0+c2l6ZSgpKTsKKworICAgIGZsb2F0IHRh
cmdldFNjYWxlOworICAgIGlmIChzdGQ6OmFicyhtX2NvbnRyb2xsZXItPm1pbmltdW1TY2FsZSgp
IC0gbV9jb250cm9sbGVyLT5jdXJyZW50U2NhbGUoKSkgPCAwLjAwMDEpCisgICAgICAgIHRhcmdl
dFNjYWxlID0gbV9jb250cm9sbGVyLT5pbm5lckJvdW5kZWRWaWV3cG9ydFNjYWxlKHZpZXdwb3J0
UmVjdC53aWR0aCgpIC8gdGFyZ2V0UmVjdC53aWR0aCgpKTsKKyAgICBlbHNlCisgICAgICAgIHRh
cmdldFNjYWxlID0gbV9jb250cm9sbGVyLT5taW5pbXVtU2NhbGUoKTsKKworICAgIEZsb2F0UmVj
dCBuZXdDb250ZW50c1JlY3QodGFyZ2V0UmVjdC5jZW50ZXIoKSwgRmxvYXRTaXplKHZpZXdwb3J0
UmVjdC53aWR0aCgpIC8gdGFyZ2V0U2NhbGUsIHZpZXdwb3J0UmVjdC5oZWlnaHQoKSAvIHRhcmdl
dFNjYWxlKSk7CisgICAgaWYgKHRhcmdldFJlY3QuaGVpZ2h0KCkgPiBuZXdDb250ZW50c1JlY3Qu
aGVpZ2h0KCkpCisgICAgICAgIG5ld0NvbnRlbnRzUmVjdC5zZXRZKHRhcmdldC55KCkpOworICAg
IG5ld0NvbnRlbnRzUmVjdC5tb3ZlKC1uZXdDb250ZW50c1JlY3Qud2lkdGgoKSAvIDIsIC1uZXdD
b250ZW50c1JlY3QuaGVpZ2h0KCkgLyAyKTsKKyAgICBuZXdDb250ZW50c1JlY3Quc2V0TG9jYXRp
b24obV9jb250cm9sbGVyLT5ib3VuZENvbnRlbnRzUG9zaXRpb25BdFNjYWxlKG5ld0NvbnRlbnRz
UmVjdC5sb2NhdGlvbigpLCB0YXJnZXRTY2FsZSkpOworCisgICAgRmxvYXRSZWN0IGN1cnJlbnRD
b250ZW50c1JlY3QgPSBtX3ZpZXdJbXBsLT50cmFuc2Zvcm1Gcm9tVmlldygpLm1hcFJlY3Qodmll
d3BvcnRSZWN0KTsKKyAgICBtX3RyYW5zaXRpb24tPnNldFJlY3RzKGN1cnJlbnRDb250ZW50c1Jl
Y3QsIG5ld0NvbnRlbnRzUmVjdCk7CisgICAgbV90cmFuc2l0aW9uLT5zdGFydCgpOworfQorCit2
b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmw6OnNldENvbnRlbnRzUmVjdChjb25z
dCBGbG9hdFJlY3QmIGNvbnRlbnRzUmVjdCkKK3sKKyAgICBzZXRQYWdlU2NhbGVGYWN0b3IobV92
aWV3SW1wbC0+c2l6ZSgpLndpZHRoKCkgLyBjb250ZW50c1JlY3Qud2lkdGgoKSk7CisgICAgc2V0
Vmlld3BvcnRQb3NpdGlvbihjb250ZW50c1JlY3QubG9jYXRpb24oKSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogI2VuZGlmIC8vIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xs
ZXJDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0
Q29udHJvbGxlckNsaWVudEVmbC5oCmluZGV4IDVmODM4OGQzYjhjYzg5ODdlY2EwZWQ4MDE1ZDU1
YTJiNzI1NmFiYmUuLjZiODQ2NDhmNWQzNmJmZDE0ZTExNzY3OGQ1MTQxNTdmMmJlMDY4MmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZp
ZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oCkBAIC0xLDUgKzEsNiBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTMxLDYgKzMyLDcgQEAKICNpbmNsdWRlICJFd2tWaWV3SW1wbC5oIgogI2luY2x1ZGUgIlBh
Z2VDbGllbnRCYXNlLmgiCiAjaW5jbHVkZSAiUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudC5o
IgorI2luY2x1ZGUgPEVjb3JlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CkBAIC02MCw2ICs2MiwzNCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgc2V0Q29udHJvbGxlcihQYWdlVmlld3BvcnRDb250cm9sbGVyKik7CiAKKyAgICB2b2lk
IHNjYWxlVG9BcmVhV2l0aEFuaW1hdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IGZsb2F0IG1hcmdpbiA9IDApOworICAgIHZvaWQg
c2V0Q29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOworCitwcml2YXRlOgor
ICAgIGNsYXNzIFRyYW5zaXRpb24geworICAgIHB1YmxpYzoKKyAgICAgICAgVHJhbnNpdGlvbihQ
YWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsKiBwYXJlbnQpCisgICAgICAgICAgICA6IG1f
Y29udHJvbGxlckNsaWVudChwYXJlbnQpCisgICAgICAgICAgICAsIG1fYW5pbWF0b3IoMCkKKyAg
ICAgICAgICAgICwgbV9zY2FsZUR1cmF0aW9uKDApCisgICAgICAgICAgICAsIG1fc2NhbGVJbmRl
eCgwKQorICAgICAgICB7IH0KKworICAgICAgICB2b2lkIHNldFJlY3RzKGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgYmFzZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0UmVj
dCk7CisgICAgICAgIHZvaWQgc3RhcnQoKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIHN0YXRp
YyBFaW5hX0Jvb2wgYW5pbWF0b3JDYWxsYmFjayh2b2lkKik7CisgICAgICAgIGJvb2wgcHJvY2Vz
cygpOworCisgICAgICAgIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwqIG1fY29udHJv
bGxlckNsaWVudDsKKyAgICAgICAgRWNvcmVfQW5pbWF0b3IqIG1fYW5pbWF0b3I7CisgICAgICAg
IFdlYkNvcmU6OkZsb2F0UmVjdCBtX3RhcmdldFJlY3Q7CisgICAgICAgIFdlYkNvcmU6OkZsb2F0
UmVjdCBtX2Jhc2VSZWN0OworICAgICAgICB1bnNpZ25lZCBtX3NjYWxlRHVyYXRpb247CisgICAg
ICAgIHVuc2lnbmVkIG1fc2NhbGVJbmRleDsKKyAgICB9OworCiBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwoRXdrVmlld0ltcGwqKTsKIApAQCAt
NjcsNiArOTcsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkludFNpemUgbV92aWV3cG9ydFNp
emU7CiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBtX2NvbnRlbnRQb3NpdGlvbjsKICAgICBQYWdl
Vmlld3BvcnRDb250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CisgICAgVHJhbnNpdGlvbiogbV90cmFu
c2l0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RhcEdlc3R1cmVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvVGFwR2VzdHVyZUhhbmRsZXIuY3BwCmluZGV4IGE3ZTNiNzJlOWRl
NGU2YmMyMzA4M2NkMTAyODQ4ZTk5ZWI0M2UzZmUuLjk4OGU5ODM2NjBiZDcxYzFjNDZjMWU5M2M2
MDFkMjA1ODM2YzljNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
VGFwR2VzdHVyZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
VGFwR2VzdHVyZUhhbmRsZXIuY3BwCkBAIC0xMzAsNyArMTMwLDggQEAgdm9pZCBUYXBHZXN0dXJl
SGFuZGxlcjo6cHJvY2Vzc1NpbmdsZVRhcCgpCiAKIHZvaWQgVGFwR2VzdHVyZUhhbmRsZXI6OnBy
b2Nlc3NEb3VibGVUYXAoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgSW50UG9pbnQg
cG9zaXRpb24gPSBtX3ZpZXdJbXBsLT50cmFuc2Zvcm1Gcm9tU2NlbmUoKS5tYXBQb2ludChtX3Zp
ZXdJbXBsLT50cmFuc2Zvcm1Ub1NjcmVlbigpLmludmVyc2UoKS5tYXBQb2ludChtX3NlY29uZFBy
ZXNzZWRQb2ludCkpOworICAgIG1fdmlld0ltcGwtPnBhZ2UoKS0+ZmluZFpvb21hYmxlQXJlYUZv
clBvaW50KHBvc2l0aW9uLCBJbnRTaXplKCkpOwogfQogCiB2b2lkIFRhcEdlc3R1cmVIYW5kbGVy
Ojpwcm9jZXNzVGFwQW5kSG9sZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvV2ViUGFnZVByb3h5UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dl
YlBhZ2VQcm94eVF0LmNwcAppbmRleCBlNmQ5YjkwODQ1MGRmYmE2Y2Y0Y2NjYzkxYWQxZWEyOTUw
MTI4YzhiLi43NjQwNzZkZmIzYzE5NTU0MjYyNzI1YmFkNmVlYjI3Y2IxN2YyMjdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViUGFnZVByb3h5UXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJQYWdlUHJveHlRdC5jcHAKQEAgLTg2LDE5
ICs4Niw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZW5kQXBwbGljYXRpb25TY2hlbWVSZXBseShj
b25zdCBRUXVpY2tOZXR3b3JrUmVwbHkqIHJlcGx5KQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRGaW5kWm9vbWFibGVBcmVhKGNvbnN0IEludFBvaW50JiB0YXJnZXQsIGNvbnN0
IEludFJlY3QmIGFyZWEpCi17Ci0gICAgbV9wYWdlQ2xpZW50LT5kaWRGaW5kWm9vbWFibGVBcmVh
KHRhcmdldCwgYXJlYSk7Ci19Ci0KLXZvaWQgV2ViUGFnZVByb3h5OjpmaW5kWm9vbWFibGVBcmVh
Rm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50LCBjb25zdCBJbnRTaXplJiBhcmVhKQotewot
ICAgIGlmICghaXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OkZpbmRab29tYWJsZUFyZWFGb3JQb2ludChwb2ludCwgYXJl
YSksIG1fcGFnZUlEKTsKLX0KLQogdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdl
RnJvbU5hdmlnYXRvclF0T2JqZWN0KGNvbnN0IFN0cmluZyYgY29udGVudHMpCiB7CiAgICAgbV9w
YWdlQ2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUZyb21OYXZpZ2F0b3JRdE9iamVjdChjb250ZW50
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggY2E4MzM4OGRiNTY3NzhhZDJhODZiMDA0N2ZmODY2MjkyMTdiZWJhOS4uNDQyMmI4MjY1NTBm
YjA2YzM1YWMwMGQ4M2Q2NWNkMTU0MGE5OTJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzAxMCw3ICszMDEwLDcgQEAgSW5qZWN0ZWRC
dW5kbGVCYWNrRm9yd2FyZExpc3QqIFdlYlBhZ2U6OmJhY2tGb3J3YXJkTGlzdCgpCiAgICAgcmV0
dXJuIG1fYmFja0ZvcndhcmRMaXN0LmdldCgpOwogfQogCi0jaWYgUExBVEZPUk0oUVQpCisjaWYg
UExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKICNpZiBFTkFCTEUoVE9VQ0hfQURKVVNUTUVO
VCkKIHZvaWQgV2ViUGFnZTo6ZmluZFpvb21hYmxlQXJlYUZvclBvaW50KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBwb2ludCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYXJlYSkKIHsKQEAgLTMw
NDAsNyArMzA0MCw3IEBAIHZvaWQgV2ViUGFnZTo6ZmluZFpvb21hYmxlQXJlYUZvclBvaW50KGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwgY29uc3QgV2ViCiAgICAgaWYgKCFub2RlKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBJbnRSZWN0IHpvb21hYmxlQXJlYSA9IG5vZGUtPmdldFJl
Y3QoKTsKKyAgICBJbnRSZWN0IHpvb21hYmxlQXJlYSA9IG5vZGUtPnBpeGVsU25hcHBlZEJvdW5k
aW5nQm94KCk7CiAKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICBib29sIGZvdW5kID0gIW5v
ZGUtPmlzVGV4dE5vZGUoKSAmJiAhbm9kZS0+aXNTaGFkb3dSb290KCk7CkBAIC0zMDU2LDcgKzMw
NTYsNyBAQCB2b2lkIFdlYlBhZ2U6OmZpbmRab29tYWJsZUFyZWFGb3JQb2ludChjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgcG9pbnQsIGNvbnN0IFdlYgogICAgICAgICAgICAgYnJlYWs7CiAKICAg
ICAgICAgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKTsKLSAgICAgICAgem9vbWFibGVBcmVhLnVu
aXRlKG5vZGUtPmdldFJlY3QoKSk7CisgICAgICAgIHpvb21hYmxlQXJlYS51bml0ZShub2RlLT5w
aXhlbFNuYXBwZWRCb3VuZGluZ0JveCgpKTsKICAgICB9CiAKICAgICBpZiAobm9kZS0+ZG9jdW1l
bnQoKSAmJiBub2RlLT5kb2N1bWVudCgpLT5mcmFtZSgpICYmIG5vZGUtPmRvY3VtZW50KCktPmZy
YW1lKCktPnZpZXcoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKaW5kZXggN2I1YjkzZjJmNWYwZTE2N2ExM2YxZWUwOTU2NDdiYTAyZTgwNGQ2OC4uZDdl
NTUzMmZlZTc3ODRlOTNhODJiNjJkNmQ5NDk1MjhjZjIwMjE1NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC03NDMsNyArNzQzLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGhpZGVGaW5kVUkoKTsKICAgICB2b2lkIGNvdW50U3RyaW5nTWF0Y2hlcyhj
b25zdCBTdHJpbmcmLCB1aW50MzJfdCBmaW5kT3B0aW9ucywgdWludDMyX3QgbWF4TWF0Y2hDb3Vu
dCk7CiAKLSNpZiBQTEFURk9STShRVCkKKyNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oRUZM
KQogICAgIHZvaWQgZmluZFpvb21hYmxlQXJlYUZvclBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYXJlYSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpp
bmRleCBlMzI4OTJjMGU3MGI0ODI5MzlkNmI0ZDIxYTE5YzZkY2E3ZjY5ZDQxLi5jNDFhZTdhYjdj
OGM5ZDY0YTNiMjk5OGY0ODdlMTJlZDUwOGU5NGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMjkyLDcgKzI5
Miw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgewogICAgIFNldENvbXBvc2l0aW9uKFdURjo6U3Ry
aW5nIGNvbXBvc2l0aW9uU3RyaW5nLCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlvblVu
ZGVybGluZT4gdW5kZXJsaW5lcywgdWludDY0X3QgY3Vyc29yUG9zaXRpb24pCiAgICAgQ2FuY2Vs
Q29tcG9zaXRpb24oKQogI2VuZGlmCi0jaWYgUExBVEZPUk0oUVQpCisjaWYgUExBVEZPUk0oUVQp
IHx8IFBMQVRGT1JNKEVGTCkKICAgICBGaW5kWm9vbWFibGVBcmVhRm9yUG9pbnQoV2ViQ29yZTo6
SW50UG9pbnQgcG9pbnQsIFdlYkNvcmU6OkludFNpemUgYXJlYSkKICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192164</attachid>
            <date>2013-03-08 00:08:47 -0800</date>
            <delta_ts>2013-07-29 03:54:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107631-20130308170449.patch</filename>
            <type>text/plain</type>
            <size>29047</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjkyZjQ2ZDY1M2RlNzJi
MmYyYWY0MWU2YjRjY2Q0Mjc3MmI1ODEwZS4uY2QwMDMxYjY5Njg0MGJjYWZjZmQyMzQ0NDRhZDNh
MGFiM2Y3ZjA2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEzLTAzLTA4ICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFNj
YWxlIHRvIGZvY3VzZWQgYXJlYSB3aGVuIGRvdWJsZSB0YXAgZ2VzdHVyZSBpcyByZWNvZ25pemVk
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NjMx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2NhbGUg
aW4gdG8gdGhlIHpvb21hYmxlIGFyZWEgd2hlbiBjdXJyZW50IHNjYWxlIGZhY3RvciBpcyBzYW1l
IGFzCisgICAgICAgIG1pbmltdW0gc2NhbGUgZmFjdG9yIGFuZCBzY2FsZSBvdXQgdG8gdGhlIG1p
bmltdW0gc2NhbGUgZmFjdG9yCisgICAgICAgIG90aGVyd2lzZS4KKyAgICAgICAgVGhlIFF0IHBv
cnQncyBmdW5jdGlvbiB0byBmaW5kIHpvb21hYmxlIGFyZWEgZm9yIHBvaW50IGlzIHVzZWQgYW5k
CisgICAgICAgIFF0IHBvcnQgY29kZXMgYXJlIHJlZmVyZW5jZWQuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5jcHA6CisgICAgICAgIChXS1ZpZXdGaW5kWm9vbWFibGVB
cmVhRm9yUG9pbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHA6CisgICAgICAgIChFd2tWaWV3
OjpkaWRGaW5kWm9vbWFibGVBcmVhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tW
aWV3Lmg6CisgICAgICAgIChFd2tWaWV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9U
YXBHZXN0dXJlSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRhcEdlc3R1cmVIYW5kbGVy
Ojpwcm9jZXNzRG91YmxlVGFwKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgor
ICAgICAgICAoUGFnZUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyOjpk
aWRDaGFuZ2VDb250ZW50c1Zpc2liaWxpdHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZpbmRab29tYWJsZUFy
ZWFGb3JQb2ludCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmRpZEZpbmRab29tYWJsZUFyZWEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKyAgICAgICAgKFdlYlBhZ2VQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VWaWV3
cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3Bv
cnRDb250cm9sbGVyQ2xpZW50RWZsOjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsKToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xs
ZXJDbGllbnRFZmw6OlRyYW5zaXRpb246OnNldFJlY3RzKToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbDo6VHJhbnNpdGlvbjo6c3RhcnQpOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsOjpUcmFuc2l0aW9uOjph
bmltYXRvckNhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxl
ckNsaWVudEVmbDo6VHJhbnNpdGlvbjo6cHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VW
aWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmw6OnNjYWxlVG9BcmVhV2l0aEFuaW1hdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmw6OnNldENvbnRl
bnRzUmVjdCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVy
Q2xpZW50RWZsLmg6CisgICAgICAgIChQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsKToK
KyAgICAgICAgKFRyYW5zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250
cm9sbGVyQ2xpZW50RWZsOjpUcmFuc2l0aW9uOjpUcmFuc2l0aW9uKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaWV3Q2xpZW50
RWZsOjpkaWRGaW5kWm9vbWFibGVBcmVhKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJLaXQ6OlZpZXdDbGllbnRFZmw6OlZpZXdDbGllbnRFZmwpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9lZmwvVmlld0NsaWVudEVmbC5oOgorICAgICAgICAoVmlld0NsaWVudEVmbCk6CisgICAgICAg
ICogVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6
ZGlkRmluZFpvb21hYmxlQXJlYSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OnRyYW5zZm9y
bUZyb21WaWV3KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6
OnRyYW5zZm9ybVRvVmlldyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OnRyYW5zZm9ybUZy
b21TY2VuZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OnRyYW5zZm9ybVRvU2NlbmUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpmaW5kWm9vbWFibGVBcmVhRm9yUG9pbnQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6CisgICAg
ICAgICogVUlQcm9jZXNzL2VmbC9XZWJWaWV3Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0NsaWVudDo6ZGlkRmluZFpvb21hYmxlQXJlYSk6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYlBhZ2VQcm94eVF0LmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpmaW5kWm9vbWFibGVBcmVhRm9yUG9pbnQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJQYWdlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAxMy0w
My0wNiAgRXVubWkgTGVlICA8ZXVubWkxNS5sZWVAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VG
TF1bV0syXSBJbXBsZW1lbnQgcGFuIGFuZCBmbGljayBnZXN0dXJlLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwCmluZGV4IGE3ODUyYWU5NDk0M2I2ODZk
NzE5Y2UxOWIyYjUwMDk4NDRjM2UwNjkuLmEyNmRjMGY5ZjQ3MGQ2OGY2MDViMTY0ZDk2YTA0Nzk2
ZDVkMmEwYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwv
V0tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmll
dy5jcHAKQEAgLTE2OCwzICsxNjgsOCBAQCB2b2lkIFdLVmlld1NlbmRHZXN0dXJlRXZlbnQoV0tW
aWV3UmVmIHZpZXdSZWYsIFdLR2VzdHVyZUV2ZW50UmVmIGdlc3R1cmVFdmVudFJlZgogICAgIFVO
VVNFRF9QQVJBTShnZXN0dXJlRXZlbnRSZWYpOwogI2VuZGlmCiB9CisKK3ZvaWQgV0tWaWV3Rmlu
ZFpvb21hYmxlQXJlYUZvclBvaW50KFdLVmlld1JlZiB2aWV3UmVmLCBXS1BvaW50IHBvaW50LCBX
S1NpemUgc2l6ZSkKK3sKKyAgICB0b0ltcGwodmlld1JlZiktPmZpbmRab29tYWJsZUFyZWFGb3JQ
b2ludCh0b0ludFBvaW50KHBvaW50KSwgdG9JbnRTaXplKHNpemUpKTsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5oCmluZGV4IDM0MDMzZmY2MmI0MjZlMWQx
MzQ2MzczNzA1MzM2NmQzODA3MTQ1OGEuLmYwOTVlMjhjYjVmYWNmNTljNzIwNTJlN2VlMzE1ZTlh
ODVjMDNlZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwv
V0tWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcu
aApAQCAtNDIsNiArNDIsNyBAQCBleHRlcm4gIkMiIHsKIHR5cGVkZWYgdm9pZCAoKldLVmlld1Zp
ZXdOZWVkc0Rpc3BsYXlDYWxsYmFjaykoV0tWaWV3UmVmIHZpZXcsIFdLUmVjdCBhcmVhLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLVmlld1BhZ2VEaWRDaGFuZ2VD
b250ZW50c1NpemVDYWxsYmFjaykoV0tWaWV3UmVmIHZpZXcsIFdLU2l6ZSBzaXplLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLVmlld0RvbmVXaXRoVG91Y2hFdmVu
dENhbGxiYWNrKShXS1ZpZXdSZWYgdmlldywgV0tUb3VjaEV2ZW50UmVmIHRvdWNoRXZlbnQsIGJv
b2wgd2FzRXZlbnRIYW5kbGVkLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9p
ZCAoKldLVmlld0RpZEZpbmRab29tYWJsZUFyZWFDYWxsYmFjaykoV0tWaWV3UmVmIHZpZXcsIFdL
UG9pbnQgcG9pbnQsIFdLUmVjdCBhcmVhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAogc3Ry
dWN0IFdLVmlld0NsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHZlcnNpb247CkBAIC01MSw2ICs1Miw3IEBAIHN0cnVjdCBXS1ZpZXdD
bGllbnQgewogICAgIFdLVmlld1ZpZXdOZWVkc0Rpc3BsYXlDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICB2aWV3TmVlZHNEaXNwbGF5OwogICAgIFdLVmlld1BhZ2VEaWRDaGFuZ2VDb250ZW50c1Np
emVDYWxsYmFjayAgICAgICAgICBkaWRDaGFuZ2VDb250ZW50c1NpemU7CiAgICAgV0tWaWV3RG9u
ZVdpdGhUb3VjaEV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgIGRvbmVXaXRoVG91Y2hFdmVu
dDsKKyAgICBXS1ZpZXdEaWRGaW5kWm9vbWFibGVBcmVhQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ZGlkRmluZFpvb21hYmxlQXJlYTsKIH07CiB0eXBlZGVmIHN0cnVjdCBXS1ZpZXdDbGllbnQgV0tW
aWV3Q2xpZW50OwogCkBAIC05NSw2ICs5Nyw4IEBAIFdLX0VYUE9SVCBXS0ltYWdlUmVmIFdLVmll
d0NyZWF0ZVNuYXBzaG90KFdLVmlld1JlZik7CiBXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZW5kVG91
Y2hFdmVudChXS1ZpZXdSZWYsIFdLVG91Y2hFdmVudFJlZik7CiBXS19FWFBPUlQgdm9pZCBXS1Zp
ZXdTZW5kR2VzdHVyZUV2ZW50KFdLVmlld1JlZiwgV0tHZXN0dXJlRXZlbnRSZWYpOwogCitXS19F
WFBPUlQgdm9pZCBXS1ZpZXdGaW5kWm9vbWFibGVBcmVhRm9yUG9pbnQoV0tWaWV3UmVmLCBXS1Bv
aW50LCBXS1NpemUpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAppbmRleCA2NTM0OGFhOTM5NDA4
YjI1YzA5OTFhODYyYTI2NDhlYjhlZmMwZjVhLi4yYjczNDc1MDIwMWJiMDZhNmE2ZTI4ZjE1YmY4
YzVjYTJiM2FkMTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tW
aWV3LmNwcApAQCAtMTMyNiw2ICsxMzI2LDExIEBAIFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90
PiBFd2tWaWV3Ojp0YWtlU25hcHNob3QoKQogICAgIHJldHVybiBzbmFwc2hvdC5yZWxlYXNlKCk7
CiB9CiAKK3ZvaWQgRXdrVmlldzo6ZGlkRmluZFpvb21hYmxlQXJlYShjb25zdCBXS1BvaW50JiBw
b2ludCwgY29uc3QgV0tSZWN0JiBhcmVhKQoreworICAgIG1fcGFnZVZpZXdwb3J0Q29udHJvbGxl
ckNsaWVudC0+c2NhbGVUb0FyZWFXaXRoQW5pbWF0aW9uKHRvSW50UG9pbnQocG9pbnQpLCB0b0lu
dFJlY3QoYXJlYSksIDUpOworfQorCiBFdmFzX1NtYXJ0X0NsYXNzIEV3a1ZpZXc6OnBhcmVudFNt
YXJ0Q2xhc3MgPSBFVkFTX1NNQVJUX0NMQVNTX0lOSVRfTlVMTDsKIAogLy8gRnJlZSBFd2sgVmll
dyBmdW5jdGlvbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgK
aW5kZXggY2U3NGU3ZWM5ZThlYjA2MjYxMzI4ZjJiMzdmOWJhNWM5OTRlZWFjYi4uNmZjMDg0ZTNm
NTE3NGQ4NDJmZmUzNmQxMDFiYTRkYzU2OGYxNmE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaApAQCAtMjIxLDYgKzIyMSw4IEBAIHB1YmxpYzoKIAogICAg
IFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiB0YWtlU25hcHNob3QoKTsKIAorICAgIHZvaWQg
ZGlkRmluZFpvb21hYmxlQXJlYShjb25zdCBXS1BvaW50JiwgY29uc3QgV0tSZWN0Jik7CisKIHBy
aXZhdGU6CiAgICAgRXdrVmlldyhFdmFzX09iamVjdCogZXZhc09iamVjdCwgUGFzc1JlZlB0cjxF
d2tDb250ZXh0PiBjb250ZXh0LCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAsIFZpZXdCZWhhdmlv
cik7CiAgICAgfkV3a1ZpZXcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL1RhcEdlc3R1cmVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL1RhcEdlc3R1cmVIYW5kbGVyLmNwcAppbmRleCAwNTlkOTAyZDNiOTllNTQ1MDY3
YWMxZTFlYmMyZGE4MzY4OTUwZjYxLi4zNjc1ZWE5N2I2ZDU3Yjk1Yjc1N2FkM2JiNDI4MDJmZTY4
ODQyNTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9UYXBH
ZXN0dXJlSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
VGFwR2VzdHVyZUhhbmRsZXIuY3BwCkBAIC0xMjgsNyArMTI4LDkgQEAgdm9pZCBUYXBHZXN0dXJl
SGFuZGxlcjo6cHJvY2Vzc1NpbmdsZVRhcCgpCiAKIHZvaWQgVGFwR2VzdHVyZUhhbmRsZXI6OnBy
b2Nlc3NEb3VibGVUYXAoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgSW50UG9pbnQg
cG9zaXRpb24gPSBtX2V3a1ZpZXctPndlYlZpZXcoKS0+dHJhbnNmb3JtRnJvbVNjZW5lKCkubWFw
UG9pbnQobV9ld2tWaWV3LT50cmFuc2Zvcm1Ub1NjcmVlbigpLmludmVyc2UoKS5tYXBQb2ludCht
X3NlY29uZFByZXNzZWRQb2ludCkpOworICAgIFdLU2l6ZSBzaXplID0gezAsIDB9OworICAgIFdL
Vmlld0ZpbmRab29tYWJsZUFyZWFGb3JQb2ludChtX2V3a1ZpZXctPndrVmlldygpLCB0b0FQSShw
b3NpdGlvbiksIHNpemUpOwogfQogCiB2b2lkIFRhcEdlc3R1cmVIYW5kbGVyOjpwcm9jZXNzVGFw
QW5kSG9sZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBkMDhjYzkx
ZjY0NGQ5YTlmOGJiODczZWI0ZmU4MzFiOTk4M2Y4YzYyLi5mOGM0MzJkMDg5YjFkYTlkOWFhYTg5
YjhkMjc1NmE2NzUyMWVjMzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgK
QEAgLTExOSw4ICsxMTksMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZW5kZXJG
cmFtZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjb250ZW50c1NpemUsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIGNvdmVyZWRSZWN0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VUcmFuc2l0
aW9uVmlld3BvcnRSZWFkeSgpID0gMDsKICNlbmRpZgotI2lmIFBMQVRGT1JNKFFUKQorI2lmIFBM
QVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpCiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmRab29t
YWJsZUFyZWEoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JikgPSAwOworI2VuZGlmCisjaWYgUExBVEZPUk0oUVQpCiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlRnJvbU5hdmlnYXRvclF0T2JqZWN0KGNvbnN0IFN0cmluZyYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlQXV0aGVudGljYXRpb25SZXF1aXJlZFJlcXVlc3QoY29uc3Qg
U3RyaW5nJiBob3N0bmFtZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgY29uc3QgU3RyaW5nJiBwcmVm
aWxsZWRVc2VybmFtZSwgU3RyaW5nJiB1c2VybmFtZSwgU3RyaW5nJiBwYXNzd29yZCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVDZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblJlcXVlc3QoY29u
c3QgU3RyaW5nJiBob3N0bmFtZSwgYm9vbCYgaWdub3JlRXJyb3JzKSA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKaW5kZXgg
MzFkMGM3YzFmMDM3ZjY4ZTM2ODgxZTczYmQ4N2RhMzc2OGY2OGQzYi4uMDMwZWNjZTk0YjkyY2Jm
NjE4N2MzODk2NGNiNGE1NzE2NDk3MWExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcApAQCAtMjU4LDggKzI1OCw3IEBAIHZv
aWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6ZGlkQ2hhbmdlQ29udGVudHNWaXNpYmlsaXR5KGNv
bnN0IEZsb2F0UG9pbnQmIHBvc2l0CiB7CiAgICAgaWYgKCFtX3BlbmRpbmdQb3NpdGlvbkNoYW5n
ZSkKICAgICAgICAgbV9jb250ZW50c1Bvc2l0aW9uID0gcG9zaXRpb247Ci0gICAgaWYgKCFtX3Bl
bmRpbmdTY2FsZUNoYW5nZSkKLSAgICAgICAgYXBwbHlTY2FsZUFmdGVyUmVuZGVyaW5nQ29udGVu
dHMoc2NhbGUpOworICAgIGFwcGx5U2NhbGVBZnRlclJlbmRlcmluZ0NvbnRlbnRzKHNjYWxlKTsK
IAogICAgIHN5bmNWaXNpYmxlQ29udGVudHModHJhamVjdG9yeVZlY3Rvcik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDlhOWI5NWU0ODc5NjRkOTcw
NDFjMjkwNjk2M2NiZjQ4Njg4NjBiODQuLjI4Y2ZjZjIwZTk0MjdlNzRhOTBkNWMzNWNmYTU3ZDc5
NmE0NjRjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC0yODM2LDYgKzI4MzYsMTkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZURvd25sb2FkUmVx
dWVzdChEb3dubG9hZFByb3h5KiBkb3dubG9hZCkKICNlbmRpZiAvLyBQTEFURk9STShRVCkgfHwg
UExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShHVEspCiAKICNpZiBQTEFURk9STShRVCkgfHwgUExB
VEZPUk0oRUZMKQordm9pZCBXZWJQYWdlUHJveHk6OmZpbmRab29tYWJsZUFyZWFGb3JQb2ludChj
b25zdCBJbnRQb2ludCYgcG9pbnQsIGNvbnN0IEludFNpemUmIGFyZWEpCit7CisgICAgaWYgKCFp
c1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6RmluZFpvb21hYmxlQXJlYUZvclBvaW50KHBvaW50LCBhcmVhKSwgbV9wYWdl
SUQpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluZFpvb21hYmxlQXJlYShjb25zdCBJ
bnRQb2ludCYgdGFyZ2V0LCBjb25zdCBJbnRSZWN0JiBhcmVhKQoreworICAgIG1fcGFnZUNsaWVu
dC0+ZGlkRmluZFpvb21hYmxlQXJlYSh0YXJnZXQsIGFyZWEpOworfQorCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiB7CiAgICAg
bV9wYWdlQ2xpZW50LT5kaWRDaGFuZ2VDb250ZW50c1NpemUoc2l6ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZjBlYzdkYjg1Mzc1M2Y5YWFjYjdjMjRiYmJm
MTdjY2Q5N2QxOTRhZS4uZTEyYTJmNTNmNDNhMzg4NDg3ZDJiZDU2ZjAxYzNhODNkYTcyZjFmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjQ5LDggKzY0OSwx
MSBAQCBwdWJsaWM6CiAKICAgICBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIGNyZWF0aW9uUGFy
YW1ldGVycygpIGNvbnN0OwogCi0jaWYgUExBVEZPUk0oUVQpCisjaWYgUExBVEZPUk0oUVQpIHx8
IFBMQVRGT1JNKEVGTCkKICAgICB2b2lkIGZpbmRab29tYWJsZUFyZWFGb3JQb2ludChjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyNlbmRpZgorCisj
aWYgUExBVEZPUk0oUVQpCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21OYXZpZ2F0b3JR
dE9iamVjdChjb25zdCBTdHJpbmcmKTsKICNlbmRpZgogCkBAIC04NjksMTEgKzg3Miw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYpOwogICAgIHZvaWQgcGFnZVRyYW5zaXRpb25WaWV3cG9ydFJlYWR5KCk7CiAjZW5kaWYK
LSNpZiBQTEFURk9STShRVCkKLSAgICB2b2lkIGRpZEZpbmRab29tYWJsZUFyZWEoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0jZW5kaWYKLQogI2lm
IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpCisgICAgdm9pZCBkaWRGaW5kWm9vbWFibGVB
cmVhKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwog
ICAgIHZvaWQgZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCA0MTlmZDA1MWQzNzZlMmY2ZDRiOWMwZjBiZWJjYWI3MTBjNTdhNDQz
Li5mYTc1ZjcyZDBkN2NlZWIwYzlhOTg3ZmM2OTlhODE2Mjc0YWFkNzVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTc3LDgg
Kzc3LDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgUGFnZURpZFJlcXVlc3RT
Y3JvbGwoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpCiAgICAgUGFnZVRyYW5zaXRpb25WaWV3cG9y
dFJlYWR5KCkKICNlbmRpZgotI2lmIFBMQVRGT1JNKFFUKQorI2lmIFBMQVRGT1JNKFFUKSB8fCBQ
TEFURk9STShFRkwpCiAgICAgRGlkRmluZFpvb21hYmxlQXJlYShXZWJDb3JlOjpJbnRQb2ludCB0
YXJnZXQsIFdlYkNvcmU6OkludFJlY3QgYXJlYSkKKyNlbmRpZgorI2lmIFBMQVRGT1JNKFFUKQog
ICAgIEF1dGhlbnRpY2F0aW9uUmVxdWlyZWRSZXF1ZXN0KFdURjo6U3RyaW5nIGhvc3RuYW1lLCBX
VEY6OlN0cmluZyByZWFsbSwgV1RGOjpTdHJpbmcgcHJlZmlsbGVkVXNlcm5hbWUpIC0+IChXVEY6
OlN0cmluZyB1c2VybmFtZSwgV1RGOjpTdHJpbmcgcGFzc3dvcmQpCiAgICAgQ2VydGlmaWNhdGVW
ZXJpZmljYXRpb25SZXF1ZXN0KFdURjo6U3RyaW5nIGhvc3RuYW1lKSAtPiAoYm9vbCBpZ25vcmVF
cnJvcnMpCiAgICAgUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkUmVxdWVzdChXVEY6OlN0cmlu
ZyBob3N0bmFtZSwgdWludDE2X3QgcG9ydCwgV1RGOjpTdHJpbmcgcHJlZmlsbGVkVXNlcm5hbWUp
IC0+IChXVEY6OlN0cmluZyB1c2VybmFtZSwgV1RGOjpTdHJpbmcgcGFzc3dvcmQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJD
bGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRD
b250cm9sbGVyQ2xpZW50RWZsLmNwcAppbmRleCA2OWNkZTAzY2YwYzdiMDcyZTA4MTk2N2MyZDJj
ODNlODBkMjI5ZjBkLi40N2M1NjVkNmE0NDY1YzY2NjA4MjFlY2U3OThmYTdlN2U0M2ZiODJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRy
b2xsZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFn
ZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBJbnRlbCBDb3Jwb3JhdGlv
bi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjcsOCArMjgsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmgiCiAKKyNpbmNsdWRlICJFYXNp
bmdVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJFd2tWaWV3LmgiCiAjaW5jbHVkZSAiUGFnZVZpZXdw
b3J0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWZmaW5lVHJhbnNmb3JtLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0zNywxMCArNDAsMTIgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsOjpQYWdlVmlld3BvcnRD
b250cm9sbGVyQ2xpZW50RWZsKEV3a1ZpZXcqIHZpZXcpCiAgICAgOiBtX3ZpZXcodmlldykKICAg
ICAsIG1fY29udHJvbGxlcigwKQorICAgICwgbV90cmFuc2l0aW9uKG5ldyBUcmFuc2l0aW9uKHRo
aXMpKQogewogICAgIEFTU0VSVChtX3ZpZXcpOwogfQogCisKIHZvaWQgUGFnZVZpZXdwb3J0Q29u
dHJvbGxlckNsaWVudEVmbDo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmKQogewogICAgIG1fdmlldy0+c2NoZWR1bGVVcGRhdGVEaXNwbGF5KCk7CkBAIC03Nyw0
ICs4Miw3NyBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmw6OnNldENvbnRy
b2xsZXIoUGFnZVZpZXdwb3J0Q29udHJvbGxlciogY29udAogICAgIG1fY29udHJvbGxlciA9IGNv
bnRyb2xsZXI7CiB9CiAKK3ZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbDo6VHJh
bnNpdGlvbjo6c2V0UmVjdHMoY29uc3QgRmxvYXRSZWN0JiBiYXNlUmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiB0YXJnZXRSZWN0KQoreworICAgIG1fYmFzZVJlY3QgPSBiYXNlUmVjdDsKKyAgICBtX3Rh
cmdldFJlY3QgPSB0YXJnZXRSZWN0OworfQorCit2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJD
bGllbnRFZmw6OlRyYW5zaXRpb246OnN0YXJ0KCkKK3sKKyAgICBtX2FuaW1hdG9yID0gZWNvcmVf
YW5pbWF0b3JfYWRkKGFuaW1hdG9yQ2FsbGJhY2ssIHRoaXMpOworICAgIG1fc2NhbGVEdXJhdGlv
biA9IDEgLyBlY29yZV9hbmltYXRvcl9mcmFtZXRpbWVfZ2V0KCkgLyAzOworICAgIG1fc2NhbGVJ
bmRleCA9IDE7Cit9CisKK0VpbmFfQm9vbCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZs
OjpUcmFuc2l0aW9uOjphbmltYXRvckNhbGxiYWNrKHZvaWQqIGRhdGEpCit7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFRyYW5zaXRpb24qPihkYXRhKS0+cHJvY2VzcygpOworfQorCitib29sIFBh
Z2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmw6OlRyYW5zaXRpb246OnByb2Nlc3MoKQorewor
ICAgIEZsb2F0UmVjdCByZWN0OworICAgIGZsb2F0IG11bHRpcGxpZXIgPSBlYXNlSW5PdXRRdWFk
KG1fc2NhbGVJbmRleCsrLCAwLCAxLjAsIG1fc2NhbGVEdXJhdGlvbik7CisgICAgcmVjdC5zZXRY
KG1fYmFzZVJlY3QueCgpICsgKG1fdGFyZ2V0UmVjdC54KCkgLSBtX2Jhc2VSZWN0LngoKSkgKiBt
dWx0aXBsaWVyKTsKKyAgICByZWN0LnNldFkobV9iYXNlUmVjdC55KCkgKyAobV90YXJnZXRSZWN0
LnkoKSAtIG1fYmFzZVJlY3QueSgpKSAqIG11bHRpcGxpZXIpOworICAgIHJlY3Quc2V0V2lkdGgo
bV9iYXNlUmVjdC53aWR0aCgpICsgKG1fdGFyZ2V0UmVjdC53aWR0aCgpIC0gbV9iYXNlUmVjdC53
aWR0aCgpKSAqIG11bHRpcGxpZXIpOworICAgIHJlY3Quc2V0SGVpZ2h0KG1fYmFzZVJlY3QuaGVp
Z2h0KCkgKyAobV90YXJnZXRSZWN0LmhlaWdodCgpIC0gbV9iYXNlUmVjdC5oZWlnaHQoKSkgKiBt
dWx0aXBsaWVyKTsKKworICAgIG1fY29udHJvbGxlckNsaWVudC0+c2V0Q29udGVudHNSZWN0KHJl
Y3QpOworCisgICAgaWYgKG1fc2NhbGVJbmRleCA+IG1fc2NhbGVEdXJhdGlvbikgeworICAgICAg
ICBtX2FuaW1hdG9yID0gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJl
dHVybiB0cnVlOworfQorCit2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmw6OnNj
YWxlVG9BcmVhV2l0aEFuaW1hdGlvbihjb25zdCBJbnRQb2ludCYgdGFyZ2V0LCBjb25zdCBGbG9h
dFJlY3QmIGFyZWEsIGNvbnN0IGZsb2F0IG1hcmdpbikKK3sKKyAgICBBU1NFUlQobV9jb250cm9s
bGVyKTsKKyAgICBpZiAoIW1fY29udHJvbGxlci0+YWxsb3dzVXNlclNjYWxpbmcoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKGFyZWEuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBGbG9hdFJlY3QgdGFyZ2V0UmVjdCA9IGFyZWE7CisgICAgdGFyZ2V0UmVjdC5pbmZsYXRl
WChtYXJnaW4pOworICAgIEZsb2F0UmVjdCB2aWV3cG9ydFJlY3QoRmxvYXRQb2ludCgpLCBtX3Zp
ZXctPnNpemUoKSk7CisKKyAgICBmbG9hdCB0YXJnZXRTY2FsZTsKKyAgICBpZiAoc3RkOjphYnMo
bV9jb250cm9sbGVyLT5taW5pbXVtU2NhbGUoKSAtIG1fY29udHJvbGxlci0+Y3VycmVudFNjYWxl
KCkpIDwgMC4wMDAxKQorICAgICAgICB0YXJnZXRTY2FsZSA9IG1fY29udHJvbGxlci0+aW5uZXJC
b3VuZGVkVmlld3BvcnRTY2FsZSh2aWV3cG9ydFJlY3Qud2lkdGgoKSAvIHRhcmdldFJlY3Qud2lk
dGgoKSk7CisgICAgZWxzZQorICAgICAgICB0YXJnZXRTY2FsZSA9IG1fY29udHJvbGxlci0+bWlu
aW11bVNjYWxlKCk7CisKKyAgICBGbG9hdFJlY3QgbmV3Q29udGVudHNSZWN0KHRhcmdldFJlY3Qu
Y2VudGVyKCksIEZsb2F0U2l6ZSh2aWV3cG9ydFJlY3Qud2lkdGgoKSAvIHRhcmdldFNjYWxlLCB2
aWV3cG9ydFJlY3QuaGVpZ2h0KCkgLyB0YXJnZXRTY2FsZSkpOworICAgIGlmICh0YXJnZXRSZWN0
LmhlaWdodCgpID4gbmV3Q29udGVudHNSZWN0LmhlaWdodCgpKQorICAgICAgICBuZXdDb250ZW50
c1JlY3Quc2V0WSh0YXJnZXQueSgpKTsKKyAgICBuZXdDb250ZW50c1JlY3QubW92ZSgtbmV3Q29u
dGVudHNSZWN0LndpZHRoKCkgLyAyLCAtbmV3Q29udGVudHNSZWN0LmhlaWdodCgpIC8gMik7Cisg
ICAgbmV3Q29udGVudHNSZWN0LnNldExvY2F0aW9uKG1fY29udHJvbGxlci0+Ym91bmRDb250ZW50
c1Bvc2l0aW9uQXRTY2FsZShuZXdDb250ZW50c1JlY3QubG9jYXRpb24oKSwgdGFyZ2V0U2NhbGUp
KTsKKworICAgIEZsb2F0UmVjdCBjdXJyZW50Q29udGVudHNSZWN0ID0gbV92aWV3LT53ZWJWaWV3
KCktPnRyYW5zZm9ybUZyb21WaWV3KCkubWFwUmVjdCh2aWV3cG9ydFJlY3QpOworICAgIG1fdHJh
bnNpdGlvbi0+c2V0UmVjdHMoY3VycmVudENvbnRlbnRzUmVjdCwgbmV3Q29udGVudHNSZWN0KTsK
KyAgICBtX3RyYW5zaXRpb24tPnN0YXJ0KCk7Cit9CisKK3ZvaWQgUGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudEVmbDo6c2V0Q29udGVudHNSZWN0KGNvbnN0IEZsb2F0UmVjdCYgY29udGVudHNS
ZWN0KQoreworICAgIHNldFBhZ2VTY2FsZUZhY3RvcihtX3ZpZXctPnNpemUoKS53aWR0aCgpIC8g
Y29udGVudHNSZWN0LndpZHRoKCkpOworICAgIHNldFZpZXdwb3J0UG9zaXRpb24oY29udGVudHNS
ZWN0LmxvY2F0aW9uKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVu
dEVmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9s
bGVyQ2xpZW50RWZsLmgKaW5kZXggZTQwNDViNmUxYTIwNmRjYjgyMGE1NjYwMDNiZmMxMzJiODc3
NDAxOC4uNWIwNzQxZGEzNmM5ZjAyMDZiMjRlMTBjZGM1NmY0NWNiYTY5NDdjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xp
ZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRD
b250cm9sbGVyQ2xpZW50RWZsLmgKQEAgLTEsNiArMSw3IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIsIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjgsNyArMjksOSBAQAogI2RlZmluZSBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZs
X2gKIAogI2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnQuaCIKKyNpbmNsdWRl
IDxFY29yZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogY2xhc3Mg
RXdrVmlldzsKQEAgLTUyLDEyICs1NSw0MSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQg
c2V0Q29udHJvbGxlcihQYWdlVmlld3BvcnRDb250cm9sbGVyKikgT1ZFUlJJREU7CiAKKyAgICB2
b2lkIHNjYWxlVG9BcmVhV2l0aEFuaW1hdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IGZsb2F0IG1hcmdpbiA9IDApOworICAgIHZv
aWQgc2V0Q29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOworCitwcml2YXRl
OgorICAgIGNsYXNzIFRyYW5zaXRpb24geworICAgIHB1YmxpYzoKKyAgICAgICAgVHJhbnNpdGlv
bihQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsKiBwYXJlbnQpCisgICAgICAgICAgICA6
IG1fY29udHJvbGxlckNsaWVudChwYXJlbnQpCisgICAgICAgICAgICAsIG1fYW5pbWF0b3IoMCkK
KyAgICAgICAgICAgICwgbV9zY2FsZUR1cmF0aW9uKDApCisgICAgICAgICAgICAsIG1fc2NhbGVJ
bmRleCgwKQorICAgICAgICB7IH0KKworICAgICAgICB2b2lkIHNldFJlY3RzKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgYmFzZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0
UmVjdCk7CisgICAgICAgIHZvaWQgc3RhcnQoKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIHN0
YXRpYyBFaW5hX0Jvb2wgYW5pbWF0b3JDYWxsYmFjayh2b2lkKik7CisgICAgICAgIGJvb2wgcHJv
Y2VzcygpOworCisgICAgICAgIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwqIG1fY29u
dHJvbGxlckNsaWVudDsKKyAgICAgICAgRWNvcmVfQW5pbWF0b3IqIG1fYW5pbWF0b3I7CisgICAg
ICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBtX3RhcmdldFJlY3Q7CisgICAgICAgIFdlYkNvcmU6OkZs
b2F0UmVjdCBtX2Jhc2VSZWN0OworICAgICAgICB1bnNpZ25lZCBtX3NjYWxlRHVyYXRpb247Cisg
ICAgICAgIHVuc2lnbmVkIG1fc2NhbGVJbmRleDsKKyAgICB9OworCiBwcml2YXRlOgogICAgIGV4
cGxpY2l0IFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwoRXdrVmlldyopOwogCiAgICAg
RXdrVmlldyogbV92aWV3OwogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgbV9jb250ZW50UG9zaXRp
b247CiAgICAgUGFnZVZpZXdwb3J0Q29udHJvbGxlciogbV9jb250cm9sbGVyOworICAgIFRyYW5z
aXRpb24qIG1fdHJhbnNpdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAKaW5kZXggZTFhYzk5
ZjcxMTcwMTRiMzc0NzNhMzA0YTQ3MTgyZDFkYWY2YjAyOS4uMDM0YjQ2ZTQ4MTM4NGZhYTIyMWZm
NmNhZDBmMDc5Mjg2OWVjMWUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9WaWV3Q2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1ZpZXdDbGllbnRFZmwuY3BwCkBAIC02MSw2ICs2MSwxMSBAQCB2b2lkIFZpZXdDbGllbnRFZmw6
OmRvbmVXaXRoVG91Y2hFdmVudChXS1ZpZXdSZWYsIFdLVG91Y2hFdmVudFJlZiBldmVudCwgYm9v
bCB3YQogI2VuZGlmCiB9CiAKK3ZvaWQgVmlld0NsaWVudEVmbDo6ZGlkRmluZFpvb21hYmxlQXJl
YShXS1ZpZXdSZWYsIFdLUG9pbnQgcG9pbnQsIFdLUmVjdCBhcmVhLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQoreworICAgIHRvRXdrVmlldyhjbGllbnRJbmZvKS0+ZGlkRmluZFpvb21hYmxlQXJl
YShwb2ludCwgYXJlYSk7Cit9CisKIFZpZXdDbGllbnRFZmw6OlZpZXdDbGllbnRFZmwoRXdrVmll
dyogdmlldykKICAgICA6IG1fdmlldyh2aWV3KQogewpAQCAtNzEsNiArNzYsNyBAQCBWaWV3Q2xp
ZW50RWZsOjpWaWV3Q2xpZW50RWZsKEV3a1ZpZXcqIHZpZXcpCiAgICAgdmlld0NsaWVudC52ZXJz
aW9uID0ga1dLVmlld0NsaWVudEN1cnJlbnRWZXJzaW9uOwogICAgIHZpZXdDbGllbnQuY2xpZW50
SW5mbyA9IHRoaXM7CiAgICAgdmlld0NsaWVudC5kaWRDaGFuZ2VDb250ZW50c1NpemUgPSBkaWRD
aGFuZ2VDb250ZW50c1NpemU7CisgICAgdmlld0NsaWVudC5kaWRGaW5kWm9vbWFibGVBcmVhID0g
ZGlkRmluZFpvb21hYmxlQXJlYTsKICAgICB2aWV3Q2xpZW50LmRvbmVXaXRoVG91Y2hFdmVudCA9
IGRvbmVXaXRoVG91Y2hFdmVudDsKICAgICB2aWV3Q2xpZW50LnZpZXdOZWVkc0Rpc3BsYXkgPSB2
aWV3TmVlZHNEaXNwbGF5OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1ZpZXdDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0Ns
aWVudEVmbC5oCmluZGV4IDFkZTc0ODk0YTRkYWE2NDEwN2E1YWJiMTI1ZmQ2M2ZlMmE3ZWNkZWMu
Ljg4YmUwZmIyMjVjZGI1ZjFhMWY5MGFlYjI4NWYzMDNlNjA0OGE5ZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5oCkBAIC01MCw2ICs1MCw3IEBAIHBy
aXZhdGU6CiAgICAgc3RhdGljIHZvaWQgdmlld05lZWRzRGlzcGxheShXS1ZpZXdSZWYsIFdLUmVj
dCBhcmVhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDaGFu
Z2VDb250ZW50c1NpemUoV0tWaWV3UmVmLCBXS1NpemUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
OwogICAgIHN0YXRpYyB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChXS1ZpZXdSZWYsIFdLVG91Y2hF
dmVudFJlZiwgYm9vbCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIHZvaWQg
ZGlkRmluZFpvb21hYmxlQXJlYShXS1ZpZXdSZWYsIFdLUG9pbnQsIFdLUmVjdCwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CiAKICAgICBFd2tWaWV3KiBtX3ZpZXc7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5jcHAKaW5kZXggYmJkNTRiNzZkZjQwNDRlZTcxMTQ5NjU1
YzkyNjVmOGU1Mjg4ZmVmYS4uN2Y2Y2Y2NmI3YzU2ZWMzNmMzNTJhODllYWE3MzI0MTIyODlmNWFk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwCkBAIC0yMTUsMTQg
KzIxNSwxOSBAQCB2b2lkIFdlYlZpZXc6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBzaXplKQogICAgIG1fY2xpZW50LmRpZENoYW5nZUNvbnRlbnRzU2l6ZSh0
aGlzLCBzaXplKTsKIH0KIAotQWZmaW5lVHJhbnNmb3JtIFdlYlZpZXc6OnRyYW5zZm9ybUZyb21T
Y2VuZSgpIGNvbnN0Cit2b2lkIFdlYlZpZXc6OmRpZEZpbmRab29tYWJsZUFyZWEoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIHRhcmdldCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgYXJlYSkKIHsK
LSAgICByZXR1cm4gdHJhbnNmb3JtVG9TY2VuZSgpLmludmVyc2UoKTsKKyAgICBtX2NsaWVudC5k
aWRGaW5kWm9vbWFibGVBcmVhKHRoaXMsIHRhcmdldCwgYXJlYSk7CiB9CiAKLUFmZmluZVRyYW5z
Zm9ybSBXZWJWaWV3Ojp0cmFuc2Zvcm1Ub1NjZW5lKCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBX
ZWJWaWV3Ojp0cmFuc2Zvcm1Gcm9tVmlldygpIGNvbnN0CiB7Ci0gICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggdHJhbnNmb3JtID0gbV91c2VyVmlld3BvcnRUcmFuc2Zvcm07CisgICAgcmV0dXJuIHRy
YW5zZm9ybVRvVmlldygpLmludmVyc2UoKTsKK30KKworQWZmaW5lVHJhbnNmb3JtIFdlYlZpZXc6
OnRyYW5zZm9ybVRvVmlldygpIGNvbnN0Cit7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJh
bnNmb3JtOwogCiAgICAgY29uc3QgRmxvYXRQb2ludCYgcGFnZVBvc2l0aW9uID0gbV9ld2tWaWV3
LT5wYWdlUG9zaXRpb24oKTsKICAgICB0cmFuc2Zvcm0udHJhbnNsYXRlKC1wYWdlUG9zaXRpb24u
eCgpLCAtcGFnZVBvc2l0aW9uLnkoKSk7CkBAIC0yMzIsNiArMjM3LDE5IEBAIEFmZmluZVRyYW5z
Zm9ybSBXZWJWaWV3Ojp0cmFuc2Zvcm1Ub1NjZW5lKCkgY29uc3QKICAgICByZXR1cm4gdHJhbnNm
b3JtLnRvQWZmaW5lVHJhbnNmb3JtKCk7CiB9CiAKK0FmZmluZVRyYW5zZm9ybSBXZWJWaWV3Ojp0
cmFuc2Zvcm1Gcm9tU2NlbmUoKSBjb25zdAoreworICAgIHJldHVybiB0cmFuc2Zvcm1Ub1NjZW5l
KCkuaW52ZXJzZSgpOworfQorCitBZmZpbmVUcmFuc2Zvcm0gV2ViVmlldzo6dHJhbnNmb3JtVG9T
Y2VuZSgpIGNvbnN0Cit7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtID0gbV91
c2VyVmlld3BvcnRUcmFuc2Zvcm07CisgICAgdHJhbnNmb3JtLm11bHRpcGx5KHRyYW5zZm9ybVRv
VmlldygpKTsKKworICAgIHJldHVybiB0cmFuc2Zvcm0udG9BZmZpbmVUcmFuc2Zvcm0oKTsKK30K
KwogQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKiBXZWJWaWV3Ojpjb29yZGluYXRlZEdyYXBoaWNz
U2NlbmUoKQogewogICAgIERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhID0gbV9wYWdlLT5k
cmF3aW5nQXJlYSgpOwpAQCAtNTY1LDQgKzU4Myw5IEBAIHZvaWQgV2ViVmlldzo6c2VuZEdlc3R1
cmVFdmVudChjb25zdCBXZWJHZXN0dXJlRXZlbnQqIGdlc3R1cmVFdmVudCkKIH0KICNlbmRpZgog
Cit2b2lkIFdlYlZpZXc6OmZpbmRab29tYWJsZUFyZWFGb3JQb2ludChjb25zdCBJbnRQb2ludCYg
cG9pbnQsIGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAgbV9wYWdlLT5maW5kWm9vbWFibGVB
cmVhRm9yUG9pbnQocG9pbnQsIHNpemUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmgKaW5kZXggYTNjMGRjYzE4ZTM0YzQzZTMy
MzI5ZmRlNDU4MDI0ZjYwMTQ1ZGQ1OC4uMWE0ZWQ2Yjc0YjQxOTc0MmZjMzllNGExMTQ4NDA1ZWFh
MTE4MWZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmgKQEAgLTg4LDYg
Kzg4LDggQEAgcHVibGljOgogICAgIHZvaWQgc2VuZEdlc3R1cmVFdmVudChjb25zdCBXZWJHZXN0
dXJlRXZlbnQqKTsKICNlbmRpZgogCisgICAgdm9pZCBmaW5kWm9vbWFibGVBcmVhRm9yUG9pbnQo
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisKICAg
ICAvLyBWaWV3IGNsaWVudC4KICAgICB2b2lkIGluaXRpYWxpemVDbGllbnQoY29uc3QgV0tWaWV3
Q2xpZW50Kik7CiAKQEAgLTk4LDggKzEwMCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDb21t
aXRMb2FkKCk7CiAgICAgdm9pZCB1cGRhdGVWaWV3cG9ydFNpemUoKTsKICAgICB2b2lkIGRpZENo
YW5nZUNvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAgdm9pZCBkaWRG
aW5kWm9vbWFibGVBcmVhKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpOwogCiAgICAgLy8gRklYTUU6IFNob3VsZCBiZWNvbWUgcHJpdmF0ZSB3aGVuIFdl
YiBFdmVudHMgY3JlYXRpb24gaXMgbW92ZWQgdG8gV2ViVmlldy4KKyAgICBXZWJDb3JlOjpBZmZp
bmVUcmFuc2Zvcm0gdHJhbnNmb3JtRnJvbVZpZXcoKSBjb25zdDsKKyAgICBXZWJDb3JlOjpBZmZp
bmVUcmFuc2Zvcm0gdHJhbnNmb3JtVG9WaWV3KCkgY29uc3Q7CiAgICAgV2ViQ29yZTo6QWZmaW5l
VHJhbnNmb3JtIHRyYW5zZm9ybUZyb21TY2VuZSgpIGNvbnN0OwogICAgIFdlYkNvcmU6OkFmZmlu
ZVRyYW5zZm9ybSB0cmFuc2Zvcm1Ub1NjZW5lKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdDbGllbnQuY3BwCmluZGV4IGY5ZjE2MDJmNjcyNzdjNTI2
YTZmZTIzNTU5OWY1MjgwYTVmZThmZmEuLmYzZDRiYTQyMjdjNmVlMzhiMWU3NTRhMjdhNjBlZGU1
ZDQxZjE3OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmll
d0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3Q2xp
ZW50LmNwcApAQCAtNTgsNCArNTgsMTIgQEAgdm9pZCBXZWJWaWV3Q2xpZW50Ojpkb25lV2l0aFRv
dWNoRXZlbnQoV2ViVmlldyogdmlldywgY29uc3QgV2ViVG91Y2hFdmVudCogZXZlbnQKIH0KICNl
bmRpZgogCit2b2lkIFdlYlZpZXdDbGllbnQ6OmRpZEZpbmRab29tYWJsZUFyZWEoV2ViVmlldyog
dmlldywgY29uc3QgSW50UG9pbnQmIHRhcmdldCwgY29uc3QgSW50UmVjdCYgYXJlYSkKK3sKKyAg
ICBpZiAoIW1fY2xpZW50LmRpZEZpbmRab29tYWJsZUFyZWEpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fY2xpZW50LmRpZEZpbmRab29tYWJsZUFyZWEodG9BUEkodmlldyksIHRvQVBJKHRhcmdl
dCksIHRvQVBJKGFyZWEpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZp
ZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0NsaWVudC5o
CmluZGV4IGEyNzMzYjc2OWJmODJiYWRlNjAyMGFjOWVjMDRkOGRlOGE2ZTVlMDEuLjAxMTQwZDVi
MmM0NjhmNzVlZGJlZTNjNzc3MTMwMGY5ODU0Y2VlYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvV2ViVmlld0NsaWVudC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
V0tWaWV3LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEludFBvaW50OwogY2xhc3Mg
SW50UmVjdDsKIGNsYXNzIEludFNpemU7CiB9CkBAIC00OSw2ICs1MCw3IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgZG9uZVdpdGhUb3VjaEV2ZW50KFdlYlZp
ZXcqLCBjb25zdCBXZWJUb3VjaEV2ZW50KiwgYm9vbCk7CiAjZW5kaWYKKyAgICB2b2lkIGRpZEZp
bmRab29tYWJsZUFyZWEoV2ViVmlldyosIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViUGFnZVByb3h5UXQuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYlBhZ2VQcm94eVF0LmNwcAppbmRleCBlNmQ5Yjkw
ODQ1MGRmYmE2Y2Y0Y2NjYzkxYWQxZWEyOTUwMTI4YzhiLi43NjQwNzZkZmIzYzE5NTU0MjYyNzI1
YmFkNmVlYjI3Y2IxN2YyMjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvV2ViUGFnZVByb3h5UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9X
ZWJQYWdlUHJveHlRdC5jcHAKQEAgLTg2LDE5ICs4Niw2IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpz
ZW5kQXBwbGljYXRpb25TY2hlbWVSZXBseShjb25zdCBRUXVpY2tOZXR3b3JrUmVwbHkqIHJlcGx5
KQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5kWm9vbWFibGVBcmVhKGNv
bnN0IEludFBvaW50JiB0YXJnZXQsIGNvbnN0IEludFJlY3QmIGFyZWEpCi17Ci0gICAgbV9wYWdl
Q2xpZW50LT5kaWRGaW5kWm9vbWFibGVBcmVhKHRhcmdldCwgYXJlYSk7Ci19Ci0KLXZvaWQgV2Vi
UGFnZVByb3h5OjpmaW5kWm9vbWFibGVBcmVhRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50
LCBjb25zdCBJbnRTaXplJiBhcmVhKQotewotICAgIGlmICghaXNWYWxpZCgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkZpbmRab29t
YWJsZUFyZWFGb3JQb2ludChwb2ludCwgYXJlYSksIG1fcGFnZUlEKTsKLX0KLQogdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbU5hdmlnYXRvclF0T2JqZWN0KGNvbnN0IFN0
cmluZyYgY29udGVudHMpCiB7CiAgICAgbV9wYWdlQ2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUZy
b21OYXZpZ2F0b3JRdE9iamVjdChjb250ZW50cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYzI1Mjg5MTMzNjNhYjNiNDIwY2I0MGRlNjhi
ODIzYjhjNzM1ZTFlNC4uOTM5YjExM2Y3NTcwZWNkNDQyNGMyN2U3NmIxOWQ2MDA1NWI4ODRkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
Mjk5MSw3ICsyOTkxLDcgQEAgSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QqIFdlYlBhZ2U6
OmJhY2tGb3J3YXJkTGlzdCgpCiAgICAgcmV0dXJuIG1fYmFja0ZvcndhcmRMaXN0LmdldCgpOwog
fQogCi0jaWYgUExBVEZPUk0oUVQpCisjaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkK
ICNpZiBFTkFCTEUoVE9VQ0hfQURKVVNUTUVOVCkKIHZvaWQgV2ViUGFnZTo6ZmluZFpvb21hYmxl
QXJlYUZvclBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgYXJlYSkKIHsKQEAgLTMwMjIsNyArMzAyMiw3IEBAIHZvaWQgV2ViUGFnZTo6
ZmluZFpvb21hYmxlQXJlYUZvclBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwg
Y29uc3QgV2ViCiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnRSZWN0
IHpvb21hYmxlQXJlYSA9IG5vZGUtPmdldFJlY3QoKTsKKyAgICBJbnRSZWN0IHpvb21hYmxlQXJl
YSA9IG5vZGUtPnBpeGVsU25hcHBlZEJvdW5kaW5nQm94KCk7CiAKICAgICB3aGlsZSAodHJ1ZSkg
ewogICAgICAgICBib29sIGZvdW5kID0gIW5vZGUtPmlzVGV4dE5vZGUoKSAmJiAhbm9kZS0+aXNT
aGFkb3dSb290KCk7CkBAIC0zMDM4LDcgKzMwMzgsNyBAQCB2b2lkIFdlYlBhZ2U6OmZpbmRab29t
YWJsZUFyZWFGb3JQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQsIGNvbnN0IFdl
YgogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUo
KTsKLSAgICAgICAgem9vbWFibGVBcmVhLnVuaXRlKG5vZGUtPmdldFJlY3QoKSk7CisgICAgICAg
IHpvb21hYmxlQXJlYS51bml0ZShub2RlLT5waXhlbFNuYXBwZWRCb3VuZGluZ0JveCgpKTsKICAg
ICB9CiAKICAgICBpZiAobm9kZS0+ZG9jdW1lbnQoKSAmJiBub2RlLT5kb2N1bWVudCgpLT5mcmFt
ZSgpICYmIG5vZGUtPmRvY3VtZW50KCktPmZyYW1lKCktPnZpZXcoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggN2QxYThhMDU1YzU4Y2QzYWU4
NGE0Yjk1ZmIyZmNiMzBmMzU1MzBhOC4uZTIyMmVkZWI4MTAzY2VhYzFhNDQ1ZTI1ZDAzYTI3ZGQy
MDY4MGI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CkBAIC03MzksNyArNzM5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGhpZGVGaW5kVUkoKTsKICAg
ICB2b2lkIGNvdW50U3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCB1aW50MzJfdCBmaW5kT3B0
aW9ucywgdWludDMyX3QgbWF4TWF0Y2hDb3VudCk7CiAKLSNpZiBQTEFURk9STShRVCkKKyNpZiBQ
TEFURk9STShRVCkgfHwgUExBVEZPUk0oRUZMKQogICAgIHZvaWQgZmluZFpvb21hYmxlQXJlYUZv
clBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
YXJlYSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAzM2FlM2RiYjgxMmQ0N2M2YTNjOGViYTBj
ZjU2NDdmNDllNjkwZDZmLi5lNmM3MzcxYzEzZDc1N2JlNDc4YTJjMDNlZjZhOGY1NTE5YWNiNDg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgpAQCAtMjg2LDcgKzI4Niw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVn
YWN5UmVjZWl2ZXIgewogICAgIFNldENvbXBvc2l0aW9uKFdURjo6U3RyaW5nIGNvbXBvc2l0aW9u
U3RyaW5nLCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZT4gdW5kZXJs
aW5lcywgdWludDY0X3QgY3Vyc29yUG9zaXRpb24pCiAgICAgQ2FuY2VsQ29tcG9zaXRpb24oKQog
I2VuZGlmCi0jaWYgUExBVEZPUk0oUVQpCisjaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVG
TCkKICAgICBGaW5kWm9vbWFibGVBcmVhRm9yUG9pbnQoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQs
IFdlYkNvcmU6OkludFNpemUgYXJlYSkKICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207634</attachid>
            <date>2013-07-29 03:54:50 -0700</date>
            <delta_ts>2013-08-09 01:28:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107631-20130729195448.patch</filename>
            <type>text/plain</type>
            <size>11255</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjZlYTdhZmIyMTMxZDEx
MTk1NTgwZWExNzFmN2NmMmEzMzJmYzY0MS4uMTZkNWE5ZWZlNDBkMWE4YWM5MTk1NzgzZGViMzE2
NjYzNDgzYmZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDEzLTA3LTI5ICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KIAorICAgICAgICBbRUZMXVtXSzJdIFNj
YWxlIHRvIGZvY3VzZWQgYXJlYSB3aGVuIGRvdWJsZSB0YXAgZ2VzdHVyZSBpcyByZWNvZ25pemVk
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NjMx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2NhbGUg
cGFnZSB3aXRoIGFuaW1hdGlvbiB3aGVuIGRvdWJsZSB0YXAgZ2VzdHVyZSBpcyByZWNvZ25pemVk
LgorICAgICAgICBTY2FsZSBpbiB0byB0aGUgem9vbWFibGUgYXJlYSB3aGVuIGN1cnJlbnQgc2Nh
bGUgZmFjdG9yIGlzIHNhbWUgYXMKKyAgICAgICAgbWluaW11bSBzY2FsZSBmYWN0b3IgYW5kIHNj
YWxlIG91dCB0byB0aGUgbWluaW11bSBzY2FsZSBmYWN0b3IKKyAgICAgICAgb3RoZXJ3aXNlLgor
ICAgICAgICBUaGUgUXQgcG9ydCdzIGNvZGVzIGFyZSByZWZlcmVuY2VkLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHA6CisgICAgICAgIChFd2tWaWV3OjpkaWRGaW5k
Wm9vbWFibGVBcmVhKToKKyAgICAgICAgKEV3a1ZpZXc6OmhhbmRsZURvdWJsZVRhcCk6CisgICAg
ICAgICogVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyOjpkaWRDaGFuZ2VDb250ZW50c1Zpc2liaWxpdHkp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVm
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRyYW5zaXRpb246OlRyYW5zaXRpb24pOgorICAgICAg
ICAoV2ViS2l0OjpUcmFuc2l0aW9uOjp+VHJhbnNpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlRy
YW5zaXRpb246OnNldFJlY3RzKToKKyAgICAgICAgKFdlYktpdDo6VHJhbnNpdGlvbjo6c3RhcnQp
OgorICAgICAgICAoV2ViS2l0OjpUcmFuc2l0aW9uOjphbmltYXRvckNhbGxiYWNrKToKKyAgICAg
ICAgKFdlYktpdDo6VHJhbnNpdGlvbjo6cHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VW
aWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmw6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRF
ZmwpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsOjpz
Y2FsZVRvQXJlYVdpdGhBbmltYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRD
b250cm9sbGVyQ2xpZW50RWZsOjpzZXRUcmFuc2l0aW9uUmVjdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmg6CisgICAgICAgIChXZWJL
aXQ6OlRyYW5zaXRpb25DbGllbnQ6On5UcmFuc2l0aW9uQ2xpZW50KToKKyAgICAgICAgKFdlYktp
dDo6VHJhbnNpdGlvbkNsaWVudDo6c2V0VHJhbnNpdGlvblJlY3QpOgorICAgICAgICAoV2ViS2l0
OjpUcmFuc2l0aW9uOjpjcmVhdGUpOgorCisyMDEzLTA3LTI5ICBFdW5taSBMZWUgIDxldW5taTE1
LmxlZUBzYW1zdW5nLmNvbT4KKwogICAgICAgICBbRUZMXVtXSzJdIFByb2Nlc3Mgc2luZ2xlIHRh
cCB1c2luZyBXZWJFdmVudDo6R2VzdHVyZVNpbmdsZVRhcC4KICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjg2NAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4IGI3ZmE4MTc3M2NiNWFiMDk0MDBkNjgw
MjU2Mjk3MWQ0NzY0MzliMDAuLmVhMWUxYzY2Yzc0YTI0MjI0MjdjZGQ4NmQ5YjFjYzgyYmYzMWFh
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCkBA
IC0xMzk2LDcgKzEzOTYsNyBAQCBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gRXdrVmlldzo6
dGFrZVNuYXBzaG90KCkKIAogdm9pZCBFd2tWaWV3OjpkaWRGaW5kWm9vbWFibGVBcmVhKGNvbnN0
IFdLUG9pbnQmIHBvaW50LCBjb25zdCBXS1JlY3QmIGFyZWEpCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICBtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnQtPnNjYWxlVG9BcmVhV2l0
aEFuaW1hdGlvbih0b0ludFBvaW50KHBvaW50KSwgdG9JbnRSZWN0KGFyZWEpKTsKIH0KIAogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCkBAIC0xNDEwLDkgKzE0MTAsMTAgQEAgdm9pZCBFd2tWaWV3
OjpoYW5kbGVTaW5nbGVUYXAoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uKQogI2VuZGlmCiB9CiAK
LXZvaWQgRXdrVmlldzo6aGFuZGxlRG91YmxlVGFwKGNvbnN0IEludFBvaW50JikKK3ZvaWQgRXdr
Vmlldzo6aGFuZGxlRG91YmxlVGFwKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbikKIHsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIC8vIEZJWE1FOiBXZSBoYXZlIHRvIHNldCBtZWFuaW5nZnVs
IHNpemUgb2YgdG91Y2ggaW5zdGVhZCBvZiAiMSwgMSIuCisgICAgV0tWaWV3RmluZFpvb21hYmxl
QXJlYUZvclJlY3Qod2tWaWV3KCksIFdLUmVjdE1ha2UocG9zaXRpb24ueCgpLCBwb3NpdGlvbi55
KCksIDEsIDEpKTsKIH0KIAogdm9pZCBFd2tWaWV3OjpoYW5kbGVUYXBBbmRIb2xkKGNvbnN0IElu
dFBvaW50JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3Bv
cnRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRD
b250cm9sbGVyLmNwcAppbmRleCA2MjU0Y2Y3NWQ2OTFjYjhhMDkwYzFhNjhkNWNmYzc0Nzk3N2Zl
OGU5Li4zZmNlMjhjNTA3NjAzNjM5NjI0NzEwOTM3M2RmMDg0MzhiMWQxOWQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCkBA
IC0yNTcsOCArMjU3LDcgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjpkaWRDaGFuZ2VD
b250ZW50c1Zpc2liaWxpdHkoY29uc3QgRmxvYXRQb2ludCYgcG9zaXQKIHsKICAgICBpZiAoIW1f
cGVuZGluZ1Bvc2l0aW9uQ2hhbmdlKQogICAgICAgICBtX2NvbnRlbnRzUG9zaXRpb24gPSBwb3Np
dGlvbjsKLSAgICBpZiAoIW1fcGVuZGluZ1NjYWxlQ2hhbmdlKQotICAgICAgICBhcHBseVNjYWxl
QWZ0ZXJSZW5kZXJpbmdDb250ZW50cyhzY2FsZSk7CisgICAgYXBwbHlTY2FsZUFmdGVyUmVuZGVy
aW5nQ29udGVudHMoc2NhbGUpOwogCiAgICAgc3luY1Zpc2libGVDb250ZW50cyh0cmFqZWN0b3J5
VmVjdG9yKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFn
ZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuY3BwCmluZGV4IDIyYTQ1YjUy
ZjliOTc3ZTA3OTMzZjc2ZjFkZDdmOWMwYzJhZGFkMDkuLmE4MjI5NzFjMzZiMWQ3NjQ1ODk0ZGVh
OGJhNjQ0MmUwOWNlOThlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmNwcApAQCAt
MSw2ICsxLDcgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmlj
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBTYW1z
dW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDEzIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw2ICszMSw3IEBACiAKICNpbmNs
dWRlICJQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmgiCiAKKyNpbmNsdWRlICJFYXNp
bmdDdXJ2ZXMuaCIKICNpbmNsdWRlICJFd2tWaWV3LmgiCiAjaW5jbHVkZSAiUGFnZVZpZXdwb3J0
Q29udHJvbGxlci5oIgogCkBAIC0zNywxMyArMzksNjYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitUcmFuc2l0aW9uOjpUcmFuc2l0aW9uKFRyYW5z
aXRpb25DbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fYW5p
bWF0b3IoMCkKKyAgICAsIG1fc2NhbGVEdXJhdGlvbigwKQorICAgICwgbV9zY2FsZUluZGV4KDAp
Cit7Cit9CisKK1RyYW5zaXRpb246On5UcmFuc2l0aW9uKCkKK3sKKyAgICBpZiAobV9hbmltYXRv
cikKKyAgICAgICAgZWNvcmVfYW5pbWF0b3JfZGVsKG1fYW5pbWF0b3IpOworfQorCit2b2lkIFRy
YW5zaXRpb246OnNldFJlY3RzKGNvbnN0IEZsb2F0UmVjdCYgYmFzZVJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgdGFyZ2V0UmVjdCkKK3sKKyAgICBtX2Jhc2VSZWN0ID0gYmFzZVJlY3Q7CisgICAgbV90
YXJnZXRSZWN0ID0gdGFyZ2V0UmVjdDsKK30KKwordm9pZCBUcmFuc2l0aW9uOjpzdGFydCh1bnNp
Z25lZCBkdXJhdGlvbikKK3sKKyAgICBtX2FuaW1hdG9yID0gZWNvcmVfYW5pbWF0b3JfYWRkKGFu
aW1hdG9yQ2FsbGJhY2ssIHRoaXMpOworICAgIG1fc2NhbGVEdXJhdGlvbiA9IGR1cmF0aW9uOwor
ICAgIG1fc2NhbGVJbmRleCA9IDE7Cit9CisKK0VpbmFfQm9vbCBUcmFuc2l0aW9uOjphbmltYXRv
ckNhbGxiYWNrKHZvaWQqIGRhdGEpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRyYW5zaXRp
b24qPihkYXRhKS0+cHJvY2VzcygpOworfQorCitib29sIFRyYW5zaXRpb246OnByb2Nlc3MoKQor
eworICAgIEZsb2F0UmVjdCByZWN0OworICAgIGZsb2F0IG11bHRpcGxpZXIgPSBlYXNlSW5PdXRR
dWFkKG1fc2NhbGVJbmRleCsrLCAwLCAxLjAsIG1fc2NhbGVEdXJhdGlvbik7CisgICAgcmVjdC5z
ZXRYKG1fYmFzZVJlY3QueCgpICsgKG1fdGFyZ2V0UmVjdC54KCkgLSBtX2Jhc2VSZWN0LngoKSkg
KiBtdWx0aXBsaWVyKTsKKyAgICByZWN0LnNldFkobV9iYXNlUmVjdC55KCkgKyAobV90YXJnZXRS
ZWN0LnkoKSAtIG1fYmFzZVJlY3QueSgpKSAqIG11bHRpcGxpZXIpOworICAgIHJlY3Quc2V0V2lk
dGgobV9iYXNlUmVjdC53aWR0aCgpICsgKG1fdGFyZ2V0UmVjdC53aWR0aCgpIC0gbV9iYXNlUmVj
dC53aWR0aCgpKSAqIG11bHRpcGxpZXIpOworICAgIHJlY3Quc2V0SGVpZ2h0KG1fYmFzZVJlY3Qu
aGVpZ2h0KCkgKyAobV90YXJnZXRSZWN0LmhlaWdodCgpIC0gbV9iYXNlUmVjdC5oZWlnaHQoKSkg
KiBtdWx0aXBsaWVyKTsKKworICAgIG1fY2xpZW50LT5zZXRUcmFuc2l0aW9uUmVjdChyZWN0KTsK
KworICAgIGlmIChtX3NjYWxlSW5kZXggPiBtX3NjYWxlRHVyYXRpb24pIHsKKyAgICAgICAgbV9h
bmltYXRvciA9IDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwogUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbDo6UGFnZVZpZXdwb3J0
Q29udHJvbGxlckNsaWVudEVmbChFd2tWaWV3KiB2aWV3KQogICAgIDogbV92aWV3KHZpZXcpCiAg
ICAgLCBtX2NvbnRyb2xsZXIoMCkKKyAgICAsIG1fdHJhbnNpdGlvbihUcmFuc2l0aW9uOjpjcmVh
dGUodGhpcykpCiB7CiAgICAgQVNTRVJUKG1fdmlldyk7CiB9CiAKKwogdm9pZCBQYWdlVmlld3Bv
cnRDb250cm9sbGVyQ2xpZW50RWZsOjpkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYpCiB7CiAgICAgbV92aWV3LT5zY2hlZHVsZVVwZGF0ZURpc3BsYXkoKTsKQEAg
LTgwLDUgKzEzNSw0NSBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmw6OnNl
dENvbnRyb2xsZXIoUGFnZVZpZXdwb3J0Q29udHJvbGxlciogY29udAogICAgIG1fY29udHJvbGxl
ciA9IGNvbnRyb2xsZXI7CiB9CiAKK3ZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVm
bDo6c2NhbGVUb0FyZWFXaXRoQW5pbWF0aW9uKGNvbnN0IEludFBvaW50JiB0YXJnZXQsIGNvbnN0
IEZsb2F0UmVjdCYgYXJlYSkKK3sKKyAgICBBU1NFUlQobV9jb250cm9sbGVyKTsKKyAgICBpZiAo
IW1fY29udHJvbGxlci0+YWxsb3dzVXNlclNjYWxpbmcoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKGFyZWEuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBGbG9hdFJlY3Qg
dGFyZ2V0UmVjdCA9IGFyZWE7CisgICAgdGFyZ2V0UmVjdC5pbmZsYXRlWChzX3NjYWxlTWFyZ2lu
KTsKKyAgICBXS1NpemUgdmlld3BvcnRTaXplID0gV0tWaWV3R2V0U2l6ZShtX3ZpZXctPndrVmll
dygpKTsKKworICAgIGZsb2F0IHRhcmdldFNjYWxlOworICAgIGlmIChzdGQ6OmFicyhtX2NvbnRy
b2xsZXItPm1pbmltdW1TY2FsZSgpIC0gbV9jb250cm9sbGVyLT5jdXJyZW50U2NhbGUoKSkgPCAw
LjAwMDEpCisgICAgICAgIHRhcmdldFNjYWxlID0gbV9jb250cm9sbGVyLT5pbm5lckJvdW5kZWRW
aWV3cG9ydFNjYWxlKHZpZXdwb3J0U2l6ZS53aWR0aCAvIHRhcmdldFJlY3Qud2lkdGgoKSk7Cisg
ICAgZWxzZQorICAgICAgICB0YXJnZXRTY2FsZSA9IG1fY29udHJvbGxlci0+bWluaW11bVNjYWxl
KCk7CisKKyAgICBGbG9hdFJlY3QgbmV3Q29udGVudHNSZWN0KHRhcmdldFJlY3QuY2VudGVyKCks
IEZsb2F0U2l6ZSh2aWV3cG9ydFNpemUud2lkdGggLyB0YXJnZXRTY2FsZSwgdmlld3BvcnRTaXpl
LmhlaWdodCAvIHRhcmdldFNjYWxlKSk7CisgICAgaWYgKHRhcmdldFJlY3QuaGVpZ2h0KCkgPiBu
ZXdDb250ZW50c1JlY3QuaGVpZ2h0KCkpCisgICAgICAgIG5ld0NvbnRlbnRzUmVjdC5zZXRZKHRh
cmdldC55KCkpOworICAgIG5ld0NvbnRlbnRzUmVjdC5tb3ZlKC1uZXdDb250ZW50c1JlY3Qud2lk
dGgoKSAvIDIsIC1uZXdDb250ZW50c1JlY3QuaGVpZ2h0KCkgLyAyKTsKKyAgICBuZXdDb250ZW50
c1JlY3Quc2V0TG9jYXRpb24obV9jb250cm9sbGVyLT5ib3VuZENvbnRlbnRzUG9zaXRpb25BdFNj
YWxlKG5ld0NvbnRlbnRzUmVjdC5sb2NhdGlvbigpLCB0YXJnZXRTY2FsZSkpOworCisgICAgV0tQ
b2ludCBjb250ZW50c1Bvc2l0aW9uID0gV0tWaWV3R2V0Q29udGVudFBvc2l0aW9uKG1fdmlldy0+
d2tWaWV3KCkpOworICAgIGZsb2F0IGNvbnRlbnRTY2FsZSA9IFdLVmlld0dldENvbnRlbnRTY2Fs
ZUZhY3RvcihtX3ZpZXctPndrVmlldygpKTsKKyAgICBGbG9hdFJlY3QgY3VycmVudENvbnRlbnRz
UmVjdCA9IEZsb2F0UmVjdChjb250ZW50c1Bvc2l0aW9uLngsIGNvbnRlbnRzUG9zaXRpb24ueSwg
dmlld3BvcnRTaXplLndpZHRoLCB2aWV3cG9ydFNpemUuaGVpZ2h0KTsKKyAgICBjdXJyZW50Q29u
dGVudHNSZWN0LnNjYWxlKDEgLyBjb250ZW50U2NhbGUpOworICAgIG1fdHJhbnNpdGlvbi0+c2V0
UmVjdHMoY3VycmVudENvbnRlbnRzUmVjdCwgbmV3Q29udGVudHNSZWN0KTsKKyAgICBtX3RyYW5z
aXRpb24tPnN0YXJ0KHNfc2NhbGVEdXJhdGlvbik7Cit9CisKK3ZvaWQgUGFnZVZpZXdwb3J0Q29u
dHJvbGxlckNsaWVudEVmbDo6c2V0VHJhbnNpdGlvblJlY3QoY29uc3QgRmxvYXRSZWN0JiBjb250
ZW50c1JlY3QpCit7CisgICAgV0tTaXplIHNpemUgPSBXS1ZpZXdHZXRTaXplKG1fdmlldy0+d2tW
aWV3KCkpOworICAgIHNldFBhZ2VTY2FsZUZhY3RvcihzaXplLndpZHRoIC8gY29udGVudHNSZWN0
LndpZHRoKCkpOworICAgIHNldFZpZXdwb3J0UG9zaXRpb24oY29udGVudHNSZWN0LmxvY2F0aW9u
KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oCmluZGV4IGU0MDQ1YjZl
MWEyMDZkY2I4MjBhNTY2MDAzYmZjMTMyYjg3NzQwMTguLjI3NTI1NmZjZDE1NWY5OTZkMDA0OWY1
ZWJkMTA1NzA0NzkzOTYyMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oCkBAIC0xLDYg
KzEsNyBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIFNhbXN1bmcg
RWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDE0ICsyOSw0OSBAQAogI2RlZmluZSBQ
YWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsX2gKIAogI2luY2x1ZGUgIlBhZ2VWaWV3cG9y
dENvbnRyb2xsZXJDbGllbnQuaCIKKyNpbmNsdWRlIDxFY29yZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRmxvYXRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogY2xhc3MgRXdrVmlldzsKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLWNsYXNzIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwgOiBwdWJsaWMgUGFn
ZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudCB7CitjbGFzcyBQYWdlVmlld3BvcnRDb250cm9sbGVy
Q2xpZW50RWZsOworCitjbGFzcyBUcmFuc2l0aW9uQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0
dWFsIH5UcmFuc2l0aW9uQ2xpZW50KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldFRyYW5zaXRp
b25SZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIHsgfQorfTsKKworY2xhc3MgVHJhbnNp
dGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8VHJhbnNpdGlvbj4gY3JlYXRl
KFRyYW5zaXRpb25DbGllbnQqIGNsaWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgVHJhbnNpdGlvbihjbGllbnQpKTsKKyAgICB9CisgICAgdmlydHVhbCB+VHJhbnNpdGlv
bigpOworCisgICAgdm9pZCBzZXRSZWN0cyhjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJhc2VS
ZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFJlY3QpOworICAgIHZvaWQgc3Rh
cnQodW5zaWduZWQgZHVyYXRpb24pOworCitwcml2YXRlOgorICAgIFRyYW5zaXRpb24oVHJhbnNp
dGlvbkNsaWVudCopOworCisgICAgc3RhdGljIEVpbmFfQm9vbCBhbmltYXRvckNhbGxiYWNrKHZv
aWQqKTsKKyAgICBib29sIHByb2Nlc3MoKTsKKworICAgIFRyYW5zaXRpb25DbGllbnQqIG1fY2xp
ZW50OworICAgIEVjb3JlX0FuaW1hdG9yKiBtX2FuaW1hdG9yOworICAgIFdlYkNvcmU6OkZsb2F0
UmVjdCBtX3RhcmdldFJlY3Q7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fYmFzZVJlY3Q7Cisg
ICAgdW5zaWduZWQgbV9zY2FsZUR1cmF0aW9uOworICAgIHVuc2lnbmVkIG1fc2NhbGVJbmRleDsK
K307CisKK2NsYXNzIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwgOiBwdWJsaWMgUGFn
ZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudCwgcHVibGljIFRyYW5zaXRpb25DbGllbnQgewogcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRF
Zmw+IGNyZWF0ZShFd2tWaWV3KiB2aWV3SW1wbCkKICAgICB7CkBAIC01MiwxMiArODgsMjEgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIoUGFnZVZpZXdwb3J0Q29u
dHJvbGxlciopIE9WRVJSSURFOwogCisgICAgdm9pZCBzY2FsZVRvQXJlYVdpdGhBbmltYXRpb24o
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKKwor
ICAgIC8vIFRyYW5zaXRpb25DbGllbnQuCisgICAgdm9pZCBzZXRUcmFuc2l0aW9uUmVjdChjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBQYWdlVmll
d3BvcnRDb250cm9sbGVyQ2xpZW50RWZsKEV3a1ZpZXcqKTsKIAorICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBzX3NjYWxlRHVyYXRpb24gPSAyMDsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
c19zY2FsZU1hcmdpbiA9IDU7CisKICAgICBFd2tWaWV3KiBtX3ZpZXc7CiAgICAgV2ViQ29yZTo6
RmxvYXRQb2ludCBtX2NvbnRlbnRQb3NpdGlvbjsKICAgICBQYWdlVmlld3BvcnRDb250cm9sbGVy
KiBtX2NvbnRyb2xsZXI7CisgICAgT3duUHRyPFRyYW5zaXRpb24+IG1fdHJhbnNpdGlvbjsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208405</attachid>
            <date>2013-08-09 01:28:20 -0700</date>
            <delta_ts>2014-01-27 23:53:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107631-20130809172818.patch</filename>
            <type>text/plain</type>
            <size>12107</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzODczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGQ0ODQyMGRiZGY4MGY3
ZDE0NjkxNDliMmQzZDQ0YTUxNmJhYjJhZS4uYTY4NzIzYmY3NGJjNDBlYTkwZDk2ZThiMTcwOTRl
Yjc2OWY4N2Y4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTA4LTA5ICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFNj
YWxlIHRvIGZvY3VzZWQgYXJlYSB3aGVuIGRvdWJsZSB0YXAgZ2VzdHVyZSBpcyByZWNvZ25pemVk
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NjMx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2NhbGUg
cGFnZSB3aXRoIGFuaW1hdGlvbiB3aGVuIGRvdWJsZSB0YXAgZ2VzdHVyZSBpcyByZWNvZ25pemVk
LgorICAgICAgICBTY2FsZSBpbiB0byB0aGUgem9vbWFibGUgYXJlYSB3aGVuIGN1cnJlbnQgc2Nh
bGUgZmFjdG9yIGlzIHNhbWUgYXMKKyAgICAgICAgbWluaW11bSBzY2FsZSBmYWN0b3IgYW5kIHNj
YWxlIG91dCB0byB0aGUgbWluaW11bSBzY2FsZSBmYWN0b3IKKyAgICAgICAgb3RoZXJ3aXNlLgor
ICAgICAgICBUaGUgUXQgcG9ydCdzIGNvZGVzIGFyZSByZWZlcmVuY2VkLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHA6CisgICAgICAgIChFd2tWaWV3OjpkaWRGaW5k
Wm9vbWFibGVBcmVhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9HZXN0dXJlUmVjb2du
aXplci5jcHA6CisgICAgICAgIChXZWJLaXQ6Okdlc3R1cmVIYW5kbGVyOjpoYW5kbGVEb3VibGVU
YXApOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6ZGlkQ2hhbmdlQ29udGVudHNW
aXNpYmlsaXR5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xs
ZXJDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpUcmFuc2l0aW9uOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpUcmFuc2l0aW9uOjpUcmFuc2l0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6VHJhbnNpdGlvbjo6flRyYW5zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpUcmFuc2l0aW9u
OjpzZXRSZWN0cyk6CisgICAgICAgIChXZWJLaXQ6OlRyYW5zaXRpb246OnN0YXJ0KToKKyAgICAg
ICAgKFdlYktpdDo6VHJhbnNpdGlvbjo6YW5pbWF0b3JDYWxsYmFjayk6CisgICAgICAgIChXZWJL
aXQ6OlRyYW5zaXRpb246OnByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRD
b250cm9sbGVyQ2xpZW50RWZsOjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbDo6flBhZ2VWaWV3
cG9ydENvbnRyb2xsZXJDbGllbnRFZmwpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRD
b250cm9sbGVyQ2xpZW50RWZsOjpzY2FsZVRvQXJlYVdpdGhBbmltYXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsOjpzZXRUcmFuc2l0aW9uUmVj
dCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50
RWZsLmg6CisgICAgICAgIChXZWJLaXQ6OlRyYW5zaXRpb25DbGllbnQ6On5UcmFuc2l0aW9uQ2xp
ZW50KToKKyAgICAgICAgKFdlYktpdDo6VHJhbnNpdGlvbkNsaWVudDo6c2V0VHJhbnNpdGlvblJl
Y3QpOgorCiAyMDEzLTA4LTA4ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxl
LmNvbT4KIAogICAgICAgICBEaXNhYmxlIHN1cHByZXNzaW9uIG9mIHBsdWdpbiBwcm9jZXNzIGZv
ciBKYXZhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tW
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmlu
ZGV4IDc1YjkzZDhlODhkMDk1MjZjZjI1NzE5MjUxNDczZDc0Y2Y0NDEyZjMuLjcwMzQxNzcxMTQ1
MmViNzQwMGE0NWQzMDBmYjE5Y2JmNzRjMWQ0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCkBAIC0xMzg5LDcgKzEzODksNyBAQCBQYXNzUmVmUHRy
PGNhaXJvX3N1cmZhY2VfdD4gRXdrVmlldzo6dGFrZVNuYXBzaG90KCkKIAogdm9pZCBFd2tWaWV3
OjpkaWRGaW5kWm9vbWFibGVBcmVhKGNvbnN0IFdLUG9pbnQmIHBvaW50LCBjb25zdCBXS1JlY3Qm
IGFyZWEpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3BhZ2VWaWV3cG9ydENvbnRy
b2xsZXJDbGllbnQtPnNjYWxlVG9BcmVhV2l0aEFuaW1hdGlvbih0b0ludFBvaW50KHBvaW50KSwg
dG9JbnRSZWN0KGFyZWEpKTsKIH0KIAogYm9vbCBFd2tWaWV3OjpzY3JvbGxCeShjb25zdCBJbnRT
aXplJiBvZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9HZXN0dXJlUmVjb2duaXplci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9HZXN0dXJlUmVjb2duaXplci5jcHAKaW5kZXggYzFkMDk0M2Q4NmI0MzdjNDY4ZThmZDdkYTA0
NjMzMmQyNzk0ZGY0OS4uYTJlM2I5YzlhMWVhNzNhYzQwMWUxNGFlOTMyY2QyMTI3ZjM5ZjUwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvR2VzdHVyZVJlY29n
bml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0dlc3R1cmVS
ZWNvZ25pemVyLmNwcApAQCAtMTI0LDkgKzEyNCwxMCBAQCB2b2lkIEdlc3R1cmVIYW5kbGVyOjpo
YW5kbGVTaW5nbGVUYXAoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uKQogI2VuZGlmCiB9CiAKLXZv
aWQgR2VzdHVyZUhhbmRsZXI6OmhhbmRsZURvdWJsZVRhcChjb25zdCBJbnRQb2ludCYpCit2b2lk
IEdlc3R1cmVIYW5kbGVyOjpoYW5kbGVEb3VibGVUYXAoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9u
KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgLy8gRklYTUU6IFdlIGhhdmUgdG8gc2V0
IG1lYW5pbmdmdWwgc2l6ZSBvZiB0b3VjaCBpbnN0ZWFkIG9mICIxLCAxIi4KKyAgICBXS1ZpZXdG
aW5kWm9vbWFibGVBcmVhRm9yUmVjdChtX2V3a1ZpZXctPndrVmlldygpLCBXS1JlY3RNYWtlKHBv
c2l0aW9uLngoKSwgcG9zaXRpb24ueSgpLCAxLCAxKSk7CiB9CiAKIHZvaWQgR2VzdHVyZUhhbmRs
ZXI6OmhhbmRsZVRhcEFuZEhvbGQoY29uc3QgSW50UG9pbnQmKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCmluZGV4IDYyNTRjZjc1
ZDY5MWNiOGEwOTBjMWE2OGQ1Y2ZjNzQ3OTc3ZmU4ZTkuLjNmY2UyOGM1MDc2MDM2Mzk2MjQ3MTA5
MzczZGYwODQzOGIxZDE5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
YWdlVmlld3BvcnRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKQEAgLTI1Nyw4ICsyNTcsNyBAQCB2b2lkIFBhZ2VW
aWV3cG9ydENvbnRyb2xsZXI6OmRpZENoYW5nZUNvbnRlbnRzVmlzaWJpbGl0eShjb25zdCBGbG9h
dFBvaW50JiBwb3NpdAogewogICAgIGlmICghbV9wZW5kaW5nUG9zaXRpb25DaGFuZ2UpCiAgICAg
ICAgIG1fY29udGVudHNQb3NpdGlvbiA9IHBvc2l0aW9uOwotICAgIGlmICghbV9wZW5kaW5nU2Nh
bGVDaGFuZ2UpCi0gICAgICAgIGFwcGx5U2NhbGVBZnRlclJlbmRlcmluZ0NvbnRlbnRzKHNjYWxl
KTsKKyAgICBhcHBseVNjYWxlQWZ0ZXJSZW5kZXJpbmdDb250ZW50cyhzY2FsZSk7CiAKICAgICBz
eW5jVmlzaWJsZUNvbnRlbnRzKHRyYWplY3RvcnlWZWN0b3IpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZs
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxl
ckNsaWVudEVmbC5jcHAKaW5kZXggMjJhNDViNTJmOWI5NzdlMDc5MzNmNzZmMWRkN2Y5YzBjMmFk
YWQwOS4uMzE1NTJiNmIwZGQ5YTI2MmVjNDkzZGFhMzJjZDIwNmUwOGUxZTZkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xp
ZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9y
dENvbnRyb2xsZXJDbGllbnRFZmwuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMwLDYgKzMxLDcgQEAKIAogI2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJD
bGllbnRFZmwuaCIKIAorI2luY2x1ZGUgIkVhc2luZ0N1cnZlcy5oIgogI2luY2x1ZGUgIkV3a1Zp
ZXcuaCIKICNpbmNsdWRlICJQYWdlVmlld3BvcnRDb250cm9sbGVyLmgiCiAKQEAgLTM3LDEzICsz
OSw5NCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
K2NsYXNzIFRyYW5zaXRpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFRyYW5z
aXRpb24+IGNyZWF0ZShUcmFuc2l0aW9uQ2xpZW50KiBjbGllbnQpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IFRyYW5zaXRpb24oY2xpZW50KSk7CisgICAgfQorICAgIHZpcnR1
YWwgflRyYW5zaXRpb24oKTsKKworICAgIHZvaWQgc2V0UmVjdHMoY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiBiYXNlUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRSZWN0KTsK
KyAgICB2b2lkIHN0YXJ0KHVuc2lnbmVkIGR1cmF0aW9uKTsKKworcHJpdmF0ZToKKyAgICBUcmFu
c2l0aW9uKFRyYW5zaXRpb25DbGllbnQqKTsKKworICAgIHN0YXRpYyBFaW5hX0Jvb2wgYW5pbWF0
b3JDYWxsYmFjayh2b2lkKik7CisgICAgYm9vbCBwcm9jZXNzKCk7CisKKyAgICBUcmFuc2l0aW9u
Q2xpZW50KiBtX2NsaWVudDsKKyAgICBFY29yZV9BbmltYXRvciogbV9hbmltYXRvcjsKKyAgICBX
ZWJDb3JlOjpGbG9hdFJlY3QgbV90YXJnZXRSZWN0OworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBt
X2Jhc2VSZWN0OworICAgIHVuc2lnbmVkIG1fc2NhbGVEdXJhdGlvbjsKKyAgICB1bnNpZ25lZCBt
X3NjYWxlSW5kZXg7Cit9OworCitUcmFuc2l0aW9uOjpUcmFuc2l0aW9uKFRyYW5zaXRpb25DbGll
bnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fYW5pbWF0b3IoMCkK
KyAgICAsIG1fc2NhbGVEdXJhdGlvbigwKQorICAgICwgbV9zY2FsZUluZGV4KDApCit7Cit9CisK
K1RyYW5zaXRpb246On5UcmFuc2l0aW9uKCkKK3sKKyAgICBpZiAobV9hbmltYXRvcikKKyAgICAg
ICAgZWNvcmVfYW5pbWF0b3JfZGVsKG1fYW5pbWF0b3IpOworfQorCit2b2lkIFRyYW5zaXRpb246
OnNldFJlY3RzKGNvbnN0IEZsb2F0UmVjdCYgYmFzZVJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFy
Z2V0UmVjdCkKK3sKKyAgICBtX2Jhc2VSZWN0ID0gYmFzZVJlY3Q7CisgICAgbV90YXJnZXRSZWN0
ID0gdGFyZ2V0UmVjdDsKK30KKwordm9pZCBUcmFuc2l0aW9uOjpzdGFydCh1bnNpZ25lZCBkdXJh
dGlvbikKK3sKKyAgICBtX2FuaW1hdG9yID0gZWNvcmVfYW5pbWF0b3JfYWRkKGFuaW1hdG9yQ2Fs
bGJhY2ssIHRoaXMpOworICAgIG1fc2NhbGVEdXJhdGlvbiA9IGR1cmF0aW9uOworICAgIG1fc2Nh
bGVJbmRleCA9IDE7Cit9CisKK0VpbmFfQm9vbCBUcmFuc2l0aW9uOjphbmltYXRvckNhbGxiYWNr
KHZvaWQqIGRhdGEpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRyYW5zaXRpb24qPihkYXRh
KS0+cHJvY2VzcygpOworfQorCitib29sIFRyYW5zaXRpb246OnByb2Nlc3MoKQoreworICAgIEZs
b2F0UmVjdCByZWN0OworICAgIGZsb2F0IG11bHRpcGxpZXIgPSBlYXNlSW5PdXRRdWFkKG1fc2Nh
bGVJbmRleCsrLCAwLCAxLjAsIG1fc2NhbGVEdXJhdGlvbik7CisgICAgcmVjdC5zZXRYKG1fYmFz
ZVJlY3QueCgpICsgKG1fdGFyZ2V0UmVjdC54KCkgLSBtX2Jhc2VSZWN0LngoKSkgKiBtdWx0aXBs
aWVyKTsKKyAgICByZWN0LnNldFkobV9iYXNlUmVjdC55KCkgKyAobV90YXJnZXRSZWN0LnkoKSAt
IG1fYmFzZVJlY3QueSgpKSAqIG11bHRpcGxpZXIpOworICAgIHJlY3Quc2V0V2lkdGgobV9iYXNl
UmVjdC53aWR0aCgpICsgKG1fdGFyZ2V0UmVjdC53aWR0aCgpIC0gbV9iYXNlUmVjdC53aWR0aCgp
KSAqIG11bHRpcGxpZXIpOworICAgIHJlY3Quc2V0SGVpZ2h0KG1fYmFzZVJlY3QuaGVpZ2h0KCkg
KyAobV90YXJnZXRSZWN0LmhlaWdodCgpIC0gbV9iYXNlUmVjdC5oZWlnaHQoKSkgKiBtdWx0aXBs
aWVyKTsKKworICAgIG1fY2xpZW50LT5zZXRUcmFuc2l0aW9uUmVjdChyZWN0KTsKKworICAgIGlm
IChtX3NjYWxlSW5kZXggPiBtX3NjYWxlRHVyYXRpb24pIHsKKyAgICAgICAgbV9hbmltYXRvciA9
IDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KwogUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbDo6UGFnZVZpZXdwb3J0Q29udHJvbGxl
ckNsaWVudEVmbChFd2tWaWV3KiB2aWV3KQogICAgIDogbV92aWV3KHZpZXcpCiAgICAgLCBtX2Nv
bnRyb2xsZXIoMCkKKyAgICAsIG1fdHJhbnNpdGlvbihUcmFuc2l0aW9uOjpjcmVhdGUodGhpcykp
CiB7CiAgICAgQVNTRVJUKG1fdmlldyk7CiB9CiAKK1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGll
bnRFZmw6On5QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsKCkKK3sKK30KKwogdm9pZCBQ
YWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsOjpkaWRDaGFuZ2VDb250ZW50c1NpemUoY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYpCiB7CiAgICAgbV92aWV3LT5zY2hlZHVsZVVwZGF0ZURpc3Bs
YXkoKTsKQEAgLTgwLDUgKzE2Myw0NSBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGll
bnRFZmw6OnNldENvbnRyb2xsZXIoUGFnZVZpZXdwb3J0Q29udHJvbGxlciogY29udAogICAgIG1f
Y29udHJvbGxlciA9IGNvbnRyb2xsZXI7CiB9CiAKK3ZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxl
ckNsaWVudEVmbDo6c2NhbGVUb0FyZWFXaXRoQW5pbWF0aW9uKGNvbnN0IEludFBvaW50JiB0YXJn
ZXQsIGNvbnN0IEZsb2F0UmVjdCYgYXJlYSkKK3sKKyAgICBBU1NFUlQobV9jb250cm9sbGVyKTsK
KyAgICBpZiAoIW1fY29udHJvbGxlci0+YWxsb3dzVXNlclNjYWxpbmcoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKGFyZWEuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBG
bG9hdFJlY3QgdGFyZ2V0UmVjdCA9IGFyZWE7CisgICAgdGFyZ2V0UmVjdC5pbmZsYXRlWChzX3Nj
YWxlTWFyZ2luKTsKKyAgICBXS1NpemUgdmlld3BvcnRTaXplID0gV0tWaWV3R2V0U2l6ZShtX3Zp
ZXctPndrVmlldygpKTsKKworICAgIGZsb2F0IHRhcmdldFNjYWxlOworICAgIGlmIChzdGQ6OmFi
cyhtX2NvbnRyb2xsZXItPm1pbmltdW1TY2FsZSgpIC0gbV9jb250cm9sbGVyLT5jdXJyZW50U2Nh
bGUoKSkgPCAwLjAwMDEpCisgICAgICAgIHRhcmdldFNjYWxlID0gbV9jb250cm9sbGVyLT5pbm5l
ckJvdW5kZWRWaWV3cG9ydFNjYWxlKHZpZXdwb3J0U2l6ZS53aWR0aCAvIHRhcmdldFJlY3Qud2lk
dGgoKSk7CisgICAgZWxzZQorICAgICAgICB0YXJnZXRTY2FsZSA9IG1fY29udHJvbGxlci0+bWlu
aW11bVNjYWxlKCk7CisKKyAgICBGbG9hdFJlY3QgbmV3Q29udGVudHNSZWN0KHRhcmdldFJlY3Qu
Y2VudGVyKCksIEZsb2F0U2l6ZSh2aWV3cG9ydFNpemUud2lkdGggLyB0YXJnZXRTY2FsZSwgdmll
d3BvcnRTaXplLmhlaWdodCAvIHRhcmdldFNjYWxlKSk7CisgICAgaWYgKHRhcmdldFJlY3QuaGVp
Z2h0KCkgPiBuZXdDb250ZW50c1JlY3QuaGVpZ2h0KCkpCisgICAgICAgIG5ld0NvbnRlbnRzUmVj
dC5zZXRZKHRhcmdldC55KCkpOworICAgIG5ld0NvbnRlbnRzUmVjdC5tb3ZlKC1uZXdDb250ZW50
c1JlY3Qud2lkdGgoKSAvIDIsIC1uZXdDb250ZW50c1JlY3QuaGVpZ2h0KCkgLyAyKTsKKyAgICBu
ZXdDb250ZW50c1JlY3Quc2V0TG9jYXRpb24obV9jb250cm9sbGVyLT5ib3VuZENvbnRlbnRzUG9z
aXRpb25BdFNjYWxlKG5ld0NvbnRlbnRzUmVjdC5sb2NhdGlvbigpLCB0YXJnZXRTY2FsZSkpOwor
CisgICAgV0tQb2ludCBjb250ZW50c1Bvc2l0aW9uID0gV0tWaWV3R2V0Q29udGVudFBvc2l0aW9u
KG1fdmlldy0+d2tWaWV3KCkpOworICAgIGZsb2F0IGNvbnRlbnRTY2FsZSA9IFdLVmlld0dldENv
bnRlbnRTY2FsZUZhY3RvcihtX3ZpZXctPndrVmlldygpKTsKKyAgICBGbG9hdFJlY3QgY3VycmVu
dENvbnRlbnRzUmVjdCA9IEZsb2F0UmVjdChjb250ZW50c1Bvc2l0aW9uLngsIGNvbnRlbnRzUG9z
aXRpb24ueSwgdmlld3BvcnRTaXplLndpZHRoLCB2aWV3cG9ydFNpemUuaGVpZ2h0KTsKKyAgICBj
dXJyZW50Q29udGVudHNSZWN0LnNjYWxlKDEgLyBjb250ZW50U2NhbGUpOworICAgIG1fdHJhbnNp
dGlvbi0+c2V0UmVjdHMoY3VycmVudENvbnRlbnRzUmVjdCwgbmV3Q29udGVudHNSZWN0KTsKKyAg
ICBtX3RyYW5zaXRpb24tPnN0YXJ0KHNfc2NhbGVEdXJhdGlvbik7Cit9CisKK3ZvaWQgUGFnZVZp
ZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbDo6c2V0VHJhbnNpdGlvblJlY3QoY29uc3QgRmxvYXRS
ZWN0JiBjb250ZW50c1JlY3QpCit7CisgICAgV0tTaXplIHNpemUgPSBXS1ZpZXdHZXRTaXplKG1f
dmlldy0+d2tWaWV3KCkpOworICAgIHNldFBhZ2VTY2FsZUZhY3RvcihzaXplLndpZHRoIC8gY29u
dGVudHNSZWN0LndpZHRoKCkpOworICAgIHNldFZpZXdwb3J0UG9zaXRpb24oY29udGVudHNSZWN0
LmxvY2F0aW9uKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKICNlbmRpZiAvLyBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oCmluZGV4
IGU0MDQ1YjZlMWEyMDZkY2I4MjBhNTY2MDAzYmZjMTMyYjg3NzQwMTguLmZmNjc1NzVlMDM3OWVh
ZjViZmNjNjdjZWM5NmU2OWQ2ZDc5OGFjZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5o
CkBAIC0xLDYgKzEsNyBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0
cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEz
IFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDIwICsyOSwzMCBAQAog
I2RlZmluZSBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsX2gKIAogI2luY2x1ZGUgIlBh
Z2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnQuaCIKKyNpbmNsdWRlIDxFY29yZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+
CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogY2xhc3MgRXdrVmlldzsKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLWNsYXNzIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwgOiBw
dWJsaWMgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudCB7CitjbGFzcyBUcmFuc2l0aW9uOwor
CitjbGFzcyBUcmFuc2l0aW9uQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5UcmFuc2l0
aW9uQ2xpZW50KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldFRyYW5zaXRpb25SZWN0KGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYpIHsgfQorfTsKKworY2xhc3MgUGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudEVmbCA6IHB1YmxpYyBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50LCBwdWJs
aWMgVHJhbnNpdGlvbkNsaWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8UGFn
ZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbD4gY3JlYXRlKEV3a1ZpZXcqIHZpZXdJbXBsKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdlVmlld3BvcnRDb250cm9sbGVy
Q2xpZW50RWZsKHZpZXdJbXBsKSk7CiAgICAgfQotICAgIHZpcnR1YWwgflBhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRFZmwoKSB7IH0KKyAgICB2aXJ0dWFsIH5QYWdlVmlld3BvcnRDb250cm9s
bGVyQ2xpZW50RWZsKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlld3BvcnRQb3NpdGlvbihj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNl
dFBhZ2VTY2FsZUZhY3RvcihmbG9hdCkgT1ZFUlJJREU7CkBAIC01MiwxMiArNjMsMjEgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIoUGFnZVZpZXdwb3J0Q29udHJv
bGxlciopIE9WRVJSSURFOwogCisgICAgdm9pZCBzY2FsZVRvQXJlYVdpdGhBbmltYXRpb24oY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKKworICAg
IC8vIFRyYW5zaXRpb25DbGllbnQuCisgICAgdm9pZCBzZXRUcmFuc2l0aW9uUmVjdChjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBQYWdlVmlld3Bv
cnRDb250cm9sbGVyQ2xpZW50RWZsKEV3a1ZpZXcqKTsKIAorICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBzX3NjYWxlRHVyYXRpb24gPSAyMDsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19z
Y2FsZU1hcmdpbiA9IDU7CisKICAgICBFd2tWaWV3KiBtX3ZpZXc7CiAgICAgV2ViQ29yZTo6Rmxv
YXRQb2ludCBtX2NvbnRlbnRQb3NpdGlvbjsKICAgICBQYWdlVmlld3BvcnRDb250cm9sbGVyKiBt
X2NvbnRyb2xsZXI7CisgICAgT3duUHRyPFRyYW5zaXRpb24+IG1fdHJhbnNpdGlvbjsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222411</attachid>
            <date>2014-01-27 23:53:17 -0800</date>
            <delta_ts>2015-02-03 07:31:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107631-20140128165318.patch</filename>
            <type>text/plain</type>
            <size>11187</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyODE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWZkMzRhNzBiNGM1YmIy
MDVhMzE1Y2E0ZTAwMmE1YWIwYTgzODNjZi4uMjlmNmZlYzQ2ZDAyMzdkN2JkMWQ4NDViNDUwNDBh
ZGUzMDg4YjM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTAxLTI3ICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFNj
YWxlIHRvIGZvY3VzZWQgYXJlYSB3aGVuIGRvdWJsZSB0YXAgZ2VzdHVyZSBpcyByZWNvZ25pemVk
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NjMx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2NhbGUg
cGFnZSB3aXRoIGFuaW1hdGlvbiB3aGVuIGRvdWJsZSB0YXAgZ2VzdHVyZSBpcyByZWNvZ25pemVk
LgorICAgICAgICBTY2FsZSBpbiB0byB0aGUgem9vbWFibGUgYXJlYSB3aGVuIGN1cnJlbnQgc2Nh
bGUgZmFjdG9yIGlzIHNhbWUgYXMKKyAgICAgICAgbWluaW11bSBzY2FsZSBmYWN0b3IgYW5kIHNj
YWxlIG91dCB0byB0aGUgbWluaW11bSBzY2FsZSBmYWN0b3IKKyAgICAgICAgb3RoZXJ3aXNlLiBU
aGUgb2xkIFF0IHBvcnQncyBjb2RlcyBhcmUgcmVmZXJlbmNlZC4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwOgorICAgICAgICAoVHJhbnNpdGlvbjo6VHJhbnNpdGlv
bik6IENsYXNzIGZvciBwcm9jZXNzaW5nIHRyYW5zaXRpb24gd2l0aCBhbmltYXRpb24uCisgICAg
ICAgIChUcmFuc2l0aW9uOjp+VHJhbnNpdGlvbik6CisgICAgICAgIChUcmFuc2l0aW9uOjpydW4p
OgorICAgICAgICAoVHJhbnNpdGlvbjo6YW5pbWF0b3JDYWxsYmFjayk6CisgICAgICAgIChFd2tW
aWV3OjpFd2tWaWV3KToKKyAgICAgICAgKEV3a1ZpZXc6OmRpZEZpbmRab29tYWJsZUFyZWEpOgor
ICAgICAgICAoRXdrVmlldzo6c2NhbGVUb0FyZWFXaXRoQW5pbWF0aW9uKToKKyAgICAgICAgKEV3
a1ZpZXc6OnNjYWxlVG8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9HZXN0dXJlUmVjb2duaXplci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Okdlc3R1cmVIYW5kbGVyOjpoYW5kbGVEb3VibGVUYXApOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaDog
RXhwb3NlIGJlbG93IGZ1bmN0aW9ucyB0byB1c2UgaW4gdGhlIEV3a1ZpZXcuCisgICAgICAgIGFw
cGx5U2NhbGVBZnRlclJlbmRlcmluZ0NvbnRlbnRzKCkgYW5kIGFwcGx5UG9zaXRpb25BZnRlclJl
bmRlcmluZ0NvbnRlbnRzKCkuCisKIDIwMTQtMDEtMjUgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIHN1cHBvcnQgZm9yIERSQUdHQUJMRV9SRUdJ
T04KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKaW5kZXgg
MGQ5NWEyNmFhNzA0ZmQwZmExNDNmYTQ3NDIzZWQzYWMxZjliYWI5OS4uMGRkZGY1Y2VkNzk1ZjI1
NTdlMTg5YjcwZjVmOTllZTgxNTAxZjZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvRXdrVmlldy5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICAgQ29weXJpZ2h0IChD
KSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MKICAgIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBD
b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgIENvcHlyaWdodCAoQykgMjAxNCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKIAogICAgIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwpAQCAtMjIsNiArMjMsNyBAQAogI2luY2x1ZGUgIkV3a1ZpZXcuaCIKIAogI2luY2x1
ZGUgIkNvbnRleHRNZW51Q2xpZW50RWZsLmgiCisjaW5jbHVkZSAiRWFzaW5nQ3VydmVzLmgiCiAj
aW5jbHVkZSAiRWZsU2NyZWVuVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiRmluZENsaWVudEVmbC5o
IgogI2luY2x1ZGUgIkZvcm1DbGllbnRFZmwuaCIKQEAgLTI1Nyw2ICsyNTksNzIgQEAgc3RhdGlj
IGlubGluZSBXS1BhZ2VUb0V2YXNPYmplY3RNYXAmIHdrUGFnZVRvRXZhc09iamVjdE1hcCgpCiAg
ICAgcmV0dXJuIG1hcDsKIH0KIAorLy8gVHJhbnNpdGlvbiBpbXBsZW1lbnRhdGlvbi4KKworY2xh
c3MgVHJhbnNpdGlvbiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVHJhbnNpdGlvbihFd2tWaWV3
Kik7CisgICAgflRyYW5zaXRpb24oKTsKKworICAgIHZvaWQgcnVuKGNvbnN0IEZsb2F0UmVjdCYg
YmFzZVJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCk7CisKK3ByaXZhdGU6CisgICAg
c3RhdGljIEVpbmFfQm9vbCBhbmltYXRvckNhbGxiYWNrKHZvaWQqKTsKKworICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBzX2R1cmF0aW9uID0gMjA7CisKKyAgICBFd2tWaWV3KiBtX3ZpZXc7Cisg
ICAgRWNvcmVfQW5pbWF0b3IqIG1fYW5pbWF0b3I7CisgICAgRmxvYXRSZWN0IG1fdGFyZ2V0UmVj
dDsKKyAgICBGbG9hdFJlY3QgbV9iYXNlUmVjdDsKKyAgICB1bnNpZ25lZCBtX3NjYWxlSW5kZXg7
Cit9OworCitUcmFuc2l0aW9uOjpUcmFuc2l0aW9uKEV3a1ZpZXcqIHZpZXcpCisgICAgOiBtX3Zp
ZXcodmlldykKKyAgICAsIG1fYW5pbWF0b3IobnVsbHB0cikKKyAgICAsIG1fc2NhbGVJbmRleCgw
KQoreworfQorCitUcmFuc2l0aW9uOjp+VHJhbnNpdGlvbigpCit7CisgICAgaWYgKG1fYW5pbWF0
b3IpCisgICAgICAgIGVjb3JlX2FuaW1hdG9yX2RlbChtX2FuaW1hdG9yKTsKK30KKwordm9pZCBU
cmFuc2l0aW9uOjpydW4oY29uc3QgRmxvYXRSZWN0JiBiYXNlUmVjdCwgY29uc3QgRmxvYXRSZWN0
JiB0YXJnZXRSZWN0KQoreworICAgIGlmIChtX2FuaW1hdG9yKQorICAgICAgICBlY29yZV9hbmlt
YXRvcl9kZWwobV9hbmltYXRvcik7CisgICAgbV9hbmltYXRvciA9IGVjb3JlX2FuaW1hdG9yX2Fk
ZChhbmltYXRvckNhbGxiYWNrLCB0aGlzKTsKKyAgICBtX2Jhc2VSZWN0ID0gYmFzZVJlY3Q7Cisg
ICAgbV90YXJnZXRSZWN0ID0gdGFyZ2V0UmVjdDsKKyAgICBtX3NjYWxlSW5kZXggPSAxOworfQor
CitFaW5hX0Jvb2wgVHJhbnNpdGlvbjo6YW5pbWF0b3JDYWxsYmFjayh2b2lkKiBkYXRhKQorewor
ICAgIFRyYW5zaXRpb24qIHRyYW5zaXRpb24gPSBzdGF0aWNfY2FzdDxUcmFuc2l0aW9uKj4oZGF0
YSk7CisgICAgRmxvYXRSZWN0IGJhc2VSZWN0ID0gdHJhbnNpdGlvbi0+bV9iYXNlUmVjdDsKKyAg
ICBGbG9hdFJlY3QgdGFyZ2V0UmVjdCA9IHRyYW5zaXRpb24tPm1fdGFyZ2V0UmVjdDsKKyAgICBm
bG9hdCBtdWx0aXBsaWVyID0gZWFzZUluT3V0UXVhZCh0cmFuc2l0aW9uLT5tX3NjYWxlSW5kZXgr
KywgMCwgMSwgdHJhbnNpdGlvbi0+c19kdXJhdGlvbik7CisKKyAgICBGbG9hdFJlY3QgcmVjdChi
YXNlUmVjdC54KCkgKyAodGFyZ2V0UmVjdC54KCkgLSBiYXNlUmVjdC54KCkpICogbXVsdGlwbGll
ciwKKyAgICAgICAgYmFzZVJlY3QueSgpICsgKHRhcmdldFJlY3QueSgpIC0gYmFzZVJlY3QueSgp
KSAqIG11bHRpcGxpZXIsCisgICAgICAgIGJhc2VSZWN0LndpZHRoKCkgKyAodGFyZ2V0UmVjdC53
aWR0aCgpIC0gYmFzZVJlY3Qud2lkdGgoKSkgKiBtdWx0aXBsaWVyLAorICAgICAgICBiYXNlUmVj
dC5oZWlnaHQoKSArICh0YXJnZXRSZWN0LmhlaWdodCgpIC0gYmFzZVJlY3QuaGVpZ2h0KCkpICog
bXVsdGlwbGllcik7CisgICAgV0tTaXplIHNpemUgPSBXS1ZpZXdHZXRTaXplKHRyYW5zaXRpb24t
Pm1fdmlldy0+d2tWaWV3KCkpOworICAgIHRyYW5zaXRpb24tPm1fdmlldy0+c2NhbGVUbyhzaXpl
LndpZHRoIC8gdHJhbnNpdGlvbi0+bV92aWV3LT5kZXZpY2VTY2FsZUZhY3RvcigpIC8gcmVjdC53
aWR0aCgpLCByZWN0LmxvY2F0aW9uKCkpOworCisgICAgaWYgKHRyYW5zaXRpb24tPm1fc2NhbGVJ
bmRleCA+IHRyYW5zaXRpb24tPnNfZHVyYXRpb24pIHsKKyAgICAgICAgdHJhbnNpdGlvbi0+bV9h
bmltYXRvciA9IG51bGxwdHI7CisgICAgICAgIHJldHVybiBFQ09SRV9DQUxMQkFDS19DQU5DRUw7
CisgICAgfQorCisgICAgcmV0dXJuIEVDT1JFX0NBTExCQUNLX1JFTkVXOworfQorCiAvLyBFd2tW
aWV3IGltcGxlbWVudGF0aW9uLgogCiBFd2tWaWV3OjpFd2tWaWV3KFdLVmlld1JlZiB2aWV3LCBF
dmFzX09iamVjdCogZXZhc09iamVjdCkKQEAgLTI5MCw2ICszNTgsNyBAQCBFd2tWaWV3OjpFd2tW
aWV3KFdLVmlld1JlZiB2aWV3LCBFdmFzX09iamVjdCogZXZhc09iamVjdCkKICAgICAsIG1fcGFn
ZVZpZXdwb3J0Q29udHJvbGxlcihwYWdlKCksICZtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGll
bnQpCiAjZW5kaWYKICAgICAsIG1faXNBY2NlbGVyYXRlZCh0cnVlKQorICAgICwgbV90cmFuc2l0
aW9uKHN0ZDo6bWFrZV91bmlxdWU8VHJhbnNpdGlvbj4odGhpcykpCiB7CiAgICAgQVNTRVJUKG1f
ZXZhc09iamVjdCk7CiAgICAgQVNTRVJUKG1fY29udGV4dCk7CkBAIC0xNDEzLDkgKzE0ODIsMzYg
QEAgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IEV3a1ZpZXc6OnRha2VTbmFwc2hvdCgpCiAK
IHZvaWQgRXdrVmlldzo6ZGlkRmluZFpvb21hYmxlQXJlYShjb25zdCBXS1BvaW50JiBwb2ludCwg
Y29uc3QgV0tSZWN0JiBhcmVhKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgVU5VU0VE
X1BBUkFNKHBvaW50KTsKLSAgICBVTlVTRURfUEFSQU0oYXJlYSk7CisgICAgaWYgKCFhcmVhLnNp
emUud2lkdGggfHwgIWFyZWEuc2l6ZS5oZWlnaHQpCisgICAgICAgIHJldHVybjsKKworICAgIEZs
b2F0UmVjdCB0YXJnZXRSZWN0ID0gdG9JbnRSZWN0KGFyZWEpOworICAgIHRhcmdldFJlY3QuaW5m
bGF0ZVgoc19tYXJnaW5Gb3Jab29tYWJsZUFyZWEpOworICAgIHNjYWxlVG9BcmVhV2l0aEFuaW1h
dGlvbih0b0ludFBvaW50KHBvaW50KSwgdGFyZ2V0UmVjdCk7Cit9CisKK3ZvaWQgRXdrVmlldzo6
c2NhbGVUb0FyZWFXaXRoQW5pbWF0aW9uKGNvbnN0IEludFBvaW50JiB0YXJnZXQsIGNvbnN0IEZs
b2F0UmVjdCYgdGFyZ2V0UmVjdCkKK3sKKyAgICBpZiAoIW1fcGFnZVZpZXdwb3J0Q29udHJvbGxl
ci5hbGxvd3NVc2VyU2NhbGluZygpKQorICAgICAgICByZXR1cm47CisKKyAgICBJbnRTaXplIHZp
ZXdTaXplID0gc2l6ZSgpOworICAgIFdLUG9pbnQgY29udGVudHNQb3NpdGlvbiA9IFdLVmlld0dl
dENvbnRlbnRQb3NpdGlvbih3a1ZpZXcoKSk7CisgICAgZmxvYXQgY29udGVudFNjYWxlID0gV0tW
aWV3R2V0Q29udGVudFNjYWxlRmFjdG9yKHdrVmlldygpKTsKKyAgICBGbG9hdFJlY3QgY3VycmVu
dENvbnRlbnRzUmVjdChjb250ZW50c1Bvc2l0aW9uLngsIGNvbnRlbnRzUG9zaXRpb24ueSwgdmll
d1NpemUud2lkdGgoKSAvIGNvbnRlbnRTY2FsZSwgdmlld1NpemUuaGVpZ2h0KCkgLyBjb250ZW50
U2NhbGUpOworCisgICAgZmxvYXQgdGFyZ2V0U2NhbGU7CisgICAgaWYgKGZ1enp5Q29tcGFyZSht
X3BhZ2VWaWV3cG9ydENvbnRyb2xsZXIubWluaW11bVNjYWxlKCksIG1fcGFnZVZpZXdwb3J0Q29u
dHJvbGxlci5jdXJyZW50U2NhbGUoKSwgMC4wMDAxKSkKKyAgICAgICAgdGFyZ2V0U2NhbGUgPSBt
X3BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaW5uZXJCb3VuZGVkVmlld3BvcnRTY2FsZSh2aWV3U2l6
ZS53aWR0aCgpIC8gdGFyZ2V0UmVjdC53aWR0aCgpKTsKKyAgICBlbHNlCisgICAgICAgIHRhcmdl
dFNjYWxlID0gbV9wYWdlVmlld3BvcnRDb250cm9sbGVyLm1pbmltdW1TY2FsZSgpOworICAgIEZs
b2F0UmVjdCBuZXdDb250ZW50c1JlY3QodGFyZ2V0UmVjdC5jZW50ZXIoKSwgRmxvYXRTaXplKHZp
ZXdTaXplLndpZHRoKCkgLyB0YXJnZXRTY2FsZSwgdmlld1NpemUuaGVpZ2h0KCkgLyB0YXJnZXRT
Y2FsZSkpOworICAgIGlmICh0YXJnZXRSZWN0LmhlaWdodCgpID4gbmV3Q29udGVudHNSZWN0Lmhl
aWdodCgpKQorICAgICAgICBuZXdDb250ZW50c1JlY3Quc2V0WSh0YXJnZXQueSgpKTsKKyAgICBu
ZXdDb250ZW50c1JlY3QubW92ZSgtbmV3Q29udGVudHNSZWN0LndpZHRoKCkgLyAyLCAtbmV3Q29u
dGVudHNSZWN0LmhlaWdodCgpIC8gMik7CisgICAgbmV3Q29udGVudHNSZWN0LnNldExvY2F0aW9u
KG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlci5ib3VuZENvbnRlbnRzUG9zaXRpb25BdFNjYWxlKG5l
d0NvbnRlbnRzUmVjdC5sb2NhdGlvbigpLCB0YXJnZXRTY2FsZSkpOworCisgICAgbV90cmFuc2l0
aW9uLT5ydW4oY3VycmVudENvbnRlbnRzUmVjdCwgbmV3Q29udGVudHNSZWN0KTsKIH0KIAogYm9v
bCBFd2tWaWV3OjpzY3JvbGxCeShjb25zdCBJbnRTaXplJiBvZmZzZXQpCkBAIC0xNDM4LDUgKzE1
MzQsMTMgQEAgYm9vbCBFd2tWaWV3OjpzY3JvbGxCeShjb25zdCBJbnRTaXplJiBvZmZzZXQpCiAg
ICAgcmV0dXJuICEob2xkUG9zaXRpb24gPT0gcG9zaXRpb24pOwogfQogCit2b2lkIEV3a1ZpZXc6
OnNjYWxlVG8oZmxvYXQgbmV3U2NhbGUsIGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Bvc2l0aW9uKQor
eworICAgIFdLVmlld1NldENvbnRlbnRQb3NpdGlvbih3a1ZpZXcoKSwgV0tQb2ludE1ha2UobmV3
UG9zaXRpb24ueCgpLCBuZXdQb3NpdGlvbi55KCkpKTsKKyAgICBXS1ZpZXdTZXRDb250ZW50U2Nh
bGVGYWN0b3Iod2tWaWV3KCksIG5ld1NjYWxlKTsKKyAgICBtX3BhZ2VWaWV3cG9ydENvbnRyb2xs
ZXIuYXBwbHlQb3NpdGlvbkFmdGVyUmVuZGVyaW5nQ29udGVudHMobmV3UG9zaXRpb24pOworICAg
IG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlci5hcHBseVNjYWxlQWZ0ZXJSZW5kZXJpbmdDb250ZW50
cyhuZXdTY2FsZSk7Cit9CisKIEV2YXNfU21hcnRfQ2xhc3MgRXdrVmlldzo6cGFyZW50U21hcnRD
bGFzcyA9IEVWQVNfU01BUlRfQ0xBU1NfSU5JVF9OVUxMOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKaW5kZXggYzUzY2NiYjBiZjJmMzYyYWJjZTJhMTVlNzA5
OWJiMGYzYmRjNGRjYS4uODEyMjliOTI4ODQwYmVjODcwYTk4MWQ5M2YxYjMxNGFmNDllNDE3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaApAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgICBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcwogICAg
Q29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICAgQ29weXJpZ2h0IChDKSAyMDE0IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQogCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMDAsNiArMTAxLDggQEAgdHlw
ZWRlZiBzdHJ1Y3QgX0V2YXNfR0xfU3VyZmFjZSBFdmFzX0dMX1N1cmZhY2U7CiB0eXBlZGVmIHN0
cnVjdCBFd2tfVmlld19TbWFydF9EYXRhIEV3a19WaWV3X1NtYXJ0X0RhdGE7CiB0eXBlZGVmIHN0
cnVjdCBFd2tfVmlld19TbWFydF9DbGFzcyBFd2tfVmlld19TbWFydF9DbGFzczsKIAorY2xhc3Mg
VHJhbnNpdGlvbjsKKwogY2xhc3MgRXdrVmlldyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIEV3a1Zp
ZXcqIGNyZWF0ZShXS1ZpZXdSZWYsIEV2YXMqIGNhbnZhcywgRXZhc19TbWFydCogc21hcnQgPSAw
KTsKQEAgLTIwMyw2ICsyMDYsNyBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPGNhaXJvX3N1
cmZhY2VfdD4gdGFrZVNuYXBzaG90KCk7CiAgICAgYm9vbCBzY3JvbGxCeShjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJik7CisgICAgdm9pZCBzY2FsZVRvKGZsb2F0LCBjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50Jik7CiAKICAgICB2b2lkIGRpZEZpbmRab29tYWJsZUFyZWEoY29uc3QgV0tQb2ludCYs
IGNvbnN0IFdLUmVjdCYpOwogCkBAIC0yMTksNiArMjIzLDcgQEAgcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpJbnRTaXplIGRldmljZVNpemUoKSBjb25zdDsKIAogICAgIHZvaWQgZGlzcGxheVRpbWVy
RmlyZWQoV2ViQ29yZTo6VGltZXI8RXdrVmlldz4qKTsKKyAgICB2b2lkIHNjYWxlVG9BcmVhV2l0
aEFuaW1hdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYpOwogCiAgICAgLy8gRXZhc19TbWFydF9DbGFzcyBjYWxsYmFjayBpbnRlcmZhY2U6CiAg
ICAgc3RhdGljIHZvaWQgaGFuZGxlRXZhc09iamVjdEFkZChFdmFzX09iamVjdCopOwpAQCAtMzAx
LDYgKzMwNiw5IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBib29sIG1faXNBY2NlbGVyYXRlZDsK
IAorICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX21hcmdpbkZvclpvb21hYmxlQXJlYSA9IDU7
CisgICAgc3RkOjp1bmlxdWVfcHRyPFRyYW5zaXRpb24+IG1fdHJhbnNpdGlvbjsKKwogICAgIHN0
YXRpYyBFdmFzX1NtYXJ0X0NsYXNzIHBhcmVudFNtYXJ0Q2xhc3M7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9HZXN0dXJlUmVjb2duaXplci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9HZXN0dXJlUmVjb2duaXplci5jcHAK
aW5kZXggZjRhOTFiNDMzNTAzYmY1OGQyNWM3YThjYzBjOWZjNWI2NWZiYzllNS4uMDgxNGYyZTU5
YzFlZGY1YzY0MjFlOWNhMWU5MTE5OTc1MjdiMzM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvR2VzdHVyZVJlY29nbml6ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0dlc3R1cmVSZWNvZ25pemVyLmNwcApAQCAtMTYzLDkg
KzE2MywxMCBAQCB2b2lkIEdlc3R1cmVIYW5kbGVyOjpoYW5kbGVTaW5nbGVUYXAoY29uc3QgSW50
UG9pbnQmIHBvc2l0aW9uKQogICAgIFdLVmlld1NlbmRNb3VzZVVwRXZlbnQobV9ld2tWaWV3LT53
a1ZpZXcoKSwgJm1vdXNlVXApOwogfQogCi12b2lkIEdlc3R1cmVIYW5kbGVyOjpoYW5kbGVEb3Vi
bGVUYXAoY29uc3QgSW50UG9pbnQmKQordm9pZCBHZXN0dXJlSGFuZGxlcjo6aGFuZGxlRG91Ymxl
VGFwKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIC8vIEZJWE1FOiBXZSBoYXZlIHRvIHNldCBtZWFuaW5nZnVsIHNpemUgb2YgdG91Y2ggaW5z
dGVhZCBvZiAiMSwgMSIuCisgICAgV0tWaWV3RmluZFpvb21hYmxlQXJlYUZvclJlY3QobV9ld2tW
aWV3LT53a1ZpZXcoKSwgV0tSZWN0TWFrZShwb3NpdGlvbi54KCksIHBvc2l0aW9uLnkoKSwgMSwg
MSkpOwogfQogCiB2b2lkIEdlc3R1cmVIYW5kbGVyOjpoYW5kbGVUYXBBbmRIb2xkKGNvbnN0IElu
dFBvaW50JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaAppbmRleCBi
ODk3M2FiYmQ4OWUyZWE0ZjRmYmYzZWY5ZTM0ZTYxZjdlOGRjNGVkLi5lMzQ3MzdjY2ZjMjVlNDg2
ZTAyOTc5MTcyMDIzNmJmNzczZjRlYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvUGFnZVZpZXdwb3J0
Q29udHJvbGxlci5oCkBAIC02OCw2ICs2OCw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0SGFk
VXNlckludGVyYWN0aW9uKGJvb2wgZGlkVXNlckludGVyYWN0KSB7IG1faGFkVXNlckludGVyYWN0
aW9uID0gZGlkVXNlckludGVyYWN0OyB9CiAKKyAgICB2b2lkIGFwcGx5U2NhbGVBZnRlclJlbmRl
cmluZ0NvbnRlbnRzKGZsb2F0IHNjYWxlKTsKKyAgICB2b2lkIGFwcGx5UG9zaXRpb25BZnRlclJl
bmRlcmluZ0NvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBvcyk7CisKICAgICAv
LyBOb3RpZmljYXRpb25zIGZyb20gdGhlIHZpZXdwb3J0LgogICAgIHZvaWQgZGlkQ2hhbmdlVmll
d3BvcnRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbmV3U2l6ZSk7CiAgICAgdm9pZCBk
aWRDaGFuZ2VDb250ZW50c1Zpc2liaWxpdHkoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGZs
b2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yID0g
V2ViQ29yZTo6RmxvYXRQb2ludDo6emVybygpKTsKQEAgLTgyLDggKzg1LDYgQEAgcHVibGljOgog
CiBwcml2YXRlOgogICAgIHZvaWQgc3luY1Zpc2libGVDb250ZW50cyhjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50ICZ0cmFqZWN0b3J5VmVjdG9yID0gV2ViQ29yZTo6RmxvYXRQb2ludDo6emVybygp
KTsKLSAgICB2b2lkIGFwcGx5U2NhbGVBZnRlclJlbmRlcmluZ0NvbnRlbnRzKGZsb2F0IHNjYWxl
KTsKLSAgICB2b2lkIGFwcGx5UG9zaXRpb25BZnRlclJlbmRlcmluZ0NvbnRlbnRzKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIHBvcyk7CiAgICAgYm9vbCB1cGRhdGVNaW5pbXVtU2NhbGVUb0Zp
dChib29sIHVzZXJJbml0aWF0ZWRVcGRhdGUpOwogCiAgICAgV2ViUGFnZVByb3h5KiBjb25zdCBt
X3dlYlBhZ2VQcm94eTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>