<?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>96769</bug_id>
          
          <creation_ts>2012-09-14 06:42:27 -0700</creation_ts>
          <short_desc>[GTK] Don&apos;t use the C API internally in WebKitBackForwardList</short_desc>
          <delta_ts>2012-10-17 08:48:00 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>96768</dependson>
          <blocked>96766</blocked>
    
    <blocked>96770</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>mario</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>720691</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-14 06:42:27 -0700</bug_when>
    <thetext>Use the C++ classes instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720694</commentid>
    <comment_count>1</comment_count>
      <attachid>164129</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-14 06:46:49 -0700</bug_when>
    <thetext>Created attachment 164129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731714</commentid>
    <comment_count>2</comment_count>
      <attachid>166481</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-10-01 08:42:39 -0700</bug_when>
    <thetext>Created attachment 166481
Updated patch to apply on current git master

New patch in trunk broke this one</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731721</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-01 08:46:35 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733430</commentid>
    <comment_count>4</comment_count>
      <attachid>166481</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-10-03 01:31:27 -0700</bug_when>
    <thetext>Comment on attachment 166481
Updated patch to apply on current git master

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

This patch is pretty straightforward and I have not much to comment here. LGTM

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardList.cpp:58
&gt; +    WebBackForwardList* webList;

I would probably name it backForwardList instead of webList. But I&apos;m not genius choosing names either, so take it as a subjective opinion.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardList.cpp:140
&gt; +WebKitBackForwardList* webkitBackForwardListCreate(WebBackForwardList* webList)

Ditto

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardListItem.cpp:32
&gt; +    RefPtr&lt;WebBackForwardListItem&gt; webListItem;

And here too. Or maybe just listItem here, not to make it too long</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733439</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-10-03 01:35:44 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 166481 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166481&amp;action=review
&gt; 
&gt; This patch is pretty straightforward and I have not much to comment here. LGTM
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardList.cpp:58
&gt; &gt; +    WebBackForwardList* webList;
&gt; 
&gt; I would probably name it backForwardList instead of webList. But I&apos;m not genius choosing names either, so take it as a subjective opinion.

This was wkList before, I think, I renamed to webList to avoid confusion with C API variables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744184</commentid>
    <comment_count>6</comment_count>
      <attachid>166481</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-10-17 05:33:21 -0700</bug_when>
    <thetext>Comment on attachment 166481
Updated patch to apply on current git master

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

&gt;&gt;&gt; Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardList.cpp:58
&gt;&gt;&gt; +    WebBackForwardList* webList;
&gt;&gt; 
&gt;&gt; I would probably name it backForwardList instead of webList. But I&apos;m not genius choosing names either, so take it as a subjective opinion.
&gt; 
&gt; This was wkList before, I think, I renamed to webList to avoid confusion with C API variables.

How about naming it items or backForwardItems? backForwardList is a bad name I think because it&apos;s the name of the object that holds this private structure in most cases. This is the list of backForwardItems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744271</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-10-17 08:46:25 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 166481 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166481&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardList.cpp:58
&gt; &gt;&gt;&gt; +    WebBackForwardList* webList;
&gt; &gt;&gt; 
&gt; &gt;&gt; I would probably name it backForwardList instead of webList. But I&apos;m not genius choosing names either, so take it as a subjective opinion.
&gt; &gt; 
&gt; &gt; This was wkList before, I think, I renamed to webList to avoid confusion with C API variables.
&gt; 
&gt; How about naming it items or backForwardItems? backForwardList is a bad name I think because it&apos;s the name of the object that holds this private structure in most cases. This is the list of backForwardItems.

Sure!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744275</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-10-17 08:48:00 -0700</bug_when>
    <thetext>Committed r131605: &lt;http://trac.webkit.org/changeset/131605&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164129</attachid>
            <date>2012-09-14 06:46:49 -0700</date>
            <delta_ts>2012-10-01 08:42:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-no-c-api-bf-list.diff</filename>
            <type>text/plain</type>
            <size>19556</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmZjY2M2ZiLi5mZjk5MTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQg
QEAKKzIwMTItMDktMTQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIERvbid0IHVzZSB0aGUgQyBBUEkgaW50ZXJuYWxseSBpbiBXZWJL
aXRCYWNrRm9yd2FyZExpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk2NzY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXNpbmcgdGhlIEMrKyBjbGFzc2VzIGRpcmVjdGx5IGluc3RlYWQgb2YgdGhlIEMg
QVBJIHdyYXBwZXJzIHdlCisgICAgICAgIGF2b2lkIGEgbG90IG9mIHRvSW1wbC90b0FQSSBjYXN0
cywgc3RyaW5nIGNvbnZlcnNpb25zIGFuZAorICAgICAgICBhbGxvY2F0aW9ucy4gVGhlIGNvZGUg
aXMgYWxzbyBhIGxvdCBzaW1wbGVyIGFuZCBlYXNpZXIgdG8gcmVhZC4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhY2tGb3J3YXJkTGlzdC5jcHA6CisgICAgICAgIChfV2Vi
S2l0QmFja0ZvcndhcmRMaXN0UHJpdmF0ZSk6CisgICAgICAgICh3ZWJraXRCYWNrRm9yd2FyZExp
c3RHZXRPckNyZWF0ZUl0ZW0pOgorICAgICAgICAod2Via2l0QmFja0ZvcndhcmRMaXN0Q3JlYXRl
TGlzdCk6CisgICAgICAgICh3ZWJraXRCYWNrRm9yd2FyZExpc3RDcmVhdGUpOgorICAgICAgICAo
d2Via2l0QmFja0ZvcndhcmRMaXN0Q2hhbmdlZCk6CisgICAgICAgICh3ZWJraXRfYmFja19mb3J3
YXJkX2xpc3RfZ2V0X2N1cnJlbnRfaXRlbSk6CisgICAgICAgICh3ZWJraXRfYmFja19mb3J3YXJk
X2xpc3RfZ2V0X2JhY2tfaXRlbSk6CisgICAgICAgICh3ZWJraXRfYmFja19mb3J3YXJkX2xpc3Rf
Z2V0X2ZvcndhcmRfaXRlbSk6CisgICAgICAgICh3ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfZ2V0
X250aF9pdGVtKToKKyAgICAgICAgKHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfbGVuZ3Ro
KToKKyAgICAgICAgKHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfYmFja19saXN0KToKKyAg
ICAgICAgKHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfYmFja19saXN0X3dpdGhfbGltaXQp
OgorICAgICAgICAod2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2dldF9mb3J3YXJkX2xpc3QpOgor
ICAgICAgICAod2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2dldF9mb3J3YXJkX2xpc3Rfd2l0aF9s
aW1pdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0
SXRlbS5jcHA6CisgICAgICAgIChfV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUpOgor
ICAgICAgICAod2Via2l0QmFja0ZvcndhcmRMaXN0SXRlbUZpbmFsaXplZCk6CisgICAgICAgICh3
ZWJraXRCYWNrRm9yd2FyZExpc3RJdGVtR2V0T3JDcmVhdGUpOgorICAgICAgICAod2Via2l0QmFj
a0ZvcndhcmRMaXN0SXRlbUdldEl0ZW0pOgorICAgICAgICAod2Via2l0X2JhY2tfZm9yd2FyZF9s
aXN0X2l0ZW1fZ2V0X3VyaSk6CisgICAgICAgICh3ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfaXRl
bV9nZXRfdGl0bGUpOgorICAgICAgICAod2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fZ2V0
X29yaWdpbmFsX3VyaSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0Zv
cndhcmRMaXN0UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExv
YWRlckNsaWVudC5jcHA6CisgICAgICAgIChkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwOgorICAgICAgICAod2Vi
a2l0V2ViVmlld0NvbnN0cnVjdGVkKToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nb190b19i
YWNrX2ZvcndhcmRfbGlzdF9pdGVtKToKKwogMjAxMi0wOS0xMiAgU2hlcmlmZiBCb3QgIDx3ZWJr
aXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjEyNzg3Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEJhY2tGb3J3YXJkTGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRCYWNrRm9yd2FyZExpc3QuY3BwCmluZGV4IGViZWI5MjAuLmVjYTQxMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhY2tGb3J3
YXJkTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
QmFja0ZvcndhcmRMaXN0LmNwcApAQCAtNTIsMTAgKzUyLDEwIEBAIGVudW0gewogICAgIExBU1Rf
U0lHTkFMCiB9OwogCi10eXBlZGVmIEhhc2hNYXA8V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLCBH
UmVmUHRyPFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0+ID4gQmFja0ZvcndhcmRMaXN0SXRlbXNN
YXA7Cit0eXBlZGVmIEhhc2hNYXA8V2ViQmFja0ZvcndhcmRMaXN0SXRlbSosIEdSZWZQdHI8V2Vi
S2l0QmFja0ZvcndhcmRMaXN0SXRlbT4gPiBCYWNrRm9yd2FyZExpc3RJdGVtc01hcDsKIAogc3Ry
dWN0IF9XZWJLaXRCYWNrRm9yd2FyZExpc3RQcml2YXRlIHsKLSAgICBXS0JhY2tGb3J3YXJkTGlz
dFJlZiB3a0xpc3Q7CisgICAgV2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJMaXN0OwogICAgIEJhY2tG
b3J3YXJkTGlzdEl0ZW1zTWFwIGl0ZW1zTWFwOwogfTsKIApAQCAtMTA3LDU1ICsxMDcsNTUgQEAg
c3RhdGljIHZvaWQgd2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2NsYXNzX2luaXQoV2ViS2l0QmFj
a0ZvcndhcmRMaXN0Q2xhc3MqIGxpc3QKICAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUobGlz
dENsYXNzLCBzaXplb2YoV2ViS2l0QmFja0ZvcndhcmRMaXN0UHJpdmF0ZSkpOwogfQogCi1zdGF0
aWMgV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbSogd2Via2l0QmFja0ZvcndhcmRMaXN0R2V0T3JD
cmVhdGVJdGVtKFdlYktpdEJhY2tGb3J3YXJkTGlzdCogbGlzdCwgV0tCYWNrRm9yd2FyZExpc3RJ
dGVtUmVmIHdrTGlzdEl0ZW0pCitzdGF0aWMgV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbSogd2Vi
a2l0QmFja0ZvcndhcmRMaXN0R2V0T3JDcmVhdGVJdGVtKFdlYktpdEJhY2tGb3J3YXJkTGlzdCog
bGlzdCwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogd2ViTGlzdEl0ZW0pCiB7Ci0gICAgaWYgKCF3
a0xpc3RJdGVtKQorICAgIGlmICghd2ViTGlzdEl0ZW0pCiAgICAgICAgIHJldHVybiAwOwogCiAg
ICAgV2ViS2l0QmFja0ZvcndhcmRMaXN0UHJpdmF0ZSogcHJpdiA9IGxpc3QtPnByaXY7Ci0gICAg
R1JlZlB0cjxXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtPiBsaXN0SXRlbSA9IHByaXYtPml0ZW1z
TWFwLmdldCh3a0xpc3RJdGVtKTsKKyAgICBHUmVmUHRyPFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0
ZW0+IGxpc3RJdGVtID0gcHJpdi0+aXRlbXNNYXAuZ2V0KHdlYkxpc3RJdGVtKTsKICAgICBpZiAo
bGlzdEl0ZW0pCiAgICAgICAgIHJldHVybiBsaXN0SXRlbS5nZXQoKTsKIAotICAgIGxpc3RJdGVt
ID0gd2Via2l0QmFja0ZvcndhcmRMaXN0SXRlbUdldE9yQ3JlYXRlKHdrTGlzdEl0ZW0pOwotICAg
IHByaXYtPml0ZW1zTWFwLnNldCh3a0xpc3RJdGVtLCBsaXN0SXRlbSk7CisgICAgbGlzdEl0ZW0g
PSB3ZWJraXRCYWNrRm9yd2FyZExpc3RJdGVtR2V0T3JDcmVhdGUod2ViTGlzdEl0ZW0pOworICAg
IHByaXYtPml0ZW1zTWFwLnNldCh3ZWJMaXN0SXRlbSwgbGlzdEl0ZW0pOwogCiAgICAgcmV0dXJu
IGxpc3RJdGVtLmdldCgpOwogfQogCi1zdGF0aWMgR0xpc3QqIHdlYmtpdEJhY2tGb3J3YXJkTGlz
dENyZWF0ZUxpc3QoV2ViS2l0QmFja0ZvcndhcmRMaXN0KiBsaXN0LCBXS0FycmF5UmVmIHdrTGlz
dCkKK3N0YXRpYyBHTGlzdCogd2Via2l0QmFja0ZvcndhcmRMaXN0Q3JlYXRlTGlzdChXZWJLaXRC
YWNrRm9yd2FyZExpc3QqIGxpc3QsIEltbXV0YWJsZUFycmF5KiB3ZWJMaXN0KQogewotICAgIGlm
ICghd2tMaXN0KQorICAgIGlmICghd2ViTGlzdCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBH
TGlzdCogcmV0dXJuVmFsdWUgPSAwOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV0tBcnJh
eUdldFNpemUod2tMaXN0KTsgKytpKSB7Ci0gICAgICAgIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJl
ZiB3a0l0ZW0gPSBzdGF0aWNfY2FzdDxXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWY+KFdLQXJyYXlH
ZXRJdGVtQXRJbmRleCh3a0xpc3QsIGkpKTsKLSAgICAgICAgcmV0dXJuVmFsdWUgPSBnX2xpc3Rf
cHJlcGVuZChyZXR1cm5WYWx1ZSwgd2Via2l0QmFja0ZvcndhcmRMaXN0R2V0T3JDcmVhdGVJdGVt
KGxpc3QsIHdrSXRlbSkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd2ViTGlzdC0+c2l6
ZSgpOyArK2kpIHsKKyAgICAgICAgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogd2ViSXRlbSA9IHN0
YXRpY19jYXN0PFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qPih3ZWJMaXN0LT5hdChpKSk7CisgICAg
ICAgIHJldHVyblZhbHVlID0gZ19saXN0X3ByZXBlbmQocmV0dXJuVmFsdWUsIHdlYmtpdEJhY2tG
b3J3YXJkTGlzdEdldE9yQ3JlYXRlSXRlbShsaXN0LCB3ZWJJdGVtKSk7CiAgICAgfQogCiAgICAg
cmV0dXJuIHJldHVyblZhbHVlOwogfQogCi1XZWJLaXRCYWNrRm9yd2FyZExpc3QqIHdlYmtpdEJh
Y2tGb3J3YXJkTGlzdENyZWF0ZShXS0JhY2tGb3J3YXJkTGlzdFJlZiB3a0xpc3QpCitXZWJLaXRC
YWNrRm9yd2FyZExpc3QqIHdlYmtpdEJhY2tGb3J3YXJkTGlzdENyZWF0ZShXZWJCYWNrRm9yd2Fy
ZExpc3QqIHdlYkxpc3QpCiB7CiAgICAgV2ViS2l0QmFja0ZvcndhcmRMaXN0KiBsaXN0ID0gV0VC
S0lUX0JBQ0tfRk9SV0FSRF9MSVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9CQUNLX0ZPUldB
UkRfTElTVCwgTlVMTCkpOwotICAgIGxpc3QtPnByaXYtPndrTGlzdCA9IHdrTGlzdDsKKyAgICBs
aXN0LT5wcml2LT53ZWJMaXN0ID0gd2ViTGlzdDsKIAogICAgIHJldHVybiBsaXN0OwogfQogCi12
b2lkIHdlYmtpdEJhY2tGb3J3YXJkTGlzdENoYW5nZWQoV2ViS2l0QmFja0ZvcndhcmRMaXN0KiBi
YWNrRm9yd2FyZExpc3QsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiB3a0FkZGVkSXRlbSwgV0tB
cnJheVJlZiB3a1JlbW92ZWRJdGVtcykKK3ZvaWQgd2Via2l0QmFja0ZvcndhcmRMaXN0Q2hhbmdl
ZChXZWJLaXRCYWNrRm9yd2FyZExpc3QqIGJhY2tGb3J3YXJkTGlzdCwgV2ViQmFja0ZvcndhcmRM
aXN0SXRlbSogd2ViQWRkZWRJdGVtLCBJbW11dGFibGVBcnJheSogd2ViUmVtb3ZlZEl0ZW1zKQog
ewotICAgIFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0qIGFkZGVkSXRlbSA9IHdlYmtpdEJhY2tG
b3J3YXJkTGlzdEdldE9yQ3JlYXRlSXRlbShiYWNrRm9yd2FyZExpc3QsIHdrQWRkZWRJdGVtKTsK
KyAgICBXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtKiBhZGRlZEl0ZW0gPSB3ZWJraXRCYWNrRm9y
d2FyZExpc3RHZXRPckNyZWF0ZUl0ZW0oYmFja0ZvcndhcmRMaXN0LCB3ZWJBZGRlZEl0ZW0pOwog
ICAgIEdMaXN0KiByZW1vdmVkSXRlbXMgPSAwOwogCi0gICAgc2l6ZV90IHJlbW92ZWRJdGVtc1Np
emUgPSB3a1JlbW92ZWRJdGVtcyA/IFdLQXJyYXlHZXRTaXplKHdrUmVtb3ZlZEl0ZW1zKSA6IDA7
CisgICAgc2l6ZV90IHJlbW92ZWRJdGVtc1NpemUgPSB3ZWJSZW1vdmVkSXRlbXMgPyB3ZWJSZW1v
dmVkSXRlbXMtPnNpemUoKSA6IDA7CiAgICAgV2ViS2l0QmFja0ZvcndhcmRMaXN0UHJpdmF0ZSog
cHJpdiA9IGJhY2tGb3J3YXJkTGlzdC0+cHJpdjsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHJlbW92ZWRJdGVtc1NpemU7ICsraSkgewotICAgICAgICBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1S
ZWYgd2tJdGVtID0gc3RhdGljX2Nhc3Q8V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmPihXS0FycmF5
R2V0SXRlbUF0SW5kZXgod2tSZW1vdmVkSXRlbXMsIGkpKTsKLSAgICAgICAgcmVtb3ZlZEl0ZW1z
ID0gZ19saXN0X3ByZXBlbmQocmVtb3ZlZEl0ZW1zLCBnX29iamVjdF9yZWYoR19PQkpFQ1QocHJp
di0+aXRlbXNNYXAuZ2V0KHdrSXRlbSkuZ2V0KCkpKSk7Ci0gICAgICAgIHByaXYtPml0ZW1zTWFw
LnJlbW92ZSh3a0l0ZW0pOworICAgICAgICBXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB3ZWJJdGVt
ID0gc3RhdGljX2Nhc3Q8V2ViQmFja0ZvcndhcmRMaXN0SXRlbSo+KHdlYlJlbW92ZWRJdGVtcy0+
YXQoaSkpOworICAgICAgICByZW1vdmVkSXRlbXMgPSBnX2xpc3RfcHJlcGVuZChyZW1vdmVkSXRl
bXMsIGdfb2JqZWN0X3JlZihHX09CSkVDVChwcml2LT5pdGVtc01hcC5nZXQod2ViSXRlbSkuZ2V0
KCkpKSk7CisgICAgICAgIHByaXYtPml0ZW1zTWFwLnJlbW92ZSh3ZWJJdGVtKTsKICAgICB9CiAK
ICAgICBnX3NpZ25hbF9lbWl0KGJhY2tGb3J3YXJkTGlzdCwgc2lnbmFsc1tDSEFOR0VEXSwgMCwg
YWRkZWRJdGVtLCByZW1vdmVkSXRlbXMsIE5VTEwpOwpAQCAtMTc1LDcgKzE3NSw3IEBAIFdlYktp
dEJhY2tGb3J3YXJkTGlzdEl0ZW0qIHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfY3VycmVu
dF9pdGVtKFdlYktpdEJhY2tGCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lT
X0JBQ0tfRk9SV0FSRF9MSVNUKGJhY2tGb3J3YXJkTGlzdCksIDApOwogCi0gICAgcmV0dXJuIHdl
YmtpdEJhY2tGb3J3YXJkTGlzdEdldE9yQ3JlYXRlSXRlbShiYWNrRm9yd2FyZExpc3QsIFdLQmFj
a0ZvcndhcmRMaXN0R2V0Q3VycmVudEl0ZW0oYmFja0ZvcndhcmRMaXN0LT5wcml2LT53a0xpc3Qp
KTsKKyAgICByZXR1cm4gd2Via2l0QmFja0ZvcndhcmRMaXN0R2V0T3JDcmVhdGVJdGVtKGJhY2tG
b3J3YXJkTGlzdCwgYmFja0ZvcndhcmRMaXN0LT5wcml2LT53ZWJMaXN0LT5jdXJyZW50SXRlbSgp
KTsKIH0KIAogLyoqCkBAIC0xOTEsNyArMTkxLDcgQEAgV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRl
bSogd2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2dldF9iYWNrX2l0ZW0oV2ViS2l0QmFja0ZvcncK
IHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfQkFDS19GT1JXQVJEX0xJU1Qo
YmFja0ZvcndhcmRMaXN0KSwgMCk7CiAKLSAgICByZXR1cm4gd2Via2l0QmFja0ZvcndhcmRMaXN0
R2V0T3JDcmVhdGVJdGVtKGJhY2tGb3J3YXJkTGlzdCwgV0tCYWNrRm9yd2FyZExpc3RHZXRCYWNr
SXRlbShiYWNrRm9yd2FyZExpc3QtPnByaXYtPndrTGlzdCkpOworICAgIHJldHVybiB3ZWJraXRC
YWNrRm9yd2FyZExpc3RHZXRPckNyZWF0ZUl0ZW0oYmFja0ZvcndhcmRMaXN0LCBiYWNrRm9yd2Fy
ZExpc3QtPnByaXYtPndlYkxpc3QtPmJhY2tJdGVtKCkpOwogfQogCiAvKioKQEAgLTIwNyw3ICsy
MDcsNyBAQCBXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtKiB3ZWJraXRfYmFja19mb3J3YXJkX2xp
c3RfZ2V0X2ZvcndhcmRfaXRlbShXZWJLaXRCYWNrRgogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKFdFQktJVF9JU19CQUNLX0ZPUldBUkRfTElTVChiYWNrRm9yd2FyZExpc3QpLCAwKTsKIAot
ICAgIHJldHVybiB3ZWJraXRCYWNrRm9yd2FyZExpc3RHZXRPckNyZWF0ZUl0ZW0oYmFja0Zvcndh
cmRMaXN0LCBXS0JhY2tGb3J3YXJkTGlzdEdldEZvcndhcmRJdGVtKGJhY2tGb3J3YXJkTGlzdC0+
cHJpdi0+d2tMaXN0KSk7CisgICAgcmV0dXJuIHdlYmtpdEJhY2tGb3J3YXJkTGlzdEdldE9yQ3Jl
YXRlSXRlbShiYWNrRm9yd2FyZExpc3QsIGJhY2tGb3J3YXJkTGlzdC0+cHJpdi0+d2ViTGlzdC0+
Zm9yd2FyZEl0ZW0oKSk7CiB9CiAKIC8qKgpAQCAtMjI0LDcgKzIyNCw3IEBAIFdlYktpdEJhY2tG
b3J3YXJkTGlzdEl0ZW0qIHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfbnRoX2l0ZW0oV2Vi
S2l0QmFja0ZvcndhCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0JBQ0tf
Rk9SV0FSRF9MSVNUKGJhY2tGb3J3YXJkTGlzdCksIDApOwogCi0gICAgcmV0dXJuIHdlYmtpdEJh
Y2tGb3J3YXJkTGlzdEdldE9yQ3JlYXRlSXRlbShiYWNrRm9yd2FyZExpc3QsIFdLQmFja0Zvcndh
cmRMaXN0R2V0SXRlbUF0SW5kZXgoYmFja0ZvcndhcmRMaXN0LT5wcml2LT53a0xpc3QsIGluZGV4
KSk7CisgICAgcmV0dXJuIHdlYmtpdEJhY2tGb3J3YXJkTGlzdEdldE9yQ3JlYXRlSXRlbShiYWNr
Rm9yd2FyZExpc3QsIGJhY2tGb3J3YXJkTGlzdC0+cHJpdi0+d2ViTGlzdC0+aXRlbUF0SW5kZXgo
aW5kZXgpKTsKIH0KIAogLyoqCkBAIC0yMzksNyArMjM5LDcgQEAgZ3VpbnQgd2Via2l0X2JhY2tf
Zm9yd2FyZF9saXN0X2dldF9sZW5ndGgoV2ViS2l0QmFja0ZvcndhcmRMaXN0KiBiYWNrRm9yd2Fy
ZExpc3QKIAogICAgIFdlYktpdEJhY2tGb3J3YXJkTGlzdFByaXZhdGUqIHByaXYgPSBiYWNrRm9y
d2FyZExpc3QtPnByaXY7CiAgICAgZ3VpbnQgY3VycmVudEl0ZW0gPSB3ZWJraXRfYmFja19mb3J3
YXJkX2xpc3RfZ2V0X2N1cnJlbnRfaXRlbShiYWNrRm9yd2FyZExpc3QpID8gMSA6IDA7Ci0gICAg
cmV0dXJuIFdLQmFja0ZvcndhcmRMaXN0R2V0QmFja0xpc3RDb3VudChwcml2LT53a0xpc3QpICsg
V0tCYWNrRm9yd2FyZExpc3RHZXRGb3J3YXJkTGlzdENvdW50KHByaXYtPndrTGlzdCkgKyBjdXJy
ZW50SXRlbTsKKyAgICByZXR1cm4gcHJpdi0+d2ViTGlzdC0+YmFja0xpc3RDb3VudCgpICsgcHJp
di0+d2ViTGlzdC0+Zm9yd2FyZExpc3RDb3VudCgpICsgY3VycmVudEl0ZW07CiB9CiAKIC8qKgpA
QCAtMjUzLDkgKzI1Myw3IEBAIEdMaXN0KiB3ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2Jh
Y2tfbGlzdChXZWJLaXRCYWNrRm9yd2FyZExpc3QqIGJhY2tGb3J3YXJkCiB7CiAgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0JBQ0tfRk9SV0FSRF9MSVNUKGJhY2tGb3J3YXJkTGlz
dCksIDApOwogCi0gICAgZ3VpbnQgbGltaXQgPSBXS0JhY2tGb3J3YXJkTGlzdEdldEJhY2tMaXN0
Q291bnQoYmFja0ZvcndhcmRMaXN0LT5wcml2LT53a0xpc3QpOwotICAgIFdLUmV0YWluUHRyPFdL
QXJyYXlSZWY+IHdrTGlzdChBZG9wdFdLLCBXS0JhY2tGb3J3YXJkTGlzdENvcHlCYWNrTGlzdFdp
dGhMaW1pdChiYWNrRm9yd2FyZExpc3QtPnByaXYtPndrTGlzdCwgbGltaXQpKTsKLSAgICByZXR1
cm4gd2Via2l0QmFja0ZvcndhcmRMaXN0Q3JlYXRlTGlzdChiYWNrRm9yd2FyZExpc3QsIHdrTGlz
dC5nZXQoKSk7CisgICAgcmV0dXJuIHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfYmFja19s
aXN0X3dpdGhfbGltaXQoYmFja0ZvcndhcmRMaXN0LCBiYWNrRm9yd2FyZExpc3QtPnByaXYtPndl
Ykxpc3QtPmJhY2tMaXN0Q291bnQoKSk7CiB9CiAKIC8qKgpAQCAtMjcwLDggKzI2OCw4IEBAIEdM
aXN0KiB3ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2JhY2tfbGlzdF93aXRoX2xpbWl0KFdl
YktpdEJhY2tGb3J3YXJkTGlzdCoKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRf
SVNfQkFDS19GT1JXQVJEX0xJU1QoYmFja0ZvcndhcmRMaXN0KSwgMCk7CiAKLSAgICBXS1JldGFp
blB0cjxXS0FycmF5UmVmPiB3a0xpc3QoQWRvcHRXSywgV0tCYWNrRm9yd2FyZExpc3RDb3B5QmFj
a0xpc3RXaXRoTGltaXQoYmFja0ZvcndhcmRMaXN0LT5wcml2LT53a0xpc3QsIGxpbWl0KSk7Ci0g
ICAgcmV0dXJuIHdlYmtpdEJhY2tGb3J3YXJkTGlzdENyZWF0ZUxpc3QoYmFja0ZvcndhcmRMaXN0
LCB3a0xpc3QuZ2V0KCkpOworICAgIFdlYktpdEJhY2tGb3J3YXJkTGlzdFByaXZhdGUqIHByaXYg
PSBiYWNrRm9yd2FyZExpc3QtPnByaXY7CisgICAgcmV0dXJuIHdlYmtpdEJhY2tGb3J3YXJkTGlz
dENyZWF0ZUxpc3QoYmFja0ZvcndhcmRMaXN0LCBwcml2LT53ZWJMaXN0LT5iYWNrTGlzdEFzSW1t
dXRhYmxlQXJyYXlXaXRoTGltaXQobGltaXQpLmxlYWtSZWYoKSk7CiB9CiAKIC8qKgpAQCAtMjg1
LDkgKzI4Myw3IEBAIEdMaXN0KiB3ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2ZvcndhcmRf
bGlzdChXZWJLaXRCYWNrRm9yd2FyZExpc3QqIGJhY2tGb3J3CiB7CiAgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0lTX0JBQ0tfRk9SV0FSRF9MSVNUKGJhY2tGb3J3YXJkTGlzdCksIDAp
OwogCi0gICAgZ3VpbnQgbGltaXQgPSBXS0JhY2tGb3J3YXJkTGlzdEdldEZvcndhcmRMaXN0Q291
bnQoYmFja0ZvcndhcmRMaXN0LT5wcml2LT53a0xpc3QpOwotICAgIFdLUmV0YWluUHRyPFdLQXJy
YXlSZWY+IHdrTGlzdChBZG9wdFdLLCBXS0JhY2tGb3J3YXJkTGlzdENvcHlGb3J3YXJkTGlzdFdp
dGhMaW1pdChiYWNrRm9yd2FyZExpc3QtPnByaXYtPndrTGlzdCwgbGltaXQpKTsKLSAgICByZXR1
cm4gd2Via2l0QmFja0ZvcndhcmRMaXN0Q3JlYXRlTGlzdChiYWNrRm9yd2FyZExpc3QsIHdrTGlz
dC5nZXQoKSk7CisgICAgcmV0dXJuIHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfZm9yd2Fy
ZF9saXN0X3dpdGhfbGltaXQoYmFja0ZvcndhcmRMaXN0LCBiYWNrRm9yd2FyZExpc3QtPnByaXYt
PndlYkxpc3QtPmZvcndhcmRMaXN0Q291bnQoKSk7CiB9CiAKIC8qKgpAQCAtMzAyLDYgKzI5OCw2
IEBAIEdMaXN0KiB3ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2ZvcndhcmRfbGlzdF93aXRo
X2xpbWl0KFdlYktpdEJhY2tGb3J3YXJkTGlzCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
V0VCS0lUX0lTX0JBQ0tfRk9SV0FSRF9MSVNUKGJhY2tGb3J3YXJkTGlzdCksIDApOwogCi0gICAg
V0tSZXRhaW5QdHI8V0tBcnJheVJlZj4gd2tMaXN0KEFkb3B0V0ssIFdLQmFja0ZvcndhcmRMaXN0
Q29weUZvcndhcmRMaXN0V2l0aExpbWl0KGJhY2tGb3J3YXJkTGlzdC0+cHJpdi0+d2tMaXN0LCBs
aW1pdCkpOwotICAgIHJldHVybiB3ZWJraXRCYWNrRm9yd2FyZExpc3RDcmVhdGVMaXN0KGJhY2tG
b3J3YXJkTGlzdCwgd2tMaXN0LmdldCgpKTsKKyAgICBXZWJLaXRCYWNrRm9yd2FyZExpc3RQcml2
YXRlKiBwcml2ID0gYmFja0ZvcndhcmRMaXN0LT5wcml2OworICAgIHJldHVybiB3ZWJraXRCYWNr
Rm9yd2FyZExpc3RDcmVhdGVMaXN0KGJhY2tGb3J3YXJkTGlzdCwgcHJpdi0+d2ViTGlzdC0+Zm9y
d2FyZExpc3RBc0ltbXV0YWJsZUFycmF5V2l0aExpbWl0KGxpbWl0KS5sZWFrUmVmKCkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0Zv
cndhcmRMaXN0SXRlbS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRCYWNrRm9yd2FyZExpc3RJdGVtLmNwcAppbmRleCBjNmE0YjU5Li44YjIyYWZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2FyZExp
c3RJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRC
YWNrRm9yd2FyZExpc3RJdGVtLmNwcApAQCAtMjksNyArMjksNyBAQAogdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKIAogc3RydWN0IF9XZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZSB7Ci0g
ICAgV0tSZXRhaW5QdHI8V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmPiB3a0xpc3RJdGVtOworICAg
IFJlZlB0cjxXZWJCYWNrRm9yd2FyZExpc3RJdGVtPiB3ZWJMaXN0SXRlbTsKICAgICBDU3RyaW5n
IHVyaTsKICAgICBDU3RyaW5nIHRpdGxlOwogICAgIENTdHJpbmcgb3JpZ2luYWxVUkk7CkBAIC01
OSw3ICs1OSw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX2Ns
YXNzX2luaXQoV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbUNsCiAgICAgZ190eXBlX2NsYXNzX2Fk
ZF9wcml2YXRlKGxpc3RJdGVtQ2xhc3MsIHNpemVvZihXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVt
UHJpdmF0ZSkpOwogfQogCi10eXBlZGVmIEhhc2hNYXA8V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVm
LCBXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtKj4gSGlzdG9yeUl0ZW1zTWFwOwordHlwZWRlZiBI
YXNoTWFwPFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qLCBXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVt
Kj4gSGlzdG9yeUl0ZW1zTWFwOwogCiBzdGF0aWMgSGlzdG9yeUl0ZW1zTWFwJiBoaXN0b3J5SXRl
bXNNYXAoKQogewpAQCAtNjcsMzQgKzY3LDMzIEBAIHN0YXRpYyBIaXN0b3J5SXRlbXNNYXAmIGhp
c3RvcnlJdGVtc01hcCgpCiAgICAgcmV0dXJuIGl0ZW1zTWFwOwogfQogCi1zdGF0aWMgdm9pZCB3
ZWJraXRCYWNrRm9yd2FyZExpc3RJdGVtRmluYWxpemVkKGdwb2ludGVyIHdrTGlzdEl0ZW0sIEdP
YmplY3QqIGZpbmFsaXplZExpc3RJdGVtKQorc3RhdGljIHZvaWQgd2Via2l0QmFja0ZvcndhcmRM
aXN0SXRlbUZpbmFsaXplZChncG9pbnRlciB3ZWJMaXN0SXRlbSwgR09iamVjdCogZmluYWxpemVk
TGlzdEl0ZW0pCiB7Ci0gICAgQVNTRVJUKEdfT0JKRUNUKGhpc3RvcnlJdGVtc01hcCgpLmdldChz
dGF0aWNfY2FzdDxXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWY+KHdrTGlzdEl0ZW0pKSkgPT0gZmlu
YWxpemVkTGlzdEl0ZW0pOwotICAgIGhpc3RvcnlJdGVtc01hcCgpLnJlbW92ZShzdGF0aWNfY2Fz
dDxXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWY+KHdrTGlzdEl0ZW0pKTsKKyAgICBBU1NFUlQoR19P
QkpFQ1QoaGlzdG9yeUl0ZW1zTWFwKCkuZ2V0KHN0YXRpY19jYXN0PFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0qPih3ZWJMaXN0SXRlbSkpKSA9PSBmaW5hbGl6ZWRMaXN0SXRlbSk7CisgICAgaGlzdG9y
eUl0ZW1zTWFwKCkucmVtb3ZlKHN0YXRpY19jYXN0PFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qPih3
ZWJMaXN0SXRlbSkpOwogfQogCi1XZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtKiB3ZWJraXRCYWNr
Rm9yd2FyZExpc3RJdGVtR2V0T3JDcmVhdGUoV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIHdrTGlz
dEl0ZW0pCitXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtKiB3ZWJraXRCYWNrRm9yd2FyZExpc3RJ
dGVtR2V0T3JDcmVhdGUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogd2ViTGlzdEl0ZW0pCiB7Ci0g
ICAgaWYgKCF3a0xpc3RJdGVtKQorICAgIGlmICghd2ViTGlzdEl0ZW0pCiAgICAgICAgIHJldHVy
biAwOwogCi0gICAgV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbSogbGlzdEl0ZW0gPSBoaXN0b3J5
SXRlbXNNYXAoKS5nZXQod2tMaXN0SXRlbSk7CisgICAgV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRl
bSogbGlzdEl0ZW0gPSBoaXN0b3J5SXRlbXNNYXAoKS5nZXQod2ViTGlzdEl0ZW0pOwogICAgIGlm
IChsaXN0SXRlbSkKICAgICAgICAgcmV0dXJuIGxpc3RJdGVtOwogCiAgICAgbGlzdEl0ZW0gPSBX
RUJLSVRfQkFDS19GT1JXQVJEX0xJU1RfSVRFTShnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfQkFD
S19GT1JXQVJEX0xJU1RfSVRFTSwgTlVMTCkpOwotICAgIGxpc3RJdGVtLT5wcml2LT53a0xpc3RJ
dGVtID0gd2tMaXN0SXRlbTsKKyAgICBsaXN0SXRlbS0+cHJpdi0+d2ViTGlzdEl0ZW0gPSB3ZWJM
aXN0SXRlbTsKIAotICAgIGdfb2JqZWN0X3dlYWtfcmVmKEdfT0JKRUNUKGxpc3RJdGVtKSwgd2Vi
a2l0QmFja0ZvcndhcmRMaXN0SXRlbUZpbmFsaXplZCwKLSAgICAgICAgICAgICAgICAgICAgICBj
b25zdF9jYXN0PE9wYXF1ZVdLQmFja0ZvcndhcmRMaXN0SXRlbSo+KHdrTGlzdEl0ZW0pKTsKLSAg
ICBoaXN0b3J5SXRlbXNNYXAoKS5zZXQod2tMaXN0SXRlbSwgbGlzdEl0ZW0pOworICAgIGdfb2Jq
ZWN0X3dlYWtfcmVmKEdfT0JKRUNUKGxpc3RJdGVtKSwgd2Via2l0QmFja0ZvcndhcmRMaXN0SXRl
bUZpbmFsaXplZCwgd2ViTGlzdEl0ZW0pOworICAgIGhpc3RvcnlJdGVtc01hcCgpLnNldCh3ZWJM
aXN0SXRlbSwgbGlzdEl0ZW0pOwogCiAgICAgcmV0dXJuIGxpc3RJdGVtOwogfQogCi1XS0JhY2tG
b3J3YXJkTGlzdEl0ZW1SZWYgd2Via2l0QmFja0ZvcndhcmRMaXN0SXRlbUdldFdLSXRlbShXZWJL
aXRCYWNrRm9yd2FyZExpc3RJdGVtKiBsaXN0SXRlbSkKK1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0q
IHdlYmtpdEJhY2tGb3J3YXJkTGlzdEl0ZW1HZXRJdGVtKFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0
ZW0qIGxpc3RJdGVtKQogewotICAgIHJldHVybiBsaXN0SXRlbS0+cHJpdi0+d2tMaXN0SXRlbS5n
ZXQoKTsKKyAgICByZXR1cm4gbGlzdEl0ZW0tPnByaXYtPndlYkxpc3RJdGVtLmdldCgpOwogfQog
CiAvKioKQEAgLTExMywxMSArMTEyLDExIEBAIGNvbnN0IGdjaGFyKiB3ZWJraXRfYmFja19mb3J3
YXJkX2xpc3RfaXRlbV9nZXRfdXJpKFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0qIGxpCiAgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0JBQ0tfRk9SV0FSRF9MSVNUX0lURU0obGlz
dEl0ZW0pLCAwKTsKIAogICAgIFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW1Qcml2YXRlKiBwcml2
ID0gbGlzdEl0ZW0tPnByaXY7Ci0gICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHdrVVJJKEFkb3B0
V0ssIFdLQmFja0ZvcndhcmRMaXN0SXRlbUNvcHlVUkwocHJpdi0+d2tMaXN0SXRlbS5nZXQoKSkp
OwotICAgIGlmICh0b0ltcGwod2tVUkkuZ2V0KCkpLT5zdHJpbmcoKS5pc0VtcHR5KCkpCisgICAg
U3RyaW5nIHVybCA9IHByaXYtPndlYkxpc3RJdGVtLT51cmwoKTsKKyAgICBpZiAodXJsLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBwcml2LT51cmkgPSB0b0ltcGwod2tVUkku
Z2V0KCkpLT5zdHJpbmcoKS51dGY4KCk7CisgICAgcHJpdi0+dXJpID0gdXJsLnV0ZjgoKTsKICAg
ICByZXR1cm4gcHJpdi0+dXJpLmRhdGEoKTsKIH0KIApAQCAtMTMzLDExICsxMzIsMTEgQEAgY29u
c3QgZ2NoYXIqIHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX2dldF90aXRsZShXZWJLaXRC
YWNrRm9yd2FyZExpc3RJdGVtKgogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19C
QUNLX0ZPUldBUkRfTElTVF9JVEVNKGxpc3RJdGVtKSwgMCk7CiAKICAgICBXZWJLaXRCYWNrRm9y
d2FyZExpc3RJdGVtUHJpdmF0ZSogcHJpdiA9IGxpc3RJdGVtLT5wcml2OwotICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiB3a1RpdGxlKEFkb3B0V0ssIFdLQmFja0ZvcndhcmRMaXN0SXRlbUNv
cHlUaXRsZShwcml2LT53a0xpc3RJdGVtLmdldCgpKSk7Ci0gICAgaWYgKHRvSW1wbCh3a1RpdGxl
LmdldCgpKS0+c3RyaW5nKCkuaXNFbXB0eSgpKQorICAgIFN0cmluZyB0aXRsZSA9IHByaXYtPndl
Ykxpc3RJdGVtLT50aXRsZSgpOworICAgIGlmICh0aXRsZS5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybiAwOwogCi0gICAgcHJpdi0+dGl0bGUgPSB0b0ltcGwod2tUaXRsZS5nZXQoKSktPnN0cmlu
ZygpLnV0ZjgoKTsKKyAgICBwcml2LT50aXRsZSA9IHRpdGxlLnV0ZjgoKTsKICAgICByZXR1cm4g
cHJpdi0+dGl0bGUuZGF0YSgpOwogfQogCkBAIC0xNTUsMTAgKzE1NCwxMCBAQCBjb25zdCBnY2hh
ciogd2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fZ2V0X29yaWdpbmFsX3VyaShXZWJLaXRC
YWNrRm9yd2FyZExpcwogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19CQUNLX0ZP
UldBUkRfTElTVF9JVEVNKGxpc3RJdGVtKSwgMCk7CiAKICAgICBXZWJLaXRCYWNrRm9yd2FyZExp
c3RJdGVtUHJpdmF0ZSogcHJpdiA9IGxpc3RJdGVtLT5wcml2OwotICAgIFdLUmV0YWluUHRyPFdL
VVJMUmVmPiB3a09yaWdpbmFsVVJJKEFkb3B0V0ssIFdLQmFja0ZvcndhcmRMaXN0SXRlbUNvcHlP
cmlnaW5hbFVSTChwcml2LT53a0xpc3RJdGVtLmdldCgpKSk7Ci0gICAgaWYgKHRvSW1wbCh3a09y
aWdpbmFsVVJJLmdldCgpKS0+c3RyaW5nKCkuaXNFbXB0eSgpKQorICAgIFN0cmluZyBvcmlnaW5h
bFVSTCA9IHByaXYtPndlYkxpc3RJdGVtLT5vcmlnaW5hbFVSTCgpOworICAgIGlmIChvcmlnaW5h
bFVSTC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcHJpdi0+b3JpZ2luYWxV
UkkgPSB0b0ltcGwod2tPcmlnaW5hbFVSSS5nZXQoKSktPnN0cmluZygpLnV0ZjgoKTsKKyAgICBw
cml2LT5vcmlnaW5hbFVSSSA9IG9yaWdpbmFsVVJMLnV0ZjgoKTsKICAgICByZXR1cm4gcHJpdi0+
b3JpZ2luYWxVUkkuZGF0YSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0UHJpdmF0ZS5oCmluZGV4
IDMzM2U2OGQuLmUzZWM3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEJhY2tGb3J3YXJkTGlzdFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2FyZExpc3RQcml2YXRlLmgKQEAgLTI4
LDExICsyOCwxMiBAQAogCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCiAjaW5jbHVk
ZSAiV2ViS2l0QmFja0ZvcndhcmRMaXN0LmgiCi0jaW5jbHVkZSA8V2ViS2l0Mi9XZWJLaXQyX0Mu
aD4KIAotV2ViS2l0QmFja0ZvcndhcmRMaXN0KiB3ZWJraXRCYWNrRm9yd2FyZExpc3RDcmVhdGUo
V0tCYWNrRm9yd2FyZExpc3RSZWYpOwotV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbSogd2Via2l0
QmFja0ZvcndhcmRMaXN0SXRlbUdldE9yQ3JlYXRlKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZik7
Ci1XS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgd2Via2l0QmFja0ZvcndhcmRMaXN0SXRlbUdldFdL
SXRlbShXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtKik7Ci12b2lkIHdlYmtpdEJhY2tGb3J3YXJk
TGlzdENoYW5nZWQoV2ViS2l0QmFja0ZvcndhcmRMaXN0KiwgV0tCYWNrRm9yd2FyZExpc3RJdGVt
UmVmIHdrQWRkZWRJdGVtLCBXS0FycmF5UmVmIHdrUmVtb3ZlZEl0ZW1zKTsKK3VzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CisKK1dlYktpdEJhY2tGb3J3YXJkTGlzdCogd2Via2l0QmFja0ZvcndhcmRM
aXN0Q3JlYXRlKFdlYkJhY2tGb3J3YXJkTGlzdCopOworV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRl
bSogd2Via2l0QmFja0ZvcndhcmRMaXN0SXRlbUdldE9yQ3JlYXRlKFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0qKTsKK1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHdlYmtpdEJhY2tGb3J3YXJkTGlzdEl0
ZW1HZXRJdGVtKFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0qKTsKK3ZvaWQgd2Via2l0QmFja0Zv
cndhcmRMaXN0Q2hhbmdlZChXZWJLaXRCYWNrRm9yd2FyZExpc3QqLCBXZWJCYWNrRm9yd2FyZExp
c3RJdGVtKiB3ZWJBZGRlZEl0ZW0sIEltbXV0YWJsZUFycmF5KiB3ZWJSZW1vdmVkSXRlbXMpOwog
CiAjZW5kaWYgLy8gV2ViS2l0QmFja0ZvcndhcmRMaXN0UHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcApp
bmRleCA2YzNiZjkyLi5kYWMwZWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAKQEAgLTExMiw3ICsxMTIsNyBA
QCBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VQcm9ncmVzcyhXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKIAogc3RhdGljIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdL
UGFnZVJlZiBwYWdlLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgYWRkZWRJdGVtLCBXS0FycmF5
UmVmIHJlbW92ZWRJdGVtcywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKLSAgICB3ZWJraXRC
YWNrRm9yd2FyZExpc3RDaGFuZ2VkKHdlYmtpdF93ZWJfdmlld19nZXRfYmFja19mb3J3YXJkX2xp
c3QoV0VCS0lUX1dFQl9WSUVXKGNsaWVudEluZm8pKSwgYWRkZWRJdGVtLCByZW1vdmVkSXRlbXMp
OworICAgIHdlYmtpdEJhY2tGb3J3YXJkTGlzdENoYW5nZWQod2Via2l0X3dlYl92aWV3X2dldF9i
YWNrX2ZvcndhcmRfbGlzdChXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbykpLCB0b0ltcGwoYWRk
ZWRJdGVtKSwgdG9JbXBsKHJlbW92ZWRJdGVtcykpOwogfQogCiB2b2lkIGF0dGFjaExvYWRlckNs
aWVudFRvVmlldyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCBmMzdlNDMwLi5iNmI0
OGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3LmNwcApAQCAtMzM2LDcgKzMzNiw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdD
b25zdHJ1Y3RlZChHT2JqZWN0KiBvYmplY3QpCiAgICAgYXR0YWNoQ29udGV4dE1lbnVDbGllbnRU
b1ZpZXcod2ViVmlldyk7CiAgICAgYXR0YWNoRm9ybUNsaWVudFRvVmlldyh3ZWJWaWV3KTsKIAot
ICAgIHByaXYtPmJhY2tGb3J3YXJkTGlzdCA9IGFkb3B0R1JlZih3ZWJraXRCYWNrRm9yd2FyZExp
c3RDcmVhdGUodG9BUEkoZ2V0UGFnZSh3ZWJWaWV3KS0+YmFja0ZvcndhcmRMaXN0KCkpKSk7Cisg
ICAgcHJpdi0+YmFja0ZvcndhcmRMaXN0ID0gYWRvcHRHUmVmKHdlYmtpdEJhY2tGb3J3YXJkTGlz
dENyZWF0ZShnZXRQYWdlKHdlYlZpZXcpLT5iYWNrRm9yd2FyZExpc3QoKSkpOwogCiAgICAgR1Jl
ZlB0cjxXZWJLaXRTZXR0aW5ncz4gc2V0dGluZ3MgPSBhZG9wdEdSZWYod2Via2l0X3NldHRpbmdz
X25ldygpKTsKICAgICB3ZWJraXRXZWJWaWV3U2V0U2V0dGluZ3Mod2ViVmlldywgc2V0dGluZ3Mu
Z2V0KCkpOwpAQCAtMTg2OSw3ICsxODY5LDcgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfZ29fdG9f
YmFja19mb3J3YXJkX2xpc3RfaXRlbShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXQKICAg
ICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CiAgICAgZ19y
ZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfQkFDS19GT1JXQVJEX0xJU1RfSVRFTShsaXN0SXRlbSkp
OwogCi0gICAgZ2V0UGFnZSh3ZWJWaWV3KS0+Z29Ub0JhY2tGb3J3YXJkSXRlbSh0b0ltcGwod2Vi
a2l0QmFja0ZvcndhcmRMaXN0SXRlbUdldFdLSXRlbShsaXN0SXRlbSkpKTsKKyAgICBnZXRQYWdl
KHdlYlZpZXcpLT5nb1RvQmFja0ZvcndhcmRJdGVtKHdlYmtpdEJhY2tGb3J3YXJkTGlzdEl0ZW1H
ZXRJdGVtKGxpc3RJdGVtKSk7CiAgICAgd2Via2l0V2ViVmlld1VwZGF0ZVVSSSh3ZWJWaWV3KTsK
IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166481</attachid>
            <date>2012-10-01 08:42:39 -0700</date>
            <delta_ts>2012-10-17 05:33:21 -0700</delta_ts>
            <desc>Updated patch to apply on current git master</desc>
            <filename>wk2-kill-c-api-bf-list2.diff</filename>
            <type>text/plain</type>
            <size>19554</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwZGExNzRhLi4zMGU3NjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQg
QEAKKzIwMTItMTAtMDEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIERvbid0IHVzZSB0aGUgQyBBUEkgaW50ZXJuYWxseSBpbiBXZWJL
aXRCYWNrRm9yd2FyZExpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk2NzY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXNpbmcgdGhlIEMrKyBjbGFzc2VzIGRpcmVjdGx5IGluc3RlYWQgb2YgdGhlIEMg
QVBJIHdyYXBwZXJzIHdlCisgICAgICAgIGF2b2lkIGEgbG90IG9mIHRvSW1wbC90b0FQSSBjYXN0
cywgc3RyaW5nIGNvbnZlcnNpb25zIGFuZAorICAgICAgICBhbGxvY2F0aW9ucy4gVGhlIGNvZGUg
aXMgYWxzbyBhIGxvdCBzaW1wbGVyIGFuZCBlYXNpZXIgdG8gcmVhZC4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhY2tGb3J3YXJkTGlzdC5jcHA6CisgICAgICAgIChfV2Vi
S2l0QmFja0ZvcndhcmRMaXN0UHJpdmF0ZSk6CisgICAgICAgICh3ZWJraXRCYWNrRm9yd2FyZExp
c3RHZXRPckNyZWF0ZUl0ZW0pOgorICAgICAgICAod2Via2l0QmFja0ZvcndhcmRMaXN0Q3JlYXRl
TGlzdCk6CisgICAgICAgICh3ZWJraXRCYWNrRm9yd2FyZExpc3RDcmVhdGUpOgorICAgICAgICAo
d2Via2l0QmFja0ZvcndhcmRMaXN0Q2hhbmdlZCk6CisgICAgICAgICh3ZWJraXRfYmFja19mb3J3
YXJkX2xpc3RfZ2V0X2N1cnJlbnRfaXRlbSk6CisgICAgICAgICh3ZWJraXRfYmFja19mb3J3YXJk
X2xpc3RfZ2V0X2JhY2tfaXRlbSk6CisgICAgICAgICh3ZWJraXRfYmFja19mb3J3YXJkX2xpc3Rf
Z2V0X2ZvcndhcmRfaXRlbSk6CisgICAgICAgICh3ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfZ2V0
X250aF9pdGVtKToKKyAgICAgICAgKHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfbGVuZ3Ro
KToKKyAgICAgICAgKHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfYmFja19saXN0KToKKyAg
ICAgICAgKHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfYmFja19saXN0X3dpdGhfbGltaXQp
OgorICAgICAgICAod2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2dldF9mb3J3YXJkX2xpc3QpOgor
ICAgICAgICAod2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2dldF9mb3J3YXJkX2xpc3Rfd2l0aF9s
aW1pdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0
SXRlbS5jcHA6CisgICAgICAgIChfV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUpOgor
ICAgICAgICAod2Via2l0QmFja0ZvcndhcmRMaXN0SXRlbUZpbmFsaXplZCk6CisgICAgICAgICh3
ZWJraXRCYWNrRm9yd2FyZExpc3RJdGVtR2V0T3JDcmVhdGUpOgorICAgICAgICAod2Via2l0QmFj
a0ZvcndhcmRMaXN0SXRlbUdldEl0ZW0pOgorICAgICAgICAod2Via2l0X2JhY2tfZm9yd2FyZF9s
aXN0X2l0ZW1fZ2V0X3VyaSk6CisgICAgICAgICh3ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfaXRl
bV9nZXRfdGl0bGUpOgorICAgICAgICAod2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fZ2V0
X29yaWdpbmFsX3VyaSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0Zv
cndhcmRMaXN0UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExv
YWRlckNsaWVudC5jcHA6CisgICAgICAgIChkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwOgorICAgICAgICAod2Vi
a2l0V2ViVmlld0NvbnN0cnVjdGVkKToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nb190b19i
YWNrX2ZvcndhcmRfbGlzdF9pdGVtKToKKwogMjAxMi0wOS0yNyAgSm9jZWx5biBUdXJjb3R0ZSAg
PGpvY2VseW4udHVyY290dGVAZGlnaWEuY29tPgogCiAgICAgICAgIFtRdF0gRml4IHZpZXdwb3J0
IFFNTCBhdXRvIHRlc3RzIGFmdGVyIHRoZSB2aWV3cG9ydCBjaGFuZ2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2FyZExpc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0
LmNwcAppbmRleCBlYmViOTIwLi5lY2E0MTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2FyZExpc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhY2tGb3J3YXJkTGlzdC5jcHAKQEAgLTUy
LDEwICs1MiwxMCBAQCBlbnVtIHsKICAgICBMQVNUX1NJR05BTAogfTsKIAotdHlwZWRlZiBIYXNo
TWFwPFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiwgR1JlZlB0cjxXZWJLaXRCYWNrRm9yd2FyZExp
c3RJdGVtPiA+IEJhY2tGb3J3YXJkTGlzdEl0ZW1zTWFwOwordHlwZWRlZiBIYXNoTWFwPFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0qLCBHUmVmUHRyPFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0+ID4g
QmFja0ZvcndhcmRMaXN0SXRlbXNNYXA7CiAKIHN0cnVjdCBfV2ViS2l0QmFja0ZvcndhcmRMaXN0
UHJpdmF0ZSB7Ci0gICAgV0tCYWNrRm9yd2FyZExpc3RSZWYgd2tMaXN0OworICAgIFdlYkJhY2tG
b3J3YXJkTGlzdCogd2ViTGlzdDsKICAgICBCYWNrRm9yd2FyZExpc3RJdGVtc01hcCBpdGVtc01h
cDsKIH07CiAKQEAgLTEwNyw1NSArMTA3LDU1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9iYWNrX2Zv
cndhcmRfbGlzdF9jbGFzc19pbml0KFdlYktpdEJhY2tGb3J3YXJkTGlzdENsYXNzKiBsaXN0CiAg
ICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKGxpc3RDbGFzcywgc2l6ZW9mKFdlYktpdEJhY2tG
b3J3YXJkTGlzdFByaXZhdGUpKTsKIH0KIAotc3RhdGljIFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0
ZW0qIHdlYmtpdEJhY2tGb3J3YXJkTGlzdEdldE9yQ3JlYXRlSXRlbShXZWJLaXRCYWNrRm9yd2Fy
ZExpc3QqIGxpc3QsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiB3a0xpc3RJdGVtKQorc3RhdGlj
IFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0qIHdlYmtpdEJhY2tGb3J3YXJkTGlzdEdldE9yQ3Jl
YXRlSXRlbShXZWJLaXRCYWNrRm9yd2FyZExpc3QqIGxpc3QsIFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0qIHdlYkxpc3RJdGVtKQogewotICAgIGlmICghd2tMaXN0SXRlbSkKKyAgICBpZiAoIXdlYkxp
c3RJdGVtKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFdlYktpdEJhY2tGb3J3YXJkTGlzdFBy
aXZhdGUqIHByaXYgPSBsaXN0LT5wcml2OwotICAgIEdSZWZQdHI8V2ViS2l0QmFja0ZvcndhcmRM
aXN0SXRlbT4gbGlzdEl0ZW0gPSBwcml2LT5pdGVtc01hcC5nZXQod2tMaXN0SXRlbSk7CisgICAg
R1JlZlB0cjxXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtPiBsaXN0SXRlbSA9IHByaXYtPml0ZW1z
TWFwLmdldCh3ZWJMaXN0SXRlbSk7CiAgICAgaWYgKGxpc3RJdGVtKQogICAgICAgICByZXR1cm4g
bGlzdEl0ZW0uZ2V0KCk7CiAKLSAgICBsaXN0SXRlbSA9IHdlYmtpdEJhY2tGb3J3YXJkTGlzdEl0
ZW1HZXRPckNyZWF0ZSh3a0xpc3RJdGVtKTsKLSAgICBwcml2LT5pdGVtc01hcC5zZXQod2tMaXN0
SXRlbSwgbGlzdEl0ZW0pOworICAgIGxpc3RJdGVtID0gd2Via2l0QmFja0ZvcndhcmRMaXN0SXRl
bUdldE9yQ3JlYXRlKHdlYkxpc3RJdGVtKTsKKyAgICBwcml2LT5pdGVtc01hcC5zZXQod2ViTGlz
dEl0ZW0sIGxpc3RJdGVtKTsKIAogICAgIHJldHVybiBsaXN0SXRlbS5nZXQoKTsKIH0KIAotc3Rh
dGljIEdMaXN0KiB3ZWJraXRCYWNrRm9yd2FyZExpc3RDcmVhdGVMaXN0KFdlYktpdEJhY2tGb3J3
YXJkTGlzdCogbGlzdCwgV0tBcnJheVJlZiB3a0xpc3QpCitzdGF0aWMgR0xpc3QqIHdlYmtpdEJh
Y2tGb3J3YXJkTGlzdENyZWF0ZUxpc3QoV2ViS2l0QmFja0ZvcndhcmRMaXN0KiBsaXN0LCBJbW11
dGFibGVBcnJheSogd2ViTGlzdCkKIHsKLSAgICBpZiAoIXdrTGlzdCkKKyAgICBpZiAoIXdlYkxp
c3QpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgR0xpc3QqIHJldHVyblZhbHVlID0gMDsKLSAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdLQXJyYXlHZXRTaXplKHdrTGlzdCk7ICsraSkgewot
ICAgICAgICBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgd2tJdGVtID0gc3RhdGljX2Nhc3Q8V0tC
YWNrRm9yd2FyZExpc3RJdGVtUmVmPihXS0FycmF5R2V0SXRlbUF0SW5kZXgod2tMaXN0LCBpKSk7
Ci0gICAgICAgIHJldHVyblZhbHVlID0gZ19saXN0X3ByZXBlbmQocmV0dXJuVmFsdWUsIHdlYmtp
dEJhY2tGb3J3YXJkTGlzdEdldE9yQ3JlYXRlSXRlbShsaXN0LCB3a0l0ZW0pKTsKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHdlYkxpc3QtPnNpemUoKTsgKytpKSB7CisgICAgICAgIFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0qIHdlYkl0ZW0gPSBzdGF0aWNfY2FzdDxXZWJCYWNrRm9yd2FyZExp
c3RJdGVtKj4od2ViTGlzdC0+YXQoaSkpOworICAgICAgICByZXR1cm5WYWx1ZSA9IGdfbGlzdF9w
cmVwZW5kKHJldHVyblZhbHVlLCB3ZWJraXRCYWNrRm9yd2FyZExpc3RHZXRPckNyZWF0ZUl0ZW0o
bGlzdCwgd2ViSXRlbSkpOwogICAgIH0KIAogICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIH0KIAot
V2ViS2l0QmFja0ZvcndhcmRMaXN0KiB3ZWJraXRCYWNrRm9yd2FyZExpc3RDcmVhdGUoV0tCYWNr
Rm9yd2FyZExpc3RSZWYgd2tMaXN0KQorV2ViS2l0QmFja0ZvcndhcmRMaXN0KiB3ZWJraXRCYWNr
Rm9yd2FyZExpc3RDcmVhdGUoV2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJMaXN0KQogewogICAgIFdl
YktpdEJhY2tGb3J3YXJkTGlzdCogbGlzdCA9IFdFQktJVF9CQUNLX0ZPUldBUkRfTElTVChnX29i
amVjdF9uZXcoV0VCS0lUX1RZUEVfQkFDS19GT1JXQVJEX0xJU1QsIE5VTEwpKTsKLSAgICBsaXN0
LT5wcml2LT53a0xpc3QgPSB3a0xpc3Q7CisgICAgbGlzdC0+cHJpdi0+d2ViTGlzdCA9IHdlYkxp
c3Q7CiAKICAgICByZXR1cm4gbGlzdDsKIH0KIAotdm9pZCB3ZWJraXRCYWNrRm9yd2FyZExpc3RD
aGFuZ2VkKFdlYktpdEJhY2tGb3J3YXJkTGlzdCogYmFja0ZvcndhcmRMaXN0LCBXS0JhY2tGb3J3
YXJkTGlzdEl0ZW1SZWYgd2tBZGRlZEl0ZW0sIFdLQXJyYXlSZWYgd2tSZW1vdmVkSXRlbXMpCit2
b2lkIHdlYmtpdEJhY2tGb3J3YXJkTGlzdENoYW5nZWQoV2ViS2l0QmFja0ZvcndhcmRMaXN0KiBi
YWNrRm9yd2FyZExpc3QsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHdlYkFkZGVkSXRlbSwgSW1t
dXRhYmxlQXJyYXkqIHdlYlJlbW92ZWRJdGVtcykKIHsKLSAgICBXZWJLaXRCYWNrRm9yd2FyZExp
c3RJdGVtKiBhZGRlZEl0ZW0gPSB3ZWJraXRCYWNrRm9yd2FyZExpc3RHZXRPckNyZWF0ZUl0ZW0o
YmFja0ZvcndhcmRMaXN0LCB3a0FkZGVkSXRlbSk7CisgICAgV2ViS2l0QmFja0ZvcndhcmRMaXN0
SXRlbSogYWRkZWRJdGVtID0gd2Via2l0QmFja0ZvcndhcmRMaXN0R2V0T3JDcmVhdGVJdGVtKGJh
Y2tGb3J3YXJkTGlzdCwgd2ViQWRkZWRJdGVtKTsKICAgICBHTGlzdCogcmVtb3ZlZEl0ZW1zID0g
MDsKIAotICAgIHNpemVfdCByZW1vdmVkSXRlbXNTaXplID0gd2tSZW1vdmVkSXRlbXMgPyBXS0Fy
cmF5R2V0U2l6ZSh3a1JlbW92ZWRJdGVtcykgOiAwOworICAgIHNpemVfdCByZW1vdmVkSXRlbXNT
aXplID0gd2ViUmVtb3ZlZEl0ZW1zID8gd2ViUmVtb3ZlZEl0ZW1zLT5zaXplKCkgOiAwOwogICAg
IFdlYktpdEJhY2tGb3J3YXJkTGlzdFByaXZhdGUqIHByaXYgPSBiYWNrRm9yd2FyZExpc3QtPnBy
aXY7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZW1vdmVkSXRlbXNTaXplOyArK2kpIHsK
LSAgICAgICAgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIHdrSXRlbSA9IHN0YXRpY19jYXN0PFdL
QmFja0ZvcndhcmRMaXN0SXRlbVJlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4KHdrUmVtb3ZlZEl0
ZW1zLCBpKSk7Ci0gICAgICAgIHJlbW92ZWRJdGVtcyA9IGdfbGlzdF9wcmVwZW5kKHJlbW92ZWRJ
dGVtcywgZ19vYmplY3RfcmVmKEdfT0JKRUNUKHByaXYtPml0ZW1zTWFwLmdldCh3a0l0ZW0pLmdl
dCgpKSkpOwotICAgICAgICBwcml2LT5pdGVtc01hcC5yZW1vdmUod2tJdGVtKTsKKyAgICAgICAg
V2ViQmFja0ZvcndhcmRMaXN0SXRlbSogd2ViSXRlbSA9IHN0YXRpY19jYXN0PFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0qPih3ZWJSZW1vdmVkSXRlbXMtPmF0KGkpKTsKKyAgICAgICAgcmVtb3ZlZEl0
ZW1zID0gZ19saXN0X3ByZXBlbmQocmVtb3ZlZEl0ZW1zLCBnX29iamVjdF9yZWYoR19PQkpFQ1Qo
cHJpdi0+aXRlbXNNYXAuZ2V0KHdlYkl0ZW0pLmdldCgpKSkpOworICAgICAgICBwcml2LT5pdGVt
c01hcC5yZW1vdmUod2ViSXRlbSk7CiAgICAgfQogCiAgICAgZ19zaWduYWxfZW1pdChiYWNrRm9y
d2FyZExpc3QsIHNpZ25hbHNbQ0hBTkdFRF0sIDAsIGFkZGVkSXRlbSwgcmVtb3ZlZEl0ZW1zLCBO
VUxMKTsKQEAgLTE3NSw3ICsxNzUsNyBAQCBXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtKiB3ZWJr
aXRfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2N1cnJlbnRfaXRlbShXZWJLaXRCYWNrRgogewogICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19CQUNLX0ZPUldBUkRfTElTVChiYWNrRm9y
d2FyZExpc3QpLCAwKTsKIAotICAgIHJldHVybiB3ZWJraXRCYWNrRm9yd2FyZExpc3RHZXRPckNy
ZWF0ZUl0ZW0oYmFja0ZvcndhcmRMaXN0LCBXS0JhY2tGb3J3YXJkTGlzdEdldEN1cnJlbnRJdGVt
KGJhY2tGb3J3YXJkTGlzdC0+cHJpdi0+d2tMaXN0KSk7CisgICAgcmV0dXJuIHdlYmtpdEJhY2tG
b3J3YXJkTGlzdEdldE9yQ3JlYXRlSXRlbShiYWNrRm9yd2FyZExpc3QsIGJhY2tGb3J3YXJkTGlz
dC0+cHJpdi0+d2ViTGlzdC0+Y3VycmVudEl0ZW0oKSk7CiB9CiAKIC8qKgpAQCAtMTkxLDcgKzE5
MSw3IEBAIFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0qIHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlz
dF9nZXRfYmFja19pdGVtKFdlYktpdEJhY2tGb3J3CiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0lTX0JBQ0tfRk9SV0FSRF9MSVNUKGJhY2tGb3J3YXJkTGlzdCksIDApOwogCi0g
ICAgcmV0dXJuIHdlYmtpdEJhY2tGb3J3YXJkTGlzdEdldE9yQ3JlYXRlSXRlbShiYWNrRm9yd2Fy
ZExpc3QsIFdLQmFja0ZvcndhcmRMaXN0R2V0QmFja0l0ZW0oYmFja0ZvcndhcmRMaXN0LT5wcml2
LT53a0xpc3QpKTsKKyAgICByZXR1cm4gd2Via2l0QmFja0ZvcndhcmRMaXN0R2V0T3JDcmVhdGVJ
dGVtKGJhY2tGb3J3YXJkTGlzdCwgYmFja0ZvcndhcmRMaXN0LT5wcml2LT53ZWJMaXN0LT5iYWNr
SXRlbSgpKTsKIH0KIAogLyoqCkBAIC0yMDcsNyArMjA3LDcgQEAgV2ViS2l0QmFja0ZvcndhcmRM
aXN0SXRlbSogd2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2dldF9mb3J3YXJkX2l0ZW0oV2ViS2l0
QmFja0YKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfQkFDS19GT1JXQVJE
X0xJU1QoYmFja0ZvcndhcmRMaXN0KSwgMCk7CiAKLSAgICByZXR1cm4gd2Via2l0QmFja0Zvcndh
cmRMaXN0R2V0T3JDcmVhdGVJdGVtKGJhY2tGb3J3YXJkTGlzdCwgV0tCYWNrRm9yd2FyZExpc3RH
ZXRGb3J3YXJkSXRlbShiYWNrRm9yd2FyZExpc3QtPnByaXYtPndrTGlzdCkpOworICAgIHJldHVy
biB3ZWJraXRCYWNrRm9yd2FyZExpc3RHZXRPckNyZWF0ZUl0ZW0oYmFja0ZvcndhcmRMaXN0LCBi
YWNrRm9yd2FyZExpc3QtPnByaXYtPndlYkxpc3QtPmZvcndhcmRJdGVtKCkpOwogfQogCiAvKioK
QEAgLTIyNCw3ICsyMjQsNyBAQCBXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtKiB3ZWJraXRfYmFj
a19mb3J3YXJkX2xpc3RfZ2V0X250aF9pdGVtKFdlYktpdEJhY2tGb3J3YQogewogICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19CQUNLX0ZPUldBUkRfTElTVChiYWNrRm9yd2FyZExp
c3QpLCAwKTsKIAotICAgIHJldHVybiB3ZWJraXRCYWNrRm9yd2FyZExpc3RHZXRPckNyZWF0ZUl0
ZW0oYmFja0ZvcndhcmRMaXN0LCBXS0JhY2tGb3J3YXJkTGlzdEdldEl0ZW1BdEluZGV4KGJhY2tG
b3J3YXJkTGlzdC0+cHJpdi0+d2tMaXN0LCBpbmRleCkpOworICAgIHJldHVybiB3ZWJraXRCYWNr
Rm9yd2FyZExpc3RHZXRPckNyZWF0ZUl0ZW0oYmFja0ZvcndhcmRMaXN0LCBiYWNrRm9yd2FyZExp
c3QtPnByaXYtPndlYkxpc3QtPml0ZW1BdEluZGV4KGluZGV4KSk7CiB9CiAKIC8qKgpAQCAtMjM5
LDcgKzIzOSw3IEBAIGd1aW50IHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfbGVuZ3RoKFdl
YktpdEJhY2tGb3J3YXJkTGlzdCogYmFja0ZvcndhcmRMaXN0CiAKICAgICBXZWJLaXRCYWNrRm9y
d2FyZExpc3RQcml2YXRlKiBwcml2ID0gYmFja0ZvcndhcmRMaXN0LT5wcml2OwogICAgIGd1aW50
IGN1cnJlbnRJdGVtID0gd2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2dldF9jdXJyZW50X2l0ZW0o
YmFja0ZvcndhcmRMaXN0KSA/IDEgOiAwOwotICAgIHJldHVybiBXS0JhY2tGb3J3YXJkTGlzdEdl
dEJhY2tMaXN0Q291bnQocHJpdi0+d2tMaXN0KSArIFdLQmFja0ZvcndhcmRMaXN0R2V0Rm9yd2Fy
ZExpc3RDb3VudChwcml2LT53a0xpc3QpICsgY3VycmVudEl0ZW07CisgICAgcmV0dXJuIHByaXYt
PndlYkxpc3QtPmJhY2tMaXN0Q291bnQoKSArIHByaXYtPndlYkxpc3QtPmZvcndhcmRMaXN0Q291
bnQoKSArIGN1cnJlbnRJdGVtOwogfQogCiAvKioKQEAgLTI1Myw5ICsyNTMsNyBAQCBHTGlzdCog
d2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2dldF9iYWNrX2xpc3QoV2ViS2l0QmFja0ZvcndhcmRM
aXN0KiBiYWNrRm9yd2FyZAogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19C
QUNLX0ZPUldBUkRfTElTVChiYWNrRm9yd2FyZExpc3QpLCAwKTsKIAotICAgIGd1aW50IGxpbWl0
ID0gV0tCYWNrRm9yd2FyZExpc3RHZXRCYWNrTGlzdENvdW50KGJhY2tGb3J3YXJkTGlzdC0+cHJp
di0+d2tMaXN0KTsKLSAgICBXS1JldGFpblB0cjxXS0FycmF5UmVmPiB3a0xpc3QoQWRvcHRXSywg
V0tCYWNrRm9yd2FyZExpc3RDb3B5QmFja0xpc3RXaXRoTGltaXQoYmFja0ZvcndhcmRMaXN0LT5w
cml2LT53a0xpc3QsIGxpbWl0KSk7Ci0gICAgcmV0dXJuIHdlYmtpdEJhY2tGb3J3YXJkTGlzdENy
ZWF0ZUxpc3QoYmFja0ZvcndhcmRMaXN0LCB3a0xpc3QuZ2V0KCkpOworICAgIHJldHVybiB3ZWJr
aXRfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2JhY2tfbGlzdF93aXRoX2xpbWl0KGJhY2tGb3J3YXJk
TGlzdCwgYmFja0ZvcndhcmRMaXN0LT5wcml2LT53ZWJMaXN0LT5iYWNrTGlzdENvdW50KCkpOwog
fQogCiAvKioKQEAgLTI3MCw4ICsyNjgsOCBAQCBHTGlzdCogd2Via2l0X2JhY2tfZm9yd2FyZF9s
aXN0X2dldF9iYWNrX2xpc3Rfd2l0aF9saW1pdChXZWJLaXRCYWNrRm9yd2FyZExpc3QqCiB7CiAg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0JBQ0tfRk9SV0FSRF9MSVNUKGJhY2tG
b3J3YXJkTGlzdCksIDApOwogCi0gICAgV0tSZXRhaW5QdHI8V0tBcnJheVJlZj4gd2tMaXN0KEFk
b3B0V0ssIFdLQmFja0ZvcndhcmRMaXN0Q29weUJhY2tMaXN0V2l0aExpbWl0KGJhY2tGb3J3YXJk
TGlzdC0+cHJpdi0+d2tMaXN0LCBsaW1pdCkpOwotICAgIHJldHVybiB3ZWJraXRCYWNrRm9yd2Fy
ZExpc3RDcmVhdGVMaXN0KGJhY2tGb3J3YXJkTGlzdCwgd2tMaXN0LmdldCgpKTsKKyAgICBXZWJL
aXRCYWNrRm9yd2FyZExpc3RQcml2YXRlKiBwcml2ID0gYmFja0ZvcndhcmRMaXN0LT5wcml2Owor
ICAgIHJldHVybiB3ZWJraXRCYWNrRm9yd2FyZExpc3RDcmVhdGVMaXN0KGJhY2tGb3J3YXJkTGlz
dCwgcHJpdi0+d2ViTGlzdC0+YmFja0xpc3RBc0ltbXV0YWJsZUFycmF5V2l0aExpbWl0KGxpbWl0
KS5sZWFrUmVmKCkpOwogfQogCiAvKioKQEAgLTI4NSw5ICsyODMsNyBAQCBHTGlzdCogd2Via2l0
X2JhY2tfZm9yd2FyZF9saXN0X2dldF9mb3J3YXJkX2xpc3QoV2ViS2l0QmFja0ZvcndhcmRMaXN0
KiBiYWNrRm9ydwogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19CQUNLX0ZP
UldBUkRfTElTVChiYWNrRm9yd2FyZExpc3QpLCAwKTsKIAotICAgIGd1aW50IGxpbWl0ID0gV0tC
YWNrRm9yd2FyZExpc3RHZXRGb3J3YXJkTGlzdENvdW50KGJhY2tGb3J3YXJkTGlzdC0+cHJpdi0+
d2tMaXN0KTsKLSAgICBXS1JldGFpblB0cjxXS0FycmF5UmVmPiB3a0xpc3QoQWRvcHRXSywgV0tC
YWNrRm9yd2FyZExpc3RDb3B5Rm9yd2FyZExpc3RXaXRoTGltaXQoYmFja0ZvcndhcmRMaXN0LT5w
cml2LT53a0xpc3QsIGxpbWl0KSk7Ci0gICAgcmV0dXJuIHdlYmtpdEJhY2tGb3J3YXJkTGlzdENy
ZWF0ZUxpc3QoYmFja0ZvcndhcmRMaXN0LCB3a0xpc3QuZ2V0KCkpOworICAgIHJldHVybiB3ZWJr
aXRfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2ZvcndhcmRfbGlzdF93aXRoX2xpbWl0KGJhY2tGb3J3
YXJkTGlzdCwgYmFja0ZvcndhcmRMaXN0LT5wcml2LT53ZWJMaXN0LT5mb3J3YXJkTGlzdENvdW50
KCkpOwogfQogCiAvKioKQEAgLTMwMiw2ICsyOTgsNiBAQCBHTGlzdCogd2Via2l0X2JhY2tfZm9y
d2FyZF9saXN0X2dldF9mb3J3YXJkX2xpc3Rfd2l0aF9saW1pdChXZWJLaXRCYWNrRm9yd2FyZExp
cwogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19CQUNLX0ZPUldBUkRfTElT
VChiYWNrRm9yd2FyZExpc3QpLCAwKTsKIAotICAgIFdLUmV0YWluUHRyPFdLQXJyYXlSZWY+IHdr
TGlzdChBZG9wdFdLLCBXS0JhY2tGb3J3YXJkTGlzdENvcHlGb3J3YXJkTGlzdFdpdGhMaW1pdChi
YWNrRm9yd2FyZExpc3QtPnByaXYtPndrTGlzdCwgbGltaXQpKTsKLSAgICByZXR1cm4gd2Via2l0
QmFja0ZvcndhcmRMaXN0Q3JlYXRlTGlzdChiYWNrRm9yd2FyZExpc3QsIHdrTGlzdC5nZXQoKSk7
CisgICAgV2ViS2l0QmFja0ZvcndhcmRMaXN0UHJpdmF0ZSogcHJpdiA9IGJhY2tGb3J3YXJkTGlz
dC0+cHJpdjsKKyAgICByZXR1cm4gd2Via2l0QmFja0ZvcndhcmRMaXN0Q3JlYXRlTGlzdChiYWNr
Rm9yd2FyZExpc3QsIHByaXYtPndlYkxpc3QtPmZvcndhcmRMaXN0QXNJbW11dGFibGVBcnJheVdp
dGhMaW1pdChsaW1pdCkubGVha1JlZigpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5jcHAK
aW5kZXggYzZhNGI1OS4uOGIyMmFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKQEAg
LTI5LDcgKzI5LDcgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIHN0cnVjdCBfV2ViS2l0
QmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUgewotICAgIFdLUmV0YWluUHRyPFdLQmFja0Zvcndh
cmRMaXN0SXRlbVJlZj4gd2tMaXN0SXRlbTsKKyAgICBSZWZQdHI8V2ViQmFja0ZvcndhcmRMaXN0
SXRlbT4gd2ViTGlzdEl0ZW07CiAgICAgQ1N0cmluZyB1cmk7CiAgICAgQ1N0cmluZyB0aXRsZTsK
ICAgICBDU3RyaW5nIG9yaWdpbmFsVVJJOwpAQCAtNTksNyArNTksNyBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9jbGFzc19pbml0KFdlYktpdEJhY2tGb3J3YXJk
TGlzdEl0ZW1DbAogICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShsaXN0SXRlbUNsYXNzLCBz
aXplb2YoV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUpKTsKIH0KIAotdHlwZWRlZiBI
YXNoTWFwPFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiwgV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRl
bSo+IEhpc3RvcnlJdGVtc01hcDsKK3R5cGVkZWYgSGFzaE1hcDxXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtKiwgV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbSo+IEhpc3RvcnlJdGVtc01hcDsKIAogc3Rh
dGljIEhpc3RvcnlJdGVtc01hcCYgaGlzdG9yeUl0ZW1zTWFwKCkKIHsKQEAgLTY3LDM0ICs2Nywz
MyBAQCBzdGF0aWMgSGlzdG9yeUl0ZW1zTWFwJiBoaXN0b3J5SXRlbXNNYXAoKQogICAgIHJldHVy
biBpdGVtc01hcDsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0QmFja0ZvcndhcmRMaXN0SXRlbUZp
bmFsaXplZChncG9pbnRlciB3a0xpc3RJdGVtLCBHT2JqZWN0KiBmaW5hbGl6ZWRMaXN0SXRlbSkK
K3N0YXRpYyB2b2lkIHdlYmtpdEJhY2tGb3J3YXJkTGlzdEl0ZW1GaW5hbGl6ZWQoZ3BvaW50ZXIg
d2ViTGlzdEl0ZW0sIEdPYmplY3QqIGZpbmFsaXplZExpc3RJdGVtKQogewotICAgIEFTU0VSVChH
X09CSkVDVChoaXN0b3J5SXRlbXNNYXAoKS5nZXQoc3RhdGljX2Nhc3Q8V0tCYWNrRm9yd2FyZExp
c3RJdGVtUmVmPih3a0xpc3RJdGVtKSkpID09IGZpbmFsaXplZExpc3RJdGVtKTsKLSAgICBoaXN0
b3J5SXRlbXNNYXAoKS5yZW1vdmUoc3RhdGljX2Nhc3Q8V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVm
Pih3a0xpc3RJdGVtKSk7CisgICAgQVNTRVJUKEdfT0JKRUNUKGhpc3RvcnlJdGVtc01hcCgpLmdl
dChzdGF0aWNfY2FzdDxXZWJCYWNrRm9yd2FyZExpc3RJdGVtKj4od2ViTGlzdEl0ZW0pKSkgPT0g
ZmluYWxpemVkTGlzdEl0ZW0pOworICAgIGhpc3RvcnlJdGVtc01hcCgpLnJlbW92ZShzdGF0aWNf
Y2FzdDxXZWJCYWNrRm9yd2FyZExpc3RJdGVtKj4od2ViTGlzdEl0ZW0pKTsKIH0KIAotV2ViS2l0
QmFja0ZvcndhcmRMaXN0SXRlbSogd2Via2l0QmFja0ZvcndhcmRMaXN0SXRlbUdldE9yQ3JlYXRl
KFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiB3a0xpc3RJdGVtKQorV2ViS2l0QmFja0ZvcndhcmRM
aXN0SXRlbSogd2Via2l0QmFja0ZvcndhcmRMaXN0SXRlbUdldE9yQ3JlYXRlKFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0qIHdlYkxpc3RJdGVtKQogewotICAgIGlmICghd2tMaXN0SXRlbSkKKyAgICBp
ZiAoIXdlYkxpc3RJdGVtKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFdlYktpdEJhY2tGb3J3
YXJkTGlzdEl0ZW0qIGxpc3RJdGVtID0gaGlzdG9yeUl0ZW1zTWFwKCkuZ2V0KHdrTGlzdEl0ZW0p
OworICAgIFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0qIGxpc3RJdGVtID0gaGlzdG9yeUl0ZW1z
TWFwKCkuZ2V0KHdlYkxpc3RJdGVtKTsKICAgICBpZiAobGlzdEl0ZW0pCiAgICAgICAgIHJldHVy
biBsaXN0SXRlbTsKIAogICAgIGxpc3RJdGVtID0gV0VCS0lUX0JBQ0tfRk9SV0FSRF9MSVNUX0lU
RU0oZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX0JBQ0tfRk9SV0FSRF9MSVNUX0lURU0sIE5VTEwp
KTsKLSAgICBsaXN0SXRlbS0+cHJpdi0+d2tMaXN0SXRlbSA9IHdrTGlzdEl0ZW07CisgICAgbGlz
dEl0ZW0tPnByaXYtPndlYkxpc3RJdGVtID0gd2ViTGlzdEl0ZW07CiAKLSAgICBnX29iamVjdF93
ZWFrX3JlZihHX09CSkVDVChsaXN0SXRlbSksIHdlYmtpdEJhY2tGb3J3YXJkTGlzdEl0ZW1GaW5h
bGl6ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxPcGFxdWVXS0JhY2tGb3J3
YXJkTGlzdEl0ZW0qPih3a0xpc3RJdGVtKSk7Ci0gICAgaGlzdG9yeUl0ZW1zTWFwKCkuc2V0KHdr
TGlzdEl0ZW0sIGxpc3RJdGVtKTsKKyAgICBnX29iamVjdF93ZWFrX3JlZihHX09CSkVDVChsaXN0
SXRlbSksIHdlYmtpdEJhY2tGb3J3YXJkTGlzdEl0ZW1GaW5hbGl6ZWQsIHdlYkxpc3RJdGVtKTsK
KyAgICBoaXN0b3J5SXRlbXNNYXAoKS5zZXQod2ViTGlzdEl0ZW0sIGxpc3RJdGVtKTsKIAogICAg
IHJldHVybiBsaXN0SXRlbTsKIH0KIAotV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIHdlYmtpdEJh
Y2tGb3J3YXJkTGlzdEl0ZW1HZXRXS0l0ZW0oV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbSogbGlz
dEl0ZW0pCitXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB3ZWJraXRCYWNrRm9yd2FyZExpc3RJdGVt
R2V0SXRlbShXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtKiBsaXN0SXRlbSkKIHsKLSAgICByZXR1
cm4gbGlzdEl0ZW0tPnByaXYtPndrTGlzdEl0ZW0uZ2V0KCk7CisgICAgcmV0dXJuIGxpc3RJdGVt
LT5wcml2LT53ZWJMaXN0SXRlbS5nZXQoKTsKIH0KIAogLyoqCkBAIC0xMTMsMTEgKzExMiwxMSBA
QCBjb25zdCBnY2hhciogd2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fZ2V0X3VyaShXZWJL
aXRCYWNrRm9yd2FyZExpc3RJdGVtKiBsaQogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9JU19CQUNLX0ZPUldBUkRfTElTVF9JVEVNKGxpc3RJdGVtKSwgMCk7CiAKICAgICBXZWJLaXRC
YWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZSogcHJpdiA9IGxpc3RJdGVtLT5wcml2OwotICAgIFdL
UmV0YWluUHRyPFdLVVJMUmVmPiB3a1VSSShBZG9wdFdLLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1D
b3B5VVJMKHByaXYtPndrTGlzdEl0ZW0uZ2V0KCkpKTsKLSAgICBpZiAodG9JbXBsKHdrVVJJLmdl
dCgpKS0+c3RyaW5nKCkuaXNFbXB0eSgpKQorICAgIFN0cmluZyB1cmwgPSBwcml2LT53ZWJMaXN0
SXRlbS0+dXJsKCk7CisgICAgaWYgKHVybC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiAwOwog
Ci0gICAgcHJpdi0+dXJpID0gdG9JbXBsKHdrVVJJLmdldCgpKS0+c3RyaW5nKCkudXRmOCgpOwor
ICAgIHByaXYtPnVyaSA9IHVybC51dGY4KCk7CiAgICAgcmV0dXJuIHByaXYtPnVyaS5kYXRhKCk7
CiB9CiAKQEAgLTEzMywxMSArMTMyLDExIEBAIGNvbnN0IGdjaGFyKiB3ZWJraXRfYmFja19mb3J3
YXJkX2xpc3RfaXRlbV9nZXRfdGl0bGUoV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbSoKICAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfQkFDS19GT1JXQVJEX0xJU1RfSVRFTShsaXN0
SXRlbSksIDApOwogCiAgICAgV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUqIHByaXYg
PSBsaXN0SXRlbS0+cHJpdjsKLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gd2tUaXRsZShB
ZG9wdFdLLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5VGl0bGUocHJpdi0+d2tMaXN0SXRlbS5n
ZXQoKSkpOwotICAgIGlmICh0b0ltcGwod2tUaXRsZS5nZXQoKSktPnN0cmluZygpLmlzRW1wdHko
KSkKKyAgICBTdHJpbmcgdGl0bGUgPSBwcml2LT53ZWJMaXN0SXRlbS0+dGl0bGUoKTsKKyAgICBp
ZiAodGl0bGUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHByaXYtPnRpdGxl
ID0gdG9JbXBsKHdrVGl0bGUuZ2V0KCkpLT5zdHJpbmcoKS51dGY4KCk7CisgICAgcHJpdi0+dGl0
bGUgPSB0aXRsZS51dGY4KCk7CiAgICAgcmV0dXJuIHByaXYtPnRpdGxlLmRhdGEoKTsKIH0KIApA
QCAtMTU1LDEwICsxNTQsMTAgQEAgY29uc3QgZ2NoYXIqIHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlz
dF9pdGVtX2dldF9vcmlnaW5hbF91cmkoV2ViS2l0QmFja0ZvcndhcmRMaXMKICAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfSVNfQkFDS19GT1JXQVJEX0xJU1RfSVRFTShsaXN0SXRlbSks
IDApOwogCiAgICAgV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUqIHByaXYgPSBsaXN0
SXRlbS0+cHJpdjsKLSAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gd2tPcmlnaW5hbFVSSShBZG9w
dFdLLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5T3JpZ2luYWxVUkwocHJpdi0+d2tMaXN0SXRl
bS5nZXQoKSkpOwotICAgIGlmICh0b0ltcGwod2tPcmlnaW5hbFVSSS5nZXQoKSktPnN0cmluZygp
LmlzRW1wdHkoKSkKKyAgICBTdHJpbmcgb3JpZ2luYWxVUkwgPSBwcml2LT53ZWJMaXN0SXRlbS0+
b3JpZ2luYWxVUkwoKTsKKyAgICBpZiAob3JpZ2luYWxVUkwuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIHByaXYtPm9yaWdpbmFsVVJJID0gdG9JbXBsKHdrT3JpZ2luYWxVUkku
Z2V0KCkpLT5zdHJpbmcoKS51dGY4KCk7CisgICAgcHJpdi0+b3JpZ2luYWxVUkkgPSBvcmlnaW5h
bFVSTC51dGY4KCk7CiAgICAgcmV0dXJuIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhY2tGb3J3
YXJkTGlzdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEJhY2tGb3J3YXJkTGlzdFByaXZhdGUuaAppbmRleCAzMzNlNjhkLi5lM2VjNzdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2FyZExp
c3RQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
QmFja0ZvcndhcmRMaXN0UHJpdmF0ZS5oCkBAIC0yOCwxMSArMjgsMTIgQEAKIAogI2luY2x1ZGUg
IldlYkJhY2tGb3J3YXJkTGlzdC5oIgogI2luY2x1ZGUgIldlYktpdEJhY2tGb3J3YXJkTGlzdC5o
IgotI2luY2x1ZGUgPFdlYktpdDIvV2ViS2l0Ml9DLmg+CiAKLVdlYktpdEJhY2tGb3J3YXJkTGlz
dCogd2Via2l0QmFja0ZvcndhcmRMaXN0Q3JlYXRlKFdLQmFja0ZvcndhcmRMaXN0UmVmKTsKLVdl
YktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0qIHdlYmtpdEJhY2tGb3J3YXJkTGlzdEl0ZW1HZXRPckNy
ZWF0ZShXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYpOwotV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVm
IHdlYmtpdEJhY2tGb3J3YXJkTGlzdEl0ZW1HZXRXS0l0ZW0oV2ViS2l0QmFja0ZvcndhcmRMaXN0
SXRlbSopOwotdm9pZCB3ZWJraXRCYWNrRm9yd2FyZExpc3RDaGFuZ2VkKFdlYktpdEJhY2tGb3J3
YXJkTGlzdCosIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiB3a0FkZGVkSXRlbSwgV0tBcnJheVJl
ZiB3a1JlbW92ZWRJdGVtcyk7Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXZWJLaXRCYWNr
Rm9yd2FyZExpc3QqIHdlYmtpdEJhY2tGb3J3YXJkTGlzdENyZWF0ZShXZWJCYWNrRm9yd2FyZExp
c3QqKTsKK1dlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0qIHdlYmtpdEJhY2tGb3J3YXJkTGlzdEl0
ZW1HZXRPckNyZWF0ZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKik7CitXZWJCYWNrRm9yd2FyZExp
c3RJdGVtKiB3ZWJraXRCYWNrRm9yd2FyZExpc3RJdGVtR2V0SXRlbShXZWJLaXRCYWNrRm9yd2Fy
ZExpc3RJdGVtKik7Cit2b2lkIHdlYmtpdEJhY2tGb3J3YXJkTGlzdENoYW5nZWQoV2ViS2l0QmFj
a0ZvcndhcmRMaXN0KiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogd2ViQWRkZWRJdGVtLCBJbW11
dGFibGVBcnJheSogd2ViUmVtb3ZlZEl0ZW1zKTsKIAogI2VuZGlmIC8vIFdlYktpdEJhY2tGb3J3
YXJkTGlzdFByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAKaW5kZXggNDU3YzQwMS4uMGI5Mjc1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TG9hZGVyQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRMb2Fk
ZXJDbGllbnQuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlUHJv
Z3Jlc3MoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiAKIHN0YXRpYyB2
b2lkIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXS1BhZ2VSZWYgcGFnZSwgV0tCYWNrRm9yd2Fy
ZExpc3RJdGVtUmVmIGFkZGVkSXRlbSwgV0tBcnJheVJlZiByZW1vdmVkSXRlbXMsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCiB7Ci0gICAgd2Via2l0QmFja0ZvcndhcmRMaXN0Q2hhbmdlZCh3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X2JhY2tfZm9yd2FyZF9saXN0KFdFQktJVF9XRUJfVklFVyhjbGllbnRJ
bmZvKSksIGFkZGVkSXRlbSwgcmVtb3ZlZEl0ZW1zKTsKKyAgICB3ZWJraXRCYWNrRm9yd2FyZExp
c3RDaGFuZ2VkKHdlYmtpdF93ZWJfdmlld19nZXRfYmFja19mb3J3YXJkX2xpc3QoV0VCS0lUX1dF
Ql9WSUVXKGNsaWVudEluZm8pKSwgdG9JbXBsKGFkZGVkSXRlbSksIHRvSW1wbChyZW1vdmVkSXRl
bXMpKTsKIH0KIAogdm9pZCBhdHRhY2hMb2FkZXJDbGllbnRUb1ZpZXcoV2ViS2l0V2ViVmlldyog
d2ViVmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlldy5jcHAKaW5kZXggMjA1MTc4Yi4uNGM0NGJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTM4Miw3ICszODIs
NyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3Q29uc3RydWN0ZWQoR09iamVjdCogb2JqZWN0
KQogICAgIGF0dGFjaENvbnRleHRNZW51Q2xpZW50VG9WaWV3KHdlYlZpZXcpOwogICAgIGF0dGFj
aEZvcm1DbGllbnRUb1ZpZXcod2ViVmlldyk7CiAKLSAgICBwcml2LT5iYWNrRm9yd2FyZExpc3Qg
PSBhZG9wdEdSZWYod2Via2l0QmFja0ZvcndhcmRMaXN0Q3JlYXRlKHRvQVBJKGdldFBhZ2Uod2Vi
VmlldyktPmJhY2tGb3J3YXJkTGlzdCgpKSkpOworICAgIHByaXYtPmJhY2tGb3J3YXJkTGlzdCA9
IGFkb3B0R1JlZih3ZWJraXRCYWNrRm9yd2FyZExpc3RDcmVhdGUoZ2V0UGFnZSh3ZWJWaWV3KS0+
YmFja0ZvcndhcmRMaXN0KCkpKTsKIAogICAgIEdSZWZQdHI8V2ViS2l0U2V0dGluZ3M+IHNldHRp
bmdzID0gYWRvcHRHUmVmKHdlYmtpdF9zZXR0aW5nc19uZXcoKSk7CiAgICAgd2Via2l0V2ViVmll
d1NldFNldHRpbmdzKHdlYlZpZXcsIHNldHRpbmdzLmdldCgpKTsKQEAgLTIwMDgsNyArMjAwOCw3
IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X2dvX3RvX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0oV2Vi
S2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRf
SVNfV0VCX1ZJRVcod2ViVmlldykpOwogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0JB
Q0tfRk9SV0FSRF9MSVNUX0lURU0obGlzdEl0ZW0pKTsKIAotICAgIGdldFBhZ2Uod2ViVmlldykt
PmdvVG9CYWNrRm9yd2FyZEl0ZW0odG9JbXBsKHdlYmtpdEJhY2tGb3J3YXJkTGlzdEl0ZW1HZXRX
S0l0ZW0obGlzdEl0ZW0pKSk7CisgICAgZ2V0UGFnZSh3ZWJWaWV3KS0+Z29Ub0JhY2tGb3J3YXJk
SXRlbSh3ZWJraXRCYWNrRm9yd2FyZExpc3RJdGVtR2V0SXRlbShsaXN0SXRlbSkpOwogfQogCiAv
KioK
</data>
<flag name="review"
          id="178824"
          type_id="1"
          status="+"
          setter="gustavo"
    />
          </attachment>
      

    </bug>

</bugzilla>