<?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>156640</bug_id>
          
          <creation_ts>2016-04-15 13:17:57 -0700</creation_ts>
          <short_desc>Modern IDB (Blob support): When reading Blobs from the database, grant the Networking process sandbox access to the files</short_desc>
          <delta_ts>2016-04-18 23:01:55 -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>WebCore Misc.</component>
          <version>WebKit 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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149117</blocked>
    
    <blocked>143193</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1184199</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-15 13:17:57 -0700</bug_when>
    <thetext>Modern IDB (Blob support): When reading Blobs from the database, grant the Networking process sandbox access to the files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184904</commentid>
    <comment_count>1</comment_count>
      <attachid>276690</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-18 21:45:40 -0700</bug_when>
    <thetext>Created attachment 276690
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184905</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-18 21:47:07 -0700</bug_when>
    <thetext>Attachment 276690 did not pass style-queue:


ERROR: Source/WebKit2/DatabaseProcess/DatabaseProcess.h:80:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/DatabaseProcess/DatabaseProcess.h:130:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp:408:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 3 in 23 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>1184910</commentid>
    <comment_count>3</comment_count>
      <attachid>276690</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-04-18 21:56:10 -0700</bug_when>
    <thetext>Comment on attachment 276690
Patch v1

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

&gt; Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp:420
&gt; +    if (auto handler = m_sandboxExtensionForBlobsCompletionHandlers.take(requestID))
&gt; +        handler(handles);

else ASSERT_NOT_REACHED()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184914</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-18 22:04:47 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 276690 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=276690&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp:420
&gt; &gt; +    if (auto handler = m_sandboxExtensionForBlobsCompletionHandlers.take(requestID))
&gt; &gt; +        handler(handles);
&gt; 
&gt; else ASSERT_NOT_REACHED()?

Bizarrely, no! A common trap that can be fallen into in MP-IPC-land

If the DatabaseProcess crashes while a request is outstanding, and then is relaunched to receive completion for this request ID, it will have no record of this request ID, which is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184924</commentid>
    <comment_count>5</comment_count>
      <attachid>276690</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-18 23:01:50 -0700</bug_when>
    <thetext>Comment on attachment 276690
Patch v1

Clearing flags on attachment: 276690

Committed r199708: &lt;http://trac.webkit.org/changeset/199708&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184925</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-18 23:01:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276690</attachid>
            <date>2016-04-18 21:45:40 -0700</date>
            <delta_ts>2016-04-18 23:01:50 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>30309</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmY2E2MmRkLi5hZDllNWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTYtMDQtMTggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vZGVybiBJREIgKEJsb2Igc3VwcG9ydCk6IFdoZW4gcmVhZGluZyBCbG9icyBmcm9tIHRo
ZSBkYXRhYmFzZSwgZ3JhbnQgdGhlIE5ldHdvcmtpbmcgcHJvY2VzcyBzYW5kYm94IGFjY2VzcyB0
byB0aGUgZmlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTY2NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgKE5vIGNoYW5nZSBpbiBiZWhhdmlvciwgYXMgYmxvYnMgaW4gSURC
IGFyZSBub3QgeWV0IGVuYWJsZWQsCisgICAgICAgICAgICAgICAgICAgICAgYnV0IHdoZW4gdGhl
eSBhcmUgZW5hYmxlZCB0ZXN0aW5nIHdpbGwgY292ZXIgdGhpcykuCisKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVzdWx0RGF0YS5oOiBFeHBvcnQgc29tZSBzdHVmZgor
ICAgICAgICAKKyAgICAgICAgKiBmaWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJM
T3B0aW9uYWxseUZpbGVCYWNrZWQpOiBBY2NvdW50IGZvciAKKyAgICAgICAgICBCbG9iUmVnaXN0
cnkgY2hhbmdlIGRlc2NyaWJlZCBiZWxvdy4KKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9CbG9iUmVnaXN0cnkuaDogQ2hhbmdlIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlG
aWxlQmFja2VkIHRvIHRha2UgYSAKKyAgICAgICAgICBCbG9iRGF0YUZpbGVSZWZlcmVuY2UgaW5z
dGVhZCBvZiBhIHJhdyBwYXRoLCB0byBhbGxvdyBXSzIgdG8gaW5jbHVkZSBhIHNhbmRib3ggZXh0
ZW5zaW9uLgorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3Ry
eUltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5SW1wbDo6cmVnaXN0ZXJC
bG9iVVJMKTogQWNjb3VudCBmb3IgQmxvYlJlZ2lzdHJ5IGNoYW5nZSBkZXNjcmliZWQgYWJvdmUu
CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkxPcHRp
b25hbGx5RmlsZUJhY2tlZCk6IFVzZSB0aGUgcGFzc2VkIGluIAorICAgICAgICAgIEJsb2JEYXRh
RmlsZUhhbmRsZSwgYW5kIGFsc28gcmVnaXN0ZXIgdGhlIEJsb2JSZXNvdXJjZUhhbmRsZSBjb25z
dHJ1Y3Rvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuaDoK
KwogMjAxNi0wNC0xOCAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViS2l0IHNob3VsZCBhZG9wdCBqb3VybmFsX21vZGU9d2FsIGZvciBhbGwg
U1FMaXRlIGRhdGFiYXNlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NoYXJlZC9JREJSZXN1bHREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCUmVzdWx0RGF0YS5oCmluZGV4IDQ1YTEwZDkuLjAzMTM0MzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXN1
bHREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lE
QlJlc3VsdERhdGEuaApAQCAtODIsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIElEQlJl
c3VsdERhdGEgb3BlbkN1cnNvclN1Y2Nlc3MoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwg
Y29uc3QgSURCR2V0UmVzdWx0Jik7CiAgICAgc3RhdGljIElEQlJlc3VsdERhdGEgaXRlcmF0ZUN1
cnNvclN1Y2Nlc3MoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgSURCR2V0UmVz
dWx0Jik7CiAKLSAgICBJREJSZXN1bHREYXRhKGNvbnN0IElEQlJlc3VsdERhdGEmKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBJREJSZXN1bHREYXRhKGNvbnN0IElEQlJlc3VsdERhdGEmKTsKIAogICAg
IElEQlJlc3VsdFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgIElEQlJl
c291cmNlSWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVx
dWVzdElkZW50aWZpZXI7IH0KQEAgLTk2LDcgKzk2LDcgQEAgcHVibGljOgogICAgIGNvbnN0IElE
QktleURhdGEqIHJlc3VsdEtleSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0S2V5LmdldCgpOyB9
CiAgICAgdWludDY0X3QgcmVzdWx0SW50ZWdlcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0SW50
ZWdlcjsgfQogCi0gICAgY29uc3QgSURCR2V0UmVzdWx0JiBnZXRSZXN1bHQoKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBjb25zdCBJREJHZXRSZXN1bHQmIGdldFJlc3VsdCgpIGNvbnN0Owog
CiAgICAgV0VCQ09SRV9FWFBPUlQgSURCUmVzdWx0RGF0YSgpOwogICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwCmluZGV4IGE1NDUxYWUuLjEw
MDAxMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JS
ZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJl
Z2lzdHJ5LmNwcApAQCAtMTYwLDcgKzE2MCw3IEBAIHZvaWQgVGhyZWFkYWJsZUJsb2JSZWdpc3Ry
eTo6cmVnaXN0ZXJCbG9iVVJMKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IFVSTCYKIHZv
aWQgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVC
YWNrZWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJpbmcmIGZp
bGVCYWNrZWRQYXRoKQogewogICAgIGlmIChpc01haW5UaHJlYWQoKSkKLSAgICAgICAgYmxvYlJl
Z2lzdHJ5KCkucmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQodXJsLCBzcmNVUkws
IGZpbGVCYWNrZWRQYXRoKTsKKyAgICAgICAgYmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9iVVJM
T3B0aW9uYWxseUZpbGVCYWNrZWQodXJsLCBzcmNVUkwsIEJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6
Y3JlYXRlKGZpbGVCYWNrZWRQYXRoKSk7CiAgICAgZWxzZSB7CiAgICAgICAgIHRocmVhZGFibGVR
dWV1ZSgpLmFwcGVuZChjcmVhdGVDcm9zc1RocmVhZFRhc2soVGhyZWFkYWJsZUJsb2JSZWdpc3Ry
eTo6cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQsIHVybCwgc3JjVVJMLCBmaWxl
QmFja2VkUGF0aCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0Jsb2JSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9i
UmVnaXN0cnkuaAppbmRleCA0MWE4MDg3Li5lMjNjZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiwgY29uc3QgVVJM
JiBzcmNVUkwpID0gMDsKIAogICAgIC8vIFJlZ2lzdGVycyBhIG5ldyBibG9iIFVSTCByZWZlcnJp
bmcgdG8gdGhlIGJsb2IgZGF0YSBpZGVudGlmaWVkIGJ5IHRoZSBzcGVjaWZpZWQgc3JjVVJMIG9y
LCBpZiBub25lIGZvdW5kLCByZWZlcnJpbmcgdG8gdGhlIGZpbGUgZm91bmQgYXQgdGhlIGdpdmVu
IHBhdGguCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFj
a2VkKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJpbmcmIGZpbGVCYWNr
ZWRQYXRoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlG
aWxlQmFja2VkKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8QmxvYkRhdGFG
aWxlUmVmZXJlbmNlPiYmKSA9IDA7CiAKICAgICAvLyBOZWdhdGl2ZSBzdGFydCBhbmQgZW5kIHZh
bHVlcyBzZWxlY3QgZnJvbSB0aGUgZW5kLgogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckJsb2JV
UkxGb3JTbGljZShjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0
LCBsb25nIGxvbmcgZW5kKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcAppbmRleCAzMzhkMWIzLi41YzA3NmE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1w
bC5jcHAKQEAgLTE2MCwxMiArMTYwLDEzIEBAIHZvaWQgQmxvYlJlZ2lzdHJ5SW1wbDo6cmVnaXN0
ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8QmxvYlBhcnQ+IGJsb2JQYXJ0CiAKIHZv
aWQgQmxvYlJlZ2lzdHJ5SW1wbDo6cmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBVUkwmIHNyY1VSTCkKIHsKLSAgICByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tl
ZCh1cmwsIHNyY1VSTCwgeyB9KTsKKyAgICByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJh
Y2tlZCh1cmwsIHNyY1VSTCwgbnVsbHB0cik7CiB9CiAKLXZvaWQgQmxvYlJlZ2lzdHJ5SW1wbDo6
cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJpbmcmIGZpbGVCYWNrZWRQYXRoKQordm9pZCBCbG9iUmVn
aXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChjb25zdCBVUkwm
IHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYg
ZmlsZSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHJlZ2lzdGVyQmxvYlJl
c291cmNlSGFuZGxlQ29uc3RydWN0b3IoKTsKIAogICAgIEJsb2JEYXRhKiBzcmMgPSBnZXRCbG9i
RGF0YUZyb21VUkwoc3JjVVJMKTsKICAgICBpZiAoc3JjKSB7CkBAIC0xNzMsMTEgKzE3NCwxMSBA
QCB2b2lkIEJsb2JSZWdpc3RyeUltcGw6OnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFj
a2VkKGNvbnN0IFVSTCYgdXJsLCBjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
aWYgKGZpbGVCYWNrZWRQYXRoLmlzRW1wdHkoKSkKKyAgICBpZiAoZmlsZSA9PSBudWxscHRyIHx8
IGZpbGUtPnBhdGgoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxC
bG9iRGF0YT4gYmFja2luZ0ZpbGUgPSBCbG9iRGF0YTo6Y3JlYXRlKHsgfSk7Ci0gICAgYmFja2lu
Z0ZpbGUtPmFwcGVuZEZpbGUoQmxvYkRhdGFGaWxlUmVmZXJlbmNlOjpjcmVhdGUoZmlsZUJhY2tl
ZFBhdGgpKTsKKyAgICBiYWNraW5nRmlsZS0+YXBwZW5kRmlsZShXVEZNb3ZlKGZpbGUpKTsKIAog
ICAgIG1fYmxvYnMuc2V0KHVybC5zdHJpbmcoKSwgYmFja2luZ0ZpbGUucmVsZWFzZSgpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5
SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBs
LmgKaW5kZXggNTAwNmE1OC4uNGUzOTk3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiwgUmVmUHRyPEJsb2JE
YXRhRmlsZVJlZmVyZW5jZT4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgb3ZlcnJpZGU7
CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiwgVmVjdG9yPEJsb2JQYXJ0Piwg
Y29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWdpc3RlckJs
b2JVUkwoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwpIG92ZXJyaWRlOwotICAgIHZvaWQg
cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiwgY29uc3QgVVJM
JiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgZmlsZUJhY2tlZFBhdGgpIG92ZXJyaWRlOworICAgIHZv
aWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiwgY29uc3Qg
VVJMJiBzcmNVUkwsIFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBz
cmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmKSBvdmVycmlkZTsKICAgICBib29sIGlzQmxv
YlJlZ2lzdHJ5SW1wbCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCA5Y2UyYTVmLi5mMDA1MGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTYt
MDQtMTggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVy
biBJREIgKEJsb2Igc3VwcG9ydCk6IFdoZW4gcmVhZGluZyBCbG9icyBmcm9tIHRoZSBkYXRhYmFz
ZSwgZ3JhbnQgdGhlIE5ldHdvcmtpbmcgcHJvY2VzcyBzYW5kYm94IGFjY2VzcyB0byB0aGUgZmls
ZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY2
NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERh
dGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpEYXRh
YmFzZVByb2Nlc3M6OmdldFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYkZpbGVzKTogVXRpbGl0eSBm
dW5jdGlvbiB0byBhc2sgdGhlIFVJIHByb2Nlc3MgZm9yCisgICAgICAgICAgU2FuZGJveEV4dGVu
c2lvbnMgZm9yIGEgbGlzdCBvZiBmaWxlcy4KKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9j
ZXNzOjpkaWRHZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlcyk6IFRha2UgdGhlIFNhbmRi
b3hFeHRlbnNpb25zIGZyb20gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgICBhbmQgcGFzcyB0aGVt
IGFsb25nIHRvIHRoZSBjb21wbGV0aW9uIGhhbmRsZXIuCisgICAgICAgICogRGF0YWJhc2VQcm9j
ZXNzL0RhdGFiYXNlUHJvY2Vzcy5oOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFz
ZVByb2Nlc3MubWVzc2FnZXMuaW46CisKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0UmVjb3JkKTogSWYgdGhlIHZhbHVlIHJldHVybmVk
IGZyb20gdGhlIGRhdGFiYXNlIGRvZXNuJ3QgaGF2ZSBCbG9iIGZpbGVzLAorICAgICAgICAgIHBh
c3MgdGhlIHJlc3VsdCBkaXJlY3RseSBvbiB0byBXZWJDb3JlLiBJZiBpdCBkb2VzLCBhc2sgdGhl
IFVJIHByb2Nlc3MgZm9yIFNhbmRib3hFeHRlbnNpb25zIGZpcnN0LgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvRmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0Jsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVC
YWNrZWQpOiBHcmFiIHRoZSBCbG9iRGF0YUZpbGVSZWZlcmVuY2UgZnJvbSB0aGUgCisgICAgICAg
ICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgdG8gcGFzcyBhbG9uZyB0byB0aGUgQmxv
YlJlZ2lzdHJ5LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6cHJlcmVnaXN0ZXJTYW5kYm94RXh0ZW5zaW9uc0Zvck9wdGlvbmFsbHlGaWxlQmFj
a2VkQmxvYik6IEFkZCB0aGlzIG1lc3NhZ2UKKyAgICAgICAgICBzbyB0aGUgV2ViUHJvY2VzcyBj
YW4gcHJlZmxpZ2h0IHRoZSBjcmVhdGlvbiBvZiBzb21lIGJsb2IgVVJMcyBieSBwYXNzaW5nIGFs
b25nIHRoZSBTYW5kYm94RXh0ZW5zaW9ucyBmb3IgdGhlaXIgZmlsZXMuCisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp0YWtlQmxvYkRhdGFGaWxlUmVmZXJl
bmNlRm9yUGF0aCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKworICAgICAgICAqIFVJUHJvY2Vzcy9EYXRhYmFz
ZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVBy
b2Nlc3NQcm94eTo6Z2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXMpOiBDcmVhdGUgU2Fu
ZGJveEV4dGVuc2lvbnMgZm9yIHRoZSBwYXNzZWQgaW4gZmlsZXMgYW5kCisgICAgICAgICAgcmV0
dXJuIHRoZW0gdG8gdGhlIERhdGFiYXNlUHJvY2Vzcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvRGF0
YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0RhdGFi
YXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKworICAgICAgICAqIFdlYlBy
b2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldFJlY29yZFdp
dGhTYW5kYm94RXh0ZW5zaW9ucyk6IE5ldyBmb3JtIG9mICJkaWRHZXRSZWNvcmQiIHRoYXQgaGFu
ZGxlcyBwYXNzaW5nCisgICAgICAgICAgdGhlIFNhbmRib3hFeHRlbnNpb25zIHRvIHRoZSBOZXR3
b3JraW5nIHByb2Nlc3MgYmVmb3JlIHRoZXkgYXJlIG5lZWRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5tZXNzYWdlcy5pbjoKKworICAgICAgICAqIFdlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVn
aXN0cnlQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkJsb2JSZWdpc3RyeVByb3h5OjpyZWdp
c3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9G
aWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5Lmg6CisKIDIwMTYtMDQtMTggIERlYW4gSmFja3NvbiAg
PGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIE5ldyBTUEkgdG8gZXhwb3J0IGEgZGljdGlvbmFy
eSBvZiBydW50aW1lIGZlYXR1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCmluZGV4IDI5MWE0ZTUuLmQwY2JiNDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VQcm9jZXNzTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJEYXRhYmFzZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRGF0YWJh
c2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW5jbHVkZSAiV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuaCIKICNpbmNsdWRlICJXZWJz
aXRlRGF0YS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NUaHJlYWRUYXNrLmg+CkBAIC0zNDgs
OSArMzQ5LDcgQEAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4+IERhdGFi
YXNlUHJvY2Vzczo6aW5kZXhlZERhdGFiYXNlT3JpZ2lucygKIAogICAgIHJldHVybiBzZWN1cml0
eU9yaWdpbnM7CiB9Ci0jZW5kaWYKIAotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogc3Rh
dGljIHZvaWQgcmVtb3ZlQWxsRGF0YWJhc2VzRm9yT3JpZ2luUGF0aChjb25zdCBTdHJpbmcmIG9y
aWdpblBhdGgsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRT
aW5jZSkKIHsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFsc28gY2xvc2UvaW52YWxpZGF0ZSBh
bnkgbGl2ZSBoYW5kbGVzIHRvIHRoZSBkYXRhYmFzZSBmaWxlcyB3ZSBhcmUgYWJvdXQgdG8gZGVs
ZXRlLgpAQCAtNDA2LDYgKzQwNSwyMSBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzczo6ZGVsZXRlSW5k
ZXhlZERhdGFiYXNlRW50cmllc01vZGlmaWVkU2luY2Uoc3RkOjpjaHJvbm86OnN5cwogfQogI2Vu
ZGlmCiAKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzOjpnZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JG
aWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBzdGQ6OmZ1bmN0aW9uPHZvaWQg
KGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5Jik+IGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIHN0YXRpYyB1aW50NjRfdCBsYXN0UmVxdWVzdElEOworCisgICAgdWludDY0X3Qg
cmVxdWVzdElEID0gKytsYXN0UmVxdWVzdElEOworICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvckJs
b2JzQ29tcGxldGlvbkhhbmRsZXJzLnNldChyZXF1ZXN0SUQsIGNvbXBsZXRpb25IYW5kbGVyKTsK
KyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpEYXRhYmFzZVBy
b2Nlc3NQcm94eTo6R2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXMocmVxdWVzdElELCBm
aWxlbmFtZXMpLCAwKTsKK30KKwordm9pZCBEYXRhYmFzZVByb2Nlc3M6OmRpZEdldFNhbmRib3hF
eHRlbnNpb25zRm9yQmxvYkZpbGVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlQXJyYXkmIGhhbmRsZXMpCit7CisgICAgaWYgKGF1dG8gaGFuZGxlciA9
IG1fc2FuZGJveEV4dGVuc2lvbkZvckJsb2JzQ29tcGxldGlvbkhhbmRsZXJzLnRha2UocmVxdWVz
dElEKSkKKyAgICAgICAgaGFuZGxlcihoYW5kbGVzKTsKK30KKwogI2lmICFQTEFURk9STShDT0NP
QSkKIHZvaWQgRGF0YWJhc2VQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFBy
b2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCmluZGV4IGYzYzQ4ZmYuLmU3ODkwMjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNz
LmgKQEAgLTc3LDYgKzc3LDggQEAgcHVibGljOgogICAgIHZvaWQgYWNjZXNzVG9UZW1wb3JhcnlG
aWxlQ29tcGxldGUoY29uc3QgU3RyaW5nJiBwYXRoKSBmaW5hbDsKICNlbmRpZgogCisgICAgdm9p
ZCBnZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZmlsZW5hbWVzLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZUFycmF5Jik+IGNvbXBsZXRpb25IYW5kbGVyKTsKKwogcHJpdmF0ZToKICAgICBEYXRhYmFz
ZVByb2Nlc3MoKTsKIApAQCAtMTA0LDYgKzEwNiw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWxl
dGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9p
ZCBncmFudFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBh
dGhzLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYpOwogCisgICAgdm9pZCBk
aWRHZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlcyh1aW50NjRfdCByZXF1ZXN0SUQsIGNv
bnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5Jik7CisKICNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKICAgICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPj4g
aW5kZXhlZERhdGFiYXNlT3JpZ2lucygpOwogICAgIHZvaWQgZGVsZXRlSW5kZXhlZERhdGFiYXNl
RW50cmllc0Zvck9yaWdpbnMoY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4+Jik7CkBAIC0xMjMsNiArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29y
ZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI+IG1faWRiU2VydmVyOwogI2VuZGlmCiAgICAgSGFzaE1h
cDxTdHJpbmcsIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPj4gbV9ibG9iVGVtcG9yYXJ5RmlsZVNh
bmRib3hFeHRlbnNpb25zOworICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6ZnVuY3Rpb248dm9p
ZCAoY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmKT4+IG1fc2FuZGJveEV4dGVu
c2lvbkZvckJsb2JzQ29tcGxldGlvbkhhbmRsZXJzOwogCiAgICAgRGVxdWU8c3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OkNyb3NzVGhyZWFkVGFzaz4+IG1fZGF0YWJhc2VUYXNrczsKICAgICBMb2Nr
IG1fZGF0YWJhc2VUYXNrTXV0ZXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA4MmUyNzY0Li4y
NzhlYmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJh
c2VQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9EYXRhYmFzZVByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTMzLDYgKzMzLDggQEAgbWVzc2FnZXMg
LT4gRGF0YWJhc2VQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBEZWxldGVXZWJzaXRlRGF0
YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRl
RGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRp
bWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKICAgICBEZWxldGVX
ZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBWZWN0b3I8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zLCB1aW50NjRfdCBjYWxsYmFja0lEKQog
ICAgIEdyYW50U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9icyhWZWN0b3I8U3RyaW5nPiBwYXRocywg
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBleHRlbnNpb25zKQorCisgICAg
RGlkR2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXModWludDY0X3QgcmVxdWVzdElELCBX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IGV4dGVuc2lvbnMpCiB9CiAKICNl
bmRpZiAvLyBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50LmNwcAppbmRleCAzNDU5MzMxLi5hYWE1YTZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCkBAIC0xMjcsNyArMTI3LDE2IEBAIHZvaWQgV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRQdXRPckFkZChjb25zdCBXZWJDb3JlOjpJREJSZXN1
bHREYXRhJiByZXN1bHRECiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRS
ZWNvcmQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKIHsKLSAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZEdldFJlY29yZChyZXN1
bHREYXRhKSk7CisgICAgYXV0byYgYmxvYkZpbGVQYXRocyA9IHJlc3VsdERhdGEuZ2V0UmVzdWx0
KCkudmFsdWUoKS5ibG9iRmlsZVBhdGhzKCk7CisgICAgaWYgKGJsb2JGaWxlUGF0aHMuaXNFbXB0
eSgpKSB7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6
RGlkR2V0UmVjb3JkKHJlc3VsdERhdGEpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IFJlZlB0cjxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+IHByb3RlY3Rvcih0aGlzKTsKKyAgICBE
YXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmdldFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYkZp
bGVzKGJsb2JGaWxlUGF0aHMsIFtwcm90ZWN0b3IsIHRoaXMsIHJlc3VsdERhdGFdKGNvbnN0IFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5JiBoYW5kbGVzKSB7CisgICAgICAgIHNlbmQoTWVz
c2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6RGlkR2V0UmVjb3JkV2l0aFNhbmRib3hF
eHRlbnNpb25zKHJlc3VsdERhdGEsIGhhbmRsZXMpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBXZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldENvdW50KGNvbnN0IFdlYkNvcmU6OklEQlJlc3Vs
dERhdGEmIHJlc3VsdERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvRmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcAppbmRleCAyNmRlODE3
Li45OGVlNDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9GaWxl
QVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAK
ICNpbmNsdWRlICJOZXR3b3JrQmxvYlJlZ2lzdHJ5LmgiCiAKICNpbmNsdWRlICJCbG9iRGF0YUZp
bGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgIk5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQmxvYlBhcnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Jsb2JSZWdpc3Ry
eUltcGwuaD4KQEAgLTg1LDcgKzg2LDEwIEBAIHZvaWQgTmV0d29ya0Jsb2JSZWdpc3RyeTo6cmVn
aXN0ZXJCbG9iVVJMKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBjb25uZWN0CiAKIHZv
aWQgTmV0d29ya0Jsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNr
ZWQoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGNvbm5lY3Rpb24sIGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBVUkwmIHNyY1VSTCwgY29uc3QgU3RyaW5nJiBmaWxlQmFja2VkUGF0aCkKIHsK
LSAgICBibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZCh1
cmwsIHNyY1VSTCwgZmlsZUJhY2tlZFBhdGgpOworICAgIGF1dG8gZmlsZVJlZmVyZW5jZSA9IGNv
bm5lY3Rpb24tPnRha2VCbG9iRGF0YUZpbGVSZWZlcmVuY2VGb3JQYXRoKGZpbGVCYWNrZWRQYXRo
KTsKKyAgICBBU1NFUlQoZmlsZVJlZmVyZW5jZSk7CisKKyAgICBibG9iUmVnaXN0cnkoKS5yZWdp
c3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZCh1cmwsIHNyY1VSTCwgV1RGTW92ZShmaWxl
UmVmZXJlbmNlKSk7CiAKICAgICBBU1NFUlQoIW1fYmxvYnNGb3JDb25uZWN0aW9uLmdldChjb25u
ZWN0aW9uKS5jb250YWlucyh1cmwpKTsKICAgICBCbG9iRm9yQ29ubmVjdGlvbk1hcDo6aXRlcmF0
b3IgbWFwSXRlcmF0b3IgPSBtX2Jsb2JzRm9yQ29ubmVjdGlvbi5maW5kKGNvbm5lY3Rpb24pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGM4MTdiYTkuLjJkNzIzYzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogCisj
aW5jbHVkZSAiQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24uaCIKICNp
bmNsdWRlICJOZXR3b3JrQmxvYlJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtMb2FkLmgiCkBAIC0y
NzEsNiArMjcyLDIzIEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lz
dGVyQmxvYlVSTEZyb21VUkwoY29uc3QgVVJMJiB1cmwsIGNvbnN0CiAgICAgTmV0d29ya0Jsb2JS
ZWdpc3RyeTo6c2luZ2xldG9uKCkucmVnaXN0ZXJCbG9iVVJMKHRoaXMsIHVybCwgc3JjVVJMKTsK
IH0KIAordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlcmVnaXN0ZXJTYW5k
Ym94RXh0ZW5zaW9uc0Zvck9wdGlvbmFsbHlGaWxlQmFja2VkQmxvYihjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZmlsZVBhdGhzLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYgaGFu
ZGxlcykKK3sKKyAgICBBU1NFUlQoZmlsZVBhdGhzLnNpemUoKSA9PSBoYW5kbGVzLnNpemUoKSk7
CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZpbGVQYXRocy5zaXplKCk7ICsraSkgewor
ICAgICAgICBhdXRvIHJlc3VsdCA9IG1fYmxvYkRhdGFGaWxlUmVmZXJlbmNlcy5hZGQoZmlsZVBh
dGhzW2ldLCBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
KGZpbGVQYXRoc1tpXSwgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKGhhbmRsZXNbaV0pKSk7Cisg
ICAgICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQuaXNOZXdFbnRyeSk7CisgICAgfQor
fQorCitSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6dGFrZUJsb2JEYXRhRmlsZVJlZmVyZW5jZUZvclBhdGgoY29uc3Qg
U3RyaW5nJiBwYXRoKQoreworICAgIGF1dG8gZmlsZVJlZmVyZW5jZSA9IG1fYmxvYkRhdGFGaWxl
UmVmZXJlbmNlcy50YWtlKHBhdGgpOworICAgIEFTU0VSVChmaWxlUmVmZXJlbmNlKTsKKyAgICBy
ZXR1cm4gZmlsZVJlZmVyZW5jZTsKK30KKwogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiB1cmws
IGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJpbmcmIGZpbGVCYWNrZWRQYXRoKQogewogICAg
IE5ldHdvcmtCbG9iUmVnaXN0cnk6OnNpbmdsZXRvbigpLnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFs
bHlGaWxlQmFja2VkKHRoaXMsIHVybCwgc3JjVVJMLCBmaWxlQmFja2VkUGF0aCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAppbmRleCBjZTM5ZjIzLi4yY2RmODI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBCbG9iRGF0YUZpbGVSZWZlcmVuY2U7CiBj
bGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiB9CiAKQEAgLTU0LDYgKzU1LDggQEAgcHVibGljOgogCiAg
ICAgdm9pZCBkaWRDbGVhbnVwUmVzb3VyY2VMb2FkZXIoTmV0d29ya1Jlc291cmNlTG9hZGVyJik7
CiAKKyAgICBSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiB0YWtlQmxvYkRh
dGFGaWxlUmVmZXJlbmNlRm9yUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpOworCiBwcml2YXRlOgog
ICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
Zmllcik7CiAKQEAgLTkxLDYgKzk0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVyRmls
ZUJsb2JVUkwoY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAg
ICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBXZWJDb3JlOjpVUkwmLCBWZWN0b3I8V2ViQ29y
ZTo6QmxvYlBhcnQ+LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICB2b2lkIHJlZ2lz
dGVyQmxvYlVSTEZyb21VUkwoY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgV2ViQ29yZTo6VVJM
JiBzcmNVUkwpOworICAgIHZvaWQgcHJlcmVnaXN0ZXJTYW5kYm94RXh0ZW5zaW9uc0Zvck9wdGlv
bmFsbHlGaWxlQmFja2VkQmxvYihjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZUJhY2tlZFBhdGgs
IGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5Jik7CiAgICAgdm9pZCByZWdpc3Rl
ckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBX
ZWJDb3JlOjpVUkwmIHNyY1VSTCwgY29uc3QgU3RyaW5nJiBmaWxlQmFja2VkUGF0aCk7CiAgICAg
dm9pZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBX
ZWJDb3JlOjpVUkwmIHNyY1VSTCwgaW50NjRfdCBzdGFydCwgaW50NjRfdCBlbmQpOwogICAgIHZv
aWQgYmxvYlNpemUoY29uc3QgV2ViQ29yZTo6VVJMJiwgdWludDY0X3QmIHJlc3VsdFNpemUpOwpA
QCAtMTAyLDYgKzEwNiw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4g
bV9jb25uZWN0aW9uOwogCiAgICAgSGFzaE1hcDxSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBSZWZQ
dHI8TmV0d29ya1Jlc291cmNlTG9hZGVyPj4gbV9uZXR3b3JrUmVzb3VyY2VMb2FkZXJzOworICAg
IEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPj4g
bV9ibG9iRGF0YUZpbGVSZWZlcmVuY2VzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGM3MDVmM2Qu
LmJkNWE0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
CkBAIC00Myw2ICs0Myw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBSZWdpc3RlckZpbGVCbG9iVVJMKFdlYkNvcmU6OlVS
TCB1cmwsIFN0cmluZyBwYXRoLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBleHRl
bnNpb25IYW5kbGUsIFN0cmluZyBjb250ZW50VHlwZSkKICAgICBSZWdpc3RlckJsb2JVUkwoV2Vi
Q29yZTo6VVJMIHVybCwgVmVjdG9yPFdlYkNvcmU6OkJsb2JQYXJ0PiBibG9iUGFydHMsIFN0cmlu
ZyBjb250ZW50VHlwZSkKICAgICBSZWdpc3RlckJsb2JVUkxGcm9tVVJMKFdlYkNvcmU6OlVSTCB1
cmwsIFdlYkNvcmU6OlVSTCBzcmNVUkwpCisgICAgUHJlcmVnaXN0ZXJTYW5kYm94RXh0ZW5zaW9u
c0Zvck9wdGlvbmFsbHlGaWxlQmFja2VkQmxvYihWZWN0b3I8U3RyaW5nPiBmaWxlUGF0aHMsIFdl
YktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgZXh0ZW5zaW9uSGFuZGxlcykKICAg
ICBSZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChXZWJDb3JlOjpVUkwgdXJsLCBX
ZWJDb3JlOjpVUkwgc3JjVVJMLCBTdHJpbmcgZmlsZUJhY2tlZFBhdGgpCiAgICAgUmVnaXN0ZXJC
bG9iVVJMRm9yU2xpY2UoV2ViQ29yZTo6VVJMIHVybCwgV2ViQ29yZTo6VVJMIHNyY1VSTCwgaW50
NjRfdCBzdGFydCwgaW50NjRfdCBlbmQpCiAgICAgVW5yZWdpc3RlckJsb2JVUkwoV2ViQ29yZTo6
VVJMIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRhYmFzZXMv
RGF0YWJhc2VQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFi
YXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5jcHAKaW5kZXggMTA4YjhhZi4uOTAxY2E3MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRh
YmFzZVByb2Nlc3NQcm94eS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkRhdGFi
YXNlUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VQcm9jZXNzUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzUG9vbC5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9Ob3RJbXBsZW1lbnRlZC5oPgpAQCAtMTk1LDYgKzE5NiwxOCBAQCB2b2lkIERhdGFiYXNl
UHJvY2Vzc1Byb3h5OjpkaWREZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnModWludDY0X3QgY2Fs
bGJhY2tJRCkKICAgICBjYWxsYmFjaygpOwogfQogCit2b2lkIERhdGFiYXNlUHJvY2Vzc1Byb3h5
OjpnZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlcyh1aW50NjRfdCByZXF1ZXN0SUQsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRocykKK3sKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGVBcnJheSBleHRlbnNpb25zOworICAgIGV4dGVuc2lvbnMuYWxsb2NhdGUocGF0aHMuc2l6ZSgp
KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhdGhzLnNpemUoKTsgKytpKSB7CisgICAg
ICAgIC8vIFJlYWRXcml0ZSBpcyByZXF1aXJlZCBmb3IgY3JlYXRpbmcgaGFyZCBsaW5rcywgd2hp
Y2ggaXMgc29tZXRoaW5nIHRoYXQgbWlnaHQgYmUgZG9uZSB3aXRoIHRoZXNlIGV4dGVuc2lvbnMu
CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShwYXRoc1tpXSwgU2FuZGJv
eEV4dGVuc2lvbjo6UmVhZFdyaXRlLCBleHRlbnNpb25zW2ldKTsKKyAgICB9CisKKyAgICBzZW5k
KE1lc3NhZ2VzOjpEYXRhYmFzZVByb2Nlc3M6OkRpZEdldFNhbmRib3hFeHRlbnNpb25zRm9yQmxv
YkZpbGVzKHJlcXVlc3RJRCwgZXh0ZW5zaW9ucyksIDApOworfQorCiB2b2lkIERhdGFiYXNlUHJv
Y2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwg
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQogewogICAg
IENoaWxkUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcobGF1bmNoZXIsIGNvbm5lY3Rp
b25JZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRh
YmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9E
YXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuaAppbmRleCA2MWZiNTRiLi42YTk4ODQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJv
Y2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRh
YmFzZVByb2Nlc3NQcm94eS5oCkBAIC03Niw2ICs3Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFdlYnNpdGVEYXRh
Jik7CiAgICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKTsK
ICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFj
a0lEKTsKKyAgICB2b2lkIGdldFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYkZpbGVzKHVpbnQ2NF90
IHJlcXVlc3RJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKTsKIAogICAgIC8vIFByb2Nl
c3NMYXVuY2hlcjo6Q2xpZW50CiAgICAgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xh
dW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFi
YXNlUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDE5ODZjZDQuLmFiOTJiNGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFiYXNl
cy9EYXRhYmFzZVByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjgsNiArMjgsOCBAQCBtZXNz
YWdlcyAtPiBEYXRhYmFzZVByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkRmV0
Y2hXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRl
RGF0YSB3ZWJzaXRlRGF0YSkKICAgICBEaWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxs
YmFja0lEKQogICAgIERpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyh1aW50NjRfdCBjYWxs
YmFja0lEKQorCisgICAgR2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXModWludDY0X3Qg
cmVxdWVzdElELCBWZWN0b3I8U3RyaW5nPiBwYXRocykKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShE
QVRBQkFTRV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyLmNwcAppbmRleCAwOTg2NzJiLi40ZTk1NTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAtMzAsNiArMzAsOCBAQAogCiAjaW5j
bHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29u
bmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2lu
Y2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oIgpA
QCAtMjM1LDYgKzIzNywxNyBAQCB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0
UmVjb3JkKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdCkKICAgICBtX2Nvbm5lY3Rpb25Ub1Nl
cnZlci0+ZGlkR2V0UmVjb3JkKHJlc3VsdCk7CiB9CiAKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyOjpkaWRHZXRSZWNvcmRXaXRoU2FuZGJveEV4dGVuc2lvbnMoY29uc3QgV2ViQ29yZTo6
SURCUmVzdWx0RGF0YSYgcmVzdWx0LCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJh
eSYgaGFuZGxlcykKK3sKKyAgICBjb25zdCBhdXRvJiBmaWxlUGF0aHMgPSByZXN1bHQuZ2V0UmVz
dWx0KCkudmFsdWUoKS5ibG9iRmlsZVBhdGhzKCk7CisKKyAgICBBU1NFUlQoZmlsZVBhdGhzLnNp
emUoKSA9PSBoYW5kbGVzLnNpemUoKSk7CisKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5u
ZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQcmVyZWdpc3RlclNhbmRib3hFeHRlbnNpb25zRm9yT3B0
aW9uYWxseUZpbGVCYWNrZWRCbG9iKGZpbGVQYXRocywgaGFuZGxlcyksIDApOworCisgICAgbV9j
b25uZWN0aW9uVG9TZXJ2ZXItPmRpZEdldFJlY29yZChyZXN1bHQpOworfQorCiB2b2lkIFdlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0Q291bnQoY29uc3QgSURCUmVzdWx0RGF0YSYgcmVz
dWx0KQogewogICAgIG1fY29ubmVjdGlvblRvU2VydmVyLT5kaWRHZXRDb3VudChyZXN1bHQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4IGI0Njkz
OWMuLmVkYzVhMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJh
c2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAog
I2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7CkBAIC04MCw2ICs4MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZERlbGV0ZUlu
ZGV4KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZFB1dE9yQWRk
KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZEdldFJlY29yZChj
b25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJik7CisgICAgdm9pZCBkaWRHZXRSZWNvcmRXaXRo
U2FuZGJveEV4dGVuc2lvbnMoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYsIGNvbnN0IFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5Jik7CiAgICAgdm9pZCBkaWRHZXRDb3VudChjb25z
dCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJik7CiAgICAgdm9pZCBkaWREZWxldGVSZWNvcmQoY29u
c3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpOwogICAgIHZvaWQgZGlkT3BlbkN1cnNvcihjb25z
dCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbgppbmRleCA4M2UzZjgwLi4xMTEy
MzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRl
eGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXIubWVzc2FnZXMuaW4KQEAgLTM0LDYgKzM0LDcgQEAgbWVzc2FnZXMgLT4gV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyIHsKICAgICBEaWREZWxldGVJbmRleChXZWJDb3JlOjpJREJSZXN1bHRE
YXRhIHJlc3VsdCkKICAgICBEaWRQdXRPckFkZChXZWJDb3JlOjpJREJSZXN1bHREYXRhIHJlc3Vs
dCkKICAgICBEaWRHZXRSZWNvcmQoV2ViQ29yZTo6SURCUmVzdWx0RGF0YSByZXN1bHQpCisgICAg
RGlkR2V0UmVjb3JkV2l0aFNhbmRib3hFeHRlbnNpb25zKFdlYkNvcmU6OklEQlJlc3VsdERhdGEg
cmVzdWx0LCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IGV4dGVuc2lvbnMp
CiAgICAgRGlkR2V0Q291bnQoV2ViQ29yZTo6SURCUmVzdWx0RGF0YSByZXN1bHQpCiAgICAgRGlk
RGVsZXRlUmVjb3JkKFdlYkNvcmU6OklEQlJlc3VsdERhdGEgcmVzdWx0KQogICAgIERpZE9wZW5D
dXJzb3IoV2ViQ29yZTo6SURCUmVzdWx0RGF0YSByZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcAppbmRleCBj
OTdkNDk1Li5kY2NhOGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Zp
bGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAKQEAgLTU3LDkgKzU3LDEwIEBAIHZvaWQg
QmxvYlJlZ2lzdHJ5UHJveHk6OnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCwgY29uc3Qg
VVJMJiBzcmNVUkwpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rp
b24oKS0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6UmVnaXN0ZXJCbG9iVVJMRnJvbVVSTCh1cmwsIHNyY1VSTCksIDApOwogfQogCi12
b2lkIEJsb2JSZWdpc3RyeVByb3h5OjpyZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tl
ZChjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgZmlsZUJh
Y2tlZFBhdGgpCit2b2lkIEJsb2JSZWdpc3RyeVByb3h5OjpyZWdpc3RlckJsb2JVUkxPcHRpb25h
bGx5RmlsZUJhY2tlZChjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIFJlZlB0cjxX
ZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgZmlsZSkKIHsKLSAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZWdpc3RlckJsb2JVUkxPcHRp
b25hbGx5RmlsZUJhY2tlZCh1cmwsIHNyY1VSTCwgZmlsZUJhY2tlZFBhdGgpLCAwKTsKKyAgICBB
U1NFUlQoZmlsZSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rp
b24oKS0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6UmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQodXJsLCBzcmNVUkws
IGZpbGUtPnBhdGgoKSksIDApOwogfQogCiB2b2lkIEJsb2JSZWdpc3RyeVByb3h5Ojp1bnJlZ2lz
dGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgKaW5kZXggZjM5ZDZiZC4uMTcyMGUy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdp
c3RyeVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JS
ZWdpc3RyeVByb3h5LmgKQEAgLTM1LDcgKzM1LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0
ZXJGaWxlQmxvYlVSTChjb25zdCBXZWJDb3JlOjpVUkwmLCBSZWZQdHI8V2ViQ29yZTo6QmxvYkRh
dGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBvdmVycmlkZTsK
ICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBXZWJDb3JlOjpVUkwmLCBWZWN0b3I8V2Vi
Q29yZTo6QmxvYlBhcnQ+LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBvdmVycmlkZTsKICAg
ICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXZWJDb3Jl
OjpVUkwmIHNyY1VSTCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25h
bGx5RmlsZUJhY2tlZChjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXZWJDb3JlOjpVUkwmIHNy
Y1VSTCwgY29uc3QgU3RyaW5nJiBmaWxlQmFja2VkUGF0aCkgb3ZlcnJpZGU7CisgICAgdm9pZCBy
ZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChjb25zdCBXZWJDb3JlOjpVUkwmLCBj
b25zdCBXZWJDb3JlOjpVUkwmIHNyY1VSTCwgUmVmUHRyPFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJl
ZmVyZW5jZT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBX
ZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNl
KGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgc3JjVVJMLCBsb25nIGxv
bmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpIG92ZXJyaWRlOwogICAgIHVuc2lnbmVkIGxvbmcgbG9u
ZyBibG9iU2l6ZShjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>