<?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>127091</bug_id>
          
          <creation_ts>2014-01-16 02:30:55 -0800</creation_ts>
          <short_desc>[GTK] Implement custom URI schemes with CustomProtocols</short_desc>
          <delta_ts>2014-01-27 05:10:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>125583</dependson>
    
    <dependson>127614</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>968667</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-16 02:30:55 -0800</bug_when>
    <thetext>Since CustomProtocols implementation is common for the web and network processes, this will add support for custom uri schemes when using the network process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968682</commentid>
    <comment_count>1</comment_count>
      <attachid>221354</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-16 03:09:41 -0800</bug_when>
    <thetext>Created attachment 221354
Patch

webkit_uri_scheme_request_get_web_view() is broken and always returns NULL. We need to find a way to bring it back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970307</commentid>
    <comment_count>2</comment_count>
      <attachid>221760</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-21 10:29:32 -0800</bug_when>
    <thetext>Created attachment 221760
Rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970308</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-21 10:30:24 -0800</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>970309</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-21 10:30:31 -0800</bug_when>
    <thetext>Attachment 221760 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.cpp:154:  Use 0 or null instead of NULL (even in *comments*).  [readability/null] [4]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971155</commentid>
    <comment_count>5</comment_count>
      <attachid>221985</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-23 08:47:31 -0800</bug_when>
    <thetext>Created attachment 221985
Rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971595</commentid>
    <comment_count>6</comment_count>
      <attachid>221985</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2014-01-24 06:34:29 -0800</bug_when>
    <thetext>Comment on attachment 221985
Rebased patch

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

Is this holding something back? I guess we should figure out how to reimplement obtaining the originating webview or land this after we branch? LGTM otherwise.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:943
&gt; -void webkitWebContextReceivedURIRequest(WebKitWebContext* context, WebKitURISchemeRequest* request)
&gt; +void webkitWebContextStartLoadingCustomProtocol(WebKitWebContext* context, uint64_t customProtocolID, API::URLRequest* urlRequest)
&gt;  {
&gt; -    String scheme(String::fromUTF8(webkit_uri_scheme_request_get_scheme(request)));
&gt; +    // FIXME: We need to figure out how to get the initiating page.

Is customProtocolID unique per requested load, or is that an id for the scheme? We could maintain a mapping of those IDs to pages, I guess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971909</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-24 23:36:12 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 221985 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=221985&amp;action=review
&gt; 
&gt; Is this holding something back? I guess we should figure out how to reimplement obtaining the originating webview or land this after we branch? LGTM otherwise.

Yes, we need to find a solution for the initiating web view :-(

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:943
&gt; &gt; -void webkitWebContextReceivedURIRequest(WebKitWebContext* context, WebKitURISchemeRequest* request)
&gt; &gt; +void webkitWebContextStartLoadingCustomProtocol(WebKitWebContext* context, uint64_t customProtocolID, API::URLRequest* urlRequest)
&gt; &gt;  {
&gt; &gt; -    String scheme(String::fromUTF8(webkit_uri_scheme_request_get_scheme(request)));
&gt; &gt; +    // FIXME: We need to figure out how to get the initiating page.
&gt; 
&gt; Is customProtocolID unique per requested load, or is that an id for the scheme? We could maintain a mapping of those IDs to pages, I guess.

It&apos;s per request, yes, but it&apos;s generated by the networking process, and at this point in the web context we don&apos;t know the web view associated to this request ID to make a map.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972390</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-27 05:10:26 -0800</bug_when>
    <thetext>Committed r162835: &lt;http://trac.webkit.org/changeset/162835&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221354</attachid>
            <date>2014-01-16 03:09:41 -0800</date>
            <delta_ts>2014-01-21 10:29:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-gtk-custom-protocols.diff</filename>
            <type>text/plain</type>
            <size>26319</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiZmNjYzNlLi40NWRmOGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDMg
QEAKIDIwMTQtMDEtMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFtHVEtdIEltcGxlbWVudCBjdXN0b20gVVJJIHNjaGVtZXMgd2l0aCBDdXN0
b21Qcm90b2NvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNzA5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSBvbGQgY2xhc3NlcyBhcmUgbm8gbG9uZ2VyIGJ1aWx0IGZvciBHVEsrIGFuZCBzaG91
bGQgYmUgcmVtb3ZlZCBvbmNlCisgICAgICAgIG90aGVyIHBvcnRzIHVzaW5nIHNvdXAgYmFja2Vu
ZCBzd2l0Y2ggdG8gY3VzdG9tIHByb3RvY29scyBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAq
IEdOVW1ha2VmaWxlLmFtOiBSZW1vdmUgaW5jbHVkZSBwYXRoLgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06IFJlbW92ZSBmaWxlcyBmcm9tIGNvbXBpbGF0aW9uLgorICAgICAgICAqIFBs
YXRmb3JtR1RLLmNtYWtlOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVxdWVzdE1h
bmFnZXJDbGllbnQuY3BwOgorICAgICAgICAoc3RhcnRMb2FkaW5nKToKKyAgICAgICAgKHN0b3BM
b2FkaW5nKToKKyAgICAgICAgKGF0dGFjaFJlcXVlc3RNYW5hZ2VyQ2xpZW50VG9Db250ZXh0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcDoK
KyAgICAgICAgKHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RDcmVhdGUpOgorICAgICAgICAod2Via2l0
X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcpOgorICAgICAgICAod2Via2l0VVJJU2No
ZW1lUmVxdWVzdFJlYWRDYWxsYmFjayk6CisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1
ZXN0X2ZpbmlzaCk6CisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9l
cnJvcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0
LmNwcDoKKyAgICAgICAgKGNyZWF0ZURlZmF1bHRXZWJDb250ZXh0KToKKyAgICAgICAgKHdlYmtp
dF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1lKToKKyAgICAgICAgKHdlYmtpdFdlYkNv
bnRleHRHZXRSZXF1ZXN0TWFuYWdlcik6CisgICAgICAgICh3ZWJraXRXZWJDb250ZXh0U3RhcnRM
b2FkaW5nQ3VzdG9tUHJvdG9jb2wpOgorICAgICAgICAod2Via2l0V2ViQ29udGV4dFN0b3BMb2Fk
aW5nQ3VzdG9tUHJvdG9jb2wpOgorICAgICAgICAod2Via2l0V2ViQ29udGV4dERpZEZpbmlzaExv
YWRpbmdDdXN0b21Qcm90b2NvbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViQ29udGV4dFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRH
dGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXQyUHJlZml4Lmg6IEVuYWJsZSBDdXN0b21Qcm90
b2NvbHMgdW5jb25kaXRpb25hbGx5IGZvciB0aGUKKyAgICAgICAgR1RLKyBwb3J0LgorCisyMDE0
LTAxLTE2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKwogICAg
ICAgICBbU09VUF0gSW1wbGVtZW50IENVU1RPTSBQUk9UT0NPTFMKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTU4MwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFt
CmluZGV4IDFiNDUzYzQuLmMyOTliMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1h
a2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCkBAIC00MjgsNyAr
NDI4LDYgQEAgdnBhdGggJS5tZXNzYWdlcy5pbiA9IFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9Q
bHVnaW5zIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKIAkkKFdlYktp
dDIpL1VJUHJvY2Vzcy9TdG9yYWdlIFwKLQkkKFdlYktpdDIpL1VJUHJvY2Vzcy9zb3VwIFwKIAkk
KFdlYktpdDIpL1dlYlByb2Nlc3MgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BcHBsaWNhdGlv
bkNhY2hlIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvQmF0dGVyeSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFr
ZWZpbGUubGlzdC5hbQppbmRleCA0NGEwMTU1Li5iZDkwZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KQEAgLTE2MCwxMCArMTYwLDYgQEAgd2Via2l0Ml9idWlsdF9zb3VyY2VzICs9
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlN
ZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlJlc291cmNlTG9hZGVyTWVz
c2FnZVJlY2VpdmVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJSZXNvdXJjZUxv
YWRlck1lc3NhZ2VzLmggXAotCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU291cFJlcXVlc3RN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJT
b3VwUmVxdWVzdE1hbmFnZXJNZXNzYWdlcy5oIFwKLQlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
YlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCi0JRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXAogCURl
cml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViVmlicmF0aW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlZpYnJhdGlvblByb3h5TWVzc2FnZXMuaAog
CkBAIC01MTksMTAgKzUxNSw2IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXcuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL2d0ay9XS1ZpZXdQcml2YXRlLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9zb3VwL1dLQVBJQ2FzdFNvdXAuaCBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL3NvdXAvV0tDb250ZXh0U291cC5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9zb3VwL1dLQ29udGV4dFNvdXAuaCBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL3NvdXAvV0tTb3VwUmVxdWVzdE1hbmFnZXIuY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0Mvc291cC9XS1NvdXBSZXF1ZXN0TWFuYWdlci5oIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0Mvc291cC9XS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5h
Z2VyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tTb3VwQ3Vz
dG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV2ViS2l0Ml9DLmggXApAQCAtODg0LDEwICs4NzYsNiBAQCB3ZWJraXQyX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmgg
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViQ29va2llTWFuYWdlclByb3h5U291cC5j
cHAgXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdl
ckNsaWVudC5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1
ZXN0TWFuYWdlckNsaWVudC5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJT
b3VwUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9z
b3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9UZXh0Q2hlY2tlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNr
ZXJDb21wbGV0aW9uLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tlckNv
bXBsZXRpb24uY3BwIFwKQEAgLTExODYsOCArMTE3NCw2IEBAIHdlYmtpdDJfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmggXAog
CVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5j
cHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNl
SW1wbC5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RN
YW5hZ2VyLmNwcCBcCi0JU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1
ZXN0TWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vz
c1NvdXAuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJl
cXVlc3RHZW5lcmljLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktp
dFNvdXBSZXF1ZXN0R2VuZXJpYy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggMjU4
YTgwYy4uNjExNzE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21h
a2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTc2LDkgKzc2LDcg
QEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL2d0ay9X
S0luc3BlY3RvckNsaWVudEd0ay5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvZ3RrL1dLVmlldy5j
cHAKIAotICAgIFVJUHJvY2Vzcy9BUEkvQy9zb3VwL1dLQ29udGV4dFNvdXAuY3BwCiAgICAgVUlQ
cm9jZXNzL0FQSS9DL3NvdXAvV0tDb29raWVNYW5hZ2VyU291cC5jcHAKLSAgICBVSVByb2Nlc3Mv
QVBJL0Mvc291cC9XS1NvdXBSZXF1ZXN0TWFuYWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0Mv
c291cC9XS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcAogCiAgICAgVUlQcm9j
ZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCkBAIC0yNjEsOCArMjU5LDYgQEAgbGlzdChB
UFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL2d0ay9XZWJQcm9jZXNzUHJveHlH
dGsuY3BwCiAKICAgICBVSVByb2Nlc3Mvc291cC9XZWJDb29raWVNYW5hZ2VyUHJveHlTb3VwLmNw
cAotICAgIFVJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAKLSAg
ICBVSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKIAogICAgIFdl
YlByb2Nlc3MvQ29va2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAogICAgIFdlYlBy
b2Nlc3MvQ29va2llcy9zb3VwL1dlYktpdFNvdXBDb29raWVKYXJTcWxpdGUuY3BwCkBAIC0zMDMs
NyArMjk5LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9z
b3VwL1dlYktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5jcHAKICAgICBXZWJQcm9jZXNzL3NvdXAvV2Vi
S2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAKICAgICBXZWJQcm9jZXNzL3NvdXAvV2ViUHJv
Y2Vzc1NvdXAuY3BwCi0gICAgV2ViUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5j
cHAKICkKIAogc2V0KFdlYktpdDJHVEtfSU5TVEFMTEVEX0hFQURFUlMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuaAppbmRleCA4MzkwNGFkLi5i
ZDA2MGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
UHJpdmF0ZS5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIFdlYktpdFByaXZhdGVfaAogCiAj
aW5jbHVkZSA8V2ViS2l0Mi9XS0FQSUNhc3QuaD4KLSNpbmNsdWRlIDxXZWJLaXQyL1dLQ29udGV4
dFNvdXAuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLRG93bmxvYWQuaD4KICNpbmNsdWRlIDxXZWJL
aXQyL1dLRmluZE9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLRnVsbFNjcmVlbkNsaWVu
dEd0ay5oPgpAQCAtMzksNyArMzgsNyBAQAogI2luY2x1ZGUgPFdlYktpdDIvV0tJbnNwZWN0b3JD
bGllbnRHdGsuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8
V2ViS2l0Mi9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgotI2luY2x1ZGUgPFdlYktpdDIvV0tT
b3VwUmVxdWVzdE1hbmFnZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU291cEN1c3RvbVByb3Rv
Y29sUmVxdWVzdE1hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLU3RyaW5nLmg+CiAjaW5j
bHVkZSA8V2ViS2l0Mi9XS1RleHRDaGVja2VyLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XZWJLaXQy
X0MuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmNwcAppbmRleCBhY2MxOTAxLi43MmY5MWVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZXF1
ZXN0TWFuYWdlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0UmVxdWVzdE1hbmFnZXJDbGllbnQuY3BwCkBAIC0yMCwzNCArMjAsMzAgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRSZXF1ZXN0TWFuYWdlckNsaWVudC5o
IgogCi0jaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRl
ICJXZWJLaXRXZWJDb250ZXh0UHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQ
dHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotc3RhdGljIHZvaWQgZGlkUmVjZWl2
ZVVSSVJlcXVlc3QoV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYgc291cFJlcXVlc3RNYW5hZ2VyUmVm
LCBXS1VSTFJlZiB1cmxSZWYsIFdLUGFnZVJlZiBpbml0aWF0aW5nUGFnZVJlZiwgdWludDY0X3Qg
cmVxdWVzdElELCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgc3RhcnRMb2Fk
aW5nKFdLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJSZWYgc291cFJlcXVlc3RNYW5h
Z2VyUmVmLCB1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVz
dFJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKLSAgICBXZWJLaXRXZWJDb250ZXh0KiB3
ZWJDb250ZXh0ID0gV0VCS0lUX1dFQl9DT05URVhUKGNsaWVudEluZm8pOwotICAgIEdSZWZQdHI8
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0R1JlZih3ZWJraXRVUklTY2hl
bWVSZXF1ZXN0Q3JlYXRlKHdlYkNvbnRleHQsIHRvSW1wbChzb3VwUmVxdWVzdE1hbmFnZXJSZWYp
LCB0b0ltcGwodXJsUmVmKSwgdG9JbXBsKGluaXRpYXRpbmdQYWdlUmVmKSwgcmVxdWVzdElEKSk7
Ci0gICAgd2Via2l0V2ViQ29udGV4dFJlY2VpdmVkVVJJUmVxdWVzdCh3ZWJDb250ZXh0LCByZXF1
ZXN0LmdldCgpKTsKKyAgICB3ZWJraXRXZWJDb250ZXh0U3RhcnRMb2FkaW5nQ3VzdG9tUHJvdG9j
b2woV0VCS0lUX1dFQl9DT05URVhUKGNsaWVudEluZm8pLCBjdXN0b21Qcm90b2NvbElELCB0b0lt
cGwocmVxdWVzdFJlZikpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRGYWlsVG9Mb2FkVVJJUmVxdWVz
dChXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiwgdWludDY0X3QgcmVxdWVzdElELCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgc3RvcExvYWRpbmcoV0tTb3VwQ3VzdG9tUHJvdG9j
b2xSZXF1ZXN0TWFuYWdlclJlZiwgdWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKIHsKLSAgICB3ZWJraXRXZWJDb250ZXh0RGlkRmFpbFRvTG9hZFVSSVJl
cXVlc3QoV0VCS0lUX1dFQl9DT05URVhUKGNsaWVudEluZm8pLCByZXF1ZXN0SUQpOworICAgIHdl
YmtpdFdlYkNvbnRleHRTdG9wTG9hZGluZ0N1c3RvbVByb3RvY29sKFdFQktJVF9XRUJfQ09OVEVY
VChjbGllbnRJbmZvKSwgY3VzdG9tUHJvdG9jb2xJRCk7CiB9CiAKIHZvaWQgYXR0YWNoUmVxdWVz
dE1hbmFnZXJDbGllbnRUb0NvbnRleHQoV2ViS2l0V2ViQ29udGV4dCogd2ViQ29udGV4dCkKIHsK
LSAgICBXS1NvdXBSZXF1ZXN0TWFuYWdlckNsaWVudFYwIHdrUmVxdWVzdE1hbmFnZXJDbGllbnQg
PSB7CisgICAgV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlckNsaWVudFYwIHdrUmVx
dWVzdE1hbmFnZXJDbGllbnQgPSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIDAsIC8vIHZlcnNp
b24KICAgICAgICAgICAgIHdlYkNvbnRleHQgLy8gY2xpZW50SW5mbwogICAgICAgICB9LAotICAg
ICAgICBkaWRSZWNlaXZlVVJJUmVxdWVzdCwKLSAgICAgICAgZGlkRmFpbFRvTG9hZFVSSVJlcXVl
c3QKKyAgICAgICAgc3RhcnRMb2FkaW5nLAorICAgICAgICBzdG9wTG9hZGluZwogICAgIH07Ci0g
ICAgV0tTb3VwUmVxdWVzdE1hbmFnZXJTZXRDbGllbnQodG9BUEkod2Via2l0V2ViQ29udGV4dEdl
dFJlcXVlc3RNYW5hZ2VyKHdlYkNvbnRleHQpKSwgJndrUmVxdWVzdE1hbmFnZXJDbGllbnQuYmFz
ZSk7CisgICAgV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclNldENsaWVudCh0b0FQ
SSh3ZWJraXRXZWJDb250ZXh0R2V0UmVxdWVzdE1hbmFnZXIod2ViQ29udGV4dCkpLCAmd2tSZXF1
ZXN0TWFuYWdlckNsaWVudC5iYXNlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcAppbmRleCBk
MDEzNmNkLi4xNzYwNjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcApAQCAtMjUsNyArMjUsNiBA
QAogI2luY2x1ZGUgIldlYktpdFdlYkNvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
V2ViVmlldy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgotI2luY2x1ZGUgIldlYlNvdXBS
ZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HT3duUHRyU291cC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPGxpYnNvdXAvc291
cC5oPgpAQCAtNTQsNyArNTMsNyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGdSZWFkQnVm
ZmVyU2l6ZSA9IDgxOTI7CiAKIHN0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUg
ewogICAgIFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQ7Ci0gICAgUmVmUHRyPFdlYlNvdXBS
ZXF1ZXN0TWFuYWdlclByb3h5PiB3ZWJSZXF1ZXN0TWFuYWdlcjsKKyAgICBSZWZQdHI8V2ViU291
cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+IHdlYlJlcXVlc3RNYW5hZ2VyOwogICAgIFJl
ZlB0cjxXZWJQYWdlUHJveHk+IGluaXRpYXRpbmdQYWdlOwogICAgIHVpbnQ2NF90IHJlcXVlc3RJ
RDsKICAgICBDU3RyaW5nIHVyaTsKQEAgLTc0LDIyICs3MywxNyBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2NsYXNzX2luaXQoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdENs
YXNzKiByZQogewogfQogCi1XZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiB3ZWJraXRVUklTY2hlbWVS
ZXF1ZXN0Q3JlYXRlKFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQsIFdlYlNvdXBSZXF1ZXN0
TWFuYWdlclByb3h5KiB3ZWJSZXF1ZXN0TWFuYWdlciwgQVBJOjpVUkwqIHdlYlVSTCwgV2ViUGFn
ZVByb3h5KiBpbml0aWF0aW5nUGFnZSwgdWludDY0X3QgcmVxdWVzdElEKQorV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdCogd2Via2l0VVJJU2NoZW1lUmVxdWVzdENyZWF0ZSh1aW50NjRfdCByZXF1ZXN0
SUQsIFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQsIEFQSTo6VVJMUmVxdWVzdCogdXJsUmVx
dWVzdCwgV2ViUGFnZVByb3h5KiBpbml0aWF0aW5nUGFnZSkKIHsKICAgICBXZWJLaXRVUklTY2hl
bWVSZXF1ZXN0KiByZXF1ZXN0ID0gV0VCS0lUX1VSSV9TQ0hFTUVfUkVRVUVTVChnX29iamVjdF9u
ZXcoV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVFVRVNULCBOVUxMKSk7CiAgICAgcmVxdWVzdC0+
cHJpdi0+d2ViQ29udGV4dCA9IHdlYkNvbnRleHQ7Ci0gICAgcmVxdWVzdC0+cHJpdi0+d2ViUmVx
dWVzdE1hbmFnZXIgPSB3ZWJSZXF1ZXN0TWFuYWdlcjsKLSAgICByZXF1ZXN0LT5wcml2LT51cmkg
PSB3ZWJVUkwtPnN0cmluZygpLnV0ZjgoKTsKKyAgICByZXF1ZXN0LT5wcml2LT53ZWJSZXF1ZXN0
TWFuYWdlciA9IHdlYmtpdFdlYkNvbnRleHRHZXRSZXF1ZXN0TWFuYWdlcih3ZWJDb250ZXh0KTsK
KyAgICByZXF1ZXN0LT5wcml2LT51cmkgPSB1cmxSZXF1ZXN0LT5yZXNvdXJjZVJlcXVlc3QoKS51
cmwoKS5zdHJpbmcoKS51dGY4KCk7CiAgICAgcmVxdWVzdC0+cHJpdi0+aW5pdGlhdGluZ1BhZ2Ug
PSBpbml0aWF0aW5nUGFnZTsKICAgICByZXF1ZXN0LT5wcml2LT5yZXF1ZXN0SUQgPSByZXF1ZXN0
SUQ7CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKLXVpbnQ2NF90IHdlYmtpdFVSSVNjaGVtZVJl
cXVlc3RHZXRJRChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQotewotICAgIHJldHVy
biByZXF1ZXN0LT5wcml2LT5yZXF1ZXN0SUQ7Ci19Ci0KIHZvaWQgd2Via2l0VVJJU2NoZW1lUmVx
dWVzdENhbmNlbChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQogewogICAgIGlmIChy
ZXF1ZXN0LT5wcml2LT5jYW5jZWxsYWJsZS5nZXQoKSkKQEAgLTE1Nyw3ICsxNTEsOCBAQCBXZWJL
aXRXZWJWaWV3KiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJfdmlldyhXZWJLaXRV
UklTY2hlbWVSZXF1ZXN0KiByZQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9J
U19VUklfU0NIRU1FX1JFUVVFU1QocmVxdWVzdCksIDApOwogCi0gICAgcmV0dXJuIFdFQktJVF9X
RUJfVklFVyhyZXF1ZXN0LT5wcml2LT5pbml0aWF0aW5nUGFnZS0+dmlld1dpZGdldCgpKTsKKyAg
ICAvLyBGSVhNRTogaW5pdGlhdGluZ1BhZ2UgaXMgbm93IGFsd2F5cyBOVUxMLCB3ZSBuZWVkIHRv
IHJlLWltcGxlbWVudCB0aGlzIHNvbWVob3cuCisgICAgcmV0dXJuIHJlcXVlc3QtPnByaXYtPmlu
aXRpYXRpbmdQYWdlID8gV0VCS0lUX1dFQl9WSUVXKHJlcXVlc3QtPnByaXYtPmluaXRpYXRpbmdQ
YWdlLT52aWV3V2lkZ2V0KCkpIDogbnVsbHB0cjsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0VVJJ
U2NoZW1lUmVxdWVzdFJlYWRDYWxsYmFjayhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCBHQXN5
bmNSZXN1bHQqIHJlc3VsdCwgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogc2NoZW1lUmVxdWVzdCkK
QEAgLTE3MywyMSArMTY4LDI1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RS
ZWFkQ2FsbGJhY2soR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jCiAgICAgV2ViS2l0
VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OwogICAgIFJlZlB0
cjxBUEk6OkRhdGE+IHdlYkRhdGEgPSBBUEk6OkRhdGE6OmNyZWF0ZShyZWludGVycHJldF9jYXN0
PGNvbnN0IHVuc2lnbmVkIGNoYXIqPihwcml2LT5yZWFkQnVmZmVyKSwgYnl0ZXNSZWFkKTsKICAg
ICBpZiAoIXByaXYtPmJ5dGVzUmVhZCkgewotICAgICAgICAvLyBGaXJzdCBjaHVuayByZWFkLiBJ
biBjYXNlIG9mIGVtcHR5IHJlcGx5IGFuIGVtcHR5IEFQSTo6RGF0YSBpcyBzZW50IHRvIHRoZSBX
ZWJQcm9jZXNzLgotICAgICAgICBwcml2LT53ZWJSZXF1ZXN0TWFuYWdlci0+ZGlkSGFuZGxlVVJJ
UmVxdWVzdCh3ZWJEYXRhLmdldCgpLCBwcml2LT5zdHJlYW1MZW5ndGgsIFN0cmluZzo6ZnJvbVVU
RjgocHJpdi0+bWltZVR5cGUuZGF0YSgpKSwgcHJpdi0+cmVxdWVzdElEKTsKKyAgICAgICAgLy8g
Rmlyc3QgY2h1bmsgcmVhZC4gSW4gY2FzZSBvZiBlbXB0eSByZXBseSBhbiBlbXB0eSBBUEk6OkRh
dGEgaXMgc2VudCB0byB0aGUgbmV0d29ya2luZyBwcm9jZXNzLgorICAgICAgICBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKFdlYkNvcmU6OlVSTChXZWJDb3JlOjpVUkwoKSwgU3Ry
aW5nOjpmcm9tVVRGOChwcml2LT51cmkpKSwgU3RyaW5nOjpmcm9tVVRGOChwcml2LT5taW1lVHlw
ZS5kYXRhKCkpLAorICAgICAgICAgICAgcHJpdi0+c3RyZWFtTGVuZ3RoLCBlbXB0eVN0cmluZygp
LCBlbXB0eVN0cmluZygpKTsKKyAgICAgICAgcHJpdi0+d2ViUmVxdWVzdE1hbmFnZXItPmRpZFJl
Y2VpdmVSZXNwb25zZShwcml2LT5yZXF1ZXN0SUQsIHJlc3BvbnNlKTsKKyAgICAgICAgcHJpdi0+
d2ViUmVxdWVzdE1hbmFnZXItPmRpZExvYWREYXRhKHByaXYtPnJlcXVlc3RJRCwgd2ViRGF0YS5n
ZXQoKSk7CiAgICAgfSBlbHNlIGlmIChieXRlc1JlYWQgfHwgKCFieXRlc1JlYWQgJiYgIXByaXYt
PnN0cmVhbUxlbmd0aCkpIHsKLSAgICAgICAgLy8gU3Vic2VxdWVudCBjaHVuayByZWFkLiBXZSBv
bmx5IHNlbmQgYW4gZW1wdHkgQVBJOjpEYXRhIHRvIHRoZSBXZWJQcm9jZXNzIHdoZW4gc3RyZWFt
IGxlbmd0aCBpcyB1bmtub3duLgotICAgICAgICBwcml2LT53ZWJSZXF1ZXN0TWFuYWdlci0+ZGlk
UmVjZWl2ZVVSSVJlcXVlc3REYXRhKHdlYkRhdGEuZ2V0KCksIHByaXYtPnJlcXVlc3RJRCk7Cisg
ICAgICAgIC8vIFN1YnNlcXVlbnQgY2h1bmsgcmVhZC4gV2Ugb25seSBzZW5kIGFuIGVtcHR5IEFQ
STo6RGF0YSB0byB0aGUgbmV0d29ya2luZyBwcm9jZXNzIHdoZW4gc3RyZWFtIGxlbmd0aCBpcyB1
bmtub3duLgorICAgICAgICBwcml2LT53ZWJSZXF1ZXN0TWFuYWdlci0+ZGlkTG9hZERhdGEocHJp
di0+cmVxdWVzdElELCB3ZWJEYXRhLmdldCgpKTsKICAgICB9CiAKICAgICBpZiAoIWJ5dGVzUmVh
ZCkgewotICAgICAgICB3ZWJraXRXZWJDb250ZXh0RGlkRmluaXNoVVJJUmVxdWVzdChyZXF1ZXN0
LT5wcml2LT53ZWJDb250ZXh0LCByZXF1ZXN0LT5wcml2LT5yZXF1ZXN0SUQpOworICAgICAgICBw
cml2LT53ZWJSZXF1ZXN0TWFuYWdlci0+ZGlkRmluaXNoTG9hZGluZyhyZXF1ZXN0LT5wcml2LT5y
ZXF1ZXN0SUQpOworICAgICAgICB3ZWJraXRXZWJDb250ZXh0RGlkRmluaXNoTG9hZGluZ0N1c3Rv
bVByb3RvY29sKHJlcXVlc3QtPnByaXYtPndlYkNvbnRleHQsIHJlcXVlc3QtPnByaXYtPnJlcXVl
c3RJRCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBwcml2LT5ieXRlc1JlYWQgKz0g
Ynl0ZXNSZWFkOwogICAgIGdfaW5wdXRfc3RyZWFtX3JlYWRfYXN5bmMoaW5wdXRTdHJlYW0sIHBy
aXYtPnJlYWRCdWZmZXIsIGdSZWFkQnVmZmVyU2l6ZSwgR19QUklPUklUWV9ERUZBVUxULCBwcml2
LT5jYW5jZWxsYWJsZS5nZXQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlaW50
ZXJwcmV0X2Nhc3Q8R0FzeW5jUmVhZHlDYWxsYmFjaz4od2Via2l0VVJJU2NoZW1lUmVxdWVzdFJl
YWRDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0LmdldCgpKSk7CisgICAgICAgIHJlaW50
ZXJwcmV0X2Nhc3Q8R0FzeW5jUmVhZHlDYWxsYmFjaz4od2Via2l0VVJJU2NoZW1lUmVxdWVzdFJl
YWRDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0LmdldCgpKSk7CiB9CiAKIC8qKgpAQCAt
MjEyLDcgKzIxMSw3IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2goV2Vi
S2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0lucHV0U3RyCiAgICAgcmVxdWVzdC0+cHJp
di0+Ynl0ZXNSZWFkID0gMDsKICAgICByZXF1ZXN0LT5wcml2LT5taW1lVHlwZSA9IG1pbWVUeXBl
OwogICAgIGdfaW5wdXRfc3RyZWFtX3JlYWRfYXN5bmMoaW5wdXRTdHJlYW0sIHJlcXVlc3QtPnBy
aXYtPnJlYWRCdWZmZXIsIGdSZWFkQnVmZmVyU2l6ZSwgR19QUklPUklUWV9ERUZBVUxULCByZXF1
ZXN0LT5wcml2LT5jYW5jZWxsYWJsZS5nZXQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlaW50ZXJwcmV0X2Nhc3Q8R0FzeW5jUmVhZHlDYWxsYmFjaz4od2Via2l0VVJJU2NoZW1l
UmVxdWVzdFJlYWRDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0KSk7CisgICAgICAgIHJl
aW50ZXJwcmV0X2Nhc3Q8R0FzeW5jUmVhZHlDYWxsYmFjaz4od2Via2l0VVJJU2NoZW1lUmVxdWVz
dFJlYWRDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0KSk7CiB9CiAKIC8qKgpAQCAtMjMy
LDcgKzIzMSw2IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJyb3Io
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0VyCiAgICAgV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OwogCiAgICAgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciByZXNvdXJjZUVycm9yKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4p
LCBlcnJvci0+Y29kZSwgcHJpdi0+dXJpLmRhdGEoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+
bWVzc2FnZSkpOwotICAgIHByaXYtPndlYlJlcXVlc3RNYW5hZ2VyLT5kaWRGYWlsVVJJUmVxdWVz
dChyZXNvdXJjZUVycm9yLCBwcml2LT5yZXF1ZXN0SUQpOwotCi0gICAgd2Via2l0V2ViQ29udGV4
dERpZEZpbmlzaFVSSVJlcXVlc3QocHJpdi0+d2ViQ29udGV4dCwgcHJpdi0+cmVxdWVzdElEKTsK
KyAgICBwcml2LT53ZWJSZXF1ZXN0TWFuYWdlci0+ZGlkRmFpbFdpdGhFcnJvcihwcml2LT5yZXF1
ZXN0SUQsIHJlc291cmNlRXJyb3IpOworICAgIHdlYmtpdFdlYkNvbnRleHREaWRGaW5pc2hMb2Fk
aW5nQ3VzdG9tUHJvdG9jb2wocHJpdi0+d2ViQ29udGV4dCwgcHJpdi0+cmVxdWVzdElEKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNj
aGVtZVJlcXVlc3RQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZS5oCmluZGV4IDM4NjcxNzMuLjUyMDg5OTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVt
ZVJlcXVlc3RQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUuaApAQCAtMjQsOCArMjQsNyBAQAogI2luY2x1
ZGUgIldlYktpdFVSSVNjaGVtZVJlcXVlc3QuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJDb250ZXh0
LmgiCiAKLVdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RDcmVh
dGUoV2ViS2l0V2ViQ29udGV4dCosIFdlYktpdDo6V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkq
LCBBUEk6OlVSTCosIFdlYktpdDo6V2ViUGFnZVByb3h5KiwgdWludDY0X3QgcmVxdWVzdElEKTsK
LXVpbnQ2NF90IHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RHZXRJRChXZWJLaXRVUklTY2hlbWVSZXF1
ZXN0Kik7CitXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0Q3Jl
YXRlKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViS2l0V2ViQ29udGV4dCosIEFQSTo6VVJMUmVxdWVz
dCosIFdlYktpdDo6V2ViUGFnZVByb3h5Kik7CiB2b2lkIHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RD
YW5jZWwoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCopOwogCiAjZW5kaWYgLy8gV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdFByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCAyYjFhNWYzLi5kZjMzNjRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250
ZXh0LmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIHN0cnVjdCBfV2ViS2l0V2ViQ29udGV4dFByaXZh
dGUgewogICAgIEdSZWZQdHI8V2ViS2l0Q29va2llTWFuYWdlcj4gY29va2llTWFuYWdlcjsKICAg
ICBHUmVmUHRyPFdlYktpdEZhdmljb25EYXRhYmFzZT4gZmF2aWNvbkRhdGFiYXNlOwogICAgIEdS
ZWZQdHI8V2ViS2l0U2VjdXJpdHlNYW5hZ2VyPiBzZWN1cml0eU1hbmFnZXI7Ci0gICAgUmVmUHRy
PFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5PiByZXF1ZXN0TWFuYWdlcjsKKyAgICBSZWZQdHI8
V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+IHJlcXVlc3RNYW5hZ2VyOwogICAg
IFVSSVNjaGVtZUhhbmRsZXJNYXAgdXJpU2NoZW1lSGFuZGxlcnM7CiAgICAgVVJJU2NoZW1lUmVx
dWVzdE1hcCB1cmlTY2hlbWVSZXF1ZXN0czsKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCkBAIC0y
MDMsNyArMjAzLDcgQEAgc3RhdGljIGdwb2ludGVyIGNyZWF0ZURlZmF1bHRXZWJDb250ZXh0KGdw
b2ludGVyKQogICAgIFdlYktpdFdlYkNvbnRleHRQcml2YXRlKiBwcml2ID0gd2ViQ29udGV4dC0+
cHJpdjsKIAogICAgIHByaXYtPmNvbnRleHQgPSBXZWJDb250ZXh0OjpjcmVhdGUoV2ViQ29yZTo6
ZmlsZW5hbWVUb1N0cmluZyhpbmplY3RlZEJ1bmRsZUZpbGVuYW1lKCkuZGF0YSgpKSk7Ci0gICAg
cHJpdi0+cmVxdWVzdE1hbmFnZXIgPSB3ZWJDb250ZXh0LT5wcml2LT5jb250ZXh0LT5zdXBwbGVt
ZW50PFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5PigpOworICAgIHByaXYtPnJlcXVlc3RNYW5h
Z2VyID0gd2ViQ29udGV4dC0+cHJpdi0+Y29udGV4dC0+c3VwcGxlbWVudDxXZWJTb3VwQ3VzdG9t
UHJvdG9jb2xSZXF1ZXN0TWFuYWdlcj4oKTsKICAgICBwcml2LT5jb250ZXh0LT5zZXRDYWNoZU1v
ZGVsKENhY2hlTW9kZWxQcmltYXJ5V2ViQnJvd3Nlcik7CiAjaWYgRU5BQkxFKE5FVFdPUktfUFJP
Q0VTUykKICAgICAvLyBGSVhNRTogVGVtcG9yYXJ5IHVzZSBhbiBlbnYgdmFyIHVudGlsIHdlIGhh
dmUgQVBJIHRvIHNldCB0aGUgcHJvY2VzcyBtb2RlbC4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU0NjMuCkBAIC02MjAsNyArNjIwLDcgQEAgdm9pZCB3ZWJr
aXRfd2ViX2NvbnRleHRfcmVnaXN0ZXJfdXJpX3NjaGVtZShXZWJLaXRXZWJDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBjaGEKIAogICAgIFJlZlB0cjxXZWJLaXRVUklTY2hlbWVIYW5kbGVyPiBoYW5k
bGVyID0gYWRvcHRSZWYobmV3IFdlYktpdFVSSVNjaGVtZUhhbmRsZXIoY2FsbGJhY2ssIHVzZXJE
YXRhLCBkZXN0cm95Tm90aWZ5KSk7CiAgICAgY29udGV4dC0+cHJpdi0+dXJpU2NoZW1lSGFuZGxl
cnMuc2V0KFN0cmluZzo6ZnJvbVVURjgoc2NoZW1lKSwgaGFuZGxlci5nZXQoKSk7Ci0gICAgY29u
dGV4dC0+cHJpdi0+cmVxdWVzdE1hbmFnZXItPnJlZ2lzdGVyVVJJU2NoZW1lKFN0cmluZzo6ZnJv
bVVURjgoc2NoZW1lKSk7CisgICAgY29udGV4dC0+cHJpdi0+cmVxdWVzdE1hbmFnZXItPnJlZ2lz
dGVyU2NoZW1lRm9yQ3VzdG9tUHJvdG9jb2woU3RyaW5nOjpmcm9tVVRGOChzY2hlbWUpKTsKIH0K
IAogLyoqCkBAIC04NzksMzQgKzg3OSwzNiBAQCBXZWJDb250ZXh0KiB3ZWJraXRXZWJDb250ZXh0
R2V0Q29udGV4dChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0KQogICAgIHJldHVybiBjb250ZXh0
LT5wcml2LT5jb250ZXh0LmdldCgpOwogfQogCi1XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eSog
d2Via2l0V2ViQ29udGV4dEdldFJlcXVlc3RNYW5hZ2VyKFdlYktpdFdlYkNvbnRleHQqIGNvbnRl
eHQpCitXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlciogd2Via2l0V2ViQ29udGV4
dEdldFJlcXVlc3RNYW5hZ2VyKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgcmV0
dXJuIGNvbnRleHQtPnByaXYtPnJlcXVlc3RNYW5hZ2VyLmdldCgpOwogfQogCi12b2lkIHdlYmtp
dFdlYkNvbnRleHRSZWNlaXZlZFVSSVJlcXVlc3QoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwg
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCkKK3ZvaWQgd2Via2l0V2ViQ29udGV4dFN0
YXJ0TG9hZGluZ0N1c3RvbVByb3RvY29sKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQsIHVpbnQ2
NF90IGN1c3RvbVByb3RvY29sSUQsIEFQSTo6VVJMUmVxdWVzdCogdXJsUmVxdWVzdCkKIHsKLSAg
ICBTdHJpbmcgc2NoZW1lKFN0cmluZzo6ZnJvbVVURjgod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVz
dF9nZXRfc2NoZW1lKHJlcXVlc3QpKSk7CisgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gZmlndXJl
IG91dCBob3cgdG8gZ2V0IHRoZSBpbml0aWF0aW5nIHBhZ2UuCisgICAgR1JlZlB0cjxXZWJLaXRV
UklTY2hlbWVSZXF1ZXN0PiByZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdFVSSVNjaGVtZVJlcXVl
c3RDcmVhdGUoY3VzdG9tUHJvdG9jb2xJRCwgY29udGV4dCwgdXJsUmVxdWVzdCwgbnVsbHB0cikp
OworICAgIFN0cmluZyBzY2hlbWUoU3RyaW5nOjpmcm9tVVRGOCh3ZWJraXRfdXJpX3NjaGVtZV9y
ZXF1ZXN0X2dldF9zY2hlbWUocmVxdWVzdC5nZXQoKSkpKTsKICAgICBSZWZQdHI8V2ViS2l0VVJJ
U2NoZW1lSGFuZGxlcj4gaGFuZGxlciA9IGNvbnRleHQtPnByaXYtPnVyaVNjaGVtZUhhbmRsZXJz
LmdldChzY2hlbWUpOwogICAgIEFTU0VSVChoYW5kbGVyLmdldCgpKTsKICAgICBpZiAoIWhhbmRs
ZXItPmhhc0NhbGxiYWNrKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbnRleHQtPnByaXYt
PnVyaVNjaGVtZVJlcXVlc3RzLnNldCh3ZWJraXRVUklTY2hlbWVSZXF1ZXN0R2V0SUQocmVxdWVz
dCksIHJlcXVlc3QpOwotICAgIGhhbmRsZXItPnBlcmZvcm1DYWxsYmFjayhyZXF1ZXN0KTsKKyAg
ICBjb250ZXh0LT5wcml2LT51cmlTY2hlbWVSZXF1ZXN0cy5zZXQoY3VzdG9tUHJvdG9jb2xJRCwg
cmVxdWVzdC5nZXQoKSk7CisgICAgaGFuZGxlci0+cGVyZm9ybUNhbGxiYWNrKHJlcXVlc3QuZ2V0
KCkpOwogfQogCi12b2lkIHdlYmtpdFdlYkNvbnRleHREaWRGYWlsVG9Mb2FkVVJJUmVxdWVzdChX
ZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCB1aW50NjRfdCByZXF1ZXN0SUQpCit2b2lkIHdlYmtp
dFdlYkNvbnRleHRTdG9wTG9hZGluZ0N1c3RvbVByb3RvY29sKFdlYktpdFdlYkNvbnRleHQqIGNv
bnRleHQsIHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQpCiB7Ci0gICAgR1JlZlB0cjxXZWJLaXRV
UklTY2hlbWVSZXF1ZXN0PiByZXF1ZXN0ID0gY29udGV4dC0+cHJpdi0+dXJpU2NoZW1lUmVxdWVz
dHMuZ2V0KHJlcXVlc3RJRCk7CisgICAgR1JlZlB0cjxXZWJLaXRVUklTY2hlbWVSZXF1ZXN0PiBy
ZXF1ZXN0ID0gY29udGV4dC0+cHJpdi0+dXJpU2NoZW1lUmVxdWVzdHMuZ2V0KGN1c3RvbVByb3Rv
Y29sSUQpOwogICAgIGlmICghcmVxdWVzdC5nZXQoKSkKICAgICAgICAgcmV0dXJuOwogICAgIHdl
YmtpdFVSSVNjaGVtZVJlcXVlc3RDYW5jZWwocmVxdWVzdC5nZXQoKSk7CiB9CiAKLXZvaWQgd2Vi
a2l0V2ViQ29udGV4dERpZEZpbmlzaFVSSVJlcXVlc3QoV2ViS2l0V2ViQ29udGV4dCogY29udGV4
dCwgdWludDY0X3QgcmVxdWVzdElEKQordm9pZCB3ZWJraXRXZWJDb250ZXh0RGlkRmluaXNoTG9h
ZGluZ0N1c3RvbVByb3RvY29sKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQsIHVpbnQ2NF90IGN1
c3RvbVByb3RvY29sSUQpCiB7Ci0gICAgY29udGV4dC0+cHJpdi0+dXJpU2NoZW1lUmVxdWVzdHMu
cmVtb3ZlKHJlcXVlc3RJRCk7CisgICAgY29udGV4dC0+cHJpdi0+dXJpU2NoZW1lUmVxdWVzdHMu
cmVtb3ZlKGN1c3RvbVByb3RvY29sSUQpOwogfQogCiB2b2lkIHdlYmtpdFdlYkNvbnRleHRDcmVh
dGVQYWdlRm9yV2ViVmlldyhXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3LCBXZWJLaXRXZWJWaWV3R3JvdXAqIHdlYlZpZXdHcm91cCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHRQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0UHJp
dmF0ZS5oCmluZGV4IDgxYzQ3M2MuLjk0MGRmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHRQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaApAQCAt
MjksMjAgKzI5LDE5IEBACiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eS5oIgogI2luY2x1ZGUgIldl
YkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0
VVJJU2NoZW1lUmVxdWVzdC5oIgogI2luY2x1ZGUgIldlYktpdFdlYkNvbnRleHQuaCIKICNpbmNs
dWRlICJXZWJLaXRXZWJWaWV3R3JvdXAuaCIKLSNpbmNsdWRlICJXZWJTb3VwUmVxdWVzdE1hbmFn
ZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2Vy
LmgiCiAKIFdlYktpdDo6V2ViQ29udGV4dCogd2Via2l0V2ViQ29udGV4dEdldENvbnRleHQoV2Vi
S2l0V2ViQ29udGV4dCopOwogV2ViS2l0RG93bmxvYWQqIHdlYmtpdFdlYkNvbnRleHRHZXRPckNy
ZWF0ZURvd25sb2FkKFdlYktpdDo6RG93bmxvYWRQcm94eSopOwogV2ViS2l0RG93bmxvYWQqIHdl
YmtpdFdlYkNvbnRleHRTdGFydERvd25sb2FkKFdlYktpdFdlYkNvbnRleHQqLCBjb25zdCBjaGFy
KiB1cmksIFdlYktpdDo6V2ViUGFnZVByb3h5Kik7CiB2b2lkIHdlYmtpdFdlYkNvbnRleHRSZW1v
dmVEb3dubG9hZChXZWJLaXQ6OkRvd25sb2FkUHJveHkqKTsKIHZvaWQgd2Via2l0V2ViQ29udGV4
dERvd25sb2FkU3RhcnRlZChXZWJLaXRXZWJDb250ZXh0KiwgV2ViS2l0RG93bmxvYWQqKTsKLVdl
YktpdDo6V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkqIHdlYmtpdFdlYkNvbnRleHRHZXRSZXF1
ZXN0TWFuYWdlcihXZWJLaXRXZWJDb250ZXh0Kik7Ci12b2lkIHdlYmtpdFdlYkNvbnRleHRSZWNl
aXZlZFVSSVJlcXVlc3QoV2ViS2l0V2ViQ29udGV4dCosIFdlYktpdFVSSVNjaGVtZVJlcXVlc3Qq
KTsKLXZvaWQgd2Via2l0V2ViQ29udGV4dERpZEZhaWxUb0xvYWRVUklSZXF1ZXN0KFdlYktpdFdl
YkNvbnRleHQqLCB1aW50NjRfdCByZXF1ZXN0SUQpOwotdm9pZCB3ZWJraXRXZWJDb250ZXh0RGlk
RmluaXNoVVJJUmVxdWVzdChXZWJLaXRXZWJDb250ZXh0KiwgdWludDY0X3QgcmVxdWVzdElEKTsK
K1dlYktpdDo6V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIqIHdlYmtpdFdlYkNv
bnRleHRHZXRSZXF1ZXN0TWFuYWdlcihXZWJLaXRXZWJDb250ZXh0Kik7Cit2b2lkIHdlYmtpdFdl
YkNvbnRleHRTdGFydExvYWRpbmdDdXN0b21Qcm90b2NvbChXZWJLaXRXZWJDb250ZXh0KiwgdWlu
dDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgQVBJOjpVUkxSZXF1ZXN0Kik7Cit2b2lkIHdlYmtpdFdl
YkNvbnRleHRTdG9wTG9hZGluZ0N1c3RvbVByb3RvY29sKFdlYktpdFdlYkNvbnRleHQqLCB1aW50
NjRfdCBjdXN0b21Qcm90b2NvbElEKTsKK3ZvaWQgd2Via2l0V2ViQ29udGV4dERpZEZpbmlzaExv
YWRpbmdDdXN0b21Qcm90b2NvbChXZWJLaXRXZWJDb250ZXh0KiwgdWludDY0X3QgY3VzdG9tUHJv
dG9jb2xJRCk7CiB2b2lkIHdlYmtpdFdlYkNvbnRleHRDcmVhdGVQYWdlRm9yV2ViVmlldyhXZWJL
aXRXZWJDb250ZXh0KiwgV2ViS2l0V2ViVmlldyosIFdlYktpdFdlYlZpZXdHcm91cCopOwogdm9p
ZCB3ZWJraXRXZWJDb250ZXh0V2ViVmlld0Rlc3Ryb3llZChXZWJLaXRXZWJDb250ZXh0KiwgV2Vi
S2l0V2ViVmlldyopOwogV2ViS2l0V2ViVmlldyogd2Via2l0V2ViQ29udGV4dEdldFdlYlZpZXdG
b3JQYWdlKFdlYktpdFdlYkNvbnRleHQqLCBXZWJLaXQ6OldlYlBhZ2VQcm94eSopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0R3RrLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29udGV4dEd0ay5jcHAKaW5kZXggOGFjZWYz
Yy4uYWY2MTA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJD
b250ZXh0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRl
eHRHdGsuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yU2VydmVy
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlNvdXBDdXN0b21Qcm90b2NvbFJl
cXVlc3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NoZW1lUmVn
aXN0cnkuaD4KQEAgLTQzLDEyICs0NCw2IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNz
YWdlcy5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKLSNpbmNsdWRl
ICJXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5oIgotI2Vsc2UKLSNpbmNsdWRl
ICJXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBzdGF0aWMgdm9pZCBpbml0SW5zcGVjdG9yU2VydmVyKCkKQEAgLTEwNCwxMSArOTks
NyBAQCB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgIH0KIAogICAgIGlmICghdXNlc05ldHdv
cmtQcm9jZXNzKCkpIHsKLSNpZiBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKICAgICAgICAgcGFy
YW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3RvY29scyA9IHN1cHBsZW1l
bnQ8V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+KCktPnJlZ2lzdGVyZWRTY2hl
bWVzRm9yQ3VzdG9tUHJvdG9jb2xzKCk7Ci0jZWxzZQotICAgICAgICBwYXJhbWV0ZXJzLnVybFNj
aGVtZXNSZWdpc3RlcmVkID0gc3VwcGxlbWVudDxXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eT4o
KS0+cmVnaXN0ZXJlZFVSSVNjaGVtZXMoKTsKLSNlbmRpZgogCiAgICAgICAgIHN1cHBsZW1lbnQ8
V2ViQ29va2llTWFuYWdlclByb3h5PigpLT5nZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShwYXJh
bWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlUGF0aCwgcGFyYW1ldGVycy5jb29raWVQZXJz
aXN0ZW50U3RvcmFnZVR5cGUpOwogICAgICAgICBwYXJhbWV0ZXJzLmNvb2tpZUFjY2VwdFBvbGlj
eSA9IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3k7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyUHJlZml4LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmgK
aW5kZXggMGM5NTljNC4uM2MxNzcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0
MlByZWZpeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaApAQCAtNzAsNiAr
NzAsNyBAQAogCiAjaWYgUExBVEZPUk0oR1RLKQogI2RlZmluZSBFTkFCTEVfTkVUV09SS19QUk9D
RVNTIDEKKyNkZWZpbmUgRU5BQkxFX0NVU1RPTV9QUk9UT0NPTFMgMQogI2VuZGlmCiAKIC8qIFdo
ZW4gQysrIGV4Y2VwdGlvbnMgYXJlIGRpc2FibGVkLCB0aGUgQysrIGxpYnJhcnkgZGVmaW5lcyB8
dHJ5fCBhbmQgfGNhdGNofApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDgxMWVlYTAuLjI5YzBkZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wMS0xNiAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
SW1wbGVtZW50IGN1c3RvbSBVUkkgc2NoZW1lcyB3aXRoIEN1c3RvbVByb3RvY29scworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3MDkxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVtcG9yYXJpbHkgZGlz
YWJsZSB0aGUgV2ViS2l0V2ViVmlldyBjaGVjayB1bnRpbCB3ZSBmaWd1cmUgb3V0CisgICAgICAg
IGhvdyB0byBpbXBsZW1lbnQgaXQgd2l0aCBDdXN0b21Qcm90b2NvbHMuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwOgor
CiAyMDE0LTAxLTE1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAg
ICAgIER1bXBSZW5kZXJUcmVlIGRvZXNuJ3QgZGlzYWJsZSB3ZWIgcHJlZmVyZW5jZXMgYXV0b3Nh
dmUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0
V2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJH
dGsvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IGE0MTQ4NTMuLjE4YjY0YzYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0V2Vi
Q29udGV4dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rl
c3RXZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMTQ2LDcgKzE0Niw4IEBAIHB1YmxpYzoKICAgICAg
ICAgdGVzdC0+bV91cmlTY2hlbWVSZXF1ZXN0ID0gcmVxdWVzdDsKICAgICAgICAgdGVzdC0+YXNz
ZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChyZXF1ZXN0KSk7CiAK
LSAgICAgICAgZ19hc3NlcnQod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXco
cmVxdWVzdCkgPT0gdGVzdC0+bV93ZWJWaWV3KTsKKyAgICAgICAgLy8gRklYTUU6IHdlYmtpdF91
cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3IGRvZXNuJ3Qgd29yayB3aXRoIGN1c3RvbSBw
cm90b2NvbHMuCisgICAgICAgIC8vIGdfYXNzZXJ0KHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
Z2V0X3dlYl92aWV3KHJlcXVlc3QpID09IHRlc3QtPm1fd2ViVmlldyk7CiAKICAgICAgICAgR1Jl
ZlB0cjxHSW5wdXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKGdfbWVtb3J5X2lucHV0
X3N0cmVhbV9uZXcoKSk7CiAgICAgICAgIHRlc3QtPmFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5U
ZXN0RmluaXNoZXMoR19PQkpFQ1QoaW5wdXRTdHJlYW0uZ2V0KCkpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221760</attachid>
            <date>2014-01-21 10:29:32 -0800</date>
            <delta_ts>2014-01-23 08:47:31 -0800</delta_ts>
            <desc>Rebased patch</desc>
            <filename>wk2-gtk-custom-protocols.diff</filename>
            <type>text/plain</type>
            <size>26262</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBlMmQ0M2VhLi45ZDc0OGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTQtMDEtMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEltcGxlbWVudCBjdXN0b20gVVJJIHNjaGVtZXMgd2l0aCBDdXN0
b21Qcm90b2NvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNzA5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSBvbGQgY2xhc3NlcyBhcmUgbm8gbG9uZ2VyIGJ1aWx0IGZvciBHVEsrIGFuZCBzaG91
bGQgYmUgcmVtb3ZlZCBvbmNlCisgICAgICAgIG90aGVyIHBvcnRzIHVzaW5nIHNvdXAgYmFja2Vu
ZCBzd2l0Y2ggdG8gY3VzdG9tIHByb3RvY29scyBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAq
IEdOVW1ha2VmaWxlLmFtOiBSZW1vdmUgaW5jbHVkZSBwYXRoLgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06IFJlbW92ZSBmaWxlcyBmcm9tIGNvbXBpbGF0aW9uLgorICAgICAgICAqIFBs
YXRmb3JtR1RLLmNtYWtlOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVxdWVzdE1h
bmFnZXJDbGllbnQuY3BwOgorICAgICAgICAoc3RhcnRMb2FkaW5nKToKKyAgICAgICAgKHN0b3BM
b2FkaW5nKToKKyAgICAgICAgKGF0dGFjaFJlcXVlc3RNYW5hZ2VyQ2xpZW50VG9Db250ZXh0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcDoK
KyAgICAgICAgKHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RDcmVhdGUpOgorICAgICAgICAod2Via2l0
X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcpOgorICAgICAgICAod2Via2l0VVJJU2No
ZW1lUmVxdWVzdFJlYWRDYWxsYmFjayk6CisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1
ZXN0X2ZpbmlzaCk6CisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9l
cnJvcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0
LmNwcDoKKyAgICAgICAgKGNyZWF0ZURlZmF1bHRXZWJDb250ZXh0KToKKyAgICAgICAgKHdlYmtp
dF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1lKToKKyAgICAgICAgKHdlYmtpdFdlYkNv
bnRleHRHZXRSZXF1ZXN0TWFuYWdlcik6CisgICAgICAgICh3ZWJraXRXZWJDb250ZXh0U3RhcnRM
b2FkaW5nQ3VzdG9tUHJvdG9jb2wpOgorICAgICAgICAod2Via2l0V2ViQ29udGV4dFN0b3BMb2Fk
aW5nQ3VzdG9tUHJvdG9jb2wpOgorICAgICAgICAod2Via2l0V2ViQ29udGV4dERpZEZpbmlzaExv
YWRpbmdDdXN0b21Qcm90b2NvbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViQ29udGV4dFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRH
dGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXQyUHJlZml4Lmg6IEVuYWJsZSBDdXN0b21Qcm90
b2NvbHMgdW5jb25kaXRpb25hbGx5IGZvciB0aGUKKyAgICAgICAgR1RLKyBwb3J0LgorCiAyMDE0
LTAxLTIxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbU09VUF0gSW1wbGVtZW50IENVU1RPTSBQUk9UT0NPTFMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0K
aW5kZXggMWI0NTNjNC4uYzI5OWIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFr
ZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KQEAgLTQyOCw3ICs0
MjgsNiBAQCB2cGF0aCAlLm1lc3NhZ2VzLmluID0gXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL1Bs
dWdpbnMgXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL1Jlc291cmNlQ2FjaGUgXAogCSQoV2ViS2l0
MikvVUlQcm9jZXNzL1N0b3JhZ2UgXAotCSQoV2ViS2l0MikvVUlQcm9jZXNzL3NvdXAgXAogCSQo
V2ViS2l0MikvV2ViUHJvY2VzcyBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL0FwcGxpY2F0aW9u
Q2FjaGUgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9CYXR0ZXJ5IFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IGQzMGMyYTcuLjk2OWVlOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtMTYwLDEwICsxNjAsNiBAQCB3ZWJraXQyX2J1aWx0X3NvdXJjZXMgKz0g
XAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1l
c3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUmVzb3VyY2VMb2FkZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlJlc291cmNlTG9h
ZGVyTWVzc2FnZXMuaCBcCi0JRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTb3VwUmVxdWVzdE1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNv
dXBSZXF1ZXN0TWFuYWdlck1lc3NhZ2VzLmggXAotCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
U291cFJlcXVlc3RNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKLQlEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJWaWJyYXRpb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
XAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViVmlicmF0aW9uUHJveHlNZXNzYWdlcy5oCiAK
QEAgLTUyMSwxMCArNTE3LDYgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLVmlldy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvZ3RrL1dLVmlld1ByaXZhdGUuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL3NvdXAvV0tBUElDYXN0U291cC5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0Mvc291cC9XS0NvbnRleHRTb3VwLmNwcCBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL3NvdXAvV0tDb250ZXh0U291cC5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0Mvc291cC9XS1NvdXBSZXF1ZXN0TWFuYWdlci5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9zb3VwL1dLU291cFJlcXVlc3RNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9zb3VwL1dLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFn
ZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvc291cC9XS1NvdXBDdXN0
b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XZWJLaXQyX0MuaCBcCkBAIC04ODYsMTAgKzg3OCw2IEBAIHdlYmtpdDJfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuaCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwIFwKIAlT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJDb29raWVNYW5hZ2VyUHJveHlTb3VwLmNw
cCBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2Vy
Q2xpZW50LmNwcCBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVl
c3RNYW5hZ2VyQ2xpZW50LmggXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNv
dXBSZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3Nv
dXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1RleHRDaGVja2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tl
ckNvbXBsZXRpb24uaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RleHRDaGVja2VyQ29t
cGxldGlvbi5jcHAgXApAQCAtMTE4OCw4ICsxMTc2LDYgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaCBcCiAJ
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNw
cCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJ
bXBsLmggXAotCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1h
bmFnZXIuY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVl
c3RNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNz
U291cC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVx
dWVzdEdlbmVyaWMuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0
U291cFJlcXVlc3RHZW5lcmljLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCAyNThh
ODBjLi42MTE3MTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtNzYsOSArNzYsNyBA
QCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0MvZ3RrL1dL
SW5zcGVjdG9yQ2xpZW50R3RrLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9ndGsvV0tWaWV3LmNw
cAogCi0gICAgVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tDb250ZXh0U291cC5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL0Mvc291cC9XS0Nvb2tpZU1hbmFnZXJTb3VwLmNwcAotICAgIFVJUHJvY2Vzcy9B
UEkvQy9zb3VwL1dLU291cFJlcXVlc3RNYW5hZ2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9z
b3VwL1dLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwCiAKICAgICBVSVByb2Nl
c3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTI2MSw4ICsyNTksNiBAQCBsaXN0KEFQ
UEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NQcm94eUd0
ay5jcHAKIAogICAgIFVJUHJvY2Vzcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJQcm94eVNvdXAuY3Bw
Ci0gICAgVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmNwcAotICAg
IFVJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogCiAgICAgV2Vi
UHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3BwCiAgICAgV2ViUHJv
Y2Vzcy9Db29raWVzL3NvdXAvV2ViS2l0U291cENvb2tpZUphclNxbGl0ZS5jcHAKQEAgLTMwMyw3
ICsyOTksNiBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL3Nv
dXAvV2ViS2l0U291cFJlcXVlc3RHZW5lcmljLmNwcAogICAgIFdlYlByb2Nlc3Mvc291cC9XZWJL
aXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAogICAgIFdlYlByb2Nlc3Mvc291cC9XZWJQcm9j
ZXNzU291cC5jcHAKLSAgICBXZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyLmNw
cAogKQogCiBzZXQoV2ViS2l0MkdUS19JTlNUQUxMRURfSEVBREVSUwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5oCmluZGV4IDgzOTA0YWQuLmJk
MDYwZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQ
cml2YXRlLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgV2ViS2l0UHJpdmF0ZV9oCiAKICNp
bmNsdWRlIDxXZWJLaXQyL1dLQVBJQ2FzdC5oPgotI2luY2x1ZGUgPFdlYktpdDIvV0tDb250ZXh0
U291cC5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tEb3dubG9hZC5oPgogI2luY2x1ZGUgPFdlYktp
dDIvV0tGaW5kT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tGdWxsU2NyZWVuQ2xpZW50
R3RrLmg+CkBAIC0zOSw3ICszOCw3IEBACiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0luc3BlY3RvckNs
aWVudEd0ay5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxX
ZWJLaXQyL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg+Ci0jaW5jbHVkZSA8V2ViS2l0Mi9XS1Nv
dXBSZXF1ZXN0TWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tTb3VwQ3VzdG9tUHJvdG9j
b2xSZXF1ZXN0TWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tTdHJpbmcuaD4KICNpbmNs
dWRlIDxXZWJLaXQyL1dLVGV4dENoZWNrZXIuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dlYktpdDJf
Qy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
UmVxdWVzdE1hbmFnZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0UmVxdWVzdE1hbmFnZXJDbGllbnQuY3BwCmluZGV4IGFjYzE5MDEuLjcyZjkxZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlcXVl
c3RNYW5hZ2VyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAKQEAgLTIwLDM0ICsyMCwzMCBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdFJlcXVlc3RNYW5hZ2VyQ2xpZW50Lmgi
CiAKLSNpbmNsdWRlICJXZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUg
IldlYktpdFdlYkNvbnRleHRQcml2YXRlLmgiCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0
ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1zdGF0aWMgdm9pZCBkaWRSZWNlaXZl
VVJJUmVxdWVzdChXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiBzb3VwUmVxdWVzdE1hbmFnZXJSZWYs
IFdLVVJMUmVmIHVybFJlZiwgV0tQYWdlUmVmIGluaXRpYXRpbmdQYWdlUmVmLCB1aW50NjRfdCBy
ZXF1ZXN0SUQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBzdGFydExvYWRp
bmcoV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiBzb3VwUmVxdWVzdE1hbmFn
ZXJSZWYsIHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0
UmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewotICAgIFdlYktpdFdlYkNvbnRleHQqIHdl
YkNvbnRleHQgPSBXRUJLSVRfV0VCX0NPTlRFWFQoY2xpZW50SW5mbyk7Ci0gICAgR1JlZlB0cjxX
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0PiByZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdFVSSVNjaGVt
ZVJlcXVlc3RDcmVhdGUod2ViQ29udGV4dCwgdG9JbXBsKHNvdXBSZXF1ZXN0TWFuYWdlclJlZiks
IHRvSW1wbCh1cmxSZWYpLCB0b0ltcGwoaW5pdGlhdGluZ1BhZ2VSZWYpLCByZXF1ZXN0SUQpKTsK
LSAgICB3ZWJraXRXZWJDb250ZXh0UmVjZWl2ZWRVUklSZXF1ZXN0KHdlYkNvbnRleHQsIHJlcXVl
c3QuZ2V0KCkpOworICAgIHdlYmtpdFdlYkNvbnRleHRTdGFydExvYWRpbmdDdXN0b21Qcm90b2Nv
bChXRUJLSVRfV0VCX0NPTlRFWFQoY2xpZW50SW5mbyksIGN1c3RvbVByb3RvY29sSUQsIHRvSW1w
bChyZXF1ZXN0UmVmKSk7CiB9CiAKLXN0YXRpYyB2b2lkIGRpZEZhaWxUb0xvYWRVUklSZXF1ZXN0
KFdLU291cFJlcXVlc3RNYW5hZ2VyUmVmLCB1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBzdG9wTG9hZGluZyhXS1NvdXBDdXN0b21Qcm90b2Nv
bFJlcXVlc3RNYW5hZ2VyUmVmLCB1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQogewotICAgIHdlYmtpdFdlYkNvbnRleHREaWRGYWlsVG9Mb2FkVVJJUmVx
dWVzdChXRUJLSVRfV0VCX0NPTlRFWFQoY2xpZW50SW5mbyksIHJlcXVlc3RJRCk7CisgICAgd2Vi
a2l0V2ViQ29udGV4dFN0b3BMb2FkaW5nQ3VzdG9tUHJvdG9jb2woV0VCS0lUX1dFQl9DT05URVhU
KGNsaWVudEluZm8pLCBjdXN0b21Qcm90b2NvbElEKTsKIH0KIAogdm9pZCBhdHRhY2hSZXF1ZXN0
TWFuYWdlckNsaWVudFRvQ29udGV4dChXZWJLaXRXZWJDb250ZXh0KiB3ZWJDb250ZXh0KQogewot
ICAgIFdLU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50VjAgd2tSZXF1ZXN0TWFuYWdlckNsaWVudCA9
IHsKKyAgICBXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyQ2xpZW50VjAgd2tSZXF1
ZXN0TWFuYWdlckNsaWVudCA9IHsKICAgICAgICAgewogICAgICAgICAgICAgMCwgLy8gdmVyc2lv
bgogICAgICAgICAgICAgd2ViQ29udGV4dCAvLyBjbGllbnRJbmZvCiAgICAgICAgIH0sCi0gICAg
ICAgIGRpZFJlY2VpdmVVUklSZXF1ZXN0LAotICAgICAgICBkaWRGYWlsVG9Mb2FkVVJJUmVxdWVz
dAorICAgICAgICBzdGFydExvYWRpbmcsCisgICAgICAgIHN0b3BMb2FkaW5nCiAgICAgfTsKLSAg
ICBXS1NvdXBSZXF1ZXN0TWFuYWdlclNldENsaWVudCh0b0FQSSh3ZWJraXRXZWJDb250ZXh0R2V0
UmVxdWVzdE1hbmFnZXIod2ViQ29udGV4dCkpLCAmd2tSZXF1ZXN0TWFuYWdlckNsaWVudC5iYXNl
KTsKKyAgICBXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyU2V0Q2xpZW50KHRvQVBJ
KHdlYmtpdFdlYkNvbnRleHRHZXRSZXF1ZXN0TWFuYWdlcih3ZWJDb250ZXh0KSksICZ3a1JlcXVl
c3RNYW5hZ2VyQ2xpZW50LmJhc2UpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCmluZGV4IGQw
MTM2Y2QuLjE3NjA2N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCkBAIC0yNSw3ICsyNSw2IEBA
CiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRX
ZWJWaWV3LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCi0jaW5jbHVkZSAiV2ViU291cFJl
cXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0dPd25QdHJTb3VwLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3Vw
Lmg+CkBAIC01NCw3ICs1Myw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgZ1JlYWRCdWZm
ZXJTaXplID0gODE5MjsKIAogc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZSB7
CiAgICAgV2ViS2l0V2ViQ29udGV4dCogd2ViQ29udGV4dDsKLSAgICBSZWZQdHI8V2ViU291cFJl
cXVlc3RNYW5hZ2VyUHJveHk+IHdlYlJlcXVlc3RNYW5hZ2VyOworICAgIFJlZlB0cjxXZWJTb3Vw
Q3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcj4gd2ViUmVxdWVzdE1hbmFnZXI7CiAgICAgUmVm
UHRyPFdlYlBhZ2VQcm94eT4gaW5pdGlhdGluZ1BhZ2U7CiAgICAgdWludDY0X3QgcmVxdWVzdElE
OwogICAgIENTdHJpbmcgdXJpOwpAQCAtNzQsMjIgKzczLDE3IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF91cmlfc2NoZW1lX3JlcXVlc3RfY2xhc3NfaW5pdChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0Q2xh
c3MqIHJlCiB7CiB9CiAKLVdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHdlYmtpdFVSSVNjaGVtZVJl
cXVlc3RDcmVhdGUoV2ViS2l0V2ViQ29udGV4dCogd2ViQ29udGV4dCwgV2ViU291cFJlcXVlc3RN
YW5hZ2VyUHJveHkqIHdlYlJlcXVlc3RNYW5hZ2VyLCBBUEk6OlVSTCogd2ViVVJMLCBXZWJQYWdl
UHJveHkqIGluaXRpYXRpbmdQYWdlLCB1aW50NjRfdCByZXF1ZXN0SUQpCitXZWJLaXRVUklTY2hl
bWVSZXF1ZXN0KiB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0Q3JlYXRlKHVpbnQ2NF90IHJlcXVlc3RJ
RCwgV2ViS2l0V2ViQ29udGV4dCogd2ViQ29udGV4dCwgQVBJOjpVUkxSZXF1ZXN0KiB1cmxSZXF1
ZXN0LCBXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQYWdlKQogewogICAgIFdlYktpdFVSSVNjaGVt
ZVJlcXVlc3QqIHJlcXVlc3QgPSBXRUJLSVRfVVJJX1NDSEVNRV9SRVFVRVNUKGdfb2JqZWN0X25l
dyhXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFUVVFU1QsIE5VTEwpKTsKICAgICByZXF1ZXN0LT5w
cml2LT53ZWJDb250ZXh0ID0gd2ViQ29udGV4dDsKLSAgICByZXF1ZXN0LT5wcml2LT53ZWJSZXF1
ZXN0TWFuYWdlciA9IHdlYlJlcXVlc3RNYW5hZ2VyOwotICAgIHJlcXVlc3QtPnByaXYtPnVyaSA9
IHdlYlVSTC0+c3RyaW5nKCkudXRmOCgpOworICAgIHJlcXVlc3QtPnByaXYtPndlYlJlcXVlc3RN
YW5hZ2VyID0gd2Via2l0V2ViQ29udGV4dEdldFJlcXVlc3RNYW5hZ2VyKHdlYkNvbnRleHQpOwor
ICAgIHJlcXVlc3QtPnByaXYtPnVyaSA9IHVybFJlcXVlc3QtPnJlc291cmNlUmVxdWVzdCgpLnVy
bCgpLnN0cmluZygpLnV0ZjgoKTsKICAgICByZXF1ZXN0LT5wcml2LT5pbml0aWF0aW5nUGFnZSA9
IGluaXRpYXRpbmdQYWdlOwogICAgIHJlcXVlc3QtPnByaXYtPnJlcXVlc3RJRCA9IHJlcXVlc3RJ
RDsKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAotdWludDY0X3Qgd2Via2l0VVJJU2NoZW1lUmVx
dWVzdEdldElEKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJu
IHJlcXVlc3QtPnByaXYtPnJlcXVlc3RJRDsKLX0KLQogdm9pZCB3ZWJraXRVUklTY2hlbWVSZXF1
ZXN0Q2FuY2VsKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QpCiB7CiAgICAgaWYgKHJl
cXVlc3QtPnByaXYtPmNhbmNlbGxhYmxlLmdldCgpKQpAQCAtMTU3LDcgKzE1MSw4IEBAIFdlYktp
dFdlYlZpZXcqIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3KFdlYktpdFVS
SVNjaGVtZVJlcXVlc3QqIHJlCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lT
X1VSSV9TQ0hFTUVfUkVRVUVTVChyZXF1ZXN0KSwgMCk7CiAKLSAgICByZXR1cm4gV0VCS0lUX1dF
Ql9WSUVXKHJlcXVlc3QtPnByaXYtPmluaXRpYXRpbmdQYWdlLT52aWV3V2lkZ2V0KCkpOworICAg
IC8vIEZJWE1FOiBpbml0aWF0aW5nUGFnZSBpcyBub3cgYWx3YXlzIE5VTEwsIHdlIG5lZWQgdG8g
cmUtaW1wbGVtZW50IHRoaXMgc29tZWhvdy4KKyAgICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+aW5p
dGlhdGluZ1BhZ2UgPyBXRUJLSVRfV0VCX1ZJRVcocmVxdWVzdC0+cHJpdi0+aW5pdGlhdGluZ1Bh
Z2UtPnZpZXdXaWRnZXQoKSkgOiBudWxscHRyOwogfQogCiBzdGF0aWMgdm9pZCB3ZWJraXRVUklT
Y2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3lu
Y1Jlc3VsdCogcmVzdWx0LCBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiBzY2hlbWVSZXF1ZXN0KQpA
QCAtMTczLDIxICsxNjgsMjUgQEAgc3RhdGljIHZvaWQgd2Via2l0VVJJU2NoZW1lUmVxdWVzdFJl
YWRDYWxsYmFjayhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCBHQXN5bmMKICAgICBXZWJLaXRV
UklTY2hlbWVSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CiAgICAgUmVmUHRy
PEFQSTo6RGF0YT4gd2ViRGF0YSA9IEFQSTo6RGF0YTo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdW5zaWduZWQgY2hhcio+KHByaXYtPnJlYWRCdWZmZXIpLCBieXRlc1JlYWQpOwogICAg
IGlmICghcHJpdi0+Ynl0ZXNSZWFkKSB7Ci0gICAgICAgIC8vIEZpcnN0IGNodW5rIHJlYWQuIElu
IGNhc2Ugb2YgZW1wdHkgcmVwbHkgYW4gZW1wdHkgQVBJOjpEYXRhIGlzIHNlbnQgdG8gdGhlIFdl
YlByb2Nlc3MuCi0gICAgICAgIHByaXYtPndlYlJlcXVlc3RNYW5hZ2VyLT5kaWRIYW5kbGVVUklS
ZXF1ZXN0KHdlYkRhdGEuZ2V0KCksIHByaXYtPnN0cmVhbUxlbmd0aCwgU3RyaW5nOjpmcm9tVVRG
OChwcml2LT5taW1lVHlwZS5kYXRhKCkpLCBwcml2LT5yZXF1ZXN0SUQpOworICAgICAgICAvLyBG
aXJzdCBjaHVuayByZWFkLiBJbiBjYXNlIG9mIGVtcHR5IHJlcGx5IGFuIGVtcHR5IEFQSTo6RGF0
YSBpcyBzZW50IHRvIHRoZSBuZXR3b3JraW5nIHByb2Nlc3MuCisgICAgICAgIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UgcmVzcG9uc2UoV2ViQ29yZTo6VVJMKFdlYkNvcmU6OlVSTCgpLCBTdHJp
bmc6OmZyb21VVEY4KHByaXYtPnVyaSkpLCBTdHJpbmc6OmZyb21VVEY4KHByaXYtPm1pbWVUeXBl
LmRhdGEoKSksCisgICAgICAgICAgICBwcml2LT5zdHJlYW1MZW5ndGgsIGVtcHR5U3RyaW5nKCks
IGVtcHR5U3RyaW5nKCkpOworICAgICAgICBwcml2LT53ZWJSZXF1ZXN0TWFuYWdlci0+ZGlkUmVj
ZWl2ZVJlc3BvbnNlKHByaXYtPnJlcXVlc3RJRCwgcmVzcG9uc2UpOworICAgICAgICBwcml2LT53
ZWJSZXF1ZXN0TWFuYWdlci0+ZGlkTG9hZERhdGEocHJpdi0+cmVxdWVzdElELCB3ZWJEYXRhLmdl
dCgpKTsKICAgICB9IGVsc2UgaWYgKGJ5dGVzUmVhZCB8fCAoIWJ5dGVzUmVhZCAmJiAhcHJpdi0+
c3RyZWFtTGVuZ3RoKSkgewotICAgICAgICAvLyBTdWJzZXF1ZW50IGNodW5rIHJlYWQuIFdlIG9u
bHkgc2VuZCBhbiBlbXB0eSBBUEk6OkRhdGEgdG8gdGhlIFdlYlByb2Nlc3Mgd2hlbiBzdHJlYW0g
bGVuZ3RoIGlzIHVua25vd24uCi0gICAgICAgIHByaXYtPndlYlJlcXVlc3RNYW5hZ2VyLT5kaWRS
ZWNlaXZlVVJJUmVxdWVzdERhdGEod2ViRGF0YS5nZXQoKSwgcHJpdi0+cmVxdWVzdElEKTsKKyAg
ICAgICAgLy8gU3Vic2VxdWVudCBjaHVuayByZWFkLiBXZSBvbmx5IHNlbmQgYW4gZW1wdHkgQVBJ
OjpEYXRhIHRvIHRoZSBuZXR3b3JraW5nIHByb2Nlc3Mgd2hlbiBzdHJlYW0gbGVuZ3RoIGlzIHVu
a25vd24uCisgICAgICAgIHByaXYtPndlYlJlcXVlc3RNYW5hZ2VyLT5kaWRMb2FkRGF0YShwcml2
LT5yZXF1ZXN0SUQsIHdlYkRhdGEuZ2V0KCkpOwogICAgIH0KIAogICAgIGlmICghYnl0ZXNSZWFk
KSB7Ci0gICAgICAgIHdlYmtpdFdlYkNvbnRleHREaWRGaW5pc2hVUklSZXF1ZXN0KHJlcXVlc3Qt
PnByaXYtPndlYkNvbnRleHQsIHJlcXVlc3QtPnByaXYtPnJlcXVlc3RJRCk7CisgICAgICAgIHBy
aXYtPndlYlJlcXVlc3RNYW5hZ2VyLT5kaWRGaW5pc2hMb2FkaW5nKHJlcXVlc3QtPnByaXYtPnJl
cXVlc3RJRCk7CisgICAgICAgIHdlYmtpdFdlYkNvbnRleHREaWRGaW5pc2hMb2FkaW5nQ3VzdG9t
UHJvdG9jb2wocmVxdWVzdC0+cHJpdi0+d2ViQ29udGV4dCwgcmVxdWVzdC0+cHJpdi0+cmVxdWVz
dElEKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIHByaXYtPmJ5dGVzUmVhZCArPSBi
eXRlc1JlYWQ7CiAgICAgZ19pbnB1dF9zdHJlYW1fcmVhZF9hc3luYyhpbnB1dFN0cmVhbSwgcHJp
di0+cmVhZEJ1ZmZlciwgZ1JlYWRCdWZmZXJTaXplLCBHX1BSSU9SSVRZX0RFRkFVTFQsIHByaXYt
PmNhbmNlbGxhYmxlLmdldCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRl
cnByZXRfY2FzdDxHQXN5bmNSZWFkeUNhbGxiYWNrPih3ZWJraXRVUklTY2hlbWVSZXF1ZXN0UmVh
ZENhbGxiYWNrKSwgZ19vYmplY3RfcmVmKHJlcXVlc3QuZ2V0KCkpKTsKKyAgICAgICAgcmVpbnRl
cnByZXRfY2FzdDxHQXN5bmNSZWFkeUNhbGxiYWNrPih3ZWJraXRVUklTY2hlbWVSZXF1ZXN0UmVh
ZENhbGxiYWNrKSwgZ19vYmplY3RfcmVmKHJlcXVlc3QuZ2V0KCkpKTsKIH0KIAogLyoqCkBAIC0y
MTIsNyArMjExLDcgQEAgdm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaChXZWJL
aXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0LCBHSW5wdXRTdHIKICAgICByZXF1ZXN0LT5wcml2
LT5ieXRlc1JlYWQgPSAwOwogICAgIHJlcXVlc3QtPnByaXYtPm1pbWVUeXBlID0gbWltZVR5cGU7
CiAgICAgZ19pbnB1dF9zdHJlYW1fcmVhZF9hc3luYyhpbnB1dFN0cmVhbSwgcmVxdWVzdC0+cHJp
di0+cmVhZEJ1ZmZlciwgZ1JlYWRCdWZmZXJTaXplLCBHX1BSSU9SSVRZX0RFRkFVTFQsIHJlcXVl
c3QtPnByaXYtPmNhbmNlbGxhYmxlLmdldCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVpbnRlcnByZXRfY2FzdDxHQXN5bmNSZWFkeUNhbGxiYWNrPih3ZWJraXRVUklTY2hlbWVS
ZXF1ZXN0UmVhZENhbGxiYWNrKSwgZ19vYmplY3RfcmVmKHJlcXVlc3QpKTsKKyAgICAgICAgcmVp
bnRlcnByZXRfY2FzdDxHQXN5bmNSZWFkeUNhbGxiYWNrPih3ZWJraXRVUklTY2hlbWVSZXF1ZXN0
UmVhZENhbGxiYWNrKSwgZ19vYmplY3RfcmVmKHJlcXVlc3QpKTsKIH0KIAogLyoqCkBAIC0yMzIs
NyArMjMxLDYgQEAgdm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcihX
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0LCBHRXIKICAgICBXZWJLaXRVUklTY2hlbWVS
ZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CiAKICAgICBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yIHJlc291cmNlRXJyb3IoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbiks
IGVycm9yLT5jb2RlLCBwcml2LT51cmkuZGF0YSgpLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5t
ZXNzYWdlKSk7Ci0gICAgcHJpdi0+d2ViUmVxdWVzdE1hbmFnZXItPmRpZEZhaWxVUklSZXF1ZXN0
KHJlc291cmNlRXJyb3IsIHByaXYtPnJlcXVlc3RJRCk7Ci0KLSAgICB3ZWJraXRXZWJDb250ZXh0
RGlkRmluaXNoVVJJUmVxdWVzdChwcml2LT53ZWJDb250ZXh0LCBwcml2LT5yZXF1ZXN0SUQpOwor
ICAgIHByaXYtPndlYlJlcXVlc3RNYW5hZ2VyLT5kaWRGYWlsV2l0aEVycm9yKHByaXYtPnJlcXVl
c3RJRCwgcmVzb3VyY2VFcnJvcik7CisgICAgd2Via2l0V2ViQ29udGV4dERpZEZpbmlzaExvYWRp
bmdDdXN0b21Qcm90b2NvbChwcml2LT53ZWJDb250ZXh0LCBwcml2LT5yZXF1ZXN0SUQpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmgKaW5kZXggMzg2NzE3My4uNTIwODk5MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZS5oCkBAIC0yNCw4ICsyNCw3IEBACiAjaW5jbHVk
ZSAiV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oIgogI2luY2x1ZGUgIldlYktpdFdlYkNvbnRleHQu
aCIKIAotV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogd2Via2l0VVJJU2NoZW1lUmVxdWVzdENyZWF0
ZShXZWJLaXRXZWJDb250ZXh0KiwgV2ViS2l0OjpXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eSos
IEFQSTo6VVJMKiwgV2ViS2l0OjpXZWJQYWdlUHJveHkqLCB1aW50NjRfdCByZXF1ZXN0SUQpOwot
dWludDY0X3Qgd2Via2l0VVJJU2NoZW1lUmVxdWVzdEdldElEKFdlYktpdFVSSVNjaGVtZVJlcXVl
c3QqKTsKK1dlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RDcmVh
dGUodWludDY0X3QgcmVxdWVzdElELCBXZWJLaXRXZWJDb250ZXh0KiwgQVBJOjpVUkxSZXF1ZXN0
KiwgV2ViS2l0OjpXZWJQYWdlUHJveHkqKTsKIHZvaWQgd2Via2l0VVJJU2NoZW1lUmVxdWVzdENh
bmNlbChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0Kik7CiAKICNlbmRpZiAvLyBXZWJLaXRVUklTY2hl
bWVSZXF1ZXN0UHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IGQ1NmY1ZTUuLmNlZDQ3ZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRl
eHQuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgc3RydWN0IF9XZWJLaXRXZWJDb250ZXh0UHJpdmF0
ZSB7CiAgICAgR1JlZlB0cjxXZWJLaXRDb29raWVNYW5hZ2VyPiBjb29raWVNYW5hZ2VyOwogICAg
IEdSZWZQdHI8V2ViS2l0RmF2aWNvbkRhdGFiYXNlPiBmYXZpY29uRGF0YWJhc2U7CiAgICAgR1Jl
ZlB0cjxXZWJLaXRTZWN1cml0eU1hbmFnZXI+IHNlY3VyaXR5TWFuYWdlcjsKLSAgICBSZWZQdHI8
V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk+IHJlcXVlc3RNYW5hZ2VyOworICAgIFJlZlB0cjxX
ZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcj4gcmVxdWVzdE1hbmFnZXI7CiAgICAg
VVJJU2NoZW1lSGFuZGxlck1hcCB1cmlTY2hlbWVIYW5kbGVyczsKICAgICBVUklTY2hlbWVSZXF1
ZXN0TWFwIHVyaVNjaGVtZVJlcXVlc3RzOwogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKQEAgLTIy
Niw3ICsyMjYsNyBAQCBzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRGVmYXVsdFdlYkNvbnRleHQoZ3Bv
aW50ZXIpCiAgICAgV2ViS2l0V2ViQ29udGV4dFByaXZhdGUqIHByaXYgPSB3ZWJDb250ZXh0LT5w
cml2OwogCiAgICAgcHJpdi0+Y29udGV4dCA9IFdlYkNvbnRleHQ6OmNyZWF0ZShXZWJDb3JlOjpm
aWxlbmFtZVRvU3RyaW5nKGluamVjdGVkQnVuZGxlRmlsZW5hbWUoKS5kYXRhKCkpKTsKLSAgICBw
cml2LT5yZXF1ZXN0TWFuYWdlciA9IHdlYkNvbnRleHQtPnByaXYtPmNvbnRleHQtPnN1cHBsZW1l
bnQ8V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk+KCk7CisgICAgcHJpdi0+cmVxdWVzdE1hbmFn
ZXIgPSB3ZWJDb250ZXh0LT5wcml2LT5jb250ZXh0LT5zdXBwbGVtZW50PFdlYlNvdXBDdXN0b21Q
cm90b2NvbFJlcXVlc3RNYW5hZ2VyPigpOwogICAgIHByaXYtPmNvbnRleHQtPnNldENhY2hlTW9k
ZWwoQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyKTsKICNpZiBFTkFCTEUoTkVUV09SS19QUk9D
RVNTKQogICAgIC8vIEZJWE1FOiBUZW1wb3JhcnkgdXNlIGFuIGVudiB2YXIgdW50aWwgd2UgaGF2
ZSBBUEkgdG8gc2V0IHRoZSBwcm9jZXNzIG1vZGVsLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNTQ2My4KQEAgLTY0Myw3ICs2NDMsNyBAQCB2b2lkIHdlYmtp
dF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1lKFdlYktpdFdlYkNvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IGNoYQogCiAgICAgUmVmUHRyPFdlYktpdFVSSVNjaGVtZUhhbmRsZXI+IGhhbmRs
ZXIgPSBhZG9wdFJlZihuZXcgV2ViS2l0VVJJU2NoZW1lSGFuZGxlcihjYWxsYmFjaywgdXNlckRh
dGEsIGRlc3Ryb3lOb3RpZnkpKTsKICAgICBjb250ZXh0LT5wcml2LT51cmlTY2hlbWVIYW5kbGVy
cy5zZXQoU3RyaW5nOjpmcm9tVVRGOChzY2hlbWUpLCBoYW5kbGVyLmdldCgpKTsKLSAgICBjb250
ZXh0LT5wcml2LT5yZXF1ZXN0TWFuYWdlci0+cmVnaXN0ZXJVUklTY2hlbWUoU3RyaW5nOjpmcm9t
VVRGOChzY2hlbWUpKTsKKyAgICBjb250ZXh0LT5wcml2LT5yZXF1ZXN0TWFuYWdlci0+cmVnaXN0
ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2NvbChTdHJpbmc6OmZyb21VVEY4KHNjaGVtZSkpOwogfQog
CiAvKioKQEAgLTkzNCwzNCArOTM0LDM2IEBAIFdlYkNvbnRleHQqIHdlYmtpdFdlYkNvbnRleHRH
ZXRDb250ZXh0KFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQpCiAgICAgcmV0dXJuIGNvbnRleHQt
PnByaXYtPmNvbnRleHQuZ2V0KCk7CiB9CiAKLVdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5KiB3
ZWJraXRXZWJDb250ZXh0R2V0UmVxdWVzdE1hbmFnZXIoV2ViS2l0V2ViQ29udGV4dCogY29udGV4
dCkKK1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyKiB3ZWJraXRXZWJDb250ZXh0
R2V0UmVxdWVzdE1hbmFnZXIoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCkKIHsKICAgICByZXR1
cm4gY29udGV4dC0+cHJpdi0+cmVxdWVzdE1hbmFnZXIuZ2V0KCk7CiB9CiAKLXZvaWQgd2Via2l0
V2ViQ29udGV4dFJlY2VpdmVkVVJJUmVxdWVzdChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBX
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQordm9pZCB3ZWJraXRXZWJDb250ZXh0U3Rh
cnRMb2FkaW5nQ3VzdG9tUHJvdG9jb2woV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwgdWludDY0
X3QgY3VzdG9tUHJvdG9jb2xJRCwgQVBJOjpVUkxSZXF1ZXN0KiB1cmxSZXF1ZXN0KQogewotICAg
IFN0cmluZyBzY2hlbWUoU3RyaW5nOjpmcm9tVVRGOCh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X2dldF9zY2hlbWUocmVxdWVzdCkpKTsKKyAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBmaWd1cmUg
b3V0IGhvdyB0byBnZXQgdGhlIGluaXRpYXRpbmcgcGFnZS4KKyAgICBHUmVmUHRyPFdlYktpdFVS
SVNjaGVtZVJlcXVlc3Q+IHJlcXVlc3QgPSBhZG9wdEdSZWYod2Via2l0VVJJU2NoZW1lUmVxdWVz
dENyZWF0ZShjdXN0b21Qcm90b2NvbElELCBjb250ZXh0LCB1cmxSZXF1ZXN0LCBudWxscHRyKSk7
CisgICAgU3RyaW5nIHNjaGVtZShTdHJpbmc6OmZyb21VVEY4KHdlYmtpdF91cmlfc2NoZW1lX3Jl
cXVlc3RfZ2V0X3NjaGVtZShyZXF1ZXN0LmdldCgpKSkpOwogICAgIFJlZlB0cjxXZWJLaXRVUklT
Y2hlbWVIYW5kbGVyPiBoYW5kbGVyID0gY29udGV4dC0+cHJpdi0+dXJpU2NoZW1lSGFuZGxlcnMu
Z2V0KHNjaGVtZSk7CiAgICAgQVNTRVJUKGhhbmRsZXIuZ2V0KCkpOwogICAgIGlmICghaGFuZGxl
ci0+aGFzQ2FsbGJhY2soKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29udGV4dC0+cHJpdi0+
dXJpU2NoZW1lUmVxdWVzdHMuc2V0KHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RHZXRJRChyZXF1ZXN0
KSwgcmVxdWVzdCk7Ci0gICAgaGFuZGxlci0+cGVyZm9ybUNhbGxiYWNrKHJlcXVlc3QpOworICAg
IGNvbnRleHQtPnByaXYtPnVyaVNjaGVtZVJlcXVlc3RzLnNldChjdXN0b21Qcm90b2NvbElELCBy
ZXF1ZXN0LmdldCgpKTsKKyAgICBoYW5kbGVyLT5wZXJmb3JtQ2FsbGJhY2socmVxdWVzdC5nZXQo
KSk7CiB9CiAKLXZvaWQgd2Via2l0V2ViQ29udGV4dERpZEZhaWxUb0xvYWRVUklSZXF1ZXN0KFdl
YktpdFdlYkNvbnRleHQqIGNvbnRleHQsIHVpbnQ2NF90IHJlcXVlc3RJRCkKK3ZvaWQgd2Via2l0
V2ViQ29udGV4dFN0b3BMb2FkaW5nQ3VzdG9tUHJvdG9jb2woV2ViS2l0V2ViQ29udGV4dCogY29u
dGV4dCwgdWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCkKIHsKLSAgICBHUmVmUHRyPFdlYktpdFVS
SVNjaGVtZVJlcXVlc3Q+IHJlcXVlc3QgPSBjb250ZXh0LT5wcml2LT51cmlTY2hlbWVSZXF1ZXN0
cy5nZXQocmVxdWVzdElEKTsKKyAgICBHUmVmUHRyPFdlYktpdFVSSVNjaGVtZVJlcXVlc3Q+IHJl
cXVlc3QgPSBjb250ZXh0LT5wcml2LT51cmlTY2hlbWVSZXF1ZXN0cy5nZXQoY3VzdG9tUHJvdG9j
b2xJRCk7CiAgICAgaWYgKCFyZXF1ZXN0LmdldCgpKQogICAgICAgICByZXR1cm47CiAgICAgd2Vi
a2l0VVJJU2NoZW1lUmVxdWVzdENhbmNlbChyZXF1ZXN0LmdldCgpKTsKIH0KIAotdm9pZCB3ZWJr
aXRXZWJDb250ZXh0RGlkRmluaXNoVVJJUmVxdWVzdChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0
LCB1aW50NjRfdCByZXF1ZXN0SUQpCit2b2lkIHdlYmtpdFdlYkNvbnRleHREaWRGaW5pc2hMb2Fk
aW5nQ3VzdG9tUHJvdG9jb2woV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwgdWludDY0X3QgY3Vz
dG9tUHJvdG9jb2xJRCkKIHsKLSAgICBjb250ZXh0LT5wcml2LT51cmlTY2hlbWVSZXF1ZXN0cy5y
ZW1vdmUocmVxdWVzdElEKTsKKyAgICBjb250ZXh0LT5wcml2LT51cmlTY2hlbWVSZXF1ZXN0cy5y
ZW1vdmUoY3VzdG9tUHJvdG9jb2xJRCk7CiB9CiAKIHZvaWQgd2Via2l0V2ViQ29udGV4dENyZWF0
ZVBhZ2VGb3JXZWJWaWV3KFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcsIFdlYktpdFdlYlZpZXdHcm91cCogd2ViVmlld0dyb3VwKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dFByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHRQcml2
YXRlLmgKaW5kZXggOTgwZWI3OS4uMDljNTIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0UHJpdmF0ZS5oCkBAIC0y
OSwyMCArMjksMTkgQEAKICNpbmNsdWRlICJEb3dubG9hZFByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
Q29udGV4dC5oIgogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRV
UklTY2hlbWVSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dC5oIgogI2luY2x1
ZGUgIldlYktpdFdlYlZpZXdHcm91cC5oIgotI2luY2x1ZGUgIldlYlNvdXBSZXF1ZXN0TWFuYWdl
clByb3h5LmgiCisjaW5jbHVkZSAiV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIu
aCIKIAogV2ViS2l0OjpXZWJDb250ZXh0KiB3ZWJraXRXZWJDb250ZXh0R2V0Q29udGV4dChXZWJL
aXRXZWJDb250ZXh0Kik7CiBXZWJLaXREb3dubG9hZCogd2Via2l0V2ViQ29udGV4dEdldE9yQ3Jl
YXRlRG93bmxvYWQoV2ViS2l0OjpEb3dubG9hZFByb3h5Kik7CiBXZWJLaXREb3dubG9hZCogd2Vi
a2l0V2ViQ29udGV4dFN0YXJ0RG93bmxvYWQoV2ViS2l0V2ViQ29udGV4dCosIGNvbnN0IGNoYXIq
IHVyaSwgV2ViS2l0OjpXZWJQYWdlUHJveHkqKTsKIHZvaWQgd2Via2l0V2ViQ29udGV4dFJlbW92
ZURvd25sb2FkKFdlYktpdDo6RG93bmxvYWRQcm94eSopOwogdm9pZCB3ZWJraXRXZWJDb250ZXh0
RG93bmxvYWRTdGFydGVkKFdlYktpdFdlYkNvbnRleHQqLCBXZWJLaXREb3dubG9hZCopOwotV2Vi
S2l0OjpXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eSogd2Via2l0V2ViQ29udGV4dEdldFJlcXVl
c3RNYW5hZ2VyKFdlYktpdFdlYkNvbnRleHQqKTsKLXZvaWQgd2Via2l0V2ViQ29udGV4dFJlY2Vp
dmVkVVJJUmVxdWVzdChXZWJLaXRXZWJDb250ZXh0KiwgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCop
Owotdm9pZCB3ZWJraXRXZWJDb250ZXh0RGlkRmFpbFRvTG9hZFVSSVJlcXVlc3QoV2ViS2l0V2Vi
Q29udGV4dCosIHVpbnQ2NF90IHJlcXVlc3RJRCk7Ci12b2lkIHdlYmtpdFdlYkNvbnRleHREaWRG
aW5pc2hVUklSZXF1ZXN0KFdlYktpdFdlYkNvbnRleHQqLCB1aW50NjRfdCByZXF1ZXN0SUQpOwor
V2ViS2l0OjpXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlciogd2Via2l0V2ViQ29u
dGV4dEdldFJlcXVlc3RNYW5hZ2VyKFdlYktpdFdlYkNvbnRleHQqKTsKK3ZvaWQgd2Via2l0V2Vi
Q29udGV4dFN0YXJ0TG9hZGluZ0N1c3RvbVByb3RvY29sKFdlYktpdFdlYkNvbnRleHQqLCB1aW50
NjRfdCBjdXN0b21Qcm90b2NvbElELCBBUEk6OlVSTFJlcXVlc3QqKTsKK3ZvaWQgd2Via2l0V2Vi
Q29udGV4dFN0b3BMb2FkaW5nQ3VzdG9tUHJvdG9jb2woV2ViS2l0V2ViQ29udGV4dCosIHVpbnQ2
NF90IGN1c3RvbVByb3RvY29sSUQpOwordm9pZCB3ZWJraXRXZWJDb250ZXh0RGlkRmluaXNoTG9h
ZGluZ0N1c3RvbVByb3RvY29sKFdlYktpdFdlYkNvbnRleHQqLCB1aW50NjRfdCBjdXN0b21Qcm90
b2NvbElEKTsKIHZvaWQgd2Via2l0V2ViQ29udGV4dENyZWF0ZVBhZ2VGb3JXZWJWaWV3KFdlYktp
dFdlYkNvbnRleHQqLCBXZWJLaXRXZWJWaWV3KiwgV2ViS2l0V2ViVmlld0dyb3VwKik7CiB2b2lk
IHdlYmtpdFdlYkNvbnRleHRXZWJWaWV3RGVzdHJveWVkKFdlYktpdFdlYkNvbnRleHQqLCBXZWJL
aXRXZWJWaWV3Kik7CiBXZWJLaXRXZWJWaWV3KiB3ZWJraXRXZWJDb250ZXh0R2V0V2ViVmlld0Zv
clBhZ2UoV2ViS2l0V2ViQ29udGV4dCosIFdlYktpdDo6V2ViUGFnZVByb3h5Kik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRHdGsuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0R3RrLmNwcAppbmRleCA4YWNlZjNj
Li5hZjYxMDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNv
bnRleHRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29udGV4
dEd0ay5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JTZXJ2ZXIu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU291cEN1c3RvbVByb3RvY29sUmVx
dWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdp
c3RyeS5oPgpAQCAtNDMsMTIgKzQ0LDYgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3Nh
Z2VzLmgiCiAjZW5kaWYKIAotI2lmIEVOQUJMRShDVVNUT01fUFJPVE9DT0xTKQotI2luY2x1ZGUg
IldlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmgiCi0jZWxzZQotI2luY2x1ZGUg
IldlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIHN0YXRpYyB2b2lkIGluaXRJbnNwZWN0b3JTZXJ2ZXIoKQpAQCAtMTA0LDExICs5OSw3
IEBAIHZvaWQgV2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAgICAgfQogCiAgICAgaWYgKCF1c2VzTmV0d29y
a1Byb2Nlc3MoKSkgewotI2lmIEVOQUJMRShDVVNUT01fUFJPVE9DT0xTKQogICAgICAgICBwYXJh
bWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJvdG9jb2xzID0gc3VwcGxlbWVu
dDxXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcj4oKS0+cmVnaXN0ZXJlZFNjaGVt
ZXNGb3JDdXN0b21Qcm90b2NvbHMoKTsKLSNlbHNlCi0gICAgICAgIHBhcmFtZXRlcnMudXJsU2No
ZW1lc1JlZ2lzdGVyZWQgPSBzdXBwbGVtZW50PFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5Pigp
LT5yZWdpc3RlcmVkVVJJU2NoZW1lcygpOwotI2VuZGlmCiAKICAgICAgICAgc3VwcGxlbWVudDxX
ZWJDb29raWVNYW5hZ2VyUHJveHk+KCktPmdldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKHBhcmFt
ZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VQYXRoLCBwYXJhbWV0ZXJzLmNvb2tpZVBlcnNp
c3RlbnRTdG9yYWdlVHlwZSk7CiAgICAgICAgIHBhcmFtZXRlcnMuY29va2llQWNjZXB0UG9saWN5
ID0gbV9pbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDJQcmVmaXguaCBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaApp
bmRleCAwYzk1OWM0Li4zYzE3NzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
UHJlZml4LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oCkBAIC03MCw2ICs3
MCw3IEBACiAKICNpZiBQTEFURk9STShHVEspCiAjZGVmaW5lIEVOQUJMRV9ORVRXT1JLX1BST0NF
U1MgMQorI2RlZmluZSBFTkFCTEVfQ1VTVE9NX1BST1RPQ09MUyAxCiAjZW5kaWYKIAogLyogV2hl
biBDKysgZXhjZXB0aW9ucyBhcmUgZGlzYWJsZWQsIHRoZSBDKysgbGlicmFyeSBkZWZpbmVzIHx0
cnl8IGFuZCB8Y2F0Y2h8CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggZDQxNmI2Yi4uNmE5MGZkZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTAxLTE2ICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBJ
bXBsZW1lbnQgY3VzdG9tIFVSSSBzY2hlbWVzIHdpdGggQ3VzdG9tUHJvdG9jb2xzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjcwOTEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZW1wb3JhcmlseSBkaXNh
YmxlIHRoZSBXZWJLaXRXZWJWaWV3IGNoZWNrIHVudGlsIHdlIGZpZ3VyZSBvdXQKKyAgICAgICAg
aG93IHRvIGltcGxlbWVudCBpdCB3aXRoIEN1c3RvbVByb3RvY29scy4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHA6CisK
IDIwMTQtMDEtMjEgIENoYW5nU2VvayBPaCAgPGNoYW5nc2Vvay5vaEBjb2xsYWJvcmEuY29tPgog
CiAgICAgICAgIFtHVEtdIEZpeCBhIGMrKzExIGNvbXBsaWFuY2UgaXNzdWUgZm9yIGZvbnRjb25m
aWcKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0
V2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJH
dGsvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IGE0MTQ4NTMuLjE4YjY0YzYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0V2Vi
Q29udGV4dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rl
c3RXZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMTQ2LDcgKzE0Niw4IEBAIHB1YmxpYzoKICAgICAg
ICAgdGVzdC0+bV91cmlTY2hlbWVSZXF1ZXN0ID0gcmVxdWVzdDsKICAgICAgICAgdGVzdC0+YXNz
ZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChyZXF1ZXN0KSk7CiAK
LSAgICAgICAgZ19hc3NlcnQod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXco
cmVxdWVzdCkgPT0gdGVzdC0+bV93ZWJWaWV3KTsKKyAgICAgICAgLy8gRklYTUU6IHdlYmtpdF91
cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3IGRvZXNuJ3Qgd29yayB3aXRoIGN1c3RvbSBw
cm90b2NvbHMuCisgICAgICAgIC8vIGdfYXNzZXJ0KHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
Z2V0X3dlYl92aWV3KHJlcXVlc3QpID09IHRlc3QtPm1fd2ViVmlldyk7CiAKICAgICAgICAgR1Jl
ZlB0cjxHSW5wdXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKGdfbWVtb3J5X2lucHV0
X3N0cmVhbV9uZXcoKSk7CiAgICAgICAgIHRlc3QtPmFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5U
ZXN0RmluaXNoZXMoR19PQkpFQ1QoaW5wdXRTdHJlYW0uZ2V0KCkpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221985</attachid>
            <date>2014-01-23 08:47:31 -0800</date>
            <delta_ts>2014-01-27 04:52:41 -0800</delta_ts>
            <desc>Rebased patch</desc>
            <filename>wk2-gtk-custom-protocols.diff</filename>
            <type>text/plain</type>
            <size>26331</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3Y2QwODg1Li45MTEzMDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTQtMDEtMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEltcGxlbWVudCBjdXN0b20gVVJJIHNjaGVtZXMgd2l0aCBDdXN0
b21Qcm90b2NvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNzA5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSBvbGQgY2xhc3NlcyBhcmUgbm8gbG9uZ2VyIGJ1aWx0IGZvciBHVEsrIGFuZCBzaG91
bGQgYmUgcmVtb3ZlZCBvbmNlCisgICAgICAgIG90aGVyIHBvcnRzIHVzaW5nIHNvdXAgYmFja2Vu
ZCBzd2l0Y2ggdG8gY3VzdG9tIHByb3RvY29scyBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAq
IEdOVW1ha2VmaWxlLmFtOiBSZW1vdmUgaW5jbHVkZSBwYXRoLgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06IFJlbW92ZSBmaWxlcyBmcm9tIGNvbXBpbGF0aW9uLgorICAgICAgICAqIFBs
YXRmb3JtR1RLLmNtYWtlOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVxdWVzdE1h
bmFnZXJDbGllbnQuY3BwOgorICAgICAgICAoc3RhcnRMb2FkaW5nKToKKyAgICAgICAgKHN0b3BM
b2FkaW5nKToKKyAgICAgICAgKGF0dGFjaFJlcXVlc3RNYW5hZ2VyQ2xpZW50VG9Db250ZXh0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcDoK
KyAgICAgICAgKHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RDcmVhdGUpOgorICAgICAgICAod2Via2l0
X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcpOgorICAgICAgICAod2Via2l0VVJJU2No
ZW1lUmVxdWVzdFJlYWRDYWxsYmFjayk6CisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1
ZXN0X2ZpbmlzaCk6CisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9l
cnJvcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0
LmNwcDoKKyAgICAgICAgKGNyZWF0ZURlZmF1bHRXZWJDb250ZXh0KToKKyAgICAgICAgKHdlYmtp
dF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1lKToKKyAgICAgICAgKHdlYmtpdFdlYkNv
bnRleHRHZXRSZXF1ZXN0TWFuYWdlcik6CisgICAgICAgICh3ZWJraXRXZWJDb250ZXh0U3RhcnRM
b2FkaW5nQ3VzdG9tUHJvdG9jb2wpOgorICAgICAgICAod2Via2l0V2ViQ29udGV4dFN0b3BMb2Fk
aW5nQ3VzdG9tUHJvdG9jb2wpOgorICAgICAgICAod2Via2l0V2ViQ29udGV4dERpZEZpbmlzaExv
YWRpbmdDdXN0b21Qcm90b2NvbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViQ29udGV4dFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRH
dGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXQyUHJlZml4Lmg6IEVuYWJsZSBDdXN0b21Qcm90
b2NvbHMgdW5jb25kaXRpb25hbGx5IGZvciB0aGUKKyAgICAgICAgR1RLKyBwb3J0LgorCiAyMDE0
LTAxLTIyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR0xJQl0gVXNlIEdVbmlxdWVQdHIgaW5zdGVhZCBvZiBHT3duUHRyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IDFiNDUzYzQuLmMyOTliMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCkBAIC00
MjgsNyArNDI4LDYgQEAgdnBhdGggJS5tZXNzYWdlcy5pbiA9IFwKIAkkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9QbHVnaW5zIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKIAkk
KFdlYktpdDIpL1VJUHJvY2Vzcy9TdG9yYWdlIFwKLQkkKFdlYktpdDIpL1VJUHJvY2Vzcy9zb3Vw
IFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BcHBs
aWNhdGlvbkNhY2hlIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvQmF0dGVyeSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBkMzBjMmE3Li45NjllZThiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE2MCwxMCArMTYwLDYgQEAgd2Via2l0Ml9idWlsdF9zb3Vy
Y2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlJlc291cmNlTG9h
ZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJSZXNv
dXJjZUxvYWRlck1lc3NhZ2VzLmggXAotCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU291cFJl
cXVlc3RNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJTb3VwUmVxdWVzdE1hbmFnZXJNZXNzYWdlcy5oIFwKLQlEZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCi0JRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eU1lc3NhZ2VzLmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViVmlicmF0aW9uUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlZpYnJhdGlvblByb3h5TWVzc2Fn
ZXMuaAogCkBAIC01MjEsMTAgKzUxNyw2IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXcuaCBcCiAJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXdQcml2YXRlLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9zb3VwL1dLQVBJQ2FzdFNvdXAuaCBcCi0JU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL3NvdXAvV0tDb250ZXh0U291cC5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9zb3VwL1dLQ29udGV4dFNvdXAuaCBcCi0JU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL3NvdXAvV0tTb3VwUmVxdWVzdE1hbmFnZXIuY3BwIFwKLQlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0Mvc291cC9XS1NvdXBSZXF1ZXN0TWFuYWdlci5oIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvc291cC9XS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVl
c3RNYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tT
b3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmggXApAQCAtODg2LDEwICs4NzgsNiBAQCB3ZWJraXQyX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5h
Z2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNw
cCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViQ29va2llTWFuYWdlclByb3h5
U291cC5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0
TWFuYWdlckNsaWVudC5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNv
dXBSZXF1ZXN0TWFuYWdlckNsaWVudC5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291
cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmggXAogCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4
dENoZWNrZXJDb21wbGV0aW9uLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hl
Y2tlckNvbXBsZXRpb24uY3BwIFwKQEAgLTExODgsOCArMTE3Niw2IEBAIHdlYmtpdDJfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhTWFw
LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNl
SW1wbC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFt
ZXNwYWNlSW1wbC5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291cFJl
cXVlc3RNYW5hZ2VyLmNwcCBcCi0JU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlNv
dXBSZXF1ZXN0TWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2Vi
UHJvY2Vzc1NvdXAuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0
U291cFJlcXVlc3RHZW5lcmljLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3Vw
L1dlYktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKaW5k
ZXggYmY2MGYxYi4uM2M3YjhkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1H
VEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTgyLDkg
KzgyLDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9D
L2d0ay9XS0luc3BlY3RvckNsaWVudEd0ay5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvZ3RrL1dL
Vmlldy5jcHAKIAotICAgIFVJUHJvY2Vzcy9BUEkvQy9zb3VwL1dLQ29udGV4dFNvdXAuY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tDb29raWVNYW5hZ2VyU291cC5jcHAKLSAgICBVSVBy
b2Nlc3MvQVBJL0Mvc291cC9XS1NvdXBSZXF1ZXN0TWFuYWdlci5jcHAKICAgICBVSVByb2Nlc3Mv
QVBJL0Mvc291cC9XS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcAogCiAgICAg
VUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCkBAIC0yNjksOCArMjY3LDYgQEAg
bGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL05ldHdvcmsvc291cC9O
ZXR3b3JrUHJvY2Vzc1Byb3h5U291cC5jcHAKICAgICBVSVByb2Nlc3Mvc291cC9XZWJDb250ZXh0
U291cC5jcHAKICAgICBVSVByb2Nlc3Mvc291cC9XZWJDb29raWVNYW5hZ2VyUHJveHlTb3VwLmNw
cAotICAgIFVJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAKLSAg
ICBVSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKIAogICAgIFdl
YlByb2Nlc3MvQ29va2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAogICAgIFdlYlBy
b2Nlc3MvQ29va2llcy9zb3VwL1dlYktpdFNvdXBDb29raWVKYXJTcWxpdGUuY3BwCkBAIC0zMTEs
NyArMzA3LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9z
b3VwL1dlYktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5jcHAKICAgICBXZWJQcm9jZXNzL3NvdXAvV2Vi
S2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAKICAgICBXZWJQcm9jZXNzL3NvdXAvV2ViUHJv
Y2Vzc1NvdXAuY3BwCi0gICAgV2ViUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5j
cHAKICkKIAogc2V0KFdlYktpdDJHVEtfSU5TVEFMTEVEX0hFQURFUlMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuaAppbmRleCA4MzkwNGFkLi5i
ZDA2MGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
UHJpdmF0ZS5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIFdlYktpdFByaXZhdGVfaAogCiAj
aW5jbHVkZSA8V2ViS2l0Mi9XS0FQSUNhc3QuaD4KLSNpbmNsdWRlIDxXZWJLaXQyL1dLQ29udGV4
dFNvdXAuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLRG93bmxvYWQuaD4KICNpbmNsdWRlIDxXZWJL
aXQyL1dLRmluZE9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLRnVsbFNjcmVlbkNsaWVu
dEd0ay5oPgpAQCAtMzksNyArMzgsNyBAQAogI2luY2x1ZGUgPFdlYktpdDIvV0tJbnNwZWN0b3JD
bGllbnRHdGsuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8
V2ViS2l0Mi9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgotI2luY2x1ZGUgPFdlYktpdDIvV0tT
b3VwUmVxdWVzdE1hbmFnZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU291cEN1c3RvbVByb3Rv
Y29sUmVxdWVzdE1hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLU3RyaW5nLmg+CiAjaW5j
bHVkZSA8V2ViS2l0Mi9XS1RleHRDaGVja2VyLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XZWJLaXQy
X0MuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmNwcAppbmRleCBhY2MxOTAxLi43MmY5MWVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZXF1
ZXN0TWFuYWdlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0UmVxdWVzdE1hbmFnZXJDbGllbnQuY3BwCkBAIC0yMCwzNCArMjAsMzAgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRSZXF1ZXN0TWFuYWdlckNsaWVudC5o
IgogCi0jaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRl
ICJXZWJLaXRXZWJDb250ZXh0UHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQ
dHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotc3RhdGljIHZvaWQgZGlkUmVjZWl2
ZVVSSVJlcXVlc3QoV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYgc291cFJlcXVlc3RNYW5hZ2VyUmVm
LCBXS1VSTFJlZiB1cmxSZWYsIFdLUGFnZVJlZiBpbml0aWF0aW5nUGFnZVJlZiwgdWludDY0X3Qg
cmVxdWVzdElELCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgc3RhcnRMb2Fk
aW5nKFdLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJSZWYgc291cFJlcXVlc3RNYW5h
Z2VyUmVmLCB1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVz
dFJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKLSAgICBXZWJLaXRXZWJDb250ZXh0KiB3
ZWJDb250ZXh0ID0gV0VCS0lUX1dFQl9DT05URVhUKGNsaWVudEluZm8pOwotICAgIEdSZWZQdHI8
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0R1JlZih3ZWJraXRVUklTY2hl
bWVSZXF1ZXN0Q3JlYXRlKHdlYkNvbnRleHQsIHRvSW1wbChzb3VwUmVxdWVzdE1hbmFnZXJSZWYp
LCB0b0ltcGwodXJsUmVmKSwgdG9JbXBsKGluaXRpYXRpbmdQYWdlUmVmKSwgcmVxdWVzdElEKSk7
Ci0gICAgd2Via2l0V2ViQ29udGV4dFJlY2VpdmVkVVJJUmVxdWVzdCh3ZWJDb250ZXh0LCByZXF1
ZXN0LmdldCgpKTsKKyAgICB3ZWJraXRXZWJDb250ZXh0U3RhcnRMb2FkaW5nQ3VzdG9tUHJvdG9j
b2woV0VCS0lUX1dFQl9DT05URVhUKGNsaWVudEluZm8pLCBjdXN0b21Qcm90b2NvbElELCB0b0lt
cGwocmVxdWVzdFJlZikpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRGYWlsVG9Mb2FkVVJJUmVxdWVz
dChXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiwgdWludDY0X3QgcmVxdWVzdElELCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgc3RvcExvYWRpbmcoV0tTb3VwQ3VzdG9tUHJvdG9j
b2xSZXF1ZXN0TWFuYWdlclJlZiwgdWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKIHsKLSAgICB3ZWJraXRXZWJDb250ZXh0RGlkRmFpbFRvTG9hZFVSSVJl
cXVlc3QoV0VCS0lUX1dFQl9DT05URVhUKGNsaWVudEluZm8pLCByZXF1ZXN0SUQpOworICAgIHdl
YmtpdFdlYkNvbnRleHRTdG9wTG9hZGluZ0N1c3RvbVByb3RvY29sKFdFQktJVF9XRUJfQ09OVEVY
VChjbGllbnRJbmZvKSwgY3VzdG9tUHJvdG9jb2xJRCk7CiB9CiAKIHZvaWQgYXR0YWNoUmVxdWVz
dE1hbmFnZXJDbGllbnRUb0NvbnRleHQoV2ViS2l0V2ViQ29udGV4dCogd2ViQ29udGV4dCkKIHsK
LSAgICBXS1NvdXBSZXF1ZXN0TWFuYWdlckNsaWVudFYwIHdrUmVxdWVzdE1hbmFnZXJDbGllbnQg
PSB7CisgICAgV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlckNsaWVudFYwIHdrUmVx
dWVzdE1hbmFnZXJDbGllbnQgPSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIDAsIC8vIHZlcnNp
b24KICAgICAgICAgICAgIHdlYkNvbnRleHQgLy8gY2xpZW50SW5mbwogICAgICAgICB9LAotICAg
ICAgICBkaWRSZWNlaXZlVVJJUmVxdWVzdCwKLSAgICAgICAgZGlkRmFpbFRvTG9hZFVSSVJlcXVl
c3QKKyAgICAgICAgc3RhcnRMb2FkaW5nLAorICAgICAgICBzdG9wTG9hZGluZwogICAgIH07Ci0g
ICAgV0tTb3VwUmVxdWVzdE1hbmFnZXJTZXRDbGllbnQodG9BUEkod2Via2l0V2ViQ29udGV4dEdl
dFJlcXVlc3RNYW5hZ2VyKHdlYkNvbnRleHQpKSwgJndrUmVxdWVzdE1hbmFnZXJDbGllbnQuYmFz
ZSk7CisgICAgV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclNldENsaWVudCh0b0FQ
SSh3ZWJraXRXZWJDb250ZXh0R2V0UmVxdWVzdE1hbmFnZXIod2ViQ29udGV4dCkpLCAmd2tSZXF1
ZXN0TWFuYWdlckNsaWVudC5iYXNlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcAppbmRleCBl
MWU0MjIxLi5lY2I5ZTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcApAQCAtMjUsNyArMjUsNiBA
QAogI2luY2x1ZGUgIldlYktpdFdlYkNvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
V2ViVmlldy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgotI2luY2x1ZGUgIldlYlNvdXBS
ZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HVW5pcXVlUHRyU291cC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPGxpYnNvdXAv
c291cC5oPgpAQCAtNTUsNyArNTQsNyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGdSZWFk
QnVmZmVyU2l6ZSA9IDgxOTI7CiAKIHN0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZh
dGUgewogICAgIFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQ7Ci0gICAgUmVmUHRyPFdlYlNv
dXBSZXF1ZXN0TWFuYWdlclByb3h5PiB3ZWJSZXF1ZXN0TWFuYWdlcjsKKyAgICBSZWZQdHI8V2Vi
U291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+IHdlYlJlcXVlc3RNYW5hZ2VyOwogICAg
IFJlZlB0cjxXZWJQYWdlUHJveHk+IGluaXRpYXRpbmdQYWdlOwogICAgIHVpbnQ2NF90IHJlcXVl
c3RJRDsKICAgICBDU3RyaW5nIHVyaTsKQEAgLTc1LDIyICs3NCwxNyBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2NsYXNzX2luaXQoV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dENsYXNzKiByZQogewogfQogCi1XZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiB3ZWJraXRVUklTY2hl
bWVSZXF1ZXN0Q3JlYXRlKFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQsIFdlYlNvdXBSZXF1
ZXN0TWFuYWdlclByb3h5KiB3ZWJSZXF1ZXN0TWFuYWdlciwgQVBJOjpVUkwqIHdlYlVSTCwgV2Vi
UGFnZVByb3h5KiBpbml0aWF0aW5nUGFnZSwgdWludDY0X3QgcmVxdWVzdElEKQorV2ViS2l0VVJJ
U2NoZW1lUmVxdWVzdCogd2Via2l0VVJJU2NoZW1lUmVxdWVzdENyZWF0ZSh1aW50NjRfdCByZXF1
ZXN0SUQsIFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQsIEFQSTo6VVJMUmVxdWVzdCogdXJs
UmVxdWVzdCwgV2ViUGFnZVByb3h5KiBpbml0aWF0aW5nUGFnZSkKIHsKICAgICBXZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0KiByZXF1ZXN0ID0gV0VCS0lUX1VSSV9TQ0hFTUVfUkVRVUVTVChnX29iamVj
dF9uZXcoV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVFVRVNULCBOVUxMKSk7CiAgICAgcmVxdWVz
dC0+cHJpdi0+d2ViQ29udGV4dCA9IHdlYkNvbnRleHQ7Ci0gICAgcmVxdWVzdC0+cHJpdi0+d2Vi
UmVxdWVzdE1hbmFnZXIgPSB3ZWJSZXF1ZXN0TWFuYWdlcjsKLSAgICByZXF1ZXN0LT5wcml2LT51
cmkgPSB3ZWJVUkwtPnN0cmluZygpLnV0ZjgoKTsKKyAgICByZXF1ZXN0LT5wcml2LT53ZWJSZXF1
ZXN0TWFuYWdlciA9IHdlYmtpdFdlYkNvbnRleHRHZXRSZXF1ZXN0TWFuYWdlcih3ZWJDb250ZXh0
KTsKKyAgICByZXF1ZXN0LT5wcml2LT51cmkgPSB1cmxSZXF1ZXN0LT5yZXNvdXJjZVJlcXVlc3Qo
KS51cmwoKS5zdHJpbmcoKS51dGY4KCk7CiAgICAgcmVxdWVzdC0+cHJpdi0+aW5pdGlhdGluZ1Bh
Z2UgPSBpbml0aWF0aW5nUGFnZTsKICAgICByZXF1ZXN0LT5wcml2LT5yZXF1ZXN0SUQgPSByZXF1
ZXN0SUQ7CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKLXVpbnQ2NF90IHdlYmtpdFVSSVNjaGVt
ZVJlcXVlc3RHZXRJRChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQotewotICAgIHJl
dHVybiByZXF1ZXN0LT5wcml2LT5yZXF1ZXN0SUQ7Ci19Ci0KIHZvaWQgd2Via2l0VVJJU2NoZW1l
UmVxdWVzdENhbmNlbChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQogewogICAgIGlm
IChyZXF1ZXN0LT5wcml2LT5jYW5jZWxsYWJsZS5nZXQoKSkKQEAgLTE1OCw3ICsxNTIsOCBAQCBX
ZWJLaXRXZWJWaWV3KiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJfdmlldyhXZWJL
aXRVUklTY2hlbWVSZXF1ZXN0KiByZQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9JU19VUklfU0NIRU1FX1JFUVVFU1QocmVxdWVzdCksIDApOwogCi0gICAgcmV0dXJuIFdFQktJ
VF9XRUJfVklFVyhyZXF1ZXN0LT5wcml2LT5pbml0aWF0aW5nUGFnZS0+dmlld1dpZGdldCgpKTsK
KyAgICAvLyBGSVhNRTogaW5pdGlhdGluZ1BhZ2UgaXMgbm93IGFsd2F5cyBudWxsLCB3ZSBuZWVk
IHRvIHJlLWltcGxlbWVudCB0aGlzIHNvbWVob3cuCisgICAgcmV0dXJuIHJlcXVlc3QtPnByaXYt
PmluaXRpYXRpbmdQYWdlID8gV0VCS0lUX1dFQl9WSUVXKHJlcXVlc3QtPnByaXYtPmluaXRpYXRp
bmdQYWdlLT52aWV3V2lkZ2V0KCkpIDogbnVsbHB0cjsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0
VVJJU2NoZW1lUmVxdWVzdFJlYWRDYWxsYmFjayhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCBH
QXN5bmNSZXN1bHQqIHJlc3VsdCwgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogc2NoZW1lUmVxdWVz
dCkKQEAgLTE3NCwyMSArMTY5LDI1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFVSSVNjaGVtZVJlcXVl
c3RSZWFkQ2FsbGJhY2soR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jCiAgICAgV2Vi
S2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OwogICAgIFJl
ZlB0cjxBUEk6OkRhdGE+IHdlYkRhdGEgPSBBUEk6OkRhdGE6OmNyZWF0ZShyZWludGVycHJldF9j
YXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPihwcml2LT5yZWFkQnVmZmVyKSwgYnl0ZXNSZWFkKTsK
ICAgICBpZiAoIXByaXYtPmJ5dGVzUmVhZCkgewotICAgICAgICAvLyBGaXJzdCBjaHVuayByZWFk
LiBJbiBjYXNlIG9mIGVtcHR5IHJlcGx5IGFuIGVtcHR5IEFQSTo6RGF0YSBpcyBzZW50IHRvIHRo
ZSBXZWJQcm9jZXNzLgotICAgICAgICBwcml2LT53ZWJSZXF1ZXN0TWFuYWdlci0+ZGlkSGFuZGxl
VVJJUmVxdWVzdCh3ZWJEYXRhLmdldCgpLCBwcml2LT5zdHJlYW1MZW5ndGgsIFN0cmluZzo6ZnJv
bVVURjgocHJpdi0+bWltZVR5cGUuZGF0YSgpKSwgcHJpdi0+cmVxdWVzdElEKTsKKyAgICAgICAg
Ly8gRmlyc3QgY2h1bmsgcmVhZC4gSW4gY2FzZSBvZiBlbXB0eSByZXBseSBhbiBlbXB0eSBBUEk6
OkRhdGEgaXMgc2VudCB0byB0aGUgbmV0d29ya2luZyBwcm9jZXNzLgorICAgICAgICBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKFdlYkNvcmU6OlVSTChXZWJDb3JlOjpVUkwoKSwg
U3RyaW5nOjpmcm9tVVRGOChwcml2LT51cmkpKSwgU3RyaW5nOjpmcm9tVVRGOChwcml2LT5taW1l
VHlwZS5kYXRhKCkpLAorICAgICAgICAgICAgcHJpdi0+c3RyZWFtTGVuZ3RoLCBlbXB0eVN0cmlu
ZygpLCBlbXB0eVN0cmluZygpKTsKKyAgICAgICAgcHJpdi0+d2ViUmVxdWVzdE1hbmFnZXItPmRp
ZFJlY2VpdmVSZXNwb25zZShwcml2LT5yZXF1ZXN0SUQsIHJlc3BvbnNlKTsKKyAgICAgICAgcHJp
di0+d2ViUmVxdWVzdE1hbmFnZXItPmRpZExvYWREYXRhKHByaXYtPnJlcXVlc3RJRCwgd2ViRGF0
YS5nZXQoKSk7CiAgICAgfSBlbHNlIGlmIChieXRlc1JlYWQgfHwgKCFieXRlc1JlYWQgJiYgIXBy
aXYtPnN0cmVhbUxlbmd0aCkpIHsKLSAgICAgICAgLy8gU3Vic2VxdWVudCBjaHVuayByZWFkLiBX
ZSBvbmx5IHNlbmQgYW4gZW1wdHkgQVBJOjpEYXRhIHRvIHRoZSBXZWJQcm9jZXNzIHdoZW4gc3Ry
ZWFtIGxlbmd0aCBpcyB1bmtub3duLgotICAgICAgICBwcml2LT53ZWJSZXF1ZXN0TWFuYWdlci0+
ZGlkUmVjZWl2ZVVSSVJlcXVlc3REYXRhKHdlYkRhdGEuZ2V0KCksIHByaXYtPnJlcXVlc3RJRCk7
CisgICAgICAgIC8vIFN1YnNlcXVlbnQgY2h1bmsgcmVhZC4gV2Ugb25seSBzZW5kIGFuIGVtcHR5
IEFQSTo6RGF0YSB0byB0aGUgbmV0d29ya2luZyBwcm9jZXNzIHdoZW4gc3RyZWFtIGxlbmd0aCBp
cyB1bmtub3duLgorICAgICAgICBwcml2LT53ZWJSZXF1ZXN0TWFuYWdlci0+ZGlkTG9hZERhdGEo
cHJpdi0+cmVxdWVzdElELCB3ZWJEYXRhLmdldCgpKTsKICAgICB9CiAKICAgICBpZiAoIWJ5dGVz
UmVhZCkgewotICAgICAgICB3ZWJraXRXZWJDb250ZXh0RGlkRmluaXNoVVJJUmVxdWVzdChyZXF1
ZXN0LT5wcml2LT53ZWJDb250ZXh0LCByZXF1ZXN0LT5wcml2LT5yZXF1ZXN0SUQpOworICAgICAg
ICBwcml2LT53ZWJSZXF1ZXN0TWFuYWdlci0+ZGlkRmluaXNoTG9hZGluZyhyZXF1ZXN0LT5wcml2
LT5yZXF1ZXN0SUQpOworICAgICAgICB3ZWJraXRXZWJDb250ZXh0RGlkRmluaXNoTG9hZGluZ0N1
c3RvbVByb3RvY29sKHJlcXVlc3QtPnByaXYtPndlYkNvbnRleHQsIHJlcXVlc3QtPnByaXYtPnJl
cXVlc3RJRCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBwcml2LT5ieXRlc1JlYWQg
Kz0gYnl0ZXNSZWFkOwogICAgIGdfaW5wdXRfc3RyZWFtX3JlYWRfYXN5bmMoaW5wdXRTdHJlYW0s
IHByaXYtPnJlYWRCdWZmZXIsIGdSZWFkQnVmZmVyU2l6ZSwgR19QUklPUklUWV9ERUZBVUxULCBw
cml2LT5jYW5jZWxsYWJsZS5nZXQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
aW50ZXJwcmV0X2Nhc3Q8R0FzeW5jUmVhZHlDYWxsYmFjaz4od2Via2l0VVJJU2NoZW1lUmVxdWVz
dFJlYWRDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0LmdldCgpKSk7CisgICAgICAgIHJl
aW50ZXJwcmV0X2Nhc3Q8R0FzeW5jUmVhZHlDYWxsYmFjaz4od2Via2l0VVJJU2NoZW1lUmVxdWVz
dFJlYWRDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0LmdldCgpKSk7CiB9CiAKIC8qKgpA
QCAtMjEzLDcgKzIxMiw3IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2go
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0lucHV0U3RyCiAgICAgcmVxdWVzdC0+
cHJpdi0+Ynl0ZXNSZWFkID0gMDsKICAgICByZXF1ZXN0LT5wcml2LT5taW1lVHlwZSA9IG1pbWVU
eXBlOwogICAgIGdfaW5wdXRfc3RyZWFtX3JlYWRfYXN5bmMoaW5wdXRTdHJlYW0sIHJlcXVlc3Qt
PnByaXYtPnJlYWRCdWZmZXIsIGdSZWFkQnVmZmVyU2l6ZSwgR19QUklPUklUWV9ERUZBVUxULCBy
ZXF1ZXN0LT5wcml2LT5jYW5jZWxsYWJsZS5nZXQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8R0FzeW5jUmVhZHlDYWxsYmFjaz4od2Via2l0VVJJU2No
ZW1lUmVxdWVzdFJlYWRDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0KSk7CisgICAgICAg
IHJlaW50ZXJwcmV0X2Nhc3Q8R0FzeW5jUmVhZHlDYWxsYmFjaz4od2Via2l0VVJJU2NoZW1lUmVx
dWVzdFJlYWRDYWxsYmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0KSk7CiB9CiAKIC8qKgpAQCAt
MjMzLDcgKzIzMiw2IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJy
b3IoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0VyCiAgICAgV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OwogCiAgICAgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21h
aW4pLCBlcnJvci0+Y29kZSwgcHJpdi0+dXJpLmRhdGEoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJv
ci0+bWVzc2FnZSkpOwotICAgIHByaXYtPndlYlJlcXVlc3RNYW5hZ2VyLT5kaWRGYWlsVVJJUmVx
dWVzdChyZXNvdXJjZUVycm9yLCBwcml2LT5yZXF1ZXN0SUQpOwotCi0gICAgd2Via2l0V2ViQ29u
dGV4dERpZEZpbmlzaFVSSVJlcXVlc3QocHJpdi0+d2ViQ29udGV4dCwgcHJpdi0+cmVxdWVzdElE
KTsKKyAgICBwcml2LT53ZWJSZXF1ZXN0TWFuYWdlci0+ZGlkRmFpbFdpdGhFcnJvcihwcml2LT5y
ZXF1ZXN0SUQsIHJlc291cmNlRXJyb3IpOworICAgIHdlYmtpdFdlYkNvbnRleHREaWRGaW5pc2hM
b2FkaW5nQ3VzdG9tUHJvdG9jb2wocHJpdi0+d2ViQ29udGV4dCwgcHJpdi0+cmVxdWVzdElEKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVS
SVNjaGVtZVJlcXVlc3RQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZS5oCmluZGV4IDM4NjcxNzMuLjUyMDg5OTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNj
aGVtZVJlcXVlc3RQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUuaApAQCAtMjQsOCArMjQsNyBAQAogI2lu
Y2x1ZGUgIldlYktpdFVSSVNjaGVtZVJlcXVlc3QuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJDb250
ZXh0LmgiCiAKLVdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RD
cmVhdGUoV2ViS2l0V2ViQ29udGV4dCosIFdlYktpdDo6V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJv
eHkqLCBBUEk6OlVSTCosIFdlYktpdDo6V2ViUGFnZVByb3h5KiwgdWludDY0X3QgcmVxdWVzdElE
KTsKLXVpbnQ2NF90IHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RHZXRJRChXZWJLaXRVUklTY2hlbWVS
ZXF1ZXN0Kik7CitXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0
Q3JlYXRlKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViS2l0V2ViQ29udGV4dCosIEFQSTo6VVJMUmVx
dWVzdCosIFdlYktpdDo6V2ViUGFnZVByb3h5Kik7CiB2b2lkIHdlYmtpdFVSSVNjaGVtZVJlcXVl
c3RDYW5jZWwoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCopOwogCiAjZW5kaWYgLy8gV2ViS2l0VVJJ
U2NoZW1lUmVxdWVzdFByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCAwYTdhYWQ2Li42NTA5ZGRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJD
b250ZXh0LmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIHN0cnVjdCBfV2ViS2l0V2ViQ29udGV4dFBy
aXZhdGUgewogICAgIEdSZWZQdHI8V2ViS2l0Q29va2llTWFuYWdlcj4gY29va2llTWFuYWdlcjsK
ICAgICBHUmVmUHRyPFdlYktpdEZhdmljb25EYXRhYmFzZT4gZmF2aWNvbkRhdGFiYXNlOwogICAg
IEdSZWZQdHI8V2ViS2l0U2VjdXJpdHlNYW5hZ2VyPiBzZWN1cml0eU1hbmFnZXI7Ci0gICAgUmVm
UHRyPFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5PiByZXF1ZXN0TWFuYWdlcjsKKyAgICBSZWZQ
dHI8V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+IHJlcXVlc3RNYW5hZ2VyOwog
ICAgIFVSSVNjaGVtZUhhbmRsZXJNYXAgdXJpU2NoZW1lSGFuZGxlcnM7CiAgICAgVVJJU2NoZW1l
UmVxdWVzdE1hcCB1cmlTY2hlbWVSZXF1ZXN0czsKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCkBA
IC0yMjYsNyArMjI2LDcgQEAgc3RhdGljIGdwb2ludGVyIGNyZWF0ZURlZmF1bHRXZWJDb250ZXh0
KGdwb2ludGVyKQogICAgIFdlYktpdFdlYkNvbnRleHRQcml2YXRlKiBwcml2ID0gd2ViQ29udGV4
dC0+cHJpdjsKIAogICAgIHByaXYtPmNvbnRleHQgPSBXZWJDb250ZXh0OjpjcmVhdGUoV2ViQ29y
ZTo6ZmlsZW5hbWVUb1N0cmluZyhpbmplY3RlZEJ1bmRsZUZpbGVuYW1lKCkuZGF0YSgpKSk7Ci0g
ICAgcHJpdi0+cmVxdWVzdE1hbmFnZXIgPSB3ZWJDb250ZXh0LT5wcml2LT5jb250ZXh0LT5zdXBw
bGVtZW50PFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5PigpOworICAgIHByaXYtPnJlcXVlc3RN
YW5hZ2VyID0gd2ViQ29udGV4dC0+cHJpdi0+Y29udGV4dC0+c3VwcGxlbWVudDxXZWJTb3VwQ3Vz
dG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcj4oKTsKICAgICBwcml2LT5jb250ZXh0LT5zZXRDYWNo
ZU1vZGVsKENhY2hlTW9kZWxQcmltYXJ5V2ViQnJvd3Nlcik7CiAjaWYgRU5BQkxFKE5FVFdPUktf
UFJPQ0VTUykKICAgICAvLyBGSVhNRTogVGVtcG9yYXJ5IHVzZSBhbiBlbnYgdmFyIHVudGlsIHdl
IGhhdmUgQVBJIHRvIHNldCB0aGUgcHJvY2VzcyBtb2RlbC4gU2VlIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU0NjMuCkBAIC02NDIsNyArNjQyLDcgQEAgdm9pZCB3
ZWJraXRfd2ViX2NvbnRleHRfcmVnaXN0ZXJfdXJpX3NjaGVtZShXZWJLaXRXZWJDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBjaGEKIAogICAgIFJlZlB0cjxXZWJLaXRVUklTY2hlbWVIYW5kbGVyPiBo
YW5kbGVyID0gYWRvcHRSZWYobmV3IFdlYktpdFVSSVNjaGVtZUhhbmRsZXIoY2FsbGJhY2ssIHVz
ZXJEYXRhLCBkZXN0cm95Tm90aWZ5KSk7CiAgICAgY29udGV4dC0+cHJpdi0+dXJpU2NoZW1lSGFu
ZGxlcnMuc2V0KFN0cmluZzo6ZnJvbVVURjgoc2NoZW1lKSwgaGFuZGxlci5nZXQoKSk7Ci0gICAg
Y29udGV4dC0+cHJpdi0+cmVxdWVzdE1hbmFnZXItPnJlZ2lzdGVyVVJJU2NoZW1lKFN0cmluZzo6
ZnJvbVVURjgoc2NoZW1lKSk7CisgICAgY29udGV4dC0+cHJpdi0+cmVxdWVzdE1hbmFnZXItPnJl
Z2lzdGVyU2NoZW1lRm9yQ3VzdG9tUHJvdG9jb2woU3RyaW5nOjpmcm9tVVRGOChzY2hlbWUpKTsK
IH0KIAogLyoqCkBAIC05MzMsMzQgKzkzMywzNiBAQCBXZWJDb250ZXh0KiB3ZWJraXRXZWJDb250
ZXh0R2V0Q29udGV4dChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0KQogICAgIHJldHVybiBjb250
ZXh0LT5wcml2LT5jb250ZXh0LmdldCgpOwogfQogCi1XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94
eSogd2Via2l0V2ViQ29udGV4dEdldFJlcXVlc3RNYW5hZ2VyKFdlYktpdFdlYkNvbnRleHQqIGNv
bnRleHQpCitXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlciogd2Via2l0V2ViQ29u
dGV4dEdldFJlcXVlc3RNYW5hZ2VyKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQpCiB7CiAgICAg
cmV0dXJuIGNvbnRleHQtPnByaXYtPnJlcXVlc3RNYW5hZ2VyLmdldCgpOwogfQogCi12b2lkIHdl
YmtpdFdlYkNvbnRleHRSZWNlaXZlZFVSSVJlcXVlc3QoV2ViS2l0V2ViQ29udGV4dCogY29udGV4
dCwgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCkKK3ZvaWQgd2Via2l0V2ViQ29udGV4
dFN0YXJ0TG9hZGluZ0N1c3RvbVByb3RvY29sKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQsIHVp
bnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIEFQSTo6VVJMUmVxdWVzdCogdXJsUmVxdWVzdCkKIHsK
LSAgICBTdHJpbmcgc2NoZW1lKFN0cmluZzo6ZnJvbVVURjgod2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdF9nZXRfc2NoZW1lKHJlcXVlc3QpKSk7CisgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gZmln
dXJlIG91dCBob3cgdG8gZ2V0IHRoZSBpbml0aWF0aW5nIHBhZ2UuCisgICAgR1JlZlB0cjxXZWJL
aXRVUklTY2hlbWVSZXF1ZXN0PiByZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdFVSSVNjaGVtZVJl
cXVlc3RDcmVhdGUoY3VzdG9tUHJvdG9jb2xJRCwgY29udGV4dCwgdXJsUmVxdWVzdCwgbnVsbHB0
cikpOworICAgIFN0cmluZyBzY2hlbWUoU3RyaW5nOjpmcm9tVVRGOCh3ZWJraXRfdXJpX3NjaGVt
ZV9yZXF1ZXN0X2dldF9zY2hlbWUocmVxdWVzdC5nZXQoKSkpKTsKICAgICBSZWZQdHI8V2ViS2l0
VVJJU2NoZW1lSGFuZGxlcj4gaGFuZGxlciA9IGNvbnRleHQtPnByaXYtPnVyaVNjaGVtZUhhbmRs
ZXJzLmdldChzY2hlbWUpOwogICAgIEFTU0VSVChoYW5kbGVyLmdldCgpKTsKICAgICBpZiAoIWhh
bmRsZXItPmhhc0NhbGxiYWNrKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbnRleHQtPnBy
aXYtPnVyaVNjaGVtZVJlcXVlc3RzLnNldCh3ZWJraXRVUklTY2hlbWVSZXF1ZXN0R2V0SUQocmVx
dWVzdCksIHJlcXVlc3QpOwotICAgIGhhbmRsZXItPnBlcmZvcm1DYWxsYmFjayhyZXF1ZXN0KTsK
KyAgICBjb250ZXh0LT5wcml2LT51cmlTY2hlbWVSZXF1ZXN0cy5zZXQoY3VzdG9tUHJvdG9jb2xJ
RCwgcmVxdWVzdC5nZXQoKSk7CisgICAgaGFuZGxlci0+cGVyZm9ybUNhbGxiYWNrKHJlcXVlc3Qu
Z2V0KCkpOwogfQogCi12b2lkIHdlYmtpdFdlYkNvbnRleHREaWRGYWlsVG9Mb2FkVVJJUmVxdWVz
dChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCB1aW50NjRfdCByZXF1ZXN0SUQpCit2b2lkIHdl
YmtpdFdlYkNvbnRleHRTdG9wTG9hZGluZ0N1c3RvbVByb3RvY29sKFdlYktpdFdlYkNvbnRleHQq
IGNvbnRleHQsIHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQpCiB7Ci0gICAgR1JlZlB0cjxXZWJL
aXRVUklTY2hlbWVSZXF1ZXN0PiByZXF1ZXN0ID0gY29udGV4dC0+cHJpdi0+dXJpU2NoZW1lUmVx
dWVzdHMuZ2V0KHJlcXVlc3RJRCk7CisgICAgR1JlZlB0cjxXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
PiByZXF1ZXN0ID0gY29udGV4dC0+cHJpdi0+dXJpU2NoZW1lUmVxdWVzdHMuZ2V0KGN1c3RvbVBy
b3RvY29sSUQpOwogICAgIGlmICghcmVxdWVzdC5nZXQoKSkKICAgICAgICAgcmV0dXJuOwogICAg
IHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RDYW5jZWwocmVxdWVzdC5nZXQoKSk7CiB9CiAKLXZvaWQg
d2Via2l0V2ViQ29udGV4dERpZEZpbmlzaFVSSVJlcXVlc3QoV2ViS2l0V2ViQ29udGV4dCogY29u
dGV4dCwgdWludDY0X3QgcmVxdWVzdElEKQordm9pZCB3ZWJraXRXZWJDb250ZXh0RGlkRmluaXNo
TG9hZGluZ0N1c3RvbVByb3RvY29sKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQsIHVpbnQ2NF90
IGN1c3RvbVByb3RvY29sSUQpCiB7Ci0gICAgY29udGV4dC0+cHJpdi0+dXJpU2NoZW1lUmVxdWVz
dHMucmVtb3ZlKHJlcXVlc3RJRCk7CisgICAgY29udGV4dC0+cHJpdi0+dXJpU2NoZW1lUmVxdWVz
dHMucmVtb3ZlKGN1c3RvbVByb3RvY29sSUQpOwogfQogCiB2b2lkIHdlYmtpdFdlYkNvbnRleHRD
cmVhdGVQYWdlRm9yV2ViVmlldyhXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJWaWV3R3JvdXAqIHdlYlZpZXdHcm91cCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHRQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0
UHJpdmF0ZS5oCmluZGV4IDk4MGViNzkuLjA5YzUyMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHRQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaApA
QCAtMjksMjAgKzI5LDE5IEBACiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eS5oIgogI2luY2x1ZGUg
IldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2Vi
S2l0VVJJU2NoZW1lUmVxdWVzdC5oIgogI2luY2x1ZGUgIldlYktpdFdlYkNvbnRleHQuaCIKICNp
bmNsdWRlICJXZWJLaXRXZWJWaWV3R3JvdXAuaCIKLSNpbmNsdWRlICJXZWJTb3VwUmVxdWVzdE1h
bmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5h
Z2VyLmgiCiAKIFdlYktpdDo6V2ViQ29udGV4dCogd2Via2l0V2ViQ29udGV4dEdldENvbnRleHQo
V2ViS2l0V2ViQ29udGV4dCopOwogV2ViS2l0RG93bmxvYWQqIHdlYmtpdFdlYkNvbnRleHRHZXRP
ckNyZWF0ZURvd25sb2FkKFdlYktpdDo6RG93bmxvYWRQcm94eSopOwogV2ViS2l0RG93bmxvYWQq
IHdlYmtpdFdlYkNvbnRleHRTdGFydERvd25sb2FkKFdlYktpdFdlYkNvbnRleHQqLCBjb25zdCBj
aGFyKiB1cmksIFdlYktpdDo6V2ViUGFnZVByb3h5Kik7CiB2b2lkIHdlYmtpdFdlYkNvbnRleHRS
ZW1vdmVEb3dubG9hZChXZWJLaXQ6OkRvd25sb2FkUHJveHkqKTsKIHZvaWQgd2Via2l0V2ViQ29u
dGV4dERvd25sb2FkU3RhcnRlZChXZWJLaXRXZWJDb250ZXh0KiwgV2ViS2l0RG93bmxvYWQqKTsK
LVdlYktpdDo6V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkqIHdlYmtpdFdlYkNvbnRleHRHZXRS
ZXF1ZXN0TWFuYWdlcihXZWJLaXRXZWJDb250ZXh0Kik7Ci12b2lkIHdlYmtpdFdlYkNvbnRleHRS
ZWNlaXZlZFVSSVJlcXVlc3QoV2ViS2l0V2ViQ29udGV4dCosIFdlYktpdFVSSVNjaGVtZVJlcXVl
c3QqKTsKLXZvaWQgd2Via2l0V2ViQ29udGV4dERpZEZhaWxUb0xvYWRVUklSZXF1ZXN0KFdlYktp
dFdlYkNvbnRleHQqLCB1aW50NjRfdCByZXF1ZXN0SUQpOwotdm9pZCB3ZWJraXRXZWJDb250ZXh0
RGlkRmluaXNoVVJJUmVxdWVzdChXZWJLaXRXZWJDb250ZXh0KiwgdWludDY0X3QgcmVxdWVzdElE
KTsKK1dlYktpdDo6V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIqIHdlYmtpdFdl
YkNvbnRleHRHZXRSZXF1ZXN0TWFuYWdlcihXZWJLaXRXZWJDb250ZXh0Kik7Cit2b2lkIHdlYmtp
dFdlYkNvbnRleHRTdGFydExvYWRpbmdDdXN0b21Qcm90b2NvbChXZWJLaXRXZWJDb250ZXh0Kiwg
dWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgQVBJOjpVUkxSZXF1ZXN0Kik7Cit2b2lkIHdlYmtp
dFdlYkNvbnRleHRTdG9wTG9hZGluZ0N1c3RvbVByb3RvY29sKFdlYktpdFdlYkNvbnRleHQqLCB1
aW50NjRfdCBjdXN0b21Qcm90b2NvbElEKTsKK3ZvaWQgd2Via2l0V2ViQ29udGV4dERpZEZpbmlz
aExvYWRpbmdDdXN0b21Qcm90b2NvbChXZWJLaXRXZWJDb250ZXh0KiwgdWludDY0X3QgY3VzdG9t
UHJvdG9jb2xJRCk7CiB2b2lkIHdlYmtpdFdlYkNvbnRleHRDcmVhdGVQYWdlRm9yV2ViVmlldyhX
ZWJLaXRXZWJDb250ZXh0KiwgV2ViS2l0V2ViVmlldyosIFdlYktpdFdlYlZpZXdHcm91cCopOwog
dm9pZCB3ZWJraXRXZWJDb250ZXh0V2ViVmlld0Rlc3Ryb3llZChXZWJLaXRXZWJDb250ZXh0Kiwg
V2ViS2l0V2ViVmlldyopOwogV2ViS2l0V2ViVmlldyogd2Via2l0V2ViQ29udGV4dEdldFdlYlZp
ZXdGb3JQYWdlKFdlYktpdFdlYkNvbnRleHQqLCBXZWJLaXQ6OldlYlBhZ2VQcm94eSopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0R3RrLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29udGV4dEd0ay5jcHAKaW5kZXggNDRm
YTU5Yi4uODA4ZmQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9X
ZWJDb250ZXh0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNv
bnRleHRHdGsuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yU2Vy
dmVyLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlNvdXBDdXN0b21Qcm90b2Nv
bFJlcXVlc3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NoZW1l
UmVnaXN0cnkuaD4KQEAgLTQzLDEyICs0NCw2IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NN
ZXNzYWdlcy5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKLSNpbmNs
dWRlICJXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5oIgotI2Vsc2UKLSNpbmNs
dWRlICJXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBzdGF0aWMgdm9pZCBpbml0SW5zcGVjdG9yU2VydmVyKCkKQEAgLTEwNCwxMSAr
OTksNyBAQCB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgIH0KIAogICAgIGlmICghdXNlc05l
dHdvcmtQcm9jZXNzKCkpIHsKLSNpZiBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKICAgICAgICAg
cGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3RvY29scyA9IHN1cHBs
ZW1lbnQ8V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+KCktPnJlZ2lzdGVyZWRT
Y2hlbWVzRm9yQ3VzdG9tUHJvdG9jb2xzKCk7Ci0jZWxzZQotICAgICAgICBwYXJhbWV0ZXJzLnVy
bFNjaGVtZXNSZWdpc3RlcmVkID0gc3VwcGxlbWVudDxXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94
eT4oKS0+cmVnaXN0ZXJlZFVSSVNjaGVtZXMoKTsKLSNlbmRpZgogCiAgICAgICAgIHN1cHBsZW1l
bnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpLT5nZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShw
YXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlUGF0aCwgcGFyYW1ldGVycy5jb29raWVQ
ZXJzaXN0ZW50U3RvcmFnZVR5cGUpOwogICAgICAgICBwYXJhbWV0ZXJzLmNvb2tpZUFjY2VwdFBv
bGljeSA9IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3k7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4
LmgKaW5kZXggMGM5NTljNC4uM2MxNzcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
S2l0MlByZWZpeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaApAQCAtNzAs
NiArNzAsNyBAQAogCiAjaWYgUExBVEZPUk0oR1RLKQogI2RlZmluZSBFTkFCTEVfTkVUV09SS19Q
Uk9DRVNTIDEKKyNkZWZpbmUgRU5BQkxFX0NVU1RPTV9QUk9UT0NPTFMgMQogI2VuZGlmCiAKIC8q
IFdoZW4gQysrIGV4Y2VwdGlvbnMgYXJlIGRpc2FibGVkLCB0aGUgQysrIGxpYnJhcnkgZGVmaW5l
cyB8dHJ5fCBhbmQgfGNhdGNofApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGFmMTMzN2EuLjdiYTEzN2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wMS0xNiAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dU
S10gSW1wbGVtZW50IGN1c3RvbSBVUkkgc2NoZW1lcyB3aXRoIEN1c3RvbVByb3RvY29scworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3MDkxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVtcG9yYXJpbHkg
ZGlzYWJsZSB0aGUgV2ViS2l0V2ViVmlldyBjaGVjayB1bnRpbCB3ZSBmaWd1cmUgb3V0CisgICAg
ICAgIGhvdyB0byBpbXBsZW1lbnQgaXQgd2l0aCBDdXN0b21Qcm90b2NvbHMuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFdlYkNvbnRleHQuY3Bw
OgorCiAyMDE0LTAxLTIzICBMw6FzemzDsyBMYW5nw7MgIDxsbGFuZ28udS1zemVnZWRAcGFydG5l
ci5zYW1zdW5nLmNvbT4KIAogICAgICAgICBSZW1vdmUgYSBGSVhNRSBjb21tZW50IHRoYXQgaXMg
YWxyZWFkeSBmaXhlZC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mkd0ay9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IDMxOWVlYzQuLjQ3
MjE4MjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9U
ZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyR3RrL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMTQ2LDcgKzE0Niw4IEBAIHB1
YmxpYzoKICAgICAgICAgdGVzdC0+bV91cmlTY2hlbWVSZXF1ZXN0ID0gcmVxdWVzdDsKICAgICAg
ICAgdGVzdC0+YXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChy
ZXF1ZXN0KSk7CiAKLSAgICAgICAgZ19hc3NlcnQod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9n
ZXRfd2ViX3ZpZXcocmVxdWVzdCkgPT0gdGVzdC0+bV93ZWJWaWV3KTsKKyAgICAgICAgLy8gRklY
TUU6IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3IGRvZXNuJ3Qgd29yayB3
aXRoIGN1c3RvbSBwcm90b2NvbHMuCisgICAgICAgIC8vIGdfYXNzZXJ0KHdlYmtpdF91cmlfc2No
ZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3KHJlcXVlc3QpID09IHRlc3QtPm1fd2ViVmlldyk7CiAK
ICAgICAgICAgR1JlZlB0cjxHSW5wdXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKGdf
bWVtb3J5X2lucHV0X3N0cmVhbV9uZXcoKSk7CiAgICAgICAgIHRlc3QtPmFzc2VydE9iamVjdElz
RGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1QoaW5wdXRTdHJlYW0uZ2V0KCkpKTsK
</data>
<flag name="review"
          id="245967"
          type_id="1"
          status="+"
          setter="gustavo"
    />
          </attachment>
      

    </bug>

</bugzilla>