<?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>130434</bug_id>
          
          <creation_ts>2014-03-18 17:07:17 -0700</creation_ts>
          <short_desc>[WebRTC] Moving RTCConfiguration and RTCIceServer to Modules/mediastream</short_desc>
          <delta_ts>2014-05-19 09:08:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>124288</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Thiago de Barros Lacerda">thiago.lacerda</reporter>
          <assigned_to name="Thiago de Barros Lacerda">thiago.lacerda</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>991957</commentid>
    <comment_count>0</comment_count>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2014-03-18 17:07:17 -0700</bug_when>
    <thetext>Those classes are defined in WebRTC spec, so they should not be in platform layer.
Adding a platform implementation to be passed to handler classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991958</commentid>
    <comment_count>1</comment_count>
      <attachid>227135</attachid>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2014-03-18 17:11:39 -0700</bug_when>
    <thetext>Created attachment 227135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992212</commentid>
    <comment_count>2</comment_count>
      <attachid>227135</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-19 12:37:01 -0700</bug_when>
    <thetext>Comment on attachment 227135
Patch

Rejecting attachment 227135 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=release&apos;, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
e.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip -resolve-src-symlinks /Volumes/Data/EWS/WebKit/Source/WebCore/Modules/mediastream/RTCDTMFToneChangeEvent.h /Volumes/Data/EWS/WebKit/WebKitBuild/Release/WebCore.framework/Versions/A/PrivateHeaders

** BUILD FAILED **


The following build commands failed:
	CpHeader platform/mediastream/RTCConfiguration.h /Volumes/Data/EWS/WebKit/WebKitBuild/Release/WebCore.framework/Versions/A/PrivateHeaders/RTCConfiguration.h
(1 failure)

Full output: http://webkit-queues.appspot.com/results/5509347186573312</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992240</commentid>
    <comment_count>3</comment_count>
      <attachid>227213</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-03-19 14:06:50 -0700</bug_when>
    <thetext>Created attachment 227213
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992589</commentid>
    <comment_count>4</comment_count>
      <attachid>227213</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-20 10:51:10 -0700</bug_when>
    <thetext>Comment on attachment 227213
Patch for landing

Rejecting attachment 227213 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 227213, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.

Full output: http://webkit-queues.appspot.com/results/6188378294845440</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992603</commentid>
    <comment_count>5</comment_count>
      <attachid>227306</attachid>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2014-03-20 11:19:51 -0700</bug_when>
    <thetext>Created attachment 227306
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992690</commentid>
    <comment_count>6</comment_count>
      <attachid>227306</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-20 13:34:25 -0700</bug_when>
    <thetext>Comment on attachment 227306
Patch for landing

Rejecting attachment 227306 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=release&apos;, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
 build commands failed:
	CompileC /Volumes/Data/EWS/WebKit/WebKitBuild/WebKitTestRunner.build/Release/WebKitTestRunner.build/Objects-normal/x86_64/PlatformWebViewMac.o mac/PlatformWebViewMac.mm normal x86_64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler
	CompileC /Volumes/Data/EWS/WebKit/WebKitBuild/WebKitTestRunner.build/Release/WebKitTestRunner.build/Objects-normal/x86_64/TestController.o TestController.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
(2 failures)

Full output: http://webkit-queues.appspot.com/results/5825589923545088</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992701</commentid>
    <comment_count>7</comment_count>
      <attachid>227306</attachid>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2014-03-20 13:47:05 -0700</bug_when>
    <thetext>Comment on attachment 227306
Patch for landing

was cq- due to broken tree.
cq+ again. The build seems to be fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992728</commentid>
    <comment_count>8</comment_count>
      <attachid>227306</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-20 14:19:31 -0700</bug_when>
    <thetext>Comment on attachment 227306
Patch for landing

Clearing flags on attachment: 227306

Committed r166003: &lt;http://trac.webkit.org/changeset/166003&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227135</attachid>
            <date>2014-03-18 17:11:39 -0700</date>
            <delta_ts>2014-04-15 17:00:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130434-20140318211116.patch</filename>
            <type>text/plain</type>
            <size>27198</size>
            <attacher name="Thiago de Barros Lacerda">thiago.lacerda</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1ODU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzRjYmFjYWM5ZTQ4ZGZl
NjE5OWZhZjNiN2E2YWM3N2JlNWJmNDI3OC4uN2QwZTU4YWY1NjY3ZDE5YjRkOGZmODZlYjY3YTI2
M2E4NDUwNTU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTAzLTE4ICBUaGlh
Z28gZGUgQmFycm9zIExhY2VyZGEgIDx0aGlhZ28ubGFjZXJkYUBvcGVuYm9zc2Eub3JnPgorCisg
ICAgICAgIFtXZWJSVENdIE1vdmluZyBSVENDb25maWd1cmF0aW9uIGFuZCBSVENJY2VTZXJ2ZXIg
dG8gTW9kdWxlcy9tZWRpYXN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTMwNDM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhvc2UgY2xhc3NlcyBhcmUgZGVmaW5lZCBpbiBXZWJSVEMgc3BlYywg
c28gdGhleSBzaG91bGQgbm90IGJlIGluIHBsYXRmb3JtIGxheWVyLgorICAgICAgICBBZGRpbmcg
YSBwbGF0Zm9ybSBpbXBsZW1lbnRhdGlvbiB0byBiZSBwYXNzZWQgdG8gaGFuZGxlciBjbGFzc2Vz
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb25maWd1cmF0aW9uLmg6IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENDb25maWd1
cmF0aW9uLmguCisgICAgICAgIChXZWJDb3JlOjpSVENDb25maWd1cmF0aW9uOjpwcml2YXRlQ29u
ZmlndXJhdGlvbik6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNl
U2VydmVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JUQ0ljZVNlcnZlci5oLgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNlU2VydmVyOjpwcml2YXRl
U2VydmVyKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSVENJY2VTZXJ2ZXI6OlJUQ0ljZVNl
cnZlcik6IEFkZGVkIG5ldyBjb25zdHJ1Y3RvciB0aGF0IHJlY2VpdmVzIFJUQ0ljZVNlcnZlclBy
aXZhdGUuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6UlRDUGVlckNvbm5lY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnVwZGF0ZUljZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvblByaXZhdGUuaDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlU2VydmVyUHJpdmF0
ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL1JUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlck1vY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyTW9jazo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXJNb2NrOjp1cGRhdGVJY2UpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyTW9jay5oOgorCiAyMDE0LTAzLTE4ICBBbmRlcnMgQ2FybHNzb24g
IDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGEgdHJpdmlhbCBGSVhNRQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb25maWd1cmF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRp
b24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40MTA1MWE5MzQ5NmQ2YmQwYmU1YzY0MDk0NmI2MzM5MGUzYjcyYjM4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENDb25maWd1cmF0aW9uLmgKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24u
CisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUlRDQ29u
ZmlndXJhdGlvbl9oCisjZGVmaW5lIFJUQ0NvbmZpZ3VyYXRpb25faAorCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgiCisjaW5j
bHVkZSAiUlRDSWNlU2VydmVyLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBS
VENDb25maWd1cmF0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDQ29uZmlndXJhdGlvbj4gewor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ0NvbmZpZ3VyYXRpb24+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBSVENDb25maWd1cmF0aW9uKCkpOyB9CisgICAgdmlydHVh
bCB+UlRDQ29uZmlndXJhdGlvbigpIHsgfQorCisgICAgdm9pZCBhcHBlbmRTZXJ2ZXIoUGFzc1Jl
ZlB0cjxSVENJY2VTZXJ2ZXI+IHNlcnZlcikgeyBtX3ByaXZhdGUtPmFwcGVuZFNlcnZlcihzZXJ2
ZXItPnByaXZhdGVTZXJ2ZXIoKSk7IH0KKyAgICBzaXplX3QgbnVtYmVyT2ZTZXJ2ZXJzKCkgeyBy
ZXR1cm4gbV9wcml2YXRlLT5udW1iZXJPZlNlcnZlcnMoKTsgfQorICAgIFBhc3NSZWZQdHI8UlRD
SWNlU2VydmVyPiBzZXJ2ZXIoc2l6ZV90IGluZGV4KQorICAgIHsKKyAgICAgICAgUlRDSWNlU2Vy
dmVyUHJpdmF0ZSogc2VydmVyID0gbV9wcml2YXRlLT5zZXJ2ZXIoaW5kZXgpOworICAgICAgICBp
ZiAoIXNlcnZlcikKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgICAgIHJldHVy
biBSVENJY2VTZXJ2ZXI6OmNyZWF0ZShzZXJ2ZXIpOworICAgIH0KKworICAgIGNvbnN0IFN0cmlu
ZyYgaWNlVHJhbnNwb3J0cygpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS0+aWNlVHJhbnNwb3J0
cygpOyB9CisgICAgdm9pZCBzZXRJY2VUcmFuc3BvcnRzKGNvbnN0IFN0cmluZyYgaWNlVHJhbnNw
b3J0cykgeyBtX3ByaXZhdGUtPnNldEljZVRyYW5zcG9ydHMoaWNlVHJhbnNwb3J0cyk7IH0KKwor
ICAgIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkZW50aXR5KCkgY29uc3QgeyByZXR1cm4gbV9wcml2
YXRlLT5yZXF1ZXN0SWRlbnRpdHkoKTsgfQorICAgIHZvaWQgc2V0UmVxdWVzdElkZW50aXR5KGNv
bnN0IFN0cmluZyYgcmVxdWVzdElkZW50aXR5KSB7IG1fcHJpdmF0ZS0+c2V0UmVxdWVzdElkZW50
aXR5KHJlcXVlc3RJZGVudGl0eSk7IH0KKworICAgIFZlY3RvcjxSZWZQdHI8UlRDSWNlU2VydmVy
Pj4gaWNlU2VydmVycygpIGNvbnN0CisgICAgeworICAgICAgICBWZWN0b3I8UmVmUHRyPFJUQ0lj
ZVNlcnZlcj4+IHNlcnZlcnM7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8UlRDSWNlU2VydmVyUHJp
dmF0ZT4+IHByaXZhdGVTZXJ2ZXJzID0gbV9wcml2YXRlLT5pY2VTZXJ2ZXJzKCk7CisKKyAgICAg
ICAgZm9yIChhdXRvIGl0ZXIgPSBwcml2YXRlU2VydmVycy5iZWdpbigpOyBpdGVyICE9IHByaXZh
dGVTZXJ2ZXJzLmVuZCgpOyArK2l0ZXIpCisgICAgICAgICAgICBzZXJ2ZXJzLmFwcGVuZChSVENJ
Y2VTZXJ2ZXI6OmNyZWF0ZSgqaXRlcikpOworCisgICAgICAgIHJldHVybiBzZXJ2ZXJzOworICAg
IH0KKworICAgIFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlKiBwcml2YXRlQ29uZmlndXJhdGlvbigp
IHsgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFJUQ0NvbmZpZ3Vy
YXRpb24oKQorICAgICAgICA6IG1fcHJpdmF0ZShSVENDb25maWd1cmF0aW9uUHJpdmF0ZTo6Y3Jl
YXRlKCkpCisgICAgeworICAgIH0KKworICAgIFJlZlB0cjxSVENDb25maWd1cmF0aW9uUHJpdmF0
ZT4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFJUQ0NvbmZpZ3VyYXRpb25faApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VTZXJ2ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlU2VydmVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWNhMjU4ZmI0NjI3MjIyZGFmMzczODlhODNlYTE3OTRmNGEyNjlmOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlU2Vy
dmVyLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIFJUQ0ljZVNlcnZlcl9oCisjZGVmaW5lIFJUQ0ljZVNlcnZl
cl9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiUlRDSWNlU2VydmVy
UHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRDSWNlU2VydmVy
IDogcHVibGljIFJlZkNvdW50ZWQ8UlRDSWNlU2VydmVyPiB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8UlRDSWNlU2VydmVyPiBjcmVhdGUoY29uc3QgVmVjdG9yPFN0cmluZz4mIHVy
bHMsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbCwgY29uc3QgU3RyaW5nJiB1c2VybmFtZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUlRDSWNlU2VydmVyKHVybHMsIGNyZWRl
bnRpYWwsIHVzZXJuYW1lKSk7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDSWNl
U2VydmVyPiBjcmVhdGUoUGFzc1JlZlB0cjxSVENJY2VTZXJ2ZXJQcml2YXRlPiBzZXJ2ZXIpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJUQ0ljZVNlcnZlcihzZXJ2ZXIpKTsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIH5SVENJY2VTZXJ2ZXIoKSB7IH0KKworICAgIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiB1cmxzKCkgeyByZXR1cm4gbV9wcml2YXRlLT51cmxzKCk7IH0KKyAgICBj
b25zdCBTdHJpbmcmIGNyZWRlbnRpYWwoKSB7IHJldHVybiBtX3ByaXZhdGUtPmNyZWRlbnRpYWwo
KTsgfQorICAgIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUoKSB7IHJldHVybiBtX3ByaXZhdGUtPnVz
ZXJuYW1lKCk7IH0KKyAgICBSVENJY2VTZXJ2ZXJQcml2YXRlKiBwcml2YXRlU2VydmVyKCkgeyBy
ZXR1cm4gbV9wcml2YXRlLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgUlRDSWNlU2VydmVyKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiB1cmxzLCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWwsIGNvbnN0
IFN0cmluZyYgdXNlcm5hbWUpCisgICAgICAgIDogbV9wcml2YXRlKFJUQ0ljZVNlcnZlclByaXZh
dGU6OmNyZWF0ZSh1cmxzLCBjcmVkZW50aWFsLCB1c2VybmFtZSkpCisgICAgeworICAgIH0KKwor
ICAgIFJUQ0ljZVNlcnZlcihQYXNzUmVmUHRyPFJUQ0ljZVNlcnZlclByaXZhdGU+IHNlcnZlcikK
KyAgICAgICAgOiBtX3ByaXZhdGUoc2VydmVyKQorICAgIHsKKyAgICB9CisKKyAgICBSZWZQdHI8
UlRDSWNlU2VydmVyUHJpdmF0ZT4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFJUQ0lj
ZVNlcnZlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IDdhM2UxYzUxZWExMzhlMWFlNDdhOTE5MTAw
YzZmODRiMzUzNjU2YjIuLmY4NzU3YzZlYWYzM2E5ZGFhNTFmYTc5NTMyZWI2N2Y2OTVkYTU0OWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uY3BwCkBAIC0xOTMsNyArMTkzLDcgQEAgUlRDUGVlckNvbm5lY3Rpb246
OlJUQ1BlZXJDb25uZWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFBhc3NS
ZWZQdHIKIAogICAgIGRvY3VtZW50LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLmRpc3BhdGNo
V2lsbFN0YXJ0VXNpbmdQZWVyQ29ubmVjdGlvbkhhbmRsZXIobV9wZWVySGFuZGxlci5nZXQoKSk7
CiAKLSAgICBpZiAoIW1fcGVlckhhbmRsZXItPmluaXRpYWxpemUobV9jb25maWd1cmF0aW9uKSkg
eworICAgIGlmICghbV9wZWVySGFuZGxlci0+aW5pdGlhbGl6ZShtX2NvbmZpZ3VyYXRpb24tPnBy
aXZhdGVDb25maWd1cmF0aW9uKCkpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNjYsNyArMzY2LDcgQEAgdm9pZCBSVENQZWVy
Q29ubmVjdGlvbjo6dXBkYXRlSWNlKGNvbnN0IERpY3Rpb25hcnkmIHJ0Y0NvbmZpZ3VyYXRpb24s
IEV4Y2VwdGlvbkMKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgdmFs
aWQgPSBtX3BlZXJIYW5kbGVyLT51cGRhdGVJY2UobV9jb25maWd1cmF0aW9uKTsKKyAgICBib29s
IHZhbGlkID0gbV9wZWVySGFuZGxlci0+dXBkYXRlSWNlKG1fY29uZmlndXJhdGlvbi0+cHJpdmF0
ZUNvbmZpZ3VyYXRpb24oKSk7CiAgICAgaWYgKCF2YWxpZCkKICAgICAgICAgZWMgPSBTWU5UQVhf
RVJSOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UlRDQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UlRDQ29uZmlndXJhdGlvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDliZTE3
YTUxY2NmZDdlYjcyMTU1YjhjNGQ3YWYzNGYxMjdmZmFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JUQ0NvbmZpZ3VyYXRpb24uaAorKysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogICAgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
ICogICAgZGlzdHJpYnV0aW9uLgotICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKLSAqICAgIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcwotICogICAgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIFJUQ0NvbmZpZ3VyYXRpb25faAotI2RlZmluZSBSVENDb25maWd1cmF0aW9u
X2gKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJSVENJY2VTZXJ2ZXIu
aCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJUQ0NvbmZpZ3VyYXRpb24gOiBw
dWJsaWMgUmVmQ291bnRlZDxSVENDb25maWd1cmF0aW9uPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYo
bmV3IFJUQ0NvbmZpZ3VyYXRpb24oKSk7IH0KLSAgICB2aXJ0dWFsIH5SVENDb25maWd1cmF0aW9u
KCkgeyB9Ci0KLSAgICB2b2lkIGFwcGVuZFNlcnZlcihQYXNzUmVmUHRyPFJUQ0ljZVNlcnZlcj4g
c2VydmVyKSB7IG1fc2VydmVycy5hcHBlbmQoc2VydmVyKTsgfQotICAgIHNpemVfdCBudW1iZXJP
ZlNlcnZlcnMoKSB7IHJldHVybiBtX3NlcnZlcnMuc2l6ZSgpOyB9Ci0gICAgUlRDSWNlU2VydmVy
KiBzZXJ2ZXIoc2l6ZV90IGluZGV4KSB7IHJldHVybiBtX3NlcnZlcnNbaW5kZXhdLmdldCgpOyB9
Ci0KLSAgICBjb25zdCBTdHJpbmcmIGljZVRyYW5zcG9ydHMoKSBjb25zdCB7IHJldHVybiBtX2lj
ZVRyYW5zcG9ydHM7IH0KLSAgICB2b2lkIHNldEljZVRyYW5zcG9ydHMoY29uc3QgU3RyaW5nJiBp
Y2VUcmFuc3BvcnRzKQotICAgIHsKLSAgICAgICAgaWYgKGljZVRyYW5zcG9ydHMgPT0gIm5vbmUi
IHx8IGljZVRyYW5zcG9ydHMgPT0gInJlbGF5IiB8fCBpY2VUcmFuc3BvcnRzID09ICJhbGwiKQot
ICAgICAgICAgICAgbV9pY2VUcmFuc3BvcnRzID0gaWNlVHJhbnNwb3J0czsKLSAgICB9Ci0KLSAg
ICBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZGVudGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVz
dElkZW50aXR5OyB9Ci0gICAgdm9pZCBzZXRSZXF1ZXN0SWRlbnRpdHkoY29uc3QgU3RyaW5nJiBy
ZXF1ZXN0SWRlbnRpdHkpCi0gICAgewotICAgICAgICBpZiAocmVxdWVzdElkZW50aXR5ID09ICJ5
ZXMiIHx8IHJlcXVlc3RJZGVudGl0eSA9PSAibm8iIHx8IHJlcXVlc3RJZGVudGl0eSA9PSAiaWZj
b25maWd1cmVkIikKLSAgICAgICAgICAgIG1fcmVxdWVzdElkZW50aXR5ID0gcmVxdWVzdElkZW50
aXR5OwotICAgIH0KLQotICAgIFZlY3RvcjxSZWZQdHI8UlRDSWNlU2VydmVyPj4gaWNlU2VydmVy
cygpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmVyczsgfQotCi0gcHJpdmF0ZToKLSAgICBSVENDb25m
aWd1cmF0aW9uKCkKLSAgICAgICAgOiBtX2ljZVRyYW5zcG9ydHMoImFsbCIpCi0gICAgICAgICwg
bV9yZXF1ZXN0SWRlbnRpdHkoImlmY29uZmlndXJlZCIpCi0gICAgewotICAgIH0KLQotICAgIFZl
Y3RvcjxSZWZQdHI8UlRDSWNlU2VydmVyPj4gbV9zZXJ2ZXJzOwotICAgIFN0cmluZyBtX2ljZVRy
YW5zcG9ydHM7Ci0gICAgU3RyaW5nIG1fcmVxdWVzdElkZW50aXR5OwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2VuZGlm
IC8vIFJUQ0NvbmZpZ3VyYXRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvblByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGExMzU0Yzg0M2E2ZTBjZTZkMGVhOTkzNzZlNzk4MTU0ZWUzZDk2ZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRp
b25Qcml2YXRlLmgKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUlRDQ29uZmlndXJhdGlvblByaXZhdGVfaAorI2Rl
ZmluZSBSVENDb25maWd1cmF0aW9uUHJpdmF0ZV9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCisjaW5jbHVkZSAiUlRDSWNlU2VydmVyUHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgUlRDQ29uZmlndXJhdGlvblByaXZhdGUgOiBwdWJsaWMgUmVmQ291bnRl
ZDxSVENDb25maWd1cmF0aW9uUHJpdmF0ZT4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgUlRDQ29uZmlndXJhdGlvblByaXZhdGUoKSk7IH0KKyAgICB2aXJ0dWFsIH5SVENDb25maWd1
cmF0aW9uUHJpdmF0ZSgpIHsgfQorCisgICAgdm9pZCBhcHBlbmRTZXJ2ZXIoUGFzc1JlZlB0cjxS
VENJY2VTZXJ2ZXJQcml2YXRlPiBzZXJ2ZXIpIHsgbV9wcml2YXRlU2VydmVycy5hcHBlbmQoc2Vy
dmVyKTsgfQorICAgIHNpemVfdCBudW1iZXJPZlNlcnZlcnMoKSB7IHJldHVybiBtX3ByaXZhdGVT
ZXJ2ZXJzLnNpemUoKTsgfQorICAgIFJUQ0ljZVNlcnZlclByaXZhdGUqIHNlcnZlcihzaXplX3Qg
aW5kZXgpIHsgcmV0dXJuIG1fcHJpdmF0ZVNlcnZlcnNbaW5kZXhdLmdldCgpOyB9CisKKyAgICBj
b25zdCBTdHJpbmcmIGljZVRyYW5zcG9ydHMoKSBjb25zdCB7IHJldHVybiBtX2ljZVRyYW5zcG9y
dHM7IH0KKyAgICB2b2lkIHNldEljZVRyYW5zcG9ydHMoY29uc3QgU3RyaW5nJiBpY2VUcmFuc3Bv
cnRzKQorICAgIHsKKyAgICAgICAgaWYgKGljZVRyYW5zcG9ydHMgPT0gIm5vbmUiIHx8IGljZVRy
YW5zcG9ydHMgPT0gInJlbGF5IiB8fCBpY2VUcmFuc3BvcnRzID09ICJhbGwiKQorICAgICAgICAg
ICAgbV9pY2VUcmFuc3BvcnRzID0gaWNlVHJhbnNwb3J0czsKKyAgICB9CisKKyAgICBjb25zdCBT
dHJpbmcmIHJlcXVlc3RJZGVudGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdElkZW50aXR5
OyB9CisgICAgdm9pZCBzZXRSZXF1ZXN0SWRlbnRpdHkoY29uc3QgU3RyaW5nJiByZXF1ZXN0SWRl
bnRpdHkpCisgICAgeworICAgICAgICBpZiAocmVxdWVzdElkZW50aXR5ID09ICJ5ZXMiIHx8IHJl
cXVlc3RJZGVudGl0eSA9PSAibm8iIHx8IHJlcXVlc3RJZGVudGl0eSA9PSAiaWZjb25maWd1cmVk
IikKKyAgICAgICAgICAgIG1fcmVxdWVzdElkZW50aXR5ID0gcmVxdWVzdElkZW50aXR5OworICAg
IH0KKworICAgIFZlY3RvcjxSZWZQdHI8UlRDSWNlU2VydmVyUHJpdmF0ZT4+IGljZVNlcnZlcnMo
KSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGVTZXJ2ZXJzOyB9CisKK3ByaXZhdGU6CisgICAgUlRD
Q29uZmlndXJhdGlvblByaXZhdGUoKQorICAgICAgICA6IG1faWNlVHJhbnNwb3J0cygiYWxsIikK
KyAgICAgICAgLCBtX3JlcXVlc3RJZGVudGl0eSgiaWZjb25maWd1cmVkIikKKyAgICB7CisgICAg
fQorCisgICAgVmVjdG9yPFJlZlB0cjxSVENJY2VTZXJ2ZXJQcml2YXRlPj4gbV9wcml2YXRlU2Vy
dmVyczsKKyAgICBTdHJpbmcgbV9pY2VUcmFuc3BvcnRzOworICAgIFN0cmluZyBtX3JlcXVlc3RJ
ZGVudGl0eTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBSVENDb25maWd1cmF0aW9uUHJpdmF0ZV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENJY2VTZXJ2
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0ljZVNlcnZlci5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOGY0NzVkZDhmMTEyMjM5OTkxNzczMjRk
OWIwOWM3NTlhNmQxYWM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0ljZVNlcnZlci5o
CisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFJUQ0ljZVNlcnZlcl9oCi0jZGVmaW5lIFJU
Q0ljZVNlcnZlcl9oCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1jbGFzcyBSVENJY2VTZXJ2ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENJ
Y2VTZXJ2ZXI+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENJY2VTZXJ2ZXI+
IGNyZWF0ZShjb25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscywgY29uc3QgU3RyaW5nJiBjcmVkZW50
aWFsLCBjb25zdCBTdHJpbmcmIHVzZXJuYW1lKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBSVENJY2VTZXJ2ZXIodXJscywgY3JlZGVudGlhbCwgdXNlcm5hbWUpKTsKLSAgICB9
Ci0gICAgdmlydHVhbCB+UlRDSWNlU2VydmVyKCkgeyB9Ci0KLSAgICBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgdXJscygpIHsgcmV0dXJuIG1fdXJsczsgfQotICAgIGNvbnN0IFN0cmluZyYgY3JlZGVu
dGlhbCgpIHsgcmV0dXJuIG1fY3JlZGVudGlhbDsgfQotICAgIGNvbnN0IFN0cmluZyYgdXNlcm5h
bWUoKSB7IHJldHVybiBtX3VzZXJuYW1lOyB9Ci0KLXByaXZhdGU6Ci0gICAgUlRDSWNlU2VydmVy
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB1cmxzLCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWwsIGNv
bnN0IFN0cmluZyYgdXNlcm5hbWUpCi0gICAgICAgIDogbV91cmxzKHVybHMpCi0gICAgICAgICwg
bV9jcmVkZW50aWFsKGNyZWRlbnRpYWwpCi0gICAgICAgICwgbV91c2VybmFtZSh1c2VybmFtZSkK
LSAgICB7Ci0gICAgfQotCi0gICAgVmVjdG9yPFN0cmluZz4gbV91cmxzOwotICAgIFN0cmluZyBt
X2NyZWRlbnRpYWw7Ci0gICAgU3RyaW5nIG1fdXNlcm5hbWU7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8g
UlRDSWNlU2VydmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ0ljZVNlcnZlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JUQ0ljZVNlcnZlclByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmQ4MDE5YjA5Y2I4
MDkyMmVmNzRhNjdlZmZjYjQyZDVhYTAzODA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlU2VydmVyUHJpdmF0ZS5oCkBAIC0wLDAg
KzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBSVENJY2VTZXJ2ZXJQcml2YXRlX2gKKyNkZWZpbmUgUlRDSWNlU2VydmVyUHJpdmF0
ZV9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBSVENJY2VTZXJ2ZXJQcml2YXRlIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDSWNl
U2VydmVyUHJpdmF0ZT4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ0ljZVNl
cnZlclByaXZhdGU+IGNyZWF0ZShjb25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscywgY29uc3QgU3Ry
aW5nJiBjcmVkZW50aWFsLCBjb25zdCBTdHJpbmcmIHVzZXJuYW1lKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBSVENJY2VTZXJ2ZXJQcml2YXRlKHVybHMsIGNyZWRlbnRpYWws
IHVzZXJuYW1lKSk7CisgICAgfQorICAgIHZpcnR1YWwgflJUQ0ljZVNlcnZlclByaXZhdGUoKSB7
IH0KKworICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB1cmxzKCkgeyByZXR1cm4gbV91cmxzOyB9
CisgICAgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsKCkgeyByZXR1cm4gbV9jcmVkZW50aWFsOyB9
CisgICAgY29uc3QgU3RyaW5nJiB1c2VybmFtZSgpIHsgcmV0dXJuIG1fdXNlcm5hbWU7IH0KKwor
cHJpdmF0ZToKKyAgICBSVENJY2VTZXJ2ZXJQcml2YXRlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB1
cmxzLCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWwsIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUpCisg
ICAgICAgIDogbV91cmxzKHVybHMpCisgICAgICAgICwgbV9jcmVkZW50aWFsKGNyZWRlbnRpYWwp
CisgICAgICAgICwgbV91c2VybmFtZSh1c2VybmFtZSkKKyAgICB7CisgICAgfQorCisgICAgVmVj
dG9yPFN0cmluZz4gbV91cmxzOworICAgIFN0cmluZyBtX2NyZWRlbnRpYWw7CisgICAgU3RyaW5n
IG1fdXNlcm5hbWU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gUlRDSWNlU2VydmVyUHJpdmF0ZV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4IDM0NjIxZTIxOTY0MDUzZDJlM2Y1ODBkNDEy
OTE3MTdjNzI1YTI5OWQuLmE4NWZkYjFkOWQzNTkyNjcyNmZiYzgwOWZlNGMzYjliOGQ4OTcyN2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCkBAIC00MCw3ICs0MCw3IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhU3RyZWFtU291cmNlOwotY2xhc3MgUlRDQ29uZmln
dXJhdGlvbjsKK2NsYXNzIFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlOwogY2xhc3MgUlRDRFRNRlNl
bmRlckhhbmRsZXI7CiBjbGFzcyBSVENEYXRhQ2hhbm5lbEhhbmRsZXI7CiBjbGFzcyBSVENJY2VD
YW5kaWRhdGVEZXNjcmlwdG9yOwpAQCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0IEF0b21pY1N0cmluZyYgaW5jb21wYXRpYmxlU2Vzc2lvbkRlc2NyaXB0aW9uRXJyb3JO
YW1lKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJuYWxFcnJvck5hbWUo
KTsKIAotICAgIHZpcnR1YWwgYm9vbCBpbml0aWFsaXplKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJh
dGlvbj4pID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShQYXNzUmVmUHRyPFJUQ0Nv
bmZpZ3VyYXRpb25Qcml2YXRlPikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9mZmVy
KFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdD4sIFBhc3NSZWZQdHI8UlRD
T2ZmZXJPcHRpb25zPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVBbnN3ZXIoUGFzc1Jl
ZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0PiwgUGFzc1JlZlB0cjxSVENPZmZlckFu
c3dlck9wdGlvbnM+KSA9IDA7CkBAIC04OSw3ICs4OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRpb24oUGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdD4sIFBh
c3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4pID0gMDsKICAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gbG9jYWxEZXNj
cmlwdGlvbigpID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvcj4gcmVtb3RlRGVzY3JpcHRpb24oKSA9IDA7Ci0gICAgdmlydHVhbCBib29s
IHVwZGF0ZUljZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3VyYXRpb24+KSA9IDA7CisgICAgdmlydHVh
bCBib29sIHVwZGF0ZUljZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlPikgPSAw
OwogICAgIHZpcnR1YWwgYm9vbCBhZGRJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENWb2lkUmVx
dWVzdD4sIFBhc3NSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4pID0gMDsKICAgICB2
aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVBy
aXZhdGU+KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmNwcAppbmRleCAxZDk2MmIxYTA3MTc2
ZmVmOWU2MmJlNmJkYzc4NjYwNTA1ZThlZjcyLi4xNTZjYjkxYzA0MzQwNDRkYTA5NDk3Yjc0NTAy
MWEwNzk1MTE4NWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5jcHAKQEAgLTUxLDcgKzUxLDcg
QEAgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
TW9jayhSVENQZWVyQ29ubmVjdGlvbkhhbmQKIHsKIH0KIAotYm9vbCBSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXJNb2NrOjppbml0aWFsaXplKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4pCiti
b29sIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6OmluaXRpYWxpemUoUGFzc1JlZlB0cjxS
VENDb25maWd1cmF0aW9uUHJpdmF0ZT4pCiB7CiAgICAgUmVmUHRyPEljZUNvbm5lY3Rpb25Ob3Rp
Zmllcj4gbm90aWZpZXIgPSBhZG9wdFJlZihuZXcgSWNlQ29ubmVjdGlvbk5vdGlmaWVyKG1fY2xp
ZW50LCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQ6OkljZUNvbm5lY3Rpb25TdGF0ZUNv
bXBsZXRlZCwgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OjpJY2VHYXRoZXJpbmdTdGF0
ZUNvbXBsZXRlKSk7CiAgICAgbV90aW1lckV2ZW50cy5hcHBlbmQoYWRvcHRSZWYobmV3IFRpbWVy
RXZlbnQodGhpcywgbm90aWZpZXIpKSk7CkBAIC0xMjYsNyArMTI2LDcgQEAgUGFzc1JlZlB0cjxS
VENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJN
b2NrOjpyZW1vdGUKICAgICByZXR1cm4gbV9yZW1vdGVTZXNzaW9uRGVzY3JpcHRpb247CiB9CiAK
LWJvb2wgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6dXBkYXRlSWNlKFBhc3NSZWZQdHI8
UlRDQ29uZmlndXJhdGlvbj4pCitib29sIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6OnVw
ZGF0ZUljZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlPikKIHsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmgKaW5kZXggMjUxNjNhZWEzMWM5Mzc4ZWE4
MGQ4YWIxMGUxNDA1Mjc1M2ZjNmQyZi4uNWNiNWM3ODJlNTU0YjI1MGYzYjQ2MDM3NTNhNDA0ODU1
OGQyNzExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJNb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB+UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jaygpIHsgfQogCi0g
ICAgdmlydHVhbCBib29sIGluaXRpYWxpemUoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGluaXRpYWxpemUoUGFzc1JlZlB0cjxSVENDb25m
aWd1cmF0aW9uUHJpdmF0ZT4pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9m
ZmVyKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdD4sIFBhc3NSZWZQdHI8
UlRDT2ZmZXJPcHRpb25zPikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUFuc3dl
cihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q+LCBQYXNzUmVmUHRyPFJU
Q09mZmVyQW5zd2VyT3B0aW9ucz4pIG92ZXJyaWRlOwpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNldFJlbW90ZURlc2NyaXB0aW9uKFBhc3NSZWZQdHI8UlRDVm9p
ZFJlcXVlc3Q+LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+KSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVz
Y3JpcHRvcj4gbG9jYWxEZXNjcmlwdGlvbigpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiByZW1vdGVEZXNjcmlwdGlvbigp
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJY2UoUGFzc1JlZlB0cjxSVENDb25m
aWd1cmF0aW9uPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHVwZGF0ZUljZShQYXNzUmVm
UHRyPFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlPikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29s
IGFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0PiwgUGFzc1JlZlB0cjxS
VENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGFk
ZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4pIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+KSBv
dmVycmlkZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227213</attachid>
            <date>2014-03-19 14:06:50 -0700</date>
            <delta_ts>2014-03-20 10:51:10 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>rtc_configuration_iceserver_patch_2.txt</filename>
            <type>text/plain</type>
            <size>38415</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NTkwMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDE0LTAzLTE5ICBUaGlhZ28g
ZGUgQmFycm9zIExhY2VyZGEgIDx0aGlhZ28ubGFjZXJkYUBvcGVuYm9zc2Eub3JnPgorCisgICAg
ICAgIFtXZWJSVENdIE1vdmluZyBSVENDb25maWd1cmF0aW9uIGFuZCBSVENJY2VTZXJ2ZXIgdG8g
TW9kdWxlcy9tZWRpYXN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTMwNDM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhvc2UgY2xhc3NlcyBhcmUgZGVmaW5lZCBpbiBXZWJSVEMgc3BlYywgc28g
dGhleSBzaG91bGQgbm90IGJlIGluIHBsYXRmb3JtIGxheWVyLgorICAgICAgICBBZGRpbmcgYSBw
bGF0Zm9ybSBpbXBsZW1lbnRhdGlvbiB0byBiZSBwYXNzZWQgdG8gaGFuZGxlciBjbGFzc2VzLgor
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb25maWd1cmF0aW9uLmg6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENDb25maWd1cmF0
aW9uLmguCisgICAgICAgIChXZWJDb3JlOjpSVENDb25maWd1cmF0aW9uOjpwcml2YXRlQ29uZmln
dXJhdGlvbik6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlU2Vy
dmVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JU
Q0ljZVNlcnZlci5oLgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNlU2VydmVyOjpwcml2YXRlU2Vy
dmVyKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSVENJY2VTZXJ2ZXI6OlJUQ0ljZVNlcnZl
cik6IEFkZGVkIG5ldyBjb25zdHJ1Y3RvciB0aGF0IHJlY2VpdmVzIFJUQ0ljZVNlcnZlclByaXZh
dGUuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6UlRDUGVlckNvbm5lY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnVwZGF0ZUljZSk6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvblByaXZhdGUuaDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlU2VydmVyUHJpdmF0ZS5o
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL1JUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlck1vY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
TW9jazo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXJNb2NrOjp1cGRhdGVJY2UpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyTW9jay5oOgorCiAyMDE0LTAzLTE4ICBBbmRlcnMgQ2FybHNzb24gIDxh
bmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIG5ldyBmdW5jdGlvbmFsaXR5IHRoYXQg
d2lsbCBiZSByZXF1aXJlZCBieSB0aGUgaGlzdG9yeSBpdGVtIGRlY29kaW5nCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb24uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRp
b24uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDQ29uZmlndXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFJUQ0NvbmZpZ3VyYXRpb25faAorI2RlZmluZSBSVENDb25maWd1cmF0aW9uX2gK
KworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSVENDb25maWd1cmF0aW9u
UHJpdmF0ZS5oIgorI2luY2x1ZGUgIlJUQ0ljZVNlcnZlci5oIgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgUlRDQ29uZmlndXJhdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ0Nv
bmZpZ3VyYXRpb24+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENDb25maWd1
cmF0aW9uPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgUlRDQ29uZmlndXJhdGlvbigp
KTsgfQorICAgIHZpcnR1YWwgflJUQ0NvbmZpZ3VyYXRpb24oKSB7IH0KKworICAgIHZvaWQgYXBw
ZW5kU2VydmVyKFBhc3NSZWZQdHI8UlRDSWNlU2VydmVyPiBzZXJ2ZXIpIHsgbV9wcml2YXRlLT5h
cHBlbmRTZXJ2ZXIoc2VydmVyLT5wcml2YXRlU2VydmVyKCkpOyB9CisgICAgc2l6ZV90IG51bWJl
ck9mU2VydmVycygpIHsgcmV0dXJuIG1fcHJpdmF0ZS0+bnVtYmVyT2ZTZXJ2ZXJzKCk7IH0KKyAg
ICBQYXNzUmVmUHRyPFJUQ0ljZVNlcnZlcj4gc2VydmVyKHNpemVfdCBpbmRleCkKKyAgICB7Cisg
ICAgICAgIFJUQ0ljZVNlcnZlclByaXZhdGUqIHNlcnZlciA9IG1fcHJpdmF0ZS0+c2VydmVyKGlu
ZGV4KTsKKyAgICAgICAgaWYgKCFzZXJ2ZXIpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgICAgICByZXR1cm4gUlRDSWNlU2VydmVyOjpjcmVhdGUoc2VydmVyKTsKKyAgICB9CisK
KyAgICBjb25zdCBTdHJpbmcmIGljZVRyYW5zcG9ydHMoKSBjb25zdCB7IHJldHVybiBtX3ByaXZh
dGUtPmljZVRyYW5zcG9ydHMoKTsgfQorICAgIHZvaWQgc2V0SWNlVHJhbnNwb3J0cyhjb25zdCBT
dHJpbmcmIGljZVRyYW5zcG9ydHMpIHsgbV9wcml2YXRlLT5zZXRJY2VUcmFuc3BvcnRzKGljZVRy
YW5zcG9ydHMpOyB9CisKKyAgICBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZGVudGl0eSgpIGNvbnN0
IHsgcmV0dXJuIG1fcHJpdmF0ZS0+cmVxdWVzdElkZW50aXR5KCk7IH0KKyAgICB2b2lkIHNldFJl
cXVlc3RJZGVudGl0eShjb25zdCBTdHJpbmcmIHJlcXVlc3RJZGVudGl0eSkgeyBtX3ByaXZhdGUt
PnNldFJlcXVlc3RJZGVudGl0eShyZXF1ZXN0SWRlbnRpdHkpOyB9CisKKyAgICBWZWN0b3I8UmVm
UHRyPFJUQ0ljZVNlcnZlcj4+IGljZVNlcnZlcnMoKSBjb25zdAorICAgIHsKKyAgICAgICAgVmVj
dG9yPFJlZlB0cjxSVENJY2VTZXJ2ZXI+PiBzZXJ2ZXJzOworICAgICAgICBWZWN0b3I8UmVmUHRy
PFJUQ0ljZVNlcnZlclByaXZhdGU+PiBwcml2YXRlU2VydmVycyA9IG1fcHJpdmF0ZS0+aWNlU2Vy
dmVycygpOworCisgICAgICAgIGZvciAoYXV0byBpdGVyID0gcHJpdmF0ZVNlcnZlcnMuYmVnaW4o
KTsgaXRlciAhPSBwcml2YXRlU2VydmVycy5lbmQoKTsgKytpdGVyKQorICAgICAgICAgICAgc2Vy
dmVycy5hcHBlbmQoUlRDSWNlU2VydmVyOjpjcmVhdGUoKml0ZXIpKTsKKworICAgICAgICByZXR1
cm4gc2VydmVyczsKKyAgICB9CisKKyAgICBSVENDb25maWd1cmF0aW9uUHJpdmF0ZSogcHJpdmF0
ZUNvbmZpZ3VyYXRpb24oKSB7IHJldHVybiBtX3ByaXZhdGUuZ2V0KCk7IH0KKworcHJpdmF0ZToK
KyAgICBSVENDb25maWd1cmF0aW9uKCkKKyAgICAgICAgOiBtX3ByaXZhdGUoUlRDQ29uZmlndXJh
dGlvblByaXZhdGU6OmNyZWF0ZSgpKQorICAgIHsKKyAgICB9CisKKyAgICBSZWZQdHI8UlRDQ29u
ZmlndXJhdGlvblByaXZhdGU+IG1fcHJpdmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBSVENDb25m
aWd1cmF0aW9uX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
SWNlU2VydmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENJY2VTZXJ2ZXIuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDSWNlU2VydmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIFJUQ0ljZVNlcnZlcl9oCisjZGVmaW5lIFJUQ0ljZVNlcnZlcl9oCisKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiUlRDSWNlU2VydmVyUHJpdmF0ZS5oIgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRDSWNlU2VydmVyIDogcHVibGljIFJlZkNvdW50
ZWQ8UlRDSWNlU2VydmVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDSWNl
U2VydmVyPiBjcmVhdGUoY29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMsIGNvbnN0IFN0cmluZyYg
Y3JlZGVudGlhbCwgY29uc3QgU3RyaW5nJiB1c2VybmFtZSkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgUlRDSWNlU2VydmVyKHVybHMsIGNyZWRlbnRpYWwsIHVzZXJuYW1lKSk7
CisgICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDSWNlU2VydmVyPiBjcmVhdGUoUGFz
c1JlZlB0cjxSVENJY2VTZXJ2ZXJQcml2YXRlPiBzZXJ2ZXIpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFJUQ0ljZVNlcnZlcihzZXJ2ZXIpKTsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIH5SVENJY2VTZXJ2ZXIoKSB7IH0KKworICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB1cmxz
KCkgeyByZXR1cm4gbV9wcml2YXRlLT51cmxzKCk7IH0KKyAgICBjb25zdCBTdHJpbmcmIGNyZWRl
bnRpYWwoKSB7IHJldHVybiBtX3ByaXZhdGUtPmNyZWRlbnRpYWwoKTsgfQorICAgIGNvbnN0IFN0
cmluZyYgdXNlcm5hbWUoKSB7IHJldHVybiBtX3ByaXZhdGUtPnVzZXJuYW1lKCk7IH0KKyAgICBS
VENJY2VTZXJ2ZXJQcml2YXRlKiBwcml2YXRlU2VydmVyKCkgeyByZXR1cm4gbV9wcml2YXRlLmdl
dCgpOyB9CisKK3ByaXZhdGU6CisgICAgUlRDSWNlU2VydmVyKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiB1cmxzLCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWwsIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUp
CisgICAgICAgIDogbV9wcml2YXRlKFJUQ0ljZVNlcnZlclByaXZhdGU6OmNyZWF0ZSh1cmxzLCBj
cmVkZW50aWFsLCB1c2VybmFtZSkpCisgICAgeworICAgIH0KKworICAgIFJUQ0ljZVNlcnZlcihQ
YXNzUmVmUHRyPFJUQ0ljZVNlcnZlclByaXZhdGU+IHNlcnZlcikKKyAgICAgICAgOiBtX3ByaXZh
dGUoc2VydmVyKQorICAgIHsKKyAgICB9CisKKyAgICBSZWZQdHI8UlRDSWNlU2VydmVyUHJpdmF0
ZT4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFJUQ0ljZVNlcnZlcl9oCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLmNwcAkocmV2aXNpb24gMTY1ODEwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5
Myw3ICsxOTMsNyBAQCBSVENQZWVyQ29ubmVjdGlvbjo6UlRDUGVlckNvbm5lY3Rpb24oU2NyCiAK
ICAgICBkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5kaXNwYXRjaFdpbGxTdGFy
dFVzaW5nUGVlckNvbm5lY3Rpb25IYW5kbGVyKG1fcGVlckhhbmRsZXIuZ2V0KCkpOwogCi0gICAg
aWYgKCFtX3BlZXJIYW5kbGVyLT5pbml0aWFsaXplKG1fY29uZmlndXJhdGlvbikpIHsKKyAgICBp
ZiAoIW1fcGVlckhhbmRsZXItPmluaXRpYWxpemUobV9jb25maWd1cmF0aW9uLT5wcml2YXRlQ29u
ZmlndXJhdGlvbigpKSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMzY2LDcgKzM2Niw3IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rp
b246OnVwZGF0ZUljZShjb25zdCAKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGJvb2wgdmFsaWQgPSBtX3BlZXJIYW5kbGVyLT51cGRhdGVJY2UobV9jb25maWd1cmF0aW9uKTsK
KyAgICBib29sIHZhbGlkID0gbV9wZWVySGFuZGxlci0+dXBkYXRlSWNlKG1fY29uZmlndXJhdGlv
bi0+cHJpdmF0ZUNvbmZpZ3VyYXRpb24oKSk7CiAgICAgaWYgKCF2YWxpZCkKICAgICAgICAgZWMg
PSBTWU5UQVhfRVJSOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTY1ODEwKQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0y
NTksNyArMjU5LDYgQEAKIAkJMDc4RTA5MzgxN0QxNkIyQzAwNDIwQUExIC8qIE1lZGlhU3RyZWFt
U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzIyMUI5RjE3Q0YwQUQ0MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1Tb3VyY2UuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzhFMDkzOTE3RDE2QjJD
MDA0MjBBQTEgLyogTWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCQTAxN0NGMEFENDAwODQ4RTUxIC8q
IE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzhFMDkzQTE3RDE2RTFDMDA0MjBBQTEgLyogTWVkaWFD
b25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDcyMjFCOTkxN0NGMEFENDAwODQ4RTUxIC8qIE1lZGlhQ29uc3RyYWludHMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwNzhFMDkzQjE3RDE2
RTFDMDA0MjBBQTEgLyogUlRDQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCQTExN0NGMEFENDAwODQ4RTUxIC8qIFJUQ0Nv
bmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwNzhFMDkzQzE3RDE2RTFDMDA0MjBBQTEgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzIyMUJB
MjE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc4RTA5M0QxN0QxNkUxQzAw
NDIwQUExIC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCQTMxN0NGMEFENDAwODQ4RTUxIC8q
IFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3OEUwOTNFMTdEMTZFMUMwMDQyMEFBMSAvKiBSVENE
VE1GU2VuZGVySGFuZGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDcyMjFCQTQxN0NGMEFENDAwODQ4RTUxIC8qIFJUQ0RUTUZTZW5kZXJIYW5kbGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTMx
MCw2ICszMDksMTAgQEAKIAkJMDdBNkQxRUMxNDkxMTM3NzAwMDUxRDBDIC8qIE1lZGlhRnJhZ21l
bnRVUklQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3QTZEMUVBMTQ5MTEzNzcwMDA1MUQwQyAvKiBNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmgg
Ki87IH07CiAJCTA3QUE2QjZCMTY2RDJDMDcwMEQ0NTY3MSAvKiBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3QUE2QjZBMTY2RDAxOTUwMEQ0NTY3MSAvKiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZG
T2JqQy5tbSAqLzsgfTsKIAkJMDdBQTZCNkMxNjZEMkMxMzAwRDQ1NjcxIC8qIEluYmFuZFRleHRU
cmFja1ByaXZhdGVBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwN0FBNkI2OTE2NkQwMTk1MDBENDU2NzEgLyogSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUFWRk9iakMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQkwN0FCOTk2OTE4REEzQzAxMDAxODc3MUUgLyogUlRDQ29uZmlndXJhdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdBQjk5NjUxOERB
M0MwMTAwMTg3NzFFIC8qIFJUQ0NvbmZpZ3VyYXRpb24uaCAqLzsgfTsKKwkJMDdBQjk5NkIxOERB
M0MwMTAwMTg3NzFFIC8qIFJUQ0ljZVNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDdBQjk5NjcxOERBM0MwMTAwMTg3NzFFIC8qIFJUQ0ljZVNl
cnZlci5oICovOyB9OworCQkwN0FCOTk2RjE4REEzQzc0MDAxODc3MUUgLyogUlRDQ29uZmlndXJh
dGlvblByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3QUI5OTZEMThEQTNDNzQwMDE4NzcxRSAvKiBSVENDb25maWd1cmF0aW9uUHJpdmF0ZS5o
ICovOyB9OworCQkwN0FCOTk3MDE4REEzQzc0MDAxODc3MUUgLyogUlRDSWNlU2VydmVyUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdBQjk5
NkUxOERBM0M3NDAwMTg3NzFFIC8qIFJUQ0ljZVNlcnZlclByaXZhdGUuaCAqLzsgfTsKIAkJMDdC
MDExM0YxMDMyMjQyMjAwRkJEQzMzIC8qIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0IwMTEzRTEwMzIy
NDIyMDBGQkRDMzMgLyogQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuaCAqLzsgfTsKIAkJMDdC
NDQyRDYxNjZDNzBCMDAwNTU2Q0FEIC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdCNDQyRDQxNjZD
NzBCMDAwNTU2Q0FEIC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwICovOyB9OwogCQkw
N0I0NDJENzE2NkM3MEIwMDA1NTZDQUQgLyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdCNDQyRDUxNjZD
NzBCMDAwNTU2Q0FEIC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjk1OSw3ICs2OTYyLDYgQEAK
IAkJMDcyMjFCOUUxN0NGMEFENDAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtU291cmNlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtU291cmNlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyMjFCOUYxN0NGMEFENDAwODQ4RTUxIC8q
IE1lZGlhU3RyZWFtU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
ZGlhU3RyZWFtU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQkEw
MTdDRjBBRDQwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcyMjFCQTExN0NGMEFENDAwODQ4RTUxIC8qIFJU
Q0NvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDQ29u
ZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzIyMUJBMjE3Q0Yw
QUQ0MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJUQ0RhdGFDaGFubmVsSGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzIyMUJBMzE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWxI
YW5kbGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0RhdGFD
aGFubmVsSGFuZGxlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzIy
MUJBNDE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDRFRNRlNlbmRlckhhbmRsZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDRFRNRlNlbmRlckhhbmRsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcwODYsNiArNzA4OCwxMiBAQAogCQkwN0E2RDFFQTE0OTEx
Mzc3MDAwNTFEMEMgLyogTWVkaWFGcmFnbWVudFVSSVBhcnNlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3QUE2QjY5MTY2RDAxOTUwMEQ0NTY3MSAvKiBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQy5oOyBwYXRoID0gb2JqYy9JbmJhbmRUZXh0VHJhY2tQ
cml2YXRlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0FBNkI2QTE2
NkQwMTk1MDBENDU2NzEgLyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRk9iakMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBJbmJhbmRUZXh0VHJhY2tQcml2YXRl
QVZGT2JqQy5tbTsgcGF0aCA9IG9iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRk9iakMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3QUI5OTY1MThEQTNDMDEwMDE4NzcxRSAv
KiBSVENDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJU
Q0NvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdBQjk5NjYx
OERBM0MwMTAwMTg3NzFFIC8qIFJUQ0NvbmZpZ3VyYXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFJUQ0NvbmZpZ3VyYXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkwN0FCOTk2NzE4REEzQzAxMDAxODc3MUUgLyogUlRDSWNlU2VydmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0ljZVNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwN0FCOTk2ODE4REEzQzAxMDAxODc3MUUgLyogUlRDSWNlU2VydmVyLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENJY2VTZXJ2ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwN0FCOTk2RDE4REEzQzc0MDAxODc3MUUgLyogUlRDQ29uZmlndXJhdGlv
blByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDQ29uZmlndXJh
dGlvblByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdBQjk5NkUxOERB
M0M3NDAwMTg3NzFFIC8qIFJUQ0ljZVNlcnZlclByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUlRDSWNlU2VydmVyUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwN0IwMTEzRTEwMzIyNDIyMDBGQkRDMzMgLyogQWNjZXNzaWJpbGl0eU1lZGlh
Q29udHJvbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0
eU1lZGlhQ29udHJvbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCNDQyRDQx
NjZDNzBCMDAwNTU2Q0FEIC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QjQ0MkQ1MTY2QzcwQjAwMDU1NkNB
RCAvKiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE0MDkzLDYgKzE0MTAxLDggQEAKIAkJCQkwNzIyMUI2MDE3Q0VDMzI3MDA4
NDhFNTEgLyogTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5pZGwgKi8sCiAJCQkJMDcy
MjFCNjExN0NFQzMyNzAwODQ4RTUxIC8qIE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFj
ay5oICovLAogCQkJCTA3MjIxQjYyMTdDRUMzMjcwMDg0OEU1MSAvKiBOYXZpZ2F0b3JVc2VyTWVk
aWFTdWNjZXNzQ2FsbGJhY2suaWRsICovLAorCQkJCTA3QUI5OTY1MThEQTNDMDEwMDE4NzcxRSAv
KiBSVENDb25maWd1cmF0aW9uLmggKi8sCisJCQkJMDdBQjk5NjYxOERBM0MwMTAwMTg3NzFFIC8q
IFJUQ0NvbmZpZ3VyYXRpb24uaWRsICovLAogCQkJCTA3MjIxQjYzMTdDRUMzMjcwMDg0OEU1MSAv
KiBSVENEYXRhQ2hhbm5lbC5jcHAgKi8sCiAJCQkJMDcyMjFCNjQxN0NFQzMyNzAwODQ4RTUxIC8q
IFJUQ0RhdGFDaGFubmVsLmggKi8sCiAJCQkJMDcyMjFCNjUxN0NFQzMyNzAwODQ4RTUxIC8qIFJU
Q0RhdGFDaGFubmVsLmlkbCAqLywKQEAgLTE0MTExLDYgKzE0MTIxLDggQEAKIAkJCQkwNzIyMUI3
NDE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDSWNlQ2FuZGlkYXRlRXZlbnQuY3BwICovLAogCQkJCTA3
MjIxQjc1MTdDRUMzMjcwMDg0OEU1MSAvKiBSVENJY2VDYW5kaWRhdGVFdmVudC5oICovLAogCQkJ
CTA3MjIxQjc2MTdDRUMzMjcwMDg0OEU1MSAvKiBSVENJY2VDYW5kaWRhdGVFdmVudC5pZGwgKi8s
CisJCQkJMDdBQjk5NjcxOERBM0MwMTAwMTg3NzFFIC8qIFJUQ0ljZVNlcnZlci5oICovLAorCQkJ
CTA3QUI5OTY4MThEQTNDMDEwMDE4NzcxRSAvKiBSVENJY2VTZXJ2ZXIuaWRsICovLAogCQkJCTA3
MjIxQjc3MTdDRUMzMjcwMDg0OEU1MSAvKiBSVENQZWVyQ29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJ
MDcyMjFCNzgxN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ1BlZXJDb25uZWN0aW9uLmggKi8sCiAJCQkJ
MDcyMjFCNzkxN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ1BlZXJDb25uZWN0aW9uLmlkbCAqLywKQEAg
LTE0MTY5LDEzICsxNDE4MSwxNCBAQAogCQkJCTA3RkZERTY2MTgxQUVENDIwMDcyRDQwOSAvKiBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAgKi8sCiAJCQkJMDdGRkRFNjcxODFBRUQ0MjAwNzJE
NDA5IC8qIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmggKi8sCiAJCQkJMDc2MzA2RTIxN0UyMkE0
MzAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oICovLAot
CQkJCTA3MjIxQkExMTdDRjBBRDQwMDg0OEU1MSAvKiBSVENDb25maWd1cmF0aW9uLmggKi8sCisJ
CQkJMDdBQjk5NkQxOERBM0M3NDAwMTg3NzFFIC8qIFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgg
Ki8sCiAJCQkJMDcyMjFCQTIxN0NGMEFENDAwODQ4RTUxIC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxl
ci5oICovLAogCQkJCTA3MjIxQkEzMTdDRjBBRDQwMDg0OEU1MSAvKiBSVENEYXRhQ2hhbm5lbEhh
bmRsZXJDbGllbnQuaCAqLywKIAkJCQkwNzIyMUJBNDE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDRFRN
RlNlbmRlckhhbmRsZXIuaCAqLywKIAkJCQkwNzIyMUJBNTE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRD
RFRNRlNlbmRlckhhbmRsZXJDbGllbnQuaCAqLywKIAkJCQkwNzIyMUJBNjE3Q0YwQUQ0MDA4NDhF
NTEgLyogUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5jcHAgKi8sCiAJCQkJMDcyMjFCQTcxN0NG
MEFENDAwODQ4RTUxIC8qIFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuaCAqLywKKwkJCQkwN0FC
OTk2RTE4REEzQzc0MDAxODc3MUUgLyogUlRDSWNlU2VydmVyUHJpdmF0ZS5oICovLAogCQkJCTA3
MjIxQkE4MTdDRjBBRDQwMDg0OEU1MSAvKiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwICov
LAogCQkJCTA3MjIxQkE5MTdDRjBBRDQwMDg0OEU1MSAvKiBSVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXIuaCAqLywKIAkJCQkwNzIyMUJBQTE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyQ2xpZW50LmggKi8sCkBAIC0yMzUxNyw2ICsyMzUzMCw3IEBACiAJCQkJODVFNzEx
RDQwQUM1RDUzNTAwNTMyNzBGIC8qIERPTU5vdGF0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg1NkM4QUU0MEE5MTI2NDkwMDVDNjg3QiAvKiBET01PYmplY3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNTNEQTYwMTE0MzE0MUEwMDBEODE3RSAvKiBET01PYmplY3RIYXNoVGFibGVN
YXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3QUI5OTcwMThEQTNDNzQwMDE4NzcxRSAvKiBSVENJ
Y2VTZXJ2ZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUM3RjVEMDBBQUZCOEQ5MDA0
MDE0REQgLyogRE9NT3ZlcmZsb3dFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU5ODlEQ0Yw
QUNDOEJCRDAwQTBCQzUxIC8qIERPTU92ZXJmbG93RXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTEyODRCRDYxMDQ0QTAxRTAwRUFFQjUyIC8qIERPTVBhZ2VUcmFuc2l0aW9uRXZl
bnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUxMTgsNiArMjUxMzIsNyBAQAogCQkJCTQzOTA0NkQ4
MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxCbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDM5MDQ2REExMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZlbmNlZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDM5MDQ2REMxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZy
YWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwN0FCOTk2RjE4REEzQzc0MDAxODc3MUUgLyog
UlRDQ29uZmlndXJhdGlvblByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzOTA0NkRFMTJE
QTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxNYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MzkwNDZFMDEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MT3BlcmF0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQzOTA0NkUyMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxSb290
LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MjQ3LDcgKzI1MjYyLDYgQEAKIAkJCQlBOENGRjVFMTBB
MTU1QTA1MDAwQTQyMzQgLyogUm9vdElubGluZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlF
OTExQzkwRUY4NkQ0NzAwOUQwQ0FGIC8qIFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTczRjk1RkYxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwNzhFMDkzQjE3RDE2RTFDMDA0MjBBQTEgLyogUlRDQ29uZmln
dXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MUUxN0QxNEQxQzAwNDIwQUExIC8q
IFJUQ0RhdGFDaGFubmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkxRjE3RDE0RDFDMDA0
MjBBQTEgLyogUlRDRGF0YUNoYW5uZWxFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5
M0MxN0QxNkUxQzAwNDIwQUExIC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNTI5Nyw2ICsyNTMxMSw3IEBACiAJCQkJMDhBNDg0NzgwRTUyNzJDNTAwQzNGRTc2
IC8qIFNjcmlwdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMUM5RDlCMEVCMzY4MTIw
MEU0MDlEQiAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MUYwNjZFNDBGNjRCQ0Y2MDBBMDdFQUMgLyogU2NyaXB0R2xvYmFsT2JqZWN0LmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwN0FCOTk2QjE4REEzQzAxMDAxODc3MUUgLyogUlRDSWNlU2VydmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5RjNCOTQ3RTEyMjQxNzU4MDA1MzA0RTcgLyogU2NyaXB0SGVhcFNu
YXBzaG90LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjAzNjEyQjAyNjc2MDBDMUEzNTkgLyog
U2NyaXB0UHJvY2Vzc29yTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUY3MjMwNEYxMTE4NEI0
MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjU5NDEsNiAr
MjU5NTYsNyBAQAogCQkJCTNGRkZGOUFFMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxl
UmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzhEMEJCMTg3OEU4OTEwMDNBQkRFNiAv
KiBWaWV3U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTIwMDk5RTY0OTIwMDU2RTU4
MSAvKiBWaXNpYmxlUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTA3QUI5OTY5MThEQTND
MDEwMDE4NzcxRSAvKiBSVENDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODgz
REYyODBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTMzMDlFMUUwOTlFNjQ5MjAwNTZFNTgxIC8qIFZpc2libGVVbml0cy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDE5QkMyREYxNjg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUu
aCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDQ29uZmlndXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb24uaAkocmV2aXNpb24gMTY1ODEwKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDg1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgotICog
My4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBj
b250cmlidXRvcnMKLSAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20gdGhpcwotICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFJUQ0NvbmZpZ3Vy
YXRpb25faAotI2RlZmluZSBSVENDb25maWd1cmF0aW9uX2gKLQotI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCi0KLSNpbmNsdWRlICJSVENJY2VTZXJ2ZXIuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLWNsYXNzIFJUQ0NvbmZpZ3VyYXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxSVENDb25m
aWd1cmF0aW9uPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDQ29uZmlndXJh
dGlvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFJUQ0NvbmZpZ3VyYXRpb24oKSk7
IH0KLSAgICB2aXJ0dWFsIH5SVENDb25maWd1cmF0aW9uKCkgeyB9Ci0KLSAgICB2b2lkIGFwcGVu
ZFNlcnZlcihQYXNzUmVmUHRyPFJUQ0ljZVNlcnZlcj4gc2VydmVyKSB7IG1fc2VydmVycy5hcHBl
bmQoc2VydmVyKTsgfQotICAgIHNpemVfdCBudW1iZXJPZlNlcnZlcnMoKSB7IHJldHVybiBtX3Nl
cnZlcnMuc2l6ZSgpOyB9Ci0gICAgUlRDSWNlU2VydmVyKiBzZXJ2ZXIoc2l6ZV90IGluZGV4KSB7
IHJldHVybiBtX3NlcnZlcnNbaW5kZXhdLmdldCgpOyB9Ci0KLSAgICBjb25zdCBTdHJpbmcmIGlj
ZVRyYW5zcG9ydHMoKSBjb25zdCB7IHJldHVybiBtX2ljZVRyYW5zcG9ydHM7IH0KLSAgICB2b2lk
IHNldEljZVRyYW5zcG9ydHMoY29uc3QgU3RyaW5nJiBpY2VUcmFuc3BvcnRzKQotICAgIHsKLSAg
ICAgICAgaWYgKGljZVRyYW5zcG9ydHMgPT0gIm5vbmUiIHx8IGljZVRyYW5zcG9ydHMgPT0gInJl
bGF5IiB8fCBpY2VUcmFuc3BvcnRzID09ICJhbGwiKQotICAgICAgICAgICAgbV9pY2VUcmFuc3Bv
cnRzID0gaWNlVHJhbnNwb3J0czsKLSAgICB9Ci0KLSAgICBjb25zdCBTdHJpbmcmIHJlcXVlc3RJ
ZGVudGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdElkZW50aXR5OyB9Ci0gICAgdm9pZCBz
ZXRSZXF1ZXN0SWRlbnRpdHkoY29uc3QgU3RyaW5nJiByZXF1ZXN0SWRlbnRpdHkpCi0gICAgewot
ICAgICAgICBpZiAocmVxdWVzdElkZW50aXR5ID09ICJ5ZXMiIHx8IHJlcXVlc3RJZGVudGl0eSA9
PSAibm8iIHx8IHJlcXVlc3RJZGVudGl0eSA9PSAiaWZjb25maWd1cmVkIikKLSAgICAgICAgICAg
IG1fcmVxdWVzdElkZW50aXR5ID0gcmVxdWVzdElkZW50aXR5OwotICAgIH0KLQotICAgIFZlY3Rv
cjxSZWZQdHI8UlRDSWNlU2VydmVyPj4gaWNlU2VydmVycygpIGNvbnN0IHsgcmV0dXJuIG1fc2Vy
dmVyczsgfQotCi0gcHJpdmF0ZToKLSAgICBSVENDb25maWd1cmF0aW9uKCkKLSAgICAgICAgOiBt
X2ljZVRyYW5zcG9ydHMoImFsbCIpCi0gICAgICAgICwgbV9yZXF1ZXN0SWRlbnRpdHkoImlmY29u
ZmlndXJlZCIpCi0gICAgewotICAgIH0KLQotICAgIFZlY3RvcjxSZWZQdHI8UlRDSWNlU2VydmVy
Pj4gbV9zZXJ2ZXJzOwotICAgIFN0cmluZyBtX2ljZVRyYW5zcG9ydHM7Ci0gICAgU3RyaW5nIG1f
cmVxdWVzdElkZW50aXR5OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2VuZGlmIC8vIFJUQ0NvbmZpZ3VyYXRpb25faApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlv
blByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SVENDb25maWd1cmF0aW9uUHJpdmF0ZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvblByaXZhdGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENDb25maWd1cmF0aW9uUHJpdmF0ZV9oCisjZGVm
aW5lIFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKKyNpbmNsdWRlICJSVENJY2VTZXJ2ZXJQcml2YXRlLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBSVENDb25maWd1cmF0aW9uUHJpdmF0ZSA6IHB1YmxpYyBSZWZDb3VudGVk
PFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8UlRDQ29uZmlndXJhdGlvblByaXZhdGU+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5l
dyBSVENDb25maWd1cmF0aW9uUHJpdmF0ZSgpKTsgfQorICAgIHZpcnR1YWwgflJUQ0NvbmZpZ3Vy
YXRpb25Qcml2YXRlKCkgeyB9CisKKyAgICB2b2lkIGFwcGVuZFNlcnZlcihQYXNzUmVmUHRyPFJU
Q0ljZVNlcnZlclByaXZhdGU+IHNlcnZlcikgeyBtX3ByaXZhdGVTZXJ2ZXJzLmFwcGVuZChzZXJ2
ZXIpOyB9CisgICAgc2l6ZV90IG51bWJlck9mU2VydmVycygpIHsgcmV0dXJuIG1fcHJpdmF0ZVNl
cnZlcnMuc2l6ZSgpOyB9CisgICAgUlRDSWNlU2VydmVyUHJpdmF0ZSogc2VydmVyKHNpemVfdCBp
bmRleCkgeyByZXR1cm4gbV9wcml2YXRlU2VydmVyc1tpbmRleF0uZ2V0KCk7IH0KKworICAgIGNv
bnN0IFN0cmluZyYgaWNlVHJhbnNwb3J0cygpIGNvbnN0IHsgcmV0dXJuIG1faWNlVHJhbnNwb3J0
czsgfQorICAgIHZvaWQgc2V0SWNlVHJhbnNwb3J0cyhjb25zdCBTdHJpbmcmIGljZVRyYW5zcG9y
dHMpCisgICAgeworICAgICAgICBpZiAoaWNlVHJhbnNwb3J0cyA9PSAibm9uZSIgfHwgaWNlVHJh
bnNwb3J0cyA9PSAicmVsYXkiIHx8IGljZVRyYW5zcG9ydHMgPT0gImFsbCIpCisgICAgICAgICAg
ICBtX2ljZVRyYW5zcG9ydHMgPSBpY2VUcmFuc3BvcnRzOworICAgIH0KKworICAgIGNvbnN0IFN0
cmluZyYgcmVxdWVzdElkZW50aXR5KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0SWRlbnRpdHk7
IH0KKyAgICB2b2lkIHNldFJlcXVlc3RJZGVudGl0eShjb25zdCBTdHJpbmcmIHJlcXVlc3RJZGVu
dGl0eSkKKyAgICB7CisgICAgICAgIGlmIChyZXF1ZXN0SWRlbnRpdHkgPT0gInllcyIgfHwgcmVx
dWVzdElkZW50aXR5ID09ICJubyIgfHwgcmVxdWVzdElkZW50aXR5ID09ICJpZmNvbmZpZ3VyZWQi
KQorICAgICAgICAgICAgbV9yZXF1ZXN0SWRlbnRpdHkgPSByZXF1ZXN0SWRlbnRpdHk7CisgICAg
fQorCisgICAgVmVjdG9yPFJlZlB0cjxSVENJY2VTZXJ2ZXJQcml2YXRlPj4gaWNlU2VydmVycygp
IGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZVNlcnZlcnM7IH0KKworcHJpdmF0ZToKKyAgICBSVEND
b25maWd1cmF0aW9uUHJpdmF0ZSgpCisgICAgICAgIDogbV9pY2VUcmFuc3BvcnRzKCJhbGwiKQor
ICAgICAgICAsIG1fcmVxdWVzdElkZW50aXR5KCJpZmNvbmZpZ3VyZWQiKQorICAgIHsKKyAgICB9
CisKKyAgICBWZWN0b3I8UmVmUHRyPFJUQ0ljZVNlcnZlclByaXZhdGU+PiBtX3ByaXZhdGVTZXJ2
ZXJzOworICAgIFN0cmluZyBtX2ljZVRyYW5zcG9ydHM7CisgICAgU3RyaW5nIG1fcmVxdWVzdElk
ZW50aXR5OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlX2gKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0ljZVNlcnZlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0ljZVNl
cnZlci5oCShyZXZpc2lvbiAxNjU4MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SVENJY2VTZXJ2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2NyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUlRD
SWNlU2VydmVyX2gKLSNkZWZpbmUgUlRDSWNlU2VydmVyX2gKLQotI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCi0KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJUQ0ljZVNlcnZlciA6
IHB1YmxpYyBSZWZDb3VudGVkPFJUQ0ljZVNlcnZlcj4gewotcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFJUQ0ljZVNlcnZlcj4gY3JlYXRlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB1cmxz
LCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWwsIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUpCi0gICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJUQ0ljZVNlcnZlcih1cmxzLCBjcmVkZW50
aWFsLCB1c2VybmFtZSkpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5SVENJY2VTZXJ2ZXIoKSB7IH0K
LQotICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB1cmxzKCkgeyByZXR1cm4gbV91cmxzOyB9Ci0g
ICAgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsKCkgeyByZXR1cm4gbV9jcmVkZW50aWFsOyB9Ci0g
ICAgY29uc3QgU3RyaW5nJiB1c2VybmFtZSgpIHsgcmV0dXJuIG1fdXNlcm5hbWU7IH0KLQotcHJp
dmF0ZToKLSAgICBSVENJY2VTZXJ2ZXIoY29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMsIGNvbnN0
IFN0cmluZyYgY3JlZGVudGlhbCwgY29uc3QgU3RyaW5nJiB1c2VybmFtZSkKLSAgICAgICAgOiBt
X3VybHModXJscykKLSAgICAgICAgLCBtX2NyZWRlbnRpYWwoY3JlZGVudGlhbCkKLSAgICAgICAg
LCBtX3VzZXJuYW1lKHVzZXJuYW1lKQotICAgIHsKLSAgICB9Ci0KLSAgICBWZWN0b3I8U3RyaW5n
PiBtX3VybHM7Ci0gICAgU3RyaW5nIG1fY3JlZGVudGlhbDsKLSAgICBTdHJpbmcgbV91c2VybmFt
ZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBSVENJY2VTZXJ2ZXJfaApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlU2VydmVyUHJpdmF0ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0ljZVNlcnZlclByaXZh
dGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JUQ0ljZVNlcnZlclByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUlRD
SWNlU2VydmVyUHJpdmF0ZV9oCisjZGVmaW5lIFJUQ0ljZVNlcnZlclByaXZhdGVfaAorCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
UlRDSWNlU2VydmVyUHJpdmF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ0ljZVNlcnZlclByaXZh
dGU+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENJY2VTZXJ2ZXJQcml2YXRl
PiBjcmVhdGUoY29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMsIGNvbnN0IFN0cmluZyYgY3JlZGVu
dGlhbCwgY29uc3QgU3RyaW5nJiB1c2VybmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgUlRDSWNlU2VydmVyUHJpdmF0ZSh1cmxzLCBjcmVkZW50aWFsLCB1c2VybmFtZSkp
OworICAgIH0KKyAgICB2aXJ0dWFsIH5SVENJY2VTZXJ2ZXJQcml2YXRlKCkgeyB9CisKKyAgICBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscygpIHsgcmV0dXJuIG1fdXJsczsgfQorICAgIGNvbnN0
IFN0cmluZyYgY3JlZGVudGlhbCgpIHsgcmV0dXJuIG1fY3JlZGVudGlhbDsgfQorICAgIGNvbnN0
IFN0cmluZyYgdXNlcm5hbWUoKSB7IHJldHVybiBtX3VzZXJuYW1lOyB9CisKK3ByaXZhdGU6Cisg
ICAgUlRDSWNlU2VydmVyUHJpdmF0ZShjb25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscywgY29uc3Qg
U3RyaW5nJiBjcmVkZW50aWFsLCBjb25zdCBTdHJpbmcmIHVzZXJuYW1lKQorICAgICAgICA6IG1f
dXJscyh1cmxzKQorICAgICAgICAsIG1fY3JlZGVudGlhbChjcmVkZW50aWFsKQorICAgICAgICAs
IG1fdXNlcm5hbWUodXNlcm5hbWUpCisgICAgeworICAgIH0KKworICAgIFZlY3RvcjxTdHJpbmc+
IG1fdXJsczsKKyAgICBTdHJpbmcgbV9jcmVkZW50aWFsOworICAgIFN0cmluZyBtX3VzZXJuYW1l
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2VuZGlmIC8vIFJUQ0ljZVNlcnZlclByaXZhdGVfaApJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyLmgJKHJldmlzaW9uIDE2NTgxMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC00MCw3ICs0MCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1l
ZGlhU3RyZWFtU291cmNlOwotY2xhc3MgUlRDQ29uZmlndXJhdGlvbjsKK2NsYXNzIFJUQ0NvbmZp
Z3VyYXRpb25Qcml2YXRlOwogY2xhc3MgUlRDRFRNRlNlbmRlckhhbmRsZXI7CiBjbGFzcyBSVENE
YXRhQ2hhbm5lbEhhbmRsZXI7CiBjbGFzcyBSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOwpAQCAt
ODEsNyArODEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgaW5j
b21wYXRpYmxlU2Vzc2lvbkRlc2NyaXB0aW9uRXJyb3JOYW1lKCk7CiAgICAgc3RhdGljIGNvbnN0
IEF0b21pY1N0cmluZyYgaW50ZXJuYWxFcnJvck5hbWUoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBp
bml0aWFsaXplKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4pID0gMDsKKyAgICB2aXJ0dWFs
IGJvb2wgaW5pdGlhbGl6ZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlPikgPSAw
OwogCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9mZmVyKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdD4sIFBhc3NSZWZQdHI8UlRDT2ZmZXJPcHRpb25zPikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBjcmVhdGVBbnN3ZXIoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0PiwgUGFzc1JlZlB0cjxSVENPZmZlckFuc3dlck9wdGlvbnM+KSA9IDA7CkBAIC04
OSw3ICs4OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRp
b24oUGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdD4sIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvcj4pID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UlRDU2Vzc2lv
bkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gbG9jYWxEZXNjcmlwdGlvbigpID0gMDsKICAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gcmVtb3RlRGVz
Y3JpcHRpb24oKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIHVwZGF0ZUljZShQYXNzUmVmUHRyPFJU
Q0NvbmZpZ3VyYXRpb24+KSA9IDA7CisgICAgdmlydHVhbCBib29sIHVwZGF0ZUljZShQYXNzUmVm
UHRyPFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlPikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBhZGRJ
Y2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdD4sIFBhc3NSZWZQdHI8UlRDSWNl
Q2FuZGlkYXRlRGVzY3JpcHRvcj4pID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+KSA9IDA7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyTW9jay5jcHAJKHJldmlzaW9uIDE2NTgxMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTUxLDcgKzUxLDcgQEAgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6UlRD
UGVlckNvbgogewogfQogCi1ib29sIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6OmluaXRp
YWxpemUoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPikKK2Jvb2wgUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyTW9jazo6aW5pdGlhbGl6ZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3VyYXRpb25Qcml2
YXRlPikKIHsKICAgICBSZWZQdHI8SWNlQ29ubmVjdGlvbk5vdGlmaWVyPiBub3RpZmllciA9IGFk
b3B0UmVmKG5ldyBJY2VDb25uZWN0aW9uTm90aWZpZXIobV9jbGllbnQsIFJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlckNsaWVudDo6SWNlQ29ubmVjdGlvblN0YXRlQ29tcGxldGVkLCBSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXJDbGllbnQ6OkljZUdhdGhlcmluZ1N0YXRlQ29tcGxldGUpKTsKICAgICBt
X3RpbWVyRXZlbnRzLmFwcGVuZChhZG9wdFJlZihuZXcgVGltZXJFdmVudCh0aGlzLCBub3RpZmll
cikpKTsKQEAgLTEyNiw3ICsxMjYsNyBAQCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0CiAgICAgcmV0dXJuIG1fcmVtb3RlU2Vzc2lvbkRlc2NyaXB0aW9uOwogfQogCi1i
b29sIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6OnVwZGF0ZUljZShQYXNzUmVmUHRyPFJU
Q0NvbmZpZ3VyYXRpb24+KQorYm9vbCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjp1cGRh
dGVJY2UoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uUHJpdmF0ZT4pCiB7CiAgICAgcmV0dXJu
IHRydWU7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlck1vY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suaAkocmV2aXNpb24gMTY1ODEwKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJN
b2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB+UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jaygpIHsgfQogCi0gICAgdmlydHVhbCBi
b29sIGluaXRpYWxpemUoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBib29sIGluaXRpYWxpemUoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uUHJp
dmF0ZT4pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9mZmVyKFBhc3NSZWZQ
dHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdD4sIFBhc3NSZWZQdHI8UlRDT2ZmZXJPcHRp
b25zPikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUFuc3dlcihQYXNzUmVmUHRy
PFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q+LCBQYXNzUmVmUHRyPFJUQ09mZmVyQW5zd2Vy
T3B0aW9ucz4pIG92ZXJyaWRlOwpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHNldFJlbW90ZURlc2NyaXB0aW9uKFBhc3NSZWZQdHI8UlRDVm9pZFJlcXVlc3Q+LCBQ
YXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+KSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gbG9j
YWxEZXNjcmlwdGlvbigpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSVENTZXNz
aW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiByZW1vdGVEZXNjcmlwdGlvbigpIG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJY2UoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHVwZGF0ZUljZShQYXNzUmVmUHRyPFJUQ0NvbmZp
Z3VyYXRpb25Qcml2YXRlPikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGFkZEljZUNhbmRp
ZGF0ZShQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0PiwgUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRh
dGVEZXNjcmlwdG9yPikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGFkZFN0cmVhbShQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+KSBvdmVycmlkZTsK
</data>
<flag name="commit-queue"
          id="251551"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227306</attachid>
            <date>2014-03-20 11:19:51 -0700</date>
            <delta_ts>2014-03-20 14:19:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-130434-20140320151928.patch</filename>
            <type>text/plain</type>
            <size>39030</size>
            <attacher name="Thiago de Barros Lacerda">thiago.lacerda</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1OTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2IyMmEwNDVmMDVkNWJi
MzFiZGNhMmZhYWY1MWY1OGRhN2M5OGZhYi4uYjM5NmUzMzU5NWUzZGYzM2NmNDI2ZDA0NDZmNzBj
ZjU0YjhjYmY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTAzLTIwICBUaGlh
Z28gZGUgQmFycm9zIExhY2VyZGEgIDx0aGlhZ28ubGFjZXJkYUBvcGVuYm9zc2Eub3JnPgorCisg
ICAgICAgIFtXZWJSVENdIE1vdmluZyBSVENDb25maWd1cmF0aW9uIGFuZCBSVENJY2VTZXJ2ZXIg
dG8gTW9kdWxlcy9tZWRpYXN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTMwNDM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29u
LgorCisgICAgICAgIFRob3NlIGNsYXNzZXMgYXJlIGRlZmluZWQgaW4gV2ViUlRDIHNwZWMsIHNv
IHRoZXkgc2hvdWxkIG5vdCBiZSBpbiBwbGF0Zm9ybSBsYXllci4KKyAgICAgICAgQWRkaW5nIGEg
cGxhdGZvcm0gaW1wbGVtZW50YXRpb24gdG8gYmUgcGFzc2VkIHRvIGhhbmRsZXIgY2xhc3Nlcy4K
KworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENDb25maWd1cmF0
aW9uLmguCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VTZXJ2ZXIuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlU2VydmVy
LmguCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6UlRDUGVlckNvbm5lY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnVwZGF0ZUljZSk6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0ljZVNlcnZlclByaXZhdGUuaDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6
CisgICAgICAgICogcGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6OmluaXRp
YWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6
dXBkYXRlSWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL1JUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlck1vY2suaDoKKwogMjAxNC0wMy0yMCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBTdXBwb3J0IE1lZGlhRG9jdW1lbnQgd2hlbiBidWls
ZGluZyB3aXRoIFBMVUdJTl9QUk9YWV9GT1JfVklERU8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb25maWd1cmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDEw
NTFhOTM0OTZkNmJkMGJlNWM2NDA5NDZiNjMzOTBlM2I3MmIzOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5oCkBA
IC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAq
ICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ0NvbmZpZ3VyYXRpb25faAorI2RlZmlu
ZSBSVENDb25maWd1cmF0aW9uX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNs
dWRlICJSVENDb25maWd1cmF0aW9uUHJpdmF0ZS5oIgorI2luY2x1ZGUgIlJUQ0ljZVNlcnZlci5o
IgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRDQ29uZmlndXJhdGlvbiA6IHB1
YmxpYyBSZWZDb3VudGVkPFJUQ0NvbmZpZ3VyYXRpb24+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgUlRDQ29uZmlndXJhdGlvbigpKTsgfQorICAgIHZpcnR1YWwgflJUQ0NvbmZpZ3VyYXRpb24o
KSB7IH0KKworICAgIHZvaWQgYXBwZW5kU2VydmVyKFBhc3NSZWZQdHI8UlRDSWNlU2VydmVyPiBz
ZXJ2ZXIpIHsgbV9wcml2YXRlLT5hcHBlbmRTZXJ2ZXIoc2VydmVyLT5wcml2YXRlU2VydmVyKCkp
OyB9CisgICAgc2l6ZV90IG51bWJlck9mU2VydmVycygpIHsgcmV0dXJuIG1fcHJpdmF0ZS0+bnVt
YmVyT2ZTZXJ2ZXJzKCk7IH0KKyAgICBQYXNzUmVmUHRyPFJUQ0ljZVNlcnZlcj4gc2VydmVyKHNp
emVfdCBpbmRleCkKKyAgICB7CisgICAgICAgIFJUQ0ljZVNlcnZlclByaXZhdGUqIHNlcnZlciA9
IG1fcHJpdmF0ZS0+c2VydmVyKGluZGV4KTsKKyAgICAgICAgaWYgKCFzZXJ2ZXIpCisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAgICByZXR1cm4gUlRDSWNlU2VydmVyOjpjcmVh
dGUoc2VydmVyKTsKKyAgICB9CisKKyAgICBjb25zdCBTdHJpbmcmIGljZVRyYW5zcG9ydHMoKSBj
b25zdCB7IHJldHVybiBtX3ByaXZhdGUtPmljZVRyYW5zcG9ydHMoKTsgfQorICAgIHZvaWQgc2V0
SWNlVHJhbnNwb3J0cyhjb25zdCBTdHJpbmcmIGljZVRyYW5zcG9ydHMpIHsgbV9wcml2YXRlLT5z
ZXRJY2VUcmFuc3BvcnRzKGljZVRyYW5zcG9ydHMpOyB9CisKKyAgICBjb25zdCBTdHJpbmcmIHJl
cXVlc3RJZGVudGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS0+cmVxdWVzdElkZW50aXR5
KCk7IH0KKyAgICB2b2lkIHNldFJlcXVlc3RJZGVudGl0eShjb25zdCBTdHJpbmcmIHJlcXVlc3RJ
ZGVudGl0eSkgeyBtX3ByaXZhdGUtPnNldFJlcXVlc3RJZGVudGl0eShyZXF1ZXN0SWRlbnRpdHkp
OyB9CisKKyAgICBWZWN0b3I8UmVmUHRyPFJUQ0ljZVNlcnZlcj4+IGljZVNlcnZlcnMoKSBjb25z
dAorICAgIHsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxSVENJY2VTZXJ2ZXI+PiBzZXJ2ZXJzOwor
ICAgICAgICBWZWN0b3I8UmVmUHRyPFJUQ0ljZVNlcnZlclByaXZhdGU+PiBwcml2YXRlU2VydmVy
cyA9IG1fcHJpdmF0ZS0+aWNlU2VydmVycygpOworCisgICAgICAgIGZvciAoYXV0byBpdGVyID0g
cHJpdmF0ZVNlcnZlcnMuYmVnaW4oKTsgaXRlciAhPSBwcml2YXRlU2VydmVycy5lbmQoKTsgKytp
dGVyKQorICAgICAgICAgICAgc2VydmVycy5hcHBlbmQoUlRDSWNlU2VydmVyOjpjcmVhdGUoKml0
ZXIpKTsKKworICAgICAgICByZXR1cm4gc2VydmVyczsKKyAgICB9CisKKyAgICBSVENDb25maWd1
cmF0aW9uUHJpdmF0ZSogcHJpdmF0ZUNvbmZpZ3VyYXRpb24oKSB7IHJldHVybiBtX3ByaXZhdGUu
Z2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBSVENDb25maWd1cmF0aW9uKCkKKyAgICAgICAgOiBt
X3ByaXZhdGUoUlRDQ29uZmlndXJhdGlvblByaXZhdGU6OmNyZWF0ZSgpKQorICAgIHsKKyAgICB9
CisKKyAgICBSZWZQdHI8UlRDQ29uZmlndXJhdGlvblByaXZhdGU+IG1fcHJpdmF0ZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKKyNlbmRpZiAvLyBSVENDb25maWd1cmF0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZVNlcnZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjYTI1OGZiNDYy
NzIyMmRhZjM3Mzg5YTgzZWExNzk0ZjRhMjY5ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZVNlcnZlci5oCkBAIC0wLDAgKzEsNzYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBSVENJY2VTZXJ2ZXJfaAorI2RlZmluZSBSVENJY2VTZXJ2ZXJfaAorCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlJUQ0ljZVNlcnZlclByaXZhdGUuaCIKKyNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ0ljZVNlcnZlciA6IHB1YmxpYyBSZWZDb3VudGVk
PFJUQ0ljZVNlcnZlcj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ0ljZVNl
cnZlcj4gY3JlYXRlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB1cmxzLCBjb25zdCBTdHJpbmcmIGNy
ZWRlbnRpYWwsIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFJUQ0ljZVNlcnZlcih1cmxzLCBjcmVkZW50aWFsLCB1c2VybmFtZSkpOwor
ICAgIH0KKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ0ljZVNlcnZlcj4gY3JlYXRlKFBhc3NS
ZWZQdHI8UlRDSWNlU2VydmVyUHJpdmF0ZT4gc2VydmVyKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBSVENJY2VTZXJ2ZXIoc2VydmVyKSk7CisgICAgfQorCisgICAgdmlydHVh
bCB+UlRDSWNlU2VydmVyKCkgeyB9CisKKyAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscygp
IHsgcmV0dXJuIG1fcHJpdmF0ZS0+dXJscygpOyB9CisgICAgY29uc3QgU3RyaW5nJiBjcmVkZW50
aWFsKCkgeyByZXR1cm4gbV9wcml2YXRlLT5jcmVkZW50aWFsKCk7IH0KKyAgICBjb25zdCBTdHJp
bmcmIHVzZXJuYW1lKCkgeyByZXR1cm4gbV9wcml2YXRlLT51c2VybmFtZSgpOyB9CisgICAgUlRD
SWNlU2VydmVyUHJpdmF0ZSogcHJpdmF0ZVNlcnZlcigpIHsgcmV0dXJuIG1fcHJpdmF0ZS5nZXQo
KTsgfQorCitwcml2YXRlOgorICAgIFJUQ0ljZVNlcnZlcihjb25zdCBWZWN0b3I8U3RyaW5nPiYg
dXJscywgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsLCBjb25zdCBTdHJpbmcmIHVzZXJuYW1lKQor
ICAgICAgICA6IG1fcHJpdmF0ZShSVENJY2VTZXJ2ZXJQcml2YXRlOjpjcmVhdGUodXJscywgY3Jl
ZGVudGlhbCwgdXNlcm5hbWUpKQorICAgIHsKKyAgICB9CisKKyAgICBSVENJY2VTZXJ2ZXIoUGFz
c1JlZlB0cjxSVENJY2VTZXJ2ZXJQcml2YXRlPiBzZXJ2ZXIpCisgICAgICAgIDogbV9wcml2YXRl
KHNlcnZlcikKKyAgICB7CisgICAgfQorCisgICAgUmVmUHRyPFJUQ0ljZVNlcnZlclByaXZhdGU+
IG1fcHJpdmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBSVENJY2VTZXJ2ZXJfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LmNwcAppbmRleCAzZmY2Y2U3MTk3N2NmYzQwNTQxOGQ4ZDk1MDM1M2E3OGJiYjA2MTVkLi40YzJj
NjUxZjIzNWQ3ZjAzYjVmNDIxOTIzODQ5M2Q0ZGJkZDlhYWE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApA
QCAtMTkzLDcgKzE5Myw3IEBAIFJUQ1BlZXJDb25uZWN0aW9uOjpSVENQZWVyQ29ubmVjdGlvbihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBQYXNzUmVmUHRyCiAKICAgICBkb2N1bWVu
dC5mcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5kaXNwYXRjaFdpbGxTdGFydFVzaW5nUGVlckNv
bm5lY3Rpb25IYW5kbGVyKG1fcGVlckhhbmRsZXIuZ2V0KCkpOwogCi0gICAgaWYgKCFtX3BlZXJI
YW5kbGVyLT5pbml0aWFsaXplKG1fY29uZmlndXJhdGlvbikpIHsKKyAgICBpZiAoIW1fcGVlckhh
bmRsZXItPmluaXRpYWxpemUobV9jb25maWd1cmF0aW9uLT5wcml2YXRlQ29uZmlndXJhdGlvbigp
KSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMzY2LDcgKzM2Niw3IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnVwZGF0ZUlj
ZShjb25zdCBEaWN0aW9uYXJ5JiBydGNDb25maWd1cmF0aW9uLCBFeGNlcHRpb25DCiAgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm47CiAKLSAgICBib29sIHZhbGlkID0gbV9wZWVySGFuZGxlci0+
dXBkYXRlSWNlKG1fY29uZmlndXJhdGlvbik7CisgICAgYm9vbCB2YWxpZCA9IG1fcGVlckhhbmRs
ZXItPnVwZGF0ZUljZShtX2NvbmZpZ3VyYXRpb24tPnByaXZhdGVDb25maWd1cmF0aW9uKCkpOwog
ICAgIGlmICghdmFsaWQpCiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxYjY5MTc0
Y2U0YzdlZjZmMzc1ZDkzNGQxYWRhZmMzOWQ0MDY3NjU0Li5kOGNlYzcyNmY0NDRmMTY5YzIyODNm
YmI3NmVjNDUyNTc5ZmY2NTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTksNyArMjU5LDYgQEAKIAkJMDc4RTA5MzgxN0Qx
NkIyQzAwNDIwQUExIC8qIE1lZGlhU3RyZWFtU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzIyMUI5RjE3Q0YwQUQ0MDA4NDhFNTEgLyogTWVk
aWFTdHJlYW1Tb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwNzhFMDkzOTE3RDE2QjJDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1DcmVhdGlv
bkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDcyMjFCQTAxN0NGMEFENDAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzhFMDkz
QTE3RDE2RTFDMDA0MjBBQTEgLyogTWVkaWFDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCOTkxN0NGMEFENDAwODQ4RTUxIC8q
IE1lZGlhQ29uc3RyYWludHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQkwNzhFMDkzQjE3RDE2RTFDMDA0MjBBQTEgLyogUlRDQ29uZmlndXJhdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFC
QTExN0NGMEFENDAwODQ4RTUxIC8qIFJUQ0NvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzhFMDkzQzE3RDE2RTFDMDA0MjBB
QTEgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNzIyMUJBMjE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDRGF0YUNo
YW5uZWxIYW5kbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMDc4RTA5M0QxN0QxNkUxQzAwNDIwQUExIC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxl
ckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDcyMjFCQTMxN0NGMEFENDAwODQ4RTUxIC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3OEUw
OTNFMTdEMTZFMUMwMDQyMEFBMSAvKiBSVENEVE1GU2VuZGVySGFuZGxlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCQTQxN0NGMEFENDAwODQ4
RTUxIC8qIFJUQ0RUTUZTZW5kZXJIYW5kbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTMxMCw2ICszMDksMTAgQEAKIAkJMDdBNkQxRUMxNDkx
MTM3NzAwMDUxRDBDIC8qIE1lZGlhRnJhZ21lbnRVUklQYXJzZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QTZEMUVBMTQ5MTEzNzcwMDA1MUQwQyAv
KiBNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmggKi87IH07CiAJCTA3QUE2QjZCMTY2RDJDMDcwMEQ0
NTY3MSAvKiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QUE2QjZBMTY2RDAxOTUwMEQ0NTY3MSAv
KiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQy5tbSAqLzsgfTsKIAkJMDdBQTZCNkMxNjZE
MkMxMzAwRDQ1NjcxIC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpDLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0FBNkI2OTE2NkQwMTk1MDBE
NDU2NzEgLyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRk9iakMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwN0FCOTk2OTE4REEzQzAxMDAxODc3
MUUgLyogUlRDQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDdBQjk5NjUxOERBM0MwMTAwMTg3NzFFIC8qIFJUQ0NvbmZpZ3VyYXRp
b24uaCAqLzsgfTsKKwkJMDdBQjk5NkIxOERBM0MwMTAwMTg3NzFFIC8qIFJUQ0ljZVNlcnZlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdBQjk5Njcx
OERBM0MwMTAwMTg3NzFFIC8qIFJUQ0ljZVNlcnZlci5oICovOyB9OworCQkwN0FCOTk2RjE4REEz
Qzc0MDAxODc3MUUgLyogUlRDQ29uZmlndXJhdGlvblByaXZhdGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QUI5OTZEMThEQTNDNzQwMDE4NzcxRSAv
KiBSVENDb25maWd1cmF0aW9uUHJpdmF0ZS5oICovOyB9OworCQkwN0FCOTk3MDE4REEzQzc0MDAx
ODc3MUUgLyogUlRDSWNlU2VydmVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDdBQjk5NkUxOERBM0M3NDAwMTg3NzFFIC8qIFJUQ0ljZVNl
cnZlclByaXZhdGUuaCAqLzsgfTsKIAkJMDdCMDExM0YxMDMyMjQyMjAwRkJEQzMzIC8qIEFjY2Vz
c2liaWxpdHlNZWRpYUNvbnRyb2xzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwN0IwMTEzRTEwMzIyNDIyMDBGQkRDMzMgLyogQWNjZXNzaWJpbGl0eU1l
ZGlhQ29udHJvbHMuaCAqLzsgfTsKIAkJMDdCNDQyRDYxNjZDNzBCMDAwNTU2Q0FEIC8qIEluYmFu
ZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDdCNDQyRDQxNjZDNzBCMDAwNTU2Q0FEIC8qIEluYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkYuY3BwICovOyB9OwogCQkwN0I0NDJENzE2NkM3MEIwMDA1NTZDQUQgLyogSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDdCNDQyRDUxNjZDNzBCMDAwNTU2Q0FEIC8qIEluYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtNjk1OSw3ICs2OTYyLDYgQEAKIAkJMDcyMjFCOUUxN0NGMEFENDAwODQ4RTUxIC8q
IE1lZGlhU3RyZWFtU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1lZGlhU3RyZWFtU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDcyMjFCOUYxN0NGMEFENDAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtU291cmNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyZWFtU291cmNlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQkEwMTdDRjBBRDQwMDg0OEU1MSAvKiBNZWRpYVN0cmVh
bUNyZWF0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
U3RyZWFtQ3JlYXRpb25DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcy
MjFCQTExN0NGMEFENDAwODQ4RTUxIC8qIFJUQ0NvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzIyMUJBMjE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWxI
YW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0RhdGFDaGFubmVs
SGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzIyMUJBMzE3Q0YwQUQ0
MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwNzIyMUJBNDE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDRFRN
RlNlbmRlckhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDRFRN
RlNlbmRlckhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcwODYsNiAr
NzA4OCwxMiBAQAogCQkwN0E2RDFFQTE0OTExMzc3MDAwNTFEMEMgLyogTWVkaWFGcmFnbWVudFVS
SVBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUZyYWdtZW50
VVJJUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QUE2QjY5MTY2RDAx
OTUwMEQ0NTY3MSAvKiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQy5oOyBw
YXRoID0gb2JqYy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwN0FBNkI2QTE2NkQwMTk1MDBENDU2NzEgLyogSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUFWRk9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5h
bWUgPSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQy5tbTsgcGF0aCA9IG9iamMvSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRk9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTA3QUI5OTY1MThEQTNDMDEwMDE4NzcxRSAvKiBSVENDb25maWd1cmF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0NvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMDdBQjk5NjYxOERBM0MwMTAwMTg3NzFFIC8qIFJUQ0NvbmZpZ3Vy
YXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ0NvbmZpZ3VyYXRpb24uaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0FCOTk2NzE4REEzQzAxMDAxODc3MUUgLyog
UlRDSWNlU2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0ljZVNl
cnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0FCOTk2ODE4REEzQzAxMDAx
ODc3MUUgLyogUlRDSWNlU2VydmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENJY2VT
ZXJ2ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0FCOTk2RDE4REEzQzc0
MDAxODc3MUUgLyogUlRDQ29uZmlndXJhdGlvblByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUlRDQ29uZmlndXJhdGlvblByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMDdBQjk5NkUxOERBM0M3NDAwMTg3NzFFIC8qIFJUQ0ljZVNlcnZlclBy
aXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDSWNlU2VydmVyUHJp
dmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0IwMTEzRTEwMzIyNDIyMDBG
QkRDMzMgLyogQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDdCNDQyRDQxNjZDNzBCMDAwNTU2Q0FEIC8qIEluYmFuZFRleHRU
cmFja1ByaXZhdGVBVkYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3QjQ0MkQ1MTY2QzcwQjAwMDU1NkNBRCAvKiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZG
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluYmFuZFRleHRUcmFja1ByaXZh
dGVBVkYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDk0LDYgKzE0MTAyLDgg
QEAKIAkJCQkwNzIyMUI2MDE3Q0VDMzI3MDA4NDhFNTEgLyogTmF2aWdhdG9yVXNlck1lZGlhRXJy
b3JDYWxsYmFjay5pZGwgKi8sCiAJCQkJMDcyMjFCNjExN0NFQzMyNzAwODQ4RTUxIC8qIE5hdmln
YXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5oICovLAogCQkJCTA3MjIxQjYyMTdDRUMzMjcw
MDg0OEU1MSAvKiBOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaWRsICovLAorCQkJ
CTA3QUI5OTY1MThEQTNDMDEwMDE4NzcxRSAvKiBSVENDb25maWd1cmF0aW9uLmggKi8sCisJCQkJ
MDdBQjk5NjYxOERBM0MwMTAwMTg3NzFFIC8qIFJUQ0NvbmZpZ3VyYXRpb24uaWRsICovLAogCQkJ
CTA3MjIxQjYzMTdDRUMzMjcwMDg0OEU1MSAvKiBSVENEYXRhQ2hhbm5lbC5jcHAgKi8sCiAJCQkJ
MDcyMjFCNjQxN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ0RhdGFDaGFubmVsLmggKi8sCiAJCQkJMDcy
MjFCNjUxN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ0RhdGFDaGFubmVsLmlkbCAqLywKQEAgLTE0MTEy
LDYgKzE0MTIyLDggQEAKIAkJCQkwNzIyMUI3NDE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDSWNlQ2Fu
ZGlkYXRlRXZlbnQuY3BwICovLAogCQkJCTA3MjIxQjc1MTdDRUMzMjcwMDg0OEU1MSAvKiBSVENJ
Y2VDYW5kaWRhdGVFdmVudC5oICovLAogCQkJCTA3MjIxQjc2MTdDRUMzMjcwMDg0OEU1MSAvKiBS
VENJY2VDYW5kaWRhdGVFdmVudC5pZGwgKi8sCisJCQkJMDdBQjk5NjcxOERBM0MwMTAwMTg3NzFF
IC8qIFJUQ0ljZVNlcnZlci5oICovLAorCQkJCTA3QUI5OTY4MThEQTNDMDEwMDE4NzcxRSAvKiBS
VENJY2VTZXJ2ZXIuaWRsICovLAogCQkJCTA3MjIxQjc3MTdDRUMzMjcwMDg0OEU1MSAvKiBSVENQ
ZWVyQ29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJMDcyMjFCNzgxN0NFQzMyNzAwODQ4RTUxIC8qIFJU
Q1BlZXJDb25uZWN0aW9uLmggKi8sCiAJCQkJMDcyMjFCNzkxN0NFQzMyNzAwODQ4RTUxIC8qIFJU
Q1BlZXJDb25uZWN0aW9uLmlkbCAqLywKQEAgLTE0MTcwLDEzICsxNDE4MiwxNCBAQAogCQkJCTA3
RkZERTY2MTgxQUVENDIwMDcyRDQwOSAvKiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAgKi8s
CiAJCQkJMDdGRkRFNjcxODFBRUQ0MjAwNzJENDA5IC8qIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
LmggKi8sCiAJCQkJMDc2MzA2RTIxN0UyMkE0MzAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzUmVxdWVzdENsaWVudC5oICovLAotCQkJCTA3MjIxQkExMTdDRjBBRDQwMDg0OEU1MSAv
KiBSVENDb25maWd1cmF0aW9uLmggKi8sCisJCQkJMDdBQjk5NkQxOERBM0M3NDAwMTg3NzFFIC8q
IFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlLmggKi8sCiAJCQkJMDcyMjFCQTIxN0NGMEFENDAwODQ4
RTUxIC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlci5oICovLAogCQkJCTA3MjIxQkEzMTdDRjBBRDQw
MDg0OEU1MSAvKiBSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQuaCAqLywKIAkJCQkwNzIyMUJB
NDE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDRFRNRlNlbmRlckhhbmRsZXIuaCAqLywKIAkJCQkwNzIy
MUJBNTE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDRFRNRlNlbmRlckhhbmRsZXJDbGllbnQuaCAqLywK
IAkJCQkwNzIyMUJBNjE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRv
ci5jcHAgKi8sCiAJCQkJMDcyMjFCQTcxN0NGMEFENDAwODQ4RTUxIC8qIFJUQ0ljZUNhbmRpZGF0
ZURlc2NyaXB0b3IuaCAqLywKKwkJCQkwN0FCOTk2RTE4REEzQzc0MDAxODc3MUUgLyogUlRDSWNl
U2VydmVyUHJpdmF0ZS5oICovLAogCQkJCTA3MjIxQkE4MTdDRjBBRDQwMDg0OEU1MSAvKiBSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwICovLAogCQkJCTA3MjIxQkE5MTdDRjBBRDQwMDg0OEU1
MSAvKiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCAqLywKIAkJCQkwNzIyMUJBQTE3Q0YwQUQ0
MDA4NDhFNTEgLyogUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LmggKi8sCkBAIC0yMzUx
OSw2ICsyMzUzMiw3IEBACiAJCQkJODVFNzExRDQwQUM1RDUzNTAwNTMyNzBGIC8qIERPTU5vdGF0
aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1NkM4QUU0MEE5MTI2NDkwMDVDNjg3
QiAvKiBET01PYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTNEQTYwMTE0MzE0MUEwMDBE
ODE3RSAvKiBET01PYmplY3RIYXNoVGFibGVNYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3QUI5
OTcwMThEQTNDNzQwMDE4NzcxRSAvKiBSVENJY2VTZXJ2ZXJQcml2YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NUM3RjVEMDBBQUZCOEQ5MDA0MDE0REQgLyogRE9NT3ZlcmZsb3dFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODU5ODlEQ0YwQUNDOEJCRDAwQTBCQzUxIC8qIERPTU92ZXJmbG93
RXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyODRCRDYxMDQ0QTAxRTAwRUFF
QjUyIC8qIERPTVBhZ2VUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUxMjAs
NiArMjUxMzQsNyBAQAogCQkJCTQzOTA0NkQ4MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRo
TUxCbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM5MDQ2REExMkRBMjVFODAwQUY4MEEyIC8q
IFJlbmRlck1hdGhNTEZlbmNlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM5MDQ2REMxMkRBMjVF
ODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZyYWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
N0FCOTk2RjE4REEzQzc0MDAxODc3MUUgLyogUlRDQ29uZmlndXJhdGlvblByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQzOTA0NkRFMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxN
YXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzkwNDZFMDEyREEyNUU4MDBBRjgwQTIgLyogUmVu
ZGVyTWF0aE1MT3BlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzOTA0NkUyMTJEQTI1RTgw
MEFGODBBMiAvKiBSZW5kZXJNYXRoTUxSb290LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MjQ5LDcg
KzI1MjY0LDYgQEAKIAkJCQlBOENGRjVFMTBBMTU1QTA1MDAwQTQyMzQgLyogUm9vdElubGluZUJv
eC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlFOTExQzkwRUY4NkQ0NzAwOUQwQ0FGIC8qIFJvdGF0
ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTczRjk1RkYxMkM5N0JG
RTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwNzhFMDkzQjE3
RDE2RTFDMDA0MjBBQTEgLyogUlRDQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDc4RTA5MUUxN0QxNEQxQzAwNDIwQUExIC8qIFJUQ0RhdGFDaGFubmVsLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwNzhFMDkxRjE3RDE0RDFDMDA0MjBBQTEgLyogUlRDRGF0YUNoYW5uZWxFdmVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5M0MxN0QxNkUxQzAwNDIwQUExIC8qIFJUQ0RhdGFD
aGFubmVsSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTI5OSw2ICsyNTMxMyw3IEBACiAJ
CQkJMDhBNDg0NzgwRTUyNzJDNTAwQzNGRTc2IC8qIFNjcmlwdEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxMUM5RDlCMEVCMzY4MTIwMEU0MDlEQiAvKiBTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUYwNjZFNDBGNjRCQ0Y2MDBBMDdFQUMgLyogU2Ny
aXB0R2xvYmFsT2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwN0FCOTk2QjE4REEzQzAxMDAx
ODc3MUUgLyogUlRDSWNlU2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5RjNCOTQ3RTEyMjQx
NzU4MDA1MzA0RTcgLyogU2NyaXB0SGVhcFNuYXBzaG90LmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RDMxNjAzNjEyQjAyNjc2MDBDMUEzNTkgLyogU2NyaXB0UHJvY2Vzc29yTm9kZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOUY3MjMwNEYxMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGUuaCBp
biBIZWFkZXJzICovLApAQCAtMjU5NDMsNiArMjU5NTgsNyBAQAogCQkJCTNGRkZGOUFFMTU5RDlC
MDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg2NzhEMEJCMTg3OEU4OTEwMDNBQkRFNiAvKiBWaWV3U3RhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzMzA5RTIwMDk5RTY0OTIwMDU2RTU4MSAvKiBWaXNpYmxlUG9zaXRpb24uaCBpbiBIZWFk
ZXJzICovLAorCQkJCTA3QUI5OTY5MThEQTNDMDEwMDE4NzcxRSAvKiBSVENDb25maWd1cmF0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODgzREYyODBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJs
ZVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMUUwOTlFNjQ5MjAwNTZFNTgx
IC8qIFZpc2libGVVbml0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QkMyREYxNjg1MzI5OTAw
RDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5oCmlu
ZGV4IDcwOWJlMTdhNTFjY2ZkN2ViNzIxNTViOGM0ZDdhZjM0ZjEyN2ZmYWMuLmU2OWRlMjliYjJk
MWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENDb25maWd1cmF0aW9uLmgKQEAgLTEsODUgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiAg
ICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0gKiAgICBkaXN0cmlidXRpb24uCi0gKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwotICogICAgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCi0g
KiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgUlRDQ29uZmlndXJhdGlvbl9oCi0jZGVmaW5lIFJUQ0NvbmZp
Z3VyYXRpb25faAotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIlJUQ0lj
ZVNlcnZlci5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUlRDQ29uZmlndXJh
dGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ0NvbmZpZ3VyYXRpb24+IHsKLXB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPiBjcmVhdGUoKSB7IHJldHVybiBh
ZG9wdFJlZihuZXcgUlRDQ29uZmlndXJhdGlvbigpKTsgfQotICAgIHZpcnR1YWwgflJUQ0NvbmZp
Z3VyYXRpb24oKSB7IH0KLQotICAgIHZvaWQgYXBwZW5kU2VydmVyKFBhc3NSZWZQdHI8UlRDSWNl
U2VydmVyPiBzZXJ2ZXIpIHsgbV9zZXJ2ZXJzLmFwcGVuZChzZXJ2ZXIpOyB9Ci0gICAgc2l6ZV90
IG51bWJlck9mU2VydmVycygpIHsgcmV0dXJuIG1fc2VydmVycy5zaXplKCk7IH0KLSAgICBSVENJ
Y2VTZXJ2ZXIqIHNlcnZlcihzaXplX3QgaW5kZXgpIHsgcmV0dXJuIG1fc2VydmVyc1tpbmRleF0u
Z2V0KCk7IH0KLQotICAgIGNvbnN0IFN0cmluZyYgaWNlVHJhbnNwb3J0cygpIGNvbnN0IHsgcmV0
dXJuIG1faWNlVHJhbnNwb3J0czsgfQotICAgIHZvaWQgc2V0SWNlVHJhbnNwb3J0cyhjb25zdCBT
dHJpbmcmIGljZVRyYW5zcG9ydHMpCi0gICAgewotICAgICAgICBpZiAoaWNlVHJhbnNwb3J0cyA9
PSAibm9uZSIgfHwgaWNlVHJhbnNwb3J0cyA9PSAicmVsYXkiIHx8IGljZVRyYW5zcG9ydHMgPT0g
ImFsbCIpCi0gICAgICAgICAgICBtX2ljZVRyYW5zcG9ydHMgPSBpY2VUcmFuc3BvcnRzOwotICAg
IH0KLQotICAgIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkZW50aXR5KCkgY29uc3QgeyByZXR1cm4g
bV9yZXF1ZXN0SWRlbnRpdHk7IH0KLSAgICB2b2lkIHNldFJlcXVlc3RJZGVudGl0eShjb25zdCBT
dHJpbmcmIHJlcXVlc3RJZGVudGl0eSkKLSAgICB7Ci0gICAgICAgIGlmIChyZXF1ZXN0SWRlbnRp
dHkgPT0gInllcyIgfHwgcmVxdWVzdElkZW50aXR5ID09ICJubyIgfHwgcmVxdWVzdElkZW50aXR5
ID09ICJpZmNvbmZpZ3VyZWQiKQotICAgICAgICAgICAgbV9yZXF1ZXN0SWRlbnRpdHkgPSByZXF1
ZXN0SWRlbnRpdHk7Ci0gICAgfQotCi0gICAgVmVjdG9yPFJlZlB0cjxSVENJY2VTZXJ2ZXI+PiBp
Y2VTZXJ2ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2ZXJzOyB9Ci0KLSBwcml2YXRlOgotICAg
IFJUQ0NvbmZpZ3VyYXRpb24oKQotICAgICAgICA6IG1faWNlVHJhbnNwb3J0cygiYWxsIikKLSAg
ICAgICAgLCBtX3JlcXVlc3RJZGVudGl0eSgiaWZjb25maWd1cmVkIikKLSAgICB7Ci0gICAgfQot
Ci0gICAgVmVjdG9yPFJlZlB0cjxSVENJY2VTZXJ2ZXI+PiBtX3NlcnZlcnM7Ci0gICAgU3RyaW5n
IG1faWNlVHJhbnNwb3J0czsKLSAgICBTdHJpbmcgbV9yZXF1ZXN0SWRlbnRpdHk7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQot
Ci0jZW5kaWYgLy8gUlRDQ29uZmlndXJhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENDb25maWd1cmF0aW9uUHJpdmF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvblByaXZhdGUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44YTEzNTRjODQzYTZlMGNlNmQwZWE5OTM3NmU3OTgxNTRlZTNkOTZmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDQ29u
ZmlndXJhdGlvblByaXZhdGUuaApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENDb25maWd1cmF0aW9uUHJpdmF0
ZV9oCisjZGVmaW5lIFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlX2gKKworI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbmNsdWRlICJSVENJY2VTZXJ2ZXJQcml2YXRlLmgiCisjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENDb25maWd1cmF0aW9uUHJpdmF0ZSA6IHB1YmxpYyBS
ZWZDb3VudGVkPFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlPiB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvblByaXZhdGU+IGNyZWF0ZSgpIHsgcmV0dXJuIGFk
b3B0UmVmKG5ldyBSVENDb25maWd1cmF0aW9uUHJpdmF0ZSgpKTsgfQorICAgIHZpcnR1YWwgflJU
Q0NvbmZpZ3VyYXRpb25Qcml2YXRlKCkgeyB9CisKKyAgICB2b2lkIGFwcGVuZFNlcnZlcihQYXNz
UmVmUHRyPFJUQ0ljZVNlcnZlclByaXZhdGU+IHNlcnZlcikgeyBtX3ByaXZhdGVTZXJ2ZXJzLmFw
cGVuZChzZXJ2ZXIpOyB9CisgICAgc2l6ZV90IG51bWJlck9mU2VydmVycygpIHsgcmV0dXJuIG1f
cHJpdmF0ZVNlcnZlcnMuc2l6ZSgpOyB9CisgICAgUlRDSWNlU2VydmVyUHJpdmF0ZSogc2VydmVy
KHNpemVfdCBpbmRleCkgeyByZXR1cm4gbV9wcml2YXRlU2VydmVyc1tpbmRleF0uZ2V0KCk7IH0K
KworICAgIGNvbnN0IFN0cmluZyYgaWNlVHJhbnNwb3J0cygpIGNvbnN0IHsgcmV0dXJuIG1faWNl
VHJhbnNwb3J0czsgfQorICAgIHZvaWQgc2V0SWNlVHJhbnNwb3J0cyhjb25zdCBTdHJpbmcmIGlj
ZVRyYW5zcG9ydHMpCisgICAgeworICAgICAgICBpZiAoaWNlVHJhbnNwb3J0cyA9PSAibm9uZSIg
fHwgaWNlVHJhbnNwb3J0cyA9PSAicmVsYXkiIHx8IGljZVRyYW5zcG9ydHMgPT0gImFsbCIpCisg
ICAgICAgICAgICBtX2ljZVRyYW5zcG9ydHMgPSBpY2VUcmFuc3BvcnRzOworICAgIH0KKworICAg
IGNvbnN0IFN0cmluZyYgcmVxdWVzdElkZW50aXR5KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0
SWRlbnRpdHk7IH0KKyAgICB2b2lkIHNldFJlcXVlc3RJZGVudGl0eShjb25zdCBTdHJpbmcmIHJl
cXVlc3RJZGVudGl0eSkKKyAgICB7CisgICAgICAgIGlmIChyZXF1ZXN0SWRlbnRpdHkgPT0gInll
cyIgfHwgcmVxdWVzdElkZW50aXR5ID09ICJubyIgfHwgcmVxdWVzdElkZW50aXR5ID09ICJpZmNv
bmZpZ3VyZWQiKQorICAgICAgICAgICAgbV9yZXF1ZXN0SWRlbnRpdHkgPSByZXF1ZXN0SWRlbnRp
dHk7CisgICAgfQorCisgICAgVmVjdG9yPFJlZlB0cjxSVENJY2VTZXJ2ZXJQcml2YXRlPj4gaWNl
U2VydmVycygpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZVNlcnZlcnM7IH0KKworcHJpdmF0ZToK
KyAgICBSVENDb25maWd1cmF0aW9uUHJpdmF0ZSgpCisgICAgICAgIDogbV9pY2VUcmFuc3BvcnRz
KCJhbGwiKQorICAgICAgICAsIG1fcmVxdWVzdElkZW50aXR5KCJpZmNvbmZpZ3VyZWQiKQorICAg
IHsKKyAgICB9CisKKyAgICBWZWN0b3I8UmVmUHRyPFJUQ0ljZVNlcnZlclByaXZhdGU+PiBtX3By
aXZhdGVTZXJ2ZXJzOworICAgIFN0cmluZyBtX2ljZVRyYW5zcG9ydHM7CisgICAgU3RyaW5nIG1f
cmVxdWVzdElkZW50aXR5OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFJUQ0NvbmZpZ3VyYXRpb25Qcml2
YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JU
Q0ljZVNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNl
U2VydmVyLmgKaW5kZXggYThmNDc1ZGQ4ZjExMjIzOTk5MTc3MzI0ZDliMDljNzU5YTZkMWFjNi4u
ZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlU2VydmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlU2VydmVyLmgKQEAgLTEsNjcg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0j
aWZuZGVmIFJUQ0ljZVNlcnZlcl9oCi0jZGVmaW5lIFJUQ0ljZVNlcnZlcl9oCi0KLSNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSVENJ
Y2VTZXJ2ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENJY2VTZXJ2ZXI+IHsKLXB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxSVENJY2VTZXJ2ZXI+IGNyZWF0ZShjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgdXJscywgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsLCBjb25zdCBTdHJpbmcmIHVzZXJu
YW1lKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSVENJY2VTZXJ2ZXIodXJs
cywgY3JlZGVudGlhbCwgdXNlcm5hbWUpKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+UlRDSWNlU2Vy
dmVyKCkgeyB9Ci0KLSAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscygpIHsgcmV0dXJuIG1f
dXJsczsgfQotICAgIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbCgpIHsgcmV0dXJuIG1fY3JlZGVu
dGlhbDsgfQotICAgIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUoKSB7IHJldHVybiBtX3VzZXJuYW1l
OyB9Ci0KLXByaXZhdGU6Ci0gICAgUlRDSWNlU2VydmVyKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB1
cmxzLCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWwsIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUpCi0g
ICAgICAgIDogbV91cmxzKHVybHMpCi0gICAgICAgICwgbV9jcmVkZW50aWFsKGNyZWRlbnRpYWwp
Ci0gICAgICAgICwgbV91c2VybmFtZSh1c2VybmFtZSkKLSAgICB7Ci0gICAgfQotCi0gICAgVmVj
dG9yPFN0cmluZz4gbV91cmxzOwotICAgIFN0cmluZyBtX2NyZWRlbnRpYWw7Ci0gICAgU3RyaW5n
IG1fdXNlcm5hbWU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gUlRDSWNlU2VydmVyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0ljZVNlcnZlclByaXZh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0ljZVNlcnZlclBy
aXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45YmQ4MDE5YjA5Y2I4MDkyMmVmNzRhNjdlZmZjYjQyZDVhYTAz
ODA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDSWNlU2VydmVyUHJpdmF0ZS5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSVENJY2VTZXJ2ZXJQcml2
YXRlX2gKKyNkZWZpbmUgUlRDSWNlU2VydmVyUHJpdmF0ZV9oCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENJY2VTZXJ2ZXJQ
cml2YXRlIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDSWNlU2VydmVyUHJpdmF0ZT4geworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ0ljZVNlcnZlclByaXZhdGU+IGNyZWF0ZShjb25z
dCBWZWN0b3I8U3RyaW5nPiYgdXJscywgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsLCBjb25zdCBT
dHJpbmcmIHVzZXJuYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSVENJ
Y2VTZXJ2ZXJQcml2YXRlKHVybHMsIGNyZWRlbnRpYWwsIHVzZXJuYW1lKSk7CisgICAgfQorICAg
IHZpcnR1YWwgflJUQ0ljZVNlcnZlclByaXZhdGUoKSB7IH0KKworICAgIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiB1cmxzKCkgeyByZXR1cm4gbV91cmxzOyB9CisgICAgY29uc3QgU3RyaW5nJiBjcmVk
ZW50aWFsKCkgeyByZXR1cm4gbV9jcmVkZW50aWFsOyB9CisgICAgY29uc3QgU3RyaW5nJiB1c2Vy
bmFtZSgpIHsgcmV0dXJuIG1fdXNlcm5hbWU7IH0KKworcHJpdmF0ZToKKyAgICBSVENJY2VTZXJ2
ZXJQcml2YXRlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB1cmxzLCBjb25zdCBTdHJpbmcmIGNyZWRl
bnRpYWwsIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUpCisgICAgICAgIDogbV91cmxzKHVybHMpCisg
ICAgICAgICwgbV9jcmVkZW50aWFsKGNyZWRlbnRpYWwpCisgICAgICAgICwgbV91c2VybmFtZSh1
c2VybmFtZSkKKyAgICB7CisgICAgfQorCisgICAgVmVjdG9yPFN0cmluZz4gbV91cmxzOworICAg
IFN0cmluZyBtX2NyZWRlbnRpYWw7CisgICAgU3RyaW5nIG1fdXNlcm5hbWU7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisj
ZW5kaWYgLy8gUlRDSWNlU2VydmVyUHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5o
CmluZGV4IDM0NjIxZTIxOTY0MDUzZDJlM2Y1ODBkNDEyOTE3MTdjNzI1YTI5OWQuLmE4NWZkYjFk
OWQzNTkyNjcyNmZiYzgwOWZlNGMzYjliOGQ4OTcyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlci5oCkBAIC00MCw3ICs0MCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1l
ZGlhU3RyZWFtU291cmNlOwotY2xhc3MgUlRDQ29uZmlndXJhdGlvbjsKK2NsYXNzIFJUQ0NvbmZp
Z3VyYXRpb25Qcml2YXRlOwogY2xhc3MgUlRDRFRNRlNlbmRlckhhbmRsZXI7CiBjbGFzcyBSVENE
YXRhQ2hhbm5lbEhhbmRsZXI7CiBjbGFzcyBSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOwpAQCAt
ODEsNyArODEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgaW5j
b21wYXRpYmxlU2Vzc2lvbkRlc2NyaXB0aW9uRXJyb3JOYW1lKCk7CiAgICAgc3RhdGljIGNvbnN0
IEF0b21pY1N0cmluZyYgaW50ZXJuYWxFcnJvck5hbWUoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBp
bml0aWFsaXplKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4pID0gMDsKKyAgICB2aXJ0dWFs
IGJvb2wgaW5pdGlhbGl6ZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlPikgPSAw
OwogCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9mZmVyKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdD4sIFBhc3NSZWZQdHI8UlRDT2ZmZXJPcHRpb25zPikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBjcmVhdGVBbnN3ZXIoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0PiwgUGFzc1JlZlB0cjxSVENPZmZlckFuc3dlck9wdGlvbnM+KSA9IDA7CkBAIC04
OSw3ICs4OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRp
b24oUGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdD4sIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvcj4pID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UlRDU2Vzc2lv
bkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gbG9jYWxEZXNjcmlwdGlvbigpID0gMDsKICAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gcmVtb3RlRGVz
Y3JpcHRpb24oKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIHVwZGF0ZUljZShQYXNzUmVmUHRyPFJU
Q0NvbmZpZ3VyYXRpb24+KSA9IDA7CisgICAgdmlydHVhbCBib29sIHVwZGF0ZUljZShQYXNzUmVm
UHRyPFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlPikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBhZGRJ
Y2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdD4sIFBhc3NSZWZQdHI8UlRDSWNl
Q2FuZGlkYXRlRGVzY3JpcHRvcj4pID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+KSA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1v
Y2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXJNb2NrLmNwcAppbmRleCAxZDk2MmIxYTA3MTc2ZmVmOWU2MmJlNmJkYzc4NjYwNTA1ZThl
ZjcyLi4xNTZjYjkxYzA0MzQwNDRkYTA5NDk3Yjc0NTAyMWEwNzk1MTE4NWFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1v
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyTW9jay5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyTW9jazo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jayhSVENQZWVyQ29ubmVjdGlvbkhh
bmQKIHsKIH0KIAotYm9vbCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjppbml0aWFsaXpl
KFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4pCitib29sIFJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlck1vY2s6OmluaXRpYWxpemUoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uUHJpdmF0ZT4p
CiB7CiAgICAgUmVmUHRyPEljZUNvbm5lY3Rpb25Ob3RpZmllcj4gbm90aWZpZXIgPSBhZG9wdFJl
ZihuZXcgSWNlQ29ubmVjdGlvbk5vdGlmaWVyKG1fY2xpZW50LCBSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXJDbGllbnQ6OkljZUNvbm5lY3Rpb25TdGF0ZUNvbXBsZXRlZCwgUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyQ2xpZW50OjpJY2VHYXRoZXJpbmdTdGF0ZUNvbXBsZXRlKSk7CiAgICAgbV90aW1l
ckV2ZW50cy5hcHBlbmQoYWRvcHRSZWYobmV3IFRpbWVyRXZlbnQodGhpcywgbm90aWZpZXIpKSk7
CkBAIC0xMjYsNyArMTI2LDcgQEAgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yPiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjpyZW1vdGUKICAgICByZXR1cm4g
bV9yZW1vdGVTZXNzaW9uRGVzY3JpcHRpb247CiB9CiAKLWJvb2wgUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyTW9jazo6dXBkYXRlSWNlKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4pCitib29s
IFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6OnVwZGF0ZUljZShQYXNzUmVmUHRyPFJUQ0Nv
bmZpZ3VyYXRpb25Qcml2YXRlPikKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9j
ay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJNb2NrLmgKaW5kZXggMjUxNjNhZWEzMWM5Mzc4ZWE4MGQ4YWIxMGUxNDA1Mjc1M2ZjNmQyZi4u
NWNiNWM3ODJlNTU0YjI1MGYzYjQ2MDM3NTNhNDA0ODU1OGQyNzExZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJNb2NrLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+UlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyTW9jaygpIHsgfQogCi0gICAgdmlydHVhbCBib29sIGluaXRpYWxp
emUoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIGluaXRpYWxpemUoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uUHJpdmF0ZT4pIG92ZXJy
aWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9mZmVyKFBhc3NSZWZQdHI8UlRDU2Vzc2lv
bkRlc2NyaXB0aW9uUmVxdWVzdD4sIFBhc3NSZWZQdHI8UlRDT2ZmZXJPcHRpb25zPikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUFuc3dlcihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3Q+LCBQYXNzUmVmUHRyPFJUQ09mZmVyQW5zd2VyT3B0aW9ucz4pIG92
ZXJyaWRlOwpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFJl
bW90ZURlc2NyaXB0aW9uKFBhc3NSZWZQdHI8UlRDVm9pZFJlcXVlc3Q+LCBQYXNzUmVmUHRyPFJU
Q1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gbG9jYWxEZXNjcmlwdGlv
bigpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yPiByZW1vdGVEZXNjcmlwdGlvbigpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwg
Ym9vbCB1cGRhdGVJY2UoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBib29sIHVwZGF0ZUljZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3VyYXRpb25Qcml2
YXRlPikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGFkZEljZUNhbmRpZGF0ZShQYXNzUmVm
UHRyPFJUQ1ZvaWRSZXF1ZXN0PiwgUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9y
Pikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGFkZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlh
U3RyZWFtUHJpdmF0ZT4pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVTdHJlYW0o
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+KSBvdmVycmlkZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>