<?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>225845</bug_id>
          
          <creation_ts>2021-05-15 14:00:32 -0700</creation_ts>
          <short_desc>Allow conditionally enabling OffscreenCanvas only for non-worker contexts</short_desc>
          <delta_ts>2021-05-17 09:14:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=225858</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>alecflett</cc>
    
    <cc>annulen</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jbedard</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1760463</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-15 14:00:32 -0700</bug_when>
    <thetext>Split worker enablement out of OFFSCREEN_CANVAS using a new OFFSCREEN_CANVAS_IN_WORKER macro</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760471</commentid>
    <comment_count>1</comment_count>
      <attachid>428741</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-15 14:12:33 -0700</bug_when>
    <thetext>Created attachment 428741
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760479</commentid>
    <comment_count>2</comment_count>
      <attachid>428741</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-15 15:18:25 -0700</bug_when>
    <thetext>Comment on attachment 428741
Patch

Looks OK.

I assume this is because some platform, perhaps Apple ones, may want to ship OffsceenCanvas outside of Workers sooner, because the issues in workers may take longer to resolve thoroughly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760493</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-15 16:43:14 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 428741 [details]
&gt; Patch
&gt; 
&gt; Looks OK.
&gt; 
&gt; I assume this is because some platform, perhaps Apple ones, may want to ship
&gt; OffsceenCanvas outside of Workers sooner, because the issues in workers may
&gt; take longer to resolve thoroughly.

Exactly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760500</commentid>
    <comment_count>4</comment_count>
      <attachid>428750</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-15 16:58:14 -0700</bug_when>
    <thetext>Created attachment 428750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760536</commentid>
    <comment_count>5</comment_count>
      <attachid>428763</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-15 19:11:49 -0700</bug_when>
    <thetext>Created attachment 428763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760551</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-15 20:15:05 -0700</bug_when>
    <thetext>Committed r277560 (237788@main): &lt;https://commits.webkit.org/237788@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428763.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760552</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-15 20:16:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/78068305&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760685</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2021-05-17 00:19:21 -0700</bug_when>
    <thetext>The ConditionalForWorker attribute values had unfortunate typos that ended up effectively disabling these interfaces under workers. Fixed in #225858.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760769</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-17 09:14:48 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #8)
&gt; The ConditionalForWorker attribute values had unfortunate typos that ended
&gt; up effectively disabling these interfaces under workers. Fixed in #225858.

Sorry about that :(. Thanks for the fix.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428741</attachid>
            <date>2021-05-15 14:12:33 -0700</date>
            <delta_ts>2021-05-15 19:11:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225845-20210515141232.patch</filename>
            <type>text/plain</type>
            <size>39327</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDI3NzU0
NCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA1
LTE1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBjb25k
aXRpb25hbGx5IGVuYWJsaW5nIE9mZnNjcmVlbkNhbnZhcyBvbmx5IGZvciBub24td29ya2VyIGNv
bnRleHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjU4NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9P
cHRpb25zV1BFLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5j
bWFrZToKKyAgICAgICAgTWF0Y2ggY3VycmVudCBiZWhhdmlvciBvZiBFTkFCTEVfT0ZGU0NSRUVO
X0NBTlZBUyBmb3IgRU5BQkxFX09GRlNDUkVFTl9DQU5WQVNfSU5fV09SS0VSUy4KKwogMjAyMS0w
NS0xNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZC4gVXBkYXRlIE9wdGlvbnNHVEsuY21ha2UgYW5kIE5FV1MgZm9yIDIuMzMu
MSByZWxlYXNlCkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dURi9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wNS0xNSAgU2FtIFdlaW5p
ZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgY29uZGl0aW9uYWxseSBlbmFi
bGluZyBPZmZzY3JlZW5DYW52YXMgb25seSBmb3Igbm9uLXdvcmtlciBjb250ZXh0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODQ1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbDoKKyAgICAgICAgQWRkIG5ldyBPZmZz
Y3JlZW5DYW52YXNJbldvcmtlcnNFbmFibGVkIHByZWZlcmVuY2UuCisKKyAgICAgICAgKiB3dGYv
UGxhdGZvcm1FbmFibGUuaDoKKyAgICAgICAgQWRkIG5ldyBFTkFCTEVfT0ZGU0NSRUVOX0NBTlZB
U19JTl9XT1JLRVJTIG1hY3JvLgorCiAyMDIxLTA1LTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBGaWxlU3lzdGVtOjpmaWxlTWV0YWRhdGEoKSAvIGZp
bGVNZXRhZGF0YUZvbGxvd2luZ1N5bWxpbmtzKCkKSW5kZXg6IFNvdXJjZS9XVEYvU2NyaXB0cy9Q
cmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAko
cmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlBy
ZWZlcmVuY2VzSW50ZXJuYWwueWFtbAkod29ya2luZyBjb3B5KQpAQCAtNTU5LDYgKzU1OSwxOSBA
QCBPZmZzY3JlZW5DYW52YXNFbmFibGVkOgogICAgICAgIkVOQUJMRShFWFBFUklNRU5UQUxfRkVB
VFVSRVMpICYmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpIjogdHJ1ZQogICAgICAg
ZGVmYXVsdDogZmFsc2UKIAorT2Zmc2NyZWVuQ2FudmFzSW5Xb3JrZXJzRW5hYmxlZDoKKyAgdHlw
ZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIk9mZnNjcmVlbkNhbnZhcyBpbiBXb3JrZXJz
IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJTdXBwb3J0IGZvciB0aGUgT2Zmc2NyZWVu
Q2FudmFzIEFQSXMgaW4gV29ya2VycyIKKyAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMKKyAgY29uZGl0aW9uOiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJT
KQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFs
c2UKKyAgICBXZWJLaXQ6CisgICAgICAiRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFUykgJiYg
KFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkiOiB0cnVlCisgICAgICBkZWZhdWx0OiBm
YWxzZQorCiBQcmVmZXJGYXN0ZXJDbGlja092ZXJEb3VibGVUYXA6CiAgIHR5cGU6IGJvb2wKICAg
aHVtYW5SZWFkYWJsZU5hbWU6ICJGYXN0IGNsaWNrcyBiZWF0IERUVFoiCkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtRW5hYmxlLmgJKHJldmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwOCw2ICs0MDgsMTAgQEAKICNkZWZpbmUg
RU5BQkxFX09GRlNDUkVFTl9DQU5WQVMgMAogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVf
T0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQorI2RlZmluZSBFTkFCTEVfT0ZGU0NSRUVOX0NB
TlZBU19JTl9XT1JLRVJTIDAKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX1RIVU5ERVIp
CiAjZGVmaW5lIEVOQUJMRV9USFVOREVSIDAKICNlbmRpZgpAQCAtOTExLDYgKzkxNSwxMCBAQAog
I2Vycm9yICJFTkFCTEUoV0hMU0xfQ09NUElMRVIpIHJlcXVpcmVzIEVOQUJMRShXRUJHUFUpIgog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKSAmJiAhRU5B
QkxFKE9GRlNDUkVFTl9DQU5WQVMpCisjZXJyb3IgIkVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lO
X1dPUktFUlMpIHJlcXVpcmVzIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKSIKKyNlbmRpZgorCiAj
aWYgVVNFKENHKQogCiAjaWYgRU5BQkxFKERFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0RJU1BMQVlf
UDMpICYmICFIQVZFKENPUkVfR1JBUEhJQ1NfRElTUExBWV9QM19DT0xPUl9TUEFDRSkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYyIEBACisyMDIxLTA1LTE1ICBTYW0gV2VpbmlnICA8
d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBjb25kaXRpb25hbGx5IGVuYWJsaW5n
IE9mZnNjcmVlbkNhbnZhcyBvbmx5IGZvciBub24td29ya2VyIGNvbnRleHRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU4NDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGUgYm90aCBjb21waWxl
IHRpbWUgYW5kIHJ1bnRpbWUgY29uZGl0aW9uYWwgZW5hYmxlbWVudCBvZiBqdXN0IHRoZQorICAg
ICAgICBub24td29ya2VyIE9mZnNjcmVlbkNhbnZhcyBjb2RlIHBhdGguCisKKyAgICAgICAgVG8g
bWFrZSB0aGlzIHdvcmsgYSBuZXcgSURMIGV4dGVuZGVkIGF0dHJpYnV0ZSB3YXMgbmVlZGVkLCBD
b25kaXRpb25hbEZvcldvcmtlcj1GT08sCisgICAgICAgIHdoaWNoIGFsbG93cyBzcGVjaWZ5aW5n
IGFuIGFkZGl0aW9uYWwgbWFjcm8gdG8gY2hlY2sgZm9yIHdoZXRoZXIgdGhlIGNvbnN0cnVjdG9y
CisgICAgICAgIHNob3VsZCBiZSBleHBvc2VkIG9uIHdvcmtlcnMuIElkZWFsbHkgdGhpcyB3b3Vs
ZCBiZSBnZW5lcmljIGZvciBhbnkgY29udGV4dCB0eXBlLAorICAgICAgICBidXQgYXQgdGhlIG1v
bWVudCwgdGhlIGxpbWl0ZWQgc3ludGF4IG9mIGV4dGVuZGVkIGF0dHJpYnV0ZXMgbWFrZXMgdGhh
dCBoYXJkLiBJZgorICAgICAgICBnZW5lcmFsaXphdGlvbiBpcyBuZWVkZWQgKG9yIGEgc2ltaWxh
ciBzeW50YXggaXMgbmVlZGVkIGZvciBzb21ldGhpbmcgZWxzZSkgdGhpcyBjYW4KKyAgICAgICAg
YmUgcmV2aXNpdGVkLgorCisgICAgICAgIFRvIHN1cHBvcnQgcnVudGltZSBjb25kaXRpb25hbCBl
eHBvc3VyZSwgdGhlIGV4aXN0aW5nIEVuYWJsZWRGb3JDb250ZXh0LCB3aGljaCBjYWxscworICAg
ICAgICBhIHN0YXRpYyBmdW5jdGlvbiBvbiB0aGUgaW1wbGVtZW50YXRpb24gY2xhc3MgcGFzc2lu
ZyB0aGUgU2NyaXB0RXhlY3V0YXRpb25Db250ZXh0CisgICAgICAgIGlzIHVzZWQuIElmIGNvbmRp
dGlvbmFsIHBlciBjb250ZXh0IHR5cGUgZXZlciBiZWNvbWVzIGEgY29tbW9uIHRoaW5nLCB3ZSBz
aG91bGQgYWRkCisgICAgICAgIGFub3RoZXIgZXh0ZW5kZWQgYXR0cmlidXRlIChhbmQgYWRkIHN5
bnRheCB0byBzdXBwb3J0IGxpa2UgYWJvdmUpIHRoYXQgYWxsb3dzIHNwZWNpZnlpbmcKKyAgICAg
ICAgYm90aCB0aGUgY29udGV4dCB0eXBlIGFuZCB0aGUgc2V0dGluZyBuYW1lLgorCisgICAgICAg
IE90aGVyIHRoYW4gdGhhdCwgdXNlcyBvZiBFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUyB0aGF0IGd1
YXJkZWQgd29ya2VyIHNwZWNpZmljIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgd2VyZSByZXBsYWNl
ZCBieSBFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTLgorCisgICAgICAgICogYmlu
ZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNs
b25lU2VyaWFsaXplcjo6c2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFs
aXplcjo6Q2xvbmVTZXJpYWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXpl
cjo6ZHVtcElmVGVybWluYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6ZXI6
OmRlc2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpDbG9u
ZURlc2VyaWFsaXplcik6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZURlc2VyaWFsaXplcjo6cmVh
ZFRlcm1pbmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6Y29tcHV0ZU1lbW9yeUNvc3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFs
aXplZFNjcmlwdFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNj
cmlwdFZhbHVlOjpkZXNlcmlhbGl6ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExB
dHRyaWJ1dGVzLmpzb246CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlk
bHMucGw6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9yQXR0cmlidXRlcyk6CisgICAgICAg
ICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9PZmZzY3JlZW5D
YW52YXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjplbmFibGVkRm9y
Q29udGV4dCk6CisgICAgICAgICogaHRtbC9PZmZzY3JlZW5DYW52YXMuaDoKKyAgICAgICAgKiBo
dG1sL09mZnNjcmVlbkNhbnZhcy5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvT2Zmc2NyZWVu
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZW5hYmxlZEZvckNvbnRleHQpOgorICAgICAgICAq
IGh0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6Cisg
ICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRPZmZzY3JlZW5DYW52YXNJbldvcmtlcnNFbmFi
bGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6Om9mZnNjcmVl
bkNhbnZhc0luV29ya2Vyc0VuYWJsZWQgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL0RlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlLmlkbDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckFuaW1hdGlvbkNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQW5pbWF0aW9uQ29udHJvbGxlci5o
OgorCiAyMDIxLTA1LTE1ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTEZDXSBNb3ZlIHRhYmxlIHdyYXBwZXIgcXVpcmtzIHRvIGl0cyBvd24gY2xhc3MKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmNwcAkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQsNyArOTQsNyBA
QAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlT
ZW1hcGhvcmUuaD4KIAotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lmIEVOQUJMRShP
RkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAjaW5jbHVkZSAiSlNPZmZzY3JlZW5DYW52YXMu
aCIKICNpbmNsdWRlICJPZmZzY3JlZW5DYW52YXMuaCIKICNlbmRpZgpAQCAtMTgxLDcgKzE4MSw3
IEBAIGVudW0gU2VyaWFsaXphdGlvblRhZyB7CiAgICAgUlRDQ2VydGlmaWNhdGVUYWcgPSA0NCwK
ICNlbmRpZgogICAgIEltYWdlQml0bWFwVGFnID0gNDUsCi0jaWYgRU5BQkxFKE9GRlNDUkVFTl9D
QU5WQVMpCisjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVNfSU5fV09SS0VSUykKICAgICBPZmZz
Y3JlZW5DYW52YXNUcmFuc2ZlclRhZyA9IDQ2LAogI2VuZGlmCiAgICAgQmlnSW50VGFnID0gNDcs
CkBAIC01ODMsNyArNTgzLDcgQEAgdGVtcGxhdGUgPD4gYm9vbCB3cml0ZUxpdHRsZUVuZGlhbjx1
aW50OAogY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgU2VyaWFsaXphdGlvblJldHVybkNvZGUgc2VyaWFsaXplKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlLCBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQ
b3J0Pj4mIG1lc3NhZ2VQb3J0cywgVmVjdG9yPFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPj4mIGFy
cmF5QnVmZmVycywgY29uc3QgVmVjdG9yPFJlZlB0cjxJbWFnZUJpdG1hcD4+JiBpbWFnZUJpdG1h
cHMsCi0jaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCisjaWYgRU5BQkxFKE9GRlNDUkVFTl9D
QU5WQVNfSU5fV09SS0VSUykKICAgICAgICAgICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8T2Zmc2Ny
ZWVuQ2FudmFzPj4mIG9mZnNjcmVlbkNhbnZhc2VzLAogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9S
VEMpCkBAIC01OTYsNyArNTk2LDcgQEAgcHVibGljOgogICAgICAgICBWZWN0b3I8U3RyaW5nPiYg
YmxvYlVSTHMsIFZlY3Rvcjx1aW50OF90PiYgb3V0LCBTZXJpYWxpemF0aW9uQ29udGV4dCBjb250
ZXh0LCBBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkmIHNoYXJlZEJ1ZmZlcnMpCiAgICAgewogICAg
ICAgICBDbG9uZVNlcmlhbGl6ZXIgc2VyaWFsaXplcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBtZXNz
YWdlUG9ydHMsIGFycmF5QnVmZmVycywgaW1hZ2VCaXRtYXBzLAotI2lmIEVOQUJMRShPRkZTQ1JF
RU5fQ0FOVkFTKQorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAgICAg
ICAgICAgICBvZmZzY3JlZW5DYW52YXNlcywKICNlbmRpZgogI2lmIEVOQUJMRShXRUJfUlRDKQpA
QCAtNjMwLDcgKzYzMCw3IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNoTWFwPEpTT2JqZWN0
KiwgdWludDMyX3Q+IE9iamVjdFBvb2w7CiAKICAgICBDbG9uZVNlcmlhbGl6ZXIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYg
bWVzc2FnZVBvcnRzLCBWZWN0b3I8UmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+PiYgYXJyYXlCdWZm
ZXJzLCBjb25zdCBWZWN0b3I8UmVmUHRyPEltYWdlQml0bWFwPj4mIGltYWdlQml0bWFwcywKLSNp
ZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19J
Tl9XT1JLRVJTKQogICAgICAgICAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxPZmZzY3JlZW5DYW52
YXM+PiYgb2Zmc2NyZWVuQ2FudmFzZXMsCiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX1JUQykKQEAg
LTY1Niw3ICs2NTYsNyBAQCBwcml2YXRlOgogICAgICAgICBmaWxsVHJhbnNmZXJNYXAobWVzc2Fn
ZVBvcnRzLCBtX3RyYW5zZmVycmVkTWVzc2FnZVBvcnRzKTsKICAgICAgICAgZmlsbFRyYW5zZmVy
TWFwKGFycmF5QnVmZmVycywgbV90cmFuc2ZlcnJlZEFycmF5QnVmZmVycyk7CiAgICAgICAgIGZp
bGxUcmFuc2Zlck1hcChpbWFnZUJpdG1hcHMsIG1fdHJhbnNmZXJyZWRJbWFnZUJpdG1hcHMpOwot
I2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFT
X0lOX1dPUktFUlMpCiAgICAgICAgIGZpbGxUcmFuc2Zlck1hcChvZmZzY3JlZW5DYW52YXNlcywg
bV90cmFuc2ZlcnJlZE9mZnNjcmVlbkNhbnZhc2VzKTsKICNlbmRpZgogI2lmIEVOQUJMRShXRUJf
UlRDKQpAQCAtMTA5OSw3ICsxMDk5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgd3JpdGUoc3RhdGlj
X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5QnVmZmVyLT5kYXRhKCkpLCBhcnJheUJ1ZmZlci0+
Ynl0ZUxlbmd0aCgpKTsKICAgICB9CiAKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKyNp
ZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogICAgIHZvaWQgZHVtcE9mZnNj
cmVlbkNhbnZhcyhKU09iamVjdCogb2JqLCBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZSYgY29kZSkK
ICAgICB7CiAgICAgICAgIGF1dG8gaW5kZXggPSBtX3RyYW5zZmVycmVkT2Zmc2NyZWVuQ2FudmFz
ZXMuZmluZChvYmopOwpAQCAtMTMwNiw3ICsxMzA2LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAg
ICAgICAgICAgICAgIEFycmF5QnVmZmVyQ29udGVudHNBcnJheSBkdW1teVNoYXJlZEJ1ZmZlcnM7
CiAgICAgICAgICAgICAgICAgQ2xvbmVTZXJpYWxpemVyIHJhd0tleVNlcmlhbGl6ZXIobV9sZXhp
Y2FsR2xvYmFsT2JqZWN0LCBkdW1teU1lc3NhZ2VQb3J0cywgZHVtbXlBcnJheUJ1ZmZlcnMsIHsg
fSwKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NB
TlZBU19JTl9XT1JLRVJTKQogICAgICAgICAgICAgICAgICAgICB7IH0sCiAjZW5kaWYKICNpZiBF
TkFCTEUoV0VCX1JUQykKQEAgLTEzODcsNyArMTM4Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAgICAgZHVtcEltYWdlQml0bWFwKG9iaiwgY29kZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgICAgICB9Ci0jaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCisjaWYg
RU5BQkxFKE9GRlNDUkVFTl9DQU5WQVNfSU5fV09SS0VSUykKICAgICAgICAgICAgIGlmIChvYmot
PmluaGVyaXRzKHZtLCBKU09mZnNjcmVlbkNhbnZhczo6aW5mbygpKSkgewogICAgICAgICAgICAg
ICAgIGR1bXBPZmZzY3JlZW5DYW52YXMob2JqLCBjb2RlKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKQEAgLTE3NTEsNyArMTc1MSw3IEBAIHByaXZhdGU6CiAgICAgT2JqZWN0UG9vbCBt
X3RyYW5zZmVycmVkTWVzc2FnZVBvcnRzOwogICAgIE9iamVjdFBvb2wgbV90cmFuc2ZlcnJlZEFy
cmF5QnVmZmVyczsKICAgICBPYmplY3RQb29sIG1fdHJhbnNmZXJyZWRJbWFnZUJpdG1hcHM7Ci0j
aWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCisjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVNf
SU5fV09SS0VSUykKICAgICBPYmplY3RQb29sIG1fdHJhbnNmZXJyZWRPZmZzY3JlZW5DYW52YXNl
czsKICNlbmRpZgogI2lmIEVOQUJMRShXRUJfUlRDKQpAQCAtMjA0OSw3ICsyMDQ5LDcgQEAgcHVi
bGljOgogICAgIH0KIAogICAgIHN0YXRpYyBEZXNlcmlhbGl6YXRpb25SZXN1bHQgZGVzZXJpYWxp
emUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYgbWVzc2FnZVBv
cnRzLCBWZWN0b3I8T3B0aW9uYWw8SW1hZ2VCaXRtYXBCYWNraW5nPj4mJiBiYWNraW5nU3RvcmVz
Ci0jaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCisjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5W
QVNfSU5fV09SS0VSUykKICAgICAgICAgLCBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPERldGFjaGVk
T2Zmc2NyZWVuQ2FudmFzPj4mJiBkZXRhY2hlZE9mZnNjcmVlbkNhbnZhc2VzCiAjZW5kaWYKICNp
ZiBFTkFCTEUoV0VCX1JUQykKQEAgLTIwNjUsNyArMjA2NSw3IEBAIHB1YmxpYzoKICAgICAgICAg
aWYgKCFidWZmZXIuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGpz
TnVsbCgpLCBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZTo6VW5zcGVjaWZpZWRFcnJvcik7CiAgICAg
ICAgIENsb25lRGVzZXJpYWxpemVyIGRlc2VyaWFsaXplcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBn
bG9iYWxPYmplY3QsIG1lc3NhZ2VQb3J0cywgYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LCBidWZm
ZXIsIGJsb2JVUkxzLCBibG9iRmlsZVBhdGhzLCBzaGFyZWRCdWZmZXJzLCBXVEZNb3ZlKGJhY2tp
bmdTdG9yZXMpCi0jaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCisjaWYgRU5BQkxFKE9GRlND
UkVFTl9DQU5WQVNfSU5fV09SS0VSUykKICAgICAgICAgICAgICwgV1RGTW92ZShkZXRhY2hlZE9m
ZnNjcmVlbkNhbnZhc2VzKQogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9SVEMpCkBAIC0yMTIyLDcg
KzIxMjIsNyBAQCBwcml2YXRlOgogICAgIH07CiAKICAgICBDbG9uZURlc2VyaWFsaXplcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgY29uc3QgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+JiBtZXNzYWdlUG9ydHMsIEFy
cmF5QnVmZmVyQ29udGVudHNBcnJheSogYXJyYXlCdWZmZXJDb250ZW50cywgVmVjdG9yPE9wdGlv
bmFsPEltYWdlQml0bWFwQmFja2luZz4+JiYgYmFja2luZ1N0b3JlcywgY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiBidWZmZXIKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKyNpZiBFTkFCTEUo
T0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogICAgICAgICAsIFZlY3RvcjxzdGQ6OnVuaXF1
ZV9wdHI8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+PiYmIGRldGFjaGVkT2Zmc2NyZWVuQ2FudmFz
ZXMgPSB7IH0KICNlbmRpZgogI2lmIEVOQUJMRShXRUJfUlRDKQpAQCAtMjE0NSw3ICsyMTQ1LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgLCBtX2FycmF5QnVmZmVycyhhcnJheUJ1ZmZlckNvbnRlbnRz
ID8gYXJyYXlCdWZmZXJDb250ZW50cy0+c2l6ZSgpIDogMCkKICAgICAgICAgLCBtX2JhY2tpbmdT
dG9yZXMoV1RGTW92ZShiYWNraW5nU3RvcmVzKSkKICAgICAgICAgLCBtX2ltYWdlQml0bWFwcyht
X2JhY2tpbmdTdG9yZXMuc2l6ZSgpKQotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lm
IEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAgICAgICAgICwgbV9kZXRhY2hl
ZE9mZnNjcmVlbkNhbnZhc2VzKFdURk1vdmUoZGV0YWNoZWRPZmZzY3JlZW5DYW52YXNlcykpCiAg
ICAgICAgICwgbV9vZmZzY3JlZW5DYW52YXNlcyhtX2RldGFjaGVkT2Zmc2NyZWVuQ2FudmFzZXMu
c2l6ZSgpKQogI2VuZGlmCkBAIC0yMTYzLDcgKzIxNjMsNyBAQCBwcml2YXRlOgogICAgIH0KIAog
ICAgIENsb25lRGVzZXJpYWxpemVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBWZWN0b3I8UmVmUHRyPE1lc3Nh
Z2VQb3J0Pj4mIG1lc3NhZ2VQb3J0cywgQXJyYXlCdWZmZXJDb250ZW50c0FycmF5KiBhcnJheUJ1
ZmZlckNvbnRlbnRzLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZlciwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGJsb2JVUkxzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiBibG9iRmlsZVBhdGhzLCBB
cnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkqIHNoYXJlZEJ1ZmZlcnMsIFZlY3RvcjxPcHRpb25hbDxJ
bWFnZUJpdG1hcEJhY2tpbmc+PiYmIGJhY2tpbmdTdG9yZXMKLSNpZiBFTkFCTEUoT0ZGU0NSRUVO
X0NBTlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogICAgICAg
ICAsIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+PiYmIGRl
dGFjaGVkT2Zmc2NyZWVuQ2FudmFzZXMKICNlbmRpZgogI2lmIEVOQUJMRShXRUJfUlRDKQpAQCAt
MjE4OSw3ICsyMTg5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgLCBtX3NoYXJlZEJ1ZmZlcnMoc2hh
cmVkQnVmZmVycykKICAgICAgICAgLCBtX2JhY2tpbmdTdG9yZXMoV1RGTW92ZShiYWNraW5nU3Rv
cmVzKSkKICAgICAgICAgLCBtX2ltYWdlQml0bWFwcyhtX2JhY2tpbmdTdG9yZXMuc2l6ZSgpKQot
I2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFT
X0lOX1dPUktFUlMpCiAgICAgICAgICwgbV9kZXRhY2hlZE9mZnNjcmVlbkNhbnZhc2VzKFdURk1v
dmUoZGV0YWNoZWRPZmZzY3JlZW5DYW52YXNlcykpCiAgICAgICAgICwgbV9vZmZzY3JlZW5DYW52
YXNlcyhtX2RldGFjaGVkT2Zmc2NyZWVuQ2FudmFzZXMuc2l6ZSgpKQogI2VuZGlmCkBAIC0zMDQ2
LDcgKzMwNDYsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gZ2V0SlNWYWx1ZShiaXRtYXAp
OwogICAgIH0KIAotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lmIEVOQUJMRShPRkZT
Q1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAgICAgSlNWYWx1ZSByZWFkT2Zmc2NyZWVuQ2FudmFz
KCkKICAgICB7CiAgICAgICAgIHVpbnQzMl90IGluZGV4OwpAQCAtMzYwOCw3ICszNjA4LDcgQEAg
cHJpdmF0ZToKICNlbmRpZgogICAgICAgICBjYXNlIEltYWdlQml0bWFwVGFnOgogICAgICAgICAg
ICAgcmV0dXJuIHJlYWRJbWFnZUJpdG1hcCgpOwotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFT
KQorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAgICAgICAgIGNhc2Ug
T2Zmc2NyZWVuQ2FudmFzVHJhbnNmZXJUYWc6CiAgICAgICAgICAgICByZXR1cm4gcmVhZE9mZnNj
cmVlbkNhbnZhcygpOwogI2VuZGlmCkBAIC0zNjQ5LDcgKzM2NDksNyBAQCBwcml2YXRlOgogICAg
IEFycmF5QnVmZmVyQ29udGVudHNBcnJheSogbV9zaGFyZWRCdWZmZXJzOwogICAgIFZlY3RvcjxP
cHRpb25hbDxJbWFnZUJpdG1hcEJhY2tpbmc+PiBtX2JhY2tpbmdTdG9yZXM7CiAgICAgVmVjdG9y
PFJlZlB0cjxJbWFnZUJpdG1hcD4+IG1faW1hZ2VCaXRtYXBzOwotI2lmIEVOQUJMRShPRkZTQ1JF
RU5fQ0FOVkFTKQorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAgICAg
VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4+IG1fZGV0YWNo
ZWRPZmZzY3JlZW5DYW52YXNlczsKICAgICBWZWN0b3I8UmVmUHRyPE9mZnNjcmVlbkNhbnZhcz4+
IG1fb2Zmc2NyZWVuQ2FudmFzZXM7CiAjZW5kaWYKQEAgLTM4ODQsNyArMzg4NCw3IEBAIFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFYKIH0KIAogU2VyaWFsaXplZFNjcmlw
dFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZl
ckNvbnRlbnRzQXJyYXk+IGFycmF5QnVmZmVyQ29udGVudHNBcnJheSwgc3RkOjp1bmlxdWVfcHRy
PEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gc2hhcmVkQnVmZmVyQ29udGVudHNBcnJheSwgVmVj
dG9yPE9wdGlvbmFsPEltYWdlQml0bWFwQmFja2luZz4+JiYgYmFja2luZ1N0b3JlcwotI2lmIEVO
QUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dP
UktFUlMpCiAgICAgICAgICwgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVl
bkNhbnZhcz4+JiYgZGV0YWNoZWRPZmZzY3JlZW5DYW52YXNlcwogI2VuZGlmCiAjaWYgRU5BQkxF
KFdFQl9SVEMpCkBAIC0zODk5LDcgKzM4OTksNyBAQCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNl
cmlhbGl6ZWRTY3JpcHRWCiAgICAgLCBtX2FycmF5QnVmZmVyQ29udGVudHNBcnJheShXVEZNb3Zl
KGFycmF5QnVmZmVyQ29udGVudHNBcnJheSkpCiAgICAgLCBtX3NoYXJlZEJ1ZmZlckNvbnRlbnRz
QXJyYXkoV1RGTW92ZShzaGFyZWRCdWZmZXJDb250ZW50c0FycmF5KSkKICAgICAsIG1fYmFja2lu
Z1N0b3JlcyhXVEZNb3ZlKGJhY2tpbmdTdG9yZXMpKQotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FO
VkFTKQorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAgICAgLCBtX2Rl
dGFjaGVkT2Zmc2NyZWVuQ2FudmFzZXMoV1RGTW92ZShkZXRhY2hlZE9mZnNjcmVlbkNhbnZhc2Vz
KSkKICNlbmRpZgogI2lmIEVOQUJMRShXRUJfUlRDKQpAQCAtMzkzNyw3ICszOTM3LDcgQEAgc2l6
ZV90IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y29tcHV0ZU1lbQogICAgICAgICAgICAgY29zdCAr
PSBidWZmZXItPm1lbW9yeUNvc3QoKTsKICAgICB9CiAKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NB
TlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogICAgIGZvciAo
YXV0byYgY2FudmFzIDogbV9kZXRhY2hlZE9mZnNjcmVlbkNhbnZhc2VzKSB7CiAgICAgICAgIGlm
IChjYW52YXMpCiAgICAgICAgICAgICBjb3N0ICs9IGNhbnZhcy0+bWVtb3J5Q29zdCgpOwpAQCAt
NDA0MCw3ICs0MDQwLDcgQEAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXpl
ZAogICAgIFZlY3RvcjxTdHJpbmc+IGJsb2JVUkxzOwogICAgIFZlY3RvcjxSZWZQdHI8TWVzc2Fn
ZVBvcnQ+PiBkdW1teU1lc3NhZ2VQb3J0czsKICAgICBWZWN0b3I8UmVmUHRyPEltYWdlQml0bWFw
Pj4gZHVtbXlJbWFnZUJpdG1hcHM7Ci0jaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCisjaWYg
RU5BQkxFKE9GRlNDUkVFTl9DQU5WQVNfSU5fV09SS0VSUykKICAgICBWZWN0b3I8UmVmUHRyPE9m
ZnNjcmVlbkNhbnZhcz4+IGR1bW15T2Zmc2NyZWVuQ2FudmFzZXM7CiAjZW5kaWYKICNpZiBFTkFC
TEUoV0VCX1JUQykKQEAgLTQwNTMsNyArNDA1Myw3IEBAIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IFNlcmlhbGl6ZWQKICNlbmRpZgogICAgIEFycmF5QnVmZmVyQ29udGVudHNBcnJheSBk
dW1teVNoYXJlZEJ1ZmZlcnM7CiAgICAgYXV0byBjb2RlID0gQ2xvbmVTZXJpYWxpemVyOjpzZXJp
YWxpemUoJmxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlLCBkdW1teU1lc3NhZ2VQb3J0cywgZHVt
bXlBcnJheUJ1ZmZlcnMsIGR1bW15SW1hZ2VCaXRtYXBzLAotI2lmIEVOQUJMRShPRkZTQ1JFRU5f
Q0FOVkFTKQorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAgICAgICAg
IGR1bW15T2Zmc2NyZWVuQ2FudmFzZXMsCiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX1JUQykKQEAg
LTQwODksNyArNDA4OSw3IEBAIHN0YXRpYyBib29sIGNvbnRhaW5zRHVwbGljYXRlcyhjb25zdCBW
ZWMKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykK
KyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogc3RhdGljIGJvb2wgY2Fu
T2Zmc2NyZWVuQ2FudmFzZXNEZXRhY2goY29uc3QgVmVjdG9yPFJlZlB0cjxPZmZzY3JlZW5DYW52
YXM+PiYgb2Zmc2NyZWVuQ2FudmFzZXMpCiB7CiAgICAgSGFzaFNldDxPZmZzY3JlZW5DYW52YXMq
PiB2aXNpdGVkOwpAQCAtNDEyNCw3ICs0MTI0LDcgQEAgRXhjZXB0aW9uT3I8UmVmPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4+IAogICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsK
ICAgICBWZWN0b3I8UmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+PiBhcnJheUJ1ZmZlcnM7CiAgICAg
VmVjdG9yPFJlZlB0cjxJbWFnZUJpdG1hcD4+IGltYWdlQml0bWFwczsKLSNpZiBFTkFCTEUoT0ZG
U0NSRUVOX0NBTlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQog
ICAgIFZlY3RvcjxSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzPj4gb2Zmc2NyZWVuQ2FudmFzZXM7CiAj
ZW5kaWYKICNpZiBFTkFCTEUoV0VCX1JUQykKQEAgLTQxNTYsNyArNDE1Niw3IEBAIEV4Y2VwdGlv
bk9yPFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+PiAKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICB9CiAKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKyNpZiBFTkFCTEUoT0ZG
U0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogICAgICAgICBpZiAoYXV0byBvZmZzY3JlZW5DYW52
YXMgPSBKU09mZnNjcmVlbkNhbnZhczo6dG9XcmFwcGVkKHZtLCB0cmFuc2ZlcmFibGUuZ2V0KCkp
KSB7CiAgICAgICAgICAgICBvZmZzY3JlZW5DYW52YXNlcy5hcHBlbmQoV1RGTW92ZShvZmZzY3Jl
ZW5DYW52YXMpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNDE3NSw3ICs0MTc1LDcgQEAg
RXhjZXB0aW9uT3I8UmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+IAogCiAgICAgaWYgKGNvbnRh
aW5zRHVwbGljYXRlcyhpbWFnZUJpdG1hcHMpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
RGF0YUNsb25lRXJyb3IgfTsKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKyNpZiBFTkFC
TEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogICAgIGlmICghY2FuT2Zmc2NyZWVuQ2Fu
dmFzZXNEZXRhY2gob2Zmc2NyZWVuQ2FudmFzZXMpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKICNlbmRpZgpAQCAtNDE5Miw3ICs0MTkyLDcgQEAgRXhj
ZXB0aW9uT3I8UmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+IAogI2VuZGlmCiAgICAgc3RkOjp1
bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gc2hhcmVkQnVmZmVycyA9IG1ha2VV
bmlxdWU8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PigpOwogICAgIGF1dG8gY29kZSA9IENsb25l
U2VyaWFsaXplcjo6c2VyaWFsaXplKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSwgbWVzc2Fn
ZVBvcnRzLCBhcnJheUJ1ZmZlcnMsIGltYWdlQml0bWFwcywKLSNpZiBFTkFCTEUoT0ZGU0NSRUVO
X0NBTlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogICAgICAg
ICBvZmZzY3JlZW5DYW52YXNlcywKICNlbmRpZgogI2lmIEVOQUJMRShXRUJfUlRDKQpAQCAtNDIx
Myw3ICs0MjEzLDcgQEAgRXhjZXB0aW9uT3I8UmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+IAog
CiAgICAgYXV0byBiYWNraW5nU3RvcmVzID0gSW1hZ2VCaXRtYXA6OmRldGFjaEJpdG1hcHMoV1RG
TW92ZShpbWFnZUJpdG1hcHMpKTsKIAotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lm
IEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAgICAgVmVjdG9yPHN0ZDo6dW5p
cXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4+IGRldGFjaGVkQ2FudmFzZXM7CiAgICAg
Zm9yIChhdXRvIG9mZnNjcmVlbkNhbnZhcyA6IG9mZnNjcmVlbkNhbnZhc2VzKQogICAgICAgICBk
ZXRhY2hlZENhbnZhc2VzLmFwcGVuZChvZmZzY3JlZW5DYW52YXMtPmRldGFjaCgpKTsKQEAgLTQy
MjUsNyArNDIyNSw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+PiAK
ICNlbmRpZgogCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVl
KFdURk1vdmUoYnVmZmVyKSwgYmxvYlVSTHMsIGFycmF5QnVmZmVyQ29udGVudHNBcnJheS5yZWxl
YXNlUmV0dXJuVmFsdWUoKSwgY29udGV4dCA9PSBTZXJpYWxpemF0aW9uQ29udGV4dDo6V29ya2Vy
UG9zdE1lc3NhZ2UgPyBXVEZNb3ZlKHNoYXJlZEJ1ZmZlcnMpIDogbnVsbHB0ciwgV1RGTW92ZShi
YWNraW5nU3RvcmVzKQotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lmIEVOQUJMRShP
RkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAgICAgICAgICAgICAgICAgLCBXVEZNb3ZlKGRl
dGFjaGVkQ2FudmFzZXMpCiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX1JUQykKQEAgLTQyODUsNyAr
NDI4NSw3IEBAIEpTVmFsdWUgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGkKIEpTVmFs
dWUgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZShKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVmVj
dG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+JiBtZXNzYWdlUG9ydHMsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBibG9iVVJMcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JGaWxlUGF0aHMsIFNlcmlh
bGl6YXRpb25FcnJvck1vZGUgdGhyb3dFeGNlcHRpb25zKQogewogICAgIERlc2VyaWFsaXphdGlv
blJlc3VsdCByZXN1bHQgPSBDbG9uZURlc2VyaWFsaXplcjo6ZGVzZXJpYWxpemUoJmxleGljYWxH
bG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVBvcnRzLCBXVEZNb3ZlKG1fYmFja2lu
Z1N0b3JlcykKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NS
RUVOX0NBTlZBU19JTl9XT1JLRVJTKQogICAgICAgICAsIFdURk1vdmUobV9kZXRhY2hlZE9mZnNj
cmVlbkNhbnZhc2VzKQogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9SVEMpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAkocmV2
aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgTWVtb3J5
SGFuZGxlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NB
TlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogY2xhc3MgRGV0
YWNoZWRPZmZzY3JlZW5DYW52YXM7CiAjZW5kaWYKIGNsYXNzIElEQlZhbHVlOwpAQCAtMTIyLDcg
KzEyMiw3IEBAIHByaXZhdGU6CiAgICAgICAgICk7CiAKICAgICBTZXJpYWxpemVkU2NyaXB0VmFs
dWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJM
cywgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4sIHN0ZDo6dW5pcXVl
X3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+IHNoYXJlZEJ1ZmZlcnMsIFZlY3RvcjxPcHRp
b25hbDxJbWFnZUJpdG1hcEJhY2tpbmc+PiYmIGJhY2tpbmdTdG9yZXMKLSNpZiBFTkFCTEUoT0ZG
U0NSRUVOX0NBTlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQog
ICAgICAgICAsIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+
PiYmID0geyB9CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX1JUQykKQEAgLTE0MCw3ICsxNDAsNyBA
QCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+
IG1fYXJyYXlCdWZmZXJDb250ZW50c0FycmF5OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1
ZmZlckNvbnRlbnRzQXJyYXk+IG1fc2hhcmVkQnVmZmVyQ29udGVudHNBcnJheTsKICAgICBWZWN0
b3I8T3B0aW9uYWw8SW1hZ2VCaXRtYXBCYWNraW5nPj4gbV9iYWNraW5nU3RvcmVzOwotI2lmIEVO
QUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dP
UktFUlMpCiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVlbkNhbnZh
cz4+IG1fZGV0YWNoZWRPZmZzY3JlZW5DYW52YXNlczsKICNlbmRpZgogI2lmIEVOQUJMRShXRUJf
UlRDKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVz
Lmpzb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExB
dHRyaWJ1dGVzLmpzb24JKHJldmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC03MSw2ICs3
MSwxMSBAQAogICAgICAgICAgICAgInZhbHVlcyI6IFsiKiJdLAogICAgICAgICAgICAgInN1cHBv
cnRzQ29uanVuY3Rpb24iOiB0cnVlCiAgICAgICAgIH0sCisgICAgICAgICJDb25kaXRpb25hbEZv
cldvcmtlciI6IHsKKyAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFjZSIs
ICJuYW1lc3BhY2UiLCAiZGljdGlvbmFyeSIsICJkaWN0aW9uYXJ5LW1lbWJlciIsICJlbnVtIiwg
ImF0dHJpYnV0ZSIsICJvcGVyYXRpb24iLCAiY29uc3RhbnQiLCAiY2FsbGJhY2stZnVuY3Rpb24i
LCAiaW5jbHVkZXMiXSwKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioiXSwKKyAgICAgICAgICAg
ICJzdXBwb3J0c0Nvbmp1bmN0aW9uIjogdHJ1ZQorICAgICAgICB9LAogICAgICAgICAiQ29uZGl0
aW9uYWxseVJlYWRXcml0ZSI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImF0
dHJpYnV0ZSJdLAogICAgICAgICAgICAgInZhbHVlcyI6IFsiKiJdLApJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwJKHJldmlz
aW9uIDI3NzU0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vz
cy1pZGxzLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0yMjgsMTAgKzIyOCwxMSBAQCBmb3JlYWNoIG15
ICRpZGxGaWxlTmFtZSAoc29ydCBrZXlzICVpZGxGCiAgICAgICAgIH0KICAgICAgICAgJGV4cG9z
ZWRBdHRyaWJ1dGUgPSBzdWJzdHIoJGV4cG9zZWRBdHRyaWJ1dGUsIDEsIC0xKSBpZiBzdWJzdHIo
JGV4cG9zZWRBdHRyaWJ1dGUsIDAsIDEpIGVxICIoIjsKICAgICAgICAgbXkgQGdsb2JhbENvbnRl
eHRzID0gc3BsaXQoIiwiLCAkZXhwb3NlZEF0dHJpYnV0ZSk7Ci0gICAgICAgIG15ICgkYXR0cmli
dXRlQ29kZSwgJHdpbmRvd0FsaWFzZXMpID0gR2VuZXJhdGVDb25zdHJ1Y3RvckF0dHJpYnV0ZXMo
JGludGVyZmFjZU5hbWUsICRleHRlbmRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBmb3JlYWNoIG15
ICRnbG9iYWxDb250ZXh0IChAZ2xvYmFsQ29udGV4dHMpIHsKKyAgICAgICAgICAgIG15ICgkYXR0
cmlidXRlQ29kZSwgJHdpbmRvd0FsaWFzZXMpID0gR2VuZXJhdGVDb25zdHJ1Y3RvckF0dHJpYnV0
ZXMoJGludGVyZmFjZU5hbWUsICRleHRlbmRlZEF0dHJpYnV0ZXMsICRnbG9iYWxDb250ZXh0KTsK
ICAgICAgICAgICAgIGlmICgkZ2xvYmFsQ29udGV4dCBlcSAiV2luZG93IikgewogICAgICAgICAg
ICAgICAgICR3aW5kb3dDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOworICAgICAg
ICAgICAgICAgICR3aW5kb3dDb25zdHJ1Y3RvcnNDb2RlIC49ICR3aW5kb3dBbGlhc2VzIGlmICR3
aW5kb3dBbGlhc2VzOwogICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIldv
cmtlciIpIHsKICAgICAgICAgICAgICAgICAkd29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnND
b2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRl
eHQgZXEgIkRlZGljYXRlZFdvcmtlciIpIHsKQEAgLTI1MCw3ICsyNTEsNiBAQCBmb3JlYWNoIG15
ICRpZGxGaWxlTmFtZSAoc29ydCBrZXlzICVpZGxGCiAgICAgICAgICAgICAgICAgZGllICJVbnN1
cHBvcnRlZCBnbG9iYWwgY29udGV4dCAnJGdsb2JhbENvbnRleHQnIHVzZWQgaW4gW0V4cG9zZWRd
IGF0ICRpZGxGaWxlTmFtZSI7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgJHdp
bmRvd0NvbnN0cnVjdG9yc0NvZGUgLj0gJHdpbmRvd0FsaWFzZXMgaWYgJHdpbmRvd0FsaWFzZXM7
CiAgICAgfQogfQogCkBAIC0zODEsNiArMzgxLDE5IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9y
QXR0cmlidXRlcwogewogICAgIG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7CiAgICAgbXkgJGV4
dGVuZGVkQXR0cmlidXRlcyA9IHNoaWZ0OworICAgIG15ICRnbG9iYWxDb250ZXh0ID0gc2hpZnQ7
CisKKyAgICAjIEZJWE1FOiBSYXRoZXIgdGhhbiBiZWluZyBDb25kaXRpb25hbEZvcldvcmtlcj1G
T08sIHdlIG5lZWQgYSBzeW50YXggbGlrZSBDb25kaXRpb25hbEZvckNvbnRleHQ9KFdvcmtlcjpG
T08pLgorICAgIGlmICgkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbmRpdGlvbmFsRm9yV29ya2Vy
In0gJiYgJGdsb2JhbENvbnRleHQgZXEgIldvcmtlciIpIHsKKyAgICAgIG15ICRjb25kaXRpb25h
bEZvcldvcmtlciA9ICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWxGb3JXb3JrZXIi
fTsKKyAgICAgIG15ICRleGlzdGluZ0NvbmRpdGlvbmFsID0gJGV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDb25kaXRpb25hbCJ9OworICAgICAgaWYgKCRleGlzdGluZ0NvbmRpdGlvbmFsKSB7CisgICAg
ICAgICRleGlzdGluZ0NvbmRpdGlvbmFsIC49ICImIiAuICRjb25kaXRpb25hbEZvcldvcmtlcjsK
KyAgICAgIH0gZWxzZSB7CisgICAgICAgICRleGlzdGluZ0NvbmRpdGlvbmFsID0gJGNvbmRpdGlv
bmFsRm9yV29ya2VyOworICAgICAgfQorICAgICAgJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25k
aXRpb25hbCJ9ID0gJGV4aXN0aW5nQ29uZGl0aW9uYWw7CisgICAgfQogCiAgICAgbXkgJGNvZGUg
PSAiICAgICI7CiAgICAgbXkgQGV4dGVuZGVkQXR0cmlidXRlc0xpc3Q7CkBAIC0zOTAsNiArNDAz
LDcgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JBdHRyaWJ1dGVzCiAgICAgICAgIHx8ICRhdHRy
aWJ1dGVOYW1lIGVxICJQdWJsaWNJZGVudGlmaWVyIiB8fCAkYXR0cmlidXRlTmFtZSBlcSAiRGlz
YWJsZWRCeVF1aXJrIiB8fCAkYXR0cmlidXRlTmFtZSBlcSAiRW5hYmxlZEJ5UXVpcmsiCiAgICAg
ICAgIHx8ICRhdHRyaWJ1dGVOYW1lIGVxICJFbmFibGVkRm9yQ29udGV4dCIgfHwgJGF0dHJpYnV0
ZU5hbWUgZXEgIkN1c3RvbUVuYWJsZWQiKSB8fCAkYXR0cmlidXRlTmFtZSBlcSAiTGVnYWN5RmFj
dG9yeUZ1bmN0aW9uRW5hYmxlZEJ5U2V0dGluZyI7CiAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1
dGUgPSAkYXR0cmlidXRlTmFtZTsKKyAgICAgIAogICAgICAgJGV4dGVuZGVkQXR0cmlidXRlIC49
ICI9IiAuICRleHRlbmRlZEF0dHJpYnV0ZXMtPnskYXR0cmlidXRlTmFtZX0gdW5sZXNzICRleHRl
bmRlZEF0dHJpYnV0ZXMtPnskYXR0cmlidXRlTmFtZX0gZXEgIlZBTFVFX0lTX01JU1NJTkciOwog
ICAgICAgcHVzaChAZXh0ZW5kZWRBdHRyaWJ1dGVzTGlzdCwgJGV4dGVuZGVkQXR0cmlidXRlKTsK
ICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAko
cmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAgdHlwZWRlZiAoCiAKICAgICBE
T01TdHJpbmcgdG9EYXRhVVJMKG9wdGlvbmFsIERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBhbnkg
cXVhbGl0eSk7CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHVuZGVmaW5l
ZCB0b0Jsb2IoQmxvYkNhbGxiYWNrIGNhbGxiYWNrLCBvcHRpb25hbCBET01TdHJpbmcgdHlwZSwg
b3B0aW9uYWwgYW55IHF1YWxpdHkpOwotICAgIFtDb25kaXRpb25hbD1PRkZTQ1JFRU5fQ0FOVkFT
LCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBPZmZzY3JlZW5DYW52YXMgdHJhbnNm
ZXJDb250cm9sVG9PZmZzY3JlZW4oKTsKKyAgICBbQ29uZGl0aW9uYWw9T0ZGU0NSRUVOX0NBTlZB
UywgRW5hYmxlZEF0UnVudGltZT1PZmZzY3JlZW5DYW52YXMsIENhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRdIE9mZnNjcmVlbkNhbnZhcyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigp
OwogCiAgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwgQ2FsbFdpdGg9RG9jdW1lbnQsIE5l
d09iamVjdF0gTWVkaWFTdHJlYW0gY2FwdHVyZVN0cmVhbShvcHRpb25hbCBkb3VibGUgZnJhbWVS
ZXF1ZXN0UmF0ZSk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52
YXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFz
LmNwcAkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5D
YW52YXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Myw2ICs3MywxNyBAQCBXZWFrUHRyPEhUTUxD
YW52YXNFbGVtZW50PiBEZXRhY2hlZE9mZnNjCiAgICAgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9w
bGFjZWhvbGRlckNhbnZhcywgbnVsbHB0cik7CiB9CiAKK2Jvb2wgT2Zmc2NyZWVuQ2FudmFzOjpl
bmFibGVkRm9yQ29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQoreworI2lm
IEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCisgICAgaWYgKGNvbnRleHQuaXNX
b3JrZXJHbG9iYWxTY29wZSgpKQorICAgICAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5vZmZzY3JlZW5DYW52YXNJbldvcmtlcnNFbmFibGVkKCk7Cisj
ZW5kaWYKKworICAgIEFTU0VSVChjb250ZXh0LmlzRG9jdW1lbnQoKSk7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKIFJlZjxPZmZzY3JlZW5DYW52YXM+IE9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHVuc2lnbmVkIHdp
ZHRoLCB1bnNpZ25lZCBoZWlnaHQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT2Zmc2Ny
ZWVuQ2FudmFzKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHdpZHRoLCBoZWlnaHQpKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuaAkocmV2aXNpb24gMjc3NTQ0KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuaAkod29ya2luZyBjb3B5KQpAQCAt
MTEyLDYgKzExMiw4IEBAIHB1YmxpYzoKICAgICAgICAgV2ViZ2wyCiAgICAgfTsKIAorICAgIHN0
YXRpYyBib29sIGVuYWJsZWRGb3JDb250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKwog
ICAgIHN0YXRpYyBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpOwogICAgIHN0YXRpYyBSZWY8
T2Zmc2NyZWVuQ2FudmFzPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6dW5p
cXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4mJik7CiAgICAgc3RhdGljIFJlZjxPZmZz
Y3JlZW5DYW52YXM+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSFRNTENhbnZhc0Vs
ZW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5pZGwJKHJl
dmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksOCBAQCBlbnVtIE9mZnNjcmVlblJlbmRlcmlu
Z0NvbnRleHRUeXBlCiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsLAogICAgIEVuYWJsZWRB
dFJ1bnRpbWU9T2Zmc2NyZWVuQ2FudmFzLAogICAgIENvbmRpdGlvbmFsPU9GRlNDUkVFTl9DQU5W
QVMsCisgICAgQ29uZGl0aW9uYWxGb3JXb3JrZXI9T0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVIs
CisgICAgRW5hYmxlZEZvckNvbnRleHQsCiAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlcikKIF0g
aW50ZXJmYWNlIE9mZnNjcmVlbkNhbnZhcyA6IEV2ZW50VGFyZ2V0IHsKICAgICBbQ2FsbFdpdGg9
U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gY29uc3RydWN0b3IoW0VuZm9yY2VSYW5nZV0gdW5zaWdu
ZWQgbG9uZyB3aWR0aCwgW0VuZm9yY2VSYW5nZV0gdW5zaWduZWQgbG9uZyBoZWlnaHQpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZz
Y3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCShyZXZpc2lvbiAyNzc1NDQpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiQ1NTUHJv
cGVydHlQYXJzZXJIZWxwZXJzLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlQYXJzZXJXb3JrZXJT
YWZlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1
ZGUgIlN0eWxlUmVzb2x2ZUZvckZvbnRSYXcuaCIKICNpbmNsdWRlICJUZXh0TWV0cmljcy5oIgpA
QCAtNDgsNiArNDksMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEX0lNUEwoT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTsKIAorYm9vbCBP
ZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmVuYWJsZWRGb3JDb250ZXh0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCit7CisjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5W
QVNfSU5fV09SS0VSUykKKyAgICBpZiAoY29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkpCisg
ICAgICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLm9m
ZnNjcmVlbkNhbnZhc0luV29ya2Vyc0VuYWJsZWQoKTsKKyNlbmRpZgorCisgICAgQVNTRVJUKGNv
bnRleHQuaXNEb2N1bWVudCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogT2Zmc2NyZWVuQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQo
Q2FudmFzQmFzZSYgY2FudmFzLCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncyYmIHNl
dHRpbmdzKQogICAgIDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZShjYW52YXMsIFdURk1v
dmUoc2V0dGluZ3MpLCBmYWxzZSkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
CShyZXZpc2lvbiAyNzc1NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3Jl
ZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQgZmluYWwgOiBwdWJsaWMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZSB7CiAg
ICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQpOwogcHVibGljOgorICAgIHN0YXRpYyBib29sIGVuYWJsZWRGb3JDb250ZXh0KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmKTsKKwogICAgIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RChDYW52YXNCYXNlJiwgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MmJik7CiAgICAg
dmlydHVhbCB+T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKCk7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVu
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBAQAogICAgIEN1c3RvbUlzUmVhY2hhYmxl
LAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9T2Zmc2NyZWVuQ2FudmFzLAogICAgIENvbmRpdGlvbmFs
PU9GRlNDUkVFTl9DQU5WQVMsCisgICAgQ29uZGl0aW9uYWxGb3JXb3JrZXI9T0ZGU0NSRUVOX0NB
TlZBU19JTl9XT1JLRVIsCisgICAgRW5hYmxlZEZvckNvbnRleHQsCiAgICAgRXhwb3NlZD0oV2lu
ZG93LFdvcmtlciksCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAgSlNDdXN0b21NYXJr
RnVuY3Rpb24sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuaAkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDYgKzY0LDExIEBAIHB1Ymxp
YzoKICAgICBib29sIG9mZnNjcmVlbkNhbnZhc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lz
T2Zmc2NyZWVuQ2FudmFzRW5hYmxlZDsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoT0ZGU0NSRUVO
X0NBTlZBU19JTl9XT1JLRVJTKQorICAgIHZvaWQgc2V0T2Zmc2NyZWVuQ2FudmFzSW5Xb3JrZXJz
RW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzT2Zmc2NyZWVuQ2FudmFzSW5Xb3JrZXJzRW5h
YmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgb2Zmc2NyZWVuQ2FudmFzSW5Xb3JrZXJzRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNPZmZzY3JlZW5DYW52YXNJbldvcmtlcnNFbmFibGVk
OyB9CisjZW5kaWYKKwogICAgIHZvaWQgc2V0Q2FjaGVBUElFbmFibGVkKGJvb2wgaXNFbmFibGVk
KSB7IG1faXNDYWNoZUFQSUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIGNhY2hlQVBJ
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDYWNoZUFQSUVuYWJsZWQ7IH0KIApAQCAtMjYy
LDYgKzI2Nyw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCiAgICAg
Ym9vbCBtX2lzT2Zmc2NyZWVuQ2FudmFzRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKKyNpZiBF
TkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQorICAgIGJvb2wgbV9pc09mZnNjcmVl
bkNhbnZhc0luV29ya2Vyc0VuYWJsZWQgeyBmYWxzZSB9OworI2VuZGlmCiAgICAgYm9vbCBtX2lz
Q2FjaGVBUElFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNXZWJTb2NrZXRFbmFibGVk
IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9mZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQgeyBmYWxzZSB9
OwpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUuaAkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1
MCw3IEBAIGNsYXNzIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOwogY2xhc3MgUmVxdWVzdEFuaW1h
dGlvbkZyYW1lQ2FsbGJhY2s7CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKLSNpZiBF
TkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9X
T1JLRVJTKQogY2xhc3MgV29ya2VyQW5pbWF0aW9uQ29udHJvbGxlcjsKIAogdXNpbmcgQ2FsbGJh
Y2tJZCA9IGludDsKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogCiAgICAgRGVkaWNhdGVkV29y
a2VyVGhyZWFkJiB0aHJlYWQoKTsKIAotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lm
IEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAgICAgQ2FsbGJhY2tJZCByZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoUmVmPFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrPiYmKTsK
ICAgICB2b2lkIGNhbmNlbEFuaW1hdGlvbkZyYW1lKENhbGxiYWNrSWQpOwogI2VuZGlmCkBAIC05
NCw3ICs5NCw3IEBAIHByaXZhdGU6CiAKICAgICBTdHJpbmcgbV9uYW1lOwogCi0jaWYgRU5BQkxF
KE9GRlNDUkVFTl9DQU5WQVMpCisjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVNfSU5fV09SS0VS
UykKICAgICBSZWZQdHI8V29ya2VyQW5pbWF0aW9uQ29udHJvbGxlcj4gbV93b3JrZXJBbmltYXRp
b25Db250cm9sbGVyOwogI2VuZGlmCiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9E
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5pZGwJKHJldmlzaW9uIDI3NzU0
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw1ICs0Nyw1IEBACiAgICAgYXR0cmlidXRlIEV2ZW50
SGFuZGxlciBvbm1lc3NhZ2U7CiB9OwogCi1bQ29uZGl0aW9uYWw9T0ZGU0NSRUVOX0NBTlZBUywg
RW5hYmxlZEF0UnVudGltZT1PZmZzY3JlZW5DYW52YXNdIERlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlIGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI7CitbQ29uZGl0aW9uYWw9T0ZGU0NS
RUVOX0NBTlZBU19JTl9XT1JLRVJTLCBFbmFibGVkQXRSdW50aW1lPU9mZnNjcmVlbkNhbnZhc0lu
V29ya2Vyc10gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgQW5pbWF0aW9uRnJh
bWVQcm92aWRlcjsKIFtDb25kaXRpb25hbD1XRUJfUlRDLCBFbmFibGVkQnlTZXR0aW5nPVdlYlJU
Q0luc2VydGFibGVTdHJlYW1zXSBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBS
VENSdHBTY3JpcHRUcmFuc2Zvcm1Qcm92aWRlcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJBbmltYXRpb25Db250cm9sbGVyLmNwcAkocmV2aXNpb24gMjc3
NTQ0KQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJBbmltYXRpb25Db250cm9sbGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIldvcmtlckFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKIAotI2lmIEVOQUJMRShP
RkZTQ1JFRU5fQ0FOVkFTKQorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMp
CiAKICNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUgIlJlcXVlc3RBbmltYXRpb25G
cmFtZUNhbGxiYWNrLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckFuaW1h
dGlvbkNvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckFuaW1hdGlvbkNvbnRyb2xsZXIuaAkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJBbmltYXRpb25Db250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDcgKzI3LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoT0ZGU0NSRUVO
X0NBTlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogCiAjaW5j
bHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5o
IgpJbmRleDogU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UJKHJldmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9j
bWFrZS9PcHRpb25zR1RLLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsNiArMTcwLDcgQEAg
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFXwogV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJ
REFUSU9OIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFIFBSSVZBVEUgT04pCiBXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUyBQUklW
QVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCitXRUJLSVRfT1BUSU9OX0RFRkFV
TFRfUE9SVF9WQUxVRShFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTIFBSSVZBVEUg
JHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKIFdFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9USFVOREVSIFBSSVZBVEUgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZB
VUxUX1BPUlRfVkFMVUUoRU5BQkxFX1BFUklPRElDX01FTU9SWV9NT05JVE9SIFBSSVZBVEUgT04p
CiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUE9JTlRFUl9MT0NLIFBS
SVZBVEUgT04pCkluZGV4OiBTb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQkocmV2aXNpb24gMjc3NTQ0KQorKysg
U291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3
LDcgQEAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFXwogV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX05PVElGSUNBVElPTlMgUFJJVkFURSBPTikK
IFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NU
QUxFX1dISUxFX1JFVkFMSURBVEUgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJ
TUVOVEFMX0ZFQVRVUkVTfSkKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV9PRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMgUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5U
QUxfRkVBVFVSRVN9KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1BF
UklPRElDX01FTU9SWV9NT05JVE9SIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTIFBSSVZBVEUgT04pCiBX
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfU0VSVklDRV9XT1JLRVIgUFJJ
VkFURSBPTikKSW5kZXg6IFNvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UJKHJldmlzaW9uIDI3NzU0
NCkKKysrIFNvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQkod29ya2luZyBjb3B5KQpA
QCAtMjA1LDYgKzIwNSw3IEBAIG1hY3JvKFdFQktJVF9PUFRJT05fQkVHSU4pCiAgICAgV0VCS0lU
X09QVElPTl9ERUZJTkUoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJTEVfUkVWQUxJREFU
RSAiVG9vZ2xlIG5ldHdvcmsgY2FjaGUgc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSBjYWNoaW5nIHN0
cmF0ZWd5IiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfTk9U
SUZJQ0FUSU9OUyAiVG9nZ2xlIE5vdGlmaWNhdGlvbnMgc3VwcG9ydCIgUFJJVkFURSBPTikKICAg
ICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUyAiVG9nZ2xlIE9m
ZnNjcmVlbkNhbnZhcyBzdXBwb3J0IiBQUklWQVRFIE9GRikKKyAgICBXRUJLSVRfT1BUSU9OX0RF
RklORShFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTICJUb2dnbGUgT2Zmc2NyZWVu
Q2FudmFzIGluIFdvcmtlcnMgc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElP
Tl9ERUZJTkUoRU5BQkxFX1RIVU5ERVIgIlRvZ2dsZSBFTUUgVjMgVGh1bmRlciBzdXBwb3J0IiBQ
UklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfT1JJRU5UQVRJT05f
RVZFTlRTICJUb2dnbGUgT3JpZW50YXRpb24gRXZlbnRzIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQog
ICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gg
IlRvZ2dsZSBhY2NlbGVyYXRlZCBzY3JvbGxpbmcgc3VwcG9ydCIgUFJJVkFURSBPRkYpCkluZGV4
OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lv
biAyNzc1NDcpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NiBAQAorMjAyMS0wNS0xNSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAg
ICAgQWxsb3cgY29uZGl0aW9uYWxseSBlbmFibGluZyBPZmZzY3JlZW5DYW52YXMgb25seSBmb3Ig
bm9uLXdvcmtlciBjb250ZXh0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI1ODQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG06CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHA6CisgICAgICAgIChXVFI6OlRlc3RP
cHRpb25zOjpkZWZhdWx0cyk6CisgICAgICAgIE1hdGNoIGN1cnJlbnQgYmVoYXZpb3Igb2YgRU5B
QkxFX09GRlNDUkVFTl9DQU5WQVMgYW5kIE9mZnNjcmVlbkNhbnZhc0VuYWJsZWQKKyAgICAgICAg
Zm9yIEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMgYW5kIE9mZnNjcmVlbkNhbnZh
c0luV29ya2Vyc0VuYWJsZWQuCisKIDIwMjEtMDUtMTUgIEFha2FzaCBKYWluICA8YWFrYXNoX2ph
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIHJlcG9ydC1ub24taW5jbHVzaXZlLWxhbmd1YWdlIHNo
b3VsZCBza2lwIG5vZGVfbW9kdWxlcyBkaXJlY3RvcnkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cGVybC9GZWF0dXJlTGlzdC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtp
dHBlcmwvRmVhdHVyZUxpc3QucG0JKHJldmlzaW9uIDI3NzU0NCkKKysrIFRvb2xzL1NjcmlwdHMv
d2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQkod29ya2luZyBjb3B5KQpAQCAtMTI5LDYgKzEyOSw3
IEBAIG15ICgKICAgICAkbmV0d29ya0NhY2hlU3RhbGVXaGlsZVJldmFsaWRhdGVTdXBwb3J0LAog
ICAgICRub3RpZmljYXRpb25zU3VwcG9ydCwKICAgICAkb2Zmc2NyZWVuQ2FudmFzU3VwcG9ydCwK
KyAgICAkb2Zmc2NyZWVuQ2FudmFzSW5Xb3JrZXJzU3VwcG9ydCwKICAgICAkdGh1bmRlclN1cHBv
cnQsCiAgICAgJG9yaWVudGF0aW9uRXZlbnRzU3VwcG9ydCwKICAgICAkb3ZlcmZsb3dTY3JvbGxp
bmdUb3VjaFN1cHBvcnQsCkBAIC00MjQsNiArNDI1LDkgQEAgbXkgQGZlYXR1cmVzID0gKAogICAg
IHsgb3B0aW9uID0+ICJvZmZzY3JlZW4tY2FudmFzIiwgZGVzYyA9PiAiVG9nZ2xlIE9mZnNjcmVl
bkNhbnZhcyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX09GRlNDUkVFTl9DQU5W
QVMiLCB2YWx1ZSA9PiBcJG9mZnNjcmVlbkNhbnZhc1N1cHBvcnQgfSwKIAorICAgIHsgb3B0aW9u
ID0+ICJvZmZzY3JlZW4tY2FudmFzLWluLXdvcmtlcnMiLCBkZXNjID0+ICJUb2dnbGUgT2Zmc2Ny
ZWVuQ2FudmFzIGluIFdvcmtlcnMgc3VwcG9ydCIsCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9P
RkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMiLCB2YWx1ZSA9PiBcJG9mZnNjcmVlbkNhbnZhc0lu
V29ya2Vyc1N1cHBvcnQgfSwKKwogICAgIHsgb3B0aW9uID0+ICJ0aHVuZGVyIiwgZGVzYyA9PiAi
VG9nZ2xlIFRodW5kZXIgQ0RNIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVEhV
TkRFUiIsIHZhbHVlID0+IFwkdGh1bmRlclN1cHBvcnQgfSwKIApJbmRleDogVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAJKHJldmlzaW9uIDI3NzU0NCkKKysrIFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNiArMTAw
LDcgQEAgY29uc3QgVGVzdEZlYXR1cmVzJiBUZXN0T3B0aW9uczo6ZGVmYXVsdAogICAgICAgICAg
ICAgeyAiTmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcmsiLCBmYWxzZSB9LAogICAg
ICAgICAgICAgeyAiT2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkIiwgdHJ1ZSB9LAog
ICAgICAgICAgICAgeyAiT2Zmc2NyZWVuQ2FudmFzRW5hYmxlZCIsIHRydWUgfSwKKyAgICAgICAg
ICAgIHsgIk9mZnNjcmVlbkNhbnZhc0luV29ya2Vyc0VuYWJsZWQiLCB0cnVlIH0sCiAgICAgICAg
ICAgICB7ICJQYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCIsIGZh
bHNlIH0sCiAgICAgICAgICAgICB7ICJQbHVnaW5zRW5hYmxlZCIsIHRydWUgfSwKICAgICAgICAg
ICAgIHsgIlJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1BsYXliYWNrIiwgZmFsc2UgfSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428750</attachid>
            <date>2021-05-15 16:58:14 -0700</date>
            <delta_ts>2021-05-15 16:58:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225845-20210515165813.patch</filename>
            <type>text/plain</type>
            <size>89175</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDI3NzU0
NCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA1
LTE1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBjb25k
aXRpb25hbGx5IGVuYWJsaW5nIE9mZnNjcmVlbkNhbnZhcyBvbmx5IGZvciBub24td29ya2VyIGNv
bnRleHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjU4NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9P
cHRpb25zV1BFLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5j
bWFrZToKKyAgICAgICAgTWF0Y2ggY3VycmVudCBiZWhhdmlvciBvZiBFTkFCTEVfT0ZGU0NSRUVO
X0NBTlZBUyBmb3IgRU5BQkxFX09GRlNDUkVFTl9DQU5WQVNfSU5fV09SS0VSUy4KKwogMjAyMS0w
NS0xNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZC4gVXBkYXRlIE9wdGlvbnNHVEsuY21ha2UgYW5kIE5FV1MgZm9yIDIuMzMu
MSByZWxlYXNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzc1NDQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNDIgQEAKKzIwMjEtMDUt
MTUgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBjcmVhdGluZy9hY2Nlc3Npbmcvc2V0dGluZyBub24tc1JHQiBJbWFnZURhdGEgdmlhIGNh
bnZhcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1
ODQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dDogZmFzdC9jYW52YXMvY2FudmFzLWNvbG9yLXNwYWNlLWRpc3BsYXktcDMtSW1hZ2VEYXRhLmh0
bWwKKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgYWNjZXNzaW5nIG5vbi1zUkdCIChvbmx5IERp
c3BsYXlQMyBmb3Igbm93IGR1ZQorICAgICAgICB0byB0aGUgc3BlY2lmaWNhdGlvbiwgYnV0IHRo
ZSBzdXBwb3J0IGlzIGdlbmVyYWwpIHBpeGVsIGRhdGEgaW4KKyAgICAgICAgSFRNTCBjYW52YXMu
CisKKyAgICAgICAgVXBkYXRlcyBJbWFnZURhdGEgY29uc3RydWN0b3JzIGFuZCBDYW52YXNJbWFn
ZURhdGEgb3BlcmF0aW9ucyB0byAKKyAgICAgICAgdGFrZSBvcHRpb25hbCBJbWFnZURhdGFTZXR0
aW5ncyBkaWN0aW9uYXJpZXMsIHdoaWNoIGNvbnRhaW4gYW4gCisgICAgICAgIG9wdGlvbmFsIGNv
bG9yIHNwYWNlIChvdGhlcndpc2UgZGVmYXVsdGluZyBiYWNrIHRvIHNSR0IpLiAKKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9J
bWFnZURhdGFTZXR0aW5ncy5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0ltYWdlRGF0YVNldHRp
bmdzLmlkbDogQWRkZWQuCisgICAgICAgIEFkZCBuZXcgSW1hZ2VEYXRhU2V0dGluZ3MuaWRsIGFu
ZCByZWxhdGVkIGZpbGVzLgorCisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkSW1h
Z2VCaXRtYXApOgorICAgICAgICBGaXhlcyBGSVhNRSBhbmQgdXNlcyBQaXhlbEJ1ZmZlciBkaXJl
Y3RseSByYXRoZXIgdGhhbiBhbGxvY2F0aW5nCisgICAgICAgIGFuIHVubmVjZXNzYXJ5IEltYWdl
RGF0YS4gVGhpcyB3YXMgZG9uZSBub3cgc2luY2UgdGhlIHJlbGV2ZW50CisgICAgICAgIEltYWdl
RGF0YSBjb25zdHJ1Y3RvciBoYXMgZ29uZSBhd2F5LgorCisgICAgICAgICogaHRtbC9JbWFnZURh
dGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZURhdGFTaXplKToKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlRGF0YTo6Y29tcHV0ZUNvbG9yU3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VEYXRhOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEYXRhOjpjcmVhdGVV
bmluaXRpYWxpemVkKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGF0YTo6SW1hZ2VEYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGF0YTo6cGl4ZWxCdWZmZXIgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VEYXRhOjpkYXRhU2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbWFnZURhdGE6OmRlZXBDbG9uZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRt
bC9JbWFnZURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGF0YTo6c2l6ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURhdGE6OndpZHRoIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlRGF0YTo6aGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
RGF0YTo6ZGF0YSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURhdGE6OmNvbG9yU3Bh
Y2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEYXRhOjpwaXhlbEJ1ZmZlciBjb25z
dCk6IERlbGV0ZWQuCisKKyAgICAgICAgLSBSZXdvcmtlZCBJbWFnZURhdGEgdG8gbm8gbG9uZ2Vy
IHN0b3JlIGEgUGl4ZWxCdWZmZXIsIHdoaWNoIGhhcworICAgICAgICAgIGV4dHJhbmVvdXMgaW5m
b3JtYXRpb24gaW4gaXQsIGJ1dCByYXRoZXIgdG8gc3RvcmUganVzdCB3aGF0IGl0CisgICAgICAg
ICAgbmVlZHMgSW50U2l6ZSwgUmVmPEpTQzo6VWludDhDbGFtcGVkQXJyYXk+LCBhbmQgbm93IFBy
ZWRlZmluZWRDb2xvclNwYWNlLgorICAgICAgICAtIFVwZGF0ZXMgY3JlYXRlIGZ1bmN0aW9ucyBm
b3IgbmV3IG9wdGlvbmFsIEltYWdlRGF0YVNldHRpbmdzLgorICAgICAgICAtIEFkZHMgY3JlYXRl
VW5pbml0aWFsaXplZCB3aGljaCBmb2xsb3dzIHNwZWMgbGFuZ3VhZ2UgZm9yIEltYWdlRGF0YSBj
cmVhdGlvbgorICAgICAgICAgIGFuZCBpcyB1c2VkIGJ5IENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RCB0byBjcmVhdGUgSW1hZ2VEYXRhIG9iamVjdHMgb2Ygd2l0aAorICAgICAgICAgIHRoZSByaWdo
dCBjb2xvciBzcGFjZXMsIGFsbG93aW5nIGZvciBmYWxsYmFjayB0byB0aGUgY2FudmFzJyBvd24g
Y29sb3Igc3BhY2UKKyAgICAgICAgICB3aGVuIG5vIEltYWdlRGF0YVNldHRpbmdzIGNvbG9yIHNw
YWNlIGlzIHByb3ZpZGVkLiBJdCBpcyB1bmluaXRpYWxpemVkIGFuZAorICAgICAgICAgIHRoZXJl
Zm9yZSByZXF1aXJlcyB0aGUgY2xpZW50IHRvIGluaXRpYWxpemUgdGhlIGRhdGEgdG8gYWxsb3cg
Zm9yIHN1cHBvcnQgZm9yCisgICAgICAgICAgbm8gYWxwaGEgc3VwcG9ydCBpbiB0aGUgZnV0dXJl
LCB3aGljaCByZXF1aXJlcyBhIG5vbi16ZXJvIGluaXRpYWxpemF0aW9uIHBhdHRlcm4uCisKKyAg
ICAgICAgKiBodG1sL0ltYWdlRGF0YS5pZGw6CisgICAgICAgIEFkZCBvcHRpb25hbCBJbWFnZURh
dGFTZXR0aW5ncyBwYXJhbWV0ZXJzIGFuZCB0aGUgbmV3IGNvbG9yU3BhY2UgYXR0cmlidXRlLgor
CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzSW1hZ2VEYXRhLmlkbDoKKyAgICAgICAgQWRk
IG9wdGlvbmFsIEltYWdlRGF0YVNldHRpbmdzIHBhcmFtZXRlcnMuCisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmg6CisgICAgICAgICogaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojppbml0aWFsaXplRW1wdHlJbWFnZURhdGEpOgorICAgICAgICBBZGQgaGVscGVyIHRvIGluaXRp
YWxpemUgdGhlIEltYWdlRGF0YSBidWZmZXIuIFJpZ2h0IG5vdyBpdCBhbHdheXMgY2FsbHMKKyAg
ICAgICAgemVyb0ZpbGwoKSwgYnV0IGluIHRoZSBmdXR1cmUgaXQgd2lsbCBuZWVkIHRvIGRvIG1v
cmUuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
QmFzZTo6Y3JlYXRlSW1hZ2VEYXRhIGNvbnN0KToKKyAgICAgICAgVXBkYXRlIHRvIGFjY291bnQg
Zm9yIHRoaXMgZnVuY3Rpb24gYmVpbmcgYWJsZSB0byB0aHJvdyBhbiBleGNlcHRpb24gKHdoZW4g
CisgICAgICAgIG91dCBvZiBtZW1vcnkpIGFuZCB1c2UgdGhlIG5ldyBjcmVhdGVVbmluaXRpYWxp
emVkL2luaXRpYWxpemVFbXB0eUltYWdlRGF0YQorICAgICAgICB0byBjcmVhdGUgYSBjb3JyZWN0
bHkgY29sb3Igc3BhY2VkIEltYWdlRGF0YS4KKworICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQmFzZTo6Y3JlYXRlSW1hZ2VEYXRhIGNvbnN0KToKKyAgICAgICAgVXBk
YXRlIGZvciBuZXcgb3B0aW9uYWwgSW1hZ2VEYXRhU2V0dGluZ3MgYW5kIHVzZSB0aGUgbmV3IGNy
ZWF0ZVVuaW5pdGlhbGl6ZWQKKyAgICAgICAgaW5pdGlhbGl6ZUVtcHR5SW1hZ2VEYXRhIHRvIGNy
ZWF0ZSBhIGNvcnJlY3RseSBjb2xvciBzcGFjZWQgSW1hZ2VEYXRhLgorCisgICAgICAgIChXZWJD
b3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpnZXRJbWFnZURhdGEgY29uc3QpOgor
ICAgICAgICBNb3ZlcyBwYXJhbWV0ZXIgY2hlY2tzIHRvIHRoZSBiZWdpbmluZyB0byBtYXRjaCB0
aGUgc3BlYywgYW5kIHVzZXMgbmV3IAorICAgICAgICBjcmVhdGVVbmluaXRpYWxpemVkL2luaXRp
YWxpemVFbXB0eUltYWdlRGF0YSB0byBjcmVhdGUgYSBjb3JyZWN0bHkgY29sb3IgCisgICAgICAg
IHNwYWNlZCBJbWFnZURhdGEuIEFsc28sIHVzZSB0aGUgSW1hZ2VEYXRhJ3MgY29sb3Igc3BhY2Ug
d2hlbiBnZXR0aW5nCisgICAgICAgIHRoZSBwaXhlbCBidWZmZXIgdG8gYWN0dWFsbHkgcmV0dXJu
IHRoZSByaWdodCBkYXRhIQorCisgICAgICAgICogaHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9y
U3BhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9QcmVkZWZpbmVkQ29sb3JTcGFjZSk6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuaDoKKyAgICAgICAgQWRk
IGNvbnZlcnNpb24gZnVuY3Rpb24gZnJvbSBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgdG8gUHJlZGVm
aW5lZENvbG9yU3BhY2UuCisgICAgICAgIFNpbmNlIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBpcyBh
IHN1cGVyc2V0IG9mIFByZWRlZmluZWRDb2xvclNwYWNlLCB0aGlzIGNhbgorICAgICAgICBmYWls
LCBzbyB0aGlzIGNvbnZlcnNpb24gcmV0dXJucyBhbiBPcHRpb25hbC4KKworICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JDYW52YXMuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JDYW52YXNDYWxsVHJhY2VyLmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2Fu
dmFzQ2FsbFRyYWNlci5oOgorICAgICAgICBTdHViIG91dCBpbnNwZWN0b3Igc3VwcG9ydCBmb3Ig
SW1hZ2VEYXRhU2V0dGluZ3MuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlckJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpn
ZXRQaXhlbEJ1ZmZlciBjb25zdCk6CisgICAgICAgIFVzZSB0aGUgSW1hZ2VCdWZmZXIncyBhY3R1
YWwgY29sb3Igc3BhY2UgYXMgdGhlIHNvdXJjZSBjb2xvciBzcGFjZQorICAgICAgICByYXRoZXIg
dGhhbiBoYXJkIGNvZGluZyBzUkdCLiBUaGlzIGFsbG93cyB0aGUgY29sb3Igc3BhY2UgY29udmVy
c2lvbgorICAgICAgICB0byB0YWtlIHBsYWNlLiBBbHNvIHJlbW92ZSBzb21lIHVubmVjZXNzYXJ5
IHRlbXBvcmFyeSB2YXJpYWJsZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQmFj
a2VuZDo6cHV0UGl4ZWxCdWZmZXIpOgorICAgICAgICBVc2UgdGhlIEltYWdlQnVmZmVyJ3MgYWN0
dWFsIGNvbG9yIHNwYWNlIGFzIHRoZSBkZXN0aW5hdGlvbiBjb2xvciBzcGFjZQorICAgICAgICBy
YXRoZXIgdGhhbiBoYXJkIGNvZGluZyBzUkdCLiBUaGlzIGFsbG93cyB0aGUgY29sb3Igc3BhY2Ug
Y29udmVyc2lvbgorICAgICAgICB0byB0YWtlIHBsYWNlLiBBbHNvIHJlbW92ZSBzb21lIHVubmVj
ZXNzYXJ5IHRlbXBvcmFyeSB2YXJpYWJsZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9QaXhlbEJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQaXhlbEJ1ZmZlcjo6dHJ5Q3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBpeGVsQnVmZmVyOjpQaXhlbEJ1ZmZlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlBpeGVsQnVmZmVyOjp0YWtlRGF0YSk6CisgICAgICAgIEFkZCBhIGZldyBoZWxwZXJzIHRvIGFs
bG93IGNyZWF0aW9uZyB0by9mcm9tIFBpeGVsQnVmZmVyCisgICAgICAgIGEgYml0IGVhc2llci4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyQ29udmVyc2lvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0SW1hZ2VQaXhlbHNBY2NlbGVyYXRlZCk6CisgICAg
ICAgIEZpeCBpbmNvcnJlY3QgYXNzZXJ0aW9uLiBXZSB3YW50IHRvIGFzc2VydCB0aGF0IHRoZXJl
IGlzIG5vIGVycm9yLCBub3QgdGhhdAorICAgICAgICB0aGVyZSBpcyBvbmUuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OmNvbnZlcnRJbWFnZUJ1ZmZlclRvQ29sb3JTcGFjZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OmNvcHlVbm11bHRpcGxpZWRSZXN1bHQpOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0Ojpjb3B5UHJlbXVsdGlwbGllZFJlc3VsdCk6
CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OmNyZWF0ZVVubXVsdGlwbGllZEltYWdl
UmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6Y3JlYXRlUHJlbXVsdGlw
bGllZEltYWdlUmVzdWx0KToKKyAgICAgICAgU3RvcCBoYXJkIGNvZGluZyBTUkdCIGZvciBQaXhl
bEJ1ZmZlciBjb2xvciBzcGFjZXMgYW5kIHVzZSB0aGUgYXBwcm9wcmlhdGUKKyAgICAgICAgY29s
b3Igc3BhY2UgZm9yIHRoZSB0YXNrLiBXZSBzdGlsbCBkbyBjb2xvciBzcGFjZSBjb252ZXJzaW9u
IHRocm91Z2ggSW1hZ2VCdWZmZXIKKyAgICAgICAgc28gd2Ugc2hvdWxkIGNvbWUgYmFjayBhbmQg
c2ltcGxpZnkgY29kZSBoZXJlIHRvIG5vdCBhbHdheXMgcmVxdWlyZSB0aGF0LgorCisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp2
aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmxvYWRB
cnR3b3JrSW1hZ2UpOgorICAgICAgICBVcGRhdGUgdG8gc3BlY2lmeSBhIGNvbG9yIHNwYWNlIHRv
IG1haW50YWluIGV4aXN0aW5nIGJlaGF2aW9yLgorCiAyMDIxLTA1LTE1ICBBbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBNb3ZlIHRhYmxlIHdyYXBwZXIgcXVp
cmtzIHRvIGl0cyBvd24gY2xhc3MKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAy
Nzc1NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMTAxNyw2ICsxMDE3LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBo
dG1sL0ltYWdlQml0bWFwLmlkbAogICAgIGh0bWwvSW1hZ2VCaXRtYXBPcHRpb25zLmlkbAogICAg
IGh0bWwvSW1hZ2VEYXRhLmlkbAorICAgIGh0bWwvSW1hZ2VEYXRhU2V0dGluZ3MuaWRsCiAgICAg
aHRtbC9NZWRpYUNvbnRyb2xsZXIuaWRsCiAgICAgaHRtbC9NZWRpYUVuY3J5cHRlZEV2ZW50Lmlk
bAogICAgIGh0bWwvTWVkaWFFcnJvci5pZGwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAkod29ya2luZyBjb3B5KQpA
QCAtMTAzNiw2ICsxMDM2LDcgQEAgJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MVmlkZW9FbGVtZW50
LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9JbWFnZUJpdG1hcC5pZGwKICQoUFJPSkVDVF9ESVIp
L2h0bWwvSW1hZ2VCaXRtYXBPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9JbWFnZURh
dGEuaWRsCiskKFBST0pFQ1RfRElSKS9odG1sL0ltYWdlRGF0YVNldHRpbmdzLmlkbAogJChQUk9K
RUNUX0RJUikvaHRtbC9NZWRpYUNvbnRyb2xsZXIuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL01l
ZGlhRW5jcnlwdGVkRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL01lZGlhRXJyb3IuaWRs
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTExODAsNiArMTE4MCw4IEBAICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWIKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0
U2V0dGluZ3MuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNJbWFnZURhdGEuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0ltYWdlRGF0YS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0ltYWdlRGF0YVNldHRpbmdzLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJbWFnZURhdGFTZXR0aW5ncy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ltYWdlU21vb3RoaW5nUXVhbGl0eS5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSW1hZ2VT
bW9vdGhpbmdRdWFsaXR5LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTSW5uZXJIVE1MLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CShyZXZpc2lvbiAyNzc1NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CSh3b3JraW5nIGNvcHkpCkBAIC04OTAsNiArODkwLDcgQEAgSlNfQklORElOR19JRExTIDo9IFwK
ICAgICAkKFdlYkNvcmUpL2h0bWwvSW1hZ2VCaXRtYXAuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvSW1hZ2VCaXRtYXBPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL0ltYWdlRGF0
YS5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9JbWFnZURhdGFTZXR0aW5ncy5pZGwgXAogICAg
ICQoV2ViQ29yZSkvaHRtbC9NZWRpYUNvbnRyb2xsZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvTWVkaWFFbmNyeXB0ZWRFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9NZWRpYUVy
cm9yLmlkbCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMyMDcsNiArMzIwNyw3IEBA
IEpTSW1hZ2VCaXRtYXBPcHRpb25zLmNwcAogSlNJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQu
Y3BwCiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dFNldHRpbmdzLmNwcAogSlNJbWFnZURh
dGEuY3BwCitKU0ltYWdlRGF0YVNldHRpbmdzLmNwcAogSlNJbWFnZVNtb290aGluZ1F1YWxpdHku
Y3BwCiBKU0lucHV0RXZlbnQuY3BwCiBKU0luc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDA5NSw2ICs0MDk1
LDcgQEAKIAkJQkM5NkRCNDMwRjNBODgwRTAwNTczQ0IzIC8qIFJlbmRlckJveE1vZGVsT2JqZWN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk2REI0
MjBGM0E4ODBFMDA1NzNDQjMgLyogUmVuZGVyQm94TW9kZWxPYmplY3QuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzk3RTIzQTEwOTE0NDk1MDAx
MEQzNjEgLyogSFRNTEFsbENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTdFMjM4MTA5MTQ0OTUwMDEwRDM2MSAvKiBIVE1MQWxsQ29s
bGVjdGlvbi5oICovOyB9OwogCQlCQzk3RTQxMzEwOTE1NEZBMDAxMEQzNjEgLyogSlNIVE1MQWxs
Q29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkM5N0U0MTExMDkxNTRGQTAwMTBEMzYxIC8qIEpTSFRNTEFsbENvbGxlY3Rpb24uaCAqLzsg
fTsKKwkJQkNBMDg4RjUyNjRFMUMwODAwM0UyQTZDIC8qIEltYWdlRGF0YVNldHRpbmdzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0EwODhGMjI2NEUx
QkY5MDAzRTJBNkMgLyogSW1hZ2VEYXRhU2V0dGluZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0ExNjlBMzBCRkQ1NUI0MDAxOUNBNzYgLyog
SlNIVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNBMTY5QTEwQkZENTVCNDAwMTlDQTc2IC8qIEpTSFRNTFRhYmxl
Q2FwdGlvbkVsZW1lbnQuaCAqLzsgfTsKIAkJQkNBMjU3MTUxMjkzQzAxMDAwN0EyNjNEIC8qIFZl
cnRpY2FsUG9zaXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNBMjU3MTQxMjkzQzAxMDAwN0EyNjNEIC8qIFZlcnRpY2FsUG9zaXRpb25D
YWNoZS5oICovOyB9OwogCQlCQ0EyQjA2MTEwNTA0NzYwMDA0M0JEMUMgLyogVXNlclNjcmlwdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBMkIwNjAx
MDUwNDc1RjAwNDNCRDFDIC8qIFVzZXJTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTQzMTUsNiArMTQzMTYsOCBAQAogCQlCQzlBNjE0
MjE0Njg1OUQ5MDA2MDU3RkQgLyogRXZlbnROYW1lcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFdmVudE5hbWVzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzlBNjE0NTE0Njg1OUQ5MDA2MDU3RkQgLyog
bWFrZV9ldmVudF9mYWN0b3J5LnBsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucGVybDsgcGF0aCA9IG1ha2VfZXZlbnRfZmFjdG9y
eS5wbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM5QTYxNDYxNDY4NTlEOTAwNjA1
N0ZEIC8qIG1ha2VfbmFtZXMucGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5wZXJsOyBwYXRoID0gbWFrZV9uYW1lcy5wbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNBMDg4RjIyNjRFMUJGOTAwM0UyQTZDIC8qIElt
YWdlRGF0YVNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRGF0YVNldHRpbmdzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDQTA4OEY0MjY0RTFCRjkwMDNFMkE2QyAvKiBJ
bWFnZURhdGFTZXR0aW5ncy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSW1hZ2VEYXRhU2V0dGluZ3MuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0ExNjlBMDBCRkQ1NUI0MDAxOUNBNzYgLyogSlNIVE1M
VGFibGVDYXB0aW9uRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNIVE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDQTE2OUExMEJGRDU1QjQwMDE5Q0E3NiAvKiBKU0hUTUxUYWJsZUNhcHRpb25F
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxUYWJsZUNh
cHRpb25FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQTI1NzE0MTI5
M0MwMTAwMDdBMjYzRCAvKiBWZXJ0aWNhbFBvc2l0aW9uQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVmVydGljYWxQb3NpdGlvbkNhY2hlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMzkyNiw2ICsyMzkyOSw4IEBACiAJCQkJQTc3OTc5MTMwRDZCOUQw
QzAwMzg1MUI5IC8qIEltYWdlRGF0YS5jcHAgKi8sCiAJCQkJQTc3OTc5MTQwRDZCOUQwQzAwMzg1
MUI5IC8qIEltYWdlRGF0YS5oICovLAogCQkJCUE3Nzk3OTE1MEQ2QjlEMEMwMDM4NTFCOSAvKiBJ
bWFnZURhdGEuaWRsICovLAorCQkJCUJDQTA4OEYyMjY0RTFCRjkwMDNFMkE2QyAvKiBJbWFnZURh
dGFTZXR0aW5ncy5oICovLAorCQkJCUJDQTA4OEY0MjY0RTFCRjkwMDNFMkE2QyAvKiBJbWFnZURh
dGFTZXR0aW5ncy5pZGwgKi8sCiAJCQkJOTcyMDVBQjExMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdl
RG9jdW1lbnQuY3BwICovLAogCQkJCTk3MjA1QUIyMTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURv
Y3VtZW50LmggKi8sCiAJCQkJRjU1QjNEOEQxMjUxRjEyRDAwM0VGMjY5IC8qIEltYWdlSW5wdXRU
eXBlLmNwcCAqLywKQEAgLTMyODg3LDYgKzMyODkyLDcgQEAKIAkJCQlCMkExMEQ5MTBCMzgxOEJE
MDAwOTlBQTQgLyogSW1hZ2VCdWZmZXJQaXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDNFMjFE
RDIxODM0NDRBMDBFNjZGNTUgLyogSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTc3OTc5MUEwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQkNBMDg4RjUyNjRFMUMwODAwM0UyQTZDIC8qIEltYWdlRGF0YVNldHRpbmdz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDE5RkVBODFGNTczOTcyMDAwQzQyRkIgLyogSW1hZ2VE
ZWNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDE5RkVBRTFGNTc0QjZEMDAwQzQyRkIgLyog
SW1hZ2VEZWNvZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTU1Qjg3RUQxQ0FBRjBB
QjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNw
cAkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzE0MSwzMCArMzE0MSwyNCBA
QCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICAgICAgfQogCi0g
ICAgICAgIGF1dG8gYXJyYXkgPSBVaW50OENsYW1wZWRBcnJheTo6dHJ5Q3JlYXRlKFdURk1vdmUo
YXJyYXlCdWZmZXIpLCAwLCBhcnJheUJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKTsKLSAgICAgICAgaWYg
KCFhcnJheSkgewotICAgICAgICAgICAgZmFpbCgpOwotICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWUoKTsKLSAgICAgICAgfQotCiAgICAgICAgIEludFNpemUgbG9naWNhbFNpemUgPSBJbnRTaXpl
KGxvZ2ljYWxXaWR0aCwgbG9naWNhbEhlaWdodCk7CiAgICAgICAgIEludFNpemUgaW1hZ2VEYXRh
U2l6ZSA9IGxvZ2ljYWxTaXplOwogICAgICAgICBpbWFnZURhdGFTaXplLnNjYWxlKHJlc29sdXRp
b25TY2FsZSk7CiAKLSAgICAgICAgLy8gRklYTUU6IENyZWF0aW5nIHRoaXMgSW1hZ2VEYXRhIGlz
IG5vdCBuZWNlc3NhcnkuIFdlIHNob3VsZCBza2lwIHJpZ2h0IHRvIGNyZWF0aW5nIGEgUGl4ZWxC
dWZmZXIgZGlyZWN0bHkuCi0gICAgICAgIGF1dG8gaW1hZ2VEYXRhID0gSW1hZ2VEYXRhOjpjcmVh
dGUoaW1hZ2VEYXRhU2l6ZSwgYXJyYXkucmVsZWFzZU5vbk51bGwoKSk7Ci0gICAgICAgIGlmICgh
aW1hZ2VEYXRhKSB7CisgICAgICAgIGF1dG8gYnVmZmVyID0gSW1hZ2VCaXRtYXA6OmNyZWF0ZUlt
YWdlQnVmZmVyKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0ZShtX2xleGljYWxH
bG9iYWxPYmplY3QpLCBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwg
cmVzb2x1dGlvblNjYWxlKTsKKyAgICAgICAgaWYgKCFidWZmZXIpIHsKICAgICAgICAgICAgIGZh
aWwoKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CiAgICAgICAgIH0KIAotICAgICAg
ICBhdXRvIGJ1ZmZlciA9IEltYWdlQml0bWFwOjpjcmVhdGVJbWFnZUJ1ZmZlcigqc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEZyb21FeGVjU3RhdGUobV9sZXhpY2FsR2xvYmFsT2JqZWN0KSwgbG9naWNh
bFNpemUsIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQsIHJlc29sdXRpb25TY2FsZSk7Ci0g
ICAgICAgIGlmICghYnVmZmVyKSB7CisgICAgICAgIFBpeGVsQnVmZmVyRm9ybWF0IGZvcm1hdCB7
IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRpcGxpZWQsIFBpeGVsRm9ybWF0OjpSR0JB
OCwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCIH07CisgICAgICAgIGF1dG8gcGl4ZWxCdWZm
ZXIgPSBQaXhlbEJ1ZmZlcjo6dHJ5Q3JlYXRlKGZvcm1hdCwgaW1hZ2VEYXRhU2l6ZSwgYXJyYXlC
dWZmZXIucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKICAg
ICAgICAgICAgIGZhaWwoKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CiAgICAgICAg
IH0KIAotICAgICAgICBidWZmZXItPnB1dFBpeGVsQnVmZmVyKGltYWdlRGF0YS0+cGl4ZWxCdWZm
ZXIoKSwgeyBJbnRQb2ludDo6emVybygpLCBsb2dpY2FsU2l6ZSB9KTsKKyAgICAgICAgYnVmZmVy
LT5wdXRQaXhlbEJ1ZmZlcihXVEZNb3ZlKCpwaXhlbEJ1ZmZlciksIHsgSW50UG9pbnQ6Onplcm8o
KSwgbG9naWNhbFNpemUgfSk7CiAKICAgICAgICAgYXV0byBiaXRtYXAgPSBJbWFnZUJpdG1hcDo6
Y3JlYXRlKEltYWdlQml0bWFwQmFja2luZyhXVEZNb3ZlKGJ1ZmZlciksIE9wdGlvblNldDxTZXJp
YWxpemF0aW9uU3RhdGU+Ojpmcm9tUmF3KHNlcmlhbGl6YXRpb25TdGF0ZSkpKTsKICAgICAgICAg
cmV0dXJuIGdldEpTVmFsdWUoYml0bWFwKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1h
Z2VEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRGF0YS5j
cHAJKHJldmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEYXRhLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLUNoZWNrZWQ8dW5zaWduZWQsIFJlY29yZE92ZXJmbG93PiBJbWFnZURhdGE6OmRhdGFTaXpl
KGNvbnN0IEludFNpemUmIHNpemUpCitzdGF0aWMgQ2hlY2tlZDx1bnNpZ25lZCwgUmVjb3JkT3Zl
cmZsb3c+IGNvbXB1dGVEYXRhU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogewogICAgIENoZWNr
ZWQ8dW5zaWduZWQsIFJlY29yZE92ZXJmbG93PiBjaGVja2VkRGF0YVNpemUgPSA0OwogICAgIGNo
ZWNrZWREYXRhU2l6ZSAqPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2l6ZS53aWR0aCgpKTsKQEAg
LTQzLDkgKzQzLDE4IEBAIENoZWNrZWQ8dW5zaWduZWQsIFJlY29yZE92ZXJmbG93PiBJbWFnZUQK
ICAgICByZXR1cm4gY2hlY2tlZERhdGFTaXplOwogfQogCitQcmVkZWZpbmVkQ29sb3JTcGFjZSBJ
bWFnZURhdGE6OmNvbXB1dGVDb2xvclNwYWNlKE9wdGlvbmFsPEltYWdlRGF0YVNldHRpbmdzPiBz
ZXR0aW5ncywgUHJlZGVmaW5lZENvbG9yU3BhY2UgZGVmYXVsdENvbG9yU3BhY2UpCit7CisgICAg
aWYgKHNldHRpbmdzICYmIHNldHRpbmdzLT5jb2xvclNwYWNlKQorICAgICAgICByZXR1cm4gKnNl
dHRpbmdzLT5jb2xvclNwYWNlOworICAgIHJldHVybiBkZWZhdWx0Q29sb3JTcGFjZTsKK30KKwog
UmVmPEltYWdlRGF0YT4gSW1hZ2VEYXRhOjpjcmVhdGUoUGl4ZWxCdWZmZXImJiBwaXhlbEJ1ZmZl
cikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbWFnZURhdGEoV1RGTW92ZShwaXhlbEJ1
ZmZlcikpKTsKKyAgICBhdXRvIGNvbG9yU3BhY2UgPSB0b1ByZWRlZmluZWRDb2xvclNwYWNlKHBp
eGVsQnVmZmVyLmZvcm1hdCgpLmNvbG9yU3BhY2UpOworICAgIFJFTEVBU0VfQVNTRVJUKGNvbG9y
U3BhY2UpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEltYWdlRGF0YShwaXhlbEJ1ZmZlci5z
aXplKCksIHBpeGVsQnVmZmVyLnRha2VEYXRhKCksICpjb2xvclNwYWNlKSk7CiB9CiAKIFJlZlB0
cjxJbWFnZURhdGE+IEltYWdlRGF0YTo6Y3JlYXRlKE9wdGlvbmFsPFBpeGVsQnVmZmVyPiYmIHBp
eGVsQnVmZmVyKQpAQCAtNTcsNDMgKzY2LDYzIEBAIFJlZlB0cjxJbWFnZURhdGE+IEltYWdlRGF0
YTo6Y3JlYXRlKE9wdGkKIAogUmVmUHRyPEltYWdlRGF0YT4gSW1hZ2VEYXRhOjpjcmVhdGUoY29u
c3QgSW50U2l6ZSYgc2l6ZSkKIHsKLSAgICBhdXRvIGRhdGFTaXplID0gSW1hZ2VEYXRhOjpkYXRh
U2l6ZShzaXplKTsKKyAgICBhdXRvIGRhdGFTaXplID0gY29tcHV0ZURhdGFTaXplKHNpemUpOwog
ICAgIGlmIChkYXRhU2l6ZS5oYXNPdmVyZmxvd2VkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIGF1dG8gYnl0ZUFycmF5ID0gVWludDhDbGFtcGVkQXJyYXk6OnRyeUNyZWF0ZVVuaW5p
dGlhbGl6ZWQoZGF0YVNpemUudW5zYWZlR2V0KCkpOwogICAgIGlmICghYnl0ZUFycmF5KQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbWFn
ZURhdGEoeyB7IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlwbGllZCwgUGl4ZWxG
b3JtYXQ6OlJHQkE4LCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IgfSwgc2l6ZSwgYnl0ZUFy
cmF5LnJlbGVhc2VOb25OdWxsKCkgfSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEltYWdl
RGF0YShzaXplLCBieXRlQXJyYXkucmVsZWFzZU5vbk51bGwoKSwgUHJlZGVmaW5lZENvbG9yU3Bh
Y2U6OlNSR0IpKTsKIH0KIAotUmVmUHRyPEltYWdlRGF0YT4gSW1hZ2VEYXRhOjpjcmVhdGUoY29u
c3QgSW50U2l6ZSYgc2l6ZSwgUmVmPFVpbnQ4Q2xhbXBlZEFycmF5PiYmIGJ5dGVBcnJheSkKK1Jl
ZlB0cjxJbWFnZURhdGE+IEltYWdlRGF0YTo6Y3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIFJl
ZjxVaW50OENsYW1wZWRBcnJheT4mJiBieXRlQXJyYXksIFByZWRlZmluZWRDb2xvclNwYWNlIGNv
bG9yU3BhY2UpCiB7Ci0gICAgYXV0byBkYXRhU2l6ZSA9IEltYWdlRGF0YTo6ZGF0YVNpemUoc2l6
ZSk7Ci0gICAgaWYgKGRhdGFTaXplLmhhc092ZXJmbG93ZWQoKSB8fCBkYXRhU2l6ZS51bnNhZmVH
ZXQoKSA+IGJ5dGVBcnJheS0+bGVuZ3RoKCkpCisgICAgYXV0byBkYXRhU2l6ZSA9IGNvbXB1dGVE
YXRhU2l6ZShzaXplKTsKKyAgICBpZiAoZGF0YVNpemUuaGFzT3ZlcmZsb3dlZCgpIHx8IGRhdGFT
aXplLnVuc2FmZUdldCgpICE9IGJ5dGVBcnJheS0+bGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW1hZ2VEYXRhKHsgeyBBbHBoYVBy
ZW11bHRpcGxpY2F0aW9uOjpVbnByZW11bHRpcGxpZWQsIFBpeGVsRm9ybWF0OjpSR0JBOCwgRGVz
dGluYXRpb25Db2xvclNwYWNlOjpTUkdCIH0sIHNpemUsIFdURk1vdmUoYnl0ZUFycmF5KSB9KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW1hZ2VEYXRhKHNpemUsIFdURk1vdmUoYnl0ZUFy
cmF5KSwgY29sb3JTcGFjZSkpOwogfQogCi1FeGNlcHRpb25PcjxSZWY8SW1hZ2VEYXRhPj4gSW1h
Z2VEYXRhOjpjcmVhdGUodW5zaWduZWQgc3csIHVuc2lnbmVkIHNoKQorRXhjZXB0aW9uT3I8UmVm
PEltYWdlRGF0YT4+IEltYWdlRGF0YTo6Y3JlYXRlVW5pbml0aWFsaXplZCh1bnNpZ25lZCByb3dz
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3csIFByZWRlZmluZWRDb2xvclNwYWNlIGRlZmF1bHRDb2xv
clNwYWNlLCBPcHRpb25hbDxJbWFnZURhdGFTZXR0aW5ncz4gc2V0dGluZ3MpCit7CisgICAgSW50
U2l6ZSBzaXplKHJvd3MsIHBpeGVsc1BlclJvdyk7CisgICAgYXV0byBkYXRhU2l6ZSA9IGNvbXB1
dGVEYXRhU2l6ZShzaXplKTsKKyAgICBpZiAoZGF0YVNpemUuaGFzT3ZlcmZsb3dlZCgpKQorICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgUmFuZ2VFcnJvciwgIkNhbm5vdCBhbGxvY2F0ZSBhIGJ1
ZmZlciBvZiB0aGlzIHNpemUiX3MgfTsKKworICAgIGF1dG8gYnl0ZUFycmF5ID0gVWludDhDbGFt
cGVkQXJyYXk6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQoZGF0YVNpemUudW5zYWZlR2V0KCkpOwor
ICAgIGlmICghYnl0ZUFycmF5KSB7CisgICAgICAgIC8vIEZJWE1FOiBEb2VzIHRoaXMgbmVlZCB0
byBiZSBhICJyZWFsIiBvdXQgb2YgbWVtb3J5IGVycm9yIHdpdGggc2V0T3V0T2ZNZW1vcnlFcnJv
ciBjYWxsZWQgb24gaXQ/CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBSYW5nZUVycm9yLCAi
T3V0IG9mIG1lbW9yeSJfcyB9OworICAgIH0KKworICAgIGF1dG8gY29sb3JTcGFjZSA9IGNvbXB1
dGVDb2xvclNwYWNlKHNldHRpbmdzLCBkZWZhdWx0Q29sb3JTcGFjZSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSW1hZ2VEYXRhKHNpemUsIGJ5dGVBcnJheS5yZWxlYXNlTm9uTnVsbCgpLCBj
b2xvclNwYWNlKSk7Cit9CisKK0V4Y2VwdGlvbk9yPFJlZjxJbWFnZURhdGE+PiBJbWFnZURhdGE6
OmNyZWF0ZSh1bnNpZ25lZCBzdywgdW5zaWduZWQgc2gsIE9wdGlvbmFsPEltYWdlRGF0YVNldHRp
bmdzPiBzZXR0aW5ncykKIHsKICAgICBpZiAoIXN3IHx8ICFzaCkKICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CisKICAgICBJbnRTaXplIHNpemUoc3csIHNoKTsK
LSAgICBhdXRvIGRhdGFTaXplID0gSW1hZ2VEYXRhOjpkYXRhU2l6ZShzaXplKTsKKyAgICBhdXRv
IGRhdGFTaXplID0gY29tcHV0ZURhdGFTaXplKHNpemUpOwogICAgIGlmIChkYXRhU2l6ZS5oYXNP
dmVyZmxvd2VkKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBSYW5nZUVycm9yLCAiQ2Fu
bm90IGFsbG9jYXRlIGEgYnVmZmVyIG9mIHRoaXMgc2l6ZSJfcyB9OworCiAgICAgYXV0byBieXRl
QXJyYXkgPSBVaW50OENsYW1wZWRBcnJheTo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZChkYXRhU2l6
ZS51bnNhZmVHZXQoKSk7CiAgICAgaWYgKCFieXRlQXJyYXkpIHsKICAgICAgICAgLy8gRklYTUU6
IERvZXMgdGhpcyBuZWVkIHRvIGJlIGEgInJlYWwiIG91dCBvZiBtZW1vcnkgZXJyb3Igd2l0aCBz
ZXRPdXRPZk1lbW9yeUVycm9yIGNhbGxlZCBvbiBpdD8KICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFJhbmdlRXJyb3IsICJPdXQgb2YgbWVtb3J5Il9zIH07CiAgICAgfQogICAgIGJ5dGVBcnJh
eS0+emVyb0ZpbGwoKTsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbWFnZURhdGEoeyB7IEFs
cGhhUHJlbXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlwbGllZCwgUGl4ZWxGb3JtYXQ6OlJHQkE4
LCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IgfSwgc2l6ZSwgYnl0ZUFycmF5LnJlbGVhc2VO
b25OdWxsKCkgfSkpOworCisgICAgYXV0byBjb2xvclNwYWNlID0gY29tcHV0ZUNvbG9yU3BhY2Uo
c2V0dGluZ3MpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEltYWdlRGF0YShzaXplLCBieXRl
QXJyYXkucmVsZWFzZU5vbk51bGwoKSwgY29sb3JTcGFjZSkpOwogfQogCi1FeGNlcHRpb25PcjxS
ZWY8SW1hZ2VEYXRhPj4gSW1hZ2VEYXRhOjpjcmVhdGUoUmVmPFVpbnQ4Q2xhbXBlZEFycmF5PiYm
IGJ5dGVBcnJheSwgdW5zaWduZWQgc3csIE9wdGlvbmFsPHVuc2lnbmVkPiBzaCkKK0V4Y2VwdGlv
bk9yPFJlZjxJbWFnZURhdGE+PiBJbWFnZURhdGE6OmNyZWF0ZShSZWY8VWludDhDbGFtcGVkQXJy
YXk+JiYgYnl0ZUFycmF5LCB1bnNpZ25lZCBzdywgT3B0aW9uYWw8dW5zaWduZWQ+IHNoLCBPcHRp
b25hbDxJbWFnZURhdGFTZXR0aW5ncz4gc2V0dGluZ3MpCiB7CiAgICAgdW5zaWduZWQgbGVuZ3Ro
ID0gYnl0ZUFycmF5LT5sZW5ndGgoKTsKICAgICBpZiAoIWxlbmd0aCB8fCBsZW5ndGggJSA0KQpA
QCAtMTA3LDIyICsxMzYsMjggQEAgRXhjZXB0aW9uT3I8UmVmPEltYWdlRGF0YT4+IEltYWdlRGF0
YTo6YwogICAgIGlmIChzaCAmJiBzaC52YWx1ZSgpICE9IGhlaWdodCkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yLCAic2ggdmFsdWUgaXMgbm90IGVxdWFsIHRvIGhl
aWdodCJfcyB9OwogCi0gICAgYXV0byByZXN1bHQgPSBjcmVhdGUoSW50U2l6ZShzdywgaGVpZ2h0
KSwgV1RGTW92ZShieXRlQXJyYXkpKTsKLSAgICBpZiAoIXJlc3VsdCkKKyAgICBJbnRTaXplIHNp
emUoc3csIGhlaWdodCk7CisgICAgYXV0byBkYXRhU2l6ZSA9IGNvbXB1dGVEYXRhU2l6ZShzaXpl
KTsKKyAgICBpZiAoZGF0YVNpemUuaGFzT3ZlcmZsb3dlZCgpIHx8IGRhdGFTaXplLnVuc2FmZUdl
dCgpICE9IGJ5dGVBcnJheS0+bGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBS
YW5nZUVycm9yIH07Ci0gICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlTm9uTnVsbCgpOworCisgICAg
YXV0byBjb2xvclNwYWNlID0gY29tcHV0ZUNvbG9yU3BhY2Uoc2V0dGluZ3MpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEltYWdlRGF0YShzaXplLCBXVEZNb3ZlKGJ5dGVBcnJheSksIGNvbG9y
U3BhY2UpKTsKIH0KIAotSW1hZ2VEYXRhOjpJbWFnZURhdGEoUGl4ZWxCdWZmZXImJiBwaXhlbEJ1
ZmZlcikKLSAgICA6IG1fcGl4ZWxCdWZmZXIoV1RGTW92ZShwaXhlbEJ1ZmZlcikpCitJbWFnZURh
dGE6OkltYWdlRGF0YShjb25zdCBJbnRTaXplJiBzaXplLCBSZWY8SlNDOjpVaW50OENsYW1wZWRB
cnJheT4mJiBkYXRhLCBQcmVkZWZpbmVkQ29sb3JTcGFjZSBjb2xvclNwYWNlKQorICAgIDogbV9z
aXplKHNpemUpCisgICAgLCBtX2RhdGEoV1RGTW92ZShkYXRhKSkKKyAgICAsIG1fY29sb3JTcGFj
ZShjb2xvclNwYWNlKQogewogfQogCiBJbWFnZURhdGE6On5JbWFnZURhdGEoKSA9IGRlZmF1bHQ7
CiAKLVJlZjxJbWFnZURhdGE+IEltYWdlRGF0YTo6ZGVlcENsb25lKCkgY29uc3QKK1BpeGVsQnVm
ZmVyIEltYWdlRGF0YTo6cGl4ZWxCdWZmZXIoKSBjb25zdAogewotICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEltYWdlRGF0YShtX3BpeGVsQnVmZmVyLmRlZXBDbG9uZSgpKSk7CisgICAgUGl4ZWxC
dWZmZXJGb3JtYXQgZm9ybWF0IHsgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6VW5wcmVtdWx0aXBs
aWVkLCBQaXhlbEZvcm1hdDo6UkdCQTgsIHRvRGVzdGluYXRpb25Db2xvclNwYWNlKG1fY29sb3JT
cGFjZSkgfTsKKyAgICByZXR1cm4geyBmb3JtYXQsIG1fc2l6ZSwgbV9kYXRhLmdldCgpIH07CiB9
CiAKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEltYWdlRGF0
YSYgaW1hZ2VEYXRhKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURhdGEuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRGF0YS5oCShyZXZpc2lvbiAyNzc1
NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw3ICsyOSwxMiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5o
IgorI2luY2x1ZGUgIkltYWdlRGF0YVNldHRpbmdzLmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgog
I2luY2x1ZGUgIlBpeGVsQnVmZmVyLmgiCisjaW5jbHVkZSAiUHJlZGVmaW5lZENvbG9yU3BhY2Uu
aCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9VaW50OENsYW1wZWRBcnJheS5oPgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzgsMjkgKzQz
LDMyIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEltYWdlRGF0YT4g
Y3JlYXRlKFBpeGVsQnVmZmVyJiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8
SW1hZ2VEYXRhPiBjcmVhdGUoT3B0aW9uYWw8UGl4ZWxCdWZmZXI+JiYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBSZWZQdHI8SW1hZ2VEYXRhPiBjcmVhdGUoY29uc3QgSW50U2l6ZSYpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8SW1hZ2VEYXRhPiBjcmVhdGUoY29uc3Qg
SW50U2l6ZSYsIFJlZjxVaW50OENsYW1wZWRBcnJheT4mJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxJbWFnZURhdGE+PiBjcmVhdGUodW5zaWduZWQgc3csIHVu
c2lnbmVkIHNoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPElt
YWdlRGF0YT4+IGNyZWF0ZShSZWY8VWludDhDbGFtcGVkQXJyYXk+JiYsIHVuc2lnbmVkIHN3LCBP
cHRpb25hbDx1bnNpZ25lZD4gc2gpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8
SW1hZ2VEYXRhPiBjcmVhdGUoY29uc3QgSW50U2l6ZSYsIFJlZjxVaW50OENsYW1wZWRBcnJheT4m
JiwgUHJlZGVmaW5lZENvbG9yU3BhY2UpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBFeGNl
cHRpb25PcjxSZWY8SW1hZ2VEYXRhPj4gY3JlYXRlVW5pbml0aWFsaXplZCh1bnNpZ25lZCByb3dz
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3csIFByZWRlZmluZWRDb2xvclNwYWNlIGRlZmF1bHRDb2xv
clNwYWNlLCBPcHRpb25hbDxJbWFnZURhdGFTZXR0aW5ncz4gPSBXVEY6Om51bGxvcHQpOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8SW1hZ2VEYXRhPj4gY3JlYXRl
KHVuc2lnbmVkIHN3LCB1bnNpZ25lZCBzaCwgT3B0aW9uYWw8SW1hZ2VEYXRhU2V0dGluZ3M+KTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPEltYWdlRGF0YT4+IGNy
ZWF0ZShSZWY8VWludDhDbGFtcGVkQXJyYXk+JiYsIHVuc2lnbmVkIHN3LCBPcHRpb25hbDx1bnNp
Z25lZD4gc2gsIE9wdGlvbmFsPEltYWdlRGF0YVNldHRpbmdzPik7CisKICAgICBXRUJDT1JFX0VY
UE9SVCB+SW1hZ2VEYXRhKCk7CiAKLSAgICBjb25zdCBJbnRTaXplJiBzaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9waXhlbEJ1ZmZlci5zaXplKCk7IH0KLSAgICBpbnQgd2lkdGgoKSBjb25zdCB7IHJl
dHVybiBtX3BpeGVsQnVmZmVyLnNpemUoKS53aWR0aCgpOyB9Ci0gICAgaW50IGhlaWdodCgpIGNv
bnN0IHsgcmV0dXJuIG1fcGl4ZWxCdWZmZXIuc2l6ZSgpLmhlaWdodCgpOyB9CisgICAgc3RhdGlj
IFByZWRlZmluZWRDb2xvclNwYWNlIGNvbXB1dGVDb2xvclNwYWNlKE9wdGlvbmFsPEltYWdlRGF0
YVNldHRpbmdzPiwgUHJlZGVmaW5lZENvbG9yU3BhY2UgZGVmYXVsdENvbG9yU3BhY2UgPSBQcmVk
ZWZpbmVkQ29sb3JTcGFjZTo6U1JHQik7CiAKLSAgICBVaW50OENsYW1wZWRBcnJheSYgZGF0YSgp
IGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxCdWZmZXIuZGF0YSgpOyB9CisgICAgY29uc3QgSW50U2l6
ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQogCi0gICAgUmVmPEltYWdlRGF0YT4g
ZGVlcENsb25lKCkgY29uc3Q7CisgICAgaW50IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9zaXpl
LndpZHRoKCk7IH0KKyAgICBpbnQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9zaXplLmhlaWdo
dCgpOyB9CisgICAgVWludDhDbGFtcGVkQXJyYXkmIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2Rh
dGEuZ2V0KCk7IH0KKyAgICBQcmVkZWZpbmVkQ29sb3JTcGFjZSBjb2xvclNwYWNlKCkgY29uc3Qg
eyByZXR1cm4gbV9jb2xvclNwYWNlOyB9CiAKLSAgICBjb25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxC
dWZmZXIoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsQnVmZmVyOyB9CisgICAgUGl4ZWxCdWZmZXIg
cGl4ZWxCdWZmZXIoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBJbWFnZURhdGEo
UGl4ZWxCdWZmZXImJik7Ci0KLSAgICBzdGF0aWMgQ2hlY2tlZDx1bnNpZ25lZCwgUmVjb3JkT3Zl
cmZsb3c+IGRhdGFTaXplKGNvbnN0IEludFNpemUmKTsKKyAgICBleHBsaWNpdCBJbWFnZURhdGEo
Y29uc3QgSW50U2l6ZSYsIFJlZjxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiYmLCBQcmVkZWZpbmVk
Q29sb3JTcGFjZSk7CiAKLSAgICBQaXhlbEJ1ZmZlciBtX3BpeGVsQnVmZmVyOworICAgIEludFNp
emUgbV9zaXplOworICAgIFJlZjxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiBtX2RhdGE7CisgICAg
UHJlZGVmaW5lZENvbG9yU3BhY2UgbV9jb2xvclNwYWNlOwogfTsKIAotV0VCQ09SRV9FWFBPUlQg
V1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IEltYWdl
RGF0YSYpOworV0VCQ09SRV9FWFBPUlQgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiwgY29uc3QgSW1hZ2VEYXRhJik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEYXRhLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0ltYWdlRGF0YS5pZGwJKHJldmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VEYXRhLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAwOSwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDEwICsz
MiwxMSBAQAogICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpLAogICAgIEltcGxlbWVudGF0aW9u
TGFja3NWVGFibGUKIF0gaW50ZXJmYWNlIEltYWdlRGF0YSB7Ci0gICAgY29uc3RydWN0b3IodW5z
aWduZWQgbG9uZyBzdywgdW5zaWduZWQgbG9uZyBzaCk7Ci0gICAgY29uc3RydWN0b3IoVWludDhD
bGFtcGVkQXJyYXkgZGF0YSwgdW5zaWduZWQgbG9uZyBzdywgb3B0aW9uYWwgdW5zaWduZWQgbG9u
ZyBzaCk7CisgICAgY29uc3RydWN0b3IodW5zaWduZWQgbG9uZyBzdywgdW5zaWduZWQgbG9uZyBz
aCwgb3B0aW9uYWwgSW1hZ2VEYXRhU2V0dGluZ3Mgc2V0dGluZ3MpOworICAgIGNvbnN0cnVjdG9y
KFVpbnQ4Q2xhbXBlZEFycmF5IGRhdGEsIHVuc2lnbmVkIGxvbmcgc3csIG9wdGlvbmFsIHVuc2ln
bmVkIGxvbmcgc2gsIG9wdGlvbmFsIEltYWdlRGF0YVNldHRpbmdzIHNldHRpbmdzKTsKIAogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHdpZHRoOwogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGhlaWdodDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgVWlu
dDhDbGFtcGVkQXJyYXkgZGF0YTsKKyAgICBbRW5hYmxlZEJ5U2V0dGluZz1DYW52YXNDb2xvclNw
YWNlXSByZWFkb25seSBhdHRyaWJ1dGUgUHJlZGVmaW5lZENvbG9yU3BhY2UgY29sb3JTcGFjZTsK
IH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRGF0YVNldHRpbmdzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURhdGFTZXR0aW5ncy5oCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEYXRhU2V0dGluZ3MuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJQcmVkZWZpbmVkQ29sb3JTcGFjZS5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBJbWFnZURhdGFTZXR0aW5ncyB7Cisg
ICAgT3B0aW9uYWw8UHJlZGVmaW5lZENvbG9yU3BhY2U+IGNvbG9yU3BhY2U7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRGF0YVNl
dHRpbmdzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRGF0YVNl
dHRpbmdzLmlkbAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRGF0
YVNldHRpbmdzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvY2FudmFzLmh0bWwj
aW1hZ2VkYXRhc2V0dGluZ3MKK2RpY3Rpb25hcnkgSW1hZ2VEYXRhU2V0dGluZ3MgeworICAgIFtF
bmFibGVkQnlTZXR0aW5nPUNhbnZhc0NvbG9yU3BhY2VdIFByZWRlZmluZWRDb2xvclNwYWNlIGNv
bG9yU3BhY2U7Cit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzSW1h
Z2VEYXRhLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNJbWFnZURhdGEuaWRsCShyZXZpc2lvbiAyNzc1NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNJbWFnZURhdGEuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDkgKzI2LDkgQEAK
IC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2NhbnZhcy5odG1sI2Nh
bnZhc2ltYWdlZGF0YQogaW50ZXJmYWNlIG1peGluIENhbnZhc0ltYWdlRGF0YSB7CiAgICAgLy8g
cGl4ZWwgbWFuaXB1bGF0aW9uCi0gICAgSW1hZ2VEYXRhIGNyZWF0ZUltYWdlRGF0YShbRW5mb3Jj
ZVJhbmdlXSBsb25nIHN3LCBbRW5mb3JjZVJhbmdlXSBsb25nIHNoKTsKKyAgICBJbWFnZURhdGEg
Y3JlYXRlSW1hZ2VEYXRhKFtFbmZvcmNlUmFuZ2VdIGxvbmcgc3csIFtFbmZvcmNlUmFuZ2VdIGxv
bmcgc2gsIG9wdGlvbmFsIEltYWdlRGF0YVNldHRpbmdzIHNldHRpbmdzKTsKICAgICBJbWFnZURh
dGEgY3JlYXRlSW1hZ2VEYXRhKEltYWdlRGF0YSBpbWFnZWRhdGEpOwotICAgIEltYWdlRGF0YSBn
ZXRJbWFnZURhdGEoW0VuZm9yY2VSYW5nZV0gbG9uZyBzeCwgW0VuZm9yY2VSYW5nZV0gbG9uZyBz
eSwgW0VuZm9yY2VSYW5nZV0gbG9uZyBzdywgW0VuZm9yY2VSYW5nZV0gbG9uZyBzaCk7CisgICAg
SW1hZ2VEYXRhIGdldEltYWdlRGF0YShbRW5mb3JjZVJhbmdlXSBsb25nIHN4LCBbRW5mb3JjZVJh
bmdlXSBsb25nIHN5LCBbRW5mb3JjZVJhbmdlXSBsb25nIHN3LCBbRW5mb3JjZVJhbmdlXSBsb25n
IHNoLCBvcHRpb25hbCBJbWFnZURhdGFTZXR0aW5ncyBzZXR0aW5ncyk7CiAgICAgdW5kZWZpbmVk
IHB1dEltYWdlRGF0YShJbWFnZURhdGEgaW1hZ2VkYXRhLCBbRW5mb3JjZVJhbmdlXSBsb25nIGR4
LCBbRW5mb3JjZVJhbmdlXSBsb25nIGR5KTsKICAgICB1bmRlZmluZWQgcHV0SW1hZ2VEYXRhKElt
YWdlRGF0YSBpbWFnZWRhdGEsIFtFbmZvcmNlUmFuZ2VdIGxvbmcgZHgsIFtFbmZvcmNlUmFuZ2Vd
IGxvbmcgZHksIFtFbmZvcmNlUmFuZ2VdIGxvbmcgZGlydHlYLCBbRW5mb3JjZVJhbmdlXSBsb25n
IGRpcnR5WSwgW0VuZm9yY2VSYW5nZV0gbG9uZyBkaXJ0eVdpZHRoLCBbRW5mb3JjZVJhbmdlXSBs
b25nIGRpcnR5SGVpZ2h0KTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAkocmV2aXNp
b24gMjc3NTQ0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNTIsMzkgKzIxNTIsNTAgQEAg
Ym9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpuZWVkcwogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotc3RhdGljIFJlZlB0cjxJbWFnZURhdGE+IGNyZWF0ZUVtcHR5SW1hZ2VEYXRhKGNv
bnN0IEludFNpemUmIHNpemUpCitzdGF0aWMgdm9pZCBpbml0aWFsaXplRW1wdHlJbWFnZURhdGEo
Y29uc3QgSW1hZ2VEYXRhJiBpbWFnZURhdGEpCiB7Ci0gICAgYXV0byBkYXRhID0gSW1hZ2VEYXRh
OjpjcmVhdGUoc2l6ZSk7Ci0gICAgaWYgKGRhdGEpCi0gICAgICAgIGRhdGEtPmRhdGEoKS56ZXJv
RmlsbCgpOwotICAgIHJldHVybiBkYXRhOworICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Ig
aW5pdGlhbGl6aW5nIHRoZSBJbWFnZURhdGEgd2hlbiBzZXR0aW5ncy5hbHBoYSBpcyBmYWxzZSwg
cmVxdWlyaW5nCisgICAgLy8gZXZlcnkgNHRoIGJ5dGUgdG8gYmUgMHhGRi4KKworICAgIGltYWdl
RGF0YS5kYXRhKCkuemVyb0ZpbGwoKTsKIH0KIAotUmVmUHRyPEltYWdlRGF0YT4gQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQmFzZTo6Y3JlYXRlSW1hZ2VEYXRhKEltYWdlRGF0YSYgaW1hZ2VEYXRh
KSBjb25zdAorRXhjZXB0aW9uT3I8UmVmPEltYWdlRGF0YT4+IENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2U6OmNyZWF0ZUltYWdlRGF0YShJbWFnZURhdGEmIGltYWdlRGF0YSkgY29uc3QKIHsK
LSAgICByZXR1cm4gY3JlYXRlRW1wdHlJbWFnZURhdGEoaW1hZ2VEYXRhLnNpemUoKSk7CisgICAg
YXV0byBuZXdJbWFnZURhdGEgPSBJbWFnZURhdGE6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQoaW1hZ2VE
YXRhLndpZHRoKCksIGltYWdlRGF0YS5oZWlnaHQoKSwgaW1hZ2VEYXRhLmNvbG9yU3BhY2UoKSk7
CisgICAgaWYgKG5ld0ltYWdlRGF0YS5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIG5l
d0ltYWdlRGF0YS5yZWxlYXNlRXhjZXB0aW9uKCk7CisKKyAgICBpbml0aWFsaXplRW1wdHlJbWFn
ZURhdGEobmV3SW1hZ2VEYXRhLnJldHVyblZhbHVlKCkpOworCisgICAgcmV0dXJuIG5ld0ltYWdl
RGF0YTsKIH0KIAotRXhjZXB0aW9uT3I8UmVmUHRyPEltYWdlRGF0YT4+IENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREJhc2U6OmNyZWF0ZUltYWdlRGF0YShpbnQgc3csIGludCBzaCkgY29uc3QKK0V4
Y2VwdGlvbk9yPFJlZjxJbWFnZURhdGE+PiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpj
cmVhdGVJbWFnZURhdGEoaW50IHN3LCBpbnQgc2gsIE9wdGlvbmFsPEltYWdlRGF0YVNldHRpbmdz
PiBzZXR0aW5ncykgY29uc3QKIHsKICAgICBpZiAoIXN3IHx8ICFzaCkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CiAKLSAgICBJbnRTaXplIHNpemUgeyBzdGQ6
OmFicyhzdyksIHN0ZDo6YWJzKHNoKSB9OwotICAgIHJldHVybiBjcmVhdGVFbXB0eUltYWdlRGF0
YShzaXplKTsKKyAgICBhdXRvIGltYWdlRGF0YSA9IEltYWdlRGF0YTo6Y3JlYXRlVW5pbml0aWFs
aXplZChzdGQ6OmFicyhzdyksIHN0ZDo6YWJzKHNoKSwgbV9zZXR0aW5ncy5jb2xvclNwYWNlLCBz
ZXR0aW5ncyk7CisgICAgaWYgKGltYWdlRGF0YS5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0
dXJuIGltYWdlRGF0YS5yZWxlYXNlRXhjZXB0aW9uKCk7CisKKyAgICBpbml0aWFsaXplRW1wdHlJ
bWFnZURhdGEoaW1hZ2VEYXRhLnJldHVyblZhbHVlKCkpOworCisgICAgcmV0dXJuIGltYWdlRGF0
YTsKIH0KIAotRXhjZXB0aW9uT3I8UmVmUHRyPEltYWdlRGF0YT4+IENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyREJhc2U6OmdldEltYWdlRGF0YShpbnQgc3gsIGludCBzeSwgaW50IHN3LCBpbnQgc2gp
IGNvbnN0CitFeGNlcHRpb25PcjxSZWY8SW1hZ2VEYXRhPj4gQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZTo6Z2V0SW1hZ2VEYXRhKGludCBzeCwgaW50IHN5LCBpbnQgc3csIGludCBzaCwgT3B0
aW9uYWw8SW1hZ2VEYXRhU2V0dGluZ3M+IHNldHRpbmdzKSBjb25zdAogeworICAgIGlmICghc3cg
fHwgIXNoKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKKwog
ICAgIGlmICghY2FudmFzQmFzZSgpLm9yaWdpbkNsZWFuKCkpIHsKICAgICAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFN0cmluZz4gY29uc29sZU1lc3NhZ2UoTUFLRV9TVEFUSUNfU1RSSU5HX0lN
UEwoIlVuYWJsZSB0byBnZXQgaW1hZ2UgZGF0YSBmcm9tIGNhbnZhcyBiZWNhdXNlIHRoZSBjYW52
YXMgaGFzIGJlZW4gdGFpbnRlZCBieSBjcm9zcy1vcmlnaW4gZGF0YS4iKSk7CiAgICAgICAgIGNh
bnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBjb25zb2xlTWVzc2Fn
ZSk7CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0eUVycm9yIH07CiAgICAgfQog
Ci0gICAgaWYgKCFzdyB8fCAhc2gpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNp
emVFcnJvciB9OwotCiAgICAgaWYgKHN3IDwgMCkgewogICAgICAgICBzeCArPSBzdzsKICAgICAg
ICAgc3cgPSAtc3c7CkBAIC0yMTk3LDEwICsyMjA4LDE5IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxJ
bWFnZURhdGE+PiBDYW52YXNSZW4KICAgICBJbnRSZWN0IGltYWdlRGF0YVJlY3QgeyBzeCwgc3ks
IHN3LCBzaCB9OwogCiAgICAgSW1hZ2VCdWZmZXIqIGJ1ZmZlciA9IGNhbnZhc0Jhc2UoKS5idWZm
ZXIoKTsKLSAgICBpZiAoIWJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUVtcHR5SW1hZ2VE
YXRhKGltYWdlRGF0YVJlY3Quc2l6ZSgpKTsKKyAgICBpZiAoIWJ1ZmZlcikgeworICAgICAgICBh
dXRvIGltYWdlRGF0YSA9IEltYWdlRGF0YTo6Y3JlYXRlVW5pbml0aWFsaXplZChpbWFnZURhdGFS
ZWN0LndpZHRoKCksIGltYWdlRGF0YVJlY3QuaGVpZ2h0KCksIG1fc2V0dGluZ3MuY29sb3JTcGFj
ZSwgc2V0dGluZ3MpOworICAgICAgICBpZiAoaW1hZ2VEYXRhLmhhc0V4Y2VwdGlvbigpKQorICAg
ICAgICAgICAgcmV0dXJuIGltYWdlRGF0YS5yZWxlYXNlRXhjZXB0aW9uKCk7CisKKyAgICAgICAg
aW5pdGlhbGl6ZUVtcHR5SW1hZ2VEYXRhKGltYWdlRGF0YS5yZXR1cm5WYWx1ZSgpKTsKKyAgICAg
ICAgCisgICAgICAgIHJldHVybiBpbWFnZURhdGE7CisgICAgfQorCisgICAgYXV0byBjb21wdXRl
ZENvbG9yU3BhY2UgPSBJbWFnZURhdGE6OmNvbXB1dGVDb2xvclNwYWNlKHNldHRpbmdzLCBtX3Nl
dHRpbmdzLmNvbG9yU3BhY2UpOwogCi0gICAgUGl4ZWxCdWZmZXJGb3JtYXQgZm9ybWF0IHsgQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbjo6VW5wcmVtdWx0aXBsaWVkLCBQaXhlbEZvcm1hdDo6UkdCQTgs
IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQiB9OworICAgIFBpeGVsQnVmZmVyRm9ybWF0IGZv
cm1hdCB7IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlwbGllZCwgUGl4ZWxGb3Jt
YXQ6OlJHQkE4LCB0b0Rlc3RpbmF0aW9uQ29sb3JTcGFjZShjb21wdXRlZENvbG9yU3BhY2UpIH07
CiAgICAgYXV0byBwaXhlbEJ1ZmZlciA9IGJ1ZmZlci0+Z2V0UGl4ZWxCdWZmZXIoZm9ybWF0LCBp
bWFnZURhdGFSZWN0KTsKICAgICBpZiAoIXBpeGVsQnVmZmVyKSB7CiAgICAgICAgIGNhbnZhc0Jh
c2UoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2U6OlJlbmRlcmluZywgTWVzc2FnZUxldmVsOjpFcnJvciwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRC
YXNlLmgJKHJldmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMs
NyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlw
ZXMuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgorI2luY2x1ZGUgIkltYWdlRGF0YVNldHRp
bmdzLmgiCiAjaW5jbHVkZSAiSW1hZ2VTbW9vdGhpbmdRdWFsaXR5LmgiCiAjaW5jbHVkZSAiUGF0
aC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKQEAgLTE5MSw5ICsxOTIsOSBAQCBwdWJs
aWM6CiAgICAgRXhjZXB0aW9uT3I8UmVmPENhbnZhc0dyYWRpZW50Pj4gY3JlYXRlUmFkaWFsR3Jh
ZGllbnQoZmxvYXQgeDAsIGZsb2F0IHkwLCBmbG9hdCByMCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBm
bG9hdCByMSk7CiAgICAgRXhjZXB0aW9uT3I8UmVmUHRyPENhbnZhc1BhdHRlcm4+PiBjcmVhdGVQ
YXR0ZXJuKENhbnZhc0ltYWdlU291cmNlJiYsIGNvbnN0IFN0cmluZyYgcmVwZXRpdGlvbik7CiAK
LSAgICBSZWZQdHI8SW1hZ2VEYXRhPiBjcmVhdGVJbWFnZURhdGEoSW1hZ2VEYXRhJikgY29uc3Q7
Ci0gICAgRXhjZXB0aW9uT3I8UmVmUHRyPEltYWdlRGF0YT4+IGNyZWF0ZUltYWdlRGF0YShpbnQg
d2lkdGgsIGludCBoZWlnaHQpIGNvbnN0OwotICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxJbWFnZURh
dGE+PiBnZXRJbWFnZURhdGEoaW50IHN4LCBpbnQgc3ksIGludCBzdywgaW50IHNoKSBjb25zdDsK
KyAgICBFeGNlcHRpb25PcjxSZWY8SW1hZ2VEYXRhPj4gY3JlYXRlSW1hZ2VEYXRhKEltYWdlRGF0
YSYpIGNvbnN0OworICAgIEV4Y2VwdGlvbk9yPFJlZjxJbWFnZURhdGE+PiBjcmVhdGVJbWFnZURh
dGEoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBPcHRpb25hbDxJbWFnZURhdGFTZXR0aW5ncz4pIGNv
bnN0OworICAgIEV4Y2VwdGlvbk9yPFJlZjxJbWFnZURhdGE+PiBnZXRJbWFnZURhdGEoaW50IHN4
LCBpbnQgc3ksIGludCBzdywgaW50IHNoLCBPcHRpb25hbDxJbWFnZURhdGFTZXR0aW5ncz4pIGNv
bnN0OwogICAgIHZvaWQgcHV0SW1hZ2VEYXRhKEltYWdlRGF0YSYsIGludCBkeCwgaW50IGR5KTsK
ICAgICB2b2lkIHB1dEltYWdlRGF0YShJbWFnZURhdGEmLCBpbnQgZHgsIGludCBkeSwgaW50IGRp
cnR5WCwgaW50IGRpcnR5WSwgaW50IGRpcnR5V2lkdGgsIGludCBkaXJ0eUhlaWdodCk7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JT
cGFjZS5jcHAJKHJldmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1ByZWRlZmluZWRDb2xvclNwYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNCArNDUsMjMg
QEAgRGVzdGluYXRpb25Db2xvclNwYWNlIHRvRGVzdGluYXRpb25Db2xvcgogICAgIHJldHVybiBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0I7CiB9CiAKK09wdGlvbmFsPFByZWRlZmluZWRDb2xv
clNwYWNlPiB0b1ByZWRlZmluZWRDb2xvclNwYWNlKERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xv
clNwYWNlKQoreworICAgIHN3aXRjaCAoY29sb3JTcGFjZSkgeworICAgIGNhc2UgRGVzdGluYXRp
b25Db2xvclNwYWNlOjpTUkdCOgorICAgICAgICByZXR1cm4gUHJlZGVmaW5lZENvbG9yU3BhY2U6
OlNSR0I7CisjaWYgRU5BQkxFKERFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdCKQor
ICAgIGNhc2UgRGVzdGluYXRpb25Db2xvclNwYWNlOjpMaW5lYXJTUkdCOgorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworI2VuZGlmCisjaWYgRU5BQkxFKERFU1RJTkFUSU9OX0NPTE9SX1NQ
QUNFX0RJU1BMQVlfUDMpCisgICAgY2FzZSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkRpc3BsYXlQ
MzoKKyAgICAgICAgcmV0dXJuIFByZWRlZmluZWRDb2xvclNwYWNlOjpEaXNwbGF5UDM7CisjZW5k
aWYKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworfQorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QcmVkZWZp
bmVkQ29sb3JTcGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1ByZWRlZmluZWRDb2xvclNwYWNlLmgJKHJldmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMu
aD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC0zOSw2ICs0MCw3IEBAIGVudW0gY2xhc3MgUHJlZGVmaW5lZENvbG9yU3BhY2UgewogfTsKIAog
RGVzdGluYXRpb25Db2xvclNwYWNlIHRvRGVzdGluYXRpb25Db2xvclNwYWNlKFByZWRlZmluZWRD
b2xvclNwYWNlKTsKK09wdGlvbmFsPFByZWRlZmluZWRDb2xvclNwYWNlPiB0b1ByZWRlZmluZWRD
b2xvclNwYWNlKERlc3RpbmF0aW9uQ29sb3JTcGFjZSk7CiAKIH0KIApJbmRleDogU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhcy5jcHAJKHJldmlzaW9uIDI3NzU0NCkK
KysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00MjgsNiArNDI4LDEyIEBAIE9wdGlvbmFsPEluc3BlY3RvckNhbnZhc0NhbGxU
cmFjZXI6OlByb2MKICAgICByZXR1cm4ge3sgdmFsdWVJbmRleEZvckRhdGEoYXJndW1lbnQpLCBS
ZWNvcmRpbmdTd2l6emxlVHlwZTo6SW1hZ2VEYXRhIH19OwogfQogCitPcHRpb25hbDxJbnNwZWN0
b3JDYW52YXNDYWxsVHJhY2VyOjpQcm9jZXNzZWRBcmd1bWVudD4gSW5zcGVjdG9yQ2FudmFzOjpw
cm9jZXNzQXJndW1lbnQoSW1hZ2VEYXRhU2V0dGluZ3MmKQoreworICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQuCisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKwogT3B0aW9uYWw8SW5zcGVjdG9y
Q2FudmFzQ2FsbFRyYWNlcjo6UHJvY2Vzc2VkQXJndW1lbnQ+IEluc3BlY3RvckNhbnZhczo6cHJv
Y2Vzc0FyZ3VtZW50KEltYWdlU21vb3RoaW5nUXVhbGl0eSBhcmd1bWVudCkKIHsKICAgICByZXR1
cm4ge3sgdmFsdWVJbmRleEZvckRhdGEoY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoYXJndW1l
bnQpKSwgUmVjb3JkaW5nU3dpenpsZVR5cGU6OlN0cmluZyB9fTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNDYWxsVHJhY2VyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQ2FsbFRyYWNlci5jcHAJ
KHJldmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
YW52YXNDYWxsVHJhY2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2lu
Y2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCisjaW5jbHVkZSAiSW1hZ2VEYXRhU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JDYW52YXNBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNDYWxsVHJhY2VyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0NhbGxU
cmFjZXIuaAkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNhbnZhc0NhbGxUcmFjZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsNyBA
QCBjbGFzcyBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOwogY2xhc3MgV2ViR0xVbmlmb3JtTG9jYXRp
b247CiBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0Owogc3RydWN0IERPTU1hdHJpeDJESW5p
dDsKK3N0cnVjdCBJbWFnZURhdGFTZXR0aW5nczsKIGVudW0gY2xhc3MgUmVjb3JkaW5nU3dpenps
ZVR5cGUgOiBpbnQ7CiBlbnVtIGNsYXNzIENhbnZhc0RpcmVjdGlvbjsKIGVudW0gY2xhc3MgQ2Fu
dmFzRmlsbFJ1bGU7CkBAIC0xNTAsNiArMTUxLDcgQEAgZW51bSBJbWFnZVNtb290aGluZ1F1YWxp
dHk7CiAgICAgbWFjcm8oSFRNTEltYWdlRWxlbWVudCopIFwKICAgICBtYWNybyhJbWFnZUJpdG1h
cCopIFwKICAgICBtYWNybyhJbWFnZURhdGEqKSBcCisgICAgbWFjcm8oSW1hZ2VEYXRhU2V0dGlu
Z3MmKSBcCiAgICAgbWFjcm8oSW1hZ2VTbW9vdGhpbmdRdWFsaXR5KSBcCiAgICAgbWFjcm8oT3B0
aW9uYWw8ZmxvYXQ+JikgXAogICAgIG1hY3JvKFBhdGgyRCopIFwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNw
cAkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXJCYWNrZW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDYgKzExNiw5IEBA
IFZlY3Rvcjx1aW50OF90PiBJbWFnZUJ1ZmZlckJhY2tlbmQ6OnRvQkcKIAogT3B0aW9uYWw8UGl4
ZWxCdWZmZXI+IEltYWdlQnVmZmVyQmFja2VuZDo6Z2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxC
dWZmZXJGb3JtYXQmIGRlc3RpbmF0aW9uRm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0
LCB2b2lkKiBkYXRhKSBjb25zdAogeworICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Igbm9u
IDgtYml0IHBpeGVsIGZvcm1hdHMuCisgICAgQVNTRVJUKGRlc3RpbmF0aW9uRm9ybWF0LnBpeGVs
Rm9ybWF0ID09IFBpeGVsRm9ybWF0OjpSR0JBOCB8fCBkZXN0aW5hdGlvbkZvcm1hdC5waXhlbEZv
cm1hdCA9PSBQaXhlbEZvcm1hdDo6QkdSQTgpOworCiAgICAgYXV0byBzb3VyY2VSZWN0U2NhbGVk
ID0gdG9CYWNrZW5kQ29vcmRpbmF0ZXMoc291cmNlUmVjdCk7CiAKICAgICBhdXRvIHBpeGVsQnVm
ZmVyID0gUGl4ZWxCdWZmZXI6OnRyeUNyZWF0ZShkZXN0aW5hdGlvbkZvcm1hdCwgc291cmNlUmVj
dFNjYWxlZC5zaXplKCkpOwpAQCAtMTM0LDIzICsxMzcsMTUgQEAgT3B0aW9uYWw8UGl4ZWxCdWZm
ZXI+IEltYWdlQnVmZmVyQmFja2VuZAogICAgIGlmIChkZXN0aW5hdGlvblJlY3Quc2l6ZSgpICE9
IHNvdXJjZVJlY3RTY2FsZWQuc2l6ZSgpKQogICAgICAgICBwaXhlbEJ1ZmZlci0+ZGF0YSgpLnpl
cm9GaWxsKCk7CiAKLSAgICB1bnNpZ25lZCBzb3VyY2VCeXRlc1BlclJvdyA9IGJ5dGVzUGVyUm93
KCk7Ci0gICAgY29uc3QgdWludDhfdCogc291cmNlUm93cyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDhfdCo+KGRhdGEpICsgc291cmNlUmVjdENsaXBwZWQueSgpICogc291cmNlQnl0ZXNQZXJSb3cg
KyBzb3VyY2VSZWN0Q2xpcHBlZC54KCkgKiA0OwotCi0gICAgdW5zaWduZWQgZGVzdGluYXRpb25C
eXRlc1BlclJvdyA9IDQgKiBzb3VyY2VSZWN0U2NhbGVkLndpZHRoKCk7Ci0gICAgdWludDhfdCog
ZGVzdGluYXRpb25Sb3dzID0gcGl4ZWxCdWZmZXItPmRhdGEoKS5kYXRhKCkgKyBkZXN0aW5hdGlv
blJlY3QueSgpICogZGVzdGluYXRpb25CeXRlc1BlclJvdyArIGRlc3RpbmF0aW9uUmVjdC54KCkg
KiA0OwotCi0gICAgUGl4ZWxCdWZmZXJGb3JtYXQgc291cmNlRm9ybWF0IHsgQWxwaGFQcmVtdWx0
aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgcGl4ZWxGb3JtYXQoKSwgRGVzdGluYXRpb25Db2xv
clNwYWNlOjpTUkdCIH07Ci0KICAgICBDb25zdFBpeGVsQnVmZmVyQ29udmVyc2lvblZpZXcgc291
cmNlOwotICAgIHNvdXJjZS5mb3JtYXQgPSBzb3VyY2VGb3JtYXQ7Ci0gICAgc291cmNlLmJ5dGVz
UGVyUm93ID0gc291cmNlQnl0ZXNQZXJSb3c7Ci0gICAgc291cmNlLnJvd3MgPSBzb3VyY2VSb3dz
OworICAgIHNvdXJjZS5mb3JtYXQgPSB7IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRp
cGxpZWQsIHBpeGVsRm9ybWF0KCksIGNvbG9yU3BhY2UoKSB9OworICAgIHNvdXJjZS5ieXRlc1Bl
clJvdyA9IGJ5dGVzUGVyUm93KCk7CisgICAgc291cmNlLnJvd3MgPSByZWludGVycHJldF9jYXN0
PHVpbnQ4X3QqPihkYXRhKSArIHNvdXJjZVJlY3RDbGlwcGVkLnkoKSAqIHNvdXJjZS5ieXRlc1Bl
clJvdyArIHNvdXJjZVJlY3RDbGlwcGVkLngoKSAqIDQ7CiAgICAgCiAgICAgUGl4ZWxCdWZmZXJD
b252ZXJzaW9uVmlldyBkZXN0aW5hdGlvbjsKICAgICBkZXN0aW5hdGlvbi5mb3JtYXQgPSBkZXN0
aW5hdGlvbkZvcm1hdDsKLSAgICBkZXN0aW5hdGlvbi5ieXRlc1BlclJvdyA9IGRlc3RpbmF0aW9u
Qnl0ZXNQZXJSb3c7Ci0gICAgZGVzdGluYXRpb24ucm93cyA9IGRlc3RpbmF0aW9uUm93czsKKyAg
ICBkZXN0aW5hdGlvbi5ieXRlc1BlclJvdyA9IDQgKiBzb3VyY2VSZWN0U2NhbGVkLndpZHRoKCk7
CisgICAgZGVzdGluYXRpb24ucm93cyA9IHBpeGVsQnVmZmVyLT5kYXRhKCkuZGF0YSgpICsgZGVz
dGluYXRpb25SZWN0LnkoKSAqIGRlc3RpbmF0aW9uLmJ5dGVzUGVyUm93ICsgZGVzdGluYXRpb25S
ZWN0LngoKSAqIDQ7CiAKICAgICBjb252ZXJ0SW1hZ2VQaXhlbHMoc291cmNlLCBkZXN0aW5hdGlv
biwgZGVzdGluYXRpb25SZWN0LnNpemUoKSk7CiAKQEAgLTE1OSwxNCArMTU0LDE0IEBAIE9wdGlv
bmFsPFBpeGVsQnVmZmVyPiBJbWFnZUJ1ZmZlckJhY2tlbmQKIAogdm9pZCBJbWFnZUJ1ZmZlckJh
Y2tlbmQ6OnB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiBzb3VyY2VQaXhlbEJ1ZmZl
ciwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9u
UG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdGluYXRpb25BbHBoYUZvcm1hdCwgdm9p
ZCogZGF0YSkKIHsKLSAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIG5vbi1SR0JBOCBwaXhl
bCBmb3JtYXRzLgotICAgIEFTU0VSVChzb3VyY2VQaXhlbEJ1ZmZlci5mb3JtYXQoKS5waXhlbEZv
cm1hdCA9PSBQaXhlbEZvcm1hdDo6UkdCQTgpOworICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBm
b3Igbm9uIDgtYml0IHBpeGVsIGZvcm1hdHMuCisgICAgQVNTRVJUKHNvdXJjZVBpeGVsQnVmZmVy
LmZvcm1hdCgpLnBpeGVsRm9ybWF0ID09IFBpeGVsRm9ybWF0OjpSR0JBOCB8fCBzb3VyY2VQaXhl
bEJ1ZmZlci5mb3JtYXQoKS5waXhlbEZvcm1hdCA9PSBQaXhlbEZvcm1hdDo6QkdSQTgpOwogCiAg
ICAgYXV0byBzb3VyY2VSZWN0U2NhbGVkID0gdG9CYWNrZW5kQ29vcmRpbmF0ZXMoc291cmNlUmVj
dCk7CiAgICAgYXV0byBkZXN0aW5hdGlvblBvaW50U2NhbGVkID0gdG9CYWNrZW5kQ29vcmRpbmF0
ZXMoZGVzdGluYXRpb25Qb2ludCk7CiAKLSAgICBJbnRSZWN0IHNvdXJjZVJlY3RDbGlwcGVkID0g
aW50ZXJzZWN0aW9uKHsgSW50UG9pbnQ6Onplcm8oKSwgc291cmNlUGl4ZWxCdWZmZXIuc2l6ZSgp
IH0sIHNvdXJjZVJlY3RTY2FsZWQpOwotICAgIEludFJlY3QgZGVzdGluYXRpb25SZWN0ID0gc291
cmNlUmVjdENsaXBwZWQ7CisgICAgYXV0byBzb3VyY2VSZWN0Q2xpcHBlZCA9IGludGVyc2VjdGlv
bih7IEludFBvaW50Ojp6ZXJvKCksIHNvdXJjZVBpeGVsQnVmZmVyLnNpemUoKSB9LCBzb3VyY2VS
ZWN0U2NhbGVkKTsKKyAgICBhdXRvIGRlc3RpbmF0aW9uUmVjdCA9IHNvdXJjZVJlY3RDbGlwcGVk
OwogICAgIGRlc3RpbmF0aW9uUmVjdC5tb3ZlQnkoZGVzdGluYXRpb25Qb2ludFNjYWxlZCk7CiAK
ICAgICBpZiAoc291cmNlUmVjdFNjYWxlZC54KCkgPCAwKQpAQCAtMTc4LDI0ICsxNzMsMTUgQEAg
dm9pZCBJbWFnZUJ1ZmZlckJhY2tlbmQ6OnB1dFBpeGVsQnVmZmVyKAogICAgIGRlc3RpbmF0aW9u
UmVjdC5pbnRlcnNlY3QoYmFja2VuZFJlY3QoKSk7CiAgICAgc291cmNlUmVjdENsaXBwZWQuc2V0
U2l6ZShkZXN0aW5hdGlvblJlY3Quc2l6ZSgpKTsKIAotICAgIHVuc2lnbmVkIHNvdXJjZUJ5dGVz
UGVyUm93ID0gNCAqIHNvdXJjZVBpeGVsQnVmZmVyLnNpemUoKS53aWR0aCgpOwotICAgIGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZVJvd3MgPSBzb3VyY2VQaXhlbEJ1ZmZlci5kYXRhKCkuZGF0YSgpICsg
c291cmNlUmVjdENsaXBwZWQueSgpICogc291cmNlQnl0ZXNQZXJSb3cgKyBzb3VyY2VSZWN0Q2xp
cHBlZC54KCkgKiA0OwotCi0gICAgdW5zaWduZWQgZGVzdGluYXRpb25CeXRlc1BlclJvdyA9IGJ5
dGVzUGVyUm93KCk7Ci0gICAgdWludDhfdCogZGVzdGluYXRpb25Sb3dzID0gcmVpbnRlcnByZXRf
Y2FzdDx1aW50OF90Kj4oZGF0YSkgKyBkZXN0aW5hdGlvblJlY3QueSgpICogZGVzdGluYXRpb25C
eXRlc1BlclJvdyArIGRlc3RpbmF0aW9uUmVjdC54KCkgKiA0OwotCi0gICAgUGl4ZWxCdWZmZXJG
b3JtYXQgc291cmNlRm9ybWF0ID0gc291cmNlUGl4ZWxCdWZmZXIuZm9ybWF0KCk7Ci0gICAgUGl4
ZWxCdWZmZXJGb3JtYXQgZGVzdGluYXRpb25Gb3JtYXQgeyBkZXN0aW5hdGlvbkFscGhhRm9ybWF0
LCBwaXhlbEZvcm1hdCgpLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IgfTsKLQogICAgIENv
bnN0UGl4ZWxCdWZmZXJDb252ZXJzaW9uVmlldyBzb3VyY2U7Ci0gICAgc291cmNlLmZvcm1hdCA9
IHNvdXJjZUZvcm1hdDsKLSAgICBzb3VyY2UuYnl0ZXNQZXJSb3cgPSBzb3VyY2VCeXRlc1BlclJv
dzsKLSAgICBzb3VyY2Uucm93cyA9IHNvdXJjZVJvd3M7Ci0gICAgCisgICAgc291cmNlLmZvcm1h
dCA9IHNvdXJjZVBpeGVsQnVmZmVyLmZvcm1hdCgpOworICAgIHNvdXJjZS5ieXRlc1BlclJvdyA9
IDQgKiBzb3VyY2VQaXhlbEJ1ZmZlci5zaXplKCkud2lkdGgoKTsKKyAgICBzb3VyY2Uucm93cyA9
IHNvdXJjZVBpeGVsQnVmZmVyLmRhdGEoKS5kYXRhKCkgKyBzb3VyY2VSZWN0Q2xpcHBlZC55KCkg
KiBzb3VyY2UuYnl0ZXNQZXJSb3cgKyBzb3VyY2VSZWN0Q2xpcHBlZC54KCkgKiA0OworCiAgICAg
UGl4ZWxCdWZmZXJDb252ZXJzaW9uVmlldyBkZXN0aW5hdGlvbjsKLSAgICBkZXN0aW5hdGlvbi5m
b3JtYXQgPSBkZXN0aW5hdGlvbkZvcm1hdDsKLSAgICBkZXN0aW5hdGlvbi5ieXRlc1BlclJvdyA9
IGRlc3RpbmF0aW9uQnl0ZXNQZXJSb3c7Ci0gICAgZGVzdGluYXRpb24ucm93cyA9IGRlc3RpbmF0
aW9uUm93czsKKyAgICBkZXN0aW5hdGlvbi5mb3JtYXQgPSB7IGRlc3RpbmF0aW9uQWxwaGFGb3Jt
YXQsIHBpeGVsRm9ybWF0KCksIGNvbG9yU3BhY2UoKSB9OworICAgIGRlc3RpbmF0aW9uLmJ5dGVz
UGVyUm93ID0gYnl0ZXNQZXJSb3coKTsKKyAgICBkZXN0aW5hdGlvbi5yb3dzID0gcmVpbnRlcnBy
ZXRfY2FzdDx1aW50OF90Kj4oZGF0YSkgKyBkZXN0aW5hdGlvblJlY3QueSgpICogZGVzdGluYXRp
b24uYnl0ZXNQZXJSb3cgKyBkZXN0aW5hdGlvblJlY3QueCgpICogNDsKIAogICAgIGNvbnZlcnRJ
bWFnZVBpeGVscyhzb3VyY2UsIGRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvblJlY3Quc2l6ZSgpKTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1
ZmZlci5jcHAJKHJldmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1BpeGVsQnVmZmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsMjIgQEAg
T3B0aW9uYWw8UGl4ZWxCdWZmZXI+IFBpeGVsQnVmZmVyOjp0cnlDcgogICAgIHJldHVybiB7IHsg
Zm9ybWF0LCBzaXplLCBwaXhlbEFycmF5LnJlbGVhc2VOb25OdWxsKCkgfSB9OwogfQogCitPcHRp
b25hbDxQaXhlbEJ1ZmZlcj4gUGl4ZWxCdWZmZXI6OnRyeUNyZWF0ZShjb25zdCBQaXhlbEJ1ZmZl
ckZvcm1hdCYgZm9ybWF0LCBjb25zdCBJbnRTaXplJiBzaXplLCBSZWY8SlNDOjpBcnJheUJ1ZmZl
cj4mJiBhcnJheUJ1ZmZlcikKK3sKKyAgICAvLyBOT1RFOiBPbmx5IDgtYml0IGZvcm1hdHMgYXJl
IGN1cnJlbnRseSBzdXBwb3J0ZWQuCisgICAgQVNTRVJUKGZvcm1hdC5waXhlbEZvcm1hdCA9PSBQ
aXhlbEZvcm1hdDo6UkdCQTggfHwgZm9ybWF0LnBpeGVsRm9ybWF0ID09IFBpeGVsRm9ybWF0OjpC
R1JBOCk7CisKKyAgICBhdXRvIGJ1ZmZlclNpemUgPSBjb21wdXRlQnVmZmVyU2l6ZShmb3JtYXQs
IHNpemUpOworICAgIGlmIChidWZmZXJTaXplLmhhc092ZXJmbG93ZWQoKSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKyAgICBpZiAoYnVmZmVyU2l6ZS51bnNhZmVHZXQoKSAhPSBhcnJh
eUJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAg
IGF1dG8gcGl4ZWxBcnJheSA9IFVpbnQ4Q2xhbXBlZEFycmF5Ojp0cnlDcmVhdGUoV1RGTW92ZShh
cnJheUJ1ZmZlciksIDAsIGJ1ZmZlclNpemUudW5zYWZlR2V0KCkpOworICAgIGlmICghcGl4ZWxB
cnJheSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICByZXR1cm4geyB7IGZvcm1h
dCwgc2l6ZSwgcGl4ZWxBcnJheS5yZWxlYXNlTm9uTnVsbCgpIH0gfTsKK30KKwogUGl4ZWxCdWZm
ZXI6OlBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBmb3JtYXQsIGNvbnN0IElu
dFNpemUmIHNpemUsIFJlZjxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiYmIGRhdGEpCiAgICAgOiBt
X2Zvcm1hdCB7IGZvcm1hdCB9CiAgICAgLCBtX3NpemUgeyBzaXplIH0KQEAgLTc0LDYgKzkwLDE0
IEBAIFBpeGVsQnVmZmVyOjpQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmYKICAgICBSRUxFQVNF
X0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKChtX3NpemUuYXJlYSgpICogNCkudW5z
YWZlR2V0KCkgPD0gbV9kYXRhLT5sZW5ndGgoKSk7CiB9CiAKK1BpeGVsQnVmZmVyOjpQaXhlbEJ1
ZmZlcihjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYgZm9ybWF0LCBjb25zdCBJbnRTaXplJiBzaXpl
LCBKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5JiBkYXRhKQorICAgIDogbV9mb3JtYXQgeyBmb3JtYXQg
fQorICAgICwgbV9zaXplIHsgc2l6ZSB9CisgICAgLCBtX2RhdGEgeyBkYXRhIH0KK3sKKyAgICBS
RUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKChtX3NpemUuYXJlYSgpICog
NCkudW5zYWZlR2V0KCkgPD0gbV9kYXRhLT5sZW5ndGgoKSk7Cit9CisKIFBpeGVsQnVmZmVyOjp+
UGl4ZWxCdWZmZXIoKSA9IGRlZmF1bHQ7CiAKIFBpeGVsQnVmZmVyIFBpeGVsQnVmZmVyOjpkZWVw
Q2xvbmUoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGl4
ZWxCdWZmZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QaXhlbEJ1ZmZlci5oCShyZXZpc2lvbiAyNzc1NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw4ICs0Miwx
MCBAQCBjbGFzcyBQaXhlbEJ1ZmZlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGl4ZWxC
dWZmZXIpOwogcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBPcHRpb25hbDxQaXhl
bEJ1ZmZlcj4gdHJ5Q3JlYXRlKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiwgY29uc3QgSW50U2l6
ZSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBPcHRpb25hbDxQaXhlbEJ1ZmZlcj4gdHJ5
Q3JlYXRlKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiwgY29uc3QgSW50U2l6ZSYsIFJlZjxKU0M6
OkFycmF5QnVmZmVyPiYmKTsKIAogICAgIFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9y
bWF0JiwgY29uc3QgSW50U2l6ZSYsIFJlZjxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiYmKTsKKyAg
ICBQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYsIGNvbnN0IEludFNpemUmLCBK
U0M6OlVpbnQ4Q2xhbXBlZEFycmF5Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflBpeGVsQnVmZmVy
KCk7CiAKICAgICBQaXhlbEJ1ZmZlcihQaXhlbEJ1ZmZlciYmKSA9IGRlZmF1bHQ7CkBAIC01Myw2
ICs1NSw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBJbnRTaXplJiBzaXplKCkgY29uc3QgeyByZXR1
cm4gbV9zaXplOyB9CiAgICAgSlNDOjpVaW50OENsYW1wZWRBcnJheSYgZGF0YSgpIGNvbnN0IHsg
cmV0dXJuIG1fZGF0YS5nZXQoKTsgfQogCisgICAgUmVmPEpTQzo6VWludDhDbGFtcGVkQXJyYXk+
JiYgdGFrZURhdGEoKSB7IHJldHVybiBXVEZNb3ZlKG1fZGF0YSk7IH0KKwogICAgIFBpeGVsQnVm
ZmVyIGRlZXBDbG9uZSgpIGNvbnN0OwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGl4ZWxCdWZmZXJDb252ZXJzaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlckNvbnZlcnNpb24uY3BwCShyZXZp
c2lvbiAyNzc1NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1
ZmZlckNvbnZlcnNpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNyArMTA2LDcgQEAgc3Rh
dGljIHZvaWQgY29udmVydEltYWdlUGl4ZWxzQWNjZWxlcmF0ZQogCiAgICAgICAgIHZJbWFnZV9F
cnJvciBjb252ZXJ0ZXJDcmVhdGVFcnJvciA9IGt2SW1hZ2VOb0Vycm9yOwogICAgICAgICBhdXRv
IGNvbnZlcnRlciA9IGFkb3B0Q0YodkltYWdlQ29udmVydGVyX0NyZWF0ZVdpdGhDR0ltYWdlRm9y
bWF0KCZzb3VyY2VDR0ltYWdlRm9ybWF0LCAmZGVzdGluYXRpb25DR0ltYWdlRm9ybWF0LCBudWxs
cHRyLCBrdkltYWdlTm9GbGFncywgJmNvbnZlcnRlckNyZWF0ZUVycm9yKSk7Ci0gICAgICAgIEFT
U0VSVF9XSVRIX01FU1NBR0VfVU5VU0VEKGNvbnZlcnRlckNyZWF0ZUVycm9yLCBjb252ZXJ0ZXJD
cmVhdGVFcnJvciAhPSBrdkltYWdlTm9FcnJvciwgInZJbWFnZUNvbnZlcnRlciBjcmVhdGlvbiBm
YWlsZWQgd2l0aCBlcnJvcjogJXpkIiwgY29udmVydGVyQ3JlYXRlRXJyb3IpOworICAgICAgICBB
U1NFUlRfV0lUSF9NRVNTQUdFX1VOVVNFRChjb252ZXJ0ZXJDcmVhdGVFcnJvciwgY29udmVydGVy
Q3JlYXRlRXJyb3IgPT0ga3ZJbWFnZU5vRXJyb3IsICJ2SW1hZ2VDb252ZXJ0ZXIgY3JlYXRpb24g
ZmFpbGVkIHdpdGggZXJyb3I6ICV6ZCIsIGNvbnZlcnRlckNyZWF0ZUVycm9yKTsKIAogICAgICAg
ICB2SW1hZ2VfRXJyb3IgY29udmVydGVyQ29udmVydEVycm9yID0gdkltYWdlQ29udmVydF9BbnlU
b0FueShjb252ZXJ0ZXIuZ2V0KCksICZzb3VyY2VWSW1hZ2VCdWZmZXIsICZkZXN0aW5hdGlvblZJ
bWFnZUJ1ZmZlciwgbnVsbHB0ciwga3ZJbWFnZU5vRmxhZ3MpOwogICAgICAgICBBU1NFUlRfV0lU
SF9NRVNTQUdFX1VOVVNFRChjb252ZXJ0ZXJDb252ZXJ0RXJyb3IsIGNvbnZlcnRlckNvbnZlcnRF
cnJvciA9PSBrdkltYWdlTm9FcnJvciwgInZJbWFnZUNvbnZlcnRfQW55VG9BbnkgZmFpbGVkIGNv
bnZlcnNpb24gd2l0aCBlcnJvcjogJXpkIiwgY29udmVydGVyQ29udmVydEVycm9yKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlckVmZmVjdC5jcHAJKHJldmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDY4LDcgKzQ2OCw3IEBAIE9wdGlvbmFsPFBpeGVsQnVmZmVyPiBGaWx0ZXJFZmZlY3Q6OmNv
bnYKICAgICAvLyBDb2xvciBzcGFjZSBjb252ZXJzaW9uIGhhcHBlbnMgaW50ZXJuYWxseSB3aGVu
IGRyYXdpbmcgZnJvbSBvbmUgaW1hZ2UgYnVmZmVyIHRvIGFub3RoZXIKICAgICBjb252ZXJ0ZWRC
dWZmZXItPmNvbnRleHQoKS5kcmF3SW1hZ2VCdWZmZXIoaW5wdXRCdWZmZXIsIHJlY3QpOwogICAg
IAotICAgIFBpeGVsQnVmZmVyRm9ybWF0IGZvcm1hdCB7IG91dHB1dEFscGhhRm9ybWF0LCBQaXhl
bEZvcm1hdDo6UkdCQTgsIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQiB9OworICAgIFBpeGVs
QnVmZmVyRm9ybWF0IGZvcm1hdCB7IG91dHB1dEFscGhhRm9ybWF0LCBQaXhlbEZvcm1hdDo6UkdC
QTgsIHRhcmdldENvbG9yU3BhY2UgfTsKICAgICByZXR1cm4gY29udmVydGVkQnVmZmVyLT5nZXRQ
aXhlbEJ1ZmZlcihmb3JtYXQsIHJlY3QpOwogfQogCkBAIC01MDQsNyArNTA0LDkgQEAgdm9pZCBG
aWx0ZXJFZmZlY3Q6OmNvcHlVbm11bHRpcGxpZWRSZXN1bAogICAgICAgICAgICAgICAgIGNvcHlD
b252ZXJ0ZWRJbWFnZUJ1ZmZlclRvRGVzdGluYXRpb24oZGVzdGluYXRpb24sICpjb2xvclNwYWNl
LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpVbnByZW11bHRpcGxpZWQsIHJlY3QpOwogICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFBpeGVsQnVmZmVy
Rm9ybWF0IGZvcm1hdCB7IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlwbGllZCwg
UGl4ZWxGb3JtYXQ6OlJHQkE4LCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IgfTsKKworICAg
ICAgICAgICAgQVNTRVJUKG1faW1hZ2VCdWZmZXJSZXN1bHQtPmNvbG9yU3BhY2UoKSA9PSBtX3Jl
c3VsdENvbG9yU3BhY2UpOworICAgICAgICAgICAgUGl4ZWxCdWZmZXJGb3JtYXQgZm9ybWF0IHsg
QWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6VW5wcmVtdWx0aXBsaWVkLCBQaXhlbEZvcm1hdDo6UkdC
QTgsIG1fcmVzdWx0Q29sb3JTcGFjZSB9OwogICAgICAgICAgICAgbV91bm11bHRpcGxpZWRJbWFn
ZVJlc3VsdCA9IG1faW1hZ2VCdWZmZXJSZXN1bHQtPmdldFBpeGVsQnVmZmVyKGZvcm1hdCwgeyBJ
bnRQb2ludCgpLCBtX2Fic29sdXRlUGFpbnRSZWN0LnNpemUoKSB9KTsKICAgICAgICAgICAgIGlm
ICghbV91bm11bHRpcGxpZWRJbWFnZVJlc3VsdCkKICAgICAgICAgICAgICAgICByZXR1cm47CkBA
IC01MTIsNyArNTE0LDkgQEAgdm9pZCBGaWx0ZXJFZmZlY3Q6OmNvcHlVbm11bHRpcGxpZWRSZXN1
bAogICAgICAgICAgICAgSW50U2l6ZSBpbnB1dFNpemUobV9hYnNvbHV0ZVBhaW50UmVjdC5zaXpl
KCkpOwogICAgICAgICAgICAgQVNTRVJUKCFJbWFnZUJ1ZmZlcjo6c2l6ZU5lZWRzQ2xhbXBpbmco
aW5wdXRTaXplKSk7CiAgICAgICAgICAgICBpbnB1dFNpemUuc2NhbGUobV9maWx0ZXIuZmlsdGVy
U2NhbGUoKSk7Ci0gICAgICAgICAgICBQaXhlbEJ1ZmZlckZvcm1hdCBmb3JtYXQgeyBBbHBoYVBy
ZW11bHRpcGxpY2F0aW9uOjpVbnByZW11bHRpcGxpZWQsIFBpeGVsRm9ybWF0OjpSR0JBOCwgRGVz
dGluYXRpb25Db2xvclNwYWNlOjpTUkdCIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEFT
U0VSVChtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdC0+Zm9ybWF0KCkuY29sb3JTcGFjZSA9PSBt
X3Jlc3VsdENvbG9yU3BhY2UpOworICAgICAgICAgICAgUGl4ZWxCdWZmZXJGb3JtYXQgZm9ybWF0
IHsgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6VW5wcmVtdWx0aXBsaWVkLCBQaXhlbEZvcm1hdDo6
UkdCQTgsIG1fcmVzdWx0Q29sb3JTcGFjZSB9OwogICAgICAgICAgICAgbV91bm11bHRpcGxpZWRJ
bWFnZVJlc3VsdCA9IFBpeGVsQnVmZmVyOjp0cnlDcmVhdGUoZm9ybWF0LCBpbnB1dFNpemUpOwog
ICAgICAgICAgICAgaWYgKCFtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0KQogICAgICAgICAgICAg
ICAgIHJldHVybjsKQEAgLTUzOSw3ICs1NDMsOSBAQCB2b2lkIEZpbHRlckVmZmVjdDo6Y29weVBy
ZW11bHRpcGxpZWRSZXN1CiAgICAgICAgICAgICAgICAgY29weUNvbnZlcnRlZEltYWdlQnVmZmVy
VG9EZXN0aW5hdGlvbihkZXN0aW5hdGlvbiwgKmNvbG9yU3BhY2UsIEFscGhhUHJlbXVsdGlwbGlj
YXRpb246OlByZW11bHRpcGxpZWQsIHJlY3QpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIFBpeGVsQnVmZmVyRm9ybWF0IGZvcm1hdCB7IEFscGhh
UHJlbXVsdGlwbGljYXRpb246OlByZW11bHRpcGxpZWQsIFBpeGVsRm9ybWF0OjpSR0JBOCwgRGVz
dGluYXRpb25Db2xvclNwYWNlOjpTUkdCIH07CisKKyAgICAgICAgICAgIEFTU0VSVChtX2ltYWdl
QnVmZmVyUmVzdWx0LT5jb2xvclNwYWNlKCkgPT0gbV9yZXN1bHRDb2xvclNwYWNlKTsKKyAgICAg
ICAgICAgIFBpeGVsQnVmZmVyRm9ybWF0IGZvcm1hdCB7IEFscGhhUHJlbXVsdGlwbGljYXRpb246
OlByZW11bHRpcGxpZWQsIFBpeGVsRm9ybWF0OjpSR0JBOCwgbV9yZXN1bHRDb2xvclNwYWNlIH07
CiAgICAgICAgICAgICBtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCA9IG1faW1hZ2VCdWZmZXJS
ZXN1bHQtPmdldFBpeGVsQnVmZmVyKGZvcm1hdCwgeyBJbnRQb2ludCgpLCBtX2Fic29sdXRlUGFp
bnRSZWN0LnNpemUoKSB9KTsKICAgICAgICAgICAgIGlmICghbV9wcmVtdWx0aXBsaWVkSW1hZ2VS
ZXN1bHQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNTQ3LDcgKzU1Myw5IEBAIHZvaWQg
RmlsdGVyRWZmZWN0Ojpjb3B5UHJlbXVsdGlwbGllZFJlc3UKICAgICAgICAgICAgIEludFNpemUg
aW5wdXRTaXplKG1fYWJzb2x1dGVQYWludFJlY3Quc2l6ZSgpKTsKICAgICAgICAgICAgIEFTU0VS
VCghSW1hZ2VCdWZmZXI6OnNpemVOZWVkc0NsYW1waW5nKGlucHV0U2l6ZSkpOwogICAgICAgICAg
ICAgaW5wdXRTaXplLnNjYWxlKG1fZmlsdGVyLmZpbHRlclNjYWxlKCkpOwotICAgICAgICAgICAg
UGl4ZWxCdWZmZXJGb3JtYXQgZm9ybWF0IHsgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVs
dGlwbGllZCwgUGl4ZWxGb3JtYXQ6OlJHQkE4LCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0Ig
fTsKKworICAgICAgICAgICAgQVNTRVJUKG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQtPmZvcm1h
dCgpLmNvbG9yU3BhY2UgPT0gbV9yZXN1bHRDb2xvclNwYWNlKTsKKyAgICAgICAgICAgIFBpeGVs
QnVmZmVyRm9ybWF0IGZvcm1hdCB7IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRpcGxp
ZWQsIFBpeGVsRm9ybWF0OjpSR0JBOCwgbV9yZXN1bHRDb2xvclNwYWNlIH07CiAgICAgICAgICAg
ICBtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCA9IFBpeGVsQnVmZmVyOjp0cnlDcmVhdGUoZm9y
bWF0LCBpbnB1dFNpemUpOwogICAgICAgICAgICAgaWYgKCFtX3ByZW11bHRpcGxpZWRJbWFnZVJl
c3VsdCkKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC01OTAsNyArNTk4LDcgQEAgT3B0aW9u
YWw8UGl4ZWxCdWZmZXI+JiBGaWx0ZXJFZmZlY3Q6OmNyZQogICAgIEludFNpemUgcmVzdWx0U2l6
ZShtX2Fic29sdXRlUGFpbnRSZWN0LnNpemUoKSk7CiAgICAgQVNTRVJUKCFJbWFnZUJ1ZmZlcjo6
c2l6ZU5lZWRzQ2xhbXBpbmcocmVzdWx0U2l6ZSkpOwogICAgIHJlc3VsdFNpemUuc2NhbGUobV9m
aWx0ZXIuZmlsdGVyU2NhbGUoKSk7Ci0gICAgUGl4ZWxCdWZmZXJGb3JtYXQgZm9ybWF0IHsgQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbjo6VW5wcmVtdWx0aXBsaWVkLCBQaXhlbEZvcm1hdDo6UkdCQTgs
IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQiB9OworICAgIFBpeGVsQnVmZmVyRm9ybWF0IGZv
cm1hdCB7IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlwbGllZCwgUGl4ZWxGb3Jt
YXQ6OlJHQkE4LCBtX3Jlc3VsdENvbG9yU3BhY2UgfTsKICAgICBtX3VubXVsdGlwbGllZEltYWdl
UmVzdWx0ID0gUGl4ZWxCdWZmZXI6OnRyeUNyZWF0ZShmb3JtYXQsIHJlc3VsdFNpemUpOwogICAg
IHJldHVybiBtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0OwogfQpAQCAtNjA5LDcgKzYxNyw3IEBA
IE9wdGlvbmFsPFBpeGVsQnVmZmVyPiYgRmlsdGVyRWZmZWN0OjpjcmUKICAgICBJbnRTaXplIHJl
c3VsdFNpemUobV9hYnNvbHV0ZVBhaW50UmVjdC5zaXplKCkpOwogICAgIEFTU0VSVCghSW1hZ2VC
dWZmZXI6OnNpemVOZWVkc0NsYW1waW5nKHJlc3VsdFNpemUpKTsKICAgICByZXN1bHRTaXplLnNj
YWxlKG1fZmlsdGVyLmZpbHRlclNjYWxlKCkpOwotICAgIFBpeGVsQnVmZmVyRm9ybWF0IGZvcm1h
dCB7IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRpcGxpZWQsIFBpeGVsRm9ybWF0OjpS
R0JBOCwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCIH07CisgICAgUGl4ZWxCdWZmZXJGb3Jt
YXQgZm9ybWF0IHsgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgUGl4ZWxG
b3JtYXQ6OlJHQkE4LCBtX3Jlc3VsdENvbG9yU3BhY2UgfTsKICAgICBtX3ByZW11bHRpcGxpZWRJ
bWFnZVJlc3VsdCA9IFBpeGVsQnVmZmVyOjp0cnlDcmVhdGUoZm9ybWF0LCByZXN1bHRTaXplKTsK
ICAgICByZXR1cm4gbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQ7CiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCShyZXZpc2lvbiAyNzc1NDQpCisrKyBTb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzMzEsNyArNTMz
MSw3IEBAIHZvaWQgSW50ZXJuYWxzOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWQKICAgICBpZiAo
IXJnYmEpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBhdXRvIGltYWdlRGF0YSA9IEltYWdl
RGF0YTo6Y3JlYXRlKHJnYmEucmVsZWFzZU5vbk51bGwoKSwgdmlkZW9TZXR0aW5ncy53aWR0aCgp
LCB2aWRlb1NldHRpbmdzLmhlaWdodCgpKTsKKyAgICBhdXRvIGltYWdlRGF0YSA9IEltYWdlRGF0
YTo6Y3JlYXRlKHJnYmEucmVsZWFzZU5vbk51bGwoKSwgdmlkZW9TZXR0aW5ncy53aWR0aCgpLCB2
aWRlb1NldHRpbmdzLmhlaWdodCgpLCB7IHsgUHJlZGVmaW5lZENvbG9yU3BhY2U6OlNSR0IgfSB9
KTsKICAgICBpZiAoIWltYWdlRGF0YS5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgbV9uZXh0VHJh
Y2tGcmFtZVByb21pc2UtPnJlc29sdmUoaW1hZ2VEYXRhLnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsK
ICAgICBlbHNlCkBAIC02MjAzLDcgKzYyMDMsNyBAQCB2b2lkIEludGVybmFsczo6bG9hZEFydHdv
cmtJbWFnZShTdHJpbmcmCiAgICAgbV9hcnR3b3JrSW1hZ2VQcm9taXNlID0gbWFrZVVuaXF1ZTxB
cnR3b3JrSW1hZ2VQcm9taXNlPihXVEZNb3ZlKHByb21pc2UpKTsKICAgICBtX2FydHdvcmtMb2Fk
ZXIgPSBtYWtlVW5pcXVlPEFydHdvcmtJbWFnZUxvYWRlcj4oKmNvbnRleHREb2N1bWVudCgpLCB1
cmwsIFt0aGlzXShJbWFnZSogaW1hZ2UpIHsKICAgICAgICAgaWYgKGltYWdlKSB7Ci0gICAgICAg
ICAgICBhdXRvIGltYWdlRGF0YSA9IEltYWdlRGF0YTo6Y3JlYXRlKHVuc2lnbmVkKGltYWdlLT53
aWR0aCgpKSwgdW5zaWduZWQoaW1hZ2UtPmhlaWdodCgpKSk7CisgICAgICAgICAgICBhdXRvIGlt
YWdlRGF0YSA9IEltYWdlRGF0YTo6Y3JlYXRlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbWFnZS0+
d2lkdGgoKSksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbWFnZS0+aGVpZ2h0KCkpLCB7IHsgUHJl
ZGVmaW5lZENvbG9yU3BhY2U6OlNSR0IgfSB9KTsKICAgICAgICAgICAgIGlmICghaW1hZ2VEYXRh
Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAgIG1fYXJ0d29ya0ltYWdlUHJvbWlzZS0+
cmVzb2x2ZShpbWFnZURhdGEucmVsZWFzZVJldHVyblZhbHVlKCkpOwogICAgICAgICAgICAgZWxz
ZQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMjc3NTUyKQorKysg
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTggQEAKKzIwMjEtMDUtMTUgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciBjcmVhdGluZy9hY2Nlc3Npbmcvc2V0dGluZyBub24tc1JH
QiBJbWFnZURhdGEgdmlhIGNhbnZhcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI1ODQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRlc3RzIGVuYWJsaW5nIHRoZSBDYW52YXND
b2xvclNwYWNlRW5hYmxlZCBwcmVmZXJlbmNlLgorCisgICAgICAgICogV2ViUHJlZmVyZW5jZXMu
Y3BwOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OmNhbnZhc0NvbG9yU3BhY2VFbmFibGUpOgor
ICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmg6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAg
ICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOgorCiAyMDIxLTA1LTE0ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBsZWdhY3kgLyBw
cmVmaXhlZCBXZWJBdWRpbyBpbXBsZW1lbnRhdGlvbgpJbmRleDogU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjMx
LDMgKzI2MzEsOSBAQCBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzdG9wQmF0Y2hpbmdVcGRhCiAg
ICAgfQogICAgIHJldHVybiBTX09LOwogfQorCitib29sIFdlYlByZWZlcmVuY2VzOjpjYW52YXND
b2xvclNwYWNlRW5hYmxlKCkKK3sKKyAgICByZXR1cm4gYm9vbFZhbHVlRm9yS2V5KCJXZWJLaXRD
YW52YXNDb2xvclNwYWNlQmVoYXZpb3JFbmFibGVkIik7Cit9CisKSW5kZXg6IFNvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaAkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzQz
LDYgKzM0MywxMCBAQCBwdWJsaWM6CiAKICAgICBIUkVTVUxUIHBvc3RQcmVmZXJlbmNlc0NoYW5n
ZXNOb3RpZmljYXRpb24oKTsKIAorICAgIC8vIFRoZSBmb2xsb3dpbmcgcHJlZmVyZW5jZSBhY2Nl
c3NvcnMgYXJlIG5vdCBleHBvc2VkIHZpYSBJV2ViUHJlZmVyZW5jZXMqIGFzIHRoZXkgYXJlIG9u
bHkKKyAgICAvLyBuZWVkZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMgYW5kIGNhbiBiZSB0b2dnbGVk
IHZpYSB0aGUgc2V0KlByZWZlcmVuY2VGb3JUZXN0aW5nIGZ1bmN0aW9ucy4KKyAgICBib29sIGNh
bnZhc0NvbG9yU3BhY2VFbmFibGUoKTsKKwogcHJpdmF0ZToKICAgICBXZWJQcmVmZXJlbmNlcygp
OwogICAgIH5XZWJQcmVmZXJlbmNlcygpOwpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmll
dy5jcHAJKHJldmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZp
ZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NjY3LDYgKzU2NjcsOCBAQCBIUkVTVUxUIFdlYlZp
ZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlCiAgICAgICAgIHJldHVybiBocjsKICAgICBzZXR0
aW5ncy5zZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKCEhZW5hYmxlZCk7CiAKKyAgICBzZXR0
aW5ncy5zZXRDYW52YXNDb2xvclNwYWNlRW5hYmxlZChjYW52YXNDb2xvclNwYWNlRW5hYmxlKCkp
OworCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NzU1MSkKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisy
MDIxLTA1LTE1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgY3JlYXRpbmcvYWNjZXNzaW5nL3NldHRpbmcgbm9uLXNSR0IgSW1hZ2VEYXRh
IHZpYSBjYW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNTg0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgUmVtb3ZlIHdpZGUtZ2FtdXQtY2FudmFz
IG5vdyB0aGF0IHRoZXkgc2hvdWxkIHBhc3MuCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52
YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy1JbWFnZURhdGEtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy1JbWFn
ZURhdGEuaHRtbDogQWRkZWQuCisgICAgICAgIEFkZCBuZXcgdGVzdCBleGVyY2lzaW5nIGdldElt
YWdlRGF0YSBhbmQgcHV0SW1hZ2VEYXRhIHdpdGggbm9uLXNSR0IgY2FudmFzZXMKKyAgICAgICAg
YW5kIG5vbi1zUkdCIEltYWdlRGF0YS4KKyAKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMt
aW1hZ2VEYXRhLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgVXBkYXRlIHJlc3VsdHMgZm9yIHVwZGF0
ZWQgZXJyb3IgbWVzc2FnZXMsIHdoaWNoIGFyZSBhIGJpdCB3b3JzZSBkdWUgYWRkaXRpb25hbAor
ICAgICAgICBhbWJpZ3VpdHkgaW4gc2lnbmF0dXJlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2ds
aWIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgTWFyayBuZXcgdGVzdCBhcyBmYWlsaW5nIG9u
IGdsaWIgZHVlIHRvIGxhY2sgb2YgZGlzcGxheS1wMyBzdXBwb3J0LgorCisgICAgICAgICogcGxh
dGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIE1hcmsgbmV3IHRlc3QgYXMgZmFp
bGluZyBvbiBXaW5kb3dzIGR1ZSB0byBsYWNrIG9mIGRpc3BsYXktcDMgc3VwcG9ydC4KKyAgICAg
ICAgVW5za2lwIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZW5h
YmxlZC5odG1sIHdoaWNoCisgICAgICAgIHNob3VsZCBub3cgcGFzcyBkdWUgdG8gYWRkaW5nIG1h
bnVhbCBwcmVmZXJlbmNlcyBzdXBwb3J0IGluIFdlYktpdExlZ2FjeS93aW4uIAorCisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWF1dG9pbmNyZW1lbnQtdHlw
ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICBVcGRhdGUgcmVzdWx0cyBkdWUgdG8gbmV3IGF0dHJp
YnV0ZSBpbiBJbWFnZURhdGEgdGhhdCBpcyBhdXRvIHByaW50ZWQuCisKIDIwMjEtMDUtMTUgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcmVhdGVDb25pY0dyYWRpZW50CkluZGV4OiBMYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMJKHJldmlzaW9uIDI3NzU0NCkKKysrIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMJKHdvcmtpbmcgY29weSkKQEAgLTM5OTQsOSArMzk5NCw2IEBAIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvZWxlbWVudC9kcmF3aW5nLWltYWdlcy10by10aGUtY2FudmFzL2ltYWdlLW9y
aWVudGF0aW9uL2RyYXdJbWFnZS1mcm9tLWVsZW1lbnQtc3dhcC13aWR0aC1oZWlnaHQudGVudGF0
aXZlLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9kcmF3aW5nLWltYWdlcy10by10aGUtY2FudmFzL2lt
YWdlLW9yaWVudGF0aW9uL2RyYXdJbWFnZS1mcm9tLWVsZW1lbnQudGVudGF0aXZlLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KIAotIyBTb21ldGltZXMgcHJpbnRzIHdlaXJkIG91dHB1dCBhdCB0
aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXN0cy4KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9jYW52YXMvZWxlbWVudC93aWRlLWdhbXV0LWNhbnZhcyBbIEZhaWx1cmUgUGFzcyBd
Ci0KICMgQ1NTIE1hc29ucnkgTGF5b3V0IG5vdCBzdXBwb3J0ZWQuCiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9tYXNvbnJ5LnRlbnRhdGl2ZSBbIFNraXAgXQog
d2Via2l0Lm9yZy9iLzIwMjExNSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtZ3JpZC9zdWJncmlkIFsgU2tpcCBdCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9j
YW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy1JbWFnZURhdGEtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zcGFjZS1kaXNw
bGF5LXAzLUltYWdlRGF0YS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbG9yLXNwYWNlLWRpc3BsYXktcDMtSW1hZ2VEYXRhLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1OSBAQAorVGVzdCB0aGF0IHBp
eGVsIGFjY2VzcyBmdW5jdGlvbnMgd29yayB3aXRoIG5vbi1TUkdCIGNvbG9yIHNwYWNlcy4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW1hZ2VEYXRhQ3JlYXRlZEZyb21E
aXNwbGF5UDNDYW52YXMuY29sb3JTcGFjZSBpcyAiZGlzcGxheS1wMyIKK1BBU1MgaW1hZ2VEYXRh
Q3JlYXRlZEZyb21EaXNwbGF5UDNDYW52YXNPdmVycmlkaW5nQ29sb3JTcGFjZVNSR0IuY29sb3JT
cGFjZSBpcyAic3JnYiIKK1BBU1MgaW1hZ2VEYXRhQ3JlYXRlZEZyb21EaXNwbGF5UDNDYW52YXNP
dmVycmlkaW5nQ29sb3JTcGFjZURpc3BsYXlQMy5jb2xvclNwYWNlIGlzICJkaXNwbGF5LXAzIgor
UEFTUyBpbWFnZURhdGFDcmVhdGVkRnJvbVNSR0JDYW52YXMuY29sb3JTcGFjZSBpcyAic3JnYiIK
K1BBU1MgaW1hZ2VEYXRhQ3JlYXRlZEZyb21TUkdCQ2FudmFzT3ZlcnJpZGluZ0NvbG9yU3BhY2VT
UkdCLmNvbG9yU3BhY2UgaXMgInNyZ2IiCitQQVNTIGltYWdlRGF0YUNyZWF0ZWRGcm9tU1JHQkNh
bnZhc092ZXJyaWRpbmdDb2xvclNwYWNlRGlzcGxheVAzLmNvbG9yU3BhY2UgaXMgImRpc3BsYXkt
cDMiCitQQVNTIGltYWdlRGF0YUNyZWF0ZWRGcm9tSW1hZ2VEYXRhQ29uc3RydWN0b3IuY29sb3JT
cGFjZSBpcyAic3JnYiIKK1BBU1MgaW1hZ2VEYXRhQ3JlYXRlZEZyb21JbWFnZURhdGFDb25zdHJ1
Y3RvclNldHRpbmdDb2xvclNwYWNlVG9TUkdCLmNvbG9yU3BhY2UgaXMgInNyZ2IiCitQQVNTIGlt
YWdlRGF0YUNyZWF0ZWRGcm9tSW1hZ2VEYXRhQ29uc3RydWN0b3JTZXR0aW5nQ29sb3JTcGFjZVRv
RGlzcGxheVAzLmNvbG9yU3BhY2UgaXMgImRpc3BsYXktcDMiCitQQVNTIGltYWdlRGF0YUNyZWF0
ZWRGcm9tSW1hZ2VEYXRhQ29uc3RydWN0b3JQYXNzaW5nQnVmZmVyLmNvbG9yU3BhY2UgaXMgInNy
Z2IiCitQQVNTIGltYWdlRGF0YUNyZWF0ZWRGcm9tSW1hZ2VEYXRhQ29uc3RydWN0b3JQYXNzaW5n
QnVmZmVyU2V0dGluZ0NvbG9yU3BhY2VUb1NSR0IuY29sb3JTcGFjZSBpcyAic3JnYiIKK1BBU1Mg
aW1hZ2VEYXRhQ3JlYXRlZEZyb21JbWFnZURhdGFDb25zdHJ1Y3RvclBhc3NpbmdCdWZmZXJTZXR0
aW5nQ29sb3JTcGFjZVRvRGlzcGxheVAzLmNvbG9yU3BhY2UgaXMgImRpc3BsYXktcDMiCisKK1Rl
c3RpbmcgYSBkaXNwbGF5LXAzIGNhbnZhcyB3aXRoIGNvbG9yKGRpc3BsYXktcDMgMCAxIDApIGRy
YXduIGludG8gaXQKKworVGVzdCBnZXRJbWFnZURhdGEgd2l0aCBubyBzcGVjaWZpZWQgY29sb3Ig
c3BhY2UsIG9uIGEgZGlzcGxheS1wMyBjYW52YXMgKGNhbnZhcyBoYXMgY29sb3IoZGlzcGxheS1w
MyAwIDEgMCkgZHJhd24gaW4gaXQpCitQQVNTIGRhdGEuY29sb3JTcGFjZSBpcyAiZGlzcGxheS1w
MyIKK1BBU1MgZGF0YS5kYXRhWzBdIGlzIDAKK1BBU1MgZGF0YS5kYXRhWzFdIGlzIDI1NQorUEFT
UyBkYXRhLmRhdGFbMl0gaXMgMAorUEFTUyBkYXRhLmRhdGFbM10gaXMgMjU1CitUZXN0IGdldElt
YWdlRGF0YSB3aXRoIHNyZ2Igc3BlY2lmaWVkLCBvbiBhIGRpc3BsYXktcDMgY2FudmFzIChjYW52
YXMgaGFzIGNvbG9yKGRpc3BsYXktcDMgMCAxIDApIGRyYXduIGluIGl0KQorUEFTUyBkYXRhLmNv
bG9yU3BhY2UgaXMgInNyZ2IiCitQQVNTIGRhdGEuZGF0YVswXSBpcyAwCitQQVNTIGRhdGEuZGF0
YVsxXSBpcyAyNTUKK1BBU1MgZGF0YS5kYXRhWzJdIGlzIDAKK1BBU1MgZGF0YS5kYXRhWzNdIGlz
IDI1NQorVGVzdCBnZXRJbWFnZURhdGEgd2l0aCBkaXNwbGF5LXAzIHNwZWNpZmllZCwgb24gYSBk
aXNwbGF5LXAzIGNhbnZhcyAoY2FudmFzIGhhcyBjb2xvcihkaXNwbGF5LXAzIDAgMSAwKSBkcmF3
biBpbiBpdCkKK1BBU1MgZGF0YS5jb2xvclNwYWNlIGlzICJkaXNwbGF5LXAzIgorUEFTUyBkYXRh
LmRhdGFbMF0gaXMgMAorUEFTUyBkYXRhLmRhdGFbMV0gaXMgMjU1CitQQVNTIGRhdGEuZGF0YVsy
XSBpcyAwCitQQVNTIGRhdGEuZGF0YVszXSBpcyAyNTUKKworVGVzdGluZyBhIGRpc3BsYXktcDMg
Y2FudmFzIHdpdGggY29sb3Ioc3JnYiAwIDEgMCkgZHJhd24gaW50byBpdAorCitUZXN0IGdldElt
YWdlRGF0YSB3aXRoIG5vIHNwZWNpZmllZCBjb2xvciBzcGFjZSwgb24gYSBkaXNwbGF5LXAzIGNh
bnZhcyAoY2FudmFzIGhhcyBjb2xvcihzcmdiIDAgMSAwKSBkcmF3biBpbiBpdCkKK1BBU1MgZGF0
YS5jb2xvclNwYWNlIGlzICJkaXNwbGF5LXAzIgorUEFTUyBkYXRhLmRhdGFbMF0gaXMgMTE3CitQ
QVNTIGRhdGEuZGF0YVsxXSBpcyAyNTEKK1BBU1MgZGF0YS5kYXRhWzJdIGlzIDc2CitQQVNTIGRh
dGEuZGF0YVszXSBpcyAyNTUKK1Rlc3QgZ2V0SW1hZ2VEYXRhIHdpdGggc3JnYiBzcGVjaWZpZWQs
IG9uIGEgZGlzcGxheS1wMyBjYW52YXMgKGNhbnZhcyBoYXMgY29sb3Ioc3JnYiAwIDEgMCkgZHJh
d24gaW4gaXQpCitQQVNTIGRhdGEuY29sb3JTcGFjZSBpcyAic3JnYiIKK1BBU1MgZGF0YS5kYXRh
WzBdIGlzIDMKK1BBU1MgZGF0YS5kYXRhWzFdIGlzIDI1NQorUEFTUyBkYXRhLmRhdGFbMl0gaXMg
MAorUEFTUyBkYXRhLmRhdGFbM10gaXMgMjU1CitUZXN0IGdldEltYWdlRGF0YSB3aXRoIGRpc3Bs
YXktcDMgc3BlY2lmaWVkLCBvbiBhIGRpc3BsYXktcDMgY2FudmFzIChjYW52YXMgaGFzIGNvbG9y
KHNyZ2IgMCAxIDApIGRyYXduIGluIGl0KQorUEFTUyBkYXRhLmNvbG9yU3BhY2UgaXMgImRpc3Bs
YXktcDMiCitQQVNTIGRhdGEuZGF0YVswXSBpcyAxMTcKK1BBU1MgZGF0YS5kYXRhWzFdIGlzIDI1
MQorUEFTUyBkYXRhLmRhdGFbMl0gaXMgNzYKK1BBU1MgZGF0YS5kYXRhWzNdIGlzIDI1NQorCitU
ZXN0aW5nIGEgc3JnYiBjYW52YXMgd2l0aCBjb2xvcihkaXNwbGF5LXAzIDAgMSAwKSBkcmF3biBp
bnRvIGl0CisKK1Rlc3QgZ2V0SW1hZ2VEYXRhIHdpdGggbm8gc3BlY2lmaWVkIGNvbG9yIHNwYWNl
LCBvbiBhIHNyZ2IgY2FudmFzIChjYW52YXMgaGFzIGNvbG9yKGRpc3BsYXktcDMgMCAxIDApIGRy
YXduIGluIGl0KQorUEFTUyBkYXRhLmNvbG9yU3BhY2UgaXMgInNyZ2IiCitQQVNTIGRhdGEuZGF0
YVswXSBpcyAwCitQQVNTIGRhdGEuZGF0YVsxXSBpcyAyNTUKK1BBU1MgZGF0YS5kYXRhWzJdIGlz
IDAKK1BBU1MgZGF0YS5kYXRhWzNdIGlzIDI1NQorVGVzdCBnZXRJbWFnZURhdGEgd2l0aCBzcmdi
IHNwZWNpZmllZCwgb24gYSBzcmdiIGNhbnZhcyAoY2FudmFzIGhhcyBjb2xvcihkaXNwbGF5LXAz
IDAgMSAwKSBkcmF3biBpbiBpdCkKK1BBU1MgZGF0YS5jb2xvclNwYWNlIGlzICJzcmdiIgorUEFT
UyBkYXRhLmRhdGFbMF0gaXMgMAorUEFTUyBkYXRhLmRhdGFbMV0gaXMgMjU1CitQQVNTIGRhdGEu
ZGF0YVsyXSBpcyAwCitQQVNTIGRhdGEuZGF0YVszXSBpcyAyNTUKK1Rlc3QgZ2V0SW1hZ2VEYXRh
IHdpdGggZGlzcGxheS1wMyBzcGVjaWZpZWQsIG9uIGEgc3JnYiBjYW52YXMgKGNhbnZhcyBoYXMg
Y29sb3IoZGlzcGxheS1wMyAwIDEgMCkgZHJhd24gaW4gaXQpCitQQVNTIGRhdGEuY29sb3JTcGFj
ZSBpcyAiZGlzcGxheS1wMyIKK1BBU1MgZGF0YS5kYXRhWzBdIGlzIDExNworUEFTUyBkYXRhLmRh
dGFbMV0gaXMgMjUxCitQQVNTIGRhdGEuZGF0YVsyXSBpcyA3NgorUEFTUyBkYXRhLmRhdGFbM10g
aXMgMjU1CisKK1Rlc3RpbmcgYSBzcmdiIGNhbnZhcyB3aXRoIGNvbG9yKHNyZ2ItcDMgMCAxIDAp
IGRyYXduIGludG8gaXQKKworVGVzdCBnZXRJbWFnZURhdGEgd2l0aCBubyBzcGVjaWZpZWQgY29s
b3Igc3BhY2UsIG9uIGEgc3JnYiBjYW52YXMgKGNhbnZhcyBoYXMgY29sb3Ioc3JnYiAwIDEgMCkg
ZHJhd24gaW4gaXQpCitQQVNTIGRhdGEuY29sb3JTcGFjZSBpcyAic3JnYiIKK1BBU1MgZGF0YS5k
YXRhWzBdIGlzIDAKK1BBU1MgZGF0YS5kYXRhWzFdIGlzIDI1NQorUEFTUyBkYXRhLmRhdGFbMl0g
aXMgMAorUEFTUyBkYXRhLmRhdGFbM10gaXMgMjU1CitUZXN0IGdldEltYWdlRGF0YSB3aXRoIHNy
Z2Igc3BlY2lmaWVkLCBvbiBhIHNyZ2IgY2FudmFzIChjYW52YXMgaGFzIGNvbG9yKHNyZ2IgMCAx
IDApIGRyYXduIGluIGl0KQorUEFTUyBkYXRhLmNvbG9yU3BhY2UgaXMgInNyZ2IiCitQQVNTIGRh
dGEuZGF0YVswXSBpcyAwCitQQVNTIGRhdGEuZGF0YVsxXSBpcyAyNTUKK1BBU1MgZGF0YS5kYXRh
WzJdIGlzIDAKK1BBU1MgZGF0YS5kYXRhWzNdIGlzIDI1NQorVGVzdCBnZXRJbWFnZURhdGEgd2l0
aCBkaXNwbGF5LXAzIHNwZWNpZmllZCwgb24gYSBzcmdiIGNhbnZhcyAoY2FudmFzIGhhcyBjb2xv
cihzcmdiIDAgMSAwKSBkcmF3biBpbiBpdCkKK1BBU1MgZGF0YS5jb2xvclNwYWNlIGlzICJkaXNw
bGF5LXAzIgorUEFTUyBkYXRhLmRhdGFbMF0gaXMgMTE3CitQQVNTIGRhdGEuZGF0YVsxXSBpcyAy
NTEKK1BBU1MgZGF0YS5kYXRhWzJdIGlzIDc2CitQQVNTIGRhdGEuZGF0YVszXSBpcyAyNTUKKwor
CitUZXN0aW5nIGEgZGlzcGxheS1wMyBjYW52YXMgd2l0aCBkaXNwbGF5LXAzIEltYWdlRGF0YSBk
cmF3biBpbnRvIGl0CisKK1BBU1MgZGF0YS5jb2xvclNwYWNlIGlzICJzcmdiIgorUEFTUyBkYXRh
LmRhdGFbMF0gaXMgMAorUEFTUyBkYXRhLmRhdGFbMV0gaXMgMjU1CitQQVNTIGRhdGEuZGF0YVsy
XSBpcyAwCitQQVNTIGRhdGEuZGF0YVszXSBpcyAyNTUKK1BBU1MgZGF0YS5jb2xvclNwYWNlIGlz
ICJkaXNwbGF5LXAzIgorUEFTUyBkYXRhLmRhdGFbMF0gaXMgMAorUEFTUyBkYXRhLmRhdGFbMV0g
aXMgMjU1CitQQVNTIGRhdGEuZGF0YVsyXSBpcyAwCitQQVNTIGRhdGEuZGF0YVszXSBpcyAyNTUK
KworVGVzdGluZyBhIGRpc3BsYXktcDMgY2FudmFzIHdpdGggc3JnYiBJbWFnZURhdGEgZHJhd24g
aW50byBpdAorCitQQVNTIGRhdGEuY29sb3JTcGFjZSBpcyAic3JnYiIKK1BBU1MgZGF0YS5kYXRh
WzBdIGlzIDMKK1BBU1MgZGF0YS5kYXRhWzFdIGlzIDI1NQorUEFTUyBkYXRhLmRhdGFbMl0gaXMg
MAorUEFTUyBkYXRhLmRhdGFbM10gaXMgMjU1CitQQVNTIGRhdGEuY29sb3JTcGFjZSBpcyAiZGlz
cGxheS1wMyIKK1BBU1MgZGF0YS5kYXRhWzBdIGlzIDExNworUEFTUyBkYXRhLmRhdGFbMV0gaXMg
MjUxCitQQVNTIGRhdGEuZGF0YVsyXSBpcyA3NgorUEFTUyBkYXRhLmRhdGFbM10gaXMgMjU1CisK
K1Rlc3RpbmcgYSBzcmdiIGNhbnZhcyB3aXRoIGRpc3BsYXktcDMgSW1hZ2VEYXRhIGRyYXduIGlu
dG8gaXQKKworUEFTUyBkYXRhLmNvbG9yU3BhY2UgaXMgInNyZ2IiCitQQVNTIGRhdGEuZGF0YVsw
XSBpcyAwCitQQVNTIGRhdGEuZGF0YVsxXSBpcyAyNTUKK1BBU1MgZGF0YS5kYXRhWzJdIGlzIDAK
K1BBU1MgZGF0YS5kYXRhWzNdIGlzIDI1NQorUEFTUyBkYXRhLmNvbG9yU3BhY2UgaXMgImRpc3Bs
YXktcDMiCitQQVNTIGRhdGEuZGF0YVswXSBpcyAxMTcKK1BBU1MgZGF0YS5kYXRhWzFdIGlzIDI1
MQorUEFTUyBkYXRhLmRhdGFbMl0gaXMgNzYKK1BBU1MgZGF0YS5kYXRhWzNdIGlzIDI1NQorCitU
ZXN0aW5nIGEgc3JnYiBjYW52YXMgd2l0aCBzcmdiIEltYWdlRGF0YSBkcmF3biBpbnRvIGl0CisK
K1BBU1MgZGF0YS5jb2xvclNwYWNlIGlzICJzcmdiIgorUEFTUyBkYXRhLmRhdGFbMF0gaXMgMAor
UEFTUyBkYXRhLmRhdGFbMV0gaXMgMjU1CitQQVNTIGRhdGEuZGF0YVsyXSBpcyAwCitQQVNTIGRh
dGEuZGF0YVszXSBpcyAyNTUKK1BBU1MgZGF0YS5jb2xvclNwYWNlIGlzICJkaXNwbGF5LXAzIgor
UEFTUyBkYXRhLmRhdGFbMF0gaXMgMTE3CitQQVNTIGRhdGEuZGF0YVsxXSBpcyAyNTEKK1BBU1Mg
ZGF0YS5kYXRhWzJdIGlzIDc2CitQQVNTIGRhdGEuZGF0YVszXSBpcyAyNTUKKworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zcGFjZS1kaXNwbGF5LXAzLUltYWdlRGF0YS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1z
cGFjZS1kaXNwbGF5LXAzLUltYWdlRGF0YS5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zcGFjZS1kaXNwbGF5LXAzLUltYWdlRGF0YS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjkwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0
IHRoYXQgcGl4ZWwgYWNjZXNzIGZ1bmN0aW9ucyB3b3JrIHdpdGggbm9uLVNSR0IgY29sb3Igc3Bh
Y2VzLiIpOworCitsZXQgY2FudmFzRGlzcGxheVAzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
Y2FudmFzIik7CitsZXQgY29udGV4dERpc3BsYXlQMyA9IGNhbnZhc0Rpc3BsYXlQMy5nZXRDb250
ZXh0KCIyZCIsIHsgY29sb3JTcGFjZTogImRpc3BsYXktcDMiIH0pOworCitsZXQgY2FudmFzU1JH
QiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOworbGV0IGNvbnRleHRTUkdCID0g
Y2FudmFzU1JHQi5nZXRDb250ZXh0KCIyZCIsIHsgY29sb3JTcGFjZTogInNyZ2IiIH0pOworCitj
b25zdCBpbWFnZURhdGFDcmVhdGVkRnJvbURpc3BsYXlQM0NhbnZhcyA9IGNvbnRleHREaXNwbGF5
UDMuY3JlYXRlSW1hZ2VEYXRhKDUwLCA1MCk7CitzaG91bGRCZSgiaW1hZ2VEYXRhQ3JlYXRlZEZy
b21EaXNwbGF5UDNDYW52YXMuY29sb3JTcGFjZSIsIGAiZGlzcGxheS1wMyJgKTsKKworY29uc3Qg
aW1hZ2VEYXRhQ3JlYXRlZEZyb21EaXNwbGF5UDNDYW52YXNPdmVycmlkaW5nQ29sb3JTcGFjZVNS
R0IgPSBjb250ZXh0RGlzcGxheVAzLmNyZWF0ZUltYWdlRGF0YSg1MCwgNTAsIHsgY29sb3JTcGFj
ZTogInNyZ2IiIH0pOworc2hvdWxkQmUoImltYWdlRGF0YUNyZWF0ZWRGcm9tRGlzcGxheVAzQ2Fu
dmFzT3ZlcnJpZGluZ0NvbG9yU3BhY2VTUkdCLmNvbG9yU3BhY2UiLCBgInNyZ2IiYCk7CisKK2Nv
bnN0IGltYWdlRGF0YUNyZWF0ZWRGcm9tRGlzcGxheVAzQ2FudmFzT3ZlcnJpZGluZ0NvbG9yU3Bh
Y2VEaXNwbGF5UDMgPSBjb250ZXh0RGlzcGxheVAzLmNyZWF0ZUltYWdlRGF0YSg1MCwgNTAsIHsg
Y29sb3JTcGFjZTogImRpc3BsYXktcDMiIH0pOworc2hvdWxkQmUoImltYWdlRGF0YUNyZWF0ZWRG
cm9tRGlzcGxheVAzQ2FudmFzT3ZlcnJpZGluZ0NvbG9yU3BhY2VEaXNwbGF5UDMuY29sb3JTcGFj
ZSIsIGAiZGlzcGxheS1wMyJgKTsKKworY29uc3QgaW1hZ2VEYXRhQ3JlYXRlZEZyb21TUkdCQ2Fu
dmFzID0gY29udGV4dFNSR0IuY3JlYXRlSW1hZ2VEYXRhKDUwLCA1MCk7CitzaG91bGRCZSgiaW1h
Z2VEYXRhQ3JlYXRlZEZyb21TUkdCQ2FudmFzLmNvbG9yU3BhY2UiLCBgInNyZ2IiYCk7CisKK2Nv
bnN0IGltYWdlRGF0YUNyZWF0ZWRGcm9tU1JHQkNhbnZhc092ZXJyaWRpbmdDb2xvclNwYWNlU1JH
QiA9IGNvbnRleHRTUkdCLmNyZWF0ZUltYWdlRGF0YSg1MCwgNTAsIHsgY29sb3JTcGFjZTogInNy
Z2IiIH0pOworc2hvdWxkQmUoImltYWdlRGF0YUNyZWF0ZWRGcm9tU1JHQkNhbnZhc092ZXJyaWRp
bmdDb2xvclNwYWNlU1JHQi5jb2xvclNwYWNlIiwgYCJzcmdiImApOworCitjb25zdCBpbWFnZURh
dGFDcmVhdGVkRnJvbVNSR0JDYW52YXNPdmVycmlkaW5nQ29sb3JTcGFjZURpc3BsYXlQMyA9IGNv
bnRleHRTUkdCLmNyZWF0ZUltYWdlRGF0YSg1MCwgNTAsIHsgY29sb3JTcGFjZTogImRpc3BsYXkt
cDMiIH0pOworc2hvdWxkQmUoImltYWdlRGF0YUNyZWF0ZWRGcm9tU1JHQkNhbnZhc092ZXJyaWRp
bmdDb2xvclNwYWNlRGlzcGxheVAzLmNvbG9yU3BhY2UiLCBgImRpc3BsYXktcDMiYCk7CisKK2Nv
bnN0IGltYWdlRGF0YUNyZWF0ZWRGcm9tSW1hZ2VEYXRhQ29uc3RydWN0b3IgPSBuZXcgSW1hZ2VE
YXRhKDUwLCA1MCwgeyBjb2xvclNwYWNlOiAic3JnYiIgfSk7CitzaG91bGRCZSgiaW1hZ2VEYXRh
Q3JlYXRlZEZyb21JbWFnZURhdGFDb25zdHJ1Y3Rvci5jb2xvclNwYWNlIiwgYCJzcmdiImApOwor
Citjb25zdCBpbWFnZURhdGFDcmVhdGVkRnJvbUltYWdlRGF0YUNvbnN0cnVjdG9yU2V0dGluZ0Nv
bG9yU3BhY2VUb1NSR0IgPSBuZXcgSW1hZ2VEYXRhKDUwLCA1MCwgeyBjb2xvclNwYWNlOiAic3Jn
YiIgfSk7CitzaG91bGRCZSgiaW1hZ2VEYXRhQ3JlYXRlZEZyb21JbWFnZURhdGFDb25zdHJ1Y3Rv
clNldHRpbmdDb2xvclNwYWNlVG9TUkdCLmNvbG9yU3BhY2UiLCBgInNyZ2IiYCk7CisKK2NvbnN0
IGltYWdlRGF0YUNyZWF0ZWRGcm9tSW1hZ2VEYXRhQ29uc3RydWN0b3JTZXR0aW5nQ29sb3JTcGFj
ZVRvRGlzcGxheVAzID0gbmV3IEltYWdlRGF0YSg1MCwgNTAsIHsgY29sb3JTcGFjZTogImRpc3Bs
YXktcDMiIH0pOworc2hvdWxkQmUoImltYWdlRGF0YUNyZWF0ZWRGcm9tSW1hZ2VEYXRhQ29uc3Ry
dWN0b3JTZXR0aW5nQ29sb3JTcGFjZVRvRGlzcGxheVAzLmNvbG9yU3BhY2UiLCBgImRpc3BsYXkt
cDMiYCk7CisKK2NvbnN0IGltYWdlRGF0YUNyZWF0ZWRGcm9tSW1hZ2VEYXRhQ29uc3RydWN0b3JQ
YXNzaW5nQnVmZmVyID0gbmV3IEltYWdlRGF0YShuZXcgVWludDhDbGFtcGVkQXJyYXkoNDAwKSwg
MTAsIDEwLCB7IGNvbG9yU3BhY2U6ICJzcmdiIiB9KTsKK3Nob3VsZEJlKCJpbWFnZURhdGFDcmVh
dGVkRnJvbUltYWdlRGF0YUNvbnN0cnVjdG9yUGFzc2luZ0J1ZmZlci5jb2xvclNwYWNlIiwgYCJz
cmdiImApOworCitjb25zdCBpbWFnZURhdGFDcmVhdGVkRnJvbUltYWdlRGF0YUNvbnN0cnVjdG9y
UGFzc2luZ0J1ZmZlclNldHRpbmdDb2xvclNwYWNlVG9TUkdCID0gbmV3IEltYWdlRGF0YShuZXcg
VWludDhDbGFtcGVkQXJyYXkoNDAwKSwgMTAsIDEwLCB7IGNvbG9yU3BhY2U6ICJzcmdiIiB9KTsK
K3Nob3VsZEJlKCJpbWFnZURhdGFDcmVhdGVkRnJvbUltYWdlRGF0YUNvbnN0cnVjdG9yUGFzc2lu
Z0J1ZmZlclNldHRpbmdDb2xvclNwYWNlVG9TUkdCLmNvbG9yU3BhY2UiLCBgInNyZ2IiYCk7CisK
K2NvbnN0IGltYWdlRGF0YUNyZWF0ZWRGcm9tSW1hZ2VEYXRhQ29uc3RydWN0b3JQYXNzaW5nQnVm
ZmVyU2V0dGluZ0NvbG9yU3BhY2VUb0Rpc3BsYXlQMyA9IG5ldyBJbWFnZURhdGEobmV3IFVpbnQ4
Q2xhbXBlZEFycmF5KDQwMCksIDEwLCAxMCwgeyBjb2xvclNwYWNlOiAiZGlzcGxheS1wMyIgfSk7
CitzaG91bGRCZSgiaW1hZ2VEYXRhQ3JlYXRlZEZyb21JbWFnZURhdGFDb25zdHJ1Y3RvclBhc3Np
bmdCdWZmZXJTZXR0aW5nQ29sb3JTcGFjZVRvRGlzcGxheVAzLmNvbG9yU3BhY2UiLCBgImRpc3Bs
YXktcDMiYCk7CisKK3ZhciBkYXRhID0geyB9OworCisvLyBOT1RFOgorLy8gY29sb3Ioc3JnYiAw
IDEgMCkgY29udmVydGVkIHRvIGRpc3BsYXktcDMgaXMgY29sb3IoZGlzcGxheS1wMyAwLjQ1ODQg
MC45ODUyNiAwLjI5ODI5KSBvciBbMTE3LCAyNTEsIDc2LCAyNTVdIGluIGJ5dGUgZm9ybS4KKwor
ZGVidWcoIiIpOworZGVidWcoIlRlc3RpbmcgYSBkaXNwbGF5LXAzIGNhbnZhcyB3aXRoIGNvbG9y
KGRpc3BsYXktcDMgMCAxIDApIGRyYXduIGludG8gaXQiKTsKK2RlYnVnKCIiKTsKKworY29udGV4
dERpc3BsYXlQMy5maWxsU3R5bGUgPSAiY29sb3IoZGlzcGxheS1wMyAwIDEgMCkiOworY29udGV4
dERpc3BsYXlQMy5maWxsUmVjdCgwLCAwLCA1MCwgNTApOworCisvLyBObyBzcGVjaWZpZWQgY29s
b3Igc3BhY2Ugd2lsbCBkZWZhdWx0IHRvIHRoZSBjYW52YXMnIGNvbG9yIHNwYWNlLCBpbiB0aGlz
IGNhc2UsIGRpc3BsYXktcDMKK2RlYnVnKCJUZXN0IGdldEltYWdlRGF0YSB3aXRoIG5vIHNwZWNp
ZmllZCBjb2xvciBzcGFjZSwgb24gYSBkaXNwbGF5LXAzIGNhbnZhcyAoY2FudmFzIGhhcyBjb2xv
cihkaXNwbGF5LXAzIDAgMSAwKSBkcmF3biBpbiBpdCkiKTsKK2RhdGEgPSBjb250ZXh0RGlzcGxh
eVAzLmdldEltYWdlRGF0YSgwLCAwLCAxLCAxKTsKK3Nob3VsZEJlKCJkYXRhLmNvbG9yU3BhY2Ui
LCBgImRpc3BsYXktcDMiYCkKK3Nob3VsZEJlKCJkYXRhLmRhdGFbMF0iLCAiMCIpOworc2hvdWxk
QmUoImRhdGEuZGF0YVsxXSIsICIyNTUiKTsKK3Nob3VsZEJlKCJkYXRhLmRhdGFbMl0iLCAiMCIp
Oworc2hvdWxkQmUoImRhdGEuZGF0YVszXSIsICIyNTUiKTsKKworZGVidWcoIlRlc3QgZ2V0SW1h
Z2VEYXRhIHdpdGggc3JnYiBzcGVjaWZpZWQsIG9uIGEgZGlzcGxheS1wMyBjYW52YXMgKGNhbnZh
cyBoYXMgY29sb3IoZGlzcGxheS1wMyAwIDEgMCkgZHJhd24gaW4gaXQpIik7CisvLyBOT1RFOiBj
b2xvcihkaXNwbGF5LXAzIDAgMSAwKSBpcyBvdXRzaWRlIHRoZSByYW5nZSBvZiBzUkdCLCBzbyBp
dCBjbGlwcGVkIHRvIDI1NS4KK2RhdGEgPSBjb250ZXh0RGlzcGxheVAzLmdldEltYWdlRGF0YSgw
LCAwLCAxLCAxLCB7IGNvbG9yU3BhY2U6ICJzcmdiIiB9KTsKK3Nob3VsZEJlKCJkYXRhLmNvbG9y
U3BhY2UiLCBgInNyZ2IiYCkKK3Nob3VsZEJlKCJkYXRhLmRhdGFbMF0iLCAiMCIpOworc2hvdWxk
QmUoImRhdGEuZGF0YVsxXSIsICIyNTUiKTsKK3Nob3VsZEJlKCJkYXRhLmRhdGFbMl0iLCAiMCIp
Oworc2hvdWxkQmUoImRhdGEuZGF0YVszXSIsICIyNTUiKTsKKworZGVidWcoIlRlc3QgZ2V0SW1h
Z2VEYXRhIHdpdGggZGlzcGxheS1wMyBzcGVjaWZpZWQsIG9uIGEgZGlzcGxheS1wMyBjYW52YXMg
KGNhbnZhcyBoYXMgY29sb3IoZGlzcGxheS1wMyAwIDEgMCkgZHJhd24gaW4gaXQpIik7CitkYXRh
ID0gY29udGV4dERpc3BsYXlQMy5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMSwgeyBjb2xvclNwYWNl
OiAiZGlzcGxheS1wMyIgfSk7CitzaG91bGRCZSgiZGF0YS5jb2xvclNwYWNlIiwgYCJkaXNwbGF5
LXAzImApCitzaG91bGRCZSgiZGF0YS5kYXRhWzBdIiwgIjAiKTsKK3Nob3VsZEJlKCJkYXRhLmRh
dGFbMV0iLCAiMjU1Iik7CitzaG91bGRCZSgiZGF0YS5kYXRhWzJdIiwgIjAiKTsKK3Nob3VsZEJl
KCJkYXRhLmRhdGFbM10iLCAiMjU1Iik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0aW5nIGEg
ZGlzcGxheS1wMyBjYW52YXMgd2l0aCBjb2xvcihzcmdiIDAgMSAwKSBkcmF3biBpbnRvIGl0Iik7
CitkZWJ1ZygiIik7CisKK2NvbnRleHREaXNwbGF5UDMuZmlsbFN0eWxlID0gImNvbG9yKHNyZ2Ig
MCAxIDApIjsKK2NvbnRleHREaXNwbGF5UDMuZmlsbFJlY3QoMCwgMCwgNTAsIDUwKTsKKworLy8g
Tm8gc3BlY2lmaWVkIGNvbG9yIHNwYWNlIHdpbGwgZGVmYXVsdCB0byB0aGUgY2FudmFzJyBjb2xv
ciBzcGFjZSwgaW4gdGhpcyBjYXNlLCBkaXNwbGF5LXAzCitkZWJ1ZygiVGVzdCBnZXRJbWFnZURh
dGEgd2l0aCBubyBzcGVjaWZpZWQgY29sb3Igc3BhY2UsIG9uIGEgZGlzcGxheS1wMyBjYW52YXMg
KGNhbnZhcyBoYXMgY29sb3Ioc3JnYiAwIDEgMCkgZHJhd24gaW4gaXQpIik7CitkYXRhID0gY29u
dGV4dERpc3BsYXlQMy5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMSk7CitzaG91bGRCZSgiZGF0YS5j
b2xvclNwYWNlIiwgYCJkaXNwbGF5LXAzImApCitzaG91bGRCZSgiZGF0YS5kYXRhWzBdIiwgIjEx
NyIpOworc2hvdWxkQmUoImRhdGEuZGF0YVsxXSIsICIyNTEiKTsKK3Nob3VsZEJlKCJkYXRhLmRh
dGFbMl0iLCAiNzYiKTsKK3Nob3VsZEJlKCJkYXRhLmRhdGFbM10iLCAiMjU1Iik7CisKK2RlYnVn
KCJUZXN0IGdldEltYWdlRGF0YSB3aXRoIHNyZ2Igc3BlY2lmaWVkLCBvbiBhIGRpc3BsYXktcDMg
Y2FudmFzIChjYW52YXMgaGFzIGNvbG9yKHNyZ2IgMCAxIDApIGRyYXduIGluIGl0KSIpOworZGF0
YSA9IGNvbnRleHREaXNwbGF5UDMuZ2V0SW1hZ2VEYXRhKDAsIDAsIDEsIDEsIHsgY29sb3JTcGFj
ZTogInNyZ2IiIH0pOworc2hvdWxkQmUoImRhdGEuY29sb3JTcGFjZSIsIGAic3JnYiJgKQorLy8g
Tk9URTogVGhpcyAzIGlzIG9kZCwgYnV0IGR1ZSB0byBsYWNrIG9mIHByZWNpc2lvbiBpbiA4LWJp
dCByb3VuZC10cmlwcGluZy4KK3Nob3VsZEJlKCJkYXRhLmRhdGFbMF0iLCAiMyIpOworc2hvdWxk
QmUoImRhdGEuZGF0YVsxXSIsICIyNTUiKTsKK3Nob3VsZEJlKCJkYXRhLmRhdGFbMl0iLCAiMCIp
Oworc2hvdWxkQmUoImRhdGEuZGF0YVszXSIsICIyNTUiKTsKKworZGVidWcoIlRlc3QgZ2V0SW1h
Z2VEYXRhIHdpdGggZGlzcGxheS1wMyBzcGVjaWZpZWQsIG9uIGEgZGlzcGxheS1wMyBjYW52YXMg
KGNhbnZhcyBoYXMgY29sb3Ioc3JnYiAwIDEgMCkgZHJhd24gaW4gaXQpIik7CitkYXRhID0gY29u
dGV4dERpc3BsYXlQMy5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMSwgeyBjb2xvclNwYWNlOiAiZGlz
cGxheS1wMyIgfSk7CitzaG91bGRCZSgiZGF0YS5jb2xvclNwYWNlIiwgYCJkaXNwbGF5LXAzImAp
CitzaG91bGRCZSgiZGF0YS5kYXRhWzBdIiwgIjExNyIpOworc2hvdWxkQmUoImRhdGEuZGF0YVsx
XSIsICIyNTEiKTsKK3Nob3VsZEJlKCJkYXRhLmRhdGFbMl0iLCAiNzYiKTsKK3Nob3VsZEJlKCJk
YXRhLmRhdGFbM10iLCAiMjU1Iik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0aW5nIGEgc3Jn
YiBjYW52YXMgd2l0aCBjb2xvcihkaXNwbGF5LXAzIDAgMSAwKSBkcmF3biBpbnRvIGl0Iik7Citk
ZWJ1ZygiIik7CisKK2NvbnRleHRTUkdCLmZpbGxTdHlsZSA9ICJjb2xvcihkaXNwbGF5LXAzIDAg
MSAwKSI7Citjb250ZXh0U1JHQi5maWxsUmVjdCgwLCAwLCA1MCwgNTApOworCisvLyBObyBzcGVj
aWZpZWQgY29sb3Igc3BhY2Ugd2lsbCBkZWZhdWx0IHRvIHRoZSBjYW52YXMnIGNvbG9yIHNwYWNl
LCBpbiB0aGlzIGNhc2UsIHNyZ2IKK2RlYnVnKCJUZXN0IGdldEltYWdlRGF0YSB3aXRoIG5vIHNw
ZWNpZmllZCBjb2xvciBzcGFjZSwgb24gYSBzcmdiIGNhbnZhcyAoY2FudmFzIGhhcyBjb2xvcihk
aXNwbGF5LXAzIDAgMSAwKSBkcmF3biBpbiBpdCkiKTsKK2RhdGEgPSBjb250ZXh0U1JHQi5nZXRJ
bWFnZURhdGEoMCwgMCwgMSwgMSk7CitzaG91bGRCZSgiZGF0YS5jb2xvclNwYWNlIiwgYCJzcmdi
ImApCitzaG91bGRCZSgiZGF0YS5kYXRhWzBdIiwgIjAiKTsKK3Nob3VsZEJlKCJkYXRhLmRhdGFb
MV0iLCAiMjU1Iik7CitzaG91bGRCZSgiZGF0YS5kYXRhWzJdIiwgIjAiKTsKK3Nob3VsZEJlKCJk
YXRhLmRhdGFbM10iLCAiMjU1Iik7CisKK2RlYnVnKCJUZXN0IGdldEltYWdlRGF0YSB3aXRoIHNy
Z2Igc3BlY2lmaWVkLCBvbiBhIHNyZ2IgY2FudmFzIChjYW52YXMgaGFzIGNvbG9yKGRpc3BsYXkt
cDMgMCAxIDApIGRyYXduIGluIGl0KSIpOworZGF0YSA9IGNvbnRleHRTUkdCLmdldEltYWdlRGF0
YSgwLCAwLCAxLCAxLCB7IGNvbG9yU3BhY2U6ICJzcmdiIiB9KTsKK3Nob3VsZEJlKCJkYXRhLmNv
bG9yU3BhY2UiLCBgInNyZ2IiYCkKK3Nob3VsZEJlKCJkYXRhLmRhdGFbMF0iLCAiMCIpOworc2hv
dWxkQmUoImRhdGEuZGF0YVsxXSIsICIyNTUiKTsKK3Nob3VsZEJlKCJkYXRhLmRhdGFbMl0iLCAi
MCIpOworc2hvdWxkQmUoImRhdGEuZGF0YVszXSIsICIyNTUiKTsKKworZGVidWcoIlRlc3QgZ2V0
SW1hZ2VEYXRhIHdpdGggZGlzcGxheS1wMyBzcGVjaWZpZWQsIG9uIGEgc3JnYiBjYW52YXMgKGNh
bnZhcyBoYXMgY29sb3IoZGlzcGxheS1wMyAwIDEgMCkgZHJhd24gaW4gaXQpIik7CitkYXRhID0g
Y29udGV4dFNSR0IuZ2V0SW1hZ2VEYXRhKDAsIDAsIDEsIDEsIHsgY29sb3JTcGFjZTogImRpc3Bs
YXktcDMiIH0pOworc2hvdWxkQmUoImRhdGEuY29sb3JTcGFjZSIsIGAiZGlzcGxheS1wMyJgKQor
c2hvdWxkQmUoImRhdGEuZGF0YVswXSIsICIxMTciKTsKK3Nob3VsZEJlKCJkYXRhLmRhdGFbMV0i
LCAiMjUxIik7CitzaG91bGRCZSgiZGF0YS5kYXRhWzJdIiwgIjc2Iik7CitzaG91bGRCZSgiZGF0
YS5kYXRhWzNdIiwgIjI1NSIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdGluZyBhIHNyZ2Ig
Y2FudmFzIHdpdGggY29sb3Ioc3JnYi1wMyAwIDEgMCkgZHJhd24gaW50byBpdCIpOworZGVidWco
IiIpOworCitjb250ZXh0U1JHQi5maWxsU3R5bGUgPSAiY29sb3Ioc3JnYiAwIDEgMCkiOworY29u
dGV4dFNSR0IuZmlsbFJlY3QoMCwgMCwgNTAsIDUwKTsKKworLy8gTm8gc3BlY2lmaWVkIGNvbG9y
IHNwYWNlIHdpbGwgZGVmYXVsdCB0byB0aGUgY2FudmFzJyBjb2xvciBzcGFjZSwgaW4gdGhpcyBj
YXNlLCBzcmdiCitkZWJ1ZygiVGVzdCBnZXRJbWFnZURhdGEgd2l0aCBubyBzcGVjaWZpZWQgY29s
b3Igc3BhY2UsIG9uIGEgc3JnYiBjYW52YXMgKGNhbnZhcyBoYXMgY29sb3Ioc3JnYiAwIDEgMCkg
ZHJhd24gaW4gaXQpIik7CitkYXRhID0gY29udGV4dFNSR0IuZ2V0SW1hZ2VEYXRhKDAsIDAsIDEs
IDEpOworc2hvdWxkQmUoImRhdGEuY29sb3JTcGFjZSIsIGAic3JnYiJgKQorc2hvdWxkQmUoImRh
dGEuZGF0YVswXSIsICIwIik7CitzaG91bGRCZSgiZGF0YS5kYXRhWzFdIiwgIjI1NSIpOworc2hv
dWxkQmUoImRhdGEuZGF0YVsyXSIsICIwIik7CitzaG91bGRCZSgiZGF0YS5kYXRhWzNdIiwgIjI1
NSIpOworCitkZWJ1ZygiVGVzdCBnZXRJbWFnZURhdGEgd2l0aCBzcmdiIHNwZWNpZmllZCwgb24g
YSBzcmdiIGNhbnZhcyAoY2FudmFzIGhhcyBjb2xvcihzcmdiIDAgMSAwKSBkcmF3biBpbiBpdCki
KTsKK2RhdGEgPSBjb250ZXh0U1JHQi5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMSwgeyBjb2xvclNw
YWNlOiAic3JnYiIgfSk7CitzaG91bGRCZSgiZGF0YS5jb2xvclNwYWNlIiwgYCJzcmdiImApCitz
aG91bGRCZSgiZGF0YS5kYXRhWzBdIiwgIjAiKTsKK3Nob3VsZEJlKCJkYXRhLmRhdGFbMV0iLCAi
MjU1Iik7CitzaG91bGRCZSgiZGF0YS5kYXRhWzJdIiwgIjAiKTsKK3Nob3VsZEJlKCJkYXRhLmRh
dGFbM10iLCAiMjU1Iik7CisKK2RlYnVnKCJUZXN0IGdldEltYWdlRGF0YSB3aXRoIGRpc3BsYXkt
cDMgc3BlY2lmaWVkLCBvbiBhIHNyZ2IgY2FudmFzIChjYW52YXMgaGFzIGNvbG9yKHNyZ2IgMCAx
IDApIGRyYXduIGluIGl0KSIpOworZGF0YSA9IGNvbnRleHRTUkdCLmdldEltYWdlRGF0YSgwLCAw
LCAxLCAxLCB7IGNvbG9yU3BhY2U6ICJkaXNwbGF5LXAzIiB9KTsKK3Nob3VsZEJlKCJkYXRhLmNv
bG9yU3BhY2UiLCBgImRpc3BsYXktcDMiYCkKK3Nob3VsZEJlKCJkYXRhLmRhdGFbMF0iLCAiMTE3
Iik7CitzaG91bGRCZSgiZGF0YS5kYXRhWzFdIiwgIjI1MSIpOworc2hvdWxkQmUoImRhdGEuZGF0
YVsyXSIsICI3NiIpOworc2hvdWxkQmUoImRhdGEuZGF0YVszXSIsICIyNTUiKTsKKworCitkZWJ1
ZygiIik7CisKKworY29uc3QgaW1hZ2VEYXRhRGlzcGxheVAzVG9QdXQgPSBuZXcgSW1hZ2VEYXRh
KDEsIDEsIHsgY29sb3JTcGFjZTogImRpc3BsYXktcDMiIH0pOworaW1hZ2VEYXRhRGlzcGxheVAz
VG9QdXQuZGF0YVswXSA9IDA7CitpbWFnZURhdGFEaXNwbGF5UDNUb1B1dC5kYXRhWzFdID0gMjU1
OworaW1hZ2VEYXRhRGlzcGxheVAzVG9QdXQuZGF0YVsyXSA9IDA7CitpbWFnZURhdGFEaXNwbGF5
UDNUb1B1dC5kYXRhWzNdID0gMjU1OworCitjb25zdCBpbWFnZURhdGFTUkdCVG9QdXQgPSBuZXcg
SW1hZ2VEYXRhKDEsIDEsIHsgY29sb3JTcGFjZTogInNyZ2IiIH0pOworaW1hZ2VEYXRhU1JHQlRv
UHV0LmRhdGFbMF0gPSAwOworaW1hZ2VEYXRhU1JHQlRvUHV0LmRhdGFbMV0gPSAyNTU7CitpbWFn
ZURhdGFTUkdCVG9QdXQuZGF0YVsyXSA9IDA7CitpbWFnZURhdGFTUkdCVG9QdXQuZGF0YVszXSA9
IDI1NTsKKworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdGluZyBhIGRpc3BsYXktcDMgY2FudmFz
IHdpdGggZGlzcGxheS1wMyBJbWFnZURhdGEgZHJhd24gaW50byBpdCIpOworZGVidWcoIiIpOwor
Citjb250ZXh0RGlzcGxheVAzLnB1dEltYWdlRGF0YShpbWFnZURhdGFEaXNwbGF5UDNUb1B1dCwg
MCwgMCk7CisKK2RhdGEgPSBjb250ZXh0RGlzcGxheVAzLmdldEltYWdlRGF0YSgwLCAwLCAxLCAx
LCB7IGNvbG9yU3BhY2U6ICJzcmdiIiB9KTsKK3Nob3VsZEJlKCJkYXRhLmNvbG9yU3BhY2UiLCBg
InNyZ2IiYCkKK3Nob3VsZEJlKCJkYXRhLmRhdGFbMF0iLCAiMCIpOworc2hvdWxkQmUoImRhdGEu
ZGF0YVsxXSIsICIyNTUiKTsKK3Nob3VsZEJlKCJkYXRhLmRhdGFbMl0iLCAiMCIpOworc2hvdWxk
QmUoImRhdGEuZGF0YVszXSIsICIyNTUiKTsKKworZGF0YSA9IGNvbnRleHREaXNwbGF5UDMuZ2V0
SW1hZ2VEYXRhKDAsIDAsIDEsIDEsIHsgY29sb3JTcGFjZTogImRpc3BsYXktcDMiIH0pOworc2hv
dWxkQmUoImRhdGEuY29sb3JTcGFjZSIsIGAiZGlzcGxheS1wMyJgKQorc2hvdWxkQmUoImRhdGEu
ZGF0YVswXSIsICIwIik7CitzaG91bGRCZSgiZGF0YS5kYXRhWzFdIiwgIjI1NSIpOworc2hvdWxk
QmUoImRhdGEuZGF0YVsyXSIsICIwIik7CitzaG91bGRCZSgiZGF0YS5kYXRhWzNdIiwgIjI1NSIp
OworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdGluZyBhIGRpc3BsYXktcDMgY2FudmFzIHdpdGgg
c3JnYiBJbWFnZURhdGEgZHJhd24gaW50byBpdCIpOworZGVidWcoIiIpOworCitjb250ZXh0RGlz
cGxheVAzLnB1dEltYWdlRGF0YShpbWFnZURhdGFTUkdCVG9QdXQsIDAsIDApOworCitkYXRhID0g
Y29udGV4dERpc3BsYXlQMy5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMSwgeyBjb2xvclNwYWNlOiAi
c3JnYiIgfSk7CitzaG91bGRCZSgiZGF0YS5jb2xvclNwYWNlIiwgYCJzcmdiImApCisvLyBOT1RF
OiBUaGlzIDMgaXMgb2RkLCBidXQgZHVlIHRvIGxhY2sgb2YgcHJlY2lzaW9uIGluIDgtYml0IHJv
dW5kLXRyaXBwaW5nLgorc2hvdWxkQmUoImRhdGEuZGF0YVswXSIsICIzIik7CitzaG91bGRCZSgi
ZGF0YS5kYXRhWzFdIiwgIjI1NSIpOworc2hvdWxkQmUoImRhdGEuZGF0YVsyXSIsICIwIik7Citz
aG91bGRCZSgiZGF0YS5kYXRhWzNdIiwgIjI1NSIpOworCitkYXRhID0gY29udGV4dERpc3BsYXlQ
My5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMSwgeyBjb2xvclNwYWNlOiAiZGlzcGxheS1wMyIgfSk7
CitzaG91bGRCZSgiZGF0YS5jb2xvclNwYWNlIiwgYCJkaXNwbGF5LXAzImApCitzaG91bGRCZSgi
ZGF0YS5kYXRhWzBdIiwgIjExNyIpOworc2hvdWxkQmUoImRhdGEuZGF0YVsxXSIsICIyNTEiKTsK
K3Nob3VsZEJlKCJkYXRhLmRhdGFbMl0iLCAiNzYiKTsKK3Nob3VsZEJlKCJkYXRhLmRhdGFbM10i
LCAiMjU1Iik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0aW5nIGEgc3JnYiBjYW52YXMgd2l0
aCBkaXNwbGF5LXAzIEltYWdlRGF0YSBkcmF3biBpbnRvIGl0Iik7CitkZWJ1ZygiIik7CisKK2Nv
bnRleHRTUkdCLnB1dEltYWdlRGF0YShpbWFnZURhdGFEaXNwbGF5UDNUb1B1dCwgMCwgMCk7CisK
K2RhdGEgPSBjb250ZXh0U1JHQi5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMSwgeyBjb2xvclNwYWNl
OiAic3JnYiIgfSk7CitzaG91bGRCZSgiZGF0YS5jb2xvclNwYWNlIiwgYCJzcmdiImApCitzaG91
bGRCZSgiZGF0YS5kYXRhWzBdIiwgIjAiKTsKK3Nob3VsZEJlKCJkYXRhLmRhdGFbMV0iLCAiMjU1
Iik7CitzaG91bGRCZSgiZGF0YS5kYXRhWzJdIiwgIjAiKTsKK3Nob3VsZEJlKCJkYXRhLmRhdGFb
M10iLCAiMjU1Iik7CisKK2RhdGEgPSBjb250ZXh0U1JHQi5nZXRJbWFnZURhdGEoMCwgMCwgMSwg
MSwgeyBjb2xvclNwYWNlOiAiZGlzcGxheS1wMyIgfSk7CitzaG91bGRCZSgiZGF0YS5jb2xvclNw
YWNlIiwgYCJkaXNwbGF5LXAzImApCitzaG91bGRCZSgiZGF0YS5kYXRhWzBdIiwgIjExNyIpOwor
c2hvdWxkQmUoImRhdGEuZGF0YVsxXSIsICIyNTEiKTsKK3Nob3VsZEJlKCJkYXRhLmRhdGFbMl0i
LCAiNzYiKTsKK3Nob3VsZEJlKCJkYXRhLmRhdGFbM10iLCAiMjU1Iik7CisKKworZGVidWcoIiIp
OworZGVidWcoIlRlc3RpbmcgYSBzcmdiIGNhbnZhcyB3aXRoIHNyZ2IgSW1hZ2VEYXRhIGRyYXdu
IGludG8gaXQiKTsKK2RlYnVnKCIiKTsKKworY29udGV4dFNSR0IucHV0SW1hZ2VEYXRhKGltYWdl
RGF0YVNSR0JUb1B1dCwgMCwgMCk7CisKK2RhdGEgPSBjb250ZXh0U1JHQi5nZXRJbWFnZURhdGEo
MCwgMCwgMSwgMSwgeyBjb2xvclNwYWNlOiAic3JnYiIgfSk7CitzaG91bGRCZSgiZGF0YS5jb2xv
clNwYWNlIiwgYCJzcmdiImApCitzaG91bGRCZSgiZGF0YS5kYXRhWzBdIiwgIjAiKTsKK3Nob3Vs
ZEJlKCJkYXRhLmRhdGFbMV0iLCAiMjU1Iik7CitzaG91bGRCZSgiZGF0YS5kYXRhWzJdIiwgIjAi
KTsKK3Nob3VsZEJlKCJkYXRhLmRhdGFbM10iLCAiMjU1Iik7CisKK2RhdGEgPSBjb250ZXh0U1JH
Qi5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMSwgeyBjb2xvclNwYWNlOiAiZGlzcGxheS1wMyIgfSk7
CitzaG91bGRCZSgiZGF0YS5jb2xvclNwYWNlIiwgYCJkaXNwbGF5LXAzImApCitzaG91bGRCZSgi
ZGF0YS5kYXRhWzBdIiwgIjExNyIpOworc2hvdWxkQmUoImRhdGEuZGF0YVsxXSIsICIyNTEiKTsK
K3Nob3VsZEJlKCJkYXRhLmRhdGFbMl0iLCAiNzYiKTsKK3Nob3VsZEJlKCJkYXRhLmRhdGFbM10i
LCAiMjU1Iik7CisKK2RlYnVnKCIiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWltYWdlRGF0YS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWltYWdlRGF0YS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDI3NzU0NCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFz
L2NhbnZhcy1pbWFnZURhdGEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNCwyMCAr
MTQsMjAgQEAgUEFTUyBuZXcgSW1hZ2VEYXRhKC0yMCwgMjApIHRocmV3IGV4Y2VwdAogUEFTUyBu
ZXcgSW1hZ2VEYXRhKDIwLCAtMjApIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBDYW5ub3Qg
YWxsb2NhdGUgYSBidWZmZXIgb2YgdGhpcyBzaXplLgogUEFTUyBuZXcgSW1hZ2VEYXRhKG51bGws
IDIwKSB0aHJldyBleGNlcHRpb24gSW5kZXhTaXplRXJyb3I6IFRoZSBpbmRleCBpcyBub3QgaW4g
dGhlIGFsbG93ZWQgcmFuZ2UuLgogUEFTUyBuZXcgSW1hZ2VEYXRhKDMyNzY4LCAzMjc2OCkgdGhy
ZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IENhbm5vdCBhbGxvY2F0ZSBhIGJ1ZmZlciBvZiB0aGlz
IHNpemUuCi1QQVNTIG5ldyBJbWFnZURhdGEobnVsbCwgMjAsIDIwKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBBcmd1bWVudCAxICgnZGF0YScpIHRvIHRoZSBJbWFnZURhdGEgY29uc3RydWN0
b3IgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBVaW50OENsYW1wZWRBcnJheS4KLVBBU1MgbmV3IElt
YWdlRGF0YShpbWFnZURhdGEsIDIwLCAyMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJn
dW1lbnQgMSAoJ2RhdGEnKSB0byB0aGUgSW1hZ2VEYXRhIGNvbnN0cnVjdG9yIG11c3QgYmUgYW4g
aW5zdGFuY2Ugb2YgVWludDhDbGFtcGVkQXJyYXkuCitQQVNTIG5ldyBJbWFnZURhdGEobnVsbCwg
MjAsIDIwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuZXcg
SW1hZ2VEYXRhKGltYWdlRGF0YSwgMjAsIDIwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBU
eXBlIGVycm9yLgogUEFTUyBuZXcgSW1hZ2VEYXRhKGltYWdlRGF0YSwgMCkgdGhyZXcgZXhjZXB0
aW9uIEluZGV4U2l6ZUVycm9yOiBUaGUgaW5kZXggaXMgbm90IGluIHRoZSBhbGxvd2VkIHJhbmdl
Li4KLVBBU1MgbmV3IEltYWdlRGF0YShpbWFnZURhdGEsIDIwLCAwKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBBcmd1bWVudCAxICgnZGF0YScpIHRvIHRoZSBJbWFnZURhdGEgY29uc3RydWN0
b3IgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBVaW50OENsYW1wZWRBcnJheS4KLVBBU1MgbmV3IElt
YWdlRGF0YShpbWFnZURhdGEsIDAsIDIwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1
bWVudCAxICgnZGF0YScpIHRvIHRoZSBJbWFnZURhdGEgY29uc3RydWN0b3IgbXVzdCBiZSBhbiBp
bnN0YW5jZSBvZiBVaW50OENsYW1wZWRBcnJheS4KLVBBU1MgbmV3IEltYWdlRGF0YShpbWFnZURh
dGEsIDEwLCA1KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnZGF0YScp
IHRvIHRoZSBJbWFnZURhdGEgY29uc3RydWN0b3IgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBVaW50
OENsYW1wZWRBcnJheS4KK1BBU1MgbmV3IEltYWdlRGF0YShpbWFnZURhdGEsIDIwLCAwKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuZXcgSW1hZ2VEYXRhKGlt
YWdlRGF0YSwgMCwgMjApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQ
QVNTIG5ldyBJbWFnZURhdGEoaW1hZ2VEYXRhLCAxMCwgNSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KIFBBU1MgbmV3IEltYWdlRGF0YShpbWFnZURhdGEuZGF0YSwgMTAs
IDUpIHRocmV3IGV4Y2VwdGlvbiBJbmRleFNpemVFcnJvcjogc2ggdmFsdWUgaXMgbm90IGVxdWFs
IHRvIGhlaWdodC4KIFBBU1MgbmV3IEltYWdlRGF0YShpbWFnZURhdGEuZGF0YSwgLTEwLCA1KSB0
aHJldyBleGNlcHRpb24gSW5kZXhTaXplRXJyb3I6IExlbmd0aCBpcyBub3QgYSBtdWx0aXBsZSBv
ZiBzdy4KIFBBU1MgbmV3IEltYWdlRGF0YShpbWFnZURhdGEuZGF0YSwgMTAsIC0xMCkgdGhyZXcg
ZXhjZXB0aW9uIEluZGV4U2l6ZUVycm9yOiBzaCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaGVpZ2h0
LgogUEFTUyBuZXcgSW1hZ2VEYXRhKG5ldyBVaW50OENsYW1wZWRBcnJheShbMSwyLDMsNCw1LDYs
Nyw4XSksNTM2ODcwOTEzLDIpOyB0aHJldyBleGNlcHRpb24gSW5kZXhTaXplRXJyb3I6IExlbmd0
aCBpcyBub3QgYSBtdWx0aXBsZSBvZiBzdy4KLVBBU1MgbmV3IEltYWdlRGF0YSh7fSwyLDIpOyB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnZGF0YScpIHRvIHRoZSBJbWFn
ZURhdGEgY29uc3RydWN0b3IgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBVaW50OENsYW1wZWRBcnJh
eS4KLVBBU1MgbmV3IEltYWdlRGF0YSh1bmRlZmluZWQsMiwyKTsgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogQXJndW1lbnQgMSAoJ2RhdGEnKSB0byB0aGUgSW1hZ2VEYXRhIGNvbnN0cnVjdG9y
IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgVWludDhDbGFtcGVkQXJyYXkuCi1QQVNTIG5ldyBJbWFn
ZURhdGEoIm5vbmUiLDIsMik7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEg
KCdkYXRhJykgdG8gdGhlIEltYWdlRGF0YSBjb25zdHJ1Y3RvciBtdXN0IGJlIGFuIGluc3RhbmNl
IG9mIFVpbnQ4Q2xhbXBlZEFycmF5LgotUEFTUyBuZXcgSW1hZ2VEYXRhKDAsMiwyKTsgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2RhdGEnKSB0byB0aGUgSW1hZ2VEYXRh
IGNvbnN0cnVjdG9yIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgVWludDhDbGFtcGVkQXJyYXkuCitQ
QVNTIG5ldyBJbWFnZURhdGEoe30sMiwyKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1MgbmV3IEltYWdlRGF0YSh1bmRlZmluZWQsMiwyKTsgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmV3IEltYWdlRGF0YSgibm9uZSIsMiwy
KTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmV3IEltYWdl
RGF0YSgwLDIsMik7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNT
IG5ldyBJbWFnZURhdGEoaW1hZ2VEYXRhLmRhdGEsIDMyNzY4LCAzMjc2OCkgdGhyZXcgZXhjZXB0
aW9uIEluZGV4U2l6ZUVycm9yOiBMZW5ndGggaXMgbm90IGEgbXVsdGlwbGUgb2Ygc3cuCiBQQVNT
IG5ldyBJbWFnZURhdGEoaW1hZ2VEYXRhLmRhdGEsIEluZmluaXR5LCBJbmZpbml0eSkgdGhyZXcg
ZXhjZXB0aW9uIEluZGV4U2l6ZUVycm9yOiBMZW5ndGggaXMgbm90IGEgbXVsdGlwbGUgb2Ygc3cu
CiBQQVNTIG5ldyBJbWFnZURhdGEoaW1hZ2VEYXRhLmRhdGEsIE5hTiwgTmFOKSB0aHJldyBleGNl
cHRpb24gSW5kZXhTaXplRXJyb3I6IExlbmd0aCBpcyBub3QgYSBtdWx0aXBsZSBvZiBzdy4KSW5k
ZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwkocmV2aXNpb24gMjc3NTQ0KQorKysgTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEzIEBACisyMDIxLTA1LTE1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgc3VwcG9ydCBmb3IgY3JlYXRpbmcvYWNjZXNzaW5nL3NldHRpbmcgbm9uLXNSR0Ig
SW1hZ2VEYXRhIHZpYSBjYW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNTg0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvd2lk
ZS1nYW11dC1jYW52YXMvMmQuY29sb3Iuc3BhY2UucDMudG8ucDMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICBVcGRhdGUgcmVzdWx0IHRvIHBhc3NpbmcuCisKIDIwMjEtMDUtMTQgIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIG91dHB1dCBlbGVtZW50IGRvZXNuJ3QgcmVh
Y3QgcHJvcGVybHkgdG8gbm9kZSB0cmVlIG11dGF0aW9ucwpJbmRleDogTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L3dpZGUtZ2Ft
dXQtY2FudmFzLzJkLmNvbG9yLnNwYWNlLnAzLnRvLnAzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL2VsZW1lbnQvd2lkZS1nYW11dC1jYW52YXMvMmQuY29sb3Iuc3BhY2UucDMudG8ucDMtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAyNzc1NDQpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvd2lkZS1nYW11dC1jYW52YXMv
MmQuY29sb3Iuc3BhY2UucDMudG8ucDMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0y
LDUgKzIsNSBAQAogdGVzdCBnZXRJbWFnZURhdGEgd2l0aCBkaXNwbGF5LXAzIGFuZCB1aW50OCBm
cm9tIGRpc3BsYXkgcDMgdWludDggY2FudmFzCiBBY3R1YWwgb3V0cHV0OgogCi1GQUlMIHRlc3Qg
Z2V0SW1hZ2VEYXRhIHdpdGggZGlzcGxheS1wMyBhbmQgdWludDggZnJvbSBkaXNwbGF5IHAzIHVp
bnQ4IGNhbnZhcyBhc3NlcnRfYXBwcm94X2VxdWFsczogZXhwZWN0ZWQgNjIgKy8tIDIgYnV0IGdv
dCA1MAorUEFTUyB0ZXN0IGdldEltYWdlRGF0YSB3aXRoIGRpc3BsYXktcDMgYW5kIHVpbnQ4IGZy
b20gZGlzcGxheSBwMyB1aW50OCBjYW52YXMKIApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z2xpYi9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L2dsaWIvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMjc3NTQ0KQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0yMzU4LDYg
KzIzNTgsNyBAQCBmYXN0L3JlcGxhY2VkL3BkZi1hcy1lbWJlZC13aXRoLW5vLW1pbWUtCiB3ZWJr
aXQub3JnL2IvMjI0MTEyIG1lZGlhL3ZpZGVvLWFzLWltZy1vdXRwdXQtcHRzLmh0bWwgWyBUaW1l
b3V0IFBhc3MgXQogCiB3ZWJraXQub3JnL2IvMjI1NDIzIGZhc3QvY2FudmFzL2NhbnZhcy1jb2xv
ci1zcGFjZS1kaXNwbGF5LXAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK3dlYmtpdC5vcmcv
Yi8yMjU0MjMgZmFzdC9jYW52YXMvY2FudmFzLWNvbG9yLXNwYWNlLWRpc3BsYXktcDMtSW1hZ2VE
YXRhLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMjU0MjMgZmFzdC9jYW52YXMvY2Fu
dmFzLWNvbXBvc2l0ZS10ZXh0LWFscGhhLmh0bWwgWyBGYWlsdXJlIF0KIAogIyBGYWlsaW5nIGFm
dGVyIHIyNzcwNzMuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0
aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0
aW9ucwkocmV2aXNpb24gMjc3NTQ0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RF
eHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTQ2MzMsNCArNDYzMyw1IEBAIHdlYmV4cG9z
ZWQvY291bnRlci1zdHlsZS1pbWFnZS1zeW1ib2xzLW4KIAogZmFzdC90ZXh0L2xpbmUtYnJlYWst
d2l0aC1sb2NhbGUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCi1mYXN0L2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWVuYWJsZWQuaHRtbCBbIFNr
aXAgXQorIyBOb24tU1JHQiBjb2xvciBzcGFjZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVk
IGJ5IHRoZSBXaW5kb3dzIHBvcnQuCitmYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlz
cGxheS1wMy1JbWFnZURhdGEuaHRtbCBbIFNraXAgXQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWF1dG9pbmNyZW1lbnQtdHlwZXMtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9vYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50LXR5cGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
Mjc3NTQ0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0
b3JlLWF1dG9pbmNyZW1lbnQtdHlwZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw3IEBAIFBBU1Mga2V5IGlzIDMKIFBBU1MgcmVxdWVzdC5yZXN1bHQucHJpbWFyeUtl
eSBpcyBpbWFnZURhdGEucHJpbWFyeUtleQogUEFTUyByZXF1ZXN0LnJlc3VsdC53aWR0aCBpcyBp
bWFnZURhdGEud2lkdGgKIFBBU1MgcmVxdWVzdC5yZXN1bHQuaGVpZ2h0IGlzIGltYWdlRGF0YS5o
ZWlnaHQKK1BBU1MgcmVxdWVzdC5yZXN1bHQuY29sb3JTcGFjZSBpcyBpbWFnZURhdGEuY29sb3JT
cGFjZQogUEFTUyBrZXkgaXMgNAogUEFTUyByZXF1ZXN0LnJlc3VsdC5wcmltYXJ5S2V5IGlzIGZp
bGVMaXN0LnByaW1hcnlLZXkKIFBBU1MgcmVxdWVzdC5yZXN1bHQubGVuZ3RoIGlzIGZpbGVMaXN0
Lmxlbmd0aApAQCAtNDAsNiArNDEsNyBAQCBQQVNTIHJlcXVlc3QucmVzdWx0WzFdLnR5cGUgaXMg
ZmlsZS50eXBlCiBQQVNTIHJlcXVlc3QucmVzdWx0WzJdLnByaW1hcnlLZXkgaXMgaW1hZ2VEYXRh
LnByaW1hcnlLZXkKIFBBU1MgcmVxdWVzdC5yZXN1bHRbMl0ud2lkdGggaXMgaW1hZ2VEYXRhLndp
ZHRoCiBQQVNTIHJlcXVlc3QucmVzdWx0WzJdLmhlaWdodCBpcyBpbWFnZURhdGEuaGVpZ2h0CitQ
QVNTIHJlcXVlc3QucmVzdWx0WzJdLmNvbG9yU3BhY2UgaXMgaW1hZ2VEYXRhLmNvbG9yU3BhY2UK
IFBBU1MgcmVxdWVzdC5yZXN1bHRbM10ucHJpbWFyeUtleSBpcyBmaWxlTGlzdC5wcmltYXJ5S2V5
CiBQQVNTIHJlcXVlc3QucmVzdWx0WzNdLmxlbmd0aCBpcyBmaWxlTGlzdC5sZW5ndGgKIFBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428763</attachid>
            <date>2021-05-15 19:11:49 -0700</date>
            <delta_ts>2021-05-15 20:15:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225845-20210515141232.patch</filename>
            <type>text/plain</type>
            <size>39315</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDI3NzU0
NCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA1
LTE1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBjb25k
aXRpb25hbGx5IGVuYWJsaW5nIE9mZnNjcmVlbkNhbnZhcyBvbmx5IGZvciBub24td29ya2VyIGNv
bnRleHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjU4NDUKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIFNv
dXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRp
b25zV1BFLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFr
ZToKKyAgICAgICAgTWF0Y2ggY3VycmVudCBiZWhhdmlvciBvZiBFTkFCTEVfT0ZGU0NSRUVOX0NB
TlZBUyBmb3IgRU5BQkxFX09GRlNDUkVFTl9DQU5WQVNfSU5fV09SS0VSUy4KKwogMjAyMS0wNS0x
NCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZC4gVXBkYXRlIE9wdGlvbnNHVEsuY21ha2UgYW5kIE5FV1MgZm9yIDIuMzMuMSBy
ZWxlYXNlCkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wNS0xNSAgU2FtIFdlaW5pZyAg
PHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgY29uZGl0aW9uYWxseSBlbmFibGlu
ZyBPZmZzY3JlZW5DYW52YXMgb25seSBmb3Igbm9uLXdvcmtlciBjb250ZXh0cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODQ1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbDoKKyAgICAgICAgQWRkIG5ldyBPZmZzY3JlZW5D
YW52YXNJbldvcmtlcnNFbmFibGVkIHByZWZlcmVuY2UuCisKKyAgICAgICAgKiB3dGYvUGxhdGZv
cm1FbmFibGUuaDoKKyAgICAgICAgQWRkIG5ldyBFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBU19JTl9X
T1JLRVJTIG1hY3JvLgorCiAyMDIxLTA1LTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgRHJvcCBGaWxlU3lzdGVtOjpmaWxlTWV0YWRhdGEoKSAvIGZpbGVNZXRh
ZGF0YUZvbGxvd2luZ1N5bWxpbmtzKCkKSW5kZXg6IFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAkocmV2aXNp
b24gMjc3NTQ0KQorKysgU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzSW50ZXJuYWwueWFtbAkod29ya2luZyBjb3B5KQpAQCAtNTU5LDYgKzU1OSwxOSBAQCBPZmZz
Y3JlZW5DYW52YXNFbmFibGVkOgogICAgICAgIkVOQUJMRShFWFBFUklNRU5UQUxfRkVBVFVSRVMp
ICYmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpIjogdHJ1ZQogICAgICAgZGVmYXVs
dDogZmFsc2UKIAorT2Zmc2NyZWVuQ2FudmFzSW5Xb3JrZXJzRW5hYmxlZDoKKyAgdHlwZTogYm9v
bAorICBodW1hblJlYWRhYmxlTmFtZTogIk9mZnNjcmVlbkNhbnZhcyBpbiBXb3JrZXJzIgorICBo
dW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJTdXBwb3J0IGZvciB0aGUgT2Zmc2NyZWVuQ2FudmFz
IEFQSXMgaW4gV29ya2VycyIKKyAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXMKKyAgY29uZGl0aW9uOiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQorICBk
ZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAg
ICBXZWJLaXQ6CisgICAgICAiRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFUykgJiYgKFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkiOiB0cnVlCisgICAgICBkZWZhdWx0OiBmYWxzZQor
CiBQcmVmZXJGYXN0ZXJDbGlja092ZXJEb3VibGVUYXA6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5S
ZWFkYWJsZU5hbWU6ICJGYXN0IGNsaWNrcyBiZWF0IERUVFoiCkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUVuYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
RW5hYmxlLmgJKHJldmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwOCw2ICs0MDgsMTAgQEAKICNkZWZpbmUgRU5BQkxF
X09GRlNDUkVFTl9DQU5WQVMgMAogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfT0ZGU0NS
RUVOX0NBTlZBU19JTl9XT1JLRVJTKQorI2RlZmluZSBFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBU19J
Tl9XT1JLRVJTIDAKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX1RIVU5ERVIpCiAjZGVm
aW5lIEVOQUJMRV9USFVOREVSIDAKICNlbmRpZgpAQCAtOTExLDYgKzkxNSwxMCBAQAogI2Vycm9y
ICJFTkFCTEUoV0hMU0xfQ09NUElMRVIpIHJlcXVpcmVzIEVOQUJMRShXRUJHUFUpIgogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKSAmJiAhRU5BQkxFKE9G
RlNDUkVFTl9DQU5WQVMpCisjZXJyb3IgIkVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktF
UlMpIHJlcXVpcmVzIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKSIKKyNlbmRpZgorCiAjaWYgVVNF
KENHKQogCiAjaWYgRU5BQkxFKERFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0RJU1BMQVlfUDMpICYm
ICFIQVZFKENPUkVfR1JBUEhJQ1NfRElTUExBWV9QM19DT0xPUl9TUEFDRSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDYyIEBACisyMDIxLTA1LTE1ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBjb25kaXRpb25hbGx5IGVuYWJsaW5nIE9mZnNj
cmVlbkNhbnZhcyBvbmx5IGZvciBub24td29ya2VyIGNvbnRleHRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU4NDUKKworICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBFbmFibGUgYm90aCBjb21waWxlIHRpbWUgYW5k
IHJ1bnRpbWUgY29uZGl0aW9uYWwgZW5hYmxlbWVudCBvZiBqdXN0IHRoZQorICAgICAgICBub24t
d29ya2VyIE9mZnNjcmVlbkNhbnZhcyBjb2RlIHBhdGguCisKKyAgICAgICAgVG8gbWFrZSB0aGlz
IHdvcmsgYSBuZXcgSURMIGV4dGVuZGVkIGF0dHJpYnV0ZSB3YXMgbmVlZGVkLCBDb25kaXRpb25h
bEZvcldvcmtlcj1GT08sCisgICAgICAgIHdoaWNoIGFsbG93cyBzcGVjaWZ5aW5nIGFuIGFkZGl0
aW9uYWwgbWFjcm8gdG8gY2hlY2sgZm9yIHdoZXRoZXIgdGhlIGNvbnN0cnVjdG9yCisgICAgICAg
IHNob3VsZCBiZSBleHBvc2VkIG9uIHdvcmtlcnMuIElkZWFsbHkgdGhpcyB3b3VsZCBiZSBnZW5l
cmljIGZvciBhbnkgY29udGV4dCB0eXBlLAorICAgICAgICBidXQgYXQgdGhlIG1vbWVudCwgdGhl
IGxpbWl0ZWQgc3ludGF4IG9mIGV4dGVuZGVkIGF0dHJpYnV0ZXMgbWFrZXMgdGhhdCBoYXJkLiBJ
ZgorICAgICAgICBnZW5lcmFsaXphdGlvbiBpcyBuZWVkZWQgKG9yIGEgc2ltaWxhciBzeW50YXgg
aXMgbmVlZGVkIGZvciBzb21ldGhpbmcgZWxzZSkgdGhpcyBjYW4KKyAgICAgICAgYmUgcmV2aXNp
dGVkLgorCisgICAgICAgIFRvIHN1cHBvcnQgcnVudGltZSBjb25kaXRpb25hbCBleHBvc3VyZSwg
dGhlIGV4aXN0aW5nIEVuYWJsZWRGb3JDb250ZXh0LCB3aGljaCBjYWxscworICAgICAgICBhIHN0
YXRpYyBmdW5jdGlvbiBvbiB0aGUgaW1wbGVtZW50YXRpb24gY2xhc3MgcGFzc2luZyB0aGUgU2Ny
aXB0RXhlY3V0YXRpb25Db250ZXh0CisgICAgICAgIGlzIHVzZWQuIElmIGNvbmRpdGlvbmFsIHBl
ciBjb250ZXh0IHR5cGUgZXZlciBiZWNvbWVzIGEgY29tbW9uIHRoaW5nLCB3ZSBzaG91bGQgYWRk
CisgICAgICAgIGFub3RoZXIgZXh0ZW5kZWQgYXR0cmlidXRlIChhbmQgYWRkIHN5bnRheCB0byBz
dXBwb3J0IGxpa2UgYWJvdmUpIHRoYXQgYWxsb3dzIHNwZWNpZnlpbmcKKyAgICAgICAgYm90aCB0
aGUgY29udGV4dCB0eXBlIGFuZCB0aGUgc2V0dGluZyBuYW1lLgorCisgICAgICAgIE90aGVyIHRo
YW4gdGhhdCwgdXNlcyBvZiBFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUyB0aGF0IGd1YXJkZWQgd29y
a2VyIHNwZWNpZmljIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgd2VyZSByZXBsYWNlZCBieSBFTkFC
TEVfT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTLgorCisgICAgICAgICogYmluZGluZ3MvanMv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFs
aXplcjo6c2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6Q2xv
bmVTZXJpYWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcElm
VGVybWluYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6ZXI6OmRlc2VyaWFs
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpDbG9uZURlc2VyaWFs
aXplcik6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZURlc2VyaWFsaXplcjo6cmVhZFRlcm1pbmFs
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNj
cmlwdFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y29t
cHV0ZU1lbW9yeUNvc3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
OjpkZXNlcmlhbGl6ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVz
Lmpzb246CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGw6Cisg
ICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9yQXR0cmlidXRlcyk6CisgICAgICAgICogaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9PZmZzY3JlZW5DYW52YXMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjplbmFibGVkRm9yQ29udGV4dCk6
CisgICAgICAgICogaHRtbC9PZmZzY3JlZW5DYW52YXMuaDoKKyAgICAgICAgKiBodG1sL09mZnNj
cmVlbkNhbnZhcy5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6ZW5hYmxlZEZvckNvbnRleHQpOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6CisgICAgICAgICog
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRPZmZzY3JlZW5DYW52YXNJbldvcmtlcnNFbmFibGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6Om9mZnNjcmVlbkNhbnZhc0lu
V29ya2Vyc0VuYWJsZWQgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlLmlkbDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckFuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQW5pbWF0aW9uQ29udHJvbGxlci5oOgorCiAyMDIx
LTA1LTE1ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBN
b3ZlIHRhYmxlIHdyYXBwZXIgcXVpcmtzIHRvIGl0cyBvd24gY2xhc3MKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAko
cmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQsNyArOTQsNyBAQAogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUu
aD4KIAotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lmIEVOQUJMRShPRkZTQ1JFRU5f
Q0FOVkFTX0lOX1dPUktFUlMpCiAjaW5jbHVkZSAiSlNPZmZzY3JlZW5DYW52YXMuaCIKICNpbmNs
dWRlICJPZmZzY3JlZW5DYW52YXMuaCIKICNlbmRpZgpAQCAtMTgxLDcgKzE4MSw3IEBAIGVudW0g
U2VyaWFsaXphdGlvblRhZyB7CiAgICAgUlRDQ2VydGlmaWNhdGVUYWcgPSA0NCwKICNlbmRpZgog
ICAgIEltYWdlQml0bWFwVGFnID0gNDUsCi0jaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCisj
aWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVNfSU5fV09SS0VSUykKICAgICBPZmZzY3JlZW5DYW52
YXNUcmFuc2ZlclRhZyA9IDQ2LAogI2VuZGlmCiAgICAgQmlnSW50VGFnID0gNDcsCkBAIC01ODMs
NyArNTgzLDcgQEAgdGVtcGxhdGUgPD4gYm9vbCB3cml0ZUxpdHRsZUVuZGlhbjx1aW50OAogY2xh
c3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgU2Vy
aWFsaXphdGlvblJldHVybkNvZGUgc2VyaWFsaXplKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlLCBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4mIG1l
c3NhZ2VQb3J0cywgVmVjdG9yPFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPj4mIGFycmF5QnVmZmVy
cywgY29uc3QgVmVjdG9yPFJlZlB0cjxJbWFnZUJpdG1hcD4+JiBpbWFnZUJpdG1hcHMsCi0jaWYg
RU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCisjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVNfSU5f
V09SS0VSUykKICAgICAgICAgICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8T2Zmc2NyZWVuQ2FudmFz
Pj4mIG9mZnNjcmVlbkNhbnZhc2VzLAogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9SVEMpCkBAIC01
OTYsNyArNTk2LDcgQEAgcHVibGljOgogICAgICAgICBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMs
IFZlY3Rvcjx1aW50OF90PiYgb3V0LCBTZXJpYWxpemF0aW9uQ29udGV4dCBjb250ZXh0LCBBcnJh
eUJ1ZmZlckNvbnRlbnRzQXJyYXkmIHNoYXJlZEJ1ZmZlcnMpCiAgICAgewogICAgICAgICBDbG9u
ZVNlcmlhbGl6ZXIgc2VyaWFsaXplcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBtZXNzYWdlUG9ydHMs
IGFycmF5QnVmZmVycywgaW1hZ2VCaXRtYXBzLAotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFT
KQorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAgICAgICAgICAgICBv
ZmZzY3JlZW5DYW52YXNlcywKICNlbmRpZgogI2lmIEVOQUJMRShXRUJfUlRDKQpAQCAtNjMwLDcg
KzYzMCw3IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNoTWFwPEpTT2JqZWN0KiwgdWludDMy
X3Q+IE9iamVjdFBvb2w7CiAKICAgICBDbG9uZVNlcmlhbGl6ZXIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYgbWVzc2FnZVBv
cnRzLCBWZWN0b3I8UmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+PiYgYXJyYXlCdWZmZXJzLCBjb25z
dCBWZWN0b3I8UmVmUHRyPEltYWdlQml0bWFwPj4mIGltYWdlQml0bWFwcywKLSNpZiBFTkFCTEUo
T0ZGU0NSRUVOX0NBTlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJT
KQogICAgICAgICAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxPZmZzY3JlZW5DYW52YXM+PiYgb2Zm
c2NyZWVuQ2FudmFzZXMsCiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX1JUQykKQEAgLTY1Niw3ICs2
NTYsNyBAQCBwcml2YXRlOgogICAgICAgICBmaWxsVHJhbnNmZXJNYXAobWVzc2FnZVBvcnRzLCBt
X3RyYW5zZmVycmVkTWVzc2FnZVBvcnRzKTsKICAgICAgICAgZmlsbFRyYW5zZmVyTWFwKGFycmF5
QnVmZmVycywgbV90cmFuc2ZlcnJlZEFycmF5QnVmZmVycyk7CiAgICAgICAgIGZpbGxUcmFuc2Zl
ck1hcChpbWFnZUJpdG1hcHMsIG1fdHJhbnNmZXJyZWRJbWFnZUJpdG1hcHMpOwotI2lmIEVOQUJM
RShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktF
UlMpCiAgICAgICAgIGZpbGxUcmFuc2Zlck1hcChvZmZzY3JlZW5DYW52YXNlcywgbV90cmFuc2Zl
cnJlZE9mZnNjcmVlbkNhbnZhc2VzKTsKICNlbmRpZgogI2lmIEVOQUJMRShXRUJfUlRDKQpAQCAt
MTA5OSw3ICsxMDk5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgd3JpdGUoc3RhdGljX2Nhc3Q8Y29u
c3QgdWludDhfdCo+KGFycmF5QnVmZmVyLT5kYXRhKCkpLCBhcnJheUJ1ZmZlci0+Ynl0ZUxlbmd0
aCgpKTsKICAgICB9CiAKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKyNpZiBFTkFCTEUo
T0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogICAgIHZvaWQgZHVtcE9mZnNjcmVlbkNhbnZh
cyhKU09iamVjdCogb2JqLCBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZSYgY29kZSkKICAgICB7CiAg
ICAgICAgIGF1dG8gaW5kZXggPSBtX3RyYW5zZmVycmVkT2Zmc2NyZWVuQ2FudmFzZXMuZmluZChv
YmopOwpAQCAtMTMwNiw3ICsxMzA2LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgICAgICAgICAg
ICAgIEFycmF5QnVmZmVyQ29udGVudHNBcnJheSBkdW1teVNoYXJlZEJ1ZmZlcnM7CiAgICAgICAg
ICAgICAgICAgQ2xvbmVTZXJpYWxpemVyIHJhd0tleVNlcmlhbGl6ZXIobV9sZXhpY2FsR2xvYmFs
T2JqZWN0LCBkdW1teU1lc3NhZ2VQb3J0cywgZHVtbXlBcnJheUJ1ZmZlcnMsIHsgfSwKLSNpZiBF
TkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9X
T1JLRVJTKQogICAgICAgICAgICAgICAgICAgICB7IH0sCiAjZW5kaWYKICNpZiBFTkFCTEUoV0VC
X1JUQykKQEAgLTEzODcsNyArMTM4Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgZHVt
cEltYWdlQml0bWFwKG9iaiwgY29kZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgICAgICB9Ci0jaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCisjaWYgRU5BQkxFKE9G
RlNDUkVFTl9DQU5WQVNfSU5fV09SS0VSUykKICAgICAgICAgICAgIGlmIChvYmotPmluaGVyaXRz
KHZtLCBKU09mZnNjcmVlbkNhbnZhczo6aW5mbygpKSkgewogICAgICAgICAgICAgICAgIGR1bXBP
ZmZzY3JlZW5DYW52YXMob2JqLCBjb2RlKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
QEAgLTE3NTEsNyArMTc1MSw3IEBAIHByaXZhdGU6CiAgICAgT2JqZWN0UG9vbCBtX3RyYW5zZmVy
cmVkTWVzc2FnZVBvcnRzOwogICAgIE9iamVjdFBvb2wgbV90cmFuc2ZlcnJlZEFycmF5QnVmZmVy
czsKICAgICBPYmplY3RQb29sIG1fdHJhbnNmZXJyZWRJbWFnZUJpdG1hcHM7Ci0jaWYgRU5BQkxF
KE9GRlNDUkVFTl9DQU5WQVMpCisjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVNfSU5fV09SS0VS
UykKICAgICBPYmplY3RQb29sIG1fdHJhbnNmZXJyZWRPZmZzY3JlZW5DYW52YXNlczsKICNlbmRp
ZgogI2lmIEVOQUJMRShXRUJfUlRDKQpAQCAtMjA0OSw3ICsyMDQ5LDcgQEAgcHVibGljOgogICAg
IH0KIAogICAgIHN0YXRpYyBEZXNlcmlhbGl6YXRpb25SZXN1bHQgZGVzZXJpYWxpemUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYgbWVzc2FnZVBvcnRzLCBWZWN0
b3I8T3B0aW9uYWw8SW1hZ2VCaXRtYXBCYWNraW5nPj4mJiBiYWNraW5nU3RvcmVzCi0jaWYgRU5B
QkxFKE9GRlNDUkVFTl9DQU5WQVMpCisjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVNfSU5fV09S
S0VSUykKICAgICAgICAgLCBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPERldGFjaGVkT2Zmc2NyZWVu
Q2FudmFzPj4mJiBkZXRhY2hlZE9mZnNjcmVlbkNhbnZhc2VzCiAjZW5kaWYKICNpZiBFTkFCTEUo
V0VCX1JUQykKQEAgLTIwNjUsNyArMjA2NSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKCFidWZm
ZXIuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGpzTnVsbCgpLCBT
ZXJpYWxpemF0aW9uUmV0dXJuQ29kZTo6VW5zcGVjaWZpZWRFcnJvcik7CiAgICAgICAgIENsb25l
RGVzZXJpYWxpemVyIGRlc2VyaWFsaXplcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmpl
Y3QsIG1lc3NhZ2VQb3J0cywgYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LCBidWZmZXIsIGJsb2JV
UkxzLCBibG9iRmlsZVBhdGhzLCBzaGFyZWRCdWZmZXJzLCBXVEZNb3ZlKGJhY2tpbmdTdG9yZXMp
Ci0jaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCisjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5W
QVNfSU5fV09SS0VSUykKICAgICAgICAgICAgICwgV1RGTW92ZShkZXRhY2hlZE9mZnNjcmVlbkNh
bnZhc2VzKQogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9SVEMpCkBAIC0yMTIyLDcgKzIxMjIsNyBA
QCBwcml2YXRlOgogICAgIH07CiAKICAgICBDbG9uZURlc2VyaWFsaXplcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29u
c3QgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+JiBtZXNzYWdlUG9ydHMsIEFycmF5QnVmZmVy
Q29udGVudHNBcnJheSogYXJyYXlCdWZmZXJDb250ZW50cywgVmVjdG9yPE9wdGlvbmFsPEltYWdl
Qml0bWFwQmFja2luZz4+JiYgYmFja2luZ1N0b3JlcywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBi
dWZmZXIKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NSRUVO
X0NBTlZBU19JTl9XT1JLRVJTKQogICAgICAgICAsIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RGV0
YWNoZWRPZmZzY3JlZW5DYW52YXM+PiYmIGRldGFjaGVkT2Zmc2NyZWVuQ2FudmFzZXMgPSB7IH0K
ICNlbmRpZgogI2lmIEVOQUJMRShXRUJfUlRDKQpAQCAtMjE0NSw3ICsyMTQ1LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgLCBtX2FycmF5QnVmZmVycyhhcnJheUJ1ZmZlckNvbnRlbnRzID8gYXJyYXlC
dWZmZXJDb250ZW50cy0+c2l6ZSgpIDogMCkKICAgICAgICAgLCBtX2JhY2tpbmdTdG9yZXMoV1RG
TW92ZShiYWNraW5nU3RvcmVzKSkKICAgICAgICAgLCBtX2ltYWdlQml0bWFwcyhtX2JhY2tpbmdT
dG9yZXMuc2l6ZSgpKQotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lmIEVOQUJMRShP
RkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAgICAgICAgICwgbV9kZXRhY2hlZE9mZnNjcmVl
bkNhbnZhc2VzKFdURk1vdmUoZGV0YWNoZWRPZmZzY3JlZW5DYW52YXNlcykpCiAgICAgICAgICwg
bV9vZmZzY3JlZW5DYW52YXNlcyhtX2RldGFjaGVkT2Zmc2NyZWVuQ2FudmFzZXMuc2l6ZSgpKQog
I2VuZGlmCkBAIC0yMTYzLDcgKzIxNjMsNyBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIENsb25l
RGVzZXJpYWxpemVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4m
IG1lc3NhZ2VQb3J0cywgQXJyYXlCdWZmZXJDb250ZW50c0FycmF5KiBhcnJheUJ1ZmZlckNvbnRl
bnRzLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZlciwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IGJsb2JVUkxzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiBibG9iRmlsZVBhdGhzLCBBcnJheUJ1ZmZl
ckNvbnRlbnRzQXJyYXkqIHNoYXJlZEJ1ZmZlcnMsIFZlY3RvcjxPcHRpb25hbDxJbWFnZUJpdG1h
cEJhY2tpbmc+PiYmIGJhY2tpbmdTdG9yZXMKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykK
KyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogICAgICAgICAsIFZlY3Rv
cjxzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+PiYmIGRldGFjaGVkT2Zm
c2NyZWVuQ2FudmFzZXMKICNlbmRpZgogI2lmIEVOQUJMRShXRUJfUlRDKQpAQCAtMjE4OSw3ICsy
MTg5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgLCBtX3NoYXJlZEJ1ZmZlcnMoc2hhcmVkQnVmZmVy
cykKICAgICAgICAgLCBtX2JhY2tpbmdTdG9yZXMoV1RGTW92ZShiYWNraW5nU3RvcmVzKSkKICAg
ICAgICAgLCBtX2ltYWdlQml0bWFwcyhtX2JhY2tpbmdTdG9yZXMuc2l6ZSgpKQotI2lmIEVOQUJM
RShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktF
UlMpCiAgICAgICAgICwgbV9kZXRhY2hlZE9mZnNjcmVlbkNhbnZhc2VzKFdURk1vdmUoZGV0YWNo
ZWRPZmZzY3JlZW5DYW52YXNlcykpCiAgICAgICAgICwgbV9vZmZzY3JlZW5DYW52YXNlcyhtX2Rl
dGFjaGVkT2Zmc2NyZWVuQ2FudmFzZXMuc2l6ZSgpKQogI2VuZGlmCkBAIC0zMDQ2LDcgKzMwNDYs
NyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gZ2V0SlNWYWx1ZShiaXRtYXApOwogICAgIH0K
IAotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FO
VkFTX0lOX1dPUktFUlMpCiAgICAgSlNWYWx1ZSByZWFkT2Zmc2NyZWVuQ2FudmFzKCkKICAgICB7
CiAgICAgICAgIHVpbnQzMl90IGluZGV4OwpAQCAtMzYwOCw3ICszNjA4LDcgQEAgcHJpdmF0ZToK
ICNlbmRpZgogICAgICAgICBjYXNlIEltYWdlQml0bWFwVGFnOgogICAgICAgICAgICAgcmV0dXJu
IHJlYWRJbWFnZUJpdG1hcCgpOwotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lmIEVO
QUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAgICAgICAgIGNhc2UgT2Zmc2NyZWVu
Q2FudmFzVHJhbnNmZXJUYWc6CiAgICAgICAgICAgICByZXR1cm4gcmVhZE9mZnNjcmVlbkNhbnZh
cygpOwogI2VuZGlmCkBAIC0zNjQ5LDcgKzM2NDksNyBAQCBwcml2YXRlOgogICAgIEFycmF5QnVm
ZmVyQ29udGVudHNBcnJheSogbV9zaGFyZWRCdWZmZXJzOwogICAgIFZlY3RvcjxPcHRpb25hbDxJ
bWFnZUJpdG1hcEJhY2tpbmc+PiBtX2JhY2tpbmdTdG9yZXM7CiAgICAgVmVjdG9yPFJlZlB0cjxJ
bWFnZUJpdG1hcD4+IG1faW1hZ2VCaXRtYXBzOwotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFT
KQorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAgICAgVmVjdG9yPHN0
ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4+IG1fZGV0YWNoZWRPZmZzY3Jl
ZW5DYW52YXNlczsKICAgICBWZWN0b3I8UmVmUHRyPE9mZnNjcmVlbkNhbnZhcz4+IG1fb2Zmc2Ny
ZWVuQ2FudmFzZXM7CiAjZW5kaWYKQEAgLTM4ODQsNyArMzg4NCw3IEBAIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFYKIH0KIAogU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgYmxvYlVSTHMsIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRz
QXJyYXk+IGFycmF5QnVmZmVyQ29udGVudHNBcnJheSwgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVm
ZmVyQ29udGVudHNBcnJheT4gc2hhcmVkQnVmZmVyQ29udGVudHNBcnJheSwgVmVjdG9yPE9wdGlv
bmFsPEltYWdlQml0bWFwQmFja2luZz4+JiYgYmFja2luZ1N0b3JlcwotI2lmIEVOQUJMRShPRkZT
Q1JFRU5fQ0FOVkFTKQorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAg
ICAgICAgICwgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4+
JiYgZGV0YWNoZWRPZmZzY3JlZW5DYW52YXNlcwogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9SVEMp
CkBAIC0zODk5LDcgKzM4OTksNyBAQCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRT
Y3JpcHRWCiAgICAgLCBtX2FycmF5QnVmZmVyQ29udGVudHNBcnJheShXVEZNb3ZlKGFycmF5QnVm
ZmVyQ29udGVudHNBcnJheSkpCiAgICAgLCBtX3NoYXJlZEJ1ZmZlckNvbnRlbnRzQXJyYXkoV1RG
TW92ZShzaGFyZWRCdWZmZXJDb250ZW50c0FycmF5KSkKICAgICAsIG1fYmFja2luZ1N0b3JlcyhX
VEZNb3ZlKGJhY2tpbmdTdG9yZXMpKQotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lm
IEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAgICAgLCBtX2RldGFjaGVkT2Zm
c2NyZWVuQ2FudmFzZXMoV1RGTW92ZShkZXRhY2hlZE9mZnNjcmVlbkNhbnZhc2VzKSkKICNlbmRp
ZgogI2lmIEVOQUJMRShXRUJfUlRDKQpAQCAtMzkzNyw3ICszOTM3LDcgQEAgc2l6ZV90IFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTo6Y29tcHV0ZU1lbQogICAgICAgICAgICAgY29zdCArPSBidWZmZXIt
Pm1lbW9yeUNvc3QoKTsKICAgICB9CiAKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKyNp
ZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogICAgIGZvciAoYXV0byYgY2Fu
dmFzIDogbV9kZXRhY2hlZE9mZnNjcmVlbkNhbnZhc2VzKSB7CiAgICAgICAgIGlmIChjYW52YXMp
CiAgICAgICAgICAgICBjb3N0ICs9IGNhbnZhcy0+bWVtb3J5Q29zdCgpOwpAQCAtNDA0MCw3ICs0
MDQwLDcgQEAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZAogICAgIFZl
Y3RvcjxTdHJpbmc+IGJsb2JVUkxzOwogICAgIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiBk
dW1teU1lc3NhZ2VQb3J0czsKICAgICBWZWN0b3I8UmVmUHRyPEltYWdlQml0bWFwPj4gZHVtbXlJ
bWFnZUJpdG1hcHM7Ci0jaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCisjaWYgRU5BQkxFKE9G
RlNDUkVFTl9DQU5WQVNfSU5fV09SS0VSUykKICAgICBWZWN0b3I8UmVmUHRyPE9mZnNjcmVlbkNh
bnZhcz4+IGR1bW15T2Zmc2NyZWVuQ2FudmFzZXM7CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX1JU
QykKQEAgLTQwNTMsNyArNDA1Myw3IEBAIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNl
cmlhbGl6ZWQKICNlbmRpZgogICAgIEFycmF5QnVmZmVyQ29udGVudHNBcnJheSBkdW1teVNoYXJl
ZEJ1ZmZlcnM7CiAgICAgYXV0byBjb2RlID0gQ2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemUoJmxl
eGljYWxHbG9iYWxPYmplY3QsIHZhbHVlLCBkdW1teU1lc3NhZ2VQb3J0cywgZHVtbXlBcnJheUJ1
ZmZlcnMsIGR1bW15SW1hZ2VCaXRtYXBzLAotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQor
I2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAgICAgICAgIGR1bW15T2Zm
c2NyZWVuQ2FudmFzZXMsCiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX1JUQykKQEAgLTQwODksNyAr
NDA4OSw3IEBAIHN0YXRpYyBib29sIGNvbnRhaW5zRHVwbGljYXRlcyhjb25zdCBWZWMKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKyNpZiBFTkFC
TEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogc3RhdGljIGJvb2wgY2FuT2Zmc2NyZWVu
Q2FudmFzZXNEZXRhY2goY29uc3QgVmVjdG9yPFJlZlB0cjxPZmZzY3JlZW5DYW52YXM+PiYgb2Zm
c2NyZWVuQ2FudmFzZXMpCiB7CiAgICAgSGFzaFNldDxPZmZzY3JlZW5DYW52YXMqPiB2aXNpdGVk
OwpAQCAtNDEyNCw3ICs0MTI0LDcgQEAgRXhjZXB0aW9uT3I8UmVmPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4+IAogICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKICAgICBWZWN0
b3I8UmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+PiBhcnJheUJ1ZmZlcnM7CiAgICAgVmVjdG9yPFJl
ZlB0cjxJbWFnZUJpdG1hcD4+IGltYWdlQml0bWFwczsKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NB
TlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogICAgIFZlY3Rv
cjxSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzPj4gb2Zmc2NyZWVuQ2FudmFzZXM7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoV0VCX1JUQykKQEAgLTQxNTYsNyArNDE1Niw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+PiAKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NB
TlZBU19JTl9XT1JLRVJTKQogICAgICAgICBpZiAoYXV0byBvZmZzY3JlZW5DYW52YXMgPSBKU09m
ZnNjcmVlbkNhbnZhczo6dG9XcmFwcGVkKHZtLCB0cmFuc2ZlcmFibGUuZ2V0KCkpKSB7CiAgICAg
ICAgICAgICBvZmZzY3JlZW5DYW52YXNlcy5hcHBlbmQoV1RGTW92ZShvZmZzY3JlZW5DYW52YXMp
KTsKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNDE3NSw3ICs0MTc1LDcgQEAgRXhjZXB0aW9u
T3I8UmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+IAogCiAgICAgaWYgKGNvbnRhaW5zRHVwbGlj
YXRlcyhpbWFnZUJpdG1hcHMpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRGF0YUNsb25l
RXJyb3IgfTsKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NS
RUVOX0NBTlZBU19JTl9XT1JLRVJTKQogICAgIGlmICghY2FuT2Zmc2NyZWVuQ2FudmFzZXNEZXRh
Y2gob2Zmc2NyZWVuQ2FudmFzZXMpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IgfTsKICNlbmRpZgpAQCAtNDE5Miw3ICs0MTkyLDcgQEAgRXhjZXB0aW9uT3I8
UmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+IAogI2VuZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRy
PEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gc2hhcmVkQnVmZmVycyA9IG1ha2VVbmlxdWU8QXJy
YXlCdWZmZXJDb250ZW50c0FycmF5PigpOwogICAgIGF1dG8gY29kZSA9IENsb25lU2VyaWFsaXpl
cjo6c2VyaWFsaXplKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSwgbWVzc2FnZVBvcnRzLCBh
cnJheUJ1ZmZlcnMsIGltYWdlQml0bWFwcywKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykK
KyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogICAgICAgICBvZmZzY3Jl
ZW5DYW52YXNlcywKICNlbmRpZgogI2lmIEVOQUJMRShXRUJfUlRDKQpAQCAtNDIxMyw3ICs0MjEz
LDcgQEAgRXhjZXB0aW9uT3I8UmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+IAogCiAgICAgYXV0
byBiYWNraW5nU3RvcmVzID0gSW1hZ2VCaXRtYXA6OmRldGFjaEJpdG1hcHMoV1RGTW92ZShpbWFn
ZUJpdG1hcHMpKTsKIAotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lmIEVOQUJMRShP
RkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxE
ZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4+IGRldGFjaGVkQ2FudmFzZXM7CiAgICAgZm9yIChhdXRv
IG9mZnNjcmVlbkNhbnZhcyA6IG9mZnNjcmVlbkNhbnZhc2VzKQogICAgICAgICBkZXRhY2hlZENh
bnZhc2VzLmFwcGVuZChvZmZzY3JlZW5DYW52YXMtPmRldGFjaCgpKTsKQEAgLTQyMjUsNyArNDIy
NSw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+PiAKICNlbmRpZgog
CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdURk1vdmUo
YnVmZmVyKSwgYmxvYlVSTHMsIGFycmF5QnVmZmVyQ29udGVudHNBcnJheS5yZWxlYXNlUmV0dXJu
VmFsdWUoKSwgY29udGV4dCA9PSBTZXJpYWxpemF0aW9uQ29udGV4dDo6V29ya2VyUG9zdE1lc3Nh
Z2UgPyBXVEZNb3ZlKHNoYXJlZEJ1ZmZlcnMpIDogbnVsbHB0ciwgV1RGTW92ZShiYWNraW5nU3Rv
cmVzKQotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lmIEVOQUJMRShPRkZTQ1JFRU5f
Q0FOVkFTX0lOX1dPUktFUlMpCiAgICAgICAgICAgICAgICAgLCBXVEZNb3ZlKGRldGFjaGVkQ2Fu
dmFzZXMpCiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX1JUQykKQEAgLTQyODUsNyArNDI4NSw3IEBA
IEpTVmFsdWUgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGkKIEpTVmFsdWUgU2VyaWFs
aXplZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZShKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFJlZlB0
cjxNZXNzYWdlUG9ydD4+JiBtZXNzYWdlUG9ydHMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9i
VVJMcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JGaWxlUGF0aHMsIFNlcmlhbGl6YXRpb25F
cnJvck1vZGUgdGhyb3dFeGNlcHRpb25zKQogewogICAgIERlc2VyaWFsaXphdGlvblJlc3VsdCBy
ZXN1bHQgPSBDbG9uZURlc2VyaWFsaXplcjo6ZGVzZXJpYWxpemUoJmxleGljYWxHbG9iYWxPYmpl
Y3QsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVBvcnRzLCBXVEZNb3ZlKG1fYmFja2luZ1N0b3JlcykK
LSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZB
U19JTl9XT1JLRVJTKQogICAgICAgICAsIFdURk1vdmUobV9kZXRhY2hlZE9mZnNjcmVlbkNhbnZh
c2VzKQogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9SVEMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAkocmV2aXNpb24gMjc3
NTQ0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgTWVtb3J5SGFuZGxlOwog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKyNp
ZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogY2xhc3MgRGV0YWNoZWRPZmZz
Y3JlZW5DYW52YXM7CiAjZW5kaWYKIGNsYXNzIElEQlZhbHVlOwpAQCAtMTIyLDcgKzEyMiw3IEBA
IHByaXZhdGU6CiAgICAgICAgICk7CiAKICAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9y
PHVuc2lnbmVkIGNoYXI+JiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgc3RkOjp1
bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4sIHN0ZDo6dW5pcXVlX3B0cjxBcnJh
eUJ1ZmZlckNvbnRlbnRzQXJyYXk+IHNoYXJlZEJ1ZmZlcnMsIFZlY3RvcjxPcHRpb25hbDxJbWFn
ZUJpdG1hcEJhY2tpbmc+PiYmIGJhY2tpbmdTdG9yZXMKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NB
TlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogICAgICAgICAs
IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+PiYmID0geyB9
CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX1JUQykKQEAgLTE0MCw3ICsxNDAsNyBAQCBwcml2YXRl
OgogICAgIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+IG1fYXJyYXlC
dWZmZXJDb250ZW50c0FycmF5OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRl
bnRzQXJyYXk+IG1fc2hhcmVkQnVmZmVyQ29udGVudHNBcnJheTsKICAgICBWZWN0b3I8T3B0aW9u
YWw8SW1hZ2VCaXRtYXBCYWNraW5nPj4gbV9iYWNraW5nU3RvcmVzOwotI2lmIEVOQUJMRShPRkZT
Q1JFRU5fQ0FOVkFTKQorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAg
ICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4+IG1fZGV0
YWNoZWRPZmZzY3JlZW5DYW52YXNlczsKICNlbmRpZgogI2lmIEVOQUJMRShXRUJfUlRDKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVz
Lmpzb24JKHJldmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvSURMQXR0cmlidXRlcy5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC03MSw2ICs3MSwxMSBAQAog
ICAgICAgICAgICAgInZhbHVlcyI6IFsiKiJdLAogICAgICAgICAgICAgInN1cHBvcnRzQ29uanVu
Y3Rpb24iOiB0cnVlCiAgICAgICAgIH0sCisgICAgICAgICJDb25kaXRpb25hbEZvcldvcmtlciI6
IHsKKyAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFjZSIsICJuYW1lc3Bh
Y2UiLCAiZGljdGlvbmFyeSIsICJkaWN0aW9uYXJ5LW1lbWJlciIsICJlbnVtIiwgImF0dHJpYnV0
ZSIsICJvcGVyYXRpb24iLCAiY29uc3RhbnQiLCAiY2FsbGJhY2stZnVuY3Rpb24iLCAiaW5jbHVk
ZXMiXSwKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioiXSwKKyAgICAgICAgICAgICJzdXBwb3J0
c0Nvbmp1bmN0aW9uIjogdHJ1ZQorICAgICAgICB9LAogICAgICAgICAiQ29uZGl0aW9uYWxseVJl
YWRXcml0ZSI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImF0dHJpYnV0ZSJd
LAogICAgICAgICAgICAgInZhbHVlcyI6IFsiKiJdLApJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwJKHJldmlzaW9uIDI3NzU0
NCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBs
CSh3b3JraW5nIGNvcHkpCkBAIC0yMjgsMTAgKzIyOCwxMSBAQCBmb3JlYWNoIG15ICRpZGxGaWxl
TmFtZSAoc29ydCBrZXlzICVpZGxGCiAgICAgICAgIH0KICAgICAgICAgJGV4cG9zZWRBdHRyaWJ1
dGUgPSBzdWJzdHIoJGV4cG9zZWRBdHRyaWJ1dGUsIDEsIC0xKSBpZiBzdWJzdHIoJGV4cG9zZWRB
dHRyaWJ1dGUsIDAsIDEpIGVxICIoIjsKICAgICAgICAgbXkgQGdsb2JhbENvbnRleHRzID0gc3Bs
aXQoIiwiLCAkZXhwb3NlZEF0dHJpYnV0ZSk7Ci0gICAgICAgIG15ICgkYXR0cmlidXRlQ29kZSwg
JHdpbmRvd0FsaWFzZXMpID0gR2VuZXJhdGVDb25zdHJ1Y3RvckF0dHJpYnV0ZXMoJGludGVyZmFj
ZU5hbWUsICRleHRlbmRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBmb3JlYWNoIG15ICRnbG9iYWxD
b250ZXh0IChAZ2xvYmFsQ29udGV4dHMpIHsKKyAgICAgICAgICAgIG15ICgkYXR0cmlidXRlQ29k
ZSwgJHdpbmRvd0FsaWFzZXMpID0gR2VuZXJhdGVDb25zdHJ1Y3RvckF0dHJpYnV0ZXMoJGludGVy
ZmFjZU5hbWUsICRleHRlbmRlZEF0dHJpYnV0ZXMsICRnbG9iYWxDb250ZXh0KTsKICAgICAgICAg
ICAgIGlmICgkZ2xvYmFsQ29udGV4dCBlcSAiV2luZG93IikgewogICAgICAgICAgICAgICAgICR3
aW5kb3dDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOworICAgICAgICAgICAgICAg
ICR3aW5kb3dDb25zdHJ1Y3RvcnNDb2RlIC49ICR3aW5kb3dBbGlhc2VzIGlmICR3aW5kb3dBbGlh
c2VzOwogICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIldvcmtlciIpIHsK
ICAgICAgICAgICAgICAgICAkd29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRh
dHRyaWJ1dGVDb2RlOwogICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIkRl
ZGljYXRlZFdvcmtlciIpIHsKQEAgLTI1MCw3ICsyNTEsNiBAQCBmb3JlYWNoIG15ICRpZGxGaWxl
TmFtZSAoc29ydCBrZXlzICVpZGxGCiAgICAgICAgICAgICAgICAgZGllICJVbnN1cHBvcnRlZCBn
bG9iYWwgY29udGV4dCAnJGdsb2JhbENvbnRleHQnIHVzZWQgaW4gW0V4cG9zZWRdIGF0ICRpZGxG
aWxlTmFtZSI7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgJHdpbmRvd0NvbnN0
cnVjdG9yc0NvZGUgLj0gJHdpbmRvd0FsaWFzZXMgaWYgJHdpbmRvd0FsaWFzZXM7CiAgICAgfQog
fQogCkBAIC0zODEsNiArMzgxLDE5IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yQXR0cmlidXRl
cwogewogICAgIG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7CiAgICAgbXkgJGV4dGVuZGVkQXR0
cmlidXRlcyA9IHNoaWZ0OworICAgIG15ICRnbG9iYWxDb250ZXh0ID0gc2hpZnQ7CisKKyAgICAj
IEZJWE1FOiBSYXRoZXIgdGhhbiBiZWluZyBDb25kaXRpb25hbEZvcldvcmtlcj1GT08sIHdlIG5l
ZWQgYSBzeW50YXggbGlrZSBDb25kaXRpb25hbEZvckNvbnRleHQ9KFdvcmtlcjpGT08pLgorICAg
IGlmICgkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbmRpdGlvbmFsRm9yV29ya2VyIn0gJiYgJGds
b2JhbENvbnRleHQgZXEgIldvcmtlciIpIHsKKyAgICAgIG15ICRjb25kaXRpb25hbEZvcldvcmtl
ciA9ICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWxGb3JXb3JrZXIifTsKKyAgICAg
IG15ICRleGlzdGluZ0NvbmRpdGlvbmFsID0gJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25kaXRp
b25hbCJ9OworICAgICAgaWYgKCRleGlzdGluZ0NvbmRpdGlvbmFsKSB7CisgICAgICAgICRleGlz
dGluZ0NvbmRpdGlvbmFsIC49ICImIiAuICRjb25kaXRpb25hbEZvcldvcmtlcjsKKyAgICAgIH0g
ZWxzZSB7CisgICAgICAgICRleGlzdGluZ0NvbmRpdGlvbmFsID0gJGNvbmRpdGlvbmFsRm9yV29y
a2VyOworICAgICAgfQorICAgICAgJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25kaXRpb25hbCJ9
ID0gJGV4aXN0aW5nQ29uZGl0aW9uYWw7CisgICAgfQogCiAgICAgbXkgJGNvZGUgPSAiICAgICI7
CiAgICAgbXkgQGV4dGVuZGVkQXR0cmlidXRlc0xpc3Q7CkBAIC0zOTAsNiArNDAzLDcgQEAgc3Vi
IEdlbmVyYXRlQ29uc3RydWN0b3JBdHRyaWJ1dGVzCiAgICAgICAgIHx8ICRhdHRyaWJ1dGVOYW1l
IGVxICJQdWJsaWNJZGVudGlmaWVyIiB8fCAkYXR0cmlidXRlTmFtZSBlcSAiRGlzYWJsZWRCeVF1
aXJrIiB8fCAkYXR0cmlidXRlTmFtZSBlcSAiRW5hYmxlZEJ5UXVpcmsiCiAgICAgICAgIHx8ICRh
dHRyaWJ1dGVOYW1lIGVxICJFbmFibGVkRm9yQ29udGV4dCIgfHwgJGF0dHJpYnV0ZU5hbWUgZXEg
IkN1c3RvbUVuYWJsZWQiKSB8fCAkYXR0cmlidXRlTmFtZSBlcSAiTGVnYWN5RmFjdG9yeUZ1bmN0
aW9uRW5hYmxlZEJ5U2V0dGluZyI7CiAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGUgPSAkYXR0
cmlidXRlTmFtZTsKKyAgICAgIAogICAgICAgJGV4dGVuZGVkQXR0cmlidXRlIC49ICI9IiAuICRl
eHRlbmRlZEF0dHJpYnV0ZXMtPnskYXR0cmlidXRlTmFtZX0gdW5sZXNzICRleHRlbmRlZEF0dHJp
YnV0ZXMtPnskYXR0cmlidXRlTmFtZX0gZXEgIlZBTFVFX0lTX01JU1NJTkciOwogICAgICAgcHVz
aChAZXh0ZW5kZWRBdHRyaWJ1dGVzTGlzdCwgJGV4dGVuZGVkQXR0cmlidXRlKTsKICAgICB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAkocmV2aXNpb24g
Mjc3NTQ0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAgdHlwZWRlZiAoCiAKICAgICBET01TdHJpbmcg
dG9EYXRhVVJMKG9wdGlvbmFsIERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBhbnkgcXVhbGl0eSk7
CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHVuZGVmaW5lZCB0b0Jsb2Io
QmxvYkNhbGxiYWNrIGNhbGxiYWNrLCBvcHRpb25hbCBET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwg
YW55IHF1YWxpdHkpOwotICAgIFtDb25kaXRpb25hbD1PRkZTQ1JFRU5fQ0FOVkFTLCBDYWxsV2l0
aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBPZmZzY3JlZW5DYW52YXMgdHJhbnNmZXJDb250cm9s
VG9PZmZzY3JlZW4oKTsKKyAgICBbQ29uZGl0aW9uYWw9T0ZGU0NSRUVOX0NBTlZBUywgRW5hYmxl
ZEF0UnVudGltZT1PZmZzY3JlZW5DYW52YXMsIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRdIE9mZnNjcmVlbkNhbnZhcyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpOwogCiAgICAg
W0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwgQ2FsbFdpdGg9RG9jdW1lbnQsIE5ld09iamVjdF0g
TWVkaWFTdHJlYW0gY2FwdHVyZVN0cmVhbShvcHRpb25hbCBkb3VibGUgZnJhbWVSZXF1ZXN0UmF0
ZSk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcAkocmV2
aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03Myw2ICs3MywxNyBAQCBXZWFrUHRyPEhUTUxDYW52YXNFbGVt
ZW50PiBEZXRhY2hlZE9mZnNjCiAgICAgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9wbGFjZWhvbGRl
ckNhbnZhcywgbnVsbHB0cik7CiB9CiAKK2Jvb2wgT2Zmc2NyZWVuQ2FudmFzOjplbmFibGVkRm9y
Q29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQoreworI2lmIEVOQUJMRShP
RkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCisgICAgaWYgKGNvbnRleHQuaXNXb3JrZXJHbG9i
YWxTY29wZSgpKQorICAgICAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5vZmZzY3JlZW5DYW52YXNJbldvcmtlcnNFbmFibGVkKCk7CisjZW5kaWYKKwor
ICAgIEFTU0VSVChjb250ZXh0LmlzRG9jdW1lbnQoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
IFJlZjxPZmZzY3JlZW5DYW52YXM+IE9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHVuc2lnbmVkIHdpZHRoLCB1bnNp
Z25lZCBoZWlnaHQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT2Zmc2NyZWVuQ2FudmFz
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHdpZHRoLCBoZWlnaHQpKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuaAkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDYgKzEx
Miw4IEBAIHB1YmxpYzoKICAgICAgICAgV2ViZ2wyCiAgICAgfTsKIAorICAgIHN0YXRpYyBib29s
IGVuYWJsZWRGb3JDb250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKwogICAgIHN0YXRp
YyBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHVu
c2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpOwogICAgIHN0YXRpYyBSZWY8T2Zmc2NyZWVu
Q2FudmFzPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6dW5pcXVlX3B0cjxE
ZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4mJik7CiAgICAgc3RhdGljIFJlZjxPZmZzY3JlZW5DYW52
YXM+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSFRNTENhbnZhc0VsZW1lbnQmKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5pZGwJKHJldmlzaW9uIDI3
NzU0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtNDksNiArNDksOCBAQCBlbnVtIE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHRU
eXBlCiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsLAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9
T2Zmc2NyZWVuQ2FudmFzLAogICAgIENvbmRpdGlvbmFsPU9GRlNDUkVFTl9DQU5WQVMsCisgICAg
Q29uZGl0aW9uYWxGb3JXb3JrZXI9T0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVIsCisgICAgRW5h
YmxlZEZvckNvbnRleHQsCiAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlcikKIF0gaW50ZXJmYWNl
IE9mZnNjcmVlbkNhbnZhcyA6IEV2ZW50VGFyZ2V0IHsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dF0gY29uc3RydWN0b3IoW0VuZm9yY2VSYW5nZV0gdW5zaWduZWQgbG9uZyB3
aWR0aCwgW0VuZm9yY2VSYW5nZV0gdW5zaWduZWQgbG9uZyBoZWlnaHQpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCShyZXZpc2lvbiAyNzc1NDQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlQYXJzZXJXb3JrZXJTYWZlLmgiCiAj
aW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlN0eWxl
UmVzb2x2ZUZvckZvbnRSYXcuaCIKICNpbmNsdWRlICJUZXh0TWV0cmljcy5oIgpAQCAtNDgsNiAr
NDksMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTsKIAorYm9vbCBPZmZzY3JlZW5D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmVuYWJsZWRGb3JDb250ZXh0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQpCit7CisjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVNfSU5fV09S
S0VSUykKKyAgICBpZiAoY29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkpCisgICAgICAgIHJl
dHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLm9mZnNjcmVlbkNh
bnZhc0luV29ya2Vyc0VuYWJsZWQoKTsKKyNlbmRpZgorCisgICAgQVNTRVJUKGNvbnRleHQuaXNE
b2N1bWVudCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogT2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQoQ2FudmFzQmFz
ZSYgY2FudmFzLCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncyYmIHNldHRpbmdzKQog
ICAgIDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZShjYW52YXMsIFdURk1vdmUoc2V0dGlu
Z3MpLCBmYWxzZSkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCShyZXZpc2lv
biAyNzc1NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQg
ZmluYWwgOiBwdWJsaWMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZSB7CiAgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpOwogcHVi
bGljOgorICAgIHN0YXRpYyBib29sIGVuYWJsZWRGb3JDb250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKTsKKwogICAgIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRChDYW52YXNC
YXNlJiwgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MmJik7CiAgICAgdmlydHVhbCB+
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmlkbAkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBAQAogICAgIEN1c3RvbUlzUmVhY2hhYmxlLAogICAgIEVu
YWJsZWRBdFJ1bnRpbWU9T2Zmc2NyZWVuQ2FudmFzLAogICAgIENvbmRpdGlvbmFsPU9GRlNDUkVF
Tl9DQU5WQVMsCisgICAgQ29uZGl0aW9uYWxGb3JXb3JrZXI9T0ZGU0NSRUVOX0NBTlZBU19JTl9X
T1JLRVIsCisgICAgRW5hYmxlZEZvckNvbnRleHQsCiAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtl
ciksCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24s
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAko
cmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDYgKzY0LDExIEBAIHB1YmxpYzoKICAgICBi
b29sIG9mZnNjcmVlbkNhbnZhc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzT2Zmc2NyZWVu
Q2FudmFzRW5hYmxlZDsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19J
Tl9XT1JLRVJTKQorICAgIHZvaWQgc2V0T2Zmc2NyZWVuQ2FudmFzSW5Xb3JrZXJzRW5hYmxlZChi
b29sIGlzRW5hYmxlZCkgeyBtX2lzT2Zmc2NyZWVuQ2FudmFzSW5Xb3JrZXJzRW5hYmxlZCA9IGlz
RW5hYmxlZDsgfQorICAgIGJvb2wgb2Zmc2NyZWVuQ2FudmFzSW5Xb3JrZXJzRW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1faXNPZmZzY3JlZW5DYW52YXNJbldvcmtlcnNFbmFibGVkOyB9CisjZW5k
aWYKKwogICAgIHZvaWQgc2V0Q2FjaGVBUElFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1faXND
YWNoZUFQSUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIGNhY2hlQVBJRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1faXNDYWNoZUFQSUVuYWJsZWQ7IH0KIApAQCAtMjYyLDYgKzI2Nyw5
IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCiAgICAgYm9vbCBtX2lz
T2Zmc2NyZWVuQ2FudmFzRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKKyNpZiBFTkFCTEUoT0ZG
U0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQorICAgIGJvb2wgbV9pc09mZnNjcmVlbkNhbnZhc0lu
V29ya2Vyc0VuYWJsZWQgeyBmYWxzZSB9OworI2VuZGlmCiAgICAgYm9vbCBtX2lzQ2FjaGVBUElF
bmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNXZWJTb2NrZXRFbmFibGVkIHsgdHJ1ZSB9
OwogICAgIGJvb2wgbV9mZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQgeyBmYWxzZSB9OwpJbmRleDog
U291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUuaAkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBAIGNs
YXNzIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOwogY2xhc3MgUmVxdWVzdEFuaW1hdGlvbkZyYW1l
Q2FsbGJhY2s7CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKLSNpZiBFTkFCTEUoT0ZG
U0NSRUVOX0NBTlZBUykKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQog
Y2xhc3MgV29ya2VyQW5pbWF0aW9uQ29udHJvbGxlcjsKIAogdXNpbmcgQ2FsbGJhY2tJZCA9IGlu
dDsKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogCiAgICAgRGVkaWNhdGVkV29ya2VyVGhyZWFk
JiB0aHJlYWQoKTsKIAotI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorI2lmIEVOQUJMRShP
RkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAgICAgQ2FsbGJhY2tJZCByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoUmVmPFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrPiYmKTsKICAgICB2b2lk
IGNhbmNlbEFuaW1hdGlvbkZyYW1lKENhbGxiYWNrSWQpOwogI2VuZGlmCkBAIC05NCw3ICs5NCw3
IEBAIHByaXZhdGU6CiAKICAgICBTdHJpbmcgbV9uYW1lOwogCi0jaWYgRU5BQkxFKE9GRlNDUkVF
Tl9DQU5WQVMpCisjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVNfSU5fV09SS0VSUykKICAgICBS
ZWZQdHI8V29ya2VyQW5pbWF0aW9uQ29udHJvbGxlcj4gbV93b3JrZXJBbmltYXRpb25Db250cm9s
bGVyOwogI2VuZGlmCiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5pZGwJKHJldmlzaW9uIDI3NzU0NCkKKysrIFNv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Nyw1ICs0Nyw1IEBACiAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBv
bm1lc3NhZ2U7CiB9OwogCi1bQ29uZGl0aW9uYWw9T0ZGU0NSRUVOX0NBTlZBUywgRW5hYmxlZEF0
UnVudGltZT1PZmZzY3JlZW5DYW52YXNdIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGluY2x1
ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI7CitbQ29uZGl0aW9uYWw9T0ZGU0NSRUVOX0NBTlZB
U19JTl9XT1JLRVJTLCBFbmFibGVkQXRSdW50aW1lPU9mZnNjcmVlbkNhbnZhc0luV29ya2Vyc10g
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRl
cjsKIFtDb25kaXRpb25hbD1XRUJfUlRDLCBFbmFibGVkQnlTZXR0aW5nPVdlYlJUQ0luc2VydGFi
bGVTdHJlYW1zXSBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBSVENSdHBTY3Jp
cHRUcmFuc2Zvcm1Qcm92aWRlcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
QW5pbWF0aW9uQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJBbmltYXRpb25Db250cm9sbGVyLmNwcAkocmV2aXNpb24gMjc3NTQ0KQorKysg
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJBbmltYXRpb25Db250cm9sbGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIldvcmtlckFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKIAotI2lmIEVOQUJMRShPRkZTQ1JFRU5f
Q0FOVkFTKQorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMpCiAKICNpbmNs
dWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUgIlJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxi
YWNrLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckFuaW1hdGlvbkNvbnRy
b2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckFuaW1h
dGlvbkNvbnRyb2xsZXIuaAkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJBbmltYXRpb25Db250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcg
KzI3LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykK
KyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTKQogCiAjaW5jbHVkZSAiQWN0
aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgpJbmRleDog
U291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2NtYWtl
L09wdGlvbnNHVEsuY21ha2UJKHJldmlzaW9uIDI3NzU0NCkKKysrIFNvdXJjZS9jbWFrZS9PcHRp
b25zR1RLLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsNiArMTcwLDcgQEAgV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFXwogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OIFBS
SVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTkVUV09S
S19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUyBQUklWQVRFICR7RU5B
QkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTIFBSSVZBVEUgJHtFTkFCTEVf
RVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9USFVOREVSIFBSSVZBVEUgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX1BFUklPRElDX01FTU9SWV9NT05JVE9SIFBSSVZBVEUgT04pCiBXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUE9JTlRFUl9MT0NLIFBSSVZBVEUgT04p
CkluZGV4OiBTb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQkocmV2aXNpb24gMjc3NTQ0KQorKysgU291cmNlL2Nt
YWtlL09wdGlvbnNXUEUuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDcgQEAgV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFXwogV0VCS0lUX09QVElPTl9ERUZB
VUxUX1BPUlRfVkFMVUUoRU5BQkxFX05PVElGSUNBVElPTlMgUFJJVkFURSBPTikKIFdFQktJVF9P
UFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxF
X1JFVkFMSURBVEUgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZF
QVRVUkVTfSkKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9PRkZTQ1JF
RU5fQ0FOVkFTX0lOX1dPUktFUlMgUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVS
RVN9KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1BFUklPRElDX01F
TU9SWV9NT05JVE9SIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxV
RShFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfU0VSVklDRV9XT1JLRVIgUFJJVkFURSBPTikK
SW5kZXg6IFNvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UJKHJldmlzaW9uIDI3NzU0NCkKKysrIFNv
dXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjA1LDYg
KzIwNSw3IEBAIG1hY3JvKFdFQktJVF9PUFRJT05fQkVHSU4pCiAgICAgV0VCS0lUX09QVElPTl9E
RUZJTkUoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJTEVfUkVWQUxJREFURSAiVG9vZ2xl
IG5ldHdvcmsgY2FjaGUgc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSBjYWNoaW5nIHN0cmF0ZWd5IiBQ
UklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfTk9USUZJQ0FUSU9O
UyAiVG9nZ2xlIE5vdGlmaWNhdGlvbnMgc3VwcG9ydCIgUFJJVkFURSBPTikKICAgICBXRUJLSVRf
T1BUSU9OX0RFRklORShFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUyAiVG9nZ2xlIE9mZnNjcmVlbkNh
bnZhcyBzdXBwb3J0IiBQUklWQVRFIE9GRikKKyAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFC
TEVfT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTICJUb2dnbGUgT2Zmc2NyZWVuQ2FudmFzIGlu
IFdvcmtlcnMgc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUo
RU5BQkxFX1RIVU5ERVIgIlRvZ2dsZSBFTUUgVjMgVGh1bmRlciBzdXBwb3J0IiBQUklWQVRFIE9G
RikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTICJU
b2dnbGUgT3JpZW50YXRpb24gRXZlbnRzIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJ
VF9PUFRJT05fREVGSU5FKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0ggIlRvZ2dsZSBh
Y2NlbGVyYXRlZCBzY3JvbGxpbmcgc3VwcG9ydCIgUFJJVkFURSBPRkYpCkluZGV4OiBUb29scy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzc1NDcp
CisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAy
MS0wNS0xNSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cg
Y29uZGl0aW9uYWxseSBlbmFibGluZyBPZmZzY3JlZW5DYW52YXMgb25seSBmb3Igbm9uLXdvcmtl
ciBjb250ZXh0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI1ODQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG06CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0T3B0aW9ucy5jcHA6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpkZWZh
dWx0cyk6CisgICAgICAgIE1hdGNoIGN1cnJlbnQgYmVoYXZpb3Igb2YgRU5BQkxFX09GRlNDUkVF
Tl9DQU5WQVMgYW5kIE9mZnNjcmVlbkNhbnZhc0VuYWJsZWQKKyAgICAgICAgZm9yIEVOQUJMRV9P
RkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMgYW5kIE9mZnNjcmVlbkNhbnZhc0luV29ya2Vyc0Vu
YWJsZWQuCisKIDIwMjEtMDUtMTUgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29t
PgogCiAgICAgICAgIHJlcG9ydC1ub24taW5jbHVzaXZlLWxhbmd1YWdlIHNob3VsZCBza2lwIG5v
ZGVfbW9kdWxlcyBkaXJlY3RvcnkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0
dXJlTGlzdC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVy
ZUxpc3QucG0JKHJldmlzaW9uIDI3NzU0NCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9G
ZWF0dXJlTGlzdC5wbQkod29ya2luZyBjb3B5KQpAQCAtMTI5LDYgKzEyOSw3IEBAIG15ICgKICAg
ICAkbmV0d29ya0NhY2hlU3RhbGVXaGlsZVJldmFsaWRhdGVTdXBwb3J0LAogICAgICRub3RpZmlj
YXRpb25zU3VwcG9ydCwKICAgICAkb2Zmc2NyZWVuQ2FudmFzU3VwcG9ydCwKKyAgICAkb2Zmc2Ny
ZWVuQ2FudmFzSW5Xb3JrZXJzU3VwcG9ydCwKICAgICAkdGh1bmRlclN1cHBvcnQsCiAgICAgJG9y
aWVudGF0aW9uRXZlbnRzU3VwcG9ydCwKICAgICAkb3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFN1cHBv
cnQsCkBAIC00MjQsNiArNDI1LDkgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgIHsgb3B0aW9uID0+
ICJvZmZzY3JlZW4tY2FudmFzIiwgZGVzYyA9PiAiVG9nZ2xlIE9mZnNjcmVlbkNhbnZhcyBzdXBw
b3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMiLCB2YWx1ZSA9
PiBcJG9mZnNjcmVlbkNhbnZhc1N1cHBvcnQgfSwKIAorICAgIHsgb3B0aW9uID0+ICJvZmZzY3Jl
ZW4tY2FudmFzLWluLXdvcmtlcnMiLCBkZXNjID0+ICJUb2dnbGUgT2Zmc2NyZWVuQ2FudmFzIGlu
IFdvcmtlcnMgc3VwcG9ydCIsCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9PRkZTQ1JFRU5fQ0FO
VkFTX0lOX1dPUktFUlMiLCB2YWx1ZSA9PiBcJG9mZnNjcmVlbkNhbnZhc0luV29ya2Vyc1N1cHBv
cnQgfSwKKwogICAgIHsgb3B0aW9uID0+ICJ0aHVuZGVyIiwgZGVzYyA9PiAiVG9nZ2xlIFRodW5k
ZXIgQ0RNIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVEhVTkRFUiIsIHZhbHVl
ID0+IFwkdGh1bmRlclN1cHBvcnQgfSwKIApJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0T3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
T3B0aW9ucy5jcHAJKHJldmlzaW9uIDI3NzU0NCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdE9wdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNiArMTAwLDcgQEAgY29uc3Qg
VGVzdEZlYXR1cmVzJiBUZXN0T3B0aW9uczo6ZGVmYXVsdAogICAgICAgICAgICAgeyAiTmVlZHNT
dG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcmsiLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAi
T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkIiwgdHJ1ZSB9LAogICAgICAgICAgICAg
eyAiT2Zmc2NyZWVuQ2FudmFzRW5hYmxlZCIsIHRydWUgfSwKKyAgICAgICAgICAgIHsgIk9mZnNj
cmVlbkNhbnZhc0luV29ya2Vyc0VuYWJsZWQiLCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJQYWdl
VmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCIsIGZhbHNlIH0sCiAgICAg
ICAgICAgICB7ICJQbHVnaW5zRW5hYmxlZCIsIHRydWUgfSwKICAgICAgICAgICAgIHsgIlJlcXVp
cmVzVXNlckdlc3R1cmVGb3JBdWRpb1BsYXliYWNrIiwgZmFsc2UgfSwK
</data>

          </attachment>
      

    </bug>

</bugzilla>