<?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>224340</bug_id>
          
          <creation_ts>2021-04-08 13:52:19 -0700</creation_ts>
          <short_desc>[Cocoa] Reduce usage of autorelease, fix mistakes noticed nearby code using autorelease</short_desc>
          <delta_ts>2021-06-04 21:09:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>226670</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>achristensen</cc>
    
    <cc>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1748461</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-08 13:52:19 -0700</bug_when>
    <thetext>[Cocoa] Reduce usage of autorelease, fix mistakes noticed nearby code using autorelease</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748499</commentid>
    <comment_count>1</comment_count>
      <attachid>425547</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-08 15:19:35 -0700</bug_when>
    <thetext>Created attachment 425547
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748522</commentid>
    <comment_count>2</comment_count>
      <attachid>425552</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-08 15:50:25 -0700</bug_when>
    <thetext>Created attachment 425552
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748765</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-09 09:43:13 -0700</bug_when>
    <thetext>Committed r275765 (236343@main): &lt;https://commits.webkit.org/236343@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748766</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-09 09:44:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/76456954&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767010</commentid>
    <comment_count>5</comment_count>
      <attachid>425552</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-04 17:37:40 -0700</bug_when>
    <thetext>Comment on attachment 425552
Patch

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

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:510
&gt; +    setIgnoreHSTS(mutableRequest.get(), false);

This should be shouldIgnoreHSTS , not false. Likely the cause of rdar://problem/78066692</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767015</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-04 17:43:52 -0700</bug_when>
    <thetext>Fixing in https://bugs.webkit.org/show_bug.cgi?id=226670</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767089</commentid>
    <comment_count>7</comment_count>
      <attachid>425552</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-06-04 21:09:16 -0700</bug_when>
    <thetext>Comment on attachment 425552
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:510
&gt;&gt; +    setIgnoreHSTS(mutableRequest.get(), false);
&gt; 
&gt; This should be shouldIgnoreHSTS , not false. Likely the cause of rdar://problem/78066692

Oh, no! Thanks for spotting this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425547</attachid>
            <date>2021-04-08 15:19:35 -0700</date>
            <delta_ts>2021-04-08 15:50:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224340-20210408151934.patch</filename>
            <type>text/plain</type>
            <size>28955</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjYzMDA5NDcwNTVhOWQx
N2E4Y2U5N2RlZDFjYTI3NWM3NDgwODg3MS4uYjBjZTczMGFjZTQ4YjU4OGY5MTQxMGNlNTRiY2Mz
NGU5ZjA2ZTIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA0LTA4ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJlZHVjZSB1c2Fn
ZSBvZiBhdXRvcmVsZWFzZSwgZml4IG1pc3Rha2VzIG5vdGljZWQgbmVhcmJ5IGNvZGUgdXNpbmcg
YXV0b3JlbGVhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNDM0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5oOiBBZGRlZCBhIHN0YXRpYyBtZW1iZXIg
ZnVuY3Rpb24gaXNJblN0cmluZ1ZhbHVlIHRvCisgICAgICAgIGhlbHAgZmFjdG9yIHRoZSBfd2Vi
X2Rlc2NyaXB0aW9uIG1ldGhvZCBiZXR0ZXIuCisKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpj
X2luc3RhbmNlLm1tOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0luc3RhbmNlOjpzdHJp
bmdWYWx1ZSBjb25zdCk6IFJlbW92ZWQgdW5uZWVkZWQgV1RGIHByZWZpeGVzLgorICAgICAgICAo
SlNDOjpCaW5kaW5nczo6T2JqY0luc3RhbmNlOjppc0luU3RyaW5nVmFsdWUpOiBBZGRlZC4KKyAg
ICAgICAgKC1bTlNPYmplY3QgX3dlYl9kZXNjcmlwdGlvbl0pOiBNb3ZlZCB0aGlzIG91dCBvZiB0
aGUgQysrIG5hbWVzcGFjZSBzaW5jZSBpdCdzIGFuCisgICAgICAgIE9iamVjdGl2ZS1DIGNsYXNz
IGltcGxlbWVudGF0aW9uLiBSZWZhY3RvcmVkIGZvciBzaW1wbGljaXR5LgorCiAyMDIxLTA0LTA4
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgT2ZmbGluZUF1ZGlv
Q29udGV4dCBvYmplY3RzIGFyZSBsZWFraW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQyZTEwMjIyMjljZTAxMmM1
NzIxMzdiNzVmMmQ5M2U2MTFlNTczZGQuLjUzMGI4OGNhMjE1NTAwMDZkODZlYmQ1NDgwNWE4NzI4
YTVhYWEwMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjEtMDQtMDggIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmVkdWNlIHVzYWdlIG9m
IGF1dG9yZWxlYXNlLCBmaXggbWlzdGFrZXMgbm90aWNlZCBuZWFyYnkgY29kZSB1c2luZyBhdXRv
cmVsZWFzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjI0MzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOiBVc2UgUmV0YWlu
UHRyPE5TVVJMUmVxdWVzdD4gaW5zdGVhZCBvZgorICAgICAgICBfX3N0cm9uZyBOU1VSTFJlcXVl
c3QqJiBmb3IgdGhlIGluL291dCBhcmd1bWVudCBvZiB0aGUKKyAgICAgICAgYXBwbHlTbmlmZmlu
Z1BvbGljaWVzQW5kQmluZFJlcXVlc3RUb0luZmVyZmFjZUlmTmVlZGVkIGZ1bmN0aW9uLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjphcHBseVNuaWZmaW5nUG9saWNp
ZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZWQpOgorICAgICAgICBVcGRhdGVkIHRv
IHVzZSBSZXRhaW5QdHIgaW5zdGVhZCBvZiBfX3N0cm9uZy4gQWxzbyBmaXhlZCBzb21lIGluY29y
cmVjdCB1c2VzIG9mICVsbHUKKyAgICAgICAgdG8gbG9nIE5TVUludGVnZXIgYW5kIHVpbnQ2NF90
LCBzd2l0Y2hpbmcgdG8gIiVsdSIgKGFuZCBjYXN0aW5nIHRvIHVuc2lnbmVkIGxvbmcgdG8KKyAg
ICAgICAgcmV0YWluIDMyLWJpdCBjb21wYXRpYmlsaXR5KSBhbmQgIiUiIFBSSXU2NCByZXNwZWN0
aXZlbHkuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0
YVRhc2tDb2NvYSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2Nv
YTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOiBEaXR0by4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgIChzZXRJZ25v
cmVIU1RTKTogQWRkZWQuIEhlbHBlciBmdW5jdGlvbiBzbyB0aGUgY29kZSB0aGF0IG1ha2VzIGEg
bXV0YWJsZUNvcHkgaXMgaXNvbGF0ZWQKKyAgICAgICAgaW4gYSBoZWxwZXIgZnVuY3Rpb24gZm9y
IGNsYXJpdHkuIEEgZ29vZCBjb3VudGVycGFydCB0byB0aGUgZXhpc3RpbmcgaWdub3JlSFNUUyBm
dW5jdGlvbi4KKyAgICAgICAgKHVwZGF0ZUlnbm9yZVN0cmljdFRyYW5zcG9ydFNlY3VyaXR5U2V0
dGluZyk6IENoYW5nZWQgdG8gdXNlIGEgUmV0YWluUHRyPE5TVVJMUmVxdWVzdD4KKyAgICAgICAg
aW4vb3V0IGFyZ3VtZW50IGluc3RlYWQgb2YgYW4gYXJndW1lbnQgcGx1cyBhIHJldHVybiB2YWx1
ZSwgb2J2aWF0aW5nIHRoZSBuZWVkIHRvIHVzZQorICAgICAgICBhdXRvcmVsZWFzZSBhbmQgbWFr
aW5nIHRoaXMgZWFzaWVyIHRvIHJlYWQuIFVzZWQgc2V0SWdub3JlSFNUUyBmb3IgYnJldml0eSBp
biBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIFVS
TFNlc3Npb246dGFzazp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjpuZXdSZXF1ZXN0OmNvbXBs
ZXRpb25IYW5kbGVyOl0pOgorICAgICAgICBVcGRhdGUgZm9yIGNoYW5nZSB0byB1cGRhdGVJZ25v
cmVTdHJpY3RUcmFuc3BvcnRTZWN1cml0eVNldHRpbmcuCisgICAgICAgICgtW1dLTmV0d29ya1Nl
c3Npb25EZWxlZ2F0ZSBVUkxTZXNzaW9uOnRhc2s6X3NjaGVtZVVwZ3JhZGVkOmNvbXBsZXRpb25I
YW5kbGVyOl0pOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6cHJveHlEaWN0aW9uYXJ5KTogUmV0
dXJuIGEgUmV0YWluUHRyIGluc3RlYWQgb2Ygc29tZXRoaW5nIGF1dG9yZWxlYXNlZC4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYSk6IENh
bGwgZ2V0KCkgb24gdGhlIHJlc3VsdCBvZiB0aGUKKyAgICAgICAgcHJveHlEaWN0aW9uYXJ5IGZ1
bmN0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIubW06CisgICAgICAgIChtYWtlUG9saWN5RGVjaXNpb25CbG9jayk6IFJldHVy
biBhIEJsb2NrUHRyIGluc3RlYWQgb2YgYW4gYXV0b3JlbGVhc2VkIGJsb2NrLgorICAgICAgICBB
bHNvIHVzZSBhIGxhbWJkYSBhbmQgcmV0YWluV0sgZm9yIGJldHRlciBjbGFyaXR5IG9uIGNhcHR1
cmUgc2VtYW50aWNzIHJhdGhlciB0aGFuCisgICAgICAgIGRvaW5nIGEgV0tSZXRhaW4gaW4gdGhl
IGNhbGxlciBhbmQgYSBXS1JlbGVhc2UgaW4gdGhlIGJsb2NrLgorICAgICAgICAoc2V0VXBQYWdl
UG9saWN5Q2xpZW50KTogQ2FsbCBnZXQoKSBvbiB0aGUgcmVzdWx0IG9mIHRoZQorICAgICAgICBt
YWtlUG9saWN5RGVjaXNpb25CbG9jayBmdW5jdGlvbi4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbToKKyAg
ICAgICAgKFdlYktpdDo6YW5pbWF0aW9uVmFsdWVGcm9tS2V5ZnJhbWVWYWx1ZSk6IFJldHVybiBh
IFJldGFpblB0ciBpbnN0ZWFkIG9mIGFuCisgICAgICAgIGF1dG9yZWxlYXNlZCBvYmplY3QuCisg
ICAgICAgIChXZWJLaXQ6OmNyZWF0ZUFuaW1hdGlvbik6IENhbGwgZ2V0KCkgb24gdGhlIHJlc3Vs
dCBvZiB0aGUKKyAgICAgICAgYW5pbWF0aW9uVmFsdWVGcm9tS2V5ZnJhbWVWYWx1ZSBmdW5jdGlv
bi4KKwogMjAyMS0wNC0wOCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbQ29jb2FdIFRlbXBvcmFyaWx5IHJldGFpbiBzb21lIG1lZGlhIHNlcnZpY2VzIHdo
ZW4gR1BVIFByb2Nlc3MgYWN0aXZlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
b2JqYy9vYmpjX2luc3RhbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2lu
c3RhbmNlLmgKaW5kZXggYzNjYjg2MWY1YTA0NGE2ODk4MmNkZWE4MGQ2NWU0ODg3Zjg2NWNmNi4u
ZjAzMjZjNDg3NjVlNjgxM2YwZmRlYWZmYTc5MTMxNTBiMmVmY2RkOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDMsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01OSw2ICs1OSw4IEBAIHB1Ymxp
YzoKICAgICBKU1ZhbHVlIG51bWJlclZhbHVlKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAg
SlNWYWx1ZSBib29sZWFuVmFsdWUoKSBjb25zdDsKIAorICAgIHN0YXRpYyBib29sIGlzSW5TdHJp
bmdWYWx1ZSgpOworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHZpcnR1YWxCZWdpbigp
OwogICAgIHZpcnR1YWwgdm9pZCB2aXJ0dWFsRW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvb2JqY19pbnN0YW5jZS5tbQppbmRleCBiNTk1ZDVhMTM4NWJhZTZmN2ZiMDFkZWJjM2E2
Nzg1YmNlMTNhNjVhLi4zODQ4MzA1MzgxOWQ0NGExYjA5NGM1ZmUwMjZiOWY0NTBmOWM5MDRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0KQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Miwx
NSArNTIsMjIgQEAKIH0KICNlbmRpZgogCi11c2luZyBuYW1lc3BhY2UgSlNDOjpCaW5kaW5nczsK
LXVzaW5nIG5hbWVzcGFjZSBKU0M7CitAaW50ZXJmYWNlIE5TT2JqZWN0IChXZWJEZXNjcmlwdGlv
bkNhdGVnb3J5KQorLSAoTlNTdHJpbmcgKilfd2ViX2Rlc2NyaXB0aW9uOworQGVuZAorCituYW1l
c3BhY2UgSlNDIHsKK25hbWVzcGFjZSBCaW5kaW5ncyB7CiAKIHN0YXRpYyBSZXRhaW5QdHI8TlNT
dHJpbmc+JiBnbG9iYWxFeGNlcHRpb24oKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxS
ZXRhaW5QdHI8TlNTdHJpbmc+PiBleGNlcHRpb247CiAgICAgcmV0dXJuIGV4Y2VwdGlvbjsKIH0K
LXN0YXRpYyBKU0dsb2JhbE9iamVjdCogc19leGNlcHRpb25FbnZpcm9ubWVudDsgLy8gTm8gbmVl
ZCB0byBwcm90ZWN0IHRoaXMgdmFsdWUsIHNpbmNlIHdlIGp1c3QgdXNlIGl0IGZvciBhIHBvaW50
ZXIgY29tcGFyaXNvbi4KKworLy8gTm8gbmVlZCB0byBwcm90ZWN0IHRoaXMgdmFsdWUsIHNpbmNl
IHdlIGp1c3QgdXNlIGl0IGZvciBhIHBvaW50ZXIgY29tcGFyaXNvbi4KKy8vIEZJWE1FOiBBIG5l
dyBvYmplY3QgY2FuIGhhcHBlbiB0byBiZSBlcXVhbCB0byB0aGUgb2xkIG9uZSwgc28gZXZlbiBw
b2ludGVyIGNvbXBhcmlzb24gaXMgbm90IHNhZmUuIE1heWJlIHdlIGNhbiB1c2UgTmV2ZXJEZXN0
cm95ZWQ8SlNDOjpXZWFrPj8KK3N0YXRpYyBKU0dsb2JhbE9iamVjdCogc19leGNlcHRpb25FbnZp
cm9ubWVudDsKIAogc3RhdGljIEhhc2hNYXA8Q0ZUeXBlUmVmLCBPYmpjSW5zdGFuY2UqPiYgd3Jh
cHBlckNhY2hlKCkKIHsKQEAgLTc0LDEwICs4MSw5IEBAIFJ1bnRpbWVPYmplY3QqIE9iamNJbnN0
YW5jZTo6bmV3UnVudGltZU9iamVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
CiAgICAgcmV0dXJuIE9iakNSdW50aW1lT2JqZWN0OjpjcmVhdGUobGV4aWNhbEdsb2JhbE9iamVj
dC0+dm0oKSwgV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxPYmpDUnVudGltZU9i
amVjdD4obGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXMpOwogfQogCi12b2lkIE9iamNJbnN0YW5j
ZTo6c2V0R2xvYmFsRXhjZXB0aW9uKE5TU3RyaW5nKiBleGNlcHRpb24sIEpTR2xvYmFsT2JqZWN0
KiBleGNlcHRpb25FbnZpcm9ubWVudCkKK3ZvaWQgT2JqY0luc3RhbmNlOjpzZXRHbG9iYWxFeGNl
cHRpb24oTlNTdHJpbmcgKmV4Y2VwdGlvbiwgSlNHbG9iYWxPYmplY3QqIGV4Y2VwdGlvbkVudmly
b25tZW50KQogewogICAgIGdsb2JhbEV4Y2VwdGlvbigpID0gYWRvcHROUyhbZXhjZXB0aW9uIGNv
cHldKTsKLQogICAgIHNfZXhjZXB0aW9uRW52aXJvbm1lbnQgPSBleGNlcHRpb25FbnZpcm9ubWVu
dDsKIH0KIApAQCAtNDY4LDMyICs0NzQsMTMgQEAgSlNDOjpKU1ZhbHVlIE9iamNJbnN0YW5jZTo6
ZGVmYXVsdFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBQcmUKICAg
ICByZXR1cm4gdmFsdWVPZihsZXhpY2FsR2xvYmFsT2JqZWN0KTsKIH0KIAotc3RhdGljIFdURjo6
VGhyZWFkU3BlY2lmaWM8dWludDMyX3Q+KiBzX2Rlc2NyaXB0aW9uRGVwdGg7Ci0KLUBpbnRlcmZh
Y2UgTlNPYmplY3QgKFdlYkRlc2NyaXB0aW9uQ2F0ZWdvcnkpCi0tIChOU1N0cmluZyAqKV93ZWJf
ZGVzY3JpcHRpb247Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBOU09iamVjdCAoV2ViRGVzY3Jp
cHRpb25DYXRlZ29yeSkKLQotLSAoTlNTdHJpbmcgKilfd2ViX2Rlc2NyaXB0aW9uCi17Ci0gICAg
QVNTRVJUKHNfZGVzY3JpcHRpb25EZXB0aCk7Ci0gICAgaWYgKHNfZGVzY3JpcHRpb25EZXB0aC0+
aXNTZXQoKSAmJiAqKnNfZGVzY3JpcHRpb25EZXB0aCkKLSAgICAgICAgcmV0dXJuIFtOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OkAiPCVAPiIsIE5TU3RyaW5nRnJvbUNsYXNzKFtzZWxmIGNsYXNz
XSldOwotICAgIC8vIFdlIGNhbGwgX3dlYl9kZXNjcmlwdGlvbiBoZXJlIHNpbmNlIHRoaXMgbWV0
aG9kIHNob3VsZCBvbmx5IGJlIGNhbGxlZAotICAgIC8vIG9uY2Ugd2UgaGF2ZSBhbHJlYWR5IHN3
aXp6bGVkIHRoaXMgbWV0aG9kIHdpdGggdGhlIG9uZSBvbiBOU09iamVjdC4KLSAgICAvLyBUaHVz
LCBfd2ViX2Rlc2NyaXB0aW9uIGlzIGFjdHVhbGx5IHRoZSBvcmlnaW5hbCBkZXNjcmlwdGlvbiBt
ZXRob2QuCi0gICAgcmV0dXJuIFtzZWxmIF93ZWJfZGVzY3JpcHRpb25dOwotfQotCi1AZW5kCitz
dGF0aWMgVGhyZWFkU3BlY2lmaWM8dWludDMyX3Q+KiBzX2Rlc2NyaXB0aW9uRGVwdGg7CiAKIEpT
Qzo6SlNWYWx1ZSBPYmpjSW5zdGFuY2U6OnN0cmluZ1ZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0KSBjb25zdAogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0
aWFsaXplRGVzY3JpcHRpb25EZXB0aE9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRp
YWxpemVEZXNjcmlwdGlvbkRlcHRoT25jZUZsYWcsIFtdIHsKLSAgICAgICAgc19kZXNjcmlwdGlv
bkRlcHRoID0gbmV3IFdURjo6VGhyZWFkU3BlY2lmaWM8dWludDMyX3Q+KCk7CisgICAgICAgIHNf
ZGVzY3JpcHRpb25EZXB0aCA9IG5ldyBUaHJlYWRTcGVjaWZpYzx1aW50MzJfdD4oKTsKICAgICAg
ICAgKipzX2Rlc2NyaXB0aW9uRGVwdGggPSAwOwogCiAgICAgICAgIGF1dG8gZGVzY3JpcHRpb25N
ZXRob2QgPSBjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChbTlNPYmplY3QgY2xhc3NdLCBAc2VsZWN0
b3IoZGVzY3JpcHRpb24pKTsKQEAgLTUwNyw2ICs0OTQsMTEgQEAgSlNDOjpKU1ZhbHVlIE9iamNJ
bnN0YW5jZTo6c3RyaW5nVmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qp
IGNvbnMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitib29sIE9iamNJbnN0YW5jZTo6aXNJblN0
cmluZ1ZhbHVlKCkKK3sKKyAgICByZXR1cm4gc19kZXNjcmlwdGlvbkRlcHRoICYmIHNfZGVzY3Jp
cHRpb25EZXB0aC0+aXNTZXQoKSAmJiAqKnNfZGVzY3JpcHRpb25EZXB0aDsKK30KKwogSlNDOjpK
U1ZhbHVlIE9iamNJbnN0YW5jZTo6bnVtYmVyVmFsdWUoSlNHbG9iYWxPYmplY3QqKSBjb25zdAog
ewogICAgIHJldHVybiBqc051bWJlcigwKTsKQEAgLTUyMSwzICs1MTMsMjAgQEAgSlNDOjpKU1Zh
bHVlIE9iamNJbnN0YW5jZTo6dmFsdWVPZihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCkgY29uc3QKIHsKICAgICByZXR1cm4gc3RyaW5nVmFsdWUobGV4aWNhbEdsb2JhbE9iamVj
dCk7CiB9CisKK30KK30KKworQGltcGxlbWVudGF0aW9uIE5TT2JqZWN0IChXZWJEZXNjcmlwdGlv
bkNhdGVnb3J5KQorCistIChOU1N0cmluZyAqKV93ZWJfZGVzY3JpcHRpb24KK3sKKyAgICBpZiAo
SlNDOjpCaW5kaW5nczo6T2JqY0luc3RhbmNlOjppc0luU3RyaW5nVmFsdWUoKSkKKyAgICAgICAg
cmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiPCVAPiIsIE5TU3RyaW5nRnJvbUNs
YXNzKFtzZWxmIGNsYXNzXSldOworCisgICAgLy8gQ2FsbGluZyBfd2ViX2Rlc2NyaXB0aW9uIGhl
cmUgaW52b2tlcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIG9yaWdpbmFsIGRlc2NyaXB0aW9u
CisgICAgLy8gbWV0aG9kIGZyb20gTlNPYmplY3QsIGJlY2F1c2Ugd2UgaGF2ZSBhbHJlYWR5IHN3
YXBwZWQgaW1wbGVtZW50YXRpb25zLgorICAgIHJldHVybiBbc2VsZiBfd2ViX2Rlc2NyaXB0aW9u
XTsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCmluZGV4IDViNTU4ZTdlMmViNzgzZGJkZTkz
YjZlOWJiMzE3MzhlMTczNTUzM2YuLjMzZGUwYzA2ODRkMTU0YmQ1ZDA0OThhYjE1MGM1ZGFiMWFi
YTc0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya0RhdGFUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKQEAgLTg4LDcgKzg4LDcgQEAgcHJpdmF0ZToKICAg
ICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0Ns
aWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIs
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZp
bmdQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBib29sIHNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5LCBi
b29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JN
YWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0
eVRyYWNrZXI+LCBPcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbiwgV2ViQ29yZTo6U2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2ll
QmxvY2tpbmcsIE9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21E
YXRhQ2FycmllZD4pOwogCiAgICAgYm9vbCB0cnlQYXNzd29yZEJhc2VkQXV0aGVudGljYXRpb24o
Y29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0
aW9uSGFuZGxlciYpOwotICAgIHZvaWQgYXBwbHlTbmlmZmluZ1BvbGljaWVzQW5kQmluZFJlcXVl
c3RUb0luZmVyZmFjZUlmTmVlZGVkKF9fc3Ryb25nIE5TVVJMUmVxdWVzdComLCBib29sIHNob3Vs
ZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CisgICAgdm9p
ZCBhcHBseVNuaWZmaW5nUG9saWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZWQo
UmV0YWluUHRyPE5TVVJMUmVxdWVzdD4mLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBz
aG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQogICAgIHN0YXRpYyBOU0hUVFBDb29raWVTdG9yYWdlICpzdGF0ZWxlc3NDb29r
aWVTdG9yYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQppbmRleCAzMzllMTBkMjAyZjNjMTcxOTc5
ODhhYmIwNzU2NzNmNmI0MTY0ZDQ1Li5jODFmYzlmNzFkNTRhYzE5ZDRkOGNlOTgzYTJjYThhNTc4
OTU2ODBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KQEAgLTg4LDcgKzg4LDcgQEAgc3RhdGljIGZs
b2F0IHRvTlNVUkxTZXNzaW9uVGFza1ByaW9yaXR5KFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9y
aXR5IHByaW9yaXR5KQogICAgIHJldHVybiBOU1VSTFNlc3Npb25UYXNrUHJpb3JpdHlEZWZhdWx0
OwogfQogCi12b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjphcHBseVNuaWZmaW5nUG9saWNpZXNB
bmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZWQoX19zdHJvbmcgTlNVUkxSZXF1ZXN0ICom
IG5zUmVxdWVzdCwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVu
Y29kaW5nU25pZmYpCit2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjphcHBseVNuaWZmaW5nUG9s
aWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZWQoUmV0YWluUHRyPE5TVVJMUmVx
dWVzdD4mIG5zUmVxdWVzdCwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29u
dGVudEVuY29kaW5nU25pZmYpCiB7CiAjaWYgIVVTRShDRk5FVFdPUktfQ09OVEVOVF9FTkNPRElO
R19TTklGRklOR19PVkVSUklERSkKICAgICBVTlVTRURfUEFSQU0oc2hvdWxkQ29udGVudEVuY29k
aW5nU25pZmYpOwpAQCAtMzM2LDIxICszMzYsMjQgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5l
dHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVQK
ICNlbmRpZgogICAgIHJlc3RyaWN0UmVxdWVzdFJlZmVycmVyVG9PcmlnaW5JZk5lZWRlZChyZXF1
ZXN0KTsKIAorICAgIC8vIEZJWE1FOiBPbmNlIHdlIGFyZSBkb25lIHdpdGggTkVUV09SS19EQVRB
X1RBU0tfQ09DT0FfQURESVRJT05TLCBtYWtlIG5zUmVxdWVzdCBhIFJldGFpblB0ciBhbmQgZ2V0
IHJpZCBvZiBwcm90ZWN0ZWROU1JlcXVlc3QuCiAgICAgTlNVUkxSZXF1ZXN0ICpuc1JlcXVlc3Qg
PSByZXF1ZXN0Lm5zVVJMUmVxdWVzdChXZWJDb3JlOjpIVFRQQm9keVVwZGF0ZVBvbGljeTo6VXBk
YXRlSFRUUEJvZHkpOwogCiAgICAgTkVUV09SS19EQVRBX1RBU0tfQ09DT0FfQURESVRJT05TCiAK
KyAgICBhdXRvIHByb3RlY3RlZE5TUmVxdWVzdCA9IHJldGFpblB0cihuc1JlcXVlc3QpOworCiAg
ICAgbV9zZXNzaW9uLT5hcHBCb3VuZE5hdmlnYXRpb25UZXN0aW5nRGF0YSgpLnVwZGF0ZUFwcEJv
dW5kTmF2aWdhdGlvblRlc3RpbmdEYXRhKHJlcXVlc3QuaXNBcHBCb3VuZCgpKTsKIAotICAgIGFw
cGx5U25pZmZpbmdQb2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRlZChuc1Jl
cXVlc3QsIHNob3VsZENvbnRlbnRTbmlmZiA9PSBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xp
Y3k6OlNuaWZmQ29udGVudCAmJiAhdXJsLmlzTG9jYWxGaWxlKCksIHNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmID09IFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlm
Zik7CisgICAgYXBwbHlTbmlmZmluZ1BvbGljaWVzQW5kQmluZFJlcXVlc3RUb0luZmVyZmFjZUlm
TmVlZGVkKHByb3RlY3RlZE5TUmVxdWVzdCwgc2hvdWxkQ29udGVudFNuaWZmID09IFdlYkNvcmU6
OkNvbnRlbnRTbmlmZmluZ1BvbGljeTo6U25pZmZDb250ZW50ICYmICF1cmwuaXNMb2NhbEZpbGUo
KSwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgPT0gV2ViQ29yZTo6Q29udGVudEVuY29kaW5n
U25pZmZpbmdQb2xpY3k6OlNuaWZmKTsKIAotICAgIG1fdGFzayA9IFttX3Nlc3Npb25XcmFwcGVy
LT5zZXNzaW9uIGRhdGFUYXNrV2l0aFJlcXVlc3Q6bnNSZXF1ZXN0XTsKKyAgICBtX3Rhc2sgPSBb
bV9zZXNzaW9uV3JhcHBlci0+c2Vzc2lvbiBkYXRhVGFza1dpdGhSZXF1ZXN0OnByb3RlY3RlZE5T
UmVxdWVzdC5nZXQoKV07CiAKICAgICBXVEZCZWdpblNpZ25wb3N0KG1fdGFzay5nZXQoKSwgIkRh
dGFUYXNrIiwgIiV7cHVibGljfXMgcHJpOiAlLjJmIHByZWNvbm5lY3Q6ICVkIiwgdXJsLnN0cmlu
ZygpLmFzY2lpKCkuZGF0YSgpLCB0b05TVVJMU2Vzc2lvblRhc2tQcmlvcml0eShyZXF1ZXN0LnBy
aW9yaXR5KCkpLCBzaG91bGRQcmVjb25uZWN0T25seSA9PSBQcmVjb25uZWN0T25seTo6WWVzKTsK
IAogICAgIFJFTEVBU0VfQVNTRVJUKCFtX3Nlc3Npb25XcmFwcGVyLT5kYXRhVGFza01hcC5jb250
YWlucyhbbV90YXNrIHRhc2tJZGVudGlmaWVyXSkpOwogICAgIG1fc2Vzc2lvbldyYXBwZXItPmRh
dGFUYXNrTWFwLmFkZChbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgdGhpcyk7Ci0gICAgTE9HKE5l
dHdvcmtTZXNzaW9uLCAiJWxsdSBDcmVhdGluZyBOZXR3b3JrRGF0YVRhc2sgd2l0aCBVUkwgJXMi
LCBbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5V
VEY4U3RyaW5nKTsKKyAgICBMT0coTmV0d29ya1Nlc3Npb24sICIlbHUgQ3JlYXRpbmcgTmV0d29y
a0RhdGFUYXNrIHdpdGggVVJMICVzIiwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRp
Zmllcl0sIFtwcm90ZWN0ZWROU1JlcXVlc3QgVVJMXS5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5n
KTsKIAogICAgIGlmIChzaG91bGRQcmVjb25uZWN0T25seSA9PSBQcmVjb25uZWN0T25seTo6WWVz
KSB7CiAjaWYgRU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQpAQCAtMzY3LDkgKzM3MCw5IEBAIE5l
dHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYg
c2Vzc2lvbiwgTmV0d29ya0RhdGFUCiAgICAgaWYgKHNob3VsZEJsb2NrQ29va2llcykgewogI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICAgICBpZiAobV9zZXNzaW9uLT5zaG91bGRMb2dD
b29raWVJbmZvcm1hdGlvbigpKQotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIlcCAtIE5ldHdvcmtEYXRhVGFza0NvY29hOjps
b2dDb29raWVJbmZvcm1hdGlvbjogcGFnZUlEPSVsbHUsIGZyYW1lSUQ9JWxsdSwgdGFza0lEPSVs
dTogQmxvY2tpbmcgY29va2llcyBmb3IgVVJMICVzIiwgdGhpcywgcGFnZUlELnRvVUludDY0KCks
IGZyYW1lSUQudG9VSW50NjQoKSwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmll
cl0sIG5zUmVxdWVzdC5VUkwuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7CisgICAgICAgICAg
ICBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVw
IC0gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdlSUQ9JSIg
UFJJdTY0ICIsIGZyYW1lSUQ9JSIgUFJJdTY0ICIsIHRhc2tJRD0lbHU6IEJsb2NraW5nIGNvb2tp
ZXMgZm9yIFVSTCAlcyIsIHRoaXMsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0
KCksICh1bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCBuc1JlcXVlc3QuVVJM
LmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcpOwogI2Vsc2UKLSAgICAgICAgTE9HKE5ldHdvcmtT
ZXNzaW9uLCAiJWxsdSBCbG9ja2luZyBjb29raWVzIGZvciBVUkwgJXMiLCBbbV90YXNrIHRhc2tJ
ZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKKyAg
ICAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWx1IEJsb2NraW5nIGNvb2tpZXMgZm9yIFVSTCAl
cyIsICh1bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCBuc1JlcXVlc3QuVVJM
LmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcpOwogI2VuZGlmCiAgICAgICAgIGJsb2NrQ29va2ll
cygpOwogICAgIH0KQEAgLTUxNSw5ICs1MTgsOSBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29h
Ojp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJgog
ICAgICAgICB1bmJsb2NrQ29va2llcygpOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAg
IGlmIChtX3Nlc3Npb24tPnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCi0gICAgICAgIFJF
TEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBO
ZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb246OmxvZ0Nvb2tp
ZUluZm9ybWF0aW9uOiBwYWdlSUQ9JWxsdSwgZnJhbWVJRD0lbGx1LCB0YXNrSUQ9JWx1OiAlcyBj
b29raWVzIGZvciByZWRpcmVjdCBVUkwgJXMiLCB0aGlzLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBt
X2ZyYW1lSUQudG9VSW50NjQoKSwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmll
cl0sIChtX2hhc0JlZW5TZXRUb1VzZVN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UgPyAiQmxvY2tpbmci
IDogIk5vdCBibG9ja2luZyIpLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OworICAgICAgICBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0
d29yaywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0
aW9uOjpsb2dDb29raWVJbmZvcm1hdGlvbjogcGFnZUlEPSUiIFBSSXU2NCAiLCBmcmFtZUlEPSUi
IFBSSXU2NCAiLCB0YXNrSUQ9JWx1OiAlcyBjb29raWVzIGZvciByZWRpcmVjdCBVUkwgJXMiLCB0
aGlzLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBtX2ZyYW1lSUQudG9VSW50NjQoKSwgKHVuc2lnbmVk
IGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIChtX2hhc0JlZW5TZXRUb1VzZVN0YXRlbGVz
c0Nvb2tpZVN0b3JhZ2UgPyAiQmxvY2tpbmciIDogIk5vdCBibG9ja2luZyIpLCByZXF1ZXN0LnVy
bCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogI2Vsc2UKLSAgICBMT0coTmV0d29ya1Nlc3Np
b24sICIlbGx1ICVzIGNvb2tpZXMgZm9yIHJlZGlyZWN0IFVSTCAlcyIsIFttX3Rhc2sgdGFza0lk
ZW50aWZpZXJdLCAobV9oYXNCZWVuU2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVTdG9yYWdlID8gIkJs
b2NraW5nIiA6ICJOb3QgYmxvY2tpbmciKSwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKKyAgICBMT0coTmV0d29ya1Nlc3Npb24sICIlbHUgJXMgY29va2llcyBmb3IgcmVk
aXJlY3QgVVJMICVzIiwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0sICht
X2hhc0JlZW5TZXRUb1VzZVN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UgPyAiQmxvY2tpbmciIDogIk5v
dCBibG9ja2luZyIpLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogI2Vu
ZGlmCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IGViMmI3ZDg5ODVhMWEzOWJhMWZj
NDk0MjAwMzI1NDkxMWM4ODExZTYuLjFiYzdjMGE5YmRlMmFlZDA5YzlkMjRmYjRlOGI3NDg3YWZi
MWNlZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTUwNCwyOSArNTA0LDMyIEBAIHN0YXRpYyB2
b2lkIHNldElnbm9yZUhTVFMoTlNNdXRhYmxlVVJMUmVxdWVzdCAqcmVxdWVzdCwgYm9vbCBpZ25v
cmVIU1RTKQogICAgICAgICBbcmVxdWVzdCBfc2V0SWdub3JlSFNUUzppZ25vcmVIU1RTXTsKIH0K
IAorc3RhdGljIHZvaWQgc2V0SWdub3JlSFNUUyhSZXRhaW5QdHI8TlNVUkxSZXF1ZXN0PiYgcmVx
dWVzdCwgYm9vbCBzaG91bGRJZ25vcmVIU1RTKQoreworICAgIGF1dG8gbXV0YWJsZVJlcXVlc3Qg
PSBhZG9wdE5TKFtyZXF1ZXN0IG11dGFibGVDb3B5XSk7CisgICAgc2V0SWdub3JlSFNUUyhtdXRh
YmxlUmVxdWVzdC5nZXQoKSwgZmFsc2UpOworICAgIHJlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdDsK
K30KKwogc3RhdGljIGJvb2wgaWdub3JlSFNUUyhOU1VSTFJlcXVlc3QgKnJlcXVlc3QpCiB7CiAg
ICAgcmV0dXJuIFtyZXF1ZXN0IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX2lnbm9yZUhT
VFMpXQogICAgICAgICAmJiBbcmVxdWVzdCBfaWdub3JlSFNUU107CiB9CiAKLXN0YXRpYyBOU1VS
TFJlcXVlc3QqIHVwZGF0ZUlnbm9yZVN0cmljdFRyYW5zcG9ydFNlY3VyaXR5U2V0dGluZ0lmTmVj
ZXNzYXJ5KE5TVVJMUmVxdWVzdCAqcmVxdWVzdCwgYm9vbCBzaG91bGRJZ25vcmVIU1RTKQorc3Rh
dGljIHZvaWQgdXBkYXRlSWdub3JlU3RyaWN0VHJhbnNwb3J0U2VjdXJpdHlTZXR0aW5nKFJldGFp
blB0cjxOU1VSTFJlcXVlc3Q+JiByZXF1ZXN0LCBib29sIHNob3VsZElnbm9yZUhTVFMpCiB7Ci0g
ICAgaWYgKFtyZXF1ZXN0LlVSTC5zY2hlbWUgaXNFcXVhbFRvU3RyaW5nOkAiaHR0cHMiXSAmJiBz
aG91bGRJZ25vcmVIU1RTICYmIGlnbm9yZUhTVFMocmVxdWVzdCkpIHsKLSAgICAgICAgLy8gVGhl
IHJlcXVlc3Qgd2FzIHVwZ3JhZGVkIGZvciBzb21lIG90aGVyIHJlYXNvbiB0aGFuIEhTVFMuCi0g
ICAgICAgIC8vIERvbid0IGlnbm9yZSBIU1RTIHRvIGF2b2lkIHRoZSByaXNrIG9mIGFub3RoZXIg
ZG93bmdyYWRlLgotICAgICAgICBhdXRvIG5zTXV0YWJsZVJlcXVlc3QgPSBhZG9wdE5TKFtyZXF1
ZXN0IG11dGFibGVDb3B5XSk7Ci0gICAgICAgIHNldElnbm9yZUhTVFMobnNNdXRhYmxlUmVxdWVz
dC5nZXQoKSwgZmFsc2UpOwotICAgICAgICByZXR1cm4gbnNNdXRhYmxlUmVxdWVzdC5hdXRvcmVs
ZWFzZSgpOwotICAgIH0KLSAgICAKLSAgICBpZiAoW3JlcXVlc3QuVVJMLnNjaGVtZSBpc0VxdWFs
VG9TdHJpbmc6QCJodHRwIl0gJiYgaWdub3JlSFNUUyhyZXF1ZXN0KSAhPSBzaG91bGRJZ25vcmVI
U1RTKSB7Ci0gICAgICAgIGF1dG8gbnNNdXRhYmxlUmVxdWVzdCA9IGFkb3B0TlMoW3JlcXVlc3Qg
bXV0YWJsZUNvcHldKTsKLSAgICAgICAgc2V0SWdub3JlSFNUUyhuc011dGFibGVSZXF1ZXN0Lmdl
dCgpLCBzaG91bGRJZ25vcmVIU1RTKTsKLSAgICAgICAgcmV0dXJuIG5zTXV0YWJsZVJlcXVlc3Qu
YXV0b3JlbGVhc2UoKTsKKyAgICBhdXRvIHNjaGVtZSA9IHJlcXVlc3QuZ2V0KCkuVVJMLnNjaGVt
ZTsKKyAgICBpZiAoW3NjaGVtZSBpc0VxdWFsVG9TdHJpbmc6QCJodHRwcyJdKSB7CisgICAgICAg
IGlmIChzaG91bGRJZ25vcmVIU1RTICYmIGlnbm9yZUhTVFMocmVxdWVzdC5nZXQoKSkpIHsKKyAg
ICAgICAgICAgIC8vIFRoZSByZXF1ZXN0IHdhcyB1cGdyYWRlZCBmb3Igc29tZSBvdGhlciByZWFz
b24gdGhhbiBIU1RTLgorICAgICAgICAgICAgLy8gRG9uJ3QgaWdub3JlIEhTVFMgdG8gYXZvaWQg
dGhlIHJpc2sgb2YgYW5vdGhlciBkb3duZ3JhZGUuCisgICAgICAgICAgICBzZXRJZ25vcmVIU1RT
KHJlcXVlc3QsIGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoW3NjaGVtZSBpc0Vx
dWFsVG9TdHJpbmc6QCJodHRwIl0pIHsKKyAgICAgICAgaWYgKGlnbm9yZUhTVFMocmVxdWVzdC5n
ZXQoKSkgIT0gc2hvdWxkSWdub3JlSFNUUykKKyAgICAgICAgICAgIHNldElnbm9yZUhTVFMocmVx
dWVzdCwgc2hvdWxkSWdub3JlSFNUUyk7CiAgICAgfQotCi0gICAgcmV0dXJuIHJlcXVlc3Q7CiB9
CiAKIC0gKHZvaWQpVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiB0YXNrOihOU1VS
TFNlc3Npb25UYXNrICopdGFzayB3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjooTlNIVFRQVVJM
UmVzcG9uc2UgKilyZXNwb25zZSBuZXdSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFJlcXVlc3QgKikpY29tcGxldGlvbkhhbmRs
ZXIKQEAgLTU1NSw5ICs1NTgsOSBAQCAtICh2b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAq
KXNlc3Npb24gdGFzazooTlNVUkxTZXNzaW9uVGFzayAqKXRhc2sgd2lsbFBlcgogI2Vsc2UKICAg
ICAgICAgICAgIFVOVVNFRF9QQVJBTSh0YXNrSWRlbnRpZmllcik7CiAjZW5kaWYKLSAgICAgICAg
ICAgIGF1dG8gbnNSZXF1ZXN0ID0gcmVxdWVzdC5uc1VSTFJlcXVlc3QoV2ViQ29yZTo6SFRUUEJv
ZHlVcGRhdGVQb2xpY3k6OlVwZGF0ZUhUVFBCb2R5KTsKLSAgICAgICAgICAgIG5zUmVxdWVzdCA9
IHVwZGF0ZUlnbm9yZVN0cmljdFRyYW5zcG9ydFNlY3VyaXR5U2V0dGluZ0lmTmVjZXNzYXJ5KG5z
UmVxdWVzdCwgc2hvdWxkSWdub3JlSFNUUyk7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihuc1JlcXVlc3QpOworICAgICAgICAgICAgYXV0byBuc1JlcXVlc3QgPSByZXRhaW5QdHIocmVx
dWVzdC5uc1VSTFJlcXVlc3QoV2ViQ29yZTo6SFRUUEJvZHlVcGRhdGVQb2xpY3k6OlVwZGF0ZUhU
VFBCb2R5KSk7CisgICAgICAgICAgICB1cGRhdGVJZ25vcmVTdHJpY3RUcmFuc3BvcnRTZWN1cml0
eVNldHRpbmcobnNSZXF1ZXN0LCBzaG91bGRJZ25vcmVIU1RTKTsKKyAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKG5zUmVxdWVzdC5nZXQoKSk7CiAgICAgICAgIH0pOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIiVsbHUgd2lsbFBlcmZvcm1IVFRQUmVkaXJl
Y3Rpb24gY29tcGxldGlvbkhhbmRsZXIgKG5pbCkiLCB0YXNrSWRlbnRpZmllcik7CkBAIC01OTAs
OSArNTkzLDkgQEAgLSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzZXNzaW9uIHRh
c2s6KE5TVVJMU2Vzc2lvblRhc2sqKXRhc2sgX3NjaGVtZVUKICNlbHNlCiAgICAgICAgICAgICBV
TlVTRURfUEFSQU0odGFza0lkZW50aWZpZXIpOwogI2VuZGlmCi0gICAgICAgICAgICBhdXRvIG5z
UmVxdWVzdCA9IHJlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6OkhUVFBCb2R5VXBkYXRlUG9s
aWN5OjpVcGRhdGVIVFRQQm9keSk7Ci0gICAgICAgICAgICBuc1JlcXVlc3QgPSB1cGRhdGVJZ25v
cmVTdHJpY3RUcmFuc3BvcnRTZWN1cml0eVNldHRpbmdJZk5lY2Vzc2FyeShuc1JlcXVlc3QsIHNo
b3VsZElnbm9yZUhTVFMpOwotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobnNSZXF1ZXN0
KTsKKyAgICAgICAgICAgIGF1dG8gbnNSZXF1ZXN0ID0gcmV0YWluUHRyKHJlcXVlc3QubnNVUkxS
ZXF1ZXN0KFdlYkNvcmU6OkhUVFBCb2R5VXBkYXRlUG9saWN5OjpVcGRhdGVIVFRQQm9keSkpOwor
ICAgICAgICAgICAgdXBkYXRlSWdub3JlU3RyaWN0VHJhbnNwb3J0U2VjdXJpdHlTZXR0aW5nKG5z
UmVxdWVzdCwgc2hvdWxkSWdub3JlSFNUUyk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihuc1JlcXVlc3QuZ2V0KCkpOwogICAgICAgICB9KTsKICAgICB9IGVsc2UgewogICAgICAgICBM
T0coTmV0d29ya1Nlc3Npb24sICIlbGx1IF9zY2hlbWVVcGdyYWRlZCBjb21wbGV0aW9uSGFuZGxl
ciAobmlsKSIsIHRhc2tJZGVudGlmaWVyKTsKQEAgLTExMDUsNyArMTEwOCw3IEBAIHN0ZDo6dW5p
cXVlX3B0cjxOZXR3b3JrU2Vzc2lvbj4gTmV0d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlKE5ldHdv
cmtQcm9jZXNzJiBuZXR3CiAgICAgcmV0dXJuIG1ha2VVbmlxdWU8TmV0d29ya1Nlc3Npb25Db2Nv
YT4obmV0d29ya1Byb2Nlc3MsIFdURk1vdmUocGFyYW1ldGVycykpOwogfQogCi1zdGF0aWMgTlNE
aWN0aW9uYXJ5ICpwcm94eURpY3Rpb25hcnkoY29uc3QgVVJMJiBodHRwUHJveHksIGNvbnN0IFVS
TCYgaHR0cHNQcm94eSkKK3N0YXRpYyBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5PiBwcm94eURpY3Rp
b25hcnkoY29uc3QgVVJMJiBodHRwUHJveHksIGNvbnN0IFVSTCYgaHR0cHNQcm94eSkKIHsKICAg
ICBpZiAoIWh0dHBQcm94eS5pc1ZhbGlkKCkgJiYgIWh0dHBzUHJveHkuaXNWYWxpZCgpKQogICAg
ICAgICByZXR1cm4gbmlsOwpAQCAtMTEyMyw3ICsxMTI2LDcgQEAgc3RhdGljIE5TRGljdGlvbmFy
eSAqcHJveHlEaWN0aW9uYXJ5KGNvbnN0IFVSTCYgaHR0cFByb3h5LCBjb25zdCBVUkwmIGh0dHBz
UHJveHkKICAgICAgICAgaWYgKGF1dG8gcG9ydCA9IGh0dHBzUHJveHkucG9ydCgpKQogICAgICAg
ICAgICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0OkAoKnBvcnQpIGZvcktleTooTlNTdHJpbmcgKilr
Q0ZTdHJlYW1Qcm9wZXJ0eUhUVFBTUHJveHlQb3J0XTsKICAgICB9Ci0gICAgcmV0dXJuIGRpY3Rp
b25hcnkuYXV0b3JlbGVhc2UoKTsKKyAgICByZXR1cm4gZGljdGlvbmFyeTsKIAogICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQpAQCAtMTIzNSw3ICsxMjM4LDcgQEAgTmV0
d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYShOZXR3b3JrUHJvY2VzcyYgbmV0
d29ya1Byb2Nlc3MsIE5ldHdvcmsKIAogICAgIGNvbmZpZ3VyYXRpb24uX3ByZXZlbnRzU3lzdGVt
SFRUUFByb3h5QXV0aGVudGljYXRpb24gPSBwYXJhbWV0ZXJzLnByZXZlbnRzU3lzdGVtSFRUUFBy
b3h5QXV0aGVudGljYXRpb247CiAgICAgY29uZmlndXJhdGlvbi5fcmVxdWlyZXNTZWN1cmVIVFRQ
U1Byb3h5Q29ubmVjdGlvbiA9IHBhcmFtZXRlcnMucmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5Q29u
bmVjdGlvbjsKLSAgICBjb25maWd1cmF0aW9uLmNvbm5lY3Rpb25Qcm94eURpY3Rpb25hcnkgPSAo
TlNEaWN0aW9uYXJ5ICopcGFyYW1ldGVycy5wcm94eUNvbmZpZ3VyYXRpb24uZ2V0KCkgPzogcHJv
eHlEaWN0aW9uYXJ5KHBhcmFtZXRlcnMuaHR0cFByb3h5LCBwYXJhbWV0ZXJzLmh0dHBzUHJveHkp
OworICAgIGNvbmZpZ3VyYXRpb24uY29ubmVjdGlvblByb3h5RGljdGlvbmFyeSA9IChOU0RpY3Rp
b25hcnkgKilwYXJhbWV0ZXJzLnByb3h5Q29uZmlndXJhdGlvbi5nZXQoKSA/OiBwcm94eURpY3Rp
b25hcnkocGFyYW1ldGVycy5odHRwUHJveHksIHBhcmFtZXRlcnMuaHR0cHNQcm94eSkuZ2V0KCk7
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmICghbV9kYXRhQ29ubmVjdGlvblNl
cnZpY2VUeXBlLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCmluZGV4
IDQ4Yzc1MTBkNGI2MWE2ZDUyYWJmZTY5Y2QwYmNmMzdkMWFjOWI1ZDEuLmYzNjBiNDJkOTU1OTcx
Nzg5MDZkNzk2MTBmYzQ2OWZkMTYwYWZmN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ci5tbQpAQCAtNDU5LDI3ICs0NTksMjEgQEAgc3RhdGljIHZvaWQgc2V0VXBQYWdlTG9hZGVyQ2xp
ZW50KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0LAogICAgIFdL
UGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHRvQVBJKCZwYWdlKSwgJmxvYWRlckNsaWVudC5i
YXNlKTsKIH0KIAotc3RhdGljIFdLUG9saWN5RGVjaXNpb25IYW5kbGVyIG1ha2VQb2xpY3lEZWNp
c2lvbkJsb2NrKFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lcikKK3N0YXRpYyBCbG9j
a1B0cjx2b2lkKFdLUG9saWN5RGVjaXNpb24pPiBtYWtlUG9saWN5RGVjaXNpb25CbG9jayhXS0Zy
YW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIpCiB7Ci0gICAgV0tSZXRhaW4obGlzdGVuZXIp
OyAvLyBSZWxlYXNlZCBpbiB0aGUgZGVjaXNpb24gaGFuZGxlciBiZWxvdy4KLQotICAgIHJldHVy
biBhZG9wdE5TKFteKFdLUG9saWN5RGVjaXNpb24gZGVjaXNpb24pIHsKKyAgICByZXR1cm4gbWFr
ZUJsb2NrUHRyKFtsaXN0ZW5lciA9IHJldGFpbldLKGxpc3RlbmVyKV0oV0tQb2xpY3lEZWNpc2lv
biBkZWNpc2lvbikgewogICAgICAgICBzd2l0Y2ggKGRlY2lzaW9uKSB7CiAgICAgICAgIGNhc2Ug
V0tQb2xpY3lEZWNpc2lvbkNhbmNlbDoKLSAgICAgICAgICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5l
cklnbm9yZShsaXN0ZW5lcik7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIFdLRnJh
bWVQb2xpY3lMaXN0ZW5lcklnbm9yZShsaXN0ZW5lci5nZXQoKSk7CiAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgCiAgICAgICAgIGNhc2UgV0tQb2xpY3lEZWNpc2lvbkFsbG93OgotICAgICAg
ICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsKKyAgICAgICAgICAgIFdL
RnJhbWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0ZW5lci5nZXQoKSk7CiAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgCiAgICAgICAgIGNhc2UgV0tQb2xpY3lEZWNpc2lvbkJlY29tZURvd25sb2Fk
OgotICAgICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyRG93bmxvYWQobGlzdGVuZXIpOwor
ICAgICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyRG93bmxvYWQobGlzdGVuZXIuZ2V0KCkp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH07Ci0KLSAgICAgICAgV0tSZWxlYXNlKGxp
c3RlbmVyKTsgLy8gUmV0YWluZWQgaW4gdGhlIGNvbnRleHQgYWJvdmUuCi0gICAgfSBjb3B5XSku
YXV0b3JlbGVhc2UoKTsKKyAgICB9KTsKIH0KIAogc3RhdGljIHZvaWQgc2V0VXBQYWdlUG9saWN5
Q2xpZW50KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0LCBXZWJL
aXQ6OldlYlBhZ2VQcm94eSYgcGFnZSkKQEAgLTUxMiw3ICs1MDYsNyBAQCBzdGF0aWMgdm9pZCBz
ZXRVcFBhZ2VQb2xpY3lDbGllbnQoV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpicm93c2lu
Z0NvbnRleHQsCiAgICAgICAgICAgICAgICAgWyhOU011dGFibGVEaWN0aW9uYXJ5ICopYWN0aW9u
RGljdGlvbmFyeS5nZXQoKSBzZXRPYmplY3Q6W05TVVJMIF93ZWJfVVJMV2l0aFdURlN0cmluZzpX
ZWJLaXQ6OnRvSW1wbChvcmlnaW5hdGluZ0ZyYW1lKS0+dXJsKCkuc3RyaW5nKCldIGZvcktleTpX
S0FjdGlvbk9yaWdpbmF0aW5nRnJhbWVVUkxLZXldOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgCi0gICAgICAgICAgICBbcG9saWN5RGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
cjpicm93c2luZ0NvbnRleHQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjphY3Rpb25E
aWN0aW9uYXJ5LmdldCgpIGRlY2lzaW9uSGFuZGxlcjptYWtlUG9saWN5RGVjaXNpb25CbG9jayhs
aXN0ZW5lcildOworICAgICAgICAgICAgW3BvbGljeURlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXI6YnJvd3NpbmdDb250ZXh0IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246
YWN0aW9uRGljdGlvbmFyeS5nZXQoKSBkZWNpc2lvbkhhbmRsZXI6bWFrZVBvbGljeURlY2lzaW9u
QmxvY2sobGlzdGVuZXIpLmdldCgpXTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBXS0Zy
YW1lUG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOwogICAgIH07CkBAIC01MzQsNyArNTI4LDcg
QEAgc3RhdGljIHZvaWQgc2V0VXBQYWdlUG9saWN5Q2xpZW50KFdLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlciAqYnJvd3NpbmdDb250ZXh0LAogICAgICAgICAgICAgICAgIFdLQWN0aW9uRnJhbWVO
YW1lS2V5OiBXZWJLaXQ6OnRvSW1wbChmcmFtZU5hbWUpLT53cmFwcGVyKCkKICAgICAgICAgICAg
IH07CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIFtwb2xpY3lEZWxlZ2F0ZSBicm93c2luZ0Nv
bnRleHRDb250cm9sbGVyOmJyb3dzaW5nQ29udGV4dCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb246YWN0aW9uRGljdGlvbmFyeSBkZWNpc2lvbkhhbmRsZXI6bWFrZVBvbGljeURlY2lzaW9u
QmxvY2sobGlzdGVuZXIpXTsKKyAgICAgICAgICAgIFtwb2xpY3lEZWxlZ2F0ZSBicm93c2luZ0Nv
bnRleHRDb250cm9sbGVyOmJyb3dzaW5nQ29udGV4dCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb246YWN0aW9uRGljdGlvbmFyeSBkZWNpc2lvbkhhbmRsZXI6bWFrZVBvbGljeURlY2lzaW9u
QmxvY2sobGlzdGVuZXIpLmdldCgpXTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBXS0Zy
YW1lUG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOwogICAgIH07CkBAIC01NTQsNyArNTQ4LDcg
QEAgc3RhdGljIHZvaWQgc2V0VXBQYWdlUG9saWN5Q2xpZW50KFdLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlciAqYnJvd3NpbmdDb250ZXh0LAogICAgICAgICAgICAgICAgIFdLQWN0aW9uQ2FuU2hv
d01JTUVUeXBlS2V5OiBAKGNhblNob3dNSU1FVHlwZSksCiAgICAgICAgICAgICB9OwogCi0gICAg
ICAgICAgICBbcG9saWN5RGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpicm93c2lu
Z0NvbnRleHQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VBY3Rpb246YWN0aW9uRGljdGlvbmFyeSBk
ZWNpc2lvbkhhbmRsZXI6bWFrZVBvbGljeURlY2lzaW9uQmxvY2sobGlzdGVuZXIpXTsKKyAgICAg
ICAgICAgIFtwb2xpY3lEZWxlZ2F0ZSBicm93c2luZ0NvbnRleHRDb250cm9sbGVyOmJyb3dzaW5n
Q29udGV4dCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZUFjdGlvbjphY3Rpb25EaWN0aW9uYXJ5IGRl
Y2lzaW9uSGFuZGxlcjptYWtlUG9saWN5RGVjaXNpb25CbG9jayhsaXN0ZW5lcikuZ2V0KCldOwog
ICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0
ZW5lcik7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGUubW0KaW5kZXggMTlkYzRiMTBhMzg1YmM1YmY2NjQ1MTQ1NjE0MjRlNzMxMGJh
YWIzOC4uMzRjYTg4ZGQzMTk2MGQxNTM5ZWYxOTllMmE4MGU3ZmIxMjdhZGIxNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRm
b3JtQ0FBbmltYXRpb25SZW1vdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KQEAgLTcz
MSw3ICs3MzEsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHlBbmltYXRp
b25zRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uJiB2YQogICAgIG1fcHJvcGVydGllcy5h
bmltYXRpb25zID0gb3RoZXIubV9wcm9wZXJ0aWVzLmFuaW1hdGlvbnM7CiB9CiAKLXN0YXRpYyBO
U09iamVjdCogYW5pbWF0aW9uVmFsdWVGcm9tS2V5ZnJhbWVWYWx1ZShjb25zdCBQbGF0Zm9ybUNB
QW5pbWF0aW9uUmVtb3RlOjpLZXlmcmFtZVZhbHVlJiBrZXlmcmFtZVZhbHVlKQorc3RhdGljIFJl
dGFpblB0cjxOU09iamVjdD4gYW5pbWF0aW9uVmFsdWVGcm9tS2V5ZnJhbWVWYWx1ZShjb25zdCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpLZXlmcmFtZVZhbHVlJiBrZXlmcmFtZVZhbHVlKQog
ewogICAgIHN3aXRjaCAoa2V5ZnJhbWVWYWx1ZS5rZXlmcmFtZVR5cGUoKSkgewogICAgIGNhc2Ug
UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6S2V5ZnJhbWVWYWx1ZTo6TnVtYmVyS2V5VHlwZToK
QEAgLTc1MCw3ICs3NTAsNyBAQCBzdGF0aWMgTlNPYmplY3QqIGFuaW1hdGlvblZhbHVlRnJvbUtl
eWZyYW1lVmFsdWUoY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZQogICAgICAgICByZXR1
cm4gW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDprZXlmcmFtZVZhbHVlLnRyYW5zZm9y
bVZhbHVlKCldOwogICAgICAgICAgICAgCiAgICAgY2FzZSBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlOjpLZXlmcmFtZVZhbHVlOjpGaWx0ZXJLZXlUeXBlOgotICAgICAgICByZXR1cm4gUGxhdGZv
cm1DQUZpbHRlcnM6OmZpbHRlclZhbHVlRm9yT3BlcmF0aW9uKGtleWZyYW1lVmFsdWUuZmlsdGVy
VmFsdWUoKSwgMCAvKiB1bnVzZWQgKi8pLmF1dG9yZWxlYXNlKCk7CisgICAgICAgIHJldHVybiBQ
bGF0Zm9ybUNBRmlsdGVyczo6ZmlsdGVyVmFsdWVGb3JPcGVyYXRpb24oa2V5ZnJhbWVWYWx1ZS5m
aWx0ZXJWYWx1ZSgpLCAwIC8qIHVudXNlZCAqLyk7CiAgICAgfQogfQogCkBAIC03NjIsOCArNzYy
LDggQEAgc3RhdGljIFJldGFpblB0cjxDQUFuaW1hdGlvbj4gY3JlYXRlQW5pbWF0aW9uKENBTGF5
ZXIgKmxheWVyLCBSZW1vdGVMYXllclRyZWVIb3MKICAgICAgICAgYXV0byBiYXNpY0FuaW1hdGlv
biA9IFtDQUJhc2ljQW5pbWF0aW9uIGFuaW1hdGlvbldpdGhLZXlQYXRoOnByb3BlcnRpZXMua2V5
UGF0aF07CiAKICAgICAgICAgaWYgKHByb3BlcnRpZXMua2V5VmFsdWVzLnNpemUoKSA+IDEpIHsK
LSAgICAgICAgICAgIFtiYXNpY0FuaW1hdGlvbiBzZXRGcm9tVmFsdWU6YW5pbWF0aW9uVmFsdWVG
cm9tS2V5ZnJhbWVWYWx1ZShwcm9wZXJ0aWVzLmtleVZhbHVlc1swXSldOwotICAgICAgICAgICAg
W2Jhc2ljQW5pbWF0aW9uIHNldFRvVmFsdWU6YW5pbWF0aW9uVmFsdWVGcm9tS2V5ZnJhbWVWYWx1
ZShwcm9wZXJ0aWVzLmtleVZhbHVlc1sxXSldOworICAgICAgICAgICAgW2Jhc2ljQW5pbWF0aW9u
IHNldEZyb21WYWx1ZTphbmltYXRpb25WYWx1ZUZyb21LZXlmcmFtZVZhbHVlKHByb3BlcnRpZXMu
a2V5VmFsdWVzWzBdKS5nZXQoKV07CisgICAgICAgICAgICBbYmFzaWNBbmltYXRpb24gc2V0VG9W
YWx1ZTphbmltYXRpb25WYWx1ZUZyb21LZXlmcmFtZVZhbHVlKHByb3BlcnRpZXMua2V5VmFsdWVz
WzFdKS5nZXQoKV07CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocHJvcGVydGllcy50aW1pbmdG
dW5jdGlvbnMuc2l6ZSgpKQpAQCAtODE1LDggKzgxNSw4IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0FB
bmltYXRpb24+IGNyZWF0ZUFuaW1hdGlvbihDQUxheWVyICpsYXllciwgUmVtb3RlTGF5ZXJUcmVl
SG9zCiAgICAgICAgIGF1dG8gc3ByaW5nQW5pbWF0aW9uID0gW0NBU3ByaW5nQW5pbWF0aW9uIGFu
aW1hdGlvbldpdGhLZXlQYXRoOnByb3BlcnRpZXMua2V5UGF0aF07CiAKICAgICAgICAgaWYgKHBy
b3BlcnRpZXMua2V5VmFsdWVzLnNpemUoKSA+IDEpIHsKLSAgICAgICAgICAgIFtzcHJpbmdBbmlt
YXRpb24gc2V0RnJvbVZhbHVlOmFuaW1hdGlvblZhbHVlRnJvbUtleWZyYW1lVmFsdWUocHJvcGVy
dGllcy5rZXlWYWx1ZXNbMF0pXTsKLSAgICAgICAgICAgIFtzcHJpbmdBbmltYXRpb24gc2V0VG9W
YWx1ZTphbmltYXRpb25WYWx1ZUZyb21LZXlmcmFtZVZhbHVlKHByb3BlcnRpZXMua2V5VmFsdWVz
WzFdKV07CisgICAgICAgICAgICBbc3ByaW5nQW5pbWF0aW9uIHNldEZyb21WYWx1ZTphbmltYXRp
b25WYWx1ZUZyb21LZXlmcmFtZVZhbHVlKHByb3BlcnRpZXMua2V5VmFsdWVzWzBdKS5nZXQoKV07
CisgICAgICAgICAgICBbc3ByaW5nQW5pbWF0aW9uIHNldFRvVmFsdWU6YW5pbWF0aW9uVmFsdWVG
cm9tS2V5ZnJhbWVWYWx1ZShwcm9wZXJ0aWVzLmtleVZhbHVlc1sxXSkuZ2V0KCldOwogICAgICAg
ICB9CiAKICAgICAgICAgaWYgKHByb3BlcnRpZXMudGltaW5nRnVuY3Rpb25zLnNpemUoKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425552</attachid>
            <date>2021-04-08 15:50:25 -0700</date>
            <delta_ts>2021-04-09 08:08:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224340-20210408155023.patch</filename>
            <type>text/plain</type>
            <size>29160</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU4MjBjZmM2NzJiNzc3
ZmQ3ZDk0MDI0MzMyNzAwYTZmNDU1ZGM2MS4uNTlmNTlkOTg2NWQzNjcxYjU1NDNjMmMwMzAzNTVm
MTMwOWQyNDA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA0LTA4ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJlZHVjZSB1c2Fn
ZSBvZiBhdXRvcmVsZWFzZSwgZml4IG1pc3Rha2VzIG5vdGljZWQgbmVhcmJ5IGNvZGUgdXNpbmcg
YXV0b3JlbGVhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNDM0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5oOiBBZGRlZCBhIHN0YXRpYyBtZW1iZXIg
ZnVuY3Rpb24gaXNJblN0cmluZ1ZhbHVlIHRvCisgICAgICAgIGhlbHAgZmFjdG9yIHRoZSBfd2Vi
X2Rlc2NyaXB0aW9uIG1ldGhvZCBiZXR0ZXIuCisKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpj
X2luc3RhbmNlLm1tOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0luc3RhbmNlOjpzdHJp
bmdWYWx1ZSBjb25zdCk6IFJlbW92ZWQgdW5uZWVkZWQgV1RGIHByZWZpeGVzLgorICAgICAgICAo
SlNDOjpCaW5kaW5nczo6T2JqY0luc3RhbmNlOjppc0luU3RyaW5nVmFsdWUpOiBBZGRlZC4KKyAg
ICAgICAgKC1bTlNPYmplY3QgX3dlYl9kZXNjcmlwdGlvbl0pOiBNb3ZlZCB0aGlzIG91dCBvZiB0
aGUgQysrIG5hbWVzcGFjZSBzaW5jZSBpdCdzIGFuCisgICAgICAgIE9iamVjdGl2ZS1DIGNsYXNz
IGltcGxlbWVudGF0aW9uLiBSZWZhY3RvcmVkIGZvciBzaW1wbGljaXR5LgorCiAyMDIxLTA0LTA4
ICBLeWxlIFBpZGRpbmd0b24gIDxrcGlkZGluZ3RvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01l
dGFsIEFOR0xFXSBjaGVjayB0byBzZWUgdGhhdCBhIE1ldGFsIGRldmljZSBpcyBhdmFpbGFibGUg
YmVmb3JlIHNlbGVjdGluZyB0aGUgYmFja2VuZC4gICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ3ZDJiZGVlZDBj
M2MzZGQ3M2ZkZjNlMDhkMWQwY2MwNmZiMjExNzYuLmY4MWE1ODZkYTQ3YjJhMDk0ZWQxOTg0YWNi
OTEwODIzNTEyNjgyMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjEtMDQtMDggIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmVkdWNlIHVz
YWdlIG9mIGF1dG9yZWxlYXNlLCBmaXggbWlzdGFrZXMgbm90aWNlZCBuZWFyYnkgY29kZSB1c2lu
ZyBhdXRvcmVsZWFzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI0MzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOiBVc2Ug
UmV0YWluUHRyPE5TVVJMUmVxdWVzdD4gaW5zdGVhZCBvZgorICAgICAgICBfX3N0cm9uZyBOU1VS
TFJlcXVlc3QqJiBmb3IgdGhlIGluL291dCBhcmd1bWVudCBvZiB0aGUKKyAgICAgICAgYXBwbHlT
bmlmZmluZ1BvbGljaWVzQW5kQmluZFJlcXVlc3RUb0luZmVyZmFjZUlmTmVlZGVkIGZ1bmN0aW9u
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjphcHBseVNuaWZmaW5n
UG9saWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZWQpOgorICAgICAgICBVcGRh
dGVkIHRvIHVzZSBSZXRhaW5QdHIgaW5zdGVhZCBvZiBfX3N0cm9uZy4gQWxzbyBmaXhlZCBzb21l
IGluY29ycmVjdCB1c2VzIG9mICVsbHUKKyAgICAgICAgdG8gbG9nIE5TVUludGVnZXIgYW5kIHVp
bnQ2NF90LCBzd2l0Y2hpbmcgdG8gIiVsdSIgKGFuZCBjYXN0aW5nIHRvIHVuc2lnbmVkIGxvbmcg
dG8KKyAgICAgICAgcmV0YWluIDMyLWJpdCBjb21wYXRpYmlsaXR5KSBhbmQgIiUiIFBSSXU2NCBy
ZXNwZWN0aXZlbHkuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3
b3JrRGF0YVRhc2tDb2NvYSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRh
c2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOiBEaXR0by4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgIChz
ZXRJZ25vcmVIU1RTKTogQWRkZWQuIEhlbHBlciBmdW5jdGlvbiBzbyB0aGUgY29kZSB0aGF0IG1h
a2VzIGEgbXV0YWJsZUNvcHkgaXMgaXNvbGF0ZWQKKyAgICAgICAgaW4gYSBoZWxwZXIgZnVuY3Rp
b24gZm9yIGNsYXJpdHkuIEEgZ29vZCBjb3VudGVycGFydCB0byB0aGUgZXhpc3RpbmcgaWdub3Jl
SFNUUyBmdW5jdGlvbi4KKyAgICAgICAgKHVwZGF0ZUlnbm9yZVN0cmljdFRyYW5zcG9ydFNlY3Vy
aXR5U2V0dGluZyk6IENoYW5nZWQgdG8gdXNlIGEgUmV0YWluUHRyPE5TVVJMUmVxdWVzdD4KKyAg
ICAgICAgaW4vb3V0IGFyZ3VtZW50IGluc3RlYWQgb2YgYW4gYXJndW1lbnQgcGx1cyBhIHJldHVy
biB2YWx1ZSwgb2J2aWF0aW5nIHRoZSBuZWVkIHRvIHVzZQorICAgICAgICBhdXRvcmVsZWFzZSBh
bmQgbWFraW5nIHRoaXMgZWFzaWVyIHRvIHJlYWQuIFVzZWQgc2V0SWdub3JlSFNUUyBmb3IgYnJl
dml0eSBpbiBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVn
YXRlIFVSTFNlc3Npb246dGFzazp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjpuZXdSZXF1ZXN0
OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICBVcGRhdGUgZm9yIGNoYW5nZSB0byB1cGRh
dGVJZ25vcmVTdHJpY3RUcmFuc3BvcnRTZWN1cml0eVNldHRpbmcuCisgICAgICAgICgtW1dLTmV0
d29ya1Nlc3Npb25EZWxlZ2F0ZSBVUkxTZXNzaW9uOnRhc2s6X3NjaGVtZVVwZ3JhZGVkOmNvbXBs
ZXRpb25IYW5kbGVyOl0pOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6cHJveHlEaWN0aW9uYXJ5
KTogUmV0dXJuIGEgUmV0YWluUHRyIGluc3RlYWQgb2Ygc29tZXRoaW5nIGF1dG9yZWxlYXNlZC4K
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2Nv
YSk6IENhbGwgZ2V0KCkgb24gdGhlIHJlc3VsdCBvZiB0aGUKKyAgICAgICAgcHJveHlEaWN0aW9u
YXJ5IGZ1bmN0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5n
Q29udGV4dENvbnRyb2xsZXIubW06CisgICAgICAgIChtYWtlUG9saWN5RGVjaXNpb25CbG9jayk6
IFJldHVybiBhIEJsb2NrUHRyIGluc3RlYWQgb2YgYW4gYXV0b3JlbGVhc2VkIGJsb2NrLgorICAg
ICAgICBBbHNvIHVzZSBhIGxhbWJkYSBhbmQgcmV0YWluV0sgZm9yIGJldHRlciBjbGFyaXR5IG9u
IGNhcHR1cmUgc2VtYW50aWNzIHJhdGhlciB0aGFuCisgICAgICAgIGRvaW5nIGEgV0tSZXRhaW4g
aW4gdGhlIGNhbGxlciBhbmQgYSBXS1JlbGVhc2UgaW4gdGhlIGJsb2NrLgorICAgICAgICAoc2V0
VXBQYWdlUG9saWN5Q2xpZW50KTogQ2FsbCBnZXQoKSBvbiB0aGUgcmVzdWx0IG9mIHRoZQorICAg
ICAgICBtYWtlUG9saWN5RGVjaXNpb25CbG9jayBmdW5jdGlvbi4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5t
bToKKyAgICAgICAgKFdlYktpdDo6YW5pbWF0aW9uVmFsdWVGcm9tS2V5ZnJhbWVWYWx1ZSk6IFJl
dHVybiBhIFJldGFpblB0ciBpbnN0ZWFkIG9mIGFuCisgICAgICAgIGF1dG9yZWxlYXNlZCBvYmpl
Y3QuCisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZUFuaW1hdGlvbik6IENhbGwgZ2V0KCkgb24gdGhl
IHJlc3VsdCBvZiB0aGUKKyAgICAgICAgYW5pbWF0aW9uVmFsdWVGcm9tS2V5ZnJhbWVWYWx1ZSBm
dW5jdGlvbi4KKwogMjAyMS0wNC0wOCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFw
cGxlLmNvbT4KIAogICAgICAgICBBZGQgdGVzdCBpbmZyYXN0cnVjdHVyZSBmb3IgYXBwIGJvdW5k
IHJlcXVlc3QgY29udGV4dCBzdHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL29iamNfaW5zdGFuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNf
aW5zdGFuY2UuaAppbmRleCBjM2NiODYxZjVhMDQ0YTY4OTgyY2RlYTgwZDY1ZTQ4ODdmODY1Y2Y2
Li5mMDMyNmM0ODc2NWU2ODEzZjBmZGVhZmZhNzkxMzE1MGIyZWZjZGQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwMywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU5LDYgKzU5LDggQEAgcHVi
bGljOgogICAgIEpTVmFsdWUgbnVtYmVyVmFsdWUoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAg
ICBKU1ZhbHVlIGJvb2xlYW5WYWx1ZSgpIGNvbnN0OwogCisgICAgc3RhdGljIGJvb2wgaXNJblN0
cmluZ1ZhbHVlKCk7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgdmlydHVhbEJlZ2lu
KCk7CiAgICAgdmlydHVhbCB2b2lkIHZpcnR1YWxFbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCmluZGV4IGI1OTVkNWExMzg1YmFlNmY3ZmIwMWRlYmMz
YTY3ODViY2UxM2E2NWEuLjM4NDgzMDUzODE5ZDQ0YTFiMDk0YzVmZTAyNmI5ZjQ1MGY5YzkwNGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUy
LDE1ICs1MiwyMiBAQAogfQogI2VuZGlmCiAKLXVzaW5nIG5hbWVzcGFjZSBKU0M6OkJpbmRpbmdz
OwotdXNpbmcgbmFtZXNwYWNlIEpTQzsKK0BpbnRlcmZhY2UgTlNPYmplY3QgKFdlYkRlc2NyaXB0
aW9uQ2F0ZWdvcnkpCistIChOU1N0cmluZyAqKV93ZWJfZGVzY3JpcHRpb247CitAZW5kCisKK25h
bWVzcGFjZSBKU0MgeworbmFtZXNwYWNlIEJpbmRpbmdzIHsKIAogc3RhdGljIFJldGFpblB0cjxO
U1N0cmluZz4mIGdsb2JhbEV4Y2VwdGlvbigpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFJldGFpblB0cjxOU1N0cmluZz4+IGV4Y2VwdGlvbjsKICAgICByZXR1cm4gZXhjZXB0aW9uOwog
fQotc3RhdGljIEpTR2xvYmFsT2JqZWN0KiBzX2V4Y2VwdGlvbkVudmlyb25tZW50OyAvLyBObyBu
ZWVkIHRvIHByb3RlY3QgdGhpcyB2YWx1ZSwgc2luY2Ugd2UganVzdCB1c2UgaXQgZm9yIGEgcG9p
bnRlciBjb21wYXJpc29uLgorCisvLyBObyBuZWVkIHRvIHByb3RlY3QgdGhpcyB2YWx1ZSwgc2lu
Y2Ugd2UganVzdCB1c2UgaXQgZm9yIGEgcG9pbnRlciBjb21wYXJpc29uLgorLy8gRklYTUU6IEEg
bmV3IG9iamVjdCBjYW4gaGFwcGVuIHRvIGJlIGVxdWFsIHRvIHRoZSBvbGQgb25lLCBzbyBldmVu
IHBvaW50ZXIgY29tcGFyaXNvbiBpcyBub3Qgc2FmZS4gTWF5YmUgd2UgY2FuIHVzZSBOZXZlckRl
c3Ryb3llZDxKU0M6OldlYWs+Pworc3RhdGljIEpTR2xvYmFsT2JqZWN0KiBzX2V4Y2VwdGlvbkVu
dmlyb25tZW50OwogCiBzdGF0aWMgSGFzaE1hcDxDRlR5cGVSZWYsIE9iamNJbnN0YW5jZSo+JiB3
cmFwcGVyQ2FjaGUoKQogewpAQCAtNzQsMTAgKzgxLDkgQEAgUnVudGltZU9iamVjdCogT2JqY0lu
c3RhbmNlOjpuZXdSdW50aW1lT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWMKICAgICByZXR1cm4gT2JqQ1J1bnRpbWVPYmplY3Q6OmNyZWF0ZShsZXhpY2FsR2xvYmFsT2Jq
ZWN0LT52bSgpLCBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPE9iakNSdW50aW1l
T2JqZWN0PihsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpcyk7CiB9CiAKLXZvaWQgT2JqY0luc3Rh
bmNlOjpzZXRHbG9iYWxFeGNlcHRpb24oTlNTdHJpbmcqIGV4Y2VwdGlvbiwgSlNHbG9iYWxPYmpl
Y3QqIGV4Y2VwdGlvbkVudmlyb25tZW50KQordm9pZCBPYmpjSW5zdGFuY2U6OnNldEdsb2JhbEV4
Y2VwdGlvbihOU1N0cmluZyAqZXhjZXB0aW9uLCBKU0dsb2JhbE9iamVjdCogZXhjZXB0aW9uRW52
aXJvbm1lbnQpCiB7CiAgICAgZ2xvYmFsRXhjZXB0aW9uKCkgPSBhZG9wdE5TKFtleGNlcHRpb24g
Y29weV0pOwotCiAgICAgc19leGNlcHRpb25FbnZpcm9ubWVudCA9IGV4Y2VwdGlvbkVudmlyb25t
ZW50OwogfQogCkBAIC00NjgsMzIgKzQ3NCwxMyBAQCBKU0M6OkpTVmFsdWUgT2JqY0luc3RhbmNl
OjpkZWZhdWx0VmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIFByZQog
ICAgIHJldHVybiB2YWx1ZU9mKGxleGljYWxHbG9iYWxPYmplY3QpOwogfQogCi1zdGF0aWMgV1RG
OjpUaHJlYWRTcGVjaWZpYzx1aW50MzJfdD4qIHNfZGVzY3JpcHRpb25EZXB0aDsKLQotQGludGVy
ZmFjZSBOU09iamVjdCAoV2ViRGVzY3JpcHRpb25DYXRlZ29yeSkKLS0gKE5TU3RyaW5nICopX3dl
Yl9kZXNjcmlwdGlvbjsKLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIE5TT2JqZWN0IChXZWJEZXNj
cmlwdGlvbkNhdGVnb3J5KQotCi0tIChOU1N0cmluZyAqKV93ZWJfZGVzY3JpcHRpb24KLXsKLSAg
ICBBU1NFUlQoc19kZXNjcmlwdGlvbkRlcHRoKTsKLSAgICBpZiAoc19kZXNjcmlwdGlvbkRlcHRo
LT5pc1NldCgpICYmICoqc19kZXNjcmlwdGlvbkRlcHRoKQotICAgICAgICByZXR1cm4gW05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8JUA+IiwgTlNTdHJpbmdGcm9tQ2xhc3MoW3NlbGYgY2xh
c3NdKV07Ci0gICAgLy8gV2UgY2FsbCBfd2ViX2Rlc2NyaXB0aW9uIGhlcmUgc2luY2UgdGhpcyBt
ZXRob2Qgc2hvdWxkIG9ubHkgYmUgY2FsbGVkCi0gICAgLy8gb25jZSB3ZSBoYXZlIGFscmVhZHkg
c3dpenpsZWQgdGhpcyBtZXRob2Qgd2l0aCB0aGUgb25lIG9uIE5TT2JqZWN0LgotICAgIC8vIFRo
dXMsIF93ZWJfZGVzY3JpcHRpb24gaXMgYWN0dWFsbHkgdGhlIG9yaWdpbmFsIGRlc2NyaXB0aW9u
IG1ldGhvZC4KLSAgICByZXR1cm4gW3NlbGYgX3dlYl9kZXNjcmlwdGlvbl07Ci19Ci0KLUBlbmQK
K3N0YXRpYyBUaHJlYWRTcGVjaWZpYzx1aW50MzJfdD4qIHNfZGVzY3JpcHRpb25EZXB0aDsKIAog
SlNDOjpKU1ZhbHVlIE9iamNJbnN0YW5jZTo6c3RyaW5nVmFsdWUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QpIGNvbnN0CiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGlu
aXRpYWxpemVEZXNjcmlwdGlvbkRlcHRoT25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoaW5p
dGlhbGl6ZURlc2NyaXB0aW9uRGVwdGhPbmNlRmxhZywgW10gewotICAgICAgICBzX2Rlc2NyaXB0
aW9uRGVwdGggPSBuZXcgV1RGOjpUaHJlYWRTcGVjaWZpYzx1aW50MzJfdD4oKTsKKyAgICAgICAg
c19kZXNjcmlwdGlvbkRlcHRoID0gbmV3IFRocmVhZFNwZWNpZmljPHVpbnQzMl90PigpOwogICAg
ICAgICAqKnNfZGVzY3JpcHRpb25EZXB0aCA9IDA7CiAKICAgICAgICAgYXV0byBkZXNjcmlwdGlv
bk1ldGhvZCA9IGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKFtOU09iamVjdCBjbGFzc10sIEBzZWxl
Y3RvcihkZXNjcmlwdGlvbikpOwpAQCAtNTA3LDYgKzQ5NCwxMSBAQCBKU0M6OkpTVmFsdWUgT2Jq
Y0luc3RhbmNlOjpzdHJpbmdWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCkgY29ucwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK2Jvb2wgT2JqY0luc3RhbmNlOjppc0lu
U3RyaW5nVmFsdWUoKQoreworICAgIHJldHVybiBzX2Rlc2NyaXB0aW9uRGVwdGggJiYgc19kZXNj
cmlwdGlvbkRlcHRoLT5pc1NldCgpICYmICoqc19kZXNjcmlwdGlvbkRlcHRoOworfQorCiBKU0M6
OkpTVmFsdWUgT2JqY0luc3RhbmNlOjpudW1iZXJWYWx1ZShKU0dsb2JhbE9iamVjdCopIGNvbnN0
CiB7CiAgICAgcmV0dXJuIGpzTnVtYmVyKDApOwpAQCAtNTIxLDMgKzUxMywyMCBAQCBKU0M6OkpT
VmFsdWUgT2JqY0luc3RhbmNlOjp2YWx1ZU9mKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0KSBjb25zdAogewogICAgIHJldHVybiBzdHJpbmdWYWx1ZShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKIH0KKworfQorfQorCitAaW1wbGVtZW50YXRpb24gTlNPYmplY3QgKFdlYkRlc2NyaXB0
aW9uQ2F0ZWdvcnkpCisKKy0gKE5TU3RyaW5nICopX3dlYl9kZXNjcmlwdGlvbgoreworICAgIGlm
IChKU0M6OkJpbmRpbmdzOjpPYmpjSW5zdGFuY2U6OmlzSW5TdHJpbmdWYWx1ZSgpKQorICAgICAg
ICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8JUA+IiwgTlNTdHJpbmdGcm9t
Q2xhc3MoW3NlbGYgY2xhc3NdKV07CisKKyAgICAvLyBDYWxsaW5nIF93ZWJfZGVzY3JpcHRpb24g
aGVyZSBpbnZva2VzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgb3JpZ2luYWwgZGVzY3JpcHRp
b24KKyAgICAvLyBtZXRob2QgZnJvbSBOU09iamVjdCwgYmVjYXVzZSB3ZSBoYXZlIGFscmVhZHkg
c3dhcHBlZCBpbXBsZW1lbnRhdGlvbnMuCisgICAgcmV0dXJuIFtzZWxmIF93ZWJfZGVzY3JpcHRp
b25dOworfQorCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKaW5kZXggNWI1NThlN2UyZWI3ODNkYmRl
OTNiNmU5YmIzMTczOGUxNzM1NTMzZi4uMzNkZTBjMDY4NGQxNTRiZDVkMDQ5OGFiMTUwYzVkYWIx
YWJhNzQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrRGF0YVRhc2tDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgog
ICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNr
Q2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViUGFnZVByb3h5SWRlbnRpZmll
ciwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlm
ZmluZ1BvbGljeSwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHks
IGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zv
ck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2
aXR5VHJhY2tlcj4sIE9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluLCBXZWJDb3JlOjpTaG91bGRSZWxheFRoaXJkUGFydHlDb29r
aWVCbG9ja2luZywgT3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBj
bURhdGFDYXJyaWVkPik7CiAKICAgICBib29sIHRyeVBhc3N3b3JkQmFzZWRBdXRoZW50aWNhdGlv
bihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBs
ZXRpb25IYW5kbGVyJik7Ci0gICAgdm9pZCBhcHBseVNuaWZmaW5nUG9saWNpZXNBbmRCaW5kUmVx
dWVzdFRvSW5mZXJmYWNlSWZOZWVkZWQoX19zdHJvbmcgTlNVUkxSZXF1ZXN0KiYsIGJvb2wgc2hv
dWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKKyAgICB2
b2lkIGFwcGx5U25pZmZpbmdQb2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRl
ZChSZXRhaW5QdHI8TlNVUkxSZXF1ZXN0PiYsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29s
IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCiAgICAgc3RhdGljIE5TSFRUUENvb2tpZVN0b3JhZ2UgKnN0YXRlbGVzc0Nv
b2tpZVN0b3JhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4IGFjYmFjZjUyMTM3ZTY5ZGI5
MGQ2NjAxMmQxMTllYThmOGQwNmUyMTAuLjMzYTg5NjExYTI4MTQ2YWIwYjE0ZDNhZjVlMWMzYTJh
ZWY3OTE2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya0RhdGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtODksNyArODksNyBAQCBzdGF0aWMg
ZmxvYXQgdG9OU1VSTFNlc3Npb25UYXNrUHJpb3JpdHkoV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJp
b3JpdHkgcHJpb3JpdHkpCiAgICAgcmV0dXJuIE5TVVJMU2Vzc2lvblRhc2tQcmlvcml0eURlZmF1
bHQ7CiB9CiAKLXZvaWQgTmV0d29ya0RhdGFUYXNrQ29jb2E6OmFwcGx5U25pZmZpbmdQb2xpY2ll
c0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRlZChfX3N0cm9uZyBOU1VSTFJlcXVlc3Qg
KiYgbnNSZXF1ZXN0LCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50
RW5jb2RpbmdTbmlmZikKK3ZvaWQgTmV0d29ya0RhdGFUYXNrQ29jb2E6OmFwcGx5U25pZmZpbmdQ
b2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRlZChSZXRhaW5QdHI8TlNVUkxS
ZXF1ZXN0PiYgbnNSZXF1ZXN0LCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRD
b250ZW50RW5jb2RpbmdTbmlmZikKIHsKICNpZiAhVVNFKENGTkVUV09SS19DT05URU5UX0VOQ09E
SU5HX1NOSUZGSU5HX09WRVJSSURFKQogICAgIFVOVVNFRF9QQVJBTShzaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZik7CkBAIC0zMzcsMjEgKzMzNywyMyBAQCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6
TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRh
VAogI2VuZGlmCiAgICAgcmVzdHJpY3RSZXF1ZXN0UmVmZXJyZXJUb09yaWdpbklmTmVlZGVkKHJl
cXVlc3QpOwogCisgICAgLy8gRklYTUU6IE9uY2Ugd2UgYXJlIGRvbmUgd2l0aCBORVRXT1JLX0RB
VEFfVEFTS19DT0NPQV9BRERJVElPTlMsIG1ha2UgbnNSZXF1ZXN0IGEgUmV0YWluUHRyIGFuZCBn
ZXQgcmlkIG9mIHByb3RlY3RlZE5TUmVxdWVzdC4KICAgICBOU1VSTFJlcXVlc3QgKm5zUmVxdWVz
dCA9IHJlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6OkhUVFBCb2R5VXBkYXRlUG9saWN5OjpV
cGRhdGVIVFRQQm9keSk7CiAKICAgICBORVRXT1JLX0RBVEFfVEFTS19DT0NPQV9BRERJVElPTlMK
IAotICAgIG1fc2Vzc2lvbi0+YXBwQm91bmROYXZpZ2F0aW9uVGVzdGluZ0RhdGEoKS51cGRhdGVB
cHBCb3VuZE5hdmlnYXRpb25UZXN0aW5nRGF0YShyZXF1ZXN0LCBjb250ZXh0U3RyaW5nKG5zUmVx
dWVzdCkpOworICAgIGF1dG8gcHJvdGVjdGVkTlNSZXF1ZXN0ID0gcmV0YWluUHRyKG5zUmVxdWVz
dCk7CisgICAgbV9zZXNzaW9uLT5hcHBCb3VuZE5hdmlnYXRpb25UZXN0aW5nRGF0YSgpLnVwZGF0
ZUFwcEJvdW5kTmF2aWdhdGlvblRlc3RpbmdEYXRhKHJlcXVlc3QsIGNvbnRleHRTdHJpbmcocHJv
dGVjdGVkTlNSZXF1ZXN0LmdldCgpKSk7CiAKLSAgICBhcHBseVNuaWZmaW5nUG9saWNpZXNBbmRC
aW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZWQobnNSZXF1ZXN0LCBzaG91bGRDb250ZW50U25p
ZmYgPT0gV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5OjpTbmlmZkNvbnRlbnQgJiYgIXVy
bC5pc0xvY2FsRmlsZSgpLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiA9PSBXZWJDb3JlOjpD
b250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYpOworICAgIGFwcGx5U25pZmZpbmdQ
b2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRlZChwcm90ZWN0ZWROU1JlcXVl
c3QsIHNob3VsZENvbnRlbnRTbmlmZiA9PSBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3k6
OlNuaWZmQ29udGVudCAmJiAhdXJsLmlzTG9jYWxGaWxlKCksIHNob3VsZENvbnRlbnRFbmNvZGlu
Z1NuaWZmID09IFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZik7
CiAKLSAgICBtX3Rhc2sgPSBbbV9zZXNzaW9uV3JhcHBlci0+c2Vzc2lvbiBkYXRhVGFza1dpdGhS
ZXF1ZXN0Om5zUmVxdWVzdF07CisgICAgbV90YXNrID0gW21fc2Vzc2lvbldyYXBwZXItPnNlc3Np
b24gZGF0YVRhc2tXaXRoUmVxdWVzdDpwcm90ZWN0ZWROU1JlcXVlc3QuZ2V0KCldOwogCiAgICAg
V1RGQmVnaW5TaWducG9zdChtX3Rhc2suZ2V0KCksICJEYXRhVGFzayIsICIle3B1YmxpY31zIHBy
aTogJS4yZiBwcmVjb25uZWN0OiAlZCIsIHVybC5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSwgdG9O
U1VSTFNlc3Npb25UYXNrUHJpb3JpdHkocmVxdWVzdC5wcmlvcml0eSgpKSwgc2hvdWxkUHJlY29u
bmVjdE9ubHkgPT0gUHJlY29ubmVjdE9ubHk6Olllcyk7CiAKICAgICBSRUxFQVNFX0FTU0VSVCgh
bV9zZXNzaW9uV3JhcHBlci0+ZGF0YVRhc2tNYXAuY29udGFpbnMoW21fdGFzayB0YXNrSWRlbnRp
Zmllcl0pKTsKICAgICBtX3Nlc3Npb25XcmFwcGVyLT5kYXRhVGFza01hcC5hZGQoW21fdGFzayB0
YXNrSWRlbnRpZmllcl0sIHRoaXMpOwotICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIiVsbHUgQ3Jl
YXRpbmcgTmV0d29ya0RhdGFUYXNrIHdpdGggVVJMICVzIiwgW21fdGFzayB0YXNrSWRlbnRpZmll
cl0sIG5zUmVxdWVzdC5VUkwuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7CisgICAgTE9HKE5l
dHdvcmtTZXNzaW9uLCAiJWx1IENyZWF0aW5nIE5ldHdvcmtEYXRhVGFzayB3aXRoIFVSTCAlcyIs
ICh1bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCBbcHJvdGVjdGVkTlNSZXF1
ZXN0IFVSTF0uYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7CiAKICAgICBpZiAoc2hvdWxkUHJl
Y29ubmVjdE9ubHkgPT0gUHJlY29ubmVjdE9ubHk6OlllcykgewogI2lmIEVOQUJMRShTRVJWRVJf
UFJFQ09OTkVDVCkKQEAgLTM2OCw5ICszNzAsOSBAQCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0
d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVAog
ICAgIGlmIChzaG91bGRCbG9ja0Nvb2tpZXMpIHsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
ICAgICAgICAgaWYgKG1fc2Vzc2lvbi0+c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSkKLSAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3
b3JrLCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6bG9nQ29va2llSW5mb3JtYXRpb246IHBh
Z2VJRD0lbGx1LCBmcmFtZUlEPSVsbHUsIHRhc2tJRD0lbHU6IEJsb2NraW5nIGNvb2tpZXMgZm9y
IFVSTCAlcyIsIHRoaXMsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksICh1
bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCBuc1JlcXVlc3QuVVJMLmFic29s
dXRlU3RyaW5nLlVURjhTdHJpbmcpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUYoaXNBbHdh
eXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIlcCAtIE5ldHdvcmtEYXRhVGFza0NvY29h
Ojpsb2dDb29raWVJbmZvcm1hdGlvbjogcGFnZUlEPSUiIFBSSXU2NCAiLCBmcmFtZUlEPSUiIFBS
SXU2NCAiLCB0YXNrSUQ9JWx1OiBCbG9ja2luZyBjb29raWVzIGZvciBVUkwgJXMiLCB0aGlzLCBw
YWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCAodW5zaWduZWQgbG9uZylbbV90
YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4U3Ry
aW5nKTsKICNlbHNlCi0gICAgICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIiVsbHUgQmxvY2tpbmcg
Y29va2llcyBmb3IgVVJMICVzIiwgW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIG5zUmVxdWVzdC5V
UkwuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7CisgICAgICAgIExPRyhOZXR3b3JrU2Vzc2lv
biwgIiVsdSBCbG9ja2luZyBjb29raWVzIGZvciBVUkwgJXMiLCAodW5zaWduZWQgbG9uZylbbV90
YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4U3Ry
aW5nKTsKICNlbmRpZgogICAgICAgICBibG9ja0Nvb2tpZXMoKTsKICAgICB9CkBAIC01MTYsOSAr
NTE4LDkgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJl
Y3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYKICAgICAgICAgdW5ibG9ja0Nvb2tpZXMo
KTsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBpZiAobV9zZXNzaW9uLT5zaG91bGRM
b2dDb29raWVJbmZvcm1hdGlvbigpKQotICAgICAgICBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09u
TG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29jb2E6Ondp
bGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uOjpsb2dDb29raWVJbmZvcm1hdGlvbjogcGFnZUlEPSVs
bHUsIGZyYW1lSUQ9JWxsdSwgdGFza0lEPSVsdTogJXMgY29va2llcyBmb3IgcmVkaXJlY3QgVVJM
ICVzIiwgdGhpcywgbV9wYWdlSUQudG9VSW50NjQoKSwgbV9mcmFtZUlELnRvVUludDY0KCksICh1
bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCAobV9oYXNCZWVuU2V0VG9Vc2VT
dGF0ZWxlc3NDb29raWVTdG9yYWdlID8gIkJsb2NraW5nIiA6ICJOb3QgYmxvY2tpbmciKSwgcmVx
dWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0df
SUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIlcCAtIE5ldHdvcmtEYXRh
VGFza0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjo6bG9nQ29va2llSW5mb3JtYXRp
b246IHBhZ2VJRD0lIiBQUkl1NjQgIiwgZnJhbWVJRD0lIiBQUkl1NjQgIiwgdGFza0lEPSVsdTog
JXMgY29va2llcyBmb3IgcmVkaXJlY3QgVVJMICVzIiwgdGhpcywgbV9wYWdlSUQudG9VSW50NjQo
KSwgbV9mcmFtZUlELnRvVUludDY0KCksICh1bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50
aWZpZXJdLCAobV9oYXNCZWVuU2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVTdG9yYWdlID8gIkJsb2Nr
aW5nIiA6ICJOb3QgYmxvY2tpbmciKSwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKICNlbHNlCi0gICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxsdSAlcyBjb29raWVzIGZv
ciByZWRpcmVjdCBVUkwgJXMiLCBbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgKG1faGFzQmVlblNl
dFRvVXNlU3RhdGVsZXNzQ29va2llU3RvcmFnZSA/ICJCbG9ja2luZyIgOiAiTm90IGJsb2NraW5n
IiksIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgTE9HKE5ldHdv
cmtTZXNzaW9uLCAiJWx1ICVzIGNvb2tpZXMgZm9yIHJlZGlyZWN0IFVSTCAlcyIsICh1bnNpZ25l
ZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCAobV9oYXNCZWVuU2V0VG9Vc2VTdGF0ZWxl
c3NDb29raWVTdG9yYWdlID8gIkJsb2NraW5nIiA6ICJOb3QgYmxvY2tpbmciKSwgcmVxdWVzdC51
cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5tbQppbmRleCBlYjJiN2Q4OTg1YTFhMzliYTFmYzQ5NDIwMDMyNTQ5MTFjODgxMWU2Li4x
YmM3YzBhOWJkZTJhZWQwOWM5ZDI0ZmI0ZThiNzQ4N2FmYjFjZWUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29h
Lm1tCkBAIC01MDQsMjkgKzUwNCwzMiBAQCBzdGF0aWMgdm9pZCBzZXRJZ25vcmVIU1RTKE5TTXV0
YWJsZVVSTFJlcXVlc3QgKnJlcXVlc3QsIGJvb2wgaWdub3JlSFNUUykKICAgICAgICAgW3JlcXVl
c3QgX3NldElnbm9yZUhTVFM6aWdub3JlSFNUU107CiB9CiAKK3N0YXRpYyB2b2lkIHNldElnbm9y
ZUhTVFMoUmV0YWluUHRyPE5TVVJMUmVxdWVzdD4mIHJlcXVlc3QsIGJvb2wgc2hvdWxkSWdub3Jl
SFNUUykKK3sKKyAgICBhdXRvIG11dGFibGVSZXF1ZXN0ID0gYWRvcHROUyhbcmVxdWVzdCBtdXRh
YmxlQ29weV0pOworICAgIHNldElnbm9yZUhTVFMobXV0YWJsZVJlcXVlc3QuZ2V0KCksIGZhbHNl
KTsKKyAgICByZXF1ZXN0ID0gbXV0YWJsZVJlcXVlc3Q7Cit9CisKIHN0YXRpYyBib29sIGlnbm9y
ZUhTVFMoTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0KQogewogICAgIHJldHVybiBbcmVxdWVzdCByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9pZ25vcmVIU1RTKV0KICAgICAgICAgJiYgW3JlcXVl
c3QgX2lnbm9yZUhTVFNdOwogfQogCi1zdGF0aWMgTlNVUkxSZXF1ZXN0KiB1cGRhdGVJZ25vcmVT
dHJpY3RUcmFuc3BvcnRTZWN1cml0eVNldHRpbmdJZk5lY2Vzc2FyeShOU1VSTFJlcXVlc3QgKnJl
cXVlc3QsIGJvb2wgc2hvdWxkSWdub3JlSFNUUykKK3N0YXRpYyB2b2lkIHVwZGF0ZUlnbm9yZVN0
cmljdFRyYW5zcG9ydFNlY3VyaXR5U2V0dGluZyhSZXRhaW5QdHI8TlNVUkxSZXF1ZXN0PiYgcmVx
dWVzdCwgYm9vbCBzaG91bGRJZ25vcmVIU1RTKQogewotICAgIGlmIChbcmVxdWVzdC5VUkwuc2No
ZW1lIGlzRXF1YWxUb1N0cmluZzpAImh0dHBzIl0gJiYgc2hvdWxkSWdub3JlSFNUUyAmJiBpZ25v
cmVIU1RTKHJlcXVlc3QpKSB7Ci0gICAgICAgIC8vIFRoZSByZXF1ZXN0IHdhcyB1cGdyYWRlZCBm
b3Igc29tZSBvdGhlciByZWFzb24gdGhhbiBIU1RTLgotICAgICAgICAvLyBEb24ndCBpZ25vcmUg
SFNUUyB0byBhdm9pZCB0aGUgcmlzayBvZiBhbm90aGVyIGRvd25ncmFkZS4KLSAgICAgICAgYXV0
byBuc011dGFibGVSZXF1ZXN0ID0gYWRvcHROUyhbcmVxdWVzdCBtdXRhYmxlQ29weV0pOwotICAg
ICAgICBzZXRJZ25vcmVIU1RTKG5zTXV0YWJsZVJlcXVlc3QuZ2V0KCksIGZhbHNlKTsKLSAgICAg
ICAgcmV0dXJuIG5zTXV0YWJsZVJlcXVlc3QuYXV0b3JlbGVhc2UoKTsKLSAgICB9Ci0gICAgCi0g
ICAgaWYgKFtyZXF1ZXN0LlVSTC5zY2hlbWUgaXNFcXVhbFRvU3RyaW5nOkAiaHR0cCJdICYmIGln
bm9yZUhTVFMocmVxdWVzdCkgIT0gc2hvdWxkSWdub3JlSFNUUykgewotICAgICAgICBhdXRvIG5z
TXV0YWJsZVJlcXVlc3QgPSBhZG9wdE5TKFtyZXF1ZXN0IG11dGFibGVDb3B5XSk7Ci0gICAgICAg
IHNldElnbm9yZUhTVFMobnNNdXRhYmxlUmVxdWVzdC5nZXQoKSwgc2hvdWxkSWdub3JlSFNUUyk7
Ci0gICAgICAgIHJldHVybiBuc011dGFibGVSZXF1ZXN0LmF1dG9yZWxlYXNlKCk7CisgICAgYXV0
byBzY2hlbWUgPSByZXF1ZXN0LmdldCgpLlVSTC5zY2hlbWU7CisgICAgaWYgKFtzY2hlbWUgaXNF
cXVhbFRvU3RyaW5nOkAiaHR0cHMiXSkgeworICAgICAgICBpZiAoc2hvdWxkSWdub3JlSFNUUyAm
JiBpZ25vcmVIU1RTKHJlcXVlc3QuZ2V0KCkpKSB7CisgICAgICAgICAgICAvLyBUaGUgcmVxdWVz
dCB3YXMgdXBncmFkZWQgZm9yIHNvbWUgb3RoZXIgcmVhc29uIHRoYW4gSFNUUy4KKyAgICAgICAg
ICAgIC8vIERvbid0IGlnbm9yZSBIU1RTIHRvIGF2b2lkIHRoZSByaXNrIG9mIGFub3RoZXIgZG93
bmdyYWRlLgorICAgICAgICAgICAgc2V0SWdub3JlSFNUUyhyZXF1ZXN0LCBmYWxzZSk7CisgICAg
ICAgIH0KKyAgICB9IGVsc2UgaWYgKFtzY2hlbWUgaXNFcXVhbFRvU3RyaW5nOkAiaHR0cCJdKSB7
CisgICAgICAgIGlmIChpZ25vcmVIU1RTKHJlcXVlc3QuZ2V0KCkpICE9IHNob3VsZElnbm9yZUhT
VFMpCisgICAgICAgICAgICBzZXRJZ25vcmVIU1RTKHJlcXVlc3QsIHNob3VsZElnbm9yZUhTVFMp
OwogICAgIH0KLQotICAgIHJldHVybiByZXF1ZXN0OwogfQogCiAtICh2b2lkKVVSTFNlc3Npb246
KE5TVVJMU2Vzc2lvbiAqKXNlc3Npb24gdGFzazooTlNVUkxTZXNzaW9uVGFzayAqKXRhc2sgd2ls
bFBlcmZvcm1IVFRQUmVkaXJlY3Rpb246KE5TSFRUUFVSTFJlc3BvbnNlICopcmVzcG9uc2UgbmV3
UmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
XikoTlNVUkxSZXF1ZXN0ICopKWNvbXBsZXRpb25IYW5kbGVyCkBAIC01NTUsOSArNTU4LDkgQEAg
LSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzZXNzaW9uIHRhc2s6KE5TVVJMU2Vz
c2lvblRhc2sgKil0YXNrIHdpbGxQZXIKICNlbHNlCiAgICAgICAgICAgICBVTlVTRURfUEFSQU0o
dGFza0lkZW50aWZpZXIpOwogI2VuZGlmCi0gICAgICAgICAgICBhdXRvIG5zUmVxdWVzdCA9IHJl
cXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6OkhUVFBCb2R5VXBkYXRlUG9saWN5OjpVcGRhdGVI
VFRQQm9keSk7Ci0gICAgICAgICAgICBuc1JlcXVlc3QgPSB1cGRhdGVJZ25vcmVTdHJpY3RUcmFu
c3BvcnRTZWN1cml0eVNldHRpbmdJZk5lY2Vzc2FyeShuc1JlcXVlc3QsIHNob3VsZElnbm9yZUhT
VFMpOwotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobnNSZXF1ZXN0KTsKKyAgICAgICAg
ICAgIGF1dG8gbnNSZXF1ZXN0ID0gcmV0YWluUHRyKHJlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNv
cmU6OkhUVFBCb2R5VXBkYXRlUG9saWN5OjpVcGRhdGVIVFRQQm9keSkpOworICAgICAgICAgICAg
dXBkYXRlSWdub3JlU3RyaWN0VHJhbnNwb3J0U2VjdXJpdHlTZXR0aW5nKG5zUmVxdWVzdCwgc2hv
dWxkSWdub3JlSFNUUyk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihuc1JlcXVlc3Qu
Z2V0KCkpOwogICAgICAgICB9KTsKICAgICB9IGVsc2UgewogICAgICAgICBMT0coTmV0d29ya1Nl
c3Npb24sICIlbGx1IHdpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uIGNvbXBsZXRpb25IYW5kbGVy
IChuaWwpIiwgdGFza0lkZW50aWZpZXIpOwpAQCAtNTkwLDkgKzU5Myw5IEBAIC0gKHZvaWQpVVJM
U2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiB0YXNrOihOU1VSTFNlc3Npb25UYXNrKil0
YXNrIF9zY2hlbWVVCiAjZWxzZQogICAgICAgICAgICAgVU5VU0VEX1BBUkFNKHRhc2tJZGVudGlm
aWVyKTsKICNlbmRpZgotICAgICAgICAgICAgYXV0byBuc1JlcXVlc3QgPSByZXF1ZXN0Lm5zVVJM
UmVxdWVzdChXZWJDb3JlOjpIVFRQQm9keVVwZGF0ZVBvbGljeTo6VXBkYXRlSFRUUEJvZHkpOwot
ICAgICAgICAgICAgbnNSZXF1ZXN0ID0gdXBkYXRlSWdub3JlU3RyaWN0VHJhbnNwb3J0U2VjdXJp
dHlTZXR0aW5nSWZOZWNlc3NhcnkobnNSZXF1ZXN0LCBzaG91bGRJZ25vcmVIU1RTKTsKLSAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG5zUmVxdWVzdCk7CisgICAgICAgICAgICBhdXRvIG5z
UmVxdWVzdCA9IHJldGFpblB0cihyZXF1ZXN0Lm5zVVJMUmVxdWVzdChXZWJDb3JlOjpIVFRQQm9k
eVVwZGF0ZVBvbGljeTo6VXBkYXRlSFRUUEJvZHkpKTsKKyAgICAgICAgICAgIHVwZGF0ZUlnbm9y
ZVN0cmljdFRyYW5zcG9ydFNlY3VyaXR5U2V0dGluZyhuc1JlcXVlc3QsIHNob3VsZElnbm9yZUhT
VFMpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobnNSZXF1ZXN0LmdldCgpKTsKICAg
ICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxs
dSBfc2NoZW1lVXBncmFkZWQgY29tcGxldGlvbkhhbmRsZXIgKG5pbCkiLCB0YXNrSWRlbnRpZmll
cik7CkBAIC0xMTA1LDcgKzExMDgsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Nlc3Npb24+
IE5ldHdvcmtTZXNzaW9uQ29jb2E6OmNyZWF0ZShOZXR3b3JrUHJvY2VzcyYgbmV0dwogICAgIHJl
dHVybiBtYWtlVW5pcXVlPE5ldHdvcmtTZXNzaW9uQ29jb2E+KG5ldHdvcmtQcm9jZXNzLCBXVEZN
b3ZlKHBhcmFtZXRlcnMpKTsKIH0KIAotc3RhdGljIE5TRGljdGlvbmFyeSAqcHJveHlEaWN0aW9u
YXJ5KGNvbnN0IFVSTCYgaHR0cFByb3h5LCBjb25zdCBVUkwmIGh0dHBzUHJveHkpCitzdGF0aWMg
UmV0YWluUHRyPE5TRGljdGlvbmFyeT4gcHJveHlEaWN0aW9uYXJ5KGNvbnN0IFVSTCYgaHR0cFBy
b3h5LCBjb25zdCBVUkwmIGh0dHBzUHJveHkpCiB7CiAgICAgaWYgKCFodHRwUHJveHkuaXNWYWxp
ZCgpICYmICFodHRwc1Byb3h5LmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTEx
MjMsNyArMTEyNiw3IEBAIHN0YXRpYyBOU0RpY3Rpb25hcnkgKnByb3h5RGljdGlvbmFyeShjb25z
dCBVUkwmIGh0dHBQcm94eSwgY29uc3QgVVJMJiBodHRwc1Byb3h5CiAgICAgICAgIGlmIChhdXRv
IHBvcnQgPSBodHRwc1Byb3h5LnBvcnQoKSkKICAgICAgICAgICAgIFtkaWN0aW9uYXJ5IHNldE9i
amVjdDpAKCpwb3J0KSBmb3JLZXk6KE5TU3RyaW5nICopa0NGU3RyZWFtUHJvcGVydHlIVFRQU1By
b3h5UG9ydF07CiAgICAgfQotICAgIHJldHVybiBkaWN0aW9uYXJ5LmF1dG9yZWxlYXNlKCk7Cisg
ICAgcmV0dXJuIGRpY3Rpb25hcnk7CiAKICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIH0KQEAgLTEyMzUsNyArMTIzOCw3IEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdv
cmtTZXNzaW9uQ29jb2EoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrCiAK
ICAgICBjb25maWd1cmF0aW9uLl9wcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9u
ID0gcGFyYW1ldGVycy5wcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uOwogICAg
IGNvbmZpZ3VyYXRpb24uX3JlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb24gPSBwYXJh
bWV0ZXJzLnJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb247Ci0gICAgY29uZmlndXJh
dGlvbi5jb25uZWN0aW9uUHJveHlEaWN0aW9uYXJ5ID0gKE5TRGljdGlvbmFyeSAqKXBhcmFtZXRl
cnMucHJveHlDb25maWd1cmF0aW9uLmdldCgpID86IHByb3h5RGljdGlvbmFyeShwYXJhbWV0ZXJz
Lmh0dHBQcm94eSwgcGFyYW1ldGVycy5odHRwc1Byb3h5KTsKKyAgICBjb25maWd1cmF0aW9uLmNv
bm5lY3Rpb25Qcm94eURpY3Rpb25hcnkgPSAoTlNEaWN0aW9uYXJ5ICopcGFyYW1ldGVycy5wcm94
eUNvbmZpZ3VyYXRpb24uZ2V0KCkgPzogcHJveHlEaWN0aW9uYXJ5KHBhcmFtZXRlcnMuaHR0cFBy
b3h5LCBwYXJhbWV0ZXJzLmh0dHBzUHJveHkpLmdldCgpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBpZiAoIW1fZGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZS5pc0VtcHR5KCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
QnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQppbmRleCA0OGM3NTEwZDRiNjFhNmQ1MmFiZmU2
OWNkMGJjZjM3ZDFhYzliNWQxLi5mMzYwYjQyZDk1NTk3MTc4OTA2ZDc5NjEwZmM0NjlmZDE2MGFm
ZjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0KQEAgLTQ1OSwyNyArNDU5LDIx
IEBAIHN0YXRpYyB2b2lkIHNldFVwUGFnZUxvYWRlckNsaWVudChXS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dCwKICAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNs
aWVudCh0b0FQSSgmcGFnZSksICZsb2FkZXJDbGllbnQuYmFzZSk7CiB9CiAKLXN0YXRpYyBXS1Bv
bGljeURlY2lzaW9uSGFuZGxlciBtYWtlUG9saWN5RGVjaXNpb25CbG9jayhXS0ZyYW1lUG9saWN5
TGlzdGVuZXJSZWYgbGlzdGVuZXIpCitzdGF0aWMgQmxvY2tQdHI8dm9pZChXS1BvbGljeURlY2lz
aW9uKT4gbWFrZVBvbGljeURlY2lzaW9uQmxvY2soV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxp
c3RlbmVyKQogewotICAgIFdLUmV0YWluKGxpc3RlbmVyKTsgLy8gUmVsZWFzZWQgaW4gdGhlIGRl
Y2lzaW9uIGhhbmRsZXIgYmVsb3cuCi0KLSAgICByZXR1cm4gYWRvcHROUyhbXihXS1BvbGljeURl
Y2lzaW9uIGRlY2lzaW9uKSB7CisgICAgcmV0dXJuIG1ha2VCbG9ja1B0cihbbGlzdGVuZXIgPSBy
ZXRhaW5XSyhsaXN0ZW5lcildKFdLUG9saWN5RGVjaXNpb24gZGVjaXNpb24pIHsKICAgICAgICAg
c3dpdGNoIChkZWNpc2lvbikgewogICAgICAgICBjYXNlIFdLUG9saWN5RGVjaXNpb25DYW5jZWw6
Ci0gICAgICAgICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJJZ25vcmUobGlzdGVuZXIpOyAgICAg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJJZ25vcmUo
bGlzdGVuZXIuZ2V0KCkpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIAogICAgICAgICBj
YXNlIFdLUG9saWN5RGVjaXNpb25BbGxvdzoKLSAgICAgICAgICAgIFdLRnJhbWVQb2xpY3lMaXN0
ZW5lclVzZShsaXN0ZW5lcik7CisgICAgICAgICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2Uo
bGlzdGVuZXIuZ2V0KCkpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIAogICAgICAgICBj
YXNlIFdLUG9saWN5RGVjaXNpb25CZWNvbWVEb3dubG9hZDoKLSAgICAgICAgICAgIFdLRnJhbWVQ
b2xpY3lMaXN0ZW5lckRvd25sb2FkKGxpc3RlbmVyKTsKKyAgICAgICAgICAgIFdLRnJhbWVQb2xp
Y3lMaXN0ZW5lckRvd25sb2FkKGxpc3RlbmVyLmdldCgpKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9OwotCi0gICAgICAgIFdLUmVsZWFzZShsaXN0ZW5lcik7IC8vIFJldGFpbmVkIGlu
IHRoZSBjb250ZXh0IGFib3ZlLgotICAgIH0gY29weV0pLmF1dG9yZWxlYXNlKCk7CisgICAgfSk7
CiB9CiAKIHN0YXRpYyB2b2lkIHNldFVwUGFnZVBvbGljeUNsaWVudChXS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dCwgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2Up
CkBAIC01MTIsNyArNTA2LDcgQEAgc3RhdGljIHZvaWQgc2V0VXBQYWdlUG9saWN5Q2xpZW50KFdL
QnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0LAogICAgICAgICAgICAg
ICAgIFsoTlNNdXRhYmxlRGljdGlvbmFyeSAqKWFjdGlvbkRpY3Rpb25hcnkuZ2V0KCkgc2V0T2Jq
ZWN0OltOU1VSTCBfd2ViX1VSTFdpdGhXVEZTdHJpbmc6V2ViS2l0Ojp0b0ltcGwob3JpZ2luYXRp
bmdGcmFtZSktPnVybCgpLnN0cmluZygpXSBmb3JLZXk6V0tBY3Rpb25PcmlnaW5hdGluZ0ZyYW1l
VVJMS2V5XTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICAgICAgW3BvbGlj
eURlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6YnJvd3NpbmdDb250ZXh0IGRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246YWN0aW9uRGljdGlvbmFyeS5nZXQoKSBkZWNpc2lv
bkhhbmRsZXI6bWFrZVBvbGljeURlY2lzaW9uQmxvY2sobGlzdGVuZXIpXTsKKyAgICAgICAgICAg
IFtwb2xpY3lEZWxlZ2F0ZSBicm93c2luZ0NvbnRleHRDb250cm9sbGVyOmJyb3dzaW5nQ29udGV4
dCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmFjdGlvbkRpY3Rpb25hcnkuZ2V0KCkg
ZGVjaXNpb25IYW5kbGVyOm1ha2VQb2xpY3lEZWNpc2lvbkJsb2NrKGxpc3RlbmVyKS5nZXQoKV07
CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxp
c3RlbmVyKTsKICAgICB9OwpAQCAtNTM0LDcgKzUyOCw3IEBAIHN0YXRpYyB2b2lkIHNldFVwUGFn
ZVBvbGljeUNsaWVudChXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4
dCwKICAgICAgICAgICAgICAgICBXS0FjdGlvbkZyYW1lTmFtZUtleTogV2ViS2l0Ojp0b0ltcGwo
ZnJhbWVOYW1lKS0+d3JhcHBlcigpCiAgICAgICAgICAgICB9OwogICAgICAgICAgICAgCi0gICAg
ICAgICAgICBbcG9saWN5RGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpicm93c2lu
Z0NvbnRleHQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uOmFjdGlvbkRpY3Rpb25hcnkg
ZGVjaXNpb25IYW5kbGVyOm1ha2VQb2xpY3lEZWNpc2lvbkJsb2NrKGxpc3RlbmVyKV07CisgICAg
ICAgICAgICBbcG9saWN5RGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpicm93c2lu
Z0NvbnRleHQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uOmFjdGlvbkRpY3Rpb25hcnkg
ZGVjaXNpb25IYW5kbGVyOm1ha2VQb2xpY3lEZWNpc2lvbkJsb2NrKGxpc3RlbmVyKS5nZXQoKV07
CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxp
c3RlbmVyKTsKICAgICB9OwpAQCAtNTU0LDcgKzU0OCw3IEBAIHN0YXRpYyB2b2lkIHNldFVwUGFn
ZVBvbGljeUNsaWVudChXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4
dCwKICAgICAgICAgICAgICAgICBXS0FjdGlvbkNhblNob3dNSU1FVHlwZUtleTogQChjYW5TaG93
TUlNRVR5cGUpLAogICAgICAgICAgICAgfTsKIAotICAgICAgICAgICAgW3BvbGljeURlbGVnYXRl
IGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6YnJvd3NpbmdDb250ZXh0IGRlY2lkZVBvbGljeUZv
clJlc3BvbnNlQWN0aW9uOmFjdGlvbkRpY3Rpb25hcnkgZGVjaXNpb25IYW5kbGVyOm1ha2VQb2xp
Y3lEZWNpc2lvbkJsb2NrKGxpc3RlbmVyKV07CisgICAgICAgICAgICBbcG9saWN5RGVsZWdhdGUg
YnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpicm93c2luZ0NvbnRleHQgZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VBY3Rpb246YWN0aW9uRGljdGlvbmFyeSBkZWNpc2lvbkhhbmRsZXI6bWFrZVBvbGlj
eURlY2lzaW9uQmxvY2sobGlzdGVuZXIpLmdldCgpXTsKICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOwogICAgIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCmluZGV4IDE5
ZGM0YjEwYTM4NWJjNWJmNjY0NTE0NTYxNDI0ZTczMTBiYWFiMzguLjM0Y2E4OGRkMzE5NjBkMTUz
OWVmMTk5ZTJhODBlN2ZiMTI3YWRiMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9Q
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCkBAIC03MzEsNyArNzMxLDcgQEAgdm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpjb3B5QW5pbWF0aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1D
QUFuaW1hdGlvbiYgdmEKICAgICBtX3Byb3BlcnRpZXMuYW5pbWF0aW9ucyA9IG90aGVyLm1fcHJv
cGVydGllcy5hbmltYXRpb25zOwogfQogCi1zdGF0aWMgTlNPYmplY3QqIGFuaW1hdGlvblZhbHVl
RnJvbUtleWZyYW1lVmFsdWUoY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6S2V5ZnJh
bWVWYWx1ZSYga2V5ZnJhbWVWYWx1ZSkKK3N0YXRpYyBSZXRhaW5QdHI8TlNPYmplY3Q+IGFuaW1h
dGlvblZhbHVlRnJvbUtleWZyYW1lVmFsdWUoY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90
ZTo6S2V5ZnJhbWVWYWx1ZSYga2V5ZnJhbWVWYWx1ZSkKIHsKICAgICBzd2l0Y2ggKGtleWZyYW1l
VmFsdWUua2V5ZnJhbWVUeXBlKCkpIHsKICAgICBjYXNlIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1v
dGU6OktleWZyYW1lVmFsdWU6Ok51bWJlcktleVR5cGU6CkBAIC03NTAsNyArNzUwLDcgQEAgc3Rh
dGljIE5TT2JqZWN0KiBhbmltYXRpb25WYWx1ZUZyb21LZXlmcmFtZVZhbHVlKGNvbnN0IFBsYXRm
b3JtQ0FBbmltYXRpb25SZW1vdGUKICAgICAgICAgcmV0dXJuIFtOU1ZhbHVlIHZhbHVlV2l0aENB
VHJhbnNmb3JtM0Q6a2V5ZnJhbWVWYWx1ZS50cmFuc2Zvcm1WYWx1ZSgpXTsKICAgICAgICAgICAg
IAogICAgIGNhc2UgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6S2V5ZnJhbWVWYWx1ZTo6Rmls
dGVyS2V5VHlwZToKLSAgICAgICAgcmV0dXJuIFBsYXRmb3JtQ0FGaWx0ZXJzOjpmaWx0ZXJWYWx1
ZUZvck9wZXJhdGlvbihrZXlmcmFtZVZhbHVlLmZpbHRlclZhbHVlKCksIDAgLyogdW51c2VkICov
KS5hdXRvcmVsZWFzZSgpOworICAgICAgICByZXR1cm4gUGxhdGZvcm1DQUZpbHRlcnM6OmZpbHRl
clZhbHVlRm9yT3BlcmF0aW9uKGtleWZyYW1lVmFsdWUuZmlsdGVyVmFsdWUoKSwgMCAvKiB1bnVz
ZWQgKi8pOwogICAgIH0KIH0KIApAQCAtNzYyLDggKzc2Miw4IEBAIHN0YXRpYyBSZXRhaW5QdHI8
Q0FBbmltYXRpb24+IGNyZWF0ZUFuaW1hdGlvbihDQUxheWVyICpsYXllciwgUmVtb3RlTGF5ZXJU
cmVlSG9zCiAgICAgICAgIGF1dG8gYmFzaWNBbmltYXRpb24gPSBbQ0FCYXNpY0FuaW1hdGlvbiBh
bmltYXRpb25XaXRoS2V5UGF0aDpwcm9wZXJ0aWVzLmtleVBhdGhdOwogCiAgICAgICAgIGlmIChw
cm9wZXJ0aWVzLmtleVZhbHVlcy5zaXplKCkgPiAxKSB7Ci0gICAgICAgICAgICBbYmFzaWNBbmlt
YXRpb24gc2V0RnJvbVZhbHVlOmFuaW1hdGlvblZhbHVlRnJvbUtleWZyYW1lVmFsdWUocHJvcGVy
dGllcy5rZXlWYWx1ZXNbMF0pXTsKLSAgICAgICAgICAgIFtiYXNpY0FuaW1hdGlvbiBzZXRUb1Zh
bHVlOmFuaW1hdGlvblZhbHVlRnJvbUtleWZyYW1lVmFsdWUocHJvcGVydGllcy5rZXlWYWx1ZXNb
MV0pXTsKKyAgICAgICAgICAgIFtiYXNpY0FuaW1hdGlvbiBzZXRGcm9tVmFsdWU6YW5pbWF0aW9u
VmFsdWVGcm9tS2V5ZnJhbWVWYWx1ZShwcm9wZXJ0aWVzLmtleVZhbHVlc1swXSkuZ2V0KCldOwor
ICAgICAgICAgICAgW2Jhc2ljQW5pbWF0aW9uIHNldFRvVmFsdWU6YW5pbWF0aW9uVmFsdWVGcm9t
S2V5ZnJhbWVWYWx1ZShwcm9wZXJ0aWVzLmtleVZhbHVlc1sxXSkuZ2V0KCldOwogICAgICAgICB9
CiAKICAgICAgICAgaWYgKHByb3BlcnRpZXMudGltaW5nRnVuY3Rpb25zLnNpemUoKSkKQEAgLTgx
NSw4ICs4MTUsOCBAQCBzdGF0aWMgUmV0YWluUHRyPENBQW5pbWF0aW9uPiBjcmVhdGVBbmltYXRp
b24oQ0FMYXllciAqbGF5ZXIsIFJlbW90ZUxheWVyVHJlZUhvcwogICAgICAgICBhdXRvIHNwcmlu
Z0FuaW1hdGlvbiA9IFtDQVNwcmluZ0FuaW1hdGlvbiBhbmltYXRpb25XaXRoS2V5UGF0aDpwcm9w
ZXJ0aWVzLmtleVBhdGhdOwogCiAgICAgICAgIGlmIChwcm9wZXJ0aWVzLmtleVZhbHVlcy5zaXpl
KCkgPiAxKSB7Ci0gICAgICAgICAgICBbc3ByaW5nQW5pbWF0aW9uIHNldEZyb21WYWx1ZTphbmlt
YXRpb25WYWx1ZUZyb21LZXlmcmFtZVZhbHVlKHByb3BlcnRpZXMua2V5VmFsdWVzWzBdKV07Ci0g
ICAgICAgICAgICBbc3ByaW5nQW5pbWF0aW9uIHNldFRvVmFsdWU6YW5pbWF0aW9uVmFsdWVGcm9t
S2V5ZnJhbWVWYWx1ZShwcm9wZXJ0aWVzLmtleVZhbHVlc1sxXSldOworICAgICAgICAgICAgW3Nw
cmluZ0FuaW1hdGlvbiBzZXRGcm9tVmFsdWU6YW5pbWF0aW9uVmFsdWVGcm9tS2V5ZnJhbWVWYWx1
ZShwcm9wZXJ0aWVzLmtleVZhbHVlc1swXSkuZ2V0KCldOworICAgICAgICAgICAgW3NwcmluZ0Fu
aW1hdGlvbiBzZXRUb1ZhbHVlOmFuaW1hdGlvblZhbHVlRnJvbUtleWZyYW1lVmFsdWUocHJvcGVy
dGllcy5rZXlWYWx1ZXNbMV0pLmdldCgpXTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChwcm9w
ZXJ0aWVzLnRpbWluZ0Z1bmN0aW9ucy5zaXplKCkpIHsK
</data>
<flag name="review"
          id="445540"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>