<?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>91468</bug_id>
          
          <creation_ts>2012-07-16 22:04:49 -0700</creation_ts>
          <short_desc>[EFL][WK2] Add ewk_view_group.</short_desc>
          <delta_ts>2012-07-17 22:11:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>61838</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eunmi Lee">enmi.lee</reporter>
          <assigned_to name="Eunmi Lee">enmi.lee</assigned_to>
          <cc>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>sw0524.lee</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>670973</commentid>
    <comment_count>0</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-16 22:04:49 -0700</bug_when>
    <thetext>I&apos;m going to add ewk_page_group which wraps the WKPageGroup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670981</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-16 22:13:49 -0700</bug_when>
    <thetext>I don&apos;t think this naming is a good idea since we don&apos;t have the concept of &quot;page&quot; in Ewk APIs. Maybe it should be a view group ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670983</commentid>
    <comment_count>2</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-16 22:17:18 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; I don&apos;t think this naming is a good idea since we don&apos;t have the concept of &quot;page&quot; in Ewk APIs. Maybe it should be a view group ?

Yes, you have a point. :)
So, I will change the name to ewk_view_group.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671220</commentid>
    <comment_count>3</comment_count>
      <attachid>152750</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-17 06:10:46 -0700</bug_when>
    <thetext>Created attachment 152750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671255</commentid>
    <comment_count>4</comment_count>
      <attachid>152756</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-17 07:11:36 -0700</bug_when>
    <thetext>Created attachment 152756
Rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671278</commentid>
    <comment_count>5</comment_count>
      <attachid>152756</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-07-17 07:56:47 -0700</bug_when>
    <thetext>Comment on attachment 152756
Rebased.

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

Almost looks good to me.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:562
&gt; +Evas_Object* ewk_view_add_with_context_and_group(Evas* canvas, Ewk_Context* context, Ewk_View_Group* group)
&gt; +{
&gt; +    return ewk_view_base_add(canvas, context, group);
&gt; +}

What is different between ewk_view_add_with_context_and_group and ewk_view_base_add?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671284</commentid>
    <comment_count>6</comment_count>
      <attachid>152756</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-17 08:06:54 -0700</bug_when>
    <thetext>Comment on attachment 152756
Rebased.

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

I&apos;m not a big fan of page groups myself. I think it makes the API more complex and I&apos;m not sure they will be used. If it were me, I would just have each view in its own page group internally and I would not expose page groups in the Ewk API.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context_private.h:24
&gt; +#include &lt;WebKit2/WKContext.h&gt;

I don&apos;t believe this header is needed. WKBase.h should be enough to define WKContextRef.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:509
&gt; +    ewk_view_loader_client_attach(toAPI(priv-&gt;pageClient-&gt;page()), smartData-&gt;self);

We call toAPI(priv-&gt;pageClient-&gt;page()) a lot of times, maybe it&apos;s worth storing in a variable.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:527
&gt; +    return ewk_view_base_add(canvas, ewk_context_new_with_WKContext(contextRef), ewk_view_group_new_with_WKPageGroup(pageGroupRef));

Oops, memory leak. Should be:
Ewk_View_Group* group = ewk_view_group_new_with_WKPageGroup(pageGroupRef); // group ref count is 1
Evas_Object* view = ewk_view_base_add(canvas, ewk_context_new_with_WKContext(contextRef), group); // group ref count is 2
ewk_view_group_unref(group); // group ref count is 1 again since only the view is keeping a reference to it
return view;

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:217
&gt; + *        is NULL, the default group will be assigned.

@c NULL. Also do we really want to allow passing NULL for the group? There is ewk_view_add_with_context() for that.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view_group.h:49
&gt; + * When the reference count it&apos;s reached 0, the Ewk_View_Group is freed.

&quot;When the reference count it&apos;s reached 0&quot; -&gt; &quot;When the reference count reaches 0&quot;. I have a patch pending to fix the typo in other files.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view_group.h:60
&gt; + *        is set to NULL, the unique string will be set internally.

&quot;If the identifier is @c NULL, a unique identifier will be generated and used internally.&quot;

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view_group_private.h:24
&gt; +#include &lt;WebKit2/WKPageGroup.h&gt;

Not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671328</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-07-17 09:47:44 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; I don&apos;t think this naming is a good idea since we don&apos;t have the concept of &quot;page&quot; in Ewk APIs. Maybe it should be a view group ?

Let&apos;s put it another way. What is the point of this API? The view metaphor is quite bad and page groups anyways only works within the same process. So what is the use-case of adding this API in the first place as a public api?

To share settings across pages/documents? or to share visited links? dom storage previleages? 

I think it makes sense to sort out the use-cases first, instead of just going ahead and wrap any API available as it might just bite us later. Do we really have a use-case for it and is this the best way to achieve it? especially given that it wont work when WebKit2 at some point supports multiple web processes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671446</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-17 11:42:23 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #1)
&gt; &gt; I don&apos;t think this naming is a good idea since we don&apos;t have the concept of &quot;page&quot; in Ewk APIs. Maybe it should be a view group ?
&gt; 
&gt; Let&apos;s put it another way. What is the point of this API? The view metaphor is quite bad and page groups anyways only works within the same process. So what is the use-case of adding this API in the first place as a public api?
&gt; 
&gt; To share settings across pages/documents? or to share visited links? dom storage previleages? 
&gt; 
&gt; I think it makes sense to sort out the use-cases first, instead of just going ahead and wrap any API available as it might just bite us later. Do we really have a use-case for it and is this the best way to achieve it? especially given that it wont work when WebKit2 at some point supports multiple web processes.

As I mentioned earlier, I frankly don&apos;t think we have a need for page groups.

The issue started with ewk_settings: the settings applied to all the views because all of our views belonged to the same group. I think this can be easily addressed by creating each view in its own group (like Qt port is doing).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671911</commentid>
    <comment_count>9</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-17 19:57:26 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; I don&apos;t think this naming is a good idea since we don&apos;t have the concept of &quot;page&quot; in Ewk APIs. Maybe it should be a view group ?
&gt; &gt; 
&gt; &gt; Let&apos;s put it another way. What is the point of this API? The view metaphor is quite bad and page groups anyways only works within the same process. So what is the use-case of adding this API in the first place as a public api?
&gt; &gt; 
&gt; &gt; To share settings across pages/documents? or to share visited links? dom storage previleages? 
&gt; &gt; 
&gt; &gt; I think it makes sense to sort out the use-cases first, instead of just going ahead and wrap any API available as it might just bite us later. Do we really have a use-case for it and is this the best way to achieve it? especially given that it wont work when WebKit2 at some point supports multiple web processes.
&gt; 
&gt; As I mentioned earlier, I frankly don&apos;t think we have a need for page groups.
&gt; 
&gt; The issue started with ewk_settings: the settings applied to all the views because all of our views belonged to the same group. I think this can be easily addressed by creating each view in its own group (like Qt port is doing).

Dear Kenneth and Christophe,

I decided to add ewk_view_group because of settings.
As you know, the WKPreference sets the preference for all views in the same group.
If I get the ewk_settings from ewk_view and set the preference to that, the preference of all views in the same group will be changed.
It makes the ewk_settings users confused.
So, I thought that can be solved if we add group and settings for group explicitly.

I have to collect my thoughts on this matter.
1. reason to add ewk_view_group.
   - to solve the confusion from ewk_settings.
   - there is no other reason at this point, and ewk_view_group can be added when we have other reason to use that.
2. the confusion from ewk_settings can be solved if I make each view in its own group like Qt port.

In conclusion, I will drop this patch and update Bug 91206 for ewk_settings.
and I will update Bug 90054 too without ewk_view_group.

Kenneth and Christophe,
Thank you for helping me to arrange patches. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671924</commentid>
    <comment_count>10</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-17 20:20:08 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; &gt; I don&apos;t think this naming is a good idea since we don&apos;t have the concept of &quot;page&quot; in Ewk APIs. Maybe it should be a view group ?
&gt; &gt; &gt; 
&gt; &gt; &gt; Let&apos;s put it another way. What is the point of this API? The view metaphor is quite bad and page groups anyways only works within the same process. So what is the use-case of adding this API in the first place as a public api?
&gt; &gt; &gt; 
&gt; &gt; &gt; To share settings across pages/documents? or to share visited links? dom storage previleages? 
&gt; &gt; &gt; 
&gt; &gt; &gt; I think it makes sense to sort out the use-cases first, instead of just going ahead and wrap any API available as it might just bite us later. Do we really have a use-case for it and is this the best way to achieve it? especially given that it wont work when WebKit2 at some point supports multiple web processes.
&gt; &gt; 
&gt; &gt; As I mentioned earlier, I frankly don&apos;t think we have a need for page groups.
&gt; &gt; 
&gt; &gt; The issue started with ewk_settings: the settings applied to all the views because all of our views belonged to the same group. I think this can be easily addressed by creating each view in its own group (like Qt port is doing).
&gt; 
&gt; Dear Kenneth and Christophe,
&gt; 
&gt; I decided to add ewk_view_group because of settings.
&gt; As you know, the WKPreference sets the preference for all views in the same group.
&gt; If I get the ewk_settings from ewk_view and set the preference to that, the preference of all views in the same group will be changed.
&gt; It makes the ewk_settings users confused.
&gt; So, I thought that can be solved if we add group and settings for group explicitly.
&gt; 
&gt; I have to collect my thoughts on this matter.
&gt; 1. reason to add ewk_view_group.
&gt;    - to solve the confusion from ewk_settings.
&gt;    - there is no other reason at this point, and ewk_view_group can be added when we have other reason to use that.
&gt; 2. the confusion from ewk_settings can be solved if I make each view in its own group like Qt port.
&gt; 
&gt; In conclusion, I will drop this patch and update Bug 91206 for ewk_settings.
&gt; and I will update Bug 90054 too without ewk_view_group.
&gt; 
&gt; Kenneth and Christophe,
&gt; Thank you for helping me to arrange patches. :)

and, I don&apos;t have a permission to change the state.
So, would you change the this Bug&apos;s state?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152750</attachid>
            <date>2012-07-17 06:10:46 -0700</date>
            <delta_ts>2012-07-17 07:11:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91468-20120717221045.patch</filename>
            <type>text/plain</type>
            <size>19310</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyNjkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjlmNmYxZDkxYzI3MDVj
N2Y5MmNkOTEyYmRhODliYWVhYTA1ZDk2ZC4uZmVhN2M1Y2ExYzkxN2EwYjIzMWYzMzY5NGQ5NmQ2
MWRkNmNkZjE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA3LTE3ICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFk
ZCBld2tfdmlld19ncm91cC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTkxNDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhlIG5ldyBBUEkgaXMgYWRkZWQgdG8gY3JlYXRlIGV3a192aWV3IHdpdGggc3Bl
Y2lmaWMgZXdrX3ZpZXdfZ3JvdXAuCisgICAgICAgIEFkZGl0aW9uYWxseSwgdGhlIGV3a192aWV3
X2Jhc2VfYWRkKCkgZnVuY3Rpb24gaXMgY2hhbmdlZCB0byBnZXQKKyAgICAgICAgRXdrX0NvbnRl
eHQgYW5kIEV3a19WaWV3X0dyb3VwIGFzIHBhcmFtZXRlcnMsIGFuZCBuZXcgZnVuY3Rpb24KKyAg
ICAgICAgZXdrX3ZpZXdfYWRkX3dpdGhfV0tUeXBlKCkgaXMgYWRkZWQgdG8gZ2V0IFdLQ29udGV4
dCBhbmQgV0tQYWdlR3JvdXAKKyAgICAgICAgYXMgcGFyYW1ldGVycy4KKworICAgICAgICAqIFBs
YXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmNw
cDoKKyAgICAgICAgKFdLVmlld0NyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
RVdlYktpdDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHA6
CisgICAgICAgIChld2tfY29udGV4dF9uZXdfd2l0aF9XS0NvbnRleHQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRh
KToKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGE6Ol9Fd2tfVmlld19Qcml2YXRlX0Rh
dGEpOgorICAgICAgICAoX2V3a192aWV3X3ByaXZfZGVsKToKKyAgICAgICAgKF9ld2tfdmlld19p
bml0aWFsaXplKToKKyAgICAgICAgKGV3a192aWV3X2FkZF93aXRoX1dLVHlwZSk6CisgICAgICAg
IChld2tfdmlld19iYXNlX2FkZCk6CisgICAgICAgIChld2tfdmlld19hZGRfd2l0aF9jb250ZXh0
X2FuZF9ncm91cCk6CisgICAgICAgIChld2tfdmlld19hZGRfd2l0aF9jb250ZXh0KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3X2dyb3VwLmNwcDogQWRkZWQuCisgICAgICAgIChfRXdrX1ZpZXdfR3Jv
dXApOgorICAgICAgICAoX0V3a19WaWV3X0dyb3VwOjpfRXdrX1ZpZXdfR3JvdXApOgorICAgICAg
ICAoZXdrX3ZpZXdfZ3JvdXBfV0tQYWdlR3JvdXBfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X2dy
b3VwX25ld193aXRoX1dLUGFnZUdyb3VwKToKKyAgICAgICAgKGV3a192aWV3X2dyb3VwX3JlZik6
CisgICAgICAgIChld2tfdmlld19ncm91cF91bnJlZik6CisgICAgICAgIChld2tfdmlld19ncm91
cF9uZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2dyb3VwLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2dyb3VwX3ByaXZhdGUu
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5o
OgorCiAyMDEyLTA3LTE0ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIEVuYWJsZSBBVkNGIGhhcmR3YXJlIHZpZGVvIGRlY29kaW5nCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtRWZsLmNtYWtlCmluZGV4IDk4NzBlMGUyZTkyNWE4M2Y5YTcwZWI1MmFkZjJlOWVmM2IwMWYz
ZjEuLjE1YzNhNjk5YjhkZjM5ODI2NjNmYTBjNmExYTgzMmQyNmVjMzVhN2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtRWZsLmNtYWtlCkBAIC00MCw2ICs0MCw3IEBAIExJU1QoQVBQRU5EIFdlYktpdDJfU09V
UkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuY3BwCiAgICAgVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNlLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3
a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdmlld19ncm91cC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3Qu
Y3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTE3Myw2ICsxNzQsNyBAQCBTRVQgKEVXZWJL
aXQyX0hFQURFUlMKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19pbnRlbnQuaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5oIgogICAgICIke0NNQUtFX0NVUlJF
TlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2Rl
Y2lzaW9uLmgiCisgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlld19ncm91cC5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0v
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0LmgiCiAgICAgIiR7Q01BS0VfQ1VSUkVO
VF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlLmgiCiAgICAg
IiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwCmluZGV4
IDAzZjY5MzBkZDFmYmE1ZGVkNjA3MzJiZDViOTk0NGRhM2QwZTM5ZjMuLmY5ZTdiM2MyMjIwZWRm
NjdkMDQyYmE4MWJhMGM3NzY2ZDNkOTZlNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvZWZsL1dLVmlldy5jcHAKQEAgLTI3LDcgKzI3LDcgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKIAogV0tWaWV3UmVmIFdLVmlld0NyZWF0ZShFdmFzKiBjYW52YXMsIFdLQ29udGV4
dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCiB7Ci0gICAgcmV0
dXJuIHRvQVBJKGV3a192aWV3X2Jhc2VfYWRkKGNhbnZhcywgY29udGV4dFJlZiwgcGFnZUdyb3Vw
UmVmKSk7CisgICAgcmV0dXJuIHRvQVBJKGV3a192aWV3X2FkZF93aXRoX1dLVHlwZShjYW52YXMs
IGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZikpOwogfQogCiBXS1BhZ2VSZWYgV0tWaWV3R2V0UGFn
ZShXS1ZpZXdSZWYgdmlld1JlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0VXZWJLaXQyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
V2ViS2l0Mi5oCmluZGV4IDhmYTkwYWViOTZhY2RhMWRmODY5NDE0YWNhY2U5ZTNkYjNhOGRjZWMu
LmUyMzlkMzA3ZjNlMjA3ODUwNTZkYmM2MDI4YWQwNjkyYjEwOTcyYzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaApAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgImV3a191cmxfcmVxdWVzdC5oIgogI2luY2x1ZGUgImV3a191cmxfcmVzcG9uc2UuaCIK
ICNpbmNsdWRlICJld2tfdmlldy5oIgorI2luY2x1ZGUgImV3a192aWV3X2dyb3VwLmgiCiAjaW5j
bHVkZSAiZXdrX3dlYl9lcnJvci5oIgogI2luY2x1ZGUgImV3a193ZWJfcmVzb3VyY2UuaCIKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCmlu
ZGV4IGUxY2NmZjIzYmE4NmQwZjJiYTBhYmY3ZWFiYjQyOTZjMzA0ODhjMTUuLjRiZWYyZDhhN2Y4
OWNkYWM1OTIxZTdlMjUzOTg0ZDViODVkYzEyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKQEAgLTQ0LDYgKzQ0LDE3IEBAIFdLQ29u
dGV4dFJlZiBld2tfY29udGV4dF9XS0NvbnRleHRfZ2V0KGNvbnN0IEV3a19Db250ZXh0KiBld2tD
b250ZXh0KQogICAgIHJldHVybiBld2tDb250ZXh0LT5jb250ZXh0LmdldCgpOwogfQogCisvKioK
KyAqIEBpbnRlcm5hbAorICogQ3JlYXRlIEV3a19Db250ZXh0IHdpdGggV0tDb250ZXh0LgorICov
CitFd2tfQ29udGV4dCogZXdrX2NvbnRleHRfbmV3X3dpdGhfV0tDb250ZXh0KFdLQ29udGV4dFJl
ZiBjb250ZXh0UmVmKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjb250
ZXh0UmVmLCAwKTsKKworICAgIHJldHVybiBuZXcgRXdrX0NvbnRleHQoY29udGV4dFJlZik7Cit9
CisKIHN0YXRpYyBpbmxpbmUgRXdrX0NvbnRleHQqIGNyZWF0ZURlZmF1bHRFd2tDb250ZXh0KCkK
IHsKICAgICBXS0NvbnRleHRSZWYgd2tDb250ZXh0ID0gV0tDb250ZXh0R2V0U2hhcmVkUHJvY2Vz
c0NvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19jb250ZXh0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19jb250ZXh0X3ByaXZhdGUuaAppbmRleCA4MTNhOTQyNTcxZGZhODEyMWNhNGZlYWM5ZmQx
Zjc4MWFiYmM3ZmE1Li45ODU0ODc3NGI3Y2RmMjdjMDhhNzAyZDMzOWNmYzA1ZjllZjdkNDI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9w
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHRfcHJpdmF0ZS5oCkBAIC0yMSw5ICsyMSwxMSBAQAogI2RlZmluZSBld2tfY29udGV4dF9wcml2
YXRlX2gKIAogI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9X
S0NvbnRleHQuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX0V3a19Db250ZXh0IEV3a19Db250ZXh0Owog
CiBXS0NvbnRleHRSZWYgZXdrX2NvbnRleHRfV0tDb250ZXh0X2dldChjb25zdCBFd2tfQ29udGV4
dCopOworRXdrX0NvbnRleHQqIGV3a19jb250ZXh0X25ld193aXRoX1dLQ29udGV4dChXS0NvbnRl
eHRSZWYpOwogCiAjZW5kaWYgLy8gZXdrX2NvbnRleHRfcHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKaW5kZXggZWIxZTVlN2IyYWRiMDlk
YTkyMGI1ZmQxNDMxMWNkNTE1YTc2NTQzZi4uYTgzZTBiNTFmMjgzN2JiYzE3ZDk1ZDU4MTdkMzc4
NmVhYjZhMmNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImV3a19jb250ZXh0LmgiCiAjaW5j
bHVkZSAiZXdrX2NvbnRleHRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19pbnRlbnRfcHJpdmF0
ZS5oIgorI2luY2x1ZGUgImV3a192aWV3X2dyb3VwX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tf
dmlld19sb2FkZXJfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19wb2xpY3lf
Y2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19wcml2YXRlLmgiCkBAIC01MCwx
MCArNTEsMTIgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgIGNvbnN0IGNo
YXIqIHVyaTsKICAgICBjb25zdCBjaGFyKiB0aXRsZTsKICAgICBMb2FkaW5nUmVzb3VyY2VzTWFw
IGxvYWRpbmdSZXNvdXJjZXNNYXA7CisgICAgRXdrX1ZpZXdfR3JvdXAqIGdyb3VwOwogCiAgICAg
X0V3a19WaWV3X1ByaXZhdGVfRGF0YSgpCiAgICAgICAgIDogdXJpKDApCiAgICAgICAgICwgdGl0
bGUoMCkKKyAgICAgICAgLCBncm91cCgwKQogICAgIHsgfQogfTsKIApAQCAtMjgyLDYgKzI4NSw3
IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19wcml2X2RlbChFd2tfVmlld19Qcml2YXRlX0RhdGEq
IHByaXYpCiAgICAgcHJpdi0+cGFnZUNsaWVudCA9IG51bGxwdHI7CiAgICAgZWluYV9zdHJpbmdz
aGFyZV9kZWwocHJpdi0+dXJpKTsKICAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChwcml2LT50aXRs
ZSk7CisgICAgZXdrX3ZpZXdfZ3JvdXBfdW5yZWYocHJpdi0+Z3JvdXApOwogICAgIGRlbGV0ZSBw
cml2OwogfQogCkBAIC00ODQsNyArNDg4LDQ3IEBAIHN0YXRpYyBpbmxpbmUgRXZhc19TbWFydCog
X2V3a192aWV3X3NtYXJ0X2NsYXNzX25ldyh2b2lkKQogICAgIHJldHVybiBzbWFydDsKIH0KIAot
RXZhc19PYmplY3QqIGV3a192aWV3X2Jhc2VfYWRkKEV2YXMqIGNhbnZhcywgV0tDb250ZXh0UmVm
IGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKK3N0YXRpYyBFaW5hX0Jv
b2wgX2V3a192aWV3X2luaXRpYWxpemUoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCBF
d2tfQ29udGV4dCogY29udGV4dCwgRXdrX1ZpZXdfR3JvdXAqIGdyb3VwKQoreworICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzbWFydERhdGEsIGZhbHNlKTsKKyAgICBFV0tfVklF
V19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CisgICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGNvbnRleHQsIGZhbHNlKTsKKworICAgIFdLQ29udGV4
dFJlZiBjb250ZXh0UmVmID0gZXdrX2NvbnRleHRfV0tDb250ZXh0X2dldChjb250ZXh0KTsKKyAg
ICBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYgPSAwOworICAgIGlmIChncm91cCkgeworICAg
ICAgICBwYWdlR3JvdXBSZWYgPSBld2tfdmlld19ncm91cF9XS1BhZ2VHcm91cF9nZXQoZ3JvdXAp
OworICAgICAgICBwcml2LT5ncm91cCA9IGdyb3VwOworICAgICAgICBld2tfdmlld19ncm91cF9y
ZWYoZ3JvdXApOworICAgIH0KKworICAgIHByaXYtPnBhZ2VDbGllbnQgPSBQYWdlQ2xpZW50SW1w
bDo6Y3JlYXRlKHRvSW1wbChjb250ZXh0UmVmKSwgdG9JbXBsKHBhZ2VHcm91cFJlZiksIHNtYXJ0
RGF0YS0+c2VsZik7CisgICAgZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9hdHRhY2godG9BUEkocHJp
di0+cGFnZUNsaWVudC0+cGFnZSgpKSwgc21hcnREYXRhLT5zZWxmKTsKKyAgICBld2tfdmlld19w
b2xpY3lfY2xpZW50X2F0dGFjaCh0b0FQSShwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCkpLCBzbWFy
dERhdGEtPnNlbGYpOworICAgIGV3a192aWV3X3Jlc291cmNlX2xvYWRfY2xpZW50X2F0dGFjaCh0
b0FQSShwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCkpLCBzbWFydERhdGEtPnNlbGYpOworICAgIGlm
ICghcHJpdi0+Z3JvdXApCisgICAgICAgIHByaXYtPmdyb3VwID0gZXdrX3ZpZXdfZ3JvdXBfbmV3
X3dpdGhfV0tQYWdlR3JvdXAoV0tQYWdlR2V0UGFnZUdyb3VwKHRvQVBJKHByaXYtPnBhZ2VDbGll
bnQtPnBhZ2UoKSkpKTsKKworICAgIHJldHVybiB0cnVlOworfQorCisvKioKKyAqIEBpbnRlcm5h
bAorICogQ29uc3RydWN0cyBhIGV3a192aWV3IEV2YXNfT2JqZWN0IHdpdGggV0tUeXBlIHBhcmFt
ZXRlcnMuCisgKi8KK0V2YXNfT2JqZWN0KiBld2tfdmlld19hZGRfd2l0aF9XS1R5cGUoRXZhcyog
Y2FudmFzLCBXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3Vw
UmVmKQoreworICAgIGlmICghcGFnZUdyb3VwUmVmKQorICAgICAgICByZXR1cm4gZXdrX3ZpZXdf
YmFzZV9hZGQoY2FudmFzLCBld2tfY29udGV4dF9uZXdfd2l0aF9XS0NvbnRleHQoY29udGV4dFJl
ZiksIDApOworCisgICAgcmV0dXJuIGV3a192aWV3X2Jhc2VfYWRkKGNhbnZhcywgZXdrX2NvbnRl
eHRfbmV3X3dpdGhfV0tDb250ZXh0KGNvbnRleHRSZWYpLCBld2tfdmlld19ncm91cF9uZXdfd2l0
aF9XS1BhZ2VHcm91cChwYWdlR3JvdXBSZWYpKTsKK30KKworLyoqCisgKiBAaW50ZXJuYWwKKyAq
IENvbnN0cnVjdHMgYSBld2tfdmlldyBFdmFzX09iamVjdCB3aXRoIEV3a19Db250ZXh0IGFuZCBF
d2tfVmlld19Hcm91cC4KKyAqLworRXZhc19PYmplY3QqIGV3a192aWV3X2Jhc2VfYWRkKEV2YXMq
IGNhbnZhcywgRXdrX0NvbnRleHQqIGNvbnRleHQsIEV3a19WaWV3X0dyb3VwKiBncm91cCkKIHsK
ICAgICBFdmFzX09iamVjdCogZXdrVmlldyA9IGV2YXNfb2JqZWN0X3NtYXJ0X2FkZChjYW52YXMs
IF9ld2tfdmlld19zbWFydF9jbGFzc19uZXcoKSk7CiAgICAgaWYgKCFld2tWaWV3KQpAQCAtNTAy
LDE3ICs1NDYsMTkgQEAgRXZhc19PYmplY3QqIGV3a192aWV3X2Jhc2VfYWRkKEV2YXMqIGNhbnZh
cywgV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3UKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgfQogCi0gICAgcHJpdi0+cGFnZUNsaWVudCA9IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGUo
dG9JbXBsKGNvbnRleHRSZWYpLCB0b0ltcGwocGFnZUdyb3VwUmVmKSwgZXdrVmlldyk7Ci0gICAg
ZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9hdHRhY2godG9BUEkocHJpdi0+cGFnZUNsaWVudC0+cGFn
ZSgpKSwgZXdrVmlldyk7Ci0gICAgZXdrX3ZpZXdfcG9saWN5X2NsaWVudF9hdHRhY2godG9BUEko
cHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpKSwgZXdrVmlldyk7Ci0gICAgZXdrX3ZpZXdfcmVzb3Vy
Y2VfbG9hZF9jbGllbnRfYXR0YWNoKHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKSksIGV3
a1ZpZXcpOworICAgIF9ld2tfdmlld19pbml0aWFsaXplKHNtYXJ0RGF0YSwgY29udGV4dCwgZ3Jv
dXApOwogCiAgICAgcmV0dXJuIGV3a1ZpZXc7CiB9CiAKK0V2YXNfT2JqZWN0KiBld2tfdmlld19h
ZGRfd2l0aF9jb250ZXh0X2FuZF9ncm91cChFdmFzKiBjYW52YXMsIEV3a19Db250ZXh0KiBjb250
ZXh0LCBFd2tfVmlld19Hcm91cCogZ3JvdXApCit7CisgICAgcmV0dXJuIGV3a192aWV3X2Jhc2Vf
YWRkKGNhbnZhcywgY29udGV4dCwgZ3JvdXApOworfQorCiBFdmFzX09iamVjdCogZXdrX3ZpZXdf
YWRkX3dpdGhfY29udGV4dChFdmFzKiBjYW52YXMsIEV3a19Db250ZXh0KiBjb250ZXh0KQogewot
ICAgIHJldHVybiBld2tfdmlld19iYXNlX2FkZChjYW52YXMsIGV3a19jb250ZXh0X1dLQ29udGV4
dF9nZXQoY29udGV4dCksIDApOworICAgIHJldHVybiBld2tfdmlld19iYXNlX2FkZChjYW52YXMs
IGNvbnRleHQsIDApOwogfQogCiBFdmFzX09iamVjdCogZXdrX3ZpZXdfYWRkKEV2YXMqIGNhbnZh
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCmluZGV4IDU4
NTUyZWM3ZDIwZTI0MTBkYjI2OWYwMDI4ZTc2MTI5ZDM3YjJjMDUuLjY1NThiMGFjNWMyN2YzNTdl
NmJmNDk0MDc5MTVlOWZmYmViYjM1NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXcuaApAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgImV3a19pbnRlbnQu
aCIKICNpbmNsdWRlICJld2tfdXJsX3JlcXVlc3QuaCIKICNpbmNsdWRlICJld2tfdXJsX3Jlc3Bv
bnNlLmgiCisjaW5jbHVkZSAiZXdrX3ZpZXdfZ3JvdXAuaCIKICNpbmNsdWRlICJld2tfd2ViX2Vy
cm9yLmgiCiAjaW5jbHVkZSAiZXdrX3dlYl9yZXNvdXJjZS5oIgogI2luY2x1ZGUgPEV2YXMuaD4K
QEAgLTIwNCw2ICsyMDUsMTggQEAgRUFQSSBFdmFzX09iamVjdCAqZXdrX3ZpZXdfYWRkKEV2YXMg
KmUpOwogRUFQSSBFdmFzX09iamVjdCAqZXdrX3ZpZXdfYWRkX3dpdGhfY29udGV4dChFdmFzICpl
LCBFd2tfQ29udGV4dCAqY29udGV4dCk7CiAKIC8qKgorICogQ3JlYXRlcyBhIG5ldyBFRkwgV2Vi
S2l0IHZpZXcgb2JqZWN0IGJhc2VkIG9uIHNwZWNpZmljIEV3a19Db250ZXh0IGFuZCBFd2tfVmll
d19Hcm91cC4KKyAqCisgKiBAcGFyYW0gZSBjYW52YXMgb2JqZWN0IHdoZXJlIHRvIGNyZWF0ZSB0
aGUgdmlldyBvYmplY3QKKyAqIEBwYXJhbSBjb250ZXh0IEV3a19Db250ZXh0IG9iamVjdCB0byBk
ZWNsYXJlIHByb2Nlc3MgbW9kZWwKKyAqIEBwYXJhbSBncm91cCBFd2tfVmlld19Hcm91cCBvYmpl
Y3QgdG8gZGVjbGFyZSB2aWV3J3MgZ3JvdXAuIElmIHRoZSBncm91cAorICogICAgICAgIGlzIE5V
TEwsIHRoZSBkZWZhdWx0IGdyb3VwIHdpbGwgYmUgYXNzaWduZWQuCisgKgorICogQHJldHVybiB2
aWV3IG9iamVjdCBvbiBzdWNjZXNzIG9yIEBjIE5VTEwgb24gZmFpbHVyZQorICovCitFQVBJIEV2
YXNfT2JqZWN0ICpld2tfdmlld19hZGRfd2l0aF9jb250ZXh0X2FuZF9ncm91cChFdmFzICplLCBF
d2tfQ29udGV4dCAqY29udGV4dCwgRXdrX1ZpZXdfR3JvdXAgKmdyb3VwKTsKKworLyoqCiAgKiBB
c2tzIHRoZSBvYmplY3QgdG8gbG9hZCB0aGUgZ2l2ZW4gVVJJLgogICoKICAqIEBwYXJhbSBvIHZp
ZXcgb2JqZWN0IHRvIGxvYWQgQGEgVVJJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlld19ncm91cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlld19ncm91cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWZjZjgzNTFlY2M5MzNj
MGI5MjgwMmViMzk0Y2VhNjY4NzRmOTRmYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2dyb3VwLmNwcApAQCAtMCwwICsxLDkwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9n
cmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJld2tfdmlld19ncm91cC5oIgorCisjaW5jbHVkZSAi
ZXdrX3ZpZXdfZ3JvdXBfcHJpdmF0ZS5oIgorI2luY2x1ZGUgPEVpbmEuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQyL1dLUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1N0cmluZy5oPgorCit1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCisvKioKKyAqIFxzdHJ1Y3QgIF9Fd2tfVmlld19Hcm91
cAorICogQGJyaWVmICAgQ29udGFpbnMgdGhlIHZpZXcgZ3JvdXAgZGF0YS4KKyAqLworc3RydWN0
IF9Fd2tfVmlld19Hcm91cCB7CisgICAgdW5zaWduZWQgaW50IF9fcmVmOyAvKio8IHRoZSByZWZl
cmVuY2UgY291bnQgb2YgdGhlIG9iamVjdCAqLworICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3Vw
UmVmPiBwYWdlR3JvdXA7CisKKyAgICBfRXdrX1ZpZXdfR3JvdXAoV0tQYWdlR3JvdXBSZWYgcGFn
ZUdyb3VwUmVmKQorICAgICAgICA6IF9fcmVmKDEpCisgICAgICAgICwgcGFnZUdyb3VwKHBhZ2VH
cm91cFJlZikKKyAgICB7IH0KK307CisKKy8qKgorICogQGludGVybmFsCisgKiBHZXRzIFdLUGFn
ZUdyb3VwIGZyb20gRXdrX1ZpZXdfR3JvdXAuCisgKi8KK1dLUGFnZUdyb3VwUmVmIGV3a192aWV3
X2dyb3VwX1dLUGFnZUdyb3VwX2dldChjb25zdCBFd2tfVmlld19Hcm91cCogZ3JvdXApCit7Cisg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGdyb3VwLCAwKTsKKworICAgIHJldHVy
biBncm91cC0+cGFnZUdyb3VwLmdldCgpOworfQorCisvKioKKyAqIEBpbnRlcm5hbAorICogQ3Jl
YXRlIEV3a19WaWV3X0dyb3VwIHdpdGggV0tQYWdlR3JvdXAuCisgKi8KK0V3a19WaWV3X0dyb3Vw
KiBld2tfdmlld19ncm91cF9uZXdfd2l0aF9XS1BhZ2VHcm91cChXS1BhZ2VHcm91cFJlZiBwYWdl
R3JvdXBSZWYpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHBhZ2VHcm91
cFJlZiwgMCk7CisKKyAgICByZXR1cm4gbmV3IEV3a19WaWV3X0dyb3VwKHBhZ2VHcm91cFJlZik7
Cit9CisKK3ZvaWQgZXdrX3ZpZXdfZ3JvdXBfcmVmKEV3a19WaWV3X0dyb3VwKiBncm91cCkKK3sK
KyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihncm91cCk7CisKKyAgICArK2dyb3VwLT5f
X3JlZjsKK30KKwordm9pZCBld2tfdmlld19ncm91cF91bnJlZihFd2tfVmlld19Hcm91cCogZ3Jv
dXApCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oZ3JvdXApOworICAgIEVJTkFf
U0FGRVRZX09OX0ZBTFNFX1JFVFVSTihncm91cC0+X19yZWYgPiAwKTsKKworICAgIGlmICgtLWdy
b3VwLT5fX3JlZikKKyAgICAgICAgcmV0dXJuOworCisgICAgZGVsZXRlIGdyb3VwOworfQorCitF
d2tfVmlld19Hcm91cCogZXdrX3ZpZXdfZ3JvdXBfbmV3KGNvbnN0IGNoYXIqIGlkZW50aWZpZXIp
Cit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGlkZW50aWZpZXJSZWYoQWRvcHRXSywg
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoaWRlbnRpZmllcikpOworCisgICAgcmV0dXJu
IG5ldyBFd2tfVmlld19Hcm91cChhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZp
ZXIoaWRlbnRpZmllclJlZi5nZXQoKSkpLmdldCgpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2dyb3VwLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19ncm91cC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzMDhhODlm
ZTg3OTA2OThiNjdjODU1ODZmMDJkMzIwMjdhZjM2MzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19ncm91cC5oCkBAIC0wLDAgKzEs
NzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0g
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisvKioK
KyAqIEBmaWxlICAgIGV3a192aWV3X2dyb3VwLmgKKyAqIEBicmllZiAgIERlc2NyaWJlcyB0aGUg
dmlldyBncm91cCBBUEkuCisgKgorICogQG5vdGUgVGhlIGV3a192aWV3X2dyb3VwIHdyYXBzIHRo
ZSBXS1BhZ2VHcm91cC4gQWxsIHZpZXcncyBpbiB0aGUgc2FtZQorICogZ3JvdXAgc2hhcmUgdGhl
IHNhbWUgcHJlZmVyZW5jZXMuCisgKi8KKworI2lmbmRlZiBld2tfdmlld19ncm91cF9oCisjZGVm
aW5lIGV3a192aWV3X2dyb3VwX2gKKworI2luY2x1ZGUgPEV2YXMuaD4KKworI2lmZGVmIF9fY3Bs
dXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBm
b3IgQGEgX0V3a19WaWV3X0dyb3VwLiAqLwordHlwZWRlZiBzdHJ1Y3QgX0V3a19WaWV3X0dyb3Vw
IEV3a19WaWV3X0dyb3VwOworCisvKioKKyAqIEluY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50
IG9mIHRoZSBnaXZlbiBvYmplY3QuCisgKgorICogQHBhcmFtIGdyb3VwIEV3a19WaWV3X0dyb3Vw
IHRvIGluY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQKKyAqLworRUFQSSB2b2lkIGV3a192aWV3
X2dyb3VwX3JlZihFd2tfVmlld19Hcm91cCAqZ3JvdXApOworCisvKioKKyAqIERlY3JlYXNlcyB0
aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3QsIHBvc3NpYmx5IGZyZWVpbmcg
aXQuCisgKiBXaGVuIHRoZSByZWZlcmVuY2UgY291bnQgaXQncyByZWFjaGVkIDAsIHRoZSBFd2tf
Vmlld19Hcm91cCBpcyBmcmVlZC4KKyAqCisgKiBAcGFyYW0gZ3JvdXAgRXdrX1ZpZXdfR3JvdXAg
dG8gZGVjcmVhc2UgdGhlIHJlZmVyZW5jZSBjb3VudAorICovCitFQVBJIHZvaWQgZXdrX3ZpZXdf
Z3JvdXBfdW5yZWYoRXdrX1ZpZXdfR3JvdXAgKmdyb3VwKTsKKworLyoqCisgKiBDcmVhdGVzIGEg
bmV3IEV3a19WaWV3X0dyb3VwLgorICogVGhlIHJldHVybmVkIEV3a19WaWV3X0dyb3VwIG9iamVj
dCBAYiBzaG91bGQgYmUgdW5yZWZlZCBhZnRlciB1c2UuCisgKgorICogQHBhcmFtIGlkZW50aWZp
ZXIgc3RyaW5nIHRvIGlkZW50aWZ5IHRoZSBncm91cC4gSWYgdGhlIGlkZW50aWZpZXIKKyAqICAg
ICAgICBpcyBzZXQgdG8gTlVMTCwgdGhlIHVuaXF1ZSBzdHJpbmcgd2lsbCBiZSBzZXQgaW50ZXJu
YWxseS4KKyAqCisgKiBAcmV0dXJuIEV3a19WaWV3X0dyb3VwIG9iamVjdCBvbiBzdWNjZXNzIG9y
IEBjIE5VTEwgb24gZmFpbHVyZQorICoKKyAqIEBzZWUgZXdrX3ZpZXdfZ3JvdXBfdW5yZWYKKyAq
LworRUFQSSBFd2tfVmlld19Hcm91cCAqZXdrX3ZpZXdfZ3JvdXBfbmV3KGNvbnN0IGNoYXIgKmlk
ZW50aWZpZXIpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8g
ZXdrX3ZpZXdfZ3JvdXBfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXdfZ3JvdXBfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3ZpZXdfZ3JvdXBfcHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkMDgxYTI5ZTNj
YmQ4OWM1MDQ0MGMzMTcyZWVmNzA0OTQ1YjAxZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19ncm91cF9wcml2YXRlLmgKQEAgLTAs
MCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNz
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpZm5kZWYgZXdrX3ZpZXdfZ3JvdXBfcHJpdmF0ZV9oCisjZGVmaW5lIGV3a192aWV3X2dyb3Vw
X3ByaXZhdGVfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJL
aXQyL1dLUGFnZUdyb3VwLmg+CisKK3R5cGVkZWYgc3RydWN0IF9Fd2tfVmlld19Hcm91cCBFd2tf
Vmlld19Hcm91cDsKKworV0tQYWdlR3JvdXBSZWYgZXdrX3ZpZXdfZ3JvdXBfV0tQYWdlR3JvdXBf
Z2V0KGNvbnN0IEV3a19WaWV3X0dyb3VwKik7CitFd2tfVmlld19Hcm91cCogZXdrX3ZpZXdfZ3Jv
dXBfbmV3X3dpdGhfV0tQYWdlR3JvdXAoV0tQYWdlR3JvdXBSZWYpOworCisjZW5kaWYgLy8gZXdr
X3ZpZXdfZ3JvdXBfcHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlld19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlld19wcml2YXRlLmgKaW5kZXggM2M5Y2U5NGE3MTRlYjcxZTdmYjkzMGY0
MzUwMjhiNTBhOWE1ZGVjYi4uZTU4YTRhMzNiMGQzYTE1YWExZTFlYzUxMGQxNDk5NjBmMjg2MGY4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdf
cHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
X3ByaXZhdGUuaApAQCAtMjIsNiArMjIsOCBAQAogI2RlZmluZSBld2tfdmlld19wcml2YXRlX2gK
IAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgImV3a19jb250ZXh0LmgiCisj
aW5jbHVkZSAiZXdrX3ZpZXdfZ3JvdXAuaCIKICNpbmNsdWRlIDxFdmFzLmg+CiAjaW5jbHVkZSA8
V2ViS2l0Mi9XS0Jhc2UuaD4KIApAQCAtNTksNyArNjEsOCBAQCB2b2lkIGV3a192aWV3X3Jlc291
cmNlX2xvYWRfaW5pdGlhdGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCB1aW50NjRfdCByZXNvdXJj
ZUlkZQogdm9pZCBld2tfdmlld19yZXNvdXJjZV9sb2FkX3Jlc3BvbnNlKEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIEV3a19VcmxfUmVzcG9uc2UqIHJl
c3BvbnNlKTsKIHZvaWQgZXdrX3ZpZXdfcmVzb3VyY2VfcmVxdWVzdF9zZW50KEV2YXNfT2JqZWN0
KiBld2tWaWV3LCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIEV3a19VcmxfUmVxdWVzdCog
cmVxdWVzdCwgRXdrX1VybF9SZXNwb25zZSogcmVkaXJlY3RSZXNwb25zZSk7CiAKLUV2YXNfT2Jq
ZWN0KiBld2tfdmlld19iYXNlX2FkZChFdmFzKiBjYW52YXMsIFdLQ29udGV4dFJlZiwgV0tQYWdl
R3JvdXBSZWYpOworRXZhc19PYmplY3QqIGV3a192aWV3X2FkZF93aXRoX1dLVHlwZShFdmFzKiwg
V0tDb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZik7CitFdmFzX09iamVjdCogZXdrX3ZpZXdfYmFz
ZV9hZGQoRXZhcyosIEV3a19Db250ZXh0KiwgRXdrX1ZpZXdfR3JvdXAqKTsKIAogI2lmIEVOQUJM
RShXRUJfSU5URU5UUykKIHZvaWQgZXdrX3ZpZXdfaW50ZW50X3JlcXVlc3RfbmV3KEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCBjb25zdCBFd2tfSW50ZW50KiBld2tJbnRlbnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152756</attachid>
            <date>2012-07-17 07:11:36 -0700</date>
            <delta_ts>2012-07-17 19:58:42 -0700</delta_ts>
            <desc>Rebased.</desc>
            <filename>bug-91468-20120717231135.patch</filename>
            <type>text/plain</type>
            <size>19406</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGM4MDYxMjI2NGY0Yzlm
OThiZGFhOWEwMTRmNTg1NGY2MzQwMzRlNy4uZDgzZWQ4OTJjNTIxNDJhYWUzZDZkNjk1NjU0NThj
OWUwMGQ0ZGRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA3LTE3ICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFk
ZCBld2tfdmlld19ncm91cC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTkxNDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhlIG5ldyBBUEkgaXMgYWRkZWQgdG8gY3JlYXRlIGV3a192aWV3IHdpdGggc3Bl
Y2lmaWMgZXdrX3ZpZXdfZ3JvdXAuCisgICAgICAgIEFkZGl0aW9uYWxseSwgdGhlIGV3a192aWV3
X2Jhc2VfYWRkKCkgZnVuY3Rpb24gaXMgY2hhbmdlZCB0byBnZXQKKyAgICAgICAgRXdrX0NvbnRl
eHQgYW5kIEV3a19WaWV3X0dyb3VwIGFzIHBhcmFtZXRlcnMsIGFuZCBuZXcgZnVuY3Rpb24KKyAg
ICAgICAgZXdrX3ZpZXdfYWRkX3dpdGhfV0tUeXBlKCkgaXMgYWRkZWQgdG8gZ2V0IFdLQ29udGV4
dCBhbmQgV0tQYWdlR3JvdXAKKyAgICAgICAgYXMgcGFyYW1ldGVycy4KKworICAgICAgICAqIFBs
YXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmNw
cDoKKyAgICAgICAgKFdLVmlld0NyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
RVdlYktpdDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHA6
CisgICAgICAgIChld2tfY29udGV4dF9uZXdfd2l0aF9XS0NvbnRleHQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRh
KToKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGE6Ol9Fd2tfVmlld19Qcml2YXRlX0Rh
dGEpOgorICAgICAgICAoX2V3a192aWV3X3ByaXZfZGVsKToKKyAgICAgICAgKF9ld2tfdmlld19p
bml0aWFsaXplKToKKyAgICAgICAgKGV3a192aWV3X2FkZF93aXRoX1dLVHlwZSk6CisgICAgICAg
IChld2tfdmlld19iYXNlX2FkZCk6CisgICAgICAgIChld2tfdmlld19hZGRfd2l0aF9jb250ZXh0
X2FuZF9ncm91cCk6CisgICAgICAgIChld2tfdmlld19hZGRfd2l0aF9jb250ZXh0KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3X2dyb3VwLmNwcDogQWRkZWQuCisgICAgICAgIChfRXdrX1ZpZXdfR3Jv
dXApOgorICAgICAgICAoX0V3a19WaWV3X0dyb3VwOjpfRXdrX1ZpZXdfR3JvdXApOgorICAgICAg
ICAoZXdrX3ZpZXdfZ3JvdXBfV0tQYWdlR3JvdXBfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X2dy
b3VwX25ld193aXRoX1dLUGFnZUdyb3VwKToKKyAgICAgICAgKGV3a192aWV3X2dyb3VwX3JlZik6
CisgICAgICAgIChld2tfdmlld19ncm91cF91bnJlZik6CisgICAgICAgIChld2tfdmlld19ncm91
cF9uZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2dyb3VwLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2dyb3VwX3ByaXZhdGUu
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5o
OgorCiAyMDEyLTA3LTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbR1RLXSBGaXggYSB0eXBvIGluIFdlYktpdDJBUElUZXN0cy9UZXN0UmVz
b3VyY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGYzMjdlMjZhNWYwZmMxNmQzNmIz
Yzc3ZjIxYjlhNjk4ZWM0OGU4ZjMuLjdiMDgxMzc1Zjk1NjFkMGMyNGNjY2U5YmZmZjI5OTQwMWM2
YmU4YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC00MCw2ICs0MCw3IEBAIExJU1Qo
QVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQu
Y3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNlLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHAKKyAgICBV
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19ncm91cC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdXJsX3JlcXVlc3QuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNw
b25zZS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTE3NSw2ICsx
NzYsNyBAQCBTRVQgKEVXZWJLaXQyX0hFQURFUlMKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJD
RV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuaCIKICAgICAiJHtDTUFLRV9DVVJS
RU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5oIgog
ICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25h
dmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmgiCisgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0Vf
RElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19ncm91cC5oIgogICAgICIke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0LmgiCiAg
ICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJs
X3Jlc3BvbnNlLmgiCiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL2VmbC9XS1ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2Vm
bC9XS1ZpZXcuY3BwCmluZGV4IDAzZjY5MzBkZDFmYmE1ZGVkNjA3MzJiZDViOTk0NGRhM2QwZTM5
ZjMuLmY5ZTdiM2MyMjIwZWRmNjdkMDQyYmE4MWJhMGM3NzY2ZDNkOTZlNTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5jcHAKQEAgLTI3LDcgKzI3LDcg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogV0tWaWV3UmVmIFdLVmlld0NyZWF0ZShFdmFz
KiBjYW52YXMsIFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3Jv
dXBSZWYpCiB7Ci0gICAgcmV0dXJuIHRvQVBJKGV3a192aWV3X2Jhc2VfYWRkKGNhbnZhcywgY29u
dGV4dFJlZiwgcGFnZUdyb3VwUmVmKSk7CisgICAgcmV0dXJuIHRvQVBJKGV3a192aWV3X2FkZF93
aXRoX1dLVHlwZShjYW52YXMsIGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZikpOwogfQogCiBXS1Bh
Z2VSZWYgV0tWaWV3R2V0UGFnZShXS1ZpZXdSZWYgdmlld1JlZikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oCmluZGV4IDhmYTkwYWViOTZhY2RhMWRmODY5NDE0
YWNhY2U5ZTNkYjNhOGRjZWMuLmUyMzlkMzA3ZjNlMjA3ODUwNTZkYmM2MDI4YWQwNjkyYjEwOTcy
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQy
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaApAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgImV3a191cmxfcmVxdWVzdC5oIgogI2luY2x1ZGUgImV3
a191cmxfcmVzcG9uc2UuaCIKICNpbmNsdWRlICJld2tfdmlldy5oIgorI2luY2x1ZGUgImV3a192
aWV3X2dyb3VwLmgiCiAjaW5jbHVkZSAiZXdrX3dlYl9lcnJvci5oIgogI2luY2x1ZGUgImV3a193
ZWJfcmVzb3VyY2UuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHQuY3BwCmluZGV4IGUxY2NmZjIzYmE4NmQwZjJiYTBhYmY3ZWFiYjQyOTZjMzA0
ODhjMTUuLjRiZWYyZDhhN2Y4OWNkYWM1OTIxZTdlMjUzOTg0ZDViODVkYzEyZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKQEAgLTQ0
LDYgKzQ0LDE3IEBAIFdLQ29udGV4dFJlZiBld2tfY29udGV4dF9XS0NvbnRleHRfZ2V0KGNvbnN0
IEV3a19Db250ZXh0KiBld2tDb250ZXh0KQogICAgIHJldHVybiBld2tDb250ZXh0LT5jb250ZXh0
LmdldCgpOwogfQogCisvKioKKyAqIEBpbnRlcm5hbAorICogQ3JlYXRlIEV3a19Db250ZXh0IHdp
dGggV0tDb250ZXh0LgorICovCitFd2tfQ29udGV4dCogZXdrX2NvbnRleHRfbmV3X3dpdGhfV0tD
b250ZXh0KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChjb250ZXh0UmVmLCAwKTsKKworICAgIHJldHVybiBuZXcgRXdrX0NvbnRl
eHQoY29udGV4dFJlZik7Cit9CisKIHN0YXRpYyBpbmxpbmUgRXdrX0NvbnRleHQqIGNyZWF0ZURl
ZmF1bHRFd2tDb250ZXh0KCkKIHsKICAgICBXS0NvbnRleHRSZWYgd2tDb250ZXh0ID0gV0tDb250
ZXh0R2V0U2hhcmVkUHJvY2Vzc0NvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaAppbmRleCA4MTNhOTQyNTcx
ZGZhODEyMWNhNGZlYWM5ZmQxZjc4MWFiYmM3ZmE1Li45ODU0ODc3NGI3Y2RmMjdjMDhhNzAyZDMz
OWNmYzA1ZjllZjdkNDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oCkBAIC0yMSw5ICsyMSwxMSBAQAogI2RlZmlu
ZSBld2tfY29udGV4dF9wcml2YXRlX2gKIAogI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+Cisj
aW5jbHVkZSA8V2ViS2l0Mi9XS0NvbnRleHQuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX0V3a19Db250
ZXh0IEV3a19Db250ZXh0OwogCiBXS0NvbnRleHRSZWYgZXdrX2NvbnRleHRfV0tDb250ZXh0X2dl
dChjb25zdCBFd2tfQ29udGV4dCopOworRXdrX0NvbnRleHQqIGV3a19jb250ZXh0X25ld193aXRo
X1dLQ29udGV4dChXS0NvbnRleHRSZWYpOwogCiAjZW5kaWYgLy8gZXdrX2NvbnRleHRfcHJpdmF0
ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
dy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKaW5k
ZXggOGI3MTMyYjQ4NDdhYTY1MTNiNTJiYTJjMGUyOWVkZjc2YmEyZTM1ZC4uYWU0ZDMwZDNlOTAy
N2Y5OTYwZGYwMzQ4NDliYzk3OTFjYjEzZTM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImV3
a19jb250ZXh0LmgiCiAjaW5jbHVkZSAiZXdrX2NvbnRleHRfcHJpdmF0ZS5oIgogI2luY2x1ZGUg
ImV3a19pbnRlbnRfcHJpdmF0ZS5oIgorI2luY2x1ZGUgImV3a192aWV3X2dyb3VwX3ByaXZhdGUu
aCIKICNpbmNsdWRlICJld2tfdmlld19sb2FkZXJfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRl
ICJld2tfdmlld19wb2xpY3lfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19w
cml2YXRlLmgiCkBAIC01MSwxMSArNTIsMTMgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0Rh
dGEgewogICAgIGNvbnN0IGNoYXIqIHRpdGxlOwogICAgIGNvbnN0IGNoYXIqIHRoZW1lOwogICAg
IExvYWRpbmdSZXNvdXJjZXNNYXAgbG9hZGluZ1Jlc291cmNlc01hcDsKKyAgICBFd2tfVmlld19H
cm91cCogZ3JvdXA7CiAKICAgICBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKCkKICAgICAgICAgOiB1
cmkoMCkKICAgICAgICAgLCB0aXRsZSgwKQogICAgICAgICAsIHRoZW1lKDApCisgICAgICAgICwg
Z3JvdXAoMCkKICAgICB7IH0KIAogICAgIH5fRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKCkKQEAgLTYz
LDYgKzY2LDcgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgICAgICBlaW5h
X3N0cmluZ3NoYXJlX2RlbCh1cmkpOwogICAgICAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbCh0aXRs
ZSk7CiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKHRoZW1lKTsKKyAgICAgICAgZXdrX3Zp
ZXdfZ3JvdXBfdW5yZWYoZ3JvdXApOwogICAgIH0KIH07CiAKQEAgLTQ4Nyw3ICs0OTEsNDcgQEAg
c3RhdGljIGlubGluZSBFdmFzX1NtYXJ0KiBfZXdrX3ZpZXdfc21hcnRfY2xhc3NfbmV3KHZvaWQp
CiAgICAgcmV0dXJuIHNtYXJ0OwogfQogCi1FdmFzX09iamVjdCogZXdrX3ZpZXdfYmFzZV9hZGQo
RXZhcyogY2FudmFzLCBXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFn
ZUdyb3VwUmVmKQorc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfaW5pdGlhbGl6ZShFd2tfVmll
d19TbWFydF9EYXRhKiBzbWFydERhdGEsIEV3a19Db250ZXh0KiBjb250ZXh0LCBFd2tfVmlld19H
cm91cCogZ3JvdXApCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNtYXJ0
RGF0YSwgZmFsc2UpOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEs
IHByaXYsIGZhbHNlKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY29udGV4
dCwgZmFsc2UpOworCisgICAgV0tDb250ZXh0UmVmIGNvbnRleHRSZWYgPSBld2tfY29udGV4dF9X
S0NvbnRleHRfZ2V0KGNvbnRleHQpOworICAgIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiA9
IDA7CisgICAgaWYgKGdyb3VwKSB7CisgICAgICAgIHBhZ2VHcm91cFJlZiA9IGV3a192aWV3X2dy
b3VwX1dLUGFnZUdyb3VwX2dldChncm91cCk7CisgICAgICAgIHByaXYtPmdyb3VwID0gZ3JvdXA7
CisgICAgICAgIGV3a192aWV3X2dyb3VwX3JlZihncm91cCk7CisgICAgfQorCisgICAgcHJpdi0+
cGFnZUNsaWVudCA9IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGUodG9JbXBsKGNvbnRleHRSZWYpLCB0
b0ltcGwocGFnZUdyb3VwUmVmKSwgc21hcnREYXRhLT5zZWxmKTsKKyAgICBld2tfdmlld19sb2Fk
ZXJfY2xpZW50X2F0dGFjaCh0b0FQSShwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCkpLCBzbWFydERh
dGEtPnNlbGYpOworICAgIGV3a192aWV3X3BvbGljeV9jbGllbnRfYXR0YWNoKHRvQVBJKHByaXYt
PnBhZ2VDbGllbnQtPnBhZ2UoKSksIHNtYXJ0RGF0YS0+c2VsZik7CisgICAgZXdrX3ZpZXdfcmVz
b3VyY2VfbG9hZF9jbGllbnRfYXR0YWNoKHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKSks
IHNtYXJ0RGF0YS0+c2VsZik7CisgICAgaWYgKCFwcml2LT5ncm91cCkKKyAgICAgICAgcHJpdi0+
Z3JvdXAgPSBld2tfdmlld19ncm91cF9uZXdfd2l0aF9XS1BhZ2VHcm91cChXS1BhZ2VHZXRQYWdl
R3JvdXAodG9BUEkocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpKSkpOworCisgICAgcmV0dXJuIHRy
dWU7Cit9CisKKy8qKgorICogQGludGVybmFsCisgKiBDb25zdHJ1Y3RzIGEgZXdrX3ZpZXcgRXZh
c19PYmplY3Qgd2l0aCBXS1R5cGUgcGFyYW1ldGVycy4KKyAqLworRXZhc19PYmplY3QqIGV3a192
aWV3X2FkZF93aXRoX1dLVHlwZShFdmFzKiBjYW52YXMsIFdLQ29udGV4dFJlZiBjb250ZXh0UmVm
LCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCit7CisgICAgaWYgKCFwYWdlR3JvdXBSZWYp
CisgICAgICAgIHJldHVybiBld2tfdmlld19iYXNlX2FkZChjYW52YXMsIGV3a19jb250ZXh0X25l
d193aXRoX1dLQ29udGV4dChjb250ZXh0UmVmKSwgMCk7CisKKyAgICByZXR1cm4gZXdrX3ZpZXdf
YmFzZV9hZGQoY2FudmFzLCBld2tfY29udGV4dF9uZXdfd2l0aF9XS0NvbnRleHQoY29udGV4dFJl
ZiksIGV3a192aWV3X2dyb3VwX25ld193aXRoX1dLUGFnZUdyb3VwKHBhZ2VHcm91cFJlZikpOwor
fQorCisvKioKKyAqIEBpbnRlcm5hbAorICogQ29uc3RydWN0cyBhIGV3a192aWV3IEV2YXNfT2Jq
ZWN0IHdpdGggRXdrX0NvbnRleHQgYW5kIEV3a19WaWV3X0dyb3VwLgorICovCitFdmFzX09iamVj
dCogZXdrX3ZpZXdfYmFzZV9hZGQoRXZhcyogY2FudmFzLCBFd2tfQ29udGV4dCogY29udGV4dCwg
RXdrX1ZpZXdfR3JvdXAqIGdyb3VwKQogewogICAgIEV2YXNfT2JqZWN0KiBld2tWaWV3ID0gZXZh
c19vYmplY3Rfc21hcnRfYWRkKGNhbnZhcywgX2V3a192aWV3X3NtYXJ0X2NsYXNzX25ldygpKTsK
ICAgICBpZiAoIWV3a1ZpZXcpCkBAIC01MDUsMTkgKzU0OSwyMSBAQCBFdmFzX09iamVjdCogZXdr
X3ZpZXdfYmFzZV9hZGQoRXZhcyogY2FudmFzLCBXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQ
YWdlR3JvdQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBwcml2LT5wYWdlQ2xpZW50
ID0gUGFnZUNsaWVudEltcGw6OmNyZWF0ZSh0b0ltcGwoY29udGV4dFJlZiksIHRvSW1wbChwYWdl
R3JvdXBSZWYpLCBld2tWaWV3KTsKLSAgICBld2tfdmlld19sb2FkZXJfY2xpZW50X2F0dGFjaCh0
b0FQSShwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCkpLCBld2tWaWV3KTsKLSAgICBld2tfdmlld19w
b2xpY3lfY2xpZW50X2F0dGFjaCh0b0FQSShwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCkpLCBld2tW
aWV3KTsKLSAgICBld2tfdmlld19yZXNvdXJjZV9sb2FkX2NsaWVudF9hdHRhY2godG9BUEkocHJp
di0+cGFnZUNsaWVudC0+cGFnZSgpKSwgZXdrVmlldyk7CisgICAgX2V3a192aWV3X2luaXRpYWxp
emUoc21hcnREYXRhLCBjb250ZXh0LCBncm91cCk7CiAKICAgICBld2tfdmlld190aGVtZV9zZXQo
ZXdrVmlldywgREVGQVVMVF9USEVNRV9QQVRIIi9kZWZhdWx0LmVkaiIpOwogCiAgICAgcmV0dXJu
IGV3a1ZpZXc7CiB9CiAKK0V2YXNfT2JqZWN0KiBld2tfdmlld19hZGRfd2l0aF9jb250ZXh0X2Fu
ZF9ncm91cChFdmFzKiBjYW52YXMsIEV3a19Db250ZXh0KiBjb250ZXh0LCBFd2tfVmlld19Hcm91
cCogZ3JvdXApCit7CisgICAgcmV0dXJuIGV3a192aWV3X2Jhc2VfYWRkKGNhbnZhcywgY29udGV4
dCwgZ3JvdXApOworfQorCiBFdmFzX09iamVjdCogZXdrX3ZpZXdfYWRkX3dpdGhfY29udGV4dChF
dmFzKiBjYW52YXMsIEV3a19Db250ZXh0KiBjb250ZXh0KQogewotICAgIHJldHVybiBld2tfdmll
d19iYXNlX2FkZChjYW52YXMsIGV3a19jb250ZXh0X1dLQ29udGV4dF9nZXQoY29udGV4dCksIDAp
OworICAgIHJldHVybiBld2tfdmlld19iYXNlX2FkZChjYW52YXMsIGNvbnRleHQsIDApOwogfQog
CiBFdmFzX09iamVjdCogZXdrX3ZpZXdfYWRkKEV2YXMqIGNhbnZhcykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCmluZGV4IDcxMDBjZDIzNzM3NTg2ZDg3MTE3
NjE1ZTUzMmZhNDJmM2IwNDBiNjAuLjE1ZDk3MTBjNWMwYjk1NjJhZDVmNTM2NjMxNWJhYmM1ZDA3
NGZhYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaApA
QCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgImV3a19pbnRlbnQuaCIKICNpbmNsdWRlICJld2tf
dXJsX3JlcXVlc3QuaCIKICNpbmNsdWRlICJld2tfdXJsX3Jlc3BvbnNlLmgiCisjaW5jbHVkZSAi
ZXdrX3ZpZXdfZ3JvdXAuaCIKICNpbmNsdWRlICJld2tfd2ViX2Vycm9yLmgiCiAjaW5jbHVkZSAi
ZXdrX3dlYl9yZXNvdXJjZS5oIgogI2luY2x1ZGUgPEV2YXMuaD4KQEAgLTIwOCw2ICsyMDksMTgg
QEAgRUFQSSBFdmFzX09iamVjdCAqZXdrX3ZpZXdfYWRkKEV2YXMgKmUpOwogRUFQSSBFdmFzX09i
amVjdCAqZXdrX3ZpZXdfYWRkX3dpdGhfY29udGV4dChFdmFzICplLCBFd2tfQ29udGV4dCAqY29u
dGV4dCk7CiAKIC8qKgorICogQ3JlYXRlcyBhIG5ldyBFRkwgV2ViS2l0IHZpZXcgb2JqZWN0IGJh
c2VkIG9uIHNwZWNpZmljIEV3a19Db250ZXh0IGFuZCBFd2tfVmlld19Hcm91cC4KKyAqCisgKiBA
cGFyYW0gZSBjYW52YXMgb2JqZWN0IHdoZXJlIHRvIGNyZWF0ZSB0aGUgdmlldyBvYmplY3QKKyAq
IEBwYXJhbSBjb250ZXh0IEV3a19Db250ZXh0IG9iamVjdCB0byBkZWNsYXJlIHByb2Nlc3MgbW9k
ZWwKKyAqIEBwYXJhbSBncm91cCBFd2tfVmlld19Hcm91cCBvYmplY3QgdG8gZGVjbGFyZSB2aWV3
J3MgZ3JvdXAuIElmIHRoZSBncm91cAorICogICAgICAgIGlzIE5VTEwsIHRoZSBkZWZhdWx0IGdy
b3VwIHdpbGwgYmUgYXNzaWduZWQuCisgKgorICogQHJldHVybiB2aWV3IG9iamVjdCBvbiBzdWNj
ZXNzIG9yIEBjIE5VTEwgb24gZmFpbHVyZQorICovCitFQVBJIEV2YXNfT2JqZWN0ICpld2tfdmll
d19hZGRfd2l0aF9jb250ZXh0X2FuZF9ncm91cChFdmFzICplLCBFd2tfQ29udGV4dCAqY29udGV4
dCwgRXdrX1ZpZXdfR3JvdXAgKmdyb3VwKTsKKworLyoqCiAgKiBBc2tzIHRoZSBvYmplY3QgdG8g
bG9hZCB0aGUgZ2l2ZW4gVVJJLgogICoKICAqIEBwYXJhbSBvIHZpZXcgb2JqZWN0IHRvIGxvYWQg
QGEgVVJJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dmlld19ncm91cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
d19ncm91cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWZjZjgzNTFlY2M5MzNjMGI5MjgwMmViMzk0Y2VhNjY4
NzRmOTRmYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3X2dyb3VwLmNwcApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJld2tfdmlld19ncm91cC5oIgorCisjaW5jbHVkZSAiZXdrX3ZpZXdfZ3JvdXBfcHJp
dmF0ZS5oIgorI2luY2x1ZGUgPEVpbmEuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRy
Lmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1N0cmluZy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OworCisvKioKKyAqIFxzdHJ1Y3QgIF9Fd2tfVmlld19Hcm91cAorICogQGJyaWVmICAgQ29u
dGFpbnMgdGhlIHZpZXcgZ3JvdXAgZGF0YS4KKyAqLworc3RydWN0IF9Fd2tfVmlld19Hcm91cCB7
CisgICAgdW5zaWduZWQgaW50IF9fcmVmOyAvKio8IHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhl
IG9iamVjdCAqLworICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXA7CisK
KyAgICBfRXdrX1ZpZXdfR3JvdXAoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQorICAgICAg
ICA6IF9fcmVmKDEpCisgICAgICAgICwgcGFnZUdyb3VwKHBhZ2VHcm91cFJlZikKKyAgICB7IH0K
K307CisKKy8qKgorICogQGludGVybmFsCisgKiBHZXRzIFdLUGFnZUdyb3VwIGZyb20gRXdrX1Zp
ZXdfR3JvdXAuCisgKi8KK1dLUGFnZUdyb3VwUmVmIGV3a192aWV3X2dyb3VwX1dLUGFnZUdyb3Vw
X2dldChjb25zdCBFd2tfVmlld19Hcm91cCogZ3JvdXApCit7CisgICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKGdyb3VwLCAwKTsKKworICAgIHJldHVybiBncm91cC0+cGFnZUdyb3Vw
LmdldCgpOworfQorCisvKioKKyAqIEBpbnRlcm5hbAorICogQ3JlYXRlIEV3a19WaWV3X0dyb3Vw
IHdpdGggV0tQYWdlR3JvdXAuCisgKi8KK0V3a19WaWV3X0dyb3VwKiBld2tfdmlld19ncm91cF9u
ZXdfd2l0aF9XS1BhZ2VHcm91cChXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCit7CisgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHBhZ2VHcm91cFJlZiwgMCk7CisKKyAgICBy
ZXR1cm4gbmV3IEV3a19WaWV3X0dyb3VwKHBhZ2VHcm91cFJlZik7Cit9CisKK3ZvaWQgZXdrX3Zp
ZXdfZ3JvdXBfcmVmKEV3a19WaWV3X0dyb3VwKiBncm91cCkKK3sKKyAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTihncm91cCk7CisKKyAgICArK2dyb3VwLT5fX3JlZjsKK30KKwordm9pZCBl
d2tfdmlld19ncm91cF91bnJlZihFd2tfVmlld19Hcm91cCogZ3JvdXApCit7CisgICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk4oZ3JvdXApOworICAgIEVJTkFfU0FGRVRZX09OX0ZBTFNFX1JF
VFVSTihncm91cC0+X19yZWYgPiAwKTsKKworICAgIGlmICgtLWdyb3VwLT5fX3JlZikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgZGVsZXRlIGdyb3VwOworfQorCitFd2tfVmlld19Hcm91cCogZXdr
X3ZpZXdfZ3JvdXBfbmV3KGNvbnN0IGNoYXIqIGlkZW50aWZpZXIpCit7CisgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IGlkZW50aWZpZXJSZWYoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoaWRlbnRpZmllcikpOworCisgICAgcmV0dXJuIG5ldyBFd2tfVmlld19Hcm91
cChhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoaWRlbnRpZmllclJlZi5n
ZXQoKSkpLmdldCgpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3X2dyb3VwLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlld19ncm91cC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzMDhhODlmZTg3OTA2OThiNjdjODU1ODZm
MDJkMzIwMjdhZjM2MzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlld19ncm91cC5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisvKioKKyAqIEBmaWxlICAgIGV3a192
aWV3X2dyb3VwLmgKKyAqIEBicmllZiAgIERlc2NyaWJlcyB0aGUgdmlldyBncm91cCBBUEkuCisg
KgorICogQG5vdGUgVGhlIGV3a192aWV3X2dyb3VwIHdyYXBzIHRoZSBXS1BhZ2VHcm91cC4gQWxs
IHZpZXcncyBpbiB0aGUgc2FtZQorICogZ3JvdXAgc2hhcmUgdGhlIHNhbWUgcHJlZmVyZW5jZXMu
CisgKi8KKworI2lmbmRlZiBld2tfdmlld19ncm91cF9oCisjZGVmaW5lIGV3a192aWV3X2dyb3Vw
X2gKKworI2luY2x1ZGUgPEV2YXMuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMi
IHsKKyNlbmRpZgorCisvKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgQGEgX0V3a19WaWV3X0dy
b3VwLiAqLwordHlwZWRlZiBzdHJ1Y3QgX0V3a19WaWV3X0dyb3VwIEV3a19WaWV3X0dyb3VwOwor
CisvKioKKyAqIEluY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmpl
Y3QuCisgKgorICogQHBhcmFtIGdyb3VwIEV3a19WaWV3X0dyb3VwIHRvIGluY3JlYXNlIHRoZSBy
ZWZlcmVuY2UgY291bnQKKyAqLworRUFQSSB2b2lkIGV3a192aWV3X2dyb3VwX3JlZihFd2tfVmll
d19Hcm91cCAqZ3JvdXApOworCisvKioKKyAqIERlY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50
IG9mIHRoZSBnaXZlbiBvYmplY3QsIHBvc3NpYmx5IGZyZWVpbmcgaXQuCisgKiBXaGVuIHRoZSBy
ZWZlcmVuY2UgY291bnQgaXQncyByZWFjaGVkIDAsIHRoZSBFd2tfVmlld19Hcm91cCBpcyBmcmVl
ZC4KKyAqCisgKiBAcGFyYW0gZ3JvdXAgRXdrX1ZpZXdfR3JvdXAgdG8gZGVjcmVhc2UgdGhlIHJl
ZmVyZW5jZSBjb3VudAorICovCitFQVBJIHZvaWQgZXdrX3ZpZXdfZ3JvdXBfdW5yZWYoRXdrX1Zp
ZXdfR3JvdXAgKmdyb3VwKTsKKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IEV3a19WaWV3X0dyb3Vw
LgorICogVGhlIHJldHVybmVkIEV3a19WaWV3X0dyb3VwIG9iamVjdCBAYiBzaG91bGQgYmUgdW5y
ZWZlZCBhZnRlciB1c2UuCisgKgorICogQHBhcmFtIGlkZW50aWZpZXIgc3RyaW5nIHRvIGlkZW50
aWZ5IHRoZSBncm91cC4gSWYgdGhlIGlkZW50aWZpZXIKKyAqICAgICAgICBpcyBzZXQgdG8gTlVM
TCwgdGhlIHVuaXF1ZSBzdHJpbmcgd2lsbCBiZSBzZXQgaW50ZXJuYWxseS4KKyAqCisgKiBAcmV0
dXJuIEV3a19WaWV3X0dyb3VwIG9iamVjdCBvbiBzdWNjZXNzIG9yIEBjIE5VTEwgb24gZmFpbHVy
ZQorICoKKyAqIEBzZWUgZXdrX3ZpZXdfZ3JvdXBfdW5yZWYKKyAqLworRUFQSSBFd2tfVmlld19H
cm91cCAqZXdrX3ZpZXdfZ3JvdXBfbmV3KGNvbnN0IGNoYXIgKmlkZW50aWZpZXIpOworCisjaWZk
ZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gZXdrX3ZpZXdfZ3JvdXBfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZ3Jv
dXBfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdf
Z3JvdXBfcHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkMDgxYTI5ZTNjYmQ4OWM1MDQ0MGMzMTcyZWVm
NzA0OTQ1YjAxZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlld19ncm91cF9wcml2YXRlLmgKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgZXdrX3ZpZXdf
Z3JvdXBfcHJpdmF0ZV9oCisjZGVmaW5lIGV3a192aWV3X2dyb3VwX3ByaXZhdGVfaAorCisjaW5j
bHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUGFnZUdyb3VwLmg+
CisKK3R5cGVkZWYgc3RydWN0IF9Fd2tfVmlld19Hcm91cCBFd2tfVmlld19Hcm91cDsKKworV0tQ
YWdlR3JvdXBSZWYgZXdrX3ZpZXdfZ3JvdXBfV0tQYWdlR3JvdXBfZ2V0KGNvbnN0IEV3a19WaWV3
X0dyb3VwKik7CitFd2tfVmlld19Hcm91cCogZXdrX3ZpZXdfZ3JvdXBfbmV3X3dpdGhfV0tQYWdl
R3JvdXAoV0tQYWdlR3JvdXBSZWYpOworCisjZW5kaWYgLy8gZXdrX3ZpZXdfZ3JvdXBfcHJpdmF0
ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
d19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19w
cml2YXRlLmgKaW5kZXggM2M5Y2U5NGE3MTRlYjcxZTdmYjkzMGY0MzUwMjhiNTBhOWE1ZGVjYi4u
ZTU4YTRhMzNiMGQzYTE1YWExZTFlYzUxMGQxNDk5NjBmMjg2MGY4YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaApAQCAtMjIs
NiArMjIsOCBAQAogI2RlZmluZSBld2tfdmlld19wcml2YXRlX2gKIAogI2luY2x1ZGUgIldlYlBh
Z2VQcm94eS5oIgorI2luY2x1ZGUgImV3a19jb250ZXh0LmgiCisjaW5jbHVkZSAiZXdrX3ZpZXdf
Z3JvdXAuaCIKICNpbmNsdWRlIDxFdmFzLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4K
IApAQCAtNTksNyArNjEsOCBAQCB2b2lkIGV3a192aWV3X3Jlc291cmNlX2xvYWRfaW5pdGlhdGVk
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCB1aW50NjRfdCByZXNvdXJjZUlkZQogdm9pZCBld2tfdmll
d19yZXNvdXJjZV9sb2FkX3Jlc3BvbnNlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCB1aW50NjRfdCBy
ZXNvdXJjZUlkZW50aWZpZXIsIEV3a19VcmxfUmVzcG9uc2UqIHJlc3BvbnNlKTsKIHZvaWQgZXdr
X3ZpZXdfcmVzb3VyY2VfcmVxdWVzdF9zZW50KEV2YXNfT2JqZWN0KiBld2tWaWV3LCB1aW50NjRf
dCByZXNvdXJjZUlkZW50aWZpZXIsIEV3a19VcmxfUmVxdWVzdCogcmVxdWVzdCwgRXdrX1VybF9S
ZXNwb25zZSogcmVkaXJlY3RSZXNwb25zZSk7CiAKLUV2YXNfT2JqZWN0KiBld2tfdmlld19iYXNl
X2FkZChFdmFzKiBjYW52YXMsIFdLQ29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYpOworRXZhc19P
YmplY3QqIGV3a192aWV3X2FkZF93aXRoX1dLVHlwZShFdmFzKiwgV0tDb250ZXh0UmVmLCBXS1Bh
Z2VHcm91cFJlZik7CitFdmFzX09iamVjdCogZXdrX3ZpZXdfYmFzZV9hZGQoRXZhcyosIEV3a19D
b250ZXh0KiwgRXdrX1ZpZXdfR3JvdXAqKTsKIAogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKIHZv
aWQgZXdrX3ZpZXdfaW50ZW50X3JlcXVlc3RfbmV3KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25z
dCBFd2tfSW50ZW50KiBld2tJbnRlbnQpOwo=
</data>
<flag name="review"
          id="161510"
          type_id="1"
          status="-"
          setter="enmi.lee"
    />
    <flag name="commit-queue"
          id="161511"
          type_id="3"
          status="-"
          setter="enmi.lee"
    />
          </attachment>
      

    </bug>

</bugzilla>