<?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>176032</bug_id>
          
          <creation_ts>2017-08-28 12:10:19 -0700</creation_ts>
          <short_desc>[Cocoa] Upstream CFNetwork-related WebKitSystemInterface functions</short_desc>
          <delta_ts>2017-08-28 15:23:48 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1342881</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-28 12:10:19 -0700</bug_when>
    <thetext>[Cocoa] Upstream CFNetwork-related WebKitSystemInterface functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342889</commentid>
    <comment_count>1</comment_count>
      <attachid>319192</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-28 12:19:52 -0700</bug_when>
    <thetext>Created attachment 319192
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342895</commentid>
    <comment_count>2</comment_count>
      <attachid>319194</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-28 12:44:19 -0700</bug_when>
    <thetext>Created attachment 319194
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342897</commentid>
    <comment_count>3</comment_count>
      <attachid>319196</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-28 12:53:42 -0700</bug_when>
    <thetext>Created attachment 319196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342918</commentid>
    <comment_count>4</comment_count>
      <attachid>319200</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-28 13:35:43 -0700</bug_when>
    <thetext>Created attachment 319200
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342926</commentid>
    <comment_count>5</comment_count>
      <attachid>319200</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-08-28 13:50:11 -0700</bug_when>
    <thetext>Comment on attachment 319200
Patch

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

&gt; Source/WebCore/platform/network/mac/CookieJarMac.mm:276
&gt; +static unsigned httpCookieAcceptPolicy(CFHTTPCookieStorageRef cookieStorage)

Let&apos;s have this return a HTTPCookieAcceptPolicy

&gt; Source/WebCore/platform/network/mac/CookieJarMac.mm:279
&gt; +        // FIXME: The fallback to NSHTTPCookieStorage should not be present when USE(CFNETWORK) is defined in WebKit.

This is an old comment.  We renamed this to USE(CFURLCONNECTION), and I&apos;m not sure if that applies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342949</commentid>
    <comment_count>6</comment_count>
      <attachid>319209</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-28 14:40:28 -0700</bug_when>
    <thetext>Created attachment 319209
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342964</commentid>
    <comment_count>7</comment_count>
      <attachid>319209</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-28 15:23:12 -0700</bug_when>
    <thetext>Comment on attachment 319209
Patch

Clearing flags on attachment: 319209

Committed r221276: &lt;http://trac.webkit.org/changeset/221276&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342965</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-28 15:23:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342966</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-28 15:23:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/34119907&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319192</attachid>
            <date>2017-08-28 12:19:52 -0700</date>
            <delta_ts>2017-08-28 12:44:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176032-20170828121951.patch</filename>
            <type>text/plain</type>
            <size>26604</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlhYTc4MGQ4OGNiMzc2
YTQ1ZWVmOTQ5ODI5OTQyNmIxODE5MWQ5Ny4uNzg0M2Y5MDY1MzViY2E2NzVmMDYxOGU3ZjgxOWQw
ZjA0MDRhYzI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE3LTA4LTI4ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFVwc3RyZWFtIENG
TmV0d29yay1yZWxhdGVkIFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjAzMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dl
YkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
UHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L1Jlc291cmNlUmVxdWVzdENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0OjpzZXRTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpjb3B5UmVxdWVzdFdp
dGhTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRSZXNwb25zZUZvclJl
cXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6Omh0dHBDb29raWVzKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEhU
VFBDb29raWVzRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OmRlbGV0ZUhUVFBDb29raWUpOgor
ICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlQWxsSFRUUENvb2tpZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0Q29va2llc0Zyb21ET00pOgorICAgICAgICAoV2ViQ29yZTo6aHR0cENvb2tpZUFjY2Vw
dFBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRW5hYmxlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpkZWxldGVDb29raWUpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0SG9zdG5hbWVzV2l0
aENvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlQWxsQ29va2llcyk6CisgICAgICAg
IChXZWJDb3JlOjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24pOgorCiAyMDE3LTA4LTI4ICBDYXJs
b3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
VEtdIFtXUEVdIFJlbmFtZSBFdmVudEhhbmRsZXJHbGliIHRvIEV2ZW50SGFuZGxlckdMaWIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggM2I5NTg0Mjg1MDNhMWJjN2E0MTY3YjRkY2Q4M2RhZGJhOTUwODU2YS4uMTE4Mjkx
NTZkOWI5YjVlMmZmMGRlZWVkNTkxZTk4MzA3Y2EzMzY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAxNy0wOC0yOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAg
ICAgW0NvY29hXSBVcHN0cmVhbSBDRk5ldHdvcmstcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzYwMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAo
V2ViS2l0Ojpwcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2Vi
Q29yZVN5c3RlbUludGVyZmFjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9X
ZWJQYWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwbGF0Zm9ybUhhc0xvY2Fs
RGF0YUZvclVSTCk6CisgICAgICAgIChXZWJLaXQ6OmNhY2hlZFJlc3BvbnNlRm9yVVJMKToKKwog
MjAxNy0wOC0yOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgV2ViRHJpdmVyOiBpbXBsZW1lbnQgc2NyZWVuIGNhcHR1cmUgY29tbWFuZHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA5N2I0ZGY4Y2MzYzYyNzk3NjZhMmFkYTc5YWE3
YjRkNDczMGQ2ZjM4Li5kYzI0ZDc4ZDYwNDk4MzdhYTIwYmJlMTE3OWNjZDAxNWE5MzBlMGYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDgtMjgg
IEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gVXBzdHJl
YW0gQ0ZOZXR3b3JrLXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDMyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUlu
dGVyZmFjZSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJW
aWV3IF9jYWNoZWRSZXNwb25zZUZvclVSTDpdKToKKwogMjAxNy0wOC0yNyAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBQaWNraW5nIGFuIGVtb2ppIHZp
YSB0aGUgZW1vamkgZGlhbG9nIChDdHJsK0NtZCtTcGFjZSkgZmlyZXMgaW5jb25zaXN0ZW50IGJl
Zm9yZWlucHV0IGV2ZW50cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MubW0KaW5kZXggOGU0MGNmMzBhOGUxNmNiZDZh
MDM5MWYyM2ZmZmVhNTkxY2U2ZTk5YS4uYTcyZjliYzBjODUwMTVlMDQ4ZWI4YmI1Y2E3MjA0OTZk
ZjQ2MTVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVT
eXN0ZW1JbnRlcmZhY2VJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MubW0KQEAgLTM5LDE0ICszOSw2IEBAIFdFQkNPUkVfRVhQ
T1JUIENGSFRUUE1lc3NhZ2VSZWYgKCp3a0NvcHlDT05ORUNUUHJveHlSZXNwb25zZSkoQ0ZSZWFk
U3RyZWFtUmVmLCBDCiBXRUJDT1JFX0VYUE9SVCB2b2lkICgqd2tTZXRMYXllckNvbnRlbnRzU2Nh
bGUpKENBTGF5ZXIgKik7CiBXRUJDT1JFX0VYUE9SVCBDRlN0cmluZ0VuY29kaW5nICgqd2tHZXRX
ZWJEZWZhdWx0Q0ZTdHJpbmdFbmNvZGluZykodm9pZCk7CiAKLVdFQkNPUkVfRVhQT1JUIENGVVJM
U3RvcmFnZVNlc3Npb25SZWYgKCp3a0NyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbikoQ0ZTdHJp
bmdSZWYpOwotV0VCQ09SRV9FWFBPUlQgTlNVUkxSZXF1ZXN0KiAoKndrQ29weVJlcXVlc3RXaXRo
U3RvcmFnZVNlc3Npb24pKENGVVJMU3RvcmFnZVNlc3Npb25SZWYsIE5TVVJMUmVxdWVzdCopOwot
V0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgKCp3a0dldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpKENG
SFRUUENvb2tpZVN0b3JhZ2VSZWYpOwotV0VCQ09SRV9FWFBPUlQgTlNBcnJheSAqKCp3a0hUVFBD
b29raWVzKShDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3
a1NldEhUVFBDb29raWVzRm9yVVJMKShDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBOU0FycmF5ICos
IE5TVVJMICosIE5TVVJMICopOwotV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrRGVsZXRlQWxsSFRU
UENvb2tpZXMpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCAo
KndrRGVsZXRlSFRUUENvb2tpZSkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgTlNIVFRQQ29va2ll
ICopOwotCiBXRUJDT1JFX0VYUE9SVCB2b2lkKCp3a0Rlc3Ryb3lSZW5kZXJpbmdSZXNvdXJjZXMp
KHZvaWQpOwogCiBXRUJDT1JFX0VYUE9SVCBib29sICgqd2tDYXB0aW9uQXBwZWFyYW5jZUhhc1Vz
ZXJQcmVmZXJlbmNlcykodm9pZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaAppbmRleCA1YWRmMTJlM2ZiY2FiZjA4MGQzZTgy
YjdiNGRiY2RiYzljMGFhYmFiLi4wNjcyZDYwMmFmMjZjNjNhODJjNGFmMjYwYjQxYTZiNzQwMjEz
YzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLmgKQEAgLTIxNCwxNSArMjE0LDYgQEAgZXh0ZXJuIHZvaWQgKCp3a1NldExh
eWVyQ29udGVudHNTY2FsZSkoQ0FMYXllciAqKTsKICNlbmRpZgogCiB0eXBlZGVmIGNvbnN0IHN0
cnVjdCBfX0NGVVJMU3RvcmFnZVNlc3Npb24qIENGVVJMU3RvcmFnZVNlc3Npb25SZWY7Ci1leHRl
cm4gQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiAoKndrQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9u
KShDRlN0cmluZ1JlZik7Ci1leHRlcm4gTlNVUkxSZXF1ZXN0KiAoKndrQ29weVJlcXVlc3RXaXRo
U3RvcmFnZVNlc3Npb24pKENGVVJMU3RvcmFnZVNlc3Npb25SZWYsIE5TVVJMUmVxdWVzdCopOwot
Ci10eXBlZGVmIHN0cnVjdCBPcGFxdWVDRkhUVFBDb29raWVTdG9yYWdlKiBDRkhUVFBDb29raWVT
dG9yYWdlUmVmOwotZXh0ZXJuIHVuc2lnbmVkICgqd2tHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KShDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsKLWV4dGVybiBOU0FycmF5ICooKndrSFRUUENvb2tp
ZXMpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwotZXh0ZXJuIHZvaWQgKCp3a1NldEhUVFBDb29r
aWVzRm9yVVJMKShDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBOU0FycmF5ICosIE5TVVJMICosIE5T
VVJMICopOwotZXh0ZXJuIHZvaWQgKCp3a0RlbGV0ZUhUVFBDb29raWUpKENGSFRUUENvb2tpZVN0
b3JhZ2VSZWYsIE5TSFRUUENvb2tpZSAqKTsKLWV4dGVybiB2b2lkICgqd2tEZWxldGVBbGxIVFRQ
Q29va2llcykoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7CiAKICNpZiAhUExBVEZPUk0oSU9TKQog
ZXh0ZXJuIHZvaWQgKCp3a1NldE1ldGFkYXRhVVJMKShOU1N0cmluZyAqdXJsU3RyaW5nLCBOU1N0
cmluZyAqcmVmZXJyZXIsIE5TU3RyaW5nICpwYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggYzRiMzNmNDA2
Mzk2NjE2NWY2YmFiMWM3N2UyZjI1NjgwN2YyZDhkMy4uZWExMDNkYmFkNmIxZGQxYjBlZmJkYmUz
ZjAwYmIwYzA1ZTZjNjNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTkzLDE0ICs5Myw2IEBAIENGVHlwZVJl
ZiAoKndrQ3JlYXRlQVhUZXh0TWFya2VyKShjb25zdCB2b2lkICpieXRlcywgc2l6ZV90IGxlbik7
CiBCT09MICgqd2tHZXRCeXRlc0Zyb21BWFRleHRNYXJrZXIpKENGVHlwZVJlZiB0ZXh0TWFya2Vy
LCB2b2lkICpieXRlcywgc2l6ZV90IGxlbmd0aCk7CiBBWFVJRWxlbWVudFJlZiAoKndrQ3JlYXRl
QVhVSUVsZW1lbnRSZWYpKGlkIGVsZW1lbnQpOwogCi1DRlVSTFN0b3JhZ2VTZXNzaW9uUmVmICgq
d2tDcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24pKENGU3RyaW5nUmVmKTsKLU5TVVJMUmVxdWVz
dCogKCp3a0NvcHlSZXF1ZXN0V2l0aFN0b3JhZ2VTZXNzaW9uKShDRlVSTFN0b3JhZ2VTZXNzaW9u
UmVmLCBOU1VSTFJlcXVlc3QqKTsKLXVuc2lnbmVkICgqd2tHZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KShDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsKLU5TQXJyYXkgKigqd2tIVFRQQ29va2llcyko
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Ci12b2lkICgqd2tTZXRIVFRQQ29va2llc0ZvclVSTCko
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgTlNBcnJheSAqLCBOU1VSTCAqLCBOU1VSTCAqKTsKLXZv
aWQgKCp3a0RlbGV0ZUFsbEhUVFBDb29raWVzKShDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsKLXZv
aWQgKCp3a0RlbGV0ZUhUVFBDb29raWUpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5TSFRUUENv
b2tpZSAqKTsKLQogdm9pZCAoKndrU2V0TWV0YWRhdGFVUkwpKE5TU3RyaW5nICp1cmxTdHJpbmcs
IE5TU3RyaW5nICpyZWZlcnJlciwgTlNTdHJpbmcgKnBhdGgpOwogCiAjaWYgIVBMQVRGT1JNKElP
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5oCmluZGV4IGQ4YTk2MTgyOWEwNTJhMDZjOWEzOTBlOTdkMDAzYjQ0ZjRi
YzA5OGQuLmU3NTFiZjI0ZTUwMWExODZjNTA5ODUyNzMyOWM4ZmUyYzYzZTdlOGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uaApAQCAtMTUzLDQgKzE1Myw4IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07CiAKKyNpZiBQ
TEFURk9STShDT0NPQSkKK1dFQkNPUkVfRVhQT1JUIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgY3Jl
YXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKENGU3RyaW5nUmVmIGlkZW50aWZpZXIpOworI2VuZGlm
CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKaW5kZXggN2U5MDMyYzM0M2Ux
ZGRmZTc0OTg3ZWEzOTExMzA5ZThmMzUyMjk0Yi4uNGM5ZmMzZGY1NWRmMmQ0NzczNDZmNjk2NmVm
NDJkZWMyYzQ1MDk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKQEAgLTkw
LDcgKzkwLDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGlu
Z1Nlc3Npb24oKQogCiAgICAgUmV0YWluUHRyPENGVVJMU3RvcmFnZVNlc3Npb25SZWY+IHNlc3Np
b247CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgc2Vzc2lvbiA9IGFkb3B0Q0Yod2tDcmVhdGVQ
cml2YXRlU3RvcmFnZVNlc3Npb24oc2Vzc2lvbk5hbWUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkp
OworICAgIHNlc3Npb24gPSBhZG9wdENGKGNyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbihzZXNz
aW9uTmFtZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CiAjZWxzZQogICAgIHNlc3Npb24gPSBh
ZG9wdENGKHdrQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKHNlc3Npb25OYW1lLmNyZWF0ZUNG
U3RyaW5nKCkuZ2V0KCksIGRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigp
KSk7CiAjZW5kaWYKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6ZW5zdXJlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZwog
ICAgIFJldGFpblB0cjxDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmPiBzdG9yYWdlU2Vzc2lvbjsKICAg
ICBpZiAoc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICAgICAgc3RvcmFnZVNlc3Npb24gPSBhZG9wdENGKHdrQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNz
aW9uKGNmSWRlbnRpZmllci5nZXQoKSkpOworICAgICAgICBzdG9yYWdlU2Vzc2lvbiA9IGFkb3B0
Q0YoY3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKGNmSWRlbnRpZmllci5nZXQoKSkpOwogI2Vs
c2UKICAgICAgICAgc3RvcmFnZVNlc3Npb24gPSBhZG9wdENGKHdrQ3JlYXRlUHJpdmF0ZVN0b3Jh
Z2VTZXNzaW9uKGNmSWRlbnRpZmllci5nZXQoKSwgZGVmYXVsdE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bigpLT5wbGF0Zm9ybVNlc3Npb24oKSkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaAppbmRleCAxMmYxYjY2MDJi
NzkzMjVlNDc4NGJiMjFkYWU0NTc3ZDA5NGNkNzk1Li4xNGJjYjZhZjk5M2Y5Mzk2OWZjNjIwNjUw
MDFjMmZlMjc3ODEyMGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJS
ZXNvdXJjZVJlcXVlc3RCYXNlLmgiCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCitPQkpD
X0NMQVNTIE5TQ2FjaGVkVVJMUmVzcG9uc2U7CiBPQkpDX0NMQVNTIE5TVVJMUmVxdWVzdDsKIAog
I2lmIFBMQVRGT1JNKENPQ09BKSB8fCBVU0UoQ0ZVUkxDT05ORUNUSU9OKQpAQCAtMTM1LDQgKzEz
Niw5IEBAIGlubGluZSBib29sIFJlc291cmNlUmVxdWVzdDo6cmVzb3VyY2VQcmlvcml0aWVzRW5h
YmxlZCgpCiAjZW5kaWYKIH0KIAorI2lmIFBMQVRGT1JNKENPQ09BKQorTlNVUkxSZXF1ZXN0ICpj
b3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lvbihDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBOU1VS
TFJlcXVlc3QgKik7CitXRUJDT1JFX0VYUE9SVCBOU0NhY2hlZFVSTFJlc3BvbnNlICpjYWNoZWRS
ZXNwb25zZUZvclJlcXVlc3QoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiwgTlNVUkxSZXF1ZXN0ICop
OworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbkNvY29hLm1tCmluZGV4IDUzYTc5YjI4NzhhNGUzYjMyZmFiZjY3ODIzNDViODAxNWE2
YjUwZGEuLmQ5NjA1YjEwMzJhNThkZWVkZGI2MTE3YzkzNTU5NThhMThhMjYxMzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQpAQCAtOTksNCArOTksMzcgQEAgQ29va2ll
U3RvcmFnZU9ic2VydmVyJiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZVN0b3JhZ2VPYnNl
cnZlcigpIGNvbnN0CiAgICAgcmV0dXJuICptX2Nvb2tpZVN0b3JhZ2VPYnNlcnZlcjsKIH0KIAor
Q0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBjcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24oQ0ZTdHJp
bmdSZWYgaWRlbnRpZmllcikKK3sKKyAgICBjb25zdCB2b2lkKiBzZXNzaW9uUHJvcGVydHlLZXlz
W10gPSB7IF9rQ0ZVUkxTdG9yYWdlU2Vzc2lvbklzUHJpdmF0ZSB9OworICAgIGNvbnN0IHZvaWQq
IHNlc3Npb25Qcm9wZXJ0eVZhbHVlc1tdID0geyBrQ0ZCb29sZWFuVHJ1ZSB9OworICAgIGF1dG8g
c2Vzc2lvblByb3BlcnRpZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBzZXNzaW9uUHJvcGVydHlLZXlzLCBzZXNzaW9uUHJvcGVydHlWYWx1ZXMsIHNp
emVvZihzZXNzaW9uUHJvcGVydHlLZXlzKSAvIHNpemVvZigqc2Vzc2lvblByb3BlcnR5S2V5cyks
ICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVD
YWxsQmFja3MpKTsKKyAgICBhdXRvIHN0b3JhZ2VTZXNzaW9uID0gYWRvcHRDRihfQ0ZVUkxTdG9y
YWdlU2Vzc2lvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBpZGVudGlmaWVyLCBzZXNzaW9u
UHJvcGVydGllcy5nZXQoKSkpOworCisgICAgaWYgKCFzdG9yYWdlU2Vzc2lvbikKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICAvLyBUaGUgcHJpdmF0ZSBzdG9yYWdlIHNlc3Npb24gc2hv
dWxkIGhhdmUgdGhlIHNhbWUgcHJvcGVydGllcyBhcyB0aGUgZGVmYXVsdCBzdG9yYWdlIHNlc3Np
b24sCisgICAgLy8gd2l0aCB0aGUgZXhjZXB0aW9uIHRoYXQgaXQgc2hvdWxkIGJlIGluLW1lbW9y
eSBvbmx5IHN0b3JhZ2UuCisgICAgCisgICAgLy8gRklYTUUgOTE5OTY0OTogSWYgYW55IG9mIHRo
ZSBzdG9yYWdlcyBkbyBub3QgZXhpc3QsIGRvIG5vIHVzZSB0aGUgc3RvcmFnZSBzZXNzaW9uLgor
ICAgIC8vIFRoaXMgY291bGQgb2NjdXIgaWYgdGhlcmUgaXMgYW4gaXNzdWUgZmlndXJpbmcgb3V0
IHdoZXJlIHRvIHBsYWNlIGEgc3RvcmFnZSBvbiBkaXNrIChlLmcuIHRoZQorICAgIC8vIHNhbmRi
b3ggZG9lcyBub3QgYWxsb3cgQ0ZOZXR3b3JrIGFjY2VzcykuCisKKyAgICBhdXRvIGNhY2hlID0g
YWRvcHRDRihfQ0ZVUkxTdG9yYWdlU2Vzc2lvbkNvcHlDYWNoZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBzdG9yYWdlU2Vzc2lvbi5nZXQoKSkpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgQ0ZVUkxDYWNoZVNldE1lbW9yeUNhcGFjaXR5KGNhY2hlLmdldCgp
LCBbW05TVVJMQ2FjaGUgc2hhcmVkVVJMQ2FjaGVdIG1lbW9yeUNhcGFjaXR5XSk7CisKKyAgICBh
dXRvIGNvb2tpZVN0b3JhZ2UgPSBhZG9wdENGKF9DRlVSTFN0b3JhZ2VTZXNzaW9uQ29weUNvb2tp
ZVN0b3JhZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc3RvcmFnZVNlc3Npb24uZ2V0KCkpKTsKKyAg
ICBpZiAoIWNvb2tpZVN0b3JhZ2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgLy8g
RklYTUU6IFVzZSBfQ0ZIVFRQQ29va2llU3RvcmFnZUdldERlZmF1bHQgd2hlbiBVU0UoQ0ZORVRX
T1JLKSBpcyBkZWZpbmVkIGluIFdlYktpdCBmb3IgY29uc2lzdGVuY3kuCisgICAgQ0ZIVFRQQ29v
a2llU3RvcmFnZVNldENvb2tpZUFjY2VwdFBvbGljeShjb29raWVTdG9yYWdlLmdldCgpLCBbW05T
SFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIGNvb2tpZUFjY2VwdFBv
bGljeV0pOworCisgICAgcmV0dXJuIHN0b3JhZ2VTZXNzaW9uLmxlYWtSZWYoKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0KaW5kZXggNjQyYWUy
ZWNiZjExNTk0MzJjNDg2ZTYxMTVhYjMzODljYWEyMDE1OC4uODVhYjkxMzY1OWE0NjE0NGQ5YzQw
ZTMzNzhkZTY0MzZiYTUxY2QwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tCkBAIC0yNjAs
MTEgKzI2MCwzNCBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVQbGF0Zm9ybUhUVFBC
b2R5KCkKIHZvaWQgUmVzb3VyY2VSZXF1ZXN0OjpzZXRTdG9yYWdlU2Vzc2lvbihDRlVSTFN0b3Jh
Z2VTZXNzaW9uUmVmIHN0b3JhZ2VTZXNzaW9uKQogewogICAgIHVwZGF0ZVBsYXRmb3JtUmVxdWVz
dCgpOwotICAgIG1fbnNSZXF1ZXN0ID0gYWRvcHROUyh3a0NvcHlSZXF1ZXN0V2l0aFN0b3JhZ2VT
ZXNzaW9uKHN0b3JhZ2VTZXNzaW9uLCBtX25zUmVxdWVzdC5nZXQoKSkpOworICAgIG1fbnNSZXF1
ZXN0ID0gYWRvcHROUyhjb3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lvbihzdG9yYWdlU2Vzc2lv
biwgbV9uc1JlcXVlc3QuZ2V0KCkpKTsKIH0KIAogI2VuZGlmIC8vIFVTRShDRlVSTENPTk5FQ1RJ
T04pCiAKK05TVVJMUmVxdWVzdCAqY29weVJlcXVlc3RXaXRoU3RvcmFnZVNlc3Npb24oQ0ZVUkxT
dG9yYWdlU2Vzc2lvblJlZiBzdG9yYWdlU2Vzc2lvbiwgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0KQor
eworICAgIGlmICghc3RvcmFnZVNlc3Npb24gfHwgIXJlcXVlc3QpCisgICAgICAgIHJldHVybiBb
cmVxdWVzdCBjb3B5XTsKKworICAgIGF1dG8gY2ZSZXF1ZXN0ID0gYWRvcHRDRihDRlVSTFJlcXVl
c3RDcmVhdGVNdXRhYmxlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBbcmVxdWVzdCBfQ0ZVUkxS
ZXF1ZXN0XSkpOworICAgIF9DRlVSTFJlcXVlc3RTZXRTdG9yYWdlU2Vzc2lvbihjZlJlcXVlc3Qu
Z2V0KCksIHN0b3JhZ2VTZXNzaW9uKTsKKyAgICByZXR1cm4gW1tOU1VSTFJlcXVlc3QgYWxsb2Nd
IF9pbml0V2l0aENGVVJMUmVxdWVzdDpjZlJlcXVlc3QuZ2V0KCldOworfQorCitOU0NhY2hlZFVS
TFJlc3BvbnNlICpjYWNoZWRSZXNwb25zZUZvclJlcXVlc3QoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJl
ZiBzdG9yYWdlU2Vzc2lvbiwgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0KQoreworICAgIGlmICghc3Rv
cmFnZVNlc3Npb24pCisgICAgICAgIHJldHVybiBbW05TVVJMQ2FjaGUgc2hhcmVkVVJMQ2FjaGVd
IGNhY2hlZFJlc3BvbnNlRm9yUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIGF1dG8gY2FjaGUgPSBh
ZG9wdENGKF9DRlVSTFN0b3JhZ2VTZXNzaW9uQ29weUNhY2hlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IHN0b3JhZ2VTZXNzaW9uKSk7CisgICAgYXV0byBjYWNoZWRSZXNwb25zZSA9IGFkb3B0Q0YoQ0ZV
UkxDYWNoZUNvcHlSZXNwb25zZUZvclJlcXVlc3QoY2FjaGUuZ2V0KCksIFtyZXF1ZXN0IF9DRlVS
TFJlcXVlc3RdKSk7CisgICAgaWYgKCFjYWNoZWRSZXNwb25zZSkKKyAgICAgICAgcmV0dXJuIG5p
bDsKKworICAgIHJldHVybiBbW1tOU0NhY2hlZFVSTFJlc3BvbnNlIGFsbG9jXSBfaW5pdFdpdGhD
RkNhY2hlZFVSTFJlc3BvbnNlOmNhY2hlZFJlc3BvbnNlLmdldCgpXSBhdXRvcmVsZWFzZV07Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFy
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFj
Lm1tCmluZGV4IGMyYjU2OTA0ODVlYjcwYzM0Y2I5ODZkZDIzZWUyOTBjMzcwNjkwMzcuLjI5MDA3
NTBiZDQ1ZTQwZjA2NTFiODEyNzMzMGMwMzUxYzU4ZjkyMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0KQEAgLTQwLDYgKzQw
LDEwIEBACiAjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KIAorQGludGVyZmFjZSBOU1VSTCAoKQorLSAoQ0ZVUkxSZWYpX2NmdXJsOwor
QGVuZAorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBOU0FycmF5ICpodHRwQ29va2ll
c0ZvclVSTChDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UsIE5TVVJMICpmaXJz
dFBhcnR5LCBOU1VSTCAqdXJsKQpAQCAtMTY4LDYgKzE3Miw1NyBAQCBzdGF0aWMgU3RyaW5nIGNv
b2tpZXNGb3JTZXNzaW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29u
c3QgVVJMJgogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAorc3RhdGljIE5TQXJyYXkgKmh0dHBD
b29raWVzKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgY29va2llU3RvcmFnZSkKK3sKKyAgICBpZiAo
IWNvb2tpZVN0b3JhZ2UpIHsKKyAgICAgICAgLy8gRklYTUU6IFRoZSBmYWxsYmFjayB0byBOU0hU
VFBDb29raWVTdG9yYWdlIHNob3VsZCBub3QgYmUgcHJlc2VudCB3aGVuIFVTRShDRk5FVFdPUksp
IGlzIGRlZmluZWQgaW4gV2ViS2l0LgorICAgICAgICByZXR1cm4gW1tOU0hUVFBDb29raWVTdG9y
YWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXSBjb29raWVzXTsKKyAgICB9CisKKyAgICBhdXRv
IGNvb2tpZXMgPSBhZG9wdENGKENGSFRUUENvb2tpZVN0b3JhZ2VDb3B5Q29va2llcyhjb29raWVT
dG9yYWdlKSk7CisgICAgcmV0dXJuIFtOU0hUVFBDb29raWUgX2NmMm5zQ29va2llczpjb29raWVz
LmdldCgpXTsKK30KKworc3RhdGljIHZvaWQgc2V0SFRUUENvb2tpZXNGb3JVUkwoQ0ZIVFRQQ29v
a2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdlLCBOU0FycmF5ICpjb29raWVzLCBOU1VSTCAqdXJs
LCBOU1VSTCAqbWFpbkRvY3VtZW50VVJMKQoreworICAgIGlmICghY29va2llU3RvcmFnZSkgewor
ICAgICAgICAvLyBGSVhNRTogVGhlIGZhbGxiYWNrIHRvIE5TSFRUUENvb2tpZVN0b3JhZ2Ugc2hv
dWxkIG5vdCBiZSBwcmVzZW50IHdoZW4gVVNFKENGTkVUV09SSykgaXMgZGVmaW5lZCBpbiBXZWJL
aXQuCisgICAgICAgIFtbTlNIVFRQQ29va2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFn
ZV0gc2V0Q29va2llczpjb29raWVzIGZvclVSTDp1cmwgbWFpbkRvY3VtZW50VVJMOm1haW5Eb2N1
bWVudFVSTF07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGNmQ29va2llcyA9
IGFkb3B0Q0YoW05TSFRUUENvb2tpZSBfbnMyY2ZDb29raWVzOmNvb2tpZXNdKTsKKyAgICBDRkhU
VFBDb29raWVTdG9yYWdlU2V0Q29va2llcyhjb29raWVTdG9yYWdlLCBjZkNvb2tpZXMuZ2V0KCks
IFt1cmwgX2NmdXJsXSwgW21haW5Eb2N1bWVudFVSTCBfY2Z1cmxdKTsKK30KKworc3RhdGljIHZv
aWQgZGVsZXRlSFRUUENvb2tpZShDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2Us
IE5TSFRUUENvb2tpZSAqY29va2llKQoreworICAgIGlmICghY29va2llU3RvcmFnZSkgeworICAg
ICAgICAvLyBGSVhNRTogVGhlIGZhbGxiYWNrIHRvIE5TSFRUUENvb2tpZVN0b3JhZ2Ugc2hvdWxk
IG5vdCBiZSBwcmVzZW50IHdoZW4gVVNFKENGTkVUV09SSykgaXMgZGVmaW5lZCBpbiBXZWJLaXQu
CisgICAgICAgIFtbTlNIVFRQQ29va2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0g
ZGVsZXRlQ29va2llOmNvb2tpZV07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBDRkhU
VFBDb29raWVTdG9yYWdlRGVsZXRlQ29va2llKGNvb2tpZVN0b3JhZ2UsIFtjb29raWUgX0dldElu
dGVybmFsQ0ZIVFRQQ29va2llXSk7Cit9CisKK3N0YXRpYyB2b2lkIGRlbGV0ZUFsbEhUVFBDb29r
aWVzKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgY29va2llU3RvcmFnZSkKK3sKKyAgICBpZiAoIWNv
b2tpZVN0b3JhZ2UpIHsKKyAgICAgICAgLy8gRklYTUU6IFRoZSBmYWxsYmFjayB0byBOU0hUVFBD
b29raWVTdG9yYWdlIHNob3VsZCBub3QgYmUgcHJlc2VudCB3aGVuIFVTRShDRk5FVFdPUkspIGlz
IGRlZmluZWQgaW4gV2ViS2l0LgorICAgICAgICBOU0hUVFBDb29raWVTdG9yYWdlICpjb29raWVT
dG9yYWdlID0gW05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdOwor
ICAgICAgICBOU0FycmF5ICpjb29raWVzID0gW2Nvb2tpZVN0b3JhZ2UgY29va2llc107CisgICAg
ICAgIGlmICghY29va2llcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmb3IgKE5T
SFRUUENvb2tpZSAqY29va2llIGluIGNvb2tpZXMpCisgICAgICAgICAgICBbY29va2llU3RvcmFn
ZSBkZWxldGVDb29raWU6Y29va2llXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIENG
SFRUUENvb2tpZVN0b3JhZ2VEZWxldGVBbGxDb29raWVzKGNvb2tpZVN0b3JhZ2UpOworfQorCiBz
dGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwg
SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCiB7CiAgICAgYm9vbCBk
aWRBY2Nlc3NTZWN1cmVDb29raWVzID0gZmFsc2U7CkBAIC0yMTMsMTYgKzI2OCwyNiBAQCB2b2lk
IHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwg
Y29uc3QgVVJMJiBmaXJzdFBhcgogICAgICAgICBmaWx0ZXJlZENvb2tpZXMgPSBhcHBseVBhcnRp
dGlvblRvQ29va2llcyhwYXJ0aXRpb24sIGZpbHRlcmVkQ29va2llcy5nZXQoKSk7CiAjZW5kaWYK
IAotICAgIHdrU2V0SFRUUENvb2tpZXNGb3JVUkwoc2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuZ2V0
KCksIGZpbHRlcmVkQ29va2llcy5nZXQoKSwgY29va2llVVJMLCBmaXJzdFBhcnR5KTsKKyAgICBz
ZXRIVFRQQ29va2llc0ZvclVSTChzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSwgZmlsdGVy
ZWRDb29raWVzLmdldCgpLCBjb29raWVVUkwsIGZpcnN0UGFydHkpOwogCiAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKIH0KIAorc3RhdGljIHVuc2lnbmVkIGh0dHBDb29raWVBY2NlcHRQ
b2xpY3koQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdlKQoreworICAgIGlmICgh
Y29va2llU3RvcmFnZSkgeworICAgICAgICAvLyBGSVhNRTogVGhlIGZhbGxiYWNrIHRvIE5TSFRU
UENvb2tpZVN0b3JhZ2Ugc2hvdWxkIG5vdCBiZSBwcmVzZW50IHdoZW4gVVNFKENGTkVUV09SSykg
aXMgZGVmaW5lZCBpbiBXZWJLaXQuCisgICAgICAgIHJldHVybiBbW05TSFRUUENvb2tpZVN0b3Jh
Z2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIGNvb2tpZUFjY2VwdFBvbGljeV07CisgICAgfQor
CisgICAgcmV0dXJuIENGSFRUUENvb2tpZVN0b3JhZ2VHZXRDb29raWVBY2NlcHRQb2xpY3koY29v
a2llU3RvcmFnZSk7Cit9CisKIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIC8qZmlyc3RQYXJ0eSovLCBjb25zdCBVUkwm
IC8qdXJsKi8pCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAgTlNI
VFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeSA9IHN0YXRpY19jYXN0PE5T
SFRUUENvb2tpZUFjY2VwdFBvbGljeT4od2tHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHNlc3Np
b24uY29va2llU3RvcmFnZSgpLmdldCgpKSk7CisgICAgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5
IGNvb2tpZUFjY2VwdFBvbGljeSA9IHN0YXRpY19jYXN0PE5TSFRUUENvb2tpZUFjY2VwdFBvbGlj
eT4oaHR0cENvb2tpZUFjY2VwdFBvbGljeShzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSkp
OwogICAgIHJldHVybiBjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9s
aWN5QWx3YXlzIHx8IGNvb2tpZUFjY2VwdFBvbGljeSA9PSBOU0hUVFBDb29raWVBY2NlcHRQb2xp
Y3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiB8fCBjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNI
VFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwog
CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKQEAgLTI1OSw3ICszMjQsNyBAQCB2b2lk
IGRlbGV0ZUNvb2tpZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTdAogICAgIGZvciAoTlNVSW50ZWdlciBpID0gMDsgaSA8IGNvdW50
OyArK2kpIHsKICAgICAgICAgTlNIVFRQQ29va2llICpjb29raWUgPSAoTlNIVFRQQ29va2llICop
W2Nvb2tpZXMgb2JqZWN0QXRJbmRleDppXTsKICAgICAgICAgaWYgKFtbY29va2llIG5hbWVdIGlz
RXF1YWxUb1N0cmluZzpjb29raWVOYW1lU3RyaW5nXSkKLSAgICAgICAgICAgIHdrRGVsZXRlSFRU
UENvb2tpZShjb29raWVTdG9yYWdlLmdldCgpLCBjb29raWUpOworICAgICAgICAgICAgZGVsZXRl
SFRUUENvb2tpZShjb29raWVTdG9yYWdlLmdldCgpLCBjb29raWUpOwogICAgIH0KIAogICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CkBAIC0yNjksNyArMzM0LDcgQEAgdm9pZCBnZXRIb3N0
bmFtZXNXaXRoQ29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIEhh
c2hTZXQ8U3RyaW4KIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBO
U0FycmF5ICpjb29raWVzID0gd2tIVFRQQ29va2llcyhzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5n
ZXQoKSk7CisgICAgTlNBcnJheSAqY29va2llcyA9IGh0dHBDb29raWVzKHNlc3Npb24uY29va2ll
U3RvcmFnZSgpLmdldCgpKTsKICAgICAKICAgICBmb3IgKE5TSFRUUENvb2tpZSogY29va2llIGlu
IGNvb2tpZXMpCiAgICAgICAgIGhvc3RuYW1lcy5hZGQoW2Nvb2tpZSBkb21haW5dKTsKQEAgLTI3
OSw3ICszNDQsNyBAQCB2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29raWVzKGNvbnN0IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgSGFzaFNldDxTdHJpbgogCiB2b2lkIGRlbGV0ZUFsbENv
b2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKQogewotICAgIHdrRGVs
ZXRlQWxsSFRUUENvb2tpZXMoc2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuZ2V0KCkpOworICAgIGRl
bGV0ZUFsbEhUVFBDb29raWVzKHNlc3Npb24uY29va2llU3RvcmFnZSgpLmdldCgpKTsKIH0KIAog
fQpAQCAtMjkzLDcgKzM1OCw3IEBAIHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFZlY3RvCiAgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3Jh
Z2VSZWY+IGNvb2tpZVN0b3JhZ2UgPSBzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKTsKLSAgICBOU0Fy
cmF5ICpjb29raWVzID0gd2tIVFRQQ29va2llcyhjb29raWVTdG9yYWdlLmdldCgpKTsKKyAgICBO
U0FycmF5ICpjb29raWVzID0gaHR0cENvb2tpZXMoY29va2llU3RvcmFnZS5nZXQoKSk7CiAgICAg
aWYgKCFjb29raWVzKQogICAgICAgICByZXR1cm47CiAKQEAgLTMwOSw3ICszNzQsNyBAQCB2b2lk
IGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBz
ZXNzaW9uLCBjb25zdCBWZWN0bwogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgZm9y
IChhdXRvJiBjb29raWUgOiBpdC0+dmFsdWUpCi0gICAgICAgICAgICB3a0RlbGV0ZUhUVFBDb29r
aWUoY29va2llU3RvcmFnZS5nZXQoKSwgY29va2llLmdldCgpKTsKKyAgICAgICAgICAgIGRlbGV0
ZUhUVFBDb29raWUoY29va2llU3RvcmFnZS5nZXQoKSwgY29va2llLmdldCgpKTsKICAgICB9CiAK
ICAgICBbc2Vzc2lvbi5uc0Nvb2tpZVN0b3JhZ2UoKSBfc2F2ZUNvb2tpZXNdOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1h
Yy5tbQppbmRleCAwYzM1MzE0Y2EyMGFlOGRkNDgxNDNmMTQwMTlmOTY4MjU1OTRmZTVkLi4xYzc0
YjM5NmM3MTg4ZTc3NjE3NWU2OTgxYmRlOTNlOTEzODI3ZTVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpA
QCAtMTc3LDcgKzE3Nyw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVj
dGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsCiAjZW5kaWYKIAogICAg
IGlmIChkLT5tX3N0b3JhZ2VTZXNzaW9uKQotICAgICAgICBuc1JlcXVlc3QgPSBbd2tDb3B5UmVx
dWVzdFdpdGhTdG9yYWdlU2Vzc2lvbihkLT5tX3N0b3JhZ2VTZXNzaW9uLmdldCgpLCBuc1JlcXVl
c3QpIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgbnNSZXF1ZXN0ID0gW2NvcHlSZXF1ZXN0V2l0aFN0
b3JhZ2VTZXNzaW9uKGQtPm1fc3RvcmFnZVNlc3Npb24uZ2V0KCksIG5zUmVxdWVzdCkgYXV0b3Jl
bGVhc2VdOwogCiAgICAgQVNTRVJUKFtOU1VSTENvbm5lY3Rpb24gaW5zdGFuY2VzUmVzcG9uZFRv
U2VsZWN0b3I6QHNlbGVjdG9yKF9pbml0V2l0aFJlcXVlc3Q6ZGVsZWdhdGU6dXNlc0NhY2hlOm1h
eENvbnRlbnRMZW5ndGg6c3RhcnRJbW1lZGlhdGVseTpjb25uZWN0aW9uUHJvcGVydGllczopXSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tCmluZGV4IDJmNGIyMjhmMTY4YjYyN2IxOGMwM2UyMzQ0MTAyYjZlODNhM2U4YTQu
LjA0NWI5YjJkNDgyZTQyMjc5Yzk2ZTlhMTkzYzRlZDdkMDg2Yjc5YzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAt
NDQsNiArNDQsNyBAQAogI2ltcG9ydCAiV2luZG93U2VydmVyQ29ubmVjdGlvbi5oIgogI2ltcG9y
dCA8V2ViQ29yZS9Db2xvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW1w
b3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9O
b3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CkBAIC01NzYsNyAr
NTc3LDcgQEAgc3RhdGljIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgcHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbigpCiAgICAgZGlzcGF0Y2hfb25jZSgmb25jZSwgXnsKICAgICAgICAgTlNTdHJpbmcgKmlk
ZW50aWZpZXIgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVALlByaXZhdGVCcm93c2lu
ZyIsIFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl1dOwogCi0gICAgICAg
IHNlc3Npb24gPSBXS0NyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbigoQ0ZTdHJpbmdSZWYpaWRl
bnRpZmllcik7CisgICAgICAgIHNlc3Npb24gPSBjcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24o
KENGU3RyaW5nUmVmKWlkZW50aWZpZXIpOwogICAgIH0pOwogCiAgICAgcmV0dXJuIHNlc3Npb247
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFj
L1dlYlN5c3RlbUludGVyZmFjZS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCmluZGV4IGUyNTEyN2MyOWMwMzRmMDJk
ZjAxY2ZiYmJhZjVjNWI2ZTc4MGRjMDcuLjdhMzMzNmMwNmUwODZlYzA0ODU3ZWY3NDk4MDAzMjU4
MGU5YjQ4NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCkBAIC03NSwxMyAr
NzUsNiBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAjaWYgIVBMQVRG
T1JNKElPUykKICAgICAgICAgSU5JVChTZXREcmFnSW1hZ2UpOwogI2VuZGlmCi0gICAgICAgIElO
SVQoQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKTsKLSAgICAgICAgSU5JVChDb3B5UmVxdWVz
dFdpdGhTdG9yYWdlU2Vzc2lvbik7Ci0gICAgICAgIElOSVQoR2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeSk7Ci0gICAgICAgIElOSVQoSFRUUENvb2tpZXMpOwotICAgICAgICBJTklUKFNldEhUVFBD
b29raWVzRm9yVVJMKTsKLSAgICAgICAgSU5JVChEZWxldGVBbGxIVFRQQ29va2llcyk7Ci0gICAg
ICAgIElOSVQoRGVsZXRlSFRUUENvb2tpZSk7CiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgICAg
ICBJTklUKFNldE1ldGFkYXRhVVJMKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXggM2Y4ZDVhZmYzMmViN2Q1ODc1Zjc0MzRk
NTE5NjBlMjU3MDdkYTM5NS4uZDcwYzk1YWU4N2Q1NDljNzE3NmMxZjJmZjM1NzAzY2QzNDA4ZTJi
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBh
Z2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBh
Z2VNYWMubW0KQEAgLTY4NCw3ICs2ODQsNyBAQCBib29sIFdlYlBhZ2U6OnBsYXRmb3JtSGFzTG9j
YWxEYXRhRm9yVVJMKGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsKQogICAgIFtyZXF1ZXN0IHNldFZh
bHVlOihOU1N0cmluZyopdXNlckFnZW50KHVybCkgZm9ySFRUUEhlYWRlckZpZWxkOkAiVXNlci1B
Z2VudCJdOwogICAgIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKmNhY2hlZFJlc3BvbnNlOwogICAgIGlm
IChDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmIHN0b3JhZ2VTZXNzaW9uID0gY29yZVBhZ2UoKS0+bWFp
bkZyYW1lKCkubG9hZGVyKCkubmV0d29ya2luZ0NvbnRleHQoKS0+c3RvcmFnZVNlc3Npb24oKS5w
bGF0Zm9ybVNlc3Npb24oKSkKLSAgICAgICAgY2FjaGVkUmVzcG9uc2UgPSBXS0NhY2hlZFJlc3Bv
bnNlRm9yUmVxdWVzdChzdG9yYWdlU2Vzc2lvbiwgcmVxdWVzdCk7CisgICAgICAgIGNhY2hlZFJl
c3BvbnNlID0gY2FjaGVkUmVzcG9uc2VGb3JSZXF1ZXN0KHN0b3JhZ2VTZXNzaW9uLCByZXF1ZXN0
KTsKICAgICBlbHNlCiAgICAgICAgIGNhY2hlZFJlc3BvbnNlID0gW1tOU1VSTENhY2hlIHNoYXJl
ZFVSTENhY2hlXSBjYWNoZWRSZXNwb25zZUZvclJlcXVlc3Q6cmVxdWVzdF07CiAgICAgW3JlcXVl
c3QgcmVsZWFzZV07CkBAIC02OTgsNyArNjk4LDcgQEAgc3RhdGljIE5TQ2FjaGVkVVJMUmVzcG9u
c2UgKmNhY2hlZFJlc3BvbnNlRm9yVVJMKFdlYlBhZ2UqIHdlYlBhZ2UsIGNvbnN0IFVSTCYgdXIK
ICAgICBbcmVxdWVzdCBzZXRWYWx1ZTooTlNTdHJpbmcgKil3ZWJQYWdlLT51c2VyQWdlbnQodXJs
KSBmb3JIVFRQSGVhZGVyRmllbGQ6QCJVc2VyLUFnZW50Il07CiAKICAgICBpZiAoQ0ZVUkxTdG9y
YWdlU2Vzc2lvblJlZiBzdG9yYWdlU2Vzc2lvbiA9IHdlYlBhZ2UtPmNvcmVQYWdlKCktPm1haW5G
cmFtZSgpLmxvYWRlcigpLm5ldHdvcmtpbmdDb250ZXh0KCktPnN0b3JhZ2VTZXNzaW9uKCkucGxh
dGZvcm1TZXNzaW9uKCkpCi0gICAgICAgIHJldHVybiBXS0NhY2hlZFJlc3BvbnNlRm9yUmVxdWVz
dChzdG9yYWdlU2Vzc2lvbiwgcmVxdWVzdC5nZXQoKSk7CisgICAgICAgIHJldHVybiBjYWNoZWRS
ZXNwb25zZUZvclJlcXVlc3Qoc3RvcmFnZVNlc3Npb24sIHJlcXVlc3QuZ2V0KCkpOwogCiAgICAg
cmV0dXJuIFtbTlNVUkxDYWNoZSBzaGFyZWRVUkxDYWNoZV0gY2FjaGVkUmVzcG9uc2VGb3JSZXF1
ZXN0OnJlcXVlc3QuZ2V0KCldOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCmluZGV4IGVmZTMy
ZTA0MWQ1YmE1MzkxNmYwODMwNDcyYzJhMjkyN2E3Y2JhYzcuLmU0MmYyNWI0YzlhMjkzYTU2ZmIz
OTA3YjM0NmE1M2MxZTMxMjFkZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTEwNSwx
MyArMTA1LDYgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgIElO
SVQoQ3JlYXRlQVhVSUVsZW1lbnRSZWYpOwogICAgIElOSVQoVW5yZWdpc3RlclVuaXF1ZUlkRm9y
RWxlbWVudCk7CiAjZW5kaWYKLSAgICBJTklUKENyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbik7
Ci0gICAgSU5JVChDb3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lvbik7Ci0gICAgSU5JVChHZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KTsKLSAgICBJTklUKEhUVFBDb29raWVzKTsKLSAgICBJTklU
KFNldEhUVFBDb29raWVzRm9yVVJMKTsKLSAgICBJTklUKERlbGV0ZUFsbEhUVFBDb29raWVzKTsK
LSAgICBJTklUKERlbGV0ZUhUVFBDb29raWUpOwogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBJ
TklUKFNldE1ldGFkYXRhVVJMKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQppbmRleCA1NGViMTA0ZjJjNDhmMTdmZGNlYzg2Yjk5NGY3MDEyOTRjNTkyNmE3Li40
NzhjMjFjYTYxODkyODcwMzI2YWI4YjdlZmUyMzIxYzc5ZDhhNTU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0zNTU1LDcgKzM1NTUsNyBAQCAtIChO
U0NhY2hlZFVSTFJlc3BvbnNlICopX2NhY2hlZFJlc3BvbnNlRm9yVVJMOihOU1VSTCAqKVVSTAog
ICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgaWYgKENGVVJMU3RvcmFnZVNlc3Npb25SZWYgc3Rv
cmFnZVNlc3Npb24gPSBfcHJpdmF0ZS0+cGFnZS0+bWFpbkZyYW1lKCkubG9hZGVyKCkubmV0d29y
a2luZ0NvbnRleHQoKS0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKSkKLSAgICAg
ICAgY2FjaGVkUmVzcG9uc2UgPSBXS0NhY2hlZFJlc3BvbnNlRm9yUmVxdWVzdChzdG9yYWdlU2Vz
c2lvbiwgcmVxdWVzdC5nZXQoKSk7CisgICAgICAgIGNhY2hlZFJlc3BvbnNlID0gY2FjaGVkUmVz
cG9uc2VGb3JSZXF1ZXN0KHN0b3JhZ2VTZXNzaW9uLCByZXF1ZXN0LmdldCgpKTsKICAgICBlbHNl
CiAgICAgICAgIGNhY2hlZFJlc3BvbnNlID0gW1tOU1VSTENhY2hlIHNoYXJlZFVSTENhY2hlXSBj
YWNoZWRSZXNwb25zZUZvclJlcXVlc3Q6cmVxdWVzdC5nZXQoKV07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319194</attachid>
            <date>2017-08-28 12:44:19 -0700</date>
            <delta_ts>2017-08-28 12:53:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176032-20170828124418.patch</filename>
            <type>text/plain</type>
            <size>28600</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlhYTc4MGQ4OGNiMzc2
YTQ1ZWVmOTQ5ODI5OTQyNmIxODE5MWQ5Ny4uNzg0M2Y5MDY1MzViY2E2NzVmMDYxOGU3ZjgxOWQw
ZjA0MDRhYzI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE3LTA4LTI4ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFVwc3RyZWFtIENG
TmV0d29yay1yZWxhdGVkIFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjAzMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dl
YkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
UHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L1Jlc291cmNlUmVxdWVzdENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0OjpzZXRTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpjb3B5UmVxdWVzdFdp
dGhTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRSZXNwb25zZUZvclJl
cXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6Omh0dHBDb29raWVzKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEhU
VFBDb29raWVzRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OmRlbGV0ZUhUVFBDb29raWUpOgor
ICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlQWxsSFRUUENvb2tpZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0Q29va2llc0Zyb21ET00pOgorICAgICAgICAoV2ViQ29yZTo6aHR0cENvb2tpZUFjY2Vw
dFBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRW5hYmxlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpkZWxldGVDb29raWUpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0SG9zdG5hbWVzV2l0
aENvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlQWxsQ29va2llcyk6CisgICAgICAg
IChXZWJDb3JlOjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24pOgorCiAyMDE3LTA4LTI4ICBDYXJs
b3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
VEtdIFtXUEVdIFJlbmFtZSBFdmVudEhhbmRsZXJHbGliIHRvIEV2ZW50SGFuZGxlckdMaWIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nCmluZGV4IDc2ZGNkOTAxNzEwMDBiNzZmNmFiODAzODJlNTM2Y2U0MTdjYmIw
NjAuLmY2NjZlYjE4NjdiNTA1Yzk3YmQ1YWE1ZjRlNjNmOTc3ZWJlYTBlZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTA4LTI4ICBBbmR5IEVzdGVzICA8YWVzdGVz
QGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFVwc3RyZWFtIENGTmV0d29yay1yZWxhdGVk
IFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjAzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaDoKKwog
MjAxNy0wOC0yNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgTG9nZ2VyOjpsb2dBbHdheXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggM2I5NTg0Mjg1MDNhMWJjN2E0
MTY3YjRkY2Q4M2RhZGJhOTUwODU2YS4uMTE4MjkxNTZkOWI5YjVlMmZmMGRlZWVkNTkxZTk4MzA3
Y2EzMzY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNy0wOC0yOCAgQW5keSBFc3Rl
cyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBVcHN0cmVhbSBDRk5ldHdv
cmstcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwMzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0Ojpwcml2YXRlQnJvd3NpbmdTZXNz
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1J
bnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpwbGF0Zm9ybUhhc0xvY2FsRGF0YUZvclVSTCk6CisgICAgICAgIChXZWJL
aXQ6OmNhY2hlZFJlc3BvbnNlRm9yVVJMKToKKwogMjAxNy0wOC0yOCAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVyOiBpbXBsZW1l
bnQgc2NyZWVuIGNhcHR1cmUgY29tbWFuZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRl
eCA5N2I0ZGY4Y2MzYzYyNzk3NjZhMmFkYTc5YWE3YjRkNDczMGQ2ZjM4Li5kYzI0ZDc4ZDYwNDk4
MzdhYTIwYmJlMTE3OWNjZDAxNWE5MzBlMGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDgtMjggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUu
Y29tPgorCisgICAgICAgIFtDb2NvYV0gVXBzdHJlYW0gQ0ZOZXR3b3JrLXJlbGF0ZWQgV2ViS2l0
U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW06
CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSk6CisgICAgICAgICogV2ViVmll
dy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jYWNoZWRSZXNwb25zZUZvclVSTDpd
KToKKwogMjAxNy0wOC0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBQaWNraW5nIGFuIGVtb2ppIHZpYSB0aGUgZW1vamkgZGlhbG9nIChDdHJsK0Nt
ZCtTcGFjZSkgZmlyZXMgaW5jb25zaXN0ZW50IGJlZm9yZWlucHV0IGV2ZW50cy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKaW5kZXggMTg2ZTdjOTQwNmRm
NzNiMDhhOWU3Y2Y0NTg4NGU1OTU1YTc2YWU3ZC4uODAxNTdkZjNkZDVhYjFlMzY1ZDJhOWRmMWI3
NWM2MTg4M2UwZjZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2Yv
Q0ZOZXR3b3JrU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3
b3JrU1BJLmgKQEAgLTExNSw2ICsxMTUsOCBAQCB0eXBlZGVmIHZvaWQgKF5DRkNhY2hlZFVSTFJl
c3BvbnNlQ2FsbEJhY2tCbG9jaykoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CiAKIEBpbnRlcmZh
Y2UgTlNIVFRQQ29va2llICgpCiAtIChDRkhUVFBDb29raWVSZWYpX0NGSFRUUENvb2tpZTsKKysg
KENGQXJyYXlSZWYgX19udWxsYWJsZSlfbnMyY2ZDb29raWVzOihOU0FycmF5ICogX19udWxsYWJs
ZSluc0Nvb2tpZXMgQ0ZfUkVUVVJOU19SRVRBSU5FRDsKKy0gKENGSFRUUENvb2tpZVJlZiBfX251
bGxhYmxlKV9HZXRJbnRlcm5hbENGSFRUUENvb2tpZTsKIEBlbmQKIAogQGludGVyZmFjZSBOU1VS
TFNlc3Npb25Db25maWd1cmF0aW9uICgpCkBAIC0yMjgsNiArMjMwLDkgQEAgQ0ZVUkxSZWYgQ0ZV
UkxSZXF1ZXN0R2V0VVJMKENGVVJMUmVxdWVzdFJlZik7CiBDRlVSTFJlc3BvbnNlUmVmIENGVVJM
UmVzcG9uc2VDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYsIENGVVJMUmVmLCBDRlN0cmluZ1JlZiBtaW1l
VHlwZSwgU0ludDY0IGV4cGVjdGVkQ29udGVudExlbmd0aCwgQ0ZTdHJpbmdSZWYgdGV4dEVuY29k
aW5nTmFtZSwgQ0ZVUkxDYWNoZVN0b3JhZ2VQb2xpY3kpOwogdm9pZCBDRlVSTFJlc3BvbnNlU2V0
RXhwZWN0ZWRDb250ZW50TGVuZ3RoKENGVVJMUmVzcG9uc2VSZWYsIFNJbnQ2NCBsZW5ndGgpOwog
Q0ZVUkxSZXNwb25zZVJlZiBDRlVSTFJlc3BvbnNlQ3JlYXRlV2l0aEhUVFBSZXNwb25zZShDRkFs
bG9jYXRvclJlZiwgQ0ZVUkxSZWYsIENGSFRUUE1lc3NhZ2VSZWYsIENGVVJMQ2FjaGVTdG9yYWdl
UG9saWN5KTsKK0NGQXJyYXlSZWYgQ0ZIVFRQQ29va2llU3RvcmFnZUNvcHlDb29raWVzKENGSFRU
UENvb2tpZVN0b3JhZ2VSZWYpOwordm9pZCBDRkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2llcyhD
RkhUVFBDb29raWVTdG9yYWdlUmVmLCBDRkFycmF5UmVmIGNvb2tpZXMsIENGVVJMUmVmLCBDRlVS
TFJlZiBtYWluRG9jdW1lbnRVUkwpOwordm9pZCBDRkhUVFBDb29raWVTdG9yYWdlRGVsZXRlQ29v
a2llKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIENGSFRUUENvb2tpZVJlZik7CiAKICNlbmRpZiAv
LyAhUExBVEZPUk0oV0lOKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViQ29yZVN5c3RlbUludGVyZmFjZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLm1tCmluZGV4IDhlNDBjZjMwYThlMTZjYmQ2
YTAzOTFmMjNmZmZlYTU5MWNlNmU5OWEuLmE3MmY5YmMwYzg1MDE1ZTA0OGViOGJiNWNhNzIwNDk2
ZGY0NjE1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLm1tCkBAIC0zOSwxNCArMzksNiBAQCBXRUJDT1JFX0VY
UE9SVCBDRkhUVFBNZXNzYWdlUmVmICgqd2tDb3B5Q09OTkVDVFByb3h5UmVzcG9uc2UpKENGUmVh
ZFN0cmVhbVJlZiwgQwogV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0TGF5ZXJDb250ZW50c1Nj
YWxlKShDQUxheWVyICopOwogV0VCQ09SRV9FWFBPUlQgQ0ZTdHJpbmdFbmNvZGluZyAoKndrR2V0
V2ViRGVmYXVsdENGU3RyaW5nRW5jb2RpbmcpKHZvaWQpOwogCi1XRUJDT1JFX0VYUE9SVCBDRlVS
TFN0b3JhZ2VTZXNzaW9uUmVmICgqd2tDcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24pKENGU3Ry
aW5nUmVmKTsKLVdFQkNPUkVfRVhQT1JUIE5TVVJMUmVxdWVzdCogKCp3a0NvcHlSZXF1ZXN0V2l0
aFN0b3JhZ2VTZXNzaW9uKShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBOU1VSTFJlcXVlc3QqKTsK
LVdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkICgqd2tHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KShD
RkhUVFBDb29raWVTdG9yYWdlUmVmKTsKLVdFQkNPUkVfRVhQT1JUIE5TQXJyYXkgKigqd2tIVFRQ
Q29va2llcykoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkICgq
d2tTZXRIVFRQQ29va2llc0ZvclVSTCkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgTlNBcnJheSAq
LCBOU1VSTCAqLCBOU1VSTCAqKTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a0RlbGV0ZUFsbEhU
VFBDb29raWVzKShDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQg
KCp3a0RlbGV0ZUhUVFBDb29raWUpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5TSFRUUENvb2tp
ZSAqKTsKLQogV0VCQ09SRV9FWFBPUlQgdm9pZCgqd2tEZXN0cm95UmVuZGVyaW5nUmVzb3VyY2Vz
KSh2b2lkKTsKIAogV0VCQ09SRV9FWFBPUlQgYm9vbCAoKndrQ2FwdGlvbkFwcGVhcmFuY2VIYXNV
c2VyUHJlZmVyZW5jZXMpKHZvaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKaW5kZXggNWFkZjEyZTNmYmNhYmYwODBkM2U4
MmI3YjRkYmNkYmM5YzBhYWJhYi4uMDY3MmQ2MDJhZjI2YzYzYTgyYzRhZjI2MGI0MWE2Yjc0MDIx
M2M3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0
ZW1JbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5
c3RlbUludGVyZmFjZS5oCkBAIC0yMTQsMTUgKzIxNCw2IEBAIGV4dGVybiB2b2lkICgqd2tTZXRM
YXllckNvbnRlbnRzU2NhbGUpKENBTGF5ZXIgKik7CiAjZW5kaWYKIAogdHlwZWRlZiBjb25zdCBz
dHJ1Y3QgX19DRlVSTFN0b3JhZ2VTZXNzaW9uKiBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmOwotZXh0
ZXJuIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgKCp3a0NyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lv
bikoQ0ZTdHJpbmdSZWYpOwotZXh0ZXJuIE5TVVJMUmVxdWVzdCogKCp3a0NvcHlSZXF1ZXN0V2l0
aFN0b3JhZ2VTZXNzaW9uKShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBOU1VSTFJlcXVlc3QqKTsK
LQotdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ0ZIVFRQQ29va2llU3RvcmFnZSogQ0ZIVFRQQ29va2ll
U3RvcmFnZVJlZjsKLWV4dGVybiB1bnNpZ25lZCAoKndrR2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Ci1leHRlcm4gTlNBcnJheSAqKCp3a0hUVFBDb29r
aWVzKShDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsKLWV4dGVybiB2b2lkICgqd2tTZXRIVFRQQ29v
a2llc0ZvclVSTCkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgTlNBcnJheSAqLCBOU1VSTCAqLCBO
U1VSTCAqKTsKLWV4dGVybiB2b2lkICgqd2tEZWxldGVIVFRQQ29va2llKShDRkhUVFBDb29raWVT
dG9yYWdlUmVmLCBOU0hUVFBDb29raWUgKik7Ci1leHRlcm4gdm9pZCAoKndrRGVsZXRlQWxsSFRU
UENvb2tpZXMpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogCiAjaWYgIVBMQVRGT1JNKElPUykK
IGV4dGVybiB2b2lkICgqd2tTZXRNZXRhZGF0YVVSTCkoTlNTdHJpbmcgKnVybFN0cmluZywgTlNT
dHJpbmcgKnJlZmVycmVyLCBOU1N0cmluZyAqcGF0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCmluZGV4IGM0YjMzZjQw
NjM5NjYxNjVmNmJhYjFjNzdlMmYyNTY4MDdmMmQ4ZDMuLmVhMTAzZGJhZDZiMWRkMWIwZWZiZGJl
M2YwMGJiMGMwNWU2YzYzYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCkBAIC05MywxNCArOTMsNiBAQCBDRlR5cGVS
ZWYgKCp3a0NyZWF0ZUFYVGV4dE1hcmtlcikoY29uc3Qgdm9pZCAqYnl0ZXMsIHNpemVfdCBsZW4p
OwogQk9PTCAoKndrR2V0Qnl0ZXNGcm9tQVhUZXh0TWFya2VyKShDRlR5cGVSZWYgdGV4dE1hcmtl
ciwgdm9pZCAqYnl0ZXMsIHNpemVfdCBsZW5ndGgpOwogQVhVSUVsZW1lbnRSZWYgKCp3a0NyZWF0
ZUFYVUlFbGVtZW50UmVmKShpZCBlbGVtZW50KTsKIAotQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiAo
KndrQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKShDRlN0cmluZ1JlZik7Ci1OU1VSTFJlcXVl
c3QqICgqd2tDb3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lvbikoQ0ZVUkxTdG9yYWdlU2Vzc2lv
blJlZiwgTlNVUkxSZXF1ZXN0Kik7Ci11bnNpZ25lZCAoKndrR2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeSkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Ci1OU0FycmF5ICooKndrSFRUUENvb2tpZXMp
KENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwotdm9pZCAoKndrU2V0SFRUUENvb2tpZXNGb3JVUkwp
KENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5TQXJyYXkgKiwgTlNVUkwgKiwgTlNVUkwgKik7Ci12
b2lkICgqd2tEZWxldGVBbGxIVFRQQ29va2llcykoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Ci12
b2lkICgqd2tEZWxldGVIVFRQQ29va2llKShDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBOU0hUVFBD
b29raWUgKik7Ci0KIHZvaWQgKCp3a1NldE1ldGFkYXRhVVJMKShOU1N0cmluZyAqdXJsU3RyaW5n
LCBOU1N0cmluZyAqcmVmZXJyZXIsIE5TU3RyaW5nICpwYXRoKTsKIAogI2lmICFQTEFURk9STShJ
T1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uaAppbmRleCBkOGE5NjE4MjlhMDUyYTA2YzlhMzkwZTk3ZDAwM2I0NGY0
YmMwOThkLi5lNzUxYmYyNGU1MDFhMTg2YzUwOTg1MjczMjljOGZlMmM2M2U3ZThlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmgKQEAgLTE1Myw0ICsxNTMsOCBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCisjaWYg
UExBVEZPUk0oQ09DT0EpCitXRUJDT1JFX0VYUE9SVCBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmIGNy
ZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbihDRlN0cmluZ1JlZiBpZGVudGlmaWVyKTsKKyNlbmRp
ZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCmluZGV4IDdlOTAzMmMzNDNl
MWRkZmU3NDk4N2VhMzkxMTMwOWU4ZjM1MjI5NGIuLjRjOWZjM2RmNTVkZjJkNDc3MzQ2ZjY5NjZl
ZjQyZGVjMmM0NTA5NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCkBAIC05
MCw3ICs5MCw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3Rp
bmdTZXNzaW9uKCkKIAogICAgIFJldGFpblB0cjxDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmPiBzZXNz
aW9uOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHNlc3Npb24gPSBhZG9wdENGKHdrQ3JlYXRl
UHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKHNlc3Npb25OYW1lLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkp
KTsKKyAgICBzZXNzaW9uID0gYWRvcHRDRihjcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24oc2Vz
c2lvbk5hbWUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOwogI2Vsc2UKICAgICBzZXNzaW9uID0g
YWRvcHRDRih3a0NyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbihzZXNzaW9uTmFtZS5jcmVhdGVD
RlN0cmluZygpLmdldCgpLCBkZWZhdWx0U3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24o
KSkpOwogI2VuZGlmCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Np
b246OmVuc3VyZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcK
ICAgICBSZXRhaW5QdHI8Q0ZVUkxTdG9yYWdlU2Vzc2lvblJlZj4gc3RvcmFnZVNlc3Npb247CiAg
ICAgaWYgKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKSB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0g
ICAgICAgIHN0b3JhZ2VTZXNzaW9uID0gYWRvcHRDRih3a0NyZWF0ZVByaXZhdGVTdG9yYWdlU2Vz
c2lvbihjZklkZW50aWZpZXIuZ2V0KCkpKTsKKyAgICAgICAgc3RvcmFnZVNlc3Npb24gPSBhZG9w
dENGKGNyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbihjZklkZW50aWZpZXIuZ2V0KCkpKTsKICNl
bHNlCiAgICAgICAgIHN0b3JhZ2VTZXNzaW9uID0gYWRvcHRDRih3a0NyZWF0ZVByaXZhdGVTdG9y
YWdlU2Vzc2lvbihjZklkZW50aWZpZXIuZ2V0KCksIGRlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Np
b24oKS0+cGxhdGZvcm1TZXNzaW9uKCkpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggMTJmMWI2NjAy
Yjc5MzI1ZTQ3ODRiYjIxZGFlNDU3N2QwOTRjZDc5NS4uMTRiY2I2YWY5OTNmOTM5NjlmYzYyMDY1
MDAxYzJmZTI3NzgxMjBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAi
UmVzb3VyY2VSZXF1ZXN0QmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAorT0JK
Q19DTEFTUyBOU0NhY2hlZFVSTFJlc3BvbnNlOwogT0JKQ19DTEFTUyBOU1VSTFJlcXVlc3Q7CiAK
ICNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKENGVVJMQ09OTkVDVElPTikKQEAgLTEzNSw0ICsx
MzYsOSBAQCBpbmxpbmUgYm9vbCBSZXNvdXJjZVJlcXVlc3Q6OnJlc291cmNlUHJpb3JpdGllc0Vu
YWJsZWQoKQogI2VuZGlmCiB9CiAKKyNpZiBQTEFURk9STShDT0NPQSkKK05TVVJMUmVxdWVzdCAq
Y29weVJlcXVlc3RXaXRoU3RvcmFnZVNlc3Npb24oQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiwgTlNV
UkxSZXF1ZXN0ICopOworV0VCQ09SRV9FWFBPUlQgTlNDYWNoZWRVUkxSZXNwb25zZSAqY2FjaGVk
UmVzcG9uc2VGb3JSZXF1ZXN0KENGVVJMU3RvcmFnZVNlc3Npb25SZWYsIE5TVVJMUmVxdWVzdCAq
KTsKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29h
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25Db2NvYS5tbQppbmRleCA1M2E3OWIyODc4YTRlM2IzMmZhYmY2NzgyMzQ1YjgwMTVh
NmI1MGRhLi5kOTYwNWIxMDMyYTU4ZGVlZGRiNjExN2M5MzU1OTU4YTE4YTI2MTM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29j
b2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KQEAgLTk5LDQgKzk5LDM3IEBAIENvb2tp
ZVN0b3JhZ2VPYnNlcnZlciYgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVTdG9yYWdlT2Jz
ZXJ2ZXIoKSBjb25zdAogICAgIHJldHVybiAqbV9jb29raWVTdG9yYWdlT2JzZXJ2ZXI7CiB9CiAK
K0NGVVJMU3RvcmFnZVNlc3Npb25SZWYgY3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKENGU3Ry
aW5nUmVmIGlkZW50aWZpZXIpCit7CisgICAgY29uc3Qgdm9pZCogc2Vzc2lvblByb3BlcnR5S2V5
c1tdID0geyBfa0NGVVJMU3RvcmFnZVNlc3Npb25Jc1ByaXZhdGUgfTsKKyAgICBjb25zdCB2b2lk
KiBzZXNzaW9uUHJvcGVydHlWYWx1ZXNbXSA9IHsga0NGQm9vbGVhblRydWUgfTsKKyAgICBhdXRv
IHNlc3Npb25Qcm9wZXJ0aWVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgc2Vzc2lvblByb3BlcnR5S2V5cywgc2Vzc2lvblByb3BlcnR5VmFsdWVzLCBz
aXplb2Yoc2Vzc2lvblByb3BlcnR5S2V5cykgLyBzaXplb2YoKnNlc3Npb25Qcm9wZXJ0eUtleXMp
LCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVl
Q2FsbEJhY2tzKSk7CisgICAgYXV0byBzdG9yYWdlU2Vzc2lvbiA9IGFkb3B0Q0YoX0NGVVJMU3Rv
cmFnZVNlc3Npb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgaWRlbnRpZmllciwgc2Vzc2lv
blByb3BlcnRpZXMuZ2V0KCkpKTsKKworICAgIGlmICghc3RvcmFnZVNlc3Npb24pCisgICAgICAg
IHJldHVybiBudWxscHRyOworCisgICAgLy8gVGhlIHByaXZhdGUgc3RvcmFnZSBzZXNzaW9uIHNo
b3VsZCBoYXZlIHRoZSBzYW1lIHByb3BlcnRpZXMgYXMgdGhlIGRlZmF1bHQgc3RvcmFnZSBzZXNz
aW9uLAorICAgIC8vIHdpdGggdGhlIGV4Y2VwdGlvbiB0aGF0IGl0IHNob3VsZCBiZSBpbi1tZW1v
cnkgb25seSBzdG9yYWdlLgorICAgIAorICAgIC8vIEZJWE1FIDkxOTk2NDk6IElmIGFueSBvZiB0
aGUgc3RvcmFnZXMgZG8gbm90IGV4aXN0LCBkbyBubyB1c2UgdGhlIHN0b3JhZ2Ugc2Vzc2lvbi4K
KyAgICAvLyBUaGlzIGNvdWxkIG9jY3VyIGlmIHRoZXJlIGlzIGFuIGlzc3VlIGZpZ3VyaW5nIG91
dCB3aGVyZSB0byBwbGFjZSBhIHN0b3JhZ2Ugb24gZGlzayAoZS5nLiB0aGUKKyAgICAvLyBzYW5k
Ym94IGRvZXMgbm90IGFsbG93IENGTmV0d29yayBhY2Nlc3MpLgorCisgICAgYXV0byBjYWNoZSA9
IGFkb3B0Q0YoX0NGVVJMU3RvcmFnZVNlc3Npb25Db3B5Q2FjaGUoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgc3RvcmFnZVNlc3Npb24uZ2V0KCkpKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKworICAgIENGVVJMQ2FjaGVTZXRNZW1vcnlDYXBhY2l0eShjYWNoZS5nZXQo
KSwgW1tOU1VSTENhY2hlIHNoYXJlZFVSTENhY2hlXSBtZW1vcnlDYXBhY2l0eV0pOworCisgICAg
YXV0byBjb29raWVTdG9yYWdlID0gYWRvcHRDRihfQ0ZVUkxTdG9yYWdlU2Vzc2lvbkNvcHlDb29r
aWVTdG9yYWdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHN0b3JhZ2VTZXNzaW9uLmdldCgpKSk7Cisg
ICAgaWYgKCFjb29raWVTdG9yYWdlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIC8v
IEZJWE1FOiBVc2UgX0NGSFRUUENvb2tpZVN0b3JhZ2VHZXREZWZhdWx0IHdoZW4gVVNFKENGTkVU
V09SSykgaXMgZGVmaW5lZCBpbiBXZWJLaXQgZm9yIGNvbnNpc3RlbmN5LgorICAgIENGSFRUUENv
b2tpZVN0b3JhZ2VTZXRDb29raWVBY2NlcHRQb2xpY3koY29va2llU3RvcmFnZS5nZXQoKSwgW1tO
U0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXSBjb29raWVBY2NlcHRQ
b2xpY3ldKTsKKworICAgIHJldHVybiBzdG9yYWdlU2Vzc2lvbi5sZWFrUmVmKCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tCmluZGV4IDY0MmFl
MmVjYmYxMTU5NDMyYzQ4NmU2MTE1YWIzMzg5Y2FhMjAxNTguLjg1YWI5MTM2NTlhNDYxNDRkOWM0
MGUzMzc4ZGU2NDM2YmE1MWNkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQpAQCAtMjYw
LDExICsyNjAsMzQgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZvcm1IVFRQ
Qm9keSgpCiB2b2lkIFJlc291cmNlUmVxdWVzdDo6c2V0U3RvcmFnZVNlc3Npb24oQ0ZVUkxTdG9y
YWdlU2Vzc2lvblJlZiBzdG9yYWdlU2Vzc2lvbikKIHsKICAgICB1cGRhdGVQbGF0Zm9ybVJlcXVl
c3QoKTsKLSAgICBtX25zUmVxdWVzdCA9IGFkb3B0TlMod2tDb3B5UmVxdWVzdFdpdGhTdG9yYWdl
U2Vzc2lvbihzdG9yYWdlU2Vzc2lvbiwgbV9uc1JlcXVlc3QuZ2V0KCkpKTsKKyAgICBtX25zUmVx
dWVzdCA9IGFkb3B0TlMoY29weVJlcXVlc3RXaXRoU3RvcmFnZVNlc3Npb24oc3RvcmFnZVNlc3Np
b24sIG1fbnNSZXF1ZXN0LmdldCgpKSk7CiB9CiAKICNlbmRpZiAvLyBVU0UoQ0ZVUkxDT05ORUNU
SU9OKQogCitOU1VSTFJlcXVlc3QgKmNvcHlSZXF1ZXN0V2l0aFN0b3JhZ2VTZXNzaW9uKENGVVJM
U3RvcmFnZVNlc3Npb25SZWYgc3RvcmFnZVNlc3Npb24sIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCkK
K3sKKyAgICBpZiAoIXN0b3JhZ2VTZXNzaW9uIHx8ICFyZXF1ZXN0KQorICAgICAgICByZXR1cm4g
W3JlcXVlc3QgY29weV07CisKKyAgICBhdXRvIGNmUmVxdWVzdCA9IGFkb3B0Q0YoQ0ZVUkxSZXF1
ZXN0Q3JlYXRlTXV0YWJsZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgW3JlcXVlc3QgX0NGVVJM
UmVxdWVzdF0pKTsKKyAgICBfQ0ZVUkxSZXF1ZXN0U2V0U3RvcmFnZVNlc3Npb24oY2ZSZXF1ZXN0
LmdldCgpLCBzdG9yYWdlU2Vzc2lvbik7CisgICAgcmV0dXJuIFtbTlNVUkxSZXF1ZXN0IGFsbG9j
XSBfaW5pdFdpdGhDRlVSTFJlcXVlc3Q6Y2ZSZXF1ZXN0LmdldCgpXTsKK30KKworTlNDYWNoZWRV
UkxSZXNwb25zZSAqY2FjaGVkUmVzcG9uc2VGb3JSZXF1ZXN0KENGVVJMU3RvcmFnZVNlc3Npb25S
ZWYgc3RvcmFnZVNlc3Npb24sIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCkKK3sKKyAgICBpZiAoIXN0
b3JhZ2VTZXNzaW9uKQorICAgICAgICByZXR1cm4gW1tOU1VSTENhY2hlIHNoYXJlZFVSTENhY2hl
XSBjYWNoZWRSZXNwb25zZUZvclJlcXVlc3Q6cmVxdWVzdF07CisKKyAgICBhdXRvIGNhY2hlID0g
YWRvcHRDRihfQ0ZVUkxTdG9yYWdlU2Vzc2lvbkNvcHlDYWNoZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBzdG9yYWdlU2Vzc2lvbikpOworICAgIGF1dG8gY2FjaGVkUmVzcG9uc2UgPSBhZG9wdENGKENG
VVJMQ2FjaGVDb3B5UmVzcG9uc2VGb3JSZXF1ZXN0KGNhY2hlLmdldCgpLCBbcmVxdWVzdCBfQ0ZV
UkxSZXF1ZXN0XSkpOworICAgIGlmICghY2FjaGVkUmVzcG9uc2UpCisgICAgICAgIHJldHVybiBu
aWw7CisKKyAgICByZXR1cm4gW1tbTlNDYWNoZWRVUkxSZXNwb25zZSBhbGxvY10gX2luaXRXaXRo
Q0ZDYWNoZWRVUkxSZXNwb25zZTpjYWNoZWRSZXNwb25zZS5nZXQoKV0gYXV0b3JlbGVhc2VdOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUph
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUphck1h
Yy5tbQppbmRleCBjMmI1NjkwNDg1ZWI3MGMzNGNiOTg2ZGQyM2VlMjkwYzM3MDY5MDM3Li4yOTAw
NzUwYmQ0NWU0MGYwNjUxYjgxMjczMzBjMDM1MWM1OGY5MjBmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1tCkBAIC00MCw2ICs0
MCwxMCBAQAogI2ltcG9ydCA8d3RmL09wdGlvbmFsLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CiAKK0BpbnRlcmZhY2UgTlNVUkwgKCkKKy0gKENGVVJMUmVmKV9jZnVybDsK
K0BlbmQKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgTlNBcnJheSAqaHR0cENvb2tp
ZXNGb3JVUkwoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdlLCBOU1VSTCAqZmly
c3RQYXJ0eSwgTlNVUkwgKnVybCkKQEAgLTE2OCw2ICsxNzIsNTcgQEAgc3RhdGljIFN0cmluZyBj
b29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNv
bnN0IFVSTCYKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK3N0YXRpYyBOU0FycmF5ICpodHRw
Q29va2llcyhDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UpCit7CisgICAgaWYg
KCFjb29raWVTdG9yYWdlKSB7CisgICAgICAgIC8vIEZJWE1FOiBUaGUgZmFsbGJhY2sgdG8gTlNI
VFRQQ29va2llU3RvcmFnZSBzaG91bGQgbm90IGJlIHByZXNlbnQgd2hlbiBVU0UoQ0ZORVRXT1JL
KSBpcyBkZWZpbmVkIGluIFdlYktpdC4KKyAgICAgICAgcmV0dXJuIFtbTlNIVFRQQ29va2llU3Rv
cmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gY29va2llc107CisgICAgfQorCisgICAgYXV0
byBjb29raWVzID0gYWRvcHRDRihDRkhUVFBDb29raWVTdG9yYWdlQ29weUNvb2tpZXMoY29va2ll
U3RvcmFnZSkpOworICAgIHJldHVybiBbTlNIVFRQQ29va2llIF9jZjJuc0Nvb2tpZXM6Y29va2ll
cy5nZXQoKV07Cit9CisKK3N0YXRpYyB2b2lkIHNldEhUVFBDb29raWVzRm9yVVJMKENGSFRUUENv
b2tpZVN0b3JhZ2VSZWYgY29va2llU3RvcmFnZSwgTlNBcnJheSAqY29va2llcywgTlNVUkwgKnVy
bCwgTlNVUkwgKm1haW5Eb2N1bWVudFVSTCkKK3sKKyAgICBpZiAoIWNvb2tpZVN0b3JhZ2UpIHsK
KyAgICAgICAgLy8gRklYTUU6IFRoZSBmYWxsYmFjayB0byBOU0hUVFBDb29raWVTdG9yYWdlIHNo
b3VsZCBub3QgYmUgcHJlc2VudCB3aGVuIFVTRShDRk5FVFdPUkspIGlzIGRlZmluZWQgaW4gV2Vi
S2l0LgorICAgICAgICBbW05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3Jh
Z2VdIHNldENvb2tpZXM6Y29va2llcyBmb3JVUkw6dXJsIG1haW5Eb2N1bWVudFVSTDptYWluRG9j
dW1lbnRVUkxdOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBjZkNvb2tpZXMg
PSBhZG9wdENGKFtOU0hUVFBDb29raWUgX25zMmNmQ29va2llczpjb29raWVzXSk7CisgICAgQ0ZI
VFRQQ29va2llU3RvcmFnZVNldENvb2tpZXMoY29va2llU3RvcmFnZSwgY2ZDb29raWVzLmdldCgp
LCBbdXJsIF9jZnVybF0sIFttYWluRG9jdW1lbnRVUkwgX2NmdXJsXSk7Cit9CisKK3N0YXRpYyB2
b2lkIGRlbGV0ZUhUVFBDb29raWUoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdl
LCBOU0hUVFBDb29raWUgKmNvb2tpZSkKK3sKKyAgICBpZiAoIWNvb2tpZVN0b3JhZ2UpIHsKKyAg
ICAgICAgLy8gRklYTUU6IFRoZSBmYWxsYmFjayB0byBOU0hUVFBDb29raWVTdG9yYWdlIHNob3Vs
ZCBub3QgYmUgcHJlc2VudCB3aGVuIFVTRShDRk5FVFdPUkspIGlzIGRlZmluZWQgaW4gV2ViS2l0
LgorICAgICAgICBbW05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2Vd
IGRlbGV0ZUNvb2tpZTpjb29raWVdOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQ0ZI
VFRQQ29va2llU3RvcmFnZURlbGV0ZUNvb2tpZShjb29raWVTdG9yYWdlLCBbY29va2llIF9HZXRJ
bnRlcm5hbENGSFRUUENvb2tpZV0pOworfQorCitzdGF0aWMgdm9pZCBkZWxldGVBbGxIVFRQQ29v
a2llcyhDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UpCit7CisgICAgaWYgKCFj
b29raWVTdG9yYWdlKSB7CisgICAgICAgIC8vIEZJWE1FOiBUaGUgZmFsbGJhY2sgdG8gTlNIVFRQ
Q29va2llU3RvcmFnZSBzaG91bGQgbm90IGJlIHByZXNlbnQgd2hlbiBVU0UoQ0ZORVRXT1JLKSBp
cyBkZWZpbmVkIGluIFdlYktpdC4KKyAgICAgICAgTlNIVFRQQ29va2llU3RvcmFnZSAqY29va2ll
U3RvcmFnZSA9IFtOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXTsK
KyAgICAgICAgTlNBcnJheSAqY29va2llcyA9IFtjb29raWVTdG9yYWdlIGNvb2tpZXNdOworICAg
ICAgICBpZiAoIWNvb2tpZXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZm9yIChO
U0hUVFBDb29raWUgKmNvb2tpZSBpbiBjb29raWVzKQorICAgICAgICAgICAgW2Nvb2tpZVN0b3Jh
Z2UgZGVsZXRlQ29va2llOmNvb2tpZV07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBD
RkhUVFBDb29raWVTdG9yYWdlRGVsZXRlQWxsQ29va2llcyhjb29raWVTdG9yYWdlKTsKK30KKwog
c3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmws
IEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKQogewogICAgIGJvb2wg
ZGlkQWNjZXNzU2VjdXJlQ29va2llcyA9IGZhbHNlOwpAQCAtMjEzLDE2ICsyNjgsMjYgQEAgdm9p
ZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24s
IGNvbnN0IFVSTCYgZmlyc3RQYXIKICAgICAgICAgZmlsdGVyZWRDb29raWVzID0gYXBwbHlQYXJ0
aXRpb25Ub0Nvb2tpZXMocGFydGl0aW9uLCBmaWx0ZXJlZENvb2tpZXMuZ2V0KCkpOwogI2VuZGlm
CiAKLSAgICB3a1NldEhUVFBDb29raWVzRm9yVVJMKHNlc3Npb24uY29va2llU3RvcmFnZSgpLmdl
dCgpLCBmaWx0ZXJlZENvb2tpZXMuZ2V0KCksIGNvb2tpZVVSTCwgZmlyc3RQYXJ0eSk7CisgICAg
c2V0SFRUUENvb2tpZXNGb3JVUkwoc2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuZ2V0KCksIGZpbHRl
cmVkQ29va2llcy5nZXQoKSwgY29va2llVVJMLCBmaXJzdFBhcnR5KTsKIAogICAgIEVORF9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKK3N0YXRpYyB1bnNpZ25lZCBodHRwQ29va2llQWNjZXB0
UG9saWN5KENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgY29va2llU3RvcmFnZSkKK3sKKyAgICBpZiAo
IWNvb2tpZVN0b3JhZ2UpIHsKKyAgICAgICAgLy8gRklYTUU6IFRoZSBmYWxsYmFjayB0byBOU0hU
VFBDb29raWVTdG9yYWdlIHNob3VsZCBub3QgYmUgcHJlc2VudCB3aGVuIFVTRShDRk5FVFdPUksp
IGlzIGRlZmluZWQgaW4gV2ViS2l0LgorICAgICAgICByZXR1cm4gW1tOU0hUVFBDb29raWVTdG9y
YWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXSBjb29raWVBY2NlcHRQb2xpY3ldOworICAgIH0K
KworICAgIHJldHVybiBDRkhUVFBDb29raWVTdG9yYWdlR2V0Q29va2llQWNjZXB0UG9saWN5KGNv
b2tpZVN0b3JhZ2UpOworfQorCiBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiAvKmZpcnN0UGFydHkqLywgY29uc3QgVVJM
JiAvKnVybCovKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIE5T
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3kgPSBzdGF0aWNfY2FzdDxO
U0hUVFBDb29raWVBY2NlcHRQb2xpY3k+KHdrR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShzZXNz
aW9uLmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSkpOworICAgIE5TSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSBjb29raWVBY2NlcHRQb2xpY3kgPSBzdGF0aWNfY2FzdDxOU0hUVFBDb29raWVBY2NlcHRQb2xp
Y3k+KGh0dHBDb29raWVBY2NlcHRQb2xpY3koc2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuZ2V0KCkp
KTsKICAgICByZXR1cm4gY29va2llQWNjZXB0UG9saWN5ID09IE5TSFRUUENvb2tpZUFjY2VwdFBv
bGljeUFsd2F5cyB8fCBjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9s
aWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW4gfHwgY29va2llQWNjZXB0UG9saWN5ID09IE5T
SFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsK
IAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CkBAIC0yNTksNyArMzI0LDcgQEAgdm9p
ZCBkZWxldGVDb29raWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25z
dCBVUkwmIHVybCwgY29uc3QgU3QKICAgICBmb3IgKE5TVUludGVnZXIgaSA9IDA7IGkgPCBjb3Vu
dDsgKytpKSB7CiAgICAgICAgIE5TSFRUUENvb2tpZSAqY29va2llID0gKE5TSFRUUENvb2tpZSAq
KVtjb29raWVzIG9iamVjdEF0SW5kZXg6aV07CiAgICAgICAgIGlmIChbW2Nvb2tpZSBuYW1lXSBp
c0VxdWFsVG9TdHJpbmc6Y29va2llTmFtZVN0cmluZ10pCi0gICAgICAgICAgICB3a0RlbGV0ZUhU
VFBDb29raWUoY29va2llU3RvcmFnZS5nZXQoKSwgY29va2llKTsKKyAgICAgICAgICAgIGRlbGV0
ZUhUVFBDb29raWUoY29va2llU3RvcmFnZS5nZXQoKSwgY29va2llKTsKICAgICB9CiAKICAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpAQCAtMjY5LDcgKzMzNCw3IEBAIHZvaWQgZ2V0SG9z
dG5hbWVzV2l0aENvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBI
YXNoU2V0PFN0cmluCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAg
TlNBcnJheSAqY29va2llcyA9IHdrSFRUUENvb2tpZXMoc2Vzc2lvbi5jb29raWVTdG9yYWdlKCku
Z2V0KCkpOworICAgIE5TQXJyYXkgKmNvb2tpZXMgPSBodHRwQ29va2llcyhzZXNzaW9uLmNvb2tp
ZVN0b3JhZ2UoKS5nZXQoKSk7CiAgICAgCiAgICAgZm9yIChOU0hUVFBDb29raWUqIGNvb2tpZSBp
biBjb29raWVzKQogICAgICAgICBob3N0bmFtZXMuYWRkKFtjb29raWUgZG9tYWluXSk7CkBAIC0y
NzksNyArMzQ0LDcgQEAgdm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhjb25zdCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIEhhc2hTZXQ8U3RyaW4KIAogdm9pZCBkZWxldGVBbGxD
b29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbikKIHsKLSAgICB3a0Rl
bGV0ZUFsbEhUVFBDb29raWVzKHNlc3Npb24uY29va2llU3RvcmFnZSgpLmdldCgpKTsKKyAgICBk
ZWxldGVBbGxIVFRQQ29va2llcyhzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSk7CiB9CiAK
IH0KQEAgLTI5Myw3ICszNTgsNyBAQCB2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoY29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBWZWN0bwogICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAogICAgIFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9y
YWdlUmVmPiBjb29raWVTdG9yYWdlID0gc2Vzc2lvbi5jb29raWVTdG9yYWdlKCk7Ci0gICAgTlNB
cnJheSAqY29va2llcyA9IHdrSFRUUENvb2tpZXMoY29va2llU3RvcmFnZS5nZXQoKSk7CisgICAg
TlNBcnJheSAqY29va2llcyA9IGh0dHBDb29raWVzKGNvb2tpZVN0b3JhZ2UuZ2V0KCkpOwogICAg
IGlmICghY29va2llcykKICAgICAgICAgcmV0dXJuOwogCkBAIC0zMDksNyArMzc0LDcgQEAgdm9p
ZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYg
c2Vzc2lvbiwgY29uc3QgVmVjdG8KICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGZv
ciAoYXV0byYgY29va2llIDogaXQtPnZhbHVlKQotICAgICAgICAgICAgd2tEZWxldGVIVFRQQ29v
a2llKGNvb2tpZVN0b3JhZ2UuZ2V0KCksIGNvb2tpZS5nZXQoKSk7CisgICAgICAgICAgICBkZWxl
dGVIVFRQQ29va2llKGNvb2tpZVN0b3JhZ2UuZ2V0KCksIGNvb2tpZS5nZXQoKSk7CiAgICAgfQog
CiAgICAgW3Nlc3Npb24ubnNDb29raWVTdG9yYWdlKCkgX3NhdmVDb29raWVzXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVN
YWMubW0KaW5kZXggMGMzNTMxNGNhMjBhZThkZDQ4MTQzZjE0MDE5Zjk2ODI1NTk0ZmU1ZC4uMWM3
NGIzOTZjNzE4OGU3NzYxNzVlNjk4MWJkZTkzZTkxMzgyN2U1ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0K
QEAgLTE3Nyw3ICsxNzcsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5l
Y3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbAogI2VuZGlmCiAKICAg
ICBpZiAoZC0+bV9zdG9yYWdlU2Vzc2lvbikKLSAgICAgICAgbnNSZXF1ZXN0ID0gW3drQ29weVJl
cXVlc3RXaXRoU3RvcmFnZVNlc3Npb24oZC0+bV9zdG9yYWdlU2Vzc2lvbi5nZXQoKSwgbnNSZXF1
ZXN0KSBhdXRvcmVsZWFzZV07CisgICAgICAgIG5zUmVxdWVzdCA9IFtjb3B5UmVxdWVzdFdpdGhT
dG9yYWdlU2Vzc2lvbihkLT5tX3N0b3JhZ2VTZXNzaW9uLmdldCgpLCBuc1JlcXVlc3QpIGF1dG9y
ZWxlYXNlXTsKIAogICAgIEFTU0VSVChbTlNVUkxDb25uZWN0aW9uIGluc3RhbmNlc1Jlc3BvbmRU
b1NlbGVjdG9yOkBzZWxlY3RvcihfaW5pdFdpdGhSZXF1ZXN0OmRlbGVnYXRlOnVzZXNDYWNoZTpt
YXhDb250ZW50TGVuZ3RoOnN0YXJ0SW1tZWRpYXRlbHk6Y29ubmVjdGlvblByb3BlcnRpZXM6KV0p
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbQppbmRleCAyZjRiMjI4ZjE2OGI2MjdiMThjMDNlMjM0NDEwMmI2ZTgzYTNlOGE0
Li4wNDViOWIyZDQ4MmU0MjI3OWM5NmU5YTE5M2M0ZWQ3ZDA4NmI3OWMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAg
LTQ0LDYgKzQ0LDcgQEAKICNpbXBvcnQgIldpbmRvd1NlcnZlckNvbm5lY3Rpb24uaCIKICNpbXBv
cnQgPFdlYkNvcmUvQ29sb3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2lt
cG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNvcmUv
Tm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1QYXN0ZWJvYXJkLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgpAQCAtNTc2LDcg
KzU3Nyw3IEBAIHN0YXRpYyBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmIHByaXZhdGVCcm93c2luZ1Nl
c3Npb24oKQogICAgIGRpc3BhdGNoX29uY2UoJm9uY2UsIF57CiAgICAgICAgIE5TU3RyaW5nICpp
ZGVudGlmaWVyID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlQC5Qcml2YXRlQnJvd3Np
bmciLCBbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdXTsKIAotICAgICAg
ICBzZXNzaW9uID0gV0tDcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24oKENGU3RyaW5nUmVmKWlk
ZW50aWZpZXIpOworICAgICAgICBzZXNzaW9uID0gY3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9u
KChDRlN0cmluZ1JlZilpZGVudGlmaWVyKTsKICAgICB9KTsKIAogICAgIHJldHVybiBzZXNzaW9u
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQppbmRleCBlMjUxMjdjMjljMDM0ZjAy
ZGYwMWNmYmJiYWY1YzViNmU3ODBkYzA3Li43YTMzMzZjMDZlMDg2ZWMwNDg1N2VmNzQ5ODAwMzI1
ODBlOWI0ODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAtNzUsMTMg
Kzc1LDYgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogI2lmICFQTEFU
Rk9STShJT1MpCiAgICAgICAgIElOSVQoU2V0RHJhZ0ltYWdlKTsKICNlbmRpZgotICAgICAgICBJ
TklUKENyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbik7Ci0gICAgICAgIElOSVQoQ29weVJlcXVl
c3RXaXRoU3RvcmFnZVNlc3Npb24pOwotICAgICAgICBJTklUKEdldEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kpOwotICAgICAgICBJTklUKEhUVFBDb29raWVzKTsKLSAgICAgICAgSU5JVChTZXRIVFRQ
Q29va2llc0ZvclVSTCk7Ci0gICAgICAgIElOSVQoRGVsZXRlQWxsSFRUUENvb2tpZXMpOwotICAg
ICAgICBJTklUKERlbGV0ZUhUVFBDb29raWUpOwogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAg
ICAgSU5JVChTZXRNZXRhZGF0YVVSTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IDNmOGQ1YWZmMzJlYjdkNTg3NWY3NDM0
ZDUxOTYwZTI1NzA3ZGEzOTUuLmQ3MGM5NWFlODdkNTQ5YzcxNzZjMWYyZmYzNTcwM2NkMzQwOGUy
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tCkBAIC02ODQsNyArNjg0LDcgQEAgYm9vbCBXZWJQYWdlOjpwbGF0Zm9ybUhhc0xv
Y2FsRGF0YUZvclVSTChjb25zdCBXZWJDb3JlOjpVUkwmIHVybCkKICAgICBbcmVxdWVzdCBzZXRW
YWx1ZTooTlNTdHJpbmcqKXVzZXJBZ2VudCh1cmwpIGZvckhUVFBIZWFkZXJGaWVsZDpAIlVzZXIt
QWdlbnQiXTsKICAgICBOU0NhY2hlZFVSTFJlc3BvbnNlICpjYWNoZWRSZXNwb25zZTsKICAgICBp
ZiAoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBzdG9yYWdlU2Vzc2lvbiA9IGNvcmVQYWdlKCktPm1h
aW5GcmFtZSgpLmxvYWRlcigpLm5ldHdvcmtpbmdDb250ZXh0KCktPnN0b3JhZ2VTZXNzaW9uKCku
cGxhdGZvcm1TZXNzaW9uKCkpCi0gICAgICAgIGNhY2hlZFJlc3BvbnNlID0gV0tDYWNoZWRSZXNw
b25zZUZvclJlcXVlc3Qoc3RvcmFnZVNlc3Npb24sIHJlcXVlc3QpOworICAgICAgICBjYWNoZWRS
ZXNwb25zZSA9IGNhY2hlZFJlc3BvbnNlRm9yUmVxdWVzdChzdG9yYWdlU2Vzc2lvbiwgcmVxdWVz
dCk7CiAgICAgZWxzZQogICAgICAgICBjYWNoZWRSZXNwb25zZSA9IFtbTlNVUkxDYWNoZSBzaGFy
ZWRVUkxDYWNoZV0gY2FjaGVkUmVzcG9uc2VGb3JSZXF1ZXN0OnJlcXVlc3RdOwogICAgIFtyZXF1
ZXN0IHJlbGVhc2VdOwpAQCAtNjk4LDcgKzY5OCw3IEBAIHN0YXRpYyBOU0NhY2hlZFVSTFJlc3Bv
bnNlICpjYWNoZWRSZXNwb25zZUZvclVSTChXZWJQYWdlKiB3ZWJQYWdlLCBjb25zdCBVUkwmIHVy
CiAgICAgW3JlcXVlc3Qgc2V0VmFsdWU6KE5TU3RyaW5nICopd2ViUGFnZS0+dXNlckFnZW50KHVy
bCkgZm9ySFRUUEhlYWRlckZpZWxkOkAiVXNlci1BZ2VudCJdOwogCiAgICAgaWYgKENGVVJMU3Rv
cmFnZVNlc3Npb25SZWYgc3RvcmFnZVNlc3Npb24gPSB3ZWJQYWdlLT5jb3JlUGFnZSgpLT5tYWlu
RnJhbWUoKS5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpLT5zdG9yYWdlU2Vzc2lvbigpLnBs
YXRmb3JtU2Vzc2lvbigpKQotICAgICAgICByZXR1cm4gV0tDYWNoZWRSZXNwb25zZUZvclJlcXVl
c3Qoc3RvcmFnZVNlc3Npb24sIHJlcXVlc3QuZ2V0KCkpOworICAgICAgICByZXR1cm4gY2FjaGVk
UmVzcG9uc2VGb3JSZXF1ZXN0KHN0b3JhZ2VTZXNzaW9uLCByZXF1ZXN0LmdldCgpKTsKIAogICAg
IHJldHVybiBbW05TVVJMQ2FjaGUgc2hhcmVkVVJMQ2FjaGVdIGNhY2hlZFJlc3BvbnNlRm9yUmVx
dWVzdDpyZXF1ZXN0LmdldCgpXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQppbmRleCBlZmUz
MmUwNDFkNWJhNTM5MTZmMDgzMDQ3MmMyYTI5MjdhN2NiYWM3Li5lNDJmMjViNGM5YTI5M2E1NmZi
MzkwN2IzNDZhNTNjMWUzMTIxZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCkBAIC0xMDUs
MTMgKzEwNSw2IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICBJ
TklUKENyZWF0ZUFYVUlFbGVtZW50UmVmKTsKICAgICBJTklUKFVucmVnaXN0ZXJVbmlxdWVJZEZv
ckVsZW1lbnQpOwogI2VuZGlmCi0gICAgSU5JVChDcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24p
OwotICAgIElOSVQoQ29weVJlcXVlc3RXaXRoU3RvcmFnZVNlc3Npb24pOwotICAgIElOSVQoR2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7Ci0gICAgSU5JVChIVFRQQ29va2llcyk7Ci0gICAgSU5J
VChTZXRIVFRQQ29va2llc0ZvclVSTCk7Ci0gICAgSU5JVChEZWxldGVBbGxIVFRQQ29va2llcyk7
Ci0gICAgSU5JVChEZWxldGVIVFRQQ29va2llKTsKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAg
SU5JVChTZXRNZXRhZGF0YVVSTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KaW5kZXggNTRlYjEwNGYyYzQ4ZjE3ZmRjZWM4NmI5OTRmNzAxMjk0YzU5MjZhNy4u
NDc4YzIxY2E2MTg5Mjg3MDMyNmFiOGI3ZWZlMjMyMWM3OWQ4YTU1NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMzU1NSw3ICszNTU1LDcgQEAgLSAo
TlNDYWNoZWRVUkxSZXNwb25zZSAqKV9jYWNoZWRSZXNwb25zZUZvclVSTDooTlNVUkwgKilVUkwK
ICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIGlmIChDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmIHN0
b3JhZ2VTZXNzaW9uID0gX3ByaXZhdGUtPnBhZ2UtPm1haW5GcmFtZSgpLmxvYWRlcigpLm5ldHdv
cmtpbmdDb250ZXh0KCktPnN0b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNzaW9uKCkpCi0gICAg
ICAgIGNhY2hlZFJlc3BvbnNlID0gV0tDYWNoZWRSZXNwb25zZUZvclJlcXVlc3Qoc3RvcmFnZVNl
c3Npb24sIHJlcXVlc3QuZ2V0KCkpOworICAgICAgICBjYWNoZWRSZXNwb25zZSA9IGNhY2hlZFJl
c3BvbnNlRm9yUmVxdWVzdChzdG9yYWdlU2Vzc2lvbiwgcmVxdWVzdC5nZXQoKSk7CiAgICAgZWxz
ZQogICAgICAgICBjYWNoZWRSZXNwb25zZSA9IFtbTlNVUkxDYWNoZSBzaGFyZWRVUkxDYWNoZV0g
Y2FjaGVkUmVzcG9uc2VGb3JSZXF1ZXN0OnJlcXVlc3QuZ2V0KCldOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319196</attachid>
            <date>2017-08-28 12:53:42 -0700</date>
            <delta_ts>2017-08-28 13:35:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176032-20170828125341.patch</filename>
            <type>text/plain</type>
            <size>29085</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlhYTc4MGQ4OGNiMzc2
YTQ1ZWVmOTQ5ODI5OTQyNmIxODE5MWQ5Ny4uNzg0M2Y5MDY1MzViY2E2NzVmMDYxOGU3ZjgxOWQw
ZjA0MDRhYzI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE3LTA4LTI4ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFVwc3RyZWFtIENG
TmV0d29yay1yZWxhdGVkIFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjAzMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dl
YkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
UHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L1Jlc291cmNlUmVxdWVzdENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0OjpzZXRTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpjb3B5UmVxdWVzdFdp
dGhTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRSZXNwb25zZUZvclJl
cXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6Omh0dHBDb29raWVzKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEhU
VFBDb29raWVzRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OmRlbGV0ZUhUVFBDb29raWUpOgor
ICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlQWxsSFRUUENvb2tpZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0Q29va2llc0Zyb21ET00pOgorICAgICAgICAoV2ViQ29yZTo6aHR0cENvb2tpZUFjY2Vw
dFBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRW5hYmxlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpkZWxldGVDb29raWUpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0SG9zdG5hbWVzV2l0
aENvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlQWxsQ29va2llcyk6CisgICAgICAg
IChXZWJDb3JlOjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24pOgorCiAyMDE3LTA4LTI4ICBDYXJs
b3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
VEtdIFtXUEVdIFJlbmFtZSBFdmVudEhhbmRsZXJHbGliIHRvIEV2ZW50SGFuZGxlckdMaWIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nCmluZGV4IDc2ZGNkOTAxNzEwMDBiNzZmNmFiODAzODJlNTM2Y2U0MTdjYmIw
NjAuLmY2NjZlYjE4NjdiNTA1Yzk3YmQ1YWE1ZjRlNjNmOTc3ZWJlYTBlZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTA4LTI4ICBBbmR5IEVzdGVzICA8YWVzdGVz
QGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFVwc3RyZWFtIENGTmV0d29yay1yZWxhdGVk
IFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjAzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaDoKKwog
MjAxNy0wOC0yNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgTG9nZ2VyOjpsb2dBbHdheXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggM2I5NTg0Mjg1MDNhMWJjN2E0
MTY3YjRkY2Q4M2RhZGJhOTUwODU2YS4uMTE4MjkxNTZkOWI5YjVlMmZmMGRlZWVkNTkxZTk4MzA3
Y2EzMzY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNy0wOC0yOCAgQW5keSBFc3Rl
cyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBVcHN0cmVhbSBDRk5ldHdv
cmstcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwMzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0Ojpwcml2YXRlQnJvd3NpbmdTZXNz
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1J
bnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpwbGF0Zm9ybUhhc0xvY2FsRGF0YUZvclVSTCk6CisgICAgICAgIChXZWJL
aXQ6OmNhY2hlZFJlc3BvbnNlRm9yVVJMKToKKwogMjAxNy0wOC0yOCAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVyOiBpbXBsZW1l
bnQgc2NyZWVuIGNhcHR1cmUgY29tbWFuZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRl
eCA5N2I0ZGY4Y2MzYzYyNzk3NjZhMmFkYTc5YWE3YjRkNDczMGQ2ZjM4Li5kYzI0ZDc4ZDYwNDk4
MzdhYTIwYmJlMTE3OWNjZDAxNWE5MzBlMGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDgtMjggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUu
Y29tPgorCisgICAgICAgIFtDb2NvYV0gVXBzdHJlYW0gQ0ZOZXR3b3JrLXJlbGF0ZWQgV2ViS2l0
U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW06
CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSk6CisgICAgICAgICogV2ViVmll
dy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jYWNoZWRSZXNwb25zZUZvclVSTDpd
KToKKwogMjAxNy0wOC0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBQaWNraW5nIGFuIGVtb2ppIHZpYSB0aGUgZW1vamkgZGlhbG9nIChDdHJsK0Nt
ZCtTcGFjZSkgZmlyZXMgaW5jb25zaXN0ZW50IGJlZm9yZWlucHV0IGV2ZW50cy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKaW5kZXggMTg2ZTdjOTQwNmRm
NzNiMDhhOWU3Y2Y0NTg4NGU1OTU1YTc2YWU3ZC4uYmVlMjdmMzgyZDQzMjAxNDMwY2IyNDFkMjgx
NjJlOTA4ZTU0YzUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2Yv
Q0ZOZXR3b3JrU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3
b3JrU1BJLmgKQEAgLTExNSw2ICsxMTUsOCBAQCB0eXBlZGVmIHZvaWQgKF5DRkNhY2hlZFVSTFJl
c3BvbnNlQ2FsbEJhY2tCbG9jaykoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CiAKIEBpbnRlcmZh
Y2UgTlNIVFRQQ29va2llICgpCiAtIChDRkhUVFBDb29raWVSZWYpX0NGSFRUUENvb2tpZTsKKysg
KENGQXJyYXlSZWYgX19udWxsYWJsZSlfbnMyY2ZDb29raWVzOihOU0FycmF5ICogX19udWxsYWJs
ZSluc0Nvb2tpZXMgQ0ZfUkVUVVJOU19SRVRBSU5FRDsKKy0gKENGSFRUUENvb2tpZVJlZiBfX251
bGxhYmxlKV9HZXRJbnRlcm5hbENGSFRUUENvb2tpZTsKIEBlbmQKIAogQGludGVyZmFjZSBOU1VS
TFNlc3Npb25Db25maWd1cmF0aW9uICgpCkBAIC0xOTIsNiArMTk0LDcgQEAgZXh0ZXJuIENGU3Ry
aW5nUmVmIGNvbnN0IGtDRkhUVFBDb29raWVMb2NhbEZpbGVEb21haW47CiBleHRlcm4gY29uc3Qg
Q0ZTdHJpbmdSZWYga0NGSFRUUFZlcnNpb24xXzE7CiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYg
a0NGVVJMUmVxdWVzdEFsbG93QWxsUE9TVENhY2hpbmc7CiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdS
ZWYgX2tDRlVSTENvbm5lY3Rpb25Qcm9wZXJ0eVNob3VsZFNuaWZmOworZXh0ZXJuIGNvbnN0IENG
U3RyaW5nUmVmIF9rQ0ZVUkxTdG9yYWdlU2Vzc2lvbklzUHJpdmF0ZTsKIAogQ0ZIVFRQQ29va2ll
U3RvcmFnZVJlZiBfQ0ZIVFRQQ29va2llU3RvcmFnZUdldERlZmF1bHQoQ0ZBbGxvY2F0b3JSZWYp
OwogQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBDRkhUVFBDb29raWVTdG9yYWdlQ3JlYXRlRnJvbUZp
bGUoQ0ZBbGxvY2F0b3JSZWYsIENGVVJMUmVmLCBDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsKQEAg
LTIyOCw2ICsyMzEsOSBAQCBDRlVSTFJlZiBDRlVSTFJlcXVlc3RHZXRVUkwoQ0ZVUkxSZXF1ZXN0
UmVmKTsKIENGVVJMUmVzcG9uc2VSZWYgQ0ZVUkxSZXNwb25zZUNyZWF0ZShDRkFsbG9jYXRvclJl
ZiwgQ0ZVUkxSZWYsIENGU3RyaW5nUmVmIG1pbWVUeXBlLCBTSW50NjQgZXhwZWN0ZWRDb250ZW50
TGVuZ3RoLCBDRlN0cmluZ1JlZiB0ZXh0RW5jb2RpbmdOYW1lLCBDRlVSTENhY2hlU3RvcmFnZVBv
bGljeSk7CiB2b2lkIENGVVJMUmVzcG9uc2VTZXRFeHBlY3RlZENvbnRlbnRMZW5ndGgoQ0ZVUkxS
ZXNwb25zZVJlZiwgU0ludDY0IGxlbmd0aCk7CiBDRlVSTFJlc3BvbnNlUmVmIENGVVJMUmVzcG9u
c2VDcmVhdGVXaXRoSFRUUFJlc3BvbnNlKENGQWxsb2NhdG9yUmVmLCBDRlVSTFJlZiwgQ0ZIVFRQ
TWVzc2FnZVJlZiwgQ0ZVUkxDYWNoZVN0b3JhZ2VQb2xpY3kpOworQ0ZBcnJheVJlZiBDRkhUVFBD
b29raWVTdG9yYWdlQ29weUNvb2tpZXMoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Cit2b2lkIENG
SFRUUENvb2tpZVN0b3JhZ2VTZXRDb29raWVzKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIENGQXJy
YXlSZWYgY29va2llcywgQ0ZVUkxSZWYsIENGVVJMUmVmIG1haW5Eb2N1bWVudFVSTCk7Cit2b2lk
IENGSFRUUENvb2tpZVN0b3JhZ2VEZWxldGVDb29raWUoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwg
Q0ZIVFRQQ29va2llUmVmKTsKIAogI2VuZGlmIC8vICFQTEFURk9STShXSU4pCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9T
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJ
T1MubW0KaW5kZXggOGU0MGNmMzBhOGUxNmNiZDZhMDM5MWYyM2ZmZmVhNTkxY2U2ZTk5YS4uYTcy
ZjliYzBjODUwMTVlMDQ4ZWI4YmI1Y2E3MjA0OTZkZjQ2MTVmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MubW0K
QEAgLTM5LDE0ICszOSw2IEBAIFdFQkNPUkVfRVhQT1JUIENGSFRUUE1lc3NhZ2VSZWYgKCp3a0Nv
cHlDT05ORUNUUHJveHlSZXNwb25zZSkoQ0ZSZWFkU3RyZWFtUmVmLCBDCiBXRUJDT1JFX0VYUE9S
VCB2b2lkICgqd2tTZXRMYXllckNvbnRlbnRzU2NhbGUpKENBTGF5ZXIgKik7CiBXRUJDT1JFX0VY
UE9SVCBDRlN0cmluZ0VuY29kaW5nICgqd2tHZXRXZWJEZWZhdWx0Q0ZTdHJpbmdFbmNvZGluZyko
dm9pZCk7CiAKLVdFQkNPUkVfRVhQT1JUIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgKCp3a0NyZWF0
ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbikoQ0ZTdHJpbmdSZWYpOwotV0VCQ09SRV9FWFBPUlQgTlNV
UkxSZXF1ZXN0KiAoKndrQ29weVJlcXVlc3RXaXRoU3RvcmFnZVNlc3Npb24pKENGVVJMU3RvcmFn
ZVNlc3Npb25SZWYsIE5TVVJMUmVxdWVzdCopOwotV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgKCp3
a0dldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwotV0VC
Q09SRV9FWFBPUlQgTlNBcnJheSAqKCp3a0hUVFBDb29raWVzKShDRkhUVFBDb29raWVTdG9yYWdl
UmVmKTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a1NldEhUVFBDb29raWVzRm9yVVJMKShDRkhU
VFBDb29raWVTdG9yYWdlUmVmLCBOU0FycmF5ICosIE5TVVJMICosIE5TVVJMICopOwotV0VCQ09S
RV9FWFBPUlQgdm9pZCAoKndrRGVsZXRlQWxsSFRUUENvb2tpZXMpKENGSFRUUENvb2tpZVN0b3Jh
Z2VSZWYpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrRGVsZXRlSFRUUENvb2tpZSkoQ0ZIVFRQ
Q29va2llU3RvcmFnZVJlZiwgTlNIVFRQQ29va2llICopOwotCiBXRUJDT1JFX0VYUE9SVCB2b2lk
KCp3a0Rlc3Ryb3lSZW5kZXJpbmdSZXNvdXJjZXMpKHZvaWQpOwogCiBXRUJDT1JFX0VYUE9SVCBi
b29sICgqd2tDYXB0aW9uQXBwZWFyYW5jZUhhc1VzZXJQcmVmZXJlbmNlcykodm9pZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uu
aAppbmRleCA1YWRmMTJlM2ZiY2FiZjA4MGQzZTgyYjdiNGRiY2RiYzljMGFhYmFiLi4wNjcyZDYw
MmFmMjZjNjNhODJjNGFmMjYwYjQxYTZiNzQwMjEzYzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKQEAgLTIxNCwxNSAr
MjE0LDYgQEAgZXh0ZXJuIHZvaWQgKCp3a1NldExheWVyQ29udGVudHNTY2FsZSkoQ0FMYXllciAq
KTsKICNlbmRpZgogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NGVVJMU3RvcmFnZVNlc3Npb24q
IENGVVJMU3RvcmFnZVNlc3Npb25SZWY7Ci1leHRlcm4gQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiAo
KndrQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKShDRlN0cmluZ1JlZik7Ci1leHRlcm4gTlNV
UkxSZXF1ZXN0KiAoKndrQ29weVJlcXVlc3RXaXRoU3RvcmFnZVNlc3Npb24pKENGVVJMU3RvcmFn
ZVNlc3Npb25SZWYsIE5TVVJMUmVxdWVzdCopOwotCi10eXBlZGVmIHN0cnVjdCBPcGFxdWVDRkhU
VFBDb29raWVTdG9yYWdlKiBDRkhUVFBDb29raWVTdG9yYWdlUmVmOwotZXh0ZXJuIHVuc2lnbmVk
ICgqd2tHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KShDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsK
LWV4dGVybiBOU0FycmF5ICooKndrSFRUUENvb2tpZXMpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYp
OwotZXh0ZXJuIHZvaWQgKCp3a1NldEhUVFBDb29raWVzRm9yVVJMKShDRkhUVFBDb29raWVTdG9y
YWdlUmVmLCBOU0FycmF5ICosIE5TVVJMICosIE5TVVJMICopOwotZXh0ZXJuIHZvaWQgKCp3a0Rl
bGV0ZUhUVFBDb29raWUpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5TSFRUUENvb2tpZSAqKTsK
LWV4dGVybiB2b2lkICgqd2tEZWxldGVBbGxIVFRQQ29va2llcykoQ0ZIVFRQQ29va2llU3RvcmFn
ZVJlZik7CiAKICNpZiAhUExBVEZPUk0oSU9TKQogZXh0ZXJuIHZvaWQgKCp3a1NldE1ldGFkYXRh
VVJMKShOU1N0cmluZyAqdXJsU3RyaW5nLCBOU1N0cmluZyAqcmVmZXJyZXIsIE5TU3RyaW5nICpw
YXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0
ZW1JbnRlcmZhY2UubW0KaW5kZXggYzRiMzNmNDA2Mzk2NjE2NWY2YmFiMWM3N2UyZjI1NjgwN2Yy
ZDhkMy4uZWExMDNkYmFkNmIxZGQxYjBlZmJkYmUzZjAwYmIwYzA1ZTZjNjNhNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uu
bW0KQEAgLTkzLDE0ICs5Myw2IEBAIENGVHlwZVJlZiAoKndrQ3JlYXRlQVhUZXh0TWFya2VyKShj
b25zdCB2b2lkICpieXRlcywgc2l6ZV90IGxlbik7CiBCT09MICgqd2tHZXRCeXRlc0Zyb21BWFRl
eHRNYXJrZXIpKENGVHlwZVJlZiB0ZXh0TWFya2VyLCB2b2lkICpieXRlcywgc2l6ZV90IGxlbmd0
aCk7CiBBWFVJRWxlbWVudFJlZiAoKndrQ3JlYXRlQVhVSUVsZW1lbnRSZWYpKGlkIGVsZW1lbnQp
OwogCi1DRlVSTFN0b3JhZ2VTZXNzaW9uUmVmICgqd2tDcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Np
b24pKENGU3RyaW5nUmVmKTsKLU5TVVJMUmVxdWVzdCogKCp3a0NvcHlSZXF1ZXN0V2l0aFN0b3Jh
Z2VTZXNzaW9uKShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBOU1VSTFJlcXVlc3QqKTsKLXVuc2ln
bmVkICgqd2tHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KShDRkhUVFBDb29raWVTdG9yYWdlUmVm
KTsKLU5TQXJyYXkgKigqd2tIVFRQQ29va2llcykoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Ci12
b2lkICgqd2tTZXRIVFRQQ29va2llc0ZvclVSTCkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgTlNB
cnJheSAqLCBOU1VSTCAqLCBOU1VSTCAqKTsKLXZvaWQgKCp3a0RlbGV0ZUFsbEhUVFBDb29raWVz
KShDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsKLXZvaWQgKCp3a0RlbGV0ZUhUVFBDb29raWUpKENG
SFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5TSFRUUENvb2tpZSAqKTsKLQogdm9pZCAoKndrU2V0TWV0
YWRhdGFVUkwpKE5TU3RyaW5nICp1cmxTdHJpbmcsIE5TU3RyaW5nICpyZWZlcnJlciwgTlNTdHJp
bmcgKnBhdGgpOwogCiAjaWYgIVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCmluZGV4IGQ4YTk2
MTgyOWEwNTJhMDZjOWEzOTBlOTdkMDAzYjQ0ZjRiYzA5OGQuLmU3NTFiZjI0ZTUwMWExODZjNTA5
ODUyNzMyOWM4ZmUyYzYzZTdlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaApAQCAtMTUzLDQgKzE1Myw4IEBA
IHByaXZhdGU6CiAjZW5kaWYKIH07CiAKKyNpZiBQTEFURk9STShDT0NPQSkKK1dFQkNPUkVfRVhQ
T1JUIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgY3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKENG
U3RyaW5nUmVmIGlkZW50aWZpZXIpOworI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Np
b25DRk5ldC5jcHAKaW5kZXggN2U5MDMyYzM0M2UxZGRmZTc0OTg3ZWEzOTExMzA5ZThmMzUyMjk0
Yi4uNGM5ZmMzZGY1NWRmMmQ0NzczNDZmNjk2NmVmNDJkZWMyYzQ1MDk3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25D
Rk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKQEAgLTkwLDcgKzkwLDcgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKQogCiAgICAgUmV0YWluUHRy
PENGVVJMU3RvcmFnZVNlc3Npb25SZWY+IHNlc3Npb247CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0g
ICAgc2Vzc2lvbiA9IGFkb3B0Q0Yod2tDcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24oc2Vzc2lv
bk5hbWUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOworICAgIHNlc3Npb24gPSBhZG9wdENGKGNy
ZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbihzZXNzaW9uTmFtZS5jcmVhdGVDRlN0cmluZygpLmdl
dCgpKSk7CiAjZWxzZQogICAgIHNlc3Npb24gPSBhZG9wdENGKHdrQ3JlYXRlUHJpdmF0ZVN0b3Jh
Z2VTZXNzaW9uKHNlc3Npb25OYW1lLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGRlZmF1bHRTdG9y
YWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpKSk7CiAjZW5kaWYKQEAgLTEyNiw3ICsxMjYs
NyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZwogICAgIFJldGFpblB0cjxDRlVSTFN0b3JhZ2VT
ZXNzaW9uUmVmPiBzdG9yYWdlU2Vzc2lvbjsKICAgICBpZiAoc2Vzc2lvbklELmlzRXBoZW1lcmFs
KCkpIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICAgICAgc3RvcmFnZVNlc3Npb24gPSBhZG9w
dENGKHdrQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKGNmSWRlbnRpZmllci5nZXQoKSkpOwor
ICAgICAgICBzdG9yYWdlU2Vzc2lvbiA9IGFkb3B0Q0YoY3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNz
aW9uKGNmSWRlbnRpZmllci5nZXQoKSkpOwogI2Vsc2UKICAgICAgICAgc3RvcmFnZVNlc3Npb24g
PSBhZG9wdENGKHdrQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKGNmSWRlbnRpZmllci5nZXQo
KSwgZGVmYXVsdE5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLT5wbGF0Zm9ybVNlc3Npb24oKSkpOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZVJlcXVlc3QuaAppbmRleCAxMmYxYjY2MDJiNzkzMjVlNDc4NGJiMjFkYWU0NTc3ZDA5NGNk
Nzk1Li4xNGJjYjZhZjk5M2Y5Mzk2OWZjNjIwNjUwMDFjMmZlMjc3ODEyMGIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgK
QEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3RCYXNlLmgiCiAjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgogCitPQkpDX0NMQVNTIE5TQ2FjaGVkVVJMUmVzcG9uc2U7
CiBPQkpDX0NMQVNTIE5TVVJMUmVxdWVzdDsKIAogI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBVU0Uo
Q0ZVUkxDT05ORUNUSU9OKQpAQCAtMTM1LDQgKzEzNiw5IEBAIGlubGluZSBib29sIFJlc291cmNl
UmVxdWVzdDo6cmVzb3VyY2VQcmlvcml0aWVzRW5hYmxlZCgpCiAjZW5kaWYKIH0KIAorI2lmIFBM
QVRGT1JNKENPQ09BKQorTlNVUkxSZXF1ZXN0ICpjb3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lv
bihDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBOU1VSTFJlcXVlc3QgKik7CitXRUJDT1JFX0VYUE9S
VCBOU0NhY2hlZFVSTFJlc3BvbnNlICpjYWNoZWRSZXNwb25zZUZvclJlcXVlc3QoQ0ZVUkxTdG9y
YWdlU2Vzc2lvblJlZiwgTlNVUkxSZXF1ZXN0ICopOworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29j
b2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCmluZGV4IDUzYTc5
YjI4NzhhNGUzYjMyZmFiZjY3ODIzNDViODAxNWE2YjUwZGEuLmQ5NjA1YjEwMzJhNThkZWVkZGI2
MTE3YzkzNTU5NThhMThhMjYxMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2Nv
YS5tbQpAQCAtOTksNCArOTksMzcgQEAgQ29va2llU3RvcmFnZU9ic2VydmVyJiBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNvb2tpZVN0b3JhZ2VPYnNlcnZlcigpIGNvbnN0CiAgICAgcmV0dXJuICpt
X2Nvb2tpZVN0b3JhZ2VPYnNlcnZlcjsKIH0KIAorQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBjcmVh
dGVQcml2YXRlU3RvcmFnZVNlc3Npb24oQ0ZTdHJpbmdSZWYgaWRlbnRpZmllcikKK3sKKyAgICBj
b25zdCB2b2lkKiBzZXNzaW9uUHJvcGVydHlLZXlzW10gPSB7IF9rQ0ZVUkxTdG9yYWdlU2Vzc2lv
bklzUHJpdmF0ZSB9OworICAgIGNvbnN0IHZvaWQqIHNlc3Npb25Qcm9wZXJ0eVZhbHVlc1tdID0g
eyBrQ0ZCb29sZWFuVHJ1ZSB9OworICAgIGF1dG8gc2Vzc2lvblByb3BlcnRpZXMgPSBhZG9wdENG
KENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBzZXNzaW9uUHJvcGVydHlL
ZXlzLCBzZXNzaW9uUHJvcGVydHlWYWx1ZXMsIHNpemVvZihzZXNzaW9uUHJvcGVydHlLZXlzKSAv
IHNpemVvZigqc2Vzc2lvblByb3BlcnR5S2V5cyksICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxC
YWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKKyAgICBhdXRvIHN0b3Jh
Z2VTZXNzaW9uID0gYWRvcHRDRihfQ0ZVUkxTdG9yYWdlU2Vzc2lvbkNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBpZGVudGlmaWVyLCBzZXNzaW9uUHJvcGVydGllcy5nZXQoKSkpOworCisgICAg
aWYgKCFzdG9yYWdlU2Vzc2lvbikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAvLyBU
aGUgcHJpdmF0ZSBzdG9yYWdlIHNlc3Npb24gc2hvdWxkIGhhdmUgdGhlIHNhbWUgcHJvcGVydGll
cyBhcyB0aGUgZGVmYXVsdCBzdG9yYWdlIHNlc3Npb24sCisgICAgLy8gd2l0aCB0aGUgZXhjZXB0
aW9uIHRoYXQgaXQgc2hvdWxkIGJlIGluLW1lbW9yeSBvbmx5IHN0b3JhZ2UuCisgICAgCisgICAg
Ly8gRklYTUUgOTE5OTY0OTogSWYgYW55IG9mIHRoZSBzdG9yYWdlcyBkbyBub3QgZXhpc3QsIGRv
IG5vIHVzZSB0aGUgc3RvcmFnZSBzZXNzaW9uLgorICAgIC8vIFRoaXMgY291bGQgb2NjdXIgaWYg
dGhlcmUgaXMgYW4gaXNzdWUgZmlndXJpbmcgb3V0IHdoZXJlIHRvIHBsYWNlIGEgc3RvcmFnZSBv
biBkaXNrIChlLmcuIHRoZQorICAgIC8vIHNhbmRib3ggZG9lcyBub3QgYWxsb3cgQ0ZOZXR3b3Jr
IGFjY2VzcykuCisKKyAgICBhdXRvIGNhY2hlID0gYWRvcHRDRihfQ0ZVUkxTdG9yYWdlU2Vzc2lv
bkNvcHlDYWNoZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBzdG9yYWdlU2Vzc2lvbi5nZXQoKSkpOwor
ICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgQ0ZVUkxDYWNo
ZVNldE1lbW9yeUNhcGFjaXR5KGNhY2hlLmdldCgpLCBbW05TVVJMQ2FjaGUgc2hhcmVkVVJMQ2Fj
aGVdIG1lbW9yeUNhcGFjaXR5XSk7CisKKyAgICBhdXRvIGNvb2tpZVN0b3JhZ2UgPSBhZG9wdENG
KF9DRlVSTFN0b3JhZ2VTZXNzaW9uQ29weUNvb2tpZVN0b3JhZ2Uoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgc3RvcmFnZVNlc3Npb24uZ2V0KCkpKTsKKyAgICBpZiAoIWNvb2tpZVN0b3JhZ2UpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgLy8gRklYTUU6IFVzZSBfQ0ZIVFRQQ29va2llU3Rv
cmFnZUdldERlZmF1bHQgd2hlbiBVU0UoQ0ZORVRXT1JLKSBpcyBkZWZpbmVkIGluIFdlYktpdCBm
b3IgY29uc2lzdGVuY3kuCisgICAgQ0ZIVFRQQ29va2llU3RvcmFnZVNldENvb2tpZUFjY2VwdFBv
bGljeShjb29raWVTdG9yYWdlLmdldCgpLCBbW05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRU
UENvb2tpZVN0b3JhZ2VdIGNvb2tpZUFjY2VwdFBvbGljeV0pOworCisgICAgcmV0dXJuIHN0b3Jh
Z2VTZXNzaW9uLmxlYWtSZWYoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVl
c3RDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3Vy
Y2VSZXF1ZXN0Q29jb2EubW0KaW5kZXggNjQyYWUyZWNiZjExNTk0MzJjNDg2ZTYxMTVhYjMzODlj
YWEyMDE1OC4uODVhYjkxMzY1OWE0NjE0NGQ5YzQwZTMzNzhkZTY0MzZiYTUxY2QwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVl
c3RDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jl
c291cmNlUmVxdWVzdENvY29hLm1tCkBAIC0yNjAsMTEgKzI2MCwzNCBAQCB2b2lkIFJlc291cmNl
UmVxdWVzdDo6ZG9VcGRhdGVQbGF0Zm9ybUhUVFBCb2R5KCkKIHZvaWQgUmVzb3VyY2VSZXF1ZXN0
OjpzZXRTdG9yYWdlU2Vzc2lvbihDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmIHN0b3JhZ2VTZXNzaW9u
KQogewogICAgIHVwZGF0ZVBsYXRmb3JtUmVxdWVzdCgpOwotICAgIG1fbnNSZXF1ZXN0ID0gYWRv
cHROUyh3a0NvcHlSZXF1ZXN0V2l0aFN0b3JhZ2VTZXNzaW9uKHN0b3JhZ2VTZXNzaW9uLCBtX25z
UmVxdWVzdC5nZXQoKSkpOworICAgIG1fbnNSZXF1ZXN0ID0gYWRvcHROUyhjb3B5UmVxdWVzdFdp
dGhTdG9yYWdlU2Vzc2lvbihzdG9yYWdlU2Vzc2lvbiwgbV9uc1JlcXVlc3QuZ2V0KCkpKTsKIH0K
IAogI2VuZGlmIC8vIFVTRShDRlVSTENPTk5FQ1RJT04pCiAKK05TVVJMUmVxdWVzdCAqY29weVJl
cXVlc3RXaXRoU3RvcmFnZVNlc3Npb24oQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBzdG9yYWdlU2Vz
c2lvbiwgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0KQoreworICAgIGlmICghc3RvcmFnZVNlc3Npb24g
fHwgIXJlcXVlc3QpCisgICAgICAgIHJldHVybiBbcmVxdWVzdCBjb3B5XTsKKworICAgIGF1dG8g
Y2ZSZXF1ZXN0ID0gYWRvcHRDRihDRlVSTFJlcXVlc3RDcmVhdGVNdXRhYmxlQ29weShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBbcmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSkpOworICAgIF9DRlVSTFJlcXVl
c3RTZXRTdG9yYWdlU2Vzc2lvbihjZlJlcXVlc3QuZ2V0KCksIHN0b3JhZ2VTZXNzaW9uKTsKKyAg
ICByZXR1cm4gW1tOU1VSTFJlcXVlc3QgYWxsb2NdIF9pbml0V2l0aENGVVJMUmVxdWVzdDpjZlJl
cXVlc3QuZ2V0KCldOworfQorCitOU0NhY2hlZFVSTFJlc3BvbnNlICpjYWNoZWRSZXNwb25zZUZv
clJlcXVlc3QoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBzdG9yYWdlU2Vzc2lvbiwgTlNVUkxSZXF1
ZXN0ICpyZXF1ZXN0KQoreworICAgIGlmICghc3RvcmFnZVNlc3Npb24pCisgICAgICAgIHJldHVy
biBbW05TVVJMQ2FjaGUgc2hhcmVkVVJMQ2FjaGVdIGNhY2hlZFJlc3BvbnNlRm9yUmVxdWVzdDpy
ZXF1ZXN0XTsKKworICAgIGF1dG8gY2FjaGUgPSBhZG9wdENGKF9DRlVSTFN0b3JhZ2VTZXNzaW9u
Q29weUNhY2hlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHN0b3JhZ2VTZXNzaW9uKSk7CisgICAgYXV0
byBjYWNoZWRSZXNwb25zZSA9IGFkb3B0Q0YoQ0ZVUkxDYWNoZUNvcHlSZXNwb25zZUZvclJlcXVl
c3QoY2FjaGUuZ2V0KCksIFtyZXF1ZXN0IF9DRlVSTFJlcXVlc3RdKSk7CisgICAgaWYgKCFjYWNo
ZWRSZXNwb25zZSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHJldHVybiBbW1tOU0NhY2hl
ZFVSTFJlc3BvbnNlIGFsbG9jXSBfaW5pdFdpdGhDRkNhY2hlZFVSTFJlc3BvbnNlOmNhY2hlZFJl
c3BvbnNlLmdldCgpXSBhdXRvcmVsZWFzZV07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1tCmluZGV4IGMyYjU2OTA0ODVlYjcwYzM0
Y2I5ODZkZDIzZWUyOTBjMzcwNjkwMzcuLjI5MDA3NTBiZDQ1ZTQwZjA2NTFiODEyNzMzMGMwMzUx
YzU4ZjkyMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L0Nvb2tpZUphck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9Db29raWVKYXJNYWMubW0KQEAgLTQwLDYgKzQwLDEwIEBACiAjaW1wb3J0IDx3dGYvT3B0aW9u
YWwuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAorQGludGVyZmFjZSBO
U1VSTCAoKQorLSAoQ0ZVUkxSZWYpX2NmdXJsOworQGVuZAorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHN0YXRpYyBOU0FycmF5ICpodHRwQ29va2llc0ZvclVSTChDRkhUVFBDb29raWVTdG9yYWdl
UmVmIGNvb2tpZVN0b3JhZ2UsIE5TVVJMICpmaXJzdFBhcnR5LCBOU1VSTCAqdXJsKQpAQCAtMTY4
LDYgKzE3Miw1NyBAQCBzdGF0aWMgU3RyaW5nIGNvb2tpZXNGb3JTZXNzaW9uKGNvbnN0IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJgogICAgIHJldHVybiBTdHJpbmco
KTsKIH0KIAorc3RhdGljIE5TQXJyYXkgKmh0dHBDb29raWVzKENGSFRUUENvb2tpZVN0b3JhZ2VS
ZWYgY29va2llU3RvcmFnZSkKK3sKKyAgICBpZiAoIWNvb2tpZVN0b3JhZ2UpIHsKKyAgICAgICAg
Ly8gRklYTUU6IFRoZSBmYWxsYmFjayB0byBOU0hUVFBDb29raWVTdG9yYWdlIHNob3VsZCBub3Qg
YmUgcHJlc2VudCB3aGVuIFVTRShDRk5FVFdPUkspIGlzIGRlZmluZWQgaW4gV2ViS2l0LgorICAg
ICAgICByZXR1cm4gW1tOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdl
XSBjb29raWVzXTsKKyAgICB9CisKKyAgICBhdXRvIGNvb2tpZXMgPSBhZG9wdENGKENGSFRUUENv
b2tpZVN0b3JhZ2VDb3B5Q29va2llcyhjb29raWVTdG9yYWdlKSk7CisgICAgcmV0dXJuIFtOU0hU
VFBDb29raWUgX2NmMm5zQ29va2llczpjb29raWVzLmdldCgpXTsKK30KKworc3RhdGljIHZvaWQg
c2V0SFRUUENvb2tpZXNGb3JVUkwoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdl
LCBOU0FycmF5ICpjb29raWVzLCBOU1VSTCAqdXJsLCBOU1VSTCAqbWFpbkRvY3VtZW50VVJMKQor
eworICAgIGlmICghY29va2llU3RvcmFnZSkgeworICAgICAgICAvLyBGSVhNRTogVGhlIGZhbGxi
YWNrIHRvIE5TSFRUUENvb2tpZVN0b3JhZ2Ugc2hvdWxkIG5vdCBiZSBwcmVzZW50IHdoZW4gVVNF
KENGTkVUV09SSykgaXMgZGVmaW5lZCBpbiBXZWJLaXQuCisgICAgICAgIFtbTlNIVFRQQ29va2ll
U3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gc2V0Q29va2llczpjb29raWVzIGZvclVS
TDp1cmwgbWFpbkRvY3VtZW50VVJMOm1haW5Eb2N1bWVudFVSTF07CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBhdXRvIGNmQ29va2llcyA9IGFkb3B0Q0YoW05TSFRUUENvb2tpZSBfbnMy
Y2ZDb29raWVzOmNvb2tpZXNdKTsKKyAgICBDRkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2llcyhj
b29raWVTdG9yYWdlLCBjZkNvb2tpZXMuZ2V0KCksIFt1cmwgX2NmdXJsXSwgW21haW5Eb2N1bWVu
dFVSTCBfY2Z1cmxdKTsKK30KKworc3RhdGljIHZvaWQgZGVsZXRlSFRUUENvb2tpZShDRkhUVFBD
b29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UsIE5TSFRUUENvb2tpZSAqY29va2llKQorewor
ICAgIGlmICghY29va2llU3RvcmFnZSkgeworICAgICAgICAvLyBGSVhNRTogVGhlIGZhbGxiYWNr
IHRvIE5TSFRUUENvb2tpZVN0b3JhZ2Ugc2hvdWxkIG5vdCBiZSBwcmVzZW50IHdoZW4gVVNFKENG
TkVUV09SSykgaXMgZGVmaW5lZCBpbiBXZWJLaXQuCisgICAgICAgIFtbTlNIVFRQQ29va2llU3Rv
cmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gZGVsZXRlQ29va2llOmNvb2tpZV07CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBDRkhUVFBDb29raWVTdG9yYWdlRGVsZXRlQ29va2ll
KGNvb2tpZVN0b3JhZ2UsIFtjb29raWUgX0dldEludGVybmFsQ0ZIVFRQQ29va2llXSk7Cit9CisK
K3N0YXRpYyB2b2lkIGRlbGV0ZUFsbEhUVFBDb29raWVzKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYg
Y29va2llU3RvcmFnZSkKK3sKKyAgICBpZiAoIWNvb2tpZVN0b3JhZ2UpIHsKKyAgICAgICAgLy8g
RklYTUU6IFRoZSBmYWxsYmFjayB0byBOU0hUVFBDb29raWVTdG9yYWdlIHNob3VsZCBub3QgYmUg
cHJlc2VudCB3aGVuIFVTRShDRk5FVFdPUkspIGlzIGRlZmluZWQgaW4gV2ViS2l0LgorICAgICAg
ICBOU0hUVFBDb29raWVTdG9yYWdlICpjb29raWVTdG9yYWdlID0gW05TSFRUUENvb2tpZVN0b3Jh
Z2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdOworICAgICAgICBOU0FycmF5ICpjb29raWVzID0g
W2Nvb2tpZVN0b3JhZ2UgY29va2llc107CisgICAgICAgIGlmICghY29va2llcykKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBmb3IgKE5TSFRUUENvb2tpZSAqY29va2llIGluIGNvb2tp
ZXMpCisgICAgICAgICAgICBbY29va2llU3RvcmFnZSBkZWxldGVDb29raWU6Y29va2llXTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIENGSFRUUENvb2tpZVN0b3JhZ2VEZWxldGVBbGxD
b29raWVzKGNvb2tpZVN0b3JhZ2UpOworfQorCiBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29r
aWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVk
ZVNlY3VyZUNvb2tpZXMpCiB7CiAgICAgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzID0gZmFs
c2U7CkBAIC0yMTMsMTYgKzI2OCwyNiBAQCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcgogICAgICAg
ICBmaWx0ZXJlZENvb2tpZXMgPSBhcHBseVBhcnRpdGlvblRvQ29va2llcyhwYXJ0aXRpb24sIGZp
bHRlcmVkQ29va2llcy5nZXQoKSk7CiAjZW5kaWYKIAotICAgIHdrU2V0SFRUUENvb2tpZXNGb3JV
Ukwoc2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuZ2V0KCksIGZpbHRlcmVkQ29va2llcy5nZXQoKSwg
Y29va2llVVJMLCBmaXJzdFBhcnR5KTsKKyAgICBzZXRIVFRQQ29va2llc0ZvclVSTChzZXNzaW9u
LmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSwgZmlsdGVyZWRDb29raWVzLmdldCgpLCBjb29raWVVUkws
IGZpcnN0UGFydHkpOwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAorc3Rh
dGljIHVuc2lnbmVkIGh0dHBDb29raWVBY2NlcHRQb2xpY3koQ0ZIVFRQQ29va2llU3RvcmFnZVJl
ZiBjb29raWVTdG9yYWdlKQoreworICAgIGlmICghY29va2llU3RvcmFnZSkgeworICAgICAgICAv
LyBGSVhNRTogVGhlIGZhbGxiYWNrIHRvIE5TSFRUUENvb2tpZVN0b3JhZ2Ugc2hvdWxkIG5vdCBi
ZSBwcmVzZW50IHdoZW4gVVNFKENGTkVUV09SSykgaXMgZGVmaW5lZCBpbiBXZWJLaXQuCisgICAg
ICAgIHJldHVybiBbW05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2Vd
IGNvb2tpZUFjY2VwdFBvbGljeV07CisgICAgfQorCisgICAgcmV0dXJuIENGSFRUUENvb2tpZVN0
b3JhZ2VHZXRDb29raWVBY2NlcHRQb2xpY3koY29va2llU3RvcmFnZSk7Cit9CisKIGJvb2wgY29v
a2llc0VuYWJsZWQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBV
UkwmIC8qZmlyc3RQYXJ0eSovLCBjb25zdCBVUkwmIC8qdXJsKi8pCiB7CiAgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tp
ZUFjY2VwdFBvbGljeSA9IHN0YXRpY19jYXN0PE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeT4od2tH
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHNlc3Npb24uY29va2llU3RvcmFnZSgpLmdldCgpKSk7
CisgICAgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeSA9IHN0YXRp
Y19jYXN0PE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeT4oaHR0cENvb2tpZUFjY2VwdFBvbGljeShz
ZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSkpOwogICAgIHJldHVybiBjb29raWVBY2NlcHRQ
b2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzIHx8IGNvb2tpZUFjY2VwdFBv
bGljeSA9PSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFp
biB8fCBjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVz
aXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKQEAgLTI1OSw3ICszMjQsNyBAQCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdAogICAgIGZv
ciAoTlNVSW50ZWdlciBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgTlNIVFRQQ29v
a2llICpjb29raWUgPSAoTlNIVFRQQ29va2llICopW2Nvb2tpZXMgb2JqZWN0QXRJbmRleDppXTsK
ICAgICAgICAgaWYgKFtbY29va2llIG5hbWVdIGlzRXF1YWxUb1N0cmluZzpjb29raWVOYW1lU3Ry
aW5nXSkKLSAgICAgICAgICAgIHdrRGVsZXRlSFRUUENvb2tpZShjb29raWVTdG9yYWdlLmdldCgp
LCBjb29raWUpOworICAgICAgICAgICAgZGVsZXRlSFRUUENvb2tpZShjb29raWVTdG9yYWdlLmdl
dCgpLCBjb29raWUpOwogICAgIH0KIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CkBA
IC0yNjksNyArMzM0LDcgQEAgdm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhjb25zdCBOZXR3
b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIEhhc2hTZXQ8U3RyaW4KIHsKICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBOU0FycmF5ICpjb29raWVzID0gd2tIVFRQQ29v
a2llcyhzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSk7CisgICAgTlNBcnJheSAqY29va2ll
cyA9IGh0dHBDb29raWVzKHNlc3Npb24uY29va2llU3RvcmFnZSgpLmdldCgpKTsKICAgICAKICAg
ICBmb3IgKE5TSFRUUENvb2tpZSogY29va2llIGluIGNvb2tpZXMpCiAgICAgICAgIGhvc3RuYW1l
cy5hZGQoW2Nvb2tpZSBkb21haW5dKTsKQEAgLTI3OSw3ICszNDQsNyBAQCB2b2lkIGdldEhvc3Ru
YW1lc1dpdGhDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgSGFz
aFNldDxTdHJpbgogCiB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJiBzZXNzaW9uKQogewotICAgIHdrRGVsZXRlQWxsSFRUUENvb2tpZXMoc2Vzc2lvbi5j
b29raWVTdG9yYWdlKCkuZ2V0KCkpOworICAgIGRlbGV0ZUFsbEhUVFBDb29raWVzKHNlc3Npb24u
Y29va2llU3RvcmFnZSgpLmdldCgpKTsKIH0KIAogfQpAQCAtMjkzLDcgKzM1OCw3IEBAIHZvaWQg
ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNl
c3Npb24sIGNvbnN0IFZlY3RvCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAg
ICAgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+IGNvb2tpZVN0b3JhZ2UgPSBzZXNz
aW9uLmNvb2tpZVN0b3JhZ2UoKTsKLSAgICBOU0FycmF5ICpjb29raWVzID0gd2tIVFRQQ29va2ll
cyhjb29raWVTdG9yYWdlLmdldCgpKTsKKyAgICBOU0FycmF5ICpjb29raWVzID0gaHR0cENvb2tp
ZXMoY29va2llU3RvcmFnZS5nZXQoKSk7CiAgICAgaWYgKCFjb29raWVzKQogICAgICAgICByZXR1
cm47CiAKQEAgLTMwOSw3ICszNzQsNyBAQCB2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMo
Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBWZWN0bwogICAgICAg
ICAgICAgY29udGludWU7CiAKICAgICAgICAgZm9yIChhdXRvJiBjb29raWUgOiBpdC0+dmFsdWUp
Ci0gICAgICAgICAgICB3a0RlbGV0ZUhUVFBDb29raWUoY29va2llU3RvcmFnZS5nZXQoKSwgY29v
a2llLmdldCgpKTsKKyAgICAgICAgICAgIGRlbGV0ZUhUVFBDb29raWUoY29va2llU3RvcmFnZS5n
ZXQoKSwgY29va2llLmdldCgpKTsKICAgICB9CiAKICAgICBbc2Vzc2lvbi5uc0Nvb2tpZVN0b3Jh
Z2UoKSBfc2F2ZUNvb2tpZXNdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCAwYzM1MzE0Y2EyMGFlOGRk
NDgxNDNmMTQwMTlmOTY4MjU1OTRmZTVkLi4xYzc0YjM5NmM3MTg4ZTc3NjE3NWU2OTgxYmRlOTNl
OTEzODI3ZTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtMTc3LDcgKzE3Nyw3IEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91
bGRVc2VDcmVkZW50aWFsCiAjZW5kaWYKIAogICAgIGlmIChkLT5tX3N0b3JhZ2VTZXNzaW9uKQot
ICAgICAgICBuc1JlcXVlc3QgPSBbd2tDb3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lvbihkLT5t
X3N0b3JhZ2VTZXNzaW9uLmdldCgpLCBuc1JlcXVlc3QpIGF1dG9yZWxlYXNlXTsKKyAgICAgICAg
bnNSZXF1ZXN0ID0gW2NvcHlSZXF1ZXN0V2l0aFN0b3JhZ2VTZXNzaW9uKGQtPm1fc3RvcmFnZVNl
c3Npb24uZ2V0KCksIG5zUmVxdWVzdCkgYXV0b3JlbGVhc2VdOwogCiAgICAgQVNTRVJUKFtOU1VS
TENvbm5lY3Rpb24gaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKF9pbml0V2l0
aFJlcXVlc3Q6ZGVsZWdhdGU6dXNlc0NhY2hlOm1heENvbnRlbnRMZW5ndGg6c3RhcnRJbW1lZGlh
dGVseTpjb25uZWN0aW9uUHJvcGVydGllczopXSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4IDJmNGIyMjhmMTY4
YjYyN2IxOGMwM2UyMzQ0MTAyYjZlODNhM2U4YTQuLjA0NWI5YjJkNDgyZTQyMjc5Yzk2ZTlhMTkz
YzRlZDdkMDg2Yjc5YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtNDQsNiArNDQsNyBAQAogI2ltcG9ydCAiV2lu
ZG93U2VydmVyQ29ubmVjdGlvbi5oIgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvci5oPgogI2ltcG9y
dCA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzLmg+CkBAIC01NzYsNyArNTc3LDcgQEAgc3RhdGljIENGVVJMU3RvcmFn
ZVNlc3Npb25SZWYgcHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiAgICAgZGlzcGF0Y2hfb25jZSgm
b25jZSwgXnsKICAgICAgICAgTlNTdHJpbmcgKmlkZW50aWZpZXIgPSBbTlNTdHJpbmcgc3RyaW5n
V2l0aEZvcm1hdDpAIiVALlByaXZhdGVCcm93c2luZyIsIFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
YnVuZGxlSWRlbnRpZmllcl1dOwogCi0gICAgICAgIHNlc3Npb24gPSBXS0NyZWF0ZVByaXZhdGVT
dG9yYWdlU2Vzc2lvbigoQ0ZTdHJpbmdSZWYpaWRlbnRpZmllcik7CisgICAgICAgIHNlc3Npb24g
PSBjcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24oKENGU3RyaW5nUmVmKWlkZW50aWZpZXIpOwog
ICAgIH0pOwogCiAgICAgcmV0dXJuIHNlc3Npb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJm
YWNlLm1tCmluZGV4IGUyNTEyN2MyOWMwMzRmMDJkZjAxY2ZiYmJhZjVjNWI2ZTc4MGRjMDcuLjdh
MzMzNmMwNmUwODZlYzA0ODU3ZWY3NDk4MDAzMjU4MGU5YjQ4NTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tCkBAIC03NSwxMyArNzUsNiBAQCB2b2lkIEluaXRXZWJDb3JlU3lz
dGVtSW50ZXJmYWNlKHZvaWQpCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAgICAgSU5JVChTZXRE
cmFnSW1hZ2UpOwogI2VuZGlmCi0gICAgICAgIElOSVQoQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNz
aW9uKTsKLSAgICAgICAgSU5JVChDb3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lvbik7Ci0gICAg
ICAgIElOSVQoR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7Ci0gICAgICAgIElOSVQoSFRUUENv
b2tpZXMpOwotICAgICAgICBJTklUKFNldEhUVFBDb29raWVzRm9yVVJMKTsKLSAgICAgICAgSU5J
VChEZWxldGVBbGxIVFRQQ29va2llcyk7Ci0gICAgICAgIElOSVQoRGVsZXRlSFRUUENvb2tpZSk7
CiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgICAgICBJTklUKFNldE1ldGFkYXRhVVJMKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0K
aW5kZXggM2Y4ZDVhZmYzMmViN2Q1ODc1Zjc0MzRkNTE5NjBlMjU3MDdkYTM5NS4uZDcwYzk1YWU4
N2Q1NDljNzE3NmMxZjJmZjM1NzAzY2QzNDA4ZTJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAgLTY4NCw3ICs2ODQsNyBA
QCBib29sIFdlYlBhZ2U6OnBsYXRmb3JtSGFzTG9jYWxEYXRhRm9yVVJMKGNvbnN0IFdlYkNvcmU6
OlVSTCYgdXJsKQogICAgIFtyZXF1ZXN0IHNldFZhbHVlOihOU1N0cmluZyopdXNlckFnZW50KHVy
bCkgZm9ySFRUUEhlYWRlckZpZWxkOkAiVXNlci1BZ2VudCJdOwogICAgIE5TQ2FjaGVkVVJMUmVz
cG9uc2UgKmNhY2hlZFJlc3BvbnNlOwogICAgIGlmIChDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmIHN0
b3JhZ2VTZXNzaW9uID0gY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkubG9hZGVyKCkubmV0d29ya2lu
Z0NvbnRleHQoKS0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKSkKLSAgICAgICAg
Y2FjaGVkUmVzcG9uc2UgPSBXS0NhY2hlZFJlc3BvbnNlRm9yUmVxdWVzdChzdG9yYWdlU2Vzc2lv
biwgcmVxdWVzdCk7CisgICAgICAgIGNhY2hlZFJlc3BvbnNlID0gY2FjaGVkUmVzcG9uc2VGb3JS
ZXF1ZXN0KHN0b3JhZ2VTZXNzaW9uLCByZXF1ZXN0KTsKICAgICBlbHNlCiAgICAgICAgIGNhY2hl
ZFJlc3BvbnNlID0gW1tOU1VSTENhY2hlIHNoYXJlZFVSTENhY2hlXSBjYWNoZWRSZXNwb25zZUZv
clJlcXVlc3Q6cmVxdWVzdF07CiAgICAgW3JlcXVlc3QgcmVsZWFzZV07CkBAIC02OTgsNyArNjk4
LDcgQEAgc3RhdGljIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKmNhY2hlZFJlc3BvbnNlRm9yVVJMKFdl
YlBhZ2UqIHdlYlBhZ2UsIGNvbnN0IFVSTCYgdXIKICAgICBbcmVxdWVzdCBzZXRWYWx1ZTooTlNT
dHJpbmcgKil3ZWJQYWdlLT51c2VyQWdlbnQodXJsKSBmb3JIVFRQSGVhZGVyRmllbGQ6QCJVc2Vy
LUFnZW50Il07CiAKICAgICBpZiAoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBzdG9yYWdlU2Vzc2lv
biA9IHdlYlBhZ2UtPmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLmxvYWRlcigpLm5ldHdvcmtpbmdD
b250ZXh0KCktPnN0b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNzaW9uKCkpCi0gICAgICAgIHJl
dHVybiBXS0NhY2hlZFJlc3BvbnNlRm9yUmVxdWVzdChzdG9yYWdlU2Vzc2lvbiwgcmVxdWVzdC5n
ZXQoKSk7CisgICAgICAgIHJldHVybiBjYWNoZWRSZXNwb25zZUZvclJlcXVlc3Qoc3RvcmFnZVNl
c3Npb24sIHJlcXVlc3QuZ2V0KCkpOwogCiAgICAgcmV0dXJuIFtbTlNVUkxDYWNoZSBzaGFyZWRV
UkxDYWNoZV0gY2FjaGVkUmVzcG9uc2VGb3JSZXF1ZXN0OnJlcXVlc3QuZ2V0KCldOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVt
SW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tCmluZGV4IGVmZTMyZTA0MWQ1YmE1MzkxNmYwODMwNDcyYzJhMjky
N2E3Y2JhYzcuLmU0MmYyNWI0YzlhMjkzYTU2ZmIzOTA3YjM0NmE1M2MxZTMxMjFkZjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUlu
dGVyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTEwNSwxMyArMTA1LDYgQEAgdm9pZCBJbml0V2ViQ29y
ZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgIElOSVQoQ3JlYXRlQVhVSUVsZW1lbnRSZWYpOwog
ICAgIElOSVQoVW5yZWdpc3RlclVuaXF1ZUlkRm9yRWxlbWVudCk7CiAjZW5kaWYKLSAgICBJTklU
KENyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbik7Ci0gICAgSU5JVChDb3B5UmVxdWVzdFdpdGhT
dG9yYWdlU2Vzc2lvbik7Ci0gICAgSU5JVChHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKLSAg
ICBJTklUKEhUVFBDb29raWVzKTsKLSAgICBJTklUKFNldEhUVFBDb29raWVzRm9yVVJMKTsKLSAg
ICBJTklUKERlbGV0ZUFsbEhUVFBDb29raWVzKTsKLSAgICBJTklUKERlbGV0ZUhUVFBDb29raWUp
OwogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBJTklUKFNldE1ldGFkYXRhVVJMKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA1NGViMTA0ZjJjNDhm
MTdmZGNlYzg2Yjk5NGY3MDEyOTRjNTkyNmE3Li40NzhjMjFjYTYxODkyODcwMzI2YWI4YjdlZmUy
MzIxYzc5ZDhhNTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCkBAIC0zNTU1LDcgKzM1NTUsNyBAQCAtIChOU0NhY2hlZFVSTFJlc3BvbnNlICopX2NhY2hl
ZFJlc3BvbnNlRm9yVVJMOihOU1VSTCAqKVVSTAogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAg
aWYgKENGVVJMU3RvcmFnZVNlc3Npb25SZWYgc3RvcmFnZVNlc3Npb24gPSBfcHJpdmF0ZS0+cGFn
ZS0+bWFpbkZyYW1lKCkubG9hZGVyKCkubmV0d29ya2luZ0NvbnRleHQoKS0+c3RvcmFnZVNlc3Np
b24oKS5wbGF0Zm9ybVNlc3Npb24oKSkKLSAgICAgICAgY2FjaGVkUmVzcG9uc2UgPSBXS0NhY2hl
ZFJlc3BvbnNlRm9yUmVxdWVzdChzdG9yYWdlU2Vzc2lvbiwgcmVxdWVzdC5nZXQoKSk7CisgICAg
ICAgIGNhY2hlZFJlc3BvbnNlID0gY2FjaGVkUmVzcG9uc2VGb3JSZXF1ZXN0KHN0b3JhZ2VTZXNz
aW9uLCByZXF1ZXN0LmdldCgpKTsKICAgICBlbHNlCiAgICAgICAgIGNhY2hlZFJlc3BvbnNlID0g
W1tOU1VSTENhY2hlIHNoYXJlZFVSTENhY2hlXSBjYWNoZWRSZXNwb25zZUZvclJlcXVlc3Q6cmVx
dWVzdC5nZXQoKV07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319200</attachid>
            <date>2017-08-28 13:35:43 -0700</date>
            <delta_ts>2017-08-28 14:40:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176032-20170828133542.patch</filename>
            <type>text/plain</type>
            <size>29615</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlhYTc4MGQ4OGNiMzc2
YTQ1ZWVmOTQ5ODI5OTQyNmIxODE5MWQ5Ny4uNzg0M2Y5MDY1MzViY2E2NzVmMDYxOGU3ZjgxOWQw
ZjA0MDRhYzI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE3LTA4LTI4ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFVwc3RyZWFtIENG
TmV0d29yay1yZWxhdGVkIFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjAzMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dl
YkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
UHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L1Jlc291cmNlUmVxdWVzdENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0OjpzZXRTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpjb3B5UmVxdWVzdFdp
dGhTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRSZXNwb25zZUZvclJl
cXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6Omh0dHBDb29raWVzKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEhU
VFBDb29raWVzRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OmRlbGV0ZUhUVFBDb29raWUpOgor
ICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlQWxsSFRUUENvb2tpZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0Q29va2llc0Zyb21ET00pOgorICAgICAgICAoV2ViQ29yZTo6aHR0cENvb2tpZUFjY2Vw
dFBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRW5hYmxlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpkZWxldGVDb29raWUpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0SG9zdG5hbWVzV2l0
aENvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlQWxsQ29va2llcyk6CisgICAgICAg
IChXZWJDb3JlOjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24pOgorCiAyMDE3LTA4LTI4ICBDYXJs
b3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
VEtdIFtXUEVdIFJlbmFtZSBFdmVudEhhbmRsZXJHbGliIHRvIEV2ZW50SGFuZGxlckdMaWIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nCmluZGV4IDc2ZGNkOTAxNzEwMDBiNzZmNmFiODAzODJlNTM2Y2U0MTdjYmIw
NjAuLmY2NjZlYjE4NjdiNTA1Yzk3YmQ1YWE1ZjRlNjNmOTc3ZWJlYTBlZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTA4LTI4ICBBbmR5IEVzdGVzICA8YWVzdGVz
QGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFVwc3RyZWFtIENGTmV0d29yay1yZWxhdGVk
IFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjAzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaDoKKwog
MjAxNy0wOC0yNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgTG9nZ2VyOjpsb2dBbHdheXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggM2I5NTg0Mjg1MDNhMWJjN2E0
MTY3YjRkY2Q4M2RhZGJhOTUwODU2YS4uMTE4MjkxNTZkOWI5YjVlMmZmMGRlZWVkNTkxZTk4MzA3
Y2EzMzY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNy0wOC0yOCAgQW5keSBFc3Rl
cyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBVcHN0cmVhbSBDRk5ldHdv
cmstcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwMzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0Ojpwcml2YXRlQnJvd3NpbmdTZXNz
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1J
bnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpwbGF0Zm9ybUhhc0xvY2FsRGF0YUZvclVSTCk6CisgICAgICAgIChXZWJL
aXQ6OmNhY2hlZFJlc3BvbnNlRm9yVVJMKToKKwogMjAxNy0wOC0yOCAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVyOiBpbXBsZW1l
bnQgc2NyZWVuIGNhcHR1cmUgY29tbWFuZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRl
eCA5N2I0ZGY4Y2MzYzYyNzk3NjZhMmFkYTc5YWE3YjRkNDczMGQ2ZjM4Li5kYzI0ZDc4ZDYwNDk4
MzdhYTIwYmJlMTE3OWNjZDAxNWE5MzBlMGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDgtMjggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUu
Y29tPgorCisgICAgICAgIFtDb2NvYV0gVXBzdHJlYW0gQ0ZOZXR3b3JrLXJlbGF0ZWQgV2ViS2l0
U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW06
CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSk6CisgICAgICAgICogV2ViVmll
dy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jYWNoZWRSZXNwb25zZUZvclVSTDpd
KToKKwogMjAxNy0wOC0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBQaWNraW5nIGFuIGVtb2ppIHZpYSB0aGUgZW1vamkgZGlhbG9nIChDdHJsK0Nt
ZCtTcGFjZSkgZmlyZXMgaW5jb25zaXN0ZW50IGJlZm9yZWlucHV0IGV2ZW50cy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKaW5kZXggMTg2ZTdjOTQwNmRm
NzNiMDhhOWU3Y2Y0NTg4NGU1OTU1YTc2YWU3ZC4uMGFlODBjNzg3YjhlODFiOWE4NGYwMWI5MTZi
OGJmNzRhOTMyZGYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2Yv
Q0ZOZXR3b3JrU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3
b3JrU1BJLmgKQEAgLTExNSw2ICsxMTUsOCBAQCB0eXBlZGVmIHZvaWQgKF5DRkNhY2hlZFVSTFJl
c3BvbnNlQ2FsbEJhY2tCbG9jaykoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CiAKIEBpbnRlcmZh
Y2UgTlNIVFRQQ29va2llICgpCiAtIChDRkhUVFBDb29raWVSZWYpX0NGSFRUUENvb2tpZTsKKysg
KENGQXJyYXlSZWYgX19udWxsYWJsZSlfbnMyY2ZDb29raWVzOihOU0FycmF5ICogX19udWxsYWJs
ZSluc0Nvb2tpZXMgQ0ZfUkVUVVJOU19SRVRBSU5FRDsKKy0gKENGSFRUUENvb2tpZVJlZiBfX251
bGxhYmxlKV9HZXRJbnRlcm5hbENGSFRUUENvb2tpZTsKIEBlbmQKIAogQGludGVyZmFjZSBOU1VS
TFNlc3Npb25Db25maWd1cmF0aW9uICgpCkBAIC0xNzEsNiArMTczLDcgQEAgQ0ZVUkxDYWNoZVJl
ZiBDRlVSTENhY2hlQ29weVNoYXJlZFVSTENhY2hlKCk7CiB2b2lkIENGVVJMQ2FjaGVTZXRNZW1v
cnlDYXBhY2l0eShDRlVSTENhY2hlUmVmLCBDRkluZGV4IG1lbW9yeUNhcGFjaXR5KTsKIENGSW5k
ZXggQ0ZVUkxDYWNoZU1lbW9yeUNhcGFjaXR5KENGVVJMQ2FjaGVSZWYpOwogdm9pZCBDRlVSTENh
Y2hlU2V0RGlza0NhcGFjaXR5KENGVVJMQ2FjaGVSZWYsIENGSW5kZXgpOworQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZiBDRlVSTENhY2hlQ29weVJlc3BvbnNlRm9yUmVxdWVzdChDRlVSTENhY2hlUmVm
LCBDRlVSTFJlcXVlc3RSZWYpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiBCb29sZWFuIF9DRk5l
dHdvcmtJc0tub3duSFNUU0hvc3RXaXRoU2Vzc2lvbihDRlVSTFJlZiwgQ0ZVUkxTdG9yYWdlU2Vz
c2lvblJlZik7CkBAIC0xOTIsNiArMTk1LDcgQEAgZXh0ZXJuIENGU3RyaW5nUmVmIGNvbnN0IGtD
RkhUVFBDb29raWVMb2NhbEZpbGVEb21haW47CiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NG
SFRUUFZlcnNpb24xXzE7CiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NGVVJMUmVxdWVzdEFs
bG93QWxsUE9TVENhY2hpbmc7CiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYgX2tDRlVSTENvbm5l
Y3Rpb25Qcm9wZXJ0eVNob3VsZFNuaWZmOworZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZV
UkxTdG9yYWdlU2Vzc2lvbklzUHJpdmF0ZTsKIAogQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBfQ0ZI
VFRQQ29va2llU3RvcmFnZUdldERlZmF1bHQoQ0ZBbGxvY2F0b3JSZWYpOwogQ0ZIVFRQQ29va2ll
U3RvcmFnZVJlZiBDRkhUVFBDb29raWVTdG9yYWdlQ3JlYXRlRnJvbUZpbGUoQ0ZBbGxvY2F0b3JS
ZWYsIENGVVJMUmVmLCBDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsKQEAgLTIyOCw2ICsyMzIsMTAg
QEAgQ0ZVUkxSZWYgQ0ZVUkxSZXF1ZXN0R2V0VVJMKENGVVJMUmVxdWVzdFJlZik7CiBDRlVSTFJl
c3BvbnNlUmVmIENGVVJMUmVzcG9uc2VDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYsIENGVVJMUmVmLCBD
RlN0cmluZ1JlZiBtaW1lVHlwZSwgU0ludDY0IGV4cGVjdGVkQ29udGVudExlbmd0aCwgQ0ZTdHJp
bmdSZWYgdGV4dEVuY29kaW5nTmFtZSwgQ0ZVUkxDYWNoZVN0b3JhZ2VQb2xpY3kpOwogdm9pZCBD
RlVSTFJlc3BvbnNlU2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKENGVVJMUmVzcG9uc2VSZWYsIFNJ
bnQ2NCBsZW5ndGgpOwogQ0ZVUkxSZXNwb25zZVJlZiBDRlVSTFJlc3BvbnNlQ3JlYXRlV2l0aEhU
VFBSZXNwb25zZShDRkFsbG9jYXRvclJlZiwgQ0ZVUkxSZWYsIENGSFRUUE1lc3NhZ2VSZWYsIENG
VVJMQ2FjaGVTdG9yYWdlUG9saWN5KTsKK0NGQXJyYXlSZWYgQ0ZIVFRQQ29va2llU3RvcmFnZUNv
cHlDb29raWVzKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwordm9pZCBDRkhUVFBDb29raWVTdG9y
YWdlU2V0Q29va2llcyhDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBDRkFycmF5UmVmIGNvb2tpZXMs
IENGVVJMUmVmLCBDRlVSTFJlZiBtYWluRG9jdW1lbnRVUkwpOwordm9pZCBDRkhUVFBDb29raWVT
dG9yYWdlRGVsZXRlQ29va2llKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIENGSFRUUENvb2tpZVJl
Zik7CitDRk11dGFibGVVUkxSZXF1ZXN0UmVmIENGVVJMUmVxdWVzdENyZWF0ZU11dGFibGVDb3B5
KENGQWxsb2NhdG9yUmVmLCBDRlVSTFJlcXVlc3RSZWYpOwogCiAjZW5kaWYgLy8gIVBMQVRGT1JN
KFdJTikKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVT
eXN0ZW1JbnRlcmZhY2VJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29y
ZVN5c3RlbUludGVyZmFjZUlPUy5tbQppbmRleCA4ZTQwY2YzMGE4ZTE2Y2JkNmEwMzkxZjIzZmZm
ZWE1OTFjZTZlOTlhLi5hNzJmOWJjMGM4NTAxNWUwNDhlYjhiYjVjYTcyMDQ5NmRmNDYxNWYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZVN5c3RlbUludGVy
ZmFjZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZVN5c3Rl
bUludGVyZmFjZUlPUy5tbQpAQCAtMzksMTQgKzM5LDYgQEAgV0VCQ09SRV9FWFBPUlQgQ0ZIVFRQ
TWVzc2FnZVJlZiAoKndrQ29weUNPTk5FQ1RQcm94eVJlc3BvbnNlKShDRlJlYWRTdHJlYW1SZWYs
IEMKIFdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a1NldExheWVyQ29udGVudHNTY2FsZSkoQ0FMYXll
ciAqKTsKIFdFQkNPUkVfRVhQT1JUIENGU3RyaW5nRW5jb2RpbmcgKCp3a0dldFdlYkRlZmF1bHRD
RlN0cmluZ0VuY29kaW5nKSh2b2lkKTsKIAotV0VCQ09SRV9FWFBPUlQgQ0ZVUkxTdG9yYWdlU2Vz
c2lvblJlZiAoKndrQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKShDRlN0cmluZ1JlZik7Ci1X
RUJDT1JFX0VYUE9SVCBOU1VSTFJlcXVlc3QqICgqd2tDb3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vz
c2lvbikoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiwgTlNVUkxSZXF1ZXN0Kik7Ci1XRUJDT1JFX0VY
UE9SVCB1bnNpZ25lZCAoKndrR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSkoQ0ZIVFRQQ29va2ll
U3RvcmFnZVJlZik7Ci1XRUJDT1JFX0VYUE9SVCBOU0FycmF5ICooKndrSFRUUENvb2tpZXMpKENG
SFRUUENvb2tpZVN0b3JhZ2VSZWYpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0SFRUUENv
b2tpZXNGb3JVUkwpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5TQXJyYXkgKiwgTlNVUkwgKiwg
TlNVUkwgKik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkICgqd2tEZWxldGVBbGxIVFRQQ29va2llcyko
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkICgqd2tEZWxldGVI
VFRQQ29va2llKShDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBOU0hUVFBDb29raWUgKik7Ci0KIFdF
QkNPUkVfRVhQT1JUIHZvaWQoKndrRGVzdHJveVJlbmRlcmluZ1Jlc291cmNlcykodm9pZCk7CiAK
IFdFQkNPUkVfRVhQT1JUIGJvb2wgKCp3a0NhcHRpb25BcHBlYXJhbmNlSGFzVXNlclByZWZlcmVu
Y2VzKSh2b2lkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJD
b3JlU3lzdGVtSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29y
ZVN5c3RlbUludGVyZmFjZS5oCmluZGV4IDVhZGYxMmUzZmJjYWJmMDgwZDNlODJiN2I0ZGJjZGJj
OWMwYWFiYWIuLjA2NzJkNjAyYWYyNmM2M2E4MmM0YWYyNjBiNDFhNmI3NDAyMTNjNzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaApAQCAtMjE0LDE1ICsyMTQsNiBAQCBleHRlcm4gdm9pZCAoKndrU2V0TGF5ZXJDb250ZW50
c1NjYWxlKShDQUxheWVyICopOwogI2VuZGlmCiAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ0ZV
UkxTdG9yYWdlU2Vzc2lvbiogQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZjsKLWV4dGVybiBDRlVSTFN0
b3JhZ2VTZXNzaW9uUmVmICgqd2tDcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24pKENGU3RyaW5n
UmVmKTsKLWV4dGVybiBOU1VSTFJlcXVlc3QqICgqd2tDb3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vz
c2lvbikoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiwgTlNVUkxSZXF1ZXN0Kik7Ci0KLXR5cGVkZWYg
c3RydWN0IE9wYXF1ZUNGSFRUUENvb2tpZVN0b3JhZ2UqIENGSFRUUENvb2tpZVN0b3JhZ2VSZWY7
Ci1leHRlcm4gdW5zaWduZWQgKCp3a0dldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpKENGSFRUUENv
b2tpZVN0b3JhZ2VSZWYpOwotZXh0ZXJuIE5TQXJyYXkgKigqd2tIVFRQQ29va2llcykoQ0ZIVFRQ
Q29va2llU3RvcmFnZVJlZik7Ci1leHRlcm4gdm9pZCAoKndrU2V0SFRUUENvb2tpZXNGb3JVUkwp
KENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5TQXJyYXkgKiwgTlNVUkwgKiwgTlNVUkwgKik7Ci1l
eHRlcm4gdm9pZCAoKndrRGVsZXRlSFRUUENvb2tpZSkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwg
TlNIVFRQQ29va2llICopOwotZXh0ZXJuIHZvaWQgKCp3a0RlbGV0ZUFsbEhUVFBDb29raWVzKShD
RkhUVFBDb29raWVTdG9yYWdlUmVmKTsKIAogI2lmICFQTEFURk9STShJT1MpCiBleHRlcm4gdm9p
ZCAoKndrU2V0TWV0YWRhdGFVUkwpKE5TU3RyaW5nICp1cmxTdHJpbmcsIE5TU3RyaW5nICpyZWZl
cnJlciwgTlNTdHJpbmcgKnBhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQppbmRleCBjNGIzM2Y0MDYzOTY2MTY1ZjZi
YWIxYzc3ZTJmMjU2ODA3ZjJkOGQzLi5lYTEwM2RiYWQ2YjFkZDFiMGVmYmRiZTNmMDBiYjBjMDVl
NmM2M2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5
c3RlbUludGVyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29y
ZVN5c3RlbUludGVyZmFjZS5tbQpAQCAtOTMsMTQgKzkzLDYgQEAgQ0ZUeXBlUmVmICgqd2tDcmVh
dGVBWFRleHRNYXJrZXIpKGNvbnN0IHZvaWQgKmJ5dGVzLCBzaXplX3QgbGVuKTsKIEJPT0wgKCp3
a0dldEJ5dGVzRnJvbUFYVGV4dE1hcmtlcikoQ0ZUeXBlUmVmIHRleHRNYXJrZXIsIHZvaWQgKmJ5
dGVzLCBzaXplX3QgbGVuZ3RoKTsKIEFYVUlFbGVtZW50UmVmICgqd2tDcmVhdGVBWFVJRWxlbWVu
dFJlZikoaWQgZWxlbWVudCk7CiAKLUNGVVJMU3RvcmFnZVNlc3Npb25SZWYgKCp3a0NyZWF0ZVBy
aXZhdGVTdG9yYWdlU2Vzc2lvbikoQ0ZTdHJpbmdSZWYpOwotTlNVUkxSZXF1ZXN0KiAoKndrQ29w
eVJlcXVlc3RXaXRoU3RvcmFnZVNlc3Npb24pKENGVVJMU3RvcmFnZVNlc3Npb25SZWYsIE5TVVJM
UmVxdWVzdCopOwotdW5zaWduZWQgKCp3a0dldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpKENGSFRU
UENvb2tpZVN0b3JhZ2VSZWYpOwotTlNBcnJheSAqKCp3a0hUVFBDb29raWVzKShDRkhUVFBDb29r
aWVTdG9yYWdlUmVmKTsKLXZvaWQgKCp3a1NldEhUVFBDb29raWVzRm9yVVJMKShDRkhUVFBDb29r
aWVTdG9yYWdlUmVmLCBOU0FycmF5ICosIE5TVVJMICosIE5TVVJMICopOwotdm9pZCAoKndrRGVs
ZXRlQWxsSFRUUENvb2tpZXMpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwotdm9pZCAoKndrRGVs
ZXRlSFRUUENvb2tpZSkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgTlNIVFRQQ29va2llICopOwot
CiB2b2lkICgqd2tTZXRNZXRhZGF0YVVSTCkoTlNTdHJpbmcgKnVybFN0cmluZywgTlNTdHJpbmcg
KnJlZmVycmVyLCBOU1N0cmluZyAqcGF0aCk7CiAKICNpZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmgKaW5kZXggZDhhOTYxODI5YTA1MmEwNmM5YTM5MGU5N2QwMDNiNDRmNGJjMDk4ZC4uZTc1
MWJmMjRlNTAxYTE4NmM1MDk4NTI3MzI5YzhmZTJjNjNlN2U4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBA
IC0xNTMsNCArMTUzLDggQEAgcHJpdmF0ZToKICNlbmRpZgogfTsKIAorI2lmIFBMQVRGT1JNKENP
Q09BKQorV0VCQ09SRV9FWFBPUlQgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBjcmVhdGVQcml2YXRl
U3RvcmFnZVNlc3Npb24oQ0ZTdHJpbmdSZWYgaWRlbnRpZmllcik7CisjZW5kaWYKKwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25DRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAppbmRleCA3ZTkwMzJjMzQzZTFkZGZlNzQ5ODdl
YTM5MTEzMDllOGYzNTIyOTRiLi40YzlmYzNkZjU1ZGYyZDQ3NzM0NmY2OTY2ZWY0MmRlYzJjNDUw
OTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcApAQCAtOTAsNyArOTAsNyBA
QCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbigp
CiAKICAgICBSZXRhaW5QdHI8Q0ZVUkxTdG9yYWdlU2Vzc2lvblJlZj4gc2Vzc2lvbjsKICNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICBzZXNzaW9uID0gYWRvcHRDRih3a0NyZWF0ZVByaXZhdGVTdG9y
YWdlU2Vzc2lvbihzZXNzaW9uTmFtZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CisgICAgc2Vz
c2lvbiA9IGFkb3B0Q0YoY3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKHNlc3Npb25OYW1lLmNy
ZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKICNlbHNlCiAgICAgc2Vzc2lvbiA9IGFkb3B0Q0Yod2tD
cmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24oc2Vzc2lvbk5hbWUuY3JlYXRlQ0ZTdHJpbmcoKS5n
ZXQoKSwgZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNzaW9uKCkpKTsKICNlbmRp
ZgpAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nCiAgICAgUmV0YWlu
UHRyPENGVVJMU3RvcmFnZVNlc3Npb25SZWY+IHN0b3JhZ2VTZXNzaW9uOwogICAgIGlmIChzZXNz
aW9uSUQuaXNFcGhlbWVyYWwoKSkgewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgICAgICBzdG9y
YWdlU2Vzc2lvbiA9IGFkb3B0Q0Yod2tDcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24oY2ZJZGVu
dGlmaWVyLmdldCgpKSk7CisgICAgICAgIHN0b3JhZ2VTZXNzaW9uID0gYWRvcHRDRihjcmVhdGVQ
cml2YXRlU3RvcmFnZVNlc3Npb24oY2ZJZGVudGlmaWVyLmdldCgpKSk7CiAjZWxzZQogICAgICAg
ICBzdG9yYWdlU2Vzc2lvbiA9IGFkb3B0Q0Yod2tDcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24o
Y2ZJZGVudGlmaWVyLmdldCgpLCBkZWZhdWx0TmV0d29ya1N0b3JhZ2VTZXNzaW9uKCktPnBsYXRm
b3JtU2Vzc2lvbigpKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCmluZGV4IDEyZjFiNjYwMmI3OTMyNWU0Nzg0
YmIyMWRhZTQ1NzdkMDk0Y2Q3OTUuLjE0YmNiNmFmOTkzZjkzOTY5ZmM2MjA2NTAwMWMyZmUyNzc4
MTIwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZVJlcXVlc3QuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVx
dWVzdEJhc2UuaCIKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKK09CSkNfQ0xBU1MgTlND
YWNoZWRVUkxSZXNwb25zZTsKIE9CSkNfQ0xBU1MgTlNVUkxSZXF1ZXN0OwogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpIHx8IFVTRShDRlVSTENPTk5FQ1RJT04pCkBAIC0xMzUsNCArMTM2LDkgQEAgaW5s
aW5lIGJvb2wgUmVzb3VyY2VSZXF1ZXN0OjpyZXNvdXJjZVByaW9yaXRpZXNFbmFibGVkKCkKICNl
bmRpZgogfQogCisjaWYgUExBVEZPUk0oQ09DT0EpCitOU1VSTFJlcXVlc3QgKmNvcHlSZXF1ZXN0
V2l0aFN0b3JhZ2VTZXNzaW9uKENGVVJMU3RvcmFnZVNlc3Npb25SZWYsIE5TVVJMUmVxdWVzdCAq
KTsKK1dFQkNPUkVfRVhQT1JUIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKmNhY2hlZFJlc3BvbnNlRm9y
UmVxdWVzdChDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBOU1VSTFJlcXVlc3QgKik7CisjZW5kaWYK
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29j
b2EubW0KaW5kZXggNTNhNzliMjg3OGE0ZTNiMzJmYWJmNjc4MjM0NWI4MDE1YTZiNTBkYS4uZDk2
MDViMTAzMmE1OGRlZWRkYjYxMTdjOTM1NTk1OGExOGEyNjEzNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbkNvY29hLm1tCkBAIC05OSw0ICs5OSwzNyBAQCBDb29raWVTdG9yYWdlT2Jz
ZXJ2ZXImIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llU3RvcmFnZU9ic2VydmVyKCkgY29u
c3QKICAgICByZXR1cm4gKm1fY29va2llU3RvcmFnZU9ic2VydmVyOwogfQogCitDRlVSTFN0b3Jh
Z2VTZXNzaW9uUmVmIGNyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbihDRlN0cmluZ1JlZiBpZGVu
dGlmaWVyKQoreworICAgIGNvbnN0IHZvaWQqIHNlc3Npb25Qcm9wZXJ0eUtleXNbXSA9IHsgX2tD
RlVSTFN0b3JhZ2VTZXNzaW9uSXNQcml2YXRlIH07CisgICAgY29uc3Qgdm9pZCogc2Vzc2lvblBy
b3BlcnR5VmFsdWVzW10gPSB7IGtDRkJvb2xlYW5UcnVlIH07CisgICAgYXV0byBzZXNzaW9uUHJv
cGVydGllcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IHNlc3Npb25Qcm9wZXJ0eUtleXMsIHNlc3Npb25Qcm9wZXJ0eVZhbHVlcywgc2l6ZW9mKHNlc3Np
b25Qcm9wZXJ0eUtleXMpIC8gc2l6ZW9mKCpzZXNzaW9uUHJvcGVydHlLZXlzKSwgJmtDRlR5cGVE
aWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykp
OworICAgIGF1dG8gc3RvcmFnZVNlc3Npb24gPSBhZG9wdENGKF9DRlVSTFN0b3JhZ2VTZXNzaW9u
Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGlkZW50aWZpZXIsIHNlc3Npb25Qcm9wZXJ0aWVz
LmdldCgpKSk7CisKKyAgICBpZiAoIXN0b3JhZ2VTZXNzaW9uKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIC8vIFRoZSBwcml2YXRlIHN0b3JhZ2Ugc2Vzc2lvbiBzaG91bGQgaGF2ZSB0
aGUgc2FtZSBwcm9wZXJ0aWVzIGFzIHRoZSBkZWZhdWx0IHN0b3JhZ2Ugc2Vzc2lvbiwKKyAgICAv
LyB3aXRoIHRoZSBleGNlcHRpb24gdGhhdCBpdCBzaG91bGQgYmUgaW4tbWVtb3J5IG9ubHkgc3Rv
cmFnZS4KKyAgICAKKyAgICAvLyBGSVhNRSA5MTk5NjQ5OiBJZiBhbnkgb2YgdGhlIHN0b3JhZ2Vz
IGRvIG5vdCBleGlzdCwgZG8gbm8gdXNlIHRoZSBzdG9yYWdlIHNlc3Npb24uCisgICAgLy8gVGhp
cyBjb3VsZCBvY2N1ciBpZiB0aGVyZSBpcyBhbiBpc3N1ZSBmaWd1cmluZyBvdXQgd2hlcmUgdG8g
cGxhY2UgYSBzdG9yYWdlIG9uIGRpc2sgKGUuZy4gdGhlCisgICAgLy8gc2FuZGJveCBkb2VzIG5v
dCBhbGxvdyBDRk5ldHdvcmsgYWNjZXNzKS4KKworICAgIGF1dG8gY2FjaGUgPSBhZG9wdENGKF9D
RlVSTFN0b3JhZ2VTZXNzaW9uQ29weUNhY2hlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHN0b3JhZ2VT
ZXNzaW9uLmdldCgpKSk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICBDRlVSTENhY2hlU2V0TWVtb3J5Q2FwYWNpdHkoY2FjaGUuZ2V0KCksIFtbTlNVUkxD
YWNoZSBzaGFyZWRVUkxDYWNoZV0gbWVtb3J5Q2FwYWNpdHldKTsKKworICAgIGF1dG8gY29va2ll
U3RvcmFnZSA9IGFkb3B0Q0YoX0NGVVJMU3RvcmFnZVNlc3Npb25Db3B5Q29va2llU3RvcmFnZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBzdG9yYWdlU2Vzc2lvbi5nZXQoKSkpOworICAgIGlmICghY29v
a2llU3RvcmFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAvLyBGSVhNRTogVXNl
IF9DRkhUVFBDb29raWVTdG9yYWdlR2V0RGVmYXVsdCB3aGVuIFVTRShDRk5FVFdPUkspIGlzIGRl
ZmluZWQgaW4gV2ViS2l0IGZvciBjb25zaXN0ZW5jeS4KKyAgICBDRkhUVFBDb29raWVTdG9yYWdl
U2V0Q29va2llQWNjZXB0UG9saWN5KGNvb2tpZVN0b3JhZ2UuZ2V0KCksIFtbTlNIVFRQQ29va2ll
U3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gY29va2llQWNjZXB0UG9saWN5XSk7CisK
KyAgICByZXR1cm4gc3RvcmFnZVNlc3Npb24ubGVha1JlZigpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQppbmRleCA2NDJhZTJlY2JmMTE1OTQz
MmM0ODZlNjExNWFiMzM4OWNhYTIwMTU4Li44NWFiOTEzNjU5YTQ2MTQ0ZDljNDBlMzM3OGRlNjQz
NmJhNTFjZDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0KQEAgLTI2MCwxMSArMjYwLDM0
IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVBsYXRmb3JtSFRUUEJvZHkoKQogdm9p
ZCBSZXNvdXJjZVJlcXVlc3Q6OnNldFN0b3JhZ2VTZXNzaW9uKENGVVJMU3RvcmFnZVNlc3Npb25S
ZWYgc3RvcmFnZVNlc3Npb24pCiB7CiAgICAgdXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCk7Ci0gICAg
bV9uc1JlcXVlc3QgPSBhZG9wdE5TKHdrQ29weVJlcXVlc3RXaXRoU3RvcmFnZVNlc3Npb24oc3Rv
cmFnZVNlc3Npb24sIG1fbnNSZXF1ZXN0LmdldCgpKSk7CisgICAgbV9uc1JlcXVlc3QgPSBhZG9w
dE5TKGNvcHlSZXF1ZXN0V2l0aFN0b3JhZ2VTZXNzaW9uKHN0b3JhZ2VTZXNzaW9uLCBtX25zUmVx
dWVzdC5nZXQoKSkpOwogfQogCiAjZW5kaWYgLy8gVVNFKENGVVJMQ09OTkVDVElPTikKIAorTlNV
UkxSZXF1ZXN0ICpjb3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lvbihDRlVSTFN0b3JhZ2VTZXNz
aW9uUmVmIHN0b3JhZ2VTZXNzaW9uLCBOU1VSTFJlcXVlc3QgKnJlcXVlc3QpCit7CisgICAgaWYg
KCFzdG9yYWdlU2Vzc2lvbiB8fCAhcmVxdWVzdCkKKyAgICAgICAgcmV0dXJuIFtyZXF1ZXN0IGNv
cHldOworCisgICAgYXV0byBjZlJlcXVlc3QgPSBhZG9wdENGKENGVVJMUmVxdWVzdENyZWF0ZU11
dGFibGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIFtyZXF1ZXN0IF9DRlVSTFJlcXVlc3RdKSk7
CisgICAgX0NGVVJMUmVxdWVzdFNldFN0b3JhZ2VTZXNzaW9uKGNmUmVxdWVzdC5nZXQoKSwgc3Rv
cmFnZVNlc3Npb24pOworICAgIHJldHVybiBbW05TVVJMUmVxdWVzdCBhbGxvY10gX2luaXRXaXRo
Q0ZVUkxSZXF1ZXN0OmNmUmVxdWVzdC5nZXQoKV07Cit9CisKK05TQ2FjaGVkVVJMUmVzcG9uc2Ug
KmNhY2hlZFJlc3BvbnNlRm9yUmVxdWVzdChDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmIHN0b3JhZ2VT
ZXNzaW9uLCBOU1VSTFJlcXVlc3QgKnJlcXVlc3QpCit7CisgICAgaWYgKCFzdG9yYWdlU2Vzc2lv
bikKKyAgICAgICAgcmV0dXJuIFtbTlNVUkxDYWNoZSBzaGFyZWRVUkxDYWNoZV0gY2FjaGVkUmVz
cG9uc2VGb3JSZXF1ZXN0OnJlcXVlc3RdOworCisgICAgYXV0byBjYWNoZSA9IGFkb3B0Q0YoX0NG
VVJMU3RvcmFnZVNlc3Npb25Db3B5Q2FjaGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc3RvcmFnZVNl
c3Npb24pKTsKKyAgICBhdXRvIGNhY2hlZFJlc3BvbnNlID0gYWRvcHRDRihDRlVSTENhY2hlQ29w
eVJlc3BvbnNlRm9yUmVxdWVzdChjYWNoZS5nZXQoKSwgW3JlcXVlc3QgX0NGVVJMUmVxdWVzdF0p
KTsKKyAgICBpZiAoIWNhY2hlZFJlc3BvbnNlKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAg
cmV0dXJuIFtbW05TQ2FjaGVkVVJMUmVzcG9uc2UgYWxsb2NdIF9pbml0V2l0aENGQ2FjaGVkVVJM
UmVzcG9uc2U6Y2FjaGVkUmVzcG9uc2UuZ2V0KCldIGF1dG9yZWxlYXNlXTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0KaW5kZXgg
YzJiNTY5MDQ4NWViNzBjMzRjYjk4NmRkMjNlZTI5MGMzNzA2OTAzNy4uMjkwMDc1MGJkNDVlNDBm
MDY1MWI4MTI3MzMwYzAzNTFjNThmOTIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbQpAQCAtNDAsNiArNDAsMTAgQEAKICNp
bXBvcnQgPHd0Zi9PcHRpb25hbC5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgogCitAaW50ZXJmYWNlIE5TVVJMICgpCistIChDRlVSTFJlZilfY2Z1cmw7CitAZW5kCisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIE5TQXJyYXkgKmh0dHBDb29raWVzRm9yVVJMKENG
SFRUUENvb2tpZVN0b3JhZ2VSZWYgY29va2llU3RvcmFnZSwgTlNVUkwgKmZpcnN0UGFydHksIE5T
VVJMICp1cmwpCkBAIC0xNjgsNiArMTcyLDU3IEBAIHN0YXRpYyBTdHJpbmcgY29va2llc0ZvclNl
c3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmCiAg
ICAgcmV0dXJuIFN0cmluZygpOwogfQogCitzdGF0aWMgTlNBcnJheSAqaHR0cENvb2tpZXMoQ0ZI
VFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdlKQoreworICAgIGlmICghY29va2llU3Rv
cmFnZSkgeworICAgICAgICAvLyBGSVhNRTogVGhlIGZhbGxiYWNrIHRvIE5TSFRUUENvb2tpZVN0
b3JhZ2Ugc2hvdWxkIG5vdCBiZSBwcmVzZW50IHdoZW4gVVNFKENGTkVUV09SSykgaXMgZGVmaW5l
ZCBpbiBXZWJLaXQuCisgICAgICAgIHJldHVybiBbW05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVk
SFRUUENvb2tpZVN0b3JhZ2VdIGNvb2tpZXNdOworICAgIH0KKworICAgIGF1dG8gY29va2llcyA9
IGFkb3B0Q0YoQ0ZIVFRQQ29va2llU3RvcmFnZUNvcHlDb29raWVzKGNvb2tpZVN0b3JhZ2UpKTsK
KyAgICByZXR1cm4gW05TSFRUUENvb2tpZSBfY2YybnNDb29raWVzOmNvb2tpZXMuZ2V0KCldOwor
fQorCitzdGF0aWMgdm9pZCBzZXRIVFRQQ29va2llc0ZvclVSTChDRkhUVFBDb29raWVTdG9yYWdl
UmVmIGNvb2tpZVN0b3JhZ2UsIE5TQXJyYXkgKmNvb2tpZXMsIE5TVVJMICp1cmwsIE5TVVJMICpt
YWluRG9jdW1lbnRVUkwpCit7CisgICAgaWYgKCFjb29raWVTdG9yYWdlKSB7CisgICAgICAgIC8v
IEZJWE1FOiBUaGUgZmFsbGJhY2sgdG8gTlNIVFRQQ29va2llU3RvcmFnZSBzaG91bGQgbm90IGJl
IHByZXNlbnQgd2hlbiBVU0UoQ0ZORVRXT1JLKSBpcyBkZWZpbmVkIGluIFdlYktpdC4KKyAgICAg
ICAgW1tOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXSBzZXRDb29r
aWVzOmNvb2tpZXMgZm9yVVJMOnVybCBtYWluRG9jdW1lbnRVUkw6bWFpbkRvY3VtZW50VVJMXTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gY2ZDb29raWVzID0gYWRvcHRDRihb
TlNIVFRQQ29va2llIF9uczJjZkNvb2tpZXM6Y29va2llc10pOworICAgIENGSFRUUENvb2tpZVN0
b3JhZ2VTZXRDb29raWVzKGNvb2tpZVN0b3JhZ2UsIGNmQ29va2llcy5nZXQoKSwgW3VybCBfY2Z1
cmxdLCBbbWFpbkRvY3VtZW50VVJMIF9jZnVybF0pOworfQorCitzdGF0aWMgdm9pZCBkZWxldGVI
VFRQQ29va2llKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgY29va2llU3RvcmFnZSwgTlNIVFRQQ29v
a2llICpjb29raWUpCit7CisgICAgaWYgKCFjb29raWVTdG9yYWdlKSB7CisgICAgICAgIC8vIEZJ
WE1FOiBUaGUgZmFsbGJhY2sgdG8gTlNIVFRQQ29va2llU3RvcmFnZSBzaG91bGQgbm90IGJlIHBy
ZXNlbnQgd2hlbiBVU0UoQ0ZORVRXT1JLKSBpcyBkZWZpbmVkIGluIFdlYktpdC4KKyAgICAgICAg
W1tOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXSBkZWxldGVDb29r
aWU6Y29va2llXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIENGSFRUUENvb2tpZVN0
b3JhZ2VEZWxldGVDb29raWUoY29va2llU3RvcmFnZSwgW2Nvb2tpZSBfR2V0SW50ZXJuYWxDRkhU
VFBDb29raWVdKTsKK30KKworc3RhdGljIHZvaWQgZGVsZXRlQWxsSFRUUENvb2tpZXMoQ0ZIVFRQ
Q29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdlKQoreworICAgIGlmICghY29va2llU3RvcmFn
ZSkgeworICAgICAgICAvLyBGSVhNRTogVGhlIGZhbGxiYWNrIHRvIE5TSFRUUENvb2tpZVN0b3Jh
Z2Ugc2hvdWxkIG5vdCBiZSBwcmVzZW50IHdoZW4gVVNFKENGTkVUV09SSykgaXMgZGVmaW5lZCBp
biBXZWJLaXQuCisgICAgICAgIE5TSFRUUENvb2tpZVN0b3JhZ2UgKmNvb2tpZVN0b3JhZ2UgPSBb
TlNIVFRQQ29va2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV07CisgICAgICAgIE5T
QXJyYXkgKmNvb2tpZXMgPSBbY29va2llU3RvcmFnZSBjb29raWVzXTsKKyAgICAgICAgaWYgKCFj
b29raWVzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZvciAoTlNIVFRQQ29va2ll
ICpjb29raWUgaW4gY29va2llcykKKyAgICAgICAgICAgIFtjb29raWVTdG9yYWdlIGRlbGV0ZUNv
b2tpZTpjb29raWVdOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQ0ZIVFRQQ29va2ll
U3RvcmFnZURlbGV0ZUFsbENvb2tpZXMoY29va2llU3RvcmFnZSk7Cit9CisKIHN0ZDo6cGFpcjxT
dHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBz
ZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBJbmNsdWRlU2Vj
dXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykKIHsKICAgICBib29sIGRpZEFjY2Vzc1Nl
Y3VyZUNvb2tpZXMgPSBmYWxzZTsKQEAgLTIxMywxNiArMjY4LDI2IEBAIHZvaWQgc2V0Q29va2ll
c0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwm
IGZpcnN0UGFyCiAgICAgICAgIGZpbHRlcmVkQ29va2llcyA9IGFwcGx5UGFydGl0aW9uVG9Db29r
aWVzKHBhcnRpdGlvbiwgZmlsdGVyZWRDb29raWVzLmdldCgpKTsKICNlbmRpZgogCi0gICAgd2tT
ZXRIVFRQQ29va2llc0ZvclVSTChzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSwgZmlsdGVy
ZWRDb29raWVzLmdldCgpLCBjb29raWVVUkwsIGZpcnN0UGFydHkpOworICAgIHNldEhUVFBDb29r
aWVzRm9yVVJMKHNlc3Npb24uY29va2llU3RvcmFnZSgpLmdldCgpLCBmaWx0ZXJlZENvb2tpZXMu
Z2V0KCksIGNvb2tpZVVSTCwgZmlyc3RQYXJ0eSk7CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOwogfQogCitzdGF0aWMgdW5zaWduZWQgaHR0cENvb2tpZUFjY2VwdFBvbGljeShDRkhU
VFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UpCit7CisgICAgaWYgKCFjb29raWVTdG9y
YWdlKSB7CisgICAgICAgIC8vIEZJWE1FOiBUaGUgZmFsbGJhY2sgdG8gTlNIVFRQQ29va2llU3Rv
cmFnZSBzaG91bGQgbm90IGJlIHByZXNlbnQgd2hlbiBVU0UoQ0ZORVRXT1JLKSBpcyBkZWZpbmVk
IGluIFdlYktpdC4KKyAgICAgICAgcmV0dXJuIFtbTlNIVFRQQ29va2llU3RvcmFnZSBzaGFyZWRI
VFRQQ29va2llU3RvcmFnZV0gY29va2llQWNjZXB0UG9saWN5XTsKKyAgICB9CisKKyAgICByZXR1
cm4gQ0ZIVFRQQ29va2llU3RvcmFnZUdldENvb2tpZUFjY2VwdFBvbGljeShjb29raWVTdG9yYWdl
KTsKK30KKwogYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
IHNlc3Npb24sIGNvbnN0IFVSTCYgLypmaXJzdFBhcnR5Ki8sIGNvbnN0IFVSTCYgLyp1cmwqLykK
IHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBOU0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5ID0gc3RhdGljX2Nhc3Q8TlNIVFRQQ29va2ll
QWNjZXB0UG9saWN5Pih3a0dldEhUVFBDb29raWVBY2NlcHRQb2xpY3koc2Vzc2lvbi5jb29raWVT
dG9yYWdlKCkuZ2V0KCkpKTsKKyAgICBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kgY29va2llQWNj
ZXB0UG9saWN5ID0gc3RhdGljX2Nhc3Q8TlNIVFRQQ29va2llQWNjZXB0UG9saWN5PihodHRwQ29v
a2llQWNjZXB0UG9saWN5KHNlc3Npb24uY29va2llU3RvcmFnZSgpLmdldCgpKSk7CiAgICAgcmV0
dXJuIGNvb2tpZUFjY2VwdFBvbGljeSA9PSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXMg
fHwgY29va2llQWNjZXB0UG9saWN5ID09IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9t
TWFpbkRvY3VtZW50RG9tYWluIHx8IGNvb2tpZUFjY2VwdFBvbGljeSA9PSBOU0hUVFBDb29raWVB
Y2NlcHRQb2xpY3lFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW47CiAKICAgICBFTkRf
QkxPQ0tfT0JKQ19FWENFUFRJT05TOwpAQCAtMjU5LDcgKzMyNCw3IEBAIHZvaWQgZGVsZXRlQ29v
a2llKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiB1cmws
IGNvbnN0IFN0CiAgICAgZm9yIChOU1VJbnRlZ2VyIGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewog
ICAgICAgICBOU0hUVFBDb29raWUgKmNvb2tpZSA9IChOU0hUVFBDb29raWUgKilbY29va2llcyBv
YmplY3RBdEluZGV4OmldOwogICAgICAgICBpZiAoW1tjb29raWUgbmFtZV0gaXNFcXVhbFRvU3Ry
aW5nOmNvb2tpZU5hbWVTdHJpbmddKQotICAgICAgICAgICAgd2tEZWxldGVIVFRQQ29va2llKGNv
b2tpZVN0b3JhZ2UuZ2V0KCksIGNvb2tpZSk7CisgICAgICAgICAgICBkZWxldGVIVFRQQ29va2ll
KGNvb2tpZVN0b3JhZ2UuZ2V0KCksIGNvb2tpZSk7CiAgICAgfQogCiAgICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKQEAgLTI2OSw3ICszMzQsNyBAQCB2b2lkIGdldEhvc3RuYW1lc1dpdGhD
b29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgSGFzaFNldDxTdHJp
bgogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIE5TQXJyYXkgKmNv
b2tpZXMgPSB3a0hUVFBDb29raWVzKHNlc3Npb24uY29va2llU3RvcmFnZSgpLmdldCgpKTsKKyAg
ICBOU0FycmF5ICpjb29raWVzID0gaHR0cENvb2tpZXMoc2Vzc2lvbi5jb29raWVTdG9yYWdlKCku
Z2V0KCkpOwogICAgIAogICAgIGZvciAoTlNIVFRQQ29va2llKiBjb29raWUgaW4gY29va2llcykK
ICAgICAgICAgaG9zdG5hbWVzLmFkZChbY29va2llIGRvbWFpbl0pOwpAQCAtMjc5LDcgKzM0NCw3
IEBAIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiBzZXNzaW9uLCBIYXNoU2V0PFN0cmluCiAKIHZvaWQgZGVsZXRlQWxsQ29va2llcyhjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24pCiB7Ci0gICAgd2tEZWxldGVBbGxIVFRQ
Q29va2llcyhzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSk7CisgICAgZGVsZXRlQWxsSFRU
UENvb2tpZXMoc2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuZ2V0KCkpOwogfQogCiB9CkBAIC0yOTMs
NyArMzU4LDcgQEAgdm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKGNvbnN0IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVmVjdG8KICAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CiAKICAgICBSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4gY29v
a2llU3RvcmFnZSA9IHNlc3Npb24uY29va2llU3RvcmFnZSgpOwotICAgIE5TQXJyYXkgKmNvb2tp
ZXMgPSB3a0hUVFBDb29raWVzKGNvb2tpZVN0b3JhZ2UuZ2V0KCkpOworICAgIE5TQXJyYXkgKmNv
b2tpZXMgPSBodHRwQ29va2llcyhjb29raWVTdG9yYWdlLmdldCgpKTsKICAgICBpZiAoIWNvb2tp
ZXMpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzA5LDcgKzM3NCw3IEBAIHZvaWQgZGVsZXRlQ29v
a2llc0Zvckhvc3RuYW1lcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNv
bnN0IFZlY3RvCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBmb3IgKGF1dG8mIGNv
b2tpZSA6IGl0LT52YWx1ZSkKLSAgICAgICAgICAgIHdrRGVsZXRlSFRUUENvb2tpZShjb29raWVT
dG9yYWdlLmdldCgpLCBjb29raWUuZ2V0KCkpOworICAgICAgICAgICAgZGVsZXRlSFRUUENvb2tp
ZShjb29raWVTdG9yYWdlLmdldCgpLCBjb29raWUuZ2V0KCkpOwogICAgIH0KIAogICAgIFtzZXNz
aW9uLm5zQ29va2llU3RvcmFnZSgpIF9zYXZlQ29va2llc107CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCmluZGV4
IDBjMzUzMTRjYTIwYWU4ZGQ0ODE0M2YxNDAxOWY5NjgyNTU5NGZlNWQuLjFjNzRiMzk2YzcxODhl
Nzc2MTc1ZTY5ODFiZGU5M2U5MTM4MjdlNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBAIC0xNzcsNyAr
MTc3LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRl
bGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWwKICNlbmRpZgogCiAgICAgaWYgKGQtPm1f
c3RvcmFnZVNlc3Npb24pCi0gICAgICAgIG5zUmVxdWVzdCA9IFt3a0NvcHlSZXF1ZXN0V2l0aFN0
b3JhZ2VTZXNzaW9uKGQtPm1fc3RvcmFnZVNlc3Npb24uZ2V0KCksIG5zUmVxdWVzdCkgYXV0b3Jl
bGVhc2VdOworICAgICAgICBuc1JlcXVlc3QgPSBbY29weVJlcXVlc3RXaXRoU3RvcmFnZVNlc3Np
b24oZC0+bV9zdG9yYWdlU2Vzc2lvbi5nZXQoKSwgbnNSZXF1ZXN0KSBhdXRvcmVsZWFzZV07CiAK
ICAgICBBU1NFUlQoW05TVVJMQ29ubmVjdGlvbiBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX2luaXRXaXRoUmVxdWVzdDpkZWxlZ2F0ZTp1c2VzQ2FjaGU6bWF4Q29udGVudExl
bmd0aDpzdGFydEltbWVkaWF0ZWx5OmNvbm5lY3Rpb25Qcm9wZXJ0aWVzOildKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0K
aW5kZXggMmY0YjIyOGYxNjhiNjI3YjE4YzAzZTIzNDQxMDJiNmU4M2EzZThhNC4uMDQ1YjliMmQ0
ODJlNDIyNzljOTZlOWExOTNjNGVkN2QwODZiNzljMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC00NCw2ICs0NCw3
IEBACiAjaW1wb3J0ICJXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLmgiCiAjaW1wb3J0IDxXZWJDb3Jl
L0NvbG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNpbXBvcnQgPFdlYkNv
cmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KQEAgLTU3Niw3ICs1NzcsNyBAQCBz
dGF0aWMgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBwcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKICAg
ICBkaXNwYXRjaF9vbmNlKCZvbmNlLCBeewogICAgICAgICBOU1N0cmluZyAqaWRlbnRpZmllciA9
IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAuUHJpdmF0ZUJyb3dzaW5nIiwgW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXV07CiAKLSAgICAgICAgc2Vzc2lvbiA9
IFdLQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKChDRlN0cmluZ1JlZilpZGVudGlmaWVyKTsK
KyAgICAgICAgc2Vzc2lvbiA9IGNyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbigoQ0ZTdHJpbmdS
ZWYpaWRlbnRpZmllcik7CiAgICAgfSk7CiAKICAgICByZXR1cm4gc2Vzc2lvbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVt
SW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggZTI1MTI3YzI5YzAzNGYwMmRmMDFjZmJiYmFm
NWM1YjZlNzgwZGMwNy4uN2EzMzM2YzA2ZTA4NmVjMDQ4NTdlZjc0OTgwMDMyNTgwZTliNDg1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9X
ZWJTeXN0ZW1JbnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTc1LDEzICs3NSw2IEBAIHZv
aWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICNpZiAhUExBVEZPUk0oSU9TKQog
ICAgICAgICBJTklUKFNldERyYWdJbWFnZSk7CiAjZW5kaWYKLSAgICAgICAgSU5JVChDcmVhdGVQ
cml2YXRlU3RvcmFnZVNlc3Npb24pOwotICAgICAgICBJTklUKENvcHlSZXF1ZXN0V2l0aFN0b3Jh
Z2VTZXNzaW9uKTsKLSAgICAgICAgSU5JVChHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKLSAg
ICAgICAgSU5JVChIVFRQQ29va2llcyk7Ci0gICAgICAgIElOSVQoU2V0SFRUUENvb2tpZXNGb3JV
UkwpOwotICAgICAgICBJTklUKERlbGV0ZUFsbEhUVFBDb29raWVzKTsKLSAgICAgICAgSU5JVChE
ZWxldGVIVFRQQ29va2llKTsKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIElOSVQoU2V0
TWV0YWRhdGFVUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvV2ViUGFnZU1hYy5tbQppbmRleCAzZjhkNWFmZjMyZWI3ZDU4NzVmNzQzNGQ1MTk2MGUyNTcw
N2RhMzk1Li5kNzBjOTVhZTg3ZDU0OWM3MTc2YzFmMmZmMzU3MDNjZDM0MDhlMmJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpA
QCAtNjg0LDcgKzY4NCw3IEBAIGJvb2wgV2ViUGFnZTo6cGxhdGZvcm1IYXNMb2NhbERhdGFGb3JV
UkwoY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwpCiAgICAgW3JlcXVlc3Qgc2V0VmFsdWU6KE5TU3Ry
aW5nKil1c2VyQWdlbnQodXJsKSBmb3JIVFRQSGVhZGVyRmllbGQ6QCJVc2VyLUFnZW50Il07CiAg
ICAgTlNDYWNoZWRVUkxSZXNwb25zZSAqY2FjaGVkUmVzcG9uc2U7CiAgICAgaWYgKENGVVJMU3Rv
cmFnZVNlc3Npb25SZWYgc3RvcmFnZVNlc3Npb24gPSBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS5s
b2FkZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpLT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vz
c2lvbigpKQotICAgICAgICBjYWNoZWRSZXNwb25zZSA9IFdLQ2FjaGVkUmVzcG9uc2VGb3JSZXF1
ZXN0KHN0b3JhZ2VTZXNzaW9uLCByZXF1ZXN0KTsKKyAgICAgICAgY2FjaGVkUmVzcG9uc2UgPSBj
YWNoZWRSZXNwb25zZUZvclJlcXVlc3Qoc3RvcmFnZVNlc3Npb24sIHJlcXVlc3QpOwogICAgIGVs
c2UKICAgICAgICAgY2FjaGVkUmVzcG9uc2UgPSBbW05TVVJMQ2FjaGUgc2hhcmVkVVJMQ2FjaGVd
IGNhY2hlZFJlc3BvbnNlRm9yUmVxdWVzdDpyZXF1ZXN0XTsKICAgICBbcmVxdWVzdCByZWxlYXNl
XTsKQEAgLTY5OCw3ICs2OTgsNyBAQCBzdGF0aWMgTlNDYWNoZWRVUkxSZXNwb25zZSAqY2FjaGVk
UmVzcG9uc2VGb3JVUkwoV2ViUGFnZSogd2ViUGFnZSwgY29uc3QgVVJMJiB1cgogICAgIFtyZXF1
ZXN0IHNldFZhbHVlOihOU1N0cmluZyAqKXdlYlBhZ2UtPnVzZXJBZ2VudCh1cmwpIGZvckhUVFBI
ZWFkZXJGaWVsZDpAIlVzZXItQWdlbnQiXTsKIAogICAgIGlmIChDRlVSTFN0b3JhZ2VTZXNzaW9u
UmVmIHN0b3JhZ2VTZXNzaW9uID0gd2ViUGFnZS0+Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkubG9h
ZGVyKCkubmV0d29ya2luZ0NvbnRleHQoKS0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Np
b24oKSkKLSAgICAgICAgcmV0dXJuIFdLQ2FjaGVkUmVzcG9uc2VGb3JSZXF1ZXN0KHN0b3JhZ2VT
ZXNzaW9uLCByZXF1ZXN0LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIGNhY2hlZFJlc3BvbnNlRm9y
UmVxdWVzdChzdG9yYWdlU2Vzc2lvbiwgcmVxdWVzdC5nZXQoKSk7CiAKICAgICByZXR1cm4gW1tO
U1VSTENhY2hlIHNoYXJlZFVSTENhY2hlXSBjYWNoZWRSZXNwb25zZUZvclJlcXVlc3Q6cmVxdWVz
dC5nZXQoKV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggZWZlMzJlMDQxZDViYTUz
OTE2ZjA4MzA0NzJjMmEyOTI3YTdjYmFjNy4uZTQyZjI1YjRjOWEyOTNhNTZmYjM5MDdiMzQ2YTUz
YzFlMzEyMWRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAtMTA1LDEzICsxMDUsNiBA
QCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgSU5JVChDcmVhdGVB
WFVJRWxlbWVudFJlZik7CiAgICAgSU5JVChVbnJlZ2lzdGVyVW5pcXVlSWRGb3JFbGVtZW50KTsK
ICNlbmRpZgotICAgIElOSVQoQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKTsKLSAgICBJTklU
KENvcHlSZXF1ZXN0V2l0aFN0b3JhZ2VTZXNzaW9uKTsKLSAgICBJTklUKEdldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kpOwotICAgIElOSVQoSFRUUENvb2tpZXMpOwotICAgIElOSVQoU2V0SFRUUENv
b2tpZXNGb3JVUkwpOwotICAgIElOSVQoRGVsZXRlQWxsSFRUUENvb2tpZXMpOwotICAgIElOSVQo
RGVsZXRlSFRUUENvb2tpZSk7CiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIElOSVQoU2V0TWV0
YWRhdGFVUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmlu
ZGV4IDU0ZWIxMDRmMmM0OGYxN2ZkY2VjODZiOTk0ZjcwMTI5NGM1OTI2YTcuLjQ3OGMyMWNhNjE4
OTI4NzAzMjZhYjhiN2VmZTIzMjFjNzlkOGE1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTM1NTUsNyArMzU1NSw3IEBAIC0gKE5TQ2FjaGVkVVJM
UmVzcG9uc2UgKilfY2FjaGVkUmVzcG9uc2VGb3JVUkw6KE5TVVJMICopVVJMCiAgICAgICAgIHJl
dHVybiBuaWw7CiAKICAgICBpZiAoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBzdG9yYWdlU2Vzc2lv
biA9IF9wcml2YXRlLT5wYWdlLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4
dCgpLT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpKQotICAgICAgICBjYWNoZWRS
ZXNwb25zZSA9IFdLQ2FjaGVkUmVzcG9uc2VGb3JSZXF1ZXN0KHN0b3JhZ2VTZXNzaW9uLCByZXF1
ZXN0LmdldCgpKTsKKyAgICAgICAgY2FjaGVkUmVzcG9uc2UgPSBjYWNoZWRSZXNwb25zZUZvclJl
cXVlc3Qoc3RvcmFnZVNlc3Npb24sIHJlcXVlc3QuZ2V0KCkpOwogICAgIGVsc2UKICAgICAgICAg
Y2FjaGVkUmVzcG9uc2UgPSBbW05TVVJMQ2FjaGUgc2hhcmVkVVJMQ2FjaGVdIGNhY2hlZFJlc3Bv
bnNlRm9yUmVxdWVzdDpyZXF1ZXN0LmdldCgpXTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319209</attachid>
            <date>2017-08-28 14:40:28 -0700</date>
            <delta_ts>2017-08-28 15:23:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176032-20170828144027.patch</filename>
            <type>text/plain</type>
            <size>29162</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlhYTc4MGQ4OGNiMzc2
YTQ1ZWVmOTQ5ODI5OTQyNmIxODE5MWQ5Ny4uZTQzNTQ2ZTEyZDhkNWU4OWI5ZGQ2NTRjMGRjY2Ew
Mjk4ZTlmMGUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE3LTA4LTI4ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFVwc3RyZWFtIENG
TmV0d29yay1yZWxhdGVkIFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjAzMgorCisgICAgICAg
IFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mv
V2ViQ29yZVN5c3RlbUludGVyZmFjZUlPUy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2Vi
Q29yZVN5c3RlbUludGVyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25DRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29j
b2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVQcml2YXRlU3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29j
b2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3Q6OnNldFN0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvcHlSZXF1ZXN0
V2l0aFN0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlZFJlc3BvbnNlRm9y
UmVxdWVzdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6aHR0cENvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SFRUUENvb2tpZXNGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlSFRUUENvb2tpZSk6
CisgICAgICAgIChXZWJDb3JlOjpkZWxldGVBbGxIVFRQQ29va2llcyk6CisgICAgICAgIChXZWJD
b3JlOjpzZXRDb29raWVzRnJvbURPTSk6CisgICAgICAgIChXZWJDb3JlOjpodHRwQ29va2llQWNj
ZXB0UG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OmRlbGV0ZUNvb2tpZSk6CisgICAgICAgIChXZWJDb3JlOjpnZXRIb3N0bmFtZXNX
aXRoQ29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpkZWxldGVBbGxDb29raWVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbik6CisKIDIwMTctMDgtMjggIENh
cmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS10gW1dQRV0gUmVuYW1lIEV2ZW50SGFuZGxlckdsaWIgdG8gRXZlbnRIYW5kbGVyR0xpYgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKaW5kZXggNzZkY2Q5MDE3MTAwMGI3NmY2YWI4MDM4MmU1MzZjZTQxN2Ni
YjA2MC4uZTExNGMyODJjN2M2MzI4NmQ0ODA5ZmY1ZGEwOWM3MDU5MTYyOThjZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMDgtMjggIEFuZHkgRXN0ZXMgIDxhZXN0
ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gVXBzdHJlYW0gQ0ZOZXR3b3JrLXJlbGF0
ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg6
CisKIDIwMTctMDgtMjUgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIExvZ2dlcjo6bG9nQWx3YXlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNiOTU4NDI4NTAzYTFi
YzdhNDE2N2I0ZGNkODNkYWRiYTk1MDg1NmEuLjM1MTRkMDdmOWNjOWRkZjI5NTY4M2QwMDI1NzJl
NGE5ZTI4YWIwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTctMDgtMjggIEFuZHkg
RXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gVXBzdHJlYW0gQ0ZO
ZXR3b3JrLXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDMyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0Ojpwcml2YXRlQnJvd3Np
bmdTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJT
eXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpwbGF0Zm9ybUhhc0xvY2FsRGF0YUZvclVSTCk6CisgICAgICAg
IChXZWJLaXQ6OmNhY2hlZFJlc3BvbnNlRm9yVVJMKToKKwogMjAxNy0wOC0yOCAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVyOiBp
bXBsZW1lbnQgc2NyZWVuIGNhcHR1cmUgY29tbWFuZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwppbmRleCA5N2I0ZGY4Y2MzYzYyNzk3NjZhMmFkYTc5YWE3YjRkNDczMGQ2ZjM4Li4wZDJhNzE3
YjljMTRlZjU3ZmIxYmU1Yzk2NmYwODNlNjZmODU1MDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDgtMjggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNA
YXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gVXBzdHJlYW0gQ0ZOZXR3b3JrLXJlbGF0ZWQg
V2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxl
eCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVy
ZmFjZS5tbToKKyAgICAgICAgKEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NhY2hlZFJlc3BvbnNl
Rm9yVVJMOl0pOgorCiAyMDE3LTA4LTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgogCiAgICAgICAgIFBpY2tpbmcgYW4gZW1vamkgdmlhIHRoZSBlbW9qaSBkaWFsb2cg
KEN0cmwrQ21kK1NwYWNlKSBmaXJlcyBpbmNvbnNpc3RlbnQgYmVmb3JlaW5wdXQgZXZlbnRzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaAppbmRleCAxODZl
N2M5NDA2ZGY3M2IwOGE5ZTdjZjQ1ODg0ZTU5NTVhNzZhZTdkLi4wYWU4MGM3ODdiOGU4MWI5YTg0
ZjAxYjkxNmI4YmY3NGE5MzJkZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jZi9DRk5ldHdvcmtTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
Zi9DRk5ldHdvcmtTUEkuaApAQCAtMTE1LDYgKzExNSw4IEBAIHR5cGVkZWYgdm9pZCAoXkNGQ2Fj
aGVkVVJMUmVzcG9uc2VDYWxsQmFja0Jsb2NrKShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKIAog
QGludGVyZmFjZSBOU0hUVFBDb29raWUgKCkKIC0gKENGSFRUUENvb2tpZVJlZilfQ0ZIVFRQQ29v
a2llOworKyAoQ0ZBcnJheVJlZiBfX251bGxhYmxlKV9uczJjZkNvb2tpZXM6KE5TQXJyYXkgKiBf
X251bGxhYmxlKW5zQ29va2llcyBDRl9SRVRVUk5TX1JFVEFJTkVEOworLSAoQ0ZIVFRQQ29va2ll
UmVmIF9fbnVsbGFibGUpX0dldEludGVybmFsQ0ZIVFRQQ29va2llOwogQGVuZAogCiBAaW50ZXJm
YWNlIE5TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKCkKQEAgLTE3MSw2ICsxNzMsNyBAQCBDRlVS
TENhY2hlUmVmIENGVVJMQ2FjaGVDb3B5U2hhcmVkVVJMQ2FjaGUoKTsKIHZvaWQgQ0ZVUkxDYWNo
ZVNldE1lbW9yeUNhcGFjaXR5KENGVVJMQ2FjaGVSZWYsIENGSW5kZXggbWVtb3J5Q2FwYWNpdHkp
OwogQ0ZJbmRleCBDRlVSTENhY2hlTWVtb3J5Q2FwYWNpdHkoQ0ZVUkxDYWNoZVJlZik7CiB2b2lk
IENGVVJMQ2FjaGVTZXREaXNrQ2FwYWNpdHkoQ0ZVUkxDYWNoZVJlZiwgQ0ZJbmRleCk7CitDRkNh
Y2hlZFVSTFJlc3BvbnNlUmVmIENGVVJMQ2FjaGVDb3B5UmVzcG9uc2VGb3JSZXF1ZXN0KENGVVJM
Q2FjaGVSZWYsIENGVVJMUmVxdWVzdFJlZik7CiAKICNpZiBQTEFURk9STShDT0NPQSkKIEJvb2xl
YW4gX0NGTmV0d29ya0lzS25vd25IU1RTSG9zdFdpdGhTZXNzaW9uKENGVVJMUmVmLCBDRlVSTFN0
b3JhZ2VTZXNzaW9uUmVmKTsKQEAgLTE5Miw2ICsxOTUsNyBAQCBleHRlcm4gQ0ZTdHJpbmdSZWYg
Y29uc3Qga0NGSFRUUENvb2tpZUxvY2FsRmlsZURvbWFpbjsKIGV4dGVybiBjb25zdCBDRlN0cmlu
Z1JlZiBrQ0ZIVFRQVmVyc2lvbjFfMTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ0ZVUkxS
ZXF1ZXN0QWxsb3dBbGxQT1NUQ2FjaGluZzsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBfa0NG
VVJMQ29ubmVjdGlvblByb3BlcnR5U2hvdWxkU25pZmY7CitleHRlcm4gY29uc3QgQ0ZTdHJpbmdS
ZWYgX2tDRlVSTFN0b3JhZ2VTZXNzaW9uSXNQcml2YXRlOwogCiBDRkhUVFBDb29raWVTdG9yYWdl
UmVmIF9DRkhUVFBDb29raWVTdG9yYWdlR2V0RGVmYXVsdChDRkFsbG9jYXRvclJlZik7CiBDRkhU
VFBDb29raWVTdG9yYWdlUmVmIENGSFRUUENvb2tpZVN0b3JhZ2VDcmVhdGVGcm9tRmlsZShDRkFs
bG9jYXRvclJlZiwgQ0ZVUkxSZWYsIENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwpAQCAtMjI4LDYg
KzIzMiwxMCBAQCBDRlVSTFJlZiBDRlVSTFJlcXVlc3RHZXRVUkwoQ0ZVUkxSZXF1ZXN0UmVmKTsK
IENGVVJMUmVzcG9uc2VSZWYgQ0ZVUkxSZXNwb25zZUNyZWF0ZShDRkFsbG9jYXRvclJlZiwgQ0ZV
UkxSZWYsIENGU3RyaW5nUmVmIG1pbWVUeXBlLCBTSW50NjQgZXhwZWN0ZWRDb250ZW50TGVuZ3Ro
LCBDRlN0cmluZ1JlZiB0ZXh0RW5jb2RpbmdOYW1lLCBDRlVSTENhY2hlU3RvcmFnZVBvbGljeSk7
CiB2b2lkIENGVVJMUmVzcG9uc2VTZXRFeHBlY3RlZENvbnRlbnRMZW5ndGgoQ0ZVUkxSZXNwb25z
ZVJlZiwgU0ludDY0IGxlbmd0aCk7CiBDRlVSTFJlc3BvbnNlUmVmIENGVVJMUmVzcG9uc2VDcmVh
dGVXaXRoSFRUUFJlc3BvbnNlKENGQWxsb2NhdG9yUmVmLCBDRlVSTFJlZiwgQ0ZIVFRQTWVzc2Fn
ZVJlZiwgQ0ZVUkxDYWNoZVN0b3JhZ2VQb2xpY3kpOworQ0ZBcnJheVJlZiBDRkhUVFBDb29raWVT
dG9yYWdlQ29weUNvb2tpZXMoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Cit2b2lkIENGSFRUUENv
b2tpZVN0b3JhZ2VTZXRDb29raWVzKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIENGQXJyYXlSZWYg
Y29va2llcywgQ0ZVUkxSZWYsIENGVVJMUmVmIG1haW5Eb2N1bWVudFVSTCk7Cit2b2lkIENGSFRU
UENvb2tpZVN0b3JhZ2VEZWxldGVDb29raWUoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgQ0ZIVFRQ
Q29va2llUmVmKTsKK0NGTXV0YWJsZVVSTFJlcXVlc3RSZWYgQ0ZVUkxSZXF1ZXN0Q3JlYXRlTXV0
YWJsZUNvcHkoQ0ZBbGxvY2F0b3JSZWYsIENGVVJMUmVxdWVzdFJlZik7CiAKICNlbmRpZiAvLyAh
UExBVEZPUk0oV0lOKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViQ29yZVN5c3RlbUludGVyZmFjZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLm1tCmluZGV4IDhlNDBjZjMwYThlMTZjYmQ2YTAz
OTFmMjNmZmZlYTU5MWNlNmU5OWEuLmE3MmY5YmMwYzg1MDE1ZTA0OGViOGJiNWNhNzIwNDk2ZGY0
NjE1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJD
b3JlU3lzdGVtSW50ZXJmYWNlSU9TLm1tCkBAIC0zOSwxNCArMzksNiBAQCBXRUJDT1JFX0VYUE9S
VCBDRkhUVFBNZXNzYWdlUmVmICgqd2tDb3B5Q09OTkVDVFByb3h5UmVzcG9uc2UpKENGUmVhZFN0
cmVhbVJlZiwgQwogV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0TGF5ZXJDb250ZW50c1NjYWxl
KShDQUxheWVyICopOwogV0VCQ09SRV9FWFBPUlQgQ0ZTdHJpbmdFbmNvZGluZyAoKndrR2V0V2Vi
RGVmYXVsdENGU3RyaW5nRW5jb2RpbmcpKHZvaWQpOwogCi1XRUJDT1JFX0VYUE9SVCBDRlVSTFN0
b3JhZ2VTZXNzaW9uUmVmICgqd2tDcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24pKENGU3RyaW5n
UmVmKTsKLVdFQkNPUkVfRVhQT1JUIE5TVVJMUmVxdWVzdCogKCp3a0NvcHlSZXF1ZXN0V2l0aFN0
b3JhZ2VTZXNzaW9uKShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBOU1VSTFJlcXVlc3QqKTsKLVdF
QkNPUkVfRVhQT1JUIHVuc2lnbmVkICgqd2tHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KShDRkhU
VFBDb29raWVTdG9yYWdlUmVmKTsKLVdFQkNPUkVfRVhQT1JUIE5TQXJyYXkgKigqd2tIVFRQQ29v
a2llcykoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkICgqd2tT
ZXRIVFRQQ29va2llc0ZvclVSTCkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgTlNBcnJheSAqLCBO
U1VSTCAqLCBOU1VSTCAqKTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a0RlbGV0ZUFsbEhUVFBD
b29raWVzKShDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3
a0RlbGV0ZUhUVFBDb29raWUpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5TSFRUUENvb2tpZSAq
KTsKLQogV0VCQ09SRV9FWFBPUlQgdm9pZCgqd2tEZXN0cm95UmVuZGVyaW5nUmVzb3VyY2VzKSh2
b2lkKTsKIAogV0VCQ09SRV9FWFBPUlQgYm9vbCAoKndrQ2FwdGlvbkFwcGVhcmFuY2VIYXNVc2Vy
UHJlZmVyZW5jZXMpKHZvaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKaW5kZXggNWFkZjEyZTNmYmNhYmYwODBkM2U4MmI3
YjRkYmNkYmM5YzBhYWJhYi4uMDY3MmQ2MDJhZjI2YzYzYTgyYzRhZjI2MGI0MWE2Yjc0MDIxM2M3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1J
bnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5oCkBAIC0yMTQsMTUgKzIxNCw2IEBAIGV4dGVybiB2b2lkICgqd2tTZXRMYXll
ckNvbnRlbnRzU2NhbGUpKENBTGF5ZXIgKik7CiAjZW5kaWYKIAogdHlwZWRlZiBjb25zdCBzdHJ1
Y3QgX19DRlVSTFN0b3JhZ2VTZXNzaW9uKiBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmOwotZXh0ZXJu
IENGVVJMU3RvcmFnZVNlc3Npb25SZWYgKCp3a0NyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbiko
Q0ZTdHJpbmdSZWYpOwotZXh0ZXJuIE5TVVJMUmVxdWVzdCogKCp3a0NvcHlSZXF1ZXN0V2l0aFN0
b3JhZ2VTZXNzaW9uKShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBOU1VSTFJlcXVlc3QqKTsKLQot
dHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ0ZIVFRQQ29va2llU3RvcmFnZSogQ0ZIVFRQQ29va2llU3Rv
cmFnZVJlZjsKLWV4dGVybiB1bnNpZ25lZCAoKndrR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSko
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Ci1leHRlcm4gTlNBcnJheSAqKCp3a0hUVFBDb29raWVz
KShDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsKLWV4dGVybiB2b2lkICgqd2tTZXRIVFRQQ29va2ll
c0ZvclVSTCkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgTlNBcnJheSAqLCBOU1VSTCAqLCBOU1VS
TCAqKTsKLWV4dGVybiB2b2lkICgqd2tEZWxldGVIVFRQQ29va2llKShDRkhUVFBDb29raWVTdG9y
YWdlUmVmLCBOU0hUVFBDb29raWUgKik7Ci1leHRlcm4gdm9pZCAoKndrRGVsZXRlQWxsSFRUUENv
b2tpZXMpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogCiAjaWYgIVBMQVRGT1JNKElPUykKIGV4
dGVybiB2b2lkICgqd2tTZXRNZXRhZGF0YVVSTCkoTlNTdHJpbmcgKnVybFN0cmluZywgTlNTdHJp
bmcgKnJlZmVycmVyLCBOU1N0cmluZyAqcGF0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCmluZGV4IGM0YjMzZjQwNjM5
NjYxNjVmNmJhYjFjNzdlMmYyNTY4MDdmMmQ4ZDMuLmVhMTAzZGJhZDZiMWRkMWIwZWZiZGJlM2Yw
MGJiMGMwNWU2YzYzYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9X
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCkBAIC05MywxNCArOTMsNiBAQCBDRlR5cGVSZWYg
KCp3a0NyZWF0ZUFYVGV4dE1hcmtlcikoY29uc3Qgdm9pZCAqYnl0ZXMsIHNpemVfdCBsZW4pOwog
Qk9PTCAoKndrR2V0Qnl0ZXNGcm9tQVhUZXh0TWFya2VyKShDRlR5cGVSZWYgdGV4dE1hcmtlciwg
dm9pZCAqYnl0ZXMsIHNpemVfdCBsZW5ndGgpOwogQVhVSUVsZW1lbnRSZWYgKCp3a0NyZWF0ZUFY
VUlFbGVtZW50UmVmKShpZCBlbGVtZW50KTsKIAotQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiAoKndr
Q3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKShDRlN0cmluZ1JlZik7Ci1OU1VSTFJlcXVlc3Qq
ICgqd2tDb3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lvbikoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJl
ZiwgTlNVUkxSZXF1ZXN0Kik7Ci11bnNpZ25lZCAoKndrR2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Ci1OU0FycmF5ICooKndrSFRUUENvb2tpZXMpKENG
SFRUUENvb2tpZVN0b3JhZ2VSZWYpOwotdm9pZCAoKndrU2V0SFRUUENvb2tpZXNGb3JVUkwpKENG
SFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5TQXJyYXkgKiwgTlNVUkwgKiwgTlNVUkwgKik7Ci12b2lk
ICgqd2tEZWxldGVBbGxIVFRQQ29va2llcykoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Ci12b2lk
ICgqd2tEZWxldGVIVFRQQ29va2llKShDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBOU0hUVFBDb29r
aWUgKik7Ci0KIHZvaWQgKCp3a1NldE1ldGFkYXRhVVJMKShOU1N0cmluZyAqdXJsU3RyaW5nLCBO
U1N0cmluZyAqcmVmZXJyZXIsIE5TU3RyaW5nICpwYXRoKTsKIAogI2lmICFQTEFURk9STShJT1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3Rv
cmFnZVNlc3Npb24uaAppbmRleCBkOGE5NjE4MjlhMDUyYTA2YzlhMzkwZTk3ZDAwM2I0NGY0YmMw
OThkLi5lNzUxYmYyNGU1MDFhMTg2YzUwOTg1MjczMjljOGZlMmM2M2U3ZThlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmgKQEAgLTE1Myw0ICsxNTMsOCBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCisjaWYgUExB
VEZPUk0oQ09DT0EpCitXRUJDT1JFX0VYUE9SVCBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmIGNyZWF0
ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbihDRlN0cmluZ1JlZiBpZGVudGlmaWVyKTsKKyNlbmRpZgor
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCmluZGV4IDdlOTAzMmMzNDNlMWRk
ZmU3NDk4N2VhMzkxMTMwOWU4ZjM1MjI5NGIuLjRjOWZjM2RmNTVkZjJkNDc3MzQ2ZjY5NjZlZjQy
ZGVjMmM0NTA5NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCkBAIC05MCw3
ICs5MCw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3RpbmdT
ZXNzaW9uKCkKIAogICAgIFJldGFpblB0cjxDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmPiBzZXNzaW9u
OwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHNlc3Npb24gPSBhZG9wdENGKHdrQ3JlYXRlUHJp
dmF0ZVN0b3JhZ2VTZXNzaW9uKHNlc3Npb25OYW1lLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsK
KyAgICBzZXNzaW9uID0gYWRvcHRDRihjcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24oc2Vzc2lv
bk5hbWUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOwogI2Vsc2UKICAgICBzZXNzaW9uID0gYWRv
cHRDRih3a0NyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbihzZXNzaW9uTmFtZS5jcmVhdGVDRlN0
cmluZygpLmdldCgpLCBkZWZhdWx0U3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKSkp
OwogI2VuZGlmCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmVuc3VyZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcKICAg
ICBSZXRhaW5QdHI8Q0ZVUkxTdG9yYWdlU2Vzc2lvblJlZj4gc3RvcmFnZVNlc3Npb247CiAgICAg
aWYgKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKSB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAg
ICAgIHN0b3JhZ2VTZXNzaW9uID0gYWRvcHRDRih3a0NyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lv
bihjZklkZW50aWZpZXIuZ2V0KCkpKTsKKyAgICAgICAgc3RvcmFnZVNlc3Npb24gPSBhZG9wdENG
KGNyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbihjZklkZW50aWZpZXIuZ2V0KCkpKTsKICNlbHNl
CiAgICAgICAgIHN0b3JhZ2VTZXNzaW9uID0gYWRvcHRDRih3a0NyZWF0ZVByaXZhdGVTdG9yYWdl
U2Vzc2lvbihjZklkZW50aWZpZXIuZ2V0KCksIGRlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24o
KS0+cGxhdGZvcm1TZXNzaW9uKCkpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggMTJmMWI2NjAyYjc5
MzI1ZTQ3ODRiYjIxZGFlNDU3N2QwOTRjZDc5NS4uMTRiY2I2YWY5OTNmOTM5NjlmYzYyMDY1MDAx
YzJmZTI3NzgxMjBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXF1ZXN0QmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAorT0JKQ19D
TEFTUyBOU0NhY2hlZFVSTFJlc3BvbnNlOwogT0JKQ19DTEFTUyBOU1VSTFJlcXVlc3Q7CiAKICNp
ZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKENGVVJMQ09OTkVDVElPTikKQEAgLTEzNSw0ICsxMzYs
OSBAQCBpbmxpbmUgYm9vbCBSZXNvdXJjZVJlcXVlc3Q6OnJlc291cmNlUHJpb3JpdGllc0VuYWJs
ZWQoKQogI2VuZGlmCiB9CiAKKyNpZiBQTEFURk9STShDT0NPQSkKK05TVVJMUmVxdWVzdCAqY29w
eVJlcXVlc3RXaXRoU3RvcmFnZVNlc3Npb24oQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiwgTlNVUkxS
ZXF1ZXN0ICopOworV0VCQ09SRV9FWFBPUlQgTlNDYWNoZWRVUkxSZXNwb25zZSAqY2FjaGVkUmVz
cG9uc2VGb3JSZXF1ZXN0KENGVVJMU3RvcmFnZVNlc3Npb25SZWYsIE5TVVJMUmVxdWVzdCAqKTsK
KyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNl
c3Npb25Db2NvYS5tbQppbmRleCA1M2E3OWIyODc4YTRlM2IzMmZhYmY2NzgyMzQ1YjgwMTVhNmI1
MGRhLi4zYTcxODA3YmRiMzgyODZlZDBjZjk2YWNmNWI3NWI2MGUyNTI0NjA5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2Ev
TmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KQEAgLTk5LDQgKzk5LDM4IEBAIENvb2tpZVN0
b3JhZ2VPYnNlcnZlciYgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVTdG9yYWdlT2JzZXJ2
ZXIoKSBjb25zdAogICAgIHJldHVybiAqbV9jb29raWVTdG9yYWdlT2JzZXJ2ZXI7CiB9CiAKK0NG
VVJMU3RvcmFnZVNlc3Npb25SZWYgY3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKENGU3RyaW5n
UmVmIGlkZW50aWZpZXIpCit7CisgICAgY29uc3Qgdm9pZCogc2Vzc2lvblByb3BlcnR5S2V5c1td
ID0geyBfa0NGVVJMU3RvcmFnZVNlc3Npb25Jc1ByaXZhdGUgfTsKKyAgICBjb25zdCB2b2lkKiBz
ZXNzaW9uUHJvcGVydHlWYWx1ZXNbXSA9IHsga0NGQm9vbGVhblRydWUgfTsKKyAgICBhdXRvIHNl
c3Npb25Qcm9wZXJ0aWVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgc2Vzc2lvblByb3BlcnR5S2V5cywgc2Vzc2lvblByb3BlcnR5VmFsdWVzLCBzaXpl
b2Yoc2Vzc2lvblByb3BlcnR5S2V5cykgLyBzaXplb2YoKnNlc3Npb25Qcm9wZXJ0eUtleXMpLCAm
a0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2Fs
bEJhY2tzKSk7CisgICAgYXV0byBzdG9yYWdlU2Vzc2lvbiA9IGFkb3B0Q0YoX0NGVVJMU3RvcmFn
ZVNlc3Npb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgaWRlbnRpZmllciwgc2Vzc2lvblBy
b3BlcnRpZXMuZ2V0KCkpKTsKKworICAgIGlmICghc3RvcmFnZVNlc3Npb24pCisgICAgICAgIHJl
dHVybiBudWxscHRyOworCisgICAgLy8gVGhlIHByaXZhdGUgc3RvcmFnZSBzZXNzaW9uIHNob3Vs
ZCBoYXZlIHRoZSBzYW1lIHByb3BlcnRpZXMgYXMgdGhlIGRlZmF1bHQgc3RvcmFnZSBzZXNzaW9u
LAorICAgIC8vIHdpdGggdGhlIGV4Y2VwdGlvbiB0aGF0IGl0IHNob3VsZCBiZSBpbi1tZW1vcnkg
b25seSBzdG9yYWdlLgorCisgICAgLy8gRklYTUUgOTE5OTY0OTogSWYgYW55IG9mIHRoZSBzdG9y
YWdlcyBkbyBub3QgZXhpc3QsIGRvIG5vIHVzZSB0aGUgc3RvcmFnZSBzZXNzaW9uLgorICAgIC8v
IFRoaXMgY291bGQgb2NjdXIgaWYgdGhlcmUgaXMgYW4gaXNzdWUgZmlndXJpbmcgb3V0IHdoZXJl
IHRvIHBsYWNlIGEgc3RvcmFnZSBvbiBkaXNrIChlLmcuIHRoZQorICAgIC8vIHNhbmRib3ggZG9l
cyBub3QgYWxsb3cgQ0ZOZXR3b3JrIGFjY2VzcykuCisKKyAgICBhdXRvIGNhY2hlID0gYWRvcHRD
RihfQ0ZVUkxTdG9yYWdlU2Vzc2lvbkNvcHlDYWNoZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBzdG9y
YWdlU2Vzc2lvbi5nZXQoKSkpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgQ0ZVUkxDYWNoZVNldERpc2tDYXBhY2l0eShjYWNoZS5nZXQoKSwgMCk7IC8v
IFNldHRpbmcgZGlzayBjYWNoZSBzaXplIHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5IG9uY2UgPHJk
YXI6Ly9wcm9ibGVtLzEyNjU2ODE0PiBpcyBmaXhlZC4KKyAgICBDRlVSTENhY2hlU2V0TWVtb3J5
Q2FwYWNpdHkoY2FjaGUuZ2V0KCksIFtbTlNVUkxDYWNoZSBzaGFyZWRVUkxDYWNoZV0gbWVtb3J5
Q2FwYWNpdHldKTsKKworICAgIGF1dG8gY29va2llU3RvcmFnZSA9IGFkb3B0Q0YoX0NGVVJMU3Rv
cmFnZVNlc3Npb25Db3B5Q29va2llU3RvcmFnZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBzdG9yYWdl
U2Vzc2lvbi5nZXQoKSkpOworICAgIGlmICghY29va2llU3RvcmFnZSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICAvLyBGSVhNRTogVXNlIF9DRkhUVFBDb29raWVTdG9yYWdlR2V0RGVm
YXVsdCB3aGVuIFVTRShDRk5FVFdPUkspIGlzIGRlZmluZWQgaW4gV2ViS2l0IGZvciBjb25zaXN0
ZW5jeS4KKyAgICBDRkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2llQWNjZXB0UG9saWN5KGNvb2tp
ZVN0b3JhZ2UuZ2V0KCksIFtbTlNIVFRQQ29va2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3Rv
cmFnZV0gY29va2llQWNjZXB0UG9saWN5XSk7CisKKyAgICByZXR1cm4gc3RvcmFnZVNlc3Npb24u
bGVha1JlZigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RD
b2NvYS5tbQppbmRleCA2NDJhZTJlY2JmMTE1OTQzMmM0ODZlNjExNWFiMzM4OWNhYTIwMTU4Li44
NWFiOTEzNjU5YTQ2MTQ0ZDljNDBlMzM3OGRlNjQzNmJhNTFjZDBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1
ZXN0Q29jb2EubW0KQEAgLTI2MCwxMSArMjYwLDM0IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpk
b1VwZGF0ZVBsYXRmb3JtSFRUUEJvZHkoKQogdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnNldFN0b3Jh
Z2VTZXNzaW9uKENGVVJMU3RvcmFnZVNlc3Npb25SZWYgc3RvcmFnZVNlc3Npb24pCiB7CiAgICAg
dXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCk7Ci0gICAgbV9uc1JlcXVlc3QgPSBhZG9wdE5TKHdrQ29w
eVJlcXVlc3RXaXRoU3RvcmFnZVNlc3Npb24oc3RvcmFnZVNlc3Npb24sIG1fbnNSZXF1ZXN0Lmdl
dCgpKSk7CisgICAgbV9uc1JlcXVlc3QgPSBhZG9wdE5TKGNvcHlSZXF1ZXN0V2l0aFN0b3JhZ2VT
ZXNzaW9uKHN0b3JhZ2VTZXNzaW9uLCBtX25zUmVxdWVzdC5nZXQoKSkpOwogfQogCiAjZW5kaWYg
Ly8gVVNFKENGVVJMQ09OTkVDVElPTikKIAorTlNVUkxSZXF1ZXN0ICpjb3B5UmVxdWVzdFdpdGhT
dG9yYWdlU2Vzc2lvbihDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmIHN0b3JhZ2VTZXNzaW9uLCBOU1VS
TFJlcXVlc3QgKnJlcXVlc3QpCit7CisgICAgaWYgKCFzdG9yYWdlU2Vzc2lvbiB8fCAhcmVxdWVz
dCkKKyAgICAgICAgcmV0dXJuIFtyZXF1ZXN0IGNvcHldOworCisgICAgYXV0byBjZlJlcXVlc3Qg
PSBhZG9wdENGKENGVVJMUmVxdWVzdENyZWF0ZU11dGFibGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1
bHQsIFtyZXF1ZXN0IF9DRlVSTFJlcXVlc3RdKSk7CisgICAgX0NGVVJMUmVxdWVzdFNldFN0b3Jh
Z2VTZXNzaW9uKGNmUmVxdWVzdC5nZXQoKSwgc3RvcmFnZVNlc3Npb24pOworICAgIHJldHVybiBb
W05TVVJMUmVxdWVzdCBhbGxvY10gX2luaXRXaXRoQ0ZVUkxSZXF1ZXN0OmNmUmVxdWVzdC5nZXQo
KV07Cit9CisKK05TQ2FjaGVkVVJMUmVzcG9uc2UgKmNhY2hlZFJlc3BvbnNlRm9yUmVxdWVzdChD
RlVSTFN0b3JhZ2VTZXNzaW9uUmVmIHN0b3JhZ2VTZXNzaW9uLCBOU1VSTFJlcXVlc3QgKnJlcXVl
c3QpCit7CisgICAgaWYgKCFzdG9yYWdlU2Vzc2lvbikKKyAgICAgICAgcmV0dXJuIFtbTlNVUkxD
YWNoZSBzaGFyZWRVUkxDYWNoZV0gY2FjaGVkUmVzcG9uc2VGb3JSZXF1ZXN0OnJlcXVlc3RdOwor
CisgICAgYXV0byBjYWNoZSA9IGFkb3B0Q0YoX0NGVVJMU3RvcmFnZVNlc3Npb25Db3B5Q2FjaGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgc3RvcmFnZVNlc3Npb24pKTsKKyAgICBhdXRvIGNhY2hlZFJl
c3BvbnNlID0gYWRvcHRDRihDRlVSTENhY2hlQ29weVJlc3BvbnNlRm9yUmVxdWVzdChjYWNoZS5n
ZXQoKSwgW3JlcXVlc3QgX0NGVVJMUmVxdWVzdF0pKTsKKyAgICBpZiAoIWNhY2hlZFJlc3BvbnNl
KQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgcmV0dXJuIFtbW05TQ2FjaGVkVVJMUmVzcG9u
c2UgYWxsb2NdIF9pbml0V2l0aENGQ2FjaGVkVVJMUmVzcG9uc2U6Y2FjaGVkUmVzcG9uc2UuZ2V0
KCldIGF1dG9yZWxlYXNlXTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9Db29raWVKYXJNYWMubW0KaW5kZXggYzJiNTY5MDQ4NWViNzBjMzRjYjk4NmRkMjNl
ZTI5MGMzNzA2OTAzNy4uOTBmNDYyMGJmMzNiOTAzMDc3YzdlNTZkNTljZDRkNWQ4MDI5ZjA1YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFy
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUph
ck1hYy5tbQpAQCAtNDAsNiArNDAsMTAgQEAKICNpbXBvcnQgPHd0Zi9PcHRpb25hbC5oPgogI2lt
cG9ydCA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCitAaW50ZXJmYWNlIE5TVVJMICgpCist
IChDRlVSTFJlZilfY2Z1cmw7CitAZW5kCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGlj
IE5TQXJyYXkgKmh0dHBDb29raWVzRm9yVVJMKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgY29va2ll
U3RvcmFnZSwgTlNVUkwgKmZpcnN0UGFydHksIE5TVVJMICp1cmwpCkBAIC0xNjgsNiArMTcyLDUy
IEBAIHN0YXRpYyBTdHJpbmcgY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCitz
dGF0aWMgTlNBcnJheSAqaHR0cENvb2tpZXMoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVT
dG9yYWdlKQoreworICAgIGlmICghY29va2llU3RvcmFnZSkKKyAgICAgICAgcmV0dXJuIFtbTlNI
VFRQQ29va2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gY29va2llc107CisKKyAg
ICBhdXRvIGNvb2tpZXMgPSBhZG9wdENGKENGSFRUUENvb2tpZVN0b3JhZ2VDb3B5Q29va2llcyhj
b29raWVTdG9yYWdlKSk7CisgICAgcmV0dXJuIFtOU0hUVFBDb29raWUgX2NmMm5zQ29va2llczpj
b29raWVzLmdldCgpXTsKK30KKworc3RhdGljIHZvaWQgc2V0SFRUUENvb2tpZXNGb3JVUkwoQ0ZI
VFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdlLCBOU0FycmF5ICpjb29raWVzLCBOU1VS
TCAqdXJsLCBOU1VSTCAqbWFpbkRvY3VtZW50VVJMKQoreworICAgIGlmICghY29va2llU3RvcmFn
ZSkgeworICAgICAgICBbW05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3Jh
Z2VdIHNldENvb2tpZXM6Y29va2llcyBmb3JVUkw6dXJsIG1haW5Eb2N1bWVudFVSTDptYWluRG9j
dW1lbnRVUkxdOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBjZkNvb2tpZXMg
PSBhZG9wdENGKFtOU0hUVFBDb29raWUgX25zMmNmQ29va2llczpjb29raWVzXSk7CisgICAgQ0ZI
VFRQQ29va2llU3RvcmFnZVNldENvb2tpZXMoY29va2llU3RvcmFnZSwgY2ZDb29raWVzLmdldCgp
LCBbdXJsIF9jZnVybF0sIFttYWluRG9jdW1lbnRVUkwgX2NmdXJsXSk7Cit9CisKK3N0YXRpYyB2
b2lkIGRlbGV0ZUhUVFBDb29raWUoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdl
LCBOU0hUVFBDb29raWUgKmNvb2tpZSkKK3sKKyAgICBpZiAoIWNvb2tpZVN0b3JhZ2UpIHsKKyAg
ICAgICAgW1tOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXSBkZWxl
dGVDb29raWU6Y29va2llXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIENGSFRUUENv
b2tpZVN0b3JhZ2VEZWxldGVDb29raWUoY29va2llU3RvcmFnZSwgW2Nvb2tpZSBfR2V0SW50ZXJu
YWxDRkhUVFBDb29raWVdKTsKK30KKworc3RhdGljIHZvaWQgZGVsZXRlQWxsSFRUUENvb2tpZXMo
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdlKQoreworICAgIGlmICghY29va2ll
U3RvcmFnZSkgeworICAgICAgICBOU0hUVFBDb29raWVTdG9yYWdlICpjb29raWVTdG9yYWdlID0g
W05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdOworICAgICAgICBO
U0FycmF5ICpjb29raWVzID0gW2Nvb2tpZVN0b3JhZ2UgY29va2llc107CisgICAgICAgIGlmICgh
Y29va2llcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmb3IgKE5TSFRUUENvb2tp
ZSAqY29va2llIGluIGNvb2tpZXMpCisgICAgICAgICAgICBbY29va2llU3RvcmFnZSBkZWxldGVD
b29raWU6Y29va2llXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIENGSFRUUENvb2tp
ZVN0b3JhZ2VEZWxldGVBbGxDb29raWVzKGNvb2tpZVN0b3JhZ2UpOworfQorCiBzdGQ6OnBhaXI8
U3RyaW5nLCBib29sPiBjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYg
c2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgSW5jbHVkZVNl
Y3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCiB7CiAgICAgYm9vbCBkaWRBY2Nlc3NT
ZWN1cmVDb29raWVzID0gZmFsc2U7CkBAIC0yMTMsMTYgKzI2MywyNCBAQCB2b2lkIHNldENvb2tp
ZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJM
JiBmaXJzdFBhcgogICAgICAgICBmaWx0ZXJlZENvb2tpZXMgPSBhcHBseVBhcnRpdGlvblRvQ29v
a2llcyhwYXJ0aXRpb24sIGZpbHRlcmVkQ29va2llcy5nZXQoKSk7CiAjZW5kaWYKIAotICAgIHdr
U2V0SFRUUENvb2tpZXNGb3JVUkwoc2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuZ2V0KCksIGZpbHRl
cmVkQ29va2llcy5nZXQoKSwgY29va2llVVJMLCBmaXJzdFBhcnR5KTsKKyAgICBzZXRIVFRQQ29v
a2llc0ZvclVSTChzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSwgZmlsdGVyZWRDb29raWVz
LmdldCgpLCBjb29raWVVUkwsIGZpcnN0UGFydHkpOwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKIH0KIAorc3RhdGljIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeSBodHRwQ29va2ll
QWNjZXB0UG9saWN5KENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgY29va2llU3RvcmFnZSkKK3sKKyAg
ICBpZiAoIWNvb2tpZVN0b3JhZ2UpCisgICAgICAgIHJldHVybiBbW05TSFRUUENvb2tpZVN0b3Jh
Z2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIGNvb2tpZUFjY2VwdFBvbGljeV07CisKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8TlNIVFRQQ29va2llQWNjZXB0UG9saWN5PihDRkhUVFBDb29raWVT
dG9yYWdlR2V0Q29va2llQWNjZXB0UG9saWN5KGNvb2tpZVN0b3JhZ2UpKTsKK30KKwogYm9vbCBj
b29raWVzRW5hYmxlZChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0
IFVSTCYgLypmaXJzdFBhcnR5Ki8sIGNvbnN0IFVSTCYgLyp1cmwqLykKIHsKICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kgY29v
a2llQWNjZXB0UG9saWN5ID0gc3RhdGljX2Nhc3Q8TlNIVFRQQ29va2llQWNjZXB0UG9saWN5Pih3
a0dldEhUVFBDb29raWVBY2NlcHRQb2xpY3koc2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuZ2V0KCkp
KTsKKyAgICBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5ID0gaHR0
cENvb2tpZUFjY2VwdFBvbGljeShzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSk7CiAgICAg
cmV0dXJuIGNvb2tpZUFjY2VwdFBvbGljeSA9PSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdh
eXMgfHwgY29va2llQWNjZXB0UG9saWN5ID09IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlG
cm9tTWFpbkRvY3VtZW50RG9tYWluIHx8IGNvb2tpZUFjY2VwdFBvbGljeSA9PSBOU0hUVFBDb29r
aWVBY2NlcHRQb2xpY3lFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW47CiAKICAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpAQCAtMjU5LDcgKzMxNyw3IEBAIHZvaWQgZGVsZXRl
Q29va2llKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFN0CiAgICAgZm9yIChOU1VJbnRlZ2VyIGkgPSAwOyBpIDwgY291bnQ7ICsraSkg
ewogICAgICAgICBOU0hUVFBDb29raWUgKmNvb2tpZSA9IChOU0hUVFBDb29raWUgKilbY29va2ll
cyBvYmplY3RBdEluZGV4OmldOwogICAgICAgICBpZiAoW1tjb29raWUgbmFtZV0gaXNFcXVhbFRv
U3RyaW5nOmNvb2tpZU5hbWVTdHJpbmddKQotICAgICAgICAgICAgd2tEZWxldGVIVFRQQ29va2ll
KGNvb2tpZVN0b3JhZ2UuZ2V0KCksIGNvb2tpZSk7CisgICAgICAgICAgICBkZWxldGVIVFRQQ29v
a2llKGNvb2tpZVN0b3JhZ2UuZ2V0KCksIGNvb2tpZSk7CiAgICAgfQogCiAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKQEAgLTI2OSw3ICszMjcsNyBAQCB2b2lkIGdldEhvc3RuYW1lc1dp
dGhDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgSGFzaFNldDxT
dHJpbgogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIE5TQXJyYXkg
KmNvb2tpZXMgPSB3a0hUVFBDb29raWVzKHNlc3Npb24uY29va2llU3RvcmFnZSgpLmdldCgpKTsK
KyAgICBOU0FycmF5ICpjb29raWVzID0gaHR0cENvb2tpZXMoc2Vzc2lvbi5jb29raWVTdG9yYWdl
KCkuZ2V0KCkpOwogICAgIAogICAgIGZvciAoTlNIVFRQQ29va2llKiBjb29raWUgaW4gY29va2ll
cykKICAgICAgICAgaG9zdG5hbWVzLmFkZChbY29va2llIGRvbWFpbl0pOwpAQCAtMjc5LDcgKzMz
Nyw3IEBAIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJiBzZXNzaW9uLCBIYXNoU2V0PFN0cmluCiAKIHZvaWQgZGVsZXRlQWxsQ29va2llcyhj
b25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24pCiB7Ci0gICAgd2tEZWxldGVBbGxI
VFRQQ29va2llcyhzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSk7CisgICAgZGVsZXRlQWxs
SFRUUENvb2tpZXMoc2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuZ2V0KCkpOwogfQogCiB9CkBAIC0y
OTMsNyArMzUxLDcgQEAgdm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKGNvbnN0IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVmVjdG8KICAgICBCRUdJTl9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CiAKICAgICBSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4g
Y29va2llU3RvcmFnZSA9IHNlc3Npb24uY29va2llU3RvcmFnZSgpOwotICAgIE5TQXJyYXkgKmNv
b2tpZXMgPSB3a0hUVFBDb29raWVzKGNvb2tpZVN0b3JhZ2UuZ2V0KCkpOworICAgIE5TQXJyYXkg
KmNvb2tpZXMgPSBodHRwQ29va2llcyhjb29raWVTdG9yYWdlLmdldCgpKTsKICAgICBpZiAoIWNv
b2tpZXMpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzA5LDcgKzM2Nyw3IEBAIHZvaWQgZGVsZXRl
Q29va2llc0Zvckhvc3RuYW1lcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24s
IGNvbnN0IFZlY3RvCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBmb3IgKGF1dG8m
IGNvb2tpZSA6IGl0LT52YWx1ZSkKLSAgICAgICAgICAgIHdrRGVsZXRlSFRUUENvb2tpZShjb29r
aWVTdG9yYWdlLmdldCgpLCBjb29raWUuZ2V0KCkpOworICAgICAgICAgICAgZGVsZXRlSFRUUENv
b2tpZShjb29raWVTdG9yYWdlLmdldCgpLCBjb29raWUuZ2V0KCkpOwogICAgIH0KIAogICAgIFtz
ZXNzaW9uLm5zQ29va2llU3RvcmFnZSgpIF9zYXZlQ29va2llc107CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCmlu
ZGV4IDBjMzUzMTRjYTIwYWU4ZGQ0ODE0M2YxNDAxOWY5NjgyNTU5NGZlNWQuLjFjNzRiMzk2Yzcx
ODhlNzc2MTc1ZTY5ODFiZGU5M2U5MTM4MjdlNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBAIC0xNzcs
NyArMTc3LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlk
IGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWwKICNlbmRpZgogCiAgICAgaWYgKGQt
Pm1fc3RvcmFnZVNlc3Npb24pCi0gICAgICAgIG5zUmVxdWVzdCA9IFt3a0NvcHlSZXF1ZXN0V2l0
aFN0b3JhZ2VTZXNzaW9uKGQtPm1fc3RvcmFnZVNlc3Npb24uZ2V0KCksIG5zUmVxdWVzdCkgYXV0
b3JlbGVhc2VdOworICAgICAgICBuc1JlcXVlc3QgPSBbY29weVJlcXVlc3RXaXRoU3RvcmFnZVNl
c3Npb24oZC0+bV9zdG9yYWdlU2Vzc2lvbi5nZXQoKSwgbnNSZXF1ZXN0KSBhdXRvcmVsZWFzZV07
CiAKICAgICBBU1NFUlQoW05TVVJMQ29ubmVjdGlvbiBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX2luaXRXaXRoUmVxdWVzdDpkZWxlZ2F0ZTp1c2VzQ2FjaGU6bWF4Q29udGVu
dExlbmd0aDpzdGFydEltbWVkaWF0ZWx5OmNvbm5lY3Rpb25Qcm9wZXJ0aWVzOildKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0KaW5kZXggMmY0YjIyOGYxNjhiNjI3YjE4YzAzZTIzNDQxMDJiNmU4M2EzZThhNC4uMDQ1Yjli
MmQ0ODJlNDIyNzljOTZlOWExOTNjNGVkN2QwODZiNzljMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC00NCw2ICs0
NCw3IEBACiAjaW1wb3J0ICJXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLmgiCiAjaW1wb3J0IDxXZWJD
b3JlL0NvbG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNpbXBvcnQgPFdl
YkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KQEAgLTU3Niw3ICs1NzcsNyBA
QCBzdGF0aWMgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBwcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkK
ICAgICBkaXNwYXRjaF9vbmNlKCZvbmNlLCBeewogICAgICAgICBOU1N0cmluZyAqaWRlbnRpZmll
ciA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAuUHJpdmF0ZUJyb3dzaW5nIiwgW1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXV07CiAKLSAgICAgICAgc2Vzc2lv
biA9IFdLQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKChDRlN0cmluZ1JlZilpZGVudGlmaWVy
KTsKKyAgICAgICAgc2Vzc2lvbiA9IGNyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbigoQ0ZTdHJp
bmdSZWYpaWRlbnRpZmllcik7CiAgICAgfSk7CiAKICAgICByZXR1cm4gc2Vzc2lvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lz
dGVtSW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggZTI1MTI3YzI5YzAzNGYwMmRmMDFjZmJi
YmFmNWM1YjZlNzgwZGMwNy4uN2EzMzM2YzA2ZTA4NmVjMDQ4NTdlZjc0OTgwMDMyNTgwZTliNDg1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTc1LDEzICs3NSw2IEBA
IHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICNpZiAhUExBVEZPUk0oSU9T
KQogICAgICAgICBJTklUKFNldERyYWdJbWFnZSk7CiAjZW5kaWYKLSAgICAgICAgSU5JVChDcmVh
dGVQcml2YXRlU3RvcmFnZVNlc3Npb24pOwotICAgICAgICBJTklUKENvcHlSZXF1ZXN0V2l0aFN0
b3JhZ2VTZXNzaW9uKTsKLSAgICAgICAgSU5JVChHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KTsK
LSAgICAgICAgSU5JVChIVFRQQ29va2llcyk7Ci0gICAgICAgIElOSVQoU2V0SFRUUENvb2tpZXNG
b3JVUkwpOwotICAgICAgICBJTklUKERlbGV0ZUFsbEhUVFBDb29raWVzKTsKLSAgICAgICAgSU5J
VChEZWxldGVIVFRQQ29va2llKTsKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIElOSVQo
U2V0TWV0YWRhdGFVUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCAzZjhkNWFmZjMyZWI3ZDU4NzVmNzQzNGQ1MTk2MGUy
NTcwN2RhMzk1Li5kNzBjOTVhZTg3ZDU0OWM3MTc2YzFmMmZmMzU3MDNjZDM0MDhlMmJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5t
bQpAQCAtNjg0LDcgKzY4NCw3IEBAIGJvb2wgV2ViUGFnZTo6cGxhdGZvcm1IYXNMb2NhbERhdGFG
b3JVUkwoY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwpCiAgICAgW3JlcXVlc3Qgc2V0VmFsdWU6KE5T
U3RyaW5nKil1c2VyQWdlbnQodXJsKSBmb3JIVFRQSGVhZGVyRmllbGQ6QCJVc2VyLUFnZW50Il07
CiAgICAgTlNDYWNoZWRVUkxSZXNwb25zZSAqY2FjaGVkUmVzcG9uc2U7CiAgICAgaWYgKENGVVJM
U3RvcmFnZVNlc3Npb25SZWYgc3RvcmFnZVNlc3Npb24gPSBjb3JlUGFnZSgpLT5tYWluRnJhbWUo
KS5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpLT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3Jt
U2Vzc2lvbigpKQotICAgICAgICBjYWNoZWRSZXNwb25zZSA9IFdLQ2FjaGVkUmVzcG9uc2VGb3JS
ZXF1ZXN0KHN0b3JhZ2VTZXNzaW9uLCByZXF1ZXN0KTsKKyAgICAgICAgY2FjaGVkUmVzcG9uc2Ug
PSBjYWNoZWRSZXNwb25zZUZvclJlcXVlc3Qoc3RvcmFnZVNlc3Npb24sIHJlcXVlc3QpOwogICAg
IGVsc2UKICAgICAgICAgY2FjaGVkUmVzcG9uc2UgPSBbW05TVVJMQ2FjaGUgc2hhcmVkVVJMQ2Fj
aGVdIGNhY2hlZFJlc3BvbnNlRm9yUmVxdWVzdDpyZXF1ZXN0XTsKICAgICBbcmVxdWVzdCByZWxl
YXNlXTsKQEAgLTY5OCw3ICs2OTgsNyBAQCBzdGF0aWMgTlNDYWNoZWRVUkxSZXNwb25zZSAqY2Fj
aGVkUmVzcG9uc2VGb3JVUkwoV2ViUGFnZSogd2ViUGFnZSwgY29uc3QgVVJMJiB1cgogICAgIFty
ZXF1ZXN0IHNldFZhbHVlOihOU1N0cmluZyAqKXdlYlBhZ2UtPnVzZXJBZ2VudCh1cmwpIGZvckhU
VFBIZWFkZXJGaWVsZDpAIlVzZXItQWdlbnQiXTsKIAogICAgIGlmIChDRlVSTFN0b3JhZ2VTZXNz
aW9uUmVmIHN0b3JhZ2VTZXNzaW9uID0gd2ViUGFnZS0+Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCku
bG9hZGVyKCkubmV0d29ya2luZ0NvbnRleHQoKS0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNl
c3Npb24oKSkKLSAgICAgICAgcmV0dXJuIFdLQ2FjaGVkUmVzcG9uc2VGb3JSZXF1ZXN0KHN0b3Jh
Z2VTZXNzaW9uLCByZXF1ZXN0LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIGNhY2hlZFJlc3BvbnNl
Rm9yUmVxdWVzdChzdG9yYWdlU2Vzc2lvbiwgcmVxdWVzdC5nZXQoKSk7CiAKICAgICByZXR1cm4g
W1tOU1VSTENhY2hlIHNoYXJlZFVSTENhY2hlXSBjYWNoZWRSZXNwb25zZUZvclJlcXVlc3Q6cmVx
dWVzdC5nZXQoKV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggZWZlMzJlMDQxZDVi
YTUzOTE2ZjA4MzA0NzJjMmEyOTI3YTdjYmFjNy4uZTQyZjI1YjRjOWEyOTNhNTZmYjM5MDdiMzQ2
YTUzYzFlMzEyMWRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAtMTA1LDEzICsxMDUs
NiBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgSU5JVChDcmVh
dGVBWFVJRWxlbWVudFJlZik7CiAgICAgSU5JVChVbnJlZ2lzdGVyVW5pcXVlSWRGb3JFbGVtZW50
KTsKICNlbmRpZgotICAgIElOSVQoQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKTsKLSAgICBJ
TklUKENvcHlSZXF1ZXN0V2l0aFN0b3JhZ2VTZXNzaW9uKTsKLSAgICBJTklUKEdldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kpOwotICAgIElOSVQoSFRUUENvb2tpZXMpOwotICAgIElOSVQoU2V0SFRU
UENvb2tpZXNGb3JVUkwpOwotICAgIElOSVQoRGVsZXRlQWxsSFRUUENvb2tpZXMpOwotICAgIElO
SVQoRGVsZXRlSFRUUENvb2tpZSk7CiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIElOSVQoU2V0
TWV0YWRhdGFVUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CmluZGV4IDU0ZWIxMDRmMmM0OGYxN2ZkY2VjODZiOTk0ZjcwMTI5NGM1OTI2YTcuLjQ3OGMyMWNh
NjE4OTI4NzAzMjZhYjhiN2VmZTIzMjFjNzlkOGE1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTM1NTUsNyArMzU1NSw3IEBAIC0gKE5TQ2FjaGVk
VVJMUmVzcG9uc2UgKilfY2FjaGVkUmVzcG9uc2VGb3JVUkw6KE5TVVJMICopVVJMCiAgICAgICAg
IHJldHVybiBuaWw7CiAKICAgICBpZiAoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBzdG9yYWdlU2Vz
c2lvbiA9IF9wcml2YXRlLT5wYWdlLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5uZXR3b3JraW5nQ29u
dGV4dCgpLT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpKQotICAgICAgICBjYWNo
ZWRSZXNwb25zZSA9IFdLQ2FjaGVkUmVzcG9uc2VGb3JSZXF1ZXN0KHN0b3JhZ2VTZXNzaW9uLCBy
ZXF1ZXN0LmdldCgpKTsKKyAgICAgICAgY2FjaGVkUmVzcG9uc2UgPSBjYWNoZWRSZXNwb25zZUZv
clJlcXVlc3Qoc3RvcmFnZVNlc3Npb24sIHJlcXVlc3QuZ2V0KCkpOwogICAgIGVsc2UKICAgICAg
ICAgY2FjaGVkUmVzcG9uc2UgPSBbW05TVVJMQ2FjaGUgc2hhcmVkVVJMQ2FjaGVdIGNhY2hlZFJl
c3BvbnNlRm9yUmVxdWVzdDpyZXF1ZXN0LmdldCgpXTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>