<?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>91100</bug_id>
          
          <creation_ts>2012-07-12 08:42:51 -0700</creation_ts>
          <short_desc>[GTK] Add API to get HTTPS status to WebKit2 GTK+</short_desc>
          <delta_ts>2012-07-13 00:26:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, Soup</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>danw</cc>
    
    <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>667821</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-07-12 08:42:51 -0700</bug_when>
    <thetext>Add webkit_uri_response_get_https_status() similar to soup_message_get_https_status().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667833</commentid>
    <comment_count>1</comment_count>
      <attachid>151967</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-07-12 08:54:57 -0700</bug_when>
    <thetext>Created attachment 151967
Patch

This patch doesn&apos;t depend on bug #90267. It implements PlatformCertificateInfo for soup and adds API to get the HTTPS status from the WebKitURIResponse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667836</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-12 08:59:13 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667837</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-12 08:59:33 -0700</bug_when>
    <thetext>Attachment 151967 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/go...&quot; exit_code: 1
Source/WebKit2/UIProcess/API/gtk/tests/WebKitTestServer.cpp:41:  Use 0 instead of NULL.  [readability/null] [5]
Source/WebKit2/Shared/soup/PlatformCertificateInfo.cpp:93:  Use 0 instead of NULL.  [readability/null] [5]
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/UIProcess/API/gtk/WebKitURIResponse.h&quot;
Total errors found: 2 in 24 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>667842</commentid>
    <comment_count>4</comment_count>
      <attachid>151967</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-07-12 09:06:30 -0700</bug_when>
    <thetext>Comment on attachment 151967
Patch

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

&gt; Source/WebKit2/UIProcess/API/gtk/tests/WebKitTestServer.cpp:26
&gt; +WebKitTestServer::WebKitTestServer(bool ssl)

I think it would be nice to use an enum here, so that instantiating a server looks like this:

WebKitTestServer(EnableSSL)

or something similar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668676</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-07-13 00:26:36 -0700</bug_when>
    <thetext>Committed r122547: &lt;http://trac.webkit.org/changeset/122547&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151967</attachid>
            <date>2012-07-12 08:54:57 -0700</date>
            <delta_ts>2012-07-12 09:06:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-https-status.diff</filename>
            <type>text/plain</type>
            <size>38725</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggYzFhYTdjYy4uNWJjN2M4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wNy0xMiAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dU
S10gQWRkIEFQSSB0byBnZXQgSFRUUFMgc3RhdHVzIHRvIFdlYktpdDIgR1RLKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTExMDAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgR0J5
dGVBcnJheS4KKworICAgICAgICAqIHd0Zi9nb2JqZWN0L0dSZWZQdHIuY3BwOgorICAgICAgICAo
V1RGOjpyZWZHUHRyKToKKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OmRlcmVmR1B0cik6
CisgICAgICAgICogd3RmL2dvYmplY3QvR1JlZlB0ci5oOgorICAgICAgICAoV1RGKToKKyAgICAg
ICAgKiB3dGYvZ29iamVjdC9HVHlwZWRlZnMuaDoKKwogMjAxMi0wNy0xMSAgTWFyayBSb3dlICA8
bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzkxMDI0PiBC
dWlsZCBhZ2FpbnN0IHRoZSBsYXRlc3QgU0RLIHdoZW4gdGFyZ2V0aW5nIG9sZGVyIE9TIFggdmVy
c2lvbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggZDJjMTNkMC4uODRkMWYzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDEyLTA3LTEyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBZGQgQVBJIHRvIGdldCBIVFRQUyBzdGF0dXMgdG8g
V2ViS2l0MiBHVEsrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MTEwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OnNvdXBNZXNzYWdlQ2VydGlmaWNhdGUpOiBSZXR1
cm4gdGhlCisgICAgICAgIGNlcnRpZmljYXRlLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZTo6c2V0U291cE1lc3NhZ2VDZXJ0aWZpY2F0ZSk6IFNldCBhCisgICAgICAgIGNlcnRp
ZmljYXRlLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6c291cE1lc3NhZ2VU
TFNFcnJvcnMpOiBSZXR1cm4gdGhlIFRMUworICAgICAgICBlcnJvcnMuCisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpzZXRTb3VwTWVzc2FnZVRMU0Vycm9ycyk6IFNldCBUTFMK
KyAgICAgICAgZXJyb3JzLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjp0
b1NvdXBNZXNzYWdlKTogU2V0IHRoZSBjZXJ0aWZpY2F0ZQorICAgICAgICBhbmQgVExTIGVycm9y
cyB0byB0aGUgbmV3bHkgY3JlYXRlZCBTb3VwTWVzc2FnZS4KKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2U6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZSk6IEdldCB0aGUKKyAgICAgICAg
Y2VydGlmaWNhdGUgYW5kIFRMUyBlcnJvcnMgZnJvbSB0aGUgU291cE1lc3NhZ2UuCisKIDIwMTIt
MDctMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHVEtdIEFkZCB3ZWJraXRfY29va2llX21hbmFnZXJfc2V0X3BlcnNpc3RlbnRfc3RvcmFn
ZSgpIHRvIFdlYktpdDIgR1RLKyBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0NDgyY2YyLi5iYjNiNWZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsNTggQEAKIDIwMTItMDctMTIgIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCisgICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gZ2V0
IEhUVFBTIHN0YXR1cyB0byBXZWJLaXQyIEdUSysKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMTAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIHdlYmtpdF91cmlfcmVzcG9uc2VfZ2V0X2h0dHBzX3N0
YXR1cygpIHRvIHJldHVybgorICAgICAgICBHVGxzQ2VydGlmaWNhdGUgYW5kIEdUbHNDZXJ0aWZp
Y2F0ZUZsYWdzIHdpdGggaW5mb3JtYXRpb24gYWJvdXQKKyAgICAgICAgdGhlIFNTTCBjZXJ0aWZp
Y2F0ZSBhbmQgdGhlIHBvc3NpYmxlIGVycm9ycyB3aXRoIHRoZSBjZXJ0aWZpY2F0ZS4KKworICAg
ICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZCBuZXcgZmlsZXMgdG8gY29tcGlsYXRpb24u
CisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IERpdHRvLgorICAgICAgICAqIFNoYXJlZC9l
ZmwvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQv
c291cC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8pOgorICAg
ICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6flBsYXRmb3JtQ2VydGlmaWNh
dGVJbmZvKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OmVuY29k
ZSk6IEVuY29kZSB0aGUKKyAgICAgICAgR1Rsc0NlcnRpZmljYXRlIGFuZCBHVGxzQ2VydGlmaWNh
dGVGbGFncy4KKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OmRlY29k
ZSk6IERlY29kZQorICAgICAgICBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyBpbnRvIGEgR1Rsc0Nl
cnRpZmljYXRlIGFuZCBHVGxzQ2VydGlmaWNhdGVGbGFncy4KKyAgICAgICAgKiBTaGFyZWQvc291
cC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIv
U2hhcmVkL2d0ay9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oLgorICAgICAgICAoV2ViS2l0OjpQ
bGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6Y2VydGlmaWNhdGUpOiBSZXR1cm4gdGhlIGNlcnRpZmlj
YXRlLgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6dGxzRXJyb3Jz
KTogUmV0dXJuIHRoZSBUTFMgZXJyb3JzCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0TG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKGRpZENvbW1pdExvYWRGb3JGcmFtZSk6IFNl
dCB0aGUgY2VydGlmaWNhdGUgb2YgdGhlIGN1cnJlbnQgZnJhbWUKKyAgICAgICAgdG8gdGhlIHJl
c3BvbnNlIG9mIHRoZSBtYWluIHJlc291cmNlLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVSSVJlc3BvbnNlLmNwcDoKKyAgICAgICAgKHdlYmtpdF91cmlfcmVzcG9uc2VfZ2V0
X2h0dHBzX3N0YXR1cyk6IFJldHVybiBHVGxzQ2VydGlmaWNhdGUgYW5kCisgICAgICAgIEdUbHND
ZXJ0aWZpY2F0ZUZsYWdzLgorICAgICAgICAod2Via2l0VVJJUmVzcG9uc2VTZXRDZXJ0aWZpY2F0
ZUluZm8pOiBVcGRhdGUgdGhlIGludGVybmFsCisgICAgICAgIFJlc291cmNlUmVzcG9uc2Ugd2l0
aCB0aGUgR1Rsc0NlcnRpZmljYXRlIGFuZCBHVGxzQ2VydGlmaWNhdGVGbGFncworICAgICAgICBv
ZiB0aGUgZ2l2ZW4gUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0VVJJUmVzcG9uc2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVUklSZXNwb25zZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0OiBBZGQgbmV3IHN5bWJvbC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9HTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0TWFpbi5oOgorICAgICAgICAoVGVzdDo6Z2V0UmVzb3Vy
Y2VzRGlyKTogSGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgcmVzb3VyY2VzCisgICAgICAgIGRp
cmVjdG9yeSBvZiB0aGUgV2ViS2l0MiBBUEkgdGVzdHMuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9ndGsvdGVzdHMvVGVzdFNTTC5jcHA6IEFkZGVkLgorICAgICAgICAodGVzdFNTTCk6CisgICAg
ICAgIChzZXJ2ZXJDYWxsYmFjayk6CisgICAgICAgIChiZWZvcmVBbGwpOgorICAgICAgICAoYWZ0
ZXJBbGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYktpdFRlc3RTZXJ2
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0VGVzdFNlcnZlcjo6V2ViS2l0VGVzdFNlcnZlcik6IEFk
ZCBzdXBwb3J0IHBvciBTU0wgdGVzdAorICAgICAgICBzZXJ2ZXJzLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYktpdFRlc3RTZXJ2ZXIuaDoKKyAgICAgICAgKFdlYktpdFRl
c3RTZXJ2ZXIpOiBBZGQgc3NsIHBhcmFtZXRlciB0byBjcmVhdGUgYSBIVFRQUyBzZXJ2ZXIuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvcmVzb3VyY2VzL3Rlc3QtY2VydC5wZW06
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL3Jlc291cmNlcy90ZXN0
LWtleS5wZW06IEFkZGVkLgorCisyMDEyLTA3LTEyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBVbnJldmlld2VkLiBGaXggR1RLKyBkZWJ1ZyBi
dWlsZCBhZnRlciByMTIyNDI1LgogCiAgICAgICAgICogV2ViUHJvY2Vzcy9Db29raWVzL3NvdXAv
V2ViS2l0U291cENvb2tpZUphclNxbGl0ZS5jcHA6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9nb2JqZWN0L0dSZWZQdHIuY3BwIGIvU291cmNlL1dURi93dGYvZ29iamVjdC9HUmVmUHRyLmNw
cAppbmRleCAzYTAxNGRhLi41YWEwNjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nb2Jq
ZWN0L0dSZWZQdHIuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR1JlZlB0ci5jcHAK
QEAgLTEyMCw2ICsxMjAsMTkgQEAgdGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR1B0ckFycmF5
KiBwdHIpCiAgICAgICAgIGdfcHRyX2FycmF5X3VucmVmKHB0cik7CiB9CiAKK3RlbXBsYXRlIDw+
IEdCeXRlQXJyYXkqIHJlZkdQdHIoR0J5dGVBcnJheSogcHRyKQoreworICAgIGlmIChwdHIpCisg
ICAgICAgIGdfYnl0ZV9hcnJheV9yZWYocHRyKTsKKyAgICByZXR1cm4gcHRyOworfQorCit0ZW1w
bGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHQnl0ZUFycmF5KiBwdHIpCit7CisgICAgaWYgKHB0cikK
KyAgICAgICAgZ19ieXRlX2FycmF5X3VucmVmKHB0cik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdU
RgogCiAjZW5kaWYgLy8gRU5BQkxFKEdMSUJfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL2dvYmplY3QvR1JlZlB0ci5oIGIvU291cmNlL1dURi93dGYvZ29iamVjdC9HUmVmUHRy
LmgKaW5kZXggZjRmZjNkMS4uZGY2ODg4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZ29i
amVjdC9HUmVmUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYvZ29iamVjdC9HUmVmUHRyLmgKQEAg
LTIxMCw2ICsyMTAsOCBAQCB0ZW1wbGF0ZSA8PiBHU291cmNlKiByZWZHUHRyKEdTb3VyY2UqIHB0
cik7CiB0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHU291cmNlKiBwdHIpOwogdGVtcGxhdGUg
PD4gR1B0ckFycmF5KiByZWZHUHRyKEdQdHJBcnJheSopOwogdGVtcGxhdGUgPD4gdm9pZCBkZXJl
ZkdQdHIoR1B0ckFycmF5Kik7Cit0ZW1wbGF0ZSA8PiBHQnl0ZUFycmF5KiByZWZHUHRyKEdCeXRl
QXJyYXkqKTsKK3RlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdCeXRlQXJyYXkqKTsKIAogdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBUKiByZWZHUHRyKFQqIHB0cikKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR1R5cGVkZWZzLmggYi9Tb3VyY2UvV1RGL3d0Zi9n
b2JqZWN0L0dUeXBlZGVmcy5oCmluZGV4IDc5YzMzZDIuLjJlZmMwNzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL2dvYmplY3QvR1R5cGVkZWZzLmgKKysrIGIvU291cmNlL1dURi93dGYvZ29i
amVjdC9HVHlwZWRlZnMuaApAQCAtNjQsNiArNjQsNyBAQCB0eXBlZGVmIHVuaW9uIF9HZGtFdmVu
dCBHZGtFdmVudDsKIHR5cGVkZWYgc3RydWN0IF9HVGltZXIgR1RpbWVyOwogdHlwZWRlZiBzdHJ1
Y3QgX0dLZXlGaWxlIEdLZXlGaWxlOwogdHlwZWRlZiBzdHJ1Y3QgX0dQdHJBcnJheSBHUHRyQXJy
YXk7Cit0eXBlZGVmIHN0cnVjdCBfR0J5dGVBcnJheSBHQnl0ZUFycmF5OwogCiAjaWYgVVNFKENB
SVJPKQogdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3N1cmZhY2UgY2Fpcm9fc3VyZmFjZV90OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVz
cG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJl
c3BvbnNlLmgKaW5kZXggODYyNGMwNS4uYjgwODRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZS5oCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZUJhc2UuaCIKIAogI2luY2x1ZGUg
PGxpYnNvdXAvc291cC5oPgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNywxOCArMzgsMjEgQEAgcHVibGljOgogICAgIFJlc291
cmNlUmVzcG9uc2UoKQogICAgICAgICA6IFJlc291cmNlUmVzcG9uc2VCYXNlKCkKICAgICAgICAg
LCBtX3NvdXBGbGFncyhzdGF0aWNfY2FzdDxTb3VwTWVzc2FnZUZsYWdzPigwKSkKKyAgICAgICAg
LCBtX3Rsc0Vycm9ycyhzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4oMCkpCiAgICAg
ewogICAgIH0KIAogICAgIFJlc291cmNlUmVzcG9uc2UoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBsb25nIGxvbmcgZXhwZWN0ZWRMZW5ndGgsIGNvbnN0IFN0cmluZyYg
dGV4dEVuY29kaW5nTmFtZSwgY29uc3QgU3RyaW5nJiBmaWxlbmFtZSkKICAgICAgICAgOiBSZXNv
dXJjZVJlc3BvbnNlQmFzZSh1cmwsIG1pbWVUeXBlLCBleHBlY3RlZExlbmd0aCwgdGV4dEVuY29k
aW5nTmFtZSwgZmlsZW5hbWUpCiAgICAgICAgICwgbV9zb3VwRmxhZ3Moc3RhdGljX2Nhc3Q8U291
cE1lc3NhZ2VGbGFncz4oMCkpCisgICAgICAgICwgbV90bHNFcnJvcnMoc3RhdGljX2Nhc3Q8R1Rs
c0NlcnRpZmljYXRlRmxhZ3M+KDApKQogICAgIHsKICAgICB9CiAKICAgICBSZXNvdXJjZVJlc3Bv
bnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkKICAgICAgICAgOiBSZXNvdXJjZVJlc3BvbnNl
QmFzZSgpCiAgICAgICAgICwgbV9zb3VwRmxhZ3Moc3RhdGljX2Nhc3Q8U291cE1lc3NhZ2VGbGFn
cz4oMCkpCisgICAgICAgICwgbV90bHNFcnJvcnMoc3RhdGljX2Nhc3Q8R1Rsc0NlcnRpZmljYXRl
RmxhZ3M+KDApKQogICAgIHsKICAgICAgICAgdXBkYXRlRnJvbVNvdXBNZXNzYWdlKHNvdXBNZXNz
YWdlKTsKICAgICB9CkBAIC02MiwxMSArNjYsMTkgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmlu
ZyYgc25pZmZlZENvbnRlbnRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9zbmlmZmVkQ29udGVudFR5
cGU7IH0KICAgICB2b2lkIHNldFNuaWZmZWRDb250ZW50VHlwZShjb25zdCBTdHJpbmcmIHZhbHVl
KSB7IG1fc25pZmZlZENvbnRlbnRUeXBlID0gdmFsdWU7IH0KIAorICAgIEdUbHNDZXJ0aWZpY2F0
ZSogc291cE1lc3NhZ2VDZXJ0aWZpY2F0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2VydGlmaWNhdGUu
Z2V0KCk7IH0KKyAgICB2b2lkIHNldFNvdXBNZXNzYWdlQ2VydGlmaWNhdGUoR1Rsc0NlcnRpZmlj
YXRlKiBjZXJ0aWZpY2F0ZSkgeyBtX2NlcnRpZmljYXRlID0gY2VydGlmaWNhdGU7IH0KKworICAg
IEdUbHNDZXJ0aWZpY2F0ZUZsYWdzIHNvdXBNZXNzYWdlVExTRXJyb3JzKCkgY29uc3QgeyByZXR1
cm4gbV90bHNFcnJvcnM7IH0KKyAgICB2b2lkIHNldFNvdXBNZXNzYWdlVExTRXJyb3JzKEdUbHND
ZXJ0aWZpY2F0ZUZsYWdzIHRsc0Vycm9ycykgeyBtX3Rsc0Vycm9ycyA9IHRsc0Vycm9yczsgfQor
CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZTsKIAogICAg
IFNvdXBNZXNzYWdlRmxhZ3MgbV9zb3VwRmxhZ3M7CiAgICAgU3RyaW5nIG1fc25pZmZlZENvbnRl
bnRUeXBlOworICAgIEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPiBtX2NlcnRpZmljYXRlOworICAg
IEdUbHNDZXJ0aWZpY2F0ZUZsYWdzIG1fdGxzRXJyb3JzOwogCiAgICAgdm9pZCBkb1VwZGF0ZVJl
c291cmNlUmVzcG9uc2UoKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAKaW5kZXggMTU1
MDQ4Yi4uZGRhYTg5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCkBAIC01MSw2ICs1MSw4
IEBAIFNvdXBNZXNzYWdlKiBSZXNvdXJjZVJlc3BvbnNlOjp0b1NvdXBNZXNzYWdlKCkgY29uc3QK
IAogICAgIHNvdXBfbWVzc2FnZV9zZXRfZmxhZ3Moc291cE1lc3NhZ2UsIG1fc291cEZsYWdzKTsK
IAorICAgIGdfb2JqZWN0X3NldChHX09CSkVDVChzb3VwTWVzc2FnZSksICJ0bHMtY2VydGlmaWNh
dGUiLCBtX2NlcnRpZmljYXRlLmdldCgpLCAidGxzLWVycm9ycyIsIG1fdGxzRXJyb3JzLCBOVUxM
KTsKKwogICAgIC8vIEJvZHkgZGF0YSBpcyBub3QgaW4gdGhlIG1lc3NhZ2UuCiAgICAgcmV0dXJu
IHNvdXBNZXNzYWdlOwogfQpAQCAtODQsNiArODYsMTAgQEAgdm9pZCBSZXNvdXJjZVJlc3BvbnNl
Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2UoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlKQogICAgIHNl
dEV4cGVjdGVkQ29udGVudExlbmd0aChzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfY29udGVudF9s
ZW5ndGgoc291cE1lc3NhZ2UtPnJlc3BvbnNlX2hlYWRlcnMpKTsKICAgICBzZXRIVFRQU3RhdHVz
VGV4dChzb3VwTWVzc2FnZS0+cmVhc29uX3BocmFzZSk7CiAgICAgc2V0U3VnZ2VzdGVkRmlsZW5h
bWUoZmlsZW5hbWVGcm9tSFRUUENvbnRlbnREaXNwb3NpdGlvbihodHRwSGVhZGVyRmllbGQoIkNv
bnRlbnQtRGlzcG9zaXRpb24iKSkpOworCisgICAgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0
ZSA9IDA7CisgICAgc291cF9tZXNzYWdlX2dldF9odHRwc19zdGF0dXMoc291cE1lc3NhZ2UsICZj
ZXJ0aWZpY2F0ZSwgJm1fdGxzRXJyb3JzKTsKKyAgICBtX2NlcnRpZmljYXRlID0gY2VydGlmaWNh
dGU7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3Qu
YW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGM2ZmMzNmYuLmU5
MzQ4ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzcwLDcgKzM3MCw2IEBA
IHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9OYXRpdmVX
ZWJLZXlib2FyZEV2ZW50R3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9OYXRp
dmVXZWJNb3VzZUV2ZW50R3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9OYXRp
dmVXZWJXaGVlbEV2ZW50R3RrLmNwcCBcCi0JU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9QbGF0
Zm9ybUNlcnRpZmljYXRlSW5mby5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL1ByaW50
SW5mb0d0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvUHJvY2Vzc0V4ZWN1dGFi
bGVQYXRoR3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9XZWJDb3JlQXJndW1l
bnRDb2RlcnNHdGsuY3BwIFwKQEAgLTQyNyw2ICs0MjYsOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5jcHAgXAogCVNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
U3RyaW5nUGFpclZlY3Rvci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9y
bUNlcnRpZmljYXRlSW5mby5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1NvdXBD
b29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1Rl
eHRDaGVja2VyU3RhdGUuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29k
ZXJzLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCAyZDY1MDZlLi41Y2U3MWFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMjcsNiArMjcsOCBAQCBMSVNUKEFQUEVORCBX
ZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvZWZsL1dlYkV2ZW50RmFjdG9yeS5jcHAKICAgICBT
aGFyZWQvZWZsL1dlYkNvcmVBcmd1bWVudENvZGVyc0VmbC5jcHAKIAorICAgIFNoYXJlZC9zb3Vw
L1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmNwcAorCiAgICAgVUlQcm9jZXNzL0FQSS9DL2VmbC9X
S1ZpZXcuY3BwCiAKICAgICBVSVByb2Nlc3MvQVBJL0Mvc291cC9XS0NvbnRleHRTb3VwLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9QbGF0Zm9ybUNlcnRpZmljYXRl
SW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5m
by5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNDc3MWI3Li4wMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaAorKysg
L2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gICBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ft
c3VuZyBFbGVjdHJvbmljcwotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAgICBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KLSovCi0KLSNpZm5kZWYgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9faAot
I2RlZmluZSBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mb19oCi0KLSNpbmNsdWRlICJBcmd1bWVudERl
Y29kZXIuaCIKLSNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlUmVzcG9uc2UuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvIHsKLXB1YmxpYzoKLSAgICBQbGF0Zm9ybUNlcnRpZmljYXRlSW5m
bygpCi0gICAgewotICAgIH0KLQotICAgIGV4cGxpY2l0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKQotICAgIHsKLSAgICB9Ci0KLSAgICB2
b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdAotICAgIHsKLSAgICB9
Ci0KLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgUGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm8mKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
fQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBQbGF0Zm9ybUNlcnRp
ZmljYXRlSW5mb19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL1BsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL1BsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4OTQ2N2Uu
LjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9QbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mby5oCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBQb3J0aW9ucyBD
b3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9faAotI2Rl
ZmluZSBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mb19oCi0KLSNpbmNsdWRlICJBcmd1bWVudERlY29k
ZXIuaCIKLSNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlUmVzcG9uc2UuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFBsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvIHsKLXB1YmxpYzoKLSAgICBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygp
Ci0gICAgewotICAgIH0KLQotICAgIGV4cGxpY2l0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKQotICAgIHsKLSAgICB9Ci0KLSAgICB2b2lk
IGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdAotICAgIHsKLSAgICB9Ci0K
LSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8mKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBQbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mb19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9y
bUNlcnRpZmljYXRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9y
bUNlcnRpZmljYXRlSW5mby5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YzdiYWJhMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1Bs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvLmNwcApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCIKKworI2luY2x1ZGUgIkFyZ3Vt
ZW50RGVjb2Rlci5oIgorI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIkRh
dGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKyNp
bmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6UGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8oKQorICAgIDogbV90bHNFcnJvcnMoc3RhdGljX2Nhc3Q8R1Rsc0NlcnRpZmlj
YXRlRmxhZ3M+KDApKQoreworfQorCitQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6UGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8oY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCisgICAgOiBt
X2NlcnRpZmljYXRlKHJlc3BvbnNlLnNvdXBNZXNzYWdlQ2VydGlmaWNhdGUoKSkKKyAgICAsIG1f
dGxzRXJyb3JzKHJlc3BvbnNlLnNvdXBNZXNzYWdlVExTRXJyb3JzKCkpCit7Cit9CisKK1BsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvOjp+UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKQoreworfQorCit2
b2lkIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGlmICghbV9jZXJ0aWZpY2F0ZSkgeworICAgICAg
ICBlbmNvZGVyLT5lbmNvZGVCb29sKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIEdCeXRlQXJyYXkqIGNlcnRpZmljYXRlRGF0YSA9IDA7CisgICAgZ19vYmplY3RfZ2V0KEdf
T0JKRUNUKG1fY2VydGlmaWNhdGUuZ2V0KCkpLCAiY2VydGlmaWNhdGUiLCAmY2VydGlmaWNhdGVE
YXRhLCBOVUxMKTsKKyAgICBpZiAoIWNlcnRpZmljYXRlRGF0YSkgeworICAgICAgICBlbmNvZGVy
LT5lbmNvZGVCb29sKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGVuY29k
ZXItPmVuY29kZUJvb2wodHJ1ZSk7CisgICAgR1JlZlB0cjxHQnl0ZUFycmF5PiBjZXJ0aWZpY2F0
ZSA9IGFkb3B0R1JlZihjZXJ0aWZpY2F0ZURhdGEpOworICAgIGVuY29kZXItPmVuY29kZVZhcmlh
YmxlTGVuZ3RoQnl0ZUFycmF5KENvcmVJUEM6OkRhdGFSZWZlcmVuY2UoY2VydGlmaWNhdGUtPmRh
dGEsIGNlcnRpZmljYXRlLT5sZW4pKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KG1fdGxzRXJyb3JzKSk7Cit9CisKK2Jvb2wgUGxhdGZvcm1DZXJ0aWZpY2F0ZUlu
Zm86OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFBsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCit7CisgICAgYm9vbCBoYXNDZXJ0aWZpY2F0
ZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShoYXNDZXJ0aWZpY2F0ZSkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGlmICghaGFzQ2VydGlmaWNhdGUpCisgICAgICAgIHJldHVybiB0
cnVlOworCisgICAgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSBjZXJ0aWZpY2F0ZURhdGFSZWZlcmVu
Y2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheShjZXJ0
aWZpY2F0ZURhdGFSZWZlcmVuY2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBHQnl0
ZUFycmF5KiBjZXJ0aWZpY2F0ZURhdGEgPSBnX2J5dGVfYXJyYXlfc2l6ZWRfbmV3KGNlcnRpZmlj
YXRlRGF0YVJlZmVyZW5jZS5zaXplKCkpOworICAgIGNlcnRpZmljYXRlRGF0YSA9IGdfYnl0ZV9h
cnJheV9hcHBlbmQoY2VydGlmaWNhdGVEYXRhLCBjZXJ0aWZpY2F0ZURhdGFSZWZlcmVuY2UuZGF0
YSgpLCBjZXJ0aWZpY2F0ZURhdGFSZWZlcmVuY2Uuc2l6ZSgpKTsKKyAgICBHUmVmUHRyPEdCeXRl
QXJyYXk+IGNlcnRpZmljYXRlID0gYWRvcHRHUmVmKGNlcnRpZmljYXRlRGF0YSk7CisKKyAgICBH
VGxzQmFja2VuZCogYmFja2VuZCA9IGdfdGxzX2JhY2tlbmRfZ2V0X2RlZmF1bHQoKTsKKyAgICBj
ZXJ0aWZpY2F0ZUluZm8ubV9jZXJ0aWZpY2F0ZSA9IGFkb3B0R1JlZihHX1RMU19DRVJUSUZJQ0FU
RShnX2luaXRhYmxlX25ldyhnX3Rsc19iYWNrZW5kX2dldF9jZXJ0aWZpY2F0ZV90eXBlKGJhY2tl
bmQpLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjZXJ0aWZpY2F0ZSIsIGNlcnRpZmlj
YXRlLmdldCgpLCBOVUxMKSkpOworCisgICAgdWludDMyX3QgdGxzRXJyb3JzOworICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKHRsc0Vycm9ycykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBj
ZXJ0aWZpY2F0ZUluZm8ubV90bHNFcnJvcnMgPSBzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVG
bGFncz4odGxzRXJyb3JzKTsKKworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNl
cnRpZmljYXRlSW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlNzZh
M2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9y
bUNlcnRpZmljYXRlSW5mby5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJp
Z2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvX2gKKyNkZWZpbmUg
UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9faAorCisjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+Cisj
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7Citj
bGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBBcmd1bWVudEVuY29kZXI7Cit9CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7Cit9CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyB7CitwdWJsaWM6CisgICAg
UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKTsKKyAgICBleHBsaWNpdCBQbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mbyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgflBsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvKCk7CisKKyAgICBHVGxzQ2VydGlmaWNhdGUqIGNlcnRpZmljYXRlKCkg
Y29uc3QgeyByZXR1cm4gbV9jZXJ0aWZpY2F0ZS5nZXQoKTsgfQorICAgIEdUbHNDZXJ0aWZpY2F0
ZUZsYWdzIHRsc0Vycm9ycygpIGNvbnN0IHsgcmV0dXJuIG1fdGxzRXJyb3JzOyB9CisKKyAgICB2
b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgUGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm8mKTsKKworcHJpdmF0ZToKKyAgICBHUmVmUHRyPEdUbHNDZXJ0aWZpY2F0ZT4gbV9jZXJ0
aWZpY2F0ZTsKKyAgICBHVGxzQ2VydGlmaWNhdGVGbGFncyBtX3Rsc0Vycm9yczsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9f
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TG9h
ZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExv
YWRlckNsaWVudC5jcHAKaW5kZXggZTMwZTUxZC4uNGY0MDgzZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwCkBA
IC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiV2ViS2l0TG9hZGVyQ2xpZW50LmgiCiAKICNpbmNs
dWRlICJXZWJLaXRCYWNrRm9yd2FyZExpc3RQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0VVJJ
UmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgi
CiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld1ByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HT3duUHRyLmg+CkBAIC02NCw3ICs2NSwxMSBAQCBzdGF0aWMgdm9pZCBkaWRDb21taXRMb2Fk
Rm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1cwog
ICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgd2Via2l0V2ViVmlld0xvYWRDaGFuZ2VkKFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZvKSwg
V0VCS0lUX0xPQURfQ09NTUlUVEVEKTsKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gV0VC
S0lUX1dFQl9WSUVXKGNsaWVudEluZm8pOworICAgIFdlYktpdFVSSVJlc3BvbnNlKiByZXNwb25z
ZSA9IHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3Jlc3BvbnNlKHdlYmtpdF93ZWJfdmlld19nZXRf
bWFpbl9yZXNvdXJjZSh3ZWJWaWV3KSk7CisgICAgd2Via2l0VVJJUmVzcG9uc2VTZXRDZXJ0aWZp
Y2F0ZUluZm8ocmVzcG9uc2UsIFdLRnJhbWVHZXRDZXJ0aWZpY2F0ZUluZm8oZnJhbWUpKTsKKwor
ICAgIHdlYmtpdFdlYlZpZXdMb2FkQ2hhbmdlZCh3ZWJWaWV3LCBXRUJLSVRfTE9BRF9DT01NSVRU
RUQpOwogfQogCiBzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBh
Z2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVSSVJlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVSSVJlc3BvbnNlLmNwcAppbmRleCA5M2Y4M2MyLi40M2VjMzMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXNwb25zZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVzcG9uc2UuY3Bw
CkBAIC0yMCw2ICsyMCw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViS2l0
VVJJUmVzcG9uc2UuaCIKIAorI2luY2x1ZGUgIlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgiCisj
aW5jbHVkZSAiV2ViQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldlYktpdFVSSVJlc3BvbnNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIv
Z2kxOG4tbGliLmg+CkBAIC0zNCw2ICszNiw3IEBAIGVudW0gewogICAgIFBST1BfTUlNRV9UWVBF
CiB9OwogCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKIEdfREVGSU5FX1RZUEUoV2ViS2l0VVJJUmVzcG9uc2UsIHdlYmtpdF91cmlfcmVzcG9uc2Us
IEdfVFlQRV9PQkpFQ1QpCkBAIC0yMDIsNiArMjA1LDMxIEBAIGNvbnN0IGdjaGFyKiB3ZWJraXRf
dXJpX3Jlc3BvbnNlX2dldF9taW1lX3R5cGUoV2ViS2l0VVJJUmVzcG9uc2UqIHJlc3BvbnNlKQog
ICAgIHJldHVybiByZXNwb25zZS0+cHJpdi0+bWltZVR5cGUuZGF0YSgpOwogfQogCisvKioKKyAq
IHdlYmtpdF91cmlfcmVzcG9uc2VfZ2V0X2h0dHBzX3N0YXR1czoKKyAqIEByZXNwb25zZTogYSAj
V2ViS2l0VVJJUmVzcG9uc2UKKyAqIEBjZXJ0aWZpY2F0ZTogKG91dCkgKHRyYW5zZmVyIG5vbmUp
OiByZXR1cm4gbG9jYXRpb24gZm9yIGEgI0dUbHNDZXJ0aWZpY2F0ZQorICogQGVycm9yczogKG91
dCk6IHJldHVybiBsb2NhdGlvbiBmb3IgYSAjR1Rsc0NlcnRpZmljYXRlRmxhZ3MgdGhlIHZlcmlm
aWNhdGlvbiBzdGF0dXMgb2YgQGNlcnRpZmljYXRlCisgKgorICogUmV0cmlldmVzIHRoZSAjR1Rs
c0NlcnRpZmljYXRlIGFzc29jaWF0ZWQgd2l0aCB0aGUgQHJlc3BvbnNlIGNvbm5lY3Rpb24sCisg
KiBhbmQgdGhlICNHVGxzQ2VydGlmaWNhdGVGbGFncyBzaG93aW5nIHdoYXQgcHJvYmxlbXMsIGlm
IGFueSwgaGF2ZSBiZWVuIGZvdW5kCisgKiB3aXRoIHRoYXQgY2VydGlmaWNhdGUuCisgKiBJZiB0
aGUgcmVzcG9uc2UgY29ubmVjdGlvbiBpcyBub3QgSFRUUFMsIHRoaXMgZnVuY3Rpb24gcmV0dXJu
cyAlRkFMU0UuCisgKgorICogUmV0dXJuczogJVRSVUUgaWYgQHJlc3BvbnNlIGNvbm5lY3Rpb24g
dXNlcyBIVFRQUyBvciAlRkFMU0Ugb3RoZXJ3aXNlLgorICovCitnYm9vbGVhbiB3ZWJraXRfdXJp
X3Jlc3BvbnNlX2dldF9odHRwc19zdGF0dXMoV2ViS2l0VVJJUmVzcG9uc2UqIHJlc3BvbnNlLCBH
VGxzQ2VydGlmaWNhdGUqKiBjZXJ0aWZpY2F0ZSwgR1Rsc0NlcnRpZmljYXRlRmxhZ3MqIGVycm9y
cykKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfVVJJX1JFU1BPTlNFKHJl
c3BvbnNlKSwgRkFMU0UpOworCisgICAgaWYgKGNlcnRpZmljYXRlKQorICAgICAgICAqY2VydGlm
aWNhdGUgPSByZXNwb25zZS0+cHJpdi0+cmVzb3VyY2VSZXNwb25zZS5zb3VwTWVzc2FnZUNlcnRp
ZmljYXRlKCk7CisgICAgaWYgKGVycm9ycykKKyAgICAgICAgKmVycm9ycyA9IHJlc3BvbnNlLT5w
cml2LT5yZXNvdXJjZVJlc3BvbnNlLnNvdXBNZXNzYWdlVExTRXJyb3JzKCk7CisKKyAgICByZXR1
cm4gISFyZXNwb25zZS0+cHJpdi0+cmVzb3VyY2VSZXNwb25zZS5zb3VwTWVzc2FnZUNlcnRpZmlj
YXRlKCk7Cit9CisKIFdlYktpdFVSSVJlc3BvbnNlKiB3ZWJraXRVUklSZXNwb25zZUNyZWF0ZUZv
clJlc291cmNlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzb3Vy
Y2VSZXNwb25zZSkKIHsKICAgICBXZWJLaXRVUklSZXNwb25zZSogdXJpUmVzcG9uc2UgPSBXRUJL
SVRfVVJJX1JFU1BPTlNFKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9VUklfUkVTUE9OU0UsIE5V
TEwpKTsKQEAgLTIxMywzICsyNDEsMTAgQEAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYgd2Via2l0VVJJUmVzcG9uc2VHZXRSZXNvdXJjZVJlc3BvbnNlKFdlYktpdFVSSVIKIHsKICAg
ICByZXR1cm4gdXJpUmVzcG9uc2UtPnByaXYtPnJlc291cmNlUmVzcG9uc2U7CiB9CisKK3ZvaWQg
d2Via2l0VVJJUmVzcG9uc2VTZXRDZXJ0aWZpY2F0ZUluZm8oV2ViS2l0VVJJUmVzcG9uc2UqIHJl
c3BvbnNlLCBXS0NlcnRpZmljYXRlSW5mb1JlZiB3a0NlcnRpZmljYXRlKQoreworICAgIGNvbnN0
IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8gPSB0b0ltcGwod2tDZXJ0
aWZpY2F0ZSktPnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCk7CisgICAgcmVzcG9uc2UtPnByaXYt
PnJlc291cmNlUmVzcG9uc2Uuc2V0U291cE1lc3NhZ2VDZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZUlu
Zm8uY2VydGlmaWNhdGUoKSk7CisgICAgcmVzcG9uc2UtPnByaXYtPnJlc291cmNlUmVzcG9uc2Uu
c2V0U291cE1lc3NhZ2VUTFNFcnJvcnMoY2VydGlmaWNhdGVJbmZvLnRsc0Vycm9ycygpKTsKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJl
c3BvbnNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXNw
b25zZS5oCmluZGV4IDBjYzZjODkuLjE5NzA1OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVzcG9uc2UuaApAQCAtMjQsNyArMjQsNyBA
QAogI2lmbmRlZiBXZWJLaXRVUklSZXNwb25zZV9oCiAjZGVmaW5lIFdlYktpdFVSSVJlc3BvbnNl
X2gKIAotI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8Z2lvL2dpby5oPgogI2lu
Y2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgogCiBHX0JFR0lOX0RFQ0xTCkBAIC01Niwx
NiArNTYsMjEgQEAgV0VCS0lUX0FQSSBHVHlwZQogd2Via2l0X3VyaV9yZXNwb25zZV9nZXRfdHlw
ZSAgICAgICAgICAgKHZvaWQpOwogCiBXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKLXdlYmtpdF91
cmlfcmVzcG9uc2VfZ2V0X3VyaSAgICAgICAgICAgIChXZWJLaXRVUklSZXNwb25zZSAqcmVzcG9u
c2UpOword2Via2l0X3VyaV9yZXNwb25zZV9nZXRfdXJpICAgICAgICAgICAgKFdlYktpdFVSSVJl
c3BvbnNlICAgICpyZXNwb25zZSk7CiAKIFdFQktJVF9BUEkgZ3VpbnQKLXdlYmtpdF91cmlfcmVz
cG9uc2VfZ2V0X3N0YXR1c19jb2RlICAgIChXZWJLaXRVUklSZXNwb25zZSAqcmVzcG9uc2UpOwor
d2Via2l0X3VyaV9yZXNwb25zZV9nZXRfc3RhdHVzX2NvZGUgICAgKFdlYktpdFVSSVJlc3BvbnNl
ICAgICpyZXNwb25zZSk7CiAKIFdFQktJVF9BUEkgZ3VpbnQ2NAotd2Via2l0X3VyaV9yZXNwb25z
ZV9nZXRfY29udGVudF9sZW5ndGggKFdlYktpdFVSSVJlc3BvbnNlICpyZXNwb25zZSk7Cit3ZWJr
aXRfdXJpX3Jlc3BvbnNlX2dldF9jb250ZW50X2xlbmd0aCAoV2ViS2l0VVJJUmVzcG9uc2UgICAg
KnJlc3BvbnNlKTsKIAogV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCi13ZWJraXRfdXJpX3Jlc3Bv
bnNlX2dldF9taW1lX3R5cGUgICAgICAoV2ViS2l0VVJJUmVzcG9uc2UgKnJlc3BvbnNlKTsKK3dl
YmtpdF91cmlfcmVzcG9uc2VfZ2V0X21pbWVfdHlwZSAgICAgIChXZWJLaXRVUklSZXNwb25zZSAg
ICAqcmVzcG9uc2UpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfdXJpX3Jlc3BvbnNl
X2dldF9odHRwc19zdGF0dXMgICAoV2ViS2l0VVJJUmVzcG9uc2UgICAgKnJlc3BvbnNlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUbHNDZXJ0aWZpY2F0ZSAgICAg
KipjZXJ0aWZpY2F0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
VGxzQ2VydGlmaWNhdGVGbGFncyAqZXJyb3JzKTsKIAogR19FTkRfREVDTFMKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVzcG9uc2VQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXNwb25z
ZVByaXZhdGUuaAppbmRleCBjMmRjNDljLi45NTdjOWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXNwb25zZVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXNwb25zZVByaXZhdGUu
aApAQCAtMzEsNSArMzEsNiBAQAogCiBXZWJLaXRVUklSZXNwb25zZSogd2Via2l0VVJJUmVzcG9u
c2VDcmVhdGVGb3JSZXNvdXJjZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmKTsKIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHdlYmtpdFVSSVJlc3BvbnNl
R2V0UmVzb3VyY2VSZXNwb25zZShXZWJLaXRVUklSZXNwb25zZSopOwordm9pZCB3ZWJraXRVUklS
ZXNwb25zZVNldENlcnRpZmljYXRlSW5mbyhXZWJLaXRVUklSZXNwb25zZSosIFdLQ2VydGlmaWNh
dGVJbmZvUmVmKTsKIAogI2VuZGlmIC8vIFdlYktpdFVSSVJlc3BvbnNlUHJpdmF0ZV9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGst
c2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJr
aXQyZ3RrLXNlY3Rpb25zLnR4dAppbmRleCA1OWQ1YjVhLi5mNWM4NDc1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay1zZWN0aW9ucy50eHQKQEAgLTMxNSw2ICszMTUsNyBAQCB3ZWJraXRfdXJpX3Jlc3BvbnNlX2dl
dF91cmkKIHdlYmtpdF91cmlfcmVzcG9uc2VfZ2V0X3N0YXR1c19jb2RlCiB3ZWJraXRfdXJpX3Jl
c3BvbnNlX2dldF9jb250ZW50X2xlbmd0aAogd2Via2l0X3VyaV9yZXNwb25zZV9nZXRfbWltZV90
eXBlCit3ZWJraXRfdXJpX3Jlc3BvbnNlX2dldF9odHRwc19zdGF0dXMKIAogPFNVQlNFQ1RJT04g
U3RhbmRhcmQ+CiBXZWJLaXRVUklSZXNwb25zZUNsYXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL0dOVW1ha2VmaWxlLmFtCmluZGV4IDA1OGE2MTMu
LjkxOTIwMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rl
c3RzL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L3Rlc3RzL0dOVW1ha2VmaWxlLmFtCkBAIC05LDYgKzksNyBAQCBURVNUX1BST0dTICs9IFwKIAlQ
cm9ncmFtcy9XZWJLaXQyQVBJVGVzdHMvVGVzdExvYWRlckNsaWVudCBcCiAJUHJvZ3JhbXMvV2Vi
S2l0MkFQSVRlc3RzL1Rlc3RQcmludGluZyBcCiAJUHJvZ3JhbXMvV2ViS2l0MkFQSVRlc3RzL1Rl
c3RSZXNvdXJjZXMgXAorCVByb2dyYW1zL1dlYktpdDJBUElUZXN0cy9UZXN0U1NMIFwKIAlQcm9n
cmFtcy9XZWJLaXQyQVBJVGVzdHMvVGVzdFdlYktpdFZlcnNpb24gXAogCVByb2dyYW1zL1dlYktp
dDJBUElUZXN0cy9UZXN0V2ViS2l0RmluZENvbnRyb2xsZXIgXAogCVByb2dyYW1zL1dlYktpdDJB
UElUZXN0cy9UZXN0V2ViS2l0UG9saWN5Q2xpZW50IFwKQEAgLTE3NCw0ICsxNzUsMTAgQEAgUHJv
Z3JhbXNfV2ViS2l0MkFQSVRlc3RzX1Rlc3RDb250ZXh0TWVudV9DUFBGTEFHUyA9ICQod2Via2l0
Ml90ZXN0c19jcHBmbGFncykKIFByb2dyYW1zX1dlYktpdDJBUElUZXN0c19UZXN0Q29udGV4dE1l
bnVfTERBREQgPSAkKHdlYmtpdDJfdGVzdHNfbGRhZGQpCiBQcm9ncmFtc19XZWJLaXQyQVBJVGVz
dHNfVGVzdENvbnRleHRNZW51X0xERkxBR1MgPSAkKHdlYmtpdDJfdGVzdHNfbGRmbGFncykKIAor
UHJvZ3JhbXNfV2ViS2l0MkFQSVRlc3RzX1Rlc3RTU0xfU09VUkNFUyA9IFwKKyAgICAgICAgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFNTTC5jcHAKK1Byb2dyYW1z
X1dlYktpdDJBUElUZXN0c19UZXN0U1NMX0NQUEZMQUdTID0gJCh3ZWJraXQyX3Rlc3RzX2NwcGZs
YWdzKQorUHJvZ3JhbXNfV2ViS2l0MkFQSVRlc3RzX1Rlc3RTU0xfTERBREQgPSAkKHdlYmtpdDJf
dGVzdHNfbGRhZGQpCitQcm9ncmFtc19XZWJLaXQyQVBJVGVzdHNfVGVzdFNTTF9MREZMQUdTID0g
JCh3ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKIGVuZGlmICMgRU5BQkxFX1dFQktJVDIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RNYWluLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0TWFpbi5oCmluZGV4
IDY5MjljMzUuLjZmZTlkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL3Rlc3RzL1Rlc3RNYWluLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvdGVzdHMvVGVzdE1haW4uaApAQCAtNzUsNiArNzUsMTIgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gcmVzb3VyY2VzRGlyLmdldCgpOwogICAgIH0KIAorICAgIHN0YXRpYyBDU3RyaW5n
IGdldFJlc291cmNlc0RpcigpCisgICAgeworICAgICAgICBHT3duUHRyPGNoYXI+IHJlc291cmNl
c0RpcihnX2J1aWxkX2ZpbGVuYW1lKFdFQktJVF9TUkNfRElSLCAiU291cmNlIiwgIldlYktpdDIi
LCAiVUlQcm9jZXNzIiwgIkFQSSIsICJndGsiLCAidGVzdHMiLCAicmVzb3VyY2VzIiwgTlVMTCkp
OworICAgICAgICByZXR1cm4gcmVzb3VyY2VzRGlyLmdldCgpOworICAgIH0KKwogICAgIHZvaWQg
YWRkTG9nRmF0YWxGbGFnKHVuc2lnbmVkIGZsYWcpCiAgICAgewogICAgICAgICB1bnNpZ25lZCBm
YXRhbE1hc2sgPSBnX2xvZ19zZXRfYWx3YXlzX2ZhdGFsKHN0YXRpY19jYXN0PEdMb2dMZXZlbEZs
YWdzPihHX0xPR19GQVRBTF9NQVNLKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0U1NMLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL3Rlc3RzL1Rlc3RTU0wuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjZlNzE5MDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay90ZXN0cy9UZXN0U1NMLmNwcApAQCAtMCwwICsxLDEwMSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNs
dWRlICJMb2FkVHJhY2tpbmdUZXN0LmgiCisjaW5jbHVkZSAiV2ViS2l0VGVzdFNlcnZlci5oIgor
I2luY2x1ZGUgPGd0ay9ndGsuaD4KKworc3RhdGljIFdlYktpdFRlc3RTZXJ2ZXIqIGtTZXJ2ZXI7
CitzdGF0aWMgY29uc3QgY2hhciogaW5kZXhIVE1MID0gIjxodG1sPjxib2R5PlRlc3RpbmcgV2Vi
S2l0MkdUSysgU1NMPC9ib2R5PjwvaHRtbGw+IjsKKworY2xhc3MgU1NMVGVzdDogcHVibGljIExv
YWRUcmFja2luZ1Rlc3QgeworcHVibGljOgorICAgIE1BS0VfR0xJQl9URVNUX0ZJWFRVUkUoU1NM
VGVzdCk7CisKKyAgICBTU0xUZXN0KCkKKyAgICAgICAgOiBtX3Rsc0Vycm9ycyhzdGF0aWNfY2Fz
dDxHVGxzQ2VydGlmaWNhdGVGbGFncz4oMCkpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwg
dm9pZCBsb2FkQ29tbWl0dGVkKCkKKyAgICB7CisgICAgICAgIFdlYktpdFdlYlJlc291cmNlKiBy
ZXNvdXJjZSA9IHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9yZXNvdXJjZShtX3dlYlZpZXcpOwor
ICAgICAgICBnX2Fzc2VydChyZXNvdXJjZSk7CisgICAgICAgIFdlYktpdFVSSVJlc3BvbnNlKiBy
ZXNwb25zZSA9IHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3Jlc3BvbnNlKHJlc291cmNlKTsKKyAg
ICAgICAgZ19hc3NlcnQocmVzcG9uc2UpOworCisgICAgICAgIEdUbHNDZXJ0aWZpY2F0ZSogY2Vy
dGlmaWNhdGUgPSAwOworICAgICAgICB3ZWJraXRfdXJpX3Jlc3BvbnNlX2dldF9odHRwc19zdGF0
dXMocmVzcG9uc2UsICZjZXJ0aWZpY2F0ZSwgJm1fdGxzRXJyb3JzKTsKKyAgICAgICAgbV9jZXJ0
aWZpY2F0ZSA9IGNlcnRpZmljYXRlOworICAgIH0KKworICAgIHZvaWQgd2FpdFVudGlsTG9hZEZp
bmlzaGVkKCkKKyAgICB7CisgICAgICAgIG1fY2VydGlmaWNhdGUgPSAwOworICAgICAgICBtX3Rs
c0Vycm9ycyA9IHN0YXRpY19jYXN0PEdUbHNDZXJ0aWZpY2F0ZUZsYWdzPigwKTsKKyAgICAgICAg
TG9hZFRyYWNraW5nVGVzdDo6d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgfQorCisgICAg
R1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+IG1fY2VydGlmaWNhdGU7CisgICAgR1Rsc0NlcnRpZmlj
YXRlRmxhZ3MgbV90bHNFcnJvcnM7Cit9OworCitzdGF0aWMgdm9pZCB0ZXN0U1NMKFNTTFRlc3Qq
IHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgdGVzdC0+bG9hZFVSSShrU2VydmVyLT5nZXRV
UklGb3JQYXRoKCIvIikuZGF0YSgpKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQo
KTsKKyAgICBnX2Fzc2VydCh0ZXN0LT5tX2NlcnRpZmljYXRlKTsKKyAgICAvLyBXZSBhbHdheXMg
ZXhwZWN0IGVycm9ycyBiZWNhdXNlIHdlIGFyZSB1c2luZyBhIHNlbGYtc2lnbmVkIGNlcnRpZmlj
YXRlLAorICAgIC8vIGJ1dCBvbmx5IEdfVExTX0NFUlRJRklDQVRFX1VOS05PV05fQ0EgZmxhZ3Mg
c2hvdWxkIGJlIHByZXNlbnQuCisgICAgZ19hc3NlcnQodGVzdC0+bV90bHNFcnJvcnMpOworICAg
IGdfYXNzZXJ0X2NtcHVpbnQodGVzdC0+bV90bHNFcnJvcnMsID09LCBHX1RMU19DRVJUSUZJQ0FU
RV9VTktOT1dOX0NBKTsKKworICAgIC8vIE5vbiBIVFRQUyBsb2FkcyBzaG91bGRuJ3QgaGF2ZSBh
IGNlcnRpZmljYXRlIG5vciBlcnJvcnMuCisgICAgdGVzdC0+bG9hZEh0bWwoaW5kZXhIVE1MLCAw
KTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKyAgICBnX2Fzc2VydCghdGVz
dC0+bV9jZXJ0aWZpY2F0ZSk7CisgICAgZ19hc3NlcnQoIXRlc3QtPm1fdGxzRXJyb3JzKTsKK30K
Kworc3RhdGljIHZvaWQgc2VydmVyQ2FsbGJhY2soU291cFNlcnZlciogc2VydmVyLCBTb3VwTWVz
c2FnZSogbWVzc2FnZSwgY29uc3QgY2hhciogcGF0aCwgR0hhc2hUYWJsZSosIFNvdXBDbGllbnRD
b250ZXh0KiwgZ3BvaW50ZXIpCit7CisgICAgaWYgKG1lc3NhZ2UtPm1ldGhvZCAhPSBTT1VQX01F
VEhPRF9HRVQpIHsKKyAgICAgICAgc291cF9tZXNzYWdlX3NldF9zdGF0dXMobWVzc2FnZSwgU09V
UF9TVEFUVVNfTk9UX0lNUExFTUVOVEVEKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVzKG1lc3NhZ2UsIFNPVVBfU1RBVFVTX09LKTsKKyAgICBz
b3VwX21lc3NhZ2VfYm9keV9hcHBlbmQobWVzc2FnZS0+cmVzcG9uc2VfYm9keSwgU09VUF9NRU1P
UllfU1RBVElDLCBpbmRleEhUTUwsIHN0cmxlbihpbmRleEhUTUwpKTsKKyAgICBzb3VwX21lc3Nh
Z2VfYm9keV9jb21wbGV0ZShtZXNzYWdlLT5yZXNwb25zZV9ib2R5KTsKK30KKwordm9pZCBiZWZv
cmVBbGwoKQoreworICAgIGtTZXJ2ZXIgPSBuZXcgV2ViS2l0VGVzdFNlcnZlcih0cnVlKTsKKyAg
ICBrU2VydmVyLT5ydW4oc2VydmVyQ2FsbGJhY2spOworCisgICAgU1NMVGVzdDo6YWRkKCJXZWJL
aXRXZWJWaWV3IiwgInNzbCIsIHRlc3RTU0wpOworfQorCit2b2lkIGFmdGVyQWxsKCkKK3sKKyAg
ICBkZWxldGUga1NlcnZlcjsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL3Rlc3RzL1dlYktpdFRlc3RTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViS2l0VGVzdFNlcnZlci5jcHAKaW5kZXggNTVhOTNkZS4u
NThmMTg3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVz
dHMvV2ViS2l0VGVzdFNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvdGVzdHMvV2ViS2l0VGVzdFNlcnZlci5jcHAKQEAgLTIwLDEyICsyMCwyNiBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdFRlc3RTZXJ2ZXIuaCIKIAorI2luY2x1
ZGUgIlRlc3RNYWluLmgiCiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5oPgogCi1XZWJL
aXRUZXN0U2VydmVyOjpXZWJLaXRUZXN0U2VydmVyKCkKLSAgICA6IG1fc291cFNlcnZlcihhZG9w
dEdSZWYoc291cF9zZXJ2ZXJfbmV3KFNPVVBfU0VSVkVSX1BPUlQsIDAsIE5VTEwpKSkKLSAgICAs
IG1fYmFzZVVSSShzb3VwX3VyaV9uZXcoImh0dHA6Ly8xMjcuMC4wLjEvIikpCitXZWJLaXRUZXN0
U2VydmVyOjpXZWJLaXRUZXN0U2VydmVyKGJvb2wgc3NsKQogeworICAgIEdPd25QdHI8Y2hhcj4g
c3NsQ2VydGlmaWNhdGVGaWxlOworICAgIEdPd25QdHI8Y2hhcj4gc3NsS2V5RmlsZTsKKyAgICBp
ZiAoc3NsKSB7CisgICAgICAgIENTdHJpbmcgcmVzb3VyY2VzRGlyID0gVGVzdDo6Z2V0UmVzb3Vy
Y2VzRGlyKCk7CisgICAgICAgIHNzbENlcnRpZmljYXRlRmlsZS5zZXQoZ19idWlsZF9maWxlbmFt
ZShyZXNvdXJjZXNEaXIuZGF0YSgpLCAidGVzdC1jZXJ0LnBlbSIsIE5VTEwpKTsKKyAgICAgICAg
c3NsS2V5RmlsZS5zZXQoZ19idWlsZF9maWxlbmFtZShyZXNvdXJjZXNEaXIuZGF0YSgpLCAidGVz
dC1rZXkucGVtIiwgTlVMTCkpOworICAgIH0KKworICAgIEdSZWZQdHI8U291cEFkZHJlc3M+IGFk
ZHJlc3MgPSBhZG9wdEdSZWYoc291cF9hZGRyZXNzX25ldygiMTI3LjAuMC4xIiwgU09VUF9BRERS
RVNTX0FOWV9QT1JUKSk7CisgICAgc291cF9hZGRyZXNzX3Jlc29sdmVfc3luYyhhZGRyZXNzLmdl
dCgpLCAwKTsKKworICAgIG1fc291cFNlcnZlciA9IGFkb3B0R1JlZihzb3VwX3NlcnZlcl9uZXco
U09VUF9TRVJWRVJfSU5URVJGQUNFLCBhZGRyZXNzLmdldCgpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgU09VUF9TRVJWRVJfU1NMX0NFUlRfRklMRSwgc3Ns
Q2VydGlmaWNhdGVGaWxlLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU09VUF9TRVJWRVJfU1NMX0tFWV9GSUxFLCBzc2xLZXlGaWxlLmdldCgpLCBO
VUxMKSk7CisgICAgbV9iYXNlVVJJID0gc3NsID8gc291cF91cmlfbmV3KCJodHRwczovLzEyNy4w
LjAuMS8iKSA6IHNvdXBfdXJpX25ldygiaHR0cDovLzEyNy4wLjAuMS8iKTsKICAgICBzb3VwX3Vy
aV9zZXRfcG9ydChtX2Jhc2VVUkksIHNvdXBfc2VydmVyX2dldF9wb3J0KG1fc291cFNlcnZlci5n
ZXQoKSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay90ZXN0cy9XZWJLaXRUZXN0U2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay90ZXN0cy9XZWJLaXRUZXN0U2VydmVyLmgKaW5kZXggOWYwMDM0OS4uODVjNmM4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViS2l0VGVz
dFNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dl
YktpdFRlc3RTZXJ2ZXIuaApAQCAtMjcsNyArMjcsNyBAQAogCiBjbGFzcyBXZWJLaXRUZXN0U2Vy
dmVyIHsKIHB1YmxpYzoKLSAgICBXZWJLaXRUZXN0U2VydmVyKCk7CisgICAgV2ViS2l0VGVzdFNl
cnZlcihib29sIHNzbCA9IGZhbHNlKTsKICAgICB2aXJ0dWFsIH5XZWJLaXRUZXN0U2VydmVyKCk7
CiAKICAgICBTb3VwVVJJKiBiYXNlVVJJKCkgeyByZXR1cm4gbV9iYXNlVVJJOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9yZXNvdXJjZXMvdGVz
dC1jZXJ0LnBlbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL3Jlc291
cmNlcy90ZXN0LWNlcnQucGVtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIz
NDMwMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay90ZXN0cy9yZXNvdXJjZXMvdGVzdC1jZXJ0LnBlbQpAQCAtMCwwICsxLDEzIEBACistLS0tLUJF
R0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUI5akNDQVYrZ0F3SUJBZ0lKQUxldVhCbyt2d3o5TUEw
R0NTcUdTSWIzRFFFQkJRVUFNQlF4RWpBUUJnTlYKK0JBTU1DVEV5Tnk0d0xqQXVNVEFlRncweE1q
QTNNVEl4TWpRNE1qUmFGdzB5TWpBM01UQXhNalE0TWpSYU1CUXgKK0VqQVFCZ05WQkFNTUNURXlO
eTR3TGpBdU1UQ0JuekFOQmdrcWhraUc5dzBCQVFFRkFBT0JqUUF3Z1lrQ2dZRUEKKzBUVXpPUXhI
QklLREQybWt1cSt0VTkybVF2RFpnNzNCMEcrTmhyMlQyRzZNYmNMcUl3amcxUVl0QlpXSjgzdFoK
K3hNTUVmaXdlSExGODVaOW9oYXZBZ3hKbEtHN1ltdlpPNzlLa0ZwbWpWMlc1Q1ZSbTBlWU1Qbnpt
eE5Db2FZcW8KK0RMbDB6c0g2S1pPTFBLdS9mWDRlRFg5WHBBUDFmODNoV0IxVUZCbUhLTjhDQXdF
QUFhTlFNRTR3SFFZRFZSME8KK0JCWUVGREh2NVpRMUJkbWh6VHNEVUVvWTU1RVh5VWRLTUI4R0Ex
VWRJd1FZTUJhQUZESHY1WlExQmRtaHpUc0QKK1VFb1k1NUVYeVVkS01Bd0dBMVVkRXdRRk1BTUJB
Zjh3RFFZSktvWklodmNOQVFFRkJRQURnWUVBaDNxTUJ4N3YKK2pTb2RNZjNPeVRxVExFN2RlTG5t
bkNlQlZwZ3p4UlpFb2l6Y0dxWWNqaXFPMjdpNU41WjZLVlFzbklUbkxpeUMKK21VdHVSNUtuRjY5
dVRLVXc0bS91Z1plNXdoamlnNU1xMmw0MTBLVks2RWVHNHRkTGxmWFIrd2k0VTVLNEtqUDYKK3A0
bmNoUVVYTGEyemNiSm4rVkJleEpuNi85d2RocitEVUdZPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUt
LS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMv
cmVzb3VyY2VzL3Rlc3Qta2V5LnBlbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L3Rlc3RzL3Jlc291cmNlcy90ZXN0LWtleS5wZW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uOTAzNjIyMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL3Rlc3RzL3Jlc291cmNlcy90ZXN0LWtleS5wZW0KQEAgLTAsMCArMSwxNiBA
QAorLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCitNSUlDZHdJQkFEQU5CZ2txaGtpRzl3MEJB
UUVGQUFTQ0FtRXdnZ0pkQWdFQUFvR0JBTkUxTXprTVJ3U0NndzlwCitwTHF2clZQZHBrTHcyWU85
d2RCdmpZYTlrOWh1akczQzZpTUk0TlVHTFFXVmlmTjdXY1REQkg0c0hoeXhmT1dmCithSVdyd0lN
U1pTaHUySnIyVHUvU3BCYVpvMWRsdVFsVVp0SG1ERDU4NXNUUXFHbUtxQXk1ZE03QitpbVRpenly
Cit2MzErSGcxL1Y2UUQ5WC9ONFZnZFZCUVpoeWpmQWdNQkFBRUNnWUIyUXdPVXNSc0lNcHJSd0o5
dEpOZnZPN0c3Cit6NWkxL3pPcmx4UEM0akhNUEJuSUJsSUN3Z2NPaExJNG9PTGRyNUg4UjEybjBW
cW9UN0RSd1AzOTZpd2xKaXBGCitpTzFoZURNbi84ejhMUEd3a0NLLytjazA0ck1Ea3N4V0lkTXdZ
S0JYdDlhaG5KL3hSTHpRMS8zQUppQUdub2U1CisvUUxYUXdlb2ZkNG1tZnNqS1FKQkFPMkN3VDd1
TVA2bk1qWGd0Vk1KcTVRUDhVYmVDUzFzRU9QSkpiSHVEeEpCCisvSGVQUUhCanE0a3pHNkNMNG9P
N1QrNWZEdjRnK2ZJSUh6dVhlclowaW1zQ1FRRGhmbWlUSWM5T3VjRUlmZzYvCittczBKaUtTbVdj
K3FvaU9DdHJJTHVRdkZvTndKUmNpUUFOcWVKczZ3cGFEdmV2U1V2QkxHZkcvN2IzSHZhRTVYCitp
cUJkQWtCRVFJdnAycWNIdHVKTjYwb1FGN3BQclJrbnhVeWIyZThzbGpRWDRwSkFLK2d5TDE5VUxN
QXhpQmRMCitWb2Q4VllxTnRKRnBZKzZQcDlmWjF4anpiNkFMQWtFQTRKenJEQXcwbFFYQSszV2R1
VXc0aXhPYWRyMmxkeUcwCiszNktlYmNEd3NmWk8xOG0wUTRVbVB6MEd5N3pnTjB3eHp1b2NoYXcw
VzYraVBVaVlLT2xFWFFKQkFNV1FyUGx1Citycmlub1pTMmY4ZG9KOUJOTlVhK1JOcE11ZzZVWGM1
NXFvVUpseWlYRWgrdHU0QWFNT3R4dUdJeUMwc0FjdXc2CitYZEFQVlBYS2Q3TW5lNzA9CistLS0t
LUVORCBQUklWQVRFIEtFWS0tLS0tCg==
</data>
<flag name="review"
          id="160546"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>